verano 2004
DESCRIPTION
Organización del Computador I Verano Procesador Uniciclo Basado en el capítulo 5 del libro de Patterson y Hennessy. Verano 2004. Profesora Borensztejn. Diseño del procesador uniciclo. Cada instrucción se ejecuta en un único ciclo de reloj CPI=1 para todas las instrucciones - PowerPoint PPT PresentationTRANSCRIPT
1Diseño del procesador unicicloUnidad 1
Organización del Computador I Verano
Procesador Uniciclo Basado en el capítulo 5 del libro de Patterson y Hennessy
Verano 2004 Profesora Borensztejn
Unidad 1 Diseño del procesador uniciclo 2
Diseño del procesador uniciclo
• Cada instrucción se ejecuta en un único ciclo de reloj
• CPI=1 para todas las instrucciones
• El período de reloj debe ser el de la instrucción más costosa: camino crítico
• Diseño poco flexible, pero fácil de comprender! Y de implementar!!
Unidad 1 Diseño del procesador uniciclo 3
Metodología de sincronización
Lógica Combinatoria
estado estado
El ciclo de reloj debe permitir que las salidas del bloque combinacional se estabilicen Actualización
del estado
Unidad 1 Diseño del procesador uniciclo 4
Metodología de sincronización
Lógica Combinatoria
estado
Un elemento de estado puede leerse y escribirse en el mismo ciclo.
Actualización del estado
Lectura y lógica
Unidad 1 Diseño del procesador uniciclo 5
Diseño: Pasos necesarios• 1er Paso: Analizar el conjunto de instrucciones para
determinar los requerimientos del Camino de Datos• 2o Paso: Seleccionar los componentes • 3er Paso: Construir el Camino de Datos según los
requerimientos• 4o Paso: Analizar la implementación de cada
instrucción para determinar las señales de control necesarias
• 5o Paso: Construir el Control.
Unidad 1 Diseño del procesador uniciclo 6
1er Paso: Formato MIPS de Instrucción
Son todas de 32 bits. Tres formatos:
• Tipo R
• Tipo I
• Tipo J
op rs rt rd shamt funct
op rs rt Address/inmediate
31 26 21 16 11 6 0
31 26 21 16 0
op Target Address
31 26 0
Unidad 1 Diseño del procesador uniciclo 7
op rs rt rd shamt funct
31 26 21 16 11 6 0
op rs rt Address/inmediate
31 26 21 16 0
1er Paso: Subconjunto MIPS• ADD y SUB
– addu rd ,rs ,rt
– subu rd, rs ,rt
• OR inmediato– ori rt, rs, inm16
• LOAD and STORE– lw rt, rs, inm16
– sw rt, rs, inm16
• BRANCH– beq rs, rt, inm16
op rs rt Address/inmediate
31 26 21 16 0
op rs rt Address/inmediate
31 26 21 16 0
Unidad 1 Diseño del procesador uniciclo 8
1er Paso: RTLTodas las instrucciones comienzan haciendo el fetchADDU R[rd]<--R[rs]+R[rt]; PC<--PC+4
SUBU R[rd]<--R[rs]-R[rt]; PC<--PC+4
ORI R[rt]<--R[rs]|zero_ext(Inm16); PC<--PC+4
LOAD R[rt]<--Mem[R[rs]+sign_ext(Inm16)]; PC<--PC+4
STORE Mem[R[rs]+sign_ext(Inm16)]<-- R[rt]; PC<--PC+4
BEQ if (R[rs]==R[rt]) then PC<--PC+4+(sign_ext(Inm16)*4)
else PC<--PC+4
Unidad 1 Diseño del procesador uniciclo 9
1er Paso: Requerimientos del Conjunto de Instrucciones
• Memoria
– Instrucciones y Datos
• Registros (32x32)
– Leer rs
– Leer rt
– Escribir rt o rd
• PC
• Extensor de signo
• Sumar y Restar registros y/o valores inmediatos
• Operaciones lógicas(and/or) registros y/o valores inmediatos
• Sumar 4 al PC o 4+inmediato extendido *4
Unidad 1 Diseño del procesador uniciclo 10
2o Paso: Componentes del Camino de Datos
PC
Instructionmemory
Instructionaddress
Instruction
a. Instruction memory b. Program counter
Add Sum
c. Adder
ALU control
RegWrite
RegistersWriteregister
Readdata 1
Readdata 2
Readregister 1
Readregister 2
Writedata
ALUresult
ALU
Data
Data
Registernumbers
a. Registers b. ALU
Zero5
5
5 3
16 32Sign
extend
b. Sign-extension unit
MemRead
MemWrite
Datamemory
Writedata
Readdata
a. Data memory unit
Address
Unidad 1 Diseño del procesador uniciclo 11
2o Paso: Componentes del Camino de Datos
• Elementos Combinacionales
– Sumador , ALU y Multiplexor
A
B
32
32
32+
Suma
32
32
32
A
B
Op
ResultadoA
LU
Sel
A
B
32
32
32
MU
X
Unidad 1 Diseño del procesador uniciclo 12
2o Paso: Componentes del Camino de Datos
• Elementos de Almacenamiento: Banco de Registros
WE
CLK
Data Out
Data In 32
32
RegW
CLK
LRA
LRB
ER
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
Unidad 1 Diseño del procesador uniciclo 13
2o Paso: Componentes del Camino de Datos
• Elementos de Almacenamiento: Banco de Registros: dos puertos de lectura
Mux
Register 0
Register 1
Register n – 1
Register n
Mux
Read data 1
Read data 2
Read registernumber 1
Read registernumber 2
RegW
CLK
LRA
LRB
ER
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
Unidad 1 Diseño del procesador uniciclo 14
2o Paso: Componentes del Camino de Datos
• Elementos de Almacenamiento: Banco de Registros: un puerto de escritura
n-to-1decoder
Register 0
Register 1
Register n – 1C
C
D
DRegister n
C
C
D
D
Register number
Write
Register data
0
1
n – 1
n
RegW
CLK
LRA
LRB
ER
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
Unidad 1 Diseño del procesador uniciclo 15
2o Paso: Componentes del Camino de Datos
• Elementos de Almacenamiento:– Memorias
direccióninstrucción
Memoria de Instrucciones
3232
WE
CLK
dirección
Dato In
Dato Out
Memoria de Datos
32
32
32
Unidad 1 Diseño del procesador uniciclo 16
3er Paso:Construcción del Camino de DatosFetch de Instrucciones
• Mem[PC]; PC<-- PC+4 (código secuencial)
direccióninstrucción
Memoria de Instrucciones
3232
4
32
32
32+
PC
WE
CLK
Unidad 1 Diseño del procesador uniciclo 17
3er Paso:Construcción del Camino de DatosFormato R: Addu y Subu
ADDU R[rd]<--R[rs]+R[rt]; PC<--PC+4
SUBU R[rd]<--R[rs]-R[rt]; PC<--PC+4
32
RegW
CLK
rs
rt
rd
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
Inst
rucc
ión LRA
LRB
WR
ALUctr
Unidad 1 Diseño del procesador uniciclo 18
3er Paso:Construcción del Camino de DatosFormato I: lógicas con Inmediato
ORi R[rt]<--R[rs]op ZeroExtR[inm16]; PC<--PC+4
32
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
Inst
rucc
ión
LRA
LRB
WR
ALUctr
rd
RegDst
MU
X
ZeroE
xt
Inm1632
MUX
Alusrc
Unidad 1 Diseño del procesador uniciclo 19
3er Paso:Construcción del Camino de DatosFormato I: LOAD
Lw rt,rs,inmm1 6
R[rt]<--Mem[R[rs]+ SignExt[inm16]]; PC<--PC+4
32
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
Inst
rucc
ión
LRA
LRB
WR
ALUctr
rd
RegDst
MU
X
EX
tension
Inm1632
MUX
Alusrc
MUX
CLK
Memoria de Datos
32
@
WE
W_src
Unidad 1 Diseño del procesador uniciclo 20
3er Paso:Construcción del Camino de DatosFormato I: STORE
Sw rt,rs,inmm1 6
Mem[R[rs]+ SignExt[inm16]]<----R[rt]; PC<--PC+4
32
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
Inst
rucc
ión
LRA
LRB
WR
ALUctr
rd
RegDst
MU
X
EX
tension
Inm1632
MUX
Alusrc
MUX
CLK
Memoria de Datos
32
@
WE
W_src
Unidad 1 Diseño del procesador uniciclo 21
3er Paso:Construcción del Camino de DatosFormato I: Branch
Beq rs, rt, inm16
if (R[rs]==R[rt]) then PC<--PC+4+(sign_ext(Inm16)*4
else PC<--PC+4
direccióninstrucción
Memoria de Instrucciones
324
32
32
32+
PC
WE
CLK
32
32
32+
Extensión
<<
2
MU
X
PC_src
Unidad 1 Diseño del procesador uniciclo 22
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
EX
tension
Inm16
32
MUX
Alusrc
4
32
32
32+
PC
CLK
instrucción
Memoria de Instrucciones
32
>>
2
32
ALUctr
MUX
CLK
Memoria de Datos
32
@
WE
W_src
MU
X
Pcsrc
3er Paso:Juntando Todo
ZERO
Unidad 1 Diseño del procesador uniciclo 23
Señales de Control
No Activa Activa
RegDst destino es rt destino es rd
ALUsrc operando proviene operando son los 16 bits de la del B. De Reg inst. con el signo extendido
W_src El valor que se escribe en El valor que se escribe en el B. De Reg
el B. de Reg proviene de proviene de Memoria
la ALU
RegW Nada Se escribe el valor en el registro especificado
WE Nada Se escribe en la memoria el valor que está en su entrada
PC_src PC=PC+4 PC=destino de salto
Unidad 1 Diseño del procesador uniciclo 24
Ejemplo: Load
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
EX
tension
Inm1632
MUX
Alusrc
4
32
32
32+
PC
CLK
instrucción
Memoria de Instrucciones
32
>>
2
32
ALUctr
MUX
CLK
Memoria de Datos
32
@
WE
W_src
MU
XPcsrc
ZERO
Unidad 1 Diseño del procesador uniciclo 25
Ejemplo: ADDU
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
EX
tension
Inm1632
MUX
Alusrc
4
32
32
32+
PC
CLK
instrucción
Memoria de Instrucciones
32
>>
2
32
ALUctr
MUX
CLK
Memoria de Datos
32
@
WE
W_src
MU
XPcsrc
ZERO
Unidad 1 Diseño del procesador uniciclo 26
Ejemplo: BEQ (realizado)
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
EX
tension
Inm1632
MUX
Alusrc
4
32
32
32+
PC
CLK
instrucción
Memoria de Instrucciones
32
>>
2
32
ALUctr
MUX
CLK
Memoria de Datos
32
@
WE
W_src
MU
XPcsrc
ZERO
Unidad 1 Diseño del procesador uniciclo 27
40 Paso:Control
Inm16 <0..15>
RegW
RegDst
ALUsrc
ALUctr
WE
W_src
Unidad de Proceso
Unidad de Control
Memoria de Instrucciones
BranchRd <11..15>
Rt <16..20>
Rs <21..25>
Funct <0..6>
Op <26..31>
Unidad 1 Diseño del procesador uniciclo 28
RegW
CLK
rs
rt
BusW
BusA
BusB32 Registros de 32 bits
32
5
5
5
32
32
LRA
LRB
WR
rd
RegDst
MU
X
EX
tension
Inm16
32
MUX
Alusrc
4
32
32
32+
PC
CLK
instrucción
Memoria de Instrucciones
32
>>
2
32
ALUctr
MUX
CLK
Memoria de Datos
32
@
WE
W_src
MU
X
Pcsrc
4o Paso:Control
ZERO
Branch
CONTROL
Unidad 1 Diseño del procesador uniciclo 29
4o Paso: Control Principal
Addu Subu Lw Sw Ori Beq
RegDst 1 1 0 x 0 x
ALUsrc 0 0 1 1 1 0
W_src 0 0 1 x 0 x
RegW 1 1 1 0 1 0
WE 0 0 0 1 0 0
Branch 0 0 0 0 0 1
ALUctr suma resta suma suma or resta
Unidad 1 Diseño del procesador uniciclo 30
4o Paso: Control de la ALU
000 AND001 OR010 add110 subtract111 set-on-less-than
32
32
32
A
B
Op
Resultado
AL
U
Cero
Unidad 1 Diseño del procesador uniciclo 31
4o Paso: Control de la ALU
32
32
32
A
B
Operación
Resultado
AL
U
CeroInstrucción
31..26
5..0
ALUop
Control de
la ALU
Control
Unidad 1 Diseño del procesador uniciclo 32
4o Paso: Control de la ALU
ALUOp Funct field OperationALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0
0 0 X X X X X X 010X 1 X X X X X X 1101 X X X 0 0 0 0 0101 X X X 0 0 1 0 1101 X X X 0 1 0 0 0001 X X X 0 1 0 1 0011 X X X 1 0 1 0 111
• La ALU necesita 3 bits de control
– Dado el tipo de instrucción 00 = lw, sw01 = beq, 10 = arithmetic
– y el código de función para las tipo R
Unidad 1 Diseño del procesador uniciclo 33
Control
Instruction RegDst ALUSrcMemto-
RegReg
WriteMem Read
Mem Write Branch ALUOp1 ALUp0
R-format 1 0 0 1 0 0 0 1 0lw 0 1 1 1 1 0 0 0 0sw X 1 X 0 0 1 0 0 0beq X 0 X 0 0 0 1 0 1
PC
Instructionmemory
Readaddress
Instruction[31– 0]
Instruction [20– 16]
Instruction [25– 21]
Add
Instruction [5– 0]
MemtoReg
ALUOp
MemWrite
RegWrite
MemRead
BranchRegDst
ALUSrc
Instruction [31– 26]
4
16 32Instruction [15– 0]
0
0Mux
0
1
Control
Add ALUresult
Mux
0
1
RegistersWriteregister
Writedata
Readdata 1
Readdata 2
Readregister 1
Readregister 2
Signextend
Shiftleft 2
Mux
1
ALUresult
Zero
Datamemory
Writedata
Readdata
Mux
1
Instruction [15– 11]
ALUcontrol
ALUAddress
Unidad 1 Diseño del procesador uniciclo 34
5o Paso: Implementación
Operation2
Operation1
Operation0
Operation
ALUOp1
F3
F2
F1
F0
F (5– 0)
ALUOp0
ALUOp
ALU control block
R-format Iw sw beq
Op0
Op1
Op2
Op3
Op4
Op5
Inputs
Outputs
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUOp1
ALUOpO
Unidad 1 Diseño del procesador uniciclo 35
Simple Estructura de Control
• Toda la lógica es combinacional
• Hay que esperar que las señales se estabilicen
• La duración del ciclo está determinada por la longitud del camino crítico
Unidad 1 Diseño del procesador uniciclo 36
Camino Crítico: Load
• PC: propagación (hold)+
• Acceso a Memoria de Instrucciones +
• Acceso el Banco de Registros +
• ALU, suma de 32 bits +
• Acceso a Memoria de Datos +
• Tiempo de setup para escribir en registros +
• Sesgo (skew) del reloj = longitud del ciclo
Unidad 1 Diseño del procesador uniciclo 37
Duración del ciclo de reloj
CLK to Q despreciable
Memory Access Time 10 nseg
Decodificación despreciable
Register File Access Time 5 nseg
Alu 10nseg
Ìnstrucción Memoria Lect. ALU Memoria Escritura Total
Registros Datos Registros
Formato R 10 5 10 5 30
Load 10 5 10 10 5 40
Store 10 5 10 10 35
Beq 10 5 10 25
Unidad 1 Diseño del procesador uniciclo 38
Temporización: Reg-Reg
PC
Instrucción
ALUctr
RegW
BusA, BusB
BusW
CLK to Q
Memory Access Time
Control Logic Delay
Register File Access Time
ALU delayEscritura de Registros
39Diseño del procesador unicicloUnidad 1
FIN Uniciclo