Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia (1).docx
Скачиваний:
23
Добавлен:
01.03.2025
Размер:
188 Кб
Скачать
☆
      1. Адресация периферийных устройств

Разные устройства на каждом уровне выделяются с помощью адресов, которые позволяют различать:

  • каналы, связанные с памятью;

  • контроллеры, соответствующие каждому каналу;

  • периферийные устройства, соединенные с каждым контроллером.

На каждом уровне такой адрес - просто порядковый номер. В результате периферийное устройство обозначается составным адресом

.

Рис. 3.1. Адресация периферийных устройств.

Управление периферийными устройствами

Программа, которая управляет элементарным функционированием периферийного устройства, называется его драйвером.

Драйвер непосредственно управляет интерфейсом контроллера устройства, обрабатывает передаваемые им прерывания, обнаруживает и обрабатывает случаи ошибок.

Синхронный ввод-вывод: спецификация ввода-вывода, принципы работы драйвера

При синхронном вводе-выводе параллелизм между обработкой и передачей информации отсутствует. Процессор занят в течение всего времени передачи.

Спецификации механизма

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

Указатель

Значение

ГОТОВ

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

КОНЕЦ

Передача завершена; устройство готово передать новый символ.

ОШИБКА

Во время передачи произошла ошибка, которая может быть уточнена кодом, составляющим часть слова состояния.

Контроллер управляется центральным процессором с помощью следующих примитивов.

Примитив

Назначение

ВВЕСТИ(А_П,А_У)

Требует передачи байта из устройства с адресом А_У в ячейку памяти с адресом А_П.

ВЫВЕСТИ(А_П,А_У)

Требует передачи байта из ячейки памяти А_П на устройство А_У.

ТЕСТ(А_У)

Копирует слово состояния устройства А_У в регистр для проверки указателей.

Алгоритм работы драйвера.

Пусть требуется вывести последовательность символов(байтов), содержащихся в памяти . Символ для не может быть выведен на периферийное устройство, пока не завершится вывод символа

КОНЕЦ:=false; ТЕСТ(А_У); if not ГОТОВ then <Обработка ошибки>; for i:=0 to n-1 do begin ВЫВЕСТИ(T[i],А_У); repeat ТЕСТ(А_У); if ОШИБКА then <Обработка ошибки>; until КОНЕЦ; end

Асинхронный ввод-вывод: спецификация ввода-вывода, принципы работы драйвера.

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

Работа драйвера будет выглядеть следующем образом:

Главная программа.

ЗАКОНЧЕН:=false; i:=0; ВЫВЕСТИ(T[0],А_У); ... <параллельная обработка> ... if ЗАКОНЧЕН then ...

Обработчик прерывания.

<Сохранить контекст>; ТЕСТ(А_У); if ОШИБКА then <Обработка ошибки> else begin if i<n-1 then begin i:=i+1; ВЫВЕСТИ(T[i],А_У); end else ЗАКОНЧЕН:=true end; <Восстановить контекст>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]