Материал: Уч_пос_АрхКомп_2017

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

На схеме рис. 10.9 используются обозначения:

IRR – регистр приема запросов, ISR – регистр обслуживания запросов,

IMR – регистр маскирования прерываний, PRIOR – арбитр, схема разрешения приоритетов,

IM – маска прерывания (выдается по шине данных ШД),

Int – линия шины управления ШУ для выдачи запроса прерывания в процессор,

Inta – линия ШУ для подтверждения разрешения на прерывание,

НВП – Номер Вектора Прерывания (выдается по шине адреса ША),

EI – бит разрешения прерывания в РГУС КНВВ,

Done – бит завершения операции ввода-вывода в РГУС КНВВ.

Если сигнал INTA = ‘разрешено', то тогда контроллер прерываний выставляет НВП на ША.

Далее идет обычная передача данных через КНВВ с той разницей, что процессор не висит на флаге ожидания. Удобно для процессора, но неудобно для ВУ, так как устройство должно ожидать, пока контроллер получит разрешение от процессора на прерывание.

Контроллер передачи данных в режиме аппаратного прерывания (или прямого доступа к памяти – КПДП)

(ЦП) КПДП

BACK DACK

Контр. CAR CWR Mode R КВУ

шины (Рг ТА) (Сч Слов) (Рг Реж)

BRK DRQ

Внутренняя шина

Контр. BAR BCR Управ- ША

прерыв. (Рг БА) (Рг БС) ление ШД

ШУ

ШУ ША ШД ШУ

С и с т е м н а я ш и н а

РиР

Рис. 17.3

Основные компоненты КПДП

CAR – регистр текущего адреса – работает в режиме автоинкрементирования; увеличивается на 1 или 2 после каждой передачи байта или слова данных.

CWR – счетчик слов (или байт), который работает в режиме автодекрементирования: после каждой передачи содержимое регистра уменьшается на 1(байт) или 2 (слово).

ModeR – регистр режима передачи (определяет характер и направление передачи).

BAR – регистр базового адреса, содержит начальный адрес памяти и в процессе передачи не изменяется (служит для средств контроля передачи).

BCR – регистр базового счетчика, содержит первоначальное количество передаваемых слов (служит для средств контроля передачи).

Управление – управление организацией передачи по внутренней шине КПДП.

По ШУ в КПДП передаются следующие сигналы:

MemR - чтение памяти

IOR - чтение устройства

MemW - запись памяти

IOW - запись устройства

В режиме прямого доступа к памяти выполняется блочная передача данных между памятью и быстрыми ВУ (HDD, Sound card и т. д.). Управление передачей происходит без участия процессора (процессор должен только инициализировать регистры контроллера).

В обеспечении передачи задействованы все три вида контроллеров:

  1. Контроллер ПДП.

  2. Контроллер прерываний, который в данном случае формирует сигнал в процессор о завершении передачи в режиме прямого доступа в память.

  3. Индивидуальный контроллер КНВВ, управляющий операцией Вв/выв в конкретном ВУ.

Алгоритм передачи данных в режиме ПДП

  1. После подготовки устройством данного (или готовности к приему очередного данного) оно выставляет запрос DRQ на передачу в режиме прямого доступа.

  2. По его получении КПДП выставляет запрос BRK на возможность захвата шины.

  3. Вырабатывается подтверждающий сигнал BACK от контроллера памяти.

  4. Вырабатывается подтверждающий сигнал DACK от КПДП к внешнему устройству.

  5. Далее выдается пара команд: либо {MemR и IOW}, либо {MemW и IOR }, реализующие собственно передачу данного между ВУ и памятью.

  6. После этого сбрасывается сигнал запроса шины и разрешения доступа к памяти: BRQ  0, DACK  0.

  7. Изменяется содержимое регистра РгТА: TA ++ и счетчика слов: CC -- .

Пункты с 1 по 7 называются «занятие цикла памяти» и выполняются для передачи одного данного. Они повторяются до тех пор, пока не выполнится условие СС = 0, по которому формируется запрос в контроллер прерываний, в результате обслуживания которого процессор узнает о завершении передачи блока данных в режиме ПДП.

В компьютерах iХ86 в качестве КПДП используются микросхемы:

  1. 8237A – XT (содержит четыре канала с номерами 0–3, работает с однобайтовыми портами).

  2. 8237A – 5 – AT и выше (содержит две группы по четыре канала, первая – как у XT (для поддержки), а вторая – для работы с двухбайтовыми портами).

Состав регистров и адресация 8237A:

00h – 07h – номера регистров по каждому из каналов.

0Ah регистр маски разрешает и запрещает работу по каждому из каналов.

номера битов:

0, 1 – номер канала

2 – разрешить, запретить

3…7 – не используются

0Bh – регистр режима

номера битов:

0, 1 – номер канала

2, 3 – тип цикл DMA

00 – цикл проверки

01 – цикл занятости

10 – цикл чтения

11 – запрещенная комбинация

4 – режим инициализации

5 – направление приращения адреса

0 – увеличение

1 – уменьшение

6, 7 – режим обслуживания

00 – по требованию

01 – одиночная передача

10 – блочная передача

11 – каскадирование (использование двухуровневых контроллеров)

0Ch – сброс триггеров байта

0Eh – сброс регистра маски

81h…8Fh – регистры страниц, текущий адрес равен 16 бит, шина адреса и шина данных (прямого доступа к памяти) равны 20 бит, регистры страниц задают адрес страницы (старшие четыре бита адреса – работают с 1 Мб), одна страница – 64 Кб.

Для 8237A-5-AT используются 3-байтовые регистры страницы (24 бит) и появляется возможность адресовать до 16 Мб оперативной памяти.

  1. Программные средства управления вводом-выводом (пс увв)

    1. Состав пс увв

ПСУВВ

Управление данными

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

Блочно–ориент. I/O

Записе- ориен. I/O

FCB доступ

FH доступ

Распред. ВУ между задачами

Подсистема буфери-зации

Драйверы внешних устройств

Рис. 11.1

На рис.11.1 показаны две основных части ПС УВВ: управление данными и управление устройствами.

Подсистема управления данными обеспечивает:

- блочно-ориентированный ввод-вывод для файлов последовательного доступа;

- записе-ориентированный ввод-вывод для файлов прямого доступа.

Система управления устройствами содержит три подсистемы:

Диспетчеризация устройств между задачами.

Подсистема буферизации загрузки и выгрузки данных

Набор драйверов для управления операциями ввода-вывода в конкретных ВУ.

11.2. Основные компоненты процедуры управления ввода-вывода общего вида

  1.  Подготовительная (инициализирующая) часть:

Формирование областей для хранения данных и создание указателей на эти области.

Указания типа и логического номера внешнего устройства.

Задание режима передачи данных и направления передачи.

Этот этап обычно реализует процессор, который осуществляет подготовку.

  1.  Планирование, проверка готовности и запуск устройства.

Выбор канала.

Выбор внешнего устройства.

Замена логических номеров на физические адреса.

Проверка готовности для выполнения операции.

Запуск устройства для работы.

  1.  Выполнение устройством операции ввода-вывода

Для реализации используются драйверы и программы управления данными

  1.  Завершение операции ввода-вывода; следовательно освобождаются занимаемые области памяти и устройства, участвовавшие в операции.

11.3 Состав и реализация устанавливаемого драйвера символьного типа

Возможны четыре варианта использования драйвера:

  1. Непосредственно написание драйвера на уровне битов портов ввода-вывода и включение его в собственную программу; используется в случае редко используемых драйверов и специализированных машин (малоперспективно).

  2. Подключение драйвера в оверлейном режиме (сокращение занимаемой области памяти).

  3. Написание драйвера как резидентного обработчика прерываний. Достоинство: доступен всем программам. Недостаток: как правило, доступен только из ассемблера.

  4. Создание устанавливаемого в операционной системе драйвера, который включается в файл конфигурации config.sys с помощью команды типа device = path\my_driver

Хорош тем, что драйвер полностью поддерживается средствами операционной системы. Соответственно к нему применимы команды операционной системы вида:

copy a:\ my_driver c:\drv

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

Устанавливаемые драйверы бывают двух типов: блочные и символьные.

Первые используют файловую организацию и передачу данных блоками (обычно применяются для работы с дисковыми накопителями). Вторые используют посимвольную передачу данных (она проще) и применимы к любым внешним устройствам.

Символьный драйвер состоит из следующих элементов:

  1. Заголовок драйвера.

  2. Процедура стратегии.

  3. Буфер запроса.

  4. Обработчик прерываний подключает таблицу функций с набором операций, которые могут выполняться данным устройством.

1.  Заголовок драйвера (18 байт)

  1. Адрес следующего драйвера (4 байт).

  2. Атрибуты (2 байт).

  3. Смещение процедуры стратегии (2 байт).

  4. Смещение обработчика прерываний (Обр_прер).

  5. Имя устройства (8 байт).

Заголовок драйвера Буфер запроса

1)Адрес след.драйвера 1)Длина буф. запроса

2)Атрибуты 2)Код ВУ

3)Смещение (3) 3)Код команды Вв/выв

4)Смещ. обр-ка прер. (2) 4)Статус

5)Имя устройства 5)Резерв

Процедура стратегии (4) Данные

(5)

Обработчик прерываний (не найден)

| инициализация

ТаблФ | ввод

| вывод

(6) (7)

ПП инициализации

ПП ввода

(функция выполняемой команды)

ПП вывода

(8)

RET статус завершения

возврат

в прикладную

программу

Источник: https://studfile.net/preview/15919868/