Procesadores Superescalares v.2012 J. Smith and G. Sohi, The...

40
Procesadores Superescalares v.2014 J. Smith and G. Sohi, The Microarchitecture of Superscalar Processors. Proceedings IEEE, Vol. 83, No. 12, Diciembre 1995. William Stallings, Organización y Arquitectura de Computadores, Capítulo 13: Paralelismo a nivel de instrucciones y procesadores superescalares. John Hennessy – David Patterson, Arquitectura de Computadores – Un enfoque cuantitativo 4ª Ed, Capítulos 2 y 3.

Transcript of Procesadores Superescalares v.2012 J. Smith and G. Sohi, The...

Page 1: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Procesadores Superescalares

v.2014

J. Smith and G. Sohi, The Microarchitecture of Superscalar Processors. Proceedings IEEE, Vol. 83, No. 12, Diciembre 1995.

William Stallings, Organización y Arquitectura de Computadores, Capítulo 13: Paralelismo a nivel de instrucciones

y procesadores superescalares.

John Hennessy – David Patterson, Arquitectura de Computadores – Un enfoque cuantitativo 4ª Ed, Capítulos 2 y 3.

Page 2: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

F D E

F D E WB

F D E M WB

F D TRCA

REPASO DE SEGMENTACIONES RISC

Tres etapas (ARM7)

ALU: La etapa E tiene acceso al datapath completo. Lee dos registros, calcula y escribe el resultado.

MEMORIA: Tardan un ciclo más. No importa para STORE. Para LOAD puede usarse carga retardada.

Cinco etapas (ARM9, DLX, MIPS)

ALU: La etapa E puede alviarse pasando el acceso a los operandos a D y agregando WB para escribir.

MEMORIA: Agrego un ciclo más. Las instrucciones de ALU también pasan por M. La etapa E calcula el modo de direccionamiento.SALTOS: Terminan en la tercera etapa. Pueden adelantarse a la segunda.

Page 3: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.
Page 4: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

F D E1 E2 E3 E4

F D E1

E2

E3

stall E4stal

l

stall

stall

stall

stall

WB

WB

F D E WB

F D E WB

SEGMENTACION DE INSTRUCCIONES MULTICICLO

SUMA PFE1: Restar exponentesE2: Rotar mantisaE3: Sumar mantisasE4: Normalizar

E: ALUa) Agregar etapas: Sufren latencia las inst ALU. No sirve para muchas etapas. Se usa para multiplicación de enteros (se puede hacer en 2 etapas).

b) Agregar funcionaldad a la ALU y repetir E: Equivale a insertar detenciones. ALU compleja. No afecta a las instrucciones simples. La instrucción multiciclo no tiene segmentación. Se usa para instrucciones muy largas y poco frecuentes (división).

F D E WB

Page 5: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

F D E1

F D E2

F D E3

F D E4

WB

WB

WB

WB

F D E WB

c) Aproximación RISC: La funcionalidad está en diferentes instrucciones. No existe la instrucción de suma en PF. Hay que implementarla por software. Similar a b).

F D E1

F D E23

F D E4

WB

WB

WB

ARM7: No tiene instrucciones de PF, pero incluye shifter en el datapath.

Page 6: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

F D

E1 E2 E3 E4

WB

E

d) Cauces paralelos: Pueden terminar dos al mismo tiempo (banco de registros PF separado), o incluso desordenadas. Se detiene. Pero no hace falta si hay una secuencia de instrucciones de PF. No desmejora las instrucciones simples.

RAW: Siempre existe. Se usa adelantamiento o detención.WAR: No existe pues la emisión de instrucciones es ordenada.WAW: Aparece debido a la finalización desordenada.

Page 7: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.
Page 8: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

INTRODUCCIÓN A LAS ARQUITECTURAS SUPERESCALARESMientras ejecuto una secuencia de sumas en PF, el resto de las unidades

funcionales (UF) están libres. Si se pudieran captar y decodificar dos instrucciones simultáneamente, y las dos no requirieran la misma UF...

Page 9: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

Introducción La ejecución segmentada permite instrucciones simultáneas, pero

sólo una instrucción puede estar en cada etapa del cauce.

En una arquitectura superescalar se dispone de múltiples cauces de instrucciones independientes, y a su vez segmentados, de modo que puede iniciarse la ejecución de varias instrucciones en forma simultánea (MIP: multiple issue precessors)

Una arquitectura superescalar tiene las prestaciones de la segmentación, permitiendo además la existencia simultánea de varias instrucciones en la misma etapa. Para ello es necesaria la duplicación de recursos y la utilización de diversas técnicas que permitan optimizar su utilización.

Como puede iniciarse la ejecución de varias instrucciones en el mismo ciclo, puede alcanzarse una productividad mayor que una instrucción por ciclo de reloj. En la práctica se consiguen mejoras cercanas a dos.

Page 10: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

Introducción Ejemplo de organización superescalar. Múltiples unidades funcionales

segmentadas (dos enteras, dos fp y una de carga-almacenamiento).

Desde 1998 todos los procesadores comerciales son superescalares. Orígenes en RISC por ser de implementación más simple. Luego lo incorporan los CISC. INTEL Pentium Pro y Pentium II son procesadores CISC con microarquitectura RISC superescalar (2 ALU + 1 FP).

Los más modernos, PowerPC970, 4 ALU + 1 MEM + 2 FP + 2 SIMD

El caso del AMD K5 (1995) [ver paper IEEE]

Page 11: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

Límites de la Segmentacióny Supersegmentación

La supersegmentación consiste en dividir las etapas de un cauce un sub-etapas, aprovechando el hecho de que muchas tareas requieren menos de la mitad de un ciclo de reloj para completarse. Aumenta el número de instrucciones en el cauce en un determinado instante.

Dividiendo cada etapa en dos y utilizando un reloj interno del doble de frecuencia (supersegmentación de grado dos) se pueden obtener dos instrucciones por ciclo de reloj.

Esto tiene un límite en el número de etapas, como ya vimos. La solución superescalar es una forma de aumentar las prestaciones por encima de este límite.

Page 12: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Productividad: 1 o 2 inst/ciclo

Page 13: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

Paralelismo

Para que esta estrategia funcione, la máquina debe convertir un programa secuencial en otro que pueda ser ejecutado en paralelo y que genere el mismo resultado.

Empezamos a hablar de paralelismo entre instrucciones...

Page 14: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Discusión importante:Paralelismo a nivel de las instrucciones (ILP) vs. Paralelismo a nivel de la máquina (MLP)

y luego... Paralelismo a nivel de threads (TLP)

Definición

Paralelismo

Page 15: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Definición

Paralelismo a nivel de las instrucciones (ILP)

Existe ILP cuando las instrucciones que componen un programa son independientes. En ese caso el código puede ser reordenado sin alterar el resultado. Por lo tanto existe la posibilidad de ejecutar las instrucciones en paralelo, rompiendo la secuencialidad implícita en un programa estático.

Las dependencias de datos son críticas en este contexto.

Ejemplo de operaciones independientes:

for(i=0;i<1000;i++) x[i]=x[i]+y[i];

Ejemplo de operaciones dependientes:

for(i=1;i<1000;i++) x[i]=(x[i]+x[i-1])/2;

El punto es detectar el ILP.

Discusión: El rol de la

segmentación

Page 16: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Definición

Paralelismo a nivel de la máquina (MLP)

Es una medida de la capacidad del procesador para sacar partido del ILP.

Depende del número de instrucciones que puedan captarse y ejecutarse simultáneamente (número de cauces paralelos).

Dos aproximaciones:

Scheduling Dinámico (HW): P4, Athlon, UltraSPARCIII.

Algoritmo de Tomasuolo: elimina WAW y WAR con renombrado

de registros y disminuye RAW con tracking.

SUPERESCALARES.

Scheduling Estático (SW): IA-64, Transmeta. VLIW.

Page 17: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Definición

Arquitectura SuperescalarExplotación dinámica (por hardware, via MLP) del ILP presente en el programa

FETCH DECODE DISPATCH ISSUE EXECUTE COMMITCaptar Decodificar Encolar Emitir Ejecutar // Finalizar

VENTANA DE EJECUCION

Page 18: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

El ciclo de instrucciónCAPTACION (fetch): múltiples instrucciones son captadas simultáneamente, utilizando técnicas de predicción de saltos y ejecución especulativa.

DECODIFICACION (decode): en dos pasos, i) Predecodificación entre la memoria y el cache para identificación de saltos, y ii) Determinación de la operación, localización de operandos y localización del resultado.

VENTANA DE EJECUCION = ENCOLADO (dispatch) y EMISION (issue): identificación de las instrucciones de la cola que están listas para comenzar su ejecución, o sea que tienen sus dependencias satisfechas.

EJECUCION (execute): en paralelo, en diferentes unidades funcionales.

FINALIZACION (commit): El resultado es confirmado en su destino.

Page 19: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

LimitacionesLas limitaciones son las mismas que en todos los sistemas concurrentes (idem pipeline). Las consecuencias son más severas que en un cauce normal.

Conflictos en los recursos: similares a los riesgos estructurales de los cauces. Duplicación de recursos.

Dependencia de control: los saltos reducen la eficiencia. Predicción estática (PowerPC 601) o dinámica (PowerPC 620). El salto retardado es eficiente en RISC pero no en superescalares CISC, ya que hay que insertar varias instrucciones en la ventana. Loop unrolling (compilador).

Dependencia de datos: existe cuando dos instrucciones utilizan el mismo registro. Impiden que las instrucciones puedan reordenarse. La verificación de la dependencia de datos hace crecer mucho la complejidad del dispatcher, limitando la implementación a un máximo de 4.

Page 20: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Dependencias verdaderas: necesito un operando generado por una instrucción anterior. Son intrínsecas del programa y no pueden eliminarse. RAW. Tracking.

Dependencias artificiales: son conflictos de almacenamiento que pueden solucionarse con más registros (internos de la CPU, usualmente x2) (Register renaming):

Dependencia de salida: dos instrucciones escribiendo en

el mismo destino. WAW.

Antidependencia: todavía estoy usando un registro y la

instrucción siguiente lo reescribe. WAR.

Arquitecturas superescalares

(Re)Clasificación de las dependencias de datos

Page 21: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

(Re)Clasificación de las dependencias de datos

RAW

Instrucción 1

Instrucción 2

WAW

Instrucción 1

Instrucción 2

WAR

Instrucción 1

Instrucción 2

RAR

Instrucción 1

Instrucción 2

VERDADERA DE SALIDA NO EXISTEANTIDEP

Page 22: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

Técnicas de optimización

Se utilizan básicamente tres técnicas de hardware para aumentar el paralelismo de la máquina (MLP) y por lo tanto las prestaciones del conjunto:

Duplicación de recursos Política de emisión desordenada de instrucciones con

ventana de ejecución Renombrado de registros

Se agregan, de ser posible, técnicas de software (compilador) para

asistir al hardware en la detección.

IMPORTANTE: Si no existe ILP no hay posible MLP eficiente.

Page 23: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Técnicas de optimización

1. Duplicación de recursos

No sólo necesito recursos para ejecutar varias instrucciones en paralelo, sino que además necesito captar y decodificar varias instrucciones simultáneamente.

El dispatcher es crucial, ya que hay que mantener ocupadas las unidades funcionales (UF). Es el único elemento “inteligente”; el resto es fuerza bruta.

Tipos de Unidades Funcionales:

Multiplicación/División en punto flotante

Suma/Resta en punto flotante

Operaciones con enteros

Accesos a memoria: Load/Store

Branch, etc.

Page 24: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

FETCH DECODE DISPATCH ISSUE EXECUTE COMMITCaptar Decodificar Encolar Emitir Ejecutar // Finalizar

VENTANA DE EJECUCION

Page 25: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Técnicas de optimización

2. Políticas de ejecución paralela Se clasifican según dos factores:

El orden según el cual las instrucciones son enviadas a ejecutar

(emitidas, issued).

El orden en que las instrucciones finalizan su ejecución al

escribir en registros o memoria (commit).

La política más simple es emitir y finalizar en orden secuencial. Esta técnica tiene pocas probabilidades de encontrar instrucciones que puedan ejecutarse en paralelo y depende mucho de cómo está escrito y compilado el programa. La ventaja es que el procesador sólo debe preocuparse por las dependencias de datos reales ya que las dependencias de salida y las antidependencias no existen. Método usado en segmentación que genera detenciones

del cauce (stall).

Page 26: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Técnicas de optimización

2. Políticas de ejecución (cont)

La performance mejora si se permite alterar el orden de emisión o finalización (o ambos), siempre que se mantenga la exactitud del resultado.

Finalización desordenada: no espera a que terminen las instrucciones anteriores para enviar la actual. Aparecen las dependencias de salida (además de las verdaderas), por lo que se necesita una lógica de emisión más complicada. Peligroso ante interrupciones.

Emisión desordenada (implica la anterior): utilizando la ventana de instrucciones puede irse más allá de un punto de conflicto en la emisión para encontrar instrucciones sin dependencia de datos ni conflictos de recursos (anticipación). Aparecen las antidependencias.

