770 likes | 1.6k Views
Unidad 5: Unidad de Control. Docente : José Díaz Chow. La función de control. ¿ Cuál es el trabajo del CPU? Ejecutar Instrucciones ¿ Cómo lo realiza ? Desarrollando continuamente un “ ciclo de instrucción ”. La función de control.
E N D
Unidad 5: Unidad de Control Docente: José Díaz Chow
La función de control • ¿Cuáles el trabajo del CPU? • EjecutarInstrucciones • ¿Cómo lo realiza? • Desarrollandocontinuamente un “ciclo de instrucción”
La función de control • La unidad de control es la encargada de coordinaresteciclo de instrucción. • ¿Cómo lo hace? • Activandolíneas o “señales” de control quegobiernancadadispositivo. • Escomo un “titiritero” quehalalascuerdasquecontrolan los dispositivos: • Porejemplo, paracargar un valor en el registro de propósito general estudiado en la Unidad 4, esnecesarioactivarlaslíneas de selección con los valorescorrespondientes. La unidad de control se encarga de poneresosvalores en esaslíneas en el momentoprecisoqueesnecesario, pararealizar la carga.
La función de control Unidad de Control RPG
El ciclo de Instrucción • FETCH • Leer próximainstrucción: PC al MAR, Activar Read • Incrementar el PC SumarPC + 1 y actualizar PC • Decodificar • EXECUTE{Depende del tipo de Instrucción: OP} 4. Traer 1er Operando Registro Temporal (SOURCE) 5. Traer 2do Operando Y • RealizarOperación{ALU: Z [Bus] OP [Y]} • AlmacenarResultado{ Z va a Rd o a M(MAR)} • VerificarInterrupciones {¿Sí?} Servir ISR
OperacionesBásicas de Control • Transferir el contenido de un registro a otro. • Leer o escribir en la memoria. • Ejecutar una operación de la ALU. • Incrementar el PC. • Modificar el PC. • Verificar el estado de las solicitudes de interrupción. • Verificar / establecer el estado de las banderas y códigos de condición. • Limpiar, verificar o establecer bits específicos de registros auxiliares (como Y) • Decodificar una instrucción.
OperacionesBásicas de Control • Transferir el contenido de un registro a otro. • Leer o escribir en la memoria. • Ejecutar una operación de la ALU. • Incrementar el PC. • Modificar el PC. • Verificar el estado de las solicitudes de interrupción. • Verificar / establecer el estado de las banderas y códigos de condición. • Limpiar, verificar o establecer bits específicos de registros auxiliares (como Y) • Decodificar una instrucción.
Control deRegistr0s • Cadasalida de registroaislada del BUS ( requerido) • Uso de buffers no inversores. • Líneas de control para activar la entrada y salida de registros.
Operaciones para habilitar la transferencia • Poner el contenido de cadalínea (FF) del registrofuente en sucorrespondientelínea en el BUS. (Salida) • Realizarunacargaparalela de cadalínea del Bus a sucorrespondiente FF en el registrodestino. (entrada) • Necesidad de forma de controlarentrada y salida. MAR [PC]
OperacionesBásicas de Control • Transferir el contenido de un registro a otro. • Leer o escribir en la memoria. • Ejecutar una operación de la ALU. • Incrementar el PC. • Modificar el PC. • Verificar el estado de las solicitudes de interrupción. • Verificar / establecer el estado de las banderas y códigos de condición. • Limpiar, verificar o establecer bits específicos de registros auxiliares (como Y) • Decodificar una instrucción.
Control de la Memoria • Memoriaesunacolección de celdas de almacenamiento de 1 bit. • Organizada en grupos de bits: palabrao byte (linea-columna). • Cadagrupo se accede porsuposición: Dirección. • Dos operaciones: Lectura (R) y Escritura (W) • Interfaz: • Puerto para Dirección a acceder • Puerto de Datos (R,W o unificado) • Líneas de control: R, W, Completamiento de ciclo.
Leer de la Memoria • Copiar la dirección a acceder en el MAR (registro del CPU conectado al puerto de direcciones de M a través del bus de direcciones de la computadora). • Activar la señal de control READ • La memoriaselecciona la líneacorrespondiente a la dirección • Escribe en el puerto de datos a la salida el contenido de ésta. • El dato se propaga a través del bus del sistema, copiándose en el MDR del CPU. • El controlador de Memoria o algúndispositivoequivalentenotifica al CPU que el elciclo de lectura a memoria se ha completado.
Escribir en la Memoria • Copiar la dirección a acceder en el MAR. • Copiarel dato a escribir en el MDR (Registro del CPU conectado al bus de Datos). • Activar la señal de control WRITE: • La memoriaselecciona la líneacorrespondiente a la dirección, • Toma el datoquedesde el MDR se propaga hasta el puerto de datos de la Memoria a través del bu • Escribe el dato del puerto de entrada a la localidad de memoriaseleccionada.
OperacionesBásicas de Control • Transferir el contenido de un registro a otro. • Leer o escribir en la memoria. • Ejecutar una operación de la ALU. • Incrementar el PC. • Modificar el PC. • Verificar el estado de las solicitudes de interrupción. • Verificar / establecer el estado de las banderas y códigos de condición. • Limpiar, verificar o establecer bits específicos de registros auxiliares (como Y) • Decodificar una instrucción.
Contenidofaltante … • [Gran Paréntesis]
Ejecución de la instrucción • Existendiferentestipos de instrucciones. • En nuestrocasoestudiaremosunamuestra de 3 gruposmásimportantes: • OP: Operacionesbinariasaritméticas y lógicascomo ADD, SUB, AND,OR, etc. • MOV: Operación de transferencia 2D. • BRx: Operaciones de saltoscomo BR, BRN, BRZ, etc.
Ejecución de la instrucción • Necesarioestandarizar la forma en que se realiza la ejecución de lasdiferentesinstrucciones: facilidad y eficiencia. • Estrategias de ejecución para cadagrupo. • Basadas en el ciclo de instrucción • Fase FETCH esúnica para todaslasinstrucciones • Fase EXECUTE diferenciada para lasinstrucciones de acuerdo a la operación y modos de direccionamiento de los operandos.
EstrategiaInstrucciones OP • Fase Fetch: • Poner el valor del PC en el MAR y mandar a leer • Incrementar el PC y esperar MFC • Pasar el contenido del MDR al IR y Decodificar. • Fase Execute • Trasladar el primer operando a SOURCE • Trasladar el segundo operando a Y. • Efectuar la operación ALU: Z [SOURCE] + [Y] • Trasladar el resultado al destino (Rd o MDR/WRITE) • END
Estrategia MOV • Fase Fetch: • Ídem al anterior • Fase Execute • Trasladar el primer operando a SOURCE • Calcular la dirección efectiva del segundo operando o destino (conocer Rd o copiar EA en MAR). • Trasladar el [SOURCE] al destino (Rd o MDR/WRITE) • END
EstrategiainstruccionesBRx • Fase Fetch: • Ídem • Fase Execute • Si es condicional, verificar condición. Si condición no se cumple END. • Copiar PC en Y • Poner en el bus el desplazamientoalmacenado en IR • Sumar y almacenar en Z • Trasladar el [Z] al PC • END.
Estrategias PUSH y POP • Muchasarquitecturas de dos direcciones (R2 o 2D) implementanunapilacomounaopciónadicional de transferencia de datos. • Requierenimplementar PUSH y POP. • Normalmenteestaspilas son de empujehaciaabajo, por lo que: • PUSH f MOV –(SP), [f] (f puedeestar en cualquiermodo. • POP d MOV d, (SP)+ (d puedeestar en cualquiermodocontenido)
Desarrollo en pasos de control • Permitedescribir los pasos de control: conjunto de operaciones de control que se realizan en un mismopulso de reloj. • Basado en lasestrategias de ejecucióndefinidas. • “Receta” para la ejecución de la instrucción: En cadapasoespecificalasoperaciones a realizar y lasseñales de control quedebenactivarse para realizarlas. • Base para implementar la UC.
Implementación de la UC • Hemosanalizadolasdiferentesoperaciones de control requeridas para la ejecución. • Hemosdefinidolasestrategias para los diferentestipos de instrucciones. • Hemosdesarrolladolassecuencias de pasos de control, portantosabemos: • Para cadainstrucción Ii, los valores de lasseñales de control en cadapaso de control Tj. • Con estainformaciónyapodemosimplementar la UC poniendo as susalida los valoresactivos en 1 y los inactivos en 0 para cadaTj de cadaIi
Implementación de la UC • Dos enfoques: • Totalmente Hardware: Alambrado o control fijo. • Secuencia de pasos: Máquina de estadosfinitos. • Red combinacional: cadapaso se convierte a unaentrada (T1, T2, …, Tn). • Microprogramación: • Se “escribe” un microprograma para cadainstrucciónbasado en los pasos de control de la misma. • Microprogramas se almacenan en unamemoria de control • Se carga el microprograma de la instrucción y se ejecutasecuencialmente.
Implementación de la UC Estado de la Máquina Unidad de Control (Cajanegra) Señales de Control Instrucción
Implementación de la UC fija • Con esteenfoque, … • ¡Implementar la UC se reduce a obtenerlasexpresioneslógicas de cadaseñal de control de salida a partir de lasentradas Ii, Tj, Flags y Señales de entrada! • Para cadaseñal, revisamosdondeapareceencendida y definimossuexpresiónlógica, porejemplo: Zin = T1 + ADD.T6 + BRN.T5 + .... End = T8.ADD + T7.JR + T4.(~N).BRN + T7.N.BRN+ …
Implementación de la UC Fija • Y se implementan los circuitoslógicos:
Implementación de la UC Fija • En el caso de la SeñalRUN,esta se genera a partir de WMFC y MFC(señalqueinforma fin del ciclo de lectura)
Implementación de la UC Fija • Para evitar un paso de control recortado, se sincroniza MFC con el reloj base a fin que RUN se restablezca con el reloj
Implementacion de la UC Fija • Dado el masivouso de compuertas en estaimplementación, se empleanarreglos de lógicaprogramable (PLA) construidos con VLSI
Unidad de Control Microprogramada • En cadalapso de tiempodefinidopor un pulso de reloj, la UC activaunasseñales y apaga el resto. Estado de la Máquina Unidad de Control (Cajanegra) Señales de Control Instrucción
Unidad de Control Microprogramada • Si organizamoslasseñales de control con susvaloresen cadapaso se control: formanmatriz con patrónbinario. • Si lo almacenamos en unamemoria, cadapalabra de memoriacorresponde a los valores de lasseñales en un paso: Palabra de control (cw). • Tal memoriasería la base para implementar la UC: Memoria de Control.
Unidad de Control Microprogramada • Los pasos de control para ejecución de unainstrucción se almacenarían en cwcontiguas en la memoria. • Conjunto de cw de unainstrucción: Microprograma de la instrucción. Ejemplo: ADD R1, R2
Unidad de Control Microprogramada • Entonces, para implementar la UC solo se requiere leer la palabra de control adecuada en cadapaso y poner los valorescorrespondientes en la salida. • Solo necesitamos saber la dirección de memoria en cadapaso: Secuenciadorquelleve el control del microprograma: microPC • La Fase FETCH esúnica y solo se almacenaunavez a partir de la dirección 0 de la memoria de control. • El microPC (mPC) iniciaportanto en 0.
Unidad de Control Microprogramada • Con cadapulso de reloj se incrementa el mPC para queapunte a la próximainstrucción. • Al final de la Fetch, el decodificadorcarga en el mPC la direccióninicial de cadamicroprograma. • La cwprovee los valores de lasseñales de control a la salida.
Unidad de Control Microprogramada • Los Códigos y Banderas de condiciónpuedenmodificar el flujo de programa: BRx • Requerida la capacidad de modificar el mPCdurante la ejecución de un mProgarma: Microrramificación (mBr). • Al final de la instrucción, la señal Endponer el PC a 0.
Unidad de Control Microprogramada • Las Ramificaciones podrán modificar el valor del PC, ya sea cargando un nuevo valor o cambiando algunos bits del mismo. • Porejemplo, la implementación de BRN:
Unidad de Control Microprogramada • Para implementarestesalto de la dirección 211 a la 24, se debenmodificaralgunos bits del mPC. • Nóteseque para que se modifiquecorrectamente al dirección, el bit 2 del mPCdebecargarse con ¬N y el bit 0 del mPCdebecargarse con N: 1: Cuandose ejecuta la mInstrucción 20 el mPCestáapuntando a la dirección 21
Unidad de Control Microprogramada • Para la espera del ciclo de lectura, la UC debepausar el secuanciadormientrasestéactiva WMFC. • Dos enfoques: • Pollingde la señal MFC (Ciclo que verifica el estado de la señal) • Hardware de Inhibición de incrementador del mPC
Unidad de Control Microprogramada • Memoria de control debeserpequeña >> rápida. • Uso de 1 bit porseñalesineficiente: END sola en un paso de control, señalesmutuamenteexcluyentes,etc. • Propuesta: uso de códigospara reducir bits. Porejemplo, lasfunciones ALU, siexisten 15, se puedencodificar en 4 bits. Solo un Rxoutestáactivo a la vez,etc. • Unaorganización de memoria de control queemplea un bit porseñal se dice quees Horizontal. Una en quecadaseñalpertenece a un grupocodificado, se denomina Vertical. Cuandoempleamosambastécnicas, tenemosorganizaciónhíbrida.
Unidad de Control Microprogramada • Instruccionespuedentenerdiferentesmodos de direccionamiento: ADD R1, R2; ADD (R1), R2; ADD (R1)+, 1000H(R2). • El formato R de nuestraarquitectura: 64 posiblescombinaciones • No eseficienteimplementar un mprogramaporcadavariante: Usaruno solo con microrramificaciones para tratarcadamodo.
Microprograma y Microrramificaciones • Microprograma de instrucciones OP • Flujograma (Archivo PDF adjunto) • Correr el microprograma de: ADD (R7)+, R3.
Microprograma y Microrramificaciones • En estaarquitectura la memoria de control de 512 palabrasdireccionable en octal: mPC: 3 dígitosoctales. • La ejecución del mPrograma se representa de forma similar a los pasos de control pero en lugar de los pasosdescribimos la dirección de memoria y en lugar de lasaccionesdescribimoslasseñalesactivas y la definición formal de lasmicrorramificaciones.