Você está na página 1de 6

Procesadores

Superescalares
]. Smith and G. Sohi, The Microarchitecture of 5uperscalar
Processors. Proceedings lEEE, Vol. 83, No. J2, Diciembre J995.
William Stallings, Organizacin y Arquitectura de
Computadores, Captulo J3: Paralelismo a nivel de instrucciones
y procesadores superescalares.
]ohn Hennessy - David Patterson, Arquitectura de
Computadores - Un enfoque cuantitativo 3a Edicin, Captulo 3.

Arqutecturas superescaares
lntroduccion

La e|ecucn segmentada permte nstruccones smutneas, pero


so una nstruccn puede estar en cada etapa de cauce.

En una arqutectura superescaar se dspone de multiples cauces


de instrucciones independientes, y a su vez segmentados, de
modo que puede iniciarse a e|ecucn de varas nstruccones en
forma smutnea (MIP: mutpe ssue precessors)

Una arqutectura superescaar tene as prestacones de a


segmentacn, permtendo adems a exstenca smutnea de
varas nstruccones en a msma etapa. Para eo es necesara a
dupcacn de recursos y a utzacn de dversas tcncas que
permtan optmzar su utzacn.

Como puede ncarse a e|ecucn de varas nstruccones en e


msmo cco, puede acanzarse una productvdad mayor que una
nstruccn por cco de reo|. En a prctca se consguen
aceeracones cercanas a dos.

Arqutecturas superescaares
lntroduccion

E|empo de organzacn superescaar. Mtpes undades funconaes


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

Desde 1998 todos os procesadores comercaes son superescaares.


Orgenes en RISC por ser de mpementacn ms smpe. Luego o
ncorporan os CISC. INTEL Pentum Pro y Pentum II son procesadores
CISC con mcroarqutectura RISC superescaar (2 ALU + 1 FP).

Los ms modernos, PowerPC970, 4 ALU + 1 MEM + 2 FP + 2 SIMD

E caso de AMD K5 (1995) |ver paper IEEE|



Arqutecturas superescaares
Limites de la Segmentacion
y Supersegmentacion

La supersegmentacn consste en dvdr as etapas de un cauce


un sub-etapas, aprovechando e hecho de que muchas tareas
requeren menos de a mtad de un cco de reo| para competarse.
Aumenta e nmero de nstruccones en e cauce en un
determnado nstante.

Dvdendo cada etapa en dos y utzando un reo| nterno de dobe


de frecuenca (supersegmentacn de grado dos) se pueden
obtener dos nstruccones por cco de reo|.

Esto tene un mte en e nmero de etapas, como ya vmos. La


soucn superescaar es una forma de aumentar as prestacones
por encma de este mte.

Productvdad: 1 o 2 nst/cco

Dscusn mportante:
Paralelismo a nivel de las
instrucciones (lLP)
vs.
Paralelismo a nivel de la
mquina (MLP)
luego...
Paralelismo a nivel de
threads (TLP)
Defncn
Paralelismo

Defncn
Paralelismo a nivel de las
instrucciones (lLP)

Exste ILP cuando as nstruccones que componen un programa


son independientes. En ese caso e cdgo puede ser reordenado
sn aterar e resutado. Por o tanto exste a posbdad de e|ecutar
as nstruccones en paralelo, rompendo a secuencialidad
mpcta en un programa esttco.

Las dependencias de datos son crtcas en este contexto.

E|empo de operacones ndependentes:


1oJ{1=0,1<1000,1++) x|1]=x|1]+y|1],

E|empo de operacones dependentes:


1oJ{1=1,1<1000,1++) x|1]={x|1]+x|1-1])/2,

E punto es detectar e ILP.


Dscusn: E ro de a
segmentacion

Defncn
Paralelismo a nivel de la
mquina (MLP)

Es una medda de a capacdad de procesador para sacar partdo


de ILP.

Depende de nmero de nstruccones que puedan captarse y


e|ecutarse smutneamente (nmero de cauces paraeos).

Dos aproxmacones:

Scheduling Dinmico (HW): P4, Athon, UtraSPARCIII.


Agortmo de Tomasuoo: emna WAW y WAR con renombrado
de regstros y dsmnuye RAW con trackng.
SUPERESCALARES.

