elo311 estructuras de computadores digitales procesador...

57
ELO311 Estructuras de Computadores Digitales Procesador Monociclo Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization & Design", (segunda y tercera edición), Morgan Kaufmann, CA. 2005 material del curso anterior ELO311 del Prof. Leopoldo Silva www.wikipedia.org

Upload: others

Post on 17-Aug-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

ELO311Estructuras de Computadores

Digitales

Procesador Monociclo

Tomás Arredondo Vidal

Este material está basado en:

�material de apoyo del texto de David Patterson, John Hennessy, "Computer Organization & Design", (segunda y tercera edición), Morgan Kaufmann, CA. 2005

�material del curso anterior ELO311 del Prof. Leopoldo Silva

�www.wikipedia.org

Page 2: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Arquitectura de Nuestro Proc. Monociclo

� Modelo Carga-Almacenamiento.

� ISA (Instruction Service Architecture)

Processor

Control

Datapath

Memory

Devices

Input

Outputcontents Reg #4 ADD contents Reg #2results put in Reg #2

El camino de datos (datapath) ejecuta las instrucciones bajo dirección de control

000000 00100 00010 0001000000100000

La memoria almacena instrucciones y datos

Read

DecodeExec

Page 3: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Especificación del ISA

� Se implementará el procesador considerando las instrucciones:� Suma, resta y set less than (R)

� add rd, rs, rt

� sub rd, rs, rt

� slt rd, rs, rt

� Or inmediato (I)� ori rt, rs, inm16

� 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 4: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Especificación del ISA (cont)

� Manual de Programación MIPS reducido.

Page 5: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Especificación del ISA (cont)

� Detallar movimientos de datos y 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 6: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador

� Recursos Combinacionales� Unidad Aritmético Lógica

AluCtr

OpA

Resultado

OpB

sltOpA < OpB ? 1: 0 111

subOpA - OpB101

addOpA + OpB100

orOpA | OpB010

andOpA & OpB000

Operación Binvert

Función

ALU

Resultado AluCtr[2..0]

Page 7: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Recursos Combinacionales� Sumador que permita calcular PC+4

Suma

PC

PC+4

4

Page 8: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Recursos Combinacionales� Unidad Extensora

Extensor

ExtOp

Inm16 Op32 Operando de 32 bits sign_ext(Inm16)1

zero_ext(Inm16)0

Op. de 32ExtOp

Page 9: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Recursos Combinacionales� Diseño Extensor lógico y aritmético

E x t O p

0

1

t i e r r a

b i t 1 5 d e I n m 1 6

< 3 1 . . 1 6 > d e O p 3 2

< 1 5 . . 0 > I n m 1 6 < 3 1 . . 0 > d e O p 3 2

Page 10: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Recursos Combinacionales� Multiplexores

S210

S101

S000

OutCtrMux CtrMux

0

1

2

S0

S1

S2

Out

Page 11: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Recursos Combinacionales� Multiplexores. 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 12: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Recursos Combinacionales� Detector Igualdad

D e t e c t o r d e I g u a l d a d

O p A E q u a l

O p B

A 0 B 0

A 1 B 1

A 2 B 2

A = B

Page 13: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� 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 14: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Recursos Almacenamiento.� Memorias

WrEn AddrD

Memoria Datos

Dout

Din

Rd Dirección

MemRdMemWr

WrEn AddrI

Memoria Instrucciones

Dout

Inactivo

Rd Dirección

MemRdInactivo

Page 15: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

�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 16: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Diseño del arreglo de Registros.

5

31

31

32

Page 17: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

�Recursos Almacenamiento.� Registros. Contador de Programa

WE

PC ROutRIn

Page 18: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Camino Datos. Determinación del próximo valor del PC.� PC = PC + 4

PC

WEPCSuma

PC

PC+4

4

Page 19: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� 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 20: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Camino de datos entre PC y Memoria de Datos.

PC

WE PC

AddrI

Memoria

Instrucciones

busIRRd

"1"

<15..0> Inm16

<15..11> Rd

<20..16> Rt

<25..21> Rs

<25..0> add_26

<31..26> COp

