99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

PMP物理內(nèi)存保護介紹

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者: Vincent ? 2023-10-07 17:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

PMP 和 Paging

物理內(nèi)存保護機制旨在與 RISC?V 指令集手冊,第二卷:特權(quán)架構(gòu),版本 1.10 中描述的基于頁面的虛擬內(nèi)存系統(tǒng)組合。啟用分頁后,訪問虛擬內(nèi)存的指令可能會導致多次物理內(nèi)存訪問,包括對頁表的隱式引用。PMP 檢查適用于所有這些訪問。隱式頁表訪問的有效特權(quán)模式是管理員模式。

允許使用虛擬內(nèi)存的實現(xiàn)以推測方式執(zhí)行地址轉(zhuǎn)換,并且比顯式虛擬內(nèi)存訪問所需的時間更早??梢栽诘刂忿D(zhuǎn)換和顯式虛擬內(nèi)存訪問之間的任何時候檢查結(jié)果物理地址的 PMP 設(shè)置。到不可執(zhí)行地址范圍的錯誤預(yù)測分支不會生成陷阱。因此,當以影響保存頁表的物理內(nèi)存或頁表指向的物理內(nèi)存的方式修改 PMP 設(shè)置時,M 模式軟件必須將 PMP 設(shè)置與虛擬內(nèi)存系統(tǒng)同步。這是通過在寫入 PMP CSR 后執(zhí)行 rs1=x0 和 rs2=x0 的 SFENCE.VMA 指令來實現(xiàn)的。

如果未實現(xiàn)基于頁面的虛擬內(nèi)存,或者當它被禁用時,內(nèi)存訪問會同步檢查 PMP 設(shè)置,因此不需要 fence。

PMP 限制

在包含多個 hart 的系統(tǒng)中,每個 hart 都有自己的 PMP 設(shè)備。hart 上的 PMP 權(quán)限不能應(yīng)用于多 hart 系統(tǒng)中其他 hart 的訪問。此外, SiFive 設(shè)計可能包含一個前端端口,以允許外部總線主控器訪問系統(tǒng)的完整內(nèi)存映射。PMP 無法阻止前端端口上的外部總線主控器的訪問。

沒有 PMP 保護的區(qū)域的行為

如果內(nèi)存映射的非保留區(qū)域沒有應(yīng)用 PMP 權(quán)限,則默認情況下,管理員或用戶模式訪問將失敗,而機器模式訪問將被允許。

訪問設(shè)備內(nèi)存映射中的保留區(qū)域(例如中斷控制器)讀取時將返回 0x0,寫入將被忽略。在沒有 PMP 保護的情況下訪問設(shè)備內(nèi)存映射之外的保留區(qū)域?qū)е驴偩€錯誤??偩€錯誤可以使用總線錯誤單元 (BEU) 對 hart 產(chǎn)生中斷。

PMP 保護區(qū)的緩存刷新行為

當一條線被帶入高速緩存并且 PMP 設(shè)置為斷言鎖定 (L) 位以保護該線的一部分時,數(shù)據(jù)高速緩存刷新指令將生成存儲訪問錯誤異常,如果沖洗包括受保護的線路的任何部分。緩存刷新指令執(zhí)行無效和回寫,因此它實際上是在嘗試寫回受保護的內(nèi)存位置。

