Extensiones propietarias al conjunto de instrucciones x86: ¿una pérdida de tiempo?

11:50 am HospedajeWeb

Agner Fog, un experto dinamarqués en optimización de software, pidió públicamente que se estandaricen los procedimientos para la creación de extensiones al conjunto de instrucciones x86. A primera vista, éste parece ser un tema importante sólo para el pequeño grupo de programadores que debe lidiar directamente con el lenguaje de máquina. Pero a los desarrolladores comunes, administradores de IT y entusiastas del hardware en general también debe interesarnos.

En su blog, Agner Fog abunda en detalles acerca de por qué los agregados SSE-xx incompatibles entre sí y otras extensiones no estandarizadas fueron y son una mala idea.

“El número total de instrucciones x86 está muy por encima del millar”, indica el experto dinamarqués. “El dispatching de CPU hace el código más grande, y es tan costoso en términos de tiempo de desarrollo y esfuerzo de mantenimiento, que prácticamente nunca se hace en una forma adecuada como para optimizarlo para todas las clases de CPUs”.

Otra preocupación de Fog es que el soporte para instrucciones obsoletas no debe despreciarse. “Se necesitan grandes unidades de ejecución para soportar un gran número de instrucciones. Esto implica más cantidad de silicio, caminos de datos más extensos, más consumo energético y ejecución más lenta”.

En resumen: las extensiones propietarias al conjunto de instrucciones x86 de Intel y de AMD nos cuestan dinero a todos los usuarios. Es difícil calcular cuánto, pero nuestras CPUs están consumiendo energía extra y perdiendo performance a causa de las unidades de ejecución innecesariamente complicadas. La industria del software está desperdiciando tiempo y dinero al verse obligada a soportar diferentes extensiones.

Un dato concreto del sobrecosto que implica compatibilizar el software con los distintos conjuntos de instrucciones lo dan las plataformas de virtualización. Tales plataformas contienen hasta un 8 por ciento más de código de programa para soportar las instrucciones incompatibles de virtualización, las cuales ofrecen características prácticamente idénticas. Cada VMM es un 4 por ciento más pesado por culpa de esto. Entonces, ya sea que se utilice Hyper-V, VMware o Xen, se está desperdiciando valioso espacio en RAM. No es algo trágico, claro está, pero es un desperdicio innecesario. Y lo más grave es que estas incompatibilidades impiden que los data centers sean entornos realmente dinámicos, en los que se pueda balancear la carga de máquinas virtuales y trasladar aplicaciones de un servidor a otro al vuelo. Es imposible trasladar máquinas virtuales de servidores Intel a AMD (o viceversa), al igual que pasar de servidores nuevos a modelos más antiguos.

La razón por la que Intel y AMD siguen impulsando sus extensiones incompatibles es por que esperan ganar una ventaja competitiva. Para Agner Fog, tal ventaja es insignificante: ¿Acaso alguien puede haber comprado una plataforma Intel “Nehalem” sólo por que incluye el nuevo conjunto de instrucciones SSE 4.2?

Leave a Comment

Your comment

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.