Intel Nehalem: el retorno del TLB bug

Intel Nehalem: el retorno del TLB bug

Alex Gálvez

El nuevo buque insignia de Intel, el Core i7 sufre del famoso fallo que condenó las ventas de la primera generación de quads AMD Opteron y Phenom, el TLB bug.

TLB son las siglas de Translation Lookaside Buffer, que es una caché cuya función es la de almacenar traducciones de memoria virtual a física. Los procesadores no trabajan con direcciones de memoria física (que sería la RAM), sino con direcciones de memoria virtual. Al ser el TLB una memoria caché muy pequeña, sólo se guardan los accesos a memoria más recientes, y si son usados nuevamente se ahorra tener que estar traduciendo la dirección virtual a física, ganando tiempo y, por tanto, rendimiento.

El problema se da tanto en los Core i7 como en su versión Extreme y no es un rumor, está confirmado por Intel, como se puede leer en las especificaciones que publica en este documento, en la página 37.

Cito textualmente y traduzco:

In rare instances, improper TLB invalidation may result in unpredictable system behavior, such as system hangs or incorrect data. Developers of operating systems should take this documentation into account when designing TLB invalidation algorithms. For the processors affected, Intel has provided a recommended update to system and BIOS vendors to incorporate into their BIOS to resolve this issue.

En raros casos, una invalidación de TLB impropia puede dar lugar a un comportamiento impredecible del sistema, como cuelgues o datos erroneos. Los desarrolladores de sistemas operativos deben tener en cuenta esta documentación a la hora de diseñar los algoritmos de invalidación de TLB. Para los procesadores afectados, Intel ha provisto a los vendedores de sistemas y BIOS una actualización recomendada para que la incorporen a sus BIOS para resolver esta incidencia.

 

Si bien es cierto que en el caso de AMD en sus Phenom Agena y Opterons Barcelona (corregidos ambos en la revisión B3) el TLB bug se daba con una frecuencia muy pequeña, el miedo a que ocurra está presente (sobre todo en servidores y máquinas dedicadas a la computación de alto rendimiento, donde es impensable el azar como variable).

Podría ser parecido o incluso el mismo que el presente en los Core 2, para el que Microsoft lanzó un parche, concretamente el KB936357 sin penalización de rendimiento, por lo que es pronto para alarmarse.

 

Fuente: Fudzilla e Intel