CN102388360B - 一种统计方法及装置 - Google Patents
一种统计方法及装置 Download PDFInfo
- Publication number
- CN102388360B CN102388360B CN201180001433.3A CN201180001433A CN102388360B CN 102388360 B CN102388360 B CN 102388360B CN 201180001433 A CN201180001433 A CN 201180001433A CN 102388360 B CN102388360 B CN 102388360B
- Authority
- CN
- China
- Prior art keywords
- computer instruction
- counter
- cache
- address
- stored
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种统计方法,包括:执行第一计算机指令;当该第一计算机指令有对应的第一计数器地址,则该第一计数器的值加1;其中该第一计算机指令和该第一计数器地址存储在处理器的cache中。此外,还提供了相应的装置。通过本发明实施例提出的统计方法及装置,对计算机指令的执行次数进行统计时,不需要运行计算机程序,提高了计数的效率,降低了处理器的负担。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种统计方法及装置。
背景技术
通信领域存在许多需要进行计数的场景。例如,对出接口转发的报文的个数进行统计;对由于报文头部校验出现错误而丢弃的报文的个数进行统计等。
通过通信软件中的变量进行计数,是实现计数的主要方式。该方案的特点是,将计数器定义为变量或数组。需要计数时,在变量上执行累加操作,或者在数组成员上执行累加操作。
发明人发现,现有技术存在以下技术问题:
通过软件中的变量进行计数,需要运行计算机程序,降低了计数的效率并增加了处理器的负担。
发明内容
本发明实施例提供一种统计方法及装置,对计算机指令的执行次数进行统计时,不需要运行计算机程序,提高了计数的效率,降低了处理器的负担。
一方面,本发明实施例提供的一种统计方法,包括:
执行第一计算机指令;
当该第一计算机指令有对应的第一计数器地址,则该第一计数器的值加1;其中该第一计算机指令和该第一计数器地址存储在处理器的高速缓存cache中。
另一方面,本发明实施例提供的一种统计装置,包括:
执行单元,用于执行第一计算机指令;
累加单元,用于当该第一计算机指令有对应的第一计数器地址,则该第一计数器的值加1;其中该第一计算机指令和该第一计数器地址存储在处理器的cache中。
可见,通过本发明实施例提出的统计方法及装置,对计算机指令的执行次数进行统计时,不需要运行计算机程序,提高了计数的效率,降低了处理器的负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的统计方法流程图;
图2是本发明实施例提供的一种高速缓存存储的信息的示意图;
图3是本发明实施例提供的另一种高速缓存存储的信息的示意图;
图4是本发明实施例提供的统计装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
本发明实施例提供了一种统计方法,参见图1,图1是本发明实施例提供的一种统计方法流程图,该方法包括:
101:执行第一计算机指令。
具体实现时,处理器执行第一计算机指令可以有多种实现方式,本发明不做具体的限定。例如程序计数器(program counter,PC)计算出第一计算机指令的地址后,地址寄存器(Address Register,AR)将第一计算机指令的地址通过地址总线送至高速缓存(cache)。指令流水线从cache取出的第一计算机指令送至指令寄存器(Instruction Register,IR)。指令译码器(InstructionDecoder,ID)对第一计算机指令进行译码。译码后处理器通过控制电路发出执行第一计算机指令所需要的各种控制信息。通过以上步骤第一计算机指令被执行。
102:当该第一计算机指令有对应的第一计数器地址,则该第一计数器的值加1。其中该第一计算机指令和该第一计数器地址存储在处理器的高速缓存cache中。
第一计数器用于对第一计算机指令的执行次数进行统计。
第一计数器的值加1具体实现时,可以是第一计算机指令通过处理器的硬件电路触发第一计数器的值加1。第一计算机指令可以通过触发信号触发第一计数器的值加1。触发信号可以是执行该第一计算机指令过程中产生的状态标志。例如,触发信号可以是第一计算机指令的写回(write back)状态标志或者生效(retire)状态标志。
现有技术通过软件实现对计算机指令执行次数进行统计。在计算机程序中增加用于对计算机指令执行次数进行统计的代码,例如计数函数,降低了计算机程序性能。其一、计数函数需要占用一定的存储空间,导致计算机程序占用更多的存储空间。其二、反复调用计数函数,将延长计算机程序执行的时间。
通过本发明实施例提出的统计方法,对计算机指令的执行次数进行统计时,不需要运行计算机程序,提高了计数的效率,降低了处理器的负担。
可选的,
该第一计数器地址存储在处理器的高速缓存cache中具体为:该第一计数器地址存储在cache中该第一计算机指令对应的计数器地址空间中,其中该cache为每个计算机指令预留对应的计数器地址空间。
具体实现时,计算机指令可以以指令序列的方式存储在cache中。计数器地址可以以地址序列的方式存储在cache中。每个计算机指令对应一个预留的计数器地址空间具体实现时,计算机指令占用的存储空间可以等于计数器地址占用的存储空间。例如,当一个计算机指令占用4字节的存储空间时,256K个计算机指令占用1M字节的存储空间。当一个计数器地址占用4字节的存储空间时,cache中预留的计数器地址空间也是1M字节。该方案可以对每个计算机指令的执行次数进行统计。
可选的,
当该第一计算机指令有对应的第一计数器地址,则该第一计数器的值加1具体包括:当该第一计算机指令存储在该cache的偏移地址的后X比特等于第一关联信息时,则该第一计数器的值加1,其中该第一计算机指令存储在该cache的偏移地址为Y比特,Y大于等于X。
可以通过cache中存储的第一关联信息确定第一计算机指令以及用于统计第一计算机指令执行次数的第一计数器。由于cache中存储的信息可以被更新,因此可以通过更新cache中存储的第一关联信息为第一计数器地址确定不同的第一计算机指令。
具体实现时,计算机指令存储在cache的地址可以用基地址加偏移地址表示。偏移地址占用的存储空间相对较少,第一关联信息等于第一计算机指令存储在cache的偏移地址的后X比特,因此第一关联信息占用的存储空间相对较少。
参见图2,图2为计算机指令、计算机指令存储在cache的偏移地址、计数器地址以及关联信息存储在cache的示意图。偏移地址的比特数为2。指令一、指令二、指令三以及指令四的偏移地址分别是二进制数00、01、10以及11。关联信息为2比特。关联信息可以是二进制数00、01、10以及11中的任意一个。第一计算机指令存储在cache的偏移地址等于第一关联信息。指令一、指令二、指令三以及指令四共有一个计数器地址,即计数器地址一。指令一、指令二、指令三以及指令四共有一个关联信息,即关联信息一。关联信息一确定四条指令中哪条指令是第一计算机指令。例如,当关联信息是二进制01时,指令二是第一计算机指令。当关联信息为10时,指令三是第一计算机指令。
可选的,
该cache中存储的计算机指令的个数为M,M为自然数,M与2X的商数为P,余数为Q;
当Q为0时,该cache中存储的计数器地址的个数为P,有P个关联信息,每个关联信息的长度为X比特,每个关联信息等于对应的计算机指令存储在该cache的偏移地址的后X比特。
实践中,处理器中计数器的个数是有限的,为所有存储在cache中的计算机指令分别确定一个计数器将占用大量计数器资源。一般情况下,对每个计算机指令的执行次数都进行统计是没有必要的。上述方案可以节省计数器资源。另外,计数器用存储在cache中的计数器的地址表示,因此,上述方案可以节省cache的存储空间。
参见图2,cache中存储的计算机指令个数为8。计算机指令的偏移地址的比特数为2。关联信息的比特数为2。8与22的商数为2,余数为0。用于统计计算机指令执行次数的计数器的个数为2。
可选的,
当Q不为0时,该cache中存储的计数器地址的个数为P+1。
参见图3,cache中存储的计算机指令个数为9。计算机指令的偏移地址的比特数为2。关联信息的比特数为2。9与22的商数为2,余数为1。用于统计计算机指令执行次数的计数器的个数为3。
可选的,
该第一计数器的值加1具体包括:
接收触发信号,该第一计数器的值加1,该触发信号为执行该第一计算机指令过程中产生的状态标志。
可选的,
该触发信号为该第一计算机指令的写回状态标志或者生效状态标志。
实施例二:
本发明实施例提供了一种统计装置。参见图4,图4是本发明实施例提供的统计装置示意图。该装置包括:
执行单元401,用于执行第一计算机指令。
具体实现时,处理器执行第一计算机指令可以有多种实现方式,本发明不做具体的限定。例如PC计算出第一计算机指令的地址后,AR将第一计算机指令的地址通过地址总线送至cache。指令流水线从cache取出的第一计算机指令送至IR。ID对第一计算机指令进行译码。译码后处理器通过控制电路发出执行第一计算机指令所需要的各种控制信息。通过以上步骤第一计算机指令被执行。
累加单元402,用于当该第一计算机指令有对应的第一计数器地址,则该第一计数器的值加1;其中该第一计算机指令和该第一计数器地址存储在处理器的cache中。
第一计数器用于对第一计算机指令的执行次数进行统计。
第一计数器的值加1具体实现时,可以是第一计算机指令通过处理器的硬件电路触发第一计数器的值加1。第一计算机指令可以通过触发信号触发第一计数器的值加1。触发信号可以是执行该第一计算机指令过程中产生的状态标志。例如,触发信号可以是第一计算机指令的write back状态标志或者retire状态标志。
现有技术通过软件实现对计算机指令执行次数进行统计。在计算机程序中增加用于对计算机指令执行次数进行统计的代码,例如计数函数,降低了计算机程序性能。其一、计数函数需要占用一定的存储空间,导致计算机程序占用更多的存储空间。其二、反复调用计数函数,将延长计算机程序执行的时间。
通过本发明实施例提出的统计装置,对计算机指令的执行次数进行统计时,不需要运行计算机程序,提高了计数的效率,降低了处理器的负担。
可选的,
该累加单元具体包括比较单元和计数单元,该比较单元用于当该第一计算机指令存储在该cache的偏移地址的后X比特等于第一关联信息时,发送触发信号给计数单元;
该计数单元用于当接收到该触发信号时,该第一计数器的值加1;
其中该第一计算机指令存储在该cache的偏移地址为Y比特,Y大于等于X。
可以通过cache中存储的第一关联信息确定第一计算机指令以及用于统计第一计算机指令执行次数的第一计数器。由于cache中存储的信息可以被更新,因此可以通过更新cache中存储的第一关联信息为第一计数器地址确定不同的第一计算机指令。
具体实现时,计算机指令存储在cache的地址可以用基地址加偏移地址表示。偏移地址占用的存储空间相对较少,第一关联信息等于第一计算机指令存储在cache的偏移地址的后X比特,因此第一关联信息占用的存储空间相对较少。
参见图2,图2为计算机指令、计算机指令存储在cache的偏移地址、计数器地址以及关联信息存储在cache的示意图。偏移地址的比特数为2。指令一、指令二、指令三以及指令四的偏移地址分别是二进制数00、01、10以及11。关联信息为2比特。关联信息可以是二进制数00、01、10以及11中的任意一个。第一计算机指令存储在cache的偏移地址等于第一关联信息。指令一、指令二、指令三以及指令四共有一个计数器地址,即计数器地址一。指令一、指令二、指令三以及指令四共有一个关联信息,即关联信息一。关联信息一确定四条指令中哪条指令是第一计算机指令。例如,当关联信息是二进制01时,指令二是第一计算机指令。当关联信息为10时,指令三是第一计算机指令。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种统计方法,其特征在于:
执行第一计算机指令;
当所述第一计算机指令有对应的第一计数器地址,则所述第一计数器的值加1;其中所述第一计算机指令和所述第一计数器地址存储在处理器的高速缓存cache中,所述第一计数器的值加1具体为所述第一计算机指令通过所述处理器的硬件电路触发所述第一计数器的值加1;
所述第一计数器地址存储在处理器的高速缓存cache中具体为:所述第一计数器地址存储在cache中所述第一计算机指令对应的计数器地址空间中,其中所述cache为每个计算机指令预留对应的计数器地址空间;
当所述第一计算机指令有对应的第一计数器地址,则所述第一计数器的值加1具体包括:当所述第一计算机指令存储在所述cache的偏移地址的后X比特等于第一关联信息时,则所述第一计数器的值加1,其中所述第一计算机指令存储在所述cache的偏移地址为Y比特,Y大于等于X。
2.根据权利要求1所述方法,其特征在于:
所述cache中存储的计算机指令的个数为M,M为自然数,M与2X的商数为P,余数为Q;
当Q为0时,所述cache中存储的计数器地址的个数为P,有P个关联信息,每个关联信息的长度为X比特,每个关联信息等于对应的计算机指令存储在所述cache的偏移地址的后X比特。
3.根据权利要求2所述方法,其特征在于:
当Q不为0时,所述cache中存储的计数器地址的个数为P+1。
4.根据权利要求1所述方法,其特征在于:
所述第一计数器的值加1具体包括:
接收触发信号,所述第一计数器的值加1,所述触发信号为执行所述第一计算机指令过程中产生的状态标志。
5.根据权利要求4所述方法,其特征在于:
所述触发信号为所述第一计算机指令的写回状态标志或者生效状态标志。
6.一种统计装置,其特征在于,包括:
执行单元,用于执行第一计算机指令;
累加单元,用于当所述第一计算机指令有对应的第一计数器地址,则所述第一计数器的值加1;其中所述第一计算机指令和所述第一计数器地址存储在处理器的cache中,所述第一计数器的值加1具体为所述第一计算机指令通过所述处理器的硬件电路触发所述第一计数器的值加1;
所述累加单元具体包括比较单元和计数单元,所述比较单元用于当所述第一计算机指令存储在所述cache的偏移地址的后X比特等于第一关联信息时,发送触发信号给计数单元;
所述计数单元用于当接收到所述触发信号时,所述第一计数器的值加1;
其中所述第一计算机指令存储在所述cache的偏移地址为Y比特,Y大于等于X。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/078544 WO2012083708A1 (zh) | 2011-08-17 | 2011-08-17 | 一种统计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102388360A CN102388360A (zh) | 2012-03-21 |
CN102388360B true CN102388360B (zh) | 2014-04-30 |
Family
ID=45826488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180001433.3A Expired - Fee Related CN102388360B (zh) | 2011-08-17 | 2011-08-17 | 一种统计方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102388360B (zh) |
WO (1) | WO2012083708A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1177139A (zh) * | 1996-06-24 | 1998-03-25 | 合泰半导体股份有限公司 | 程序计数器的地址计算方法及装置 |
CN101819553A (zh) * | 2009-02-12 | 2010-09-01 | 威盛电子股份有限公司 | 微码指令执行次数的计数装置以及计数方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100388653C (zh) * | 2002-06-13 | 2008-05-14 | 华为技术有限公司 | 高速码流多类型数据统计总线的实现方法 |
US20050281202A1 (en) * | 2004-06-22 | 2005-12-22 | Intel Corporation | Monitoring instructions queueing messages |
-
2011
- 2011-08-17 WO PCT/CN2011/078544 patent/WO2012083708A1/zh active Application Filing
- 2011-08-17 CN CN201180001433.3A patent/CN102388360B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1177139A (zh) * | 1996-06-24 | 1998-03-25 | 合泰半导体股份有限公司 | 程序计数器的地址计算方法及装置 |
CN101819553A (zh) * | 2009-02-12 | 2010-09-01 | 威盛电子股份有限公司 | 微码指令执行次数的计数装置以及计数方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012083708A1 (zh) | 2012-06-28 |
CN102388360A (zh) | 2012-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101763895B (zh) | 具有随机化器/去随机化器的数据存储系统和设备 | |
CN101937331B (zh) | 用于自适应处理远程原子执行的方法、设备和系统 | |
CN105706059B (zh) | 非易失性存储器中的错误校正 | |
KR20110065452A (ko) | 데이터 처리 시스템에서 단일화된 캐시에 대한 에러 검출 스킴들 | |
CN104820580A (zh) | 改进的返回堆栈缓存 | |
CN105009075A (zh) | 具有水平置换的向量间接元素垂直寻址模式 | |
CN101751343A (zh) | 固态硬盘数据写入方法及装置 | |
CN110083379A (zh) | 一种服务器部件升级方法及相关装置 | |
CN114721720A (zh) | 一种指令集扩展方法、装置、电子设备及存储介质 | |
CN108062235A (zh) | 数据处理方法及装置 | |
CN107870780B (zh) | 数据处理装置和方法 | |
CN107436752A (zh) | 异常现场恢复方法、装置及计算机可读存储介质 | |
CN105264608B (zh) | 存储数据的方法、内存控制器和中央处理器 | |
CN103746940B (zh) | 一种网络设备以及解包输出报文的方法 | |
CN103379145A (zh) | 信息处理的方法、设备和系统 | |
CN102388360B (zh) | 一种统计方法及装置 | |
CN112835564A (zh) | 代码生成方法和装置 | |
CN114995770B (zh) | 一种数据处理方法、装置、设备、系统及可读存储介质 | |
CN104899158A (zh) | 访存优化方法和装置 | |
US9460782B2 (en) | Method of operating memory controller and devices including memory controller | |
CN106940684B (zh) | 一种按比特写数据的方法及装置 | |
CN106796505A (zh) | 指令执行的方法及处理器 | |
CN109729117B (zh) | 一种报文处理的方法、芯片系统以及计算机存储介质 | |
CN114138688A (zh) | 一种数据读取方法、系统、设备以及介质 | |
CN109388593B (zh) | 进行动态资源管理的方法、记忆装置及记忆装置的控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140430 Termination date: 20190817 |
|
CF01 | Termination of patent right due to non-payment of annual fee |