CPU微架构分析方法论Top_Down

科技   2024-08-28 12:00   江苏  

导言

top_down研究微架构的方法是一种基于计算流水线资源的框架,将微架构的细节抽象出来,以相对宏观的方式去研究底层硬件执行时的瓶颈,有利于软件人员优化数据结构和算法,对于硬件设计人员而言方便模块化的定位微架构的设计瓶颈。这一思想最先由intel在2014年A Top-Down method for performance analysis and counters architecture论文提出,至今仍然是分析CPU微架构重要的分析方法论

基本介绍

相比较于基于计算CPU时钟周期的传统框架,top_down基于计算流水线的资源,初始研究层次更加上层。以下图的简化CPU微架构为例,流水线的概念上分为前端和后端,前端负责获得架构规定的指令,后端主要负责提交指令以及执行指令,当执行完成时,结果会被写入寄存器或者写回内存。

微架构简图

inteltop_down的介绍中将流水线的执行抽象出流水线“槽”的概念,例如前端每个周期可以分配6个uOP,后端每个周期可以执行6个uOp,流水线槽表示处理一个uOp所需的硬件的资源,在每个周期有6个流水线槽可用。然后通过硬件设计的PMU(性能监控单元)的事件来衡量这些流水线槽的利用率。

top_down分类

每个流水线槽可以简化为4类,退休,预测错误,后端停滞,前端停滞,每个周期流水线槽要么空,要么存在有效的uOp或有效的执行,如果空(停滞),就对流水线槽进行分类,是前端还是后端?通过PMU的事件来具体计算来分类。当然当前的CPU研究分类会更加细化,例如intel提供的VTune™ 分析器,如下图所示。

intel分析器

当确定是某个类别造成流水线停滞后,可以定位到大的模块(例如前端),然后再进行分析,例如是L1Cache MISSTLB MISS?预测方向错误?预测目标错误?等等来继续查找分析设计瓶颈所在。当然可以继续向下分类,例如预测目标错误,是预测目标本身的错误?还是BTB MISS导致,具体预测错误的指令类型?最终分类到非常小的模块,当然这是对于硬件分析而言,对于给软件参考的分类不会到硬件底层,仅在相对的抽象层面。现代的top_down分析器非常的具体和细化,除了是谁导致的,还具体给出导致了多少惩罚。

6类的s1 top_down

上图是top_down研究方法中,在第一级的分类就将BTB抽象出来,因为这里它想研究的重点在BTB,分类不是固化的,但对面向软件的top_down分类一般都是软件较为感知的抽象层,例如错误预测即可。实际另外分出来的也是前端分出的类别。

ARM Top_down

ARM也采用top_down的分析方法论,其具备比较完善的PMUARMtop_down分析方法分为两个步骤:1、Topdown analysis 2、Microarchitecture exploration即先分析瓶颈,然后根据资源利用指标更细化探索微架构。

第一步的核心和intel的分类一致,即retiringbad_speculationfrontend_boundbackend _bound,通过执行带宽率进行分类。

arm top_down s1

如上图展示,直接分支因为预测错误而导致的stall占比最大。各种应用场景的瓶颈点分类到4个类别。

arm top_down s2

第二步如上图,将第一步的四个类别更细化分为其它原因,例如前端的ITLB效率,分支效率等。

总结

INTEL ARM这些大厂的核心都是第一步仅分四个类别,然后继续细分,通过PMU提取计算更细化的微架构瓶颈。当然很多学术的研究第一步也可能分为更多类别,将核心重点放在要研究的部分,例如前文所述对BTB的研究,然后再细分。这些分类的分析方法论都是一致的,只是根据场景的不同,做了不同的优化。感兴趣的朋友可以了解intelarmtop_down性能分析器。

参考

1、https://andrewei1316.github.io/2020/12/20/top-down-performance-analysis/

2、https://www.intel.com/content/www/us/en/docs/vtune-profiler/user-guide/2023-0/general-exploration-analysis.html

3、https://www.intel.cn/content/www/cn/zh/docs/vtune-profiler/cookbook/2023-0/top-down-microarchitecture-analysis-method.html

4、https://developer.arm.com/documentation/109542/0100/Arm-Topdown-methodology/Stage-1--Topdown-analysis

5、https://ieeexplore.ieee.org/document/6844459

6、A. Yasin, "A Top-Down method for performance analysis and counters architecture," 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), Monterey, CA, USA, 2014, pp. 35-44, doi: 10.1109/ISPASS.2014.6844459.


本文内容仅代表作者观点,不代表平台观点。

如有任何异议,欢迎联系我们。

如有侵权,请联系删除。


往期精彩回顾





2021年的第一场雪!英特尔2020年Q4财报解读



利用硬件辅助验证工具加速功能仿真


博文:裸片尺寸和光罩难题——光刻扫描仪吞吐量的成本模型


博文速递:Race condition in digital circuits


IP与SoC设计
《IP 与SoC》依托无锡国家“芯火”平台,全面报道全球IP与SoC设计技术的发展和国内外应用经验,为中国IC设计行业搭建一个IP与SoC资讯交流、产业促进的平台,为中国IC设计行业提供IP与SoC专业知识及相关信息支持和服务。
 最新文章