Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.04.2024

Просмотров: 301

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

зание адреса следующей микрокоманды в каждой из микрокоманд независимо от того, совершается услов­ ный переход или нет. В этом случае переход не требует отдельного шага микропрограммы и может быть выпол­ нен одновременно с другими операциями. Кроме того, облегчается распределение микрокоманд в памяти и ис-

Ф у н к ц и с н а л б н б /е с и г н а л ы

 

2

3

4

S

 

 

 

/.7

/ f f

f f

7

0

• • •

0

ff

7

ff

ff

7

ff

ff

ff

7

ff

ff

. . .

ff

ff

f f

f f

f f

f f

«

» •

7

 

 

 

 

 

I

(

t

 

 

 

 

 

 

 

 

 

 

*

*

f f

f f

f f

f f

7

 

 

 

f f /7

Р и с . 5 - 2 4 . М и к р о к о м а н д а п р и г о р и з о н т а л ь н о м м и к р о п р о г р а м ­

м и р о в а н и и . .

пользование различными микропрограммами общих мик­ рокоманд.

Для управления последовательностью выборки в мик­ рокоманде на рис. 5-23 служат поля А и КВ. Если после выполнения текущей микрокоманды отсутствует ветвле­ ние микропрограммы, то в поле КВ записывается нуль и адрес следующей микрокоманды определяется полем Л.

Если после выполнения текущей микрокоманды про­ исходит ветвление микропрограммы по какому-либо признаку, то в поле КВ записывается соответствующий код и данный признак передается в младший разряд адреса следующей микрокоманды. Предположим, что

( после выполнения микрокоманды сложения необходим переход к микрокоманде, находящейся в ячейке 160 ПЗУ,

368


если содержимое аккумулятора равно нулю, и к микро­ команде из ячейки 161, если содержимое аккумулятора не равно нулю. Данной проверке присваивается опреде­ ленный код ветвления (например, 3) и этот код записы­ вается в поле КВ, а в поле А записывается код 160. Пос­ ле выполнения данной микрокоманды в старшие разря­ ды адресного регистра ПЗУ передается код 160, а в младший разряд принимается сигнал «аккумуляторѣ Ѣ0». Таким образом, в случае равенства содержимого аккумулятора нулю следующая микрокоманда будет считываться из ячейки с адресом 160, а в случае нера­ венства нулю— из ячейки с адресом 161.

Можно провести следующую классификацию систем микропрограммного управления.

По способу формирования функциональных сигналов различают горизонтальное и вертикальное микропро­ граммирование.

По способу определения адреса следующей микроко­ манды различают последовательное и параллельное мик­ ропрограммирование.

По структуре кодирования микроопераций различают микропрограммирование с прямым и косвенным коди­ рованием микрокоманд.

При горизонтальном микропрограммировании каждо­ му разряду микрокоманды соответствует определенная микрооперация, выполняемая независимо от содержания других разрядов. Микропрограмма при горизонтальном микропрограммировании может быть представлена в ви­ де матрицы (рис. 5-24), в которой каждая строка соот­ ветствует одной микрокоманде, а колонка — одной мик­ рооперации (функциональному сигналу). Наличие еди­ ницы в пересечении какой-либо строки и колонки означает посылку данного функционального сигнала в данной микрокоманде, а наличие нуля означает отсутст­ вие функционального сигнала.

Рассмотрим примерный формат горизонтальной мик­ рокоманды и некоторые возможные значения ее разря­ дов.

1 2 3 4 5 6 7 8 А

Значение разрядов микрокоманды (микрооперации): 1. Гашение аккумулятора.

24—333

369



2.Гашение указателя переполнения.

3.Обратный код аккумулятора.

4.Гашение регистра множителя — частного.

5. Обратный код регистра множителя — частного.

6.Сдвиг аккумулятора влево.

7.Сдвиг аккумулятора вправо.

8.Прибавление единицы к аккумулятору.

9.Чтение из памяти в аккумулятор и т. д.

Аопределяет адрес следующей микрокоманды. Размещая единицы в нескольких разрядах микроко­

манды, можно одновременно выполнить несколько мик­ роопераций. Например, микрокоманда 010011000... по­ зволяет одновременно погасить указатель переполнения, взять обратный код регистра множителя— частного и сдвинуть содержимое аккумулятора влево. Конечно, воз­ буждаемые микрооперации должны быть совместимы; так, например, микрокоманда 001000011... является не­ допустимой, так как она предполагает одновременное выполнение взаимно исключающих действий: чтение в аккумулятор из памяти, взятие обратного кода в нем и прибавление к аккумулятору единицы. Для расширения логических возможностей микрокоманды иногда исполь­ зуется многотактный принцип исполнения микрокоман­ ды. В соответствии с этим принципом каждому разряду микрокоманды присваивается номер такта, в котором выполняется данная микрооперация; всем совместимым действиям может быть отведен один и тот же такт, а между взаимно исключающими действиями может быть установлена очередность, соответствующая наиболее употребительным комбинациям этих действий. Если в последнем примере установить следующую очередность действий: чтение в аккумулятор из памяти — 1-й такт; взятие обратного кода аккумулятора —2-й такт, прибав­ ление к аккумулятору единицы —3-й такт, то одна мик­ рокоманда 001000011... позволяет осуществить прием из памяти числа в дополнительном коде. Очевидно, однако, что нелегко установить универсальную очередность мик­ роопераций в микрокоманде, которая годилась бы для большинства случаев.

Достоинствами горизонтального микропрограммиро­ вания являются возможность одновременного выполне­ ния нескольких микроопераций и простота формирования функциональных импульсов, так как последние могут возбуждаться непосредственно от сигналов, получаемых

370


из регистра хранения микрокоманды без каких-либо про­ межуточных схем дешифрации. Однако оно имеет и су­ щественный недостаток, заключающийся в том, что тре­ буется большая длина микрокоманды, поскольку число функциональных импульсов в современном процессоре может достигать нескольких сотен. Соответственно для хранения микрокоманд требуются запоминающие уст­ ройства с большой разрядностью ячейки, что является экономически невыгодным. Из-за ограничений, обуслов­ ленных совместимостью микроопераций, а также вслед­ ствие последовательного характера алгоритмов выполне­ ния операций лишь небольшое число разрядов в каждой микрокоманде будет отмечено единицами, в основном же матрица, изображенная на рис. 5-24, будет состоять из нулей. Это приведет к неэффективному использованию емкости ЗУ для микропрограмм. Поэтому хотя и извест­ ны случаи практического применения горизонтального микропрограммирования, например в машинах НАПРИ, большее распространение получил другой принцип — принцип вертикального микропрограммирования.

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

При параллельном микропрограммировании форми­ рование адреса и чтение следующей микрокоманды про­ изводится параллельно с выполнением текущей микро­ команды.

В этом случае при необходимости ветвления после данной микрокоманды условия ветвления следует форми­ ровать в предыдущей микрокоманде.

При последовательном микропрограммировании фор­ мирование адреса последующей микрокоманды всегда

24’

371