CN101986271A - Method and device for dispatching TCAM (telecommunication access method) query and refresh messages - Google Patents

Method and device for dispatching TCAM (telecommunication access method) query and refresh messages Download PDF

Info

Publication number
CN101986271A
CN101986271A CN 201010526538 CN201010526538A CN101986271A CN 101986271 A CN101986271 A CN 101986271A CN 201010526538 CN201010526538 CN 201010526538 CN 201010526538 A CN201010526538 A CN 201010526538A CN 101986271 A CN101986271 A CN 101986271A
Authority
CN
Grant status
Application
Patent type
Prior art keywords
query
message
refresh
queue
fpga
Prior art date
Application number
CN 201010526538
Other languages
Chinese (zh)
Other versions
CN101986271B (en )
Inventor
伍益荣
朱寅
李维民
Original Assignee
中兴通讯股份有限公司
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

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

The invention discloses a method and a device for dispatching TCAM (telecommunication access method) query and refresh messages, wherein the method comprises the following steps: an FPGA (field-programmable gate array) is used for placing a query message into a query message queue after receiving the query message; the FPGA is used for placing a refresh message into a refresh message queue after receiving the refresh message; and the FPGA is further used for respectively dispatching the query message in the query message queue and the refresh message in the refresh message queue. According to the invention, the problem of slow query response due to the situation that the refresh priority is higher than the query priority can be solved, functions of high-speed table search, forwarding and table item refreshing can be provided, fast forwarding can be realized, the throughput capacity of a network device can be upgraded and the performances of the network device can be further improved.

Description

调度TCAM查询和刷新消息的方法和装置 Method and apparatus for scheduling message and a refresh inquiry TCAM

技术领域 FIELD

[0001 ] 本发明涉及网络通信技术领域,尤其涉及一种调度TCAM (Ternary Content Addressable Memory,三态内容寻址存储器)查询和刷新消息的方法和装置。 [0001] The present invention relates to network communication technology, and particularly relates to a method and apparatus TCAM (Ternary Content Addressable Memory, ternary content addressable memory) refresh message and query scheduling.

背景技术 Background technique

