TCAM学习笔记

TCAM学习笔记

一、基本定义

TCAM是一种三态内容寻址存储器,主要用于快速查找ACL、路由等表项。它是从CAM(Content-Addressable Memory)的基础上发展而来的,但与CAM相比,TCAM的每个bit位有三种状态:“0”、“1”和“don’t care”(或表示为“X”)。

二、核心组件

  1. 存储单元:TCAM由多个存储单元组成,每个存储单元都包含一个标签(即用于匹配的关键字)和对应的数据。
  2. 掩码(Mask):TCAM中的“don’t care”状态是通过掩码来实现的。掩码用于指示哪些bit位在匹配过程中应该被忽略(即“don’t care”状态)。

三、工作原理

  1. 数据输入:当需要查找某个数据时,将查询数据(称为Key)输入到TCAM中。
  2. 并行比较:TCAM中的所有存储单元都会与输入的Key进行并行比较。这种并行比较的特性使得TCAM能够在单个时钟周期内完成整个查找过程。
  3. 匹配结果输出:如果找到匹配的存储单元,TCAM会输出该存储单元对应的数据(即匹配结果)。

四、特点

  1. 快速查找:由于TCAM采用并行比较的方式,因此具有极快的查找速度。
  2. 三态逻辑:TCAM中的每个bit位都有三种状态,使其能够支持更灵活的匹配操作,如模糊匹配。
  3. 可编程性:TCAM的标签和数据都可以根据需要进行编程设置,以适应不同的应用场景。

五、典型应用场景

  1. 路由查找:在路由器中,TCAM用于快速查找路由表结果,以实现高效的数据包转发。
  2. 访问控制列表(ACL)匹配:在防火墙等安全设备中,TCAM用于匹配ACL规则,以实施安全策略。
  3. ATM Switching设备中的VCI/VPI转发和ATM-to-MPLS or ATM-to-TCP-Flow地址映射表项的存储和查找
  4. Ethernet Switching设备中的二层MAC地址、ARP/RARP解析和三层IP路由表项的存储和查找;
  5. Emerging Protocols and functions方面的MPLS label表项的存储和查找;
  6. Packet Classification业务中的Enforce security、Enforce departmental policies和QOS检测表项的存储和查找
  7. 安全防护设备中的FIB/LBT、MFIB及ACL表项存储和查找。

六、传统方法的局限性

传统的表项查找方法有很多,主要有:线型查找法、二叉树查找法、哈希表查找等,这些查找方法都是基于SRAM的软件查找方法,共同特点是查找速度慢。

(1)线型查找法需要遍历表中的所有表项;

image-20240527163543196

(2)二叉树查找法需要遍历树中大多数节点,而且查找速度受树的深度影响较大;

image-20240527163600122

(3)哈希表查找法是软件查找中较快的一种方法,它是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。虽然哈希表查找法相对来说比较快,但还是满足不了高速实时通信系统(如40G/100G POS)的极速查找需求。

七、TCAM的优势

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

image-20240527162913386

八、典型的TCAM子系统

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

image-20240527163639971

img

九、表项

表项掩码(三态的实现方式/模糊匹配):

TCAM的基本单元为待查找的表项,每个表项包括合法位Valid,表项数据Data Word、表项掩码Local Mask。 Local Mask某位为1(有的厂商规定是0)时,相对应的Data Word位被屏蔽,不参与比较。

image-20240527163914551

image-20240527164400257

精确匹配:

​ 不使用掩码,所有的掩码位是0,进行精确匹配。

image-20240527163953829

十、最高优先级匹配

由于有“don’t care”即三态的存在,所以一个Key值可能有多个匹配。

当一个Key存在多个匹配的时候,匹配经过逻辑单元比较返回匹配程度最高的表项。(在IPV4路由中经常出现)

image-20240527164025799

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值