700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 理解SMMU基本原理和基本概念

理解SMMU基本原理和基本概念

时间:2019-09-22 22:46:55

相关推荐

理解SMMU基本原理和基本概念

(阅读本文前假设您已经熟悉了MMU工作原理)

什么是SMMU/IOMMU, 有什么作用:

SMMU 有MMU完全一样的能力,当设备以DMA方式工作时,连接在它上面的IOMMU/SMMU可以将设备所使用的地址进行进一步的转换,完全和MMU所作的事情一样

SMMU如何工作

MMU工作时候需要类似如下的页表转换来支撑,同样SMMU也需要。

SMMU 页表结构更加的复杂

关键点:

StreamID: device 通过物理线连接到SMMU ,这个StreamID就是用来标识SMMU上连接的设备。想象一个8 ports hub上连接了8个物理设备,这8个设备就可以通过portID来标识,比如port 0代表第一个设备,同理steamID

STE: stream Table Entry,可以理解为SMMU页表转换的第一级索引,每一个streamID代表着一个STE,通过这个STE指向的连接可以找到真正的虚地址==》物理地址转换的页表。假设SMMU上连接着8个具体设备,每个设备都有自己的StreamID,那就有至少8个STE表项。

CD: Context Descriptor, stage 1的页表配置项,它其中的TTB0指向了真正的页表信息,比如PGD, PMD, PTE等,完全和MMU的页表转换原理一样

查找过程:

假设stream ID为16的设备发起了DMA操作(如下动作完全自动完成,前提是之前配置好了SMMU中所有的表项):

StreamID=16, 所以从寄存器strtab_base指向的地址中找到偏移为16的STE表项该表项中的s1ContexPtr指向了下一级的stage 1转换地址CD(Context Descriptor)CD中的TTB0指向了一个页表转换的基地址PGDPGD-àPMD-àPTE 完成了虚拟地址到物理地址的转换(和MMU工作原理一样)

注:

其中引入的VMID, ASID的原因和MMU一样,都是为了在TLB中加于区别,防止cache bouncingStage2 的转换原理基本和Stage 1一致,不过没有额外的CD由于懒,文中有些图从网上直接扣的,抱歉。如有侵权,请告知

参考:

/p/27026590

ARM® System Memory Management Unit Architecture Specification, SMMU architecture version 3.0 and version 3.1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。