天天看點

【轉載】x86和x64

x86是對基于intel處理器的系統的标準縮寫。x與處理器沒有任何關系,它是一個對所有*86系統的簡單的通配符定義,是一個 intel通用計算機系列的編号,也辨別一套 通用的計算機指令集合,由于早期intel的cpu編号都是如8086,80286來編号,由于這整個系列的cpu都是指令相容的,是以都用x86來辨別所使用的指令集合如今的奔騰、p2、p4、賽揚系列都是支援x86指令系統的,是以都屬于x86家族。 

64位技術是相對于32位而言的,這個位數指的是cpu gprs(general-purpose registers,通用寄存器) 的資料寬度為64位,64位指令集就是運作64位資料的指令,也就是說處理器一次可以運作64bit資料。64bit處理器并非現在才有的,在高端的risc(reduced instruction set computing,精簡指令集計算機)很早就有64bit處理器了,比如sun公司的ultrasparc Ⅲ、ibm公司的power5、hp公司的alpha等。  

64bit 計算主要有 兩大優點 :可以進行更大範圍的整數運算;可以支援更大的記憶體。不能因為數字上的變化,而簡單的認為64bit處理器的性能是32bit處理器性能的兩倍。實際上在32bit應用下,32bit處理器的性能甚至會更強,即使是64bit處理器,目前情況下也是在32bit應用下性能更強。是以要認清64bit處理器的優勢,但不可迷信64bit。  

要實作真正意義上的64位計算,光有64位的處理器是不行的,還必須得有64位的作業系統以及64位的應用軟體才行,三者缺一不可,缺少其中任何一種要素都是無法實作64位計算的。 

主流cpu使用的64位技術主要有amd公司的 amd64位技術 、intel公司的 em64t技術 、和intel公司的 ia-64技術 。其中ia-64是intel獨立開發,不相容現在的傳統的32位計算機,僅用于itanium(安騰)以及後續産品itanium 2,一般使用者不會涉及到,是以這裡僅對amd64位技術和intel的em64t技術做一下簡單介紹。  

amd64位技術   

amd64的位技術是 在原始32位x86指令集的基礎上加入了x86-64擴充64位x86指令集 ,使這款晶片在硬體上相容原來的32位x86軟體,并同時支援x86-64的擴充64位計算,使得這款晶片成為真正的64位x86晶片。這是一個真正的64位的标準,x86-64具有64位的尋址能力。  

x86-64新增的幾組cpu寄存器将提供更快的執行效率。寄存器是cpu内部用來建立和儲存cpu運算結果和其它運算結果的地方。 标準的32-bit x86架構包括 8個通用寄存器 (gpr), amd在x86-64 中又增加了8組(r8-r9), 将寄存器的數目提高到了16組 。x86-64寄存器預設位64-bit。 還增加了8組128-bit xmm寄存器 (也叫sse寄存器,xmm8-xmm15),将能給 單指令多資料流技術(simd) 運算提供更多的空間,這些128位的寄存器将提供在矢量和标量計算模式下進行128位雙精度處理,為3d模組化、矢量分析和虛拟現實的實作提供了硬體基礎。通過提供了更多的寄存器,按照x86-64标準生産的cpu可以更有效的處理資料,可以在一個時鐘周期中傳輸更多的資訊。  

em64t技術   

intel官方是給em64t這樣定義的: em64t全稱extended memory 64 technology , 即擴充64bit記憶體技術 。 em64t是intel ia-32架構的擴充 ,即ia-32e(intel architectur-32 extension)。ia-32處理器通過附加em64t技術,便可在相容ia-32軟體的情況下,允許軟體利用更多的記憶體位址空間,并且允許軟體進行32 bit線性位址寫入。em64t特别強調的是對32 bit和64 bit的相容性。 intel為新核心增加了8個64 bit gprs(r8-r15) ,并且 把原有grps全部擴充為64 bit ,如前文所述這樣可以提高整數運算能力。 增加8個128bit sse寄存器 (xmm8-xmm15),是為了增強多媒體性能,包括對sse、sse2和sse3的支援。  

intel為支援em64t技術的處理器設計了 兩大模式 : 傳統ia-32模式 (legacy ia-32 mode)和 ia-32e擴充模式 (ia-32e mode)。在支援em64t技術的處理器内有一個稱之為 擴充功能激活寄存器 (extended feature enable register,ia32_efer)的部件,其中的 bit10控制着em64t是否激活 。bit10被稱作ia-32e模式有效 (ia-32e mode active)或 長模式有效(long mode active,lma) 。當lma=0時,處理器便作為一顆标準的32 bit(ia32)處理器運作在傳統ia-32模式;當lma=1時,em64t便被激活,處理器會運作在ia-32e擴充模式下。  

目前amd方面支援64位技術的cpu有athlon 64系列、athlon fx系列和opteron系列。intel方面支援64位技術的cpu有使用nocona核心的xeon系列、使用prescott 2m核心的pentium 4 6系列和使用prescott 2m核心的p4 ee系列。