Категории
Самые читаемые
ChitatKnigi.com » 🟢Справочная литература » Справочники » Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - Олег Вальпа

Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - Олег Вальпа

Читать онлайн Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - Олег Вальпа
1 ... 27 28 29 30 31 32 33 34 35 ... 52
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать

Наконец, рассмотрим команды выполнения вычислений с одновременной пересылкой данных между регистрами. Многофункциональные команды этого последнего типа задают выполнение пересылки данных из одного регистра данных в другой с одновременным выполнением какой-либо вычислительной операции. Большинство ограничений, рассмотренных для предыдущих типов многофункциональных команд, справедливо и для этих команд. Пример такой команды:

AR=AX0+AY0, AX0=MR2;

В данном примере операция сложения в АЛУ производится одновременно с загрузкой в регистр AX0 нового значения, взятого из регистра MR2. Как и в предыдущих примерах, для вычисления используется значение, содержащееся в регистре AX0 в начале цикла. Данные могут между всеми регистрами ввода или вывода АЛУ, умножителя-накопителя MAC и устройства сдвига, за исключением регистров обратной связи (AF и MF) и регистра SB. В рассмотренном примере новое значение загружается в регистр AX0 из регистра данных в конце цикла. Разрешенными являются все операции АЛУ, кроме деления, все операции умножителя-накопителя и все операции устройства сдвига, кроме непосредственного сдвига. Вычисления должны быть безусловными.

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

| <ALU> |, dreg = dreg;

| <MAC> |

|<SHIFT>|

Вычисление с чтением из памяти:

|<ALU>  |,dreg = |DM(|I0|,|M0|)|;

|<MAC>  |        |   |I1| |M1| |

|<SHIFT>|        |   |I2| |M2| |

                 |   |I3| |M3| |

                 |   |I4| |M4| |

                 |   |I5| |M5| |

                 |   |I6| |M6| |

                 |   |I7| |M7| |

                 |             |

                 |PM(|I4|,|M4|)|;

                 |   |I5| |M5| |

                 |   |I6| |M6| |

                 |   |I7| |M7| |

Вычисление с записью в память:

|DM(|I0|,|M0|)|=dreg, |<ALU>  |;

|   |I1| |M1| |       |<MAC>  |

|   |I2| |M2| |       |<SHIFT>|

|   |I3| |M3| |

|   |I4| |M4| |

|   |I5| |M5| |

|   |I6| |M6| |

|   |I7| |M7| |

|             |

|PM(|I4|,|M4|)|;

|   |I5| |M5| |

|   |I6| |M6| |

|   |I7| |M7| |

Чтение памяти данных и программ:

|AX0|=DM(|I0|,|M0|), |AY0|=PM(|I4|,|M4|);

|AX1|    |I1| |M1|   |AY1|    |I5| |M5|

|MX0|    |I2| |M2|   |MY0|    |I6| |M6|

|MX1|    |I3| |M3|   |MY1|    |I7| |M7|

Команда АЛУ или MAC с чтением памяти данных и программ:

|<ALU>|,|AX0|=DM(|I0|,|M0|), |AY0|=PM(|I4|,|M4|);

|<MAC>| |AX1|    |I1| |M1|   |AY1|    |I5| |M5|

        |MX0|    |I2| |M2|   |MY0|    |I6| |M6|

        |MX1|    |I3| |M3|   |MY1|    |I7| |M7|

В качестве регистров dreg могут быть использованы регистры: AX0, АХ1, AY0, AY1, AR, MX0, МХ1, MY0, MY1, MR0, MR1, MR2, SI, SE, SR0 и SR1.

Примечания:

<ALU>¹ — любая команда АЛУ (исключая DIVS и DIVQ);

<MAC>¹ — любая команда умножителя/накопителя;

<SHIFT>² — любая команда устройства сдвига (исключая непосредственный сдвиг);

где ¹ — должны использоваться только регистры результатов AR, MR, а не регистры обратных связей AF, MF; ² — не могут быть условными командами.

Дополнительные команды

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

Пустая команда:

NOP;

Модифицировать регистр адреса:

MODIFY(|I0|,|M0|);

       |I1| |M1|

       |I2| |M2|

       |I3| |M3|

       |I4| |M4|

       |I5| |M5|

       |I6| |M6|

       |I7| |M7|

Управление стеками:

[|PUSH| STS] [,POP CNTR] [,POP PC] [,POP LOOP];

 |POP |

Управление режимом:

|ENA| |SEC_REG | [, ...];

|DIS| |BIT_REV |

      |AV_LATCH|

      |AR_SAT  |

      |M_MODE  |

      |TIMER   |

      |G_MODE  |

      |INTS    |

Ключевые слова означают следующие режимы:

SEC_REG — фоновый регистровый файл;

BIT_REV — бит-реверс адреса генератора DAG1;

AV_LATCH — защелка статуса переполнения АЛУ (AV);

AR_SAT — насыщение регистра AR;