[0002] TCAM主要用于网络设备报文转发时快速查找ACUAccessControl List,访问控制链表)、路由等表项。 [0002] TCAM packet network equipment is mainly used to quickly find ACUAccessControl List forwarding, access control list), routing table entries. 基于FPGA (Fi el (!Programmable Gate Array,现场可编程门阵列)的TCAM查找及刷新技术提供表项更新和查询调度,其中FPGA在处理器或者CPU和TCAM之间起到中转作用。在路由器和交换机等互连设备上,为了实现快速查表转发,TCAM的应用越来越普遍。 Based FPGA (Fi el (! Programmable Gate Array, a field programmable gate array) technology provides refresh TCAM lookup table entries and update and query scheduling, which acts between the transfer functions FPGA processor or CPU and TCAM. Router and the interconnect switches and other equipment, in order to achieve fast lookup table forward, TCAM is more and more common.

[0003] 随着宽带网络的迅速发展,多核处理器的应用也越来越广泛,多个处理器内核集合起来可以提供很高的处理能力,为了充分利用每个单核处理器的资源,转发时将报文的处理分散到各个处理器单元,单个处理器单元都需要对报文进行ACL、路由等表项的查找, 同时CPU需要对TCAM中的表项条目以及处理器外设中的表项内容进行刷新操作,多个处理器需要共同访问单一的TCAM外设,如何使多个处理器实现TCAM的快速查表转发和表项条目刷新,并且使得各处理器的性能均衡,这就是基于FPGA的TCAM查询及刷新装置需要解决的问题。 [0003] With the rapid development of broadband networks, applications of multi-core processors are increasingly being used, it can be a collection of multiple processor cores provide high processing capabilities, in order to fully utilize the resources of each single-core processor, forwarding when processing packets distributed to each processor unit, a single processor unit needs to find the ACL packets, routing entries, while the CPU requires table entry TCAM table entries and a processor in peripheral items refresh operation, multiple processors need to work together to access a single TCAM peripherals, how to make more processors to implement fast lookup table entries and forwarding TCAM entries refresh, and make balanced performance of each processor, which is based on FPGA device of TCAM inquiries and problems to be solved refreshed.

[0004] 如图1示出了相关技术基于FPGA的TCAM查询及刷新系统的结构框图,其包括处理器、CPU接口、FPGA、TCAM单元和SSRAM(串行静态随机存储器),SSRAM用于存放路由表。 [0004] FIG. 1 shows a block diagram of the related art and FPGA-based TCAM refresh inquiry system, comprising a processor, CPU interfaces, FPGA, TCAM cells and SSRAM (Static Random Access Memory serial), for storing routing SSRAM table. 该技术的FPGA将TCAM查询和CPU对表项的刷新请求放在同一个队列中,基于查询和刷新的优先级对队列中的请求进行调度,其中,CPU对表项的刷新优先级高于处理器对TCAM查询的优先级。 The FPGA will TCAM technology and the CPU queries the refresh request entries in the same queue, based on the query refresh priority request queue scheduling, wherein, the CPU refresh entry priority than the processing TCAM is a priority for the query. 这种分优先级调度的方法,使得查询和刷新的藕合度比较紧密,当有大量表项更新时,查询的响应速度将非常低,易造成网络中报文的阻塞,影响网络设备的吞吐能力。 This prioritized scheduling methods, making the query and refresh the degree of coupling more closely, when a large number of entry update, query response time will be very low, it could easily lead to the blocking network packets, affecting throughput of network equipment .

发明内容 SUMMARY

[0005] 本发明的主要目的在于提供一种调度TCAM查询和刷新消息的方法和装置(包括FPGA装置和网络设备),以至少解决上述因刷新优先级高于查询优先级引起的查询响应较慢的问题。 [0005] The main object of the present invention is to provide a method and apparatus for scheduling TCAM query and refresh message (including the FPGA devices and network equipment), a slow query response due to address at least the above-described refresh higher priority than the priority of the query caused The problem.

[0006] 根据本发明的一个方面,提供了一种调度TCAM查询和刷新消息的方法,包括: FPGA收到查询消息后,将该查询消息放入查询消息队列;FPGA收到刷新消息后,将该刷新消息放入刷新消息队列;FPGA分别对查询消息队列中的查询消息和刷新消息队列中的刷新消息进行调度。 [0006] In accordance with one aspect of the present invention, there is provided a method of scheduling and TCAM query refresh message comprising: FPGA receives the query message, the query message into the message queue query; the FPGA refresh message is received, the the refresh refresh message into the message queue; query message queries the FPGA each message queue and update the refresh message in the message queue scheduling.

[0007] 根据本发明的另一方面,提供了一种FPGA装置,包括:查询消息入队模块,用于收到查询消息后,将该查询消息放入查询消息队列;刷新消息入队模块,用于收到刷新消息后,将该刷新消息放入刷新消息队列;查询调度模块,用于对查询消息队列中的查询消息进行调度;刷新调度模块,用于对刷新消息队列中的刷新消息进行调度。 [0007] According to another aspect of the present invention, there is provided a FPGA apparatus, comprising: a query message enqueuing means for receiving the inquiry message, the query message into the message queue query; refresh module enqueues messages, after receiving the refresh message, the refresh message into the message queue refresh; query scheduling module, configured to query inquiry message in the message queue scheduling; refresh scheduling module, configured to refresh message queue refresh message scheduling. [0008] 根据本发明的又一方面,提供了一种网络设备,包括上述FPGA装置,该网络设备还包括:处理器,用于向FPGA装置发送查询消息,以及接收FPGA装置返回的查询结果,根据查询结果获取路由信息,根据路由信息进行报文转发;CPU,用于向FPGA装置发送刷新消息,该刷新消息携带有对调度三态内容寻址存储器TCAM进行刷新操作的指示信息。 [0008] According to another aspect of the present invention, there is provided a network device, comprising the above-described FPGA unit, the network apparatus further comprises: a processor configured to send a query message to the FPGA device, and receiving a query result returned FPGA device, the query result obtaining routing information, forwards the packet according to the routing information; the CPU, for transmitting a message to the FPGA refresh means a refresh message that carries scheduling ternary content addressable memory TCAM refresh operation instruction information.

[0009] 通过本发明,采用FPGA上设置两个分支,即查询处理分支和刷新处理分支,对两个分支采用单独进行处理,互不干扰,解决了因刷新优先级高于查询优先级引起的查询响应较慢的问题,能够提供高速的查表转发和表项刷新,实现快速转发,提升了网络设备的吞吐能力,进而提高网络设备的性能。 [0009] By the present invention, the use of the FPGA is provided two branches, i.e. branches query processing and the refresh processing branches, two branches for processing using a separate, non-interfering, due to solve the refresh higher priority than the priority of the query caused query slow response problems, can provide high-speed forwarding and lookup table entries refresh, fast forward, enhance the throughput of network equipment, and improve the performance of network devices.

附图说明 BRIEF DESCRIPTION

[0010] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。 [0010] The drawings described herein are provided for further understanding of the present invention, constitute a part of this application, exemplary embodiments of the present invention are used to explain the present invention without unduly limiting the present invention. 在附图中: In the drawings:

[0011] 图1是根据相关技术的基于FPGA的TCAM查询及刷新系统的结构框图; [0011] FIG. 1 is a related art FPGA-based TCAM query and refresh system block diagram;

[0012] 图2是根据本发明实施例1的调度TCAM查询和刷新消息的方法流程图; [0012] FIG. 2 is a schedule of Example 1 and TCAM query message flow diagram of the refresh method according to the present invention;

[0013] 图3是根据本发明实施例1的提供的缓存队列结构图; [0013] FIG. 3 is a configuration diagram of a queue buffer provided in Example 1 according to the present invention;

[0014] 图4是根据本发明实施例2的网络设备的结构框图; [0014] FIG. 4 is a block diagram of a network device according to an embodiment 2 of the present invention;

[0015] 图5是根据本发明实施例2的查询消息入队和出队调度的方法流程图; [0015] and FIG. 5 is a flowchart of a method of scheduling dequeue enqueue message in accordance with an embodiment of the present invention, the query is 2;

[0016] 图6是根据本发明实施例2的查询消息入队和出队调度的示意图; [0016] FIG. 6 is a schematic diagram of an embodiment of the present invention query message into 2 and dequeue scheduling;

[0017] 图7是根据本发明实施例2的TCAM查询表项的方法流程图; [0017] FIG. 7 is a flowchart of a method of lookup table entries TCAM Example 2 of the invention;

[0018] 图8是根据本发明实施例2的CPU对表项刷新的方法流程图; [0018] FIG 8 is a flowchart of a method according to the embodiment of the refresh entry CPU Example 2 of the present invention;

[0019] 图9是根据本发明实施例3的FPGA装置的结构框图; [0019] FIG. 9 is a block diagram showing a configuration of the FPGA device according to embodiment 3 of the present invention;

[0020] 图10是根据本发明实施例4的网络设备的结构框图。 [0020] FIG. 10 is a block diagram of a network device in Example 4 according to the embodiment of the present invention.

具体实施方式 detailed description

[0021] 下文中将参考附图并结合实施例来详细说明本发明。 [0021] Hereinafter with reference to the accompanying drawings and embodiments of the present invention will be described in detail. 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。 Incidentally, in the case of no conflict, embodiments and features of the embodiments of the present application can be combined with each other.

[0022] 实施例1 [0022] Example 1

[0023] 图2示出了根据本发明实施例的一种调度TCAM查询和刷新消息的方法流程图,该方法包括以下步骤: [0023] Figure 2 illustrates a method according to an embodiment of the present invention, scheduling queries and TCAM refresh message flow diagram of the method comprising the steps of:

[0024] 步骤S102,现场可编程门阵列FPGA收到查询消息后,将查询消息放入查询消息队列; [0024] In step S102, a field programmable gate array (FPGA) after receiving the query message, a query message into a query message queue;

[0025] 步骤S104,FPGA收到刷新消息后,将该刷新消息放入刷新消息队列; After [0025] Step S104, FPGA receive the refresh message, the refresh message into the message queue refresh;

[0026] 步骤S106,FPGA分别对查询消息队列中的查询消息和刷新消息队列中的刷新消 [0026] Step S106, FPGA respectively query message and the query message queue refresh message queue refresh consumption

息进行调度。 Scheduling information.

[0027] 上述FPGA对TCAM的查询和刷新消息采用分路进行存放,能够实现并行调度查询和刷新。 [0027] The FPGA and a refresh inquiry message TCAM using shunt for storage, scheduling parallel queries can be realized, and refresh.

[0028] 为了实现对于多核处理器时,各处理器TCAM查询的均衡处理,优选地,上述FPGA 上设置有多个查询消息队列,且查询消息队列与处理器一一对应;相应地,步骤S102包括: FPGA将查询消息放入查询消息携带的处理器编号对应的查询消息队列中;步骤S106中的FPGA对查询消息队列中的查询消息进行调度包括:FPGA采用轮询方式调度多个查询消息队列,对被调度的查询消息队列中的查询消息进行出队列处理。 [0028] In order to achieve respect to the multi-core processor, each processor TCAM equalization process queries, preferably provided with a plurality of said queues the FPGA query message, the message queue and the query correspond to the processor; Accordingly, the step S102 comprising: FPGA query message into a query message carrying the query processor number corresponding to the message queue; FPGA step S106 the query message queries the message queue scheduling including: scheduling polling of a plurality of FPGA query message queue , the query message is a query message queue scheduled performs the processing queue.

[0029] 所谓轮询调度指对每个查询消息队列按照一定的顺序依次调度,在一段时间内, 每个查询消息队列被调度的次数基本相同。 [0029] The so-called round robin scheduling means scheduling queue sequentially in a certain order for each query message, a period of time, the number of times each query message queue is scheduled substantially the same.

[0030] 优选地,FPGA对被调度的查询消息队列中的查询消息进行出队列处理包括:FPGA 采用先进先出(FIFO,First In First Out)的方式对被调度的查询消息队列中的查询消息进行出队列处理。 [0030] Preferably, FPGA scheduled query message queries the message queue is a queue process comprising: FPGA using FIFO (FIFO, First In First Out) manner query message scheduled query message queue carried out queue processing.

[0031] FPGA对刷新消息队列中的刷新消息进行调度包括:FPGA采用先进先出FIFO的方式对刷新消息队列中的刷新消息进行调度。 [0031] FPGA refresh message queue scheduling refresh message comprising: FPGA FIFO manner using FIFO queue refresh message refresh message scheduling.

[0032] 上述FPGA对查询消息队列中的查询消息进行调度之后,方法还包括:FPGA接收查询消息的查询结果,将查询结果返回给查询消息对应的处理器;处理器根据查询结果获取路由信息,根据路由信息转发报文。 [0032] After the above FPGA query message queries the message queue to be scheduled, the method further comprising: receiving a query FPGA query result message, the query results are returned to the query message corresponding to the processor; and a processor for routing information according to the query result, according to the routing information to forward packets.

[0033] 在实际应用中,一般当用户配置改变或者网络中链路状态发生变化时,TCAM表项条目才会进行刷新,而这些改变的频率较低,这就使得分优先级调度有点多余,所以本实施例没有为刷新调度和查询调度设置优先级,而是将二者分别存放在不同的队列中,对存放的队列分别进行调度。 [0033] In practice, when a general user configuration change or a change in the link status of the network, the entries in the TCAM table entry will be refreshed, and these changes lower frequencies, which makes the sub-bit redundant priority scheduling, Therefore, the present embodiment does not set a refresh priority scheduling and dispatching query, but the two were stored in different queues, queue scheduling stored separately.

[0034] 参见图3,为本发明实施例提供的缓存队列结构图,缓存队列包括多个查询消息队列和一个刷新消息队列,其中,sl-s5表示查询消息,ul-u5表示刷新消息,具体介绍如下: [0034] Referring to Figure 3, the buffer queue configuration diagram according to an embodiment of the present invention comprises a buffer queue of a plurality of message queues and a refresh inquiry message queue, wherein, sl-s5 represent the query message, ul-u5 refresh message indicates, specifically described as follows:

[0035] 查询消息队列为多个,对应每个处理器设置,一个查询消息队列用于缓存来自同一个处理器发出的查询消息,本发明实施例的查询消息可以包括:处理器编号、所查询表项类型、查询内容的大小以及查询内容。 [0035] The plurality of query message queue, provided corresponding to each processor, a query message queue for buffering from the same query message issued by the processor, the query message of the embodiment of the present invention may comprise: a processor number, the query entry type, size, and query query. 其中,处理器编号用于确定查询消息所入的队列号, 以及查询结果返回的处理器;表项类型标识是何种表项的查询,是ACL或者路由,还是其他表项;查询内容的大小表示是多少位的查询,比如144/256 ;查询内容是输入查找的条件, 比如查路由输入的内容是目的IP,ACL查找输入的内容是报文的IP五元组,该IP五元组包括源IP址,目的IP地址,源端口号,目的端口号,以及协议类型。 Wherein the query processor for determining a number of messages into the queue number, and a processor query results returned; entry identifies what type of query entries, or ACL is routed, or other entries; the size of the query indicate how many bits of inquiry, such as 144/256; query is looking for input conditions, such as content routing input check is the purpose of IP, ACL Find content is input IP quintuple of packets, including the IP quintuple source IP address, destination IP address, source port number, destination port number, and protocol type. 在将查询消息放入对应的查询消息队列时,可以为该查询消息设置消息编号,以标识该查询消息队列中查询消息进入的先后顺序。 When a query message into the message queue corresponding to the query, the query message may be provided for the message number to identify the query message into the queue in the order of the query message.

[0036] 刷新消息队列,多个处理器共用一个FIFO缓存队列,只设一个缓存队列是由于在实际应用中CPU对TCAM条目的刷新操作频率较低,一般是在用户配置更改的情况下才刷新表项。 [0036] Refresh message queue, a plurality of processors share a FIFO buffer queue, provided only a buffer queue due to the lower operating frequency of the CPU refresh TCAM entry in practical applications, it is common only to refresh the user in the case of configuration changes entries. 刷新消息的数据结构包括刷新消息编号、刷新条目的类型、刷新内容。 Refresh message data structure includes a refresh message number, the refresh entry type, to refresh the content.

[0037] 缓存队列的长度取2的整数次方,可以直接用查询消息编号或者刷新消息编号的低位找到消息在在缓存队列中的位置,比如缓存队列长度为32,为2的5次方,则取消息编号的二进制数低5位作为其在缓存队列中的位置,例如,消息编号为57,其二进制数为111001,低5位为11001,十进制为25,则该消息入缓存队列25的位置。 [0037] The buffer queue lengths are an integer power of 2, can be directly used to refresh the query message or message ID number in the lower position to find the message in the buffer queue, such as queue length of 32, 5 th power of 2, then take the message number of the low binary number five as its position in the buffer queue, for example, message number 57, which binary number 111001, the lower 5 bits 11001, a decimal 25, then the message to the buffer queue 25 position.

[0038] 上述方法可以应用于多核处理器或者多个处理器用FPGA中转进行TCAM查询及刷新处理中,由于其FPGA上设置两个分支,即查询处理分支和刷新处理分支,对两个分支采用单独进行处理,互不干扰,解决了因刷新优先级高于查询优先级引起的查询响应较慢的问题,能够提供高速的查表转发和表项刷新,实现快速转发,提升了网络设备的吞吐能力, 进而提高网络设备的性能。 [0038] The above method may be applied to a multi-core processor or multiple processors TCAM inquiries and transfer the FPGA in the refresh process, since the two branches thereof FPGA, i.e. refreshing and query processing branch processing branch, two branches with a separate processed without disturbing each other, to solve the query result refresh query a higher priority than the priority of the problem caused by slow response, we can provide high-speed forwarding and lookup table entries refresh, fast forward, enhance the throughput of network equipment and further improve the performance of network devices. [0039] 实施例2 [0039] Example 2

[0040] 本实施例提供了一种调度TCAM查询和刷新消息的方法,该方法以在图4所示的网络设备上实现为例进行说明,图4所示的网络设备包括如下功能单元: [0040] The present embodiment provides a method of scheduling and refresh TCAM query message, the method implemented on a network device shown in FIG. 4 as an example, the network apparatus shown in FIG. 4 includes the following functional units:

[0041] 1)处理器单元,处理器单元通过查询通道与FPGA相连,其内部包括多个处理器, [0041] 1) a processor unit, a processor unit connected to the FPGA by querying the channel, which includes therein a plurality of processors,

