0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAM和TCAM是什么?

ruikundianzi 来源:IP与SoC设计 2023-01-05 15:23 次阅读

提到存储介质,大家应该很容易想到RAM。相比于RAM,CAM可能就显得有些陌生了。实际上,TCAM对于交换芯片非常重要。比如了解OpenFlow的人都知道流表,最典型的流表都是用TCAM来做的。TCAM,主要用于快速查找ACL、路由等表项。

它到底是个什么东西,起到什么样的作用呢?接下来我们慢慢聊。

TIP:

OpenFlow,一种网络通信协议,属于数据链路层,能够控制网上交换器或路由器的转发平面(forwarding plane),借此改变网络数据包所走的网络路径。

什么是CAM?

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

1)写操作:输入地址和数据,将数据写到指定的地址上,写入速度与RAM相同;

2)读操作:输入地址,返回该地址上的数据,读取速度与RAM相同;

3)查找操作:输入待查数据,返回该数据被存储的地址。这也是CAM的最主要用途,它能够从巨大的数据库中进行快速查找,并且返回最佳的匹配地址,最快查找速度能达到每秒一亿次以上。

CAM和RAM有何区别?

相对于CAM,我们可能更加熟悉RAM。SRAM、DRAM大家可能或多或少有所接触。

如果想了解更多关于存储相关的内容,可以查看我们的往期文章:

科普:什么是OTP?什么是MTP?

科普:RAM和ROM有什么区别?

言归正传,在本文中,我们不再花费太多笔墨去阐释RAM相关内容。我们将重点放在CAM上。

那么,RAM与CAM,有什么区别呢?举个例子。

一个表(table)被放在RAM中以便进行高速操作,提供一个地址并从表中获取与该地址相匹配的数据。然而,使用RAM进行查找可能需要多个周期来完成,它的速度不是很理想。

cdaf665a-8cc8-11ed-bfe3-dac502259ad0.jpg

因此,CAM应运而生。在原理上,它反其道而行之,数据被当作搜索其所在地址的钥匙。根据CAM设计的性质,搜索是并行的,这意味着查找可以在一个周期内完成。这使得CAM更适合做数据表的查找,它的速度更快。

cdd1266e-8cc8-11ed-bfe3-dac502259ad0.jpg

与具有简单存储单元的静态 RAM (SRAM) 不同,全并行 CAM 中的每个单独的存储位都必须具有与自身相关的比对电路,以检测存储位和输入位之间的匹配情况。此外,在使用 CAM 时,必须将数据字中每个单元的匹配输出组合起来,才能产生完整的数据字匹配信号

因而在搜索层面,CAM具有性能优势,而代价则是需要更大的面积和更高的功耗。

CAM的分类

cdee9514-8cc8-11ed-bfe3-dac502259ad0.png

我们通常使用两种不同类型的CAM,分别为BCAM(Binary CAM)和TCAM(Ternary CAM)。

BCAM,顾名思义,是指数据为二进制状态,即0或1,数据搜索必须完全匹配。它适用于具有唯一条目的数据查询,如MAC地址查询。

ce03e004-8cc8-11ed-bfe3-dac502259ad0.png

而TCAM是Ternary Content Addressable Memory的缩写,即“三态内容寻址存储器”的意思,它是从CAM的基础上发展而来的。

这个“三态”,就非常有意思了。

一般的CAM存储器中每个bit位的状态只有两个,“0”或“1”,而TCAM中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’t care”状态,也可以称作“wildcard”,也可以表示为“X”,从中文理解,就是忽略的意思。所以称为“三态”,它是通过掩码来实现的。

正是TCAM的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找,而BCAM没有第三种状态,所以只能进行精确匹配查找。

ce9bf5ec-8cc8-11ed-bfe3-dac502259ad0.png

TCAM的实现除了有ASIC芯片外,还可以在FPGA上用IP核实现。

当涉及到路由时,“don’t care”的概念在很多方面都是有用的。

例如,当我们写下1.1.1.0/24时,它描述了从1.1.1.0到1.1.1.255的IP地址范围。数字24表示IP地址的前24位必须被匹配,而后8位是什么并不重要。

cec64a04-8cc8-11ed-bfe3-dac502259ad0.jpg

TIP:

路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。

查找方式的对比:

基于SRAM的查找(传统查找方式)

1、线性查找

2、二叉树查找

3、HASH查找

基于TCAM的查找

基于硬件的实现,整个表空间Database在同一时刻被查询

TCAM之所以能做到一个bit表示三个值,原因是它的一条entry其实在物理上由两条entry组成,一条存放data,另外一条存放相应的mask。由此可以实现0/1/X的表示。有了TCAM,就可以支持各种LOOKUP KEY的任何组合查找,任意地MASK掉任何不关心的字段,只有TCAM可以做这样的事情,HASH做不到。

cef81d18-8cc8-11ed-bfe3-dac502259ad0.jpg

TCAM的查找特点

