Introduction to PCIe Address Translation Services
本文将介绍下PCIe中的 ATS。
- Address Translation Services(ATS)
- Address Translation Cache (ATC)
- Translation Agent(TA)
1. 背景
读者需要建立iommu的概念。其中,iotlb是iommu中的tlb映射项。
2. motivation
iotlb会被多个I/O设备同时访问,因此,这种集中式的iotlb会影响系统的性能。为此,ATS应运而生。
ATS defines a protocol between PCIe Device and Root Complex for faster DMA remapping.
ATS的思想是:每个PCI Express设备都拥有自己的ATC,这样就无需去查询iotlb,因而可以缓解iotlb的压力,提高访存性能。
3. detail
详细描述请参见Address Translation Services, Revision 1.1p11 to p12。
当PCIe Device的ATC无法完成地址映射时,此刻就需要PCIe Device发送ATS Request给TA。TA完成地址映射后,会将结果返还给PCIe Device,这样,PCIe Device中的ATC就有地址映射项了。
当TA中对内存地址更改之后,会发送ATS Invalidate Request给PCIe Device,Device会取消该映射项,并将结果返还给TA。
参考资料: