segmentacion estructura computadores

63
1 LECTURAS OBLIGATORIAS: D. A. Patterson, J.L. Hennessy, Estructura y Diseño de Computadores:Capítulo 6. BIBLIOGRAFÍA DE CONSULTA DEL TEMA: D. A. Patterson, J.L. Hennessy, Estructura y Diseño de Computadores: Capítulo 6. Estructuras de Computadores Tema 6: Mejora del rendimiento con la segmentación

Upload: melkorus

Post on 02-Jul-2015

1.905 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: segmentacion estructura computadores

1

LECTURAS OBLIGATORIAS: D. A. Patterson, J.L. Hennessy, “Estructura y Diseño de Computadores”:Capítulo 6. BIBLIOGRAFÍA DE CONSULTA DEL TEMA: D. A. Patterson, J.L. Hennessy, “Estructura y Diseño de Computadores”: Capítulo 6.

Estructuras de Computadores

Tema 6: Mejora del rendimiento con la segmentación

Page 2: segmentacion estructura computadores

2

Índice:

•  6. Segmentación

• 6.1. Introducción

• 6.2. Camino de datos segmentado

• 6.3. Control en la segmentación

• 6.4. Riesgos de datos y anticipación

• 6.5. Riesgos de datos y bloqueos

• 6.6 Riesgos de saltos

Tema 6: Procesador Segmentado

Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Page 3: segmentacion estructura computadores

3 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Técnica que permite solapar la ejecución de múltiples instrucciones. Se basa en la segmentación cada instrucción a partir de sus 5 pasos

clásicos:

1.  Búsqueda de la instrucción en memoria. 2.  Lectura de registros mientras se decodifica la instrucción 3.  Ejecución de la operación o cálculo de una dirección 4.  Acceso a un operando en la memoria de datos 5.  Escritura del resultado en un registro

INTRODUCCIÓN A LA SEGMENTACIÓN

Clase instrucción Búsqueda instrucción

Lectura registros

Operación ALU

Acceso al dato

Escritura registros

TOTAL

Load word 2 ns 1 ns 2 ns 2 ns 1 ns 8 ns

Store word 2 ns 1 ns 2 ns 2 ns 7 ns

Formato R 2 ns 1 ns 2 ns 1 ns 6 ns

BEQ 2 ns 1 ns 2 ns 5 ns

JUMP 2 ns 2 ns

Tema 6: Procesador Segmentado

Page 4: segmentacion estructura computadores

4 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

2 4 6 8 10 11 12 14 16 18

lw $1, 100($0)

lw $2, 200($0)

lw $3, 300($0)

Búsqueda Reg ALU Acceso dato Reg

Búsqueda Reg ALU Acceso dato Reg

Búsqueda Reg ALU

8 ns

8 ns

8 ns

2 4 6 8 10 11 12 14 16 18

lw $1, 100($0)

lw $2, 200($0)

lw $3, 300($0)

Búsqueda Reg ALU Acceso dato Reg

Búsqueda Reg ALU Acceso dato Reg

Búsqueda Reg ALU Acceso dato Reg

2 ns

2 ns

2 ns 2 ns 2 ns 2 ns 2 ns

Ejemplo de la mejora del rendimiento:

Tema 6: Procesador Segmentado

Page 5: segmentacion estructura computadores

5 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Tiempo instrucciones segmentadas Tiempo instrucciones no segmentadas

Número de etapas de segmentación

En condiciones ideales, el incremento de la velocidad de la segmentación iguala al número de etapas: 5 etapas à 5 veces más rápido Pero las etapas pueden estar mal equilibradas, además de la carga adicional que puede conllevar la segmentación. El tiempo por instrucción en una máquina segmentada excederá el mínimo y incremento de velocidad será menor que el número de etapas de la segmentación.

Mejora del rendimiento:

Tema 6: Procesador Segmentado

Page 6: segmentacion estructura computadores

