CN1172490C - 一种快速两次流分类查找方法 - Google Patents

一种快速两次流分类查找方法 Download PDF

Info

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
Application number
CNB011185538A
Other languages
English (en)
Other versions
CN1390018A (zh
Inventor
���Ͽع����޹�˾
刘毓
王青松
杨雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB011185538A priority Critical patent/CN1172490C/zh
Publication of CN1390018A publication Critical patent/CN1390018A/zh
Application granted granted Critical
Publication of CN1172490C publication Critical patent/CN1172490C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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所述的一种快速两次流分类查找方法,其特征在于:所述的第五至第六个时钟周期是紧接着所述的第四个时钟周期连续发出的;所述的第七至第九个时钟周期是紧接着所述的第六个时钟周期连续发出的;所述的第一至第四个时钟周期是紧接着所述第九个时钟周期连续发出的。
CNB011185538A 2001-06-01 2001-06-01 一种快速两次流分类查找方法 Expired - Fee Related CN1172490C (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100417140C (zh) * 2005-10-24 2008-09-03 华为技术有限公司 一种流分类装置和方法以及采用该流分类装置的基站

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