這兩天嵌入式領域最大新聞就是MIPS架構宣布開源了!昨天:曾經收購MIPS公司的美國AI公司Wave Computing宣布了一則重磅消息:正式啟動MIPS Open項目,MIPS架構完全開源,免費提供給全球的開發者、合作伙伴、高校研究機構、客戶。
MIPS開源社區將在2019年第一季度上線,屆時會免費提供的MIPS IP和技術資源包括:32/64位指令集Releas 6版本、SIMD擴展、DSP擴展、MT多線程、MCU微控制器、VZ虛擬化、microMIPS架構。
未來,任何人都可以自由獲得以上資源,無需任何授權費、版權費,并能在全球范圍內得到幾百項專利的保護。Wave Computing表示,更多的開源計劃細節將在明年第一季度公布。
MIPS架構流水線簡圖
雖然之前的授權和新的開源計劃并不能完全混合,但是Wave Comuting已經明確表示,會向授權客戶提供開發工具、第三方IP資源,以構建更強壯、更完整的生態系統,再加上開源的豐富資源和全世界的努力。
01
MIPS指令集歷史沿革
此次開源的是 MIPS 32/64位指令集Releas 6版本,MIPS指令集架構自上世紀80年代出現已經有35年歷史了,其指令集一直在更新換代,從最初的MIPS I到MIPS V,發展到可支持擴展模塊的MIPS32、MIPS64系列,再到集成代碼壓縮技術的microMIPS32、microMIPS64。每一個MIPS ISA都是其前一個的超集,沒有不論什么遺漏,僅僅有添加新的功能。
1、MIPS Ⅰ
提供載入/存儲、計算、跳轉、分支、協處理及其他特殊指令。該指令集架構用于最初的MIPS處理器R2000/R3000。R2000是1985年推出的首款MIPS CPU,由110000個晶體管組成,是一個8MHz的32位處理器。R3000是R2000的下一代產品。與前者相比不過時鐘頻率不同。
2、MIPS Ⅱ
添加了自陷指令、鏈接載入指令、條件存儲指令、同步指令、可能分支指令、平方根指令。最初計劃用在MIPS 處理器R6000上,但因為工藝選擇的問題,R6000從1988年開始設計后,就一直問題不斷,終于未能大規模生產。但MIPSⅡ指令集架構是后期MIPS32指令集架構的直接先驅。
3、MIPS Ⅲ
提供了32位指令集,同一時候支持64位指令集。最初用于MIPS處理器R4000。R4000是于1991年推出的64位處理器,首次增加了浮點處理器單元,主時鐘頻率提高到了100MHz。后來出現了一系列的R4000處理器。
4、MIPS Ⅳ
在MIPS III基礎上添加了條件移動指令、預取指令以及一些浮點指令。最初用于MIPS處理器R8000,后來應用于R5000/R10000。R5000與R10000盡管使用同樣的指令集架構。可是兩者微架構的設計理念全然不同。R5000于1995年推出。採用的是經典的五級流水線、順序運行。R10000于1996年推出,採用的是亂序運行。
MIPS IV是該架構的第四個版本。它是MIPS III的超集,與所有現有版本的MIPS兼容。 MIPS IV旨在主要改善浮點(FP)性能。為了改善對操作數的訪問,添加了用于FP加載和存儲的索引尋址模式(base + index,均來自GPR),以及用于執行內存預取和指定緩存提示的預取指令(這些指令支持基數+偏移量和基數) +索引尋址模式)。
MIPS IV增加了幾個功能來改善指令級并行性。為了緩解由單個條件位引起的瓶頸,將七個條件碼位添加到浮點控制和狀態寄存器,使總數達到8。重新定義FP比較和分支指令,以便它們可以指定分別寫入或讀取哪個條件位;并且去除了讀取通過先前FP比較寫入的條件位的FP分支之間的延遲時隙。對GPR和FPR的條件移動指令形式增加了對部分預測的支持;并且實現可以選擇具有IEEE 754陷阱的精確或不精確的異常。
MIPS IV為單精度和雙精度FPN添加了幾個新的FP算術指令:融合乘法加法或減法,倒數和倒數平方根。 FP融合乘法加或減指令執行一個或兩個舍入(它是實現定義的),以超過或滿足IEEE 754精度要求(分別)。 FP倒數和倒數平方根指令不符合IEEE 754精度要求,并且產生的結果與最后一個位置的一個或兩個單位(所實現定義)的要求精度不同。這些指令適用于指令延遲比準確性更重要的應用。
第一個MIPS IV實施是MIPS科技R8000微處理器芯片組(1994)。 R8000的設計始于Silicon Graphics,Inc。,它僅用于高端工作站和服務器,用于科學和技術應用,其中大型浮點工作負載的高性能非常重要。后來的實施是MIPS Technologies R10000(1996)和Quantum Effect Devices R5000(1996)和RM7000(1998)。由NEC電子和東芝制造和銷售的R10000及其衍生產品被NEC,Pyramid Technology,Silicon Graphics,Inc。和Tandem Computers(以及其他公司)用于工作站,服務器和超級計算機。 R5000和R7000可用于高端嵌入式系統,個人計算機以及低端工作站和服務器。東芝R5000的衍生產品R5900用于索尼電腦娛樂公司的Emotion Engine,后者為其PlayStation 2游戲機提供動力。
5、MIPS Ⅴ
在MIPS IV的基礎上添加了能夠提高代碼生產效率和數據轉移效率的指令。可是沒有不論什么一個處理器基于該架構。MIPS V指令集架構是后期MIPS64指令集架構的直接先驅。
6、MIPS32/64
MIPS32/64于1998年提出,MIPS32以MIPS II架構為基礎,選擇性地增加了MIPS III、MIPS IV、MIPS V,提高了代碼生成和數據移動的效率。
MIPS64以MIPS V架構為基礎,同一時候兼容MIPS32。
該架構第一次包括了被稱為協處理器0的“CPU控制”功能。1999年以后設計的大多數MIPS處理器都與該標準兼容。2003年。公布了MIPS32/64指令集架構的第二版(Release 2),也稱為MIPS32/64 R2。最新的是第六版(Release 6),也稱為MIPS32/64R6。
而廣泛使用的是第二版。很成功的MIPS 4K、24K系列處理器遵循的就是MIPS32 R2架構。MIPS32/64在基本指令的基礎上,還提供了一些面向特定應用的指令。這些指令採用特定應用擴展(ASE:Application-SpecificExtensions)的形式。
一種處理器是否實現了某種擴展。能夠通過設置標準的配置寄存器指明。基本的擴展列舉例如以下。
MIPS 16e:是專門為嵌入式系統及存儲空間有限情況下的應用而設計的,能夠在一個程序中運行16位和32位兩種混合長度的指令,能使終于代碼長度降低40%。MIPS32、MIPS64都支持MIPS 16e。
SmartMIPS:是為了滿足智能卡和靈活小系統的市場須要而設計的。是一套能高效節省存儲空間的擴展指令集,此外還能提高智能卡領域很關鍵的加密運算的性能。MIPS32支持SmartMIPS。
MIPS-3D:提供了更好的幾何運算處理,具有成對單精度數據類型,還提供專用指令來加快對該類型數據的處理。MIPS64支持MIPS-3D, MIPS32第二版也支持MIPS-3D。
MCU:Micro-Control Unit微控制單元,增強了內存映射I/O的處理、提供了更低的中斷延遲。MIPS32、MIPS64都支持MCU。
7、microMIPS32/64
microMIPS32/64指令集架構集成了16位和32位優化指令的高性能代碼壓縮技術,保持了98%的MIPS32性能,同一時候減少了至少30%的代碼體積,從而減少芯片成本,也有助于減少系統功耗。MIPS M14K內核是MIPS科技于2009年公布的首款遵循microMIPS指令集架構的MIPS32兼容內核。
注意其序列中沒有Release 4,這是由于對于非常多人來說。4是個不吉利的數字。所以MIPS沒有公布Release 4,而是直接公布Release 5。
MIPS32 / MIPS64R6
2014年MIPS32 / MIPS64第6版增加了以下內容:
一個沒有延遲槽的新分支系列:
具有26位偏移的無條件分支(BC)和分支鏈接(BALC),
具有21位偏移的零/非零條件分支,
兩組寄存器(例如BGTUC)或零寄存器(例如BGTZC)之間的全套有符號和無符號條件分支比較,
全套分支和鏈接,將寄存器與零進行比較(例如BGTZALC)。
索引跳轉指令沒有延遲槽,旨在支持大的絕對地址。
指令在位位置16,32或48處加載16位立即數,允許輕松生成大常量。
PC相對負載指令,以及具有大(PC相對)偏移的地址生成。
位反轉和字節對齊指令(以前僅適用于DSP擴展)。
乘法和除法指令重新定義,以便他們使用單個寄存器作為結果)。
生成真值的指令現在生成全零或全1,而不是僅清除/設置0位,
使用真值的指令現在只將全零解釋為假而不是僅僅查看0位。
刪除了不經常使用的說明:
一些有條件的舉動
分支可能的指令(在以前的版本中已棄用)。
16位立即數的整數溢出陷阱指令
整數累加器指令(一起HI / LO寄存器,移動到DSP應用專用擴展)
未對齊的加載指令(LWL和LWR),(要求大多數普通的加載和存儲支持未對齊的訪問,可能通過陷阱和添加新指令(BALIGN))
重新組織指令編碼,為將來的擴展釋放空間。
02
MIPS CPU架構開源打擊了誰?
在業界,雖然MIPS架構的生態系統成熟度比不過ARM,但超過RISC-V是綽綽有余了,作為一種全新的、簡且開源的指令集架構,RISC-V 因開源且沒有版稅而被眾多企業、研究機構所采納,2018堪稱RISC-V爆發的元年,各種有關RISC-V的研討會不斷,同時,中國RISC-V產業聯盟也宣告成立,為RISC-V在中國的全面應用打下了基礎。
SiFive CEO NaveedSherwani在近日ICCAD2018上接受采訪時表示RISC-V生態趨于成熟和完善,并透露許多半導體廠家發布了產品或者宣布了產品推出的計劃,比如西部數據,高通,英偉達,FADU,以及國內的華米,比特大陸,嘉楠耘智等。Naveed Sherwani還指出今年10月份微軟就只花費兩個月時間便開發出了一款芯片,未來幾年RISC-V的發展將會不斷的提速,將有更多的公司更快地發布他們的芯片。詳見《目前形勢下本土IC該如何做強做大?》但即便如此,RISC-V的IP積累還是不夠。
另外,可能大家對RISC-V的free有點誤解,其實這里的free不是免費是自由的意思,對于RISC-V指令集,如果你是個人或者科研機構可以下載其源代碼用于研究,如果要進行商業化操作比如大批量的量產,這就需要SiFive的授權了,只是RISC-V指令集的授權費要比ARM低很多而起不收芯片版稅。所以RISC-V并不是一個完全免費的指令集。
還有,有本土IC設計公司老大提出了不同意見,他認為縱觀CPU技術發展歷史任何一款CPU的走熱或者存在都是因為以大量應用為基礎 ,對于RISC-V 目前至今還未看到有爆量的單一產品出現,另外,RISC-V雖然免費降低了IC開發者的難度,提升了最終系統開發者的難度,而一些商用CPU已經很好的開發基礎和生態,例如X86只要簡單的編程就可以開發應用,對此,RISC-V還沒有形成自己的成熟的開發環境,如果單純讓應用端的開發人員去買單花時間去學習開發這不符合商業規律。
他認為應用的碎片化不能代表參與者的碎片化,對于很多中小公司來說如果盲目跟進RISC-V則可能遭遇很大風險,他算了一筆賬一款芯片從定義到應用走量至少5年時間,如果一個20人的團隊要開發一款RISC-V應用則至少需要投入近一個億的資金,“誰愿意一次性給你一個億讓你來燒?”他表示。所以他認為RISC-V最終是一場開源鬧劇,不看好其未來。詳見《RISC-V是振興中國芯CPU的一劑良藥嗎?》
而現在隨著MIPS宣布開源,ARM Cortex-M0免費(1000顆以內免費),RISC-V的生存環境可能遭遇進一步擠壓,所以有業者戲稱:“RISC-V使命完成了。”大家咋么看?
-
微控制器
+關注
關注
48文章
7487瀏覽量
151045 -
cpu
+關注
關注
68文章
10824瀏覽量
211140 -
mips
+關注
關注
1文章
239瀏覽量
47718
原文標題:MIPS CPU架構宣布開源,RISC-V使命完成了?
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論