MIPS架構與ARM架構

http://www.cnblogs.com/xmphoenix/category/278941.html
這兩個都是小型設備的處理器架構。MIPS架構的處理器多用在網關、貓、機頂盒什麼的。ARM處理器用在便攜設備,智能手機。這兩個東西的市場幾乎很少重疊,因此也談不上對比。

普通用戶關注MIPS主要還是因爲我國所謂的”龍芯“。龍芯一開始抄襲MIPS,後來購買到了授權。倒也並非龍芯不想發展X86架構的桌面CPU市場或者ARM架構的移動設備市場,是因爲這兩家的授權太過於苛刻。X86的授權Intel已然不可能再授權。ARM是一家芯片設計公司,只能給出使用授權,不會同意讓龍芯自行設計。只有MIPS纔可行,MIPS的授權說白了就是隨便抄隨便改。

很多龍芯的支持者提出了MIPS在理論上有諸多的領先,但不要忘了ARM是一家商業公司,市場佔有率高,競爭意識也非常強。幾乎所有的智能手機都是ARM架構,就是最有力的證明。

1.流水線結構 pipeline 
    – MIPS 是最簡單的體系結構之一,所以使大學喜歡選擇 MIPS 體系結構來介紹計算體系結構課程。 
    – ARM has barrel shifter 
    shifter是兩面性的,一方面它可以提高數學邏輯運算速度,另一方面它也增加了硬件的複雜性。所以和可以完成同樣功能的adder/shift register相比,效率更高,但是也佔用更多的芯片面積。 
    – MIPS have “branch delay slot” and “load delay slot” 
    MIPS使用編譯器來解決上面的兩個問題。因爲MIPS最初的設計思想就是使用簡單的RISC硬體,然後靠編譯器及其他軟體技術,來達成RISC的完整概念。

2.指令結構 instruction 
    – MIPS have 32bit and 64bit architecture,but ARM only have 32bit architecture 
       ARM11 局部64位 
    – MIPS是開放式的架構,用戶可以在開發的內核中加入自己的指令, 
    – ARM has 4-bit condition code in every instruction 
    ARM 在這一點很像x86。MIPS在MIPS IV也加入”conditional move”指令,來提高pipeline的效率。 
    – ARM has pre- and post-increment addressing modes 
        auto-increment/decrement on load/store instructions 
    – 在節省代碼空間方面,MIPS16 很類似ARM Thumb

3.寄存器 register 
    -由於MIPS內核中有32個寄存器(Register),而ARM只有16個,這種結構設計上的先天優勢,決定了在同等性能表現下,MIPS的芯片面積和功耗會更小。 
    – ARM 有一組特殊用途寄存器cp0-cp15,可以使用MCR,MRC等指令控制;相對應的,MIPS也有cp0 0-30,使用mfc0,mtc0 指令控制。

    – Register banking in ARM. r8-r12 FIQ mode;r13:SP r14:LR 
       感覺不出banked register有什麼好處。

    – MIPS has a hard-wired-to-zero register ,but ARM not 
MIPS use register $0 for Zero

4.地址空間 address space 
    – MIPS 起始地址是0xbfc00000,會有4Mbyte的大小限制,但一般MIPS芯片都會採取一些方法解決這個問題。 
    ARM沒有這種問題。 
    MIPS24K 起始地址改到了0xbf000000,現在有16Mbyte的空間了。

    – MIPS don’t have to turn paging on to enable the cache. 
MIPS have the address space for both cache and un-cache 
        but ARM need enable/disable cache

5.功能 function 
    – Float point: MIPS64 has. 
        ARM’s support for FP is limited, and usually not included, and it is a 32 bit architecture 
    – ARM use JTAG,MIPS use EJTAG。Debug工具一般兩種都支持。使用起來感覺差不多。

6.性能 performance 
    – 具體性能比較,因爲差異性太大,所以很難分出誰好誰壞。從個人經驗來講 MIPS4k和ARM9基本上是同一個級別的,但ARM9性能似乎要比MIPS4K好。 
    同樣是32bit的MIPS24K性能上比MIPS4K有很大提升,也應該比ARM9要好些。 
    因爲沒有用過ARM11和MIPS34K的芯片,沒法比較,但感覺這兩個似乎是一個級別的。 
     Cortex-A8和 MIPS 74K都是最新的設計,應該性能也差不多。

7.應用 
    – 在1000MHz以上的應用,很難找到採用ARM架構的產品。 
MIPS架構用在200MHz或者是266MHz以下的應用比較少,而這恰恰是ARM的主攻市場。 
    – ARM 由於功耗小,普遍用在在手機/PDA等便攜式消費電子領域; MIPS 在住宅網關、線纜調制解調器、線纜機頂盒等,由於MIPS 多核的發展,現在大型網關設備也多用它。 
    – ARM 採用硬核授權;MIPS 採用軟核授權,用戶可以自己配置,做自己的產品。

8.未來發展 
    – ARM的下一代走向多內核結構,而MIPS公司的下一代核心則轉向硬件多線程功能(multithreading) 
MIPS 的multi-threading 很類似Intel 的 HyperThreading技術。從現在的發展來看,多內核佔上風。 
      2008.12.21: 其實今天看來,也不好妄自評論孰好孰壞,雖說, HT技術在intel上發展並不好(已經基本被dual core)代替,但是並不能推斷說MT在MIPS上就發展不好,畢竟mips的應用場合多是嵌入式領域,而MT的功耗小芯片面積小的優勢正好能發揮作用。 
     2008.12.29: MIPS也並不是只有multithreading, 其實現在很多的MIPS cpu的廠商都有multi-core的mips cpu在出,比如cavium, broadcom, infineon,國內的龍芯也有多核的產品。 
2009.6.11: MIPS的多核發展顯然比ARM要好。從 Cavium,RMI,公司的產品大量的應用便可見一斑。

9.總結 
    自己感覺ARM和MIPS在一開始的RISC的設計上有很多不同,但隨着技術的發展,各自揚長避短,好的技術大家都會使用。比如ARM11和MIPS R1000就使用了很多一樣的技術。感覺RISC做到了極至就都一樣了。

精簡指令集編輯risc一般指精簡指令集

本詞條缺少信息欄,補充相關內容使詞條更完整,還能快速升級,趕緊來編輯吧!

RISC的英文全稱是Reduced Instruction Set Computer,中文是精簡指令集計算機。特點是所有指令的格式都是一致的,所有指令的指令週期也是相同的,並且採用流水線技術。在中高檔服務器中採用RISC指令的CPU主要有Compaq(康柏,即新惠普)公司的Alpha、HP公司的PA-RISC、IBM公司的PowerPC、MIPS公司的MIPS和SUN公司的Sparc。

目錄

1簡介編輯

精簡指令集,是計算機中央處理器的一種設計模式,也被稱爲RISC(Reduced Instruction Set Computer的縮寫)。[1] 這種設計思路對指令數目和尋址方式都做了精簡,使其實現更容易,指令並行執行程度更好,編譯器的效率更高。常用的精簡指令集微處理器包括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、PowerArchitecture(包括PowerPC)和SPARC等。這種設計思路最早的產生緣自於有人發現,儘管傳統處理器設計了許多特性讓代碼編寫更加便捷,但這些複雜特性需要幾個指令週期才能實現,並且常常不被運行程序所採用。此外,處理器和主內存之間運行速度的差別也變得越來越大。在這些因素促使下,出現了一系列新技術,使處理器的指令得以流水執行,同時降低處理器訪問內存的次數。早期,這種指令集的特點是指令數目少,每條指令都採用標準字長、執行時間短、中央處理器的實現細節對於機器級程序是可見的。

2發展背景編輯

在早期的計算機業中,編譯器技術尚未出現。程序是以機器語言或彙編語言完成的。爲了便於編寫程序,計算機架構師造出越來越複雜的指令,可以高階程序語言直接陳述高階功能。當時的看法是硬件比編譯器更易設計,所以複雜的東西就加進硬件了。

加速複雜化的其它因素是缺乏大內存。內存小的環境中,具有極高訊息密度的程序較有利。當內存中的每一字節如此珍貴,例如儲存某個完整系統只需幾千字節,它使產業移向高度編碼的指令、長度不等的指令、執行多個操作的指令,和執行數據傳輸與計算的指令。當時指令封包問題遠比易解的指令重要。

