Устройства ввода/вывода могут быть отображены в адресном пространстве оперативной памяти. Это называется вводом/выводом, управляемым памятью. Если устройства реагируют на обращения, как обычные компоненты памяти, они могут быть использованы для ввода /вывода, управляемого памятью.
Ввод/вывод, управляемый памятью, обеспечивает дополнительную гибкость программирования. Для доступа к порту ввода/вывода, расположенному в адресном пространстве памяти, могут использоваться любые работающие с памятью команды. Например, команда MOV позволяет пересылать данные между портом и любым регистром. Команды AND, OR и TEST могут использоваться для манипулирования отдельными битами в регистрах управления и состояния периферийных устройств (см. Рисунок 8-1). Ввод/вывод, управляемый памятью, может использовать для адресации портов ввода/вывода полный набор команд и режимов адресации памяти.
Физическая память---------------------------N| || ПЗУ(ROM) || ||-------------------------|| Порт ввода/вывода ||-------------------------|| Порт ввода/вывода ||-------------------------|| Порт ввода/вывода ||-------------------------|| || || Оперативная память (RAM)|| || |---------------------------0 Рисунок 8-1. Ввод/вывод, управляемый памятью
Для оптимизации быстродействия ЦПУ i486 в конкретных точно определенных обстоятельствах позволяет менять местами последовательность и выполнять чтение раньше буферизованной записи. (См. Справочное Руководство по аппаратному обеспечению процессора i486, где дается более подробное описание работы буфера записи). Используя ввод/вывод, управляемый памятью, процессор i486 создает возможность выполнения чтения ввода/вывода раньше предшествующей команды записи в память. Для исключения этой возможности используйте для чтения команду ввода /вывода.
Использование команды ввода/вывода для записи в порт может иметь свои преимущества в том, что при этом гарантируется, что запись будет завершена до начала выполнения следующей команды. Если команды ввода / вывода записи используются для управления системным программным обеспечением, то такая последовательность событий желательна, поскольку она гарантирует, что следующая команда будет выполнена в новом состоянии.
При разрешенном кешировании для предотвращения попытки кеширования данных ввода/вывода следует использовать либо внешнее программное обеспечение, либо механизм подкачки страниц (бит PCD в элементе страничной таблицы). Ввод/вывод, управляемый памятью, как и любые другие ссылки к памяти, подлежит контролю и защите доступа.