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