我研究了一些关于处理器和Tomasulo算法的指令重新排序的事情。
为了更多地理解这个主题,我想知道是否有任何方法(获取跟踪)看到为给定程序完成的实际动态重新排序?
我想提供一个输入程序,并查看我的程序的“乱序指令执行跟踪”。
我可以访问IBM-P7计算机和Intel Core2Duo笔记本电脑。如果有一个简单的替代方案,请告诉我。
答案 0 :(得分:2)
您无权访问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模拟现代超标量无序x86-64兼容处理器内核的可配置级别的详细信息......直至所有关键流水线结构的RTL级模型。此外,所有微码,完整的高速缓存层次结构,存储器子系统和支持硬件设备都以真实的周期精度建模。
但PTLsim模拟了一些“PTL”CPU,而不是真正的AMD或Intel CPU。好消息是,根据真实核心的想法,此PTL为Out-Of-Order:
该模型的基本微体系结构是英特尔奔腾4,AMD K8和英特尔酷睿2的设计功能的组合,但结合了IBM Power4 / Power5和Alpha EV8的一些想法。
另外,在arbeit中http://es.cs.uni-kl.de/publications/datarsg/Senf11.pdf表示JavaHASE applet能够模拟不同的简单CPU,甚至支持Tomasulo example。
答案 1 :(得分:0)
不幸的是,除非你为其中一家公司工作,否则答案是否定的。 Intel / AMD处理器甚至没有安排您给出的(宏)指令。他们首先将这些指令转换为微操作,然后安排它们。这些微指令是什么以及指令重新排序的整个过程是一个严密保密的秘密,所以他们并不想让你知道发生了什么。