backup

backup

xalion

В прошлой статье мы разобрали ещё три типа команд ISA: сравнения и условных переходов, команды вызова процедур и команды управления циклами. Первая статья про команды юююю. Вторая статья про юююююю.

В этой статье разберём последний тип – команды ввода-вывода.

Они вводят данные в компьютер и выводом их на экран, проектор, файл, лист. Существует три типа ввода-вывода:

  1. Программируемый с ожиданием.
  2. С управлением по прерываниям.
  3. С прямым доступом к памяти.


Устройство имеет одну команду ввода, одну команду вывода и регистр состояния. Этот регистр показывает состояние памяти: 0 – буфер пустой, 1 – в буфере что-то записано. Процессор проверяет регистр состояния и считывает данные, если они есть.
Метод используется в дешёвых микроконтроллерах и системах реального времени. Системы постоянно реагируют на внешние изменения и обрабатывают новые данные. Например, система для обработки видео в прямом эфире.

ввод

вывод

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

Чтобы процессор не проводил время в цикле — создали ввод-вывод с прерываниями


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

При таком методе ввода-вывода после каждого переданного символа приходится генерировать прерывание для процессора и отвлекать его.

Чтобы избавиться от этой проблемы, создали ввод-вывод с прямым доступом к памяти.


Вместо центрального процессора обработкой ввода и вывода занимается контроллер прямого доступа к памяти.

На микросхеме контроллера четыре и более регистров. Иногда котроллеры формируют по группам для вывода сразу на несколько устройств.

Четыре регистра хранят информацию о данных, их адресе и устройстве вывода.

  1. Хранит адрес памяти для записи или считывания.
  2. Содержит количество байт или слов для передачи.
  3. Содержит номер устройства ввода-вывода или его адрес устройства.
  4. Хранит информацию о действиях с данными: вводить или выводить данные.

Процессор заполняет четыре регистра и продолжает решать другие задачи, а контроллер вводит или выводит данные. По завершению, контроллер посылает сигнал прерывания в процессор.

Контроллер имеет преимущество перед процессором на доступ к шине. Из-за этого возникает захват цикла памяти.

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

Ввод-вывод с прямым доступом к памяти работает быстрее остальных типов ввода-вывода.


В следующей статье разберём поток управления.

Report Page