Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

TSAiU_Lektsia_5

.pdf
Скачиваний:
1
Добавлен:
26.01.2024
Размер:
569 Кб
Скачать

Лекция №5. Обмен данными между ЭВМ и внешними устройствами с прерыванием текущей программы

5.1 Принципы организации обмена данными

Для обмена данными выполняется прерывание текущей программы. Обмен данными может использоваться для любых по быстродействию устройств. Чаще всего используется при работе с низкоскоростными устройствами или когда неизвестно заранее, какие устройства придется обслуживать.

Единственно возможный способ обслуживания в таких ситуациях — прерывание текущей программы и обслуживание ВУ под управлением другой программы. Устраняется основной недостаток обмена данными по готовности — ожидание момента готовности ВУ.

Характерные черты метода:

1.Обмен данными инициируется ВУ.

2.Каждое тип устройств должен иметь уникальную программу обслуживания.

3.Прерывания допускаются только между отдельными командами основной программы.

4.ЦП имеет средства полной блокировки прерывания.

Основная программа.

Оперативные программы.

 

1

 

 

ЗП1

Переход к пп (Если прерывания не блокированы)

От Ву1

2

 

 

 

 

Обслуживание

Обслуживание

 

 

ВУ1

ВУn

 

3

 

 

4 Возврат к основной программе.

Рис. 5.1. Блок-схема взаимодействия процессора и ВУ при обмене

5.2 Алгоритм обслуживания внешнего устройства с прерыванием

ВУ через свой интерфейс посылает ЦП сигнал запроса на прерывание (ЗП). После получения сигнала разрешение прерывания (РП) ЦП выполняет следующие действия:

1.Сохраняет информацию о своем состоянии.

2.Идентифицирует ВУ, от которого поступил запрос на прерывание программы.

3.Переходит на оперативную программу обслуживания и выполняет обмен данными с ВУ.

4.Восстанавливает текущее состояние процессора и возобновляет прерванную программу.

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

Пример:

ВЭВМ семейства Macintosh процессор сохраняет

R7

Счетчик Команд

 

 

PSW

Регистр Состояния Процессора

 

 

1

В ЭВМ семейства IBM PC:

 

 

 

IP

} Счетчик Команд

CS

 

 

 

 

 

 

Flags

Регистр Состояния Процессора Flags

 

 

Второй шаг идентификация ВУ, т.е. ЦП должен определить устройство, которое послало ЗП, и найти для него его программу обслуживания. Идентификация ВУ может выполняться 3 способами:

1.Опрос ВУ

2.По вектору

3.Комбинированный

1.Опрос ВУ.

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

1.Управление возвращается в основную программу без проверки запросов остальных устройств (сплошная линия).

2.Управление возвращается к программе опроса (пунктирная линия).

ВУ

Да

Сброс ЗП

 

Обслуживание ВУ1

 

 

Нет

ВУ

Да

Сброс ЗП

 

Обслуживание ВУ2

 

 

Нет

ВУ

Да Сброс ЗП Обслуживание ВУn

Нет

Возврат в основную программу

Рис. 5.2 Блок-схема идентификации ВУ путем опроса

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

2. Идентификация ВУ по вектору позволяет существенно сократить время на идентификацию устройства за счет аппаратного перехода к прерывающей программе.

2

Когда ВУ посылает сигнал ЗП в центральный процессор, процессор выдает сигнал разрешения прерывания (РП) на шину управления.

ВУ в ответ передает по шине данных код – адрес вектора прерывания (АВП).

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

Пример:

В ЭВМ семейства Macintosh вектор прерывания занимает два машинных слова по 16 разрядов. В первом слове хранится адрес программы обслуживания внешнего устройства, во втором – новое слово состояния процессора, в котором указывается приоритет прерывающей программы.

R7- вектор прерывания

АВП

 

 

 

 

 

 

P4

P2

P1

 

 

 

 

 

 

 

Для векторов прерывания отводится 256 байт ОЗУ, начиная с адреса 0, что позволяет разместить 64 ВП.

В ЭВМ семейства IBM PC под ВП отводится 1024 байта оперативной памяти, что позволяет разместить 256 ВП.

Адреса векторов прерываний ЭВМ семейства IBM PC: 0000:0000h – 0 -й ВП

0000:0004h- -1-й ВП

0000:0008h – 2-й ВП

0000:03FCh – 255-й

ВП

В семейства IBM PC, ВУ передает не АВП, а код номера типа прерывания, номер типа прерывания, равный АВП/4, т.е. число длиной один байт в диапазоне 0…255.

