книги из ГПНТБ / Корнейчук В.И. Арифметические устройства ЭЦВМ учеб. пособие
.pdfкод положительного числа совпадает с его пряный кодом, то об разовывать прямой код результата следует только в случае п о у чения отрицательного результата. Из приведенного алгоритма следует, что суммирующий блок должен включать в себя три ре
гистра РХ, РУ и Р ? , |
сумматор |
Z |
и ЕМУ. Выходы Рл и РУ |
долж |
ны быть подключены к |
входам 2Г |
, а |
выходы 2 - ко входам |
P Z . |
Составим микроалгоритм /І.ІА/ реализации операции сложения па пе речисленных узлах. Для загшси МА будем использовать язык логичесшіх схем алгоритмов Н.А.Ляпунова. Буквы, используемые для обозначения микроопераций и логических условий, заключаются в круглые скобки, которые при необходимости снабжаются номера ми. микрооперации /МО/ от логических условий /ЛУ/ отличаются тем, что после последних всегда имеется стрелка, направленная
вверх и снабженная цифрой. Если ЛУ |
А выполняется /А =І/, |
то |
|||||||
осуществляется переход КМО, указанный стрелкой. |
Если ЛУ не |
вы |
|||||||
полняется |
/А=0/, |
то осуществляется переход к МО В или ЛУ |
В, |
за |
|||||
писанному |
нелосредствптю |
за |
ЛУ А. Пусть /+/=0 , |
а /-/= 1 . Тогда |
|||||
МА сложения /МАО/ будет иметь вид: |
|
|
|
|
|||||
(fiAC)- (но)(х„)і,(Вкі,^(^»)^1(KoK/>x) iL |
)* |
|
|
||||||
ix( |
ß |
(9, f , |
Л ) М |
в ° * п ) і '1(п н п )(ъ Л 1 * (вт )ю № * * ю £ к |
|||||
Выполнение MAC начинается по сигналу ВО, затем проверяется ЛУ |
|||||||||
Хр. Если Хр =0, |
то осуществляется |
МО выдачи прямого кода |
с |
ре |
|||||
гистра X |
/ВКРХ/. Если Xр =1, |
то осуществляется |
переход |
по |
|
||||
стрелкам I к МО выдачи обратного кода с регистра I /ВОКРХ/, Да |
|||||||||
лее проверяется |
ЛУ I |
ѵ |
Л |
/ . |
По результату |
проверки |
осу |
||
ществляется выбор МО /ИКРУ/ или /ВОКРУ/. Далее следует МА при ема кода на регистр 2 /ІЖ Р?/ и выдача его прямым или обратным кодами. Завершается MAC выработкой сигнала КО.
Следует отметить, что это не единственный способ задания МА. Другим возможным методом записи МА являются графы.
На рис.2.1-1 показан пример графа/рассмотренного выше MAC. По приведенному MAC легко воспроизвести схему суммиру
ющего блока /СБ/ /р и с .2 .1 -2/ на базе комбинационного сумматора, особенностью которого является возможность совмещения во време ни МО ВКРХ и ВКРУ. Кроме упомянутых
- 9 -
Р ис. 2 . 1 -f
ранее регистров и ZL в схеме СБ имеются |
триггера ТХ и |
|||||||
ТУ знаков регистров X и У, |
ШУ на ДЗ и схема выделения |
|||||||
сигнала |
Q |
переполнения |
|
|
.Как известно, |
|||
сигнал Q |
фиксируется при |
появлении комбинаций 1 0 или 01 |
||||||
в знаковых |
разрядах £ |
с |
помощью схемы неравнознач |
|||||
ности /+ |
/ . |
При этом знак результата определяется по пер |
||||||
вой цифре. БМУ вырабатывает сигналы ПК и КО с помощью |
||||||||
двух ЛЗ. Задержка |
|
|
|
|
|
|||
|
|
|
Г, * t t + t c f а ^ г ~ |
|
у |
|
||
где |
- |
время выдачи кода с регистра, |
|
Г £- |
- задерж |
|||
ка |
сигналов |
в сумматоре, |
£г |
-время |
приема кода на ре |
|||
гистр. Следовательно: |
|
|
|
|
|
|||
В случае |
использования накапливающего |
£ |
|
регистр FZ из |
||||
схемы СБ можно■исключить. При сравнении различных блоков, выполняющих одни и те же операции,представляет интерес оценивать аппаратурные затраты. В общем случае сделать такую оценку затруднительно,так как аппаратурные затраты сильно зависят от используемой системы элементов и принци пов построения основных узлов. В первом приближении та кую оценку все же можно дать на основе подсчета количест ва основных узлов и элементов в блоке. Введем для этого следующие обозначения:
а f - |
стоимость одного разряда регистра', |
&г - |
стоимость одного разряда цепей выдачи кода; |
a_jстоимость одного разряда цепей выдачи прямого и обрат |
|
ного |
кодов; |
®Ѵ“ стоимость одного разряда цепей приема кода; |
|
^■стоимость одного разряда сумматора; |
|
- |
стоимость одного триггера или линии задержки; |
a.f- |
стоимость одного логического элемента /Й, ИДИ,.НЕ/; |
аg - стоимость одного разряда цепей сдвига; |
|
|
а^—стоимость одного разряда счетчика. |
|
|
Используя введенные обозначения,схему СБ на рис. |
2.1-2 |
|
можно оценить в |
|
|
c = a t (3n+ i)+ a3 (3n+ t)+ aY(n-H)+<i-s (n+ e)+ |
+ W a 7 ~ |
|
=(3af +3ctj + а ч +a.3)n+(a.f + а 3 i-a v +2a.s +-4a6 |
||
•f- W a p ) = |
n |
|
- 11 -
условных единиц.
Удобной величиной для оценки различных блоков явля
ется |
коэффициент |
эффективности |
j |
|
|
|
• |
где |
Ü - время выполнения операции. |
||
В данном случае |
/ |
|
|
|
|
(Я 'П +в і У е с + Г ' + І г ) • |
|
Задачи. I . Составить микроалгоритм |
суммирования с исполь |
||
зованием дополнительных кодов и по нему построить схему СБ и оценить величину аппаратурных затрат.
2 . Определить вероятность и/ получения дополнительного кода результата в СБ,работающим с дополнительными кодами, в предположении,что X и У распределены равномерно в ин
тервале / - 1 , 1/ и вероятность получения результата /х .+ у /> 1 равна нулю.
3. Построить схему СБ с накапливающим сумматором. Оценить
быстродействие |
полученной схемы. |
|
||
4. Пусть |
, |
а |
. Выполнить 16 |
вариантов операций |
сложения |
/± X /t /± 1 / |
в дополнительных |
и обратных кодах. |
|
2 .2 . БЛОКИ ДЛЯ СЛОЖЕНИЯ И ВЫЧИТАНИЯ ЧИСЕЛ В ДОПОЛПИТЕДЬ-
і т кож х______/ і /
Числа в ЗУ хранятся в этом случае в дополнительном коде. В этом же коде они пересылаются в регистры СБ. Ал горитм выполнения суммирования предельно прост:
1 . |
Подать на |
Е |
код числа |
X. |
|
|
|
|
|
2. |
Если S0 = /+ /,т о подать |
на £ |
код числа У. Если^=/—/ |
||||||
то |
подать на |
Е |
инверсный |
код числа У |
и I |
переноса в |
|||
младший разряд £ |
. СБ должен |
состоять |
из |
РХ,РУ,Р^ и £ . |
|||||
Составим МА. выполнения операции суммирования |
|||||||||
t не |
-МО прибавления I переноса |
в младший разряд £ |
|||||||
|
Схема СБ с комбинационным |
£ |
»соответствующая |
||||||
данному MC,показана на рис. |
2 .2 -1 . Быстродействие данно |
||||||||
го |
СБ такое |
же,как и у |
СБ на рис.2 .1 -2 ,однако аппаратур |
||||||
ные |
затраты |
несколько |
ниже |
как за |
счет |
отсутствия некото- |
|||
- 12 -
рых логических элементов,так как эа счет отсутствия цепи выдачи обратного кода с регистра РХ и PZ , вследствие чего аппаратурные затраты на I разряд регистра сокращаются
|
С =(Ja, *2аг + a3 + a v i-af )n ф а ,+ 2 а г +а3 + а ѵ |
|
) |
|||||
Задачи, |
I . Построить |
схему СБ с накапливающим |
27 |
для |
||||
сложения и вычитания чисел в дополнительных кодах. |
||||||||
2 .3 , БЛОКИ ДЛЯ СЛОЖЕНИИ И |
ВЫЧИТАНИЯ ЧИСЕЛ |
С ШІАШЩКЛ |
||||||
ЗАПЯТОЙ_______/ 1 .17.23.24/ |
|
|
|
|
||||
|
Число X,представленное в форме с плавающей запятой, |
|||||||
имеет вид |
_ |
„ |
|
|
|
|
||
|
|
X |
— А * X. , |
|
|
|
||
где |
^ |
-порядок |
числа, X |
-мантисса, А |
-основание |
|||
системы счисления. |
|
|
|
|
|
|||
X |
Число X называется нормализованным,если его мантисса |
|||||||
удовлетворяет условию |
|
|
|
|
||||
или при |
К=2 |
|
- j f £ X ■< / |
|
|
|
||
|
, |
|
|
|
|
|||
|
Машинное слово имеет структуру,показанную на рис.2.3-1 |
|||||||
или -2 . По одному разряду |
слова отводится |
для |
представ |
|||||
ления знака мантиссы /ЗГА/ |
и знака порядка /ЗП /,а |
осталь |
||||||
ные разряды - для |
представления мантиссы /К / и порядка |
|||||||
/П /. Производить |
сложение мантисс можно лишь в |
том случае, |
||||||
если у чисел одинаковые порядки. Поэтому операция сложе ния начинается с выравнивания порядков чисел. После вы полнения операции суммирования возможно нарушение норма лизации числа как влево на один разряд,так и вправо на лю бое число разрядов. Поэтому после выполнения суммирования производится нормализация результата. Нормализованный ре зультат не всегда помещается в разрядной сетке машины. Поэтому заключительным этапом выполнения операции являет ся округление результата и окончательная проверка факта нормализации результата. Следовательно,выполнение опера ций сложения и вычитания чисел с плавающей запятой cö” f стоит из следующих этапов:
- 13 -
ГзмГ |
М |
унт 1 п |
} |
|
Р и с . 2 5 - 1 |
|
|
\ЗП I |
п |
|з/УI /ѵ |
I |
Р и с . 2 .5 -2
н о
- 14 -
1. Выравнивание порядков.
2. Суммирование мантисс.
3. Определение порядка результата.
4.Нормализация результата.
5.Округление результата.
Рассмотрим каждый из этих этапов отдельно.Выравнивание по рядков осуществляется путем сдвига вправо числа,порядок которого меньше.Так как сдвиг вправо эквивалентен деле нию мантиссы на К,то при каждом сдвиге порядок должен
увеличиваться |
на I . |
Рассмотрим пример. Пусть Х=2* 0,1010, |
У=2 51 0 ,І 0 І І ; |
тогда |
х' =2 * 0 , 0 0 1 0 1 0 . |
Поэтому для выравнипания порядка необходимо прежде всего определить,порядок какого числа меньше. Это можно осу ществить с помощью специальной схемы сравнения кодов. Но, так как при выполнении умножения и деления порядки чисел складываются и вычитаются,то в ЛУ всегда тлеется сумматор порядков. Поэтому для определения числа с меньшим поряд ком используют сумматор порядков. Для этого из порядка первого числа вычитают порядок второго числа. По знаку разности определяют больший порядок,а абсолютная величи н а разности позволяет определить необходимое число сдви гов. Так как над порядками производятся только операции сложения или вычитания, то для представления их удобно использовать дополнительные коды. Таким образом»алгоритм выравнивания порядков чисел X и У сводится к следующему:
1. Подать на £ |
прямой код порядка фх |
числа X,обратный |
|
код порядка У у |
числа У и I |
переноса в |
младший разряд. |
2 . Если разность |
порядков Л |
положительная,то сдвигать |
|
надо мантиссу числа У. Если разность порядков отрицатель
ная, то |
сдвигать |
надо мантиссу числа X. |
|
3. Если |
Л > 0 |
,то при каждом сдвиге из разности поряд |
|
ков |
необходимо |
вычитать I , а если Л < О ,то прибав |
|
лять |
I . |
|
|
4. Выравнивание порядков завершается,когда в счетчике
разности |
порядков |
будет записан 0. Рассмотрим пример. |
|
Пусть Цх |
=6 , а |
= I . Тогда . |
|
|
|
. |
О О , Н О |
|
|
+ |
f l s ! i i |
|
|
|
ОО, 1 0 1 |
- 15 -
Разность порядков положительная и равна 5. Следовательно, для выравнивания порядков необходимо сдвинуть 5 раз вправо мантиссу числа У.
Из приведенного алгоритма выравнивания порядка следует что блок, реализующий этот алгоритм.должен состоять из ре гистров порядков РПХ и РПУ, сумматора порядка£П и счет чика сдвигов СС. Составим микроалгоритм выполнения опера ции выравнивания порядков на перечисленных узлах:
(^ .ч в ^^н а Ц д ^р п ^во к Р п у Х в п У п к с ф с^ф ң с ^^^/гсР у )
( - tcc)(occ) t'(pcc}t*{*(псрх)(+ fcc)(öëc) і 2і '(ко).
Схема блока ВП,реализующая этот микроалгоритм,показана на рис.2 ,3 -3 . Особенностью блока ВП является наличие
замкнутого контура .включающего ЛЗ t~c |
и необходимого |
|
для создания |
серии импульсов правого |
сдвига мантисс |
/ПСРХ и У/. |
После выравнивания порядков осуществляется |
|
ѵммированиѳ мантисс,которое в принципе ничем не отличаеі':я от рассмотренных ранее в 2 .1 я 2 . 2 способов суммиро ваний чисел с фиксированной запятой. Результату присваи вается порядок большего по абсолютной величине операнда, т .е . того,мантисса которого оставалась неподвижной при выравнивании порядков, а установить втот факт можно с помощью триггера Т на рис.2 .3 -3 . Суммирование мантисс может нарушать нормализацию результата. Если для суммиро вания мантисс исполъвуются модифицированные коды,то ле вое нарушение нормализация /ЛИЦ/ определяется по комби
нации цифр |
0 1 |
я 1 0 |
в знаковая разрядах |
& |
,а |
правое |
/ТОЩ/ - по |
комбинациям цифр 00,0 и I I , I |
в |
старшем и зна |
|||
ковых разрядах |
Е |
. Нормализация результата |
осуществ |
|||
ляется путем сдвига мантиссы результата влево /или впра во / и вычитания /или прибавления/ I к порядку результата при каждом сдвиге до тех пор,пока будут сохраняться указанные комбинации цифр. Составим МА нормализации;
(* яи )= (н о }(ли и }^(Ш і)і£ і3(л<;Р2Х-1РП2}(пнн) f 3 *
f 3( Ш ) t* l '(ncP iJf+ fP trzjM K oh
Схема,реализующая данный MAH, показана на рис. 2 .3 -4, где КС - комбинационная: схема.
- 16 -
При сдвиге вправо при нормализации результата оторасыванме младшего разряда может привести к накоплению боль шой положительной ошибки. Для исключения этого вбооят опе
рацию округления. С этой целью £ |
и ? £ имеют дополнитель |
ный разряд со стороны младших разрядов. Округление осуще |
|
ствляется добавлением I в этот разряд с последующий отбра |
|
сыванием его содержимого. Если в |
дополнительном разряде |
была І,то возникает I переноса в |
младший основной разряд. |
Вследствие этого погрешность будет знакопеременной и не больше младшего разряда.
В заключение рассмотрим блок-схему устройства для суммирования чисел с плавающей запятой /р и с .2 .3 -5 /. Блок выравнивания порядков /ВВП/ выдает сигналы правого сдвига на РХ или РУ,находящиеся в блоке суммирования мантисс /БСМ/.и порядок результата n j . По сигналу НО из ЕВП запускается БСМ. Затем вступает в работу блок нормализа ции результата /ВНР/, нормализующий мантиссу результата /МZ / . По первому сигналу КО из БНР производится округле ние результата,а по второму - о помощью триггера Т выра батывается сигнал КО суммирования чисел с плавающей запя той.
Задачи. I . Проследить на примере сложения чисел 2~^0,1010 и З'Чо.Ю Н работу всех блоков устройства для сложения чисел с плавающей запятой.
2. Построить блок выравнивания Порядков на базе суммато ра накапливающего типа.
3 . Построить блок выравнивания порядков на базе суммато ра комбинационного типа с цепью циклического переноса при условии,что порядки чисел представляются прямыми кодами.
2 ,4 . |
ОЦЕНКА ВРЕМЕНИ ВЫПОЛНЕНИЯ ОПЕРАЦИИ СЛОЖЕНИЯ ЧИСЕЛ |
||||
С ПЛАВАШЕЙ ЗАПЯТОЙ______ /2 4 / |
|
||||
Среднее время t+ |
выполнения операции сложения равно |
||||
|
t+ - |
+ tc * t /н + |
+ ^гп > |
||
где |
t g } l c> t lH , t a |
и |
t 2n |
- средние времена,необходи |
|
мые соответственно |
для выравнивания порядков, сложения |
||||
мантисс,первой нормализации,округления и второй нормали зации.
Оценим каждое из указанных времен. Среднее время |
|
|||||
|
t e = t , + t ^ M ( D K) , |
|
|
|
||
где t t |
- время,необходимое д£ля вычитания |
порядков, |
|
|||
длительность такта сдвига, М Ш |
- среднее число |
сдви |
||||
гов. |
В свою очередь |
29# |
, |
., |
|
|
Здесь |
и далее ІѴ/^обозначает |
вероятность |
события А. |
В |
||
данном случае h / ff /c |
= і ) - |
вероятность |
того,что раз |
|||
ность |
порядков ? < * ! ? * - ? • / / |
равна • I , |
'1* j -абсо |
|||
лютная величина максимально возможного порядка |
|
|||||
где N |
- величина,определяющая диапазон |
представления |
||||
чисел в машине,т.е. |
|
|
|
|
|
|
а квадратные скобки означают взятие ближайшего большего к Co9 fi N целого числа.
Предположим,что порядки фх и ^статистически неза висимы и одинаково распределены. Тогда при С/0 по фор муле полной вероятности получим:
” ( 9 х =Л(н(<Іѵ ф і ) + * ( $ х ш/ - О ) =
Случайные величины f x "AS y М0 ГУТ ™eTb различные законы распределения,однако все они в первом приближении могут быть аппроксимированы равномерным законом
'9 К
«9
- 18 -