6 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Diseño del repertorio de instrucciones para la segmentación:

1.- Todas las instrucciones tienen la misma longitud 2.- MIPS tiene solo unos pocos formatos de instrucciones y las posiciones de los campos son muy regulares en todos los formatos. 3.- En MIPS, los operandos de memoria solo aparecen en loads y stores. 4.- Los operandos deben estar alineados en memoria

Riesgos del pipeline (segmentación):

1.- Estructural: la circuitería no puede soportar la combinación de instrucciones que se quiere ejecutar en el mismo ciclo. 2.- De Control: surgen de la necesidad de tomar una decisión basada en los resultados de una instrucción mientras las otras se están ejecutando. 3.- De Datos: una instrucción depende del resultado de una instrucción previa que todavía está en el pipeline.

Tema 6: Procesador Segmentado

Page 7: segmentacion estructura computadores

7 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Perspectiva general y resumen de la segmentación:

Técnica que explota el paralelismo entre las instrucciones de un flujo secuencial. Totalmente invisible al programador. Incrementa el número de instrucciones que se están ejecutando simultáneamente y la rapidez con las que las instrucciones empiezan y acaban. No reduce el tiempo que se tarda en completar una instrucción individual:

5 etapas à 5 ciclos. La segmentación mejora la productividad. Los repertorios de instrucciones pueden simplificar y dificultar la tarea de los diseñadores de procesadores segmentados (riesgos estructurales, de control y de datos). Predicción de saltos y bloqueos son las herramientas para hacer un computador más rápido de forma correcta.

Tema 6: Procesador Segmentado

Page 8: segmentacion estructura computadores

8 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

SEGMENTACIÓN DEL CAMINO DE DATOS:

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

IF: Búsqueda de instrucciones

ID: Decodificación/ lectura registros

EX: Ejecución/ cálculo direcciones

MEM: Acceso a memoria W

B: escritura retardada

Tema 6: Procesador Segmentado

Page 9: segmentacion estructura computadores

9 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

lw $1, 100($0)

lw $2, 200($0)

lw $3, 300($0)

IM

IM

IM

A L U

A L U

A L U

DM

DM

DM

Reg

Reg

Reg

Reg

Reg

Reg

CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7

Tiempo (en ciclos de reloj) Orden de ejecución

del programa (en instrucciones)

SEGMENTACIÓN DEL CAMINO DE DATOS:

Tema 6: Procesador Segmentado

Page 10: segmentacion estructura computadores

10 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

16 32

Tema 6: Procesador Segmentado

Page 11: segmentacion estructura computadores

11 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

32 16

LW búsqueda instrucción Tema 6: Procesador Segmentado

Page 12: segmentacion estructura computadores

12 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

LW decodificación de la instrucción

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

32 16

Tema 6: Procesador Segmentado

Page 13: segmentacion estructura computadores

13 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

32 16

LW ejecución

Tema 6: Procesador Segmentado

Page 14: segmentacion estructura computadores

14 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

32 16

LW memoria

Tema 6: Procesador Segmentado

Page 15: segmentacion estructura computadores

15 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

32 16

LW escritura retardada

Tema 6: Procesador Segmentado

Page 16: segmentacion estructura computadores

16 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

16 32

Tema 6: Procesador Segmentado

Page 17: segmentacion estructura computadores

17 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

lw $10, 20($0)

sub $11, $2, $3

IM

IM

A L U

A L U

DM

DM

Reg

Reg

Reg

Reg

CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7

Tiempo (en ciclos de reloj) Orden de ejecución

del programa (en instrucciones)

lw $10, 20($0)

sub $11, $2, $3

CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7

Tiempo (en ciclos de reloj) Orden de ejecución

del programa (en instrucciones)

Búsqueda de instrucciones

Decodificación instrucción

Ejecución Acceso a los datos

Escritura retardada

Búsqueda de instrucciones

Decodificación instrucción Ejecución Acceso

a los datos Escritura

retardada

Tema 6: Procesador Segmentado

Page 18: segmentacion estructura computadores

18 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

16 32

lw $10, 20($1) Búsqueda instrucción

CICLO 1

Tema 6: Procesador Segmentado

Page 19: segmentacion estructura computadores

19 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

16 32

sub $11, $2, $3 Búsqueda instrucción

lw $10, 20($1) Decodif. instrucc

CICLO 2

Tema 6: Procesador Segmentado

Page 20: segmentacion estructura computadores

20 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

16 32

sub $11, $2, $3 Decodif. instrucción

lw $10, 20($1) Ejecución

CICLO 3

Tema 6: Procesador Segmentado

Page 21: segmentacion estructura computadores

21 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

16 32

sub $11, $2, $3 Ejecución

lw $10, 20($1) Memoria

CICLO 4

Tema 6: Procesador Segmentado

Page 22: segmentacion estructura computadores

22 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

16 32

sub $11, $2, $3 Memoria

lw $10, 20($1) WB

CICLO 5

Tema 6: Procesador Segmentado

Page 23: segmentacion estructura computadores

23 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Extensión de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

16 32

sub $11, $2, $3 WB

CICLO 6

Tema 6: Procesador Segmentado

Page 24: segmentacion estructura computadores

24 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Ext. de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

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

16 32

1 0

EscrReg

Ext. de

signo

6

EscrReg

ALUOp

FuenteALU

Salto

EscMem

LeerMem

MemaReg

FuentePC

Tema 6: Procesador Segmentado

Page 25: segmentacion estructura computadores

25 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Señal de Control Efecto cuando no está activa Efecto cuando está activa

RegDest (RegDst) El destino es rt [20-16] El destino es rd [15-11]

EscrReg (RegWrite) Ninguno Registro destino se actualiza con valor a escribir

Fuente ALU (ALUSrc) Segundo op. ALU segundo registro leído Segundo op. ALU ext_sig[15-0]

FuentePC (PCSrc) PC=PC+4 PC=salida sumador (dirección salto)

LeerMem (MemRead) Ninguno El valor de la pos. de mem. dada por dirección se coloca en la salida de lectura

EscrMem (MemWrite) Ninguno El valor de la pos. de mem. dada por dirección se reemplaza por el valor de la entrada de datos

MemaReg (MemtoReg) Entrada en banco de registros proviene de ALU

El valor de la entrada del banco de registros proviene de la memoria

Instrucción Líneas control etapa ejecución/cálculo dirección

Líneas control etapa acceso memoria

Líneas control etapa postescritura

RegDst ALUOp1 ALUOp0 FuenteALU Salto LeerMem EscrMem EscrReg MemaReg

TIPO R 1 0 0 1 0 0 0 1 0

LW 0 1 1 1 1 0 0 0 0

SW X 1 X 0 0 1 0 0 0

BEQ X 0 X 0 0 0 1 0 1

CONTROL DE LA SEGMENTACIÓN:

Tema 6: Procesador Segmentado

Page 26: segmentacion estructura computadores

26 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

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

Control

WB

M

EX

WB

M WB

Instrucción

Tema 6: Procesador Segmentado

Page 27: segmentacion estructura computadores

27 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC

Memoria de

instrucciones

Dirección

Instrucción

Sum

ador

4

1 0

Dato Leído 1

Leer Registro 1

Leer Registro 2

Escribir Registro

Escribir Dato

Banco Registros

Dato Leído 2

Ext. de

signo

Sum

ador

1 0

ALU Zero

Resultado

<<2

Dirección

Escribir dato

Memoria datos

Dato leído

1 0

IF/ID

ID/EX

EX/MEM

MEM/WB

16 32

1 0

EscrReg

ALU

Control

6

EscrReg

ALUOp

FuenteALU

Salto

EscMem

LeerMem

MemaReg

FuentePC

EX

WB

M WB

M WB AluOp EscrReg FuenteALU

Salto EscMmem LeerMem

MemaReg EscrReg

Tema 6: Procesador Segmentado

Page 28: segmentacion estructura computadores

28 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

sub $2, $1, $3 IM A L U

CR 1 CR 2 CR 3 CR 4 CR 5

Reg DM Reg

CR 6 CR 7 CR 8 CR 9

IM A L U

Reg DM Reg and $12, $2, $5

IM A L U

Reg DM Reg

IM A L U

Reg DM Reg

IM A L U

Reg DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

Valor del registro $2: 10 10 10 10 10/-20 -20 -20 -20 -20

RIESGOS DE DATOS Y ANTICIPACIÓN:

Tema 6: Procesador Segmentado

Page 29: segmentacion estructura computadores

29 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

sub $2, $1, $3 IM A L U

CR 1 CR 2 CR 3 CR 4 CR 5

Reg DM Reg

CR 6 CR 7 CR 8 CR 9

IM A L U

Reg DM Reg and $12, $2, $5

IM A L U

Reg DM Reg

IM A L U

Reg DM Reg

IM A L U

Reg DM Reg

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

Valor del registro $2: 10 10 10 10 10/-20 -20 -20 -20 -20 Valor de EX/MEM: X X X -20 X X X X X Valor de MEM/WB: X X X X -20 X X X X

Tema 6: Procesador Segmentado

Page 30: segmentacion estructura computadores

30 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

ALU Registros

Memoria de

datos

ID/EX EX/MEM MEM/WB

M U X

ALU

Registros

Memoria de

datos M U X

M U X

M U X

M U X

Unidad de anticipación

EX/MEM RegistroRd

MEM/WB RegistroRd

Anticipar B

Anticipar A

Rs

Rt Rt

Rd

a) Sin anticipación

b) con anticipación

Tema 6: Procesador Segmentado

Page 31: segmentacion estructura computadores

31 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Control Multiplexor Fuente Explicación

AnticiparA=00 ID/EX El primer operando de la ALU vine del banco de registros

AnticiparA=10 EX/MEM El primer operando de la ALU se anticipa del resultado de la ALU anterior

AnticiparA=01 MEM/WB El primer operando de la ALU se anticipa de la memoria de datos o de un resultado de la ALU anterior

AnticiparB=00 ID/EX El segundo operando de la ALU viene del banco de registros

AnticiparB=10 EX/MEM El segundo operando de la ALU se anticipa del resultado de la ALU anterior

AnticiparB=01 MEM/WB El segundo operando de la ALU se anticipa de la memoria de datos o de un resultado de la ALU anterior

VALORES DE CONTROL PARA LOS MULTIPLEXORES DE LA ANTICIPACIÓN:

Tema 6: Procesador Segmentado

Page 32: segmentacion estructura computadores

32 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB

IF/ID RegistroRs Rs IF/ID RegistroRt Rt IF/ID RegistroRt Rt IF/ID RegistroRd Rd

IF/ID

ID/EX

EX/MEM

MEM/WB

Tema 6: Procesador Segmentado

Page 33: segmentacion estructura computadores

33 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

EJEMPLO ANTICIPACIÓN:

Veamos ahora como funciona la anticipación en el siguiente ejemplo:

sub $2, $1, $3 and $4, $2, $5 or $4, $4, $2 add $9, $4, $2

Las dependencias de datos se muestran en negro.

Tema 6: Procesador Segmentado

Page 34: segmentacion estructura computadores

34 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB

sub $2, $1, $3 and $4, $2, $5 or $4, $4, $2

$2

$5

2 5

2 5

4

$1

$3

1 3

2

10 10

CICLO 3

Tema 6: Procesador Segmentado

Page 35: segmentacion estructura computadores

35 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB

sub $2, $1, $3 and $4, $2, $5 or $4, $4, $2

$4

$2

4 2

4 2

4

$2

$5

2 5

4

10 10

and $9, $4, $2

2

CICLO 4

Tema 6: Procesador Segmentado

Page 36: segmentacion estructura computadores

36 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB

sub $2… and $4, $2, $5 or $4, $4, $2

$4

$2

4 2

4 2

9

$4

$2

4 2

4

10 10

add $9, $4, $2

4

10

2

CICLO 5

Tema 6: Procesador Segmentado

Page 37: segmentacion estructura computadores

37 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB

and $4… or $4, $4, $2

4

$4

$2

4 2

9

10

and $9, $4, $2

4

10

4

1

CICLO 6

Tema 6: Procesador Segmentado

Page 38: segmentacion estructura computadores

38 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Unidad de detección de riesgos: Hay ocasiones en las que la unidad de anticipación no puede anticipar el dato. Ej: una instrucción después de un load intenta leer el registro que escribe el load. Dicha unidad operará durante la etapa ID, para que se pueda insertar un bloqueo entre el load y la instrucción que lo usa. Control para la detección de riesgos cuando se analiza un load: Si (ID/EX.LeerMem y ((ID/EX.Registro.Rt=IF/ID.RegistroRs) o (ID/EX.Registro.Rt=IF/ID.RegistroRt))) BLOQUEAR EL PIPELINE

RIESGOS DE DATOS Y BLOQUEOS:

Tema 6: Procesador Segmentado

Page 39: segmentacion estructura computadores

39 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

lw $2, 20($1) IM A L U

CR 1 CR 2 CR 3 CR 4 CR 5

Reg DM Reg

CR 6 CR 7 CR 8 CR 9

IM A L U

Reg DM Reg and $4, $2, $5

IM A L U

Reg DM Reg

IM A L U

Reg DM Reg

IM A L U

Reg DM Reg

or $8, $2, $6

add $9, $4, $2

slt $1, $6, $7

Tema 6: Procesador Segmentado

Page 40: segmentacion estructura computadores

40 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

lw $2, 20($1) IM A L U

CR 1 CR 2 CR 3 CR 4 CR 5

Reg DM Reg

CR 6 CR 7 CR 8 CR 9

IM A L U

Reg DM Reg and $4, $2, $5

IM A L U

Reg DM Reg

IM A L U

Reg DM Reg

IM A L U

Reg DM

or $8, $2, $6

add $9, $4, $2

slt $1, $6, $7

Reg

IM

BURBUJA

Tema 6: Procesador Segmentado

Page 41: segmentacion estructura computadores

41 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB

IF/ID RegistroRs Rs IF/ID RegistroRt Rt IF/ID RegistroRt Rt IF/ID RegistroRd Rd

IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

Unidad de detección ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID

EscrPC

Tema 6: Procesador Segmentado

Page 42: segmentacion estructura computadores

42 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID

EscrPC

and $4, $2, $5 lw $2, 20($1)

1

X

1 X 2

11

1

X

$1

$X

CICLO 2

Unidad de detección

Tema 6: Procesador Segmentado

Page 43: segmentacion estructura computadores

43 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID

EscrPC

and $4, $2, $5 lw $2, 20($1)

2

5

2 5

4

00

2

5

$2

$5

or $4, $4, $2

1 x 2

$1

$x

11

CICLO 3

Unidad de detección

Tema 6: Procesador Segmentado

Page 44: segmentacion estructura computadores

44 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID

EscrPC

and $4, $2, $5 lw $2, 20($1)

2

5

2 5

4

10

2

5

$2

$5

or $4, $4, $2

$2

$5

00

2 5

4

BURBUJA

11

2

CICLO 4

Unidad de detección

Tema 6: Procesador Segmentado

Page 45: segmentacion estructura computadores

45 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID

EscrPC

and $4, $2, $5 lw $2…

4

2

4 2

4

10

4

2

$2

$5

or $4, $4, $2

$2

$5

10

2 5

4

BURBUJA

0

add $9, $4, $2

11

2

CICLO 5

Unidad de detección

Tema 6: Procesador Segmentado

Page 46: segmentacion estructura computadores

46 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Memoria de

datos M U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID

EscrPC

and $4, $2, $5

4

2

4 2

9

10

4

2

$4

$2

or $4, $4, $2

$4

$2

10

4 2

4

BURBUJA

10

add $9, $4, $2

0

Registros

4

CICLO 6

Unidad de detección

Tema 6: Procesador Segmentado

Page 47: segmentacion estructura computadores

47 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Memoria de

datos M U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID

EscrPC

and $4…

4

10

or $4, $4, $2

$4

$2

10

4 2

9

10

add $9, $4, $2

1

Registros

4

CICLO 7

Unidad de detección

Tema 6: Procesador Segmentado

Page 48: segmentacion estructura computadores

48 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Hasta ahora, riesgos con operaciones aritméticas y de transferencia de datos. También existen riesgos en la segmentación que involucran instrucciones de sato. En nuestro camino de datos, se debe buscar una instrucción por ciclo para mantener el pipeline, aunque si se considera una instrucción de salto, no se sabrá si es efectivo o no hasta la etapa de MEM. Ese retardo a la hora de determinar la instrucción correcta que se tiene que buscar, se denomina riesgo de control o riesgo de saltos.

RIESGOS DE SALTOS:

Tema 6: Procesador Segmentado

Page 49: segmentacion estructura computadores

49 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

40 beq $1, $3, 7 IM A L U

CR 1 CR 2 CR 3 CR 4 CR 5

Reg DM Reg

CR 6 CR 7 CR 8 CR 9

IM A L U

Reg DM Reg 44 and $12, $2, $5

IM A L U

Reg DM Reg

IM A L U

Reg DM Reg

IM A L U

Reg DM Reg

48 or $13, $6, $2

52 add $14, $2, $2

72 lw $4, 50($7)

Tema 6: Procesador Segmentado

Page 50: segmentacion estructura computadores

50 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

Unidad de detección ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID

EscrPC

M U X

ext sign

<<2

4 + +

=

IF.Flush

Tema 6: Procesador Segmentado

Page 51: segmentacion estructura computadores

51 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

EJEMPLO SALTO SEGMENTADO:

Que ocurre cuando se toma el salto de la siguiente secuencia, suponiendo pipeline optimizado para saltos que no se toman y se mueve la ejecución del salto

a la etapa ID:

36 sub $10, $4, $8 40 beq $1, $3, 7 44 and $12, $2, $5 48 or $13, $2, $6 52 add $14, $4, $2 56 slt $15, $6, $7 … 72 lw $4, 40($7)

Tema 6: Procesador Segmentado

Salto relativo al PC 40 + 4 + 7*4 = 72

Page 52: segmentacion estructura computadores

52 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

Unidad de detección ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID EscrPC

M U X

ext sign

<<2

4 + +

=

beq $1, $3, 7 sub $10, $4, $8 and $12, $2, $5

72

44

48

44

48

7

28 72

72

$1

$3

10

$4

$8

IF.Flush

CICLO 3

Tema 6: Procesador Segmentado

Page 53: segmentacion estructura computadores

53 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

PC Memoria

de instrucciones

Registros Memoria

de datos M

U X

Control

M U X

M U X

M U X

A L U

Unidad de anticipación

WB

M

EX

WB

M WB IF/ID

ID/EX

EX/MEM

MEM/WB M U X

0

Unidad de anticipación ID/EX RegistroRt ID/EX LeerMem

Escr IF/ID EscrPC

M U X

ext sign

<<2

4 + +

=

beq $1, $3, 7 sub $10, $4, $8 lw $4, 50($7)

