Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzam.docx
Скачиваний:
7
Добавлен:
18.09.2019
Размер:
3.23 Mб
Скачать

19. Введення-виведення по прериванню

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

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

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

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

20.Прямий доступ до пам’яті

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

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

Процессор непосредственно вовлекается в процесс передачи данных; перемещение порции данных между памятью и внешним устройством тpeб.выполнения процессором нескольких команд программы.

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

Недостатки обоих методов особенно сильно проявляются при передаче больших объемов информации. В этом случае гораздо более эффективным явля­ется метод прямого доступа к памяти— DMA (Direct memory access).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]