硬件交换架构中的TCAM关系


10

我对三进制内容可寻址存储器的运行方式很熟悉(高级),但是我对TCAM与ASIC的关系以及这些组件何时也可能与CPU结合以提高开关性能感到困惑…… (尤其是在供应商经常将其使用时)商/定制硅片,或用于新产品和功能的定制ASIC,则看起来令人困惑

例如,我在Cisco IOS中很熟悉,可以为qos,acl和路由查找等功能为TCAM性能分配更多的空间。我也了解诸如NAT之类的功能仍然依赖于CPU处理,但是我特别为此苦苦挣扎。

  1. TCAM是同一硬件体系结构的一部分,即ASIC本身内部还是外部?
  2. TCAM是否可扩展(例如,制造商是否可以仅将TCAM添加到平台上以获得更高的性能和自定义功能),还是基于功耗之类的限制?
  3. 对于NAT之类的功能,TCAM周期和ASIC是否与CPU完全并行工作,还是仅将它们视为独立的东西?

Answers:


14

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)的跨学科设计快速网络设备方法》


4

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

BRKARC-3466-探索交换机制造背后的工程(2013年奥兰多),其中包含ASIC列表和许多常规交换机设计信息

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.