universidad tecnica federico santa maria departamento de electronica...

23
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Prof. Leopoldo Silva Bijit. 03-09-2004 286 13.10 Diseño de la Unidad de Control de un Procesador Multiciclo. 13.10.1. Diseño clásico. A partir del diagrama de estados se plantean las ecuaciones lógicas para determinar el próximo estado; y las ecuaciones de salida en función del estado(se emplea el modelo de Moore, para máquinas secuenciales de estados finitos). En cada estado se especifican los valores de las señales de control que gobiernan las Transferencias entre Registros. El cambio de estado ocurre en el canto activo del reloj y la duración del reloj debe permitir la transferencia confiable de la etapa más lenta. La secuencia de transferencias se controla mediante el recorrido a través de los estados. La información que puede derivarse del diagrama de estados permite construir la siguiente tabla de verdad, que corresponde a la matriz de transiciones. Entradas Salidas Estado Código Operación Funct Condiciones Próximo estado Señales de control El diseño consiste en encontrar las funciones combinacionales mínimas para: Próximo estado = f1(Estado, Cod. Op., Funct) Señales de Control = f2(Estado, Cod. Op., Funct, Condiciones) Se asume que el próximo estado no depende de las condiciones generadas en el camino de datos. La secuencia de estados depende sólo de la instrucción en ejecución; mientras que la activación de algunas señales de control están condicionadas por los valores generados durante la ejecución. Esto reduce el número de estados. Lógica próximo estado Registro Salidas Lógica de Salida Entradas Estado

Upload: vunhu

Post on 01-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 286

13.10 Diseño de la Unidad de Control de un Procesador Multiciclo.

13.10.1. Diseño clásico. A partir del diagrama de estados se plantean las ecuaciones lógicas para determinar el próximo estado; y las ecuaciones de salida en función del estado(se emplea el modelo de Moore, para máquinas secuenciales de estados finitos). En cada estado se especifican los valores de las señales de control que gobiernan las Transferencias entre Registros. El cambio de estado ocurre en el canto activo del reloj y la duración del reloj debe permitir la transferencia confiable de la etapa más lenta. La secuencia de transferencias se controla mediante el recorrido a través de los estados. La información que puede derivarse del diagrama de estados permite construir la siguiente tabla de verdad, que corresponde a la matriz de transiciones.

Entradas Salidas Estado Código

Operación Funct Condiciones Próximo

estado Señales de control

El diseño consiste en encontrar las funciones combinacionales mínimas para: Próximo estado = f1(Estado, Cod. Op., Funct) Señales de Control = f2(Estado, Cod. Op., Funct, Condiciones) Se asume que el próximo estado no depende de las condiciones generadas en el camino de datos. La secuencia de estados depende sólo de la instrucción en ejecución; mientras que la activación de algunas señales de control están condicionadas por los valores generados durante la ejecución. Esto reduce el número de estados.

Lógica próximo estado

Registro

Salidas

Lógica de Salida

Entradas

Estado

Page 2: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 287

13.10.2. Microprogramación. Método sistemático para diseñar la unidad de control de un procesador. Se programan las transferencias entre registros y la secuencia en que éstas deben efectuarse. Cada microinstrucción especifica el valor que deben tomar las señales de control, las funciones de la alu, y cuál es la próxima microinstrucción. Una forma de implementar las funciones de próximo estado y las salidas es almacenar el estado en un registro(µPC), e implementar las funciones de próximo estado y las salidas en una ROM o en un dispositivo programable. El esquema anterior puede visualizarse como el de un procesador que ejecuta microinstrucciones almacenadas en una memoria. Cada microinstrucción puede considerarse dividida en dos campos: uno, el conjunto de micro-operaciones; el otro, asociado a las bifurcaciones y saltos incondicionales dentro del microprograma, que podríamos denominar control de secuencia de las microinstrucciones. Denominamos micro operaciones a las señales de control que actúan sobre los recursos del camino de datos: las funciones de la ALU y de la Unidad de Extensión, la programación de las vías de datos a través de los muxes, las habilitaciones de escritura sincrónica de los diversos registros, los controles de lectura y escritura de las memorias y el arreglo de registros(control de transferencias físicas), y las señales que controlan la secuenciación de las instrucciones en la unidad de instrucción(que dependen de las condiciones: equal, cero, etc.). Una representación de la información que se almacena en la micro memoria, que se denomina microprograma es la siguiente:

Dirección Microinstrucción Estado = µPC µControl Microoperaciones

Además existe la siguiente función: señales que controlan PC = f(micro operaciones de Control PC, Condiciones) Se denomina microcontrol a la información que permite determinar la próxima microinstrucción a ejecutar, que en general depende solamente de la instrucción que esté en ejecución. Ésta se ilustra en la siguiente tabla de verdad:

Page 3: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 288

Entradas Salidas

µControl COp Funct Próxima µInstrucción

La tabla anterior describe el secuenciador de las microintrucciones. Un esquema de diseño de una unidad de control microprogramada se ilustra a continuación:

La ejecución de una instrucción puede visualizarse como la ejecución de una serie de microinstrucciones. En cada microinstrucción está la información necesaria para activar las diferentes microoperaciones de una etapa(en un ciclo de reloj) y determinar cuál es la próxima microinstrucción a ejecutar. Nótese que sólo es necesario el registro µPC, el que mantiene estable el bus de direcciones de la micromemoria, lo cual genera las señales de control estables entre ciclos de reloj. Es decir, una instrucción determinada es una secuencia específica de lecturas de la micromemoria. La Unidad de Control microprogramada, es realmente otro procesador, y como cualquier procesador puede ser representado mediante el lenguaje que implementa. Se tienen todas las ventajas que poseen los diferentes lenguajes; es decir, se dispone de simuladores y microensambladores que facilitan la verificación de la correcta interpretación de las microinstrucciones.

µPC

Addr

MemoriaµInstruc-

ciones

Rd

"1"

Secuenciador

WEµPC

Funct

µControl

Cop

Señales de

Control bus µ

IR

Condiciones

µop funciones muxes memoria registros

Control PC write enable

Page 4: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 289

Una alternativa de diseño es emplear un contador, con las funciones sincrónicas de poner en cero, incrementar en uno y precargar un valor, para el registro µPC. Lo anterior observando que en el diagrama de estados ocurren frecuentes transiciones al estado inicial(clear, si se denomina con binario cero al estado inicial) y al estado siguiente(corresponde a incrementar en uno el contador, esto funciona siempre y cuando pueda darse adecuados nombres a los estados; es decir, que el estado siguiente tenga valor binario incrementado en uno, respecto del actual). De esta forma puede reducirse el ancho de la palabra de microcontrol. En la figura siguiente se ilustra el diseño del secuenciador mediante: muxes, un sumador en uno y algunas redes combinacionales, que implementan el contador con las funciones especiales. Las redes combinacionales que determinan la próxima microinstrucción a partir de los bits de microcontrol y de los códigos de operación(Cop, funct), suelen denominarse tablas de despacho. Cuando µPCsel toma valor 0, se tiene retorno al estado inicial(búsqueda de instrucción o fetch); cuando toma valor 1 se pasa a la microinstrucción siguiente; y cuando vale 2 se determina la próxima microinstrucción en función de la instrucción que se está interpretando electrónicamente, mediante la activación de una tabla de despacho.

Además de los dos bits que forman µPCsel, se requieren algunos adicionales que permitan representar todas las bifurcaciones que se produzcan en el diagrama de estado. En el diagrama anterior se tienen tres tablas de despacho, lo cual requiere dos bits adicionales que se han denominado µTDsel; este ejemplo supone tres estados con múltiples bifurcaciones. Debe notarse que las condiciones provenientes del camino de datos junto con las microoperaciones que controlan PC forman las señales de control que actúan sobre la Unidad de Instrucción.

µPC

µPCsel

Add

MemoriaµInstruc-

ciones

Rd

"1"

Secuenciador

WEµPC

Funct

µControl

Cop Señales de

Control

0

1

bus µ

IR 0

1

2

Condiciones

µop funciones muxes

memoria registros

Control PC write enable

0

1

2

T0

T1

T2

µTDsel

µdir

Page 5: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 290

Ventajas de la microprogramación: Facilita el diseño del control. Es flexible: puede adaptarse a los cambios, mediante reprogramación. Permite implementar repertorios complejos. Generalización: Puede implementar diversos repertorios en la misma máquina, sintonizando el repertorio con la aplicación. Compatibilidad: Diferentes organizaciones y recursos pueden disponer del mismo repertorio.

Desventajas de la microprogramación: Es costosa su implementación. Es lenta comparada con un control alambrado(hardwired); es decir, mediante compuertas. Se tienen dos modalidades de microprogramación:

Microprogramación horizontal: Se especifica un bit para cada punto del control del camino de datos. Se tiene control total del paralelismo del camino de datos, pero emplea gran cantidad de bits de microcódigo.

Microprogramación vertical: Se compacta el microcódigo codificando en campos en que se agrupan clases de microoperaciones. Luego se decodifica localmente para generar todas las señales de control. Permite una mejor abstracción de la microprogramación, pero la decodificación puede hacer la máquina más lenta; debido a los niveles que deben recorrerse para la decodificación. Pueden especificarse diferentes formatos, por ejemplo uno para especificar transferencias y otro para especificar saltos. Por ejemplo asumiendo una longitud de palabra de micromemoria de 21 bits: Para las microinstrucciones de operaciones puede emplearse el siguiente formato: código operando1 operando2 destino operaciones

1 5 5 5 5 Para las microinstrucciones de control, que cambian la secuencia de ejecución, puede emplearse el siguiente formato: código condición próxima microdirección

1 3 17 Se consideran sólo dos formatos, por esto el campo código de microinstrucción ocupa un bit. Compromiso: Espacio versus tiempo. Dependiendo de la estructura del camino de datos, algunas señales de control no se pueden activar simultáneamente; por ejemplo en la post-escritura se activa memoria a registro o alu

Page 6: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 291

a registro, pero no ambas simultáneamente. Esto implica que puede codificarse ambas señales en un solo bit de la microinstrucción, lo cual ahorra memoria de microprograma. En el caso del registro que debe leerse y cargarse en el busA, puede disponerse de 32 señales, que activan individualmente a cada uno de los registros del arreglo; pero como no pueden activarse simultáneamente dos registros para que coloquen sus datos en el busA, si se codifica en un campo de cinco bits, deberá colocarse un decodificador externo(con cinco líneas de entrada y 32 salidas) pero se incurrirá en un tiempo adicional debido al circuito combinacional. La codificación debe permitir que las acciones que se puedan realizar en paralelo puedan ser especificadas en una sola microinstrucción.

13.10.3. Diseño del microprograma: Existen dos modalidades, una orientada a las transferencias; la otra, a las señales de control. a) Microprograma orientado a las transferencias. El microprograma se escribe en forma similar a un programa en un lenguaje de alto nivel. Cada línea, que puede tener un rótulo que simboliza la microdirección, corresponde a una microinstrucción, que se realiza en un ciclo de reloj. Una microinstrucción es un secuencia de microoperaciones, separadas por comas. Las microoperaciones son descritas por las transferencias físicas que realizan, o por las funciones que activan en los recursos, o por sentencias de control. Las sentencias de control deben especificar cual será la próxima microinstrucción a realizar: Pueden emplearse saltos a microdirecciones; o activar funciones combinacionales, mediante las tablas de despacho) que determinan la próxima microdirección. El emplear lenguajes permite realizar simulaciones para verificar la correcta interpretación de las instrucciones, y a la vez ensamblar los diferentes bits de cada microinstrucción. El siguiente es el texto del microprograma que implementa el procesador multiciclo desarrollado anteriormente, pero con un segundo estado común para todas las instrucciones. Esto último implica que la instrucción jump se realizará en dos ciclos. Nótese que el estado siguiente al add y al sub se ha tratado como un solo estado equivalente(el ubicado en la microdirección writereg), lo cual requiere emplear otra tabla de despacho, ya que sólo puede existir un estado siguiente al estado 0011. Se describe una unidad de control microprogramada mediante la descripción de las microoperaciones (empleando transferencias físicas), y el microcontrol empleando: transferencias al µPC(micro contador de programa) e invocaciones a las tablas de despacho.

Page 7: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 292

El microprograma implementa el siguiente diagrama de estados(donde la identificación del estado es la microdirección): fetch: IR = MemInst[PC], PC = PC+4, µPC = µPC +1; A=R[rs], B=R[rt], if(COp == J) PC = (PC)&0xF0000000+add_26*4, µPC = T0[OP]; add: S = add(A, B), µPC = T1[OP]; sub: S = sub(A, B), µPC = µPC +1; writereg: R[rd] = S, µPC = 0. ori: S = or(A, zero_ext(Inm16)), µPC = µPC +1; R[rt] = S, µPC = 0. loadword: S = add(A, sign_ext(Inm16)), µPC = µPC +1; M = MemDat[S], µPC = µPC +1; R[rt] = M, µPC = 0. storeword: S = add(A, sign_ext(Inm16)), µPC = µPC +1; MemDat[S] = B, µPC = 0. beq: if (Equal) PC = PC + sign_ext(Inm16)] *4, µPC = 0. Si mediante las 12 líneas formadas por los buses Cop y Funct, formamos un decodificador de la instrucción, generando el bus OP, de tres bits, ya que en el ejemplo se microprograman siete instrucciones, se tiene:

1011

0100

0110

0000

0010

0001

0101 1100 0011 1010

inc

sw

incinc

T1

Cero

1001

1000

0111

inc

inc

CeroCero Cero Cero

j

loadadd

beqorisubT0

inc

Page 8: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 293

Instrucción COP Funct OP ADD 000000 100000 000 SUB 000000 100010 001 ORI 001101 φφφφφφ 010 LW 100011 φφφφφφ 011 SW 101011 φφφφφφ 100 BEQ 000100 φφφφφφ 101 J 000010 φφφφφφ 110

La tabla de despacho 0, puede describirse por el siguiente mapa de memoria, asumiendo la dirección 0000 para la primera microinstrucción que realiza la búsqueda de la instrucción. Se agregan columnas con los mnemónicos de las instrucciones y con los nombres simbólicos de la micro direcciones:

Instrucción OP µdirección Rótulo

ADD 000 0010 add SUB 001 0011 sub ORI 010 0101 ori LW 011 0111 loadword SW 100 1010 storeword BEQ 101 1100 beq JUMP 110 0000 fetch

También puede diseñarse mediante compuertas la tabla anterior. La tabla de despacho 1(equivale a una constante), puede describirse según:

Instrucción OP µdirección Rótulo

ADD 000 0100 writereg Es importante destacar que cada línea del microprograma debe permitir determinar el valor de cada uno de los bits de la microinstrucción. Se definen tres microoperaciones para controlar la escritura en el registro PC. La señal PCWR, que debe activarse para escritura incondicional en PC; PCBEQ que se activa si la instrucción en ejecución es una bifurcación; y PCJ que se activa si la instrucción en curso es un salto incondicional. Las señales nPC_sel[1..0] seleccionan el contenido a escribir en el registro PC. La siguiente ecuación muestra cuando debe escribirse en el registro PC. WEPC = PCWR | (PCBEQ & Equal) | (PCJ & (OP== j)) La siguiente tabla muestra los contenidos del microprograma que tienen relación con el µcontrol y las µoperaciones que cambian PC. Puede completarse agregando las columnas para el resto de las microperaciones. En caso de implementar con ROM, las condiciones superfluas se reemplazan por ceros.

6

63

COp OP

Funct

3 4

µdirección OP

T0

Page 9: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 294

µcontrol µoperaciones que cambian PC Rótulo µdirección µTDsel µPCsel nPC_sel PCWR PCJ PCBEQ fetch 0000 φφ 01 00 1 0 0 0001 00 10 φ1 0 1 0 add 0010 01 10 φφ 0 0 0 sub 0011 φφ 01 φφ 0 0 0 writereg 0100 φφ 00 φφ 0 0 0 ori 0101 φφ 01 φφ 0 0 0 0110 φφ 00 φφ 0 0 0 loadword 0111 φφ 01 φφ 0 0 0 1000 φφ 01 φφ 0 0 0 1001 φφ 00 φφ 0 0 0 storeword 1010 φφ 01 φφ 0 0 0 1011 φφ 00 φφ 0 0 0 beq 1100 φφ 00 10 0 0 1 Se vuelve a dibujar un esquema parcial de la unidad de instrucción y un esquema, en base a compuertas, para la lógica que forma la señal de control que habilita la escritura en el registro PC.

WEPC PCBEQ Equal

PCWR

OP ==j PCJ

PC

SigExt*4

4

nPC_sel0

Inm16

WEPC

PC[31..28]

0..1

add_26

0

1

0

1

nPC_sel1

Page 10: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 295

13.10.4. Microprogramación orientada a las señales de control. Se desarrollará el método para el camino multiciclo propuesto en el texto de referencia, que se ilustra a continuación: El camino de datos comparte la memoria para las instrucciones y los datos; los cálculos de direcciones de la unidad de instrucción se realizan en la ALU; para calcular la condición de igualdad en las bifurcaciones se emplea la ALU(ésta genera la señal cero). En el texto de referencia se agrega el registro MDR(Memory Data Register), para almacenar datos leídos de la memoria. En el primer ciclo del reloj se lee la memoria para obtener la instrucción a ejecutar, y al mismo tiempo se emplea la unidad de operaciones para calcular la dirección de la próxima instrucción(PC = PC +4).

Unidad de Control

Unidad Registros

Rs Rt

RegWr

AluCtr

AluSelB RegDst

Rd

ExtOp

Inm16

Din

MemRd

MemWr

1

0

MemtoReg

Unidad de

Operaciones

nPC_sel Cop Funct Cero

Reloj

WEPC

IR Add

Memoria

WEIR

1

0

MemCtr

PC

WEBR

1

2

0

BR

AluSelA

JAddr

AluOut

DOut

Page 11: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 296

En el segundo ciclo del reloj, se decodifica la instrucción a ejecutar(en la unidad de control), al mismo tiempo se leen los registros asociados a los campos Rs y Rt de la instrucción(aunque algunas instrucciones no los empleen); también se calcula empleando la unidad de operaciones la dirección de salto de la bifurcación(que se almacena en BR); y se genera la dirección de salto incondicional. Es necesario un registro adicional para almacenar la dirección de bifurcación, se emplea BR con este propósito. Debe destacarse que se calcula en todos los casos dicha dirección, aunque la instrucción no sea una bifurcación. En caso de instrucción de salto, en el segundo ciclo se tiene decodificada la instrucción y se pueden activar las señales de control de PC, para grabar la dirección de salto que se denomina Jaddr, en el diagrama. Además, en este caso, se requiere que la próxima microinstrucción sea de búsqueda de próxima instrucción(fetch). De este modo el segundo estado será común para todas las instrucciones, en él se leen los registros y además se decodifica la instrucción, generándose las señales de control, y mediante la activación de la tabla de despacho se puede seguir procesando las diferentes instrucciones. En el tercer ciclo del reloj se ejecutan las operaciones inmediatas y aritméticas, o bien se calcula de dirección efectiva en el caso de instrucciones de transferencias. En caso de bifurcación se calcula la resta de los operandos leídos en el segundo ciclo, y se genera la señal de resultado igual a cero. A continuación se ilustran la forma de generar la dirección de salto Jaddr, y un detalle de la unidad de operaciones modificada para compartir la unidad aritmético lógica.

PC[31..28]

0..1

add_26 JAddr

WEPC PCWRCond

Cero

PCWR COp ==j

Extensor

<<2

4

ALUSelB

0

1

2

0

1

3

ALUSelA AluCtr ExtOp

AluOut busA

busB

PC

Inm16

Cero

Page 12: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 297

El diagrama lógico muestra la señal habilitadora de escritura del registro PC: en forma incondicional (para formar PC+4), o para formar la dirección de salto en caso de jump; y en forma condicionada por el test del flag cero para las bifurcaciones. Note que se requiere que la entrada B de la ALU tenga ahora un mux de cuatro entradas. La constante 4 permite formar PC + 4. Cuando el control del mux toma valor dos se deja pasar hacia la alu, el campo inmediato de 16 bits extendido con signo y multiplicado por cuatro para generar saltos relativos a PC, considerando que el valor inmediato es de instrucciones(no de bytes). Cuando el control del mux toma valor tres se deja pasar hacia la alu, el campo inmediato de 16 bits extendido con signo para las instrucciones de transferencias; y extendido con ceros, si la instrucción es lógica. El camino de datos no almacena en registro la salida de la alu, por esta razón deben sostenerse las entradas a la alu, para que ésta no cambie su salida. fetch: IR = M[PC], AluOut=add(PC, 4), PC = AluOut, µPC = µPC +1;

A=R[Rs], B=R[Rt],if(COp == J) PC = JAddr, AluOut=add(PC, sign_ext(Inm16)] *4), BR=AluOut, µPC = T0[OP];

add: AluOut = add(A, B), µPC = µPC +1; R[Rd] = AluOut, AluOut = add(A, B), µPC = 0.

sub: AluOut = sub(A, B), µPC = µPC +1; R[Rd] = AluOut, AluOut = sub(A, B), µPC = 0.

ori: AluOut = or(A, zero_ext(Inm16)), µPC = µPC +1;

R[Rt] = AluOut, AluOut = or(A, zero_ext(Inm16)), µPC = 0.

loadword: AluOut = add(A, signext(Inm16)), µPC = µPC +1;

Dout = M[AluOut], AluOut = add(A, signext(Inm16)), µPC = µPC +1;

R[Rt] = Dout, AluOut = add(A, signext(Inm16)), µPC = 0.

storeword: AluOut = add(A, signext(Inm16)), µPC = µPC +1;

M[AluOut] = B, AluOut = add(A, signext(Inm16) , µPC = 0.

Page 13: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 298

beq: AluOut= sub(A, B), if (Cero) PC = BR, µPC = 0. La siguiente tabla muestra el contenido del microprograma, cada columna corresponde a una microinstrucción; en los renglones figuran los valores de las señales de control.

WEBR 0 1 0 0 0 0 0 0 0 0 0 0 0 0nPC_sel[0] 0 0 φ φ φ φ φ φ φ φ φ φ φ 1nPC_sel[1] 0 1 φ φ φ φ φ φ φ φ φ φ φ 0PCWR 1 0 0 0 0 0 0 0 0 0 0 0 0 0PCWRCond 0 0 0 0 0 0 0 0 0 0 0 0 0 1MemCtr 0 φ φ φ φ φ φ φ 1 1 1 1 1 φMemWr 0 0 0 0 0 0 0 0 0 0 0 0 1 0MemRd 1 φ φ φ φ φ φ φ φ 1 1 φ 0 φWEIR 1 0 0 0 0 0 0 0 0 0 0 0 0 0MemtoReg φ φ φ 0 φ 0 φ 0 φ φ 0 φ φ φRegDst φ φ φ 0 φ 0 φ 0 φ φ 1 φ φ φRegWr 0 0 0 1 0 1 0 1 0 0 1 0 0 0ExtOp φ 1 φ φ φ φ 0 0 1 1 1 1 1 φAluCtr[0] 0 0 0 0 0 0 1 1 0 0 0 0 0 0AluCtr[1] 1 1 1 1 1 1 0 0 1 1 1 1 1 1AluCtr[2] 0 0 0 0 1 1 0 0 0 0 0 0 0 1AluSelA 0 0 1 1 1 1 1 1 1 1 1 1 1 1AluSelB[0] 0 0 0 0 0 0 1 1 0 0 0 0 0 1AluSelB[1] 0 1 1 1 1 1 1 1 1 1 1 1 1 0µPCsel[0] 1 0 1 0 1 0 1 0 1 1 0 1 0 0µPCsel[1] 0 1 0 0 0 0 0 0 0 0 0 0 0 0µTDsel[0] φ 0 φ φ φ φ φ φ φ φ φ φ φ φµTDsel[1] φ 1 φ φ φ φ φ φ φ φ φ φ φ φµDirección 0 1 2 3 4 5 6 7 8 9 a b c d

Para ejecutar el salto en dos ciclos se requiere agregar una señal de control que se active cuando el código de operación es un salto incondicional. La tabla de verdad para la Tabla de Despacho 1, se ilustra a continuación. Las microdirecciones están en hexadecimal.

Cop+Funct µDirecciónADD 2 SUB 4 ORI 6 LW 8 SW b BEQ d J 0

Page 14: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 299

Note que la señal de control WEPC se forma con las microoperaciones: PCWR, PCWRCond y la condición Cero, y con la señal (COp == j). Se tiene la siguiente ecuación:

WEPC = (PCWRCond & Cero) | PCWR | (COp == j); En caso de implementar con ROM, las condiciones superfluas en el microprograma anterior pueden reemplazarse por ceros. Si se emplea lógica programable, pueden simplificarse las ecuaciones a través del uso de las condiciones superfluas. La tabla de despacho también puede implementarse en ROM, o bien con lógica programable; en este caso pueden emplearse condiciones superfluas, ya que sólo es de interés el campo funct en las operaciones de tipo R; es decir aquéllas en las cuales el COp es cero. Debido a la dificultad que tiene el manipular largos vectores de unos y ceros, puede aplicarse el siguiente método para describir el microcódigo: • Efectuar listado de las señales de control, junto a los valores que pueden tomar. • Agrupar funcionalmente las señales de control, en campos. • Colocar los campos en un orden lógico. Primero las que controlan las fuentes de datos,

luego las operaciones sobre ellos, después el destino del resultado, y finalmente la microsecuenciación.

• Establecer nombres simbólicos para los campos, y los valores(también simbólicos) que pueden tomar.

• Codificar operaciones que nunca puedan realizarse en concurrencia. Señales no codificadas. Señal No Activa Activa ALUSelA AluInA = PC AluInA= R[rs] RegWr - R[Rw] ⇐ busW MemtoReg busW =AluOut busW=Dout RegDst Rw = Rd Rw = Rt WEBR - BR ⇐ AluOut MemRd - Dout=Mem[Add] MemWr - Mem[Add]=Din MemCtr Add = PC Add = AluOut WEIR - IR ⇐ Dout PCWR - PC ⇐ PCSource PCWRCond - If (Cero) PC ⇐ PCSource ExtOp ExtOut=ZeroExt(Inm16) ExtOut=SignExt(Inm16) PCSource es el bus de entrada al registro PC.

Page 15: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 300

Señales Codificadas. Señal Control Valores Transferencias físicas. AluCtr 010 ALUOut= AluInA + AluInB AluCtr 110 ALUOut= AluInA - AluInB AluCtr 001 ALUOut= AluInA or AluInB ALUSelB 00 AluInB = 4 ALUSelB 01 AluInB = R[rt] ALUSelB 10 AluInB = SignExt(Inm16)*4 ALUSelB 11 AluInB = ExtOut nPC_sel 00 PCSource = AluOut nPC_sel 01 PCSource = BR nPC_sel 10 if(COp ==j) PCSource = JAddr µPCsel 00 µPC = 0 µPCsel 10 µPC = TablaDespacho(COp ,funct) µPCsel 01 µPC = µPC + 1 µTDsel 00 TablaDespacho=T1 µTDsel 01 TablaDespacho=T2 µTDsel 10 TablaDespacho=T3

Page 16: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 301

Nombres y Valores Simbólicos de los Campos. Nombre Campo Valores Campo Función del campo con valor específico ALU Add ALU realiza suma

Sub ALU realiza resta Or ALU realiza or

FuenteA PC AluInA = PC rs AluInA = R[rs]

FuenteB 4 AluinB = 4 rt AluInB = R[rt]

Inm*4 AluInB = SignExt( IR[15-0] *4) Extend AluInB = ExtOut

Ext Sign ExtOut = SignExt( Inm16) Cero ExtOut = CeroExt(Inm16) Destino rd ALU R[rd] = AluOut

rt ALU R[rt] = AluOut rt Mem R[rt] = Dout

Memoria Read PC lee instrucción usando PC Read ALU lee dato usando dirección efectiva en AluOut Write ALU escribe dato con dirección efectiva en AluOut

IR write IR IR = Mem[PC] BR write BR BR = AluOut PC write ALU PC = ALU

Branch IF (Cero) then PC = BR ifJump if(COp==j) PC = JAddr ; Dirección de salto

µControl Sig Va a siguiente µinstrucción Fetch Va a la primera microinstrucción TD n Despacho usando tabla n

Microprograma:

rótulo ALU FuenteA FuenteB Ext Destino Memoria IR Write

BR Write

PC Write

µControl

Fetch: Add PC 4 Read PC IR ALU Sig Add PC Inm*4 Sign BR ifJump TD 1 Add: Add rs rt Sig rd ALU Fetch Sub: Sub rs rt Sig rd ALU Fetch Ori: Or rs Extend Zero Sig rt ALU Fetch Lw: Add rs Extend Sign Sig Read ALU Sig rt MEM Fetch Sw: Add rs Extend Sign Sig Write ALU Fetch Beq: Sub rs rt Branch Fetch

El microprograma es una tabla simbólica del contenido de la micromemoria. Los rótulos corresponden a direcciones simbólicas de la micromemoria.

Page 17: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 302

Los valores de cada columna, dentro de un renglón, deben permitir determinar el valor de cada uno de los bits de la microinstrucción. Notar que el branch se resuelve después de la alu, con la señal cero.

13.10.5. Lógica alambrada. Usar un dispositivo programable con salidas de registro, para programar las funciones siguientes: Próximo estado = F1(Estado, Cod. Op., Funct) Señales de Control = F2(Estado, Cod. Op., Funct, Condiciones) Con esta arquitectura, las realimentaciones del estado son internas al dispositivo. Este esquema se emplea para diseñar unidades de control en firmware, o de lógica alambrada. Diseño que resulta más rápido que la lectura de memorias del caso anterior.

Microsecuenciación Una variante del esquema a) mediante diagramas de estado, es emplear para registrar el estado un contador sincrónico con funciones(sincrónicas): de carga paralela, clear e incrementar. Y programar la función de próximo estado en función de estas señales. Este esquema se denomina de microsecuenciación y se emplea en diseños de la unidad de control de procesadores. Las funciones de las señales de control del contador son: • Cero: llevar al estado inicial. • Inc: pasar al estado siguiente. • Load: presetear un estado determinado

PLD Salidas

Entradas

0000

Cero i

i+1

Inci

Load

Page 18: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 303

Ejemplo. Diseñar con un secuenciador el siguiente diagrama de estados. El contador registra el estado, y sus salidas están conectadas al bus de direcciones de la memoria. El contenido de la memoria son: los bit C, I, L que están conectadas a las señales Cero, Incrementar y Cargar del registro; además pueden grabarse en la memoria, los diversos bits de salida que se requieran asociados a cada estado (esquema de Moore). Esto en caso de emplear una memoria para la implementación combinacional; pero también puede emplearse un dispositivo lógico programable. A continuación se presenta la tabla de transiciones, o programa del secuenciador, notando que la información del próximo estado no se almacena en la memoria, se incorpora en la tabla sólo con fines aclaratorios:

0101 0111 1010

1001 1100

0000

0100

0001

1011 1000 0010 0110 0011

inc

load

inc

inc inc

inc

inc

Cero Cero Cero Cero Cero

Cero

load load load

load

load x= 0 x=1 x= 2 x= 3

x= 4 x= 5

Page 19: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 304

Estado Próximo C I L Salidas 0000 0001 0 1 0 0001 0 0 1 0010 0000 1 0 0 0011 0000 1 0 0 0100 0101 0 1 0 0110 0111 0 1 0 1000 1001 0 1 0 1011 1100 0 1 0 1001 1010 0 1 0 1100 0000 1 0 0 0101 0000 1 0 0 0111 0000 1 0 0 1010 0000 1 0 0

Nótese que los nombres binarios de los estados se eligen para ocupar lo más eficientemente que sea posible la señal de cuenta o incremento del contador. Al estado 0000, se llega después del reset inicial. Y si la naturaleza del proceso secuencial es repetitivo, al terminar los diferentes recorridos de estados se retorna al estado inicial. Para esto se emplea la señal Cero. Estando en el estado 0001, de acuerdo a la entrada se discierne cuál es el próximo estado. En el ejemplo existe sólo un estado para el cual existen múltiples bifurcaciones. Se requiere almacenar la información de los próximos estados de acuerdo a los valores de las entradas, y cuando se active la señal Load. Esta información se denomina Tabla de Despacho.

Entrada x Próximo estado. 000 0100 001 0110 010 1000 011 1011 100 0011 101 0010

