Вопрос 14
Организация ввода-вывода в вычислительных системах. Инициация обмена, передача информации и завершение обмена. Драйверы
Организация ввода-вывода
Внешние устройства (ВУ), такие как клавиатуры, принтеры и жесткие диски, работают в тысячи раз медленнее процессора. Поэтому они никогда не подключаются к процессору напрямую.
Обмен данными строится по следующей иерархической схеме:
Драйвер - это…
Специальная системная программа, которая знает аппаратные особенности конкретного устройства (адреса его регистров в контроллере, поддерживаемые режимы, команды управления). Драйвер скрывает сложную низкоуровневую работу с «железом» и предоставляет операционной системе простой унифицированный интерфейс.
Инициация обмена
Это этап, на котором процессор или контроллер дает команду на начало обмена данными. Существует три основных подхода:
Асинхронная инициация (Программно-управляемая) Процессор непрерывно опрашивает регистр состояния контроллера (spin-loop), ожидая появления бита готовности. Основной недостаток — процессор простаивает и тратит такты впустую во время ожидания отклика медленного ВУ.
Синхронная инициация Процессор обращается к ВУ в строго определенные моменты времени. Применяется редко и только для устройств, чьё время отклика жестко фиксировано и заранее известно.
По прерыванию Процессор дает ВУ команду и продолжает выполнять полезную работу. Когда ВУ готово к обмену, контроллер посылает процессору аппаратный сигнал прерывания. Процессор временно откладывает текущую задачу, обслуживает устройство и возвращается назад.
Передача информации
Способ транспортировки данных между контроллером ВУ и оперативной памятью (ОЗУ) выбирается на основе требуемой скорости обмена:
Программно-управляемая передача Каждый байт данных проходит маршрут: ВУ Контроллер Аккумулятор процессора ОЗУ. Применяется для медленных устройств, обменивающихся небольшими порциями данных (клавиатуры, мыши, датчики температуры). Поскольку частота нажатия клавиш крайне низкая, нагрузка на процессор при такой схеме незаметна.
Прямой доступ к памяти (ПДП / DMA) Обмен происходит напрямую между контроллером ВУ и ОЗУ под управлением специального контроллера ПДП, вообще минуя процессор. Процессор лишь настраивает контроллер ПДП (указывает начальный адрес памяти и размер блока) и продолжает выполнять вычисления. ПДП критически важен для высокоскоростных устройств (твердотельные накопители SSD, видеокарты, гигабитные сетевые адаптеры). Без ПДП процессор тратил бы все свои ресурсы исключительно на копирование байтов из порта в память, и система бы зависала при любой сетевой активности или чтении диска.
Завершение обмена
Link to original
Синхронное завершение Драйвер или вызывающая программа блокируется и ожидает, пока контроллер ВУ аппаратно не подтвердит успешное окончание операции ввода-вывода.
Асинхронное завершение Драйвер дает команду на старт и сразу возвращает управление программе. Позже, когда ВУ закончит работу, оно генерирует прерывание, сообщая драйверу об успешном завершении, после чего операционная система уведомляет программу.
Transclude of question-39



