Существует два режима для передачи данных с использованием DMA
1. Режим пакетной передачи
Как только контроллер DMA получает доступ к системной шине ЦПУ, он передает все байты данных вблок данных перед сбросом управления системными шинами обратно в ЦП.Процессор отключен для использования шины памяти в течение длительного времени. Он не будет открывать доступ к шине до тех пор, пока весь блок данных не будет передан.
2. Режим кражи цикла
Как только контроллер DMA получит доступ ксистемная шина ЦП, она передает один байт данных, а затем освобождает доступ к памяти процессору.снова для другого байта передачи он должен получить доступ к шине с помощью процессора через сигналы BR и BG (ЗАПРОС ШИНЫ и ПРЕДОСТАВЛЕНИЕ ШИНЫ). Для каждого байта передачи он получает доступ к шине и освобождает его до тех пор, пока весь блок данных не будет передан.
В вышеприведенном примере
Тактовая частота равна 20 МГц (Гц - это число циклов в секунду) .20 миллионов тактовых импульсов в секунду (20 x 10 ^ 6 циклов в секунду)
Для каждого байтаПередача Ч / Б Интерфейса и Памяти занимает 8 тактов.Существует 20 x 10 ^ 6 тактовых циклов. В режиме кражи циклов для каждого байта передачи требуется еще 4 тактовых цикла, чтобы получить разрешение на шину и освободить доступ.Таким образом, для передачи одного байта между интерфейсом ввода-вывода и памятью требуется 12 тактов.Здесь 2/3 тактовых циклов используются для передачи данных, а 1/3 тактовых циклов используются для доступа к шине.Здесь один тактовый цикл используется для передачи одного бита данных.2/3 из 20 миллионов тактовых циклов используются для передачи данных, а 1/3 из 20 миллионов тактовых циклов используются для доступа к шине. Таким образом, 13333,333 Кбит / с - это переданные ч / б интерфейс ввода-вывода и память.Если мы возьмем 2% от 13333 Кбит / с, примерно, это будет 267 Кбит / с.Максимальная достижимая скорость передачи данных в этом режиме составляет 13333 Кбит / с.
В пакетном режиме после получения DMA шиной, она освобождает шину после полной передачи. 20000 x 10 ^ 3 тактовых цикла используются для передачи 20000 x 10^ 3 бита, что составляет 20000 кбит / с. 4 тактовых цикла используются для доступа к шине.примерно это будет 20000 кб / с