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) 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
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 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) 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 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) 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) 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)
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