- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - Олег Вальпа
Шрифт:
Интервал:
Закладка:
Источниками входных данных в устройстве сдвига могут служить регистры SI, AR, MR0, MR1, MR2, SR0 и SR1. Результат работы устройства сдвига всегда помещается в регистр SR (SR0, SR1).
Команды устройства сдвигаКак было сказано выше, устройство сдвига выполняет следующие функции:
• Арифметический сдвиг (ASHIFT)
• Логический сдвиг (LSHIFT)
• Нормализация числа (NORM)
• Определение экспоненты (ЕХР)
• Блочное изменение экспоненты (EXPADJ)
Данные команды устройства сдвига применяются при выполнении арифметических операций над числами. С их помощью производится определение порядка блока, немедленные сдвиги, нормализация и денормализация чисел.
Ниже приводится полный список команд устройства сдвига Shifter в соответствии с принятыми ранее условными сокращениями. Назначение команд приводится в тексте описания этих команд и комментариях для некоторых из команд.
Команды арифметического сдвига:
[IF cond] SR = |SR OR| ASHIFT xop |(HI)|;
|(LO)|
Команды логического сдвига:
[IF cond] SR = |SR OR| LSHIFT xop |(HI)|;
|(LO)|
Команды нормализации:
[IF cond] SR = |SR OR| NORM xop |(HI)|;
|(LO)|
Команды выделения порядка:
[IF cond] SR = EXP xop |(HI) |;
|(LO) |
|(HIX)|
Команды выравнивания блочного порядка:
[IF cond] SR = EXPADJ xop;
Команды арифметического непосредственного сдвига:
[IF cond] SR = |SR OR| ASHIFT xop BY <exp> |(HI)|;
|(LO)|
Команды логического непосредственного сдвига:
[IF cond] SR = |SR OR| LSHIFT xop BY <exp> |(HI)|;
|(LO)|
В записях некоторых команд присутствуют символы, которые имеют следующее назначение:
HI — сдвиг выполняется относительно старших 16 разрядов (SR1);
LO — сдвиг выполняется относительно младших 16 разрядов (SR0);
HIX — расширенный режим HI (при выделении порядка учитывается бит переполнения AV).
Например, команда:
SE=EXP AR (HIX);
означает, что в регистр SE будет занесен результат выделения порядка из регистра AR в расширенном режиме, т.е. с учетом бита переполнения AV.
Команда:
SR=NORM AR (HI); {Нормализация}
означает, что в регистр SR будет занесен результат нормализации регистра AR, причем сдвиг при нормализации будет выполняться относительно старших 16 разрядов.
Для всех команд устройства сдвига разрешено использовать следующие операнды xop: SI, SR0, SR1, AR, MR0, MR1, MR2, а в качестве ЕХР может быть любое целое число от -128 до 127.
Коды условия IF соответствуют кодам, приведенным ранее в табличном виде.
Ниже приведен пример программы для вычисления разницы двух чисел в формате с плавающей точкой, с применением устройства сдвига.
.MODULE float_point_sub;
{
Программный модуль вычисления z = x - y в формате с плавающей точкой
Входные операнды:
AX0 = показатель x, АХ1 = мантисса x, AY0 = показатель y, AY1 = мантисса y.
Выходные данные: AR = показатель z, SR1 = мантисса z
Изменяются регистры: AX0,AY1,AY0,AF,AR,SI,SE,SR
Время вычисления = 11 циклов
}
.ENTRY fps;
fps : AF=AX0-AY0; {Показатель x > показателя y?}
IF GT JUMP shifty; {Если да - переход на сдвиг y}
SI=AX1, AR=PASS AF; {Иначе - сдвиг x}
SE=AR;
SR=ASHIFT SI (HI);
AR=SR1-AY1; {Вычисление мантиссы}
JUMP subt;
shifty: SI=AY1, AR=-AF; SE=AR;
SR=ASHIFT SI (HI);
AY1=SR1;
AY0=AX0, AR=AX1-AY1; {Вычисление мантиссы}
subt: SE=EXP AR (HIX);
AX0=SE, SR=NORM AR (HI); {Нормализация}
AR=AX0+AY0; {Вычисление показателя}
RTS;
.ENDMOD;
Данная программа содержит многофункциональные команды, что позволило сократить время ее работы. Программа выполняется всего за 11 машинных циклов процессора.
Глава 17. Устройство обмена между шинами
В этой главе говорится об устройстве обмена между шинами памяти программ PMD и памяти данных DMD.
В операциях обмена данными и при загрузке данных вычислительными устройствами процессора, часто используется устройство обмена между шиной памяти программ PMD и шиной памяти данных DMD. Это устройство позволяет передавать данные между упомянутыми выше шинами в обоих направлениях. Рассмотрим работу данного устройства. Его структурная схема приведена на рис. 17.1.
Рис. 17.1. Устройство обмена между шинами памяти программ PMD и памяти данных DMD
Как видно из рисунка, устройство состоит из нескольких буферов, мультиплексора и регистра PX. Регистр PX используется для временного хранения 8 разрядов данных. Он необходим для обеспечения корректной передачи данных между 16-разрядной шиной DMD и 24-разрядной шиной PMD. При этом старшие 16 разрядов 24-разрядной шины PMD передаются на 16 разрядов шины DMD непосредственно, а 8 младших разрядов записываются в регистр PX, а затем передаются на младшие 8 разрядов шины DMD.
Из структурной схемы устройства видно, что данные между шинами передаются двумя путями. Первый путь позволяет осуществлять прямую пересылку старших 16 разрядов данных между шинами через буферные регистры. Второй путь служит для пересылки младших 8 разрядов данных между шинами.
Рассмотрим механизм обмена данными с использованием регистра PX.
Когда данные считываются из памяти программ в любой регистр, происходит автоматическая загрузка регистра PX младшими 8 разрядами 24-разрядного слова. Например:
AX0 = PM(I7,M7);
При выполнении этой команды старшие 16 разрядов 24-разрядного слова памяти программы загружаются в регистр AX0, а младшие 8 разрядов автоматически загружаются в регистр PX.
При записи данных в память программ содержимое регистра PX автоматически считывается в младшие 8 разрядов памяти программ. Например:
PM(I7,M7) = AX0;
Здесь данные регистра AX0 записываются в старшие 16 разрядов 24-разрядного слова памяти программы, а 8 разрядов, хранящиеся в регистре PX от предыдущей команды, автоматически записываются в младшие 8 разрядов этого же слова. Таким образом, достигается автоматическая пересылка данных между 16- и 24-разрядными шинами.
Кроме того, существуют команды прямого доступа к регистру PX с шины памяти данных. При этом используются только младшие 8 разрядов шины данных, а старшие 8 разрядов данных отбрасываются или заполняются нулями. Например:
PX = AX0;
Эта команда передает в регистр PX 8 младших разрядов из регистра AX0 через шину данных. Восемь старших разрядов 16-разрядного слова при этом отбрасываются.
Следующая команда передает содержимое регистра PX в 8 младших разрядов регистра AX0. При этом старшие 8 разрядов регистра AX0 заполняются нулями.
AX0 = PX;
Каждый раз, когда содержимое какого-либо регистра записывается в память программ, из этого регистра передаются 16 старших разрядов, а содержимое регистра PX автоматически добавляется в качестве младших 8 разрядов данных. Если эти 8 младших разрядов регистра PX должны иметь определенное значение, они должны быть предварительно загружены в регистр PX соответствующей командой.
Ниже приведен модуль программы, предназначенной для пересылки 24-разрядных данных из одной области памяти программ в другую при помощи 16-разрядного регистра.
.MODULE copy_pdm;
{
Входные данные:
I4= адрес источника данных
L4 = длина буфера данных
I5= адрес приемника данных
Выходные данные:
Перемещенные данные
Изменяемые регистры:
AR, M4
}
.ENTRY COPY_PMDAT;
COPY_PMDAT:
M4=1;
CNTR = L4;
DO COPY_MEM UNTIL СЕ;
AR=PM(I4, M4);
PM(I5, M4)=AR;
COPY_MEM:
RTS;
.ENDMOD;
Обратите внимание, что в этой программе регистр PX не используется явным образом в командах, тем не менее, пересылка 24-разрядных данных через 16-разрядный регистр AR осуществляется корректно, благодаря автоматическому режиму работы устройства обмена данными с применением регистра PX.
Глава 18. Программный автомат
В этой главе говорится о программном автомате сигнального процессора и выполняемых с его помощью командах.
Программный автомат управляет последовательностью выполнения программы. Он содержит контроллер прерываний и логическое устройство состояний. Программный автомат позволяет осуществлять последовательное выполнение команд, условные и безусловные переходы в программе, обработку прерываний и подпрограмм. Структурная схема этого устройства приведена на рис. 18.1.

