簡介
這裡的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普及一段時間之後才行。
誤區
不能因為數字上的變化,而簡單的認為64bit處理器的性能是32bit處理器性能的兩倍。實際上在32bit套用下,32bit處理器的性能甚至會更強,即使是64bit處理器,也是在64bit套用下性能更強。所以要認清64bit處理器的優勢,但不可迷信64bit。
實現條件
要實現真正意義上的64位計算,光有64位的處理器是不行的,還必須得有64位的作業系統以及64位的套用軟體才行,三者缺一不可,缺少其中任何一種要素都是無法實現64位計算的。在64位處理器方面,Intel和AMD兩大處理器廠商都發布了多個系列多種規格的64位處理器;而在作業系統和套用軟體方面,情況不容樂觀。因為就2013年來說,為64位CPU專門設計的應用程式是少之又少的。它的優點在於它可以完全兼容32位應用程式,而且64位在若干年之後必定成為主流。缺點是易用性和通用性不高,一個明顯的例子就是各種硬體設備的驅動程式不完善,而且64位的套用軟體還很少。所以無法使用一些硬體,即使用作業系統自帶的驅動程式勉強運行,性能也會大大的降低。所以如果想體驗64位處理器,最好的選擇是windows7或者windows8而windowsXP*64已經很少有了。主流技術
有AMD公司的AMD64位技術、Intel公司的EM64T技術、和Intel公司的IA-64技術。其中IA-64是Intel獨立開發,不兼容傳統的32位計算機,僅用於Itanium(安騰)以及後續產品Itanium2,一般用戶不會涉及到,因此這裡僅對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-bitx86架構包括8個通用暫存器(GPR),AMD在X86-64中又增加了8組(R8-R9),將暫存器的數目提高到了16組。X86-64暫存器默認位64-bit。還增加了8組128-bitXMM暫存器(也叫SSE暫存器,XMM8-XMM15),將能給單指令多數據流技術(SIMD)運算提供更多的空間,這些128位的暫存器將提供在矢量和標量計算模式下進行128位雙精度處理,為3D建模、矢量分析和虛擬現實的實現提供了硬體基礎。通過提供了更多的暫存器,按照X86-64標準生產的CPU可以更有效的處理數據,可以在一個時鐘周期中傳輸更多的信息。
EM64T技術
Intel官方是給EM64T這樣定義的:EM64T全稱ExtendedMemory64Technology,即擴展64bit記憶體技術。EM64T是IntelIA-32架構的擴展,即IA-32e(IntelArchitectur-32extension)。IA-32處理器通過附加EM64T技術,便可在兼容IA-32軟體的情況下,允許軟體利用更多的記憶體地址空間,並且允許軟體進行32bit線性地址寫入。EM64T特彆強調的是對32bit和64bit的兼容性。Intel為新核心增加了8個64bitGPRs(R8-R15),並且把原有GRPs全部擴展為64bit,如前文所述這樣可以提高整數運算能力。增加8個128bitSSE暫存器(XMM8-XMM15),是為了增強多媒體性能,包括對SSE、SSE2和SSE3的支持。
Intel為支持EM64T技術的處理器設計了兩大模式:傳統IA-32模式(legacyIA-32mode)和IA-32e擴展模式(IA-32emode)。在支持EM64T技術的處理器內有一個稱之為擴展功能激活暫存器(extendedfeatureenableregister,IA32_EFER)的部件,其中的Bit10控制著EM64T是否激活。Bit10被稱作IA-32e模式有效(IA-32emodeactive)或長模式有效(longmodeactive,LMA)。當LMA=0時,處理器便作為一顆標準的32bit(IA32)處理器運行在傳統IA-32模式;當LMA=1時,EM64T便被激活,處理器會運行在IA-32e擴展模式下。
AMD方面支持64位技術的CPU有Athlon64系列、AthlonFX系列和Opteron系列。Intel方面支持64位技術的CPU有使用Nocona核心的Xeon系列、使用Prescott2M核心的Pentium46系列和使用Prescott2M核心的P4EE系列。
處理器的區別
簡述
所謂64位的電腦,就是指這台電腦使用了64位的CPU,相比較32位的CPU來說,64位CPU最為明顯的變化就是增加了8個64位的通用暫存器,記憶體定址能力提高到64位,以及暫存器和指令指針升級到64位等。”暫存器:為了處理數據,暫時儲存結果,或者做間接定址等等動作,每個處理器都具備一些內建的記憶體,這些能夠在不延遲的狀態下存取的記憶體就稱為暫存器。
32位的處理器為什麼會比64位處理器的性能差很多,這其實是一個受虛擬和實際記憶體尺寸的限制影響。主流的32位處理器在性能執行模式方面存在一個嚴重的缺陷:當面臨大量的數據流時,32位的暫存器和指令集不能及時進行相應的處理運算。”
所謂32位處理器就是一次只能處理32位,也就是4個位元組的數據,而64位處理器一次就能處理64位,即8個位元組的數據。如果我們將總長128位的指令分別按照16位、32位、64位為單位進行編輯的話:舊的16位處理器,比如Intel80286CPU需要8個指令,32位的處理器需要4個指令,而64位處理器則只要兩個指令,顯然,在工作頻率相同的情況下,64位處理器的處理速度會比16位、32位的更快。而且除了運算能力之外,與32位處理器相比,64位處理器的優勢還體現在系統對記憶體的控制上。由於地址使用的是特殊的整數,而64位處理器的一個ALU(算術邏輯運算器)和暫存器可以處理更大的整數,也就是更大的地址。傳統32位處理器的定址空間最大為3.2G,使得很多需要大容量記憶體的數據處理程式在這時都會顯得捉襟見肘,形成了運行效率的瓶頸。而64位的處理器在理論上則可以達到1800萬個TB,1TB等於1024GB,1GB等於1024MB,所以64位的處理器能夠徹底解決32位計算系統所遇到的瓶頸現象,速度快人一等,對於那些要求多處理器可擴展性、更大的可定址記憶體、視頻/音頻/三維處理或較高計算準確性的應用程式而言,AMD64處理器可提供卓越的性能。
現狀
發展的趨勢是64位所以大部分雙核處理器都是64位的,但是也有32位雙核的處理器比如YonahCoreDuo就是32位雙核處理器但是Core2Duo就是64位的處理器。
發展歷程
1961年:IBM發表IBM7030Stretch超級電腦。它使用64位數據字組,以及32或64位的指令字組。
1974年:ControlDataCorporation推出CDCStar-100矢量超級電腦,它使用64位字組架構(先前的CDC系統是以60位架構為基礎)。
1976年:CrayResearch發表第一台Cray-1超級電腦。它以64位字組架構為基礎,它成為後來的Cray矢量超級電腦的基礎。
1983年:Elxsi推出Elxsi6400平行微型超級電腦。Elxsi架構具有64位數據暫存器,不過地址空間仍是32位。
1991年:MIPS科技公司生產第一台64位微處理器,作為MIPSRISC架構R4000的第三次修訂版本。該款CPU使用於以IRISCrimson啟動的SGI圖形工作站。然而,IRIX作業系統並未包含對R4000的64位支持,直到1996年發布IRIX6.2為止。KendallSquareResearch發表他們的第一台KSR1超級電腦,以專有的運行於OSF/1的64位RISC處理器架構為基礎。
1992年:DigitalEquipmentCorporation(DEC)引入純64位Alpha架構,其誕生自PRISM專案。
1993年:DEC發布64位OSF/1AXP類Unix作業系統(後來改名為Tru64UNIX)和OpenVMS作業系統給Alpha系統。
1994年:Intel宣布64位IA-64架構的進度表(與HP共同開發)作為其32位IA-32處理器的繼承者。以1998–1999推出時間為目標。SGI發布IRIX6.0,即支持64位的R8000CPU。
1995年:Sun推出64位SPARC處理器UltraSPARC。富士通所有的HAL電腦系統推出以64位CPU為基礎的工作站,HAL獨立設計的第一代SPARC64。IBM發布64位AS/400系統,能夠轉換作業系統、資料庫、應用程式的升級。DEC發布OpenVMSAlpha7.0,第一個全64位版本的OpenVMSforAlpha。
1996年:HP發布PA-RISC處理器架構的64位2.0版本的實現PA-8000。任天堂引入Nintendo64電視遊戲主機,以低成本的MIPSR4000變體所打造。
1997年:IBM發布RS64全64位PowerPC處理器。
1998年:IBM發布POWER3全64位PowerPC/POWER處理器。Sun發布Solaris7,以完整支持64位UltraSPARC。
1999年:Intel發布IA-64架構的指令集。AMD首次公開64位集以擴充給IA-32,稱為x86-64(後來改名為AMD64)。
2000年:IBM推出他自己的第一個兼容ESA/390的64位大型機zSeriesz900,以及新的z/OS作業系統。緊接著是64位LinuxonzSeries。
2001年:Intel終於推出他的64位處理器產品線,標記為Itanium,主打頂級伺服器。它無法滿足人們的期待,因一再拖延IA-64市場而導致失敗。Linux是第一個可運行於該處理器的作業系統。
2002年:Intel引入Itanium2作為Itanium的繼承者。
2003年:AMD產出他的AMD64架構Opteron以及Athlon64處理器產品線。蘋果也推出了64位“G5”PowerPC970CPUcourtesyofIBM,並連同升級他的MacOSX作業系統,其增加對64位模式的部分支持。若干Linux發布版本發布對AMD64的支持。微軟宣布將為AMD晶片創建新的Windows作業系統。Intel堅持Itanium晶片仍維持只有64位的處理器。
2004年:Intel承認AMD在市場上的成功,並著手開發AMD64延伸的替代品,稱為IA-32e,稍後改名為EM64T。升級版本的Xeon和Pentium4處理器家族支持了新推出的指令。Freescale宣布64位e700core,以繼承PowerPCG4系列。VIATechnologies宣布64位的Isaiah處理器。
2005年:Sun於1月31日發布支持AMD64和EM64T處理器的Solaris10。3月,Intel宣布他的第一個雙核心EM64T處理器PentiumExtremeEdition840和新的PentiumD晶片將於2005第二季推出。4月30日,微軟公開發布提供給AMD64和EM64T處理器的WindowsXPProfessionalx64Edition。5月,AMD引入他的第一個雙核心AMD64Opteron伺服器CPU,並宣布其桌面型版本,稱為Athlon64X2。將原本的Athlon64X2(Toledo)處理器改為兩個核心,並為每個核心的L2配上1MB高速快取,以大約2.332億個電晶體組成。它有199mm²那么大。7月,IBM宣布他最新的雙核心64位PowerPC970MP(codenamedAntares),由IBM和Apple使用。微軟發布Xbox360遊戲主機,其使用由IBM生產的64位、三核心XenonPowerPC處理器。
2006年:雙核心MontecitoItanium2處理器進入生產。Sony、IBM、Toshiba開始生產用於PlayStation3、伺服器、工作站以及其它套用的64位Cell處理器。蘋果公司在新的MacPro和IntelXserve電腦中採用64位EM64TXeon處理器,稍後更新iMac、MacBook、MacBookPro使用EM64TCore2處理器。
未來展望
直至2007年,64位字組似乎已滿足大部分的運用。不過仍應提到,IBM的System/370及後繼者使用128位浮點數,且許多現代處理器也內含128位浮點數暫存器。System/370及後繼者尤其顯著,在這方面,他們也使用多達16位組的可變長度十進制數(即128位)。