0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM架構(gòu)的關(guān)鍵能力

Linux閱碼場(chǎng) ? 來源:Linux閱碼場(chǎng) ? 作者:Linux閱碼場(chǎng) ? 2022-07-01 10:15 ? 次閱讀

作者簡(jiǎn)介

十四年IT基礎(chǔ)設(shè)施研發(fā)經(jīng)驗(yàn),其中包括六年Linux kernel一線研發(fā)經(jīng)驗(yàn),在suse,華為,星際比特(技術(shù)合伙人)等公司工作。

作為團(tuán)隊(duì)核心成員參與了大陸第一個(gè)Cortex-A8 SOC芯片研發(fā),負(fù)責(zé)CPU軟件驗(yàn)證,操作系統(tǒng)移植等工作。

作為華為派駐到Linaro的技術(shù)專家,主導(dǎo)/參與多個(gè)Linux與arm架構(gòu)相關(guān)特性研發(fā)(ILP32,continuous bit hint,kernel selftest等)

在拉斯維加斯,柏林,布達(dá)佩斯和北京多次發(fā)表技術(shù)演講

2022年6月6日,WWDC 2022,蘋果推出了新的Macbook Air和Macbook Pro,最大支持24G內(nèi)存和2T存儲(chǔ),支持8k視頻,支持18-20小時(shí)的續(xù)航,價(jià)格分別是1199美元和1299美元起。二者都適用了蘋果最新自研的M2芯片。

作為底軟的吃瓜群眾,迫不及待的想把a(bǔ)ir拆開,一探究竟,無奈囊中羞澀。只好隔著屏幕一探M2的究竟。健哥整理了M1和M2的部分特性(表格橫屏查看):

SOC M1 M2
Architecture ARM v8.5 ARM v8.5
CPU 4xFirestorm 4xIcestorm 4xAvalanche 4xBlizzard
Memory 8G/16G lpddr4 8/16/24G lpddr5
Transister 16 billion 20 billion
Product MacBook Air/Pro 2020 Macbok Air/pro 2022
Release Date 2020 2022

資料來源:Apple公司官網(wǎng),整理人:健哥。原始表格:https://fvot4kwt4n.feishu.cn/sheets/shtcn69s9nbcvYxX0bAnDgxiAUb

M2使用了和A15一樣的兩個(gè)CPU IP Avalanche,Blizzard,分別作為性能核心和能效核心。二者組成大小核,會(huì)根據(jù)系統(tǒng)需要,選擇合適的CPU,平衡性能和功耗。ARM公司官方的最新大小核技術(shù)稱為DynamIQ。很遺憾,健哥暫時(shí)沒有查到蘋果大小核技術(shù)的更多信息,希望以后有機(jī)會(huì)向大家分享。

可以看到M2支持了更大的內(nèi)存和更好的帶寬。資料顯示,M2使用了LPDDR5 6400,帶寬可以到達(dá)100G。BTW,很多手機(jī)使用了LPDDR5,例如華為Mate P40,小米10,帶寬大約在30-40G。

健哥查到的第一個(gè)使用LPDDR5的筆記本是華為的擎云L420,這個(gè)筆記本使用了華為麒麟9006C SOC。該芯片也采用了5nm工藝,最高頻率3.13GHz。某東8+256的版本是7999元。

49495a56-f394-11ec-ba43-dac502259ad0.jpg

想了解一個(gè)ARM CPU,最為核心的是知道這個(gè)CPU的架構(gòu),根據(jù)網(wǎng)上的資料,M2的CPU是支持ARMv8.5擴(kuò)展的。ARM從v8開始,除了v8,v9的大版本,還有若干小版本。目前最新的是v8.8和v9.3。雖然v8.5不是最新的ARM架構(gòu),但是v9.0除了SVE2,CCA,其余和v8.5是一樣的。很多很多年之后,即使沒有ARMv8a處理器了,今天學(xué)習(xí)的v8.5特性,也是未來繼續(xù)跟蹤ARM架構(gòu)發(fā)展的很好的切入點(diǎn)。

495769c0-f394-11ec-ba43-dac502259ad0.png

從上圖可以看到v8.5的主要增強(qiáng)有:

MTE: Memory Tagging Extension;

BTI: Branch Target Identification;

隨機(jī)數(shù)生成器;

增強(qiáng)對(duì)PMEM的支持。

Memory Tagging Extension,顧名思義,是一個(gè)tag相關(guān)的特性。它使用了虛擬地址是不使用的位作為tag,可以用于use-after-free和buffer overrrun兩個(gè)內(nèi)存安全特性。

Branch Target Identification:從名字上可以看出,這是一個(gè)和跳轉(zhuǎn)相關(guān)的特性,作用是在頁(yè)表,PSTATE和BTI指令的配合下,檢查是否發(fā)生了預(yù)期之外的跳轉(zhuǎn)。如果是預(yù)期之外的跳轉(zhuǎn),會(huì)觸發(fā)異常。

隨機(jī)數(shù)生成器是引入了RNDR,RNDRRS兩條指令。

對(duì)PMEM的支持:增加了PoDP,PoDP可以保證即使硬件故障導(dǎo)致了斷電,Persistent memory的數(shù)據(jù)不會(huì)出錯(cuò)。

除了第三個(gè)特性,其它三個(gè)看起來都有點(diǎn)復(fù)雜,其實(shí)用健哥上次直播介紹的ARM架構(gòu)三大基石(匯編,異常和內(nèi)存)和三步學(xué)習(xí)方法(理解原理,閱讀代碼,實(shí)驗(yàn)驗(yàn)證),咱們都能化繁為簡(jiǎn)。

比如BTI特性,由三部分組成

頁(yè)表中的GP位,用于設(shè)置是否是guarded page。這背后是對(duì)頁(yè)表的基本理解;

BTI指令用于指定檢查的規(guī)則。例如是否可以跳轉(zhuǎn)的動(dòng)態(tài)鏈接庫(kù)。這背后是匯編語言的基本語法和過程調(diào)用標(biāo)準(zhǔn)(APCS64);

PSTATE.BTYPE位用于在guarded區(qū)域(上面所說guarded page的區(qū)域)的指令是否產(chǎn)生異常。

可以看到,理解BTI特性需要從匯編,異常和內(nèi)存三方面配合理解。有了上面的初步了解,再結(jié)合原本plt的代碼代碼(下圖),我們可以想象在打開BTI特性的情況下,如果是guarded區(qū)域,br指令如果訪問了x16, x17之外的寄存器,會(huì)產(chǎn)生異常。

49660458-f394-11ec-ba43-dac502259ad0.png

編譯器使能bti后,我們的確能看到0x790行插入了bti c指令。

4973a54a-f394-11ec-ba43-dac502259ad0.png

對(duì)于MTE也是一樣的,學(xué)習(xí)MTE特性是對(duì)三大基石的鞏固和提高,然后我們可以借助對(duì)于MTE的了解,更多的理解軟硬件如何配合,近可以看看操作系統(tǒng)下為內(nèi)存安全還做了哪些事情,遠(yuǎn)可以更多學(xué)習(xí)操作系統(tǒng)的內(nèi)存管理知識(shí),從而更深理解操作系統(tǒng)。

4981a424-f394-11ec-ba43-dac502259ad0.png

在課程中,我們會(huì)和今天一樣,先從軟硬件系統(tǒng)的整體出發(fā)到ARM CPU,然后聚焦在匯編,異常和內(nèi)存三部分,每一部分都有三個(gè)學(xué)習(xí)要點(diǎn),每個(gè)要點(diǎn)都通過原理,代碼和實(shí)驗(yàn)三部分打通。打通之后,我們通過對(duì)于更深入特性的拆解,驗(yàn)證前面的學(xué)習(xí)效果。歡迎大家報(bào)名我的ARM工作坊,我?guī)Т蠹乙黄鸫蛲ê捅艫RM架構(gòu)的關(guān)鍵能力。

原文標(biāo)題:Apple M2和ARMv8.5特性

文章出處:【微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    453

    文章

    50262

    瀏覽量

    421176
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9030

    瀏覽量

    366561
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4235

    瀏覽量

    85601
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    313

    瀏覽量

    20958

