1、课程内容 第一章:TCAM基础 第二章:TCAM芯片介绍 第三章:附录课程内容第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找 第3节:TCAM的优势 第4节:TCAM的基本组成 第5节:“三态”和最高优先级匹配什么是CAMCAM: Content Addressable Memory,内容寻址存储器。 一个并行比较处理器,也被称作NSE (Network Search Engine) 能够象RAM一样进行写操作: 输入地址和数据,将数据写到指定的地址上。 能够象RAM一样进行读操作: 输入地址,返回该地址上的数据。 查找操作: 输入(待查)数据,返回该数据被存储的
2、地址。 这是CAM的主要用途,它能够从巨大的Database中进行快速查找,并返回最佳匹配的地址。什么是TCAMTCAM:Ternary Content Addressable Memory ,三态内容寻址存储器。 一般CAM存储器中每一bit的状态只有两个,非“0”即“1” ;TCAM中每bit数据还有第三种状态“dont care”,所以称为“三态”,它是通过掩码来进行实现的。目前主要的供应商有:Netlogic、Cypress、IDT。 查找系统查找系统CAM在系统中的位置:在系统中的位置:PHYFramerTrafficManagerASIC或者NPUTCAMAssociated Da
3、ta RAM(optional) CAM和网络处理器(NP)一起完成数据包的分类、路由查找等功能,充当搜索引擎单元 .课程内容第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找 第3节:TCAM的优势 第4节:TCAM的基本组成 第5节:“三态”和最高优先级匹配TCAM子系统的查找过程NPU/ASICRAMTCAMKEYINDEXDATA一个典型的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 PACKETROUTER?ROUTERROUTERRO
5、UTERR3R5R4IP PACKETPROTOCOLTYPEIP SRCADDRIP DESTADDRSRCPORT#DESTPORT#DATA查找查找Key:192.10.12.9167.10.0.0R3路由表:路由表:192.10.0.0192.11.0.0R4R5根据目的地址查找下一跳:根据目的地址查找下一跳:下一跳?下一跳?TCAMRAMINDEXPACKET TO R4TCAM的应用范围之二Packet Classification: Enforce security Enforce departmental policies Quality of Service 包的分类可以决定
6、这个包是否应该被转发,如果要被转发,要给予什么样的优先级。 两个典型应用之包分类处理报文处理策略选择:报文处理策略选择: Telnet 和和 FTP给予了不同的服务等级;给予了不同的服务等级;SMTP(email)被某一个特定的服务器截收了(安全问题);被某一个特定的服务器截收了(安全问题);*202.176.145.12*225.142.11.*TCP252321Low priorityDenyLow latency 源地址源地址 目的地址目的地址 协议协议 端口端口 处理策略处理策略 TCPTCPIP PACKETROUTERTelnetFTPSMTPIP PACKETIP PACKET?
7、如何处理?如何处理?TCAMSRAMTCAM基础知识培训第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找 第3节:TCAM的优势 第4节:TCAM的基本组成 第5节:“三态”和最高优先级匹配为什么需要TCAM疑问: 上面所说的功能不用TCAM就能实现,为什么要还要TCAM呢?答案就是: 速度! 传统的查找方法基于SRAM的的查找方法: 软件算法的实现方式1.线性查找AFCD1122CCDDAAAASRAMaddressdata2.二叉树查找345678953.HASH查找.基于CAM的查找基于TCAM的查找: 基于硬件的实现,整个表空间Database在同一时刻被查
8、询: 1*0101*0110000111011100111000010101011000010*11031245110110*Keyword:TCAM:Add=4AssociatedDATARAM匹配匹配4DATATCAM的优势TCAM的优势: 单周期查找; 平均查找速度是基于SRAM算法查找的6倍; 最坏情况下,查找速度提高128倍; TCAM基础知识培训第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找 第3节:TCAM的优势 第4节:TCAM的基本组成 第5节:“三态”和最高优先级匹配CAM和Memory的基本单元SRAM的基本单元:的基本单元:CAM的基本单元
9、CAM的基本单元:的基本单元:TCAM的基本单元TCAM的基本单元:的基本单元:TCAM基础知识培训第一章:TCAM基础 第1节:什么是CAM和TCAM 第2节:TCAM的查找过程 第3节:TCAM的优势 第4节:TCAM的基本组成 第5节:“三态”和最高优先级匹配表项掩码 表项掩码(三态的实现方式): TCAM的基本单元为待查找的表项,每个表项包括表项数据Data Word、表项掩码Local Mask。 Local Mask某位为1(有的厂商规定是0)时,相对应的Data Word位被屏蔽,不参与比较。10010010Data WordLocal Mask1*01001001000000表
10、项:等效于*表示“do not care”精确匹配精确匹配: 不使用掩码,所有的掩码位是0,进行精确匹配。 10010101110010111011100111000111101110000011011031245110110111Key:logicWinnerABCDEF最高优先级匹配1001010111001011101110011100011110111*000*11031245110110111Key:logicWinnerTCAM的最高优先级匹配功能: 由于有“dont care”即三态的存在,所以一个Key值可能有多个匹配。 当一个Key存在多个匹配的时候,匹配经过逻辑单元比较返回
11、匹配程度最高的表项。(在IPV4路由中经常出现)ABCDEF课程内容第二章:TCAM芯片介绍 第1节:几种TCAM芯片介绍 第2节:NL3280介绍 第3节:Netlogic和IDT的Roadmap 几种TCAM芯片介绍生产厂商型号容量接口类型最大查找速度CypressNSE10K18MNSE266MSPSCypressNSE20K18MLA-1266MSPSNetlogicNL328018MNSE133MSPSNetlogicNSE551218MNSE133MSPSIDT75S10010A10MNSE250MLPSIDT75K72234 18MLA-1250MLPS课程内容第二章:TCAM芯
12、片介绍 第1节:几种TCAM芯片介绍 第2节:NL3280介绍 第3节:Netlogic和IDT的Roadmap NL3280的结构 NL3280是Netlogic公司生产的18Mbit的TCAM芯片,芯片结构图如下:NL3280与NP的连接结构TCAMRAMNPU/ASICKEYDATAADDRINDEX1、 NP将要查找的数据Key送到TCAM中,2、TCAM找到匹配项后将地址INDEX直接返回给NP,3、NP再用地址ADDR(可能经过转换)在RAM中读取所需 数据NL3280的信号Netlogic NL3280的主要接口信号有:l数据总线DBUS71:0:数据(地址)的输入与输出l指令总
13、线IBUS7:0:指令输出。l结果返回总线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的掩码项。
14、当掩码为“1”时相对应的数据位不参与比较。 此外还有一位校验位Parity和一位有效位VBIT,当VBIT为1时表示此表项无效果,不参加比较操作。块结构 每一个Block有8个块掩码寄存器,块掩码寄存器用来屏蔽所在列的数据,当块掩码寄存器设置为1时,相对应的整列都被屏蔽。 NL3280的寄存器1.块设置寄存器BCR : 用来设置逻辑表ID和位宽 ;2.块掩码寄存器BMR:用来设置块掩码;3.数据寄存器DR:用来写入搜索的关键字和数据,是个只写寄存器;4.设备ID寄存器DIR:用来设置设备的ID号;5.逻辑表寄存器LTR:用来设置逻辑表ID、逻辑表ID掩码、和选择块掩码;6.结果寄存器RR:保存
15、返回的INDEX和ID号等,是个只读寄存器;7.设备配置寄存器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 写Block Mask寄存器;NL3200的初始化Step
16、9 写Logical Table 寄存器,设置逻辑表ID、逻辑表ID掩码和被选择的Block Mask;Step10 写入并定义所有的表项数据和掩码;Step11 发比较操作指令。NL3280的基本操作NL3280的基本操作: 读操作:和RAM类似,地址和数据在DBUS总线上复用;写操作:和RAM类似;查找操作:TCAM的主要操作,用户提供待查数据,TCAM返回储存此数据 的地址读操作读操作:读操作:可以分为三种类型,读寄存器,读表项数据,读表项掩码,对应IBUS 7:0的值如下表。 读操作主要用于从TCAM中读取表项和寄存器的内容,通过IBUS总线向TCAM发出读操作码,通过DBUS送地址到
17、TCAM中,读的结果由DBUS返回读操作 当Local Mask 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的RoadmapIDT的Roadmap1IDT的Roadmap2课程内容附录: TCAM的选型要素 TCAM未来的发展方向 TCAM的选型依据TCAM选型的四个主要因素: 容量 查找速度 功耗 价格 TCAM未来的发展方向未来对TCAM的要求: 更大容量 更低功耗 更便宜的价格 物理上基于SRAM或者是DRAM,用专利算法实现高速查找,是未来TCAM发展的一个方向。谢谢