分别用处理器1、处理器2........处理器η表示,多个单核处理器或者多个处理器可以同 Respectively processor 1, processor 2 ........ processor η said plurality of single core processors or multiple processors may be the same

时发出对不同表项的TCAM查询请求。 TCAM is issued queries for different entries. 查询通道负责传递从各个处理器发出的查询请求以及从FPGA返回的查询结果,处理器根据该查询的结果,访问存储在处理器外设中的表项, 获取报文转发所需的信息,以实现报文的转发。 Interrogation channel is responsible for transmitting a query request sent from the respective processors and the query results returned from the FPGA, processor according to the results of the query, access table entries stored in a processor peripherals acquires packet forwarding information necessary to to achieve packet forwarding.

[0042] 2) CPU, CPU通过刷新通道与FPGA相连,CPU通过FPGA对TCAM中表项条目进行增加、删除、更新操作,同时对处理器外设中表项进行相应修改。 [0042] 2) CPU, CPU and FPGA connected by refreshing channel, the CPU TCAM table to be increased by the FPGA item entry, delete, update operation, while the peripheral processor table entry modified accordingly.

[0043] 3)处理器外设,包括SRAM (Static Random Access Memory,静态随机存储器)、 DRAM (Dynamic Random Access Memory,动态随机存储器)以及DDR(Double Data Rate,双倍数据传输速率存储器)等外设,上述处理器查询TCAM得到的结果是一个指向存储在外设中的具体表项地址的指针或者索引,根据该指针或索引处理器从外设中读取相应表项信息。 [0043] 3) processor peripherals, including SRAM (Static Random Access Memory, Static Random Access Memory), DRAM (Dynamic Random Access Memory, Dynamic Random Access Memory) and DDR (Double Data Rate, double data rate memory) endures provided, TCAM result of the query processor is obtained a pointer or an index specific item of the address stored in the peripheral, and read the corresponding entry in accordance with the information from the peripheral processor pointer or index. CPU对TCAM表项条目进行更新操作的同时,对存储在外设中相应表项进行相应的修改。 TCAM table entries while the CPU for updating operation entry, the corresponding storage peripherals modifications respective entries.

[0044] 4) FPGA, FPGA包括查询处理单元和刷新处理单元,其分别响应处理器和CPU发出的查询和刷新请求,查询处理和刷新处理独立运作,在CPU刷新TCAM表项条目的同时,处理器仍然可以进行TCAM查询。 [0044] 4) FPGA, FPGA includes a query processing unit and a refresh processing unit, respectively and the refresh request in response to a query sent by the processor and CPU, and the refresh processing query processing operate independently, while refreshing in the TCAM table entry's CPU, the processing you can still be TCAM query.

[0045] 其中,查询处理单元根据单核处理器的个数设置有多个FIFO查询缓存队列(对应于实施例1中的查询消息队列),每个处理器对应一个FIFO队列,队列之间采用轮询调度的原则。 [0045] wherein, query processing unit according to the number of single-core processor provided with a plurality of query cache FIFO queue (corresponding to Embodiment 1 of Example query message queue), a FIFO queue corresponding to each processor, using queues principles of round robin scheduling. 查询处理单元根据处理器编号将查询消息分发到对应的查询队列中。 Query processing unit according to the processor number corresponding to a query message to query distributed queue. 刷新处理单元的功能在于快速响应CPU的更新命令,对TCAM中表项进行更新。 Refresh function processing unit CPU is the rapid response to the update command, the TCAM table entries to be updated.

[0046] 5) TCAM单元,用于响应CPU通过FPGA发来的刷新消息,更新表项条目;以及用于响应处理器通过FPGA发来的查询消息,并返回查询结果。 [0046] 5) TCAM cell, in response sent by the CPU FPGA refresh message, update the entry table entry; and a processor for responding to a query sent by the FPGA message, and returns a query result.

[0047] 基于图4所示的网络设备,本实施例提供了一种查询消息入队和出队调度的方法,本实施例的FPGA的查询处理单元维护一个队列状态向量,队列状态向量是一个二进制的数值,相应位置1表示该队列有消息,例如:队列总数为8,队列状态向量00001001表示队列1和队列4中有消息需要出队,而其他6个队列中没有消息需要出队,参见图5,该方法包括以下步骤: [0047] Based on the network device shown in Figure 4, the present embodiment provides a method for the query message and dequeue scheduling, FPGA present embodiment query processing unit maintains a queue state vector, the state vector is a queue binary value corresponding to the position 1 represents the queue with a message, for example: queue a total of 8, the queue state vector 00001001 indicates that the queue 1 and queue 4 has message requires a team, while the other six queues no message needs to be dequeued, see 5, the method comprising the steps of:

[0048] 步骤S502,查询消息入队,具体为:查询处理单元接收到查询消息后,根据查询消息的处理器编号分别入队,对查询消息编号,根据入队的队列号将队列状态向量的相应位置1,表示该队列有消息需要出队; [0048] step S502, the query message into the team, specifically: query processing unit after receiving the query message, the query message processor number are enqueued, the query message number, queue number according to enqueue queue state vector 1 corresponding position, indicating that the queue has dequeue message needs;

[0049] 步骤S504,查询处理单元对各队列采用轮询的方式循环调度,每轮调度一个队列中的一个查询消息;具体如下: [0049] step S504, the query processing unit uses a cyclic manner for each queue polling scheduling, a scheduling round a query message queue; follows:

[0050] 步骤1,初始化调度队列号为η = 1,从第一个队列开始调度; [0050] Step 1, initialization scheduler queue number η = 1, starts from the first dispatch queue;

[0051] 步骤2,如果η大于队列总数,则设置η = 1,即最后一个队列执行了调度后,再从第一个队列开始循环调度;否则,本轮调度队列为η ; After [0051] Step 2, if [eta] is greater than the total number of queues, is set η = 1, i.e., a last queue scheduling is performed, the cycle starts again from the first dispatch queue; otherwise, [eta] is a round of scheduling queues;

[0052] 步骤3,判断队列状态向量的相应位是否置1,若置1,表示该队列有查询消息需要出队,则执行步骤4;否则,表示该队列没有查询消息需要调度,执行下一个队列的调度,即执行步骤5 ; [0052] Step 3 determines the corresponding bit queue state vector if set to 1, if set, indicates that the queue has the query message needs to be dequeued, step 4 is performed; otherwise, indicates that the queue does not query message to be scheduled, execution of the next dispatch queue, i.e., step 5;

[0053] 步骤4,队列内部的调度,根据查询消息编号顺序出队,如果该队列所有查询消息都被调度出去,将该队列对应的队列向量中的位清0。 [0053] 4, the interior of the queue scheduling step, according to the query message number sequence dequeue the queue if all query messages are scheduled out, the queue corresponding to the queue vector bit is cleared.

[0054] 步骤5,η = η+1,执行下一个队列的调度,跳到步骤3。 [0054] Step 5, η = η + 1, performs a next scheduling queue, go to step 3.

[0055] 参见图6所示的查询消息入队和出队调度的示意图,FPGA根据查询消息的处理器编号将查询消息放入对应的队列,采用轮询方式对各队列的查询消息进行出队处理。 [0055] Query message shown in schematic see FIG. 6 enqueue and dequeue scheduling, FPGA processors according to message ID query message into the queue corresponding query, the query message polling of each queue is dequeued deal with.

[0056] 基于图4所示的网络设备,图7示出了根据本实施例的一种TCAM表项查询方法的流程图,该方法包括以下步骤: [0056] Based on the network device shown in FIG. 4, FIG. 7 shows a flowchart of a method of TCAM table entry query embodiment of the present embodiment, the method comprises the steps of:

[0057] 步骤S702,处理器1、处理器2,......,处理器η根据需要发出查询消息,查询消 [0057] step S702, the processor 1, processor 2, ......, issued query message processor η necessary, query message

