17173 > 游戏资讯 > 科技新闻 > 正文

最慢 x86 指令“耻辱榜”:fxrstor64 单次执行 62 秒创纪录,相当于 1980 亿个 CPU 周期

2026-08-08 20:01:12 神评论
17173 新闻导语

x86最慢指令榜揭晓!fxrstor64执行一次耗时62秒,相当于1980亿CPU周期,硬件专家揭秘如何创造极限延迟,点击查看完整榜单与实验细节。

8 月 8 日消息,硬件研究人员 Christopher Domas 昨天在 GitHub 上发起了一项名为“CPU Deoptimization(反优化)”的实验项目。

与传统 CPU 优化方向不同,该项目目标不是让指令运行更快,而是寻找执行延迟最高的单条机器指令。

目前该项目公布的 x86 架构最慢指令记录为 fxrstor64,执行一次耗时约 62 秒,相当于 1980 亿个 CPU 周期。

在软件和硬件优化领域,指令延迟分析通常用于研究低级指令执行时间,以改进处理器架构或优化应用程序性能。而 Domas 创建的“CPU 反优化排行榜”则反其道而行之,通过构造特殊运行环境,寻找能够让处理器停顿时间最长的 x86 指令。

目前排名第一的是 fxrstor64 指令。该指令用于恢复 SIMD(单指令多数据)计算相关寄存器状态,需要从 512 字节内存区域加载数据。

为了创造最高延迟记录,Domas 首先使用自己开发的 mmiotic 工具,在处理器内部 PCIe 互连结构中寻找高延迟区域,然后强制 CPU 通过内存映射 I/O(MMIO)读取 512 字节状态数据,使这一过程尽可能缓慢。该步骤耗时约 740 亿个 CPU 周期,即超过 23 秒。

注:MMIO(Memory-Mapped I/O,内存映射输入输出)是一种让 CPU 通过访问内存地址方式与硬件设备通信的机制,常用于读取设备寄存器数据。

随后,Domas 进一步增加延迟,通过“在加载操作进行期间耗尽互连资源”的方式,让处理器等待更多时间。他利用另一组高延迟 MMIO 寄存器执行连续 4 字节读取操作,持续占用 CPU 的 PCIe 根复合体资源,使 fxrstor64 的状态恢复操作排队等待。

在进一步实验中,Domas 计划利用英特尔 Sapphire Rapids 处理器支持的 AMX 指令测试 xrstore64 指令。由于 AMX 状态数据区域从 512 字节扩大至 8KB,理论上可能让单条指令执行时间超过 1 万亿个 CPU 周期。

目前,x86 架构的“最慢指令排行榜”已经公开在 GitHub 上。Domas 表示,未来还计划建立 ARM 和 RISC-V 架构对应排行榜。

该项目对测试过程设置了一些限制。测试平台可以自由选择,但评分只计算单条指令自身执行时间;可被中断的指令不能参与排名,处理程序中运行的模拟指令也不计入结果。所有测试时间均根据 CPU 基础频率进行标准化,并且测试平台未进行硬件改装。

此次实验并非 Domas 首次进行低级硬件和指令相关研究。他此前还开发过名为 movfuscator 的项目,这是一个只使用 mov(数据移动)指令生成 C 程序代码的编译器。

除了寻找最慢指令外,Domas 开发的 mmiotic 工具还可用于分析 MMIO 访问延迟。该工具通过测量不同物理地址访问时间,可以帮助研究人员分析硬件拓扑结构、发现设备寄存器、识别虚拟化环境,并观察硬件设备活动状态。

附 GitHub 地址:https://github.com/xoreaxeaxeax/mmiotic

【来源:IT之家】
关于x86指令,fxrstor64,MMIO,CPU周期,CPU反优化排行榜,Sapphire Rapids,AMX,ARM,RISC-V,mmiotic的新闻