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

在协同设计的处理器中创建隔离执行环境制造技术

技术编号:10451522 阅读:139 留言:0更新日期:2014-09-18 16:20
在一实施例中,一种处理器包括具有生成第一代码段的二进制转换并将该二进制转换储存在转换高速缓存中的代码的二进制转换(BT)容器、用于管理BT容器并标识第一代码段的主机实体逻辑、以及用于将BT容器与软件栈隔离的保护逻辑。以此方式,BT容器被配置成对软件栈而言是透明的。描述并要求保护其他实施例。

【技术实现步骤摘要】
在协同设计的处理器中创建隔离执行环境
本专利技术涉及协同设计的处理器。
技术介绍
现代微处理器是大多数计算机系统的心脏。一般而言,这些处理器通过接收指令并响应于这些指令而执行各操作来运作。对于应用程序和操作系统(OS)活动而言,指令可在处理器中接收,处理器随后将这些指令解码成适于在处理器硬件上执行的一个或多个较小操作,这些较小操作通常称为微指令(uop)。一些处理器缺少直接执行某些指令集架构(ISA)指令的硬件特征。出于这一原因,指令被解码成可直接在硬件上执行的诸个uop。解码到uop允许处理器并行且无序地调度和执行,从而帮助提高性能。但这一机制在许多情况下可能是不足的。 【附图说明】 图1是根据本专利技术实施例的系统的一部分的框图。 图2是根据本专利技术的另一实施例的协同设计的处理器的框图。 图3是根据本专利技术的实施例的用于执行二进制转换的方法的流程图。 图4是根据本专利技术的实施例的用于执行到经转换的代码的低开销转移的方法的流程图。 图5是根据本专利技术的一个实施例的包括处理器和存储器的协同设计的环境的框图。 图6是根据本专利技术的实施例的系统的框图。 【具体实施方式】 在各实施例中,提供了协同设计的处理器架构框架以使二进制转换软件保持对固件层之上的软件栈的隐藏。这一软件栈包括虚拟机监视器(VMM)、操作系统(OS)、以及在处理器的一个或多个核上执行的应用程序。以此方式,各实施例可以避免对固件之上的软件栈的任何层的修改。如此,这一栈可以从动态二进制优化和指令集架构(ISA)仿真系统中获益。即使提供了这一架构框架来对VMM、OS以及各应用程序而言透明地执行BT软件,它也可被用来运行协同设计的处理器的不同类型的软件组件并启用不同类型的用途。例如,这一框架可被用来执行要在隐藏环境(例如,对VMM/0S层隐藏)中运行的任何软件(例如,病毒扫描软件)。这一隐藏环境是相对于VMM、0S以及各应用程序而言隔离的、独立的、以及受保护的执行环境。 通过二进制转换,硬件/软件协同设计的处理器启用通过隐藏二进制转换(BT)软件的动态二进制优化和转换。它能以功率高效的方式来产生提高的性能,并且还通过二进制转换启用新ISA扩展。在标准ISA被称为源ISA的协同设计的处理器中,例如,存在X86ISA。常规软件,包括OS和应用程序两者,被编译到源ISA。进而,协同设计的处理器的硬件实现针对具有特殊性能和/或能效特征的给定硬件实现来特别设计的目标ISA。目标ISA与uop处于同一层,并且可以与该组uop相同。 属于该协同设计的处理器的仿真软件通过对应用程序/OS进行译码或通过将应用程序/OS直接转换成经优化的目标指令序列来将应用程序/OS的执行定向到源ISA软件。这样的转换保证了性能增益和/或提高能效。 仿真过程通常如下进行。译码被用于首次遇到的代码(源ISA指令)。随后,在通过动态概况分析或某一其他手段发现了频繁执行的代码区(热点)时,它们被转换成目标ISA。优化通常作为转换过程的一部分而被完成;非常频繁使用的代码可在稍后被进一步优化。经转换的代码区被保存在转换高速缓存中,因此它们可被重复使用。转换高速缓存由仿真软件来管理并且被保存在对所有应用程序/OS软件隐藏的存储器扇区中。应用程序/OS软件被保存在常规(可见)存储器中。 采用协同设计VM的先前处理器实现使用完全仿真,其中仿真软件对所有应用程序/OS软件进行仿真。完全仿真的一个缺点是在可被执行之前所有代码必须首先被译码和/或转换,并且这在软件区被首次遇到时可导致低性能。 各实施例可以使用硬件和基于处理器固件的机制来创建隔离且隐藏的虚拟机执行环境,在此称为二进制转换(BT)容器。这一容器可被用来执行BT软件,以实现部分转换或完全ISA仿真模型。在一实施例中,BT容器本质上是由处理器固件直接控制的虚拟机环境的特殊(且在一些实施例中是简化的)版本。在各实施例中,该容器被设计成对包括VMM、操作系统以及应用程序的软件栈而言是隐藏且透明的。 在操作期间,BT容器与各种组件和机制进行交互。首先,处理器包括用于管理BT容器的主机实体。在不同的实施例中,这一实体可以由处理器硬件扩展和固件(例如,微代码层或处理器抽象层)的组合来实现。如将在此描述的,主机实体控制进入和退出BT容器以及暴露给在BT容器内运行的软件的ISA。 BT容器环境包括BT软件的处理器状态以及保存BT软件的代码和数据的私有存储器空间。BT软件在这一 BT容器内执行并且实现用于执行优化和ISA兼容性操作的一个或多个二进制转换算法。 各实施例可以提供被用来保护BT容器存储器免受软件(VMM、OS以及应用程序)和硬件攻击者攻击的基于硬件的保护机制。在一个实施例中,这一保护机制可以用基于存储器范围寄存器的保护、存储器加密硬件等来实现,在不同的实现中,所提供的保护等级可以基于所使用的特征以及所需的安全目标。 BT硬件单元被提供来实现对协同设计的处理器的硬件支持。在一实施例中,这一单元包括硬件支持,硬件支持用于检测其他事件中的调用BT容器的事件,检测包括热点检测、自修改代码检测等,其他事件诸如处理器间中断(IPI)事件、功率管理事件、可靠性可用性可服务性(RAS)事件、以及其他。更一般地,这些事件可以受到来自BT软件的立即注意。例如,一个事件可以是定义为在多个处理器上运行的BT软件之间进行同步的私有IPI机制。 为了启用转入/转出BT容器以及容器内的各种操作,可以提供BT ISA扩展。在一实施例中,这些ISA扩展对在BT容器内运行的BT软件而言是可独占使用的。出于示例的目的,这些ISA扩展允许BT软件访问并编程BT硬件单元,与主机实体进行通信来配置容器策略并访问原始代码存储器空间以用于二进制转换。 在一实施例中,转换高速缓存可被提供以存储经转换的代码。在一实施例中,到经转换的代码执行的转变受BT硬件单元所提供的转换进入机制所管控。BT容器环境(包括其私有处理器状态和私有存储器空间)可以与其他软件(VMM、操作系统以及应用程序)隔离并对这些软件隐藏。 BT容器资源可以由主机实体在系统引导期间分配并创建。正是在此时,硬件保护机制可由主机实体编程并管理。 为了对OS和VMM透明,对BT容器中的BT软件的调用和退出由主机实体直接控制。在一个实施例中,调用和退出操作是用硬件和微代码的组合来实现的。在另一实施例中,处理器固件可被用来执行这些操作。 作为一个控制转移操作,在BT硬件单元检测到BT调用事件(如热点)时,处理器停止客户客户软件栈的执行并向主机实体通知该事件。随后,主机实体将处理器上下文的当前状态保存在临时状态存储区域中,切换到BT容器上下文(这可被存储在BT容器内的BT存储区域中)并从所定义的入口指令指针开始BT软件的执行。一旦BT软件获得了控制,它就执行,直至在特殊退出指令(这可以是暴露给BT容器的BT ISA扩展)的情况下发生主动退出或者由主机实体在某些硬件事件(如外部中断、内部定时器中断,等等)时实施非主动退出。这样的内部定时器中断实际上是允许BT软件将长延时操作进行时间分片的超时事件,这些事件对VMM和OS隐藏。 透明度也可通过很好地控制和管理暴露给软件栈的BT软件本文档来自技高网...

【技术保护点】
一种用于执行二进制转换的处理器,包括:用于执行第一指令集架构(ISA)的指令的第一核;用于执行第二ISA的指令的第二核,所述第二核与所述第一核不对称;以及用于对软件栈而言由所述处理器透明地控制的二进制转换容器,所述二进制转换容器包括二进制转换引擎,所述二进制转换引擎用于接收代码段、生成所述代码段的二进制转换、以及将所述二进制转换储存在转换高速缓存中,所述二进制转换包括用于对在所述第二ISA中不可用的所述第一ISA的指令进行仿真的至少一个仿真例程,其中所述第二核用于执行所述二进制转换。

【技术特征摘要】
2013.03.12 US 13/795,7201.一种用于执行二进制转换的处理器,包括: 用于执行第一指令集架构(ISA)的指令的第一核; 用于执行第二 ISA的指令的第二核,所述第二核与所述第一核不对称;以及 用于对软件栈而言由所述处理器透明地控制的二进制转换容器,所述二进制转换容器包括二进制转换引擎,所述二进制转换引擎用于接收代码段、生成所述代码段的二进制转换、以及将所述二进制转换储存在转换高速缓存中,所述二进制转换包括用于对在所述第二 ISA中不可用的所述第一 ISA的指令进行仿真的至少一个仿真例程,其中所述第二核用于执行所述二进制转换。2.如权利要求1所述的处理器,其特征在于,所述至少一个仿真例程用于启用所述第二核执行指令以对第一向量操作数执行操作,其中所述第二核的数据路径的宽度小于所述第一向量操作数的宽度。3.如权利要求1所述的处理器,其特征在于,所述处理器对包括所述代码段的应用程序进行概况分析,并响应于所述概况分析来使得所述二进制转换引擎生成所述二进制转换。4.如权利要求1所述的处理器,其特征在于,所述处理器包括包含多个条目的映射表,每一条目将本机代码段与二进制转换代码段进行关联。5.如权利要求4所述的处理器,其特征在于,所述处理器用于访问所述映射表并且用于在所述映射表包括将所述代码段与所述二进制转换相关联的条目的情况下在遇到所述代码段的入口点时执行所述二进制转换代替所述代码段。6.如权利要求1所述的处理器,其特征在于,所述二进制转换引擎包括用于使得所述二进制转换代替所述代码段被执行的定向逻辑。7.如权利要求1所述的处理器,其特征在于,所述第二核具有比所述第一核更低的功耗水平。8.一种用于执行二进制转换的方法,包括: 接收在处理器的二进制转换代理中执行第一代码段的二进制转换的指令; 生成所述第一代码段的所改动的代码段,所述所改动的代码段包括用于当在所述处理器的不支持第一指令集架构(ISA)的第一指令的核上执行第一指令时对所述第一指令进行仿真的第一例程; 将所改动的代码段储存在改动高速缓存存储器中;以及 对所述处理器编程以在遇到所述第一代码段的入口点时启用所述核来执行所改动的代码段代替所述第一代码段。9.如权利要求8所述的方法,其特征在于,所述二进制转换代理对在所述处理器上执行的软件栈而言是透明的。10.如权利要求8所述的方法,其特征在于,还包括将条目储存在映射表中来将所述入口点关联到所述改动高速缓存存储器中的所改动的代码段的位置。11.如权利要求8所述的方法,其特征在于,还包括将...

【专利技术属性】
技术研发人员:K·山田P·R·山姆盖弗拉于坦S·D·罗杰斯B·E·亨特利J·D·小比内B·塔米尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1