76

72

76

72

76

7

72

10

$1

$3

BURBUJA

IF.Flush

CICLO 4

Tema 6: Procesador Segmentado

Page 54: segmentacion estructura computadores

54 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Bucles y predicción: Examinar si dicha instrucción tomó el salto en la última ocasión en la que se ejecutó (buffer de predicciones de saltos o tabla de historia de saltos mediante 1 bit). La predicción es una apuesta que se supone correcta à la búsqueda se comienza con la dirección predicha. Si la apuesta es incorrecta, se invierte el bit de predicción, se guarda y se ejecuta la secuencia normal. PROBLEMA: aunque un salto sea tomado casi siempre, probablemente se harán dos predicciones incorrectas, en vez de una, cuando no sea tomado. Veamos esto con un ejemplo: Considerar un salto de final de bucle que salta nueve veces seguidas y entonces no salta. ¿Cuál es la tasa de aciertos de la predicción para este salto suponiendo que el bit de predicción de este salto se mantiene en el buffer de predicción? La predicción fallará en la primera y en la última iteraciones del bucle. Fallar en la última es inevitable (el bit de predicción indicará tomado à 9 veces seguidas). El fallo en la primera iteración se debe a que el bit se cambia en la ejecución anterior de la última iteración, ya que el salto no fue tomado en esa iteración de salida del bucle. La tasa de aciertos de la predicción de este salto, que es tomado el 90%, es solo del 80% (2 incorrectas y 8 correctas).

Tema 6: Procesador Segmentado

Page 55: segmentacion estructura computadores

55 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Predecir tomado Predecir tomado

Predecir no tomado Predecir no tomado

Tomado

Tomado

Tomado

Tomado

No tomado

No tomado

No tomado

No tomado

Tema 6: Procesador Segmentado

Page 56: segmentacion estructura computadores

56 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

Tipo Instrucción Etapas

Instrucción ALU o de salto IF ID EX MEM WB

Instrucción de load o store

IF ID EX MEM WB

Instrucción ALU o de salto IF ID EX MEM WB

Instrucción de load o store

IF ID EX MEM WB

Instrucción ALU o de salto IF ID EX MEM WB

Instrucción de load o store

IF ID EX MEM WB

Instrucción ALU o de salto IF ID EX MEM WB

Instrucción de load o store

IF ID EX MEM WB

PC Memoria

de instrucciones

Registros Memoria de

datos M U X

M U X

M U X

M U X

A L U

Unidad de anticipación

Segmentación SUPERESCALAR MIPS:

+

Tema 6: Procesador Segmentado

Page 57: segmentacion estructura computadores

57 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

RESUMEN: Dependencia:

Cualquier motivo que hace que una instrucc. dependa de otra. •  Dependencia por un dato (en registro o memoria). •  Dependencia de control (salto tomado o no). •  Dependencia estructural (conflictos con recursos).

Riesgo:

Situación de posible error de ejecución por la presencia de una dependencia. Todo riesgo debe resolverse:

•  Complicando el HW para evitar el riesgo. •  Mediante SW (reordenación instrucc., …). •  Introduciendo los bloqueos necesarios (requiere HW adicional para detectar riesgos peligrosos).

Bloqueo:

Es la detención de alguna/s fase/s en la ejecución.

Tema 6: Procesador Segmentado

Page 58: segmentacion estructura computadores

58 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

RESUMEN: Por lo general, cuando se produce un bloqueo,

Todas las instrucciones siguientes a la que lo produjo también se bloquearán. No se emite IF ninguna instrucción.

Las instrucciones previas al bloqueo deben continuar para que se resuelva el bloqueo.

Cada bloqueo se puede entender como una “burbuja vacía” en la cadena que se propaga de izquierda a derecha.

Ciclos totales = Ciclos Ideales + Ciclos Bloqueo

