Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 / Lectures / ГосЭк2.doc
Скачиваний:
37
Добавлен:
28.05.2015
Размер:
790.53 Кб
Скачать

6. Формирование адресов микрокоманд (по пособию “Управление “эвм”)

Существуют два основных способа задания адреса микрокоманды, соответствующих естественному и принудительному порядкам следования МК в микропрограмме.

Естественный порядок следования микрокоманд. В этом случае микрокоманды любой микропрограммы располагаются в ячейках ПЗУ с последовательными адресами. Адрес очередной МК формируется посредством увеличением на единицу адреса предыдущей микрокоманды. Это позволяет не включать в каждую МК адрес следующей. Однако для организации циклов и разветвлений в микропрограммах необходимо иметь два типа микрокоманд: операционные МК и МК переходов.

Операционные МК задают выполнение некоторого набора микроопераций и содержат только операционную часть. МК переходов, используемые для изменения естественного порядка следования микрокоманд, не содержат операционной части. В них задается адрес следующей МК и номер (код) условия, определяющего переход, если переход должен выполняться в зависимости от значения какого-либо условия. Кроме того, чтобы отличить операционные микрокоманды от МК перехода, вводится специальный признаковый разряд F, значение которого определяет тип микрокоманды. Например, для операционных МК значение разряда F равно единице, а для МК перехода F = 0. Соответствующий формат операционной микрокоманды представлен на рис. 23, а, где КМОii-е поле кода микроопераций. Формат микрокоманды перехода приведен на рис. 23, б, где НЛУ – номер логического условия, значение которого определяет, будет ли выполнен переход, а АСМК – адрес следующей, подлежащей выполнению МК.

Рис. 23. Форматы операционной микрокоманды (а) и микрокоманды перехода (б)

В этом случае в структуру МПУУ, представленную на рис. 24, включается счетчик адреса микрокоманд СМК, а основу схемы формирования адреса микрокоманды составляет мультиплексор логических

Рис.24. Структурная схема МПУУ при естественном порядке следования микрокоманд

условий MUX, выход которого управляет через логические схемы счетчиком СМК. (Схема формирования управляющих сигналов на рис. 24 не показана.) При выполнении операционной МК адрес следующей МК формируется добавлением единицы к содержимому СМК одновременно с выработкой сигналов микроопераций. Если выполняется МК перехода, то MUX вырабатывает на выходе сигнал, соответствующий заданному в МК коду номера проверяемого логического условия xi. В том случае, когда значение xi равно нулю, переход по заданному адресу не выполняется и к содержимому СМК добавляется единица. Если же xi = 1, то содержимое тех разрядов РМК, в которых указан адрес следующей микрокоманды, поступает в СМК. Когда необходимо выполнить безусловный переход, в поле НЛУ обычно задается нулевой код, а на соответствующем ему выходе MUX вырабатывается единичный сигнал, поступающий непосредственно на схему ИЛИ и вызывающий передачу АСМК из регистра МК в счетчик СМК.

Однако естественный порядок следования микрокоманд (в отличие от естественного порядка следования команд) используется относительно редко, так как в этом случае на реализацию условной вершины микропрограммы затрачивается время, необходимое для выполнения одной микрокоманды (МК перехода). Поскольку участки, не содержащие разветвлений, в микропрограммах, как правило, включают малое число МК и переходы осуществляются часто, то время выполнения микропрограмм в МПУУ с естественным порядком следования МК значительно увеличивается. Поэтому в МПУУ более распространен принудительный порядок следования микрокоманд.

Принудительный порядок следования микрокоманд. В этом случае микрокоманды микропрограммы располагаются в произвольных ячейках ПЗУ. Адрес очередной МК указывается в адресной части выполняемой МК. В каждой микрокоманде для реализации условных переходов имеется одно или несколько полей номера логического условия (НЛУ). С целью сокращения разрядности и унификации формата МК в ее адресной части указывается только один адрес.

Для организации разветвлений в микропрограммах используют следующий прием. Если в поле НЛУ записан нулевой код, то следующей будет выполняться та микрокоманда, код адреса A которой задан в адресной части (поле АСМК) текущей МК. Если в поле НЛУ задан код, соответствующий условию xi, то адрес следующей МК определяется добавлением значения условия xi к коду A, заданному в поле АСМК выполняемой МК. Таким образом, при xi = 0 адрес следующей МК равен коду A, а при xi = 1 – коду (A + 1).

Существуют два основных способа добавления значения проверяемого логического условия к коду, задаваемого в микрокоманде адреса следующей МК при выполнении условного перехода. Первый из них основан на использовании дополнительного счетчика, желательно комбинационного типа, а соответствующая ему схема формирования адреса микрокоманды представлена на рис.25. Такая схема требует введения счетчика в МПУУ и увеличивает время реализации МК в случае выполнения микрооперации добавления единицы в счетчике при формировании адреса следующей МК.

Чаще используется другой способ, позволяющий обойтись без счетчика при некотором ограничении на значения задаваемых в поле АСМК кодов адресов A тех микрокоманд, в которых необходимо выполнить условный переход. Сущность этого способа состоит в том, что в таких МК допускается указывать только коды, имеющие нуль в младшем разряде. Тогда добавление значения проверяемого логического условия xi к коду A можно осуществить установкой значения xi в младшем разряде регистра адреса МК одновременно с передачей в него старших разрядов кода A из поля АСМК. Соответствующая этому случаю схема формирования адреса МК приведена на рис. 26.

Рис.25. Схема формирования адреса микрокоманды с комбинационным счетчиком при принудительном порядке следования МК

Рис.26. Схема формирования адреса микокоманды с установкой младшего разряда РАМК при принудительном порядке следования МК

Чаще используется другой способ, позволяющий обойтись без счетчика при некотором ограничении на значения задаваемых в поле АСМК кодов адресов A тех микрокоманд, в которых необходимо выполнить условный переход. Сущность этого способа состоит в том, что в таких МК допускается указывать только коды, имеющие нуль в младшем разряде. Тогда добавление значения проверяемого логического условия xi к коду A можно осуществить установкой значения xi в младшем разряде регистра адреса МК одновременно с передачей в него старших разрядов кода A из поля АСМК. Соответствующая этому случаю схема формирования адреса МК приведена на рис. 26.

На этой схеме управление цепью передачи младшего (m-го) разряда адреса следующей микрокоманды АСМК из регистра микрокоманд РМК в регистр адреса микрокоманд РАМК осуществляется отдельно. Если в поле условия задан код, равный нулю, то в такой микрокоманде не производится проверка логических условий, и все m разрядов поля АСМК передаются в РАМК в качестве адреса очередной МК. При этом передача m-го разряда осуществляется через нулевой информационный вход (соответствующий всем нулям на адресном входе) мультиплексора. Если выполняется МК с условным переходом, то старшие (m – 1) разрядов поля АСМК передаются в старшие (m – 1) разрядов РАМК, а в m-й разряд РАМК заносится значение проверяемого логического условия xi. Таким образом, код адреса следующей МК будет зависеть от проверяемого логического условия.

Часто переходы в микропрограммах определяются несколькими логическими условиями, причем в качестве условий, определяющих переход, могут выступать не только одноразрядные двоичные переменные. Например, в микропрограммах выборки и декодирования команд разветвления осуществляются в зависимости от значения сразу нескольких разрядов кода операции, указываемого в команде.

Если переход зависит от значений нескольких логических условий, а структура МПУУ предусматривает проверку только одного из них в одной микрокоманде (как на рис. 25 и 26), то для анализа каждого из условий перехода нужна отдельная МК. Причем только в первой из таких микрокоманд одновременно с проверкой первого условия могут быть выполнены микрооперации, непосредственно предшествующие разветвлению. Все последующие МК в операционной части не будут содержать никаких МО. Поэтому на переход придется затратить довольно большое время, в течение которого операционное устройство процессора будет простаивать.

Рис.27. Схема формирования адреса микрокоманды, допускающая разветвления по 2m2+2 направлениям

Для того, чтобы избежать этих потерь времени, схема формирования адреса МК организуется так, что в ней можно выполнить проверку нескольких условий перехода одновременно. С этой целью в схему вводятся два дополнительных узла: первый аналогичен рассмотренному в предыдущем случае (рис. 26) и управляет установкой предпоследнего разряда РАМК; второй предназначен для занесения многоразрядного условия-кода в средние разряды РАМК. Такая схема представлена на рис. 27.

В этом случае в адресной части микрокоманды выделяются четыре поля: AS – поле старших m1 разрядов (с первого по m1-й) адреса следующей МК, AM – поле средних m2 разрядов (c (m1+1)-го по (m1+m2)-й ) и два одноразрядных поля A и B, задающих последний m-й и предпоследний (m – 1)-й (где m = m1+m2+2) разряды адреса следующей микрокоманды соответственно. Кроме того, в МК вводятся три поля условий. В двух из них – в поле номера условия A (НУА) и поле номера условия B (НУВ) указываются коды номеров логических условий xiA, i = иxjB, j = используемых для установки последнего и предпоследнего разрядов РАМК соответственно.

Третье поле – поле номера условия M (НУМ) – задает код номера условия-кода ,s = (точнее, узла-источника среднихm2 разрядов адреса следующей микрокоманды, передаваемых в РАМК). Условный переход по группе условий иначе называют функциональным.

Функционирование схемы формирования адреса микрокоманды, представленной на рис.27, аналогично работе ранее рассмотренных схем. Старшие разряды адреса следующей МК во всех случаях передаются в РАМК из поля AS РМК. Если в полях НУА, НУВ и НУМ указаны нулевые коды, то в РАМК будет передано содержимое всей адресной части текущей МК, и адрес следующей микрокоманды будет равен (AS).(AM).(B).(A), где круглые скобки указывают на то, что берется содержимое соответствующего поля, а точка является сцеплением. Если в полях НУА, НУВ и НУМ заданы коды, отличные от нуля, то в соответствующие разряды РАМК будут занесены значения определяемых этими кодами логических условий, и адрес следующей микрокоманды будет равен (AS). . xjB. xiA, где ,xjB, xiA – условия, номера которых указаны кодами полей НУА, НУВ и НУМ. Узел, обозначенный на рис. 27 как MUX M, представляет собой мультиплексор, используемый для передачи всех разрядов условия-кода от любого источника (в том числе и из РМК) в регистр адреса МК.

Рассмотренная схема позволяет организовать за один такт разветвление микропрограммы по 2m2+2 направлениям, так как в зависимости от значений проверяемых условий устанавливаются сразу (m2+2) разрядов адреса следующей МК.

Существуют схемы формирования адреса МК с более сложной взаимосвязью между разрядами адресной части микрокоманды и ее полей условий.

Соседние файлы в папке Lectures