Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров / 9_Процессор-конвейер.doc
Скачиваний:
64
Добавлен:
20.03.2015
Размер:
284.67 Кб
Скачать

8.2. Пересылка данных между регистрами

В ходе выполнения команд данные постоянно пересылаются из одного регистра в другой. За помещение содержимого регистра на шину и загрузку данных с шины в регистр отвечают два сигнала, символически показанных на рис. 8.2. Вход и вы­ход регистра Ri соединяются с шиной через ключи, управляемые сигналами Riin, и Riout. Когда Riin устанавливается в 1, находящиеся на шине данные загружаются в регистр Ri. Аналогичным образом, когда Riout устанавливается в 1, данные из ре­гистра Ri помещаются на шину. Но если Riout = 0, шина может использоваться для пересылки данных других регистров.

Рис. 8.2. Входные и выходные вентили регистров, показанных на рис. 8.1

Предположим, что мы хотим переслать содержимое регистра Rl в регистр R4. Это можно сделать в два этапа:

- активизируем выход регистра Rl, установив R1out в 1, в результате чего содержимое Rl будет помещено на шину процессора;

активизируем вход регистра R4, установив R4in в 1, и данные с шины про­цессора будут загружены в регистр R4.

Все операции по пересылке данных внутри процессора выполняются в тече­ние периодов времени, определяемых тактовым сигналом процессора. Сигналы, управляющие конкретными операциями пересылки, активизируются в начале такта. В нашем примере R1out и R4in устанавливаются в 1. Регистры состоят из триггеров, управляемых фронтом сигнала. Поэтому на следующем активном фронте сигнала триггеры, составляющие регистр R4, загрузят данные, передан­ные на их входы. Одновременно с этим управляющие сигналы R1out и R4in опять будут установлены в 0. Эту простую модель тактирования процесса пересылки данных мы будем применять до конца опбсуждения. Однако возможны и другие схемы пересылки данных, например, с использованием для этой цели обоих фронтов сигнала. Кроме того, в тех случаях, когда в процессоре не задействуются тригге­ры, тактируемые фронтом сигнала, для обеспечения корректной пересылки дан­ных могут быть использованы два или более тактовых сигналов. Такое тактиро­вание называется многофазным.

Схема реализации одного разряда регистра Ri показана на рис. 8.3. Для выбора данных, подаваемых на вход тактируемого фронтом сигнала D-триггера, исполь­зуется двухвходовый мультиплексор. Когда значение сигнала на управляющем входе Riin равно 1, мультиплексор считывает данные шины. Эти данные будут за­гружены в триггер по переднему фронту сигнала. Когда Riin равен 0, мультиплек­сор помещает на шину текущие данные триггера.

Рис. 8.3. Входные и выходные вентили одного разряда регистра

Выход триггера Q. соединяется с шиной через вентиль, имеющий три состоя­ния. Когда Riout равен 0, выход вентиля находится в высокоимпедансном (элек­трически отсоединенном) состоянии, которое соответствует открытому ключу. Когда Riout равен 1, вентиль передает на шину 0 или 1, что зависит от значения Q,

8.3. Выполнение арифметической или логической операции

АЛУ представляет собой комбинационную схему, то есть такую, которая не спо­собна хранить данные. Это устройство выполняет арифметические и логические операции над двумя операндами, поданными на его входы А и В. На рис. 8.1 и 8.2 одним из операндов является выходное значение мультиплексора MUX, а второе считывается непосредственно с шины. Сгенерированный АЛУ результат времен­но запоминается в регистре Z. Последовательность операций по прибавлению со­держимого регистра Rl к содержимому регистра R2 и записи результата в ре­гистр R3 приведена ниже.

1. R1out ,Yin.

2. R2out ,SelectY, Add, Zin.

3. Zout, R3in.

Сигналы очередного шага активизируются на время соответствующего этому шагу такта. Все остальные сигналы в это время не активны. Так, на шаге 1 акти­вны выход регистра Rl и вход регистра Y, поэтому содержимое регистра Rl по шине пересылается в регистр Y. На шаге 2 сигнал на управляющей линии мульти­плексора устанавливается в SelectY, поэтому мультиплексор направляет содержи­мое регистра Y на вход А арифметико-логического устройства. В это же время со­держимое регистра R2 передается на шину и через нее на вход В. Выполняемая АЛУ функция задается сигналами на его управляющих линиях. В данном случае линия Add устанавливается в 1, и в ответ АЛУ генерирует сумму двух чисел на входах А и В. Эта сумма загружается в регистр Z, входной сигнал которого активен. На шаге 3 содержимое регистра Z пересылается в результирующий регистр R3. По­следняя операция пересылки не может быть выполнена на шаге 2, так как на одном тактовом цикле с шиной может быть соединен выход только одного регистра.

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