
- •Часть I. Схемотехника
- •Глава 1. Обзор
- •Глава 2. Архитектура
- •Глава 3. Практические схемы включения
- •Глава 4. Программно-логическая модель
- •Глава 5. Система прерываний
- •Часть II. Программирование
- •Глава 6. Первая программа
- •Глава 7. Порт bdma
- •Глава 8. Порт idma
- •Глава 9. Адаптер lpt-idma
- •Глава 10. Менеджер памяти
- •Глава 11. Директивы ассемблера
- •Глава 12. Форматы данных
- •Глава 13. Система команд
- •Часть III. Вычислительные и аппаратные устройства
- •Глава 14. Устройство алу
- •Глава 15. Устройство mac
- •Глава 16. Устройство сдвига
- •Глава 17. Устройство обмена между шинами
- •Глава 18. Программный автомат
- •Глава 19. Генераторы адресов
- •Глава 20. Таймер
- •Глава 21. Синхронные последовательные порты
- •Глава 22. Установка
- •Глава 26. Программирование на языке си
Глава 4. Программно-логическая модель
В этой главе говорится о внутренней программно-логической модели процессора и его системе прерываний.
Прежде чем начать разрабатывать программы для сигнального процессора, необходимо познакомиться с его программно- логической моделью, системой команд и программными инструментами. Освоение данного материала потребует времени и терпения. Но без хорошего знания этих основ невозможно будет научиться программировать сигнальный процессор.
Итак, начнем с программно-логической модели процессора. Такая модель для ADSP-2181 приведена на рис. 4.1.
Рис. 4.1. Программно-логическая модель ADSP-2181
На ней представлены все регистры процессора с указанием их размерности и условными обозначениями. Несмотря на многочисленность этих регистров, все они систематически распределены по логическим блокам процессора, что позволяет понять их назначение без особого труда.
Главный блок регистров представлен на рисунке слева, в процессорном ядре. В первую очередь это блоки регистров программных генераторов адреса DAG1 и DAG2. Данные блоки регистров включают в себя индексные регистры I, регистры длины буфера L и регистры-модификаторы M.
Все перечисленные регистры имеют размерность 14 бит. Эти регистры позволяют организовывать в памяти процессора циклические и линейные буферы, с автоматическим инкрементом адреса слов в этих буферах и отслеживанием их длины. В каждом из блоков генераторов адресов присутствует по четыре группы таких регистров. Использование этих и других регистров будет рассмотрено позже на конкретных примерах.
Блок программного автомата содержит регистры, отвечающие за автоматические операции процессора. В их число входят:
• программный счетчик с 16-уровневым 14-разрядным стеком PC STACK, для организации вызова подпрограмм и обработки прерываний;
• счетчик циклов CNTR с 4-уровневым 14-разрядным стеком COUNT STACK, для организации вложенных программных циклов;
• псевдорегистр OWRCNTR, для обновления значения счетчика CNTR;
• цикловой компаратор LOOP STACK с 4-уровневым 18-разрядным стеком, для обеспечения выполнения программных циклов без тактов ожидания.
Назначение остальных регистров управления и состояния блока программного автомата процессора, приводится в табл. 4.1. Обращение к этим регистрам из программы производится по их логическим именам, совпадающим с именами, приведенными на рис. 4.1 и в табл. 4.1.
Таблица 4.1а Регистр состояния арифметико-логического устройства ASTAT
Таблица 4.1б Регистр состояния режима процессора MSTAT
Таблица 4.1в Регистр разрешения прерываний IMASK (0 — запрещено, 1 — разрешено)
Таблица 4.1г Регистр состояния стека SSTAT
Таблица 4.1д Регистр управления прерываниями ICNTL
Таблица 4.1е Регистр установки и сброса прерываний IFC (только запись)— произвольное состояние после сброса.
Блок арифметико-логического устройства ALU включает в себя:
• два 16-разрядных регистра операндов AX0 и AX1;
• два 16-разрядных регистра операндов AY0 и AY1;
• один 16-разрядный регистр результата AR;
• один 16-разрядный регистр обратной связи AF.
Все эти регистры имеют своих двойников — теневые регистры, изображенные на рисунке программно-логической модели процессора в виде теней. Переключение между основными и теневыми регистрами производится программно. Блок умножителя MAC включает в себя:
• два 16-разрядных регистра операндов MX0 и MX1;
• два 16-разрядных регистра операндов MY0 и MY1;
• два 16-разрядных регистра результата MR0 и MR1;
• один 8-разрядный регистра результата MR2;
• один 16-разрядный регистр обратной связи AMF.
Блок устройства сдвига SHIFTER включает в себя:
• два 16-разрядных регистра результата SR0 и SR1;
• один 5-разрядный регистр блочных операций SB;
• один 8-разрядный регистр экспоненты SE;
• один 16-разрядный регистр операнда SI.
Так же как и в ALU, в блоках MAC и SHIFTER все регистры имеют своих двойников — теневые регистры.
Устройство обмена между шинами представляет собой 8-разрядный регистр PX, участвующий в пересылках между шинами адреса и данных.
Остальные регистры процессора распределены между блоками таймера, интерфейсной памяти, портов SPORT0 и SPORT1, портов IDMA и BDMA и блоком программируемых флагов.
Все эти регистры процессора доступны как ячейки памяти данных, т.е. отображены на память данных процессора. Для таких регистров, на рисунке программно-логической модели приведен адрес каждого регистра в шестнадцатеричном виде, слева от его обозначения.
Всего в процессоре отведено тридцать две ячейки 16-разрядных слов с адреса 0x3FE0 по адрес 0x3FFF для регистров такого типа. Часть ячеек памяти для таких регистров не используется в рассматриваемом процессоре ADSP-2181, но используется в других процессорах семейства ADSP-21XX.
В табл. 4.2 приведено назначение разрядов всех регистров, отображенных на память процессора.
Таблица 4.2а Регистр управления системой SCR, адрес памяти данных = 0x3FFF
Таблица 4.2б Регистр тактов ожидания WSR, адрес памяти данных=0x3FFE
Таблица 4.2в Регистры таймера
Таблица 4.2г Регистры последовательного порта SPORT0
Таблица 4.2д Регистры последовательного порта SPORT1
Таблица 4.2е Регистры управления программируемыми флагами
Таблица 4.2ж Регистры управления портом байтовой памяти BDMA
Таблица 4.2з Регистр управления IDMACR— произвольное состояние после сброса.
Условные обозначения регистров в таблицах соответствуют их названиям на программно-логической модели, изображенной на рис. 4.1.
Все перечисленные выше регистры позволяют осуществлять полный контроль и управление над процессором со стороны программы.