女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

Armv9 Cortex-A720的L1 System memory簡析

冬至子 ? 來源:Arm精選 ? 作者:baron ? 2023-10-24 15:23 ? 次閱讀

思考

  • L1 System memory 和 L1 Cache 是什么關(guān)系?
  • L1 指令 cache 禁用時,指令 cache 就真的不會緩存了嗎?此時還會出現(xiàn)緩存不一致的情況嗎?
  • L1 data cache 禁用時,L1 data cache 就真的不會緩存了嗎?此時還會出現(xiàn)緩存不一致的情況嗎?
  • 在下電的時候,cache 有什么自動的行為?
  • 有沒有 invalidate the entire data cache 的操作?那操作系統(tǒng)中的 invalidate_all_cache 是如何實現(xiàn)的?
  • 什么是 Branch Target Buffer (BTB)?
  • 什么是 Write streaming mode?軟件怎樣可以影響到 Write streaming mode 的行為?
  • 有關(guān) cache 的 refill,如果 L1 MISS,那么 L1 會發(fā)生 refill 嗎
  • Armv9 中的原子指令,和 cache 有啥關(guān)系?
  • Exclusive 機制和 cache 有啥關(guān)系?
  • 數(shù)據(jù)預取的作用是什么?數(shù)據(jù)預取有哪些指令?
  • 執(zhí)行 memset() 函數(shù)清空一大塊內(nèi)存的時候,這些地址數(shù)據(jù)都會進 cache 嗎?

本節(jié)課我們將講述 Armv9 Cortex-A720 的 L1 System memory.

7 L1 instruction memory system

Cortex-A720 的 L1 指令內(nèi)存系統(tǒng)用于提取指令并預測分支。它包括 L1 指令緩存、L1 指令 Translation Lookaside Buffer(TLB)以及分支預測單元。L1 指令內(nèi)存系統(tǒng)向解碼器提供指令流。為了提高整體性能并降低功耗,L1 指令內(nèi)存系統(tǒng)使用動態(tài)分支預測和指令緩存。

下圖顯示了 L1 指令內(nèi)存系統(tǒng)的特性。

image.png

L1 指令 TLB 也位于 L1 instruction memory system 中,它是內(nèi)存管理單元(MMU)的一部分。

7.1 L1 instruction cache behavior

在 reset 時,除非 core 電源模式初始化為 “Debug Recovery”,否則 L1 指令緩存將自動失效。在 Debug Recovery 模式下,L1 指令緩存不起作用。

L1 instruction cache 的禁用

禁用 L1 instruction cache 對 L1 指令緩存的操作沒有影響。即使在禁用狀態(tài)下,指令仍可以緩存在 L1 指令緩存中并從中提取。軟件必須考慮 Non-cacheable accesses 以確保正確的行為。

如果禁用了 L1 instruction cache,那么由指令提取引起的所有內(nèi)存訪問都將使用 Non-cacheable accesses。這意味著指令提取可能與同一核心或其他核心中的緩存不一致。軟件必須考慮這一點,執(zhí)行適當?shù)木彺婢S護操作。

L1 instruction 維護

緩存維護操作可以在任何時候發(fā)生,不管 L1 的狀態(tài)是禁用還是啟用。

7.2 L1 指令緩存的推測性內(nèi)存訪問

指令提取是推測性的,流水線中可能存在多個未完成的分支。

代碼流中的分支指令或異常可以導致流水線刷新,丟棄當前已提取的指令。

在指令提取時,具有 device memory 被視為 non-cacheable normal memory。為了防止指令提取,設備內(nèi)存頁面必須標記為翻譯表描述符屬性位 "Xecute Never"(XN)。設備和代碼地址空間必須在物理內(nèi)存映射中分離。這種分離防止了在禁用地址轉(zhuǎn)換時對讀取敏感設備的推測性提取。

如果啟用了 L1 指令緩存并且指令提取在 L1 指令緩存中未命中,那么它們?nèi)匀豢梢栽?L1 數(shù)據(jù)緩存中查找。

然而,無論數(shù)據(jù)緩存是否啟用,查找都不會導致 L1 數(shù)據(jù)緩存重新填充 (refill)。該行僅 refill allocated 在 L2 緩存中,前提是 L1 指令緩存已啟用。

7.3 程序流預測

Cortex-A720 核包含程序流預測硬件,也稱為分支預測。分支預測提高了整體性能并增強了功耗效率。

當內(nèi)存管理單元(MMU)啟用當前異常級別時,程序流預測被啟用。如果禁用程序流預測,那么所有已執(zhí)行的分支都會產(chǎn)生與清除流水線相關(guān)的動作。如果啟用程序流預測,則它會預測是否要執(zhí)行條件或無條件分支,如下所示:

  • 對于條件分支,它預測是否要執(zhí)行分支以及分支轉(zhuǎn)到的地址,即分支目標地址。
  • 對于無條件分支,它僅預測分支目標地址。

程序流預測硬件包含以下功能:

  • 存儲以前已執(zhí)行分支的分支目標地址的分支目標緩沖器 Branch Target Buffer (BTB)
  • 使用以前的分支歷史的分支預測(BP)預測器
  • 返回堆棧,包括嵌套子例程返回地址
  • 靜態(tài)分支預測器
  • 間接分支預測器

預測和非預測指令

  • 序流預測硬件預測所有分支指令,包括:
  • 條件分支
  • 無條件分支
  • 返回指令
  • 間接分支

以下指令不會被預測:

  • 異常返回指令(包括 ERET,ERETAA,ERETAB)
  • svc 指令
  • hvc 指令
  • smc 指令

返回棧

返回棧存儲了過程調(diào)用指令的返回地址。此地址應與這些指令由 Link 寄存器(X30)寫入的值相等。

以下任何指令都會導致壓棧:

  • BL
  • BLR
  • BLRAA
  • BLRAAZ
  • BLRAB
  • BLRABZ

以下任何指令都會導致出棧:

  • RET
  • RETAA
  • RETAB

8 L1 data memory system

Cortex-A720 的 L1 數(shù)據(jù)內(nèi)存系統(tǒng)執(zhí)行加載和存儲指令。它處理內(nèi)存一致性請求以及特定指令,如原子操作、緩存維護操作和內(nèi)存標記指令。L1 數(shù)據(jù)內(nèi)存系統(tǒng)包括 L1 數(shù)據(jù)緩存和 L1 數(shù)據(jù) Translation Lookaside Buffer(TLB)。

下表顯示了 L1 數(shù)據(jù)內(nèi)存系統(tǒng)的特性。

image.png

L1 數(shù)據(jù) TLB 也位于 L1 數(shù)據(jù)內(nèi)存系統(tǒng)中,它是內(nèi)存管理單元(MMU)的一部分。

8.1 L1 數(shù)據(jù)緩存行為

除非將核心電源模式初始化為 Debug 恢復模式,否則 L1 數(shù)據(jù)緩存將在重置時自動失效。在 Debug 恢復模式下,不能保證緩存是否正常運行,因此不應啟用。

沒有使整個 data cache 失效的操作 (invalidate the entire data cache)。如果軟件需要這個功能,那么必須通過循環(huán)執(zhí)行的單獨失效操作(通過 set/way 指令)來構(gòu)建它。DC CISW 指令執(zhí)行目標 set/way 的清除和失效操作。

禁用 data cache 行為

如果禁用數(shù)據(jù)緩存行為,則:

  • 由于加載指令而導致的 L2 或 L3 緩存不會分配新的行。
  • 對可緩存內(nèi)存的所有加載和存儲指令都視為 Non-cacheable。
  • 數(shù)據(jù)緩存維護操作繼續(xù)正常執(zhí)行。

L1 數(shù)據(jù)緩存和 L2 緩存不能獨立禁用。當一個核心禁用 L1 數(shù)據(jù)緩存時,由該核心發(fā)出的可緩存內(nèi)存訪問將不再在 L1 或 L2 緩存中緩存。在多個 core 之間 cache 的維護操作,使用 Modified Exclusive Shared Invalid (MESI) 協(xié)議

緩存索引的確定方式意味著物理地址(PA)和組編號之間沒有直接關(guān)系。不能使用假設 PA 和組編號之間存在關(guān)系的有針對性的操作。要刷新整個緩存,必須根據(jù)緩存的 CCSIDR_EL1 描述的組和方式數(shù)量執(zhí)行組和方式維護操作。

8.2 Write streaming mode

Cortex-A720 核心支持 Write streaming mode,有時也稱為讀分配模式,對于 L1 和 L2 緩存都支持。

在讀不命中或?qū)懖幻袝r,會向 L1 或 L2 緩存分配緩存行。然而,寫入大塊數(shù)據(jù)可能會使緩存中充滿不必要的數(shù)據(jù)。這不僅會浪費電力,也會降低性能,因為整個線路會被后續(xù)寫入覆蓋(例如使用 memset() 或 memcpy())。在某些情況下,不需要在寫入時分配緩存行。例如,當執(zhí)行 C 標準庫的 memset() 函數(shù)來將大塊內(nèi)存清零為已知值時。

為了防止不必要的緩存行分配,內(nèi)存系統(tǒng)會檢測 core 何時寫入了一系列完整的緩存行。如果在可配置數(shù)量的連續(xù)線路填充上檢測到這種情況,那么它會切換到寫入流模式。

在寫入流模式下,加載操作行為與正常情況相同,仍然可能引起線路填充。
寫入仍然在緩存中查找,但如果未命中,則會寫入 L2 或 L3 緩存,而不會啟動線路填充 L1。

在內(nèi)存系統(tǒng)切換到寫入流模式之前,CHI 主控器或 AXI 主控器接口可能會觀察到超過指定數(shù)量的線路填充。

寫入流模式保持啟用,直到以下情況之一發(fā)生:

? 檢測到一個不是完整緩存行的可緩存寫入突發(fā)。
? 存在后續(xù)加載操作,其目標與未完成的寫入流相同。

當 Cortex-A720 核心切換到寫入流模式后,內(nèi)存系統(tǒng)會繼續(xù)監(jiān)視總線流量。當它觀察到一系列完整的緩存行寫入時,會向 L2 或 L3 緩存發(fā)出信號,以進入寫入流模式。
寫入流閾值定義了在存儲操作停止引起緩存分配之前,連續(xù)寫入的緩存行數(shù)量。您可以通過寫入寄存器 IMP_CPUECTLR_EL1 來配置每個緩存(L1、L2 和 L3)的寫入流閾值。

8.3 L1 數(shù)據(jù)內(nèi)存系統(tǒng)中的原子指令實現(xiàn)

Cortex-A720 核心支持 Arm v8.1-A 架構(gòu)中添加的原子指令。對可緩存內(nèi)存的原子指令可以作為近原子操作或遠原子操作執(zhí)行,默認情況下,Cortex-A720 核心將這些指令作為近原子操作執(zhí)行。

換句說法,可以根據(jù)系統(tǒng)行為對 IMP_CPUECTLR_EL1 進行編程,以便某些原子指令嘗試作為原子操作執(zhí)行。

當作為遠原子操作執(zhí)行時,原子操作傳遞給 interconnect 執(zhí)行操作。如果操作在集群內(nèi)的任何位置 hit,或者如果互連器不支持原子操作,則 L3 內(nèi)存系統(tǒng)執(zhí)行原子操作。如果該行不存在,則將其分配到 L3 緩存中。

Cortex-A720 核心支持對 device 或 non-cacheable 的原子操作,但這也依賴于互連器是否支持原子操作。如果在互連器不支持原子操作的情況下執(zhí)行此類原子操作指令,則會導致 abort。

8.4 內(nèi)部獨占監(jiān)視器

Cortex-A720 核心包括一個內(nèi)部獨占監(jiān)視器,具有 2 狀態(tài)(open 狀態(tài)和 exclusive 狀態(tài))的狀態(tài)機,用于管理 Load-Exclusive 和 Store-Exclusive 訪問以及 Clear-Exclusive(CLREX)指令。

您可以使用這些指令構(gòu)建信號量,確保不同進程在核心上運行時進行同步,以及確保使用相同的一致內(nèi)存位置的不同核心之間進行同步。Load-Exclusive 指令標記了一小塊內(nèi)存以進行獨占訪問。CTR_EL0 定義了標記塊的大小為 16 個字,即一個緩存行。

Load-Exclusive 或 Store-Exclusive 指令是以 LDX、LDAX、STX 或 STLX 開頭的指令。

8.5 數(shù)據(jù)預取

數(shù)據(jù)預取可以通過在需要數(shù)據(jù)之前獲取數(shù)據(jù)來提高執(zhí)行性能。

預加載指令

對于不能有效處理數(shù)據(jù)預取器的情況,Cortex-A720 核心支持 AArch64 預取內(nèi)存指令 PRFM。
這些指令向內(nèi)存系統(tǒng)發(fā)出信號,指定地址處的內(nèi)存訪問可能會很快發(fā)生。當內(nèi)存訪問發(fā)生時,內(nèi)存系統(tǒng)采取措施以減少內(nèi)存訪問的延遲。

PRFM 指令在緩存中執(zhí)行查找。如果未命中并且內(nèi)存訪問是對可緩存地址的,則開始線路填充。但是,PRFM 指令在開始線路填充時執(zhí)行結(jié)束,并且不會等到線路填充完成。

硬件數(shù)據(jù)預取器

加載 / 存儲單元包括硬件預取器引擎,負責生成針對 L1、L2 和 L3 緩存的預取。具體來說,L1 內(nèi)存子系統(tǒng)中的預取引擎針對 L1 和 L2 緩存。L2 內(nèi)存子系統(tǒng)中的預取引擎針對 L2 和 L3 緩存。加載端預取器使用虛擬地址(VA)和程序計數(shù)器(PC)。存儲端預取器僅使用虛擬地址(VA)。CPUECTLR 寄存器允許對預取器行為的某些方面進行控制。

數(shù)據(jù)緩存清零

在 Cortex-A720 核心中,Data Cache Zero by Virtual Address(DC ZVA)指令將對齊到 64 字節(jié)的內(nèi)存塊(64 字節(jié)對齊)設置為零。

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

    關(guān)注

    6

    文章

    2037

    瀏覽量

    46553
  • ARM芯片
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    21924
  • MMU
    MMU
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    18628
  • Cortex-A7
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    16758
  • cache技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    1193
