Análisis a Bajo Ni el de P ocesado es Supe escala es Reales
A. Lina es, R. Paz Vicen e, S. Vicen e, M. A. Rod íguez Jóda , F. Díaz del Río
G upo de Robó ica y A qui ec u a de Compu ado es Aplicada a la Rehabili ación.
Facul ad de In o má ica. A da. Reina Me cedes s/n 41012 SEVILLA.
E-mail: [email p o ec ed]
Resumen
En es a ponencia-demo se p esen a una p ác ica
donde se analiza la in luencia en el iempo de
ejecución de algunas op imizaciones sob e el
código máquina pa a p ocesado es eales ( amilia
In el Pen ium). Se p opone el es udio del e ec o
del empa ejamien o de ins ucciones y de las
dependencias en e egis os, la acele ación
ob enida con el desen ollado de i e aciones, la
compa ación en e ins ucciones simples (del
núcleo RISC) y complejas, e c. Además odo ello
se ejecu a desde código ensamblado , midiendo el
iempo y o os e en os di ec amen e sob e los
Pen ium, g acias a los con ado es in e nos de
moni o ización del endimien o (“Pe o mance
Moni o ing Coun e s”, PMC) [1] de es a amilia
de p ocesado es. El alumno se en en a a las
di icul ades que supone abaja con el sis ema
eal y a bajo ni el. Se compa a con o os mé odos
exis en es y se desc iben una se ie de u inas pa a
accede a los con ado es dando a ios ejemplos de
las posibilidades que b indan pa a el análisis de la
es uc u a supe escala de es os p ocesado es.
1. Mo i ación y con ex o
La p esen e demo se encuad a den o de la
asigna u a oncal A qui ec u a de Sis emas
Pa alelos 1 y 2 di idida en 2 cua imes es (3
c édi os eó icos más 1.5 p ác icos cada una) de 4º
Ingenie ía In o má ica (Uni e sidad de Se illa).
En es as asigna u as se p e ende da una isión
concep ual, pe o ambién cuan i a i a, de las
dis in as posibilidades de pa alelismo en la
a qui ec u a de compu ado es. El p ime
cua imes e asien a las bases del pa alelismo,
cen ándose en las a qui ec u as segmen adas o
encadenadas, mien as que en el segundo se
explo an los pa alelismos más a anzados (a ni el
de ins ucciones, de da os y de p ocesos o hilos).
F u o del en oque p ác ico y cuan i a i o, que
no se quie e pe de en es as asigna u as, se han
buscado he amien as pa a ealiza p ác icas con
sis emas eales. Dada la baja do ación de p ác icas
y la di icul ad de las he amien as usadas, se ha
c eído con enien e u iliza una he amien a que
pueda se usada en p ác icas sucesi as.
Una he amien a que cumple es os equisi os
son los con ado es in e nos de PMC [1][4] de la
amilia de p ocesado es más ex endida en nues o
en o no: los In el Pen ium P6. G acias a es os
con ado es se puede moni o iza exhaus i amen e
la ejecución de una a ea, pues o que en ellos se
egis an odos los de alles de más bajo ni el,
como el iempo anscu ido en ciclos, el núme o
de accesos a memo ia, las ins ucciones ejecu adas
en una u o a ube ía, los allos de cache, e c.
Tales medidas son o almen e ealis as ya que no
pe u ban en nada la ejecución (siemp e es án
ac i as de o ma anspa en e).
Pa a medi el compo amien o de
aplicaciones sob e sis emas eales, se pod ían
habe usado o os mé odos, que suelen p oduci
una ejecución “con olada”, que no se á idén ica a
la eal, po la u ina de in e upción gene ada as
cada ins ucción que puede in e e i en el iempo
de ejecución o en los da os e ins ucciones de los
caches o de la BTB. El p incipal incon enien e de
las he amien as ICE son su p ecio ( eniendo en
cuen a que en un cu so an nume oso como el
nues o hab ían de mon a se bas an es pues os de
abajo). Po el con a io, el mé odo que se
desc ibe, ob iene ales pa áme os de una o ma
más di ec a. Po úl imo, aunque abaja con
simulado es es un mé odo muy didác ico (se
u iliza en las p ime as sesiones de p ác icas de
es a asigna u a), al adolece del componen e de
ealidad, suele mo i a menos al alumnado.
Es a sesión p e ende abaja en ensamblado
di ec amen e, pa a aisla de la in luencia del
compilado , (la in e acción del compilado con el
p ocesado supe escala se incluye en o a
438 Demos
p ác ica) ap eciando con oda cla idad la
impo ancia del o den de las ins ucciones, de las
dependencias eales, del desen ollado, e c.
El acceso a bajo ni el de un sis ema eal an
complejo como los PC con Pen ium, implica que
cualquie “pe u bación” en el sis ema puede
alsea los esul ados de la p ác ica. Po al mo i o
se decidió ejecu a la p ác ica sob e un sis ema
mono a ea, ya que el “ uido” que in oduce un
S.O. mul i a ea es bas an e conside able. De
hecho, aunque ya hay aplicaciones isuales [3]
que mues an el alo de los con ado es, es as
co en sob e Windows, de o ma que no es ácil,
po ejemplo, de e mina la di e encia de iempo de
ejecución en e dos agmen os de código
o denados de o ma dis in a. En conc e o hemos
usado MS-DOS po su disponibilidad po pa e de
una amplia mayo ía del alumnado.
2. Con enidos y desc ipción de la sesión
En el bole ín de p ác icas se da al alumnado
un esumen de la es uc u a de ube ías de los
Pen ium y de las eglas de empa ejamien o de
ins ucciones. Al comienzo de la sesión se
ecue dan ápidamen e los aspec os del juego de
ins ucciones que más pueden in lui en los
esul ados de la p ác ica.
Reco demos b e emen e que la cadena de los
Pen ium con iene 5 ases [5]:
• PF: P ebúsqueda o “P eFe ch”.
• ID1: E apa p ime a de decodi icación.
• ID2: E apa segunda de decodi icación.
• EX: Ejecución.
• WB: Esc i u a en memo ia o egis os.
El Pen ium no dispone de plani icación
(scheduling) ni de especulación dinámicas. Con
sus dos ube ías (U y V) puede alcanza , en
p incipio, un CPI=1/2 (pa a ins ucciones en e as).
Pe o exis en unas es icciones sob e la emisión en
pa alelo de las mismas. Se llama empa ejamien o
a la emisión de dos ins ucciones en pa alelo. La
ube ía U puede ejecu a cualquie ins ucción
( ube ía gené ica), mien as que la ube ía V sólo
puede ejecu a sal os o ins ucciones en e as
“simples” (núcleo RISC). Cuando dos
ins ucciones se empa ejan, la emi ida en la
ube ía V es siemp e la siguien e ins ucción a la
emi ida en la ube ía U, según el o den código.
Las condiciones que deben de cumpli dos
ins ucciones pa a que se puedan emi i a la ez
(“empa eja se” en las ube ías U y V), se llaman
eglas de empa ejamien o. En los Pen ium es as
eglas son muchas pe o las más básicas, con las
que abaja emos en es a demo, se esumen en que
las dos ins ucciones deben de se del núcleo
RISC (sin desplazamien os complejos ni p e ijos),
no pueden ene dependencias y que los sal os
sólo pueden empa eja se si an en la ube ía V (se
pe mi e el empa ejamien o de las ins ucciones de
compa ación con un sal o condicional).
Po el con a io a los Pen ium, en la amilia
Pen ium P6 (cuyo p ime miemb o ue el Pen ium
P o [4], y después los Pen ium II y III), se
in odujo plani icación y especulación dinámicas,
de o ma que la endoa qui ec u a se modi icó
adicalmen e. Las ases de los P6 son 10 (o más si
es á a la espe a de da os):
• IFU1, IFU2 e IFU3: Búsqueda, sepa ación y
alineamien o en on e a de 16 by es de las
ins ucciones.
• DEC1 y DEC2: Decodi icación y aducción
de ins ucciones complejas en mic o-
ope aciones (mic o-ops).
• RAT: Renomb ado dinámico de egis os.
• DIS y ROB: Espe a po da os en es aciones de
ese a y encola en bu e de eo denación.
• EX: Ejecución.
• RET1 y RET2: Re i a la ins ucción del bu e
de eo denación.
Las ins ucciones simples se aducen po
una mic o-op, mien as que las complejas pueden
con e i se has a en 4 mic o-ops o incluso en una
secuencia de mic ocódigo de la ROM in e na.
Los P6 Pen ium iene 5 unidades uncionales
(a i mé ica gené ica, a i mé ica simple más sal os,
una de ca ga y dos de almacenamien o), pe o en
cada ciclo sólo pueden enomb a los egis os de
has a 3 ins ucciones, de o ma que, en p incipio,
se puede alcanza un i mo máximo sos enido de
CPI=1/3 (pa a ins ucciones en e as). Po el
con a io, las es icciones de ejecución son
mucho más le es ( end ían de compa a el ipo de
ins ucciones que espe an en el bu e de
eo denación con las unidades uncionales),
pe mi iendo en algunos ciclos lanza has a 5
mic o-ops.
Po o o lado en es a sesión se ecue da cómo
abaja con los PMC (ya se ha abajado con ellos
en p ác icas). És os se incluye on a pa i de los
p ocesado es Pen ium, y en los P6 se modi ica on.
A pa i de aquí, In el ga an iza su man enimien o
pa a u u os Pen ium (si bien añade nue os
Demos 439
e en os o ien ados, po ejemplo, a las nue as
ins ucciones MMX). Pa a pode accede a los
con ado es la a ea debe se de p i ilegio 0. Todos
los Pen ium ienen sólo dos con ado es in e nos de
e en os, más o o de iempo (los “ icks” o ciclos
de eloj). Hay muchísimos e en os [1], de o ma
que disponemos de una in o mación comple ísima
de la ejecución eal del p ocesado .
Pa a lee los dos con ado es de e en os y el
con ado de ciclos, In el ha in oducido las
ins ucciones w ms , dpmc, d sc, con las cuales
se puede espec i amen e: selecciona los dos
e en os pa a cada con ado , examina la cuen a de
ellos o lee la cuen a de ciclos.
Pa a abaja con más comodidad con los es
con ado es se han esc i o lib e ías de u inas pa a
su p og amación y acceso (P5s a s.asm, P5s a s.h
pa a Pen ium y P6s a s.asm, P6s a s.h pa a P6),
pa a lenguaje C. És as pueden inicializa la cuen a
de e en os (o ciclos) o de ene la, y se desc iben a
con inuación:
• oid SelecE en o (BYTE NumCon , BYTE
E en o, BYTE UMask, BYTE TipoCon ); /*
Selecciona en el con ado 0 ó 1 con NumCon.,
El e en o especi icado en E en o. En TipoCon
el alo 0 (cuen a e en os) o 1 (cuen a ciclos de
eloj). UMask es un pa áme o que en algunos
casos especi ica aún más conc e amen e el ipo
de e en o a medi , ecogidos en [1] */
• oid Comenza Moni o ( oid); /* Comienza la
cuen a de e en os en ambos con ado es (lee y
gua da el alo de los con ado es) */
• oid Te mina Moni o ( oid); /* Te mina la
cuen a de e en os en ambos con ado es,
de ol iendo el inc emen o en las a iables
globales MPCon ado 0 y MPCon ado 1) */
• oid TSCComenza ( oid); /* Comienza la
cuen a de ciclos del eloj (lee y gua da el alo
del con ado de ciclos) */
• DWORD TSCTe mina ( oid); /* Te mina la
cuen a de ciclos del eloj y de uel e el iempo
anscu ido con espec o a la llamada a
TSCComenza (lee el alo del con ado de
ciclos y lo es a del alo an es gua dado) */
Con las unciones an e io es se puede
ealiza una medida de iempo (en ciclos de eloj)
más dos medidas de e en os pa a cualquie código
de p ueba; en nues o caso, medidas de los
accesos a ec o es con amaño y pa ones de
eco ido di e en es pa a calcula los pa áme os
de los caches. E iden emen e si se desean medi
más de dos ipos de e en os, debe á ejecu a se
a ias eces el mismo p og ama, escogiendo
dis in os e en os cada ez.
La es uc u a de un p og ama que mida
e en os se mues a en la Fig. 1, y los p og amas
de es a demo son un ejemplo. En el “código de
p ueba” se han de inse a las ins ucciones
ensamblado que se quie en moni o iza .
Todos los iche os an e io es se suminis an
al alumno, apa e de un p oyec o (.p j de
Bo landC, Tu boC o simila ), pa a pode compila
y linka co ec amen e, de mane a que és e no ha
de en a en de alles sob e la implemen ación
an es explicada, y sólo debe p eocupa se po las
medidas sob e el código de p ueba. Con odo ello,
el alumno debe á elegi los e en os elacionados
con las ube ías e i ex ayendo conclusiones sob e
el iempo de ejecución de cada agmen o.
Con la lib e ía de medida de e en os y ciclos
y con un p og ama con la es uc u a de la Fig. 1,
se pueden plan ea en p ime luga sesiones de
p ác icas, donde se comp uebe el impac o de las
op imizaciones de bajo ni el en el iempo de
ejecución. Po ejemplo, pa a los Pen ium la
eo denación manual de agmen os de código que
con ienen dependencias o que iolan las eglas de
empa ejamien o, conduce a un aumen o del IPC
(Ins ucciones Po Ciclo [2]). Po el con a io,
es os mismos agmen os de código pueden se
lanzados sob e un Pen ium P6 sin que la
eo denación a ec e (en gene al) al IPC, debido a
que la plani icación dinámica de és e abso be las
dependencias. O o ema de es udio son las
ins ucciones que no pe enecen al núcleo RISC.
En el Pen ium és as suponen un de imen o
ap eciable de p es aciones, mien as que pa a los
P6 muchas de ellas se suelen con e i en mic o-
ops, en ando a ejecu a se jun o a las o as
ins ucciones simples. Usando e en os que
de uel en el núme o de ins ucciones y de mic o-
ops el alumno puede econoce cómo ha sido la
con e sión an e io . También es in e esan e que
comp enda que algunas ins ucciones del conjun o
más CISC, p oducen un de e io o inmenso en las
p es aciones. Po ejemplo, la ins ucción LOOP,
que ha de ejecu a se como secuencia de
mic ocódigo. O os ac o es que pueden es udia se
son la al a penalización po allo de p edicción de
la BTB, di e encia en e el núme o de
ins ucciones emi idas y el de e i adas, e c.
Po úl imo, se puede mos a la impo ancia
de la écnica del desen ollado, calculando la
acele ación que in oduce. Además, los alumnos
440 Demos
pueden comp oba que el iempo de ejecución de
un bucle desen ollado depende más del o den de
las ins ucciones ( eglas de empa ejamien o) en un
Pen ium que en los P6. Como ejemplo de una
p ác ica se p opone que el alumno calcule los
pa áme os IPC, acele ación, po cen aje de
ins ucciones de con ol o sob eca ga, e c. e c.
adjun ando los ac o es que han in luido en los
mismos pa a los di e sos agmen os de código
dados. Los e en os C4h, C5h, C0h, C2h, D0h,
A2h y o os nos pe mi en calcula lo an e io .
Pedi los e en os que se desean medi y o os
pa áme os pa a el código de p ueba.
Llamada a SelecE en o ()
disable () /* inhabili a in e upciones*/
Repe i la siguien e medida a ias eces, pues la
p ime a puede da esul ados di e en es:
/*Calculo de la sob eca ga de las unc “O e head”*/
TSCComenza (); Comenza Moni o ();
/*Código de p ueba que se conside e sob eca ga*/
Te mina Moni o ();
TiempoO e Head=TSCTe mina ();
O e Head0=MPCon ado 0;
O e Head1=MPCon ado 1;
TSCComenza (); Comenza Moni o ();
/*AQUI DEBE IR EL CODIGO DE PRUEBA*/
Te mina Moni o (); Tiempo=TSCTe mina ();
/*Res a de sob eca ga u o e head*/
MPCon ado 0-=O e Head0;
MPCon ado 1-=O e Head1;
Tiempo-=TiempoO e Head;
/*Imp esión de esul ados */
p in ("Du ación: %ld nNúme o de e en os del
con ado 0: %lu nNúme o de e en os del con ado
1: %lu n", Tiempo, MPCon ado 0, MPCon ado 1);
Fig. 1: Es uc u a de un p og . pa a medi e en os
3. Nues a expe iencia con es a p ác ica
Una de las mayo es mo i aciones que
encuen an los alumnos p ocede de usa un
sis ema eal, del que se ex aen conclusiones sob e
el pa alelismo ILP y la acele ación que p oduce en
la máquina. Les hace e que no es “ocul o”, sino
que pueden in e e i di ec amen e con oda es a
emá ica (una cues ión que no es an “ ealis a” en
los simulado es o en el código de al o ni el).
Además las medidas son de una p ecisión muy
al a, lo que es una en aja compa able a la que
o ecen los simulado es.
En e las cues iones que hemos descubie o
que mo i an pa icula men e al alumnado ci amos:
el comp oba numé icamen e la in luencia de la
al a penalidad in oducida po un allo de BTB o
de una línea de cache (la p ime a ejecución es
mucho más len a que las siguien es), la al a
acele ación de écnicas de plani icación es á ica
a anzada, como el desen ollado (a pesa de la
di icul ad de consegui la con el educido conjun o
de egis os de los Pen ium), compa ada con la
conseguida en los P6. La complemen ación de la
exposición eó ica de es as cues iones con los
esul ados eales an p ecisos que se ob ienen,
p oduce una mo i ación adicional en el alumnado.
Po úl imo, una en aja adicional es la
disponibilidad de las he amien as de es a demo
(sólo u inas y apéndice A de [1]), que les pe mi e
hace p uebas con su p opio o denado .
4. Conclusiones
Se ha p esen ado una p ác ica pa a el es udio del
ILP en p ocesado es supe escala es con o sin
plani icación dinámica, pe o basadas en el análisis
de un sis ema eal, en luga de simulado es. La
p ecisión de los esul ados es al ísima, g acias a la
lib e ía ealizada pa a accede a los con ado es
PMC de los Pen ium. Además es as lib e ías son
de ácil disponibilidad pa a el alumnado. Se ha
descubie o una al a mo i ación del alumnado
pa a comp ende un ema an complejo como la
supe escala idad y la plani icación dinámica, al
pode comp oba en la ealidad, el e ec o de la
misma en al acele ación de pequeños bucles o
agmen os de código.
Re e encias
[1] In el A chi ec u e So wa e De elope ’s
Manual. Volume 3: Sys em P og amming
Guide. Appendix A. In el Co po a ion. 1997.
[2] J.L. Hennessy, D.A. Pa e son “Compu e
A chi ec u e. A Quan i a i e App oach”.
Mo gan-Kau mann (Second Edi ion), 1996.
[3] He amien a con ado In el. Página Web h p:
//de elope .in el.com/so wa e/idap/ esou ces
/ echnical_colla e al/pen iumii/p6pe n .h m
[4] Pen ium P o P ocesso A chi ec u e. Tom
Shanley. Addison-Wesley De elope s P ess.
[5] Pen ium P ocesso Op imiza ion Tools.
Michael L. Schmi . AP P o essional. 1995
View publica ion s a sView publica ion s a s