|
Выбор метода обмена по системной
шине определяется в основном требованиями к пропускной способности, времени отклика на событие,
происходящее во внешнем устройстве и допустимой загрузкой процессора. Существуют два основных
механизма обмена данными с внешними устройствами: программно-управляемый обмен (ввод-вывод) и
прямой доступ к памяти.
Прямой доступ к
памяти
Прямой доступ к памяти (DMA -
Direct Memory Access) является способом обмена данными между внешним устройством и памятью без
участия процессора и предназначен в основном для устройств, обменивающихся большими блоками
данных с оперативной памятью. Инициатором обмена всегда выступает внешнее устройство.
Процессор инициализирует контроллер DMA, и далее обмен выполняется под управлением контроллера.
Если выбранный режим обмена не занимает всей пропускной способности шины, во время операций
DMA процессор может продолжать работу. Этот тип обмена далее
не рассматривается,
поскольку он не предполагается к использованию в вариантах заданий на разработку систем.
Программно-управляемый ввод-вывод
Программно-управляемый ввод-вывод
означает обмен данными с внешними устройствами с использованием команд процессора. Передача
данных происходит через регистры процессора и при этом в конечном счете может реализовываться
обмен собственно с процессором, обмен внешнего устройства с памятью, обмен между внешними
устройствами.
Процессоры х86 имеют раздельную
адресацию памяти и портов ввода-вывода и соответственно ввод-вывод может быть отображен либо в
пространство ввода-вывода, либо вы пространство оперативной памяти
(memory-mapped I/O).
В последнем случае адрес памяти декодируется во внешнем устройстве и для выполнения
ввода-вывода могут быть использованы все команды обращения к памяти.
Каждое адресуемый элемент адресного
пространства ввода-вывода именуется портом ввода, портом вывода или портом ввода-вывода. Для
обращения к портам предназначены четыре основные команды процессора: In
(ввод в порт), Out (вывод из порта), Ins (ввод из порта в элемент строки памяти) и Outs
(вывод элемента из строки памяти). Последние две строковые команды ввода-вывода используются
для быстрой пересылки блоков данных между портом и памятью в случае последовательно
расположенных адресов портов в внешнем устройстве. Обмен данными с портами, при котором
используются строковые команды ввода-вывода, получил название PIO (Programmed
Input/Output) - программированный ввод-вывод.
Что понимается под словом обмен? Во
первых - это обращение программы к выбранному порту и пересылка информации.
Пересылка - чтение или запись может производится в расчете на то, что порт всегда готов
выдать или принять данные или же предваряется анализом готовности устройства. В последнем
случае обмен включает операцию чтения регистра состояния устройства для анализа его готовности,
ожидание готовности (зацикливание предыдущего шага), собственно обмен байтом или словом данных.
Модификацией этого варианта является метод опроса - способ обнаружения асинхронных событий.
При его использовании каждому возможному событию ставится в соответствие флажок, которому
может обратиться программа.
|
|
|