Разработка цифровых схем с микропрограммным управлением была модной в 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", русский перевод Мик Дж., Брик Дж. "Проектирование микропроцессорных устройств с разрядно-модульной организацией".
Опишу здесь простейший вариант цифровой управляющей системы с микропрограммным управлением.
Предположим, у нас есть некий внешний объект, которым можно управлять с помощью трёх цифровых (двоичных) сигналов 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", русский перевод Мик Дж., Брик Дж. "Проектирование микропроцессорных устройств с разрядно-модульной организацией".