ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
160168 Топик полностью
Evgeny_CD, Архитектор (28.06.2009 01:15, просмотров: 176) ответил Evgeny_CD на Фсе украдено до нас :) -> TCP Offload Engine. Самое интересное:
Судя по всему, весь вопрос тут с размере и скорости работы CAM - Contet Addressable Memory. Вот почему народу пришлось на Stratix/Virtex идти. Пришел пакет. Ладно, CRC мы подсчитали, на поля разобрали - тут много ресурсов не надо. Но надо принять решение по пакету. Что у нас есть по этому IP адресу? Вот тут то всякие B+ деревья и пригодятся. Нужно из 10к ячеек найти - есть у нас такой адрес или нет? Что у нас числится за этим адресом? Вот это самое сложное. Пусть мы дожны обрабатывать 100к пакетов в секунду. Пусть тактовая сложных блоков плисины у нас 100 Мгц. Итого у нас есть 10к тактов на принятие решения. Пусть у нас запись про каждый IP - 128 байт. Пусть у нас 1к адресов в буфере анализа. Итого только записи про адреса у нас будут занимать 128к. Ндя, уже в дешевую плисину не влезем. ну что же, придется ставить 10нс внешний SRAM, сами записи хранить там, а внутреннюю память использовать для B дерева. При 16 битной шине с памятью нам надо 64 такта на перекачку данных в FPGA выбранной области. SRAM нынче бывают шустрые. 512к х 16 при времени выборки 8 нс - самое то. Стоит баксов 12. Такая срамина запомнит информацию о 8к IP адресов (при выбранном дескрипторе 128 байт). Ну что же, вполне адекватно. SDRAM DDR, как ни странно, может и успеть. Там блок данных можно получить тактов за 20+64 (16 битная память) тактовой. Пусть это будет 166 Мгц - 2 М дескрипторов в секунду, однако. Если все законвейризировать, то может и можно успеть ценой возрастания латентности обработки пакета. Не, в баню эту SRAM. Занятно все получается :)