1. Вариация: может оказаться неудобным такое кодирование адреса микропрограмм, потому что у нас интуитивно ощущается не эффективное использование памяти микропрограмм.
Если какая-то микропрограмма выполняется независимо от условии получаемых с ОБ (флагов), то мы должны эту команды сдублировать в памяти микропрограмм,в данном случае, 8 раз. Кажется не эффективным использование памяти микропрограмм, а так как мы знаем, что она на современных процессорах занимает большую площадь на кристалле, хотелось бы эту память сокращать. И 1 метод сокращения памяти — это формировать адрес следующей микрокоманды не принудительно, а путем введения микрокоманд условного перехода и формирования адреса следующей микрокоманды есетственным путем. В этом случае у нас должна быть специальная схема, которая обрабатывает эти команды. Поэтому рисуем комбинационную схему(на схеме пунктиром) формирования адреса микрокоманды. На ее вход подается условие от ОБ и формируется адрес микропрограммы с учетом текущего адреса. То есть мы отказываемся от этих частей, храним только лишь текущий адрес микрокоманды, однозначно определяемый кодом операции, но каждый раз увеличиваем этот адрес в этой схеме на 1,2,3,4… и тем самым, может быть изменяя РгАМк, но если требуется, мы эту естественную адресацию следующей команды меняем на новый адрес, который вычисляется этой схемой из содержимого поля расстояния, насколько перейти вверх или вниз, ну а также имея признак, что это делать надо. Пока этот признак не получен, то мы это действие по временно-принудительной адресации следующей микрокоманды не выполняем. В этом случае РгАМк хранит текущий адрес микрокоманды, который по завершению микрокоманды увеличивается на 1. Если возникнет необходимось изменить адрес следующей команды не на следующую в памяти, а находящейся на некотором расстоянии эта схема срабатывает вычисляя следующий адрес исходя из содержимого полей микрокоманды и извлекается новая микрокоманда уже по новому адресу не из следующей ячейки, а на каком-то расстоянии. Но также эта схема формирования микрокоманды чтобы обеспечить естественное обращение к следующей команде должна изменить содержимое этого регистра, чтобы потом ее можно опять было увеличивать на 1 и последовательно выполнять команду.
2. Использование различных схем для формирования адреса следующей микрокоманды.
а)принудительное(1 схема)
б)способ естественной адресации(2 схема)
Микропрограмма имеет следующие подполя:
Хотелось бы еще сократить разрядность микропрограммной памяти поэтому здесь мы применяем несколько способов формирования управляющих функциональных сигналов:
1. Горизонтальное микропрограммирование(в схеме РгМк)
2. Вертикальное микропрограммирование. В микрокоманде кодируется номер микрооперации которую необходимо выполнить. Мы здесь так кодировали предположим 10 микроопераций но известно что из этих 10 операций не бывает чтобы хотя бы 2 из этих операций одновременно были активизированы. Так зачем нам все эти 10 разрядов кодировать. Возьмем 4 разряда и будем кодировать номер микрооперации а там поставим дешифратор с которого будет сниматься нужное количество микроопераций.
Это приводит к тому что несовместные во времени микрооперации могут быть подвергнуты вертикальному кодированию и при котором при декодировании используется дешифратор. Но реально могут оказаться ситуации когда одновременно некие 2 операции могут как кодироваться или встречаться при работе управляющего блока так и не встречаться. Поэтому все операции анализируются на предмет их совместности во времени и говорят что эти операции во времени не совместны и кодируется с помощью вертикального способа. Но сами эти вертикальные способы кодируются горизонтально. И вот таком случае такое кодирование называется смешенным.
3. Смешанное микропрограммирование. Совместные операции во времени операции кодируются горизонтально а не совместные во времени как вертикально. Частный случай смешанного микропрограммирования является когда группы вертикально кодируемых микроопераций подвергаются горизонтальному размещинию. В этом случае можно эффективно использовать память микропрограмм и тогда условная операция не будет содержать постоянной адресной части в этом случае в качестве адресной части будет использоваться какое-то поле где кодируется номер но на схеме будет стоять какой-то флажок(признак) считай это поле микрооперации как расстояние перехода. И только в одной команде будет присутсвовать это поле во всех других командах здесь будет находится произвольный номер микрокоманды который требуется выполнить. В этом случае признак (на схеме ) заводится как управляющий сигнал который разрешает интерпретировать поле которое в других случаях это номер какой-то микрооперации.
