PCIe定义了很多的Cap.
但大多数人只用到了其中一些最常用的,比如MSI/MSIX, PMC, ARI, PCI express, PASID等等
还有很多Cap, 没有深入了解的实践机会, 比如LTR, OBFF, TPH, 等等,等等,非常之多。
另外一些Cap, 比如AER, DPE/eDPC, ACS, ATS, SRIOV有一点点了解。
ATS, PASID可以看成TA(translation agent), ATPT(address trans and protection talbe), ATC的一个有机整体组合。(TA+ATPT = IOMMU)
EP通过ATS从TA取得translated的地址保存于ATC中,之后减轻了AT的负担。
PASID针对于GVA到SPA的地址映射,作为TA中GCR3的index在使用(BDF, PASID, GVA),相较于GPA到SPA的(BDF, GPA)
ACS与SRIOV上一个日志,有过一些讨论
2021,Dec日志-GPU,DPU,IO虚拟化_笃行笔记的博客-优快云博客
AER/DPC
Linux内核有相应的支持