CPIreal = CPIideal + CPIbloqueo = 1 + CPIbloqueo

CPIbloqueo = CPIbl.datos + CPIbl. estruc + CPIbl.control

Tema 6: Procesador Segmentado

Page 59: segmentacion estructura computadores

59 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

RESUMEN: Dependencias de datos:

Registros u operandos puedan ser leídos/escritos en orden diferente al código.

Una dependencia de datos ocurre cuando una primera instrucción lee o escribe un registro, y este registro es usado por una instrucción posterior (en lectura o escritura) que empieza a ejecutarse antes de que concluya la primera.

Podemos resolverlos por bloqueos o por anticipación. Antes, debemos detectarlos (en RISC es sencillo, solo se lee en ID y se escribe en WB, en CISC es más complejo).

Tema 6: Procesador Segmentado

Page 60: segmentacion estructura computadores

60 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

RESUMEN: Tipo de dependencias de datos: RAW (Read After Write): dependencia real. Cuando el operando destino de una instrucción va a ser utilizado como fuente para alguna/s instrucciones posteriores. Muy común. Inevitable e inherente al algoritmo. WAR (Write After Read): o antidependencia. Una instrucción escribe su resultado en un registro destino que es el mismo que un registro fuente de una instrucción anterior. No producen riesgos. Son ficticias. WAW (Write After Write): o dependencia de salida. Dos instrucciones usan el mismo registro de destino, y el riesgo se produce cuando la instrucción posterior quiere escribir antes que la anterior. En nuestro caso, tampoco son riesgos reales, puesto que solo se puede escribir en la fase WB. RAR (Read After Read): No es un problema, puesto que la lectura no modifica valores.

Read

Write After

Read

Write

MUL tiene que escribir un valor que tiene que leer antes ADD ADD R1, R0, R2 MUL R0, R3, R4

ADD R1, R0, R2 MUL R3, R0, R4

MUL tiene que leer un valor que tiene que escribir antes ADD ADD R0, R1, R2 MUL R3, R0, R4

MUL tiene que escribir un valor después de lo haya escrito ADD ADD R0, R1, R2 MUL R0, R3, R4

Tema 6: Procesador Segmentado

Page 61: segmentacion estructura computadores

61 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

RESUMEN:

Tiempo instrucciones segmentadas Tiempo instrucciones no segmentadas

Número de etapas de segmentación

Ganancia Tiempo sin segmentar

Tiempo segmentado

Ganancia 8 x 3

(2 x 3) + 8

Para 3 instrucciones:

1’715

24

14

Ganancia 8 x 1003

(2 x 1003) + 8

Para 1003 instrucciones:

3’98

8024

2014

Tema 6: Procesador Segmentado

Page 62: segmentacion estructura computadores

62 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

CONCLUSIONES: •  La segmentación mejora el tiempo de ejecución medio por instrucción.

•  Se puede ver como una reducción del tiempo de ciclo o de CPI.

•  La segmentación mejora la productividad, pero no el tiempo de ejecución o latencia.

•  Se comienza la ejecución de una instrucción por ciclo, con varias unidades dedicadas.

•  La latencia introduce problemas debido a las dependencias entre instrucciones que pueden bloquear al procesador.

•  El coste de una dependencia de datos se reduce con la anticipación.

•  La frecuencia de los riesgos de control se reduce con predicción de salto.

•  El incremento de la longitud del cauce no siempre incrementa el rendimiento debido a: •  Dependencias de datos. •  Riesgos de control. •  Sobrecarga de los registros de segmentación.

Tema 6: Procesador Segmentado

Page 63: segmentacion estructura computadores

63 Estructuras de Computadores CUM (UEX) 2012 - 2013 JPM

0.0

0.5

1.0

1.5

2.0

2.5

3.0

1 2 4 8 16

Rel

ativ

e pe

rfor

man

ce

Pipeline depth

Tema 6: Procesador Segmentado