Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++
Наконец, рассмотрим команды выполнения вычислений с одновременной пересылкой данных между регистрами. Многофункциональные команды этого последнего типа задают выполнение пересылки данных из одного регистра данных в другой с одновременным выполнением какой-либо вычислительной операции. Большинство ограничений, рассмотренных для предыдущих типов многофункциональных команд, справедливо и для этих команд. Пример такой команды:
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.
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++, относящееся к жанру Справочники. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


