歷史發展
1978至1995年:16位大行其道
1978年,
Intel推出了首個16位CPU。在此期間,
作業系統走過了16位的PC-DOS、MS-DOS、CP/M-86、UCSD Pascal P-System,MS-DOS開始成為個人計算機作業系統的霸主,直到今天,DOS在Windows系統維護中仍然扮演著重要的角色。
1985年,微軟推出了Windows 1.0,之後又陸續推出了Windows 2.0、Windows 286、Windows 386,但由於性能平平而沒有得到人們的注意。直到1990年5月,微軟推出了Windows 3.0,加入了許多有用的功能,並首次加入了多媒體功能,被輿論稱為“多媒體的DOS”。Windows 3.0一經面世,就取得驚人的成功,一舉奠定了微軟在作業系統上的壟斷地位。
1995至2005年:從16位到32位的飛躍
1985年Intel推出了首個32位
處理器。在此期間,1995年8月,微軟推出了Windows 95,稱為作業系統發展史上一個里程碑。從Windows 95到Windows 98/ME,都是混合16/32位計算的作業系統,並不是純32位作業系統,穩定性和性能方面雖比過去得到了較大的提升,但仍不能滿足人們對計算機套用的需要。
2000年,微軟推出了Windows 2000,開闢了個人桌面32位計算與套用的新時代。2001年發布的Windows XP成為目前使用率最高的作業系統。
32位計算時代最成功的套用就是多媒體和Internet,32位的Windows平台上湧現了很多之前只能運行在SGI等大型圖形
工作站的應用程式,如3DMax、
Photoshop等,人們不再為這些多媒體創作而購買極其昂貴的圖形工作站,日益成熟的32位計算開闢了PC擔任多媒體套用工具的新紀元。
綜述:64位作業系統最早在中小型計算機上實現,主要是一些Unix系統。此後
英特爾和
惠普公司合作研製的
IA-6464位處理器(代號 Itanium 2)推出後,出現了此平台上的64位
Linux及
微軟Windows作業系統(即基於IA-64的Windows XP 64位版本)。之後AMD推出了64位的
X86-64架構CPU,很快就在Linux平台得到支持,並且微軟也提供了64位版本的
Windows XP作業系統(全稱Windows XP Professional x64),使得IA-64位處理器日漸式微。最終英特爾決定推出與AMD之前推出的AMD64兼容的64位CPU,稱為Intel 64。蘋果切換到英特爾平台後也開始開發64位作業系統。
早期的解決方案十分古怪:如Tiger和Leopard以32位系統為核心,支持程式以64位模式運行,導致實際執行效率並不高。而後期的系統趨於完善,如Snow Leopard和更新的系統本身已於64位模式運行,可運行64位程式,也可以用兼容模式運行32位程式。
記憶體限制
一個 64 位的 CPU,內部可能有外部數據匯流排或不同大小的
地址匯流排,可能比較大或比較小;術語“64位”也常用於描述這些匯流排的大小。例如,有許多機器有著使用 64 位匯流排的 32 位處理器(如最初的 Pentium 和之後的 CPU),因此有時會被稱作“64位”。同樣的,某些 16 位處理器指的是 16/32 位處理器具有 16 位的匯流排,不過內部也有一些 32 位的性能。這一術語也可能指計算機
指令集的
指令長度,或其它的
數據項(如常見的 64 位
雙精度浮點數)。去掉進一步的條件,“64位”計算機架構一般具有 64
位寬的
整數型
暫存器,它可支持(內部和外部兩者) 64 位“區塊”(chunk)的整數型數據。
大部分的 CPU(截至2005 年),其單個
暫存器可存放
虛擬記憶體中任意數據的
記憶體地址(本機)。因此,
虛擬記憶體(計算機在程式的工作區域中所能保留的數據總量)中可用的地址取決於
暫存器的寬度。自 1960 年的 IBM System/360 起,然後
1970年的 DEC VAX
微型計算機,以及
1980年中期的 Intel 80386,在事實上一致開發合用的 32 位大小的
暫存器。32 位
暫存器意味著 2^32 的地址,或可使用 4 GB 的
記憶體。當時在設計這些架構時,4 GB 的
記憶體遠遠超過一般所安裝的可用量,而認為已足夠用於
定址。認為 4 GB 地址為合適的大小,還有其它重要的理由︰在
應用程式中,如資料庫,42 億多的
整數已足夠對大部分可計算的實例分配唯一的參考引用。
然而在 1990年初,成本不斷降低的
記憶體,使安裝的記憶體數量逼近 4 GB,且在處理某些類型的問題時,可以想像
虛擬記憶體的使用空間將超過 4 GB 上限。為此,一些公司開始釋出新的 64 位架構晶片家族,最初是提供給
超級計算機、頂級工作站和伺服器機器。64
位運算逐漸流向
個人計算機則出現在 2003 年,並在 2006 年,轉向 EM64T 處理器,且 x86-64 處理器在頂級的 PC 中遂漸普及。64 位架構的出現,有效的將
記憶體上限提升至 2^64 地址,16 EB 的記憶體。從這個角度來看,在 4 MB 主
記憶體很普遍時,最大的記憶體上限 2^32 的地址大約是一般安裝記憶體的 1000 倍。當 1 GB 的主
記憶體很普遍時,2^64 的地址上限大約是 1 百億倍。
市面上大部分的消費級 PC 存在著人為的
記憶體限制,因受限於實例上的限制,而幾乎不太可能需要完整支持 16 EB 容量。舉例來說,
Apple的 Mac Pro 最多可安裝實例
記憶體至 16 GB,而無必要支持超過的大小。
Linux核心(版本 2.6.16)可編譯成最高支持 64 GB 的
記憶體,
Windows VistaUltimate支持超過128G記憶體。
處理器
這裡的
64位技術是相對於
32位而言的,這個位數指的是CPU GPRs(General-Purpose Registers,
通用暫存器)的數據寬度為64位,64位
指令集就是運行64位數據的指令,也就是說處理器一次可以運行64bit數據。64bit處理器並非才有的,在高端的RISC(Reduced Instruction Set Computing,
精簡指令集計算機)就有64bit處理器,比如SUN公司的UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。
主流CPU使用的
64位技術主要有AMD公司的
AMD64位技術、Intel公司的
EM64T技術、和Intel公司的IA-64技術。其中IA-64是Intel獨立開發,不兼容傳統的
32位計算機,僅用於Itanium(
安騰)以及Itanium 2,一般用戶不會涉及到,因此這裡僅對AMD
64位技術和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-R15),將暫存器的數目提高到了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系列。
與32位區別
簡單的說x86代表32位作業系統 x64代表64位作業系統。如果你的CPU是雙核以上,那肯定支持64位作業系統了。如果你的電腦記憶體大於4G,那就要用64位的系統了,因為32位的Windows 7也好,Vista也好,最大都只支持3.25G的記憶體。而64位的windows 7最大將支持128G的記憶體。
64bit計算主要有兩大好處:可以進行更大範圍的整數運算;可以支持更大的記憶體。
記憶體這是64位系統最顯著的優點,它可以使用超過4GB的記憶體 。大多數新的台式機和筆記本電腦至少擁有4GB的記憶體。問題是,像Vista和Win 7的32位版本只能夠用大約3GB的記憶體 。相比之下,64位的Windows 不僅可以利用高達128GB的記憶體,還能夠使用的記憶體映射取代BIOS的功能,從而使作業系統真正使用完整的4GB的。