Procesadores superescalares
Upcoming SlideShare
Loading in...5
×
 

Procesadores superescalares

on

  • 303 vues

Procesadores superescalares

Procesadores superescalares

Statistiques

Vues

Total des vues
303
Vues sur SlideShare
301
Vues externes
2

Actions

J'aime
0
Téléchargements
8
Commentaires
0

1 intégré 2

http://www.slideee.com 2

Accessibilité

Catégories

Détails de l'import

Uploaded via as Microsoft PowerPoint

Droits d'utilisation

© Tous droits réservés

Report content

Signalé comme inapproprié Signaler comme inapproprié
Signaler comme inapproprié

Indiquez la raison pour laquelle vous avez signalé cette présentation comme n'étant pas appropriée.

Annuler
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Votre message apparaîtra ici
    Processing...
Poster un commentaire
Modifier votre commentaire

Procesadores superescalares Procesadores superescalares Presentation Transcript

  • {
  • 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
  • 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.
  • Ejecución (EX)
  • 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.
  • 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 
  • 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 unidades funcionales  Por esta esta etapa se divide en dos: Decodificador Emisor y envío
  • 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
  • Detección de la instrucción del salto   Detección anticipada.- Detección paralela.-  Detección integrada en la captación.-
  • 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 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)
  • Ejemplo de Predicción dinámica explicita
  •  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
  • 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.
  • 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.
  • 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
  • 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 salto objeto de la predicción.  Los predictores globales además tienen en cuenta la información sobre otras instrucciones de salto del programa.
  • PREDICTORES GLOBALES
  • 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.
  •  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.
  • EJECUCIÓN SUPERESCALAR