В общем нет.
Некоторые системы уверены, только один мастер за один раз. Немного более старый дизайн, если это так (даже старые проекты часто имели параллельные решения). Современный тип шины, хотя каждая шина (адрес, запись данных, чтение данных) работает независимо и имеет тег или идентификатор на тактовый цикл, чтобы показать, с какой транзакцией связан один тактовый цикл. Таким образом, вы можете иметь много / много транзакций в полете одновременно в обоих направлениях, причем различные транзакции перемешиваются вместе на шинах чтения или записи данных. Кто будет дальше, будет зависеть от приоритета, нет правила, что транзакции на шине должны были бы выполняться в том порядке, в котором выложены инструкции программного обеспечения, процессор может определить, что некоторые из них могут начаться раньше, чем другие, и, естественно, ответы будут возвращаться в разных порядках, в зависимости от того, насколько близка и быстра цель. Аналогично, выборки не в порядке, предсказание ветвлений запускает случайные выборки всякий раз, когда это похоже.
Большая транзакция dma потребовала бы гораздо большей пропускной способности шины, но утверждение о том, что процессор останавливается, не обязательно, зависит также от архитектуры и кода. В коде может быть инструкция, которая говорит «остановка» до тех пор, пока не произойдет этот конец сигнала / события передачи, а затем убедится, что процессор завершит то, что он может сделать в канале, и затем остановится. Но это или некоторые архитектуры могут не требовать, чтобы вы останавливались, не очень разумно останавливать в любом случае, так много тратили пропускную способность. В любом случае, какой смысл использовать dma, если он не работает параллельно, просто закодируйте передачу в цикле, выборки добавляют несколько циклов, возможно, в зависимости от архитектуры, они не так дороги, как издержки логики dma, мощность и т. Д. Поймите, как dma работает для конкретной архитектуры и системы, в которой вы находитесь, и решите, стоит ли ее использовать,
Не существует общего ответа о том, как работает dma, он сильно зависит от конструкции системы и всех компонентов системы.