estructura y tecnología de computadores módulo g ...estructura y tecnología de computadores...

21
1 Estructura y Tecnología de Computadores Estructura y Tecnología de Computadores Módulo G. Estructura del procesador Tema 16. Diseño de la ruta de datos y la Tema 16. Diseño de la ruta de datos y la unidad de control unidad de control José Manuel Mendías Cuadros José Manuel Mendías Cuadros Dpto Dpto. Arquitectura de Computadores y Automática . Arquitectura de Computadores y Automática Universidad Complutense de Madrid Universidad Complutense de Madrid 2 estructura y tecnología de estructura y tecnología de computadores computadores contenidos contenidos 1. Introducción Importancia del diseño del procesador. Metodología de diseño de un procesador. Arquitectura MIPS: formato de la instrucción máquina y repertorio de instrucciones. 2. Diseño de la ruta de datos (monociclo) Temporización monociclo. Componentes de la ruta de datos. Ensamblaje de la ruta de datos. Ruta de datos monociclo: puntos de control. 3. Diseño del controlador (monociclo) Determinación de los valores de los puntos de control. Control global vs. Control local. Ruta datos monociclo + controlador. 4. Diseño de la ruta de datos (multiciclo) Problemas de los procesadores monociclo. Temporización multiciclo. Ruta de datos multiciclo: con y sin buses. 5. Diseño del controlador (multiciclo) Diagrama de estados del controlador. El controlador como una FSM. Alternativas de implementación del controlador 6. Estudio comparativo: monociclo vs. multiciclo 7. Microprogramación Comparación de las alternativas de implementación del controlador. Control microprogramado: noción y nomenclatura. Controlador microprogramado con formato de microinstrucción horizontal. Controlador microprogramado con formato de microinstrucción vertical por campos

Upload: others

Post on 19-Apr-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

1

Estructura y Tecnología de ComputadoresEstructura y Tecnología de Computadores

Módulo G. Estructura del procesador

Tema 16. Diseño de la ruta de datos y laTema 16. Diseño de la ruta de datos y la unidad de control unidad de control

José Manuel Mendías CuadrosJosé Manuel Mendías CuadrosDptoDpto. Arquitectura de Computadores y Automática. Arquitectura de Computadores y Automática

Universidad Complutense de MadridUniversidad Complutense de Madrid

2

estructura y tecnología deestructura y tecnología de computadores computadores

contenidoscontenidos

1. IntroducciónImportancia del diseño del procesador. Metodología de diseño de un procesador.Arquitectura MIPS: formato de la instrucción máquina y repertorio de instrucciones.

2. Diseño de la ruta de datos (monociclo)Temporización monociclo. Componentes de la ruta de datos. Ensamblaje de la ruta dedatos. Ruta de datos monociclo: puntos de control.

3. Diseño del controlador (monociclo)Determinación de los valores de los puntos de control. Control global vs. Control local. Rutadatos monociclo + controlador.

4. Diseño de la ruta de datos (multiciclo)Problemas de los procesadores monociclo. Temporización multiciclo. Ruta de datosmulticiclo: con y sin buses.

5. Diseño del controlador (multiciclo)Diagrama de estados del controlador. El controlador como una FSM. Alternativas deimplementación del controlador

6. Estudio comparativo: monociclo vs. multiciclo

7. MicroprogramaciónComparación de las alternativas de implementación del controlador. Controlmicroprogramado: noción y nomenclatura. Controlador microprogramado con formato demicroinstrucción horizontal. Controlador microprogramado con formato de microinstrucciónvertical por campos

3

estructura y tecnología deestructura y tecnología de computadores computadores

1. introducción1. introducción

⌦ El rendimiento de un computador está determinado por el tiempo que la CPU tardaen ejecutar programas:

⌦ El diseño del procesador determina:Ø El tiempo de ciclo de reloj

Ø Número de ciclos de reloj promedio por instrucción

⌦ Comúnmente estos dos factores tienen una relación inversa:Ø Procesador monociclo

ð 1 ciclo por instrucción

ð Tiempo de ciclo largo

Ø Procesador multiciclo

ð Varios ciclos por instrucción

ð Tiempo de ciclo corto

(tiempo de CPU) = (instrucciones por programa) × CPI × (tiempo de ciclo)

Importancia del diseño del procesador

4

estructura y tecnología deestructura y tecnología de computadores computadores

1. introducción1. introducción

⌦ Paso 1: Analizar el repertorio de instrucciones para obtener los requisitos de la ruta de datos

Ø La ruta de datos debe incluir tantos elementos de almacenamiento como registros seanvisibles por el programador. Además puede tener otros elementos de almacenamientotransparentes.

Ø La ruta de datos debe incluir tantos tipos de elementos operativos como tipos deoperaciones de cálculo se indiquen en el repertorio de instrucciones

Ø El significado de cada instrucción vendrá dado por un conjunto de transferencias entreregistros. La ruta de datos debe ser capaz de soportar dichas transferencias.

⌦ Paso 2: Establecer la metodología de temporización

Ø Monociclo (CPI = 1): todas las transferencias de entre registros implicadas en unainstrucción se realizan en un único ciclo de reloj.

Ø Multiciclo (CPI > 1): las transferencias entre registros implicadas en una instrucción serreparten entre varios ciclos de reloj.

⌦ Paso 3: Seleccionar el conjunto de módulos (de almacenamiento, operativos e interconexión)que forman la ruta de datos

⌦ Paso 4: Ensamblar la ruta de datos de modo que se cumplan los requisitos impuestos por elrepertorio, localizando los puntos de control

⌦ Paso 5: Determinar los valores de los puntos de control analizando las transferencias entreregistros incluidas en cada instrucción.

⌦ Paso 6: Diseñar la lógica de control.

Metodología para el diseño de un procesador

5

estructura y tecnología deestructura y tecnología de computadores computadores

1. introducción1. introducción

⌦ Todas las instrucciones del repertorio del MIPS tienen 32 bits de anchura, repartidasen 3 formatos de instrucción diferentes:

op dirección

02631

6 bits 26 bits

op rs rt rd shamt funct

061116212631

6 bits 6 bits5 bits5 bits5 bits5 bits

op rs rt inmediato016212631

