ARM
SMMU具有三种接口供软件使用:
1. Memory-based data structures 用于将devices映射到用于地址转换的 translation tables。
2. Memory-based circular buffer queues.用于向SMMU发送命令的Command queue;用于从SMMU接收event/fault的Event queue;以及用于接收PCIe页面请求的 PRI queue。
只有支持PRI services的SMMU才具有PRI queue,PRI queue允许处理来自devices的PRI请求。
3. 一组寄存器,其中一些Secure-only寄存器,用于特性支持上报的Read-only寄存器和SMMU全局配置寄存器。寄存器指示structures和queues的基址,提供特性支持上报,以及全局控制寄存器以启用queue processing和translation of traffic。
当支持security时,存在另一组寄存器,允许Secure software维护 Secure device structures,还存在相应的Secure Command queue和Secure Event queue。
在允许stage 1 translation的虚拟化场景中,guest OS具有完全相同的编程接口,并认为它控制着真实SMMU(stage 1-only),具有相同格式的Command、 Event和PRI queue(可选)以及in-memory data structures。
ARM SMMU架构提供了一个灵活且强大的内存管理单元实现框架,可以满足各种系统需求。它支持大量并发转换上下文,并提供了故障处理、日志记录功能。这些功能使SMMU成为支持PCI Express和其他潜在的大型I/O系统的理想选择。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !