Diseño Procesador Monociclo

Anuncio
Diseño Procesador
Monociclo
1
Procesador Monociclo
Especificación de la arquitectura del
repertorio de instrucciones y de las
instrucciones que podrá ejecutar el
procesador.
 Modelo Carga-Almacenamiento.

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
1
Procesador Monociclo

Se
implementará
el
procesador
considerando las instrucciones:
 Carga
lw
 sw

y Almacenamiento (I).
rt, inm16(rs)
rt, inm16(rs)
 Bifurcación

beq rs, rt, rótulo
 Salto

(I).
j
incondicional. (J)
rótulo
1
Procesador Monociclo

Manual de Programación MIPS reducido.
1
Procesador Monociclo

Trasferencias Lógicas

add
sub
slt
ori
lw
sw
beq

j






R[rd] = R[rs] + R[rt];
PC = PC + 4
R[rd] = R[rs] – R[rt];
PC = PC + 4
R[rd] = R[rs] < R[rt] ? 1: 0 ;
PC = PC + 4
R[rt] = R[rs] or zero_ext(Inm16);
PC = PC + 4
R[rt] = MEM[ R[rs] + sign_ext(Inm16)]; PC = PC + 4
MEM[ R[rs] + sign_ext(Inm16) ] = R[rt]; PC = PC + 4
if ( R[rs] = = R[rt] )
PC = (PC +4)+[sign_ext(Inm16)]*4; else PC = PC + 4
PC = (PC +4)&0xF0000000 + add_26*4
6
Procesador Monociclo

Recursos Combinacionales
 Unidad
Aritmético Lógica
AluCtr[2..0]
Resultado
Función
ALU
Binvert
Operación
0
00
OpA & OpB
and
0
01
OpA | OpB
or
0
10
OpA + OpB
add
1
10
OpA - OpB
sub
1
11
OpA < OpB ? 1: 0
slt
AluCtr
OpA
Resultado
OpB
7
Procesador Monociclo

Recursos Combinacionales
 Sumador
que permita calcular PC+4
Suma
PC
PC+4
4
8
Procesador Monociclo

Recursos Combinacionales
 Unidad
Extensora
ExtOp
ExtOp
Op. de 32
0
zero_ext(Inm16)
1
sign_ext(Inm16)
Extensor
Inm16
Op32
Operando de 32 bits
9
Procesador Monociclo

Recursos Combinacionales
 Diseño
Extensor lógico y aritmético
ExtOp
tierra
bit 15 de Inm16
<15..0> Inm16
0
1
<31..16> de Op32
<31..0> de Op32
10
Procesador Monociclo

Recursos Combinacionales
 Multiplexores
CtrMux
Out
00
S0
01
S1
10
S2
CtrMux
S0
S1
S2
0
1
Out
2
11
Procesador Monociclo

Recursos Combinacionales
 Multiplexores.
Implementación.
Di
C1
0
0
1
1
C0 Out_i
0
Ai
1
Bi
0
Ci
1
Di
Ci
Out_i
Bi
Ai
C1
C0
12
Procesador Monociclo

Recursos Combinacionales
 Detector
OpA
OpB
Igualdad
Detector
de
Igualdad
Equal
B2
A2
B1
A1
A=B
B0
A0
13
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.

14
Procesador Monociclo

Recursos Almacenamiento.
 Memorias
MemWr
MemRd
Inactivo
MemRd
Dirección
Inactivo
WrEn Rd
AddrI
Memoria
Instrucciones
Dout
Dirección
Din
WrEn Rd
AddrD
Memoria
Datos
Dout
15
Procesador Monociclo
 Recursos
Almacenamiento.
 Registros.
Arreglo Registros
RegWr
R[Rw] = busW
Rs 5
Rt 5
Rw 5
busW
32
Ra
WE
Rb
Rw 32 Registros
32-bit
busA = R[ Ra ]
busA
32
busB = R[ Rb ]
busB
32
16
Procesador Monociclo

Diseño del arreglo de Registros.
17
Procesador Monociclo
 Recursos
 Registros.
Almacenamiento.
Contador de Programa
WE
RIn
PC
ROut
18
Procesador Monociclo

Camino Datos. Determinación del próximo
valor del PC.
 PC
= PC + 4
WEPC
Suma
PC
PC+4
PC
4
19
Procesador Monociclo

Camino Datos. Determinación del próximo
valor del PC.
nPC_sel[1..0]
 Bifurcaciones
y salto.
1
4
Inm16
nPCsel
00
PC = PC +4
01
PC = PC +4 + [Sign_ext(Inm16)]*4
10
PC = (PC +4)&0xF0000000+(addr_26*4)
SigExt
PC
0
2
<< 2
(PC+4)[31..28]
Addr26
0..1
20
Procesador Monociclo

Camino de datos entre PC y Memoria de
Programa.
<31..26> COp
WEPC
"1"
PC
AddrI Rd
busIR
Memoria
Instrucciones
<5..0>
Funct
<15..0>
Inm16
<15..11> Rd
<20..16> Rt
<25..21> Rs
<25..0> add_26
21
Procesador Monociclo
Unidad que determina la próxima instrucción a
ejecutar, con la memoria de instrucciones.
nPC_sel WEPC
COp Funct
<31..26>
busIR
4
SigExt
<<2
Inm16
(PC+4)[31..28]
add_26
0..1
0
"1"
1
Rd
AddrI
2
PC

Memoria
Instrucciones
<5..0 >
<25..21>
rs
<20..16>
<15..11>
rt
rd
<15..0>
<25..0>
add_26
Inm16
Rs
22
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
<31..26> COp
<15..0> Inm16
busIR
<15..11> rd
<20..16> rt
<25..21> rs
23
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.
AluCtr
RegWr
rs
5
rt
5
RW = rd
5
busW
32
Ra
WE
busA
Rb
32
RW 32 Registros
busB
32-bits
W
AluOut
32
24
Procesador Monociclo
Modificaciones al camino de datos para poder
procesar instrucciones inmediatas.
RegDst
RegWr
5
rd
0
rs
rt 5
5
RW
rt
1
busW
Inm16
32
ExtOp
AluSrc
AluCtr
busA
WE
Ra
Rb
Rw 32 Registros
32-bit
32
AluOut
busB
Extensor

32
Op32
0
1
25
Procesador Monociclo

Camino de datos para acceder la memoria de
datos.
RegDst
rd
rt
Inm16
RegWr ExtOp
busA
Ra WE
32
Rb 32 Registros
RW 32-bits 32
RW
busB 0
1
rs 55
0 rt
5
busW
MemWr
MemtoReg
MemRd
AluSrc AluCtr
AluOut
Addr
32
Op32
Extensor
1
WrEn Rd Dout
Din
Memoria
Datos
0
1
26
Procesador Monociclo

Detector de igualdad de busA y busB
RegDst
rd
rt
Inm16
0
1
RegWr
rs 55
rt 5
WE
Equal
ExtOp
32
Ra
Rb 32 Registros
32-bits 32
RW RW
AluOut
Igual
busW
Extensor
MemWr
MemtoReg
MemRd
busA
busB
32
AluSrc AluCtr
Op32
0
1
0
AddrD
WrEn Rd Dout
1
Memoria
Din
Datos
27
Procesador Monociclo
Simplificación Considerando unidades
 Unidad
Instrucción
nPC_sel WEPC
COp Funct
<31..26>
busIR
4
SigExt
<<2
Inm16
(PC+4)[31..28]
add_26
0..1
0
"1"
1
Rd
AddrI
2
PC

Memoria
Instrucciones
<5..0 >
<25..21>
rs
<20..16>
<15..11>
rt
rd
<15..0>
<25..0>
add_26
Inm16
Rs
28
Procesador Monociclo

Simplificación Considerando unidades
 Unidad
Registros
RegWr
RegDst
rs
5
5
rt 1
rd
0
5
RW
32
Ra WE
Rb
32
busA
Rw
32 Registros 32
32-bit
busB
busW
29
Procesador Monociclo

Simplificación Considerando unidades
 Unidad
Operaciones
Equal AluSrc AluCtr
ExtOp
busA
Igual
0
busB
Extensor
Op32
1
AluOut
busB
Inm16
30
Procesador Monociclo

