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

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

3天内不再提示

深度剖析TCAM基础知识

FPGA自习室 来源:FPGA自习室 作者:FPGA自习室 2021-06-15 16:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引言:

随着路由器接口速率的提高,传统的软件路由查找机制已经不能满足要求。目前常见的硬件解决方案是采用TCAM实现高速路由查找。由于路由查找具有最长前缀匹配的特点,因此采用TCAM 需要解决路由表如何存储和管理等问题。

一、TCAM原理:

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

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

二、TCAM的应用范围

1、 ATM (Asynchronous Transfer Mode) 交换:

1)虚拟路径的标识符(VPI)、虚拟通道的标识符(VCI)翻译

2)ATM-to-MLPS 或者 ATM-to-TCP -Flow 映射

2、 以太网交换:

1)转发2层MAC地址查找

2)地址解析协议

3、 新兴协议和功能:

1)多协议标签交换(MPLS)标签搜索

4、 包分类:

1)强制执行安全性

2)强制执行不同的策略

3)服务质量

三、典型应用场景实例

准备查找:

NP从报文头提取信息,整理成与TCAM中待查表一致的数据格式,称为Key。

查找:

将Key送入TCAM与待查表中的所有表象对照,匹配到后将对应地址INDEX送到RAM中。

查找后处理:

最后RAM将对该报文的处理信息DATA返回NP.

3.1 典型应用之路由查找

3.2 典型应用之包分类

包的分类可以决定这个包是否应该被转发,如果要被转发,要给予什么样的优先级。

四、查找方法对比:

4.1 传统的查找方法

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

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

4.2 基于CAM查找方法

CAM 能够在一个硬件时钟周期内完成关键字的精确匹配查找。我们常用的随机存储器通过输入地址来返回该地址处所对应的数据信息,但是CAM 的访问方式不同,它只需要输入关键字的内容,CAM 就会将此关键字与CAM 中所有的表项同时进行匹配比较,最后返回匹配表项在CAM 中所对应的地址。它是一种精确匹配,不使用掩码。

传统CAM只能执行精确匹配,一般不适用于IP路由表。如果要使用CAM来进行最长前缀匹配路由查找,可以让每一类可能的地址前缀长度使用一个CAM,每个CAM保存对应长度的所有前缀的集合。对于IPv4来说(IP地址位宽为32bit,IPv6地址位宽为128bit),则一共需要使用32个CAM。这种方法有一个明显缺点,即在对地址前缀长度具体分布没有准确了解之前,为了保证能够存W个前缀的表项,每个CAM都需要有W个表项的空间,因此,CAM存储空间的利用率较低。

4.3 基于TCAM查找方法

为了能够克服CAM的缺点,又提出了一种CAM 实现机制TCAM (ternary CAM) ,TCAM 的优点是它所保存的表项在长度要求上非常灵活,可以在同一个TCAM 芯片中保存任意长度的关键字表项。

TCAM 中每一个表项都是以《数据、掩码》序偶的形式保存,假设地址关键字的长度范围从1 到W,那么数据和掩码分别占用W 比特。与传统CAM的区别是,后者表项的各个比特位只能是0或1,而前者的则有三个状态:0,1或X。X是一种无关态,可以是“0”或“1”,它由局部掩码来实现,而且可以表示可变长前缀。可以利用此性质对路由表进行压缩,减少对TCAM的占用。

最高优先级匹配:我们就需要保证在TCAM 的低地址存储前缀较长的关键字表项,而在地址高的区域存储前缀较短的关键字表项。由于有”don’t care” 即有三态的存在,所以key值可能有多个匹配,当一个key存在多个匹配的时候,匹配经过逻辑单元比较返回匹配程度最高的表项(在ipv4经常遇到)

五、结论

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

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

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

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

第三、 TCAM 需要保证前缀较长的关键字保存在前缀较短的关键字之前,这种关键字之间的顺序关系使得TCAM的关键字更新工作变得相对复杂了。例如,当加入一条新的表项时,为了能够仍然保持关键字间的顺序关系,就需要移动一些前缀长度比新表项要长的一些表项,因此TCAM 的更新操作较为复杂(具体地址管理方法此处不详细说明)。

编辑:jq

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

    关注

    463

    文章

    54644

    浏览量

    470990
  • 路由器
    +关注

    关注

    22

    文章

    3940

    浏览量

    120380
  • CAM
    CAM
    +关注

    关注

    5

    文章

    202

    浏览量

    45364
  • MPLS
    +关注

    关注

    0

    文章

    140

    浏览量

    25445
  • TCAM
    +关注

    关注

    0

    文章

    19

    浏览量

    14454

原文标题:芯片设计:TCAM基础知识

