Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROCESAMIENTO
SUPERESCALAR
CURSO:
ARQUITECTURA DE COMPUTADORAS
DOCENTE:
ING.ARELLANO SALAZAR, CESAR
ALUMNOS:
INGENIERIA DE SISTEMAS
NDICE
INTRODUCCIN ...............................................................................................................3
PROCESAMIENTO SUPERESCALAR ............................................................................4
I.
DEFINICIN .................................................................................................................... 4
II.
IMPORTANCIA ............................................................................................................... 4
V.
a)
b)
c)
ANTIDEPENDENCIA ............................................................................................. 8
2.
b)
c)
3.
4.
5.
PREDICCION DE SALTOS................................................................................... 19
ARQUITECTURA DE COMPUTADORAS
INGENIERA DE SISTEMAS
INTRODUCCIN
La ejecucin segmentada permite instrucciones simultneas, pero slo una
instruccin puede estar en cada etapa del cauce.
En una arquitectura superescalar se dispone de mltiples cauces de instrucciones
independientes, y a su vez segmentados, de modo que puede iniciarse la ejecucin
de varias instrucciones en forma simultnea (MIP: mltiple issue precessors)
Una arquitectura superescalar tiene las prestaciones de la segmentacin,
permitiendo adems la existencia simultnea de varias instrucciones en la misma
etapa. Para ello es necesaria la duplicacin de recursos y la utilizacin de diversas
tcnicas que permitan optimizar su utilizacin.
Como puede iniciarse la ejecucin de varias instrucciones en el mismo ciclo,
puede alcanzarse una productividad mayor que una instruccin por ciclo de reloj.
En la prctica se consiguen aceleraciones cercanas a dos.
Un procesador sper segmentado es aquel que divide la ejecucin de la instruccin
en muchos pasos sencillos, por lo que puede conseguir altas velocidades de reloj.
La supersegmentacin es compatible con otros mtodos de aumentar la velocidad
de los procesadores. Es de prever un uso cada vez ms extendido de esta tcnica,
en combinacin con otras tcnicas como la superescalar.
Por ejemplo una descomposicin en 5 etapas de segmentacin como la del
Pentium compuesta por las etapas de bsqueda, decodificacin, lectura, ejecucin
y escritura, permite aplicar otra segmentacin a cada una de las unidades
funcionales que intervienen en cada ciclo como son: la cache de instrucciones, el
decodificador de instruccin, la cache de datos, la ALU o el banco de registro.
ARQUITECTURA DE COMPUTADORAS
INGENIERA DE SISTEMAS
PROCESAMIENTO SUPERESCALAR
I.
DEFINICIN
El procesamiento superescalar es la ltima de una serie de innovaciones
tendientes a producir procesadores cada vez ms rpidos. Explotando el paralelismo
a nivel de instruccin, los superescalares son capaces de ejecutar ms de una
instruccin por ciclo de reloj (dos, tres, cuatro, ocho ya es mucho).
Los procesadores superescalares pueden iniciar la ejecucin simultnea de varias
instrucciones escalares en paralelo de manera que se pueden operar varios
elementos de un vector dentro de una misma iteracin.
Para esto, es necesario que existan varias unidades aritmtico-lgicas, de punto
flotante y de control. El proceso que sigue el micro es transparente al programa,
aunque el compilador puede ayudar analizando el cdigo y generando un flujo de
instrucciones optimizado.
II.
IMPORTANCIA
Lo esencial del enfoque superescalar es su habilidad para ejecutar
instrucciones en diferentes cauces de manera independiente y concurrente. El
concepto puede llevarse ms lejos permitiendo que las instrucciones se ejecuten en
un orden diferente al del programa. La siguiente figura muestra, en trminos
generales, el planteamiento superescalar. Hay mltiples unidades funcionales, cada
una de las cuales est implementada como un cauce segmentado, que admiten la
ejecucin en paralelo de varias instrucciones. En el ejemplo, dos operaciones
enteras, dos de coma flotante y una de memoria (carga o almacenamiento) pueden
estar ejecutndose en el mismo instante.
ARQUITECTURA DE COMPUTADORAS
III.
INGENIERA DE SISTEMAS
IV.
LIMITACIONES
La aproximacin superescalar depende de la habilidad para ejecutar
mltiples instrucciones en paralelo. La expresin paralelismo en las instrucciones
se refiere al grado en el que, en promedio, las instrucciones de un programa se
pueden ejecutar en paralelo. El procesamiento superescalar se enfrenta ante las
siguientes limitaciones:
a)
INGENIERA DE SISTEMAS
ARQUITECTURA DE COMPUTADORAS
INGENIERA DE SISTEMAS
c)
INGENIERA DE SISTEMAS
ANTIDEPENDENCIA
r3
r4
r3
r7
<<<<-
r3
r3
r5
r3
op r5
+ 1
+ 1
op r4
ARQUITECTURA DE COMPUTADORAS
INGENIERA DE SISTEMAS
ARQUITECTURA DE COMPUTADORAS
INGENIERA DE SISTEMAS
ARQUITECTURA DE COMPUTADORAS
10
INGENIERA DE SISTEMAS
ARQUITECTURA DE COMPUTADORAS
11
2.
INGENIERA DE SISTEMAS
ARQUITECTURA DE COMPUTADORAS
12
INGENIERA DE SISTEMAS
R3
R4
R3
R7
<<<<-
R3
R3
R5
R3
op R5
+ 1
+ 1
op R4
ARQUITECTURA DE COMPUTADORAS
13
INGENIERA DE SISTEMAS
ARQUITECTURA DE COMPUTADORAS
14
INGENIERA DE SISTEMAS
RENOMBRAMIENTO DE REGISTROS
Como hemos visto, el hecho de permitir la emisin desordenada de
instrucciones y la finalizacin 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 travs
de un programa y su secuencia de ejecucin. Las dependencias de salida y las
antidependencias, por otra parte, no son verdaderas dependencias, surgen porque
los valores de los registros no pueden reflejar ya la secuencia de valores
establecida por el flujo del programa.
ARQUITECTURA DE COMPUTADORAS
15
INGENIERA DE SISTEMAS
ARQUITECTURA DE COMPUTADORAS
16
INGENIERA DE SISTEMAS
PARALELISMO DE MQUINA
Es una medida de la capacidad del procesador para sacar partido del
paralelismo a nivel de instrucciones. El paralelismo de la mquina depender el
nmero de instrucciones que se pueden captar y ejecutar al mismo tiempo, y de
la capacidad del procesador para localizar instrucciones independientes.
Se denomina grado de paralelismo al nmero mximo de instrucciones
que se puede ejecutar en paralelo. Es importante diferenciar bien los conceptos
de paralelismo a nivel de instruccin y paralelismo de la mquina, y la relacin
ARQUITECTURA DE COMPUTADORAS
17
INGENIERA DE SISTEMAS
entre ellos. Ambos son factores importantes para incrementar las prestaciones de
la ejecucin. Un programa que tenga un bajo nivel de paralelismo a nivel de
instruccin (es decir, una gran cantidad de dependencias entre sus instrucciones)
no podr sacar el mximo partido de una mquina con un alto grado de
paralelismo, quedando infrautilizada dicha mquina.
Por otra parte, una mquina con un bajo grado de paralelismo limitar las
prestaciones de la ejecucin de un programa con un alto nivel de paralelismo a
nivel de instruccin.
Se han estudiado tres tcnicas hardware que se pueden utilizar en un
procesador superescalar para aumentar sus prestaciones. Estas son: duplicacin
de recursos, emisin desordenada y renombramiento de registros. El siguiente
estudio aclara la relacin entre estas tcnicas, evitando la influencia de las
dependencias relativas al procedimiento.
Tenemos dos grficas. En cada una de ellas el eje vertical indica el
incremento de velocidad media de la mquina superescalar respecto a la mquina
escalar. En el eje horizontal se muestran cuatro organizaciones diferentes. La
mquina base es una implementacin superescalar que no duplica ninguna de las
unidades funcionales, las siguientes organizaciones duplican la unidad de carga
y almacenamiento, la ALU, y ambas. La diferencia entre ambas grficas es que
en una de ellas se utiliza renombramiento de registros y en la otra no. Finalmente,
cada una de las organizaciones se ha simulado con diferentes tamaos de la
ventana de instrucciones.
Figura 5.6: Estudio del paralelismo a nivel de instrucciones bajo condiciones ideales.
Este par de grficas ofrecen importantes conclusiones. La primera
proviene de la grfica que no utiliza renombramiento de registros. Como vemos,
es poco importante el incremento de velocidad al duplicar unidades funcionales
sin renombramiento de registros. Sin embargo, si se utiliza el renombramiento
de registros, se obtienen incrementos significativos al duplicar unidades
ARQUITECTURA DE COMPUTADORAS
18
INGENIERA DE SISTEMAS
PREDICCIN DE SALTOS
En los cauces segmentados, el tratamiento de saltos es un factor
importante, ya que el principal obstculo para un flujo estable de instrucciones
en las etapas iniciales del cauce son las bifurcaciones (saltos condicionales). Para
cauces segmentados se han desarrollado diversas aproximaciones para el
tratamiento de saltos, como son: flujos mltiples, pre captacin del destino del
salto, buffers de bucles, prediccin de saltos y salto retardado.
Con la llegada de los microprocesadores RISC, se explor intensamente
la estrategia de salto retardado, tema 6, en la que el procesador siempre ejecuta
la instruccin que sigue inmediatamente a la de salto para mantener el cauce
lleno mientras se capta un nuevo flujo de instrucciones. Sin embargo, con la
llegada de las mquinas superescalares la estrategia de salto retardado perdi
inters. El motivo es que se pueden ejecutar mltiples instrucciones en cada ciclo
de retardo, lo cual plantea varios problemas relacionados con las dependencias
entre las instrucciones. Por ello, las mquinas superescalares han vuelto a las
tcnicas de prediccin de saltos anteriores a los RISC, como la prediccin
dinmica de salto basada en el anlisis de la historia de los saltos. Como ejemplo,
el Pentium II usa esta prediccin dinmica del salto basada en el anlisis de las
ejecuciones recientes de las instrucciones de bifurcacin. Para ello utiliza un
buffer de destino de saltos (BTB), que almacena informacin de la ejecucin de
las instrucciones de bifurcacin encontradas recientemente. Cuando aparece una
instruccin de bifurcacin en el flujo de instrucciones, se examina el BTB para
comprobar si existe una entrada correspondiente a dicha bifurcacin. Si existe
una entrada, la prediccin se gua por la informacin de la historia de esta
bifurcacin, y dicha historia se actualiza una vez se determine si se produce el
salto. Si no existe una entrada en el BTB, correspondiente a esta bifurcacin, se
crea una nueva entrada y se realiza inicialmente una prediccin esttica.
ARQUITECTURA DE COMPUTADORAS
19
VII.
INGENIERA DE SISTEMAS
EJECUCIN SUPERESCALAR
La figura 7.9 considera el proceso de ejecucin superescalar. A continuacin
se enumeran los pasos de este proceso:
El programa esttico es el cdigo del programa a ejecutar, formado
por instrucciones ordenadas, tal como se escribi por el programador
o se gener por el compilador.
El proceso de captacin de instrucciones forma un flujo dinmico de
instrucciones.
A continuacin se analizan las dependencias de este flujo (el
procesador puede eliminar las dependencias artificiales mediante
renombramiento de registros).
El procesador enva las instrucciones a una ventana. En la ventana
las instrucciones ya no estn estructuradas secuencialmente, sino en
funcin de sus dependencias de datos verdaderas.
Se realiza la ejecucin de las instrucciones en el orden que
determinan las dependencias de datos y disponibilidad de recursos
hardware.
Finalmente, las instrucciones vuelven a ponerse conceptualmente en
orden secuencial, y se registran sus resultados.
ARQUITECTURA DE COMPUTADORAS
20
INGENIERA DE SISTEMAS
IMPLEMENTACIN SUPERESCALAR
Basndonos en lo discutido hasta ahora, podemos hacer algunos
comentarios generales sobre el hardware que requiere el procesador en la
aproximacin superescalar. En [SMIT95] se enumeran los siguientes elementos
principales:
IX.
EJEMPLOS SUPERESCALARES
PowerPC 604:
6 unidades de ejecucin independientes (1 unidad de procesamiento de
saltos, 1 unidad de carga de almacenamiento, 3 unidades de enteros, 1
unidad de punto flotante), emisin en orden.
Renombrado de registros.
Pentium:
Emisin en orden y 3 unidades de ejecucin independientes (2 unidades
de enteros, 1 unidad de punto flotante)
ARQUITECTURA DE COMPUTADORAS
21
INGENIERA DE SISTEMAS
PowerPC 620:
Este el cuarto modelo desarrollado para la famila PowerPC y el primero
en implementar una arquitectura ntegramente de 64 bits. Se obtienen
unas ganancias en prestaciones 8 veces superiores con respecto al 601
y la frecuencia a la que se ofrece es de 133MHz. Su arquitectura se basa
en un proceso de 0,5 micras CMOS y alimentada con 3,3v de tensin,
conservando la compatibilidad CMOS/TTL. Posee 2 cachs de datos e
instrucciones de 32KB cada una, 2 MMUs, buses de 128 bits de datos
y 40 de direccionamiento. El empaquetado es esta vez de 625 pines.
dem con emisin desordenada.
ARQUITECTURA DE COMPUTADORAS
22
INGENIERA DE SISTEMAS
CONCLUSIONES
ARQUITECTURA DE COMPUTADORAS
23
INGENIERA DE SISTEMAS
REFERENCIAS
http://www.dia.eui.upm.es/asignatu/Arq_com/AC%20Grado/Paco%20Aylagas/
6-Superescalares%20y%20VLIW.pdf
http://www.aliatuniversidades.com.mx/bibliotecasdigitales/pdf/sistemas/Arqui
tectura_de_computadoras_II.pdf
http://slideplayer.es/slide/1715212/
http://www.exa.unicen.edu.ar/catedras/arqui2/arqui2/filminas/Paralelismo%2
0en%20monoprocesadores%20-%20Superescalares.pdf
J.L. Hennesy, D.A, Patterson, Computer Architecture: A Quantitative Approach,
3a edicin, Morgan Kauffmann Publishers, 2002.
Wilian Stallings, Organizacin y Arquitectura de Computadoras, 5a Edicion,
Prentice-Hall 2000.
D.A. Patterson, J.L. Hennesy, Estructura y diseo de computadoras: interficie
circuitera/programacin, Ed. Revert. 2000.
ARQUITECTURA DE COMPUTADORAS
24