6 bits 16 bits5 bits5 bits

Arquitectura MIPS: formato de la instrucción máquina de la Arquitectura MIPS: formato de la instrucción máquina de la

⌦ El significado de los campos es:Ø op: identificador de instrucciónØ rs, rt, rd: identificadores de los registros fuentes y destinoØ shamt: cantidad a desplazar (en operaciones de desplazamiento)Ø funct: selecciona la operación aritmética a realizarØ inmediato: operando inmediato o desplazamiento en direccionamiento a registro-baseØ dirección: dirección destino del salto

Tipo R:aritmético-lógicas

Tipo I:con memoria

salto condicional

Tipo J:salto incondicional

6

estructura y tecnología deestructura y tecnología de computadores computadores

1. introducción1. introducción

⌦ Instrucciones con referencia a memoria (formato tipo I):Ø lw rt, inmed(rs) rt ← Memoria( rs + SignExt( inmed ) ) , PC ← PC + 4

Ø sw rt, inmed(rs) Memoria( rs + SignExt( inmed ) ) ← rt , PC ← PC + 4

⌦ Instrucciones aritmético-lógicas con operandos en registros (formato tipo R)Ø add rd, rs, rt rd ← rs + rt, PC ← PC + 4

Ø sub rd, rs, rt rd ← rs - rt , PC ← PC + 4

Ø and rd, rs, rt rd ← rs and rt , PC ← PC + 4

Ø or rd, rs, rt rd ← rs or rt , PC ← PC + 4

Ø slt rd, rs, rt ( si ( rs < rt ) entonces ( rd ← 1 )

en otro caso ( rd ← 0 ) ), PC ← PC+4

⌦ Instrucciones de salto condicional (formato tipo I)Ø beq rs, rt, inmed si ( rs = rt ) entonces ( PC ← PC + 4 + 4·SignExp( inmed ) )

en otro caso PC ← PC + 4

Arquitectura MIPS: subconjunto del repertorio de instruccionesArquitectura MIPS: subconjunto del repertorio de instrucciones

1. El ciclo de instrucción comienza buscando la instrucción en memoria (fetch)Ø instrucción ← Memoria( PC )

2. En función del tipo de instrucción se realiza una de las anteriores operaciones3. Se vuelve a comenzar

7

estructura y tecnología deestructura y tecnología de computadores computadores

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

Clk

Don’t Care

Setup Hold

.

.

.

.

.

.

.

.

.

.

.

.

Setup Hold

⌦ Ejecución típica (de una instrucción)

Ø Todos los registros se cargan simultáneamente (de modo selectivo)

Ø Todos los valores se propagan a través de las redes combinacionales hasta estabilizarseen las entradas de los registros

Ø Se repite indefinidamente el proceso

⌦ Todos los elementos de almacenamiento están sincronizados al mismo flanco de reloj:Ø Tiempo de ciclo = CKL-to-Q + Camino con retardo máximo + Setup + Clock Skew

Ø ( CLK-to-Q + Camino con retardo mínimo - Clock skew ) > Hold

Temporización monocicloTemporización monociclo

8

estructura y tecnología deestructura y tecnología de computadores computadores

⌦ Para implementar el subconjunto del repertorio del MIPS en una implementaciónmonociclo se requieren (el tamaño de palabra es de 32 bits):Ø Memoria de instrucciones

Ø Memoria de datos

Ø 32 registros de datos: visibles por el programador.

Ø Contador de programa

Ø 2 Sumadores: para sumar 4 al PC, y para sumar al PC el valor inmediato de salto.

Ø ALU: capaz de realizar suma, resta, and, or, comparación de mayoría e indicación de que elresultado es cero (para realizar la comparación de igualdad mediante resta)

Ø Extensor de signo: para adaptar el operando inmediato de 16 bits al tamaño de palabra.

Ø Desplazador a la derecha: para implementar la multiplicación por 4.

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

PC

PCWrite

3232+

32

32

32

AL

U

Zero3

ALUctr

32

32 32

ALUctr función

000 A and B

001 A or B

010 A + B

110 A – B

1111 si (A<B),

sino 0

16 32

Ext

ensi

ón

d

e si

gn

o

<<

2

32 32

Componentes de la ruta de datosComponentes de la ruta de datos

9

estructura y tecnología deestructura y tecnología de computadores computadores

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

⌦ Los 32 registros se almacenan en un banco de registros. Dado que en lasinstrucciones de tipo R, se requiere un acceso simultáneo a 3 registros:Ø 2 salidas de datos de 32 bits

Ø 1 entradas de datos de 32 bits

Ø 3 entradas de 5 bits para la identificación de los registros

Ø 1 entrada de control para habilitar la escritura sobre uno de los registros

Ø 1 puerto de reloj (sólo determinante durante las operaciones de escritura, las de lectura soncombinacionales)

Registro 0

Registro 1....

Registro 31

busA

busB

MU

XM

UX

RA

RB

Registro 32

Registro 0

C

C

D

D

C

C

D

D

0

1

31

32

RegWr

RW

BusW

Registro 1

Registro 30

Registro 31

De

cod

ifica

do

r5

a 3

2

Mecanismo de escrituraMecanismo de lectura

RegWr

Ban

co d

ere

gis

tro

s

RA

RB

busA

busBRW

busW

Componentes de la ruta de datos (cont.)Componentes de la ruta de datos (cont.)

10

estructura y tecnología deestructura y tecnología de computadores computadores

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

⌦ La memoria tendrá un comportamiento idealizado.Ø “Integrada” dentro de la CPU.

Ø Direccionable por bytes, pero capaz de aceptar/ofrecer 4 bytes por acceso

ð 1 entrada de dirección

ð 1 salida de datos de 32 bits

ð 1 entrada de datos de 32 bits (sólo en la de datos)

Ø 1 entrada de control para seleccionar el tipo de operación (lectura/escritura)

Ø Se supondrá que se comporta temporalmente como el banco de registros (síncronamente)y que tiene un tiempo de acceso menor que el tiempo de ciclo

Ø Se supondrá dividida en dos para poder hacer dos accesos a memoria en el mismo ciclo:

ð Memoria de instrucciones

ð Memoria de datos

ADDR

DW

Mem

ori

a d

e d

ato

s

MemWrite

DRADDR

Mem

ori

a d

e in

stru

ccio

nes

DR

Componentes de la ruta de datos (cont.)Componentes de la ruta de datos (cont.)

11

estructura y tecnología deestructura y tecnología de computadores computadores

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

⌦ La búsqueda de instrucciones implica:Ø Leer la instrucción ubicada en la dirección de la memoria de instrucciones indicada por

el contador de programa:

⌦ La ejecución secuencial de programas implica:Ø Actualizar el contador de programa para que apunte a la siguiente instrucción (sumando

4 por ser una memoria direccionable por bytes y una arquitectura con tamaño de palabrade 32 bits

4M

emo

ria

de

inst

rucc

ion

esPC

+

ADDR

DR instrucción

Ensamblaje de la ruta de datosEnsamblaje de la ruta de datos

12

estructura y tecnología deestructura y tecnología de computadores computadores

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

⌦ Las instrucciones aritmético lógicas (tipo-R) implican:Ø BR(rd) ←← BR(rs) funct BR(rt)Ø Leer dos registros cuyos identificadores se ubican en los campos rs y rt de la instrucción:

Ø Operar sobre ellos según el contenido del campo de código de operación aritmética (funct)de la instrucción

Ø Almacenar el resultado en otro registro cuyo identificador se localiza en el campo rd de lainstrucción

AL

U

Ban

co d

ere

gis

tro

s

ALUCtr

busA

busB

RA

RB

RW

busW

RegWrite

rs

rt

rdinst

rucc

ión

3

Ensamblaje de la ruta de datos (cont.)Ensamblaje de la ruta de datos (cont.)

13

estructura y tecnología deestructura y tecnología de computadores computadores

Clk

PC

Rs, Rt, Rd,Op, Func

Clk-to-Q

ALUOp

Tiempo de acceso a memoria de instrucciones

Valor antiguo Valor nuevo

RegWrite Valor antiguo Valor nuevo

Retardo de la lógica de control

busA, BTiempo de acceso al banco de registros

Valor antiguo Valor nuevo

busWRetardo de la ALU

Valor antiguo Valor nuevo

Valor antiguo Valor Nuevo

Valor nuevoValor antiguo

aquí se escribeel registro

AL

U

Ban

co d

ere

gis

tro

sALUCtr

busA

busB

RA

RB

RW

busW

RegWrite

rs

rt

rdinst

rucc

ión

3

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

cronograma de unacronograma de unaoperación arimético-lógicaoperación arimético-lógica

14

estructura y tecnología deestructura y tecnología de computadores computadores

⌦ La instrucción de carga (lw) implica:Ø BR(rt) ←← Memoria( BR(rs) + SignExt( inmed ) )Ø Calcular la dirección efectiva de memoria:

ð Leyendo el registro base cuyo identificador se ubica en el campo rs de la instrucciónð Obteniendo un desplazamiento de 32 bits a partir de la extensión del campo de

operando inmediato (inmed) de la instrucciónð Sumando base y desplazamiento.

Ø Leer dato ubicado en la memoria de datos cuya dirección es la anteriormente calculadaØ Almacenar el dato leído de memoria en el registro cuyo identificador se especifica en el

campo rt de la instrucción

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)Ensamblaje de la ruta de datos (cont.)Ensamblaje de la ruta de datos (cont.)

0

0

1

10

1

MU

X

MU

X

MU

X

Ext

ensi

ón

d

e si

gn

o

AL

U

Ban

co d

ere

gis

tro

s

Mem

ori

a d

ed

ato

s

16 32

MemtoReg

ALUCtr

ALUSrc

RegDst

ADDR DR

DW

busA

busB

RA

RB

RW

busW

MemRead

MemWrite

RegWrite

inmed

rs

rt

rd

15

estructura y tecnología deestructura y tecnología de computadores computadores

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

0

0

1

10

1

MU

X

MU

X

MU

X

Ext

ensi

ón

d

e si

gn

o

AL

U

Ban

co d

ere

gis

tro

s

Mem

ori

a d

ed

ato

s

16 32

MemtoReg

ALUCtr

ALUSrc

RegDst

ADDR DR

DW

busA

busB

RA

RB

RW

busW

MemRead

MemWrite

RegWrite

inmed

rs

rt

rd

⌦ La instrucción de almacenaje (sw) implica:Ø Memoria( BR(rs) + SignExt( inmed ) ) ← BR(rt)Ø Leer el dato almacenado en el registro cuyo identificador se especifica en el campo rt de la

instrucciónØ Calcular la dirección efectiva de memoria:

ð Leyendo el registro base cuyo identificador se ubica en el campo rs de la instrucciónð Obteniendo un desplazamiento de 32 bits a partir de la extensión del campo de

operando inmediato (inmed) de la instrucciónð Sumando base y desplazamiento.

Ø Almacenar el dato leído en la memoria de datos en la dirección anteriormente calculada

Ensamblaje de la ruta de datos (cont.)Ensamblaje de la ruta de datos (cont.)

16

estructura y tecnología deestructura y tecnología de computadores computadores

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

⌦ La instrucción de salto condicional (beq) implicaØ si ( BR(rs) = BR(rt) ) entonces ( PC ← PC + 4·SignExp( inmed ) )Ø Leer dos registros cuyos identificadores se ubican en los campos rs y rt de la instrucción:Ø Comparar la igualdad de sus contenidos y en función del resultado:

ð No hacer nada oð Sumar al contador del programa un desplazamiento de 32 bits obtenido a partir de la

extensión del campo de operando inmediato (inmed) de la instrucción

4

0

0

1

1

0

1

MU

X

MU

X

MU

X

+

<<

2

Ext

ensi

ón

d

e si

gn

o

AL

U

Ban

co d

ere

gis

tro

s

Mem

ori

a d

ein

stru

ccio

nesPC

+

rs

rt

rd

inmed 16 32

ADDR

DR

ALUCtr

ALUSrc

RegDst

busA

busB

RA

RB

RW

busW

PCSrcRegWrite

Zero

Ensamblaje de la ruta de datos (cont.)Ensamblaje de la ruta de datos (cont.)

17

estructura y tecnología deestructura y tecnología de computadores computadores

2. diseño de la ruta de datos (monociclo)2. diseño de la ruta de datos (monociclo)

4

0

0

0

1

1

10

1

MU

X

MU

X

MU

X

MU

X

+

<<

2

Ext

ensi

ón

d

e si

gn

o

AL

U

Ban

co d

ere

gis

tro

s

Mem

ori

a d

ed

ato

s

Mem

ori

a d

ein

stru

ccio

nesP

C

+

Instrucción [25-21]

Instrucción [20-16]

Instrucción [15-11]

Instrucción [15-0] 16 32

ADDR

DR

MemtoReg

ALUCtr

ALUSrc

RegDst

ADDR DR

DW

busA

busB

RA

RB

RW

busW

MemRead

MemWrite

PCSrcRegWrite

Zero

⌦ La ejecución monociclo ha obligado a:Ø No usar más de una vez por instrucción cada recurso. Duplicarlo si es necesario

Ø Memoria de instrucciones y datos separadas

Ø Añadir multiplexores cuando un valor pueda provenir de varias fuentes

Ruta de datos monociclo

18

estructura y tecnología deestructura y tecnología de computadores computadores

3. diseño del controlador (monociclo)3. diseño del controlador (monociclo)

⌦ La tarea del controlador es:Ø Seleccionar las operaciones a realizar por los módulos multifunción (ALU, read/write, ...)

Ø Controlar el flujo de datos, controlando la entrada de selección de los multiplexores y la señal decarga de los registros

si ( rs = rt ) entonces ( PC ←← PC + 4 + 4·SignExp( inmed ) ) en otro caso PC ←← PC + 4

RegDest ←X, RegWrite ← 0, ALUsrc ← 0, ALUctr ← 110, PCSrc ← Zero, MemWrite ← 0, MemRead ← 0, MemtoReg ← X

rd ←← rs and rt, PC ←← PC + 4

RegDest ← 1, RegWrite ← 1, ALUsrc ← 0, ALUctr ← 000, PCSrc ← 0, MemWrite ← 0, MemRead ← 0, MemtoReg ← 0

Memoria( rs + SignExt( inmed ) ) ←← rs, PC ←← PC + 4

RegDest ←X, RegWrite ← 0, ALUsrc ← 1, ALUctr ← 010, PCSrc ← 0, MemWrite ← 1, MemRead ← 0, MemtoReg ← X

rt ←← Memoria( rs + SignExt( inmed ) ), PC ←← PC + 4

RegDest ← 0, RegWrite ← 1, ALUsrc ← 1, ALUctr ← 010, PCSrc ← 0, MemWrite ← 0, MemRead ← 1, MemtoReg ← 1

Instrucción de salto condicional (beq)Instrucción de salto condicional (beq)

Instrucción de carga (lw)Instrucción de carga (lw)

Instrucción de almacenaje (sw)Instrucción de almacenaje (sw)

Instrucción Instrucción andand

Determinación de los valores de los puntos de controlDeterminación de los valores de los puntos de control

19

estructura y tecnología deestructura y tecnología de computadores computadores

3. diseño del controlador (monociclo)3. diseño del controlador (monociclo)

⌦ Todas las operaciones aritméticas comparten el mismo código de operación y durante su ejecución todaslas señales generales de la ruta de dato son iguales. Por ello, utilizaremos:Ø Un control principal para decodificar el campo de código de operación (op) y configurar

globalmente la ruta de datosØ Un control local a la ALU que decodifique el campo de operación aritmética (funct) y seleccione la

operación que debe realizar la ALUØ Adicionalmente en operaciones no aritméticas (lw, sw y beq) el control principal puede ordenar

alguna operación a la ALU para calcular las DE o realizar comparaciones.⌦ Utilizaremos la señal intermedia ALUop cuyo valor será:

Ø 00 en operaciones con acceso a memoriaØ 01 en operaciones de saltoØ 11 en operaciones aritméticas

⌦ Del mismo modo para controlar qué dirección debe cargar el PC se utilizará una señal intermedia Branch(activada durante la instrucción beq) a la que se hará la y-lógica con la señal Zero que genera la ALU.

Co

ntro

lp

rincip

al

op6

Co

ntro

l de

AL

U (lo

cal)

funct

2

6

ALUopALUctr

3

Branch

Zero

PCSrc

Control global vs. Control localControl global vs. Control local

20

estructura y tecnología deestructura y tecnología de computadores computadores

4

0

0

0

1

1

10

1

MU

X

MU

X

MU

X

MU

X

+

<<

2C

on

tro

l d

e A

LU

Ext

ensi

ón

d

e si

gn

o

AL

U

Ban

co d

ere

gis

tro

s

Mem

ori

a d

ed

ato

s

Mem

ori

a d

ein

stru

ccio

nesP

C

+

Co

ntr

ol

pri

nci

pal

Instrucción [31-26]

Instrucción [25-21]

Instrucción [20-16]

Instrucción [15-11]

Instrucción [15-0]

Instrucción [5-0]

16 32

ADDR

DR

BranchMemReadMemtoReg

ALUOpMemWrite

ALUSrcRegWrite

RegDst

Zer

o

ADDR DR

DW

busA

busB

RA

RB

RW

busW

3. diseño del controlador (monociclo)3. diseño del controlador (monociclo)

Ruta de datos monociclo + controlador

21

estructura y tecnología deestructura y tecnología de computadores computadores

3. diseño del controlador (monociclo)3. diseño del controlador (monociclo)

op funct ALUop ALUctr100011 (lw) 00 010101011 (sw) 00 010000100 (beq)

XXXXXX01 110

100000 (add) 11 010100010 (sub) 11 110100100 (and) 11 000100101 (or) 11 001

000000 (tipo-R)

101010 (slt) 11 111

op

Reg

Dst

ALU

Src

Mem

toR

eg

Reg

Writ

e

Mem

Rea

d

Mem

Writ

e

Bra

ch

ALU

op

100011 (lw) 0 1 1 1 1 0 0 00101011 (sw) X 1 X 0 0 1 0 00000100 (beq) X 0 X 0 0 0 1 01000000 (tipo-R) 1 0 0 1 0 0 0 10

funct

ALUop

ALUctr2

ALUctr1

ALUctr0

ALUctr

ALUop0

ALUop1

f3

f2

f1

f0

tipo-R Iw sw beq

op5op4op3

op2op1

op0

RegDst

ALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

Branch

ALUop1

ALUop0

Control de la ALUControl de la ALU

Control principalControl principal

22

estructura y tecnología deestructura y tecnología de computadores computadores

4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)

Valor Nuevo

Valor Nuevo

Valor Nuevo

Clk

PC

Rs, Rt, Rd,Op, Func

Clk-to-Q

ALUctr

Tiempo de acceso a la Memoria de Instrucciones

Valor Antiguo Valor Nuevo

RegWr Valor Antiguo

Retardo de la lógica de control

busATiempo de acceso al Banco de Registros

Valor Antiguo

busB

Retardo de la ALU

Valor Antiguo Valor Nuevo

Valor Antiguo

Valor NuevoValor antiguo

ExtOp Valor Antiguo Valor Nuevo

ALUSrc Valor Antiguo Valor Nuevo

MemtoReg Valor Antiguo Valor Nuevo

Addr Valor Antiguo Valor Nuevo

busW Valor Antiguo Valor Nuevo

Retado del Extensor y el MUX

aquí se escribeel registro

Tiempo de acceso a la Memoria de Datoscro

no

gra

ma

com

ple

to d

e la

eje

cuci

ón

de

la in

stru

cció

n lw

cro

no

gra

ma

com

ple

to d

e la

eje

cuci

ón

de

la in

stru

cció

n lw

23

estructura y tecnología deestructura y tecnología de computadores computadores

4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)

⌦ Problema: en un controlador monociclo:Ø El reloj debe tener igual periodo que la instrucción más lenta

ð Dado que dicho periodo es fijo, en las instrucciones rápidas se desperdicia tiempo.ð En repertorios reales, existen instrucciones muy largas: aritmética en punto flotante, modos

de direccionamiento complejos, etc.Ø No se puede reusar hardware

ð Si en una instrucción se necesitaran hacer 4 sumas (resolver los 3 modos dedireccionamiento de los operandos y sumarlos) se necesitarían 4 sumadores

⌦ Solución: dividir la ejecución de la instrucción en varios ciclos más pequeños:Ø Cada instrucción usará el número de ciclos que necesiteØ Un mismo elemento hardware se puede ser utilizado varias veces en la ejecución de una

instrucción si se hace en ciclos diferentesØ Se requieren elementos adicionales para almacenar valores desde el ciclo en que se calculan

hasta el ciclo en que se usan.

PC mux ALU mem. dato mux

PC banco reg. mux ALU mux

PC mux ALU mem. dato

PC mem. instrución

tipo-R

lw

sw

beq

Camino crítico

setup

setup

mem. instrución

mem. instrución

mem. instrución

banco reg.

banco reg.

banco reg.

desperdicio

desperdicio

mux ALU mux setupdesperdicio

24

estructura y tecnología deestructura y tecnología de computadores computadores

4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)Clk

Tiempo de acceso a la Memoria de Instrucciones

Tiempo de acceso al Banco de RegistrosRetardo de la ALU

Tiempo de acceso a la Memoria de Datos

Busqueda de instrucciones

Búsqueda de componentes

de DE

Cál

culo

de

DE Busqueda de

operando

Eje

cuci

ón(a

lmac

enaj

e)

Lógica combinacional acíclicaPC

BR

( x)

Lóg.comb.

Lóg.comb.

Lóg.comb.

Lóg.comb.

Lóg.comb.P

C IR

A o

B

AL

Uo

ut

MD

R

BR

( x)

Nuevo Clk

o M

emo

ria

o M

emo

ria

Controladormonociclo

Controladormulticiclo

Tem

po

riza

ció

n

Tem

po

riza

ció

n m

ult

icic

lom

ult

icic

lo

25

estructura y tecnología deestructura y tecnología de computadores computadores

4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)

Mem

ori

a

ADDR

DR

DW

MemRead

MemWrite

0

1

MU

X

IorD

Ban

co d

ere

gis

tro

s busA

busB

RA

RB

RW

busW

RegWrite

AL

U

Zero

Ext

ensi

ón

d

e si

gn

o

<<

2

PC

AB

1

0

3

2

0

1

MU

XM

UX

AL

Uo

ut

IRM

DR

RegDst

0

1

MU

X

0

1

MU

X

Instrucción [25-21]

Instrucción [20-16]

Instrucción [15-11]

Instruc. [15-0]

4

PCWrite IRWrite ALUSrcA

ALUSrcB

MemtoReg

AWrite

BWrite

OutWrite

MDRWrite

Control de ALU

ALUop

Ruta de datos multiciclo

26

estructura y tecnología deestructura y tecnología de computadores computadores

4. diseño de la ruta de datos (multiciclo)4. diseño de la ruta de datos (multiciclo)

Cada bus sólo puede ser usado para escribir desde una fuente (aunque puede ser leido desde varios destinos)

0

1

MU

X

Instrucción [25-21]

Instrucción [20-16]

Instrucción [15-11]

Instruc. [15-0]

Ban

co d

ere

gis

tro

s busA

busB

busW

RA

RB

RW

AB

Ext

ensi

ón

d

e si

gn

o

<<

2

AL

U

Zero

AL

Uo

ut

Control de ALU

Mem

ori

a

IR

MDR

DR

ADDR

DW

4

PC

Decod.busB

IRWrite

MemWrite

MemRead

RegDst AWrite

BWrite

MDRWrite RegWrite PCWrite

OutWriteALUop

Decod.busA

BusA

ALUop

Ruta de datos multiciclo con buses

27

estructura y tecnología deestructura y tecnología de computadores computadores

5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)

Transferencias entre registros “lógicas”

BR( rd ) ← BR( rs ) funct BR( rt ), PC ← PC + 4

Transferencias entre registros “físicas”

1. IR ← Memoria( PC ), PC ← PC + 4

2. A ← BR( rs ), B ← BR( rt )

3. ALUout ← A funct B

4. BR( rd ) ← ALUout

Transferencias entre registros “lógicas”

BR( rt ) ← Memoria( BR( rs ) + SignExt( inmed ) ),PC ← PC + 4

Transferencias entre registros “físicas”

1. IR ← Memoria( PC ), PC ← PC + 4

2. A ← BR( rs )

3. ALUout ← A + SignExt( inmed )

4. MDR ← Memoria( ALUout )

5. BR( rt ) ← MDR

Transferencias entre registros “lógicas”

Memoria( BR( rs ) + SignExt( inmed ) ) ← BR( rt ),PC ← PC + 4

Transferencias entre registros “físicas”

1. IR ← Memoria( PC ), PC ← PC + 4

2. A ← BR( rs ), B ← BR( rt )

3. ALUout ← A + SignExt( inmed )

4. Memoria( ALUout ) ← B

Transferencias entre registros “lógicas”

si ( BR( rs ) = BR( rt ) )

entonces PC ← PC + 4 + 4·SignExt( inmed )

sino PC ← PC + 4

Transferencias entre registros “físicas”

1. IR ← Memoria( PC ), PC ← PC + 4

2. A ← BR( rs ), B ← BR( rt ),

3. A - B

4. si Zero entonces PC ← PC + 4·SignExt( inmed )

Instrucción de salto condicional (beq)Instrucción de salto condicional (beq)

Instrucción de carga (lw)Instrucción de carga (lw) Instrucción de almacenaje (sw)Instrucción de almacenaje (sw)

Instrucción aritmética (tipo-R)Instrucción aritmética (tipo-R)

Observaciones: en todas las instrucciones las acciones 1. y 2. son iguales (excepto en lw que no habríaproblema en modificarla)

28

estructura y tecnología deestructura y tecnología de computadores computadores

5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)

ALUout ← A funct B

BR( rd ) ← ALUout

A - B

IR ← Memoria( PC )PC ← PC + 4

A ← BR( rs )B ← BR( rt )

ALUout ← A + SignExt( inmed )

MDR ← Memoria( ALUout ) Memoria( ALUout ) ← B

BR( rt ) ← MDR

op = ‘beq’

op = ‘tipo-R’

op = ‘lw’

0

1

2

3

4

57

8

9

PC ← PC + 4·SignExt( inmed )

10

Zero = 1

Zero = 0

ALUout ← A + SignExt( inmed )

op = ‘sw’

6

squ

eda

de

inst

rucc

ión

Dec

od

.E

jecu

ció

nA

cces

o a

m

emo

ria

Wri

te-b

ack

Diagrama de estados del controlador multiciclo

29

estructura y tecnología deestructura y tecnología de computadores computadores

5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)

Registroestado

6

4

11

op

IR

ZeroEsta

do de la

ruta de datos

Estado del

controlador

Lógica combinacionalde control

IRW

rite

PC

Writ

eB

Writ

eA

LUS

rcA

ALU

Src

BA

LUO

pM

emW

rite

Mem

Rea

dIo

rDM

emto

Reg

Reg

Des

tR

egW

rite

AW

rite

Out

Writ

eM

DR

Writ

e

El controlador como FSM (El controlador como FSM (finite state machinefinite state machine))1. Se traducen las transferencias entre registros como conjuntos de activaciones de los puntos de control de la ruta de datos2. Se codifican los estados3. Mediante tablas de verdad se describen:

ü las transiciones de estado en función del código de operación y del estado de la ruta de datosü el valor de las señales de control en función del estado (controlador tipo Moore) y adicionalmente en función del

estado de la ruta de datos (controlador tipo Mealy).4. La estructura del controlador estará formada por:

ü Registro de estadoü Conjunto de lógica combinacional de control que implementa las anteriores tablas

30

estructura y tecnología deestructura y tecnología de computadores computadores

5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)

Est

ad

oa

ctu

al

op

Ze

ro

Est

ad

osi

guie

nte

IRW

rite

PC

Writ

e

AW

rite

BW

rite

AL

US

rcA

AL

US

crB

AL

UO

p

Out

Writ

e

Mem

Writ

e

Me

mR

ea

d

IorD

MD

RW

rite

Me

mto

Re

g

Reg

Des

t

Re

gW

rite

0000 XXXXXX X 0001 1 1 0 01 00 (add) 0 1 0 0

0001 100011 (lw) X 0010

0001 101011 (sw) X 0101

0001 000000 (tipo-R) X 0111

0001 000100 (beq) X 1001

0 0 1 1 0 0 0

0010 XXXXXX X 0011 0 0 1 10 00 (add) 1 0 0 0

0011 XXXXXX X 0100 0 0 0 1 1 1 0

0100 XXXXXX X 0000 0 0 0 0 1 0 1

0101 XXXXXX X 0110 0 0 0 1 10 00 (add) 1 0 0 0

0110 XXXXXX X 0000 0 0 1 0 1 0

0111 XXXXXX X 1000 0 0 1 00 11 (funct) 1 0 0 0

1000 XXXXXX X 0000 0 0 0 0 0 1 1

1001 XXXXXX 0 0000

1001 XXXXXX 1 10100 0 1 00 01 (sub) 0 0 0

1010 XXXXXX X 0000 0 1 0 11 00 (add) 0 0 0

Tab

la d

e ve

rdad

del

co

ntr

ola

do

rT

abla

de

verd

ad d

el c

on

tro

lad

or

31

estructura y tecnología deestructura y tecnología de computadores computadores

5. diseño del controlador (multiciclo)5. diseño del controlador (multiciclo)

⌦Lógica discreta:Ø 21 funciones de conmutaciónØ 11 variables diferentes

⌦1 PLAØ 11 entradasØ 21 salidasØ 15 términos producto

⌦1 ROM (~42 Kbits):Ø 11 bits de dirección (211 palabras)Ø palabras de 21 bits

⌦2 ROM (~10 Kbits)Ø ROM de control:

ð4 bits de dirección (24 palabras)ðpalabra de 17 bits

Ø ROM de siguiente estado:ð11 bits de dirección (211 palabras)ðpalabras de 4 bits

s3

s2

s1

op3

op2

op1

op0

op5

op4

zero

s0

ns3

ns2

ns1

ns0

IRWritePCWriteAWriteBWriteALUSrcAALUSrcB1

ALUSrcB0

ALUOp1

ALUOp0

