CN116737084A - 一种队列统计方法、装置、电子设备及存储介质 - Google Patents
一种队列统计方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116737084A CN116737084A CN202310861389.8A CN202310861389A CN116737084A CN 116737084 A CN116737084 A CN 116737084A CN 202310861389 A CN202310861389 A CN 202310861389A CN 116737084 A CN116737084 A CN 116737084A
- Authority
- CN
- China
- Prior art keywords
- target
- accumulated value
- instruction
- queue
- statistical
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000008569 process Effects 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000004364 calculation method Methods 0.000 claims description 30
- 230000001186 cumulative effect Effects 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 230000000694 effects Effects 0.000 claims description 5
- 230000003068 static effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 11
- 238000009825 accumulation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种队列统计方法、装置、电子设备及存储介质,涉及数据处理技术领域,方法应用于芯片,包括:获取针对目标队列的目标统计指令;响应于目标统计指令,从SRAM中读取目标队列的累计值;基于所读取的累计值,获得目标队列当前的目标累计值;基于目标累计值,生成目标队列的最终累计值;判断最终累计值是否超过预设阈值;在最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM中目标队列对应的位置处;在最终累计值超过预设阈值的情况下,读取DRAM中目标队列的统计结果,基于最终累计值更新统计结果,并向DRAM中写入目标队列更新后的统计结果。应用本发明实施例提供的方案能够缩短队列统计过程的时长。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种队列统计方法、装置、电子设备及存储介质。
背景技术
随着芯片的不断发展,芯片的集成度和功能的复杂度都在不断提升。对于芯片中的一些重要模块或业务,需监控并分析其动态的发展规律。芯片内部通过为不同的模块或业务设定不同的统计操作,并将统计结果记录于不同的队列中,以对重要模块或业务进行监控及分析,例如,统计芯片处理报文的数量等。
相关技术中,芯片在进行队列统计的过程中,针对每一队列的统计指令,都需要对DRAM(Dynamic Random Access Memory,动态随机存储器)进行读写操作,具体的,需要从DRAM中读取队列数据,根据队列数据进行统计处理生成统计结果,并将统计结果写入DRAM中保存。然而,受DRAM自身的读写机制的影响,对DRAM进行的每次读写过程都存在一定的时延,随着业务场景的复杂度不断提高,使得队列的数目和队列统计指令下发的次数增大,利用相关技术中的方案进行队列统计将频繁地对DRAM进行读写,使得队列统计过程的时长较长。
发明内容
本发明实施例的目的在于提供一种队列统计方法、装置、电子设备及存储介质,以缩短队列统计过程的时长。具体技术方案如下:
第一方面,本发明实施例提供了一种队列统计方法,应用于芯片,所述方法包括:
获取针对目标队列的目标统计指令;
响应于所述目标统计指令,从静态随机存储器SRAM中读取所述目标队列的累计值;
基于所读取的累计值,获得所述目标队列当前的目标累计值,所述目标累计值为针对所述目标队列的在先指令中最新的指令生效后的最终累计值;
基于所述目标累计值,进行所述目标统计指令指示的计算操作,生成所述目标队列的最终累计值;
判断所述最终累计值是否超过预设阈值;
在所述最终累计值未超过所述预设阈值的情况下,将所述最终累计值写入SRAM中所述目标队列对应的位置处;
在所述最终累计值超过所述预设阈值的情况下,读取动态随机存储器DRAM中所述目标队列的统计结果,基于所述最终累计值更新所述统计结果,并向所述DRAM中写入所述目标队列更新后的统计结果。
本发明的一个实施例中,所述基于所读取的累计值,获得所述目标队列当前的目标累计值,包括:
在所述目标统计指令处于每一读时钟周期的过程中,判断当前处于写时钟周期的统计指令中是否存在与所述目标统计指令针对同一队列的第一指令,其中,所述读时钟周期为:所述芯片响应统计指令后从SRAM中读取目标累计值的时钟周期,所述写时钟周期为:所述芯片响应统计指令后向SRAM中写入最终累计值的时钟周期;
若存在所述第一指令,在所述目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第一指令对应的最终累计值作为所述目标队列的目标累计值;
若不存在所述第一指令,选取所读取的累计值作为所述目标队列的目标累计值。
本发明的一个实施例中,所述基于所读取的累计值,获得所述目标队列当前的目标累计值,包括:
在所述目标统计指令处于输入状态的过程中,判断当前处于前预设数量个读时钟周期的统计指令中是否存在与所述目标统计指令针对同一队列的第二指令,其中,所述读时钟周期为:所述芯片响应统计指令后从SRAM中读取目标累计值的时钟周期;
若存在所述第二指令,在所述目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第二指令对应的最终累计值作为所述目标队列的目标累计值;
若不存在所述第二指令,选取所读取的累计值作为所述目标队列的目标累计值。
本发明的一个实施例中,所述方法还包括:
上报所述目标队列更新后的统计结果。
本发明的一个实施例中,所述方法还包括:
在所述最终累计值超过所述预设阈值的情况下,将所述SRAM中所述目标队列的累计值清零。
第二方面,本发明实施例提供了一种队列统计装置,应用于芯片,所述装置包括:
指令获取模块,用于获取针对目标队列的目标统计指令;
累计值读取模块,用于响应于所述目标统计指令,从静态随机存储器SRAM中读取所述目标队列的累计值;
目标累计值获取模块,用于基于所读取的累计值,获得所述目标队列当前的目标累计值,所述目标累计值为针对所述目标队列的在先指令中最新的指令生效后的最终累计值;
最终累计值获取模块,用于基于所述目标累计值,进行所述目标统计指令指示的计算操作,生成所述目标队列的最终累计值;
条件判断模块,用于判断所述最终累计值是否超过预设阈值;
SRAM写入模块,用于在所述最终累计值未超过所述预设阈值的情况下,将所述最终累计值写入SRAM中所述目标队列对应的位置处;
DRAM写入模块,用于在所述最终累计值超过所述预设阈值的情况下,读取动态随机存储器DRAM中所述目标队列的统计结果,基于所述最终累计值更新所述统计结果,并向所述DRAM中写入所述目标队列更新后的统计结果。
本发明的一个实施例中,所述目标累计值获取模块,包括:
第一判断子模块,用于在所述目标统计指令处于每一读时钟周期的过程中,判断当前处于写时钟周期的统计指令中是否存在与所述目标统计指令针对同一队列的第一指令,其中,所述读时钟周期为:所述芯片响应统计指令后从SRAM中读取目标累计值的时钟周期,所述写时钟周期为:所述芯片响应统计指令后向SRAM中写入最终累计值的时钟周期;
第一选取子模块,用于若存在所述第一指令,在所述目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第一指令对应的最终累计值作为所述目标队列的目标累计值;若不存在所述第一指令,选取所读取的累计值作为所述目标队列的目标累计值。
本发明的一个实施例中,所述目标累计值获取模块,包括:
第二判断子模块,用于在所述目标统计指令处于输入状态的过程中,判断当前处于前预设数量个读时钟周期的统计指令中是否存在与所述目标统计指令针对同一队列的第二指令,其中,所述读时钟周期为:所述芯片响应统计指令后从SRAM中读取目标累计值的时钟周期;
第二选取子模块,用于若存在所述第二指令,在所述目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第二指令对应的最终累计值作为所述目标队列的目标累计值;若不存在所述第二指令,选取所读取的累计值作为所述目标队列的目标累计值。
本发明的一个实施例中,所述装置还包括:
结果上报模块,用于上报所述目标队列更新后的统计结果。
本发明的一个实施例中,所述装置还包括:
SRAM清零模块,用于在所述最终累计值超过所述预设阈值的情况下,将所述SRAM中所述目标队列的累计值清零。
第三方面,本发明实施例提供了一种电子设备,包括芯片、通信接口、存储器和通信总线,其中,芯片,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
芯片,用于执行存储器上所存放的程序时,实现任一所述的队列统计方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被芯片执行时实现任一所述的队列统计方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行任一所述的队列统计方法。
本发明实施例有益效果:
本发明实施例提供的一种队列统计方法,在目标队列的最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM,利用SRAM暂存目标队列的最终累计值,在最终累计值超过预设阈值的情况下,根据最终累计值更新DRAM中的统计结果,保证了DRAM中统计结果的准确性。并由于仅在目标队列的最终累计值超过预设阈值的情况下,才会读写DRAM更新统计结果,减少了对DRAM的读写次数,从而缩短了队列统计的时长。
并且,由于减少了对DRAM的读写次数,从而减少了对DRAM的访问带宽,所以即使在高密度的队列统计的情况下仍然可以实现队列统计的正常进行。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的第一种队列统计方法的流程示意图;
图2为本发明实施例提供的第二种队列统计方法的流程示意图;
图3为本发明实施例提供的第三种队列统计方法的流程示意图;
图4为本发明实施例提供的第四种队列统计方法的流程示意图;
图5为本发明实施例提供的第五种队列统计方法的流程示意图;
图6为本发明实施例提供的一种队列统计装置的结构示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。
为了缩短队列统计过程的时长,本发明实施例提供了一种队列统计方法、装置、电子设备及存储介质,下面分别进行具体说明。
本发明实施例提供了一种队列统计方法,应用于芯片,参见图1,图1为本发明实施例提供的第一种队列统计方法的流程示意图。上述方法可以包括以下步骤S101-S107。
S101,获取针对目标队列的目标统计指令。
上述目标统计指令可以为任何对目标队列进行统计计算的指令,例如,目标统计指令为对目标队列对应的统计值进行累加或累减的计算指令等。
上述目标统计指令可以根据不同场景的需求指示不同的操作。例如,目标统计指令可以是指示统计预设时间段内芯片处理报文的数量或者芯片转发的数据量等。
S102,响应于目标统计指令,从SRAM(Static Random Access Memory,静态随机存储器)中读取目标队列的累计值。
SRAM中存储着各个队列的累计值,并根据统计指令的写操作实时对各队列的累计值进行更新。
其中,从SRAM中读取到的目标队列的累计值为芯片响应上一针对目标队列的统计指令,对目标队列对应的统计值进行累计后写入SRAM中的累计值。
具体的,响应于目标统计指令,在目标统计指令处于输入状态的情况下,向SRAM发起读请求,并在目标统计指令处于第四个读时钟周期的情况下,获取在输入状态时从SRAM中读取到的目标队列的累计值。
S103,基于所读取的累计值,获得目标队列当前的目标累计值。
其中,上述目标累计值为针对目标队列的在先指令中最新的指令生效后的最终累计值。
一般在队列统计过程中,一个统计指令需要经过多个读时钟周期和多个写时钟周期才能实现对数据的读写。其中,读时钟周期为芯片响应统计指令后从SRAM中读数据的时钟周期,写时钟周期为芯片响应统计指令后从SRAM中写数据的时钟周期。
上述读数据的操作在本发明的方案中对应从SRAM中读取目标累计值的操作,因此,在本发明的方案中,读时钟周期为:芯片响应统计指令后从SRAM中读取目标累计值的时钟周期。
上述写数据的操作在本发明的方案中对应向SRAM中写入最终累计值的操作,因此,在本发明的方案中,写时钟周期为:芯片响应统计指令后向SRAM中写入最终累计值的时钟周期。
对于目标队列,上一次写入SRAM中的最终累计值会作为下一次从SRAM中读取的目标累计值。
S104,基于目标累计值,进行目标统计指令指示的计算操作,生成目标队列的最终累计值。
在获取到目标统计指令时,目标统计指令中还包含对目标队列进行统计计算的计算类型以及操作数,根据该操作数,对目标队列的目标累计值进行计算类型对应的计算,将计算后的结果作为目标队列的最终累计值。上述计算类型可以为加计算、减计算、乘计算、除计算等各类计算。
一个例子中,目标统计指令为对目标队列进行加计算的指令,若操作数为3,目标累计值为5,对目标累计值5进行操作数为3的加计算,计算得到的结果为8,则最终累计值为8。
一个例子中,目标统计指令为对目标队列进行减计算的指令,若操作数为3,目标累计值为5,对目标累计值5进行操作数为3的减计算,计算得到的结果为2,则最终累计值为2。
S105,判断最终累计值是否超过预设阈值。
在获取到目标统计指令时,目标统计指令中包含目标队列的预设阈值,上述预设阈值可以根据实际的统计场景设定,其中,预设阈值越大,对DRAM的读写频率越低,预设阈值越小,对DRAM的读写频率越高,根据实际的统计场景,设定合适的预设阈值,此处不做具体限定。一个例子1中,预设阈值设定为20。
S106,在最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM中目标队列对应的位置处。
SRAM中存储着芯片中各个队列的累计值。在获取到目标统计指令时,目标统计指令中包含目标队列的队列地址,芯片可以将最终累计值写入SRAM中目标队列的队列地址对应的存储位置。
对应上述例子1,预设阈值为20,若最终累计值为18,则将最终累计值18写入SRAM中目标队列对应的位置处。
S107,在最终累计值超过预设阈值的情况下,读取DRAM中目标队列的统计结果,基于最终累计值更新统计结果,并向DRAM中写入目标队列更新后的统计结果。
在最终累计值超过预设阈值的情况下,芯片读取到的DRAM中目标队列的统计结果为上一次对目标队列进行队列统计更新后的结果。
可以对当前读取的目标队列的统计结果与最终累计值进行目标统计指令指示的计算操作,计算后的结果作为更新后的目标队列的统计结果。
一个例子2中,目标统计指令为对目标队列进行加计算的指令,预设阈值为20,最终累计值为24超过预设阈值20,若读取出DRAM中目标队列的统计结果为50,则在统计结果50的基础上,加上最终累计值24,计算得到的结果为74,则更新后的目标队列的统计结果为74。
在本发明实施例中,在目标队列的最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM,利用SRAM暂存目标队列的最终累计值,在最终累计值超过预设阈值的情况下,根据最终累计值更新DRAM中的统计结果,保证了DRAM中统计结果的准确性。并由于仅在目标队列的最终累计值超过预设阈值的情况下,才会读写DRAM更新统计结果,减少了对DRAM的读写次数,从而缩短了队列统计的时长。
并且,由于减少了对DRAM的读写次数,从而减少了对DRAM的访问带宽,所以即使在高密度的队列统计的情况下仍然可以实现队列统计的正常进行。
而且,一般在高密度的队列统计的情况下,若访问DRAM的时延较大,常常会出现统计指令积压和丢弃的情况。而本发明实施例由于减少了对DRAM的读写次数,缩短了访问DRAM的时延,从而减少了统计指令积压和丢弃的情况。
另外,相关技术中还有通过在芯片内部将队列的统计指令打包,将打包后的统计指令发送并存储于DRAM中,然后将打包后的统计指令以大数据块的形式从DRAM中取出,统一进行处理并将处理后的统计结果写回DRAM中保存,以实现高密度的队列统计。但由于打包、存储、读取大量的统计指令均需要耗费较多时长,并且打包后的统计指令需要存储一段时间后才会被响应,使得队列统计时长较长。而本发明实施例不需要打包、存储、读取大量的统计指令,也不需要等到存储一段时间后被响应,可以极大缩短队列统计的时长,从而提升队列统计的效率。
此外,在读写时钟周期有多个的情况下,在上一次计算得到的目标队列对应的最终累计值写入SRAM之前,可能已经再次从SRAM中读出的目标队列的目标累计值,则此时读取的目标累计值不是最新的最终累计值,则会出现统计错误的情况。
一个例子A中,统计指令需要经过四个读时钟周期和两个写时钟周期实现对SRAM中累计值的更新,假设当前时刻存在两个针对目标队列的统计指令,按照处理时间从后至前的顺序依次为统计指令1、统计指令3。统计指令1处于第三个读时钟周期等待读取SRAM中目标队列的累计值、统计指令3处于第二个写时钟周期正在向SRAM中写入数据。在此情况下,统计指令3执行结束后的SRAM中存储的累计值应当是当前最新的累计值。
当处理时间处于下一时钟周期的情况下,统计指令1处于第四个读时钟周期正在读取目标队列的累计值,统计指令3处于已完成更新,向SRAM中已写入最新的累计值。但芯片响应统计指令1将在处于第四个读时钟周期的情况下读取到统计指令1在输入状态发起读请求时读到的累计值,该累计值为统计指令3执行前的累计值,芯片在后续响应统计指令1进行统计的过程中,也将根据统计指令3更新前的累计值进行计算操作对累计值再次更新。但实际上,理想情况下应该是:统计指令1根据统计指令3更新后的最新的累计值进行统计,对累计值进行更新得到统计指令1更新后的累计值。也就是说,统计指令1应该在统计指令3更新后的累计值的基础上进行统计,而不是在统计指令3更新前的累计值的基础上进行统计。因此,在此种情况下不能实现累计值的准确更新,从而使得后续生成的统计结果也是不准确的。
为了解决上述问题,本发明中通过图2和图3的实施例提出了解决方案。
本发明的一个实施例中,参见图2,图2为本发明实施例提供的第二种队列统计方法的流程示意图。图1中的步骤S103可以通过以下步骤S201-S203实现。
S201,在目标统计指令处于每一读时钟周期的过程中,判断当前处于写时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第一指令。
其中,第一指令只是用于表征处于读时钟周期的目标统计指令与当前处于写时钟周期的统计指令中有针对同一队列的指令,并不限定第一指令具体是什么指令,第一指令可以是针对目标队列的任一指令,如,读指令、写指令、累加指令、累减指令等。
具体的,可以通过判断目标统计指令的队列地址与当前处于写时钟周期的统计指令的队列地址是否相同,来判断统计指令是否针对同一队列,若队列地址相同,说明针对同一队列,存在第一指令;若队列地址不同,说明不针对同一队列,不存在第一指令。
随着时钟周期的变化目标统计指令会依次经过各个读时钟周期,与此同时,其他统计指令所处的时钟周期也会同步发生变化,也就是在目标统计指令处于不同读时钟周期时,处于写时钟周期中的指令均不相同,在目标统计指令处于每一读时钟周期的过程中,均要判断是否存在第一指令。
对应上述例子A,在目标统计指令处于四个读时钟周期中的每一读时钟周期的过程中,判断当前处于第一个写时钟周期和第二个写时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第一指令。
S202,若存在第一指令,在目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第一指令对应的最终累计值作为目标队列的目标累计值。
若当前处于写时钟周期的统计指令中有多个存在第一指令,则选取在时序上最后一个第一指令对应的最终累计值作为目标队列的目标累计值;若当前处于写时钟周期的统计指令中存在一个第一指令,则选取该第一指令对应的最终累计值作为目标队列的目标累计值。
对应上述例子A,在目标统计指令处于第四个读时钟周期的情况下,若当前处于第一个写时钟周期和第二个写时钟周期的统计指令都是与目标统计指令针对同一队列的第一指令,则选取当前处于第一个写时钟周期的第一指令对应的最终累计值作为目标队列的目标累计值。
S203,若不存在第一指令,选取所读取的累计值作为目标队列的目标累计值。
若在执行步骤S201的过程中未检测到第一指令,则选取步骤S102中从SRAM中读取的累计值作为目标队列的目标累计值。
在本发明实施例中,在目标统计指令处于每一读时钟周期的过程中,判断当前处于写时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第一指令,在存在第一指令的情况下,在目标统计指令处于最后一个读时钟周期时,选取当前最新确定的第一指令对应的最终累计值作为目标队列的目标累计值,该第一指令对应的最终累计值是最新更新的累计值,但还未被写入SRAM中,在后续可以根据当前最新更新的累计值进行后续计算,保证了后续更新的准确性,避免了由于存在多个写时钟周期造成的更新不准确。
本发明的一个实施例中,参见图3,图3为本发明实施例提供的第三种队列统计方法的流程示意图。图1中的步骤S103可以通过以下步骤S301-S303实现。
S301,在目标统计指令处于输入状态的过程中,判断当前处于前预设数量个读时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第二指令。
其中,预设数量小于读时钟周期的个数。具体的,对应上述例子A,预设数量可以为写时钟周期的个数,即预设数量为2。
其中,第二指令的存在只是用于表征处于输入状态的目标统计指令与当前处于前预设数量个读时钟周期的统计指令中存在针对同一队列的指令,并不限定第一指令具体是什么指令,第一指令可以是针对目标队列的任一指令,如,读指令、写指令、累加指令、累减指令等。
具体的,可以通过判断目标统计指令的队列地址与当前处于前预设数量个读时钟周期的统计指令的队列地址是否相同,来判断统计指令是否针对同一队列,若队列地址相同,说明针对同一队列,存在第一指令;若队列地址不同,说明不针对同一队列,不存在第一指令。
对应上述例子A,在目标统计指令处于输入状态的过程中,判断当前处于第一个读时钟周期和第二个读时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第二指令。
S302,若存在第二指令,在目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第二指令对应的最终累计值作为目标队列的目标累计值。
若当前处于前预设数量个读时钟周期的统计指令中有多个存在第二指令,则选取在时序上最后一个第二指令对应的最终累计值作为目标队列的目标累计值;若当前处于前预设数量个读时钟周期的统计指令中存在一个第二指令,则选取该第二指令对应的最终累计值作为目标队列的目标累计值。
对应上述例子A,在目标统计指令处于输入状态的过程中,若当前处于第一个读时钟周期和第二个读时钟周期的统计指令都是与目标统计指令针对同一队列的第二指令,则选取当前处于第一个读时钟周期的第二指令对应的最终累计值作为目标队列的目标累计值。
S303,若不存在第二指令,选取所读取的累计值作为目标队列的目标累计值。
若在执行步骤S301的过程中未检测到第二指令,则选取步骤S102中从SRAM中读取的累计值作为目标队列的目标累计值。
在本发明实施例中,在目标统计指令处于输入状态的过程中,判断当前处于前预设数量个读时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第二指令,在存在第二指令的情况下,在目标统计指令处于最后一个读时钟周期时,选取最新确定的第二指令对应的最终累计值作为目标队列的目标累计值,该第二指令对应的最终累计值是最新更新的累计值,但还未被写入SRAM中,在后续可以根据当前最新更新的累计值进行后续计算,保证了后续更新的准确性。
本发明的一个实施例中,芯片还可以上报目标队列更新后的统计结果。
对应上述例子2,上报目标队列更新后的统计结果74。
在本发明实施例中,芯片通过上报目标队列更新后的统计结果,从而可以根据更新后的统计结果进行后续的相关操作,例如,对更新后的统计结果进行记录来监控目标队列对应的模块或者业务的状态,或者对更新后的统计结果进行分析来判定目标队列对应的模块或者业务是否实现其功能等。
本发明的一个实施例中,芯片还可以在最终累计值超过预设阈值的情况下,将SRAM中目标队列的累计值清零。
在本发明实施例中,通过将小于预设阈值的累计值暂存在SRAM中,在累计值超过预设阈值时,读写DRAM将累计值进行统计,因此,在累计值超过预设阈值时,对于SRAM来讲,该累计值已超过预设阈值不需要进行存储,需要将目标队列的累计值清零,以使下一次针对目标队列的统计指令可以正常执行。
参见图4,图4为本发明实施例提供的第四种队列统计方法的流程示意图,利用图4对上述图2和图3的实施例的统计过程进行具体的说明。本例以统计指令需要经过四个读时钟周期和两个写时钟周期实现对SRAM中累计值的更新为例。如图4所示,队列统计过程通过三部分实现:统计流水级、存储、合并计算三部分组成。
统计流水级部分用于实现以下过程:在接收到队列统计指令发送处发送的目标统计指令后,目标统计指令处于输入状态,在目标统计指令处于输入状态的情况下,向SRAM发起读请求,并判断当前处于第一个读时钟周期和第二个读时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第二指令,判断是否存在第二指令的过程在本发明中称作依赖关系检查,依赖关系检查用于判断处于输入状态的目标统计指令与当前处于前二个读时钟周期的统计指令是否针对同一队列。
在完成依赖关系检查后,生成依赖关系检查结果,依赖关系检查结果包括:存在第二指令,表征存在与目标统计指令针对同一队列的指令;不存在第二指令,表征不存在与目标统计指令针对同一队列的指令。
具体的,在输入状态完成第一次依赖关系检查后,生成依赖关系检查结果0。并在每一读时钟周期(即从第一个读时钟周期至第四个读时钟周期)内,依次进行流水处理,依次生成依赖关系检查结果1-依赖关系检查结果4。
在完成第一次依赖关系检查后,目标统计指令进入读时钟周期,在每一读时钟周期(即从第一个读时钟周期至第四个读时钟周期),判断当前处于第一个写时钟周期和第二个写时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第一指令,判断是否存在第一指令的过程在本发明中称作读写一致性检查,读写一致性检查用于判断处于读时钟周期的目标统计指令与前处于写时钟周期的统计指令是否针对同一队列。
在完成读写一致性检查后,生成读写一致性检查结果,读写一致性检查结果包括:存在第一指令,表征存在与目标统计指令针对同一队列的指令;不存在第一指令,表征不存在与目标统计指令针对同一队列的指令。
具体的,在每次完成读写一致性检查后,分别生成读写一致性检查结果1-读写一致性检查结果4。
在读写一致性检查结果1-读写一致性检查结果4表示存在第一指令的情况下,选取最新确定的第一指令对应的最终累计值作为目标队列的目标累计值,若不存在第一指令,则从SRAM中读取的累计值作为目标队列的目标累计值。
在依赖关系检查结果0-依赖关系检查结果4表示存在第二指令的情况下,选取最新确定的第二指令对应的最终累计值作为目标队列的目标累计值,若不存在第二指令,则选取从SRAM中读取的累计值作为目标队列的目标累计值。
另外,当读写一致性检查结果和依赖关系检查结果都表征存在与目标统计指令针对同一队列的指令的情况下,依赖关系检查结果优先级较高,此时根据依赖关系检查结果选择目标累计值,也就是选取在时序上前于目标统计指令且距离最近的指令处理后的结果。
此外,响应于在输入状态向SRAM发起的读请求,在目标统计指令处于第四个读时钟周期的情况下,从SRAM中目标队列当前的累计值。
在根据读写一致性检查结果、依赖关系检查结果以及SRAM中读取的累计值进行了目标累计值选择后,根据选取出的目标累计值,进行目标统计指令指示的计算操作,完成队列累计值计算,生成目标队列的最终累计值。
在生成目标队列的最终累计值之后,目标统计指令处于第一个写时钟周期,此时判断最终累计值是否超过预设阈值,若最终累计值未超过预设阈值,则生成写请求,向SRAM中目标队列对应位置处写入最终累计值,若最终累计值超过预设阈值,则将最终累计值累计至DRAM。
存储部分用于实现以下过程:在最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM,在最终累计值超过预设阈值的情况下,将最终累计值存储至cache(高速缓冲存储器),并生成读DRAM请求,以使cache生成DRAM读请求,从DRAM中读取目标队列的统计结果,并将统计结果存储至cache。
合并计算部分用于实现以下过程:根据从cache读取的目标队列的统计结果和最终累计值进行合并计算生成更新后的统计结果,具体的,将统计结果和最终累计值进行累加,生成并向统计结果接收处上报更新后的统计结果。
存储部分还用于实现以下过程:将更新后的统计结果存储至cache,经过cache生成DRAM写请求,将更新后的统计结果写入DRAM中。
在本发明实施例中,通过统计指令流水处理,可以让队列统计过程更加高效,并且通过读写一致性检查和依赖关系检查的流水处理,使得后续进行累计计算可以基于准确的目标累计值,使得可以生成准确的最终累计值,从而可以确保后续更新的统计结果的准确性。
一个例子中,参见图5,图5为本发明实施例提供的第五种队列统计方法的流程示意图。队列统计过程可以通过以下步骤S501-507实现。
S501,获取针对目标队列的目标统计指令。
具体的,可以接收前级发送的针对目标队列的目标统计指令,前级指的是芯片中实施发送队列统计指令功能的部分。
S502,响应于目标统计指令,从SRAM中读取目标队列的累计值,并在目标统计指令处于输入状态时进行依赖关系检查,在目标统计指令处于每一读时钟周期时进行读写一致性检查和依赖关系检查。
对应上述例子A,响应于目标统计指令,在输入状态向SRAM发起读请求,在第四个读时钟周期从SRAM中读取目标队列的累计值,并在输入状态时开始进行依赖关系检查,并在第一个读时钟周期开始进行读写一致性检查和依赖关系检查,并在后续三个读时钟周期进行依赖关系检查与读写一致性检查的流水处理。
S503,根据从SRAM中读取到的目标队列的累计值以及读时钟周期的读写一致性检查结果和依赖关系检查结果,进行数据选择,生成目标累计值。
上述数据选择过程可参见图2和图3的实施例中的相关描述。
S504,根据目标累计值,进行目标统计指令指示的计算操作,生成目标队列的最终累计值。
S505,判断最终累计值是否超过预设阈值。
S506,若最终累计值未超过预设阈值,将最终累计值写入SRAM。
S507,若最终累计值超过预设阈值,将SRAM中目标队列当前的累计值清零,发起DRAM读请求,从DRAM中读取目标队列的统计结果,并将目标队列的最终累计值与统计结果进行累计,生成更新后的统计结果,并将更新后的统计结果写入DRAM。
本发明实施例还提供了一种队列统计装置,应用于芯片,参见图6,图6为本发明实施例提供的一种队列统计装置的结构示意图,上述装置包括:
指令获取模块601,用于获取针对目标队列的目标统计指令;
累计值读取模块602,用于响应于目标统计指令,从SRAM中读取目标队列的累计值;
目标累计值获取模块603,用于基于所读取的累计值,获得目标队列当前的目标累计值;
最终累计值获取模块604,用于基于目标累计值,进行目标统计指令指示的计算操作,生成目标队列的最终累计值;
条件判断模块605,用于判断最终累计值是否超过预设阈值;
SRAM写入模块606,用于在最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM中目标队列对应的位置处;
DRAM写入模块607,用于在最终累计值超过预设阈值的情况下,读取DRAM中目标队列的统计结果,基于最终累计值更新统计结果,并向DRAM中写入目标队列更新后的统计结果。
在本发明实施例中,在目标队列的最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM,利用SRAM暂存目标队列的最终累计值,在最终累计值超过预设阈值的情况下,根据最终累计值更新DRAM中的统计结果,保证了DRAM中统计结果的准确性。并由于仅在目标队列的最终累计值超过预设阈值的情况下,才会读写DRAM更新统计结果,减少了对DRAM的读写次数,从而缩短了队列统计的时长。
本发明的一个实施例中,目标累计值获取模块603,包括:
第一判断子模块,用于在目标统计指令处于每一读时钟周期的过程中,判断当前处于写时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第一指令,其中,读时钟周期为:芯片响应统计指令后从SRAM中读取目标累计值的时钟周期,写时钟周期为:芯片响应统计指令后向SRAM中写入最终累计值的时钟周期;
第一选取子模块,用于若存在第一指令,在目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第一指令对应的最终累计值作为目标队列的目标累计值;若不存在第一指令,选取所读取的累计值作为目标队列的目标累计值。
在本发明实施例中,在目标统计指令处于每一读时钟周期的过程中,判断当前处于写时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第一指令,在存在第一指令的情况下,在目标统计指令处于最后一个读时钟周期时,选取当前最新确定的第一指令对应的最终累计值作为目标队列的目标累计值,该第一指令对应的最终累计值是最新更新的累计值,但还未被写入SRAM中,在后续可以根据当前最新更新的累计值进行后续计算,保证了后续更新的准确性,避免了由于存在多个读写时钟周期造成的更新不准确。
本发明的一个实施例中,目标累计值获取模块603,包括:
第二判断子模块,用于在目标统计指令处于输入状态的过程中,判断当前处于前预设数量个读时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第二指令,其中,读时钟周期为:芯片响应统计指令后从SRAM中读取目标累计值的时钟周期;
第二选取子模块,用于若存在第二指令,在目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第二指令对应的最终累计值作为目标队列的目标累计值;若不存在第二指令,选取所读取的累计值作为目标队列的目标累计值。
在本发明实施例中,在目标统计指令处于输入状态的过程中,判断当前处于前预设数量个读时钟周期的统计指令中是否存在与目标统计指令针对同一队列的第二指令,在存在第二指令的情况下,在目标统计指令处于最后一个读时钟周期时,选取最新确定的第二指令对应的最终累计值作为目标队列的目标累计值,该第二指令对应的最终累计值是最新更新的累计值,但还未被写入SRAM中,在后续可以根据当前最新更新的累计值进行后续计算,保证了后续更新的准确性。
本发明的一个实施例中,上述装置还包括:结果上报模块,用于上报目标队列更新后的统计结果。
在本发明实施例中,芯片通过上报目标队列更新后的统计结果,从而可以根据更新后的统计结果进行后续的相关操作,例如,对更新后的统计结果进行记录来监控目标队列对应的模块或者业务的状态,或者对更新后的统计结果进行分析来判定目标队列对应的模块或者业务是否实现其功能等。
本发明的一个实施例中,上述装置还包括:SRAM清零模块,用于在最终累计值超过预设阈值的情况下,将SRAM中目标队列的累计值清零。
在本发明实施例中,通过将小于预设阈值的累计值暂存在SRAM中,在累计值超过预设阈值时,读写DRAM将累计值进行统计,因此,在累计值超过预设阈值时,对于SRAM来讲,该累计值已超过预设阈值不需要进行存储,需要将目标队列的累计值清零,以使下一次针对目标队列的统计指令可以正常执行。
本发明实施例还提供了一种电子设备,参见图7,图7为本发明实施例提供的一种电子设备的结构示意图。如图7所示,包括芯片701、通信接口702、存储器703和通信总线704,其中,芯片701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
芯片701,用于执行存储器703上所存放的程序时,实现上述任一队列统计方法的步骤。
应用本发明实施例提供的电子设备进行队列统计时,在目标队列的最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM,利用SRAM暂存目标队列的最终累计值,在最终累计值超过预设阈值的情况下,根据最终累计值更新DRAM中的统计结果,保证了DRAM中统计结果的准确性。并由于仅在目标队列的最终累计值超过预设阈值的情况下,才会读写DRAM更新统计结果,减少了对DRAM的读写次数,从而缩短了队列统计的时长。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述芯片的存储装置。
上述的芯片可以是通用芯片,包括中央芯片(Central Processing Unit,CPU)、网络芯片(Network Processor,NP)等;还可以是数字信号芯片(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被芯片执行时实现上述任一队列统计方法的步骤。
应用本发明实施例提供的计算机可读存储介质中存储的计算机程序进行队列统计时,在目标队列的最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM,利用SRAM暂存目标队列的最终累计值,在最终累计值超过预设阈值的情况下,根据最终累计值更新DRAM中的统计结果,保证了DRAM中统计结果的准确性。并由于仅在目标队列的最终累计值超过预设阈值的情况下,才会读写DRAM更新统计结果,减少了对DRAM的读写次数,从而缩短了队列统计的时长。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一队列统计方法。
应用本发明实施例提供的计算机程序产品进行队列统计时,在目标队列的最终累计值未超过预设阈值的情况下,将最终累计值写入SRAM,利用SRAM暂存目标队列的最终累计值,在最终累计值超过预设阈值的情况下,根据最终累计值更新DRAM中的统计结果,保证了DRAM中统计结果的准确性。并由于仅在目标队列的最终累计值超过预设阈值的情况下,才会读写DRAM更新统计结果,减少了对DRAM的读写次数,从而缩短了队列统计的时长。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、计算机可读存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种队列统计方法,其特征在于,应用于芯片,所述方法包括:
获取针对目标队列的目标统计指令;
响应于所述目标统计指令,从静态随机存储器SRAM中读取所述目标队列的累计值;
基于所读取的累计值,获得所述目标队列目标累计值,所述目标累计值为针对所述目标队列的在先指令中最新的指令生效后的最终累计值;
基于所述目标累计值,进行所述目标统计指令指示的计算操作,生成所述目标队列的最终累计值;
判断所述最终累计值是否超过预设阈值;
在所述最终累计值未超过所述预设阈值的情况下,将所述最终累计值写入SRAM中所述目标队列对应的位置处;
在所述最终累计值超过所述预设阈值的情况下,读取动态随机存储器DRAM中所述目标队列的统计结果,基于所述最终累计值更新所述统计结果,并向所述DRAM中写入所述目标队列更新后的统计结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所读取的累计值,获得所述目标队列当前的目标累计值,包括:
在所述目标统计指令处于每一读时钟周期的过程中,判断当前处于写时钟周期的统计指令中是否存在与所述目标统计指令针对同一队列的第一指令,其中,所述读时钟周期为:所述芯片响应统计指令后从SRAM中读取目标累计值的时钟周期,所述写时钟周期为:所述芯片响应统计指令后向SRAM中写入最终累计值的时钟周期;
若存在所述第一指令,在所述目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第一指令对应的最终累计值作为所述目标队列的目标累计值;
若不存在所述第一指令,选取所读取的累计值作为所述目标队列的目标累计值。
3.根据权利要求1所述的方法,其特征在于,所述基于所读取的累计值,获得所述目标队列当前的目标累计值,包括:
在所述目标统计指令处于输入状态的过程中,判断当前处于前预设数量个读时钟周期的统计指令中是否存在与所述目标统计指令针对同一队列的第二指令,其中,所述读时钟周期为:所述芯片响应统计指令后从SRAM中读取目标累计值的时钟周期;
若存在所述第二指令,在所述目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第二指令对应的最终累计值作为所述目标队列的目标累计值;
若不存在所述第二指令,选取所读取的累计值作为所述目标队列的目标累计值。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
上报所述目标队列更新后的统计结果。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
在所述最终累计值超过所述预设阈值的情况下,将所述SRAM中所述目标队列的累计值清零。
6.一种队列统计装置,其特征在于,应用于芯片,所述装置包括:
指令获取模块,用于获取针对目标队列的目标统计指令;
累计值读取模块,用于响应于所述目标统计指令,从静态随机存储器SRAM中读取所述目标队列的累计值;
目标累计值获取模块,用于基于所读取的累计值,获得所述目标队列当前的目标累计值,所述目标累计值为针对所述目标队列的在先指令中最新的指令生效后的最终累计值;
最终累计值获取模块,用于基于所述目标累计值,进行所述目标统计指令指示的计算操作,生成所述目标队列的最终累计值;
条件判断模块,用于判断所述最终累计值是否超过预设阈值;
SRAM写入模块,用于在所述最终累计值未超过所述预设阈值的情况下,将所述最终累计值写入SRAM中所述目标队列对应的位置处;
DRAM写入模块,用于在所述最终累计值超过所述预设阈值的情况下,读取动态随机存储器DRAM中所述目标队列的统计结果,基于所述最终累计值更新所述统计结果,并向所述DRAM中写入所述目标队列更新后的统计结果。
7.根据权利要求6所述的装置,其特征在于,所述目标累计值获取模块,包括:
第一判断子模块,用于在所述目标统计指令处于每一读时钟周期的过程中,判断当前处于写时钟周期的统计指令中是否存在与所述目标统计指令针对同一队列的第一指令,其中,所述读时钟周期为:所述芯片响应统计指令后从SRAM中读取目标累计值的时钟周期,所述写时钟周期为:所述芯片响应统计指令后向SRAM中写入最终累计值的时钟周期;
第一选取子模块,用于若存在所述第一指令,在所述目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第一指令对应的最终累计值作为所述目标队列的目标累计值;若不存在所述第一指令,选取所读取的累计值作为所述目标队列的目标累计值。
8.根据权利要求6所述的装置,其特征在于,所述目标累计值获取模块,包括:
第二判断子模块,用于在所述目标统计指令处于输入状态的过程中,判断当前处于前预设数量个读时钟周期的统计指令中是否存在与所述目标统计指令针对同一队列的第二指令,其中,所述读时钟周期为:所述芯片响应统计指令后从SRAM中读取目标累计值的时钟周期;
第二选取子模块,用于若存在所述第二指令,在所述目标统计指令处于最后一个读时钟周期的情况下,选取最新确定的第二指令对应的最终累计值作为所述目标队列的目标累计值;若不存在所述第二指令,选取所读取的累计值作为所述目标队列的目标累计值。
9.一种电子设备,其特征在于,包括芯片、通信接口、存储器和通信总线,其中,芯片,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
芯片,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被芯片执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310861389.8A CN116737084A (zh) | 2023-07-13 | 2023-07-13 | 一种队列统计方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310861389.8A CN116737084A (zh) | 2023-07-13 | 2023-07-13 | 一种队列统计方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737084A true CN116737084A (zh) | 2023-09-12 |
Family
ID=87911590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310861389.8A Pending CN116737084A (zh) | 2023-07-13 | 2023-07-13 | 一种队列统计方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737084A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117393013A (zh) * | 2023-12-09 | 2024-01-12 | 深圳星云智联科技有限公司 | 统计应用中的高效ddr控制方法及相关装置 |
-
2023
- 2023-07-13 CN CN202310861389.8A patent/CN116737084A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117393013A (zh) * | 2023-12-09 | 2024-01-12 | 深圳星云智联科技有限公司 | 统计应用中的高效ddr控制方法及相关装置 |
CN117393013B (zh) * | 2023-12-09 | 2024-04-09 | 深圳星云智联科技有限公司 | 统计应用中的高效ddr控制方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427859B (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
US10558569B2 (en) | Cache controller for non-volatile memory | |
US9529722B1 (en) | Prefetch with localities and performance monitoring | |
CN116737084A (zh) | 一种队列统计方法、装置、电子设备及存储介质 | |
CN110990438A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN111506580B (zh) | 一种基于中心化块链式账本的交易存储方法 | |
CN111459948B (zh) | 一种基于中心化块链式账本的交易完整性验证方法 | |
CN111159160A (zh) | 一种版本回滚方法、装置、电子设备及存储介质 | |
CN113010376B (zh) | 一种对存储训练数据的云存储系统的监测方法及装置 | |
JP2018536230A (ja) | キャッシュへのアクセス | |
CN112882659B (zh) | 一种信息获得方法、装置、电子设备及存储介质 | |
CN110619434A (zh) | 一种预测还款概率的方法、装置、电子设备和存储介质 | |
CN113722389B (zh) | 数据管理方法、装置、电子设备及计算机可读存储介质 | |
CN110543486B (zh) | 数据变更方法、装置及服务器 | |
CN113946515A (zh) | 代码覆盖率测试方法、装置、计算机设备及存储介质 | |
CN107025266B (zh) | 业务数据的处理方法和装置 | |
CN115174446B (zh) | 一种网络流量统计的方法、装置及电子设备 | |
CN110929102B (zh) | 一种数据处理方法、装置及电子设备 | |
CN112612415B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN117193670B (zh) | 一种清除缓存的方法、装置、存储介质以及电子设备 | |
JP5907558B2 (ja) | マルチインターバルタイマ並びにその制御装置、制御方法及び制御プログラム | |
CN116028515A (zh) | 基于Flink框架的数据处理方法、装置及电子设备 | |
CN117768405A (zh) | 数据传输的流量控制方法及装置、电子设备 | |
CN117057791A (zh) | 计费方法、装置、电子设备和存储介质 | |
CN115248723A (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 |