Обзор архитектуры и шинной организации DSP 560xx
5.3.1.1 Общая характеристика
Высокая производительность DSP данного семейства позволяет использовать их в области коммуникации, высокоскоростного управления, компьютерных приложениях и аудиоприложениях. Для всех DSP основной операцией является умножение и суммирование двух многоразрядных чисел с плавающей точкой. Данная операция получила название МАС. Эта операция внутри DSP выполнятся за 1 машинный цикл при расположении операндов в разных областях памяти.
Основу процессора составляют три параллельно работающих устройства:
- Арифметико-логическое устройство;
- устройство генерации адреса;
- программный контролер.
В DSP данного семейства имеется трехступенчатый аппаратный конвейер инструкций.
Структура шин
Шины данных являются 24-х разрядными. Шины данных X и Y могут объединяться в 48 разрядную шину. Дополнительно может использоваться глобальная шина данных, например, при обращении к периферийным модулям. Структура шин поддерживает пересылку данных 3-х типов: регистр - регистр; регистр - память; память - регистр.
Всего поддерживается организация данных 24 бита, 48 битов, 56 битов.
Шины адреса являются 16-ти разрядными. Пространство внешней памяти адресуется с помощью однонаправленной 16-ти разрядной шины адреса с 3-мя состояниями, к которой может подключаться одна из 3-х внутренних шин адреса.
В одном машинном цикле может быть произведен только один доступ к внешней шине данных.
5.3.1.2 Арифметико-логическое устройство данных
На рисунке 5.3 показана структурная схема АЛУ данных.
X0, X1, Y0, Y1 - буферные регистры; АК. ЛУ – аккумулятор логического устройства; УС – устройство сдвига; А, В – аккумуляторы процессора; ШДХ - шина данных Х; УСО – устройство сдвига-ограничения
Рисунок 5.3 – Структура АЛУ данных
АЛУ данных позволяет выполнять в одном машинном цикле следующие действия: умножение, итерационное деление, нормализация, сдвиги, поразрядные логические операции.
Регистры АЛУ данных могут быть прочитаны или записаны 24-х или 48-ми разрядными операндами. Операнды источники могут быть 24-х, 48 и 56 – разрядные. Результаты любой операции всегда сохраняются в аккумуляторе.
Буферные регистры X0, X1, Y0, Y1 могут использоваться как независимые 24-х битные регистры или как два 48-ми разрядных регистра X и Y, образованные объединением X0 с X1 и Y0 с Y1 соответственно.
Умножитель способен обрабатывать до 3-х операндов одновременно, и выдает 56-ти разрядный результат в следующем формате: 8-ми битное расширение, 24-х битная старшая значащая часть, 24-х битная младшая значащая часть.
Каждый из аккумуляторов А и В образуется из 3-х регистров. Регистры А2 и В2 – 8-ми битное расширение, А1 и В1 – старшая значащая часть, А0 и В0 – младшая значащая часть. Восьми битные регистры расширения предназначены для защиты от переполнения. В DSP 560хх диапазон значений операндов составляет от –1 до 0,9999998. В случае выхода результата за границы диапазона возникает переполнение, которое позволяет учесть регистр расширения. Самый старший бит регистра расширения является знаковым.
Асинхронное параллельное устройство сдвига может выполнять следующие операции: обнуление всех битов, ротация вправо и влево, арифметические и логические сдвиги вправо и влево, нет сдвига. Устройство сдвига-ограничения используется для того, чтобы иметь возможность полученный 56-ти разрядный результат сохранить во внешней памяти через 24-х или 48-ми разрядную шину данных.
24-разрядные числа в DSP данного семейства представляются следующим образом (рисунок 5.4):
Рисунок 5.4 – Представление 24-разрядных чисел с плавающей точкой
Для 48-ми битного представления используется аналогичный принцип.
DSP имеет три независимых пространства памяти. Эти пространства конфигурируются битами управления в регистре режима операции. Два бита в данном регистре управляют картой памяти программ, и выбирают адрес вектора сброса. Один бит управляет картами памяти X и Y. Возможные варианты карт памяти программ и памяти данных приведены на рисунках 5.5 и 5.6.
Рисунок 5.5 – Карты памяти программ
Рисунок 5.6 – Карты памяти данных
В некоторых представителях семейства в пространстве памяти X и Y могут размещаться ПЗУ, в котором фирма Motorolla размещает при изготовлении таблицы некоторых часто используемых для вычислений при DSP функций (например, sin, cos и др.). Периферийные модули на кристалле адресуются как обычные ячейки памяти X и Y соответственно.