用于监视并调整微体系结构的性能的方法、设备和系统的制作方法

文档序号:9417279阅读:504来源:国知局
用于监视并调整微体系结构的性能的方法、设备和系统的制作方法
【专利说明】
[0001] 本分案申请的母案申请日为2006年6月1日、申请号为200680019059. 9、发明名 称为"用于监视并调整微体系结构的性能的方法、设备和系统"。
技术领域
[0002] 本发明涉及计算机系统领域,具体来说涉及微体系结构的性能监视和调整。
【背景技术】
[0003] 性能分析是表征、调试和调整微体系结构设计、查找和修正硬件和软件中的性能 瓶颈以及定位可避免的性能问题的基础。随着计算机业的发展,分析微体系结构并基于该 分析来对微体系结构进行更改的能力变得更加复杂且重要。
[0004] 除了提供尽可能最佳的平台外,常常通过调整应用程序以使之在该平台上以最佳 表现运行来实现最佳性能。在识别性能瓶颈、找出如何通过更好的代码生成来避免它们以 及确认性能的提升等方面都有大量投入。性能监视器是该分析中的一个关键组件。性能监 视比硅前(pre-silicon)模拟提供更大量的性能数据,并且已经被用于调整微体系结构设 计以提升诸如存储转发等方面的性能。在推动硅更改时,准确地知道性能问题发生的频度 和从改进微体系结构的该部分获得的多大获益是必不可少的要素。
[0005] 在过去,串行执行机器的性能监视相对是直接的,因为跟踪串行性能瓶颈远比 检测并行乱序执行期间的性能极限容易得多。典型性能分析按如下方式将工作负荷的 CPI (每个指令的时钟数)分解成各个组成部分:1)硬件中的计数性能事件,2)估算每个事 件对程序的关键路径的相对贡献,以及3)将对工作负荷的性能瓶颈产生贡献的各个组成 部分组合成总细分。估算单个微体系结构原因的每个实例成本对于乱序且高度推测的机器 来说是困难的,其中有要涵盖许多停止成本的大部分的足够推测且流水线并行性。目前, 已经采用专用方法来估算事件的每个实例影响,并且这些估算的精确度和变化常常是未知 的。
[0006] 例如,图1图示单问题机器中指令101-107的提取、执行和引退(retirement)的 示例。指令102具有分支误预测110,它使指令103的提取延迟,并显著地在指令102之后推 出(pushout)指令103的引退。指令104具有第一级高速缓存未命中120,它进一步地推出 指令105的引退。但是指令104的引退推出125被指令105的第二级高速缓存未命中130 矮化(dwarfed),它具有如此长的等待时间,以致于指令106中的分支误预测135对它的引 退时间没有任何影响。正如图1所列举的,不管能够实现乱序高度推测并行执行的处理器 中有全面的性能监视,即使在单个问题机器中,测量引退推出时也存在无法理解的复杂性。

【发明内容】

