国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

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

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

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

解析Armv8.1-M的一些特性

安芯教育科技 ? 來源:CSDN技術(shù)社區(qū) ? 2023-02-06 10:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡單闡述下ARMv8.1-M的一些特性,更多的特性及其詳細(xì)信息,請查看Armv8-M Architecture Reference Manual-DDI0553B_m。

1. MVE(M-Profile Vector Extension) or Helium technology

MVE其實就是ARM-M系列的SIMD特性,使得M-profile processor在DSPAI等應(yīng)用領(lǐng)域具有更強的處理能力。

8ba091fe-a446-11ed-bfe3-dac502259ad0.jpg

8個128bit的vector size,可以拆成多個elements。

lane predication,適用code形式:if (a[i] != 0) then b[i]=a[i]*b[i],當(dāng)然還有其它變形形式,這時候需要結(jié)合VPTE指令來配合。

Vector gather load和vector scatter store,如VLDRB, VLDRH, VLDRW, VLDRD (vector)和VSTRB, VSTRH, VSTRW, VSTRD (vector)等。

MVE interleaving/de-interleaving loads and stores,如VLD2/VLD4和VST2/VST4等。

Beatwise operation,因為vector可能的一條指令會執(zhí)行多個步驟,如果在執(zhí)行期間有中斷,可以用ECI寄存當(dāng)前instruction執(zhí)行到哪個步驟了。

Support Circular Buffer,combine an instruction that generates wrapping offsets(VIWDUP) with a scatter‐gather instruction to access data at these offsets。

2. LoB/Loop Tail Predication/BF

LoB/Loop Tail Predication/BF可以用于提高loops循環(huán)和branches分支的效率,減少不需要耗在control flow指令上的時間。

Loop iteration optimization: LoB,在LO_BRANCH_INFO寄存器里存入end_addr和jump_addr,然后next instruction的address匹配上end_addr就可以直接跳轉(zhuǎn)了,甚至都不需要去去LE跳轉(zhuǎn)指令了。減少在必須要的循環(huán)控制指令上的時間消耗。需要用到WLS和LE指令。

Loop Tail Predication,假如處理的elements個數(shù)不是vector length的整數(shù)倍內(nèi),例如vector length=4,但要處理7個elements?一種方法就是最后一個使用普通的非vector去處理,前面的仍然用vector處理。另一種更好的方法是MVE中引入了WLSTP/LETP指令對,允許loop迭代中的最后一條vector instruction只處理remaining elements,在loop開始之前用WLSTP設(shè)置LR寄存器的值為多少個要處理的elements,每循環(huán)一次,LETP對LR減去vector的elements個數(shù)。

Branch feature:類似于提供“variable length delay slots” – to further eliminate bubbles caused by branch instructions (but only direct branches), since we already have the “LO_BRANCH_INFO” hardware available and can double use it to squeeze out a bit more performance.BFX指令執(zhí)行的時候,會設(shè)置LO_BRANCH_INFO去指示在哪一個address上會發(fā)生跳轉(zhuǎn),因此當(dāng)執(zhí)行執(zhí)行到該address時,就可以執(zhí)行跳轉(zhuǎn)了,甚至都不需要取和譯碼BX LR指令了,因此減少因為執(zhí)行分支而造成的branch penalty(通常那些已經(jīng)取的instruction會被處理為Bubbles)。如果在BFX和BX期間發(fā)生interrupt了,那么LO_BRANCH_INFO會被清除,這時候就需要BX LR了。如果在processor中不支持Branch Feature這個特性,那么將被實現(xiàn)為NOP。

3. Security 由于越來越多的MCU會運行第三方軟件和連接到互聯(lián)網(wǎng)上,如何保證不被黑客攻擊也成了重要的問題。

