一文讀懂CPU架構(gòu)
中央處理單元(CPU)主要由運(yùn)算器、控制器、寄存器三部分組成,從字面意思看運(yùn)算器就是起著運(yùn)算的作用,控制器就是負(fù)責(zé)發(fā)出CPU每條指令所需要的信息,寄存器就是保存運(yùn)算或者指令的一些臨時(shí)文件,這樣可以保證更高的速度。
CPU有著處理指令、執(zhí)行操作、控制時(shí)間、處理數(shù)據(jù)四大作用,打個(gè)比喻來說,CPU就像我們的大腦,幫我們完成各種各樣的生理活動。因此如果沒有 CPU,那么電腦就是一堆廢物,無法工作。移動設(shè)備其實(shí)很復(fù)雜,這些CPU需要執(zhí)行數(shù)以百萬計(jì)的指示,才能使它向我們期待的方向運(yùn)行,而CPU的速度和功率效率是至關(guān)重要的。速度影響用戶體驗(yàn),而效率影響電池壽命。最完美的移動設(shè)備是高性能和低功耗相結(jié)合。
CPU架構(gòu)是CPU廠商給屬于同一系列的CPU產(chǎn)品定的一個(gè)規(guī)范,主要目的是為了區(qū)分不同類型CPU的重要標(biāo)示。
在計(jì)算世界中,“體系結(jié)構(gòu)”一詞被用來描述一個(gè)抽象的機(jī)器,而不是一個(gè)具體的機(jī)器實(shí)現(xiàn)。一般而言,一個(gè)CPU的體系結(jié)構(gòu)有一個(gè)指令集加上一些寄存器而組成。
從CPU發(fā)明到現(xiàn)在,有非常多種架構(gòu),從我們熟悉的X86、ARM,到不太熟悉的MIPS、IA64,它們之間的差距都非常大。但是如果從最基本的邏輯角度來分類的話,它們可以被分為兩大類,即所謂的“復(fù)雜指令集”與“精簡指令集”系統(tǒng),也就是經(jīng)??吹降摹癈ISC”與“RISC”。
“指令集”與“體系結(jié)構(gòu)”這兩個(gè)術(shù)語是同義詞。x86、ARM、MIPS算是是目前最常見也相對最知名的處理器架構(gòu)?!?/p>
x86架構(gòu)
x86或80x86是英特爾首先開發(fā)制造的一種微處理器體系結(jié)構(gòu)的泛稱。該系列較早期的處理器名稱是以數(shù)字來表示,并以“86”作為結(jié)尾,包括Intel 8086、80186、80286、80386以及80486,因此其架構(gòu)被稱為“x86”。
x86架構(gòu)于1978年推出的Intel 8086中央處理器中首度出現(xiàn),它是從Intel 8008處理器中發(fā)展而來的,而8008則是發(fā)展自Intel 4004的。8086在三年后為IBM PC所選用,之后x86便成為了個(gè)人電腦的標(biāo)準(zhǔn)平臺,成為了歷來最成功的CPU架構(gòu)。8086是16位元處理器;直到1985年32位元的80386的開發(fā),這個(gè)架構(gòu)都維持是16位元。接著一系列的處理器表示了32位元架構(gòu)的細(xì)微改進(jìn),推出了數(shù)種的擴(kuò)充,直到2003年AMD對于這個(gè)架構(gòu)發(fā)展了64位元的擴(kuò)充,并命名為AMD64。后來Intel也推出了與之兼容的處理器,并命名為Intel 64。兩者一般被統(tǒng)稱為x86-64或x64,開創(chuàng)了x86的64位時(shí)代。
Intel早在1990年代就與惠普合作提出了一種用在安騰系列處理器中的獨(dú)立的64位架構(gòu),這種架構(gòu)被稱為IA-64。IA-64是一種嶄新的架構(gòu),和x86架構(gòu)完全沒有相似性。
x86架構(gòu)是重要地可變指令長度的CISC。字組(word, 4字節(jié))長度的內(nèi)存存取允許不對齊內(nèi)存位址,字組是以低位字節(jié)在前的順序儲存在內(nèi)存中。向后相容性一直都是在x86架構(gòu)的發(fā)展背后一股驅(qū)動力量(設(shè)計(jì)的需要決定了這項(xiàng)因素而常常導(dǎo)致批評,尤其是來自對手處理器的擁護(hù)者和理論界,他們對于一個(gè)被廣泛認(rèn)為是落后設(shè)計(jì)的架構(gòu)的持續(xù)成功感到不解)。但在較新的微架構(gòu)中,x86處理器會把x86指令轉(zhuǎn)換為更像RISC的微指令再予執(zhí)行,從而獲得可與RISC比擬的超標(biāo)量性能,而仍然保持向前兼容。
如今,我們面前的PC機(jī)基本都是x86架構(gòu)計(jì)算機(jī)。如果你想嘗試其他架構(gòu)的計(jì)算機(jī),首先要考慮的是是否放棄Windows系統(tǒng)。(注:Windows 8 起,微軟開始支持x86和ARM兩種架構(gòu)) ·
ARM架構(gòu)
ARM架構(gòu)(過去稱作進(jìn)階精簡指令集機(jī)器(Advanced RISC Machine),更早稱作Acorn RISC Machine)是一個(gè)32位元精簡指令集(RISC) 中央處理器(processor)架構(gòu),其廣泛地使用在許多嵌入式系統(tǒng)(embedded)設(shè)計(jì)。由于節(jié)能的特點(diǎn),ARM處理器非常適用于移動通訊領(lǐng)域,符合其主要設(shè)計(jì)目標(biāo)為低耗電的特性。在今日,ARM家族占了所有32位元嵌入式處理器75%的比例[1],使它成為占全世界最多數(shù)的32位元架構(gòu)之一。ARM處理器可以在很多消費(fèi)性電子產(chǎn)品上看到,從可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電玩,和計(jì)算機(jī))到電腦周邊設(shè)備(硬盤、桌上型路由器)甚至在導(dǎo)彈的彈載計(jì)算機(jī)等軍用設(shè)施中都有他的存在。在此家族中衍伸的重要產(chǎn)品還包括Marvell的XScale架構(gòu)和德州儀器的OMAP系列。
ARM架構(gòu)包含了下述RISC特性:
1、讀取/儲存 架構(gòu)。
2、正交指令集(任意存取指令可以任意的尋址方式存取數(shù)據(jù)Orthogonal instruction set)
3、大量的16 × 32-bit 寄存器陣列(register file)。
4、固定的32 bits 操作碼(opcode)長度,降低編碼數(shù)量所產(chǎn)生的耗費(fèi),減輕解碼和流水線化的負(fù)擔(dān)。
5、大多均為一個(gè)CPU周期執(zhí)行。
為了補(bǔ)強(qiáng)這種簡單的設(shè)計(jì)方式,相較于同時(shí)期的處理器如Intel 80286和Motorola 68020,還多加了一些特殊設(shè)計(jì):
1、大部分指令可以條件式地執(zhí)行,降低在分支時(shí)產(chǎn)生的負(fù)重,彌補(bǔ)分支預(yù)測器(branch predictor)的不足。
2、算數(shù)指令只會在要求時(shí)更改條件編碼(conditioncode)。
3、32-bit筒型位移器(barrelshifter)可用來執(zhí)行大部分的算數(shù)指令和尋址計(jì)算而不會損失效能。
4、強(qiáng)大的索引尋址模式(addressing mode)。
5、精簡但快速的雙優(yōu)先級中斷子系統(tǒng),具有可切換的暫存器組。
在今日,ARM家族占了所有32位元嵌入式處理器75%的比例,使它成為占全世界最多數(shù)的32位元架構(gòu)之一。ARM處理器可以在很多消費(fèi)性電子產(chǎn)品上看到,從可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電玩、計(jì)算機(jī))到電腦周邊設(shè)備(硬盤、桌上型路由器)甚至在導(dǎo)彈的彈載計(jì)算機(jī)等軍用設(shè)施中都有他的存在。
MIPS架構(gòu)
MIPS架構(gòu)(英語:MIP Sarchitecture,為“無內(nèi)部互鎖流水級的微處理器Microprocessor without Interlocked Pipeline Stages的縮寫,也是Millionsof Instructions Per Second的相關(guān)語),是一種采取精簡指令集(RISC)的處理器架構(gòu),1981年出現(xiàn),由MIPS科技公司開發(fā)并授權(quán),廣泛被使用在許多電子產(chǎn)品、網(wǎng)絡(luò)設(shè)備、個(gè)人娛樂裝置與商業(yè)裝置上。其機(jī)制是盡量利用軟件辦法避免流水線中的數(shù)據(jù)相關(guān)問題。它最早是在80年代初期由斯坦福(Stanford)大學(xué)Hennessy教授領(lǐng)導(dǎo)的研究小組研制出來的。MIPS公司的R系列就是在此基礎(chǔ)上開發(fā)的RISC工業(yè)產(chǎn)品的微處理器。這些系列產(chǎn)品為很多計(jì)算機(jī)公司采用構(gòu)成各種工作站和計(jì)算機(jī)系統(tǒng)。
MIPS是出現(xiàn)最早的商業(yè)RISC架構(gòu)芯片之一。MIPS的系統(tǒng)結(jié)構(gòu)及設(shè)計(jì)理念比較先進(jìn),強(qiáng)調(diào)軟硬件協(xié)同提高性能,同時(shí)簡化硬件設(shè)計(jì)。
2002年,中國科學(xué)院計(jì)算所開始研發(fā)龍芯處理器,采用MIPS架構(gòu),但未經(jīng)MIPS公司的授權(quán),遭到侵權(quán)的控告。2007年,中國科學(xué)院與MIPS公司達(dá)成和解,得到正式授權(quán)。中國龍芯2和前代產(chǎn)品采用的都是64位MIPS指令架構(gòu)。過去,MIPS架構(gòu)的產(chǎn)品多見于工作站領(lǐng)域,索尼PS2游戲機(jī)所用的“Emotion Engine”也采用MIPS指令,這些MIPS處理器的性能都非常強(qiáng)勁,而龍芯2也屬于這個(gè)陣營,在軟件方面與上述產(chǎn)品完全兼容。
ARM與MIPS
與當(dāng)前商業(yè)化最成功的ARM架構(gòu)相比,MIPS的優(yōu)勢主要有以下幾點(diǎn):
1、MIPS支持64bit指令和操作,ARM目前只到32bit 。
2、MIPS有專門的除法器,可以執(zhí)行除法指令 。
3、MIPS的內(nèi)核寄存器比ARM多一倍,所以同樣的性能下MIPS的功耗會比ARM更低,同樣功耗下性能比ARM更高。
4、MIPS指令比ARM稍微多一點(diǎn),稍微靈活一點(diǎn)。
5、有觀點(diǎn)認(rèn)為MIPS的bank寄存器性能也要好于ARM,不過沒見過能反映出來的測試。
以上為MIPS對比ARM架構(gòu)的優(yōu)勢,接下來我們再看一看MIPS架構(gòu)的不足之處, 與ARM架構(gòu)相比,MIPS架構(gòu)也存在著以下幾點(diǎn)不足:
1、MIPS的內(nèi)存地址起始有問題,這導(dǎo)致了MIPS在內(nèi)存和cache的支持方面都有限制,現(xiàn)在的MIPS處理器單內(nèi)核面對高容量內(nèi)存時(shí)有問題。
2、MIPS今后的發(fā)展方向是并行線程,類似INTEL的超線程,而ARM未來的發(fā)展方向是物理多核,目前看來物理多核占優(yōu)。由此來看,我國的龍芯向多核發(fā)展還是頗具遠(yuǎn)見的。
3、MIPS雖然結(jié)構(gòu)更加簡單,但是到現(xiàn)在還是順序單****,ARM已經(jīng)進(jìn)化到了亂序雙****,甚至NV的丹佛已經(jīng)是亂序三****了。
商業(yè)上二者差別也大,ARM很昂貴,而且不能隨意自行更改內(nèi)核。而MIPS就要開放的多了。(這也算龍芯為什么不采用ARM架構(gòu)的原因了。)
ARM與X86架構(gòu)
性能對比
X86結(jié)構(gòu)的電腦無論如何都比ARM結(jié)構(gòu)的系統(tǒng)在性能方面要快得多、強(qiáng)得多。X86的CPU的主頻隨便就是1GHZ以上、雙核、四核大行其道,現(xiàn)在通常使用22nm制程的工藝進(jìn)行生產(chǎn);而ARM方面:CPU通常是幾百兆,最近才出現(xiàn)1G左右的CPU,制程通常使用32nm或45nm制程的工藝,可以說在性能和生產(chǎn)工藝方面ARM根本不是X86結(jié)構(gòu)系統(tǒng)的對手。
但ARM的優(yōu)勢不在于性能強(qiáng)大而在于效率,ARM采用RISC流水線指令集,在完成綜合性工作方面根本就處于劣勢,而在一些任務(wù)相對固定的應(yīng)用場合其優(yōu)勢就能發(fā)揮得淋漓盡致。
擴(kuò)展能力對比
X86結(jié)構(gòu)的電腦采用“橋”的方式與擴(kuò)展設(shè)備(如:硬盤、內(nèi)存等)進(jìn)行連接,而且x86結(jié)構(gòu)的電腦出現(xiàn)了近30年,其配套擴(kuò)展的設(shè)備種類多、價(jià)格也比較便宜,所以x86結(jié)構(gòu)的電腦能很容易進(jìn)行性能擴(kuò)展,如增加內(nèi)存、硬盤等。
ARM結(jié)構(gòu)的電腦是通過專用的數(shù)據(jù)接口使CPU與數(shù)據(jù)存儲設(shè)備進(jìn)行連接,所以ARM的存儲、內(nèi)存等性能擴(kuò)展難以進(jìn)行(一般在產(chǎn)品設(shè)計(jì)時(shí)已經(jīng)定好其內(nèi)存及數(shù)據(jù)存儲的容量),所以采用ARM結(jié)構(gòu)的系統(tǒng),一般不考慮擴(kuò)展?;痉钚小皦蛴镁秃谩钡脑瓌t。
操作系統(tǒng)的兼容性
X86系統(tǒng)由微軟及Intel構(gòu)建的Wintel聯(lián)盟一統(tǒng)天下,壟斷了個(gè)人電腦操作系統(tǒng)近30年,形成巨大的用戶群,也深深固化了眾多用戶的使用習(xí)慣,同時(shí)x86系統(tǒng)在硬件和軟件開發(fā)方面已經(jīng)形成統(tǒng)一的標(biāo)準(zhǔn),幾乎所有x86硬件平臺都可以直接使用微軟的視窗系統(tǒng)及現(xiàn)在流行的幾乎所有工具軟件,所以x86系統(tǒng)在兼容性方面具有無可比擬的優(yōu)勢。
ARM系統(tǒng)幾乎都采用Linux的操作系統(tǒng),而且?guī)缀跛械挠布到y(tǒng)都要單獨(dú)構(gòu)建自己的系統(tǒng),與其他系統(tǒng)不能兼容,這也導(dǎo)致其應(yīng)用軟件不能方便移植,這一點(diǎn)一直嚴(yán)重制約了ARM系統(tǒng)的發(fā)展和應(yīng)用。
GOOGLE開發(fā)了開放式的Android系統(tǒng)后,統(tǒng)一了ARM結(jié)構(gòu)電腦的操作系統(tǒng),使新推出基于ARM結(jié)構(gòu)的電腦系,有了統(tǒng)一的、開放式的、免費(fèi)的操作系統(tǒng),為ARM的發(fā)展提供了強(qiáng)大的支持和動力。
軟件開發(fā)的方便性及可使用工具的多樣性
軟件配套、軟件開發(fā)工具的配套及兼容等工作,X86已經(jīng)到達(dá)非常成熟甚至可以說是完美的境界。所以使用X86電腦系統(tǒng)不僅有大量的第三方軟件可供選擇也有大量的軟件編程工具可以 幫助您完成您所希望完成的工作。
Arm結(jié)構(gòu)的電腦系統(tǒng)因?yàn)橛布阅艿闹萍s、操作系統(tǒng)的精簡、以及系統(tǒng)兼容等問題的制約,造成Arm結(jié)構(gòu)的電腦系統(tǒng)不可能像X86電腦系統(tǒng)那樣有眾多的編程工具和第三方軟件可供選擇及使用,ARM的編程語言大多采用C和JAVA或C++。
因此,基于x86結(jié)構(gòu)電腦系統(tǒng)平臺開發(fā)軟件比arm結(jié)構(gòu)系統(tǒng)更容易、更簡單、實(shí)際成本也更低,同時(shí)更容易找到第三方軟件(免去自己開發(fā)的時(shí)間和成本),而且軟件移植更容易。
功耗對比
X86電腦因考慮要適應(yīng)各種應(yīng)用的需求,其發(fā)展思路是:性能+速度。20多年來x86電腦的速度從原來8088的幾M發(fā)展到現(xiàn)在隨便就是幾G,而且還是幾核,其速度和性能已經(jīng)提升了千、萬倍,技術(shù)進(jìn)步使x86電腦成為大眾生活中不可缺少的一部分。但是x86電腦發(fā)展的方向和模式,使其功耗一直居高不下,一臺電腦隨便就是幾百瓦,即使是號稱低功耗節(jié)能的手提電腦或上網(wǎng)本,也有十幾、二十多瓦的功耗,這與ARM結(jié)構(gòu)的電腦就無法相比。
ARM的設(shè)計(jì)及發(fā)展思路是:滿足某個(gè)特殊方面的應(yīng)用即可,在某一專項(xiàng)領(lǐng)域是最強(qiáng)的,(哪怕在其他方面一無是處),這樣Arm以其不是最強(qiáng)的技術(shù),同樣也不是很高級制程的制造工藝,生產(chǎn)出性能不是很強(qiáng)的電腦系統(tǒng),但在某個(gè)專業(yè)應(yīng)用方面則是最好的,特別是在眾多終端應(yīng)用,尤其在移動終端應(yīng)用上占有絕對優(yōu)勢的統(tǒng)治地位,這個(gè)原因就是:耗耗。
高功耗導(dǎo)致了一系列X86系統(tǒng)無法解決的問題出現(xiàn):系統(tǒng)的續(xù)航能力弱、體積無法縮小、穩(wěn)定性差、對使用環(huán)境要求高等問題。從這里我們可以看到x86系統(tǒng)與ARM系統(tǒng)是在兩個(gè)完全不同領(lǐng)域方面的應(yīng)用,他們之間根本不存在替換性,在服務(wù)器、工作站以及其他高性能運(yùn)算等應(yīng)用方面,是可以不考慮功耗和使用環(huán)境等條件時(shí),X86系統(tǒng)占了優(yōu)絕對優(yōu)勢;但受功耗、環(huán)境等條件制約且工作任務(wù)固定的情況下ARM就占有很大的優(yōu)勢,在手持式移動終端領(lǐng)域,X86的功耗更使他英雄毫無用武之地。
從以上對比分析,給了我們的一個(gè)很清晰的感覺,ARM和X86結(jié)構(gòu)的電腦根本就無法對比,ARM根本就不是X86電腦的的對手。如果只考慮上述幾個(gè)方面的要數(shù),ARM確實(shí)無法與X86電腦競爭,甚至連比較的資格都沒有。但是近1、2年,ARM的產(chǎn)品在終端應(yīng)用特別是手持終端應(yīng)用飛速發(fā)展(如:智能手機(jī)、平板電腦等),其銷售數(shù)量已經(jīng)遠(yuǎn)遠(yuǎn)超出x86結(jié)構(gòu)的電腦銷售數(shù)量,可見ARM是具有其與X86結(jié)構(gòu)電腦不可對比的優(yōu)勢。
X86系統(tǒng)和ARM系統(tǒng)應(yīng)該是兩個(gè)完全不同領(lǐng)域的應(yīng)用,如果功能單一又受到環(huán)境制約的應(yīng)用,如:POS、ATM、多媒體廣告機(jī)(現(xiàn)已經(jīng)有ARM+DSP的產(chǎn)品)、車載電腦終端等應(yīng)用,應(yīng)該首先考慮ARM方案,ARM方案與X86相比,其功耗和成本占有很大優(yōu)勢。
現(xiàn)在ARM很強(qiáng)大,但它距離X86還是非常遙遠(yuǎn),畢竟它們設(shè)計(jì)的出發(fā)點(diǎn)不一樣, X86無法做到ARM的功耗,而ARM也無法做到X86的性能。不過這也不意味著ARM以后就只能占據(jù)低端,畢竟任何架構(gòu)都有其優(yōu)點(diǎn),一旦有應(yīng)用針對其進(jìn)行優(yōu)化,那么就可以揚(yáng)長避短。X86的繁榮也正是因?yàn)檎麄€(gè)世界的資源都針對它進(jìn)行了優(yōu)化所致。只要能為ARM找到合適的應(yīng)用與適合的領(lǐng)域,未來ARM也未必不可以進(jìn)入更高的層次。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。