進入 32 位時代,誰能成爲下一個8051?

RISC-V架構在極短的時間內便引發了業界的高度關注,從衆多反應快速的小公司到實力雄厚的巨頭公司(如NVIDIA、西部數據等)均開始使用RISC-V架構開發產品。「舊時王謝堂前燕,飛入尋常百姓家」,在摩爾定律逐步逼近極限的今天,開放的RISC-V架構的誕生,催生出了一輪新的CPU創新熱潮。
程序員

RISC-V在全世界範圍內的興起與風靡,在國內也引發了普遍的關注,當前國內的衆多院校與公司都開始研究並使用RISC-V架構,將其用於學術或者工程項目中。尤爲是在深嵌入式領域,不管是硬件處理器核,仍是軟件工具鏈,RISC-V架構處理器已經具有了替代傳統商用深嵌入式處理器(譬如ARM Cortex-M處理器)的能力。可是因爲RISC-V誕生時間過短,在不少方面亟需系統而翔實的中文資料來幫助初學者快速掌握這一門新興的處理器架構。今天的介紹的《RISC-V架構與嵌入式開發快速入門》是一本介紹RISC-V架構嵌入式開發的入門書籍。緩存


本書的姊妹版《手把手教你設計CPU——RISC-V處理器篇》已經出版,提供了一個很是高效的超低功耗開源RISC-V處理器學習案例——蜂鳥E203,並對其進行了全方面剖析和講解,解決了在CPU硬件設計方面中文資料欠缺的問題。性能優化

可是,有關RISC-V嵌入式軟件開發方面的中文資料仍然欠缺,體如今以下方面。服務器

  • 目前的RISC-V文檔是英文原版的指令集手冊,雖然此文檔很是精簡短小,可是該文檔比較專業,處理器架構研究不深的讀者難以理解。所以,學習者最好有對RISC-V指令集架構介紹的中文資料。網絡

  • 對於RISC-V的軟件開發工具鏈,包括嵌入式和Windows軟件開發工具的下載和使用方法、簡單嵌入式開發平臺的搭建等,也沒有很好的中文資料系統介紹。架構

  • 對於RISC-V的彙編語言開發、典型的RISC-V嵌入式開發平臺和環境的使用、典型示例程序等,也沒有很好的中文資料系統介紹。ide

綜上,雖然部分專業人士已經可以嫺熟地使用RISC-V進行嵌入式開發,可是初學者卻無從下手。爲了促進RISC-V在國內的普及,尤爲是被廣大初學者接受和快速入門,本書將分享和總結一些使用RISC-V進行嵌入式開發的相關技術和經驗,主要面向對RISC-V感興趣的入門用戶,包括嵌入式軟件開發和硬件設計人員。模塊化

本文經過幾個輕鬆的話題,討論一下CPU的基本知識以及深嵌入式領域的趣事。函數

磨刀不誤砍柴工——CPU 基礎知識介紹

CPU,全稱爲中央處理器單元,簡稱爲處理器,是一個不算年輕的概念。早在20世紀60年代便已誕生了第一款CPU。
工具

請注意區分「處理器」和「處理器核」,以及「CPU」和「Core」的概念。嚴格來講,「處理器核」和「Core」是指處理器內部最核心的部分,是真正的處理器內核;而「處理器」和「CPU」每每是一個完整的SoC,包含了處理器內核和其餘的設備或者存儲器。可是在現實中大多數文章每每不會嚴格地遵循二者的差異,時常混用,所以讀者須要根據上下文自行甄別體會具體的含義。

通過幾十年的發展,到今天已經相繼誕生或消亡過了幾十種不一樣的CPU架構。表1-1爲近幾十年來知名CPU架構的誕生時間表。什麼是CPU架構?下面讓咱們來探討區分CPU的主要標準:CPU的靈魂—指令集架構(Instruction Set Architecture,ISA)。

表1-1 知名CPU架構的誕生時間表


1.1.1 ISA—CPU的靈魂

指令集,顧名思義是一組指令的集合,而指令是指處理器進行操做的最小單元(譬如加減乘除操做或者讀/寫存儲器數據)。

指令集架構,有時簡稱爲「架構」或者稱爲「處理器架構」。有了指令集架構,即可以使用不一樣的處理器硬件實現方案來設計不一樣性能的處理器。處理器的具體硬件實現方案稱爲微架構(Microarchitecture)。雖然不一樣的微架構實現可能形成性能與成本的差別,可是,軟件無須作任何修改即可以徹底運行在任何一款遵循同一指令集架構實現的處理器上。所以,指令集架構能夠理解爲一個抽象層,如圖1-1所示。該抽象層構成處理器底層硬件與運行於其上的軟件之間的橋樑與接口,也是如今計算機處理器中重要的一個抽象層。

圖1-1 指令集架構示意圖

爲了讓軟件程序員可以編寫底層的軟件,指令集架構不只僅是一組指令的集合,它還要定義任何軟件程序員須要瞭解的硬件信息,包括支持的數據類型、存儲器(Memory)、寄存器狀態、尋址模式和存儲器模型等。如圖1-2所示,IBM 360指令集架構是第一個里程碑式的指令集架構,它第一次實現了軟件在不一樣IBM硬件機器上的可移植性。

圖1-2 IBM 360架構指令集圖卡

綜上可見,指令集架構纔是區分不一樣CPU的主要標準,這也是Intel和AMD公司多年來分別推出了幾十款不一樣的CPU芯片產品的緣由。雖然來自於兩個不一樣的公司,可是它們仍被統稱爲x86架構CPU。

1.1.2 CISC與RISC

指令集架構主要分爲複雜指令集(Complex Instruction Set Computer,CISC)和精簡指令集(Reduced Instruction Set Computer,RISC),二者的主要區別以下。

  • CISC不只包含了處理器經常使用的指令,還包含了許多不經常使用的特殊指令。其指令數目比較多,因此稱爲複雜指令集。

  • RISC只包含處理器經常使用的指令,而對於不經常使用的操做,則經過執行多條經常使用指令的方式來達到一樣的效果。因爲其指令數目比較精簡,因此稱爲精簡指令集。

在CPU誕生的早期,CISC曾經是主流,由於其能夠使用較少的指令完成更多的操做。可是隨着指令集的發展,愈來愈多的特殊指令被添加到CISC指令集中,CISC的諸多缺點開始顯現出來。譬如:

  • 典型程序的運算過程當中所使用到的80%指令,只佔全部指令類型的20%,也就是說,CISC指令集定義的指令,只有20%被常用到,而有80%則不多被用到。

  • 那些不多被用到的特殊指令尤爲讓CPU設計變得極爲複雜,大大增長了硬件設計的時間成本與面積開銷。

基於以上緣由,自從RISC誕生以後,基本上全部現代指令集架構都選擇使用RISC架構。

1.1.3 32位與64位架構

除了CISC與RISC之分,處理器指令集架構的位數也是一個重要的概念。通俗來說,處理器架構的位數是指通用寄存器的寬度,其決定了尋址範圍的大小、數據運算能力的強弱。譬如32位架構的處理器,其通用寄存器的寬度爲32位,可以尋址的範圍爲232Byte,即4GB的尋址空間,運算指令能夠操做的操做數爲32位。

注意:處理器指令集架構的寬度和指令的編碼長度無任何關係。並非說64位架構的指令長度爲64位(這是一個常見的誤區)。從理論上來說,指令自己的編碼長度越短越好,由於能夠節省代碼的存儲空間。所以即使在64位的架構中,也大量存在16位編碼的指令,且基本上不多出現過64位長的指令編碼。

綜上所述,在不考慮任何實際成本和實現技術的前提下,理論上來說:

  • 通用寄存器的寬度,即指令集架構的位數越多越好,由於這樣能夠帶來更大的尋址範圍和更強的運算能力。

  • 指令編碼的長度越短越好,由於這樣能夠更加節省代碼的存儲空間。常見的架構位數分爲8位、16位、32位和64位。

  • 早期的單片機以8位和16位爲主,譬如知名的8051單片機是使用普遍的8位架構。•目前主流的嵌入式微處理器均在向32位架構轉移。對此內容感興趣的讀者能夠在互聯網上搜索做者曾在媒體上發表的文章《進入32位時代,誰能成爲下一個8051》。

  • 目前主流的移動手持、我的計算機和服務器領域,均使用64位架構。

1.1.4 ISA衆生相

第1.1.1節中提到,通過幾十年的發展,全世界範圍內至今已經相繼誕生或消亡過了幾十種不一樣的指令集架構。下面將針對幾款比較知名的指令集架構加以論述。

注意:下列章節中列舉的信息來自於本書成書時的公開信息,非官方正式信息,請讀者以最新官方信息爲準。

1.x86

x86是由Intel公司推出的一種複雜指令集(CISC),於1978年推出的Intel 8086處理器中首度出現,如圖1-3所示。8086在3年後爲IBM所選用,以後Intel與微軟公司結成了所謂的Windows-Intel(Wintel)商業聯盟,壟斷了我的計算機(Personal Computer,PC)軟硬件平臺至今幾十年而得到了豐厚的利潤。x86架構也所以幾乎成爲了我的計算機的標準處理器架構,而Intel的廣告標誌更是深刻人心,如圖1-4所示。

圖1-3 Intel 8086處理器

圖1-4 Intel Inside廣告標語

除Intel以外最成功的製造商之一爲AMD。Intel與AMD公司是現今主要的x86處理器芯片提供商。其餘公司也曾經制造過x86架構的處理器,包括Cyrix(爲VIA所收購)、NEC、IBM、IDT以及Transmeta。

x86架構由Intel與AMD共同通過數代的發展,相繼從最初的16位架構發展到現在的64位架構。在x86架構剛誕生的時代,CISC仍是業界主流,所以,x86架構是具備表明性的可變指令長度的CISC指令架構。雖然以後RISC已經取代CISC成爲現代指令集架構的主流,可是,因爲Intel公司的巨大成功以及爲了維護軟件的向後兼容性,x86做爲一種CISC架構被一直保留下來。事實上,Intel公司經過內部「微碼化」的方法克服掉了CISC架構的部分缺點,加上Intel高超的CPU設計水平與工藝製造水平,使得x86處理器一直保持着旺盛的戰鬥力,不斷刷新我的計算機處理器芯片性能的極限。所謂「微碼化」是指將複雜的CISC指令先用硬件解碼器翻譯成對應的內部簡單指令(微碼)序列,而後送給處理器流水線執行的方法,使得x86的處理器核也變成了一種RISC的形式,從而可以借鑑RISC架構的優勢。不過,額外的硬件解碼器一樣也會帶來額外的複雜度與面積開銷,這是x86架構做爲一種CISC架構不得不付出的代價。

x86架構不只在我的計算機領域取得了統治性的地位,還在服務器市場取得了巨大成功。相比x86架構,IBM的Power架構和Sun的SPARC架構都曾有着很明顯的性能優點,也曾佔據着至關可觀的服務器市場。可是Intel採用僅提供處理器芯片而不直接生產服務器的策略,利用廣大的第三方服務器生產商,結合Wintel的強大軟硬件聯盟,成功地將從處理器芯片到服務器系統一手包辦的IBM與Sun公司擊敗。至今x86架構佔據了超過90%的服務器市場。

2.SPARC

1985年,Sun公司設計出SPARC指令集架構,全稱爲「可擴充處理器架構(Scalable Processor ARChitecture,SPARC)」,是一種很是有表明性的高性能RISC架構。以後,Sun公司和TI公司合做開發了基於該架構的處理器芯片。SPARC處理器爲Sun公司贏得了當時高端處理器市場的領先地位。1995年,Sun公司推出了UltraSPARC處理器,開始進入64位架構。SPARC架構設計的出發點是服務於工做站,它被應用在Sun、富士通等製造的大型服務器上,如圖 1-5 所示。1989年SPARC還做爲獨立的公司而成立,其目的是向外界推廣SPARC,以及爲該架構進行兼容性測試。Oracle收購Sun公司以後,SPARC架構歸Oracle全部。

因爲SPARC架構是面向服務器領域而設計的,其最大的特色是擁有一個大型的寄存器窗口,SPARC架構的處理器須要實現從72到640個之多的通用寄存器,每一個寄存器寬度爲64位,組成一系列的寄存器組,稱爲寄存器窗口。這種寄存器窗口的架構因爲能夠切換不一樣的寄存器組快速地響應函數調用與返回,所以可以帶來很是高的性能,可是這種架構因爲功耗面積代價太大而並不適用於PC與嵌入式領域處理器。

圖1-5 基於SPARC架構的服務器

前面提到了Sun公司在服務器領域與Intel競爭逐漸落敗,所以,SPARC架構在服務器領域的份額也逐步縮減。而SPARC架構又不適用於PC與嵌入式領域,使得其局面十分尷尬。

SPARC架構應用的另一個比較知名的領域是航天領域。因爲美國的航天星載系統中廣泛使用的Power架構,歐洲太空局爲了獨立發展本身的航天能力而選擇了開發基於SPARC架構的LEON處理器,並對其進行了抗輻射加固設計,使之可以應用於航天環境中。

值得強調的是,歐洲太空局選擇在航天領域使用SPARC架構並不表明SPARC架構特別適用於航天領域,而是由於SPARC在當時是一種相對開放的架構。SPARC架構也更罔談壟斷或佔據航天領域的優點地位,由於從本質上來說,航天領域處理器對於指令集架構自己並沒有特殊要求,其需求的主要特性是提供工藝上的加固單元和硬件系統的容錯性處理(爲了防止外太空強輻射形成電路失常)。所以,不少的航天處理器也採用了其餘的處理器架構,譬如目前新開發的不少航天處理器也在使用新的ARM或者RISC-V架構(有關RISC-V架構見第1.5節)。

2017年9月,Oracle公司宣佈正式放棄硬件業務,天然也包括了收購自Sun的SPARC處理器,至此,SPARC處理器能夠說正式退出了歷史舞臺。此消息一經發出,引發了不少業內人士的可惜,感興趣的讀者請在網絡上自行搜索文章《再見SPARC處理器,再見Sun》。

3.MIPS

