В составе контроллера можно выделить четыре внутренних регистра, называемых регистрами состояния, управления, входных данных и выходных данных. Для доступа к содержимому этих регистров вычислительная система может использовать один или несколько портов.
Регистр состояния характеризует состояние устройства ввода-вывода, его содержимое изменяет контроллер, а для вычислительной системы доступно только чтение. В регистре состояния имеются биты занятости (свидетельствует о завершении выполнения команды на устройстве), готовности данных (указывает на наличие очередного слова в регистре выходных данных), ошибки (говорит о возникновении ошибки при выполнении команды).
Регистр управления получает от вычислительной системы данные для инициализации устройства ввода-вывода, выполнения очередной команды или изменения режима работы устройства. Части регистра занимают код выполняемой команды, код режима работы устройства, бит готовности в котором свидетельствует о возможности выполнения операции.
Регистр выходных данных служит для помещения в него данных, направляемых из устройства в вычислительную систему, а регистр входных данных - для данных, пересылаемых в обратном направлении.
Упрощенно процесс записи данных на внешнее устройство можно представить следующим образом. Процессор читает информацию из порта регистра состояний и проверяет значение бита занятости. Если бит занятости установлен, то это означает, что устройство еще не завершило предыдущую операцию, и процессор уходит на новую итерацию цикла. Если бит занятости сброшен, то устройство готово к выполнению новой операции, и процессор переходит на следующий шаг. Далее процессор:
Действия контроллера:
Процессор при взаимодействии с устройством должен знать значение бита занятости. Если это осуществляется в режиме непрерывного опроса, то заметно снижается производительность системы. Для того чтобы процессор не дожидался состояния готовности устройства ввода-вывода в цикле, а мог выполнять в это время другую работу, необходимо, чтобы устройство само умело сигнализировать процессору о своей готовности. Способ, который позволяет внешним устройствам оповещать процессор о завершении команды вывода или команды ввода, получил название механизма прерываний.
Список литературы
1. Основы операционных систем / Интернет университет информационных технологий. — http://metod.ce.cctpu.edu.ru/edu/os/1/1.html