organizaciónde computadoras

69
Organización de Computadoras Pipeline José Luis Hamkalo Depto. de Electrónica

Upload: others

Post on 05-May-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Organizaciónde Computadoras

Organización de Computadoras

Pipeline

José Luis Hamkalo Depto. de Electrónica

Page 2: Organizaciónde Computadoras

Organización de la Clase

� Introducción al procesamiento pipeline.

� Arquitectura MIPS 32 con implementación pipeline.implementación pipeline.

� Riesgos pipeline.

• Estructurales

• Datos

• Control

José Luis Hamkalo Depto. de Electrónica

Page 3: Organizaciónde Computadoras

Procesamiento Pipeline. La Idea

de una Línea de Montaje.

� Ejemplo de fabricación de un automóvil.

� Se requieren cuatro pasos:

• Construcción de la carrocería.

•• Construcción de la carrocería.

• Protección anticorrosiva y pintura.

• Ensamblado mecánico: caja-motor.

• Colocación de interiores y terminación.

José Luis Hamkalo Depto. de Electrónica

Page 4: Organizaciónde Computadoras

Procesamiento Pipeline. La Idea

de una Línea de Montaje (cont).

� Hipótesis: cada paso insume una hora.

� Esquema de producción tradicional:

• Un auto a la vez.

•• Un auto a la vez.

• Se produce un auto cada cuatro horas.

� Esquema de línea de montaje:

• Se fabrican cuatro autos a la vez.

• En distintos grados de avance.

• Se inicia y termina un auto por hora.

José Luis Hamkalo Depto. de Electrónica

Page 5: Organizaciónde Computadoras

Camino de Datos MIPS 32 Simplificado.

Implementación Monociclo.

Búsqueda de instrucción Decodificación y lectura de registros

Ejecución/ cálculo de dirección

Acceso amemoria

Escritura en registro

José Luis Hamkalo Depto. de Electrónica

Reloj

Page 6: Organizaciónde Computadoras

Dividir el Trabajo en Etapas

Separadas por Registros.

� Busqueda de Instrucciones (IF)

� Decodificación y búsqueda de operandos (ID)operandos (ID)

� Ejecución y cálculo de dirección (EX)

� Acceso a memoria (MEM)

� Write back (WB)

José Luis Hamkalo Depto. de Electrónica

Procesamiento pipeline: procesar como en

una línea de montaje.

Page 7: Organizaciónde Computadoras

Versión Pipeline del Camino de

Datos MIPSRegistros interetapa

José Luis Hamkalo Depto. de Electrónica

Reloj

Page 8: Organizaciónde Computadoras

Etapa IF de una instrucción lw

José Luis Hamkalo Depto. de Electrónica

Page 9: Organizaciónde Computadoras

Etapa ID de una instrucción lw

José Luis Hamkalo Depto. de Electrónica

Page 10: Organizaciónde Computadoras

Etapa EX de una instrucción lw

José Luis Hamkalo Depto. de Electrónica

Page 11: Organizaciónde Computadoras

Etapa MEM de una instrucción lw

José Luis Hamkalo Depto. de Electrónica

Page 12: Organizaciónde Computadoras

Etapa WB de una instrucción lw

José Luis Hamkalo Depto. de Electrónica

Page 13: Organizaciónde Computadoras

Corrección para la instrucción lw

José Luis Hamkalo Depto. de Electrónica

Debe conservarseel especificador deregistro destino

Page 14: Organizaciónde Computadoras

Una Secuencia de InstruccionesTiempo en ciclos de reloj

Orden deejecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 15: Organizaciónde Computadoras

Diagrama Pipeline Tradicional

Tiempo en ciclos de reloj

Orden deejecucióndel programa

José Luis Hamkalo Depto. de Electrónica

programa

Page 16: Organizaciónde Computadoras

Estado del Pipe en el 5to Clock

José Luis Hamkalo Depto. de Electrónica

Page 17: Organizaciónde Computadoras

Con Señales de Control

José Luis Hamkalo Depto. de Electrónica

Page 18: Organizaciónde Computadoras

Transporte de las Señales de

Control

José Luis Hamkalo Depto. de Electrónica

Page 19: Organizaciónde Computadoras

Con Señales de Control

Generadas y Transportadas.

José Luis Hamkalo Depto. de Electrónica

