指令性能分析的方法和设备的制造方法_3

文档序号:8269717阅读:来源:国知局
目成正比。事实上,指令的CPU 时间占用率可以由指令的有效采样数目计算得到。在下面的描述中,将指令的CPU时间占 用率和指令对应的有效采样数目统称为指令的CPU指数(measurement),用来表示指令CPU 的占用量。如图3所示,指令B、指令C、指令E、指令Η、指令I、指令J、指令L、指令M的CPU 时间占用率都远远小于其相邻的指令的CPU时间占用率。
[0041] 通过研究,本发明的发明人意识到,发生上述现象的原因是由于超标量处理器的 硬件限制。在超标量处理器中,程序计数器只记录指令分组中第一条指令的地址。也就是 说,在整个指令分组的处理期间,采样器每次进行采样,会错误地认为当前正在被处理的是 第一条指令。在这种情况下,采样分析会将整个组的CPU时间占用率都算作所述第一条指 令的CPU时间占用率。但实际上,在整个组所占用的CPU时间中,只有一部分用来处理所述 第一条指令,其他部分用来处理所述指令分组中的其他指令。
[0042] 对于不了解处理器细节的分析员来说,这种错误可能会导致分析员认为所述第一 条指令是热指令,从而将该第一条指令作为优先的优化目标。由于只有在该指令分组的所 有指令被处理完毕之后,该指令分组才处理完毕。如果一条指令分组中CPU时间占用率最 高的指令不是该指令分组中的第一条指令,那么分析员可能不会将该CPU时间占用率最高 的指令作为优先的优化目标。也就是说,分析员可能不仅错过优化效率更高的热指令,还将 优化效率不高的冷指令误认为热指令。
[0043] 下面结合图4描述根据本发明实施例的进行指令性能分析的方法。在下面的描述 中,假设超标量处理器的指令分组条数为3,即一条指令分组中最多可以包括三条指令。换 句话说,一条指令分组中可以包括一条指令,也可以包括两条指令,也可以包括三条指令。
[0044] 步骤401,获取在各采样时刻,与程序计数器所指示的指令对应的指令分组信息。
[0045] 指令分组信息指的是,当前程序计数器所指示的指令所在的指令分组包括多少条 指令。如前所述,在超标量处理器中,虽然属于同一指令分组的多条指令被同时处理,但程 序计数器指示的是指令分组中的第一条指令。也就是说,从程序计数器的值本身无法获得 所述指令分组信息。
[0046] 但是,超标量处理器自身必然具有关于所述指令分组信息的知识。另一方面,处理 器一般都具有一些特殊目的的寄存器,例如硬件性能计数器,以便存储于硬件有关的活动。 因此,可以指示处理器使用这些特殊目的寄存器中的至少一个来存储指令分组信息。用于 存储所述指令分组信息的寄存器称为指令分组计数器。
[0047] 根据本发明一个实施例,可以用三个bit来表示所述指令分组信息。
[0048] 具体而言,可以将这三个bit分别称为Mono-Instruction Group Bit、 Bi-Instruction Group Bit 和 Tri-Instruction Group Bit。表 1 不出了这三个比特的取 值与所表示的指令分组信息之间的对应关系。
[0049]
【主权项】
1. 一种指令性能分析的方法,该方法包括: 获取在各采样时刻,与处理器的程序计数器所指示的指令对应的指令分组信息,其中 所述指令分组信息指的是,在该采样时刻程序计数器所指示的指令所在的指令分组包括的 指令数目; 针对目标指令,根据所述指令分组信息,计算该目标指令的指令分组信息分布,其中该 指令分组信息分布指的是该目标指令所对应的指令分组信息的统计分布; 根据目标指令的指令分组信息分布,计算该目标指令的CPU指数对与该目标指令属于 同一指令分组的其他指令的CPU指数的贡献,其中指令的CPU指数表示指令对CPU的占用 量;和 根据所述贡献修正与所述目标指令属于同一指令分组的其他指令的CPU指数。
2. 如权利要求1所述的方法,其中所述目标指令的CPU指数与所述其他指令的CPU指 数的差别大于CPU指数差阔值。
3. 如权利要求1所述的方法,其中计算该目标指令的CPU指数对与该目标指令属于同 一指令分组的其他指令的CPU指数的贡献包括: 分别计算所述目标指令的CPU指数对该指令分组向后P-1条指令的CPU指数的贡献, 其中P是所述处理器的指令分组条数。
4. 如权利要求1或3所述的方法,其中根据所述贡献修正与所述目标指令属于同一指 令分组的其他指令的CPU指数包括: 针对某一待修正指令,根据该待修正指令向前P-1条指令的CPU指数对该待修正指令 的CPU指数的贡献,修正该待修正指令的CPU指数,其中P是所述处理器的指令分组条数。
5. 如权利要求1所述的方法,其中对于序号为n的指令而言,其修正后的CPU指数为:
其中,Ticks (n)表示该序号为n的指令的修正前的CPU指数,AdjustedTic (n)表示该 序号为n的指令的修正后的CPU指数,P表示处理器的指令分组条数,GpTicks (n-q)表示该 序号为n的指令向前的第q条指令的原始CPU指数对序号为n的指令的CPU指数的贡献, Gx (n-q)和邱(n-q)表示该序号为n指令向前的第q条指令的指令分组信息分布。
6. -种指令性能分析的设备,该设备包括: 指令分组信息获取装置,配置为获取在各采样时刻,与处理器的程序计数器所指示的 指令对应的指令分组信息,其中所述指令分组信息指的是,在该采样时刻程序计数器所指 示的指令所在的指令分组包括的指令数目; 指令分组信息分布计算装置,配置为针对目标指令,根据所述指令分组信息,计算该目 标指令的指令分组信息分布,其中该指令分组信息分布指的是该目标指令所对应的指令分 组信息的统计分布; 贡献计算装置,配置为根据目标指令的指令分组信息分布,计算该目标指令的CPU指 数对与该目标指令属于同一指令分组的其他指令的CPU指数的贡献,其中指令的CPU指数
表示指令对CPU的占用量;和 修正装置,配置为根据所述贡献修正与所述目标指令属于同一指令分组的其他指令的 CPU指数。
7. 如权利要求6所述的设备,其中所述目标指令的CPU指数与所述其他指令的CPU指 数的差别大于CPU指数差阔值。
8. 如权利要求6所述的设备,其中所述贡献计算装置包括: 配置为分别计算所述目标指令的CPU指数对该指令分组向后P-1条指令的CPU指数的 贡献的模块,其中P是所述处理器的指令分组条数。
9. 如权利要求6或8所述的设备,其中所述修正装置包括: 配置为针对某一待修正指令,根据该待修正指令向前P- 1条指令的CPU指数对该待修 正指令的CPU指数的贡献,修正该待修正指令的CPU指数的模块,其中P是所述处理器的指 令分组条数。
10. 如权利要求6所述的设备,其中对于序号为n的指令而言,其修正后的CPU指数为:
其中,Ticks (n)表示该序号为n的指令的修正前的CPU指数,AdjustedTic (n)表示该 序号为n的指令的修正后的CPU指数,P表示处理器的指令分组条数,GpTicks (n-q)表示该 序号为n的指令向前的第q条指令的原始CPU指数对序号为n的指令的CPU指数的贡献, Gx (n-q)和邱(n-q)表示该序号为n指令向前的第q条指令的指令分组信息分布。
【专利摘要】本发明实施例的提供了指令性能分析的方法和设备。所述方法包括:获取在各采样时刻,与处理器的程序计数器所指示的指令对应的指令分组信息;针对目标指令,根据所述指令分组信息,计算该目标指令的指令分组信息分布;根据目标指令的指令分组信息分布,计算该目标指令的CPU指数对与该目标指令属于同一指令分组的其他指令的CPU指数的贡献;和根据所述贡献修正与所述目标指令属于同一指令分组的其他指令的CPU指数。采用根据本发明实施例的方案,可以在以超标量处理器为指令处理平台时,提高指令性能分析的准确度。
【IPC分类】G06F9-30
【公开号】CN104598201
【申请号】CN201310533727
【发明人】梁祺, 刘峰, 陈沁悦, 李盼, 唐星
【申请人】国际商业机器公司
【公开日】2015年5月6日
【申请日】2013年10月31日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1