unidad 2: segmentación 2.7. dependencias de datos docente: ing. josé díaz chow

21
Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

Upload: chita-bejarano

Post on 02-Feb-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

Unidad 2:

Segmentación2.7. Dependencias de Datos

Docente: Ing. José Díaz Chow

Page 2: 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

Page 3: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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

Page 4: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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.

Page 5: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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

Page 6: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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)

Page 7: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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

Page 8: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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+

Page 9: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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

Page 10: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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:

Page 11: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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

Page 12: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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:

Page 13: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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)

Page 14: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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:

Page 15: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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í

Page 16: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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

Page 17: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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)

Page 18: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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:

Page 19: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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

Page 20: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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

Page 21: Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow

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