Beruflich Dokumente
Kultur Dokumente
Otro m'todo de tratar al&unos de los problemas de una seal &lobal de relo/ es la completa
remoci7n de la misma$ =ientras #ue #uitar la seal &lobal del relo/ 3ace, de muc3as
maneras, considerablemente m9s comple/o el proceso del diseo, en comparaci7n con
diseos s-ncronos similares, los diseos asincr7nicos (o sin relo/" tienen marcadas )enta/as
en el consumo de ener&-a ( la disipaci7n de calor$ Dun#ue al&o in.recuente, *+,s
completas se 3an construido sin utili4ar una seal &lobal de relo/$ Dos notables e/emplos de
esto son el D=,%8;, #ue implementa la ar#uitectura del D?=, ( el =ini=I+1,
compatible con el =I+1 ?>000$ 8n lu&ar de remo)er totalmente la seal del relo/, al&unos
diseos de *+, permiten a ciertas unidades del dispositi)o ser asincr7nicas, como por
e/emplo, usar D%,s asincr7nicas en con/unci7n con pipelinin& superescalar para alcan4ar
al&unas &anancias en el desempeo aritm'tico$ =ientras #ue no est9 completamente claro si
los diseos totalmente asincr7nicos pueden desempearse a un ni)el comparable o me/or
#ue sus contrapartes s-ncronas, es e)idente #ue por lo menos sobresalen en las m9s simples
operaciones matem9ticas$ 8sto, combinado con sus e6celentes caracter-sticas de consumo
de ener&-a ( disipaci7n de calor, los 3ace mu( adecuados para sistemas embebidos$
Paralelismo
Drt-culo principal: Computacin paralela
=odelo de un *+, subescalar$ Bote #ue toma #uince ciclos para terminar tres
instrucciones$
%a descripci7n de la operaci7n b9sica de un *+, o.recida en la secci7n anterior describe la
.orma m9s simple #ue puede tomar un *+,$ 8ste tipo de *+,, usualmente re.erido como
su"escalar, opera sobre ( e/ecuta una sola instrucci7n con una o dos pie4as de datos a la
)e4$
8ste proceso da lu&ar a una ine.icacia in3erente en *+,s subescalares$ +uesto #ue
solamente una instrucci7n es e/ecutada a la )e4, todo el *+, debe esperar #ue esa
instrucci7n se complete antes de proceder a la si&uiente instrucci7n$ *omo resultado, el
*+, subescalar #ueda 5parali4ado5 en instrucciones #ue toman m9s de un ciclo de relo/
para completar su e/ecuci7n$ Incluso la adici7n de una se&unda unidad de e/ecuci7n ()er
aba/o" no me/ora muc3o el desempeo$ 8n lu&ar de un camino #uedando con&elado, a3ora
dos caminos se parali4an ( aumenta el n:mero de transistores no usados$ 8ste diseo, en
donde los recursos de e/ecuci7n del *+, pueden operar con solamente una instrucci7n a la
)e4, solo puede, posiblemente, alcan4ar el desempeo escalar (una instrucci7n por ciclo de
relo/"$ 1in embar&o, el desempeo casi siempre es subescalar (menos de una instrucci7n por
ciclo"$
%as tentati)as de alcan4ar un desempeo escalar ( me/or, 3an resultado en una )ariedad de
metodolo&-as de diseo #ue 3acen comportarse al *+, menos linealmente ( m9s en
paralelo$ *uando se re.iere al paralelismo en los *+,, &eneralmente son usados dos
t'rminos para clasi.icar estas t'cnicas de diseo$
8l paralelismo a ni)el de instrucci7n, en in&l's Instruction %e)el +arallelism (I%+",
busca aumentar la tasa en la cual las instrucciones son e/ecutadas dentro de un *+,,
es decir, aumentar la utili4aci7n de los recursos de e/ecuci7n en la pastilla$
8l paralelismo a ni)el de 3ilo de e/ecuci7n, en in&l's t3read le)el parallelism (;%+",
#ue se propone incrementar el n:mero de 3ilos (e.ecti)amente pro&ramas
indi)iduales" #ue un *+, pueda e/ecutar simult9neamente$
*ada metodolo&-a se di.erencia tanto en las maneras en las #ue est9n implementadas, como
en la e.ecti)idad relati)a #ue producen en el aumento del desempeo del *+, para una
aplicaci7n$
8
ILP, -ntu"ado de instruccin y ar(uitectura superescalar
Artculo principal: ntu!ado de instruccin " superescalar
;uber-a b9sica de cinco etapas$ 8n el me/or de los casos, esta tuber-a puede sostener un
ratio de completado de una instrucci7n por ciclo$
,no de los m9s simples m'todos usados para lo&rar incrementar el paralelismo es
comen4ar los primeros pasos de leer ( decodi.icar la instrucci7n antes de #ue la instrucci7n
anterior 3a(a terminado de e/ecutarse$ Jsta es la .orma m9s simple de una t'cnica conocida
como instruction pipelinin& (entubado de instrucci7n", ( es utili4ada en casi todos los *+,
de prop7sito &eneral modernos$ Dl di)idir la ruta de e/ecuci7n en etapas discretas, la tuber-a
permite #ue m9s de una instrucci7n sea e/ecutada en cual#uier tiempo$ 8sta separaci7n
puede ser comparada a una l-nea de ensambla/e, en la cual una instrucci7n es 3ec3a m9s
completa en cada etapa 3asta #ue sale de la tuber-a de e/ecuci7n ( es retirada$
1in embar&o, la tuber-a introduce la posibilidad de una situaci7n donde es necesario
terminar el resultado de la operaci7n anterior para completar la operaci7n si&uienteI una
condici7n llamada a menudo como con.licto de dependencia de datos$ +ara 3acer .rente a
esto, debe ser tomado un cuidado adicional para comprobar estas clases de condiciones, ( si
esto ocurre, se debe retrasar una porci7n de la tuber-a de instrucci7n$ Baturalmente, lo&rar
esto re#uiere circuiter-a adicional, los procesadores entubados son m9s comple/os #ue los
subescalares, pero no muc3o$ ,n procesador entubado puede lle&ar a ser casi
completamente escalar, solamente in3ibido por las abruptas paradas de la tuber-a (una
instrucci7n durando m9s de un ciclo de relo/ en una etapa"$
;uber-a superescalar simple$ Dl leer ( despac3ar dos instrucciones a la )e4, un m96imo de
dos instrucciones por ciclo pueden ser completadas$
,na me/ora adicional sobre la idea del entubado de instrucci7n (instruction pipelinin&"
condu/o al desarrollo de un m'todo #ue disminu(e incluso m9s el tiempo ocioso de los
componentes del *+,$ Diseos #ue se dice #ue son superescalares inclu(en una lar&a
tuber-a de instrucci7n ( m:ltiples unidades de e/ecuci7n id'nticas$ 8n una tuber-a
superescalar, m:ltiples instrucciones son le-das ( pasadas a un despac3ador, #ue decide si
las instrucciones se pueden o no e/ecutar en paralelo (simult9neamente"$ De ser as-, son
despac3adas a las unidades de e/ecuci7n disponibles, dando por resultado la capacidad para
#ue )arias instrucciones sean e/ecutadas simult9neamente$ 8n &eneral, cuanto m9s
instrucciones un *+, superescalar es capa4 de despac3ar simult9neamente a las unidades
de e/ecuci7n en espera, m9s instrucciones ser9n completadas en un ciclo dado$
%a ma(or parte de la di.icultad en el diseo de una ar#uitectura superescalar de *+,
descansa en crear un despac3ador e.ica4$ 8l despac3ador necesita poder determinar r9pida
( correctamente si las instrucciones pueden e/ecutarse en paralelo, tan bien como
despac3arlas de una manera #ue manten&a ocupadas tantas unidades de e/ecuci7n como sea
posible$ 8sto re#uiere #ue la tuber-a de instrucci7n sea llenada tan a menudo como sea
posible ( se incrementa la necesidad, en las ar#uitecturas superescalares, de cantidades
si&ni.icati)as de cac3' de *+,$ 8sto tambi'n crea t'cnicas para e)itar peli&ros como la
predicci7n de bi.urcaci7n, e/ecuci7n especulati)a, ( la e/ecuci7n .uera de orden, cruciales
para mantener altos ni)eles de desempeo$
%a predicci7n de bi.urcaci7n procura predecir #u' rama (o tra(ectoria" tomar9 una
instrucci7n condicional, el *+, puede minimi4ar el n:mero de tiempos #ue toda la
tuber-a debe esperar 3asta #ue sea completada una instrucci7n condicional$
%a e/ecuci7n especulati)a .recuentemente proporciona aumentos modestos del
desempeo al e/ecutar las porciones de c7di&o #ue pueden o no ser necesarias
despu's de #ue una operaci7n condicional termine$
%a e/ecuci7n .uera de orden cambia en al&:n &rado el orden en el cual son
e/ecutadas las instrucciones para reducir retardos debido a las dependencias de los
datos$
8n el caso donde una porci7n del *+, es superescalar ( una parte no lo es, la parte #ue no
es superescalar su.re en el desempeo debido a las paradas de 3orario$ 8l Intel +entium
ori&inal (+!" ten-a dos D%,s superescalares #ue pod-an aceptar, cada una, una instrucci7n
por ciclo de relo/, pero su @+, no pod-a aceptar una instrucci7n por ciclo de relo/$ Ds- el +!
era superescalar en la parte de n:meros enteros pero no era superescalar de n:meros de
coma (o punto KdecimalL" .lotante$ 8l sucesor a la ar#uitectura del +entium de Intel, el +6,
a&re&7 capacidades superescalares a sus .unciones de coma .lotante, ( por lo tanto produ/o
un si&ni.icati)o aumento en el desempeo de este tipo de instrucciones$
8l entubado simple ( el diseo superescalar aumentan el I%+ de un *+, al permitir a un
solo procesador completar la e/ecuci7n de instrucciones en ratios #ue sobrepasan una
instrucci7n por ciclo (IPC"$
2
%a ma(or-a de los modernos diseos de *+, son por lo menos
al&o superescalares, ( en la :ltima d'cada, casi todos los diseos de *+, de prop7sito
&eneral son superescalares$ 8n los :ltimos aos al&o del 'n.asis en el diseo de
computadores de alto I%+ se 3a mo)ido del 3ardEare del *+, 3acia su inter.ace de
so.tEare, o I1D$ %a estrate&ia de la mu( lar&a palabra de instrucci7n, )er( lon& instruction
Eord (A%IM", causa a al&:n I%+ a ser impl-cito directamente por el so.tEare, reduciendo la
cantidad de traba/o #ue el *+, debe reali4ar para darle un empu/e si&ni.icati)o al I%+ ( por
lo tanto reducir la comple/idad del diseo$
.LP, e%ecucin simult)nea de hilos
Otra estrate&ia com:nmente usada para aumentar el paralelismo de los *+, es incluir la
3abilidad de correr m:ltiples 3ilos (pro&ramas" al mismo tiempo$ 8n &eneral, *+,s con
alto ;%+ 3an estado en uso por muc3o m9s tiempo #ue los de alto I%+$ =uc3os de los
diseos en los #ue 1e(mour *ra( .ue pionero durante el .inal de los aos 120 ( los aos
1280 se concentraron en el ;%+ como su m'todo primario de .acilitar enormes capacidades
de computaci7n (para su tiempo"$ De 3ec3o, el ;%+, en la .orma de me/oras en m:ltiples
3ilos de e/ecuci7n, estu)o en uso tan temprano como desde los aos 12!0$ 8n el conte6to
de diseo de procesadores indi)iduales, las dos metodolo&-as principales usadas para lo&rar
el ;%+ son, multiprocesamiento a ni)el de c3ip, en in&l's c3ipHle)el multiprocessin&
(*=+", ( el multi3ilado simult9neo, en in&l's simultaneous multit3readin& (1=;"$ 8n un
alto ni)el, es mu( com:n construir computadores con m:ltiples *+, totalmente
independientes en arre&los como multiprocesamiento sim'trico (s(mmetric multiprocessin&
(1=+"" ( acceso de memoria no uni.orme (BonH,ni.orm =emor( Dccess (B,=D""$
10
Dun#ue son usados medios mu( di.erentes, todas estas t'cnicas lo&ran la misma meta:
incrementar el n:mero de 3ilos #ue el *+,(s" puede correr en paralelo$
%os m'todos de paralelismo *=+ ( de 1=+ son similares uno del otro ( lo m9s directo$
Jstos implican al&o m9s conceptual #ue la utili4aci7n de dos o m9s *+, completos ( *+,
independientes$ 8n el caso del *=+, m:ltiples 5n:cleos5 de procesador son incluidos en el
mismo pa#uete, a )eces en el mismo circuito inte&rado$
11
+or otra parte, el 1=+ inclu(e
m:ltiples pa#uetes independientes$ B,=D es al&o similar al 1=+ pero usa un modelo de
acceso a memoria no uni.orme$ 8sto es importante para los computadores con muc3os *+,
por#ue el tiempo de acceso a la memoria, de cada procesador, es a&otado r9pidamente con
el modelo de memoria compartido del 1=+, resultando en un si&ni.icati)o retraso debido a
los *+, esperando por la memoria$ +or lo tanto, B,=D es considerado un modelo muc3o
m9s escalable, permitiendo con '6ito #ue en un computador sean usados muc3os m9s *+,
#ue los #ue pueda soportar de una manera .actible el 1=+$ 8l 1=; se di.erencia en al&o de
otras me/oras de ;%+ en #ue el primero procura duplicar tan pocas porciones del *+,
como sea posible$ =ientras es considerada una estrate&ia ;%+, su implementaci7n
realmente se aseme/a m9s a un diseo superescalar, ( de 3ec3o es .recuentemente usado en
microprocesadores superescalares, como el +OM8?! de IC=$ 8n lu&ar de duplicar todo el
*+,, los diseos 1=; solamente duplican las pie4as necesarias para lectura,
decodi.icaci7n, ( despac3o de instrucciones, as- como cosas como los re&istros de
prop7sito &eneral$ 8sto permite a un *+, 1=; mantener sus unidades de e/ecuci7n
ocupadas m9s .recuentemente al proporcionarles las instrucciones desde dos di.erentes
3ilos de so.tEare$ ,na )e4 m9s esto es mu( similar al m'todo superescalar del I%+, pero
e/ecuta simult9neamente instrucciones de m:ltiples 3ilos en lu&ar de e/ecutar
concurrentemente m:ltiples instrucciones del mismo 3ilo$
Procesadores /ectoriales y el SIM&
Drt-culos principales: Procesador #ectorial ( $%MD$
,n menos com:n pero cada )e4 m9s importante paradi&ma de *+, (( de 3ec3o, de
computaci7n en &eneral" trata con /ectores$ %os procesadores de los #ue se 3a 3ablado
anteriormente son todos re.eridos como cierto tipo de dispositi)o escalar$
12
*omo implica
su nombre, los procesadores )ectoriales se ocupan de m:ltiples pie4as de datos en el
conte6to de una instrucci7n, esto contrasta con los procesadores escalares, #ue tratan una
pie4a de dato por cada instrucci7n$ 8stos dos es#uemas de ocuparse de los datos son
&eneralmente re.eridos respecti)amente como 1I1D (1in&le Instruction, 1in&le DataN"
(1imple Instrucci7n, 1imple Dato" ( 1I=D (1in&le Instruction, =ultiple Data" (1imple
Instrucci7n, =:ltiples Datos"$ %a &ran utilidad en crear *+,s #ue se ocupen de )ectores de
datos radica en la optimi4aci7n de tareas #ue tienden a re#uerir la misma operaci7n, por
e/emplo, una suma, o un producto escalar, a ser reali4ado en un &ran con/unto de datos$
Dl&unos e/emplos cl9sicos de este tipo de tareas son las aplicaciones multimedia
(im9&enes, )-deo, ( sonido", as- como muc3os tipos de tareas cient-.icas ( de in&enier-a$
=ientras #ue un *+, escalar debe completar todo el proceso de leer, decodi.icar, ( e/ecutar
cada instrucci7n ( )alor en un con/unto de datos, un *+, )ectorial puede reali4ar una
simple operaci7n en un comparati)amente &rande con/unto de datos con una sola
instrucci7n$ +or supuesto, esto es solamente posible cuando la aplicaci7n tiende a re#uerir
muc3os pasos #ue apli#uen una operaci7n a un con/unto &rande de datos$
%a ma(or-a de los primeros *+, )ectoriales, como el *ra(H1, .ueron asociados casi
e6clusi)amente con aplicaciones de in)esti&aci7n cient-.ica ( cripto&ra.-a$ 1in embar&o, a
medida #ue la multimedia se despla47 en &ran parte a medios di&itales, 3a lle&ado a ser
si&ni.icati)a la necesidad de una cierta .orma de 1I=D en *+,s de prop7sito &eneral$ +oco
despu's de #ue comen4ara a ser com:n incluir unidades de coma .lotante en procesadores
de uso &eneral, tambi'n comen4aron a aparecer especi.icaciones e implementaciones de
unidades de e/ecuci7n 1I=D para los *+, de uso &eneral$ Dl&unas de estas primeras
especi.icaciones 1I=D, como el ==X de Intel, .ueron solamente para n:meros enteros$
8sto demostr7 ser un impedimento si&ni.icati)o para al&unos desarrolladores de so.tEare,
(a #ue muc3as de las aplicaciones #ue se bene.iciaban del 1I=D trataban sobre todo con
n:meros de coma .lotante$ +ro&resi)amente, 'stos primeros diseos .ueron re.inados (
re3ec3os en al&una de las comunes, modernas especi.icaciones 1I=D, #ue &eneralmente
est9n asociadas a un I1D$ Dl&unos e/emplos modernos notables son el 118 de Intel ( el
DltiAec relacionado con el +oEer+* (tambi'n conocido como A=X"$
1>