那時使用磁性技術,內存不僅小,而且很慢。這是維持極高訊息密度的其它原因。藉着具有極高訊息密度封包,當必須存取慢速資源時可以降低頻率。

CPU只有少數緩存器的兩個原因︰

CPU內部緩存器遠貴於外部內存。以當時的集成電路技術水準,大緩存器集對芯片或電路板區域只是多餘的浪費。

具有大數量的緩存器將需要大數量的指令位(使用珍貴的RAM)以做爲緩存器指定器。

基於上述原因,CPU設計師試着令指令儘可能做更多的工作。這導致一個指令將做全部的工作︰讀入兩個數字,相加,並且直接在內存儲存計算結果。其它版本將從內存讀取兩個數字,但計算結果儲存在緩存器。另一個版本將從內存和緩存器各讀一個數字,並再次存入內存。以此類推。這種處理器設計原理最終成爲複雜指令集(CISC)。

當時的目標是給所有的指令提供所有的尋址模式,此稱爲「正交性」。這在 CPU 上導致了一些複雜性,但就理論上每個可能的命令都可以單獨的調試(調用,be tuned),這樣使得程序員能夠比用簡單的命令來得更快速。

這類的設計最終可以由光譜的兩端來表達, 6502 在光譜的一端,而 VAX 在光譜的另一端。單價25美元的 1MHz 6502 芯片只有單一的通用緩存器, 但它的極精簡的單週期內存界面(single-cycle memory interface)讓一個位的操作效能和更高頻率設計幾乎相同,例如 4MHz Zilog Z80 在使用相同慢速的記憶芯片下(大約近似 300ns)。

發展分歧

精簡指令集

計算機指令系統的優化發展過程中,出現過兩個截然不同的優化方向:CISC技術和RISC技術。CISC是指複雜指令系統計算機(Complex Instruction Set Computer);RISC是指精減指令系統計算機(Reduced Instruction Set Computer)。這裏的計算機指令系統指的是計算機的最低層的機器指令,也就是CPU能夠直接識別的指令。隨着計算機系統的複雜,要求計算機指令系統的構造能使計算機的整體性能更快更穩定。最初,人們採用的優化方法是通過設置一些功能複雜的指令,把一些原來由軟件實現的、常用的功能改用硬件的指令系統實現,以此來提高計算機的執行速度,這種計算機系統就被稱爲複雜指令系統計算機,即Complex Instruction Set Computer,簡稱CISC。另一種優化方法是在20世紀80年代才發展起來的,其基本思想是儘量簡化計算機指令功能,只保留那些功能簡單、能在一個節拍內執行完成的指令,而把較複雜的功能用一段子程序來實現,這種計算機系統就被稱爲精簡指令系統計算機.即Reduced Instruction Set Computer,簡稱RISC。RISC技術的精華就是通過簡化計算機指令功能,使指令的平均執行週期減少,從而提高計算機的工作主頻,同時大量使用通用寄存器來提高子程序執行的速度

提出原由

IBM公司設在紐約Yorktown的JhomasI.Wason研究中心於1975年組織力量研究指令系統的合理性問題.因爲當時已感到,日趨龐雜的指令系統不但不易實現.而且還可能降低系統性能.1979年以帕特遜教授爲首的一批科學家也開始在美國加州大學伯克萊分校開展這一研究.結果表明,CISC存在許多缺點.首先.在這種計算機中.各種指令的使用率相差懸殊:一個典型程序的運算過程所使用的80%指令.只佔一個處理器指令系統的20%.事實上最頻繁使用的指令是取、存和加這些最簡單的指令.這樣-來,長期致力於複雜指令系統的設計,實際上是在設計一種難得在實踐中用得上的指令系統的處理器.同時.複雜的指令系統必然帶來結構的複雜性.這不但增加了設計的時間與成本還容易造成設計失誤.此外.儘管VLSI技術現在已達到很高的水平,但也很難把CISC的全部硬件做在一個芯片上,這也妨礙單片計算機的發展.在CISC中,許多複雜指令需要極複雜的操作,這類指令多數是某種高級語言的直接翻版,因而通用性差.由於採用二級的微碼執行方式,它也降低那些被頻繁調用的簡單指令系統的運行速度.因而.針對CISC的這些弊病.帕特遜等人提出了精簡指令的設想即指令系統應當只包含那些使用頻率很高的少量指令.並提供一些必要的指令以支持操作系統和高級語言.按照這個原則發展而成的計算機被稱爲精簡指令集計算機(ReducedInstructionSetComputer-RISC)結構.簡稱RISC.