3. Комбинированный способ идентификации ВУ

Несколько ВУ могу иметь один и тот же ВП и № типа прерывания, т.е. обслуживается одной оперативной программой. Идентификация по вектору дополняется программой опроса внутри этих ВУ.

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

Последний шаг – возврат в фоновую программу, требует выборки из стека и загрузки в регистры процессора содержимого СК и РСП.

Ассемблерная команда возврат из прерывания: Mac: RTI, IBM PC: IRET должна завершать любую программу обслуживания прерывания от ВУ.

Время реакции системы на ЗП будет существенно больше времени реакции на запрос по готовности. Время реакции системы на запрос прерывания определяется:

Временем выполнения самой длинной команды основной программы.

3

Временем идентификации ВУ.

Временем я записи в стек регистров процессора.

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

5.3Блок-схема алгоритма обслуживания внешнего устройства с прерыванием

текущей программы

Выполнение команды основной программы

Есть

нет

Выборка

запрос прерывания

 

следующей

?

 

команды

 

да

 

 

 

 

 

 

Предоставление прерывания

 

 

 

 

 

 

 

 

 

 

Сохранение СК и РСП

 

 

 

 

 

 

 

 

 

 

Идентификация ВУ и переход к ПП

Сохранение регистров ЦП.

Передача данных (обработка)

Восстановление регистров ЦП

Восстановление СК и РСП Возврат из прерывания

Рис. 5.3 Блок-схема алгоритма обслуживания ВУ с прерыванием На каждом шаге ЦП проверяет наличие запроса прерывания от ВУ. Если нет ЗП, процессор

выбирает следующую команду выполняет ее.

4

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

Оперативная программа обслуживания ВУ сохраняет внутренние регистры ЦП, выполняет обслуживание ВУ, восстанавливает регистры процессора и, наконец, восстанавливает СчК и РСП. Затем возобновляет работу прерванной программы.

5.4 Механизм приоритетов. Вложенные прерывания

Механизм приоритетов (МП) показывает какие устройства нужно обслужить первыми. МП решает следующие задачи:

1.Фиксирует приоритет любой выполняемой процессором программы.

2.Идентифицирует ЗП от ВУ с максимальным приоритетом.

3.Разрешает прерывание программы при возникновении запроса с приоритетом, большим приоритета выполняемой программы.

Прерывание программы обслуживания прерываний называется вложенным прерыванием.

 

ВУ1

п

 

р

 

и

ВУ2

 

о

 

р

ВУ3

 

и

 

т

еВУ4

т

Осн.

 

 

 

 

 

 

 

 

Прог.

t1

t2

t3

t4

t5

t6

t7

t8

 

Рис. 5.4 Пример работы ЦП в режиме вложенных прерываний

На рис 5.4 показан пример работы ЦП в режиме вложенных прерываний:

До момента t1 нет ЗП от ВУ.

В момент t1 появляется ЗП от ВУ4, процессор переходит к обслуживанию ВУ4.

В момент t2 появляется ЗП от ВУ3. ВУ3 имеет больший приоритет чем ВУ4. процессор переходит к обслуживанию ВУ3.

В момент t3 появляется ЗП от ВУ2, которое имеет больший приоритет чем ВУ3. процессор переходит к обслуживанию ВУ2.

В момент t4 заканчивается обслуживание ВУ2, процессор возвращается к обслуживанию ВУ3.

В момент t5 появляется ЗП от ВУ1, которое имеет самый высокий приоритет. Его обслуживание не прерывается до завершения программы.

В момент t6 заканчивается обслуживание ВУ1, процессор вновь возвращается к обслуживанию ВУ3.

В момент t7 заканчивается обслуживание ВУ3, процессор возвращается к обслуживанию ВУ4.

В момент t8 заканчивается обслуживание ВУ4, процессор возвращается к основной программе.

5

Недостаток: При большой частоте поступления ЗП ЦП работает неэффективно, т.к. много времени расходует на сохранение и восстановление регистров процессора и переход от одной программы к другой.

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

При присвоении приоритетов ВУ учитываются следующие условия:

Чем больше быстродействие устройства, тем выше приоритет ему присваивается.

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

В ЭВМ семейства Macintosh приоритет программы указывается во втором слове ВП.

В ЭВМ семейства IBM PC приоритет программы устанавливается с помощью специальной БИС (большая интегральная схема) – программируемый контроллер прерываний.

6

Соседние файлы в предмете Технические средства автоматизации и управления