segmentacion estructura computadores
Embed Size (px)
Transcript of 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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