Diseño Procesador Monocicloprofesores.elo.utfsm.cl/~tarredondo/info/comp... · 2009. 9. 30. ·...

54
1 Diseño Procesador Monociclo

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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.