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

 
 
 
Reply to this topicStart new topic
> Производительность 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
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
DASM
сообщение Sep 12 2006, 09:02
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



поправка или отличие синтакиса ?
ldr r5, [r1], #4
ldr r6, [r2], #4

smull r4,r3, r5, r6 ; [r4,r3] += r5*r6
subs r0, r0, #1
bne loop
Go to the top of the page
 
+Quote Post
diwil
сообщение Sep 12 2006, 11:22
Сообщение #4


Местный
***

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



Цитата(DASM @ Sep 12 2006, 13:02) *
поправка или отличие синтакиса ?
ldr r5, [r1], #4
ldr r6, [r2], #4

smull r4,r3, r5, r6 ; [r4,r3] += r5*r6
subs r0, r0, #1
bne loop


да, у Вас правильно...
я опечатался
Go to the top of the page
 
+Quote Post
Doka
сообщение Sep 12 2006, 16:07
Сообщение #5


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



тестирование на задачах ЦОС: http://benchmarks.caxapa.ru/?test=21
вообще на сахаре давно обсуждение было по поводу выполнения задач ЦОС на ARM - грустно у ARM всё с этим :(
(по сравнению с чистокровными DSP)


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:21
Рейтинг@Mail.ru


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