加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 前言
    • 指令集
    •  
    • ARM處理器微架構(gòu)
    • 最后
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

干貨 | 什么是處理器微架構(gòu)、指令集?

2021/05/25
514
閱讀需 13 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

前言

大家好,我是ZhengN。

近段嘗試著寫一些科普文。

本次來分享一些芯片相關(guān)的小科普文。作為嵌入式開發(fā)工程師,我們對芯片都需要有一定的了解。

指令集

1、指令集的體現(xiàn)

指令集,就是CPU中用來計算和控制計算機系統(tǒng)的一套指令的集合。而指令集的先進(jìn)與否,也關(guān)系到CPU的性能發(fā)揮,它也是CPU性能體現(xiàn)的一個重要標(biāo)志。

指令集也作為一種標(biāo)準(zhǔn)規(guī)范,用于規(guī)范芯片設(shè)計工程師及編譯器開發(fā)工程師:

因為芯片與IDE都遵循相同的指令集標(biāo)準(zhǔn),所以高級語言編寫的程序經(jīng)指定編譯器編譯后能直接運行在對應(yīng)的CPU上,反之則不能運行。

如arm-linux-gnueabihf-gcc編譯得到的程序并不能運行在X86 CPU上運行:

 

2、指令集的分類

從現(xiàn)階段的主流體系結(jié)構(gòu)講,指令集可分為復(fù)雜指令集和精簡指令集兩部分:

 

(1)復(fù)雜指令集

復(fù)雜指令集側(cè)重于硬件執(zhí)行指令的功能性,其對應(yīng)的硬件結(jié)構(gòu)很復(fù)雜。

復(fù)雜指令集的特點是指令長度不固定,執(zhí)行需要多個周期;其有很多用于特定目的的專用寄存器處理器能夠直接處理寄存器中的數(shù)據(jù)。

復(fù)雜指令集主要應(yīng)用于電腦的處理器,我們的個人電腦處理器用的是X86:

 

(2)精簡指令集

精簡指令集側(cè)重于結(jié)構(gòu)簡單、處理速度更加快速上。

精簡指令集的特點是:一個周期執(zhí)行一條指令,指令長度固定,通過簡單指令的組合實現(xiàn)復(fù)雜的操作;其寄存器多是通用寄存器。精簡指令集主要用于嵌入式處理器上。

我們比較熟知的就是ARM指令集、MIPS指令集及RISC-V指令集。

① ARM

其中ARM指令集是目前用得最多的。ARM家族占比所有32位嵌入式處理器的75%,成為占全世界最多數(shù)的32位架構(gòu)。

ARM處理器廣泛使用在嵌入式系統(tǒng)設(shè)計,低耗電節(jié)能,非常適用移動通訊領(lǐng)域。

消費性電子產(chǎn)品,例如可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電子游戲,和計算機),電腦外設(shè)(硬盤、桌上型路由器),甚至導(dǎo)彈的彈載計算機等軍用設(shè)施。

隨著處理器的不斷發(fā)展,應(yīng)用需求不斷提高,ARM指令集也發(fā)展了很多個版本:

ARM V1:最初版本,采用的地址空間是26位的,尋址空間是64MB,這個版本沒有商業(yè)化。

ARM V2:增加了乘法指令及支持協(xié)處理器指令。

ARM V3:實現(xiàn)了32位的地址空間。

ARM V4:增加了半字指令的讀取和寫入操作,增加了處理器系統(tǒng)模式,增加Thumb指令集。

ARM V5:增加了DSP指令、JAVA指令。

ARM V6:增加60多條SIMD指令。

ARM V7:采用了NEON技術(shù),將DSP和媒體處理能力提高了近4倍。并支持改良的浮點運算。

ARM V8:增加64位指令集、寄存器數(shù)量增加到31個。

② MIPS

在設(shè)計理念上MIPS指令集強調(diào)軟硬件協(xié)同提高性能,同時簡化硬件設(shè)計

指令系統(tǒng)經(jīng)過通用處理器指令體系MIPS I、MIPS II、MIPS III、MIPS IV到MIPS V,嵌入式指令體系MIPS16、MIPS32到MIPS64的發(fā)展已經(jīng)十分成熟。

