当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于动态优化的程序阶段检测的方法、设备和系统技术方案

技术编号:2833759 阅读:176 留言:0更新日期:2012-04-11 18:40
一种方法、装置和系统,包括选择阶段阈值,接收多个经过排序的缓冲区,确定至少两个连续直方图区间的中心之间的距离,将该距离与选定的阈值进行比较,并根据该比较确定可执行进程的主执行阶段。

【技术实现步骤摘要】
【国外来华专利技术】用于动态优化的程序阶段检测
本实施例涉及可管理的运行时计算机系统环境技术,更具体地, 涉及通过阶段检测进行的动态优化。
技术介绍
设计成运行于可管理的运ft时环境(MRTE)的计算机程序是以中 性字节码的格式分发的,且这些程序必须由动态编译器编译成本地机 器码。受到管理的应用程序的性能取决于由编译器执行的优化和代码 生成的质量。可将系统利用率监视用于确定何时需要优化各种应用程 序。随着运行在系统上的应用程序的数量的增加,对应用程序优化的 需要也随之增加了。许多微处理器结构依赖于编译器的性能优化。某些结构的性能非 常依赖于昂贵和复杂的代码生成优化(如全局调度和控制预测)。为优化可执行代码,使用了性能反馈和优化技术。这些技术的问 题是,它们通常通过硬件实施或是专用的,因此并不适于动态优化或 软件实施。而且,许多优化要求等待-观察的方法,因为要试验不同 的优化标准来实现优化。这个过程相当耗时,而且由于系统利用的变 化,可能仅能在短时间内优化应用程序。附图说明在附图的各幅图中,通过举例而非限制的方式说明了本专利技术的实 施例,其中,相似的附图标记指示相似的组件。应当注意,在本公开 中,本专利技术的某一实施例不一定指相同的实施例,且它们意味着 至少一个实施例。图1示出了用于检测稳定的程序阶段(phase)的进程(process)的 一个实施例。图2示出了分支跟踪緩冲区(BTrB)的样本地址随时间的实例緩 冲区的图。图3示出了对应于两个已检测阶段的直方图。图4示出了使用图2中的数据时检测到的阶段序列。图5示出了一个系统的实施例。图6示出了与另一系统耦合的系统的实施例。具体实施例方式本文讨论的实施例通常涉及一种用于动态检测稳定进程阶段的 方法和系统。参考附图,下面将描述一些示范实施例。这些示范实施 例用于说明实施例,且不应当将它们视为对实施例范围的限制。具有动态档案导引优化(例如可管理的运行时环境、动态二进 制优化器、以及动态二进制翻译器)的系统试图确定何时动态地重新 优化正在执行的程序。图1示出了用于可执行代码的动态优化的、检 测稳定程序阶段的进程的一个实施例。在框110处,进程100以选择 阶段阈值开始。该阶段阈值可以是在时间t采集的分支地址的M个 连续样本的函数。在一个实施例中,用户选择上述阶段阈值,并将该 值作为进程中的预定静态参数输入。也可通过用户输入装置动态修改 阶段阈值。进程100继续进行到框120。在框120中,接收多个经过排序的 緩冲区(buffer)。在一个实施例中,性能监视单元(PMU)收集经过排序 的分支跟踪緩冲区(BTrB)。可以将这些经过排序的緩冲区存储在本地 存储器或文件中。所接收的緩冲区包括所取得的最后L个分支的地 址。L的值可以是预定的或是由用户选定(如4、 8、 10等)。所取得的 分支地址的緩冲区对应于特定的采样时刻。图2示出了在执行诸如基 准程序的实例程序期间,BTrB才羊本地址的实例緩冲区随时间的图。在框120完成后,进程100继续进行到框130。框130确定在至 少两个连续直方图区间的中心之间的距离。在一个实施例中,分支地 址的向量如下确定bt=(bt,lv..ba)T,它代表在时间t的单个BTrB样本 的分支地址的向量。Bt-bt,bw,...btM是某一时刻可用的M个连续样本 的緩冲区。M是预定的或由用户动态调整,如1000、 1400、 1820, 等等。稳定阶段定义为Bt的一维直方图,并被标注为H产[ht,i,...ht,w;T。 直方图Ht是大小为N的向量,其中N是直方图区间的总数。Wlv..WN 是一组间隔相等且非重叠的直方图区间,它们覆盖了可能分支地址的 整个空间。AW-Wk-Wk,,是两个连续直方图区间的中心之间的距离。 在一个实施例中,用欧几里得3巨离计算方法来测量距离,即距离(Hk,(V,-hLi)2,5。应当注意,在不偏离本实施例范围情况下,也可以使用本
已知的其他距离算法。在框130完成之后,框140将所确定的距离与阶段阈值进行比 较。如果两个连续直方图区间之间的距离等于或大于阶段阈值,则Bk 与B,中的样本属于不同的阶段,否则这些样本属于相同的阶段。因 此,根据比较的结果确定可执4亍进程的主执行阶段。在框140完成之后,如果Bk与B,中的样本属于相同阶段,则进 程IOO继续进行到框150。在一个实施例中,设置指示相同阶段的变 量。如果Bk与B,中的样本属于不同阶段,则在一个实施例中,框145 设置指示不同阶段的变量。在一个实施例中,框160发送信号,以便 重新优化正在执行的进程。可将该信号发送到例如动态编译器。应当注意,增加直方图区间的距离宽度AW会粗化分辨率,并 会减少阶段检测进程100的复杂度。粗分辨率用于阶段检测,而细分 辨率用于热跟踪检测。设置AW—,便将每个单个的分支地址放置在 不同的直方图区间中。这样,便创建了细粒度直方图。创建细粒度直 方图的结果是,减慢了阶段检测进程100,且可能增加阶段的数量。设置△ W>> 1 ,便将相同存储区中的分支地址放置在相同的直方图区 间中。这样的结果是创建了粗粒度直方图。创建粗粒直方图加速了阶段检测进程100,并减少了阶段的数量。通过改变AW,可以对不同 分辨率的直方图作出分析。因而,可实现阶段检测开销和阶段检测精 度之间的动态折中。在一个实施例中,进程100的主执行阶段的确定 是以预定周期速度执行的动态进程。例如,可用选定的速度(如每5 分钟、每小时、每24小时等)执行进程100。在另一个实施例中,进 程100是人工执行的,因为它是由用户选择的。为了举例,图2示出在实例程序执行期间BTrB样本地址的实例 緩沖区随时间的图表具有以下设置L=4,M=1820,AW=105,且阶段 阈值-0.4M。图3示出了对应于两个已检测阶段的直方图,而图4示 出了使用图2中的数据时所检测的阶段序列(对37个数据块而言)。可以在采用动态档案导引优化(如MRTE、动态二进制优化器和 动态二进制翻译器)的系统中应用进程100。这类系统包含硬件性能监 视,且它们的性能依赖于档案导引优化。图5示出了一个系统的实施例。系统500包括连接到存储器520 的处理器510。在一个实施例中,存储器520是诸如随机存取存储器 (RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器 (DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)之类的主存储 器。在另一个实施例中,存储器520是高速緩冲存储器。进程100采 用运行在处理器510中并与存储器520进行通信的可执行进程的形 式。在该实施例中,进程IOO是阶段检测器进程,该阶段检测器进程 确定运行在存储器520中的另一个可执行进程的主执行阶段。在系统 500中,进程100确定何时对运行在系统500中的另一可执行进程进 行重新优化。根据应用场合,可以将系统500与其他已知的组件进行 组合。例如,如果将系统500用于多处理器系统中,则可将其它多处 理器系统的典型的已知组件与系统500进行耦合。系统500可用于多种应用场合,如个人计算机(PC)、个人数字助理(PDA)、笔记本计算 机、服务器、MRTE、动态二进制优化器、动态二进制翻译器等。在 一个实施本文档来自技高网
...

【技术保护点】
一种方法,包括:选择阶段阈值,接收多个经过排序的缓冲区,确定在至少两个连续直方图区间的中心之间的距离,将所述距离与所述选择的阈值进行比较,以及根据所述比较来确定可执行进程的主执行阶段。

【技术特征摘要】
【国外来华专利技术】US 2004-3-31 10/815,2881. 一种方法,包括 选择阶段阈值,接收多个经过排序的緩冲区,确定在至少两个连续直方图区间的中心之间的距离, 将所述距离与所述选择的阈值进行比较,以及 根椐所述比较来确定可执行进程的主执行阶段。2. 如权利要求1所述的方法,所述多个经过排序的援沖区包括 多个样本,所述样本包含在某一采样时间取得的多个分支的地址。3. 如权利要求1所述的方法,还包括 确定代表分支跟踪緩冲区的多个分支地址, 确定代表所述分支跟踪緩冲区的多个连续分支地址, 为所述多个连续分支地址确定稳定阶段直方图,以及为所有可能的分支地址确定多个间隔相等且非重叠的直方图区间。4. 如权利要求1所述的方法,其中所述确定主执行阶段的结果 发信号要求动态编译可执行代码,以便优化所述可执行代码。5. 如权利要求l所述的方法,还包括确定所述至少两个连续直方图区间是否处于相同的阶段。6. 如权利要求5所述的方法,如果所述距离比等于和小于所述 选择的阶段阈值其中之一要小,则所述至少两个连续直方图处于相同 阶段。7. —种包括机器可读介质的设备,所述机器可读介质包含指 令,当机器执行所述指令时,使得所述机器执行以下操作选择阶段阈值,接收多个经过排序的緩沖区,确定代表分支跟踪緩沖区的多个分支地址, 确定在至少两个连续直方图区间的中心之间的距离,其中所述至 少两个直方图区间是非重叠的,以及将所述距离与所述选择的阈值进行比较。8. 如权利要求7所述的设备,还包括指令,当机器执行所述指 令时,使得所述机器执行以下操作确定代表所述分支跟踪緩冲区的多个连续分支地址, 为所述多个连续分支地址确定稳定阶段直方图, 为所有可能的分支地址确定多个间隔相等且非重叠的直方图区 间,以及根据所述比较确定可执行进程的主执行阶段。9. 如权利要求8所述的设备,其中所述确定主执行阶段以预定 的周期速度动态变化。10. 如权利要求8所述的设备,其中所述确定主执行阶段是以人 工方式开始的。11. 如权利要求7所述的设备,所述多个经过排序的緩冲区包括 多个样本,所述样本包含在某一采样时间取得的多个分支的地址。12. 如权利要求7所述的设备,其中所述确定主执行阶段的指令 的结果发信号要求动态编译可执行代码,以便优化所述可执行代码。13. 如权利要求7所述的设备,还包括指令,当机器执行所述指 令时,使得所述机器执行以下操作确定所述至少两个连续直方图区间是否处于相同的阶段。14. 如权利要求13所述的设备,如果所述距离比等于和小于所 述选择的阶段阈值的...

【专利技术属性】
技术研发人员:AV内费安AR阿德尔塔巴塔拜
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1