210 likes | 355 Views
2.7. Dependencias de Datos. Unidad 2: Segmentación. Docente: Ing. José Díaz Chow. Clases anteriores: Procesador segmentado adelanta la ejecución. Dependencias inherentes al solapamiento. Riesgos por dependencias: Estructurales Datos Control. Preámbulo.
E N D
2.7. Dependencias de Datos Unidad 2: Segmentación Docente: Ing. José Díaz Chow
Clases anteriores: • Procesador segmentado adelanta la ejecución. • Dependencias inherentes al solapamiento. • Riesgos por dependencias: • Estructurales • Datos • Control Preámbulo
2.7 Dependencias de Datos • ConceptosBásicos • Riesgospordependencias de datos • Reducción de LatenciasmedianteDiseño • Técnicas de Bloqueo • Datapath del DLX con DD corregidas Unidad 2: Segmentación
Explicarlos riesgosde la segmentaciónasociados a lasdependencias de datos. • Clasificar los tipos de dependencias de datos y determinar en quécondicionespuedenrepresentarriesgos a los procesadoressegmentados. • Proponeralternativas de diseño para minimizarlaslatenciasporDependencias de Datos. Objetivos • Explicarlastécnicasque se emplean para garantizar la coherencia de la ejecución en casos de Dependencias de datos.
Contenido: 2.7 Dependencias de Datos • ConceptosBásicos • Riesgospordependencias de datos • Reducción de LatenciasmedianteDiseño • Técnicas de Bloqueo • Datapath del DLX con DD corregidas Unidad 2: Segmentación
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 (1/3)
Ejemplo: A = A + B * C Compilador A = R10, B = R11, C = R12, Tmp = R21 MULT R21, R11, R12 ADD R10, R10, R21 Conceptos Básicos (2/3)
Tipos de Dependencias de Datos: • Instrucciones son funciones (D,R) D(i) D(j) (RAR: No riesgo, RequisitosEstruct.) D(i) R(j) (WAR: No en DLX - ejecución en orden) R(i) D(j) (RAW: Problematípico. Ejemplo) R(i) R(j) (WAW: No en DLX, solo escribe en Wb) Conceptos Básicos (3/3) j = i + n | n E+
Contenido: 2.7 Dependencias de Datos • ConceptosBásicos • Riesgospordependencias de datos • Reducciónde LatenciasmedianteDiseño • Técnicas de Bloqueo • Datapath del DLX con DD corregidas Unidad 2: Segmentación
Regresemos a nuestro ejemplo: • Incoherencias = Resultados equivocados • - Prohibitivo. Requiere Bloqueo Riesgos por Dep. de Datos • Latencias = Pérdida de eficiencia • - Mejoras de Diseño
Contenido: 2.7 Dependencias de Datos • ConceptosBásicos • Riesgospordependencias de datos • Reducción de LatenciasmedianteDiseño • Técnicas de Bloqueo • Datapath del DLX con DD corregidas Unidad 2: Segmentación
Posibles latencias: Reducción de latencias (1/4) • Si Tressuficiente (WB escriba antes que D/L lea), la 4ta latencia no existe.
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) Reducción de latencias (2/4) • De la S(ALU) pasan al MAR y de S(MAR) al MDRin (Elimina latencia 2 y 3)
Aplicando Forwarding: 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)
Forwarding no resuelve todos los casos Ejemplo: LOAD(i) – OP(i+1) Reducción de latencias (4/4) - Impráctico buscar que S(MEM) E(ALU)
Contenido: 2.7 Dependencias de Datos • ConceptosBásicos • Riesgospordependencias de datos • Reducción de LatenciasmedianteDiseño • Técnicas de Bloqueo • Datapath del DLX con DD corregidas Unidad 2: Segmentación
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 • Bloquearcarga del IR: Ld_IR • Bloquearcarga del PC: Ld_PC Técnicas de Bloqueo (1/2)
Tratamiento por Software: • Compilador optimizador introduce NOPs • Compilador optimizador reordena código • Programador usa NOPs en Assembler Técnicas de Bloqueo (2/2) • Programador reordena código en Assembler
Contenido: 2.7 Dependencias de Datos • ConceptosBásicos • Riesgospordependencias de datos • Reducciónde LatenciasmedianteDiseño • Técnicas de Bloqueo • Datapath del DLX con DD corregidas Unidad 2: Segmentación