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文章
9043浏览量
366738 -
内存
+关注
关注
8文章
2997浏览量
73872 -
指针
+关注
关注
1文章
479浏览量
70506 -
内存管理
+关注
关注
0文章
168浏览量
14123 -
MMU
+关注
关注
0文章
91浏览量
18263
原文标题:ARM SMMU Data structures概述
文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论