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