💡
原文中文,约3600字,阅读约需9分钟。
📝
内容提要
CPU微架构逆向方法学包括两部分:通过已知设计推导参数和在不确定设计时排除可能性。使用Microbenchmark测试微架构性能,识别瓶颈并逆向设计参数。设计时需考虑微架构部件、参数、指标及程序构造,常用方法包括测试容量和队列深度,需关注汇编构造和链接器行为。已有许多现成的Microbenchmark可供参考。
🎯
关键要点
- CPU微架构逆向方法学包括两部分:已知设计推导参数和不确定设计时排除可能性。
- Microbenchmark用于测试微架构性能,识别瓶颈并逆向设计参数。
- 设计时需考虑微架构部件、参数、指标及程序构造,常用方法包括测试容量和队列深度。
- 已有大量成熟的Microbenchmark可供参考,针对常见微架构设计实现逆向。
- Microbenchmark的核心思路是通过构造程序使某个微架构部件成为瓶颈,扫描设计参数。
- 测试L1 DCache容量的例子说明了如何通过访问不同大小的数组来逆向设计参数。
- Microbenchmark设计要素包括微架构部件、设计参数、瓶颈指标、程序构造等。
- 常用的瓶颈反映指标有时间和性能计数器,时间测量简单但受频率波动影响。
- 性能计数器使用较为复杂,但能提供更精确的微架构逆向信息。
- 构造瓶颈的常见套路包括测试容量、队列深度、组相连结构等。
- 建议使用汇编语言构造测例,避免C/C++编译器带来的不期望行为。
- 现成的Microbenchmark和相关文档可供参考,帮助逆向微架构部件。
➡️