30.07.2015 Views

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Actas</strong> XXII Jornadas <strong>de</strong> Paralelismo (<strong>JP2011</strong>) , <strong>La</strong> <strong>La</strong>guna, Tenerife, 7-9 septiembre 2011Fig. 1.El procesador Itanium 2 Montvale.ciones. El tamaño <strong>de</strong> la caché <strong>de</strong>l tercer nivel varía<strong>de</strong>ntro <strong>de</strong> cada familia entre 1,5 MB y 24 MB. Eneste trabajo nos centramos en el nivel 1 <strong>de</strong> caché <strong>de</strong>datos, ya que en ella se producirán la mayoría <strong>de</strong> losfallos caché <strong>de</strong> datos para su posterior <strong>de</strong>tección porlos CH. <strong>La</strong> latencia mínima <strong>de</strong> un fallo en la L1 es<strong>de</strong> 5 ciclos, que se produce cuando el dato está enla L2 <strong>de</strong> caché. Mientras que si está en el nivel 3 lalatencia pasa a ser <strong>de</strong>, al menos, 14 ciclos. Los datosen punto flotante se guardan directamente en el nivel2 <strong>de</strong> caché, por lo que su lectura siempre provoca unfallo en le nivel 1. Los EAR utilizados para capturarfallos caché permiten <strong>de</strong>tectar éstos con latencias <strong>de</strong>al menos 4 ciclos, por lo que con su lectura se podrán<strong>de</strong>tectar potencialmente todos ellos.<strong>La</strong> TLB consta <strong>de</strong> dos niveles y se divi<strong>de</strong> en TLB<strong>de</strong> instrucciones y <strong>de</strong> datos. Cada TLB <strong>de</strong> nivel 2soporta 32 registros <strong>de</strong> traducción por cada procesador.<strong>La</strong> familia Itanium dispone <strong>de</strong> una PMU (PerformanceMonitoring Unit). Esencialmente consiste enuna serie <strong>de</strong> registros y contadores hardware que contieneninformación sobre lo que ocurre en la CPU durantela ejecución <strong>de</strong> instrucciones. Estos se divi<strong>de</strong>nprincipalmente en registros <strong>de</strong> configuración (PMC),que son programables y guardan información sobrelo que almacenan los otros registros, y los registros<strong>de</strong> datos o PMD, que pue<strong>de</strong>n ser leídos para obtenerinformación sobre la ejecución <strong>de</strong> las instrucciones.<strong>La</strong> PMU es un subsistema sincronizado con estadoglobal, don<strong>de</strong> todos los contadores se pue<strong>de</strong>n iniciaro <strong>de</strong>tener al mismo tiempo.<strong>La</strong> PMU pue<strong>de</strong> filtrar los eventos que captura <strong>de</strong>múltiples maneras, por ejemplo, por nivel <strong>de</strong> privilegio,por el código <strong>de</strong> la instrucción o por direcciones<strong>de</strong> memoria virtual.Los Event Address Registers (EAR) son un tipo especial<strong>de</strong> estos contadores hardware presentes en lafamilia Itanium. Obtienen información sobre las direcciones<strong>de</strong> memoria accedidas y sus latencias. LosEARs ofrecen una manera <strong>de</strong> obtener información<strong>de</strong>tallada <strong>de</strong> los fallos <strong>de</strong> caché, TLB y ALAT cuandose producen. Por cada evento capturado se guarda enlos registros <strong>de</strong> la PMU la dirección <strong>de</strong> la instrucciónque provocó el acceso a memoria, la dirección <strong>de</strong> lamemoria virtual que provocó el fallo y la latencia <strong>de</strong>la recuperación <strong>de</strong> la dirección en los fallos <strong>de</strong> L1. Elfallo en niveles superiores se <strong>de</strong>duce <strong>de</strong> su latencia<strong>de</strong> resolución. También pue<strong>de</strong> obtenerse el nivel <strong>de</strong>TLB don<strong>de</strong> se resolvió la traducción. Dentro <strong>de</strong> losfallos <strong>de</strong> TLB se pue<strong>de</strong>n <strong>de</strong>tectar fallos en cada uno<strong>de</strong> sus niveles.Los registros <strong>de</strong> la PMU pue<strong>de</strong>n configurarse manualmente.De esta manera los EARs pue<strong>de</strong>n serconfigurados para capturar tan solo los eventos <strong>de</strong>interés. Para eventos <strong>de</strong> fallo caché se pue<strong>de</strong> <strong>de</strong>finirtanto la latencia mínima <strong>de</strong> resolución <strong>de</strong>l fallo, convalores fijos <strong>de</strong>s<strong>de</strong> 4 a 4096, como el tipo <strong>de</strong> caché,si datos o instrucciones. En este trabajo nos hemoscentrado en los fallos en la caché <strong>de</strong> datos, generalmente<strong>de</strong> latencias bajas. En la práctica se <strong>de</strong>beguardar la latencia en un registro PMC e indicar alprocesador el tipo <strong>de</strong> evento consi<strong>de</strong>rado en otro diferente(entre fallos en la caché <strong>de</strong> instrucciones, falloen la caché <strong>de</strong> datos, fallo en la TLB o fallo en laALAT). Los EARs no pue<strong>de</strong>n capturan los accesos acaché que no provoquen fallo, así como los accesos <strong>de</strong>escritura. Debe tenerse en cuenta <strong>de</strong> que funcionana través <strong>de</strong> un proceso <strong>de</strong> muestreo, lo que significaque no es posible capturar sistemáticamente todoslos eventos que se producen. Es necesario indicar ala PMU el período <strong>de</strong> muestreo <strong>de</strong>seado.Para realizar la programación <strong>de</strong> las PMUs yobtener los resultados <strong>de</strong> la ejecución <strong>de</strong> los códigosse ha usado la librería libpfm2[7] y la interfaz <strong>de</strong> comunicaciónperfmon2[7]. Libpfm es una librería <strong>de</strong>ayuda que pue<strong>de</strong> ser usada para la creación <strong>de</strong> herramientas<strong>de</strong> monitorización <strong>de</strong> CPUs. <strong>La</strong> librería contienetoda la información sobre las PMU específicas<strong>de</strong> cada mo<strong>de</strong>lo <strong>de</strong> procesador, por ejemplo los nombresy códigos <strong>de</strong> los eventos y <strong>de</strong> las diferentes variables<strong>de</strong> estos. El programador tan solo tiene que indicaren las funciones lo que se quiere medir y estas<strong>de</strong>terminan el modo <strong>de</strong> programar la PMU. <strong>La</strong> in-<strong>JP2011</strong>-656

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!