在嵌入式方面,MIPS K系列微處理器是僅次于ARM的用得最多的處理器之一(1999年以前MIPS是世界上用得最多的處理器),其應(yīng)用領(lǐng)域覆蓋游戲機、路由器、激光打印機、掌上電腦等各個方面。

③ RISC-V

RISC-V(讀作“RISC-FIVE”)是基于精簡指令集計算(RISC)原理建立的開放指令集架構(gòu)(ISA)。

RISC-V指令集的設(shè)計考慮了小型、快速、低功耗的現(xiàn)實情況來實做,但并沒有對特定的微架構(gòu)做過度的設(shè)計。

主流的架構(gòu)為x86與ARM架構(gòu)為了能夠保持架構(gòu)的向后兼容性,其不得不保留許多過時的定義,導(dǎo)致其指令數(shù)目多。而RISC-V架構(gòu)則能完全拋棄包袱,從輕上路。

RISC-V基礎(chǔ)指令集則只有40多條,加上其他的模塊化擴展指令總共幾十條指令。

RISC-V特點:

  • 完全開源:開源采用寬松的BSD協(xié)議,企業(yè)完全自由免費使用,同時也容許企業(yè)添加自有指令集拓展而不必開放共享以實現(xiàn)差異化發(fā)展。架構(gòu)簡單:RISC-V基礎(chǔ)指令集則只有40多條,加上其他的模塊化擴展指令總共幾十條指令。易于移植:RISC-V提供了詳細(xì)的特權(quán)級指令規(guī)范和用戶級指令規(guī)范的詳細(xì)信息,使開發(fā)者能非常方便的移植linux和unix系統(tǒng)到RISC-V平臺。模塊化設(shè)計:RISC-V其不同的部分以模塊化的方式組織在一起,用戶能夠靈活選擇不同的模塊組合,來實現(xiàn)自己定制化設(shè)備的需要。完整的工具鏈:芯片設(shè)計公司不再擔(dān)心工具鏈問題,只需專注于芯片設(shè)計,RISC-V社區(qū)已經(jīng)提供了完整的工具鏈。

阿里巴巴全資的半導(dǎo)體平頭哥半導(dǎo)體有限公司也有設(shè)計出基于RISC-V的芯片,如:

 

ARM處理器微架構(gòu)

指令集是一個很深層次的概念,在這之上我們還需要了解一個與此相關(guān)的概念:微架構(gòu)(Microarchitecture),上面RISC-V的介紹中也有提到這個概念。

微架構(gòu)的概念其實我們并不陌生,我們來看一個框圖:

這是STM32F103系列芯片的一個框圖。

微架構(gòu)其就是我們常說的xxx內(nèi)核(注:內(nèi)核有兩種概念,一種是硬件層面的概念,另一種是軟件層面的概念。這里指的是硬件層面的概念),比如STM32F103的內(nèi)核是ARM Cortex-M3內(nèi)核就是一種微架構(gòu)。

一套指令集只能設(shè)計出一種微架構(gòu)?

顯然不是的。針對于不同的應(yīng)用場景如高性能、低功耗等不同的場景,可以基于同一套指令集設(shè)計出不同的微架構(gòu)。

比如我們嵌入式中接觸得比較多的應(yīng)該是基于ARMV7指令集的Cortex系列內(nèi)核:

ARM公司授權(quán)方式?

ARM公司自己并不生產(chǎn)芯片,也不賣芯片,而是靠IP授權(quán)盈利。其主要有以下三種授權(quán)方式:

 

1、架構(gòu)層級授權(quán)

架構(gòu)層級的授權(quán)是芯片廠商在付費獲得指令集授權(quán)之后,可以基于該指令集設(shè)計自己的內(nèi)核。

架構(gòu)層級方面,只有幾個手機方面的芯片廠商可以玩得起。目前只有幾個頭部芯片能獲得ARM架構(gòu)層級的授權(quán):

  • 蘋果:Swift架構(gòu)。高通:Krait微架構(gòu)、Scorpion微架構(gòu)。三星:貓鼬微架構(gòu)。華為:無。采用公版ARM微架構(gòu)。

其中,高通、三星曾采用ARM公版+自研架構(gòu)的組合,但現(xiàn)在基本放棄自研架構(gòu),采用公版ARM微架構(gòu)。蘋果是目前是唯一一家能跟ARM這種商業(yè)模式做到五五開。

之前有一個疑問,蘋果實力這么強了,為何不自研指令集完全擺脫對于ARM的依賴?

網(wǎng)上查了一下,查到一些回答:

1、完全自研,你沒辦法保證上下游的開發(fā)者也有設(shè)備可用,沒可用設(shè)備的話,誰來給開發(fā)軟件?

2、完全自研,所有核心技術(shù)都得很多更專業(yè)的人來做,人力成本可能會比授權(quán)費還高。

3、ARM和蘋果的淵源很深,當(dāng)年蘋果是ARM的創(chuàng)始股東之一,后來蘋果陸續(xù)賣掉了ARM的股票,再后來蘋果基于ARM的架構(gòu)開始大搞自研芯片。其實蘋果現(xiàn)在就是在自研,可以理解為ARM的花式魔改。

華為目前在手機CPU方面現(xiàn)在并無自研微架構(gòu)。華為麒麟芯片用的還是公版的ARM微架構(gòu),但現(xiàn)在已經(jīng)被卡脖子了(停止內(nèi)核層級授權(quán)),這樣的形式不太樂觀。

雖然華為擁有ARMV8指令集永久授權(quán),但之前并沒有基于ARMV8自研出自己的微架構(gòu),可能已經(jīng)在研發(fā)中了。

雖然在手機CPU方面還沒有自研微架構(gòu),但已有自研云端AI芯片“昇騰(Ascend )”系列,基于自研的達(dá)芬奇架構(gòu)。不知道自研NPU微架構(gòu)與自研CPU架構(gòu)的難度差距有多大,但還是希望華為能早點自研出手機CPU微架構(gòu)。

就算能成功自研出了自己的CPU微架構(gòu),華為的路也還是不好走啊。

假設(shè)之后研發(fā)成功了,也還需要長期的驗證才敢投入使用,畢竟華為手機市場那么大,搭載自研微架構(gòu)處理器地手機一旦翻車,損失巨大。另外,這只是擁有ARMV8指令集的永久授權(quán),之后如果指令集更新迭代了,技術(shù)豈不是又要落后別人好幾代了~

2、內(nèi)核層級授權(quán)

內(nèi)核層級的授權(quán)是ARM公司設(shè)計出不同的微架構(gòu),其他芯片公司可以購買這些微架構(gòu),再添加一些自己的一些外設(shè)模塊,就可以設(shè)計出一個芯片。比如:

ST公司購買了了ARM公司的Cortex-M3內(nèi)核,然后加上圖上的一些外設(shè)模塊如TIM、IIC、SPI等這些模塊之后就可以設(shè)計出STM32F103系列芯片。

ARM的內(nèi)核層級授權(quán)客戶很多,如:ST、TI、三星、海思、瑞芯微、全志等。

3、使用層級授權(quán)

使用層級的授權(quán)就是可以使用封裝好的ARM芯片,而不能進(jìn)行任何修改。

作為最低的授權(quán)等級,擁有使用授權(quán)的用戶只能購買已經(jīng)封裝好的ARM處理器核心,而如果想要實現(xiàn)更多功能和特性,則只能通過增加封裝之外的DSP核心的形式來實現(xiàn)(當(dāng)然,也可以通過對芯片的再封裝方法來實現(xiàn))。

最后

以上就是本次的分享。如有錯誤,歡迎指出!

碼字不易,如果覺得文章有幫助,麻煩幫忙轉(zhuǎn)發(fā)轉(zhuǎn)發(fā),謝謝!

參考資料:

1、《嵌入式C語言自我修養(yǎng)》

2、《ARM嵌入式體系結(jié)構(gòu)與接口技術(shù)》

3、一文讀懂ARM架構(gòu)

4、三星放棄自研CPU架構(gòu)采用公版arm架構(gòu)是明智的選擇 

5、其它

Arm

Arm

ARM公司是一家知識產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計算設(shè)備、多媒體數(shù)字消費品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計算設(shè)備、多媒體數(shù)字消費品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

本公眾號專注于嵌入式技術(shù),包括但不限于C/C++、嵌入式、物聯(lián)網(wǎng)、Linux等編程學(xué)習(xí)筆記,同時,公眾號內(nèi)包含大量的學(xué)習(xí)資源。歡迎關(guān)注,一同交流學(xué)習(xí),共同進(jìn)步!