而 ARM在看到移動(dòng)設(shè)備對(duì)64位計(jì)算的需求后,于2011年發(fā)布了ARMv8 64位架構(gòu),這是為了下一代ARM指令集架構(gòu)工作若干年后的結(jié)晶。為了基于原有的原則和指令集,開(kāi)發(fā)一個(gè)簡(jiǎn)明的64位架構(gòu),ARMv8使用了兩種執(zhí)行模式,AArch32和AArch64。顧名思義,一個(gè)運(yùn)行32位代碼,一個(gè)運(yùn)行64位代碼。ARM設(shè)計(jì)的巧妙之處,是處理器在運(yùn)行中可以無(wú)縫地在兩種模式間切換。這意味著64位指令的解碼器是全新設(shè)計(jì)的,不用兼顧32位指令,而處理器依然可以向后兼容。
3、異構(gòu)計(jì)算ARM的 big.LITTLE架構(gòu)是一項(xiàng)Intel一時(shí)無(wú)法復(fù)制的創(chuàng)新。在big.LITTLE架構(gòu)里,處理器可以是不同類型的。傳統(tǒng)的雙核或者四核處理器中包含同樣的2個(gè)核或者4個(gè)核。一個(gè)雙核Atom處理器中有兩個(gè)一模一樣的核,提供一樣的性能,擁有相同的功耗。ARM通過(guò)big.LITTLE向移動(dòng)設(shè)備推出了異構(gòu)計(jì)算。這意味著處理器中的核可以有不同的性能和功耗。當(dāng)設(shè)備正常運(yùn)行時(shí),使用低功耗核,而當(dāng)你運(yùn)行一款復(fù)雜的游戲時(shí),使用的是高性能的核。
這是什么做到的呢?設(shè)計(jì)處理器的時(shí)候,要考慮大量的技術(shù)設(shè)計(jì)的采用與否,這些技術(shù)設(shè)計(jì)決定了處理器的性能以及功耗。在一條指令被解碼并準(zhǔn)備執(zhí)行時(shí),Intel和ARM的處理器都使用流水線,就是說(shuō)解碼的過(guò)程是并行的。
為了更快地執(zhí)行指令,這些流水線可以被設(shè)計(jì)成允許指令們不按照程序的順序被執(zhí)行(亂序執(zhí)行)。一些巧妙的邏輯結(jié)構(gòu)可以判斷下一條指令是否依賴于當(dāng)前的指令執(zhí)行的結(jié)果。Intel和ARM都提供亂序執(zhí)行邏輯結(jié)構(gòu),可想而知,這種結(jié)構(gòu)十分的復(fù)雜,復(fù)雜意味著更多的功耗。
那為什么反而ARM的比X86耗電少得多呢。這就和另外一個(gè)因素相關(guān)了,那就是設(shè)計(jì)。
設(shè)計(jì)又分為前端和后端設(shè)計(jì),前端設(shè)計(jì)體現(xiàn)了處理器的構(gòu)架,精簡(jiǎn)指令集和復(fù)雜指令集的區(qū)別是通過(guò)前端設(shè)計(jì)體現(xiàn)的。后端設(shè)計(jì)處理電壓、時(shí)鐘等問(wèn)題,是耗電的直接因素。當(dāng)然,其中任何一項(xiàng)都會(huì)使得時(shí)鐘和電源所控制的模塊無(wú)法工作。他們的區(qū)別在于,門(mén)控時(shí)鐘的恢復(fù)時(shí)間較短,而電源控制的時(shí)間較長(zhǎng)。此外,如果條單條指令使用多個(gè)模塊的功能,在恢復(fù)功能的時(shí)候,并不是最慢的那個(gè)模塊的時(shí)間,而可能是幾個(gè)模塊時(shí)間相加,因?yàn)檫@牽涉到一個(gè)上電次序的問(wèn)題,也就是恢復(fù)工作時(shí)候模塊間是有先后次序的,不遵照這個(gè)次序,就無(wú)法恢復(fù)。而遵照這個(gè)次序,就會(huì)使得總恢復(fù)時(shí)間很長(zhǎng)。
所以在后端這塊,可以得到一個(gè)結(jié)論,為了省電,可以關(guān)閉一些暫時(shí)不會(huì)用到的處理器模塊。但是也不能輕易的關(guān)閉,否則一旦需要,恢復(fù)的話會(huì)讓完成某個(gè)指令的時(shí)間會(huì)很長(zhǎng),總體性能顯然降低。此外,子模塊的門(mén)控時(shí)鐘和電源開(kāi)關(guān)通常是設(shè)計(jì)電路時(shí)就決定的,對(duì)于操作系統(tǒng)是透明的,無(wú)法通過(guò)軟件來(lái)優(yōu)化。
再來(lái)看前端。ARM的處理器有個(gè)特點(diǎn),就是亂序執(zhí)行能力不如X86。換句話說(shuō),就是用戶在使用電腦的時(shí)候,他的操作是隨機(jī)的,無(wú)法預(yù)測(cè)的,造成了指令也無(wú)法預(yù)測(cè)。X86為了增強(qiáng)對(duì)這種情況下的處理能力,加強(qiáng)了亂序指令的執(zhí)行。此外,X86還增強(qiáng)了單核的多線程能力。這樣做的缺點(diǎn)就是,無(wú)法很有效的關(guān)閉和恢復(fù)處理器子模塊,因?yàn)橐坏╆P(guān)閉,恢復(fù)起來(lái)就很慢,從而造成低性能。為了保持高性能,就不得不讓大部分的模塊都保持開(kāi)啟,并且時(shí)鐘也保持切換。這樣做的直接后果就是耗電高。而ARM的指令強(qiáng)在確定次序的執(zhí)行,并且依靠多核而不是單核多線程來(lái)執(zhí)行。這樣容易保持子模塊和時(shí)鐘信號(hào)的關(guān)閉,顯然就更省電。
ARM和X86現(xiàn)在發(fā)展如何?
關(guān)于X86架構(gòu)和ARM架構(gòu)這兩者誰(shuí)將統(tǒng)一市場(chǎng)的爭(zhēng)執(zhí)一直都有,但是也有人說(shuō)這兩者根本不具備可比性,X86無(wú)法做到 ARM的功耗,而ARM也無(wú)法做到X86的性能?,F(xiàn)在ARM架構(gòu)已經(jīng)具備了進(jìn)入服務(wù)器芯片的能力,眾多芯片研發(fā)企業(yè)紛紛采用ARM架構(gòu)研發(fā)服務(wù)器芯片無(wú)疑將促進(jìn)其繁榮, 2015年一款采用ARM架構(gòu)的Windows 10平板現(xiàn)身,這也是目前曝光的全球首款非X86架構(gòu)、運(yùn)行Windows系統(tǒng)的平板產(chǎn)品。
隨著移動(dòng)網(wǎng)絡(luò)和互聯(lián)網(wǎng)融合互通日趨明顯,ARM發(fā)展后臺(tái)數(shù)據(jù)中心已經(jīng)是大勢(shì)所趨,所以與其說(shuō)ARM倒更像是背水一戰(zhàn),無(wú)論是ARM還是Intel,雙方都沒(méi)有任何退路可言。