Ниже приводится полный список команд ALU в соответствии с принятыми ранее условными сокращениями. Назначение команд очевидно из их записи и комментариев для некоторых из команд. Команды сложения и сложения с переносом:

[IF cond] |AR| = xop + |yop     |;

          |AF|         |C       |

                       |yop + C |

                       |constant|

Команды вычитания и вычитания с займом:

[IF cond] |AR| = xop - |yop     |;

          |AF|         |yop+С-1 |

                       |constant|

[IF cond] |AR| = yop - |xop     |;

          |AF|         |xop+C-1 |

                       |constant|

Команды логических операций И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ:

[IF cond] |AR| = xop |AND| yop;

          |AF|       |OR |

                     |XOR|

Команды передачи:

[IF cond] |AR| = PASS|xop     |;

          |AF|       |yop     |

                     |constant|

Команды смены знака:

[IF cond] |AR| = - |xop|;

          |AF|     |yop|

Команды логического отрицания HE:

[IF cond] |AR| = NOT |xop|;

          |AF|       |yop|

                     |0  |

Команды вычисления абсолютного значения:

[IF cond] |AR| = ABS |xop|;

          |AF|

Команды инкремента:

[IF cond] |AR| = |yop+1|;

          |AF|

Команды декремента:

[IF cond] |AR| = |yop-1|;

          |AF|

Команды битовых операций:

[IF cond] |AR| = |TSTBIT n xop|; {операция логического «И» разряда n с 1}

                 |SETBIT n xop|; {операция установки разряда n в 1}

                 |CLBIT  n xop|; {операция установки разряда n в 0}

                 |TGBIT  n xop|; {операция «ИСКЛЮЧАЮЩЕЕ ИЛИ» бита n с 1}

Здесь n могут принимать значения от 0 до 15

Команды поразрядного деления:

[IF cond] |AR| = DIVS yop, xop;

[IF cond] |AR| = DIVQ xop;

Команды тестирования результата:

NONE = <ALU>;

Последняя команда выполняет заданную команду АЛУ, устанавливает флаги и сбрасывает значение результата. Она позволяет тестировать значения в регистрах без изменения содержимого AR или AF. Строка <ALU> — это любая безусловная команда АЛУ, кроме DIVS, DIVQ и дополнительных команд АЛУ с константами.

Для всех приведенных выше команд ALU разрешено использовать следующие операнды:

xop: AX0, АХ1, AR, MR0, MR1, MR2, SR0, SR1; yop: AY0, AY1, AF;

constant: 0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32767, -2, -3, -5, -9, -17, - 33, -65, -129, -257, -513, -1025, -2049, -4097, -8193, -16385, -32768.

Команда DIVS не может использовать регистр AY0 как оператор yop. Коды условия IF соответствуют кодам, приведенным ранее в табличном виде.

Примеры записи команд:

AR=AX0+AY0+C; /* Присвоить регистру AR значение суммы регистров AX0, AY0

 и переноса*/

IF EQ AR=AX0+AY0+C; /* Выполнение описанной выше операции при условии

 равенства нулю предыдущего результата */

AF=TSTBIT 7 AX; /* Занести в регистр AF значение результата операции

 логического «И» разряда 7 с единицей */

Глава 15. Устройство MAC

В этой главе говорится о вычислительном устройстве MAC (умножителя с накопителем) сигнального процессора и выполняемых в нем командах.

Структура устройства MAC

Свое название устройство MAC получило от сокращения английских слов: multiplier (умножитель) и accumulator (накопитель). Устройство MAC выполняет быстрые одноцикловые операции умножения, умножения с добавлением, умножения с вычитанием, функции насыщения и очистку результата. Функция обратной связи позволяет части результата в одном цикле быть одним из сомножителей в следующем цикле.

Операции в MAC производятся над числами, представленными в виде двоичных последовательностей. Результат выдается в том же виде.

Процессор ADSP-2181 поддерживает два режима корректировки формата: дробный режим для дробных операндов формата 1.15 и целочисленный режим для целых чисел формата 16.0.

Когда процессор умножает два операнда в формате 1.15, в результате получается число в формате 2.30 (два знаковых и 30 дробных разрядов).

В дробном режиме MAC автоматически сдвигает результат на один бит влево перед пересылкой его в регистр результата MR. Этим сдвигом результат приводится к виду 1.31, который может быть округлен до формата 1.15.

В целочисленном режиме сдвига влево не происходит. Например, при умножении операндов в формате 16.0 результат представляется в виде 32.0.

Сдвиг влево в этом случае не нужен, т.к. он изменит числовое представление результата. В табл. 15.1 показаны форматы данных операндов и результата для вычислительных устройств процессора ADSP- 2181.

Таблица 15.1 Форматы данных операндов и результата для вычислительных устройств процессора ADSP-2181

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

1

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату