ARM和X86功耗差別的深層原因探討
今天碰到一個資深人士,總算找到一個比較合理的解釋.
首先,功耗和工藝制程相關(guān).
那為什么反而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.這就是所謂的門控時鐘(Clock
再來看前端.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ù)起來就很慢,從而造成低性能.為了保持高性能,就不得不讓大部分的模塊都保持開啟,
此外,在操作系統(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ú)占.
評論