CN114520789A - 基于令牌桶的共享缓存报文处理方法、装置、设备及介质 - Google Patents

基于令牌桶的共享缓存报文处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN114520789A
CN114520789A CN202210157408.4A CN202210157408A CN114520789A CN 114520789 A CN114520789 A CN 114520789A CN 202210157408 A CN202210157408 A CN 202210157408A CN 114520789 A CN114520789 A CN 114520789A
Authority
CN
China
Prior art keywords
processing
delay
time delay
information field
token bucket
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.)
Granted
Application number
CN202210157408.4A
Other languages
English (en)
Other versions
CN114520789B (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.)
Haohan Data Technology Co ltd
Original Assignee
Haohan Data Technology 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 Haohan Data Technology Co ltd filed Critical Haohan Data Technology Co ltd
Priority to CN202210157408.4A priority Critical patent/CN114520789B/zh
Publication of CN114520789A publication Critical patent/CN114520789A/zh
Application granted granted Critical
Publication of CN114520789B publication Critical patent/CN114520789B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种基于令牌桶的共享缓存报文处理方法、装置、设备及介质,应用于FPGA技术领域,其方法应用于FPGA设备,FPGA设备包括至少一个共享缓存、多个处理引擎以及与多个处理引擎一一对应的多个令牌桶,每个处理引擎的前级均对应建立有信息缓存队列,待处理报文依次通过令牌桶、共享缓存、信息缓存队列后进入处理引擎进行报文处理,信息缓存队列用于缓存从待处理报文提取的信息字段;其方法包括:当任一信息缓存队列中的当前信息字段的数量达到最大信息字段数量时,计算与信息缓存队列对应的处理引擎处理当前信息字段所产生的最大处理时延Tmax;基于最大处理时延Tmax减小与处理引擎一一对应的令牌桶的当前桶深值。本申请具有减少处理引擎的拥塞的效果。

Description

