雖然從70年代就已有微電腦(相對於當時的迷你電腦)、個人電腦的出現,但是PC真正的竄紅是在1981年9月IBM PC的問世開始計算,當時使用16-bit的8088 CPU,在此之前則多為8-bit。之後1986年,COMPAQ、ALR、Acer三家業者搶在IBM之前發表使用80386 CPU的32-bit個人電腦,往後長達十多年,PC一直持留在32-bit架構,直至2003年9月,由AMD於Computex Taipei電腦展發表了Athlon 64 CPU,正式打破過去局面,讓PC進入64位元。
《圖一 AMD針對高效能桌上型PC所推出的64-bit處理器:Athlon 64 FX,使用DDR PC3200、128-bit寬度的記憶體匯流排,傳輸率達6.4GB/Sec,及具備AMD獨創的Cool‘n’Quiet省電技術。》 |
<@資料來源:資料來源:AMD>
64-bit的認定:通用暫存器寬度
PC的位元數如何認定?與其他電腦相同,是依據CPU的設計架構,不過是以CPU哪個部位的設計為依據?這在過去與今天都常有糾葛、混淆的情形,然而這多半是受業者推銷時的說詞所致。
過去有業者為了促銷其80386DX電腦,刻意將80386SX電腦說成假的32-bit電腦,理由是80386SX CPU僅有16-bit的資料匯流排(Data Bus),但事實上無論資料匯流排還是位址匯流排(Address Bus),都無法作為運算系統的位元架構依據,真正的依據是「通用暫存器的位元寬度」,亦即:整數運算時的單筆最高整數資料表示寬度。
舉例來說,8086、8088、80286等的通用暫存器寬度都為16-bit,但8086、8088有20-bit的位址線,而80286更有24-bit位址線,但兩者都仍為16-bit CPU,同樣的Pentium Pro的通用暫存器的寬度為32-bit,但卻有36-bit位址線,依然是個32-bit CPU。類似的,Pentium的通用暫存器寬度為32-bit,而其外部資料匯流排卻為64-bit,也還是一顆32-bit CPU。
另外,其他資料型態的暫存器也不能算數,以及指令集長度也不算數,例如x86 CPU的浮點運算暫存器寬度為80-bit,且多媒體運算暫存器更是達128-bit,但卻不能因此稱為80-bit CPU或128-bit CPU。
《圖二 HP於90年代初提出的EPIC架構,於1994年與Intel合作研發,成為今日的IA-64之64-bit架構,2001年有首顆商品化晶片:Itanium,2002年後則統一稱為Itanium 2。》 |
<@資料來源:資料來源:Intel>
而指令集長度也同樣不能為準,x86的CISC指令長短不一,最短1-byte(8-bit),最長15-Byte(120-bit),根本無以為據。又如Transmeta的Crusoe、Effineon CPU皆採行VLIW架構,一次可載入64-bit/128-bit/256-bit寬度的molecule平行指令,並在執行時拆解成多個32-bit寬的Atoms近似RISC指令,而Intel Itanium CPU一次可載入128-bit的平行指令,但其實是含有3個41-bit的執行指令及1個5-bit的執行標籤。事實上Crusoe、Effineon的整數通用暫存器不過32-bit,因此是32-bit CPU,相對的Itanium的通用暫存器為64-bit,所以是64-bit CPU。
會有以指令集長度認定的看法,其實是受過去最初的RISC架構所影響,RISC CPU一起頭即採32-bit的通用暫存器寬度,且每個指令都固定為32-bit長度,所以有此錯覺的產生,該以暫存器寬度為依據,卻改成以指令長度為依據。
為何AMD Athlon 64為64-bit?
至於AMD的Athlon 64是如何認定成64-bit的?答案也是通用暫存器寬度,而非其他認定法。然Athlon 64真的是第一個64-bit PC的心臟嗎?其實這樣的宣示意義已經不大。
首先,1996年起,用Wintel架構所構成的Windows工作站開始盛行,使高階桌上型個人電腦與工作站間的分界日益模糊,至今大概只剩繪圖卡的組件差異,而2001年5月HP推出使用Intel Itanium CPU的工作站,同年10月Microsoft也推出供Itanium系統所用的Windows XP 64-bit Edition,這都比2003年9月的Athlon 64更早出現。
甚至更往前推,1992年DEC就推出64-bit的Alpha CPU(21064-200MHz),Microsoft的Windows NT早於1993年即在64-bit Alpha電腦上執行,如此64-bit桌面運算早已存在。
其次,2003年4月AMD就發表了Opteron CPU,與Athlon 64同為AMD64架構(更早之前稱為x86-64架構),只是Opteron訴求在伺服器與工作站之用,而非個人電腦,然還是就筆者所言:工作站不過是高階的桌上運算系統,與高階的桌上電腦無太大差異。
最後,2003年6月Apple發表PowerMac G5個人電腦,使用IBM PowerPC G5 CPU(即PowerPC 970),也標榜是64-bit,比AMD Athlon 64早三個月發表。確實,Mac也屬個人電腦,只是全球佔有率最高只到12%,如今更是到最低的跌破3%,不被認為是主流。
而9月AMD推出Athlon 64,完全針對個人電腦,而非工作站或其他運算系統,所以才有64-bit PC之稱。接著Intel也於今(2004)年中推出具有EM64T(Extended Memory 64 Technology)的Xeon與Pentium 4 CPU。Intel CPU在個人電腦領域的市佔高達81%,AMD則為18%,其餘1%由Transmeta、VIA等其他所共享,至此PC算真正進入64-bit的發展。
《圖三 IBM於2002年發表64-bit的PowerPC970(亦稱PowerPC G5),並於2003年用於Apple的PowerMac G5個人電腦上,之後於2004年改以更先進製程製造,改稱PowerPC 970FX。》 |
資料來源:資料來源:IBM
64-bit優勢:資料更寬?定址更大?執行防護?
在此暫不談論大幅變革的Intel Itanium(IA-64)架構,以AMD的AMD64架構,或Intel的EM64T來說,主要只在於通用暫存器的拓寬,從32-bit提升成64-bit,以及與記憶體定址相關的暫存器也跟隨提升,如此在整數運算及記憶體存取上,具有64-bit的能力,但除此之外,其餘仍大致與過去的IA-32(即x86)架構相同。
這樣的拓寬想法,是AMD在1999年發表完Athlon後開始的,經過4年研發於2003年發表,但大體架構仍承襲Athlon,僅有15%左右的新改變。AMD64架構可以相容執行現有的32-bit的作業系統、應用程式,但由於其記憶體定址方式隨新架構而有所改變,以致BIOS及驅動程式必須對應改變,原有的32-bit BIOS、驅動程式無法直接沿用。
既有軟體的相容性是AMD64架構的最大好處,AMD現有Opteron、Athlon 64 FX、Athlon 64、Mobile Athlon 64等都使用此架構。而Intel的相仿架構:EM64T則有Xeon及Pentium 4。比較需要的提醒的是:AMD之後推出低價訴求的Sempron,並非全然使用AMD64架構,其桌上型Sempron強化自原有的Athlon XP(IA-32架構),而筆記型Sempron雖然使用AMD64架構,但定址方面仍維持過往的IA-32設計。
相容是對過往的好處,然AMD64對未來的好處,仍是要改寫程式才能將其發揮。雖然AMD標榜AMD64架構能加速過往程式的執行,但這其實與運算架構無關,純粹是與半導體製程提升、時脈加速、快取擴充等晶片製造技術有關連。而改寫後的好處是整數資料的寬度提升為64-bit,及定址空間的加大,AMD方便標榜可突破IA-32架構的4GB。
不過,這些益處其實誘因有限,對整數運算而言,現有32-bit已相當足夠,而4GB限制的問題,其實已有36-bit的PAE(Page Address Extension)定址模式可以暫代,只是位址轉換多了道程序,且現有PC的記憶體都在128MB~1GB間,尚未有突破4GB的需要,即便是工作站,也只有部分高階機種需要突破4GB,達8GB~16GB之需。
另外有一項好處是與資料運算寬度、程式定址範疇無關的,是資訊安全防護的益處,由於64-bit架構在定址設計上有較多寬裕的狀態表示欄位,而現在許多資安漏洞多是來自記憶體中的堆疊緩衝區,遠端駭客(Hacker)、蠕蟲(WORM)、特洛伊木馬程式(Troj)會密集塞資料給電腦,使其破壞原有堆疊架構,並以此取得電腦的執行權,此稱為緩衝區溢位攻擊(Buffer Overflow),而Microsoft於Windows XP的Service Pack 2上加入DEP(Data Execution Prevention)功能,防止資料區被當成程式來執行,這就必須倚賴AMD64的定址能力來達成,而Linux也同樣可用AMD64來發揮此一能力,AMD方面將此能力稱為NX(No Execute)。
但是,DEP/NX並非AMD64架構的專利,現有Itanium的IA-64架構也可實現,此外新款的32-bit CPU也在追加修改後也能支援,例如Transmeta即是修改CMS軟體,完全不修改CPU電路,一樣可以使用DEP防護功能,同樣的VIA的新款C7處理器也會支援DEP/NX。
此外,並非一定要新的硬體晶片才能防堵緩衝區溢位攻擊,現有Windows XP Server Pack 2也可用純軟體方式實現DEP,只是防護層面僅在系統區,無法顧及程式區,而若有新硬體晶片支援則可顧及更多,現在有些防毒軟體也強調可防禦溢位攻擊。
《圖四 IBM的POWER架構處理器發展沿革圖,PowerPC G5即是PowerPC 970(2002年)與PowerPC970FX(2004年),不僅用於Apple的電腦,也用於IBM的刀鋒伺服器(Blade Server)中。》 |
<@資料來源:資料來源:IBM>
從64-bit CPU到64-bit應用程式
很明顯的,現在的情形其實與286、386時代相近,過去使用286的強化型16-bit PC,或者是32-bit的386 PC,但所執行的DOS作業系統、DOS應用程式,依然是只支援8088的16-bit架構,只是純加快,並未發揮硬體晶片的新架構優勢,之後才漸進發揮,先用Windows 3.0取得記憶體的延伸使用,之後Windows 95才更澈底運用。
從1986年有80386 PC,1990年有Windows 3.0,已是歷經4年,至Windows 95則是歷經9年,才讓16-bit拉拔至32-bit,而今AMD64一樣要有一段過渡期,然AMD於2003年發表AMD64晶片,Microsoft將於2005年發表Windows XP for x64作業系統,即同時適用於AMD64與EM64T,已比過去快上許多,甚至Linux現在就有支援,只是Linux並非PC的主流作業系統,而是在x86 Server領域快速興起的作業系統。
更具體地說,先是CPU,之後晶片組,然後主機板、BIOS、驅動程式,最後作業系統也支援,往後才有可能有64-bit的應用程式出現,然而現階段也很難推想有什麼PC端的應用程式需要用上64-bit,大體依然是3D電玩,或家庭娛樂視訊的轉換、編輯等。
64-bit的週邊配套設計
只有CPU是64-bit也是不夠,如同車內引擎轉速提升,但傳動軸、輪胎也必須配合才能發揮效力,所幸高速匯流排的及時出現,使64-bit PC能有較通暢的運算發揮,如AMD的HyperTransport,或PCI-Express(簡稱PCI-E)等,都是新一代高速的I/O介面。若持續使用過往的PCI介面,即便是伺服器級所用的PCI-X,都僅有1~4GB/Sec的傳輸率,而AGP8X後也遭遇提升瓶頸,這些都因PCI-Express的出現而解決。
HyperTransport依據時脈速度而有不同傳輸率,16-bit的HyperTransport以800MHz傳輸可達3.2GB/Sec,而1GHz可達4GB/Sec,現在最高達6.4GB/Sec。同樣的PCI-E現有1X至16X,1X為500MB/Sec,16X達8GB/Sec。HyperTransport僅用於同一電路板上的晶片間溝通(如CPU與CPU,或CPU與晶片組),而PCI-E則是在此之外也可形成I/O插槽,支援各類介面卡的插置,不過2004年11月9日,新的HyperTransport Expansion Specification(簡稱:HTX)延伸規格正式提出,也開始有插槽式的設計。
另外,CPU與記憶體間也必須更緊密加速,為此AMD直接在AMD64架構的CPU上整合了記憶體控制器(Memory Controller),加速CPU與Memory間的速度回應,同時盡可能拓寬CPU與Memory間的平行傳輸寬度,一般的Athlon 64、Mobile Athlon 64僅有64-bit的記憶體匯流排(即是:資料匯流排,Data Bus),然而更高強的Athlon 64 FX就有128-bit的Data Bus,更能發揮64-bit CPU的效能。
《圖五 Apple PowerPC G5機內的PowerPC G5(PowerPC 970FX)在1.8GHz、2.0GHz時脈時尚使用氣冷,只是導流空間與進氣量有較嚴謹的設計與要求,然2.5GHz則非用上水冷系統不可。》 |
<@資料來源:資料來源:Apple>
64-bit非動用到液態冷卻(水冷)?
或許,就是因為AMD總是在時脈競速上不易超越,所以往更寬的64-bit先行,而Intel也已經許久無法再提升時脈,長時間停在3.6GHz,AMD也大致在2.4GHz,加上AMD的進逼,所以推出EM64T。
然而CPU持續的耗電與高熱一直沒有適當的解決,通常以更多的外部散熱機制來因應,過去90年代的Alpha電腦即用過水冷,如今Apple的PowerMac G5個人電腦,以往在1.8GHz、2.0GHz都只是預留較大的空間給予散熱,而2.5GHz版竟然也用上水冷系統。
類似的,NEC於10月18日發表的PC伺服器(Express5800/110Ca),同月27日發表的Pentium 4 PC(VALUESTAR G Type TX),也都開始用上水冷系統,為320cc的丙二醇做為冷媒。這不禁令人懷疑:更高效能的副作用,就是更吵的風扇、更高的散熱與用電成本?
結語──2005年,雙核版的64-bit系統
既然在時間(時脈)上無法提升,就往空間(寬度)延展,從32-bit CPU變成64-bit CPU,記憶體寬度自64-bit變成128-bit。更進一步的,AMD與Intel都預告2005年將推出雙核版本的64-bit CPU,且多半暗示雙核CPU的接腳、用電、體積、散熱,與現有單核一致,不會超越,這表示既有系統只要換裝新的雙核CPU,即可再次獲得效能拉升。而這也等於再次驗證了筆者所言的「時脈至極,改拓寬度」推斷。
|
|
還記得 Intel 從 2003 年開始主導的「 Big Water 計畫」嗎?這就是 BTX 平台的前身, BTX 平台預計將取代目前主流的 ATX 規格,成為未來電腦平台的標準規格。相關介紹請見「64位元運算普及化之路」一文。 |
|
Windows XP 64 位元版本提供可延展的高效能平台,可執行以 Win64TM API 為基礎的新一代應用程式。與 32 位元系統相較之下,其架構在處理極大量之資料時有更高的處理效率,最多可支援 8 TB 的虛擬記憶體。你可在「Windows XP 64 位元版本技術概觀」一文中得到進一步的介紹。 |
|
CPU 的速度是一年比一年快,如今卻在 20GHz 處「摔了個觔斗」。即使 Intel 完成了超高速的新款 CPU ,是否就能贏得市場呢? 在「CPU的下一步」一文為你做了相關的評析。 |
|
|
|