- •Цифровые сигнальные процессоры
- •Содержание
- •1. Архитектура adsp-2181
- •1.1. Описание выводов процессора
- •1.2. Структурная схема adsp-2181
- •Генераторы адресов данных dag1 и dag2, регистр команд instruction register и программный конвейер program sequencer.
- •1.3. Память программ
- •1.4. Память данных
- •1.5. Функциональная схема alu
- •1.6. Функциональная схема мас
- •1.7. Функциональная схема shifter
- •Значения выходного кода сдвигателя при различных значениях
- •1.8. Функциональная схема программного конвейера
- •1.9. Система прерываний
- •1.9.3. Конфигурирование прерываний.
- •1.10. Регистры состояния и стек состояния
- •1.11. Передача данных
- •1.11.1. Генераторы адресов
- •1.11.2. Узел обмена данными
- •1.12. Последовательные порты
- •1.12.1. Общие сведения
- •1.12.2. Программирование sport
- •Функциональное назначение конфигурационных регистров
- •1.12.3. Пример конфигурирования последовательных портов
- •{Программа инициализации sport0, sport1}
- •1.12.4. Сжатие данных
- •1.12.5. Автобуферизация
- •1.12.6. Пример программирования автобуферизации
- •1.12.7. Многоканальность
- •1.13. Таймер
- •1.14. Системный интерфейс
- •1.14.1. Сигналы синхронизации
- •Состояние регистров процессора после сброса и перезагрузки
- •Состояние регистров bdma после сброса и перезагрузки
- •1.14.2. Внешние прерывания
- •1.14.3. Флажковые биты
- •1.14.4. Режим энергосбережения
- •1.15. Контроллер прямого доступа к байтовой памяти (bdma)
- •1.15.1. Общие сведения
- •1.15.2. Регистры управления bdma
- •1.15.3. Функционирование bdma
- •1.15.4. Загрузка программ с помощью bdma
- •1.16. Порт idma
- •1.16.1. Сигналы idma
- •1.16.2. Функционирование idma
- •1.16.3. Загрузка программ с помощью idma
- •1.17. Система команд
- •1.17.1. Общие сведения
- •1.17.2. Методы адресации
- •1.17.3. Условные обозначения
- •1.17.4. Команды пересылки данных
- •1.17.5. Команды alu
- •Б) вычитание X-y/вычитание X-y с заемом
- •1.17.6. Команды мас
- •1.17.7. Команды shifter
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop и условия cond см. П. 1.17.7.А.
- •Допустимые регистры xop см. П. 1.17.7.А.
- •Допустимые регистры xop см. П. 1.17.7.А.
- •1.17.8. Команды управления потоком программы
- •Допустимые условия cond:
- •Допустимые условия cond см. П. 1.17.8.А.
- •1.17.9. Многофункциональные команды
- •1.17.10. Прочие команды
- •1.18. Инструментальные средства разработки программного обеспечения
- •1.18.1. Инструментальные средства для dos
- •1.18.2. Инструментальные средства для windows
- •1.18.3. Создание проекта в VisualDsp
- •1.18.4. Загрузка программы в ez-kit Lite
- •1.19. Примеры программирования в среде VisualDsp
- •1.19.1. Формирование эхо-сигнала
- •Architecture(adsp-2181) // определение типа процессора
- •1.19.2. Эмуляция интерфейса rs-232
- •1.19.3. Эмуляция интерфейса rs-232 (смешанный вариант)
- •Architecture(adsp-2181) // определение типа процессора
- •2. Архитектура системы на основе adsp-2181
- •2.1. Структурная схема вычислительной (управляющей)
- •2.2. Цепи синхронизации и запуска процессора
1.5. Функциональная схема alu
Основу ALU (рис. 1.6) составляет собственно ALU, которое выполняет арифметико-логические операции (см. п. 1.17.5) над 16-битными кодами, присутствующими на его Х- и Y- входах. Результат операции появляется на 16-битном выходе R(esult) и может быть запомнен в регистре результата AR (через мультиплексор MUX 4) или в регистре обратной связи AF (Alu Feedback).
Кроме этого ALU формирует различные признаки (флаги, см. п. 1.10) результата, в частности: флаг нуля AZ (Alu Zero), флаг отрицательного результата AN (Alu Negative), флаг переноса AC (Alu Carry), флаг переполнения AV (Alu oVerflow), флаг знака Х-операнда AS (Alu Sign), значение бита частного AQ (Alu Quotient). Все флаги сохраняются в регистре арифметического состояния ASTAT (см. п. 1.10). Для выполнения команд, использующих перенос/заем, ALU использует значение флага переноса CI, который хранится в ASTAT.
Мультиплексор MUX 2 выбирает значение Х-операнда (хор). Таковым может быть содержимое одного из АХ регистров (АХ0 или АХ1) или код, находящийся на шине результатов R BUS.
Поскольку с шиной результата связаны регистры результата всех арифметических устройств, то хор (кроме АХ0, АХ1) могут быть AR, MR0, MR1, MR2 (см. п. 1.6) и SR0, SR1 (см. п. 1.7).
АХ регистры связаны с шиной данных ПД (DMD BUS), поэтому в них может быть записан код из ПД и считан – в ПД. Система команд процессора (см. п. 1.17) позволяет чтение содержимого этих регистров в ПП, но это не прямой путь, а через BUS EXCH (см. рис. 1.2). Все АХ регистры двух портовые. Это означает, что в одном регистре находятся данные для ALU, а другой регистр одновременно взаимодействует с DMD BUS, т.е. выполнение команды может быть совмещено с чтением следующего операнда.
Мультиплексор MUX 3 выбирает значение Y-операнда (yор). Таковым может быть содержимое одного из АY регистров (АY0 или АY1) или содержимое регистра AF.
С помощью мультиплексора MUX 1 АY регистры связаны и с шиной данных ПД (DMD BUS), и с шиной данных ПП (PMD BUS). Поэтому в них может быть записан код из ПД и считан – в ПД, а также записан – из ПП. Система команд процессора (см. п. 1.17) позволяет чтение содержимого этих регистров в ПП, но это не прямой путь, а через BUS EXCH (см. рис. 1.2). Все АY регистры двух портовые.
С помощью мультиплексора MUX 4 АR регистр связан с шиной данных ПД (DMD BUS), поэтому в него может быть записан код из ПД и считан – в ПД. Система команд процессора (см. п. 1.17) позволяет чтение содержимого этого регистра в ПП, но это не прямой путь, а через BUS EXCH (см. рис. 1.2).
Любой регистр ALU может быть сосчитан и записан в одном и том же машинном цикле. Считывание регистра происходит в начале машинного цикла, в то время как запись – в конце. Это позволяет, например, считать из AR предыдущий результат и записать в него текущий в одном и том же машинном цикле.
ALU содержит двойной банк регистров. На рис. 1.6 это отражено тенью. В одно и то же время доступен только один банк регистров. Дополнительный банк регистров может быть использован для быстрого переключения контекста задачи, например, в обработчиках прерываний. При этом не требуется сохранение контекста путем пересылки данных в память, например, в стек, как это делается во многих видах процессоров. Выбор номера банка регистров обеспечивает бит 0 в регистре состояния процессора MSTAT (см. п. 1.10). Если этот бит сброшен, то выбран первый банк регистров, в противном случае – второй.