原文標(biāo)題:Apple M2和ARMv8.5特性

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM內(nèi)核和架構(gòu)都是什么意思,它們到底是什么關(guān)系?

    開始有能力蓋十層以上的大樓了。 ARM一如既往地出了新的款式(ARMv7架構(gòu)), 這時(shí)ARM覺得以前名字都太土鱉了, 什么ARM5、
    發(fā)表于 07-24 16:10

    轉(zhuǎn):ARM內(nèi)核和架構(gòu)都是什么意思,它們到底是什么關(guān)系?

    子! 好吧,那ARM就滿足你們的要求,出個(gè)帶小院子的款式(ARM9)。又過了很久, 這種平房的架構(gòu)就隨著大伙的需求一直改啊改啊,后來經(jīng)過ARM研究發(fā)現(xiàn): 現(xiàn)在大伙蓋房子的
    發(fā)表于 07-28 15:07

    我對(duì)ARM架構(gòu)的理解

    的核心都是由Arm內(nèi)部設(shè)計(jì)的微架構(gòu)。Cortex-R系列,架構(gòu)Armv7-R和Armv8-R,為高性能實(shí)時(shí)應(yīng)用進(jìn)行了優(yōu)化。這些處理器有更好的容錯(cuò)性和工作在安全關(guān)鍵的應(yīng)用,包括醫(yī)療設(shè)備,
    發(fā)表于 09-03 17:56

    ARM與RISC-V架構(gòu)的區(qū)別是什么?

    2019年開始,RISC-V得到了越來越多的重視,原因有很多,ARM授權(quán)費(fèi)高是關(guān)鍵的因素,下面就來說說關(guān)于ARM和RISC-V架構(gòu),以及相關(guān)的內(nèi)容。 關(guān)于
    發(fā)表于 04-25 09:13

    ARM架構(gòu)是什么

    從單片機(jī)轉(zhuǎn)到ARM,主要需要學(xué)習(xí)ARM架構(gòu),ARM相比單片機(jī)多了一些外設(shè)和總線。在僅僅是裸奔的情況下,如果熟悉了ARM
    發(fā)表于 07-01 09:23

    ARMARM的架構(gòu)ARM架構(gòu)的區(qū)別

    目錄文章目錄目錄ARMARM 的架構(gòu)x86 架構(gòu)ARM 架構(gòu)的區(qū)別ARM 的技術(shù)實(shí)現(xiàn)ARMARM
    發(fā)表于 07-16 06:43

    ARM芯片架構(gòu)

    ARM芯片ARM 歷史ARM架構(gòu) (Advanced RISC Machine)64/32位架構(gòu)32位
    發(fā)表于 07-28 08:16

    ARM架構(gòu)

    ARM架構(gòu)ARM架構(gòu)如圖所示,ARM公司只提供內(nèi)核技術(shù),而其他外設(shè)則為芯片商設(shè)計(jì)并使用,ARM
    發(fā)表于 08-04 06:18

    X86架構(gòu)ARM架構(gòu),在工業(yè)領(lǐng)域的優(yōu)勢(shì)爭(zhēng)霸

    在處理器架構(gòu)方面,X86架構(gòu)ARM架構(gòu)在性能方面有那些區(qū)別? X86架構(gòu)ARM
    發(fā)表于 07-31 15:58 ?6665次閱讀

    ARM架構(gòu)_-_介紹

    ppt主要介紹了arm架構(gòu),通過介紹寄存器、指令集、總線、工作模式等方面來闡釋ARM架構(gòu)。
    發(fā)表于 05-24 14:14 ?41次下載

    什么叫arm架構(gòu)_X86架構(gòu)ARM架構(gòu)有什么區(qū)別

    本文首先介紹了arm架構(gòu)的概念,其次介紹了ARM架構(gòu)圖與ARM的技術(shù)實(shí)現(xiàn),最后介紹了X86架構(gòu)
    發(fā)表于 04-24 08:45 ?8.7w次閱讀
    什么叫<b class='flag-5'>arm</b><b class='flag-5'>架構(gòu)</b>_X86<b class='flag-5'>架構(gòu)</b>與<b class='flag-5'>ARM</b><b class='flag-5'>架構(gòu)</b>有什么區(qū)別

    一文看懂arm架構(gòu)和x86架構(gòu)有什么區(qū)別

    本文主要介紹的是arm架構(gòu)和x86架構(gòu)的區(qū)別,首先介紹了ARM架構(gòu)圖,其次介紹了x86架構(gòu)圖,最
    的頭像 發(fā)表于 05-16 14:19 ?31.1w次閱讀
    一文看懂<b class='flag-5'>arm</b><b class='flag-5'>架構(gòu)</b>和x86<b class='flag-5'>架構(gòu)</b>有什么區(qū)別

    基于ARM架構(gòu)的上網(wǎng)本解決方案

    關(guān)鍵詞:i.MX515 , Atom , ARM架構(gòu) 在目前的上網(wǎng)本解決方案中,英特爾(Intel)Atom(凌動(dòng))處理器占有優(yōu)勢(shì),但來自飛思卡爾(Freescale)、德州儀器(TI, Texas
    發(fā)表于 12-03 11:50 ?366次閱讀

    為什么要使用Arm架構(gòu)

    Arm架構(gòu)依然盤踞著移動(dòng)設(shè)備領(lǐng)域指令集架構(gòu)市場(chǎng)的龍頭位置。隨著RISC-V生態(tài)的持續(xù)擴(kuò)展,巨頭廠商和小公司的不斷入局,Arm架構(gòu)的安穩(wěn)日子也
    發(fā)表于 12-16 09:56 ?3474次閱讀

    Arm架構(gòu)科普解讀 Arm架構(gòu)的底層邏輯和Arm架構(gòu)的頂層設(shè)計(jì)

    本文主要探討了 Arm 架構(gòu)的底層邏輯,介紹了Arm 架構(gòu)的頂層設(shè)計(jì);以處理器核心架構(gòu)為基礎(chǔ),以系統(tǒng)架構(gòu)
    的頭像 發(fā)表于 02-06 05:33 ?5947次閱讀
    <b class='flag-5'>Arm</b><b class='flag-5'>架構(gòu)</b>科普解讀  <b class='flag-5'>Arm</b><b class='flag-5'>架構(gòu)</b>的底層邏輯和<b class='flag-5'>Arm</b><b class='flag-5'>架構(gòu)</b>的頂層設(shè)計(jì)