Unidad 2:
Segmentación
2.7. Dependencias de Datos
Docente: Ing. José Díaz Chow
Preámbulo
Clases anteriores:
• Procesador segmentado adelanta la ejecución.
• Dependencias inherentes al solapamiento.
• Riesgos por dependencias:
 Estructurales
 Datos
 Control
Unidad 2: Segmentación
2.7 Dependencias de Datos
• Conceptos Básicos
• Riesgos por dependencias de datos
• Reducción de Latencias mediante Diseño
• Técnicas de Bloqueo
• Datapath del DLX con DD corregidas
Objetivos
• Explicar los riesgos de la segmentación asociados a las
dependencias de datos.
• Clasificar los tipos de dependencias de datos y
determinar en qué condiciones pueden representar
riesgos a los procesadores segmentados.
• Proponer alternativas de diseño para minimizar las
latencias por Dependencias de Datos.
• Explicar las técnicas que se emplean para garantizar la
coherencia de la ejecución en casos de Dependencias de
datos.
Unidad 2: Segmentación
Contenido:
2.7 Dependencias de Datos
• Conceptos Básicos
• Riesgos por dependencias de datos
• Reducción de Latencias mediante Diseño
• Técnicas de Bloqueo
• Datapath del DLX con DD corregidas
Conceptos Básicos
(1/3)
• Instrucciones en los programas establecen una R de
dependencia en los datos
P.Ej: Orden lógico (algoritmo), Precedencia.
• Lecturas y escrituras deben mantener un orden
• Dos niveles:
• Programa a Alto Nivel (Compilador)
• Programa a Bajo Nivel (CPU)
Conceptos Básicos
(2/3)
Ejemplo:
A=A+B*C
Compilador
A = R10, B = R11, C = R12, Tmp = R21
MULT R21, R11, R12
ADD R10, R10, R21
R21 se actualiza aquí
(i)
MULT R21, R11, R12
(i+j) ADD R10, R10, R21
Wb
D/L
Se lee el valor de R21 aquí
Conceptos Básicos
(3/3)
Tipos de Dependencias de Datos:
• Instrucciones son funciones (D,R)
D(i)  D(j)   (RAR: No riesgo, Requisitos Estruct.)
D(i)  R(j)   (WAR: No en DLX - ejecución en orden)
R(i)  D(j)   (RAW: Problema típico. Ejemplo)
R(i)  R(j)   (WAW: No en DLX, solo escribe en Wb)
j = i + n | n  E+
Unidad 2: Segmentación
Contenido:
2.7 Dependencias de Datos
• Conceptos Básicos
• Riesgos por dependencias de datos
• Reducción de Latencias mediante Diseño
• Técnicas de Bloqueo
• Datapath del DLX con DD corregidas
Riesgos por Dep. de Datos
Regresemos a nuestro ejemplo:
R21 se actualiza aquí
Wb
(i)
MULT R21, R11, R12
D/L
(i+j) ADD R10, R10, R21
Se lee el valor de R21 aquí
• Incoherencias = Resultados equivocados
- Prohibitivo. Requiere Bloqueo
• Latencias
= Pérdida de eficiencia
- Mejoras de Diseño
Unidad 2: Segmentación
Contenido:
2.7 Dependencias de Datos
• Conceptos Básicos
• Riesgos por dependencias de datos
• Reducción de Latencias mediante Diseño
• Técnicas de Bloqueo
• Datapath del DLX con DD corregidas
Reducción de latencias (1/4)
Posibles latencias:
Valor actualizado de R21
disponible aquí
R21 se escribe aquí
ALU
WB
D/L
1ra Latencia
2da Latencia
3ra Latencia
4ta Latencia
Necesito el
valor de R21
aquí
• Si Tr es suficiente (WB escriba antes que D/L lea), la
4ta latencia no existe.
Reducción de latencias (2/4)
• Forwarding, bypassing o cortocircuito
Técnica de diseño que consiste en proporcionar el
resultado, inmediatamente esté disponible.
• En el DLX, los resultados están disponibles al
final de la etapa ALU (Permite elimina latencia 1)
• De la S(ALU) pasan al MAR y de S(MAR) al
MDRin (Elimina latencia 2 y 3)
Reducción de latencias (3/4)
Aplicando Forwarding:
Valor actualizado de R21
disponible aquí
R21 se escribe aquí
WB
ALU
D/L
ALU
Cortocircuitos que adelantan el
valor de R21 eliminando las
posibles latencias para
operaciones como OP
Valor actualizado de R21 se
ocupa aquí
OP(i) – OP(i+1) :
S(ALU)  E(A)|E(B)
OP(i) - OP(i+2) :
S(MAR)  E(A)|E(B)
OP(i) - OP(i+3) :
S(MDRin)  E(A)|E(B)
Reducción de latencias (4/4)
• Forwarding no resuelve todos los casos
Ejemplo:
LOAD(i) – OP(i+1)
Valor actualizado
disponible aquí
ALU
MEM
Esc
D/L
Valor actualizado
requerido aquí
- Impráctico buscar que S(MEM) E(ALU)
Unidad 2: Segmentación
Contenido:
2.7 Dependencias de Datos
• Conceptos Básicos
• Riesgos por dependencias de datos
• Reducción de Latencias mediante Diseño
• Técnicas de Bloqueo
• Datapath del DLX con DD corregidas
Técnicas de Bloqueo (1/2)
• No todos los segmentados implementan
Forwarding. Bloqueo es indispensable.
• En caso de latencias obligatorias, es necesario
garantizar la coherencia mediante bloqueo.
• Dos tratamientos:
 Hardware (CU)
 Software (Compiladores y Programador)
