簡介
x86或80x86是英特爾Intel首先開發製造的一種微處理器體系結構的泛稱。該系列較早期的處理器名稱是以數字來表示,並以“86”作為結尾,包括Intel 8086、80186、80286、80386以及80486,因此其架構被稱為“x86”。由於數字並不能作為註冊商標,因此Intel及其競爭者均在新一代處理器使用可註冊的名稱,如Pentium。現時Intel把x86-32稱為IA-32,全名為“Intel Architecture, 32-bit”。
“X86”是Intel和其他幾家公司處理器所支持的一組機器指令集,它大致確定了晶片的使用規範。從8086到80186、80286、80386、80486,再到後來的奔騰系列以及現在的多核技術,都是使用一脈相承的x86指令集,既不斷擴展又向後兼容。
三十年前,英特爾發布了第一款16位微處理器—8086,當時的著名廣告語是:“開啟了一個時代”。而當8086的光環退去之後,其支撐架構—我們後來所熟知的x86也成為了最成功的業界技術標準之一。
在8086之後的30年間,x86家族橫跨了桌面、伺服器、攜帶型電腦,超級計算機等等。無數對手敗在了它的腳下。
歷史回顧
1971 年,英特爾為一家日本計算器廠商製造了英特爾歷史上的第一塊處理器——4位的4004。很快,在1975年,英特爾又推出了8位處理器8008和8080。
3年以後,16位的8086初次登場。在上世紀80年代初,IBM選擇了8086的衍生產品8088作為IBM PC的處理器。IBM的這一舉措給x86帶來了巨大的發展機遇,並且幫助它成為了行業標準——直到今天。
英特爾執行副總裁Patrick Gelsinger說:“PC行業發展的革命性轉折點是1985年32位處理器80386的推出,它推動了整個行業的發展。”
386 之後,19**486誕生了。由於當時數字不能作為商標,英特爾從1993年開始改變了產品命名方法。第五代處理器被命名為Pentium而不是586。
所有的基於x86架構的晶片,開始於8086,一直延續到今天。當然他們的命名發生了變化,運算速度也有了驚人的提升。
成功秘訣
x86為什麼能一直成功,擊退甚至完全打敗其他的處理器架構?從一開始,x86的誕生就可謂生逢其時。1978年,計算機從巨大、昂貴的中型計算機轉變為小型、便宜的微型計算機已經有幾年了。桌上型電腦成為變革的前沿。
更重要的是,x86證明了戈登·摩爾在1965年提出的一個定律。戈登·摩爾後來成為英特爾的主席和CEO。摩爾說,在成本不變的前提下,微處理器每過二年其運算速度會翻一番。他的預言後來被稱為摩爾定律,30年來始終被證明是有效的。
8086及其後續產品還一直與電腦業的兩個大名鼎鼎的名字緊緊聯繫在一起。1972年,比爾 ·蓋茨和保羅·艾倫就嘗試用性能很弱的8008開發Basic程式語言,但沒有成功。但他們最終在性能強勁一些的8080處理器上開發出了Basic語言,並在1975年把 Basic語言套用到Altair8800 PC。
這成為英特爾和微軟親密關係的開始。微軟從那時起,便創造了一個龐大的軟體帝國並推動了整個行業的發展。英特爾首席技術官Justin Rattner指出,x86體系架構的靈活性是它過去以及今後成功的關鍵。他說,雖然人們通常將x86指令集看作是某種一成不變的規範,但是不管是指令集還是體系架構本身,都在過去幾年裡發生了巨大的變革。Rattner說,x86在上世紀九十年代曾憑藉其內置MMX和SSE指令集擴展,一舉提高了多媒體和通信套用所需的速度,從而擊退了其他專業媒體處理器對它發起的挑戰。他還舉例說明了x86體系架構在過去幾年中新增的一些改進功能。比如在記憶體管理和虛擬化方面的硬體支持等。
Rattner指出,同樣重要的是,英特爾在x86體系架構發展的每一個階段都保持了向後兼容的特性。指令集的發展以及產品系列內部的兼容性大大擴展了x86體系架構的套用範圍,將個人用戶與企業用戶、攜帶型電腦和超級計算機都包括了進來。
加州大學伯克利分校的計算機科學教授David Patterson說:“認識到x86體系架構並非一種凝固的設計這一點很重要。30多年來,它們每月都會增加一個說明。現在x86指令集的說明已經達到500多個。每一代都會增加20到100多個。前後兼容很重要,它也一直在增加新的內容。”
遵循原則
1)高性能原則
保證所選購的伺服器,不僅能夠滿足運營系統的運行和業務處理的需要,而且能夠滿足一定時期的業務量增長的需要。一般可以根據經驗公式計算出所需的伺服器tpmC值,然後比較各伺服器廠商和TPC組織公布的TpmC值,選擇相應的機型。同時,用伺服器的市場價/報價除去計算出來的TpmC值得出單位TpmC值的價格,進而選擇高性能價格比的伺服器。
2)可靠性原則
可靠性原則是所有選擇設備和系統中首要考慮的,尤其是在大型的、有大量處理要求的、需要長期運行的系統。考慮伺服器系統的可靠性,不僅要考慮伺服器單個節點的可靠性或穩定性,而且要考慮伺服器與相關輔助系統之間連線的整體可靠性,如:網路系統、安全系統、遠程列印系統等。在必要時,還應考慮對關鍵伺服器採用集群技術,如:雙機熱備份或集群並行訪問技術,甚至採用可能的完全容錯機。
比如,要保證系統(硬體和作業系統)在99.98%的時間內都能夠正常運作(包括維修時間),則故障停機時間六個月不得超過0.5個小時。伺服器需7×24小時連續運行,因而要求其具有很高的安全可靠性。系統整機平均無故障時間(MTBF)不低於80000小時。伺服器如出現CPU損壞或其它機械故障,都能在20分鐘內由備用的CPU和機器自動代替工作,無須人員操作,保證數據完整。
3)可擴展性原則
保證所選購的伺服器具有優秀的可擴展性原則。因為伺服器是所有系統處理的核心,要求具有大數據吞吐速率,包括:I/O速率和網路通訊速率,而且伺服器需要能夠處理一定時期的業務發展所帶來的數據量,需要伺服器能夠在相應時間對其自身根據業務發展的需要進行相應的升級,如:CPU型號升級、記憶體擴大、硬碟擴大、更換網卡、增加終端數目、掛接磁碟陣列或與其他伺服器組成對集中數據的並發訪問的集群系統等。這都需要所選購的伺服器在整體上具有一個良好的可擴充餘地。一般資料庫和計費套用伺服器在大型計費系統的設計中就會採用集群方式來增加可靠性,其中掛接的磁碟存儲系統,根據數據量和投資考慮,可以採用DAS、NAS或SAN等實現技術。
4)安全性原則
伺服器處理的大都是相關係統的核心數據,其上存放和運行著關鍵的交易和重要的數據。這些交易和數據對於擁有者來說是一筆重要的資產,他們的安全性就非常敏感。伺服器的安全性與系統的整體安全性密不可分,如:網路系統的安全、數據加密、密碼體制等。伺服器需要在其自身,包括軟硬體,都應該從安全的角度上設計考慮,在藉助於外界的安全設施保障下,更要保證本身的高安全性。
5)可管理性原則
伺服器既是核心又是系統整體中的一個節點部分,就像網路系統需要進行管理維護一樣,也需要對伺服器進行有效的管理。這需要伺服器的軟硬體對標準的管理系統支持,尤其是其上的作業系統,也包括一些重要的系統部件。
配置要求
1)伺服器處理能力
為支持本省的異地轉移、異地就醫和異地領取養老金等業務,需要較高的交易數據處理能力。TPC計算如下: 假設全省參保總人數C=980萬,交易日平均交易人數比例a1=1‰,每筆交易對應資料庫事務數a2=5,則: 每日實際交易量M= C×a1×a2;交易日集中交易時間T=120分鐘;交易日集中期內交易量比例Ct=80%;基準TPC指標值對應實際交易值的比例M0=6:1;CPU處理能力餘量M1=30%-45%,取35%;3年內每年處理能力增長率P=30%。 根據經驗公式計算得出TPC=(M×M0×Ct/(T×(1-M1)) ×(1+30%)3=89,435。也就是說,伺服器選型應該考慮採用TPC值不低於100,000的高端伺服器系統配置。
2)記憶體容量
根據經驗和類似業務量和環境,記憶體容量應為1G/CPU×CPU數,從目前主流硬體廠商的指標來看,TPC值要達到100,000,一般需要配置8個CPU,因此記憶體建議配置8GB。
3)匯流排I/O頻寬
在高CPU、大容量記憶體的配置下,必須要求主機系統匯流排頻寬、I/O匯流排頻寬都達到很高,否則,系統性能將形成瓶頸。
4)存儲容量
交換區平均數據量為164.8GB,峰值數據量為164.8GB×1.5,考慮0.2倍的資料庫索引和系統占用空間;作RAID保護後60%存儲利用率;以後數據增長,需提供30%的數據擴充能力等因素,總存儲容量約為:164.8×1.5×1.2/60%/70%=706GB,採用SAN中的光纖通道陣列作為數據存儲。
5)可靠性、擴展性等
由於作為生產型資料庫伺服器,支持異地經辦業務,屬於實時性服務,該伺服器系統在可靠性方面要求較高,可靠性必須達到99.99%以上,提供全年7×24的可用性,配置為雙機集群方式。系統採用多部件的冗餘結構設計,具有高速差錯校驗和糾錯的存儲器,並有監控和診斷功能。
因此,對於伺服器的選型,首先需對其業務系統的業務類型、業務複雜度等方面做系統的需求分析,其後根據需求在數據容量、數據處理的強度等方面進行估算,併兼顧伺服器的可靠性、擴展性、安全性、可管理性等方面綜合考慮,完成最終的產品選型。
新思維:RISC還是Nehalem-EX?
由於資料庫伺服器,尤其是金融電信等關鍵業務領域的核心資料庫,對伺服器的可靠性和性能要求非常高,這也使得過去這類套用的資料庫系統往往會選擇RSIC小型機來承擔。而X86伺服器雖然有很好的性價比,在總體市場中占據了95%的保有量,但仍然有一些核心領域沒有攻克。
不過,2010年,隨著英特爾新一代Nehalem-EX至強7500系列伺服器平台的發布,這一格局即將被打破。至強7500有8 個核心,每個核心支持雙執行緒,每顆處理器最多可支持16個執行緒並行處理;每處理器最多帶有4條QPI高速互聯,可輕鬆擴展至8路系統,如果加入第三方節點控制器則可擴展至更多路系統;每處理器最大共享24MB L3快取,藉助可擴展記憶體緩衝和可擴展記憶體互連技術,每個處理器可支持16個記憶體插槽,四路伺服器最大記憶體容量可達到512GB DDR3。而且,Nehalem-EX引入了22條RAS特性,並首次在至強平台上實現了IA64上才有的MCA恢復功能,提供更強的可靠性。無論是在性能、可擴展性和可靠性上,都已經逼近RISC,甚至在某些指標上有所超越。
因此,隨著IBM、HP、戴爾、浪潮等多家廠商推出基於至強7500的四路和八路伺服器,核心關鍵用戶將多出許多選擇。下面,我們也會推出一系列文章,來幫助解讀至強7500在資料庫領域的套用表現、產品推薦、方案案例等等。
發展階段
CPU的溯源可以一直去到1971年。在那一年,當時還處在發展階段的INTEL公司推出了世界上第一台微處理器4004。這不但是第一個用於計算器的4位微處理器,也是第一款個人有能力買得起的電腦處理器!!4004含有2300個電晶體,功能相當有限,而且速度還很慢,被當時的藍色巨人IBM以及大部分商業用戶不屑一顧,但是它畢竟是劃時代的產品,從此以後,INTEL便與微處理器結下了不解之緣。可以這么說,CPU的歷史發展歷程其實也就是INTEL公司X86系列CPU的發展歷程,我們就通過它來展開我們的“CPU歷史之旅”。
4004處理器核心架構圖
1978年,Intel公司再次領導潮流,首次生產出16位的微處理器,並命名為i8086,同時還生產出與之相配合的數學協處理器i8087,這兩種晶片使用相互兼容的指令集,但在i8087指令集中增加了一些專門用於對數、指數和三角函式等數學計算指令。由於這些指令集套用於i8086和i8087,所以人們也這些指令集統一稱之為X86指令集。雖然以後Intel又陸續生產出第二代、第三代等更先進和更快的新型CPU,但都仍然兼容原來的X86指令,而且Intel在後續CPU的命名上沿用了原先的X86序列,直到後來因商標註冊問題,才放棄了繼續用阿拉伯數字命名。至於在後來發展壯大的其他公司,例如AMD和Cyrix等,在486以前(包括486)的CPU都是按Intel的命名方式為自己的X86系列CPU命名,但到了586時代,市場競爭越來越厲害了,由於商標註冊問題,它們已經無法繼續使用與Intel的X86系列相同或相似的命名,只好另外為自己的586、686兼容CPU命名了。
1979年,INTEL公司推出了8088晶片,它仍舊是屬於16位微處理器,內含29000個電晶體,時鐘頻率為4.77MHz,地址匯流排為20位,可使用1MB記憶體。8088內部數據匯流排都是16位,外部數據匯流排是8位,而它的兄弟8086是16位。1981年8088晶片首次用於IBM PC機中,開創了全新的微機時代。也正是從8088開始,PC機(個人電腦)的概念開始在全世界範圍內發展起來。
Intel 8086處理器
1982年,許多年輕的讀者尚在襁褓之中的時候,INTE已經推出了劃時代的最新產品棗80286晶片,該晶片比8006和8088都有了飛躍的發展,雖然它仍舊是16位結構,但是在CPU的內部含有13.4萬個電晶體,時鐘頻率由最初的6MHz逐步提高到20MHz。其內部和外部數據匯流排皆為16位,地址匯流排24位,可定址16MB記憶體。從80286開始,CPU的工作方式也演變出兩種來:實模式和保護模式。
Intel 80286處理器
1985年INTEL推出了80386晶片,它是80X86系列中的第一種32位微處理器,而且製造工藝也有了很大的進步,與80286相比,80386內部內含27.5萬個電晶體,時鐘頻率為12.5MHz,後提高到20MHz,25MHz,33MHz。80386的內部和外部數據匯流排都是32位,地址匯流排也是32位,可定址高達4GB記憶體。它除具有實模式和保護模式外,還增加了一種叫虛擬86的工作方式,可以通過同時模擬多個8086處理器來提供多任務能力。除了標準的80386晶片,也就是我們以前經常說的80386DX外,出於不同的市場和套用考慮,INTEL又陸續推出了一些其它類型的80386晶片:80386SX、80386SL、80386DL等。1988年推出的80386SX是市場定位在80286和80386DX之間的一種晶片,其與80386DX的不同在於外部數據匯流排和地址匯流排皆與80286相同,分別是16位和24位(即定址能力為16MB)。1990年推出的80386 SL和80386 DL都是低功耗、節能型晶片,主要用於便攜機和節能型台式機。80386 SL與80386 DL的不同在於前者是基於80386SX的,後者是基於80386DX的,但兩者皆增加了一種新的工作方式:系統管理方式(SMM)。當進入系統管理方式後,CPU就自動降低運行速度、控制顯示屏和硬碟等其它部件暫停工作,甚至停止運行,進入“休眠”狀態,以達到節能目的。
Intel 80386處理器
1989年,我們大家耳熟能詳的80486晶片由INTEL推出,這種晶片的偉大之處就在於它實破了100萬個電晶體的界限,集成了120萬個電晶體。80486的時鐘頻率從25MHz逐步提高到33MHz、50MHz。80486是將80386和數學協處理器80387以及一個8KB的高速快取集成在一個晶片內,並且在80X86系列中首次採用了RISC(精簡指令集)技術,可以在一個時鐘周期內執行一條指令。它還採用了突發匯流排方式,大大提高了與記憶體的數據交換速度。由於這些改進,80486的性能比帶有80387數學協處理器的80386DX提高了4倍。80486和80386一樣,也陸續出現了幾種類型。上面介紹的最初類型是80486DX。1990年推出了80486SX,它是486類型中的一種低價格機型,其與80486DX的區別在於它沒有數學協處理器。80486 DX2由系用了時鐘倍頻技術,也就是說晶片內部的運行速度是外部匯流排運行速度的兩倍,即晶片內部以2倍於系統時鐘的速度運行,但仍以原有時鐘速度與外界通訊。80486 DX2的內部時鐘頻率主要有40MHz、50MHz、66MHz等。80486 DX4也是採用了時鐘倍頻技術的晶片,它允許其內部單元以2倍或3倍於外部匯流排的速度運行。為了支持這種提高了的內部工作頻率,它的片內高速快取擴大到16KB。80486 DX4的時鐘頻率為100MHz,其運行速度比66MHz的80486 DX2快40%。80486也有SL增強類型,其具有系統管理方式,用於便攜機或節能型台式機。
發展戰略
即使沒有與套用有關的改進,性能上的改進也足以使x86獲得令人驚奇的成就。1978年,8086處理器問世的時候,它的工作頻率只有5MHz,晶片內的電晶體數量為2.9萬多個。 如今的四核英特爾桌上型電腦處理器的工作頻率已經達到3GHz,速度是8086的300多倍,晶片內的電晶體數量也增加到了8.2億多個,是原來的2.8萬倍。
卡內基梅隆大學計算機科學教授、英特爾研究顧問Todd Mowry說:“在不斷減小電晶體尺寸和其他技術改進的過程中,英特爾也遇到不少巨大的技術難題,英特爾對此進行了大量投資。”英特爾將其中一個問題稱作是右拐彎。隨著電路尺寸的縮小,散熱問題變得越來越難解決,只能通過增加晶片上的處理器核心數量來提升性能,而不能無限制地加快處理器時鐘速度。
Mowry說,隨後對提升性能的研究也就從硬體轉移到了軟體上。他說:“在研究社區,問題的重點不是我們如何開發出更好的處理器核心,而是如何將許多核心集成到一個晶片上。” 目前最有希望取得成功的解決方案是利用軟體互動記憶體的技術將多核心晶片並聯起來,那樣就可以在不損害共享數據的情況下保留並行執行緒,而且也不用鎖定或限制對那些數據的訪問。這是一種算法解決方案,屬於軟體範疇,但是對這種技術的支持可以被內建到x86硬體中去。
Mowry說,不斷在處理器晶片上增加更多核心,這種解決方案的唯一限制是軟體開發商利用那些核心的能力。最大的障礙就是思路的轉變,從串列思路轉向並行思路。Rattner預計,在未來五到七年內,每片晶片中的處理器核心數量將達到數百個。由於每個核心都擁有多條執行緒,因此晶片支持的並行執行緒的數量可能會超過1000個。 但是他也承認,現在這個世界上還沒有多少人知道如何利用好1000條執行緒。
Rattner提到了英特爾實驗室中正在開發的一些相當有趣的東西。例如,他提到x86體系架構將包括對安全的一些新硬體支持,這樣整個架構在面對攻擊時就有更強的抵抗力。但是他沒有透露更多的詳細資料。他還提到了即將推出的基於x86體系架構的Larrabee晶片,這款圖形處理單元足以同NVIDIA和AMD旗下的ATI生產的專業圖形處理單元相抗衡。 Larrabee將包含一整套全新的可視計算指令。與競爭對手的高度專業化圖形處理單元不同的是,Larrabee是對通用x86體系架構的擴展。 他說:“我們可以保證這種體系架構的穩定性和耐用性,它的性能將超出大多數人的預料。”
AMD顯然也有類似的計畫。AMD在1月份宣布,打算推出一款名為Fusion的混合CPU-GPU晶片,Fusion將是現有Phenom系列處理器的一個擴展產品。 AMD稱,Fusion將作為筆記本電腦的一個雙核處理器在2009年推出。剛剛面向迷你筆記本電腦市場發布VIA NANO處理器的威盛電子公司也表示,它將繼續把高能效系列的x86處理器的目標市場鎖定在移動市場,同時也會向台式機電腦市場拓展。雖然有些全新的微處理機體系架構可能會冒出來並排擠x86體系架構,但是Rattner認為,x86體系架構仍可受到Wintel軟體的保護,後者曾在上個世紀八十年代末期幫助x86體系架構化解了RISC處理器對它構成的威脅。他說:“除非你能夠站出來宣布你可以用不同的指令集將性能提高五倍,否則x86體系架構的地位不會受到太大影響。”
但是這並不是說隨著矽電晶體數量的增加,x86指令集就不會以全新的方式得到套用。40多年來,電晶體一直被置於矽片表面的下方。現在出現了一種新技術,可以將它們安裝在矽片表面的上方。那樣就有可能用矽之外的其他材料來生產電晶體了,比如像砷化鎵那樣的材料擁有更好的能量和性能特性。Rattner說:“在一二代產品(大約二到四年)內,我們還不能開發出電晶體位於矽片表面上的處理器產品,但是處理器生產材料必定會在未來十年發生許多創新。”威盛電子的Centaur研究中心總裁Glenn Henry說:“在低端方面,x86體系架構的發展空間是有限的,它就像是烤箱或者汽車裡的燃料噴射器一樣。如果你想開發出核子彈那樣的高端產品,可能也存在一個限制。在這兩者之間,x86體系架構已經多次證明它是可以適應的。”
雖然英特爾正在開發基於全新電晶體的電子學,但是Rattner指出,英特爾最多只能在晶片中增加更多的核心。比如為量子和DNA計算服務開發的處理器。他解釋說:“那確實改變了計算服務的數學基礎,而且風險也很大。 同時它們可能只能套用於非常窄的套用領域,不能用於通用計算服務。” 要想實現那些新技術,至少還要20年的時間。他說:“我預計只有當我們真的開始達到傳統技術的頂峰時,人們才會去認真對待那些新技術。”
選型注意
1) 超強計算性能滿足業務需求與成長
傳統X86處理器由於架構和原理上的差異,因此在面對並行計算需求強,浮點運算和大規模資料庫時的性能往往不能與RISC架構處理器相比。除了這些對處理器架構有所依賴的“硬指標”之外,資料庫套用往往還需要多核處理器在互聯上以及記憶體訪問上擁有較高的頻寬——因為其數據吞吐量大,計算隨機性和突發性大。這也是x86處理器長期以來的軟肋。
此外,用戶在選購伺服器時往往還會考慮未來的可擴展性,尤其是處理器方面。傳統的x86處理器很難直接支持4路以上的擴展,因此在資料庫業務拓展上存在瓶頸。
但近幾年x86處理器性能提升很快,尤其是英特爾Tick-Tock戰略推出之後,x86處理器以一年架構、一年工藝的速度飛快發展,與RISC處理器的性能差距越來越小,在某些方面甚至超越了RISC。
英特爾最新發布的至強7500系列處理器,不但可以支持2路到最高256路伺服器的拓展,滿足業務拓展,此外還通過強大的Nehalem-EX架構使其在計算性能上不弱於當今主流RISC處理器,為資料庫套用開闢了新路。
與上一代至強7400相比,至強7500採用8核(高端版本)封裝,加上超執行緒技術(HT),一舉將邏輯計算執行緒提升到了16條,資料庫並行處理能力大大增加。據英特爾官方數據,處理器在數據方面的計算性能是上一代的2.5倍,而其中最顯著的功效來源於4條QPI直連匯流排帶來的超快通訊速度(可到6.4GT/s,遠非以往FSB匯流排所能企及)、超大的L3快取(多達24MB)和9倍於前的記憶體頻寬(四通道DDR3)。
這一系列技術使得至強7500成為目前最強的x86處理器,足以輕鬆應對現有資料庫套用的升級,並獲得較高的整合效率。在專業針對資料庫套用的TCP-E測試中(詳見:至強7500橫空出世 TCP-E資料庫測試名列榜首),採用了至強7500系列處理器的NEC和IBM伺服器分別獲得了前兩名,足見其性能之強悍。
2) 保證可靠性是x86處理器的必修課
但是另一個擺在我們面前的問題是處理器的可靠性問題。眾所周之,企業中的資料庫作為支撐前台業務的核心,其可靠性要保證在99.9%以上。而與RISC平台相比,x86處理器由於計算原理所限,在計算可靠性和精確性上有天然缺陷。也因此,關鍵業務領域一直以來都選用的是RISC平台,而x86平台被看做是不穩定、不可靠的通用計算平台。
在資料庫規模日趨龐大的今天,很多企業在猶豫是保有原來的x86平台資料庫,承擔可能的風險;還是遷移到RISC小型機上,承擔一大筆成本。實際上,這類矛盾和擔憂一直存在於關鍵業務領域在x86平台和RISC平台的博弈中。甚至有DBA在採訪中稱:“性能高、穩定性又能與小型機媲美,我當然會選擇相對靈活的x86平台,因為成本要少很多。” 可見,x86平台的開源和低成本是吸引資料庫用戶部署的主要因素。另一方面,x86處理器在說服資料庫用戶時,迫切需要提高的就是可靠性。
傳統上來說,RISC+UNIX比x86+Linux或Windows更穩定。RISC伺服器在硬體架構設計上與X86伺服器有很大的差別,使用了非常多的冗餘技術和高可用技術,因此可靠性較高,當然成本也更高。X86伺服器的硬體質量水平參差不齊,有高有低,硬體做工上稍差。不過,X86伺服器——尤其是X86處理器與RISC處理器的可靠性比拼上,也在不斷進步。
在至強7500的正式說明文檔中,提到的RAS特性就有22條之多,集中解決三個方面的問題:一是數據保護,利用CRC、ECC等硬體機制來對傳輸的數據進行校驗、糾錯,如果無法糾正,就將損壞的數據進行隔離,以保證不造成更大的數據,避免系統的重啟和宕機。二是高可用性,包括各種主要部件的備、鏡像和熱切換等,以保證系統的高可用性。 三是計畫宕機時間最小化,包括系統分區管理技術、CPU和記憶體的熱添加和熱移除等,將系統維護時間降低到最小。
這些特性形成了一個完整的MCA架構(Machine Check Architecture),可以在不關機的情況下檢查和糾正處理器、記憶體或者IO中的錯誤,在OS配合的情況可以對系統進行熱維護,保障系統的不間斷運行。據了解,原先只在IA64架構處理器上才有MCA功能;而系統方面,包括微軟Windows Server、RedHat、suselinux以及VMware等平台都已經支持這一功能。
3) 從採購到運營 強勢生態造就低成本
如果說以前企業在考慮購買資料庫伺服器時,考慮的僅僅是性能足夠。那么今天的企業IT部門在部署資料庫伺服器時,更多考慮的是其性能是否適用於未來業務的拓展。
從性價比來看,至強7500由於性能相比上一代產品提升2.5倍(資料庫套用),因此在同樣規模的業務量下,部署數量也相應要較少2倍多。而售價上至強7500隻上升了約10%,這筆帳想必買家都會計算。但是如前文分析,設備的淘汰和折舊,產品生命周期,能否適應業務的升級,是現在用戶更加關注的問題。在未來資料庫規模拓展,需要更多計算量的時候,至強7500提供了兩種選擇:一種是無縫升級到更多核心的處理器;另一種是拓展成多路伺服器系統。前文已經說過,至強7500支持2路到最高256路的多路伺服器系統,其中8路以下拓展不需要第三方節電控制器的支持。拓展之後的性能,也因為QPI匯流排的內部互聯而徹底解除了瓶頸。
此外,至強7500系列處理器支持多達16條DIMM記憶體插槽。在Dell新推出的至強7500伺服器中,創造性的採用Flex Memory Bridge技術,使得一個四路伺服器在僅插兩個處理器的情況下,每個處理器可以使用另外沒插處理器的8條DIMM記憶體插槽(每個處理器標配了8個DIMM記憶體插槽),也就是兩個處理器可以用全伺服器內的32條記憶體插槽(請自行理解)。這給了用戶極大的靈活性——有的用戶資料庫規模大,運算量卻並不大,因而僅需要記憶體多,而並不需要插滿四個處理器。
另一方面,受去年金融危機的影響,IT業界普遍認為未來的IT系統應更加注重能效比(有數據稱數據中心兩年的電費等於採購成本)。至強7500相比上一代處理器平均性能提升了3倍,而功耗在95W~130W之間,因此可以說“在性能相同的情況下,電費僅為過去的1/3”。 與小型機相比,至強7500的x86生態環境更加開放,支持Linux、Windows、Solaris等多種作業系統。此外,由於x86平台軟體廠商眾多,支持的套用軟體數量遠遠多於RISC+UNIX,因此可以更加靈活地適應各種環境變化,資料庫遷移相對容易。
從整個產業的發展來看,X86伺服器有廣泛的生態系統,各種軟硬體廠商數量眾多,用戶甚礎也相當龐大,整個產業有強大在的生命力。而RISC小型機的廠商各自為戰,IBM、HP、Sun自成一家,硬體和作業系統都相對封閉很多,因此生命力不如X86。而基於以上三大方面的考慮,RISC平台在傳統資料庫領域的性能優勢、可靠性優勢和可拓展性優勢仍然存在,但在以至強7500為首的x86處理器的衝擊下,差距正逐漸縮小。我們相信,在x86和RISC平台的爭奪與發展中,受益的永遠是用戶。
未來發展
空間的限制
雖然微處理器和周邊裝置在過去幾年中在某種程度上維持了一個算是比較固定的大小,但是有一個地方卻在占用的空間上非常快速的增加,那就是系統的記憶體。低成本的DRAM和當今的高效能處理器兩個條件結合在一起,使得CompactPCI處理器卡板在記憶體的需求急遽地上升,大部分的供貨商在單槽的CompactPCI卡板上提供1 or 2 GB的記憶體,這些記憶體一般是透過直接附著在卡板上的DRAM,再加上SO-DIMM的擴充槽來達成。下一代的設計將會用到4到8 GB的記憶體,設計者使用典型密度約2GB的SDIMM,在CompactPCI的設計上需用DIMM底座來達到8GB的記憶體。在下一代的卡板設計上,設計者必須要找到方法在一塊卡板上放入38個或更多的DRAM,而且還能夠提供滿足客戶期望的豐富多樣周邊裝置,512MB和1GB密集度的記憶體晶片將會是必需品。卡板大小所面臨的挑戰,將是在能完整發揮記憶體運作下,將記憶體設備置入並做線路規劃,這個目標是可以達成的,但是比較起以往的設計來說,會花上更長的規劃與設計周期。
微處理器功率設計導引
在CompactPCI演進的歷史軌跡中,x86處理器已經經歷過非常顯著的變化。有些非常早期的卡板用的是66MHz的CPU,目前這一代的x86產品,包含了1.7GHz Mobile Pentium 4 CPU。在嵌入式工業對支持長生命周期的產品需求,造成了產品製造廠在處理器的選擇上,傾向從嵌入式或有長周期支持的產品線去選擇。這些產品並不像桌上型計算機或伺服器的處理器那樣走得那么先端,這些產品的生命周期是用年而不是用月來計算的。此外,這個產業也藉由使用mobile processor而取得一些優勢,這種處理器在電源供應的需求上和嵌入式以及電信領域的套用非常類似。下圖提供了Pentium各系列的處理器與其功率消耗的一個關連性,可以看到Pentium III與Mobile Pentium 4處理器家族的產品符合了今日CompactPCI板卡對處理器所提供的30Watts功率規格。
展望未來x86的設計,我們可以預期到CompactPCI卡板的設計將必須支持會消耗到60甚至80Watts的處理器。要解決這個問題,將需要更強的散熱片設計與更佳的熱管理。卡板與機構設計者在協力合作解決散熱問題挑戰上的能力,對下一代的設計工作將是非常重要。
板卡電源
CompactPCI卡板透過J1/J2的連線器來接收電源。有8個3.3V、6個5V、1個+12V、1個-12V的電源接腳。這些接腳供應1安培 IEC61076-4-101規格的電。每個接腳一安培的限制是保守的,而且某種程度上會誤導讓人以為所有的接腳可以在周邊溫度70°C的狀況下去接一安培的電流。在現實狀況中並不是所有連線器中的接腳都負載到最大的電流量,事實上大部分的CompactPCI接腳都是負載在以毫安為單位的電流範圍中。70°C一安培的限制,是基於流過接腳的電流所產生的熱。當電流增加時,也加大了跨過接腳的電位差。產生的熱是一種電壓和電流的函式,電壓和電流的增加會使連線器接腳的溫度上升。在CompactPCI中有最顯著電流量的的接腳,是電源供應器接腳。如果設計者假設J1/J2連線器中的其它所有接腳都有電流負載,每一個接腳的最大電流則會是在40°C 2.5Amps, 這個信息可以在IEC61076-4-101的規格中的4.2.3中被找到。在每個接腳2.5安培的條件下,板卡可取得的功率大小如下表所示,此表顯示出卡板的設計者最多可以從J1/J2連線器中拉出200Watts的電。
Voltage Number of Pins Power 3.3V 8 66W +5V 6 75W +12V 1 30W -12V 1 30W -12V 201W
CompactPCI卡板上的電源供應狀況 設計者必須注意對任何的個別供應電壓,不要超過其功率上限。典型的DC-DC轉換的產生會造成CPU的核心電壓流出+12V,即使增加電流在+12V上可額外得到功率,也很可能難以滿足下一代的處理器。設計者必須要注意去平衡輸入電壓的使用,而不要使個別的供電超出了最大的功率值。從一個使用者的觀點來看,他必須注意要確保整個系統裡面卡板所需的功率不會超過系統所能提供的上限,檢查電源供應器的建議功率值,確保整體的承載不會超過系統所能供應的。散熱問題
將CompactPCI卡板上產生的熱能移除是一大挑戰。用風扇將風吹進來是非常典型用來進行卡板冷卻散熱的方式。直覺來看,似乎透過增加散熱片上的空氣對流或散熱片本身的大小就足以解決散熱的問題。事實上,用加強吹風散熱或增大散熱片的方式都會受到限制。大部分的CompactPCI卡板都有PMC(PCI Mezzanine Card)的區域與記憶體模組影響了散熱片大小的擴增.此外,處理器所產生的熱能會集中在一個小的區域內,增加散熱片的大小並不能等比例地達到強化散熱的效果。另外一個因素是散熱片本身的散熱能力,我們稱之為熱阻(Thermal Resistance) 。熱阻的單位是°C/W,當要被發散的能量上升時,可預期到周邊的溫度一定會上升。舉例來說,一顆處理器產生了40W的能量要被發散,散熱片的熱阻如果是0.5°C/W,這處理器的溫度就會比其周邊高出20度。下圖提供了一般的熱阻、散熱片大小與風速的對應關係,請注意到圖形中的X軸與Y軸是以對數的方式呈現。
從圖上可以看出散熱片的散熱能力並不和風速成一線性函式,在熱阻上一個非常顯著的改善,會在稍呈對流狀態的空氣與每分鐘500英尺的風速情況下顯現出來,但是從每分鐘500英尺增加到每分鐘1000英尺的風速時,熱阻的改善就沒那么顯著了。另一個用吹風方式的限制因素是噪音,當吹過卡板與散熱片的風速增加時,所產生的噪音也會增加。從實務面來看,大部分的CompactPCI機箱提供每分鐘300英尺的風速,如先前提到的,散熱片通常會被記憶體以及PMC的空間給限制了大小,一個CompactPCI卡板若含有兩個PMC的設計,通常會有一個處理器散熱片的大小約為3 inch x 4.5 inch x 0.7 inch或9.45立方英吋, ,這樣通常約在每分鐘300英尺的風速下有0.62°C/W的熱阻,大部分的處理器在最熱的例子下會到70°C,在一個嵌入式的套用中,周邊的最高溫很容易就達到50°C,透過這些信息,當遇到限制時,一顆微處理器所能產生出來的熱量可透過下列的公式計算而得:最高溫度=熱阻 x 功率 + 周邊溫度(最高溫度-周邊溫度)/ 熱阻= 功率 (70-50)/0.62= 32Watt。
一個32W的功率讓一顆Pentium 4的處理器可以跑到1.7GHz,要增加處理器的速度則讓我們必須增加散熱片的大小,或是降低最大操作溫度、增強吹風,或者是這些方法中的某種組合。下一代的設計目標會是達到3GHz的P4處理器,那表示我們必須要能處理65W的熱能。下一代的卡板由於將具備更加多樣豐富的功能與規格,勢必難以在增加散熱片大小上做文章,多出來的33W將必須通過增加風速和降低最大操作溫度來達成。每分鐘450英尺的風速,散熱片熱阻0.45°C/W,周邊操作溫度可被降到40°C。如果給定這樣的條件,處理器最大的功率將是 (70-40)/0.45=66Watts,這樣剛好進到足以處理的區間。這樣的計算顯示出通過增加風速和改變溫度的規格,是有可能提升處理器的效能的。要注意的是,熱阻的大小將會隨散熱片附著方式的不同而有所變化。另外要考慮的一點是,處理器所產生的熱通常會在中間,而且並不會均勻地分布在散熱片上,如此也降低了散熱片的散熱效能,熱模擬在確認熱處理解決方案時是必要的。下一代卡板的使用者,將需要確定所使用的機箱能提供的風速足以確保處理器能在其規格的極限上運轉。
大事記
1947:
貝爾實驗室發明電晶體。
1965:
Fairchild半導體公司的戈登•摩爾發現了著名的“摩爾定律”:微處理器每過二年其運算速度會翻一番。
1968:
摩爾、Robert Noyce和Andy Grove創辦了英特爾公司,開始從事“INTegrated ELectronics”(集成電子)事業。
1971:
英特爾發布了全球第一塊微處理器,4位的Intel 4004,設計者為Federico Faggin。
1972:
英特爾發布8位8008處理器。年輕的比爾•蓋茨和保羅•艾倫嘗試著為這塊晶片開發程式語言,但效果並不好。
1974:
英特爾發布了8位8080處理器,帶有4500個電晶體,性能超過8008處理器10倍以上。
1975:
8080處理器在Altair 8800計算機上找到了第一個用武之地,從而引發了PC革命。
1976:
x86體系架構遭遇對手,Steve Jobs和Steve Wozniak發布了使用8位6502處理器的蘋果II電腦。
1978:
英特爾發布16位8086處理器,後來成為行業標準。
1979:
英特爾推出低成本8086版本,即套用8位匯流排的8088處理器。
1980:
英特爾推出8087數學協處理器。
1981:
IBM選擇了Intel 8088裝備其IBM PC。一位英特爾高管後來稱此舉為“英特爾有史以來最偉大的勝利。”
1982:
IBM與AMD簽署協定,將AMD作為8086和8088的第二個供應商。
1982:
英特爾發布16位80286處理器,集成了134000個電晶體。
1984:
IBM開發出第二代PC,即80286 PC-AT。PC-AT運行MS-DOS,成為PC行業的事實標準長達10年之久。
1985:
英特爾退出DRAM業務,專注於微處理器的研製和生產,很快推出了32位80386處理器。
1986:
Compaq推出了80386 PC。
1987:
VIA科技在加州Fremont創辦,專門銷售x86核心邏輯晶片組。
1989:
80486發布,內置數學協處理器。
1990:
Compaq推出業界首台PC伺服器,採用了80486處理器。
1993:
310萬電晶體、66MHz的Pentium處理器問世。
1995:
RISC架構殺手Pentium Pro亮相。
1997:
英特爾發布64位Epic處理器技術。
1998:
英特爾推出低端賽揚處理器。
2000:
英特爾Pentium 4首次亮相,集成了4200萬個電晶體。
2003:
AMD推出了x86-64指令集,這是x86指令集的64位超集。
2004:
AMD演示了x86雙核處理器。
2005:
•英特爾交付第一款雙核處理器。
•蘋果宣布將把其Macintosh電腦所用的處理器從Freescale和IBM製造的PowerPC轉向英特爾的x86處理器家族。
2006:
英特爾發布首款至強四核處理器Xeon 5300。
2007:
•AMD發布四核皓龍(巴塞隆納)處理器。
•英特爾推出處理器的45納米製程工藝。