OutWriteMemWriteMemReadIorDMRDWriteMemtoRegRegDestRegWrite

Alternativas de implementaciónAlternativas de implementaciónde la lógica de controlde la lógica de control

⌦Ventajas de la lógica discreta:Ø velocidad y coste

⌦Ventajas de la lógica almacenada:Ø facilidad de diseñoØ adaptabilidad

32

estructura y tecnología deestructura y tecnología de computadores computadores

6. Comparación: monociclo vs. multiciclo6. Comparación: monociclo vs. multiciclo

lw $t2, 0($t3)

lw $t3, 4($t3)

beq $t2, $t3, Label #asumir que no se salta

add $t5, $t2, $t3

sw $t5, 8($t3)

Asumir que el tiempo de ciclo en elprocesador muticiclo es 5 veces menorque el tiempo de ciclo en el procesador

monociclo

lw lw beq add sw

lw lw beq add sw

diferencia

Operación Frecuencia Ciclos CPItipo-R 50% 4 2.0lw 20% 5 1.0st 10% 4 .4beq (salta) 2.5% 4 .1beq (no salta) 17.5% 3 0.53 4.03

106 instrucciones tardan en ejecutarse:

ü tmulti = 106 · CPImulti ·tmulti = 106 · 4.03 · tmulti

ü tmono = 106 ·CPImono · tmono = 106 · 1 · 5 · tmulti

tmulti / tmono = 4.03 / 5 = 0.8

los programas tardan un 20% menos en

ejecutarse en el computador multiciclo

33

estructura y tecnología deestructura y tecnología de computadores computadores

7. control microprogramado7. control microprogramado

⌦ El diseño con lógica discreta o PLA:Ø No es sistemático

Ø Una vez diseñado es inflexible: un error o modificación requieren el rediseño completo dela lógica de control

Ø Una mayor complejidad del repertorio se traduce en un mayor complejidad del diseño

⌦ El diseño con lógica almacenada:Ø Es sistemático: el método de diseño es similar a los métodos de programación:

ð traducir cada instrucción en una secuencia de palabras de control que se almacenanen la memoria de control.

Ø Es flexible: para modificar o corregir una acción de control basta con modificar elcontenido de una palabra de la memoria (ROM o PROM) sin modificar la estructura delcontrolador

Ø Mayor complejidad de las instrucciones sólo implica mayor tamaño de la memoria

⌦ Además en cualquiera de ambas alternativas:Ø Mucha de la lógica de control está dedicada a especificar el estado siguiente, siendo en

realidad mucho de ese secuenciamiento consecutivo:

ð En sistemas reales el número de estados es muy grande

Ø Muchas de de las palabras de control están repetidas, luego existe lógica desperdiciada

ð Por ejemplo, cálculo de DE, acceso a memorias, etc..

Comparación de las alternativas de implementación de la lógica de controlComparación de las alternativas de implementación de la lógica de control

34

estructura y tecnología deestructura y tecnología de computadores computadores

7. control microprogramado7. control microprogramado

Programa de usuario:• formado por instrucciones• puede cambiar

µ-programa de la instrucción AND:• µ-rutina de búsqueda de instrucción• µ-rutina de cálculo de DE• µ-rutina de búsqueda de operandos• µ-rutina de cálculo• µ-rutina de almacenaje de resultado(s)

Cada tipo de instruccióntiene asociado un

µ-programa diferente

Su

bsi

stem

ad

e m

emo

ria

ruta de datos

controlador

CP

U

.

.

.

SUBADDAND

µ-programa de control:• formado por µ-instrucciones• no puede cambiarse (pero no sería

dificil hacerlo)

35

estructura y tecnología deestructura y tecnología de computadores computadores

NomenclaturaNomenclatura

7. control microprogramado7. control microprogramado

⌦ µµ-órdenes: conjunto de señales de control que gobiernan las transferencias entreregistros que realiza la ruta de datos.

⌦ µµ-instrucción: palabra de control almacenada. Incluye una colección de bits queindican las µ-órdenes que se realizan en un ciclo de reloj

⌦ formato de µµ-instrucción: distribución, codificación y tamaño de cada una de las µ-órdenes dentro de una µ-instrucción.Ø Formato horizontal: cada bit de la µ-instrucción está asociado a un punto de control de la

ruta de datosØ Formato vertical: definir todas las µ-instrucciones diferentes y codificarlas con el menor

número de bits posibles. Requieren de un decodificador complejo que a veces se resuelvemediante nano-programación

Ø Formato vertical por campos: compactar el formato de la microinstrucción para cadaclase de µ-operación, y decodificarla localmente para generar los valores de las señales decontrol

⌦ µµ-rutina: secuencia de µ-instrucciones encargadas de implementar una instrucciónmáquina o una porción de ella (por ejemplo, cálculo de la DE de memoria)

⌦ memoria de µµ-programa: memoria ROM (o PROM) donde se almacenan cada unade las µ-rutinas que implementan el repertorio de instrucciones de un computador

⌦ µµ-secuenciador: módulo del controlador encargado de direccionar adecuadamentela memoria de µ-programa para ejecutar las µ-instrucciones que forman unainstrucción máquina.

36

estructura y tecnología deestructura y tecnología de computadores computadores

7. control microprogramado7. control microprogramado

µµ-P

C

op

IR

1

0

3

2 MU

X

1

+

0

tab

la d

eµµ-

salt

os

Zero

4

6

Estado de la ruta de datos

seq

Memoria de µµ-programa

IRW

rite

PC

Writ

eB

Writ

eA

LUS

rcA

ALU

Src

BA

LUO

pM

emW

rite

Mem

Rea

dIo

rDM

emto

Reg

Reg

Des

tR

egW

rite

AW

rite

Out

Writ

eM

DR

Writ

e

Controlador microprogramado con formato de µµ-instrucción horizontal

µµ-secuenciador

37

estructura y tecnología deestructura y tecnología de computadores computadores

7. control microprogramado7. control microprogramado

op

µ-di

recc

ión

de s

alto

100011 (lw) 0010

101011 (sw) 0101

000000 (tipo-R) 0111

000100 (beq) 1001

Tabla de Tabla de µµµµ-saltos-saltosµ-

dir

ecc

ión

(est

ad

o a

ctu

al)

