WO2014075488A1 - 队列管理方法及装置 - Google Patents

队列管理方法及装置 Download PDF

Info

Publication number
WO2014075488A1
WO2014075488A1 PCT/CN2013/082483 CN2013082483W WO2014075488A1 WO 2014075488 A1 WO2014075488 A1 WO 2014075488A1 CN 2013082483 W CN2013082483 W CN 2013082483W WO 2014075488 A1 WO2014075488 A1 WO 2014075488A1
Authority
WO
WIPO (PCT)
Prior art keywords
queue
packets
dequeued
allowed
message
Prior art date
Application number
PCT/CN2013/082483
Other languages
English (en)
French (fr)
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
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Priority to CA2891915A priority Critical patent/CA2891915A1/en
Priority to EP13855693.1A priority patent/EP2922256A4/en
Priority to US14/443,498 priority patent/US20150304227A1/en
Priority to BR112015011338A priority patent/BR112015011338A2/pt
Priority to RU2015122481A priority patent/RU2641250C2/ru
Publication of WO2014075488A1 publication Critical patent/WO2014075488A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order

Definitions

  • the present invention relates to the field of communications, and in particular to a queue management method and apparatus.
  • BACKGROUND In the field of data communication, the quality of service for data products is getting higher and higher, so higher requirements are imposed on technical indicators of traffic management such as queue number, bandwidth, and step granularity.
  • the block diagram of the traffic management system is shown in Figure 1, including the line side component, the queue management component, and the cache management component.
  • the queue management component allocates buffer space for packet enqueue and schedules packet dequeue. If a queue has a packet and is authorized to be dequeued, the packet can be scheduled for dequeuing. Therefore, the queue management system needs to count the number of packets in each queue separately.
  • the current traffic management system needs to support more and more queues.
  • SRAM static random access memory
  • the statistics of the number of queues are generally stored in the external four.
  • Double Data Rate (QDR) SRAM Due to the increasing system bandwidth requirements, the clock interval for short packet processing is getting shorter and shorter. When the short packet processing clock interval is less than the clock period required for the QDR SRAM read delay, the number of packets in the QDR SRAM cannot be read out in time. As a result, it is impossible to judge in time whether it is possible to dequeue again, which in turn causes the short packet processing rate to fail to meet the system bandwidth requirement.
  • an effective solution has not yet been proposed.
  • a queue management method including: obtaining a packet estimation number of a queue that is currently dequeued, wherein the packet estimation number is stored in a queue management component, and the packet prediction number is used for Indicates the status of the number of packets currently in the queue; and determines the number of times the queue is allowed to be dequeued again according to the packet prediction.
  • the foregoing state includes one of the following: the number of the packets is equal to 0, and the number of the packets is equal to any one of 1 to N, and the number of the packets is greater than the number N, where the N is the current one in the queue.
  • the number of packets required for the number of packets is allowed to be dequeued.
  • the number of packets is stored outside the queue tube component.
  • the number of times that the queue is allowed to be dequeued again according to the above-mentioned packet estimation number includes: when the average number of the packets is greater than 1, it is determined that the queue is allowed to be dequeued again; if the average number of the packets is greater than 2, the judgment is performed.
  • the above queue is allowed to be dequeued twice again; and it is judged in sequence that if the above-mentioned message number is greater than the above N, it is determined that the queue is allowed to be dequeued N times again.
  • the method further includes: determining that the queue is allowed to be dequeued again, subtracting the number of the packets from the determined number of times the queue is allowed to be dequeued again, and re-determining the number according to the updated number of packets.
  • the status of the message summary indication Preferably, the method further includes: when the queue is queued, adding 1 to the message number, and adding 1 to the number of the message.
  • a queue management apparatus including: an obtaining module, configured to obtain a packet estimation number of a queue that is currently dequeued, wherein the packet estimation number is stored in a queue management component, The preamble of the packet is used to indicate the status of the number of packets currently in the queue; and the judging module is configured to determine, according to the preamble of the packet, the number of times the queue is allowed to be dequeued again.
  • the foregoing state includes one of the following: the number of the packets is equal to 0, and the number of the packets is equal to any one of 1 to N, and the number of the packets is greater than the number N, where the N is the current one in the queue.
  • the number of packets required for the number of packets is allowed to be dequeued.
  • the number of packets is stored outside the queue tube component.
  • the determining module includes: a first determining unit, configured to determine that the queue is allowed to be dequeued again if the number of the message is greater than one; and the second determining unit, when the number of the message is greater than two, It is determined that the queue is allowed to be dequeued twice again; and the Nth determining unit is configured to allow the queue to be dequeued N times again if the number of the above-mentioned packets is greater than N.
  • the queue management device further includes: a first processing module, configured to: when the queue is determined to be allowed to be dequeued again, subtract the number of the packets from the determined number of times the queue is allowed to be dequeued again, and according to The number of updated messages re-determines the status of the above-mentioned message summary indication.
  • the queue management apparatus further includes: a second processing module, configured to add 1 to the message number and 1 to add the number of the message to the queue. In the embodiment of the present invention, the number of the packets of the queue that is currently dequeued is obtained, and the packet is used in the queue management component, and the packet is used to indicate the status of the number of packets currently in the queue.
  • FIG. 1 is a block diagram of a flow management system according to the related art
  • FIG. 2 is a flow chart of a queue management method according to an embodiment of the present invention
  • FIG. 3 is a block diagram showing a structure of a queue management apparatus according to an embodiment of the present invention
  • 4 is a structural block diagram of a traffic management system using the above-described queue management apparatus according to an embodiment of the present invention
  • FIG. 1 is a block diagram of a flow management system according to the related art
  • FIG. 2 is a flow chart of a queue management method according to an embodiment of the present invention
  • FIG. 3 is a block diagram showing a structure of a queue management apparatus according to an embodiment of the present invention
  • 4 is a structural block diagram of a traffic management system using the above-described queue management apparatus according to an embodiment of the present invention
  • FIG. 5 is a schematic diagram showing a flow of enqueue processing when the queue management method is used according to an embodiment of the present invention.
  • BEST MODE FOR CARRYING OUT THE INVENTION will be described in detail with reference to the accompanying drawings. It should be noted that the embodiments in the present application and the features in the embodiments may be combined with each other without conflict.
  • This embodiment provides a queue management method. As shown in FIG. 2, the queue management method includes steps S202 to S204.
  • Step S202 Obtain a packet estimation number of the currently dequeued queue, where the packet prediction number is stored in the queue management component, and the packet prediction number is used to indicate the status of the current number of packets in the queue.
  • Step S204 Determine, according to the above-mentioned message estimation number, the number of times the queue is allowed to be dequeued again.
  • the number of the packets of the currently dequeued queue is obtained, and the packet is used in the queue management component, and the packet is used to indicate the status of the number of packets currently in the queue, and according to
  • the packet estimation number determines the number of times the queue is allowed to be dequeued again, and the number of packets can be quickly obtained to determine the number of times that the queue is allowed to be dequeued again, and the time required for judging whether to allow the team to be dequeued is shortened. , which improves the efficiency of queue dequeue (short packet processing) and helps improve the performance of the traffic management system.
  • the foregoing state includes one of the following: the packet average is equal to 0, and the packet average is equal to any one of 1 to N, and the foregoing packet is used.
  • the number of the packets is greater than the above-mentioned N, wherein the number of the packets required to obtain the number of packets currently in the queue is the number of times the queue is allowed to be dequeued, and the number of the packets is stored outside the queue tube component.
  • the state of the packet statistics may be stored in the form of bits.
  • 3'b010 indicates that there are 2 messages
  • 3'b011 indicates that there are 3 messages
  • 3'bl00 indicates that there are more than 3 messages
  • the value of N above can be obtained according to external storage.
  • the clock period required for the number of packets and the clock period of the queue demarcation (short packet processing) are determined.
  • the above N is to obtain the number of packets currently in the queue.
  • the required clock cycle allows the number of times the queue is dequeued.
  • determining, according to the packet average, the number of times the queue is allowed to be dequeued again includes: when the average number of the packets is greater than 1, If the number of the above-mentioned packets is greater than 2, it is determined that the queue is allowed to be dequeued twice again; and if the number of the packets is greater than N, it is determined that the queue is allowed to be re-issued. Team N times. That is, when the number of the above-mentioned packets is greater than 1, the team can be dequeued again.
  • the queue management method further includes: if the queue is allowed to be dequeued again, the number of the packets is subtracted from the determined queue. The number of times the queue is allowed to be dequeued again, and the status of the above-mentioned message summary indication is re-determined according to the number of updated messages.
  • the queue management method further includes: adding the number of the message to the queue, and adding the number of the message to the queue. 1.
  • the queue management device includes: an obtaining module 302, configured to obtain a packet estimation number of a queue that is currently dequeued, wherein the packet statistics are stored in a queue.
  • the management component is configured to indicate the status of the number of packets currently in the queue.
  • the determining module 304 is connected to the obtaining module 302, and is configured to determine, according to the packet prediction, the number of times the queue is allowed to be dequeued again.
  • the obtaining module 302 obtains the packet number of the queue that is currently dequeued, and the packet is stored in the queue management component, and the packet is used to indicate the current packet in the queue.
  • the number of states the determining module 304 determines, according to the packet estimation number, the number of times the queue is allowed to be dequeued again, so that the number of packets can be quickly obtained, and the number of times allowed to be dequeued again is determined in time, and the judgment is shortened.
  • the determining module 304 includes: a first determining unit, configured to determine that the queue is greater than one if the number of packets is greater than one If the number of the above-mentioned packets is greater than 2, the second judging unit judges that the queue is allowed to be dequeued twice again; and the Nth judging unit sets the number of the above-mentioned packets to be greater than N, and judges Out of the above queue allows to dequeue N times again.
  • the queue management apparatus further includes: a first processing module 306, configured to determine that the queue is allowed to be dequeued again. Next, the number of the above-mentioned messages is subtracted from the determined number of times the queue is allowed to be dequeued again, and according to the update The number of messages is re-determined by the status of the above-mentioned message estimates.
  • the packet is queued into the queue as an example.
  • the following scenario is taken as an example.
  • the short packet processing interval is 8 clock cycles
  • the QDR SRAM read latency is 8 clock cycles
  • the internal SRAM is specified.
  • the flow of the message is as follows: The status of the packet is greater than 1, and is equal to 1 and equal to 0. Therefore, the process of the queue management method is described in detail. Steps: Step S502: Determine whether the enqueue operation is enabled, if yes, go to step S504, if no, continue to step S502.
  • Step S504 Queue inbound to read the QDR SRAM external count (corresponding to the number of the above-mentioned messages) and the SRAM internal count (corresponding to the above-mentioned message summary state), for example, the SRAM stores an internal count of 2 bits, where 2'bOO Indicates no message, 2'bOl indicates that there is a message, and 2'MO indicates that there is more than one message.
  • Step S506 After, for example, one clock cycle, the internal count is read, and the internal count is incremented by 1, that is, the original value is 2'bOO updated to 2'bl0, and the original value is 2'bOl updated to 2'bl0, the original value is 2'blO holds 2'bl0 and stores the latest internal count value in SRAM.
  • Step S508 After, for example, M clock cycles (the clock cycle is determined according to the external QDR SRAM), the external count is read, the external count is incremented by 1, and the latest external count value is stored in the QDR SRAM, and the process proceeds to the step.
  • the process includes the following step: Step S602: determining whether the dequeue operation is enabled, if yes, proceeding to step S604, and if no, proceeding to step S602.
  • Step S604 The queue dequeue reads the QDR SRAM external count (corresponding to the number of the above-mentioned messages) and the SRAM internal count (corresponding to the above-mentioned message summary state), for example, the SRAM stores an internal count of 2 bits, where 2' B00 means no message, 2'b01 means there is a message, 2'MO means there is more than one message.
  • Step S606 After 1 clock cycle, for example, the internal count is read out.
  • Step S608 It is determined whether the internal count of the SRAM is greater than 1. If it is greater than 1, step S612 is performed. If it is not greater than 1, step S610 is performed.
  • Step S610 The queue does not satisfy the re-departure condition, and the dequeue is terminated.
  • Step S612 The queue satisfies the re-departure condition, and may be added to the queue list again.
  • Step S614 After obtaining the external count of the QDR SRAM, the external count is decremented by 1, and the internal count is determined according to the updated external count (equivalent to the above report) Text state)).
  • Step S616 The SRAM internal count and the QDR SRAM external count are updated, and the flow goes to step S602.
  • the foregoing preferred embodiment achieves the following technical effects: Through the foregoing steps, by obtaining the packet estimation number of the queue that is currently dequeued, the packet estimation number is stored in the queue management component, and the report is The number of the message is used to indicate the status of the number of packets currently in the queue, and the number of times the queue is allowed to be dequeued again is determined according to the number of the packets, so that the number of packets can be quickly obtained, and the message can be quickly determined.
  • modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed over a network composed of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供了一种队列管理方法及装置,其中,该方法包括:获取当前出队的队列的报文概数,其中,上述报文概数存储在队列管理组件内部,上述报文概数用于指示上述队列中当前有的报文数目的状态;根据上述报文概数判断上述队列允许再次出队的次数。本发明解决了相关技术中短包处理速率达不到系统带宽要求的问题,从而提高了队列出队(短包处理)的效率,有助于提高流量管理系统的性能。

