- •Цифровые сигнальные процессоры
- •Содержание
- •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.6. Функциональная схема мас
Основу MAC (рис. 1.7) составляют умножитель MULTIPLIER и сумматор/вычитатель ADD/SUBTRACT. Умножитель выполняет операции умножения (см. п. 1.17.6) над 16-битными кодами, присутствующими на его Х- и Y- входах. Результат операции (произведение) появляется на 32-битном выходе P(roduct) и подается на один вход сумматора/вычитателя, на второй вход которого подается содержимое регистра результата MR (Mac Result).
Регистр результата представляет собой совокупность трех регистров MR2…MR0, первый из которых (MR2) 8-битный, второй и третий – 16-битные.
В зависимости от команды (см. п. 1.17.6) сумматор/вычитатель может просто передать произведение в регистры MR1, MR0 (с выходов R1, R0 через мультиплексоры MUX 5, MUX 6), а также может сложить/ вычесть произведение с/из содержимым/содержимого регистра результата MR.
Произведение может быть запомнено не только в регистрах результата МR2…MR0 (через мультиплексоры MUX 4…MUX 6), но и в регистре обратной связи МF (Мас Feedback). При этом используется выход R1 сумматора/вычитателя, поскольку – это выход старшего слова произведения. Выход R0 содержит младшее слово произведения (наименее значимое), а выход R2 служит для вывода переносов/заемов, которые могут возникнуть при операциях сложения/вычитания.
При появлении переполнения МАС формирует признак MV (Mac oVerflow), который запоминается в регистре ASTAT.
Регистры результата MR2…MR0 связаны с шиной результата R BUS, поэтому их содержимое может быть использовано в качестве xop других арифметических устройств (см. пп. 1.5, 1.7). Кроме этого, они могут загружаться не только из сумматора/вычитателя, но и с шины данных ПД (DMD BUS). Через мультиплексор MUX 7 содержимое регистров результата MR2…MR0 также может быть считано на шину данных ПД (DMD BUS).
В
качестве хор умножителя может
выступать содержимое одного из МХ
регистров (МХ1 или МХ0) или любого из
регистров результата AR,
MR2…MR0, SR1,
SR0. Выбор хор
обеспечивается мультиплексором MUX
2. В качестве yор
умножителя может выступать содержимое
одного из МY регистров
(МY1 или МY0) или регистра обратной связи
MF. Выбор yор
обеспечивается мультиплексором MUX
3.
Регистры МХ1, МХ0 могут загружаться и считываться через шину данных ПД (DMD BUS). Регистры МY1, МY0 могут загружаться и считываться через шину данных ПД (DMD BUS) и загружаться с шины данных ПП (PMD BUS). Выбор шины обеспечивает мультиплексор MUX 1.
По свойствам все регистры МАС аналогичны регистрам ALU (см. п. 1.5).
1.7. Функциональная схема shifter
Устройство сдвига (УС, рис. 1.8) поддерживает выполнение команд арифметического сдвига, логического сдвига и нормализации (см. п. 1.17.7). Кроме этого, УС позволяет извлекать экспоненту числа, а также извлекать общую экспоненту целого блока чисел. Эти функции наиболее полезны при операциях с числами в формате с плавающей точкой.
УС может быть разделено на следующие блоки: сдвигатель (SHIFTER ARRAY), блок OR/PASS, детектор экспоненты EXP DET, блок сравнения экспонент COMPARE.
Сдвигатель может поместить 16-битный входной код (I) в любое место 32-битного выхода (О). Всего существует 49 размещений входного кода в 32-битном пространстве выходного кода. Размещение (число сдвигов и направление сдвигов) определяются кодом на входе С и сигналом HI/LO сдвигателя.
В состав УС входят также регистры: входной (SI – Shifter Input), экспоненты (SE – Shifter Exponent) и блочной экспоненты (Shifter Block). Во входном регистре хранится входной 16-битный код сдвигателя и детектора экспоненты. С помощью DMD-шины можно считать и изменить (записать) содержимое этого регистра. Входным кодом для сдвигателя и детектора экспоненты может быть содержимое AR (см. п. 1.5), SR или MR (см. п. 1.6), поскольку все эти регистры связаны с R-шиной. Выбор производится мультиплексором MUX 2, который управляется кодом команды сдвига (см. п. 1.17.7).
Результат сдвига через блок OR/PASS помещается в 32-битный регистр SR (Shifter Result), который разделен на два 16-битных регистра SR0 и SR1. Кроме блока OR/PASS источниками кода для загрузки этих регистров могут быть DMD- и R-шины (через MUX 2, сдвигатель и блок OR/PASS). Выбор источника осуществляют мультиплексоры MUX 5, MUX 6. Выход SR регистра связан с одним из входов блока OR/PASS для реализации операций сдвига двойной точности, а также с DMD-шиной (через мультиплексор MUX 7)..
Во время выполнения операций нормализации и денормализации (см. п. 1.17.7) 8-битный регистр SE хранит экспоненту. Экспонента является целым числом со знаком и может быть загружена (и прочитана) через младшие 8 бит DMD-шины.
Во время выполнения операций над блоком чисел в формате с плавающей точкой (см. п. 1.17.7) 5-битный регистр SB хранит блочную экспоненту, т. е. число на которое должны быть сдвинуты все числа блока (обычно – это максимальная экспонента блок чисел). Блочная экспонента является целым числом со знаком и может быть загружена (и прочитана) через младшие 5 бит DMD-шины.
Когда содержимое регистров SE и SB считывается через DMD-шину, происходит расширение знака до 16 бит. По свойствам все регистры УС аналогичны регистрам ALU (см. п. 1.5).
Направление сдвига и число сдвигов определяется управляющим кодом на входе С сдвигателя. Положительное управляющее число определяет сдвиг влево, а отрицательное – вправо. Имеется три источника такого кода: содержимое регистра SE, инвертированное (через инвертор NEG) содержимое регистра SE и непосредственное значение из команды CMD. Выбор источника осуществляется мультиплексором MUX 4.
Значение сигнала HI/LO определяет размещение сдвинутого входного кода в 32-битном пространстве выходного кода. В частности, значение HI определяет размещение кода в регистре SR1, а LO – в регистре SR0. Табл. 1.3 показывает значения выходного кода сдвигателя при различных значениях управляющего кода и сигнала HI/LO.
Таблица 1.3