如果有多条TCAM ENTRY都能匹配上,TCAM优先选择INDEX最小的那一条。TCAM的查找效率与深度无关,也就是说,无论表项多大,查找速度是一样的,这跟TCAM的硬件实现方式有关。命中其中一条之后,就返回index,然后根据这个index去它对应的RAM里面查找进一步的关联数据。

cf184f8e-8cc8-11ed-bfe3-dac502259ad0.png

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

为什么TCAM都不会太大

TCAM可以内置在芯片里面,也可以外挂在芯片之外,芯片通过接口去访问。但是内置TCAM非常占芯片面积,如果芯片内部放了太大的TCAM会导致芯片成本和功耗直线上升。所以一般芯片都不会内置太大TCAM。这就是为什么基于TCAM的流表做不大的原因。

外挂TCAM的成本和功耗一样很大,甚至比ASIC芯片本身都贵,而且如果一个报文要访问外部TCAM多次的话,受限于TCAM接口速率,会导致无法线速。所以一般交换机也都不会使用外挂TCAM。

cf3c4376-8cc8-11ed-bfe3-dac502259ad0.png

TCAM的优势

1、单周期查找;

2、平均查找速度是基于SRAM算法查找的6倍;

3、最好情况下,查找速度提高128倍。

总而言之,TCAM实现了通用性和高速度。TCAM的最大优势,就是速度。

TCAM的缺点

TCAM具有速度快、实现简单的优点,但是它也有三个不足之处:

1、与一般的随机存储器RAM 相比,单位比特的TCAM 更为昂贵,而且存储芯片的容量相对要小一些;

2、由于TCAM 使用的是并行匹配比较方式,所以TCAM 芯片的功耗较大。查找过程所有关键字表项都进行了比较,但是实际能够匹配上的关键字只是几项,因此大部分的比较操作都被浪费了;

3、 TCAM 需要保证前缀较长的关键字保存在前缀较短的关键字之前,这种关键字之间的顺序关系使得TCAM的关键字更新工作变得相对复杂了。当加入一条新的表项时,为了能够仍然保持关键字间的顺序关系,就需要移动一些前缀长度比新表项要长的一些表项,因此TCAM 的更新操作较为复杂。

总结下来就是:成本高、功耗大、路由更新复杂。

关于TCAM器件的应用

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器件的硬件设计方式一般有三种:

cf675ad4-8cc8-11ed-bfe3-dac502259ad0.png

关于ACL

访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。

ACL本质上是一种过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。

访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。

TIP:

报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。

应用场景

-匹配IP流量(可基于源,目的IP地址,协议类型,端口号等类型)

-在Traffic-fiter中被调用

-在NAT中被调用

-在路由策略调用

-在IPSec VPN中被调用

-在防火墙的策略部署中被调用

-在QoS中被调用

分类

目前遇到最多就是基本acl和高级acl,其他种类acl很少见。

cf9ea6c4-8cc8-11ed-bfe3-dac502259ad0.png

ACL/路由表/Mac表跟TCAM的关系

普通交换机中的ACL功能必须使用TCAM,所以内置TCAM省不掉。而对于路由,以前的芯片也都用TCAM来做(主机路由除外),所以路由表项也做不大。现在最新的商业芯片都已经使用算法来支持路由了,这样就可以使用RAM来做路由。至于Mac表,它的查找是根据Mac+Vlan进行精确匹配,可以用Hash来做,所以跟路由一样,都存放在RAM里面。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47802

    浏览量

    409170
  • CAM
    CAM
    +关注

    关注

    5

    文章

    198

    浏览量

    42581
  • 交换器
    +关注

    关注

    2

    文章

    81

    浏览量

    16372

