那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ARM重新定義ARMv8新架構,ARMv8新架構特性解說

454398 ? 來源:蝸窩科技 ? 作者:wowo ? 2020-10-08 17:02 ? 次閱讀

1. 前言

ARMv8(當前只有A系列,即ARMv8-A)架構,是ARM公司為滿足新需求而重新設計的一個架構,是近20年來,ARM架構變動最大的一次。它引入的Execution State、Exception Level、Security State等新特性,已經和我們對舊的ARM架構的認知,有很大差距了。

因此,本文從ARMv8-A產生的背景開始,對它進行一個簡單的介紹,使大家從整體上,對ARMv8有一個簡單的了解。

2. 背景

有一點是可以確定的,ARM誕生時,對Intel主導的PC市場,沒有(也不敢有)一點點的非分之想。最初的ARMv4(ARM7系列),到最近的ARMv7(Cortex-A,-M,-R系列),都是針對功耗比較敏感的移動設備的,就性能而言,基于ARM處理器的設備,始終無法和PC相提并論。

但從ARMv7開始,情況開始有些轉變,ARM的市場開始擴展到移動設備之外的其它領域,這也是ARMv7劃分為A(Application)、R(Real-time)和M(Microcontroller)三個系列的原因,其實質就是三個細分市場,其中的A系列,就是針對性能要求較高的應用。

特別是在Cortex-A9之后,ARM的處理性能有很大的提高,漸漸的吸引了一些PC用戶。因此基于ARM的類PC產品,如平板電腦,開始大量涌現。此時,ARM的處理能力,已經有機會應用于其它領域了,如企業設備、服務器等,當然,其優勢依然是低功耗。

與此同時,新的趨勢正在醞釀,主要包括大內存(Large Memory)、虛擬化(Virtualization)和安全(Security)。Virtualization在ARMv7上已經有簡單的硬件實現,Security也有可能基于當前架構擴展,唯有Large memory的需求,有點棘手。

由于處理器性能越來越強,運行于其上的軟件也來越復雜,復雜到單一應用對內存的需求可能超出32-bit架構所能支持的最大內存(4G),這就是Large memory需求的起因。不過,后來的Cortex-A15(ARMv7架構)通過Large Physical Address Extensions (LPAE) 技術,可以支持高達40bits的物理地址空間。但受限于32-bit的指令集,虛擬地址空間依舊只有32bits(4G),如果有應用需要更大的虛擬內存,怎么辦?只能定義一個新的架構,使用64-bit的指令集(也即我們常說的ARM64)。

毫無疑問,在現階段,需要超過4G虛擬內存的應用場景,是非常少的。但ARM還是定義了一個新的架構--ARMv8,為什么呢?下面是ARM的解釋(只有偉大的公司才有偉大的理念?。?/p>

Trends. That’s really what ARM has to look at when defining a new architecture. That is the nature of our business, we need to look a long way forward, and plan.

當然,ARMv8并不僅僅是為了解決虛擬地址的問題,它也要解決現有架構的一些問題。不過,新的問題又來了:一個新的架構?用戶為什么要使用新的架構?因此,ARMv8的定義,必須先滿足如下前提條件:

1)對上兼容。

2)能解決現存架構的已知問題。

3)相比現存架構,必須具備優勢明顯的新特性,哪怕軟件從來不使用這些新特性。

以上就是ARMv8-a產生的背景,也是ARMv8-a架構之所以是“這個”樣子的直接原因。那么到底是什么樣子呢?我們繼續介紹。

3. ARMv8-a架構簡介

基于上面的前提條件,ARMv8-a架構的主要特性包括:

1)新增一套64-bit的指令集,稱作A64。

2)由于需要向前兼容ARMv7,所以同時支持現存的32-bit指令集,稱作A32和T32(也即我們熟悉的ARM和Thumb指令集)。

3)定義AArch64和AArch32兩套運行環境(稱作Execution state),分別執行64-bit和32-bit指令集。軟件可以在需要的時候,切換Execution state。