如果緩存刷新發(fā)生在未受保護的部分行上,刷新將成功并且不會產(chǎn)生異常。如果需要在沒有回寫的情況下刷新數(shù)據(jù)高速緩存,請改用高速緩存丟棄指令,因為這會使該行無效但不會回寫。

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

    關(guān)注

    3

    文章

    1416

    瀏覽量

    41407
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3122

    瀏覽量

    75241
  • 設(shè)備
    +關(guān)注

    關(guān)注

    2

    文章

    4666

    瀏覽量

    71727
  • PMP
    PMP
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    18432
  • RISC
    +關(guān)注

    關(guān)注

    6

    文章

    481

    瀏覽量

    84962
  • sifive
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    管理STM32 MCU中的內(nèi)存保護單元

    本應(yīng)用筆記介紹如何管理 STM32 產(chǎn)品中的內(nèi)存保護單元(MPU)。MPU 是用于存儲器保護的可選組件。STM32 微控制器(MCU)中嵌入 MPU 之后變得更穩(wěn)健可靠。在使用 MPU 之前,必須對其進行編程并加以啟用。如果 M
    發(fā)表于 12-23 11:04 ?1340次閱讀

    STM32H750在使能內(nèi)存保護后啟用cache導致SPI+DMA傳輸不準確怎么解決?

    STM32H750在使能內(nèi)存保護后啟用cache 導致SPI+DMA傳輸不準確,具體就是調(diào)用HAL_SPI_TransmitReceive_DMA 這個函數(shù),讀到的數(shù)據(jù)全是0,但是拿邏輯分析儀看上面顯示的數(shù)據(jù)是正確的。
    發(fā)表于 03-07 06:12

    STM32H750使能內(nèi)存保護后DMA異常的原因?怎么解決?

    STM32H750 在使能內(nèi)存保護后啟用cache 導致SPI+DMA傳輸不準確,具體就是調(diào)用HAL_SPI_TransmitReceive_DMA 這個函數(shù),讀到的數(shù)據(jù)全是0,但是拿邏輯分析儀看上面顯示的數(shù)據(jù)是正確的。
    發(fā)表于 05-24 07:53

    玄鐵VirtualZone:基于RISC-V架構(gòu)的安全擴展

    ,RISC-V技術(shù)提供了有兩種具備安全擴展能力的屬性:物理內(nèi)存保護PMP)和機器特權(quán)模式(M-mode)。PMP物理地址
    發(fā)表于 09-01 14:38

    如何為MPC5744P配置內(nèi)存保護單元?

    我想知道更多關(guān)于如何為 MPC5744P 配置內(nèi)存保護單元,我需要知道如何使用這個配置器。
    發(fā)表于 04-04 09:03

    Armv8-M內(nèi)存模型與內(nèi)存保護用戶指南

    本指南概述了Armv8-M內(nèi)存模型和內(nèi)存保護單元(MPU)在Cortex-M處理器中實現(xiàn)。本指南使用示例來幫助解釋這些概念 它介紹了。 本章概述以下主題: ?內(nèi)存模型 ?
    發(fā)表于 08-02 08:12

    如何管理STM32產(chǎn)品中的內(nèi)存保護單元(MPU)

    本應(yīng)用筆記介紹如何管理 STM32 產(chǎn)品中的內(nèi)存保護單元(MPU)。MPU 是用于存儲器保護的可選組件。STM32 微控制器(MCU)中嵌入 MPU 之后變得更穩(wěn)健可靠。在使用 MPU 之前,必須
    發(fā)表于 09-07 06:23

    Cortex-M內(nèi)核的MPU內(nèi)存保護單元

    講講Cortex-M內(nèi)核的MPU內(nèi)存保護單元
    的頭像 發(fā)表于 03-04 11:17 ?4100次閱讀
    Cortex-M內(nèi)核的MPU<b class='flag-5'>內(nèi)存保護</b>單元

    為什么要使用MPU?MPU如何實現(xiàn)內(nèi)存保護?

    如果你開發(fā)的嵌入式項目,因內(nèi)存溢出,或者內(nèi)存故障等一些原因,造成了重大經(jīng)濟損失,或者造成了重大事故,你就能體會為什么要使用內(nèi)存保護單元(MPU)了。
    的頭像 發(fā)表于 07-05 17:38 ?6970次閱讀
    為什么要使用MPU?MPU如何實現(xiàn)<b class='flag-5'>內(nèi)存保護</b>?

    管理 STM32 MCU 中的內(nèi)存保護單元

    管理 STM32 MCU 中的內(nèi)存保護單元
    發(fā)表于 11-21 08:11 ?4次下載
    管理 STM32 MCU 中的<b class='flag-5'>內(nèi)存保護</b>單元

    AN4838 管理STM32 MCU中的內(nèi)存保護單元

    AN4838 管理STM32 MCU中的內(nèi)存保護單元
    發(fā)表于 11-21 17:07 ?0次下載
    AN4838 管理STM32 MCU中的<b class='flag-5'>內(nèi)存保護</b>單元

    應(yīng)用筆記|管理STM32 MCU中的內(nèi)存保護單元

    內(nèi)存保護單元(MPU)。MPU 是用于存儲器保護的可選組件。STM32 微控制器(MCU)中嵌入 MPU 之后變得更穩(wěn)健可靠。在使用 MPU 之前,必須對其進行編程并加以啟用。如果 MPU 沒有啟用,則
    的頭像 發(fā)表于 12-21 21:05 ?1439次閱讀

    為什么要使用MPU?MPU如何實現(xiàn)內(nèi)存保護?

    如果你開發(fā)的嵌入式項目,因內(nèi)存溢出,或者內(nèi)存故障等一些原因,造成了重大經(jīng)濟損失,或者造成了重大事故,你就能體會為什么要使用內(nèi)存保護單元(MPU)了。
    的頭像 發(fā)表于 02-24 11:59 ?3042次閱讀

    什么是MPU?MPU在哪些方面保護內(nèi)存安全?

    內(nèi)存保護單元(MPU)是一種硬件機制,通過只允許代碼訪問需要的內(nèi)存和外設(shè)來提高嵌入式設(shè)備的安全性。
    的頭像 發(fā)表于 06-12 09:06 ?1.3w次閱讀
    什么是MPU?MPU在哪些方面<b class='flag-5'>保護</b><b class='flag-5'>內(nèi)存</b>安全?

    如何管理STM32產(chǎn)品中的內(nèi)存保護單元(MPU)

    電子發(fā)燒友網(wǎng)站提供《如何管理STM32產(chǎn)品中的內(nèi)存保護單元(MPU).pdf》資料免費下載
    發(fā)表于 08-01 09:15 ?0次下載
    如何管理STM32產(chǎn)品中的<b class='flag-5'>內(nèi)存保護</b>單元(MPU)