CN108881055B - 令牌管理方法及装置 - Google Patents

令牌管理方法及装置 Download PDF

Info

Publication number
CN108881055B
CN108881055B CN201810675674.XA CN201810675674A CN108881055B CN 108881055 B CN108881055 B CN 108881055B CN 201810675674 A CN201810675674 A CN 201810675674A CN 108881055 B CN108881055 B CN 108881055B
Authority
CN
China
Prior art keywords
token
bucket
request
tokens
preset
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.)
Active
Application number
CN201810675674.XA
Other languages
English (en)
Other versions
CN108881055A (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.)
Shenzhen Forward Industrial Co Ltd
Original Assignee
Shenzhen Forward Industrial 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 Shenzhen Forward Industrial Co Ltd filed Critical Shenzhen Forward Industrial Co Ltd
Priority to CN201810675674.XA priority Critical patent/CN108881055B/zh
Publication of CN108881055A publication Critical patent/CN108881055A/zh
Application granted granted Critical
Publication of CN108881055B publication Critical patent/CN108881055B/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

Landscapes

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

Abstract

本发明实施例涉及数据通信技术领域,提供一种令牌管理方法及装置,当未接收到令牌操作请求时,依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作;当接收到令牌操作请求时,停止正在执行的加令牌操作,并依据预设处理规则执行所述令牌操作请求,在所述令牌操作请求处理完成后,继续轮转执行加令牌操作,这样不会漏掉某个操作,可以保证令牌管理的准确性,同时,可以在预设轮转周期内完成所有令牌桶的轮转,保证了令牌管理的实时性。

Description

令牌管理方法及装置
技术领域
本发明实施例涉及数据通信技术领域,具体而言,涉及一种令牌管理方法及装置。
背景技术
基于FPGA(Field-Programmable Gate Array,现场可编程门阵列)实现令牌桶算法,比基于MCU(Microcontroller Unit,微控制单元)实现有更好的实时性,但目前有些技术实时性表现不够优异,影响系统的性能;有些则实现起来非常复杂,不便于开发及后期维护。
发明内容
本发明实施例的目的在于提供一种令牌管理方法及装置,用以改善上述问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种令牌管理方法,应用于FPGA,所述FPGA预先配置有多个令牌桶,所述方法包括:当未接收到令牌操作请求时,依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作;当接收到令牌操作请求时,停止正在执行的加令牌操作,并依据预设处理规则执行所述令牌操作请求;在所述令牌操作请求处理完成后,继续轮转执行加令牌操作。
第二方面,本发明实施例还提供了一种令牌管理装置,应用于FPGA,所述FPGA预先配置有多个令牌桶,所述装置包括第一执行模块、第二执行模块及第三执行模块。其中,第一执行模块用于当未接收到令牌操作请求时,依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作;第二执行模块用于当接收到令牌操作请求时,停止正在执行的加令牌操作,并依据预设处理规则执行所述令牌操作请求;第三执行模块用于在所述令牌操作请求处理完成后,继续轮转执行加令牌操作。
相对现有技术,本发明实施例提供的一种令牌管理方法及装置,当未接收到令牌操作请求时,依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作;当接收到令牌操作请求时,停止正在执行的加令牌操作,并依据预设处理规则执行所述令牌操作请求,在所述令牌操作请求处理完成后,继续轮转执行加令牌操作,这样不会漏掉某个操作,可以保证令牌管理的准确性,同时,可以在预设轮转周期内完成所有令牌桶的轮转,保证了令牌管理的实时性。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的令牌管理系统的方框示意图。
图2示出了本发明实施例提供的令牌管理方法流程图。
图3示出了本发明实施例提供的令牌管理装置的方框示意图。
图标:10-令牌管理系统;20-MCU;30-FPGA;301-逻辑单元;302-第一RAM;303-第二RAM;304-输入输出单元;200-令牌管理装置;201-参数配置模块;202-第一执行模块;203-第二执行模块;204-第三执行模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1示出了本发明实施例提供的令牌管理系统10的方框示意图。令牌管理系统10包括MCU20及FPGA30,MCU20与FPGA30电连接,FPGA30可以包括逻辑单元301、第一RAM302、第二RAM303及输入输出单元304,逻辑单元301、第一RAM302及第二RAM303均与输入输出单元304电连接,且输入输出单元304与MCU20电连接,FPGA30预先配置有多个令牌桶,且每个令牌桶均具有对应的编号,例如,FPGA30预先配置有10个令牌桶,该10个令牌桶的编号依次为0,1,2…9。
其中,逻辑单元301用于实现图3所示的令牌管理装置200,FPGA30可以在接收到运行指令后,运行逻辑单元301以实现本发明下述实施例揭示的令牌管理方法。
第一RAM302用于存储参数表,该参数表中预先存储有每个令牌桶的编号、加令牌速率及容量,例如,该参数表中存储有编号依次为0,1,2…9的令牌桶的编号、加令牌速率及容量,参数表的结构可以如下表1所示:
表2参数表
Figure BDA0001709728030000041
其中,token_index表示令牌桶的编号;token_v表示加令牌速率,其单位为个/单位时间;token_c表示令牌桶的容量,其单位为个。
第二RAM303用于存储令牌表,该令牌表中预先存储有每个令牌桶的编号及令牌数,例如,该令牌表中存储有编号依次为0,1,2…9的令牌桶的编号及令牌数,令牌表的结构可以如下表2所示:
表2令牌表
Figure BDA0001709728030000042
其中,token_index表示令牌桶的编号;token_num表示令牌桶的令牌数,其单位为个。
在本发明实施例中,第一RAM302和第二RAM303均为FPGA30的片内RAM。
输入输出单元304用于实现MCU20与FPGA30之间的数据交换,具体来说,上电初始化完成后或者令牌管理系统10运行中需要对参数表中存储的参数进行修改时,MCU20可以通过输入输出单元304配置参数表中存储的每个令牌桶的参数。
第一实施例
请参照图2,图2示出了本发明实施例提供的令牌管理方法流程图。令牌管理方法包括以下步骤:
步骤S101,响应MCU发送的参数配置请求,并依据参数配置请求配置每个令牌桶的加令牌速率及容量写入预先配置的参数表中。
在本发明实施例中,上电初始化完成后或者令牌管理系统10运行中需要对参数表中存储的参数进行修改时,MCU20会配置FPGA30的第一RAM302存储的参数表。具体来说,MCU20配置参数表时,以每个令牌桶的编号为地址,将每个令牌桶的参数写入第一RAM302存储的参数表中,每个令牌桶的参数均包括加令牌速率及容量。
换句话说,上电后,FPGA30将配置接口开放给MCU20,以每个令牌桶的编号(token_index)为地址,将每个令牌桶的参数写到第一RAM302存储的参数表中,每个令牌桶的参数均包括加令牌速率(token_v,单位:个/单位时间)及容量(token_c,单位:个)。例如,0号令牌桶的加令牌速率(token_v)可以配置为10个/ns(即每纳秒加10个令牌),容量(token_c)配置为10000个(即令牌数超过10000时不再加令牌);1~9号令牌桶的加令牌速率(token_v)可以配置为20个/ns(即每纳秒加20个令牌),容量(token_c)配置为20000个(即令牌数超过20000时不再加令牌)。
步骤S102,当未接收到令牌操作请求时,依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作。
在本发明实施例中,令牌操作请求可以是减令牌请求和读令牌请求,加令牌、减令牌、读令牌即是对令牌表中的令牌数进行加、减、读的操作,这三种操作都会占用存储令牌表的第二RAM303的读或写接口,当这三种操作出现冲突时,需要进行仲裁,本实施例中将加令牌、减令牌、读令牌的处理优先级设置为读令牌>减令牌>加令牌。
在本发明实施例中,参数配置表完成后,启动轮转加令牌操作,按照预设时钟周期轮转一个令牌桶,完成一次对该令牌桶的加令牌操作;在一个预设轮转周期内,完成一次所有令牌桶的轮转加令牌操作,预设轮转周期为所有令牌桶完成一次轮转加令牌时间、在轮转过程中读令牌抢占的时间及在轮转过程中减令牌抢占的时间之和,例如,10个令牌桶轮转加令牌需要10个时钟周期,在此过程中,会处理一个减令牌请求和一个读令牌请求,因此共需要12个时钟周期,在本实施例中,设置预设时钟周期为8ns,则预设轮转周期为96ns。
需要指出的是,如果所有令牌桶完成一次轮转加令牌操作后,预设轮转周期还有剩余,则等待,直到下个预设轮转周期开始时再进行下一次轮转加操作。
也就是说,如果未接收到令牌操作请求,即未接收到减令牌请求和/或读令牌请求时,则依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作,也就是每个预设时钟周期(例如,8ns)轮转一个令牌桶,在一个预设轮转周期(例如,96ns)内,完成一次所有令牌桶的轮转加令牌操作。
在本发明实施例中,在预设轮转周期内对每个令牌桶轮转执行加令牌操作的具体方法可以包括:
首先,依据预设轮转周期及每个令牌桶的加令牌速率,计算每个令牌桶的待加令牌数,由于每个预设时钟周期轮转一个令牌桶,当轮转到任意一个令牌通时,先从令牌表中读取该令牌桶对应的令牌数,例如,对于0号令牌桶,其加令牌速率(token_v)为10个/ns、容量(token_c)为10000个、预设轮转周期为96ns,故0号令牌桶的待加令牌数为960个;对于1~9号令牌桶,其加令牌速率(token_v)为20个/ns、容量(token_c)为20000个、预设轮转周期为96ns,故1~9号令牌桶的待加令牌数为1920个。
然后,比较任意一个令牌桶的令牌数(token_num)与待加令牌数之和与该令牌桶的容量(token_c)的大小,若任意一个令牌桶的令牌数与待加令牌数之和小于该令牌桶的容量,则在预设时钟周期内向该令牌桶加待加令牌数个令牌,例如,对于0号令牌桶,若(token_num+960)<10000,则在8ns内向该0号令牌桶加960个令牌;对于1~9号令牌桶,若(token_num+1920)<20000,则在8ns内向该1~9号令牌桶加1920个令牌。若任意一个令牌桶的令牌数与待加令牌数之和大于或等于该令牌桶的容量,则停止向该令牌桶加令牌,例如,对于0号令牌桶,若(token_num+960)>=10000,则停止向该0号令牌桶加令牌;对于1~9号令牌桶,若(token_num+1920)>=20000,则停止向该1~9号令牌桶加令牌。
步骤S103,当接收到令牌操作请求时,停止正在执行的加令牌操作,并依据预设处理规则执行令牌操作请求。
在本发明实施例中,如果接收到令牌操作请求,即接收到减令牌请求和/或读令牌请求时,则暂停正在执行的加令牌操作,直到处理完较高优先级的减令牌和/或读令牌请求再继续在执行轮转加令牌操作。
如果接收到的令牌操作请求为减令牌请求,且该减令牌请求包括待减令牌桶编号及待减令牌数,由于减令牌>加令牌,则首先依据待减令牌桶编号从令牌表中获取与该待减令牌桶编号对应的目标令牌数;然后,将目标令牌数与待减令牌数之差作为待减令牌桶编号对应的令牌桶响应减令牌请求后的令牌数。例如,待减令牌桶编号为0、待减令牌数为1000个,则从令牌表中获取0号令牌桶对应的目标令牌数(例如,10000),然后将该目标令牌数(例如,10000)减去1000,也就是说,处理完减令牌请求之后,令牌表中0号令牌桶对应的令牌数为9000。
如果接收到的令牌操作请求为读令牌请求,且该读令牌请求包括待读令牌桶编号,由于读令牌>加令牌,则首先依据该待读令牌桶编号从令牌表中获取与待读令牌桶编号对应的目标令牌数;然后,将目标令牌数作为读令牌请求的响应。例如,待读令牌桶编号为0,则从令牌表中获取0号令牌桶对应的目标令牌数(例如,10000),然后将该目标令牌数(例如,10000)作为读令牌请求的响应反馈至请求者。
如果接收到的令牌操作请求包括减令牌请求和读令牌请求,且该减令牌请求包括待减令牌桶编号及待减令牌数,该读令牌请求包括待读令牌桶编号,由于读令牌>减令牌>加令牌,则首先处理读令牌请求,即依据待读令牌桶编号从令牌表中获取与待读令牌桶编号对应的目标令牌数,将目标令牌数作为读令牌请求的响应;然后,处理完成读令牌请求后,处理减令牌请求,即依据待减令牌桶编号从令牌表中获取与待减令牌桶编号对应的目标令牌数,将目标令牌数与待减令牌数之差作为待减令牌桶编号对应的令牌桶响应减令牌请求后的令牌数。
步骤S104,在令牌操作请求处理完成后,继续轮转执行加令牌操作。
在本发明实施例中,如果未接收到减令牌请求和/或读令牌请求,则周期性进行加令牌操作;如果接收到减令牌请求或读令牌请求,则停止轮转加令牌操作,优先处理减令牌请求或读令牌请求,处理完成后再继续轮转加令牌操作;如果减令牌请求和读令牌请求同时到来,则停止轮转加令牌操作,减令牌请求等待,优先处理读令牌请求,读令牌请求处理完成后再处理等待状态的减令牌请求,处理完成后再继续轮转加令牌操作。
与现有技术相比,本发明实施例具有以下优点:
首先,加令牌周期小,实时性高,每个令牌桶的加令牌速率及容量可由MCU20配置,且各令牌桶的参数独立,可管理多个令牌桶;
第二,按照预设时钟周期轮转一个令牌桶,在一个预设轮转周期内完成一次所有令牌桶的轮转加令牌操作,保证实时性;
第三,减令牌请求、读令牌请求能得到快速响应,并对加令牌、减令牌、读令牌三种操作进行冲突仲裁,保证不会漏掉其中某个操作,保证令牌数的准确性,同时逻辑清晰,实现简单,可维护性高。
第二实施例
请参照图3,图3示出了本发明实施例提供的令牌管理装置200的方框示意图。令牌管理装置200包括参数配置模块201、第一执行模块202、第二执行模块203及第三执行模块204。
参数配置模块201,用于响应MCU发送的参数配置请求,并依据参数配置请求配置每个令牌桶的加令牌速率及容量写入预先配置的参数表中。
第一执行模块202,用于当未接收到令牌操作请求时,依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作。
在本发明实施例中,第一执行模块202,具体用于依据预设轮转周期及每个令牌桶的加令牌速率,计算每个令牌桶的待加令牌数;若任意一个令牌桶的令牌数与待加令牌数之和小于该令牌桶的容量,则在预设时钟周期内向该令牌桶加待加令牌数个令牌;若任意一个令牌桶的令牌数与待加令牌数之和大于或等于该令牌桶的容量,则停止向该令牌桶加令牌。
第二执行模块203,用于当接收到令牌操作请求时,停止正在执行的加令牌操作,并依据预设处理规则执行令牌操作请求。
在本发明实施例中,当令牌操作请求包括减令牌请求,且减令牌请求包括待减令牌桶编号及待减令牌数时,第二执行模块203,具体用于依据待减令牌桶编号从令牌表中获取与待减令牌桶编号对应的目标令牌数;将目标令牌数与待减令牌数之差作为待减令牌桶编号对应的令牌桶响应减令牌请求后的令牌数。
在本发明实施例中,当令牌操作请求包括读令牌请求,且读令牌请求包括待读令牌桶编号时,第二执行模块203,具体用于依据待读令牌桶编号从令牌表中获取与待读令牌桶编号对应的目标令牌数;将目标令牌数作为读令牌请求的响应。
在本发明实施例中,当令牌操作请求包括减令牌请求和读令牌请求,且减令牌请求包括待减令牌桶编号及待减令牌数,读令牌请求包括待读令牌桶编号时,第二执行模块203,具体用于依据待读令牌桶编号从令牌表中获取与待读令牌桶编号对应的目标令牌数,将目标令牌数作为读令牌请求的响应;处理完成读令牌请求后,依据待减令牌桶编号从令牌表中获取与待减令牌桶编号对应的目标令牌数,将目标令牌数与待减令牌数之差作为待减令牌桶编号对应的令牌桶响应减令牌请求后的令牌数。
第三执行模块204,用于在令牌操作请求处理完成后,继续轮转执行加令牌操作。
综上所述,本发明实施例提供的一种令牌管理方法及装置,应用于FPGA,FPGA预先配置有多个令牌桶,所述方法包括:当未接收到令牌操作请求时,依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作;当接收到令牌操作请求时,停止正在执行的加令牌操作,并依据预设处理规则执行令牌操作请求;在令牌操作请求处理完成后,继续轮转执行加令牌操作。本发明实施例中每个令牌桶的加令牌速率及容量可由MCU20配置,且各令牌桶的参数独立;其次,按照预设时钟周期轮转一个令牌桶,并在预设轮转周期内完成一次所有令牌桶的轮转,保证实时性;并能对加令牌、减令牌、读令牌三种操作进行冲突仲裁,保证不会漏掉其中某个操作,保证令牌数的准确性,令牌管理方法逻辑清晰,实现简单,可维护性高。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

