[an error occurred while processing this directive]
Ответ на все вопросы
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено nyavro 24 февраля 2005 г. 09:01
В ответ на: Вопросы по алгоритму и Си-коду. И возможные частные решения отправлено GM 23 февраля 2005 г. 14:09

short const Y[]={668, -2950, -1254,.....}; // глобальный массив
Насчет внутреннего цикла не все так просто. Дело в том, что индексы у массива Н растут, а у массива Y уменьшаются, т.е. при каждом k приходится вычислять РАЗНЫЕ произведения H и Y:


k = 0:
H[0]*Y[j1+0]
k = 1:
H[0]*Y[j1+1]
H[1]*Y[j1+0]
k = 2:
H[0]*Y[j1+2]
H[1]*Y[j1+1]
H[2]*Y[j1+0]

и т.д.

Процессор TMS320 C54CST

Насчет squra, здесь совет реальный - экономит 640 инструкций, что есть гут и за что большое спасибо.

По поводу

Теперь опишу словами то, что мне надо. Есть программа, написанная на С и катастрофически не проходящая по производительности (средняя трудоемкость алгоритма 290 тыс. инструкций при потолке в 50 тыс.). Мною проведена оптимизация 50-ти процентов С-шного кода на асме, но и этого недостаточно, достигнутая производительность 113000 инструкций (в среднем). Т.е. я попал в крайне затруднительную ситуацию - оптимизация оставшегося кода дает ничтожный выигрыш производительности, дооптимизация асмовских функций еще в 2 раза кажется мне не реальной (Ну сэкономил я сейчас 640 инструкций, для функции block_14_15 это менее 2-х процентов!)

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru