1
Diseño ProcesadorMonociclo
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 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
1
Procesador Monociclo
Manual de Programación MIPS reducido.
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
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]
8
Procesador Monociclo
Recursos CombinacionalesSumador que permita calcular PC+4
Suma
PC
PC+4
4
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
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
11
Procesador Monociclo
Recursos CombinacionalesMultiplexores
S210
S101
S000
OutCtrMux
CtrMux
0
1
2
S0
S1
S2
Out
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
13
Procesador Monociclo
Recursos CombinacionalesDetector Igualdad
Detector de Igualdad
OpA Equal
OpB
A0 B0
A1 B1
A2 B2
A=B
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.
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
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 ]
17
Procesador Monociclo
Diseño del arreglo de Registros.
18
Procesador Monociclo
Recursos Almacenamiento.Registros. Contador de Programa
WE
PC ROutRIn
19
Procesador Monociclo
Camino Datos. Determinación del próximo valor del PC.PC = PC + 4
PC
WEPC
Suma
PC
PC+4
4
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
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
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
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
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
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
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
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
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
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
30
Procesador Monociclo
Simplificación Considerando unidades Unidad Operaciones
Inm16
AluOut
Op32 Extensor
AluCtr
AluSrc
0
1
Igual
Equal
busB
busA
busB
ExtOp
31
Procesador Monociclo
Simplificación Considerando unidades Unidad Memoria
Memoria Datos
Dout
MemRd MemWr
0
1
MemtoReg
AddrD
Din
busW
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
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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.