Сейчас бит 16 = 1, устанавливаем его в 0
Округленно значение : xxxxxxxx xxxxxxxx01100110 0000000000000000
В последнем случае 16 бит устанавливается в 0. Этот алгоритм применяется на каждой операции округления.
Режим смещенного округления возможен в процессорах ADSP-217x, ADSP-218x, и ADSP-21msp58/59. Этот режим выбирается путем установки бита BIARND регистра управления SPORT0. Если BIARND=0, то используется операция несмещенного округления, если BIARND=1, то смещенного.
Пример:
MR перед RND Смещенный результат RND Несмещенный результат RND
00-0000-8000 00-0001-8000 00-0000-8000
00-0001-8000 00-0002-8000 00-0002-8000
00-0000-8001 00-0001-8001 00-0001-8001
00-0001-8001 00-0002-8001 00-0002-8001
00-0000-7FFF 00-0000-7FFF 00-0000-7FFF
00-0001-7FFF 00-0001-7FFF 00-0001-7FFF
Этот режим эффективен только, в том случае, когда значение регистра MR0 больше 0х8000. Во всех других случаях работают обычные операции округления. Этот режим позволяет более эффективно реализовывать алгоритмы, использующие смещенное округление, например, подпрограммы речевого сжатия GSM.
Shifterпредоставляет полный набор сдвиговых функций для 16- и 32-разрядных операндов. Это арифметические сдвиги, логические сдвиги и нормализация. Так же shifterвыполняет сортировку. Эти базисные функции могут быть объединены, чтобы реализовать работу с числами любого формата, в том числе с плавающей точкой.
Рисунок 4.1 иллюстрирует блок схему модуля сдвига. Shifterможет быть разделен на следующие части: массив сдвига, логика OR/PASS, детектор порядка и логика сравнения порядка.