Upload
trinhkhanh
View
216
Download
2
Embed Size (px)
Citation preview
8. Diseño del Procesador
Fundamentos de los ComputadoresGrado en Ingeniería Informática
(hasta final del diseño monociclo)
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. Escribir una rutina de tratamiento de excepción para
interrupciones o excepciones básicas
2Diseño del procesador
3
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 Resumen y bibliografía
Diseño del procesador
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 nivel 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
Stateelement
1
Stateelement
2
Combinationallogic
clock
one clock cycle
4Diseñ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 Resumen y bibliografía
Diseño del procesador
Conocimientos previos: Arquitectura 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)]
6Diseño del procesador
Conocimientos previos: Arquitectura 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▫ formato I▫ formato J
op rs rt rd funct
op rs rt desplazamiento
op dirección
shamt
7Diseñ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 Resumen y bibliografía
Diseño del procesador
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
Ciclo de instrucción
Diseño del procesador 9
Ruta de datos individuales – Búsqueda de la instrucción
Lectura de la memoria de instrucciones Actualización del PC a la siguiente instrucción
ReadAddress
Instruction
InstructionMemory
Add
PC
4
Diseño del procesador 10
Instruction
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ControlUnit
Ruta de datos individuales – Decodificación y lectura de registros
Diseño del procesador 11
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
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
Ruta de datos individuales – Aritmético-lógicas
Diseño del procesador 12
R-type:31 25 20 15 5 0
op rs rt rd functshamt
10
R-type:31 25 20 15 5 0
op rs rt rd functshamt
10
Ruta de datos individuales – Aritmético-lógicas
Escritura del registro $rd del banco de registros con la salida de la ALU
Instruction
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
overflowzero
ALU controlRegWrite
13Diseño del procesador
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
14Diseño del procesador
Ruta 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
Instruction
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
overflowzero
ALU controlRegWrite
DataMemory
Address
Write Data
Read Data
SignExtend
MemWrite
MemRead
Instruction
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
overflowzero
ALU controlRegWrite
DataMemory
Address
Write Data
Read Data
SignExtend
MemWrite
MemRead16 3216 32
15Diseño del procesador
Instrucción de salto condicional
beq rs, rt, desplEjemplo:
beq $1, $2, despl si ($1=$2) PC=PC+despl
Formato tipo I
op rs rt desplazamiento
16Diseño del procesador
17
Ruta de datos individuales – Saltos condicionales
Resta $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
Instruction
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ALU
zero
ALU control
SignExtend16 32
Shiftleft 2
Add
4 Add
PC
Branchtargetaddress
(to branch control logic)
Diseño del procesador
Instrucción de salto incondicional
j direcciónEjemplo:
j 1000 PC = PC[31-28] + 1000[27-2]+00[1-0]
Formato tipo J
op dirección
18Diseño del procesador
Ruta de datos individuales – Bifurcaciones
Reemplazo del PC por la dirección efectiva de salto PC PC[31:28] || (IR[25:0]<<2)
ReadAddress
Instruction
InstructionMemory
Add
PC
4
Shiftleft 2
Jumpaddress
26
4
28
19Diseñ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 Resumen y bibliografía
Diseño del procesador
Diseño monociclo
Tcpu = N · CPI · tciclo
Depende del compilador yde la arquitectura del
repertorio de instrucciones
Dependen de la organización e implementación del
procesador
21Diseño del procesador
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…
22
Diseño monociclo
Diseño del procesador
23
Diseño de la RD - Integración tipo R y memoria
MemtoReg
ReadAddress
Instruction
InstructionMemory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
ovfzero
ALU controlRegWrite
DataMemory
Address
Write Data
Read Data
MemWrite
MemReadSign
Extend16 32
ALUSrc MemtoRegMemtoRegMemtoReg
ReadAddress
Instruction
InstructionMemory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
ovfzero
ALU controlRegWrite
DataMemory
Address
Write Data
Read Data
MemWrite
MemReadSign
Extend16 32
ReadAddress
Instruction
InstructionMemory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
ovfzero
ALU controlRegWrite
DataMemory
Address
Write Data
Read Data
MemWrite
MemReadSign
Extend16 32
ALUSrcALUSrc
Diseño del procesador
24
Diseño de la RD - Integración tipo R y memoria
Diseño del procesador
Instrucción
Dirección a leer
Memoria deInstrucciones
PC
4
Add
Extensiónde
signo
resultALU
ALU Zero
16 32
Mux
RegWriteALUSrc
3Operación
ALU
Dirección
Dato a escribir
Memoria de Datos
Registro lectura 1
Registro lectura 2
Registro a EscribirDato a Escribir
Datoleído 1
Banco de Registros
Datoleído 2 Dato
leído Mux
MemWrite
MemtoReg
MemRead
25
Diseño de la RD - tipo R + lw/sw + beq
Diseño del procesador
Instrucción
Dirección a leer
Memoria deInstrucciones
PC
4 AddDesplaz.
izq. 2
Extensiónde
signo
resultALU
ALUZero
16 32
Mux
RegWriteALUSrc
3Operación
ALU
Dirección
Dato a escribir
Memoria de Datos
Registro lectura 1Registro lectura 2Registro a escribirDato a Escribir
Datoleído 1
Banco de Registros
Datoleído 2
Datoleído M
ux
MemtoReg
MemWrite
MemRead
PCSrc
Mux
Add
26
Diseño de la RD - tipo R + lw/sw + beq + j
Diseño del procesador
Instrucción
Dirección a leer
Memoria deInstrucciones
PC
4
Add
Add resultALU
Desplaz.izq. 2
Registro lectura 1
Registro lectura 2
Registro a escribir
Dato a escribir
Datoleído 1
Banco de Registros
Extensiónde
signo
resultALU
ALU Zero
16 32
Mux
RegWriteALUSrc
3 OperaciónALU
Dirección
Dato a escribir
Memoria de Datos
Datoleído 2
Datoleído M
ux
MemWrite
MemtoReg
MemRead
PCSrc1
Mux
PCSrc2
Mux
Desplaz.izq. 2
28
26
32Instrucción[25-0]
PC+4 [31-28]
27
Diseño de la RD – 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?
I-Type: op rs rt address offset31 25 20 15 0
R-type:31 25 20 15 5 0
op rs rt rd functshamt
10
J-type:31 25 0
op target addressJ-type:31 25 0
op target address
Diseño del procesador
28
Diseño de la RD – Integración de la RD y de la UC
ReadAddress
Instr[31-0]
InstructionMemory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
ovf
zero
RegWrite
DataMemory
Address
Write Data
Read Data
MemWrite
MemRead
SignExtend16 32
MemtoReg
ALUSrc
Shiftleft 2
Add
PCSrc
RegDst
ALUcontrol
1
1
1
00
0
0
1
ALUOp
Instr[5-0]
Instr[15-0]
Instr[25-21]
Instr[20-16]
Instr[15 -11]
ControlUnit
Instr[31-26]
Branch
Diseño del procesador
29
Diseño de la RD – Flujo de datos y control para tipo R
ReadAddress
Instr[31-0]
InstructionMemory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
ovf
zero
RegWrite
DataMemory
Address
Write Data
Read Data
MemWrite
MemRead
SignExtend16 32
MemtoReg
ALUSrc
Shiftleft 2
Add
PCSrc
RegDst
ALUcontrol
1
1
1
00
0
0
1
ALUOp
Instr[5-0]
Instr[15-0]
Instr[25-21]
Instr[20-16]
Instr[15 -11]
ControlUnit
Instr[31-26]
Branch
Diseño del procesador
30
Diseño de la RD – Flujo de datos y control para lw
ReadAddress
Instr[31-0]
InstructionMemory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
ovf
zero
RegWrite
DataMemory
Address
Write Data
Read Data
MemWrite
MemRead
SignExtend16 32
MemtoReg
ALUSrc
Shiftleft 2
Add
PCSrc
RegDst
ALUcontrol
1
1
1
00
0
0
1
ALUOp
Instr[5-0]
Instr[15-0]
Instr[25-21]
Instr[20-16]
Instr[15 -11]
ControlUnit
Instr[31-26]
Branch
Diseño del procesador
31
Diseño de la RD – Flujo de datos y control para beq
ReadAddress
Instr[31-0]
InstructionMemory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
ovf
zero
RegWrite
DataMemory
Address
Write Data
Read Data
MemWrite
MemRead
SignExtend16 32
MemtoReg
ALUSrc
Shiftleft 2
Add
PCSrc
RegDst
ALUcontrol
1
1
1
00
0
0
1
ALUOp
Instr[5-0]
Instr[15-0]
Instr[25-21]
Instr[20-16]
Instr[15 -11]
ControlUnit
Instr[31-26]
Branch
Diseño del procesador
32
Integración de la RD – Flujo de datos y control para j
ReadAddress
Instr[31-0]
InstructionMemory
Add
PC
4
Write Data
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
ovf
zero
RegWrite
DataMemory
Address
Write Data
Read Data
MemWrite
MemRead
SignExtend16 32
MemtoReg
ALUSrc
Shiftleft 2
Add
PCSrc
RegDst
ALUcontrol
1
1
1
00
0
0
1
ALUOp
Instr[5-0]
Instr[15-0]
Instr[25-21]
Instr[20-16]
Instr[15 -11]
ControlUnit
Instr[31-26]
Branch
Shiftleft 2
0
1
Jump
32Instr[25-0]
26PC+4[31-28]
28
Diseño del procesador
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)
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
Add
Instruction [5–0]
RegWrite
4
16 32Instruction [15–0]
0Registers
WriteregisterWritedata
Writedata
Readdata 1
Readdata 2
Readregister 1Readregister 2
Signextend
ALUresult
Zero
Datamemory
Address Readdata M
ux
1
1
Mux
0
1
Mux
0
1
Mux
0
Instruction [15–11]
ALUcontrol
Shiftleft 2
PCSrc
ALU
Add ALUresult
33Diseño del procesador
34
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 Resumen y bibliografía
Diseño del procesador
Camino de datos con la unidad principal de control y la unidad local de control de la ALU
Diseño de la UC de la ALU: visión completa
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [20 16]
Instruction [25 21]
Add
Instruction[5 0]
MemtoRegALUOpMemWrite
RegWrite
MemReadBranchRegDst
ALUSrc
Instruction [31 26]
4
16 32Instruction [15 0]
0
0Mux
0
1
Control
Add ALUresult
Mux
0
1
RegistersWriteregister
Writedata
Readdata1
Readdata2
Readregister1
Readregister 2
Signextend
Mux1
ALUresult
Zero
PCSrc
DatamemoryWrite
data
Readdata M
ux
1
Instruction [15 11]
ALUcontrol
Shiftleft 2
ALUAddress
35Diseño del procesador
36
Diseño de la UC de la ALU – Estructura de la ALU
Entradas de control(ALUctr) FUNCIÓN
000 AND001 OR010 ADD110 SUB111 SLT
A L U R e s u ltZ e r o
O v e r f lo w
a
b
A L U o p e r a t io n
C a r r y O u t
A L U R e s u ltZ e r o
O v e r f lo w
a
b
A L U o p e r a t io n
C a r r y O u t
0
3
Result
Operation
a
1
CarryIn
CarryOut
0
1
Binvert
b 2
Less
a.
0
3
Result
Operation
a
1
CarryIn
CarryOut
0
1
Binvert
b 2
Less
a.
Operaciones básicas (solo usaremos 5 de las 8 posibles)
Diseño del procesador
37
Diseño de la UC de la ALU – Especificación del control ALU
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
Cod. Op. ALUop Instrucción FUNCT Op. deseada Entradas de control 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
Diseño del procesador
Diseño de la UC de la ALU: Tabla de verdadALUop funct ALUctr
ALUop1 ALUop0 F5 F4 F3 F2 F1 F0 bit2 bit1 bit00 0 x x x x x x 0 1 0x 1 x x x x x x 1 1 01 x x x 0 0 0 0 0 1 01 x x x 0 0 1 0 1 1 01 x x x 0 1 0 0 0 0 01 x x x 0 1 0 1 0 0 11 x x x 1 0 1 0 1 1 1
MainControl
op6
ALUControl(Local)
func
N
6ALUop
ALUctr3
AL
U
op rs rt rd shamt funct061116212631
6 bits 6 bits5 bits5 bits5 bits5 bits
Instrucción Tipo R:
funct<3:0> Instruction Op.00000010010001011010
addsubtractandorset-on-less-than
38Diseño del procesador
39
Diseño de la UC de la ALU - ImplementaciónALUop funct Operación (ALUctr)
ALUop1 ALUop0 F5 F4 F3 F2 F1 F0 bit2 bit1 bit00 0 x x x x x x 0 1 0x 1 x x x x x x 1 1 01 x x x 0 0 0 0 0 1 01 x x x 0 0 1 0 1 1 01 x x x 0 1 0 0 0 0 01 x x x 0 1 0 1 0 0 11 x x x 1 0 1 0 1 1 1
Operation2
Operation1
Operation0
Operation
ALUOp1
F3
F2
F1
F0
F (5– 0)
ALUOp0
ALUOp
ALU control block
Operation2
Operation1
Operation0
Operation
ALUOp1
F3
F2
F1
F0
F (5– 0)
ALUOp0
ALUOp
ALU control block
Diseño del procesador
40
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 Resumen y bibliografía
Diseño del procesador
41
Diseño de la UC – Señales de control
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
Add
Instruction [5–0]
RegWrite
4
16 32Instruction [15–0]
0Registers
WriteregisterWritedata
Writedata
Readdata1
Readdata2
Readregister1Readregister2
Signextend
ALUresult
Zero
Datamemory
Address Readdata Mu
x
1
1
Mux
0
1
Mux
0
1
Mux
0
Instruction [15–11]
ALUcontrol
Shiftleft 2
PCSrc
ALU
Add ALUresult
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
Add
Instruction [5–0]
RegWrite
4
16 32Instruction [15–0]
0Registers
WriteregisterWritedata
Writedata
Readdata1
Readdata2
Readregister1Readregister2
Signextend
ALUresult
Zero
Datamemory
Address Readdata Mu
x
1
1
Mux
0
1
Mux
0
1
Mux
0
Instruction [15–11]
ALUcontrol
Shiftleft 2
PCSrc
ALU
Add ALUresult
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
Add
Instruction [5–0]
RegWrite
4
16
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
Add
Instruction [5–0]
RegWrite
4
16 32Instruction [15–0]
0Registers
WriteregisterWritedata
Writedata
Readdata1
Readdata2
Readregister1Readregister2
Signextend
ALUresult
Zero
Datamemory
Address Readdata Mu
x
1
1
Mux
32Instruction [15–0]
0Registers
WriteregisterWritedata
Writedata
Readdata1
Readdata2
Readregister1Readregister2
Signextend
ALUresult
Zero
Datamemory
Address Readdata Mu
x
1
1
Mux
0
1
Mux
0
1
Mux
0
Instruction [15–11]
ALUcontrol
Shiftleft 2
PCSrc
ALU
Add ALUresult
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
Diseño del procesador
42
Diseño de la UC – Funcionalidad de las señales de control
Señal Acción cuando es desactivada (0) Acción cuando se activa (1)RegDst El registro destino para las escrituras viene del
campo rt (bits 20-16)El registro destino para las escrituras viene del campord (bits 15-11)
RegWrite Ninguno Escribe el dato en "WriteData" en el registro dado por"WriteRegister".
AluSrc El segundo operando de la ALU viene del banco deregistro (salida 2)
El segundo operando de la ALU son los 16 bits menossignificativos de la instrucción extendidos en signo
PCSrc Selecciona PC+4 como nuevo valor del PC Selecciona la dirección de salto computada como nuevovalor del PC
MemWrite Ninguna Escribe en la dirección de memoria "Address" el dato"WriteData"
MemRead Ninguna Lee un dato de la dirección de memoria "Address" y lodeja en la salida "ReadData"
MemToReg El valor a realimentar al campo "WriteData" vienede la salida de la ALU
El valor a realimentar al campo "WriteData" viene de lamemoria
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction[20–16]
Instruction[25–21]
Add
Instruction[5–0]
RegWrite4
16 32Instruction[15–0]0
Registers
WriteregisterWritedata
Writedata
Readdata1Read
data2
Readregister1Readregister2
Signextend
ALUresultZero
Datamemory
Address Readdata Mux
1
1
Mux
0
1
Mux
0
1
Mux
0
Instruction[15–11]
ALUcontrol
Shiftleft2
PCSrc
ALU
Add ALUresult
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction[20–16]
Instruction[25–21]
Add
Instruction[5–0]
RegWrite4
16 32Instruction[15–0]0
Registers
WriteregisterWritedata
Writedata
Readdata1Read
data2
Readregister1Readregister2
Signextend
ALUresultZero
Datamemory
Address Readdata Mux
1
1
Mux
0
1
Mux
0
1
Mux
0
Instruction[15–11]
ALUcontrol
Shiftleft2
PCSrc
ALU
Add ALUresult
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction[20–16]
Instruction[25–21]
Add
Instruction[5–0]
RegWrite4
16
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction[20–16]
Instruction[25–21]
Add
Instruction[5–0]
RegWrite4
16 32Instruction[15–0]0
Registers
WriteregisterWritedata
Writedata
Readdata1Read
data2
Readregister1Readregister2
Signextend
ALUresultZero
Datamemory
Address Readdata Mux
1
1
Mux
32Instruction[15–0]0
Registers
WriteregisterWritedata
Writedata
Readdata1Read
data2
Readregister1Readregister2
Signextend
ALUresultZero
Datamemory
Address Readdata Mux
1
1
Mux
0
1
Mux
0
1
Mux
0
Instruction[15–11]
ALUcontrol
Shiftleft2
PCSrc
ALU
Add ALUresult
Diseño del procesador
Funcionamiento instrucción tipo R (add, sub, and, or, slt)
add $t1,$t2,$t3
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
Add
Instruction [5–0]
MemtoRegALUOpMemWrite
RegWrite
MemReadBranchRegDst
ALUSrc
Instruction [31–26]
4
16 32Instruction [15–0]
0
0Mux
0
1
Control
Add ALUresult
Mux
0
1
RegistersWriteregister
Writedata
Readdata1
Readdata2
Readregister 1
Readregister 2
Signextend
Shiftleft 2
Mux
1
ALUresult
Zero
Datamemory
Writedata
Readdata M
ux
1
Instruction [15–11]
ALUcontrol
ALUAddress
43Diseño del procesador
Funcionamiento instrucción lw
lw $t1, desplazamiento ($t2)
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [15–11]
Instruction [20–16]
Instruction [25–21]
Add
Instruction [5–0]
MemtoRegALUOpMemWrite
RegWrite
MemReadBranchRegDst
ALUSrc
Instruction [31–26]
4
16 32Instruction [15–0]
0
0Mux
0
1
ALUcontrol
Control
Shiftleft 2
Add ALUresult
Mux
0
1
RegistersWriteregister
Writedata
Readdata 1
Readdata 2
Readregister 1
Readregister 2
Signextend
Mux1
ALUresult
Zero
Datamemory
Writedata
Readdata
Mux
1ALU
Address
44Diseño del procesador
Funcionamiento instrucción sw
sw $t1, desplazamiento($t2)
P
C
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [15–11]
Instruction [20–16]
Instruction [25–21]
Add
Instruction [5–0]
MemtoRegALUOpMemWrite
RegWrite
MemReadBranchRegDst
ALUSrc
Instruction [31–26]
4
16 32Instruction [15–0]
0
0Mux
0
1
ALUcontrol
Control
Shiftleft 2
Add ALUresult
Mux
0
1
RegistersWriteregister
Writedata
Readdata1
Readdata2
Readregister 1
Readregister 2
Signextend
Mux1
ALUresult
Zero
Datamemory
Writedata
Readdata
Mux
1ALU
Address
45Diseño del procesador
Funcionamiento instrucción branch
beq $t1, $t2, desplazamiento
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction [15–11]
Instruction [20–16]
Instruction [25–21]
Add
Instruction [5–0]
MemtoRegALUOpMemWrite
RegWrite
MemReadBranchRegDst
ALUSrc
Instruction [31–26]
4
16 32Instruction [15–0]
Shiftleft 2
0Mux
0
1
ALUcontrol
Control
RegistersWriteregister
Writedata
Readdata 1
Readregister 1
Readregister 2
Signextend
1
ALUresult
Zero
Datamemory
Writedata
ReaddataM
ux
Readdata 2
Add ALUresult
Mux
0
1
Mux
1
0
ALUAddress
46Diseño del procesador
47
Diseño de la UC – Implementación de la UC
Op5-0 ->(bits 31-26)
00 00000D
10 001135D
10 101143D
00 01004D
R-Format lw sw beqRegDst 1 0 x xALUSrc 0 1 1 0MemToReg 0 1 x xRegWrite 1 1 0 0MemRead 0 1 0 0MemWrite 0 0 1 0Branch 0 0 0 1ALUOp1 1 0 0 0ALUOp0 0 0 0 1
R-format Iw sw beq
Op0Op1Op2Op3Op4Op5
Inputs
Outputs
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUOp1
ALUOpO
Implementación con PLA
R-format Iw sw beq
Op0Op1Op2Op3Op4Op5
Inputs
Outputs
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUOp1
ALUOpO
R-format Iw sw beq
Op0Op1Op2Op3Op4Op5
Inputs
Outputs
RegDst
ALU
R-format Iw sw beq
Op0Op1Op2Op3Op4Op5
Inputs
Outputs
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUOp1
ALUOpO
Implementación con PLA
Diseño del procesador
48
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 Resumen y bibliografía
Diseño del procesador
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% carga (lw), 12% almacenamiento (sw), 44% R-format, 18% saltos (beq/bne) y 2% bifurcacines (j).
Rendimiento de la implementación monociclo - Ejemplo
49Diseño del procesador
SoluciónInstrucción Unidades funcionales utilizadasR-format búsqueda acceso a registro ALU acceso a registroLoad búsqueda acceso a registro ALU acceso a memoria Acceso a registroStore búsqueda acceso a registro ALU acceso a memoriaBranch búsqueda acceso a registro ALUjump búsqueda
Tiempo de ciclo necesario para cada instrucción Instrucción Memoria Registro ALU Memoria Registro Total por
instr. (ns) Porcentaje
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
compleja más ninstruccióla ejecutar para necesario tiempo ns, 8 de será fijoreloj de ciclo de tiempo El (*)
TCPINTCPIN
TT
ientonienton
bleCicloVaria
CicloFijo
bleCicloVaria
CicloFijo
lojFijo
elojVariabl 27.13.6
8**
**dimRe
dimRe
Re
Re
50Diseño del procesador
51
Ventajas y desventajas
V: Todas las instrucciones tardan un ciclo en ejecutarse
D: Aprovechamiento ineficiente del área del chip (componentes repetidos)
D: Ciclo de reloj largo para acomodar la instrucción más lenta Las instrucciones de punto flotante requerirían un tiempo de ciclo extra
largo
Clk
lw sw Waste
Cycle 1 Cycle 2Clk
lw sw Waste
Cycle 1 Cycle 2
Diseño del procesador