Интернет-журнал 'Домашняя лаборатория', 2007 №8 - Журнал «Домашняя лаборатория»
Шрифт:
Интервал:
Закладка:
Архитектура процессоров TigerSHARC называется статической суперскалярной архитектурой, т. к. она предполагает выполнение до четырех 32-разрядных команд за один цикл, и программист имеет возможность независимо задавать команды для всех вычислительных блоков. Устройство управления выполнением команд (program sequencer) поддерживает последовательное исполнение команд, при котором каждая очередная инструкция выполняется в соответствии с результатом предварительно заданного условия. Кроме того, одна и та же команда может быть выполнена двумя вычислительными блоками одновременно с использованием различных значений данных (это называется SIMD — одна инструкция — двойной набор данных).
Архитектура процессоров TigerSHARC позволяет выполнять операции над 8-, 16- и 32-разрядными данными. Производительность процессора повышается по мере уменьшения разрядности обрабатываемых данных.
Добавление буфера адресов перехода (Branch Target Buffer, ВТВ) и логики статического предсказания перехода делает ненужным заполнение конвейера команд после перехода. Как отмечалось раньше, переход осуществляется за один цикл.
Три внутренних 128-разрядных шины образуют быстродействующий канал обмена данными между внутренними функциональными блоками и внешними периферийными устройствами. Трехшинная структура отвечает типовым математическим командам, требующим наличия двух исходных данных и на выходе выдают один результат. Процессор имеет ортогональную программную модель и обеспечивает детерминированную реакцию на прерывания.
Архитектура процессора TigerSHARC основана на различных режимах работы аппаратуры. Это позволяет избежать потери циклов и упрощает работу компилятора. Система команд непосредственно поддерживает все числовые форматы, применяемые в ЦОС и в обработке изображений и видеосигналов, включая знаковый и беззнаковый, дробный и целочисленный. Во всех случаях существует возможность ограничения или усечения результатов вычислений.
Работая на тактовой частоте 150 МГц, процессор ADSP-TS001 обеспечивает наилучшую производительность среди процессоров семейства SHARC как при обработке данных с фиксированной точкой, так и при работе с данными в формате с плавающей точкой.
Кроме того, разместив на кристалле 6 Мбит статической памяти, компания Analog Devices увеличила степень интеграции памяти на 50 % по сравнению с предыдущими членами семейства SHARC. При переходе к меньшим проектным нормам при производстве кристаллов, компания Analog Devices планирует увеличить тактовую частоту работы процессора и объем памяти на кристалле для новых представителей семейства TigerSHARC.
ОСНОВНЫЕ СВОЙСТВА ПРОЦЕССОРОВ TigerSHARC
• Выполнение от 1 до 4 32-разрядных операций за цикл
• Принцип "Одна инструкция, много данных" (SIMD) поддерживается двумя вычислительными блоками
• Поддержка разных форматов данных вычислительными блоками
♦ В каждом имеется регистровый файл, MAC, АПУ, устройство сдвига
♦ Работа с 32/40-разрядными данными с плавающей точкой и с 32-разрядными данными с фиксированной точкой (6 операций за один такт)
♦ 16-битные операции (24 за цикл) или 8-битные операции (32 за цикл)
• Логика статического предсказания переходов, с целевым буфером перехода (ВТВ), поддерживающим до 128 входов
• Внутренняя пропускная способность 7.2 Гбайт/с
• Простая программная модель с гибкой системой прерываний
Рис. 7.43
Применение процессоров ADSP-TS001 уменьшает общую стоимость материалов при проектировании системы, благодаря наличию интегрированных функций ввода-вывода набора периферийных устройств, которые уменьшают или вообще ликвидируют потребность в применении вспомогательных и дополнительных аппаратных средств. Работая на тактовой частоте 150 МГц, процессор ADSP-TS001 объединяет четыре порта связи со скоростью передачи 600 Мбит/с, средства поддержки мультипроцессорного кластера с возможностью подключения до восьми процессоров ADSP-TS001, контроллер динамической памяти и интерфейс JTAG. Данная, не имеющая аналогов комбинация возможностей реализована в 35x35 мм корпусе SBGA с 360 выводами.
Вычислительные возможности и пример кодирования процессора TigerSHARC показаны на рис. 7.44. Четыре 32-разрядные команды выполняются параллельно, образуя одну 128-разрядную командную строку. Данная командная строка выполняется за один цикл. Ниже приведен пример кодирования на языке ассемблера одной строки с расшифровкой выполняемых функций:
xR3:0=Q[j0+=4];// загрузить из памяти четыре регистра (xR0,xR1,xR2,xR3) из регистрового файла X
yR3:0=Q[k0+=4];// загрузить из памяти четыре регистра из регистрового файла Y
FR5=R4*R4; // перемножить два 32-разрядных значения с плавающей точкой в вычислительном блоке X и еще два — в блоке Y (две операции умножения)
FR9:8=R6+/-R7;;// сложить и вычесть в обоих вычислительных блоках X и Y (четыре операции в АЛУ)
Один символ "точка с запятой" разделяет 32-разрядные команды, а два символа "точка с запятой" обозначают конец командной строки. Этот пример иллюстрирует синтаксис, применяемый при кодировании операций АЛУ и умножении 32-разрядных данных, представленных в формате с плавающей точкой. Параллельные 16-разрядные операнды могут быть легко специфицированы, используя префикс "S" (short — короткий) вместо "F" (float — данные с плавающей точкой). J0 и К0 являются регистрами, принадлежащими
IALU, которые используются в качестве указателей при косвенной адресации для чтении из памяти.
При программировании цифровых сигнальных процессоров приходится работать как на языке высокого уровня, так и на языке низкого уровня, то есть на ассемблере. Выбор языка зависит от целого ряда факторов, включающих требуемую скорость выполнения программы, размер используемой памяти и время, затрачиваемое на разработку программного обеспечения. Таким образом, система, предназначенная для цифровой обработки сигналов, должна давать пользователю возможность программировать как на языках высокого, так и на языках низкого уровня. Архитектура процессора TigerSHARC в точности отвечает этим требованиям.
Действительно, ядро процессора TigerSHARC включает 128 32-разрядных регистров общего назначения. Такое большое число регистров обеспечивает С-компилятору высокую степень гибкости при максимальном использовании в работе всего потенциала архитектуры. Для обеспечения целостности данных все регистры полностью синхронизированы, вследствие чего программисту не требуется контролировать детали, связанные с движением данных. Корректность использования данных при вычислениях контролируется аппаратно. Кроме того, доступ ко всем регистрам может осуществляться с использованием всех возможных режимов адресации (ортогональность), и все вычислительные команды имеют детерминированную задержку выполнения (2 цикла). Помимо прочего, архитектура процессора TigerSHARC включает буфер адресов перехода, в котором сохраняется эффективный адрес последних 128 переходов. Данный буфер облегчает программирование при заполнении конвейера команд после перехода. Как было показано раньше, архитектура позволяет осуществлять переход к следующей команде в одном цикле.
ОСНОВНЫЕ СВОЙСТВА ПРОЦЕССОРОВ TigerSHARC
• 128 регистров общего назначения
• Все регистры полностью синхронизированы
• Для адресации можно использовать целочисленное АЛУ общего применения
• Предсказание переходов
• Нет необходимости переключать аппаратные режимы
• Ортогональные режимы адресации
• Поддержка языка ассемблера
Рис. 7.45
На рис. 7.46 представлена одна из возможных мультипроцессорных систем, построенная на процессорах TigerSHARC. До восьми процессоров ADSP-TS001 могут взаимодействовать напрямую через высокоскоростной 64-разрядный интерфейс внешней шины. При таком взаимодействии широко используемый протокол, построенный по принципу