當今處理器一共有三個最強大的架構,其中之一是以intel和AMD為代表的x86架構,另外一個是手機,平板處理器所使用的ARM架構,最后一個便是我國龍芯處理器所選擇的MIPS架構。這三大處理器架構中,x86和ARM是商業化進程最為優秀的兩大架構。也正是因為這兩大架構的商業化進程太為出色,所以我國的龍芯處理器才被很多人批判為最嚴重的選擇性失誤。
但是從處理器的設計和能耗比來說,如果要說最經典的RISC處理器,那么非MIPS莫屬,就連它的競爭對手,也不得不承認它的優雅,它被作為處理器教科書的典范,很多其他的處理器,都能看到它的身影。
為什么史上最強IC公司Intel和最早的RISC公司收到ARM的步步蠶食?我們今天來了解一下,歡迎大家在“評論”發表自己觀點。
隨著ARM在智能手機市場獨占鰲頭,如同兩把尖刀刺入intel和MIPS的腹地。
眾所周知,基于MIPS的MCU的應用廣泛多元,包括工業、辦公自動化、汽車、消費電子系統和先進技術,如無線通信等。此外,我們看到目前可穿戴和超便攜市場的需求不斷增長,瞄準這一領域的公司迫切希望硅IP供應商如Imagination等提供高效的解決方案,以便可以輕易集成進那些全功能產品中。
MIPS的前世今生
MIPS是世界上很流行的一種RISC處理器。MIPS的意思是“無內部互鎖流水級的微處理
器”(Microprocessor without interlocked piped stages),其機制是盡量利用軟件辦法避免流水線中的數據相關問題。它最早是在80年代初期由斯坦福(Stanford)大學Hennessy教授領 導的研究小組研制出來的。MIPS公司的R系列就是在此基礎上開發的RISC工業產品的微處理器。這些系列產品為很多計算機公司采用構成各種工作站和計算 機系統。
MIPS技術公司是美國著名的芯片設計公司,它采用精簡指令系統計算結構(RISC)來設計芯片。和英特爾采用的復雜指令系統計算結構(CISC)相比, RISC具有設計更簡單、設計周期更短等優點,并可以應用更多先進的技術,開發更快的下一代處理器。MIPS是出現最早的商業RISC架構芯片之一,新的 架構集成了所有原來MIPS指令集,并增加了許多更強大的功能。
1986年推出R2000處理器,1988年推出R3000處理器,1991年推出第一款64位商用微處理器R4000。之后,又陸續推出R8000(于 1994年)、R10000(于1996年)和R12000(于1997年)等型號。1999年,MIPS公司發布MIPS 32和MIPS 64架構標準。2000年,MIPS公司發布了針對MIPS 32 4Kc的新版本以及未來64位MIPS 64 20Kc處理器內核。
在MIPS芯片的發展過程中,SGI公司在1992年收購了MIPS計算機公司,1998年,MIPS公司又脫離了SGI,成為MIPS技術公司; MIPS32 4KcTM 處理器是采用MIPS技術特定為片上系統(System-On-a-Chip)而設計的高性能、低電壓 32位MIPS RISC 內核。采用MIPS32TM體系結構,并且具有R4000存儲器管理單元(MMU)以及擴展的優先級模式,使得這個處理器與目前嵌入式領域廣泛應用的 R3000和R4000系列(32位)微處理器完全兼容.
新的 64 位 MIPS 處理器是RM9000x2,從“x2”這個標記判斷,它包含了不是一個而是兩個均具有集成二級高速緩存的64位處理器。RM9000x2 主要針對網絡基礎設施市場,具有集成的 DDR 內存控制器和超高速的 HyperTransport I/O 鏈接。處理器、內存和 I/O均通過分組交叉連接起來的,可實現高性能、全面高速緩存的統一芯片系統。除通過并行處理提高系統性能外,RM9000x2 還通過將超標量與超流水線技術相結合來提高單個處理器的性能。
64位處理器MIPS 64 20Kc的浮點能力強,可以組成不同的系統,從一個處理器的Octane工作站到64個處理器的Origin 2000服務器;這種CPU更適合圖形工作站使用。MIPS最新的R12000芯片已經在SGI的服務器中得到應用,目前其主頻最大可達400MHz。
MIPS處理器是八十年代中期RISC CPU設計的一大熱點。MIPS是賣的最好的RISC CPU,可以從任何地方,如Sony, Nintendo的游戲機,Cisco的路由器和SGI超級計算機,看見MIPS產品在銷售。目前隨著RISC體系結構遭到x86芯片的競爭,MIPS有 可能是起初RISC CPU設計中唯一的一個在本世紀盈利的。和英特爾相比,MIPS的授權費用比較低,也就為除英特爾外的大多數芯片廠商所采用。
MIPS的系統結構及設計理念比較先進,其指令系統經過通用處理器指令體系MIPS I、MIPS II、MIPS III、MIPS IV到MIPS V,嵌入式指令體系MIPS16、MIPS32到MIPS64的發展已經十分成熟。在設計理念上MIPS強調軟硬件協同提高性能,同時簡化硬件設計。
中國龍芯2和前代產品采用的都是64位MIPS指令架構,它與大家平常所知道的X86指令架構互不兼容,MIPS指令架構由MIPS公司所創,屬于 RISC體系。過去,MIPS架構的產品多見于工作站領域,索尼PS2游戲機所用的“Emotion Engine”也采用MIPS指令,這些MIPS處理器的性能都非常強勁,而龍芯2也屬于這個陣營,在軟件方面與上述產品完全兼容。
MIPS 技術公司則是一家設計制造高性能、高檔次及嵌入式32位和64位處理器的廠商。在通用方面,MIPS R系列微處理器用于構建SGI的高性能工作站、服務器和超級計算機系統。在嵌入式方面,MIPS K系列微處理器是目前僅次于ARM的用得最多的處理器之一(1999年以前MIPS是世界上用得最多的處理器),其應用領域覆蓋游戲機、路由器、激光打印 機、掌上電腦等各個方面。
由于服務器RISC處理器市場的激烈競爭結果導致HP 公司放棄它的PA-RISC和“私生子”Alpha 兩種類型服務器處理器,而“Alpha技術”則被Intel和AMD吸收應用到他們自身的處理器中; MIPS處理器應用范圍則較廣,對于作為服務器RISC處理器來說,主要是應用于專門的圖形工作站/服務器上;相對來說,應用面較專業,因而競爭較少。就 目前的服務器RISC處理器來說,主要是IBM 的POWER和SUN 的UltraSPARC 兩大處理器之間的競爭;相對而言,IBM在這場RISC處理器競爭中是個大贏家。
MIPS VS ARM
以RISC技術為基礎,再加上MIPS架構中的可擴展硬軟件設計,使得MIPS的解決方案比ARM的同類解決方案性能更高、功耗更低且面積更小。MIPS科技原來主要瞄準高性能工作站與服務器,而ARM最初針對低端移動系統開發基本內核。MIPS充分利用它在高性能設計方面的經驗,向主流嵌入式系統市場轉型。ARM則繼續沿用其原有性能有限的架構,相比MIPS,它處于不利地位。
MIPS32 4K?處理器內核系列包括MIPS32 M4K?內核,其應用程序執行速度超過同類ARM Cortex?-M系列內核。這一優勢部分可歸功于更高效的MIPS指令集架構和優化軟件工具,但主要原因還是在于MIPS架構具有眾多專為更高的性能級和應用效率而設計的出色特性,其中包括一般是在微控制器設計中實現的加速功能。例如:
? MIPS 內核包含32個GPR(通用寄存器),而ARM內核只有16個GPR。這意味著寄存器溢出更少,從而性能更高。
? MIPS內核包含有影子寄存器組,而ARM內核沒有。使用映像寄存器可加速中斷處理保存/恢復功能,減少上下文切換(context switching)和中斷延遲中所需要的周期。
? MIPS架構主要執行單一操作指令,而ARM指令在寫入GPR之前執行多個操作(如移位操作、算術操作、條件校驗位等等),故MIPS更容易達到更高的時鐘頻率。
? MIPS架構采用比ARM更簡單的存儲器尋址模式工作,故更容易達到更高的時鐘工作頻率。
? MIPS架構的預測執行較少,這大大降低了其邏輯復雜性,并使MIPS內核能夠達到更高的頻率。
? M4K與M14K具有5級流水線結構,故無需預測分支方向。而ARM內核采用了復雜的分支預測和分支推測邏輯。
? MIPS架構實現了帶延遲的分支,而ARM結構不這樣;這意味著,利用MIPS,在短流水設計時可獲得更高效率。
? MIPS同時提供32位和64位架構,MIPS64架構具有后向兼容性和更高的性能。ARM只有32位架構,而且并非所有版本都后向兼容。
M4K 執行流水線
M4K內核的性能可達1.5 DMIPS/MHz,而根據ARM網站公布的數據,Cortex-M3的性能只有1.25 DMIPS/MHz,比前者低約20% (ARM Cortex-M0的性能甚至更低,僅0.9 DMIPS/MHz,比MIPS32 M4K內核低40%;Cortex-M0 還存在眾多其它局限性,我們接下來會討論到)。換言之,Cortex-M3 需要使用高20%的時鐘頻率才能達到M4K內核的性能,但隨之產生更多的功耗。
類似的,如第4節的“性能基準”所述,在采用CoreMark 基準時,M4K內核可達到2.297 CM/MHz的性能,比同類的基于Cortex-M3的解決方案高20-30%。MIPS已把業內越來越獲認可的CoreMark基準視為比Dhrystone MIPS更精確的CPU性能測量標準。
M4K執行單元采用5級流水線微架構,如圖2所示,而Cortex-M3內核的執行則基于3級流水線架構。因此M4K內核能夠采用更高的最大時鐘頻率,每秒鐘處理更多的指令,從而獲得比Cortex-M3更高的性能和執行效率。
在M4K內核中,所有ALU和移位操作都在單周期內完成。旁路邏輯(Bypass logic)包含在流水線中,在所有流水線級完成之前提供快速數據存取以供下一條指令所用。由于執行特定任務的周期縮短,性能得以提高。
MIPS架構是龍芯發展的唯一選擇
在自MIPS中國看來,龍芯處理器的架構選擇并沒有錯誤,相反的如果龍芯要想得到更好的發展,選擇MIPS才是最為正確的道路。這又是為何呢?這還要從這三大架構的擁有者談起。
x86架構的擁有者intel可以算作是技術合作上最摳門兒的一位,在推出x86架構之后,intel就只將這一架構授權給過AMD和VIA等幾個芯片公司。而在VIA退出x86架構處理器競爭之后,intel便不再給任何公司x86架構授權。所以從x86架構上入手,龍芯處理器顯然是行不通的。intel的x86架構行不通,那么ARM架構是否就能行得通呢?答案當然也是否定的。
x86被intel獨占幾十年,奉行的是肥水不流外人田的政策
ARM公司是一家非常優秀的芯片設計公司,但自身并不生產處理器,而是將自身的設計licensing賣給需要處理器的公司,而后交給他們生產或者是找人代工。也許有人要問了,既然ARM向外賣出架構設計,那么為何龍芯不去選擇ARM架構呢?其實不然,ARM之所以能夠發展成為一家非常成功的商業性公司,靠的就是芯片的架構設計,倘若架構設計被別人奪走了,那么自己就丟掉了賴以生存的飯碗。所以ARM雖然對外進行licensing授權,卻不允許購買者進行任何對ARM架構有更改的設計。倘若個更改了設計,那么這便違反了合作協定。ARM便有權撤回licensing授權。我國的龍芯要是選擇了ARM架構的話,那么基本上也就被捆住了腳步,無法發展出屬于自己的高性能處理器了。
自身雖然強大,但因考慮到市場發展的問題ARM也對外妥協過。目前高通,蘋果和NVIDIA這三家公司便是ARM體系中較為特殊的幾個。因為這三家公司在芯片設計領域的特殊地位,ARM為了能夠拉攏他們站立在自己的陣營中,對這三家公司開出了特別通行證。在其他芯片公司只能使用licensing去生產芯片的時候,高通,蘋果和NVIDIA卻能夠自行設計基于ARM架構的處理器。也正是拉攏到了高通,蘋果和NVIDIA,才使得ARM擁有了更多的支持者。但即便這樣,我們也不得不佩服ARM的老狐貍作風,在給出架構授權后,ARM依然會通過升級下一代架構為由讓高通,蘋果和NVIDIA再掏一回錢購買架構授權。這樣ARM就可以再賺一把。相信看到這里您應該了解到龍芯不選擇ARM的原因了。
那么是什么本領讓MIPS最終成為了我國龍芯處理器的設計架構呢?答案非常簡單,那就是架構授權。也許有人又問了,ARM不也是給授權嗎?那為什么還選MIPS呢?面對這樣的問題,MIPS和ARM雖然都是對外進行架構授權的公司,但意義完全不同。ARM對外出售的是設計方案授權(licensing),與ARM的商業化相比,MIPS倒像是學院派的公司。MIPS的架構授權,并不限制任何對MIPS架構的更改。換句話說,就是MIPS公司給授權者一張白紙,而白紙上僅僅寫著一行字,MIPS公司同意你設計生產MIPS架構處理器,至于你設計成什么樣,性能有多高,經過多少代更改,MIPS一概不管,只要你不把架構徹底改變就行了。與ARM相比,MIPS是一個完全開放的架構,對龍芯未來的發展沒有任何的限制,這與intel給AMD x86架構授權,而不是給設計圖紙的道理是完全一樣的。在加上MIPS本身經過幾十年的發展,已經擁有了眾多的應用軟件,綜合考慮來看,MIPS是最為適合龍芯處理器發展的架構選擇。
MIPS的意思是“無內部互鎖流水級的微處理器”(Microprocessor without interlocked piped stages),其機制是盡量利用軟件辦法避免流水線中的數據相關問題。
互鎖的發生主要有以下幾種情況,
一是由于流水線中的2個處理模塊同時使用同一資源產生冒險,此時等待資源的流水級以及前面的流水級都要等待;
二是由于在某一流水級的操作需要多個時鐘周期,整個流水線上的各個流水級等待多周期操作的完成。當互鎖發生后,互鎖處理模塊暫停流水線直到互鎖解決。
如果從不同流水級同時發出暫停流水線的請求,也要判斷暫停流水線請求的優先級。
MIPS的流水線的特點:
一條經典的5段流水線
每一個周期作為一個流水段;
在各段之間加上鎖存器(流水寄存器)。
MIPS的意思是“無內部互鎖流水級的微處理器”(Microprocessor without interlocked piped stages),其機制是盡量利用軟件辦法避免流水線中的數據相關問題。
1、流水寄存器保證了流水線中不同段的指令不會相互影響。每個時鐘周期結束之后,該段的所有執行結果都保存在流水段寄存器中,在下一個時鐘周期開始作為下一個段的輸入。
需要確定處理器在每一個時鐘周期都進行什么樣的動作。
要保證在同一個周期沒有兩條指令使用相同的數據通路資源。
可以采用流水線方式下簡化的RISC數據通路圖來表示。
上圖藍色小方框表示寄存器。
MIPS流水線方式實現時,應解決好以下幾個問題:
1、要保證不會在同一時鐘周期要求同一個功能段做兩件不同的工作。
例如:不能要求ALU同時做有效地址計算和算術運算。
2、避免IF段的訪存(取指令)與MEM段的訪存(讀/寫數據)發生沖突。
可以采用分離的指令存儲器和數據存儲器;
一般采用分離的指令Cache和數據Cache。
ID段和WB段都要訪問同一寄存器文件.
如何解決對同一寄存器的訪問沖突?
把寫操作安排在時鐘周期的前半拍完成,把讀操作安排在后半拍完成。
上圖中,邊框畫實線表示操作,畫虛線表示不做任何操作。
流水寄存器的作用
將各段的工作隔開,使得它們不會互相干擾。
保存相應段的處理結果。
流水線寄存器在兩個相鄰的流水段之間既傳遞數據也傳遞控制信息。后面流水段需要的數據,必須能從一個流水寄存器復制到下一個流水寄存器,直到不再需要為止。
所以流水寄存器與非流水通路中使用的臨時寄存器不一樣。
解決數據沖突的問題
讓一條指令從ID段到EX段的操作稱為發射指令。
對于MIPS定點流水線,所有的數據沖突均可以在ID段檢測到。
如果存在數據沖突,就在相應的指令流出ID段之前(也就是發射前)將之暫停。完成該工作的硬件稱為流水線的互鎖機制。
采用數據定向的思想避免數據相關
兩種動態調度算法
記分牌算法和Tomasulo算法是兩種比較典型的動態調度算法。
盡量減少數據沖突造成的流水線性能影響。
-
intel
+關注
關注
19文章
3490瀏覽量
187522 -
mips
+關注
關注
1文章
239瀏覽量
48251 -
龍芯處理器
+關注
關注
1文章
25瀏覽量
11250
發布評論請先 登錄
相關推薦
盛顯科技:拼接處理器連接大屏方法是什么?

盛顯科技:拼接處理器是什么設備類型
盛顯科技:異形拼接處理器的應用領域有哪些?
盛顯科技:異形拼接處理器和傳統拼接處理器有什么區別?
對稱多處理器和非對稱多處理器的區別
簡述微處理器的指令集架構
微處理器與CPU的關系
盛顯科技:投影融合處理器如何實現圖像的處理和融合?

盛顯科技:在拼接處理器上配置混合矩陣的步驟是什么?
ARM處理器和CPU有什么區別
ARM處理器和CISC處理器的區別
微處理器的指令集架構介紹
盛顯科技:投影融合處理器該怎么調試?

評論