跟踪CPU指令重新排序

我研究了一些关于处理器和Tomasulo算法的指令重新排序的事情.

为了更好地理解这个主题,我想知道是否有任何方法(获取跟踪)看到为给定程序完成的实际动态重新排序?

我想提供一个输入程序,并查看我的程序的“乱序指令执行跟踪”.

我可以访问IBM-P7机器和Intel Core2Duo笔记本电脑.如果有一个简单的替代方案,请告诉我.

最佳答案 您无权访问CPU内部的实际重新排序(没有公开的已知方式来启用跟踪).但是有一些重新排序的模拟器,其中一些可以给你有用的提示.

对于现代英特尔CPU(核心2,nehalem,Sandy和Ivy),英特尔提供“英特尔(R)架构代码分析器”(IACA).它的主页是http://software.intel.com/en-us/articles/intel-architecture-code-analyzer/

此工具允许您查看代码的某些线性片段将如何分割为微操作以及如何将它们计划为执行端口.这个工具有一些限制,它只是CPU u-op重新排序和执行的不精确模型.

还有一些用于模拟x86 / x86_84 CPU内部的“外部”工具,我可以推荐PTLsim(或派生的MARSSx86):

PTLsim models a modern superscalar out of order x86-64 compatible processor core at a configurable level of detail ranging … down to RTL level models of all key pipeline structures. In addition, all microcode, the complete cache hierarchy, memory subsystem and supporting hardware devices are modeled with true cycle accuracy.

但是PTLsim模拟了一些“PTL”CPU,而不是真正的AMD或Intel CPU.好消息是这个PTL是Out-Of-Order,基于真实核心的想法:

The basic microarchitecture of this model is a combination of design features from the Intel Pentium 4, AMD K8 and Intel Core 2, but incorporates some ideas from IBM Power4/Power5 and Alpha EV8.

此外,在arbeit http://es.cs.uni-kl.de/publications/datarsg/Senf11.pdf中,据说JavaHASE applet能够模拟不同的简单CPU,甚至支持Tomasulo example.

点赞