《tcam器件及ip简介》由会员分享,可在线阅读,更多相关《tcam器件及ip简介(38页珍藏版)》请在金锄头文库上搜索。
1、TCAM器件及IP简介,内容简介,2,TCAM基础知识 TCAM芯片介绍 TCAM IP介绍,内容简介,3,TCAM基础知识,CAM: Content Addressable Memory,内容寻址存储器。 能够像RAM一样进行写操作: 输入地址和数据,将数据写到指定的地址上。 能够像RAM一样进行读操作: 输入地址,返回该地址上的数据。 查找操作: 输入(待查)数据,返回该数据被存储的地址。 这是CAM的主要用途,它能够从巨大的Database中进行快速查找,并返回最佳匹配的地址。,CAM,TCAM,TCAM:Ternary Content Addressable Memory ,三态内容寻
2、址存储器。 一般CAM存储器中每一bit的状态只有两个,非“0”即“1” ;TCAM中每bit数据还有第三种状态“dont care”,所以称为“三态”,它是通过掩码来进行实现的。 曾经的主要供应商:Netlogic、Cypress、IDT。,查找系统,CAM在系统中的位置:,PHY,Framer,Traffic Manager,ASIC或者 NPU,TCAM,Associated Data RAM (optional),CAM和网络处理器(NP)一起完成数据包的分类、路由查找等功能,充当 搜索引擎单元 .,TCAM子系统的查找过程,NPU/ASIC,RAM,TCAM,KEY,INDEX,DA
3、TA,一个典型的TCAM子系统的查找过程:,准备查找: NP从报文头提取信息,整理成与TCAM中待查表一致的数据格式,称为Key。 查找: 将Key送入TCAM与待查表中的所有表项对照,匹配到后将对应地址INDEX送到 RAM中。 查找后的处理: 最后 RAM将对该报文的处理信息 DATA返回给NP 。,TCAM的应用范围之一,ATM switching VCI/VPI translation ATM-to-MLPS or ATM-to-TCP-Flow mapping Ethernet switching layer 2 MAC address searches Address Resolu
4、tion Protocol (ARP) Emerging Protocols and functions MPLS label searches,两个典型应用之路由查找,IP PACKET,ROUTER,?,ROUTER,ROUTER,ROUTER,R3,R5,R4,IP PACKET,PROTOCOL TYPE,IP SRC ADDR,IP DEST ADDR,SRC PORT#,DEST PORT#,DATA,查找Key:,192.10.12.9,167.10.0.0,R3,路由表:,192.10.0.0,192.11.0.0,R4,R5,根据目的地址查找下一跳:,下一跳?,TCAM,RA
5、M,INDEX,PACKET TO R4,TCAM的应用范围之二,Packet Classification: Enforce security Enforce departmental policies Quality of Service 包的分类可以决定这个包是否应该被转发,如果要被转发,要给予什么样的优先级。,两个典型应用之包分类处理,报文处理策略选择: Telnet 和 FTP给予了不同的服务等级; SMTP(email)被某一个特定的服务器截收了(安全问题);,*,202.176.145.12,*,*,*,225.142.11.*,TCP,25,23,21,Low priority
6、,Deny,Low latency,源地址 目的地址 协议 端口 处理策略,TCP,TCP,IP PACKET,ROUTER,Telnet,FTP,SMTP,IP PACKET,IP PACKET,?,如何处理?,TCAM,SRAM,为什么需要TCAM,疑问: 上面所说的功能不用TCAM就能实现,为什么要还要TCAM呢? 答案就是: 速度!,传统的查找方法,基于SRAM的的查找方法: 软件算法的实现方式,1.线性查找,AFCD,1122,CCDD,AAAA,SRAM,address,data,2.二叉树查找,3,4,5,6,7,8,9,5,3.HASH查找 ,基于CAM的查找,基于TCAM的查
7、找: 基于硬件的实现,整个表空间Database在同一时刻被查询:,1,*,0,1,0,1,*,0,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,1,0,0,0,0,1,0,1,0,1,0,1,1,0,0,0,0,1,0,*,1,1,0,3,1,2,4,5,1,1,0,1,1,0,*,*,*,Keyword:,TCAM:,Add=4,Associated DATA,RAM,匹配4,DATA,TCAM的优势,TCAM的优势: 单周期查找; 平均查找速度是基于SRAM算法查找的6倍; 最坏情况下,查找速度提高128倍;,三态原理,表项掩码(三态的实现方式): TCAM的基本单
8、元为待查找的表项,每个表项包括表项数据Data Word、 表项掩码Local Mask。 Local Mask某位为1(有的厂商规定是0)时,相对应的 Data Word位被屏蔽,不参与比较。,1,0,0,1,0,0,1,0,Data Word,Local Mask,1,*,0,1,0,0,1,0,0,1,0,0,0,0,0,0,表项:,等效于,*表示“do not care”,精确匹配,精确匹配: 不使用掩码,所有的掩码位是0,进行精确匹配。,1,0,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,
9、0,0,0,0,0,1,1,0,1,1,0,3,1,2,4,5,1,1,0,1,1,0,1,1,1,Key:,logic,Winner,A,B,C,D,E,F,最高优先级匹配,1,0,0,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,*,0,0,0,*,*,*,*,1,1,0,3,1,2,4,5,1,1,0,1,1,0,1,1,1,Key:,logic,Winner,TCAM的最高优先级匹配功能: 由于有“dont care”即三态的存在,所以一个Key值可能有多个匹配。 当一个Key存在多个匹配的时候,
10、匹配经过逻辑单元比较返回匹配程度最高的 表项。(在IPV4路由中经常出现),A,B,C,D,E,F,内容简介,19,TCAM芯片介绍,几种厂家TCAM,NSE (Network Search Engine),Netlogic的Roadmap,NL3280的结构,NL3280是Netlogic公司生产的18Mbit的TCAM芯片,芯片结构图如下:,NL3280的信号,Netlogic NL3280的主要接口信号有:,数据总线DBUS71:0:数据(地址)的输入与输出 指令总线IBUS7:0:指令输出。 结果返回总线RBUS24:0:返回查找的结果。,Netlogic NL3280几个特殊信号有:
11、,RD_ACK:读操作时指示数据总线上的数据有效。 RV:结果有效位,指示RBUS上的数据有效,NL3280的Database,NL3200内部可以分为16个独 立的block,每个block可以配置成 16K x 72bit,8K x 144bit, 4K x 288bit,2kx576bit;,Database record,NL3280中的基本单元是表项,每个表项包括一个72bit的Data Word数据项和一个 Local Mask Word的掩码项。当掩码为“1”时相对应的数据位不参与比较。 此外还有一位校验位Parity和一位有效位VBIT,当VBIT为1时表示此表项无效果, 不参
12、加比较操作。,块结构,每一个Block有8个块掩码寄存器,块掩码寄存器用来屏蔽所在列的数据, 当块掩码寄存器设置为1时,相对应的整列都被屏蔽。,NL3280的寄存器,块设置寄存器BCR : 用来设置逻辑表ID和位宽 ; 块掩码寄存器BMR:用来设置块掩码; 数据寄存器DR:用来写入搜索的关键字和数据,是个只写寄存器; 设备ID寄存器DIR:用来设置设备的ID号; 逻辑表寄存器LTR:用来设置逻辑表ID、逻辑表ID掩码、和选择块掩码; 结果寄存器RR:保存返回的INDEX和ID号等,是个只读寄存器;,NL3200的主要寄存器有:,NL3280的基本操作,NL3280的基本操作: 读操作:和RAM
13、类似,地址和数据在DBUS总线上复用; 写操作:和RAM类似; 查找操作:TCAM的主要操作,用户提供待查数据,TCAM返回储存此数据 的地址,TCAM的选型依据,TCAM选型的四个主要因素: 容量 查找速度 功耗 价格,TCAM未来的发展方向,未来对TCAM的要求: 更大容量 更低功耗 更便宜的价格 物理上基于SRAM或者是DRAM,用专利算法实现高速查找,是未来TCAM发展的一个方向。,Marvell Questflo TX1100,Marvell Questflo TX1100,内容简介,33,TCAM IP介绍,几种IP的比较,34,智原 Faraday (台湾),35,UMC 台联电
14、,智原 Faraday (台湾),36,智原 Faraday (台湾),37,智原 Faraday (台湾),38,智原 Faraday (台湾),39,TCAM拼位宽,40,As for how to create a bigger (number of bits) TCAM instance from smaller (number of bits) TCAM instance. Customers normally AND the match-outs (ML) of TCAMs and then go in to the priority encoder. Below example is ANDing 4 x80 TCAMs to get a x320 TCAMs. In your case you can use 2 x144 TCAMs. The priority encoder will need to be a soft rtl solution. You mentioned something about “regular misses” if you create bigger TCAM macro from smaller ones, can you elaborate this a bit? 拼位宽时必须保证TCAM的输出是编码前的输出,