Upload
chita-bejarano
View
227
Download
0
Embed Size (px)
Citation preview
Unidad 2:
Segmentación2.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)
• Lecturas y escrituras deben mantener un orden
• Instrucciones en los programas establecen una R de dependencia en los datos
P.Ej: Orden lógico (algoritmo), Precedencia.
• 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
Wb
R21 se actualiza aquí
D/LSe lee el valor de R21 aquí
(i) MULT R21, R11, R12
(i+j) ADD R10, R10, R21
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
• Incoherencias = Resultados equivocados
- Prohibitivo. Requiere Bloqueo
• Latencias = Pérdida de eficiencia
- Mejoras de Diseño
WbR21 se actualiza aquí
D/L
Se lee el valor de R21 aquí
(i) MULT R21, R11, R12
(i+j) ADD R10, R10, R21
Regresemos a nuestro ejemplo:
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)
Valor actualizado de R21disponible aquí
WBALU
D/L
R21 se escribe aquí
Necesito elvalor de R21
aquí
1ra Latencia
2da Latencia
3ra Latencia
4ta Latencia
• Si Tr es suficiente (WB escriba antes que D/L lea), la 4ta latencia no existe.
Posibles latencias:
Reducción de latencias (2/4)
• Forwarding, bypassing o cortocircuitoTé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)
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)
Valor actualizado de R21 disponible aquí
WBALU
D/L
R21 se escribe aquí
Valor actualizado de R21 se ocupa aquí
ALUCortocircuitos que adelantan el
valor de R21 eliminando las posibles latencias para operaciones como OP
Aplicando Forwarding:
Reducción de latencias (4/4)
• Forwarding no resuelve todos los casos
Ejemplo: LOAD(i) – OP(i+1)
- Impráctico buscar que S(MEM) E(ALU)
EscALU
D/L
Valor actualizadorequerido aquí
MEM
Valor actualizadodisponible aquí
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)
• 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
Tratamiento por Hardware:
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
ALU
MDR
PC
MAR
IR
iCache
MDRIN
BR
Rf2 RRf1 R
A B
Inst
@Inst
A'
Comp
0
4
MDROUT
BR
Rd Write
IR2
IR3
IR4
(offset d)
Cond
DLX Datapath - Dependencias de datos resueltas
dCache
BUS
D/L
ALU
MEM
ESC
R/W
Reloj
Reloj
Reloj
RelojReloj
Reloj Reloj Reloj
@datos
datos_out
datos_in
Reloj RelojReloj
R/W
ICache:R/W
BR:@Rf1(IR), ReadBR:@Rf2(IR), ReadMuxA'(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)
ALUsel(IR2)Comp(IR2)MuxMDRout(IR2, IR3)
dCache:R/W(IR3)MuxPC(IR3,Cond)MuxMDRin(IR3)
BR:@Rd(IR4), Write
Señales de ControlSistema de MemoriaReloj
(a, b, c)(a, b, c) (a, b, c) NOP
(a)
(b)
(c)
(b)
Ld_PC
Ld_IR
Nota: Los cambios respecto al DataPath con Dep. Estructurales resueltas se muestran en azul fuerte