Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Руководство пользователя по сигнальным процессорам Sharc

.pdf
Скачиваний:
150
Добавлен:
01.05.2014
Размер:
9 Мб
Скачать
☆

Справочник B вычислительных операций

Fx = FUNPACK Rn

Синтаксис:

Fn = FUNPACK Rx

Функция:

Преобразует 16 разрядное число с плавающей точкой в регистре Rx в 32 разрядное число с плавающей точкой стандарта IEEE, записываемое в Fx.

Результат операции FUNPACK следующий:

Условие

Результат

0<exp≤15

Порядок – это 3 младших бита порядка источника, к которым

 

спереди добавлен старший бит порядка источника и четыре копии

 

дополнения старшего бита. Распакованная дробная часть является

 

дробной частью источника с 12 ю нулями, добавленными в конце.

еxp = 0

Порядок – это 120 N, где N – число начальных нулей в дробной

 

части источника. Распакованной дробной частью является остаток

 

дробной части источника с добавленными к концу нулями,

 

«скрытая» 1 удаляется.

еxp = порядок источника.

Знаковый бит остается одинаковым во всех случаях.

Для формата коротких слов с плавающей точкой поддерживается постепенная потеря значащих разрядов. При этом для снижения динамического диапазона снижается точность. Когда упаковывается число, потерявшее значащие разряды, порядок устанавливается в 0 и мантисса (включая «скрытую» 1) сдвигается вправо на соответствующую величину. Упакованный результат является ненормализованным и может быть распакован в стандартное число с плавающей точкой стандарта IEEE.

Флаги состояния:

SZ

Сброшен

SV

Сброшен

SS

Сброшен

571

В Справочник вычислительных операций

В.2.4. Многофункциональные вычисления

Многофункциональные вычисления бывают трех типов. Каждый тип имеет различный формат 23 разрядного вычислительного поля:

♦Двойное сложение/вычитание

♦Параллельная операция умножителя и ALU

♦Параллельное умножение и сложение/вычитание

См. «Многофункциональные вычисления» в главе Вычислительные устройства для получения информации о многофункциональных операциях.

При использовании ALU и умножителя для многофункциональных вычислений каждый из четырех входных операндов ограничен своим набором из четырех регистров регистрового файла (см. рис. В.1). Например, вход Х в ALU может быть только R8, R9, R10 или R11. Во всех других операциях входной операнд может быть любым регистром регистрового файла.

Рис. В.1. Регистры входных данных, которые разрешено использовать для многофункциональных вычислений

572

Справочник B вычислительных операций

Двойное сложение/вычитание

В операции двойного сложения/вычитания вычисляется сумма и разность двух входных операндов и возвращается два результата в различные регистры. Существуют два типа этой операции: с фиксированной и плавающей точкой.

С фиксированной точкой:

Синтаксис:

Ra = Rx + Ry, Rs = Rx – Ry

Вычислительное поле:

Функция:

Выполнение двойного сложения/вычитания ПФТ в регистрах Rx и Ry. Сумма помещается в ПФТ регистра Ra, разность – в регистр Rs. В расширенное ПФТ регистров Ra и Rs записываются нули. В режиме насыщения (бит режима насыщения ALU установлен в MODE1) при положительном переполнении возвращается максимальное положительное число (0х7FFF FFFF), при отрицательном переполнении возвращается максимальное отрицательное число (0х8000 0000).

Флаги состояния:

AZ

Установлен, если любой из результатов с фиксированной точкой равен 0,

 

иначе — сброшен

AU

Сброшен

AN

Установлен, если старший бит результата равен 1, иначе — сброшен

AV

Установлен, если результат операции «исключающее ИЛИ» (XOR) двух

 

старших разрядов результата равен 1, иначе — сброшен

AC

Установлен, если произошел перенос за старший разряд результата, иначе —

 

сброшен

AS

Сброшен

AI

Сброшен

573

В Справочник вычислительных операций

С плавающей точкой

Синтаксис:

Fa = Fx + Fy, Fs = Fx – Fy

Вычислительное поле:

Функция:

Выполнение двойного сложения/вычитания операндов с плавающей точкой в регистрах Fx и Fy. Нормализованные результаты помещаются в регистры Fa и Fs (сумма в Fa, разность в Fs). Округление к ближайшему или усечение до 32 бит или до 40 бит (в зависимости от установки битов режима округления и границы округления в MODE1). При переполнении после округления возвращается ±∞ (округление к ближайшему) или ±NORM.MAX (округление к нулю). После округления ненормализованного операнда возвращается ±0. Ненормализованные входные операнды обнуляются. При вводе NAN возвращается NAN (1 во всех разрядах).

Флаги состояния:

AZ

