隨著中科龍芯IPO在科創板審議通過、海光信息IPO信息更新,國產CPU越來越多地出現于公眾視野。指令集、微架構的實現是CPU芯片設計背后的底層架構,也是CPU設計企業的核心知識產權。我們將從以下角度分析國產CPU的底層架構、企業的競爭力和發展前景。
一、CPU與指令集架構之間的關系
到目前為止,在所有芯片類型中,CPU是應用最廣泛的芯片之一。CPU是桌面PC、服務器、平板、手機等設備的核心處理芯片,同時也在工業、汽車、醫療、電信等領域終端中的微處理器中經常以CPU內核的形式被廣泛應用。經不完全統計,CPU的全球市場規模在1000億美元左右。根據WSTS,CPU被劃分進邏輯IC和MCU領域,市場空間僅低于存儲類IC。
CPU與GPU、FPGA、ASIC等其他形式的芯片不同,CPU更偏重計算流程的控制以及運算的邏輯,且通用性要求高。CPU接受的程序指令必須通過特有的指令集系統轉變為機器指令,并通過復雜的控制單元的微架構來進行控制性指令的處理。而FPGA、ASIC等類型的芯片不需要指令集系統,其運算程序按照預先設計好的硬件結構直接執行。因此CPU和其他類型的芯片相比,指令集、編譯鏈接等微架構體系非常重要。
底層指令集、微架構設計、匯編鏈接作為CPU的核心商業機密,之前一直被Intel、AMD、ARM等少數幾家國際企業掌握,幾乎不可能對外完全授權。在分析國內CPU設計企業之前,我們先對CPU的指令集、微架構、處理器層次結構等概念進行一個科普。
二、CPU底層架構基礎
1、CPU層次結構和機器語言表達
在CPU等硬件體系中,信號以高電平、低電平的電信號在邏輯門電路中進行傳輸和表達。高電平或低電平在機器語言中用“1”或“0”來表示,根據布爾代數運算律,邏輯運算可以由“與”、“或”、“非”、“與非”、“或非”等等組成,晶體管和反相器組成了邏輯門電路,例如“與門”電路的設計為:當所有的輸入同時為高電平(邏輯1)時,輸出才為高電平,否則輸出為低電平(邏輯0)。通過無數邏輯門電路的組合,就可以實現電信號受控制的傳導和運算。
從與人交互的軟件以及輸入的信號,如何轉變為CPU可識別的硬件語言?CPU通過復雜電路系統對電信號進行排序、計數、控制、存儲和運算,形成新的電信號由輸出系統對外傳出控制信號或運算結果。從提供給程序員的高級編程語言,到底層的電信號機器語言的實現,CPU需要經歷編譯、匯編、譯碼、鏈接等流程,將輸入的變化的電信號變成硬件結構預置可識別和處理的“機器指令”并執行。
我們將CPU的控制和運算過程按照從軟件到硬件、從與人交互層面到底層電路層面的順序,拆解分析如下:
(1)高級編程語言
高級語言如C、C++、Ada、、Lisp、和等,是符合程序員使用習慣的直接與人交互的編程語言。經過編譯器或解釋器的翻譯,高級語言轉換為匯編語言。
(2)匯編語言
匯編語言的數據或指令類型在高級語言的基礎上經過概括和歸納,類型數量非常有限,所代表的是一種面向硬件的編程方法。匯編語言通過匯編器一對一地轉換為機器語言指令。
(3)指令集架構(ISA)
指令集是機器語言指令的集合。類似于人類的詞匯表,指令集是硬件結構可識別的機器指令的集合,只不過每條指令是由一組0和1數字組成的代碼。指令集可分為復雜指令集CISC和精簡指令集RISC。精簡指令集一般包含幾十到幾百個指令,復雜指令集可以包含上千條指令,每條指令代碼被分為操作碼和地址碼等字段,每條指令的字長可以是16位、32位、64位等等。指令集被看作是處理器硬件和編程軟件的接口。
(4)系統層
操作系統內核中預置的指令,在開機時被加載,并直接運行在處理器之上。系統層可以看作是操作系統軟件在底層硬件中預設的一部分,是CPU運行的重要輔助,使機器指令在運行中保持不被修改意義的同時,增加多道程序的同步,以及提供硬件保護、驅動、系統資源管理等重要功能。
(5)控制與運算
a)控制單元:
控制單元要確保指令正確譯碼和執行,從而確保數據在正確的時間移動到正確的寄存器或運算器ALU。對于不用的指令集架構,控制單元對應的譯碼、指令控制和傳輸的硬件結構設計也不同。在指令控制方式上,控制單元可以采用硬連線控制和微程序控制兩種形式。
硬連線控制。從物理上將各控制線與實際的機器指令連接起來,機器指令中不同的字段中不同的位連接到輸入線上,用來驅動不同的數字邏輯部件。硬連線是最直接的物理連接,運行快速,但導致了復雜的信號通路,對于具有大指令集的計算機,幾乎不可能完全實現硬連線控制(以地圖的路線規劃類比,就像在地圖上不可能把任意路線都清晰地鏈接而不糾纏在一起)。在指令集擴充時,對于硬連線控制,需要更高成本地去改變更多物理組件(如同運輸方式變化時,要把每條路線重新建設一遍)。
微程序控制。在微程序控制中,由預置在控制存儲器固件中的微碼組成的解釋器,是一種邏輯運算控制的類似于精準滴漏一樣的結構,可以對輸入信號進行預處理后再分配到正確的位置上。微程序控制可以實現在不改變主要硬件結構的情況下,通過改變微程序存儲器和譯碼器來適應指令集的擴充(就像將地圖上的各路線進行合并和梳理,形成交通樞紐、主路線和分支路線)。
b)運算單元:
算術邏輯運算單元(ALU)基本功能包括算數運算和邏輯運算,以及移位,求補等操作。總體來說,運算單元提取和存儲不同寄存器中的信號并通過設計好的邏輯門電路運算器來進行信號運算處理,相對來說比較容易理解,設計思路相對也沒那么復雜。
(6)數字邏輯層
在最微觀層面,所有的控制和運算都可以看做發生在門電路組成的數字邏輯層,如同毛細血管的最微末端。在微觀層面進行著無數的循環運算的基礎上,形成的運算和控制結果,會再通過控制單元的匯總,從總線對外進行輸出。
2、指令集和架構相關概念解析
(1)指令
指令()是硬件直接能識別的命令,是指由一串二進制數碼組成的機器語言。一條指令通常由兩個部分組成:操作碼和地址碼。操作碼指明該指令要完成的操作的類型或性質,如取數、做加法或輸出數據等;地址碼指明操作對象的內容或所在的存儲單元地址。
(2)指令集
指令集架構,是處理器芯片可執行的一整套指令的集合,是計算機硬件的語言系統。指令集架構主要規定了指令格式、尋址訪存(尋址范圍、尋址模式、尋址粒度、訪存方式、地址對齊等)、數據類型、寄存器。指令集通常包括三大類主要指令類型:運算指令、分支指令和訪存指令。此外,還包括架構相關指令、復雜操作指令和其他特殊用途指令。
(3)微架構
微架構又稱為微體系結構/微處理器體系結構,是一種將給定的指令集架構在處理器中執行的方法或者物理通路,是控制單元和運算單元的物理設計模式。即使基于同樣的指令集,也可以設計出不同的控制單元和處理器核來實現指令的執行,因此對于一種給定指令集,微架構可以被進行調整變化和升級(還是以前文的路線規劃進行類比,雖然選擇固定的運輸方式,但可以有不同的運輸路線)。另一方面,一種微架構一般情況下是只針對一種給定指令集架構進行的物理實現,但在微結構中附加了對其他指令集翻譯的結構后,不排除微結構能對其他指令集進行兼容(如同對之前的運輸方式進行改造和兼容,比如將船運方式兼容為火車輪渡)。由于微架構和指令集的密切關系,指令集架構有時也被納入到微架構的概念之中。
總體而言,微架構決定了取指、分發指令、執行、寫回等操作和控制的微觀通路。雖然,指令集架構可以授權給多家企業,但微架構的具體設計細節,對指令的物理實現方式是各家廠商絕對保密的。
(4)位結構
概況地講,XX位結構(或者說XX位機、字長為XX位等)描述了CPU以下幾方面的結構特征:
運算器一次最多可以處理XX位的數據;
寄存器的最大寬度為XX位;
寄存器和運算器之間的通路為XX位。
例如ARM -A72是支持64位結構的CPU,內存單元的地址在送上地址總線之前,必須在CPU中處理、傳輸、暫時存放,對于64位CPU,能一次性處理、傳輸、暫時存儲64位地址的信息。
(5)IP核
Core,即知識產權核,IP核是指已驗證、可重復利用、具有某種確定功能的芯片設計模塊,或者說是一部分固定的微架構模塊,CPU設計中可以引入多種IP核。
(6)馮諾依曼和哈佛結構
馮·諾依曼結構下,指令和數據需要從同一存儲空間存取,經由同一總線傳輸,無法重疊執行。哈佛結構的指令和數據存在兩個相互獨立的存儲器模塊,使用兩條獨立的總線連接CPU和存儲模塊;而在改進型哈佛結構中,指令和數據存在兩個相互獨立的存儲器模塊,但是共用地址和數據總線。哈佛結構可以提升處理器效率,但降低了靈活度并增加了電路復雜度。很多復雜芯片上,已經不是純粹的馮·諾伊曼結構或者哈佛結構,而是兩者融合或者并存的體系。
(7)內核
CPU內核,有時指完整CPU芯片中的一部分內核,比如下圖中的Intel十一代酷睿CPU芯片,不再是單一的CPU,而是集成了 Cove內核(四核)、Iris X圖形處理器、內存控制器、圖像處理器、媒體解碼器、電源管理、神經元加速器和各類高速接口控制器等各種組件,在這其中 Cove內核就是這顆CPU芯片的CPU內核。
CPU內核,部分情況下也指完整CPU芯片或者MCU或SoC中的完整功能處理器內核,如ARM的 M系列(M0,M3,M4等)內核,即可以作為完整的移動端或嵌入式CPU處理器,也可以在對成本和功耗敏感的一些工控終端中,作為MCU(微控制器)或SoC(片上系統)的處理器內核。
(8)并行處理器
a)多線程
多線程可以增加有內在并行性的應用程序的性能,程序被劃分為不同線程分別在CPU不同的硬件結構中執行。
b)多核架構
多個處理單元(“核”)位于一個芯片上的并行處理器,每個核有自己的ALU和寄存器組,但共享內存和系統資源。多核芯片是一個封裝整體,也就是說只要插槽適合的情況下,可以用多核芯片去替換主板上的單核芯片。
c)多核處理器
多個核可以共享也可以獨自使用自己的存儲器,但每個核插在各自的主板上,相對更獨立。
(9)主頻
時鐘發生器為芯片發送連續的脈沖信號,每一次脈沖到來,芯片內的晶體管就改變一次狀態,讓整個芯片完成一定任務。時鐘發生器發出的脈沖信號做出周期變化的最短時間稱之為震蕩周期,也稱為CPU時鐘周期,它是計算機中最基本的、最小的時間單位,一秒內震蕩周期的個數稱為時鐘頻率,也就是主頻。主頻越高,CPU的運算速度就越快,但并不代表CPU處理速度一定更快,主頻不等于處理器一秒鐘執行的指令條數,因為一條指令的執行可能需要多個時鐘周期,因此CPU的快慢還與指令集微架構對于不同指令的完成周期的設計有關。
1971年11月15日,Intel推出世界第一款商用計算機微處理器Intel 4004,被認為是CPU發展的開端。作為4位處理器,Intel 4004由10um制程工藝在2英寸晶圓上打造,集成了2300個晶體管微處理器書籍下載,主頻為。而到2020年,第十一代酷睿處理器芯片基于工藝打造,集成超過百億個晶體管,最高主頻可高達4.8Ghz。
上圖是對最近幾年一些先進的CPU處理器芯片架構的對比。現在智能手機的應用處理器芯片(AP, )、微處理器(MPU, Unit)、微控制器(MCU、 Unit)、片上系統(SoC, on Chip)等數字邏輯運算芯片在CPU外圍集成了其他功能多樣的組件。
三、指令集架構體系對比
CPU指令集,即CPU中用來計算和控制計算機系統的一套指令的集合。指令系統屬于計算機中硬件與軟件的接口,指令系統的設計十分重要,是構建CPU生態的重中之重。
1、不同指令集體系介紹
CPU指令集主要分為兩大類,CISC(復雜指令運算集)和RISC(精簡指令運算集)。CISC的代表指令集為x86,Intel在此基礎上擴充了MMX和SSE指令集,并吸收兼容了AMD在x86上擴充的x86-64指令集;而常用的RISC指令集則有ARM和ARM擴展的Thumb,其他的有MIPS、ALPHA、POWER、RISC-V等。
(1)指令集的兩極:x86和ARM
目前CPU行業由兩大生態體系主導:一是基于x86指令系統和操作系統的體系;二是基于ARM指令系統和操作系統的AA體系。Intel于上世紀80年代自研x86指令系統架構,憑借先發優勢迅速擴大市場份額并構建生態優勢,并通過與聯盟形成“”聯盟,打敗了蘋果、IBM、摩托羅拉的Power聯盟,逐步占領了桌面和服務器CPU市場;ARM則在蘋果、高通、三星、華為、英偉達等方面的努力下,憑借其指令系統開源、異構運算、可定制化、低功耗低成本等一系列優勢,立足于手機芯片、嵌入式處理器(部分MCU、MPU、DSP)等移動終端市場。體系與AA體系憑借對操作系統和CPU芯片的壟斷,設定了一系列技術規范與標準,構建了龐大的軟件生態體系,從而主導著主流CPU市場。
圍繞CPU芯片和操作系統兩個基點, 體系和AA體系的商業模式是不同的:(i)在體系中,CPU廠商生產芯片,操作系統廠商提供操作系統;(ii)在AA體系中,CPU廠商對芯片或系統廠商進行指令系統或CPU IP核授權,操作系統廠商提供基礎版操作系統,由整機廠商定制專用芯片和發行版操作系統。
x86架構原研廠商比ARM原研廠商的營收規模更大。發明x86架構處理器的Intel的2020年收入接近800億美元,凈利潤200億美元;AMD的2020年收入100億美元,凈利潤25億美元(AMD的數據包含來自GPU的收入利潤,未作剔除);而英國企業ARM,由于不自產芯片,只通過IP授權獲得收入(授權費通常只有芯片收入的1%-2%),營收只有20億美元左右的規模。
x86和ARM架構的主要市場應用不同,ARM架構的IP授權應用更廣泛。使用ARM架構的芯片有體積小、低成本、高能耗比等特點,99%的智能手機、90%的物聯網應用終端、90%的可穿戴設備、80%的數碼相機、75%的車內娛樂和輔助駕駛系統(不包括車身和發動機控制領域,該市場主要被Power PC和架構占據)、40%的數字電視都在使用ARM架構處理器。雖然企業ARM本身的年收入只有20億美元,但ARM帶動了高通、蘋果、華為等一大批芯片企業以及安卓系統等整個生態的發展。
2)RSIC-V等其他精簡指令集
90年代,MIPS和Alpha作為知名RISC指令集在與x86競爭計算機CPU市場中失敗,又錯過了智能終端高速發展的機遇,逐漸衰弱。2010年發布的RISC-V作為從發明伊始即以開源為最大特色的RISC指令集受到全球學界、產業界的高度關注。全球頂級學府、科研機構、芯片巨頭紛紛參與,各國政府出臺政策支持RISC-V的發展和商業化。目前來看,RISC-V還是有希望成為x86和ARM之后指令集的第三極。
2、指令集授權獲取方式
(1)x86指令集授權獲取方式
x86指令集是20世紀70年代末由Intel發明使用的,由于客戶IBM要求供應商必須有備選,因此Intel扶持了AMD進行了交叉授權,這兩家企業后來壟斷了桌面電腦和服務器CPU的x86架構陣營,Intel和AMD研發的x86指令集和相應的處理器微架構僅供自家處理器芯片使用。
直到2016年,AMD與專注服務器CPU的國內企業海光信息合作,授權給海光先進的Zen架構,但這個授權沒有深入到指令集和微架構層面,我們將在后續探討。此外臺灣的VIA威盛(旗下擁有HTC等企業)對國內企業上海兆芯也進行了x86授權(實際上VIA已經完全把專利賣給了兆芯),而VIA是通過收購Cyrix得到的x86專利,歷史上Cyrix是通過打贏官司,與Intel、AMD交叉授權共同持有x86指令集,但指令集只能更新到2018年,因此VIA才會急于將這套不再更新的x86指令集進行轉賣。整體而言,即使是只進行陳舊并有所保留的IP授權合作,在x86陣營中也是極少的個例。
(2)ARM指令集授權獲取方式
與Intel的x86架構采取的封閉策略不同,ARM采取了開放式授權模式,這幫助其打開了市場并持續鞏固生態。ARM架構的授權模式吸引了眾多芯片廠商購買授權,進行二次開發,先進的芯片產品層出不窮,為ARM生態的建立打開局面并持續鞏固。
ARM的授權方式主要有以下幾種:處理器使用層級和POP授權、內核層級授權、架構/指令集層級授權。近期ARM更是推出了新的授權模式,芯片廠商只需要支付較低的費用,便可獲得ARM約四分之三的芯片技術組合,當芯片廠商準備生產芯片并開始發貨時,才需向ARM支付許可費用和專利費用。目前,國內的華為鯤鵬和天津飛騰均獲得了ARM v8指令集的永久架構授權。
處理器使用層級授權是指授權合作廠商使用ARM設計好的處理器,對方不能改變原有設計,一定情況下可以根據自己的需要定制調整產品的頻率、功耗等;
POP( pack,處理器優化包)授權是處理器使用層級授權的高級形式, ARM出售優化后的處理器給授權合作廠商,方便其在特定工藝下設計、生產出性能有保證的處理器。
內核架構授權是ARM會授權合作廠商使用自己的內核和IP核架構,方便其根據自己的需要來設計處理器(例如后來高通的Krait架構)。
指令集層級授權是最大限度授權指令集架構,在經批準的情況下廠商可以自己貢獻新的指令集指令。蘋果的Swift架構就是此層級的授權,蘋果手機強大的處理器表現,與蘋果曾經是ARM的重要股東,對ARM指令集微架構進行深層次的研發有很大關系。指令集層級授權雖然對于知識產權的保護性較弱,被授權的廠商有很大的自研空間,甚至可以逐步對指令集和微架構進行消化吸收,但是依然具有一定的保護效力。憑借不斷更新的指令集微架構體系和適配的軟件生態,一旦對類似華為這樣的廠商停止授權新的版本,那么舊的生態將逐步與新生態脫節。
以上是對ARM授權方式的對比總結,我們對于內核或者IP核的授權方式,也可以從IP軟核、IP固核、IP硬核這個角度進行總結和對比:
(3)MIPS指令集授權獲取方式
MIPS同樣采用開放授權方式,MIPS和ARM在商業模式上的主要差異在于:(i)定價。MIPS的定價策略是核授權很貴,而指令集授權便宜,這與ARM正好相反。(ii)生態策略。MIPS的架構授權,不限制對MIPS架構的更改,并且允許設計者將修改或者擴展后的指令集進行二次銷售,而在x86和ARM體系是不允許二次銷售的。MIPS對于設計者擴展新指令集采取開放態度,而ARM只有在重要合作伙伴協商一致時才可以對指令集進行更改。
MIPS指令集在網關、多媒體、機頂盒CPU芯片領域的應用較多,國內嵌入式和多媒體芯片企業北京君正部分芯片采用了MIPS授權架構。剛剛科創板IPO過會的擁有全自主指令集的國產CPU企業中科龍芯,最早就是使用的MIPS指令集,繼承了MIPS指令集的軟件生態還不成熟的特點,但作為重要信創企業,已經開始與國產軟件的生態適配工作并已逐步進入黨政辦公市場。
(4)RISC-V指令集獲取方式
RISC-V是一種簡單且完全開放免費的指令集架構。RISC-V于2010年主要由美國加州大學伯克利分校的Krste 教授等開發人員發明,并得到了計算機體系架構領域泰斗David 的大力支持;
2015年永久性非盈利基金會RISC-V基金會成立。該基金會負責維護標準的RISC-V指令集手冊與架構文檔,并推動RISC-V架構的發展,2020年基金會總部遷到了瑞士。目前,基金會包括超過200家會員單位,會員數量在持續高速增長。中國多家企業及科研機構也加入了RISC-V基金會,如中科院計算所ICT、華為、中興、阿里巴巴平頭哥、紫光展銳、晶心科技andes(中國臺灣)等。
本文到目前為止,科普了CPU指令集和微架構等的基本概念,總結了CPU類型與指令集架構之間的關系、機器語言表達層次結構,對指令集架構體系特點、生態、應用領域和授權方式進行了對比微處理器書籍下載,也對國內的CPU企業有了初步的了解。后文我們將繼續對CPU的行業和市場、國產CPU企業的技術水平、經營情況和資本市場展望進行分析。
*免責聲明:本文由桐曦資本原創,出于業界同行交流的目的。文章內容均是相關的公開信息整理,其未來發生任何變化與本文無關,不代表任何形式的投資建議。如果有任何異議,歡迎聯系桐曦資本后臺。