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閱碼場",掃描下方二維碼關注

別忘了點“在看”鼓勵哦~

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