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文章
9087瀏覽量
367390 -
內存
+關注
關注
8文章
3019瀏覽量
74007 -
指針
+關注
關注
1文章
480瀏覽量
70551 -
內存管理
+關注
關注
0文章
168瀏覽量
14134 -
MMU
+關注
關注
0文章
91瀏覽量
18283
原文標題:ARM SMMU Data structures概述
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論