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

 
 
> CAM-память на ПЛИС, Ассоциативная память, как лучше сделать?
ilkz
сообщение Mar 25 2015, 09:37
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 9-09-11
Пользователь №: 67 084



Есть внешняя толстая sdram (несколько сотен мегабайт), в которую под завязку записываются пакеты (по несколько килобайт каждый) со всякими полями.
Требуется сделать поиск пакета по значению его поля (значение в процессе работы может меняться, т.е. пакеты живые), т.е. по сути - поиск по памяти (чем быстрее будет поиск, тем лучше).

Ограничения такие:
- все пакеты имеют фиксированную длину
- один пакет встречается в памяти один раз (дубликатов нет)
- за одну операцию поиска надо находить только один пакет (т.е. маска поиска не содержит звездочек)
- интенсивность поиска пускай будет 1 раз в 200 мс
- есть ниос, но его использовать наверное не хотелось бы, т.к. (имхо) он для этого медленен (переубедите если не прав)
- время поиска - чем меньше, тем лучше
- количество плиток на поиск пускай не более 1500 для 3-го Сыклона (обсуждаемо)

Даже не знаю с чего начать и куда копать. Посоветуйте как подобные задачи вообще решаются.

Сообщение отредактировал ilkz - Mar 25 2015, 09:39
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dr.Alex
сообщение Mar 25 2015, 10:37
Сообщение #2


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

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Цитата(ilkz @ Mar 25 2015, 12:37) *
Посоветуйте как подобные задачи вообще решаются.

Похожую задачу решают, когда хотят сделать кэш.
То, что вы хотите, называется полностью ассоциативный кэш, который невозможен (просто потому что такой тормоз никому не нужен).
Поэтому делают наборно-ассоциативный кэш (ну помните, N-way set-associative).

Простая прикидка показывает что в вашем случае может прокатить простейший 1-way set-associative псевдокэш :-)))
Правильно ли я понимаю вводные::
- до 100 000 пакетов, до 10 КБ каждый, то есть всего 1ГБ памяти максимум
- каждый имеет уникальный номер, который таким образом можно сократить до 17 бит

Но ведь тогда достаточно положить каждый пакет по адресу, у которого старшие 17 бит это номер пакета :-))))))) И ничего не надо искать.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 25 2015, 10:55
Сообщение #3


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Dr.Alex @ Mar 25 2015, 17:37) *
Но ведь тогда достаточно положить каждый пакет по адресу, у которого старшие 17 бит это номер пакета :-))))))) И ничего не надо искать.

Как я понял пакеты имеют свойство обновляться и у них есть метка времени. Карусель меток как тогда делать?


--------------------
Go to the top of the page
 
+Quote Post



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

 


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


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