日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SMMU学习这一篇就够了

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SMMU学习这一篇就够了 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引流關鍵詞: SMMU,mmu500,mmu600,mmu700,system mmu,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、內存管理、頁表…


目錄

        • 前言
        • 1、SMMU總結
          • 1.1、SMMU的timeline
          • 1.2、SMMU的簡介
          • 1.3、為什么要使用SMMU?
        • 2. SMMU原理解讀
          • 2.1. SMMU的使用模型
          • 2.2. SMMU的硬件原理圖
          • 2.3. StreamID
          • 2.4 STE Table 和 STE format
            • 2.4.1 一個 Linear Stream Table的示例
            • 2.4.2 一個 2-level Stream Table 的示例
            • 2.4.3 Multi-level Stream and CD tables
            • 2.4.4 Translation stages and addresses
            • 2.4.5 Configuration and translation lookup sequence
          • 2.4 寄存器的介紹
        • 2.5 Stream Table Entry
          • 2.6 Context Descriptor table
        • 3. 總結

前言

最近朋友圈、微信群(ARM-Trustzone-TEE-AT)掀起一陣學習SMMU的熱潮,作為一名安全領域的渣渣 ,勢必要蹭一蹭這個“熱點”,也學習一下吧,反正早晚都要學,因為它和安全的關系還是比較大的。學習是一件長期的過程,本文就先簡單理一下概念吧。

1、SMMU總結

1.1、SMMU的timeline

1.2、SMMU的簡介

SMMU的全稱是System Memory Management Units, 它屬于Arm的System IP, 主要給其他Master來使用,其連頁表格式和Core MMU是一樣的,理論上可以讓Core的MMU和SMMU使用同一套頁表.

那么SMMU都是用在哪些地方呢?*以下展示了一個usecase,來自arm官方博客(February 17, 2014),也是比較早期的一個Sample case

1.3、為什么要使用SMMU?
  • 訪問非連續的地址
    現在系統中很少再預留連續的memory,如果Master需要很多memory,可以通過SMMU把一些非連續的PA映射到連續的VA,例如給DMA,VPU,DPU使用。

  • 32位轉換成64位
    現在很多系統是64位的,但是有些Master還是32位的,只能訪問低4GB空間,如果訪問更大的地址空間需要軟硬件參與交換memory,實現起來比較復雜,也可以通過SMMU來解決,Master發出來的32位的地址,通過SMMU轉換成64位,就很容易訪問高地址空間。

  • 限制Master的訪問空間
    Master理論上可以訪問所有的地址空間,可以通過SMMU來對Master的訪問進行過濾,只讓Master訪問受限的區域,那這個區域也可以通過CPU對SMMU建立頁表時動態控制。

  • 用戶態驅動
    現在我們也看到很多系統把設備驅動做在用戶態,調用驅動時不需要在切換到內核態,但是存在一些安全隱患,就是用戶態直接控制驅動,有可能訪問到內核空間,這種情況下也可以用SMMU來實現限制設備的訪問空間

  • 設備虛擬化
    例如設備虛擬化有多種方式,Emulate,Para-virtualized,以及Pass-through,用SMMU可以實現Pass though,這樣無論是性能,還是軟件的改動都是比較小的。

  • 一些不支持TrustZone的Master,可以利用SMMU支持Trustzone

2. SMMU原理解讀

2.1. SMMU的使用模型

SMMU全稱System Memory Management Unit,其實SMMU和MMU具有同樣的作用,區別是供給Master使用,同樣提供頁表轉換工作,Master可通過頁表轉換訪問物理地址,達到Master一樣使用虛擬地址

官方給出的示例圖如下所示:

示例圖2:

2.2. SMMU的硬件原理圖

學過MMU的人都知道,MMU是由 TLB + Address Translation, 那么對于SMMU呢?
它是由TBU + TCU組成,其中TBU中含有TLB, TCU緩存地址翻譯。
DTI則是SMMU內部的連接總線的協議。

而一個SMMU中可以放置多個ACE-Lite TBU模塊,也可以放置LTI TBU

TBU原理圖

LTI TBU的原理圖

TCU的原理圖

2.3. StreamID
2.4 STE Table 和 STE format

STE Table 分為Linear Stream Table和mutil-level Stream Table,這是由于STRTAB_BASE_CFG中的比特位配置

2.4.1 一個 Linear Stream Table的示例

這種查詢方式很簡單,根據streamID的數值,直接查詢到對應的STE(streamID entry)

2.4.2 一個 2-level Stream Table 的示例


2.4.3 Multi-level Stream and CD tables

而事實上,一個STE,又可以對應多個Context Descriptor

這里小小總結一下: 這里的一個Context Descriptor 就相當于 MMU系統中的 TTBRx + TCR寄存器。
這里Stage 1 Transslation tables的格式和MMU頁表的格式一致。

2.4.4 Translation stages and addresses

地址翻譯也是份stage1和stage2的,這和MMU也是一致的。

2.4.5 Configuration and translation lookup sequence

SMMU地址翻譯的原理或數據里如下圖所示,這是在學習MMU的時候未曾見過的那么細致的圖。

