三态内容寻址存储器tacm介绍.ppt_第1页
三态内容寻址存储器tacm介绍.ppt_第2页
三态内容寻址存储器tacm介绍.ppt_第3页
三态内容寻址存储器tacm介绍.ppt_第4页
三态内容寻址存储器tacm介绍.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TCAM基础知识培训,课程内容,第一章:TCAM基础第二章:TCAM芯片介绍第三章:附录,课程内容,第一章:TCAM基础第1节:什么是CAM和TCAM第2节:TCAM的查找第3节:TCAM的优势第4节:TCAM的基本组成第5节:“三态”和最高优先级匹配,什么是CAM,CAM:ContentAddressableMemory,内容寻址存储器。一个并行比较处理器,也被称作NSE(NetworkSearchEngine)能够象RAM一样进行写操作:输入地址和数据,将数据写到指定的地址上。能够象RAM一样进行读操作:输入地址,返回该地址上的数据。查找操作:输入(待查)数据,返回该数据被存储的地址。这是CAM的主要用途,它能够从巨大的Database中进行快速查找,并返回最佳匹配的地址。,什么是TCAM,TCAM:TernaryContentAddressableMemory,三态内容寻址存储器。一般CAM存储器中每一bit的状态只有两个,非“0”即“1”;TCAM中每bit数据还有第三种状态“dontcare”,所以称为“三态”,它是通过掩码来进行实现的。目前主要的供应商有:Netlogic、Cypress、IDT。,查找系统,CAM在系统中的位置:,PHY,Framer,TrafficManager,ASIC或者NPU,TCAM,AssociatedDataRAM(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中。查找后的处理:最后RAM将对该报文的处理信息DATA返回给NP。,TCAM的应用范围之一,ATMswitchingVCI/VPItranslationATM-to-MLPSorATM-to-TCP-FlowmappingEthernetswitchinglayer2MACaddresssearchesAddressResolutionProtocol(ARP)EmergingProtocolsandfunctionsMPLSlabelsearches,两个典型应用之路由查找,IPPACKET,ROUTER,?,ROUTER,ROUTER,ROUTER,R3,R5,R4,IPPACKET,PROTOCOLTYPE,IPSRCADDR,IPDESTADDR,SRCPORT#,DESTPORT#,DATA,查找Key:,,,R3,路由表:,,,R4,R5,根据目的地址查找下一跳:,下一跳?,TCAM,RAM,INDEX,PACKETTOR4,TCAM的应用范围之二,PacketClassification:EnforcesecurityEnforcedepartmentalpoliciesQualityofService包的分类可以决定这个包是否应该被转发,如果要被转发,要给予什么样的优先级。,两个典型应用之包分类处理,报文处理策略选择:Telnet和FTP给予了不同的服务等级;SMTP(email)被某一个特定的服务器截收了(安全问题);,*,2,*,*,*,225.142.11.*,TCP,25,23,21,Lowpriority,Deny,Lowlatency,源地址目的地址协议端口处理策略,TCP,TCP,IPPACKET,ROUTER,Telnet,FTP,SMTP,IPPACKET,IPPACKET,?,如何处理?,TCAM,SRAM,TCAM基础知识培训,第一章:TCAM基础第1节:什么是CAM和TCAM第2节:TCAM的查找第3节:TCAM的优势第4节:TCAM的基本组成第5节:“三态”和最高优先级匹配,为什么需要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的查找:基于硬件的实现,整个表空间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,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的基本单元,TCAM的基本单元:,TCAM基础知识培训,第一章:TCAM基础第1节:什么是CAM和TCAM第2节:TCAM的查找过程第3节:TCAM的优势第4节:TCAM的基本组成第5节:“三态”和最高优先级匹配,表项掩码,表项掩码(三态的实现方式):TCAM的基本单元为待查找的表项,每个表项包括表项数据DataWord、表项掩码LocalMask。LocalMask某位为1(有的厂商规定是0)时,相对应的DataWord位被屏蔽,不参与比较。,1,0,0,1,0,0,1,0,DataWord,LocalMask,1,*,0,1,0,0,1,0,0,1,0,0,0,0,0,0,表项:,等效于,*表示“donotcare”,精确匹配,精确匹配:不使用掩码,所有的掩码位是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,*,*,*,*,1,1,0,3,1,2,4,5,1,1,0,1,1,0,1,1,1,Key:,logic,Winner,TCAM的最高优先级匹配功能:由于有“dontcare”即三态的存在,所以一个Key值可能有多个匹配。当一个Key存在多个匹配的时候,匹配经过逻辑单元比较返回匹配程度最高的表项。(在IPV4路由中经常出现),A,B,C,D,E,F,课程内容,第二章:TCAM芯片介绍第1节:几种TCAM芯片介绍第2节:NL3280介绍第3节:Netlogic和IDT的Roadmap,几种TCAM芯片介绍,课程内容,第二章:TCAM芯片介绍第1节:几种TCAM芯片介绍第2节:NL3280介绍第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的信号,NetlogicNL3280的主要接口信号有:,数据总线DBUS71:0:数据(地址)的输入与输出指令总线IBUS7:0:指令输出。结果返回总线RBUS24:0:返回查找的结果。,NetlogicNL3280几个特殊信号有:,RD_ACK:读操作时指示数据总线上的数据有效。SMF_L0:系统匹配标志位。RV:结果有效位,指示RBUS上的数据有效,NL3280的Database,NL3200内部可以分为16个独立的block,每个block可以配置成16Kx72bit,8Kx144bit,4Kx288bit,2kx576bit;,Databaserecord,NL3280中的基本单元是表项,每个表项包括一个72bit的DataWord数据项和一个LocalMaskWord的掩码项。当掩码为“1”时相对应的数据位不参与比较。此外还有一位校验位Parity和一位有效位VBIT,当VBIT为1时表示此表项无效果,不参加比较操作。,块结构,每一个Block有8个块掩码寄存器,块掩码寄存器用来屏蔽所在列的数据,当块掩码寄存器设置为1时,相对应的整列都被屏蔽。,NL3280的寄存器,块设置寄存器BCR:用来设置逻辑表ID和位宽;块掩码寄存器BMR:用来设置块掩码;数据寄存器DR:用来写入搜索的关键字和数据,是个只写寄存器;设备ID寄存器DIR:用来设置设备的ID号;逻辑表寄存器LTR:用来设置逻辑表ID、逻辑表ID掩码、和选择块掩码;结果寄存器RR:保存返回的INDEX和ID号等,是个只读寄存器;设备配置寄存器DCR:存储版本号、容量等芯片相关信息。,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写BlockMask寄存器;,NL3200的初始化,Step9写LogicalTable寄存器,设置逻辑表ID、逻辑表ID掩码和被选择的BlockMask;Step10写入并定义所有的表项数据和掩码;Step11发比较操作指令。,NL3280的基本操作,NL3280的基本操作:读操作:和RAM类似,地址和数据在DBUS总线上复用;写操作:和RAM类似;查找操作:TCAM的主要操作,用户提供待查数据,TCAM返回储存此数据的地址,读操作,读操作:可以分为三种类型,读寄存器,读表项数据,读表项掩码,对应IBUS7:0的值如下表。,读操作主要用于从TCAM中读取表项和寄存器的内容,通过IBUS总线向TCAM发出读操作码,通过DBUS送地址到TCAM中,读的结果由DBUS返回,读操作,当LocalMaskWord位是1的时候,相应的DataWord位读出的数据总是0,如下表所示:,读操作,读操作的时序:,写操作,写操作:写操作比较特殊,分为寄存器、删除表项、写表项操作。对应的指令如下表所示:,写操作,写寄存器:,写操作,写表项:,写操作,删除表项:,Compare操作,每两个时钟周期,可一执行一次Compare操作,Rbus总线保持两个时钟周期,Compare操作,DataRegister71:0必须是最后一个被写入的DataSegment,其它DataSegment的写入次序随意

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论