Está en la página 1de 52

Tema 3.

 Diseño del procesador
3.1. Diseño del procesador monociclo

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
 5th Edition  Secciones 4.1 a 4.4
 4ª Edición  Secciones 4.1 a 4.4
 3th Edición  Secciones 5.1 a 5.4

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


Metodología de Sincronización

 La metodología de sincronización define cuándo pueden leerse 
y escribirse las diferentes señales
 Características de la metodología de sincronización por flanco
 Un elemento de estado puede ser actualizado sólo en el flanco de reloj
 Un elemento de estado puede ser leído y modificado en un mismo ciclo
 Señales de habilitación de escritura explícitas

State State
Combinational
element element
logic
1 2

clock

one clock cycle

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


Estructura del tema

 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 6


Conocimientos previos: ISA MIPS

 Registros 
 32 registros de propósito general, de 32 bits cada uno. ($0, $1, ..., $31)
 Memoria 
 Direccionable por bytes en modo “big endian”
 Direcciones de 32 bits
 Modo de direccionamiento
 registro base + desplazamiento [100($1)]

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


Conocimientos previos: ISA MIPS

 Repertorio de instrucciones 
 longitud fija de 32 bits 
 3 tipos de instrucciones 
▫ aritmético‐lógicas: add, sub, and, or, slt add $1, $2, $3
▫ de referencia a memoria: lw, sw lw $1, 100($2)
▫ Saltos (condicionales o no): beq, j beq $1, $2, 48
 3 formatos
▫ formato R op rs rt rd shamt funct
▫ formato I op rs rt desplazamiento
▫ formato J
op dirección

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


8
Estructura del tema

 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 9


Ciclo de instrucción

 Ciclo de instrucción
 Lectura de la instrucción M[PC]
 Decodificación de la instrucción y lectura de los registros
 Ejecución de la instrucción

 Ejecución de instrucciones: Pasos
 Común
▫ Leer instrucción de la memoria con el PC
▫ Leer registros especificados en la instrucción
 Similar
▫ Utilizar la ALU
 Diferente
▫ Terminación de ejecución de instrucción

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


Rutas de datos individuales – Búsqueda de la instrucción

 Lectura de la memoria de instrucciones
 Actualización del PC a la siguiente instrucción

Add
4

Instruction
Memory
Read
PC Instruction
Address

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


Rutas de datos individuales – Decodificación y lectura de
registros

 Envío de los campos de código de operación y función a la 
unidad de control
 Lectura del banco de registro de los registros $rs y $rt

Control
Unit

Read Addr 1
Read
Register
Read Addr 2 Data 1
Instruction
File
Write Addr
Read
Data 2
Write Data

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


Rutas de datos individuales – Aritmético-lógicas

 add, sub, and, or y slt

 add rd, rs, rt
Ejemplo:  add $8, $9, $10  $8=$9+$10
 Formato tipo R
 op y funct especifican la operación aritmético‐lógica

31 25 20 15 10 5 0
R-type: op rs rt rd shamt funct

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


Rutas de datos individuales – Aritmético-lógicas

 Escribir en el registro $rd del banco de registros el valor que 
está en la salida de la ALU

RegWrite ALU control

Read Addr 1
Register Read
Read Addr 2 Data 1 overflow
Instruction
File zero
ALU
Write Addr Read
Data 2
Write Data

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


Instrucciones de acceso a memoria

 lw y sw
 lw rt, despl(rs) ó  sw rt, despl(rs)
Ejemplos: lw $1, 24($2)  $1= Mem[$2+24]
sw $1, 24($2)  Mem[$2+24]= $1
 Formato tipo I

op rs rt desplazamiento

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


Rutas de datos individuales – Cargas y almacenamientos

 Cálculo de la dirección de memoria
 address  $rs + extensión‐signo(IR[15:0])
 Carga de un registro (load)
 $rt  M[$rs + extensión‐signo(IR[15:0])]
 Almacenamiento de un registro (store)
 M[$rs + extensión‐signo(IR[15:0])]  $rt
RegWrite ALU control MemWrite