[0007] 本发明涉及一种用于监视并调整微体系结构的性能的方法,包括:
[0008] 使用微处理器执行第一软件程序;
[0009] 确定与执行所述第一软件程序关联的关键路径的每个实例事件成本;以及
[0010] 基于所述与执行所述第一软件程序关联的关键路径的每个实例事件成本来调整 所述微处理器的硬件。
[0011] 本发明涉及一种用于监视并调整微体系结构的性能的设备,包括:
[0012] 微处理器,所述微处理器包括:
[0013] 用于确定执行软件程序的每个实例事件成本的模块;以及
[0014] 用于基于所述每个实例事件成本调整所述软件程序的模块。
[0015] 本发明涉及一种用于监视并调整微体系结构的性能的系统,包括:
[0016] 控制器集线器,所述控制器集线器耦合到存储器以及视频控制器;
[0017] 微处理器,所述微处理器包括用于执行如下步骤的模块:
[0018] 在软件程序执行期间确定每个实例事件贡献;
[0019] 基于所述每个实例事件贡献调整所述微处理器的体系结构配置;
[0020] 存储所述体系结构配置;以及
[0021] 在所述软件程序的后续执行时基于所存储的体系结构配置再次调整所述体系结 构配置。
【附图说明】
[0022] 附图以举例方式而无意作为限制图示了本发明。
[0023] 图1图示单个问题机器中多个操作的提取、执行和引退的实施例。
[0024] 图2图示一种处理器的实施例,该处理器包括第一性能监视模块和第二微体系结 构调整模块。
[0025] 图3图示图2的特定实施例。
[0026] 图4图示一种处理器的实施例,该处理器包括用于以静态或动态方式重新编译软 件的模块。
[0027] 图5图示一种系统的实施例,该系统包括具有用于监视处理器的性能和调整处理 器的微体系结构的模块的处理器。
[0028] 图6a图示用于监视性能并基于性能来调整微处理器的流程图的实施例。
[0029] 图6b图示图6a的特定实施例。
[0030] 图6c图示用于监视性能并调整微处理器的另一个实施例。
[0031] 图7图示用于在特定事件发生时测量引退推出的实施例。
【具体实施方式】
[0032] 在下文描述中,提出了例如特定体系结构、这些体系结构内的功能部件、调整机制 和系统配置的大量特定细节以便提供对本发明的透彻理解。但是,对于本领域技术人员显 见的是,无需采用这些特定细节也能实施本发明。在一些其他情况中,没有对例如公知的逻 辑设计、软件编译器、软件重新配置技术和处理器去功能部件(processor defeaturing)技 术等的公知组件或方法进行详细描述,以便避免不必要地妨碍了对本发明的理解。
[0033] 件能监视
[0034] 图2图示一种处理器205的实施例,该处理器205具有性能监视模块210和调整 模块215。处理器205可以是用于执行代码和/或对数据进行操作的任何部件。作为特定 实例,处理器205能够实现并行执行。在另一个实施例中,处理器205能够实现乱序执行。 处理器205还可以实现分支预测和推测执行,以及实现其他公知的处理单元和方法。
[0035] 处理器250中图示的其他处理单元包括:存储器子系统220、前端225、乱序引擎 230和执行单元235。这些模块、单元或功能块的每一个可以为处理器205提供前述的功能。 在一个实施例中,存储器子系统包括较高级的高速缓存和用于与外部设备实现接口的总线 接口,前端225包括投机逻辑和提取逻辑,乱序引擎230包括用于将指令重新排序的调度逻 辑,以及执行单元235包括以串行和并行执行的浮点和整数执行单元。
[0036] 模块210和模块215能以硬件、软件、固件或其任何组合来实现。通常,在不同的 实施例中,模块的边界是不同的,并且一起来实现以及单独地实现功能。在一个示例中,在 一个模块中实现性能监视和调整。在图2图示的实施例中,分别示出模块210和模块215 ; 但是模块210和模块215可以是由其他图示的单元220-235执行的软件。
[0037] 模块210用于监视处理器205的性能。在一个实施例中,通过确定和/或导出至 关键路径的每个实例成本来实现性能监视。关键路径包括在将增加发生、任务或事件的等 待时间的情况下将会对完成操作、指令、指令集或程序所要耗费的时间产生贡献的任何此 类发生、任务和/或事件的任何路径或序列。在图形学上来说,关键路径有时可以称为经过 特定机器上运行的程序中的数据、控制和资源相关性的图形的路径,其中该相关图形中的 任何弧的延长将导致该程序的执行等待时间的增加。
[0038] 因此,换言之,事件/功能部件对关键路径的每个实例贡献是事件(例如第二级高 速缓存未命中)或微体系结构功能部件(例如分支预测单元)对完成任务或程序中所经历 的等待时间的贡献。实际上,事件或功能部件的贡献在不同的应用程序域间有显著差异。因 此,可以为特定的用户级应用程序(例如操作系统)来确定事件或微体系结构功能部件成 本/贡献。下文将参考图3来更详细地论述模块215。
[0039] 事件包括处理器中引起等待时间的任何操作、发生或动作。微处理器中的常 见事件的一些示例包括:低级高速缓存未命中、次级高速缓存未命中、高级高速缓存未 命中、高速缓存访问、高速缓存窥探、分支误预测、从存储器提取、引退时锁定(lock at retirement)、硬件预提取、前端存储、高速缓存分割(cache split)、存储转发问题、资源停 止、回写、指令解码、地址转换、对转换缓冲器的访问、整型运算数执行、浮点运算数执行、寄 存器的重命名、指令的调度、寄存器读取以及寄存器写入。
[0040] 微体系结构功能部件包括与前述的事件关联的逻辑、功能单元、资源或其他功能 部件。微体系结构功能部件的示例包括:高速缓存、指令高速缓存、数据高速缓存、分支目标 阵列、虚拟存储器表、寄存器文件、转
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1