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