Page 27: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Técnicas de optimización

2. Políticas de ejecución (cont)

Ventana de ejecución Es el conjunto de instrucciones que se consideran para su

ejecución en un determinado momento. El hardware determina cuáles son las instrucciones de la ventana que pueden enviarse a ejecutar en paralelo, limitado por las dependencias de datos y disponibilidad de recursos.

La ventana debe ser lo más grande posible. La limitan la capacidad de captar intrucciones a una gran tasa y el problema de los saltos.

Se utiliza predicción de saltos y ejecución especulativa. La porción de código predicha se incorpora a la ventana de ejecución y se ejecutan tentativamente. Si la predicción fue correcta el resultado se hace visible y permanente (commit), si no se elimina.

Page 28: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Técnicas de optimización

3. Renombrado de registros

Cuando se utilizan técnicas de desordenado (ejecución fuera de secuencia) los valores de los registros no pueden conocerse completamente en cada instante de tiempo. Las instrucciones entran en conflicto por el uso de registros y el procesador debe detener alguna etapa para resolverlo.

Las técnicas de software de optimización de registros empeoran la situación.

Los efectos de las dependencias artificiales pueden disminuirse por esta técnica, que consiste en disponer de registros adicionales (internos, ocultos al programador) y asignarlos (por hardware) a instrucciones en conflicto. Existen R3a y R3b, por ejemplo.

Lo usual es tener duplicado el banco de registros. Ventajas y desventajas. EJEMPLO.

STORE R3,(R1)

ADD R1b,R6,R7

STORE R3,(R1)

ADD R1b,R6,R7

Page 29: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Técnicas de optimización

4. Técnicas de compilación

La implementación de técnicas de compilador está condicionada a que el programa pueda ser recompilado, lo cual no siempre es posible.

Algunas técnicas que pueden utilizarse:

Reagrupación de instrucciones independientes (por ejemplo de a cuatro en el Pentium II).

Adelanto de instrucciones que generen dependencia real de datos.

Loop unrolling, etc. H-P 2a. ed. Más detalles la clase que viene.

Page 30: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

Juntando todo

“Nomenclatura” en Intel Core 2 datasheet

Data Flow Analysis Speculative and Out of Order Execution Superscalar More accurate Branch Prediction Deeper Buffers Incluye MACRO FUSION (varias instrucciones x86 en una)

“Nomenclatura” en Intel Core 2 datasheet

Data Flow Analysis Speculative and Out of Order Execution Superscalar More accurate Branch Prediction Deeper Buffers Incluye MACRO FUSION (varias instrucciones x86 en una)

Captación y decodificación simultánea de varias instrucciones.

Varias unidades funcionales segmentadas en paralelo.

Emisión y finalización desordenada con ventana.

Renombrado de registros.

Asistencia desde el compilador.

Page 31: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

Juntando todoCómo se implementa en la práctica, por HW, un schedulng dinámico con ejecución desordenada (out-of-order)?

1) Algorimo de marcador o Scoreboarding (CDC6600 1964): En un marcador se registran las dependencias de datos de cada instrucción. Las instrucciones son emitidas solamente cuando el marcador determina que ya no hay conflictos con las instrucciones previamente ejecutadas o en ejecución. Si una instrucción sufre la inserción de una burbuja por considerarse insegura su ejecución, el marcador vigila el flujo de ejecución de las instrucciones hasta que todas las dependencias hayan sido resueltas, pudiendo así ser relanzada la instrucción detenida. Resuelve los riesgos WAW y WAR deteniendo la ejecución.

2) Algoritmo de Tomasuolo (IBM360 1967): Agrega renombrado de registros, permitiendo el lanzamiento de instrucciones con WAW y WAR. Además, utiliza un bus de datos común en el que los valores calculados son enviados a todas las estaciones de reserva que los necesite. Esto permite mejorar la ejecución paralela de instrucciones en situaciones en las que el scoreboarding fallaría y provocaría la parada.

Page 32: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

En el caso óptimo, una vez solucionadas las

dependencias artificiales, el orden de ejecución de las instrucciones lo impone la disponibilidad de los datos, no la secuencia

del programa original.

En el caso óptimo, una vez solucionadas las dependencias artificiales, el orden de

ejecución de las instrucciones lo impone la

disponibilidad de los datos, no la secuencia del programa original.

