vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2019-03-01 05:31 pm

Что такое микропрограммное управление

Разработка цифровых схем с микропрограммным управлением была модной в 60-70-е годы прошлого века. Выпускались даже специальные серии микросхем, типа Am2900 (передранные в Советском Союзе под именем КМ1804) и другие. Многие первые компьютеры и микропроцессоры были микропрограммно управляемыми, такие как IBM/360, PDP-11, VAX, 6502. С изобретением RISC микропрограммный подход перестал быть популярным, но тем не менее может иметь свою область применения.

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

Предположим, у нас есть некий внешний объект, которым можно управлять с помощью трёх цифровых (двоичных) сигналов P, Q, R. Своё состояние объект сообщает в виде трёх тругих цифровых сигналов X, Y, Z.



Построим схему, которая будет управлять сигналами P Q R, в зависимости от сигналов X Y Z. От тактового генератора, на каждом следующей положительном фронте синхросигнала значения управляющих сигналов будут изменяться.

Введём регистр PC, хранящий текущий адрес микрокоманды. Ориентировочно прикинем, что тысячи команд нам хватит, и сделаем регистр 10-битным. Добавим память программы, по сути ПЗУ, принимающее на вход адрес PC и выдающее одно слово - текущую микрокоманду.



Теперь определим формат микрокоманды. Для каждого управляющего сигнала P Q R делаем однобитовое поле, определяющее значение этого сигнала. Чтобы программа могла ветвиться, добавляем поле логического условия, зависящего от входов X Y Z, при котором происходит переход по заданному адресу (иначе переходим к следующей команде). И последнее поле команды - адрес для перехода.

Вычислим размер команды. Для трёх входных переменных существует 2^2^3 = 256 возможных логических условий, то есть надо 8 бит для поля условия. С адресом мы уже определились: 10 бит. Всего получается 3 + 8 + 10 = 21 бит для команды. Итого подребуется ПЗУ размером 1024*21 = 21504 бит.



Рисуем полную схему. Перед регистром PC добавляем мультиплексор, который выбирает значение адреса следующей команды и управляется блоком проверки условия. Выбирается либо следующий адрес PC+1, либо адрес перехода из поля текущей команды.



По такой схеме устроены практически все микропрограммные системы, с небольшими усложнениями. Дальше попробуем применить её для процессора МЭСМ-6.

Литература по теме: "Bit-Slice Microprocessor Design", русский перевод Мик Дж., Брик Дж. "Проектирование микропроцессорных устройств с разрядно-модульной организацией".

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org