Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов (1988) (1092085), страница 44
Текст из файла (страница 44)
Значение П2 передается П1, а содержимое счетчика уменьшается на единицу, и по результату проверки содержимого счетчика на нуль выясняется необходимость повторения цикла. После выхода из цикла в 5 образуется знаковый разряд и группа старших разрядов произведения, в (и — 1) разрядах У вЂ” группа младших разрядов произведения.
Следует отметить, что отрицательные сомножнтели должны представляться в дополнительном коде; если произведение оказывается отрицательным числом, то оно оказывается представленным в дополнительном коде. Струи Покажем описанные действия на примере умножения чисел со сс Х =- 01011, (1!ш) и У„о„= -„) = !0011, ( — 13„) (выделенный полужирным рязряд — знако- ИКГ вый, второй сомножитель пред- , 0 МК2 ставлен в дополнительном коде), икм', икв Проводимые при умножении ик(о ик9 действия иллюстрируются табл.
икта ику с-0 5. 27. с-7 МК4 На рис. 5.30 приведена схе- мку ма реализации данного алгорит- мк) ма в микропроцессорном устрой- мкб стве. икгб Алгоритм построен в пред- прайм ик77 а Г)., положении, что в регистре )т, хранится дополнительный код К,9 ф.т множимого, в регистре !та — до- МКГУ полнительный код взятого с об- ИК79 ратным знаком множимого, в регистр Т помещен дополнительный код множителя. Регистр )со рнс. 5,3!. размен(енне мнкропрограм- нспользУетсЯ лла формировании мы умножения по алгоритму нута а в нем старших разрядов произ- упраалннсспеа памяти ведения.
Для хранения признака П! используется триггер С и для хранения признака П2 — триггер Л регистра признаков БМУ. Микрокоманды МК! и МК2 осуществляют запись начального нулевого значения в регистры Ко и АС и триггер С. Микрокомацды МКЗ...
...МКб выполняют операцию арифметического сдвига вправо содержимого пары регистров АС вЂ” Т; МКЗ удвоением содержимого АС выдвигает из этого регистра знаковый разряд, передавая его для хранения в триггер Е, МК4 восстанавливает число в АС; МК5 сдвигает вправо содержимое АС, при этом знаковый разряд из триггера Е вдвигается в старший разряд АС, а выдвигаемый из АС младший разряд принимается в триггер Х; МКб осуществляет сдвиг вправо содержимого регистра Т, при этом в старший разряд принимается хранящийся в триггере Х выдвинутый из АС младший разряд, а выдвигаемый из регистра Т младший разряд принимается в триггер 2 и служит признаком П2.
Микрокоманды МК7...МК12 соответствуют блокам 3...7 схемы алгоритма на рис. 5.29, Вычитание множителя производится передачей в АС из регистра йд множителя с измененным на обратный знаком (МК>0) и последующим сложением содержимого регистров АС и )ео Таблица 5.28 Поля мх Ор Адрес МК о ПЗР Пояскекк» Адрес строки Адрес колодки мк!з' МК>0 МК20 о!! !!оо о!! !!!о оо ооо!о !о !о 00 11 00 11 !!о оооо ооо оо!о !!о оооо ооо!! !о!о Продолжеиие МК>Т МК>9 МК>6 МК21 !о!! 1!00 !!о! !!!о о!! о!Оо оо ооо!о 100 00!! оо ооо!о ооо! ! ооо! ! ооо! ! 0001! оо и оо оо оо !ю оооо >!о оооо ! >о оооо ! ю оооо ооо!о ооо>о ооо>о ооо!о ооо!о ооо!о ооо!о ооо>о ооо!о ооо>о ооо!о ооо!о ооо>о ооо>о ооо!о 0001 0 ооо! ! 000!! ООО! ! ооо! ! ооо! ! 0000 0001 оою 0011 0100 О! 01 О!10 о!!! 1000 ЮО> !о!о !о!! 1100 !!о! !1!О 1!1! ОООО 0001 0010 0011 0100 о!! ооо! о! ! оюо !о!! о!! о!! !оо! о!! о!о! о!! о!!о о!! пию !о!о о!о о!! о!!! !о!! о!о о!! !!!о о!! !!оо о!! !!о! оо ооо!! о!! !о!! оо >о оо оо 00 11 оо о! 00 11 !о о! 11 1! !о о! оо оо !о !о оо 00 11 00 1! ! оо оооо !оо !пп !!о оооо !!о оооо ООО 1!О! ооо оооо ооо о!о оооо ООО !1!О !!о оооо ооо ооо! ! ю оооо оо! оо!! !о! оо!! ооо оооо МК1 МК2 МК8 МК9 мКЗ МК4 МК5 МКТ МК6 МК18 МК11 МК>3" МК>4 МК>5 МК>2 (МК!2); в случае прибавления множителя в АС передается множимое нз регистра ц, (МК11).
В МК13 производится выдача признака П2 нз триггера 2 на выход Ф, БМУ, отсюда он поступает на вход С, ОУ и в ОУ проходит на выход переноса С„далее он прнннмается в триггер Ф БМУ и затем передается в триггер С, где он служит уже признаком П1. Таким образом реализуется операция П1 =-. П2, предусмотренная в блоке 8 схемы алгоритма на рнс. 5.29. Микрооперацня МК14 уменьшает на единицу содержимое счетчика, выполненного на регистре цр, МК15 выполняет операцию днзьюнкцнн над разрядами содержимого регистра йа для его проверки на равенство нулю; МК16 осуществляет условный переход по содержимому триггера Ф н в случае, еслн содержнмое регистра на оказывается не ранным нулю, МК17 осуществляет безусловный переход на начало цикла (к МКЗ). На рнс. 5.31 показаны размещение микропрограммы в управляющей памяти н последовательность переходов в процессе исполнения микропрограммы. В процессе размещения микропрограммы обнаруживается необходимость в дополнительных четырех мнкрокомандах: МК!8, МК19, МК20 н МК21, осущестнляющнх безусловные переходы в тех случаях, когда приведенный на рнс.
5.30 алгоритм требует таких переходов, при которых должны быть изменены адреса и строки н колонкн одновременно. Таблица 29 Метка перехода Вкд пе- рехода Оперода» цпэ Упраааенне прнэнаканн Операнд Коннентарнн Метка йо АС АС йо АС Т йо М1, М2 МЗ, М4 Мб Мб МТ, Мб М9 М1; М2: М4: М5: М7: Мб: М9: М8: МЗ: йо М!О М!О: йЗ йЗ М!1, М!2 М11: ЗСй ЗСС РРО НС2 РРО НСЕ МОР МОР М!2: М13 25! ЗСй ЗСй ЛСй ЗСй ЗСй ЗСй ЛСР ЛСй ЗЕР ЗСй 72Р , ЛСй ЗСС ЛСй ЗСй ЯСй ЛСС ЗСй ЛСС ЗХР РРО БТС РРО НСЕ РРО БТХ РРО НСХ РРг Бтг РРХ БТХ РР! НСХ РРО НСХ РРО НСХ РРО НСХ РРО НС2 РРО НС2 РРО НСЗ РРО НСЗ РРХ БТС РРХ БТС РРО НС2 РРО НС2 РРО НСЕ РРО НОЯ С!.й С!.й А!.й П.й БйА БйА БПй МОР МОР !1й МОР П.й МОР А!.й МОР МОР МОР ЭБМ ТЕй МОР МК! МК2 МКЗ МК4 МК5 МКО МК7 МКЗ МК9 МК10 МК!8 МК1 ! МК21 МК!2 МК!Зе МК1 3' МК!9 МК14 МК15 МК!б Продолдтенне МК! 7 МК20 В табл.
5.28 приведена микропрограмма в кодовых комбинациях. В табл. 5.29 приведена микропрограмма, представленная на языке Ассемблера. МИКРОПРОГРАММА ДЕЛЕНИЯ !ЬО! О!!О О,! 1 0 1 0 Частное с~о 1 1 1 1 1 1 а 010010 ! — ь! !о!о!о + 1,! 1 1 О О гс 1,1 1 О О О Ь а ! О ! ! О с>0 001110 2с 1-ь1, с + О,111 О О !О!О!О, о 0,00110 001100 1,О ! О ! О , о 2с ( — Ь)дон с 1,!О! !О гс 1,О!!О О ь од о!!о с)0 О,О О О ! О О О О ! О О 1,О ! О ! О 2с ь1„„ с с со 1О1!1О Рассмотрим операцию алгебраического деления чисел, представленных в форме с фиксированной точкой.
Прн этом выполнение операции содержит действия, связанные с определением знака частного, н действия, связанные с определением модуля частного. Знак частного может быть найден тем же приемом, что н знак произведения в рассмотренной выше микропрограмме алгебраического умножения с отделением знаковых разрядов. Поэтому ниже рассматривается лишь нахождение модуля частного. На рис.
5.32 показана построенная в содержательных обозначениях схема алгоритма нахождения частного положительных чисел а и Ь. Покажем выполнение операции на примере. Пусть после отделения знаковых разрядов модули делимого и делителя представляются числами а = О, 10010, и Ь = О, 10110,. Встречающуюся в алгоритме операцию вычитания числа Ь заменим прибавлением числа — Ь, представленного в дополнительном коде: ( — Ь)дод — — 1, 01010. дг ~й Рнс. 5.32. Схема алгорнтма нахождения частного положнтельных чнсел а н Ь, представленная в содержательных обозначениях Рнс. 5.33.
Схема алгорнтма деленая в мнкро- командах тадлииа хзо Выполняемая апе аиия !, а!и!! ,, О, 70070 +т, отото 000007 0 1 бычин!ание Сдюиг Оледи (ат ) оаоато Сддиг Юлей (Юч) т, тттаю 7 7 7 пою 7 +О, 70110 суммидадание Сддиг Юлей (йт) Сдйг Юлей (ач) О, 07170 О, итоо т ! 000107 +т,отото О! 00710 дч 01100 Вычитание Сддиг Юлей (Я!) Сддиг Юлей (й+) + ч.т ч 07010 007071 Вч!читана е сддиг Влада (ат) Сддиг Оледи (й+) т, 10110 т аыоо Х 070110 ~0, 10710 О, 00070 Ю Оатаа Суммидадание Сддиг Оледи (ат) сддиг Юлей (Оч) 707707 -+т 01070 1! 07770 О, 11100 Вьтитание СдВиг Оледи (ат) Сддиг Влада (ач) О, 71070 В табл. 5.3) показан процесс реализации этого примера в микропроцессорном устройстве.
Для хранения делимого (а) и возникающих ОСтатКОВ ИСПОЛЬЗОВаН РЕГИСТР К,; а РЕГИСтРаХ Яч И 7С, ХРаНЯтСЯ соответственно делитель (Ь) и дополнительный код взятого с обратным знаком делителя ( — Ья,„). Частное формируется в регистре Кы Предусматриваемое блоком 2 алгоритма на рис. 5.32 разветвление будем осуществлять по признаку, в качестве которого используем перенос, возникакнций при формировании очередного остатка. Из показанного выше примера видно, что очередной остаток получается всегда в результате суммирования чисел с разными знаками. При таком суммировании перенос из знакового разряда будет равен 1 в случае образования положительного остатка и равен () в случае образования отрицательного остатка.
Заметим, что значение очередного разряда частного совпадает со значением этого переноса из знакового разряда прн формировании остатка. Запись формируемых разрядов частного будем осуществлять в младший разряд частного в регистре К . При этом перед записью очередного разряда частного содержимое регистра ме должно быть сдвинуто на один разряд влево. Проверку на окончание операции, осуществляемую блоком у алгоритма на рис. 5.32, можно выполнить, организовав счет числа повторений цикла. Однако такая проверка проще реализуется С следующим образом.