La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Cap. 6: Pipelining. Encauzamiento de procesadores

Presentaciones similares


Presentación del tema: "Cap. 6: Pipelining. Encauzamiento de procesadores"— Transcripción de la presentación:

1 Cap. 6: Pipelining. Encauzamiento de procesadores
Normalmente traducido como segmentación. Una técnica que mejora ostensiblemente la productividad. Paralelismo a nivel de instrucciones (ILP) Overview: De este capítulo, sólo estamos interesados en los conceptos.

2 Pipelining. Traducción:
Segmentación. Usada en la versión española del libro de texto –la más usada. Encauzamiento. Usada traducciones de otros libros sobre computadores –¿La más apropiada?

3 Pipelining: Concepto Técnica de mejora del rendimiento del procesador:
Permite la ejecución de varias instrucciones al mismo tiempo. Incrementa la productividad del procesador Pero, el tiempo empleado por cualquier instrucción es el mismo que en el procesador no encauzado.

4 Estructuras básicas: Unidad de memoria dividida en datos e instrucciones

5 Estructuras básicas Cola prioritaria:
Las instrucciones se ejecutan en su orden natural 5 etapas La mejora productividad obtenida tiende a ser x5. Pero, surgen conflictos entre las instrucciones Estructurales De datos De control

6 Las instrucciones de ejemplo base para este capítulo.
lw, sw, add, sub, and, or, slt y beq. En principio, asumiremos que todas ellas son ejecutadas en 5 fases. La pipa (La cola de instrucciones): 5 etapas. Mejora de velocidad = x5. Mas fases  Mas mejora de velocidad Es necesario un compromiso

7 La ruta de datos uniciclo encauzada

8 Ejejmplo de ejecución encauzada
¿Ves un “bug” en este diseño? Este computador no es funcionalmente equivalente al computador uniciclo conocido ¿Cómo arreglamos el “bug”?

9 Solución al “bug” anterior
Etapas de la pipa desacopladas entre sí mediante registros de pipa: Deben ser de suficiente ancho 128, 97, 64, ... Pero, todavía existe un “bug” en el diseño ¿? Pensemos en una instrucción lw ¿A qué registro se transfiere el dato procedente de la memoria?

10 Registros inter-fase: La instrucción “conserva” el registro de destino para usarlo en su 5ª fase
A medida que una instrucción progresa en su ejecución, lleva consigo la información necesaria para su ejecución completa. Esta información se pasa de una fase a la siguiente, a través de los registros inter-fase

11 Diseño de la unidad de control
Necesitamos generar el conjunto de microórdenes que controlen cada etapa de la pipa. ¿En qué instante deben estar listas? Las microórdenes serán generadas cuando conozcamos la clase de instrucción de la que se trata...

12 Detección de conflictos entre instrucciones.

13 Adelantamiento de resultados. (Forwarding)

14 Conflictos de datos y detenciones de la pipa.
Un caso de conflicto no resoluble mediante forwarding es una instrucción que lee un registro seguida de una instrucción que carga ese registro. La pipa debe ser detenida temporalmente (stall)

15 Pipa detenida: Reg/load.

16 Fallos debidos a instrucciones de salto condicional
Fallos debidos a instrucciones de salto condicional. (Fallos de control) Al principio de la presentación hemos asumido que todas las instrucciones se ejecutan en 5 etapas. beq $1, $3, 7 también se ejecuta en 5 etapas En la etapa MEM se toma la decisión (branch) ¿Qué ocurre con las instrucciones inmediatamente siguientes si de hecho se produce el salto condicional? Deben ser descartadas... Un ejemplo:

17 Vaciado de la pipa debido a un salto condicional ejecutado

18 Saltos condicionales en la pipa
¿Asumir que no se producirán? Cuando no acertemos habrá que vaciar la pipa. ¿Observar los condicionales a ver si en el pasado se produjo el salto? Branch target buffer (BTB). Más trucos con los condicionales: Branch delay slot La instrucción que sigue al condicional se ejecuta siempre. Acortar las fases de un salto Menos instrucciones que descartar si el salto se produce.

19 Branch delay slot

20 Excepciones y pipelining
Las excepciones tienen lugar con la pipa llena de instrucciones ¿Cómo afecta esto al resto de instrucciones que están en el medio? ¿Vaciar la pipa? A veces es tan complicado saber la instrucción origen de la excepción que las excepciones se manejan con imprecisión. Peticiones de i/o, invocación de servicios del SO, instrucción no definida, overflow, fallo h/w.

21 Procesadores superescalares.
Comenzar mas de una instrucción en cada ciclo de reloj. El procesador puede planificar la ejecución de código para que resulte más eficiente -“al vuelo”. Ejecución especulativa de condicionales sujeta a predicción de saltos.


Descargar ppt "Cap. 6: Pipelining. Encauzamiento de procesadores"

Presentaciones similares


Anuncios Google