ARM SMMU 是一種用于系統級內存管理單元(MMU)的架構,它支持基于translation表中的地址映射和內存屬性信息的地址轉換。
SMMU使用一組內存中的data structures來獲取進一步translation需要的數據。
初始root structure(Stream Table)的base addresses在寄存器中保存。
一個Stream table entry (STE)包含stage 2 translation table的基指針,也可以包含stage 1 configuration structures(Context descriptor,其中包含stage 1)的基指針。
Context descriptor (CD)用于stage 1 translation
Stream table entry用于stage 2 translation。
因此,SMMU使用了兩組不同的structures:
? Configuration structures,它們將事務的StreamID映射到translation table base pointers、configuration和context,這些是訪問translation tables時需要用到的。
? Translation table structures,它們用于分別對stage 1(VA到IPA)和stage 2(IPA到PA)的地址進行轉換。
SMMU處理一個輸入事務的第一步是找到該事務所需的配置STE(由其StreamID和可選的SubstreamID標識)。從概念上講,一個STE描述了一個client device的配置,指明它是否需要進行stage 1或stage 2 translation或兩者都需要。
多個devices可以與一個Virtual Machine關聯,因此多個STE可以共享相同的stage 2 Translation table。
多個devices(嚴格地說,是streams)可能共享相同的stage 1配置,因此多個STE可以共享相同的CD。
最后,使用該配置來找到Translation table structures。
審核編輯:湯梓紅
-
ARM
+關注
關注
134文章
9265瀏覽量
373220 -
內存
+關注
關注
8文章
3100瀏覽量
74858 -
指針
+關注
關注
1文章
484瀏覽量
70893 -
內存管理
+關注
關注
0文章
168瀏覽量
14409 -
MMU
+關注
關注
0文章
92瀏覽量
18564
原文標題:ARM SMMU Data structures概述
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
Algorithms and Data Structures The Science of Computing
ARM系列之SMMU總線資料合集
多個設備是否可以共用一個SMMU StreamID?
SMMU學習這一篇就夠了
RK3588 ubunutu pcie虛擬化的SMMU配置在哪里修改呢?
ARM系統內存管理單元架構規范SMMU架構2.0版
arm smmu的原理

arm smmu的原理與smmu驅動iommu框架

ARM SMMU具有三種接口供軟件使用
ARM SMMU Data structure之Context Descriptors

ARM SMMU Data structures之Stream Table

評論