我很熟悉(高级)三元内容可寻址内存的工作方式,但对于TCAM与ASIC的关系以及这些组件何时可能与CPU结合以获得更好的交换性能,我仍然感到困惑。(特别是当供应商经常销售商人/自定义硅,或自定义ASIC为新产品&功能时,它似乎令人困惑)。
例如,在Cisco IOS中,我熟悉为TCAM性能划分更多空间的能力,这些特性包括qos、acl和路由查找。我也明白像NAT这样的特性仍将依赖CPU处理,然而我正在特别努力;
发布于 2013-12-30 17:52:20
TCAM是一种存储器,它需要10-12个晶体管来存储一个位.比较而言,静态RAM (SRAM)只需6个晶体管来存储一位,而动态RAM (德拉姆)则需要一个晶体管和一个电容。所有这些不同类型的记忆可以是内部的,也可以是外部的ASIC。把所有的内存放在一个芯片上的原因之一是,它们可以以比芯片外部更高的时钟速率运行。为什么选择一种类型的记忆而不是另一种?这与内存的特性有关,SRAM可以访问每个时钟,德拉姆需要定期刷新,所以不能访问每个时钟,而TCAM给了您三元能力。
只要芯片上有空间来实例化,或者封装上的引脚连接到外部芯片上,TCAMs就具有可伸缩性。TCAM的问题是,它们占用SRAM的2x空间,德拉姆的12x空间。使用TCAM进行与其他内存类型相同的算法操作(哈希、*尝试)并不总是有意义的。这可以归结为在算法的利用率、效率和芯片上的空间之间进行权衡。TCAM's的功率利用与规模成线性关系。目前,大多数大型TCAMs (超过200万项)使用算法技术,以实现节能。
NAT/PAT是一个复杂的特性,通常需要CPU或网络处理器(NPU)来处理补丁。NAT的一般数据包流是首先将数据包送到CPU/NPU,然后在流表或ACL表中安装一个流条目,并提供如何在流中转换后续数据包的信息。NAT/PAT有多种不同的形式,在一个芯片中优化每个NAT/PAT的方法也有很多种。最简单的NAT是重写if的,不要担心如果你破坏了嵌入在有效负载中的地址,没有补丁。
还有另一个版本的BRKAR-3466是2013年在墨尔本的CiscoLive上展示的,它涵盖了查找背后的一些高层次的想法,这是2013年奥兰多的一个缺失。关于这一领域的一本很好的参考书是乔治·瓦尔吉斯的网络算法:一种设计快速网络设备的跨学科方法。
发布于 2013-12-29 18:55:37
ASIC可以看作是一种芯片。它通常是为了在硬件上做一些事情而建的,否则就会被做的是软件。所以思科可以为它想要的任何东西建立一个专用集成电路。取决于开关的模型,有一个或多个ASIC。TCAM是一种内存设计,因为它通常是在底盘系统上发现的,它是许多asics中的一个实现的。TCAM用于特定的查找功能,如路由(CEF)或ACLS,因此如果ASIC不需要进行这种查找,则它与TCAM分开工作。另一方面,处理QoS标记的ASIC与TCAM一起工作。下面关于cisco live的演示讨论了一些设计上的权衡,以及了解开关设计的好地方。
BRKARC-3466 -探索制造开关背后的工程(2013年奥兰多)它包含了asics的列表和许多通用的开关设计信息。
https://networkengineering.stackexchange.com/questions/5632
复制相似问题