Взаимодействие основных узлов и устройств персонального компьютера при автоматическом выполнении команды. Архитектура 32-разрядного микропроцессора
Взаимодействие основных узлов и устройств персонального компьютера при автоматическом выполнении команды
Основные этапы автоматического выполнения программы в компьютере с классической трехадресной архитектурой были рассмотрены в лекции 3. В этой лекции рассмотрим особенности этого процесса на примере функционирования персонального компьютера, использующего 16 разрядный микропроцессор типа I8086.
Структура такого компьютера приведена на рис. 10.1. В составе ЭВМ кроме традиционных устройств компьютера с классической архитектурой (оперативное запоминающее устройство, арифметико-логическое устройство и основные схемы устройства управления) выделим следующие блоки:
- регистровая память ;
- блок формирования адреса операнда (БФАО);
- двадцатиразрядные сумматоры для получения физических адресов данных ( ФАД) и физических адресов команд ( ФАК).
На входы регистровой памяти из БФАО поступают номера регистров, к которым проводится обращение. На входы выбираемых регистров поступают из АЛУ результаты выполнения операции и значения сегментных регистров, устанавливаемых операционной системой ЭВМ. В регистрах хранятся составляющие эффективных адресов данных, исходные и промежуточные данные, участвующие в выполнении операции, старшие 16 разрядов базовых адресов сегментов.
На блок формирования адреса операнда поступают:
- сигналы от тактового генератора микропроцессора;
- коды полей второго байта выполняемой команды, находящейся в РК; эти коды определяют режимы адресации первого (поля md и r/m ) и второго (поле reg ) операндов;
- коды двух младших разрядов первого байта команды ( d и w ), которые определяют, соответственно, операнд, на место которого записывается результат операции, и разрядность операндов.
БФАО вырабатывает следующие выходные сигналы:
- коды номера выбираемых регистров;
- сигналы считывания кодов с выбранных регистров;
- сигналы считывания смещений ( disp L и disp H );
- сигналы считывания непосредственных операндов ( data L и data H ).
Сумматоры физических адресов используются для получения адреса обращения к оперативной памяти с учетом ее сегментной организации. Одним из слагаемых выступает начальный адрес сегмента, который формируется путем умножения на 16 значения соответствующего сегментного регистра. Второе слагаемое - это смещение относительно начала сегмента. Для сегмента кода таким смещением является значение указателя команд IP, а для сегмента данных - сформированный блоком формирования адреса операнда эффективный адрес.
Суть этапов выполнения команды остается без изменения по сравнению с классической ЭВМ:
- первый - выбор кода команды;
- второй и третий - выбор операндов;
- четвертый - выполнение операции в АЛУ;
- пятый - запись результата в оперативную или регистровую память ;
- шестой - формирование адреса следующей выполняемой команды.
Но содержание этих этапов изменилось.
Рассмотрим выполнение вышеуказанных этапов на примере следующей команды:
ADD AL,[BX+disp8]
Допустим, что ее первый байт находится в ячейке ОЗУ с адресом i + 24*[CS], то есть [IP] = i.
Первый этап. Код IP, то есть [IP] = i, передаётся на сумматор ФАК. На этот же сумматор поступает код сегментного регистра команд [CS] из РП, умноженный на 16. На выходе ФАК сформируется код физического адреса ОЗУ, по которому находится первый байт команды. Код с выхода ФАК поступает на регистр адреса ОЗУ. Из ОЗУ выбирается первый байт команды и посылается в регистр команд (для некоторого упрощения предполагаем, что обмен информацией между микропроцессором и ОЗУ происходит байтами). И в завершении этого этапа к IP добавляется 1.
Все указанные взаимодействия отметим на схеме знаком 11. Эта последовательность действий будет повторена еще два раза для выбора второго и третьего байтов выполняемой команды. Это отмечено на схеме знаками 12 и 13.
Второй этап. В начале второго этапа с помощью ДшКОп расшифровывается код операции выполняемой команды. Если выполняемая команда не нарушает естественного порядка выполняемой программы, то осуществляется формирование адреса первого операнда и выборка этого операнда из РП или ОЗУ ЭВМ.
В данной команде для первого операнда используется регистровый относительный режим адресации. Соответственно, эффективный адрес определяется так: EA = [BX] + disp8. В этом случае коды полей md и r/m второго байта из регистра команд поступают в БФАО и таким образом коммутируют оборудование БФАО, что на его выходе появляются сигналы, обеспечивающие считывание:
- кода регистра BX ;
- кода disp L ;
- кода сегментного регистра DS.
Все указанные коды поступают на сумматор физического адреса данных ФАД. При этом обеспечивается передача значения DS со сдвигом на 4 разряда влево (умножение на 16). Сформированный на ФАД код поступает на РА ОЗУ. Происходит выборка байта данных, который направляется в АЛУ. Выполнение второго этапа завершено. Все указанные взаимодействия устройств отметим на схеме цифрой 2.
Третий этап. Выбор второго операнда. В данном случае БФАО под воздействием сигнала с разряда w и поля reg регистра команд выдает сигнал обращения к регистру AL, код которого подается в АЛУ. Все взаимодействия на этом этапе отметим цифрой 3.
Четвертый этап. Выполнение операции сложения в АЛУ. Здесь блок управления операциями выдает те сигналы в АЛУ, которые необходимы для выполнения операции. Линии взаимодействия отметим цифрой 4.
Пятый этап. Код выполненной операции из АЛУ направляется в регистр AL (d = 1) регистровой памяти. Взаимодействие отмечается цифрой 5.
Команда выполнена. В IP находится основная составляющая адреса следующей команды программы: (IP) = i + 3. Здесь шестой этап как отдельный (автономный) этап исключен. Формирование основной составляющей адреса следующей выполняемой команды (указателя команд) было реализовано на первом этапе. Значение сегментного регистра команд в арифметических командах не меняется.
ЭВМ готова к выполнению следующих команд программы.