由性能监视硬件实现的硬件剖析机制实现页级自动二进制转换。该硬件在运行时期间标识存储器中包含潜在能被优化的指令的代码页。该硬件请求在所述存储器中分配与所述代码页相关联的新页,其中所述新页包含计数器的集合,并且所述计数器中的每一个对应于所述代码页中的指令中的一个。当该硬件检测到具有在该代码页内的分支目标的分支指令时,它使在该新页中具有与代码页中的分支目标相同的位置的计数器之一递增。重复该代码页的执行,并在分支目标落在该代码页之内时使计数器递增。该硬件然后将所述新页中的所述计数器值提供给二进制转换器以用于二进制转换。
【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】由性能监视硬件实现的硬件剖析机制实现页级自动二进制转换。该硬件在运行时期间标识存储器中包含潜在能被优化的指令的代码页。该硬件请求在所述存储器中分配与所述代码页相关联的新页,其中所述新页包含计数器的集合,并且所述计数器中的每一个对应于所述代码页中的指令中的一个。当该硬件检测到具有在该代码页内的分支目标的分支指令时,它使在该新页中具有与代码页中的分支目标相同的位置的计数器之一递增。重复该代码页的执行,并在分支目标落在该代码页之内时使计数器递增。该硬件然后将所述新页中的所述计数器值提供给二进制转换器以用于二进制转换。【专利说明】用于实现页级自动二进制转换的硬件剖析机制
本公开涉及处理逻辑、微处理器以及相关的指令集架构的领域,这些指令集架构在被处理器或其他处理逻辑所执行时执行逻辑、数学或其他功能性操作。
技术介绍
计算机程序通常针对特定的计算机处理器架构被编译成二进制代码。这在该计算机处理器进化以实现更先进的指令集、更强大的功能单元或不同的数据格式时产生问题。每当引入新一代处理器时,计算机硬件和软件供应商不得不花费大量的工程设计资源以及金钱资源来帮助旧的计算机程序在新计算机处理器上运行。 在现代计算机中,通常通过处理器的前端处的解码器将经编译的二进制代码解码成微代码。一种使旧软件能在新处理器上运行的现有方法是动态二进制转换,动态二进制转换将二进制代码从一个指令集转换至另一指令集。如果经编译的二进制代码包含热点(hot spot),即程序的频繁执行部分,则可对包含该热点的代码区(而不是整个代码)执行二进制转换。这样的部分二进制转换的结果是处理器专用和经优化的代码。 为了对热点执行部分二进制转换,首先需要使有效的热点检测机制就位。常规的热点检测机制收集并分析二进制代码的运行时(runtime)统计,由此确定热点的存在。然而,常规的热点检测机制会使用大量的存储器来存储所收集的统计,并且会招致显著的硬件成本以用于跟踪二进制代码的运行时行为。 在检测到热点之后,调用转换器软件以产生该热点代码的经优化版本。然后将经优化的代码安装在存储器中,并执行经优化的版本,而不是执行原始原生代码。找出并优化热点的过程花费了相当大量的处理时间和硬件资源,这些处理时间和硬件资源原本可用于执行原生代码。然而,由于硬件和软件限制,当前系统标识并转换相同的热点,并存储和安装用于每个虚拟地址的相同的经优化代码和其中检测到热点的上下文。因此,每当创建新上下文时,即使之前已经对于相同代码执行了整个过程,相同代码中包含的热点也被重新检测和重新安装。因此,系统资源被低效地利用,并且系统性能降级。 附图简述 在附图的以下各图中通过示例而非限制地说明多个实施例: 图1是根据一个实施例的具有性能监视硬件的指令处理装置的示例实施例的框图。 图2示出根据一个实施例的被分配给代码页的新页的示例。 图3示出根据一个实施例的用于运行时二进制转换的性能监视系统的元件。 图4是示出根据一个实施例要执行的操作的流程图。 图5是示出根据一个实施例要执行的操作的另一流程图。 图6是示出根据一个实施例的使用软件指令转换器将源指令集中的二进制指令转换为目标指令集中的二进制指令的框图。 图7A是根据一个实施例的有序和无序流水线的框图。 图7B是根据一个实施例的有序和无序核的框图。 图8A-B是根据一个实施例的更具体的示例性的有序核架构的框图。 图9是根据一个实施例的处理器的框图。 图10是根据一个实施例的系统的框图。 图11是根据一个实施例的第二系统的框图。 图12是根据本专利技术的实施例的第三系统的框图。 图13是根据一个实施例的片上系统(SoC)的框图。 各实施例的描述 在以下描述中,陈述了多个具体细节。然而,应当理解的是,可不通过这些具体细节来实施本专利技术的实施例。在其它实例中,未详细示出公知的电路、结构以及技术,以免模糊对本描述的理解。 常规的热点检测和二进制转换机制不能高效地利用系统资源。因此,需要关于热点检测覆盖范围、转换器调用次数以及经优化代码和元数据的存储尺寸的改进。本申请中描述的各实施例提供了硬件剖析机制,该硬件剖析机制允许利用非常少的硬件和软件开销来监视热点。本申请中描述的实施例还允许在多个上下文上重新使用经优化的代码。因此,可减小热点检测覆盖范围,并且可使转换器调用次数以及经优化的代码存储空间最小。因为有附加的机会来执行经优化的代码,所以还可改善系统性能。 图1是指令处理装置115的实施例的框图,该指令处理装置具有用于执行指令的执行单元140。在一些实施例中,指令处理装置115可以是处理器、多核处理器的处理核、或者电子系统中的处理元件。 解码器130接收高级机器指令或宏指令形式的传入指令,并且解码所述指令以生成低级微操作、微代码进入点、微指令或其他低级指令或控制信号,它们反映了原始的高级指令和/或从原始的高级指令导出。低级指令或控制信号可通过低级(例如,电路级或硬件级)操作来实现高级指令的操作。解码器130可使用各种不同的机制来实现。合适机制的示例包括但不限于微代码、随机存取存储器(ROM)、查找表、硬件实现、可编程逻辑阵列(PLA)、用于实现本领域已知的解码器的其他机制等。 执行单元140耦合至解码器130。执行单元140可从解码器130接收一个或多个微操作、微代码进入点、微指令、其他指令或其他控制信号,它们反映了所接收的指令或者是从所接收的指令导出的。执行单元140还接收来自寄存器或存储器位置170的输入,并产生输出至寄存器或存储器位置170。 为了避免混淆描述,已示出和描述了相对简单的指令处理装置115。应当理解,其他实施例可具有超过一个执行单元。例如,装置115可包括多个不同类型的执行单元,诸如例如算术单元、算术逻辑单元(ALU)、整数单元、浮点单元等。指令处理装置或处理器的再其他实施例可具有多个核、逻辑处理器或执行引擎。稍后将参考图7-13提供指令处理装置115的多个实施例。 根据一个实施例,指令处理装置115包括用于执行硬件剖析的性能监视硬件110。在指令处理装置115是多核处理器的情形下,每个处理器核可包含性能监视硬件110的副本。性能监视硬件110包括第一级硬件112和第二级硬件114。在装置115接收二进制指令流时,第一级硬件112监视这些指令以检测这些指令中是否有指令有必要进行优化(因此有必要进行优化这些指令的二进制转换)。例如,向量展宽是使用二进制转换将更早年代的指令集架构(ISA)(例如SMD扩展(SSE))的向量指令(也称为打包指令)转换成在更宽的向量寄存器上操作的更新的向量指令(例如高级向量扩展(AVX))的优化技术,从而既提高性能又提高每瓦特性能。对于该二进制转换机会,第一级硬件112可标识包含大量打包SSE指令的代码页。 可将指令从一个ISA 二进制转换至执行这些指令所针对的另一 ISA,如上述示例所描述。还可出于存储器预取出、分支性能改善、计算效率增强等等目的对指令进行二进制转换,其中二进制转换的源和目标可针对同一 ISA。因此,第一级硬件112可根据各种各样的优化标准来检测二进制转换机会。 当第一级硬件112检测到大量可优化本文档来自技高网...
【技术保护点】
一种装置,包括:一个或多个处理器核,所述处理器核中的每一个包括性能监视硬件;以及高速缓存单元,耦合至所述一个或多个核,其中所述性能监视硬件包括逻辑,所述逻辑用于:标识存储器中包含潜在能被优化的指令的代码页;请求在所述存储器中分配与所述代码页相关联的新页,其中所述新页包含计数器的集合,并且所述计数器中的每一个对应于所述代码页中的指令中的一个;检测具有在所述代码页内的分支目标的分支指令;使在所述新页中具有与所述代码页中的所述分支目标相同的位置的计数器之一递增;重复所述代码页的执行,并在分支目标落在所述代码页之内时使所述计数器递增;以及将所述新页中的所述计数器的值提供给二进制转换器以用于二进制转换。
【技术特征摘要】
【国外来华专利技术】
【专利技术属性】
技术研发人员:P·卡普瑞奥利,M·C·梅尔腾,M·M·艾尔奥图姆,O·M·沙克,A·S·卡尼尔,S·斯里尼瓦斯,K·山田,V·萨卡,P·奥斯蔡克,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。