Цикл выполнения команды начинается с выборки ее из ОЗУ и передачи в регистр РК. После чтения команды к счетчику команд СК. добавляется единица, чтобы под готовить выборку из ОЗУ очередной команды в следую щем цикле. Затем в адресном регистре АР формируется исполнительный адрес операнда, операнд выбирается из ОЗУ, поступает в регистр операнда РО и производится его сложение с содержимым аккумулятора АЛУ. Процесс выполнения команды может быть разбит на такты мик роопераций следующим образом:
1- й такт— передача из СК в АР; 2- й такт — чтение из ОЗУ в РК;
3- й такт— добавление единицы в СК; 4- й такт— сложение адресной части РК с содержи
мым ИР и передача результата в АР; 5- й такт — чтение из ОЗУ в РО;
6- й такт — сложение содержимого РО и АЛУ, конец операции и возврат к первому такту.
Каждому такту соответствует определенный функци ональный сигнал.
Известны два основных метода построения логики формирования функциональных сигналов. Один из них состоит в том, что для каждой команды процессора име ется набор логических схем, которые в нужных тактах возбуждают соответствующие функциональные сигналы. Такой принцип управления получил название «жесткой» или «запаянной» логики.
В современных процессорах при построении устройств управления часто используется другой подход, основан ный на использовании принципа микропрограммного уп равления. В таком устройстве управления схемы вклю чения функциональных сигналов управляются регистром, в который считывается управляющая информация из постоянного запоминающего устройства (ПЗУ). Считы вая последовательно слова из ПЗУ в этот регистр, мож но организовать требуемую последовательность функци ональных сигналов.
Рассмотрим организацию устройства управления под робнее. Типичная структурная схема устройства управ ления с «жесткой» логикой показана на рис. 5-21. В со став устройства управления входит регистр кода опера ции, который является частью регистра команды РК, счетчик тактов СТ, дешифратор кода операции, деши фратор тактов, логические схемы образования функцио
нальных сигналов, формирователи функциональных сиг налов, блок синхроимпульсов. Выполняемая команда хранится в регистре РК. Дешифратор кода операции преобразует этот код в сигнал, появляющийся на соот ветствующей данной команде выходной шине дешифра тора. Блок синхроимпульсов после завершения очеред ного такта работы процессора добавляет к СТ единицу.
Р и с . 5 - 2 1 . С т р у к т у р н а я с х е м а у с т р о й с т в а у п р а в л е н и я с ж е с т к о й л о г и к о й .
Дешифратор тактов формирует в требуемой последо вательности и выдает на свои выходные шины сигналы, соответствующие текущему такту выполняемой процес сором команды.
Логические схемы образования функциональных сиг налов в соответствии с выполняемой командой и тактом, а также с учетом, если это необходимо, состояния управ ляющих регистров (например, равенство или неравенст во содержимого аккумулятора нулю) возбуждают фор мирователи функциональных сигналов для выполнения требуемых в данном такте микроопераций.
Микропрограммный принцип организации управле ния заключается в том, что каждой микрооперации ста вится в соответствие слово (или часть слова), называе мое микрокомандой и хранимое в памяти подобно тому, как хранятся в памяти команды обычной вычислитель ной машины. При таком подходе команде соответствует
микропрограмма, т. е. набор микрокоманд, указываю щих, какие функциональные импульсы и в какой после довательности необходимо возбуждать для выполнения данной операции. Этот подход получил название микро программирования или «хранимой логики»-, второй тер мин подчеркивает то обстоятельство, что в микропро граммной машине логика управления реализуется не в виде смонтированной электронной схемы, а в виде зако дированной информации, содержащейся в запоминаю щем устройстве.
Идея микропрограммирования была высказана Уилк сом еще в 1951 г., однако до недавнего времени этот принцип управления не находил широкого применения в вычислительных машинах. Объясняется это несколькими причинами. С одной стороны, не существовали достаточ но надежные и дешевые быстродействующие ЗУ для хра нения микропрограмм, с другой стороны, неправильно понимались задачи микропрограммирования и те выго ды, которые оно может принести. Предполагалось, что главная ценность микропрограммирования состоит в том, что каждый потребитель может сконструировать се бе из микропрограмм тот набор команд, который наибо лее выгоден для его конкретной задачи. Переход от од ного набора команд к другому достигался бы путем простой замены информации в запоминающем устройстве без каких-либо физических переделок в аппаратуре. Од нако в этом случае для того, чтобы полностью использо вать предполагаемые преимущества микропрограммной машины, программист должен быть одновременно также и инженером-разработчиком аппаратуры, хорошо знаю щим различного рода тонкости работы вычислительной машины. Это противоречит основной тенденции развития вычислительной техники, состоящей в том, чтобы путем совершенствования средств математического обеспечения вычислительной машины, в частности путем использо вания методов автоматического программирования, ос вободить программиста от необходимости детально изу чать устройство машины и в максимальной степени при близить язык программирования к языку человека. По этому потребители считали микропрограммные машины трудными для программирования и предпочитали обыч ные вычислительные машины с фиксированным набором команд и хорошим математическим обеспечением.
Однако в последние годы интерес к микропрограм
мному принципу управления возродился. Были созданы постоянные запоминающие устройства с циклом обра щения 0,5 мксек и даже 0,25 мксек. В настоящее время созданы постоянные запоминающие устройства на инте гральных схемах, обладающие еще большим быстродей ствием. Изменился подход к микропрограммированию, которое сейчас рассматривается не как средство повы
|
|
|
|
|
|
|
|
|
|
шения гибкости программи |
|
|
|
рования, а как метод пост |
|
|
|
роения системы |
управления |
|
|
|
процессором, |
удобный |
для |
|
|
|
инженера-разработчика |
вы |
|
|
|
числительной |
аппаратуры. |
|
|
|
Программист, |
работающий |
|
|
|
на |
современной |
машине |
с |
|
|
|
микропрограммным |
управ |
|
|
|
лением, может, вообще гово |
|
|
|
ря, не подозревать о ее мик |
|
|
|
ропрограммной |
природе |
и |
|
|
|
использовать |
все современ |
|
|
|
ные |
средства |
математичес |
|
|
|
кого |
обеспечения, |
включая |
|
|
|
алгоритмические |
языки |
са |
|
|
|
мого высшего уровня. В то |
Р и с . |
5 - 2 2 . С т р у к т у р н а я |
с х е |
же |
время |
использование |
м а |
м и к р о п р о г р а м м н о г о |
у с т |
микропрограммного принци |
|
р о й с т в а у п р а в л е н и я . |
|
па облегчает разработку ло |
|
|
|
гики процессора и предоставляет возможность ее легкой переделки в процессе разработки.
Типичная структурная схема микропрограммного уст ройства управления показана на рис. 5-22. В состав уст ройства управления входит регистр кода операции, по стоянное запоминающее устройство (ПЗУ), адресный регистр ПЗУ, регистр микрокоманды, дешифратор мик роопераций, формирователи функциональных сигналов
иблок синхроимпульсов.
Вкаждом такте работы процессора из ПЗУ в регистр микрокоманды поступает очередная микрокоманда, ко торая расшифровывается дешифратором микроопера
ций и формирует в блоке формирования функциональных сигналов сигналы, необходимые для выполнения микро операции АЛУ, блока управляющих регистров и интер фейса процессора.
Блок синхроимпульсов синхронизирует работу ПЗУ и формирователей функциональных сигналов. Адрес очередной микрокоманды образуется в адресном регист ре ПЗУ. Совокупность микрокоманд, обеспечивающих выполнение команды, называется микропрограммой.
Запуск микропрограммы выполнения команды осу-
|
|
|
---------------------1 |
ю |
RZ |
А |
К8 |
Р и с . 5 - 2 3 . С т р у к т у р а |
м и к р о к о м а н д ы |
п р о ц е с с о р а |
с м а г и |
с т р а л ь н ы м А Л У . |
|
|
ществляется путем передачи содержимого регистра кода операции в адресный регистр ПЗУ. Таким образом, каж дая команда процессора инициирует выполнение отдель ной микропрограммы. В ходе выполнения команд они могут использовать общие участки микропрограмм, на зываемые микроподпрограммами. Адрес следующей мик рокоманды обычно определяется адресным полем регист ра микрокоманды.
Из сравнения структурных схем на рис. 5-21 и 5-22 видно, что ПЗУ с регистром микрокоманды, дешифрато ром микроопераций и адресным регистром ПЗУ в мик ропрограммном устройстве управления выполняет те же функции, что и счетчик тактов, дешифратор тактов, де шифратор команд и комбинационные схемы образова ния функциональных сигналов в устройстве управления с «жесткой» логикой.
Содержание тактов в ходе выполнения команды при микропрограммном управлении принципиально может быть таким же, как и при управлении с «жесткой» логи кой. Типичная структура микрокоманды в процессоре с магистральным АЛУ показана на рис. 5-23. Микроко манда содержит пять полей, которые выполняют следу ющие функции:
КМО — определяет код микрооперации;
R1 и R2 — определяют номера регистров, содержимое которых участвует в данной микрооперации; А — определяет адрес следующей микрокоманды;
КВ — код ветвления, который определяет установку младшего разряда адреса следующей микро команды в зависимости от результата выпол нения предыдущей микрокоманды.
Порядок выполнения микрокоманд соответствует по следовательности их записи в микропрограмме, кроме случаев ветвления в микропрограмме, когда следую щ ая, подлеж ащ ая выполнению микрокоманда определяется по результату выполнения данной или предыдущей мик рокоманды.
Примером может служить операция умножения, в которой одна из основных микроопераций может быть выражена следующим образом: «сложить множимое с частичным произведением, если очередной разряд мно жителя равен единице». В качестве другого примера мож но привести операцию нормализации, где необходимо сдвигать содержимое аккумулятора, если старший раз ряд мантиссы равен нулю. В процессорах с жесткой логикой условность микрооперации легко реализуется путем подачи на вход соответствующей схемы И сиг нала, соответствующего данному условию. В микро программных процессорах применение микрокоманд с условными кодами микрооперации хотя принципиально и возможно, но невыгодно, так как при неудовлетворе нии условия исполнение данной микрокоманды было бы пустой тратой времени. Поэтому микрокоманды имеют, как правило, безусловные коды микроопераций, однако последовательность микрокоманд в микропрограмме должна быть переменной или, как говорят, должна раз ветвляться в зависимости от выполнения определенных условий.
Порядок выполнения микрокоманд в микропрограм ме может быть организован так же, как выполнение по следовательности команд в программе вычислительной машины. Можно иметь, например, микропрограммный счетчик микрокоманд, который содержит адрес следую щей микрокоманды и увеличивает его на единицу после выполнения каждой микрооперации. Микрокоманды бу дут в этом случае выбираться из последовательных яче ек памяти. Специальные микрокоманды условного и без условного перехода могут засылать в счетчик произволь ные величины, образуя требуемые разветвления. Подоб ными микропрограммными машинами являются машины RW-440, RTW-133 и др.
Однако последующие микропрограммные системы (НАПРИ, МИР, микропрограммные модели IBM 360, ЕС ЭВМ) были разработаны с учетом того, что для микро программ более эффективной процедурой является ука-