overflow
Read Addr 1 zero
Register Read Address
Read Addr 2 Data 1
Instruction Data
File Memory Read Data
ALU
Write Addr
Read
Data 2 Write Data
Write Data

Sign MemRead
16 Extend 32

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


Instrucción de salto condicional

 beq rs, rt, despl
 Ejemplo: 
beq $1, $2, despl  si ($1=$2) PC=PC+despl
 Formato tipo I

op rs rt desplazamiento

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


Instrucción de salto condicional

 Restar $rs y $rt y comprobación de la señal zero de la ALU


 Cálculo de la dirección efectiva de salto
 address  PC + 4 + (extensión‐signoIR[15:0])<<2

Add Branch
Add target
4 Shift address
left 2

ALU control
PC

Read Addr 1 zero (to branch


Register
Read control logic)
Instruction Read Addr 2 Data 1
File
ALU
Write Addr

Write Data

Sign
16 Extend 32

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


Instrucción de salto incondicional

 j dirección
Ejemplo:
j 1000  PC = PC[31‐28] + 1000[27‐2]+00[1‐0]
 Formato tipo J

op dirección

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


Rutas de datos individuales – Bifurcaciones

 Reemplazo del PC por la dirección efectiva de salto
 PC  PC[31:28] || (IR[25:0]<<2)

Add
4
4
Jump
Instruction Shift address
Memory
left 2 28
Read
PC Instruction
Address 26

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


Estructura del tema

 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


Diseño monociclo

Tcpu = N ꞏ CPI ꞏ tciclo

Depende del compilador y Dependen de la organización


de la arquitectura del e implementación del
repertorio de instrucciones procesador

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


Diseño monociclo

 Diseño de un circuito que sea capaz de ejecutar todas las 
instrucciones Integración de las rutas de datos individuales
 Recursos hardware + multiplexores + señales de control + restricciones 
de diseño
 Restricción de diseño
 Todas las instrucciones tardan un único ciclo de reloj
 La instrucción más lenta determina el tiempo de ciclo
 Ningún componente de la ruta de datos puede ser reutilizado
▫ Memorias separadas de instrucciones y datos
▫ Sumadores varios…

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


Diseño de la RD - Integración tipo R y memoria

Add

Banco de Registros
Operación
Registro 3 MemWrite
ALU
Dirección a lectura 1 Dato
PC leer Registro leído 1
ALU Memoria de MemtoReg
lectura 2 Zero Datos
Instrucción
Registro a Dato result Dato
Escribir leído 2 M ALU
Dirección
leído
Memoria de u M
Instrucciones Dato a x u
Escribir x
Dato a
RegWrite escribir
16 32 ALUSrc
Extensión
de MemRead
signo

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


Diseño de la RD - tipo R + lw/sw + beq

M
Add u
x
4 Add
Desplaz. PCSrc
izq. 2

Banco de Registros Operación


3 MemWrite
Dirección a Registro ALU
PC leer lectura 1 Dato
Registro leído 1 ALU Memoria de MemtoReg
lectura 2 Zero Datos
Instrucción
Registro a Dato result Dirección Dato
escribir leído 2 M ALU leído M
Memoria de u u
Instrucciones Dato a x
Escribir x
Dato a
RegWrite escribir
16 32 ALUSrc
Extensión MemRead
de
signo

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


Diseño de la RD - tipo R + lw/sw + beq + j

Instrucción[25-0] 28 32
Desplaz.
izq. 2
26
M
u
PC+4 [31-28] x
M
Add u
x
4 Add result PCSrc2
ALU

Desplaz.
PCSrc1
izq. 2

Banco de Registros
Operación MemWrite
Registro 3
ALU
Dirección a leer lectura 1
PC Dato
leído 1 MemtoReg
Registro Memoria de Datos
lectura 2 Zero
Instrucción ALU
Dato result Dato
Registro ALU Dirección
a escribir leído 2 M leído
u M
Memoria de u
Dato a x
Instrucciones x
escribir
Dato a
RegWrite escribir
32 ALUSrc
16 Extensión
de MemRead
signo

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


