随着互联网规模不断增长,路由表和访问控制列表等需要进行最长前缀匹配(LPM)的场景也呈指数级扩展。传统依赖纯TCAM(Ternary Content-Addressable Memory)的实现面临容量、功耗和成本的瓶颈,单纯堆叠更多TCAM已无法满足运营商和大型云服务商对数百万前缀乃至未来数倍增长的需求。幸运的是,新一代可编程网络芯片如Intel Tofino-2、AMD Pensando、Nvidia BlueField等,既提供了大容量的TCAM,又配备了高性能的SRAM,这为混合CAM+RAM的设计打开了新的可能性。CRAM lens正是在这种背景下提出的框架,用来指导如何在受限的硬件资源和流水线约束下,构造高性能且能扩展到大数据库的IP查找方案。 CRAM lens并不是一套单一算法,而是一种带形式化模型的设计视角和一系列优化策略,旨在帮助研究者和工程师在现代网络处理器上进行现实可行的实现和评估。该框架将CAM与RAM的能力结合起来考虑,既重视TCAM用于高优先级和通配匹配的长处,也利用SRAM进行精确匹配、哈希索引或压缩存储以扩展总体可支持条目数。
框架的形式化模型定义了硬件资源的关键约束,例如TCAM条目数、SRAM容量、流水线阶段数、每阶段并行宽度和更新延迟等,并把常见的设计思路抽象为可组合的优化惯用语,便于评估和推导不同设计在特定芯片上的可达规模和性能。 在CRAM lens指导下,研究者提出了若干新颖的IP查找方案,其中RESAIL、BSIC与MashUp是代表性的实现,均展示了混合CAM+RAM方法在现实芯片上的显著优势。RESAIL针对IPv4在Tofino-2上的实现,能支持约2.25百万条IPv4前缀,这一规模被认为在未来若干年足以覆盖广域互联扩容的需求。对比之下,若仅依赖纯TCAM实现,Tofino-2在相同条件下仅能容纳约25万条前缀,仅为当前全球IPv4路由表的约27%。BSIC专注于IPv6场景,在Tofino-2上可扩展至约39万条IPv6前缀,约为纯TCAM实现的3.2倍。MashUp则通过更细粒度的混合策略,针对实际流量分布与前缀优先级进行了进一步优化。
这些方案能达到如此扩展性的核心原因在于对硬件特性的深入建模与对数据结构的精巧利用。TCAM天然适合用于匹配较短的、需要最长匹配语义的前缀集合,尤其是那些频繁查找且需要固定优先级决策的条目;而SRAM更适合承载大规模的精确匹配表、哈希表或索引结构,用于保存那些可以通过二级查找或额外验证步骤确定的条目。通过把流量热区放在TCAM中、冷区放在SRAM里,以及采用压缩、前缀合并、分层索引等技术,可以在不牺牲查找时延的前提下极大提升可支持的前缀数量。 除了按冷热分区之外,CRAM lens倡导的优化惯用语还包括基于多级索引的查找路径优化、利用可重写表项以合并相邻前缀、对更新频率不同的前缀采用不同的存储介质以降低写放大、以及在流水线级别调度复杂操作以避免单个阶段成为瓶颈。这些策略要求对芯片流水线的每一阶段、每一种操作的资源消耗有精确估计,从而在设计阶段排除不可行的实现。 在实现细节方面,RESAIL采用了将常见/重要的前缀放入TCAM以获得恒定时延的匹配,而把大量稀疏或宽前缀映射到SRAM中,利用高效的哈希和标签机制实现二级验证。
具体来说,当TCAM匹配不到时,查找器可以在同一包处理流水线的后续阶段查询SRAM索引表来完成最终决策。这样的分层查找保持了数据平面对线速查询的支持,同时把大部分容量需求迁移到了更便宜且更大容量的SRAM上。BSIC在处理IPv6时面临更高的地址宽度挑战,因此其设计更侧重于减少TCAM条目数量,通过前缀聚合和更紧凑的表示形式降低TCAM占用,同时在SRAM中部署辅助结构存放细粒度信息。MashUp进一步探索了动态迁移策略,根据流量统计动态将热前缀迁移到TCAM中以提升查询效率和减少SRAM查找次数,从而在保持高容量的同时获得更优的延迟特性。 对网络运营者而言,采用CRAM lens指导下的混合实现带来多方面收益。首先是规模优势,能够在同样的硬件上支撑更多前缀,延缓了因路由表膨胀而不得不升级硬件的频率。
其次是成本和能效优势,SRAM相对TCAM在单位容量和功耗上的优势可以显著降低总体运行成本。再次是更新灵活性,部分基于SRAM的结构可以用软件更灵活地管理和压缩,配合控制平面的智能化策略可以在路由变动时实现更平滑的迁移与一致性维护。 不过,采用混合存储也带来了新的工程挑战。首先是数据平面的复杂性提升,异构查找路径需要在P4等可编程数据面语言中精细实现,确保在流水线的时序和资源约束下无冲突。其次是更新一致性问题,当前缀被迁移或被分散存储在TCAM和SRAM中时,必须保证数据面在控制面发起更新后不出现短暂不一致,从而避免错误转发。再者是测试与验证成本上升,混合方案的正确性和性能依赖于许多参数配置,必须通过仿真、形式化验证或在实验室环境中进行大量测试才能在生产网络中安全部署。
在部署方面,有若干务实建议值得运营者参考。先在流量较低或非关键路径的设备上进行试点,将生产路由表分级并评估热度分布以决定哪些前缀放入TCAM。结合控制面的策略自动化,周期性统计流量并根据阈值将前缀在TCAM与SRAM间迁移。确保软件和硬件对错误路径有回退机制,并为大量更新设计批处理与速率限制以降低瞬时控制面负载。同时保持策略的可解释性与监控的可见性,以便在出现异常转发行为时能够快速定位问题。 长远来看,CRAM lens提示了可编程网络硬件未来的发展方向。
一方面,硬件厂商可以考虑在TCAM与SRAM之间提供更轻量级的硬件协同原语,例如支持更低延迟的TCAM失配回退信号或在SRAM侧提供可直接用于匹配的哈希加速单元,从而减小混合实现的设计复杂度。另一方面,控制平面与管理工具应当更深入地结合数据面可视化与策略推理,自动化前缀分区和迁移决策,提供"热冷分层"管理的闭环系统。在研究层面,如何在保证线速查找的前提下进一步压缩表示、降低更新延迟并提升抗攻击性(例如对散列碰撞或针对性更新的鲁棒性)仍有大量工作可做。 CRAM lens与围绕它提出的RESAIL、BSIC与MashUp展示了一个明确的趋势:未来的IP查找不会再拘泥于单一存储介质的简单使用,而是通过有意识的跨介质设计与硬件感知的算法工程,实现既高效又可扩展的数据平面。对于希望在现有可编程交换芯片上承载更大路由表的网络运营者和云提供商来说,采用CRAM式的设计方法能带来显著的空间和性能优势,同时在架构和运维上提出新的挑战与机遇。通过对硬件能力的精确建模、对流量性质的统计理解以及对查找路径的工程化优化,可以在不牺牲线速或转发正确性的前提下,显著扩大单芯片可支持的前缀规模,延缓频繁换代带来的成本压力。
未来几代网络芯片若能在设计时更多地考虑CAM与RAM协同的易用性与硬件支持,结合更成熟的软件控制生态,混合存储的IP查找体系将成为互联网基础设施长期可持续扩展的关键支撑。 。