Técnicas de Bloqueo (1/2)
Tratamiento por Hardware:
• Interlock, bloqueo por Hardware o burbuja.
- Detección de dependencias en la UC.
• En el DLX :
 NOP en IR2
 Bloquear carga del IR: Ld_IR
 Bloquear carga del PC: Ld_PC
Técnicas de Bloqueo (2/2)
Tratamiento por Software:
• Compilador optimizador introduce NOPs
• Compilador optimizador reordena código
• Programador usa NOPs en Assembler
• Programador reordena código en Assembler
Unidad 2: Segmentación
Contenido:
2.7 Dependencias de Datos
• Conceptos Básicos
• Riesgos por dependencias de datos
• Reducción de Latencias mediante Diseño
• Técnicas de Bloqueo
• Datapath del DLX con DD corregidas
Datapath del DLX Corregido
DLX Datapath - Dependencias de datos resueltas
Sistema de Memoria
Señales de Control
Reloj
R/W
BUS
Ld_PC
@Inst
ICache:R/W
PC
iCache

Ld_IR
4
Reloj
Inst
IR
D/L
(offset d)
BR
(a, b, c)
Rf1 R
Rf2 R
(a, b, c)
NOP
(a, b, c)
Reloj
Reloj
A'
A
Reloj
B
MDR
Reloj
BR:@Rf1(IR), Read
BR:@Rf2(IR), Read
MuxA'(IR, (IR3, IR3, IR4))
MuxA (IR, (IR3, IR3, IR4))
MuxB (IR, (IR3, IR3, IR4))
MuxMDR(IR, (IR3, IR3, IR4))
Ld_PC(IR, IR2)
Ld_IR(IR, IR2)
MuxIR2(IR, IR2)
IR2
ALU
0
ALUsel(IR2)
Comp(IR2)
MuxMDRout(IR2, IR3)
(b)
Comp
ALU
(a)
Reloj
Cond
Reloj
Reloj
MAR
MDROUT
Reloj
IR3
MEM
R/W
@datos
dCache
dCache:R/W(IR3)
MuxPC(IR3,Cond)
MuxMDRin(IR3)
datos_out
datos_in
Reloj
(b)
MDRIN
Reloj
IR4
ESC
(c)
Rd Write
BR:@Rd(IR4), Write
BR
Nota: Los cambios respecto al DataPath con Dep. Estructurales resueltas se muestran en azul fuerte
Descargar

Presentación U2.2