
Assembly Hall of Shame:一场把 CPU 指令跑到 1980 亿周期的竞赛
安全研究员 Christopher Domas 的新项目反其道而行之:不追求指令跑得多快,而是把单条 x86 指令拖到 1980 亿个时钟周期——相当于一条指令跑 62 秒。项目开源仅两天已收获 500+ star。
原文来源:GitHub - Assembly Hall of Shame — 安全研究员 Christopher Domas 发起的一场"CPU 性能垫底竞赛":比谁能让单条 x86 指令跑得最慢,冠军耗时 62 秒。
CPU 性能研究通常只有一个方向:让代码跑得更快。指令延迟分析、微架构优化、乱序执行调度……所有努力都在朝"更快"使劲。但安全研究员 Christopher Domas(GitHub 账号 xoreaxeaxeax)在 8 月 6 日发布了一个完全反着来的项目——Assembly Hall of Shame(汇编耻辱堂),目标是寻找单条指令的绝对性能下限,比谁能让一条指令跑得最慢。
这个项目的灵感来源不难猜到。Domas 是硬件安全领域的名人,之前的项目包括 Sandsifter(自动挖掘 x86 隐藏指令)、rosenbridge(x86 CPU 硬件后门 PoC)和 MESI 攻击研究。他惯常的研究方式就是"把 CPU 手册之外的行为挖出来",这次的方向是:既然大家都在研究指令的最快路径,那最慢路径是什么?
竞赛规则
比赛规则写得相当严谨:
- 可以用任何必要的准备指令,但只有一条指令参与计分
- 被 trap/模拟/虚拟化的指令只计 trap 本身的耗时,不算 handler 的时间
- 指令必须不可中断,
rep movs、pause这类会被取消资格的 - 耗时按 CPU 基础时钟频率归一化
- 所有平台必须保持出厂默认配置,不允许任何硬件改装
—— 广告 ——
排行榜:从 1 周期到 1980 亿周期
排行榜从最慢到最快(或者说从最"耻辱"到最正常)排列,本身就是一堂生动的 CPU 微架构课。
第 27 名(最慢基线):nop。 一个什么都不做的指令,1 个周期。这是竞赛的"入场券"。
第 26 名:nop16。 普通的 nop 太短了,怎么让"什么都不做"变得更慢?答案是来一个"长长长 nop"——一串 data16 前缀加一个 nopl。20 个周期,7 纳秒。
第 25 名:rdtsc。 读取时间戳计数器的参考指令,49 个周期,18 纳秒。作者用它来校准基准。
第 24 名:idiv(128 位除法)。 用 128 位被除数(rdx:rax = 2:0)配一个小除数,把商推到符号扩展允许的上限之上,逼除法器的微码走最长路径。77 个周期。
从这里开始,玩法升级了。真正让指令慢下来的秘诀,是把指令从正常内存转移到 MMIO(内存映射 I/O)区域——也就是 PCIe 设备、GPU 寄存器这些外设的地址空间。CPU 访问这些区域要跨过 PCIe 根复杂(root complex)和端点设备,等待它们的响应,速度比访问 DRAM 慢几个数量级。
第 2 名:fxrstor64(baseline)。 用 mmiotic 工具在 PCIe fabric 里定位高延迟的"死区",然后让 fxrstor64 从 MMIO 地址加载 512 字节的 FPU/MMX/XMM 状态——CPU 被迫通过最慢的内存孔径处理 512 字节的 I/O 事务。成绩:745 亿周期,23.35 秒。
冠军:lock_hammer_fxrstor64。 在 baseline 的基础上再进一步:加载进行时用一队"锤子核心"持续对另一个高延迟 MMIO 寄存器做紧凑的 4 字节读取,把 PCIe 根复杂和端点设备用非 posted 事务灌满,让 CPU 0 的 512 字节 fxrstor64 排在所有这些竞争流量后面排队。
成绩是 1980 亿周期,62 秒——一条指令,跑了整整一分钟。
这个项目有什么用
表面上看这像个技术恶搞,但"让指令变慢"在安全研究里是实打实的攻击面。项目 README 里就提到了实际应用:一个违反规范的未对齐 ymm0 加载(从停滞的 GPU 寄存器强制非 posted dword 事务)被用来打破 System Management Mode 的根本设计——SMM 是 x86 上权限最高的执行模式,能破坏它的手段都是重大安全发现。
Domas 的思路是:性能下限就是攻击者的工具箱。让一条指令慢 10 亿倍,本质是在时间维度上制造一个可利用的异常窗口——比如让某个安全关键路径上的指令长时间悬挂,配合其他侧信道手段,就可能从中提取秘密。之前研究"隐藏指令"是为了发现 CPU 手册没写的功能,这次研究"最慢路径"是为了理解 CPU 在极端条件下的行为边界。
值得一看的理由
对普通开发者来说,这个项目的价值首先是知识性的:它把 x86 微架构的很多冷知识以一种极其直观的方式呈现出来。看完排行榜,你会对"为什么访问 MMIO 这么慢""PCIe 事务的 posted/non-posted 区别""FXSAVE/FXRSTOR 状态管理"这些概念有非常具体的认知——比读十篇架构文档都记得牢。
其次是娱乐性:CPU 竞赛排行榜、冠军 62 秒的纪录、等待挑战的 AMX xrstor64(作者预计能到 1 万亿周期,因为 xsave 状态区是 8KB,比 512 字节大 16 倍),这些内容本身就很有梗。
项目采用 MIT 协议,x86 排行榜已经相当完整,ARM 和 RISC-V 排行榜还空着等高手挑战。如果你想自己跑一下看看手里的 CPU 有多"慢",仓库里有完整的 Makefile 和每个指令的实现。喜欢底层硬件、汇编或者安全研究的朋友,这个项目值得 star 一个。
© 2026 四月
原文链接:https://www.aprilzz.com/tools/asm-hall-of-shame-cpu
相关文章
qm:Y Combinator 开源的团队级多智能体工作平台
YC 把内部每天在用的多智能体系统 QM 开源了:每个员工有独立工作区、共享记忆和文件、Slack 与 Web 双端、可插拔多种 Agent 引擎,MIT 协议直接部署
WASTE:2.78 万亿参数的 Kimi K3,在 64GB 内存的消费级笔记本上跑起来了
WASTE 是一个零依赖的 C 语言推理引擎:把 MoE 模型按需从 NVMe 流式加载专家权重,29GB 内存就能跑完整的 2.78T 参数 Kimi K3,速度 0.5 tok/s——第一个在消费级硬件上跑通万亿级模型的公开方案
Cloudflare 发布 Kitesurf:跑在 Workers 上的 Agent 专用浏览器,内存比 Chromium 省 7 倍
Cloudflare 用 12 周造出了一个完全跑在 Workers 上的浏览器 Kitesurf,专为 AI Agent 设计:截图内存占用只有 Chromium 的 1/5,CPU 节省 3-7 倍。没有标签页、没有主题、没有扩展——AI 根本不需要这些。