逻辑设计基础_芯片设计--TCAM概述

TCAM背景

当前商业芯片对OpenFlow的支持最欠缺的表现在:流表大小、流表数量、流表动作三方面。如严格按照OpenFlow标准,则流表只能用TCAM来实现。那我们简单讨论下什么是TCAM?为什么需要用TCAM来实现流表?

概念

  • TCAM是ternary(三重的) content addressable memory的缩写,中文是:三重内容可寻址内存。一般memory是根据地址来访问存储的内容,而TCAM恰好相反,它是根据内容去找到地址。一般的memory中每个bit都只能表示两个值:0或1,而TCAM每个bit可表示三个值:0,1和XX表示don’t care
  • TCAM之所以一个bit能表示三个值,原因是它的一条entry其实在物理上由两条entry组成,一条存放data,另外一条存放相应的mask。由此可以实现0/1/X的表示。有了TCAM,就可支持各种LOOKUP KEY的任何组合查找,任意地MASK掉任何不关心的字段。只有TCAM可以做这样的事情,HASH不行。
  • 如果有多条TCAM ENTRY都能匹配上,TCAM优先选择INDEX最小的那一条。TCAM的查找效率与深度无关,也就是说,无论表项多大,查找速度是一样的,这跟TCAM的硬件实现方式有关。
  • TCAM可内置在芯片里面,也可外挂在芯片之外,芯片通过接口去访问。但是内置TCAM比较占芯片面积,一条TCAM ENTRY至少抵得上5条DRAM/SRAM ENTRY,如果芯片内部放了太大的TCAM会导致芯片成本和功耗直线上升。所以一般芯片都不会内置太大TCAM。
  • 外挂TCAM的成本和功耗一样很大,甚至比ASIC芯片本身还要贵,而且如果一个报文要访问外部TCAM多次的话,受限于TCAM接口速率,会导致无法线速。所以交换机一般也都不会使用外挂TCAM。
  • 普通交换机中的ACL功能必须使用TCAM,所以内置TCAM省不掉,而对于路由,如果也必须使用TCAM的话,路由表项做不大。正因为TCAM的高成本和高功耗,所以现在最新的商业芯片已经开始使用算法来支持路由了,盛科的GreatBelt芯片是最早使用算法来做路由的商业芯片。
  • 如果OpenFlow交换机必须使用TCAM的话,成本和功耗会居高不下,自然会影响OF交换机的推广。盛科在ONS 2013上获得SDN IDOL的V350,就是针对这一点做了创新。 GreatBelt芯片采用了N-FLOW技术,TCAM+HASH相结合HASH采用哪种KEY是可配的HASH FLOW高达64K。
  • TCAM entry size一般有多种,比如某著名厂家的有single, double, quad三种宽度,single只能放一点L2或者L3的常用字段,double可以放大部分L2或者L3或者常用的L2+L3字段,而quad则可以放基本上所有的字段。要完全满足Openflow的灵活需求,至少要quad,他们这个做法仅适用于ACL。
  • 假设TCAM entry宽度全部配置成single可以支持N条的话,那么配制成double就可以支持N/2, 配制成quad就可以支持N/4.这就是为什么有的设备厂商宣称他们支持N条flow,但是实测只有N/2,或者N/4,因为他们都按照最理想情况宣称,但是实际测试的时候,人家都用最坏情况测试。
  • 盛科芯片内置的使用IBM技术的TCAM,功耗可以做到很低。在entry宽度上也跟其它厂家稍微有所不同,它设计了四种宽度,分别是80/160/320/640bits。常用L2 or IPv4字段用80就可以,完整的L2 or IPv4用160,完整的L2+L3 or IPv6用320,完整的L2+IPv6用640,在字段组合上也跟别家不同,更注重灵活性。
  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TCAM 是一个相对常见的计算机网络术语,代表了 Ternary Content Addressable Memory(三态内容可寻址存储器)。它主要用于高速查找和匹配操作,被广泛应用于路由器和交换机等网络设备中。 TCAM 的工作原理是通过使用三个状态(0、1、X)对存储内容进行编码。其中 0 表示“不匹配”,1 表示“匹配”,X 则表示任意状态。TCAM 是一种快速的硬件存储器,可以同时比较多个输入和输出位,从而在非常短的时间内确定匹配结果。 TCAM 的优势在于其高速的匹配能力和并行比较的能力。它可以快速地进行字符串匹配、前缀匹配等操作,这对于路由器中的路由表查找、ACL(访问控制列表)匹配等场景非常重要。由于 TCAM 的高性能和高效率,它能够在大部分的网络设备中胜任复杂的数据包匹配工作。 对于进行 TCAM 基础知识培训,首先需要了解 TCAM 的基本原理和工作方式。了解它的结构、编码方式以及匹配过程等内容,有助于理解基于 TCAM 的网络设备的工作原理。其次,需要了解 TCAM 在路由器和交换机等设备中的具体应用场景,如路由表查找、ACL 等。最后,需要学习 TCAM 的配置和优化技巧,了解如何根据实际需求来使用和设置 TCAM。 通过全面的基础知识培训,可以使学习者对 TCAM 的原理和应用有清晰的认识,为其后续的深入学习和应用提供基础。在实际工作中,掌握 TCAM 相关知识可以帮助网络技术人员更好地理解和优化网络设备的性能,提高整体网络的运行效率。 ### 回答2: TCAM(Ternary Content Addressable Memory)是一种特殊类型的内存,它能够在一个时钟周期内根据输入数据,快速地寻找匹配的内容,并返回对应的地址。TCAM广泛应用于网络设备中,如路由器和交换机,用于实现快速的查找和匹配操作。 TCAM的基础知识培训主要包括以下几个方面: 1. TCAM的工作原理:TCAM由存储单元和比较电路组成,存储单元用于存储值和对应的地址,比较电路用于比较输入数据和存储单元中的值。当输入数据与存储单元中的值匹配时,TCAM能够返回对应的地址。 2. TCAM的应用场景:TCAM主要用于网络设备中的路由表匹配、访问控制列表(ACL)匹配等场景。通过使用TCAM,网络设备能够快速地查找匹配项,提高数据包的处理速度和网络性能。 3. TCAM的性能指标:TCAM的性能指标包括容量、速度和功耗等方面。容量表示TCAM能够存储的匹配项数量,速度表示TCAM在一个时钟周期内能够完成的比较操作次数,功耗表示TCAM在工作过程中消耗的能量。 4. TCAM的设计和优化:TCAM的设计和优化涉及到存储单元的组织和比较电路的设计等方面。通过合理的设计和优化,可以提高TCAM的性能和功耗效率。 5. TCAM的限制和挑战:TCAM的限制和挑战主要包括容量限制、功耗问题和高昂的成本等方面。由于TCAM具有特殊的硬件结构和工作方式,因此在设计和应用过程中需要充分考虑这些限制和挑战。 总之,TCAM的基础知识培训涉及到工作原理、应用场景、性能指标、设计和优化以及限制和挑战等方面。了解和掌握这些知识,有助于深入理解TCAM的工作原理和应用,并能够在实际应用中进行适当的设计和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值