реклама на сайте
подробности

 
 
> Производительность ARM7 для цифровой обработки сигналов
Alex2172
сообщение Sep 12 2006, 08:07
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 25-08-04
Пользователь №: 537



Возьмем к примеру LPC2148, 60МГц, программа выполняется из ОЗУ. Например FIR.
Сколько инструкций необходимо АРМу чтобы реализовать, например, умножение на коэффициент с накоплением (ну вобщем то же, что ADSP21xx делает за один такт)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
diwil
сообщение Sep 12 2006, 08:28
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 366
Регистрация: 5-09-06
Из: Санкт-Петербург
Пользователь №: 20 107



Цитата(Alex2172 @ Sep 12 2006, 12:07) *
Возьмем к примеру LPC2148, 60МГц, программа выполняется из ОЗУ. Например FIR.
Сколько инструкций необходимо АРМу чтобы реализовать, например, умножение на коэффициент с накоплением (ну вобщем то же, что ADSP21xx делает за один такт)?


сложный вопрос - зависит от типа умножения (mla, s/umlal).
у ARM7 'early termination' умножитель и количество тактов на умножение зависит от типа второго операнда. Занимает от 3х до 5и тактов.
Так же необходимо помнить, что загрузка коэффициента занимает некоторое время:
- Если это просто умножение на один коэффициент - то нет проблем - он один раз загружается в регистр и все.
- Если (коэффициенты) нужно грузить из памяти, то это 3 такта на каждый коэффициент.

Например КИХ фильтр -
r1 - указатель на данные (32 бита)
r2 - коэффициенты
r3 - мл. байт резалта
r4 - старший

----------------
mov r0, #Number_of_coeff
loop:
ldr r5, [r1, #4]
ldr r6, [r2, #4]
smal r4,r3, r5, r6 ; [r4,r3] += r5*r6
subs r0, r0, #1
bne loop
----------------

Итого тактов:
3
3
5
1
3

== 15 на коэффициент
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 03:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01827 секунд с 7
ELECTRONIX ©2004-2016