我对三进制内容可寻址存储器的运行方式很熟悉(高级),但是对于TCAM与ASIC的关系以及这些组件何时也可能与CPU结合使用以获得更高的交换性能,我仍然感到困惑……(尤其是在供应商经常将其使用时)商/定制硅片,或用于新产品和功能的定制ASIC,然后看起来令人困惑。 ,ACL和路线查找。我也了解NAT之类的功能仍将依赖于CPU处理,但是我特别努力;


TCAM是同一硬件体系结构的一部分,即内部还是外部

TCAM是否可扩展(例如,制造商是否可以仅将TCAM添加到平台上以获得更高的性能和自定义功能),还是基于功耗等方面的限制? ASIC完全可以与CPU并行工作以实现
NAT之类的功能,或者我应该将它们仅视为独立的功能?

#1 楼

TCAM是一种存储器,需要10-12个晶体管来存储一个位。相比之下,静态RAM(SRAM)只需要6个晶体管来存储一个位,而动态RAM(DRAM)则需要一个晶体管和一个电容器。所有这些不同类型的存储器可以在ASIC内部或外部。将所有内存都放在芯片上的原因之一是,它们可以以比芯片外部更高的时钟速率运行。为什么选择一种存储器而不是另一种存储器?这与存储器的特性有关,可以在每个时钟访问SRAM,DRAM需要定期刷新,因此不能在每个时钟访问,而TCAM具有三元功能。

只要您有足够的空间在芯片上实例化TCAM,或者封装上的引脚可以连接到外部TCAM,TCAM就具有可扩展性。 TCAM的问题是它们占用SRAM的2倍空间和DRAM的12倍空间。使用TCAM进行与通过其他内存类型进行算法运算(散列,*重试)相同的操作并不总是有意义。归结为算法的利用效率和选择芯片的空间之间的权衡。 TCAM的功率利用率与尺寸成线性比例增长。现在,大多数大型TCAM(大于2M条目)都使用算法技术,从而可以节省功率。

NAT / PAT是一项复杂的功能,通常需要CPU或网络处理器(NPU)来处理修复程序。 NAT的一般数据包流是第一个数据包到达CPU / NPU,然后在流表或ACL表中安装流条目,其中包含有关如何转换流中后续数据包的信息。 NAT / PAT有多种不同的形式,并且有很多方法可以优化芯片中的每一种。最简单的NAT是重写IP,并且不用担心如果破坏嵌入在有效负载中的地址,也无需修复。

BRKARC-3466的另一种版本在墨尔本的CiscoLive 2013上展出,涵盖了查找背后的一些高级想法,而2013年奥兰多缺少了这些想法。关于这一领域的一本很好的参考书是《网络算法学:一种设计快速网络设备的跨学科方法》,作者是George Varghese。

#2 楼

ASIC可以被视为一种芯片。它通常是为了在硬件中完成某些工作而设计的,否则可以通过软件来完成。因此,思科可以为其所需的任何东西构建ASIC。根据交换机的型号,有1个或多个ASIC。 TCAM是一种内存设计,因为它通常在机箱系统中发现,它是许多asic中的一种。 TCAM用于特定的查找功能,例如路由(CEF)或ACLS,因此,如果ASIC不需要执行这种查找,则它与TCAM分开工作。另一方面,处理QoS标记的ASIC与TCAM紧密结合。以下关于Cisco Live的演示讨论了一些设计权衡,也是一个了解开关设计的好地方

BRKARC-3466-探索制造开关背后的工程技术(2013年奥兰多)它包含asics列表和许多常规开关设计信息