0
{
1982

1985

1987

Cheetah América Multitan

1988

Alpha

1989
procesador
RISC de
Intel 960CA

Después

arquitectura CISC.
...
Grado en el que, en
promedio, las instrucciones
de un programa se pueden
ejecutar en paralelo

Medida de la capacidad del ...
Ejecución
(EX)
La etapa de decodificación de un
procesador superescalar debe ser capaz de
decodificar varias instrucciones por ciclo.
En ...
La etapa de emisión se encarga de determinar
que instrucciones pueden emitirse al disponer
de sus operandos y existir unid...
En la figura se ilustran las diferencias entre emisión
ordenada y desordenada, emisión alineada y no alineada.


La idea consiste en que, en lugar de existir
una única ventana desde donde las
instrucciones se emiten a las distintas
...
PROCESAMIENTO DE LAS
INSTRUCCIONES DE
SALTO
Detección de la instrucción del salto



Gestión de saltos condicionales no r...
Detección de la instrucción del salto




Detección anticipada.-

Detección paralela.-



Detección integrada
en la cap...
Gestión de saltos condicionales
no resueltos
Clasificación de los procedimientos
de predicción de saltos


Predicción Fija:

Se toma siempre la misma decisión, el sal...
Ejemplo de Predicción dinámica explicita
 Para saber si las instrucciones son paralelizables, el
procesador sigue un sencillo algoritmo. Para
ejecutar las instruc...
RENOMBRAMIENTO DE REGISTROS
Como hemos visto, el hecho de permitir la emisión desordenada de
instrucciones y la finalizaci...
Para ilustrar esta técnica, vamos a considerar la secuencia de instrucciones
utilizada anteriormente:
I1: r3 ← r3 op r5
I2...
PARALELISMO DE LA MÁQUINA
Existen tres técnicas hardware que se pueden
utilizar en un procesador superescalar para
aumenta...
BUFFER DE PREDICCION DE SALTOS (BPB)
BUFFER DE DESTINOS DE SALTOS (BTB)

Contador de programa (PC)
PREDICTOR MULTINIVEL LOCAL
 Los predictores vistos hasta ahora son locales
ya que solo tienen en cuenta información
referente a la instrucción de sa...
PREDICTORES GLOBALES
EJECUCIÓN ESPECULATIVA
La ejecución especulativa es una estrategia que se usa en la mayoría de
procesadores de altas prest...
 Los procesadores que utilizan ejecución especulativa, ejecutan
muchas más instrucciones de las que necesita el flujo del...
EJECUCIÓN SUPERESCALAR
Procesadores superescalares
Procesadores superescalares
Procesadores superescalares
Procesadores superescalares
Procesadores superescalares
Procesadores superescalares
Prochain SlideShare
Chargement dans... 5
×

Procesadores superescalares

473

Published on

Procesadores superescalares

Published in: Affaires
0 commentaires
0 mentions J'aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Be the first to like this

Aucun téléchargement
Vues
Total des vues
473
Sur Slideshare
0
À partir des ajouts
0
Nombre d'ajouts
1
Actions
Partages
0
Téléchargements
20
Commentaires
0
J'aime
0
Ajouts 0
No embeds

No notes for slide

Transcript of "Procesadores superescalares"

  1. 1. {
  2. 2. 1982 1985 1987 Cheetah América Multitan 1988 Alpha 1989 procesador RISC de Intel 960CA Después arquitectura CISC. Algunos procesadores: • Power • Power PC • Power PC 601 y 603 • Pentium PRO II, III y 4 • K5 , K6 y K7
  3. 3. Grado en el que, en promedio, las instrucciones de un programa se pueden ejecutar en paralelo Medida de la capacidad del procesador para sacar partido del paralelismo a nivel de instrucciones. El paralelismo de la máquina dependerá del número de instrucciones que se pueden captar y ejecutar al mismo tiempo, y de la capacidad del procesador para localizar instrucciones independientes.
  4. 4. Ejecución (EX)
  5. 5. La etapa de decodificación de un procesador superescalar debe ser capaz de decodificar varias instrucciones por ciclo. En esta etapa de predecodificación se suele encargar de determinar el tipo de instrucción y, con ello, facilita la identificación posterior de los recursos que se van a necesitar. La unidad ID toma las instrucciones de la cola de las instrucciones captadas son almacenadas por parte de la etapa IF y tras decodificarlas, las pones en una estructura de buffers desde donde la unidad ISS determinan que instrucciones de las que se encuentran dentro de una ventana definida en una estructura de buffers pueden pasar a ejecutarse y a qué unidad funcional.
  6. 6. La etapa de emisión se encarga de determinar que instrucciones pueden emitirse al disponer de sus operandos y existir unidades funcionales libres para su ejecución.  POLITICAS DE EMISION: - Emisión Alineada. - Emisión no Alineada. - Emisión Ordenada. - emisión no Ordenada 
  7. 7. En la figura se ilustran las diferencias entre emisión ordenada y desordenada, emisión alineada y no alineada.
  8. 8.  La idea consiste en que, en lugar de existir una única ventana desde donde las instrucciones se emiten a las distintas unidades funcionales  Por esta esta etapa se divide en dos: Decodificador Emisor y envío
  9. 9. PROCESAMIENTO DE LAS INSTRUCCIONES DE SALTO Detección de la instrucción del salto  Gestión de saltos condicionales no resueltos   Acceso a las instrucciones de destino del salto
  10. 10. Detección de la instrucción del salto   Detección anticipada.- Detección paralela.-  Detección integrada en la captación.-
  11. 11. Gestión de saltos condicionales no resueltos
  12. 12. Clasificación de los procedimientos de predicción de saltos  Predicción Fija: Se toma siempre la misma decisión, el salto siempre se realiza  Predicción Verdadera: La decisión de si se realiza o no los saltos se toma mediante  Predicción Estática: Según los atributos de la instrucción de salto. (Código de operación, desplazamiento, decisión del compilador )  Predicción Dinámica: Según el resultado de ejecuciones pasadas de la instrucción. (historia de la instrucción de salto)
  13. 13. Ejemplo de Predicción dinámica explicita
  14. 14.  Para saber si las instrucciones son paralelizables, el procesador sigue un sencillo algoritmo. Para ejecutar las instrucciones I1 e I2: IF I1 es simple AND I2 también simple AND I1 no es salto AND destino de I1 no es fuente de I2 AND destino de I1 no es destino de I2 THEN envía I1 a U envía I2 a V ELSE envía I1 a U, para I2 (será evaluada con I3)  Si se utiliza un compilador que conoce este modo de funcionamiento, mejora hasta un 30% la velocidad
  15. 15. RENOMBRAMIENTO DE REGISTROS Como hemos visto, el hecho de permitir la emisión desordenada de instrucciones y la finalización desordenada puede originar dependencias de salida y antidependencias. La naturaleza de estas dependencias es diferente a la de las dependencias de datos verdaderas, que reflejan el flujo de datos a través de un programa y su secuencia de ejecución Las antidependencias y las dependencias de salida son realmente conflictos de almacenamiento. Son un tipo de conflicto por los recursos en el que varias instrucciones compiten por los mismos registros Un método para resolver tales conflictos se basa en la solución tradicional de los conflictos con los recursos: la duplicación de recursos. Esta técnica se denomina renombramiento de registros. Consiste en que el hardware del procesador asigne dinámicamente los registros, que están asociados con los valores que necesitan las instrucciones en diversos instantes de tiempo.
  16. 16. Para ilustrar esta técnica, vamos a considerar la secuencia de instrucciones utilizada anteriormente: I1: r3 ← r3 op r5 I2: r4 ← r3 + 1 I3: r3 ← r5 + 1 I4: r7 ← r3 op r4 Que, como ya hemos visto, tiene varias dependencias, incluidas una dependencia de salida y una antidependencia. Si aplicamos el renombramiento de registros a dicho código tendremos: I1: r3b ← r3a op r5a I2: r4b ← r3b + 1 I3: r3c ← r5a + 1 I4: r7b ← r3c op r4b El resultado es que utilizando el renombramiento de registros I1 e I3 pueden ejecutarse en paralelo.
  17. 17. PARALELISMO DE LA MÁQUINA Existen tres técnicas hardware que se pueden utilizar en un procesador superescalar para aumentar sus prestaciones. Estas son:  duplicación de recursos,  emisión desordenada y  renombramiento de registros
  18. 18. BUFFER DE PREDICCION DE SALTOS (BPB)
  19. 19. BUFFER DE DESTINOS DE SALTOS (BTB) Contador de programa (PC)
  20. 20. PREDICTOR MULTINIVEL LOCAL
  21. 21.  Los predictores vistos hasta ahora son locales ya que solo tienen en cuenta información referente a la instrucción de salto objeto de la predicción.  Los predictores globales además tienen en cuenta la información sobre otras instrucciones de salto del programa.
  22. 22. PREDICTORES GLOBALES
  23. 23. EJECUCIÓN ESPECULATIVA La ejecución especulativa es una estrategia que se usa en la mayoría de procesadores de altas prestaciones. Consiste en realizar la ejecución del código (instrucciones o partes de instrucciones), antes de estar seguro de si esta ejecución se requiere. Es una técnica de optimización de prestaciones. Los procesadores usan ejecución especulativa para reducir el coste de las bifurcaciones (instrucciones de salto condicional). Así, cuando se encuentra un salto condicional, el procesador realiza una predicción sobre cuál es el camino más probable a seguir (utilizando técnicas de predicción de saltos), e inmediatamente prosigue la captación, decodificación y ejecución de instrucciones desde dicho punto, sin esperar a saber si es el camino correcto. Si, posteriormente, la predicción resulta ser errónea, el procesador descarta las instrucciones ejecutadas a partir del punto de salto, y continúa la ejecución de las instrucciones del camino correcto. Si la predicción resulta correcta, el procesador continua la ejecución de las instrucciones.
  24. 24.  Los procesadores que utilizan ejecución especulativa, ejecutan muchas más instrucciones de las que necesita el flujo del programa. Así pues, esta estrategia debe poseer un mecanismo para que una instrucción ejecutada pueda ser descartada tras su ejecución, pues ¿cómo sino se podría deshacer la ejecución de una instrucción, cuando se decide que ésta nunca hubiera sido ejecutada por una máquina secuencial? Este mecanismo consiste en que: - El almacenamiento y los registros visibles no se pueden actualizar inmediatamente después de su ejecución. - Se han de mantener en algún tipo de almacenamiento temporal para después convertirlo en permanente una vez que se determine que el modelo secuencial habría ejecutado la instrucción.
  25. 25. EJECUCIÓN SUPERESCALAR
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×