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