Claims (10)

1.一种令牌管理方法,其特征在于,应用于FPGA,所述FPGA预先配置有多个令牌桶,所述方法包括:
当未接收到令牌操作请求时,依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作,其中,所述令牌操作请求包含读令牌请求和减令牌请求,所述预设轮转周期是所有令牌桶完成一次轮转加令牌时间、在轮转过程中读令牌抢占的时间及在轮转过程中减令牌抢占的时间之和;
当接收到令牌操作请求时,停止正在执行的加令牌操作,并依据预设处理规则执行所述令牌操作请求,其中,所述预设处理规则是将处理优先级设置为读令牌>减令牌>加令牌;
在高优先级的令牌操作请求处理完成后,继续轮转执行加令牌操作,其中,若所有令牌桶完成一次轮转加令牌操作后,所述预设轮转周期还有剩余,则等待,直到下个所述预设轮转周期开始时再进行下一次轮转加操作。
2.如权利要求1所述的方法,其特征在于,所述FPGA包括参数表和令牌表,所述参数表中预先存储有每个令牌桶的编号、加令牌速率及容量,所述令牌表中预先存储有每个令牌桶的编号及令牌数;
所述在预设轮转周期内对每个令牌桶轮转执行加令牌操作的步骤,包括:
依据预设轮转周期及每个令牌桶的加令牌速率,计算每个令牌桶的待加令牌数;
若任意一个令牌桶的令牌数与待加令牌数之和小于该令牌桶的容量,则在预设时钟周期内向该令牌桶加待加令牌数个令牌;
若任意一个令牌桶的令牌数与待加令牌数之和大于或等于该令牌桶的容量,则停止向该令牌桶加令牌。
3.如权利要求2所述的方法,其特征在于,当所述令牌操作请求包括减令牌请求,且所述减令牌请求包括待减令牌桶编号及待减令牌数;所述依据预设规则执行所述令牌操作请求的步骤,包括:
依据所述待减令牌桶编号从所述令牌表中获取与所述待减令牌桶编号对应的目标令牌数;
将所述目标令牌数与所述待减令牌数之差作为所述待减令牌桶编号对应的令牌桶响应减令牌请求后的令牌数。
4.如权利要求2所述的方法,其特征在于,当所述令牌操作请求包括读令牌请求,且所述读令牌请求包括待读令牌桶编号;所述依据预设规则执行所述令牌操作请求的步骤,包括:
依据所述待读令牌桶编号从所述令牌表中获取与所述待读令牌桶编号对应的目标令牌数;
将所述目标令牌数作为所述读令牌请求的响应。
5.如权利要求2所述的方法,其特征在于,当所述令牌操作请求包括减令牌请求和读令牌请求,且所述减令牌请求包括待减令牌桶编号及待减令牌数,所述读令牌请求包括待读令牌桶编号;所述依据预设规则执行所述令牌操作请求的步骤,包括:
依据所述待读令牌桶编号从所述令牌表中获取与所述待读令牌桶编号对应的目标令牌数,将所述目标令牌数作为所述读令牌请求的响应;
处理完成所述读令牌请求后,依据所述待减令牌桶编号从所述令牌表中获取与所述待减令牌桶编号对应的目标令牌数,将所述目标令牌数与所述待减令牌数之差作为所述待减令牌桶编号对应的令牌桶响应减令牌请求后的令牌数。
6.如权利要求2所述的方法,其特征在于,所述FPGA包括第一RAM及第二RAM,所述参数表存储于所述第一RAM中,所述令牌表存储于所述第二RAM中。
7.如权利要求1所述的方法,其特征在于,所述FPGA与MCU电连接构成令牌管理系统,所述方法还包括:
响应所述MCU发送的参数配置请求,并依据所述参数配置请求配置每个令牌桶的加令牌速率及容量写入预先配置的参数表中。
8.一种令牌管理装置,其特征在于,应用于FPGA,所述FPGA预先配置有多个令牌桶,所述装置包括:
第一执行模块,用于当未接收到令牌操作请求时,依据每个令牌桶的编号,在预设轮转周期内对每个令牌桶轮转执行加令牌操作,其中,所述令牌操作请求包含读令牌请求和减令牌请求,所述预设轮转周期是所有令牌桶完成一次轮转加令牌时间、在轮转过程中读令牌抢占的时间及在轮转过程中减令牌抢占的时间之和;
第二执行模块,用于当接收到令牌操作请求时,停止正在执行的加令牌操作,并依据预设处理规则执行所述令牌操作请求,其中,所述预设处理规则是将处理优先级设置为读令牌>减令牌>加令牌;
第三执行模块,用于在高优先级的令牌操作请求处理完成后,继续轮转执行加令牌操作,其中,若所有令牌桶完成一次轮转加令牌操作后,所述预设轮转周期还有剩余,则等待,直到下个所述预设轮转周期开始时再进行下一次轮转加操作。
9.如权利要求8所述的装置,其特征在于,所述FPGA包括参数表和令牌表,所述参数表中预先存储有每个令牌桶的编号、加令牌速率及容量,所述令牌表中预先存储有每个令牌桶的编号及令牌数;所述第一执行模块具体用于:
依据预设轮转周期及每个令牌桶的加令牌速率,计算每个令牌桶的待加令牌数;
若任意一个令牌桶的令牌数与待加令牌数之和小于该令牌桶的容量,则在预设时钟周期内向该令牌桶加待加令牌数个令牌;
若任意一个令牌桶的令牌数与待加令牌数之和大于或等于该令牌桶的容量,则停止向该令牌桶加令牌。
10.如权利要求8所述的装置,其特征在于,所述FPGA与MCU电连接构成令牌管理系统,所述装置还包括:
参数配置模块,用于响应所述MCU发送的参数配置请求,并依据所述参数配置请求获取每个令牌桶的加令牌速率及容量写入预先配置的参数表中。
CN201810675674.XA 2018-06-27 2018-06-27 令牌管理方法及装置 Active CN108881055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810675674.XA CN108881055B (zh) 2018-06-27 2018-06-27 令牌管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810675674.XA CN108881055B (zh) 2018-06-27 2018-06-27 令牌管理方法及装置

