Подтвердить что ты не робот

В чем разница между DMA и IO с отображением памяти?

В чем разница между DMA и IO с отображением памяти? Они оба похожи на меня.

4b9b3361

Ответ 1

Ввод/вывод с отображением в память позволяет процессору управлять оборудованием, читая и записывая определенные адреса памяти. Обычно это используется для операций с низкой пропускной способностью, таких как изменение битов управления.

DMA позволяет аппаратным средствам напрямую считывать и записывать память без использования процессора. Обычно это используется для операций с высокой пропускной способностью, таких как дисковый ввод или вывод видео с камеры.

Источник: https://www.nersc.gov/users/computational-systems/cori/application-porting-and-performance/measuring-and-understanding-memory-bandwidth

Ответ 2

Поскольку другие уже ответили на этот вопрос, я просто добавлю немного истории.

В прежние времена на оборудовании x86 (ПК) было только пространство ввода/вывода и пространство памяти. Это были два разных адресных пространства, доступ к которым осуществлялся с использованием разных протоколов шины и различных инструкций ЦП, но они могли разговаривать через один и тот же слот для плагинов.

В большинстве устройств используется пространство ввода-вывода как для интерфейса управления, так и для интерфейса массовой передачи данных. Простым способом доступа к данным было выполнение множества инструкций ЦП для передачи данных по одному слову за раз от адреса ввода-вывода до адреса памяти (иногда называемого "бит-биение" ).

Чтобы перенести данные с устройств на хост-память автономно, в протоколе шины ISA не поддерживалась поддержка устройств для инициирования передач. Было изобретено компромиссное решение: контроллер DMA. Это было аппаратное обеспечение, которое загрузилось процессором и инициировало передачу для перемещения данных с адреса ввода-вывода устройства в память или наоборот. Поскольку адрес ввода-вывода одинаков, контроллер DMA выполняет те же операции, что и процессор, но немного более эффективно и дает некоторую свободу работать в фоновом режиме (хотя, возможно, недолго, поскольку он не может разговаривать с памятью).

Быстрая перемотка вперед в дни PCI, а протоколы шины стали намного умнее: любое устройство может инициировать передачу. Таким образом, возможно, скажем, карта контроллера RAID для перемещения любых данных, которые ему нравятся, или из хоста в любое время, когда она нравится. Это называется режимом "мастер шины", но по какой-то причине люди продолжают ссылаться на этот режим как "DMA", хотя старый контроллер DMA давно ушел. В отличие от старых передач DMA, часто нет соответствующего адреса ввода-вывода, и режим ведущего устройства шины часто является единственным интерфейсом, присутствующим на устройстве, без какого-либо режима "бит-стук" CPU.

Ответ 3

IO с отображением памяти означает, что регистры устройства отображаются в пространство памяти компьютера - когда эти области памяти считываются или записываются процессором, он считывает или записывает на устройство, а не в реальную память. Для передачи данных с устройства в реальный буфер памяти ЦП должен считывать данные из регистров устройств с отображением памяти и записывать их в буфер (и наоборот для передачи данных на устройство).

При передаче DMA устройство может напрямую передавать данные в или из реального буфера памяти. CPU сообщает устройству местоположение буфера, а затем может выполнять другую работу, пока устройство напрямую обращается к памяти.

Ответ 4

Прямой доступ к памяти (DMA) - это метод передачи данных из ввода-вывода в память и из памяти в ввод-вывод без вмешательства ЦП. Для этого используется специальная микросхема, называемая контроллером DMA, для управления всеми действиями и синхронизацией данных. В результате, по сравнению с другими методами передачи данных, DMA намного быстрее.

С другой стороны, виртуальная память действует как кэш между основной памятью и вторичной памятью. Данные забираются заранее из вторичной памяти (жесткого диска) в основную память, так что данные уже доступны в основной памяти при необходимости. Это позволяет нам запускать в системе больше приложений, чем у нас достаточно физической памяти для поддержки.

enter image description here