CPU 的“廬民的勝利”
文|史中
CPU的"廬民的勝利"
文| 史中
(一)堤壩上的裂縫
人們總說要「活在當下」。
但好多煩惱恰恰來自人們太活在「當下」了。
就拿晶片「卡脖子」這件事來說,很多人的第一個反應是──中國脖子已經被卡了好久,都卡禿嚕皮了。
但看看以下時間點:
2022 年10 月,美國宣布對中國先進運算晶片的出口管制。距今1.5 年。
2020 年3 月,美國宣布禁止台積電為華為代工。距今4 年。
2018 年10 月,美國宣布對福建晉華實施制裁,這已是美國對華晶片壓制的起點,距今5.5 年。
這段時間,其實比很多人的感覺更短。也許只是痛苦才讓它顯得漫長,這就是「相對論」吧。 。 。
有人可能會想:"雖說開始沒多久,但不知道什麼時候才能擺脫制裁啊!大的還沒來,豈不是更讓人灼菊?"
要我說,擺脫在晶片上的困局,絕對不會難到「家祭無忘告乃翁」的程度!
「理解當下」的最好方法是「活進歷史」 。
你看,1971 年現代CPU 才誕生,創造CPU 的那一代也還世。而在50 多年的歷史中,CPU 江湖已經改朝換代不知幾何。
君不見,每一代霸主都期待建造雄偉的大壩,把技術之水圍住,可誰又成功了呢?
世界上第一個CPU,Intel 4004 的結構圖。世界上第一個CPU,Intel 4004 的結構圖。
正如中國古話所說:「千里之堤毀於蟻穴」。
小小的蟻穴都能潰壩,何況。 。 。這次鷹醬用政策建構的堤壩上可不只是蟻穴,甚至可以說有不少裂縫,創可貼都貼不過來。
說到這兒,可能有淺友要吐槽:"中哥你這不就是'遙遙領先黨'嗎?"
非也。情感畢竟虛幻,事實才能通往答案。
所以,今天的節目我帶大家來參觀CPU 歷史上的「潰壩事件」。大家看後,也許自有論斷。
我們就從大陸的另一端,煙雨濛濛的英國開始吧。
(二)小小的橡果&傲慢的巨頭
1978 年,那是一個春天。
那一年,Intel 公司搞出了一個晶片,叫做「 8086 」。
那一年,美國的鐵子們開始口耳相傳一個叫做「 Apple II 」的東西。一千多美元,就能擁有一台性能堪比「阿波羅登月計畫」、設計騷騷的、介面屌屌的電腦,感覺相當膨脹。
那一年,原本做計算器出身的兩人老哥庫里和豪瑟也看到了「微型計算機」的機會,於是合夥在英國建立了一家晶片公司。
公司名字非常狠,叫做:CPU,它的全名為「劍橋處理器公司」。
Chris Curry & Hermann Hauser
此時,賭狗們開始展現硬核實力了。
一家專門做賭博機(水果機)的公司找到CPU,問問他們能不能搞一個晶片,裡面能跑程序的那種,幫助賭狗們更愉快地耍(shu)錢。
庫裡他們砸吧嘴,賭博機。 。 。四捨五入也是微型計算機的一個分支。有錢不賺王八蛋。
就這樣,他們賺到了創業的第一桶金。
就是這種水果機
搞定之後一抬頭,這玩意也不難嘛。蘋果能生產個人電腦整機,我們為毛不行? ?
於是CPU 公司趕緊註冊了一個對標Apple 的子公司,給新公司取名不靠風水大師,就靠自己硬凹,標準就是:在通訊錄裡一定要TMD排在蘋果公司前面。
所以這家公司必須以A 開頭,第二個字母還要在p 之前。
想來想去,他們選定了" Acorn ",也就是橡果,看起來比蘋果命硬多了。
話說,蘋果當時已經很流行了,橡果怎麼阻擊呢?
沒錯,靠的就是:不是蘋果買不起,而是橡果更有性價比!
1980 年,橡果搞出了一台個人電腦,叫做原子( Atom )。
Atom 只是前面有鍵盤的盒子,顯示器就直接用家裡的電視。
它用的CPU 是MOS 公司生產的6502。
看到這你可能快齣戲了,我只聽過9527,沒聽過6502 啊!
嘿嘿,如果你沒聽過6502,那你絕對欠它一張票錢。因為大名鼎鼎的任天堂「紅白機」(FC),用的正是這顆晶片。
這是紅白機的拆機圖,紅圈裡就是6502
話說這顆晶片當時很流行,Apple II 用的也是它。那原子電腦怎麼競爭呢?
好辦,顯示卡簡配,擴充插槽減少,各種基礎功能都擠在一個電路板上。能省的地方全省了,再把價格直接定到蘋果的三分之一。你就說香不香吧?
這是Atom 裡面電路板的樣子。晶片排布是不是很密集?
風口來了,豬想不上天都難。
1980 年,英國BBC推出了一套教育節目,給大家科普一下電腦時代的浪潮要來了。結果這個節目太火了,觀眾紛紛來電,請BBC 推薦:我家娃想學電腦,該買啥?
BBC 一看,這麼好的機會,我自己攢一台電腦賣不就行了?
這個活兒最後轉包到了橡果電腦身上,廉價夠用的原子電腦把一排鍵帽換成紅色,就成了BBC Micro 電腦,賣得相當火。
BBC Micro
由此,橡果被英國人稱為「英國版蘋果」。
要我說,這路線哪是英國版蘋果,分明就是英國版小米。 。 。
這不,很快橡果就遇到了和小米一樣的問題,介面過於樸實,價格過於親民,沖不了高端。賣10 台的利潤還趕不上蘋果、 IBM一台的零頭。 。 。
傷害來自對比。當時蘋果剛推出Apple Lisa ,那叫一個美輪美奐,相較之下橡果的超級瑪莉風就不能看了。
賈伯斯和Apple Lisa
於是他們下定決心設計新機型。
搞來搞去,發現了問題的根源──紅白機的那顆6502 CPU 給不上力了。
橡果找了一圈,覺得Lisa 使用的摩托羅拉68000 CPU 是又貴又難用,只有Intel 的x86 系列還勉強能打。
不過橡果沒打算直接買,而是想在x86 CPU 的基礎架構上自己做進一步的客製化開發。
於是1983 年,橡果找到了intel,直接問:"你們能不能把CPU 的架構授權給我們用?"
Intel 說:"玩兒蛋去!"
其實。 。 。 Intel 並沒說這話,而是完全把橡果當作空氣。沉默是最大的輕視。
話說回來,塞翁失馬焉知非福。如果Intel 搭理了橡果,情況可能會更糟。
因為當時Intel 答應了許多日本公司,授權他們用自己的x86 架構生產晶片。
結果。 。 。
1984 年,美國通過了《半導體保護法》。然後1986 年,Intel 80386 晶片上市前夜,他們直接翻臉,對日本公司"斷供",導致日本公司集體啞火,無法研製新處理器,只能購買Intel 的。
看吧,過河拆橋,築大壩,卡脖子,那都是傳統藝能了。
總之,橡果和Intel 的樑子算是結下了。但別著急,未來Intel 有足夠的時間為當初的傲慢買單。
(三)恐龍和老鼠
橡果只好自立了。
不過此時,他們設計過CPU 的最高水準是──賭博機晶片。
參與設計那款晶片的兩位工程師Roger Wilson 和Steve Furber 心裡沒底,特意跑去6502 的娘家,美國MOS 公司參觀了一下,回來時他們臉上掛滿了自信的笑容。
Roger Wilson(左)與Steve Furber(右)
MOS 公司的CPU 部門,只有破爛辦公室一間,攻城獅幾隻。 。 。啥高級設備也沒有。
這條件,我們也有啊!
橡果決定像素級對標MOS:找了一間穀倉,塞進去幾個工程師開始了新CPU 的研發。
老師傅們發現,要設計CPU,自己先搞清楚一個哲學問題:
恐龍和老鼠,誰更有生命力?
Intel 晶片的設計概念就是"恐龍",它的基因裡刻著各種複雜指令,像恐龍一樣能打。但設計、製造成本更高,跑起來的能耗也高一些。
6502 晶片的設計概念是"老鼠",它的基因裡刪掉了很多指令,只留下了比較簡單的。正如老鼠,單位戰鬥力比較低,但設計、生產成本也低啊!
要這麼說的話,結論不是明擺著麼?小行星撞地球後,恐龍都變成石油了,「老鼠們」卻進化成了各種高級動物。
選老鼠!
老師傅們博覽當時的論文,找到了心儀的「老鼠原型」:來自柏克萊大學的一個叫帕特森的老師主導的論文——精簡指令集,也叫RISC (Reduced instruction set computer ) 。
於是,他們決定開發一款橡果RISC電腦晶片:Acorn RISC Machine,簡稱ARM 。
沒錯,剛才你看到的這段往事,正是如今大名鼎鼎的ARM 的誕生歷史。
第一款ARM 晶片
話說ARM 晶片的研發非常成功。而你懂的,如果劇情一直這麼順利,大事兒就要來了。
從1983 到1987,研發新的晶片花了四年。
這四年裡,「氣候」發生了翻天覆地的變化——趁橡果埋頭自研的功夫,冒出了一堆「魅藍」之類的競爭對手,他們複製了低價路線,而且更加價格實惠、感動人心。 。 。
禍不單行,橡果電腦不僅價格優勢蕩然無存,還遭遇了供應鏈問題,有人買的時候供不上貨,等供上貨之後,人家早買了競爭對手的產品了。
1985 年,橡果的倉庫裡積壓了25 萬台電腦,股價狂跌到了23便士。
有趣的是,這一年,同樣走高端路線的蘋果也遭遇了滑鐵盧,差點兒破產,賈伯斯都給董事會開除了。曾經風光無兩的哥倆,轉眼成了難兄難弟。
後來,橡果一蹶不振,蘋果慢慢緩過來。
當時蘋果覺得,既然電腦消費者不喜歡了,那來個「商務通」你們愛不愛?
於是1990 年,蘋果準備攢個PDA,名叫牛頓(Newton)。這玩意個子小,電池也小,帶不起來大功耗的CPU。
蘋果找來找去,發現只有ARM CPU 比較符合要求,所以找到奄奄一息的橡果公司組了合資公司,也就是ARM 公司。
這就是Newton,拿著它的是約翰‧斯卡利,趕走賈伯斯的那位老哥。
當然,「牛頓」最後沒賣出去多少,但ARM 作為獨苗,好歹是活下來了。
從此,江湖再無橡果,只剩ARM。
話說那一撥IT 產業大洗牌,微軟佔了大便宜,它用Windows 綁定了Intel,也把後者送進了鼎盛時期。
隨後,CPU 世界像極了侏羅紀時代:
Intel 這隻恐龍制霸世界,而ARM 只能躲在恐龍腳下抱頭鼠竄,靠著支援一些小型或手持裝置苟著。
ARM 的邊緣地位,決定了它搞不了Intel 那種壟斷,只能選擇一種「開放」的生存方式——向各個CPU 廠商出賣架構的授權。
每一家都收一點兒錢,爭取鋪得廣一些,東方不亮西方亮嘛!
例如,當時德州儀器買了ARM 授權,生產出晶片賣給諾基亞做手機;
還有三星,也買了ARM 晶片放進自家生產的DVD 裡。
隱忍終有出頭日。
2007 年,回歸蘋果的賈伯斯從口袋掏出iPhone ,ARM 憑藉智慧型手機時代重返大眾視野;
2008 年, Google第一台Android 手機G1 發布,同樣使用了高通基於ARM 的處理器;
2011 年, ARM 推出了伺服器晶片架構,正式進軍Intel 的老巢-高效能運算;
2020 年,蘋果倒戈,把Mac 電腦的晶片從Intel 全部換成基於ARM 的M 晶片。
至此,Intel 在所有戰線上腹背受敵。
現今Intel 架構能幹的活兒,ARM 架構全能幹,而且眼嗆著乾得更好。昔日在恐龍腳下躲藏的老鼠如今已經有製霸世界的王者氣息。
只是很多人不會記得,ARM 的第一個字母A,仍舊背負著昔日橡果Acorn 的舊夢與榮光;
很多人也沒有嗅到,ARM 的第二個字母R,藏著下一個時代的尖銳預言。
不過在這裡,我們先回答那個問題:ARM 的王子復仇,Intel 的潰壩,這其中到底有多少運氣,又有多少必然呢?
換句話說,如果把歷史倒轉,ARM 還有多大勝算逼退Intel 呢?
我們不如把CPU 的蓋子撬開,讓裡面的「葫蘆娃」告訴我們答案。
(四)「指令集」——葫蘆娃的巴別塔
打個比方。 CPU 的蓋子裡,密密麻麻排著好多邏輯電路,他們就像不知疲倦的葫蘆娃。
他們的性格比較軸:
1.每種葫蘆娃只會一種技能,不能變通。
2、但只要交給他任務,他就使命必達,一定能完成。
根據每一款CPU 的用途不同,包含的葫蘆娃種類也不同。
但是,整體上這些葫蘆娃可以分為「胖娃」和「瘦娃」兩種。
所謂胖娃,他們的技能是「組合拳」。
例如:A 胖娃每次接到命令,就炒一盤魚香肉絲;B 胖娃每次接到命令,就炒一盤宮保雞丁。
所謂瘦娃,他們的技能是「一拳超人」。
例如:A 瘦娃每次接到命令,就切一刀,B 瘦娃每次接到命令,就翻一下鏟子。
Intel CPU 裡,有瘦娃也有胖娃,所以叫做「複雜指令集」- CISC 。
ARM CPU 裡,只有瘦娃,沒有胖娃,所以叫做「精簡指令集」-RISC。
有人可能會疑惑:
剛才不是說Intel 能幹的事兒ARM 全能幹嗎? ARM 沒有胖娃怎麼炒「魚香肉絲」?
很簡單,一個胖娃做的事情,總是能拆成N 個瘦娃來做。
這些瘦娃切墩,那些瘦娃顛勺,最後炒出來還是個「魚香肉絲」。 (我覺得這一點和馮諾依曼的「元胞自動機」所暗示的生物學原理有一種隱密連結)
瘦娃也能炒魚香肉絲
你可能看出來了,使用精簡指令集,雖然葫蘆娃幹起活來比較直白,但是寫程序的人類就費勁多了,還得把組合拳拆解成左手右手慢動作,工作量大大的。
那,要「精簡指令集」何用?
在「葫蘆娃」的世界裡,有一個BUG,那就是--「食材」沒地方放。
咱們假設,切一下肉需要1 秒,但從案板上拿起一塊肉就需要3 秒。
這還沒完,案板才有多大啊,只能擺得下幾樣菜。如果要切的菜案板上沒有,就得去冰箱裡取,這一來一回就需要15 秒;
這還沒完,有些菜冰箱裡也沒存,得下樓去小賣部買,這麼跑來跑去,少說也得5 分鐘;
這還沒完,有些菜小賣部也沒有,得去遠處的農夫市集買,一來一回就得1 天。
最誇張的是,我真的沒有在誇張:
其實這些"食材",就是CPU 執行計算時所需要的資料。
案板就是CPU 的L1 緩存,從這裡取一次資料是執行一次計算耗時的3 倍;
冰箱就是L2 緩存,取數據是計算耗時的15 倍;
小賣部就是計算機的內存,存取時間是計算耗時的300 倍;
而農夫市場,就是電腦的SSD硬碟,存取是運算速度的上萬倍。
哎,歸根究底還是人類技術太糙,搞出的儲存架構比運算架構運轉慢得多,而且幾十年過去了,二者差距不僅沒有縮小,還越拉越大。
也就是說,CPU 在運行的時候,大部分時間不是在"做飯",而是在"等人買菜"。
有這個BUG 存在,CISC(複雜指令集)的麻煩就來了。
在CISC 架構下,胖葫蘆娃只能按部就班幹活兒,先看到需要蘿蔔就讓人去冰箱裡拿蘿蔔,切完一看下一步需要木耳而冰箱裡沒有,才差人去超市買。
這麼一來,該耽誤的時間全耽誤了,不該耽誤的時間也全耽誤了↓↓↓
CISC 工作流程
而RISC(精簡指令集)架構下,因為瘦葫蘆娃是分工的,每個葫蘆娃只做一個動作,所以他們都知道自己需要什麼原料,這樣他們每個人都能配個案板+冰箱,提前備好食材。
就算臨時要去買食材,也能儘早差人去買,「不該耽誤的時間」就能不耽誤了↓↓↓
RISC 工作流程(這是一個示意,沒考慮步驟之間的依賴關係)
CISC 的計算過程更像壽司之神:「老師傅一人手搓」;
RISC 的運算過程更像富士康:「流水線萬人協作」!
結論來了:ARM 的勝利,本質上是工業大生產的勝利,是科技的勝利。就算重來一百次,ARM 都大機率能戰勝Intel。
指令集就像是CPU 的語言。
語言是雙刃劍,它讓同種同族之間的協作變得順暢,也在不同種族之間建起高牆。
如果一個程式是為A 指令集的晶片開發的,即使是B 晶片的指令集就算只有微小的差異,程式運作過程中都可能遇到「缺娃」的狀態,導致崩潰。
所以,操著不同語言的晶片,沒辦法互相理解。
這也是晶片界「巴別塔」的故事。
正因為有"巴別塔",晶片之間的大壩才能建立。
當年Intel 豎起高牆,不讓ARM 使用自己的指令集;
而後來ARM 同樣豎起高牆,不讓別人「免費」使用自己的指令集。
只不過ARM 比較道地。它的牆矮了很多:
為了在Intel 這隻恐龍的腳下生存, ARM 架構"給錢就賣",要價確實不貴。
當然這也造就了ARM 市場佔有率接近壟斷,但利潤常年不高,還被賣來賣去的可憐兮兮形象。 。 。
反過來,對於全球晶片製造商來說,這就非常划算了,畢竟自己研發晶片架構比購買授權要花費更多的人力物力。
於是買賣雙方都滿意,一切相安無事。
Intel 的牆高,ARM 的牆矮
直到歷史的大河來了個180度大轉彎。
美國開始了騷操作,放出十八道金牌,不允許ARM 向中國出售它的先進架構設計。昔日的勇士,也(被逼)變成了惡龍。
當時已經有許多中國晶片廠商正在基於ARM 架構研發晶片,最著名的當然就是華為的海思半導體。
這麼一來,「指令集」從本來給點錢就解決的小事兒,成了用錢解決不了的大事兒。
那就只剩下華山一條路了:讓歷史再輪迴一遍,用ARM 幹掉Intel 的姿勢,再把ARM 幹掉。
這個戰術翻譯過來就是:用一種新的指令集來取代ARM,而且,這種指令集的圍牆要比ARM 還低,最好低到──沒有圍牆,免費使用。
啊。 。 。這樣的指令集存在嗎?
太存在了。
(五)指令集想要自由
話分兩頭,咱們現在就撥轉地球,回到那個熱血奔流的黃金時代的美國。
大衛·帕特森來自一個極為普通美國家庭,1960 年代,他成了全家第一個考上大學的人,可謂全村的希望。
所以他的理想樸實無華——財務自由。
為此,他報了加州大學洛杉磯分校的數學系,準備將來成為精算師,賺他個小目標先。
但他在大學裡湊學分的時候,偶然上了一學期電腦課,然後熱淚盈眶地頓悟:
財務自由算什麼,搞機才是主要的!
他的人生走上了不歸路。
David Patterson
1979 年,帕特森已經是加州大學柏克萊分校的電腦教授。他被外派到DEC 公司,改進他們VAX 電腦的VAX 處理器。
又出現了新詞,啥是VAX 電腦?
這麼說吧,當時在個人電腦領域,不是蘋果電腦風生水起嘛,在商用電腦領域,那VAX 可謂呼風喚雨。
我們在另一篇文章《時代裂隙中的刺客》裡,有提到VAX 電腦的背景,大家可以去那裡了解。
VAX 11/780 計算機(1977) VAX 11/780 計算機(1977)
總之,帕特森到那兒一上手,直接驚呆。
VAX 複雜指令集的"療效",實際上遠沒有廣告裡說的那麼好。
原本「胖娃」(複雜指令)的出現就是要降低晶片使用的複雜性,可是「胖娃」太多了,要想用好它們,還得搞個「爺爺」來管理他們,也就是額外編寫一組調度程序,叫做「微代碼」。
派特森吐槽:為了「省事兒」又做好多了「費事兒」的事兒,你這不是鬧麼?
這麼說的話,反正都要寫一堆程式碼調度,那我乾脆用最簡單的「瘦娃」來組成CPU 的指令,會不會整體上更省事兒呢?
回去之後,他四處拉贊助,竟然搞來了美國國防部高級研究計劃局,也就是大名鼎鼎的DARPA 的經費,投入精簡指令集的研究。
1981 年,第一個研究性質的RISC 晶片被做出來了。
RISC 晶片僅用了44420 個晶體管,32條指令,理論運行速度就超過了晶體管數量多一倍的VAX。 (當然實際速度沒這麼快,主要原因是製造流程比較粗糙。)
雖然這晶片主要供研究,沒裝在任何商用電腦裡,但它無疑做了一道證明題:
RISC 確實是可以比CSIC 更快的。
第一代RISC CPU 的電晶體電路圖。
這裡故事就接上了,舞台追光轉到了大西洋彼岸,橡果看到了RISC 論文,迅速地把它商業化,做出了ARM。
但在追光之外的加州大學,RISC 的故事可沒有結束。
我們把進度條直接往後拖,人影如蟻進退,漫長的故事裡,終於有第一個中國人出場了。
譚章熹是北京人,清華畢業後到加州大學當博士,成為了帕特森的關門弟子。
譚章熹和帕特森
2009 年時,他負責帶著同學研究第五代RISC,也就是RISC-V 。
之所以要搞RISC-V,是因為當時他們要做一個平行運算的研究,需要一款特殊的CPU,市面上實在沒有現成的,只好自己做。
這就好像我想做個煎餅果子,但是買不到油條,我只好自己炸一根。 。 。
你看,RISC-V 最開始真沒啥野心,就是個「油條」。
譚章熹要畢業了,直接把做了一半的RISC 計畫倒給了實驗室的師弟安德魯‧沃特曼和李允燮(他是韓國人)。
這哥倆一看,搓起了小手手,既然市面上流行的CPU 都在吃"壟斷飯",那不如來點兒狠的,跟時任實驗室的老師阿薩諾維奇一商量:
直接把RISC-V 指令集免費開源出去,誰愛用誰用,腫麼樣?
由左至右:安德魯沃特曼、李允燮、阿薩諾維奇。
你看到了沒,在那一刻,RISC-V 有意無意地復刻了ARM 對Intel 的方法,就是我們剛才提到的「把圍牆變矮戰術」。
他們把這招做絕了,直接拆了圍牆──都免費了,你還要啥腳踏車?
說到這兒,我突然想起了當年周鴻禕用免費殺毒幹翻一票收費防毒軟體的故事。 「免費」這兩個字的殺傷力有多大,有時連當事人都無法預料。 。 。
在2014 年,美國積體電路高峰會上一個不起眼的角落,上演了科技史上經典的一幕。
RISC-V 的主創班底列隊整齊,擺了幾張紙板,笑吟吟地給每個路人發他們的徽章,小小的徽章上卻寫著狂妄的口號:
指令集想要自由! (Instruction sets want to be free!)
是啊,從1971 年「指令集」的概念伴隨著第一顆CPU(Intel 4004)的出現,到2014 年,已經過了43 年。
漫長的浮沉,城頭雖然變幻大王旗,可指令集這個「天子」一直被關在監牢裡,以此要挾向每一個「諸侯」聽任調遣。
指令集想要自由。
這是當時的徽章
多說一句,RISC-V 的自由,不是那種「既不要錢也不管你」的自由,而是那種「不要錢還給你服務」的自由。
例如,它的指令集是像「樂高」一樣的。
不同的指令被打包在不同的「子指令集」中:
有能計算加減乘除的「整數計算」;
有能計算小數的「浮點計算」;
也有能計算圖形的「向量計算」;
也有能保證即使出現錯誤程式還能繼續執行的「原子化計算」。
每個「子指令集」就像一塊積木。
你可以用幾塊積木,也可以用幾十塊積木,豐儉由人。
你想要的CPU 如果用不到某些指令,直接從晶片設計階段就能"尅掉了",保證晶片出爐後能以最佳的效率燃燒,一個葫蘆娃都不浪費。
而且,這些積木還是不斷改進樣式的。例如,某種AI 演算法發展迅速,它所使用的新指令也會被社群為「添油加醋」進去。
你看,這正是開源的精神所在。
如此說來,如果把ARM 比作"老鼠",那麼RISC-V 就更像"昆蟲",它們細小,奇形怪狀,種類繁多,行動迅速,無孔不入。
原本的無心之舉,卻踩中了電門,全世界的程式設計師蜂擁而至。 RISC-V 團隊這才開始認真起來。
2015 年,他們在美國成立了"RISC-V 基金會",正經八百地推廣這個"自由指令集"。
從那一刻起,歷史陡然加速。
雖然此時譚章熹已經離開RISC-V 隊伍去創業了,但我之所以特別強調他的貢獻,是想告訴淺友們:這個有可能解放全世界指令集的架構,在一開始,就是有中國人的硬核智慧推動的。
從各種角度看,我們在使用它的過程中,不僅不用有「白吃白拿」的愧疚,反而可以」適度驕傲「。
說到這兒,我們終於能把地球儀轉回來,看看我們腳下的這片土地,中國人綿延幾十年的」CPU 焦慮「。
(六)「CPU 焦慮」與兩道裂縫
你看這張圖,右邊是帕特森,左邊這位老哥是約翰‧軒尼詩。
1980 年他倆在學術會議上見面,馬上私定終身成了一輩子的好基友。
在當時的學界,翻遍各位大佬,只有他倆力挺精簡指令集理念,總在學術會議上舌戰群儒。
不過他倆不在一個學校,常年兩地分居,沒辦法合作同一個計畫。
1981 年,軒尼詩在自己的史丹佛大學獨立創建了一個獨立的精簡指令集MIPS(Microprocessor without Interlocked Pipelined Stages) 。
MIPS 可能有的淺友不熟悉,但我告訴你,1994 年索尼推出的PlayStation 用的正是MIPS 的晶片。
好多美好的童年記憶可都是MIPS 一幀給你算出來的呀。是不是又欠一張票錢?
PlayStation
而且MIPS 和我們中國的緣分不止於此。
在2001 年時,有一群人把MIPS 架構當作「援軍」引進中國,他們就是中科背景的龍芯。
當時,龍芯肩負的使命是四個字:自主可控。
CPU 架構一旦確定,極難轉向,所以龍芯創業時也面臨當年橡果一樣的煩惱,要非常謹慎地選擇指令集。
選誰呢?
以Intel 的尿性,絕對不會給中國人自主可控的架構授權。它歷史上就沒給過,而且還過河拆橋實力坑過日本,不足與謀;
當時ARM 還前途未卜,蝸居在恐龍腳下的"功能機世界",沒有王者之氣;
只有MIPS 最為優美簡潔,人氣躥升也很快,四捨五入最符合中科院的要求。
你問為啥不用RISC 指令集?因為那時候RISC 早期版本都在學校的實驗室裡呢,沒有開放給人用。 。 。
這麼說的話,龍芯不是來晚了,而是來早了。
龍芯的首款晶片:龍芯一號
但命運不是電影,沒有人有主角光環,沒人關心你的早晚。
由於先前提到的"葫蘆娃的巴別塔問題",MIPS 和x86 在作業系統和軟體生態上都無法適配,獨立發展生態困難重重。
他們所做的CPU 並未廣泛商用,尤其沒有打入民用市場,所以完全沒有撼動Intel 的地位。
而且不久後,連MIPS 自己也開始式微。
「CPU 焦慮」仍在那裡,不同的人開始紛紛求索,幾乎試遍了所有道路。
如大家所知道的,這些團隊大多有大學、研究院等學術背景。例如海光和兆芯輾轉拿到了x86 架構的授權,嘗試生產相容x86 的晶片;例如飛騰,後來拿到了ARM 的授權,生產ARM 晶片。
雖然這些CPU 都存在缺點、妥協和短板,但「有」和「沒有」的區別是巨大的。
很大程度上,它們緩解了中國人的「CPU 焦慮」;而他們所培養出來的老師傅,也成為了日後中國高性能運算晶片設計的中堅力量。
就在大家埋頭探索,淚眼婆娑苦悶至極時, RISC-V 所代表的「自由指令集」思潮開始在中國萌動。
這種震撼,不亞於「十月革命的一聲炮響」。
2014 年,伴隨那次廣場上「指令集想要自由」的呼喊,RISC-V 研究團隊還放出了同名論文,那就是如今被奉為經典的《Instruction Sets Should Be Free: The Case For RISC-V 》(《指令集應該自由:以RISC-V 為例》)
加州大學的留學生錢學海馬上決定把大洋彼岸的吶喊介紹給中國人。
帕特森很重視,特地讓譚章熹抽出時間來把關,所以這篇文章的中文翻譯品質極高。
錢學海把文章發給了中科院計算所的研究員包雲崗。包雲崗推薦到《中國電腦學會通訊》,在2015年2月發表。
當時,這篇文章沒有引起什麼轟動,但包雲崗的內心卻「轟動」了。他決心把生命奉獻給這個自由指令集,成為了中國RISC-V 佈道的先驅。
在他和許多中科院研究員的奔走呼號下,中國CPU 的核心玩家都關注了RISC-V 的機會。
現在回望,這些研究員就是「堤壩上的一條裂縫」 。
與其說歷史選擇了他們,不如說他們選擇了歷史。中國人的CPU 焦慮和RISC-V 的開源優勢客觀地擺在這裡,強大的壓強必然會讓它滲透到中國。
他們只是在正確的時間站在了正確的位置。
包雲崗
2019年,帕特森來到上海開會,跟大家介紹RISC-V。
可很多人一聽他的基金會總部在美國,馬上皺眉:"謝謝,不敢用,算了吧。"
帕特森說:"行,你們等著。"
他可不是要報復誰,而是回家後馬上把RISC-V 基金會的總部遷出美國,移到瑞士。
而且,就在ARM 被禁運一個月後,他「逆勢」宣布和清華-伯克利深圳學院(TBSI)合作,建立了一個RISC-V 國際開源實驗室,也就是「RIOS 圖靈實驗室」。
在刺骨寒風中,中國對於RISC-V 的技術使用和學術交流暢通無阻,如爝火不熄。
你看,帕特森雖然是美國人,但他沒有不加思考就去「代表」美國的利益。身為科學家,他思考的是用什麼方式可以推動全人類的進步。
帕特森和RISC-V 核心團隊,成為了堤壩上的「又一個裂縫」 。
同樣,與其說歷史選擇了帕特森,不如說他選擇了歷史。
「自由指令集」的思潮從2010年誕生,如果它沒有順應現實世界的利益博弈,又怎能頑強地長大?怎會在無數「CPU Guy」的心裡生根發芽?
正如和一位中國創業家交談時,帕特森說的那樣:
只要RISC-V 生態能做起來,我們不在乎是誰做成這件事。
在柏克萊大學,專門設立了一個紀念RISC 發明的銅牌。
(七)舊時代的黃昏和"趕夜路的人"
當一個時代的基本幻想枯竭後,這個時代就被視為結束了。
2018,我願稱之為「舊世界的最後一年」。
那一年是樂觀的。
有大批學者把「逆全球化」視為短期陣痛,忍忍就過去了,接著奏樂接著舞。
那一年是吵雜的。
許多投資人像甩撲克牌一樣把鈔票甩在AI、網路安全、企業數位化等各個賽道;
網路大廠也判斷雲端運算、AI、大數據帶來的技術紅利會像一劑猛藥,把中國經濟頂上新階梯。於是他們冒險殺進傳統產業,以至於選擇性地忽略成本控制。
歷史證明,沒有誰的野心能超過時代的承載,大多努力並不會被命運獎賞。
然而,有少數例外。
2018 年,阿里巴巴宣布進軍IoT 賽道,同時收購中天微,重組為"平頭哥半導體",開始RISC-V 架構晶片的研發。
第二年,他們拿出了一款性能非常高的,基於RISC-V 的晶片設計,玄鐵C910。
平頭哥發表玄鐵C910
現在回望,這是RISC-V 在中國的第一聲驚雷。
之後不久,世界隱隱的疼痛突然變成了公開的撕裂。
人們腦海中被陡然刻下鋼印:
中國人要想造自己的晶片, 「自由指令集」就算不是唯一的出路,也是最有希望的一條出路。
你可以說是"先見之明",也可以說是"歪打正著"。反正這時,在RISC-V 上先走一步的平頭哥手上已經有東西了。
不過當時RISC-V 的CPU 主要用在IoT 設備裡,人們普遍不覺得它能放在「高效能運算」場景(也就是通常所說的電腦或伺服器)裡。
舉幾個,玄鐵的用戶們,有人做工業控制晶片,有人做汽車控制器,有人做5G基帶,有人做儲存控制器,有人做網路安全設備。
全志科技基於玄鐵架構做的CPU D1 的開發板-哪吒
一般人基本上不想花精力去了解這些晶片。它們沒有華麗的故事,甚至長得灰頭土臉。
但這些晶片的總數極大,遍布賽博世界的每個角落。日復一日,如昆蟲般透過簡單的工作換取簡單的生存。
這些晶片本來用的指令集五花八門,也沒人特別在意。
但美國禁令推出後,大家腦袋裡的那根弦都被撥動了。許多廠商主動去詢問,能不能把下一代產品裡的晶片替換為RISC-V 架構,不僅降低成本,也及早規避風險。
給你看個數據感受下:
到2021 年底時,全球RISC-V 指令集的晶片累積賣出了100億片。要知道,ARM 從0 到100 億花了15 年,RISC-V 只花了7 年。
而在100 億片中,基於玄鐵的就有25億顆,佔了四分之一。
但是,如果蟲子一直是蟲子,即便數量再多,也一直會在生態的底部,和「性感」沒一毛錢關係。
要打破"CPU 焦慮",RISC-V 終究要去承擔更重的"高效能運算"任務!
難度在哪呢?兩個字:生態。
大家普遍認同,如果RISC-V 晶片想進入高階生態,就得摸著ARM 過河:先進手機,再進伺服器,再進桌上型電腦(PC)。
這條路想走通,必須得到這些平台的主流作業系統適配。
所以,第一步要突破的就是:讓原本只跟ARM 玩兒的Android也能支援RISC-V。
之前我和平頭哥的同事聊天,他們提到一段「單戀」往事:
2020 年,為了推動Android 相容RISC-V,團隊追著Google屁股後面大獻殷勤,但對方表現冷淡。
谷歌高冷也是有原因的。畢竟,有姐妹受過「情傷」。
在90 年代,微軟看MIPS 勢頭正勁,於是主動花很大力氣讓Windows 適配了MIPS,然後,就沒有然後了。
谷歌可不想再當冤種。 。 。
有趣的是,時代不同了,Android 和Windows 也不一樣—— Android 的程式碼本身就是開源的。
也就是說,理論上平頭哥的老師傅不需要本家許可,就可以根據它的代碼寫出」野生「的適配程序。
正所謂,我喜歡你,跟你有什麼關係?
正所謂,山不過來,我就過去!
那兩年,無數頂尖程式設計師用巨大的熱情和心力,寫出累計十多萬行的程式碼補丁,就這樣源源不斷地發佈出來,不問收穫,無問西東。
這是Android 10 跑在玄鐵晶片上。
在一個不被官方承認的地方下這麼大的功夫是一種賭博。像極了癡情男子每天都送女孩一車花,連吃瓜群眾都覺得他腦袋秀逗。
但這樣的」癡情「,也只是因為三個字──不甘心!
大量的「野生補丁」持續放出來,Google終於看到了社群的誠意。
況且美國持續加碼晶片管控,RISC-V 熱度空前,谷歌心裡也打鼓,如果再端著,後面別高攀不起,決定緊急投入重兵。
2022 年12 月,在Android 12 上開始原生適配RISC-V。
歷史再次踩下了加速踏板,系統之王「Linux」開始跟進。
Debian、 Fedora 這種老牌社群的Linux 系統開始支援RISC-V,中國的開源雲端上作業系統openEuler 和OpenAnolis 也陸續支援了RISC-V,Ubuntu 和openKylin 這樣傾向於個人場景的Linux 版本也支援了RISC- V。
2021 年,平頭哥宣布把「玄鐵架構」主要的CPU 家族開源,所有人都可以做一個和玄鐵C910 一樣的CPU,而不用給平頭哥付費。
同樣是2021 年,RISC-V 最早的佈道者包雲崗也宣布,帶領中科院大學的團隊推出開源的RISC-V 處理器架構"香山",同樣可以免費使用。
同時,華為、騰訊、小米、百度等等大廠也分別宣布支持RISC-V 生態,一眾新創公司也All in 在RISC-V 生態上。
2023 年8 月,中國電子工業標準化技術協會牽頭組建了"RISC-V 工委會",把大大小小各路玩家都集結起來,開始嚴肅地制定產業標準、保護知識產權保護,培養人才。
雖然RISC-V 在中國的生態結構剛剛成型,但是「RISC-V 大有希望」的信念卻在人們心中越烙越深。
人們沒時間等待瓜熟蒂落,必須盡快嘗試向高效能運算的兩座高峰——伺服器和桌上型電腦——發動衝鋒。
(八)庶民的勝利
時間終於來到了2024,為你介紹一個新朋友:如意Book 。
看上去,這是一本平平無奇的筆記本,但顯然不是,它是一個「透明筆記本」 。
它的晶片是平頭哥的玄鐵C910,作業系統是華為的OpenEuler,最上面能跑LibreOffice 這種開源軟體。
也就是說,從下到上,關鍵部位的程式碼都是可見的,這樣一台完整開源的電腦,在人類科技史上是首次出現。
如意BOOK 是中科院軟體所和達摩院合作造出來的,它可不僅僅是能點亮這麼簡單,它還配備了GPU、VPU、TEE 可信任運算模組等等,也就是說,現在頂尖電腦的能力它都俱全。
這台電腦當然。 。 。不會有什麼銷量,但它的意義不在於銷量。
它標誌著開源軟硬體的「全鏈路跑通」 。
有了這個"連結",七國八制的工具軟體、作業系統,還有千萬程式設計師就能附著在上面,尋找自己的位置,成為RISC-V 指令集自由路上的一塊磚石。
2024 年,平頭哥順勢推動成立了一個「無劍聯盟」。
看看聯盟的首批參加者,會發現不少玄機。
Arteris 做的是SoC 晶片裡的資料互聯技術;
Imagination 做的是GPU 設計;
新思科技是頂尖的晶片設計模擬(EDA)軟體開發商;
芯昇科技是中國移動旗下的物聯網晶片生產商;
電信研究院是做通訊技術和資料中心的。
注意,這裡面Arteris 和新思科技提供的都是晶片工業中有可能「卡脖子」的關鍵工具技術!
他們的全力支持,不僅意味著設計出一個RISC-V 的CPU 的成本和時間將大幅下降,也暗示著RISC-V 晶片設計全鏈路目前是完全通暢的。
(這條路會不會一直通暢,會以什麼方式"不通暢",有什麼辦法應對,那是未來的問題,但重要的是,現在是完全通暢的!)
新思科技的EDA 介面
所以,在這個時間點上,已經有許多先行者決定趁著晨光熹微趕緊出發。
例如比特大陸詹克團創辦的算能科技,位元組跳動前RISC 負責人盧山創辦的藍芯算力。
甚至還有個有趣的騷操作,平頭哥把自己玄鐵晶片的負責人孟建熠也給「推」了出去,獨立創辦了知合計算。
這些大佬的目標基本上相同:
把RISC-V 架構用在伺服器裡的高效能CPU 上,試著有朝一日對Intel 和ARM 進行替代。
歷史再次快進,有些公司的晶片已經開始交付。
例如算能科技,它的RISC-V 伺服器CPU SG2042 已經獲得了第一批客戶,這些客戶來自營運商和大學。
公開資訊顯示,山東大學已採購了1024 片算能CPU 用於模擬計算。
雖然人們都知道RISC-V 架構的伺服器CPU早晚會出現,但當這顆晶片真實呈現在眼前時,仍讓人潮澎湃。
它就像烏雲縫隙裡灑下的一道光。
SG2042
在無數RISC-V CPU 被製造出來的同時,還有一個更閃耀的機會出現,那就是— RISC-V 可以做出「AI 晶片」 。
你可能會說:AI 晶片和CPU 的架構不同啊!為啥CPU 的指令集能做AI 晶片?
別忘了,RISC-V 指令集是"樂高積木",它可以根據需要刪減指令集,如果要做AI 晶片,只要把指令集限制在AI 晶片所需的範圍內就好了!
達摩院RISC-V 團隊的技術專家李春強說,他們這群老師傅們都認為RISC-V 就是為AI 而生的架構,正在編寫一個名叫「Matrix」的指令集模組,專門用來做RISC -V 的AI 計算。
你可能還不太能想像這是什麼晶片,我給你舉兩個例子吧:
1.現在很多廠商都想把大模型裝進手機裡,可是運轉一個大模型要耗費很大的算力。
它們需要一個非常有效率的專用AI 晶片來跑這個模型——RISC-V 就是絕佳的候選人。
2.在汽車的自動駕駛系統裡,需要AI 晶片來分析路況,做出駕駛決策。
現在這些晶片的主要玩家是英偉達和高通,但RISC-V 同樣可以勝任,而且可能更適合。
這並非空談,已經有先驅把這種AI 晶片做出來了:
華米推出的「黃山2S」晶片,就是放在手錶裡的AI 晶片,可以加速UI 動效,也可以精準辨識「心房顫動」之類的身體指標異常;
嘉楠科技推出的「K230」晶片,可以放在機器人體內,作為它的「視神經」。
「黃山2S」晶片發布
這昭示了某種兇猛的未來。
2017 年,帕特森和軒尼詩因為對RISC 和電腦體系架構的貢獻而獲得圖靈獎,共同成為電腦史上不可磨滅的紀念碑。
在他們的得獎演講上,兩位年逾古稀的電腦老砲兒大聲疾呼:
未來的戰場根本不在"晶片",而在"計算" 。
他們的意思是:
1.現有的晶片、編譯器、程式語言和軟體組成的"計算框架"是在長期發展中演化出來的結果,各層雖然能協作,但最多算"湊合過日子",主要表現就是——計算效率極低。
2.摩爾定律已經失效,在現有框架下,做出再好的RISC-V 晶片也只能把最終運算效率提升一點;
3.如果能做出從「晶片架構」到「編譯器」到「程式語言」到「程式規範」的統一垂直架構,則可以把現有運算效率提升數萬倍。
而想像中的"新計算",只有RISC-V 這種"自由指令集"才能支援。
如此說來,你我正在見證的,也許不是指令集的"改朝換代+1",而是人類歷史中一場前所未見的"計算黎明"。
回到我們的主題。
如果只聚焦歷史局部,你會發現諸多「反差」:
帕特森和軒尼詩兩位大佬身為美國科學院院士,卻在不同時期幫助中國走過晶片進步的關鍵一跳;
RISC 架構最初研究,靠的是美國國防部的預算,但它如今卻成為了中國突破技術封鎖的有力武器。
為什麼?
我再次提醒你:不要「活在當下」。
順歷史長河漂流下來,結論再明顯不過:科技的發展從來與國界無關。
如果有人非要在國境線上用精心建立起來的堤壩來阻擋技術的流動,那麼可以想見,它的崩潰可能在一瞬間。
恐龍轟然倒下,身體漸漸冷去;但整個地球的生命,正在蓬勃。
指令集的自由,正如庶民的勝利。
參考文獻:
《Instruction Sets Should Be Free: The Case For RISC-V》
《指令集應該自由:以RISC-V 為例》
https://people.eecs.berkeley.edu/~krste/papers/EECS-2014-146.pdf
John Hennessy 與 David Patterson 2017 ACM AM Turing Award Lecture
約翰‧軒尼詩與大衛‧帕特森2017 年圖靈獎演講
https://www.youtube.com/watch?v=3LVeEjsn8Ts
再自我介紹一下吧。我叫史中,是個傾心故事的科技記者。我的日常是和各路大神聊天,歡迎和我做朋友。
8國元首給賴清德「捧場」?吳鑷燮吐露內情,島上怕重現諾魯事件
烏克蘭飛彈耗盡,查索夫亞爾地區遭地毯式襲擊,摧毀眾多烏軍戰車
留言
發佈留言