Установлен, если результат после округления ненормализован

 

(несмещенный порядок < –126) или нулевой, иначе — сброшен

AU

Установлен, если результат после округления ненормализован, иначе —

 

сброшен

AN

Установлен, если результат с плавающей точкой отрицательный, иначе —

 

сброшен

AV

Установлен, если результат после округления переполнен (несмещенный

 

порядок > +127), иначе — сброшен

AC

Сброшен

AS

Сброшен

AI

Установлен, если входные операнды NAN или бесконечности с

 

противоположными знаками, иначе — сброшен

574

Справочник B вычислительных операций

Параллельная операция умножителя и ALU

В параллельной операции умножителя и ALU выполняется умножение или умножение/накопление и одна из следующих операций ALU: сложение, вычитание, усреднение, преобразование из формата с фиксированной точкой к формату с плавающей точкой и наоборот, операции с плавающей точкой ABS, MIN или MAX.

С фиксированной точкой:

Синтаксис: См. табл.В.7.

Вычислительное поле:

С плавающей точкой:

Синтаксис: См. табл.В.7.

Вычислительное поле:

Операции умножителя и ALU определяются OPCODE. Список выбираемых 6 разрядных полей кода операции приведен в табл. В.7. X операнд и Y операнд умножителя берутся из регистров данных RXM (FXM) и RYM (FYM). Операнд результата умножителя возвращается в регистр данных RM (FM). X операнд и Y операнд ALU берутся из регистров данных RXA (FXA) и RYA (FYA). Операнд результата ALU возвращается в регистр данных RA (FA).

Операнды результатов могут возвращаться в любой регистр регистрового файла. Каждый из четырех входных операндов ограничен определенным набором из четырех регистров данных.

Входы

Разрешенные источники

Х умножителя:

R3 R0 (F3 F0)

Y умножителя:

R7 R4 (F7 F4)

X ALU:

R11 R8 (F11 F8)

Y ALU:

R15 R12 (F15 F12)

575

В Справочник вычислительных операций

Синтаксис

Код операции

Rm=R3 0 * R7 4 (SSFR), Ra=R11 8 + R15 12

000100

Rm=R3 0 * R7 4 (SSFR), Ra=R11 8 R15 12

000101

Rm=R3 0 * R7 4 (SSFR), Ra=(R11 8 + R15 12)/2

000110

MRF=MRF + R3 0 * R7 4 (SSF), Ra=R11 8 + R15 12

001000

MRF=MRF + R3 0 * R7 4 (SSF), Ra=R11 8 R15 12

001001

MRF=MRF + R3 0 * R7 4 (SSF), Ra=(R11 8 + R15 12)/2

001010

Rm=MRF + R3 0 * R7 4 (SSFR), Ra=R11 8 + R15 12

001100

Rm=MRF + R3 0 * R7 4 (SSFR), Ra=R11 8 R15 12

001101

Rm=MRF + R3 0 * R7 4 (SSFR), Ra=(R11 8 + R15 12)/2

001110

MRF=MRF R3 0 * R7 4 (SSF), Ra=R11 8 + R15 12

010000

MRF=MRF R3 0 * R7 4 (SSF), Ra=R11 8 R15 12

010001

MRF=MRF R3 0 * R7 4 (SSF), Ra=(R11 8 + R15 12)/2

010010

Rm=MRF R3 0 * R7 4 (SSFR), Ra=R11 8 + R15 12

010100

Rm=MRF R3 0 * R7 4 (SSFR), Ra=R11 8 R15 12

010101

Rm=MRF R3 0 * R7 4 (SSFR), Ra=(R11 8 + R15 12)/2

010110

Fm=F3 0 * F7 4, Fa=F11 8 + F15 12

011000

Fm=F3 0 * F7 4, Fa=F11 8 F15 12

011001

Fm=F3 0 * F7 4, Fa=FLOAT R11 8 by R15 12

011010

Fm=F3 0 * F7 4, Fa=FIX F11 8 by R15 12

011011

Fm=F3 0 * F7 4, Fa=(F11 8 + F15 12)/2

011100

Fm=F3 0 * F7 4, Fa=ABS F11 8

011101

Fm=F3 0 * F7 4, Fa=MAX (F11 8, F15 12)

011110

Fm=F3 0 * F7 4, Fa=MIN (F11 8, F15 12)

011111

Таблица В.7. Параллельные вычисления ALU и умножителя

576

Справочник B вычислительных операций

Параллельные операции умножения и двойного сложения/

вычитания

При параллельных операциях умножения и двойного сложения/вычитания выполняется умножение или умножение/накопление и вычисляется сумма и разность входных операндов ALU. Более подробно об операциях умножителя см. в описании однофункциональных операций. Об операции двойного сложения/ вычитания смотри в разделе Двойное сложение/вычитание.

С фиксированной точкой:

Синтаксис:

Rm=R3 0 * R7 4 (SSFR), Ra=R11 8 + R15 12, Rs=R11 8 – R15 12

Вычислительное поле:

С плавающей точкой:

Синтаксис:

Fm=F3 0 * F7 4, Fa=F11 8 + F15 12, Fs=F11 8 – F15 12

Вычислительное поле:

X операнд и Y операнд умножителя берутся из регистров данных RXM (FXM) и RYM (FYM). Операнд результата умножителя возвращается в регистр данных RM (FM). X операнд и Y операнд ALU берутся из регистров данных RXA (FXA) и RYA (FYA). Операнд результата ALU возвращается в регистр данных RA (FA).

577

В Справочник вычислительных операций

Операнды результатов могут возвращаться в любой регистр регистрового файла. Каждый из четырех входных операндов ограничен определенным набором из четырех регистров данных.

Входы

Разрешенные источники

Х умножителя:

R3 R0 (F3 F0)

Y умножителя:

R7 R4 (F7 F4)

X ALU:

R11 R8 (F11 F8)

Y ALU:

R15 R12 (F15 F12)

578

Форматы представления C чисел

C.1. Обзор

ADSP 2106x поддерживает формат 32 разрядных данных с плавающей точкой одиночной точности, определенный стандартом IEEE 754/854. Кроме того, ADSP 2106x поддерживает формат 40 разрядных данных с плавающей точкой повышенной точности (восемь дополнительных младших разрядов в мантиссе). ADSP 2106x также поддерживает формат 32 разрядных данных с фиксированной точкой (дробные и целые, знаковые и беззнаковые).

C.2. Формат данных одиночной точности стандарта IEEE

Стандарт IEEE 754/854 определяет формат 32 разрядных данных с плавающей точкой одиночной точности (см. рис. С.1). Число в этом формате состоит из знакового разряда s, 24 разрядной мантиссы и 8 разрядного беззнакового порядка e. Для нормализованных чисел мантисса состоит из 23 разрядной дробной части f и «скрытого» бита, равного 1, который находится перед битом f22 в мантиссе. Запятая в двоичном числе находится между этим «скрытым» битом и битом f22. Младший бит дробной части – f0, а младший бит порядка – e0. «Скрытый» бит увеличивает точность мантиссы с плавающей точкой до 24 бит, хотя формат данных содержит только 23 бита. Наличие «скрытой» единицы гарантирует, что мантисса любого нормализованного числа стандарта IEEE всегда будет больше или равна 1 и меньше двух.

Беззнаковый порядок e находится в диапазоне 1≤e≤254 для нормальных чисел в формате одиночной точности. Этот порядок смещается на +127. Для вычисления истинного несмещенного порядка из e надо вычесть 127.

Рис. С.1. Формат 32-разрядных данных с плавающей точкой одиночной точности стандарта IEEE

579

C Форматы представления чисел

Стандарт IEEE также предусматривает несколько специальных типов данных в формате с плавающей точкой одиночной точности:

♦Значение порядка, равное 255 (все единицы) с ненулевой дробной частью – это «не число» (NAN – Not A Number). NAN обычно используется как флаг

для управления потоком данных, для значений неинициализированных переменных и для результатов неправильных операций, таких как 0*∞.

♦Бесконечность представляется в виде порядка, равного 255, и нулевой дробной части. Заметим, что бесконечность может представляться как +∞ и – ∞, так как дробная часть знаковая.

♦Ноль представляется в виде порядка, равного нулю, и нулевой дробной части. Также как и бесконечность, ноль может представляться как +0 и –0.

Данные с плавающей точкой одиночной точности стандарта IEEE, поддерживаемые ADSP 2106х, приведены в табл.C1.

Тип

Порядок

Дробная часть

Значение

 

 

NAN

255

Не нулевая

Неопределённость

Бесконечность

255

0

(–1)s ∞

 

 

Обычный

1≤e≤254

Любой

(–1)s (1.f

22 0

) 2е 127

Ноль

0

0

(–1)s 0

 

 

 

Таблица С.1. Данные с плавающей точкой одиночной точности стандарта IEEE

C.3. Формат данных с плавающей точкой повышенной точности

Формат с плавающей точкой повышенной точности содержит 40 разрядов (8 разрядный порядок, как в обычном формате, и 32 разрядную мантиссу). Этот формат показан на рис. С.2. В остальном, формат с плавающей точкой повышенной точности совпадает с обычным форматом стандарта IEEE.

Рис. С.2. Формат 32-разрядных данных с плавающей точкой повышенной точности стандарта IEEE

580