Execution permission:例如在v8.1-M里有PXN/UXN,減少被利用堆棧溢出攻擊而導(dǎo)致的安全問題。PXN是Privileged Execute-Never(這個是因為有些code就是想讓它在non-priv模式下執(zhí)行,來限制訪問權(quán)限,防止資源受到破壞),UXN是non-Privileged Execute-Never。在MPU_RLAR寄存器中有PXN bit,如果某個region的該bit置為1,那么privilege去訪問該region的code會fault exception。

V8.2-M PAC(Pointer Authentication): 減少利用RoP(Return-oriented Programming)攻擊導(dǎo)致的安全問題 。將會對return address(pointer)進行加擾,然后要返回時去除擾動,如果認(rèn)證通過,那么就正常返回,反之報出exception。

V8.2-M BTI(Branch Target Instructions): 減少利用JoP(Jump-oriented Programming)攻擊導(dǎo)致的安全問題。BIT的基本思想就是限制indirect branch只能跳轉(zhuǎn)到特定的address空間上(only branching to allowed “l(fā)anding pad instructions”)。

DIT(Data Independent Timing):同樣的instruction可能會花費不同的執(zhí)行時間,例如處理11和9999999999的算術(shù)運算占用時間不一樣的,這樣可能會暴露data信息給黑客。因此在AIRCR寄存器中增加了DIT bit,如果使能DIT功能,那么所有ALU instructions的執(zhí)行時間才會采用最長的cycle數(shù),也就是通過降低performance來換取安全。

UDE(Unprivileged Debug Extension):在v8.0-M中,如果secure debug打開,那么software開發(fā)人員對priv和un-priv的secure world有完全的debug訪問權(quán)限。但是,如果禁用了secure debug,那么debugger將不能訪問所有的secure world。在v8.1-M中新增了更細(xì)粒度的debug方式(UDE),當(dāng)secure debug被關(guān)閉了,secure priv software可以通過DAUTHCTRL寄存器的UIDEN和UIDAPEN來使能UDE。這樣也可以使用unpriv去debug一些library code的了,而不是局限于privilege模式才能debug。另外說下,ARMv8在handler mode下是privilege的,在thread mode下,可能是priv或un-priv,取決于CONTROL寄存器的值。

4. 附注

在ARM-M手冊中涉及到lanes、beats和elements的概念。

operation的lane寬度是由正在執(zhí)行的instruction決定的。允許的lane寬度和每一個beat進行的lane operation如下:1個beat是32bit,lane width可以有8/16/32/64bit.

For a 64-bit lane size, a beat performs half of the lane peration.

For a 32-bit lane size, a beat performs a one lane operation.

For a16-bit lane size, a beat performs a two lane operations.

For an 8-bit lane size, a beat performs a four lane operations.

elements就是表示有多少個data會放在每個lane中。比如lane=16bit,那么element的size就為16bit(2Byte, size=2’b01)。其它類似。因為lane最大為64bit,也就是說elements最大也就是64bit(4Byte, size=2’b11)。

雖然vector instruction可以同時進行多個elements的運算,有時候element size(esize)可以為32bit,但要運算的data實際為16bit,如VLDRH,這時候會對從memory里load過來的data進行zero或sign-extended,然后才放到vector register。這個實際給每個element load的data大小就是msize,因此msize肯定不大于esize的??偟脕碚f,msize永遠(yuǎn)不會大于esize,如果msize

當(dāng)然,在processor實現(xiàn)時,不只是每一個beat只load一個msize大小的data,這樣效率太低,如果在data width允許的情況下,可以load多個msize大小的data,也就是一次搞定multiple elements。

我們假設(shè)一次實際load的data為dsize,對scalar來說,由于不會進行vector操作,esize沒什么用,msize也永遠(yuǎn)等于dsize。對vector來說,vector register存在多個elements的操作,如果esize用于表示每個element的大小,msize是element中真正會填充的數(shù)據(jù)大小,如果dsize>msize,也就是說每一次load的data其實可以填充多個elements的,比如dsize=Word, msize=Byte, esize=Byte,那么只需要load 4次data就可以填滿1個register vector了,如果每次load的size為msize(Byte),那么需要load 16次才可以填滿,想想就知道效率很低的。

