2010-09-27 75 views
0

我注意到許多英特爾32位程序都有一個i386目標,但其中一些具有i486,i586i686作爲其構建體系結構。在後三種處理器架構中是否有任何新功能或指令添加到指令集中?針對IA-32的體系結構

回答

2

它們改變了大量關於體系結構的內容,並且一直添加新的指令(和集合)。如果您想要獲得最新的尖端性能,您需要針對您的架構的特定變體進行編譯。請參閱2.1INTEL®64和IA-32體系結構的簡要記錄Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture

在我的腦海裏,MMX,3DNOW,SSE *,x87 FPU,RDTSC等其他一些東西都不在原始型號IIRC中。實際上,我[3,4,5,6] 86完全不像我們今天所擁有的那樣...即使在新的處理器型號中,他們也添加了諸如AES-NI和更新的SSE迭代等。

維基百科的網頁也說了一些變化,例如在P6它說他們添加了CMOV。

+0

好的,這是否意味着,如果我編譯'i686',編寫C語言,例如,它會和編譯'i386'一樣工作,但是會利用這些新特性?意志,例如'gcc'優化代碼以在選擇'i686'時使用這些功能,或者是否需要手動編寫代碼才能充分利用? – 2010-09-27 00:30:15

+0

檢查'gcc(1)'的「Intel 386和AMD x86-64選項」部分。具體來說,「native」旁邊的段落。有兩個選項'-mtune'和'-march',前者將針對諸如'i386'的特定模型進行優化,而後者更具侵略性,並將利用您特定CPU類型的功能(或異常)因此可能無法在其他x86 CPU上運行。 – 2010-09-27 00:56:32