簡體   English   中英

使用Intel I / OAT時,在虛擬尋址中將設備內存映射到哪里?

[英]Where are mapped device memory to, in virtual addressing, when using Intel I/OAT?

當我通過async_memcpy使用Intel I / OAT進行DMA零復制/零周期(無CPU)傳輸時,則將設備內存映射到虛擬尋址的位置:內核緩沖區(內核空間)或用戶-緩沖區(用戶空間)?

在現代x86_64 CPU中使用I / OAT是否有意義(當CPU內核無需芯片組北橋即可快速訪問RAM)?

http://www.intel.com/content/www/us/en/wireless-network/accel-technology.html

假定內存是物理內存,則它可以是內核可以尋址的任何內存,包括內核緩沖區和用戶空間緩沖區。 但是,它必須“固定”或“鎖定”,這樣內存才不會被占用(例如, free的人不應將內存釋放回OS以便重新分配給另一個進程,因為您可以如果是這種情況,則會獲得非常有趣的效果)。 當然,這是適用於各種其他DMA訪問的相同規則。

我非常懷疑這是否有助於為普通用戶模式應用程序復制數據結構。 另一方面,除非他們認為英特爾在某種程度上是有益的,否則我不認為英特爾會將這些功能添加到處理器中。 據我了解,這有助於將網絡接收緩沖區復制到正在接收數據的用戶模式應用程序中,而不會占用太多CPU。 它不一定會大大加快實際的內存傳輸速度(如果有的話),但是會減輕CPU的負擔以執行其他操作。

我敢肯定,不久前我已經看到有關這項技術的一些東西(或非常類似的東西)也進入了處理器的最新型號,所以我希望它會有一些優勢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM