
- •Оптическая память
- •Магнитная память
- •Структура компьютера
- •Програмне введення –виведення
- •Команды ввода-вывода
- •Введення виведення по прериванию
- •Прямий доступ до пам’яті
- •Структура центрального процесора
- •Структура процессора станет совершенно понятной, если задуматься над тем какие операции ему предстоит выполнять при обработке машинной команды.
- •Микропроцессорное управление
- •Функции устройства управления
- •Мультипроцессор
- •Кластер
Введення виведення по прериванию
Методика программируемого ввода-вывода приводит к нерациональному расходованию времени процессора, который фактически простаивает, выжидая, пока внешнее устройство завершит начатую операцию. В результате страдает производительность вычислительной системы.
Альтернативная методика предполагает, что процессор, дав команду модулю ввода-вывода на выполнение операции, сам переключается на выполнение какой-либо другой задачи или фрагмента программы. В свою очередь, модуль ввода-вывода, получив от процессора команду, выполняет необходимые операции и, завершив их, формирует сигнал запроса прерывания, который передается процессору и извещает его о том, что выполнение затребованной операции окончено. После этого процессор возвращается к выполнению ранее прерванной программы и, если это предусмотрено в программе, пересылает полученные данные в память.
Рассмотрим, как реализуется эта методика. Начнем с операций, выполняемых модулем ввода-вывода. При вводе данных модуль получает от процессора команду READ. Затем модуль самостоятельно выполняет все действия, необходимые для того, чтобы получить от внешнего устройства очередную порцию данных и записать ее в свой буфер. После этого модуль формирует сигнал запроса прерывания процессора на одной из линий управления системной магистрали и ждет, пока от процессора не поступит команда выставить содержимое регистра на линии данных. Когда такой сигнал поступает, модуль выставляет информацию на линии данных и после этого готов принять следующую команду обмена от процессора.
Участие процессора во всей этой процедуре выглядит следующим образом. Во-первых, процедура начинается по инициативе процессора, который передает модулю команду READ. После этого процессор может перейти к выполнению дальнейших инструкций программы, не связанных с затребованными данными (ответственность за то, что в этих инструкциях не используются данные, которые ожидается получить от внешнего устройства, возлагается на программиста), или вообще переключиться на выполнение другой программы. В конце каждого цикла выполнения инструкции процессор проверяет, не поступил ли сигнал запроса прерывания (от этом шла речь в главе 3). Если окажется, что такой сигнал поступил от модуля ввода-вывода, процессор выполняет операции, сохраняющие текущий контекст выполняемой программы (т.е. состояние счетчика команд и внутренних регистров), и переключается на программу обработки прерывания. Эта программа, в частности, может выполнять считывание данных с модуля ввода-вывода и передачу их в оперативную память. После завершения программы обработки прерывания процессор восстанавливает сохраненный контекст прерванной программы и возобновляет ее выполнение с той же точки, как будто никакого прерывания и не было.
Прямий доступ до пам’яті
Хотя метод ввода-вывода по прерыванию и позволяет более эффективно использовать ресурсы процессора, чем метод программируемого ввода-вывода, все же и в этом варианте роль процессора в перемещении данных между внешним устройством и оперативной памятью весьма существенна. В обоих вариантах все передаваемые данные так или иначе проходят через процессор. Следовательно, можно так сформулировать два "врожденных" недостатка обоих описанных выше методов.
Скорость передачи данных ограничивается скоростью, с которой процесспособен анализировать состояние внешнего устройства и обслуживать его.
Процессор непосредственно вовлекается в процесс передачи данных; перемещение порции данных между памятью и внешним устройством тpeб.выполнения процессором нескольких команд программы.
Существуют определенные аргументы в пользу каждого из двух описанных методов. Рассмотрим процедуру перемещения блока данных. При использовании метода программируемого ввода-вывода процессор полностью переключается на задачу обмена данными и может передавать их с максимальной скоростью, которую допускает внешнее устройство. Но за скорость приходится платить тем, что при этом процессор занимается совершенно тривиальными операциями, в то время как его можно было бы загрузить чем-то более полезным. При использовании метода ввода-вывода по прерыванию процессор избавляется от необходимости выполнять тривиальные операции, но скорость обмена при этом несколько снижается.
Недостатки обоих методов особенно сильно проявляются при передаче больших объемов информации. В этом случае гораздо более эффективным является метод прямого доступа к памяти— DMA (Direct memory access).
Арифметико-логічний пристрій
АЛУ представляет собой компонент процессора, в котором выполняется преобразование информации — арифметические и логические операции над данными (операндами). Все остальные компоненты как процессора, так и вычислительного комплекса в целом предназначены, по сути, только для того, чтобы передать АЛУ нужные операнды и сохранить полученные результаты. Таким образом, мы подступаем в этой главе к сердцу компьютера, ради нормальной работы которого "трудятся" все остальные компоненты.
АЛУ, как впрочем и все остальные компоненты компьютера, представляет собой совокупность простейших электронных логических схем, способных хранить двоичные числа и выполнять над ними элементарные операции булевой алгебры. Те читатели, которые пожелают освежить в памяти основные идеи булевой алгебры и синтеза логических схем, выполняющих операции булевой алгебры, смогут сделать это, обратившись к приложению А в конце книги.
На рис. 8.1 схематично показано, как АЛУ взаимодействует с остальными компонентами процессора. Данные, над которыми выполняются операции, поступают из регистров процессора, а результат также направляется в регистры. Эти регистры представляют собой элементы внутренней памяти процессора и связаны с АЛУ линиями передачи сигналов,(см. рис. 2.3). В качестве вторичного результата АЛУ формирует значения набора двоичных флагов (признаков). Например, флаг переполнения устанавливается в 1 в том случае, если при выполнении арифметической операции получается результат, не умещающийся в разрядной сетке того регистра, в который он должен быть помещен. Значения флагов также фиксируются в регистрах процессора. Блок управления передает в АЛУ сигналы, управляющие процессом выполнения операции, передачей операндов в АЛУ и считыванием результатов.