Прямой доступ к памяти

Устройства ввода-вывода. Доступ к УВВ.

У каждого устройства ввода/вывода есть контроллер для общения с ЦП. Контроллер и процессор общаются через специальные регистры, располагающиеся на контроллере. При помощи управляющих регистров процессор управляет устройством вводы/вывода. Из регистров данных процессор может узнать состояние устройства, а так же выдаваемую информацию. Существует 2 альтернативных подхода для доступа к регистрам:

- в первом варианте каждому регистру назначается номер порта ввода/вывода и, при помощи специальных команд, происходит общение с этими регистрами. Специальные команды:

‡ in reg, port - считывает данные из порта в определенный регистр процессора;

‡ out port, reg - записывает данные из регистра процессора в определенный порт;

- второй подход состоит в отображении всех управляющих регистров на адресное пространство в памяти. Обычно для регистров отводятся адреса на вершине адресного пространства. Доступ к управляющим регистрам осуществляется с помощью обычных операций для работы с памятью.

Достоинства:

‡ для обращения к устройствам ввода/вывода не требуется специальных команд, например in и out;

‡ легко реализовывается защита от пользовательских процессов - достаточно исключить часть адресного пространства, на которую отображаются управляющие регистры из адресного пространства пользователей. Для доступа к определенному устройству, пользовательской программе будет дан доступ к странице памяти, на которую отображен соответствующий регистр;

‡ каждая команда процессора, которая обращается к памяти, может с тем же успехом обращаться к регистрам устройств ввода/вывода, например команда tsl.

Недостатки:

‡ в большинстве современных компьютеров используется кэширование памяти, поэтому необходима специальная аппаратура либо программные средства, которые позволяют запрещать кэширование для определенных страниц;

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

Прямой доступ к памяти (DMA)

Общаясь с устройствами ввода/вывода, ЦП должен устанавливать управляющие регистры и читать регистры данных, а так же реагировать на все аппаратные прерывания. Это значительно уменьшает эффективность использования компьютера за счет частых переключений контекста. Чтобы избавиться от этих недостатков используется система, называемая прямым доступом к памяти (Direct Memory Access). В ее основе лежит аппаратный DMA контроллер. DMA контроллер может получать доступ к шине данных независимо от ЦП. Он так же имеет управляющие регистры и регистры данных. Через эти регистры ЦП программирует контроллер DMA на выполнение операций ввода/вывода, например номер порта, количество байт, направление переноса и т.д.

1 - ЦП программирует контроллер DMA;

2 - контроллер DMA дает команду контроллеру HDD прочитать данные во внутренний буфер и проверить контрольную сумму.

3 - контроллер DMA инициирует перенос данных из буфера в RAM. Контроллер HDD не отличает запросы ЦП и контроллера DMA;

4 - по завершении записи буфера контроллер HDD отправляет сигнал подтверждения контроллеру DMA (вместо прерывания ЦП). При необходимости шаги 2-4 повторяются;

5 - по завершении цикла копирования контроллер DMA вызывает прерывание процессора


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: