Вопрос 14
Организация ввода-вывода в вычислительных системах. Инициация обмена, передача информации и завершение обмена. Драйверы
Организация ввода-вывода
Внешние устройства (ВУ), такие как клавиатуры, принтеры и жесткие диски, работают в тысячи раз медленнее процессора. Поэтому они никогда не подключаются к процессору напрямую.
Обмен данными строится по следующей иерархической схеме:
Драйвер - это…
Специальная системная программа, которая знает аппаратные особенности конкретного устройства (адреса его регистров в контроллере, поддерживаемые режимы, команды управления). Драйвер скрывает сложную низкоуровневую работу с «железом» и предоставляет операционной системе простой унифицированный интерфейс.
Инициация обмена
Это этап, на котором процессор или контроллер дает команду на начало обмена данными. Существует три основных подхода:
Асинхронная инициация (Программно-управляемая) Процессор непрерывно опрашивает регистр состояния контроллера (spin-loop), ожидая появления бита готовности. Основной недостаток — процессор простаивает и тратит такты впустую во время ожидания отклика медленного ВУ.
Синхронная инициация Процессор обращается к ВУ в строго определенные моменты времени. Применяется редко и только для устройств, чьё время отклика жестко фиксировано и заранее известно.
По прерыванию Процессор дает ВУ команду и продолжает выполнять полезную работу. Когда ВУ готово к обмену, контроллер посылает процессору аппаратный сигнал прерывания. Процессор временно откладывает текущую задачу, обслуживает устройство и возвращается назад.
Передача информации
Способ транспортировки данных между контроллером ВУ и оперативной памятью (ОЗУ) выбирается на основе требуемой скорости обмена:
Программно-управляемая передача Каждый байт данных проходит маршрут: ВУ Контроллер Аккумулятор процессора ОЗУ. Применяется для медленных устройств, обменивающихся небольшими порциями данных (клавиатуры, мыши, датчики температуры). Поскольку частота нажатия клавиш крайне низкая, нагрузка на процессор при такой схеме незаметна.
Прямой доступ к памяти (ПДП / DMA) Обмен происходит напрямую между контроллером ВУ и ОЗУ под управлением специального контроллера ПДП, вообще минуя процессор. Процессор лишь настраивает контроллер ПДП (указывает начальный адрес памяти и размер блока) и продолжает выполнять вычисления. ПДП критически важен для высокоскоростных устройств (твердотельные накопители SSD, видеокарты, гигабитные сетевые адаптеры). Без ПДП процессор тратил бы все свои ресурсы исключительно на копирование байтов из порта в память, и система бы зависала при любой сетевой активности или чтении диска.
Завершение обмена
Ссылка на оригинал
Синхронное завершение Драйвер или вызывающая программа блокируется и ожидает, пока контроллер ВУ аппаратно не подтвердит успешное окончание операции ввода-вывода.
Асинхронное завершение Драйвер дает команду на старт и сразу возвращает управление программе. Позже, когда ВУ закончит работу, оно генерирует прерывание, сообщая драйверу об успешном завершении, после чего операционная система уведомляет программу.
Вопрос 39
Контроллер приема асинхронного последовательного интерфейса
Назначение и состав
Аппаратная реализация регистров: D- и RS-триггеры
Буферный регистр
A1и Сдвиговый регистр построены на базе D-триггеров. Они защёлкивают информацию со входаDстрого по синхроимпульсам на входеC. Регистр состоянияA2— это RS-триггер, управляемый сигналамиSetиReset. Подробнее: RS- и D-Триггеры.Контроллер принимает данные с одной асинхронной линии связи, аппаратно вырезает стартовые/стоповые биты и передаёт чистый байт процессору. Использует принцип деления частоты для центровки момента считывания, чтобы избежать влияния помех и рассинхронизации.
Основные элементы: буфер
А1и триггерА2, Сдвиговый регистр, Тактовый генератор (ТГ), Делитель на 16 и Счётчик по модулю 9.Алгоритм работы (прием)
- Ожидание: Изначально на линии «Данные от ВУ» висит логическая
1(режим простоя), которая блокирует работу делителя частоты.- Ловля стартового бита: Как только напряжение на линии падает до
0(пришёл стартовый бит), блокировка с делителя снимается. Он начинает считать такты ТГ.- Центровка (защита от помех): Досчитав до 8 (ровно середина стартового бита), контроллер проверяет линию. Если там всё ещё
0, стартовый бит считается истинным. Делитель сбрасывается и начинает отсчитывать полные циклы по 16 тактов.- Сдвиг данных: Ровно через каждые 16 тактов (в геометрическом центре каждого бита) значение с линии защёлкивается и вдвигается в Сдвиговый регистр.
- Окончание приема: С каждым вдвинутым битом Счётчик по модулю 9 (отсчитывающий 1 стартовый + 8 информационных битов) увеличивается. Досчитав до 9, он выдает сигнал, по которому:
- Чистые 8 бит данных параллельно перегружаются из Сдвигового регистра в буфер
А1.- Триггер состояния
А2устанавливается в1.- Блокируется работа делителя до прихода нового стартового бита.
- Чтение процессором: Процессор видит
А2 = 1, подаёт команду “Ввод”, забирает байт изА1, и аппаратура автоматически сбрасываетА2в0. Контроллер готов к приему нового кадра.
Рис. 1: Контроллер приема асинхронного последовательного интерфейса
Ссылка на оригинал




