Секционированные микропроцессоры с микропрограммным управлением с естественной, принудительной и стековой адресацией микрокоманд на примере МП1804

Страницы работы

Фрагмент текста работы

процессе работы программы осуществляется бесконечный цикл переходов по адресам 0000 -> 0001 -> 0010 -> 0011 -> 1010 -> 0010 -> 0011 -> …

6)  Микропрограмма, демонстрирующая обращение к подпрограмме и возврат из нее.

Микропрограмма, являющаяся реализацией диаграммы переходов на Рис.3.

Программа   Подпрограмма

Рис.3.

Адрес

памяти

Микрокоманда

Выполняемая функция

адрес перехода

инструкция перехода

приёмник

результата

источник

операндов

АЛУ

А

В

D

7

6

5

4

3

2

1

0

0000

хххх

0010

хххх

хххх

хххх

хххх

хххх

хххх

Продолжить

0001

1000

0101

хххх

хххх

хххх

хххх

хххх

хххх

Переход к подпрограмме

0010

хххх

0010

хххх

хххх

хххх

хххх

хххх

хххх

Продолжить

0011

0000

0001

хххх

хххх

хххх

хххх

хххх

хххх

БП к адресу 0000

1000

хххх

0010

хххх

хххх

хххх

хххх

хххх

хххх

Продолжить

1001

хххх

0010

хххх

хххх

хххх

хххх

хххх

хххх

Продолжить

1010

хххх

0110

хххх

хххх

хххх

хххх

хххх

хххх

Возврат из подпрограммы

7)  Микропрограмма, организации вложения подпрограмм.

Данная микропрограмма реализована с помощью аппаратного стека (на четыре 4-разрядных слова), поэтому возможно четыре вложения подпрограмм.

Адрес

памяти

Микрокоманда

Выполняемая функция

адрес перехода

инструкция перехода

приёмник

результата

источник

операндов

АЛУ

А

В

D

7

6

5

4

3

2

1

0

0000

хххх

0010

хххх

хххх

хххх

хххх

хххх

хххх

Продолжить

0001

0011

0101

хххх

хххх

хххх

хххх

хххх

хххх

Переход к подпрограмме 1

0010

0000

0001

хххх

хххх

хххх

хххх

хххх

хххх

БП к адресу 0000

0011

0110

0101

хххх

хххх

хххх

хххх

хххх

хххх

Переход к подпрограмме 2

0100

0111

0101

хххх

хххх

хххх

хххх

хххх

хххх

Переход к подпрограмме 3

0101

хххх

0110

хххх

хххх

хххх

хххх

хххх

хххх

Возврат из подпрограммы 1

0110

хххх

0110

хххх

хххх

хххх

хххх

хххх

хххх

Возврат из подпрограммы 2

0111

0110

0101

хххх

хххх

хххх

хххх

хххх

хххх

Переход к подпрограмме 2

1000

1010

0101

хххх

хххх

хххх

хххх

хххх

хххх

Переход к подпрограмме 4

1001

хххх

0110

хххх

хххх

хххх

хххх

хххх

хххх

Возврат из подпрограммы 3

1010

0110

0101

хххх

хххх

хххх

хххх

хххх

хххх

Переход к подпрограмме 2

1011

1101

0101

хххх

хххх

хххх

хххх

хххх

хххх

Переход к подпрограмме 5

1100

хххх

0110

хххх

хххх

хххх

хххх

хххх

хххх

Возврат из подпрограммы 4

1101

хххх

0010

хххх

хххх

хххх

хххх

хххх

хххх

Продолжить

1110

хххх

0110

хххх

хххх

хххх

хххх

хххх

хххх

Возврат из подпрограммы 5

Последовательность адресов выполняемых микрокоманд:

0000 ® 0001 ® нач 1{0011 ® нач 2( 0110 )конец 2 ® 0100 ® нач 3[ 0111 ® нач 2( 0110 )конец 2 ® 1000 ® нач 4 ( 1010 ® нач 2( 0110 )конец 2 ® 1011 ® нач 5( 1101 ® 1110 ) конец 5 ® 1100 ) конец 4 ® 1001 ] конец 3 ® 0101 } конец 1 ® 0010 ® 0000 ® 0001 …

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

8)  Микропрограмма, организации условных переходов.

При запуске будут отображаться адреса: 0, 1, 2 (15 раз), 0, 1, 15 и т.д.

Адрес

памяти

Микрокоманда

Выполняемая функция

адрес перехода

инструкция перехода

приёмник

результата

источник

операндов

АЛУ

А

В

D

7

6

5

4

3

2

1

0

0000

хххх

0010

х011

х011

1000

хххх

0000

хххх

R0+1, продолжить

0001

1111

1111

х001

хххх

хххх

хххх

хххх

хххх

УП по С4

0010

0000

0001

х001

хххх

хххх

хххх

хххх

хххх

БП к 0

1111

хххх

0010

х001

хххх

хххх

хххх

хххх

хххх

Продолжить

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

7.  Преобразование 8-ми разрядного кода Грея в двоичный код.

Исходное число в коде Грея:          g7, g6, g5, g4, g3, g2, g1, g0.

Число, преобразованное в 2-й код: b7, b6, b5, b4, b3, b2, b1, b0.

Преобразование осуществляется следующим образом: , , .

В данной программе перекодировка из кода Грея в двоичный код осуществляется путем рассмотрения чисел по полубайтам. После выполнения по определенным правилам перекодировки старшего полубайта, происходит перекодировка младшего. Основная трудность в реализации данного алгоритма заключается в необходимости учитывать значения бита b4 при переходе к анализу старшего бита младшего полубайта b3: .

В рассматриваемом алгоритме маска (М) осуществляет выявление для каждого bi-го бита единицы в gi-ом бите. Вспомогательная переменная S представляет собой сумму по модулю 2 gi: со старшего бита до  gi+1. На основе этой переменной записывается очередной разряд двоичного числа. На каждом шаге маска сдвигается в сторону младших разрядов, пока не обнулится, это и является признаком того, что анализ полубайта закончен.

Начальная загрузка:

Текст программы:

Адрес

памяти

Микрокоманда

Выполняемая функция

адрес перехода

инструкция перехода

приемник результата

источник операндов

АЛУ

А

В

D

7

6

5

4

3

2

1

0

0000

хххх

0010

х011

х111

x011

хххх

0110

1000

Загрузка маски М

0001

хххх

0010

х001

х001

x100

0000

0110

хххх

G_h^M

0010

0100

1100

х001

х011

x011

хххх

хххх

хххх

УП

Z=1?

0011

хххх

0010

х011

х001

x110

0110

0101

хххх

S=SM

0100

хххх

0010

х011

х001

x011

0101

0011

хххх

B_h=B_hS

0101

хххх

0010

0101

0011

x011

хххх

0101

хххх

0->S

0110

хххх

0010

0101

0011

x011

хххх

0110

хххх

0->M

0111

0001

0100

х001

х001

x011

хххх

хххх

хххх

УП

Z=0?

1000

хххх

0010

х011

х011

0001

хххх

0010

хххх

count = count - 1

1001

1110

1100

х001

х011

x011

хххх

хххх

хххх

УП

Z=1?

1010

хххх

0010

0101

1101

x100

0101

0101

0001

S=B_h^0001- выявление единицы в бите b4, циклический сдвиг вправо

1011

хххх

0010

х011

х100

0011

0011

0100

хххх

Сохранение полученного B_h в R4: R4:=R3

1100

хххх

0010

х011

х100

x011

0001

0000

хххх

Запись на место R_h R_l для продолжения перекодировки: R0:=R1

1101

0000

0001

х011

х111

x011

хххх

0011

0000

Обнуление B_h для перекодировки младшего полубайта, переход на адрес из Рг микрокоманд

1110

xxxx

0010

х001

х011

x011

xxxx

0011

xxxx

Вывод на Шд B_l

1111

1110

0001

х001

х011

x011

xxxx

0100

xxxx

Вывод на  Шд B_h

8.  Подсчет количества переходов из 1 ®0 в восьмиразрядном слове.

Текст программы:

Адрес команды

Адрес

перехода

Тип перехода

Приёмник

Источник

Функция

АЛУ

А

В

Д

Выполняемое действие

0000

xxxx

0010

x000

x111

0000

xxxx

xxxx

Дм

Загрузка младшего

полубайта

0001

xxxx

0010

x011

x111

0000

xxxx

0000

Дс

Загрузка старшего

Полубайта

0010

xxxx

0010

x011

x111

0000

xxxx

0011

0

Обнуление счётчика

Переходов ( РОН3 )

0011

xxxx

0010

x011

x111

0000

xxxx

0100

7

Инициализация счётчика цикла (РОН4)

0100

xxxx

0010

x011

x100

0000

0000

0001

xxxx

Запись РОН0 в РОН1

0101

xxxx

0010

1110

1011

х011

xxxx

0000

xxxx

Арифм. Сдвиг (РОН0,Q) влево

0110

xxxx

0010

x011

x001

х101

0000

0001

xxxx

Запись ( РОН1 &

! РОН0 )  в РОН1

0111

1011

1101

x001

x011

0000

xxxx

0001

xxxx

Переход по знаку РОН1

1000

xxxx

0010

x011

x011

0001

xxxx

0100

xxxx

Декремент счётчика

цикла

1001

0100

0000

x001

x011

0000

xxxx

0100

xxxx

Возврат пока счётчик цикла не равен 0

1010

1010

0001

x001

x011

0000

xxxx

0011

xxxx

Вывод числа переходов и останов

1011

1000

0001

x011

x011

1000

xxxx

0011

xxxx

Инкремент счётчика переходов и возврат

                        

9.  Выводы.

В данном цикле работ был исследован микропроцессор МП1804, исследованы возможности процессора, выполнены индивидуальные задания.

Необходимо упомянуть о достоинствах и недостатках исследованного процессора. К достоинствам можно отнести такие свойства, как: относительно простая структура; система команд, содержащая относительно большое количество команд арифметических операций; относительно удобный способ ввода и отладки программ. К недостаткам же, в первую очередь, относится то, что микропрограммная память составляет только 16 микрокоманд (разрядностью 32), что не позволяет составлять длинные микропрограммы. Это проблему можно решить, используя несколько блоков центрального процессора и блока микропрограммного управления (например, К1804ВУ1). Необходимая разрядность при этом достигается за счет объединения

Похожие материалы

Информация о работе