Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Yedelev_megapack_VT49V / interfejsy-periferijnyx-ustrojstv.pdf
Скачиваний:
53
Добавлен:
15.02.2016
Размер:
2.79 Mб
Скачать

37

лизуются на базе процессора ввода-вывода (ПВВ). ПВВ является подчиненным специализированным процессором, работа которого инициируется посредством ЦП. ПВВ используют в высокопроизводительных ЭВМ(мощных мини-ЭВМ, ЭВМ общего назначения и суперЭВМ).

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

У КВВ принято выделять две основные характеристики:

-номинальную пропускную способностьVКВВ, т.е. число байт данных, которые могут быть переданы посредством КВВ между ПУ и ОП за единицу времени при условии, что никакие другие устройства ВС не мешают выполнению функции КВВ;

-нагрузочную способностьNmax,, т.е. наибольшее число ПУ, которые может обслуживать КВВ, не вызывая потери информации и снижения скорости их работы.

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

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

Контрольные вопросы

1.Что понимается под СВВ ВС, СВВ ЭВМ, СВВ хоста ВС И СВВ хоста ЭВМ?

2.Охарактеризуйте классы задач, решаемых ВС и их требования к средствам СВВ.

3.Охарактеризуйте принципы построения ВС на базе семейства ЭВМ с переменным составом оборудования.

4.Дайте краткую характеристику различным классам ЭВМ.

5.Охарактеризуйте приведенную классификацию периферийных устройств.

6.Перечислите основные функции СВВ хоста ВС.

7.Как реализуются функции СВВ на базе системы с центрально-синхронным принципом управления?

8.Как реализуются функции СВВ на базе системы с асинхронным параллельным выполнением операций обработки и ввода-вывода?

9.Охарактеризуйте средства совмещения операций обработки и ввода-вывода.

10.Дайте определение каналу ввода-вывода? Какими средствами он может быть реализован?

11.Назовите основные характеристики КВВ?

38

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

Более подробные сведения по функциям систем ввода-вывода, об их структурах и каналах ввода-вывода можно найти в [1], [18] и в Интернет, например: http://www.intuit.ru/department/hardware/ibmarcz/6/4.html; http://www.osp.ru/os/1999/01/179638/.

В данном разделе использованы материалы из [1] [12].

39

Глава 2.

Логическая организация системы вводавывода

2.1. Логическая структура СВВ

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

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

ненты СВВ более высокого уровня о возможности или невозможности их выполнения, а также о завершении действий по их выполнению; такое оповещение выполняется посредством информации о состоянии. Объем управляющей информации зависит от специфики устройства, которому передается команда или состояние которого она характеризует, однако

форматы управляющей информации и способы ее передачидолжны быть едиными для всех моделей ЭВМ одного семейства и всех ПУ.

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

С точки зрения программной организации ввода-вывода все ЭВМ можно разделить на три класса:

1)со специальной системой команд КВВ. Эта организация характерна для ЭВМ общего назначения с развитыми ПВВ; инициирование работы ПВВ осуществляется специальными командами ввода-вывода, предусмотренными в системе команд ЦП, а работа ПВВ осуществляется под управлением собственных программ;

2)со специальными командами ввода-вывода в системе команд центрального процессора

(ЦП), однако без дополнительной системы команд КВВ. ся управляющая информация компонентам СВВ передается посредством этих команд. Такую организацию имеют некоторые мини-, микро-ЭВМ и PC-совместимые персональные ЭВМ(персональные компьютеры (ПК), выполненные на базе процессоров фирмы Intel: i80х86, Pentium и т.д., а также на совместимых с ними процессорах других фирм).

3)без специальных команд ввода-вывода в системе команд машины. Необходимая управля-

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

40

Всовременных PC-совместимый ПК может одновременно поддерживаться ввод-вывод командами второго и третьего класса.

Вкачестве примеров рассмотрим логическую организацию СВВ ЭВМ общего назначения (ЕС ЭВМ), мини- и микро ЭВМ (типа СМ ЭВМ) и особенности организации ввода-вывода в ПК (PCсовместимые ПК).

2.2. Логическая организация систем ввода-вывода ЭВМ общего назначения

2.2.1. Элементы иерархии СВВ ЭВМ общего назначения

В ЭВМ общего назначения с раздельными интерфейсами памяти и ввода-вывода(см. рис. 3.1) можно выделить следующие уровни иерархии в СВВ: ПВВ - контроллер - ПУ. Вся необходимая для организации обмена информация делится на две части: не зависящая от специфики ПУ, которая служит для инициирования операции ввода-вывода и управления передачей данных в память; зависящая от специфики ПУ, которая используется для непосредственного управления действиями в ПУ.

2.2.2. Иерархия команд

В системе команд ЦП предусматривается, по крайней мере, одна специальная команда для инициирования обмена. Эта команда служит для передачи ПВВ управления и содержит код операции инициирования и адрес месторасположения программы ПВВ в ОП; она содержит также адрес ПУ, который определяет «маршрут» передачи данных и строится по иерархическому принципу, т.е. состоит из номера ПВВ, номера контроллера и номера ПУ.

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

В системе команд ПВВ предусматривается множество операций, отражающих действия, выполняемые в ПУ, и их специфику. Однако формат этих команд должен быть унифицированным, что позволит подключать новые ПУ путем введения дополнительных программ ПВВ. При программной организации КВВ можно рассматривать как своеобразную подпрограмму, вход в которую осуществляется по команде инициирования ввода-вывода. При этом следует иметь ввиду, что ЦП должен«перестроиться» на систему команд ПВВ. Каждая команда ПВВ, или управляющее слово(УС), в общем случае содержит код операции и описание области ОП(например, начальный адрес и длину области). Код операции в УС определяет направление передачи, вид передаваемой информации и служит основой для формирования приказа для ПУ, определяющего конкретные действия в нем.

Таким образом, можно выделить три уровня управляющей информации: команды иницииро-

вания ввода-вывода для ЦП, управляющие слова ПВВ, приказы ПУ. Для нормального функци-

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

41

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

2.2.3. Совокупное состояние СВВ

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

Упрощенная схема взаимодействия компонентов СВВ с помощью команд ЦП, управляющих слов ПВВ, приказов ПУ, байтов и слов состояния сводится к следующему. ЦП в процессе выполнения обработки обнаруживает команду инициирования ввода-вывода и передает ее в соответствующий ПВВ. Если данный ПВВ способен ее принять, то команда ввода-вывода помещается в нем в регистр команд(РгК). При невозможности принять команду ПВВ формирует слово состояния с указанием причины, по которой команда отвергнута. Это слово состояния передается в ЦП.

Содержимое принятой команды используется для запроса первого УС программы ПВВ, и если она содержит адрес ПУ, то и для запроса состояния контроллера и .ПУАдрес УС передается на адресную шину ОП, и в ответ по информационной шине ПВВ получает первое УС программы, которое размещается в регистре управляющего слова(РгУС) в блоке центрального управления. Адрес ПУ передается в блок управления интерфейсом(БУИ) для

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

Код операции УС в ПВВ используется для формирования приказа, передаваемого в ПУ через интерфейс ввода-вывода (ИВВ хоста). Обычно УС позволяет управлять передачей блока данных, поэтому оно содержит описание области ОП, где находится этот блок при выводе или где он должен быть размещен при вводе. Такое описание может быть выполнено тремя способами: указанием начального и конечного адресов, начального адреса области и ее длины (определяется содержимым поля счетчика данных СчД), или конечного адреса и длины. Любой из этих способов позволяет вычислить текущий адрес ячейки ОП, в которую заносится очередное слово данных, полученное из ПУ при вводе, или из которой выбирается слово для передачи в ПУ при выводе. Кроме того, можно вычислить текущую длину подлежащего передаче блока. Для вычисления очередного адреса данных при обработке каждого слова данных в ПВВ (приема и передачи) текущий адрес увеличивается на единицу,

одновременно

уменьшается на

единицу

содержимое счетчика

данных(СчД). При

достижении

нуля в СчД операция под управлением первого

УС

завершается. Для

продолжения обмена с

данным ПУ необходимо выбрать следующее; дляУСэтого

увеличивают

содержимое

регистра

адреса

УС(РгАУС), функции которого

аналогичны

функциям регистра адреса в ЦП.

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

42

понентов СВВ изменяется. ПВВ формирует слово конечного состояния и запрос прерывания ЦП. Слово конечного состояния, принятое ЦП в результате обработки прерывания, информирует его об условии завершения операции обмена (успешно или неуспешно).

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

Необходимость в написании программ ПВВ возникает только при включении в состав ВС новых ПУ. Компоненты ОС, обеспечивающие координацию действий при вводе-выводе, называют программным обеспечением ввода-вывода, в состав которого входят программы (методы) доступа (ПД), супервизор (или монитор ПМ) и ряд других программных модулей. Взаимодействие программных модулей ОС осуществляется посредством макрокоманд(рис. 2.1). При составлении прикладных программ программист описывает все используемые файлы и форматы вводимых и выводимых данных. Эти описания в процессе ассемблирования преобразуются в блоки параметров для последующей«настройки» программ ПВВ.

Программы пользователя непосредственно не содержат команд инициирования -ввода вывода, так как к одному ПВВ или ПУ может быть очередь запросов от разных программ пользователей (ПП). Кроме того, к моменту выдачи команды инициирования ввода-вывода должна быть закончена настройка программы ПВВ на данную операцию. Поэтому, чтобы инициировать ввод-вывод, ПП содержит макрокоманду(МК1) обращения к системной программе ПД.

Рис. 2.1 Взаимодействие программных модулей ОС.

Макрокоманда МК1 передает программеПД параметры, необходимые для настройки программы ПВВ на данную операцию. После завершения настройки управление посредством макрокоманды МК2 передается ПМ. Монитор ПМ ставит запрос в очередь, выбирает очередной запрос на обработку в ПВВ и выдает команду (К) инициирования вводавывода, обрабатывает прерывание, а также выполняет ряд дополнительных действий по обработке информации, полученной в слове состояния. После постановки запроса в очередь ПМ возвращает управление программеПД, а она в свою очередь - программе ПП. После выдачи монитором команды инициирования ввода-вывода в ПВВ и подтверждения(словом состояния - СС) о ее принятии к исполнению, ПМ возвращает управление ПП. Программы

43

ПП, ПД и ПМ реализуются средствами ЦП. Параллельная работа ЦП и ПВВ реализуется только после подтверждения от ПВВ о принятии к исполнению команды инициирования ввода-вывода.

2. 3. Логическая организация СВВ в мини- микро-ЭВМ и ПК

2.3.1. Особенности организации СВВ мини- микро-ЭВМ и ПК.

В мини- микро-ЭВМ и ПК у которых ввод-вывод организуется на базе интерфейса вводавывода системного уровня (см. рис. 3.2 и 3.3) встречается программная организация вводавывода как со специальными командами ввода-вывода(изолированный ввод-вывод), так и без них (ввод-вывод, отображенный на память). В СВВ со специальными командами вводавывода вся управляющая информация посредством этих команд передается компонентам, участвующим в операции ввода-вывода. Управляющая информация включает в себя в общем случае адрес ПУ, адрес контроллера ПУ, адреса порта ввода-вывода адаптера, через который подключается контроллер ПУ или ПУ к шинам ИВВ системного уровня, адрес текущей ячейки ОП или описание области ОП, приказ ПУ, режим и направление обмена и т.д. При наличии специальных команд ввода-вывода в интерфейсе ввода-вывода хоста обязательно предусматриваются специальные линии, сигналы на которых формируются в результате

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

При организации СВВ без специальных команд ввода-вывода в системе команд каждое ПУ для СВВ представляет собой совокупность адресуемых регистров, закрепленных за ПУ. Адреса этих регистров и ячеек ОП образуют общее адресное пространство, что позволяет для обращения к регистрам использовать команды пересылок в память. Коды операции в командах обращения к ПУ и ОП одинаковы; команды, таким образом, отличаются только содержимым полей адреса. Совокупность адресов регистров ПУ образуют область адресов ПУ в адресном пространстве, а совокупность адресов ячеек ОПобласть адресов памяти. Эти области не пересекаются. Каждому ПУ отводится не менее двух регистров, но для сложных ПУ их может быть больше. Регистр с наименьшим адресом А0 обычно используют в качестве регистра команд(приказов) и состояния (РгКС); адрес А0 этого регистра приписывается ПУ в качестве его номера. Адрес следующего регистра А1 определяется путем добавления единицы: А1=А0+1 (при двухбайтовом РгКС 1А= А0+2). Регистр со старшим адресом используют в качестве регистра данных(РгД). Остальные регистры являются управляющими.

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

44

При выполнении операции ввода-вывода необходимо строго соблюдать последовательность загрузки регистров управляющей информацией и данными, также обрабатывать информацию о состоянии устройства. Очевидно, что последовательность загрузки регистров, характер управляющей информации и информации о состоянии ПУ, а также алгоритмы ее обработки зависят от специфики ПУ. В связи с этим непосредственное программирование операций ввода-вывода в рамках прикладных программ вызвало бы значительные трудности , поэтому операционные системы мини-ЭВМ, ПК и большинства микро-ЭВМ позволяют заменить непосредственное программирование обращением к специальным управляющим программам. Этим достигается независимость программирования задач пользователя от специфики ПУ. Непосредственное управление ПУ осуществляется с помощьюпрограммы-

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

(рис. 2.2).

Программа пользователя (ПП) обычно использует логические именаПУ. Соответствие логических и физических имен устанавливается системной таблицей (СТ), которая создается при генерации системы или автоматически при регистрации задачи пользователя. Для настройки драйвера ПУ на конкретную операцию в процессе ассемблирования для каждого файла создается блок управления данными(БУД); основой для его создания служат параметры операторов работы с файлами. При необходимости осуществить операцию вводавывода ПП обращается к программе-монитору(ПМ), который анализирует возможность выполнения этой операции, т.е. проверяет наличие соответствующего БУД, и ставит запрос в очередь. Помимо этого ПМ выполняет функции защиты файлов при мультипрограммном режиме, защиты доступа к ПУ и ряд других. БУД, СТ и ПМ образуют логический уровень управления вводом-выводом.

Рис. 2.2 Логическая организация СВВ мини- и микро-ЭВМ.

Непосредственная связь программ с ПУ осуществляется через драйверы, на которые возлагают следующие функции:

-определение параметров, т.е. определение адресов регистров и векторов прерываний ПУ

вадресном пространстве, назначение отдельных битов в РКС и т.п.;

-инициирование ввода-вывода, при котором проверяется готовность контроллера и ПУ,

45

формируется управляющая информация для ,ПУопределяются действия при обнаружении ошибок; после инициирования ввода-вывода драйвер возвращает управление ПМ;

-обработка прерываний, в процессе которой выявляются причины прерывания, определяется состояние ПУ;

-обработка ошибок, в результате которой определяется целесообразность повторения попытки выполнить операцию;

-завершение операции, при котором драйвер передает управление ПМ с указанием на успешное или неуспешное окончание операции.

2.3.2. Способы организации обмена в мини-, микро-ЭВМ и ПК

В мини-, микро-ЭВМ и в ПК используется три способа организации обмена: программный несовмещенный ввод-вывод, программный ввод-вывод с прерыванием программы, ввод-вывод через канал прямого доступа к памяти.

Программный несовмещенный ввод-вывод. Он характеризуется тем, что обращение к ПУ осуществляется только в моменты времени, определяемые программой ЦП. Часто все действия по управлению обменом реализуются командами прикладной программы(ПП) (рис.

2.3). Синхронизация ЦП и ПУ достигается организацией программного ожидания момента готовности ПУ. С этой целью вРгКС один из разрядов указывает на готовность или занятость ПУ. Участок, обведенный штриховой линией, содержится непосредственно в ПП либо выделяется в простейший драйвер, к которому обращается и от которого вновь получает управление ПП. Команда обращения к РгКС позволяет получить и затем проанализировать состояние ПУ. Если ПУ не готово, то организуется ожидание путем повторения команды чтения РгКС. Если содержимое РгКС свидетельствует о готовности ПУ, то производится чтение содержимого РгД и одновременно сбрасывается признак готовности вРгКС. Затем осуществляется возврат управления ПП. Установку признака готовности в РгКС производит ПУ. Этим достигается синхронизация ПУ и ЦП.

Операция вывода реализуется аналогичновначале анализируется готовность ПУ принять данные (по значению признака вРгКС), а затем по команде записи данные передаются в РгД; одновременно с записью данных вРгД производится сброс признака готовности в РгКС. Признак готовности вновь устанавливается ПУ, как только оно будет готово принять очередной квант данных.

Программный ввод-вывод с прерываниями программыПрограммный ввод-вывод с прерываниями программы является основным способом организации ввода-вывода в мини-, микро-ЭВМ и ПК для ПУ малого и среднего быстродействия. Для синхронизации процессов в ЦП и ПУ используется механизм прерываний, управление передачами данных и управляющей информации для ПУ осуществляется программно. Данные передаются между регистрами ПУ и ЦП; пересылку данных в ОП осуществляет ЦП по адресу, который он определил при выполнении программы драйвера. После выполнения каждой команды в ЦП (рис. 2.4) производится анализ запроса прерываний, а при его наличии проверяетсяразрешено ли данное прерывание. При наличии разрешенного прерывания ЦП инициирует его обслуживание.

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

46

Рис. 2.3. Алгоритм несовмещенного

Рис. 2.4. Алгоритм выполнения команды процессорм,

ввода-вывода

поддерживающим ввод-вывод с прерыванием

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

Как уже упоминалось в разделе 1.5.2, существует несколько способов определения, от какого ПУ поступил запрос на прерывание; эти способы сводятся к различным вариантам аппаратного и программного опроса ПУ. В результате такого опроса программе обработки прерываний становится доступным адрес ПУ, по которому вычисляется начальный адрес программы-драйвера; ей и передается управление. С этой целью в большинстве микро-ЭВМ и ПК для каждого ПУ в основной памяти предусматривается по две ячейки, хранящие векторы прерываний. Совокупность этих ячеек для всех ПУ образует область векторов. Вектор прерывания однозначно определяется адресом ПУ. В его ячейках хранится адрес перехода к программе-драйверу для обслуживания данного ,ПУа иногда информация о

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

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

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

47

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

В персональных компьютерах типаIBM PC скорость стандартного канала ПДП(DMA – Direct Memory Access) ограничена значением 2 или 4 мегабайта в секунду в зависимости от разрядности канала. Производительность в режиме прямого управления шиной (busmasterig)

обычно выше, чем у стандартных каналов ПДП(DMA). Прогрессивные режимы DMA обеспечивают более высокие скорости обмена.

2.3.3. Контроллеры (адаптеры) ввода-вывода

В реальных ЭВМ подключение ПУ к интерфейсу системного уровня(интерфейс вводавывода хоста (ИВВ хоста)) осуществляется не непосредственно, а с помощью специального контроллера, как показано на рис.2.2. В терминологии универсальных машин третьего поколения и первых мини-ЭВМ такие контроллеры назывались контроллерами периферийных устройств (КПУ), в терминологии микро-ЭВМ первых поколений они назывались контроллерами ввода-вывода. Такой контроллер ввода-вывода осуществляет функции преобразования последовательности сигналов ИВВ хоста в последовательности сигналов малого, или периферийного ИВВ (то есть выполняет функции адаптера) и за счет стандартизации этих интерфейсов позволяет использовать одни и те же ПУ в различных моделях микро-ЭВМ и ПК. Необходимые регистры ПУ физически располагаются в таких контроллерах. При подключении к одному контроллеру нескольких ПУ обслуживание производится поочередно, и на контроллер возлагаются дополнительные функции по мультиплексированию. В современной терминологии такой контроллер можно назвать адаптером (адаптером

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

На рис. 2.5 приведена структурная схема простого контроллера ввода-вывода (адаптера), где регистр команды (РгК) служит для приема по шине данных ИВВ хоста управляющей информации для ПУ; регистр состояния РгС - для получения информации о состоянии ПУ и передачи ее в ЦП через шину данных ИВВ хоста; селектор адреса (СА) - для выбора адресуемого регистра. Адресуемым регистрам присваиваются последовательные адреса из области адресов ПУ, поэтому адрес любого регистра представляется в виде базового адреса контроллера (старшие разряды адреса) и смещения (младшие разряды).

Физически базовый адрес в контроллере может устанавливаться с помощью перемычек. При передаче адреса по системному интерфейсу(ИВВ хоста) в каждом контроллере сравниваются старшие разряды передаваемого адреса с собственным базовым адресом. Совпадение адресов означает, что обращение производится к данному контроллеру. Для приема и передачи данных через ИВВ хоста служат регистры вводаРгД(Вв) и выводаРгД(Выв). В состав схем контроллера входят также усилители приемники (ПРМ) и передатчики (ПРД).

48

Рис. 2.5 Структурная схема простого контроллера ввода-вывода

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

формирует сигнал запроса прямого доступа также на основании изменения содержимого определенных разрядов регистра состоянияРгС, а сигнал подтверждения ПДП использует вместо сигнала селектора адреса.

В случае если контроллер предназначен для организации обмена в режиме прямого доступа в память, (например, для микро-ЭВМ «Электроника - 60», или контроллер с функциями busmastering для IBM PC/AT) его структура значительно усложняется (рис. 2.6). При этом в его состав входит несколько регистров управления, частности регистры команд(РгК), состояния ПУ (РгС), счета слов или длины блока(СчД), текущего адреса ОП(РгА), управления поиском (в случае НМД).

Рис. 2.6. Контроллер ввода-вывода, поддерживающий и реализующий режим ПДП.

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

49

адресном пространстве ввода-вывода, поэтому каждому контроллеру соответствует последовательность адресов, число которых, как правило, равно числу адресуемых регистров в нем. Блок управления контроллера выполняет функции управления загрузкой регистров в начале операции, контролирует состояние ПУ и управляет завершением операции. Управление выработкой текущих адресов и управляющих сигналов возложено на блок управления ПДП. Помимо перечисленных функций, выполняемых любым контроллером, контроллер прямого доступа в память формирует сигналы управления на шине ИВВ хоста при передаче данных между ПУ и ОП.

ВПК, микро-ЭВМ и микропроцессорных системах адресуемые регистры данных, команд и состояния с необходимыми схемами управления называютпортами. Соответственно разли-

чают порты ввода (РгДВв), вывода (РгДВыв), управления (РгУ) и состояния (РгС). Часто эти регистры объединяли в одной микросхеме, на которую возлагали также функции параллель- но-последовательного преобразования. Такие схемы получили название универсальных асин-

хронных (или синхронных) приемопередатчиков УАПП (УСПП).

ВУАПП (рис. 2.7) принимаемые по шине ИВВ хоста данные черезРгД (Выв) заносятся в регистр сдвига РгСдв, в котором параллельный код преобразуется в последовательный. Это преобразование осуществляется посредством сигналов от генератораГСИ1, запускаемого после загрузки РгСдв и останавливаемого по завершении преобразования. При асинхронной передаче код передаваемого в последовательную линию символа обрамляется стартовыми и стоповыми разрядами, служащими для запуска и останова генератора синхроимпульсов приемника. Генератор ГСИ2 обеспечивает синхронизацию приема последовательного кода из линии. С помощью РгСдв этот код преобразуется в параллельный и передается вРгД(Вв), при этом устраняются разряды обрамления. Координация действий в УАПП и ЦП по обмену символами осуществляется посредством прерываний с использованиемРгК и РгС, как описано выше. Регистр РгК позволяет программно задавать скорость переда, число стоповых бит (1 или 2), способ контроля.

Рис. 2.7 Структурная схема УАПП.

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

50

Некоторые микропроцессорные комплекты включали в себя комбинированные синхронноасинхронные приемопередатчики (УСАПП).

2.4. Особенности организации ввода-вывода в ПК

2.4.1. Общие замечания по организации ввода-вывода в современных ПК

СВВ современных PC-совместимых персональных компьютеров является достаточно сложной и многоуровневой системой. Это связано как с постоянно растущими требованиями обеспечения высокой производительности обмена между основной памятью ПК и устройствами СВВ и внешнего мира, так и с требованиями обеспечения совместимости с СВВ ПК предыдущих поколений. В ПК для изоляции операционной системы и прикладных программ от специфических особенностей конкретной аппаратуры СВВ используется программноинформациоонные средства базовой системы ввода-вывода(BIOS). BIOS размещается в микросхемах энергонезависимой памяти, расположенных на системной плате. На картах (устройствах) расширения могут находиться дополнительные модулиBIOS, поддерживающие функционирование этих устройств.

2.4.2. Взаимодействие программ с периферийными устройствами

Аппаратура СВВ ПК может подключаться к интерфейсам системного уровня(ИВВ хоста) и к периферийным или малым ИВВ.

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

-интерфейс обеспечивает транзакции(групповые операции) обращения к пространствам памяти и ввода-вывода;

-в транзакциях фигурируют физические адреса пространств памяти и ввода-вывода;

-адресные пространства памяти и ввода-вывода являются«плоскими» - адрес выражается одним числом в диапазоне, определенном принятой разрядностью адресации, то есть любой адрес может принадлежать регистру(ячейке памяти) только одного устройства (или системной (основной) памяти, включающей ОЗУ и энергонезависимую память);

-транзакции могут инициироваться как центральным процессором(процессорами), так и активными устройствами (мастерами шины интерфейса);

-все адресуемые элементы безусловно доступны центральному процессору; на адресуемость элементов со стороны мастеров шин могут накладываться специфические ограничения;

-устройства, подключенные к ИВВ хоста, могут посылать процессору(процессорам)

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

Взаимодействие программ с устройствами, подключенными к ИВВ хоста, возможно следующими способами:

-через регистры устройств(порты), отображенные на пространства памяти или вводавывода;

51

-через области адресов памяти, принадлежащей устройству (физически расположенной на контроллере или адаптере устройства);

-через регистры конфигурационного пространства;

-через области системного ОЗУ, доступные активным устройствам-мастерам шины(обмен с использованием ПДП (DMA));

-через аппаратные прерывания, инициируемые устройствами по доступным им линиям запросов прерывания или через специальные сообщенияпрерывания (MSI - Message Signaled Interrupts).

Современные устройства СВВ ПК для размещения своих регистров(портов) в основном используют пространство памяти, поскольку оно достаточно велико и спецификации некоторых ИВВ хоста позволяют перемещать занимаемые области в любую часть -прос транства. Пространство ввода-вывода используется реже: оно имеет незначительные размеры, к тому же «перегорожено» регистрами традиционных устройств и их псевдонимами, порожденными неполным использованием шины адреса в ИВВ хостаISA (Industry Standard Architecture).

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

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

Как у мини- и микро-ЭВМ, у ПК имеются три способа взаимодействия программ, выполняемых центральным процессором (хост-программ), с периферийными устройствами: программный обмен; прямой доступ к памяти; прерывания.

В компьютерных системах «синтеллектуальной» системой ввода-вывода (Intelligent Input/Output, I2O), как и у ЭВМ общего назначения, помимо центрального процессора имеет-

ся процессор ввода-вывода (Input/Output Processor, IOP). Этот процессор обычно имеет сокращенную систему команд, ориентированную на задачи управления вводом-выводом. В круг этих задач входит пересылка блоков данных, подсчет четности, преобразование форматов данных. Процессор ввода-вывода может работать как в общем адресном пространстве, так и иметь свое обособленное адресное пространство для управляемой подсистемы вводавывода. Взаимодействие процессора ввода-вывода со своими устройствами ведется теми же тремя основными способами, что были описаны ранее.

В рядовых ПК обычно ограничиваютсяпрямым управлением шиной (bus mastering), которое позволяет контроллерам ПУ (или хост-адаптерам периферийных ИВВ) самим обращаться к системным ресурсам, выполняя необходимые обмены данными и управляющей информацией. Для этого контроллер ПУ(или контроллер хост-адаптера) должен временно взять на себя роль инициатора транзакций в среде передачи ИВВ хоста, связывающего его с центром (главным образом, с памятью). Поскольку традиционно этот ИВВ хоста является шинным (магистральным), такой активный контроллер называют мастером шины (bus master), даже если он подключается к двухточечному ИВВ хоста. Чаще всего прямое управление шиной ИВВ требуется для прямого доступа к ОЗУ. Прямое управление шиной может использоваться и для передачи сообщений сигнализации прерываний(MSI). В новых версиях ИВВ хоста ПК появилась возможностьоднорангового взаимодействия устройств(без участия процессора) - обмена сообщениями. При этом в адресации сообщений не фигурируют адреса пространства памяти или ввода-вывода- сообщения адресуются поидентификатору

52

устройства (Device Identified Messages, DIM).

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

Физический адрес ячейки памяти или порта ввода-вывода- это адрес, формируемый на интерфейсах коммуникационной среды хоста для обращения к данной ячейке или порту (регистру). Логический адрес - это тот адрес, который формируется исполняемой программой (по замыслу программиста) для доступа к требуемой ячейке или порту. Логический адрес в процессорах 86х состоит из двух компонентов: селектора сегмента и смещения внутри сегмента; из этих компонентов формируетсялинейный адрес - целое беззнаковое число. В большинстве современных ОС используется плоская модель памяти, в которой все доступные сегменты отображены на одно и то же адресное пространство. При этом программа не оперирует селекторами; программист адресует структуры данных в памяти полиней- ным адресам (для современных процессоров и приложений- 32-разрядным). Физический адрес формируется из логического с помощью блока страничной переадресации; трансляция адресов выполняется на страничном базисе, популярный размер страницы - 4 Кбайт. Благодаря страничной переадресации реализуется виртуальная память с подкачкой страниц. Переадресация выполняется на основе таблиц, формируемых в памяти операционной системой.

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

Физическая операция ввода-вывода или обращения к памяти - это процесс (шинный цикл), во время которого генерируются электрические сигналы на линиях интерфейсов, обеспечивающих доступ к данной ячейке(порту). Логическая операция - это исполнение программной инструкции (команды) обращения к интересующей ячейке или порту. Логическая операция не всегда порождает ожидаемую физическую операцию: при определенных условиях она может блокироваться средствами защиты процессора, вызывая даже принудительное завершение программы, или же эмулироваться, создавая иллюзию физического исполнения.

2.4.3. Системный модуль ROM BIOS

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

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

POST;

-настройка и конфигурирование аппаратных средств и системных ресурсовмодуль BIOS Setup;

-автоматическое распределение системных ресурсовмодуль PnP BIOS;

-идентификация и конфигурирование устройствPCI - модуль PCI BIOS;

-начальная загрузка (первый этап загрузки операционной системы) - модуль Bootstrap Loader;

-обслуживание аппаратных прерываний от системных устройств(таймера, клавиатуры,

дисков) - модули BIOS Hardware Interrupts;