Organización y arquitectura de computadoras Tema 10 Unidad de Control Control microprogramado Control Microprogramado Arquitectura de Computadoras 1 Conceptos Generales • Las señales de control se generan por un programa similar a los programas en lenguaje máquina • Palabra de control (CW) – Cada bit representa una señal de control – Hay una CW por cada microoperación • Microprograma – Secuencia de CWs por cada instrucción en lenguaje máquina • Microinstrucciones – CWs individuales en un microprograma – Se añade una dirección que especifica la siguiente microinstrucción a ser ejecutada Control Microprogramado Arquitectura de Computadoras 2 Organización de la Unidad de Control Microprogramado • Memoria de Control IR Generador Starting de direcciones Address de inicio Generator de salto Entradas Externas Banderas – Memoria especial (ROM) que guarda los microprogramas para todas las instrucciones • Contador de microprograma ( PC) – Incrementado por el reloj RELOJ PC Memoria de Control Control Microprogramado • Generador de la dirección de inicio CW – Genera la dirección inicial del microprograma de una instrucción Arquitectura de Computadoras 3 Longitud de palabra de microprograma • Basado en 3 factores – Número máximo de microoperaciones simultáneas soportado – La forma como la información de control es representada o codificada – La forma en la cual se especifica la siguiente dirección de microinstrucción Control Microprogramado Arquitectura de Computadoras 4 Formato de una microinstrucción Funciones de la microinstrucción/señales de control Dirección de la siguiente microinstrucción • Microinstrucciones con el campo de dirección de la microinstrucción siguiente – Elimina la necesidad de microinstrucciones de salto – PC es reemplazado por el registro de direcciones de la microinstrucción ( AR) – Aumenta la flexibilidad – Palabras de control un poco más largas Control Microprogramado Arquitectura de Computadoras 5 Memoria de control . Salta a indirecto o ejecución . Salta a ejecución . Salta a obtención Salra a rutina de Op code . Salta a obtención o interrupción . Salta a obtención o interrupción Control Microprogramado Rutina de ciclo de obtención Rutina de ciclo indirecto Rutina de ciclo de interrupción Inicio del ciclo de ejecución Rutina AND Rutina ADD Arquitectura de Computadoras 6 Funciones de la unidad de control microprogramada • Secuenciamiento de microinstrucciones • Ejecución de microinstrucciones • Deben considerarse ambas a la vez Control Microprogramado Arquitectura de Computadoras 7 Técnicas de secuenciamiento • Basadas en – – – – La microinstrucción actual Banderas y códigos de condición Contenidos del IR La dirección de la memoria de control debe generarse • Basado en el formato de la información de la dirección – Dos campos de dirección – Un campo de dirección – Formato variable Control Microprogramado Arquitectura de Computadoras 8 Ejecución microinstrucción • El ciclo es el evento básico • Cada ciclo está formado de dos eventos – Obtención • Determinado por la generación de la dirección de la microinstrucción – Ejecución • El efecto es generar señales de control • Algunos puntos de control internos al procesador • El resto va al bus de control u otra interfase Control Microprogramado Arquitectura de Computadoras 9 Generación de direcciones Explícitas Implícitas •Dos campos •Salto incondicional •Salto condicional •Traducción •Adición •Control Residual Control Microprogramado Arquitectura de Computadoras 10 Funcionamiento de una unidad de control microprogramada Registro de instrucción Unidad de control Indicadores De la ALU Reloj Lógica de Secuenciamiento Decodificador Registro de dirección de Control (CAR) Memoria de control Registro de Datos de Control (CDR) Lógica de Control Señales de Control hacia Dentro del CPU Control Microprogramado Arquitectura de Computadoras Señales de control Hacia el bus del sistema 11 Funcionamiento de la unidad de control microprogramado • La unidad de secuenciamiento carga el registro de dirección de control (CAR) y emite un comando de lectura • El registro de dirección de control contiene la dirección de la siguiente microinstrucción a leer • Cuando se lee una microinstrucción de la memoria de control, se transfiere al registro de datos de control (CDR) • El contenido del CDR proporciona las señales de control y la dirección de la siguiente microinstrucción – Leer una microinstrucción es lo mismo que ejecutarla • La lógica de secuenciamiento carga la nueva dirección en el CAR basado en la información de la siguiente dirección del CDR y las banderas de la ALU Control Microprogramado Arquitectura de Computadoras 12 Ejemplo ejecución de una instrucción • Add (R3), R1 1. PCout, MARin, Read, Select4, Add, Zin 2. Zout, PCin, Yin, WMFC 3. MDRout, IRin 4. R3out, MARin, Read 5. R1out, Yin, WMFC 6. MDRout, SelectY, Add, Zin 7. Zout, R1in, End Control Microprogramado Arquitectura de Computadoras 13 Implementación con Control Microprogramado PC PC MAR in out in Read MDR IR Y out in in Select Add Z Z R1 R1 R3 in out out in out WMFC End 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 2 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 3 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 4 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 5 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 6 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 Control Microprogramado Arquitectura de Computadoras 14 Tipos de microinstrucción • Cada microinstrucción especifica muchas microoperaciones diferentes a ejecutarse en paralelo – (microprogramación horizontal) • Cada microinstrucción especifica una sola (o pocas) microoperaciones a ser ejecutadas simultáneamente – (microprogramación vertical) Control Microprogramado Arquitectura de Computadoras 15 Microprogramación horizontal • Palabra de memoria amplia • Poca o Nula codificación de la información de control – 1 bit por señal • La longitud de la palabra de control es igual al número de señales de control • Alto grado de operaciones paralelas posibles • Alta velocidad • Memoria de control grande Control Microprogramado Arquitectura de Computadoras 16 Formato de una microinstrucción horizontal Señales de control internas Dirección de Instrucción Señales de control Condición de salto del bus del sistema CW R1in R2in R3in R4in R5in R1out R2out R3out R4out R5out … … … … … … … Señales de Control Control Microprogramado Arquitectura de Computadoras 17 Microprogramación vertical • Instrucciones más compactas (ocupan menos bits) • Señales empaquetadas en campos – N señales de control condificadas en log2n bits • Capacidad limitada para expresar paralelismo • Información de codificación de control requiere una palabra decodificadora externa de memoria para identificar la línea de control exacta que está siendo manipulada • Más pasos -> más lentas • Menos flexible que la horizontal Control Microprogramado Arquitectura de Computadoras 18 Formato de una microinstrucción vertical Dirección de Instrucción Códigos de Función Condición de salto CW … … … … … … … F1 - Rnin F2 - Rnout DECODER DECODER Señales de Control Control Microprogramado Arquitectura de Computadoras 19 Compromiso • Divide las señales de control en grupos disjuntos • Implementa cada grupo como un campo separado en la palabra de memoria • Soporta niveles razonables de paralelismo sin mucha complejidad Control Microprogramado Arquitectura de Computadoras 20 Características del Control Microprogramado • Simplifica el diseño de la unidad de control – Más barata – Menos propensa a errores • Más lento – Puede mejorarse por la obtención anticipada (prefetching) de la siguiente microinstrucción • Puede ser utilizado para emulación de otra arquitectura extendiendo el conjunto de instrucciones para incluir las de la máquina a emular Control Microprogramado Arquitectura de Computadoras 21 Consideraciones de diseño • Tamaño de las microinstrucciones basado en: – Maximum number of simultaneous microoperations supported – The way control information is represented or encoded – The way in which the next microinstruction address is specified • Tiempo de generación de direcciones – Determinado por el registro de instrucción • Una por ciclo, después de que se captó la instrucción – Siguiente dirección secuencial • Lo más común – Saltos • Condicionales e incondicionales Control Microprogramado Arquitectura de Computadoras 22 Implementación • Microprocesadores actuales – Muchas instrucciones y asociadas al nivel de registro del hardware – Muchos puntos de control a ser manipulados • Esto resulta en memoria de control que – Contiene un número grande de palabras • Correspondiente al número de instrucciones a ser ejecutadas – Tiene un tamaño amplio de palabra • Debido al gran número de puntos de control a ser manipulados Control Microprogramado Arquitectura de Computadoras 23 Evolución de la Unidad de Control • Al principio todas las computadoras usaban control alambrado todas las instrucciones eran ejecutadas directamente en hardware • 1951 – Maurice Wilkes • 1964 – IBM emplea la microprogramación para emulación en la familia IBM 360 • 1970 – la mayoría de las computadoras emplean control microporgramado – Muy fácil añadir instrucciones • Los microprogramas crecieron y se volvieron demasiado lentos • Eliminar el microprograma, reducir el conunto de instrucciones, implementar el control control alambrado máquinas más rápidas. Control Microprogramado Arquitectura de Computadoras 24 Desempeño • El desempeño es dependiente de: – Poder de las instrucciones – Ciclo de reloj – Número de ciclos por instrucción • El desempeño se puede mejorar con: – Múltiples trayectorias de datos – Pre-obtención de las instrucciones y “pipelining” – Memorias caché Control Microprogramado Arquitectura de Computadoras 25 Organización de la unidad de control Registro de instrucción Indicadores De la ALU Reloj Lógica de Secuenciamiento Registro de dirección de Control Memoria de control Registro Intermedio de Control Lógica de Control Control Microprogramado Señales de Control internas Arquitectura de Computadoras Señales de Control externas 26