主要观点:在计算机增强课程的一些简单机器码中偶然发现了英特尔 Alder Lake 微架构中的性能异常,原本预期简单循环的性能符合预期,但在 Alder Lake 处理器上该循环的性能远超理论最大值,经多种测试和分析,推测可能是 Golden Cove 微架构中重命名阶段自身具备调整立即加法操作以消除依赖的能力,但目前仍缺乏完整的文档描述。
关键信息:
- 简单循环代码
inc rax ; cmp rax, rcx ; jb.loop
,正常情况下预期每个迭代需一个核心时钟周期,多种 x64 微架构实测符合预期。 - Alder Lake 的 i7 - 12700K 处理器运行该循环时,实测性能远超理论值,排除了 boost 时钟等因素的影响。
- 通过事件跟踪 for Windows(ETW)收集的 PMC 计数器数据显示,Alder Lake 核心的指令发出数与周期数的比例异常高,似乎能在每个核心时钟周期处理两个循环迭代。
- 推测 Golden Cove 微架构中重命名阶段可能具备特殊能力以改变立即加法操作,从而缩短依赖链,但仍存在不确定性。
重要细节: - 循环代码的执行过程及各指令的作用,如
inc rax
增加变量,cmp rax, rcx
比较变量与迭代计数等。 - 不同处理器的规格参数,如 Alder Lake 的 P 核和 E 核的基频和最大 boost 时钟等。
- 各种测试方法和所使用的工具,如
rdtsc
读取芯片级时间戳计数器、ETW 收集 PMC 计数器等。 - 对不同处理器上循环性能测试结果的详细对比和分析,包括周期数、指令数等数据的差异。
- 对可能的解释机制的探讨,如硬件设计层面的各种假设和软件层面的猜测等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。