Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. ·...
Transcript of Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. ·...
![Page 1: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/1.jpg)
1
Diseño ProcesadorMonociclo
![Page 2: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/2.jpg)
1
Procesador Monociclo
Especificación de la arquitectura del repertorio de instrucciones y de las instrucciones que podrá ejecutar el procesador.
Modelo Carga-Almacenamiento.
![Page 3: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/3.jpg)
1
Procesador Monociclo
Se implementará el procesador considerando las instrucciones:Suma, resta y slt (R)
add rd, rs, rt sub rd, rs, rt slt rd, rs, rt
Or inmediato (I) ori rt, rs, inm16
![Page 4: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/4.jpg)
1
Procesador Monociclo
Se implementará el procesador considerando las instrucciones:Carga y Almacenamiento (I).
lw rt, inm16(rs) sw rt, inm16(rs)
Bifurcación (I). beq rs, rt, rótulo
Salto incondicional. (J) j rótulo
![Page 5: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/5.jpg)
1
Procesador Monociclo
Manual de Programación MIPS reducido.
![Page 6: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/6.jpg)
6
Procesador Monociclo
Trasferencias Lógicas add R[rd] = R[rs] + R[rt]; PC = PC + 4 sub R[rd] = R[rs] – R[rt]; PC = PC + 4 slt R[rd] = R[rs] < R[rt] ? 1: 0 ; PC = PC + 4 ori R[rt] = R[rs] or zero_ext(Inm16); PC = PC + 4 lw R[rt] = MEM[ R[rs] + sign_ext(Inm16)]; PC = PC + 4 sw MEM[ R[rs] + sign_ext(Inm16) ] = R[rt]; PC = PC + 4 beq if ( R[rs] = = R[rt] )
PC = (PC +4)+[sign_ext(Inm16)]*4; else PC = PC + 4 j PC = (PC +4)&0xF0000000 + add_26*4
![Page 7: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/7.jpg)
7
Procesador Monociclo
Recursos CombinacionalesUnidad Aritmético Lógica
AluCtr
OpA
Resultado
OpB
sltOpA < OpB ? 1: 0 111
subOpA - OpB 101
addOpA + OpB 100
orOpA | OpB 010
andOpA & OpB 000
Operación Binvert
Función
ALU
Resultado AluCtr[2..0]
![Page 8: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/8.jpg)
8
Procesador Monociclo
Recursos CombinacionalesSumador que permita calcular PC+4
Suma
PC
PC+4
4
![Page 9: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/9.jpg)
9
Procesador Monociclo
Recursos CombinacionalesUnidad Extensora
Extensor
ExtOp
Inm16 Op32 Operando de 32 bits sign_ext(Inm16)1
zero_ext(Inm16)0
Op. de 32ExtOp
![Page 10: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/10.jpg)
10
Procesador Monociclo
Recursos CombinacionalesDiseño Extensor lógico y aritmético
ExtOp
0
1
tierra
bit 15 de Inm16
<31..16> de Op32
<15..0> Inm16 <31..0> de Op32
![Page 11: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/11.jpg)
11
Procesador Monociclo
Recursos CombinacionalesMultiplexores
S210
S101
S000
OutCtrMux
CtrMux
0
1
2
S0
S1
S2
Out
![Page 12: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/12.jpg)
12
Procesador Monociclo
Recursos CombinacionalesMultiplexores. Implementación.
C0
C1
Ai
Bi
Ci
Di
Out_i C1 C0 Out_i 0 0 Ai 0 1 Bi 1 0 Ci 1 1 Di
![Page 13: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/13.jpg)
13
Procesador Monociclo
Recursos CombinacionalesDetector Igualdad
Detector de Igualdad
OpA Equal
OpB
A0 B0
A1 B1
A2 B2
A=B
![Page 14: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/14.jpg)
14
Procesador Monociclo
Recursos Almacenamiento.Memorias
Una memoria para almacenar las instrucciones (ROM).
Una memoria para leer y escribir datos (RAM). Diseño inicial se elige tener recursos separados
aunque podría ocuparse una sola memoria para datos e instrucciones.
![Page 15: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/15.jpg)
15
Procesador Monociclo
Recursos Almacenamiento.Memorias
WrEn AddrD
Memoria Datos
Dout
Din
Rd Dirección
MemRd MemWr
WrEn AddrI
Memoria Instrucciones
Dout
Inactivo
Rd Dirección
MemRd Inactivo
![Page 16: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/16.jpg)
16
Procesador Monociclo
Recursos Almacenamiento.Registros. Arreglo Registros
busA
Rw
32
busB Rw
Ra Rb
32 Registros 32-bit
Rs Rt
32
32
busW
WE
RegWr
5 5
5
R[Rw] = busW
busA = R[ Ra ]
busB = R[ Rb ]
![Page 17: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/17.jpg)
17
Procesador Monociclo
Diseño del arreglo de Registros.
![Page 18: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/18.jpg)
18
Procesador Monociclo
Recursos Almacenamiento.Registros. Contador de Programa
WE
PC ROutRIn
![Page 19: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/19.jpg)
19
Procesador Monociclo
Camino Datos. Determinación del próximo valor del PC.PC = PC + 4
PC
WEPC
Suma
PC
PC+4
4
![Page 20: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/20.jpg)
20
Procesador Monociclo
Camino Datos. Determinación del próximo valor del PC.Bifurcaciones y salto.
SigExt << 2
4 PC
(PC+4)[31..28]
nPC_sel[1..0]
0
1
2
0..1
Inm16
Addr26
PC = PC +400
PC = (PC +4)&0xF0000000+(addr_26*4)10
PC = PC +4 + [Sign_ext(Inm16)]*4 01
nPCsel
![Page 21: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/21.jpg)
21
Procesador Monociclo
Camino de datos entre PC y Memoria de Programa.
PC
WEPC
AddrI
Memoria Instrucciones
busIR Rd
"1" <15..0> Inm16
<15..11> Rd
<20..16> Rt
<25..21> Rs
<25..0> add_26
<31..26> COp
<5..0> Funct
![Page 22: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/22.jpg)
22
Procesador Monociclo
Unidad que determina la próxima instrucción a ejecutar, con la memoria de instrucciones.
<25..21>
<20..16>
<15..11>
<15..0>
<25..0>
<31..26>
PC
SigExt <<2
4
(PC+4)[31..28]
nPC_sel
0
1
2
0..1
AddrI
Memoria Instrucciones
busIR
Rd
"1"
Inm16
add_26
WEPC
<5..0 >
Funct COp
rs
rt
rd
Inm16Rs
add_26
![Page 23: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/23.jpg)
23
Procesador Monociclo
Abstracción del diagrama anterior en un bloque que determina y decodifica la instrucción a ejecutar, y que además calcula la dirección de la próxima instrucción a realizar.
nPC_sel
Unidad de Instrucción
<15..0> Inm16
<15..11> rd
<20..16> rt
<25..21> rs
<31..26> COp
busIR
![Page 24: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/24.jpg)
24
Procesador Monociclo
Camino de Datos para operaciones de tipo R. Arreglo de registros y la unidad aritmético lógica, para
poder realizar las transferencias físicas que implementan las operaciones de suma y resta.
busA
RW = rd
32
busB RW
Ra Rb
32 Registros 32-bits
rs rt
32
32
busW
WE
RegWr
5
5
5
AluCtr
AluOut
W
![Page 25: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/25.jpg)
25
Procesador Monociclo
Modificaciones al camino de datos para poder procesar instrucciones inmediatas.
32
busA
RW
32
busB Rw
Ra Rb
32 Registros 32-bit
rs rt
32
busW
WE
RegWr
5 5
5
AluCtr
AluOut
AluSrc
0
1 Op32
RegDst
0
1
rd
rt
ExtOp
Ext
enso
r
Inm16
![Page 26: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/26.jpg)
26
Procesador Monociclo
Camino de datos para acceder la memoria de datos.
AluOut 32
busA
RW
32 busB RW
Ra Rb 32 Registros
32-bits
rs rt
32 busW
WE
RegWr
5 5 5
AluCtr
AluSrc
0
1 Op32
RegDst
0
1
rd
rt
ExtOp
Extensor
Inm16
WrEn Addr
Memoria Datos
Dout
Din
Rd
MemRd MemWr
0
1
MemtoReg
![Page 27: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/27.jpg)
27
Procesador Monociclo
Detector de igualdad de busA y busB
busA
busB
Op32
ExtOp
32
RW
32 RW
Ra Rb 32 Registros
32-bits
rs rt
32 busW
WE
RegWr
5 5 5
RegDst
0
1
rd
rt
Extensor
Inm16
AluOut
AluCtr
AluSrc
0
1
WrEn AddrD
Memoria Datos
Dout
Din
Rd
MemRd MemWr
0
1
MemtoReg
Igual
Equal
![Page 28: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/28.jpg)
28
Procesador Monociclo
Simplificación Considerando unidades Unidad Instrucción
<25..21>
<20..16>
<15..11>
<15..0>
<25..0>
<31..26>
PC
SigExt <<2
4
(PC+4)[31..28]
nPC_sel
0
1
2
0..1
AddrI
Memoria Instrucciones
busIR
Rd
"1"
Inm16
add_26
WEPC
<5..0 >
Funct COp
rs
rt
rd
Inm16Rs
add_26
![Page 29: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/29.jpg)
29
Procesador Monociclo
Simplificación Considerando unidades Unidad Registros
rt
rd RW
32
Rw
Ra
Rb
32 Registros 32-bit
rs
32
busW
WE
RegWr
5
5
5
RegDst
1
0
busB
32
busA
![Page 30: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/30.jpg)
30
Procesador Monociclo
Simplificación Considerando unidades Unidad Operaciones
Inm16
AluOut
Op32 Extensor
AluCtr
AluSrc
0
1
Igual
Equal
busB
busA
busB
ExtOp
![Page 31: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/31.jpg)
31
Procesador Monociclo
Simplificación Considerando unidades Unidad Memoria
Memoria Datos
Dout
MemRd MemWr
0
1
MemtoReg
AddrD
Din
busW
![Page 32: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/32.jpg)
32
Procesador MonocicloProcesador Monociclo
Esquema GeneralEsquema General
MemoriaMemoriaDatosDatos
DoutDout
MemRdMemRdMemWrMemWr
00
11
MemtoRegMemtoReg
AddrDAddrD
DinDin
busWbusW
3232
RWRW
RRaa
RbRb
32 Registros32 Registros
32-bit32-bit
3232
busWbusW
WEWE
RegWrRegWr
55
55
55
RegDstRegDst
11
00
3232
Inm16Inm16
Alu
Alu
Out
Out
AluSrcAluSrc
Op32Op32
Extensor
Extensor
AluCtrAluCtr
00
11
Igual
Igual
EqualEqual
busbusBB
busAbusA
busBbusB
ExtOpExtOp
<25..21> <25..21>
<20..16> <20..16>
<15..11> <15..11>
<15..0> <15..0> <25..0> <25..0>
<31..26> <31..26>
PP CC
SigSigExt*4Ext*4
44
(PC+4)[31..28](PC+4)[31..28]
nPC_selnPC_sel
00
11
22
0..10..1
AddrIAddrIMemoriaMemoriaInstruc-Instruc-cionesciones
busIRbusIR
RdRd
"1""1"
Inm16Inm16
add_26add_26
WEWEPCPC
<5..0 > <5..0 >
FunctFunctCOpCOp
rsrs
rtrt
rdrd
Inm16Inm16
add_26add_26
44
![Page 33: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/33.jpg)
33
Procesador Monociclo
Esquema General por unidad Unidad de Control
AluOut
32 busA
32 busB
Unidad Registros
rs
rt
32 busW
RegWr AluCtr
AluSrc RegDst
rd
ExtOp
Inm16 AddrD
Memoria Datos Dout
Din
MemRd
MemWr
0
1
MemtoReg
Unidad de
Operaciones
nPC_sel
Unidad de
Instrucción
COp+ Funct
Equal
Reloj
5
5
5
WEPC
![Page 34: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/34.jpg)
34
Procesador Monociclo
Transferencias físicas de datos.Cada transferencia lógica se implementa
como un conjunto de transferencias físicas. Transferencia física es la descripción de un
movimiento de datos entre los recursos del camino de datos.
Muestra lo que sucede en el camino de datos.
![Page 35: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/35.jpg)
35
Procesador Monociclo
Transferencias físicas de datos.Movimientos son debidos a:
Conexiones permanentes entre recursos Señales de control.
Para cada instrucción: Se hace referencia a través de un mnemónico. Se anota la transferencia lógica. Y luego el conjunto de transferencias físicas que la
desarrollan.
![Page 36: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/36.jpg)
36
Procesador Monociclo
Transferencias físicas de datos.Las transferencias físicas se agrupan de
acuerdo a la unidad en que se realizan.Se muestran por líneas, pero toda la
electrónica que las representa está funcionando en paralelo, y la información fluye en serie a través de los recursos.
![Page 37: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/37.jpg)
37
Procesador Monociclo
Transferencias físicas de datos. ADD: R[rd] ⇐ R[rs] + R[rt]; PC ⇐ PC + 4
AddrI=PC, busIR=MemInst[AddrI], PC=PC+4, Unidad Instrucción.Ra=rs, Rb=rt, RW=rd, busA=R[Ra], busB=R[Rb], Unidad Registros. Lectura.AluOut=add(busA, busB), Unidad Operaciones.busW=AluOut, R[RW]=busW. Unidad Registros. Escritura.
SUB: R[rd] ⇐ R[rs] – R[rt]; PC ⇐ PC + 4AddrI=PC, busIR=MemInst[AddrI], PC=PC+4, Unidad Instrucción.Ra=rs, Rb=rt, RW=rd, busA=R[Ra], busB=R[Rb], Unidad Registros. Lectura.AluOut= sub(busA, busB), Unidad Operaciones.busW=AluOut, R[RW]=busW. Unidad Registros. Escritura.
![Page 38: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/38.jpg)
38
Procesador Monociclo
Transferencias físicas de datos. SLT: R[rd] ⇐ R[rs] < R[rt] ? 1: 0 ; PC ⇐ PC + 4
AddrI=PC, busIR=MemInst[AddrI], PC=PC+4, Unidad Instrucción.Ra=rs, Rb=rt, RW=rd, busA=R[Ra], busB=R[Rb], Unidad Registros. Lectura.AluOut=slt(busA, busB), Unidad Operaciones.busW=AluOut, R[RW]=busW. Unidad Registros. Escritura.
ORI: R[rt] ⇐ R[rs] | zero_ext(Inm16); PC ⇐ PC + 4AddrI=PC, busIR=MemInst[AddrI], PC=PC+4, Unidad Instrucción.Ra=rs, RW=rt, busA=R[Ra], Unidad Registros. Lectura.Op32 = zero_ext(Inm16), AluOut=or(busA, Op32), Unidad Operaciones. busW=AluOut, R[RW]=busW. Unidad Registros. Escritura.
![Page 39: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/39.jpg)
39
Procesador Monociclo
Transferencias físicas de datos. LOAD: R[rt] ⇐ MEM[ R[rs] + sign_ext(Inm16)]; PC ⇐ PC + 4
AddrI=PC, busIR=MemInst[AddrI], PC=PC+4, Unidad Instrucción.Ra=rs, RW=rt, busA=R[Ra], Unidad Registros. Lectura.Op32 = signext(Inm16), AluOut=add(busA , Op32), Unidad Operaciones.AddrD=AluOut, Dout = MemDat[AddrD], Unidad Memoria Datos.busW=Dout, R[RW]=busW. Unidad Registros. Escritura.
STORE: MEM[ R[rs] + sign_ext(Inm16)] ⇐ R[rt]; PC ⇐ PC + 4AddrI=PC, busIR=MemInst[AddrI], PC=PC+4, Unidad Instrucción.Ra=rs, Rb=rt, busA=R[Ra], busB=R[Rb], Unidad Registros. Lectura.Op32 = signext(Inm16), AluOut= add(busA , Op32), Unidad Operaciones.AddrD=AluOut, Din = busB, MemDat[AddrD]=Din. Unidad Memoria Datos.
![Page 40: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/40.jpg)
40
Procesador Monociclo
Transferencias físicas de datos. BEQ: if ( R[rs] == R[rt] ) PC ⇐ (PC +4)+ sign_ext(Inm16)] *4 else
PC ⇐ PC + 4
AddrI=PC, busIR=MemInst[AddrI], Unidad Instrucción.Ra=rs, Rb=rt, busA=R[Ra], busB=R[Rb], Unidad Registros. Lectura.if (Equal) Unidad Operaciones. PC = (PC +4)+ sign_ext(Inm16)] *4 else PC=PC+4. Unidad Instrucción.
J UMP: PC ⇐ (PC +4)&0xF0000000+ add_26 *4
AddrI=PC, busIR=MemInst[AddrI], Unidad Instrucción.PC = (PC +4)&0xF0000000+ add_26 *4. Unidad Instrucción
![Page 41: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/41.jpg)
41
Procesador Monociclo
Transferencias físicas de datos. Valores Conceptuales que toman las Señales de
ControlnPC_sel: "+4","Branch","Jump" Unidad Instrucción.WEPC: "1" Escribe en registro PC. Unidad Instrucción.RegDst: “rt”, “rd” Unidad Registros. Lectura.ExtOp: “zero”, “sign” Unidad Operaciones.AluSrc: "busB","Op32" Unidad Operaciones.AluCtr: “add”, “sub”, “or”, “slt” Unidad Operaciones.MemWr: "1" Escribe en la memoria. Unidad Memoria Datos.MemRd: "1" Lee desde la memoria de datos. Unidad Memoria Datos.MemtoReg:"alu","mem" Unidad Registros. Escritura.RegWr: "1" escribe busW en el registro Unidad Registros. Escritura. especificado en RW.
![Page 42: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/42.jpg)
42
Procesador Monociclo
Valores de las señales de control para activar las transferencias lógicas.Valores que toman las señales de control
para desarrollar las diferentes transferencias lógicas necesarias para cada instrucción.
![Page 43: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/43.jpg)
43
Procesador Monociclo
Valores de las señales de control para activar las transferencias lógicas. ADD: R[rd] ⇐ R[rs] + R[rt]; PC ⇐ PC + 4
nPC_sel = “+4”, WEPC =1, Unidad Instrucción.RegDst = "rd", Unidad Registros. Lectura.AluSrc = "busB", AluCtr = “add”, ExtOp=∅, Unidad Operaciones.MemWr=0, MemRd=∅, Unidad Memoria Datos.Memtoreg="alu", RegWr=1. Unidad Registros. Escritura.
SUB: R[rd] ⇐ R[rs] – R[rt]; PC ⇐ PC + 4nPC_sel = “+4”, WEPC=1 , Unidad Instrucción.RegDst = "rd", Unidad Registros. Lectura.AluSrc = "busB", AluCtr = “sub”, ExtOp=∅, Unidad Operaciones.MemWr=0, MemRd=∅, Unidad Memoria Datos.Memtoreg="alu", RegWr=1. Unidad Registros. Escritura.
![Page 44: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/44.jpg)
44
Procesador Monociclo
Valores de las señales de control para activar las transferencias lógicas. SLT: R[rd] ⇐ R[rs] < R[rt] ? 1: 0 ; PC ⇐ PC + 4
nPC_sel = “+4”, WEPC=1 , Unidad Instrucción.RegDst = "rd", Unidad Registros. Lectura.AluSrc = "busB", AluCtr = “slt”, ExtOp=∅, Unidad Operaciones.MemWr=0, MemRd=∅, Unidad Memoria Datos.Memtoreg="alu", RegWr=1. Unidad Registros. Escritura.
ORI: R[rt] ⇐ R[rs] + zero_ext(Inm16); PC ⇐ PC + 4nPC_sel = “+4”, WEPC =1, Unidad Instrucción.RegDst = "rt", Unidad Registros. Lectura.AluSrc = "Op32", ExtOp = “zero”, AluCtr = “or”, Unidad Operaciones.MemWr=0, MemRd=∅, Unidad Memoria Datos.Memtoreg="alu", RegWr=1. Unidad Registros. Escritura.
![Page 45: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/45.jpg)
45
Procesador Monociclo
Valores de las señales de control para activar las transferencias lógicas. LOAD: R[rt] ⇐ MEM[ R[rs] + sign_ext(Inm16)]; PC ⇐ PC + 4
nPC_sel = “+4”, WEPC=1 , Unidad Instrucción.RegDst = "rt", Unidad Registros. Lectura.AluSrc = "Op32", ExtOp = “sign”, AluCtr = “add”, Unidad Operaciones.MemRd=1, MemWr=0, Unidad Memoria Datos.Memtoreg="mem", RegWr=1. Unidad Registros. Escritura.
STORE: MEM[ R[rs] + sign_ext(Inm16)] ⇐ R[rt]; PC ⇐ PC + 4nPC_sel = “+4”, WEPC =1, Unidad Instrucción.RegDst = ∅, Unidad Registros. Lectura.AluSrc = "Op32", ExtOp = “sign”, AluCtr = “add”, Unidad Operaciones.MemWr=1, MemRd=0, Unidad Memoria Datos.Memtoreg=∅, RegWr=0. Unidad Registros. Escritura
![Page 46: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/46.jpg)
46
Procesador Monociclo
Valores de las señales de control para activar las transferencias lógicas. BEQ: if ( R[rs] == R[rt] ) PC ⇐ (PC +4) + sign_ext(Inm16)] *4;
else PC ⇐ PC + 4if (Equal) nPC_sel=”Br”; else nPC_sel=”+4”; WEPC =1. Unidad Instrucción.RegDst = ∅, Unidad Registros. Lectura.AluSrc = ∅, ExtOp = ∅ , AluCtr = ∅ , Unidad Operaciones.MemWr=0, MemRd=∅, Unidad Memoria Datos.Memtoreg=∅, RegWr=0. Unidad Registros. Escritura
J: PC ⇐ (PC +4)&0xF0000000+ add_26 *4 nPC_sel = “Jmp”, WEPC=1 . Unidad Instrucción.RegDst = ∅, Unidad Registros. Lectura.AluSrc = ∅, ExtOp = ∅ , AluCtr = ∅ , Unidad Operaciones.MemWr=0, MemRd=∅. Unidad Memoria Datos.Memtoreg=∅, RegWr=0. Unidad Registros. Escritura
![Page 47: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/47.jpg)
47
Procesador Monociclo
Diagrama de tiempos para todas las instrucciones del procesador
Valores anterioresSeñales de control
Nuevos valores RegWr, RW, WEpc, AluCtr,....
Valor anteriorPC+4
Nuevo valor PC+4
Valor anteriorPC
Nuevo valorPC
Clk
Valor anteriorIR
Nuevo valor IRRs, Rt, Rd, Op, Inm16, add26
Retardo Registro
Tiempo Acceso Memoria Instrucciones
Tiempo Propagación Sumador Unidad de Instrucción
Retardo de Propagación en Unidad de Control
Valores anterioresbusA, busB
Nuevos valores busA, busB
Tiempo Acceso Arreglo Registros
Valores anterioresAluOut, busW
Nuevos valores de AluOut y busW en ADD, SUB, ORI
Propagación ALU
Valor anteriorDout
Nuevos valores de Dout en Lw y M[Aluout] en Sw
Tiempo Acceso Memoria de Datos
Valor anteriorbusW
Nuevo valor bus W en Lw
Propagación Mux
Setup Registro y Skew del reloj.
Valor anteriorDirección de salto.
Nuevo valor
Dirección de salto.
Valor anteriorDirección de bifurcación
Nuevo valor Dirección de bifurcación
Propagación Sumador y Mux Unidad de Instrucción
Propagación Mux
Propagación Detector igualdad
![Page 48: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/48.jpg)
48
Procesador Monociclo
Diseño de la Unidad de Control. En el modelo monociclo la unidad de control es una
red combinacional que tiene como entradas el código de operación-funct y la condición Equal; y como salidas las señales de Control.
Unidad de Control
Cop + FunctEqual
Reloj
RegWr AluCtrAluSrcRegDst ExtOp MemRdMemWr MemtoRegnPC_sel WEPC
U. Instrucción U. Registros U. Operaciones U. Memoria U.RegistrosCamino de Datos
![Page 49: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/49.jpg)
49
Procesador Monociclo
Diseño de la Unidad de Control. Tabla de verdad de la Unidad de Control
Monociclo
1021sub
1131slt
1020add
011Øor
000Øand
BinarioDecimal
OperaciónBnegateOp
![Page 50: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/50.jpg)
50
Procesador Monociclo
Diseño de la Unidad de Control. Tabla de verdad de la Unidad de Control
Monociclo
sltR101010000000
andR100100000000
jJØØØØØØ000010
beqIØØØØØØ000100
swIØØØØØØ101011
lwIØØØØØØ100011
oriIØØØØØØ001101
sltR101010000000
subR100010000000
addR100000000000
Nemo.FunctOP
![Page 51: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/51.jpg)
51
Procesador Monociclo
Diseño de la Unidad de Control. Tabla de verdad de la Unidad de Control
Monociclo
Salidas13
Entradas13
0ØØ0ØØØØØØ101ØJmp
0ØØ0ØØØØØØ0010Beq
0ØØ0ØØØØØØ0111Beq
0Ø01Ø01011001ØStore
1110101011001ØLoad
10Ø0100110001ØOri
10Ø001110Ø001ØSlt
10Ø001100Ø001ØSub
10Ø000100Ø001ØAdd
RegWr
MemtoReg
MemRd
MemWr
RegDst
AluCtr
AluSrc
ExtOp
nPC_selWEPCEqOp+funct
![Page 52: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/52.jpg)
52
MemoriaMemoriaDatosDatos
DouDoutt
MemRMemRdd
MemWMemWrr
00
11
MemtoRMemtoRegeg
AddrAddrDD
DiDinn
busbusWW3232
RRWW
RRaaRRbb
32 Registros32 Registros
32-bit32-bit
3322busbus
WW
WWEE
RegRegWrWr
55
55
55
RegDsRegDstt
11
00
3232
Inm16Inm16
Al
Al uu OO utut
AluSrcAluSrc
Op32Op32
Extensor
Extensor
AluCtrAluCtr
00
11
Igual
Igual
EqualEqual
busbusBB
busbusAA
busbusBB
ExtOpExtOp
<25..21<25..21> >
<20..16<20..16> >
<15..11<15..11> >
<15..0<15..0> > <25..0<25..0> >
<31..26> <31..26>
PP CC
SigSigExt*Ext*44
44
(PC+4)(PC+4)[31..28][31..28]
nPC_selnPC_sel
00
11
22
0..0..11
AddrAddrIIMemoriaMemoriaInstruc-Instruc-cionesciones
busIbusIRR
RRdd
"1"1""
Inm1Inm166
add_26add_26
WEWEPCPC
<5..0 <5..0 > >
FunFunctct
COpCOp
rsrs
rtrt
rdrd
Inm16Inm16
add_26add_26
44
Salidas13
Entradas13
0ØØ0ØØØØØØ101ØJmp
0ØØ0ØØØØØØ0010Beq
0ØØ0ØØØØØØ0111Beq
0Ø01Ø01011001ØStore
1110101011001ØLoad
10Ø0100110001ØOri
10Ø001110Ø001ØSlt
10Ø001100Ø001ØSub
10Ø000100Ø001ØAdd
RegWr
MemtoReg
MemRd
MemWr
RegDst
AluCtr
AluSrc
ExtOp
nPC_selWEPCEqOp+funct
![Page 53: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/53.jpg)
53
Procesador Monociclo
Diseño de la Unidad de Control. Tabla Resumen Unidad de Control Monociclo
Jmp110ØØØØØØ0ØØ0000010ØØØØØØØ
Beq100ØØØØØØ0ØØ0000100ØØØØØØ0
Beq101ØØØØØØ0ØØ0000100ØØØØØØ1
Store10011010Ø10Ø0101011ØØØØØØØ
Load1001101010111100011ØØØØØØØ
Ori1000100110Ø01001101ØØØØØØØ
Slt100Ø111000Ø01000000101010Ø
Sub100Ø011000Ø01000000100010Ø
Add100Ø001000Ø01000000100000Ø
Obs.Control[12..0]OP+Funct+Eq
![Page 54: Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. · Procesador Monociclo Transferencias físicas de datos. Movimientos son debidos a:](https://reader035.fdocument.pub/reader035/viewer/2022071603/613eb239b946476b8b530472/html5/thumbnails/54.jpg)
54
Procesador Monociclo
Diseño de la Unidad de Control. La implementación de la unidad de control puede
ser utilizando. En base a compuertas lógicas (función mínima). Dispositivos lógicos programables (por ejemplo: GAL). O mediante EPROM.