ARM SMMU Data structures概述

描述

ARM SMMU 是一种用于系统级内存管理单元(MMU)的架构,它支持基于translation表中的地址映射和内存属性信息的地址转换。

SMMU使用一组内存中的data structures来获取进一步translation需要的数据。

初始root structure(Stream Table)的base addresses在寄存器中保存。

ARM

一个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。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分