M_MODE — режим размещения результата MAC;

TIMER — разрешить работу таймера;

G_MODE — разрешить режим «Go mode»;

INTS — разрешить прерывания.

NOP — это команда отсутствия операций. Она часто применяется для выполнения холостого цикла процессора в качестве задержки на один такт.

Команда MODIFY позволяет модифицировать указатель адреса в заданном регистре I на величину, которая содержится в заданном регистре M, не обращаясь при этом к памяти. Как и во всех других случаях, регистры I и M должны быть регистрами одного и того же генератора адреса данных; любой регистр I0–I3 может использоваться в комбинации с любым регистром M0–M3, а любой регистр I4–I7 — с любым регистром M4–M7.

Команды PUSH и POP позволяют непосредственно управлять содержимым стеков состояния, счетчика, счетчика программ (PC) и циклов. Некоторые из этих стеков автоматически заполняются и опустошаются во время обслуживания прерываний.

Команды управления режимом разрешают и блокируют режимы некоторых операций процессора. Эта команды управляют режимами реверсной адресации в генераторе адреса данных 1, фиксацией переполнения АЛУ, насыщением регистра результата АЛУ, выбором набора основных или теневых регистров, режимом GO для непрекращающейся работы процессора во время предоставления шины, режимом сдвига в умножителе для выполнения целочисленных или дробных вычислений и активизацией таймера. За операторами ENA или DIS может следовать через запятую сколько угодно идентификаторов. Команды ENA и DIS могут повторяться в командной строке. Кроме того, все семь режимов могут разрешаться, блокироваться или изменяться при помощи всего одной команды.

Часть III. Вычислительные и аппаратные устройства

В этой части книги говорится о вычислительных и аппаратных устройствах сигнального процессора, к которым относятся арифметико-логическое устройство ALU, устройство умножения MAC, устройство сдвига, устройство обмена между шинами, программный автомат, генераторы адресов, таймер и синхронные последовательные порты. Дается описание архитектуры этих устройств и выполняемых с их помощью команд.

Глава 14. Устройство АЛУ

Назначение

Как уже говорилось ранее, процессор ADSP-2181 содержит три независимых вычислительных устройства (рис. 14.1). К их числу относятся: арифметико-логическое устройство (ALU), умножитель с накопителем (MAC) и устройство сдвига (SHIFTER). Эти устройства работают с 16-разрядными данными и имеют аппаратную поддержку обмена данными, позволяющую обеспечить многопоточность.

Рис. 14.1. Процессор ADSP-2181

Арифметико-логическое устройство выполняет ряд стандартных арифметических и логических команд. MAC выполняет одноцикловые операции умножения, умножения-сложения и умножения-вычитания. SHIFTER осуществляет логические и арифметические сдвиги, нормализацию, денормализацию и операцию получения порядка, а также управление форматом данных, разрешая работу с плавающей точкой.

Вычислительные модули размещаются последовательно друг за другом таким образом, чтобы выход одного мог стать входом другого в следующем цикле. Результаты работы вычислительных устройств собираются на 16-разрядную шину R-BUS.

Все три устройства содержат входные и выходные регистры, которые доступны через 16-разрядную шину данных. Команды, выполняемые в устройствах, берут в качестве операндов данные, находящиеся в регистрах ввода, и после выполнения операции записывают результат в регистры вывода. Регистры являются как бы промежуточным хранилищем между памятью и вычислительной схемой. Шина R-BUS позволяет результату одного вычисления стать операндом для другой операции. Это экономит время благодаря исключению лишних пересылок данных между устройствами и памятью.

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

Рассмотрим подробнее ALU. Его структурная схема приведена на рис. 14.2.

Рис. 14.2. Структурная схема ALU

Арифметико-логическое устройство является 16-разрядным устройством с двумя 16-разрядными входными портами данных X и Y и одним выходным портом результата R. ALU генерирует шесть сигналов состояния: ноль (AZ), негатив (AN), перенос (AC), переполнение (AV), знак (AS) и частное (AQ). В конце каждого цикла процессора эти сигналы сохраняются в регистре состояния процессора ASTAT. Описание назначения этих сигналов состояния приведено в табл. 14.1.

1 ... 27 28 29 30 31 32 33 34 35 ... 52
Перейти на страницу:
Открыть боковую панель
Комментарии
Настя
Настя 08.12.2024 - 03:18
Прочла с удовольствием. Необычный сюжет с замечательной концовкой
Марина
Марина 08.12.2024 - 02:13
Не могу понять, где продолжение... Очень интересная история, хочется прочесть далее
Мприна
Мприна 08.12.2024 - 01:05
Эх, а где же продолжение?
Анна
Анна 07.12.2024 - 00:27
Какая прелестная история! Кратко, ярко, захватывающе.
Любава
Любава 25.11.2024 - 01:44
Редко встретишь большое количество эротических сцен в одной истории. Здесь достаточно 🔥 Прочла с огромным удовольствием 😈