新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM和X86功耗差別的深層原因探討

ARM和X86功耗差別的深層原因探討

作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
ARMX86功耗的差別一直是個很熱的話題.ARM可以做的很低,甚至1瓦都不到.而X86服務(wù)器的芯片可以達(dá)到100-200瓦,就算是嵌入式處理器Atom系列也需要幾瓦.很多人說這是指令集的關(guān)系.ARM采用精簡指令集,X86采用復(fù)雜指令集,前者每條功能簡單,單挑指令耗電低.而后者每條指令復(fù)雜,單個指令耗電高.但是這種解釋很模糊.如果大家都做同樣的事情,完成一個大功能,精簡指令集需要指令較多,而復(fù)雜指令集需要指令少,加起來到底誰耗電多呢.還有,現(xiàn)在處理器普遍采用微指令,大的指令會被拆分成更小的指令,以達(dá)到更高的流水線效率.簡單指令集的單條微指令和復(fù)雜指令集的單條微指令相比的話,情況就更復(fù)雜.我手頭沒有關(guān)于比較的具體數(shù)據(jù),但是至少前文所列出關(guān)于功耗和指令集相關(guān)的解釋不是很有說服力.

今天碰到一個資深人士,總算找到一個比較合理的解釋.

首先,功耗和工藝制程相關(guān).ARM的處理器,不管是哪家,主要是靠臺積電等專業(yè)制造商生產(chǎn)的.而Intel的是自己的工廠制造的.一般來說后者比前者的工藝領(lǐng)先一代,也就是2-3年.如果同樣的設(shè)計(jì),造出來的處理器因該是Intel的更緊湊,比如一個是22納米,一個是28納米,同樣功能肯定是22納米的耗電更少.

那為什么反而ARM的比X86耗電少得多呢.這就和另外一個因素相關(guān)了,那就是設(shè)計(jì).

設(shè)計(jì)又分為前端和后端設(shè)計(jì),前端設(shè)計(jì)體現(xiàn)了處理器的構(gòu)架,精簡指令集和復(fù)雜指令集的區(qū)別是通過前端設(shè)計(jì)體現(xiàn)的.后端設(shè)計(jì)處理電壓,時鐘等問題,是耗電的直接因素.

先說下后端怎么影響耗電的.我們都學(xué)過,晶體管耗電主要兩個原因,一個是動態(tài)功耗,一個是漏電功耗.動態(tài)功耗是指晶體管在輸入電壓切換的時候產(chǎn)生的耗電,而所有的邏輯功能的0/1切換,歸根結(jié)底都是時鐘信號的切換.如果時鐘信號保持不變,那么這部分的功耗就為0.這就是所謂的門控時鐘(ClockGating).而漏電功耗可以通過關(guān)掉某個模塊的電源來控制(PowerGating).當(dāng)然,其中任何一項(xiàng)都會使得時鐘和電源所控制的模塊無法工作.他們的區(qū)別在于,門控時鐘的恢復(fù)時間較短,而電源控制的時間較長.此外,如果條單條指令使用多個模塊的功能,在恢復(fù)功能的時候,并不是最慢的那個模塊的時間,而可能是幾個模塊時間相加,因?yàn)檫@牽涉到一個上電次序(PowerSequence)的問題,也就是恢復(fù)工作時候模塊間是有先后次序的,不遵照這個次序,就無法恢復(fù).而遵照這個次序,就會使得總恢復(fù)時間很長.所以在后端這塊,可以得到一個結(jié)論,為了省電,可以關(guān)閉一些暫時不會用到的處理器模塊.但是也不能輕易的關(guān)閉,否則一旦需要,恢復(fù)的話會讓完成某個指令的時間會很長,總體性能顯然降低.此外,子模塊的門控時鐘和電源開關(guān)通常是設(shè)計(jì)電路時就決定的,對于操作系統(tǒng)是透明的,無法通過軟件來優(yōu)化.

再來看前端.ARM的處理器有個特點(diǎn),就是亂序執(zhí)行能力不如X86.換句話說,就是用戶在使用電腦的時候,他的操作是隨機(jī)的,無法預(yù)測的,造成了指令也無法預(yù)測.X86為了增強(qiáng)對這種情況下的處理能力,加強(qiáng)了亂序指令的執(zhí)行.此外,X86還增強(qiáng)了單核的多線程能力.這樣做的缺點(diǎn)就是,無法很有效的關(guān)閉和恢復(fù)處理器子模塊,因?yàn)橐坏╆P(guān)閉,恢復(fù)起來就很慢,從而造成低性能.為了保持高性能,就不得不讓大部分的模塊都保持開啟,并且時鐘也保持切換.這樣做的直接后果就是耗電高.而ARM的指令強(qiáng)在確定次序的執(zhí)行,并且依靠多核而不是單核多線程來執(zhí)行.這樣容易保持子模塊和時鐘信號的關(guān)閉,顯然就更省電.

此外,在操作系統(tǒng)這個級別,個人電腦上通常會開很多線程,而移動平臺通常會做優(yōu)化,只保持必要的線程.這樣使得耗電差距進(jìn)一步加大.當(dāng)然,如果X86用在移動平臺,肯定也會因?yàn)榫€程少而省電.凌動系列(ATOM)專門為這些特性做了優(yōu)化,在一定程度上降低亂序執(zhí)行和多線程的處理能力,從而達(dá)到省電.

此外,現(xiàn)在移動處理器都是片上系統(tǒng)(SoC)結(jié)構(gòu),也就是說,處理器之外,圖形,視頻,音頻,網(wǎng)絡(luò)等功能都在一個芯片里.這些模塊的打開與關(guān)閉就容易預(yù)測的多,并且可以通過軟件來控制.這樣,整體功耗就更加取決于軟件和制造工藝而不是處理機(jī)結(jié)構(gòu).在這點(diǎn)上,X86的處理器占優(yōu)勢,因?yàn)镮ntel的工藝有很大優(yōu)勢,而軟件優(yōu)化只要去做肯定就可以做到.

以上原因我覺得較好的解釋了ARM和X86的功耗差別.

現(xiàn)在看看趨勢.

Intel現(xiàn)在積極推進(jìn)晶體管工藝革新,簡化前端設(shè)計(jì),所以功耗劣勢會逐步減低.再有,隨著工藝的進(jìn)一步發(fā)展,以后的移動設(shè)備主要功耗會轉(zhuǎn)移到外部設(shè)備而非處理器.比如內(nèi)存,顯示屏,通訊模塊等.這樣,性能會變的越來越重要.不過Intel有個難以跨越的鴻溝,就是成本,為了保持高利潤,就算可以降低也不會愿意降低.等到不得不靠降成本維生的那一天,說明技術(shù)優(yōu)勢不復(fù)存在,公司也快走到頭了,只能轉(zhuǎn)型依靠服務(wù)和平臺來掙錢.這點(diǎn)可以參照思科和華為的競爭史.大膽預(yù)測,如果2013之后人類仍舊存在,移動處理器會逐漸分為兩個市場,低端ARM把持,高端Intel獨(dú)占.


關(guān)鍵詞: ARMX86功耗差

評論


技術(shù)專區(qū)

關(guān)閉