|
МАС обеспечивает два стандартных режима умножения/аккумулирования: дробный режим (для чисел в формате 1.15) и целый режим для целых в формате 16.0. В дробном режиме формат 32-битного выходного регистра регулируется, то есть, происходит знаковое расширение и сдвиг содержимого на 1 бит влево перед добавлением в MR. Например, 31-ый бит регистра Р соответствует 32-му биту регистра MR (что в свою очередь соответствует биту 0 регистра MR2), a нулевой бит регистра Р соответствует 1-му биту регистра MR (что в свою очередь соответствует биту 1 регистра MRO). Младший бит MR просто очищается. Оставшиеся семь бит MR2 заполняются знаком регистра Р (то есть 31 битом Р). В целом режиме 32-битный регистр результата не сдвигается при добавлении к регистру MR. Восемь бит MR2 заполняются знаком Р. Режим выбирается 4-ым битом регистра режима и состояния (MSTAT). Единица в этом бите означает целочисленный режим; ноль означает дробный режим. В обоих режимах содержимое регистра Р подается на вход сумматора, который прибавляет или вычитает новое произведение из текущего содержимого регистра MR, чтобы сформировать окончательный результат в R. Для реализации вычислений с повышенной точностью, умножитель позволяет осуществлять любые комбинации операндов Х и Y (умножать знаковое на знаковое (SS),беззнаковое на знаковое (US), беззнаковое на беззнаковое (UU), знаковое на беззнаковое (SU) ). Форматы операндов записываются как часть инструкции. Поэтому они динамически выбираются из каждой инструкции умножения. 8-битный регистр MR2 при записи/чтении располагается в восьми младших битах шин данных. При чтении MR2 через шину DMD или на шину промежуточных результатов (R) происходит его знаковое расширение до 16 бит. MR1 также имеет возможность автоматического расширения знака. Тогда MR1 загружается с шины DMD, все биты в MR2 автоматически заполняются знаковым битом МR1, так что MR2 служит расширением MR1. Чубы загрузить в регистр МR2 значение, отличное от знакового расширения MR1, надо загружать MR2 после загрузки МR1. Загрузка же MR0 не влияет ни на один из оставшихся регистров; знаковое расширение не происходит при загрузке MR0. Переполнение, насыщение и окружение в МAССумматор генерирует флаг переполнения МV, который загружается в регистр арифметического статуса процессора (АSТАТ) после выполнения каждой операции MАС-ом. Этот бит устанавливается в случае, если результат аккумулятора, интерпретируемый как число с дополнением до 2, (MR) пересекает 32-битную границу (МR1/МR2) .То есть флаг МV устанавливается, если верхние девять бит MR не все одновременно равны 0 или 1. Регистр МR имеет возможность выполнять операцию насыщения, то есть устанавливаться в максимальное положительное (отрицательное) число при переполнении. Операция насыщения зависит от флага МV в регистре ASTAT и знакового бита регистра MR2. Следующая таблица показывает эффект операции насыщения МR | ||||||||||||||||||
Флаг MV |
Старший бит МR2 |
Результат после насыщения |
|||||||||||||||||
0 |
1 или 0 |
без изменения |
|||||||||||||||||
1 |
0 |
00000000 0111111111111111 1111111111111111 -максимальное положительное число |
|||||||||||||||||
1 |
1 |
11111111 1000000000000000 0000000000000000 - максимальное отрицательное число |
Насыщение в МАС – это операция (в отличии от режима в АЛУ). Она предполагается для использования после умножений/аккумуляций, так чтобы предварительные результаты не вызывали насыщения, ибо это приведет к потере точности.
Переполнение выше 40-го бита регистра MR2 не должно допускаться. Знак числа теряется безвозвратно при этом и насыщение может получить совершенно противоположный результат. Но требуется более 255 простых переполнений (типа MV), чтобы такое могло случиться.
Аккумулятор имеет возможность округлить 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С................................................................................
Сравнительный анализ выполнения арифметических команд в различных типах процессоров
Список литературы..................................................................................................................................
Новости |
Мои настройки |
|
© 2009 Все права защищены.