Simplificación Considerando unidades
 Unidad
Memoria
MemWr MemRd MemtoR
eg
0
AddrD
Dout
Memoria
Datos
1
busW
Din
31
Procesador Monociclo

Esquema General
WEPC
nPC_sel
COp
Funct
RegDst
RegWr
ExtOp
Equal
AluSrc
AluCtr
MemWr MemRd
MemtoReg
<31..26>
<5..0 >
1
Inm16
4
(PC+4)[31..28]
2
Rd
AddrI
Memoria
Instrucciones
<25..21>
5
<20..16>
rt
<15..11>
rd
1
5
R WE
a
Rb
32
busA
RW
32 Registros
0
32-bit
0
Memoria
Datos
1
Extensor
add_26
Inm16
busW
AddrD
32
busW
0..1
0
32
busB
<15..0>
<25..0>
add_26
5
rs
Igual
SigExt*4
P
C
4
busIR
Alu
Out
"1"
0
Inm16
Dout
Op32
Din
1
bus
B
32
Procesador Monociclo

Esquema General por unidad
Unidad de Control
AluSrc
RegDst RegWr
ExtOp AluCtr
nPC_sel WEPC
COp+
Funct
Unidad
de
Instrucción
rs
rt
rd
MemWr
MemRd MemtoReg
Equal
32 busA
5
5
Unidad
Registros
5
busW
32
Unidad
AluOut
de
busB Operaciones
32
0
AddrD
1
Din Memoria
Datos Dout
Inm16
Reloj
33
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.
34
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.

35
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.
36
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,
Ra=rs, Rb=rt, RW=rd, busA=R[Ra], busB=R[Rb],
AluOut=add(busA, busB),
busW=AluOut, R[RW]=busW.
 SUB:
Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Registros. Escritura.
R[rd] ⇐ R[rs] – R[rt]; PC ⇐ PC + 4
AddrI=PC, busIR=MemInst[AddrI], PC=PC+4,
Ra=rs, Rb=rt, RW=rd, busA=R[Ra], busB=R[Rb],
AluOut= sub(busA, busB),
busW=AluOut, R[RW]=busW.
Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Registros. Escritura.
37
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,
Ra=rs, Rb=rt, RW=rd, busA=R[Ra], busB=R[Rb],
AluOut=slt(busA, busB),
busW=AluOut, R[RW]=busW.
 ORI:
Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Registros. Escritura.
R[rt] ⇐ R[rs] | zero_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 = zero_ext(Inm16), AluOut=or(busA, Op32), Unidad Operaciones.
busW=AluOut, R[RW]=busW.
Unidad Registros. Escritura.
38
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)]
AddrI=PC, busIR=MemInst[AddrI], PC=PC+4,
Ra=rs, Rb=rt, busA=R[Ra], busB=R[Rb],
Op32 = signext(Inm16), AluOut= add(busA , Op32),
AddrD=AluOut, Din = busB, MemDat[AddrD]=Din.
⇐ R[rt]; PC ⇐ PC + 4
Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Memoria Datos.
39
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],
Ra=rs, Rb=rt, busA=R[Ra], busB=R[Rb],
if (Equal)
PC = (PC +4)+ sign_ext(Inm16)] *4 else PC=PC+4.

Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Instrucción.
J UMP: PC ⇐ (PC +4)&0xF0000000+ add_26 *4
AddrI=PC, busIR=MemInst[AddrI],
PC = (PC +4)&0xF0000000+ add_26 *4.
Unidad Instrucción.
Unidad Instrucción
40
Procesador Monociclo

Transferencias físicas de datos.
 Valores
Control
Conceptuales que toman las Señales de
nPC_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.
41
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.
42
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,
RegDst = "rd",
AluSrc = "busB", AluCtr = “add”, ExtOp=∅,
MemWr=0, MemRd=∅,
Memtoreg="alu", RegWr=1.
 SUB:
Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Memoria Datos.
Unidad Registros. Escritura.
R[rd] ⇐ R[rs] – R[rt]; PC ⇐ PC + 4
nPC_sel = “+4”, WEPC=1 ,
RegDst = "rd",
AluSrc = "busB", AluCtr = “sub”, ExtOp=∅,
MemWr=0, MemRd=∅,
Memtoreg="alu", RegWr=1.
Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Memoria Datos.
Unidad Registros. Escritura.
43
Procesador Monociclo

