Организация ввода-вывода в вычислительных системах. Инициация обмена, передача информации и завершение обмена. Драйверы

Организация ввода-вывода

Внешние устройства (ВУ), такие как клавиатуры, принтеры и жесткие диски, работают в тысячи раз медленнее процессора. Поэтому они никогда не подключаются к процессору напрямую.

Обмен данными строится по следующей иерархической схеме:

Драйвер - это…

Специальная системная программа, которая знает аппаратные особенности конкретного устройства (адреса его регистров в контроллере, поддерживаемые режимы, команды управления). Драйвер скрывает сложную низкоуровневую работу с «железом» и предоставляет операционной системе простой унифицированный интерфейс.

Инициация обмена

Это этап, на котором процессор или контроллер дает команду на начало обмена данными. Существует три основных подхода:

  • Асинхронная инициация (Программно-управляемая) Процессор непрерывно опрашивает регистр состояния контроллера (spin-loop), ожидая появления бита готовности. Основной недостаток — процессор простаивает и тратит такты впустую во время ожидания отклика медленного ВУ.

  • Синхронная инициация Процессор обращается к ВУ в строго определенные моменты времени. Применяется редко и только для устройств, чьё время отклика жестко фиксировано и заранее известно.

  • По прерыванию Процессор дает ВУ команду и продолжает выполнять полезную работу. Когда ВУ готово к обмену, контроллер посылает процессору аппаратный сигнал прерывания. Процессор временно откладывает текущую задачу, обслуживает устройство и возвращается назад.

Передача информации

Способ транспортировки данных между контроллером ВУ и оперативной памятью (ОЗУ) выбирается на основе требуемой скорости обмена:

  • Программно-управляемая передача Каждый байт данных проходит маршрут: ВУ Контроллер Аккумулятор процессора ОЗУ. Применяется для медленных устройств, обменивающихся небольшими порциями данных (клавиатуры, мыши, датчики температуры). Поскольку частота нажатия клавиш крайне низкая, нагрузка на процессор при такой схеме незаметна.

  • Прямой доступ к памяти (ПДП / DMA) Обмен происходит напрямую между контроллером ВУ и ОЗУ под управлением специального контроллера ПДП, вообще минуя процессор. Процессор лишь настраивает контроллер ПДП (указывает начальный адрес памяти и размер блока) и продолжает выполнять вычисления. ПДП критически важен для высокоскоростных устройств (твердотельные накопители SSD, видеокарты, гигабитные сетевые адаптеры). Без ПДП процессор тратил бы все свои ресурсы исключительно на копирование байтов из порта в память, и система бы зависала при любой сетевой активности или чтении диска.

Завершение обмена

  • Синхронное завершение Драйвер или вызывающая программа блокируется и ожидает, пока контроллер ВУ аппаратно не подтвердит успешное окончание операции ввода-вывода.

  • Асинхронное завершение Драйвер дает команду на старт и сразу возвращает управление программе. Позже, когда ВУ закончит работу, оно генерирует прерывание, сообщая драйверу об успешном завершении, после чего операционная система уведомляет программу.