64bit CPU 知識 (IA32,IA64,EM64T,AMD64)

aaqwsh發表於2011-09-18
64bit CPU 知識 (IA32,IA64,EM64T,AMD64)
2009-06-09 12:46
因為下載Oracle軟體的時候,Linux版本的Oracle軟體相對不同位數的CPU,有不同的版本,特意總結一下64bit的CPU小知識,來源於網路。

64位處理器是指可以對虛擬地址空間(virtual address space)進行64位定址的處理器。64位處理器可以以64位格式存貯資料,並可以對64位運算元執行數學運算操作。另外,處理器的通用暫存器(GPRs)和運算器(ALUs)也是64位的。

目前市場上Intel相容處理器可以實現64位計算的主要有3種:

1) Intel IA64,基於安騰2處理器,不相容32位應用,Oracle軟體相對本模式的版本叫 xxx for Linux Itanium
2) Intel EM64T,基於Xeon DP "Nocona"和MP處理器,相容32位應用,Oracle軟體相對本模式的版本叫 xxx for Linux x86-64
3) AMD AMD64,基於Opteron處理器,相容32位應用,Oracle軟體相對本模式的版本叫 xxx for Linux x86-64

另外普通的IA32架構的32位處理器,Oracle軟體相對本模式的版本叫 xxx for Linux x86

1) IA-64:

是Intel獨立開發,不相容現在的傳統的32位計算機,僅用於Itanium(安騰)以及後續產品Itanium 2 。

自從1993年Intel及其夥伴企業推出基於486系統的IA伺服器以來,IA伺服器經歷了486系統、PentiumPro系統、PII系統、 PIII系統、XEON系統等幾個階段。處理器系統的處理能力在大幅度提高,而伺服器系統的匯流排結構始終是IA-32匯流排體系。

IA-32伺服器在發展到8路XEON伺服器以後,體系結構已經開始成為制約伺服器效能提高的瓶頸。先是PCI通道頻寬瓶頸,現在是記憶體匯流排頻寬瓶頸和處理器系統擴充套件瓶頸。因此,hp和Intel自1994年開始合作開發IA-64架構的處理器,希望通過把hp在RISC領域的十年工作經驗和超長指令字結合起來,在微處理器級上改進效能,以增加指令級上的並行性。

IA-64結構既不是Intel的32位x86結構的擴充,也不是完全採用hp公司64位PA-RISC結構,而是一種全新的設計樣式。IA- 64基於EPIC(顯性並行指令計算-Explicitly Parallel Instruction Computing)技術。

IA-64主要特性表現在幾個方面:

    * IA-64的系統記憶體定址空間更大,可以支援32GB以上的記憶體,而IA-32伺服器目前可以支援的最大記憶體容量是16GB。
    * IA-64的處理器定址、處理能力更強、速度更快。安騰(Itanium)處理器主頻起步至少1GHz,二級Cache在2MB以上。
    * IA-64系統增強的128位浮點計算暫存器大大提高了系統的浮點計算能力。
    * IA-64系統將使用基於Infiniband技術的匯流排結構,它是以交換式系統匯流排代替目前的共享式匯流排為核心,將NGIO和 FutureIO兩種技術合二為一,使系統匯流排、記憶體匯流排頻寬和I/O匯流排頻寬都將大大提高。IA-64系統頻寬在2GB/s以上,而目前的SMPIA- 32伺服器的系統頻寬是1.06GB/s,PCI頻寬一般是0.4GB/s。
    * IA-64包括一系列的內建特徵,以延長計算機的正常運轉時間,減少當機時間。機器檢測體系在記憶體和資料路徑中提供了錯誤恢復和糾錯能力,它能讓IA-64平臺從預先導致系統失敗的錯誤中恢復過來。

目前正式宣佈支援IA-64平臺的有Monterey、Linux64、hp-UX、Solaris、Win2000等作業系統。

2) EM64T技術

EM64T技術為需要超過4GB記憶體支援的應用提供強大的效能支援。

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擴充套件模式下。

3) AMD64

AMD64,又稱“x86-64”或“x64”,是一種64位元的電腦處理器架構。它是建基於現有32位元的x86架構,由AMD公司所開發,應用 AMD64指令集的自家產品有Athlon 64、Athlon 64 FX、Athlon 64 X2、Turion 64、Opteron及最新的Sempron處理器。

架構概述 AMD試圖以自家的AMD64指令集去清理Intel的x86-32專屬的,並把x86更新至近似領先的RISC環境。曾參與設計DEC Alpha64位處理器的Dirk Meyer也有份參與制定AMD64的規格,以及AMD的員工中有不少前Alpha處理器的工程師,因此他們為AMD64立下不少功勞。部份重大改變如下:

新增暫存器 地址闊度加長 SSE2、SSE3指令 “禁止執行”位元 (NX-bit): AMD64其中一個特色是擁有“禁止執行”(No-Execute, NX)的位元,可以防止蠕蟲病毒以緩衝區滿溢的方式來進行攻擊(也稱:緩衝區溢位攻擊,Buffer Overflow)。

市場分析 AMD64代表AMD放棄了跟隨Intel標準的一貫作風,選擇了像把16位的Intel 8086擴充成32位的80386般,去把x86架構擴充成64位版本,且相容原有標準。

AMD64架構在IA-32上新增了64位暫存器,併相容早期的16位和32位軟體,可使現有以x86為物件的編譯器容易轉為AMD64版本。除此之外,NX bit也是引人注目的特色之一。

不少人認為,像DEC Alpha般的64位RISC晶片,最終會取代現有過時及多變的x86架構。但事實上,為x86系統而設的應用軟體實在太龐大,成為Alpha不能取代 x86的主要原因,AMD64能有效地把x86架構移至64位的環境,並且能相容原有的x86應用程式。

4) 小結

爭論在於EM64T和AMD64是不是真正的64位處理器,Intel稱其架構為"Extended Memory 64 Technology",使人容易產生這個疑問。我們知道它是IA32指令集的延伸。那麼EM64T和AMD64到底是不是“真正”的64位處理器呢?答 案很明確,是。當處理器執行 64位操作,具備64位定址能力,通用暫存器和運算器寬度是64位,運算器可以處理64位資料塊,因此,在此處理模式下它們完全可以被稱作64位處理器。

請注意,雖然IA64,EM64T和AMD64都是64位處理器,但它們不完全相容:
.EM64T和AMD64除了很少數指令,如3DNOW以外,可以互相相容,在其中之一上面編寫和編譯的應用程式通常可以全速執行在另外一個處理器上。
.IA64採用了與其他兩種完全不同的指令集,為Itanium2寫的64位應用程式不能執行在EM64T和AMD64上,反之亦然。

--End--

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758322/viewspace-707848/,如需轉載,請註明出處,否則將追究法律責任。

相關文章