[an error occurred while processing this directive]
|
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: info@telesys.ru