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

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

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

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

Mod2 в табл. B.3 – заключаемый в круглые скобки дополнительный модификатор, который состоит из трех или четырех символов, указывающих следующее: Х операнд знаковый (S) или беззнаковый (U), Y операнд знаковый или беззнаковый, входные операнды целые (I) или дробные (F), округление результата к ближайшему (R) при записи в регистровый файл. Опции для mod2 и соответствующие значения кода операции приведены в табл. В.4.

Mod2

Код операции

(SSI)

110 0

(SUI)

010 0

(USI)

100 0

(UUI)

000 0

(SSF)

111 0

(SUF)

011 0

(USF)

101 0

(UUF)

001 0

(SSFR)

111 1

(SUFR)

011 1

(USFR)

101 1

(UUFR)

001 1

Таблица В.4. Дополнительный модификатор (Mod2) команд умножителя

Аналогично, mod1 в табл. В.3 – заключаемый в круглые скобки дополнительный модификатор, который состоит из двух символов, указывающих следующее: входной операнд знаковый (S) или беззнаковый (U), целый (I) или дробный (F). Опции для mod1 и соответствующие значения кода операции приведены в табл. В.5.

Mod1

 

Код операции

(SI) (только для SAT)

0 1

(UI) (только для SAT)

0 0

(SF)

1 1

(UF)

1 0

Таблица В.5. Опции Mod1 умножителя

541

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

RnIMR = Rx * Ry

Синтаксис:

Rn = Rx * Ry mod2

MRF = Rx * Ry mod2

MRB = Rx * Ry mod2

Функция:

Перемножение полей с фиксированной точкой (ПФТ) из регистров Rx и Ry. Если округление определено (только для дробных данных), то результат округляется. Результат помещается или в ПФТ в регистр Rn или в один из регистров накопления MR. Если определен Rn, то в него передается только часть результата, которая имеет одинаковый формат с входным операндом (биты 31 0 для целых, биты 63 32 для дробных чисел). В оставшиеся биты ПФТ регистра Rn записываются нули. Если определены MRF или MRB, то в них помещается весь 80 разрядный результат.

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

MN

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

MV

Установлен, если не все старшие биты равны 0 (знаковый или беззнаковый

 

результат) или 1 (знаковый результат). Число старших бит зависит от

 

формата. Знаковый результат: для дробного = 33, для целого = 49

 

Беззнаковый результат: для дробного = 32, для целого = 48

MU

Установлен, если все старшие 48 бит дробного результата равны 0

 

(знаковый или беззнаковый результат) или 1 (знаковый результат), а

 

младшие 32 бита не все равны 0. Для целого результата нет потери

 

значащих разрядов

MI

Сброшен

542

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

RnIMR = MR + Rx * Ry

Синтаксис:

 

Rn = MRF + Rx * Ry

mod2

Rn = MRB + Rx * Ry

mod2

MRF = MRF + Rx * Ry mod2

MRB = MRB + Rx * Ry mod2

Функция:

Умножение ПФТ из регистров Rx и Ry и сложение полученного значения со значением определенного регистра MR. Если округление определено (только для дробных данных), то результат округляется. Результат помещается или в ПФТ в регистр Rn или в один из регистров накопления MR (в тот же самый регистр, из которого брался входной операнд). Если определен Rn, то в него передается только часть результата, которая имеет одинаковый формат с входным операндом (биты 31 0 для целых, биты 63 32 для дробных чисел). В оставшиеся биты ПФТ регистра Rn записываются нули. Если определены MRF или MRB, то в них помещается весь 80 разрядный результат.

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

MN

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

MV

Установлен, если не все старшие биты равны 0 (знаковый или беззнаковый

 

результат) или 1 (знаковый результат). Число старших бит зависит от

 

формата. Знаковый результат: для дробного = 33, для целого = 49

 

Беззнаковый результат: для дробного = 32, для целого = 48

MU

Установлен, если все старшие 48 бит дробного результата равны 0

 

(знаковый или беззнаковый результат) или 1 (знаковый результат), а

 

младшие 32 бита не все равны 0. Для целого результата нет потери

 

значащих разрядов

MI

Сброшен

543

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

Rn I MR = MR – Rx * Ry

Синтаксис:

 

Rn = MRF – Rx * Ry

mod2

Rn = MRB – Rx * Ry

mod2

MRF = MRF – Rx * Ry mod2

