Прямой доступ к памяти (DMA) в компьютерной архитектуре

Попробуйте наш инструмент устранения неполадок





Для выполнения компьютерной программы требуется синхронная работа более чем одного компонента компьютера. Например, Процессоров - предоставление необходимой управляющей информации, адресов… и т. Д., Шин - для передачи информации и данных в и из памяти на устройства ввода / вывода… и т. Д. Интересным фактором системы будет то, как она обрабатывает передачу информации между процессором, памятью и устройствами ввода-вывода. Обычно процессоры контролируют весь процесс передачи данных, начиная с начала передачи и заканчивая хранением данных в месте назначения. Это увеличивает нагрузку на процессор и большую часть времени остается в идеальном состоянии, снижая эффективность системы. Чтобы ускорить передачу данных между устройствами ввода / вывода и памятью, контроллер DMA действует как мастер станции. Контроллер DMA передает данные с минимальным вмешательством процессора.

Что такое контроллер DMA?

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




Схема контроллера DMA в компьютерной архитектуре

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

DMA в компьютерной архитектуре

DMA в компьютерной архитектуре



Контроллер DMA содержит блок адреса для генерации адресов и выбора устройства ввода / вывода для передачи. Он также содержит блок управления и счетчик данных для подсчета количества переданных блоков и указания направления передачи данных. Когда передача завершена, DMA информирует процессор, вызывая прерывание. Типичная блок-схема контроллера прямого доступа к памяти показана на рисунке ниже.

Типовая блок-схема контроллера DMA

Типовая блок-схема контроллера DMA

Работа контроллера DMA

Контроллер DMA должен использовать шину совместно с процессором для передачи данных. Устройство, которое удерживает шину в данный момент, называется мастером шины. Когда необходимо выполнить передачу с устройства ввода-вывода в память или наоборот, процессор останавливает выполнение текущей программы, увеличивает программа счетчик, перемещает данные по стеку, затем отправляет сигнал выбора DMA контроллеру DMA по шине адреса.

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


Передача данных по DMA в компьютер по DMA

Передача данных в компьютер с помощью контроллера DMA

Контроллер DMA теперь имеет полный контроль над шинами и может напрямую взаимодействовать с памятью и устройствами ввода-вывода независимо от процессора. Он выполняет передачу данных в соответствии с инструкциями управления, полученными процессором. После завершения передачи данных он отключает сигнал запроса шины, а ЦП отключает сигнал разрешения шины, тем самым передавая управление шинами на ЦП.

Когда устройство ввода-вывода хочет инициировать передачу, оно отправляет сигнал запроса DMA контроллеру DMA, для чего контроллер подтверждает, свободен ли он. Затем контроллер запрашивает у процессора шину, повышая сигнал запроса шины. После получения сигнала предоставления шины он передает данные с устройства. К n канальному контроллеру DMA может быть подключено n количество внешних устройств.

DMA передает данные в трех режимах, включая следующие.

к) В режиме серийной съемки : В этом режиме DMA передает шину ЦП только после завершения полной передачи данных. Между тем, если центральному процессору требуется шина, он должен оставаться в идеальном состоянии и ждать передачи данных.

б) Циклический режим кражи : В этом режиме DMA передает управление шинами ЦП после передачи каждого байта. Он непрерывно выдает запрос на управление шиной, выполняет передачу одного байта и возвращает шину. Благодаря этому процессору не нужно долго ждать, если ему нужна шина для более приоритетной задачи.

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

Контроллер 8237 DMA

  • 8237 имеет 4 канала ввода / вывода, а также возможность увеличения количества каналов.
  • Каждый канал может быть запрограммирован индивидуально и имеет 64 КБ адресов и данных.
  • Блок управления синхронизацией, блок управления программными командами, блок приоритетного кодировщика - это три основных блока 8237A.
  • Внутренние временные и внешние управляющие сигналы управляются блоком управления синхронизацией.
  • Различные команды, подаваемые микропроцессором в DMA, декодируются блоком управления программными командами.
  • Какому каналу следует присвоить наивысший приоритет, определяется приоритетом блок кодера .
    8237A имеет 27 внутренних регистров.

8237A работает в двух циклах - идеальном цикле и активном цикле, где каждый цикл содержит 7 отдельных состояний, каждое из которых состоит из одного тактового периода.

S0- Первое состояние, когда контроллер запросил шину и ожидает подтверждения от процессора.

S1, S2, S3, S4 называются рабочими состояниями 8237A, в которых происходит фактическая передача данных. Если для ожидания передачи требуется больше времени, между этими состояниями добавляются SW.

Для передачи из памяти в память необходимо выполнять операции чтения из памяти и записи в память. Для однократной передачи требуется восемь состояний. Первые четыре состояния с индексами S11, S12, S13, S14 выполняют передачу чтения из памяти, а следующие четыре состояния S21, S22, S23, S24 предназначены для передачи записи в память.

DMA переходит в идеальное состояние, когда ни один канал не запрашивает обслуживание и не выполняет состояние SI. SI - это неактивное состояние, когда DMA неактивен, пока не получит запрос. В этом состоянии DMA находится в программном состоянии, когда процессор может программировать DMA.

Когда DMA находится в идеальном состоянии и больше не получает запросов канала, он выводит сигнал HRQ на процессор и переходит в активное состояние, где он может начать передачу данных либо в пакетном режиме, либо в режиме циклического захвата, либо в прозрачном режиме.

Схема контактов 8237

Схема контактов 8237

Контроллер 8257 DMA

В паре с одним устройством порта ввода-вывода Intel 8212 контроллер 8257 DMA образует полный 4-канальный Контроллер DMA . При получении запроса на передачу контроллер 8257-

  • Получает контроль над системной шиной от процессора.
  • Подтверждается периферийное устройство, подключенное к каналу с наивысшим приоритетом.
  • Младшие биты адреса памяти перемещаются по адресным линиям A0-A7 системной шины.
  • Самый значительный 8 бит адреса памяти передаются на порт ввода-вывода 8212 через линии данных.
  • Генерирует соответствующие управляющие сигналы для передачи данных между периферийными устройствами и адресуемыми ячейками памяти.
  • Когда заданное количество байтов передается, контроллер сообщает ЦП об окончании передачи, активируя выход терминального счетчика (TC).

Для каждого канала 8257 содержит два 16-битные регистры - 1) регистр адреса DMA и 2) регистр счетчика терминалов, который должен быть инициализирован перед включением канала. Адрес первой ячейки памяти, к которой необходимо получить доступ, загружается в адресный регистр DMA. 14 битов младшего разряда значения, загруженного в регистр счетчика клемм, указывают количество циклов DMA минус один до активации вывода счетчика клемм. Тип операции для канала указывается двумя старшими битами регистра счетчика терминала.

Схема контактов 8257

Схема контактов 8257

Преимущества и недостатки контроллера DMA

К достоинствам и недостаткам контроллера DMA можно отнести следующее.

Преимущества

  • DMA ускоряет операции с памятью, обходя участие ЦП.
  • Уменьшается нагрузка на ЦП.
  • Для каждой передачи требуется всего несколько тактов.

Недостатки

  • Проблема согласованности кэша может быть замечена, когда DMA используется для передачи данных.
  • Повышает стоимость системы.

DMA ( Прямой доступ к памяти ) контроллер используется в видеокартах, сетевых картах, звуковых картах и ​​т. д. DMA также используется для внутричиповой передачи в многоядерных процессорах. Работая в одном из трех режимов, DMA может значительно снизить нагрузку на процессор. В каком из режимов DMA вы работали? Какой из режимов вы считаете более эффективным?