Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Программная модель ALU-1Программная модель ALU-1 включает две составные части – операционный автомат 8-разрядного двоичного арифметико-логического устройства и управляющий автомат с программируемой логикой, который может работать как автономно, так и взаимодействуя с операционным автоматом. 1.1.1. Операционный автомат арифметико-логического устройства ALU-1 Рассматриваемая структура операционного автомата почти универсальна и позволяет реализовать большинство известных алгоритмов арифметических преобразований. Операционный автомат предназначен для реализации арифметических операций над двоичными числами, представленными Операционный автомат позволяет с помощью микропрограмм реализовать следующие арифметические операции: ■ сложение и вычитание в беззнаковой форме; ■ сложение и вычитание в прямом, обратном или дополнительном двоичном коде; ■ умножение в беззнаковой или знаковой форме; ■ деление в беззнаковой или знаковой форме без восстановления остатка или с восстановлением остатка. Кроме того, операционный автомат позволяет реализовать следующие поразрядные логические операции: ■ отрицание («НЕ»); ■ конъюнкция («И»); ■ дизъюнкция («ИЛИ»); ■ неравнозначность (исключающее «ИЛИ»). Из приведенного списка следует, что возможно реализация и других, более сложных арифметических и логических операций. Результатом выполнения всех арифметических и логических операций, за исключением умножения, является 8-разрядное число в формате, совпадающим с форматом исходных данных. Результат умножения может быть представлен как в 8-, так и в 16-разрядном формате. На рис. 1.1 представлена структура операционного автомата в том виде, в котором она выводится на экран компьютера программой, поддерживающей процесс разработки микропрограмм управления выполнением операций для АЛУ. Операционный автомат содержит следующие элементы: ■ входные 8-разрядные регистры Ax и Bx, допускающие загрузку исходных операндов из файла; ■ 8-разрядные регистры A и B операндов; ■ 8-разрядный арифметико-логический блок АЛБ с триггерами входного P0 и выходного P8 переносов (заемов); ■ два 8-разрядных двухвходовых мультиплексора MUX, выбирающих для входов R и S АЛБ прямые или инверсные значения из регистров A и B соответственно; ■ триггер Z (на рис. 1.1 явно не показан), значение которого формируется в соответствии с выражением Z = P8 DL и используется для формирования цифры частного в некоторых алгоритмах деления; ■ блок сдвига, включающий 8-разрядный реверсивный комбинационный элемент Сдв, выполняющий сдвиг, и два триггера – DL и DR, формирующие или принимающие данные слева и справа соответственно; ■ два 8-разрядных регистра результата C и D; ■ демультиплексор DMUX, передающий значение 8-разрядного слова F с выхода блока сдвига в один из регистров результата (C или D); ■ 4-разрядный двоичный счетчик Сч; ■ 8-разрядную шину, на которую могут быть переданы слова из регистров Ax, Bx, C, D и с которой поступают в регистры A и/или B. Регистры сами по себе никаких функциональных преобразований кодов не выполняют. Они являются лишь устройствами памяти, подключенными к общей шине. Входные регистры Ax, Bx и выходные регистры C, D могут находиться в одном из трех устойчивых состояний, которые позволяют подключать выходы регистра к шине или отключать их от шины. Если не принимать во внимание физические аспекты, то шину можно рассматривать как совокупность восьми переменных, каждая из которых может принимать одно из трех значений – «не активна», 0 или 1. В рассматриваемой версии модели ALU-1 арифметико-логического устройства возможна лишь передача в рабочие регистры A, B содержимого регистров Ax, Bx, C, D. При этом за один такт можно выполнить передачу только из одного регистра-источника в регистр A, в регистр B или в оба регистра одновременно. Для этого выполняется одна из четырех микроопераций y0, y1, y26, y27, подключающая к шине выводы соответствующего регистра-источника, а также микрооперация y2 или y3 (или обе одновременно), передающая состояние шины на входы регистров-приемников (см. рис. 1.1). Очевидно, что одновременное подключение к шине двух регистров-источников приводит к конфликту данных, поэтому оно является недопустимым. Одновременная же запись информации с шины в разные регистры-приемники, напротив, допустима. Однако такая необходимость редко встречается при реализации конкретных алгоритмов. Арифметико-логический блок АЛБ содержит комбинаторную схему функционального преобразователя и два элемента памяти – триггеры P0 и P8. Состояние триггера P0 может быть задано произвольно с помощью микроопераций y14 и y15. В дальнейшем оно участвует в микрооперациях сложения (вычитания) в качестве значения переноса (заема) младшего разряда. Триггер P8 изменяется только микрокомандами арифметических и логических микроопераций АЛБ. При выполнении арифметических микроопераций он принимает значение переноса либо заема, возникающего из старшего разряда. При выполнении логических микроопераций триггер всегда устанавливается в «0». Остальные микрооперации сохраняют ранее установленное значение P8. Арифметико-логический блок реализует ряд бинарных операций Арифметико-логический блок реализует следующие бинарные микрооперации (y8, y9, y10, y11, y12, y13): P8.Q = R + S + P0, P8.Q = R – S – P0, Кроме того, АЛБ реализует унарную микрооперацию P8.Q = P8.R (y32), в результате выполнения которой значение P8 не изменяется. Блок сдвига содержит собственно элемент реверсивного сдвига Сдв на один разряд и два триггера данных – «слева» DL и «справа» DR. Каждый из этих триггеров может быть установлен с помощью микроопераций y28, y29, y30, y31 таким образом, чтобы он мог принять значения разрядов, теряемых при выполнении сдвига слова Q. Текущие значения триггеров DL и DR могут рассматриваться как значения логических условий x2 и x3 соответственно. При сдвиге вправо младший разряд Q0 сдвигаемого слова Q записывается в триггер DR, а в старший разряд F7 выходного слова F помещается значение, предварительно установленное во триггере DL. При этом состояние самого триггера DL не изменяется. При сдвиге влево, наоборот, выполняются операции DL = Q7, F0 = DR, DR = DR. Элемент сдвига Сдв позволяет преобразовать входное слово Q в выходное слово F и без сдвига. При этом значения триггеров DL и DR не изменяются. Таким образом, блок сдвига выполняет следующие микрооперации (y16, y17, y18, y19, y20): ■ F7:0 = Q7:0 – передача без сдвига; ■ F7:0.DR = DL.Q7:0 – обыкновенный сдвиг вправо; ■ DL.F7:0 = Q7:0.DR – обыкновенный сдвиг влево; ■ F7:0.DR = DR.Q7:0 – специальный сдвиг вправо; ■ F7:0 = Q6:0.НЕ(Z) – специальный сдвиг влево. Специальный сдвиг вправо удобно использовать в микропрограмме умножения при формировании 16-разрядного произведения, а специальный сдвиг влево – в микропрограмме деления при формировании очередной цифры частного. Четырехразрядный двоичный счетчик Сч реализует две микрооперации – y22 (начальная установка счетчика в состояние «0000») и y23 (инкремент). Он принимает последовательные значения от 0000 до 1000. Счетчик формирует два логических условия – x4 и x5. Логическое условие x4 истинно, если счетчик находится в состоянии 1000, а логическое условие x5 истинно, если состояние счетчика больше, чем 0011. Назначение мультиплексоров MUX и демультиплексора DMUX очевидным образом следует из структурной схемы операционного автомата, представленной на рис. 1.1. Полные списки микроопераций, реализуемых в операционном автомате ALU-1, и формируемых в нем логических условий приведены в табл. 1.1 и 1.2 соответственно. Таблица 1.1 Микрооперации, реализуемые в операционном автомате ALU-1
продолжение табл. 1.1
окончание табл. 1.1
Таблица 1.2 Логические условия, формируемые операционным автоматом ALU-1
Рассмотренная модель операционного автомата может работать в двух режимах – автономно или под управлением микропрограммы, являющейся составной частью модели управляющего автомата. Автономный режим реализуется только пошагово и позволяет проверить правильность разработанных алгоритмов арифметических и логических преобразований на ряде конкретных примеров.
Дата добавления: 2014-11-08; просмотров: 548; Нарушение авторских прав Мы поможем в написании ваших работ! |