<5..0> Funct

Page 21: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� 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_se l

0

1

2

0..1

AddrI

MemoriaInstrucciones

busIR

Rd

"1"

Inm16

add_26

WEPC

<5..0 >

FunctCOp

rs

rt

rd

Inm16Rs

add_26

Page 22: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� 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 23: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� 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 (e.g. add rd, rs, rt)

busA

RW = rd

32

busBRW

RaRb

32 Registros32-bits

rsrt

32

32

busW

WE

RegWr

55

5

AluCtr

AluOut

W

Page 24: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Modificaciones al camino de datos para poder procesar instrucciones inmediatas.

32

busA

RW

32

busBRw

RaRb

32 Registros32-bit

rsrt

32

busW

WE

RegWr

55

5

AluCtr

AluOut

AluSrc

0

1Op32

RegDst

0

1

rd

rt

ExtOp

Ext

enso

r

Inm16

Page 25: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Camino de datos para acceder la memoria de datos.

AluOut32

busA

RW 32 busBRW

RaRb 32 Registros

32-bits

rsrt

32busW

WE

RegWr

55

5

AluCtrAluSrc

0

1Op3 2

RegDst

0

1

rd

rt

ExtOp

Extensor

Inm16

WrEnAddr

MemoriaDatos

Dout

Din

Rd

MemRdMemWr

0

1

MemtoReg

Page 26: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Detector de igualdad de busA y busB

busA

busB

Op32

ExtOp

32

RW 32RW

RaRb 32 Registros

32-bits

rsrt

32

busW

WE

RegWr

555

RegDst

0

1

rd

rt

ExtensorInm16

AluOut

AluCtrAluSrc

0

1

WrEnAddrD

MemoriaDatos

Dout

Din

Rd

MemRdMemWr

0

1

MemtoReg

Igual

Equal

Unidad de registros Unidad de operaciones Unidad de memoria

Page 27: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Unidad Instrucción

<25..21>

<20..16>

<15..11>

<15..0>

<25..0>

<31..26>

PC

SigExt <<2

4

(PC+4)[31..28]

nPC_se l

0

1

2

0..1

AddrI

MemoriaInstrucciones

busIR

Rd

"1"

Inm16

add_26

WE PC

<5..0 >

FunctCOp

rs

rt

rd

Inm16Rs

add_26

Page 28: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Unidad Registros

rt

rdRW

32

Rw

Ra

Rb

32 Registros32-bit

rs

32

busW

WE

RegWr

5

5

5

RegDst

1

0

busB

32

busA

Page 29: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Unidad Operaciones

Inm16

AluOut

Op32Extensor

AluCtrAluSrc

0

1

Igual

Equal

busB

busA

busB

ExtOp

Page 30: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Componentes Físicos del Procesador (cont)

� Unidad Memoria

Memoria

Datos

Dout

MemRdMemWr

0

1

MemtoR

eg

AddrD

Din

busW

Page 31: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Procesador Monociclo

�� Esquema GeneralEsquema General

MemoriaMemoriaDatosDatos

DoutDout

MemRdMemRdMemWrMemWr

00

11

MemtoRegMemtoReg

AddrDAddrD

DinDin

busWbusW

3232

RWRW

RRaa

RbRb

32 32 RegistrosRegistros

3232--bitbit

3232

busWbusW

WEWE

RegWrRegWr

55

55

55

RegDstRegDst

11

00

3232

Inm16Inm16

AluAluOutOut

AluSrcAluSrc

Op32Op32

Extensor

Extensor

AluCtrAluCtr

00

11

IgualIgual

EqualEqual

busBbusB

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>

PPCC

SigSigExtExt*4*4

44

(PC+4)[31..28](PC+4)[31..28]

nPC_selnPC_sel

00

11

22

0..10..1

AddrIAddrIMemoriaMemoriaInstrucInstruc--cionesciones

busIRbusIR

RdRd

"1""1"

Inm16Inm16

addadd_26_26

WEWEPCPC

<5..0 > <5..0 >

FunctFunctCOpCOp

rsrs

rtrt

rdrd

Inm16Inm16

addadd_26_26

44

