Загалом немає.
Деякі системи впевнені, лише один господар одночасно. Трохи старіший дизайн, якщо це так (навіть старі конструкції часто мали паралельні рішення). Сучасний тип шини, хоча кожна шина (адреса, запис даних, зчитування даних) працює незалежно та має тег чи ідентифікатор на цикл годин, щоб показати, з якою транзакцією пов'язаний один тактовий цикл. Таким чином, ви можете мати багато / багато транзакцій у польоті одночасно в обох напрямках, при цьому різні транзакції перемішуються разом на шинах даних для читання або запису. Кому слід рухатись далі, було б пріоритетним, не існує правила, що транзакції на шині повинні виходити в порядку, згідно з яким викладені інструкції щодо програмного забезпечення, процесор може визначити, що він може початися раніше, ніж інші, і, природно, відповіді будуть повертатися в різних порядках, залежно від того, наскільки близька та швидка мета. Аналогічно, результати не в порядку, передбачення гілок вимикає випадкові вибори, коли це здається.
Велика транзакція dma вимагає набагато більшої пропускної здатності шини, але сказати, що процесор зупиняється, не обов'язково, також залежить від архітектури та коду. Код може мати інструкцію, яка говорить про затримку, поки не відбудеться цей кінець сигналу / події передачі, і тоді переконайтесь, що процесор закінчить те, що він може зробити в трубі, а потім зупинить. Але та чи інша архітектура може не вимагати від вас затримок, але не дуже розумно зупинятись, стільки витрачається на пропускну здатність. Який би був сенс dma у будь-якому випадку, якщо він не працює паралельно, просто кодуйте передачу в циклі, отримує додавання деяких циклів, можливо, залежно від архітектури, вони не такі затратні, як логіка накладних даних dma, потужність тощо. dma працює для конкретної архітектури та системи, на якій ви перебуваєте, і вирішіть, чи варто її використовувати,
Немає загальної відповіді на те, як працює dma, вона сильно залежить від конструкції системи та всіх компонентів в системі.