El 'Salón de la Vergüenza' del ensamblador: instrucciones x86 exprimidas hasta su peor latencia

Fuentes: GitHub - xoreaxeaxeax/asm-hall-of-shame: Racing to the bottom of CPU performance

El repositorio 'asm-hall-of-shame', del usuario de GitHub xoreaxeaxeax, recopila técnicas para forzar la peor latencia posible de instrucciones individuales en procesadores x86. A diferencia del análisis habitual de latencias, orientado a optimizar el rendimiento, este proyecto documenta configuraciones —incluido hardware sin modificar y en configuración de fábrica— que empujan a la CPU a recorrer los caminos más lentos de su microcódigo o de su fabric de E/S. La clasificación incluye desde el nop (1 ciclo, 0 nanosegundos en un Intel Core i7-8559U) hasta el caso estrella: fxrstor64 cargando 512 bytes de estado FPU/MMX/XMM desde una región MMIO de alta latencia en el fabric PCIe mientras otros núcleos saturan el root complex con lecturas de 4 bytes, lo que obliga a la instrucción a ponerse en cola. El resultado son 198.002.498.236 ciclos, unos 62 segundos, en un AMD Ryzen 7 5800H. Entre los puestos destacados figuran idiv con dividendos de 128 bits (77 ciclos), cpuid con la hoja de mayor latencia detectada mediante la herramienta 'rakefield' (1.248 ciclos), rdrand agotando la entropía del procesador (5.579 ciclos), wrmsr sobre el registro MCG_CTL de Zen (34.304 ciclos) y operaciones de E/S como out contra un puerto que cruza el límite de registros de una NIC (49.857 ciclos). Las reglas prohíben instrucciones interrumpibles, emulación por traps o modificaciones de hardware, y los tiempos se normalizan por la frecuencia base de la CPU. El repositorio funciona como una guía divulgativa y experimental de los rincones menos conocidos del comportamiento de los procesadores modernos.