64位元運算時至今日已經發展一段時間,在高階運算應用上,先前有惠普Alpha和 PA-RISC、英特爾Itanium、IBM Power4、昇陽UnltraSPARC。超微在2003年發表Opteron處理器,加入64位元家族行列,英特爾隨後在2004年春季IDF正式公布x86指令集的64位元延伸架構IA-32e處理器。這場英特爾與超微的64位元處理器競賽,預計將會改變高效能運算(High-Performance Computing,HPC)的高階伺服器市場,預計也會影響桌上電腦的處理器版圖。
我們從恆逸資訊舉辦的「高效能的運算系統-Windows Server 2003 64 位元與SQL Server 2000 64位元」訓練課程,取得許多微軟64位元的現況,由恆逸資訊教育訓練處的資深講師許俊龍和胡百敬說明,英特爾也派員說明IA-32 EL的32位元應用程式加速工具,以及64位元延伸架構IA-32e。微軟為什麼需要64位元
微軟一直想要踏入高效能運算,因為現有的Windows作業系統會受限於32位元架構下處理器與記憶體的限制,即使是採用虛擬記憶體的方式,最多只能定址到4GB,而多處理器支援到32顆。
為了讓32位元Windows能夠突破4GB限制,現在Windows 2000/XP/Server 2003的特定版本,可以搭配實體位址延伸(Physical Address Extension,PAE)的規格和企業記憶體結構(Enterprise Memory Architecture),突破記憶體先天的障礙。
英特爾IA-32系列的處理器,提供2種存取4GB以上記憶體的方法,一種是記憶體分頁擴充(Page Size Extensions,PSE)模式,另一種則是PAE模式。假如採用PSE模式,而資料讀寫的緩衝區複製作業超過4GB,就會發生效能受限的狀況。
微軟在PAE規格內訂定了AWE(Address Windowing Extensions)的API,使軟體開發者能夠在本身的4GB定址空間內,利用PAE對應到更大的實體記憶體,存取的記憶體可達到64GB。
Windows 2000時,雖然已經找到超大記憶體定址的解決方法,但是超過4GB的資料大量處理時,實體記憶體與虛擬記憶體之間還是要不停的轉換、對應,仍然會增加額外的處理負擔,也會影響系統整體效能,無法完全根治大量記憶體的支援問題。使用者只有移轉到64位元的環境,才能徹底打通4GB的障礙。
32位元可以定址的記憶體上限是2的32次方位元組,也就是4GB,64位元理論上可以定址到2的64次方位元組,約等於16 EB,相當於160億GB的記憶體容量。Windows Server 2003 64位元版記憶體定址設計成支援16TB的容量,而Windows Server 2003 Datacenter 64位元版的記憶體,目前可以支援到512GB。1EB等於10億GB,1TB等於1024GB,我們可以自行換算,比較上述各種記憶體容量。64位元Windows的應用範圍
微軟認為,企業選擇32位元或64位元的應用程式架構,可以從處理器負載、使用者數量、叢集節點大小、資料集的規模、以及記憶體需要的容量和頻寬加以考量。雙處理器以內的前端應用,適合繼續使用32位元的Windows環境,例如目錄服務、網路名稱系統、防火牆、安全控管、網站、電子郵件、檔案分享、列印服務等網路基礎建設,假如需要進階處理。假如屬於中間資料層與後端交易處理,需要用到4顆處理器以上,適合改往64位元環境發展,包括應用程式伺服器、客戶關係管理、供應鏈管理、企業資源規畫、商業智慧,以及處理器與記憶體密集運算的大型資料處理,如線上交易處理(OLTP)資料庫與各種資訊系統的後端資料庫。
最立即需要且可以發揮64位元運算效能的應用,企業資料庫當仁不讓。目前64位元Windows Itanium 平臺已經可以執行SQL Server 2000、IBM DB2 UDB 8.1、Oracle 9i 9.2.0.2,以及MySQL 4.1等產品;商業應用程式可以支援WebLogic 8.1、PeopleSoft EPM、SAS 9.0、SAP R/3 Enterprise 4.7、NetIQ App Manager等;系統與安全管理工具方面,有 CA eTrust 7.1、Symantec AntiVirus CE 8.1和McAfee VirusScan 7 Enterprise Edition等防毒軟體、BMC Patrol、HP OpenView等網路管理軟體。微軟64位元作業系統發展史
1998年1月,微軟開始發展IA64相關的SDK、驅動程式套件(Device Driver Kit,DDK)和模擬器,200年2月,微軟開發出IA64的作業系統原型,提供給ISV、IHV和OEM廠商使用。2001年七月微軟發表Windows Advanced Server Limited Edition 1.0,支援早期的Itanium處理器,同年8月隨32位元的Windows XP出貨同時,發表支援Itanium處理器的Windows XP 64-Bit Edition Version 2002。2002年七月Windows Advanced Server Limited Edition 1.2開始支援Itanium 2。2003年Windows Server 2003發表同時,也公開Itanium 系統的Windows XP 64-Bit Edition Version 2003。
微軟在Windows Server 2003 SP1,將會提供64位元環境更完整的支援,包括代號為Longhorn的Windows Server作業系統,以及Windows XP 64位元版。Windows 2000 Advanced Server Limited Edition雖然也具備64位元支援,但是微軟不會發行後續版本。
微軟在64位元應用程式環境提出新的技術標準,稱為WOW64(Windows on Windows 64),利用模擬層裡面的Windows環境整合64位元和32位元應用程式。目前Windows XP 64 位元版本已經內建WOW64,Windows Server 2003 SP1預計也會提供。微軟的開發工具Visual Studio .NET 2003的下一個版本代號Whidbey,將會有支援64位元,除了提供64位元版本Whidbey,32位元的Whidbey將具備WOW64的執行能力。
WOW64支援AMD64和IA64系列的處理器系統。WOW64已經包含英特爾IA-32執行層(Execution Layer,EL)。IA-32 EL讓IA64系列的處理器,能夠執行32位元應用程式,IA-32 EL也可以提高使用純Itanium架構環境的效能。英特爾表示,IA-32 EL可望能夠將原有效能增加五成到七成。文⊙李宗翰與PAE對看-DOS的記憶體管理
PAE的出現,是為了解決更大量記憶體定址的問題。然而和過去DOS的記憶體管理對照,做法相當接近。由於設計限制以及向下相容的考慮,DOS不管怎樣努力,只能存取記憶體近端的1MB,真正用來處理資料的部分,甚至只有640kB,因此過去的IT開發人員紛紛想出不同的辦法來解決這種問題,最有名的莫過於擴展記憶體系統(Expanded Memory System,EMS)和延伸記憶體規格(eXtended Memory Specification,XMS)。
擴展記憶體系統早期設計在主機板,在MS-DOS可定址的 1024kB內,開啟一個 64kB 的頁框(page frame),利用這個空間,來存取整個 EMS 的記憶體,後來這種記憶體管理可以軟體模擬,不再需要購買一塊擴展記憶體介面卡,支援 EMS 的應用程式就可以使用更多的記憶體。MS-DOS 5/6當時就內附EMM386.EXE的EMS記憶體管理程式。
延伸記憶體是指1024 KB以後的記憶體。傳統記憶體能夠直接執行程式,而延伸記憶體則是用在支援XMS的應用程式上,例如MS-Windows 3.x。MS-DOS 6的HIMEM.SYS可以產生XMS記憶體,應用程式可以用中斷的方式取得 大於1MB的記憶體。文⊙李宗翰
熱門新聞
2025-12-12
2025-12-12
2025-12-12
2025-12-15
2025-12-12
2025-12-12