Sistemas de Multiprocesamiento UNIDAD DE CONTROL Parte 1.- TEORÍA DEL PARALELISMO Tema 2.- ARQUITECTURA BASICA Anexo 5.- LA UNIDAD DE CONTROL. INDICE Capitulo 2.1.- MISION DE LA UNIDAD DE CONTROL EN EL COMPUTADOR.......................................................... 3 La memoria principal ..................................................................................................................................................... 4 La unidad operativa ....................................................................................................................................................... 5 La unidad de control ...................................................................................................................................................... 5 Capitulo 2.2.- OPERACIONES ELEMENTALES Y MICROINSTRUCCIONES .............................................................. 7 OPERACIONES DE TRANSFERENCIA (El encaminamiento de las informaciones).................................................... 7 OPERACIONES DE PROCESO..................................................................................................................................... 10 Capitulo 2.3.- SEÑALES DE CONTROL EN UN COMPUTADOR ELEMENTAL........................................................ 11 Memoria principal........................................................................................................................................................ 12 Unidad aritmética......................................................................................................................................................... 13 Banco de registros........................................................................................................................................................ 13 Unidad de Control........................................................................................................................................................ 13 Capitulo 2.4.- TEMPORIZACION DE LAS SEÑALES DE CONTROL. PERIODOS Y FASES .................................... 14 CRONOGRAMAS EN LA EJECUCION DE INSTRUCCIONES ................................................................................ 14 Instrucción ADD 4,7.................................................................................................................................................... 14 Capitulo 2.5.- DISEÑO DE LA UNIDAD DE CONTROL ................................................................................................ 17 Entradas y salidas del secuenciador ............................................................................................................................. 18 Secuenciadores cableados y secuenciadores microprogramados................................................................................. 19 UNIDAD DE CONTROL EN LOGICA CABLEADA Æ Secuenciadores de lógica cableada ..................................... 19 Principio del secuenciamiento ..................................................................................................................................... 19 El distribuidor de fases ................................................................................................................................................ 22 Decodificación de la instrucción.................................................................................................................................. 23 Biestables de estado ..................................................................................................................................................... 24 Trazado de los cronogramas ........................................................................................................................................ 24 Las ecuaciones lógicas................................................................................................................................................. 31 Reflexiones acerca de la concepción de los secuenciadores cableados ....................................................................... 32 Secuenciamiento de los operadores aritméticos............................................................................................................... 33 Métodos generales ....................................................................................................................................................... 33 Secuenciamiento de un operador de multiplicación por suma-desplazamiento........................................................... 33 Capitulo 2.6.- UNIDAD DE CONTROL MICROPROGRAMADA .................................................................................. 36 Definición y terminología ................................................................................................................................................ 36 El modelo de Wilkes........................................................................................................................................................ 36 La memoria de control. ................................................................................................................................................ 38 Concepto de microprograma........................................................................................................................................ 39 Codificación de las micro-instrucciones. ..................................................................................................................... 40 CARACTERISTICAS DE LA UNIDAD DE CONTROL MICROPROGRAMADA ................................................... 42 Secuenciamiento explícito ........................................................................................................................................... 42 Secuenciamiento implícito ........................................................................................................................................... 44 FORMATO DE LAS MICROINSTRUCCIONES.......................................................................................................... 45 ESTRUCTURA COMPLETA DE LA UNIDAD DE CONTROL MICROPROGRAMADA ....................................... 47 Microbifurcaciones condicionales ............................................................................................................................... 47 Microbucles y microsubrutinas.................................................................................................................................... 48 Capitulo 2.7.- EMPLEO DE VARIOS RELOJES............................................................................................................... 49 El acompasamiento en las máquinas microprogramadas. ................................................................................................ 49 Acompasamiento del desarrollo de una micro-instrucción. ......................................................................................... 49 El acompasamiento de las demandas de las micro-instrucciones. ............................................................................... 50 Capitulo 2.8.- RUPTURAS DE SECUENCIA NO PROGRAMADAS. INTERRUPCIONES Y EXCEPCIONES O CEPOS................................................................................................................................................................................. 51 Capitulo 2.9.- Concepto de macromáquina y de micromáquina. ......................................................................................... 52 Macromáquina ............................................................................................................................................................. 52 ETSII – Dpto. Tecnología Electrónica Página: 1 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Micromáquina .............................................................................................................................................................. 52 Ordenadores parcialmente microprogramados. ........................................................................................................... 52 Microprogramación a dos niveles. ............................................................................................................................... 53 Ejemplo de máquina microprogramada ........................................................................................................................... 53 La ruta de datos y su control microprogramado. ......................................................................................................... 53 Presentación de Microabacus........................................................................................................................................... 55 El microprograma de suma en Microabacus................................................................................................................ 57 Capitulo 2.10.- Diseño de una UCP con circuitos integrados SSI y MSI............................................................................ 57 LA ORIENTACION DIDACTICA DEL PROYECTO .................................................................................................. 57 FUNCIONAMIENTO BASICO...................................................................................................................................... 58 BLOQUE ARITMÉTICO-LOGICO ............................................................................................................................... 60 EL CONTADOR DE PROGRAMA ............................................................................................................................... 62 1. Forma habitual ......................................................................................................................................................... 64 2. En modo de direccionamiento absoluto ................................................................................................................... 64 SECUENCIADOR........................................................................................................................................................... 64 CRONOGRAMAS DE FUNCIONAMIENTO ............................................................................................................... 67 MODOS DE DIRECCIONAMIENTO Y REPERTORIO DE INSTRUCCIONES ....................................................... 69 CPL .............................................................................................................................................................................. 69 SEC .............................................................................................................................................................................. 69 CLC.............................................................................................................................................................................. 70 NOP ............................................................................................................................................................................. 70 JC ................................................................................................................................................................................. 70 JZ ................................................................................................................................................................................. 70 SBC.............................................................................................................................................................................. 70 JMP .............................................................................................................................................................................. 70 LDA ............................................................................................................................................................................. 71 ADC............................................................................................................................................................................. 71 STA.............................................................................................................................................................................. 71 AND............................................................................................................................................................................. 71 STB .............................................................................................................................................................................. 71 LDA # .......................................................................................................................................................................... 72 OR................................................................................................................................................................................ 72 MOV A,B..................................................................................................................................................................... 72 DIAGRAMAS DE CONEXIONADO DE LOS CIRCUITOS INTEGRADOS EMPLEADOS EN LA CONSTRUCCION DE LA UCP ..................................................................................................................................... 75 Usos y ventajas de la microprogramación ....................................................................................................................... 78 Inicialización de un computador ...................................................................................................................................... 79 ETSII – Dpto. Tecnología Electrónica Página: 2 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Capitulo 2.1.- MISION DE LA UNIDAD DE CONTROL EN EL COMPUTADOR Es en este capítulo central donde abordaremos efectivamente los problemas ligados a la estructura y al funcionamiento de conjunto de un computador. Un computador digital consta de tres bloques fundamentales: 1. UCP o Unidad Central de Proceso, formada por la Unidad de Control y la Unidad Operativa. 2. Memoria principal, donde residen los programas y los datos. 3. Unidad de Entradas y Salidas, que comunica a la máquina con los periféricos exteriores. Comparando al computador con el ser humano, la UCP puede asemejarse al "corazón" de la máquina. Mantiene el control general y el envío de información a todos los elementos. La memoria principal hace las veces del "cerebro" y la Unidad de Entrada y Salida actúa a modo de "extremidades y sentidos", por los que recibe y entrega la información. Los tres bloques están comunicados entre sí mediante conjuntos de líneas que transportan información binaria del mismo tipo. A dichos conjuntos se les denomina colectores, aunque en el lenguaje técnico se les conoce por buses. La Unidad de Control se encarga de determinar la dirección de la memoria o de la Unidad de Entrada y Salida en la que se realiza el acceso o transferencia de información. Para esta selección utiliza un colector de líneas digitales, que recibe el nombre de bus de direcciones. n Si este bus está formado por n líneas, se tendrá acceso a 2 posiciones diferentes. Una vez elegidos los elementos de trabajo, hace falta otro conjunto de líneas para transferir la información. A este grupo de líneas se le llama bus de datos. ETSII – Dpto. Tecnología Electrónica Página: 3 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Así como el bus de direcciones es de carácter unidireccional porque su contenido siempre parte de la Unidad de Control, el bus de datos es bidireccional y triestado, pues está compartido por todos los elementos del computador. La Unidad de Control establece cuál es el elemento emisor y cuál actúa de receptor. El número de líneas del bus de datos define la palabra de trabajo del computador. Finalmente, hay un colector de líneas que transporta señales auxiliares de gobierno y sincronización conocido como bus de control. Transporta los impulsos de reloj, las señales que indican si la operación es lectura o escritura, las de habilitación de buffers y registros, las de inicialización, etc. A continuación, se hace una somera descripción de los bloques básicos del computador. La memoria principal Los códigos binarios de las instrucciones que ha de ejecutar la UCP, así como los datos o informaciones digitales a procesar o ya procesadas, residen en la memoria principal. No obstante, pueden existir memorias auxiliares de discos o cintas, por ejemplo, que contengan otros programas y datos o partes de un programa que en ese momento no se están procesando. Las memorias principales de los computadores son, generalmente, de semiconductores y están fabricadas en forma de circuitos integrados. Hay dos grandes grupos: RAM: Memorias de lectura y escritura de carácter volátil, que suelen guardar, de forma temporal, los datos que entran o salen de la ejecución del programa de trabajo. ROM: Sólo se pueden leer y son no volátiles. Guardan los códigos de las microinstrucciones que conforman las instrucciones. En la figura se muestra la constitución interna de una memoria y su conexionado con los buses del sistema. Cada vez que la Unidad de Control envía por el bus de direcciones una que corresponda a la memoria, ésta la registra, la decodifica y, finalmente, selecciona una posición en la que se graba o se lee la información que proviene o sale por el bus de datos a través del Registro de datos e instrucciones. ETSII – Dpto. Tecnología Electrónica Página: 4 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL La unidad operativa Su constitución y comportamiento es similar al de una Unidad Lógico Aritmética (ALU). Es la sección encargada de efectuar una serie de operaciones, que soportan a la mayoría de las instrucciones del computador. Actúa combinadamente con una serie de registros y controla el Registro de Estado, que se compone de varios biestables, que funcionan como señalizadores, avisando de ciertas peculiaridades del resultado cuando se realiza una operación en la ALU. A veces, el registro que contiene uno de los operandos que se introducen a la ALU, también actúa como depositario del resultado, en cuyo caso suele recibir el nombre de Acumulador. La unidad de control La misión prioritaria de esta sección es interpretar y controlar la ejecución de las instrucciones recibidas desde la memoria principal. La Unidad de Control recibe, a través del bus de datos, el código binario de la instrucción en curso, que lo registra convenientemente. ETSII – Dpto. Tecnología Electrónica Página: 5 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Después, el Decodificador de instrucciones selecciona las posiciones de una memoria ROM, llamada Memoria de Control, que corresponden a dicha instrucción y en las que se hallan grabados los códigos de las señales que controlan cada uno de los pasos elementales en que se descompone la instrucción y que reciben la denominación de microinstrucciones. Por último, el Secuenciador se encarga de sacar y distribuir a los elementos del sistema las correspondientes señales de control de cada microinstrucción y, de esta manera, ejecutar ordenadamente la instrucción en curso. Dentro de la Unidad de Control se encuentra el Contador de Programa (PC), encargado de enviar por el bus de direcciones la posición de la memoria donde se encuentra la siguiente instrucción. Aunque normalmente este contador se incrementa en cuanto la memoria principal acepta la dirección anterior, existen instrucciones de bifurcación que permiten variar su contenido de forma diferente, dando lugar a rupturas de programa y toma de decisiones de acuerdo con los resultados que se van obteniendo. Además de recoger las instrucciones de la memoria principal, interpretarlas y ejecutarlas, la Unidad de Control resuelve las situaciones anómalas o de conflicto que pueden ocurrir en el computador. La información que utiliza la Unidad de Control para llevar a cabo su cometido es la siguiente: - Instrucción. - Registro de estado con sus señalizadores. - Contador de períodos. - Señales de E/S. El código de operación (OP) de la instrucción indica a la Unidad de Control la operación que se debe ejecutar y el modo de direccionamiento utilizado. Luego se localizan los operandos, se mandan a la Unidad Aritmética, en su caso, y se almacena el resultado. El registro de estado contiene información sobre el resultado de la operación anterior y de posibles situaciones anómalas o especiales, tales como desbordamiento, interrupciones, errores de paridad, etc., que exigen una acción determinada por parte de la Unidad de Control. En general, la información sobre el estado del procesador se usa para hacer rupturas condicionales en la secuencia del programa, bien indicadas mediante instrucciones, o bien, originadas por interrupciones externas o situaciones de error. Las señales de Entrada y Salida permiten el diálogo con los periféricos. ETSII – Dpto. Tecnología Electrónica Página: 6 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Capitulo 2.2.- OPERACIONES ELEMENTALES Y MICROINSTRUCCIONES Vamos a describir la unidad central, tomando como ejemplo la ejecución de algunas instrucciones en Abacus. Abacus es una máquina con registros formados por biestables, donde las transferencias entre registros se efectúan en paralelo. Antes de completar la descripción de Abacus debemos recordar la forma en que se llevarán a efecto las transferencias de informaciones entre registros y definir un lenguaje para describirlas. La ejecución de cada instrucción se descompone en una serie ordenada de pequeños pasos, que reciben el nombre de operaciones elementales. Ejemplos de estas operaciones elementales son: - Lectura de un operando. - Incremento del Contador de Programa. - Ejecución de una operación aritmética. - Suma de la base más el desplazamiento para hallar el valor efectivo de una dirección de la memoria. La ejecución de cada operación elemental requiere la activación de un conjunto de señales de control, que genera la Unidad de Control a través de su Secuenciador. En cada ciclo máquina, generado por un reloj, el Secuenciador envía una serie de señales de control que realizan una o varias operaciones elementales, que configuran una microinstrucción. Una instrucción consta de varias microinstrucciones y cuando se realiza la última de una instrucción, la Unidad de Control se prepara para recibir el código OP de la siguiente instrucción del programa y comenzar la ejecución de sus respectivas microinstrucciones. Las operaciones elementales que puede hacer todo sistema digital, se clasifican en dos grupos: 1. Operaciones de transferencia. 2. Operaciones de proceso. OPERACIONES DE TRANSFERENCIA (El encaminamiento de las informaciones) En las operaciones de transferencia se comienza seleccionando los elementos que participan (posiciones de memoria o registros), uno de los cuales actúa como origen y el otro como destino. Luego se establece un camino de comunicación entre las salidas del origen y las entradas del destino. Finalmente, se envía al destino una señal para que se "cargue" con la información que existe en su entrada. Las puertas impulsionales que franquean la entrada a los diferentes biestables de un registro serán esquematizadas por una sola puerta. Utilizaremos las dos simbolizaciones: ETSII – Dpto. Tecnología Electrónica Página: 7 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL La salida de un registro desembocará generalmente sobre un bus. Dado que varios registros pudieran desembocar sobre el mismo bus, les dotaremos de puertas de salida gobernadas por señales de nivel. Un conjunto de registros podría estar situado entre dos buses como se ilustra en la figura. Cuando en el bus E han quedado establecidos los niveles de señal, basta que el impulso E1 abra la puerta de entrada para que la información se inscriba en el registro 1. Mientras que la puerta de salida se mantenga abierta gracias a la señal S1, la información contenida en el registro 1 estará disponible sobre el bus S. La figura ilustra el proceso de transferencia entre dos registros: La apertura de la puerta de nivel por la señal SR1 permitirá hacer subir al bus intermediario los niveles de tensión dados por los biestables del registro R1. Una vez estabilizados estos niveles podrá enviarse el impulso ER2, que autorizará la carga en R2 del contenido latente en el bus. Preciso es, entonces, mantener la señal SR1 durante un intervalo suficiente para que los niveles se estabilicen en el bus intermediario antes de atacar con el impulso ER2. En una máquina, estas señales estarán sincronizadas normalmente con un reloj productor de impulsos periódicos ETSII – Dpto. Tecnología Electrónica Página: 8 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL La operación de transferencia del contenido de R1 a R2 la anotaremos así: (R1) Æ R2, o también SR1, ER2. Recuérdese que a ER2 se le llama señal de muestreo. En la figura siguiente se presenta a un colector de líneas de comunicación o bus al que están conectados tres registros A, B y C. Una operación elemental de transferencia entre los registros A y C exige establecer un camino, "abriendo" las salidas del registro A al bus, lo que se consigue activando la señal de control, TA. Debido a la compartición del bus, las salidas de los registros serán triestado y la activación de TA origina la desaparición del estado flotante en las salidas del registro A y la transferencia de su contenido al bus. Una vez estabilizada la información en el bus y, por tanto, en las entradas de los registros conectados a él, se envía la señal de "carga" al elemento destino, que, en este ejemplo, consiste en la activación de la señal FC del registro C. Diagrama de las señales de control utilizadas en esta operación elemental de transferencia. La flecha de la señal FC define el flanco de activación. ETSII – Dpto. Tecnología Electrónica Página: 9 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL OPERACIONES DE PROCESO Las operaciones elementales de proceso tienen un planteamiento básico idéntico a las de transferencia. La diferencia fundamental es que la información origen se hace pasar por un operador en su camino hacia el destino. En caso de que la operación sea diádica, los dos orígenes u operandos confluyen en el operador que produce el resultado. Un operador de suma elemental de los operandos que recibe por los multiplexores MUX1 y MUX2, los cuales reciben los contenidos de los registros A, B, C y D. El resultado del operador puede cargarse en cualquiera de los registros, activando su señal de carga correspondiente. Cronograma de las señales que se requieren para efectuar la suma A:= A + D. ETSII – Dpto. Tecnología Electrónica Página: 10 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Capitulo 2.3.- SEÑALES DE CONTROL EN UN COMPUTADOR ELEMENTAL En la figura se presenta una máquina elemental, que sigue la estructura propuesta por von Neumann, en la que se especifican las señales de control de cada elemento. En base a este sencillo computador se analizarán las instrucciones máquina y se deducirán los cronogramas correspondientes. ETSII – Dpto. Tecnología Electrónica Página: 11 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Se describen, seguidamente, cada uno de los bloques principales del computador se indica la función de las señales de control que les gobiernan. Memoria principal La memoria principal Mp lleva asociados dos registros auxiliares, el de direcciones D y el de datos RM. Los cronogramas de los ciclos de lectura y escritura en los que participan las siguientes señales: CM Æ Señal que inicia un ciclo de memoria. L Æ Señal que especifica un ciclo de lectura. ES Æ Señal que sirve para especificar un ciclo de escritura. FD Æ Señal de flanco, que "carga" en el registro de direcciones D, la información disponible en el bus de direcciones. TM Æ Señal de activación triestado, que conecta la salida de la memoria al bus de datos. FLM Æ Señal que "carga" en el registro RM la salida de la memoria. Se puede emplear al final del ciclo de lectura. FEM Æ Señal que "carga" en el registro RM la información existente en el bus de datos. Es precisa su utilización cuando se procede a llevar a cabo una escritura. Si, tanto el ciclo de lectura como el de escritura requieren 300 ns Æ las señales L y ES han de tener una duración de 300 ns. Por otro lado, las señales CM y TM serán de 100 ns, que es el período básico que se considera en este computador. En el ciclo de lectura la salida de la memoria se ha "abierto" al bus de datos en el último período, con la señal TM. De esta forma, la información leída está disponible al final del ciclo en el bus de datos, pudiéndose almacenar en cualquiera de los registros que éste tiene conectados. En el ciclo de escritura hay que almacenar, previamente, el dato en el registro RM, lo que se consigue con la señal FEM. En ambos ciclos, la señal FD introduce, antes del comienzo de los ciclos, la dirección de memoria a la que hay que acceder. ETSII – Dpto. Tecnología Electrónica Página: 12 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Unidad aritmética Se alimenta a través de un par de multiplexores (MUX X y MUX Y) de tres entradas y una salida. Los multiplexores se gobiernan con las señales XX1 y XX2, que, en forma general, se denominan XX, y XY. Las entradas 1, 2 y 3 de los multiplexores se seleccionan con las señales XX y XY al tomar los valores 00, 01 y 11, respectivamente. Al basarse la Unidad Aritmética en la conocida ALU modelo 74181, se requieren cuatro señales de control (OP) para seleccionar una de las 16 operaciones posibles, en cada uno de los modos de trabajo, lógico y aritmético. La ALU dispone de un registro auxiliar RA, que se carga con la señal FRA. El registro RA es transparente al usuario, lo que significa que no se puede direccionar en las instrucciones máquina, puesto que sólo sirve para almacenar resultados intermedios. La salida de la ALU se conecta a tres elementos: 1. Entrada 1 del multiplexor X. 2. Bus de datos, con la señal TA. 3. Bus de direcciones, con la señal TD. La ALU no almacena datos. Sólo establece un camino entre uno o dos orígenes y el destino, por cuyo motivo sus señales de control XX, XY, OP, TA y TD son activas por nivel y sirven para establecer el camino deseado entre el origen y el destino, por lo que han de permanecer estables durante todo el tiempo que dure la operación elemental de proceso. Banco de registros Consta de 16 registros, que tienen dos puertas A y B de salida y una A' de entrada. Mediante las direcciones DA y DB de 4 bits se pueden leer dos registros a la vez, cuyos contenidos se obtienen en las salidas A y B. Además, las entradas del registro de direcciones DA quedan conectadas a la entrada A', por lo que puede cargarse con nueva información procedente del bus de datos, activando la señal de flanco E. El contenido de DA no se modifica hasta que se activa E, independientemente de la ínformación en A'. Dado que las direcciones de los registros empleados forman parte de las instrucciones, la Unidad de Control deberá recoger los bits correspondientes del código de la instrucción, de acuerdo con su formato, y encaminarlos a DA o DB. Unidad de Control Junto a la Unidad de Control propiamente dicha, que contiene al Secuenciador que genera las señales de control del sistema en cada microinstrucción, se necesitan 4 registros de propósito específico, que se describen someramente. 1. Contador de Programa (P). Con la señal FP se "carga" nueva información en este registro. Además, la señal triestado TP de activación, pasa el contenido de P al bus de direcciones. Finalmente, P también está conectado a la entrada 3 del multiplexor Y. 2. Registro de Instrucciones (I). Se carga con el flanco de la señal Fl. Puesto que los operandos inmediatos y los desplazamientos, en los direccionamientos relativos, hay que enviarlos a la Unidad Aritmética, se precisa la señal triestado de activación TI que, además, realiza la expansión de signo adecuada para ajustar estas informaciones al ancho de la palabra de la Unidad Aritmética. 3. Registro de Estado (EST). Almacena, entre otras cosas, las señales de estado generadas por la Unidad Aritmética. La "carga" se efectúa mediante varias señales de flanco FEST, que originan una carga selectiva, dependiendo de la instrucción ejecutada. 4. Registro de fases y períodos (RF). Se trata de un registro contador que se va incrementando con los impulsos de un oscilador o reloj maestro. Permite diferenciar los correspondientes períodos y fases de las instrucciones. La señal PO pone a este registro a cero, iniciando la cuenta de los períodos en cada instrucción, ETSII – Dpto. Tecnología Electrónica Página: 13 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Capitulo 2.4.- TEMPORIZACION DE LAS SEÑALES DE CONTROL. PERIODOS Y FASES La mayoría de los computadores poseen un funcionamiento síncrono, gobernado por un oscilador o reloj general. Los flancos de este reloj representan, la temporización básica del sistema, puesto que determinan el menor tiempo que puede durar una operación elemental. Se llama periodo a la duración de un tiempo elemental determinado por el reloj maestro. En nuestro computador básico, el reloj trabaja a una frecuencia de 10 MHz, lo que equivale a un período de 100 ns. La ejecución de una instrucción máquina, de tipo general, se divide en 4 fases: 1. Lectura del código de la instrucción. Fase de búsqueda o fetch. 2. Lectura de los operandos y decodificación de la instrucción. 3. Ejecución de la operación. 4. Almacenamiento del resultado. Evidentemente, no todas las instrucciones tienen estas 4 fases perfectamente diferenciadas, pero todas las instrucciones se pueden formar con una o varias de ellas. Así, una suma tiene las 4 fases diferenciadas, mientras que una bifurcación cuenta solamente con la primera y la segunda, que sirven para determinar la dirección de la bifurcación. Cada fase puede necesitar uno o varios períodos, como se muestra en la figura. El objetivo de dividir las instrucciones en fases reside en alcanzar una sistematización de su tratamiento para simplificar el diseño de la Unidad de Control. CRONOGRAMAS EN LA EJECUCION DE INSTRUCCIONES Se pasa a desarrollar las operaciones elementales que conforman algunas instrucciones y se construyen los cronogramas correspondientes de las señales de control. Instrucción ADD 4,7 Se trata de una sencilla instrucción de suma en modelo de ejecución Registro-Registro. Suma los registros R4 y R7, depositando el resultado en R4. El formato de esta instrucción se muestra en la figura. ETSII – Dpto. Tecnología Electrónica Página: 14 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL La ejecución de ¡a instrucción consta de las siguientes operaciones elementales: 1) D:= P Transferencia del contenido del Contador de Programa P al Registro de Direcciones D. 2) I:= M(D) Ejecución de un ciclo de lectura en la memoria principal, "cargando" el resultado en el registro I. 3) Decodificación de la instrucción leída. 4) R4:= R4 + R7 Realización de la suma, para lo que se establecen los siguientes caminos: a) Conexión de R4 a la puerta Y del operador a través del banco de registros. b) Conexión de R7 a la puerta X del operador, vía la puerta B del banco de registros. c) Activación de las señales OP con el código correspondiente a la suma X + Y. d) Conexión de la salida del operador a la entrada A' del banco de registros. 5) Finalmente, se debe preparar la ejecución de la siguiente instrucción. Cronograma con el que se efectúan las 5 operaciones elementales de esta instrucción, que se pasan a comentar: 1) D :=P Para cargar el registro de Direcciones con el contenido del Contador de Programa, se "abre" P al bus de direcciones con la señal TP. Además, en el periodo anterior (-1) se debe activar la señal de flanco FD. 2) I := M(D) Para realizar un ciclo de lectura en la memoria principal se necesitan tres períodos (300 ns), que son los períodos 0, 1 y 2. Se emplean las señales de control CM y L. Como el resultado de la lectura hay que almacenarlo en el Registro de Instrucciones I, se activa la señal TM en el período 2, abriendo la memoria al bus de datos. También se activa la señal FI, que carga el contenido del bus de datos en I. 3) La decodificación de la instrucción supone el reconocimiento de su código de operación. Desde el punto de vista del cronograma, esto significa que no se pueden generar señales de control, correspondientes a la instrucción leída, hasta un cierto tiempo después de estar almacenada en el registro I. Este tiempo viene determinado por los retardos internos de la Unidad de Control, que en este ejemplo se supone que es de un período (período 3). 4) R4 = R4 + R7 Para conectar R4 a la entrada Y del operador hay que introducir por los 4 bits del Registro de Direcciones DA del banco de registros, ¡a dirección de R4 que es 0100. Además, las dos señales XY deberán tomar el valor 10 para seleccionar la entrada 2 del multiplexor Y. De forma similar, para conectar R7 a la entrada X, hay que hacer que DB = 0111 y XX = 11, con el fin de seleccionar la entrada 3 del multiplexor X. La Unidad de Control encaminará los 4 bits del formato de la instrucción que representa a R4 (bits 4 al 7) a la entrada DA y los bits 0 al 3, a la entrada DB del banco de registros. Luego se debe activar el operador con el código OP de la suma. La salida del operador se abre al bus de datos con la señal TA, pudiéndose acceder a la entrada A' del banco de registros, donde se encuentra el destino R4. Todas estas señales se activan en el período 4, en cuyo final, la señal de flanco E almacena el resultado de la suma en R4. El cronograma tiene realzado a trazo continuo el incremento del Contador de Programa, operación elemental que se realiza en el ciclo 2, recirculando el contenido del registro P a través de la Unidad Aritmética, que funciona como simple incrementador. Las señales que establecen este camino son: XY = 11, OP = Y + 1 y TD. La señal de carga FD almacena el valor incrementado, nuevamente, en P. Obsérvese que el incremento del Contador de Programa puede hacerse en cualquier ciclo posterior a "-1". ETSII – Dpto. Tecnología Electrónica Página: 15 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Lo normal es hacerlo en el período muerto de la fase de búsqueda, pero lo más tarde posible para solapar al máximo el final de la instrucción anterior con el principio de la instrucción en curso. Al final de la instrucción, se carga el Registro de Estado con la activación de FEST y se pone a cero el Registro de Fases con PO. ETSII – Dpto. Tecnología Electrónica Página: 16 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Capitulo 2.5.- DISEÑO DE LA UNIDAD DE CONTROL Este capítulo analiza el corazón mismo de la computadora, el secuenciador, que gobierna las transferencias y tratamientos de las informaciones, distribuyendo las microórdenes a lo largo de la ruta de datos. ETSII – Dpto. Tecnología Electrónica Página: 17 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL El secuenciador central de un ordenador es el órgano que genera las microórdenes, que son distribuidas a lo largo de la ruta de datos para activarla y gobernar sus diversos elementos constituyentes. Entradas y salidas del secuenciador La Unidad de Control parte del código de operación contenido en el Registro de Instrucciones I, así como del período determinado por el contador RF. Con estas informaciones, a las que ocasionalmente se debe añadir la salida de "comparador de estado", quedan definidas las señales de control que se han de activar. Vamos, en primer lugar, a definir el secuenciador de forma externa, es decir, por sus informaciones de entrada y por sus informaciones de salida. ¾ las informaciones de salida del secuenciador no son sino las rnicroórdenes que deben distribuirse por la ruta de datos según cronogramas precisos a causa de los tiempos de respuesta de los órganos gobernados, ¾ las informaciones de entrada al secuenciador son suministradas: o de una parte, por la instrucción, como son el código de operación, las condiciones de direccionamiento y las direcciones de registros; o de otra parte, por el estado de máquina, que agrupa un cierto número de informaciones como son el estado del pupitre del operador, los indicadores de error, las demandas de interrupción, los indicadores del estado de la memoria y de las unidades funcionales, el código de condición de la unidad aritméticalógica, etc. El diseño de la Unidad de Control exige una especificación previa de todas las instrucciones máquina que deberá interpretar, que puede hacerse a nivel de cronograma, a nivel de operaciones elementales, o, de una forma equivalente, mediante un lenguaje simbólico, que exprese, con todo detalle, las operaciones a realizar y su secuenciamiento. Toda instrucción se encarga de iniciar la siguiente. El secuenciamiento de las microórdenes en el tiempo puede llevarse a cabo de dos maneras distintas: (1) El secuenciador conoce los tiempos de respuesta de los diferentes órganos gobernados. Entonces hace intervenir los retardos apropiados entre las diferentes órdenes sucesivas de manera que tengan tiempo de ejecutarse las operaciones. Las microórdenes van generalmente sincronizadas con los impulsos de un reloj. La duración de las señales viene determinada por el reloj, debiéndose acomodar a un número entero de períodos. Así, si una operación necesita un poco más de dos batidos de reloj, el secuenciador esperará al tercer batido posterior al lanzamiento de la operación para enviar la siguiente microórden. Este es el principio de base de un ordenador síncrono. (2) El secuenciador recibe de los diferentes órganos del calculador señales indicando que han terminado las operaciones ordenadas y que se liberan; aquél puede eventualmente comprobar su estado. ETSII – Dpto. Tecnología Electrónica Página: 18 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL No lanzará una nueva operación más que después de haber quedado advertido de que las operaciones precedentes han sido ejecutadas completamente y de haberse asegurado que el órgano que debe realizarla está libre. Por ejemplo, no utilizará el resultado de una multiplicación más que cuando el operador de multiplicación le haya facilitado una señal validando dicho resultado. Este es el principio de base de un ordenador asíncrono. Los pequeños calculadores son, en su mayoría, síncronos. Los calculadores potentes, capaces de operaciones simultáneas, son parcialmente asíncronos, ya que cada una de sus diferentes unidades componentes posee secuenciador propio. Secuenciadores cableados y secuenciadores microprogramados Se distinguen dos grandes clases de secuenciadores: ¾ los secuenciadores cableados, realizados en forma de circuito secuencial electrónico y ¾ los secuenciadores microprogramados, que corresponden a la introducción en la unidad de control de una memoria con un pequeño programa, llamado microprograma, para cada instrucción. El desarrollo de este microprograma genera las microórdenes que gobiernan la ejecución de la instrucción. En muy primera aproximación puede imaginarse el secuenciador microprogramado como un pequeñísimo calculador incluido en el grande. UNIDAD DE CONTROL EN LOGICA CABLEADA Æ Secuenciadores de lógica cableada La Unidad de Control es un mero traductor o circuito combinacional que convierte al código OP más el período en las señales de control especificadas en el control. La Unidad de Control cableada se constituye mediante puertas lógicas y se diseña siguiendo alguno de los métodos clásicos de diseño lógico. Para tener una idea de la dimensión y complejidad que reviste el diseño de la Unidad de Control, basta con tener en cuenta que un modelo sencillo con códigos de operación de 8 bits y cuyas instrucciones pueden alcanzar hasta 32 períodos y 16 como media, precisa de un registro RF de 5 bits. Este pequeño computador tendrá del orden de 150 señales de control, por lo que se trata de diseñar un circuito con 14 señales de entrada y 150 de salida, con unas 4.000 combinaciones de excitación diferentes. A todo ello, hay que añadir los análisis y ajustes de retardos en los distintos caminos internos de la Unidad de Control. La ventaja principal de este tipo de diseño es que dota al circuito de una gran rapidez, consiguiendo una velocidad de funcionamiento mayor que usando memoria. Sin embargo, dada la complejidad del circuito, su diseño y puesta a punto son muy costosos y laboriosos. Además, es muy difícil realizar modificaciones posteriores. Este tipo de Unidad de Control se usa en computadores muy potentes. Principio del secuenciamiento El objetivo es generar microórdenes distanciadas en el tiempo por retardos apropiados, Una cadena de retardos permite, en el plano teórico, realizar esta función. Por ejemplo, el inicio de la instrucción de almacenamiento en Abacus (Búsqueda de la instrucción), suponiendo que la dirección de la instrucción se encuentre sobre el bus S será efectuado por la cadena de retardos, muy esquemáticamente indicada, de la figura. ETSII – Dpto. Tecnología Electrónica Página: 19 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Una vez inicializada por la señal de inicio de instrucción, esta cadena generará las microordenes sucesivas. Los retardos estarán ajustados para acomodarse a los tiempos efectivos de las operaciones o las subidas de nivel correspondientes. Las señales no impulsionales permanecerán activadas hasta anulación (por ejemplo SRM será anulada, después de los retardos θ1 , por la señal anotada SRM ) Si la memoria posee un funcionamiento asíncrono en relación con el calculador, tendremos el esquema de principio ilustrado por la figura, en donde las puertas AND indican simbólicamente que no puede pasarse a la generación de las siguientes microordenes hasta que las operaciones anteriormente ordenadas no hayan concluido. Volvamos al caso general. Las diversas instrucciones posibles se distribuyen por ramas, una instrucción por rama. Las salidas de las diferentes ramas se agrupan y la salida común vuelve al inicio de una nueva instrucción. Los bifurcadores son gobernados por las señales procedentes del decodificador de instrucciones. ETSII – Dpto. Tecnología Electrónica Página: 20 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Las intervenciones externas (pupitre de operador, petición de ciclo para entradas-salidas, interrupciones) son también consideradas por bifurcadores lógicos. La figura nos da un ejemplo de ello bajo la hipótesis de que el computador no puede ser detenido por el operador ni acepta una interrupción más que al fin de una instrucción y acepta una petición de ciclo de memoria a cada fín de ciclo, pero, después de haberlo concedido, utiliza él mismo el ciclo siguiente. ETSII – Dpto. Tecnología Electrónica Página: 21 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Los esquemas vistos han sido muy simplificados; en particular, sería necesario tomar en cuenta condiciones de direccionamiento, registros direccionables implicados, etc. El distribuidor de fases Los anteriores esquemas de principio constituyen, a veces, la base para la realización de los secuenciadores, especialmente en las máquinas asíncronas. Sin embargo en la mayoría de los casos se sincronizan las distintas microórdenes con señales temporales regularmente espaciadas, provenientes de un mismo reloj. A cada impulso de reloj debe ser generado un cierto número de microórdenes. Al ser idénticas todas las señales de reloj, es preciso dar al secuenciador los medios para situarse por referencia al tiempo, por ejemplo, para saber en qué fase del ciclo o de la instrucción se encuentra, es ésta la función del distribuidor de fases, que, partiendo de los impulsos periódicos de reloj, produce señales de impulso o de nivel acordes a las diferentes fases del ciclo de memoria o de la instrucción. La figura esquematiza el principio en que se basa un distribuidor de cuatro fases. En un instante determinado, solamente uno de los biestables B0, B1, B2, B3 está posicionado a 1. El próximo impulso de reloj devolverá este biestable a 0, y posicionará el siguiente biestable a 1. Los niveles lógicos Θ 0, Θ 1, Θ 2, Θ 3, serán ciertos uno a continuación del otro, pero sólo uno en un momento dado. Los impulsos θ 0, θ 1, θ 2, θ 3, sincronizados con las señales de reloj, se producirán cada cuatro batidos. Suponiendo que el tiempo de basculamiento de los biestables sea igual a la anchura del impulso del reloj, se obtiene el cronograma de base representado en la figura. En el caso de Abacus, en el que el ciclo de memoria equivale a dos batidos de reloj, resultará cómodo emplear un distribuidor de dos fases (respectivamente lectura y escritura). ETSII – Dpto. Tecnología Electrónica Página: 22 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Decodificación de la instrucción La instrucción consta de diferentes campos de información de interés para el secuenciador, como son el código de operación, las condiciones de direccionamiento, la dirección de registros o de unidades periféricas, etc. Dichos campos deben ser decodificados, teniendo en cuenta, sin embargo, que ciertos campos se presentan en forma ya decodificada, como sucede con las condiciones de direccionamiento cuando cada bit tiene su significado. La decodificación del código de operación queda simplificada cuando éste va codificado por campos. El decodificador de instrucción se encarga de realizar esta decodificación. Puede utilizarse una matriz de diodos o de transistores. Por ejemplo, para Abacus, dotado de las operaciones indicadas en la tabla y capaz de direccionamiento indirecto, se necesitaría el decodificador representado en la figura. Se observa en este esquema que la decodificación puede ser considerada prácticamente instantánea y las señales salidas de la matriz permanecen posicionadas todo el tiempo que la instrucción correspondiente se encuentra en el registro de instrucción. ETSII – Dpto. Tecnología Electrónica Página: 23 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Biestables de estado Se define el estado del calculador por el contenido de un cierto número de biestables, llamados biestables de estado. Los hay de dos clases: ¾ los primeros memorizan lo que hemos denominado el estado de máquina. Son posicionados por las instrucciones y los resultados de operaciones, o también por acontecimientos exteriores, petición de ciclo de memoria, interrupción, manipulación en el pupitre, etc. Sus salidas figuran entre las informaciones de entrada al secuenciador. ¾ Los segundos constituyen parte integrante del secuenciador. Es éste quien los posiciona y quien utiliza su salida. Esencialmente sirven de marcas temporales. En cierto modo, los biestables del distribuidor de fases podrían incluirse dentro de esta categoría. Veremos cómo, una vez definidos los biestables de estado, es decir, los estados, internos del secuenciador, éste puede ser analizado corno un circuito combinacional. Dotaremos a Abacus de los cuatro biestables de estado representados en la figura. Trazado de los cronogramas Hasta aquí, sólo hemos definido las informaciones de entrada al secuenciador. Ahora debemos abordar el problema de las salidas que no son sino las microórdenes. Una primera etapa consiste en suponer resuelto el problema: por cada instrucción se traza el cronograma deseado, teniendo en cuenta los tiempos de respuesta de los diferentes operadores, y de él se deducen las microórdenes por generar a cada batido de reloj. Una segunda etapa consiste en relacionar la generación de las microórdenes, tal como aparece en los cronogramas, no sólo con los batidos de reloj, sino también con las distintas informaciones de entrada y de estado del secuenciador. Se llega así a la formulación de lo que se ha convenido en llamar las ecuaciones lógicas de la máquina. Estas últimas, asociadas al dato de los biestables de estado, definen completamente al secuenciador. Vamos a concretar estas operaciones tomando como ejemplo a Abacus. ETSII – Dpto. Tecnología Electrónica Página: 24 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 25 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Abacus está provisto: (1) de un distribuidor de fases de dos fases, cuyas salidas están representadas en la figura. (2) del decodificador de instrucción descrito en el parágrafo anterior. (3) de los biestables de estado definidos en el parágrafo anterior. Se supondrá que el funcionamiento del reloj está condicionado por la señal de detención-marcha, y que la puesta en marcha inicializa al distribuidor de fase. Las figuras 15 a 19 presentan los cronogramas de las diferentes instrucciones de Abacus. ETSII – Dpto. Tecnología Electrónica Página: 26 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 27 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 28 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 29 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL La figura describe el ciclo de búsqueda de la dirección efectiva del operando en caso de direccionamiento indirecto (indirección). Es susceptible de intercalarse entre el ciclo de instrucción y el ciclo de operando de toda instrucción que apele a un operando. (Hacemos la hipótesis de que el direccionamiento indirecto no se aplica a las instrucciones de salto). Paralelamente a la evolución de las microórdenes, hemos anotado sobre estos cronogramas la evolución de las diversas informaciones de entrada en el secuenciador, de una cierta importancia para la instrucción en curso. Cada uno de estos cronogramas nos permite definir de forma analítica el comportamiento del secuenciador. Por ejemplo, para ejecutar la instrucción SAP (salto si positivo), es preciso efectuar las siguientes operaciones elementales (fig. 18): ¾ en el instante θ 0: o posicionar el biestable, si no lo estuviera ya, indicando que comienza un ciclo de instrucción. o lanzar un ciclo de memoria: ENS, ICM, PACM θ 0 Æ SI, ENS, ICM, PACM ¾ durante el intervalo Θ 0, sabiendo que se desarrolla un ciclo de instrucción, o mantener la señal LEC para indicar que se trata de una lectura. o abrir la puerta de salida del registro M. I· Θ 0 Æ LEC, SRM ¾ en el instante θ 1, sabiendo que aún se mantiene el ciclo de instrucción. o muestrear a la entrada del registro de instrucción: ENI. o incrementar el contador de programa INCP I· Θ 1 Æ ENI, INCP ETSII – Dpto. Tecnología Electrónica Página: 30 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL ¾ durante el intervalo Θ 1, sabiendo que se continúa en cielo de instrucción, o mantener la señal LEC para permitir la regeneración de la información en memoria; o después, sabiendo, tras la decodificación, que se trata de un salto si acumulador positivo, verificar la señal AP (acumulador > 0). ¾ Si AP = 1 o enviar la dirección de salto al bus S: SRD y al registro P: ENP Θ 1·sap·AP Æ SRD, después: θ 0 .sap.AP Æ ENP ¾ Si AP = 0 o enviar el contenido del contador de programa al bus S: SRP Θ 1·sap· AP Æ SRP Las ecuaciones lógicas El enfoque analítico del parágrafo anterior nos permite, instrucción por instrucción y paso a paso, definir las microórdenes condicionadas por las diversas informaciones de entrada al secuenciador. No permite salvo que se acepten múltiples redundancias, la realización directa de los esquemas lógicos del secuenciador. Debemos abordar el problema por el otro extremo, es decir, tomando una a una cada microórden, buscar todas las eventualidades en que debe ser activada y de ellas deducir la expresión lógica en relación con las informaciones de entrada y de estado del secuenciador. El conjunto de estas expresiones constituye las ecuaciones lógicas del ordenador. Tomemos enseguida un ejemplo: la microórden SRM. La salida del registro M debe ser activada: (1) en la búsqueda de todas las instrucciones durante el intervalo Θ 0, es decir para: I· Θ 0 (2) en el ciclo de operando de las instrucciones SUM, SUS, OR, AND, durante todo el tiempo en que se efectúe la operación correspondiente en la unidad aritmética-lógica, esto es, para: O· ( Θ 0 + Θ 1)· (sum + sus + or + and) de hecho ( Θ 0 + Θ 1) cubre todo el intervalo temporal en que O está activado, por consiguiente es inútil expresarlo. Además, las instrucciones implicadas son todas aquellas que necesitan un ciclo de operando excepto ALM, por lo cual la expresión anterior puede formularse de manera más simple: O· alm (3) en el ciclo de búsqueda de la dirección del operando cuando hay direccionamiento indirecto y mientras dura la señal Θ 1, es decir cuando: IND· Θ 1 como la señal IND permanece activada en tanto que la instrucción se encuentre en el registro de instrucción (que sólo será alterado por la siguiente instrucción), es necesario inhibir la señal IND cuando, bien O, bien I, está posicionado: SRM debe ser activado para: Dado que éstas IND·O·I ·Θ1 únicas eventualidades en que SRM debe ser activada (M ) → I , (M ) → U . A.L., (M ) → S , la expresión que define a la señal SRM puede escribirse [ finalmente así: son las tres ] SRM = I· Θ 0 + O· alm + IND·O·I ·Θ1 Siguiendo este procedimiento, microórden por microórden, podemos deducir las expresiones lógicas del calculador. Queda aún expresar que el propio secuenciador debe posicionar los biestables I y O, lo que da lugar a las siguientes ecuaciones complementarias: ¾ I debe ser posicionado a 1 al final del ciclo operando: SI = Θ 0 + O ¾ I debe ser puesto a cero al final del ciclo de aquellas instrucciones que necesitan ciclo de operando: RI = θ 0 ·I·(sum + sus + or + and + alm) ¾ O debe ser activado, bien después de un ciclo de instrucción cuando ésta es con operando sin direccionamiento indirecto, o también al final de ciclo de búsqueda de dirección en caso de direccionamiento indirecto: ¾ SO = IND·θ 0 ·I·(sum + sus + or + and + alm) + IND·θ 0·I·O O debe ser repuesto a cero al final del ciclo de operando: ETSII – Dpto. Tecnología Electrónica Página: 31 / 80 RO = θ 0·O MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL El secuenciador de Abacus será, pura y simplemente, la materialización de sus biestables de estado y del circuito combinacional correspondiente a las ecuaciones lógicas. Reflexiones acerca de la concepción de los secuenciadores cableados Básicamente el secuenciador de una computadora síncrona es un circuito secuencial que produce las secuencias de microórdenes necesarias a la ejecución de las instrucciones, sincronizándolas con los impulsos procedentes del reloj. Nuestro enfoque nos ha permitido simplificar el problema fraccionando al secuenciador en dos subconjuntos relativamente sencillos: (1) de una parte, unos elementos de memoria para poder marcar las diferentes fases del desarrollo de las instrucciones, como son el distribuidor de fase y unos biestables de estado posicionados por el secuenciador. (2) de otra parte, un circuito combinacional que establece las relaciones de dichos elementos de memoria con las microórdenes y con sus propias entradas. En la realidad, la concepción del secuenciador no es tan sencilla como lo deja suponer nuestro ejemplo, sobre todo cuando el conjunto de instrucciones es importante y cuando gobierna operaciones secuenciales complejas. Ello conduce a menudo a considerar dos niveles de control: ¾ un nivel central que distribuye microórdenes globales a los distintos operadores y ¾ un nivel local, asociado a cada operador, para el gobierno de sus operaciones internas. ETSII – Dpto. Tecnología Electrónica Página: 32 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Secuenciamiento de los operadores aritméticos Métodos generales Los operadores aritméticos y lógicos de tipo combinacional son posicionados directamente por las microordenes generadas por el secuenciador general de la máquina. También puede hacerse así con los operadores de tipo secuencial, especialmente en pequeños ordenadores, en el caso de los desplazamientos donde el secuenciador general envía los impulsos de desplazamiento mientras el descontador de desplazamiento, que forma parte de la unidad de control, no esté a cero. En máquinas más complejas, el control de los operadores aritméticos de funcionamiento secuencial está frecuentemente descentralizado y cada operador posee su órgano de control. El secuenciador general envía, por una parte, una orden especificando el tipo de operación a ejecutar y, por otra, los batidos del reloj central, si el operador no tuviese reloj propio. El secuenciamiento de la operación aritmética queda a partir de entonces a la entera responsabilidad del operador. Terminada la operación, el operador transmite al secuenciador central una señal de fin de operación. Al igual que la unidad de control de un computador, el secuenciador de un Operador secuencial puede poseer su propio decodificador de órdenes, su contador de fase, sus biestables de estado e incluso su propio reloj. Secuenciamiento de un operador de multiplicación por suma-desplazamiento A modo de ejemplo vamos a construir un secuenciador que controle la ejecución de una multiplicación por sumas y desplazamientos, cuyo algoritmo se presentó en el capítulo de introducción. La figura indica en qué entorno trabaja el secuenciador del operador. Del secuenciador general recibe la orden de multiplicación, así como los batidos de reloj y transmite un impulso de fin de operación; envía al operador una orden SUM de posicionamiento del sumador, la validación de la suma EAC y la orden de desplazamiento a derecha DESD. Del último biestable del multiplicador-cociente recibe una señal indicativa de su estado. La figura representa al secuenciador de multiplicación bajo la hipótesis de que el sumador permanece activado mientras dure la multiplicación para ejecutar la adición de los contenidos del registro B y del acumulador, de que la duración máxima de la suma es de dos batidos de reloj y de que, en ausencia de suma (MCo = 0), se produce un desplazamiento a cada batido de reloj. ETSII – Dpto. Tecnología Electrónica Página: 33 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 34 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Vamos a describir brevemente el funcionamiento de este secuenciador. La orden de inicio de multiplicación (MUL) carga el descontador de desplazamientos con una cantidad igual al número de dígitos de los operandos y posiciona al biestable Θ , que memoriza la orden de multiplicación todo el tiempo que ésta dura, y mantiene abiertas las puertas de entrada al sumador paralelo (SUM). Al primer batido de reloj que sigue al posicionamiento del biestable Θ comienza la operación: ¾ Si MCo = 0, hay desplazamiento y decremento en una unidad del contador ordinal. ¾ Si MCo = 1, es preciso ejecutar la suma, que dura dos batidos de reloj, antes de desplazar. A este fin, se memoriza el primer batido en el biestable Φ lo que permite validar, al segundo batido, el resultado de la suma EAC y reponer a cero el biestable MCo con lo que el tercer batido gobernará el desplazamiento, el decremento correspondiente del descontador y la puesta a cero del biestable Φ . La operación continúa desarrollándose hasta que sea cero el contenido del descontador de desplazamientos. Cuando llega a cero, se genera un impulso que pone a cero al biestable Θ y avisa al secuenciador central del final de la operación. Obsérvese que este circuito de control se compone de tres biestables de estado MCo, Θ y Φ y de un descontador de desplazamiento, que ejerce una función análoga al distribuidor de fases de] secuenciador de un calculador. ETSII – Dpto. Tecnología Electrónica Página: 35 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Capitulo 2.6.- UNIDAD DE CONTROL MICROPROGRAMADA Definición y terminología Hemos visto que la ejecución de una instrucción obedecía a un encadenamiento de microórdenes encargadas de preparar la ruta de datos y de gobernar las unidades funcionales y las memorias, En los parágrafos anteriores el elemento designado para generar estas microórdenes era un secuenciador cableado. La microprogramación consiste en reemplazar el secuenciador cableado por un secuenciador programado. A cada instrucción del calculador corresponde generalmente en una memoria especializada. Es decir, se emplea una memoria para almacenar la información de las señales de control de los períodos de cada instrucción. Para generar un cronograma es suficiente ir leyendo las distintas palabras de esta memoria, que recibe el nombre de Memoria de Control. Un microprograma, cuyo desarrollo genera las microórdenes que gobiernan la ejecución de la instrucción. Se llama micro-instrucciones a las instrucciones del microprograma. La ejecución de una micro-instrucción genera una o varias microórdenes. Como a la información grabada, correspondiente a las señales de control de un período, se la llama microinstrucción, las Unidades de Control con este diseño reciben el apelativo de microprogramadas. A los ordenadores microprogramados se les llama también ordenadores de lógica almacenada, u ordenadores de lógica programada o, incluso, ordenadores de código de instrucción variable. Esta última denominación se refiere a la posibilidad de modificar fácilmente el conjunto de instrucciones de un calculador microprogramado, puesto que cambiar o añadir un microprograma es mucho más sencillo que alterar el cableado. La microprogramación abre, por consiguiente, un nuevo campo, menos "hard" que el hardware y menos “soft" que el software, que algunos llaman el firmware. El ámbito de aplicación de las Unidades de Control microprogramadas es, típicamente, el de los computadores de tamaño medio. En los muy pequeños, la estructura de microprogramación es demasiado compleja y no resulta económica, mientras que, para los grandes, su funcionamiento es demasiado lento. La ventaja principal de la Unidad de Control microprogramada es la simplicidad conceptual, junto al hecho de que la información de control reside en una memoria, lo que supone una fácil modificación y ampliación. Además, se pueden incluir instrucciones complejas con muchos períodos, poniendo una memoria de control suficientemente grande. La microprogramación permite construir computadores capaces de soportar varios juegos de instrucciones, bastando con cambiar el contenido de la memoria de control. La idea fue propuesta en 1950 por M. V. Wilkes y otros científicos. El modelo de Wilkes. Los fundamentos de la microprogramación fueron definidos por Wilkes en 1.951. Todos los elementos constituyentes del control de una máquina microprogramable aparecían ya en su modelo, que reproducirnos en las figuras. ETSII – Dpto. Tecnología Electrónica Página: 36 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL La Unidad de Control constaba de dos memorias A y B, fabricadas con matrices de diodos. Las microinstrucciones están almacenadas en la memoria A, de donde son leídas mediante un árbol de decodificación. La memoria B guarda la dirección de la siguiente microinstrucción. Las bifurcaciones se producen con una señal que selecciona entre dos entradas a la matriz de la memoria B. ETSII – Dpto. Tecnología Electrónica Página: 37 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL A la entrada del dispositivo de control tenemos el código de operación de la instrucción por ejecutar, el cual es considerado como la dirección de la primera micro-instrucción del microprograma asociado a la instrucción. Tal dirección se envía al registro SMC (Selección de Memoria de Control) que, decodificado, permite activar un hilo de palabra horizontal de la memoria A sobre el cual está grabada la micro-instrucción bajo la forma siguiente: los 1 están representados por un acoplamiento (marcado con un punto en el dibujo) con el correspondiente hilo de bit vertical, los 0 por la ausencia de acoplamiento. A la salida, la microinstrucción comprende dos elementos: ¾ de una parte, el código de micro-instrucción, que da directamente las microordenes a distribuir al conjunto de la máquina; ¾ de otra parte, la dirección de la próxima micro-instrucción (DC o Dirección de Control) que será transferida, al siguiente batido de reloj, a SMC, etc. El microprograma concluirá con una última microinstrucción, la cual cargará en SMC el nuevo código de operación. Hemos representado, además, en el esquema el método preconizado por Wilkes para realizar saltos condicionales, a reserva de que el biestable E pueda ser posicionado bajo determinadas condiciones por las micro-instrucciones. Es nuestro propósito estudiar la evolución de los diferentes elementos del esquema de Wilkes. Históricamente, la microprogramación se aplicó por primera vez a la gama baja de la familia de computador IBM 360, a mediados de la década de los 60. Por razones de velocidad no se aplicó a la gama alta de dicha familia. La memoria de control. Es la memoria que contiene los microprogramas, a razón de una o, raramente, varias micro-instrucciones por palabra de memoria. La primera característica generalmente exigida a una memoria de control es que su velocidad de lectura sea muy superior a la de la memoria central. En efecto, para que el conjunto sea coherente, es preciso que un microprograma completo registrado en la memoria de control se desarrolle totalmente en el intervalo de tiempo correspondiente a los pocos accesos a la memoria central que conciernan a la instrucción y a sus operandos. Un segundo elemento, importante a la hora de elegir la tecnología de las memorias de control, es que, en el desarrollo de los programas, aquellas no se utilizan más que en lectura. Estas dos consideraciones llevaron a Wilkes y a sus sucesores a utilizar como memorias de control memorias muertas, que permiten una gran rapidez de lectura por un coste razonable. Están habitualmente organizadas por palabras y el punto de memoria consiste en la presencia o ausencia de un acoplamiento entre hilo de palabra e hilo de bit: dicho acoplamiento puede ser capacitivo (dos hojas de circuitos impresos separadas por una hoja aislante), resistivo, de diodos, etc. En los actuales calculadores microprogramados la relación de la velocidad de la memoria de control a la de la memoria central oscila entre 2 y 6. Aún cuando los microprogramas no fueran modificables en curso de ejecución, sería al menos muy cómodo poderlos modificar en el momento de su puesta a punto para corregir errores o incluso poder cambiarlos para adaptar el código de instrucción a los tipos de trabajos procesados por la máquina, aquí se pone de manifiesto la versatilidad de una estructura microprogramada respecto de una estructura cableada. Es evidente que las memorias muertas se prestan mal a este tipo de modificación: no es posible más que intercambiar manualmente los módulos de memoria. En consecuencia se ha buscado utilizar memorias inscriptibles, aún admitiendo ciclos de escritura largos por comparación con el de lectura. En determinadas máquinas pequeñas, la memoria de control se confunde, de hecho, con la central, lo que pone en manos del programador especializado dos niveles de programación. Parece que el porvenir pertenece a las memorias reinscriptibles de semiconductores, cuyo tiempo de acceso en lectura sea del orden de algunas decenas de nanosegundos. ETSII – Dpto. Tecnología Electrónica Página: 38 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL La posibilidad de escritura en la memoria de control puede usarse siguiendo varias estrategias, por ejemplo: (1) Los microprogramas correspondientes a las instrucciones más frecuentes residen en la memoria de control y los otros se cargan desde la memoria central al momento de su utilización. En esta segunda clase de microprogramas podríamos encontrar operaciones generalmente realizadas por subprogramas, como exponenciales y logaritmos, funciones trigonométricas, etc. (2) se define un conjunto de instrucciones y después, un conjunto de microprogramas por tipo de trabajo (compilación, cálculo científico, etc.). Se recargaría la memoria de control al momento de cambiar de tipo de trabajo. Notemos que en la serie IBM 370 la memoria de control está constituida por dos elementos: ¾ el primero, en memoria muerta, para los microprogramas que traducen el código normal de instrucción y para los que están ligados al mantenimiento de la máquina, ¾ el segundo, en memoria ínscriptible, reservado a los microprogramas concebidos para necesidades peculiares. Concepto de microprograma Un microprograma es una cadena de "unos" y "ceros" que representa los valores de las señales de control durante un período. Se llama microprograma al conjunto de microinstrucciones que conforman el cronograma de una instrucción. Ejecutar un microprograma consiste en ir leyendo cada una de las microinstrucciones que lo componen, enviando la información leída a los elementos del computador como señales de control. La cadencia de lectura está controlada por el reloj principal de la máquina. A título de ejemplo, en la figura se muestra un microprograma con las 5 instrucciones que constituyen la instrucción ADD 4,7, comentada. ETSII – Dpto. Tecnología Electrónica Página: 39 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Para establecer las microinstrucciones se ha considerado que el código para el incremento es OP = 0110 y el de la suma es OP = 1011. En las microinstrucciones se han tratado de forma similar las señales activas por nivel y las que son activas por flanco. Para obtener una señal de flanco basta con recortar una de nivel con la señal de reloj, lo que se puede hacer, sencillamente, con una puerta AND. Codificación de las micro-instrucciones. Hemos visto en el modelo de Wilkes que la micro-instrucción se dividía en dos partes, ¾ una que permitía generar las microórdenes, ¾ otra que definía la dirección de la próxima microinstrucción. En este parágrafo nos interesaremos únicamente por la primera parte de la microinstrucción. Pueden concebirse dos métodos extremos para pasar de la configuración binaria de la micro-instrucción a las diversas microórdenes correspondientes. ETSII – Dpto. Tecnología Electrónica Página: 40 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL El primer método consistiría en asociar un bit de la micro-instrucción a cada microórden. Es esta, además, lo que había preconizado Wilkes. Su inconveniente es doble: ¾ exagerada longitud de la microinstrucción y dificultad para el programador de microprogramas. En cambio, permite generar varias microórdenes simultáneas. ¾ Inversamente, el segundo método consistiría en codificar el conjunto de las posibles microórdenes con el número mínimo de bits. Siendo muy corta la longitud de la micro-instrucción, se ganaría en cuanto al coste de la memoria de control siempre que su número de palabras no llegara a ser excesivo y se perdería, por el contrario, en cuanto al decodificador. Por último se necesitaría una microinstrucción por cada microórden. En la práctica, se dan dos soluciones intermedias: la codificación tipo instrucción y la codificación por campos. Codificación tipo instrucción. Como su nombre indica, este tipo de codificación da a la micro-instrucción una estructura semejante a la de una instrucción, con código de operación y dirección de operando (en registro o en memoria local). La decodificación de las micro-instrucciones para obtener las correspondientes microórdenes es relativamente compleja, siendo compensado este inconveniente por la pequeña longitud de la micro-instrucción. Tal tipo de codificación se adopta a menudo cuando se desea poner la microprogramación al alcance del programador en lenguaje de máquina. Codificación por campos. Este tipo se acerca mucho más al funcionamiento real del calculador. Se dividen las distintas microordenes en grupos independientes de tal suerte que sea imposible que, en cada grupo, se den microórdenes simultáneas. Para la comodidad del programador cada grupo corresponde, además, a un determinado tipo de función: apertura de puertas de diversos registros a un mismo bus, gobierno de una unidad funcional, gobierno de una memoria local, etc. Se asocia un campo de la micro-instrucción a cada grupo así definido, con una longitud justa para codificar todas las microórdenes del grupo. La decodificación de la micro-instrucción se ejecuta campo por campo; más adelante daremos un, ejemplo concreto. Respecto de la codificación tipo instrucción, la codificación por campos aporta la ventaja de una decodificación más directa y el inconveniente de una micro-instrucción más larga. Facilita a los programadores expertos en la estructura de la máquina una mejor optimización de los microprogramas. ETSII – Dpto. Tecnología Electrónica Página: 41 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL CARACTERISTICAS DE LA UNIDAD DE CONTROL MICROPROGRAMADA Nos concentraremos ahora sobre la segunda parte de la micro-instrucción del modelo de Wilkes, aquella que define las informaciones para encadenar las micro-instrucciones. Para que una Unidad de Control microprogramada pueda llevar a cabo su cometido, ha de cumplir tres condiciones básicas: 1. Disponer de una memoria de control con capacidad suficiente para almacenar los microprogramas de todas las instrucciones. 2. Tener un procedimiento para hacer corresponder a cada instrucción de máquina su microprograma. Esto significa que debe convertir cada código de operación de la instrucción en la dirección de la memoria de control donde comienza su microprograma. 3. Poseer un mecanismo para ir leyendo las sucesivas microinstrucciones del microprograma en curso y bifurcar a un nuevo microprograma cuando finaliza el que se está ejecutando. Para resolver las condiciones 2 y 3 existen dos alternativas: a) Con secuenciamiento explícito sistemático, tal como lo definió Wilkes. b) Con secuenciamiento implícito secuencial, que consiste en sumar 1 al registro de selección de la memoria de control. Secuenciamiento explícito Este tipo, seguido por Wilkes, consiste en dotar a cada microinstrucción de la dirección de la siguiente y se encuentra normalmente asociado a las técnicas de codificación por campos. Como las microinstrucciones de un microprograma pueden estar desordenadas, la 2ª condición se cumple sin más que reservar las primeras posiciones de la memoria de control para guardar la primera microinstrucción de cada instrucción, y justamente en la dirección expresada por su código de operación. No se necesita mecanismo alguno de secuenciamiento, puesto que cada microinstrucción suministra la dirección de la siguiente en la memoria de control. El encadenamiento con una nueva instrucción se resuelve mediante una señal de control que toma como dirección de la siguiente microinstrucción el nuevo código de operación. ETSII – Dpto. Tecnología Electrónica Página: 42 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL No se sigue el método de Wilkes para realizar los saltos, porque impone un cableado particular de la memoria de control. La solución generalmente adoptada es la de fraccionar la parte de micro-instrucción que define a la instrucción siguiente en dos campos. ¾ el primero contiene de manera explícita los bits de mayor peso de la dirección, ¾ el segundo contiene, bien directamente los bits de menor peso de la dirección, si ésta fuera conocida, bien la dirección de un elemento de registro que los tenga almacenados, si fuera condicional. Ejemplo: el segundo campo de la dirección contiene 2 bits de información y un indicador definiendo el tipo de información contenida en estos dos bits; si el indicador es 0, los dos bits significan los de menor peso de la dirección, si el indicador vale 1, los dos bits direccionan a una pareja (2 bits) entre cuatro, y es el valor del contenido de esta pareja lo que constituye los bits de menor peso de la dirección. El direccionamiento explícito tiene la ventaja de minimizar el número total de micro-instrucciones, puesto que algunas son comunes a varios microprogramas, y de no suponer pérdida de tiempo en los saltos incondicionales. En cambio, resulta de difícil uso y aumenta la longitud de la micro-instrucción. Esté tipo de secuenciamiento tiene el inconveniente de utilizar una gran cantidad de memoria de control. Por ejemplo, una memoria de control de 4 K palabras, requiere 12 bits para su direccionamiento, lo que supone destinar 4 K X 12 bits para direcciones. En la figura se ofrece el esquema de una Unidad de Control con secuenciamiento explícito. El oscilador genera la señal de "carga" en el registro de microinstrucciones, estableciendo el período básico de la máquina. La parte de dirección se realimenta a la memoria de control para iniciar la lectura de la siguiente microinstrucción. El multiplexor de direcciones permite seleccionar entre el código de operación de una nueva instrucción o la dirección de la microinstrucción. Este multiplexor, gobernado por una señal de control, se encarga de que la última microinstrucción de un microprograma enganche con la primera microinstrucción del siguiente. ETSII – Dpto. Tecnología Electrónica Página: 43 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Secuenciamiento implícito Una micro-instrucción normal direcciona implícitamente la micro-instrucción que se encuentra en la dirección próxima superior a la suya. El registro de selección de la memoria de control funciona entonces como el contador ordinal. Con este sistema es necesario tener ordenadas las microinstrucciones de cada microprograma en posiciones consecutivas de la memoria de control. De esta forma, ya no es preciso que cada microinstrucción contenga la dirección de la siguiente, obteniendo un considerable ahorro de memoria. Para cumplir la condición que resuelva la correspondencia a cada instrucción máquina con su microprograma, se introduce una etapa traductora o decodificadora entre el código de operación y el multiplexor de direcciones. Este traductor es una pequeña memoria ROM o PLA, que, cuando el código de operación es de 8 bits y la memoria de control tiene una capacidad de 4 K palabras, el tamaño de este elemento es de 256 palabras de 12 bits. El mecanismo de lectura consecutiva de microinstrucciones y bifurcación a un nuevo microprograma, al terminar el que se halla en curso de ejecución, se implementa con un registro de direcciones y un incrementador. Los saltos pueden realizarse especializando un bit de la micro-instrucción como indicador afirmativo o negativo de salto y dejando el resto de la misma para albergar la dirección de la próxima micro-instrucción por ejecutar y, cuando sea el caso, la condición de salto. La figura presenta el esquema general de la Unidad de Control microprogramada con secuenciamiento implícito. La temporización principal la proporciona un oscilador, que genera una señal periódica empleada en cargar el registro de direcciones y el de microinstrucciones. El encadenamiento de microprogramas es muy similar al del caso anterior. Una señal de control activa al multiplexor, de forma que la última microinstrucción de un microprograma selecciona la información que proviene de la ROM o PLA, como dirección siguiente. Este método aporta la doble ventaja de resultar simple de programar y de no alargar la micro-instrucción. Como contrapartida, un salto ocupa por sí solo una microinstrucción y desperdicia el tiempo de su ejecución. ETSII – Dpto. Tecnología Electrónica Página: 44 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Se empleará el direccionamiento secuencial cuando la concepción de la máquina y de su microprogramación impliquen un porcentaje de microinstrucciones de salto relativamente pequeño. Generalmente se asociará a una codificación tipo instrucción. FORMATO DE LAS MICROINSTRUCCIONES El concepto básico de microinstrucción aparece como un conjunto de bits, uno para cada señal de control. Esta solución, conceptualmente sencilla, no es, sin embargo, muy empleada por su coste. En general, cada microinstrucción realiza sólo una operación elemental en cada período, lo que da lugar a que su formato esté lleno de "ceros". Para reducir la longitud de las microinstrucciones se las codifica de manera que tengan menos bits que señales de control. A veces, se las asigna una duración de más de un período. Se llama microprogramación horizontal cuando las microinstrucciones no están codificadas. Por el contrario, recibe el nombre de microprogramación vertical cuando las microinstrucciones están muy codificadas. Según el grado de codificación, existen microprogramaciones más o menos horizontales o verticales. Las microinstrucciones horizontales tienen un formato muy largo, pero permiten utilizar los elementos del computador en paralelo. Las microinstrucciones verticales tienen formatos cortos, pero impiden el paralelismo. Las señales de control que gobiernan un mismo elemento de la máquina se agrupan formando un campo de microinstrucciones. Por ejemplo, las señales triestado que controlan el acceso a un bus se agrupan formando un campo; las señales de gobierno de la Unidad Aritmética, o el banco de registros, o la memoria, formarán sus campos respectivos. Para acortar el tamaño de las microinstrucciones se codifican todos o algunos de sus campos. Así, si el computador tiene un bus de datos al que se conectan 13 elementos distintos, en el caso de no usar codificación se necesitarían 13 señales para gobernar dicho bus, pero, dado que de estas 13 señales sólo puede estar activa una en cada período, se puede emplear un campo de 4 bits, que, mediante un sencillo decodificador 4X16, hace posible conectar al bus hasta 16 elementos distintos. Esquema ilustrativo sobre la codificación de campos en una microinstrucción, cuyo principal inconveniente es que requiere una etapa decodificadora con su correspondiente coste y retardo. ETSII – Dpto. Tecnología Electrónica Página: 45 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Para acortar la longitud de las microinstrucciones también se usa el solapamiento de campos, que se basa en el hecho de que, normalmente, en cada período sólo están activas unas pocas señales de control. Es más, con frecuencia existen señales excluyentes, o sea, que no se pueden activar simultáneamente. El "solapamiento" consiste en emplear un grupo de bits de la microinstrucción para dos campos distintos C1 y C2. Para especificar el significado de los bits y determinar si corresponden a C1 o a C2, se emplea una señal decodificadora adicional C12. La alternativa más drástica para reducir el tamaño de las microinstrucciones es realizar una codificación total de la misma. Se parte de la definición de todas las microinstrucciones que componen el repertorio de instrucciones y, seguidamente, se codifican con el menor número de bits. Este procedimiento precisa de un decodificador complejo y con un retardo muy grande, pero reporta un ahorro importante de la capacidad de la memoria de control. El esquema de la Unidad de Control con codificación total, en la que las informaciones contenidas en la memoria de control no son más que las direcciones para extraer de la memoria auxiliar la correspondiente microinstrucción. ETSII – Dpto. Tecnología Electrónica Página: 46 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Finalmente, cabe presentar dos técnicas usadas en ocasiones especiales: a) Microinstrucciones de varios períodos, en cuyo caso la microinstrucción contiene información suficiente para realizar las órdenes elementales de varios períodos. Se precisa un contador de períodos y una información sobre la duración de cada microinstrucción, contenida en ella misma. b) Nanocontrol. Cuando se emplea microprogramación vertical y microinstrucciones de varios períodos de duración puede usarse una Unidad Nanoprogramada para la ejecución de las microinstrucciones. En este caso existirían dos niveles de microprogramación. ESTRUCTURA COMPLETA DE LA UNIDAD DE CONTROL MICROPROGRAMADA Las estructuras contempladas de la Unidad de Control microprogramada con secuenciamiento explícito o implícito, sólo pueden ejecutar microprogramas lineales, pero no permiten la ruptura de la secuencia del microprograma. Las instrucciones de bifurcación condicional presentan dos cronogramas alternativos a partir del punto en el que se hace la comprobación de la condición de bifurcación. Los microprogramas han de ofrecer una microbifurcación condicional para seguir la rama o alternativa deseada. Hay que añadir a la arquitectura básica de la Unidad de Control un mecanismo de microbifurcación condicional. También es recomendable añadir a la Unidad de Control mecanismos para establecer microbucles y llamadas a microsubrutinas, teniendo en cuenta que muchas instrucciones tienen partes comunes y hay algunas con operaciones que se repiten, como las de "desplazamiento múltiple", las de "multiplicación" y las de "división". Microbifurcaciones condicionales La bifurcación condicional exige que la microinstrucción de bifurcación pueda elegir entre dos direcciones para poder seguir uno de los dos caminos posibles. En el caso de secuenciamiento explícito, la microinstrucción de bifurcación debería contener las dos direcciones completas, pero, como esto sería muy costoso, se acostumbra a diferenciar ambas direcciones en un solo bit, que toma el valor del resultado del comparador de la condición de bifurcación. En el secuenciamiento implícito se ha de poder elegir entre la microinstrucción siguiente y otra distinta. Por tanto, la microinstrucción de bifurcación habrá de contener dicha dirección. Se suele usar el solapamiento de campos. Es factible solapar el campo de dirección de la microinstrucción de bifurcación con otros de señales de Entrada/Salida, de memoria, etc. ETSII – Dpto. Tecnología Electrónica Página: 47 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL En la figura se ofrece una Unidad de Control en la que se han incluido los elementos precisos para realizar microbifurcaciones condicionales. Obsérvese que el bit resultado del comparador se emplea en la selección del multiplexor de direcciones, permitiendo elegir entre la dirección anterior incrementada 0 la contenida en el campo solapado C4 de la propia microinstrucción. El campo C2 establece la condición de bifurcación, por lo que sirve de entrada al comparador. El bit C3 se encarga de "desolapar" el campo C4, empleando un demultiplexor de dos salidas. Microbucles y microsubrutinas La realización de bucles exige una bifurcación condicional, más un contador con autodecremento, que se emplea como condición de bifurcación. Dicho contador debe ser accesible desde la microinstrucción, para poder inicializarla con el número de veces que se desea repetir el microbucle. La llamada a subrutina necesita un almacenamiento para "salvaguardar" la dirección de retorno. La solución más usual consiste en "colgar" del registro D una pila, en la que se guardan estas direcciones de retorno. ETSII – Dpto. Tecnología Electrónica Página: 48 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Capitulo 2.7.- EMPLEO DE VARIOS RELOJES La utilización de dos o más señales de reloj posibilita la generación de distintas formas de onda dentro del período, las cuales pueden aplicarse para realizar varias operaciones sucesivas en el mismo período. Las distintas señales que se obtienen de dos relojes T1 y T2, desfasados 1/4 de período, empleando solamente puertas lógicas. El acompasamiento en las máquinas microprogramadas. El problema se plantea a dos niveles: ¾ el primero, correspondiente al acompasamiento durante el desarrollo de una micro-instrucción, ¾ el segundo al acompasamiento de las demandas de sucesivas micro-instrucciones. Acompasamiento del desarrollo de una micro-instrucción. Cuando se emite simultáneamente el conjunto de las micro-órdenes generadas por cada micro-instrucción, se habla de microprogramación vertical. En tal caso, el único compás existente es el de la demanda de las micro-instrucciones. El método de codificación tipo instrucción y la técnica de microprogramación vertical se utilizan a menudo juntos. Inversamente es posible concebir que las microórdenes emanadas de los distintos campos de una microinstrucción sean emitidas en diferentes fases de su ejecución. Esta es la microprogramación horizontal. En dicha hipótesis, la unidad de control puede estar provista de un distribuidor de fases como los secuenciadores cableados. ETSII – Dpto. Tecnología Electrónica Página: 49 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL El acompasamiento de las demandas de las micro-instrucciones. El compás de demanda de las micro-instrucciones puede ser fijo o variable. Se observa, en general, el uso de un compás variable en microprogramación vertical, bien porque el calculador gobierne por sí mismo la llamada a la nueva microinstrucción en cuanto que las operaciones relativas a la anterior hayan terminado, bien porque el campo de la microinstrucción defina su duración, como se representa en la figura. A menudo se emplea compás fijo de demanda en las máquinas con microprogramación horizontal, correspondiendo cada ciclo de memoria de control a un número fijo de batidos de reloj. ETSII – Dpto. Tecnología Electrónica Página: 50 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Capitulo 2.8.- RUPTURAS DE SECUENCIA NO PROGRAMADAS. INTERRUPCIONES Y EXCEPCIONES O CEPOS La Unidad de Control estudiada hasta el momento ejecuta, de manera inamovible, las instrucciones sucesivas y contiguas de un programa. Solamente cuando se encuentra una bifurcación se rompe esta secuencia y se salta a ejecutar en otra zona de memoria. Existen situaciones en las que interesa detener un programa y saltar a otro. Esto ocurre, por ejemplo: 1. Cuando aparece un error de ejecución, tal como un desbordamiento del resultado en una operación aritmética. 2. Cuando surge un error de paridad en la lectura de memoria, o un intento de ejecutar una instrucción con código de operación prohibido, o un intento de acceder a una zona de memoria protegida. 3. Cuando un periférico requiere la atención de la UCP. En estos casos ha de producirse una ruptura de secuencia no programada, puesto que no se produce por una instrucción de bifurcación del programa en ejecución. El mecanismo para producir estas rupturas de secuencia no programadas es similar al usado en las bifurcaciones condicionales. En efecto, todas las condiciones que pueden producir esta ruptura de secuencia automática se reflejan en sendos biestables de estado. Además, todas las instrucciones llevan al final de su cronograma una bifurcación condicional implícita sobre el valor de dichos biestables. Cuando uno de ellos se activa, se para la ejecución del programa en curso y se bifurca. Cuando la causa de esta bifurcación no programada proviene del exterior de la UCP, se dice que se ha producido una interrupción. Por ejemplo, una unidad de disco interrumpe a la UCP cuando termina una operación de entrada y salida. Cuando la causa de la bifurcación no programada es de origen interno de la UCP, se habla de una excepción o cepo (trap). La forma en que se genera la dirección de la bifurcación en estos casos se basa en el salto a una posición prefijada o cableada, lo cual es frecuente en el caso de las excepciones. Con las interrupciones, suele ser habitual que el propio periférico peticionario de la interrupción proporcione la dirección de la bifurcación. En ambos casos, dicha dirección corresponde a un programa del sistema operativo, que trata la excepción o la interrupción y sustituye el control del programa que se ha interrumpido. ETSII – Dpto. Tecnología Electrónica Página: 51 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Capitulo 2.9.- Concepto de macromáquina y de micromáquina. La microprogramación puede ser contemplada como un medio para realizar el conjunto constituido por el decodificador de instrucciones y el secuenciador de un ordenador. Por tanto, a semejanza de lo que hemos hecho con lógica cableada, podría concebirse una unidad microprogramada de control para Abacus, sin necesidad de alterar lo más mínimo la ruta de datos. El paso a la microprogramación autoriza, gracias a su versatilidad, una modificación mucho más profunda de una máquina definida por su repertorio de instrucciones, esto es, por sus registros aritméticos, sus registros de índice y las operaciones que debe realizar en distintas unidades funcionales. Esta transformación puede dirigirse esencialmente a los diversos elementos de la ruta de datos. Esta última, en particular, puede tener una dimensión diferente de la que podría esperarse; los registros definidos por el código de operación pueden no existir en forma cableada, sino ser simulados por los microprogramas en forma de seudo-registros en memoria central o en una memoria local, las operaciones aritméticas, como la multiplicación, la división, las operaciones flotantes o decimales pueden no estar previstas en la unidad aritméticalógica, sino ejecutarse gracias al desarrollo de microprogramas ad hoc. Este es el caso de la serie IBM 360, cuyos principales modelos se han esquematizado. Obsérvese que, aun siendo común la lógica sobre registros aritméticos fijos de 32 bits y registros aritméticos flotantes de 64 bits, la dimensión de la ruta de datos y el número de registros y de unidades funcionales son muy variables de un extremo a otro de la serie; únicamente el modelo, 75 posee en forma individualizada los 16 registros fijos y los 4 registros flotantes, así como los operadores capaces de realizar todas las operaciones aritméticas definidas por el código de operación. De esta manera se llega a la necesidad de definir dos conceptos característicos de una máquina microprogramada: la macromáquina y la micromáquina. Macromáquina Es la máquina conocida del programador. Viene definida por su repertorio de instrucciones y todo lo que esto supone: ¾ longitud de las informaciones procesadas, ¾ número y magnitud de los registros accesibles por programa, operación, etc. Podría muy fácilmente trazarse una ruta teórica de datos para esta máquina. En nuestro ejemplo macromáquina sería la lógica 360, o eventualmente la del 360-75, que es la más aproximada. Micromáquina A la inversa, la micromáquina está definida por sus micro-instrucciones y la ruta real de datos sobre la que inciden aquellas. Esta última puede ser, como ya hemos visto, muy diferente de la ruta teórica directamente deducida de la macromáquina. En la serie 360, las micromáquinas del 360-30, 360-40 y 360-50 son muy diferentes entre sí y todas ellas muy diferentes de la macromáquina. Ordenadores parcialmente microprogramados. La microprogramación puede utilizarse en computadores potentes, en cuyo caso es compaginable con secuenciamiento cableado. Por ejemplo en el IBM 360-85, la búsqueda de las instrucciones y el cálculo de direcciones están puramente cableados, lo que se justifica muy bien por la repetitividad y relativa sencillez de estas funciones. En cambio, el gobierno general de las operaciones aritméticas está microprogramado, aunque determinados operadores tienen cableado su propio secuenciamiento. ETSII – Dpto. Tecnología Electrónica Página: 52 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Microprogramación a dos niveles. Varias razones pueden mover a utilizar dos niveles de memoria de control. Entonces, las instrucciones de memoria central, frecuentemente muy elaboradas, llaman a las supermicroinstrucciones dentro del primer nivel de memoria de control, las que, a su vez, llaman a los microprogramas (a menudo llamados picoprogramas) dentro del segundo nivel de memoria de control (como ocurre en el Ordoprocesador). Esta organización de dos niveles se emplea algunas veces para rutas de datos complejas gobernadas por microinstrucciones codificadas por campos. Como éstas son especialmente largas, interesa económicamente que no aparezca cada una de ellas más que una sola vez en memoria de control. Se añadirá, en tal caso, un nivel superior de memoria de control que contendrá los microprogramas bajo la forma de las direcciones sucesivas de las micro-instrucciones que los componen (el Interdata modelo 4 es un buen ejemplo de esta organización). Ejemplo de máquina microprogramada Nos proponemos ahora demostrar concretamente, construyendo una nueva computadora Microabacus, cómo puede concebirse una unidad central microprogramada, en la hipótesis de micro-instrucciones codificadas por campos con secuenciamiento explícito. La ruta de datos y su control microprogramado. Consideremos una ruta de datos formada por un conjunto de registros enlazados por 3 buses a una unidad aritmética-lógica (UAL). Los buses A y B transfieren los operandos de los registros a la unidad aritmética-lógica, mientras que el bus C permite enviar el resultado a los registros. Una micro-instrucción, que defina una operación entre registros, puede escribirse sobre cuatro campos: ¾ CFA, para designar el registro fuente sobre el bus A ¾ CFB, para el registro fuente sobre el bus B; ¾ COP, para el código de operación; ¾ CRC, para el registro resultado sobre el bus C. ETSII – Dpto. Tecnología Electrónica Página: 53 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Por ejemplo, la micro-instrucción: ejecuta: (Ri ) − (R j ) → (Rk ) Mientras que la micro-instrucción: copia el contenido de Ri en Rj A fin de permitir una posibilidad de direccionamiento inmediato, se yuxtapone un quinto campo CIN para albergar al operando inmediato. Uno de los campos CFA o CFB reenvía al nuevo campo cuando resulta activado un indicador. Por ejemplo, la micro-instrucción: restará 1 de Ri: (Ri) - 1 Æ Ri También puede hacerse intervenir a la memoria central del calculador mediante otro nuevo campo CM. Así, las microinstrucciones (1) y (2) efectuarán respectivamente una lectura en Ri y una escritura de Rj, siendo direccionada la memoria por intermedio del registro S. Por último añadiremos a nuestro computador unos biestables de estado. Estos deberán poder ser posicionados por las micro-instrucciones, por ejemplo en función de condiciones eventualmente satisfechas en la unidad aritmética-lógica (desbordamiento, resultado nulo, etc.) y servirán para realizar las bifurcaciones pertinentes en el microprograma. Los campos CD y CMP permiten definir la dirección de la siguiente microinstrucción. El campo CD contiene los (n-1) bits fuertes de esta dirección y CMP, según el valor de un indicador, bien inmediatamente el bit de menor peso de la dirección, bien la dirección del biestable de estado que contiene dicho bit. Por eso, la micro-instrucción por efectuar después de ésta se encontrará en la dirección: ¾ 2m si (BEi) = 0, y ¾ 2m + 1 si (BEi) = 1 . Un último campo CSBE en la micro-instrucción permitirá posicionar los biestables de estado. Supongamos, a modo de ejemplo, que Ri actúe de registro de índice; cada vez que se llegue al final de bucle de microprograma, Ri será decrementado en 1. ETSII – Dpto. Tecnología Electrónica Página: 54 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Si el resultado de decrementar fuera 0 (indicador de cero CE de la UAL igual a cero), se cargará un biestable BEj, que permitirá operar el salto a la siguiente instrucción: Presentación de Microabacus. La ruta de datos de Microabacus, controlada por las micro-instrucciones cuya estructura acaba de ser definida, comprende esencialmente: ¾ una memoria central dividida en octetos, direccionada por el registro S, cuyos últimos 8 bits pueden ser cargados desde la U.A.L. o enviados sobre el bus A ¾ una memoria local (lectura y escritura) con los seudos-registros de varios octetos para operaciones en múltiple longitud y en coma flotante. Esta memoria, dividida en octetos, es direccionada por el registro SMR ¾ 3 registros de 8 bits, actuando A y B de acumulador y de multiplicador-cociente (M.C.) respectivamente y X de índice, ¾ 2 biestables de estado BE1 y BE2 ¾ una unidad aritmética-lógica que opera sobre informaciones de un octeto, SUM, SUS, AND, OR, etc. (NOP significa no operación). DE es el indicador de desbordamiento y CE que vale cero si el resultado de la última operación ha sido nulo, Esta micromáquina, inspirada en la del IBM 360-30, aunque muy simplificada, podría servir como tal en una versión microprogramada de Superabacus. los registros generales de Superabacus se simularían entonces como seudo-registros sobre 4 octetos de memoria local. ETSII – Dpto. Tecnología Electrónica Página: 55 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 56 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL El microprograma de suma en Microabacus. A manera de ejemplo, vamos a escribir una parte del microprograma correspondiente a la suma fija de 32 bits, de un operando sobre 4 octetos en memoria central y el contenido de un seudo-registro de 4 octetos en memoria local. La instrucción de la macromáquina se escribirá: SUM Ri Mi donde Ri representa la dirección del cuarto octeto del seudo-registro en memoria local y Mi la del cuarto octeto del operando en memoria central. Comenzamos el microprograma en el momento en que estas dos direcciones se encuentran, respectivamente, en SMR y en S. Ver el organigrama y la lista de micro-instrucciones en las figuras anterioes No deje de observarse el papel particular de BE1 en lo que concierne al reporte de los arrastres y el de BE2 en cuanto a la condición de fin de bucle. Capitulo 2.10.- Diseño de una UCP con circuitos integrados SSI y MSI LA ORIENTACION DIDACTICA DEL PROYECTO Se han elegido para su construcción circuitos integrados clásicos y sencillos que han determinado las características fundamentales de la UCP. Siguiendo la idea propuesta por von Neumann, la máquina universal o computador se compone de tres bloques fundamentales que se hallan interconectados entre sí, a través de unos colectores de líneas, llamados buses. La UCP, se encarga de direccionar la memoria mediante el bus de direcciones y obtener las instrucciones y los datos por el bus de datos. El procesamiento de la información lo realiza en la Unidad de Control con el apoyo de los registros de trabajo y de acuerdo con el significado de las instrucciones que provienen de] programa. La Unidad de Control es la encargada de decodificar las instrucciones y enviar las diversas señales de gobierno a todos los elementos que intervienen en una operación a través del bus de control. También es función de la Unidad de Control cargar el bus de direcciones con el valor de la posición de memoria o de Entrada/Salida que se quiere leer o escribir. Por último, la Unidad de Entrada/Salida procura una adaptación de la información que entra y sale de la máquina desde/a los periféricos exteriores. Todas las secciones que componen la UCP, desde 1971, se han podido reunir en una sola pastilla de circuito integrado a la que se denomina microprocesador. ETSII – Dpto. Tecnología Electrónica Página: 57 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL FUNCIONAMIENTO BASICO Para facilitar la comprensión del funcionamiento de la UCP se ha diseñado un modelo, cuyo correcto funcionamiento ha sido ampliamente comprobado, utilizando circuitos integrados de pequeña y mediana escala de integración y que, además, son muy populares. Las señales que controlan la operatividad de los circuitos integrados de la UCP se destinan a implementar la instrucción en curso de ejecución. Sin embargo, la complejidad de una instrucción conlleva su ejecución en "pasos elementales", definidos por un reloj. Las, partes elementales de una instrucción reciben el nombre de microinstrucciones, las cuales son conjuntos de 1 y 0 que se dirigen a las patitas de entradas de control, de los circuitos integrados. Como quiera que las instrucciones maquina que admite una UCP definida son siempre las mismas, también lo serán las microinstrucciones; por lo tanto, los grupos de bits que conforman las microinstrucciones se graban de forma permanente en memorias no volátiles, tipo ROM, que, en este caso, se llaman Memoria de Control. De aquí surge el concepto de Secuenciador, que no es más que un mecanismo que se encarga de ir sacando ordenadamente de la Memoria de Control las microinstrucciones correspondientes a la instrucción en ejecución. ETSII – Dpto. Tecnología Electrónica Página: 58 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Las señales de control que genera el Secuenciador actúan, entre otros, sobre la Unidad Operativa que suele ser una Unidad Lógico-Aritmética (ALU). Las instrucciones que admite la UCP están muy ligadas a las que puede efectuar la ALU. En este diseño se ha elegido la conocida ALU 74181, que maneja operandos de 4 bits, con lo que queda definido el tamaño de la palabra de trabajo de la UCP y el tamaño del bus de datos. Su esquema de conexionado se muestra en la figura y necesita 4 líneas (S0-S3) para la selección de la operación que va a realizar. Además, la señal M selecciona entre las 16 operaciones lógicas o las 16 operaciones aritméticas que puede efectuar esta ALU. Æ M = 1 operaciones lógicas y M = 0 operaciones aritméticas. La tabla de la figura muestra el conjunto de las 32 operaciones de la ALU. ETSII – Dpto. Tecnología Electrónica Página: 59 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Los 27 circuitos integrados que forman parte de la arquitectura de esta UCP son de tipo estándar y disponibles, generalmente, en los comercios del ramo. De ellos, 6 contienen simples puertas lógicas y los restantes son de uso más específico: ALU, contadores, buffers, básculas-cerrojo, EPROM, etc. El estudio de la UCP diseñada se desglosa en tres grandes bloques que se presentan por separado: 1. Bloque aritmético-lógico. 2. Contador de Programa. 3. Secuenciador. BLOQUE ARITMÉTICO-LOGICO Esta parte de la UCP es la encargada de realizar las posibles operaciones de procesamiento de datos de 4 bits. Se basa en la ALU 74181, que ya se ha explicado. ETSII – Dpto. Tecnología Electrónica Página: 60 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 61 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL La ALU dispone de dos entradas de datos de 4 bits: una procede, directamente, del bus interno de datos, mientras que la otra se recibe de una báscula-cerrojo de 4 bits, 74175, formada internamente por 4 flip-flop tipo D. A este cerrojo se le llama Registro A y la información que guarda y entrega a la ALU proviene, también, del bus de datos interno de la UCP. Los flip-flop D del 74175 se cargan mediante el flanco ascendente que reciben por su patita de entrada de reloj (CK) y que procede de la línea EA controlada por el Secuenciador. Con objeto de, caso de ser necesario, enviar al bus de datos interno la información del registro A, la salida del 74175 (también llamado Entrada A), se envía a una entrada de la ALU y a un buffer triestado, modelo 74125, que traslada la información del registro A al bus interno de datos, cuando, desde el Secuenciador, se activa (por nivel bajo) la señal SA (Salida A). Mientras el 74175 retiene la información permanentemente, el 74125 sólo transmite lo que recibe por su entrada al activarse SA. De forma parecida, la salida de la ALU se guarda en otra báscula-cerrojo (latch) 74175, que recibe el nombre de Registro B. Otro buffer triestado 74125 (Salida B) se encarga de trasladar la información del registro B al bus interno de datos, cuando desde el Secuenciador, se activa la señal SB. Cuando la ALU efectúa una operación, genera un acarreo de salida (Cn+4), que representa el señalizador de acarreo C y que consiste en un flip-flop que también se emplea para introducir su contenido a la entrada previa de acarreo (Cn), antes de realizarse una operación. El flip-flop de acarreo C, recibe dos señales desde el Secuenciador, una sirve para ponerle a 1 (SEC) y la otra a 0 (CLC). La señal de reloj CK del flip-flop C se activa con la señal EB (Entrada B), que carga al registro B con el resultado de salida de la ALU. Un conjunto de 3 puertas lógicas examinan la salida de la ALU y controlan el flip-flop D, en el que se almacena el estado del señalizador de cero (Z), el cual se pone a 1 cuando el resultado de una operación ha sido cero. Ambos señalizadores, C y Z, están integrados en el mismo circuito integrado 7474. Finalmente, la ALU necesita recibir 4 señales que seleccionan la operación, más otra (M) que determina si es de tipo lógico o aritmético. Las señales que seleccionan la operación proceden del código OP de la instrucción que entra desde el bus externo de datos e instrucciones, el cual dispone de dos circuitos integrados 74125 y 74126, que contienen 4 buffers de salida triestado y que actúan como entrada y salida de datos, respectivamente. La línea R/W del Secuenciador define si es entrada o salida de datos. Cuando por el 74125 se recibe un código OP, éste se carga en el circuito integrado 7475 (cuádruple cerrojo de flip-flop D), que funciona como un Registro de Instrucciones, y luego se aplica a las líneas de selección de la ALU (S0-SI-S2 y S3). Mediante un circuito decodificador, a base de puertas lógicas, se comprueban las señales M4-M5-M6 y M7 y se obtiene el valor de M que define en la ALU si se trata de una operación lógica o aritmética. EL CONTADOR DE PROGRAMA Dentro de la Unidad de Control de la UCP, uno de los componentes fundamentales es el PC, cuya misión es proporcionar la dirección de la memoria en donde se encuentra la instrucción que hay que ejecutar. ETSII – Dpto. Tecnología Electrónica Página: 62 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 63 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL En la UCP que se describe, el PC puede funcionar de tres maneras posibles, que se describen separadamente para facilitar su comprensión. 1. Forma habitual En general, el PC se incrementa cada vez que se ejecuta una instrucción. En la UCP que se describe, el Secuenciador incrementa al PC a través de la señal PC + 1. El PC está formado por dos contadores binarios, 74197, en serie, lo que sirve para proporcionar una dirección de 8 bits. Los contadores 74197 son de 4 bits y tienen la posibilidad de ser borrados con la señal CLEAR. El recuento del PC se carga en un buffer de salida triestado, implementado en el circuito 74244, que se compone de dos conjuntos de 4 líneas, que en este montaje actúan simultáneamente. La salida de este buffer, controlado por la señal G, carga el contenido del bus de direcciones. 2. En modo de direccionamiento absoluto En este caso, el bus de direcciones envía la posición de memoria en la que hay que cargar o extraer un dato, para que, a continuación, continúe el PC en la siguiente posición a la que tenía previamente. Se trata de la aplicación en una instrucción del direccionamiento del operando del modo "absoluto" en el que se proporciona en la instrucción directamente la dirección en donde se encuentra en operando, que hay que leer o escribir. En este procedimiento, se comienza cargando el Registro de Direcciones, formado por dos básculas 7475 que se encargan de guardar los 4 bits de la parte alta de la dirección (DH) y los 4 de la parte baja (DL). Las básculas 7475 son activadas por dos señales procedentes del Secuenciador y que se denominan DH y DL. Una vez cargados los 7475, su contenido pasa al buffer de 8 líneas 74241, que es activado por la señal ABS del Secuenciador, que, al mismo tiempo, desconecta al buffer 74244, cuyas salidas quedan en estado flotante. Cuando en un programa se realiza un salto, se pasa a la dirección correspondiente al salto y, luego el PC continúa incrementándose a partir de la misma. Este funcionamiento está en contraposición con el modo absoluto, en el que se volvía a la dirección previa del PC. Dada la sencillez de la UCP, no se le ha provisto de saltos con posibilidad de retorno, en los cuales hay que guardar el contenido M PC, para recuperarlo posteriormente. Cuando se efectúa un salto, se recibe desde el Secuenciador, la activación de una de las tres señales siguientes: JMP, JC o JZ. Entonces, por medio de un conjunto de puertas lógicas decodificadoras, se activa ¡a señal LC de los contadores 74197 los cuales se cargan con el contenido del Registro de Direcciones (7475x2). Luego, el recuento continúa a partir de la dirección cargada en el PC. SECUENCIADOR Este bloque de la UCP es el encargado del control de todo el sistema a través de sus líneas de salida. Su principal función consiste en recibir el código OP de la instrucción a ejecutar y generar una serie de microinstrucciones o pasos elementales que la realicen. Cada microinstrucción no es más que un conjunto de estados lógicos que salen por las líneas del Secuenciador hasta los elementos que participan en esa acción. Cada instrucción, según su complejidad, consta de un número variable de microinstrucciones que se ejecutan una detrás de otra. ETSII – Dpto. Tecnología Electrónica Página: 64 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL En el diseño que se comenta, todas las microinstrucciones que componen el repertorio de instrucciones de la UCP se han grabado en un par de memorias EPROM, modelo 2716, que tienen una capacidad de 2 K X 8 bits. Estas memorias disponen de 11 líneas para direccionar sus 2 K posiciones, de 8 bits cada una. Como en esta aplicación el número de posiciones a utilizar es inferior a 2 K, sólo se emplean 8 de dichas líneas en Cada EPROM, llevando a tierra las 3 restantes. Las dos memorias EPROM se direccionan en paralelo, con lo que se obtiene un total de 2 bytes de información (un byte de cada pastilla). Los 16 bits obtenidos en cada direccionamiento de la pareja de EPROM, constituyen las señales de salida del Secuenciador, que sirven para controlar todo el sistema. Las salidas de las memorias 2716 pasan por 3 básculas, tipos 74174 y 74175, antes de salir al exterior conformando el bus de control. Los 8 bits que forman la dirección, que sirve simultáneamente para las dos memorias, están distribuidos en dos conjuntos de 4 bits cada uno. Los 4 bits de más peso de la dirección (A4-A5-A6 y A7) corresponden con los 4 bits del código OP de la instrucción, que proviene del Registro de Instrucción (7475). Los 4 bits de menos peso de la dirección, proceden del circuito contador 74197, que recibe el nombre de Contador de Microinstrucciones (CMI). El CMI se incrementa una unidad con cada impulso de reloj externo. De esta manera el código OP, fija el valor de los 4 bits de más peso de la dirección de la pareja de memorias (sólo podrá haber un máximo de 2 = 16 instrucciones. Seleccionada, con los 4 bits de más peso, el comienzo de la posición de la instrucción a ejecutar, el CMI se va incrementando con cada impulso de reloj y va recorriendo hasta 16 posiciones de las memorias, al ir variando el valor de los 4 bits de menos peso de la dirección. En cada posición de memoria hay una microinstrucción y, por lo tanto, el mayor número de microinstrucciones que puede tener una instrucción, será de 16. En resumen, el código OP más el CMI, que se incrementa al ritmo del reloj, van direccionando las dos memorias en paralelo. En cada ciclo de reloj se direcciona una posición de cada memoria y así se obtiene una microinstrucción de 16 bits, los cuales salen por las líneas de control del Secuenciador hasta los diferentes elementos. 4 El CMI se incrementa en los flancos descendentes de reloj, mientras que las básculas de salida de las señales de cada instrucción recogen la información en los flancos ascendentes para retener la información una vez pasado el tiempo de acceso a las memorias. ETSII – Dpto. Tecnología Electrónica Página: 65 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 66 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL CRONOGRAMAS DE FUNCIONAMIENTO Para iniciar el funcionamiento de la UCP se ha dispuesto un pulsador de RESET que pone a 0 el PC y así recoge el código OP que existe en una posición concreta de la memoria principal. También pone a 0 el CMI, para formar la dirección completa de la instrucción. Transcurridos 300 ns después de haberse direccionado la primera instrucción, comienza a funcionar el reloj desde nivel bajo. En su primer flanco ascendente se cargan las básculas de salida de las señales de control y en el flanco descendente posterior se incrementa el CMI, con lo que se posiciona la siguiente microinstrucción. Cuando se llega a la última microinstrucción, el mismo Secuenciador se encarga de poner a 0 el CMI y cargar el Registro de Instrucción con el siguiente código OP. En la figura se presentan los cronogramas correspondientes a las señales de control para 3 instrucciones básicas: SEC: Poner a 1 el señalizador de acarreo C. LDA: Cargar el Registro A. STA: Almacenar en memoria el Registro A. ETSII – Dpto. Tecnología Electrónica Página: 67 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Esquema completo de la UCP. ETSII – Dpto. Tecnología Electrónica Página: 68 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL MODOS DE DIRECCIONAMIENTO Y REPERTORIO DE INSTRUCCIONES Una de las características fundamentales de una UCP es su juego de instrucciones. Muchos de los componentes de la UCP se han incluido para poder implementar instrucciones o microinstrucciones. Por eso, la arquitectura física de un procesador está muy ligada con su sistema lógico, ya desde las operaciones más elementales. Como ya se ha explicado, los modos de direccionamiento posibles en este diseño son las diversas formas de trabajo del Contador de Programa, que son tres: 1. Modo de direccionamiento absoluto. 2. Modo de direccionamiento relativo al PC. Saltos sin retorno, 3. Modo de direccionamiento inmediato. Respecto al repertorio de instrucciones, ya se ha comentado que estaba restringido a un máximo de 16, puesto que, con los 4 bits del código OP, sólo se podían alcanzar 16 combinaciones distintas. Además, cada instrucción puede constar de un máximo de 16 microinstrucciones, puesto que, una vez definida la instrucción con los 4 bits del código OP, que eran los 4 bits de más peso de la pareja de EPROM, el Contador de Microinstrucciones (CMI) iba incrementando los 4 bits de menos peso de la dirección para ir sacando una microinstrucción en cada ciclo de reloj. Se describen las instrucciones que se han implementado con microinstrucciones grabadas en la pareja de memorias tipo 2716. CPL Esta instrucción complementa el contenido del Registro A en la ALU y el resultado lo deposita en el Registro B, Consta de dos microinstrucciones: 1ª microinstrucción: El código OP es 0000 2 y actúa sobre la selección de la operación de la ALU. El secuenciador activa la señal correspondiente al próximo incremento del PC (PC+1) y se activa el Registro A. 2ª microinstrucción: Aquí se produce el incremento del PC y se activa la entrada del Registro B (EB) para recibir el resultado del complemento del Registro A que ha realizado la ALU. El cerrojo (CER) que actúa como Registro de Instrucciones, se activa para poder recoger el próximo código OP y la señal del Contador (CONT) pasa a 0, con lo que se borra el CMI para comenzar la exploración de las microinstrucciones de la siguiente instrucción desde 0. Con esta instrucción, los biestables de estado o señalizadores pueden quedar afectados de la siguiente manera: a) Si C = 1, no se modifica sea cual sea el resultado de la operación. Z queda afectado por el resultado. b) Si C = 0, este señalizador se comporta inversamente que el Z. SEC Esta instrucción, cuyo código OP es 116 , pone a 1 el señalizador de acarreo C. Consta de dos microinstrucciones: - La primera prepara el incremento deL PC y activa la línea SEC. - En la segunda, se borra el CMI y se incrementa el PC. Se recomienda consultar las tablas de secuenciamiento donde se han representado los códigos grabados en las memorias EPROM y la secuencia de las microinstrucciones que componen cada una de las instrucciones. ETSII – Dpto. Tecnología Electrónica Página: 69 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL CLC Sirve para poner el señalizador C a 0. El código OP es 216 . En su primera microinstrucción, el Secuenciador prepara el incremento del PC y activa la línea CMI. En la segunda, borra el CMI y se produce el incremento del PC. NOP No opera. Ocupa 4 cielos de reloj sin afectar a elemento alguno ni realizar operación. Su código OP es 316 . En sus tres primeras microinstrucciones mantiene preparado el incremento del PC y en la cuarta se lleva a cabo dicho incremento, se borra el CMI y se prepara el cerrojo de instrucciones para poder cargar un nuevo código OP. JC Es una instrucción de salto condicional. Cuando el señalizador de acarreo C está a 1, se produce un salto del PC a la posición de memoria que se especifica en el segundo y tercer operandos que siguen al código OP de la instrucción. El código OP es el 416 . En la primera microinstrucción se prepara el incremento del PC. En la segunda, se produce el incremento y se carga la parte alta del Registro de Direcciones. En la tercera, se prepara el incremento del PC y se sigue cargando la parte alta del Registro de Direcciones. En la cuarta microinstrucción se incrementa el PC y se carga la parte baja del Registro de Direcciones. En la quinta, se vuelve a preparar el PC, se activa la línea JC y si C = 1, se permite la carga del PC con el contenido del Registro de Direcciones que guarda la posición a la que se produce el salto. El sexto ciclo máquina prepara al PC y sirve para dar tiempo a que la memoria tenga acceso al dato (código OP). En la séptima microinstrucción se incrementa el PC, se borra el CMI y se prepara el cerrojo de instrucciones para recibir la siguiente instrucción. Si C =0, no se produce el salto y el programa sigue su secuencia normal. JZ Es un salto condicional a la posición de memoria especificada por el segundo y tercer operandos que siguen al código OP, en el caso de que el señalizador Z = 1. Si Z = 0, el programa sigue la secuencia normal. El código OP es el 516 . También consta esta instrucción de 7 microinstrucciones como JC y sólo difiere de esta última en la quinta microinstrucción, que, en lugar de activar el secuenciador la línea JC, activa la JZ. SBC Con esta instrucción se resta al contenido del Registro A, el contenido de la posición direccionada (direccionamiento absoluto) y el acarreo. El resultado de la operación queda almacenado en el Registro B y puede afectar a C y Z. El código OP es el 616 . Consta de 6 microinstrucciones. En la primera, prepara el incremento del PC. En la segunda, se incrementa el PC y se carga la parte alta del Registro de Direcciones. En la tercera, se prepara el PC y se sigue cargando la parte alta. En la cuarta, se carga la parte baja del Registro de Direcciones. En la quinta, se prepara al PC y se activa la línea ABS, con lo que la posición direccionada sale por el bus de direcciones. En la última microinstrucción se incrementa el PC, el contenido del bus de datos pasa a la ALU donde se efectúa la resta y se activa la línea EB, con lo que el resultado queda almacenado en el Registro B. El CMI y el cerrojo o registro de instrucciones quedan preparados para recibir la próxima instrucción. JMP Es un salto incondicional a la posición de memoria indicada en el segundo y tercer operandos que siguen al código OP 716 . Consta de 7 microinstrucciones o ciclos máquina, que siguen la misma secuencia que en la instrucción JC, a excepción de la quinta microinstrucción en la que el Secuenciador, en vez de activar la línea JC, activa la JMP. ETSII – Dpto. Tecnología Electrónica Página: 70 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL LDA Carga el Registro A con el contenido de la posición de memoria direccionada por el segundo y tercer operandos que siguen al código OP, es decir, de forma absoluta. Su código es 816 . Consta de 6 microinstrucciones. La primera, prepara al PC. La segunda, incrementa al PC y se carga la parte alta del Registro de Direcciones. En la tercera, se prepara el PC y se sigue cargando la parte alta. En la cuarta, se carga la parte baja del Registro de Direcciones. En la quinta, se prepara el PC, se activa la línea ABS y se prepara la línea EA (se pasa a 0). La sexta incrementa el PC y el contenido del bus de datos pasa al Registro A. Se incrementa el PC y se preparan el CMI y el cerrojo para la siguiente instrucción. ADC Se suma el contenido del Registro A con el contenido de la posición direccionada en la instrucción y el acarreo. El resultado queda almacenado en el Registro B y puede afectar el estado de los señalizadores. El código OP es 916 . Consta de 6 microinstrucciones. En la primera, se prepara el PC para su incremento. En la segunda, se incrementa el PC y se carga la parte alta del Registro de Direcciones. En la tercera, se prepara el PC y se sigue cargando la parte alta. En la cuarta, se carga la parte baja del Registro de Direcciones. En la quinta, se prepara al PC y el Secuenciador activa la línea ABS con lo que la dirección existente en el Registro de Direcciones sale por el bus de direcciones hacia la memoria; también se prepara en este ciclo máquina la línea EB. En la última microinstrucción, el contenido del bus de datos (dato recogido de la memoria) pasa a la ALU que efectúa la operación de suma y al activarse la línea EB, el resultado queda almacenado en el Registro B. Se incrementa P y se preparan el CMI y el cerrojo para recibir un nuevo código OP. STA Transfiere el contenido del Registro A a la posición de memoria direccionada por el segundo y tercer operandos que siguen al código OP A16 . Consta de 6 microinstrucciones. Las cuatro primeras son iguales a las que se han comentado para la instrucción LDA. La quinta, prepara el PC, activa la línea ABS, activa la línea SA y coloca la señal R/W en modo de escritura. En el último ciclo máquina se Incrementa el PC y se preparan el CMI y el cerrojo para recibir una nueva instrucción. AND Esta instrucción efectúa la operación lógica AND entre los bits del Registro A y el contenido de la posición de memoria direccionada por el segundo y tercer operandos que siguen al código OP B16 . Consta de 6 ciclos máquina, que son semejantes a las restantes operaciones lógicas o aritméticas que se realizan con la ALU. STB El contenido del Registro B se transfiere a la posición de memoria direccionada por el segundo y tercer operandos que siguen al código OP C16 . Consta de 6 microinstrucciones similares a las que se han comentado para la instrucción STA. Sólo en la quinta, en lugar de activar el Secuenciador la línea SA, activa la línea SB. ETSII – Dpto. Tecnología Electrónica Página: 71 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL LDA # Es una instrucción de carga inmediata del Registro A. El segundo operando, que sigue al código OP D16 es el valor que se carga, de forma inmediata, en el Registro A. Consta de 4 cielos máquina. En el primero, se prepara al PC. En el segundo, se incrementa el PC y se prepara la línea EA. La tercera microinstrucción prepara al PC y activa EA. En la última microinstrucción, se incrementa el PC y se preparan el CMI y el cerrojo. OR Realiza la operación lógica OR entre el Registro A y el contenido de la posición de memoria direccionada por el segundo y tercer operandos. El resultado queda almacenado en el Registro B y su código OP es E16 . Consta de 6 microinstrucciones semejantes a las anteriores instrucciones de tipo lógico o aritmético. MOV A,B Esta instrucción sirve para transferir el contenido del Registro A al Registro B, pasando por la ALU. Los señalizadores quedan afectados como en la instrucción de suma. El código OP es el F16 . Consta de dos microinstrucciones. En la primera, se prepara al PC y a la señal EB. En la última, se incrementa el PC, se activa EB y el cerrojo (registro de instrucciones) y el CMI (Contador de Microinstrucciones) queda inicializado para recibir un nuevo código OP. En las tablas se han representado gráficamente los microprogramas de las señales de control que salen del Secuenciador y que conforman las microinstrucciones de cada instrucción del repertorio. ETSII – Dpto. Tecnología Electrónica Página: 72 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 73 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 74 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL DIAGRAMAS DE CONEXIONADO DE LOS CIRCUITOS INTEGRADOS EMPLEADOS EN LA CONSTRUCCION DE LA UCP En las figuras se muestran los diagramas de conexionado de todos los circuitos integrados utilizados en la construcción de la UCP descrita. ETSII – Dpto. Tecnología Electrónica Página: 75 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 76 / 80 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica UNIDAD DE CONTROL Página: 77 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL Usos y ventajas de la microprogramación Al establecer un puente entre el hardware y el software, la microprogramación simplifica el primero, al tiempo que le confiere una versatilidad hasta ahora reservada al segundo. Resumamos las ventajas que pueden esperarse de estas dos cualidades, simplificación y versatilidad, cuando se compara una estructura microprogramada con una estructura cableada. ¾ La simplificación implica una disminución del coste del material, del diseño, del mantenimiento y de la reparación, así como una mejor fiabilidad intrínseca. ¾ La versatilidad abre el camino a múltiples posibilidades: (1) Diseño más rápido, ya que puede ser reconsiderado: es fácil añadir o modificar una instrucción, mientras que un sistema cableado obligaría a rehacer todo el secuenciador. (2) Extensión o modificación del conjunto de instrucciones previsto por el constructor y, sobre todo, particularización de este código para cada tipo de aplicación o para cada usuario. ETSII – Dpto. Tecnología Electrónica Página: 78 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL (3) Posibilidad de incorporar instrucciones complejas, a menudo llamadas super-instrucciones que, en los calculadores tradicionales, se realizan normalmente por medio de subprogramas. Pudieran ser, por ejemplo, instrucciones orientadas a la compilación e, incluso la parcial microprogramación de compiladores. (4) Posibilidad de emular o de simular cualquier ordenador sobre uno microprogramado, utilizando un conjunto especial de instrucciones. En especial, las técnicas de emulación permiten utilizar programas concebidos para un calculador de la generación precedente en uno de la nueva generación, cuando éstos no son compatibles. La memoria muerta de emulación se le deja al usuario durante el período de conversión de los programas. Por el contrario, la simulación permite estudiar una nueva máquina y desarrollar su software antes de que sea realmente construida. (5) Aptitud para la concepción de una gama compatible, en la que las máquinas de la parte baja de la gama están microprogramadas y las de la parte alta, cableadas. Las correspondientes micromáquinas poseerán, para el mismo juego de instrucciones, es decir para la misma macromáquina, rutas de datos cada vez más simples a medida que se desciende en la gama, lo que equivale a una disminución del coste, unido a una pérdida de rendimiento. La serie IBM 360 es un buen ejemplo de ello. La microprogramación no está exclusivamente reservada a las unidades centrales. También puede utilizarse en el gobierno de operadores aritméticos independientes, en el gobierno de los canales y de las unidades de control de periféricos. Inicialización de un computador Para lanzar manualmente un programa ya registrado en memoria, supuesto parado el ordenador, basta con escoger mediante conmutadores del pupitre de mando, la dirección de la primera instrucción, pulsando después el botón de arranque de programa. La dirección representada por los conmutadores es transferida al contador ordinal y el ordenador, pasando a funcionamiento automático, comienza a procesar el programa. Puede suceder que no exista en memoria ningún programa utilizable; esto es precisamente lo que ocurre cuando se utiliza por primera vez un ordenador, cuando se repone en marcha tras un corte de alimentación si la memoria central es volátil, o, sobre todo, cuando se reanuda su utilización después de destruirse por error informaciones en memoria. Entonces es necesario inicializar al ordenador, lo que quiere decir, en términos metafóricos, enseñarle a leer, cosa que no sabe hacer si no posee un programa de carga en su memoria. En las primeras máquinas, el proceso de inicialización era muy laborioso. El operador debía introducir manualmente en la memoria, bit por bit, con ayuda de los conmutadores del pupitre, un primer cargador muy rudimentario compuesto por algunas instrucciones y darle el control según los procedimientos anteriormente expuestos. Este primer cargador sabía leer una tarjeta perforada, la cual contenía un cargador algo menos rudimentario, y darle el control. Este segundo cargador permitía leer las tarjetas siguientes y así sucesivamente hasta incorporar el cargador completo que, a su vez, capacitaba para leer y cargar programas desde cualquier unidad periférica. Actualmente, las fastidiosas manipulaciones de los conmutadores del pupitre han quedado suprimidas gracias a los cargadores automáticos, generalmente grabados en memoria muerta. Para inicializar al ordenador, el operador selecciona en el pupitre la unidad periférica deseada de entrada y pulsa el botón de carga inicial. El ordenador pasa al modo de carga automática; ejecuta el programa de la memoria muerta correspondiente a la unidad periférica seleccionada, programa que no es sino un primer cargador que inicializa un proceso de carga similar al anterior. ETSII – Dpto. Tecnología Electrónica Página: 79 / 80 MSA Sistemas de Multiprocesamiento UNIDAD DE CONTROL En las máquinas provistas de un sistema operativo, la operación de carga inicial va seguida de la de generación del sistema. El primer programa cargado después del proceso de carga por etapas es el de generación del sistema. Este pide al operador, en diálogo a través de la máquina de escribir del pupitre, que defina la configuración de la instalación y las condiciones de explotación y después, según las respuestas del operador, carga las partes del sistema operativo necesarias a la gestión del computador. ETSII – Dpto. Tecnología Electrónica Página: 80 / 80 MSA