Page 32: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Procesador Monociclo

� Esquema General por unidad

Unidad de Control

AluOut

32 busA

32 busB

Unidad Registros

rs

rt

32busW

RegWr AluCtr

AluSrcRegDst

rd

ExtOp

Inm16AddrD

MemoriaDatos Dout

Din

MemRd

MemWr

0

1

MemtoReg

Unidadde

Operaciones

nPC_sel

Unidadde

Instrucción

COp+Funct

Equal

Reloj

5

5

5

WEPC

2

Page 33: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

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.

� Estos movimientos de datos pueden ser debidos a conexiones permanentes entre componentes o pueden programarse mediante las señales de control

� Las señales de control sincronizan los cambios de estados de los registros o de la memoria

Page 34: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Transferencias Físicas de Datos (cont)

� 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.

� 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 35: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Transferencias Físicas de Datos (cont)

� 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 + 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= sub(busA, busB), Unidad Operaciones.

busW=AluOut, R[RW]=busW. Unidad Registros. Escritura.

Page 36: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Transferencias Físicas de Datos (cont)

� 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 + 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.

Page 37: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Transferencias Físicas de Datos (cont)

� 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 + 4

AddrI=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 38: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Transferencias Físicas de Datos (cont)� 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.

� JUMP: 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 39: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Señales de Control para Transferencias Físicas

�En lugar de valores binarios pueden usarse valores conceptuales de las señales de control

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.

Page 40: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Valores que toman las señales de control � Valores que toman las señales de control para desarrollar las

diferentes transferencias lógicas necesarias para cada instrucción:

� ADD: R[rd] ⇐ R[rs] + R[rt]; PC ⇐ PC + 4nPC_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 41: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Valores que toman las señales de control (cont)

� SLT: R[rd] ⇐ R[rs] < R[rt] ? 1: 0 ; PC ⇐ PC + 4nPC_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 42: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Valores que toman las señales de control (cont)

� LOAD: R[rt] ⇐ MEM[ R[rs] + sign_ext(Inm16)]; PC ⇐ PC + 4nPC_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 43: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Valores que toman las señales de control (cont)

� 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. 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 44: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Diagrama de Tiempos para las Instrucciones

� A continuación se muestran todas las señales que se producen cuando se ejecutan las instrucciones del repertorio.

� Se pueden ver los tiempos requeridos para la ejecución de las instrucciones de salto jmp, de bifurcación (branch), aritméticas y lógicas inmediatas (add, sub, slt, ori), store word (store) y load word (load).

� La mas lenta es load y por ende determina la frecuencia del reloj (al ser monociclo la frecuencia del reloj es determinada por la instrucción mas larga).

� Se las ubica con sus requerimientos aproximados de tiempo, y en forma relativa con respecto a las otras.

Page 45: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Diagrama de Tiempos para las Instrucciones (cont)

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 ybusW en ADD, SUB, ORI

Propagación ALU

Valor anteriorDout

Nuevos valores de Dout enLw y M[Aluout] en Sw

Tiempo Acceso Memoria de Datos

Valor anteriorbusW

Nuevo valorbus 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 igualdadjump

branch

aritméticas y lógicas

store

load

Page 46: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Tiempos para las Instrucciones (cont)

� Si se miden los tiempos que requieren las instrucciones para completar sus transferencias, puede confeccionarse, observando el diagrama temporal, la siguiente tabla:

� Sin embargo todas las instrucciones se ejecutan en el mismo tiempo(un ciclo de reloj) que la más lenta en ejecutarse (es decir en 12 unidades, en la escala con la que se confeccionó el gráfico).

Page 47: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Tiempos para las Instrucciones (cont)

� Otra alternativa es generar una tabla basada en las specsde los circuitos de los distintos componentes.

� Ejemplo: � Las memorias responden en 2 ns, los sumadores y la ALU operan en

2 ns; y la unidad de registros, tanto en lectura como en escritura, responden en 1 ns

� Ignorando retardos de otros elementos se hacer la siguiente tabla

Page 48: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Rendimiento del Procesador Monociclo

� Si definimos, en general:� C = Comportamiento Procesador = 1/ TE (a mayor tiempo, peor

comportamiento)