Publications (2)

Publication Number Publication Date
CN108881055A CN108881055A (zh) 2018-11-23
CN108881055B true CN108881055B (zh) 2022-01-04

Family

ID=64295151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810675674.XA Active CN108881055B (zh) 2018-06-27 2018-06-27 令牌管理方法及装置

Country Status (1)

Country Link
CN (1) CN108881055B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795640A (zh) * 2012-10-30 2014-05-14 中兴通讯股份有限公司 一种流量监管方法和装置
CN104580004A (zh) * 2014-12-24 2015-04-29 盛科网络(苏州)有限公司 采用非整数令牌实现流量整形的装置及方法
CN107483351A (zh) * 2017-07-13 2017-12-15 中国银联股份有限公司 一种限流方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5107016B2 (ja) * 2007-12-17 2012-12-26 Kddi株式会社 トークンバケットを用いたバッファ装置及びプログラム
CN104769864B (zh) * 2012-06-14 2018-05-04 艾诺威网络有限公司 多播到单播转换技术
CN105939286B (zh) * 2016-03-28 2019-05-07 杭州迪普科技股份有限公司 令牌桶管理方法及装置
CN107800644A (zh) * 2017-11-08 2018-03-13 中国人民解放军国防科技大学 一种可动态配置的流水化令牌桶限速方法与装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795640A (zh) * 2012-10-30 2014-05-14 中兴通讯股份有限公司 一种流量监管方法和装置
CN104580004A (zh) * 2014-12-24 2015-04-29 盛科网络(苏州)有限公司 采用非整数令牌实现流量整形的装置及方法
CN107483351A (zh) * 2017-07-13 2017-12-15 中国银联股份有限公司 一种限流方法及装置

Also Published As

Publication number Publication date
CN108881055A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
TWI694339B (zh) 一種區塊鏈共識方法、設備及系統
US10606653B2 (en) Efficient priority-aware thread scheduling
US20170180220A1 (en) Techniques to Generate Workload Performance Fingerprints for Cloud Infrastructure Elements
CN109558234A (zh) 一种定时任务调度方法和装置
TWI694700B (zh) 資料處理方法和裝置、用戶端
CN114936064B (zh) 一种共享内存的访问方法、装置、设备和存储介质
WO2020259227A1 (zh) 线程任务通信系统、方法及相关产品
CN108304272B (zh) 一种数据io请求的处理方法及装置
WO2021086693A1 (en) Management of multiple physical function non-volatile memory devices
US10521381B2 (en) Self-moderating bus arbitration architecture
US20160381120A1 (en) System for event dissemination
CN108881055B (zh) 令牌管理方法及装置
CN112153114A (zh) 一种分时访问共享器件的方法、系统、设备及介质
CN105095149B (zh) 一种片上系统参数的批处理方法和装置
US10609214B2 (en) Intelligent subscriber profile control and management
CN108984112B (zh) 存储QoS控制策略的实现方法及装置
CN111433738A (zh) 控制器事件队列
CN114138427A (zh) Slo保障方法、装置、节点及存储介质
US9116739B2 (en) Fast and scalable concurrent queuing system
CN112395081A (zh) 一种资源在线自动回收方法、系统、服务器以及存储介质
US20220210791A1 (en) Method and apparatus for maximizing a number of connections that can be executed from a mobile application
CN110968370B (zh) 一种数据处理方法及装置
CN110976235B (zh) 一种静电粉末喷淋处理方法及系统
CA2778576C (fr) Procede et dispositif de traitement de taches optimise pour un fws
CN110807637A (zh) 一种业务处理方法、智能终端及存储介质

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