ARM SMMU 是一種用于系統(tǒng)級(jí)內(nèi)存管理單元(MMU)的架構(gòu),它支持基于translation表中的地址映射和內(nèi)存屬性信息的地址轉(zhuǎn)換。
SMMU使用一組內(nèi)存中的data structures來(lái)獲取進(jìn)一步translation需要的數(shù)據(jù)。
初始root structure(Stream Table)的base addresses在寄存器中保存。
一個(gè)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,它們將事務(wù)的StreamID映射到translation table base pointers、configuration和context,這些是訪問(wèn)translation tables時(shí)需要用到的。
? Translation table structures,它們用于分別對(duì)stage 1(VA到IPA)和stage 2(IPA到PA)的地址進(jìn)行轉(zhuǎn)換。
SMMU處理一個(gè)輸入事務(wù)的第一步是找到該事務(wù)所需的配置STE(由其StreamID和可選的SubstreamID標(biāo)識(shí))。從概念上講,一個(gè)STE描述了一個(gè)client device的配置,指明它是否需要進(jìn)行stage 1或stage 2 translation或兩者都需要。
多個(gè)devices可以與一個(gè)Virtual Machine關(guān)聯(lián),因此多個(gè)STE可以共享相同的stage 2 Translation table。
多個(gè)devices(嚴(yán)格地說(shuō),是streams)可能共享相同的stage 1配置,因此多個(gè)STE可以共享相同的CD。
最后,使用該配置來(lái)找到Translation table structures。
審核編輯:湯梓紅
-
ARM
+關(guān)注
關(guān)注
134文章
9290瀏覽量
374747 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3107瀏覽量
74966 -
指針
+關(guān)注
關(guān)注
1文章
484瀏覽量
70983 -
內(nèi)存管理
+關(guān)注
關(guān)注
0文章
168瀏覽量
14464 -
MMU
+關(guān)注
關(guān)注
0文章
92瀏覽量
18620
原文標(biāo)題:ARM SMMU Data structures概述
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Algorithms and Data Structures The Science of Computing
ARM系列之SMMU總線資料合集
多個(gè)設(shè)備是否可以共用一個(gè)SMMU StreamID?
SMMU學(xué)習(xí)這一篇就夠了
RK3588 ubunutu pcie虛擬化的SMMU配置在哪里修改呢?
ARM系統(tǒng)內(nèi)存管理單元架構(gòu)規(guī)范SMMU架構(gòu)2.0版
Proteus在MCS&ARM中的應(yīng)用之Data_Sorting
arm smmu的原理

arm smmu的原理與smmu驅(qū)動(dòng)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)換流程介紹

評(píng)論