Valores de las señales de control para activar
las transferencias lógicas.
 SLT:
R[rd] ⇐ R[rs]
nPC_sel = “+4”, WEPC=1 ,
RegDst = "rd",
AluSrc = "busB", AluCtr = “slt”, ExtOp=∅,
MemWr=0, MemRd=∅,
Memtoreg="alu", RegWr=1.
< R[rt] ? 1: 0 ; PC ⇐ PC + 4
Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Memoria Datos.
Unidad Registros. Escritura.
 ORI:
R[rt] ⇐ R[rs] + zero_ext(Inm16); PC ⇐ PC + 4
nPC_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.
44
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
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.
+4
 STORE: MEM[ R[rs] + sign_ext(Inm16)] ⇐ R[rt]; PC ⇐ PC + 4
nPC_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
45
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 + 4
if (Equal) nPC_sel=”Br”; else nPC_sel=”+4”; WEPC =1.
RegDst = ∅,
AluSrc = ∅, ExtOp = ∅ , AluCtr = ∅ ,
MemWr=0, MemRd=∅,
Memtoreg=∅, RegWr=0.
Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Memoria Datos.
Unidad Registros. Escritura
 J:
PC ⇐ (PC
nPC_sel = “Jmp”, WEPC=1 .
RegDst = ∅,
AluSrc = ∅, ExtOp = ∅ , AluCtr = ∅ ,
MemWr=0, MemRd=∅.
Memtoreg=∅, RegWr=0.
Unidad Instrucción.
Unidad Registros. Lectura.
Unidad Operaciones.
Unidad Memoria Datos.
Unidad Registros. Escritura
+4)&0xF0000000+ add_26 *4
46
Procesador Monociclo
Clk
Retardo Registro

Diagrama
de tiempos
para todas
las
instruccion
es
del
procesador
Valor anterior
PC
Nuevo valor
PC
Tiempo Acceso Memoria Instrucciones
Valor anterior
IR
Nuevo valor IR
Rs, Rt, Rd, Op, Inm16, add26
Tiempo Propagación Sumador Unidad de Instrucción
Valor anterior
PC+4
Nuevo valor PC+4
Retardo de Propagación en Unidad de Control
Valores anteriores
Señales de control
Nuevos valores RegWr, RW, WEpc, AluCtr,....
Tiempo Acceso Arreglo Registros
Valores anteriores
busA, busB
Nuevos valores
busA, busB
Propagación ALU
Nuevos valores de AluOut y
busW en ADD, SUB, ORI
Valores anteriores
AluOut, busW
Tiempo Acceso Memoria de Datos
Valor anterior
Dout
Propagación Mux
Nuevos valores de Dout en
Lw y M[Aluout] en Sw
Valor anterior
Nuevo valor
bus W en Lw
busW
Propagación Mux
Valor anterior
Dirección de salto.
Setup Registro y Skew
del reloj.
Nuevo valor
Dirección de salto.
Propagación Sumador y Mux Unidad de
Instrucción
Valor anterior
Dirección de bifurcación
Nuevo valor
Dirección de bifurcación
Propagación Detector igualdad
47
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
nPC_sel
U. Instrucción
Cop + Funct
WEPC
RegDst RegWr
U. Registros
Equal ExtOp
AluSrc AluCtr MemWr MemRd
U. Operaciones
U. Memoria
Camino de Datos
Reloj
MemtoReg
U.Registros
48
Procesador Monociclo

Diseño de la Unidad de Control.
 Tabla
de verdad de la Unidad de Control
Monociclo
Op
Bnegate
Operación
Decimal
Binario
and
Ø
0
00
or
Ø
1
01
add
0
2
10
slt
1
3
11
sub
1
2
10
49
Procesador Monociclo

Diseño de la Unidad de Control.
 Tabla
