未來是屬於 ARM 為代表的精簡指令集還是 x86 為代表的複雜指令集?
ARM vs. x86 不是一個技術問題,而是一個商業問題。為什麼這麼說呢?且聽我細細分解:
首先,「x86 比 ARM 功耗高」這一點,在事實上已經不再成立了,具體的數據和分析可以參考 [1]。文章比較長,數據也很多,如果沒空看也沒關係,看看最後一頁的這張表就行了:
這裡比較的是兩個平板設備:採用 NVIDIA Tegra 3 (40nm ARM 處理器) 的 Microsoft Surface RT 平板電腦和採用 Intel Clover Trail Atom (32nm x86 處理器) 的 Acer W510 平板電腦。可以看到,每一個測試項目中 Atom 的功耗都比 Tegra 3 低不少。這還不是最要命的,更要命的是 Atom 的性能比 Tegra 3 高,也就是說 Atom 可以在更短的時間內完成同樣的任務然後進入低功耗休眠狀態以節省電力,而且在休眠狀態下 Atom 的功耗也只有 Tegra 3 的差不多一半。
當然,Atom 並不能完全代表 x86 處理器,Tegra 3 也只是諸多 ARM 處理器中比較費電的一款,但這個例子的教育意義在於它打破了傳統上認為「ARM 比 x86 省電」的迷思:沒錯,在對性能要求不高的情況下,ARM 的確比 x86 省電,因為 ARM 天生就是為低功耗這一目標打造的;但隨著應用的不斷深入,人們對移動設備的性能要求越來越高,目前在高端平板【或者說普通筆記本替代品】這個尺度的應用上以 Atom 為代表的 x86 處理器已經具有相當的功耗優勢。假以時日,在給定性能基礎上 x86 做到比 ARM 功耗更低並不存在太大技術上的障礙。
其次,處理器功耗只是整個設備功耗的一部分,甚至不是最主要的部分,特別是在觸屏移動設備上還有屏幕、無線通訊模塊這樣的耗能大戶。比如從上面那張表可以看出,處理器的功耗佔總功耗的比例,在絕大多數情況下都不超過 20%,實際使用場合下的功耗佔比更是會低於 10%【處理器大部分時候在休眠】。技術的進步可以相對快速的降低處理器的功耗,但由於物理規律的限制【比如屏幕始終需要維持足夠的亮度、無線通訊始終是需要發射足夠強的電磁波】,設備上的其他耗能大戶功耗降低的幅度要小得多。這就意味著單純削減處理器功耗以延長續航時間的邊際效用會越來越小,到一定程度後對整個設備的續航時間的影響變得微乎其微、花大成本提高處理器功耗的回報太低以至於不經濟。Intel 的下一代平台 Haswell 之所以要強調全平台的低功耗也部分是出於這個原因。當然目前我們還沒有到那個時候,現在還不用操心這個,但要記住這一點。
————我是技術/商業分割線————
好了,如果現在你和我一樣相信 Intel 有能力在功耗和性能上都戰勝 ARM,為什麼現在絕大部分移動設備採用的是 ARM 而不是 x86 處理器呢?或者說為什麼 Intel 會在移動市場上如此「失敗」呢?
因為 ARM 代表的產業模式對於 Intel 而言是一場商業災難。
Intel 這麼多年習慣的模式是生產製造幾十、幾百美元的處理器,在這個價位上的生產製造毛利率高得嚇人。而正是豐厚的毛利率使得 Intel 敢於付出高昂的代價研發下一代處理器技術和生產線製程,從而保持領先競爭對手至少一個代際的技術優勢。比如現在 Intel 的主流 Core 系列的製程是 22nm,同時期的 ARM 還處於 40nm 到 32nm 或者 32nm 到 28nm 的過渡階段,而 Intel 已經在新建 14nm 的生產線了。
反觀一片 ARM 處理器才賣幾美元,利潤率微薄,即便出貨量大不少【不要忘了出貨量和生產線投入之間的準線性關係】,卻也不能滿足 Intel 這樣的巨鱷【巨餓?XD】的胃口,更不能讓它保持目前的「高研發/高毛利相互驅動」的商業模式。不玩自家的遊戲規則,Intel 淪為二三流廠商那是分分鐘可能發生的危險。Intel 管理層不希望看到這個未來,Intel 的股東們更不希望。
另外,移動 SoC 市場中公司之間的合作模式也不適合 Intel。為了節省製造成本和降低功耗,移動 SoC 經常需要集成多家廠商的 IP 塊於一片上,那麼兩個問題就隨之而來了:1) Intel 會不會授權自己的 IP 塊給其他廠商,比如蘋果?這可不是 Intel 擅長的,因為授權設計的收入比銷售最終產品的收入要低得多;2) 最終生產的時候用誰的生產線?Intel 可不會白白的讓出自己投入巨資研發製造的最新製程的生產線給別人用;就算 Intel 願意,別人也不見得用得起,畢竟有低毛利率的限制。而 ARM 則沒有這些顧慮:ARM 設計和生產是分離的,設計的 IP 塊可以單獨授權給各家廠商自行定製整合,而製造採用的是比較成熟的生產線,成本低、可選廠家也多。
這就是為什麼 Intel 在移動領域涉足很晚也很勉強、為什麼功耗低、單價更低的 Atom 處理器始終比最先進的 Core 處理器落後一兩代的原因。非不能也,乃不為也;因何不為?利益使然爾!
然而市場現實是台式機、筆記本的出貨量穩步下降,Intel 寄予厚望的 Ultrabook 不成氣候也沒能讓筆記本市場死灰復燃;與此同時,移動設備份額穩步飆升,ARM 處理器的性能在多數場合都能滿足需求【good enough】,甚至有威脅 Intel 在伺服器市場的潛能。這一切都迫使 Intel 不得不面對 ARM 這個難題;而這個難題的主要癥結不在於技術,而在於 Intel 能不能否定自我、推倒重來。
[1]: AnandTech - The x86 Power Myth Busted: In-Depth Clover Trail Power Analysis
大家講的都是處理器的性能和功耗,只有一位提到了Ecosystem的問題,我個人覺得這在目前挺關鍵的。就處理器本身而言,ARM一直專註於嵌入式市
場,A15也是針對嵌入式伺服器的,ARMv8還是瞄準嵌入式應用。而嵌入式系統對可靠性和低成本的追求就導致了現在SoC的高集成性,實際上現在不是多
核,是眾核。比如一個應用處理器上會有高性能的ARM內核,也會有低性能超低功耗的ARM內核,還可以加上專用的DSP,或者GPU,VPU以及其他專用
的IP。這樣集成出來的片上系統才能適合多種多樣的嵌入式應用場景的需求,而滿足這些需求的眾多處理器不是一家半導體廠商提供的,是一堆,因此各種細分市
場都會得到照顧。而Intel雖然的SoC上已經邁出步伐,甚至於在下一代的面向嵌入式的BayTrail平台中把IOH也集成了,但是Intel一家能
滿足嵌入式的眾多需求嗎?答案顯然是不可能的,因此在ARM的巨大生態系統面前,Intel即使在專註的移動市場砸錢打造X86的應用市場(它肯定能做
到)扶持X86的嵌入式生態系統,成功的變數也很大。Intel把Windriver收購了就能擁抱嵌入式OS嗎?RIM把QNX收購了也沒見Z10能驚
天動地。當然Intel比RIM有錢多了,燒錢是其強項,在性能不是問題的前提下,或許HTML5會是X86扳平軟體生態落後的機會,如果是這樣X86就
要儘早踢開微軟,否則兩盤棋下不到一處去。2013年底 - 2014年底這一年,會是決定性一年。
ARM在降低功耗的同時不斷提升性能
Intel在提高性能的同時不斷降低功耗
這兩條曲線,很快就會有相交的一天
需要注意的是,Intel的工廠很牛逼,14nm已經不遠,屆時功耗將不再是問題。
可惜的是,intel錯過了eco system發展的時機,迎頭趕上,需要大量的金錢和時間,這個就看高層怎麼把握了。竟然重定向了。。把之前問題看到的回答搬過來
以下是@pansz的答案
問題RISC 與 CISC 在原理上有哪些差異,是否存在誰更優秀的問題?
理論上,兩者確實有區別。
但是以現在的工業水平,兩者的區別實際上不存在。
樓主知道的那位高人說得完全正確,現在的 x86 體系根本不是cisc,他表面上接受cisc指令,實際上通過解碼器轉化成risc,然後底層運行的都是risc指令,換句話說,在通用cpu領域已經完全是risc的天下,因為x86的解碼器已經非常成熟,解碼是並行進行,等效於沒有解碼開銷,x86跟risc沒有效率上的差異。評論提醒,奔騰Pro開始的X86就是RISC的內核+外圍電路的架構,AMD比intel更早K6架構就是RISC內核了,所以世界早就被RISC統一啦~也就沒有必要討論未來是誰的問題啦。
至於ARM。想繼續提升性能必然會增加指令複雜度,到最後也就只能得到跟X86相當的能耗比水平。所以不要神話
轉來的帖子,其實在評判二者發展前景之前,還有很多人對二者的區別認知不足。我在網上看到一篇文章,對二者的區別描述較為通俗易懂,轉來給大家看看。
(轉)普及一下ARM和X86的區別
這裡簡單來談一下,ARM和X86之間為什麼不太具有可比性的問題。要搞清楚這個問題首先要明白什麼是架構,之前也有很多人提到了架構不同,但架構是什麼意思?它是一個比較抽象的概念,不太容易用幾句話就解釋清楚。我們要明白CPU是一個執行部件,它之所以能執行,也是因為人們在裡面製作了執行各種功能的硬體電路,然後再用一定的邏輯讓它按照一定的順序工作,這樣就能完成人們給它的任務。也就是說,如果把CPU看作一個人,首先它要有正常的工作能力(既執行能力),然後又有足夠的邏輯能力(能明白做事的順序),最後還要聽的懂別人的話(既指令集),才能正常工作。而這些集中在一起就構成了所謂的「架構」,它可以理解為一套「工具」、「方法」和「規範」的**。不同的架構之間,工具可能不同,方法可能不同,規範也可能不同,這也造成了它們之間的不兼容——你給一個義大利泥瓦匠看一份中文寫成的烹飪指南,他當然不知道應該幹什麼了。
如果還看不懂,沒關係,我們繼續。從CPU發明到現在,有非常多種架構,從我們熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它們之間的差距都非常大。但是如果從最基本的邏輯角度來分類的話,它們可以被分為兩大類,即所謂的「複雜指令集」與「精簡指令集」系統,也就是經常看到的「CISC」與「RISC」。屬於這兩種類中的各種架構之間最大的區別,在於它們的設計者考慮問題方式的不同。我們可以繼續舉個例子,比如說我們要命令一個人吃飯,那麼我們應該怎麼命令呢?我們可以直接對他下達「吃飯」的命令,也可以命令他「先拿勺子,然後舀起一勺飯,然後張嘴,然後送到嘴裡,最後咽下去」。從這裡可以看到,對於命令別人做事這樣一件事情,不同的人有不同的理解,有人認為,如果我首先給接受命令的人以足夠的訓練,讓他掌握各種複雜技能(即在硬體中實現對應的複雜功能),那麼以後就可以用非常簡單的命令讓他去做很複雜的事情——比如只要說一句「吃飯」,他就會吃飯。但是也有人認為這樣會讓事情變的太複雜,畢竟接受命令的人要做的事情很複雜,如果你這時候想讓他吃菜怎麼辦?難道繼續訓練他吃菜的方法?我們為什麼不可以把事情分為許多非常基本的步驟,這樣只需要接受命令的人懂得很少的基本技能,就可以完成同樣的工作,無非是下達命令的人稍微累一點——比如現在我要他吃菜,只需要把剛剛吃飯命令里的「舀起一勺飯」改成「舀起一勺菜」,問題就解決了,多麼簡單。
這就是「複雜指令集」和「精簡指令集」的邏輯區別。可能有人說,明顯是精簡指令集好啊,但是我們不好去判斷它們之間到底誰好誰壞,因為目前他們兩種指令集都在蓬勃發展,而且都很成功——X86是複雜指令集(CISC)的代表,而ARM則是精簡指令集(RISC)的代表,甚至ARM的名字就直接表明了它的技術:Advanced RISC Machine——高級RISC機。到了這裡你就應該明白為什麼RISC和CISC之間不好直接比較性能了,因為它們之間的設計思路差異太大。這樣的思路導致了CISC和RISC分道揚鑣——前者更加專註於高性能但同時高功耗的實現,而後者則專註於小尺寸低功耗領域。實際上也有很多事情CISC更加合適,而另外一些事情則是RISC更加合適,比如在執行高密度的運算任務的時候CISC就更具備優勢,而在執行簡單重複勞動的時候RISC就能佔到上風,比如假設我們是在舉辦吃飯大賽,那麼CISC只需要不停的喊「吃飯吃飯吃飯」就行了,而RISC則要一遍一遍重複吃飯流程,負責喊話的人如果嘴巴不夠快(即內存帶寬不夠大),那麼RISC就很難吃的過CISC。但是如果我們只是要兩個人把飯舀出來,那麼CISC就麻煩得多,因為CISC里沒有這麼簡單的舀飯動作,而RISC就只需要不停喊「舀飯舀飯舀飯」就OK。這就是CISC和RISC之間的區別。但是在實際情況中問題要比這複雜許許多多,因為各個陣營的設計者都想要提升自家架構的性能。這裡面最普遍的就是所謂的「發射」概念。什麼叫發射?發射就是同時可以執行多少指令的意思,例如雙發射就意味著CPU可以同時拾取兩條指令,三發射則自然就是三條了。現代高級處理器已經很少有單發射的實現,例如Cortex A8和A9都是雙發射的RISC,而Cortex A15則是三發射。ATOM是雙發射CISC,Core系列甚至做到了四發射——這個方面大家倒是不相上下,但是不要忘了CISC的指令更加複雜,也就意味著指令更加強大,還是吃飯的例子,CISC只需要1個指令,而RISC需要5個,那麼在內存帶寬相同的情況下,CISC能達到的性能是要超過RISC的(就吃飯而言是5倍),而實際中CISC的Core i處理器內存帶寬已經超過了100GB/s,而ARM還在為10GB/s而苦苦奮鬥,一個更加吃帶寬的架構,帶寬卻只有別人的十分之一,性能自然會受到非常大的制約。為什麼說ARM和X86不好比,這也是很重要的一個原因,因為不同的應用對帶寬需求是不同的。一旦遇到帶寬瓶頸,哪怕ARM處理器已經達到了很高的運算性能,實際上根本發揮不出來,自然也就會落敗了。說到這兒大家應該也已經明白CISC和RISC的區別和特色了。簡而言之,CISC實際上是以增加處理器本身複雜度作為代價,去換取更高的性能,而RISC則是將複雜度交給了編譯器,犧牲了程序大小和指令帶寬,換取了簡單和低功耗的硬體實現。但如果事情就這樣發展下去,為了提升性能,CISC的處理器將越來越大,而RISC需要的內存帶寬則會突破天際,這都是受到技術限制的。所以進十多年來,關於CISC和RISC的區分已經慢慢的在模糊,例如自P6體系(即Pentium Pro)以來,作為CISC代表的X86架構引入了微碼概念,與此對應的,處理器內部也增加了所謂的解碼器,負責將傳統的CISC指令「拆包」為更加短小的微碼(uOPs)。一條CISC指令進來以後,會被解碼器拆分為數量不等的微碼,然後送入處理器的執行管線——這實際上可以理解為RISC內核+CISC解碼器。而RISC也引入了指令集這個就邏輯角度而言非常不精簡的東西,來增加運算性能。正常而言,一條X86指令會被拆解為2~4個uOPs,平均來看就是3個,因此同樣的指令密度下,目前X86的實際指令執行能力應該大約是ARM的3倍左右。不過不要忘了這是基於「同樣指令密度」下的一個假設,實際上X86可以達到的指令密度是十倍甚至百倍於ARM的。最後一個需要考慮的地方就是指令集。這個東西的引入,是為了加速處理器在某些特定應用上性能而設計的,已經有了幾十年的歷史了。而實際上在目前的應用環境內,起到決定作用的很多時候是指令集而不是CPU核心。X86架構的強大,很多時候也源於指令集的強大,比如我們知道的ATOM,雖然它的X86核心非常羸弱,但是由於它支持SSE3,在很多時候性能甚至可以超過核心性能遠遠強大於它的Pentium M,這就是指令集的威力。目前X86指令集已經從MMX,發展到了SSE,AVX,而ARM依然還只有簡單而基礎的NEON。它們之間不成比例的差距造成了實際應用中成百上千倍的性能落差,例如即便是現今最強大的ARM內核依然還在為軟解1080p H.264而奮鬥,但一顆普通的中端Core i處理器卻可以用接近十倍播放速度的速度去壓縮1080p H.264視頻。至少在這點上,說PC處理器的性能百倍於ARM是無可辯駁的,而實際中這樣的例子比比皆是。這也是為什麼我在之前說平均下來ARM只有X86幾十分之一的性能的原因。打了這麼多字,其實就是為了說明一點,雖然現在ARM很強大,但它距離X86還是非常遙遠,並沒有因為這幾年的進步而縮短,實際上反而在被更快的拉大。畢竟它們設計的出發點不一樣,因此根本不具備多少可比性,X86無法做到ARM的功耗,而ARM也無法做到X86的性能。這也是為什麼ATOM一直以來都不成功的原因所在——Intel試圖用自己的短處去和別人的長處對抗,結果自然是不太好的,要不是Intel擁有這個星球上最先進的半導體工藝,ATOM根本都不可能出現。而ARM如果嘗試去和X86拼性能,那結果自然也好不到哪兒去,原因剛剛也解釋過了。不過這也不意味著ARM以後就只能佔據低端,畢竟任何架構都有其優點,一旦有應用針對其進行優化,那麼就可以揚長避短。X86的繁榮也正是因為整個世界的資源都針對它進行了優化所致。只要能為ARM找到合適的應用與適合的領域,未來ARM也未必不可以進入更高的層次。舉個反例,用的也是anandtech的例子
AnandTech - The iPhone 5 Review
三個製造工藝類似的處理器(均為32/28nm工藝,其中snapdragon還是性能較差的無HKMG的TSMC 28nmLP),在同樣的kraken網頁測試的高負載場景下
atom Z2460的一個x86 CPU的功耗略微高於兩個qualcomm krait armv7指令集 CPU或兩個Apple A6 swift armv7指令集 CPU
-------------相比於功耗,英特爾更大的問題可能還是在程序編譯上要把原本為arm編譯的原生代碼移植到x86處理器可能並不是簡單的活
RISC是想通過精簡指令達到簡化處理器結構的目的。採用RISC的處理器在功耗上肯定要低於CISC。性能上因為RISC採用硬布線技術,應該也會高於微程序的CISC。RISC是對CISC的簡化,但更是優化。隨著RISC思想被業界接受,CISC在設計過程中也開始借鑒RISC的思路了。這就造成了目前RISC和CISC不分高低的局面。這種局面應該會持續下去。現在intel的低功耗建立在更高的技術節點上,而在不斷接近物理極限的過程中,這點優勢就會不斷減小。(intel貌似給FPGA做FAB,估計不會給ARM的IP廠商做,要是做了就好玩了。)
至於big.Little不知道是不是用的DVFS,如果是的話,感覺功耗減小不會太明顯。說實話,感覺ARM到現在還沒有達到,性能足夠的程度。而ATOM,雖然靠工藝實現了不錯的能耗比,但是背著X86,勢必產生很大的系統開銷。 TBH,如果intel能拋棄x86(現在看x86不是一個很好的標準,在過渡到64位時的妥協,給低功耗處理器的製造產生了很大負擔。),ARM能增加更多的SIMD,或許兩家能走得更快。
至於誰會勝利還不好說,畢竟在移動設備上,性能能耗僅僅是一方面,外圍SoC啥的都要考慮,舉個例子,高通之前產品性能並不強(ARM11 ,A8那時),但是還是有很高的市場,誰讓他有一堆通訊專利,基帶集成好。
現在純CISC貌似就知道個Z196,實際從586 X86就是把大指令decode成microop進行處理,也就是類似RISC了。 至於Power和Sparc之類貌似也不節能XD。
至於IBM的碳納米管,還有光電傳導等實驗室技術距離實用還很遠(光電開關啥的intel和hp等也都早早開始研究),至於intel突破物理極限,保持觀望態度。最後YY下用HEMT做CPU。XD
嚴格的說,現在已經沒有CISC了。未來當然屬於RISC ISA類的處理器啦。規整的指令格式解碼方便多了,對微碼和微序列器的要求極度降低。同等面積和功耗下,並不看好x86今後的發展。當然,ARM農村包圍城市的策略很贊。期待今後RISC系(ARM/RISC-V等)處理器的進一步發展和Windows的兼容層完善。
打個不恰當的比喻,樓主好比在說未來屬於飛機還是汽車
隨著移動端的應用的複雜度的增加,ARM不得不繼續提升性能,這不是ARM的強項,而是Intel的強項,Intel只需要在原來的路上走著,不被這種ARM的低價商業模式打垮,那麼必然贏到最後。
ARM 感覺生態系統很好,今後的發展很有前景
RISC的大神曾經說過「如果非要說ARM和RISC有什麼關係?那或許是名字吧」x86 和 arm,是複雜指令集 和 精簡指令集的區別,是馮諾依曼體系和哈弗體系的區別。從指令集深入一下,還有流水線,時鐘周期的各種區別。兩者不能簡單的來比較。
個人認為,在不考慮已經有眉目的量子計算與遙遙無期的光邏輯門,從市場角度,arm 的未來更加光明。
MIPS:優雅的學術設計成果,RISC類;X86 : 不夠優雅,但是市場成功,屬CISC類,但是也融合了RISC的特點。在PC方面是無疑的王者A15 功耗高並 不意味著 ARM 在功耗上的優勢消失了。
今天的移動 CPU 已經進入了「多核」時代。三星新的八核 CPU 就是 A15 四核 + A7 四核。考慮投入電量和出產運算能力的比率, A7 四核優秀的一塌糊塗。而且,這些運算能力可以對付今天手機絕大多數日常應用了。
充分優化過的系統,完全可以做到平時用 A7 ,在真正需要的時侯再動用 A15 。
Intel 在功耗上有可以勝過 A7 的方案嗎?
intel那一套提高性能的手段基本上arm都掌握了。只是arm沒有intel純熟。但是intel也背上了一套x86兼容的歷史包袱。同樣的工藝條件下應該arm佔優。RISC寄存器多,編譯器的進步讓RISC獲益更多。X86地址無關代碼寄存器不夠用的問題。X86的分段又分頁的問題。等等。。。intel遲早會拋棄x86這塊油田。只不過現在這個油田還遠沒有枯竭。
推薦閱讀:
※如何評價「中國成功量產28nm高通驍龍處理器「?如何看待驍龍425?
※純粹立體電路會有什麼特點?
※樂鑫的物聯網晶元esp8266使用的MCUTensilica L106到底是什麼來頭??
※摩爾定律是正確的么?
※驍龍810為什麼發熱這麼嚴重?