знак вычитаемого, хранящегося в Ргі (sign Р г і: = (sign Рг1)0бр)- Остальная часть алгоритма полностью совпадает с алгоритмом сложения на рис. 8-2.
ГСА операции умножения изображена на рис. 8-4. Множимое и множитель в начале операции помещены соответственно в Ргі и См. Первый шаг операции состоит в передаче множителя из См в Рг2 (Рг2: = См). После этого сумматор, на котором будут накапливаться частичные произведения, «обнуляется»( См: = 0), а в счетчик тактов записывается число разрядов множителя (СчТ: = я). Далее, если в младшем разряде множителя записана единица (Рг2 [я] = 1), к сумме частичных произведений добавляется множимое (См: = См -f- Ргі), в противном случае (Рг2 [п] = 0) это действие пропускается. После этого сумма частичных произведений и множитель сдвигаются вправо на 1 разряд (См: = У?1 (См),
V«
уя
Уе
У«
■У7 ■У,
~Уіо
■Уз
■Уг
& |
|
|
1------ :------ 1 0 |
J |
|
|
П П ' = 1 |
■«--- ^upiCirtSjH. |
|
|
|
|
7 |
|
/7/7 |
С ч Т |
-У,г |
|
|
|
|
|
|
|
|
|
|
■Ув |
|
Конец |
|
71 * |
|
|
|
|
Рис. 8-1. |
Операционная часть АУ |
Рис. 8-2. ГСА Гх операции сло |
|
|
|
|
жения |
|
Рг2: = 7?1 (Рг2)), из счетчика тактов вычитается единица (СчТ: = СчТ—1), а
восвободившийся в связи со сдвигом старший разряд Рг2 записывается младший разряд сумматора (Рг2 [1]: = См [л]). Если не все разряды множителя обра ботаны (Сч ТФ 0), операции суммирования и сдвигов повторяются. После того как СчТ окажется равным нулю, старшие л разрядов произведения оказываются
вСм. Далее делается округление л-разрядного произведения в зависимости от
|
|
|
|
|
значения |
(л + 1)-го разряда, который находится, |
в первом разряде Рг2. Если |
Рг2 [1J = |
1, |
то значение в сумматоре увеличивается на единицу л-го разряда |
(См: = |
См + |
2—л). После этого определяется знак результата в зависимости от |
знаков |
сомножителей: если они разные (sign Ргі |
ф sign Рг2), то результату |
присваивается отрицательный знак (sign См: = 1), |
если одинаковые (sign Ргі = |
= sign |
Рг2), |
то это действие пропускается и в знаковом разряде сумматора ос |
тается |
нуль — результат положителен. |
|
ГСА операции деления изображена на рис. 8-5. Перед началом операции Делимое хранится на сумматоре, а делитель в Ргі. Для получения частного в ходеоперации используется Рг2, который предварнтелышочпщается(Рг2: = 0), и в его знаковый разряд заносится единица, если на сумматоре — отрицатель ное число (sign Рг2: = 1). После этого знаковый разряд сумматора обнуляется и в счетчик тактов заносится п (sign См: — 0; СчТ: = п). Далее из делимого вы читается делитель (См: = См + (Ргі)0бр). и если на первом шаге окажется, что
знак сумматора положителен (sign См = |
0), то делимое больше делителя, резуль |
тат больше единицы, т. |
|
е. будет пере |
|
полнение |
разрядной |
сетки, |
что |
и |
фикси |
|
руется (ПП: = |
1). |
Если |
делимое |
меньше |
|
делителя, |
то |
результат |
|
первого |
|
вычи |
|
тания |
отрицателен |
(sign |
|
См = |
1), |
|
после |
|
чего |
частное |
сдвигается |
в |
влево |
на |
один |
|
разряд (Рг2: = |
L 1 (Рг2)), |
(л + |
1)-й разряд |
|
Рг2 |
заносится |
инверсия |
знака |
|
сум- |
|
|
|
|
|
|
|
|
|
|
Г |
|
|
|
|
|
|
|
|
|
|
См=-См*Рг1 У, |
|
|
|
|
|
|
|
|
|
РгІ-МІРП) |
|
|
|
|
|
|
|
|
|
|
Cv'RUCn) |
у, |
|
|
|
|
|
|
|
|
|
Рг2[і]Чм[п] |
СчѴ-СчТ-1
У* |
signСм:-1 Ч10 |
|
Конец, |
Ук |
Рис. 8-3. ГСА Г 2 операции вы |
Рис. 8-4. ГСА Г3 опера |
читания |
ции умножения |
матора — значение цифры частного на данном шаге, число в сумматоре удваи вается сдвигом влево на один разряд (См: = L 1 (См)), а из счетчика тактов вы читается единица, так как мы переходим к получению следующей цифры част ного (СчТ: = СчТ — 1). Если на каком-либо из предыдущих вычитаний в сум маторе оказывается отрицательное число (sign См = 1), то к сдвинутому влево содержимому сумматора добавляется делитель (См: = См + Ргі), в противном случае (при sign См = 0) делитель вычитается (См: = См + (Рг1)0бр)- Спустя п циклов (СчТ = 0) модуль частного заносится в сумматор (См: = |Рг2|), после
чего результат округляется по значению (л + |
1):й цифры частного, которая |
к этому моменту занесена и (я + 1)-іі разряд Рг2, |
п в зависимости от знаков де |
лимого и делителя, которые хранятся в знаковых разрядах Рг2 и РгІ, в сумма
торе |
формируется |
|
знак |
|
результата. |
|
• |
Таким образом, для выполнения |
сло |
|
жения, вычитания, умножения |
и деления |
|
в операционном |
устройстве |
|
АУ должны |
|
быть реализованы следующие микроопера |
|
ции: |
Уі: См: = (См)обр; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
у»: См: = |
См + |
РгІ; |
|
|
|
|
|
|
|
Уз : См: = |
См + |
(Рг1)0бр; |
|
|
|
|
|
Уі : ПП: = 1; |
|
|
|
|
|
|
|
|
|
у5 : sign РгІ: = |
(sign |
|
|
|
|
|
|
|
уа : Рг2: = См; |
|
|
|
|
|
|
|
|
|
у7: См: = |
0; |
|
|
|
|
|
|
|
|
|
Ув '■СчТ: = я; |
|
|
|
|
|
|
|
|
|
уа : Рг2: = |
Ri (Рг2); |
|
|
|
|
|
|
|
у10 : См: = Ri (См); |
|
|
|
|
|
|
|
Уп '■Рг2 [1]: = См [л]; |
|
|
|
|
|
|
|
у1г: СчТ: = СчТ — 1; |
|
|
|
|
|
|
|
Уіз : См: = См + 2_,!; |
|
|
|
|
|
|
|
Уы '■sign |
См: = |
1; |
|
|
|
|
|
|
|
Ун : Рг2: = 0; |
|
|
|
|
|
|
|
|
|
Уіа : sign Яг2: = |
1; |
|
|
|
|
|
|
|
у17: sign См: = 0; |
|
|
|
|
|
|
|
|
Уis"- Рг2: = И (Рг2);______ |
|
|
|
|
Ую : Рг2 |
[я + 1]: = sign См; |
|
|
|
|
у20 : См: = И (См); |
|
|
|
|
|
|
|
1/гг : См: = |
|Рг2 |. |
|
|
|
|
|
|
|
|
В ГСА |
на |
рис. |
8-2 — 8-5 |
слева |
от |
|
операторных |
вершин |
запишем |
символы |
|
этих |
микроопераций. |
|
Кроме |
того, |
пере |
|
нумеруем |
различные |
|
микрокоманды |
и |
|
запишем операторы |
|
—Кщ |
справа |
|
или |
|
над операторной вершиной. Рядом с услов |
|
ными вершинами запишем символы логи |
|
ческих условий: |
|
|
|
|
|
|
|
|
|
|
хг : sign См; |
|
|
|
|
|
|
|
|
|
x2 : sign РгІ; |
См [П]; |
|
|
|
|
|
|
хя : sign См = |
|
|
|
|
|
|
Хі : Рг2 [я]; |
|
|
|
|
|
|
|
|
|
х5 : СчТ = 0; |
|
|
|
|
|
|
|
|
|
|
Рг2 [1]; |
|
sign Рг2; |
|
|
|
|
|
х7 : sign РгІ = |
|
|
|
|
|
Хд : СчТ = я; |
1]. |
|
|
|
|
|
|
|
Ха ■Рг2 [я + |
|
|
|
|
|
|
Матричные |
|
схемы |
алгоритмов |
для |
Рис. 8-5. ГСА Г4 операции деле- |
граф-схем Г г—Л, приведены |
в табл. |
8-1— |
ния |
8-4. |
|
|
|
|
|
|
Kj |
встречается дважды. Так как при объединении |
В ГСА Гі и Г2 оператор |
все операторы в пределах одной |
ГСА должны быть различными, в MCA Мг и |
Л42 второй оператор |
|
переобозначен и заменен на Ур |