1. 程式人生 > >解讀x86、ARM和MIPS三種主流晶片架構

解讀x86、ARM和MIPS三種主流晶片架構

指令集可分為複雜指令集(CISC)和精簡指令集(RISC)兩部分,代表架構分別是

  RISC是為了提高處理器執行速度而設計的晶片體系,它的關鍵技術在於流水線操作即在一個時鐘週期裡完成多條指令。相較複雜指令集CISC而言,以RISC為架構體系的指令集的指令格式統一、種類少、定址方式少,簡單的指令意味著相應硬體線路可以儘量做到最佳化,從而提高執行速率。因為指令集的精簡,所以許多工作必須組合簡單的指令,而針對複雜組合的工作便需要由編譯程式來執行。而CISC體系的指令集因為硬體所提供的指令集較多,所以許多工作都能夠以一個或是數個指令來代替,編譯的工作因而減少了許多。

  ARM指令集架構的主要特點:一是體積小、低功耗、低成本、高效能;二是大量使用暫存器且大多數資料操作都在暫存器中完成,指令執行速度更快;三是定址方式靈活簡單,執行效率高;四是指令長度固定,可通過多流水線方式提高處理效率。

  是高效精簡指令集計算機體系結構中的一種,與當前商業化最成功的ARM架構相比,的優勢主要有五點:一是早於ARM支援64bit指令和操作,截至目前MIPS已面向高中低端市場先後釋出了P5600系列、I6400系列和M5100系列64位處理器架構,其中P5600、I6400單核效能分別達到3.5和3.0DMIPS/MHz,即單核每秒可處理350萬條和300萬條指令,超過ARM Cortex-A53 230萬條/秒的處理速度;二是MIPS有專門的除法器,可以執行除法指令;三是MIPS的核心暫存器比ARM多一倍,在同樣的效能下MIPS的功耗會比ARM更低,同樣功耗下效能比ARM更高;四是MIPS指令比ARM稍微多一些,執行部分運算更為靈活;五是MIPS在架構授權方面更為開放,允許授權商自行更改設計,如更多核的設計。

  同時,MIPS架構也存在一些不足之處:一是MIPS的記憶體地址起始有問題,這導致了MIPS在記憶體和cache的支援方面都有限制,即MIPS單核心無法面對高容量記憶體配置;二是MIPS技術演進方向是並行執行緒,類似INTEL的超執行緒,而ARM未來的發展方向是物理多核,從目前核心移動裝置的發展趨勢來看物理多核佔據了上風;三是MIPS雖然結構更加簡單,但是到現在還是順序單/雙發射,ARM則已經進化到了亂序雙/三發射,執行指令流水線週期遠不如ARM高效;四是MIPS學院派發展風格導致其商業程序遠遠滯後於ARM,當ARM與高通、蘋果、NVIDIA等晶片設計公司合作大舉進攻移動終端的時候,MIPS還停留在高清盒子、印表機等小眾市場產品中;五是MIPS自身系統的軟體平臺也較為落後,應用軟體與ARM體系相比要少很多。

   CISC是一種為了便於程式設計和提高記憶體訪問效率的晶片設計體系,包括兩大主要特點:一是使用微程式碼,指令集可以直接在微程式碼記憶體裡執行,新設計的處理器,只需增加較少的電晶體就可以執行同樣的指令集,也可以很快地編寫新的指令集程式;二是擁有龐大的指令集,x86擁有包括雙運算元格式、暫存器到暫存器、暫存器到記憶體以及記憶體到暫存器的多種指令型別,為實現複雜操作,微處理器除向程式設計師提供類似各種暫存器和機器指令功能外,還通過存於只讀儲存器(ROM)中的微程式來實現極強的功能,微處理器在分析完每一條指令之後執行一系列初級指令運算來完成所需的功能。

  x86指令體系的優勢體現在能夠有效縮短新指令的微程式碼設計時間,允許實現CISC體系機器的向上相容,新的系統可以使用一個包含早期系統的指令集合。另外微程式指令的格式與高階語言相匹配,因而編譯器並不一定要重新編寫。相較ARM RISC指令體系,其缺點主要包括四個方面。

  第一,通用暫存器規模小,x86指令集只有8個通用暫存器,CPU大多數時間是在訪問儲存器中的資料,影響整個系統的執行速度。而RISC系統往往具有非常多的通用暫存器,並採用了重疊暫存器視窗和暫存器堆等技術,使暫存器資源得到充分的利用。

  第二,解碼器影響效能表現,解碼器的作用是把長度不定的x86指令轉換為長度固定的類似於RISC的指令,並交給RISC核心。解碼分為硬體解碼和微解碼,對於簡單的x86指令只要硬體解碼即可,速度較快,而遇到複雜的x86指令則需要進行微解碼,並把它分成若干條簡單指令,速度較慢且很複雜。

  第三,x86指令集定址範圍小,約束使用者需要。

  第四,x86 CISC單個指令長度不同,運算能力強大,不過相對來說結構複雜,很難將CISC全部硬體整合在一顆晶片上。而ARM RISC單個指令長度固定,只包含使用頻率最高的少量指令,效能一般但結構簡單,執行效率穩定。