 |
|
 |
Производительность систем с DSP-процессорами
Контроллер на DSP TigerSharc
Для получения максимально возможной производительности системы, основанной на базе DSP-процессора TigerSharc, необходимо не только сделать контроллер, но также разработать и оптимизировать программное обеспечение, позволяющее в полной мере использовать возможности процессора. Вопросы программирования оказываются неразрывно связаны с принципами работы как DSP-процессора, так и контроллера. Полученные данные о времени выполнения отдельных процедур позволяют проводить предварительную оценку производительности систем на базе DSP-процессора TigerSharc.
Время работы некоторых простейших алгоритмов на процессоре ADSP-TS201S TigerSHARC (тактовая частота 500 МГц)
Приведенные времена выполнения включают инициализацию подпрограммы (подготовка рабочих регистров, вызов и возврат из неё), установку и сброс флагов, а также обращения к памяти.
| Описание алгоритма |
Время выполнения (нс) |
Название процедуры |
| Вычисление суммы элементов массива, состоящего из 1000 целых 32-разрядных чисел |
1042 |
SummInt32Array |
| Вычисление суммы элементов массива, состоящего из 1000 32-разрядных чисел с плавающей точкой |
1042 |
SummFlatArray |
| Вычисление суммы элементов массива, состоящего из 1024 целых 16-разрядных чисел |
298 |
SummInt16Array |
| Вычисление суммы элементов массива, состоящего из 1024 целых 8-разрядных чисел |
170 |
SummInt8Array |
| Вычисление поэлементно суммы двух векторов, состоящих из 1000 целых 32-разрядных чисел |
1554 |
Add2VectorsInt32 |
| Вычисление поэлементно суммы двух векторов, состоящих из 1000 32-разрядных чисел с плавающей точкой |
1564 |
Add2VectorsFloat |
| Вычисление поэлементно суммы двух векторов, состоящих из 1024 целых 16-разрядных чисел |
822 |
Add2VectorsInt16 |
| Вычисление поэлементно суммы двух векторов, состоящих из 1024 целых 8-разрядных чисел |
450 |
Add2VectorsInt8 |
| Вычисление поэлементно произведения двух векторов из 1000 целых 32-разрядных чисел |
1566 |
Mul2VectorsInt32 |
| Вычисление поэлементно произведения двух векторов из 1000 32-разрядных чисел с плавающей точкой |
1566 |
Mul2VectorsFloat |
| Вычисление поэлементно произведения двух векторов из 1024 целых 16-разрядных чисел |
834 |
Mul2VectorsInt16 |
| Вычисление произведения двух матриц 2х2 с целыми 32-разрядными числами |
20 |
MulMatrix2x2Int32 |
|