A MENTE DA MAQUINA

Texto completo

(1)

CAPÍTULO

5

UNIDADE DE CONTROL.

A MENTE DA MAQUINA

5.1.- INTRODUCCION.

A Unidade de Control é a sección da computadora encargada, fundamentalmente, de interpretar as instruccións do programa e gobernar a execución das mesmas. Esta labor póde descompoñerse nas seguintes funcións específicas:

Recibir da Memoria o código máquina da instrucción a executar. Para a correcta recepción de instruccións hai que controlar o Contador de Programa, que é o rexistro que carga o bus de direccións para apuntar a seguinte instrucción do programa.

Interpretar e decodificar cada instrucción.

Controlar a execución das instruccións, xenerando as sinais adecuadas en cada momento para que os elementos das restantes seccións (Memoria, Unidade de Proceso e E/S) actúen correctamente.

Debe ser capaz de resolver as situacións anómalas e atender as interrupcións e a

comunicación cos periféricos.

Na figura 5.1 represéntase, de forma gráfica, a actuación xeral da Unidade de Control no entorno da máquina.

A Unidade de Control recibe desde un rexistro especial, denominado Rexistro de

Instruccións ( RI ), os bits que compoñen o código máquina da instrucción en curso, instrucción que estaba situada na posición da Memoria cuio valor tiñamos no rexistro PC, e que levamos ó Rexistro de Intruccións a través do bus de datos.

(2)

Cada operación elemental require que se xeneren os niveis lóxicos que controlan os dispositivos da computadora. Dita información binaria adoita estar grabada nunha memoria ROM, denominada Memoria de Control.

O Decoditicador de Instruccións do esquema da figura 5.2 selecciona as posicións da Memoria de Control que corresponden coas operacións elementais que compoñen a instrucción en fase de execución. Finalmente, o Secuenciador encargase de distribuir as sinais de control, procedentes da lectura das posicións da Memoria de Control, a os elementos do sistema.

A función do rexistro PC englóbase dentro da actividade fundamental da Unidade de Control. En canto finaliza unha instrucción, o PC solta o seu contido para iniciar o proceso de execución da seguinte. Como os programas almacenados na Memoria teñen carácter secuencial, o rexistro PC increméntase automáticamente cada vez que sae o seu contido. Só hai certas instruccións de salto que rompen a secuencia ordenada, ó cargar no PC a dirección dunha instrucción calquera.

O Decodificador de Instruccións, para localizar as posicións da Memoria de Control que corresponden á instrucción en curso, según a figura 5.3, utiliza a seguinte información:

• Código da operación procedente de RI.

• Estado dos sinalizadores.

• Número de microinstruccións xa realizadas, para o que se dispón dun Contador de períodos.

• Estado das liñas de interrupción e das de E/S.

(3)
(4)

5.2.- CONTROL DAS OPERACIÓNS ELEMENTAIS.

As microinstruccións en que se descompón unha instrucción constan de varias operacións elementais.

Para diseñar a Unidade de Control hai que coñecer perfectamente o repertorio de instruccións que tén que interpretar así como as operacións elementais que se deben desarrollar en cada microinstrucción.

As operacións elementais póden ser de dous tipos:

1. De transferencia de información. 2. De procesamento da información.

As operacións de transferencia establecen un camiño de comunicación entre o orixe e o destino. Entonces, o primeiro deposita a información sobre o camiño e o outro procede a recollela.

O camiño de comunicación entre os elementos dunha computadora é o bus de datos, que tén sentido bidireccional. Tanto a Memoria como os rexistros internos do procesador están conectados ó bus de datos, podendo realizar operacións de lectura e escritura.

Os rexistros do procesador, que están conectados ó bus de datos, dispoñen de dúas sinais de control; unha delas sirve para cargar o rexistro co contido do bus de datos e a outra para depositar o contido do rexistro sobre o bus.

Os rexistros constan de varios bits, cada ún dos cales está gardado nun flip-flop, que póde cargarse co nivel lóxico procedente da liña do bus de datos ó que tén conectada a súa entrada. A saída do flip-flop está unida á mesma liña do bus, pero a través dun buffer

triestado, que só a deixa pasar cando se activa a sinal TRIESTADO. Figura 5.4.

(5)

Para evitar conflictos, o bus de datos non póde recibir información sobre as súas liñas máis que dun só rexistro. En caso contrario, poderían producirse cortocircuitos en algunha das súas liñas, que recibirían niveis lóxicos opostos e darían lugar a averías no equipo físico.

Para mover a información entre os rexistros, a Unidade de Control debe gobernar a activación das sinais de control. Inicialmenle debería activar a sinal TRIES do rexistro que actúa como orixe e, pasado certo tempo, o suficiente para que a que a información se estabilice no bus, activarase a sinal de CARGA do rexistro destino.

EXEMPLO

Debuxar o cronograma de activación das sinais que controlan os rexistros do esquema da tigura 5.5. para que o contido do REXISTRO 2 pase ó REXISTRO 3.

É moi frecuente que a transferencia de información se realice entre a Memoria e ún dos rexistros. A Memoria recibe tres sinais de control:

1. CICLO: indica o comezo dunha operación de lectura ou escritura da memoria.

2. LECT: Procédese a ler a posición da Memoria que responde á dirección que se proporciona.

(6)

EXEMPLO

Se supoñemos que o bus de direccións do esquema da figura 5.7 soporta o valor 100h, debuxar o cronograma que representa a activación das sinais de control precisas para transferir o contido da dirección 100h ata o REXISTRO 1.

SOLUCION

(7)

Nas operacións elementais de procesamento da información hai que facer pasar os valores dos operandos fonte por un operador (aritmético, lóxico, etc.) para obter o resultado, que se carga no operando destino. Os operadores residen na ALU da Unidade de Proceso ou Camiño de Datos e hai un conxunto de sinais de control que determinan a operación que se efectúa sobre os operandos. Na figura 5.9 preséntase un esquema típico para a realización de operacións de procesamento.

EXEMPLO

(8)

5.3.- OPERACIÓNS ELEMENTAIS E SINAIS DE CONTROL NA MS.

Na figura 5.11 móstrase a relación que existe na MS entre a Unidade de Control, a Memoria e a Unidade de Proceso. Todas as compoñentes se gobernan mediante sinais de

CARGA, ou ben, de “selección de operación”, no caso da ALU e “selección de entrada” no multiplexor MPX de entrada ó bus de direccións.

O bus de direccións da Memoria é controlado polo multiplexor, pudéndoo cargar co contido do PC, se se busca a seguinte instrucción do programa, co do operando fonte (F) ou co operando destino (D). O RI cárgase cando se le da Memoria o código dunha instrucción direccionada polo PC. Cando se len datos da Memoria, pódense cargar nos rexistros A ou B, que proporcionan as entradas á ALU.

Na figura 5.12 represéntase a Unidade de Control da MS e as sinais que actúan como entrada e como saída.

Fig. 5.11.- A Unidade de Control xenera as sinais oportunas para controlar a Memoria e a Unidade de Proceso.

(9)

Cada microinstrucción é un estado polo que pasa a máquina cando desarrolla unha instrucción. O estado queda definido polo valor das 10 sinais de saída da Unidade de Control, que reciben o nome de vector de saída.

Unha operación elemental de transferencia de información na MS prodúcese ó inicio de cada instrucción, na primeira fase, que é común para todas elas. Nesta fase, denominada de

búsqueda, o PC deposita o seu contido sobre o bus de direccións; procédese a ler a posición direccionada, e o contido da mesma cárgase no Rexistro de Instruccións ( RI ). Nesta microinstrucción transfírese o contido da posición direccionada polo rexistro PC ó rexistro

RI, abreviadamente RI ← M(PC).

(10)

A fase de búsqueda póde representarse simbólicamente RI ← M(PC), que significa que o contido da posición da Memoria direccionada por PC se carga en RI.

Durante a fase de búsqueda tamén debe quedar cargado o PC ca dirección da seguinte instruccion do programa. Dada a secuencialidade do programa, o PC cargarase, na maior parte das instruccións, co valor anterior máis 1. Para este fin, a Unidade de Control activa a sinal de CARGA de PC (PC ← PC + 1).

Unha operación elemental de procesamento da información para a MS prodúcese cando a ALU realiza unha transformación dos operandos que están cargados nos rexistros A e B por medio dun dos seus operadores. Esta computadora só dispón de dous operadores: o

sumador e o comparador, basado en portas XOR. Estes operadores empréganse nas instruccións ADD e CMP. Se, por exemplo, se desexa efectuar a suma de dous operandos, a Unidade de Control situará nas sinais ALU1 e ALU0, os valores correspondentes ó código para a suma (ALU1=ALU0= 0). Tamén se activará a sinal CARGA do sinalizador cero

(cargaFZ). Figura 5.14.

EXEMPLO

Debuxar un esquema que represente as sinais de control que activa a Unidade de Control da MS para gobernar unha operación elemental que cargue o resultado da suma, que produce a ALU na posición de Memoria direccionada polo operando destino (D), que está contido no rexistro RI.

SOLUCION

(11)

5.4.- FASES DUNHA INSTRUCCIÓN.

A función dunha computadora é executar instruccións e a Unidade de Control é a sección onde se interpreta o código máquina e se xeneran as sinais de control adecuadas en cada fase.

As etapas principais nas que se descompón calquer instrucción son:

1ª) FASE DE BUSQUEDA.

O PC proporciona a dirección de Memoria onde se encontra o código máquina da instrucción. Lese e deposítase o contido no Rexistro de Instruccións (RI).

(12)

2ª) FASE DE DECODIFICACIÓN.

Utilizando o código de operación contido en RI, máis a información procedente dos sinalizadores, as interrupcións, o contador de períodos e as E/S, a Unidade de Control decide que instrucción corresponde executar e as microinstruccións que a compoñen. Así se consigue direccionar a Memoria de Control que contén os valores dos vectores de saída das microinstruccións.

3ª) FASE DE BUSQUEDA DOS OPERANDOS.

Interpretada a instrucción, que ás veces inclúe no seu código o direccionamento dos operandos, a Unidade de Control encárgase de activar as sinais oportunas para acceder á Memoria, a os rexistros ou á propia instrucción para obter os mesmos.

4ª) FASE DE EXECUCION.

Procédese a seleccionar a microoperación correspondente á instrucción en curso. Se existen N códigos de operación, haberá n sinais de selección distintas, tal que 2n >=N.

5ª) FASE DE INTERRUPCION.

Ao completar cada instrucción, os procesadores que son capaces de aceptar interrupcións exploran se existe algunha petición de interrupción pendente de atender.

A técnica das interrupcións emprégase para atender, prioritariamente, acontecementos externos á computadora. Cando se produce ún de ditos acontecementos, actívase unha das patiñas do procesador, que orixina a detención da execución da secuencia de instruccións do programa principal, para pasar a realizar unha rutina especial, almacenada nunha zona reservada da Memoria, destinada a resolver o problema xurdido. Finalizada a rutina de atención á interrupción, o procesador regresa ó punto do programa principal onde se produxo a rotura da secuencia e continúa normalmente.

5.4.1.- FASES DUNHA INSTRUCCIÓN na Máquina Simple (MS).

Fase 1: Búsqueda do código da instrucción.

(13)

Gráficamente pódese expresar así a fase de búsqueda:

RI ← M(PC) PC ← PC + 1

En caso de tratarse da instrucción BEQ D, con FZ = 1,

RI ← M(D) PC ← D + 1

Fase2: Decodificación.

Analízanse os 2 bits que compoñen o código de operación (CO), xunto co valor de

FZ, e determínase a instrucción de que se trata.

Fase3: Búsqueda de Operandos.

Lense da Memoria os operandos que participan na operación. No caso de tratarse da instrucción BEQ D, avalíase FZ.

Fase4: Execucion e Almacenamento do Resultado.

Execútase a instrucción e, se procede, almacénase o resultado na Memoria.

5.4.2.- GRAFO DE ESTADOS.

Cada fase dunha instrucción descomponse en un ou máis estados, que son operacións elementais, denominadas microinstruccións.

A cada estado correspóndelle un conxunto de valores para as sinais de control que saen da Unidade de Control, e que se encargan de gobernar a Memoria e a Unidade de Proceso ou Camiño de Datos.

As transiccións entre os distintos estados lévanse a cabo sincrónicamente, ó ritmo da sinal do reloxo.

(14)

Instrucción ADD MICROPROGRAMA

FASE ESTADO OPERACIÓN DIR1 DIR0 ALU1 ALU0 W/R cPC cRI cA cB cFZ 1 S0 RI ← M(PC)

PC ← PC+1 0 0 X X 0 1 1 0 0 0

2 S1 DECODIFIC. X X X X 0 0 0 0 0 0

3 S2 B ← M( F ) 1 0 X X 0 0 0 0 1 0

3 S3 A ← M( D ) 1 1 X X 0 0 0 1 0 0

4 S4 M(D) Cargar FZ ← A+B 1 1 0 0 1 0 0 0 0 1

Táboa 5.1a.- Microprograma correspondente á instrucción ADD da MS.

Instrucción CMP MICROPROGRAMA

FASE ESTADO OPERACIÓN DIR1 DIR0 ALU1 ALU0 W/R cPC cRI cA cB cFZ 1 S0 RI ← M(PC)

PC ← PC+1 0 0 X X 0 1 1 0 0 0

2 S1 DECODIFIC. De CO

1-CO0 X X X X 0 0 0 0 0 0

3 S8=S2 B ← M( F ) 1 0 X X 0 0 0 0 1 0

3 S9=S3 A ← M( D ) 1 1 X X 0 0 0 1 0 0

4 S5 A Cargar FZ B x x 0 1 0 0 0 0 0 1

Táboa 5.1b.- Microprograma correspondente á instrucción CMP da MS.

Instrucción MOV MICROPROGRAMA

FASE ESTADO OPERACIÓN DIR1 DIR0 ALU1 ALU0 W/R cPC cRI cA cB cFZ 1 S0 RI ← M(PC)

PC ← PC+1 0 0 X X 0 1 1 0 0 0

2 S1 DECODIFIC. X X X X 0 0 0 0 0 0

3 S10=S2 B ← M( F ) 1 0 X X 0 0 0 0 1 0

4 S6 M(D) ← B 1 1 1 0 1 0 0 0 0 0

Táboa 5.1c.- Microprograma correspondente á instrucción MOV da MS.

Instrucción BEQ MICROPROGRAMA

FASE ESTADO OPERACIÓN DIR1 DIR0 ALU1 ALU0 W/R cPC cRI cA cB cFZ 1 S0 RI ← M(PC)

PC ← PC+1 0 0 X X 0 1 1 0 0 0

2 S1 DECODIFIC. X X X X 0 0 0 0 0 0

2 S11 Avaliación FZ X X X X 0 0 0 0 0 0

4 S7

Se FZ = 1 RI ← M(D) PC ← D+1

1 1 X X 0 1 1 0 0 0

(15)

No estado S7, da instrucción BEQ, no que FZ é igual a 1, realízase a fase de búsqueda da seguinte instrucción, cuia dirección está contida no campo D do operando destino do rexistro RI. Despois actualízase o valor de PC co do valor D+1.

Na figura 5.16 móstrase un grafo xeral de estados para as instruccións da Máquina Simple (MS). Dentro de cada círculo represéntase estado/vector asociado (n/Sn).

O vector de saída determina o valor das 10 sinais de control xeneradas pola Unidade de Control. As transiccións entre os estados prodúcense, normalmente, con cada ciclo de reloxo e según os valores das sinais CO1, CO0 e FZ. Estes valores son os que aparecen no grafo, nas liñas que unen os estados, figurando X cando o valor dalgunha das sinais é indiferente.

(16)

VECTOR DE SAÍDA DA UNIDADE DE CONTROL Estado

(Vector) OPERACIÓN DIR1 DIR0 ALU1 ALU0 W/R cPC cRI cA cB cFZ

0(S0) RI PC PC+1 M(PC) 0 0 X X 0 1 1 0 0 0 1(S1) DECODIFIC. X X X X 0 0 0 0 0 0 2(S2) B ← M( F ) 1 0 X X 0 0 0 0 1 0 3(S3) A ← M( D ) 1 1 X X 0 0 0 1 0 0 4(S4) M(D) Cargar FZ ← A+B 1 1 0 0 1 0 0 0 0 1 8(S8) B ← M( F ) 1 0 X X 0 0 0 0 1 0 9(S9) A ← M( D ) 1 1 X X 0 0 0 1 0 0 5(S5) A Cargar FZ B X X 0 1 0 0 0 0 0 1 10(S10) B ← M( F ) 1 0 X X 0 0 0 0 1 0 6(S6) M(D) ← B 1 1 1 0 1 0 0 0 0 0 11(S11) Avaliar FZ X X X X 0 0 0 0 0 0

7(S7 )

Se FZ = 1 RI ← M(D)

PC ← D+1 1 1 X X 0 1 1 0 0 0

Táboa 5.2.- Valores de cada unha das 10 sinais de control en cada un dos estados das isnstruccións da MS

Na Táboa 5.2. pódese apreciar que existen varios estados idénticos. Para simplificar o grafo e reducir o número de estados dámoslle o mesmo nome ós que teñen igual vector asociado. Comentanse brevemente as diferentes equivalencias.

1. As instruccións ADD, MOV e CMP teñen un estado común, a carga do operando fonte no rexistro B [B ← M(F)]. A este estado denóminámoslle S2 nas tres instruccións, en vez de empregar S2, S8 e S10.

2. Tamén teñen un estado común as instruccións ADD e CMP, que é o de carga do operando destino no rexistro A [A ← M(D)]. Ditos estados, que se denominaban S3 e S9, vámolos a coñecer como S3 únicamente.

3. Finalmente, a avaliación do valor de FZ na instrucción BEQ, pode realizarse no estado S1, co que evitaremos o estado S11.

(17)

5.5.- DESEÑO DA UNIDADE DE CONTROL.

Para deseñar a Unidade de Control hai que coñecer previamente tódalas características do repertorio de instruccións que hai que interpretar. A Unidade de Control poderá recoñecer de que instrucción se trata, analizando os campos de Código de Operación, estado dos sinalizadores, etc.

Para facernos unha idea da dificultade que entraña o deseño dunha Unidade de Control, vamos a considerar a dun procesador coas seguintes características:

• 8 bits para o campo de código de operación.

• 5 sinalizadores, ou flags, no seu Rexistro de Estado.

• 32 estados ou microinstruccións diferentes para executar o xogo de instruccións, o que implica un contador de estados de 5 bits.

A Unidade de Control disporá de 18 sinais de entrada (8+5+5), sen contar as sinais de Interrupción nin as de comunicación coas Entradas/Saídas.

(18)

Hai dous métodos xenéricos para o deseño da Unidade de Control, según se aplique a lóxica cableada ou unha Memoria especial que conteña almacenados, en cada unha das súas posicións, os vectores de saída para cada microinstrucción ou estado, denominándose deseño con lóxica programada.

5.5.1.- UNIDADE DE CONTROL CON LÓXICA CABLEADA.

Trátase dun deseño clásico que emprega os recursos da Electrónica Dixital, como portas, rexistros, multiplexores, etc..

Dada a complexidade do deseño, resulta moi laborioso e caro, sen embargo, alcánzase unha gran velocidade de proceso.

Este método só interesa en grandes e potentes computadoras nas que prima a potencia sobre o coste.

5.5.2.- UNIDADE DE CONTROL MICROPROGRAMADA.

Neste método emprégase unha memoria, denominada Memoria de Control, que almacena en cada posición o valor das sinais de control que debe xenerar a Unidade de Control en cada estado ou microinstrucción.

A execución dunha instrucción redúcese á lectura de varias posicións da Memoria de Control, que conteñen os vectores de saída das microinstruccións que a conforman.

O método de grabar en memoria os códigos que implementan as microinstruccións supón importantes ventaxas, tales coma o baixo coste, a simplicidade e sistematicidade do deseño, e a facilidade para a modificación do repertorio de instruccións.

Esta forma de deseñar a Unidade de Control foi unha idea de Wilkes en 1950, sendo IBM a primeira empresa que a levou á práctica no seu modelo 360 a mediados da década dos anos 60.

Esta técnica recibe o nome de microprogramación porque descompón cada instrucción do programa en instruccións elementais ou microinstruccións. Unha instrucción consta de varias microinstruccións, tendo cada unha delas reservada unha posición da Memoria de Control na que se almacena o valor binario das sinais de control para realizar esa operación elemental.

(19)

EXEMPLO

Debuxar o microprograma correspondente á instrucción ADD da MS.

SOLUCION

Instrucción ADD MICROPROGRAMA

FASE ESTADO OPERACIÓN DIR1 DIR0 ALU1 ALU0 W/R cPC cRI cA cB cFZ 1 S0 RI ← M(PC)

PC ← PC+1 0 0 X X 0 1 1 0 0 0

2 S1 DECODIFIC. X X X X 0 0 0 0 0 0

3 S2 B ← M( F ) 1 0 X X 0 0 0 0 1 0

3 S3 A ← M( D ) 1 1 X X 0 0 0 1 0 0

4 S4 M(D) Cargar FZ ← A+B 1 1 0 0 1 0 0 0 0 1

Táboa 5.1a.- Microprograma correspondente á instrucción ADD da MS.

As misións da Unidade de Control son:

• Traducir o código máquina de cada instrucción ó microprograma que lle corresponde na Memoria de Control.

• Outro mecanismo do que debe dispoñer, é o que se precisa para ir lendo sucesivamente as microinstruccións dun microprograma asta encontrar a última, que bifurcará a un novo microprograma.

Estes mecanismos póden construirse según dous métodos:

1. Con secuenciamento explícito. 2. Con secuenciamento implícito.

5.5.2.1.- Con secuenciamento explícito.

(20)

O Contador de Estados da figura 5.18 establece o período básico da máquina e leva a conta dos estados que se levan realizados en cada microprograma. O multiplexor deposita no bus de direccións da Memoria de Control o código de operación da instrucción, para buscar a primeira microinstrucción, ou bén, o campo de Dirección da posición lída na Memoria de Control. Dito campo proporciona a dirección da seguinte microinstrucción. Cando Chega a última microinstrucción dun microprograma, o bit de máis peso da posición leída na Memoria de Control, indicalle ó multiplexor que a seguinte microinstrucción será a primeira do seguinte microprograma cuia dirección, na Memoria de Control, deberá recollerse do campo de código de operación do RI.

5.5.2.2.- Con secuenciamento implícito.

Tódalas microinstruccións de cada microprograma colócanse ordenadamente na Memoria de Control. Esto significa que unha vez se localizou a primeira microinstrucción, as restantes están ordenadas a continuación.

O secuenciamento implícito representa un gran aforro na capacidade da Memoria de Control, pois reduce notablemente o tamaño das súas posicións, que só conteñen o valor das sinais de control e un bit máis, que avisa se se trata da última microinstrucción dun microprograma.

(21)

O multiplexor de direccións da figura 5.19 coloca no bus de direccións da Memoria de Control a saída do traductor cando se inicia cada instrucción, proporcionando a dirección da primeira microinstrucción. Para as seguintes microinstruccións, selecciona a entrada que incrementa a dirección anterior, apuntando á seguinte dirección da Memoria de Control, onde se atopa a seguinte microinstrucción.

(22)

5.6.- DESEÑO DA UNIDADE DE CONTROL DA MS.

Neste apartado abordaremos o deseño da Unidade de Control da MS con lóxica cableada e con secuenciamento explícito e Implícito.

5.6.1.- Unidade de Control con circuito Secuenciador combinacional.

Vamos a deseñar, en primeiro lugar, a Unidade de Control da MS empregando unha Memoria de Control e deseñar un circuito combinacional para o bloque do Secuenciador.

Os diversos estados polos que atravesa cada instrucción da MS, así como os seus correspondentes vectores de saída, represéntanse no grafo de estados da figura 5.17. En total existen oito estados distintos, caracterizados polos valores das 10 sinais de control.

EXEMPLO

Indicar os estados en que se descompoñen as instruccións ADD e BEQ, da MS.

SOLUCION

Os estados da instrucción ADD son: S0, S1, S2, S3 e S4.

Os estados en que se descompón a instrucción BEQ, varían según o valor de FZ. Se FZ = 1, os estados son: S0, S1 eS7.

Se FZ = 0, os estados son: S0 e S1.

A implementación da Memoria de Control realizarase sobre unha memoria non volátil, tipo ROM, na que se grabarán os valores binarios correspondentes ós estados polos que póde atravesar cada instrucción. Ó existir oito estados, Figura 5.17, e cada ún constar de 10 sinais de control, precisarase unha memoria de oito posicións de 10 bits cada unha. Comercialmente pódense encontrar modelos con oito posicións de 16 bits cada unha, en cuio caso, algúns bits de cada posición non se usarán.

Como se aprecia na Táboa 5.4, a cada dirección da ROM asígnaselle un estado. Á posición de dirección @0 asígnaselle o estado S0; á @1 o estado S1, etc. Dos 16 bits de cada posición só se sacan ó exterior os 10 de menos peso, depositando cada ún deles sobre unha das sinais de control que xenera a Unidade de Control para gobernar a Memoria e a Unidade de Proceso ou Camiño de Datos.

Sen significado DIR1 DIR0 ALU1 ALU0 W/R PCcar RIcar Acar Bcar FZcar Estado―

@direción b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

S0—@0 X X X X X X 0 0 X X 0 1 1 0 0 0

S1—@1 X X X X X X X X X X 0 0 0 0 0 0

S2—@2 X X X X X X 1 0 X X 0 0 0 0 1 0

S3—@3 X X X X X X 1 1 X X 0 0 0 1 0 0

S4—@4 X X X X X X 1 1 0 0 1 0 0 0 0 1

S5—@5 X X X X X X X X 0 1 0 0 0 0 0 1

S6—@6 X X X X X X 1 1 1 0 1 0 0 0 0 0

S7—@7 X X X X X X 1 1 X X 0 1 1 0 0 0

(23)

Para especificar a dirección da ROM precísanse 3 bits, que vamos a denominar, D2, D1 e D0, cos que se forma a dirección na que se encontra un estado en cada ciclo de reloxo.

Para determinar en cada ciclo de reloxo que posición se debe ler, téñense en conta as seguintes informacións:

a) O estado anterior, que está definido polo valor da dirección previa da ROM (Q2, Q1 e Q0) e que se almacena en tres flip-flops.

b) Os 2 bits que forman o código de operación da instrucción (CO1 e CO0).

c) O valor do sinalizador FZ.

Para xenerar a dirección do estado seguinte, deséñase un complexo circuito combinacional, que recibe o nome de Secuenciador, e que tén como entradas as sinais Q2, Q1, Q0, CO1, CO0 e FZ, e como saídas D2, D1 e D0.

Na figura 5.21 móstrase un esquema completo da Unidade de Control da MS, formada pola ROM, cos vectores de saída grabados nas súas oito posicións, o Secuenciador que xenera a dirección da seguinte microinstrucción ou estado, e os tres flip-flops que gardan a dirección do estado en curso (Q2, Q1 e Q0).

(24)

Dado que o Secuenciador é un circuito combinacional, que responde a unha táboa de verdade, o seu deseño sigue as fases de calquer circuito deste tipo:

1. Confección da táboa de verdade.

2. Obtención das ecuacións lóxicas da táboa. 3. Simplificación das ecuacións.

4. Implementación das ecuacións simplificadas mediante as correspondentes portas lóxicas.

Na táboa 5.6 represéntase a táboa de verdade á que responden as saídas do secuenciador D2, D1 e D0, en función das entradas Q2, Q1, Q0, CO1, CO0 e FZ.

ENTRADAS SAÍDAS ESTADO ACTUAL SINAIS DE ENTRADA ESTADO SEGUINTE

Estado Q2 Q1 Q0 C1 C0 FZ D2 D1 D0 Estado

S0 0 0 0 X X X 0 0 1 S1 0 X X 0 1 0 S2 X 0 X 0 1 0 S2 1 1 0 0 0 0 S0 S1 0 0 1

1 1 1 1 1 1 S7 0 X X 0 1 1 S3 S2 0 1 0

1 X X 1 1 0 S6 X 0 X 1 0 0 S4 S3 0 1 1

X 1 X 1 0 1 S5 S4 1 0 0 X X X 0 0 0 S0 S5 1 0 1 X X X 0 0 0 S0 S6 1 1 0 X X X 0 0 0 S0 S7 1 1 1 X X X 0 0 1 S1

Táboa 5.6.- Táboa de verdade á que responde o Secuenciador.

Da táboa de verdade obtéñense as ecuacións lóxicas das saídas do secuenciador:

D0 = Q2' · Q1' · Q0' + Q2' · Q1' · Q0 · C1 · C0 · FZ + + Q2' · Q1 · Q0' · C1' + Q2' · Q1 · Q0 · C0 + Q2 · Q1 · Q0

D1 = Q2' · Q1' · Q0 · C1' + Q2' · Q1' · Q0 · C0' + Q2' · Q1' · Q0 · C1 · C0 · FZ + + Q2' · Q1 · Q0' · C0' + Q2' · Q1 · Q0' · C1

D2 = Q2' · Q1' · Q0 · C1 · C0 · FZ + Q2' · Q1 · Q0' · C1 + + Q2' · Q1 · Q0 · C0' + Q2' · Q1 · Q0 · C0

(25)

Figura 5.22.- Esquema loxico correspondente a ecuacion simplificada da saída D0 do circuito Secuenciador da Unidade de Control da MS.

5.6.2.- Unidade de control microprogramada con secuenciamento explícito.

No Apartado 5.5.2.1 describíronse as características do secuenciamento explícito. A continuación recórdanse algunhas délas:

• Cada posición da memoria ROM almacena o contido do Bus de Control para a microinstrucción en curso e a posición da siguiente microinstrucción.

• Ao ser explícito o direccionamento, as microinstruccións póden estar en calquer posición.

• Xeralmente faise coincidir a dirección da primera microinstrucción de cada instrucción co valor do seu código de operación; desta maneira facilítase a traducción.

• O estado S1 da MS non é necéario, pois a súa labor é a traducción, xa feita externamente.

(26)

Figura 5.23.- Grafo de Estados simplificado da Unidade de Control da Máquina Simple.

A Figura 5.24 mostra o esquema da Unidade de Control Microprogramada con secuenciamento Explícito da Máquina Simple. O esquema é comprensible vendo o punto 5.5.2.1 e o contido da memoria ROM na Táboa 5.7.

Figura 5.24.-Esquema xeral da Unidade de Control por secuenciamento explícito.

(27)

Táboa 5.7.- Contido da Memoria ROM da UC Microprogramada por Secuenciamento Explícito da Máquina Simple.

Á vista do esquema da Figura 5.24 e da Táboa 5.7 podemos observar que:

• Cada posición da memoria ROM complétase tendo presente o grafo de estados da Figura 5.23.

• Cada posición de memoria almacena as 10 sinais de control da microinstrucción en curso (posicións da 15 á 6), os 4 bits da dirección da seguinte micioinstrucción (posicións da 4 á 1) e o indicador do tipo de microinstrucción (posición 0), quedando libre a posición 5, DC. Así, por exemplo, en S6 están as sinais de control, a dirección 0110b, que é a da microinstrucción S0 e un 0 que indica que S6 no é una microinstrucción final.

• Cada microinstrucción inicial está duplicada para soportar os dous tipos de ADD, CMP e MOV con FZ igual a 0 e a 1. Complicando o método de traducción, poderíanse haber compactado as seis filas con S2 en tres, una para ADD, outra para CMP e outra para MOV.

• S3 e S3’ diferéncianse en que a primeira vai a seguir por S4, é unha suma, e a segunda o vai a facer por S5, xa que é una comparación.

• Dalgunha maneira , S0 debe ser a primeira microinstrucción que se cargue ao iniciar o procesador. É dicir, habería que incluir unha liña de INICIO que ao activarse procedera a acceder á posición 0110b (6 decimal) da memoria, para que desta meneira se procesase inicialniente S0.

• Unha vez procesado inicialmente S0, e como o seu bit de FIN é 1, o multiplexor accederá á memoria coa dirección xenerada polo traductor a partir do valor cargado en RI polo estado S0.

(28)

5.6.3.- Unidade de Control microprogramada con secuenciamento implícito sen microbifurcacións.

No apartado 5.5.2.2 describíronse as características do secuenciamento implícito. A maioría délas son compartidas polo secuenciamento explícito. Unha ventaxa do secuenciamento implícito é que elimina da memoria ROM a dirección da seguinte microinstrucción e, por contra, complica algo o esquema co bloque encargado de sumar ún (+1).

O esquema que implementa a Unidade de Control Microprogramada con Secuenciamento Implícito sen Microbifurcacións da Máquina Simple aparece na figura 5.25 e basease no grafo de estados simplificado da MS da figura 5.23 e no esquema da figura 5.19.

Figura 5.25.- Esquema xeral da Unidade de Control con secuenciamento implícito e sen microbifurcacións.

A táboa 5.8 mostra a descomposición de cada instrucción en microinstruccións. Observar que cada instrucción queda duplicada, según que FZ sexa 0 ou sexa 1.

Táboa 5.8.- Descomposición das instruccións da Máquina Simple en microinstruccións.

(29)

Táboa 5.9.- Contido da Memoria ROM da UC Microprogramada da MS, con Secuenciamiento Implícito e sen Microbifurcacións.

Se se observa o Esquema 5.25 e o contido da Táboa 5.9, resulta que:

• O esquema é algo máis complexo e a memoria, ainda sendo máis grande, é máis sinxela de conseguir.

• O secuenciamento implícito, +1, esixe que todas as microinstruccións dunha instrucción vaian seguidas.

• A memoria é de 64x16, e algunhas posicións non están ocupadas, quedando a 0 (DC). Un bo número de filas, da 4 á 7, da 12 á 15, etc., quedan libres, a ceros, para facilitar a labor de traducción. Se esta houbera sido máis elaborada, non houberan quedado hocos na memoria, o que melloraría a memoria en canto a o seu tamaño, pero complicaría a labor de traducción. As columnas da 1 á 5 están libres, DC.

• Tódolos microprogramas de cada instrucción acaban cargando a seguinte instrucción, xa sexa a seguinte en secuencia do programa, S0, ou a correspondente a un salto, S7.

(30)

5.6.4.- Unidade de control microprogramada con secuenciamento implícito e microbifurcacións.

No Apartado 5.5.2.2 describíanse as características do secuenciamento implícito con microbifurcacións. As microbifurcacións permiten reducir o tamaño da memoria e están enfocadas a explorar o valor dos flags e decidir as posibles microbifurcacións de BEQ, BC, etc. Pola contra, complícase o esquema e a memoria ROM.

Figura 5.26.- Esquema da Unidade de Control con Secuenciamiento Implícito e con Microbifurcacións.

O esquema da Figura 5.26 baséase na Figura 5.20. A dirección de acceso á memoria ROM póde ser a seguinte (+1), a primeira da instrucción en curso (traducción) ou a dirección de salto (D_SALTO Ù DS3···DS0). A dirección de salto tén sentido na instrucción BEQ, xa que, dependendo do valor de FZ, a microinstrucción a procesar pola Unidade de Proceso será S0 (cando FZ=0, e dicir, cando non salta) ou S7 (cando FZ=1, e dicir, cando sí salta). A dirección de acceso está controlada por dous multiplexores que á súa vez están controlados polo bit FIN e o resultado da comparación. En canto á memoria ROM, o seu contido é o da Táboa 5.10.

(31)

No esquema da UC Microprogramada con Secuenciamento Implícito e Microbifurcacións e no contido da respectiva Memoria ROM podemos destacar:

• A aparición de cinco novas columnas: unha co valor de FZ a comparar (VFZ=1) e catro coa dirección de salto se se cumple a condición de VFZ.

• A reducción do tamaño da Memoria ROM porque xa non fai falla ter en conta o FZ na traducción; o seu valor é tido en conta na microbifurcación.

• A aparición dunha nova columna, B, que indica se a fila da ROM se refire a unha microinstrucción ou a unha microbifurcación.

• A memoria tén unha sóa microbifurcación, pois só tén unha instrucción de salto, BEQ.

• As posicións de VFZ e de D_SALTO serán 0 nas posicións non utilizadas, e o mesmo para a fila BIF nas posicións do bus de control.

• A porta AND do Bus de Control asegura que o contido de dito bus será 0 cando se este procesando unha microbifurcación.

• A porta AND do comparador asegura que a comparación e conseguinte microbifurcación só se vai a dar se B=1, e non só se FZ=1.

• O simple inversor e as dúas portas AND anteriores compórtanse como un demultiplexor 1:2.

• Cando unha fila é unha microinstrucción non póde ser unha microbifurcación, e por tanto as cinco primeiras columnas póden ser solapadas.

Tendo en conta o último punto anterior, a Memoria ROM pódese compactar nas súas columnas. A Táboa 5.11 mostra a nova Memoria ROM compactada. As cinco primeiras columnas póden ser parte do bus de control ou da microbifurcación.

Táboa 5.11.- Contido da Memoria ROM Compactada da UC Microprogramada da MS, con Secuenciamiento Implícito e Microbifurcacións.

(32)

Unidade de Control microprogramada complexa.

A continuación móstrase o deseño da Unidade de Control Microprogramada Complexa da MS, pero neste caso as microbifurcacións non se refiren só ao FZ, senón tamén ao código de operación e ao propio FZ. Esta técnica non é moi común no deseño real, pero o lector ben póde analizar esta solución polo seu interés teórico.

En primeiro lugar móstrase, na Táboa 5.12, o microprograma da UC. Ésta coincide co grafo de estados orixinal da Figura 5.23.

O esquema capaz de implementar este microprograma aparece na Figura 5.27. Neste esquema aparece o bloque COMP con tres entradas e unha saída:

• COP1-0FZ. Datos a comparar do RI e do FZ.

• C2-0. Datos da Memoria ROM cos que comparar o COP1-0FZ.

• P2-0. Posicións de COP1-0FZ que deben ser comparadas; é dicir, non se compara sempre todo C2-0 con COP1-0FZ, só aquelas posicións indicadas por P2-0.

