Download 1 tema 1 procesadores digitales tema 1

Document related concepts
no text concepts found
Transcript
TEMA 1
PROCESADORES DIGITALES
CURSO 2010/2011
TEMA 1
1.1
Opciones en el diseño de sistemas electrónicos digitales:
1.1.1 Sistemas diseñados especialmente
1.1.2 Interconexión de componentes estándar
1.1.3 Sistemas programables
1.2 Concepto de microprocesador
1.3 Estructura general
1.3.1 Unidad de Control
1.3.2 Unidad de Proceso
1.3.3 Transferencia de datos en el procesador: buses
1.4 Diseño de la unidad de control
1.5 Diseño de la unidad de proceso
1
OPCIONES EN EL DISEÑO DE SED
•Cuando un diseñador de sistemas digitales acomete el desarrollo de un sistema para una aplicación particular, dispone
básicamente de tres alternativas en el diseño:
Opciones en el diseño de SED
Sistemas diseñados
especialmente
Diseño VLSI
Interconexión
de componentes
estándar
Sistemas
programables
Electrónica
Digital
Dispositivos
Lógicos
Programables
OPCIONES EN EL DISEÑO DE SED
Sistemas diseñados especialmente (Custom) ASIC
•Consiste en fabricar uno o más circuitos especiales (a medida) que cumplan las funciones requeridas en una
aplicación particular.
•Los elevados costes de desarrollo se deberán dividir entre el número de unidades fabricadas. Para sistemas que no
se fabriquen en grandes cantidades, este coste es normalmente prohibitivo. Si se fabrican grandes cantidades, este
método a menudo resulta viable.
•Un problema importante, inherente al diseño a medida, es el coste de la modificación del sistema, es frecuente que
las modificaciones requieran la repetición completa del proceso de diseño.
•Otro problema es que la experiencia y herramientas especiales requeridas para el diseño y la fabricación, por regla
general hacen necesario que dicho diseño sea contratado a un fabricante de semiconductores y esto puede ocasionar
un aumento considerable del tiempo de desarrollo.
•Y por último, suele ser difícil, cuando no imposible, obtener segundas fuentes para los circuitos a medida. (Una
segunda fuente consiste en un fabricante distinto para el mismo dispositivo).
2
OPCIONES EN EL DISEÑO DE SED
Interconexión de componentes estándar (Semi - Custom)
•Otra alternativa de diseño que evita los problemas del diseño a medida consiste en la selección e interconexión de
subsistemas disponibles, es decir de catálogo, tales como: sumadores, comparadores, contadores, registros de
desplazamiento y convertidores de código.
•El coste del diseño en este caso suele ser menor puesto que hay competencia entre los distintos fabricantes y
además es fácil disponer de segundas fuentes.
•Un problema importante suele ser el disponer de funciones complejas y específicas integradas como dispositivos de
catálogo, ya que los fabricantes de circuitos integrados a la hora de decidir qué funciones implementan en circuitos
integrados se basan en que tengan una amplia aceptación o demanda (gran producción) por parte de los diseñadores
de sistemas.
Sistemas programables
•Son sistemas que el diseñador, no el fabricante, puede configurar de modo que sirvan para una gran variedad de
aplicaciones. El empleo de estos sistemas es ventajoso debido a que cuanto mayor es su grado de flexibilidad, el
dispositivo tendrá un uso más amplio, mayor demanda, mayor número de unidades fabricadas, menor coste.
•Esta flexibilidad se obtiene gracias a la programación. Ejemplos: memorias de sólo lectura (ROMs), matrices lógicas
programables (PLAs) y microprocesadores (uPs). La función de estos dispositivos está totalmente definida mediante la
programación.
OPCIONES EN EL DISEÑO DE SED
Sistemas Programables
Sistemas basados
en memorias ROM
Matrices Lógicas
Programables
PLA, PLD…
Sistemas
Basados en
Microprocesador
3
OPCIONES EN EL DISEÑO DE SED
Construcción de Circuitos Digitales con Memorias
OPCIONES EN EL DISEÑO DE SED
Construcción de Circuitos Digitales con Memorias
4
OPCIONES EN EL DISEÑO DE SED
Construcción de Circuitos Digitales con Memorias
OPCIONES EN EL DISEÑO DE SED
Construcción de Circuitos Digitales con Memorias
5
OPCIONES EN EL DISEÑO DE SED
Matrices Lógicas Programables: PLA
OPCIONES EN EL DISEÑO DE SED
Matrices Lógicas Programables: PLA
6
OPCIONES EN EL DISEÑO DE SED
Ventajas de los Microprocesadores
•Menor número de componentes necesarios en un sistema basado en microprocesador, lo cual a su vez implica:
¾Menor tamaño del sistema (miniaturización y portabilidad del sistema).
¾Menor consumo (portabilidad, alimentación por baterías).
¾El reducido número de interconexiones redunda en un incremento de la fiabilidad.
¾Coste sustancialmente inferior.
•Programabilidad:
¾Las ventajas fundamentales de la programación son las de simplificar el diseño y reducir el tiempo de
desarrollo.
¾Los sistemas programables nos permiten disponer de módulos de hardware estándar que pueden
programarse para una gran variedad de tareas. La sustitución de un programa por otro puede no suponer
ningún rediseño de los circuitos, sino únicamente la sustitución de unos circuitos de memoria por otros que
contengan el nuevo programa. La parte hardware del sistema puede entonces producirse en serie con lo que
los costes bajan considerablemente.
¾Programabilidad se asocia con “inteligencia”.
CONCEPTO DE MICROPROCESADOR
•Un microporcesador es un sistema digital programable que integra en un solo chip las funciones principales de un
sistema de procesamiento de información de propósito general.
•El microporcesador, bajo control del programa, genera la secuencia de órdenes (señales de control) necesarias
para realizar el procesamiento de la información. Estas señales de control son tanto internas al procesador para el
control de la ALU, registros internos, como señales de control externas para el control de la memoria y los
dispositivos de Entrada/Salida.
•El programa está formado por una secuencia de instrucciones (serie de palabras binarias) almacenadas en
memoria. En funcionamiento normal, el microprocesador lee instrucciones de la memoria y las ejecuta. Por tanto
puede decirse que un microprocesador es una estructura hardware gobernada por un software o programa.
ENTRADAS
SISTEMA
ELECTRONICO
DIGITAL
SALIDAS
7
CONCEPTO DE MICROPROCESADOR
RELOJ
CPU
01010100
11010100
01000110
10101111
Salida
Entrada
ROM
(Programa)
RESET
ALIMENTACIÓN
DIRECCIONES
DATOS
BUSES
8
CONTROL
ESTRUCTURA GENERAL
•La arquitectura interna de un microporcesador esta formada por:
¾ Unidad de Control
¾ Unidad de Proceso
¾ Transferencia de datos en el microprocesador: Buses
•La comunicación entre los diferentes bloques de la arquitectura interna se realiza a través de los buses internos. (Un
bus es un conjunto de líneas de comunicación agrupadas por funciones).
•Los buses estándar de cualquier sistema microporcesador son tres:
¾ Bus de Datos
¾ Bus de Direcciones
¾ Bus de Control
•Bus de Datos: transmite datos e instrucciones entre los diversos bloques.
•Bus de Direcciones: se usa siempre conjuntamente con el de datos, especificando la fuente o el destino de los datos
transmitidos por el bus de datos.
•Bus de Control: lleva las señales de sincronización procedentes de la unidad de control hacia otros dispositivos
externos o internos o viceversa.
8
Buffer
ESTRUCTURA GENERAL
Bus de Datos
TMP
TMP
Reg. Instrucción
Reg. Estado
Rn
Rø
ALU
Control
Decodificador
Secuenciador
Bus de Direcciones
Bus de Control
Unidad de Control
Buffer
CLK
SP
Buffer
PC
Señales
de
Control
Internas
Unidad de Proceso
Microprocesador
ESTRUCTURA GENERAL
•El bus esencial de un microporcesador, y el que define además su arquitectura, es el bus de datos (clasificación de
los microprocesadores en microprocesadores de 8 bits, microporcesadores de 16 bits, ……)
•La función principal de la Unidad de Control es secuenciar el funcionamiento de todo el sistema, en particular ha de
generar y utilizar adecuadamente todas las señales de control necesarias para sincronizar las operaciones y las
transferencias de datos dentro y fuera de la Unidad de Proceso.
•La forma de operar de la Unidad de Control es buscar, decodificar y ejecutar las sucesivas instrucciones almacenadas
en la memoria del sistema.
•La función principal de la Unidad de Proceso es realizar operaciones aritméticas y lógicas con los datos que pasan por
ella.
•La Unidad de Control está generalmente asociada físicamente a la Unidad de Proceso que controla, formando así lo
que se denomina CPU.
•El microprocesador es básicamente una CPU en una sola pastilla de circuito, pero la CPU no tiene porqué ser
necesariamente un único componente ya que la Unidad de Proceso puede estar separada de la Unidad de Control
como sucede en los procesadores “bit- slice” que constituyen la la Unidad de Proceso de un procesador convencional
sin la sección de control que debería diseñarse y conectarse por separado. (Los procesadores “bit-slice” eran
realmente módulos de unidades centrales de proceso acoplables entre sí, que obedecían a limitaciones tecnológicas
de fabricación por lo que su periodo de vigencia fue breve).
9
DISEÑO DE LA UNIDAD DE CONTROL
•La Unidad de Control es la encargada de ejecutar las instrucciones. Cada instrucción se ejecuta mediante una
secuencia de tres fases: búsqueda, decodificación y ejecución.
•En primer lugar se busca la instrucción en la memoria y se transfiere al interior del microprocesador, a un registro
especial de la Unidad de Control llamado Registro de Instrucción (IR).
•Una vez allí la instrucción es decodificada mediante el decodificador apropiado y finalmente el secuenciador genera
las señales de control necesarias para la ejecución de la instrucción.
Ejemplo:
10000011
ADD R1, R0
11000110
ADD n
•Veamos más detalladamente la fase de búsqueda: el contenido del contador de programa sale por el bus de
direcciones y selecciona la posición adecuada de la memoria. A continuación se emite una orden de lectura de
memoria y transcurrido un cierto tiempo (que corresponde al tiempo de acceso de la memoria) los 8 bits
correspondientes a esta posición de memoria están disponibles en los terminales de datos de la memoria y se
propagan por el bus de datos del sistema. Este dato se dirige mediante un control interno al Registro de Instrucción de
la Unidad de Control. Aquí concluye el ciclo de búsqueda.
•El contenido del IR se decodifica entonces internamente en la Unidad de Control. Las señales apropiadas salen luego
de la Unidad de Control para provocar la ejecución de la instrucción.
DISEÑO DE LA UNIDAD DE CONTROL
1ØØØØØ11
ØØØ1H
11ØØØ11Ø
ØØØ2H
n
ØØØ3H
Jp
ØØØ4H
n
ØØØ5H
n
Bus de Datos
DØ/Dm
Bus de Datos
ØØØØH
Reg. Instrucción
ØØØ6H
Decodificador
~
~
~
~
AØ / An
RD
CLK
Secuenciador
Señales
de
Control
Internas
Bus de Control
+1
PC
Bus de Direcciones
10
DISEÑO DE LA UNIDAD DE CONTROL
•Las instrucciones no tienen necesariamente siempre 8 bits de longitud, pueden consistir en 1, 2 ó 3 palabras, es decir,
que pueden tener 8, 16 o 24 bits. En instrucciones largas la Unidad de Control tendrá que acceder sucesivamente a la
memoria para leer la segunda y tercera palabra.
•La primera palabra de la instrucción contiene siempre en cualquier caso el código de operación, al decodificarlo la
unidad de control sabrá si tiene o no que volver a la memoria para buscar otras palabras.
•El siguiente punto es el concatenamiento automático de instrucciones, es decir, la ejecución secuencial de las
instrucciones que componen el programa. Esto se soluciona muy fácilmente: el Contador de Programa (PC) lleva
asociado un incrementador (o decrementador según el convenio usado). Cada vez que se usa el PC, su contenido se
incrementa automáticamente y vuelve a cargarse en el mismo registro. Cuando vuelve a usarse, este registro estárá
apuntando a la siguiente instrucción.
•Este es el mecanismo interno automático para la ejecución secuencial del programa. La alternativa básica a esta
ejecución secuencial es la instrucción de transferencia. El programador podrá especificar una transferencia o salto a
una dirección determinada de memoria escribiendo deliberadamente un nuevo valor en el PC.
•En los microprocesadores actuales el Registro de Instrucción ha evolucionado hacia lo que se conoce como la Unidad
de Prebúsqueda, que es la encargada de leer las instrucciones de forma anticipada, antes de que el procesador las
referencie. Si el procesaodr tiene ya buscadas las instrucciones que va a ejecutar, entonces la velocidad de ejecución
aumenta, puesto que la Unidad de Proceso siempre estará alimentada de instrucciones a ejecutar.
DISEÑO DE LA UNIDAD DE CONTROL
•La Unidad de Prebúsqueda tiene asociada una cola de instrucciones prebuscadas, donde se van almacenando las
instrucciones leídas de memoria. El tamaño de esta cola varía según implementaciones. Se busca un tamaño que
optimice las prestaciones del procesador, o sea, que en régimen permanente de funcionamiento, la CPU siempre
tenga prebuscadas las instrucciones. La naturaleza secuencial de los programas hace que la técnica de prebúsqueda
de instrucciones sea efectiva (mecanismos de predicción de saltos a partir de probabilidades o historia reciente de los
saltos). En el peor de los casos, si el salto se realiza y no se predijo correctamente, o viceversa, se vacía la Cola de
Prebúsqueda y se empieza a buscar en la dirección correcta. En este caso las prestaciones del procesador bajan
sensiblemente.
•En lo que respecta al Decodificador, en los microporcesadores actuales puede haber varios decodificadores
decodificando en paralelo ( 3 unidades de decodificación en el Pentium Pro).
Unidades de Control Cableadas y Microprogramadas
•Desde el punto de vista funcional, la Unidad de Control se encarga de secuenciar el funcionamiento de todo el
sistema, generando las señales de sincronización para la ALU, la memoria y los circuitos de Entrada/Salida.
•La mayoría de las Unidades de Control de los microporcesadores se implementan mediante microprogramación, en
las cuales un programa interno, el microprograma, se encarga de secuenciar el funcionamiento de la Unidad de
Control.
11
DISEÑO DE LA UNIDAD DE CONTROL
•Una Unidad de Control microprogramada está basada en una memoria interna, ROM muy rápida, que en función de la
instrucción que se tiene que ejecutar, tiene almacenadas las señales que se tienen que activar/desactivar y en qué
instantes (ciclos de reloj).
•El microprograma es completamente invisible para el usuario. (Los únicos microprocesadores que acostumbran a ser
microprogramables por el usuario son los bit – slice, ya que en ellos el control es externo al circuito integrado).
•Por su parte en las Unidades de Control cableadas las decisiones de qué señales activar/desactivar están
implementadas en hardware, por lo que el sistema es más rápido.
•Para todos los fines prácticos, los controladores microprogramados han de considerarse como de lógica cableada
puesto que el usuario no tiene ninguna posibilidad de modificarlos.
•En general los procesadores denominados CISC (Complex Instruction Set Computer) que se caracterizan por
disponer de juegos de instrucciones complejos con gran cantidad de modos de direccionemiento distintos, suelen
incorporar unidades de control microprogramadas.
•Por contra, los procesadores denominados RISC (Reduced Instruction Set Computer) caracterizados por juegos de
instrucciones reducidos con pocos modos de direccionamiento y pocos formatos de instrucción, suelen disponer de
unidades de control cableadas.
DISEÑO DE LA UNIDAD DE PROCESO
•La Unidad de Proceso es la parte del microprocesador que opera con la información. Los elementos de que está
constituida son:
¾ Recursos de cálculo (Unidad Aritmético – Lógica)
¾ Elementos de almacenamiento (Registros internos)
¾ Rutas de datos (Buses)
•Dentro de la Unidad de Proceso podemos tener una única unidad de ejecución (por ejemplo el Z-80) o varias unidades
de ejecución (por ejemplo 3 en el Pentium). Si el microprocesador tiene varias unidades de ejecución, éstas suelen
estar especializadas por tipos de instrucciones. Además si un procesador posee varias unidades de ejecución nos
indica que va a poder ejecutar varias instrucciones al mismo tiempo (técnicas superescalares).
•La unidad de ejecución más típica es la Unidad Aritmético – Lógica (ALU), es la encargada de realizar las operaciones
aritméticas y lógicas. Como operaciones aritméticas habituales: suma, resta, multiplicación y raramente división. Como
operaciones lógicas: AND, OR, XOR, NOT. Además en la ALU se realizan también instrucciones de rotación y
desplazamiento.
•Otra unidad de ejecución muy conocida es la unidad de coma flotante (FPU) encargada de las operaciones con
números en coma flotante. Por otra parte, los microprocesadores actuales (Pentium II) incluyen nuevas unidades de
ejecución especializadas, como por ejemplo las unidades especializadas en ejecutar las instrucciones MMX.
12
DISEÑO DE LA UNIDAD DE PROCESO
•Los registros internos son unidades de almacenamiento de acceso muy rápido. Pueden ser de propósito general, es
decir, que todos pueden utilizarse como acumuladores, punteros, índices o de propósito específico. En el primer caso
(propósito general) siempre deben añadirse algunos registros especializados: PC, SP, Registro de Estado…
DISEÑO DE LA UNIDAD DE PROCESO
•El registro de estado se puede llamar de varias formas: F (flags), PWR (Palabra de Estado). Se debe mirar en cada
CPU qué bits de estado tenemos disponibles puesto que son muy importantes para los saltos condicionales.
REGISTRO F
Z
V
-
C
-
I
-
H
Los bits mas típicos de este registro son:
Z
C
V
I
H
bit de Zero, se pone a 1 si el resultado fue nulo
bit Carry, se pone a 1 si hubo acarreo
bit Overflow, se pone a 1 si hubo desbordamiento
bit de interrupción. Inhibición de interrupciones enmascarables
bit de acareo intermedio
13
DISEÑO DE LA UNIDAD DE PROCESO
Buses: arquitectura de bus único, arquitectura de bus doble o triple
•Una forma importante de diferenciar las arquitecturas internas de los microprocesadores es contar el número de
buses utilizados para establecer la comunicación entre los registros internos y la ALU. La arquitectura más sencilla
es la de bus único.
•Los datos salen de cualquier registro y se dirigen a la ALU por ese bus. Este bus está conectado a las dos
entradas de la ALU. El resultado de la operación efectuada allí se deposita en el mismo bus para volver a los
registros. Se dice que este bus está multiplexado en el tiempo.
TMP
Rø
Rn
TMP
ALU
Arquitectura de Bus Unico
DISEÑO DE LA UNIDAD DE PROCESO
•Ejemplo: suma de R0 + R1 y resultado en R0.
•El registro temporal TMP1 actúa como buffer y es necesario para memorizar el contenido del registro R0, de modo
que se pueda usar un único bus de datos para transmitir los dos operandos.
•El problema que se plantea es el siguiente: el resultado de la operación sale de la ALU y se deposita de nuevo en
el bus de datos, con lo cual no solo se propaga hacía R0 sino también a todo lo largo del bus. En partuicular este
resultado condicionará de nuevo la entrada derecha de la ALU con lo que cambiará unos microsegundos más tarde
el resultado en la salida de la misma.
TMP1
Rø
Rn
ALU
Arquitectura de Bus Unico
14
DISEÑO DE LA UNIDAD DE PROCESO
•Esta temporización es crítica. Hay que aislar la entrada derecha de la ALU de su salida. Para ello se dispone de otro
registro buffer, TMP2, que puede colocarse a la salida o en la entrada derecha de la ALU. Normalmente se coloca en
la entrada. (Si el registro buffer de la entrada izquierda de la ALU es usado como acumulador sería necesario colocar
otro buffer previo).
•La principal desventaja de la arquitectura de bus único es su lentitud de funcionamiento: se necesitan tres
transferencias desde los registros R0, R1 y luego desde la ALU al registro (bus multiplexado). Para mejorar la
velocidad de ejecución de estas instrucciones es deseable disponer de varios buses.
TMP1
Rø
Rn
TMP2
ALU
TMP2
Arquitectura de Bus Unico
DISEÑO DE LA UNIDAD DE PROCESO
•La ventaja principal de la arquitectura de bus único es fácil de imaginar: es la estructura que requiere menos área
de silicio dedicada a buses. Representa un ahorro de superficie en el chip y este es un criterio básico a la hora de
diseñar un microprocesador, por ello la mayor parte de los microprocesadores actuales usan esta arquitectura.
•En el caso de procesadores destinados a obtener elevadas prestaciones como los bit – slice, no están limitados
por esta consideración y en ellos es frecuente encontrar al menos tres buses distintos.
•Un sistema de bus doble usaría un solo bus de entrada conectado a las dos entradas de la ALU y otro bus de
datos para conectar la salida de la ALU a los registros.
TMP
Rø
Rn
ALU
Arquitectura de Bus Doble
15
DISEÑO DE LA UNIDAD DE PROCESO
•La arquitectura de bus triple es la que permite alcanzar las máximas prestaciones: un bus conectado a la entrada
derecha de la ALU, otro bus conectado a la entrada izquierda. Pueden entonces seleccionarse simultáneamente
ambas entradas de la ALU.
•El resultado puede propagarse por el tercer bus independientemente de los dos buses de entrada.
Rø
Rn
ALU
Arquitectura de Bus Triple
16