Page 33: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

MIPS R10000

8K

3 Colas

El doble de registros

Fetch X4 5 UF Commit X4

Page 34: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

MIPS R10000: Pipeline

MIPS R10000: 5 pipelinesPentium: 2 pipelines

MIPS R10000: 5 pipelinesPentium: 2 pipelines

Page 35: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Solamente agregando unidades funcionales, sin otras técnicas, no se obtienen buenos resultados.

La emisión desordenada es importante porque permite buscar instrucciones independientes hacia adelante.

El renombrado de registros puede mejorar la performance hasta un 30%, con la única limitación de la dependencia real de datos.

Es importante disponer de una buena capacidad de captación y decodificación para poder utilizar una ventana de instrucciones grandes.

Arquitecturas superescalares

Conclusiones

Page 36: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

IBM RISC System RS/6000 A good example of a superscalar processor is the IBM RS/6000. There are

three major subsystems in this processor: the instruction fetch unit, an integer processor, and a floating point processor. The instruction fetch unit is a 2- stage pipeline; during the first stage a packet of four instructions is fetched from an instruction cache, and in the second stage instructions are routed to the integer processor and/or floating point processor. An interesting feature of this instruction unit is that it executes branch instructions itself so that in a tight loop there is effectively no overhead from branching since the instruction unit executes branches while the data units are computing values. The integer unit is a four-stage pipeline. In addition to executing data processing instructions this unit does some preprocessing for the floating point unit. The floating point unit itself is six stages deep.

A 62.5 MHz RS/6000 system ran the LINPACK benchmark (Gaussian elimination) at a rate of 104 MFLOPS and has a theoretical peak performance of 125 MFLOPS. The HP 9000/735 workstation has a 99 MHz superscalar HP-PA processor. This machine executes the LINPACK benchmark at 107 MFLOPS, with a theoretical peak performance of 198 MFLOPS.

Page 37: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

PowerPC 601: ver Stallings.

PowerPC 604: 6 unidades de ejecución independientes (1 unidad de procesamiento de saltos, 1 unidad de carga almacenamiento, 3 unidades de enteros, 1 unidad de punto flotante), emisión en orden, renombrado de registros.

PowerPC 620: idem con emisión desordenada.

Pentium: Emisión en orden y 3 unidades de ejecución independientes (2 unidades de enteros, 1 unidad de punto flotante).

Pentium II: ver Stallings. 6ta. ed. Pentium IV.

MIPS R10000 y UltraSPARC-II: ver Stallings. Eliminados en la 6ta. ed.

Paper IEEE: MIPS R10000, Alpha 21164, AMD K5 (x86).

Arquitecturas superescalares

Otros ejemplos superescalares

Page 38: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Threads:

Extensión de los lenguajes de programación que permite dividirlos en tareas pseudo-simultáneas.

Históricamente ayudaban al scheduler del SO a realizar el time slice (en el caso de un monoprocesador) o a distribuir la carga (multiprocesadores).

Es diferente al concepto de proceso, pues entre threads se comparte el estado y el espacio de memoria.

Es más “liviano”. Los context switch son más rápidos a expensas de un cierto nivel de dependencia.

Arquitecturas superescalares

Multi-Threading

Page 39: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

El paralelismo a nivel de threads (TLP) es una medida de esta propiedad en los programas. Puede ser explotado por los procesadores superescalares, ya que es más explícito que el ILP. Se pueden asignar diferentes UFs a los threads.

Muy útil para evitar que el procesador quede detenido ante un cache-miss: continúa ejecutando el otro thread.

Son necesarios más registros y la captación simultánea desde diferentes threads (al menos dos).

Si el SO está preparado, puede ver el HW como dos procesadores lógicos.

Ejemplos:

INTEL HyperThreading (Pentium 4 HTT). Según Intel mejora 30%.

Simultaneus Multithreading (SMT) Power, SPARC.

P4x2 (S=1.3), Power5 x2, SPARC x4 (x8).

Arquitecturas superescalares

Multi-Threading (cont)

Page 40: Procesadores Superescalares v.2012 J. Smith and G. Sohi, The …electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_04... · 2014. 9. 18. · Procesadores Superescalares v.2014 J.

Arquitecturas superescalares

Multi-Threading (cont)

1 CPU/1 Thread 2 CPU/1 Thread 1 CPU/2 Thread

No confundir con multicore: en multithreading se comparte el cache y las unidades funcionales.