原文标题:科普:CAM和TCAM是什么?

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MDMF404L1CAM-MINAS A6N系列 介绍 松下

    电子发烧友网为你提供Panasonic(Panasonic)MDMF404L1CAM-MINAS A6N系列 介绍相关产品参数、数据手册,更有MDMF404L1CAM-MINAS A6N系列 介绍
    发表于 01-09 18:47
    MDMF404L1<b class='flag-5'>CAM</b>-MINAS A6N系列 介绍 松下

    AD CAM文件如何测量距离

    AD CAM文件是用于广告测量的一种工具和方法,帮助广告商了解广告效果和投资回报率。在AD CAM文件中,距离是一个重要的指标,可以帮助衡量广告影响力的范围和深度。本文将详细介绍AD CAM文件
    的头像 发表于 01-08 10:16 390次阅读

    SOLIDWORKS 2024-CAM增加功能简介(二)

    对于车螺纹操作,SOLIDWORKS CAM 支持反转切割类型的固定循环输出选项。
    的头像 发表于 12-18 13:41 198次阅读
    SOLIDWORKS 2024-<b class='flag-5'>CAM</b>增加功能简介(二)

    SOLIDWORKS 2024-CAM增加功能简介(一)

    SOLIDWORKS CAM 提供有两个版本。SOLIDWORKS CAM Standard 包含在具有SOLIDWORKS 订阅服务的任何SOLIDWORKS 许可证中。
    的头像 发表于 12-15 14:59 268次阅读
    SOLIDWORKS 2024-<b class='flag-5'>CAM</b>增加功能简介(一)

    MDMF154L1CAM-MINAS A6N系列 介绍 松下

    电子发烧友网为你提供Panasonic(Panasonic)MDMF154L1CAM-MINAS A6N系列 介绍相关产品参数、数据手册,更有MDMF154L1CAM-MINAS A6N系列 介绍
    发表于 11-22 19:26
    MDMF154L1<b class='flag-5'>CAM</b>-MINAS A6N系列 介绍 松下

    介绍一位隐形冠军-芯启源TCAM芯片

    芯启源的DPU芯片AgilioPro 率先在国内实现商业化落地,一直活跃在众人的目光中;EDA 工具MimicPro 是业内领先的仿真加速和原型验证二合一系统,受到越来越多IC设计企业的关注,堪称芯启源的“秘密武器”。但是芯启源还有两大隐形冠军:TCAM芯片和USB IP。
    的头像 发表于 09-21 14:13 813次阅读

    IP_数据表(M-1):SRAM and TCAM

    IP_数据表(M-1):SRAM and TCAM
    发表于 07-06 20:12 0次下载
    IP_数据表(M-1):SRAM and <b class='flag-5'>TCAM</b>

    安信可推出2款小安派开源硬件:Cam-U和Cam-D!

    安信可又上新2款开源硬件了——小安派-Cam-U(AiPi-Cam-U) 和小安派-Cam-U(AiPi-Cam-U) ,小安派专注于开源硬件,发现更多有趣好玩的新鲜事! 概述 小安派
    的头像 发表于 07-03 13:54 477次阅读
    安信可推出2款小安派开源硬件:<b class='flag-5'>Cam</b>-U和<b class='flag-5'>Cam</b>-D!

    重磅!华秋CAM软件正式推出,免费Gerber查看器

    自华秋DFM可制造性和组装性分析软件上线以来,已为众多硬件工程师、PCB工程师、CAM工程师、电子爱好者、PCBA采购、SMT工厂等众多行业用户,解决了各种PCB设计隐患和规避各类生产风险等问题,并
    发表于 05-22 14:26

    【全网首发】华秋CAM:免费Gerber查看器,离线版!

    自 华秋DFM可制造性和组装性分析软件 上线以来,已为众多硬件工程师、PCB工程师、CAM工程师、电子爱好者、PCBA采购、SMT工厂等众多行业用户,解决了各种 PCB设计隐患 和规避 各类生产风险
    的头像 发表于 05-22 14:21 369次阅读
    【全网首发】华秋<b class='flag-5'>CAM</b>:免费Gerber查看器,离线版!

    【全网首发】华秋CAM:免费Gerber查看器,离线版!

    自 华秋DFM可制造性和组装性分析软件 上线以来,已为众多硬件工程师、PCB工程师、CAM工程师、电子爱好者、PCBA采购、SMT工厂等众多行业用户,解决了各种 PCB设计隐患 和规避 各类生产风险
    的头像 发表于 05-18 09:20 429次阅读
    【全网首发】华秋<b class='flag-5'>CAM</b>:免费Gerber查看器,离线版!

    【全网首发】华秋CAM:免费Gerber查看器,离线版!

    自 华秋DFM可制造性和组装性分析软件 上线以来,已为众多硬件工程师、PCB工程师、CAM工程师、电子爱好者、PCBA采购、SMT工厂等众多行业用户,解决了各种 PCB设计隐患 和规避 各类生产风险
    的头像 发表于 05-17 08:37 590次阅读
    【全网首发】华秋<b class='flag-5'>CAM</b>:免费Gerber查看器,离线版!

    【全网首发】华秋CAM:免费Gerber查看器,离线版!

    自 华秋DFM可制造性和组装性分析软件 上线以来,已为众多硬件工程师、PCB工程师、CAM工程师、电子爱好者、PCBA采购、SMT工厂等众多行业用户,解决了各种 PCB设计隐患 和规避 各类生产风险
    的头像 发表于 05-15 17:57 3145次阅读
    【全网首发】华秋<b class='flag-5'>CAM</b>:免费Gerber查看器,离线版!

    执行CAM的基础组态及编程工作

    1_回顾及简介 从本节开始,将介绍电子凸轮,即CAMCAM主要有CAMIn和CamInDirect等功能块。CamInDirect与GearInDirect性格差不多,也是个急性子,一刻也不愿
    的头像 发表于 04-30 16:17 1508次阅读

    主轴从轴AR时的CAM运行

    1_回顾及简介 上节介绍了主从轴均为Relative时的CAM测试。CamIn后,从轴马上处于InSync状态。主轴启动,从轴马上跟随启动。与主从轴的当前值无关。如先启动主轴,则执行CamIn
    的头像 发表于 04-30 16:10 1036次阅读