“MIPS 豈是無情物,化為 RISC-V 更護(hù)芯”。
曾經(jīng)在 PC 時代與 X86、ARM 三分天下的 MIPS,幾經(jīng)輾轉(zhuǎn)之后,于近日迎來了命運的終章,正式加入同屬精簡指令集 RISC-V 的陣營。
在這個萬物互聯(lián)的 IoT 時代,基于精簡指令集的芯片在能耗、效率等方面擁有明顯的優(yōu)勢, 尤其在開源光環(huán)的加持下,RISC-V 近期的發(fā)展風(fēng)聲水起,無往不利。相對比下,MIPS 作為入門 CPU 工作原理時必學(xué)的經(jīng)典架構(gòu),在這一片大好的形勢下黯然退場,著實令我們廣大程序員群體無限唏噓。
MIPS——曾經(jīng)獨自扛起 RISC 大旗的指令集
MIPS (Microprocessor without interlocked pipelined stages),即“無內(nèi)部互鎖流水級的微處理器”,其關(guān)鍵思想是盡量利用軟件辦法避免流水線中的問題,而不使用硬件鎖。
1981 年,斯坦福大學(xué)的第十任校長、馮諾依曼獎與圖靈獎的雙料得主約翰·軒尼詩教授做出了世界第一款 MIPS 架構(gòu)的處理器。這幾乎也是世界上第一款真正實踐了精簡指令思想的處理器。
而如今將 MIPS 收入麾下的 RISC-V,直到 30 年后的 2010 年才誕生,除此之外,與 MIPS 同場競技三十年的 ARM 系列,也是彼時的 4 年后才由 ARM 公司的前身 Acorn 設(shè)計出第一代原型產(chǎn)品。
不過在當(dāng)時的那個年代 ARM 還沒有什么上臺面的機(jī)會,剛出生不久 ARM 就面對著各種動蕩與波折。在一手創(chuàng)辦出前兩代 ARM 芯片之后,有著“英國蘋果公司”之稱的 Acorn 后來轟然倒在了個人電腦時代到來之前,可以說在當(dāng)時的很長一段時間內(nèi),MIPS 幾乎是以一己之力獨自扛起了 RISC 陣營的大旗。
精簡時代的天之驕子 MIPS
可謂 30 年河?xùn)|,30 年河西。如今回看 MIPS,也曾一度輝煌。
眾所周知,在計算機(jī)中,讓 CPU 執(zhí)行某種運算、處理功能的命令稱為指令,是計算機(jī)運行的最小的功能單位。指令集是指芯片全部指令的集合,是計算機(jī)系統(tǒng)能提供的全部功能體現(xiàn),最關(guān)鍵的是指令集決定了指令的格式和機(jī)器的結(jié)構(gòu),因此指令集也常被稱作芯片架構(gòu),如果說芯片是計算機(jī)的核心,那么指令集就是芯片的核心。
在復(fù)雜指令集大行其道的上世紀(jì) 60 到 70 年代,計算機(jī)系統(tǒng)的內(nèi)存、存儲、 CPU 等等資源都非常匱乏,用戶對于性能的要求往往是第一位的,而且當(dāng)時大型的軟件項目還不多,高級語言便于組織協(xié)同、提升工程效率的特點還無法顯現(xiàn),匯編語言做為性能保證在當(dāng)時是擁有絕對的統(tǒng)治地位的,從某種意義上講匯編語言就是指令集的 API,因此當(dāng)時的指令集往往傾向于提供更多的 API 指令,使程序員以更少的代碼,完成更多的工作。
但隨著時間的推移,指令的增加似乎沒有盡頭,據(jù)說當(dāng)時一臺摩托羅拉大型機(jī)的匯編語言參考手冊相當(dāng)于 5 本新華字典,一般資質(zhì)的程序員不折騰一年半載可能連個 HELLO WORLD 都寫不出來,甚至很多指令連芯片廠商的設(shè)計人員都只能機(jī)械式的從上個版本中繼承,卻不知道實際有何作用,天下苦復(fù)雜指令集久矣。
MIPS 是一出生就顯示出天選之子的氣象,正如上文所述,在當(dāng)時那個年代精簡指令集對于復(fù)雜指令集有著碾壓式的優(yōu)勢,在這樣的大背景下,1984 年,約翰·軒尼詩教授離開斯坦福大學(xué),正式創(chuàng)立 MIPS 科技公司。
1985 年,MIPS 科技設(shè)計出 R2000 芯片;
1988年,MIPS 將 R2000 升級為 R3000,不負(fù)眾望,R3000 一經(jīng)推出便風(fēng)靡全球,即使現(xiàn)在年輕的讀者已經(jīng)完全沒聽過什么 R3000 芯片了,但相信你也一定知道索尼的游戲平臺 Play Station,這款首發(fā)于 1994 年的創(chuàng)世神機(jī),搭載的就是 MIPS R3000A CPU。
Play Station 在 30 年前那個時代就帶來了令個 IT 界為之震撼的 3D 圖像效果,很快占據(jù)了家庭娛樂市場的 C 位,Play Station 的橫空出世也為 MIPS 做了一波最好的代言,R3000 這款芯片強(qiáng)到?jīng)]朋友。
?
MIPS VS Itanium 服務(wù)器雙雄,卻接連落幕
借 Play Station 成功上位之后,MIPS 又成功進(jìn)軍服務(wù)器市場,先是在 1991 年登陸 SGI 的 Indigo 工作站。
隨后又在 1997 年,隨 NEC Cenju-4 超級計算機(jī)共同亮相,這臺超算極具劃時代意義,它最多可集成 1024 個 MIPS R10000 CPU,具有很多類似于同步廣播、多級網(wǎng)絡(luò)連接等超前的設(shè)計。
?
這兩款服務(wù)器產(chǎn)品,不但為 MIPS 帶來良好的業(yè)績,更在業(yè)界為 MIPS 贏得了極佳的口碑。
如果說 MIPS 僅僅用在游戲機(jī)上的話,那我想英特爾大概率會選擇忍耐,不過當(dāng)戰(zhàn)火燒到了企業(yè)級的服務(wù)器市場,這塊兵家必爭之地時,英特爾這位芯片界的霸主就只能親身下場與 MIPS 展開決戰(zhàn)了。
為應(yīng)對 MIPS 系列芯片帶來的沖擊,20 年前的英特爾上來就甩了王炸,直接拋棄了 X86 架構(gòu),推出 Intel Architecture 64 架構(gòu)的安騰(Itanium)系列服務(wù)器級 CPU,我們知道由于歷史原因 X86 系列的 CPU 始終都要保持向后兼容,也就是為 286 編寫的程序,也要能完美運行在 486 上,不過 286 是 16 位而 486 卻是 32 位,讓兩個位長都不一樣的 CPU 運行同樣的程序,還不出問題,這可真是難為英特爾的程序員了,X86 系列 CPU 經(jīng)常要在各種保護(hù)模式、實模式之間來回橫跳,沒有過硬的技術(shù)功底,想弄明白 X86 的系統(tǒng)是如何加載引導(dǎo)的都十分困難。
Intel Architecture 64 架構(gòu)號稱真 64 位芯片,也就是說基于這種架構(gòu)的安騰 CPU 不需要在各種兼容模式下切換,不過這樣做的代價卻是要與 x86 決裂。
按理來說,同一廠商的 CPU 往往都要考慮相互兼容的問題,沒有哪個客戶能接受把 CPU 從 I3 升級成 I7 后,Word 都無法運行的后果,因此推出與 X86 說再見的安騰系列肯定是最后的無奈之舉了,但這也從側(cè)面讓我們能感受到當(dāng)年 MIPS 正面硬剛英特爾這個芯片業(yè)老大時的不凡風(fēng)范。
記得在多年前剛剛到金融行業(yè)工作時,第一次接觸小型機(jī)就是基于安騰系列芯片的,其性能、穩(wěn)定性等等方面表現(xiàn)都是很不錯的,當(dāng)然彼時的小型機(jī)在去 IOE 風(fēng)潮之下,現(xiàn)在已經(jīng)很難再見到了,安騰系列自從 2017 年 9700 系列也就停止了更新, 并在 2019 年被正式砍掉,歷史總是擁有對稱之美,2001 年時任英特爾 CTO 的帕特·基辛格親自發(fā)布了安騰 2,見證了安騰的從無到有。
而在現(xiàn)在帕特·基辛格回歸英特爾出任 CEO 時,又正值 MIPS 轟然倒下,這真可謂是世事難料,諸行無常。
MIPS 落幕!
十年前還經(jīng)常混跡于 CSDN 論壇,擔(dān)任嵌入式大版的版主,當(dāng)時 MIPS 架構(gòu)的應(yīng)用開發(fā)與移植,包括 WINCE、ucLinux 等各類式操作系統(tǒng)區(qū)的熱門話題,在當(dāng)時的勢頭還很好。
不過與諾基亞一樣,MIPS 由于始終沒有搞定能耗的問題,而痛失移動時代的機(jī)遇,最終慢慢淡出大眾的視線,開始了漫長的告別。
2013-2014 年,擁有 PowerVR GP 的圖片處理芯片公司 Imagination,在一系列的復(fù)雜操作下收購了 MIPS 及 MIPS 所有的知識產(chǎn)權(quán),但是并入 Imagination 后 MIPS 繼續(xù)萎縮,后來又被 AI 數(shù)據(jù)流處理器的初創(chuàng)公司 Wave Computing 所收購,巧合的是 Wave Computing 與 RISC-V 一樣都是成立于 2010 年。
對于 Wave Computing 收購 MIPS 不知是否是出于情懷,畢竟彼時的 MIPS 一直耕耘的 CPU 領(lǐng)域其實與 AI 數(shù)據(jù)流處理器完全不同,CPU 本身是中央控制單元,所謂控制就是跳轉(zhuǎn),而且 CPU 進(jìn)行的計算主要是將任務(wù)轉(zhuǎn)換成加法來進(jìn)行的,比如減法是加一個有符合的負(fù)數(shù),乘法是多個數(shù)相加。
但是在 AI 的神經(jīng)網(wǎng)絡(luò)世界中,神經(jīng)元的工作可以抽象為對于輸入數(shù)據(jù)乘以權(quán)重以表示信號強(qiáng)度乘積加總,再由 ReLU、Sigmoid 等應(yīng)用激活函數(shù)調(diào)節(jié),本質(zhì)是將輸入數(shù)據(jù)與權(quán)重矩陣相乘,并輸入激活函數(shù),對于有三個輸入數(shù)據(jù)和兩個全連接神經(jīng)元的單層神經(jīng)網(wǎng)絡(luò)而言,需要把輸入和權(quán)重進(jìn)行六次相乘,并得出兩組乘積之和。這實際上就是一個矩陣乘法運算。因此 AI 的運算中向量與矩陣的運算才是基礎(chǔ)。
在這其中,我們看到針對 AI 計算的特殊性,各大科技巨頭在勵精圖治后都給出了自己的獨門絕技。比如華為推出的“達(dá)芬奇架構(gòu)”,具體來說,達(dá)芬奇架構(gòu)采用 3D Cube 針對矩陣運算做加速,以 N*N 的矩陣乘法為例,3D Cube 技術(shù)通過優(yōu)化的運算單元,可以將運算復(fù)雜度直接降低冪級,這也造就了基于達(dá)芬奇架構(gòu)的昇騰 910 芯片成為地表算力最強(qiáng)的 AI 芯片。
另外谷歌 TPU 選擇了復(fù)雜指令集作為其架構(gòu)基礎(chǔ),谷歌創(chuàng)建了一個編譯器和軟件棧,將來自 TensorFlow 的 API 調(diào)用直接轉(zhuǎn)化成 TPU 指令,這也印證這樣一個邏輯,在 AI 的世界中幾乎所有的運算都需要對應(yīng)的指令與電路進(jìn)行專門的優(yōu)化才能真正提升效率。
從這個角度上看從事 AI 處理器的 Wave Computing 還是選擇復(fù)雜指令集更為合理,收購 MIPS 似乎將注定是一次美麗的錯誤。
成也開源,敗也開源
MIPS 的回光返照發(fā)生于 2019 年,前 MIPS 授權(quán)許可業(yè)務(wù)總裁 Art Swift 正式接任 Wave Computing CEO 一職,并提出 MIPS OPEN 計劃,將 MIPS 架構(gòu)開源,以期通過像 RISC-V 那樣通過免費與開放戰(zhàn)略吸引到更多企業(yè)客戶與開發(fā)者。MIPS 開源的舉措,在當(dāng)時被認(rèn)為既向 ARM 示威,又向 RSIC-V 宣戰(zhàn),更為即將開始的 IoT 時代做好準(zhǔn)備。
但選擇開源就要厚積薄發(fā)與時間為伴,我們看到像 Linux、RT-Thread、TiDB 等成功的開源項目,都有長時間的社區(qū)人氣積累與技術(shù)沉淀的加持,想要立竿見影的效果去急功近利的開源只能適得其反。
MIPS 開源后不久,Wave Computing 便陷入人事調(diào)整,剛剛指掌公司不到半年的 CEO Art Swift 宣布離任,這位 MIPS 鐵桿人物的出走也讓業(yè)界對 Wave Computing 及 MIPSOPEN 的發(fā)展打上了一個大大的問號,更使 MIPS 開源社區(qū)的士氣大受打擊。
今年 2 月 10 日,Wave Computing 正式宣告資產(chǎn)重組,在其最后的聲明中宣布 MIPS 正在開發(fā)基于 RISC-V 的“第八代標(biāo)準(zhǔn)體系結(jié)構(gòu)”。
3 月 8 日,MIPS 宣布將履行之前的 MIPS OPEN 計劃,并正式加入 RISC-V 陣營,至此 MIPS 與 RISC-V 正式官宣合體。
值得欣慰的是,MIPS 和 RISC-V 在中國發(fā)展得都還不錯,比如國內(nèi)的芯片廠商龍芯和芯聯(lián)芯都買斷了 MIPS 的知識產(chǎn)權(quán),尤其是龍芯在吸收 MIPS 精華之后,還推出了自主的 Loongarch 芯片指令集,并獨創(chuàng)了指令翻譯技術(shù),兼容其它平臺應(yīng)用。在去年的操作系統(tǒng)全國高校聯(lián)賽中,國產(chǎn)的開源操作系統(tǒng) RT-ThreadSmart 與國產(chǎn)全志 RISC-V 處理器的組合已經(jīng)成功登臺亮相,獲得組委會大獎,這一切似乎預(yù)示著開源與中國有源,最后祝愿 MIPS 能夠借助于 RISC-V 的開源理念再回巔峰,也愿 RISC-V 能夠助我國早日去除“芯”痛。
? ? ? ?責(zé)任編輯:tzh
評論