Señales de control

 Selección de la operación a realizar
 Operación ALU: ALUControl
 Escritura y lectura del banco de registros: RegWrite
 Escritura y lectura de las memorias: MemRead, MemWrite
 Selección de entradas de los multiplexores (flujo de datos)
 ALUSrc, MemToReg
 ¿Y el número del registro destino de donde viene?
31 25 20 15 10 5 0
R-type: op rs rt rd shamt funct
31 25 20 15 0
I-Type: op rs rt address offset
31 25 0
J-type: op target address

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


Integración RD + UC

0
Add
Add 1
4 Shift
left 2 PCSrc
ALUOp
Branch
MemRead
Instr[31-26] Control MemtoReg
Unit MemWrite
ALUSrc

RegWrite
RegDst
ovf
Instr[25-21] Read Addr 1
Instruction
Memory Register Read Address
Instr[20-16] Read Addr 2 Data 1 zero
Read Data
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1

Instr[15-0] Sign ALU


16 Extend 32 control

Instr[5-0]

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


Flujo de datos y control para instrucciones tipo R

0
Add
Add 1
4 Shift
left 2 PCSrc
ALUOp
Branch
MemRead
Instr[31-26] Control MemtoReg
Unit MemWrite
ALUSrc

RegWrite
RegDst
ovf
Instr[25-21] Read Addr 1
Instruction
Memory Register Read Address
Instr[20-16] Read Addr 2 Data 1 zero
Read Data
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1

Instr[15-0] Sign ALU


16 Extend 32 control

Instr[5-0]

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


Flujo de datos y control para instrucciones lw

0
Add
Add 1
4 Shift
left 2 PCSrc
ALUOp
Branch
MemRead
Instr[31-26] Control MemtoReg
Unit MemWrite
ALUSrc

RegWrite
RegDst
ovf
Instr[25-21] Read Addr 1
Instruction
Memory Register Read Address
Instr[20-16] Read Addr 2 Data 1 zero
Read Data
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1

Instr[15-0] Sign ALU


16 Extend 32 control

Instr[5-0]

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


Flujo de datos y control para instrucción beq

0
Add
Add 1
4 Shift
left 2 PCSrc
ALUOp
Branch
MemRead
Instr[31-26] Control MemtoReg
Unit MemWrite
ALUSrc

RegWrite
RegDst
ovf
Instr[25-21] Read Addr 1
Instruction
Memory Register Read Address
Instr[20-16] Read Addr 2 Data 1 zero
Read Data
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1

Instr[15-0] Sign ALU


16 Extend 32 control

Instr[5-0]

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


Flujo de datos y control para instrucción j
Instr[25-0] 1
Shift
28 32
26 left 2 0
PC+4[31-28]
Add 0
Add 1
4 Shift
left 2 PCSrc
Jump
ALUOp Branch
MemRead
Instr[31-26] Control MemtoReg
Unit MemWrite
ALUSrc

RegWrite
RegDst
ovf
Instr[25-21] Read Addr 1
Instruction Read Address
Memory Register
Instr[20-16] Read Addr 2 Data 1 zero
Data
Read
PC Instr[31-0] 0 File
ALU Memory Read Data 1
Address Write Addr
1 Read 0
Instr[15 Data 2 Write Data 0
Write Data
-11] 1

Instr[15-0] Sign
ALU
16 Extend 32 control

Instr[5-0]

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


Esquema alternativo (sin instrucción j)

 Camino de datos con todos los multiplexores y líneas de control 
necesarias (según figura del libro de texto)
PCSrc

0
Add M
u
x
4 ALU
Add result 1

RegWrite Shift
left 2
Instruction [25– 21] Read
Read register 1 Read MemWrite
PC data 1
address Instruction [20– 16] Read ALUSrc MemtoReg
Instruction register 2 Zero
0 Read ALU ALU
[31– 0] Write data 2 0 Read
M result Address 1
u register M data
Instruction Instruction [15– 11] x u M
memory Write x u
1 data Registers 1 x
Write Data 0
RegDst data memory
Instruction [15– 0] 16 Sign 32
extend ALU MemRead
control
Instruction [5– 0]

ALUOp

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


Estructura del tema

 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 34


Diseño de la UC de la ALU: visión completa

 Camino de datos con la unidad principal de control y la unidad 
