Verano 2004

29
Organización del Computador I Verano Procesador Segmentado Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn

description

Organización del Computador I Verano Procesador Segmentado Basado en el capítulo 6 del libro de Patterson y Hennessy. Verano 2004. Profesora Borensztejn. Segmentación. - PowerPoint PPT Presentation

Transcript of Verano 2004

Page 1: Verano 2004

Organización del Computador I Verano

Procesador Segmentado Basado en el capítulo 6 del libro de Patterson y Hennessy

Verano 2004 Profesora Borensztejn

Page 2: Verano 2004

Procesador Segmentado Unidad 2 2

SegmentaciónDescompone una determinada operación en n suboperaciones a realizar en etapas distintas, de manera que se puedan realizar n operaciones simultáneas, cada una en una etapa distinta.

• Divide una operación en suboperaciones

• Desacopla las suboperaciones

F

F1 F2 F3

Page 3: Verano 2004

Procesador Segmentado Unidad 2 3

Segmentación• No reduce la latencia de una instrucción, sino que ayuda a

incrementar la productividad de toda la tarea.• Permite que los recursos se utilizen óptimamente, sin ciclos

ociosos.• La velocidad, o frecuencia con que una instrucción sale del

pipeline (cauce) está limitada por el tiempo de proceso de la etapa más lenta.

• Idealmente, la mejora en velocidad debida a la segmentación es igual al número de etapas:– la segmentación involucra gastos

– las etapas pueden no estar equilibradas==> tiempo de inactividad

• El diseñador debe equilibrar la duración de las etapas.

Page 4: Verano 2004

Procesador Segmentado Unidad 2 4

Ejecución de lw en la máquina uniciclo

Instrucción Memoria Lect. ALU Memoria Escritura Total

Registros Datos Registros

Formato R 10 5 10 5 30

Load 10 5 10 10 5 40

Store 10 5 10 10 35

Beq 10 5 10 25

Ins R Alu Mem W

Ins R Alu Mem W

Ins R Alu40 nseg

lw

lw

lw

Page 5: Verano 2004

Procesador Segmentado Unidad 2 5

Etapas de la Segmentación• La instrucción se divide en 5 etapas:

– Ifetch– Reg/Dec– Ejec– Mem– WB

• Una etapa, un ciclo, debe acomodar la operación más lenta ===>> 10 nseg.

• El speedup ideal debiera ser 5.

Page 6: Verano 2004

Procesador Segmentado Unidad 2 6

Máquina uniciclo vs segmentada

Ins R Alu Mem W

Ins R Alu Mem W

Ins R Alu40 nseg

lw

lw

lw

Ins R Alu Mem Wlw

lw

lw

Ins R Alu Mem W

Ins R Alu Mem W10 nseg

10 nseg

10 nseg 10 nseg 10 nseg 10 nseg 10 nseg

Page 7: Verano 2004

Procesador Segmentado Unidad 2 7

Mejora de la Segmentación

7,170

120 seg

uni

uni

seg

TT

R

R

• Donde están los problemas?

– Hay que considerar el tiempo de llenado y vaciado del pipeline (20nseg+20nseg)

– Las etapas tienen la misma duración y no realizan la misma cantidad de trabajo

– La eficiencia del pipeline es mayor al considerar muchas instrucciones, porque las latencias individuales aumentan pero la productividad disminuye.

Page 8: Verano 2004

Procesador Segmentado Unidad 2 8

Uniciclo, Multiciclo vs Segmentada

Load

Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 9Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo 10

Store

Fetch Reg ALU Mem WB Fetch Reg ALU Mem Fetch

Fetch Reg ALU Mem WB

Fetch Reg ALU Mem WB

Fetch Reg ALU Mem WB

Load RStore

Load

Store

R

Page 9: Verano 2004

Procesador Segmentado Unidad 2 9

Mejora de la Segmentación

3,410404500

8,310404000

seg

mult

mult

seg

seg

uni

uni

seg

TT

R

R

TT

R

R

Suponemos que ejecutamos 100 instrucciones

• Uniciclo– 40nseg * 1 CPI * 100inst= 4000 nseg

• Multiclo– 10nseg * 4,5 CPI * 100 inst= 4500 nseg

• Segmentada– 10nseg * (1 CPI * 100 inst + 4 ciclos) = 1040 nseg

