Добавить в цитаты Настройки чтения

Страница 258 из 436

Стрелками отмечены непосредственно исполняемые команды (7 строк), остальная часть текста — дополнительные комментарии, введенные для ясности. Первая команда (на которой стоит метка fir:) инициализирует вычисления, очищая регистр MR и загружая первый элемент данных и значение коэффициента из памяти данных и памяти программ соответственно в регистры МХ0 и MY0. Затем N-1 раз в N-1 циклах производится умножение с накоплением и автоматической проверкой условия завершения цикла для вычисления суммы первых N-1 произведений. Последняя команда умножения с накоплением производится с округлением с точностью до 24 старших разрядов регистра MR. Далее регистру MR1 может быть присвоено либо максимально возможное положительное, либо максимально возможное отрицательное значение в пределах разрядной сетки в зависимости от состояния флага переполнения, содержащегося в регистре MV. Таким образом, результат накапливается с точностью, соответствующей 40 разрядам регистра MR, при этом насыщение возникает, если только конечный результат вызывает переполнение младших 32 разрядов регистра MR.

Архитектура DSP семейства ADSP-21xx (рис. 7.7) оптимизирована для цифровой обработки сигнала и других высокоскоростных приложений. Данное семейство DSP включает ядро семейства ADSP-2100 (три вычислительных блока, адресные генераторы, устройство управления выполнением команд), два синхронных последовательных порта, программируемый таймер, развитую систему обработки прерываний, встроенную статическую память программ и данных. Существуют также версии с встроенным ПЗУ.

Гибкая архитектура процессоров семейства ADSP-21xx и соответствующий набор команд позволяют достичь высочайшей степени параллелизма при выполнении операций. За один цикл DSP семейства ADSP-21xx может сгенерировать адрес следующей команды программы, выбрать следующую команду, выполнить 1 или 2 перемещения данных, обновить 1 или 2 указателя адреса, выполнить вычислительную операцию, передать или принять данные от двух последовательных портов и обновить регистр таймера.

АРХИТЕКТУРА ЯДРА ПРОЦЕССОРА ADSP-21XX

Шины

♦ Адреса памяти программ (РМА)

♦ Адреса памяти данных (DMA)

♦ Данных памяти программ (РМА)

♦ Данных памяти данных (РМА)

♦ Результата (R)

Вычислительные блоки

♦ Арифметико-логическое устройство (ALU)

♦ Умножитель-накопитель (MAC)

♦ Сдвиговый регистр

Генераторы адресов данных (DAG)

Секвенсер программы (устройство управления последовательностью выполнения команд)

Встроенные средства периферии

♦ Память программ в виде ОЗУ (RAM) или ПЗУ (ROM)

♦ ОЗУ памяти данных

♦ Последовательные порты

♦ Таймер

♦ Порт хост-интерфейса

♦ Порт прямого доступа к памяти (DMA)

Рис. 7.8





Шины

Процессоры семейства ADSP-21xx имеют пять внутренних шин для повышения эффективности передачи данных. Шины адреса памяти программы (РМА) и адреса памяти данных (DMA) используются одновременно для адресации в пределах адресных пространств памяти программ и памяти данных. Шины данных памяти программ (PMD) и шина данных памяти данных (DMD) используются для передачи данных из соответствующих областей памяти. При выводе шин на корпус за пределы кристалла они объединяются в одну внешнюю шину адреса и в одну внешнюю шину данных; области памяти выбираются соответствующими сигналами управления. Шина результата (R) используется для пересылки промежуточных результатов напрямую между различными вычислительными блоками.

14-разрядная шина РМА позволяет получить прямой доступ к 16К слов памяти программ. Шина DMD является 16-разрядной. Она обеспечивает доступ к содержимому любого регистра процессора для передачи его в любой другой регистр или любую ячейку памяти данных за один цикл. Адрес памяти данных может поступать от двух источников: абсолютное значение, содержится в коде команды (прямая адресация) или на выходе адресного генератора (косвенная адресация). Для выборки данных из памяти программ используется только косвенная адресация.

Шина данных памяти программы (PMD) может также использоваться для передачи данных между вычислительными блоками напрямую или через блок обмена между шинами PMD-DMD. Блок обмена между шинами PMD-DMD позволяет передавать данные от одной шины к другой. Он содержит технические средства, которые позволяют, когда это необходимо, преодолевать разницу в 8 бит между двумя шинами.

В памяти программ могут храниться как команды, так и данные, позволяя DSP семейства ADSP-21xx одновременно осуществлять выборку двух операндов в одном цикле, один из памяти программы, а другой из памяти данных. Команды поступают либо прямо из памяти программ путем осуществления двойного доступа в одном машинном цикле (процессоры серии ADSP-218x), либо из кэш-памяти программ (в процессоре серии ADSP-219x и SHARC).

Вычислительные блоки (АЛУ, MAC, регистр сдвига)

Процессор содержит три независимых вычислительных блока: арифметико-логическое устройство (АЛУ), умножитель с накоплением (MAC) и устройство сдвига. Вычислительные блоки способны обрабатывать 16-разрядные данные и могут поддерживать вычисления с повышенной точностью. АЛУ обладает флагом переноса CI, который позволяет поддерживать 32-разрядные арифметические действия.

АЛУ обеспечивает стандартный набор арифметических и логических функций: сложение, вычитание, смену арифметического знака, инкремент, декремент, получение абсолютного значения, логическое И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ и инверсию. Также поддерживаются примитивы деления.

ОСОБЕННОСТИ АРИФМЕТИКО-ЛОГИЧЕСКОГО УСТРОЙСТВА (ALU)

• Сложение, вычитание, изменение знака, инкремент, декремент, получение абсолютного значения, логические операции И, ИЛИ, Исключающее ИЛИ, НЕ

• Операции для работы с битами, константами

• Средства для работы с математикой повышенной точности

• Примитивы деления

• Режим насыщения для работы при переполнении

• Вспомогательные регистры для сохранения контекста за один цикл

• Примеры команд:

♦ IF EQ AR = АХ0 + AY0;

♦ AF = MR1 XOR AY1;

♦ AR = TGLBIT 7 OF АХ1;

Рис. 7.9

MAC способен выполнить за один машинный цикл операцию умножения, умножения/сложения или умножения/вычитания. Он также содержит 40-разрядный аккумулятор, который обеспечивает дополнительные 8 разрядов для накопления результата без потери информации; данное решение допускает возникновение 256-ти переполнений, прежде чем произойдет потеря данных. Специальные команды обеспечивают поддержку блочной плавающей точки, при которой одна экспонента приписывается некоторому набору данных. Для ускорения обработки прерываний в MAC также может использоваться набор вспомогательных регистров. Если после окончания процедуры обработки сигнала установлен флаг MV, это означает, что регистр результата содержит слово, длина которого больше 32 разрядов. В этом случае значение, содержащееся в регистре, может быть заменено максимально или минимально возможной величиной, представимой в пределах 32-хразрядной сетки формате 1.32, в зависимости от природы переполнения.

ОСОБЕННОСТИ УМНОЖИТЕЛЯ-НАКОПИТЕЛЯ (MAC)

• Выполнение умножения, умножения со сложением или умножения с вычитанием за один цикл

• 40-битный аккумулятор для защиты от переполнения (В процессорах семейства 219х имеется второй 40-битный аккумулятор)

• Команда насыщения выполняет обработку ситуации переполнения за один цикл