Top-Down 微架构分析应用
更新时间:2026-10-01。配合 CPI/roofline/topdown 建模,本文讲用 perf 实操这套分类。
一、四个一级槽位
- Retiring:槽位用在最终退休的有用指令(高=好;若含微码/过度指令也需看)。
- Frontend Bound:前端没及时供指令(i-cache miss、分支误判供给)。
- Bad Speculation:槽位浪费在错误路径/冲刷。
- Backend Bound:有指令但后端执行/内存供不上(核心/缓存/内存)。
二、下钻流程

先定位主导象限再逐层细化,避免在非瓶颈处优化。可用 perf 的 metric 事件组(不同 uarch 事件不同)或厂商工具(VTune)计算。
三、常见坑
- 直接跳进指令级,缺少层级方向。
- 事件组不可同时精确测量时 multiplexing。
- 把高 Retiring 都当健康(可能有指令浪费)。
小结
Top-Down 用四象限把停顿结构化、层层下钻到根因,是系统化替代“拍脑袋”的方法论。下一篇 IPC 低系统排查流程。
总结
Top-Down 把流水线槽位在第一层分成四类:Retiring(有用退休,高一般好但要警惕微码/冗余指令)、Frontend Bound(前端供不上指令,i-cache miss/分支供给)、Bad Speculation(浪费在错误路径和冲刷)、Backend Bound(有指令但执行/内存供不上);先看一级四象限占比、确定主导象限后再逐层下钻到具体的分支/取指/内存/执行根因,就能用结构化分类替代拍脑袋、避免在非瓶颈处优化;可用 perf metric 事件组(随 uarch 而不同)或 VTune 计算,注意事件不能同时精确测量时的多路复用。