首先所有推崇RISC-V的文章都在說RISC-V架構簡單,功耗面積低,這其實跟以前夸MIPS沒什么不同。在CPU設計里,指令集是其中最簡單最基礎的一部分,可以說,采用RISC架構的指令集都差不多,無非是在寄存器數目,分支跳轉,數據存取等指令方面做一些取舍,達到某種平衡,滿足某些特定需要。
在學院派那兒PK的功耗面積,在工程派眼中離實用還遠的很。做出一個demo和做出真正工程上能用的產品還隔著十萬八千里,而工程上能用距離商業成功又隔了十萬八千里。因為一個指令集就把某種架構夸上天實在沒必要。
開源架構受到追捧隱含的另一個意思是Arm等IP廠商授權太貴,所以總有人揭竿而起要革商業公司的命,用免費打敗收費。
第一個誤會是指令集架構授權和CPU。
核的授權被刻意模糊了。Arm的CPU核授權門檻其實很低,甚至有DesignStart你們可以了解一下,基本可以免費獲取Cortex-M0和Cortex-M3,一些媒體文章動輒說Arm授權費要千萬美金,錢真有那么好賺嗎?Arm被孫正義收購的時候營收一年也就10多億美金,這生意絕對說不上大。架構授權的客戶都是財大氣粗玩的起的主兒,如我大蘋果、大高通、大三星等,初創公司完全有很多很便宜的選擇,干嘛一上手就搞架構授權?刻意強調千萬美金授權不能不說是有意誤導。
第二個誤會則是來自開源社區。
很多人說開源架構免費多好呀,但我要說從架構定義到CPU核實現這中間有很長的路要走,這一部分并不免費,像SiFive等公司都是要收錢的,與Arm的CPU核授權并無多少區別。把開源解讀為免費恐怕是一個中英文翻譯中的誤會。在開源社區的概念剛剛被引入的時候就有人把Free Software翻譯為免費軟件,但其實更準確的翻譯是自由軟件或開源軟件,開源不等于免費,免費也不等于開源。開源指的是源代碼公開,任何人可以免費獲取自行編譯或重新開發,只是要遵循相應的版權協議,像Linux遵循的是GPL協議,用GPL開源協議的代碼重新開發的軟件也必須開源。免費指的是軟件不收錢,但是不一定開源。大名鼎鼎的Redhat Linux是開源的,但是也不影響Redhat公司靠服務費收錢。在開源架構社區也是一樣,指令集是開源的,遵循BSD協議,各家開發的產品不是必須要開源回饋給社區。各家公司在這個指令集基礎上開發的自己的CPU核產品都是要收費的,畢竟開發CPU核產品也是要投入人力研發的啊。
以上這些都是老生常談。開源架構每過幾年就要來一輪,背后其實大家都懂,就是學院派總是要有點新的研究成果,“國外一開源,我們就自主”的風氣決定了,國外有什么新的指令集架構開源都會在國內激起一陣躁動。但學術不等于商業。CPU架構從上世紀90年代的10多家到現在以X86和Arm為主,背后其實是更深刻的產業和商業規律在主導。在我看來,有幾下幾個要素:
1.指令集架構創新不具有革命性
有多篇論文分析過指令集架構和性能功耗的關系,結論是指令集的差別與性能和能耗沒有關系,兩者性能的差異是由于需求的不同在硬件設計上的反映,例如指令發射速度、分支預測、亂序執行等方面,提升這些方面的性能需要使用到大量的硬件,使得硬件設計變得更加復雜,并且帶來了更多的能耗。正如吳軍在《浪潮之巔》中所說,“數量級是判斷一項新技術是革命性還是革新性的關鍵”。Arm處理器功耗相比于x86有了數量級的提升,手機市場又比PC市場出貨量要大一個數量級,這才有了Arm在移動互聯網市場占據了端側的優勢,取代了x86指令集,也讓架構授權模式為更多玩家所認可。在開源架構和Arm的PK中,沒有這種數量級上的差異。Arm和RISC-V都是RISC架構的,只是指令集定義的不同,這就決定了不可能從指令集PK中獲得什么優勢,還是看具體的硬件實現和功能取舍。
2.技術先進性不等于商業成功
每次有人強調新的指令集比原有的指令集要高效的時候我就笑了,大家想想鍵盤布局的故事。現在的QWERT鍵盤布局雖然奇怪,但延續了這么多年,已經有了強大的慣性,即使有人發明了更高效的鍵盤布局也無法得到廣泛支持。指令集上的故事也是類似。Intel的x86指令集是CISC架構的,曾被人Diss架構臃腫。歷史上也有多次“x86革命”想取代x86架構,但都因為得不到廣泛的支持最終以失敗告終。巨大的商業利益和強勁的軟硬件的支持可以使得x86架構難以撼動,這些都不是一個簡單的技術問題。
3.指令集架構是一個昂貴的公共品。
對學院派來說,能運行軟件跑成Demo發論文就是成功,對商業公司來說則是要完成從指令集定義到CPU微架構的設計,到整個芯片的設計和相應軟件,工具鏈的開發和維護,以及在上面運行的操作系統,豐富的函數庫以及應用程序,還需要得到大量用戶認可,這些都不是一朝一夕之功。設計指令集不難,讓一個指令集得到市場認可很難,而一旦得到認可,人們要遷移的成本也很高,這就是Intel能多年在PC和服務器市場稱霸的原因。Intel也因為x86指令集的成功獲得了巨大的商業利益。指令集架構這一公共品是如此昂貴,無法通過社區自發成長起來,而必須結合商業公司的力量。Linux也是在Android采用以后才得到了大發展。
Arm通過授權模式讓眾多CPU廠商可以共享一套指令集和編譯工具,極大的降低了眾多CPU廠商的開發門檻,其實相當于眾多CPU廠商眾籌了一個Arm指令集,節省的是各家自己開發并維護一套指令集的開銷。也正因為這個原因,市場對CPU架構的人員需求減少了,對應用程序開發者的需求增多了,Arm生態系統才有了今天的發展。
現在眾多廠商眾籌另一個指令集,然后呢?也一樣有巨大的生態開發成本,從指令集定義到真正成熟得到廣泛應用,沒有一二十年起不來。硬件不像軟件,有什么錯誤可以發布新版本去修正,一旦流片了再修改就難了。一個IP要做好不是那么容易的事情,需要有客戶一起去趟早期開發過程中的坑,稍有不慎出現一個Bug,前期投入就要打水漂。對商業公司來說開發成本損失還是小事,錯失了市場機遇才是最大的損失。即使新指令集生態真能起來,大多數公司要么維護自己的CPU核開發團隊,要么從IP授權公司購買相應的架構實現,真的能省錢嗎?還是到時候再切換一次指令集,把這些坑再趟一遍?
另外,開源架構采用的指令集架構開源,各家可以自己設計自己的CPU核的方式從一開始就埋下了碎片化的種子,各家IP公司自己設計自己的擴展,并且不需要回饋社區,其結果就是各自有一套自己的開發工具和軟件庫,重新走到了上世紀90年代有多家指令集架構的局面,對芯片開發公司來說并沒有節省什么成本,反而因為各自微架構的特殊性帶來操作系統和應用程序的不兼容,這是與商業世界成本盡量降低相矛盾的。
指令集是越多人使用價值越大,指令集架構也就更貴,而CPU核只是部分公司使用,相對于指令集架構就便宜一些,這是Arm的商業模式,是目前經受了實踐的檢驗的一種模式。當年MIPS指令集架構授權很便宜,CPU核賣的貴,是從成本而不是用戶需求定價,正好搞反了。結果就是各家都拿了指令集自己去設計MIPS核,造成碎片化和分裂。現在開源社區也是類似的問題。指令集開源,準入門檻很低,IP設計廠商各搞一攤。開源社區沒有力量去維護各家實現的統一標準,各家也只能通過低價來搶市場,芯片設計廠商則需要面對不同IP廠商的CPU核實現,不能發揮統一架構的優勢,構成惡性循環。
-
cpu
+關注
關注
68文章
10870瀏覽量
211878 -
指令集
+關注
關注
0文章
226瀏覽量
23384 -
開源架構
+關注
關注
0文章
8瀏覽量
6962
原文標題:“中國芯”的“新曙光”?它會革掉ARM的命嗎?
文章出處:【微信號:gh_bee81f890fc1,微信公眾號:面包板社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論