Este documento describe la técnica de segmentación de instrucciones para mejorar el rendimiento de los procesadores. La segmentación permite solapar la ejecución de las cinco etapas de una instrucción (búsqueda, decodificación, ejecución, memoria y escritura) entre múltiples instrucciones de forma concurrente. Esto incrementa la cantidad de instrucciones que se están ejecutando simultáneamente y acelera el procesamiento general. Sin embargo, la segmentación también introduce riesgos de control de datos que deben abordarse.
1. Estructuras de Computadores
Tema 6: Mejora del rendimiento con la segmentación
LECTURAS OBLIGATORIAS:
D. A. Patterson, J.L. Hennessy, “Estructura y Diseño de Computadores”:Capítulo 6.
BIBLIOGRAFÍA DE CONSULTA DEL TEMA:
1
D. A. Patterson, J.L. Hennessy, “Estructura y Diseño de Computadores”: Capítulo 6.
2. Tema 6: Procesador Segmentado
Í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
2
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
3. Tema 6: Procesador Segmentado
INTRODUCCIÓN A LA SEGMENTACIÓN
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
Clase instrucción Búsqueda Lectura Operación Acceso al Escritura TOTAL
instrucción registros ALU dato registros
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
3
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
4. Tema 6: Procesador Segmentado
Ejemplo de la mejora del rendimiento:
2 4 6 8 10 11 12 14 16 18
Acceso
lw $1, 100($0) Búsqueda Reg ALU Reg
dato
8 ns
Acceso
Búsqueda Reg ALU Reg
lw $2, 200($0) dato
8 ns
lw $3, 300($0) Búsqueda Reg ALU
8 ns
2 4 6 8 10 11 12 14 16 18
Acceso
lw $1, 100($0) Búsqueda Reg ALU Reg
dato
2 ns Acceso
Búsqueda Reg ALU Reg
lw $2, 200($0) dato
2 ns Acceso
Búsqueda Reg ALU Reg
lw $3, 300($0) dato
2 ns 2 ns 2 ns 2 ns 2 ns
4
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
5. Tema 6: Procesador Segmentado
Mejora del rendimiento:
Tiempo instrucciones no segmentadas
Tiempo instrucciones 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.
5
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
6. Tema 6: Procesador Segmentado
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.
6
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
7. Tema 6: Procesador Segmentado
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.
7
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
8. Tema 6: Procesador Segmentado
SEGMENTACIÓN DEL CAMINO DE DATOS:
ID: Decodificación/ EX: Ejecución/ MEM: Acceso
lectura registros cálculo direcciones a memoria
WB: escritura retardada
0
1
<<2
Sumador
Sumador
4 Leer
Registro 1
Dato
Leer Leído 1 Zero
Registro 2
Dirección ALU
PC Escribir
Registro Resultado
Dirección
Dato 0 Dato
Instrucción Banco Leído 2 leído 0
Registros 1
Escribir 1
Memoria Dato Memoria
de datos
instrucciones
Escribir
dato
Extensión
de
IF: Búsqueda signo
de instrucciones
8
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
9. Tema 6: Procesador Segmentado
SEGMENTACIÓN DEL CAMINO DE DATOS:
Tiempo (en ciclos de reloj)
Orden de
ejecución CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7
del programa
(en instrucciones)
A
lw $1, 100($0) IM Reg L DM Reg
U
A
lw $2, 200($0) IM Reg L DM Reg
U
A
lw $3, 300($0) IM Reg L DM Reg
U
9
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
10. Tema 6: Procesador Segmentado
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
10
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
11. Tema 6: Procesador Segmentado
LW búsqueda instrucción
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
11
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
12. Tema 6: Procesador Segmentado
LW decodificación
de la instrucción
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
12
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
13. Tema 6: Procesador Segmentado
LW ejecución
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
13
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
14. Tema 6: Procesador Segmentado
LW memoria
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
14
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
15. Tema 6: Procesador Segmentado
LW escritura
0 retardada
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
15
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
16. Tema 6: Procesador Segmentado
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
16
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
17. Tema 6: Procesador Segmentado
Tiempo (en ciclos de reloj)
Orden de
ejecución CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7
del programa
(en instrucciones)
A
lw $10, 20($0) IM Reg L DM Reg
U
A
sub $11, $2, $3 IM Reg L DM Reg
U
Orden de Tiempo (en ciclos de reloj)
ejecución
del programa CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7
(en instrucciones)
Búsqueda de Decodificación Acceso Escritura
lw $10, 20($0) instrucciones instrucción
Ejecución
a los datos retardada
Búsqueda de Decodificación Acceso Escritura
Ejecución
sub $11, $2, $3 instrucciones instrucción a los datos retardada
17
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
18. Tema 6: Procesador Segmentado
lw $10, 20($1)
Búsqueda instrucción
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
CICLO 1
18
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
19. Tema 6: Procesador Segmentado
sub $11, $2, $3 lw $10, 20($1)
Búsqueda instrucción Decodif. instrucc
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
CICLO 2
19
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
20. Tema 6: Procesador Segmentado
sub $11, $2, $3 lw $10, 20($1)
Decodif. instrucción Ejecución
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
CICLO 3
20
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
21. Tema 6: Procesador Segmentado
sub $11, $2, $3 lw $10, 20($1)
Ejecución Memoria
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
CICLO 4
21
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
22. Tema 6: Procesador Segmentado
lw $10, 20($1)
sub $11, $2, $3 WB
Memoria
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
CICLO 5
22
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
23. Tema 6: Procesador Segmentado
sub $11, $2, $3
WB
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
4 <<2
Leer
Registro 1
Dato
Leer Leído 1
Registro 2 Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de Escribir
instrucciones dato
16 32
Extensión
de
signo
CICLO 6
23
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
24. Tema 6: Procesador Segmentado
FuentePC
0
1
IF/ID ID/EX EX/MEM MEM/WB
Sumador
Sumador
EscrReg Salto
4 <<2
Leer
Registro 1
MemaReg
Dato EscMem
Leer Leído 1
Registro 2 FuenteALU Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de 16 Ext. Ext. Escribir
32 6 dato
instrucciones de de
signo signo
0
1 LeerMem
ALUOp
EscrReg 24
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
25. Tema 6: Procesador Segmentado
CONTROL DE LA SEGMENTACIÓN:
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 El valor de la entrada del banco de registros proviene de la
de ALU memoria
Instrucción Líneas control etapa ejecución/cálculo Líneas control etapa acceso Líneas control etapa
dirección memoria 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
25
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
26. Tema 6: Procesador Segmentado
WB
Control
M WB
EX M WB
Instrucción
IF/ID IF/EX EX/MEM MEM/WB
26
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
27. Tema 6: Procesador Segmentado
FuentePC
ID/EX
0 WB EX/MEM
1
M WB MEM/WB
IF/ID
AluOp M WB
EX
EscrReg Salto
FuenteALU EscMmem MemaReg
LeerMem EscrReg
Sumador
Sumador
EscrReg Salto
4 <<2
Leer
Registro 1
MemaReg
Dato EscMem
Leer Leído 1
Registro 2 FuenteALU Zero
Escribir
ALU Dirección
Registro Resultado Dato
Dirección Dato 0 leído 0
PC Banco Leído 2
Registros
1 1
Instrucción Escribir Memoria
Dato datos
Memoria
de 16 Ext. Escribir
32 6 dato
instrucciones de ALU
signo Control
0
1 LeerMem
ALUOp
EscrReg 27
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
28. Tema 6: Procesador Segmentado
RIESGOS DE DATOS Y ANTICIPACIÓN:
CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 CR 8 CR 9
Valor del registro $2: 10 10 10 10 10/-20 -20 -20 -20 -20
A
sub $2, $1, $3 IM Reg L DM Reg
U
A
and $12, $2, $5 IM Reg L DM Reg
U
A
or $13, $6, $2 IM Reg L DM Reg
U
A
add $14, $2, $2 IM Reg L DM Reg
U
A
sw $15, 100($2) IM Reg L DM Reg
U
28
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
29. Tema 6: Procesador Segmentado
CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 CR 8 CR 9
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
A
sub $2, $1, $3 IM Reg L DM Reg
U
A
and $12, $2, $5 IM Reg L DM Reg
U
A
or $13, $6, $2 IM Reg L DM Reg
U
A
add $14, $2, $2 IM Reg L DM Reg
U
A
L
sw $15, 100($2) IM Reg
U
DM Reg
29
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
30. Tema 6: Procesador Segmentado
Registros ALU
Memoria
de
datos M
U
X
a) Sin anticipación
ID/EX EX/MEM MEM/WB
M
U
X ALU
Registros
Anticipar A
M Memoria
U de
X M
datos
Anticipar B U
Rs
Rt
X
M
Rt U
EX/MEM RegistroRd
Rd X
b) con anticipación Unidad de
MEM/WB RegistroRd
anticipación
30
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
31. Tema 6: Procesador Segmentado
VALORES DE CONTROL PARA LOS MULTIPLEXORES DE LA ANTICIPACIÓN:
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
31
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
32. Tema 6: Procesador Segmentado
ID/EX
WB EX/MEM
Control M WB MEM/WB
IF/ID EX M WB
M
U
X
Registros A
Memoria
L de
Memoria U datos
M
PC de U
instrucciones M X
U
X
IF/ID RegistroRs Rs
IF/ID RegistroRt Rt
M
IF/ID RegistroRt Rt U
IF/ID RegistroRd Rd X
Unidad de
anticipación
32
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
33. Tema 6: Procesador Segmentado
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.
33
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
34. Tema 6: Procesador Segmentado
or $4, $4, $2 and $4, $2, $5 sub $2, $1, $3
ID/EX
10 10
WB EX/MEM
Control M WB MEM/WB
IF/ID EX M WB
$2 $1
2 M
U
5 X
Registros A
Memoria
L de
Memoria U M
PC de $5 $3 datos
U
instrucciones M X
U
X
2 1
5 3
M
U
4 2 X
Unidad de
anticipación
CICLO 3
34
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
35. Tema 6: Procesador Segmentado
and $9, $4, $2 or $4, $4, $2 and $4, $2, $5 sub $2, $1, $3
ID/EX
10 10
WB EX/MEM
Control M WB MEM/WB
IF/ID EX M WB
$4 $2
4 M
U
2 X
Registros A
Memoria
L de
Memoria U M
PC de $2 $5 datos
U
instrucciones M X
U
X
4 2
2 5
M 2
U
4 4 X
Unidad de
anticipación
CICLO 4
35
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
36. Tema 6: Procesador Segmentado
add $9, $4, $2 or $4, $4, $2 and $4, $2, $5 sub $2…
ID/EX
10 10
WB EX/MEM
10
Control M WB MEM/WB
IF/ID EX M WB
$4 $4
4 M
U
2 X
Registros A
Memoria
L de
Memoria U M
PC de $2 $2 datos
U
instrucciones M X
U
X
4 4
2 2
M 4 2
U
9 4 X
Unidad de
anticipación
CICLO 5
36
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
37. Tema 6: Procesador Segmentado
and $9, $4, $2 or $4, $4, $2 and $4…
ID/EX
10
WB EX/MEM
10
Control M WB MEM/WB
EX M WB 1
IF/ID
$4
M
U
X
4 Registros A
Memoria
L de
Memoria U M
PC de $2 datos
U
instrucciones M X
U
X
4
2 4
M 4
U
9 X
Unidad de
anticipación
CICLO 6
37
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
38. Tema 6: Procesador Segmentado
RIESGOS DE DATOS Y BLOQUEOS:
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
38
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
39. Tema 6: Procesador Segmentado
CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 CR 8 CR 9
A
lw $2, 20($1) IM Reg L DM Reg
U
A
and $4, $2, $5 IM Reg L DM Reg
U
A
or $8, $2, $6 IM Reg L DM Reg
U
A
add $9, $4, $2 IM Reg L DM Reg
U
A
slt $1, $6, $7 IM Reg L DM Reg
U
39
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
40. Tema 6: Procesador Segmentado
CR 1 CR 2 CR 3 CR 4 CR 5 CR 6 CR 7 CR 8 CR 9
A
lw $2, 20($1) IM Reg L DM Reg
U
A
and $4, $2, $5 IM Reg Reg L DM Reg
U
A
or $8, $2, $6 IM IM Reg L DM Reg
U
A
add $9, $4, $2 BURBUJA IM Reg L DM Reg
U
A
slt $1, $6, $7 IM Reg L DM
U
40
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
41. Tema 6: Procesador Segmentado
Unidad de
detección ID/EX LeerMem ID/EX RegistroRt
Escr IF/ID ID/EX
WB EX/MEM
Control M M WB
U MEM/WB
X
IF/ID 0 EX M WB
EscrPC
M
U
X
Registros A
Memoria
L de
Memoria U datos
M
PC de U
instrucciones M X
U
X
IF/ID RegistroRs Rs
IF/ID RegistroRt Rt
M
IF/ID RegistroRt Rt U
IF/ID RegistroRd Rd X
Unidad de
anticipación
41
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
42. Tema 6: Procesador Segmentado
and $4, $2, $5 lw $2, 20($1)
1 Unidad de
detección ID/EX LeerMem ID/EX RegistroRt
X
Escr IF/ID ID/EX
11
WB EX/MEM
Control M M WB
U MEM/WB
X
IF/ID 0 EX M WB
EscrPC
$1
1 M
U
X X
Registros A
Memoria
L de
Memoria U datos
M
PC de $X U
instrucciones M X
U
X
1
X
M
2 U
X
CICLO 2
Unidad de
anticipación
42
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
43. Tema 6: Procesador Segmentado
or $4, $4, $2 and $4, $2, $5 lw $2, 20($1)
2 Unidad de
detección ID/EX LeerMem ID/EX RegistroRt
5
Escr IF/ID ID/EX
00 11
WB EX/MEM
Control M M WB
U MEM/WB
X
IF/ID 0 EX M WB
EscrPC
$2 $1
2 M
U
5 X
Registros A
Memoria
L de
Memoria U datos
M
PC de $5 $x U
instrucciones M X
U
X
2 1
5 x
M
2 U
X
4
CICLO 3
Unidad de
anticipación
43
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores
44. Tema 6: Procesador Segmentado
or $4, $4, $2 and $4, $2, $5 BURBUJA lw $2, 20($1)
2 Unidad de
detección ID/EX LeerMem ID/EX RegistroRt
5
Escr IF/ID ID/EX
10 00
WB EX/MEM
11
Control M M WB
U MEM/WB
X
IF/ID 0 EX M WB
EscrPC $2
$2
2 M
U
5 X
Registros A
Memoria
L de
Memoria U datos
M
PC de $5 $5 U
instrucciones M X
U
X
2 2
5 5
M 2
U
X
4 4
CICLO 4
Unidad de
anticipación
44
CUM (UEX) 2012 - 2013 JPM Estructuras de Computadores