backup
xalionВ прошлой статье мы разобрали ещё три типа команд ISA: сравнения и условных переходов, команды вызова процедур и команды управления циклами. Первая статья про команды юююю. Вторая статья про юююююю.
В этой статье разберём последний тип – команды ввода-вывода.
Они вводят данные в компьютер и выводом их на экран, проектор, файл, лист. Существует три типа ввода-вывода:
- Программируемый с ожиданием.
- С управлением по прерываниям.
- С прямым доступом к памяти.
Устройство имеет одну команду ввода, одну команду вывода и регистр состояния. Этот регистр показывает состояние памяти: 0 – буфер пустой, 1 – в буфере что-то записано. Процессор проверяет регистр состояния и считывает данные, если они есть.
Метод используется в дешёвых микроконтроллерах и системах реального времени. Системы постоянно реагируют на внешние изменения и обрабатывают новые данные. Например, система для обработки видео в прямом эфире.
ввод
вывод
При программируемом вводе-выводе процессор входит в цикл и находится в нём, пока не завершится передача данных. Пока процессор в цикле, он не может заниматься другими задачами.
Чтобы процессор не проводил время в цикле — создали ввод-вывод с прерываниями
Алгоритм действий похож на программируемый ввод-вывод, но о готовности сообщает само устройство. Процессору не нужно находится в цикле и постоянно проверять регистр состояния. После передачи символа, устройство посылает процессору сигнал прерывания и он переключается на устройство.
При таком методе ввода-вывода после каждого переданного символа приходится генерировать прерывание для процессора и отвлекать его.
Чтобы избавиться от этой проблемы, создали ввод-вывод с прямым доступом к памяти.
Вместо центрального процессора обработкой ввода и вывода занимается контроллер прямого доступа к памяти.
На микросхеме контроллера четыре и более регистров. Иногда котроллеры формируют по группам для вывода сразу на несколько устройств.
Четыре регистра хранят информацию о данных, их адресе и устройстве вывода.
- Хранит адрес памяти для записи или считывания.
- Содержит количество байт или слов для передачи.
- Содержит номер устройства ввода-вывода или его адрес устройства.
- Хранит информацию о действиях с данными: вводить или выводить данные.
Процессор заполняет четыре регистра и продолжает решать другие задачи, а контроллер вводит или выводит данные. По завершению, контроллер посылает сигнал прерывания в процессор.
Контроллер имеет преимущество перед процессором на доступ к шине. Из-за этого возникает захват цикла памяти.
Пока считываются или записываются данные, контроллер передаёт их по шине, процессор будет ждать пока передача закончиться. Ожидание процессора своей очереди называется захватом цикла памяти.
Ввод-вывод с прямым доступом к памяти работает быстрее остальных типов ввода-вывода.
В следующей статье разберём поток управления.