Está en la página 1de 57

Tema 3.

 Diseño del procesador
3.2. Diseño del procesador multiciclo

Grado en Ingeniería Informática
Curso 2019 – 2020
Bibliografía

 Computer organization and design: the hardware/software interface


David A. Patterson, John L. Hennessy
Morgan Kaufmann :, Walthan : (2014) ‐ (5ª ed.)
978‐0‐12‐407726‐3
 3th Edition  Secciones 5.5 a 5.7
 2nd Edition  Secciones 5.4 a 5.6

Estructura de Computadores - Tema 3 - Diseño del procesador 2


Objetivos

 Plantear y modificar una ruta de datos para un repertorio de 
instrucciones simple en un procesador básico
 Especificar y modificar una unidad de control con una máquina 
de estados finitos para una ruta de datos y un repertorio de 
instrucciones simples
 Implementar una unidad de control especificada mediante una 
máquina de estados finitos
 Especificar y modificar una unidad de control microprogramada
para una ruta de datos y un repertorio de instrucciones simple
 Implementar una unidad de control microprogramada

Estructura de Computadores - Tema 3 - Diseño del procesador 3


Contenidos

 Metodología de sincronización
 Diseño de un procesador MIPS R3000 reducido
 Rutas de datos individuales
 Diseño monociclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control de la ALU
▫ Diseño de la unidad de control
▫ Ventajas y desventajas
 Diseño multiciclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control
▪ Control cableado
▪ Control microprogramado
 Excepciones e interrupciones

Estructura de Computadores - Tema 3 - Diseño del procesador 4


Diseño multiciclo

 División del ciclo de instrucción en varias etapas o pasos
 Cada etapa se ejecuta en un ciclo de reloj
 Las etapas presentan cargas de trabajo equilibradas
 CPI (ciclos por instrucción) variables: instrucciones lentas y rápidas
 Reutilización de las unidades funcionales
 Una unidad puede utilizarse más de una vez por instrucción siempre que 
se haga en ciclos de reloj distintos.
▫ Memoria unificada, pero un único acceso por ciclo
▫ Una única ALU, pero una única operación ALU por ciclo

Estructura de Computadores - Tema 3 - Diseño del procesador 5


Implementación multiciclo: componentes básicos

Instruction
register
Data
PC Address
A
Register #
Instruction
Memory or data Registers ALU ALUOut
Memory Register #
data B
Data register Register #

 Una sola memoria ‐ para datos e instrucciones
 Una sola ALU ‐ en vez de 1 ALU y 2 sumadores
 Uso de registros temporales a la salida de las unidades 
funcionales principales. Dos tipos de registros:
 Tipo A: Actualizan su contenido en cada instrucción (IR)
 Tipo B: Actualizan su contenido en cada ciclo de reloj (MDR, A,B,ALUOut)

Estructura de Computadores - Tema 3 - Diseño del procesador 6


Contenidos

 Metodología de sincronización
 Diseño de un procesador MIPS R3000 reducido
 Rutas de datos individuales
 Diseño monociclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control de la ALU
▫ Diseño de la unidad de control
▫ Ventajas y desventajas
 Diseño multiciclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control
▪ Control cableado
▪ Control microprogramado
 Excepciones e interrupciones

Estructura de Computadores - Tema 3 - Diseño del procesador 7


Ruta de datos multiciclo
IorD MemRead MemWrite IRWrite RegDst RegWrite ALUSrcA

PC 0 0
M Instruction Read
[25– 21] register 1 M
u Address u
x Read x
Instruction Read data 1 A Zero
1 Memory 1
[20– 16] register 2
0 ALU ALU ALUOut
MemData Registers
Instruction M Write Read result
[15– 0] register data 2 B 0
Instruction u
Write x
Instruction [15– 11] Write 4 1 M
data 1 u
register data 2 x
Instruction 0 3
[15– 0] M
u
x
Memory 1
data 16 32 ALU
Sign Shift
register control
extend left 2

Instruction [5– 0]

MemtoReg ALUSrcB ALUOp

 Compartición de unidades funcionales (reducción del hardware) 
 uso de multiplexores
 Ejecución en múltiples ciclos  cada ciclo requiere un conjunto 
determinado de señales de control
 Señales de control
Estructura de Computadores - Tema 3 - Diseño del procesador 8
Etapas de ejecución de las instrucciones

 ¿Qué operaciones realizamos en cada ciclo de reloj?
 Objetivo: equilibrar la carga computacional de cada etapa 
Minimización del tiempo de ciclo
 En cada etapa se va a realizar alguna de las siguientes operaciones:
▫ Un acceso a registro
▪ Actualización en cada ciclo (Registros temporales: MDR, A, B, ALUOut)
▪ Actualización según una señal de escritura (PC, IR)
▫ Un acceso a memoria
▫ Una operación de ALU
▫ ¿Cómo se determina el tiempo de ciclo mínimo?
 Todas las operaciones de un ciclo se ejecutan en paralelo
 Etapas o pasos de la instrucción se ejecutan en serie

Estructura de Computadores - Tema 3 - Diseño del procesador 9


Camino de datos multiciclo con señales de control

PCWriteCond PCSource
PCWrite
ALUOp
IorD Outputs
ALUSrcB
MemRead
Control ALUSrcA
MemWrite
RegWrite
MemtoReg
Op RegDst
IRWrite [5– 0]
0
M
Jump 1 u
Instruction [25– 0] 26 28 address [31-0] x
Shift
2
left 2
Instruction
[31-26] PC [31-28]
PC 0 0
M Instruction Read
[25– 21] register 1 M
u Address u
x Read x
Instruction Read A Zero
1 Memory
[20– 16] register 2 data 1 1
0 ALU ALU ALUOut
MemData Registers
Instruction M Write result
Read B
[15– 0] Instruction u register data 2 0
Write Instruction [15– 11] x 4 1 M
data Write
register 1 data u
2 x
Instruction 0 3
[15– 0] M
u
x
Memory 1
data 16 32 ALU
Sign Shift
register control
extend left 2

Instruction [5– 0]

Estructura de Computadores - Tema 3 - Diseño del procesador 10


Etapas de ejecución de las instrucciones (I)

 Etapa 1: Búsqueda del código de operación (fetch)
IR = Memory[PC]
PC = PC + 4
 Etapa 2: Decodificación y acceso a operandos
A = Reg[rs]
B = Reg[rt]
ALUout = PC + extensión-signo(IR[15-0]) << 2
 Etapa 3: Ejecución, cálculo de dirección o terminación del salto
 Instrucción tipo R (and, or, add, sub,slt)
ALUOut = A op B
 Referencia a memoria (lw/sw)
ALUOut = A + extensión-signo(IR[15-0])
 Salto (beq)
if (A == B) PC = ALUOut
 Bifurcación (j)
PC = PC[31-28] || IR[25-0] << 2

Estructura de Computadores - Tema 3 - Diseño del procesador 11


Etapas de ejecución de las instrucciones (II)

 Etapa 4: Acceso a memoria/fin de ejecución instrucción tipo R
 Referencia a memoria (lw)
MDR = Memory[ALUOut]
 Referencia a memoria (sw)
Memory[ALUOut] = B
 Fin ejecución instrucción tipo R
Reg[rd] = ALUOut

 Etapa 5: Fin de lectura en memoria
Reg[rt] = MDR

Estructura de Computadores - Tema 3 - Diseño del procesador 12


Instruction decode/

Instrucción lw: Etapa 1


Instruction fetch Register fetch
0
MemRead 1
ALUSrcA = 0
IorD = 0
IRWrite ALUSrcA = 0
Start ALUSrcB = 01 ALUSrcB = 11
ALUOp = 00 ALUOp = 00
PCWrite
PCSource = 00

(Op = 'JMP')
T1
Memory reference FSM R-type FSM Branch FSM Jump FSM
(Figure 5.38) (Figure 5.39) (Figure 5.40) (Figure 5.41)

PCWriteCond PCSource
PCWrite ALUOp
IorD Outputs
ALUSrcB
MemRead
Control ALUSrcA
MemWrite
RegWrite
MemtoReg
Op RegDst
IRWrite [5–0]
0
M
Jump 1u
Instruction [25–0] 26 28 address [31-0] x
Shift
left 2 2
Instruction
[31-26] PC [31-28]
PC 0 0
M Instruction Read
[25–21] register 1 M
u Address u
x Read A x
1 Memory Instruction Read Zero
[20–16] register 2 data 1 1
MemData 0 ALU ALU ALUOut
Registers
Instruction M Write Read result
[15–0] register data 2 B
Instruction u 0
Write Instruction [15–11] x 4 1M
data 1 Write u
register data 2 x
Instruction 0 3
[15–0] M
u
x
Memory 1
data 16 32 ALU
Sign Shift
register control
extend left 2

Instruction [5–0]

Estructura de Computadores - Tema 3 - Diseño del procesador 13


Instruction decode/
Instruction fetch Register fetch

Instrucción lw: Etapa 2


0
MemRead 1
ALUSrcA = 0
IorD = 0
IRWrite ALUSrcA = 0
Start ALUSrcB = 01 ALUSrcB = 11
ALUOp = 00 ALUOp = 00
PCWrite
PCSource = 00

(Op = 'JMP')
T2
Memory reference FSM R-type FSM Branch FSM Jump FSM
(Figure 5.38) (Figure 5.39) (Figure 5.40) (Figure 5.41)

PCWriteCond PCSource
PCWrite ALUOp
IorD Outputs
ALUSrcB
MemRead
Control ALUSrcA
MemWrite
RegWrite
MemtoReg
Op RegDst
IRWrite [5–0]
0
M
Jump 1u
Instruction [25–0] 26 28 address [31-0] x
Shift
left 2 2
Instruction
[31-26] PC [31-28]
PC 0 0
M Instruction Read
[25–21] register 1 M
u Address u
x Read x
Instruction Read A Zero
1 Memory
[20–16] register 2 data 1 1
MemData 0 ALU ALU ALUOut
Registers
Instruction M Write Read result
[15–0] register data 2 B
Instruction u 0
Write Instruction [15–11] x 4 1M
data 1 Write u
register data 2 x
Instruction 0 3
[15–0] M
u
x
Memory 1
data 16 32 ALU
Sign Shift
register control
extend left 2

Instruction [5–0]

Estructura de Computadores - Tema 3 - Diseño del procesador 14


Instrucción lw: Etapa 3
T3

PCWriteCond PCSource
PCWrite ALUOp
IorD Outputs
ALUSrcB
MemRead
Control ALUSrcA
MemWrite
RegWrite
MemtoReg
Op RegDst
IRWrite [5–0]
0
M
Jump 1u
Instruction [25–0] 26 28 address [31-0] x
Shift
left 2 2
Instruction
[31-26] PC [31-28]
PC 0 0 From state 1
M Instruction Read
[25–21] register 1 M (Op = 'LW') or (Op = 'SW')
u Address u
x Read x Memory address computation
Instruction Read A Zero
1 Memory
[20–16] register 2 data 1 1 2
MemData 0 ALU ALU ALUOut
Registers ALUSrcA = 1
Instruction M Write Read result ALUSrcB = 10
[15–0] register data 2 B
Instruction u 0 ALUOp = 00
Write Instruction [15–11] x 4 1M
data 1 Write u
register data 2 x

(Op = 'LW')
Instruction 0 3
[15–0] M Memory Memory
u access access
x
3 5
Memory 1
data 16 32 ALU
Sign Shift MemRead
MemWrite
register control IorD = 1
extend left 2 IorD = 1

Instruction [5–0]
Write-back step
4

RegWrite To state 0
MemtoReg = 1 (Figure 5.37)
RegDst = 0

Estructura de Computadores - Tema 3 - Diseño del procesador 15


Instrucción lw: Etapa 4
T4

PCWriteCond PCSource
PCWrite ALUOp
IorD Outputs
ALUSrcB
MemRead
Control ALUSrcA
MemWrite
RegWrite
MemtoReg
Op RegDst
IRWrite [5–0]
0
M
Jump 1u
Instruction [25–0] 26 28 address [31-0] x
Shift
left 2 2
Instruction
[31-26] PC [31-28]
PC 0 0 From state 1
M Instruction Read
[25–21] register 1 M (Op = 'LW') or (Op = 'SW')
u Address u
x Memory address computation
Instruction Read Read A x 2
1 Memory Zero
[20–16] register 2 data 1 1
MemData 0 ALU ALU ALUOut ALUSrcA = 1
Registers
Instruction M Write Read result ALUSrcB = 10
[15–0] register data 2 B ALUOp = 00
Instruction u 0
Write Instruction [15–11] x 4 1M
data 1 Write u
register data

(Op = 'LW')
2 x
Instruction 0 3
[15–0] M Memory Memory
u access access
x 3 5
Memory 1
data 16 32 ALU MemRead
MemWrite
register Sign Shift IorD = 1
extend left 2 control IorD = 1

Instruction [5–0] Write-back step


4

RegWrite To state 0
MemtoReg = 1 (Figure 5.37)
RegDst = 0

Estructura de Computadores - Tema 3 - Diseño del procesador 16


Instrucción lw: Etapa 5

T5

PCWriteCond PCSource
PCWrite ALUOp
IorD Outputs
ALUSrcB
MemRead
ALUSrcA
MemWrite Control
RegWrite
MemtoReg
Op RegDst
IRWrite [5–0]
0
M
Jump 1u
Instruction[25–0] 26 28 address [31-0] x
Shift
left 2 2
Instruction
[31-26] PC [31-28]
PC 0 0
M Instruction Read
[25–21] register 1 M
u Address u From state 1
x Read A x
1 Memory Instruction Read Zero (Op = 'LW') or (Op = 'SW')
[20–16] register 2 data 1 1 Memory address computation
MemData 0 ALU ALU ALUOut
Registers 2
Instruction M Write Read result
[15–0] register data 2 B
Instruction u 0 ALUSrcA = 1
Write Instruction [15–11] x 4 1M
ALUSrcB = 10
data 1 Write u ALUOp = 00
register data 2 x
Instruction 0 3

(Op = 'LW')
[15–0] M
u
x Memory Memory
Memory 1 access access
data 16 32 ALU 3 5
Sign Shift
register control
extend left 2 MemRead
MemWrite
IorD = 1
IorD = 1

Instruction [5–0]

Write-back step
4

RegWrite To state 0
MemtoReg = 1 (Figure 5.37)
RegDst = 0

Estructura de Computadores - Tema 3 - Diseño del procesador 17


Contenidos

 Metodología de sincronización
 Diseño de un procesador MIPS R3000 reducido
 Rutas de datos individuales
 Diseño monociclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control de la ALU
▫ Diseño de la unidad de control
▫ Ventajas y desventajas
 Diseño multiciclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control
▪ Control cableado
▪ Control microprogramado
 Excepciones e interrupciones

Estructura de Computadores - Tema 3 - Diseño del procesador 18


Diseño multiciclo - Diseño de la unidad control

 Control cableado (Máquina de estados finitos ‐ FSM)
 Especificación del control mediante un diagrama de estados finitos 
(representación gráfica o tabular)
 Máquina de estados finitos
▫ Conjunto de estados
▫ Función estado siguiente
▪ Si ×Ij  Sk
▫ Función salida 
▪ Máquinas de Moore: Si  Ok
▪ Máquinas de Mealy: Si ×Ij  Ok
 Control microprogramado
 Especificación del control mediante un programa
 Necesaria para simplificar la especificación de una UC compleja

Estructura de Computadores - Tema 3 - Diseño del procesador 19


Ruta de datos multiciclo completo con las señales de control

PCWriteCond PCSource
PCWrite
ALUOp
IorD Outputs
ALUSrcB
MemRead
Control ALUSrcA
MemWrite
RegWrite
MemtoReg
Op RegDst
IRWrite [5– 0]
0
M
Jump 1 u
Instruction [25– 0] 26 28 address [31-0] x
Shift
2
left 2
Instruction
[31-26] PC [31-28]
PC 0 0
M Instruction Read
[25– 21] register 1 M
u Address u
x Read x
Instruction Read A Zero
1 Memory
Estructura de Computadores
MemData
-16]Tema 3 -0 Diseño
[20– del
register 2 data 1
Registers
procesador 1
ALU ALU ALUOut
Instruction M Write Read result
[15– 0] register B
Instruction u data 2 0
Write Instruction [15– 11] x 4 1 M
data Write
register 1 data u
2 x
Instruction 0 3
[15– 0] M
u
x
Memory 1
data 16 32 ALU
Sign Shift
register control
extend left 2

Instruction [5– 0]

20
Contenidos

 Metodología de sincronización
 Diseño de un procesador MIPS R3000 reducido
 Rutas de datos individuales
 Diseño monociclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control de la ALU
▫ Diseño de la unidad de control
▫ Ventajas y desventajas
 Diseño multiciclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control
▪ Control cableado
▪ Control microprogramado
 Excepciones e interrupciones

Estructura de Computadores - Tema 3 - Diseño del procesador 21


Control cableado - FSM
Start
 Representación abstracta
Instruction fetch/decode and register fetch
 Etapas 1 y 2 comunes a todas  (Figure 5.37)

las instrucciones
Memory access
R-type instructions Branch instruction Jump instruction
instructions
(Figure 5.39) (Figure 5.40) (Figure 5.41)
(Figure 5.38)

Instruction decode/
Instruction fetch Register fetch
0

 Diagrama de estados MemRead
ALUSrcA = 0
IorD = 0
1

ALUSrcA = 0
IRWrite
Start ALUSrcB = 01 ALUSrcB = 11

 Etapas 1 y 2 ALUOp = 00
PCWrite
PCSource = 00
ALUOp = 00

(Op = 'JMP')
Memory reference FSM R-type FSM Branch FSM Jump FSM
(Figure 5.38) (Figure 5.39) (Figure 5.40) (Figure 5.41)

Estructura de Computadores - Tema 3 - Diseño del procesador 22


Control cableado – FSM completa
Instruction decode/
Instruction fetch register fetch
0
MemRead 1
ALUSrcA = 0
IorD = 0 ALUSrcA = 0
Start IRWrite ALUSrcB = 11
ALUSrcB = 01 ALUOp = 00
ALUOp = 00
PCWrite
PCSource = 00

(Op = 'J')
Memory address
Branch Jump
computation Execution completion completion
2 6 8 9
ALUSrcA = 1
ALUSrcA = 1 ALUSrcA =1 ALUSrcB = 00
ALUSrcB = 10 PCWrite
ALUSrcB = 00 ALUOp = 01
ALUOp = 00 PCSource = 10
ALUOp= 10 PCWriteCond
PCSource = 01
(Op = 'LW')

Memory Memory
access access R-type completion
3 5 7

RegDst = 1
MemRead MemWrite RegWrite
IorD = 1 IorD = 1 MemtoReg = 0

Write-back step
4

RegDst =0
RegWrite
MemtoReg =1

Estructura de Computadores - Tema 3 - Diseño del procesador 23


Control cableado – Especificación de la UC con una FSM

Entradas Salidas
Estado
Código Operación Estado Actual Señales de Control para el Camino de Datos
Siguiente

PCWriteCond

MemToReg
PCSource1
PCSource0

ALUSrcB1
ALUSrcB0
MemRead
MemWrite

ALUSrcA
Regwrite
ALUOp1
IRWRite

ALUop0
pCWrite

RegDst
IorD
op4
op3
op2
op1
op0

ns3
ns2
ns1
ns0
op5

s3
s2
s1
s0
0 x x x x x x 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0

1 lw 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

1 sw 1 0 1 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

1 R 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

1 beq 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

1 j 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0

2 lw 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
2 sw 1 0 1 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
3 x x x x x x 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
4 x x x x x x 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0
5 x x x x x x 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
6 x x x x x x 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0
7 x x x x x x 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
8 x x x x x x 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0
9 x x x x x x 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0

Estructura de Computadores - Tema 3 - Diseño del procesador 24


Control cableado - Implementación de la FSM

 Unidad de control = Lógica de control + Registro de Estado
 Reg. Estado: Se escribe en cada flanco de reloj y es estable durante el 
ciclo
PCWrite
PCWriteCond
IorD
MemRead
MemWrite
IRWrite
Control logic MemtoReg
PCSource
ALUOp
Outputs ALUSrcB
ALUSrcA
RegWrite Estado
RegDst Siguiente
NS3
NS2
NS1
Inputs NS0
Op5

Op4

Op3

Op2

Op0
Op1

S3
S2

S1

S0

Instruction register State register


opcode field Estado
Actual

Estructura de Computadores - Tema 3 - Diseño del procesador 25


Control cableado – Ecuaciones de implement. de la FSM
Señal Control Ecuación lógica
NS3 -> (S3'S2'S1'S0) (OP5'OP4'OP3'OP2OP1'OP0') + (S3'S2'S1'S0) (OP5'OP4'OP3'OP2'OP1OP0') =
Estado 1 (op[5:0] = 'beq') + Estado 1 (op[5:0] = 'jmp')
NS2 -> Estado 1 (op[5:0] = 'R-format') + Estado 2 (op[5:0] = 'sw') + Estado 3 + Estado 6
NS1 -> Estado 1 (op[5:0] = 'lw') + Estado 1 (op[5:0] = 'sw') + Estado 1 (op[5:0] = 'R-format') +
Estado 2 (op[5:0] = 'lw') + Estado 2 (op[5:0] = 'sw') + Estado 6
NS0 -> Estado 0 + Estado 1 (op[5:0] = 'jmp') + Estado 2 (op[5:0] = 'lw') + Estado 2 (op[5:0] = 'sw') + Estado 6
PCWrite -> Estado 0 + Estado 9
PCWriteCond -> Estado 8
IorD -> Estado 3 + Estado 5
MemRead -> Estado 0 + Estado 3
MemWrite -> Estado 5
IRWrite -> Estado 0
MemToReg -> Estado 4
PCSource1 -> Estado 9
PCSource0 -> Estado 8
ALUOp1 -> Estado 6
ALUOp0 -> Estado 8
ALUSrcB1 -> Estado 1 + Estado 2
ALUSrcB0 -> Estado 0 + Estado 1
ALUSrcA -> Estado 2 + Estado 6 + Estado 8
RegWrite -> Estado 4 + Estado 7
RegDst -> Estado 7

Estructura de Computadores - Tema 3 - Diseño del procesador 26


Control cableado - Implementación de FSM con ROM

 Diseño unificado 
 Tamaño: 210 × 20 = 20Kb PCWrite
Tamaño: PCWriteCond
 6 bits código de operación + 4 bits de 
los estados = 210 posiciones de  20 Kbits vs 4.25 Kbits IorD
MemRead

memoria MemWrite
IRWrite
 16 salidas de control + 4 salidas de  Control logic MemtoReg
nuevo estado = 20 bits de anchura PCSource

 Diseño no unificado Outputs


ALUOp
ALUSrcB
 Tamaño: 4.25Kb ALUSrcA
 ROM de señales de salida RegWrite
RegDst
(Tamaño = 24 × 16 = 256b)
NS3
▫ 4 bits de los estados = 24 posiciones de  NS2
memoria NS1
Inputs NS0
▫ 16 salidas de control = 16 bits de 
anchura

Op5

Op3

Op1
Op4

Op2

Op0
 ROM de nuevo estado

S2

S0
S3

S1
(Tamaño 210 × 4 = 4Kb) Instruction register
r State register
opcode field
▫ 6 bits código de operación + 4 bits de 
los estados = 210 posiciones de 
memoria
▫ 4 salidas de nuevo estado = 4 bits de 
anchura

Estructura de Computadores - Tema 3 - Diseño del procesador 27


Control cableado - Implementación de FSM con PLA

Op5
 Tamaño de la PLA Op4

#inputs   × #minterms +  Op3

#outputs × #minterms =  Op2

Op1
(10 × 17) + (20 × 17) = 510 celdas Op0

S3

S2

S1

S0

PCWrite
PCWriteCond
IorD
MemRead
MemWrite
IRWrite
MemtoReg
PCSource1
PCSource0
ALUOp1
ALUOp0
ALUSrcB1
ALUSrcB0
ALUSrcA
RegWrite
RegDst
NS3
NS2
NS1
NS0

Estructura de Computadores - Tema 3 - Diseño del procesador 28


Control cableado

 Implementar el control cableado es sencillo en este caso porque el 
repertorio de instrucciones es reducido (apenas 9 instrucciones)

 Cuando el repertorio es completo, la implementación cableada es muy 
compleja porque:
 La MEF se compone de cientos de estados y transiciones
 El circuito se vuelve ininteligible

 En programación, cuando ocurre algo así se utilizan técnicas de 
programación modular (procedimientos y funciones) para abordar el 
problema y hacer los programas comprensibles….
 ¿Se podrán aplicar esas mismas técnicas en nuestro caso?

Estructura de Computadores - Tema 3 - Diseño del procesador 29


Contenidos

 Metodología de sincronización
 Diseño de un procesador MIPS R3000 reducido
 Rutas de datos individuales
 Diseño monociclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control de la ALU
▫ Diseño de la unidad de control
▫ Ventajas y desventajas
 Diseño multiciclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control
▪ Control cableado
▪ Control microprogramado
 Excepciones e interrupciones

Estructura de Computadores - Tema 3 - Diseño del procesador 30


Diseño de la UC – Control microprogramado

 Se definen instrucciones de control (microinstrucciones) que indican, de 
forma simbólica, qué señales de control deben estar activas en un 
determinado estado cuando se está ejecutando una instrucción.

 La ejecución de una microinstrucción tiene como efecto la activación de las 
señales de control especificadas en la propia microinstrucción.

 Las microinstrucciones también indican cuál es la siguiente microinstrucción 
a ejecutar, después de que termine la actual Información de 
secuenciamiento

Estructura de Computadores - Tema 3 - Diseño del procesador 31


Control unit PCWrite
 El control se especifica como un  PCWriteCond
IorD

programa (microprograma) que  Microcode memory MemRead


MemWrite
Datapath

IRWrite
está compuesto por instrucciones  Outputs
BWrite
MemtoReg

(microinstrucciones) que están  PCSource
ALUOp
ALUSrcB
almacenadas en una memoria  ALUSrcA
RegWrite

(memoria de microcódigo) Input
RegDst
AddrCtl

 Un registro (contador de  Microprogram counter

Adder
microprograma) indica cuál es la  Address select logic

siguiente microinstrucción a 

Op[5– 0]
ejecutar.
Instruction register
opcode field
Secuenciador
externo

Estructura de Computadores - Tema 3 - Diseño del procesador 32


Control microprogramado – Formato de la microinstrucción

 Formato de la microinstrucción. Definición de:
 Número de campos de la microinstrucción
 Significado de cada campo

 En cada campo se controla el valor que toman un cierto número de señales 
de control
 Asignación de señales de control disjunta en cada campo para evitar microinstrucciones 
incoherentes (Ej, que hacen que una señal tome 2 valores a la vez)

 Además de los campos que controlan las señales de control existirá un 
campo que define el secuenciamiento de las microinstrucciones
 Secuencial (Ej: del estado 0 siempre se pasa al estado 1 de la MEF)
 Dispatch dependiendo del código de operación (Ej: en el estado 1 de la MEF se abren  4 
posibilidades)
 Vuelta al estado inicial (Ej: al final de la ejecución de cada instrucción se vuelve siempre al 
estado 0, ¡ojo porque no es lo mismo que el caso secuencial!)

Estructura de Computadores - Tema 3 - Diseño del procesador 33


Control microprogramado – Formato de la microinstrucción

 7 campos: 6 campos de control + 1 campo de secuenciamiento
Control Control Control
SRC1 SRC2 Memoria Secuenciamiento
ALU Registro PCWrite

Nombre del cam po Función del campo Valores del cam po


Control ALU Especifica la operación que va a realizar la ALU add
durante el ciclo. subt
Func code
SRC1 Especifica la fuente para el primer operando de PC
la ALU A
SRC2 Especifica la fuente para el segundo operando B
de la ALU 4
Extend
ExtShft
Control Registro Especifica el número de registro y fuente del Read
dato que se escribe en el mismo Write ALU (rd <- ALUout)
Write MDR (rt <- MDR)
Memoria Especifica lectura o escritura y la fuente de la Read PC (IR <- M[PC])
dirección Read ALU (MDR <- M[ALUout]
Write ALU (M[ALUout] <- B)
Control PCW rite Especifica la escritura del PC ALU
ALUOut-Cond
Jump Address
Secuenciamiento Especifica la siguiente microinstrucción que se Seq
va a ejecutar Fetch
Dispatch i

Estructura de Computadores - Tema 3 - Diseño del procesador 34


Control microprogramado – Formato de la microinstrucción

 7 campos: 6 campos de control + 1 campo de secuenciamiento
Control Control Control
SRC1 SRC2 Memoria Secuenciamiento
ALU Registro PCWrite
Instruction decode/
Instruction fetch
Nom bre del campo Valores del campo 0
register fetch
MemRead 1
Control ALU add ALUSrcA= 0
subt IorD= 0 ALUSrcA=0
Start IRWrite ALUSrcB= 11
Func code ALUSrcB=01 ALUOp=00
ALUOp =00
SRC1 PC PCWrite
A PCSource=00

(Op = 'J')
SRC2 B Memory address Branch Jump
4 computation Execution completion completion
Extend 2 6 8 9
ALUSrcA=1
ExtShft ALUSrcA= 1 ALUSrcA=1 ALUSrcB= 00
PCWrite
ALUSrcB=10 ALUOp =01
Control Registro Read ALUOp =00
ALUSrcB=00
ALUOp= 10 PCWriteCond
PCSource=10
Write ALU (rd <- ALUout) PCSource=01
Write MDR (rt <- MDR)

(Op = 'LW')
Mem oria Read PC (IR <- M[PC])
Read ALU (MDR <- M[ALUout] Memory Memory
Write ALU (M[ALUout] <- B) access access R-type completion
3 5 7
Control PCW rite ALU
RegDst =1
ALUOut-Cond MemRead MemWrite RegWrite
Jump Address IorD=1 IorD= 1 MemtoReg =0

Secuenciam iento Seq


Fetch
Dispatch i Write-back step
4

RegDst=0
RegWrite
MemtoReg=1

Estructura de Computadores - Tema 3 - Diseño del procesador 35


Control microprogramado – Señales asociadas a los
campos y valores

C o n tr o l A L U SRC1 SRC2
O p e r a c ió n O p e r a c ió n O p e ra c ió n
ALUop1 ALU O p0 A d d rS rc A A L U S rB 1 A L U S rc B 0
0 0 Sum a 0 PC 0 0 B
0 1 R e s ta 1 A
0 1 4
1 0 Func. code 1 0 E x te n d
1 1 E x tS h ft

R e g is te r C o n tr o l M e m o ria
O p e r. O p e r.
R e g W r ite R egD st M em ToR eg IR W rite M em Read M e m W rite Io rD
1 1 0 W rite A L U 1 1 0 0 Read PC
1 0 1 W rite M D R 0 1 0 1 Read ALU
0 0 1 1 W rite A L U

Control PCWrite Sec


Oper. O p e ra c ió n
PCSrc1 PcSrc0 PCwrite PCWrtCond A d d rC tl1 A d d rC tl0
1 1 Seq.
0 0 1 0 ALU
0 0 F e tc h
0 1 0 1 ALUOut-Cond
0 1 D is p a tc h 1
1 0 1 0 Jump address
1 0 D is p a tc h 2

Estructura de Computadores - Tema 3 - Diseño del procesador 36


Diseño de la UC – Control microprogramado

 El estado siguiente es  Control unit PCWrite


PCWriteCond
IorD

frecuentemente el estado  Microcode memory MemRead


MemWrite
IRWrite
Datapath

actual + 1 Outputs
BWrite
MemtoReg
PCSource
ALUOp
ALUSrcB
ALUSrcA

 Las señales de control están  RegWrite
RegDst
AddrCtl
Input

almacenadas en una  1

memoria Adder
Microprogram counter

Address select logic

Op[5– 0]
Instruction register
opcode field
Secuenciador
externo

Estructura de Computadores - Tema 3 - Diseño del procesador 37


Control microprogramado – Secuenciador del
microprograma

 La lógica de selección de direcciones genera la dirección de la 
siguiente microinstrucción a ejecutar
Sec
O p e ra c ió n
A d d rC tl1 A d d rC tl0
1 1 Seq.
PLA or ROM 0 0 F e tc h
0 1 D is p a tc h 1
1
1 0 D is p a tc h 2
State

Adder

Mux AddrCtl
3 2 1 0

Dispatch ROM 2 Dispatch ROM 1

Address select logic


Dispatch ROM1
Dispatch ROM2 Op Op [5:0] Nombre Valor
Instruction register
Op [5:0] Nombre Valor opcode field 000000 R-Format R-Format1 (6)
100011 lw LW2 (3) 000010 jmp JUMP1 (9)
101011 sw SW2 (5) 000100 beq BEQ1 (8)
100011 lw MEM1 (2)
101011 sw MEM1 (2)

Estructura de Computadores - Tema 3 - Diseño del procesador 38


Contenidos

 Metodología de sincronización
 Diseño de un procesador MIPS R3000 reducido
 Rutas de datos individuales
 Diseño monociclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control de la ALU
▫ Diseño de la unidad de control
▫ Ventajas y desventajas
 Diseño multiciclo
▫ Diseño de la ruta de datos
▫ Diseño de la unidad de control
▪ Control cableado
▪ Control microprogramado
 Excepciones e interrupciones

Estructura de Computadores - Tema 3 - Diseño del procesador 39


Excepciones e interrupciones

 Definiciones
 Eventos inesperados que cambian el flujo normal de ejecución de las 
instrucciones
 Excepción
▫ Evento que tiene su origen en el interior del procesador (desbordamiento 
aritmético, instrucción ilegal, etc.)
 Interrupción
▫ Evento que tiene su origen en el exterior del procesador (dispositivos de 
entrada/salida, fallo de página, etc.)
Tipo de evento ¿Desde dónde? Terminología MIPS
Petición desde dispositivo E/S Exterior Interrupción
Llamada al Sistema Operativo Interior Excepción
desde el programa de usuario
Desbordamiento aritmético Interior Excepción
Instrucción ilegal o no definida Interior Excepción
Fallo hardware Cualquiera Excepción/interrupción

Estructura de Computadores - Tema 3 - Diseño del procesador 40


Tratamiento de excepciones en MIPS

 Las acciones básicas a realizar son:
 Guardar la dirección de la instrucción causante en el registro Contador de 
Programa de Excepciones (EPC)
 Registrar la causa de la excepción en el Registro Cause
 Transferir el control al Sistema Operativo en alguna dirección 
especificada  (0xC00000000) donde se tratará la excepción (ejecución de 
una rutina de servicio)
Programa
Interrupción
Rutina de servicio
de la interrupción
Salto a rutina de servicio

Retorno de la rutina de servicio

Estructura de Computadores - Tema 3 - Diseño del procesador 41


Implementación de excepciones en MIPS

 Excepciones a implementar
 Desbordamiento aritmético 
 Instrucción ilegal o no definida
 Registros adicionales requeridos
 EPC: Registro de 32 bits para guardar la dirección de la instrucción 
causante de la excepción
 CAUSE: Registro de 32 bits para registrar la causa de la excepción. 
Utilizaremos sólo el bit menos significativo
▫ bit 0 = 0 → Instrucción ilegal
▫ bit 0 = 1 → Desbordamiento aritmético
 Señales de control adicionales
 Intcause (0: instrucción ilegal ‐ 1: desbordamiento)
 CauseWrite (1: escritura en el registro CAUSE ‐ 0: no escribe)
 EPCWrite (1: escritura en el registro EPC ‐ 0: no escribe)
 Constante: C000 0000 0000 0000 (dirección a donde se transfiere el 
control cada vez que se interrumpe)
Estructura de Computadores - Tema 3 - Diseño del procesador 42
Especificación de la UC con soporte de excepciones

Instruction decode/
Instruction fetch Register fetch
0
MemRead 1
ALUSrcA = 0
IorD = 0 ALUSrcA = 0
IRWrite ALUSrcB = 11
Start ALUSrcB = 01
ALUOp = 00 ALUOp = 00
PCWrite
PCSource = 00

(Op = 'J')
Memory address Branch Jump
computation Execution completion completion
2 6 8 9
ALUSrcA = 1
ALUSrcA = 1 ALUSrcA = 1 ALUSrcB = 00
ALUSrcB = 00 ALUSrcB = 00 PCWrite
ALUOp = 01
ALUOp = 00 ALUOp = 10 PCSource = 10
PCWriteCond
PCSource = 01
(Op = 'LW')

Memory Memory
access access R-type completion IntCause = 1 IntCause = 0
3 5 7 11 10 CauseWrite
CauseWrite
RegDst = 1 ALUSrcA = 0 ALUSrcA = 0
MemRead MemWrite RegWrite Overflow ALUSrcB = 01 ALUSrcB = 01
IorD = 1 IorD = 1 ALUOp = 01 ALUOp = 01
MemtoReg = 0
EPCWrite EPCWrite
PCWrite PCWrite
PCSource = 11 PCSource = 11

Write-back step
4 Overflow

RegWrite
MemtoReg = 1
RegDst = 0

Estructura de Computadores - Tema 3 - Diseño del procesador 43


Ruta de datos con soporte de excepciones

PCWriteCond CauseWrite
IntCause
PCWrite EPCWrite
IorD Outputs
PCSource
MemRead ALUOp
Control ALUSrcB
MemWrite
ALUSrcA
MemtoReg
RegWrite
Op
IRWrite [5– 0] RegDst
0

Jump 1M
Instruction [25– 0] 26 28 address [31-0]
u
Shift x
left 2 2
Instruction CO 00 00 00 3
[31-26] PC [31-28]
PC 0 0
M Instruction Read
[25– 21] register 1 M
u Address u
x Read x
Memory Instruction Read A Zero
1 [20– 16] register 2 data 1 1
MemData 0 ALU ALU ALUOut EPC
Registers
Instruction M Write Read result
[15– 0] register data 2 B
Instruction u 0
Write [15– 11] x
data
Instruction Write 4 1M
register 1 data u
2x
Instruction 0 3 0 0
[15–0] M M
u u Cause
x x
Memory 1 1 1
data 16 32 ALU
register Sign Shift
extend left 2 control

IntCause = 1 IntCause = 0
Instruction [5–0] 11 10 CauseWrite
CauseWrite
ALUSrcA = 0 ALUSrcA = 0
ALUSrcB = 01 ALUSrcB = 01
ALUOp = 01 ALUOp = 01
EPCWrite EPCWrite
PCWrite PCWrite
PCSource = 11 PCSource = 11

Al estado 0

Estructura de Computadores - Tema 3 - Diseño del procesador 44


Ruta de datos con soporte de excepciones

Instruction decode/
Instruction fetch Register fetch
0
MemRead 1
ALUSrcA = 0
IorD = 0 ALUSrcA = 0
IRWrite ALUSrcB = 11
Start ALUSrcB = 01
ALUOp = 00 ALUOp = 00
PCWrite
PCSource = 00

(Op = 'J')
Memory address Branch Jump
computation Execution completion completion
2 6 8 9
ALUSrcA = 1
ALUSrcA = 1 ALUSrcA = 1 ALUSrcB = 00
ALUSrcB = 00 ALUSrcB = 00 PCWrite
ALUOp = 01
ALUOp = 00 ALUOp = 10 PCSource = 10
PCWriteCond
PCSource = 01
(Op = 'LW')

Memory Memory
access access R-type completion IntCause = 1 IntCause = 0
3 5 7 11 10 CauseWrite
CauseWrite
RegDst = 1 ALUSrcA = 0 ALUSrcA = 0
MemRead MemWrite RegWrite Overflow ALUSrcB = 01 ALUSrcB = 01
IorD = 1 IorD = 1 ALUOp = 01 ALUOp = 01
MemtoReg = 0
EPCWrite EPCWrite
PCWrite PCWrite
PCSource = 11 PCSource = 11

Write-back step
4 Overflow

RegWrite
MemtoReg = 1
RegDst = 0

Estructura de Computadores - Tema 3 - Diseño del procesador 45


Instrucciones para excepciones en MIPS

 mfc0 $rt, $rd (move from coprocesador 0)


 Transfiere la información desde el registro de propósito general $rd al registro de 
propósito especial  $rt (0 para CAUSE, 1 para EPC) 
 Tipo R
▫ 010000 0000 ttttt ddddd 00000000000
 mtc0 $rd, $rt (move to coprocesador 0)
 Transfiere la información desde el registro de propósito especial $rt (0 para 
CAUSE, 1 para EPC) al registro de propósito general $rd
 Tipo R
▫ 010000 0100 ttttt ddddd 00000000000
 rfe (return from exception)
 Transfiere el contenido del EPC al registro contador de programa
 Tipo J
▫ 010000 10000000000000000000100000

Estructura de Computadores - Tema 3 - Diseño del procesador 46


Diseño del procesador: técnicas avanzadas

 El diseño de procesadores reales se realiza con técnicas 
avanzadas:
 Segmentación  ejecutar varias instrucciones simultáneamente
▫ Cada una en una etapa diferente
 Multiple issue  lanzar a ejecutar varias instrucciones simultáneamente
▫ Estático 
▫ Dinámico 
 Ejecución especulativa  evitar las esperas y aprovechar el tiempo

Estructura de Computadores - Tema 3 - Diseño del procesador 47


Segmentación

 Dividir la ejecución de las instrucciones en etapas y solapar la 
ejecución de etapas diferentes de instrucciones distintas
 Ejemplo: solapar las tareas en una lavandería

 4 lavados:
 𝑆𝑝𝑒𝑒𝑑𝑢𝑝 ⁄ , 2,3
 N lavados:
 𝑆𝑝𝑒𝑒𝑑𝑢𝑝 4
 Mejora = nº etapas
 si las etapas duran
todas igual

Estructura de Computadores - Tema 3 - Diseño del procesador 48


Segmentación de la ejecución de instrucciones

 5 etapas: IF, ID, EX, MEM, WB

Monociclo (Tc= 800ps)

 1000 instrucciones:
 𝑇𝑐𝑝𝑢 1000 ∗ 800
8 10 𝑝𝑠

Segmentado (Tc= 200ps)

 1000 instrucciones:
 𝑇𝑐𝑝𝑢 5 ∗ 200 999 ∗
200 1000 199800
200800 𝑝𝑠
 𝑆𝑝𝑒𝑒𝑑𝑢𝑝 4

Estructura de Computadores - Tema 3 - Diseño del procesador 49


Segmentación de la ejecución de instrucciones

 Problemas  Riesgos por dependencias
 Estructurales: garantizar suficientes unidades funcionales para poder 
ejecutar las distintas etapas en paralelo
 De datos: una instrucción necesita un dato que genera una instrucción 
anterior
Add $s0, $t0, $t1
Sub $t2, $s0, $t3
▫ Soluciones hw: detener la ejecución del sub o anticipar el dato
▫ Soluciones sw: reordenar el código para evitar que ocurra
 De control: un salto no sabemos si se tomará o no y se deben seguir 
cargando instrucciones
▫ Soluciones:
▪ Parar la ejecución hasta saber si se tomará el salto  disminuye speedup
▪ Predecir si el salto se tomará o no  si no acierta hay que descartar 
instrucciones ya ejecutadas
• Predicción estática o dinámica

Estructura de Computadores - Tema 3 - Diseño del procesador 50


Multiple Issue

 Se lanzan a ejecutar varias instrucciones en cada ciclo de reloj


 Cada una de ellas de forma segmentada
 Se replican las etapas del pipeline  múltiples pipelines
 Cómo se encuentran las instrucciones que se lanzan a ejecutar en cada ciclo?
 Estáticamente – el compilador lo hace en tiempo de compilación
 Dinámicamente – el hardware lo hace en tiempo de ejecución

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

Estructura de Computadores - Tema 3 - Diseño del procesador 51


Multiple Issue Estático

 Procesadores VLIW (Very Long Instruction Word)


 La planificación del código la realiza el compilador
 Agrupa las instrucciones que se deben lanzar a ejecutar juntas, las 
empaqueta en una instrucción “ancha”
 Para encontrar instrucciones que empaquetar juntas uso de loop
unrolling, register renaming (para eliminar dependencias no verdaderas)
 El compilador detecta y evita los riesgos

Address Instruction type Pipeline Stages


n ALU/branch IF ID EX MEM WB
n+4 Load/store IF ID EX MEM WB
n+8 ALU/branch IF ID EX MEM WB
n + 12 Load/store IF ID EX MEM WB
n + 16 ALU/branch IF ID EX MEM WB
n + 20 Load/store IF ID EX MEM WB

Estructura de Computadores - Tema 3 - Diseño del procesador 52


Multiple Issue Dinámico

 Procesadores superescalares
 La CPU examina el conjunto de instrucciones y elige las 
instrucciones que se lanzan a ejecutar en cada ciclo de reloj
 Se denomina planificación dinámica
 Se hace en tiempo de ejecución (usando reorder buffer)
 Las instrucciones se ejecutan fuera de su orden original (commit en 
orden)
 El compilador puede ayudar reordenando las instrucciones en tiempo de 
compilación
 Los riesgos se resuelven utilizando técnicas avanzadas

Estructura de Computadores - Tema 3 - Diseño del procesador 53


Ejecución especulativa

 En numerosos casos es necesario esperar hasta tener el 
resultado de una operación que condiciona lo que se hará a 
continuación
 En lugar de esperar, predecimos lo que ocurrirá y actuamos en 
consecuencia  Ejecución especulativa 
▫ Saltos – predecir resultado de salto y seguir por esa rama ejecutando 
instrucciones de forma especulativa hasta conocer el resultado del salto
▫ Valores – predecir el valor que viene de memoria antes de tenerlo y trabajar 
con ese valor
 Si la predicción fue buena  hemos ahorrado tiempo de ejecución
 Si la predición fue errónea  no hemos perdido nada (igualmente 
debíamos esperar)
▫ Se desecha lo ejecutado especulativamente y se sigue adelante

Estructura de Computadores - Tema 3 - Diseño del procesador 54


¿Qué viene a continuación?

 Tema 1: Arquitectura del repertorio de instrucciones
 Tema 2: Lenguaje ensamblador. Programación
 Tema 3: Diseño del procesador. Técnicas de implementación
 Tema 4: Definición y evaluación del rendimiento de un 
computador
 Tema 5: Jerarquía de memoria del sistema computador. Niveles. 
Influencia en el rendimiento
 Tema 6: Subsistema de entrada‐salida del sistema computador

Estructura de Computadores - Tema 3 - Diseño del procesador 55


Ejercicio

 Añadir la instrucción lw $rd, $rt($rs) al diseño del procesador 
multiciclo con el control especificado como una FSM.
PCWriteCond PCSource
PCWrite
ALUOp
IorD Outputs
ALUSrcB
MemRead
Control ALUSrcA
MemWrite
RegWrite
MemtoReg
Op RegDst
IRWrite [5– 0]
0
M
Jump 1 u
Instruction [25– 0] 26 28 address [31-0] x
Shift
2
left 2
Instruction
[31-26] PC [31-28]
PC 0 0
M Instruction Read
[25– 21] register 1 M
u Address u
x Read x
Instruction Read A Zero
1 Memory
[20– 16] register 2 data 1 1
0 ALU ALU ALUOut
MemData Registers
Instruction M Write result
Read B
[15– 0] Instruction u register data 2 0
Write Instruction [15– 11] x 4 1 M
data Write
register 1 data u
2 x
Instruction 0 3
[15– 0] M
u
x
Memory 1
data 16 32 ALU
Sign Shift
register control
extend left 2

Instruction [5– 0]

Estructura de Computadores - Tema 3 - Diseño del procesador 56


Ejercicio

 Añadir la instrucción lw $rd, $rt($rs) al diseño del procesador 
multiciclo con el control especificado como una FSM.
Instruction decode/
Instruction fetch register fetch
0
MemRead 1
ALUSrcA = 0
IorD = 0 ALUSrcA = 0
Start IRWrite ALUSrcB = 11
ALUSrcB = 01 ALUOp = 00
ALUOp = 00
PCWrite
PCSource = 00

(Op = 'J')
Memory address Branch
computation Jump
Execution completion completion
2 6 8 9
ALUSrcA = 1
ALUSrcA = 1 ALUSrcA =1 ALUSrcB = 00
ALUSrcB = 10 PCWrite
ALUSrcB = 00 ALUOp = 01
ALUOp = 00 PCSource = 10
ALUOp = 10 PCWriteCond
PCSource = 01
(Op = 'LW')

Memory Memory
access access R-type completion
3 5 7

RegDst = 1
MemRead MemWrite RegWrite
IorD = 1 IorD = 1 MemtoReg = 0

Write-back step
4

RegDst = 0
RegWrite
MemtoReg =1

Estructura de Computadores - Tema 3 - Diseño del procesador 57

También podría gustarte