TCAM
一种三态内容寻址存储器
TCAM (ternary content addressable memory)是一种三态内容寻址存储器,主要用于快速查找ACL、路由等表项。
简介
它是从CAM的基础上发展而来的。一般的CAM存储器中每个bit位的状态只有两个,“0”或“1”,而TCAM中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’t care”状态,所以称为“三态”,它是通过掩码来实现的,正是TCAM的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找,而CAM没有第三种状态,所以只能进行精确匹配查找。
主要特点
1、TCAM 表内所有条目都可以并行访问,比如,如果你有100条ACL,TCAM能一次就能对比这100条ACL进行对比操作,过去如果有100条ACL的话,需要第一条ACL对比完后再对比第二条,然后第三条,直至N条,效率很明显没有TCAM高。
2、TCAM的结构已经经过了优化,支持更抽象的操作,通常是基于二进制关键字匹配,查询相当快
FIB TCAM中每个表项都有对应的下一条,而每个下一条又维护了下一条邻居的MAC。
3、正因为有上边的这些特性,所以无论表内有多少条数目,性能都不会减弱。
4、TCAM 包含多组的Mask 与Value 对应关系,对应比例为1:8,一个Mask可对应8个Value。最长掩码位于TCAM顶部,如255.255.255.255位于最顶部,用于最长匹配,提升查找速率。
5、Mask 用于表示Value 的匹配方法,1 为必须比较并匹配,0 为不用比较。
6、TCAM的可用掩码、值模式、LOU表项有限,如果访问列表很大或需要很多第四层运算,TCAM表和寄存器很可能溢出。
7、TCAM成本比较高,存储空间的单位价格高于普通的sram,而且耗能也远远高于sram
8、由于TCAM的并行查找特性和三态,存储必须以前缀形式来存储,比如一个range需要拆分成几个更小的可以表示成前缀形式的range才可以存储在TCAM中
查找操作
1、从包的内容中读取相关字段(如,前缀、掩码等)
2、创建查找关键字(lookup key)
3、用lookup key和TCAM中的Value段对比,如果匹配了某Value,则将该Value和对应的Mask关联
4、返回最长匹配结果(值(Value)+掩码(Mask))=结果)
相关组件
FM
(特性管理器)
在创建或配置访问列表后,FM软件将匹配语句编译(合并)为TCAM表项,这样就可以以帧转发速度查询TCAM
SDM
(交换数据库管理器)
在某些Catelyst交换机中,可以将TCAM划分为不同的功能区域,SDM软件将配置或调整TCAM分区,Catelyst4500 和6500交换机,TCAM是固定的,不能分区。
生产商
主要有:
1.XeL(雄立科技)
2.Netlogic
这二家分别将TCAM器件称作Intelligent Search Engine(ISE) 和Knowledge-based Processor(KBP)。
相关用途
主要有:
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的硬件设计方式
TCAM器件的硬件设计方式一般有三种,如下图1所示:
网络处理器NP从报文头中把需要查找的信息提取出来,这个待查找的信息要整理成跟TCAM所存表项的格式一致,称之为KEY。KEY作为TCAM的输入数据,经过与表项对照,如果有匹配的表项,就把该表项所在的地址作为输出,称之为Index。然后将Index作为RAM的地址输入,从RAM里得到所需查找的信息,称之为Data。最后将Data返回给发起查找操作的NP,至此完成一次查找操作。
TCAM在高端路由器中的应用及查找过程
CAM和TCAM的基本存储单元
参考资料
最新修订时间:2024-04-19 16:36
目录
概述
简介
主要特点
参考资料