V-Tune
自顶向下的微架构分析
通常我们会先执行系统优化,然后是应用程序级算法优化,再然后是体系结构和微架构优化。 此过程也被称为“自顶向下”。
摘自
- 链接数据结构通常在软件中使用,但这却会导致间接寻址,并且使得硬件预取器(hardware prefetchers)失效。 在许多情况中,当数据被检索并且没有其它指令可执行时,这种行为会在流水线流水线中创建等待状态 (bubbles of idleness)。
- 自顶向下的特性描述是一个基于事件的度量,它可以识别应用程序中的主要性能瓶颈。 它的目的是显示CPU的流水线在运行应用程序时的平均利用率。
- 现代高性能CPU的流水线:
- 前端负责获取以体系结构指令表示的程序代码,并将其解码为一个或多个低级硬件操作 ,这被称为micro-ops(uOps).
- 然后在一个名为分配(allocation)的过程中,uOps被输送到后端。
- 在分配之后,后端负责监控uOp的操作数(data operand)何时可用,并在可用的执行单元中执行uOp。
- 当uOp的执行完成后,我们把它称作执行完成(retirement),并且 uOp的结果会被提交到体系结构状态(CPU寄存器或写回内存)。
- 通常情况下,大多数uOps会完全通过流水线并退出,但有时投机获取的uOps可能会在退出前被取消——比如错误预测的分支。
IPM