de verdad de la Unidad de Control
Monociclo
OP
Funct
Nemo.
000000
100000
R
add
000000
100010
R
sub
000000
101010
R
slt
001101
ØØØØØØ
I
ori
100011
ØØØØØØ
I
lw
101011
ØØØØØØ
I
sw
000100
ØØØØØØ
I
beq
000010
ØØØØØØ
J
j
000000
100100
R
and
000000
101010
R
slt
50
Procesador Monociclo

Diseño de la Unidad de Control.
 Tabla
de verdad de la Unidad de Control
Monociclo
Op+funct
Eq
WEPC
nPC_sel
Ext
Op
Add
Ø
1
00
Ø
Sub
Ø
1
00
Slt
Ø
1
Ori
Ø
Load
Alu
Ctr
Reg
Dst
Mem
Wr
Mem
Rd
Mem
toReg
Reg
Wr
0
010
0
0
Ø
0
1
Ø
0
110
0
0
Ø
0
1
00
Ø
0
111
0
0
Ø
0
1
1
00
0
1
001
1
0
Ø
0
1
Ø
1
00
1
1
010
1
0
1
1
1
Store
Ø
1
00
1
1
010
Ø
1
0
Ø
0
Beq
1
1
01
Ø
Ø
ØØØ
Ø
0
Ø
Ø
0
Beq
0
1
00
Ø
Ø
ØØØ
Ø
0
Ø
Ø
0
Jmp
Ø
1
10
Ø
Ø
ØØØ
Ø
0
Ø
Ø
0
Entradas
13
Alu
Src
Salidas
13
51
1
SigExt*
4
Inm1
6 (PC+4)
4
2
<5..0
><25..21
"1
busI
"
>
rs
R
R
<20..16
Addr
d
>
rt
IMemoria
Instruc<15..11
ciones
>
rd
5
5
1
0
<15..0
>
<25..0
>
[31..28]
R
a
R
b
32
Op32
Eq
WEPC
nPC_sel
Ext
Op
Add
Ø
1
00
Ø
Sub
Ø
1
00
Slt
Ø
1
Ori
Ø
Load
Datos
Di
n
1
1
Dou
t
Alu
Ctr
Reg
Dst
Mem
Wr
Mem
Rd
Mem
toReg
Reg
Wr
0
010
0
0
Ø
0
1
Ø
0
110
0
0
Ø
0
1
00
Ø
0
111
0
0
Ø
0
1
1
00
0
1
001
1
0
Ø
0
1
Ø
1
00
1
1
010
1
0
1
1
1
Store
Ø
1
00
1
1
010
Ø
1
0
Ø
0
Beq
1
1
01
Ø
Ø
ØØØ
Ø
0
Ø
Ø
0
Beq
0
1
00
Ø
Ø
ØØØ
Ø
0
Ø
Ø
0
Jmp
Ø
1
10
Ø
Ø
ØØØ
Ø
0
Ø
Ø
0
Entradas
13
Alu
Src
bus
W
Addr
D
Memoria
bus
B
Inm16
Op+funct
MemtoR
eg
0
0
bus
B
Inm16
MemW MemR
d
r
bus
A
R
32 Registros
W
32-bit 32
3
bus2
W
add_26
W
E
Extensor
add_26
0..
1
5
AluSrc
AluCtr
ExtOp Equal
Reg
Wr
RegDs
t
Igual
4
P
C
0
COp Fun
<31..26> ct
Al
u
O
ut
WEPC
nPC_sel
Salidas
13
52
Procesador Monociclo

Diseño de la Unidad de Control.
 Tabla
Resumen Unidad de Control Monociclo
OP+Funct+Eq
Control[12..0]
Obs.
000000100000Ø
100Ø001000Ø01
Add
000000100010Ø
100Ø011000Ø01
Sub
000000101010Ø
100Ø111000Ø01
Slt
001101ØØØØØØØ
1000100110Ø01
Ori
100011ØØØØØØØ
1001101010111
Load
101011ØØØØØØØ
10011010Ø10Ø0
Store
000100ØØØØØØ1
101ØØØØØØ0ØØ0
Beq
000100ØØØØØØ0
100ØØØØØØ0ØØ0
Beq
000010ØØØØØØØ
110ØØØØØØ0ØØ0
Jmp
53
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.
54
Descargar