• Igual. Actívase se son iguais os bits de COP1-0FZ e os de C2-0, só aqueles marcados por P2-0.

(33)

Figura 5.27.-Esquema xeral da Unidade de Control Microprogramada Complexa.

O Esquema 5.28 describe o circuito lóxico do bloque COMP. Nél podemos ver en detalle a función de P2-0. Estos tres bits indican qué bits son útiles na comparación. Así 011b indica que só debe terse en conta na comparación o primeiro bit, e 000b que deben compararse os tres bits; podemos dicir que P2-0 é activa por nivel baixo.

Figura 5.28.-Esquema do comparador modificado coa sinal P2-0.

(34)

Táboa 5.13.-Contido da Memoria ROM da UC Microprogramada Complexa.

Se se compacta a memoria, solapando os datos do Bus de Control cos datos das microbifurcacións, obtense a Táboa 5.14.

(35)

EXERCICIOS E PROBLEMAS

5.1.- Debuxar o esquema dun bus de datos de 8 bits, que entrega e recibe información a dous rexistros do mesmo tamaño e a unha memoria de oito posicións de 8 bits cada unha. Indicar as sinais de control que gobernan estes numeros.

5.2.- Confeccionar un cronograma para o esquema do exercicio anterior, no que o contido do rexistro 1 se deposita na dirección @3 da memoria. Este ciclo de transferencia dura dous ciclos de reloxo.

5.3.- Confeccionar un cronograma para almacenar no rexistro 2 o contido da posición 5 da memoria, dacordo co esquema da figura do exercicio 5.1. O ciclo de transfcrencia dura dous ciclos de reloxo.

5.4.- Indicar as sinais de control, da figura 5.9 do texto, que teñen que activarse para realizar a operación lóxica OR dos rexistros A e D, depositando o resultado no rexistro C.

5.5.- Dacordo co esquema da MS ofrecido na figura 5.11 do texto, se se desexa ler o contido da posición de memoria para depositalo no Rexistro de Instruccións (RI).

a) Antes de realizar esta transferencia, ¿cál debe ser o contido de PC?

b) Se o código da instrucción que contén a posición 7 da Memoria pertenece a unha operación ADD, ¿cál será o contido de PC despois de executar dita instrucción?

d) Valor que deben adoptar as liñas de control DIR1-DIR0.

e) Ademáis de DIR1-DIR0, ¿qué outras sinais de control deberá activar a Unidade de Control para conseguir esta transferencia de información?

5.6.- Interpretar a microinstrucción que realiza a MS, sabendo que a Unidade de Control realiza a seguinte activación de sinais:

DIR1 = 1 DIR1 = 0 ALU1 = X ALU0 = X W/⎯R = 0 cargaPC= 0 cargaRI = 0 cargaA = 0 cargaB = l cargaFZ= 0

5.7.- Indicar o valor lóxico que xenera a Unidade de Control da MS polas súas 10 sinais de saída cando se desexa implementar a microinstrucción correspondente a sumar o contido dos rexistros A e B depositando o resultado na posición de Memoria direccionada polo operando destino (D) do código máquina da instrucción. Ademáis, debe cargarse o flip-flop do sinalizador de cero.

5.8.- Confeccionar o microprograma correspondente á instrucción MOV da MS.

(36)

5.10.- Explicar brevemente en qué consiste a labor do secuenciador da Unidade de Control.

5.12.- Se a Unidade de Control da MS, funcionando a 50 MHz, responde ó grafo de 8 estados da figura 5.17 e se dispón do seguinte programa de proba, onde ows valores das direccións dos operandos fonte e destino están expresados en notación decimal.

INICIO: MOV 102, 105 ADD 104, 105 CMP 105, 105 BEQ INICIO

a) Calcular o CPI medio. b) Calcular os MIPS nativos.

c) Calcular o rendemento, como expresión da inversa do tempo que se tarda en executar o programa.

Figure

Fig. 5.11.- A Unidade de Control xenera as sinais oportunas para controlar a Memoria e a  Unidade de Proceso
Fig. 5.11.- A Unidade de Control xenera as sinais oportunas para controlar a Memoria e a Unidade de Proceso p.8
Figura 5.21.- Esquema completo da Unidade de Control da MS con circuito secuenciador.

Figura 5.21.-

Esquema completo da Unidade de Control da MS con circuito secuenciador. p.23
Figura 5.23.- Grafo de Estados simplificado da  Unidade de Control da  Máquina Simple

Figura 5.23.-

Grafo de Estados simplificado da Unidade de Control da Máquina Simple p.26
Figura 5.24.- Esquema xeral da  Unidade de Control por secuenciamento  explícito.

Figura 5.24.-

Esquema xeral da Unidade de Control por secuenciamento explícito. p.26
Figura 5.25.-  Esquema xeral da Unidade de Control con secuenciamento implícito e sen

Figura 5.25.-

Esquema xeral da Unidade de Control con secuenciamento implícito e sen p.28
Figura 5.26.-  Esquema da Unidade de Control con Secuenciamiento Implícito e con

Figura 5.26.-

Esquema da Unidade de Control con Secuenciamiento Implícito e con p.30
Figura 5.28.- Esquema do comparador modificado coa sinal P2-0.

Figura 5.28.-

Esquema do comparador modificado coa sinal P2-0. p.33
Figura 5.27.- Esquema xeral da Unidade de Control Microprogramada Complexa.

Figura 5.27.-

Esquema xeral da Unidade de Control Microprogramada Complexa. p.33

Referencias

Actualización...

Related subjects :