Introducción a los microprocesadores

Anuncio
Arquitectura de Procesadores I
Introducción a los microprocesadores
Historia
Que es un microprocesador ? Es un circuito
digital generalmente bastante complejo que
realiza
procesamiento
de
datos,
las
operaciones que se llevan a cabo durante
dicho procesamiento son controladas por lo
que se denomina un programa, este último, es
el que le indica al microprocesador
exactamente que es lo que tiene que hacer, por
ejemplo, leer un dato de un teclado y
mandarlo a una pantalla de cristal liquido o
tomar dos valores de la memoria, sumarlos y
poner este resultado en la misma.
Figura 1: Oblea
Los microprocesadores han cambiaron la
forma en las que se realizaban las operaciones
de tratamiento de información, y desde que
aparecieron en los años 70 no han dejado de evolucionar, el primer microprocesador fue el
4004 desarrollado por Intel el cual era muy limitado pues sólo sumaba y restaba datos de
4 bits.
El 4004 fue el microprocesador que le dio vida a una
de las primeras calculadoras electrónicas. Intel lanzo
posteriormente, en 1971 el 8008, el que sería el
primer microprocesador de 8 bits, luego en 1973
saca al mercado el
8080,
microprocesador
que se utilizaría
Figura 2: El 4004
en la construcción
de las primeras
computadoras para el hogar, el aspecto físico de este
procesador se muestra en la figura . Unos años después,
en 1978, Intel lanzó el famoso 8086 y un año y medio
más tarde el 8088 con los cuales se puso en el mercado Figura 3: El 8080
el IBM PC que apareció en 1982, con esto Intel estaría en
la mayoría de computadores personales hasta llegar al
Arquitectura de Procesadores I
Pentium IV que es ampliamente utilizado en los computadores de escritorio actuales
(2006).
En la tabla siguiente se muestra la evolución histórica de los procesadores de Intel:
Nombre
Fecha Transistores
Tecnología
Frecuencia Ancho de
de
del reloj
los datos
fabricación
MIPS
8080
1974
6,000
6
2 MHz
8 bits
0.64
8088
1979
29,000
3
5 MHz
16 bits
8-bit bus
0.33
80286
1982
134,000
1.5
6 MHz
16 bits
1
80386
1985
275,000
1.5
16 MHz
32 bits
5
80486
1989
1,200,000
1
25 MHz
32 bits
20
Pentium
1993
3,100,000
0.8
60 MHz
32 bits
64-bit bus
100
Pentium II
1997
7,500,000
0.35
233 MHz
32 bits
64-bit bus
~300
Pentium III
1999
9,500,000
0.25
450 MHz
32 bits
64-bit bus
~510
Pentium 4
2000
42,000,000
0.18
1.5 GHz
32 bits
64-bit bus
~1,700
Pentium 4
"Prescott"
2004
125,000,000
0.09
3.6 GHz
32 bits
64-bit bus
~7,000
Arquitectura:
Características de un sistema que son visibles por el programador e influyen de manera
directa en la forma en la que se ejecuta un programa.
Organización:
Las unidades funcionales y las interconexiones que existen entre ellos para realizar una
arquitectura.
Arquitectura de Procesadores I
Organizaciones
Existen hoy en día varios tipos de organizaciones, las más conocidas son Harvard y Von
Neumann.
Von Neumann.
Consiste de 5 componentes básicos:
•
Unidad de memoria.
•
Unidad de Entrada.
•
Unidad de Salida.
•
Unidad aritmético – lógica.
•
Unidad de control.
Figura 4: Organización Von Neumann
Se fundamenta en:
•
Concepto de programa almacenado.
•
Programa y datos en la misma memoria.
•
Los Programas se manejan como datos ( dando lugar a la aparición de los
compiladores y los sistemas operativos).
Arquitectura de Procesadores I
Este modelo original ha sido modificado en lo que se llama organización basada en buses,
tal y como se muestra a continuación.
La anterior organización es la que se mantiene aunque con algunos refinamientos en los
computadores actuales.
Hardvard
Esta organización es muy parecida a la Von Neumann, con la diferencia que existen buses
separados para los diferentes elementos del sistema.
Arquitecturas.
Las mas ampliamente difundidas son:
•
Risc, Conjunto reducido de instrucciones. Son procesadores con instrucciones
simples y cortas, dando como resultado una gran velocidad de ejecución. Algunos
ejemplos de procesadores de este tipo son el 68000 de Motorola y las cpu's que
utilizan los microcontroladores PIC.
•
Cisc, Conjunto completo de instrucciones. Procesadores complejos internamente,
con muchas instrucciones para el programador, haciéndolos muy flexibles al
programarlos. Ejemplos de estos son los de la familia Intel.
Antes de continuar con los la descripción detallada de un sistema basado en
microprocesador, veamos un ejemplo. Suponga como se menciono antes, que se desea
sumar dos números, seguiremos la secuencia paso a paso que realiza el procesador para
Arquitectura de Procesadores I
realizar dicha tarea de una manera muy superficial, pero que nos dará una idea básica
sobre el comportamiento de los microprocesadores (posteriormente abordaremos el
ejemplo de una manera más detallada)
1. El procesador esta leyendo constantemente su entrada, ejecutando una instrucción
de entrada de datos constantemente (IR=leer entrada).
2. Se presiona la tecla 2.
•
La unidad de control lee el valor de entrada y lo almacena en el registro A .
Arquitectura de Procesadores I
3. Se presiona la tecla 3.
•
La unidad de control lee el valor de entrada y lo almacena en el registro B .
4. Se presiona la tecla +.
•
La unidad de control ordena a la ALU a ejecutar la suma entra A y B, y
almacenar el resultado en el registro A.
Arquitectura de Procesadores I
5. Se presiona la tecla =.
•
La unidad de control envía el dato que hay en el registro A a la salida.
Los buses
Imagine se necesita conectar la salida de un registro de datos a la entrada de dos registros
más, de tal modo que estos últimos puedan tomar los datos del primero, ¿de qué modo se
conectan dichos elementos? Ahora imagine cómo sería el proceso inverso, es decir, que
fuese necesario, que dos registros sean fuentes de datos de un tercero, esto es, si A,B y C
son registros, se desea que en un tiempo t0 el dato que hay en A se transfiera a C y
posteriormente en otro tiempo t1 el dato que hay en B sea trasferido a C, las dos
operaciones anteriores las denotaremos C<-A y C<-B respectivamente. Para realizar estas
transferencias entre registros, podemos optar por el uso de multiplexores tal y como se
muestra a continuación:
Arquitectura de Procesadores I
Figura 6: Operación C<-B
Figura 5: Operación C<-A
Se ha utilizado un multiplexor para controlar cuál es el dato que se almacena en el registro
C, esto se logra por medio de la señal de control C1, la señal ld C en su flanco de subida, se
utiliza para cargar el dato en el registro C.
Veamos un ejemplo un poco más complejo, supongamos que queremos realizar
conexiones bidireccionales entre los tres registros, dotando al sistema de la posibilidad de
intercambiar información entre todos los registros, así:
A
C
B
Figura 7: Ejemplo de canales dedicadas
Arquitectura de Procesadores I
La forma de implementar el diagrama de la figura 7 se muestra a continuación:
Figura 8: Implementación con canales dedicados
Como puede verse en la figura, cada elemento puede enviar datos a los otros dos, por
medio de los multiplexores conectados a su salida. Realicemos las operaciones C<-A, A<B, la secuencia que deben seguir las señales son:
•
Seleccionar la entrada de C como A y la de A como B, así:
Arquitectura de Procesadores I
•
Activar las líneas de carga de los registros destino, ld_C y ld_A, en ese orden, pues
A es fuente de una de las operaciones y destino de la otra. Las siguientes dos
figuras muestran el proceso:
La forma anterior de conectar elementos de un sistema no es la única que se puede usar,
existe otra posibilidad, el uso de buses, con ellos el número de elementos necesarios para
construir el sistema se reduce debido al no uso de multiplexores. Un bus es una conexión
compartida por múltiples elementos para transmitir y/o recibir datos. Vemos la misma
conexión de los registros anteriores realizada con buses.
Arquitectura de Procesadores I
Figura 9: Conexión en bus
En la figura 9 se muestra que para formar el bus, se agregaron buffer's triestado a las
salidas de los registros y se conectaron, puede observarse que como no hay ninguna señal
oe activa el bus aparece en estado de alta impedancia (color naranja).
Cuando es necesario poner un dato en el bus se activa al señal oe del registro
correspondiente, como se muestra a continuación
Figura 10: Dato en el bus
Ahora si queremos realizar alguna operación de transferencia como por ejemplo A<-B,
podemos hacer la siguiente modificación al circuito.
Arquitectura de Procesadores I
Para realizar la transferencia mencionada se activa la señal ld_A, mientras en el bus está el
dato correspondiente al registro B.
Figura 11: Transferencia A<-B
Es necesario aclarar que para que no existan conflictos con los datos que aparecen en el
bus la sincronización de las señales debe ser cuidadosa, pues podría crearse un corto
circuito entre las salidas de los buffer's estropeándolos. Para implementar el sistema tal y
como se planteo solo hay que conectar la entrada de todos los registros al bus.
Figura 12:
Arquitectura de Procesadores I
Buses del sistema
Como se había mencionado antes, en un sistema basado en procesador generalmente
aparecen los siguientes buses:
1. Bus de datos: Utilizado para que el microprocesador intercambie información con
otros elementos del sistema y en algunos casos entre dispositivos.
2. Bus de direcciones: Usado para indicar cuál es el elemento que con el que se
realizará la transferencia de datos.
3. Bus de control: Indica la dirección, tipo y otras características de la operación de
transferencia.
Para la explicación del funcionamiento de los buses de un sistema basado en procesador es
necesario tener claro como funcionan los elementos básicos de almacenamiento, las
memorias
Descargar