Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчеты по лабораторным 1 и 2, Р-РС-71. Богачев.docx
Скачиваний:
23
Добавлен:
20.05.2014
Размер:
1 Мб
Скачать
☆

3. Реализация микропрограммного режима.

1) Составим таблицу 24-разрядного слов микрокоманд микропрограммы, которые нужно сначала в регистр информации RGв соответствии с описанным выше алгоритмом работы микропрограммы, а затем изRG– в ЗУ, а также затем произвести контрольное чтение всех занесенных в ЗУ микрокоманд.

Поскольку для умножения и деления 8-разрядных операндов требуется восемь операций сдвига, то для их подсчёта в одном из регистров общего назначения организуется счётчик сдвигов, в который заносится число 248(код – 11111000). После восьми сдвигов счётчик переполняется, фиксируя число 256 или код 100000000. На выходе переноса АЛУ появляется сигнал Пвых = 1, который индицирует окончание программы.

Таблица содержит 26 колонок, нулевая колонка отводится под номера ячеек ЗУ, в которых хранится МК микропрограммы, последняя колонка – под пояснения. Основой для составления микропрограммы служит представленная в теоретических сведениях блок-схема алгоритма выполняемой операции. В первые 9 колонок таблицы занесём код МК МП, в колонках с 10 по 19 расположим управляющую часть МК или операнды, а в колонках с 20 по 24 разместим адресную часть. Для каждого разряда МК проставим единичные или нулевые биты информации.

Код микрокоманды

Управляющая часть микрокомандами микропроцессора

Адрес следующей микрокоманды

Пояснение

k

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

0

1

1

1

1

1

0

0

0

1

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

ШВхР1

1

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

0

0

1

0

0

0

ШВх = 11111000

2

0

0

0

0

0

1

0

0

0

0

0

0

1

1

1

1

1

1

0

1

1

0

0

0

ШВх=0Р0

3

0

0

0

1

1

1

0

1

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

ШВхДР

4

0

0

0

0

0

0

0

0

0

1

0

1

1

0

0

0

0

1

0

1

0

1

0

0

ШВх=Y=00001101

5

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

1

0

0

ШВхР0

6

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

1

0

0

0

1

1

0

ШВх=X=00001100

7

1

1

1

0

1

1

0

1

0

0

0

1

0

1

1

0

0

0

0

0

0

0

1

0

ДРШВых, ДР0=?

8

1

1

0

0

1

1

1

0

1

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

(РР,ДР)СЛПРР,ДР

9

1

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

(РР+Р0,ДР)САПРР,ДР

10

0

1

1

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

1

1

0

1

0

Р1+1Р1

11

1

1

1

0

1

1

0

1

0

0

0

0

1

1

1

0

0

0

0

0

0

1

1

0

ДРШВых,ШВых=?

12

1

1

1

0

1

1

0

1

0

0

0

0

0

1

1

0

0

0

0

1

1

1

0

0

ДРШВых, адр. в яч.7

13

1

1

1

0

1

1

0

1

0

0

0

0

0

1

1

0

0

0

1

0

0

0

0

0

ДРШВых, КОНЕЦ

Микропрограмма реализуется пошаговым исполнением её отдельных микрокоманд согласно указанных в ячейках адресам. Как видно из адресной части микропрограммы, в ячейке 0 указан адрес ячейки 1, в ячейке 1 – адрес ячейки 2 и т.д. По этому до 6 ячейки включительно микрокоманды исполняются последовательно. В ячейке 6 указан адрес ячейки 12, где хранится МК вывода содержимого ДР на ШВых (а также РР на ШАдр при сигнале ПР=0) и адрес следующей МК – ячейка 7. Микрокомандной ячейки 7 проверяется младший разряд ДР0 дополнительного регистра, при этом адрес 01000 (8) заносится в регистр информации БМУ. Если ДР0 = 0, то он сохраняется и на следующем шаге даётся МК ячейки 8, если же ДР0=1, то счетчик адреса БМУ получает приращений +1 и выполняется МК ячейки 9. Из ячеек 8, 9 осуществляется переход в ячейку 10, по команде которой содержимое счётчика циклов Р1 увеличивается на +1. В ячейке 11 хранятся МК для вывода содержимого ДР и РР на ШВых и ШАдр и данные управляющей части МКМПр для проверки сигнала ПВых – выхода переноса АЛУ. При пвых=0 из ячейки 11 с помощью БМУ совершается переход к ячейке 12, где указан адрес ячейки 7 для выполнения следующего цикла программы; при ПВых=1 – к ячейке 13 для вывода информации на ШВых, ШАдр и окончания программы.

2) Запишем первую МК микропрограммы в регистр информации (RG)блока памяти, для чего :

- подадим СИМ на вход С регистра RG;

- нажмём кнопку ПУСК при занесении нулевого бита или кнопки ВХОД ИНФОРМАЦИИ и ПУСК при занесении единичного бита информации, вводя текущий код микрокоманды по таблице;

- указанную манипуляцию выполняем 24 раза, начав с 24-ого РАЗРЯДА МК и ЗАКОНЧИВ 1-м.

- отсоединияем СИМ от входа С RG.

3) Затем перенесём первую МК микропрограммы из регистра информации в ЗУ, для чего :

- подадим СИМ на вход V1 ЗУ;

- нажмём кнопку ПУСК, при этом счётчик адреса (RGA) и его индикатор зафиксирует занесение МК в первую ячейку ЗУ;

- отсоединим СИМ от входа V1.

4) Повторим пункты 2) и 3) для занесения всех 14-ти микрокоманд микропрограммы.

5) Осуществим контрольное чтение занесённой в ЗУ микропрограммы в следующей последовательности :

а) Подадим СИМ на вход V2 ЗУ и нулевое напряжение на гнездо КОНТРОЛЬ с выхода одного из логических элементов;

б) Произведём сброс регистра информации RG и регистра адреса RGA.

в) Нажимая кнопку ПУСК, наблюдаем на индикаторе регистра информации RG считывание из ЗУ микрокоманд микропрограммы, а на индикаторе регистра адреса RGA – номер ячейки ЗУ.

г) Обнаружив ошибку в 11-ой набранной микропрограмме, производим сброс RG И RGA, в режиме контрольного чтения по индикатору регистра адреса RGA устанавливаем номер 10 ячейки ЗУ, то есть предшествующий номеру ошибочной МК, и вновь записываем её в ЗУ.

6) И наконец реализовываем выполнение занесённой в ЗУ микропрограмму двумя способами, для чего :

а) Установливаем тумблер РАБОТА/ЗАПИСЬ в положение РАБОТА, тумблеры ПОЗИЦИЯ 0 и ПОЗИЦИЯ 1 – в верхнее положение;

б) Многократно нажимая кнопку ПУСК, проконтролируем результаты последовательного выполнения микрокоманд микропрограммы умножения на индикаторах ВЫХОД АДРЕСА и ВЫХОД ИНФОРМАЦИИ (младшие разряды расположены СЛЕВА, старшие - СПРАВА), а адреса исполняемых команд и их коды – на индикаторах регистров адреса RGA и информации RG блока памяти;

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

В итоге на светодиодных индикаторах ВЫХОД АДРЕСА и ВЫХОД ИНФОРМАЦИИ.

ВЫХОД ИНФОРМАЦИИ и ВЫХОД АДРЕСА наблюдаем результат выполнения последовательных операций произведения X (00001100) и Y (00001101) – 10011100, что соответствует действительности, следовательно: микропрограмма, её алгоритм и его реализация на микропроцессорной установке выполнены верно.

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

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

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

Отличие микропрограммного способа реализации от микрокомандного проявляется в автоматизации принятия решения о следующей микрокоманде, что обеспечивает БМУ.