Se

q

IRW

rite

PC

Wri

te

AW

rite

BW

rite

AL

US

rcA

AL

US

crB

AL

UO

p

Ou

tWri

te

Me

mW

rite

Me

mR

ea

d

IorD

MD

RW

rite

Me

mto

Re

g

Re

gD

est

Re

gW

rite

0000 00 (inc) 1 1 0 01 00 (add) 0 1 0 0

0001 10 (saltar) 0 0 1 1 0 0 0

0010 00 (inc) 0 0 1 10 00 (add) 1 0 0 0

0011 00 (inc) 0 0 0 1 1 1 0

0100 01 (cero) 0 0 0 0 1 0 1

0101 00 (inc) 0 0 0 1 10 00 (add) 1 0 0 0

0110 01 (cero) 0 0 1 0 1 0

0111 00 (inc) 0 0 1 00 11 (funct) 1 0 0 0

1000 01 (cero) 0 0 0 0 0 1 1

1001 11 (cond) 0 0 1 00 01 (sub) 0 0 0

1010 01 (cero) 0 1 0 11 00 (add) 0 0 0

Contenido de la memoria de Contenido de la memoria de µµµµ-programa-programa

sw

lw

tipo-

R

beq

fetc

h y

dec

od.

Problemas del formato horizontal:� µ-instrucciones muy largas: grandes memorias de µ-programa� la mayor parte de los bits de la µ-instrucción están a 0, o no son relevantes

38

estructura y tecnología deestructura y tecnología de computadores computadores

7. control microprogramado7. control microprogramado

µ-di

recc

ión

(est

ado

actu

al)

seq

IRW

rite

PC

Writ

e

BW

rite

ALU

Src

A

ALU

Scr

B

AL

UO

p

Mem

Writ

e

Mem

Rea

d

IorD

Me

mto

Re

g

Reg

Des

t

Reg

Writ

e

0000 00 1 1 0 01 00 0 1 0 0

0001 10 0 0 1 0 0 0

0010 00 0 0 1 10 00 0 0 0

0011 00 0 0 0 1 1 0

0100 01 0 0 0 0 1 0 1

0101 00 0 0 0 1 10 00 0 0 0

0110 01 0 0 1 0 1 0

0111 00 0 0 1 00 11 0 0 0

1000 01 0 0 0 0 0 1 1

1001 11 0 0 1 00 01 0 0 0

1010 01 0 1 0 11 00 0 0 0

4 µ-op5 µ-op 3 µ-op

ALU MEM WB

seq IR PC B ALU MEM WB

Solución:� Detectar señales constantes: Awrite,OutWrite y MDRWrite pueden ser igual a 1en todos los estados. Con eso reducimosen 3 las líneas de control� Agrupar aquellas señales que no seactivan simultáneamente y codificarlas� Sólo una µ-operación por grupo seespecifica en cada µ-instrucción� Se requieren decodificadores locales paragenerar las señales de control

Método de agrupamiento: Se suelen agruparaquellas señales que tienen fines similares:

ü Control de la ALUü Control de la Memoriaü Control del banco de registros

Formato de Formato de µµµµ-instrucci-instruccióónn

39

estructura y tecnología deestructura y tecnología de computadores computadores

7. control microprogramado7. control microprogramado

WB

Mem

toR

eg

Reg

Des

t

Reg

Writ

e

µ-operación

00 - - 0 nop

01 0 1 1 Memoria → BR

10 1 0 1 MDR → BR

11 - - - nop

ME

M

Mem

Writ

e

Mem

Rea

d

IorD

µ-operación

00 0 0 - nop

01 1 0 1 B → Memoria( ALUout )

10 0 1 0 Memoria( PC ) → ???

11 0 1 1 Memoria( ALUout ) → ???

AL

U

AL

US

rcA

AL

US

rcB

AL

Uo

p µ-operación

000 1 00 11 A funct B → ???

001 0 01 00 PC + 4 → ???

010 1 10 00 A + SignExt( IR ) → ???

011 0 11 00 PC + 4·SignExt( IR ) → ???

100 1 00 01 A – B → ???

resto - -- -- nop

Codificación de los campos de Codificación de los campos de µµµµ-instrucci-instruccióónn

40

estructura y tecnología deestructura y tecnología de computadores computadores

7. control microprogramado7. control microprogramado

µ-di

recc

ión

(est

ado

actu

al)

seq

IRW

rite

PC

Writ

e

BW

rite

ALU

ME

M

WB

0000 00 1 1 001 10 00

0001 10 0 0 1 00 00

0010 00 0 0 010 00 00

0011 00 0 0 11 00

0100 01 0 0 00 10

0101 00 0 0 0 010 00 00

0110 01 0 0 01 00

0111 00 0 0 000 00 00

1000 01 0 0 00 01

1001 11 0 0 100 00 00

1010 01 0 1 011 00 00

⌦FSM con 1 ROM (~42 Kbits):Ø 11 bits de dirección (211 palabras)Ø palabras de 21 bits

⌦µµ-programado horizontal (~0.3 Kbits)Ø 4 bits de dirección (24 palabras)Ø palabra de 19 bits

⌦µµ-programado vertical por campos (~0.2 Kbits)Ø 4 bits de dirección (24 palabras)Ø palabra de 16 bits

Contenido de la memoria de Contenido de la memoria de µµµµ-programa-programa

Alternativas de implementaciónAlternativas de implementaciónde la lógica de controlde la lógica de control

41

estructura y tecnología deestructura y tecnología de computadores computadores

7. control microprogramado7. control microprogramado

µµ-P

Cop

IR

1

0

3

2 MU

X

1

+

0

tab

la d

eµµ-

salt

os

Zero

4

6

Estado de la ruta de datos

seq

Memoria de µµ-programa

IR PC B ALU MEM WB

IRW

rite

PC

Writ

eB

Writ

e

Dec

1A

LUS

rcA

ALU

Src

BA

LUO

p

Dec

2M

emW

rite

Mem

Rea

dIo

rD

Dec

3M

emto

Reg

Reg

Des

tR

egW

rite

AW

rite

Out

Writ

eM

DR

Writ

e

1 1 1

Controlador microprogramado con formato de µµ-instrucción vertical por campos