Scheduling Esttico (SW): IA-64, Transmeta. VLlW.



Defncn
Arquitectura Superescalar
Expotacn dinmica (por hardware, va MLP) de lLP presente en e programa
FETCH DECODE DISPATCH ISSUE EXECUTE COMMIT
Captar Decodificar Encolar Emitir Ejecutar // Finalizar
VENTANA DE EJECUCION

Arqutecturas superescaares
El ciclo de instruccion
CAPTAClON (fetch): mtpes nstruccones son captadas
smutneamente, utzando tcncas de predccn de satos y
e|ecucn especuatva.
DECODlFlCAClON (decode): en dos pasos, ) Predecodfcacn
entre a memora y e cache para dentfcacn de satos, y )
Determnacn de a operacn, ocazacn de operandos y
ocazacn de resutado.
VENTANA DE E]ECUClON = ENCOLADO (dispatch) y EMlSlON
(issue): dentfcacn de as nstruccones de a coa que estn stas
para comenzar su e|ecucn, o sea que tenen sus dependencas
satsfechas.
E]ECUClON (execute): en paraeo, en dferentes undades
funconaes.
FlNALlZAClON (commit): E resutado es confrmado en su destno.

Arqutecturas superescaares
Limitaciones
Las mtacones son as msmas que en todos os sstemas
concurrentes (dem ppene). Las consecuencas son ms severas que
en un cauce norma.

Conflictos en los recursos: smares a os resgos estructuraes de


os cauces. Dupcacn de recursos.

Dependencia de control: os satos reducen a efcenca.


Predccn esttca (PowerPC 601) o dnmca (PowerPC 620). E sato
retardado es efcente en RISC pero no en superescaares CISC, ya que
hay que nsertar varas nstruccones en a ventana. Loop unrong
(compador).

Dependencia de datos: exste cuando dos nstruccones utzan e


msmo regstro. Impden que as nstruccones puedan reordenarse. La
verfcacn de a dependenca de datos hace crecer mucho a
compe|dad de dspatcher, mtando a mpementacn a un mxmo
de 4.

Dependencias verdaderas: necesto un operando generado por


una nstruccn anteror. Son ntrnsecas de programa y no pueden
emnarse. RAW. Trackng.

Dependencias artificiales: son confctos de amacenamento


que pueden souconarse con ms regstros (nternos de a CPU,
usuamente x2) (Regster renamng):

Dependencia de salida: dos nstruccones escrbendo en


e msmo destno. WAW.

Antidependencia: todava estoy usando un regstro y a


nstruccn sguente o reescrbe. WAR.
Arqutecturas superescaares
(Re)Clasificacion de las
dependencias de datos

Arqutecturas superescaares
(Re)Clasificacion de las
dependencias de datos
RAW
Instruccn 1
Instruccn 2
WAW
Instruccn 1
Instruccn 2
WAR
Instruccn 1
Instruccn 2
RAR
Instruccn 1
Instruccn 2
VERDADERA DE SALlDA NO EXlSTE ANTlDEP

Arqutecturas superescaares
Tecnicas de optimizacion
Se utzan bscamente tres tecnicas de hardware para aumentar e
paraesmo de a mquna (MLP) y por o tanto as prestacones de
con|unto:

Duplicacion de recursos

Politica de emision desordenada de instrucciones con


ventana de ejecucion

Renombrado de registros
Se agregan, de ser posbe, tecnicas de software (compador) para
asstr a hardware en a deteccn.
IMPORTANTE: S no exste ILP no hay posbe MLP efcente.

Tcncas de optmzacn
1. Duplicacion de recursos
No so necesto recursos para ejecutar varas nstruccones en
paraeo, sno que adems necesto captar y decodificar varas
nstruccones smutneamente.
E dispatcher es cruca, ya que hay que mantener ocupadas as
undades funconaes (UF). Es e nco eemento "ntegente"; e resto
es fuerza bruta.
Tpos de Undades Funconaes:

Mutpcacn/Dvsn en punto fotante

Suma/Resta en punto fotante

Operacones con enteros

Accesos a memora: Load/Store

Branch, etc.
FETCH DECODE DISPATCH ISSUE EXECUTE COMMIT
Captar Decodificar Encolar Emitir Ejecutar // Finalizar
VENTANA DE EJECUCION

