• 正在加载中...
  • TCAM

    TCAM (ternary content addressable memory)是一种三态内容寻址存储器,主要用于快速查找ACL、路由等表项。

    编辑摘要

    基本信息 编辑信息模块

    其他外文名: ternary content addressable memory 别称: TCAM
    用途: 用于快速查找ACL、路由
    性质: 三态内容寻址存储器

    目录

    简介/TCAM 编辑

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

    特点/TCAM 编辑

    1、TCAM 表内所有条目都可以并行访问,比如,如果你有100条ACL,TCAM能一次就能对比这100条ACL进行对比操作,过去如果有100条ACL的话,需要第一条ACL对比完后再对比第二条,然后第三条,直至N条,效率很明显没有TCAM高。

    2、TCAM得结构已经经过了优化,支持更抽象的操作,通常是基于二进制关键字匹配,查询相当快

    如FIB TCAM中每个表项都有对应的下一条,而每个下一条又维护了下一条邻居的MAC。

    2、正因为有上边的这些特性,所以无论表内有多少条数目,性能都不会减弱。

    3、TCAM 包含多组的Mask 与Value 对应关系,对应比例为1:8,一个Mask可对应8个Value。最长掩码位于TCAM顶部,如255.255.255.255位于最顶部,用于最长匹配,提升查找速率。

    4、Mask 用于表示Value 的匹配方法,1 为必须比较并匹配,0 为不用比较。

    5、TCAM的可用掩码、值模式、LOU表项有限,如果访问列表很大或需要很多第四层运算,TCAM表和寄存器很可能溢出。

    6、TCAM成本比较高,存储空间的单位价格高于普通的sram,而且耗能也远远高于sram

    7、由于TCAM的并行查找特性和三态,存储必须以前缀形式来存储,比如一个range需要拆分成几个更小的可以表示成前缀形式的range才可以存储在TCAM中

    查找操作/TCAM 编辑

    1、从包的内容中读取相关字段(如,前缀、掩码等)

    2、创建查找关键字(lookup key)

    3、用lookup key和TCAM中的Value段对比,如果匹配了某Value,则将该Value和对应的Mask关联

    4、返回最长匹配结果(值(Value)+掩码(Mask))=结果)

    相关组件/TCAM 编辑

    FM

    (特性管理器)

    在创建或配置访问列表后,FM软件将匹配语句编译(合并)为TCAM表项,这样就可以以帧转发速度查询TCAM

    SDM

    (交换数据库管理器)

    在某些Catelyst交换机中,可以将TCAM划分为不同的功能区域,SDM软件将配置或调整TCAM分区,Catelyst4500 和6500交换机,TCAM是固定的,不能分区。

    生产商/TCAM 编辑

    主要有:

    1.XeL(雄立科技)

    2.Netlogic

    这二家分别将TCAM器件称作Intelligent Search Engine(ISE) 和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表项存储和查找。

    应用/TCAM 编辑

    传统的表项查找方法有很多,主要有:线型查找法、二叉树查找法、哈希表查找等,这些查找方法都是基于SRAM的软件查找方法,共同特点是查找速度慢。线型查找法需要遍历表中的所有表项;二叉树查找法需要遍历树中大多数节点,而且查找速度受树的深度影响较大;哈希表查找法是软件查找中较快的一种方法,它是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。虽然哈希表查找法相对来说比较快,但还是满足不了高速实时通信系统(如40G/100G POS)的极速查找需求。 基于硬件的TCAM查找法正是在这种背景下提出的,用此方法进行查找时,整个表项空间的所有数据在同一时刻被查询,查找速度不受表项空间数据大小影响,每个时钟周期完成一次查找,平均查找速度是基于SRAM算法查找的6倍,最好情况下,能达到128倍。

    TCAM的硬件设计方式

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

    tcam硬件设计原理图 tcam硬件设计原理图

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


      


      


      

    TCAM在高端路由器中的应用及查找过程

    TCAM在高端路由器中的应用 TCAM在高端路由器中的应用


      


      


      


      


      


      

    CAM和TCAM的基本存储单元

    cam存储单元图 cam存储单元图
    tcam存储单元图 tcam存储单元图

    添加视频 | 添加图册相关影像

    互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于www.baike.com。

    登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。

    互动百科用户登录注册
    此词条还可添加  信息模块

    WIKI热度

    1. 编辑次数:16次 历史版本
    2. 参与编辑人数:14
    3. 最近更新时间:2019-07-06 11:36:52

    互动百科

    扫码下载APP