那些年的那些事CISC和RISC發(fā)展中的糾纏
ARM、ARM、ARM,沒錯(cuò)ARM仿佛一夜之間就火了,平板、手機(jī)等領(lǐng)域隨處可見它的影子,甚至已經(jīng)有人預(yù)言未來有相當(dāng)一部分原屬于傳統(tǒng)x86勢力范圍 的臺式機(jī)份額也將被ARM占據(jù)。在這種情況下,大家不可避免地將ARM和傳統(tǒng)的x86處理器進(jìn)行比較,有力挺ARM的,也有支持x86的。事實(shí)上,ARM 并非突然冒起,它幾乎和x86同時(shí)崛起于上個(gè)世紀(jì)末期。
那么,目前ARMCISC和RISC是現(xiàn)代微處理器的兩大基礎(chǔ)指令集結(jié)構(gòu)。從技術(shù)和歷史角度來 看,CISC和RISC的誕生和發(fā)展并非是你死我活的關(guān)系,RISC被提出后,才將傳統(tǒng)的指令集系統(tǒng)稱為CISC。而結(jié)構(gòu)體系上的不同又令兩者在發(fā)展道路 上分道揚(yáng)鑣,漸行漸遠(yuǎn)。在這漫長的發(fā)展過程中,RISC也曾經(jīng)努力過,力求進(jìn)入CISC的領(lǐng)域;
CISC也奮斗過,希望在RISC的世界中分得一杯羹。
ARM是基于RISC的產(chǎn)品,而PC的代言人是x86,基于CISC。ARM、x86之爭,其實(shí)就是RISC和CISC之爭。RISC和CISC在長達(dá) 30年的糾葛之后,再一次正面碰撞到了一起。如果說之前的RISC和CISC的碰撞都只是部分領(lǐng)域的小打小鬧,那么現(xiàn)在ARM和x86有可能帶來的是一場 技術(shù)革命,一場全局化的戰(zhàn)爭。今天,我們將追本溯源,來看看RISC和CISC在歷史上的交鋒,和那些鮮為人知的故事。
今天,業(yè)內(nèi)普遍認(rèn)為PC性能的提升,特別是CPU性能的提升,動(dòng)力來自于晶體管制造技術(shù)的不斷進(jìn)步。只有晶體管數(shù)量更多、運(yùn)行頻率更高,才能在單位時(shí)間內(nèi) 完成更多的工作任務(wù),這也是上個(gè)世紀(jì)70年代以前的PC發(fā)展主流思想。當(dāng)時(shí)的計(jì)算機(jī)速度很慢,特別是存儲速度非常慢,廣泛使用的慢速磁帶存儲設(shè)備以及大容 量內(nèi)存的缺乏,讓計(jì)算機(jī)對每一字節(jié)空間的應(yīng)用都很珍惜。在這樣的情況下,人們傾向于在一條指令中完成更多的工作,比如“從內(nèi)存和寄存器讀取數(shù)據(jù)相加后,寫 入內(nèi)存”。這實(shí)際上是四條指令,首先是從內(nèi)存讀取數(shù)據(jù),其次是從寄存器讀取數(shù)據(jù),第三是相加,最后才是寫入內(nèi)存。一條指令可以完成四項(xiàng)工作,這是當(dāng)時(shí)計(jì)算 機(jī)的主流設(shè)計(jì)方案。
在上世紀(jì)70年代左右,IBM以及其他企業(yè)的從業(yè)人員發(fā)現(xiàn),目前的PC發(fā)展方向存在一定的問題。如果按照現(xiàn)在指令集發(fā)展的方向繼續(xù)發(fā)展的話,那么現(xiàn)有的指 令集系統(tǒng)會越來越復(fù)雜。而同時(shí)期編譯器的流行,讓這種情況發(fā)生了變化:一方面指令集越來越復(fù)雜,一方面編譯器卻很少使用這么多復(fù)雜的指令集。而且如此多的 復(fù)雜指令,CPU難以對每一個(gè)指令都做出優(yōu)化,甚至部分復(fù)雜指令本身耗費(fèi)的時(shí)間反而更多。對這件事情的總結(jié),就是后來著名的“8020”定律,也就是在所 有的指令集中,只有20%最常用,80%基本上罕有問津。
時(shí)間進(jìn)入了1980年代, Reduced Instruction Set Computing,也就是RISC精簡指令集開始出現(xiàn)。這種指令集的優(yōu)勢在于將計(jì)算機(jī)中最常用的20%的指令集集中優(yōu)化,而剩下的不常用的80%則采用 拆分為常用指令集等方式運(yùn)行。在RISC提出之后,人們才賦予了傳統(tǒng)指令集一個(gè)正式的名稱:Complex Instruction Set Computing,也就是CISC復(fù)雜指令集。一時(shí)間,掀起了關(guān)于RISC和CISC究竟誰更好的爭論。
英特爾的選擇 在指令集爭論還沒有結(jié)束的時(shí)候,英特爾在IBM不屑一顧地眼光下接下了為IBM生產(chǎn)民用PC的中央處理器的業(yè)務(wù)。實(shí)際上IBM并非無法自己生產(chǎn)CPU,而 是IBM覺得個(gè)人PC遠(yuǎn)沒有大型主機(jī)的利潤高,自家的Power架構(gòu)用在兼容機(jī)上實(shí)在是“殺雞焉用牛刀”。英特爾于是在之前研發(fā)的C4004處理器的基礎(chǔ) 上繼續(xù)開發(fā)——C4004處理器也并非英特爾自愿開發(fā)的產(chǎn)品,而是來自于日本一家名為Busicom的廠商的訂貨需求。也就是這個(gè)訂貨需求,為日后的 x86的發(fā)展打下了基礎(chǔ)。
兼容PC的發(fā)展,帶來了全球的信息化革命大潮。
很快英特爾生產(chǎn)了8086處理器,并依靠PC的快速發(fā)展一炮走紅。這個(gè)時(shí)間段恰好是RISC開始嶄露頭角,CISC被眾人鄙視的年代。在RISC提出后, 業(yè)內(nèi)對RISC的未來發(fā)展進(jìn)行了幾乎一邊倒的贊揚(yáng)。從教學(xué)開始,美國大學(xué)計(jì)算機(jī)原理和系統(tǒng)結(jié)構(gòu)的教材和教學(xué)模式全部來自于RISC的發(fā)明人 Hennessy的理論,介紹的內(nèi)容則是Hennessy研發(fā)的以RISC為基礎(chǔ)的MIPS架構(gòu)。而當(dāng)時(shí)的研發(fā)論文IEEE和ACM發(fā)表的內(nèi)容也基本上都 對RISC提出了各種褒揚(yáng),x86以及CISC被認(rèn)為是沒有什么前途的東西。
英特爾在當(dāng)時(shí)的確是一個(gè)小公司,旗下只有幾款產(chǎn)品,CPU業(yè)務(wù)也才剛起步。面對整個(gè)業(yè)界一邊倒向RISC的現(xiàn)狀,英特爾要么一條道走到黑繼續(xù)兼容自己的 8086下定決心做x86,要么放棄看起來沒有什么希望的CISC投入RISC的懷抱。實(shí)際上當(dāng)時(shí)PC剛剛起步,市場空間和前景極為龐大,如果放棄PC市 場,可能對英特爾未來的發(fā)展帶來巨大的不確定性。況且當(dāng)時(shí)的PC用戶已經(jīng)有不少了,加上市場慣性,英特爾至少可以堅(jiān)持開發(fā)兩三代產(chǎn)品滿足這部分PC用戶的 需求。在這樣的情況下,英特爾毅然決定繼續(xù)開發(fā)x86,于是80286和80386等產(chǎn)品依次出爐。后來的事情大家都知道了,英特爾依靠PC市場賺得盆滿 缽盈,堅(jiān)定了其在x86市場繼續(xù)發(fā)力的決心。
高性能的RISC沒有進(jìn)入通用PC市場 PC市場拱手讓人、甚至連專利都沒有注冊,堪稱IBM百年來最大的失誤。看著自己當(dāng)年隨意選擇的英特爾漸漸成長為可與自己匹敵的業(yè)界巨頭,就連“備 胎”AMD(AMD當(dāng)時(shí)是IBM根據(jù)反壟斷條例而選擇的x86處理器第二供貨商)都逐漸發(fā)展壯大,IBM后悔不迭。不過沒關(guān)系,RISC還在,IBM還可 以在高性能市場上呼風(fēng)喚雨。
事實(shí)上,在上世紀(jì)80年代中末期,大量基于RISC的新指令集和產(chǎn)品的問世,讓人們看到了精簡指令集的威力。SGI的工作站基于MIPS,速度超 群;IBM的Power系列就不用說了,堪稱巨型計(jì)算機(jī)的首選產(chǎn)品;還有DEC Alpha架構(gòu)的處理器,都是RISC的代表之作。RISC在高性能計(jì)算機(jī)上展現(xiàn)出的強(qiáng)大魅力,讓用戶和業(yè)界為之神往。
在這種情況下,英特爾也坐不住了。俗話說,吃著碗里的,看著鍋里的。英特爾碗里面吃著x86這塊大肥肉,鍋里的RISC雖然是小肥牛,但也的確不錯(cuò)。于 是,英特爾秘密開發(fā)了基于RISC的處理器80860,希望打入通用計(jì)算機(jī)市場。但問題是,誰用呢?PC已經(jīng)是x86架構(gòu)了,RISC連兼容的操作系統(tǒng)和 軟件都沒有,從頭去建立生態(tài)系統(tǒng)和軟件圈子,當(dāng)時(shí)的英特爾很難成功。但英特爾決定多做一代試試看,于是不久之后又推出了新的80960處理器,依舊是 RISC架構(gòu),向下兼容80860,繼續(xù)延續(xù)完全賣不動(dòng)的“宿命”。于是英特爾想想干脆算了,直接做x86,一條道走到黑![!--empirenews.page--]
被拒絕的Acorn 亂世出英雄,在上世紀(jì)70年代末80年代初,RISC剛被提出、CISC被眾人鄙視、PC剛剛起步的亂世年代,一家小公司的出現(xiàn),改變了RISC和CISC在業(yè)界的態(tài)勢。
就是在這間倉庫中,ARM公司的幾大股東在一起開會,對全球移動(dòng)計(jì)算市場產(chǎn)生巨大震撼的ARM架構(gòu)就此誕生。
這家公司始創(chuàng)于1978年12月5日,創(chuàng)始人是物理學(xué)家赫爾曼·豪澤(Hermann Hauser)和工程師Chris Curry。公司的名字也很有意思,叫做Cambridge Processing Unit,意為劍橋處理器公司,簡寫為CPU。
1979年,CPU公司改名了,叫做Acorn,主營業(yè)務(wù)從為市場提供電子設(shè)備,轉(zhuǎn)向提供比較廉價(jià)的計(jì)算機(jī)設(shè)備。有多廉價(jià)呢?定價(jià)在500英鎊以內(nèi)。但是 公司很快發(fā)現(xiàn),摩托羅拉的CPU太慢價(jià)格又貴(摩托羅拉很快在CPU市場上被英特爾打得找不到北,慘淡收場)。于是Acorn公司去找英特爾索要 80286的設(shè)計(jì)資料,打算自行搭建PC兼容機(jī),但被英特爾無情拒絕了。
不知道英特爾會不會為這個(gè)決定而痛苦終身?被拒絕后的Acorn雖然火冒三丈,但志氣滔天:不就是CPU嗎!買不到還不能自己做嗎?1985年,一款使用RISC指令集,名字叫做Acorn RISC Machion的CPU誕生了,它的簡稱就是ARM。
ARM的特點(diǎn)是性能功耗比非常優(yōu)秀,比如蘋果的首款掌上觸屏個(gè)人電子設(shè)備Newton Message Pad就使用了ARM處理器,隨后還生產(chǎn)了多個(gè)型號。可惜由于軟件和硬件技術(shù)局限等問題,它沒有獲得太大成功。但這為ARM的發(fā)展奠定了基礎(chǔ)。1990 年,Acorn公司干脆改名為ARM。蘋果出資150萬英鎊入股,Acorn公司以價(jià)值150萬英鎊的知識產(chǎn)權(quán)和12個(gè)工程師入股。還有一個(gè)大股東是 VLSI,是一家芯片制造商。接下來由于市場不景氣等原因,ARM決定開放授權(quán),成為一家設(shè)計(jì)公司,將自己的設(shè)計(jì)和知識產(chǎn)權(quán)授權(quán)給其他廠商生產(chǎn)芯片。這成 為ARM輝煌的起點(diǎn)。
英特爾的逆襲和ARM的擴(kuò)大 英特爾最終發(fā)達(dá)起來了,占據(jù)了全球PC市場的絕大部分份額,IBM再也無法撼動(dòng)英特爾的地位。但CISC的性能始終是硬傷,英特爾肯定看到了這一點(diǎn),如果 x86的性能一直無法趕上在頂端的RISC處理器,英特爾就沒有辦法把觸手伸到最肥沃的服務(wù)器和超級計(jì)算機(jī)市場。從原理來說,x86架構(gòu)基于CISC,本 身問題不少,效率和發(fā)展方向都成問題。不過英特爾并不擔(dān)心,在潛心研究了RISC后,英特爾開始大膽在基于CISC的x86中引入RISC的設(shè)計(jì)思想,增 加了額外的一些“翻譯層”。CPU外部依舊是x86,但是內(nèi)部運(yùn)行更為類似精簡的RISC,于是CPU效能得到極大的提升。
Atom本來是英特爾進(jìn)入超便攜移動(dòng)計(jì)算市場的利器,但是ARM成功阻擊了它。
在Pentium品牌推出后,英特爾開始逐漸在x86中引入RISC的設(shè)計(jì)思想。借助PC市場上攫取的巨額利潤,英特爾開始瘋狂提升x86處理器的性能。 于是,在服務(wù)器和超級計(jì)算機(jī)市場上,英特爾的Xeon品牌開始逐漸發(fā)力,性能和當(dāng)時(shí)的RISC處理器相比已不落下風(fēng)甚至略有勝出。最終英特爾完成了逆襲的 過程,x86在服務(wù)器市場上大放光彩,甚至開始占據(jù)絕大部分市場份額,成就了CISC戰(zhàn)勝RISC的神話。
不過在移動(dòng)計(jì)算市場上,英特爾卻無法復(fù)制這樣的神話。高性能市場對功耗敏感度不高,性能是最重要的指標(biāo),英特爾可以憑借強(qiáng)大的研發(fā)能力來威脅對手,獲取勝 利。但移動(dòng)計(jì)算市場對功耗極為敏感, 英特爾幾次試圖進(jìn)入都無法獲得成功。ARM在這個(gè)領(lǐng)域遍地開花,從手機(jī)到平板電腦,ARM憑借自己超高的性能功耗比屢獲成功。
目前,x86處理器占據(jù)了超過90%的個(gè)人電腦市場,以ARM為代表的RISC產(chǎn)品則同樣占據(jù)了超過90%的移動(dòng)計(jì)算市場。兩強(qiáng)都想、都有希望進(jìn)入對方的領(lǐng)地。究竟誰能勝利,我們拭目以待。