Introduction to PCIe Address Translation Services

本文来源: 

http://liujunming.top/2019/11/24/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。


参考资料:

  1. Address Translation Services, Revision 1.1

  2. IOMMU简介

  3. Rethinking the I/O Memory Management Unit

(END)

Linux阅码场原创精华文章汇总

更多精彩,尽在"Linux阅码场",扫描下方二维码关注

别忘了点“在看”鼓励哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章