色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

從內存中讀取translation tables的邏輯介紹

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-11-26 16:04 ? 次閱讀

TWU

table walk unit:包含從內存中讀取translation tables的邏輯

一個完整的頁表翻譯和查找的過程叫作頁表查詢(Translation Table Walk),頁表查詢的過程由硬件自動完成,但是頁表的維護需要軟件來完成。

頁表查詢是一個相對耗時的過程,理想的狀態是TLB里緩存有頁表轉換的相關信息。當TLB未命中時,才會去查詢頁表,并且開始讀入頁表的內容。

page table

page table是每個進程獨有的,是軟件實現的,是存儲在main memory(比如DDR)中的

Address Translation

因為訪問內存中的頁表相對耗時,尤其是在現在普遍使用多級頁表的情況下,需要多次的內存訪問,為了加快訪問速度,系統設計人員為page table設計了一個硬件緩存 - TLB,CPU會首先在TLB中查找,因為在TLB中找起來很快。TLB之所以快,一是因為它含有的entries的數目較少,二是TLB是集成進CPU的,它幾乎可以按照CPU的速度運行。

如果在TLB中找到了含有該虛擬地址的entry(TLB hit),則可從該entry中直接獲取對應的物理地址,否則就不幸地TLB miss了,就得去查找當前進程的page table。這個時候,組成MMU的另一個部分table walk unit就被召喚出來了,這里面的table就是page table。

使用table walk unit硬件單元來查找page table的方式被稱為hardware TLB miss handling,通常被CISC架構的處理器(比如IA-32)所采用。它要在page table中查找不到,出現page fault的時候才會交由軟件(操作系統)處理。

與之相對的通常被RISC架構的處理器(比如Alpha)采用的software TLB miss handling,TLB miss后CPU就不再參與了,由操作系統通過軟件的方式來查找page table。使用硬件的方式更快,而使用軟件的方式靈活性更強。IA-64提供了一種混合模式,可以兼顧兩者的優點。

如果在page table中找到了該虛擬地址對應的entry的p(present)位是1,說明該虛擬地址對應的物理頁面當前駐留在內存中,也就是page table hit。找到了還沒完,接下來還有兩件事要做:

? 既然是因為在TLB里找不到才找到這兒來的,自然要更新TLB。

? 進行權限檢測,包括可讀/可寫/可執行權限,user/supervisor模式權限等。如果沒有正確的權限,將觸發SIGSEGV(Segmantation Fault)。

如果該虛擬地址對應的entry的p位是0,就會觸發page fault,可能有這幾種情況:

? 這個虛擬地址被分配后還從來沒有被access過(比如malloc之后還沒有操作分配到的空間,則不會真正分配物理內存)。觸發page fault后分配物理內存,也就是demand paging,有了確定的demand了之后才分,然后將p位置1。

? 對應的這個物理頁面的內容被換出到外部的disk/flash了,這個時候page table entry里存的是換出頁面在外部swap area里暫存的位置,可以將其換回物理內存,再次建立映射,然后將p位置1。

后面再進一步就是看看這個TLB中具體是怎么找的,在page table中又是怎么“walk”,這部分就是具體的地址是怎么轉換的,翻譯的。

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

    關注

    68

    文章

    19395

    瀏覽量

    230686
  • 內存
    +關注

    關注

    8

    文章

    3045

    瀏覽量

    74205
  • 操作系統
    +關注

    關注

    37

    文章

    6874

    瀏覽量

    123573
  • MMU
    MMU
    +關注

    關注

    0

    文章

    91

    瀏覽量

    18331
收藏 人收藏

    評論

    相關推薦

    如何可編程邏輯訪問處理器內存

    在存儲在由指針尋址的內存的巨大稀疏矩陣上運行因子分解。有沒有辦法給PL創建的RTL提供相同的內存訪問權限,或者我必須將整個矩陣存儲在本地RAM
    發表于 04-28 10:26

    CPU怎樣通過控制器將待運行的程序FLASH讀入內存

    程序以機器碼的形式,即二進制碼的形式存在FLASH;上電后,CPU通過控制器將待運行的程序FLASH讀入內存;代碼在
    發表于 12-15 08:08

    CXL內存協議介紹

    Subordinate到Master的完成和指示,不帶數據。3.3.6 S2M數據響應(DRS)DRS消息類包含Subordinate到Master讀取內存數據。3.3.7 轉發和排序規則在多跳互連網絡
    發表于 11-01 15:08

    如何mifare和/或Felica讀取內存內容?

    我希望能夠 mifare 和/或 Felica 標簽讀取內存內容,類似于 Android 上的 NXP 標簽檢測器應用程序。我該怎么做呢?我已經使用 nfc03a1 和 SPI 上
    發表于 12-07 06:16

    GIC ITS的ITS tables和Command Queue訪問簡析

    ,Interrupt Translation Tables和Collection Table.而這些Device Table,Interrupt Translation Tables
    發表于 12-20 14:35

    ARMv8 MMU translation stages與相關寄存器介紹

    當EL3使用AArch64時,ARMv8 architecture定義了如下translation stages和translation regimes:上圖是在implementation包含
    發表于 12-30 16:35

    DMA_讀取GPIO電平到內存

    DMA_讀取GPIO電平到內存,單片機程序
    發表于 01-12 18:19 ?10次下載

    windows應用程序讀取進程的內存工具免費下載

    本文檔的主要內容詳細介紹的是windows應用程序讀取進程的內存工具免費下載。
    發表于 05-27 08:00 ?1次下載

    FPGA邏輯關于地址映射說明

    背景與問題 CPU+FPGA架構,CPU做RC、FPGA做EP; FPGA邏輯(Vivado -BD - Address Editor)如何設置PCIe to AXI Translation
    的頭像 發表于 11-20 15:28 ?6689次閱讀
    FPGA<b class='flag-5'>邏輯</b><b class='flag-5'>中</b>關于地址映射說明

    內存是怎么讀取數據的

    你知道內存是怎么讀取數據的嗎?知道數據是怎么一個一個字節發送的嗎?
    的頭像 發表于 03-30 13:52 ?5523次閱讀

    如何有效地內核訪問設備的全局內存

    個用途是將多維數組的 2D 塊以合并的方式全局內存提取到共享內存,然后讓連續的線程跨過共享內存塊。與全局
    的頭像 發表于 04-11 10:07 ?1223次閱讀
    如何有效地<b class='flag-5'>從</b>內核<b class='flag-5'>中</b>訪問設備的全局<b class='flag-5'>內存</b>

    ARM SMMU Data structure之Context Descriptors

    是否進行stage 1 translation,獲取stage 1 translation tables的配置。
    的頭像 發表于 05-11 09:10 ?986次閱讀
    ARM SMMU Data structure之Context Descriptors

    為什么不能直接使用PLC讀取到的模擬量信號?

    為什么不能直接使用PLC讀取到的模擬量信號? PLC(可編程邏輯控制器)被廣泛用于實現自動化控制,可以讀取各種現場設備的模擬量信號。模擬量信號是實時反映被測量參數(如溫度、壓力、流量
    的頭像 發表于 10-23 09:30 ?1030次閱讀

    怎么讀取plc已存在的程序呢?

    怎么讀取plc已存在的程序呢? PLC(可編程邏輯控制器)是一種重要的自動化設備,用于控制和監控各種工業過程。PLC的程序是由用戶編寫的,它們定義了PLC在操作
    的頭像 發表于 11-21 16:10 ?9554次閱讀

    邏輯內存和物理內存的區別

    邏輯內存和物理內存是計算機系統兩個重要的概念,它們在計算機的運行和數據處理起著至關重要的作用。 1. 物理
    的頭像 發表于 09-27 15:38 ?864次閱讀
    主站蜘蛛池模板: 国产精品久久久久久亚洲影视| 与子敌伦刺激对白亂輪亂性| av女优快播| 国产精品1区2区| 欧美日韩免费播放一区二区| 亚洲三级在线看| 国产精品igao视频网网址| 亚洲精品电影久久久影院| 久久婷婷国产五月综合色啪最新 | 青草国产超碰人人添人人碱| 高H短篇辣肉纯肉| 欧洲馒头大肥p| 国产精品99久久久久久WWW| 亚洲色综合狠狠综合区| 欧美国产精品主播一区| 国产色精品久久人妻无码| 91免费精品国自产拍在线可以看| 麻豆人妻换人妻X99| 一抽一出BGM免费50分动漫| 免费韩国伦理2017最新| 国产短视频精品区| 11 13加污女qq看他下面| 肉蒲团从国内封禁到日本成经典| 超碰97免费人妻| 欧美午夜精品一区二区蜜桃 | 成人精品视频| 神马伦理2019影院不卡片| 吃奶吸咪咪动态图| 亚洲伊人色| 色哒哒影院| 奶好大下面流了好多水水| 国产真实露脸乱子伦| 处xxxx.88| 亚洲AV美女成人网站P站| 国产自拍视频在线一区| YELLOW在线观看高清视频免费| 一级做a爰片久久免费| 美女扒开尿口直播| 国产午夜电影在线观看不卡| mdapptv麻豆下载| 在线免费观看日本|