CN1172490C - 一种快速两次流分类查找方法 - Google Patents
一种快速两次流分类查找方法 Download PDFInfo
- Publication number
- CN1172490C CN1172490C CNB011185538A CN01118553A CN1172490C CN 1172490 C CN1172490 C CN 1172490C CN B011185538 A CNB011185538 A CN B011185538A CN 01118553 A CN01118553 A CN 01118553A CN 1172490 C CN1172490 C CN 1172490C
- Authority
- CN
- China
- Prior art keywords
- ipcam
- clock cycle
- data
- command line
- search key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种快速两次流分类查找技术,用于分组通讯网络设备中,实现QoS、VPN、包过滤等业务,是利用IPCAM器件实现的一种低成本、低复杂度的方法,在每个数据包要求做两次流分类查找时能满足高速网络设备OC-48端口速率的要求。包括:在IPCAM器件中存储关键字及其附带内容,并通过数据及命令总线与控制芯片连接;控制芯片通过命令总线向IPCAM器件连续发出两个查找关键字指令;紧接着向IPCAM器件连续发出两个读匹配内容指令;再连续两次从数据总线上读出两次查找结果。
Description
技术领域
本发明涉及一种数据处理技术,更确切地说是涉及一种对数据流进行分类、识别的流分类技术,应用于数据通信领域的高速分组转发设备,如高速路由器等中。
背景技术
流分类技术是分组通讯网络设备中的一项关键技术,用于实现服务质量(QoS)、虚拟专网(VPN)、包过滤等业务,高速网络设备要求有快速的流分类技术,特别是能够快速进行连续两次查找操作的流分类查找技术,该流分类查找技术在每个数据包要求做两次流分类查找的情况下也应能满足高速网络设备上的OC-48端口速率的要求。
实现流分类技术现有多种方法,大致可分为两类:一类是基于普通存储器如SDRAM的实现方法,另一类是采用CAM器件(主要是新一代的三值CAM器件)再附加SRAM的实现方法。
基于普通存储器的流分类方法的算法复杂度一般较高,对存储器的需求量很大,性能比较低,难以满足高速路由器上的OC-48端口的要求;另外,在每个分组需要查找两个以上流分类表,如QoS策略表、包过滤策略表等的情况下,不能提供优化算法,而在不增加并行查找模块的情况下,分组处理速度又将成倍减小。
现有的采用CAM器件的流分类技术,其实现结构如附图1中所示,цp是微处理器,ASIC是控制芯片,CAM器件中存储有用于查找各种表的关键字,SRAM中存储有关键字的附带内容。ASIC与CAM间连接有数据总线(CBUS)及命令(或指令)总线(IBUS)。在进行流分类查找时,由CAM给出地址,再从SRAM的相应地址单元中读出数据。该方式可以实现高度的并行流水线查表,性能可以达到很高,但由于该技术方案需要增加额外的SRAM,不仅增加了成本,还使实现复杂度增加。
IPCAM是Netlogic公司推出的一种高性能CAM器件,可将查找的关键字和欲查找的内容都存储在IPCAM中,利用该IPCAM实现流分类,可无需额外的存储器,其实现结构如图2中所示。
Netlogic公司给出的对IPCAM器件进行操作的方法是:首先对IPCAM发出比较(查找)指令,然后等待1个时钟周期,再对IPCAM发出读匹配内容指令,随后又等待一个时钟周期,最后从IPCAM的数据总线(CBUS)上读出欲查找的内容。这种方式实现最简单,在相同规格的CAM中能够容纳流分类表的关键字与内容的情况下,这种方式的成本也能比较低,但这种方式基本不能实现并行流水线查表,性能难以达到很高。
图3示出可利用该IPCAM器件进行连续两次查找的流分类操作时序。在第一个时钟周期(CLK),通过IBUS向IPCAM器件发出WCR命令,即命令将数据总线CBUS上的查找关键字的低64位数据D0-0写入IPCAM中的比较寄存器中;在第二个时钟周期(CLK),通过IBUS向IPCAM器件发出WCRCMP命令,即命令将数据总线CBUS上的查找关键字的高64位数据D0-1写入IPCAM中的比较寄存器中,并且使IPCAM开始比较(查找)操作;第三个时钟周期(CLK)等待(NOP);第四个时钟周期(CLK),通过IBUS向IPCAM器件发出MEM RD命令,即用MEM RD指令读出所查找的匹配地址处的内容;在第五到第六个时钟周期(CLK)期间,可在CBUS上读出所查找的匹配地址处的内容;最后一个时钟周期即第七个时钟周期(CLK)是为了避免CBUS从读状态转换到写状态而插入的一个等待周期,是一个操作开销周期。图中所示的/WEN用于控制将CBUS(64位)上的高、低32位数据写入比较寄存器的,/WEN[0]为‘0’则允许CBUS上的低32位数据写入寄存器的低32位,/WEN[1]为‘0’则允许CBUS上的高32位数据写入寄存器的高32位,/WEN=00表示允许CBUS上的64位数据全部写入寄存器;ULEN用于控制写入查找关键字的高、低64位数据D0-0与D0-1;/SMF用于表示查找操作的匹配状况。
对于需要连续两次查找的情况,就需要重复上述的操作过程,则共需要14个时钟周期(CLK)才能完成,因此整个操作过程所需的时间较长,影响了处理吞吐率,无法满足高速网络设备上的OC-48端口速率的要求。
在高速路由器上需要有高性能的流分类查表技术,下表列出了几种端口速率和几种每报文查表次数情况下所需要达到或接近的查表性能,单位为M(百万)次/秒:
每报文查表次数端口速率 | 1 | 2 | 3 |
OC-12 | 1.5 | 3 | 4.5 |
OC-48 | 6 | 12 | 18 |
OC-192 | 24 | 48 | 72 |
发明内容
本发明的目的是设计一种快速两次流分类查找方法,能快速处理连续两次流分类查找,且复杂度低、成本低。
实现本发明目的的技术方案是这样的:一种快速两次流分类查找方法,采用如下处理步骤:
A.采用IPCAM器件,IPCAM器件中存储有关键字及其附带内容,并让IPCAM器件通过数据总线(CBUS)及命令总线(IBUS)与控制芯片连接;
B.控制芯片通过命令总线(IBUS)向IPCAM器件连续发出两个查找关键字指令;
C.控制芯片紧接着再通过命令总线(IBUS)向IPCAM器件连续发出两个读匹配内容指令;
D.控制芯片连续两次从数据总线(CBUS)上读出两次查找结果。
所述的步骤B、C、D进一步包括:
a.在第一个时钟周期(CLK),通过命令总线(IBUS)向IPCAM器件发出将数据总线(CBUS)上的第一个查找关键字的低64位数据(D0-0)写入IPCAM中的比较寄存器中;
b.在第二个时钟周期(CLK),通过命令总线(IBUS)向IPCAM器件发出将数据总线(CBUS)上的第一个查找关键字的高64位数据(D0-1)写入IPCAM中的比较寄存器中,并且使IPCAM开始第一个查找关键字的比较(查找)操作;
c.在第三个时钟周期(CLK),通过命令总线(IBUS)向IPCAM器件发出将数据总线(CBUS)上的第二个查找关键字的低64位数据(D1-0)写入IPCAM中的比较寄存器中;
d.在第四个时钟周期(CLK),通过命令总线(IBUS)向IPCAM器件发出将数据总线(CBUS)上的第二个查找关键字的高64位数据(D1-1)写入IPCAM中的比较寄存器中,并且使IPCAM开始第二个查找关键字的比较(查找)操作;
e.在第五个时钟周期(CLK),通过命令总线(IBUS)向IPCAM器件发出读出所查找的第一个关键字匹配地址处内容的指令;
f.在第六个时钟周期(CLK),通过命令总线(IBUS)向IPCAM器件发出读出所查找的第二个关键字匹配地址处内容的指令;
g.在第七到第九个时钟周期(CLK),通过命令总线(IBUS)向IPCAM器件发出等待指令,同时在第七到第八个时钟周期(CLK),在数据总线(CBUS)上先后读出所查找的第一、第二个关键字匹配地址处的内容。
所述第九个时钟周期(CLK)是一操作开销周期,用于禁止数据总线(CBUS)从读出状态转换到写入状态。
在采用IPCAM实现流分类,并且将流分类表的关键字和内容都存储在IPCAM中的情况下,对于每个报文需要作多次流分类查表的情况,本发明的方法在一定程度上实现了并行流水线查表,在性能上相对于非并行流水线查表方法有很大的提高。
本发明利用由IPCAM提供的比较(Compare Valid Entries)指令和读匹配内容(Read CAM word at HPM Address)指令,再经过特殊的流水线处理,可实现连续两次查找。对于IPCAM的这种应用方式不仅省去了额外的存储器本身,而且省去了与存储器相关的仲裁、控制等逻辑电路。
本发明的快速两次流分类查找方法,针对需要连续作两次查找的情况,采用了并行流水线的方法,在对IPCAM发出第一个查找指令后,紧接着就发出第二个查找指令,然后连续发出两个读匹配内容指令,最后连续获得两次查找的结果,整个查找操作过程仅需9个时钟周期,比图3所示的连续两次查找操作省5个时钟周期,有效地减少了连续两次查找操作的时间,此时时钟只需为50MHz,即能满足OC-48速率端口的分组吞吐率要求。
在每个报文需要查两次流分类表的情况下,假设查表控制芯片的时钟频率为50MHz,则采用一般的非并行流水线查表方式(图3),每次查表需7个时钟周期,查表性能为7.1M次/秒,不能满足OC-48端口的要求;而采用本发明的两次并行流水线查表方式,平均每次查表只需4.5个时钟周期,查表性能为11.1M次/秒,能够满足OC-48端口的要求。
采用本发明的方法,能够实现多个(>6个)域的高速流分类查找(>4M/s),可支持大规模的流分类表(>8k条规则),并且针对每个分组需要查两次表的情况做了特殊的优化处理,保持了高速性能,能够满足OC-48速率端口的应用要求。该流分类方法在Radium8750v2上的应用达到了2个千兆以太网接口或者2个OC-12POS接口的线速处理(包长任意)的水平。
附图说明
图1是现有的采用CAM器件实现流分类的原理性结构框图。
图2是现有的采用IPCAM器件实现流分类的原理性结构框图。
图3是采用图2所示结构进行流分类查找操作的时序示意图。
图4是采用图2所示结构及本发明的方法进行快速连续两次流分类查找操作的时序示意图。
具体实施方式
下面结合实施例及附图进一步说明本发明的技术方案。
图1至图3的说明前已述及,不再赘述。
参见图4,CLK是时钟,IBUS是指令总线,CBUS是数据总线,图中所示的/WEN用于控制将CBUS(64位)上的高、低32位数据写入寄存器的,/WEN[0]为‘0’则允许CBUS上的低32位数据写入寄存器的低32位,/WEN[1]为‘0’则允许CBUS上的高32位数据写入寄存器的高32位,/WEN=00表示允许CBUS上的64位数据全部写入寄存器;ULEN用于控制写入查找关键字的高、低64位数据D0-0与D0-1、D1-0与D1-1;/SMF用于表示查找操作的匹配状况,WCR命令将数据总线(CBUS)上的查找关键字的低64位数据D0-0、D1-0写入IPCAM的比较寄存器,WCRCMP命令将CBUS上的查找关键字的高64位数据D0-1、D1-1也写入IPCAM的比较寄存器,并且使IPCAM开始比较(查找)操作,MEM RD指令用于从CBUS上读查找匹配地址处内容。
快速两次流分类查找方法,包括采用IPCAM器件,在IPCAM器件中存储关键字及其附带内容,并让IPCAM器件通过数据总线(CBUS)及命令总线(IBUS)与控制芯片连接。首先,控制芯片通过命令总线(IBUS)向IPCAM器件连续发出两个查找关键字指令;控制芯片紧接着再通过命令总线(IBUS)向IPCAM器件连续发出两个读匹配内容指令;最后,控制芯片连续两次从数据总线(CBUS)上读出两次查找结果。
快速连续两次流分类查找操作时序,在第一、第二时钟周期(CLK),由控制芯片通过IBUS向IPCAM发出第一次比较(查找)命令WCR、WCRCMP,数据总线CBUS上相应的所查找关键字的低64位、高64位数据D0-0、D0-1先后写入IPCAM的比较寄存器中,并使IPCAM开始第一个关键字的比较(查找);紧接着在第三、第四时钟周期又由控制芯片通过IBUS向IPCAM发出第二次比较(查找)命令WCR、WCRCMP,数据总线(CBUS)上相应的所查找关键字的低64位、高64位数据D1-0、D1-1也先后写入IPCAM的比较寄存器中,并使IPCAM开始第二个关键字的比较(查找);然后在第五、第六时钟周期,由控制芯片通过IBUS向IPCAM连续发出两个读匹配地址(关键字的低64位、高64位数据)处内容的命令MEM RD、MEM RD;然后在第七至第八时钟周期,由控制芯片连续两次从数据总线(CBUS)上读取两次查找结果(RESULT0、RESULT1),即两个匹配地址处的内容;最后的第九个时钟周期是一操作开销周期,是为了避免数据总线(CBUS)从读出状态转换到写入状态而插入的一个等待周期。
本发明的方法,试用于MPLS及DiffServ骨干网边缘路由器中,以实现复杂的多域流分类操作。
MPLS及DiffServ骨干网边缘路由器需要完成数据报文的分类识别操作,以实现QoS、包过滤等功能。由于这种分类识别操作需要根据IP报文中的源IP地址、目的IP地址、源TCP/UDP端口、目的TCP/UDP端口、传输层协议类型等多个信息数据域来进行,即多域流分类操作,其硬件实现技术难度相当高。
采用本发明的方法,将多域流分类操作所需的信息数据及所要得到的内容全部存储在IPCAM芯片中,由于IPCAM芯片的每个单元为128位宽,是足够存储这些数据的。
应用本发明的方法,对每个IP报文作两次多域的流分类操作,包括对源IP地址、目的IP地址、源TCP/UDP端口、目的TCP/UDP端口、传输层协议、路由器接口号等的流分类操作,分别实现QoS和包过滤功能,性能达到了OC-48端口线速处理的水平,且大大降低了所实现的多域流分类技术的难度。
Claims (3)
1.一种快速两次流分类查找方法,包括采用IPCAM器件,在IPCAM器件中存储关键字及其附带内容,并让IPCAM器件通过数据总线及命令总线与控制芯片连接;其特征在于还包括如下处理步骤:
A.控制芯片通过命令总线向IPCAM器件连续发出两个查找关键字指令,包括:
a.在第一个时钟周期,通过命令总线向IPCAM器件发出将数据总线上的第一个查找关键字的低64位数据写入IPCAM中的比较寄存器中;
b.在第二个时钟周期,通过命令总线向IPCAM器件发出将数据总线上的第一个查找关键字的高64位数据写入IPCAM中的比较寄存器中,并且使IPCAM开始第一个查找关键字的查找比较操作;
c.在第三个时钟周期,通过命令总线向IPCAM器件发出将数据总线上的第二个查找关键字的低64位数据写入IPCAM中的比较寄存器中;
d.在第四个时钟周期,通过命令总线向IPCAM器件发出将数据总线上的第二个查找关键字的高64位数据写入IPCAM中的比较寄存器中,并且使IPCAM开始第二个查找关键字的查找比较操作;
B.控制芯片紧接着再通过命令总线向IPCAM器件连续发出两个读匹配内容指令,包括:
e.在第五个时钟周期,通过命令总线向IPCAM器件发出读出所查找的第一个关键字匹配地址处内容的指令;
f.在第六个时钟周期,通过命令总线向IPCAM器件发出读出所查找的第二个关键字匹配地址处内容的指令;
C.控制芯片连续两次从数据总线上读出两次查找结果,包括:
在第七到第九个时钟周期,通过命令总线向IPCAM器件发出等待指令,同时在第七到第八个时钟周期,在数据总线上先后读出所查找的第一、第二个关键字匹配地址处的内容。
2.根据权利要求1所述的一种快速两次流分类查找方法,其特征在于:所述第九个时钟周期是一操作开销周期,用于禁止数据总线从读出状态转换到写入状态。
3.根据权利要求1所述的一种快速两次流分类查找方法,其特征在于:所述的第五至第六个时钟周期是紧接着所述的第四个时钟周期连续发出的;所述的第七至第九个时钟周期是紧接着所述的第六个时钟周期连续发出的;所述的第一至第四个时钟周期是紧接着所述第九个时钟周期连续发出的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011185538A CN1172490C (zh) | 2001-06-01 | 2001-06-01 | 一种快速两次流分类查找方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011185538A CN1172490C (zh) | 2001-06-01 | 2001-06-01 | 一种快速两次流分类查找方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1390018A CN1390018A (zh) | 2003-01-08 |
CN1172490C true CN1172490C (zh) | 2004-10-20 |
Family
ID=4663266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011185538A Expired - Fee Related CN1172490C (zh) | 2001-06-01 | 2001-06-01 | 一种快速两次流分类查找方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1172490C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100417140C (zh) * | 2005-10-24 | 2008-09-03 | 华为技术有限公司 | 一种流分类装置和方法以及采用该流分类装置的基站 |
-
2001
- 2001-06-01 CN CNB011185538A patent/CN1172490C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1390018A (zh) | 2003-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9269411B2 (en) | Organizing data in a hybrid memory for search operations | |
EP0992056B1 (en) | Search engine architecture for a high performance multi-layer switch element | |
EP1623347B1 (en) | Comparison tree data structures and lookup operations | |
US6775737B1 (en) | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories | |
EP1551141B1 (en) | Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware | |
CN102364463B (zh) | 一种基于Hash查找CAM的方法 | |
CN102487374B (zh) | 一种访问控制列表实现方法及装置 | |
CN100536435C (zh) | 一种基于二叉树的流分类查找方法 | |
CN101242362B (zh) | 查找键值生成装置及方法 | |
US20210067448A1 (en) | TCAM with multi region lookups and a single logical lookup | |
CN1195272C (zh) | 用于网络处理器的动态随机存取存储器数据存储和移动 | |
WO2007078220A2 (en) | Compiling method for command based router classifiers | |
US8375165B2 (en) | Bit weaving technique for compressing packet classifiers | |
US7739445B1 (en) | Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device | |
CN101079817A (zh) | 一种路由查找方法及系统 | |
CN109981464B (zh) | 一种在fpga中实现的tcam电路结构及其匹配方法 | |
US9906443B1 (en) | Forwarding table updates during live packet stream processing | |
CN100426791C (zh) | 一种路由转发表地址查找引擎装置 | |
EP1526699B1 (en) | Method and system for accelerated packet processing | |
CN1173531C (zh) | 同时支持路由查找、ip包分类、arp查找的方法及查找系统 | |
US7398278B2 (en) | Prefix processing technique for faster IP routing | |
CN1172490C (zh) | 一种快速两次流分类查找方法 | |
CN1365216A (zh) | 交换数据库高速缓冲存储器管理系统 | |
US20060198379A1 (en) | Prefix optimizations for a network search engine | |
CN105335307B (zh) | 一种acl规则的加载方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20041020 Termination date: 20150601 |
|
EXPY | Termination of patent right or utility model |