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


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

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

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

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

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

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

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

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

 

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

6.2 Алгоритм обслуживания ВУ с прерыванием.

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

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

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

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

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

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

Пример:

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

R7 Счетчик Команд
PSW Регистр Состояния Процессора

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

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

 

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

 

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

1. Опрос

2. По вектору

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