Цитата(ilkz @ Mar 25 2015, 16:37)

Даже не знаю с чего начать и куда копать. Посоветуйте как подобные задачи вообще решаются.
из сдрам будет медленно и печально. Как вариант считать хеши по пакетам, делать CAM на элементах xilinx SRL16/RAMxD16/RAMxD64 для этих хешей с адресами пакетов. Затем поиск в 2 шага : 1. поиск хешей -> определение списка адресов 2. уточнение поиска из сдрам. На сыклоне, сделать большой CAM почти не реально, ресурса сожрет мама не горюй.
Еще совет, поищите в сети xapp201-204. На сайте xilinx их убрали почему то. Там на простых камах (типа CAM8x16) разбираются архитектуры КАМ и рассматриваются сильные и слабые стороны каждой архитектуры.
Цитата(ilkz @ Mar 25 2015, 16:37)

- количество плиток на поиск пускай не более 1500 для 3-го Сыклона (обсуждаемо)
На пальцах : по сути КАМ это быстрый массив компараторов. Положим хотим быстро искать слово 32-бита. Итого нужно хранить само слово + логику сравнения. На сыклоне 64 плитки минимум. Итого 1024 плитки на 16 слов, остальное будет стыковая логика. Итого сможете сделать что-то вроде CAM16x32 (глубина 16, разрядность слова 32). Можно сделать на блочной памяти, но там память всего 13 бит по адресу (M9k), итого потребуется минимум 3 блока RAM, и это на одно вхождение слова, или 4 блока на 8 вхождений (память в режиме 1024х8). Т.е. 4 блока памяти на КАМ8х32 (глубина 8, разрядность слова 32).
ЗЫ. если ваше поле небольшое, то можно сделать CAM только для этого поля. Если больше 32-х бит, то лучше считать хеш.