上传者: 42135087
|
上传时间: 2025-07-28 10:57:31
|
文件大小: 1.53MB
|
文件类型: PDF
访问非连续的地址
现在系统中很少再预留连续的memory,如果Master需要很多memory,可以通过SMMU把一些非
连续的PA映射到连续的VA,例如给DMA,VPU,DPU使用。
32位转换成64位
现在很多系统是64位的,但是有些Master还是32位的,只能访问低4GB空间,如果访问更大的地址
空间需要软硬件参与交换memory,实现起来比较复杂,也可以通过SMMU来解决,Master发出来
的32位的地址,通过SMMU转换成64位,就很容易访问高地址空间。
限制Master的访问空间
Master理论上可以访问所有的地址空间,可以通过SMMU来对Master的访问进行过滤,只让
Master访问受限的区域,那这个区域也可以通过CPU对SMMU建立页表时动态控制。
用户态驱动
现在我们也看到很多系统把设备驱动做在用户态,调用驱动时不需要在切换到内核态,但是存在一
些安全隐患,就是用户态直接控制驱动,有可能访问到内核空间,这种情况下也可以用SMMU来实
现限制设备的访问空间
设备虚拟化
例如设备虚拟化有多种方式,Emulate,Para-virtualized,以及Pass-t