收藏 人收藏

    評論

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

    Arm下一代指令架構(gòu)“Armv9”已經(jīng)問世

    Arm的下一代CPU指令集架構(gòu)(ISA:指令集架構(gòu)) Armv9開始推出。該公司正在逐步擴展當前的ISA Armv8,而擴展的高潮最終將成為Armv9的搭建橋梁。至于Armv9,一位C
    的頭像 發(fā)表于 11-13 11:55 ?4.5w次閱讀

    Armv9核心A710、A715和A510微架構(gòu)解讀

    在介紹Armv9系列前,我們先看一下ARM的Cortex-X定制CPU計劃。Cortex-X方案先于Armv9發(fā)布,在Arm發(fā)布A78時,同
    發(fā)表于 06-12 09:27 ?2.9w次閱讀
    <b class='flag-5'>Armv9</b>核心<b class='flag-5'>A</b>710、<b class='flag-5'>A</b>715和<b class='flag-5'>A</b>510微架構(gòu)解讀

    Armv9引入的MTE已成內(nèi)存安全的新防線

    電子發(fā)燒友網(wǎng)報道(文/周凱揚)隨著Arm近日公開TCS23方案,可以看出Arm在移動SoC的計算核心上,已經(jīng)全面走向了Armv9.2架構(gòu),無論是大核Cortex-X4、中核Cortex-A720還是
    的頭像 發(fā)表于 06-01 00:11 ?2264次閱讀

    Armv8.1-M PAC和BTI擴展

    1Armv8.1-M PAC和 BTI 擴展Armv8-M通過Trustzone for Armv
    發(fā)表于 08-05 14:56

    Armv9 system register class空間編碼

      1. 前言  Armv9 system register的編碼空間由一組參數(shù)標識:{op0, op1, CRn, CRm, op2},它們形成了一個編碼層次結(jié)構(gòu),其中:  op0:
    發(fā)表于 03-17 15:08

    Arm?Cortex-A720 Core技術(shù)參考手冊

    Cortex-A720核心在DSU-120 DynamIQ中實現(xiàn)? 簇它連接到DynamIQ? 共享單元-120,其表現(xiàn)為具有L3高速緩存和窺探控制的完全互連。 這種連接配置也用于具有不同類型內(nèi)核的系統(tǒng)中,其中Cortex-A720
    發(fā)表于 08-02 08:55

    Arm?Cortex-A720核心加密擴展技術(shù)參考手冊

    Cortex-A720內(nèi)核支持可選的Arm?加密擴展。 Arm?加密擴展將A64指令添加到高級SIMD中: ?加速高級加密標準(AES)加密和解密 ?實現(xiàn)SHA (Secure Hash Algorithm)功能 ?執(zhí)行多項式乘法長(PMULL)指令
    發(fā)表于 08-02 07:43

    重磅!Arm正式推出Armv9架構(gòu)

    當?shù)貢r間3月30日,Arm宣布正式推出Armv9架構(gòu),以應對全球?qū)o處不在的專業(yè)化處理的需求,這種處理具有越來越強大的安全性和人工智能(AI)能力。Armv9是ARM公司十年來的最大技術(shù)革新。上一代
    發(fā)表于 03-31 09:43 ?2782次閱讀
    重磅!Arm正式推出<b class='flag-5'>Armv9</b>架構(gòu)

    淺談ARM發(fā)布Armv9的三大改進

    英國芯片設計公司Arm周二發(fā)布了Armv9,這是其在2011年發(fā)布Armv8之后十年來首次推出新的芯片架構(gòu)。Arm表示,與以前的架構(gòu)相比,Armv9提供了三大主要改進,即安全性更高,更好的AI性能,以及總體上速度更快。
    的頭像 發(fā)表于 04-01 15:17 ?2551次閱讀

    Arm推出三款基于Armv9架構(gòu)的全新CPU內(nèi)核

    從全面升級到Armv9架構(gòu),到公布Neoverse V1和N2平臺技術(shù)細節(jié),再到推出三款基于Armv9架構(gòu)的全新CPU內(nèi)核,短短兩個月時間里,Arm全面計算(Arm Total Compute)戰(zhàn)略正在以令人難以置信的速度加速推
    的頭像 發(fā)表于 06-12 09:11 ?4520次閱讀

    Arm微架構(gòu)之Armv9時代

    在介紹Armv9系列前,我們先看一下ARM的Cortex-X定制CPU計劃。Cortex-X方案先于Armv9發(fā)布,在Arm發(fā)布A78時,同
    的頭像 發(fā)表于 02-06 14:43 ?9615次閱讀

    Armv8架構(gòu)和Armv9架構(gòu)的區(qū)別分析

    新的Armv9兼容CPU所承諾的最大的新功能可能是開發(fā)人員和用戶可以立即看到的——SVE2作為NEON的后繼產(chǎn)品。
    發(fā)表于 03-10 14:02 ?6418次閱讀

    Armv9.2家族添新成員,全新Cortex-X4、A720A520CPU內(nèi)核:性能再創(chuàng)新!

    。昨天的發(fā)布包括旗艦級 Cortex-X4 內(nèi)核、中核 Cortex-A720、小核 Cortex-A520 以及新一代 GPU Immortalis-G720
    的頭像 發(fā)表于 05-31 10:10 ?3485次閱讀
    <b class='flag-5'>Armv</b>9.2家族添新成員,全新<b class='flag-5'>Cortex</b>-X4、<b class='flag-5'>A720</b>和<b class='flag-5'>A</b>520CPU內(nèi)核:性能再創(chuàng)新!

    Arm推出全球首個Armv9邊緣AI計算平臺

    全球首個 Armv9 邊緣 AI 計算平臺以 Cortex-A320 CPU 和 Ethos-U85 NPU 為核心,專為物聯(lián)網(wǎng)應用優(yōu)化,支持運行超 10 億參數(shù)的端側(cè) AI 模型,已獲得包括亞馬遜云科技 (AWS)、西門子和瑞薩電子等在內(nèi)的多家行業(yè)領(lǐng)先企業(yè)的支持。
    的頭像 發(fā)表于 02-27 17:08 ?570次閱讀

    Arm發(fā)布基于Armv9架構(gòu)的Cortex-A320處理器

    邊緣 AI 需要更卓越的計算性能、更強大的安全性,以及更出色的軟件靈活性。隨著軟件愈發(fā)復雜化,Armv9 架構(gòu)應運而生,以提供先進的機器學習 (ML) 和 AI 功能,并具備增強的安全特性。該架構(gòu)現(xiàn)已在 Cortex-A3xx 的超高能效系列實現(xiàn),為新一代邊緣 AI 應用
    的頭像 發(fā)表于 02-27 17:10 ?696次閱讀