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

文档序号:8269717阅读:157来源:国知局
指令性能分析的方法和设备的制造方法
【技术领域】
[0001] 本发明涉及计算机技术,更具体地说,涉及指令性能分析的方法和设备。
【背景技术】
[0002] 流水线技术是当今处理器普遍采用的技术。图2A示出了传统的流水线。如图2A 所示,第一条指令经过取指(Instruction Fetch, IF)阶段后,进入指令解码(Instruction Decode, ID)阶段;此时第二条指令进入取指阶段。第一条指令进入执行(Execute, EX)阶 段时,第二条指令进入指令解码阶段,第三条指令进入取指阶段。以此类推,当第一条指令 经过内存访问(MEMory access,MEM)阶段,进入寄存器写回(register Write Back,WB)阶 段时,第二条指令处于内存访问阶段,第三条指令处于执行阶段,第四条指令处于指令解码 阶段,第五条指令处于取指阶段。由此可见,通过流水线技术,可以并行地处理处于不同阶 段的指令,从而提高了指令处理的速度。
[0003] 随着CPU技术的发展,出现了所谓的超标量(super-scalar)处理器。超标量处理 器指的是具有超标量流水线的处理器。由于处理器中的功能单元(Functional Unit)有许 多种类,例如算术逻辑单元ALU、位移单元、乘法器等等,因此满足某些条件的指令可以在同 一时间段分别利用这些不同种类的功能单元。相应地,可以将满足条件的多条指令分组合 成指令分组,其中一条指令分组中最多包括的指令数称为指令分组条数。同一指令分组中 的多条指令同时被发射(issue)到超标量处理器进行处理。当指令分组中的所有指令被处 理完毕后,该指令分组被处理完毕。超标量处理器以指令分组为单位进行流水线操作。图 2B示出超标量流水线。如图2B所示,当第一指令分组处于寄存器写回阶段时,第二指令分 组处于内存访问阶段,第三指令分组处于执行阶段,第四指令分组处于指令解码阶段,第五 指令分组处于取指阶段。
[0004] 由于超标量处理器中是以指令分组为单位进行流水线操作,而不是像传统处理器 那样以指令为单位进行流水线操作,因此针对超标量处理器进行指令性能分析,与针对传 统处理器的指令性能分析存在很大不同。相应地,需要针对超标量处理器设计专门的指令 性能分析方案。

【发明内容】

[0005] 本发明实施例提供了指令性能分析的方法和设备。
[0006] 根据本发明实施例的一种指令性能分析的方法,包括:获取在各采样时刻,与处理 器的程序计数器所指示的指令对应的指令分组信息,其中所述指令分组信息指的是,在该 采样时刻程序计数器所指示的指令所在的指令分组包括的指令数目;针对目标指令,根据 所述指令分组信息,计算该目标指令的指令分组信息分布,其中该指令分组信息分布指的 是该目标指令所对应的指令分组信息的统计分布;根据目标指令的指令分组信息分布,计 算该目标指令的CPU指数对与该目标指令属于同一指令分组的其他指令的CPU指数的贡 献,其中指令的CPU指数表示指令对CPU的占用量;和根据所述贡献修正与所述目标指令属 于同一指令分组的其他指令的CPU指数。
[0007] 根据本发明实施例的一种指令性能分析的设备,包括:指令分组信息获取装置,配 置为获取在各采样时刻,与处理器的程序计数器所指示的指令对应的指令分组信息,其中 所述指令分组信息指的是,在该采样时刻程序计数器所指示的指令所在的指令分组包括的 指令数目;指令分组信息分布计算装置,配置为针对目标指令,根据所述指令分组信息,计 算该目标指令的指令分组信息分布,其中该指令分组信息分布指的是该目标指令所对应的 指令分组信息的统计分布;贡献计算装置,配置为根据目标指令的指令分组信息分布,计算 该目标指令的CPU指数对与该目标指令属于同一指令分组的其他指令的CPU指数的贡献, 其中指令的CPU指数表示指令对CPU的占用量;和修正装置,配置为根据所述贡献修正与所 述目标指令属于同一指令分组的其他指令的CPU指数。
[0008] 采用根据本发明实施例的方案,可以在以超标量处理器为指令处理平台时,提高 指令性能分析的准确度。
【附图说明】
[0009] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其 它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。
[0010] 图1是适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
[0011] 图2A是传统流水线的不意图,图2B是超标量流水线的不意图;
[0012] 图3示出根据本发明实施例的采样分析的结果的一部分;
[0013] 图4是根据本发明实施例的进行指令性能分析的方法的流程图;
[0014] 图5示出根据本发明实施例得到的目标指令的统计组信息分布;
[0015] 图6示出根据本发明实施例的对指令的CPU指数进行修正的过程;
[0016] 图7示出根据本发明实施例对如图3所示的采样分析结果进行修正后的结果; [0017] 图8示出根据本发明实施例的进行指令性能分析的设备的方框图。
【具体实施方式】
[0018] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整地传达给本领域的技术人员。
[0019] 所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。 因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包 括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为"电路"、"模 块"或"系统"。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0020] 可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计 算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是--但不限 于--电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储 器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD - ROM)、光存储器件、磁存储器 件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储 程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0021] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但 不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0022] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括--但不限 于--无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0023] 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机 程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++, 还包括常规的过程式程序设计语言一诸如" C"语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在 涉及远程计算机的情形中,远程计算机可以通过任意种类的网络--包括局域网(LAN)或 广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提 供商来通过因特网连接
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1