?
當(dāng)年龍芯為什么選擇了 MIPS 構(gòu)架而沒(méi)有選擇 ARM 構(gòu)架?這個(gè)問(wèn)題被爭(zhēng)執(zhí)了很多年,有人說(shuō)當(dāng)年 ARM 構(gòu)架不足以支持桌面運(yùn)算,有人認(rèn)為是“指令集授權(quán)”和“微架構(gòu)授權(quán)”不是一回事,龍芯需要 MIPS 的指令集授權(quán),而非 ARM 的微構(gòu)架授權(quán)??傊?,MIPS 的架構(gòu)完整性與授權(quán)較寬松贏得了龍芯的青睞,在如今半導(dǎo)體衰退的大趨勢(shì)下,MIPS 構(gòu)架是否還有機(jī)會(huì)崛起值得探討。
3.MIPS64 位架構(gòu)
MIPS64 架構(gòu)刷新了 64 位 MIPS-Based 嵌入式處理器的性能標(biāo)準(zhǔn)。它代表著下一代高性能 MIPS 處理器的基礎(chǔ),并兼容 MIPS32 32 位架構(gòu)。
MIPS I-class I6400 CPU 系列產(chǎn)品
MIPS 架構(gòu)擁有強(qiáng)大的指令集、從 32 位到 64 位的可擴(kuò)展性、廣泛可獲得的軟件開(kāi)發(fā)工具以及眾多 MIPS 科技公司授權(quán)廠商的支持,是領(lǐng)先的嵌入式架構(gòu)。
MIPS64 架構(gòu)是以前的 MIPS IV 和 MIPS V 指令集架構(gòu)(ISA)的擴(kuò)展集,整合了專門(mén)用于嵌入式應(yīng)用的功能強(qiáng)大的新指令,以及以往在 R4000 和 R5000 MIPS 處理器中執(zhí)行的已經(jīng)驗(yàn)證的存儲(chǔ)器管理和特權(quán)模式控制機(jī)制。通過(guò)整合強(qiáng)大的新功能、標(biāo)準(zhǔn)化特權(quán)模式指令、支持前代 ISA,以及提供從 MIPS32 架構(gòu)升級(jí)的路徑,MIPS64 架構(gòu)為未來(lái)基于 MIPS 處理器的開(kāi)發(fā)提供了一個(gè)堅(jiān)實(shí)的高性能基礎(chǔ)。
MIPS64 架構(gòu)基于一種固定長(zhǎng)度的定期編碼指令集,并采用導(dǎo)入 / 存儲(chǔ)(load/store)數(shù)據(jù)模型。經(jīng)改進(jìn),這種架構(gòu)可支持高級(jí)語(yǔ)言的優(yōu)化執(zhí)行。其算術(shù)和邏輯運(yùn)算采用三個(gè)操作數(shù)的形式,允許編譯器優(yōu)化復(fù)雜的表達(dá)式。此外,它還帶有 32 個(gè)通用寄存器,讓編譯器能夠通過(guò)保持對(duì)寄存器內(nèi)數(shù)據(jù)的頻繁存取進(jìn)一步優(yōu)化代碼的生成性能。
功能強(qiáng)大的 64 位浮點(diǎn)寄存器和執(zhí)行單元可加快某些任務(wù)的執(zhí)行速度,比如一些 DSP 算法的處理、圖形操作的實(shí)時(shí)計(jì)算。雙單精度指令(Paired-Single instruction)在一個(gè) 64 位寄存器中裝入了兩個(gè) 32 位浮點(diǎn)操作數(shù),從而實(shí)現(xiàn)單指令多數(shù)據(jù)操作(SIMD)。這種方法的執(zhí)行速度是傳統(tǒng) 32 位浮點(diǎn)單元的兩倍。浮點(diǎn)操作可選擇軟件仿真。
MIPS64 架構(gòu)兼具 32 位和 64 位尋址模式,同時(shí)采用 64 位數(shù)據(jù)工作。這樣一來(lái),無(wú)需額外的存儲(chǔ)器進(jìn)行 64 位尋址就能獲得 64 位數(shù)據(jù)的優(yōu)勢(shì)。為了便于從 32 位系列的移植,該架構(gòu)還帶有 32 位兼容模式,在這種模式中,所有寄存器和地址都是 32 位寬,MIPS32 架構(gòu)中出現(xiàn)的所有指令都被執(zhí)行。
I6400 采用最新一代的 MIPS Coherency Manager 架構(gòu)
這是以新的多核一致互連架構(gòu)為基礎(chǔ)。它可支持每集群最多達(dá) 6 核的多核配置,并且單一集群上的多核都能擁有不同的合成目標(biāo),并以不同的時(shí)鐘頻率和電壓運(yùn)行。一致性管理員架構(gòu)中構(gòu)建了多項(xiàng)高性能特性,包括硬件預(yù)取,以及比前一代架構(gòu)更寬的總線和更低的時(shí)間延遲。
?
4.microMIPS 架構(gòu)
microMIPS 是一種在單個(gè)統(tǒng)一的指令集架構(gòu)中集成了 16 位和 32 位優(yōu)化指令的高性能代碼壓縮技術(shù)。
它支持 MIPS32 和 MIPS64 Release2 架構(gòu),整合了可變長(zhǎng)度重新編碼 MIPS 指令集和新增的代碼量?jī)?yōu)化 16 位和 32 位指令,可提供高性能和高代碼密度。
microMIPS 是一個(gè)完整的 ISA,既能單獨(dú)工作,也能與原有的 MIPS32 兼容指令解碼器共同工作,允許程序混合 16 位和 32 位代碼,無(wú)需模式切換。由于它的程序代碼量較小,因此可獲得更好的緩存利用率和更小的取指帶寬(fetch bandwidth),從而有助于提升性能,降低功耗。
microMIPS 包含所有 MIPS ASE 指令,支持 CorExtend/UDI 接口。而且,針對(duì) microMIPS 軟件及系統(tǒng)開(kāi)發(fā),MIPS 科技公司與第三方合作伙伴生態(tài)系統(tǒng)提供有一套全面完善的軟硬件工具支持。新推出的 M14K?和 M14Kc 是首先執(zhí)行 microMIPS 的處理器內(nèi)核。
5.MIPS 的授權(quán)和“中國(guó)芯”
2002 年,中國(guó)科學(xué)院計(jì)算所開(kāi)始研發(fā)龍芯處理器,采用 MIPS 架構(gòu),但因未經(jīng) MIPS 公司的授權(quán)而遭到侵權(quán)的控告。2009 年,中國(guó)科學(xué)院與 MIPS 公司達(dá)成和解,得到正式授權(quán)。
MIPS 架構(gòu)國(guó)內(nèi)的代表龍芯處理器
看到這里,也許大家不禁要問(wèn):前有身份顯貴的 X86,后有紅極一時(shí)的 ARM,為什么 MIPS 最終成為了我國(guó)龍芯處理器的設(shè)計(jì)架構(gòu)呢?
答案非常簡(jiǎn)單,那就是架構(gòu)授權(quán)。
x86 架構(gòu)的擁有者 Intel,可以算作是技術(shù)合作上最摳門(mén)兒的一位。
在推出 x86 架構(gòu)之后,Intel 就只將這一架構(gòu)授權(quán)給過(guò) AMD 和 VIA 等幾個(gè)芯片公司。而在 VIA 退出 x86 架構(gòu)處理器競(jìng)爭(zhēng)之后,Intel 便不再給任何公司 x86 架構(gòu)授權(quán)。所以從 x86 架構(gòu)上入手,龍芯處理器顯然是行不通的。
Intel 的 x86 架構(gòu)行不通,那么 ARM 架構(gòu)是否就能行得通呢?ARM 不也是給授權(quán)嗎?那為什么還選 MIPS 呢?
回答這個(gè)問(wèn)題之前,首先對(duì)比一下兩家公司在架構(gòu)授權(quán)問(wèn)題的“原則”,MIPS 和 ARM 雖然都是對(duì)外進(jìn)行架構(gòu)授權(quán)的公司,但意義完全不同。
?
ARM 公司是一家非常優(yōu)秀的芯片設(shè)計(jì)公司,但自身并不生產(chǎn)處理器,而是將自身的設(shè)計(jì) licensing 賣給需要處理器的公司,而后交給他們生產(chǎn)或者是找人代工。也許有人要問(wèn)了,既然 ARM 向外賣出架構(gòu)設(shè)計(jì),那么為何龍芯不去選擇 ARM 架構(gòu)呢?其實(shí)不然,ARM 之所以能夠發(fā)展成為一家非常成功的商業(yè)性公司,靠的就是芯片的架構(gòu)設(shè)計(jì),倘若架構(gòu)設(shè)計(jì)被別人奪走了,那么自己就丟掉了賴以生存的“飯碗”。所以 ARM 雖然對(duì)外進(jìn)行 licensing 授權(quán),卻不允許購(gòu)買者進(jìn)行任何對(duì) ARM 架構(gòu)有更改的設(shè)計(jì)。倘若更改了設(shè)計(jì),那么這便違反了合作協(xié)定。ARM 便有權(quán)撤回 licensing 授權(quán)。
我國(guó)的龍芯要是選擇了 ARM 架構(gòu)的話,那么基本上也就被捆住了腳步,無(wú)法發(fā)展出屬于自己的高性能處理器了。所以:此路依舊不通!
現(xiàn)在,將目光轉(zhuǎn)向 MIPS,與 ARM 的商業(yè)化相比,MIPS 倒像是學(xué)院派的公司。
MIPS 的架構(gòu)授權(quán),并不限制任何對(duì) MIPS 架構(gòu)的更改。換句話說(shuō),就是 MIPS 公司給授權(quán)者一張白紙,而白紙上僅僅寫(xiě)著一行字,MIPS 公司同意你設(shè)計(jì)生產(chǎn) MIPS 架構(gòu)處理器,至于你設(shè)計(jì)成什么樣,性能有多高,經(jīng)過(guò)多少代更改,MIPS 一概不管,只要你不把架構(gòu)徹底改變就行了。
與 ARM 相比,MIPS 是一個(gè)完全開(kāi)放的架構(gòu),對(duì)龍芯未來(lái)的發(fā)展沒(méi)有任何的限制,這與 Intel 給 AMD x86 架構(gòu)授權(quán),而不是給設(shè)計(jì)圖紙的道理是完全一樣的。在加上 MIPS 本身經(jīng)過(guò)幾十年的發(fā)展,已經(jīng)擁有了眾多的應(yīng)用軟件,綜合考慮來(lái)看,MIPS 是最為適合龍芯處理器發(fā)展的架構(gòu)選擇。
6.MIPS 處理器的發(fā)展之路
現(xiàn)在,我們總結(jié)一下 MIPS 處理器的發(fā)展史:
- 1986 年推出 R2000 處理器;
- 1988 年推出 R3000 處理器;
- 1991 年推出第一款 64 位商用微處理器 R4000;
- 之后,又陸續(xù)推出 R8000(于 1994 年)、R10000(于 1996 年)和 R12000(于 1997 年)等型號(hào);
- 1999 年,MIPS 公司發(fā)布 MIPS32 和 MIPS64 架構(gòu)標(biāo)準(zhǔn);
- 2000 年,MIPS 公司發(fā)布了針對(duì) MIPS324Kc 的新版本以及未來(lái) 64 位 MIPS6420Kc 處理器內(nèi)核。
簡(jiǎn)直是神一般的速度!
不過(guò),貌似芯片行業(yè)有個(gè)規(guī)則:分久必合,合久必分。MIPS 芯片也不例外,在其的發(fā)展過(guò)程中,也曾經(jīng)有過(guò)類似的插曲,比如:SGI 公司在 1992 年收購(gòu)了 MIPS 計(jì)算機(jī)公司,1998 年,MIPS 公司又脫離了 SGI,成為 MIPS 技術(shù)公司。雖然看起來(lái)塵埃落定,但分分合合的故事,仍然在繼續(xù)。
2012 年,MIPS 處理器收購(gòu)案引來(lái)眾多芯片及處理器廠商的關(guān)注。很多公司都希望能夠接手這個(gè)擁有眾多專利的半導(dǎo)體設(shè)計(jì) IP 公司。最終,Imagination 科技公司宣布將以 6000 萬(wàn)美元現(xiàn)金收購(gòu)芯片廠商 MIPS:收購(gòu)了 MIPS 經(jīng)營(yíng)業(yè)務(wù)及 82 項(xiàng)專利,以及 MIPS 的 160 位工程師;而 ARM 則透過(guò)一個(gè)投資聯(lián)盟 Bridge Crossing 取得 MIPS 489 項(xiàng)專利組合的權(quán)利。
MIPS 技術(shù)公司的 LOGO
新的 LOGO 中依舊保留著 MIPS 的印記
思考一下,MIPS 的結(jié)局為什么是這樣呢?
答案在于它的自身,MIPS 起源于學(xué)院,在很長(zhǎng)時(shí)間里都擺脫不了學(xué)院派的做法,特別是當(dāng)公司取得了一定的商業(yè)地位以后更加變得固步自封,缺少了商業(yè)上的遠(yuǎn)見(jiàn)和野心。而與其比肩的 ARM 則完美地演繹了一出技術(shù)商業(yè)化的故事(故事的細(xì)節(jié)見(jiàn)后文)。
所以,每當(dāng)大家談起 ARM 和 MIPS,第一反應(yīng)總是“MIPS 相對(duì)大、強(qiáng)、功耗大”而“ARM 相對(duì)小、弱、功耗低”,這不就是活生生學(xué)院派和商業(yè)派的特征嗎?
至于將來(lái) MIPS 將何去何從,我們拭目以待。
?
與非網(wǎng)原創(chuàng)內(nèi)容,謝絕轉(zhuǎn)載!
系列匯總:
之二:處理器的春秋戰(zhàn)國(guó)時(shí)代:8 位處理器的恩怨與紛爭(zhēng)(上)
之三:處理器的春秋戰(zhàn)國(guó)時(shí)代:8 位處理器的恩怨與紛爭(zhēng)(下)
之四:處理器的三國(guó)時(shí)代:蘋(píng)果攪動(dòng) MCU 江湖
之五:處理器的三國(guó)時(shí)代:DR 公司盛氣凌人,IBM 轉(zhuǎn)身成就微軟
之六:32 位處理器的攻“芯”計(jì):英特爾如何稱霸 PC 江湖?
之七:AMD 稱霸 PC 處理器市場(chǎng)的“曇花一現(xiàn)”
之八:CPU 兩大陣營(yíng)對(duì)擂,X86 構(gòu)架讓英特爾如日中天
之九:你知道 X86 構(gòu)架,你知道 SH 構(gòu)架嗎?