Description

队列管理方法及装置 技术领域 本发明涉及通信领域, 具体而言, 涉及一种队列管理方法及装置。 背景技术 在数据通信领域, 对数据产品的服务质量越来越高, 因此对支持的队列数、 带宽、 步进粒度等流量管理的技术指标提出了更高的要求。 流量管理系统的结构框图如图 1所示, 包括线侧组件, 队列管理组件和缓存管理 组件。 队列管理组件为报文入队分配缓存空间, 对报文出队进行调度。 如果某个队列有 报文并且授权出队时, 报文可进行出队调度, 因此队列管理系统需要对每个队列的报 文数分别进行统计。 当前流量管理系统需要支持的队列数越来越多, 为了节省片内静 态随机存取存储器 (Static Random Access Memory, 简称为 SRAM) 资源, 一般会将 各个队列报文数的统计结果存储在外部四倍数据速率(Quad Data Rate, 简称为 QDR) SRAM中。 由于系统带宽要求越来越高, 短包处理的时钟间隔越来越短, 当短包处理 时钟间隔小于 QDR SRAM读延迟所需的时钟周期时, QDR SRAM中的报文数统计无 法及时读出, 导致无法及时地判断出是否可以再次出队, 进而导致短包处理速率达不 到系统带宽要求的问题。 针对相关技术中上述至少之一的问题, 目前尚未提出有效的解决方案。 发明内容 本发明实施例提供了一种队列管理方法及装置, 以至少解决相关技术中短包处理 速率达不到系统带宽要求的问题。 根据本发明实施例的一个方面, 提供了一种队列管理方法, 其包括: 获取当前出 队的队列的报文概数, 其中, 上述报文概数存储在队列管理组件内部, 上述报文概数 用于指示上述队列中当前有的报文数目的状态; 根据上述报文概数判断上述队列允许 再次出队的次数。 优选地, 上述状态包括以下之一: 上述报文概数等于 0、 上述报文概数等于 1至 N中任意一个数, 上述报文概数大于上述 N, 其中, 上述 N为获取上述队列中当前有 的报文数目所需的时钟周期允许上述队列出队的次数, 上述报文数目存储在上述队列 管组件的外部。 优选地, 根据上述报文概数判断上述队列允许再次出队的次数包括: 上述报文概 数大于 1的情况下, 判断出上述队列允许再次出队一次; 上述报文概数大于 2的情况 下, 判断出上述队列允许再次出队二次; 依次判断, 上述报文概数大于上述 N的情况 下, 判断出上述队列允许再次出队 N次。 优选地, 上述方法还包括: 判断出上述队列允许再次出队的情况下, 将上述报文 数目减去判断出的上述队列允许再次出队的次数, 并根据更新后的报文数目重新确定 上述报文概数指示的状态。 优选地, 上述方法还包括: 上述队列入队的情况下, 将上述报文概数加上 1, 将 上述报文数目加上 1。 根据本发明实施例的另一方面, 提供了一种队列管理装置, 其包括: 获取模块, 设置为获取当前出队的队列的报文概数, 其中, 上述报文概数存储在队列管理组件内 部, 上述报文概数用于指示上述队列中当前有的报文数目的状态; 判断模块, 设置为 根据上述报文概数判断上述队列允许再次出队的次数。 优选地, 上述状态包括以下之一: 上述报文概数等于 0、 上述报文概数等于 1至 N中任意一个数, 上述报文概数大于上述 N, 其中, 上述 N为获取上述队列中当前有 的报文数目所需的时钟周期允许上述队列出队的次数, 上述报文数目存储在上述队列 管组件的外部。 优选地, 上述判断模块包括: 第一判断单元, 设置为上述报文概数大于 1的情况 下, 判断出上述队列允许再次出队一次; 第二判断单元, 上述报文概数大于 2的情况 下, 判断出上述队列允许再次出队二次; 第 N判断单元, 设置为上述报文概数大于 N 的情况下, 判断出上述队列允许再次出队 N次。 优选地, 上述队列管理装置还包括: 第一处理模块, 设置为判断出上述队列允许 再次出队的情况下, 将上述报文数目减去判断出的上述队列允许再次出队的次数, 并 根据更新后的报文数目重新确定上述报文概数指示的状态。 优选地, 上述队列管理装置还包括: 第二处理模块, 设置为上述队列入队的情况 下, 将上述报文概数加上 1, 将上述报文数目加上 1。 在本发明实施例中, 通过获取当前出队的队列的报文概数, 该报文概数存储在队 列管理组件内部, 所述报文概数用于指示所述队列中当前有的报文数目的状态, 并根 据所述报文概数判断所述队列允许再次出队的次数,实现了可以快速地获取报文概数, 来及时地判断出允许再次出队的次数, 缩短了判断是否允许再次出队所需的时间, 从 而提高了队列出队 (短包处理) 的效率, 有助于提高流量管理系统的性能。 附图说明 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图 中- 图 1是根据相关技术的流量管理系统的结构框图; 图 2是根据本发明实施例的队列管理方法流程图; 图 3是根据本发明实施例的队列管理装置的结构框图; 图 4是根据本发明实施例的使用上述队列管理装置的流量管理系统的结构框图; 图 5是根据本发明实施例的使用上述队列管理方法时入队处理流程的示意图; 图 6是根据本发明实施例的使用上述队列管理方法时出队处理流程的示意。 具体实施方式 下文中将参考附图并结合实施例来详细说明本发明。 需要说明的是, 在不冲突的 情况下, 本申请中的实施例及实施例中的特征可以相互组合。 本实施例提供了一种队列管理方法, 如图 2所示, 该队列管理方法包括步骤 S202 至步骤 S204。 步骤 S202: 获取当前出队的队列的报文概数, 其中, 上述报文概数存储在队列管 理组件内部, 上述报文概数用于指示上述队列中当前有的报文数目的状态。 步骤 S204: 根据上述报文概数判断上述队列允许再次出队的次数。 通过上述步骤, 通过获取当前出队的队列的报文概数, 该报文概数存储在队列管 理组件内部, 所述报文概数用于指示所述队列中当前有的报文数目的状态, 并根据所 述报文概数判断所述队列允许再次出队的次数, 实现了可以快速地获取报文概数, 来 及时地判断出允许再次出队的次数, 缩短了判断是否允许再次出队所需的时间, 从而 提高了队列出队 (短包处理) 的效率, 有助于提高流量管理系统的性能。 为了减少队列管理组件片内的存储资源的占用, 在本优选实施例中, 上述状态包 括以下之一: 上述报文概数等于 0、 上述报文概数等于 1至 N中任意一个数, 上述报 文概数大于上述 N, 其中, 上述 N为获取上述队列中当前有的报文数目所需的时钟周 期允许上述队列出队的次数, 上述报文数目存储在上述队列管组件的外部。 为了减少 存储资源的占用, 上述报文概数的状态可以采用 bits的形式来存储,例如, 当 N=l时, 需要存储报文概数的状态包括以下之一: 报文概数 =0, 报文概数 =1, 报文概数>1, 因 此可以采用 2bit的形式存储, 2'b00来表示无报文 (报文概数 =0), 以 2'b01来表示有 1个报文 (报文概数 =1 ), 以 2'blO来表示有 1个以上报文 (报文概数 >1 ); 而当 N=2 时, 需要存储报文概数的状态包括以下之一: 报文概数 =0, 报文概数 =1, 报文概数 =2, 报文概数>2, 因此可以采用 2bit的形式存储, 2'b00来表示无报文, 以 2'b01来表示有 1个报文, 以 2'MO来表示有 2个报文, 以 2'bll来表示有 2个以上的报文; 而当 N=3 时报文概数的状态包括以下之一: 报文概数 =0, 报文概数 =1, 报文概数 =2, 报文概数 =3, 报文概数>3, 此时可以采用 3bit的形式存储, 3'b000来表示无报文, 以 3'b001 来表示有 1个报文,以 3'b010来表示有 2个报文,以 3'b011来表示有 3个报文,以 3'bl00 来表示有 3个以上的报文; 上述 N的取值可以根据获取外部存储的报文数目所需的时 钟周期和队列出队 (短包处理) 所需间隔的时钟周期来确定, 为了保证队列出队的效 率, 上述 N为获取上述队列中当前有的报文数目所需的时钟周期允许上述队列出队的 次数。 为了及时地、 快速地判断出队列可以再次出队的次数, 在本优选实施例中, 根据 上述报文概数判断上述队列允许再次出队的次数包括:上述报文概数大于 1的情况下, 判断出上述队列允许再次出队一次; 上述报文概数大于 2的情况下, 判断出上述队列 允许再次出队二次; 依次判断, 上述报文概数大于 N的情况下, 判断出上述队列允许 再次出队 N次。 即上述报文概数大于 1时, 可以再次出队一次, 上述报文概数大于 2 时, 可以再次出队 2次, 一次类推, 当上述报文概数大于 N时, 则可以再次出队 N, 避免了根据外部存储的报文数目来判断是否可以再次出队, 从而缩短了判断再次出队 所需的时间。 为了可以准确地判断出是否可以再次出队, 在本优选实施例中, 上述队列管理方 法还包括: 判断出上述队列允许再次出队的情况下, 将上述报文数目减去判断出的上 述队列允许再次出队的次数, 并根据更新后的报文数目重新确定上述报文概数指示的 状态。 即当获取报文数目时, 将获取的报文数目减去上述判断出的允许出队次数, 例 如, 判断出的允许出队的次数 2, 则将获取的报文数目减去 2, 并根据更新后的报文数 目重新确定上述报文概数指示的状态, 以保证上述报文概数和上述报文数目与实际有 的报文数目相一致, 并保存更新后的报文概数状态和报文数目。 为了可以准确地判断出是否可以再次出队, 在本优选实施例中, 上述队列管理方 法还包括: 上述队列入队的情况下, 将上述报文概数加上 1, 将上述报文数目加上 1。 即每入队一次, 更新上述报文概数和上述报文数目, 以保证上述报文概数和上述报文 数目与当前实际有的报文数目相一致, 并保存更新后的报文概数和报文数目。 本优选实施例提供了一种队列管理装置, 如图 3所示, 该队列管理装置包括: 获 取模块 302, 设置为获取当前出队的队列的报文概数, 其中, 上述报文概数存储在队 列管理组件内部, 上述报文概数用于指示上述队列中当前有的报文数目的状态; 判断 模块 304,连接至获取模块 302, 设置为根据上述报文概数判断上述队列允许再次出队 的次数。 在上述优选实施例中, 通过获取模块 302获取当前出队的队列的报文概数, 该报 文概数存储在队列管理组件内部, 所述报文概数用于指示所述队列中当前有的报文数 目的状态, 判断模块 304根据所述报文概数判断所述队列允许再次出队的次数, 实现 了可以快速地获取报文概数, 来及时地判断出允许再次出队的次数, 缩短了判断是否 允许再次出队所需的时间, 从而提高了队列出队 (短包处理) 的效率, 有助于提高流 量管理系统的性能。 为了及时地、 快速地判断出队列可以再次出队的次数, 在本优选实施例中, 上述 判断模块 304包括: 第一判断单元, 设置为上述报文概数大于 1的情况下, 判断出上 述队列允许再次出队一次; 第二判断单元, 上述报文概数大于 2的情况下, 判断出上 述队列允许再次出队二次; 第 N判断单元, 设置为上述报文概数大于 N的情况下, 判 断出上述队列允许再次出队 N次。 为了可以准确地判断出是否可以再次出队, 在本优选实施例中, 如图 3所示, 上 述队列管理装置还包括: 第一处理模块 306, 设置为判断出上述队列允许再次出队的 情况下, 将上述报文数目减去判断出的上述队列允许再次出队的次数, 并根据更新后 的报文数目重新确定上述报文概数指示的状态。 第二处理模块 308, 设置为上述队列 入队的情况下, 将上述报文概数加上 1, 将上述报文数目加上 1。 以下结合附图对上述各个优选实施例进行详细地描述。 在本优选实施例中, 如图 4所示, 可以在队列管理组件片内增加一个 SRAM来存 储报文概数(或称为内部计数), 该报文概数用于指示此次报文出队后该队列是否还有 报文可以出队, 由于上述报文概数存储在片内, 获取上述报文概数所需的时间较短, 可以在上次报文出队后 1〜2个时钟周期以后判断出该队列是否还需要进行出队调度, 相比之前直接读取外部 QDR SRAM的报文数目 (或称为外部计数)需要 N〜N+1 (通 常 N=8 ) 个时钟周期才能给出判断结果, 短包处理间隔大大缩短。 在本优选实施例中, 以队列管理中包入队为例, 以如下场景为例, 短包处理间隔 为 8个时钟周期, QDR SRAM读延迟为 8个时钟周期, 内部 SRAM指定值(上述 N) 为 1, 报文概数状态有大于 1、 等于 1和等于 0三个不同状态, 因此需要用 2bits来表 示, 来详细描述上述队列管理方法的处理流程, 如图 5所示, 该流程包括如下步骤: 步骤 S502: 判断是否接收到入队操作使能, 若是, 则转至步骤 S504, 若否, 则 继续步骤 S502。 步骤 S504:队列入队读取 QDR SRAM外部计数(相当于上述报文数目)和 SRAM 内部计数 (相当于上述报文概数状态), 例如, 该 SRAM中存储 2bits的内部计数, 其 中, 2'bOO表示无报文, 2'bOl表示有一个报文, 2'MO表示有一个以上报文。 步骤 S506: 例如 1个时钟周期后, 读出内部计数, 将该内部计数加 1, 即原值是 2'bOO更新为 2'bl0, 原值为 2'bOl更新为 2'bl0, 原值为 2'blO的保持 2'bl0, 并将最 新的内部计数值存入 SRAM中。 步骤 S508: 例如 M个时钟周期 (该时钟周期根据外部 QDR SRAM而定)后, 读 出外部计数, 将该外部计数加 1, 将最新的外部计数值存入 QDR SRAM中, 转至步骤
在本优选实施例中, 以队列管理中包出队为例, 以如下场景为例, 短包处理间隔 为 8个时钟周期, QDR SRAM读延迟为 8个时钟周期, 内部 SRAM指定值(上述 N) 为 1, 报文概数状态有大于 1、 等于 1和等于 0三个不同状态, 因此需要用 2bits来表 示, 来详细描述上述队列管理方法的处理流程, 如图 6所示, 该流程包括如下步骤: 步骤 S602: 判断是否收到出队操作使能, 若是, 则转至步骤 S604, 若否, 则继 续步骤 S602。 步骤 S604:队列出队读取 QDR SRAM外部计数(相当于上述报文数目)和 SRAM 内部计数 (相当于上述报文概数状态), 例如, 该 SRAM中存储 2bits的内部计数, 其 中, 2'b00表示无报文, 2'b01表示有一个报文, 2'MO表示有一个以上报文。 步骤 S606: 例如 1个时钟周期后, 读出内部计数; 步骤 S608: 判断 SRAM内部计数是否大于 1, 如大于 1, 则执行步骤 S612, 如不 大于 1, 则执行步骤 S610。 步骤 S610: 该队列不满足再次出队条件, 终止出队。 步骤 S612: 该队列满足再次出队条件, 可再次添加进出队链表; 步骤 S614: 得到 QDR SRAM外部计数之后, 将该外部计数减 1, 并根据更新后 的外部计数确定内部计数 (相当于上述报文概数状态)。 步骤 S616: 更新 SRAM内部计数和 QDR SRAM外部计数, 转至步骤 S602。 从以上的描述中, 可以看出, 上述优选实施例实现了如下技术效果: 通过上述步 骤, 通过获取当前出队的队列的报文概数, 该报文概数存储在队列管理组件内部, 所 述报文概数用于指示所述队列中当前有的报文数目的状态, 并根据所述报文概数判断 所述队列允许再次出队的次数, 实现了可以快速地获取报文概数, 来及时地判断出允 许再次出队的次数, 缩短了判断是否允许再次出队所需的时间, 从而提高了队列出队 (短包处理) 的效率, 有助于提高流量管理系统的性能。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所 组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现, 从而, 可以 将它们存储在存储装置中由计算装置来执行, 并且在某些情况下, 可以以不同于此处 的顺序执行所示出或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将 它们中的多个模块或步骤制作成单个集成电路模块来实现。 这样, 本发明不限制于任 何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的 任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。

Claims

权 利 要 求 书
1. 一种队列管理方法, 包括:
获取当前出队的队列的报文概数, 其中, 所述报文概数存储在队列管理组 件内部, 所述报文概数用于指示所述队列中当前有的报文数目的状态;
根据所述报文概数判断所述队列允许再次出队的次数。
2. 根据权利要求 1所述的方法, 其中, 所述状态包括以下之一:
所述报文概数等于 0、 所述报文概数等于 1至 N中任意一个数, 所述报文 概数大于 N, 其中, N为获取所述队列中当前有的报文数目所需的时钟周期允 许所述队列出队的次数, 所述报文数目存储在所述队列管组件的外部。
3. 根据权利要求 2所述的方法, 其中, 根据所述报文概数判断所述队列允许再次 出队的次数包括:
所述报文概数大于 1的情况下, 判断出所述队列允许再次出队一次; 所述报文概数大于 2的情况下, 判断出所述队列允许再次出队二次; 依次判断, 所述报文概数大于 N的情况下, 判断出所述队列允许再次出队 N次。
4. 根据权利要求 2或 3所述的方法, 其中, 所述方法还包括:
判断出所述队列允许再次出队的情况下, 将所述报文数目减去判断出的所 述队列允许再次出队的次数, 并根据更新后的报文数目重新确定所述报文概数 指示的状态。
5. 根据权利要求 2或 3所述的方法, 其中, 所述方法还包括: 所述队列入队的情况下, 将所述报文概数加上 1, 将所述报文数目加上 1。
6. 一种队列管理装置, 包括:
获取模块, 设置为获取当前出队的队列的报文概数, 其中, 所述报文概数 存储在队列管理组件内部, 所述报文概数用于指示所述队列中当前有的报文数 目的状态;
判断模块, 设置为根据所述报文概数判断所述队列允许再次出队的次数。 根据权利要求 6所述的装置, 其中, 所述状态包括以下之一:
所述报文概数等于 0、 所述报文概数等于 1至 N中任意一个数, 所述报文 概数大于 N, 其中, N为获取所述队列中当前有的报文数目所需的时钟周期允 许所述队列出队的次数, 所述报文数目存储在所述队列管组件的外部。 根据权利要求 7所述的装置, 其中, 所述判断模块包括:
第一判断单元, 设置为所述报文概数大于 1的情况下, 判断出所述队列允 许再次出队一次;
第二判断单元, 所述报文概数大于 2的情况下, 判断出所述队列允许再次 出队二次;
第 N判断单元,设置为所述报文概数大于 N的情况下,判断出所述队列允 许再次出队 N次。 根据权利要求 7或 8所述的装置, 其中, 还包括:
第一处理模块, 设置为判断出所述队列允许再次出队的情况下, 将所述报 文数目减去判断出的所述队列允许再次出队的次数, 并根据更新后的报文数目 重新确定所述报文概数指示的状态。 根据权利要求 7或 8所述的装置, 其中, 还包括:
第二处理模块, 设置为所述队列入队的情况下, 将所述报文概数加上 1, 将所述报文数目加上 1。
PCT/CN2013/082483 2012-11-19 2013-08-28 队列管理方法及装置 WO2014075488A1 (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CA2891915A CA2891915A1 (en) 2012-11-19 2013-08-28 Queue management method and apparatus
EP13855693.1A EP2922256A4 (en) 2012-11-19 2013-08-28 METHOD AND DEVICE FOR MANAGING QUEUE TIMES
US14/443,498 US20150304227A1 (en) 2012-11-19 2013-08-28 Queue Management Method and Apparatus
BR112015011338A BR112015011338A2 (pt) 2012-11-19 2013-08-28 método e aparelho de gerenciamento de fila
RU2015122481A RU2641250C2 (ru) 2012-11-19 2013-08-28 Устройство и способ управления очередью

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210468773.3 2012-11-19
CN201210468773.3A CN102984083B (zh) 2012-11-19 2012-11-19 队列管理方法及装置

Publications (1)

Publication Number Publication Date
WO2014075488A1 true WO2014075488A1 (zh) 2014-05-22

Family

ID=47857841

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/082483 WO2014075488A1 (zh) 2012-11-19 2013-08-28 队列管理方法及装置

Country Status (7)

Country Link
US (1) US20150304227A1 (zh)
EP (1) EP2922256A4 (zh)
CN (1) CN102984083B (zh)
BR (1) BR112015011338A2 (zh)
CA (1) CA2891915A1 (zh)
RU (1) RU2641250C2 (zh)
WO (1) WO2014075488A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984083B (zh) * 2012-11-19 2018-07-24 南京中兴新软件有限责任公司 队列管理方法及装置
CN103744801A (zh) * 2014-01-24 2014-04-23 深圳市华宝电子科技有限公司 一种实时数据缓存方法及装置
WO2018023123A1 (en) 2016-07-29 2018-02-01 ACF Technologies, Inc. Queue management system utilizing virtual service providers
BR112019001758A2 (pt) 2016-07-29 2019-05-07 ACF Technologies, Inc. sistema de enfileiramento de mídia social automatizado
MX2019001240A (es) 2016-07-29 2019-09-23 Acf Tech Inc Sistema de cola automatizado.
CN113141590B (zh) * 2021-03-24 2023-09-19 中国科学院沈阳计算技术研究所有限公司 一种面向工业物联网的无线通信调度方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177164A1 (en) * 2002-03-15 2003-09-18 Savov Andrey I. Method and apparatus for serving a request queue
CN101094181A (zh) * 2007-07-25 2007-12-26 华为技术有限公司 报文入队和出队调度的装置及方法
CN101594302A (zh) * 2009-07-01 2009-12-02 华为技术有限公司 数据出队的方法及装置
CN102263701A (zh) * 2011-08-19 2011-11-30 中兴通讯股份有限公司 队列调整方法及装置
CN102984083A (zh) * 2012-11-19 2013-03-20 中兴通讯股份有限公司 队列管理方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2286508A (en) * 1994-02-08 1995-08-16 Ibm Performance and status monitoring in a computer network
EP1139605A1 (en) * 2000-03-31 2001-10-04 Telefonaktiebolaget L M Ericsson (Publ) Network controller and communication packet data transfer with reduced delay
US6982986B2 (en) * 2001-11-01 2006-01-03 International Business Machines Corporation QoS scheduler and method for implementing quality of service anticipating the end of a chain of flows
US7756804B2 (en) * 2002-05-10 2010-07-13 Oracle International Corporation Automated model building and evaluation for data mining system
US7328192B1 (en) * 2002-05-10 2008-02-05 Oracle International Corporation Asynchronous data mining system for database management system
US7460473B1 (en) * 2003-02-14 2008-12-02 Istor Networks, Inc. Network receive interface for high bandwidth hardware-accelerated packet processing
US7433364B2 (en) * 2003-12-24 2008-10-07 Intel Corporation Method for optimizing queuing performance
US7296029B2 (en) * 2004-10-12 2007-11-13 International Business Machines Corporation Environmentally responsive oscillating circular affinity index
US8630256B2 (en) * 2006-12-05 2014-01-14 Qualcomm Incorporated Method and system for reducing backhaul utilization during base station handoff in wireless networks
CN101286947B (zh) * 2008-05-30 2010-12-01 杭州华三通信技术有限公司 数据输出控制方法和装置
RU2515997C2 (ru) * 2009-03-20 2014-05-20 Телефонактиеболагет Л М Эрикссон (Пабл) Активное управление очередью для восходящей линии связи в сети беспроводной связи
US8881161B1 (en) * 2010-01-28 2014-11-04 Applied Micro Circuits Corporation Operating system with hardware-enabled task manager for offloading CPU task scheduling
CN102984089B (zh) * 2012-11-19 2018-09-28 中兴通讯股份有限公司 流量管理调度方法及装置
US10484311B2 (en) * 2015-03-31 2019-11-19 Cavium, Llc Method and apparatus for using multiple linked memory lists
US9613100B2 (en) * 2015-08-31 2017-04-04 Netapp, Inc. System and method for cloud-storage support

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030177164A1 (en) * 2002-03-15 2003-09-18 Savov Andrey I. Method and apparatus for serving a request queue
CN101094181A (zh) * 2007-07-25 2007-12-26 华为技术有限公司 报文入队和出队调度的装置及方法
CN101594302A (zh) * 2009-07-01 2009-12-02 华为技术有限公司 数据出队的方法及装置
CN102263701A (zh) * 2011-08-19 2011-11-30 中兴通讯股份有限公司 队列调整方法及装置
CN102984083A (zh) * 2012-11-19 2013-03-20 中兴通讯股份有限公司 队列管理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2922256A4 *

Also Published As

Publication number Publication date
EP2922256A4 (en) 2015-11-11
CA2891915A1 (en) 2014-05-22
BR112015011338A2 (pt) 2017-07-11
CN102984083B (zh) 2018-07-24
US20150304227A1 (en) 2015-10-22
RU2641250C2 (ru) 2018-01-16
CN102984083A (zh) 2013-03-20
EP2922256A1 (en) 2015-09-23
RU2015122481A (ru) 2017-01-10

Similar Documents

Publication Publication Date Title
CN107391271B (zh) 一种基于消息队列系统的延时任务触发方法和装置
WO2014075488A1 (zh) 队列管理方法及装置
CN108476177B (zh) 支持用于处理功能可扩展性的数据平面的装置及相关方法
CN108616458B (zh) 客户端设备上调度分组传输的系统和方法
US11171862B2 (en) Multi-subflow network transmission method and apparatus
EP4258611A2 (en) Message sending method, network node and system
US11968111B2 (en) Packet scheduling method, scheduler, network device, and network system
KR20130136558A (ko) 계층적 프로파일 스케줄링 및 쉐이핑
US10554568B2 (en) Technologies for network round-trip time estimation
CN110086728B (zh) 发送报文的方法、第一网络设备及计算机可读存储介质
US20150131443A1 (en) Method For Transmitting Data In A Packet-Oriented Communications Network And Correspondingly Configured User Terminal In Said Communications Network
US8514700B2 (en) MLPPP occupancy based round robin
CN112104562A (zh) 拥塞控制方法及装置、通信网络、计算机存储介质
WO2020142867A1 (zh) 一种流量整形方法及相关设备
US20220014485A1 (en) Signalling of Dejittering Buffer Capabilities for TSN Integration
CN114390000A (zh) 基于入队整形的tsn流量调度方法及相关设备
CN115473855A (zh) 网络系统、数据传输方法
EP2477366A1 (en) Data transmission method, apparatus and system
CN109714824B (zh) 一种半持续调度资源分配方法及基站
EP3582455A1 (en) Method and apparatus for multiple sub-current network transmission
US20170250929A1 (en) Method and apparatus for active queue management for wireless networks using shared wireless channel
WO2017032075A1 (zh) 一种服务质量复用方法及装置、计算机存储介质
US20140321279A1 (en) Random early drop based processing circuit and method for triggering random early drop based operation according to at least trigger event generated based on software programmable schedule
CN104917692B (zh) 一种分发令牌的方法和装置
JP2008125073A (ja) WiMAXスケジューラーの待ち時間カウントを使用した無効データ除去

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13855693

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2891915

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 14443498

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2013855693

Country of ref document: EP

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112015011338

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 2015122481

Country of ref document: RU

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 112015011338

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20150518