Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект ПерУстр Интерф.doc
Скачиваний:
16
Добавлен:
17.04.2019
Размер:
4.43 Mб
Скачать

2 Организация подключения периферийных устройств 9

2.1. Интерфейсы, и их виды.

Выделяют интерфейсы:

1. Аппаратный (устройство-устройство) – совокупность алгоритмов обмена и технических средств, обеспечивающих обмен между устройствами. Примеры: PCI, RS-232, I2C, Ethernet.

2. Программный – соглашение о связях в программной среде между программными модулями. Примеры: Win32, POSIX, API любого программного модуля (интерфейс прикладного программирования – набор функций, предоставляемый для использования в прикладных программах).

3. Пользовательский (ВС – пользователь) – сценарии, по которым строится общение оператора с вычислительной системой, и стиль их реализации. Примеры: стиль организации работы в программном комплексе Microsoft Office.

2.1.1 Способы обмена информацией между устройствами вычислительной системы

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

1. Программно управляемые:

• Синхронный.

• Асинхронный с программной проверкой готовности (программный полинг, «по опросу»).

• Асинхронный с аппаратной проверкой готовности (обмен по прерыванию).

2. В режиме прямого доступа (без участия центральных процессоров).

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

Основные достоинства:

• Потенциально, синхронный обмен – самый быстрый из всех рассматриваемых в данном разделе.

• Синхронный обмен требует минимум аппаратного обеспечения.

Основной минус: синхронный обмен сложно (или вообще невозможно) организовать с асинхронными устройствами (т.е. с устройствами, имеющими разное время выполнения операций и/или множество производимых операций с сильно различающимися временами выполнения).

Асинхронный обмен данными с программной проверкой готовности

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

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

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

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

Рис. 12. Рекомендуемый способ асинхронного

обмена с устройствами

При этом очевидными «минусами» являются:

• Наличие программных усилий по определению готовности. Инструкции по опросу отнимают процессорное время, в течение которого могли бы выполняться другие части алгоритма. Если бы процедура опроса выполнялась параллельно с основным алгоритмом (скажем, аппаратно), то это бы позволило существенно ускорить работу всей программы.

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

Асинхронный обмен данными с аппаратной проверкой готовности. Система прерываний.

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

Прерывания следует рассматривать как естественный процесс, с помощью которого реализуется поддержка большинства необходимых механизмов, таких как виртуальная память, ввод/вывод и т. п. Система прерываний представляет собой комплекс аппаратных и программных средств. Аппаратные средства системы прерываний обычно называются блоком или контроллером прерываний. В ПК это PIC (Programmable Interrupt Controller), т.е. отдельная микросхема. В некоторых случаях контроллер прерываний интегрируется в кристалл микропроцессора. Программные средства систем прерываний представляют собой специальные программы – обработчики прерываний (interrupt handler). Назначение системы прерывания – реагировать на определенные события путем прерывания работы процессора по выполнению программы и переключения процессора на выполнение другой программы, обслуживающей соответствующую ситуацию. В момент возникновения определенного события (причины) формируется сигнал прерывания, который поступает в процессор и инициирует специальную операцию – операцию прерывания, обеспечивающую прерывание одной программы и переключение процессора на выполнение другой программы.