MRB = MRB – Rx * Ry mod2

Функция:

Умножение ПФТ из регистров Rx и Ry и вычитание результата из значения определенного регистра MR. Если округление определено (только для дробных данных), то результат округляется. Результат помещается или в ПФТ в регистр Rn или в один из регистров накопления MR (в тот же самый регистр, из которого брался входной операнд). Если определен Rn, то в него передается только часть результата, которая имеет одинаковый формат с входным операндом (биты 31 0 для целых, биты 63 32 для дробных чисел). В оставшиеся биты ПФТ регистра Rn записываются нули. Если определены MRF или MRB, то в них помещается весь 80 разрядный результат.

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

MN

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

MV

Установлен, если не все старшие биты равны 0 (знаковый или беззнаковый

 

результат) или 1 (знаковый результат). Число старших бит зависит от

 

формата. Знаковый результат: для дробного = 33, для целого = 49

 

Беззнаковый результат: для дробного = 32, для целого = 48

MU

Установлен, если все старшие 48 бит дробного результата равны 0

 

(знаковый или беззнаковый результат) или 1 (знаковый результат), а

 

младшие 32 бита не все равны 0. Для целого результата нет потери

 

значащих разрядов

MI

Сброшен

544

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

RnIMR = SAT MR

Синтаксис:

 

Rn = SAT MRF

mod1

Rn = SAT MRB

mod1

MRF = SAT MRF

mod1

MRB = SAT MRB

mod1

Функция:

Если значение определенного регистра MR больше, чем максимальное значение определяемое форматом данных, то умножитель установит результат в максимальное значение. В противном случае, значение MR не изменяется. Результат помещается или в ПФТ в регистр Rn или в один из регистров накопления MR (в тот же самый регистр, из которого брался входной операнд). Если определен Rn, то в него передается только часть результата, которая имеет одинаковый формат с входным операндом (биты 31 0 для целых, биты 63 32 для дробных чисел). В оставшиеся биты ПФТ регистра Rn записываются нули. Если определены MRF или MRB, то в них помещается весь 80 разрядный результат.

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

MN

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

MV

Сброшен

MU

Установлен, если все старшие 48 бит дробного результата равны 0

 

(знаковый или беззнаковый результат) или 1 (знаковый результат), а

 

младшие 32 бита не все равны 0. Для целого результата нет потери

 

значащих разрядов

MI

Сброшен

545

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

RnIMR = RND MR

Синтаксис:

 

Rn = RND MRF

mod1

Rn = RND MRB

mod1

MRF = RND MRF

mod1

MRB = RND MRB

mod1

Функция:

Округление значения определенного MR к ближайшему до 32 бит (до границы MR1 MR0). Результат помещается или в ПФТ в регистр Rn, или в один из регистров накопления MR (в тот же самый регистр, из которого брался входной операнд). Если определен Rn, то в него передается только часть результата, которая имеет одинаковый формат с входным операндом (биты 31 0 для целых, биты 63 32 для дробных чисел). В оставшиеся биты ПФТ регистра Rn записываются нули. Если определены MRF или MRB, то в них помещается весь 80 разрядный результат.

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

MN

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

MV

Установлен, если не все старшие биты равны 0 (знаковый или беззнаковый

 

результат) или 1 (знаковый результат). Число старших бит зависит от

 

формата. Знаковый результат: для дробного = 33, для целого = 49.

 

Беззнаковый результат: для дробного = 32, для целого = 48.

MU

Установлен, если все старшие 48 бит дробного результата равны 0

 

(знаковый или беззнаковый результат) или 1 (знаковый результат), а

 

младшие 32 бита не все равны 0. Для целого результата нет потери

 

значащих разрядов.

MI

Сброшен

546

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

MR = 0

Синтаксис:

MRF = 0

MRB = 0

Функция:

Обнуление значения определенного регистра MR. Все 80 бит (MR2, MR1, MR0) обнуляются.

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

MN Сброшен

MV Сброшен

MU Сброшен

MI Сброшен

547

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

MR=Rn / Rn=MR

Синтаксис:

 

MR0F = Rn

Rn = MR0F

MR1F = Rn

Rn = MR1F

MR2F = Rn

Rn = MR2F

MR0B = Rn

Rn = MR0B

MR1B = Rn

Rn = MR1B

MR2B = Rn

Rn = MR2B

Функция:

При передаче в регистр MR содержимое ПФТ регистра Rn помещается в определенный регистр MR. Оставшиеся биты ПФТ Rn игнорируются. При передаче из регистра MR содержимое определенного регистра MR помещается в ПФТ регистра Rn. В оставшиеся биты ПФТ регистра Rn записываются нули.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22 21

20

19

18

17

 

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0000

 

 

 

Т

 

 

AI

 

 

RK

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистр MR определяется полем AI, регистр данных – RK. Направление передачи определяется Т (0=в регистровый файл, 1=в регистр MR).

AI

Регистр MR

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

0000

MR0F

MN

Сброшен

0001

MR1F

MV

Сброшен

0010

MR2F

MU

Сброшен

0100

MR0B

MI

Сброшен

0101

MR1B

 

 

0110

MR2B

 

 

548

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

Fn = Fx * Fy

Синтаксис:

Fn = Fx * Fy

Функция:

Умножение операндов с плавающей точкой из регистров Fx и Fy. Результат помещается в регистр Fn.

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

MN

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

MV

Установлен, если несмещенный порядок результата >127, иначе — сброшен

MU

Установлен, если несмещенный порядок результата <–126, иначе —

 

сброшен

MI

Установлен, если любой из входных операндов NAN или входные

 

операнды равны ±∞ и ±0, иначе сброшен

Один и тот же регистр в регистровом файле начинается с префикса “F” (в исходном коде ассемблера), когда он используется в вычислениях с плавающей точкой. И начинается с префикса “R”, когда используется в вычислениях с фиксированной точкой. Например, следующие команды используют одни и те же регистры:

F0=F1*F2; умножение с плавающей точкой

R0=R1*R2; умножение с фиксированной точкой

Префиксы F и R не влияют на передачу 32 разрядных (или 40 разрядных) данных; они только определяют, как ALU, умножитель, или устройство сдвига обрабатывают данные. F и R могут быть прописными и строчными; в ассемблере не учитывается регистр клавиатуры.

549

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

В.2.3 Операции устройства сдвига

В этом разделе описываются операции устройства сдвига. В табл. В.6 приводятся синтаксис и коды операций. Подробное описание каждой операции дается ниже.

Устройство сдвига выполняет операции с 32 разрядными полями с фиксированной точкой (ПФТ) регистрового файла. Для операций устройства сдвига с двумя входными операндами Y операнд может быть содержимым регистрового файла или непосредственным значением данных в команде. В каждой форме такой команды используется одинаковый код операции. Однако, операция непосредственного сдвига разрешается только в команде типа 6, у которой в коде операции имеется поле для непосредственных данных.

Синтаксис

Код операции

Rn = LSHIFT Rx BY Ry | <data8>

0000 0000

Rn = Rn OR LSHIFT Rx BY Ry | <data8>

0010 0000

Rn = ASHIFT Rx BY Ry | <data8>

0000 0100

Rn = Rn OR ASHIFT Rx BY Ry | <data8>

0010 0100

Rn = ROT Rx BY Ry | <data8>

0000 1000

Rn = BCLR Rx BY Ry | <data8>

1100 0100

Rn = BSET Rx BY Ry | <data8>

1100 0000

Rn = BTGL Rx BY Ry | <data8>

1100 1000

BTST Rx BY Ry | <data8>

1100 1100

Rn = FDEP Rx BY Ry | <bit6>:<len6>

0100 0100

Rn = Rn OR FDEP Rx BY Ry | <bit6>:<len6>

0110 0100

Rn = FDEP Rx BY Ry | <bit6>:<len6> (SE)

0100 1100

Rn = Rn OR FDEP Rx BY Ry | <bit6>:<len6> (SE)

0110 1100

Rn = FEXT Rx BY Ry | <bit6>:<len6>

0100 0000

Rn = FEXT Rx BY Ry | <bit6>:<len6> (SE)

0100 1000

Rn = EXP Rx

1000 0000

Rn = EXP Rx (EX)

1000 0100

Rn = LEFTZ Rx

1000 1000

Rn = LEFTO Rx

1000 1100

Rn = FPACK Fx

1001 0000

Fn = FUNPACK Rx

1001 0100

Модификаторы команд:

 

(SE) – дополнение по знаку внесенного или извлеченного поля (EX) – извлечение расширенного порядка

Таблица В.6. Операции устройства сдвига

550