SMMU本质上就是一个MMU设备,它的内存转换逻辑与CPU的MMU采用相同的逻辑,都允许将物理上非连续的页虚拟为连续的内存页。SMMU和IOMMU可以交替使用。
关键术语
-Context Bank
定义转换上下文的寄存器集,系统中的每个Context Bank都有相同的寄存器集。
PS:这里要记录的有哪些信息?
-Stream ID
SMMU的输入源,用于唯一标记当前转换流的标记符。
PS:有哪些转换流?
-IOVA
I/O虚拟地址
-Page Tables
定义虚拟到物理内存映射的表格,SMMU依靠这些表格完成转换。
-TTBR0
保存Page Tables基地址的寄存器
-Page Level
Page Table走过的级别(目前理解是转换过程中当前所处的转换页表的级别),一半只有在转换出错时才会用到。
-Translation Stage
转换进程的阶段,HLOS管理第一阶段,系统管理程序管理第二阶段。
PS:分别完成什么功能?
-IPA
中间物理地址,第一阶段的输出地址和第二阶段的输入地址
PS:本身不是硬件过程吗,怎么HLOS还会生成中间地址?
-TLB
转换后援缓存器,也称页表缓存,用于加快地址转换过程,缓存着IOVA到物理地址的映射。
-Bypass
关键术语
-Context Bank
定义转换上下文的寄存器集,系统中的每个Context Bank都有相同的寄存器集。
PS:这里要记录的有哪些信息?
-Stream ID
SMMU的输入源,用于唯一标记当前转换流的标记符。
PS:有哪些转换流?
-IOVA
I/O虚拟地址
-Page Tables
定义虚拟到物理内存映射的表格,SMMU依靠这些表格完成转换。
-TTBR0
保存Page Tables基地址的寄存器
-Page Level
Page Table走过的级别(目前理解是转换过程中当前所处的转换页表的级别),一半只有在转换出错时才会用到。
-Translation Stage
转换进程的阶段,HLOS管理第一阶段,系统管理程序管理第二阶段。
PS:分别完成什么功能?
-IPA
中间物理地址,第一阶段的输出地址和第二阶段的输入地址
PS:本身不是硬件过程吗,怎么HLOS还会生成中间地址?
-TLB
转换后援缓存器,也称页表缓存,用于加快地址转换过程,缓存着IOVA到物理地址的映射。
-Bypass
用于某个阶段(Stage 1/2或全部)