Ahora ,Mejor!!!

Page 10: Verano 2004

Procesador Segmentado Unidad 2 10

Óptimo uso de recursos

M Reg M Reg

M Reg MReg

M Reg M Reg

M Reg M Reg

M Reg M Reg

Inst 1

Inst 2

Inst 3

Inst 4

Inst 5

0 1 2 3 4 5 6 7ciclos

Page 11: Verano 2004

Procesador Segmentado Unidad 2 11

¿Problemas?• No puede utilizarse el mismo recurso en el mismo

momento para hacer distintas cosas.– Por ejemplo: la memoria no puede utilizarse al mismo

tiempo para leer instrucciones y escribir o leer datos.

• Varias instrucciones utilizan un mismo recurso en distintos momentos y se pierden los valores anteriores– Por ejemplo: la ejecución de la segunda instrucción

carga la instrucción de memoria sobre el registro IR aún cuando la primera instrucción depende de la información que había guardado en IR.

Page 12: Verano 2004

Procesador Segmentado Unidad 2 12

Procesador Segmentado Lineal• Todas las instrucciones tardan el mismo tiempo y

atraviesan todas las etapas.• Cada unidad funcional sólo puede ser usada una

vez por instrucción (el flujo de información queremos que vaya siempre hacia la derecha)

• Cada unidad funcional debe ser utilizada en la misma etapa por todas las instrucciones.

• Queremos evitar problemas!!!! Por ejemplo:– Lw IF Reg Eje Mem Wr– R IF Reg Eje Wr

Page 13: Verano 2004

Procesador Segmentado Unidad 2 13

Uso de U.F

Paso Registros ALU Memoria

Fetch Todas PC<--PC+4 Todas Inst<--M[PC]

Lectura Todas

Eje Tipo R: operación

Lw y Sw: dirección

Beq: operación y dirección

Mem Lw y Sw

PostW Lw

Tipo R

Page 14: Verano 2004

Procesador Segmentado Unidad 2 14

Memoria

• Se utiliza en la etapas Fetch y Memoria

• Debe poder soportar al mismo tiempo :– lectura de instrucción– lectura/escritura de dato

• Soluciones:– una memoria con dos ports de lectura y uno de

escritura– memoria separada de instrucciones y datos

Page 15: Verano 2004

• Se utiliza en la etapas Fetch y Ejecución• Debe poder soportar al mismo tiempo :

– PC + 4 (Fetch)– S=AopB o S=A+ inm16 o Z=(A=B)

(Ejecución)– S=PC+inm16 (Ejecución)

• Solución:– 1 ALU y 2 sumadores

ALU

Page 16: Verano 2004

Banco de Registros

• Se leen en Decode y se escriben en Wb

•Debe poder soportar dos accesos de lectura y uno de escritura por ciclo.

•Se leen en la primera mitad del ciclo. Se escriben en la segunda mitad del ciclo.

Page 17: Verano 2004

Registros de Segmentación

• Entre cada etapa y la siguiente guardaremos la información que debe acompañar a cada instrucción en su marcha por el camino de datos.

ExtInm16

RegW

rs

rt

BusW

Registros 5

5

5 LRA

LRB

WR

rd

RegDst

PC

CLK

instMemoria de Instrucciones

32

ALUctr

Memoria de Datos

WE

@

W_src

>>

2

Alusrc

Z

4

32

32

32+

MU

X

Pcsrc

PC+4

IF/ID ID/EX EX/MEM MEM/WB

Page 18: Verano 2004

Procesador Segmentado Unidad 2 18

Instrucción Tipo R• Transferencias Físicas

IR<---MEM[PC]; PC<--PC+ 4;

BusA<---R[rs]; BusB<---R[rt]

BusS<---BusA+BusB

R[rd]<--BusS

IF/ID

ID/EX

EX/MEM

MEM/WB

IR

A B IRrd

S IRrd

S IRrd

Page 19: Verano 2004

Procesador Segmentado Unidad 2 19

Instrucción Load• Transferencias Físicas

IR<---MEM[PC]; PC<--PC+ 4;

BusA<---R[rs];

BusS<---BusA+ext(inm16);

Dato<--Mem[busS];

R[rt]<--Dato

IF/ID

ID/EX

EX/MEM

MEM/WB

IR

A Ext(inm16) IRrt

S IRrt

Dato IRrt

Page 20: Verano 2004

Procesador Segmentado Unidad 2 20

Instrucción Store• Transferencias Físicas

IR<---MEM[PC]; PC<--PC+ 4;

BusA<---R[rs];

BusS<---BusA+ext(inm16);

Mem[busS]<--BusB;

IF/ID

ID/EX

EX/MEM

MEM/WB

IR

A Ext(inm16) B

S B

Page 21: Verano 2004

Procesador Segmentado Unidad 2 21

Instrucción Beq• Transferencias Físicas

IR<---MEM[PC]; PC<--PC+ 4;

BusA<--R[rs]; BusB<--R[rt];

dst<--- PC+4+ Signext(inm16)*4; Z<-- (BusA=BusB) ;

si (Z) entonces PC<---dst;

IF/ID

ID/EX

EX/MEM

MEM/WB

IR

A Ext(inm16) B

PC + 4

Z Dst

PC + 4

Page 22: Verano 2004

Procesador Segmentado Unidad 2 22

Registros de Segmentación

IF/ID

ID/EX

EX/MEM

MEM/WB

IR PC+4

A B Irrd Irrt ext(inm16)

B

S Irrd Irrt Dato

Z Dst

PC + 4

S Irrd Irrt

Page 23: Verano 2004

Procesador Segmentado Unidad 2 23

Registros de Segmentación(mejor)

IF/ID

ID/EX

EX/MEM

MEM/WB

IR PC+4

A B Irrd Irrt ext(inm16)

S Reg B

S Reg Dato

Z Dst

PC + 4

Page 24: Verano 2004

Camino de Datos con Señales de Control

ExtInm16

RegW

rs

rt

BusW

Registros

5

5

5

LRA

LRB

WR

RegDst

PC

instMemoria de Instrucciones

32

ALUctr

Memoria de Datos

WE

@

W_src

>>

2

Alusrc

Zero

4

32

32

32+

MU

X

PC+4

IF/ID ID/EX EX/MEM MEM/WB

rt

rd

Aluop

Control ALU

Salto

Page 25: Verano 2004

Procesador Segmentado Unidad 2 25

Lógica de Control

Instrucción Ejecución Memoria Wb

RegDst ALUop1 ALUop0 ALUsrc Salto WE RegW W_src

Formato R 1 1 0 0 0 0 1 0

Lw 0 0 0 1 0 0 1 1

Sw x 0 0 1 0 1 0 x

Beq x 0 1 0 1 0 0 x

• El secuenciamiento de control debe viajar con la instrucción a través del Camino de Datos.

• Cada ciclo de reloj se realizan escrituras en el PC, por lo tanto no hay señal especial de escritura para él.

• Los 4 registros de segmentación también se actualizan en cada ciclo.

• Dividimos las señales de control en 3 grupos, de acuerdo a la etapa en la que actúan.

Page 26: Verano 2004

Juntando Todo

Ext

RegW

BusW

Registros

LRA

LRB

WR

RegDst

PC

instMemoria de Instrucciones

32

ALUctr

Memoria de Datos

WE

@

W_src

>>

2

Alusrc

Zero

4

32

32

32+

MU

X

PC+4

IF/ID

ID/EX

EX/MEM MEM/WB

Aluop

Control ALU

Salto

EX

M

W

M

W

W

Control

$10

$11

Page 27: Verano 2004

Identificar las instrucciones

Ext2090

RegW

11

BusW

Registros

LRA

LRB

WR

RegDst

PC

instMemoria de Instrucciones

32

ALUctr

Memoria de Datos

WE

@

W_src

>>

2

Alusrc

Zero

4

32

32

32+

MU

X

PC+4

IF/ID

ID/EX

EX/MEM MEM/WB

11

1

Aluop

Control ALU

Salto

EX

M

W

M

W

W

Control

10

15

6

0

$10

$11

$5

$6

16

10

00

1100

00

01

0

00

1

00

1

0

31

1

1

15

Page 28: Verano 2004

Organización del Computador I Verano

Rendimiento (2 de 3) Basado en el capítulo 2 del libro de Patterson y Hennessy

Verano 2004 Profesora Borensztejn

Page 29: Verano 2004

FIN Segmentado