local de control de la ALU
0
M
u
x
ALU
Add result 1
Add Shift PCSrc
RegDst left 2
4 Branch
MemRead
Instruction [31 26] MemtoReg
Control ALUOp
MemWrite
ALUSrc
RegWrite

Instruction [25 21] Read


PC Read register 1
address Read
Instruction [20 16] Read data1
register 2 Zero
Instruction 0 Registers Read ALU ALU
[31–0] Write 0 Read
M data2 result Address data 1
Instruction u register M M
memory x u u
Instruction [15 11] Write x
1 data Data x
1 memory 0
Write
data
Instruction [15 0] 16 32
Sign
extend ALU
control
Instruction[5 0]

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


Diseño de la UC de la ALU – Estructura de la ALU

 Operaciones básicas (solo usaremos 5 de las 8 posibles)


Binvert Operation
A L U o p e r a ti o n CarryIn

a
0
a

Z ero 1

ALU R e s u lt
Result
O v e r f lo w b 0 2
b 1

Less 3

C a rry O u t
a.
CarryOut
Entradas de control
FUNCIÓN
(ALUctr)
000 AND
001 OR
010 ADD
110 SUB
111 SLT

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


Diseño de la UC de la ALU – Especificación

 Operaciones a realizar según la instrucción 
 Load (lw) y store (sw): Suma($rs + extensión‐signo(IR[15:0]))
 Salto (beq): Resta($rs‐$rt)
 Aritméticas (tipo R: add, sub, or, and y slt): Definida por el campo funct

Entradas de control
Cod. Op. ALUop Instrucción FUNCT Op. deseada
de la ALU (ALUctr)
LW 00 Carga XXXXXX suma 010
SW 00 Almacena XXXXXX suma 010
Branch Equal 01 salto XXXXXX resta 110
R-Type 10 suma 100000 suma 010
R-Type 10 resta 100010 resta 110
R-Type 10 AND 100100 and 000
R-Type 10 OR 100101 or 001
R-Type 10 set on less than 101010 set on less than 111

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


Diseño de la UC de la ALU: Tabla de verdad
ALUop funct ALUctr
ALUop1 ALUop0 F5 F4 F3 F2 F1 F0 bit2 bit1 bit0
0 0 x x x x x x 0 1 0
x 1 x x x x x x 1 1 0
1 x x x 0 0 0 0 0 1 0
1 x x x 0 0 1 0 1 1 0
1 x x x 0 1 0 0 0 0 0
1 x x x 0 1 0 1 0 0 1
1 x x x 1 0 1 0 1 1 1

31 26 21 16 11 6 0
Instrucción Tipo R: op rs rt rd shamt funct
6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

func funct<3:0> Instruction Op.


ALU ALUctr
op Main 6 0000 add
ALUop Control 3
6 Control 0010 subtract
(Local)
N 0100 and

ALU
0101 or
1010 set-on-less-than

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


Diseño de la UC de la ALU - Implementación
ALUop funct Operación (ALUctr)
ALUop1 ALUop0 F5 F4 F3 F2 F1 F0 bit2 bit1 bit0
0 0 x x x x x x 0 1 0
x 1 x x x x x x 1 1 0
1 x x x 0 0 0 0 0 1 0
1 x x x 0 0 1 0 1 1 0
1 x x x 0 1 0 0 0 0 0
1 x x x 0 1 0 1 0 0 1
1 x x x 1 0 1 0 1 1 1

ALUOp
ALU control block
ALUOp0
ALUOp1

Operation2
F3
Operation
F2 Operation1
F (5– 0)
F1
Operation0
F0

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


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 40


Diseño de la UC – Señales de control
Tipo R: op rs rt rd shamt funct
Bits: 31-26 25-21 20-16 15-11 10-6 5-0

Tipo I: op rs rt Inmediato16
Bits: 31-26 25-21 20-16 15-0

Tipo J: op Dirección
Bits: 31-26 26-0

PCSrc

0
Add M
u
x
4 ALU
Add result 1
RegWrite Shift
left 2
Instruction [25–21] Read
Read register 1 Read MemWrite
PC data 1
address Instruction [20–16] Read ALUSrc MemtoReg
Instruction register 2 Zero
0 Read ALU ALU
[31–0] Write data 2 0 Read
M result Address 1
u register M data
Instruction Instruction [15–11] x u M
memory Write x u
1 data Registers 1 x
Write Data 0
RegDst data memory
Instruction [15–0] 16 Sign 32
extend ALU MemRead
control
Instruction [5–0]

ALUOp

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


Diseño de la UC – Funcionalidad de las señales
Señal Acción cuando es desactivada (0) Acción cuando se activa (1)
El registro destino para las escrituras viene del El registro destino para las escrituras viene del campo
RegDst
campo rt (bits 20-16) rd (bits 15-11)
Ninguno Escribe el dato en "WriteData" en el registro dado por
RegWrite
"WriteRegister".
El segundo operando de la ALU viene del banco de El segundo operando de la ALU son los 16 bits menos
AluSrc
registro (salida 2) significativos de la instrucción extendidos en signo
Selecciona PC+4 como nuevo valor del PC Selecciona la dirección de salto computada como nuevo
PCSrc
valor del PC
Ninguna Escribe en la dirección de memoria "Address" el dato
MemWrite
"WriteData"
Ninguna Lee un dato de la dirección de memoria "Address" y lo
MemRead
deja en la salida "ReadData"
El valor a realimentar al campo "WriteData" viene El valor a realimentar al campo "WriteData" viene de la
MemToReg
de la salida de la ALU memoria

PCSrc
0
Add M
u
x
4 ALU
Add result 1
RegWrite Shift
left2
Instruction[25–21] Read
PC Read register1 Read MemWrite
address Instruction[20–16] Read data1 MemtoReg
register2 ALUSrc Zero
Instruction 0 Read
[31–0] 0 ALU ALU
M Write
register
data2
M result Address Read
data 1
Instruction Instruction[15–11] u
x Write Registers u
x
M
u
memory 1 data x
1
Write mData 0
RegDst
16 data emory
Instruction[15–0] Sign 32
extend ALU MemRead
control
Instruction[5–0]
ALUOp

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


Funcionamiento instrucción tipo R

 add $t1,$t2,$t3

0
M
u
x
ALU
Add result 1
Add Shift
RegDst left 2
4 Branch
MemRead
Instruction [31– 26] MemtoReg
Control ALUOp
MemWrite
ALUSrc
RegWrite

Instruction [25– 21] Read


PC Read register 1
address Read
Instruction [20– 16] Read data 1
register 2 Zero
Instruction 0 Registers Read ALU ALU
[31– 0] Write 0 Read
M data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15– 11] x u
1 Write x Data x
data 1 memory 0
Write
data

Instruction [15– 0] 16 32
Sign
extend ALU
control
Instruction [5–0]

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


Funcionamiento instrucción lw

 lw $t1, desplazamiento ($t2)

0
M
u
x
ALU
Add result 1
Add Shift
RegDst left 2
4 Branch
MemRead
Instruction [31– 26] MemtoReg
Control
ALUOp
MemWrite
ALUSrc
RegWrite

Instruction [25– 21] Read


PC Read register 1
address Read
Instruction [20– 16] Read data 1
register 2 Zero
Instruction 0 Registers Read ALU ALU
[31–0] Write 0 Read
M data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15– 11] x u
1 Write x Data x
data 1 memory 0
Write
data

Instruction [15– 0] 16 32
Sign
extend ALU
control

Instruction [5– 0]

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


Funcionamiento instrucción sw

 sw $t1, desplazamiento($t2)
0
M
u
x
ALU
Add result 1
Add Shift
RegDst left 2
4 Branch
MemRead
Instruction [31– 26] MemtoReg
Control
ALUOp
MemWrite
ALUSrc
RegWrite
P
Instruction [25– 21] Read
C Read register 1
address Read
Instruction [20– 16] Read data 1
register 2 Zero
Instruction 0 Registers Read ALU ALU
[31–0] Write 0 Read
M data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15– 11] x u
1 Write x Data x
data 1 memory 0
Write
data

Instruction [15– 0] 16 32
Sign
extend ALU
control

Instruction [5– 0]

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


Funcionamiento instrucción branch

 beq $t1, $t2, desplazamiento
0
M
u
x
ALU
Add result 1
Add Shift
RegDst left 2
4 Branch
MemRead
Instruction [31–26] MemtoReg
Control
ALUOp
MemWrite
ALUSrc
RegWrite

Instruction [25–21] Read


PC Read register 1
address Read
Instruction [20–16] Read data 1
register 2 Zero
Instruction 0 Registers Read ALU ALU
[31–0] Write 0 Read
M data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15–11] x u
Write x Data
1 data x
1 memory 0
Write
data

Instruction [15–0] 16 32
Sign
extend ALU
control
Instruction [5–0]

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


Diseño de la UC – Implementación de la UC
Implementación con PLA
Inputs
Op5
Op4
Op5-0 -> 00 0000 10 0011 10 1011 00 0100 Op3
(bits 31-26) 0D 35D 43D 4D Op2
R-Format lw sw beq Op1
RegDst 1 0 x x Op0
ALUSrc 0 1 1 0
MemToReg 0 1 x x
RegWrite 1 1 0 0 Outputs
MemRead 0 1 0 0 R-format Iw sw beq
RegDst
MemWrite 0 0 1 0
ALU
ALUSrc
Branch 0 0 0 1
1 0 0 0 MemtoReg
ALUOp1
ALUOp0 0 0 0 1 RegWrite
MemRead
MemWrite
Branch
ALUOp1

ALUOpO

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


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 48


Rendimiento de la implementación monociclo - Ejemplo

 Suponiendo que los tiempos de operación (latencia) de las unidades 
funcionales son:
 Unidad de memoria: 2 ns
 ALU y sumadores: 2 ns
 Registros (lectura o escritura): 1 ns
 Resto de los componentes (multiplexores, acceso al PC, etc. ): 0 ns
 ¿Cuál de las siguientes implementaciones será más rápida?
1.‐ Una implementación en la que cada instrucción se ejecuta en un ciclo de 
reloj de duración fija. 
2.‐ Una implementación donde cada instrucción se ejecuta en un ciclo de reloj 
pero de duración variable (solución no práctica, pero ilustrativa).
Suponer un programa compuesto por: 24% instr carga (lw), 12% instr
almacenamiento (sw), 44% instr R‐format, 18% instr saltos (beq/bne) y 2% instr
bifurcación (j).

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


Solución
Instrucción Unidades funcionales utilizadas
R-format búsqueda acceso a registro ALU acceso a registro
Load búsqueda acceso a registro ALU acceso a memoria Acceso a registro
Store búsqueda acceso a registro ALU acceso a memoria
Branch búsqueda acceso a registro ALU
jump búsqueda

Tiempo de ciclo necesario para cada instrucción


Instrucción Memoria Registro ALU Memoria Registro Total por Porcentaje
instr. (ns) de uso
R-format 2 1 2 0 1 6 44%
Load 2 1 2 2 1 8 24%
Store 2 1 2 2 7 12%
Branch 2 1 2 5 18%
jump 2 2 2%
Tiempo de ciclo medio (44%x6 + 24%x8 + 12% x7 + 18%x5 + 2%x2 ) = 6.3 ns

Re n dim ientoRe lojVariable TCicloFijo N * CPI * TCicloFijo 8


    1.27
Re n dim ientoRe lojFijo TCicloVariable N * CPI * TCicloVariable 6.3
(*) El tiempo de ciclo de reloj fijo será de 8 ns, tiempo necesario
para ejecutar la instrucción más compleja

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


Ventajas y desventajas

 V: Todas las instrucciones tardan un ciclo en ejecutarse
 D: Aprovechamiento ineficiente del área del chip (componentes 
repetidos de forma innecesaria) 
 D: Ciclo de reloj largo para ajustarse a la instrucción más lenta
 Las instrucciones de coma flotante requerirían un tiempo de ciclo aún 
más largo

Cycle 1 Cycle 2
Clk

lw sw Waste

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


¿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
 Procesador monociclo
 Procesador multiciclo
 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 52

También podría gustarte