Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 36
Текст из файла (страница 36)
3.10 ава 4. Операции надданными !88 Команда 8АСИ ХН, 1 После выполнение 3\ 1615 0 Анхумулятор 5 04гй 8001 Мвп Сзя 31 1615 0 5 04Ю 8001 МЗР Ьвп 15 0 ' хн 8[ Овы 15 О хн 5 ~ 1088 Сдвиеенмли До сдвива 16 15 Зг ЬЗР 8001 Сдеив влево нв г Оит 16 15 Зг Ьз 0002 МБР 5 0841 4.1.5. Ограничители узел 4 е Алгоритмы и процессоры цифровой обработки сигналое Рис. 4.6. Сдвиг при сохранении старшего слоев аккумулятора 0граничингеги — это условное названия устройств, которые реализуют арифметику насышепия при переполнении в аккумуляторе. 4.1.6. Переполнение в аккумуляторе В процессорах с ФТ при выполнении операций: сл сложения, вычитания, МАС; П сдвиге содержимого аккумулятора влево и т.п.
может произойти переполнение, Различают две его разновидности. называслгые: П переполнение аккумулятора; ('.) переполнение при перссылках. :деренвгнение пккумулянгорв означает, что результат арифметической операции не может быть представлен в аккумуляторе, т. к. он выходит за границы допустимого диапазона представления чисел в формате слова аккумулятора гси.
главу 3). Вели слово аккумулятора имеет формат "двойное слово" М5РРЕ5Р, прп представлении чисел со знаком старший бит двойного слова является знадговым; состояние переполнения аккумулятора возникает при попытке пе,, носа из старшего значашсго бита в знаковый бит. ли слово аккумулятора имеет формат "расширенное слово" ЕХТ:М5РгЕ5Р, ' ереполнение аккумулятора возникает при попытке переноса в старший знаковый) разряд расширенного слова.
ри представлении целых беззнаковых чисел аккумулятор перехошт в соояние переполнения при попытке переноса из старшего бита слова аккулятора, т. е. при выходе за левую границу формата. ереполнение аккумулятора сопровождается установкой ф;гага псрспознстя в регистре состояния. ' редотвратить переполнение аккумулятора возможно с помогпькг масштабпевания исходных данных или/и результатов арифметических операций.
: такой ситуации следует быть особо внимательным к масштабированию малых по модулю) значений, т. к. в результате масштабирования эти значения могут оказаться меньше мнпиматьно допустимой величины (шага квантования). : процессоре может быть установлен режим зпггрещение переполнения аккумулятора. В атом случае, независимо от формата слова аккумулятора ("двойное слово" или "расширенное слово") при возникновении переполнения реОультат автоматически заменяется максимальным (по модулю) числом. прславленным в формате двойного слова, т.
е. М5Р:) 5Р части слова аккум).штора. Подобные операции ограничения соответствуют арифметике насыщения. а полученное в результате ограничения число называют влисггттудог) насыгненги. .~ учетом знака, амплитуда насышения положительного числа равна 57ГГ... РР, а амплнтула насышения отрицательного числа равна 3800...00, где количе'ство цифр определяется длиной М5Р:Е5Р части слова аккулгулятора. Переполнение при ггересылквх возникает при одновременном выполнении следующих условий: П слово аккумулятора имеет формат "расширенное слово" ЕХТ:М5РРЕ5Р; П содержимым аккумулятора является смешанное число; (-) это содержимое аккумулятора сохраняется в памяти данных.
Напомним, что е процессорах с ФТ и целочисленной арифметикой веществен- ным числам (в данном случае, смешанным числам) соответс~вуют их целочис- ленные эквиваленты (см. влвеу 3) Алгоритмы и процессоры цифровой обработки сигналов Гдввв 4. Операции нвд данными Переполнение при пересылках возникает при переносе в старший (знаке вый) бит МИР:)5Р части слова аккулгулятора. Это является признаком изменения типа результата — переходу от дробного числа к смешанному. Тпп результата в аккумуляторе обычно отображается состоянием соответствующего бита (флага) в регистре состояния. Такой бит может называться битая расшггрения (в процессорах фирмы Могого!а), битом насыгцения при пересы ы ках (в процессорах фирмы Техаз !пмпшзепьз) и т.
п. Установленный флаг соответствует смегпанному числу и является признаком переполнения аккумулЯтоРа пРи пеРесылках, посколькУ смешанное число, пРедставленное в формате "расширенное слово" ЕХТ:МБР:!5Р, невозможно сохранить в ячейке памяти данных в формате "слово" или "двойное слово" (в двух ячейках памяти данных). Предотвратить переполнение при пересылках возлюжно так же, как и персполнение аккумулятора — с полющью масштабирования. Выполняя операцию слви1а вправо, смешанное число преобразуют в дробное число, которое можно сохранить в памяти данных. Альтернативное решение — переход к аргггрнетггке нпсыщения.
Подобная арифметика поддерживается всел1и процессорами с ФТ, где аккумулятор имеет расширение ЕХТ. Ее суть заключается в следующем. Как только обнаруживается переполнение при пересылках (установлен флаг), смешанное число автоматически заменяется максимально допустимым (по модулю) значением дробного числа — аиялшпудой насыщения. При этом содержимое аккулгуияторо не тенвется и может быть использовано для дальнейших вычислений.
Например, если содержимое 40-разрядного аккулгулятора (рис. 4.7) содержит в расширении ЕХТ целую часть, равную а1 = 1,0, а значит, является смешанпыи числом, при сохранении старшего МИР слова аккумулятора в ячейке памяти данных без использования арифметики насыщения получим число ( — 1)— невеРный результат, а с использованием арифметики насыщения — максимально допустимое положительное лробное число 0,11...! 1 = 1 — 2 3' — амплитуду насыщения положительного числа. Вычислим ошибку б, допускаемую при сохранении содержимого аккумулятора (смешанного числа) в памяти данных: б = )(А) (Л)1, где (А) — содержимое аккумулятора; (Л) — содержимое ячейки памяти данных.
В примере (см. рис. 4.7) при сохранении положительного числа без исполь- зования арифметики насыщения ошибка равна б = (1 — ( — !)! = 2, а с использованием арифметики насыщения я = )1 — (! — 2 — зг)! = 2 3',  — знаковый бят 39 32 31 16 1б Смвшвнновчиспо 0...0 10 ... 00 ОО ... ОО еп' ~ю ' ч Дробная часть В целая честь Пвресылкз без:10 0: ариФметики тв О насыщения Амплитудз 0 с Щен ОЫЫ .. 1ЫЫ положительного числа Рис. 4Л.
Пример арифметики насыщения Таким образом, арифметика насыщения при пересылке содержимого аккумулятора в ячейку палити ланных не устраняет ошибку„но делает ее мини:мальной. В общем случае, амплитуда насыщения положительного числа равна $7ГГ... ...РГ, а амплитуда насыщения отрицательного числа — 3800...00, что не за.висит от тина арифметики (целочисленная/дробная). Длина соответствующей двоичной константы равна длине слова или двойного слова при представлении данных с удвоенной точностью. 4.1.7. Округление результатов к(аже если в аккумуляторе нет переполнения при пересылках, сохранение его содержимого в памяти данных приводит к потере точности вследствие Уссчения младшего 15Р слова аккумулятора при преобразовании формата слово аккумулятора" в формат слова (см.
азову 37. Это означает, что в результирующих данных (например, в выходном сигнале) появляется искажение, которое часто называют смещением резугылата. Процедура округления Результата при его сохранении в памяти данных позволяет уменьшить такое смещение. В некоторых процессорах округление, подобно ограничению в арифметике насыщения. происхолит автоматически при сохранении результата в памяти данных. В других процессорах округление выполняется с помощью специальной команды. г ~ 1 удаве 4. Операции подданными 189 Окруытвнив до блилнринео в) округление с иэбыткон ехт мзр ьз ЬЗР б) окрупнние с нерсстеткон после окщеленил хх...х хх .
хоя) омах ... ххх ьвр ехт мзр ЬЗР в) округление с отбивкам хх ... х1хх .. хото !игор ... оооо ехт мар ЬЗР Окрукленив до блоннйинео и) скрутение с итбыткон После оккруеленин ехт мзр СЗР д) округление с недостеткон Про ру хх...х хх ... хоя) яиоо ... ооо ехт мбр 1ЗР ) ЗР ехт мзр Рис. $.8. Методы округления раггоритмы и процессоры ци~Ьроесйобработки сигналов В процессорах с ФТ. в основном, используют два метода округления: (') до ближайшего; Е) до ближайшего четного.
Округление да брнзкггг!шего представляет собой обычное округление с избытком, применяемое в арифметике. Данные округляются ло ближайшего значения, которое может быть представлено в формате слова. Если старший МБВ-бит младшего !5Р-слова аккумулятора равен 1, к младшему (5В-бг)ту .старшего МВР-слова аккумулятора (округляемой позиции) добавляется !— происходит округление с нзбьнпкоги (рис. 4.8, а). В противном случае значение (5В-бита не меняется, т. е. выполняется округтение с недостатком (рис.
4.8, б). Подоб)гый метод округления приводит к тому, что все числа, попадающие точно на границу между двумя ближайшими зггачсн)гамп (рис. 4.8, е), всегда округляются в сторону увеличения — с избытком. В ал. горитмах (!ОС при обработке огромного количества данных это приводит к возникновению односторог )него смешения. Округленгге до бтггзкайггего четного позволяет устранить г)одобну)о систематическую ошибку. Его суть заключается в следующем.