Может в таком случае сделать ускоритель правил на ПЛИС? И использовать для этого не только блочную память, но и свободные триггеры и ЛЕ, которых дофига.
Тем более, что многие поля в правилах наверняка будут битовыми.
Сделать готовую структуру, и только заполнять её. И не факт, что именно дерево будет оптимальным.
Это моё личное предвзятое мнение. Любое совпадение с реальностью является случайным и непреднамеренным.