EM64T(EM64T技術)

EM64T

EM64T技術一般指本詞條

Intel的EM64T技術,EM64T技術官方全名是Extended Memory 64 Technology,中文解釋就是擴展64bit記憶體技術。現在的32位奔騰 4 CPU都是採用IA-32指令集,EM64T其實就是在這個指令集的基礎上進行擴展,我們將它命名為IA32e。Intel這種實現64位的方法其實和AMD的x86-64技術有異曲同工之妙,都是通過64位擴展指令來實現兼容32位和64位的運算。另外不同的是Intel的EM64T技術設定了IA-32和IA-32e兩種模式的激活程式,就是說EM64T需要滿足特定條件才會激活。

基本介紹

  • 中文名:擴展64bit記憶體技術
  • 外文名:Extended Memory64 Technology
  • 模式:傳統模式
  • 藉助:EM64T可實現高達1TB
擴展技術,傳統模式,兼容模式,64位,整數運算,

擴展技術

EM64T本質上和AMD64一樣都是IA-32的增強版本,Xeon藉助於EM64T可實現高達1TB(40bit)的物理記憶體定址和256TB(48bit)的虛擬記憶體定址,並且良好地支持現有32位x86代碼的執行,這一點跟AMD64無異,同時也是Intel開發EM64T的出發點—讓現有的x86指令集能夠執行64位代碼,而繼續保持對32位代碼的良好兼容。但由於多方面的限制,無論是EM64T還是AMD64均只能實現比32位指令集更大記憶體空間的定址,而無法真正做到純64位指令集的1PB(50bit)和16EB(64bit)的物理記憶體和虛擬記憶體定址(IA-64就能做到這一點),其關鍵在於EM64T和AMD64本質上仍是基於32位的x86指令集,只是Intel和AMD分別採用不同的技術手段對x86指令集進行擴展,從而實現對64位的支持。
Intel XeonIntel Xeon
和AMD64一樣,EM64T由於要在同時運行32位和64位程式,因此會針對不同的需要運行於不同的操作模式,同時其引入的多種操作模式之間的切換較為成功地解決了32位程式在64位作業系統下的運行效率問題,當中包括了傳統模式、兼容模式和純64位模式。

傳統模式

這種模式是為了令64位Xeon能沒有障礙地執行現有的32位和16位程式而設計的,實際上就是32位x86時代的IA-32模式,此時現有x86程式無需作任何的改變,和我們目前使用著的32位環境一模一樣。因為Nacona Xeon的核心仍然是沿著32位設計的,所以這個模式只是把所有為64位計算而新增的運算機制都禁止起來。

兼容模式

兼容模式允許64位作業系統(如Windows XP x64 Edition)良好地運行基於32位和16位代碼的程式,此時32位程式無需重編譯即可以保護模式運行,而16位程式則要依賴於作業系統和驅動程式是否支持保護模式,情況類似於32位環境下的IA-32虛擬實模式。和傳統模式相同,兼容模式允許程式利用物理記憶體擴展實現64GB的物理記憶體定址,但這並非純64位模式的準64位定址。

64位

此模式是三種模式當中最為高效的,同時可充分發揮EM64T的威力,但這種模式需要純64位環境的支持,包括64位作業系統和64位應用程式。在64位作業系統和相應驅動程式的支持下,系統和應用程式能夠訪問EM64T所支持最大容量的擴展記憶體,這時Xeon平台的性能可得到最充分的發揮,當然運行於此模式下的程式需要修改其微代碼以便支持64位指令操作。
可以預見,在未來的一段時間裡,在64位作業系統下我們最常用的是兼容模式,因為現存的大量32位應用程式不可能在短期內為x86-64指令集而重新開發,為了保證現有的32位程式能夠繼續在Xeon平台上順利執行,EM64T提供了一種出色的解決方案。而對於傳統的32位作業系統和應用程式,Xeon平台當然可以百分百地相容運行,本來EM64T就是擴展的32位x86指令集,兼容32位程式是件很自然的事。
EM64T在64位的實現方式上跟AMD64指令集有很多相似之處,但在關鍵的地方兩者還是有很大差別,而Intel追加的大多數64位指令與AMD64指令集相兼容,因此Microsoft就不用為兩家公司的64位處理器開發各自的64位作業系統。目前Microsoft推出的Windows XP x64 Edition作業系統(Beta)可同時支持EM64T和AMD64,能夠兼容幾乎所有的32位應用程式和大部分新增64位應用程式。

整數運算

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處理器。
AMD OpteronAMD 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的處理器中將沒有提供。

相關詞條

熱門詞條

聯絡我們