解讀x86、ARM和MIPS三種主流芯片架構
指令集可分為復雜指令集(CISC)和精簡指令集(RISC)兩部分,代表架構分別是x86、ARM和MIPS。
本文引用地址:http://m.butianyuan.cn/article/268232.htmARMRISC是為了提高處理器運行速度而設計的芯片體系,它的關鍵技術在于流水線操作即在一個時鐘周期里完成多條指令。相較復雜指令集CISC而言,以RISC為架構體系的ARM指令集的指令格式統(tǒng)一、種類少、尋址方式少,簡單的指令意味著相應硬件線路可以盡量做到最佳化,從而提高執(zhí)行速率。因為指令集的精簡,所以許多工作必須組合簡單的指令,而針對復雜組合的工作便需要由編譯程序來執(zhí)行。而CISC體系的x86指令集因為硬件所提供的指令集較多,所以許多工作都能夠以一個或是數個指令來代替,編譯的工作因而減少了許多。
ARM指令集架構的主要特點:一是體積小、低功耗、低成本、高性能;二是大量使用寄存器且大多數數據操作都在寄存器中完成,指令執(zhí)行速度更快;三是尋址方式靈活簡單,執(zhí)行效率高;四是指令長度固定,可通過多流水線方式提高處理效率。
MIPS是高效精簡指令集計算機體系結構中的一種,與當前商業(yè)化最成功的ARM架構相比,MIPS的優(yōu)勢主要有五點:一是早于ARM支持64bit指令和操作,截至目前MIPS已面向高中低端市場先后發(fā)布了P5600系列、I6400系列和M5100系列64位處理器架構,其中P5600、I6400單核性能分別達到3.5和3.0DMIPS/MHz,即單核每秒可處理350萬條和300萬條指令,超過ARM Cortex-A53 230萬條/秒的處理速度;二是MIPS有專門的除法器,可以執(zhí)行除法指令;三是MIPS的內核寄存器比ARM多一倍,在同樣的性能下MIPS的功耗會比ARM更低,同樣功耗下性能比ARM更高;四是MIPS指令比ARM稍微多一些,執(zhí)行部分運算更為靈活;五是MIPS在架構授權方面更為開放,允許授權商自行更改設計,如更多核的設計。
同時,MIPS架構也存在一些不足之處:一是MIPS的內存地址起始有問題,這導致了MIPS在內存和cache的支持方面都有限制,即MIPS單內核無法面對高容量內存配置;二是MIPS技術演進方向是并行線程,類似INTEL的超線程,而ARM未來的發(fā)展方向是物理多核,從目前核心移動設備的發(fā)展趨勢來看物理多核占據了上風;三是MIPS雖然結構更加簡單,但是到現在還是順序單/雙發(fā)射,ARM則已經進化到了亂序雙/三發(fā)射,執(zhí)行指令流水線周期遠不如ARM高效;四是MIPS學院派發(fā)展風格導致其商業(yè)進程遠遠滯后于ARM,當ARM與高通、蘋果、NVIDIA等芯片設計公司合作大舉進攻移動終端的時候,MIPS還停留在高清盒子、打印機等小眾市場產品中;五是MIPS自身系統(tǒng)的軟件平臺也較為落后,應用軟件與ARM體系相比要少很多。
x86 CISC是一種為了便于編程和提高記憶體訪問效率的芯片設計體系,包括兩大主要特點:一是使用微代碼,指令集可以直接在微代碼記憶體里執(zhí)行,新設計的處理器,只需增加較少的電晶體就可以執(zhí)行同樣的指令集,也可以很快地編寫新的指令集程式;二是擁有龐大的指令集,x86擁有包括雙運算元格式、寄存器到寄存器、寄存器到記憶體以及記憶體到寄存器的多種指令類型,為實現復雜操作,微處理器除向程序員提供類似各種寄存器和機器指令功能外,還通過存于只讀存儲器(ROM)中的微程序來實現極強的功能,微處理器在分析完每一條指令之后執(zhí)行一系列初級指令運算來完成所需的功能。
x86指令體系的優(yōu)勢體現在能夠有效縮短新指令的微代碼設計時間,允許實現CISC體系機器的向上兼容,新的系統(tǒng)可以使用一個包含早期系統(tǒng)的指令集合。另外微程式指令的格式與高階語言相匹配,因而編譯器并不一定要重新編寫。相較ARM RISC指令體系,其缺點主要包括四個方面。
第一,通用寄存器規(guī)模小,x86指令集只有8個通用寄存器,CPU大多數時間是在訪問存儲器中的數據,影響整個系統(tǒng)的執(zhí)行速度。而RISC系統(tǒng)往往具有非常多的通用寄存器,并采用了重疊寄存器窗口和寄存器堆等技術,使寄存器資源得到充分的利用。
第二,解碼器影響性能表現,解碼器的作用是把長度不定的x86指令轉換為長度固定的類似于RISC的指令,并交給RISC內核。解碼分為硬件解碼和微解碼,對于簡單的x86指令只要硬件解碼即可,速度較快,而遇到復雜的x86指令則需要進行微解碼,并把它分成若干條簡單指令,速度較慢且很復雜。
第三,x86指令集尋址范圍小,約束用戶需要。
第四,x86 CISC單個指令長度不同,運算能力強大,不過相對來說結構復雜,很難將CISC全部硬件集成在一顆芯片上。而ARM RISC單個指令長度固定,只包含使用頻率最高的少量指令,性能一般但結構簡單,執(zhí)行效率穩(wěn)定。
評論