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文章
9374浏览量
378806 -
内存
+关注
关注
8文章
3128浏览量
75375 -
指针
+关注
关注
1文章
484浏览量
71262 -
内存管理
+关注
关注
0文章
168浏览量
14599 -
MMU
+关注
关注
0文章
92浏览量
18800
原文标题: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

评论