一种基于关键点的程序性能统计器及方法技术

技术编号:12059337 阅读:85 留言:0更新日期:2015-09-17 09:28
本发明专利技术属于计算机领域,特别涉及程序性能分析工具与方法。其技术方案是:一种基于关键点的程序性能统计器,其特征是:它包括:联想存储器(1),计数存储器(2),以及控制器(3)。本发明专利技术只需要在处理器中添加很小的计数存储器和很小的联想存储器,而无需在总线上设置复杂的跟踪电路,其硬件开销所需功耗都很小,可以有效完成处理器上程序的性能统计功能,用以分析关键程序的执行瓶颈,进而实现程序的优化。

【技术实现步骤摘要】

本专利技术属于计算机领域,特别涉及程序性能分析工具与方法。
技术介绍
处理器内部程序的优化程度,直接影响处理器的运行效率。因此,设计调试过程中需要对程序运行情况做详细的性能统计,然后有针对性地进行优化。到目前为止,程序性能统计或者采用芯片外部的跟踪器或者采用片内跟踪器。这些专用的跟踪器结构复杂,而且需要很大的存储器来收集程序踪迹(trace),有较大的硬件和存储开销,不很经济。因而需要开发一种硬件设备开销较小,不对软件开发环境提出过多的要求程序性能统计技术。根据程序局部性原理(principle of locality)可以推知,一个程序中的关键部分往往占整个程序的很小一部分,其使用频率则远远高于其他部分。而程序员都很了解自己设计的程序中那些关键部分。他们可以在关键部分的关键点上设置统计计数,并根据统计结果来研宄其性能,然后修改和优化以达到预期性能。程序中频繁运行的关键部分往往只有很少的关键点,只需要添加较少的统计计数就可以完成足够的统计任务。本专利技术正是建立在这一观察上的。
技术实现思路
本专利技术的目的是:提供一种硬件开销小,使用简便的程序统计器及方法。本专利技术的技术方案是:一种基于关键点的程序性能统计器,它包括:联想存储器,计数存储器,以及控制器;所述联想存储器具有N个存储单元,用于储存M个预置的程序关键点地址和基地址,所述M SN;并将来自处理器内部的程序计数器信号、基地址寄存器的程序基地址信号与存储内容进行比较匹配,按照匹配结果索引进行二进制编码,产生所述计数存储器对应存储单元的地址,用该地址读取所述计数存储器对应存储单元的计数,将该计数+1后再返回存储;所述计数存储器具有N个与所述联想存储器对应的存储单元,用于统计程序运行过程中所经过的所述程序关键点的次数;所述控制器用于设置所述联想存储器,控制所述程序统计器的输入、输出;所述程序统计器具有以下输入、输出端口:预置程序关键点地址输入;预置程序关键点基地址输入;程序计数器信号输入;程序基地址信号输入;程序统计使能;配置数据推入;统计数据弹出;统计结果输出。一种基于关键点的程序性能统计方法,它使用如上所述的基于关键点的程序性能统计器,并包括以下步骤:A.初始配置向所述程序统计器输入M个所述预置程序关键点地址和所述预置程序关键点基地址信号,将所述配置数据推入信号置1,所述预置程序关键点地址和所述预置程序关键点基地址信号被移位入所述联想寄存器;如果M < N,则将不使用的存储单元推入空地址;接入所述程序计数器信号和所述程序基地址信号;B.程序关键点运行统计将所述程序统计使能置1,进入统计期间;所述联想存储器对程序计数器输入和程序基地址输入与存储的内容作并行比较匹配,所述计数存储器统计程序运行过程中所经过的所述程序关键点的次数;将所述程序统计使能置0,结束统计期间;C.统计数据输出将所述统计数据弹出置1,由所述统计结果输出端输出统计数据。本专利技术只需要在处理器中添加很小的计数存储器和很小的联想存储器,而无需在总线上设置复杂的跟踪电路,其硬件开销所需功耗都很小,可以有效完成处理器上程序的性能统计功能,用以分析关键程序的执行瓶颈,进而实现程序的优化。【附图说明】附图1为本专利技术中程序统计器的结构及与处理器连接关系示意图;附图2为本专利技术中联想存储器的结构示意图;附图3为本专利技术中程序统计器的输入输出端口示意图。【具体实施方式】实施例1:参见附图,一种基于关键点的程序性能统计器,它包括:联想存储器1,计数存储器2,以及控制器3;所述联想存储器I具有N个存储单元,用于储存M个预置的程序关键点地址address和基地址base_addr,所述M ( N ;并将来自处理器内部的程序计数器信号prog_cnt、基地址寄存器的程序基地址信号pr0g_baSe与存储内容进行比较匹配,按照匹配结果索引进行二进制编码,产生所述计数存储器2对应存储单元的地址ind,用该地址ind读取所述计数存储器2对应存储单元的计数,将该计数+1后再返回存储;所述计数存储器2具有N个与所述联想存储器I对应的存储单元,用于统计程序运行过程中所经过的所述程序关键点的次数;所述控制器3用于设置所述联想存储器1,控制所述程序统计器的输入、输出;所述程序统计器具有以下输入、输出端口:预置程序关键点地址address输入;预置程序关键点基地址base_addr输入;程序计数器信号prog_cnt输入;程序基地址信号prog_base输入;程序统计使能enab ;配置数据推入push ;统计数据弹出pop ;统计结果dout输出。实施例2:如实施例1所述基于关键点的程序性能统计器,其特征是:所述N为8或16。实施例3:—种基于关键点的程序性能统计方法,它使用如实施例1或2所述的基于关键点的程序性能统计器,并包括以下步骤:A.初始配置向所述程序统计器输入M个所述预置程序关键点地址address和所述预置程序关键点基地址baSe_addr信号,将所述配置数据推入push信号置I,所述预置程序关键点地址address和所述预置程序关键点基地址baSe_addr信号被移位入所述联想寄存器I ;如果M< N,则将不使用的存储单元推入空地址;接入所述程序计数器信号prog_cnt和所述程序基地址信号prog_base ;B.程序关键点运行统计将所述程序统计使能enab置1,进入统计期间;所述联想存储器I对程序计数器输入prog_cnt和程序基地址输入prog_base与存储的内容作并行比较匹配,所述计数存储器2统计程序运行过程中所经过的所述程序关键点的次数;将所述程序统计使能enab置O,结束统计期间;C.统计数据输出将所述统计数据弹出pop置1,由所述统计结果输出dout端输出统计数据。【主权项】1.一种基于关键点的程序性能统计器,其特征是:它包括:联想存储器(I),计数存储器⑵,以及控制器⑶; 所述联想存储器(I)具有N个存储单元,用于储存M个预置的程序关键点地址(address)和基地址(baSe_addr),所述M彡N ;并将来自处理器内部的程序计数器信号(prog_cnt)、基地址寄存器的程序基地址信号(prog_base)与存储内容进行比较匹配,按照匹配结果索引进行二进制编码,产生所述计数存储器(2)对应存储单元的地址(ind),用该地址(ind)读取所述计数存储器(2)对应存储单元的计数,将该计数+1后再返回存储;所述计数存储器(2)具有N个与所述联想存储器(I)对应的存储单元,用于统计程序运行过程中所经过的所述程序关键点的次数; 所述控制器(3)用于设置所述联想存储器(I),控制所述程序统计器的输入、输出; 所述程序统计器具有以下输入、输出端口: 预置程序关键点地址(address)输入; 预置程序关键点基地址(base_addr)输入; 程序计数器信号(prog_cnt)输入; 程序基地址信号(prog_base)输入; 程序统计使能(enab); 配置数据推入(push); 统计数据弹出(pop); 统计结果(dout)输出。2.根据权利要求1所述的基于关键点的程序性能统计器,其特征是:所述N为8或16。3.一种基于关键点的程序性能统计方法,它使用如权利要求1本文档来自技高网...

【技术保护点】
一种基于关键点的程序性能统计器,其特征是:它包括:联想存储器(1),计数存储器(2),以及控制器(3);所述联想存储器(1)具有N个存储单元,用于储存M个预置的程序关键点地址(address)和基地址(base_addr),所述M≤N;并将来自处理器内部的程序计数器信号(prog_cnt)、基地址寄存器的程序基地址信号(prog_base)与存储内容进行比较匹配,按照匹配结果索引进行二进制编码,产生所述计数存储器(2)对应存储单元的地址(ind),用该地址(ind)读取所述计数存储器(2)对应存储单元的计数,将该计数+1后再返回存储;所述计数存储器(2)具有N个与所述联想存储器(1)对应的存储单元,用于统计程序运行过程中所经过的所述程序关键点的次数;所述控制器(3)用于设置所述联想存储器(1),控制所述程序统计器的输入、输出;所述程序统计器具有以下输入、输出端口:预置程序关键点地址(address)输入;预置程序关键点基地址(base_addr)输入;程序计数器信号(prog_cnt)输入;程序基地址信号(prog_base)输入;程序统计使能(enab);配置数据推入(push);统计数据弹出(pop);统计结果(dout)输出。...

【技术特征摘要】

【专利技术属性】
技术研发人员:李萍萍杨新宪张振龙
申请(专利权)人:北京玉华骢科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1