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

局部仿真环境中从源指令集架构代码向转换后代码的转换制造技术

技术编号:6707844 阅读:207 留言:0更新日期:2012-04-11 18:40
在一个实施方式中,处理器可以在多种模式中进行操作,包括直接执行模式和仿真执行模式。具体地,处理器可在局部仿真模型中进行操作,其中,在直接执行模式中直接处理源指令集架构(ISA)指令并在仿真执行模式中处理由仿真引擎生成的转换后代码。实施方式还可通过使用存储在处理器的一个或多个存储器中以及系统中的其他位置处的信息来提供模式之间的有效转移。描述并要求了其他的实施方式。

【技术实现步骤摘要】
局部仿真环境中从源指令集架构代码向转换后代码的转换
技术介绍
现代微处理器是大多数计算机系统的核心。通常,这些处理器通过接收指令并响 应于这些指令来执行操作而工作。对于应用程序和操作系统(OS)的活动,可在处理器中接 收指令,然后该处理器将这些指令解码成适合在处理器硬件上执行的、一个或多个更小的 通常称为微指令(Uops)的操作。一些处理器缺少用于直接执行某个指令集架构(ISA)的 指令的硬件部件。由于这个原因,指令被解码成能够在硬件上直接执行的uops。一个可选的实现方式是使用共设计(co-designed)虚拟机(VM),在该共设计虚拟 机中,结合处理器硬件来设计仿真软件层。共设计VM实现被称为源ISA的标准ISA,例如 x86 ISA。包括OS和应用程序的常规软件被编译成源ISA。继而,共设计VM的硬件实现目 标ISA,该目标ISA针对具有特殊性能和/或能效特征的给定硬件实现而被专门设计。目标 ISA与uops处于同一等级,并可等同于uops集。属于共设计VM的仿真软件通过解释应用程序/OS源ISA软件或者通过将应用程 序/OS源ISA软件直接转换成优化的目标指令序列来指示应用程序/OS源ISA软件的执行。 这种转换保证了性能增益和/或改善的能效。仿真过程通常如下进行。当第一次遇到代码(源ISA指令)时,对该代码进行解 释。然后,当通过动态概要描述或某个其他方式发现被频繁执行的代码区(热点)时,可将 它们转换成目标ISA。经常将优化作为转换过程的一部分来执行;并可以在后面进一步优 化被非常频繁使用的代码。将已转换的代码区保存在转换高速缓存中,以便能够再次使用 这些代码。转换高速缓存由仿真软件来管理,并且保存在对所有应用程序/OS软件隐藏的 存储器的扇区中。应用程序/OS软件保存在常规(可见)存储器中。前面提到的采用共设计VM的处理器实现使用全仿真,其中仿真软件仿真所有的 应用程序/OS软件。全仿真的一个缺点是在执行代码之前必须首先对所有代码进行解释和 /或转换,当第一次遇到一个软件区时,这会导致低性能。附图说明图1是根据本专利技术一个实施方式的包括处理器和存储器的共设计环境的框图。图2是根据本专利技术一个实施方式的仿真引擎的部件的框图。图3是根据本专利技术一个实施方式的方法的流程图。图4A示出了根据本专利技术一个实施方式的转换后援缓冲器(TLB)条目。图4B示出了根据本专利技术另一实施方式的可选的TLB条目。图5是根据本专利技术一个实施方式的比特矢量结构和TLB的框图。图6是根据本专利技术一个实施方式的用于访问直接哈希表的直接哈希操作的框图。图7是根据本专利技术一个实施方式的处理器的框图。图8是示出了根据本专利技术一个实施方式的操作的框图。图9是根据本专利技术另一实施方式的处理器的框图。图10是根据本专利技术一个实施方式的仿真引擎的操作的流程图。图11是根据本专利技术一个实施方式的系统的框图。 具体实施例方式在各种实施方式中,局部仿真可在诸如共设计微处理器这样的处理器中实现。为 了实现局部仿真,处理器可具有两种模式,即第一模式和第二模式。在第一模式中,处理器 直接执行源ISA的指令,在一个实施方式中,源ISA的指令可以是源ISA代码(例如,用于 英特尔体系架构(ΙΑ) 处理器的ISA的x86代码),在第二模式中,处理器执行目标ISA的 指令(并且其可处于uop等级,绕开处理器的指令解码器),目标ISA的指令可以是存储在 诸如代码高速缓存这样的转换高速缓存中的转换和优化后的代码。如本文所使用的,第一 模式可被称为“直接模式”或“直接执行模式”,第二模式可被称为“仿真模式”或“仿真执行 模式”。这样,在通常的方式中,可经由uops来提取并直接执行应用程序/OS软件的一些 部分,而应用程序/OS软件的其他部分则通过转换成目标指令集得到仿真。该过程称为局 部仿真。通过采用局部仿真,可首先采用良好的性能来直接执行软件,并然后基于概要信 息,将所选择的被频繁执行的区域转换并存储在转换高速缓存中。该方法具有在第一次遇 到软件时避免性能损失、同时为被频繁执行的软件提供性能和/或功效增益的优点。为了实现局部仿真,可提供一种机制来在保存在常规存储器中的指令的直接执行 和经由保存在隐藏存储器中的转换后指令的仿真之间转移控制。从仿真软件到常规应用程 序/OS软件的控制转移可通过仿真软件所执行的分支和跳转指令来实现。从常规软件到转 换后代码的控制转移可通过“打补丁”来修改常规软件或者通过将分支或跳转放在常规软 件中来实现。然而,这些对常规存储器的修改严重地复杂化了源ISA的准确仿真。本文的实施方式提供了从常规软件到仿真软件的转移,并且不以任何方式对常规 应用程序/OS软件进行打补丁或修改。而是,它使用断点机制,其中硬件自动地检测需要转 移到仿真的常规软件区域。然后,经由硬件和软件的一些组合,仿真过程实现向保存在转换 高速缓存中的仿真代码的转移。在直接模式期间,当到达存在转换的指令指针(IP或EIP)时,处理器可以切换 到仿真执行模式并直接跳转到存储在转换高速缓存中的转换,或者可以快速陷入(trap into)仿真引擎中。然后,仿真引擎可之后经由一个或多个表格、缓冲器或高速缓存(例如 哈希表)来查找转换入口地址以完成该转换。不同的硬件实现是可能的。在一个实施方式中,支持快速的原始向仿真执行转移 的硬件技术可使用“源IP到转换后IP”表。在这种结构中,仿真引擎可存储源ISA代码地 址以及针对其在转换高速缓存中的位置的相应的转换地址(目标地址)。在各种实施方式 中,这种表格(和/或它的部分)可存储在不同位置中。然后,如果源IP与表格条目相匹 配,则处理器可跳转到该转换。然而,这种全关联硬件结构可能尺寸太小从而不能应付从未 被转换的代码到转换后代码的可能数千条路径。因此,该表格可用作性能优化,但不能作为 完全解决方案。由于存在着进入转换的数千个入口点,所以每当控制到达其中一个入口点,实施 方式就能够快速地转移到这些转换。由于在长的范围内控制流通常是不可预测的,所以这 种转移是复杂的,因为很难预测接下来将到达哪个入口点。因此,实施方式确定是否存在当6前EIP可用的转换,并且如果存在则如何找到该转换的入口地址。在一个实施方式中,断点高速缓存可在硬件中实现,并且断点表可由仿真引擎来 管理。当需要时,仿真引擎从该表向高速缓存复制条目。进一步的实施方式可包括与指令 转换后援缓冲器(TLB)条目相关联的断点比特,当形成指令TLB条目时,仿真引擎从断点表 向指令TLB中复制条目。作为优化,断点比特可与仅执行比特相组合。进一步地,断点比特 可与指令高速缓存行相关联,当将新的行引入指令高速缓存时,硬件从断点高速缓存复制 条目。为了进一步理解各种实施方式的操作,示出了根据本专利技术实施方式的被实现为共 设计虚拟机的 处理器的部件是有意义的。如图1所示,共设计环境10包括处理器5和存储 器20,在一个实施方式中,存储器20可以是诸如动态随机存取存储器(DRAM)之类的系统存 储器。如图所示,处理器5可以具有给定的微结构,并可通过例如点对点互连、总线的方式 或其他这样的方式耦合到存储器20。在存储器20的可见部分,即第一部分30中,可存储一 个或多个操作系统35和应用程序38。该部分被称为本文档来自技高网...

【技术保护点】
1.一种装置,包括:包括多个条目的断点高速缓存,每个条目存储仿真指示符以指示存储在指令存储器中的、与该条目对应的指令集中的至少一个指令是否与存储在转换高速缓存中的转换后代码相关联;包括多个条目的映射高速缓存,每个条目存储在源指令集架构(ISA)指令的位置与存储在所述转换高速缓存中的、针对所述源ISA指令的转换后代码的位置之间的映射;以及耦合到所述断点高速缓存和所述映射高速缓存的逻辑,该逻辑基于所述断点高速缓存中的相应的仿真指示符和所述映射高速缓存中的映射中的至少一个,来确定是否使所述装置的控制从直接执行模式跳转到仿真执行模式。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:S·温克尔K·山田S·斯里尼瓦斯J·E·史密斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:US

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

1