- 走入IBM小型機世界
- Orian編著
- 4766字
- 2018-12-28 23:12:04
CHAPTER1 認識IBM小型機
It was the best of times, it was the worst of times.
——Charles Dickens, A Tale of Two Cities
本章要點
◆ 什么是小型機,小型機的歷史
◆ RISC, CISC, 各種CPU
◆ IBM /小型機行業術語
1.1 小型機和小型機的歷史
讓我們先回到十幾年前,重溫一下IT大時代發展的背景。20世紀70、80年代伴隨著DOS,Windows,8086成長起來的電腦發燒友們都有過自己攢機的經歷,對Intel的Xeon、AMD的Athlon、825主板、Seagate硬盤、ATI顯卡之類耳熟能詳,覺得計算機不過如此而已。然而,真正踏入IT行業的朋友會忽然之間發現計算機遠非這么簡單,單單CPU就有IBM的POWER系列;惠普的PA-RISC、EV系列(原DEC產品);Sun的SPARC系列;Intel的IA-64等。這些CPU之間幾乎完全互不兼容,大部分不能運行Windows操作系統,與自己所熟知的PC系列產品大相徑庭。但是這些CPU卻是高端計算機市場的核心產品,與僅僅價值幾千元的PC相比,少則幾十萬,動輒上千萬一臺,如此巨大的價值差距讓我們不得不去思考這些“另類”的“計算機”到底有哪些關鍵之處勝過PC?
本書的目的之一就是要向大家詳細介紹這一大類計算機。它們有很多種,經常被稱為“小型機”、“小機”或者“UNIX服務器”。由于作者涉獵范圍有限,不能歷數所有類型的小型機,只能聚焦于其中市場前景最好的一款計算機(小型機)產品:IBM公司的eServer pSeries計算機,其他相近的小型機產品只能略有提及。
所謂小型機是一個歷史遺留的概念,由于口耳相傳,已經約定俗成。在許久以前(其實也并不太久,只有三、四十年的時間),計算機都是很大的家伙,在一棟機房幾百平方米的空間內只能安置下一臺計算機,因此這些計算機都被叫做“大型計算機”,最著名的是IBM的360/390系列計算機,被稱為“Mainframe”。此名字的由來也許正是因為它太大了,“矗立”在那里如同一面屏風。
電子技術日新月異,計算機在以驚人的速度小型化、微型化,兩個不同時代的計算機產品之間喪失了可比性,但如果是生產于同一時代的計算機,體積大的計算機計算能力當然會更強一些,由于生產數量較少,其價格也比較昂貴;相對體積小的計算機能力則稍遜一籌,不過由于價格便宜,普及度比“大型”計算機更廣。
計算機作為一種電子產品,本身的使用壽命很長,甚至可以使用10年以上。在這期間,市場上可能已經產生了3~5代新計算機產品,因此就會發生“四世同堂”的現象。在幾十年前,市場依據其外觀“大小”,將計算機稱為“大型機”、“中型機”或者“小型機”,而最小的被叫做“微型機”或“個人計算機”,也就是我們常說的PC機——Personal Computer。體積較大的計算機由于能力強,一般多用于處理復雜的商業業務或者同時為許多人服務,因此又被稱為服務器;體積小的PC機則是為了個人用戶完成簡單的工作而設計的。
這些計算機生產之初,沒有統一的標準和型號,每個計算機公司都有自己的硬件、操作系統、軟件標準。即使同樣都是PC機,也有很多種類,甚至在同一類硬件設備上,也有許多種操作系統可以運行。所有這些硬件、軟件產品之間,幾乎都是不通用的,也就是說,沒有兼容性。
隨著IT技術和市場的演化,硬件、操作系統、軟件產品之間競爭激烈,很多硬件平臺、操作系統都已經銷聲匿跡。特別是在PC機領域,由于生產量巨大,規模效應非常明顯,一旦某一個標準取得了微弱的優勢,其生產成本、使用成本會比其他標準更低廉,因此能夠快速將差距拉大,并最終形成事實上的壟斷。在這種情況下,最終操作系統有Windows,硬件CPU有x86標準一統天下。在非PC機領域,計算機產品的銷售量比PC機少很多,規模效應還沒有成為決定因素,可靠性、可管理性、性能、現有人力技術資源等方面的因素互相牽制,使得每一種計算機都有自己的生存空間,沒有哪一家能夠獨占鰲頭。
計算機芯片的集成度越來越高,能力越來越強,外形尺度卻越來越小,在體積從“大型”變成“中型”和“小型”的過程中,性能和處理能力不但沒有降低,反而大幅度提高。不同時代的計算機之間已經無法用“大型”、“小型”作為比較其性能指標的依據。“四世同堂”的太爺爺是10年前耗資千萬買來的大型機,卻不如幾年前價值百萬的小型機,而可能跟最新購買的幾萬元的高端PC機性能相差無幾,“大”與“小”在此已經失去了意義。
若干年的競爭之后,計算機市場最終形成了兩大類產品:個人計算機(PC機)和商用計算機。在PC機領域,由于信息技術能夠提供近乎零的軟件復制成本(盜版現象在此發揮了重要的作用),導致異常明顯的規模效應,其他硬件平臺和操作系統的生存空間被侵蝕殆盡,微軟的Windows操作系統和x86硬件平臺從競爭中勝出,僅存的蘋果電腦(型號為Macintosh)也只能在圖形顯示和處理領域還有些回旋的余地,其他所有為個人用戶設計的計算機硬件平臺和操作系統都在計算機發展史中被“滅絕”了。當然,近年來Linux異軍突起,已經成為PC市場上有可能與Windows操作系統一爭雌雄的另一種操作系統,這種現象大概是“合法盜版”(即Open Source開源軟件)的威力吧!
另外在某些專業場合,例如作為更大型計算機設備的控制終端,或者是作為嵌入式(附屬于一個電器設備,提供簡單的管理功能)的計算機系統,還能見到其他一些硬件CPU“殘骸”。不過“殘骸”這個詞并不意味著稀少,有一些資料統計,世界上每有1塊x86 CPU,就有9塊嵌入式CPU。舉例來說,一部普通的汽車上就有5~8塊嵌入式CPU,而高檔汽車可能擁有多達幾十塊嵌入式CPU用于協助駕駛者控制油門、剎車、方向,甚至用于汽車音響播放MP3音樂、提供GPS導航服務,而且幾乎都不是x86系列的CPU。
正如PC機當初的名字所揭示的:PC機的使用者往往是一個人,即使幾個人共用一臺PC機,也不會同時使用。與PC機相對應的另一類計算機(商用計算機或非個人計算機)則天生就是為了多人同時使用而設計的。由于設計目標不同,此類計算機往往比同時代的PC機體積更大一些,因此具有更為強大的處理能力和穩定性(當然也更為昂貴),并且使用一些專用的軟件和操作系統以便支持與個人用戶的文字處理、圖形顯示截然不同的功能。
很早以前的非個人計算機通過被稱為“啞終端”或者“傻終端”的設備利用RS/232標準串行通信接口與大型計算機相連,提供字符方式的訪問界面;隨著網絡技術發展,非個人計算機增強了對網絡訪問的服務能力,用戶可以使用模擬終端(運行著字符終端仿真程序的個人計算機)或者使用具有圖形顯示功能的終端(X終端或運行X仿真程序的個人計算機)與商用計算機進行命令、信息交互。
隨著IT技術被越來越多地引入到商業環境之中,需要計算機處理的業務過程越來越復雜,一臺計算機已經不能獨立完成全部業務處理工作,這些處理要求被細分,每臺計算機運行一種大型商業軟件,完成一類處理功能,多臺計算機構成一個業務處理體系,計算機和計算機之間、計算機和最終使用者之間通過網絡連通,不再通過終端提供命令行方式的交互操作界面,而是依靠網絡傳送處理要求,再通過網絡返回處理結果,交由個人計算機用圖形方式展示結果。由于這些計算機可以(通常也是僅僅可以)通過網絡向使用者提供處理、服務,因此又被稱為網絡服務器或者簡稱為服務器。
個人計算機在初期的性能較差,不能勝任復雜的圖形處理工作(例如CAD,即計算機輔助設計),此類處理工作必須使用能力更強的中、小型計算機,專用于這種用途的中小型計算機又被稱為Workstation——工作站。
由此可見,PC、服務器、小型機、大型機僅僅是從不同角度,在不同時代對不同計算機的命名,這些計算機之間有許多相似之處,很多組件和功能也是相同的。其中,服務器更傾向于提供網絡服務,可能是大型機,也可能就是PC機(一臺按照服務器的需求而設計的PC機被稱為PC服務器)。PC服務器與你面前的臺式機都使用“PC”這個名稱是由于它們使用相同的CPU(處理器,一般是Intel或AMD生產的x86兼容系列)。大型機、小型機平均來說比PC機性能(網絡服務相關的功能)更強,當然也并不是絕對如此。
經過這么多年的變遷之后,業界對于以上這些名詞的使用已經日趨統一:
● 大型機
大型機,又叫做Mainframe,通常特指IBM的生產的一款服務器系列——eServer zSeries(原為390系列)。此系列服務器從20世紀60~70年代開始設計、生產,歷經半個世紀,專門用于商業交易處理環境。雖然Mainframe歷史悠久,但由于依然在不斷進行技術創新、改良產品,至今仍然占領著高端商業交易領域,曾經幾度被預言即將退出歷史舞臺,而每次卻又都能神奇地逃過劫難,老樹新花。
Mainframe可以算做是商業服務器領域的遺留貴族,看似沒落,卻有著非常深厚的底蘊,其功能已經極端專業化,力求滿足各種商業交易環境的苛刻要求:例如非常穩定、安全性極高,一臺計算機能夠高效率地支持幾千,甚至幾萬用戶的并發訪問,并可以嚴格保證每個訪問的響應時間(通常Unix服務器支持的并發訪問是幾百到一兩千這個范圍),而其計算能力(復雜數學公式計算)卻不是很好。這些特點使得它比較適合商業環境的需求。
● 小型機、UNIX服務器
小型機則用來泛指各個計算機廠商生產的基于RISC(Reduced Instruction Set Computer,精簡指令集計算機)技術的CPU,運行UNIX一類操作系統(每個廠商都有自己“改良版”的UNIX)的服務器。此類服務器是計算機世界的“中產階級”,擔負著商業領域計算、處理的重擔,由于其開放(兼容)的特點,采購、維護、軟件成本低,為眾多用戶所喜愛,隨著其綜合能力直逼大型機,并且單憑其某方面的處理性能——例如計算能力——已經可以凌駕于大型機之上,所以逐漸占據了商業服務器市場主導地位。
● PC機及PC服務器
PC機指兼容x86指令集(可以這樣理解兼容的概念:軟件copy過來就可以使用),由Intel或者AMD生產的x86系列CPU為核心的個人計算機(通常為單CPU設計),用于個人的文字處理、郵件、網絡瀏覽、甚至游戲。PC服務器則是以x86 CPU為核心處理器,專門為提供網絡服務優化過的計算機,可以安裝多塊CPU和擁有更多的連接擴展卡接口。PC服務器的操作系統也以Windows居多,現在大部分還可以運行Linux操作系統(Redhat,SuSe,Turbo等)或者Sun公司的Solaris86版。
● IBM的pSeries小型機
作為UNIX服務器產品中的一員,IBM的pSeries服務器是一款非常成功的“小型機”,在許多商業領域擔當重要角色,國內有數十萬臺的裝機量,就業市場上對于pSeries服務器相關技術人員的需求也非常大。但pSeries服務器還遠沒有PC那樣普及到隨處可見,在PC上也無法運行pSeries所使用的AIX操作系統(也是UNIX的一種),即使使用VMWare等虛擬機也不可以。這是因為VMWare與在PC上運行的游戲機仿真程序不同,模擬的“虛擬機”還是x86系列指令,而pSeries / AIX使用的是POWER CPU/指令集,這兩種指令集之間二進制不兼容,也就沒有辦法讓為pSeries編譯的AIX操作系統軟件在PC上運行。
問題:什么是指令集?
答案:指令集就是計算機CPU可以直接解讀的“語言”。程序能否在此CPU上運行,最關鍵因素之一就是兩種類型CPU的指令集相互兼容,即“講”同一種語言。當然,如果兩類系統的總線、外部設備相差太大,也會影響到程序是否可以執行。不過如果指令集相同,就可以在不太降低系統性能的情況下仿真執行另一系統的程序。如果指令集不同,盡管也可以仿真,但這個“翻譯”工作往往以犧牲性能為代價。也就是說,仿真執行不同指令集的代碼,性能只能達到前一兩代CPU的性能。
如果想要走入小型機的領域,去了解pSeries和AIX,如何能快速入門?一臺試驗機似乎是最有效的辦法,但是想擁有價值幾十萬元、上百萬元的pSeries服務器作為試驗機,對于個人實在太難實現,即便是大企業也舍不得投入如此高昂的資金用于購買員工培訓機,而生產機又絕不可能允許在上面任意操作,因此試驗機這條路也不大暢通;另一方面,沒有相關技能想進入此領域獲得更多“練手”機會障礙頗多,這成了雞和蛋的悖論。其實,pSeries服務器的超級可伸縮性讓我們可以見到只有幾千元的二手服務器(工作站),或者幾萬元全新的低端服務器產品,這些機器與價值幾百萬的高端服務器相比,90%以上的軟件操作過程都相同,硬件結構和概念也非常類似。與我們所熟知的Windows操作系統不同,Windows有個人使用的XP / Professional個人機版,也有企業用的Enterprise服務器版,還有給大型數據中心服務器使用的Data Center服務器版,AIX無論在什么型號的機器上運行,只有一個版本,使用一套介質,在不同檔次的pSeries服務器上運行的AIX操作系統界面和命令完全相同,只是在低端機器上,有些命令無法使用,或者由于沒有高端機型上才有的設備,不能對其進行操作而已。
提到小型機就要談一談RISC和CISC。我們所熟知的Intel x86系列CPU或者AMD的兼容CPU采用的都是CISC技術。而小型機卻幾乎清一色都是采用RISC技術。
1.1.1 RISC、CISC和CPU生產技術
許多著名計算機廠商都生產或者生產過小型機,這些計算機的特點是采用RISC CPU作為核心處理器,運行某一種UNIX操作系統。RISC(Reduced Instruction Set Computer精簡指令集)是一種計算機處理器設計技術,由IBM沃森實驗室在1974年研發大型電信網絡處理器時提出。RISC主導思想是簡化CPU設計、簡化指令處理,爭取在每個CPU時鐘周期內執行完一條指令。由于程序邏輯很復雜,而CPU指令很簡單,所以需要編譯程序功能更為強大,能夠將復雜的高級語言語句程序分解、轉化為非常簡單的,CPU可直接處理的指令,這些操作在程序編譯的時候由程序編譯器自動完成。
IBM的首席科學家之一John Cocke最先提出RISC思想。他深入分析了當時的CPU硬件設計和生產技術之后,發現軟件優化工作相對更容易,也能更加靈活地進行,硬件設計則相對更為復雜、單位成本更高,并且不能對同一產品持續優化。這一點非常好理解:我們可以不斷地升級軟件、打補丁,但是從未把一塊芯片拆開,修改里面的電路,更換硬件芯片的成本又太高,大型計算機2/3以上的成本都在于CPU。而且如果只讓CPU執行有限的、比較簡單的指令時,同樣的設計和生產工藝能讓CPU具有更快的處理速度。今天,RISC架構已經成為大部分工作站和UNIX服務器的核心技術,John Cocke在1987年也因此獲得了圖靈獎,如圖1-1所示。

圖1-1 John Cocke和RISC處理器版
問題:CPU的性能由什么決定?
答案:CPU的性能由以下4個方面決定:
指令效率:一條指令能實現多少操作,例如一個乘法運算需要幾條指令完成;
并行指令數:一個CPU能同時執行的指令數,有超流水線、超標量兩種技術;
指令消耗的時鐘周期:一條指令需要幾個時鐘周期完成;
CPU主頻:一秒鐘內CPU可以完成多少個時鐘周期。
思考問題:CPU的性能是否就是計算機的性能?
至今依然有CISC(復雜指令集)和RISC之爭,但現在看起來CISC與RISC似乎都是不錯的選擇,并沒有懸殊的優劣之分,實際上它們一直在相互學習,現在CISC CPU指令也不會隨意增加、變得無比復雜;而RISC CPU也設計了一些復雜的指令,允許在更多的時間周期內完成。在幾十年前CISC一枝獨秀的時候,RISC技術確實引發了計算機處理器設計的革命,并產生了眾多RISC CPU。在具體介紹這些CPU/處理器之前,我們先了解一下CPU(大規模集成電路)的生產過程,如圖1-2所示。
(1)在芯片工廠里非常純凈的硅被加熱熔融變成“硅溶液”之后,在其中放入很純凈的一小粒硅結晶,并不斷向上拉伸出“硅溶液”,“硅溶液”就以這個結晶為“種子”,在其周圍凝結,通過控制環境溫度和拉伸速度,保證凝結過程平穩,硅結晶就會非常整齊,成為圓柱形的單晶硅鑄塊,此過程被稱為Growing Ingot(鑄塊生成)。

圖1-2 由硅到芯片(尚未切割、封裝)
(2)下一步,鑄塊被切割成單晶硅晶圓薄片(Wafer Slicing),如圖1-3所示。我們經常聽到120mm,150mm,300mm晶圓廠就是指這些晶圓薄片的直徑,顯然晶圓直徑越大,生產原料利用率越高(因為芯片都是方形的,晶圓的邊角不能用于加工芯片,晶圓直徑越大,邊角料相對比例越小。每次加工過程成本相近,同時生成的芯片越多,單位成本越低),另外也只有大晶圓片,才能生產更大的芯片。
(3)晶圓通過照相制版,采用類似洗膠片的方式根據需要在不同部位覆蓋上保護物質,然后通入氧氣氧化、蒸發金屬鍍膜、半導體材料滲透,在沒有被覆蓋的晶圓部分發生物理、化學反應。這樣就在晶圓上刻蝕出了電路或者生成了功能單元(Polishing),這些功能單元也就是一個一個的小晶體管元器件。

圖1-3 單晶硅鑄塊和晶圓片
(4)晶圓再次經過幾次反復鍍膜、氧化、滲透、生長等工藝,生成完整的芯片電路(Epitaxial Growth)。
(5)晶圓經過切割,生成成品芯片。
(6)最后還需要經過封裝,添加保護和引腳,成為真正可以在市場上銷售的芯片。
集成電路芯片制造自20世紀80年代起發生了巨大變化,從集成設計制造模式向代工模式轉變。如圖1-4所示,到20世紀90年代中期,逐漸形成了以歐、美、日、韓、中國臺灣為核心的幾大芯片設計、生產、制造中心:

圖1-4 芯片生產模式轉型
歐:集成設計制造,主要精于通信領域芯片設計。
美:國際芯片設計、銷售的中心。主要優勢:芯片設計專利、原材料、制造工藝。
日:集成設計制造,主要精于人工智能系統芯片。
韓:DRAM最大的制造商,現在向集成設計、制造轉型。
中國臺灣:世界最大規模的芯片代工工廠。
由于代工技術含量低、能源消耗大、污染較嚴重(來自生產過程中的各種化學藥劑處理)、投資規模巨大、受市場影響大、收益低,現在代工工廠逐漸向發展中國家轉移(中國東南沿海一些城市已經有趨勢成為芯片生產的大戶,也因此產生了很多新的污染來源),而傳統的芯片生產企業爭相向芯片設計、專利技術開發、芯片產品銷售轉型。
提示
芯片設計IP(Intelligent Property,專利技術,即設計圖紙)、芯片制造工藝、芯片加工工廠、芯片使用領域是芯片行業賴以生存和盈利的4大法寶。很多國際知名芯片設計場商只進行IP設計,其他任何廠商都可以購買他們的設計專利,全部或者部分地將這些技術應用于自己生產的芯片,像采購零部件一樣,“組裝”自己的產品,當然,每個成品都要給IP廠商一筆“專利費”,這其中最著名的廠商就是ARM公司(生產嵌入式CPU的著名企業)。Sun公司也將自己的SPARC芯片設計賣了出去,由于自己的生產技術不好,現在反而采購富士通生產的SPARC芯片用于自己的服務器。
制造工藝決定了芯片的體積、成品率,越是高端的芯片,要求制造工藝越先進。在這一方面,全世界只有幾家公司,壟斷了所有的技術,而其他公司只能購買專利或者找代工。例如IBM公司將自己生產銅導線芯片的技術賣給了競爭對手HP公司,日進斗金。芯片工廠盈利很顯然直接與芯片的成本息息相關,IBM公司和Intel公司最近都在世界各地興建自己的芯片加工廠,規模達到幾十億美元的投資額度。市場決定一切,能給自己的芯片找到更多的銷路,不但分攤了研發成本,還推廣了芯片的市場,使用自己的芯片的人越多,自己的芯片越有競爭優勢。因此IBM公司的Power系列芯片不僅用于高端服務器,也一直在向嵌入式CPU市場推廣。
眾所周知,CPU處理器生產技術一次又一次地驗證了摩爾定律。按照此定律推算,到2015年,計算機的信息處理能力將能首次達到人類大腦的水平。如圖1-5所示,曾經計算性能排名第一的IBM藍色基因可以達到一只老鼠的信息處理能力,離人腦還有差距,然而如果單純比較計算能力,計算機已經遠遠超越了人類。雖然計算機的體積和計算效率現在還不是人類的對手,但隨著3D集成電路、量子并行處理技術的實用化,摩爾定律將被延續,估計我們每個人都可以在有生之年看到計算機真正超越于人類。

圖1-5 幾款超級計算機的“智能”比較
1.1.2 曾經繁星閃爍
在并不漫長的計算機發展歷史中,曾經有許多CPU被研發、裝備在小型機、服務器和各種電子控制系統上。
1.Acorn ARM,鋪天蓋地的RISC
ARM(Advanced RISC Machine)是足以讓人類引以為榮的現代處理器之一。ARM并不僅僅是一款CPU,而是一系列芯片,包括ARM - CPU,MEMC - MMU和DRAM/ROM控制器,VIDC - video和DAC,IOC - I/O,時鐘控制,中斷控制等,這是一個能夠完整地支持多任務操作系統的計算機體系架構。它最早由VLSI Technologies Inc公司開發,后來成立了單獨的ARM公司。ARM部分基于伯克利
設計思想,它非常簡單,只有一個3階段的流水線,可以在大尾段或小尾段(big or little endian)
模式工作。最早的ARM(ARM1,2和3)是32位的CPU,但是使用26位的地址總線。比較新的ARM 6xx開始使用32位的地址總線,它有用戶、管理和中斷三種運行模式,有16個寄存器。
提示
大尾段Big Endian和小尾段Little Endian是和匯編語言有關的概念。
大尾段:一個Word中的高位的Byte放在內存中這個Word區域的低地址處。
小尾段:一個Word中的低位的Byte放在內存中這個Word區域的低地址處。
如果我們將0x1234abcd寫入以0x0000開始的內存中,則結果為:

在ARM處理器中,對每一條指令都進行預測(此技術也被后來的HP PA-RISC芯片采用),這樣減少了指令異常跳轉,加速了指令執行速度。另外在進行寄存器和地址指令操作的時候,可以同時進行移位操作,這樣就把兩條指令合并成一條。這些技術使ARM的指令代碼可以具有更高的“密度”,并且能更有效地執行。雖然ARM時鐘頻率不高,流水線級數也很少(在流水線結構下,級數越多則可以并行處理的指令數越多),但ARM 6實現了相當不錯的處理能力,大約可以與我們所熟知的CPU Intel 80486相當。
提示
流水線方式是增加CPU處理速度的一種設計技術。在CPU執行每條指令的時候,需要先進行取指、解碼、執行等幾個動作,而流水線則依次排列,穿插著幾個動作同時執行。例如:當一條流水線進行取指時,另一條流水線則進行解碼,第三條流水線進行執行操作。這樣,在同樣時間里,流水線方式可以執行更多的指令。不過流水線在發生指令跳轉的時候會出現一些復雜的情況(計算機在指令沒有執行前,并不知道下一條指令會跳轉到其他地方去),需要更多的處理,例如分支預測。與流水線方式對應的另一種技術是超標量,就是同時進行多條指令的處理,而處理的時序相同,例如同時進行三條指令的取指。
ARM 6系列包括ARM 6 CPU內核(35000個晶體管,可以作為其他定制CPU的處理核心),ARM 60 CPU,ARM 600 CPU(增加了4K Cache,MMU,寫緩存,協處理器接口)。1997年推出的ARM 7系列在性能上又有了很大提高,而且增加了類似DSP(類似數學協處理器)的擴展單元,包括32位和64位乘法器,Cache也提高到8Kb,還包含對電路仿真支持,時鐘頻率也有所提高。在1997年稍晚些時候,全功能的DSP協處理器被集成進ARM。1998年發布的ARM 10則增加了矢量浮點單元,可以在一個時鐘周期完成一個矢量運算。
DEC公司在1996年購買了ARM的設計架構(專利),開發了SA-110(Strong ARM),在100~233MHz運行5級流水線,僅僅消耗1W功率! Intel公司通過專利合作,接手了Strong ARM,替代自己的i960系列嵌入式系統,并開發出XScale處理器(2000年發布),這款處理器增強了電源管理功能,可以在不同的時鐘頻率運行。由于這些芯片性能好、功耗低,被廣泛用于嵌入式系統或者手持PDA設備。
在ARM 7和DEC/Intel Strong ARM在市場上大出風頭的這段時間,ARM公司悄悄地開發了ARM 8/800,它包含了Strong ARM的許多特性。其他一些公司,例如摩托羅拉、IBM和德州儀器公司也購買了ARM的專利授權,生產自己的處理器。ARM設計被如此眾多的公司采用,使其當之無愧為有史以來最成功的嵌入式處理器。
ARM也曾經開發過低成本的16位ARM處理器,叫做Thumb,這使得ARM能夠向下涉足16位處理器領域。與最新的80x86處理器為了兼容舊指令而進行的指令解碼一樣,Thumb巧妙地通過解碼方式把16位指令平滑地轉換為32位內部指令執行,而且沒有損失任何性能。Thumb由于采用16位編碼,使得程序大小只有本來就已經非常緊湊的32位程序的30%~40%。這對于節省“寸土寸金”的嵌入式系統固態存儲器(內存)資源非常重要。
Jazelle(2000年10月發布)與Thumb類似,但是它解碼的是Java虛擬機的偽代碼,簡單的代碼直接執行,復雜的代碼被捕獲,由ARM指令仿真執行。由于使用的是Java虛擬機方式,所以可以執行各種Java程序。
憑借性能卓越、省電,ARM打入了蘋果公司,蘋果的掌上型電腦Newton采用了ARM CPU。蘋果公司以Newton品牌開創了掌上電腦(PDA個人數字助理)時代,卻沒能夠將其發揚光大,不久,這個產品就停產了。但是,從此以后一大批類似的產品,從手機到掌上電腦,都開始使用ARM處理器,都是由于性能、省電這兩個最重要的原因。蘋果公司最近憑借iPod品牌重新殺回個人數字產品市場,又是一段佳話,部分型號iPod的CPU就是采用ARM。
ARM公司生產CPU的方式有點特別:只研發,銷售設計圖紙,自己卻不制造芯片,而將這些芯片設計專利(IP)出售給其他的CPU設計生產廠商,讓他們結合ARM的設計,生產出自己的獨立CPU產品,ARM也因此被稱為“CPU行業里的微軟”。
2.Apollo PRISM,超級工作站
這是最早被稱為工作站的計算機產品,它使用UNIX操作系統,通過高性能的微處理器(通常都是摩托羅拉的680x0系列處理器),提供強大的圖形處理能力,而且又足夠廉價。這些RISC處理器實現了4倍于上一代計算機的性能,第一次讓“迷你”的計算機能夠完成以往大型計算機才能負擔的工作,其大小卻僅僅比現在的一臺PC機大不了多少,結果是以往需要占滿工作場所一整間屋子的計算機設備被“微縮”進一個小箱子大小的體積中——這就是工作站名稱的由來。
當時Apollo,Sun和HP公司各自擁有大約20%的工作站市場份額。Apollo生產了單CPU的DN3000和四CPU的DN10000工作站(DN的含義是“DOMAIN Node”,區域節點,運行DOMAIN/OS)。在這款工作站中,首次使用了PRISM CPU,它是第一款真正的VLIW類型(超長指令)微處理器,它的性能一直在工作站類小型機中處于領先地位,直到后來被IBM RS/6000系列(本文主角pSeries的前身)取代(現在又有被PC圖形工作站取代的趨勢)。
第二個版本的PRISM主頻翻了一倍,可是由于與芯片供應商(BTT公司)之間的財務問題,推出時間大大延遲。最后Apollo在1989年被HP公司并購,并且在1991年,這條產品線被徹底放棄,但是HP公司在自己的PA-RISC CPU中大量借鑒了PRISM的技術,算是延續了PRISM的技術生命。
3.DEC Alpha,為未來而設計
DEC公司的Alpha系列芯片最先進的設計思想是PAL calls(可改寫的指令集擴展),被稱為為未來而設計的設計思想,可以保證在可預見的一段時間之內,該設計結構不用做本質改變,僅僅通過更新芯片生產工藝,就可以大幅度提升處理性能。第一款Alpha芯片是21064 EV4架構(EV的含義是:Extended VAX,即VAX的后續版,VAX是繼PDP之后,DEC公司設計的又一款非常成功的小型機)。Alpha的起步設計就是64位架構(32位指令),不支持8位、16位操作,但允許通過轉換仿真執行8/16位程序。由于Alpha芯片在轉換執行程序時不會犧牲性能,與之相比,當時的許多CPU雖然都可以進行類似的轉換處理,但都會降低一些處理性能,所以Alpha的設計非常成功。Alpha 32位與64位操作的唯一區別是溢出檢測。Alpha芯片與MIPS R2000一樣,用一個通用寄存器保存條件碼,但與R2000不同,Alpha有一個可以互鎖的流水線,并且也沒有如R2000一樣在幾年后升級到R8000/R10000時變得過于復雜,這些都是Alpha設計的成功之處。
Alpha芯片的研發目標是替代DEC公司的兩個舊產品線:MIPS工作站和VAX小型機。為了延續VAX生命,Alpha同時提供了對IEEE、VAX 32和64位浮點操作指令的支持。通過Privileged Architecture Library(PAL)調用——這是一組可編程的Alpha指令的宏操作(在執行這組指令宏的時候不能接收中斷)—— 使Alpha能夠通過類似翻譯的方式轉換執行另一種指令集的二進制目標碼,運行另一種操作系統。眾所周知,Alpha可以執行VAX代碼和VMS系統,同時是當時僅有的一款支持Microsoft Windows NT的小型機。
Alpha之所以被稱為是為未來而設計,是考慮到了未來Alpha芯片1000倍的性能增長:其中10倍來自于時鐘頻率、10倍來自于芯片擴展執行指令、10倍來自于并行處理。EV4有一個整型、一個浮點、一個存取單元,EV5(21164,1995年發布)通過增加了一倍的整型、浮點、存取單元而提高了并行能力,時鐘頻率也從200 MHz提高到300 MHz(比當時其他廠商的CPU主頻快一倍),并第一個引入了片內2級緩存。EV6(21264,1998年發布)又增加了一些處理單元,同時主頻也提高到500MHz。
EV7(21364,2003年發布)開始了多處理器(內核)設計,在處理器之間增加了5個高速連接,4個CPU之間用總計10GB/s的通道連接,同時還有一個3GB/s的I/O通道。EV8(21464)設計了8個CPU的內核,開始支持單核多線程。
在1998年,DEC公司被康柏公司收購,當媒體猜測DEC公司能否在EV6突破833MHz的主頻時,許多CPU生產廠商如Intel,AMD和SiByte(MIPS)公司都已經超越了1GHz主頻,可見DEC公司此時已經落后于時代,風光不再。在此之前,Alpha的性能可是一直處于領跑的位置,也總是以高主頻著稱。保持原有CPU架構不變,康柏公司繼續開發EV7和EV8,然而沒堅持多久,在2001年,康柏公司卻取消了EV8的研發,轉而投奔IA-64,并準備把所有Alpha的知識產權(從設計電路到編譯系統,甚至開發小組)都賣給Intel。此計劃未等實施,康柏就與惠普合并了。這兩次合并對業界造成了空前巨大的沖擊,據說當康柏收購DEC的時候,Alpha開發小組的許多工程師跳槽到AMD,使AMD得以搶先Intel推出Athlon處理器,在性能上給Intel迎頭一擊。康柏和HP及后來的HPQ(新惠普)把賭注都壓在Intel的另一個高端產品IA-64,它卻一直沒有上佳表現,與同類的處理器相比,性能太差,即使是其后與HP聯合開發的Itanium 2處理器性能也僅僅差強人意,卻難以圈點。無論怎樣,EV8還是問世了,但是Alpha系列的壽命已經終結。最近的消息是HP在去年(2007年)4月27日終止了Alpha系列的研發,但是將對現有產品繼續支持到2012年。
DEC的Alpha處理器從許多方面都與IBM著名的POWER處理器采用截然相反的策略。Alpha依靠復雜性獲得性能,從大量的晶體管、高速的主頻取得計算力,當然,也因此必須消耗更高的功率,散發出更多的熱量,因此很早以前DEC的Alpha服務器就安裝了巨大無比的散熱風扇。
4.HP PA-RISC,保守的RISC
與其他RISC處理器相比,PA-RISC有不同尋常的“復雜”指令集,這可能是由于此芯片的設計之初RISC思想剛剛萌芽,還沒有深入人心,另外一些分析結論也表明適當“復雜”的指令集可以大幅度提高性能,因此其后的PA-RISC又增加了一些指令。由于年代久遠,當時的PA-RISC還是一個比較簡單的設計,只有115 000個晶體管。1994年發布的PA-RISC 7200采用48位地址,后來擴展到64位。PA-RISC 7200也包括集成的Cache和MMU,支持高速64位總線。
1996年4月,惠普發布了PA-RISC 8000,擴充了內部寄存器和64位地址總線,超標量設計,可以同時亂序執行5條指令,使用56個可變名稱寄存器、10個處理單元(5對ALU,移位/合并處理,FPU乘法/加法,除法/開方,存取單元),競爭對手是MIPS的R10000和SUN公司的UltraSPARC(IBM公司的Power處理器當時還很不成功)。1996年的PA-RISC 8500增加了片內的1.5Mb緩存。HP率先在處理器中增加了多媒體指令,1994年的PA-7100LC支持MAX-1(Multimedia Acceleration eXtension,多媒體加速擴展指令),在PA-8000種支持64位(2.0版本)的MAX-2,可以允許向量操作。
PA-RISC系列的下一個產品是8700,與惠普設計的IA-64使用相同的總線,具有雙內核的8700芯片在2002年發布,這個芯片與其他芯片不同的設計是使用了廉價的DRAM作為片外二級緩存,而沒有使用更快的SRAM,這樣即使使用了較大的緩存,芯片價格成本也較低,而且功耗少、芯片尺寸小。在PA-RISC上沒有特別的新技術,但它還是能夠憑借比較均衡的設計獲得不錯的性能,躋身同時代芯片的前列。
5.IBM POWER,緩慢啟動的高速列車
當IBM公司決定真正搶占工作站市場的時候(在它不成功的ROMP處理器的PC/RT產品之后),她準備使用RISC技術開發全新的CPU——這就是POWER(Performance Optimization With Enhanced RISC)CPU,用增強RISC技術進行性能優化的CPU處理器名稱的由來。Power系列CPU是本書的重點,在后面會專題介紹,此處只介紹一下IBM Power系列家族產品,如圖1-6所示。

