Documentos de Académico
Documentos de Profesional
Documentos de Cultura
unidad de control
contenidos
1. Introduccin
2. Diseo de la ruta de datos (monociclo)
3. Diseo del controlador (monociclo)
4. Diseo de la ruta de datos (multiciclo)
5. Diseo del controlador (multiciclo)
6. Estudio comparativo: monociclo vs. multiciclo
7. Microprogramacin
8. Tratamiento de excepciones
9. Introduccin a la segmentacin
10. Diseo de la ruta de datos segmentada
11. Diseo del controlador segmentado
Bibliografa:
Computer organization & design: The hardware/software interface D. Patterson, J. Hennessy,
Morgan Kaufmann
Principios de diseo digital D.D. Gajski, Prentice Hall, 1997
1. introduccin
Importancia del diseo del procesador
El rendimiento de un computador est determinado por el tiempo que la CPU tarda
en ejecutar programas:
1. introduccin
Metodologa para el diseo de un procesador
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 sean
visibles por el programador. Adems puede tener otros elementos de almacenamiento
transparentes.
La ruta de datos debe incluir tantos tipos de elementos operativos como tipos de
operaciones de clculo se indiquen en el repertorio de instrucciones
El significado de cada instruccin vendr dado por un conjunto de transferencias entre
registros. La ruta de datos debe ser capaz de soportar dichas transferencias.
Paso 2: Establecer la metodologa de temporizacin
Monociclo (CPI = 1): todas las transferencias entre registros implicadas en una instruccin
se realizan en un nico ciclo de reloj.
Multiciclo (CPI > 1): las transferencias entre registros implicadas en una instruccin se
reparten entre varios ciclos de reloj.
Paso 3: Seleccionar el conjunto de mdulos (de almacenamiento, operativos e interconexin)
que forman la ruta de datos.
Paso 4: Ensamblar la ruta de datos de modo que se cumplan los requisitos impuestos por el
repertorio, localizando los puntos de control.
Paso 5: Determinar los valores de los puntos de control analizando las transferencias entre
registros incluidas en cada instruccin.
Paso 6: Disear la lgica de control.
1. introduccin
Arquitectura MIPS: Formato de la instruccin mquina
Todas las instrucciones del repertorio del MIPS tienen 32 bits de anchura, repartidas
en 3 formatos de instruccin diferentes:
26
21
16
op
6 bits
Tipo I:
31
26
Con memoria
op
Aritmticas (inmediato)
Salto condicional
6 bits
31
26
Tipo J:
op
Salto incondicional
6 bits
rs
5 bits
21
rs
5 bits
rt
5 bits
16
rt
5 bits
Tipo R:
Aritmtico-lgicas
31
11
rd
5 bits
6
desp
5 bits
0
funct
6 bits
0
inmediato
16 bits
0
direccin
26 bits
1. introduccin
Arquitectura MIPS: Subconjunto del repertorio de instrucciones
Instrucciones con referencia a memoria (formato tipo I):
lw rt, inmed(rs)
sw rt, inmed(rs)
rd rs + rt, PC PC + 4
rd rs - rt , PC PC + 4
rd rs and rt , PC PC + 4
rd rs or rt , PC PC + 4
( si ( rs < rt ) entonces ( rd 1 )
en otro caso ( rd 0 ) ), PC PC+4
Clk
Setup
Hold
Setup
Hold
Dont Care
.
.
.
.
.
.
.
.
.
.
.
.
32
32
32
16
Zero
32
ALU
32
PC
32
32
ALUctr
32
Extensin
de signo
PCWrite
32
<< 2
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, comparacin de mayora e indicacin de que el
resultado es cero (para realizar la comparacin de igualdad mediante resta)
Extensor de signo: para adaptar el operando inmediato de 16 bits al tamao de palabra.
Desplazador a la izquierda: para implementar la multiplicacin por 4.
32
32
ALUctr
000
001
010
110
111
funcin
A and B
A or B
A+B
AB
1 si (A<B),
sino 0
busA
RA
RB
RB
RW
busA
Banco de
registros
Registro 32
Registro 31
MUX
Registro 0
Registro 1
....
RW
Decodificador
5 a 32
RegWr
RA
0
1
C
Registro 0
D
C
Registro 1
31
32
busB
MUX
busB
busW
Registro 30
RegWr
D
C
BusW
Mecanismo de lectura
Mecanismo de escritura
Registro 31
10
MemWrite
ADDR
DR
DW
Memoria
de datos
ADDR
Memoria
de instrucciones
DR
11
ADDR
Memoria de
instrucciones
PC
DR
instruccin
12
RegWrite
3
RA
rt
RB
rd
RW
busW
busA
ALU
rs
Banco de
registros
instruccin
ALUCtr
busB
13
Valor antiguo
Clk-to-Q
Valor nuevo
Valor antiguo
ALUCtr
Valor antiguo
RegWrite
Valor antiguo
busA, busB
busW
Valor antiguo
Retardo de la ALU
Valor nuevo
Valor antiguo
RegWrite
RA
rt
RB
rd
RW
busW
3
busA
ALU
rs
Banco de
registros
cronograma de una
operacin arimtico-lgica
instruccin
ALUCtr
busB
aqu se escribe
el registro
14
RegDst
ALUCtr
RA
ADDR
DW
32
MemRead
DR
MUX
busW
16
inmed
Memoria de
datos
busB
Extensin
de signo
MUX
rd
RW
MUX
RB
0
Banco de
registros
rt
MemtoReg
busA
ALU
rs
MemWrite
ALUSrc
15
RegDst
ALUCtr
RA
busW
16
inmed
ADDR
DW
32
MemRead
DR
MUX
Memoria de
datos
busB
Extensin
de signo
MUX
rd
RW
MUX
RB
0
Banco de
registros
rt
MemtoReg
busA
ALU
rs
MemWrite
ALUSrc
16
<<2
MUX
PCSrc
RegDst
RegWrite
ALUCtr
rd
inmed
RW
busB
busW
16
32
ALU
Zero
busA
MUX
DR
RB
Extensin
de signo
rt
Banco de
registros
ADDR
ALUSrc
RA
MUX
Memoria de
instrucciones
PC
rs
17
<<2
MUX
PCSrc
RegWrite
RegDst
ALUCtr
ADDR
16
DW
32
MemRead
DR
MUX
ALU
busW
Instruccin [15-0]
MemtoReg
Memoria de
datos
busB
Extensin
de signo
Instruccin [15-11]
RW
Zero
busA
MUX
Banco de
registros
RB
DR
MemWrite
ALUSrc
RA
Instruccin [20-16]
MUX
ADDR
Memoria de
instrucciones
PC
Instruccin [25-21]
18
Instruccin and
rd rs and rt, PC PC + 4
RegDest 1, RegWrite 1, ALUsrc 0, ALUctr 000, PCSrc 0, MemWrite 0, MemRead 0, MemtoReg 0
19
ALUop
2
Branch
Control
principal
PCSrc
Control de
ALU (local)
ALUctr
funct
op
Zero
20
Instruccin [15-11]
Instruccin [15-0]
RW
busW
ADDR
16
Instruccin [5-0]
busB
ALU
Extensin
de signo
DR
busA
MUX
RB
DW
32
Control
de ALU
Instruccin [20-16]
Banco de
registros
RA
MUX
ADDR
Memoria de
instrucciones
PC
Instruccin [25-21]
DR
MUX
Instruccin [31-26]
Branch
MemRead
MemtoReg
ALUOp
MemWrite
ALUSrc
RegWrite
Zero
Control
principal
<<2
RegDst
Memoria de
datos
MUX
21
funct
ALUop ALUctr
00
010
00
010
01
110
11
010
11
110
11
000
11
001
11
111
XXXXXX
100000 (add)
100010 (sub)
000000 (tipo-R) 100100 (and)
100101 (or)
101010 (slt)
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Brach
ALUop
100011 (lw)
101011 (sw)
000100 (beq)
000000 (tipo-R)
ALUop1
ALUctr2
f3
funct
f2
ALUctr
ALUctr1
f1
ALUctr0
f0
op5
op4
op3
op2
op1
op0
Control principal
op
ALUop0
ALUop
0
X
X
1
1
1
0
0
1
X
X
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
00
00
01
11
tipo-R
Iw
sw
beq
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUop1
ALUop0
22
Clk
PC
Valor antiguo
Clk-to-Q
Valor Nuevo
Tiempo de acceso a la Memoria de Instrucciones
Valor Nuevo
Valor Antiguo
ALUOp
Valor Antiguo
MemRead
Valor Antiguo
Valor Nuevo
ALUSrc
Valor Antiguo
Valor Nuevo
MemtoReg
Valor Antiguo
Valor Nuevo
RegWrite
Valor Antiguo
Valor Nuevo
Tiempo de acceso al Banco de Registros
Valor Nuevo
busA
Ent_B_ALU
Addr
busW
Valor Antiguo
Retardo del MUX
Valor Antiguo
Valor Antiguo
Tiempo de acceso a la Memoria de Datos + MUX
Valor Antiguo
aqu se escribe
el registro
Valor Nuevo
Retardo de la ALU
Valor Nuevo
Valor Nuevo
23
PC
sw
PC mem. instruccin
mem. dato
banco reg.
mux
ALU
mux
ALU
mux setup
mux
ALU
mux setup
beq
PC
tipo-R
PC
mem. dato
mux setup
desperdicio
desperdicio
desperdicio
24
Nuevo Clk
o Memoria
Lg.
comb.
o Memoria
Lg.
comb.
BR( x)
Lg.
comb.
BR( x)
Ejecucin
(almacenaje)
Busqueda de
operando
MDR
Lg.
comb.
ALUout
Lg.
comb.
AoB
Controlador
multiciclo
Bsqueda de
componentes
de DE
IR
Controlador
monociclo
PC
Busqueda de
instrucciones
Clculo de
DE
PC
Temporizacin monociclo
25
IorD
IRWrite
RegDst
AWrite
ALUSrcA
Control
de ALU
RegWrite
busB
busW
1
2
MemtoReg
BWrite
<<2
Extensin
de signo
Instruc. [15-0]
MDRWrite
MUX
MDR
MemRead
Zero
ALU
Instruccin [15-11]
DW
RW
busA
Banco de
registros
DR
RB
MUX
Instruccin [20-16]
IR
Memoria
ADDR
RA
MUX
Instruccin [25-21]
MUX
MUX
PC
OutWrite
ALUop
ALUSrcB
ALUout
PCWrite
26
MDRWrite
BusA
RegDst
RegWrite
AWrite
PCWrite
Decod.
busA
RA
RB
DW
A
4
Decod.
busB
MemRead
IRWrite
BusB
Zero
ALU
<<2
Instruc. [15-0]
busB
RW
Extensin
de signo
DR
MUX
Instruccin [15-11]
IR
ADDR
Memoria
PC
ALUout
Instruccin [20-16]
busA
Instruccin [25-21]
Banco de
registros
busW
MDR
Control
de ALU
BWrite
ALUop
OutWrite
Cada bus slo puede ser usado para escribir desde una fuente (aunque puede ser ledo desde varios destinos)
27
Observaciones: en todas las instrucciones las acciones 1. y 2. son iguales (excepto en lw, pero no
habra problema en modificarla)
28
Bsqueda
de instruccin
IR Memoria( PC )
PC PC + 4
Decod.
A BR( rs )
B BR( rt )
Ejecucin
op
-R
i po
t
1
op = b
op =
op = lw
7
ALUout A funct B
eq
sw
2
ALUout A + SignExt( inmed )
Zero = 0
A -B
Write-back
Acceso a
memoria
Zero = 1
6
3
MDR Memoria( ALUout )
8
BR( rd ) ALUout
4
BR( rt ) MDR
Memoria( ALUout ) B
10
PC PC + 4SignExt( inmed )
29
11
Lgica combinacional
de control
op
Zero
6
IR
a
el s
d
o ato
d
d
a
t
Es ta de
ru
el
o d or
d
a
Est trolad
con
AWrite
OutWrite
MDRWrite
IRWrite
PCWrite
BWrite
ALUSrcA
ALUSrcB
ALUOp
MemWrite
MemRead
IorD
MemtoReg
RegDest
RegWrite
Registro
estado
30
0010
0001
101011 (sw)
0101
0001
000000 (tipo-R)
0111
0001
000100 (beq)
1001
00 (add)
MemtoReg
RegWrite
RegDest
MDRWrite
0011
0011
XXXXXX
0100
0100
XXXXXX
0000
0101
XXXXXX
0110
0110
XXXXXX
0000
0111
XXXXXX
1000
1000
XXXXXX
0000
1001
XXXXXX
0000
1001
XXXXXX
1010
00
01 (sub)
1010
XXXXXX
0000
11
00 (add)
10
00
00 (add)
11 (funct)
XXXXXX
00 (add)
0010
10
IorD
100011 (lw)
01
MemRead
0001
OutWrite
PCWrite
1
ALUOp
IRWrite
1
ALUScrB
Estado
siguiente
0001
ALUSrcA
Zero
X
BWrite
op
XXXXXX
AWrite
Estado
actual
0000
MemWrite
0
1
1
0
0
0
0
31
s3
Lgica discreta:
21 funciones de conmutacin
11 variables diferentes
1 PLA
11 entradas
21 salidas
15 trminos producto
1 ROM (~42 Kbits):
11 bits de direccin (211 palabras)
palabras de 21 bits
2 ROM (~10 Kbits)
ROM de control:
4 bits de direccin (24 palabras)
palabra de 17 bits
ROM de siguiente estado:
11 bits de direccin (211 palabras)
palabras de 4 bits
s1
s2
s0
op5
op4
op3
op2
op1
op0
zero
ns3
ns2
ns1
ns0
IRWrite
PCWrite
AWrite
BWrite
ALUSrcA
ALUSrcB1
ALUSrcB0
ALUOp1
ALUOp0
OutWrite
MemWrite
MemRead
IorD
MRDWrite
MemtoReg
RegDest
RegWrite
32
lw
lw
lw
lw
lw $t2, 0($t3)
lw $t3, 4($t3)
beq $t2, $t3, Label
add $t5, $t2, $t3
sw $t5, 8($t3)
beq
add
beq
sw
add
Operacin
tipo-R
lw
st
beq (salta)
beq (no salta)
diferencia
sw
Frecuencia
50%
20%
10%
2.5%
17.5%
Ciclos
4
5
4
4
3
CPI
2.0
1.0
.4
.1
0.53
4.03
33
7. control microprogramado
Comparacin de las alternativas de implementacin de la lgica de control
El diseo con lgica discreta o PLA:
No es sistemtico
Una vez diseado es inflexible: un error o modificacin requieren el rediseo completo de
la lgica de control
Una mayor complejidad del repertorio se traduce en un mayor complejidad del diseo
34
CPU
Subsistema
de memoria
7. control microprogramado
SUB
ADD
AND
ruta de datos
controlador
Programa de usuario:
formado por instrucciones
puede cambiar
.
.
.
Cada tipo de instruccin
tiene asociado un
-programa diferente
35
7. control microprogramado
Nomenclatura
-rdenes: conjunto de seales de control que gobiernan las transferencias entre
registros que realiza la ruta de datos.
-instruccin: palabra de control almacenada. Incluye una coleccin de bits que
indican las -rdenes que se realizan en un ciclo de reloj
formato de -instruccin: distribucin, codificacin y tamao de cada una de las rdenes dentro de una -instruccin.
Formato horizontal: cada bit de la -instruccin est asociado a un punto de control de la
ruta de datos
Formato vertical: definir todas las -instrucciones diferentes y codificarlas con el menor
nmero de bits posibles. Requieren de un decodificador complejo que a veces se resuelve
mediante nano-programacin
Formato vertical por campos: compactar el formato de la microinstruccin para cada
clase de -operacin, y decodificarla localmente para generar los valores de las seales de
control
36
7. control microprogramado
-secuenciador
-PC
0
1
2
3
MUX
tabla de
-saltos
Memoria de
-programa
4
seq
op
Est
a
ruta do de
l
de
dat a
os
IR
AWrite
OutWrite
MDRWrite
IRWrite
PCWrite
BWrite
ALUSrcA
ALUSrcB
ALUOp
MemWrite
MemRead
IorD
MemtoReg
RegDest
RegWrite
Zero
Controlador microprogramado
con formato de -instruccin horizontal
37
7. control microprogramado
-direccin
de salto
MemtoReg
000100 (beq)
1001
00 (inc)
0110
01 (cero)
0111
00 (inc)
1000
01 (cero)
1001
11 (cond)
00
01 (sub)
1010
01 (cero)
11
00 (add)
00 (inc)
0011
00 (inc)
0100
01 (cero)
0101
Seq
0010
1
1
10
10
00
00 (add)
00 (add)
11 (funct)
RegWrite
RegDest
00 (add)
MDRWrite
IorD
0111
10 (saltar)
01
OutWrite
000000 (tipo-R)
0001
ALUOp
ALUScrB
ALUSrcA
00 (inc)
BWrite
0000
AWrite
MemRead
beq
MemWrite
tipo-R
sw
PCWrite
lw
Tabla de -saltos
IRWrite
fetch y
decod.
-direccin
(estado actual)
op
100011 (lw)
0010
101011 (sw)
0101
0
1
1
0
0
0
0
38
7. control microprogramado
MEM
Formato de -instruccin
seq
IR PC B
ALU
MEM
WB
0011
00
0100
01
0101
00
RegWrite
00
01
RegDest
0010
MemtoReg
IorD
MemRead
10
MemWrite
0001
ALUOp
ALUScrB
PCWrite
WB
ALUSrcA
IRWrite
00
BWrite
seq
0000
-direccin
Solucin:
Detectar seales constantes: Awrite,
OutWrite y MDRWrite pueden ser igual a 1
en todos los estados. Con eso reducimos
en 3 las lneas de control
Agrupar aquellas seales que no se
activan simultneamente y codificarlas
Slo una -operacin por grupo se
especifica en cada -instruccin
Se requieren decodificadores locales para
generar las seales de control
(estado actual)
ALU
00
0110
01
0111
00
1000
01
1001
11
00
01
1010
01
11
00
10
10
00
5 -op
00
00
11
4 -op
0
1
1
0
0
0
0
3 -op
39
7. control microprogramado
01
00
PC + 4 ???
010
10
00
A + SignExt( IR ) ???
011
11
00
PC + 4SignExt( IR ) ???
100
00
01
A B ???
resto
--
--
nop
RegWrite
001
RegDest
A funct B ???
nop
01
ALUout BR
10
MDR BR
11
nop
IorD
11
MemtoReg
00
MemRead
ALUop
WB
ALUSrcB
000
00
MemWrite
ALUSrcA
-operacin
-operacin
MEM
ALU
00
nop
01
B Memoria( ALUout )
10
Memoria( PC ) ???
11
-operacin
40
7. control microprogramado
IRWrite
PCWrite
00
0001
10
0010
00
0011
00
0100
01
0101
ALU
MEM
WB
BWrite
seq
0000
-direccin
(estado actual)
001
10
00
00
00
00
00
11
00
00
10
00
00
00
0110
01
01
00
0111
00
00
00
1000
01
00
01
1001
11
100
00
00
1010
01
011
00
00
1
010
010
000
Alternativas de implementacin
de la lgica de control
FSM con 1 ROM (~42 Kbits):
11 bits de direccin (211 palabras)
palabras de 21 bits
-programado horizontal (~0.3 Kbits)
4 bits de direccin (24 palabras)
palabra de 16 bits
-programado vertical por campos (~0.2 Kbits)
4 bits de direccin (24 palabras)
palabra de 12 bits
41
7. control microprogramado
1
-PC
0
1
2
3
MUX
tabla de
-saltos
Memoria de
-programa
4
seq IR PC B
ALU
MEM
WB
Dec2
Dec3
MemtoReg
RegDest
RegWrite
IR
Controlador microprogramado
con formato de -instruccin vertical por campos
AWrite
OutWrite
MDRWrite
IRWrite
PCWrite
BWrite
Est
a
ruta do de
la
de
dat
os
MemWrite
MemRead
IorD
1 1 1
op
Dec1
Zero
ALUSrcA
ALUSrcB
ALUOp
42
8. Tratamiento de excepciones
Nomenclatura del MIPS
Excepcin. Cualquier cambio inesperado en el flujo de control.
Interrupcin. Cambio inesperado en flujo de control debido a un evento externo.
Gestin de las excepciones: Instruccin indefinida y overflow aritmtico
Acciones bsicas:
Salvar el contador de programa de la instruccin interrumpida en el registro EPC (exception program counter)
Transferir el control al sistema operativo en alguna direccin especificada.
El S.O. Realizar la accin apropiada, como realizar alguna tarea asociada al overflow o detener la ejecucin del
programa.
Volver a la ejecucin normal del programa en la direccin guardada en EPC.
Hardware aadido:
Registro de estado: Cause register (32 bits) con un campo que indica la causa de la
excepcin:
Bit 0: Instruccin indefinida.
Bit 1: Overflow aritmtico.
Se aaden las seales de control:
EPCwrite. Escribe en EPC. (EPC <= PC 4)
CauseWrite. Escribe en Cause
IntCause. Escribe un 1 sobre el bit apropiado de Cause.
Para dar la direccin de la rutina de tratamiento de excepcin, se aade una entrada
al multiplexor que controla la carga del PC, con la direccin de esta rutina, por ej.
C0000000hex
43
8. Tratamiento de excepciones
0
IR Memoria( PC )
PC PC + 4
11
A BR( rs )
B BR( rt )
op
-R
i po
t
op = b
op =
op = lw
7
ALUout A funct B
EPC PC-4
PC C0000000
Cause 00000001
Op= otras
eq
sw
2
ALUout A + SignExt( inmed )
No overflow
overflow
EPC PC-4
Zero = 0
A -B
Zero = 1
8
BR( rd ) ALUout
3
MDR Memoria( ALUout )
Memoria( ALUout ) B
12
PC C0000000
Cause 00000010
4
BR( rt ) MDR
10
PC PC + 4SignExt( inmed )
44
Tiempo
Bsqueda
instruccin
Lw $1, 100($0)
Reg
Lw $2, 200($0)
ALU
Acceso
datos
10
12
14
ALU
Acceso
datos
16
18
Reg
Bsqueda
instruccin
8 ns
Reg
Lw $3, 300($0)
Reg
Bsqueda
instruccin
8 ns
8 ns
Orden de
ejecucin del
programa
Lw $1, 100($0)
Lw $2, 200($0)
Lw $3, 300($0)
Tiempo
Bsqueda
instruccin
2 ns
Reg
ALU
Bsqueda
instruccin
2 ns
Reg
Bsqueda
instruccin
2 ns
Acceso
datos
ALU
Reg
2 ns
10
12
14
Reg
Acceso
datos
ALU
2 ns
Reg
Acceso
datos
2 ns
Reg
2 ns
45
46
EX: Ejecutar /
Clculo D.E.
MEM:
Acceso a memoria
WB:
Escritura de
registros
MUX
<<2
busW
ADDR
DW
16
32
DR
MUX
ALU
busB
Zero
MUX
RW
Banco de
registros
Memoria de
instrucciones
DR
RB
busA
Memoria de
datos
RA
ADDR
Extensin
de signo
PC
47
EX: Ejecutar /
Clculo D.E.
MEM:
Acceso a memoria
WB:
Escritura de
registros
MUX
EX/MEM
MEM/WB
ID/EX
<<2
0
busW
ADDR
16
Extensin
de signo
DW
32
DR
MUX
busB
ALU
RW
Zero
MUX
DR
RB
busA
Memoria de
datos
RA
ADDR
Banco de
registros
Memoria de
instrucciones
PC
IF/ID
48
EX: Ejecutar /
Clculo D.E.
MEM:
Acceso a memoria
WB:
Escritura de
registros
MUX
IF/ID
MEM/WB
busW
ADDR
DW
16
32
DR
MUX
ALU
busB
Zero
MUX
Banco de
registros
RW
Extensin
de signo
DR
RB
busA
Memoria de
datos
RA
ADDR
Memoria de
instrucciones
EX/MEM
<<2
PC
ID/EX
49
MUX
IF/ID
ID/EX
EX/MEM
Branch
<<2
MEM/WB
MemWrite
busW
ADDR
32
6
0
MUX
16
RegDst
Control de
ALU
DW
ALUOp
DR
MemRead
MUX
busB
MemtoReg
Zero
Memoria de
datos
ALUSrc
MUX
Banco de
registros
RW
Extensin
de signo
DR
RB
busA
ALU
RA
ADDR
Memoria de
instrucciones
PC
RegWrite
50
Instruccin
Formato-R
Lw
Sw
beq
Lneas de control
del estado de WB
Reg
Mem to
Write
Reg
1
0
1
1
0
X
0
X
51
Instruccin
IF/ID
Control
WB
M
WB
EX
WB
EX/MEM
MEM/WB
ID/EX
52
ID/EX
0
WB
MEM/WB
EX
WB
<<2
ADDR
32
6
0
MUX
16
RegDst
Control de
ALU
DW
DR
MemRead
ALUOp
2
MUX
busW
MemtoReg
MemWrite
Zero
Memoria de
datos
ALU
busB
MUX
RW
Banco de
registros
RB
busA
Extensin
de signo
DR
Branch
ALUSrc
RegWrite
RA
ADDR
Memoria de
instrucciones
PC
Control
MUX
IF/ID
EX/MEM
WB
53
10
Control
MUX
IF/ID
ID/EX
WB 00
000
1100
EX/MEM
001
00
0
EX
WB
<<2
+
0
busW
ADDR
11 Instr[20-16]
1 Instr[15-11]
32
16
6
0
MUX
16
RegDst
Control de
ALU
DW
2090
MemtoReg
Zero
DR
MUX
$6
MemWrite
busB $11
Memoria de
datos
RW
$5
ALU
15
RB
Extensin
de signo
DR
busA $10
Branch
MUX
11
Banco de
registros
RA
ADDR
Memoria de
instrucciones
ALUSrc
RegWrite
10
PC
MEM/WB
00
WB
MemRead
ALUOp
2
31
15