Как DMA и PCIe играют вместе? - PullRequest
0 голосов
/ 18 ноября 2018

в конфигурации PCIe устройства имеют выделенные адреса и отправляют друг другу данные в режиме Peer-to-Peer - каждое устройство может писать, когда пожелает, и коммутаторы заботятся о правильной передаче данных. Нет необходимости иметь «мастера шины», который решает, когда и как будут передаваться данные.

Как DMA вступает в игру в такой конфигурации? Мне кажется, что DMA - устаревшая функция, которая не нужна в конфигурации PCIe. Любое устройство может отправлять данные в основную память или читать из нее - очевидно, что основная память всегда будет «ведомой» в таких операциях.

Или есть какой-то другой функционал DMA, который мне не хватает?

Заранее спасибо!

1 Ответ

0 голосов
/ 17 июля 2019

Когда устройство, отличное от ЦП, получает доступ к памяти, подключенной к ЦП, это называется прямым доступом к памяти (DMA).Таким образом, любые запросы чтения или записи PCIe, исходящие от устройств PCIe, представляют собой операции DMA.Это можно расширить с помощью DMA «устройство-на-устройство» или «одноранговый», где устройства выполняют чтение и запись друг против друга без использования ЦП или системной памяти.

Существует два основных преимущества DMA: во-первых,Операции DMA могут перемещать данные в память и из нее с минимальной нагрузкой на процессор, повышая эффективность программного обеспечения.Во-вторых, ЦП может выполнять только чтение и запись любого размера слова ЦП, что приводит к очень низкой пропускной способности по шине PCIe из-за заголовков TLP и других издержек протокола.Устройства, непосредственно отправляющие запросы на чтение и запись, могут выполнять операции чтения и записи с гораздо большей полезной нагрузкой, что приводит к более высокой пропускной способности и более эффективному использованию пропускной способности шины.

Таким образом, DMA абсолютно не устарел и не устарел - в основном все высокиеустройства, подключенные через PCIe, будут использовать DMA для эффективного использования шины.

...