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