Tcncas de optmzacn
2. Politicas de ejecucion paralela

Se casfcan segn dos factores:

E orden segn e cua as nstruccones son envadas a e|ecutar


(emtdas, ssued).

E orden en que as nstruccones fnazan su e|ecucn a


escrbr en regstros o memora (commt).

La potca ms smpe es emitir y finalizar en orden


secuencial. Esta tcnca tene pocas probabdades de encontrar
nstruccones que puedan e|ecutarse en paraeo y depende mucho
de cmo est escrto y compado e programa. La venta|a es que e
procesador so debe preocuparse por as dependencas de datos
reaes ya que as dependencas de sada y as antdependencas no
exsten. Mtodo usado en segmentacion que genera detencones
de cauce (sta).
Tcncas de optmzacn
2. Politicas de ejecucion (cont)
La performance me|ora s se permte aterar e orden de emsn o
fnazacn (o ambos), sempre que se mantenga a exacttud de
resutado.

Finalizacion desordenada: no espera a que termnen as


nstruccones anterores para envar a actua. Aparecen as
dependencias de salida (adems de as verdaderas), por o que
se necesta una gca de emsn ms compcada. Pegroso ante
nterrupcones.

Emision desordenada (implica la anterior): utzando a


ventana de instrucciones puede rse ms a de un punto de
confcto en a emsn para encontrar nstruccones sn
dependenca de datos n confctos de recursos (antcpacn).
Aparecen as antidependencias.

Tcncas de optmzacn
2. Politicas de ejecucion (cont)
Ventana de ejecucin

Es e con|unto de nstruccones que se consderan para su


e|ecucn en un determnado momento. E hardware determna
cues son as nstruccones de a ventana que pueden envarse a
e|ecutar en paraeo, mtado por as dependencas de datos y
dsponbdad de recursos.

La ventana debe ser o ms grande posbe. La mtan a capacdad


de captar ntruccones a una gran tasa y e probema de os satos.

Se utza prediccion de saltos y ejecucion especulativa. La


porcn de cdgo predcha se ncorpora a a ventana de e|ecucn
y se e|ecutan tentatvamente. S a predccn fue correcta e
resutado se hace vsbe y permanente (commt), s no se emna.

Tcncas de optmzacn
3. Renombrado de registros

Cuando se utzan tcncas de desordenacn os vaores de os


regstros no pueden conocerse competamente en cada nstante de
tempo. Las nstruccones entran en confcto por e uso de
regstros y e procesador debe detener aguna etapa para
resovero.

Las tcncas de software de optmzacn de regstros empeoran a


stuacn.

Los efectos de as dependencas artfcaes pueden dsmnurse por


esta tcnca, que consste en dsponer de regstros adconaes
(nternos, ocutos a programador) y asgnaros (por hardware) a
nstruccones en confcto. Exsten R3a y R3b, por e|empo.

Lo usua es tener dupcado e banco de regstros. Venta|as y


desventa|as. E|EMPLO.
STORE R3,(R1)
ADD R1b,R6,R7

Tcncas de optmzacn
4. Tecnicas de compilacion
La mpementacn de tcncas de compador est condconada a
que e programa pueda ser recompado, o cua no sempre es
posbe.
Agunas tcncas que pueden utzarse:

Reagrupacn de nstruccones ndependentes (por e|empo de a


cuatro en e Pentum II).

Adeanto de nstruccones que generen dependenca rea de datos.

Loop unrong, etc. H-P 2a. ed. Ms detaes a case que vene.

Arqutecturas superescaares
]untando todo
Nomenclatura" en lntel Core 2 datasheet

Data Flow Analysis

5peculative and Out of Order Execution

5uperscalar

More accurate 8ranch Prediction

Deeper 8uffers

lncluye MACRO FU5lON (varias instrucciones x86 en una)

Captacn y decodfcacn smutnea de varas nstruccones.

Varas undades funconaes segmentadas en paraeo.

Emsn y fnazacn desordenada con ventana.

Renombrado de regstros.

Asstenca desde e compador.



Arqutecturas superescaares
MlPS R10000
8K
3 Coas
E dobe de regstros
Fetch X4 5 UF Commt X4
Arqutecturas superescaares
MlPS R10000: Pipeline
MIPS R10000: 5 ppenes
Pentum: 2 ppenes

