Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭиСХ_ADSP21xx_1-2ред.doc
Скачиваний:
13
Добавлен:
13.11.2019
Размер:
916 Кб
Скачать
☆
    1. Вычислительные модули

Процессор семейства ADSP-21xx содержит три независимых вычислительных модуля:

  • арифметико-логический модуль(ALU);

  • модуль умножения с накоплением (MAC);

  • устройство сдвига (shifter).

Эти устройства работают с 16-разрядными данными и обеспечивают аппаратную поддержку мультиточности.

Арифметико-логическое устройство (АЛУ) обеспечивает выполнение стандартного набора арифметических и логических операций. К первым относятся сложение, вычитание, инвертирование (отрицание), инкремент, декремент и нахождение абсолютного значения. Эти операции дополнены двумя примитивами деления, при помощи которых операция деления может выполняться за несколько циклов. К логическим операциям относятся логическое И (AND), ИЛИ (OR), исключающее ИЛИ (XOR) и НЕ (NOT). АЛУ (рис. 2) разрядностью 16 бит имеет два 16-битовых порта ввода − Х и Y и один порт вывода R. АЛУ принимает сигнал переноса (CI), который является битом переноса из арифметического регистра состояния (ASTAT). В АЛУ генерируется 6 сигналов состояния: нулевой результат (AZ), отрицания (AN), переноса (АС), переполнения (AV), ввода знака через порт X (AS) и состояние частного (AQ). Все сигналы арифметического состояния фиксируются в арифметическом регистре состояний (ASTAT) в конце цикла.

24

Рис. 2. Структура АЛУ

Порт ввода X АЛУ может принимать данные из двух источников: регистров АХ или шины результатов (R-шина). R-шина соединяет регистры вывода всех вычислительных устройств, позволяя использовать их как операнды ввода. Имеется два регистра АХ: АХ0 и АХ1. Считывание из этих регистров и запись в них может производиться с шины данных памяти данных DMD. В наборе команд предусматривается также считывание этих регистров на шину данных памяти программ PMD, но в данном случае нет прямого соединения. В этой операции используется устройство обмена данными между шинами PMD и DMD. Два выхода регистров АХ позволяют осуществлять ввод с одного регистра в АЛУ, в то время как другой передает данные на шину DMD. Порт ввода Y АЛУ также может принимать данные из двух источников: регистров AY и регистра обратной связи AF АЛУ. Имеется два регистра AY: AY0 и AY1. Считывание из этих регистров и запись в них производится с шины DMD, запись может также производиться из шины PMD. В наборе команд предусматривается считывание из этих регистров на шину PMD, но в данном случае нет прямого соединения; в этой операции используется устройство обмена данными между шинами PMD и DMD. Два выхода регистров AY могут обеспечить ввод данных в АЛУ одновременно с передачей данных на шину DMD.

Выходные данные АЛУ загружаются либо в регистр обратной связи АЛУ (AF), либо в регистр результатов АЛУ (AR). Регистр AF является внутренним регистром АЛУ и позволяет использовать результат АЛУ прямо в качестве входного значения для порта Y АЛУ. Регистр AR может передавать данные как на шину DMD, так и на шину результатов. Этот регистр может прямо загружаться с шины DMD. В наборе команд предусматривается также считывание с AR на шину PMD, но в данном случае нет прямого соединения. Для этой операции используется устройство обмена данными между шинами PMD и DMD.

В любой из регистров, связанных с АЛУ, может производиться запись и считывание в течение одного и того же цикла. Считывание с регистров производится в начале цикла, а запись в регистры − в конце цикла. Следовательно, при считывании из регистра считывается значение, загруженное в этот регистр в конце предшествовавшего цикла. Новое значение, записанное в регистр, не может быть считано до начала последующего цикла. Это позволяет регистрам ввода АЛУ обеспечивать АЛУ операндом в начале цикла и обновляться следующим операндом из памяти в конце того же цикла, а также позволяет сохранять содержимое регистра результатов в памяти и обновлять этот регистр новым значением результата в течение одного и того же цикла.

В АЛУ содержится двойной ряд регистров (рис. 2) за основными регистрами. В действительности имеется два набора регистров (AR), (AF), (АХ) и (AY). В любой определенный момент времени доступным является только один ряд регистров. Дополнительный ряд регистров может быть активизирован для чрезвычайно быстрого контекстного переключения (например, во время подпрограммы обслуживания прерывания). В таком случае новая задача (т.е. обслуживание прерывания в примере) может быть выполнена без передачи текущих состояний в запоминающее устройство.

Выбор основного или альтернативного ряда регистров управляется битом в регистре состояния режима процессора (MSTAT). Если этот бит принимает значение 0, выбирается основной ряд; если он равен 1, выбирается теневой ряд регистров.

Умножитель-накопитель выполняет одноцикловые операции умножения, умножения/сложения, умножения/вычитания. Сумматор разрядностью в 40 бит обеспечивает 8 бит защиты от переполнения при последовательном сложении и тем самым гарантирует, что не произойдет ни потери данных, ни их диапазона: чтобы произошла потеря старшего разряда, требуется 256 переполнений. Имеются специальные команды для выполнения масштабирования данных с блочной плавающей точкой.

Устройство сдвига осуществляет логические и арифметические сдвиги, нормализацию, денормализацию и операцию получения порядка, а также управление форматом данных, разрешая работу с плавающей точкой.

Вычислительные модули размещаются последовательно друг за другом таким образом, чтобы выход одного мог стать входом другого в следующем цикле. Результаты работы модулей собираются на 16-разрядную шину R. Все три модуля содержат входные и выходные регистры, которые доступны через 16-разрядную шину DMD. Команды, выполняемые в модулях, берут в качестве операндов данные, находящиеся в регистрах ввода, и после выполнения записывают результат в регистры вывода. Эти регистры являются промежуточным хранилищем между памятью и вычислительной схемой. R-шина позволяет результату одного вычисления стать операндом для другой операции. Это позволяет сэкономить время, обходясь без лишних пересылок из вычислительного модуля в память и обратно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]