Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов (1988) (1092085), страница 42
Текст из файла (страница 42)
В поле вида перехода приводится мнемоническое обозначение вида перехода, осуществляемого БМУ прн формировании адреса очередной микрокоманды. В поле управления признаками приводится мнемоническое обозначение действий, связанных с выдачей и хранением признаков в БМУ. В поле операции в ЦПЭ приводится мнемоническое обозначение операции, выполняемой в ОУ. В поле операнда записывается имя регистра, который используется в качестве источника и (или) приемника информации. Поле комментариев служит для записи любых пояснений смысла выполняемых по микрокоманде действий, которые облегчают чтение микропрограммы.
Приведенная форма записи микрокоманд на языке Ассемблера ие единственна. Микропрограмма сложения с использованием модифицированного кода. Микропрограмма сложения упрощается, если числа представляются в модифицированном коде. Особенность модифицированного Таблица З.20 кода состоит в том, что он предусматривает использование двух знаковых разрядов с одинаковыми значениями.
Несовпадение значений знаковых разрядов имеет место лишь в случае возникновения переполнения разрядной етки, что и служит признаком, по оторому выявляется это событие. Пусть слагаемые хранятся в реги- трах й, и АС. На рис. 5.25 приведена хема алгоритма сложения. Микрооманда МК1 осуществляет сложение занесением суммы в регистры Й, и С. Далее проводятся операции по проверке совпадения значений знаковых разрядов суммы.
Для этого в микрокоманде МК2 предусматривается сдвиг влево содержимого АС с передачей выдвигаемого старшего зна- Рнс. о.ло. Схема алгоритма сложения с использованная моднфнннкового разряда в триггер Х регистра роааняого кода признаков БМУ. Затем в микрокоманде МКЗ предусматривается повторный сдвиг влево содержимого АС с занесением в младший разряд АС хранящегося в триггере Х значения старшего знакового разряда; выдвигаемый из АС младший знаковый разряд суммы передается в триггер 2.
Микрокоманда МК4 производит прибавление младшего знакового разряда суммы к содержимому младшего разряда АС. При этом в младшем разряде АС образуется сумма по модулю 2 знаковых разрядов суммы слагаемых, она микрокомандой МК5 выдвигается из АС и затем в микрокоманде МК5 используется в качестве признака, по которому выполняется разветвлеиие.
В случае несовпадения знаковых разрядов их сумма по модулю 2 равна 1 и происходит переход к микрокоманде, определяющей действия при возникновении переполнения разрядной сетки. В табл. 5.21 приведено размещение микропрограммы в ячейках управляющей памяти, в табл. 5.22 и 5.23 — микропрограммы соответственно в кодовых комбинациях и на языке Ассемблера. Тадллца д 21 ддрес с«1река С 00011 00011 00011 00011 - РООМ 00011 С= 00011 С 00011 ми«ренамакде )1есялгакнага адрес <а,0) <З,'1) <О 2) <6 6) <О Ф) <0~ Х) <е, 6) <3 7) лдрес келенки 0000 0001 0010 ООМ 0 100 0101 0110 0111 М«1 МК2 Юрадолмсние Ререлелненое г 1 мко 2 О мк+ Мко МК6 239 Таблица 2.22 Поля МК БМУ Адрес МК в ПЗУ П Ля МК ОУ Повсненяя Адрес строкн Адрес колонка ОООО ООО! ОО1О О! ! 0001- О! ! 0100 000! ! 00011 0001! ОО 11 ОО 1! 000 000! 000 1!01 00!! 00011 0100 0101 0110 01!1 0001 ! 000! ! 000!! 00011 000 110! О!! 110! 000 1111 !10 0000 О!1 010! 01! 01!О 011 О!!! 100 00!! 10 О! !О 11 00 11 ОО 1! Таблица б.рб Вяд пе- рехода Операвяя цпэ Метка перехода Управлевне прнанакемн Операяд Комментарна Метка РРО НС2 РРО 5ТЕ РР2 5Т2 РРг НС2 РРО НСЕ РРО НС2 Аг.й А1.й А!.й !Нй 5йА НОР й! АС АС АС АС ЗСй аСй ЗСй ЗСй ЗСй ЛР1.
М1, М2 М2: МИКРОПРОГРАММА ВЫЧИТАНИЯ Будем считать, что отрицательные числа хранятся в микропроцессоре 1а также в оперативной памяти) в дополнительном коде. Пусть уменьшаемым является содержимое регистра йт, вычитаемым — содержимое аккумулятора АС. Очевидно, можно воспользоваться операцией сложения, если предварительно изменить на обратный знак вычитаемого. Так как вычитаемое представлено в дополнительном коде, то изменение знака потребует инвертирования всех разрядов, включав и знаковый, а затем прибавления единицы в младший разряд числа. Для вычитаемого, хранящегося в АС, такая операция может быть выполнена одной мнкрокомандой: 240 ЦПЭ: АС+С,-м АС; БМУ: ! — Фв МК! МК2 ! Продолже- ' ние Переполнение МКЗ МК4 МКЗ МКО МК! МК2 МКЗ МК4 МКЗ МКО Продолжение Переполне- ние МИКРОПРОГРАММА УМНОЖЕНИЯ Умножение чисел без знака.
Покажем процесс умножения чисел без знака на примере умножения чисел 1011., и 1101,: + 1 0 1 1 множимое 1 1 0 1 множитель 1 0 1 1 1-е частичное произведение + 0 0 0 0 2-е частичное произведение 1 0 1 1 3-е частичное произведение 1 О 1 1 4-е частичное произведение 1 0 0 0 ! 1 1 1 произведение Схема умножения предусматривает последовательный анализ разрядов множителя и формирование частичных произведений, каждое нз которых определяется значением соответствующего разряда множителя: если в разряде множителя содержится 1, то частичное произведение равно множимому, если в разряде множителя содержится О, то частичное произведение равно нулю.
Затем произведение находится суммированием соответствующим образом сдвинутых относительно друг друга частичных произведений. В дальнейшем будем рассматривать способ выполнения операции, в котором анализ множителя проводится, начиная с его младшего разряда, и соответственно формирование частичных произведений начинается с 1-го частичного произведения. Если сомножители — и-разрядные числа, то процесс получения произведения состоит из л-кратного повторения цикла, включающего в себя прибавление очередного частичного произведения к сумме предыдущих частичных произведений и сдвиг полученной суммы на один разряд вправо (и, таким образом, подготовка этой суммы к прибавлению к ней частичного произведения в очередном повторении цикла).
Заметим, что число разрядов в произведении равно 2 и. Однако в каждом акте суммирования и-разрядное частичное произведение прибавляется лишь к и старшим разрядам сдвинутой текущей суммы частичных произведений. Из этого следует, во-первых, что младшие разряды этой суммы остаются неизменными, не принимая участия в процессе суммирования, и для их хранения может быть использован отдельный регистр младших разрядов сумм, и во-вторых, что может использоваться и-разрядный сумматор и результат суммирования может быть помещен в и-разрядный регистр старших разрядов суммы (следует только предусмотреть хранение переноса, возникающего при суммировании из старшего разряда, и при сдвиге суммы вправо его передачу в старший разряд суммы). Рассмотрим реализацию операции в микропроцессорном устройстве.
Процесс получения произведения чисел 1011, и 1101, иллюстрируется табл. 5.24. Тадлииа 224 Ои5лалняеыая але аиия Я5 иг 1107-- -~. 0770— 0000— ° - 0000 ~- 7071 + — 1017 -- О7О1- ! 0070 + "° 7015 ы07— в 0110 ~ 1017 — 0001-- ° 1000 о! 70П ! ь.! ! ! ! ! ~в сддиг Глс) СдВ75г Гт) 0 -е ! ! Сложение Сддиг Глс) сддиг Гт) сддиг Глс) Сддиг Гт) ! а 1-~ ~ 1071-~ ! ~ 7107 "ъ ! ! ! ! -е. 1770 -~ -е-1 Сложение сддиг Глс) Сддиг Гт) сложение С0075г Глс) Сддиг Гт) ПроизВедете ! ! ~~0 7777 ылади7ие разряаы раз я5$5 242 Здесь хранение миожимого предусматривается в регистре й,, множителя — в регистре Т.
Регистр Т одновременно используется для хранения младших разрядов произведения, не участвующих в последующих операциях суммирования частичных произведений. Старшие разряды произведения формируются в регистре й,. Значения отдельных разрядов множителя (начиная с его младшего разряда) анализируются путем последовательного сдвига вправо содержимого регистра Т. Выдвигаемый из регистра младший разряд множителя принимается в триггер Х БМУ, и по содержимому этого триггера осуществляется разветвление процесса: при Е = 1 к содержимому регистра йз прибавляется множимое, при Х = О акт суммирования 'пропускается. Возникаю!ций в процессе суммирования перенос помещается в триггер С регистра признаков БМУ. При сдвиге содержимого АС в старший разряд регистра принимается содержимое триггера С, а выдвигаемый из регистра младший разряд запоминается в триггере У,.
Затем при сдвиге содержимого регистра' Т в старший разряд регистра принимается содержимое триггера Х, выдвигаемый из регистра младший разряд заносится в тот же триггер Х. Не каждая из указанных в таблице операций может быть выполнена одной микрокомандой. Так, чтобы хранящееся в регистре й, множимое прибавить к содержимому регистра й„потребуется предварительно передать содержимое регистра й, в аккумулятор АС, после чего можно суммировать содержимое регистров й, и АС.
Невозможно также непосредственно выполнить сдвиг вправо содержимого регистра й, Для получения в регистре й, сдвинутого значения потребуется дубли- Рис. о.26, Схема алгоритма оиервиии кодового умиожеиии ровать содержимое кх в АС, произвести сдвиг содержимого АС и затем передать содержимое АС в регистр цх. Кроме того, прн построении схемы алгоритма потребуется организовать счетчик числа повторений цикла, при каждом прохождении которого формируется очередное частичное произведение и оно прибавляется к сумме предыдущих частичных произведений. На рис.
5.26 приведена схема алгоритма рассматриваемой операции умножения. Счетчик числа повторений цикла выполнен здесь на регистре ц„в который в качестве начального значения помещается число, равное количеству разрядов в сомножителях. Микрокоманда МК1 производит установку в АС нулевого значения, которое затем при первом прохождении цикла микрокомандой МК6 передается в регистр Йх и в последнем устанавливается исходное значение. В той же микрокоманде МК! производится установка нулевого значения в триггере С регистра признаков БМУ, МикрокомандыМК2 и МКЗ производят сдвиг содержимого АС и регистра Т с соответствующим табл.