Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 29
Текст из файла (страница 29)
Сложение в дополнительном коде Как видно нз рнс. 3.)6, оцерация сложения в дополнительном косе выло) обиоа нястся олииаково для целых и дробнык чисеч ири целочисленная и др арифмст икдх. оле лзг. Нв ис. 3.!7 приведен пример вычитмигя чисел в доиолцигсльном кол бе наловых чисел ио правилал) обычной лвои и)ой арифметики.
Т! в р !с. . т)актоака г „)сн)г исходных данных и результата аналогична рис. 3. )6. Все числа иредставл ' в йгорз)ате "слово" длиной 8 битов. в) цепью числа Р +гз) — 2'=06 — 16=80 б) дробные числа; дробная арифметике Р' + 2 ') — 2 з = 0,625 е) дроф"ые числа; целочисленная вркфмепкм; уменьшввмов, вычитввмое и разность — целые числа которые мвсалвбируютси к машинной единице равной 2' Рио.
3.12. Вычитание вдополнитепьном коде П об робчемы переполнения при сложении и вычитании рдссматрнва)отея в агаве 4. У38НОжЕние Как ви и тано из рис. 3.16 и 3.17, ири сложении и вычитании формат пролетов))ения цск хочных данных и результата — одинаковый, 1!а рис. 3.!8 иривелеи "РИЛ)Е Ут р умножения двух беззнаковых чисел. предс)явленных в формате "слоллино 4 ной 4 бита в доцолнительцолг коде.
Произведение этих чисел лслжно иметь » дчнн)' 4 2 — 1 = 7 битов без потери точности. "лгоритл)ь ! )тмы умножении, рсализовднныс в раза)ичиыл процессорах, отличаются от обг 1)ов б ' обгиеирииятого в двоичной арифметике; олин нз возмг)жмых алгоритудет рассмотрен палее. Сначала обсудим Ревмыипьч )1)гиоаггетггтя. Глава 3. Данные 146 147 О>ОО Х 0011 О>ОО 01 0 О деснтнчнме ехеиеелентьс 3 2 2>+2>+ 2'=-3 4 2> зсчы 2'+2>=-12 з ечещ е ц Фры Расширение знала маР ла Алгоритмы и процессоры цифровой обрабоми сигналов оооо о оо о ооо 1тоо Рис. З.18. умножение в дополнительном коде Без потери точности произведение двух беззнаковых чисел, представленных в формате "слово" длиной н битов, должно иметь длину (2а — !) битов, В процессорах с ФТ результат улсиожения размсшастся либо в формате "двойное слово" М5Р:1.5Р длиной 2л битов.
либо в М5Р:(.5Р части расширенного слова также л,!иной 2п. Отсюда возникает проблема "лишнего" бита. Кроме того. появляется вопрос о сохраиении вычисленного ироизведешся в формате "слово" длиной а битов — какую из частей произведения М5Р или 1.5Р следует сохранять? Выясним эти моменты иа одном примере умножения (рис. 3.(8) ири различных трактовках типа даниыл и различных арифлсетиках в проиессоре. Рассмотрим следуюшие чегыре ситуацию 1.
Умиожеиие целых чисел ири целочистеннад арифметике (рис. 3.!9): ° "лииюиий" бит используется как сслпрсннн бигн М5В в слове М5Р:15Р для лраисиия рагзюснренил зинка результата; Рис. 3.19. умножение целых чисел лри целочисленной ариФметике знакппызсссс~ иювягся дал сгсрсссссх бюста з>нсссссцнтюи остаз иыс битьс если длина каждого из сомножителей ие превышает и/2, результат разлсешается в младшелс слоне )5Р, и его можно сохранись в ф ' ' нить в ч>ормате "слово" без лпсиерсд старшее слово М 5Р служит дзя рос ширсшся знака; ° если ьчссиа солсиожителей превышает л/2, лля хранения результата потребуется два слова и специальная оргшшзаиия дальнейшей обработки 2 Умножение дрпбиых чисел при юсесачсгсыенсюпс) арифлсспше; в этом этом случае дробные числа залсеняются их це спчпссенныци эквивалеигалси (рис.
3.2О): ° "лишний" бит используется, как снсарснид оисн М5В в слове М5Р:15Р лля храпения раси>прения знака рез)мьтата; ° знпкивычи становятся два старшил бога. знпчпннмш — остальные биты; ° в формате "слово" солраияегся гзнпрснее снова М5Р результата, младшее слово 15Р отбрасывается: перед выполнением дальнейших оиеращш, для устраиеиия лишсссго знакового бита, содержимое двойного слова МВРЛ 5Р следует сдвинуть иа один бит влево. 3. Умножение дрппных чисел при драбггпс) арифметикс (рис. 3.2!): ° "лишнш!" бит используется, как цсадсииб аиюн ! 5В в с.ювс М5Р:15Р лля хранения нуля; 15В = О; знаковым остаетс.я один стчрииш бит зипчписпнс остзльссые биты ° лля лраиесшя результата и формате "слово" выбирается сиарснее слово М5Р, млалшее слово 15Р отбрасывается.
4. Умиожеиие юсеюьют чисел ири дробной арифметике; в этом случае целые чиста залсеияются их драГнгысссг эквсссяьсессталссс (рис. 3.22): ° "лшииий" бит используется, как аыадсгссис битл ! 5В в слове М5Р:15Р лля храпения нули; 15В = О; ° знаковым остается г>дин старший бит. знпчаиписи — ост иьюсьсе биты без млпднсегп бнснп сан: после сдвига вправо на ! бит отлучается результат точно чио такой же.
как целое число ири целочисленной арифметике — с расширением знака в лвух старших битах слова М5Р 1.5Р (сравните с рис. 3. 19). Отлсетилс. что . что отсутствие "лишнего" зиакового бита в ирсдсгавлении резульата умиожеи ения дрооиых чисел при лробиой арифметике, наряду с отсутствием исобхо 1 ходимосги масштабировании да>симл. считается преимусиеством лробиой арифметики. Т еперь сел 'сенин, а ютрим очии из наиболее расиростраиеииьгс алгоритлюв улюиоя, реализовассиый в большинстве процессоров с ФТ. 748 глава 3. Данные Аеснтичные эквиваленты 3 2 1 О Машиинзе единица Деснтичныа эквиваленты 2' 05 2' В 2ЗГВ = 0,5 3 2 1 О гьь 2'+2'= 0.375 -2115+гтГВ+гьГВ -О,З75 4 3 2 1 0 + г г -0.1675— точный Результат 2 1 а Значащие биты Лзобнсго числа РасшиРение знака Значащие биты целочисленного эквивалента дробного числа М5Р з ьз 2 + г'+ 2 1=-0,25- Прнблгекенный Результат поппе сдвига мм 3 ар нз 1 бит влево гт =126 3 2 1 О -ггГтгзьгтпгв ггГ125+ г 2ГИ25 = -0.1575 — ТОЧНЫЙ результат Значащие биты цепочиспенного эквивалента дробного числа ьвр з гзта + гтГВ ггтВ = -0 25 приближенный результат Апгорипиы и процессоры цифровой обработки сигналов ьз Алгорггггьц уинозгеаия двух беззнаковых двоичных чисел т и р, представ легтныь е дополиительнолг коле в форлаге "слово" длиной и.
рис. 3.20. умножение дробных чисел при целочисленной арифметике Рис 3 21. Умножение тлюбных чисел при дробной арифмвти Х= ХО Х1 ... Хг ... Х„,; гл . У = Уо Уг -" У1 ". У цех,н, Г, — значения 7-х битов, ВКЗ 10ЧЗ зет счедуюшие шаги: По !О"гОГГГСВХП Х ЦГГГСттг ° г' = и — 1; начальная . сумма локальных произведений ллиной л1. ,, = б „, и (формат "слово" 7ЕЗО Цицлп: кхся т,у гмй чоьалыгых п Х П ИЗВЕЛЕИИИ аг= аГ+1 + У ' ХС б че е ,—,+, у х,'. чеиие ц не меняется; Глава 3.
Данные 150 ° присваивается г' =г- 1. Десптнчныа Машнннаа единица аханеапенты Раана т, что соотаетстаует юах по модулю цагюму г-цз-4 числуг-З З 2 1 О 3 2 т О -г' в + г-' в+ г- в = -з Значащее бити дробною зтмиаленте целою 'исае не учнтыааетсп Машнннап единица раппа 1,что соотаагстаует гпах по модулю целому чнолу ггЯ 64 1.ВР посла сдапга МВР:1.ВР на 1 бнт епрзао з г 1 о 2т.64 2-г 64+2-4.64 2 1 64=-12- точный Результат Этап Результат Г1одгоголка и циклу 1=л-1=4 1 — 3.
тело цикла РасшиРение Значащне биты дробного заанаапанта в цегого числа в4 0000 аз= 64+ у Хз Твк как ха = 0 Расширение знака вз ьап = ооооо г=г-1=3 — 1=2 вз= ем+ у. хг так как «з = 0 Расширение знака в ~= аз=00000 вз = 000000 Алгоритмы и процессоры цифровой обработки сигналов если х, = 1, к значению ут прибавляется у при этом оба слагаемых выровнены по левону краю; ° выполняется расширение знаю суммы уг на олин бит; РИС. 3.22.
УМНОткЕНИЕ ЦЕЛЫХ ЧИСЕЛ Прн Лрсбнсй арИФМЕтИКЕ 3. т1роаеркп окоичпиил цггктгп: ° цикл повторяется до г = 1 включительно. Вмход из циюгп; ° прн 1= О вычис ткется разность х = у, — увели ха = О. значение Лт не меняется; если хо = 1, из значения ул вычитается у; при этом вычитаемое и уменьшаемое выровнены по левол1у краю; ° разность л1 равна произведению беззнаковых чисел х н у в дополнительном коде и имеет ллппу 12л — 1) битов, где старший бит — знаковый; ° конечный результат формируется в формате "двойное слово" длиной 2и; при этом "лишнии" бит используется по-разному в зависимости от типа арифметики, а именно: "лишний1" бнт применяется, как старший бит МбВ для расширения знака, при целочисленной арифметике: "лишний" бнт играет роль зттадшсго бзпа 15В (15В = О) при дробной арифметике.
При вычислении в цикле суммы в, локальных произведений переносы влево от старшего разряда ипюрируются. П риведем пример умножения в дополнительном коде двух чисел х и у дли- ной л = 4 бит: = хох, у =уеу1 уз уз = 1101. циклический алгоритм умножения показан в табл.
3.8. таблица Зв ци ическии .Ори .умножен , /пава 3. Данные 145 144 5 4 3 Уменьшавшее 7 б 5 4 З Вычитаемое Слагаемое 6 5 4 З г Ревность Спшаемое Трактовка типа денных и типа арифметики Сумме Трактовка типа данных и типа ври<рметики в) целые числа ,~!., 2+2.2+2+~)=2 =в 96/1 28 — 16/128 = 80/1 26 = 0.625 5) дробные чью<в; древнее арифметика Алгоритмы и процессоры цифровой обработки сигнапое Сложение и вычитание На рис.
3.!6 приведен пример сложения чисел в даполнителыюм коле ках беззнаковых чисел по првви/10м обычной чваичиой арифметики. На этом же рисунке дастся рвзли иная трактовка слагаемых и результата. Все числа пред. ставлены в Формате "слово" длиной в битов 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 к 2.<) 2<ьг.« гкьгч 2 ) 2< 00625 е) дробные числа; цепсчиспенная ерифметикв.- спатеемые и сумма — цепые числа, которые масштабируются к машинной единице равной н гсм яативнтв) 55/128 + (-451/1 28 = 8/126 = 0.0625 Рис. 3. 16. Сложение в дополнительнюм коде К . в лцо нз рнс.