3優勢編輯

RISC和CISC是設計製造微處理器的兩種典型技術,雖然它們都是試圖

精簡指令集

體系結構、操作運行、軟件硬件、編譯時間和運行時間等諸多因素中做出某種平衡,以求達到高效的目的,但採用的方法不同,因此,在很多方面差異很大,它們主要有:

(1)指令系統:RISC設計者把主要精力放在那些經常使用的指令上,儘量使它們具有簡單高效的特色。對不常用的功能,常通過組合指令來完成。因此,在RISC機器上實現特殊功能時,效率可能較低。但可以利用流水技術和超標量技術加以改進和彌補。而CISC計算機的指令系統比較豐富,有專用指令來完成特定的功能。因此,處理特殊任務效率較高。

(2)存儲器操作:RISC對存儲器操作有限制,使控制簡單化;而CISC機器的存儲器操作指令多,操作直接。

(3)程序:RISC彙編語言程序一般需要較大的內存空間,實現特殊功能時程序複雜,不易設計;而CISC彙編語言程序編程相對簡單,科學計算及複雜操作的程序設計相對容易,效率較高。

精簡指令集

(4)中斷:RISC機器在一條指令執行的適當地方可以響應中斷,但是相比CISC指令執行的時間短,所以中斷響應及時;而CISC機器是在一條指令執行結束後響應中斷。

(5)CPU:RISCCPU包含有較少的單元電路,因而面積小、功耗低;而CISCCPU包含有豐富的電路單元,因而功能強、面積大、功耗大。

(6)設計週期:RISC微處理器結構簡單,佈局緊湊,設計週期短,且易於採用最新技術;CISC微處理器結構複雜,設計週期長。

(7)用戶使用:RISC微處理器結構簡單,指令規整,性能容易把握,易學易用;CISC微處理器結構複雜,功能強大,實現特殊功能容易。

(8)應用範圍:由於RISC指令系統的確定與特定的應用領域有關,故RISC機器更適合於專用機;而CISC機器則更適合於通用機。

4特徵編輯

32位精簡指令集架構

統一指令編碼(例如,所有指令中的op-code永遠位於同樣的位位置、等長指令),可快速解譯︰

泛用的緩存器,所有緩存器可用於所有內容,以及編譯器設計的單純化(不過緩存器中區分了整數和浮點數);

單純的尋址模式(複雜尋址模式以簡單計算指令序列取代);

硬件中支持少數數據型別(例如,一些CISC計算機中存有處理字節字符串的指令。這在RISC計算機中不太可能出現)。

RISC設計上同時也有哈佛內存模塊特色,凡指令流和數據流在概念上分開;這意味着更改代碼存在的內存地址對處理器執行過的指令沒有影響(因爲CPU有着獨立的指令和數據緩存),至少在特殊的同步指令發出前。在另一面,這允許指令緩存和數據緩存同時被訪問,通常能改進運行效率。

許多早期的RISC設計同樣共享着不好的副作用——轉移延時槽,轉移延時槽是指一個跳轉或轉移指令之後的指令空間。無論轉移是否發生,空間中的指令將被執行(或者說是轉移效果被延遲)。這些指令讓CPU的算術和邏輯單元(ALU)繁忙比通常執行轉移所需更多的時間。現在轉移延時槽被認爲是實現特定RISC設計的副作用,現代的RISC設計通常避免了這個問題(如PowerPC,最近的SPARC版本,MIPS)。

5結構特點編輯

精簡指令集

RISC是簡化指令集計算機的簡略縮寫,其風格是強調計算機結構的簡單性和高效性。RISC設計是從足夠的不可缺少的指令集開始的。它的速度比那些具有傳統複雜指令組計算機結構的機器快得多,而且RISC機由於其較簡潔的設計,較易使用,故具有更短的研製開發週期。RISC結構一般具有如下的一些特點:

①單週期的執行:它統一用單週期指令。從根本上克服了CISC指令週期數有長有短,造成運行中偶發性不確定,致使運行失常的問題。

②採用高效的流水線操作:使指令在流水線中並行地操作,從而提高處理數據和指令的速度。

③無微代碼的硬連線控制:微代碼的使用會增加複雜性和每條指令的執行週期。

指令格式的規格化和簡單化:爲與流水線結構相適應且提高流水線的效率,指令的格式必須趨於簡單和固定的規式。比如指令採用16位或32位的固定的長度,並且指令中的操作碼字段、操作數字段都儘可能具有統一的格式。此外,儘量減少尋址方式,從而使硬件邏輯部件簡化且縮短譯碼時間,同時也提高了機器執行效率和可靠性。

⑤採用面向寄存器堆的指令:RISC結構採用大量的寄存器——寄存器操作指令,使指令系統更爲精簡。控制部件更爲簡化,指令執行速度大大提高。由於VLSI技術的迅速發展,使得在一個芯片上做大量的寄存器成爲可能。這也促成了RISC結構的實現。

⑥採用裝入/存儲指令結構:在CISC結構中。大量設置存儲器——存儲器操作指令,頻繁地訪問內存,將會使執行速度降低。RISC結構的指令系統中,只有裝入/存儲指令可以訪問內存,而其它指令均在寄存器之間對數據進行處理。用裝入指令從內存中將數據取出,送到寄存器;在寄存器之間對數據進行快速處理,並將它暫存在那裏,以便再有需要時。不必再次訪問內存。在適當的時候,使用一條存儲指令再將這個數據送回內存。採用這種方法可以提高指令執行的速度。

⑦注重編譯的優化,力求有效地支撐高級語言程序。

通常使用的單片機中,MCS一51系列的單片機屬於CISC的體系結構;AVR系列的單片機則屬於RISC的體系結構。

6發展前景編輯

鑑於RISC的設計特點以及其無可比擬的優點,RISC體系結構處理器的發展方向:

擴展指令集

是增加處理器的並行性

二是擴展支持可伸縮並行計算機系統的功能;

三是提高工藝水平。最終RISC與DSP在嵌入式應用中完美融合,密不可分。

RISC微處理器不僅精簡了指令系統,採用超標量和超流水線結構;它們的指令數目只有幾十條,卻大大增強了並行處理能力。如:1987年SunMicrosystem公司推出的SPARC芯片就是一種超標量結構的RISC處理器。而SGI公司推出的MIPS處理器則採用超流水線結構,這些RISC處理器在構建並行精簡指令系統多處理機中起着核心的作用。RISC處理器是當今UNIX領域64位多處理機的主流芯片。

性能特點

性能特點一:由於指令集簡化後,流水線以及常用指令均可用硬件執行;

性能特點二:採用大量的寄存器,使大部分指令操作都在寄存器之間進行,提高了處理速度;

性能特點三:採用緩存主機—外存三級存儲結構,使取數與存數指令分開執行,使處理器可以完成儘可能多的工作,且不因從存儲器存取信息而放慢處理速度。

應用特點

由於RISC處理器指令簡單、採用硬佈線控制邏輯、處理能力強、速度快,世界上絕大部分UNIX工作站和服務器廠商均採用RISC芯片作CPU用。如原DEC的Alpha21364、IBM的PowerPCG4、HP的PA—8900、SGI的R12000A和SUNMicrosystem公司的UltraSPARC║。

運行特點

RISC芯片的工作頻率一般在400MHZ數量級。時鐘頻率低,功率消耗少,溫升也少,機器不易發生故障和老化,提高了系統的可靠性。單一指令週期容納多部並行操作。在RISC微處理器發展過程中。曾產生了超長指令字(VLIW)微處理器,它使用非常長的指令組合,把許多條指令連在一起,以能並行執行。VLIW處理器的基本模型是標量代碼的執行模型,使每個機器週期內有多個操作。有些RISC處理器中也採用少數VLIW指令來提高處理速度。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章