《三态内容寻址存储器tacm介绍.ppt》由会员分享,可在线阅读,更多相关《三态内容寻址存储器tacm介绍.ppt(55页珍藏版)》请在三一办公上搜索。
1、TCAM基础知识培训,课程内容,第一章:TCAM基础 第二章:TCAM芯片介绍 第三章:附录,课程内容,第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找 第3节:TCAM的优势 第4节:TCAM的基本组成 第5节:“三态”和最高优先级匹配,什么是CAM,CAM:Content Addressable Memory,内容寻址存储器。一个并行比较处理器,也被称作NSE(Network Search Engine)能够象RAM一样进行写操作:输入地址和数据,将数据写到指定的地址上。能够象RAM一样进行读操作:输入地址,返回该地址上的数据。查找操作:输入(待查)数据,返回该
2、数据被存储的地址。这是CAM的主要用途,它能够从巨大的Database中进行快速查找,并返回最佳匹配的地址。,什么是TCAM,TCAM:Ternary Content Addressable Memory,三态内容寻址存储器。一般CAM存储器中每一bit的状态只有两个,非“0”即“1”;TCAM中每bit数据还有第三种状态“dont care”,所以称为“三态”,它是通过掩码来进行实现的。目前主要的供应商有:Netlogic、Cypress、IDT。,查找系统,CAM在系统中的位置:,PHY,Framer,TrafficManager,ASIC或者NPU,TCAM,Associated Dat
3、a RAM(optional),CAM和网络处理器(NP)一起完成数据包的分类、路由查找等功能,充当搜索引擎单元.,课程内容,第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找 第3节:TCAM的优势 第4节:TCAM的基本组成 第5节:“三态”和最高优先级匹配,TCAM子系统的查找过程,NPU/ASIC,RAM,TCAM,KEY,INDEX,DATA,一个典型的TCAM子系统的查找过程:,准备查找:NP从报文头提取信息,整理成与TCAM中待查表一致的数据格式,称为Key。查找:将Key送入TCAM与待查表中的所有表项对照,匹配到后将对应地址INDEX送到 RAM中。
4、查找后的处理:最后 RAM将对该报文的处理信息 DATA返回给NP。,TCAM的应用范围之一,ATM switching VCI/VPI translation ATM-to-MLPS or ATM-to-TCP-Flow mappingEthernet switching layer 2 MAC address searches Address Resolution Protocol(ARP)Emerging Protocols and functions MPLS label searches,两个典型应用之路由查找,IP PACKET,ROUTER,?,ROUTER,ROUTER,ROU
5、TER,R3,R5,R4,IP PACKET,PROTOCOLTYPE,IP SRCADDR,IP DESTADDR,SRCPORT#,DESTPORT#,DATA,查找Key:,R3,路由表:,R4,R5,根据目的地址查找下一跳:,下一跳?,TCAM,RAM,INDEX,PACKET TO R4,TCAM的应用范围之二,Packet Classification:Enforce security Enforce departmental policies Quality of Service 包的分类可以决定这个包是否应该被转发,如果要被转发,要给予什么样的优先级。,两个典型应用之包分类处理
6、,报文处理策略选择:Telnet 和 FTP给予了不同的服务等级;SMTP(email)被某一个特定的服务器截收了(安全问题);,*,*,*,*,225.142.11.*,TCP,25,23,21,Low priority,Deny,Low latency,源地址 目的地址 协议 端口 处理策略,TCP,TCP,IP PACKET,ROUTER,Telnet,FTP,SMTP,IP PACKET,IP PACKET,?,如何处理?,TCAM,SRAM,TCAM基础知识培训,第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找 第3节:TCAM的优势 第4节:TCAM的基
7、本组成 第5节:“三态”和最高优先级匹配,为什么需要TCAM,疑问:上面所说的功能不用TCAM就能实现,为什么要还要TCAM呢?答案就是:速度!,传统的查找方法,基于SRAM的的查找方法:软件算法的实现方式,1.线性查找,AFCD,1122,CCDD,AAAA,SRAM,address,data,2.二叉树查找,3.HASH查找.,基于CAM的查找,基于TCAM的查找:基于硬件的实现,整个表空间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
8、,1,0,*,1,1,0,3,1,2,4,5,1,1,0,1,1,0,*,*,*,Keyword:,TCAM:,Add=4,AssociatedDATA,RAM,匹配4,DATA,TCAM的优势,TCAM的优势:单周期查找;平均查找速度是基于SRAM算法查找的6倍;最坏情况下,查找速度提高128倍;,TCAM基础知识培训,第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找 第3节:TCAM的优势 第4节:TCAM的基本组成 第5节:“三态”和最高优先级匹配,CAM和Memory的基本单元,SRAM的基本单元:,CAM的基本单元,CAM的基本单元:,TCAM的基本单元,
9、TCAM的基本单元:,TCAM基础知识培训,第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找过程 第3节:TCAM的优势 第4节:TCAM的基本组成 第5节:“三态”和最高优先级匹配,表项掩码,表项掩码(三态的实现方式):TCAM的基本单元为待查找的表项,每个表项包括表项数据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,表项:
10、,等效于,*表示“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,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,*
11、,*,*,*,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存在多个匹配的时候,匹配经过逻辑单元比较返回匹配程度最高的表项。(在IPV4路由中经常出现),A,B,C,D,E,F,课程内容,第二章:TCAM芯片介绍 第1节:几种TCAM芯片介绍 第2节:NL3280介绍 第3节:Netlogic和IDT的Roadmap,几种TCAM芯片介绍,课程内容,第二章:TCAM芯片介绍 第1节:几种TCAM芯片介绍 第2节:NL328
12、0介绍 第3节:Netlogic和IDT的Roadmap,NL3280的结构,NL3280是Netlogic公司生产的18Mbit的TCAM芯片,芯片结构图如下:,NL3280与NP的连接结构,TCAM,RAM,NPU/ASIC,KEY,DATA,ADDR,INDEX,1、NP将要查找的数据Key送到TCAM中,2、TCAM找到匹配项后将地址INDEX直接返回给NP,3、NP再用地址ADDR(可能经过转换)在RAM中读取所需 数据,NL3280的信号,Netlogic NL3280的主要接口信号有:,数据总线DBUS71:0:数据(地址)的输入与输出指令总线IBUS7:0:指令输出。结果返回总
13、线RBUS24:0:返回查找的结果。,Netlogic NL3280几个特殊信号有:,RD_ACK:读操作时指示数据总线上的数据有效。SMF_L0:系统匹配标志位。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”时相对应的数据位不
14、参与比较。此外还有一位校验位Parity和一位有效位VBIT,当VBIT为1时表示此表项无效果,不参加比较操作。,块结构,每一个Block有8个块掩码寄存器,块掩码寄存器用来屏蔽所在列的数据,当块掩码寄存器设置为1时,相对应的整列都被屏蔽。,NL3280的寄存器,块设置寄存器BCR:用来设置逻辑表ID和位宽;块掩码寄存器BMR:用来设置块掩码;数据寄存器DR:用来写入搜索的关键字和数据,是个只写寄存器;设备ID寄存器DIR:用来设置设备的ID号;逻辑表寄存器LTR:用来设置逻辑表ID、逻辑表ID掩码、和选择块掩码;结果寄存器RR:保存返回的INDEX和ID号等,是个只读寄存器;设备配置寄存器D
15、CR:存储版本号、容量等芯片相关信息。,NL3200的主要寄存器有:,NL3280的初始化,初始化的要求步骤如下:Setp1 保持RST_L信号为低至少200个时钟周期;Setp2 将RST_L拉高,发出20,000个NOP命令;Setp3 写器件ID寄存器;Setp4 写器件配置ID寄存器;Setp5如果器件级联,则运行指令0X01(使能下个器件),和0X00(nop指令)Setp6重复第三到五步;Setp7 写Block 寄存器,设置逻辑表ID和位宽配置;Setp8 写Block Mask寄存器;,NL3200的初始化,Step9 写Logical Table 寄存器,设置逻辑表ID、逻辑
16、表ID掩码和被选择的Block Mask;Step10 写入并定义所有的表项数据和掩码;Step11 发比较操作指令。,NL3280的基本操作,NL3280的基本操作:读操作:和RAM类似,地址和数据在DBUS总线上复用;写操作:和RAM类似;查找操作:TCAM的主要操作,用户提供待查数据,TCAM返回储存此数据 的地址,读操作,读操作:可以分为三种类型,读寄存器,读表项数据,读表项掩码,对应IBUS 7:0的值如下表。,读操作主要用于从TCAM中读取表项和寄存器的内容,通过IBUS总线向TCAM发出读操作码,通过DBUS送地址到TCAM中,读的结果由DBUS返回,读操作,当Local Mas
17、k Word位是1的时候,相应的Data Word位读出的数据总是0,如下表所示:,读操作,读操作的时序:,写操作,写操作:写操作比较特殊,分为寄存器、删除表项、写表项操作。对应的指令如下表所示:,写操作,写寄存器:,写操作,写表项:,写操作,删除表项:,Compare操作,每两个时钟周期,可一执行一次Compare操作,Rbus总线保持两个时钟周期,Compare操作,Data Register71:0必须是最后一个被写入的Data Segment,其它Data Segment的写入次序随意。,课程内容,第二章:TCAM芯片介绍 第1节:几种TCAM芯片介绍 第2节:NL3280介绍 第3节:Netlogic和IDT的Roadmap,Netlogic的Roadmap,IDT的Roadmap1,IDT的Roadmap2,课程内容,附录:TCAM的选型要素 TCAM未来的发展方向,TCAM的选型依据,TCAM选型的四个主要因素:容量 查找速度 功耗 价格,TCAM未来的发展方向,未来对TCAM的要求:更大容量更低功耗更便宜的价格 物理上基于SRAM或者是DRAM,用专利算法实现高速查找,是未来TCAM发展的一个方向。,谢谢,