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

 
 
> данный алгоритм на плис, из своего опыта подскажите на сколько быстро будет работать
toshas
сообщение Sep 9 2007, 09:14
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 372
Регистрация: 14-02-06
Пользователь №: 14 339



Добрый день!
хотелось бы сделать на них следующее:

массив из N 16битных чисел и константа D0

for( ; ; ) {
1. каждое число в массиве сдвигается на соседнее место M[i]->M[i+1], M[N] при этом теряется, M[0] освобождается
2. записать извне (spi или паралл.) новое число на место M[0]
3. взять среднее от k чисел M[0],....,M[k] (M1) и M[N-k],.....,M[N] (M2)
4. вычислить (M2-M1)/(N-k)=D
5. сравнить D и D0
}

какова максимально возможная скорость реализации этого алгоритма ?
(так сказать вообще и на микросхемах стоимостью менее 100у.е.)
на сколько большими могут быть заданы числа N и k (хотелось бы N>1.000.000 k>1000)?

спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Gate
сообщение Sep 9 2007, 12:05
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



Буду более оптимистичен, чем vetal.
чтобы посчитать сумму (что тоже самое, что и среднее) последовательно поступающих чисел, нет необходимости каждый раз суммировать весь массив, а можно на каждом такте считать новую сумму из предыдущей:
S(i) = S(i-1) + M[0] - M[N]
Т.о. надо иметь три очереди M[0]...M[k], M[k+1]...M[N-k-1], M[N-k]...M[N], с каждой очередью надо делать 2 операции - читать и записать, если вычисление средних, вычитание и сравнение сделать конвеером, то это 6 тактов. Очень похоже, что 1 и 3 можно хранить во внутренней памяти (если k ~ 1000-2000), тогда быстрее.


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 16:14
Рейтинг@Mail.ru


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