ARM和X86功耗差別的深層原因探討
今天碰到一個(gè)資深人士,總算找到一個(gè)比較合理的解釋.
首先,功耗和工藝制程相關(guān).
那為什么反而ARM的比X86耗電少得多呢.這就和另外一個(gè)因素相關(guān)了,那就是設(shè)計(jì).
設(shè)計(jì)又分為前端和后端設(shè)計(jì),前端設(shè)計(jì)體現(xiàn)了處理器的構(gòu)架,精簡(jiǎn)指令集和復(fù)雜指令集的區(qū)別是通過前端設(shè)計(jì)體現(xiàn)的.后端設(shè)計(jì)處理電壓,時(shí)鐘等問題,是耗電的直接因素.
先說下后端怎么影響耗電的.我們都學(xué)過,晶體管耗電主要兩個(gè)原因,一個(gè)是動(dòng)態(tài)功耗,一個(gè)是漏電功耗.動(dòng)態(tài)功耗是指晶體管在輸入電壓切換的時(shí)候產(chǎn)生的耗電,而所有的邏輯功能的0/1切換,歸根結(jié)底都是時(shí)鐘信號(hào)的切換.如果時(shí)鐘信號(hào)保持不變,那么這部分的功耗就為0.這就是所謂的門控時(shí)鐘(Clock
再來看前端.ARM的處理器有個(gè)特點(diǎn),就是亂序執(zhí)行能力不如X86.換句話說,就是用戶在使用電腦的時(shí)候,他的操作是隨機(jī)的,無法預(yù)測(cè)的,造成了指令也無法預(yù)測(cè).X86為了增強(qiáng)對(duì)這種情況下的處理能力,加強(qiáng)了亂序指令的執(zhí)行.此外,X86還增強(qiáng)了單核的多線程能力.這樣做的缺點(diǎn)就是,無法很有效的關(guān)閉和恢復(fù)處理器子模塊,因?yàn)橐坏╆P(guān)閉,恢復(fù)起來就很慢,從而造成低性能.為了保持高性能,就不得不讓大部分的模塊都保持開啟,
此外,在操作系統(tǒng)這個(gè)級(jí)別,個(gè)人電腦上通常會(huì)開很多線程,而移動(dòng)平臺(tái)通常會(huì)做優(yōu)化,只保持必要的線程.這樣使得耗電差距進(jìn)一步加大.當(dāng)然,如果X86用在移動(dòng)平臺(tái),肯定也會(huì)因?yàn)榫€程少而省電.凌動(dòng)系列(ATOM)專門為這些特性做了優(yōu)化,在一定程度上降低亂序執(zhí)行和多線程的處理能力,從而達(dá)到省電.
此外,現(xiàn)在移動(dòng)處理器都是片上系統(tǒng)(SoC)結(jié)構(gòu),也就是說,處理器之外,圖形,視頻,音頻,網(wǎng)絡(luò)等功能都在一個(gè)芯片里.這些模塊的打開與關(guān)閉就容易預(yù)測(cè)的多,并且可以通過軟件來控制.這樣,整體功耗就更加取決于軟件和制造工藝而不是處理機(jī)結(jié)構(gòu).在這點(diǎn)上,X86的處理器占優(yōu)勢(shì),因?yàn)镮ntel的工藝有很大優(yōu)勢(shì),而軟件優(yōu)化只要去做肯定就可以做到.
以上原因我覺得較好的解釋了ARM和X86的功耗差別.
現(xiàn)在看看趨勢(shì).
Intel現(xiàn)在積極推進(jìn)晶體管工藝革新,簡(jiǎn)化前端設(shè)計(jì),所以功耗劣勢(shì)會(huì)逐步減低.再有,隨著工藝的進(jìn)一步發(fā)展,以后的移動(dòng)設(shè)備主要功耗會(huì)轉(zhuǎn)移到外部設(shè)備而非處理器.比如內(nèi)存,顯示屏,通訊模塊等.這樣,性能會(huì)變的越來越重要.不過Intel有個(gè)難以跨越的鴻溝,就是成本,為了保持高利潤(rùn),就算可以降低也不會(huì)愿意降低.等到不得不靠降成本維生的那一天,說明技術(shù)優(yōu)勢(shì)不復(fù)存在,公司也快走到頭了,只能轉(zhuǎn)型依靠服務(wù)和平臺(tái)來掙錢.這點(diǎn)可以參照思科和華為的競(jìng)爭(zhēng)史.大膽預(yù)測(cè),如果2013之后人類仍舊存在,移動(dòng)處理器會(huì)逐漸分為兩個(gè)市場(chǎng),低端ARM把持,高端Intel獨(dú)占.
評(píng)論