Page 20: Organizaciónde Computadoras

Contención en el Register File

OK

Duplicar velocidad

del register file

TiempoEjecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 21: Organizaciónde Computadoras

A Veces los Resultados no

Están Listos

TiempoEjecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 22: Organizaciónde Computadoras

Ejemplo

TiempoEjecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 23: Organizaciónde Computadoras

Solución por Hardware:

Parar el Pipeline

TiempoEjecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 24: Organizaciónde Computadoras

Solución por Software: El Compilador

Inserta No-OPeraciones (NOP)

TiempoEjecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 25: Organizaciónde Computadoras

Evitar los Ciclos de Stall:

Forwarding

TiempoEjecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 26: Organizaciónde Computadoras

Forwarding, continuación (2)

TiempoEjecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 27: Organizaciónde Computadoras

Dependencias en una Secuencia

de 5 Instrucciones

Valor delReg. $2

Tiempo en ciclos de reloj

Orden deejecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 28: Organizaciónde Computadoras

Dependencias en una Secuencia

de 5 Instrucciones: los Datos

Pueden Proveerse a Tiempo.

Orden deejecucióndel programa

Tiempo en ciclos de reloj

Valor del Reg. $2Valor de EX/MEMValor de MEM/WB

José Luis Hamkalo Depto. de Electrónica

Page 29: Organizaciónde Computadoras

Agregado del Hardware de

Forwarding al Camino de Datos

José Luis Hamkalo Depto. de Electrónica

Page 30: Organizaciónde Computadoras

TiempoEjecucióndel programa

Forwarding, no siempre

aplicable.

José Luis Hamkalo Depto. de Electrónica

Page 31: Organizaciónde Computadoras

MIPS de 5 etapas requiere de un

“load delay slot”

TiempoEjecucióndel programa

José Luis Hamkalo Depto. de Electrónica

Page 32: Organizaciónde Computadoras

Taxonomía de los Riesgos

� Estructurales

� De Datos

� De Control� De Control

José Luis Hamkalo Depto. de Electrónica

Page 33: Organizaciónde Computadoras

Riesgos Estructurales

� Las instruciones no se pueden ejecutar por no haber suficientes recursos.

� Ejemplos

•� Ejemplos

• Memoria unificada

• Register file no multipuerto

• Unidad funcional requiere más de un ciclo

José Luis Hamkalo Depto. de Electrónica

Page 34: Organizaciónde Computadoras

Riesgo estructural, ejemplo:

memoria unificada (inst. y datos)

Ejecucióndel programa

LW R2, 32(R1)

José Luis Hamkalo Depto. de Electrónica

Page 35: Organizaciónde Computadoras

Ejemplo (continuación).

Solución: Para el Pipeline

Ejecucióndel programa

LW R2, 32(R1)

José Luis Hamkalo Depto. de Electrónica

Page 36: Organizaciónde Computadoras

Riesgos de Datos

� Lectura después de Escritura (RAW)• La inst i+1 lee después que la inst. i escribe

� Escritura después de Lectura (WAR)• La inst i+1 escribe después que la inst. i lee• La inst i+1 escribe después que la inst. i lee

� Escritura después de Escritura (WAW)• La inst i+1 escribe después que la inst. i escribe

� Lectura después de Lectura (RAR)• La inst i+1 lee después que la inst. i lee (nunca es

riesgo)

José Luis Hamkalo Depto. de Electrónica

Page 37: Organizaciónde Computadoras

Riesgos de Control

Instrucciones que alteran el contenido del PCPC

Ejemplo: branch

José Luis Hamkalo Depto. de Electrónica

Page 38: Organizaciónde Computadoras

Ejemplo de Código

36 NOP40 ADD R30, R30, R3044 BEQ R1, R3, 2448 AND R12, R2, R552 OR R13, R6, R256 ADD R14, R2, R2

José Luis Hamkalo Depto. de Electrónica

56 ADD R14, R2, R260 G64 G68 G72 LW R4, 50(R7)76 G

Flujo de instrucciones si el branch es tomado: 36, 40, 44, 72Flujo de instrucciones si el branch es no tomado: 36, 40, 44, 48

Page 39: Organizaciónde Computadoras

Ejemplo, Riesgos Debido al

branch

Flujo de instrucciones si el branch es tomado: 36, 40, 44, 72Flujo de instrucciones si el branch es no tomado: 36, 40, 44, 48

José Luis Hamkalo Depto. de Electrónica

60 o 72

Page 40: Organizaciónde Computadoras

Predicción de Saltos

� Predicción Estática• Hardware

• Software• Información conocida en tiempo de compilación.

• Profiling del programa• Profiling del programa

� Predicción Dinámica• Predictores locales

• predictores de 1 o 2 bits

• Predictores globales• Historia de saltos

• Predictores en 2 niveles

José Luis Hamkalo Depto. de Electrónica

Page 41: Organizaciónde Computadoras

Solución 1, Parar el Pipeline

José Luis Hamkalo Depto. de Electrónica

Page 42: Organizaciónde Computadoras

Instrucciones de Control

SPEC92

José Luis Hamkalo Depto. de Electrónica

Muy frecuentes: alto impacto en el desempeño

Page 43: Organizaciónde Computadoras

Mezcla de Saltos

José Luis Hamkalo Depto. de Electrónica

Page 44: Organizaciónde Computadoras

Solución 2, Asumir Salto NO

Tomado

Flujo de instrucciones si el branch es tomado: 36, 40, 44, 72Flujo de instrucciones si el branch es no tomado: 36, 40, 44, 48

José Luis Hamkalo Depto. de Electrónica

60 o 72

Page 45: Organizaciónde Computadoras

Qué Pasa Si el Salto es Tomado?

José Luis Hamkalo Depto. de Electrónica

Page 46: Organizaciónde Computadoras

Mejora: Mover la Señal que Gobierna

el Multiplexor del PC a la Etapa EX

José Luis Hamkalo Depto. de Electrónica

Page 47: Organizaciónde Computadoras

Reduce Penalidad en 1 Ciclo

José Luis Hamkalo Depto. de Electrónica

Page 48: Organizaciónde Computadoras

Mover Aún Más Hacia Adelante

para Mejorar el Desempeño.

José Luis Hamkalo Depto. de Electrónica

Page 49: Organizaciónde Computadoras

El Esquema del Salto Demorado

� Técnica que pasa la responsabilidad de los riesgos de control al compilador.

� El hardware se desentiende de los � El hardware se desentiende de los riesgos de control.

� El procesador siempre ejecuta la instrucción siguiente al branch (1 delay slot).

José Luis Hamkalo Depto. de Electrónica

Page 50: Organizaciónde Computadoras

El “branch delay slot”

José Luis Hamkalo Depto. de Electrónica

Page 51: Organizaciónde Computadoras

� Se debe garantizar que el programa se ejecute correctamente.

� Tratar de reordenar las instrucciones sin

Manejo del “branch delay slot”

� Tratar de reordenar las instrucciones sin alterar la lógica del programa.

� Colocar una NOP luego de cada salto en la que no fue posible garantizar que el programa se ejecute correctamente.

José Luis Hamkalo Depto. de Electrónica

Page 52: Organizaciónde Computadoras

Branch delay slot: tres posibilidades

José Luis Hamkalo Depto. de Electrónica

Page 53: Organizaciónde Computadoras

Predictores Dinámicos de Saltos

� Consideraciones

� Predicción de saltos

� Eliminación de saltos� Eliminación de saltos

José Luis Hamkalo Depto. de Electrónica

Page 54: Organizaciónde Computadoras

Predictor de Salto de un Bit

� Se implemneta mediante una tabla de 1 bit

� A cada salto le corresponde una entrada en la tabla• Si un bit es 1, entonces el salto

se predice tomado se predice tomado • Si un bit es 0, entonces el salto

se predice no tomado

� Cada bit de la tabla se va estableciendo dinámicamente: si un salto efectivamente se toma, entonces el bit correspondiente de la tabla se pone en 1, sino en 0.

José Luis Hamkalo Depto. de Electrónica

Page 55: Organizaciónde Computadoras

Predictor de Saltos de 2 bits

� La tabla tiene 2 bits por entrada en lugar de 1

� Con 2 bits puede distinguir 4 estados � Con 2 bits puede distinguir 4 estados posibles para predecir el salto.

00 01 10 11

T T T

TNT

NTNTNT

No Tomado TomadoFuertemente FuertementeDebilmente Debilmente

José Luis Hamkalo Depto. de Electrónica

Page 56: Organizaciónde Computadoras

Prediciendo el Resultado de

Saltos en Programas de Punto

Flotante

� Ejemplo

José Luis Hamkalo Depto. de Electrónica

Page 57: Organizaciónde Computadoras

Cómo Busco en la Tabla?

� Cada branch debería tener una entrada exclusiva en la tabla.

� Es deseable acceder por un mapeo de bits � Es deseable acceder por un mapeo de bits del PC (dirección del branch).

� En la práctica solo uso los “n” bits más bajos del PC para acceder a la tabla para limitar su tamaño.

José Luis Hamkalo Depto. de Electrónica

Page 58: Organizaciónde Computadoras

Interferencia en Predictores

José Luis Hamkalo Depto. de Electrónica

Page 59: Organizaciónde Computadoras

Interferencia (continuación)

� Interferencia en prdictores.

• Neutra

• Positiva

• Negativa• Negativa

� Formas de minimizar la interferencia

• Tablas de historia más grandes.

• Idexado de tablas con mejor distribución

José Luis Hamkalo Depto. de Electrónica

Page 60: Organizaciónde Computadoras

Saltos Correlacionados

José Luis Hamkalo Depto. de Electrónica

Page 61: Organizaciónde Computadoras

Predictor Basado en la Historia

Global

� Puedo crear una tabla de predicción indexada usando exclusivamente la historia global de todos los saltos.

� Se predice si un salto se va a tomar o no en base al resultado de los últimos “n” saltos dinámicamente ejecutados (de todo el programa).

José Luis Hamkalo Depto. de Electrónica

Page 62: Organizaciónde Computadoras

Predictores de 2 niveles

José Luis Hamkalo Depto. de Electrónica

Page 63: Organizaciónde Computadoras

Ejemplo de Código con saltos

Correlacionados

While( condicion){G

Supongo que el fragmento de código está en un bucle y que en las sucesivasiteraciones el valor de d alterna entre 0 y 2.

If (d==0)d=1;

If (d==1)G

BNEZ R1, L1 ; branch b1 (d!=0)DADDIU R1, R0, #1 ; d==0 entonces d=1

L1: DADDIU R3, R1, #-1BNEZ R3, L2 ; branch b2 (d!=1)

GL2

G

}

Page 64: Organizaciónde Computadoras

Ejemplo de Código con saltos

Correlacionados (cont)

If (d==0)d=1;

If (d==1)G

BNEZ R1, L1 ; branch b1 (d!=0)DADDIU R1, R0, #1 ; d==0 entonces d=1

L1: DADDIU R3, R1, #-1BNEZ R3, L2 ; branch b2 (d!=1)

GL2L2

Valor inicial de

d

d == 0? b1 Valor de d

antes de b2

D == 1 ? b2

0 si No Tomado 1 Si No tomado

1 no Tomado 1 Si No tomado

2

(u otro distinto de 0 o 1)

no Tomado 2 No Tomado

Page 65: Organizaciónde Computadoras

Ejemplo de Código con saltos

correlacionados. Predictor local de 1 bit

d = ? Predicción

b1

Acción b1 Nueva

predicción

b1

Predicción

b2

Acción b2 Nueva

predicción

b2

2 NT T T NT T T

0 T NT NT T NT NT

2 NT T T NT T T

0 T NT NT T NT NT

Page 66: Organizaciónde Computadoras

Ejemplo de Código con saltos

correlacionados. Predictor 1 bit global +

1 bit local

d = ? Predicción

b1

Acción b1 Nueva

predicción

b1

Predicción

b2

Acción b2 Nueva

predicción

b2

2 NT/NT T T/NT NT/NT T NT/T

0 T/NT NT T/NT NT/T NT NT/T

2 T/NT T T/NT NT/T T NT/T

0 T/NT NT T/NT NT/T NT NT/T

Page 67: Organizaciónde Computadoras

BTB (Branch Target Buffer)

José Luis Hamkalo Depto. de Electrónica

Page 68: Organizaciónde Computadoras

Eliminación de saltos

� Eliminación de saltos

• Instrucciones condicionales

� Reducción del número de saltos

•� Reducción del número de saltos

• Desenrrollado de lazos

José Luis Hamkalo Depto. de Electrónica

Page 69: Organizaciónde Computadoras

José Luis Hamkalo Depto. de Electrónica

FIN