� TE = Tiempo de ejecución de un programa de prueba.

� NI = número de instrucciones del programa de prueba.

� CPI = ciclos de reloj por instrucción. ( vale 1 para diseño monociclo)

� PC = Período del reloj.

� Se tiene que: TE = NI * CPI * PC

� Con la tabla simplificada, para el procesador monociclo con un período fijo de reloj, se tiene:� TE(reloj fijo) = NI*1*8

� Ya que la instrucción más lenta demora 8 ns.

Page 49: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Rendimiento del Procesador Monociclo (cont)

� Si deseamos evaluar el comportamiento promedio:

� Se asume que el programa de prueba está constituido por la siguiente mezcla:

25% de cargas, 11% de almacenamientos, 30 % de sumas, 9 % de restas, 4 % de or inmediatos, 15 % de bifurcaciones y 6 % de saltos.

� Se tendrá ahora:

TE(reloj variable) = NI (0,25*8 + 0,11*7+0,30*6+0,09*6 + 0,04*6+0,15*3+0,06*2) = NI*5,92

� Puede considerarse que el valor promedio del período del reloj es 5,92 ns.

Page 50: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Rendimiento del Procesador Monociclo (cont)

� La comparación:

C(reloj variable)/ C(reloj fijo) = TE(reloj fijo) / TE(relojvariable) = 8,0/5,92 = 1,35.

� Indica que el procesador monociclo con reloj variable es 1,35 veces más rápido que el de reloj fijo.

� La alternativa de reloj variable es de implementación compleja, suele escogerse un reloj más rápido pero aceptando que las instrucciones se completen en diferentes ciclos de reloj (es decir CPI variable).

� Esto dará origen a la metodología de diseño denominada multiciclo, que se verá más adelante.

� El comportamiento monociclo empeora si en la mezcla de instrucciones participan algunas que tengan tiempos de ejecución mucho mayores que el promedio (e.g. punto flotante, transferencias complejas)

Page 51: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

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 52: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Diseño de la Unidad de Control (cont)

� Tabla de Verdad de la Unidad de Control Monociclo

1021sub

1131slt

1020add

011φor

000φand

BinarioDecimal

OperaciónBnegateOp

Page 53: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Diseño de la Unidad de Control (cont)

� 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 54: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Diseño de la Unidad de Control (cont)

� 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_sel

WEPCEqOp+funct

Page 55: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

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

MemoriaMemoriaDatosDatos

DouDoutt

MemRdMemRdMemWrMemWr

00

11

MemtoRegMemtoReg

AddrAddrDD

DinDin

busbusWW3232

RRWW

RRaaRRbb

32 32 RegistrosRegistros

3232--bitbit

3322busbus

WW

WWEE

RegWrRegWr

55

55

55

RegDstRegDst

11

00

3232

Inm16Inm16

AlAluOuOutut

AluSrAluSrcc

Op32Op32

Extensor

Extensor

AluCtrAluCtr

00

11

IgualIgual

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>

PPCC

SigSigExtExt**44

44

(PC+4)[31..2(PC+4)[31..28]8]

nPC_selnPC_sel

00

11

22

0..10..1

AddrIAddrIMemoriaMemoriaInstrucInstruc--cionesciones

busIbusIRR

RRdd

"1""1"

Inm1Inm166

addadd_26_26

WEWEPCPC

<5..0 <5..0 > >

FunctFunctCOpCOp

rsrs

rtrt

rdrd

Inm16Inm16

addadd_26_26

44

Page 56: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Diseño de la Unidad de Control (cont)

� 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 57: ELO311 Estructuras de Computadores Digitales Procesador ...profesores.elo.utfsm.cl/~tarredondo/info/comp... · Arquitectura de Nuestro Proc. Monociclo Modelo Carga-Almacenamiento

Diseño de la Unidad de Control (cont)

� 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

� Se debe extender esta arquitectura monociclo si se desean agregar nuevas instrucciones, esto puede requerir que se modifiquen algunas de las unidades (e.g. instrucción, registros, operaciones, memoria), el camino de datos y la unidad de control.