CPU 微架构逆向方法学

CPU 微架构逆向方法学

💡 原文中文,约3600字,阅读约需9分钟。
📝

内容提要

CPU微架构逆向方法学包括两部分:通过已知设计推导参数和在不确定设计时排除可能性。使用Microbenchmark测试微架构性能,识别瓶颈并逆向设计参数。设计时需考虑微架构部件、参数、指标及程序构造,常用方法包括测试容量和队列深度,需关注汇编构造和链接器行为。已有许多现成的Microbenchmark可供参考。

🎯

关键要点

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

继续阅读