息中包括处理器编号、所查询表项的类型、查询内容的大小、查询内容,查询消息通过查询通道传送给FPGA ; Information includes a processor number, the type of entries query, content size, content query, the query message to query the channel FPGA;

[0058] 步骤S704,FPGA识别出查询消息,将查询消息按处理器编号入队; [0058] Step S704, FPGA identified query message ID query message by processor enqueuing;

[0059] FPGA的查询处理单元维护多个查询消息队列,每个处理器对应一个队列,根据处理器编号将查询消息入队,按照轮询的方式对多个查询消息队列进行调度,每个队列内部按FIFO的原则调度,进行TCAM查询,并将查询结果返回给请求的处理器。 [0059] FPGA query processing unit maintaining a plurality of query messages queues, each queue corresponds to one processor, the processor number query message according to enqueue the message queue of the plurality of queries to be scheduled in a polling manner, each queue according to the principle of internal FIFO scheduling, a TCAM query, and returns the query result to the requesting processor.

[0060] 步骤S706,查询处理单元将查询消息出队,进入TCAM查询,并将查询的结果按处理器编号返回给相应的处理器; [0060] step S706, the query processing unit a query message dequeued into the TCAM query, and the query results returned by the processor number to the corresponding processor;

[0061] 步骤S708,处理器根据TCAM查询的结果,即表项信息在处理器外设中的地址,读取表项的具体内容; [0061] step S708, the query processor TCAM according to the result, i.e., entries in the address of the peripheral processors, read specific content entries;

[0062] 步骤S710,处理器根据查询到表项的内容进行报文转发。 [0062] step S710, the processor forwards the packet according to the queried content entry.

[0063] 基于图4所示的网络设备,图8示出了根据本实施例的一种CPU对表项刷新的方法流程图,该方法包括以下步骤: [0063] Based on the network device shown in FIG. 4, FIG. 8 illustrates a method flow diagram of the refresh entry CPU according to an embodiment of the present embodiment, the method comprises the steps of:

[0064] 步骤S802,CPU发出表项刷新消息,刷新消息中包括表项的类型以及刷新的内容, 刷新消息通过刷新通道传送给FPGA ; [0064] Step S802, CPU refresh message sent entries, the refresh message comprising the content and type of entries refresh, refresh messages tunneled to the refresh FPGA;

[0065] 步骤S804,FPGA识别出刷新消息,将刷新消息入队; [0065] Step S804, FPGA identified refresh message, the refresh message enqueued;

[0066] 步骤S806,按照先进先出的原则将刷新消息调度出队; [0066] step S806, the FIFO principle according to the scheduled refresh message dequeued;

[0067] 步骤S808,TCAM收到刷新消息则将表项条目进行更新,包括增添、删除、修改操作; [0067] step S808, TCAM table entries will receive a message refresh entry is updated, including add, delete, modify operation;

[0068] 步骤S810,CPU对处理器外设表项中的条目进行更新,包括增添、删除、修改操作。 [0068] Step S810, CPU peripheral processor entry table entry updates, including adding, deleting, modifying operation.

