Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
микры и вмсс вместе.doc
Скачиваний:
36
Добавлен:
19.03.2015
Размер:
4.68 Mб
Скачать

15. Виды обмена с внешними устройствами.

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

Команды ввода-вывода носят общее название: 'команды обмена'. В ЭВМ используются 4 способа обмена:

- синхронный обмен;

- асинхронный обмен;

- программный обмен;

- обмен по прерыванию;

- обмен по каналу прямого доступа к памяти.

Синхронный обмен

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

Асинхронный обмен

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

Программный обмен

Происходит по командам процессоров. При выполнении команд пересылки (MOV) формируется т.н. шинный цикл, в кот. в определенной последовательности выставляется адрес доступа, данные и формир необходимые сигналы управления. Запись в память – выставл адрес доступа, затем слово данных, далее формируется сигнал управления. Чтение: выставл адрес доступа, затем память должна выставить слово данных, затем формируется сигнал чтения. При прогр обмене возникает вопрос согласования по быстрод процессора и более медлен устр памяти. Для этого использ асинхр прогр обмен.

ОБМЕН ПО ПРЕРЫВАНИЮ

Этот вид обмена характерен тем, что процессор не обращается к терминалу до тех пор, пока тот сам не запросит об обмене сигналом INT - запрос прерывания. (От 'interrupt' - прерывание). Например, принтер, как только он отпечатает очередной символ, он сам выдает новый запрос INT для вывода следующего символа. Поэтому процессор не ждет когда принтер освободится, а все время выполняет свою основную программу. В системе команд процессора есть две специальные команды 'Разрешение прерывания' и 'Запрещение прерывания'. Для организации обмена по прерыванию процессор имеет специальный вход INTR. При поступлении сигнала запроса прерывания на этот вход (если прерывания разрешены) процессор делает следующее:

1. Доделывает до конца очередную операцию;

2. Заносит в стек адрес следующей команды для обеспечения возврата;

3. Организует переход к началу прерывающей программы.

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

Режим поддерживается аппаратно.

Преимущества обмена по прерыванию:

Процессор не тратит времени на ожидание занятого терминала, а все время работает.

Организация прерывающей программы

Прерывающая программа должна быть заранее написана программистом. Казалось бы эта процедура должна содержать только две команды OUT и RET. На самом деле надо:

1. Запомнить содержимое Ак и рег.Ф в стеке, чтобы их потом восстановить.

2. Прочитать очередную ячейку ОЗУ (очередное выводимое слово).

3. Выполнить команду Вывод на терминал (Ввод с терминала).

4. Сделать переадресацию выводимого слова.

5. Проверить окончание цикла и запретить прерывание, если цикл окончен.

6. Восстановить содержимое Ак и рег.Ф из стека.

7. Возврат.

В основной программе, перед началом обмена надо:

1. Сформировать массив для вывода.

2. Разрешить прерывание.

Аппаратные прерывания

Если бы ПК имел только одно устройство вызывающее прерывание, то все делалось бы, как описано выше.

Всего в IBM PC предусмотрено 15 прерываний от внешних устройств: IRQ-0, IRQ-1... IRQ-15. Из них используется 10, остальные - резерв.

Чтобы разрешить или запретить аппаратные прерывания, надо заслать '1' или '0' в 9-й разряд регистра флагов командами:

STI - разрешение прер.(IF=1)

CLI - запрещение прер.(IF=0)

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

На контроллер прерываний процессора поступ № линии запроса на прер-е (0-15). В конечном итоге № линии запроса обеспечит обращение к соответств элементу таблицы прерываний, из кот затем извлекается вектор прерывания (адрес проц-ры его обслуживания) и по вектору прерывания передается его управление. Затем командой IRET происх возврат к программе.

Режим ПДП-метод обмена данными между памятью и переферийным уст-вом без учитывания процессора. МП инициализирует контроллер ПДП, при этом задается 1. начальный адрес памяти, 2. счетчик и режим обмена.