Soamente agregando undades funconaes, sn otras tcncas, no


se obtenen buenos resutados.

La emsn desordenada es mportante porque permte buscar


nstruccones ndependentes haca adeante.

E renombrado de regstros puede me|orar a performance hasta un


30%, con a nca mtacn de a dependenca rea de datos.

Es mportante dsponer de una buena capacdad de captacn y


decodfcacn para poder utzar una ventana de nstruccones
grandes.
Arqutecturas superescaares
Conclusiones

Arqutecturas superescaares
lBM RlSC System RS}6000

A good exampe of a superscaar processor s the IBM RS/6000. There are


three ma|or subsystems n ths processor: the instruction fetch unit, an
integer processor, and a floating point processor. The nstructon
fetch unt s a 2- stage ppene; durng the frst stage a packet of four
nstructons s fetched from an nstructon cache, and n the second stage
nstructons are routed to the nteger processor and/or foatng pont
processor. An nterestng feature of ths nstructon unt s that t executes
branch nstructons tsef so that n a tght oop there s effectvey no
overhead from branchng snce the nstructon unt executes branches
whe the data unts are computng vaues. The nteger unt s a four-stage
ppene. In addton to executng data processng nstructons ths unt
does some preprocessng for the foatng pont unt. The foatng pont unt
tsef s sx stages deep.

A 62.5 MHz RS/6000 system ran the LINPACK benchmark (Gaussan


emnaton) at a rate of 104 MFLOPS and has a theoretca peak
performance of 125 MFLOPS. The HP 9000/735 workstaton has a 99 MHz
superscaar HP-PA processor. Ths machne executes the LINPACK
benchmark at 107 MFLOPS, wth a theoretca peak performance of 198
MFLOPS.

PowerPC 601: ver Stangs.

PowerPC 604: 6 undades de e|ecucn ndependentes (1 undad


de procesamento de satos, 1 undad de carga amacenamento, 3
undades de enteros, 1 undad de punto fotante), emsn en
orden, renombrado de regstros.

PowerPC 620: dem con emsn desordenada.

Pentium: Emsn en orden y 3 undades de e|ecucn


ndependentes (2 undades de enteros, 1 undad de punto
fotante).

Pentium ll: ver Stangs. 6ta. ed. Pentum IV.

MlPS R10000 y UltraSPARC-ll: ver Stangs. Emnados en a


6ta. ed.

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


Arqutecturas superescaares
Otros ejemplos superescalares

Threads:

Extensn de os engua|es de programacn que permte dvdros


en tareas pseudo-smutneas.

Hstrcamente ayudaban a scheduer de SO a reazar e tme


sce (en e caso de un monoprocesador) o a dstrbur a carga
(mutprocesadores).

Es dferente a concepto de proceso, pues entre threads se


comparte e estado y e espaco de memora.

Es ms "vano". Los context swtch son ms rpdos a expensas


de un certo nve de dependenca.
Arqutecturas superescaares
Multi-Threading

E paraesmo a nve de threads (TLP) es una medda de esta


propedad en os programas. Puede ser expotado por os
procesadores superescaares, ya que es ms expcto que e ILP.
Se pueden asgnar dferentes UFs a os threads.

Muy t para evtar que e procesador quede detendo ante un


cache-mss: contna e|ecutando e otro thread.

Son necesaros ms regstros y a captacn smutnea desde


dferentes threads (a menos dos).

S e SO est preparado, puede ver e HW como dos procesadores


gcos.
E|empos:

INTEL HyperThreadng (Pentum 4 HTT). Segn Inte me|ora 30%.

Smutaneus Mutthreadng (SMT) Power, SPARC.

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


Arqutecturas superescaares
Multi-Threading (cont)

Arqutecturas superescaares
Multi-Threading (cont)
1 CPU/1 Thread 2 CPU/1 Thread 1 CPU/2 Thread

Incorporar a sguente nformacn a os procesadores nvoucrados en
a prctca de repaso:

Detaes acerca de a segmentacn de cauce de nstruccones.

Caracterstcas RISC de a arqutectura.

Undades funconaes dsponbes e mpementacn superescaar.


Arqutecturas superescaares
Prctica