Интернет-журнал "Домашняя лаборатория", 2007 №8
Шрифт:
• Нормализация (преобразование из формата с фиксированной точкой в формат с плавающей точкой)
• Денормализация (преобразование из формата с плавающей точкой в формат с фиксированной точкой)
• Арифметические и логические сдвиги
• Поддержка блочной плавающей точки
• Получение экспоненты
• Вспомогательные регистры для быстрого переключения контекста
• Примеры команд регистра сдвига
? SR = ASHIFT SI BY — 6(LO); {Арифметический сдвиг}
? SR = SR OR LSHIFT SI BY 3(HI); {Логический сдвиг}
? SR = NORM MRl(LO); {Нормализация}
Рис. 7.11
Вычислительные блоки располагаются параллельно, а не последовательно, так что результат работы любого блока может использоваться как исходное данное для другого
АДРЕСНЫЕ ГЕНЕРАТОРЫ И УСТРОЙСТВО УПРАВЛЕНИЯ ПОСЛЕДОВАТЕЛЬНОСТЬЮ ВЫПОЛНЕНИЯ КОМАНД (СЕКВЕНСЕР)
Два специализированных адресных генератора и мощный секвенсер делают использование вычислительных блоков еще более эффективным. Адресные генераторы (DAG) вычисляют адреса при перемещении данных из памяти в регистры и обратно. Каждый генератор DAG обладает четырьмя регистрами-указателями. Всякий раз, когда указатель используется для адресации данных (косвенная адресация), он модифицируется значением, содержащимся в специализированном регистре-модификаторе. Для реализации автоматической циклической буферизации каждому регистру-указателю приписывается регистр, хранящий длину циклического буфера. При использовании двух независимых адресных генераторов DAG процессор может генерировать одновременно два адреса для обеспечения одновременной выборки двух операндов.
DAG1 может осуществлять адресацию только в памяти данных. DAG2 может осуществлять адресацию и в памяти данных, и в памяти программ. Когда в конфигурационном регистре (MSTAT) установлен соответствующий управляющий бит, адресный генератор DAG1 осуществляет бит-реверсивную адресацию. Бит-реверсивная адресация существенно упрощает реализацию алгоритма БПФ по основанию 2.
Программный секвенсер осуществляет вычисление адреса инструкции, выборка которой должна осуществляться по мере исполнения программы. Ключевым компонентом устройства является регистр команд, который хранит информацию о выполняемой в текущее время команде. Регистр команд образует одноуровневый конвейер в потоке обрабатываемых команд. Команды выбираются и загружаются в регистр команд в одном цикле шины процессора и выполняются в следующем цикле, в то время как осуществляется выборка следующей команды. Чтобы уменьшить количество дополнительных циклов, устройство поддерживает выполнение переходов по условию, вызовов подпрограмм и возвращений к выполнению главной программы за один машинный цикл. Используя внутренний счетчик цикла и стек цикла процессор может выполнять программу цикла с автоматической проверкой условия завершения, без дополнительных затрат процессорного времени на организацию цикла. Таким образом, чтобы организовать цикл, команды явного перехода не требуются. Устройство также способно с минимальной задержкой реагировать на прерывания, поступающие от контроллера прерываний. Появление прерывания вызывает переход к определенной ячейке памяти, где хранится подпрограмма обработки прерывания. Короткая подпрограмма обработки прерывания может располагаться непосредственно в таблице векторов прерываний, где для этих целей зарезервировано четыре ячейки памяти. Для выполнения более сложной подпрограммы обработки прерывания приходится осуществлять переход с помощью команды JUMP в область памяти программ, где может быть размещена более длинная программа.
ОСОБЕННОСТИ УСТРОЙСТВА УПРАВЛЕНИЯ ПОСЛЕДОВАТЕЛЬНОСТЬЮ ВЫПОЛНЕНИЯ КОМАНД (СЕКВЕНСЕРА)
• Генерация адреса следующей команды
• Обработка прерываний с минимальной задержкой
• Поддержка аппаратного стека
• Условный переход осуществляется за один машинный цикл
• Поддерживает автоматическую проверку условия завершения цикла
Пример программы для ADSP21xx:
CNTR = 10;
DO endloop UNTIL CE;
IO(DACCONTROL) = AX0;
MR = MR + MX0 * MY0(SS), MX(0) = DM(I0,M1), MY0 = PM(I4,M5);
endloop:
IF MV SET FL1;
IF EQ CALL mysubroutine;
Рис. 7.13
Встроенные периферийные устройства процессоров семейства ADSP-21XX
В предыдущих разделах мы обсуждали архитектуру ядра процессоров семейства ADSP-21хх с фиксированной точкой, которая является одинаковой для всех представителей семейства. Следующий раздел посвящен встроенным периферийным устройствам, которые имеют различную конфигурацию и разные возможности в зависимости от конкретного исполнения представителя семейства. Архитектура процессора семейства ADSP-218x показана на рис. 7.14.
ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: ИНТЕРФЕЙС ПАМЯТИ
• Все представители семейства используют модифицированную гарвардскую архитектуру
? Раздельные память программ и память данных
? Имеется доступ к данным, хранящимся в памяти программ
• Различные представители семейства имеют различную конфигурацию памяти
• Интерфейс внешней памяти поддерживает как быструю, так и медленную память с возможностью программирования времени ожидания
• Поддерживаются варианты начальной загрузки из 8-битной памяти через порт BDMA и через хост-интерфейс
• Поддерживает отображенную в память периферию
• Встроенные средства арбитража внешней шины (сигналы запроса и предоставления шины)
Рис. 7.15
Семейство 21хх имеет множество различных вариантов процессоров с разным объемом встроенной памяти; в более новом семействе 218х имеются представители, включающие до 48К слов памяти программ и 56К слов памяти данных. Все представители семейства используют модифицированную гарвардскую архитектуру, которая предполагает раздельные адресные пространства памяти программы и памяти данных и позволяет хранить данные в памяти программы. Интерфейс внешней памяти поддерживает как быструю, так и медленную память с программируемыми состояниями ожидания.
Процессоры семейства ADSP-218х также поддерживают отдельное адресное пространство портов ввода-вывода.
Все представители семейства 21хх (кроме сигнальных процессоров ADSP-2105) имеют два последовательных порта с двойной буферизацией (SPORT) для приема и передачи последовательных данных. Каждый SPORT является двунаправленным и имеет свой собственный программируемый генератор битовой и фреймовой синхронизации. Длина слова SPORT может изменяться от 3 до 16 разрядов. Данные могут передаваться с использованием фреймовой синхронизации или без нее. Каждый SPORT способен генерировать прерывания и поддерживает логарифмическое сжатие данных по законам А
ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: ПОСЛЕДОВАТЕЛЬНЫЕ ПОРТЫ (SPORTs)
• Последовательные порты в ADSP-21xx используются для синхронной передачи данных
• Обеспечивают полнодуплексную связь
• Полностью программируемые
• Обладают возможностью автобуферирования и прямого доступа в память
• • Поддерживают многоканальный режим с временным уплотнением каналов (TDM)
• Имеют встроенную опцию логарифмического сжатия данных с использованием законов А и ?
• Данные могут передаваться со скоростью от 25Мбит/с и более
• Широкий диапазон подключаемых устройств и процессоров с последовательным интерфейсом без дополнительной обвязки
• ЦСП семейства 219х имеют также последовательные порты SPI и UART с возможностью начальной загрузки процессора через них.
Рис. 7.16
IDMA-порт процессоров семейства ADSP-218xx поддерживает возможность начальной загрузки процессора от хост-компьютера и возможность доступа со стороны хост-компьютера во внутреннюю память DSP для чтения и записи "на лету", когда DSP занимается выполнением своей программы. Порт IDMA позволяет главному процессору осуществлять доступ ко всей внутренней памяти DSP без использования почтовых регистров. Порт IDMA поддерживает передачу 16- и 24-разрядных слов, при этом передача 24-разрядных слов происходит за два машинных цикла.