Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vasya.doc
Скачиваний:
2
Добавлен:
27.11.2019
Размер:
542.21 Кб
Скачать

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

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

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

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

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

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

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

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

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

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

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

Арифметико-логічний пристрій

АЛУ представляет собой компонент процессора, в котором выполняется преобразование информации — арифметические и логические операции над дан­ными (операндами). Все остальные компоненты как процессора, так и вычисли­тельного комплекса в целом предназначены, по сути, только для того, чтобы пе­редать АЛУ нужные операнды и сохранить полученные результаты. Таким обра­зом, мы подступаем в этой главе к сердцу компьютера, ради нормальной работы которого "трудятся" все остальные компоненты.

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

На рис. 8.1 схематично показано, как АЛУ взаимодействует с остальными компонентами процессора. Данные, над которыми выполняются операции, по­ступают из регистров процессора, а результат также направляется в регистры. Эти регистры представляют собой элементы внутренней памяти процессора и связаны с АЛУ линиями передачи сигналов,(см. рис. 2.3). В качестве вторичного результата АЛУ формирует значения набора двоичных флагов (признаков). На­пример, флаг переполнения устанавливается в 1 в том случае, если при выпол­нении арифметической операции получается результат, не умещающийся в раз­рядной сетке того регистра, в который он должен быть помещен. Значения фла­гов также фиксируются в регистрах процессора. Блок управления передает в АЛУ сигналы, управляющие процессом выполнения операции, передачей опе­рандов в АЛУ и считыванием результатов.

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