8. Diseño del ProcesadorDiseño del...
-
Upload
hoangkhanh -
Category
Documents
-
view
216 -
download
1
Transcript of 8. Diseño del ProcesadorDiseño del...
88 Diseño del ProcesadorDiseño del Procesador8.8. Diseño del ProcesadorDiseño del Procesador
Fundamentos de los ComputadoresGrado en Ingeniería Informática
ObjetivosObjetivos
Plantear y modificar una ruta de datos para un repertorio de instrucciones simple en un procesador básicop pEspecificar y modificar una unidad de control con una máquina de estados finitos para una ruta de datos y un repertorio de instrucciones simplesImplementar una unidad de control especificada mediante una máquina de estados finitosEspecificar y modificar una unidad de control microprogramada
t d d t t i d i t i i lpara una ruta de datos y un repertorio de instrucciones simpleImplementar una unidad de control microprogramada.E ibi i d i d ióEscribir una rutina de tratamiento de excepción para interrupciones o excepciones básicas
2Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
3Diseño del procesador
Metodología de SincronizaciónMetodología de Sincronización
La metodología de sincronización define cuándo pueden leerse y escribirse las diferentes señalesCaracterísticas de la metodología de sincronización por nivel
Un elemento de estado puede ser actualizado sólo en el flanco de relojUn elemento de estado puede ser leído y modificado en un mismo cicloSeñales de habilitación de escritura explícitas
Statel t
Statel t
Combinationalelement
1element
2logic
clockclock
one clock cycle
4Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
5Diseño del procesador
Diseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Soporte del subconjunto de instruccionesAcceso a memoria: lw (load word) y sw (store word)( ) y ( )Aritmético-lógicas: add, sub, and, or, sltSalto y bifurcación: beq (branch if equal) y j (jump)
Ciclo de instrucciónLectura de la instrucción M[PC]
difi ió d l i ió l d l iDecodificación de la instrucción y lectura de los registrosEjecución de la instrucción
6Diseño del procesador
Conocimientos previos: Arquitectura Conocimientos previos: Arquitectura MIPSMIPS
Registros 32 registros de propósito general, de 32 bits cada uno. ($0, $1, ..., $31)g p p g , ($ , $ , , $ )
Memoria Direccionable por bytes en modo “big endian”Direcciones de 32 bits
Modo de direccionamientoregistro base + desplazamiento [100($1)]
7Diseño del procesador
Conocimientos previos: Arquitectura Conocimientos previos: Arquitectura MIPSMIPS
Repertorio de instrucciones longitud fija de 32 bits. g j3 tipos de instrucciones ▫ aritmético-lógicas: add, sub, and, or, slt add $1, $2, $3
d f i i l l $ ($ )▫ 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
f t Jop rs rt rd functshamt
▫ formato Jop rs rt desplazamiento
op dirección
8Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
9Diseño del procesador
Ciclo de instrucciónCiclo de instrucción
Ejecución de instrucciones: PasosComún▫ Leer instrucción de la memoria con el PC▫ Leer registros especificados en la instrucción
Si ilSimilar▫ Utilizar la ALU
Diferente▫ Terminación de ejecución de instrucción
Diseño del procesador 10
Ruta de datos individuales Ruta de datos individuales –– Búsqueda de la instrucciónBúsqueda de la instrucción
Lectura de la memoria de instruccionesActualización del PC a la siguiente instrucciónActualización del PC a la siguiente instrucción
Add
4
ReadAddress
Instruction
InstructionMemory
PC
Diseño del procesador 11
Ruta de datos individuales Ruta de datos individuales –– DecodificaciónDecodificación
Envío de los campos de código de operación y función a la unidad de controlLectura del banco de registro de los registros $rs y $rt
ControlUnit
Read Addr 1R i t Read
Read Addr 1R i t Read
Instruction Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
Write DataData 2
Write DataData 2
Diseño del procesador 12
Ruta de datos individuales Ruta de datos individuales –– AritméticoAritmético--lógicaslógicas
add, sub, and, or y slt
add rd, rs, rtEjemplo: add $8, $9, $10 → $8=$9+$10
Formato tipo R: op y funct especifican la operación aritmético-lógica
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
Diseño del procesador 13
Ruta de datos individuales Ruta de datos individuales –– AritméticoAritmético--lógicaslógicas
Escritura del registro $rd del banco de registros con la salida de la ALU
R d Add 1
ALU controlRegWrite
Instruction
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ALU
overflowzero
Write Data
Write Addr ReadData 2
14Diseño del procesador
Instrucciones de acceso a memoriaInstrucciones de acceso a memoria
lw y swlw rt, despl(rd)ó sw rt, despl(rd), p ( ) , p ( )Ejemplos: lw $1, 24($2) → $1= Mem[$2+24]
sw $1, 24($2) → Mem[$2+24]= $1$ , ($ ) [$ ] $Formato tipo I
op rs rt desplazamiento
15Diseño del procesador
Ruta de datos individualesRuta de datos individuales–– Cargas y almacenamientosCargas y almacenamientos
Cálculo de la dirección de memoriaaddress $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
Read Addr 1Read
overflowzero
ALU controlRegWrite
Address
MemWrite
Read Addr 1Read
overflowzero
ALU controlRegWrite
Address
MemWrite
Instruction
Write Data
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALUData
Memory
Address
Write Data
Read DataInstruction
Write Data
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALUData
Memory
Address
Write Data
Read Data
SignExtend
MemReadSignExtend
MemRead16 3216 32
16Diseño del procesador
Instrucción de salto condicionalInstrucción de salto condicional
beq rs, rt, desplEjemplo:Ejemplo:
beq $1, $2, despl → si ($1=$2) →PC=PC+despl
Formato tipo I
op rs rt desplazamiento
17Diseño del procesador
Ruta de datos individuales Ruta de datos individuales –– Saltos condicionalesSaltos condicionales
Resta de $rs y $rt y comprobación de la señal zero de la ALUla ALUCálculo de la dirección efectiva de salto
dd PC 4 ió i (IR[15 0] 2)address PC + 4 + extensión-signo(IR[15:0]<<2)
B h
ALU control
Shiftleft 2
Add
4 AddBranchtargetaddress
Instruction
Read Addr 1
Read Addr 2Register
File
ReadData 1
ALU
zero
PC
(to branch control logic)
Write Data
Write Addr ALU
Sign
18
Extend16 32
Diseño del procesador
Instrucción de salto incondicionalInstrucción de salto incondicional
j direcciónEjemplo:j p
j 1000 → PC = PC[31-28] + 1000[27-2]+00[1-0]
Formato tipo J
op dirección
19Diseño del procesador
Ruta de datos individuales Ruta de datos individuales –– BifurcacionesBifurcaciones
Reemplazo del PC por la dirección efectiva de saltoPC PC[31:28] || (IR[25:0]<<2)[ ] || ( [ ] )
Add
44
InstructionMemory
Shiftl ft 2
Jumpaddress
4
ReadAddress
Instruction
Memory
PCleft 2
26
28
20Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
21Diseño del procesador
Diseño monocicloDiseño monociclo
T = N · CPI · tTcpu = N · CPI · tciclo
Depende del compilador yde la arquitectura del
t i d i t i
Dependen de la organización e implementación del
drepertorio de instrucciones procesador
22Diseño del procesador
Diseño monocicloDiseño monociclo
Integración de las rutas de datos individualesRecursos hardware + multiplexores + señales de control + restricciones de pdiseño
Restricción de diseñoTodas las instrucciones tardan un único ciclo de relojLa instrucción más lenta determina el tiempo de cicloNingún componente de la ruta de datos puede ser reutilizadoNingún componente de la ruta de datos puede ser reutilizado▫ Memorias separadas de instrucciones y datos▫ Sumadores…
23Diseño del procesador
Diseño de la RD Diseño de la RD -- Integración tipo R y memoriaIntegración tipo R y memoria
MemtoReg
Instruction
Add
4
Read Addr 1
ovfzero
ALU controlRegWrite MemWriteALUSrc MemtoRegMemtoRegMemtoReg
Instruction
Add
4
Read Addr 1
ovfzero
ALU controlRegWrite MemWrite
Instruction
Add
4
Read Addr 1
ovfzero
ALU controlRegWrite MemWriteALUSrcALUSrc
ReadAddress
Instruction
InstructionMemory
PC
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadALU
DataMemory
Address
W it D t
Read DataReadAddress
Instruction
InstructionMemory
PC
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadALU
DataMemory
Address
W it D t
Read DataReadAddress
Instruction
InstructionMemory
PC
Read Addr 1
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadALU
DataMemory
Address
W it D t
Read Data
Write DataData 2 Write Data
MemReadSi
Write DataData 2 Write Data
MemReadSi
Write DataData 2 Write Data
MemReadSiSign
Extend16 32Sign
Extend16 32Sign
Extend16 32
24Diseño del procesador
Diseño de la RD Diseño de la RD –– Señales de controlSeñales de control
Selección de la operación a realizarOperación ALU: ALUControlEscritura y lectura del banco de registros: RegWriteEscritura y lectura de las memorias: MemRead, MemWrite
Selección de entradas de los multiplexores (flujo de datos)ALUSrc, MemToReg
R-type:31 25 20 15 5 0
op rs rt rd functshamt
10
I-Type: op rs rt address offset31 25 20 15 0
J-type:31 25 0
op target addressJ-type:31 25 0
op target address
25Diseño del procesador
Diseño de la RD Diseño de la RD –– Integración de la RD y de la UCIntegración de la RD y de la UC
AddAdd
0
14
MemWrite
MemReadMemtoReg
ALUSrc
Shiftleft 2 PCSrc
ALUOp
ControlUnit
Instr[31-26]
Branch
Instruction Read Addr 1
ovf
RegWrite
ALUSrc
RegDst
Instr[25-21]
ReadAddress
Instr[31-0]
InstructionMemory
PC
Write Data
Read Addr 2
Write Addr
Register
File
ReadData 1
ReadData 2
ALU
zeroData
Memory
Address
Write Data
Read Data 1
1
1
00
0
Instr[20-16]
Instr[15 Write Data
SignExtend16 32
ALUcontrol
1
Instr[15-0]
-11]
Instr[5-0]
26Diseño del procesador
Diseño de la RD Diseño de la RD –– Flujo de datos y control para Flujo de datos y control para tipo Rtipo R
Add
4 ShiftAdd
0
1
MemWrite
MemReadMemtoReg
ALUSrc
left 2 PCSrcALUOp
ControlUnit
Instr[31-26]
Branch
InstructionMemory
Read Addr 1Register Read
ovf
RegWrite
Address
RegDst
Instr[25-21]
ReadAddress
Instr[31-0]
Memory
PC
Write Data
Read Addr 2
Write Addr
Register
FileData 1
ReadData 2
ALU
zeroData
Memory
Write Data
Read Data 1
1
1
00
0
Instr[20-16]
Instr[15 -11]
SignExtend16 32
ALUcontrol
Instr[5-0]
Instr[15-0]
27Diseño del procesador
Diseño de la RD Diseño de la RD –– Flujo de datos y control para Flujo de datos y control para lwlw
Add
4 Shiftleft 2
Add
PCSrc
0
1
MemWrite
MemReadMemtoReg
ALUSrc
left 2 PCSrcALUOp
ControlUnit
Instr[31-26]
Branch
InstructionMemory
Read Addr 1
Read Addr 2Register Read
Data 1
ovf
zero
RegWrite
Address
RegDst
Instr[25-21]
Instr[20-16]ReadAddress
Instr[31-0]PC
Write Data
Read Addr 2
Write AddrFile
Data 1
ReadData 2
ALU
zeroData
Memory
Write Data
Read Data 1
1
1
00
0
Instr[20 16]
Instr[15 -11]
SignExtend16 32
ALUcontrol
Instr[5-0]
Instr[15-0]
28Diseño del procesador
Diseño de la RD Diseño de la RD –– Flujo de datos y control para Flujo de datos y control para beqbeq
Add
4 Shiftleft 2
Add
PCSrc
0
1
MemWrite
MemReadMemtoReg
ALUSrc
left 2 PCSrcALUOp
ControlUnit
Instr[31-26]
Branch
InstructionMemory
Read Addr 1
Read Addr 2Register Read
Data 1
ovf
zero
RegWrite
Address
RegDst
Instr[25-21]
Instr[20-16]ReadAddress
Instr[31-0]PC
Write Data
Read Addr 2
Write AddrFile
Data 1
ReadData 2
ALU
zeroData
Memory
Write Data
Read Data 1
1
1
00
0
Instr[20 16]
Instr[15 -11]
SignExtend16 32
ALUcontrol
Instr[5-0]
Instr[15-0]
29Diseño del procesador
Integración de la RD Integración de la RD –– Flujo de datos y control para Flujo de datos y control para jj
Add
4 ShiftAdd
0
1
Shiftleft 2
0
132
Instr[25-0]
26PC+4[31-28]
28
4
MemWrite
MemReadMemtoReg
ALUSrc
Shiftleft 2 PCSrc
ALUOp
ControlUnit
Instr[31-26]
BranchJump
InstructionMemory
Read Addr 1Register Read
ovf
RegWrite
Address
RegDst
Instr[25-21]
ReadAddress
Instr[31-0]
Memory
PC
Write Data
Read Addr 2
Write Addr
Register
FileData 1
ReadData 2
ALU
zeroData
Memory
Write Data
Read Data 1
1
1
00
0
Instr[20-16]
Instr[15 -11]
SignExtend16 32
ALUcontrol
Instr[5-0]
Instr[15-0]
30Diseño del procesador
Esquema alternativo (sin instrucción j)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)
Add
4 1
Mux
0
PCSrc
Add ALU
MemWritePC ReadI t ti [20 16]
Instruction [25–21]
RegWrite
4
Readdata 1
Readregister 1
1
Shiftleft 2
Add result
MemtoRegALUSrcPC
Instructionmemory
addressInstruction
[31–0]
Instruction [20–16]
0Registers
WriteregisterWritedata
data 1
Readdata 2
Readregister 2
ALUresult
Zero
D t
Address Readdata M
ux
1
1
Mux
0
1
Mux
0
Instruction [15–11]
ALU
MemRead
RegDst
Instruction [5–0]
16 32Instruction [15–0]
0Writedata
Signextend
Datamemory
1
ALUcontrol
ALUOp
Instruction [5–0]
31Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
32Diseño del procesador
DiseñoDiseño de la de la UC de la ALU: UC de la ALU: visión visión completacompleta
Camino de datos con la unidad principal de control y la unidad local de control de la ALU
Add ALUresult
Mux
0
1
Add
MemtoRegALUOpMemWrite
MemReadBranchRegDst
Instruction [31 26]
4
Control
PCSrcShiftleft 2
PC Readaddress
Instruction [20 16]
Instruction [25 21]
MemWrite
RegWriteALUSrc
Readdata1
Readregister1
Readregister 2 Zero
Instructionmemory
Instruction[31–0]
0
0Mux
0
1
RegistersWriteregister
Writedata
Readdata2
register 2
Mux1
ALUresult
Zero
DatamemoryWrite
data
Readdata M
ux
1
Instruction [15 11]
ALUAddress
Instruction[5 0]
16 32Instruction [15 0] Signextend ALU
control
33Diseño del procesador
Diseño de la UC de la ALU Diseño de la UC de la ALU –– Estructura de la ALUEstructura de la ALU
OperationBinvert OperationBinvert
Operaciones básicas (solo usaremos 5 de las 8 posibles)
a
A L U o p e r a t io n
a
A L U o p e r a t io n
0
Operation
a
CarryInBinvert
0
Operation
a
CarryInBinvert
A L U R e s u ltZ e r o
O v e r f lo w
b
A L U R e s u ltZ e r o
O v e r f lo w
b
Result
1
0
1
b 2
Result
1
0
1
b 2
Entradas de control FUNCIÓN
C a r ry O u tC a r r y O u t
3
CarryOut
Less
a.
3
CarryOut
Less
a.
(ALUctr) FUNCIÓN000 AND001 OR010 ADD110 SUB111 SLT
34Diseño del procesador
Diseño de la UC de la ALU Diseño de la UC de la ALU –– Especificación del control ALUEspecificació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
35Diseño del procesador
Diseño de la UC Diseño de la UC de la ALU: Tabla de verdadde 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 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 0 1 0 1 0 0 11 x x x 1 0 1 0 1 1 1
061116212631I t ió Ti R op rs rt rd shamt funct
6 bits 6 bits5 bits5 bits5 bits5 bits
Instrucción Tipo R:
MainControl
op6
ALUControl(Local)
func6
ALUop
ALUctr3
funct<3:0> Instruction Op.00000010
addsubtract(Local)N A
LU
010001011010
andorset-on-less-than
36Diseño del procesador
Diseño de la UC de la ALU Diseño de la UC de la ALU -- ImplementaciónImplementació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 11 x x x 1 0 1 0 1 1 1
ALUOp
ALU control block
ALUOp
ALU control block
Operation2
ALUOp1
F3
ALUOp0
Operation2
ALUOp1
F3
ALUOp0
Operation1
Operation0
Operation
F3
F2
F1
F0
F (5– 0)Operation1
Operation0
Operation
F3
F2
F1
F0
F (5– 0)
F0F0
37Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
38Diseño del procesador
Diseño de la UC Diseño de la UC –– Señales de controlSeñales de control
Tipo R: op rs rt rd shamt funct Bits: 31-26 25-21 20-16 15-11 10-6 5-0 Ti I t I di t 16 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
Add
4 1
Mux
0
PCSrc
Add ALUresult
Add
4 1
Mux
0
PCSrc
Add ALUresult
Add
4
Add
4 1
Mux1
Mux
0
PCSrc
Add ALUresult
MemtoRegMemWrite
ALUSrcPC Read
addressInstruction
[31 0]
Instruction [20–16]
Instruction [25–21]
RegWrite
Wit
Readdata1
Read
Readregister1Readregister2
ALUZero
R d00
Shiftleft 2
ALU
result
MemtoRegMemWrite
ALUSrcPC Read
addressInstruction
[31 0]
Instruction [20–16]
Instruction [25–21]
RegWrite
Wit
Readdata1
Read
Readregister1Readregister2
ALUZero
R d00
Shiftleft 2
ALU
result
MemtoRegMemWrite
ALUSrcPC Read
addressInstruction
[31 0]
Instruction [20–16]
Instruction [25–21]
RegWrite
MemtoRegMemWrite
ALUSrcPC Read
addressInstruction
[31 0]
Instruction [20–16]
Instruction [25–21]
RegWrite
Wit
Readdata1
Read
Readregister1Readregister2
ALUZero
R dWit
Readdata1
Read
Readregister1Readregister2
ALUZero
R d00
Shiftleft 2
ALU
result
MemRead
RegDst
Instructionmemory
[31–0]
16 32Instruction [15–0]
0Registers
WriteregisterWritedata
Writedata
data2
Signextend
ALUresult
Datamemory
Address Readdata Mu
x
1
1
Mux
0
1
Mux
0
Instruction [15–11]
ALUcontrol
ALU
MemRead
RegDst
Instructionmemory
[31–0]
16 32Instruction [15–0]
0Registers
WriteregisterWritedata
Writedata
data2
Signextend
ALUresult
Datamemory
Address Readdata Mu
x
1
1
Mux
0
1
Mux
0
Instruction [15–11]
ALUcontrol
ALU
MemRead
RegDst
Instructionmemory
[31–0]
16
MemRead
RegDst
Instructionmemory
[31–0]
16 32Instruction [15–0]
0Registers
WriteregisterWritedata
Writedata
data2
Signextend
ALUresult
Datamemory
Address Readdata Mu
x
1
32Instruction [15–0]
0Registers
WriteregisterWritedata
Writedata
data2
Signextend
ALUresult
Datamemory
Address Readdata Mu
x
1
1
Mux
0
1
Mux
0
Instruction [15–11]
ALUcontrol
ALU
ALUOp
Instruction [5–0]
control
ALUOp
Instruction [5–0]
control
ALUOp
Instruction [5–0]
ALUOp
Instruction [5–0]
control
39Diseño del procesador
Diseño de la UC Diseño de la UC –– Funcionalidad de las señales de controlFuncionalidad 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"g "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"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
PCSrcPCSrcPCSrc
MemWritePC ReadInstruction[25–21]
Add
RegWrite4
ReadReadregister1
1
Mux
0
Shiftleft2
Add ALUresult
MemWritePC ReadInstruction[25–21]
Add
RegWrite4
ReadReadregister1
1
Mux
0
Shiftleft2
Add ALUresult
MemWritePC ReadInstruction[25–21]
Add
RegWrite4
MemWritePC ReadInstruction[25–21]
Add
RegWrite4
ReadReadregister1
1
Mux
ReadReadregister1
1
Mux
0
Shiftleft2
Add ALUresult
MemtoReg
MemRead
MemWriteALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction[20–16]
16 32Instruction[15–0]0
Registers
WriteregisterWritedata
Writedata
Readdata1Read
data2
register1Readregister2
Signextend
ALUresultZero
Datamemory
Address Readdata Mux
1
1
Mux
0
1
Mux
0
Instruction[15–11]
ALU
ALUMemtoReg
MemRead
MemWriteALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction[20–16]
16 32Instruction[15–0]0
Registers
WriteregisterWritedata
Writedata
Readdata1Read
data2
register1Readregister2
Signextend
ALUresultZero
Datamemory
Address Readdata Mux
1
1
Mux
0
1
Mux
0
Instruction[15–11]
ALU
ALUMemtoReg
MemRead
MemWriteALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction[20–16]
16
MemtoReg
MemRead
MemWriteALUSrc
RegDst
PC
Instructionmemory
Readaddress
Instruction[31–0]
Instruction[20–16]
16 32Instruction[15–0]0
Registers
WriteregisterWritedata
Writedata
Readdata1Read
data2
register1Readregister2
Signextend
ALUresultZero
Datamemory
Address Readdata Mux
1
32Instruction[15–0]0
Registers
WriteregisterWritedata
Writedata
Readdata1Read
data2
register1Readregister2
Signextend
ALUresultZero
Datamemory
Address Readdata Mux
1
1
Mux
0
1
Mux
0
Instruction[15–11]
ALU
ALU
MemRead
ALUOp
Instruction[5–0]
ALUcontrol MemRead
ALUOp
Instruction[5–0]
ALUcontrol MemRead
ALUOp
Instruction[5–0]
MemRead
ALUOp
Instruction[5–0]
ALUcontrol
40Diseño del procesador
Funcionamiento Funcionamiento instrucción tipo instrucción tipo R (R (addadd, sub, and, , sub, and, oror, , sltslt))
add $t1,$t2,$t30
Add
RegDst
Add ALUresult
Mux
0
1
Shiftleft 2
MemtoRegALUOpMemWrite
MemReadBranchRegDst
ALUSrc
Instruction [31–26]
4
Control
PC Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
RegWrite
0M0 Registers
Write
Readdata1
Readd t 2
Readregister 1
Readregister 2
ALUlt
Zero
Read 1ALU
AddInstruction
memory
[ ]
16 32Instruction [15–0]
0
0Mux1
Writeregister
Writedata
data2
Sign
Mux
1
result
Datamemory
Writedata
Readdata M
ux
1
Instruction [15–11]
Address
Instruction [5–0]
gextend ALU
control
41Diseño del procesador
Funcionamiento Funcionamiento instrucción instrucción lwlw
lw $t1, desplazamiento ($t2)0
Add
RegDst4
Shiftleft 2
Add ALUresult
Mux
1
MemtoRegALUOpMemWrite
MemReadBranch
ALUSrc
Instruction [31–26]
4
Control
PC Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
RegWrite
0M0 Registers
Write
Readdata1
Readd t 2
Readregister 1
Readregister 2
ALUZero
ReadALU
AddInstruction
memory
[ ]
Instruction [15–11]
16 32Instruction [15–0]
0
0Mux1
Writeregister
Writedata
data2
Sign
Mux1
result
Datamemory
Writedata
Readdata
Mux
1Address
Instruction [5–0]
Instruction [15 0]ALU
control
Signextend
42Diseño del procesador
Funcionamiento instrucción Funcionamiento instrucción swsw
sw $t1, desplazamiento($t2)0
Add
RegDst4
Shiftleft 2
Add ALUresult
Mux
1
MemtoRegALUOpMemWrite
MemReadBranch
ALUSrc
Instruction [31–26]
4
Control
P
C Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
RegWrite
0M0 Registers
Write
Readdata 1
Readd t 2
Readregister 1
Readregister 2
ALUZero
ReadALU
AddInstruction
memory
[ ]
Instruction [15–11]
16 32Instruction [15–0]
0
0Mux1
Writeregister
Writedata
data 2
Sign
Mux1
result
Datamemory
Writedata
Readdata
Mux
1Address
Instruction [5–0]
Instruction [15 0]ALU
control
Signextend
43Diseño del procesador
Funcionamiento Funcionamiento instrucción instrucción branchbranch
beq $t1, $t2, desplazamiento0
Add
RegDst4
Shiftleft 2
Add ALUresult
Mux
1
MemtoRegALUOpMemWrite
MemReadBranch
ALUSrc
Instruction [31–26]
4
Control
PC Readaddress
Instruction[31–0]
Instruction [20–16]
Instruction [25–21]
RegWrite
0M0 Registers
Write
Readdata 1
Readregister 1
Readregister 2
ALUZero
ReadReadd t 2
ALUAdd
Instructionmemory
[ ]
Instruction [15–11]
16 32Instruction [15–0]
0Mux1
Writeregister
Writedata
Sign
1
result
Datamemory
Writedata
ReaddataM
ux
data 2Mux
1
0
Address
Instruction [5–0]
Instruction [15 0]ALU
control
Signextend
44Diseño del procesador
Diseño de la UC Diseño de la UC –– Implementación de la UCImplementación de la UC
Op4Op5
InputsImplementación con PLA
Op4Op5
Inputs
Op4Op5
Inputs
Op4Op5
InputsImplementación con PLA
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 0
Op0Op1Op2Op3Op4
Op0Op1Op2Op3Op4
Op0Op1Op2Op3Op4
Op0Op1Op2Op3Op4
ALUSrc 0 1 1 0MemToReg 0 1 x xRegWrite 1 1 0 0MemRead 0 1 0 0MemWrite 0 0 1 0
R-format Iw sw beq
Outputs
RegDstR-format Iw sw beq
Outputs
RegDstR-format Iw sw beq
Outputs
RegDstR-format Iw sw beq
Outputs
RegDstMemWrite 0 0 0Branch 0 0 0 1ALUOp1 1 0 0 0ALUOp0 0 0 0 1
ALUSrc
MemtoReg
RegWrite
MemRead
ALUSrc
MemtoReg
RegWrite
MemRead
ALUALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUOp1
ALUOpO
MemWrite
Branch
ALUOp1
ALUOpO
MemWrite
Branch
ALUOp1
ALUOpO
45Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
46Diseño del procesador
Rendimiento de la implementación monociclo Rendimiento de la implementación monociclo -- EjemploEjemplo
Suponiendo que los tiempos de operación (latencia) de las unidades funcionales son:
Unidad de memoria: 2 nsUnidad de memoria: 2 nsALU y sumadores: 2 nsRegistros (lectura o escritura): 1 nsResto de los componentes (multiplexores, acceso al PC, etc. ): 0 ns
¿Cuál de las siguientes implementaciones será más rápida?¿Cuá de as s gu e tes p e e tac o es se á ás áp da?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 . U p e e c ó do de c d s ucc ó se ejecu e u c c o de e ojpero 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).
47Diseño del procesador
SoluciónSolució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 memoriaStore búsqueda acceso a registro ALU acceso a memoriaBranch búsqueda acceso a registro ALUjump búsqueda
Tiempo de ciclo necesario para cada instrucciónTiempo de ciclo necesario para cada instrucciónInstrucció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%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 nsTiempo de ciclo medio (44%x6 24%x8 12% x7 18%x5 2%x2 ) 6.3 ns
TCPINTCPIN
TT
ientonienton CicloFijoCicloFijoelojVariabl 27.1
368
****
dimRedimRe Re ====
complejamásninstruccióla ejecutar para necesario tiempo ns, 8 de será fijoreloj de ciclo de tiempo El (*)
TCPINTienton bleCicloVariableCicloVarialojFijo 3.6dimRe Re
complejamásninst ucciólaejecutapa a
48Diseño del procesador
Ventajas y desventajasVentajas y desventajas
V: Todas las instrucciones tardan un ciclo en ejecutarse
D: Aprovechamiento ineficiente del área del chipD: Aprovechamiento ineficiente del área del chip (componentes repetidos)
D: Ciclo de reloj largo para acomodar la instrucción más lentaD: Ciclo de reloj largo para acomodar la instrucción más lentaLas instrucciones de punto flotante requerirían un tiempo de ciclo extra largo
ClkCycle 1 Cycle 2
ClkCycle 1 Cycle 2
lw sw Wastelw sw Waste
49Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
50Diseño del procesador
Diseño Diseño multiciclomulticiclo
División del ciclo de instrucción en varias etapas o pasosCada etapa se ejecuta en un ciclo de relojp j jLas etapas presentan cargas de trabajo equilibradasCPI (ciclos por instrucción) variables: instrucciones lentas y rápidas
Reutilización de las unidades funcionalesUna unidad puede utilizarse más de una vez por instrucción siempre que se haga en ciclos de reloj distintos.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
51Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
52Diseño del procesador
Implementación Implementación multiciclomulticiclo: componentes : componentes básicosbásicos
Instruction
PC
Memory
Address
Instructionor data
register
RegistersRegister #
Data
Register #ALU
A
ALUOut
Data
Register #
Register #
Memorydata
registerB
Una sola memoria para datos e instruccionesU l ALU d 1 ALU 2 dUna sola ALU en vez de 1 ALU y 2 sumadoresUso de registros temporales a la salida de las unidades funcionales principales. Dos tipos de registros:p p p g
Tipo A: Actualizan su contenido en cada instrucción (IR)Tipo B: Actualizan su contenido en cada ciclo de reloj (MDR, A B ALUO t)A,B,ALUOut)
53Diseño del procesador
Ruta de Ruta de datos datos multiciclomulticicloIorD MemRead MemWrite
PCM0
Read
RegDst RegWrite
Instruction M0
ALUSrcAIRWrite
Memory
MemData
Writedata
Mux1
RegistersWriteregister
Writedata
Readdata 1
Readdata 2
register 1
Readregister 2
Instruction[15– 11]
Mux
0
14
[25–21]
Instruction[20–16]
Instruction[15–0]
Instructionregister
1 Mu
0
2
Mux1
ALUresult
ALUZeroA
B
ALUOut
Address
Shiftleft 2
data
Mux
0
1
Instruction[15–0]
Signextend
3216
registerx
32
ALUcontrol
Memorydata
register
Instruction [5– 0]
extend
Compartición de unidades funcionales (reducción del hardware) → uso de multiplexores
MemtoReg ALUOpALUSrcB
de multiplexoresEjecución en múltiples ciclos → cada ciclo requiere un conjunto determinado de señales de controlSeñales de control
54Diseño del procesador
Etapas de ejecución de las instruccionesEtapas de ejecución de las instrucciones
¿Qué operaciones realizamos en cada ciclo de reloj?Objetivo: equilibrar la carga computacional de cada etapa → Minimización d l ti d i ldel tiempo de cicloEn 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 paralelop j pEtapas o pasos de la instrucción se ejecutan en serie
55Diseño del procesador
Camino de datos Camino de datos multiciclomulticiclo con con las señales de controllas señales de control
IorD
MemRead
PCWriteCond
PCWrite ALUOp
ALUSrcB
PCSource
Outputs
MemRead
MemWrite
MemtoReg
IRWrite
ALUSrcA
RegDst
RegWrite
Control
Op[5– 0]
Mux
0
Jumpaddress [31-0]Instruction [25–0] 26 28
Shift
1
PCMux
0
1Read
data 1
Readregister 1
Readregister 2
Instruction[25– 21]
Instruction[20– 16]
ALUALUZeroA
Instruction[31-26]
2[ ] Shift
left 2
PC [31-28]
Mux
0
1ALUO
Memory
Address
RegistersWriteregister
Writedata
Readdata 2Instruction
[15– 11]
Mux
0
1
Mu
0
4
Instruction[15– 0]
Instruction[15–0]
Instructionregister
ALUresult
ALU
B
1 Mux
0
32
ALUOutMemData
Writedata
Shiftleft 2
ux1
Signextend
3216 ALUcontrol
Memorydata
register
Instruction [5– 0]Instruction [5 0]
56Diseño del procesador
Etapas de ejecución de las instrucciones (I)Etapas de ejecución de las instrucciones (I)
Etapa 1: Búsqueda del código de operación (fetch)IR = Memory[PC]PC PC 4PC = PC + 4
Etapa 2: Decodificación y acceso a operandosA = 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 saltop j ,Instrucción tipo R (and, or, add, sub,slt)ALUOut = A op B
Referencia a memoria (lw/sw)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
57Diseño del procesador
Etapas de ejecución de las instrucciones (II)Etapas de ejecución de las instrucciones (II)
Etapa 4: Acceso a memoria/fin de ejecución instrucción tipo RReferencia a memoria (lw)MDR = Memory[ALUOut]
Referencia a memoria (sw)Memory[ALUOut] = BMemory[ALUOut] B
Fin ejecución instrucción tipo RReg[rd] = ALUOut
Etapa 5: Fin de lectura en memoriaReg[rt] = MDRReg[rt] MDR
58Diseño del procesador
Instrucción de CARGA (LW): Etapa 1 ALUSrcA= 0ALUSrcB = 11ALUOp =00
MemReadALUSrcA= 0
IorD= 0IRWrite
ALUSrcB = 01ALUOp = 00
PCWritePCSource= 00
Instruction fetchInstruction decode/
Register fetch0
1
Start
T1
(Op
=' JM
P')
Memory reference FSM(Figure 5.38)
R-type FSM(Figure 5.39)
BranchFSM(Figure 5.40)
Jump FSM(Figure5.41)
IorDMemRead
PCWriteCondPCWrite ALUOp
ALUSrcB
PCSource
Outputs
MemRead
MemWrite
MemtoReg
IRWrite
ALUSrcA
RegDst
RegWriteControl
Op[5–0]
Mux
0
Jumpaddress [31-0]Instruction[25–0] 26 28
Shift1
PCMux
0
1Read
data1
Readregister 1
Readregister 2
Instruction[25–21]
Instruction[20–16] ALU
ZeroA
Instruction[31-26]
2address [31 0]Instruction[25 0] Shift
left 2
PC [31-28]
Mux
0
1Memory
Address
RegistersWriteregister
Writedata
Readdata2
g
Instruction[15–11]
Mux
0
1
Mu
0
4
Instruction[15–0]
[ ]
Instruction[15–0]
Instructionregister
ALUresult
ALU
B
1 Mux
0
32
ALUOutMemData
Writedata
Shiftleft 2
ux1
Signextend
3216 ALUcontrol
Memorydata
register
Instruction[5–0]Instruction[5–0]
59Diseño del procesador
Instrucción de CARGA (LW): Etapa 2 ALUSrcA= 0ALUSrcB = 11ALUOp = 00
MemReadALUSrcA= 0
IorD= 0IRWrite
ALUSrcB = 01ALUOp = 00
PCWritePCSource= 00
Instruction fetchInstruction decode/
Register fetch0
1
Start
T2
(Op
=' JM
P')
Memory reference FSM(Figure 5.38)
R-type FSM(Figure 5.39)
BranchFSM(Figure 5.40)
Jump FSM(Figure 5.41)
IorDMemRead
PCWriteCondPCWrite ALUOp
ALUSrcB
ALUSrcA
PCSource
Outputs
MemWrite
MemtoReg
IRWrite
ALUSrcA
RegDst
RegWriteControl
Op[5–0]
Mux
0
2
Jumpaddress [31-0]Instruction[25–0] 26 28
Shiftf 2
1
PCMux
0
1Registers
Readdata1
Readregister 1
Readregister 2
0
Instruction[25–21]
Instruction[20–16]
ALUALUZeroA
Instruction[31-26]
2left 2
PC [31-28]
Mux
0
1ALUOut
MemoryMemData
Address
RegistersWriteregister
Writedata
Readdata2Instruction
[15–11]
Mux
0
1
Mux
0
4
Instruction[15–0]
Instruction[15–0]
Instructionregister
ALUresultB
1 Mux
0
32
ALUOutMemData
Writedata
Shiftleft 2
x1
Signextend
3216 ALUcontrol
Memorydata
register
Instruction[5–0]
60Diseño del procesador
Instrucción de CARGA (LW): Etapa 3
T3
IorDMemRead
PCWriteCondPCWrite ALUOp
ALUSrcB
ALUSrcA
PCSource
Outputs
MemWrite
MemtoReg
IRWrite
ALUSrcA
RegDst
RegWriteControl
Op[5–0]
Mux
0
2
Jumpaddress [31-0]Instruction[25–0] 26 28
Shiftl ft 2
1
PCMux
0
1Registers
Readdata1
Readregister 1
Readregister 2
0
Instruction[25–21]
Instruction[20–16]
ALUALUZeroA
Instruction[31-26]
2left 2
PC [31-28]
Mux
0
1ALUOut
MemoryMemData
Address
ALUSrcA= 1
Memory address computation
(Op = 'LW') or (Op = 'SW')
2
Fromstate 1
RegistersWriteregister
Writedata
Readdata2Instruction
[15–11]
Mux
0
1
Mux
0
4
Instruction[15–0]
Instruction[15–0]
Instructionregister
ALUresultB
1 Mux
0
32
ALUOutMemData
Writedata
ALUSrcA= 1ALUSrcB= 10ALUOp= 00
Memoryaccess
(Op
='L
W' )
Memoryaccess
Shiftleft 2
x1
Signextend
3216 ALUcontrol
Memorydata
register
Instruction[5–0]
MemWriteIorD= 1
MemReadIorD =1
Write-backstep
53
RegWriteMemtoReg = 1
RegDst = 0
Write backstep4
To state 0(Figure 5.37)
61Diseño del procesador
Instrucción de CARGA (LW): Etapa 4
T4
IorDMemRead
PCWriteCondPCWrite ALUOp
ALUSrcB
PCSource
Outputs
MemWrite
MemtoReg
IRWrite
ALUSrcA
RegDst
RegWriteControl
Op[5–0]
Mux
0
Jumpaddress [31-0]Instruction[25–0] 26 28
Shift1
PCMux
0
1Read
data1
Readregister 1
Readregister 2
0
Instruction[25–21]
Instruction[20–16]
ALUALUZeroA
Instruction[31-26]
2[ ] Shift
left 2
PC [31-28]
Mux
0
1ALUO t
MemoryM D t
Address
ALUSrcA= 1
Memory address computation
(Op = 'LW') or (Op = 'SW')
2
Fromstate 1
RegistersWriteregister
Writedata
Readdata2Instruction
[15–11]
Mux
0
1
Mu
0
4
Instruction[15–0]
Instruction[15–0]
Instructionregister
ALUresult
ALU
B
1 Mux
0
32
ALUOutMemData
Writedata
ALUSrcA= 1ALUSrcB= 10ALUOp= 00
Memoryaccess
(Op
='L
W' )
Memoryaccess
Shiftleft 2
x1
Signextend
3216 ALUcontrol
Memorydata
register
Instruction [5–0]
MemWriteIorD= 1
MemReadIorD =1
Write-backstep
53
[ ]
RegWriteMemtoReg = 1
RegDst = 0
Write backstep4
To state 0(Figure 5.37)
62Diseño del procesador
Instrucción de CARGA (LW): Etapa 5
T5
IorDMemRead
MemWrite
PCWriteCondPCWrite ALUOp
ALUSrcB
ALUSrcA
PCSource
RegWriteControl
Outputs
MemtoReg
IRWrite RegDst
RegWrite
Op[5–0]
Instruction
Mux
0
2
Jumpaddress [31-0]Instruction[25–0] 26 28
Shiftleft 2
1
PCMux
0
1Registers
Writeregister
Readdata1
Readd t 2
Readregister 1
Readregister 2
I t tiMu
0
Instruction[25–21]
Instruction[20–16]
Instruction[15–0]
ALUresult
ALUZeroA
B
[31-26] PC [31-28]
0
Mux
0
1ALUOut
MemoryMemData
Address
ALUSrcA= 1
Memory address computation
(Op = 'LW') or (Op = 'SW')
2
Fromstate 1
register
Writedata
data2Instruction[15–11]
ux1
Mux
0
1
4
Instruction[15–0]
[15–0]Instruction
register
Memory
1 Mux
0
32
Writedata
ALUSrcA= 1ALUSrcB= 10ALUOp= 00
Memoryaccess
(Op
='L
W' )
Memoryaccess
Shiftleft 2
Signextend
3216 ALUcontrol
ydata
register
Instruction[5–0]
MemWriteIorD= 1
MemReadIorD =1
Write-backstep
53
RegWriteMemtoReg = 1
RegDst = 0
Write backstep4
To state 0(Figure 5.37)
63Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
64Diseño del procesador
Diseño Diseño multiciclomulticiclo -- Diseño de la unidad controlDiseñ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 estadosj▫ Función estado siguiente
▪ Si ×Ij Sk
▫ Función salida ▪ Máquinas de Moore: Si Ok▪ Máquinas de Mealy: Si ×Ij Ok
Control microprogramadoControl microprogramadoEspecificación del control mediante un programaNecesaria para simplificar la especificación de una UC compleja
65Diseño del procesador
Ruta de Ruta de datos datos multiciclomulticiclo completo con las señales de controlcompleto con las señales de control
IorD
MemRead
PCWriteCond
PCWrite ALUOp
ALUSrcB
ALUSrcA
PCSource
Outputs
MemWrite
MemtoReg
IRWrite
ALUSrcA
RegDst
RegWrite
Control
Op[5– 0]
Mux
0
2
Jumpaddress [31-0]Instruction [25–0] 26 28
Shiftl ft 2
1
PCMux
0
1
Registers
Readdata 1
Readregister 1
Readregister 2
0
Instruction[25– 21]
Instruction[20– 16]
ALUALUZeroA
Instruction[31-26]
2left 2
PC [31-28]
Mux
0
1ALUOut
Memory
MemData
Address
RegistersWriteregister
Writedata
Readdata 2Instruction
[15– 11]
Mux1
Mux
0
4
Instruction[15– 0]
Instruction[15–0]
Instructionregister
resultB
1 Mux
0
32
MemData
Writedata
Shiftleft 2
x1
Signextend
3216 ALUcontrol
Memorydata
register
Instruction [5– 0]
66Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
67Diseño del procesador
Control cableado Control cableado -- FSMFSM
Representación abstractaEtapas 1 y 2 comunes a
Start
p ytodas las instrucciones
Memory access R-type instructions Branch instruction Jump instruction
Instruction fetch/decode and register fetch(Figure 5.37)
Diagrama de estados
instructions(Figure 5.38)
R-type instructions(Figure 5.39)
Branch instruction(Figure 5.40)
Jump instruction(Figure 5.41)
gEtapas 1 y 2
ALUSrcA = 0ALUSrcB = 11
MemReadALUSrcA = 0
IorD = 0IRWrite
ALUSrcB = 01
Instruction fetchInstruction decode/
Register fetch0
1
StartALUOp = 00
ALUSrcB 01ALUOp = 00
PCWritePCSource = 00
='J
MP '
)( O
p
Memory reference FSM(Figure 5.38)
R-type FSM(Figure 5.39)
Branch FSM(Figure 5.40)
Jump FSM(Figure 5.41)
68Diseño del procesador
Control cableado Control cableado –– FSM completaFSM completa
ALUSrcA = 0ALUSrcB = 11ALUO 00
MemReadALUSrcA = 0
IorD = 0IRWrite
ALUSrcB 01
Instruction fetchInstruction decode/
register fetch0
1
StartALUOp = 00ALUSrcB = 01
ALUOp = 00PCWrite
PCSource = 00
Jumpcompletion
BranchcompletionExecution
Memory addresscomputation (O
p=
'J')
PCWritePCSource = 10
ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond
PCSource = 01
ALUSrcA =1ALUSrcB = 00ALUOp= 10
ALUSrcA = 1ALUSrcB = 10ALUOp = 00
p9862
RegDst = 1
Memoryaccess
Memoryaccess R-type completion(O
p=
'LW
')
753
gRegWrite
MemtoReg = 0MemWriteIorD = 1
MemReadIorD = 1
Write-back step4
RegDst=0RegWrite
MemtoReg=1
4
69Diseño del procesador
Control cableado Control cableado –– Especificación de la UC con una FSMEspecificación de la UC con una FSM
Entradas SalidasCódigo Operación Estado Actual Estado
Siguiente Señales de Control para el Camino de Datos
op5 op
4
op3
op2
op1
op0
s3 s2 s1 s0 ns3
ns2
ns1
ns0
pCW
rite
PCW
riteC
ond
IorD
Mem
Rea
d
Mem
Writ
e
IRW
Rite
Mem
ToR
eg
PC
Sou
rce1
PC
Sou
rce0
ALU
Op1
ALU
op0
ALU
SrcB
1
ALU
SrcB
0
ALU
SrcA
Reg
writ
e
Reg
Dst
o
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
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 01 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 02 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 03 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 04 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 05 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 06 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 07 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 17 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 18 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 09 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
70Diseño del procesador
Control cableado Control cableado -- Implementación de la FSMImplementación de la FSM
Unidad de control = Lógica de control + Registro de EstadoReg. Estado: Se escribe en cada flanco de reloj y es estable durante el ciclo
PCWrite
PCWriteCondIorDMemRead
MemtoRegPCSourceALUOp
IRWriteMemWrite
Control logic
ALUSrcBALUSrcARegWriteRegDst
NS3
Outputs
Estado Siguiente
NS3NS2NS1NS0
p5 p4 p3 p2 p1 p0 3 2 0
Inputs
Op
Op
Op
Op
Op
Op
S3 S2 S1 S 0State registerInstruction register
opcode field Estado Actual
71Diseño del procesador
Control cableado Control cableado –– Ecuaciones de Ecuaciones de implementimplement. de la FSM. de la FSM
Señal Control Ecuación lógicaNS3 -> (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 6NS2 >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 6NS0 -> 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 5MemWrite -> Estado 5
IRWrite -> Estado 0
MemToReg -> Estado 4
PCSource1 -> Estado 9
PCSource0 -> Estado 8
ALUOp1 -> Estado 6
ALUOp0 -> Estado 8
ALUSrcB1 -> Estado 1 + Estado 2ALUSrcB1ALUSrcB0 -> Estado 0 + Estado 1
ALUSrcA -> Estado 2 + Estado 6 + Estado 8
RegWrite -> Estado 4 + Estado 7
R D t > Estado 7RegDst -> Estado 7
72Diseño del procesador
Control cableado Control cableado -- Implementación de FSM con ROMImplementación de FSM con ROM
Diseño unificado Tamaño: 210 × 20 = 20Kb6 bits código de operación + 4 bits de
PCWrite
PCWriteCondIorD
MemtoRegIRWrite
MemReadMemWrite
Control logic
Tamaño:20 Kbits vs 4.25 Kbits
PCWrite
PCWriteCondIorD
MemtoRegIRWrite
MemReadMemWrite
PCWrite
PCWriteCondIorD
MemtoRegIRWrite
MemReadMemWrite
Control logic
Tamaño:20 Kbits vs 4.25 Kbits
g plos estados = 210 posiciones de memoria16 salidas de control + 4 salidas de nuevo estado = 20 bits de anchura
MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst
Outputs
MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst
MemtoRegPCSourceALUOpALUSrcBALUSrcARegWriteRegDst
Outputs
Diseño no unificadoTamaño: 4.25KbROM de señales de salida (T ñ 24 × 16 256b) RegDst
NS3NS2NS1NS0
Op5
Op4
Op3
Op2
Op1
Op0
S3 S2 S1 S0
Inputs
RegDst
NS3NS2NS1NS0
Op5
Op4
Op3
Op2
Op1
Op0
S3 S2 S1 S0
RegDst
NS3NS2NS1NS0
Op5
Op4
Op3
Op2
Op1
Op0
S3 S2 S1 S0
Inputs
(Tamaño = 24 × 16 = 256b)▫ 4 bits de los estados = 24 posiciones
de memoria▫ 16 salidas de control = 16 bits de
anchura O O O O O O S S S S
State registerInstruction registeropcode field
O O O O O O S S S S
State registerInstruction r
O O O O O O S S S S
State registerInstruction registeropcode field
anchuraROM de nuevo estado(Tamaño 210 × 4 = 4Kb)▫ 6 bits código de operación + 4 bits de
los estados = 210 posiciones delos estados = 2 posiciones de memoria
▫ 4 salidas de nuevo estado = 4 bits de anchura
73Diseño del procesador
Control cableado Control cableado -- Implementación de FSM con PLAImplementación de FSM con PLA
Op5
Op4
Op3Tamaño de la PLA Op3
Op2
Op1
Op0
Tamaño de la PLA#inputs × #minterms + #outputs × #minterms =
S3
S2
S1
S0
#outputs × #minterms (10 × 17) + (20 × 17) = 510 celdas
S0
IorDMemReadMemWrite
PCWritePCWriteCond
IRWriteMemtoRegPCSource1
ALUOp1
ALUSrcB0ALUSrcB1ALUOp0
PCSource0
ALUSrcB0ALUSrcARegWriteRegDstNS3NS2NS1NS0NS0
74Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
75Diseño del procesador
Diseño de la UC Diseño de la UC –– Control Control microprogramadomicroprogramado
PCWritePCWriteCond
Control unit PCWritePCWriteCond
Control unit PCWritePCWriteCond
Control unit PCWritePCWriteCond
Control unit
El control se especifica como un programa (microprograma)
PCWriteCondIorD
MemtoRegPCSource
Outputs
Microcode memory
IRWrite
MemReadMemWrite
Datapath
BWrite
PCWriteCondIorD
MemtoRegPCSource
Outputs
Microcode memory
IRWrite
MemReadMemWrite
Datapath
BWrite
PCWriteCondIorD
MemtoRegPCSource
Outputs
Microcode memory
IRWrite
MemReadMemWrite
PCWriteCondIorD
MemtoRegPCSource
Outputs
Microcode memory
IRWrite
MemReadMemWrite
Datapath
BWrite
que está compuesto por instrucciones ( i i t i ) q e están ALUOp
ALUSrcBALUSrcARegWrite
AddrCtlRegDst
Input
1
ALUOpALUSrcBALUSrcARegWrite
AddrCtlRegDst
Input
1
ALUOpALUSrcBALUSrcARegWrite
AddrCtlRegDst
Input
ALUOpALUSrcBALUSrcARegWrite
AddrCtlRegDst
Input
1
(microinstrucciones) que están almacenadas en una memoria (memoria de microcódigo)
Microprogram counter
Address select logic
Adder
1
Microprogram counter
Address select logic
Adder
1
Microprogram counter
Address select
Microprogram counter
Address select logic
Adder
1(memoria de microcódigo)
Un registro (contador de i ) i di ál
Op[
5–0]
Instruction registeropcode field
Op[
5–0]
Instruction registeropcode field
Op[
5–0]
Instruction registeropcode field
microprograma) indica cuál es la siguiente microinstrucción a ejecutar opcode field
Secuenciadorexterno
opcode fieldopcode fieldSecuenciador
externoSecuenciador
externo
ejecutar.
76Diseño del procesador
Control Control microprogramadomicroprogramado –– Formato de la microinstrucciónFormato de la microinstrucción
Control SRC1 SRC2 Control Memoria Control Secuenciamiento
7 campos: 6 campos de control + 1 campo de secuenciación
ALU SRC1 SRC2 Registro Memoria PCWrite Secuenciamiento
Nombre del campo Función del campo Valores del campoControl ALU Especifica la operación que va a realizar la ALU addControl ALU Especifica la operación que va a realizar la ALU
durante el ciclo. subtFunc code
SRC1 Especifica la fuente para el primer operando dela ALU
PCA
SRC2 Especifica la fuente para el segundo operando Bde la ALU 4
ExtendExtShft
Control Registro Especifica el número de registro y fuente deldato que se escribe en el mismo
ReadWrite ALU (rd <- ALUout)Write MDR (rt <- MDR)Write MDR (rt MDR)
Memoria Especifica lectura o escritura y la fuente de ladirección
Read PC (IR <- M[PC])Read ALU (MDR <- M[ALUout]Write ALU (M[ALUout] <- B)
Control PCWrite Especifica la escritura del PC ALUALUOut-CondJ AddJump Address
Secuenciamiento Especifica la siguiente microinstrucción que seva a ejecutar
SeqFetchDispatch i
77Diseño del procesador
Control Control microprogramadomicroprogramado–– Señales asociadas a los campos y valoresSeñales asociadas a los campos y valores
C o n tro l A L UA L U o p 1 A L U O p 0
O p e ra c ió nS R C 2
A LU S rB 1 A LU S rcB 0O peración
S R C 1A d d rS rc A
O p e ra c ió n
0 0 S u m a0 1 R e s ta1 0 F u n c . c o d e
0 0 B0 1 41 0 E xtend1 1 E xtS hft
0 P C1 A
R e g is te r C o n tro lR e g W rite R e g D s t M e m T o R e g
O p e r.
1 1 0 W rite A L U
M e m o riaIR W rite M e m R e a d M em W rite Io rD
O p er.
1 1 0 0 R d P C
R e g is te r C o n tro lR e g W rite R e g D s t M e m T o R e g
O p e r.
1 1 0 W rite A L U
M e m o riaIR W rite M e m R e a d M em W rite Io rD
O p er.
1 1 0 0 R d P C1 1 0 W rite A L U1 0 1 W rite M D R
1 1 0 0 R e a d P C0 1 0 1 R e a d A LU0 0 1 1 W rite A L U
1 1 0 W rite A L U1 0 1 W rite M D R
1 1 0 0 R e a d P C0 1 0 1 R e a d A LU0 0 1 1 W rite A L U
Control PCWritePCSrc1 PcSrc0 PCwrite PCWrtCond
Oper.
0 0 1 0 ALU0 1 0 1 ALUOut-Cond
S ecA ddrC tl1 A ddrC tl0
O peración
1 1 S eq.0 0 Fetch
Control PCWritePCSrc1 PcSrc0 PCwrite PCWrtCond
Oper.
0 0 1 0 ALU0 1 0 1 ALUOut-Cond
S ecA ddrC tl1 A ddrC tl0
O peración
1 1 S eq.0 0 Fetch
0 1 0 1 ALUOut Cond1 0 1 0 Jump address
0 1 D ispatch11 0 D ispatch2
0 1 0 1 ALUOut Cond1 0 1 0 Jump address
0 1 D ispatch11 0 D ispatch2
78Diseño del procesador
Control Control microprogramadomicroprogramado –– Microprograma de la UCMicroprograma de la UC
Control ALU SRC1 SRC2 ControlRegistro Memoria Control PCWrite Sec.
1 0 eg d e e1 e0 Con
d
Alu
op1
Alu
op0
Alu
Src
A
ALU
SrcB
1
ALU
SrcB
0
Reg
Writ
e
Reg
Dst
Mem
ToR
e
IRW
rite
Mem
Rea
d
IorD
Mem
Writ
e
PC
Sou
rce
PC
Sou
rce
PC
Writ
e
PC
Writ
eC
Add
rCtl1
Add
rCtl0
18 señales de control ->
Estado Etiqueta ControlALU
SRC1 SRC2 ControlRegistros
Memoria ControlPCWrite
Secuenc.
0 Fetch Add PC 4 Read PC ALU Seq.1 Add PC Extshft Read Dispatch 11 Add PC Extshft Read Dispatch 12 Mem1 Add A Extend Dispatch 23 LW2 Read ALU Seq4 Write MDR Fetch5 SW2 Write ALU Fetch6 Rformat1 Func
CodA B Seq
7 Write ALU Fetch8 BEQ1 Subt A B ALUOut- Fetch
cond9 JUMP1 Jump
AddressFetch
79Diseño del procesador
Diseño de la UC Diseño de la UC –– Control Control microprogramadomicroprogramado
PCWritePCWriteCond
Control unit PCWritePCWriteCond
Control unit PCWritePCWriteCond
Control unit PCWritePCWriteCond
Control unit
El estado siguiente es frecuentemente el estado PCWriteCond
IorD
MemtoRegPCSource
Outputs
Microcode memory
IRWrite
MemReadMemWrite
Datapath
BWrite
PCWriteCondIorD
MemtoRegPCSource
Outputs
Microcode memory
IRWrite
MemReadMemWrite
Datapath
BWrite
PCWriteCondIorD
MemtoRegPCSource
Outputs
Microcode memory
IRWrite
MemReadMemWrite
PCWriteCondIorD
MemtoRegPCSource
Outputs
Microcode memory
IRWrite
MemReadMemWrite
Datapath
BWrite
frecuentemente el estado actual + 1
ALUOpALUSrcBALUSrcARegWrite
AddrCtlRegDst
Input
1
ALUOpALUSrcBALUSrcARegWrite
AddrCtlRegDst
Input
1
ALUOpALUSrcBALUSrcARegWrite
AddrCtlRegDst
Input
ALUOpALUSrcBALUSrcARegWrite
AddrCtlRegDst
Input
1
Las señales de control están almacenadas en una memoria
Microprogram counter
Address select logic
Adder
1
Microprogram counter
Address select logic
Adder
1
Microprogram counter
Address select
Microprogram counter
Address select logic
Adder
1memoria
Op[
5–0]
Instruction registeropcode field
Op[
5–0]
Instruction registeropcode field
Op[
5–0]
Instruction registeropcode fieldopcode field
Secuenciadorexterno
opcode fieldopcode fieldSecuenciador
externoSecuenciador
externo
80Diseño del procesador
Control Control microprogramadomicroprogramado ––Secuenciador del Secuenciador del microprogramamicroprograma
La lógica de selección de direcciones genera la dirección de la siguiente microinstrucción a ejecutarg j
S ecA ddrC tl1 A ddrC tl0
O perac ión
1 1 S eq
S ecA ddrC tl1 A ddrC tl0
O perac ión
1 1 S eq
State
Adder
1
PLA or ROM
1 1 S eq.0 0 Fe tch0 1 D ispa tch11 0 D ispa tch2
State
Adder
1
PLA or ROM
State
Adder
1
PLA or ROM
1 1 S eq.0 0 Fe tch0 1 D ispa tch11 0 D ispa tch2
Mux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtlMux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtlMux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtl
Op
Address select logic
Instruction registeropcode field
Dispatch ROM1Op [5:0] Nombre Valor
000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)
Dispatch ROM2Op [5:0] Nombre Valor
100011 lw LW2 (3)101011 sw SW2 (5)
Op
Address select logic
Instruction registeropcode field
Op
Address select logic
Instruction registeropcode field
Dispatch ROM1Op [5:0] Nombre Valor
000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)
Dispatch ROM2Op [5:0] Nombre Valor
100011 lw LW2 (3)101011 sw SW2 (5) 000100 beq BEQ1 (8)
100011 lw MEM1 (2)101011 sw MEM1 (2)
( ) 000100 beq BEQ1 (8)100011 lw MEM1 (2)101011 sw MEM1 (2)
( )
81Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
82Diseño del procesador
Excepciones e interrupcionesExcepciones e interrupcionesDefiniciones
Eventos inesperados que cambian el flujo normal de ejecución de las instruccionesinstruccionesExcepción▫ Evento que tiene su origen en el interior del procesador (desbordamiento
aritmético instrucción ilegal etc )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 )entrada/salida, fallo de página, etc.)
Tipo de evento ¿Desde dónde? Terminología MIPSPetición dipositivo E/S Exterior InterrupciónPetición dipositivo E/S Exterior InterrupciónInvocar Sistema Operativo desdeel programa de usuario
Interior Excepción
Desbordamiento aritmético Interior ExcepciónInstrucción ilegal o no definida Interior ExcepciónFallo hardware Cualquiera Excepción/interrupción
83Diseño del procesador
Tratamiento de excepciones en MIPSTratamiento de excepciones en MIPSLas 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 CauseTransferir el control al Sistema Operativo en alguna dirección especificadaTransferir el control al Sistema Operativo en alguna dirección especificada (0xC00000000) donde se tratará la excepción (ejecución de una rutina de servicio)
ProgramaInterrupción
Rutina de serviciode la interrupción
Programa
de la interrupciónSalto a rutina de servicio
Retorno de la rutina de servicio
84Diseño del procesador
Implementación de excepciones en MIPSImplementación de excepciones en MIPS
Excepciones a implementarDesbordamiento aritmético Instrucción ilegal o no definida
Registros adicionales requeridosEPC R i t d 32 bit d l di ió d l i t ióEPC: Registro de 32 bits para guardar la dirección de la instrucción causante de la excepciónCAUSE: Registro de 32 bits para registrar la causa de la excepción. U ili ól l bi i ifi iUtilizaremos sólo el bit menos significativo▫ bit 0 = 0 → Instrucción ilegal▫ bit 0 = 1 → Desbordamiento aritmético
Señales de control adicionalesIntcause (0: instrucción ilegal - 1: desbordamiento)C W it (1 it l i t CAUSE 0 ib )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)
85Diseño del procesador
Especificación de la UC con soporte de excepcionesEspecificación de la UC con soporte de excepciones
ALUSrcA = 0
MemReadALUSrcA = 0
IorD = 0IRWrite
Instruction fetchInstruction decode/
Register fetch01
ALUSrcB = 11ALUOp = 00
IRWriteALUSrcB = 01ALUOp = 00
PCWritePCSource = 00
JumpBranchMemory address Op
='J '
)
Start
ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond
PCSource = 01
ALUSrcA = 1ALUSrcB = 00ALUOp = 10
ALUSrcA = 1ALUSrcB = 00ALUOp = 00
Jumpcompletion
BranchcompletionExecution
Memory addresscomputation (O
9862
PCWritePCSource = 10
Memoryaccess
Memoryaccess R-type completion(O
p=
'LW
')
7 11 1053IntCause = 0CauseWrite
IntCause = 1CauseWrite
RegDst = 1RegWrite
MemtoReg = 0MemWriteIorD = 1
MemReadIorD = 1
Write back step
OverflowALUSrcA = 0
ALUSrcB = 01ALUOp = 01
EPCWritePCWrite
PCSource = 11
ALUSrcA = 0ALUSrcB = 01ALUOp = 01
EPCWritePCWrite
PCSource = 11
RegWriteMemtoReg = 1RegDst = 0
Write-back step4 Overflow
86Diseño del procesador
Ruta de Ruta de datos datos con con soporte de excepcionessoporte de excepciones
IorD
MemRead
PCWriteCond
PCWriteOutputs
ALUOpPCSourceEPCWriteIntCauseCauseWrite
MemWrite
MemtoReg
IRWrite
Control
Op[5–0]
Mux
0
2
Jumpaddress [31-0]Instruction [25–0] 26 28
Shiftleft 2
1
ALUSrcBALUSrcA
RegDstRegWrite
Memory
MemData
Mux
0
1
Instruction[25–21]
Instruction[20–16]
Instruction[15 0]
ALUresult
ALUZeroA
B
Instruction[31-26]
left 2
PC [31-28]
Address
EPC
CO0000 00 3
Mux
0
1
M0
PC
RegistersWrite
i t
Readdata 1
Read
Readregister 1
Readregister 2
ALUOut
Writedata
Instruction[15–11]
Mux
0
1
4
Instruction[15–0]
3216
[15–0]Instruction
register
ALUMemory
data
B
Cause
1
0
1 Mux
0
32
ux
1
Mux
0
1
register
Writedata
data 2
11
ALUSrcA = 0�ALUSrcB = 01�ALUOp = 01�
EPCWrite�PCWrite�
�
�
IntCause = 1�CauseWrite
Shiftleft 2
Signextend
3216 ALUcontrol
dataregister
Instruction [5–0]
10
To state 0 to begin next instruction�
ALUSrcA = 0�ALUSrcB = 01�ALUOp = 01�
EPCWrite�
�
�
IntCause = 0�CauseWrite
PCWrite�PCSource = 11�PCSource = 11
�PC++Source = 11
PCWrite��
87Diseño del procesador
Instrucciones para excepciones en MIPSInstrucciones 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
ó it i l $ t (0 CAUSE 1 EPC)propósito especial $rt (0 para CAUSE, 1 para EPC) Tipo R▫ 010000 0000 ttttt ddddd 00000000000
mtc0 $rd $rt (move to coprocesador 0)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 $rdTipo Rp▫ 010000 0100 ttttt ddddd 00000000000
rfe (return from exception)Transfiere el contenido del EPC al registro contador de programag p gTipo J▫ 010000 10000000000000000000100000
88Diseño del procesador
Estructura del temaEstructura del tema
Metodología de sincronizaciónDiseño de un procesador MIPS R3000 reducidoDiseño de un procesador MIPS R3000 reducido
Rutas de datos individualesDiseñ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 interrupcionesExcepciones e interrupcionesResumen y bibliografía
89Diseño del procesador
ResumenResumen
Para diseñar un procesador es necesario diseñar en primer lugar el repertorio de instruccionesp
A continuación se diseña la ruta de datos que es capaz de ejecutar el repertorio de instrucciones
El siguiente paso es diseñar la unidad de controlEl siguiente paso es diseñar la unidad de control
El manejo de excepciones es la parte difícil del control.j p p
90Diseño del procesador
BibliografíaBibliografía
Estructura y diseño de computadores: interficiecircuitería/programacióncircuitería/programaciónCapítulo 5 David A. Patterson, John L. HennessyEditorial Reverté, 1999
91Diseño del procesador