Esta información puede codificarse en una ROM pequeña, o implementarse mediante un PLD. Debe notarse que en la ROM del secuenciador no se almacena el próximo estado. Esto puede significar un ahorro importante de memoria, si existe un pequeño número de estados con múltiples bifurcaciones. En caso de existir varios nodos con bifurcaciones, es preciso definir otras señales de carga, una por cada nodo con bifurcaciones, y también igual número de tablas de Despacho. La

Page 20: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 305

señal Load del contador es activada por el or de las señales de carga de las tablas de despacho. Un esquema general de la arquitectura para diseñar máquinas secuenciales, en base a un secuenciador, se ilustra a continuación:

13.11 Resumen del Diseño del Control Multiciclo. La especificación inicial del control puede efectuarse a partir de un diagrama de estados o de un microprograma. A partir de lo anterior, debe seleccionarse cómo especificar el control de la secuenciación. Lo cual a su vez puede realizarse de dos formas básicas: Especificando la función de próximo estado; o bien, las funciones del contador de saltos. Debe notarse que el control de la secuenciación puede determinarse independientemente de la elección inicial. Luego la representación lógica del control puede efectuarse mediante ecuaciones o tablas de verdad. Finalmente la técnica de implementación de las ecuaciones lógicas puede realizarse mediante dispositivos lógicos programables o mediante ROM. Debe notarse que la representación lógica y la técnica de implementación también pueden ser determinadas independientemente de las decisiones anteriores.

Tabla de Despacho

Contador Carga Paralela L C Inc

ROM( o PLD) Direcciones Contenidos I C L Salidas

Entradas

Próximo Estado

Page 21: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 306

El siguiente esquema muestra las diversas relaciones que existen: La figura anterior muestra las alternativas de diseño del control. El control es más complicado cuando se tienen: repertorios complejos de instrucciones, diferentes modos de direccionamiento, tratamiento de excepciones o cuando el camino de datos tiene restricciones para ahorrar componentes (ejemplo tratado en el texto, sólo una memoria y un sumador). Se puede simplificar aún más el control si se desea ejecutar varias instrucciones al mismo tiempo, más que aumentar la velocidad promedio de ejecución de las instrucciones individuales.

13.12. Preparación para segmentación (pipeline). Se desea ejecutar varias instrucciones, al mismo tiempo. Se dividen las etapas mediante registros, cada instrucción puede estar ejecutándose en una etapa. Si existen cinco etapas, pueden ejecutarse simultáneamente cinco instrucciones. Para esto es preciso, que cada instrucción pase por las cinco etapas, y que cada etapa tenga su propio control. Se verá más adelante las razones por las cuales las instrucciones deben durar aproximadamente lo mismo. Para lograr esto, basta en el diagrama de estados, agregar estados en los que no se activen controles. La determinación de cuáles estados deben agregarse requiere de un análisis más refinado que se efectuará más adelante. A continuación se muestra un esquema, con los estados agregados.

Microprograma Contador. Tablas de Despacho. Tablas de Verdad. ROM control microprogramado

Diagrama de Estados. Función Próximo Estado. Ecuaciones lógicas. Dispositivo lógico programable. control alambrado.

Representación inicial. Control secuenciación. Representación lógica. Técnica de implementación.

Page 22: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 307

Un esquema del control asociado a la etapa se muestra a continuación: Las señales de control, van viajando con los datos a través de la cañería(pipeline).

nPC_sel = “+4”, WEPC , WEIR ;

WEA

WEB WEA

WEB WEA

WEA

WEA WEB

WEA WEB

nPC_sel = Jmp WEPC.

RegDst =rd, Memto reg=alu RegWr.

RegDst =rd, Memto reg=alu RegWr.

RegDst =rt, Memto reg=alu ,RegWr

MemRd WEM

if (Equal) { nPC_sel = Br , WEPC

}.

AluSrc =busB, AluCtr = add, WES

AluSrc =busB, AluCtr = sub, WES

AluSrc =Op32, ExtOp =zero, AluCtr = ori, WES

AluSrc = Op32, ExtOp =sign, AluCtr = add, WES

AluSrc = Op32, ExtOp =sign, AluCtr = add, WES

RegDst =rt, Memto reg=mem, RegWr.

MemWr.

Page 23: UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ...profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/apuntes... · Una forma de implementar las funciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA

ELO311 Estructuras de Computadores

Prof. Leopoldo Silva Bijit. 03-09-2004 308

SUnidad

Registros

Rs Rt

busW

Rd

Inm16

Add

Memoria Datos

M

Din

MemRd MemWr

0

1

MemtoReg

Unidad de

Operaciones

nPCsel0

Unidad de

Instrucción

COp+ Funct

Equal

Reloj

WEPC

IR

A

B

WEIR

WEM

RegWr

RegDst

WEA WEB

AluCtr WES

AluSrcExtOp

nPCsel0

nPCsel1