4)AArch64最大的改動,使用新的概念(exception level),重新解釋了processor mode、privilege level等概念,具體可參考第4章的介紹。

5)在ARMv7 security extension的基礎上,新增security model,支持安全相關的應用需求。

6)在ARMv7 virtualization extension的基礎上,提供完整的virtualization框架,從硬件上支持虛擬化。

4. AArch64 Exception level

Exception level,是ARMv8-a引入的一個新概念,用于整合之前架構中processor mode和privilege level相關的功能。

4.1 ARMv7之前的實現

我們知道,以前的ARM架構,處理器可以工作在多種模式(稱作processor mode)下,包括User、FIQ、IRQ、Abort、Undefined、System等,之所以存在不同的模式,主要有2個方面的考慮:

1)不同的處理器模式,有不同的硬件訪問權限,稱作privilege level。

主要有2個level,privilege和non-privilege。其中只有User模式屬于non-privilege level,其它均是privilege level。

安全起見,大多數時候,軟件都運行在User mode。一旦需要其它操作,則需要切換到相應的privilege模式下。這是最原始、最樸素的安全思想,當然,只防君子,不防小人。

2)這些處理器模式,除User模式外,其它模式基本上和各類異常一一對應。而不同的模式,都有一些自己獨有的寄存器,例如R13(SP)、R14(LR)等等,可以使模式切換過程(也是異常處理過程)更為高效、便利。

4.2 ARMv7-a的實現

ARMv7-a基本保留了之前的設計,不同之處,將privilege level命名了,稱作PL0和PL1(也許您猜到了,后來出現了PL2,用于虛擬化擴展(Virtualization Extension)。

另外,增加了兩個模式:Monitor和Supervisor,分別用于security擴展和virtualization擴展。

4.3 ARMv8-a的實現

可能ARMv8-a的設計者覺得之前的設計有些啰嗦,就把processor mode的概念去掉(或者說淡化)了,取而代之的是4個固定的Exception level,簡稱EL0-EL3。同時,也淡化了privilege level的概念。Exception level本身就已經包好了privilege的信息,即ELn的privilege隨著n的增大而增大。類似地,可以將EL0歸屬于non-privilege level,EL1/2/3屬于privilege level。

這些Exception level的現實意義是(如下圖,先忽略Secure model有關的內容):

ARMv8-a Exception level有關的說明如下:

1)首先需要注意的是,AArch64中,已經沒有User、SVC、ABT等處理器模式的概念,但ARMv8需要向前兼容,在AArch32中,就把這些處理器模式map到了4個Exception level。

2)Application位于特權等級最低的EL0,Guest OS(Linux kernel、window等)位于EL1,提供虛擬化支持的Hypervisor位于EL2(可以不實現),提供Security支持的Seurity Monitor位于EL3(可以不實現)。

3)只有在異常發生時(或者異常處理返回時),才能切換Exception level(這也是Exception level的命名原因,為了處理異常)。當異常發生時,有兩種選擇,停留在當前的EL,或者跳轉到更高的EL,EL不能降級。同樣,異常處理返回時,也有兩種選擇,停留在當前EL,或者調到更低的EL。

注1:有關ARMv8-a異常處理的具體細節,會在其它文章中描述。

5. security model

ARMv8-a的security模型基本沿用了ARMv7 security extension的思路,主要目的保護一些安全應用的數據,例如支付等。它不同于privilege level等軟件邏輯上的保護,而是一種物理上的區隔,即不同security狀態下,可以訪問的物理內存是不同的。

ARMv8-a架構有兩個security state(參考上面圖片),Security和non-Security。主要的功效是物理地址的區隔,以及一些system control寄存器的訪問控制:

在Security狀態下,處理器可以訪問所有的Secure physical address space以及Non-secure physical address space;

在Non-security狀態下,只能訪問Non-secure physical address space,且不能訪問Secure system control resources。

6. virtualization

硬件虛擬化包括指令集虛擬化、異常處理虛擬化、MMU虛擬化、IO虛擬化等多個議題,比較復雜,這里先不描述了。

7. 總結

本文簡單介紹了ARMv8-a中的一些概念,后續文章將會重點關注異常處理模型、security模型、virtualization模型。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19406

    瀏覽量

    231160
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9165

    瀏覽量

    369164
  • ARMv8
    +關注

    關注

    1

    文章

    35

    瀏覽量

    14195
  • 虛擬內存
    +關注

    關注

    0

    文章

    77

    瀏覽量

    8084
收藏 人收藏

    評論

    相關推薦

    基于Armv9架構的MediaTek天璣8400移動芯片問世

    如今,基于 Armv9 CPU 技術構建的人工智能 (AI) 旗艦智能手機立于技術前沿,為 AI 創新提供了前所未有的機遇。為了應對持續增長的 AI 工作負載的計算強度及復雜度,Armv9.2 CPU 集群帶來了更強性能、更高效率,以及更多功能,為新一代 AI 奠定了扎實
    的頭像 發表于 12-24 14:18 ?265次閱讀

    一文詳解Arm架構Armv9.6-A中的最新功能

    Arm CPU 是當今人工智能 (AI) 賦能軟件的關鍵,它可解釋、處理和執行指令。Arm 指令集架構 (ISA) 作為硬件和軟件的接口,指示處理器做什么和怎么做。Arm ISA 持續
    的頭像 發表于 12-17 10:22 ?1815次閱讀
    一文詳解<b class='flag-5'>Arm</b><b class='flag-5'>架構</b><b class='flag-5'>Armv</b>9.6-A中的最新功能

    物聯網如何重新定義智慧城市的未來生活 智慧照明

    物聯網如何重新定義智慧城市的未來生活 智慧照明
    的頭像 發表于 12-03 17:56 ?272次閱讀
    物聯網如何<b class='flag-5'>重新定義</b>智慧城市的未來生活 智慧照明

    ARM技術是什么?國內有哪些ARM廠家呢?一起來了解一下!

    7 :2005年推出,支持多核心設計,引入了NEON指令集,進一步提升了處理器的多媒體處理能力和并行計算能力。 ARMv8 :2011年推出,采用64位架構,提供了更大的尋址空間和更高的性能。ARMv8
    發表于 11-18 16:35

    Armv9 CPU中SVE2的實際用例

    隨著每一代新產品的推出,Arm CPU 都會實現代際性能提升,并引入架構改進,以滿足不斷演進的計算工作負載的需求。本文將重點介紹三個用例,以展示 Armv9 CPU 的架構
    的頭像 發表于 10-21 09:54 ?511次閱讀
    <b class='flag-5'>Armv</b>9 CPU中SVE2的實際用例

    如何學習ARM?

    ARM 處理器架構: 學習 ARM 處理器的架構是學習的核心。ARM 架構有不同的版本,如
    發表于 10-11 10:42

    基于高通主板的ARM架構服務器

    架構主導服務器市場,現面臨挑戰。Arm 2008 年入服務器領域,雖因性能與生態問題未大突破,但近幾年重新沖刺。 (二)技術創新引領 Arm 的 Neoverse 平臺不斷發展。20
    的頭像 發表于 09-11 10:53 ?618次閱讀

    ARM MCU嵌入式開發 | 基于國產GD32F10x芯片+嵌入的開始

    架構選擇,如ARMV8、ARMV7等,均采用了RISC指令集,并通過Thumb和Thumb-2擴展指令集進一步優化了性能和存儲效率。這些特點使得ARM
    發表于 09-09 14:48

    紫光同芯推出開放式架構安全芯片E450R

    2024紫光同芯合作伙伴大會在北京璀璨啟幕,會上紫光同芯震撼發布了其最新技術結晶——全球首顆融合開放式硬件與軟件架構的安全芯片E450R。這款芯片以其獨特的雙開放設計,即開放式硬件架構搭配開放式軟件架構,
    的頭像 發表于 08-28 16:28 ?672次閱讀

    ARM CORE支持中斷嵌套嗎?GIC中斷控制器支持中斷嵌套嗎?

    在默認情況下,本文講述的都是ARMV8-aarch64架構,gicv3, linux kernel 5.14
    的頭像 發表于 08-07 09:29 ?844次閱讀
    <b class='flag-5'>ARM</b> CORE支持中斷嵌套嗎?GIC中斷控制器支持中斷嵌套嗎?

    armv8在啟動剛開始時調用了關中斷,一直到切換第一個線程,在哪里開啟的中斷呢?

    例如當前使用的armv8芯片,在啟動剛開始時調用了關中斷,一直到切換第一個線程,在哪里開啟的中斷呢? int rtthread_startup(void
    發表于 07-04 07:00

    Arm推出AI優化的Arm終端CSS以及新的Arm Kleidi軟件

    Arm 終端計算子系統 (CSS) 作為新的計算解決方案,結合了 Armv9 架構的優勢,以及基于三納米工藝節點,經過驗證和證實為生產就緒的新 Arm CPU 和 GPU 實現,可賦能
    的頭像 發表于 05-30 11:33 ?715次閱讀
    <b class='flag-5'>Arm</b>推出AI優化的<b class='flag-5'>Arm</b>終端CSS以及新的<b class='flag-5'>Arm</b> Kleidi軟件

    移動端芯片性能提升,Armv9架構新升級引發關注

    “數碼博主”5月17日的最新爆料指出,聯發科積極推進Armv9新一代IP BLACKHAWK“黑鷹”的架構設計,預計天璣9400芯片將采用這一架構,有望以“全大核”設計再度領跑移動SoC CPU性能榜單。
    的頭像 發表于 05-17 16:51 ?1122次閱讀

    Arm Helium技術誕生的由來 為何不直接采用Neon?

    經過 Arm 研究團隊多年的不懈努力,Arm 于 2019 年推出了適用于 Armv8?M 架構Arm Cortex-M 矢量擴展技術
    的頭像 發表于 02-29 17:01 ?2523次閱讀
    <b class='flag-5'>Arm</b> Helium技術誕生的由來 為何不直接采用Neon?

    Arm v9芯片新架構揭秘

    從中長期來看,隨著單芯片 ARM 核數增加、基于 ARM 架構芯片數量的上升以及ARM 應用場景的增加,公司仍將保持增長。據公司公告數據顯示,2023 財年,高端芯片采用
    發表于 02-27 14:14 ?5544次閱讀
    <b class='flag-5'>Arm</b> v9芯片新<b class='flag-5'>架構</b>揭秘
    大发888为什么打不开| 世嘉百家乐的玩法技巧和规则| 百家乐娱乐城体验金| 大发888 dafa888 octbay| 百家乐官网又称什么| 乐宝百家乐官网游戏| 百家乐噢门棋牌| 百家乐官网出老千视频| 大发888娱乐城好么| 破解百家乐游戏机| 百家乐官网越长的路| 大发888娱乐城官网| 百家乐玩揽法的论坛| 百家乐官网完美一对| 百家乐官网有几种打法| 博马百家乐官网娱乐城| 百家乐官网群bet20| 太阳城77娱乐城| 百家乐官网21点| 7人百家乐中号桌布| 菲律宾太阳城官方网| 大玩家百家乐官网现金网| 百家乐轮盘怎么玩| 德州扑克保险| 百家乐官网游戏解码器| 龙博百家乐的玩法技巧和规则 | 百家乐赚水方法| 乐九百家乐官网现金网| 百家乐2号机器投注技巧| 博彩论坛网| 网络百家乐官网的玩法技巧和规则 | 百家乐官网防伪筹码套装| 百家乐赌场技巧网| 皇冠开户| 百家乐足球投注网哪个平台网址测速最好 | 百家乐平台信誉排名| 鼎丰娱乐城| 百家乐手机软件| 盈乐博| 澳门百家乐常赢打法| 爱拼百家乐官网现金网|