Аккумулятор имеет возможность округлить 40-битный результат R до 16-битного. Округление должно быть указано в инструкции с помощью опции (RND). Округленный результат направляется в регистр MR или MF. Когда происходит округление с регистром MR в качестве выходного, содержимое MRl представляет из себя округленный 16-битный результат, а содержимое регистров MR2 и MR1 может рассматриваться как результат, округленный до 24 бит.
Аккумулятор использует несмещенную схему округления. Обычный метод смещенного округления производится добавлением числа 0х8000 к MR (то есть если MR0 больше или равно 0х8000, то MR1/MR2 инкрементируются), при этом округленный результат находится в MR2 и MR1. Но этот метод приводит к общему положительному смещению, т.к. при среднем значении (когда регистр MRO равен 0x8000) число округляется вверх. Аккумулятор же устраняет это смещение, всегда устанавливая бит 0 MR1 в ноль после округления, если МR0 содержит 0х8000. Таким образом, происходит округление четных значений MR1 вниз и нечетных значений MR1 вверх, что в свою очередь приводит к равнозначности операции округления на больших выборках чисел.
Пример типичной операции округления:
Пример 1
MR2
MR1
MR0
Неокругленные данные
xxxxxxxx
xxxxxxxx00100110
1xxxxxxxxxxxxxxx
Бит 15=1
Добавим 1 к 15-му биту и учтем перенос
1 ( 0х8000)
Округленное значение
xxxxxxxx
xxxxxxxx00100111
0xxxxxxxxxxxxxxx
Компенсация становится видимой, если MRO=0x8000.
Пример 2
MR2
MR1
MR0
Неокругленные данные
xxxxxxxx
xxxxxxxx00100110
100000000000000
Бит 15=1
Добавим 1 к 15-му биту и учтем перенос
1 ( 0х8000)
Так как бит 16 =1, присвоим ему 0
Округленное значение
xxxxxxxx
xxxxxxxx00100111
000000000000000
Сравнительный анализ выполнения арифметических команд в различных типах процессоров
Закончив рассмотрение АЛУ DSP, попробуем сравнить его производительность по арифметическим операциям, например, с i486DX - достаточно мощным универсальным процессором. Начнем с того, что в АЛУ цифрового сигнального процессора любая инструкция исполняется за один цикл, вместо нескольких циклов во втором процессоре. Работает такой процессор на частоте до 33.3 Мгц ( при этом i486DX работает на частоте 50 Мгц, а улучшенные версии на частотах до 133 Мгц ). Операции с плавающей точкой имеют 40 разрядные операнды, вместо 80 разрядных в FPU i486DX. Остальные параметры ( конвейеризация, архитектурные решения ) практически идентичны. Для примера ниже дана таблица, отображающая время исполнения программы “быстрого преобразования Фурье” на 1024 точки для процессоров i486DX2-66 и ADSP-21xx
Операция
Время выполнения
i486DX2-66
ADSP-21xx
БПФ на 1024 точки
20 ms
2.23 ms
Получаются довольно странные результаты. У более мощного процессора время выполнения в 10 раз больше, чем у менее мощного. Из-за чего так происходит ? Прежде всего надо отметить, что аппаратно реализованное умножение в DSP дает основной выигрыш в скорости. Во-вторых, DSP менее универсален, по сравнению с i486, поэтому арифметические операции у него оптимизированы для работы в реальном времени, то есть скорость их выше. Конечно скорость достаточно сильно зависит от алгоритмов умножения, деления и сложения. Ведь какой бы ни была скорость процессора плохо оптимизированный алгоритм будет приводит к лишним схемным решениям, потере времени на выполнение лишних микрокоманд и, как следствие, ухудшение параметров процессора. В некоторых процессорах ( уже практически отсутствующих на рынке, например i8080 или его преемник Zilog Z80 ) команд умножения и деления нет. В этом случае данные арифметические операции реализовывались программно, через сложение и сдвиги. Соответственно производительность при вычислениях падала в несколько раз.
На сегодняшний день производительность процессоров при выполнении арифметических операций является довольно значительным параметром. Сегодняшний компьютер невозможно представить без средств мультимедиа , а мультимедиа - это огромные объемы оцифрованной графики и звука, причем сжимаемые и разжимаемые в реальном времени ( форматы MPEG, GSM ). Конечно многие из обязанностей центрального процессора берут на себя контроллеры ввода-вывода ( звуковая и видеокарты ), но чаще всего в них нет встроенной поддержки кодирования и декодирования информации. Еще пример: сейчас используются базы данных с максимальным размером около 4 Тб. Соответственно, такие объемы информации требуют значительных вычислительных возможностей для ускорения поиска и обращения к записям.
Таким образом получается, что тщательно продуманные реализации алгоритмов арифметических операций и схемных решений ведут к увеличению быстродействия центрального процессора и, как следствие, получению более широких возможностей работы с информацией.
Список литературы
1.Справочник по цифровой вычислительной технике ( процессоры и память ), ”Технiка”,1979
2.Цифровые сигнальные процессоры, “Микроарт“, 1996
3.Григорьев “Микропроцессор i486“,1993
4.СD-ROM “Intel на Comtek’98” ( образ российского веб-сайта Intel )
5.CD-ROM “Intel Architecture Information Library”
6.Лекции по курсу “Вычислительные машины и сети”
Введение...............................................................................................................................................................
Типы микропроцессоров......................................................................................................................
Обобщенная структурная схема персонального компьютера..............................
Арифметико-логическое устройство.........................................................................................
Общие сведения, функции и классификация.........................................................................................
Алгоритмы сложения (вычитания) и умножения в АЛУ................................................................
Цифровые сигнальные процессоры..........................................................................................
Алгоритм выполнения сложения и деления в арифметико-логическом устройстве, на примере цифрового сигнального процессора семейства ADSP-21xx...................................
Арифметика и типы данных...........................................................................................................
Строки битов............................................................................................................................................
Числа без знака..........................................................................................................................................
Числа со знаком в форме дополнения до двух...................................................................................
Дробь 1.15....................................................................................................................................................
Арифметические операции АЛУ...........................................................................................................
Арифметика МАС.....................................................................................................................................
Арифметика устройства сдвига.........................................................................................................
АЛУ.....................................................................................................................................................................
Структура АЛУ.........................................................................................................................................
Стандартные функции............................................................................................................................
Режим “насыщения” и “защелки”.......................................................................................................
Деление.........................................................................................................................................................
МАС (умножитель/аккумулятор)................................................................................................
Блок-схема МАС.........................................................................................................................................
Операции МАС...........................................................................................................................................
Переполнение, насыщение и окружение в МAС................................................................................
Сравнительный анализ выполнения арифметических команд в различных типах процессоров
Список литературы..................................................................................................................................