三态内容寻址存储器(TCAM)工作原理

转载


CAM是Content Addressable Memory的缩写,即“内容寻址存储器”的意思,它是在传统的存储技术的基础上实现的联想记忆存储器,关于CAM的基本操作有三种:

  1. 写操作:输入地址和数据,将数据写到指定的地址上,写入速度与RAM相同;
  2. 读操作:输入地址,返回该地址上的数据,读取速度与RAM相同;
  3. 查找操作:输入待查数据,返回该数据被存储的地址。这也是CAM的最主要用途,它能够从巨大的数据库中进行快速查找,并且返回最佳的匹配地址,最快查找速度能达到每秒一亿次以上。

TCAM是Ternary Content Addressable Memory的缩写,即“三态内容寻址存储器”的意思,它是从CAM的基础上发展而来的。一般的CAM存储器中每个bit位的状态只有两个,“0”或“1”,而TCAM中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’t care”状态,所以称为“三态”,它是通过掩码来实现的,正是TCAM的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找,而CAM没有第三种状态,所以只能进行精确匹配查找

TCAM器件的生产厂商主要有Cypress、IDT和Netlogic三家。这三家分别将TCAM器件称作Network Search Engine(NSE)、Network Search Accelerator(NSA)和Knowledge-based Processor(KBP)。

TCAM器件在通信领域种有非常广泛的应用,主要有:

  1. ATM Switching设备中的VCI/VPI转发和ATM-to-MPLS or ATM-to-TCP-Flow地址映射表项的存储和查找;
  2. Ethernet Switching设备中的二层MAC地址、ARP/RARP解析和三层IP路由表项的存储和查找;
  3. Emerging Protocols and functions方面的MPLS label表项的存储和查找;
  4. Packet Classification业务中的Enforce security、Enforce departmental policies和QOS检测表项的存储和查找;
  5. 安全防护设备中的FIB/LBT、MFIB及ACL表项存储和查找。

传统的表项查找方法有很多,主要有:线型查找法、二叉树查找法、哈希表查找等,这些查找方法都是基于SRAM的软件查找方法,共同特点是查找速度慢。线型查找法需要遍历表中的所有表项;二叉树查找法需要遍历树中大多数节点,而且查找速度受树的深度影响较大;哈希表查找法是软件查找中计较快的一种方法,它是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。虽然哈希表查找法相对来说比较快,但还是满足不了高速实时通信系统(如40G/100G POS)的极速查找需求。

基于硬件的TCAM查找法正是在这种背景下提出的,用此方法进行查找时,整个表项空间的所有数据在同一时刻被查询,查找速度不受表项空间数据大小影响,每个时钟周期完成一次查找,平均查找速度是基于SRAM算法查找的6倍,最坏情况下,能达到128倍。

TCAM器件的硬件设计方式一般有三种,如下图所示:

网络处理器NP从报文头中把需要查找的信息提取出来,这个待查找的信息要整理成跟TCAM所存表项的格式一致,称之为KEY。KEY作为TCAM的输入数据,经过与表项对照,如果有匹配的表项,就把该表项所在的地址作为输出,称之为Index。然后将Index作为RAM的地址输入,从RAM里得到所需查找的信息,称之为Data。最后将Data返回给发起查找操作的NP,至此完成一次查找操作。下图为TCAM在高端路由器中的应用及查找过程。
这里写图片描述

CAM和TCAM的基本存储单元如下图所示:

这里写图片描述

这里写图片描述

下面以Netlogic的TCAM器件NL101024为例,介绍下TCAM器件的各管脚功能:
    1).DBUS[71:0]:KEY输入总线,共72根,与TCAM表项宽度相同(TCAM基本表项位宽为72位,32位源IP地址+32位目的IP地址+8位端口地址),IDT公司已开始推出用于IPV6的80位宽度TCAM器件;

    2).RBUS[49:0]:查询结果Result返回总线,50位宽;
    3).IBUS[7:0]:指令总线;

    4).CLK:系统时钟,上升沿有效;
    5)CLK0:输出时钟,读数据和比较数据时使用;

    6).CE#:片选信号;
    7).RST#芯片复位信号;
    8).ODS-0/1:数据总线输出驱动选择信号;
    9).SMF[3:0]:系统匹配错误标识信号;

   10).RV:结果有效信号;

   11).RFSL:只在HSTL/SSTL-2电平时使用,此时,RFSL=0表示使用内部参考电压VDDQ/2,RFSL=1时表示由外部管脚VREF提供参考电压。使用LVCMOS电平时,该管脚直接接地;

   12).VREF[4:1]:参考电影,为HSTL/SSTL-2的I/O端口提供参考电压,内部有弱下拉,当使用LVCMOS电平时,这些管脚直接接地。

  有的TCAM器件对外提供LA-1接口,如NSE5512,LA-1的位宽较小,只有16位宽度,不过它在TCAM器件内部先转换
  • 22
    点赞
  • 202
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值