MIPS(Microprocessor without Interlocked Piped Stages Architecture)亦爲Millions of Instructions Per Second的相關語,是一種簡潔、優化的RISC架構。MIPS能夠說是出身名門,由斯坦福大學的Hennessy教授(計算機體系結構領域泰斗之一)領導的研究小組研製開發。

因爲MIPS是經典的RISC架構,所以是現在除了ARM以外被人耳熟能詳的RISC架構。最先的MIPS架構是32位,最新的版本已有64位。

自從1981年由MIPS科技公司開發並受權後,MIPS架構曾經做爲最受歡迎RISC架構被普遍應用在許多電子產品、網絡設備、我的娛樂裝置與商業裝置上。它曾經在嵌入式設備與消費領域裏佔據很大的份額,如SONY、Nintendo的遊戲機、Cisco的路由器和SGI超級計算機都有MIPS的身影。

可是因爲一些商業運做的緣由,MIPS被同屬RISC陣營的ARM後來居上。2013年MIPS被英國公司Imagination Technologies收購,惋惜的是,MIPS被Imagination收購後,非但沒有發展,反而日漸衰落。2017年Imagination自身出現危機而總體尋求出售,MIPS再次面臨被出售的命運。

4.Power

Power架構是IBM開發的一種RISC架構指令集。1980年IBM推出了全球第一臺基於RISC架構的原型機,證實RISC相比CISC在高性能領域優點明顯。1994年IBM基於此推出PowerPC604處理器,其強大的性能在當時處於全球領先地位。

基於Power架構的IBM Power服務器系統在可靠性、可用性和可維護性等方面表現出色,使得 IBM從芯片到系統所設計的整機方案有着獨有的優點。Power架構的處理器在超算、銀行金融、大型企業的高端服務器等多個方面應用十分紅功。IBM至今仍在不斷開發新的Power架構處理器:

  • 2013年,IBM宣佈了新一代服務器處理器Power8。Power8的核心數量達12個,並且每一個核心都支持8線程,總線程多達96個。它採用了8派發、10發射、16級流水線的設計,各項規格均強大得使人驚歎。

  • 2016年IBM公司公佈了其Power9處理器,IBM於2017年推出Power9擁有24個計算核心,是Power8芯片的兩倍。

  • IBM計劃在2020年推出Power10,2023年推出Power11處理器。

5.Alpha

Alpha也稱爲 Alpha AXP,是一種64位的RISC指令集架構,由DEC公司設計開發,被用於DEC本身的工做站和服務器中。

Alpha是一款優秀的處理器,它不只是最先跨過GHz的企業級處理器,並且仍是最先計劃採用雙核,甚至是多核架構的處理器。然而,Alpha芯片和採用此芯片的服務器並無獲得整個市場的認同,只有少數人選擇了Alpha服務器。據稱其價格高昂、安裝複雜,部署實施遠遠超過通常企業IT管理人員所能承受的難度。2001年,康柏收購DEC以後,逐步將其所有64位服務器系列產品轉移到Intel的安騰處理器架構之上。2004年,惠普收購康柏,今後Alpha架構逐漸淡出了人們的視野。

6.ARM

因爲ARM架構過於聲名顯赫,後續會有專門的小節重點論述ARM,在此不單獨論述。

7.ARC

ARC架構處理器是Synopsys公司推出的32位RISC結構微處理器系列IP。ARC處理器的IP產品線覆蓋了從低端到高端各個領域的嵌入式處理器,如圖1-6所示。

圖1-6 ARC處理器IP系列

ARC架構處理器以極高的能效比見長,出色的硬件微架構使得ARC處理器的各項指標均使人印象深入。ARC處理器IP以追求功耗效率比(DMIPS/mW)和麪積效率比(DMIPS/mm2)最優化爲目標,以知足嵌入式市場對微處理器產品日益提升的效能要求。

ARC處理器的另一個最大的特色是其高度可配置性,可經過增長或刪除功能模塊,知足不一樣的應用需求,經過配置不一樣屬性實現快速系統集成,作到「量體裁衣」。

ARC是除了ARM以外的全球第二大嵌入式處理器IP供應商,全球已有超過170家客戶使用Synopsys ARC處理器,這些客戶每一年總共產出高達15億塊基於ARC的芯片。

8.Andes

Andes架構處理器是我國臺灣的晶心(Andes)公司推出的一系列32位RISC架構處理器IP。據2016年的統計數字,採用Andes指令集架構的系統芯片出貨量超過4.3億顆,總累計出貨量超過19億顆。2017年,Andes發佈最新一代的AndeStar™處理器架構,成爲商用主流CPU IP公司中第一家歸入開放RISC-V 指令集架構的公司。

9.C-Sky

C-SKY架構處理器是由我國杭州中天微系統有限公司開發的一系列32位高性能低功耗嵌入式處理器IP。杭州中天是國內CPU IP公司的翹楚,C-SKY系列嵌入式CPU核,具備低功耗、高性能、高代碼密度、易使用等特色。

1.1.5 CPU的領域之分

本節將對CPU的不一樣應用領域加以探討。在傳統的計算機體系結構分類中,處理器應用分爲3個領域——服務器領域、PC領域和嵌入式領域。

  • 服務器領域在早期還存在着多種不一樣的架構呈羣雄分立之勢,不過,因爲Intel公司商業策略上的成功,目前Intel的x86處理器芯片幾乎成爲了這個領域的霸主。

  • PC領域自己是由Windows/Intel軟硬件組合發展而壯大,所以,x86架構是目前PC領域的壟斷者。

  • 傳統的嵌入式領域所指範疇很是普遍,是處理器除了服務器和PC領域以外的主要應用領域。所謂「嵌入式」是指在不少芯片中,其所包含的處理器就像嵌入在裏面鮮爲人知同樣。

近年來隨着各類新技術新領域的進一步發展,嵌入式領域自己也被髮展成了幾個不一樣的子領域而產生了分化。

  • 首先是隨着智能手機(Mobile Smart Phone)和手持設備(Mobile Device)的發展,移動(Mobile)領域逐漸發展成了規模匹敵甚至超過PC領域的一個獨立領域,其主要由ARM的Cortex-A系列處理器架構所壟斷。Mobile領域的處理器因爲須要加載Linux操做系統,同時涉及複雜的軟件生態,所以和PC領域同樣具備對軟件生態的嚴重依賴。目前既然ARM Cortex-A系列已經取得了絕對的統治地位,其餘的處理器架構很難再進入該領域。

  • 其次是實時(Real Time)嵌入式領域。該領域相對而言沒有那麼嚴重的軟件依賴性,所以沒有造成絕對的壟斷,可是因爲ARM處理器IP商業推廣的成功,目前仍然以ARM的處理器架構佔大多數市場份額,其餘處理器架構譬如Synopsys ARC等也有不錯的市場成績。

  • 最後是深嵌入式領域。該領域更像前面所指的傳統嵌入式領域。該領域的需求量很是之大,但每每注重低功耗、低成本和高能效比,無須加載像Linux這樣的大型應用操做系統,軟件大可能是須要定製的裸機程序或者簡單的實時操做系統,所以對軟件生態的依賴性相對比較低。在該領域很難造成絕對的壟斷,可是因爲ARM處理器IP商業推廣的成功,目前仍然以ARM的Cortex-M處理器佔據大多數市場份額,其餘的架構譬如Synopsys ARC和Andes等也有很是不錯的表現。

表1-2是對目前CPU典型應用領域及其主流的架構進行的總結。

表1-2 處理器的應用領域及主流架構

綜上所述,因爲移動(Mobile)領域崛起成爲一個獨立的分類領域,如今一般所指的嵌入式領域每每是指深嵌入式領域或者實時嵌入式領域。說到此處,咱們就不得不說起一位前輩「老炮兒」—8051內核。

1.1.6 8位時代的傳奇「前輩」——8051

提及8051內核,熟悉嵌入式領域的朋友,幾乎無人不知無人不曉。8051做爲一款誕生了數十年之久的微處理器內核,在8位嵌入式微處理器內核領域,它是當之無愧的傳奇「前輩」。

自從Intel於1980年爲嵌入式系統開發Intel MCS-51(一般簡稱 8051)單芯片微控制器(簡稱單片機)至今,8051內核架構已經走過將近40個年頭。Intel還以專利轉讓的形式把8051內核轉讓給了許多其餘半導體公司,這些公司進一步發展出不一樣型號基於8051內核的微控制器芯片,所以造成了一個龐大的8051家族。

幾十年發展下來的龐大的用戶羣和生態環境,以及多年來衆多備受確定的成功產品,能夠說8051內核幾乎成爲8位微處理器內核的業界標杆。8051內核架構在1998年失去專利保護,久經沙場的它再次迸發出強大的二次生命力,各類形式的8051架構MCU(微控制器Microcontroller Unit)進一步涌入市場,各類基於8051內核的芯片產品層出不窮,各類免費版本的8051內核IP也能夠從各類渠道獲取。

固然因爲8051內核並無一個統一的組織和標準進行管理,因此也存在着體系結構混亂,各類加強型複雜多樣的問題。雖然時常也都自稱爲8051內核,可是其實各有差異,琳琅滿目讓人難以分辨。可是這絲絕不影響8051內核的經典地位,時至今日,雖然目前微處理器內核正在經歷着向32位架構遷移的大趨勢,可是8051內核仍然有着舉足輕重的地位,在大量的MCU、數模混合信號芯片、SoC芯片中仍能看到8051內核的身影,而且在至關長的時間內,在適合8位架構處理器內核的應用領域中都將繼續使用8051內核,能夠說是「廉頗雖老,尚能飯也」。

8051內核能在嵌入式領域取得如此成功的地位,能夠歸功於以下幾個方面的緣由。

  • 普遍的被認知度,簡單的體系結構。

  • 沒有知識產權的限制,商業和開源的版本衆多,很是適合中小型芯片公司採用。

  • 龐大的用戶羣以及相應的生態系統。

  • 成熟且免費的軟件工具鏈支持。

儘管如此,8051做爲一款誕生了接近40年的8位CISC(複雜指令集)架構內核,雖然是「老驥伏櫪,壯心不已」,可是因爲其性能低下,尋址範圍受限,已經難以適應更多的新興應用領域。隨着IoT的發展和崛起,雖然嵌入式領域對於處理器內核的需求更加井噴,可是更多的是開始採用32位架構,且不少傳統的8位應用領域也在開始向着32位架構遷移。

1.1.7 IoT的崛起——32位時代的到來

物聯網(Internet of Things,IoT)這個概念的提出和全面進入人們的視線其實並不久遠,應該IoT說是時下最熱點的技術應用領域之一。即使近一年來火爆的AI風頭更勁,可是IoT也是AI的基礎支撐技術,以智能家居和智能城市爲例,IoT終端設備支撐和AI的邊緣智能計算即是很重要的兩項技術基礎設施,IoT與AI呈現出相輔相成進一步提速發展之勢。根據麥肯錫全球機構的最新報告預測,全球物聯網市場規模可望在2025年之前達到11萬億美圓,這意味着物聯網將有潛力在2025年時達到約11%的全球經濟佔有率。

物聯網的新興應用須要使用到性能更高的32位架構微處理器內核。以MCU爲例,工業物聯網、可穿戴式裝置和智能家居爲目前MCU市場的主要驅動力,而32位架構更是當前驅動MCU成長的重要領域。以智能家居爲例,智能家居中的有些應用須要更精確的測量和控制、更好的能效,都須要有更復雜的數學模型和運算,這就要求MCU的運算速度大幅提高,以知足能耗和運算的需求。32位MCU執行效能更佳,可以知足衆多物聯網應用對數據處理能力要求,可以兼顧物聯網的低功耗和高性能要求。有分析稱,從2015年統計數據來看,整年全球32位MCU的出貨量就已經超過4/8/16位MCU的總和。

談及32位架構微處理器內核,就難以繞開該領域的「學霸」ARM Cortex-M了。

無敵是多麼寂寞——ARM 統治着的世界


ARM(Advanced RISC Machines)是一家誕生於英國的處理器設計與軟件公司,總部位於英國的劍橋,其主要業務是設計ARM架構的處理器,同時提供與ARM處理器相關的配套軟件,各類SoC系統IP、物理 IP、GPU、視頻和顯示等產品。

雖然在普通人眼中,ARM公司的知名度遠沒有Intel公司的辨識度高,甚至不如華爲、高通、蘋果、聯發科和三星等這些廠商那般耳熟能詳。可是,ARM架構處理器卻以「潤物細無聲」的方式滲透到咱們生活中的每一個角落。從咱們天天平常使用的電視、手機、平板電腦以及手環、手錶等電子產品,到不起眼的遙控器、智能燈和充電器等咱們想到和想不到的方方面面,均有ARM架構處理器的身影。在白色家電、工業控制與汽車電子領域,ARM架構處理器更是無處不在;乃至咱們熟知桌面PC、服務器和超級計算機領域,ARM架構也在朝其滲透。能夠說,ARM架構處理器統治着這些領域,支撐着咱們這個世界的運行。

1.2.1 獨樂樂與衆樂樂——ARM公司的盈利模式

ARM公司雖然設計開發基於ARM架構的處理器核,可是商業模式並非直接生產處理器芯片,而是做爲知識產權(Intellectual Property,IP)供應商,轉讓受權許可給其合做夥伴。目前,全世界有幾十家大的半導體公司都使用ARM公司的受權,從ARM公司購買其設計的ARM處理器核,根據各自不一樣的應用領域,加入適當的外圍電路,從而造成本身的ARM處理器芯片進入市場。

至此,咱們提到了若干名詞「ARM架構」「ARM架構處理器」或「ARM處理器」「ARM處理器芯片」「芯片」。爲了可以闡述清楚其彼此的關係,並理解ARM公司的商業模式,下面經過一個形象的比喻加以闡述。

假設將「生產芯片」比喻爲「製造一輛汽車」,咱們知道在市場上有幾十家品牌汽車生產商,譬如「大衆」「豐田」「本田」等。那麼芯片領域也有衆多的芯片生產商,譬如「高通」「聯發科」「三星」「德州儀器」等。有的芯片是以處理器的功能爲主,咱們稱爲「處理器芯片」,有的芯片中的處理器只是輔助的功能,咱們稱之爲「普通芯片」或「芯片」。

就像每一輛汽車都須要一臺發動機,汽車生產商須要向其餘的發動機生產商採購發動機同樣。每一款芯片都須要一個或者多個處理器,所以「高通」「聯發科」「三星」「德州儀器」等芯片生產商須要採購處理器,因而他們能夠從ARM公司採購處理器。

  • 所謂「ARM架構」就好像是發動機的設計圖樣同樣,是由ARM公司發明並專利保護的「處理器架構」,ARM公司基於此架構設計的處理器即是「ARM架構處理器」或「ARM處理器」。ARM因爲主要以IP的形式受權其處理器,所以常稱爲「ARM處理器IP」。

  • 經過直接受權「ARM處理器IP」給其餘的芯片生產商(合做夥伴),這即是ARM公司的主要盈利模式。

芯片公司每設計一款芯片,若是購買了ARM公司提供的「ARM處理器IP」,芯片公司須要支付一筆前期受權費(Upfront License Fee),以後,若是該芯片被大規模生產銷售,則每賣出一片芯片均須要按其售價向ARM公司支付必定比例(譬如售價的1%~2%)的版稅(Royalty Fee)。

因爲ARM架構佔據了絕大多數的市場份額,造成了完整的軟件生態環境,在移動和嵌入式領域的芯片廠商,購買ARM處理器IP幾乎成爲這些廠商的首選。

就像有些有實力的汽車生產商能夠本身設計製造發動機同樣。有實力的芯片公司也想本身設計處理器,所以有3個選擇。

  1. 第1個選擇:本身發明一種處理器架構。

  2. 第2個選擇:購買其餘商業公司的「非ARM架構」處理器IP。

  3. 第3個選擇:購買ARM公司的「ARM架構受權」而不是直接購買「ARM處理器IP」,本身定製開發基於ARM架構的處理器。

在前面的章節,咱們曾經闡述了處理器架構及其衍生出的軟件生態環境的重要性,探討了爲何「非ARM架構」沒法取得如ARM般巨大的成功,所以上述「第1個選擇」和「第2個選擇」在ARM架構佔主導(譬如移動手持設備)的領域具備極大的風險。那麼「第3個選擇」便成爲了這些有實力的芯片公司的幾乎惟一選擇。

  • 就像汽車公司能夠購買發動機公司的圖樣,而後按照本身的產品需求深度定製其發動機同樣。芯片公司也能夠經過購買ARM公司的「ARM架構受權」,按照本身的產品需求深度定製其本身的處理器。

  • 轉讓「ARM架構受權」給其餘的芯片生產商(合做夥伴),這即是ARM公司的另一種盈利模式。

使用這種自主研發處理器的芯片在大規模生產銷售後無需向ARM公司逐片支付版稅,從而達到下降產品成本和提升產品差別性的效果。

只有實力最爲雄厚的芯片公司才具有購買「ARM架構受權」的能力。首先,由於ARM架構受權價格極其昂貴(高達千萬美圓量級),遠遠高於直接購買「ARM處理器IP」所需的前期受權費;其次,深度定製其自研處理器須要攻克極高的技術難度與投入高昂的研發成本。目前有能力堅持作到這一點的也僅有「蘋果」「高通」「華爲」等巨頭。

綜上能夠看出,「ARM架構處理器」能夠分爲兩種。

  • 由ARM公司開發並出售的IP,也俗稱爲公版ARM。

  • 由芯片公司基於ARM架構受權自主開發的私有內核,也俗稱爲定製自研ARM。

相對應的,ARM公司的主要盈利模式也能夠分爲兩種。

  • 受權「ARM處理器IP」給其餘的芯片生產商(合做夥伴),收取對應的前期受權費(Upfront License Fee),以及量產後的版稅。

  • 轉讓「ARM架構受權」給其餘的芯片生產商(合做夥伴),收取對應的架構受權費。ARM公司的強大之處便在於其與衆多合做夥伴一塊兒構建了強大的ARM陣營,如圖1-7所示。全世界目前幾乎大多數主流芯片公司都直接或者間接地在使用ARM架構處理器。

    圖1-7 ARM公司合做夥伴圖譜

ARM公司自2004年推出ARMv7內核架構時,便摒棄了以往「ARM+數字」這種處理器命名方法(以前的處理器統稱經典處理器系列),啓用Cortex來命名,並將Cortex系列細分爲3大類,如圖1-8所示。

圖1-8 Cortex-A/R/M系列

  • Cortex-A:面向性能密集型系統的應用處理器核。

  • Cortex-R:面向實時應用的高性能核。

  • Cortex-M:面向各種嵌入式應用的微控制器核。其中,Cortex-A系列與Cortex-M系列的成功尤爲引人矚目。接下來的章節將對Cortex-M系列與Cortex-A系列的成功分別加以詳細論述。

1.2.2 小個子有大力量——無處不在的Cortex-M系列

Cortex-M是一組用於低功耗微控制器領域的32位RISC處理器系列,包括Cortex-M0、Cortex-M0+、Cortex-M一、Cortex-M三、Cortex-M4(F)、Cortex-M7(F)、Cortex-M23和Cortex-M33(F)。若是Cortex-M4 / M7 / M33處理器包含了硬件浮點運算單元(FPU),也稱爲Cortex-M4F/M7F/M33F。表1-3列出了Cortex-M系列各處理器的發佈時間和特色。

表1-3 ARM Cortex-M系列各處理器發佈時間和特色

Cortex-M的應用場景雖然不像Cortex-A系列那樣光芒四射,可是其應用的嵌入式領域需求量巨大。有數據顯示,2018年物聯網設備的數量將會超過移動設備,到了2021年,咱們將會擁有18億臺PC、86億臺移動設備和157億臺物聯網設備。譬若有一些物聯網設備可能須要在幾年的時間裏運轉,並且僅依靠自身所帶的電池,Cortex-M0 因爲其體積很是之小並且功耗極低,就很是適合這類產品,好比傳感器。而Cortex-M3是Cortex產品家族中最爲普遍使用的一款芯片,它自己的體積也很是小,能夠普遍應用於各類各樣嵌入智能設備,好比智能路燈、智能家居溫控器和智能燈泡等。2009年Cortex-M0這款超低功耗的32位處理器問世後,打破了一系列的受權記錄,成了各製造商競相爭奪的香餑餑,僅9個月時間,就有15家廠商與ARM簽約。至今全球已有超過60家公司得到了ARM Cortex-M的受權,我國僅大陸地區廠商也有近十家。Cortex-M3與Cortex-M0的合計出貨量已經超過200億片,其中有一半的出貨是在過去幾年完成的,據稱每30分鐘的出貨量就能夠達到25萬片。

Cortex-M另外一個取得巨大成功的領域即是微控制器(Microcontroller Unit,MCU)。隨着愈來愈多的電子廠商不斷爲物聯網(IoT)推出新產品,全球微控制器(MCU)市場出貨量出現巨大成長動能,且呈現出量價齊升的狀況。據市場調研機構預測,2016~2020年全球微控制器(MCU)出貨量與銷售額將持續創新高。

在ARM推出Cortex-M以前,全球主要的幾個MCU芯片公司大多采用8位、16位內核或者其自有的32位架構的處理器。ARM推出Cortex-M處理器以後,迅速受到市場青睞,一些主流MCU供應商開始選擇這款內核生產MCU。

  • 2007年6月,ST推出基於ARM Cortex-M3處理器核的STM32 F1系列MCU使之大放光芒。

  • 2009年3月,恩智浦半導體NXP率先推出了第一款基於ARM Cortex-M0處理器的LPC1100系列MCU。

  • 2010年8月,飛思卡爾半導體Freescale(2015年被NXP併購)率先推出了第一款基於ARM Cortex-M4處理器的Kinetis K系列MCU。

  • 2012年11月,恩智浦半導體NXP繼續率先推出了第一款基於ARM Cortex-M0+處理器的LPC800系列MCU。

  • 2014年9月,意法半導體ST率先推出了第一款基於ARM Cortex-M7處理器的STM32 F7系列MCU。

各家供應商採用Cortex-M處理器核加之以本身特別的開發,在市場中提供差別化的MCU產品,有些產品專一最佳能效、最高性能,而有些產品則專門應用於某些細分市場。

至今,主要的MCU廠商中幾乎都有使用ARM 的Cortex-M內核的產品線。能夠確定地說,Cortex-M之於32位MCU就如同8051(受到衆多供應商支持的工業標準內核)之於8位MCU。將來Cortex-M系列的MCU產品替代傳統的8051或其餘專用架構是大勢所趨。甚至有聲音表示:「將來,MCU產品將再也不按8位、16位和32位來分,而是會按照M0核、M3核以及M4核等ARM內核的種類來分。」做者不得不替非ARM架構的商業處理器廠商們拊膺長嘆:「既生瑜,何生亮啊。」

1.2.3 移動王者——Cortex-A系列在手持設備領域的巨大成功

Cortex-A是一組用於高性能低功耗應用處理器領域的32位和64位RISC處理器系列。32位架構的處理器包括Cortex-A五、Cortex-A七、Cortex-A八、Cortex-A九、Cortex-A十二、Cortex-A1五、Cortex-A17和Cortex-A32。64位架構的包括 ARM Cortex-A3五、ARM Cortex-A5三、ARM Cortex-A5七、ARM Cortex-A72和 ARM Cortex-A73。Cortex-A、Cortex-M和Cortex-R架構的最大區別是前者包含了存儲器管理單元(Memory Management Unit,MMU),所以能夠支持操做系統的運行。

ARM在2005年向市場推出Cortex-A8處理器,是第一款支持 ARMv7-A 架構的處理器。在當時的主流工藝下,Cortex-A8處理器的速率能夠在600MHz~1GHz的範圍調節,可以知足那些須要工做在300mW如下的功耗優化的移動設備的要求,以及知足那些須要2000 Dhrystone MIPS的性能優化的消費類應用的要求。當 Cortex-A8 在2008 年投入批量生產時,高帶寬無線鏈接(3G)已經問世,大屏幕也用於移動設備,Cortex-A8 芯片的推出正好遇上了智能手機大發展的濫觴。

推出Cortex-A8 以後不久,ARM 又推出了首款支持ARMv7-A架構的多核處理器Cortex-A9。Cortex-A9 利用硬件模塊來管理CPU集羣中1~4個核的高速緩存一致性,加入了一個外部二級高速緩存。在2011年年末和2012年年初,當移動SoC設計人員能夠採用多個核以後,性能獲得進一步提高。旗艦級高端智能手機迅速切換到4核Cortex-A9。除了開啓了多核性能大門以外,與Cortex-A8相比,每一個Cortex-A9處理器的單時鐘週期指令吞吐量提升了大約25%。這個性能的提高是在保持類似功耗和芯片面積的前提下,經過縮短流水線並亂序執行,以及在流水線早期階段集成NEON SIMD和浮點功能而實現的。

若是說Cortex-A8牛刀小試讓ARM初嘗甜頭,那麼Cortex-A9則催生了智能手機的井噴期,Cortex-A9幾乎成了當時智能手機的標配,大量的智能手機採用了該內核,ARM爲此掙了個盆滿鉢盈。自此,ARM便開始了它開掛的「下餃子」模式,以平均每一年一款或多款的速度瘋狂推出各款不一樣的Cortex-A處理器,迅速拉開與競爭對手的差距。具體ARM Cortex-A系列各處理器的發佈時間和特色,見表1-4。

表1-4 ARM Cortex-A系列各處理器發佈時間和特色

ARM推出Cortex-A系列各款處理器的速度之快、之多,顯示了其研發機器的超強生產力,因爲其推出的處理器型號太多、太快,阿拉伯數字都不夠用了,如表1-4所示,其型號的編號規則逐漸令做者都傻傻分不清了。同時,因爲其推出的處理器型號太多、太快,乃至於令衆多受權ARMv7/8-A架構進行自研處理器的巨頭都疲於奔命。在Cortex-A8/A9時代,多家有實力的巨頭均選擇受權ARMv7/8-A架構進行自研處理器以差別化其產品並下降成本。這些巨頭包括高通、蘋果、Marvell、博通、三星、TI以及LG等。做者便曾經在其中的一家巨頭供職擔任CPU高級設計工程師,開發其自研的Cortex-A系列高性能處理器。如前所述,研發一款高性能的應用處理器須要解決挑戰極高的技術難題以及投入數年時間,而當ARM以年均一款新品之勢席捲市場時,使得自研處理器沒有可以來得及推出便已過期。

衆巨頭們紛紛棄甲丟盔,相繼有TI、博通、Marvell和LG等巨頭放棄了自研處理器業務。乃至自研處理器作的最爲成功的高通(以其Snapdragon系列應用處理器風靡市場)也在其中低端SoC產品中放棄了自研處理器轉而採購ARM的Cortex-A系列處理器,僅在高端SoC中保留了自研的處理器。值得一提的是,因爲中國的巨大市場與產業支持,在巨頭們放棄自研處理器的趨勢下,中國的華爲與展訊逆勢而上,開始受權ARMv8-A架構進行自研處理器的研發,並取得了使人欣喜的成果。

Cortex-A系列的巨大成功完全地奠基了ARM在移動領域的統治地位。因爲Cortex-A系列的先機與成功,ARM架構在移動領域構築了城寬池闊的軟件生態環境。至今,ARM架構已經應用到全球85%的智能移動設備中,其中有超過95%的智能手機都基於ARM的設計,基本上使得其餘架構的處理器失去了進入該領域的可能性。ARM攜Cortex-A系列移動領域一統江山,就如坦格利安人駕着噴火的巨頭征服維斯特洛大陸般如入無人之境。ARM除了一步步提高Cortex架構性能之餘,也找到了不少「志同道合」的夥伴,好比高通、谷歌和微軟等,並與合做夥伴們造成了強大的生態聯盟。攜此餘威,傳統x86架構的PC與服務器領域就成爲了ARM的下一步發展目標。有道是「驅巨獸鼎定移動地,Cortex-A劍指服務區」。預知後事如何,且聽下節分解。

1.2.4 進擊的巨人——ARM進軍PC與服務器領域的雄心

PC與服務器市場是一個超千億規模的大蛋糕,而這個市場長時間由另一個巨頭Intel把持,同爲x86陣營的AMD常年屈居老二,分享着有限的蛋糕份額。Intel在此領域的巨大成功,是其豐厚盈利的主要來源。

上一節提到ARM劍指PC與服務器領域,谷歌ChromeBook就是ARM揮師PC市場的先行軍,在(海外的)入門級市場受到了普遍好評,ARM處理器能夠幫助此類設備變得更輕、更省電。微軟對ARM的支持一樣給力,2016年12月舉行的WinHEC 2016大會上,微軟與高通宣佈將採用下一代驍龍處理器(基於ARM架構)的移動計算終端上支持Windows 10系統,微軟演示了搭載驍龍820處理器的筆記本運行Windows 10,驍龍820在4GB存儲器支撐下(性能能夠和Intel i3媲美),一臺Windows 10企業版系統筆記本可以流暢地運行Edge、外接繪圖板、觀看高清視頻、使用PS定向濾鏡等,同時支持多任務後臺。

2017年,高通宣佈正在對其自研驍龍835進行優化,將這款處理器擴展到運行Windows 10的移動PC當中,而搭載驍龍835的Windows 10移動PC計劃在2017年第四季度推出。除此以外,在數據中心領域,高通也與微軟達成了合做,將來運行Windows Server的服務器也能夠搭載高通10nm Centriq處理器,這也是業內首款10nm服務器處理器。微軟還宣佈將在將來的Windows 10 RedStone 3當中正式提供ARM設備對完整版Windows 10的兼容支持,這意味着基於ARM處理器的設備能夠運行x86程序,跨平臺融合正式到來。

至此,咱們已經介紹ARM公司及其ARM架構的強大之處,瞭解了Cortex-M處理器在嵌入式領域內的巨大成功,Cortex-A處理器在移動領域內的王者之位,甚至於在PC與服務器領域內的雄心。

1.2.5 遊戲終結者之ARM

至此,咱們已經介紹ARM公司及其ARM架構的強大之處,瞭解了Cortex-M處理器在嵌入式領域內的巨大成功,Cortex-A處理器在移動領域內的王者之位,甚至於在PC與服務器領域內的雄心。

2016年7月,日本軟銀集團以約243億英鎊(約合320億美圓)和高達43%的溢價收購ARM公司。軟銀高價收購ARM也是由於ARM正在成爲智能硬件和物聯網設備的標配。在收購ARM公司時,軟銀CEO孫正義曾表示:「這是咱們有史以來最重要的收購,軟銀集團正在捕捉物聯網帶來的每個機遇,ARM則很是符合軟銀的這一戰略,期待ARM成爲軟銀物聯網戰略前進的重要支柱。」以後,孫正義更表示:「將來20年內,ARM架構芯片的年出貨量將達到1萬億顆,ARM可以馬上收集全部實時數據」。

彷佛ARM即將統治這個世界,毫無疑問地成爲32位嵌入式處理器領域的下一個8051了。然而就在此時,RISC-V走向了臺前。

東邊日出西邊雨,道是無晴卻有晴——RISC-V 登場

RISC-V架構主要由美國加州大學伯克利分校(簡稱伯克利)的Krste Asanovic教授、Andrew Waterman和Yunsup Lee等開發人員於2010年發明,而且獲得了計算機體系結構領域的泰斗David Patterson的大力支持。伯克利的開發人員之因此發明一套新的指令集架構,而不是使用成熟的x86或者ARM架構,是由於這些架構通過多年的發展變得極爲複雜和冗繁,而且存在着高昂的專利和架構受權問題。而且修改ARM處理器的RTL代碼是不被支持的,而x86處理器的源代碼根本不可能得到到。其餘的開源架構(譬如SPARC、OpenRISC)均有着或多或少的問題(第2章將詳細論述)。有感於計算機體系結構和指令集架構已通過數十年的發展很是成熟,可是像伯克利這樣的研究機構居然「無米下鍋」(選擇不出合適的指令集架構供其使用)。伯克利的教授與研發人員決定發明一種全新的、簡單且開放免費的指令集架構,因而RISC-V架構誕生了。

有關RISC-V的誕生,有興趣的讀者能夠自行到網絡中查閱文章《伯克利但願將RISC-V開源架構推向主流》。RISC-V(英文讀做「risk-five」),是一種全新的指令集架構。「V」包含兩層意思,一是這是Berkeley從RISC I開始設計的第五代指令集架構;二是它表明了變化(Va r i a t i o n)和向量(Vectors)。

通過幾年的開發,伯克利爲RISC-V架構開發出了完整的軟件工具鏈以及若干開源的處理器實例,獲得愈來愈多的人的關注。2016年,RISC-V基金會(Foundation)正式成立開始運做。RISC-V基金會是一個非營利性組織,負責維護標準的RISC-V指令集手冊與架構文檔,並推進RISC-V架構的發展。

  • RISC-V架構的目標以下。成爲一種徹底開放的指令集,能夠被任何學術機構或商業組織所自由使用。

  • 成爲一種真正適合硬件實現且穩定的標準指令集。

RISC-V基金會負責維護標準的RISC-V架構文檔和編譯器等CPU所需的軟件工具鏈,任何組織和我的能夠隨時在RISC-V基金會網站上免費下載(無須註冊)。RISC-V的推出以及基金會的成立,受到了學術界與工業界的巨大歡迎。著名的科技行業分析公司Linley Group 將RISC-V評爲「2016年最佳技術」,如圖1-9所示。

圖1-9 RISC-V架構標誌圖

開放而免費的RISC-V架構誕生,不只對於高校與研究機構是個好消息,爲前期資金缺少的創業公司、成本極其敏感的產品、對現有軟件生態依賴不大的領域,都提供了另一種選擇,並且獲得了業界主要科技公司的擁戴,包括谷歌、惠普、Oracle和西部數據等硅谷巨頭都是RISC-V基金會的創始會員,如圖1-10所示。衆多的芯片公司已經開始使用(譬如,三星、英偉達等)或者計劃使用RISC-V開發其自有的處理器用於其產品。

圖1-10 RISC-V基金會創始會員,鉑金、金、銀級會員圖譜

RISC-V基金會組織每一年舉行兩次公開的專題討論會(Wo r k s h o p),以促進RISC-V陣營的交流與發展,任何組織和我的都可以從RISC-V基金會的網站上下載到每次Workshop上演示的PPT與文檔。RISC-V第六次Workshop於2017年5月在中國的上海交通大學舉辦,如圖1-11所示,吸引了大批的中國公司和愛好者參與。

圖1-11 上海交通大學舉辦的RISC-V第六次Workshop

因爲許多如今主流的計算機體系結構英文教材(譬如,計算機體系結構量化研究方法、計算機組成與設計等)的做者自己也是RISC-V架構的發起者,所以這些英文教材都相繼推出了以RISC-V架構爲基礎的新版本教材,如圖1-12所示。這意味着美國的大多數高校都將開始採用RISC-V做爲教學範例,也意味着若干年後的高校畢業生都將對RISC-V架構很是熟知。

可是,一款指令集架構(ISA)最終可否取得成功,很大程度上取決於軟件生態環境。羅馬不是一天建成的,x86與ARM架構通過多年的經營,構建了城寬池闊的軟件生態環境,能夠說是兵精糧足,很是強大。所以,做者認爲RISC-V架構在短期內還沒法對x86和ARM架構造成撼動。可是隨着愈來愈多的公司和項目開始採用RISC-V架構的處理器,相信RISC-V的軟件生態也會逐步壯大起來。

圖1-12 經典教材計算機組成與設計最新版本

本節雖然陳述了若干RISC-V蓬勃發展的具體案例,可是因爲RISC-V陣營正在快速地向前發展,可能在本書成書時,RISC-V陣營又誕生了更加使人欣喜的案例,請讀者自行查閱互聯網更新見聞。

RISC-V 和其餘開放架構有何不一樣

若是僅從「免費」或「開放」這兩點來評判,RISC-V架構並非第一個作到免費或開放的處理器架構。

下面將經過論述幾個具備表明性的開放架構,來分析RISC-V架構的不一樣之處以及爲何其餘開放架構沒能取得足夠的成功。

1.4.1 「平民英雄」—OpenRISC

OpenRISC是OpenCores組織提供的基於GPL協議的開放源代碼RISC處理器,它具備如下特色。

  • 採用免費開放的32/64位 RISC架構。•用Verilog HDL(硬件描述語言)實現了基於該架構的處理器源代碼。

  • 具備完整的工具鏈。

OpenRISC被應用到不少公司的項目中,能夠說,OpenRISC是應用很是普遍的一種開源處理器實現。

OpenRISC的不足之處在於其側重實現一種開源的CPU Core,而非立足於定義一種開放的指令集架構,所以其架構的發展不夠完整。指令集的定義也不具有RISC-V架構的優勢,更沒有上升到成立專門的基金會組織的高度。OpenRISC更多被認爲是一個開源的處理器核,而非一種優美的指令集架構。此外,OpenRISC的許可證爲GPL,這意味着全部的指令集改動都必須開源(而RISC-V則無此約束)。

1.4.2 「豪門顯貴」—SPARC

SPARC架構做爲經典的RISC微處理器架構之一,於1985年由Sun公司所設計。SPARC也是SPARC國際公司的註冊商標之一,SPARC公司於1989年成立,目的是向外界推廣SPARC架構以及爲該架構進行兼容性測試。該公司爲了推廣SPARC的生態系統,將標準開放,並受權予多家生產商使用,包括德州儀器、Cypress半導體和富士通等。因爲SPARC架構也對外徹底開放,所以也出現了徹底開放源碼的LEON處理器(見第1.1.4節的介紹)。不只如此,Sun公司還於1994年推進SPARC v8架構成爲IEEE標準(IEEE Standard 1754-1994)。

因爲SPARC架構的初衷是面向服務器領域,其最大的特色是擁有一個大型的寄存器窗口,符合SPARC架構的處理器須要實現從72到640個之多的通用寄存器,每一個寄存器寬度爲64bit,組成一系列的寄存器組,稱爲寄存器窗口。這種寄存器窗口的架構,因爲能夠切換不一樣的寄存器組快速地響應函數調用與返回,所以可以產生很是高的性能,可是這種架構功耗面積代價太大,而並不適用於PC與嵌入式領域處理器。而SPARC架構也不具有模塊化的特色,使用戶沒法裁剪和選擇,很難做爲一種通用的處理器架構對商用的x86和ARM架構造成替代。設計這種超大服務器CPU芯片又非普通公司與我的所能完成,而有能力設計這種大型CPU的公司也沒有必要投入巨大的成原本挑戰x86的統治地位。隨着Sun公司的衰弱,SPARC架構如今基本上退出了人們的視野。

1.4.3 「名校優生」——RISC-V

多年來在CPU領域已經出現過多個免費或開放的架構,不少高校也在科研項目中推出過多種指令集架構。所以看成者第一次據說RISC-V時,覺得又是一個玩具,或純粹學術性質的科研項目而不覺得意。

而做者在通讀了RISC-V的架構文檔之後,不由爲其先進的設計理念所折服。同時,RISC-V架構的各類優勢也獲得了衆多專業人士的青睞、好評,衆多商業公司相繼加盟,而且2016年RISC-V基金會的正式啓動在業界引發了不小的影響。如此種種,使得RISC-V成爲至今爲止最具革命性意義的開放處理器架構。

有興趣的讀者能夠自行到網絡中查閱文章《RISC-V登場,Intel和ARM會怕嗎》《直指移動芯片市場,開源的處理器指令集架構發佈》和《三星開發RISC-V架構自主CPU內核》。

結語:進入 32 位時代,誰能成爲深嵌入式領域的下一個 8051?

本文系統地論述了CPU的基本知識,也簡述了ARM的如何強大以及開放RISC-V架構的誕生。一言以蔽之,開放而免費RISC-V架構使得任何公司與我的都可受用,極大地下降了CPU設計的准入門檻。有了RISC-V架構,CPU將再也不是「權貴的遊戲」,有道是:「舊時王謝堂前燕,飛入尋常百姓家」—每一個公司和我的均可以依照RISC-V標準設計本身的處理器。

本來「學霸」ARM Cortex-M將毫無疑問地成爲8051的接班人而掌管深嵌入式領域的32位時代。可是不期而至的新生RISC-V卻自帶光環,讓這場遊戲出現了一絲變數。

前文中總結了傳奇「老炮兒」8051的先進事蹟,分析了它的幾個成功因素。在此,咱們將其概括爲表格,而且將ARM Cortex-M與RISC-V進行橫向對比,如表1-5所示。

表1-5 ARM Cortex-M和RISC-V對比8051的成功因素

對於軟件的依賴相對比較低。而且,雖然RISC-V資歷很是淺,可是其架構在開放至今很短的時間內取得了使人驚異的發展速度,愈來愈多的公司和項目開始採用RISC-V架構的處理器,相信RISC-V的軟件生態也會逐步壯大起來。

從另外一方面來講,ARM做爲商業架構下的處理器IP,具備以下缺點:不可以進行差別化定製,不具有可擴展性,受私有知識產權保護,指令集架構須要支付商業受權費用等。這些缺點在開放的RISC-V架構中都不存在,可謂是後生可畏。

是商業巨擘ARM將完全統治這個世界?仍是自由戰士RISC-V將別開生面?誰又能最終成爲32位時代深嵌入式領域內的下一個8051?做者認爲,世界須要ARM,同時也須要一個開放而標準的指令集RISC-V,所以,兩者都將擁有其不一樣的生態系統和用戶羣體,共榮共生互爲補充,構建出一幅更加繁華的景象。


《RISC-V架構與嵌入式開發快速入門

胡振波 著


本書是一本介紹RISC-V架構嵌入式開發的入門書籍,以通俗的語言系統介紹了嵌入式開發的基礎知識和RISC-V架構的內容,力求幫助讀者快速掌握RISC-V架構的嵌入式開發技術。

本書共分爲兩部分。第一部分爲第1~14章,基本涵蓋了使用RISC-V架構進行嵌入式開發所需的全部關鍵知識。第二部分爲附錄部分,詳細介紹了RISC-V指令集架構,輔以做者加入的背景知識解讀和註解,以便於讀者理解。

相關文章
相關標籤/搜索