基于令牌桶的共享缓存报文处理方法、装置、设备及介质
技术领域
本申请涉及FPGA的技术领域,尤其是涉及一种基于令牌桶的共享缓存报文处理方法、装置、设备及介质。
背景技术
当在需要对数据报文进行处理时,都需要对数据报文进行接收、存储和转发的操作。随着互联网速率的爆炸性增长,特别是当单个网络接口速率超过100G达到400G时,由于物理接口速率高,一个物理接口接收到的报文通常需要按同源同宿的方式分发给不同的处理引擎进行处理,为了保证每个处理引擎有一定的突发处理能力,需要给每个处理引擎分配一个独立的报文缓存,用于缓存待处理报文。
当接口密度增加,特别是当支持400G接口时,需要8~16个处理引擎才能满足400G处理性能,每处理引擎独立缓存的方式将导致FPGA芯片无法提供足够的RAM满足设计需求。传统的设计思路都是采取共享缓存的方式,将报文分成多个队列,将每个队列中的报文再转发给对应的处理引擎进行处理。采用共享缓存满足400G以上高带宽多处理引擎处理,虽然逻辑上可行,但共享缓存模式存在一个非常严重的问题,当流量突发时,由于多个处理引擎的报文共同存在一个缓存中,当其中一个处理引擎流量突发的时候影响其他处理引擎的处理性能发挥。经常会出现一个处理引擎的处理性能用满了,另一个处理引擎由于报文缓存被高突发的处理引擎占用而处于空闲状态。由于网络流量本身是不均匀的,难以在共享缓存多队列的情况下,公平调度各队列,充分发挥每个处理引擎的处理性能,减少拥塞。
发明内容
为了减少处理引擎的拥塞,本申请提供一种基于令牌桶的共享缓存报文处理方法、装置、设备及介质。
第一方面,本申请提供一种基于令牌桶的共享缓存报文处理方法,采用如下的技术方案:
一种基于令牌桶的共享缓存报文处理方法,应用于FPGA设备,所述FPGA设备包括至少一个共享缓存、多个处理引擎以及与所述多个处理引擎一一对应的多个令牌桶,每个所述处理引擎的前级均对应建立有信息缓存队列,待处理报文依次通过所述令牌桶、所述共享缓存、所述信息缓存队列后进入所述处理引擎进行报文处理,所述信息缓存队列用于缓存从所述待处理报文提取的信息字段;所述方法包括:
当任一所述信息缓存队列中的当前信息字段的数量达到最大信息字段数量时,计算与所述信息缓存队列对应的处理引擎处理所述当前信息字段所产生的最大处理时延Tmax;
基于所述最大处理时延Tmax减小与所述处理引擎一一对应的令牌桶的当前桶深值。
通过采用上述技术方案,处理引擎引入前置令牌桶,每个处理引擎的前级都有一个信息缓存队列,当流量突发时,信息缓存队列中的待处理报文的信息字段数量多,同时每个待处理报文的处理时延也会相应的变大。通过测量报文的处理时延,实时的了解当前处理引擎的拥塞情况,及时的将拥塞情况反馈给令牌桶,通过调整令牌桶的当前桶深值的方法,快速且高效的调整拥塞情况。
可选的,所述信息字段设置有时间戳;所述计算与所述信息缓存队列对应的处理引擎处理所述当前信息字段所产生的最大处理时延Tmax包括:
获取所述当前信息字段中每个信息字段的序列号;
基于所述每个信息字段的序列号和时间戳,计算所述处理引擎处理每个信息字段所产生的处理时延;
基于所述每个信息字段所产生的处理时延,计算所述处理引擎处理所述当前信息字段所产生的最大处理时延Tmax。
可选的,所述基于所述最大处理时延Tmax减小与所述处理引擎一一对应的令牌桶的当前桶深值包括:
基于最大处理时延Tmax和最小处理时延Tmin,生成时延区间[Tmin,Tmax],其中,所述最小处理时延Tmin由所述FPGA设备的系统时钟周期确定;
对所述时延区间[Tmin,Tmax]进行划分,得到多个子时延区间,其中,每个子时延区间均对应一更新值,按照处理时延由小到大的顺序,任一子时延区间对应的更新值均大于下一个子时延区间对应的更新值,且每个更新值均小于与所述处理引擎一一对应的令牌桶的当前桶深值;
计算所述处理引擎处理所述当前信息字段的下一个信息字段的处理时延;
获取所述下一个信息字段的处理时延位于的子时延区间所对应的更新值,并将所述令牌桶的当前桶深值更新为获取的更新值。
可选的,所述基于所述最大处理时延Tmax减小与所述处理引擎一一对应的令牌桶的当前桶深值包括:
基于最大处理时延Tmax和最小处理时延Tmin,生成时延区间[Tmin,Tmax],其中,所述最小处理时延Tmin由所述FPGA设备的系统时钟周期确定;
对所述时延区间[Tmin,Tmax]进行划分,得到多个子时延区间,其中,每个子时延区间均对应一调节值,按照处理时延由小到大的顺序,任一子时延区间对应的调节值均小于下一个子时延区间对应的调节值,且每个调节值均小于与所述处理引擎一一对应的令牌桶的当前桶深值;
计算所述处理引擎处理所述当前信息字段的下一个信息字段的处理时延;
获取所述下一个信息字段的处理时延位于的子时延区间所对应的调节值,并将所述令牌桶的桶深值减去调节值作为当前令牌桶的桶深值。
可选的,所述令牌桶中令牌数和深度的单位均为报文个数。
可选的,还包括:
当所述待处理报文待注入所述令牌桶时,若所述令牌桶的前令牌数不小于1,则允许所述待处理报文消耗令牌,使所述待处理报文进入所述共享缓存,否则将所述待处理报文丢弃。
第二方面,本申请提供一种基于令牌桶的共享缓存报文处理装置,采用如下的技术方案:
一种基于令牌桶的共享缓存报文处理装置,其特征在于,包括:
时延确定模块,用于当任一所述信息缓存队列中的当前信息字段的数量达到最大信息字段数量时,计算与所述信息缓存队列对应的处理引擎处理所述当前信息字段所产生的最大处理时延Tmax;
桶深调节模块,用于基于所述最大处理时延Tmax减小与所述处理引擎一一对应的令牌桶的当前桶深值。
通过采用上述技术方案,处理引擎引入前置令牌桶,每个处理引擎的前级都有一个信息缓存队列,当流量突发时,信息缓存队列中的待处理报文的信息字段数量多,同时每个待处理报文的处理时延也会相应的变大。通过测量报文的处理时延,实时的了解当前处理引擎的拥塞情况,及时的将拥塞情况反馈给令牌桶,通过调整令牌桶的当前桶深值的方法,快速且高效的调整拥塞情况。
第三方面,本申请提供一种FPGA设备,采用如下的技术方案:
一种FPGA设备,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行第一方面任一项所述的基于令牌桶的共享缓存报文处理方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,存储有能够被处理器加载并执行第一方面任一项所述的基于令牌桶的共享缓存报文处理方法的计算机程序。
附图说明
图1是本申请实施例的一种基于令牌桶的共享缓存报文处理逻辑框图。
图2是本申请实施例的一种基于令牌桶的共享缓存报文处理方法的流程示意图。
图3是本申请实施例的一种基于令牌桶的共享缓存报文处理装置的结构框图。
图4是本申请实施例的一种FPGA设备的结构框图。
具体实施方式
当流量不均衡存在流量突发时,由于多个处理引擎的待处理报文共同存在于同一个共享缓存中,不可避免的出现其中一个处理引擎的待处理报文数量突然增加影响其他引擎的处理性能发挥的情况。
以下结合附图对本申请作进一步详细说明。
图1为本申请实施例提供的一种基于令牌桶的共享缓存报文处理逻辑框图。
如图1所示,当带宽达到400G以上时,采用两颗FPGA芯片,分别为完成接口功能的接口芯片和完成逻辑功能的处理芯片,多个令牌桶和共享缓存位于接口芯片内,多个信息缓存队列和多个处理引擎位于处理芯片内,处理引擎以及信息缓存队列与令牌桶一一对应,待处理报文依次通过令牌桶、共享缓存、信息缓存队列后进入处理引擎进行报文处理,信息缓存队列用于缓存从待处理报文提取的信息字段。
需要说明的是,令牌桶的数量、信息缓存队列的数量和处理引擎的数量并不局限于图中的数量,在此仅做展示说明,具体数量在此不做具体限定。
图2为本申请实施例提供的一种基于令牌桶的共享缓存报文处理方法的流程示意图。
如图2所示,该方法主要流程描述如下(步骤S101~S102):
步骤S101,当任一信息缓存队列中的当前信息字段的数量达到最大信息字段数量时,计算与信息缓存队列对应的处理引擎处理当前信息字段所产生的最大处理时延Tmax;
步骤S102,基于最大处理时延Tmax减小与处理引擎一一对应的令牌桶的当前桶深值。
在本实施例中,获取当前信息字段中每个信息字段的序列号;基于每个信息字段的序列号和时间戳,计算处理引擎处理每个信息字段所产生的处理时延;基于每个信息字段所产生的处理时延,计算处理引擎处理当前信息字段所产生的最大处理时延Tmax。
在本实施例中,基于最大处理时延Tmax和最小处理时延Tmin,生成时延区间[Tmin,Tmax],其中,最小处理时延Tmin由FPGA设备的系统时钟周期确定;对时延区间[Tmin,Tmax]进行划分,得到多个子时延区间,其中,每个子时延区间均对应一更新值,按照处理时延由小到大的顺序,任一子时延区间对应的更新值均大于下一个子时延区间对应的更新值,且每个更新值均小于与处理引擎一一对应的令牌桶的当前桶深值;计算处理引擎处理当前信息字段的下一个信息字段的处理时延;获取下一个信息字段的处理时延位于的子时延区间所对应的更新值,并将令牌桶的当前桶深值更新为获取的更新值。
作为本实施例的一种可选实施方式,基于最大处理时延Tmax和最小处理时延Tmin,生成时延区间[Tmin,Tmax],其中,最小处理时延Tmin由FPGA设备的系统时钟周期确定;对时延区间[Tmin,Tmax]进行划分,得到多个子时延区间,其中,每个子时延区间均对应一调节值,按照处理时延由小到大的顺序,任一子时延区间对应的调节值均小于下一个子时延区间对应的调节值,且每个调节值均小于与处理引擎一一对应的令牌桶的当前桶深值;计算处理引擎处理当前信息字段的下一个信息字段的处理时延;获取下一个信息字段的处理时延位于的子时延区间所对应的调节值,并将令牌桶的桶深值减去调节值作为当前令牌桶的桶深值。
在本实施例中,每个待处理报文均具有一个标记号,则从待处理报文中提取的信息字段同样具有与待处理报文一致的标记号,在提取完信息字段之后,在每个信息字段内增加时间戳,携带有时间戳的信息字段进入信息缓存队列进行排队等待处理。
正常情况下,信息缓存队列中的信息字段数量应小于信息缓存队列可以缓存的最大信息字段数量,当流量突然增加时,信息缓存队列存在突然排满甚至溢出的可能性,当信息缓存队列中的信息字段数量等于信息缓存队列可以缓存的最大信息字段数量时,记录当前信息缓存队列中第一个信息字段的标记号和最后一个信息字段的标记号,通过实际测量可以得到当前处理引擎的最小处理时延Tmin和最大处理时延Tmax,最小处理时延Tmin由FPGA设备的系统时钟周期确定,最大处理时延为处理完当前信息缓存队列中所有信息字段所对应的待处理报文的处理时延。
生成时延区间[Tmin,Tmax],将时延区间[Tmin,Tmax]按照预设规则进行划分,生成多个子时延区间,在本实施例中,预设规则可以按照具体的长度进行等分,也可以按照有规律的增加规则或减小规则进行划分,在此不做具体限定。
在本实施例中,将时延区间[Tmin,Tmax]按信息缓存队列可以缓存的最大信息字段数量进行等分,得到多个子时延区间,每个子时延区间均设置有属于本子时延区间的调节值或者更新值,此时,计算当前信息缓存队列的最后一个信息字段的下一个信息字段对应待处理报文的处理时延,判断该待处理报文的处理时延位于哪个子时延区间,按照该子时延区间的调节值或者更新值调节当前令牌桶的桶深值。
当子时延区间设置为调节值时,则按照处理时延由小到大的顺序,任一子时延区间对应的调节值均小于下一个子时延区间对应的调节值,且每个调节值均小于与处理引擎一一对应的令牌桶的当前桶深值,调节时,令牌桶的桶深值减去调节值并进行更新,减去调节值的桶深值为当前令牌桶的桶深值。
当子时延区间设置为更新值时,则按照处理时延由小到大的顺序,任一子时延区间对应的更新值均大于下一个子时延区间对应的更新值,且每个更新值均小于与处理引擎一一对应的令牌桶的当前桶深值,调节时,直接将令牌桶的桶深值更新为更新值,该更新值即为当前令牌桶的桶深值。
需要说明的是,令牌桶桶深的调节包括但不局限于上述两种调节方式,在得到时延区间[Tmin,Tmax]后还可以进行限行划分并线性调整,但调整的思想不可脱离时延越大令牌桶的桶深值越小的调节方式,在此不继续举例说明。
在本实施例中,令牌桶中令牌数和深度的单位均为报文个数。
在本实施例中,当待处理报文待注入令牌桶时,若令牌桶的前令牌数不小于1,则允许待处理报文消耗令牌,使待处理报文进入共享缓存,否则将待处理报文丢弃。
在本实施例中,将令牌桶进行简化,简化后的令牌桶参数为2个,一个为令牌桶中当前令牌数,另一个为令牌桶的桶深,单位均为报文个数。在本实施例中用报文个数而不是字节数来作为令牌的单位,是因为每个报文经过解析处理最终都会提取相同字节的信息字段,无论报文的长度多少,对于每个处理引擎来说,处理每个报文时接收到的信息字段是固定长度的,且每个报文处理的时间也是一样的,即按流水线的方式定周期的处理报文。
在本实施例中,按FPGA设计时系统时钟按400M来设计,每40周期处理一个报文,即每秒处理10M个报文的例子来说明令牌桶的更新方法。400M系统时钟,处理性能10MPPS意味着处理一个报文的时间是100ns,也就是40个系统时钟周期处理一个报文。
当报文到达时,只需判断令牌桶中是否存储有令牌,如果令牌桶中存储有令牌,则消耗一个令牌同时报文进入共享缓存,令牌数减一;如果令牌桶中没有令牌则将报文将直接转走,进入具有令牌的令牌桶中。
在本实施例中,令牌桶的深度值越低,令牌桶中的令牌数越少,该令牌桶可处理的报文数量越少,则每个令牌桶连接的处理引擎之前的信息缓存队列产生拥堵的可能性越小,均匀排队,降低处理时延,减小拥塞的产生。
图3为申请实施例提供的一种基于令牌桶的共享缓存报文处理装置200的结构框图。
如图3所示,基于令牌桶的共享缓存报文处理装置200主要包括:
时延确定模块201,用于当任一信息缓存队列中的当前信息字段的数量达到最大信息字段数量时,计算与信息缓存队列对应的处理引擎处理当前信息字段所产生的最大处理时延Tmax;
桶深调节模块202,用于基于最大处理时延Tmax减小与处理引擎一一对应的令牌桶的当前桶深值。
作为本实施例的一种可选实施方式,时延确定模块201具体用于获取当前信息字段中每个信息字段的序列号;基于每个信息字段的序列号和时间戳,计算处理引擎处理每个信息字段所产生的处理时延;基于每个信息字段所产生的处理时延,计算处理引擎处理当前信息字段所产生的最大处理时延Tmax。
在本可选实施方式中,时延确定模块201具体还用于基于最大处理时延Tmax和最小处理时延Tmin,生成时延区间[Tmin,Tmax],其中,最小处理时延Tmin由FPGA设备的系统时钟周期确定;对时延区间[Tmin,Tmax]进行划分,得到多个子时延区间,其中,每个子时延区间均对应一更新值,按照处理时延由小到大的顺序,任一子时延区间对应的更新值均大于下一个子时延区间对应的更新值,且每个更新值均小于与处理引擎一一对应的令牌桶的当前桶深值;计算处理引擎处理当前信息字段的下一个信息字段的处理时延;获取下一个信息字段的处理时延位于的子时延区间所对应的更新值,并将令牌桶的当前桶深值更新为获取的更新值。
在本可选实施方式中,时延确定模块201具体还用于基于最大处理时延Tmax和最小处理时延Tmin,生成时延区间[Tmin,Tmax],其中,最小处理时延Tmin由FPGA设备的系统时钟周期确定;对时延区间[Tmin,Tmax]进行划分,得到多个子时延区间,其中,每个子时延区间均对应一调节值,按照处理时延由小到大的顺序,任一子时延区间对应的调节值均小于下一个子时延区间对应的调节值,且每个调节值均小于与处理引擎一一对应的令牌桶的当前桶深值;计算处理引擎处理当前信息字段的下一个信息字段的处理时延;获取下一个信息字段的处理时延位于的子时延区间所对应的调节值,并将令牌桶的桶深值减去调节值作为当前令牌桶的桶深值。
作为本实施例的一种可选实施方式,该装置具体用于令牌桶中令牌数和深度的单位均为报文个数。
作为本实施例的一种可选实施方式,该装置具体用于当待处理报文待注入令牌桶时,若令牌桶的前令牌数不小于1,则允许待处理报文消耗令牌,使待处理报文进入共享缓存,否则将待处理报文丢弃。
在一个例子中,以上任一装置中的模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specificintegratedcircuit,ASIC),或,一个或多个数字信号处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。
再如,当装置中的模块可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图4为本申请实施例提供的FPGA设备300的结构框图。
如图4所示,FPGA设备300包括处理器301和存储器302,还可以进一步包括信息输入/信息输出(I/O)接口303、通信组件304中的一种或多种以及通信总线305。
其中,处理器301用于控制FPGA设备300的整体操作,以完成上述的基于令牌桶的共享缓存报文处理方法的全部或部分步骤;存储器302用于存储各种类型的数据以支持在FPGA设备300的操作,这些数据例如可以包括用于在该FPGA设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random AccessMemory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
I/O接口303为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件304用于FPGA设备300与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(NearField Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件104可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
FPGA设备300可以被一个或多个应用专用集成电路 (Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的基于令牌桶的共享缓存报文处理方法。
通信总线305可包括一通路,在上述组件之间传送信息。通信总线305可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA (ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。通信总线305可以分为地址总线、数据总线、控制总线等。
FPGA设备300可以包括但不限于移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端,还可以为服务器等。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的基于令牌桶的共享缓存报文处理方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器 (R ead-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (9)

1.一种基于令牌桶的共享缓存报文处理方法,其特征在于,应用于FPGA设备,所述FPGA设备包括至少一个共享缓存、多个处理引擎以及与所述多个处理引擎一一对应的多个令牌桶,每个所述处理引擎的前级均对应建立有信息缓存队列,待处理报文依次通过所述令牌桶、所述共享缓存、所述信息缓存队列后进入所述处理引擎进行报文处理,所述信息缓存队列用于缓存从所述待处理报文提取的信息字段;所述方法包括:
当任一所述信息缓存队列中的当前信息字段的数量达到最大信息字段数量时,计算与所述信息缓存队列对应的处理引擎处理所述当前信息字段所产生的最大处理时延Tmax;
基于所述最大处理时延Tmax减小与所述处理引擎一一对应的令牌桶的当前桶深值。
2.根据权利要求1所述的方法,其特征在于,所述信息字段设置有时间戳;所述计算与所述信息缓存队列对应的处理引擎处理所述当前信息字段所产生的最大处理时延Tmax包括:
获取所述当前信息字段中每个信息字段的序列号;
基于所述每个信息字段的序列号和时间戳,计算所述处理引擎处理每个信息字段所产生的处理时延;
基于所述每个信息字段所产生的处理时延,计算所述处理引擎处理所述当前信息字段所产生的最大处理时延Tmax。
3.根据权利要求2所述的方法,其特征在于,所述基于所述最大处理时延Tmax减小与所述处理引擎一一对应的令牌桶的当前桶深值包括:
基于最大处理时延Tmax和最小处理时延Tmin,生成时延区间[Tmin,Tmax],其中,所述最小处理时延Tmin由所述FPGA设备的系统时钟周期确定;
对所述时延区间[Tmin,Tmax]进行划分,得到多个子时延区间,其中,每个子时延区间均对应一更新值,按照处理时延由小到大的顺序,任一子时延区间对应的更新值均大于下一个子时延区间对应的更新值,且每个更新值均小于与所述处理引擎一一对应的令牌桶的当前桶深值;
计算所述处理引擎处理所述当前信息字段的下一个信息字段的处理时延;
获取所述下一个信息字段的处理时延位于的子时延区间所对应的更新值,并将所述令牌桶的当前桶深值更新为获取的更新值。
4.根据权利要求2所述的方法,其特征在于,所述基于所述最大处理时延Tmax减小与所述处理引擎一一对应的令牌桶的当前桶深值包括:
基于最大处理时延Tmax和最小处理时延Tmin,生成时延区间[Tmin,Tmax],其中,所述最小处理时延Tmin由所述FPGA设备的系统时钟周期确定;
对所述时延区间[Tmin,Tmax]进行划分,得到多个子时延区间,其中,每个子时延区间均对应一调节值,按照处理时延由小到大的顺序,任一子时延区间对应的调节值均小于下一个子时延区间对应的调节值,且每个调节值均小于与所述处理引擎一一对应的令牌桶的当前桶深值;
计算所述处理引擎处理所述当前信息字段的下一个信息字段的处理时延;
获取所述下一个信息字段的处理时延位于的子时延区间所对应的调节值,并将所述令牌桶的桶深值减去调节值作为当前令牌桶的桶深值。
5.根据权利要求1所述的方法,其特征在于,所述令牌桶中令牌数和深度的单位均为报文个数。
6.根据权利要求5所述的方法,其特征在于,还包括:
当所述待处理报文待注入所述令牌桶时,若所述令牌桶的前令牌数不小于1,则允许所述待处理报文消耗令牌,使所述待处理报文进入所述共享缓存,否则将所述待处理报文丢弃。
7.一种基于令牌桶的共享缓存报文处理装置,其特征在于,包括:
时延确定模块,用于当任一所述信息缓存队列中的当前信息字段的数量达到最大信息字段数量时,计算与所述信息缓存队列对应的处理引擎处理所述当前信息字段所产生的最大处理时延Tmax;
桶深调节模块,用于基于所述最大处理时延Tmax减小与所述处理引擎一一对应的令牌桶的当前桶深值。
8.一种FPGA设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被所述处理器加载并执行如权利要求1至6中任一种方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至6中任一种方法的计算机程序。
CN202210157408.4A 2022-02-21 2022-02-21 基于令牌桶的共享缓存报文处理方法、装置、设备及介质 Active CN114520789B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210157408.4A CN114520789B (zh) 2022-02-21 2022-02-21 基于令牌桶的共享缓存报文处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210157408.4A CN114520789B (zh) 2022-02-21 2022-02-21 基于令牌桶的共享缓存报文处理方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN114520789A true CN114520789A (zh) 2022-05-20
CN114520789B CN114520789B (zh) 2023-11-21

Family

ID=81599924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210157408.4A Active CN114520789B (zh) 2022-02-21 2022-02-21 基于令牌桶的共享缓存报文处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114520789B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116708310A (zh) * 2023-08-08 2023-09-05 北京傲星科技有限公司 流量控制方法及装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106375238A (zh) * 2015-07-21 2017-02-01 深圳市中兴微电子技术有限公司 一种流量监管方法及装置
CN107743099A (zh) * 2017-08-31 2018-02-27 华为技术有限公司 数据流处理方法、装置以及存储介质
US20190007723A1 (en) * 2011-06-14 2019-01-03 Samsung Electronics Co., Ltd. Apparatus and method for providing adaptive multimedia service
CN109729013A (zh) * 2017-10-30 2019-05-07 深圳市中兴微电子技术有限公司 一种流量整形中添加令牌的方法、装置及计算机可读存储介质
US20210058328A1 (en) * 2018-05-10 2021-02-25 Huawei Technologies Co., Ltd. Resource allocation method and communications device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190007723A1 (en) * 2011-06-14 2019-01-03 Samsung Electronics Co., Ltd. Apparatus and method for providing adaptive multimedia service
CN106375238A (zh) * 2015-07-21 2017-02-01 深圳市中兴微电子技术有限公司 一种流量监管方法及装置
CN107743099A (zh) * 2017-08-31 2018-02-27 华为技术有限公司 数据流处理方法、装置以及存储介质
CN109729013A (zh) * 2017-10-30 2019-05-07 深圳市中兴微电子技术有限公司 一种流量整形中添加令牌的方法、装置及计算机可读存储介质
US20210058328A1 (en) * 2018-05-10 2021-02-25 Huawei Technologies Co., Ltd. Resource allocation method and communications device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
佚名: "Rate Limiting in controller-runtime and client-go", Retrieved from the Internet <URL:https://danielmangum.com/posts/controller-runtime-client-go-rate-limiting/> *
蒋维成;: "令牌桶算法比较研究", 电脑知识与技术, no. 04 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116708310A (zh) * 2023-08-08 2023-09-05 北京傲星科技有限公司 流量控制方法及装置、存储介质及电子设备
CN116708310B (zh) * 2023-08-08 2023-09-26 北京傲星科技有限公司 流量控制方法及装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN114520789B (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
CN108243116B (zh) 一种流量控制方法及交换设备
US7751404B2 (en) Method, system, and computer program product for high performance bonding resequencing
KR101243465B1 (ko) 통신 시스템에서 수정 타임스탬프를 제공하는 방법 및 장치
CN108023829B (zh) 报文处理方法及装置、存储介质、电子设备
WO2020142867A1 (zh) 一种流量整形方法及相关设备
CN114520789A (zh) 基于令牌桶的共享缓存报文处理方法、装置、设备及介质
RU2641250C2 (ru) Устройство и способ управления очередью
CN110830388B (zh) 一种数据调度方法、装置、网络设备及计算机存储介质
CN112383585A (zh) 消息处理系统、方法及电子设备
US9336162B1 (en) System and method for pre-fetching data based on a FIFO queue of packet messages reaching a first capacity threshold
US6754182B1 (en) Method and apparatus for policing cell-based traffic
US9996489B2 (en) Memory aggregation device
CN113835905B (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
WO2022174444A1 (zh) 一种数据流传输方法、装置及网络设备
CN110908798B (zh) 多进程协同式网络流量解析方法及装置
Zhao et al. High-performance implementation of dynamically configurable load balancing engine on FPGA
CN109862044B (zh) 一种转换装置、网络设备及数据传输方法
CN109656169B (zh) 多重调度表切换方法、装置、计算机设备及存储介质
CN114866490B (zh) 命名数据网络拥塞控制方法及终端
US11509590B2 (en) Determining network device statistics associated with fast counters and slow counters
CN113542043B (zh) 网络设备的数据采样方法、装置、设备及介质
CN111953615A (zh) 一种负载分担的方法、装置以及bras
US10243861B1 (en) Reducing jitter and compensating for memory latency during traffic shaping
CN113347116B (zh) QoS调度延迟抖动处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant