64位技術:這裡的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位計算的。目前,在64位處理器方面,Intel和AMD兩大處理器廠商都發布了多個系列多種規格的64位處理器;而在操作系統和應用軟件方面,目前的情況不容樂觀。因為真正適合於個人使用的64位操作系統現在就只有Windows XP X64,而Windows XP X64本身也只是一個過渡性質的64位操作系統,在Windows Vista發布以後就將被淘汰,而且Windows XP X64本身也不太完善,易用性不高,一個明顯的例子就是各種硬件設備的驅動程序很不完善,而且現在64位的應用軟件還基本上沒有,確實硬件廠商和軟件廠商也不願意去為一個過渡性質的操作系統編寫驅動程序和應用軟件。所以要想實現真正的64位計算,恐怕還得等到Windows Vista普及一段時間之後才行。
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系列。
淺談 EM64T技術和AMD64區別X86-64 (AMD64 / EM64T) :
AMD公司設計,可以在同一時間內處理64位的整數運算,並兼容於X86-32架構。其中支持64位邏輯定址,同時提供轉換為32位定址選項;但數據操作指令默認為32位和8位,提供轉換成64位和16位的選項;支持常規用途寄存器,如果是32位運算操作,就要將結果擴展成完整的64位。這樣,指令中有“直接執行”和“轉換執行”的區別,其指令字段是8位或32位,可以避免字段過長。
x86-64(AMD64)的產生也並非空穴來風,x86處理器的32bit尋址空間限制在4GB內存,而IA-64的處理器又不能兼容x86。 AMD充分考慮顧客的需求,加強x86指令集的功能,使這套指令集可同時支持64位的運算模式,因此AMD把它們的結構稱之為x86-64。在技術上 AMD在x86-64架構中為了進行64位運算,AMD為其引入了新增了R8-R15通用寄存器作為原有X86處理器寄存器的擴充,但在而在32位環境下並不完全使用到這些寄存器。原來的寄存器諸如EAX、EBX也由32位擴張至64位。在SSE單元中新加入了8個新寄存器以提供對SSE2的支持。寄存器數量的增加將帶來性能的提升。與此同時,為了同時支持32和64位代碼及寄存器,x86-64架構允許處理器工作在以下兩種模式:Long Mode(長模式)和Legacy Mode(遺傳模式),Long模式又分為兩種子模式(64bit模式和Compatibility mode兼容模式)。該標准已經被引進在AMD服務器處理器中的Opteron處理器。
而今年也推出了支持64位的EM64T技術,再還沒被正式命為EM64T之前是IA32E,這是英特爾64位擴展技術的名字,用來區別X86指令集。Intel的EM64T支持64位sub-mode,和AMD的X86-64技術類似,采用64位的線性平面尋址,加入8個新的通用寄存器(GPRs),還增加8個寄存器支持SSE指令。與AMD相類似,Intel的64位技術將兼容IA32和IA32E,只有在運行64位操作系統下的時候,才將會采用IA32E。IA32E將由2個sub-mode組成:64位sub-mode和32位sub-mode,同AMD64一樣是向下兼容的。 Intel的EM64T將完全兼容AMD的X86-64技術。現在Nocona處理器已經加入了一些64位技術,Intel的Pentium 4E處理器也支持64位技術。
應該說,這兩者都是兼容x86指令集的64位微處理器架構,但EM64T與AMD64還是有一些不一樣的地方,AMD64處理器中的NX位在Intel的處理器中將沒有提供。
相關術語: