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

 
 
> Ring bufer, критерии выбора реализации
k155la3
сообщение Jan 24 2017, 14:54
Сообщение #1


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

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Для работы с архивами в флеш использую колцевой буфер.
Контроль диапазона индекса буфера реализован на if.
-----------------
Есть решения, где для ограничения выхода за размер буфера
используется операция остатка от деления %

Я для работы буфера использую:
- указатель индекса
- кол-во данных в буфере

В буфер идет только запись, удалять данные из него не требуется.

(?) На сколько лучше-хуже для контроля границы индекса использовать операцию % ?

(для размеров буфера, кратных степени 2 можно использовать двоичную маску, это мы знаем. Но размеры заданы и не кратные 2).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
haker_fox
сообщение Jan 24 2017, 15:09
Сообщение #2


Познающий...
******

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



QUOTE (k155la3 @ Jan 24 2017, 22:54) *
(?) На сколько лучше-хуже для контроля границы индекса использовать операцию % ?

А это имеет значение? rolleyes.gif Что вам важно: скорость исполнения кода, размер? Я вообще использую арифметические операции при работе с указателями. Пока на скорость не жалуюсь rolleyes.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jan 24 2017, 15:19
Сообщение #3


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

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(haker_fox @ Jan 24 2017, 18:09) *
А это имеет значение? rolleyes.gif Что вам важно: скорость исполнения кода, размер? Я вообще использую арифметические операции при работе с указателями. Пока на скорость не жалуюсь rolleyes.gif


Жить ЭТО будет в MSP430, но ни быстродействие ни размер особого значения не имеют.
(в разумных пределах). Хотелось бы уменьшить размер и логику-читабельность исходного текста.

Стоит ли мой "ифовый-if" колхоз переделывать на %.

Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 24 2017, 15:51
Сообщение #4


Познающий...
******

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



QUOTE (k155la3 @ Jan 24 2017, 23:19) *
Стоит ли мой "ифовый-if" колхоз переделывать на %.

По-мне так главное вам было понятно, что делает этот код. Во вторую очередь - вашим коллегам (им-то вы сами сможете объяснить, при помощи комментариев))) Ну если вас что-то смущает, поглядите как буфер этот сделан в Boost'е)
У меня сделан шаблоном под произвольный тип данных. Правда в контексте FreeRTOS, что не есть гуд, но работает. Даже на приличной скорости: данные с АЦП ложаться каждые 100 мкс в буфер, и вычитываются оттуда со скорость 8 МБит в SPI. При этом размер данных с АЦП 8 байт.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jan 25 2017, 07:43
Сообщение #5


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

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(haker_fox @ Jan 24 2017, 19:51) *
. . . .
вас что-то смущает, поглядите как буфер этот сделан в Boost'е)
. . . .

Ok. Спасибо.
Цитата(x893 @ Jan 24 2017, 19:54) *
Если вас волнует разница между if, % . . . .
Посмотрите код ассемблерный . . . .

Так и собираюсь сделать. А может и нет.
тк. Операция целочисленного деления, скорее всего, делается на аппаратном умножителе,
и отличаться от if будет мало, если не быстрее.
Идея вопроса - что логичнее - правилнЕЕ по оптимальности построения алгоритма.
Понятно, что тема - "баян", но меня интересуют просто мнения знатоков (да/нет) а не результат холивара на эту тему sm.gif
Цитата(jcxz @ Jan 24 2017, 20:20) *
Если таких операций - одна-две - то неважно как.
Но как правило операций контроля выхода индекса за пределы массива бывает очень много, тогда всё-же лучше писать оптимально.
. . . .
Не помню уже как там на MSP430, но лучше можно сделать только на DSP где поддерживается аппаратная циклическая адресация - там вообще 0 команд будет.

Спасибо за инф. и пример.
ps - поюзать DSP - моя мечта, как у Шуры Балоганова sm.gif
Go to the top of the page
 
+Quote Post



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

 


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


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