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

 
 
 
Reply to this topicStart new topic
> Обработка при скорости чтения данных меньшей, чем скорость записи.
sqrt(2)
сообщение Oct 7 2017, 13:14
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Ситуация представлена на картинке.

Есть блок с условным названием 1 и множество однотипных блочков 2. Выходы блоков 2 записываются в некий массив (я назвал этот блок MUX) и подаются на входы блоков 2. Полагаю, что правило соответствия элемента массива блоку 2 в контексте вопроса несущественно.

Итак, есть блоки, которые рекурсивно что-то вычисляют. Вычисления занимают несколько тактов, поэтому данные от блока 1 на входе блока 2 нельзя обновлять каждый такт. Следовательно, создаётся очередь из данных от блока 1. На самом деле, копятся не выходные данные для блока 1, а то, что поступает ему на вход - поскольку выход блока 1 на самом деле не одна шина с одним и тем же значением для всех блоков 2, а достаточно большой массив, поэтому с точки зрения ресурсов ПЛИС разумнее копить вх. отсчеты с АЦП, которые и поступают на блок 1.


То есть, получается следующая схема: отсчеты с АЦП -> RAM -> блок 1 -> блок 2. Таким образом, чтение из RAM происходит каждые M тактов, где M = K+L; K - число тактов на обработку данных в блоке 1, L - число тактов на обработку в блоке 2. А вх. отсчеты поступают каждый такт, и поэтому какую бы большую память не взять - рано или поздно запись новых данных догонит чтение и результаты будут некорректными.

Догадываюсь, что подобная проблема возникла не вчера и даже не лет 10 назад. Проблема в том, что не знаю даже по каким словам гуглить. Прошу подсказки.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
SSerge
сообщение Oct 7 2017, 17:45
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 641
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Параллелизм и конвееризация.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
V_G
сообщение Oct 8 2017, 02:08
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 768
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Да, если блоки 2 параллельно обрабатывают входные данные, увеличивайте число блоков 2. Если нет, вводите блоки 3, параллельно работающие с блоками 2.
Либо миритесь с частичной потерей входных данных
Go to the top of the page
 
+Quote Post
sqrt(2)
сообщение Oct 8 2017, 20:32
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Цитата(V_G @ Oct 8 2017, 05:08) *
Да, если блоки 2 параллельно обрабатывают входные данные, увеличивайте число блоков 2. Если нет, вводите блоки 3, параллельно работающие с блоками 2.
Либо миритесь с частичной потерей входных данных

Да, блоки 2 работают параллельно. Увеличить количество блоков 2 не получится - потому что их и так наставлено столько, что они полностью покрывают входные данные. То есть, входные данные для блоков 2 - вектор из 1024 элементов, каждому блоку 2 надо 4 элемента из этого вектора (для всех блоков это уникальный набор из 4х элементов вектора). Соответственно, делаю 256 параллельно работающих блоков 2. Вся проблема именно в рекурсии. А вообще есть какие-нибудь примеры параллелизации и конвейеризации рекурсивных алгоритмов под ПЛИС или DSP процы? Желательно, чтобы и вх. данные при этом не терялись, или терялись по минимум и можно было бы как-то оценить эти потери.

Вообще, у меня есть на примете одна идея как это можно сделать, но при таком раскладе получится ~256*200 блоков 2 + ещё некоторый дополнительный расход памяти, и есть сильное подозрение, что это будет из разряда невпихаемого в никакой ПЛИС.

Если тут есть опытные пользователи жирных плисин типа Virtex-7, прошу помочь хотя бы на глазок прикинуть "впихаемость" проекта в такого типа ПЛИС.

Если все же пытаться реализовать вариант с 256*200 блоков 2...

Имеем:
-) 4096 параллельно выполняющихся умножений и вычитаний
-) 4*256*200 параллельных сложений
-) + еще 256 параллельных сложений, но уже в другом блоке
-) 256*200 определений наибольшего из 4х чисел
-) +еще 4 определения наибольшего числа из 256 чисел

Есть надежда?

Сообщение отредактировал sqrt(2) - Oct 8 2017, 20:37
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Oct 8 2017, 20:44
Сообщение #5


отэц
*****

Группа: Свой
Сообщений: 1 579
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(sqrt(2) @ Oct 8 2017, 23:32) *
Если тут есть опытные пользователи жирных плисин типа Virtex-7, прошу помочь хотя бы на глазок прикинуть "впихаемость" проекта в такого типа ПЛИС.

Есть надежда?

..что мешает самому попробовать? чтобы понять влезет или нет - физически плисина не нужна.


--------------------
"..не нравятся мои выборы? ..приходите в мой суд."
Узурпатор П.
Go to the top of the page
 
+Quote Post
sqrt(2)
сообщение Oct 8 2017, 20:45
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Цитата(Lmx2315 @ Oct 8 2017, 23:44) *
..что мешает самому попробовать? чтобы понять влезет или нет - физически плисина не нужна.

Ну, например, чтобы не тратить впустую несколько часов, а то и десяток часов.
Go to the top of the page
 
+Quote Post
x736C
сообщение Oct 8 2017, 21:19
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 165
Регистрация: 3-03-06
Пользователь №: 14 942



Какая у вас частота сэмплирования АЦП?

Цитата(sqrt(2) @ Oct 8 2017, 23:32) *
Если все же пытаться реализовать вариант с 256*200 блоков 2...

Имеем:
-) 4096 параллельно выполняющихся умножений и вычитаний
-) 4*256*200 параллельных сложений
-) + еще 256 параллельных сложений, но уже в другом блоке
-) 256*200 определений наибольшего из 4х чисел
-) +еще 4 определения наибольшего числа из 256 чисел

Есть надежда?
Может, невнимательно читал. А что есть элемент и о каких числах идет речь (тип, разрядность)?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd November 2017 - 11:07
Рейтинг@Mail.ru


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