scieee Open visual document viewer

Análisis a Bajo Nivel de Procesadores Superescalares Reales

Linares Barranco, Alejandro; Paz Vicente, Rafael; Vicente Díaz, Saturnino; Rodríguez Jodar, Miguel Ángel; Díaz del Río, Fernando

Abstract

En esta ponencia-demo se presenta una práctica donde se analiza la influencia en el tiempo de ejecución de algunas optimizaciones sobre el código máquina para procesadores reales (familia Intel Pentium). Se propone el estudio del efecto del emparejamiento de instrucciones y de las dependencias entre registros, la aceleración obtenida con el desenrollado de iteraciones, la comparación entre instrucciones simples (del núcleo RISC) y complejas, etc. Además todo ello se ejecuta desde código ensamblador, midiendo el tiempo y otros eventos directamente sobre los Pentium, gracias a los contadores internos de monitorización del rendimiento (“Performance Monitoring Counters”, PMC) [1] de esta familia de procesadores. El alumno se enfrenta a las dificultades que supone trabajar con el sistema real y a bajo nivel. Se compara con otros métodos existentes y se describen una serie de rutinas para acceder a los contadores dando varios ejemplos de las posibilidades que brindan para el análisis de la estructura superescalar de estos procesadores.

Full text

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