ARM SMMU 是一種用于系統(tǒng)級內(nèi)存管理單元(MMU)的架構(gòu),它支持基于translation表中的地址映射和內(nèi)存屬性信息的地址轉(zhuǎn)換。
SMMU使用一組內(nèi)存中的data structures來獲取進一步translation需要的數(shù)據(jù)。
初始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)的地址進行轉(zhuǎn)換。
SMMU處理一個輸入事務的第一步是找到該事務所需的配置STE(由其StreamID和可選的SubstreamID標識)。從概念上講,一個STE描述了一個client device的配置,指明它是否需要進行stage 1或stage 2 translation或兩者都需要。
多個devices可以與一個Virtual Machine關(guān)聯(lián),因此多個STE可以共享相同的stage 2 Translation table。
多個devices(嚴格地說,是streams)可能共享相同的stage 1配置,因此多個STE可以共享相同的CD。
最后,使用該配置來找到Translation table structures。
審核編輯:湯梓紅
-
ARM
+關(guān)注
關(guān)注
134文章
9347瀏覽量
376976 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3118瀏覽量
75204 -
指針
+關(guān)注
關(guān)注
1文章
484瀏覽量
71156 -
內(nèi)存管理
+關(guān)注
關(guān)注
0文章
168瀏覽量
14542 -
MMU
+關(guān)注
關(guān)注
0文章
92瀏覽量
18727
原文標題:ARM SMMU Data structures概述
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Algorithms and Data Structures The Science of Computing
ARM系列之SMMU總線資料合集
多個設備是否可以共用一個SMMU StreamID?
SMMU學習這一篇就夠了
RK3588 ubunutu pcie虛擬化的SMMU配置在哪里修改呢?
ARM系統(tǒng)內(nèi)存管理單元架構(gòu)規(guī)范SMMU架構(gòu)2.0版
arm smmu的原理

arm smmu的原理與smmu驅(qū)動iommu框架

SMMU數(shù)據(jù)結(jié)構(gòu)格式
ARM SMMU具有三種接口供軟件使用
ARM SMMU Data structure之Context Descriptors

ARM SMMU Data structures之Stream Table

SMMU VA->PA的轉(zhuǎn)換流程介紹

評論