[0069] 上述方法中的处理器用FPGA中转进行TCAM的查询访问,FPGA返回指向外设中表项地址的指针或者索引,处理器根据返回的结果,读取处理器外设中的表项;另外,CPU用FPGA中转进行TCAM的刷新操作(即TCAM表项条目的更新操作),同时更新处理器外设中的相应表项信息。 [0069] The method for query access processor with FPGA TCAM transit, FPGA peripheral returns a pointer or index table entry addresses, according to the result returned by the processor, the processor reads the table entry peripherals; another , for the CPU TCAM refresh operation (i.e., refresh operation TCAM table entry's), and update the corresponding entries in the peripheral processor transfer the FPGA.

[0070] 本实施例提供的调度方法支持查询和刷新操作的并行处理,在查询的同时可以进行表项条目的更新,表项条目更新的同时也可以进行查询。 [0070] scheduling method according to the present embodiment provides the support parallel processing queries and the refresh operation, the entry may be updated at the same time a query entry, the entry is also updated entry can be queried. 同时,上述方法采用在FPGA上设置与处理器个数对应的查询消息队列,能够解决相关技术只支持单个处理器的查询,对多个处理器或者多线程的并行查询以及多种表项的查询处理能力不足的问题,如果有多个单核处理器并行查询多种表项,查找的效率将比较高;且因采用轮询调度的方式,各个单核处理器的性能也比较均衡。 Meanwhile, the above method is provided using a corresponding number of processors in the FPGA query message queue, the related art can be solved only support a single query processor, multiple processors or multi-threaded parallel query and the query multiple entries the problem of insufficient processing capacity, if there are a plurality of single core processors plurality of parallel query entry, the search efficiency is relatively high; and scheduling polling by the way, the performance of each single-core processor is more balanced. [0071] 实施例3 [0071] Example 3

[0072] 图9示出了根据本发明实施例的一种FPGA装置的结构框图,该装置包括: [0072] FIG. 9 shows a block diagram of a structure of an FPGA apparatus according to an embodiment of the present invention, the apparatus comprising:

[0073] 查询消息入队模块92,用于收到查询消息后,将查询消息放入查询消息队列; [0073] Query module enqueues messages 92, after receiving the query message, a query message into a query message queue;

[0074] 刷新消息入队模块94,用于收到刷新消息后,将刷新消息放入刷新消息队列; [0074] Refresh message enqueuing module 94, after receiving the refresh message, the refresh message into the message queue refresh;

[0075] 查询调度模块96,与查询消息入队模块92相连,用于对查询消息队列中的查询消息进行调度; [0075] The query scheduler module 96, the query message into the module 92 is connected to the team, a query message to the query message queue scheduling;

[0076] 刷新调度模块98,与刷新消息入队模块94相连,用于对刷新消息队列中的刷新消息进行调度。 [0076] The scheduling module 98 refresh, the refresh message enqueuing module 94 is connected, for the refresh refresh message queue scheduling message.

[0077] 查询消息入队模块92包括:队列确定单元,用于接收到查询消息后,根据查询消息携带的处理器编号确定对应的查询消息队列;其中,FPGA装置上设置有多个查询消息队列,且查询消息队列与处理器一一对应;入队单元,用于将查询消息放入队列确定单元确定的查询消息队列中; [0077] Query module enqueues messages 92 comprising: queue determining unit configured to, after receiving the query message, the message carrying the query processor in accordance with the determined number corresponding query message queue; wherein a plurality of the FPGA device query message queue , and the query processor to-one correspondence with the message queue; enqueuing means for determining a query message in the queue unit determines query message queue;

[0078] 查询调度模块96包括:轮询调度单元,用于采用轮询方式调度多个查询消息队列;出队单元,用于对轮询调度单元调度的查询消息队列中的查询消息进行出队列处理。 [0078] The query scheduler module 96 comprises: a polling scheduling unit for scheduling polling of a plurality of query message queue; dequeuing means for polling query message to the query message queue scheduling unit performs the queue deal with.

[0079] 优选地,出队单元包括:出队子单元,用于采用先进先出FIFO的方式对上述轮询调度单元调度的查询消息队列中的查询消息进行出队列处理。 [0079] Preferably, the team unit comprises: dequeuing subunit, a query message for employing the above-described manner FIFO FIFO scheduling unit polling query message queue is a queue processing.

[0080] 刷新调度模块98包括:刷新调度单元,用于采用先进先出FIFO的方式对刷新消息队列中的刷新消息进行调度。 [0080] 98 Refresh scheduling module comprising: a scheduling refreshing means, for a manner of using FIFO FIFO queue refresh message refresh message scheduling.

[0081] 其中,上述查询消息包括:处理器编号、所查询表项类型、查询内容的大小以及查询内容。 [0081] wherein said query message comprises: a processor number, the entry type of query, and the size of the content query. 处理器编号用于确定查询消息所入的队列号,以及查询结果返回的处理器;表项类型标识是何种表项的查询,是ACL或者路由,还是其他表项;查询内容的大小表示是多少位的查询,比如144/256 ;查询内容是输入查找的条件,比如查路由输入的内容是目的IP,ACL 查找输入的内容是报文的IP五元组,该IP五元组包括源IP址,目的IP地址,源端口号,目的端口号,以及协议类型。 A query processor for determining a number of messages into the queue number, and a processor query results returned; entry identifies what type of query entries, or ACL is routed, or other entries; query representation is size how many queries, such as 144/256; query is looking for input conditions, such as content routing input check is the purpose of IP, ACL Find content is input IP quintuple of packets, the IP quintuple source IP address, destination IP address, source port number, destination port number, and protocol type. 在将查询消息放入对应的查询消息队列时,可以为该查询消息设置消息编号,以标识该查询消息队列中查询消息进入的先后顺序。 When a query message into the message queue corresponding to the query, the query message may be provided for the message number to identify the query message into the queue in the order of the query message.

[0082] 刷新消息队列,本实施例的多个处理器共用一个FIFO缓存队列,本实施例只设一个刷新消息队列是由于在实际应用中CPU对TCAM条目的刷新操作频率较低,一般是在用户配置更改的情况下才刷新表项。 [0082] Refresh message queue, according to the present embodiment a plurality of processors sharing a FIFO buffer queue, the present embodiment is provided only one refresh message queue due to the lower operating frequency of the CPU refresh TCAM entry in practical applications, generally in only refresh entries without the user's configuration changes. 刷新消息的数据结构包括刷新消息编号、刷新条目的类型、 刷新内容。 Refresh message data structure includes a refresh message number, the refresh entry type, to refresh the content.

[0083] 上述FPGA装置可以应用于多核处理器或者多个处理器用FPGA中转进行TCAM查询及刷新处理中,由于FPGA装置上设置两个分支,即查询处理分支和刷新处理分支,对两个分支采用单独进行处理,互不干扰,解决了因刷新优先级高于查询优先级引起的查询响应较慢的问题,能够提供高速的查表转发和表项刷新,实现快速转发,提升了网络设备的吞吐能力,进而提高网络设备的性能。 [0083] The apparatus may be applied to a multi-core processor FPGA or more processors and the refresh TCAM query processing with FPGA transit, since the two branches of the FPGA device, i.e., query processing branch and a refresh processing branches, two branches for use treated separately without disturbing each other, to solve the query result refresh query a higher priority than the priority of the problem caused by slow response, we can provide high-speed forwarding and lookup table entries refresh, fast forwarding to enhance the throughput of network equipment capacity, and to improve the performance of network devices.

[0084] 实施例4 [0084] Example 4

[0085] 图10示出了根据本发明实施例的一种网络设备的结构框图,该网络设备包括FPGA装置102、处理器104和CPU 106,FPGA装置102分别与处理器104和CPU 106相连, 其中,FPGA装置102可以按照实施例3中的方式实现,这里不再详述。 [0085] FIG. 10 shows a block diagram of a network device according to an embodiment of the present invention, the network device comprises a FPGA device 102, processor 104 and CPU 106, FPGA 102 is connected to processor means 104 and CPU 106, respectively, wherein, FPGA device 102 may manner as in Example 3 to achieve, not described in detail here.

[0086] 处理器104,用于向FPGA装置102发送查询消息,以及接收所述FPGA装置返回的 [0086] processor 104, configured to send a query message to the FPGA 102, the FPGA device and receiving the return

9查询结果,根据该查询结果获取路由信息,根据该路由信息进行报文转发; 9 results, routing information based on the query result, forward packets based on the routing information;

[0087] CPU 106,用于向FPGA装置102发送刷新消息,其中,该刷新消息携带有对调度TCAM进行刷新操作的指示信息。 [0087] CPU 106, configured to send the refresh message to the FPGA 102, wherein the refresh message carries scheduling TCAM refresh operation indication information.

[0088] 本实施例的网络设备还可以按照实施例2中图4所示的网络设备实现,具体功能与其相同,这里不再赘述。 [0088] The network apparatus according to the present embodiment may also be a network device according to embodiment 2 shown in FIG implemented embodiment, specific functions identical thereto is not repeated here.

[0089] 本实施例的网络设备通过在FPGA装置上设置两个分支,即查询处理分支和刷新处理分支,对两个分支采用单独进行处理,互不干扰,解决了因刷新优先级高于查询优先级引起的查询响应较慢的问题,能够提供高速的查表转发和表项刷新,实现快速转发,提升了网络设备的吞吐能力,进而提高网络设备的性能。 [0089] The network apparatus according to the present embodiment, by providing two branches in the FPGA device, i.e., query processing branch and a refresh processing branch, two branches are processed separately using, without disturbing each other, because the refresh addresses the higher priority than the query priority query caused by slow response problems, can provide high-speed forwarding and lookup table entries refresh, fast forward, enhance the throughput of network equipment, and improve the performance of network devices.

[0090] 与现有技术相比较,以上实施例提供的技术,通过对查询和刷新的分开处理,使得查询和刷新的处理互不干扰,提高了查询与刷新的效率;将不同处理器的查询消息分开入队,实现了并行查询,各个单核处理器的查询队列轮询调度,使得每个单核处理器的性能均衡。 [0090] Compared with the prior art, art provided above embodiment, the process by the query and update separate, so refresh processing queries and non-interfering, improve the efficiency of the refresh query; query the different processors separately enqueue message, to achieve a parallel query, the query processor core each single queue round-robin scheduling, such that performance of the equalizer of each single-core processor. 并能够快速响应处理器对TCAM的查询以及表项的刷新,实现快速转发,提高了网络设备吞吐能力,进而提升了网络设备的性能。 And the ability to respond quickly to queries and refresh the entry of the processor TCAM, fast forwarding and increase network throughput device, thereby enhancing the performance of network devices.

[0091] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。 [0091] Obviously, those skilled in the art should understand that the modules or steps of the present invention described above can be used general-purpose computing device, they can be integrated in a single computing device or distributed across multiple computing devices available on the Internet, optionally, they can be implemented with program codes executable by a computing device, so that, to be performed by a computing device stored in a storage means, and in some cases, may be different from this at step sequence shown or described, or they are made into integrated circuit modules, or by making them of a plurality of modules or steps in a single integrated circuit module. 这样,本发明不限制于任何特定的硬件和软件结合。 Thus, the present invention is not limited to any particular hardware and software combination.

[0092] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。 [0092] The above description is only preferred embodiments of the present invention, it is not intended to limit the invention to those skilled in the art, the present invention may have various changes and variations. 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 Any modification within the spirit and principle of the present invention, made, equivalent substitutions, improvements, etc., should be included within the scope of the present invention.

Claims (10)

  1. 一种调度三态内容寻址存储器TCAM查询和刷新消息的方法,其特征在于,包括:现场可编程门阵列FPGA收到查询消息后,将所述查询消息放入查询消息队列;所述FPGA收到刷新消息后,将所述刷新消息放入刷新消息队列;所述FPGA分别对所述查询消息队列中的查询消息和所述刷新消息队列中的刷新消息进行调度。 A method of addressing a memory refresh message queries and TCAM tristate scheduling content, characterized by comprising: a field programmable gate array (FPGA) after receiving the query message, the query message into the message queue query; the FPGA yield after the refresh message, the refresh message into the message queue refresh; the FPGA each query to the query message in the message queue and the refresh refresh message in the message queue scheduling.
  2. 2.根据权利要求1所述的方法,其特征在于,所述FPGA上设置有多个查询消息队列,且所述查询消息队列与处理器一一对应;所述FPGA将所述查询消息放入查询消息队列包括:所述FPGA将所述查询消息放入所述查询消息携带的处理器编号对应的查询消息队列中;所述FPGA对所述查询消息队列中的查询消息进行调度包括:所述FPGA采用轮询方式调度所述多个查询消息队列,对被调度的查询消息队列中的查询消息进行出队列处理。 2. The method according to claim 1, characterized in that a plurality of queries on the FPGA the message queue, the message queue and the query correspond to the processor; the FPGA into the query message query message queue includes: the FPGA query message into the message carrying the query processor number corresponding to the query message queue; FPGA said query message to the query message queue scheduling comprises: FPGA scheduling polling of queues of the plurality of query message, the query message is a query message queue scheduled performs the processing queue.
  3. 3.根据权利要求2所述的方法,其特征在于,所述FPGA对被调度的查询消息队列中的查询消息进行出队列处理包括:所述FPGA采用先进先出FIFO的方式对所述被调度的查询消息队列中的查询消息进行出队列处理。 The method according to claim 2, characterized in that said query message is scheduled FPGA query message queue is a queue processing comprising: a First In First Out FPGA FIFO manner the scheduling query message is a query message queue the queue processing.
  4. 4.根据权利要求1所述的方法,其特征在于,所述FPGA对所述刷新消息队列中的刷新消息进行调度包括:所述FPGA采用先进先出FIFO的方式对所述刷新消息队列中的刷新消息进行调度。 4. The method according to claim 1, wherein the FPGA to the refresh message queue scheduling refresh message comprising: the FIFO First In First Out FPGA manner the refresh message queue refresh message scheduling.
  5. 5.根据权利要求1-4任一项所述的方法,其特征在于,所述FPGA对所述查询消息队列中的查询消息进行调度之后,所述方法还包括:所述FPGA接收所述查询消息的查询结果,将所述查询结果返回给所述查询消息对应的处理器;所述处理器根据所述查询结果获取路由信息,根据所述路由信息转发报文。 5. The method of any one of claims 1 to 4, characterized in that, after the FPGA query message to the query message queue scheduling, the method further comprising: receiving the query the FPGA the results of the query message, the query results are returned to the message corresponding to the query processor; the processor for routing information according to the query result, according to the routing information to forward packets.
  6. 6. 一种现场可编程门阵列FPGA装置,其特征在于,包括:查询消息入队模块,用于收到查询消息后,将所述查询消息放入查询消息队列; 刷新消息入队模块,用于收到刷新消息后,将所述刷新消息放入刷新消息队列; 查询调度模块,用于对所述查询消息队列中的查询消息进行调度; 刷新调度模块,用于对所述刷新消息队列中的刷新消息进行调度。 A field programmable gate array (FPGA) device comprising: a query module enqueue message, after receiving a query message, the query message into the message queue query; refresh module enqueues messages, with after receiving the refresh message, the refresh message into the message queue refresh; query scheduler module configured to query the query message in the message queue scheduling; scheduling refreshing means for refreshing the message queue refresh message scheduling.
  7. 7.根据权利要求6所述的装置,其特征在于,所述查询消息入队模块包括:队列确定单元,用于接收到所述查询消息后,根据所述查询消息携带的处理器编号确定对应的查询消息队列;其中,所述FPGA装置上设置有多个查询消息队列,且所述查询消息队列与处理器一一对应;入队单元,用于将所述查询消息放入所述队列确定单元确定的所述查询消息队列中;所述查询调度模块包括:轮询调度单元,用于采用轮询方式调度所述多个查询消息队列;出队单元,用于对所述轮询调度单元调度的所述查询消息队列中的查询消息进行出队列处理。 7. The device according to claim 6, wherein the query message enqueuing module comprising: a queue determining unit, configured to, after receiving the query message according to the message carrying the query processor to determine a corresponding number query message queue; wherein said apparatus is provided with a plurality of FPGA query message queue, the message queue and the query correspond to the processor; enqueuing means for the query message into said queue determining unit determines the query message queue; query the scheduling module comprises: a polling scheduling unit for scheduling polling of said plurality of query message queue; dequeuing means, for polling the scheduling unit the query scheduling query message in the message queue of the queue processing performed.
  8. 8.根据权利要求7所述的装置,其特征在于,所述出队单元包括:出队子单元,用于采用先进先出FIFO的方式对所述轮询调度单元调度的所述查询消息队列中的查询消息进行出队列处理。 8. The apparatus according to claim 7, wherein said dequeuing means comprises: dequeuing subunit, a FIFO manner using FIFO to the polling scheduling unit query message queue in the query message queue processing.
  9. 9.根据权利要求6所述的装置,其特征在于,所述刷新调度模块包括:刷新调度单元,用于采用先进先出FIFO的方式对所述刷新消息队列中的刷新消息进行调度。 9. The apparatus according to claim 6, wherein the refresh scheduling module comprises: a scheduling refreshing means, for a manner of use of the FIFO FIFO queue refresh message refresh message scheduling.
  10. 10. 一种网络设备,其特征在于,包括权利要求6-9任一项所述的现场可编程门阵列FPGA装置,所述网络设备还包括:处理器,用于向所述FPGA装置发送查询消息,以及接收所述FPGA装置返回的查询结果,根据所述查询结果获取路由信息,根据所述路由信息进行报文转发;CPU,用于向所述FPGA装置发送刷新消息,所述刷新消息携带有对调度三态内容寻址存储器TCAM进行刷新操作的指示信息。 10. A network device, characterized by comprising a field according to claims 6-9 programmable gate array (FPGA) device, the network device further comprises: a processor, means for sending the query FPGA message, and receiving a query result returned by means of the FPGA, according to the query result obtaining routing information, forwards the packet according to the routing information; the CPU, configured to send the refresh message to the FPGA device, the refresh message carries there scheduling ternary content addressable memory TCAM refresh operation instruction information.
CN 201010526538 2010-10-29 2010-10-29 Method and device for dispatching TCAM (telecommunication access method) query and refresh messages CN101986271B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010526538 CN101986271B (en) 2010-10-29 2010-10-29 Method and device for dispatching TCAM (telecommunication access method) query and refresh messages

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN 201010526538 CN101986271B (en) 2010-10-29 2010-10-29 Method and device for dispatching TCAM (telecommunication access method) query and refresh messages
PCT/CN2011/080616 WO2012055319A1 (en) 2010-10-29 2011-10-10 Method and device for dispatching tcam (telecommunication access method) query and refreshing messages

Publications (2)

Publication Number Publication Date
CN101986271A true true CN101986271A (en) 2011-03-16
CN101986271B CN101986271B (en) 2014-11-05

Family

ID=43710620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010526538 CN101986271B (en) 2010-10-29 2010-10-29 Method and device for dispatching TCAM (telecommunication access method) query and refresh messages

Country Status (2)

Country Link
CN (1) CN101986271B (en)
WO (1) WO2012055319A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012055319A1 (en) * 2010-10-29 2012-05-03 中兴通讯股份有限公司 Method and device for dispatching tcam (telecommunication access method) query and refreshing messages
CN102662888A (en) * 2012-03-20 2012-09-12 大连梯耐德网络技术有限公司 System for controlling multi-user parallel operation of TCAM, and control method thereof
CN102880680A (en) * 2012-09-11 2013-01-16 大连梯耐德网络技术有限公司 Multi-user statistics method based on random access memory
CN103023782A (en) * 2012-11-22 2013-04-03 北京星网锐捷网络技术有限公司 Method and device for accessing ternary content addressable memory (TCAM)
CN104239337A (en) * 2013-06-19 2014-12-24 中兴通讯股份有限公司 TCAM (ternary content addressable memory) based table look-up processing method and device
WO2016101490A1 (en) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 Update processing method and device
WO2016101551A1 (en) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 Method and device for writing data into ternary content addressable memory
WO2016197607A1 (en) * 2015-06-12 2016-12-15 中兴通讯股份有限公司 Method and apparatus for realizing route lookup

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150278297A1 (en) * 2014-03-28 2015-10-01 Caradigm Usa Llc Methods, apparatuses and computer program products for providing a speed table for analytical models

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1631008A (en) * 2001-07-13 2005-06-22 艾利森公司 Method and apparatus for scheduling message processing
CN1655534A (en) * 2005-02-25 2005-08-17 清华大学 Double stack compatible router searching device supporting access control listing function on core routers
CN1798088A (en) * 2004-12-30 2006-07-05 中兴通讯股份有限公司 Dispatching method and equipment for searching and updating routes based on FPGA
CN101840374A (en) * 2010-04-28 2010-09-22 福建星网锐捷网络有限公司 Processing device, information searching system and information searching method
CN101866357A (en) * 2010-06-11 2010-10-20 福建星网锐捷网络有限公司 Method and device for updating items of three-state content addressing memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986271B (en) * 2010-10-29 2014-11-05 中兴通讯股份有限公司 Method and device for dispatching TCAM (telecommunication access method) query and refresh messages

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1631008A (en) * 2001-07-13 2005-06-22 艾利森公司 Method and apparatus for scheduling message processing
CN1798088A (en) * 2004-12-30 2006-07-05 中兴通讯股份有限公司 Dispatching method and equipment for searching and updating routes based on FPGA
CN1655534A (en) * 2005-02-25 2005-08-17 清华大学 Double stack compatible router searching device supporting access control listing function on core routers
CN101840374A (en) * 2010-04-28 2010-09-22 福建星网锐捷网络有限公司 Processing device, information searching system and information searching method
CN101866357A (en) * 2010-06-11 2010-10-20 福建星网锐捷网络有限公司 Method and device for updating items of three-state content addressing memory

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012055319A1 (en) * 2010-10-29 2012-05-03 中兴通讯股份有限公司 Method and device for dispatching tcam (telecommunication access method) query and refreshing messages
CN102662888A (en) * 2012-03-20 2012-09-12 大连梯耐德网络技术有限公司 System for controlling multi-user parallel operation of TCAM, and control method thereof
CN102880680A (en) * 2012-09-11 2013-01-16 大连梯耐德网络技术有限公司 Multi-user statistics method based on random access memory
CN102880680B (en) * 2012-09-11 2015-08-12 大连梯耐德网络技术有限公司 Multi-user statistical method based on random access memory
CN103023782A (en) * 2012-11-22 2013-04-03 北京星网锐捷网络技术有限公司 Method and device for accessing ternary content addressable memory (TCAM)
CN103023782B (en) * 2012-11-22 2016-05-04 北京星网锐捷网络技术有限公司 A method and apparatus for accessing a ternary content addressable memory
CN104239337A (en) * 2013-06-19 2014-12-24 中兴通讯股份有限公司 TCAM (ternary content addressable memory) based table look-up processing method and device
WO2016101490A1 (en) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 Update processing method and device
WO2016101551A1 (en) * 2014-12-26 2016-06-30 中兴通讯股份有限公司 Method and device for writing data into ternary content addressable memory
WO2016197607A1 (en) * 2015-06-12 2016-12-15 中兴通讯股份有限公司 Method and apparatus for realizing route lookup

Also Published As

Publication number Publication date Type
WO2012055319A1 (en) 2012-05-03 application
CN101986271B (en) 2014-11-05 grant

Similar Documents

Publication Publication Date Title
US6985431B1 (en) Network switch and components and method of operation
US20050259672A1 (en) Method to improve forwarding information base lookup performance
US20070294694A1 (en) Techniques for hardware-assisted multi-threaded processing
US7103744B2 (en) Binding a memory window to a queue pair
Alverson et al. Cray XC series network
US7516456B2 (en) Asymmetric heterogeneous multi-threaded operating system
US7757232B2 (en) Method and apparatus for implementing work request lists
US6769033B1 (en) Network processor processing complex and methods
US20050068913A1 (en) Metaspace: communication middleware for partially connected mobile ad hoc networks
US6460120B1 (en) Network processor, memory organization and methods
US20060168283A1 (en) Programmable network protocol handler architecture
US6842443B2 (en) Network switch using network processor and methods
US6804815B1 (en) Sequence control mechanism for enabling out of order context processing
US20110167192A1 (en) System and method for storing data in a virtualized high speed memory system
US20040037322A1 (en) Methods and apparatus for processing packets including distributing packets across multiple packet processing engines and gathering the processed packets from the processing engines
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
US6209020B1 (en) Distributed pipeline memory architecture for a computer system with even and odd pids
US20120033673A1 (en) Systems and methods for a para-vitualized driver in a multi-core virtual packet engine device
US20070286194A1 (en) Method and Device for Processing Data Packets
US20050235290A1 (en) Computing system and method for transparent, distributed communication between computing devices
US20050021558A1 (en) Network protocol off-load engine memory management
US7773630B2 (en) High performance memory based communications interface
US7047370B1 (en) Full access to memory interfaces via remote request
US20030115347A1 (en) Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US5761506A (en) Method and apparatus for handling cache misses in a computer system

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
C14 Grant of patent or utility model