色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

請問X86與ARM的功耗控制有什么區別

謝彥文2年前13瀏覽0評論

請問X86與ARM的功耗控制有什么區別?

ARM和X86功耗的差別一直是個很熱的話題.ARM可以做的很低,甚至1瓦都不到.而X86服務器的芯片可以達到100-200瓦,就算是嵌入式處理器ATOM系列也需要幾瓦.很多人說這是指令集的關系.ARM采用精簡指令集,X86采用復雜指令集,前者每條功能簡單,單挑指令耗電低.而后者每條指令復雜,單個指令耗電高.但是這種解釋很模糊.如果大家都做同樣的事情,完成一個大功能,精簡指令集需要指令較多,而復雜指令集需要指令少,加起來到底誰耗電多呢.還有,現在處理器普遍采用微指令,大的指令會被拆分成更小的指令,以達到更高的流水線效率.簡單指令集的單條微指令和復雜指令集的單條微指令相比的話,情況就更復雜.我手頭沒有關于比較的具體數據,但是至少前文所列出關于功耗和指令集相關的解釋不是很有說服力.今天碰到一個資深人士,總算找到一個比較合理的解釋.首先,功耗和工藝制程相關. ARM的處理器,不管是哪家,主要是靠臺積電等專業制造商生產的.而Intel的是自己的工廠制造的.一般來說后者比前者的工藝領先一代,也就是2-3年.如果同樣的設計,造出來的處理器因該是Intel的更緊湊,比如一個是22納米,一個是28納米,同樣功能肯定是22納米的耗電更少.那為什么反而ARM的比X86耗電少得多呢.這就和另外一個因素相關了,那就是設計.設計又分為前端和后端設計,前端設計體現了處理器的構架,精簡指令集和復雜指令集的區別是通過前端設計體現的.后端設計處理電壓,時鐘等問題,是耗電的直接因素.先說下后端怎么影響耗電的.我們都學過,晶體管耗電主要兩個原因,一個是動態功耗,一個是漏電功耗.動態功耗是指晶體管在輸入電壓切換的時候產生的耗電,而所有的邏輯功能的0/1切換,歸根結底都是時鐘信號的切換.如果時鐘信號保持不變,那么這部分的功耗就為0.這就是所謂的門控時鐘(Clock Gating).而漏電功耗可以通過關掉某個模塊的電源來控制(Power Gating).當然,其中任何一項都會使得時鐘和電源所控制的模塊無法工作.他們的區別在于,門控時鐘的恢復時間較短,而電源控制的時間較長.此外,如果條單條指令使用多個模塊的功能,在恢復功能的時候,并不是最慢的那個模塊的時間,而可能是幾個模塊時間相加,因為這牽涉到一個上電次序(Power Sequence)的問題,也就是恢復工作時候模塊間是有先后次序的,不遵照這個次序,就無法恢復.而遵照這個次序,就會使得總恢復時間很長.所以在后端這塊,可以得到一個結論,為了省電,可以關閉一些暫時不會用到的處理器模塊.但是也不能輕易的關閉,否則一旦需要,恢復的話會讓完成某個指令的時間會很長,總體性能顯然降低.此外,子模塊的門控時鐘和電源開關通常是設計電路時就決定的,對于操作系統是透明的,無法通過軟件來優化.再來看前端.ARM的處理器有個特點,就是亂序執行能力不如X86.換句話說,就是用戶在使用電腦的時候,他的操作是隨機的,無法預測的,造成了指令也無法預測.X86為了增強對這種情況下的處理能力,加強了亂序指令的執行.此外,X86還增強了單核的多線程能力.這樣做的缺點就是,無法很有效的關閉和恢復處理器子模塊,因為一旦關閉,恢復起來就很慢,從而造成低性能.為了保持高性能,就不得不讓大部分的模塊都保持開啟, 并且時鐘也保持切換.這樣做的直接后果就是耗電高.而ARM的指令強在確定次序的執行,并且依靠多核而不是單核多線程來執行.這樣容易保持子模塊和時鐘信號的關閉,顯然就更省電.此外,在操作系統這個級別,個人電腦上通常會開很多線程,而移動平臺通常會做優化,只保持必要的線程.這樣使得耗電差距進一步加大.當然,如果X86用在移動平臺,肯定也會因為線程少而省電.凌動系列(ATOM)專門為這些特性做了優化,在一定程度上降低亂序執行和多線程的處理能力,從而達到省電.此外,現在移動處理器都是片上系統(SoC)結構,也就是說,處理器之外,圖形,視頻,音頻,網絡等功能都在一個芯片里.這些模塊的打開與關閉就容易預測的多,并且可以通過軟件來控制.這樣,整體功耗就更加取決于軟件和制造工藝而不是處理機結構.在這點上,X86的處理器占優勢,因為Intel的工藝有很大優勢,而軟件優化只要去做肯定就可以做到