蝶變ARM 1929年開(kāi)始的經(jīng)濟大蕭條,改變了世界格局。前蘇聯(lián)的風(fēng)景獨好,使得相當多的人選擇了馬克思。懼怕布爾什維克紅色力量的人投入了法西斯的懷抱,剩余的人選擇了妥協(xié)與折中。整個(gè)世界的迅速分解使得第二次世界大戰成為必然。 1933年,羅斯福成為美國第三十二任總統,開(kāi)始實(shí)施新政。這些新政使美國擺脫了危機,也決定了二戰的走向。羅斯福的背后站著(zhù)的是凱恩斯,凱恩斯的國家資本主義化解了整個(gè)資本主義陣營(yíng)有史以來(lái)最大的一次危機!巴讌f(xié)與折中”得以持續。 戰后的世界是屬于巨型公司的,這些公司借助國家資本的力量,持續著(zhù)壟斷。壟斷的初衷并非都是惡意的,在美國卻是一個(gè)早在1890年就立法防止的。1911年,美國煙草公司被分拆。1982年,美國電報電話(huà)公司被分拆。 這些分拆卻很難抵達IT業(yè)。1975年成立的Microsoft雖然多次被推入拆分的風(fēng)口浪尖,卻從未被拆分。IBM和Intel多次遭到分拆的威脅,也安然無(wú)恙。這些公司的支持者都注意到一個(gè)事實(shí),這些公司沒(méi)有依靠國家資本而獲得壟斷地位,而是依靠多年苦心積攢的知識產(chǎn)權堅持到現在。 這類(lèi)壟斷之憂(yōu)不在顓臾而在蕭墻之內。在這些巨型IT公司中,最低層的工作人員需要經(jīng)過(guò)多達十幾級的匯報關(guān)系,才能到達首席執行官。在這十幾級匯報鏈中,向上所傳遞最多的就是如何粉飾太平。 一些微不足道的小問(wèn)題在這些大公司中往往也能引發(fā)無(wú)休止的討論。為解決某個(gè)問(wèn)題而舉行的會(huì )議,經(jīng)常被無(wú)休止地擴大,從一個(gè)會(huì )議擴展為多個(gè)會(huì )議,從幾個(gè)人參與變?yōu)閹资藚⑴c。這個(gè)問(wèn)題變得已不再重要時(shí),內部并無(wú)統一意見(jiàn)。 西方巨型公司的弊端在于 歐美所倡導的民主代價(jià)過(guò)于昂貴。撒切爾夫人是歐洲第一個(gè)深刻認識到這些問(wèn)題的最高執政官。歷史上,英國并不重視中小企業(yè)的發(fā)展,在凱恩斯主義盛行的二十世 紀五十年代,英國經(jīng)歷了三次大規模的企業(yè)兼并,至撒切爾夫人執政,巨型企業(yè)大行其道。更多的人發(fā)現這些大型企業(yè)并不能提高生產(chǎn)效率,大范圍的壟斷與集中, 已使英國經(jīng)濟舉步維艱。 上世紀八十年代,撒切爾夫人開(kāi)始變革,劍鋒所指,巨型公司紛紛解體,中小企業(yè)如雨后春筍般涌現。撒切爾的私有化,貨幣控制,削減福利與抑制工黨的四項舉措,客觀(guān)上拯救了英國經(jīng)濟,也使這位值得尊敬的女士譽(yù)滿(mǎn)天下,謗滿(mǎn)天下。 ARM在這樣的大背景之下誕生,這也注定了這些創(chuàng )始人不會(huì )也不愿意使ARM成為巨型公司,這也是取得如此成就的ARM,截至今天人數尚不過(guò)兩千的最重要原因。ARM最初的簡(jiǎn)稱(chēng)是Acorn RISC Machine。Acorn Computer創(chuàng )立于1978年,總部位于劍橋,由Andy Hopper(劍橋大學(xué)), Chris Curry(Sinclair Research)和Herman Hauser(劍橋大學(xué))創(chuàng )建[48]。 Acorn最初使用MOS Technology 6502處理器搭建處理器系統。MOS Technology 6502處理器是一個(gè)8位處理器,設計這顆處理器的工程師來(lái)自摩托羅拉的MC6800設計團隊[48];6502處理器,Acorn開(kāi)發(fā)了最令其自豪的處理器系統BBC Micro[49]。 在上世紀80年代至90年代,BBC Micro處理器系統主宰英國的教育市場(chǎng)。當時(shí)還有另外一個(gè)基于6502處理器的系統,Apple II[50]。從這時(shí)起,Acorn和Apple這兩個(gè)設計理念及產(chǎn)品形態(tài)類(lèi)似的公司結下了不解之緣,有些人將Acorn公司稱(chēng)呼為“The British Apple”[51]。也是在這個(gè)時(shí)候,Acorn迎來(lái)了一生中的對手Intel;贗ntel x86構架的PC對同時(shí)代的處理器廠(chǎng)商是一場(chǎng)噩夢(mèng),很少有公司能夠醒來(lái);蛘叻䦶,或者消亡,別無(wú)選擇。Acorn首先選擇服從,向Intel申請80286處理器樣片,Intel拒絕了這個(gè)請求[52]。 工程師對剩余的處理器,進(jìn)行了充分的評估。結果令人失望。此時(shí)的Acorn沒(méi)有選擇,開(kāi)始認真地考慮是否需要研制一顆屬于自己的處理器。他們沒(méi)有任何處理器設計經(jīng)驗,為數不多的工程師們除了才華,只有夢(mèng)想。才華與夢(mèng)想恰能改變整個(gè)世界。 1983年10月,Acorn啟動(dòng)了代號為Acorn RISC的項目,由VLSI Technology負責生產(chǎn)。1985年4月26日,VLSI成產(chǎn)出第一顆Acorn RISC處理器,ARM1。ARM1的結構非常簡(jiǎn)單,僅有個(gè)25,000晶體管,甚至沒(méi)有乘法部件[52]。當時(shí)并沒(méi)有人留意這顆芯片,更多的人關(guān)注Intel在1985年10月17日發(fā)布的80386處理器[36]。 沒(méi)有人認為這顆略顯寒酸的ARM1更給80386帶來(lái)任何沖擊,甚至包括研發(fā)這顆芯片的Acorn工程師。做為處理器廠(chǎng)商,與Intel活在同一個(gè)時(shí)代是一場(chǎng)悲劇,無(wú)論是Acorn,IBM亦或是不可一世的DEC。Intel并不是不犯錯誤,只是有限的幾個(gè)錯誤都能被及時(shí)修復。才華橫溢的Intel工程師將處理器的故事演繹至巔峰,他們的競爭對手也因此步入地獄。 Acorn不得不選擇回避,這也決定了ARM處理器的設計理念是low-cost, low-power和high-performance。這個(gè)理念與21世紀智能手機的需求不謀而合,卻是Intel強加給ARM的。Intel在不經(jīng)意間為自己樹(shù)立了一個(gè)強大的對手,這個(gè)對手在Intel的庇護之下一步步長(cháng)大。并不夸張的說(shuō),沒(méi)有Intel就沒(méi)有ARM的今天。 因為對low-cost和low-power的追求,Acorn選擇了RISC,而不是CISC,在上世紀80年代,RISC與CISC孰優(yōu)孰劣尚無(wú)定論。在當時(shí)采用RISC技術(shù)可以看得到的優(yōu)勢是可以用更少的芯片資源,更少的開(kāi)發(fā)人員實(shí)現一個(gè)性能相對較高的處理器芯片[53]。Intel使用了CISC架構,很大程度上也決定了Acorn選擇了RISC。劉備的“每與操相反,事乃可成”,對于A(yíng)corn就是“與Intel不同,便有機會(huì )”。 ARM的成長(cháng)步伐仍然是緩慢的,陸續發(fā)布的ARM2與ARM3并沒(méi)有激起波瀾。為數不多的公司選擇ARM3處理器開(kāi)發(fā)產(chǎn)品。一些公司將ARM3處理器用于研發(fā),最有名的公司就是Apple[53]。在當時(shí),Apple也是為數不多的對ARM友善的公司。 Acorn很快遭遇瓶頸,無(wú)論是在財務(wù)上還是在技術(shù)上。銷(xiāo)售量達到150萬(wàn)臺的BBC Micro并沒(méi)有給Acorn帶來(lái)足夠多的財富,與席卷天下的PC相比微不足道[54]。ARM3與Intel在1989年發(fā)布的80486也沒(méi)有太多可比性。危機最終降臨到Acorn這個(gè)年輕的公司,1985年2月,當時(shí)的IT巨頭Olivetti出資12M英鎊收購Acorn 49.3%的股份[55]。Olivetti的庇護并沒(méi)有給Acorn帶來(lái)機遇。 Olivetti創(chuàng )建于上世紀初,對智慧與品質(zhì)近于苛刻的執著(zhù)使得他們的產(chǎn)品可以在紐約的現代藝術(shù)博物館中陳列,出現在許多經(jīng)典的影片中。這些產(chǎn)品并沒(méi)有改變這個(gè)公司的最終命運。Olivetti最終涉足PC領(lǐng)域,使用Zilog的Z8000,去挑戰在這個(gè)領(lǐng)域所向無(wú)敵的Intel。 Olivetti收購Acorn后,更多地將ARM處理器用于研發(fā),而真正的產(chǎn)品使用Zilog系列。這段時(shí)間是Acorn最艱難的日子。Acorn的創(chuàng )始人Andy Hopper最終選擇從Olivetti獨立。出乎意料之外,Olivetti支持了Andy的決定。 1990年11月,Acorn(事實(shí)上是Olivetti Research Lab),Apple和VLSI共同出資創(chuàng )建了ARM。Acorn RISC Machine也正式更名為Advanced RISC Machine[55]。在1996年,Olivetti在其最困難的時(shí)候將所持有的14.7%的Acorn股份出售給了雷曼兄弟[56]。 Apple當時(shí)正在為代號為Newton的項目尋找低功耗處理器。Newton項目的終極目標是實(shí)現地球上第一個(gè)Tablet。Apple對Tablet的前景寄予厚望,他們直接將公司Logo上的Isaac Newton作為項目的名稱(chēng)。Apple最初的Logo是在蘋(píng)果樹(shù)和深思的牛頓。兩個(gè)Steve將公司命名為Apple,與喜歡吃蘋(píng)果沒(méi)有什么聯(lián)系,是因為蘋(píng)果而不是鴨梨砸到了牛頓頭上。 Newton Tablet的想法過(guò)于超前,最糟糕的是Jobs當時(shí)并不在A(yíng)pple。Apple用并不太短的時(shí)間證明了一條真理,沒(méi)有Jobs的Apple和沒(méi)有喬丹的公牛沒(méi)有太大區別。1996年3月,Steve Jobs再次回到Apple,兩年后取消了這個(gè)并不成功的項目[57]。等到Jobs再次推出iPad Newton,已是十幾年之后的事情了[58]。 Apple投入3百萬(wàn)美金擁有了ARM公司43%的股份[60],但是并沒(méi)有完全押寶在A(yíng)RM公司,Apple真正關(guān)注的是在1991年與IBM和Motorola組建的AIM[59]。在1998年,ARM公司在英國和美國同時(shí)上市后,Apple逐漸賣(mài)出了這些股份。在2010年,Apple即便準備好了80億美金,卻也無(wú)法收購ARM。 1990年的ARM公司,財務(wù)依然十分拮據,12個(gè)員工只能擠在谷倉[ii]中辦公,廉價(jià)License的商業(yè)模式更不被人看好。依靠Apple的鼎力相助,ARM6[iii]得以問(wèn)世,卻沒(méi)有改變Apple和ARM的命運。Newton項目設計的是本應該屬于下一個(gè)世紀的Tablet,ARM6被PC處理器和當時(shí)多如牛毛的RISC處理器籠罩,無(wú)所作為。 上世紀90年代屬于PC領(lǐng)域。AMD的異軍突起,及其與Intel的競爭,構建了上世紀九十年代處理器領(lǐng)域一道最炫目的風(fēng)景線(xiàn),而服務(wù)器領(lǐng)域屬于DEC。1992年2月25日,DEC發(fā)布的Alpha21064處理器,主頻達到150MHz[61],Intel在第二年發(fā)布的Pentium處理器,主頻僅有66MHz[62]。 整個(gè)90年代,處理器世界都在驚嘆著(zhù)Alpha處理器所創(chuàng )造的奇跡。DEC陸續發(fā)布的Alpha系列處理器既是放到二十一世紀的今天,設計理念依然并不落后。DEC工程師就是在為二十一世紀設計處理器芯片。在A(yíng)lpha21×64系列處理器的編號中,’21’代表二十一世紀,而’64’代表64位處理器[63]。 上帝并不青睞DEC公司,科技與商業(yè)的嚴重背離終于釀成了巨大的災難。Alpha處理器的技術(shù)尚未抵達巔峰,DEC的財務(wù)已捉襟見(jiàn)肘。1994~1998年,DEC不斷地向世界各地兜售資產(chǎn)。至1997年,DEC出售的資產(chǎn)已遍及五大洲,二十多個(gè)國家[64]。1998年1月26日,DEC正式被Compaq收購[65]。在DEC解體的最后一段日子里兩個(gè)公司最為受益,一個(gè)是Intel,另一個(gè)就是ARM。 在A(yíng)RM的起步階段,鼎力相助的是Apple,最先License ARM內核的是英國本土的GEC半導體公司。在1993年因為Apple的引薦,ARM處理器跋山涉水來(lái)到日本,與Sharp建立了合作關(guān)系。在此之前Sharp與Apple一直在合作開(kāi)發(fā)Newton項目。 這些合作并沒(méi)有緩解ARM的財務(wù)危機,ARM一直在追尋真正屬于自己的客戶(hù)。1993年,Cirrus Logic[iv]和德州儀器公司TI(Texas Instruments)先后加入ARM陣營(yíng)。TI給予了ARM雪中送炭的幫助。TI正在說(shuō)服當時(shí)一家并不知名的芬蘭公司Nokia與他們一道進(jìn)入通信移動(dòng)市場(chǎng)。TI在DSP領(lǐng)域已經(jīng)取得了領(lǐng)袖地位,但并不熟悉CPU業(yè)務(wù),在屈指可數的可以被操控的公司中,他們最終選擇了ARM[67]。 ARM迎來(lái)了上天賜予的機會(huì )。通過(guò)與Nokia和TI的密切合作,ARM發(fā)明了16位的Thumb指令集,也真正意義上創(chuàng )建了基于A(yíng)RM/Thumb的SoC商業(yè)模式[67]。ARM已經(jīng)逐漸擺脫了財務(wù)危機,業(yè)務(wù)不斷擴大。至1993年底,ARM已有50個(gè)員工,銷(xiāo)售額達到10M英鎊。 同年ARM迎來(lái)了公司成立以來(lái)最重要的一顆處理器內核,ARM7[67]。ARM7使用的Die尺寸是Intel 80486的十六分之一,售價(jià)僅為50美金[v]左右。較小的Die尺寸,使得ARM7處理器獲得了較的功耗,適合手持式應用[67]。 ARM7處理器引起了當時(shí)的處理器巨頭DEC的關(guān)注。1995年,DEC開(kāi)始研發(fā)StrongARM。與其他License ARM內核的半導體廠(chǎng)商不同。DEC獲得了ARM架構的完整授權,DEC可以使用ARM的指令集,設計新的處理器架構,這個(gè)特權后來(lái)被Intel和Marvell陸續繼承。第二年的2月5日,DEC正式發(fā)布SA110處理器,并開(kāi)始提供樣片[68]。SA110處理器迅速得到了業(yè)界的認可,Apple正式使用SA110處理器開(kāi)發(fā)MessagePAD 2000 [69]。 StrongARM處理器在設計中注入了Alpha處理器的一些元素。StrongARM使用5級順序執行的流水線(xiàn),分離了指令和數據Cache,添加了DMMU和IMMU功能部件,每個(gè)MMU中包含32個(gè)全互連結構的TLB,添加了16級深度的WB(Write Buffer)[70]。至此ARM處理器更像是一顆微處理器,而不再是微控制器。 DEC的幫助使ARM處理器達到了前所未有的高度。更為重要的是,這顆160MHz,DMIPS為185的處理器,功耗低于500mW[70]。這不僅引起了工業(yè)界的濃厚興趣,學(xué)術(shù)界也開(kāi)始真正關(guān)注ARM處理器。1997年,DEC如期發(fā)布了第二顆StrongARM芯片,SA1100。SA1100在SA110的基礎上增加了一些外部設計。第二年Intel為SA1100提供了一個(gè)伴侶芯片SA1101,SA1100+SA1101也成為了許多PDA廠(chǎng)商的首選。1999年,Intel發(fā)布了最后一顆StrongARM處理器SA1110[vi],和對應的伴侶芯片SA1111。 StrongARM的發(fā)布并沒(méi)有使DEC擺脫財務(wù)危機。而DEC卻找到了一個(gè)更容易賺錢(qián)的途徑。1997年5月,DEC正式起訴Intel,宣稱(chēng)Intel在設計Pentium,Pentium Pro和Pentium II處理器時(shí)侵犯了DEC的10條專(zhuān)利。1997年9月,Intel反訴DEC在設計Alpha系列處理器時(shí)侵犯了Intel多達14條專(zhuān)利[72]。 在IT界,這樣的官司大多不了了之。1997年11月27日,DEC和Intel選擇和解。DEC向Intel提供除Alpha處理器之外的所有硬件設計授權,并進(jìn)一步支持Intel開(kāi)發(fā)IA64處理器。而Intel花費了625M美金購買(mǎi)DEC在Hudson的工廠(chǎng),Israel Jerusalem和Texas Austin的芯片設計中心。另外這兩個(gè)公司還簽署了長(cháng)達十年的交叉授權協(xié)議[72]。 DEC的技術(shù)注入使Intel的x86處理器邁入新的時(shí)代,很快Intel具備了向所有RISC處理器同時(shí)宣戰的能力,最終一統PC和服務(wù)器領(lǐng)域。此外Intel還從DEC獲得了StrongARM?死赘瘛へ惾鹛卣J為這是上天賜予Intel的機會(huì ),x86處理器與StrongARM的組合,將使Intel的處理器遍及世界上任何需要處理器的領(lǐng)域。 為了迎接StrongARM的到來(lái),貝瑞特放棄了Intel自己的RICS處理器,i860和i960。Intel為StrongARM起了一個(gè)炫目的名字XScale,動(dòng)用了積蓄已久史上最為強大的Ecosystem,強勢進(jìn)軍嵌入式領(lǐng)域。 一時(shí)間,XScale處理器遍及嵌入式應用的每一個(gè)領(lǐng)域,用于手持終端的PXA系列,用于消費類(lèi)電子的IXC/Intel CE系列,用于存儲的IOP系列,用于通信的IXP系列。Intel的處理器技術(shù)極大地促進(jìn)了ARM內核的發(fā)展,借用PC帝國的Ecosystem使ARM處理器從生產(chǎn)到設計一步領(lǐng)先于所有嵌入式行業(yè)的競爭者。成為XScale處理器試金石的是摩托羅拉半導體的68K處理器。 在XScale系列處理器誕生之前,68K處理器主宰嵌入式領(lǐng)域,Apple Macintosh最初也使用68K處理器。在1997年,摩托羅拉銷(xiāo)售了79M片68K處理器,而Intel的x86處理器一共賣(mài)出了75M片[73]。這是68K處理器最后的輝煌。Intel和TI主導的ARM處理器終結了68K處理器。摩托羅拉半導體面對ARM的強勢出擊毫無(wú)準備。ARM處理器不斷地蠶食68K的市場(chǎng)份額,直到完全占有。 1995年,摩托羅拉半導體的香港設計中心發(fā)布第一顆用于手持式設備的DragonBall處理器,MC68328(EZ/VZ/SZ)[74],這是香港半導體界最好的時(shí)代。而StrongARM/XScale很快結束了香港設計中心的幸福生活。面對ARM的挑戰,DragonBall最終屈服,DragonBall MX(Freescale i.MX)系列處理器開(kāi)始使用ARM9。使用ARM內核并沒(méi)有改變摩托羅拉香港設計中心的命運,這個(gè)設計中心最終不復存在。 在工業(yè)控制領(lǐng)域,68K內核進(jìn)化為ColdFire[vii]。ColdFire在HP的中低端打印機中取得的成就幾乎是最后的絕唱。在通信領(lǐng)域,摩托羅拉半導體拋棄了基于68K內核的MC68360,研發(fā)出基于PowerPC架構的MPC860處理器。這顆處理器是通信時(shí)代的經(jīng)典之作,摩托羅拉半導體陸續推出了一系列基于PowerPC內核的通信處理器,卻再也沒(méi)有重現MPC860時(shí)代的君臨天下。近期推出的QorIQ[viii]系列處理器面對多核MIPS處理器總是滯后一拍。 摩托羅拉半導體,昔日的王者優(yōu)雅地沒(méi)落。摩托羅拉半導體于1955年推出第一個(gè)鍺晶體管,開(kāi)創(chuàng )了半導體集成電路產(chǎn)業(yè),在整個(gè)60年代一騎絕塵,70年代末迎來(lái)了68K的輝煌。即使在1985年,摩托羅拉還是全球第三大半導體公司。而懷抱通吃整個(gè)產(chǎn)業(yè)鏈的野心,對封閉式系統的摯愛(ài),使摩托羅拉連同半導體部門(mén)在同一棵石頭上跌到了一次又一次。至21世紀,摩托羅拉半導體(Freescale)的排名在十名左右,2009年的排名僅為第17位。 擊敗了摩托羅拉半導體的Intel沒(méi)有感到一絲喜悅,更多的是寒氣。2006年,Intel的業(yè)績(jì)跌入低谷,這也使得當時(shí)的CEO貝瑞特作出了一個(gè)艱難的選擇,2006年6月27日,Intel將PXA系列處理器出售給了Marvell[12]。 Intel雖然保留了ARM處理器的授權,事實(shí)上卻已徹底退出了ARM陣營(yíng)。這是Intel一個(gè)非常謹慎而且堅決的選擇。Intel需要撲滅后院的熊熊烈火。在PC領(lǐng)域,AMD率先推出了64位的K8處理器[75],并在2005的Computex 上,發(fā)布雙核處理器Athlon 64。Intel x86最引以為豪的性能優(yōu)勢已不復存在。 這段時(shí)間Intel只能依靠工藝與強大的商務(wù)能力與AMD的Athlon64處理器周旋。2008年11月,Intel正式發(fā)布基于Nehalem內核,用于臺式機的Core i7處理器[76],用于服務(wù)器的Xeon處理器,Core i3/i5也如期而至。Nehalem內核使Intel徹底戰勝了AMD。這顆處理器也是Intel開(kāi)始研發(fā)x86處理器以來(lái),第三個(gè)具有里程碑意義的產(chǎn)品,之前的兩個(gè)里程碑分別是80386和Pentium Pro。從這時(shí)起AMD處理器在性能上再也沒(méi)有超過(guò)Intel。Intel解決了最大的隱患后,卻發(fā)現ARM處理器已非吳下阿蒙。 ARM7之后,ARM8內核于1996年發(fā)布。ARM8內核生不逢時(shí)。與ARM7相比,AMR8在沒(méi)有顯著(zhù)提高功耗的前提下,性能提高了一倍,依然無(wú)法和DEC的StrongARM抗衡[77][78]。僅有少量手機在原型設計中考慮過(guò)使用ARM8內核,ARM也僅為用戶(hù)提供了CPU樣板。 ARM8的失敗并沒(méi)有阻礙ARM內核的進(jìn)一步發(fā)展,與StrongARM的競爭沒(méi)有消減ARM陣營(yíng)的實(shí)力,反而激發(fā)了ARM處理器不斷向前的動(dòng)力。1997年ARM9正式發(fā)布,DMIPS指標首次超過(guò)了1.0大關(guān)。ARM9是一個(gè)重要的里程碑產(chǎn)品。這個(gè)產(chǎn)品標志著(zhù)ARM處理器正式進(jìn)入微處理器領(lǐng)域,而不再是簡(jiǎn)單的微控制器。 ARM9將ARM7的3級指令流水線(xiàn)提高到5級,與StrongARM使用的流水線(xiàn)結構較為相似。進(jìn)一步細化的流水線(xiàn)使得ARM9最高的時(shí)鐘頻率達到220MHz,而ARM8僅為72MHz[78]。ARM9進(jìn)一步優(yōu)化了Load和Store指令的效率,ARM9不再使用普林斯頓結構,而轉向哈佛結構,使用了獨立的指令與數據Cache。 ARM9的指令執行部件分離了Memory和Write Back階段,這兩個(gè)階段分別用于訪(fǎng)問(wèn)存儲器和將結果回寫(xiě)到寄存器。這些技術(shù)的應用使得ARM9可以在一個(gè)周期內完成Load和Store指令,而在A(yíng)RM7中,Load指令需要使用3拍,而Store指令需要使用2拍。 此外ARM9可以通過(guò)增強的編譯器調整指令順序來(lái)解決RAW(Read-after-Write)[ix]類(lèi)相關(guān)。ARM9的這些功能增強,使得在相同的工藝下,其執行性能是ARM7的一倍左右[79]。ARM7并沒(méi)有被淘汰,簡(jiǎn)練的設計極大降低了功耗,Apple在2001年10月23日[80]發(fā)布的iPod依然使用了ARM7處理器[81]。 ARM7與ARM9的合理布局,使得ARM陣營(yíng)迅猛發(fā)展;贏(yíng)RM7和ARM9內核的SoC處理器迅速遍及世界的每一個(gè)角落。ARM內核依然在前進(jìn)。1998年的EPF(Embedded Processor Forum) ARM10內核正式推出。2000年4月12日,Lucent發(fā)布了第一顆基于A(yíng)RM10的處理器芯片[83]。 ARM10內核的設計目標依然是在相同的工藝下,雙倍提升ARM9的性能。而提高性能的第一步是提高指令流水線(xiàn)的時(shí)鐘頻率,而流水線(xiàn)中最慢的邏輯單元決定了時(shí)鐘頻率。ARM10使用了6級流水線(xiàn)結構,但并不是在A(yíng)RM9的5級流水線(xiàn)的基礎上增加了一級,而是進(jìn)行了細致取舍而調優(yōu)。最終的結果是在使用相同的工藝時(shí),ARM10內核可使用時(shí)鐘頻率為ARM9內核的1.5倍[82] [84]。 ARM10內核重新使用了ARM8內核的系統總線(xiàn),將ARM9的32位系統總線(xiàn)提高到64位。這也使得ARM10可以在一個(gè)時(shí)鐘周期內完成兩條寄存器與存儲器之間的數據傳遞,大幅提高了Load Multiple和Store Multiple指令的效率[84]。 另外ARM10改動(dòng)了Cache Memory系統,與ARM9相比提高了存儲器系統的效率。ARM10的指令與數據Cache使用虛擬地址,64路組相連結構,引入了高端處理器中流水線(xiàn)與Cache交換數據的Streaming Buffer和Cache Line filling部件[84]。 ARM10內核優(yōu)化了存儲器讀指令。實(shí)現了最為簡(jiǎn)單的亂序執行機制。當一條存儲器讀指令沒(méi)有執行完畢,其后不相關(guān)的指令可以繼續執行。ARM10對乘法指令進(jìn)行了特別的優(yōu)化,設置了一個(gè)新型的16×32的乘法和乘加部件外,同時(shí)設置了兩級乘法指令流水,使得每一個(gè)時(shí)鐘周期可以執行一條乘法指令[84]。最后ARM10內核增加了對浮點(diǎn)運算的支持。 從技術(shù)的角度上看,ARM10遠勝過(guò)ARM9,但是沒(méi)有辦法在商業(yè)上與ARM9一較高下。ARM10的命運與ARM8驚人的一致。生不逢時(shí)的ARM8與StrongARM不期而遇,ARM10與XScale生活在同一年代。 Intel的工程師面對ARM的指令流水線(xiàn)耐不住技癢,ARM10的指令流水線(xiàn)與之前的ARM內核相比,可以說(shuō)是一個(gè)飛躍,而與同年代的高端處理器相比只是一個(gè)玩具。Intel的幫助極大促進(jìn)了ARM處理器的發(fā)展。 Intel在保證XScale架構低功耗的同時(shí),引入已經(jīng)在Pentium Pro系列處理器上非常成熟的Superpipelined RISC技術(shù)[85],借助Intel的工藝優(yōu)勢,使得XScale處理器的最高運行頻率達到了1.25GHz[86]。此時(shí)Intel開(kāi)發(fā)的處理器步入了高頻低能的陷阱,1.25GHz的PXA3XX性能僅比624MHz的PXA270的執行效率高25%[86]。 XScale架構并沒(méi)有使Intel盈利。ICG(Intel Communication Group)部門(mén)和WCCG(Wireless Communications and Computing Group)部門(mén)給Intel帶來(lái)的是巨額虧損,ICG在2002~2004年的虧損分別為$817M, $824M和$791M[87]。2003年12月11日,Intel宣布將WCCG合并到ICG中,并在2004年1月1日生效。 這次合并沒(méi)有挽救XScale的命運。在2006年,AMD的步步緊逼使Intel迎來(lái)了20年以來(lái)最糟糕的一季財務(wù)報表。Intel開(kāi)始了有史以來(lái)最大規模的裁員。2006年7月13日,Intel宣布取消1000個(gè)經(jīng)理職務(wù)[89],2006年9月5日,Intel裁員10%[90]。 在此之前Intel將XScale處理器中Marvell還愿意接收的部分出售[12]。Marvell需要的并不是XScale內核,而是Intel從DEC獲得的對ARM指令集的完整授權,很快Marvell推出了基于標準ARM v5/v6/v7的處理器,而不再單獨依靠XScale。XScale,這個(gè)幾乎耗盡Intel全部心血的架構,已經(jīng)走到了最后盡頭。 Intel退出ARM陣營(yíng),不是因為缺少$600M現金。和許多人預料的并不相同,Intel并不是為了主推ATOM處理器,而放棄XScale。而是因為Intel用長(cháng)達八年的時(shí)間發(fā)現了一個(gè)事實(shí),ARM的廉價(jià)License策略并不能使之獲利,而必須做Atom。 ARM的廉價(jià)License的獲益者是ARM自身,隨著(zhù)處理器廠(chǎng)商的不斷加入, ARM陣營(yíng)獲得了迅猛發(fā)展,這也加速了處理器廠(chǎng)商的優(yōu)勝劣汰。但是Intel發(fā)現的事實(shí)依然適用于所有正在使用ARM授權的半導體廠(chǎng)商。 最令ARM內核尷尬的是,依靠這個(gè)號稱(chēng)最為開(kāi)放的處理器內核,獲取暴利的是一些做著(zhù)史上最為封閉系統的公司。憑借ARM內核,Qualcomm為3G專(zhuān)利找到了最佳載體,Apple不斷兜售著(zhù)各類(lèi)新奇的電子設備。來(lái)自通信領(lǐng)域的Cisco,華為陸續加入ARM陣營(yíng)。ARM,這個(gè)來(lái)自半導體領(lǐng)域的處理器,并沒(méi)有使這個(gè)領(lǐng)域受益。ARM的出現,極大降低了處理器的設計門(mén)檻,使得單純依靠半導體技術(shù),為做處理器而做處理器的廠(chǎng)商舉步維艱。 Intel首當其沖。Intel的錯誤在十幾年前已然犯下。貝瑞特本應該做出對Intel最為有利選擇,從DEC那里獲得StrongARM后,再親手終結StrongARM。貝瑞特不經(jīng)意的失誤為Intel的未來(lái)樹(shù)立了一個(gè)強大的對手,也使整個(gè)處理器世界更加精彩。ARM已經(jīng)從XScale處理器中獲得了足夠的能量,已經(jīng)可以不依賴(lài)任何廠(chǎng)商。他們的命運已經(jīng)牢牢地掌握在自己手中。 2002年12月,ARM1136內核發(fā)布[91]。2004年7月19日,ARM1176內核發(fā)布[92]。2005年3月10日,ARM1156內核發(fā)布[93]。在此之前的ARM處理器雖然得到了廣泛應用,但是從純技術(shù)的角度上看這些處理器微不足道。 ARM11基于A(yíng)RMv6指令集,之前ARM還開(kāi)發(fā)了V1,V2,V2a,V3,V4和V5指令集。ARM使用的內核與指令集并不一一對應。如ARM9使用V4和V5指令集,XScale使用V5指令集。ARM7最初使用V3,而后使用V4,最后升級到V5。在A(yíng)RM指令集后還包含一些后綴如ARMv5TEJ,其中T表示支持Thumb指令集,E表示支持Enhanced DSP指令,而J表示支持Jazelle DBX指令。 ARM v4指令集包含最基礎的指令集;v5增強了ARM與Thumb指令間的交互同時(shí)增加了CLZ(Count Leading Zero)和BKPT(Software Breakpoint)指令;ARMv5TE增加了一系列Enhanced DSP指令,如PLD(Preload Data),LDRD(Dual Word Load),STRD(Dual Word Store)和64位的寄存器傳送指令如MCRR和MRRC。ARM v4和v5在指令集上變化不大,v5也可以向前兼容v4指令集[94]。 而v6指令集并不能100%向前兼容v5的指令集。由于A(yíng)RMv6對存儲器訪(fǎng)問(wèn)模型的大規模更改,完全的向前兼容不再可能。從x86處理器苛求的向前兼容的角度上看,這些改動(dòng)并不完美,也正是這些不完美使得ARM內核輕裝前進(jìn)。 ARM的指令集使用RISC架構,但是在A(yíng)RM指令集中包含許多CISC元素。與PowerPC指令集相比,ARM的指令集凌亂得多,這為指令流水線(xiàn)的譯碼部件制造了不小的麻煩。在A(yíng)RM內核包含三類(lèi)指令集,一個(gè)是32b長(cháng)度的ARM指令,一個(gè)是16b長(cháng)度的Thumb指令,還有一類(lèi)由8位組成的變長(cháng)Jazelle DBX(Direct Bytecode eXecution)指令集。在A(yíng)RM架構為數不多的指令集中,有兩類(lèi)指令值得特別關(guān)注,一個(gè)是Conditional Execution指令,另一個(gè)是移位指令。 絕大多數ARM的數據訪(fǎng)問(wèn)指令都支持條件執行功能。所謂條件執行是指指令可以根據狀態(tài)位,有選擇地執行。使用這種方式可以在一定程度上降低條件轉移指令預測失敗時(shí)所帶來(lái)的系統延時(shí)。在計算GCD(Greatest Common Divisor)時(shí),ARM的條件執行指令發(fā)揮了巨大的作用,如圖2所示。 ![]() 圖2 gcd算法的實(shí)現[94] 通過(guò)上圖可以發(fā)現由于SUBGT和SUBLE指令可以根據CMP指令產(chǎn)生的狀態(tài)決定是否執行,采用該類(lèi)指令可以顯著(zhù)降低代碼長(cháng)度。ARM指令集還對移位操作進(jìn)行了特別的處理,事實(shí)上ARM不含有單獨的移位指令,而使用了Barrel Shifter技術(shù),與其他指令聯(lián)合實(shí)現移位操作。使用這種方法可以有效提高某些運算的效率,如圖3所示。 ![]() 圖3 Barrel Shifter的使用 這些特殊的指令使得ARM內核有別于其他處理器內核,但這并不意味著(zhù)也極大提高了執行效率。首先CMP指令,SUBGT和SUBLE指令有較強的相關(guān)性,不能并發(fā)執行。此外現代處理器的條件預測單元也可以極大降低條件轉移指令的命中率。一些處理器,如x86的CMOV指令和PowerPC的isel指令使用了更小的代價(jià)實(shí)現了ARM的條件執行功能。 ARM內核在條件執行指令時(shí)占用了4個(gè)狀態(tài)位,也進(jìn)一步影響了指令集和寄存器的擴展。絕大多數RISC處理器中具有32個(gè)通用寄存器,而ARM內核僅有16個(gè)通用寄存器[x]。ARM的特殊移位操作,增加了指令的相關(guān)性,在有些情況下,不利于多發(fā)射流水線(xiàn)的實(shí)現,也增加了指令流水中預約站RS(Reservation Station)的實(shí)現難度。 計算機體系結構是一個(gè)權衡的藝術(shù),尺有所短,寸有所長(cháng)。不同的內核都有自己最為合適的應用,不經(jīng)過(guò)認真的量化分析不能輕易得出孰優(yōu)孰劣的結論。不過(guò)仍有一個(gè)結論,在現階段依然適用,處理器領(lǐng)域歷經(jīng)多年的優(yōu)勝劣汰,所剩無(wú)幾的處理器內核在激烈的競爭中日漸趨同。 ARM11內核使用了現代處理器中常用的一些提高IPC的技術(shù),這是ARM處理器的一個(gè)重要里程碑。ARM11內核引起了計算機科學(xué)的兩個(gè)泰山北斗,David A. Patterson和John L. Hennessy的注意。他們以ARM11內核為主體,而不再是MIPS,書(shū)寫(xiě)了計算機體系結構的權威著(zhù)作,《Computer Organization and Design, Fourth Edition: The Hardware/Software Interface》。這也是學(xué)術(shù)界對ARM處理器有史以來(lái)的最大認可。 ARM11可以支持多核,采用了8級流水線(xiàn)結構,率先發(fā)布的內核其主頻在350~500MHz之間,最高主頻可達1GHz。在使用0.13μm工藝,工作電壓為1.2V時(shí),ARM11處理器的功耗主頻之比僅為0.4mW/MHz。ARM11增加了SIMD指令,與ARM9相比MPEG4的編解碼算法實(shí)現速度提高了一倍,改變了Cache memory的結構,使用物理地址對Cache行進(jìn)行索引[95]。ARM11終于開(kāi)始使用動(dòng)態(tài)分支預測功能,設置了64個(gè)Entry,4個(gè)狀態(tài)的BTAC(Branch Target Address Cache)[95]。 ARM11進(jìn)一步優(yōu)化了指令流水線(xiàn)對存儲器系統的訪(fǎng)問(wèn),特別是在Cache Miss的情況之下的存儲器讀寫(xiě)訪(fǎng)問(wèn)。在A(yíng)RM11內核中,當前存儲器讀指令并不會(huì )阻塞后續不相關(guān)的指令執行,即便后續指令依然是存儲器讀指令,只有3個(gè)存儲器讀指令都發(fā)生Cache Miss的情況,才會(huì )阻塞指令流水線(xiàn)[95]。 雖然ARM11沒(méi)有使用RISC處理器常用的out-of-order加Superscaler技術(shù),在一個(gè)時(shí)鐘周期之內僅能順序發(fā)射一條指令,但是支持out-of-order completion功能,即在執行單元中的不相關(guān)的指令可以亂序結束,而不用等待之前的指令執行完畢。 ARM11的這些功能增強,相對于A(yíng)RM9/10是一個(gè)不小的技術(shù)飛躍。但是與其他處于同一時(shí)代的x86,PowerPC和MIPS處理器相比,仍然有不小的差距。ARM11內核的存活之道依然是性能功耗比。 依靠著(zhù)強大的性能功耗比,ARM11內核取得了巨大的商業(yè)成功。ARM11內核并不是一個(gè)性能很高的處理器,但是隨著(zhù)ARM處理器性能的不斷提升,量變終于引發(fā)了質(zhì)變。ARM11內核的出現,使得Smart Phone的出現成為可能。 在此之前,基于A(yíng)RM9,XScale處理器的手機只是在Feature Phone的基礎上添加了少許智能部件。自ARM11的問(wèn)世起,Apple,HTC在智能手機領(lǐng)域異軍突起,Motorola一蹶不振。ARM11之后,ARM迎來(lái)了爆發(fā)式增長(cháng),陸續發(fā)布了Cortex A8和A9內核。 ARM處理器內核的快速更新,使得Nokia這個(gè)對新技術(shù)反應遲鈍的公司,一步步走向衰退。在2010年9月底開(kāi)始出貨的Nokia N8[96],居然還在使用著(zhù)680MHz主頻的ARM11處理器[97],而這款產(chǎn)品卻號稱(chēng)是Nokia最新的旗艦產(chǎn)品,它的競爭對手早已使用了1GHz主頻的Cortex A8處理器。 Cortex處理器是一個(gè)分水嶺,從1983年開(kāi)始的ARM內核,迎來(lái)了一顆真正意義的現代處理器。此時(shí)的ARM已經(jīng)破繭成蝶,不再是低功耗伴隨著(zhù)低能的處理器。從這一刻起,ARM處理器具備了和Intel,一較高下的能力。2010年4月3日,Apple的Jobs正式發(fā)布iPad,ARM隨之進(jìn)入平板電腦領(lǐng)域[99]。ARM已將戰火燒到了Intel的后院。 拋棄了XScale架構的Intel,并沒(méi)有放棄手機處理器。2009年1月23日,Nokia與Intel在手機領(lǐng)域建立長(cháng)期合作伙伴關(guān)系[103]。2009年6月4日,Intel收購Windriver[102]。2010年5月4日,Intel正式發(fā)布用于智能手機和平板電腦,代號為Moorestown的處理器[100]。2010年8月29日,Intel收購Infinion的無(wú)線(xiàn)部門(mén)[104]。在2011年左右,Intel將發(fā)布用于智能手機,代號為Medfield的處理器[101]。一系列的合作與收購,使Intel具備了進(jìn)入手機領(lǐng)域的能力。 至此ARM之于PC領(lǐng)域,x86之于手機領(lǐng)域的野心,已昭然若揭。2010年9月9日,ARM正式發(fā)布代號為Eagle,5倍ARM9架構的Cortex A15內核,這顆處理器所關(guān)注的應用是高端手機,家庭娛樂(lè ),無(wú)線(xiàn)架構,還有低端服務(wù)器[98]。Cortex A15向世人宣布除了PC,他們還要向Server進(jìn)軍。 ARM,這個(gè)曾被Intel鄙視,被其扶植,被其拋棄的處理器,開(kāi)始直面挑戰Intel的x86處理器。這場(chǎng)較量是今后處理器領(lǐng)域5到10年的主旋律。最終結果將影響處理器領(lǐng)域今后20年的格局。不要認為ARM處理器沒(méi)有進(jìn)入PC領(lǐng)域的可能,也不要認為ARM處理器可以繼續在手機領(lǐng)域中所向披靡。 蘋(píng)果公司的兩個(gè)創(chuàng )始人都叫Steve,一個(gè)是Steve Wozniak,另一個(gè)是眾所周知的Steve Jobs。Steven Wozniak是Apple I和Apple II的發(fā)明者。兩個(gè)Steve在1976年4月,在一個(gè)車(chē)庫中成立眾所周知的Apple。 [ii] 英國的谷倉文化與美國的車(chē)庫文化相近,都是新技術(shù)的搖籃。 [iii] ARM公司從ARM3直接升級到ARM6。 [iv] 我最初評估的ARM芯片就是Cirrus Logic的EP7312。當時(shí)我還在使用Altera的EPLD,名稱(chēng)是EP7132,我經(jīng);煜@兩個(gè)名字。在一個(gè)機緣巧合之下,粗心的采購將我需要購買(mǎi)的EP7132買(mǎi)成了EP7312,這顆芯片也是我不經(jīng)意購買(mǎi)的第一顆ARM處理器。 [v] 當時(shí)的處理器價(jià)格高得離譜,50美金已經(jīng)是很廉價(jià)了。 [vi] 我從SA1110開(kāi)始接觸ARM處理器,那是一個(gè)永遠值得回憶的時(shí)代。 [vii] 我在摩托羅拉半導體部門(mén)第一次接觸的就是Coldfire處理器,目前這顆處理器仍然在不斷發(fā)展中,這顆芯片與68K在匯編語(yǔ)言層面兼容,但是目標代碼并不兼容。 [viii] QorIQ系列處理器基于E500 mc內核,與E500 v2有些微小差異。我的第一本著(zhù)作是基于E500內核的《Linux PowerPC詳解—核心篇》,當時(shí)準備寫(xiě)一套叢書(shū),包括核心篇和應用篇。應用篇主要寫(xiě)外部設備,后來(lái)的《PCI Express體系結構導讀》源自《Linux PowerPC詳解—應用篇》,應用篇應該包含網(wǎng)絡(luò )協(xié)議,PCI Express和USB總線(xiàn),后來(lái)把網(wǎng)絡(luò )協(xié)議部分和USB總線(xiàn)部分刪掉了。 [ix] 在處理器體系結構中,重點(diǎn)關(guān)注的有三類(lèi)相關(guān)問(wèn)題,RAW,WAR和WAW。使用寄存器重命名技術(shù)可以解決WAR和WAW相關(guān)。 [x] 考慮到ARM在A(yíng)RM11內核之前都不支持動(dòng)態(tài)分支預測,和多發(fā)射,使用條件執行指令還是能夠提高ARM7/9內核的執行效率。 |