Разработка программно-вычислительного комплекса, предназначенного для разработки эффективных форматов микрокоманд для различных способов микропрограммирования
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
µтся отводить большое количество разрядов. Горизонтальное кодирование применяется при относительно небольшом количестве микроопераций [1].
2.3.2 Вертикальное кодирование
При вертикальном способе кодирования (рисунок 2.5) каждой различимой совокупности МО, включенной в ту или иную МК, присваивается позиционный код минимальной длины , где - количество различимых по операционной части МК. ФСМО в этом случае представляет собой комбинационную схему (КС), реализующую m булевых функций от k переменных.
Рисунок 2.5 - Вертикальный способ кодирования
Этот способ кодирования требует наименьшего количества разрядов в операционной части микрокоманды. Однако при этом необходимо использовать дешифратор на большое количество выходов. При вертикальном кодировании в микрокоманде указывается лишь одна микрооперация, что приводит к увеличению длины микропрограмм [1].
2.3.3 Горизонтально-вертикальное кодирование
При горизонтально-вертикальном способе кодирования МО (рисунок 2.6) все множество МО разбивается на подмножества, в каждое из которых включаются только несовместимые по времени исполнения МО. Внутри каждого подмножества сигналы управления кодируются вертикальным способом. Подмножества в операционной части МК располагаются по горизонтальному принципу. Другое название этого способа - кодирование раздельными полями. Расшифровка кодов МО осуществляется ФСМО, представляющим собой R дешифраторов (по одному на каждое выделенное подмножество МО).
Рисунок 2.6 - Горизонтально-вертикальное кодирование
Каждому полю соответствует свой дешифратор микроопераций. Группа содержит те микрооперации, которые не встречаются вместе в одной микрокоманде. Из группы может выполниться только одна микрооперация. Одновременно выполняемые микрооперации в такте размещаются в разные группы. Этот способ кодирования обеспечивает меньшую гибкость, чем горизонтальное кодирование. Изменение хотя бы одной микрокоманды может потребовать нового разбиения полей [1].
2.3.4 Вертикально-горизонтальное кодирование
При вертикально-горизонтальном способе кодирования (рисунок 2.7) все множество МО также делится на подмножества, однако в каждое подмножество включаются только те МО, которые связаны между собой отношением совместимости по времени исполнения (встречаются вместе хотя бы в одной МК). Для всех этих подмножеств выделяется в операционной части МК одно поле М3, длина которого определяется максимальным количеством МО в подмножествах. Принцип кодирования МО в поле М3 - горизонтальный. Идентифицирующее поле М2 заполняется вертикальным кодом номера подмножества, зафиксированного в поле М3. Отличительной особенностью вертикально-горизонтального способа кодирования является требование несовместимости выделенных подмножеств МО между собой. Удовлетворить этому требованию можно, выделив наиболее часто встречающиеся в МК микрооперации в отдельное подмножество (универсальную группу). Кодирование МО универсальной группы - горизонтальное. Код универсальной группы помещается в поле М1 операционной части МК. Другое название этого способа - кодирование несовместимыми подмножествами МО.
Рисунок 2.7 - Вертикально-горизонтальный способ кодирования
Вертикально-горизонтальное кодирование позволяет строить оптимальные программы, как по длине микрокоманды, так и по длине микропрограммы. Но при этом теряется стройность микропрограммирования, так как используется косвенное кодирование. Схемная реализация является наиболее сложной из всех способов формирования управляющих сигналов [1].
2.4 Оценка трудоемкости при кодировании различными способами
Горизонтальное кодирование:
а)определяется разрядность операционной части микрокоманды, на каждую микрооперацию отводится один разряд. Длина кода К:
К = m,
где m - общее число микроопераций.
Вертикальное кодирование:
а)определяется разрядность операционной части;
б)каждой микрокоманде присваивается неизбыточный двоичный код. Длина кода К:
К =,
где - количество различимых по операционной части микрокоманд.
Горизонтально-вертикальное кодирование:
а)определяется число групп, которое определяется оптимальным количеством одновременно выполняемых микроопераций;
б)определяется число функциональных сигналов в конкретной группе, одновременно выполняемые микрооперации находятся в различных группах;
в)определяется разрядность каждой группы при вертикальном кодировании;
г)определяется разрядность операционной части микрокоманды для всех групп.
Длина любого поля, длина операционной части m = ?zi , где mi - количество операций в подгруппе.
Вертикально-горизонтальное кодирование:
а)определяется число функциональных сигналов в группе, которая может быть определено числом одновременно выполняемых микроопераций при горизонтальном кодировании;
б)определяется возможность сочетания микроопераций и разрядность, соответствующая минимальному числу микроопераций в группе;
в)определяется число групп, которое определяется совокупностью микроопераций;
г)определяется разрядность вертикального кодирования числа групп;
д)определяется разрядность операционной части микрокоманды при горизонтальном кодировании микрооперации в группе и вертикальном кодировании номера группы.
Длина операционной части m = ?zi