2012-02-12 70 views
4

我已經研究了一些有關處理器和Tomasulo算法的指令重新排序的內容。CPU指令重新排序的跟蹤

爲了更好地理解這個話題,我想知道是否有任何方式(獲取跟蹤)看到給定程序的實際動態重新排序?

我想給一個輸入程序,看看我的程序的「亂序指令執行軌跡」。

我可以訪問IBM-P7機器和Intel Core2Duo筆記本電腦。也請告訴我,如果有一個簡單的選擇。

回答

0

不幸的是,除非你爲其中一家公司工作,否則答案是否定的。英特爾/ AMD處理器甚至不會安排您給他們的(宏)指令。他們首先將這些指令轉換成微操作,然後安排這些操作。這些微型指令和整個指令重新排序的過程都是一個嚴密保密的祕密,所以他們不完全想讓你知道發生了什麼。

2

您不能訪問在CPU內完成的實際重新排序(沒有公開的方式來啓用跟蹤)。但是有一些重新排序的模擬器,其中一些可以給你有用的提示。

對於現代英特爾CPU(核心2,nehalem,Sandy和Ivy),有英特爾的「Intel(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的基礎上,從實際核心理念:

該模型的基本微架構是英特爾的Pentium 4,AMD K8和Intel酷睿2的設計特點相結合,但結合來自IBM Power4/Power5和Alpha EV8的一些想法。

另外,在arbeit http://es.cs.uni-kl.de/publications/datarsg/Senf11.pdf說,JavaHASE applet能夠仿真不同的簡單的CPU和甚至支持Tomasulo example