文章出处:【微信号:FPGA_Study,微信公众号:FPGA自习室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深度剖析DC输入模块:设计与应用详解

    深度剖析DC输入模块:设计与应用详解 在电子工程领域,DC输入模块是不可或缺的重要组件。今天,我们就来深入探讨Grayhill公司的DC输入模块,详细了解其特点、规格等关键信息。 文件下载
    的头像 发表于 05-16 12:20 211次阅读

    MAX66242:深度安全认证芯片的技术剖析与应用

    MAX66242:深度安全认证芯片的技术剖析与应用 在电子设备的安全防护领域,芯片的安全性和功能性至关重要。今天,我们就来深入了解一款名为 MAX66242 的深度安全认证芯片,探讨它的特性、应用以
    的头像 发表于 04-03 15:20 160次阅读

    MAX66240:深度安全认证芯片的技术剖析与应用探索

    MAX66240:深度安全认证芯片的技术剖析与应用探索 一、引言 在当今数字化时代,数据安全至关重要。无论是门禁系统、资产追踪,还是医疗设备等领域,都需要可靠的安全认证解决方案。Maxim
    的头像 发表于 04-03 15:20 168次阅读

    AD7327:高性能12位ADC的深度剖析与应用指南

    AD7327:高性能12位ADC的深度剖析与应用指南 引言 在电子设计领域,模数转换器(ADC)扮演着至关重要的角色,它是模拟世界与数字世界之间的桥梁。AD7327作为一款8通道、12位加符号的逐次
    的头像 发表于 04-02 10:10 297次阅读

    12 位高速 ADC:AD9634 深度剖析与应用指南

    12 位高速 ADC:AD9634 深度剖析与应用指南 在当今的电子设计领域,高速、高精度的模数转换器(ADC)对于实现高性能的信号处理至关重要。AD9634 作为一款 12 位、具备 170
    的头像 发表于 03-31 11:10 268次阅读

    AD9625:高性能12位ADC的深度剖析与应用指南

    AD9625:高性能12位ADC的深度剖析与应用指南 在电子设计领域,模数转换器(ADC)的性能直接影响着整个系统的精度和稳定性。AD9625作为一款12位的高性能ADC,以其卓越的特性和广泛
    的头像 发表于 03-30 15:00 286次阅读

    CAN协议的深度剖析

    单元(ECU)之间的高效通信问题。本文将从技术原理、帧结构、错误处理机制、应用场景及未来发展趋势等方面,对CAN协议进行深度剖析
    的头像 发表于 03-03 17:08 888次阅读
    CAN协议的<b class='flag-5'>深度</b><b class='flag-5'>剖析</b>

    串口协议的深度剖析

    串口通信协议作为电子设备间数据交互的基础技术,自20世纪60年代诞生以来,始终在工业控制、嵌入式系统和物联网等领域扮演着核心角色。本文将从技术原理、协议架构、应用场景及未来演进四个维度,对串口协议展开深度剖析
    的头像 发表于 03-02 17:32 1314次阅读

    labview编程及基础知识分享

    最近建了一个公众号,本人会在上面进行labview编程知识的分享,欢迎大家关注;公众号叫:上位机知识分享LABVIEW
    发表于 02-13 10:08

    阻燃系列基础知识

    我很荣幸有机会在这里与大家分享我对阻燃系列基础知识的研究。今天,我们将探讨的主题是“阻燃系列基础知识”。在我们日常生活中,火灾事故频发,造成巨大的财产损失和人员伤亡。因此,了解阻燃材料的基础知识对于
    的头像 发表于 02-06 08:07 742次阅读
    阻燃系列<b class='flag-5'>基础知识</b>

    无刷电机驱动器的基础知识

    本文将从技术角度出发,对三相无刷电机的电机驱动器的作用、种类和规格进行介绍。通过本文,您可以学习到电机驱动器选型所需的基础知识
    的头像 发表于 12-10 14:13 7037次阅读
    无刷电机驱动器的<b class='flag-5'>基础知识</b>

    RK 平台 Vendor Storage 开发指南:基础知识、流程与实用技巧

    备可靠性校验、掉电恢复等关键特性,是保障设备身份标识、功能授权等核心信息安全的重要组件。本文将从基础知识、开发流程、使用途径三方面,为开发者梳理完整的开发逻辑。 一、核心基础知识:了解 Vendor Storage 是什么? 1. 核心定位与核心特性 Vendor Sto
    的头像 发表于 11-22 07:11 1443次阅读
    RK 平台 Vendor Storage 开发指南:<b class='flag-5'>基础知识</b>、流程与实用技巧

    视觉工程师必须知道的工业相机基础知识

    工业相机基础知识概述。
    的头像 发表于 09-19 17:04 1821次阅读
    视觉工程师必须知道的工业相机<b class='flag-5'>基础知识</b>

    全网最全学习Zephyr开发教程资料汇总-从基础文档视频到上手实操示例

    Zephyr 开发之路,我们不断迭代终于有了这份上手学习Zephyr的开发教程资料汇总。这里面涵盖了从 Zephyr 基础知识讲解,到构建系统、设备驱动、线程调度等核心功能剖析,再到丰富的实操示例和AI语音视觉识别应用案例,以及详细的开发环境搭建、获取SDK等全方位的内
    发表于 07-04 11:13

    CMOS超大规模集成电路制造工艺流程的基础知识

    本节将介绍 CMOS 超大规模集成电路制造工艺流程的基础知识,重点将放在工艺流程的概要和不同工艺步骤对器件及电路性能的影响上。
    的头像 发表于 06-04 15:01 3213次阅读
    CMOS超大规模集成电路制造工艺流程的<b class='flag-5'>基础知识</b>