2.4 寄存器的介紹

SMMU寄存器都是memory-map的

SMMU里有兩套寄存器,一套是給安全master用的,一套是給非安全master用的。
其實就相當于有兩個SMMU了。如下我也列舉了幾個特別的寄存器,帶S的是給安全用的,不帶S的是給非安全用的。所以,硬件僅僅有一塊SMMU,但從軟件的視角來看,有兩塊SMMU

  • SMMU_STRTAB_BASE
  • SMMU_S_STRTAB_BASE
  • SMMU_STRTAB_BASE_CFG
  • SMMU_S_STRTAB_BASE_CFG

2.5 Stream Table Entry

2.6 Context Descriptor table

可以看出,這里的Context Descriptor 就有點類似于MMU里的 TTBRx + TCR寄存器的味道

3. 總結

  • (1)MMU 只能給 一個core用。而SMMU想給多個master用,多個master又對應不同的表。所以就搞了個STE。每一個STE entry里,都可以指向多個context descriptor (我覺得一般也就只用一個吧),然后每一個context descriptor 就相當于 MMU的TTBRx + TCR寄存器。 context Descriptor之后,就和普通的MMU一樣
  • (2)SMMU里有兩套寄存器,一套是給安全master用的,一套是給非安全master用的。從軟件視角來看,其實就相當于有兩個SMMU了。但這不是banked,他們的寄存器名字不一樣,一類帶了S,一類不帶S。而且寄存器memory-map的地址還不一樣。
  • (3)SMMU又有Secure STE 和 Non-secure STE的概念, Secure STE 后面的頁表/地址轉換,可以轉secure memory,也可以轉non-secure memory。Non-Secure STE 后面的頁表/地址轉換,只可以轉non-secure memory。 這和MMU里的Descriptor里的NS比特也是一樣的。

總結

以上是生活随笔為你收集整理的SMMU学习这一篇就够了的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 夜夜骑夜夜| 大尺度av在线 | 日韩欧美二区 | 成人免费av片 | 老师张开让我了一夜av | 亚洲激情文学 | 无码精品一区二区三区AV | 四虎永久免费在线观看 | 四虎图库| 一区二区三区四区五区在线视频 | 日本大乳奶做爰 | 性——交——性——乱免费的 | 波多野久久 | 国产精品爱啪在线线免费观看 | av中出| 色网综合 | 亚洲av激情无码专区在线播放 | 深夜网站在线观看 | 国产白丝av | 久久综合婷婷国产二区高清 | 国产精品视频 | 免费福利av | 国产欧美精品一区二区色综合朱莉 | 伊人逼逼 | 狠狠干免费视频 | 国产午夜一级一片免费播放 | 亚洲精品少妇一区二区 | 人妻无码中文字幕 | 国产精品一区免费 | 日本免费一区二区视频 | 亚洲中文字幕久久无码 | 香蕉视频传媒 | 成人爽a毛片一区二区免费 日本高清免费看 | 久久久www成人免费精品 | 国产精品久久网站 | 亚洲一区二区精华 | 亚洲色图欧美视频 | 亚洲一区二区三区91 | 免看一级片 | 在线视频97| ass亚洲熟妇毛耸耸pics | 911国产视频 | 国产精品久久久久影院色老大 | 孕妇疯狂做爰xxxⅹ 国产精品乱码久久久久久 99久久久成人国产精品 | 19韩国主播青草vip | 日本色一区| 娇妻被肉到高潮流白浆 | 亚洲精品一区二区三区蜜桃久 | 雨宫琴音一区二区三区 | 国产丝袜美腿一区二区三区 | 男女洗澡互摸私密部位视频 | 怡红院亚洲 | 午夜老司机福利 | 2019中文字幕在线视频 | 成人av一区二区三区 | 国产女人高潮的av毛片 | 久久99精品久久久久久三级 | 亚洲调教| 国产色自拍 | 青青草免费观看视频 | 青青草原国产 | 中文在线视频 | 91午夜影院 | 又大又长粗又爽又黄少妇视频 | 国产五月天婷婷 | av在线播放网 | 欧美成人国产精品一区二区 | 邻居少妇张开双腿让我爽一夜 | 国产99久久久久 | 免费黄色三级网站 | 欧美一区二区在线观看视频 | 女人性做爰100部免费 | 思思在线视频 | 91黄色免费网站 | 日韩极品在线 | 午夜精品视频一区二区三区在线看 | 国产一级18片视频 | 天堂av2019 | 青青草在线视频免费观看 | 免费一二三区 | 国产香蕉97碰碰碰视频在线观看 | 91看片黄 | 99re6热在线精品视频播放 | 中文字幕国产日韩 | 无码国产色欲xxxx视频 | 69视频免费看 | 日韩色视频在线观看 | 91av小视频| 在线一区二区不卡 | eeuss国产一区二区三区 | 国产精品国色综合久久 | 日本视频三区 | 欧美人与禽猛交乱配 | 欧美日韩精品一区二区三区四区 | 米奇7777狠狠狠狠视频 | jjzz国产| 蜜桃臀一区二区三区 | 久久亚洲AV无码精品 | 黄色国产网站 |