圖1-6 IBM POWER系列芯片家族
IBM的POWER家族有3個分支:POWER系列,主要用于大型商業服務器;PowerPC系列,主要用于刀片服務器和Linux終端;另一款PowerPC嵌入式系列用于游戲機、工業控制和領域,作為小型設備的核心處理器,最新的PowerPC嵌入式芯片代號是CELL。
這三大系列的CPU相互之間基本實現了二進制兼容的,也就是說,為其中某一種CPU開發的程序,如果不考慮外設情況,可以很容易地移植到其他兩種類型的CPU上去,甚至完全不需要修改一個字節。這使得POWER家族擁有了極強的可伸縮性,從計算器到最高端服務器或者游戲機復雜的三維圖形和聲音處理,只要一次開發,可以在任何地方使用!
6.Intel / HP IA64(安騰Itanium),聯合出擊
當Intel和惠普準備聯合開發能夠同時兼容80x86和PA-RISC架構的CPU的時候,引起了很多人爭論。在當時“RISC”技術看來比80x86架構先進,x86架構在不久可能就會退出領導市場,單純在提高性能的同時保持對80x86指令集兼容已經讓Intel自己煞費苦心,而同時還要支持PA-RISC?在市場評論家的眼中,這無異于是在市場利益驅動下做出的瘋狂舉動。大家猜想其原因是Intel力圖保持其當前的設計架構,持續占領巨大的Windows個人機市場,同時通過完成RISC芯片所不能完成的工作去殺入RISC陣營,超越“RISC”。
最早在1992年惠普就已經開始了類似的設計,但是它發現這種設計太復雜,而且難以實現4路以上的CPU結構(多CPU結構是小型機的性能引擎,不能支持兩位數CPU的計算機,還叫做小型機么?)。Intel作為惠普的合作伙伴,也在為惠普設計PA-RISC的背板,這是當時芯片設計的普遍做法,目的是為了分擔設計成本,同時提高芯片的“知名度”。
IA-64有128個65位(64位數據、1位NaT)整型寄存器、128個64位浮點寄存器,分離的指令寄存器和8分支寄存器存放著跳轉分支目的地址,這樣可以預先把下一跳的可能地址(指令)都準備好。為了和舊的80x86系列兼容,需要進行寄存器映射工作,IA-64的G8到G31映射IA-32(即32位的x86)寄存器,浮點寄存器FR8到FR31映射IA-32的FPU和SSE寄存器,這樣就直接實現了二進制兼容。PA-RISC和IA-64很相似,因此可以直接通過重新編譯實現兼容。
由于IA-64在設計過程中沒有找到統一的內存數據和指令的訪問方式,發布曾經一度延遲。IA-64如同ARM等CPU一樣,對指令進行預測,但是它使用了更復雜的方案:用64個1位的預測寄存器(PR0到PR63)進行指令控制。通過指令預測,兩個分支的指令可以同時執行,然后根據上一步的結果選擇最終真正正確執行的路線。
IA-64同時支持80x86 MMX和SSE、PA-RISC的MAX多媒體擴展指令集,不過這些指令在執行時使用了Intel的傳統方式:通過浮點寄存器執行而不像PA-RISC用整型寄存器執行。IA-64增加了大量硬件層面對編程語言的支持,可以把編程語句直接映射為機器指令,這種設計方式有點違反RISC傳統,當然也可以說是對RISC技術的一種進化:讓簡單的處理指令組合在一起去實現復雜的語言功能,從某種意義上看也還是RISC吧。
經過漫長的市場等待,Intel設計的安騰(IA-64)終于面世了,低于預期的主頻(只有800MHz),同時各種測試指標也讓評論家大跌眼鏡。HP設計的安騰晚了一年推出(2002年),被稱為Itanium 2,性能尚可,可惜生不逢時,市場上IBM的POWER 4和富士通生產的SPARC64 V都有很好的性能表現,所以Itanium 2成了雷聲大、雨點小的廣告產品。
盡管在硬件層面,安騰可以執行IA-32程序,但性能非常糟,為了面對AMD Opteron的挑戰,Intel做出了一個軟件仿真系統,它源自許久以前DEC開發的FX!32軟件,可以讓Alpha模擬x86 CPU。Intel從康柏購買了這個原型技術,并用于安騰模擬執行x86指令,它甚至比硬件實現還要快。通過這個軟件,Itanium 2可以以奔騰4一半的速度運行IA-32程序,即便如此,還是比直接在硬件上跑IA-32程序快!
7.Intel i960,市場不喜歡好產品
80960是非常好的一款芯片(這條產品線從960 MC開始,是BiiN公司生產的處理器),由英特爾和西門子合資公司生產。M系列代表“Military”,也就是軍隊的意思,實際上這是專門為軍方制造的計算機(Military Computer,MC)。以后i960目標是高端的嵌入式處理器市場,它包括多處理器,支持debugging/排錯,有強大的中斷/錯誤處理功能,但是缺乏MMU(Memory Management Unit,內存管理單元)。盡管沒有MMU功能,i960還是被譽為“這個世界上最好的嵌入式RISC處理器”。
i960的目標非常明確,為嵌入式計算機生產,而不是高端應用,但是它做到了可以非常靈活地擴展,可能原因在于這款芯片并不是完全由Intel設計的,它使用了DEC制造Strong ARM的專利。最終i960也沒能夠繼續發展下去,不過現在很多RAID磁盤陳列依靠i969的強大XOR計算性能,專門進行校驗計算。
8.MIPS R2000,輾轉反側
R2000起源于斯坦福大學的MIPS(Microprocessor without Interlocked Pipeline Stages)項目。該項目希望設計一種內部流水線之間不需要互鎖的處理器,這樣可以大大簡化處理器的設計過程,避免流水線之間必須進行的鎖同步問題。這意味著在一個指令周期處理器可以存取32個32位寄存器中的任意一個,因為沒有鎖機制,它需要編譯器通過復雜的編譯算法來完成多條流水線處理的調度工作,以避免沖突。LOAD/STORE和跳轉指令只需要一個時鐘周期就可以完成,但由于乘法和除法需要幾個時鐘周期才能實現,因此需要特別的HI/LO乘/除寄存器,此時還是需要寄存器鎖。
與AMD 29000和DEC Alpha相比,R2000的設計認為條件碼寄存器可能是一個性能瓶頸,因此沒有這種寄存器。CPU包括一個MMU和Cache控制器,是第一款同時可以進行大尾段和小尾段操作的處理器。R2000加上與之配合的FPU,叫做R2010。
在1988年,R2000的下一代產品R3000問世了,它增強了Cache控制;1991年的R4000則升級到64位,采用超流水線結構,每條流水線的工作更為簡單,但與前一代相比增加了一倍的流水線數量,提高了時鐘頻率。由于當流水線不能及時得到指令會導致處理中斷,例如當存在指令分支的時候就會發生這種情況,因此R4000不得不增加了流水線之間的鎖機制,實際上已經違背了原有設計的初衷,但無論怎樣,這依然是一款很好的芯片。后續產品R4400是將FPU集成到同一個芯片的設計,到R4600又放棄了超流水線機制。
1994年的產品R8000采用超標量設計,為浮點運算進行優化,可以同時進行兩個整型運算或者存取操作以及兩個浮點數操作(浮點指令被送到單獨的R8010浮點協處理器)。1996年發布的R10000和1997年發布的R12000增加了多個FPU,而且同其他新一代CPU設計一樣,增加了分離的2路指令/數據緩存(每個32K),還有片內的二級控制器(高速8路分離的處理總線,當前一個處理尚未完成,就可以啟動下一個處理),超標量執行(同時載入4條指令,可以亂序處理5條指令:兩個整型處理、兩個浮點數、一個存儲單元),動態寄存器重命名(在R10000中有32個,在R12000中有48個寄存器),可以部分替代CPU完成指令解碼的指令緩存,分支預測和目標數據預緩存技術都在這款CPU中得到實現。
1996年還有一款R5000超標量處理器,能在6個時鐘周期完成2路整型、浮點運算,它只是填補R4600和R10000之間的空缺的產品,沒有什么特別的技術。而新的CPU預想將Java虛擬機功能加入到CPU中。
SGI公司,也就是MIPS的母公司近年來的財務狀況不佳,影響了新CPU的設計和生產,從R10000和R12000的滯后發布后,只推出了一款R14000,就宣布中止了MIPS架構的高端研發。最后MIPS公司被出售,之后的MIPS處理器在嵌入式系統中卻發展得很好,在2001年發布的R20000采用了MIPS-3D技術,將整型處理單元擴展到6個。2003年,中國的BLX IC設計公司參考MIPS架構設計了另一款芯片,被稱為Godson(英語中龍的意思),也就是著名的“龍芯”。任天堂公司在N64游戲機中也使用了一種MIPS處理器,到1999年,有3/4任天堂游戲機的處理器都使用MIPS,直到后來轉為IBM的Power PC。一些來自SGI公司的工程師后來成立了另外一個公司,名叫ArtX,專門生產圖形處理器,也被任天堂采納。Power PC和ArtX的圖形處理器成為任天堂新產品Game Cube(內部代碼:海豚)的核心。索尼公司也在它的Playstation里面也用到MIPS芯片。
9.Motorola 88000,遲到的流星
摩托羅拉88000(原名78000)是32位處理器,哈佛架構設計的CPU,數據、指令總線有單獨的緩存,因此同時進行數據、指令訪問不會出現沖突。它與惠普的Precision Architecture(HP/PA)架構類似,在設計中包含許多只能在控制模式才可見的控制、狀態寄存器。
88000也采用流水線(支持內部鎖),這樣一個流水線的處理結果可以直接在下一個周期被另一個流水線所用。存取數據也是由緩存處理,除非直接讀取數據的地址正在進行保存操作,否則都不需要等待。
Motorola 88000發布于1988年,沒過多久,摩托羅拉就改變了策略,與IBM和Apple共同研發Power PC處理器,此系列芯片也因此后繼無人了。
10.SUN MAJC,從虛擬到現實
為了支持Sun公司自己的Java,Sun公司決定生產專門的Java處理器,可以直接執行Java編譯后的偽代碼,而不需要Java虛擬機程序。MAJC的含義就是:Microprocessor Architecture for Java Computing——為了Java而設計的微處理器。此類產品共有三種:picoJava,這是一個處理器核心,可以嵌入到其他處理器設計中;microJava,這是一個獨立的picoJava內核芯片,通常需要配合其他芯片使用;ultraJava,這是一個完整的高速Java處理器。按以往的經驗,市場不會接受單獨為某種語言開發的處理器,除非因為某種特殊的應用程序需要,或者將某種語言轉換成傳統CPU指令的效率太低(實際上能通過硬件實現高效率,軟件編譯程序也沒有道理實現不了)。也許正因如此,完整的Java處理器很快就消失了,但是作為Java處理器內核,還在一些嵌入式系統中存在并發展下去。
在MAJC中,引入了許多先進的設計思想,例如可以支持指令級的并行能力,能夠讓寄存器在4個線程中進行切換(可以視為寄存器重命名),這是在超級計算機中的設計方案,IBM的Northstar POWER CPU可以支持2個線程切換,Alpha EV7也可以實現這種功能。當處理器發現指令不在緩存中時,需要等待指令調入,這時就可以將處理器切換到另一個執行線程,因而提高了CPU利用率。此技術又被稱為硬件多線程技術。
在MAJC中的另一個設計是單片、多處理器(同樣在IBM的POWER 4和Alpha EV7中使用),這樣也可以提高并行能力。可能有兩個線程共享一塊內存,通過單片多處理器可以將這塊內存“復制”出兩份,這兩個線程分別修改內存,當線程操作結束后,又可以把兩塊內存合并回原來的一份。在Myrias超級計算機中使用了這種技術,叫做PAMS(Parallel Applications Management System,并行程序管理系統),但是它是由C,C++和Fortran編譯程序完成的。
總體來說,MAJC是很復雜的設計,與其他CPU相比,雖然MAJC不是一款通用CPU,但實際上它已經足夠復雜,很容易就可以改造為通用CPU。不過最后,SUN還是放棄了MAJC的后續研發。
11.SUN SPARC,真正RISC
SPARC也叫做Scalable處理器(在Sun公司的原名),是由Sun Microsystems自己獨立設計的產品,用于制造工作站,目的是作為升級型號,替換它們自己用68000處理器生產的工作站。Sun公司的芯片研發機構已經開發出性能非常高的芯片,但是其委托的芯片制造廠卻嚴重滯后于市場,于是Sun公司決定自己生產芯片(基于伯克利的設計),依照Sun公司的商業哲學,它同時把CPU設計的License對外公開銷售,其他廠商也可以依照這種設計生產自己的芯片。
SPARC不是第一款RISC處理器,AMD 29000是比它更早的RISC芯片,其后有MIPS R2000(基于斯坦福設計),惠普公司的PA-RISC CPU等。而SPARC設計比較激進,更加“RISC”,甚至根本不考慮乘除運算(在其后的產品中增加了乘除指令),實現了絕對每時鐘周期完成一條指令,與之相比,其他的處理器更傳統一些,介于RISC和CISC之間。
SPARC包含了128或144個整型寄存器(通常當時的CPU設計只有少于16個寄存器),在每個周期,總有32個寄存器可使用,而其中8個是全局的,另外24個在寄存器棧中用一種“Window”技術尋址。在每個功能調用,寄存器“窗口”向下移動16個寄存器,因此最上面的8個和最下面的8個可以被兩個功能調用共享,用于返回數據,另外8個用來進行局部處理。當調用返回,窗口上移,只有最上和最下的寄存器內容需要保存。這種技術使調用能夠在一個時鐘周期內完成。其后的SPARC處理器增加了FPU,有32個寄存器(不使用窗口)。SPARC與其他的RISC處理器類似,通過流水線方式提高性能,有一個專用的條件碼寄存器用于保存比較結果,但與MIPS等其他處理器不同,它有分支跳轉等待周期。
SPARC之所以被稱為“scalable”(可擴展的),原因在于SPARC設計中寄存器棧可以擴充到512個(或32個“窗口”),這樣就減少了在不同功能調用之間的現場保存、恢復工作,或中斷時上下文切換時間。由于功能調用比中斷發生得更頻繁,因此更多的寄存器可以提供更好的性能,編譯程序使用固定的寄存器可以利用滑動窗口在不同調用之間更有效地傳遞數據。
SPARC不是一種芯片,而是一種設計思想,因此有很多具體實現方案,也就有了很多版本,包括32位和64位的超標量設計(例如1992年美國德克薩斯州儀器公司設計的SuperSparc)。SPARC與其他處理器相比性能一直不佳,總是落后于同期的Intel 80x86處理器。直到1995年的UltraSPARC問世,這種情況才發生逆轉,它是由德州儀器和Sun公司聯合生產的,另一個是富士通/HAL生產的SPARC64多芯片CPU。還有許多廠商購買了SPARC授權,在生產廉價的嵌入式SPARC。
UltraSPARC是一款64位超標量處理器,可以同時利用9個處理單元執行4條指令(但不能亂序執行),包括2個整型單元、2個浮點單元/圖形處理單元、分支處理單元和2個存取單元。UltraSPARC也增加了批量移動指令,用來進行緩存處理(2路16K指令和16K數據)。像素處理操作(VIS - Visual Instruction Set視像處理指令集,可以并行完成8、16或32位整型數處理),也出現在UltraSPARC中,可以進行快速圖像掩碼、3維到2維投影等操作。
UltraSPARC I/II的架構相同,UltraSPARC III在2000年中期推出,依然不支持亂序指令。考慮到當內存訪問比較慢的時候,在14個時鐘周期的流水線中可能只能同時處理6條指令而不是14條指令,支持亂序執行并沒有提高處理能力,因此該芯片力圖在提高數據和指令帶寬方面做文章。
HAL/Fujitsu的SPARC64系列(在富士通的服務器上使用,也運行Sun Solaris軟件)更希望提高計算性能而不是處理帶寬。初始版本可以同時支持4條順序指令,而且可以亂序完成,這與UltraSPARC不同:當一條指令正確完成后,如果在它之前的所有指令也都成功完成,則認為此指令成功,而如果它所需要的資源被其他處理凍結,則此指令需要重新執行,這是在SPARC64流水線中“隱藏”的時鐘周期。
2002年晚期推出的SPARC64 V更重視亂序執行和支持分支預測,而不是指令讀入等待,雖然它也包括數據預取功能(在數據在實際被使用之前就調入到緩存,如果恰好數據被使用,則節省了數據調入時間,如果不幸失敗,則需要重新進行數據調入,這是在L1 Cache中常用的算法)。它可以同時處理6到8條指令,包括4個整型單元、2個FPU(其中一個支持VIS)、2個載入單元、2個存儲單元(存儲需要1個周期,載入至少需要2個周期,因此在這種CPU設計中是分開考慮的。它有9個階段的流水線,通常一個周期可以完成一條指令,但也有需要12個周期的復雜指令)。
UltraSPARC III在性能測試指標中性能平平,而SPARC64 V則達到了當時處理器性能的最高點。
- Visual FoxPro 6.0數據庫與程序設計
- Dreamweaver CS3網頁設計與網站建設詳解
- 流處理器研究與設計
- 工業機器人現場編程(FANUC)
- 大數據平臺異常檢測分析系統的若干關鍵技術研究
- Statistics for Data Science
- 精通數據科學:從線性回歸到深度學習
- 重估:人工智能與賦能社會
- Spark大數據商業實戰三部曲:內核解密|商業案例|性能調優
- Hands-On DevOps
- 51單片機應用程序開發與實踐
- 開放自動化系統應用與實戰:基于標準建模語言IEC 61499
- Appcelerator Titanium Smartphone App Development Cookbook(Second Edition)
- 信息技術基礎與應用
- 智能機器人:從“深藍”到AlphaGo