В чем разница между DMA и IO с отображением в памяти? - PullRequest
23 голосов
/ 04 октября 2010

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

Ответы [ 4 ]

39 голосов
/ 04 октября 2010

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

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

21 голосов
/ 04 октября 2010

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

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

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

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

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

13 голосов
/ 04 октября 2010

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

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

0 голосов
/ 28 июля 2017

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

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

...