如果dsize

不過有一點要注意,在做對齊檢查和atomicity分析時,由于實際其實就是要load msize大小的數(shù)據(jù),dsize只是投機多搞一些數(shù)據(jù)回來,因此檢查和分析還是要按msize來的。

8bb6f9ee-a446-11ed-bfe3-dac502259ad0.jpg

Vector instruction涉及到128bit,也就是有4個beats,因此是從beat0到beat3順序執(zhí)行的。

8bd0b564-a446-11ed-bfe3-dac502259ad0.jpg

在每一個architecture tick下,會執(zhí)行多少個beat,表征了該system是多個beat。如下:

In a single-beat system, one beat might occur for each tick.

In a dual-beat system, two beats might occur for each tick.

In a quad-beat system, four beats might complete for each tick.

ARM的cortex-M55就是一個dual-beat的processor。在dual-beat overlap system中,意味著上一條vector instruction的最后two beats可以和后一條vector instruction的two beats可以重疊起來,加快執(zhí)行效率。以下是dual-beat system在每一個architecture tick下,執(zhí)行的示意圖。

8be7cc40-a446-11ed-bfe3-dac502259ad0.jpg

如果data dependency是以beat粒度,而不是instruction粒度進行的,architecture是允許vector instructions有overlap的。在每一個architecture tick下,architectural instruction的重疊情況可由EPSR.ECI值來表示。

審核編輯:湯梓紅

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

    關(guān)注

    556

    文章

    8157

    瀏覽量

    357502
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17981

    瀏覽量

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

    關(guān)注

    134

    文章

    9352

    瀏覽量

    377508
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5434

    瀏覽量

    124468
  • ARMv8
    +關(guān)注

    關(guān)注

    1

    文章

    35

    瀏覽量

    14467

原文標(biāo)題:學(xué)習(xí)分享 | Armv8.1-M的一些特性

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    使用ISE 13.3更改8.1 FIFO IP內(nèi)核中的一些參數(shù)可能有什么問題?

    嗨,我正在嘗試使用ISE 13.3更改8.1 FIFO IP內(nèi)核中的一些參數(shù)。當(dāng)我在coregen中打開項目時,它警告邏輯核被取代,但允許我進行修改。但是,當(dāng)我使用新生成的核心時,它會抱怨“無法在庫
    發(fā)表于 06-26 07:52

    ARMv8-A AArch32主要特性

    Cortex-A32產(chǎn)品介紹ARMv8-A AArch32主要特性ARMv7-M與AArch32的不同之處軟件從ARMv7-M移植到ARMv
    發(fā)表于 02-19 06:20

    何謂神經(jīng)網(wǎng)絡(luò)處理指令?有什么作用?

    何謂神經(jīng)網(wǎng)絡(luò)處理指令?有什么作用?Armv8.1-M核心實施選項包括哪些?
    發(fā)表于 06-29 09:07

    你知道ARM Cortex-M55處理器的新功能都有哪些嗎

    前使用 Armv8.1-M 功能。讓我們看看這些工具如何幫助充分利用 Cortex-M55 處理器。構(gòu)建您的代碼——針對性能和功耗進行優(yōu)化Arm Compiler 6包含在 Keil MDK 和 Arm
    發(fā)表于 06-01 17:18

    使用GCC10充分利用Arm架構(gòu)的案例

    中看到使用CASLSE 指令的更簡單的序列?,F(xiàn)在,使用 GCC 10.1 ,我們獲得了以下選項 -O2 -march=armv8-a :這里有一些復(fù)雜性,與為函數(shù)調(diào)用準(zhǔn)備參數(shù)有關(guān),該函數(shù)調(diào)用是運行時庫
    發(fā)表于 08-03 14:49

    Armv8.1-M PAC和BTI擴展簡析

    1、Armv8.1-M PAC和 BTI 擴展簡析Armv8-M通過Trustzone for Armv8-M, Memory Protection Unit (MPU) 和Privileged
    發(fā)表于 08-05 14:56

    介紹Armv8.6-A引進的一些新功能的概況

    Arm 構(gòu)架持續(xù)進化中以滿足我們生態(tài)伙伴的需求。這篇博文介紹了Armv8.6-A引進的一些新功能的概況。這些增強構(gòu)架功能提供了更高效的處理和更好地使能新領(lǐng)域應(yīng)用,比如神經(jīng)網(wǎng)絡(luò)和機器學(xué)習(xí)。通用矩陣乘
    發(fā)表于 08-08 14:16

    ARMv8-M處理器故障處理和檢測

    錯誤檢測和校正技術(shù)可用于幫助減輕硅器件。ARMv8-M處理器包括一些功能,可以檢測這些錯誤。 在硅器件中,出現(xiàn)錯誤的原因可能是: ?軟件錯誤。 ?使用錯誤,條件在正常操作條件之外。例如溫度或電源電壓
    發(fā)表于 08-02 06:28

    Armv8.1-M性能監(jiān)控用戶指南

    確定·驗證、驗證和測試·檢查不同的IP塊(如緩存)的利用情況·測量系統(tǒng)中的延遲M-Profile架構(gòu)提供不同的功能來幫助用戶執(zhí)行此類任務(wù),包括Armv8.1-M架構(gòu)的主線變體中引入的性能監(jiān)控單元(PMU)。 本應(yīng)用筆記演示了PMU的各種用例,如第7節(jié)在應(yīng)用程序中使用PMU
    發(fā)表于 08-22 06:25

    Arm Cortex-M55處理器數(shù)據(jù)集

    ARM Cortex-M55處理器是款完全可合成的中端微控制器級處理器,實現(xiàn)了ARMv8.1-M主線架構(gòu),并支持M-Profile向量擴展(MVE),也稱為ARM氦技術(shù)。 它是ARM
    發(fā)表于 08-25 07:46

    關(guān)于單形體積的一些不等式

    應(yīng)用距離幾何理論與解析方法,研究了一些單形體積之間的關(guān)系,建立了關(guān)于單形體積的一些新的不等式,作為其特例,獲得垂足單形體積的個不等式和單形的其他
    發(fā)表于 11-20 11:55 ?14次下載

    模擬電路的一些簡單的特性

    準(zhǔn)備分析模擬電路的一些簡單的特性 偶是本科和研究生都是學(xué)儀器工程的,偶老師在這個方面也是很厲害的。師兄多人在這個行業(yè),有1人在NI做硬件工程師
    發(fā)表于 11-21 15:13 ?904次閱讀

    Armv8.1-M架構(gòu)能夠提升最小型邊緣設(shè)備的機器學(xué)習(xí)能力

    Arm Helium技術(shù)作為種全新的M-Profile Vector Extension矢量擴充方案,能為Armv8.1-M架構(gòu)帶來經(jīng)過強化的計算能力
    發(fā)表于 02-19 13:58 ?1394次閱讀

    直流電機的一些特性

    直流電機的一些特性(現(xiàn)代電源技術(shù)基礎(chǔ)計算題)-直流電機的一些特性,有需要的可以參考!
    發(fā)表于 09-15 15:48 ?5次下載
    直流電機的<b class='flag-5'>一些</b><b class='flag-5'>特性</b>

    如何克服Amdahl定律的影響呢?

    在前幾篇文章中,我們介紹了采用 Arm Helium 技術(shù)(也稱為 MVE)的 Armv8.1-M 架構(gòu)如何處理矢量指令。
    的頭像 發(fā)表于 01-12 14:30 ?1227次閱讀
    如何克服Amdahl定律的影響呢?