Según los desarrolladores de FEX-Emu, emular el modelo de funcionamiento de la memoria de un ordenador es mucho más difícil de lo que parece cuando entran en juego las cachés y varios procesadores. Mientras que el modelo Total Store Ordering de x86 ofrece sólidas garantías sobre la visibilidad de las operaciones de memoria, el modelo más débil de ARM permite reordenarlas para mejorar el rendimiento. Aunque los emuladores pueden compensarlo mediante operaciones acquire/release, el coste aumenta; las extensiones LRCPC y el modo TSO compatible con x86 de Apple Silicon reducen esa carga.
Los accesos desalineados incompatibles y las operaciones atómicas agravan los problemas. FEX puede detectar los errores de alineación y añadir barreras al código traducido; las operaciones split-lock, en cambio, pueden volverse cientos o miles de veces más lentas de lo normal al recurrir al kernel y a los controladores de señales. Los núcleos Oryon de Qualcomm y las optimizaciones de Linux de Valve reducen algunos problemas.
En la memoria write-combined escrita por la GPU, faltan equivalentes de ARM; en el peor de los casos, el ancho de banda puede caer 800× y reducir los juegos a menos de 1 FPS. Los sistemas UMA ofrecen mejores resultados. La emulación consiste más en reproducir los supuestos arquitectónicos que en traducir instrucciones.
Por qué es importante
Esta diferencia técnica dificulta mantener al mismo tiempo la compatibilidad y el rendimiento en los emuladores que ejecutan software x86 en hardware basado en ARM. Dado que el problema no se limita a la traducción de las instrucciones del procesador, aspectos como el uso multinúcleo, las operaciones atómicas y el acceso a la memoria de la GPU pueden producir resultados distintos en diferentes tipos de hardware. Por ello, los resultados pasan a depender no solo del procesador y de la arquitectura de memoria utilizados, sino también de las optimizaciones que apliquen el sistema operativo y el emulador; Apple Silicon, Oryon, las optimizaciones de Valve y los diseños UMA demuestran que esta diferencia puede reducirse. La pregunta que sigue abierta es en qué cargas de trabajo serán suficientes estas mejoras y hasta qué punto podrá mantenerse el coste adicional necesario para la compatibilidad.