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

二进制转换机制制造技术

技术编号:16048850 阅读:29 留言:0更新日期:2017-08-20 08:31
描述了一种方法。该方法包含接收指令,当确定指令是返回指令时,访问返回高速缓存以加载预测的返回目标地址,当确定预测的转换返回目标地址不正确时,针对可执行二进制代码搜索查找表,以及执行可执行二进制代码以执行二进制转换。

【技术实现步骤摘要】
【国外来华专利技术】二进制转换机制
本文描述的实施例通常涉及电子安全。更具体地,实施例涉及在二进制转换系统中处理返回分支。
技术介绍
本公开的内容涉及信息处理领域,更具体地,涉及管理信息处理系统中的中断的领域。二进制转换通过二进制代码的转换来表征一个指令集被另一个指令集的仿真。因此,指令序列从源指令集转换为目标指令集。可以在硬件(例如,通过处理器中的电路)或软件(例如,运行时引擎,静态重新编译器及仿真器)来实现这种转换。已经实现了各种软件方法以执行返回操作的二进制转换,这使得指令执行离开当前的子程序,并且该子程序被调用(例如,返回地址)之后立即在代码中的该点处恢复。这些方法包括快速查找散列表、返回高速缓存、影子堆栈及内联。然而,当以多线程现代应用为目标时,所有的现有方法都不能同时满足性能和低存储器占用要求。快速查找散列表及返回高速缓存方法使用简单的散列功能来查找用于最小化预测操作的开销的表。因此,快速查找及返回高速缓存方法都要求二进制转换系统分配给每个线程实例至少中等量的存储器(例如,256KB),以产生高命中率和性能增益。然而,当运行现代多线程应用时,这两种方法都会显著地影响二进制转换系统的总存储器消耗。例如,一些web浏览器创建了多于80个线程。因此,每个线程中256KB返回高速缓存的分配导致消耗超过20MB的存储器,用于仅仅提高返回操作的性能。较高存储器消耗限制了用于支持现代高度多线程应用的快速查找散列表及返回高速缓存的方法的适用性。具体地,更大的缓冲器占用通过当访问缓冲器时影响数据高速缓存命中率来影响性能。在多个线程之间共享单个返回高速缓存是不希望的,因为它引入了高速缓存污染问题以及线程同步问题,从而因此不利地影响性能。影子堆栈方法为二进制转换系统分配了专用隐藏堆栈以跟踪和预测转换的目标的返回地址,其可为高可预测性提供小的存储器占用影响。然而,在支持小寄存器集(例如x86)的主机指令集架构(ISA)中,由于影子堆栈操作的高运行时维护成本,影子堆栈方法遭受更高的性能开销,包括额外的寄存器溢出和用于管理影子堆栈指针的填充操作以及实现“压入(push)”和“弹出(pop)”操作。因此,影子堆栈方法对于提高二进制转换系统的性能提供了很小的效益。内联通常为高预测提供了最低的开销,但可能遭受重大的代码膨胀。因此,该方法仅用于已知的被频繁执行的热代码路径以及当被调用功能相对较小时。否则,代码扩展通过降低I-高速缓存命中率以及增加存储器占用而负面地影响性能。附图说明在附图的图中,通过举例的方式而不是限制的方式示出了实施例,其中相似的附图标记指示相似的元素。图1示出了二进制转换机制的一个实施例。图2示出了设备的一个实施例。图3A示出了返回高速缓存的一个实施例;图3B示出了返回查找表的一个实施例;图4A和4B是示出了二进制转换流程的一个实施例的流程图。图5A-5F示出了添加到程序以实现二进制转换过程的代码的实施例。图6示出了计算机系统的一个实施例。具体实施方式如下,本专利技术可以通过用于执行用于实现返回操作的二进制转换的系统、装置及方法来实现。在说明书中,可以阐述大量具体细节,例如组件及系统配置,以便更全面地理解本专利技术。在其他实例中,未详细示出公知的结构,电路等,以避免不必要地模糊本专利技术。本专利文献的公开的部分包含已申请版权保护的材料。版权所有者不反对任何人对专利文献或专利公开内容的传真复制,正如其在专利和商标局的专利文件或记录中所表明的一样,但是无论如何保留所有的版权。实施例提供了混合返回地址预测缓冲器结构,该混合返回地址预测缓冲器结构将返回高速缓存(返回-高速缓存)与快速查找表(返回flook)进行组合。这样的实施例实现了层级结构组织,该层级结构组织提供了作为第一级的小的返回高速缓存(例如,1KB),提供了作为第二级的小的查找表(例如,2KB)来用作第一级返回高速缓存的补充高速缓存,进而提高整体命中率。根据一个实施例,返回高速缓存和返回flook表包括256个条目。然而,实施例可以实现其他数量的条目。在一个实施例中,设备可包括,例如,存储模块、二进制转换器模块及处理模块。存储模块可用于维护对应于程序的程序状态信息。二进制转换器模块可用于接收由程序进行的尝试的指示以执行受保护功能,用于使程序状态信息的至少一个元素被重新定位在存储模块中,以及基于程序状态信息的重新定位的至少一个元素,用于将程序中的指令转换成可执行二进制代码。处理模块可用于执行可执行二进制代码。本专利技术的实施例的元件可以在硬件,软件,固件或硬件,软件或固件的任何组合中实现。术语硬件通常是指具有诸如电子、电磁、光学、电光、机械、机电部件等的物理结构的元件。术语软件通常是指逻辑结构、方法、过程、程序、例程、流程、算法、公式、表达式等。术语固件通常是指在硬件结构(例如,闪存或只读存储器)中实现或体现的逻辑结构、方法、过程、程序、例程、流程、算法、公式,或表达式。固件的示例为微码,可写控制存储及微编程结构。图1示出了用于实现二进制转换机制的设备100的一个实施例。根据一个实施例,设备100可以包括用于执行返回操作的二进制转换的资源。设备100的实施例可包括但不限于移动通信设备,例如基于操作系统(OS)、OS、OS、OS、OS等的蜂窝手机或智能电话,移动计算设备诸如平板电脑(如GalaxyKindle等),包括英特尔公司制造的低功耗芯片组、上网本、笔记本计算机、膝上型计算机,掌上计算机等,以及典型地固定计算设备诸如台式机,服务器,机顶盒等。设备100可包括,例如,程序102、二进制转换器模块104、包含程序状态106的存储器模块106及处理模块114。程序102可包括可以在设备100上执行的各种软件。例如,当程序102尝试调用设备100中的某些功能(例如,小组件)时,设备100可被配置为使程序102陷入二进制转换器模块104。二进制转换器模块104可被配置为将程序102转换为可执行二进制代码。在一个实施例中,二进制转换器模块104可生成修改感知代码118以供处理模块116执行。虽然未示出,可将修改感知代码118存储在代码高速缓存模块(未示出)中。修改感知代码118可以执行定义在程序102中的所有功能,但是与从主程序堆栈操作相反,修改感知代码118可以采用定义在修改的程序状态中的存储器单元进行操作。此外,入侵者(未示出)可以尝试获得对程序堆栈的控制,以便将程序调用插入到小组件中以将与设备100敌对的操作(例如,从设备100窃取或删除信息,以获得设备100的控制等)拼接在一起。然而,由于不利用程序状态108的重新定位的元素的新位置更新设备100的程序堆栈,所以操作将不会访问期待的信息(例如,它们将尝试访问原始程序状态位置110)并且攻击将失败。图2示出了根据本公开的至少一个实施例可使用的设备100’的实施例。设备100’是可用于执行诸如图1所示的操作的设备的实施例。尽管与本公开一致的实施例可采用设备100’,但是这些实施例不仅仅限于具有公开配置的设备。示例性设备100’可以包括被配置为管理设备操作的系统模块200。例如,系统模块200可包括处理模块116’、存储器模块106’、电源模块202、用户接口模块204和用于与通信模块208交互的通信接口模块206。虽然通信模块本文档来自技高网...
二进制转换机制

【技术保护点】
一种二进制转换设备,包括:存储器模块,用于维护层级结构组织,包括:高速缓存;以及查找表;二进制转换模块,用于将指令转换为可执行二进制代码,并且通过针对预测的转换返回目标地址搜索所述高速缓存及当确定所述预测的转换返回目标地址不正确时针对可执行二进制代码搜索所述查找表,来执行返回指令的返回地址预测;以及处理模块,用于执行所述可执行二进制代码。

【技术特征摘要】
【国外来华专利技术】2014.12.18 US 14/574,7971.一种二进制转换设备,包括:存储器模块,用于维护层级结构组织,包括:高速缓存;以及查找表;二进制转换模块,用于将指令转换为可执行二进制代码,并且通过针对预测的转换返回目标地址搜索所述高速缓存及当确定所述预测的转换返回目标地址不正确时针对可执行二进制代码搜索所述查找表,来执行返回指令的返回地址预测;以及处理模块,用于执行所述可执行二进制代码。2.根据权利要求1所述的设备,进一步包括返回地址缓冲器,其中在执行叶指令的转换之前,所述二进制转换模块针对转换返回目标地址搜索所述返回地址缓冲器。3.根据权利要求1所述的设备,其中所述高速缓存包括桶,所述桶包括存储所述预测的转换返回目标地址的单个字段。4.根据权利要求3所述的设备,其中响应于接收调用指令,由二进制转换器模块将存储所述预测的转换返回地址的条目添加到所述高速缓存。5.根据权利要求4所述的设备,其中通过将所述调用指令转换为代码序列,将所述预测的转换返回地址存储到所述返回高速缓存,所述代码序列基于客户返回地址的散列选择返回高速缓存桶。6.根据权利要求1所述的设备,其中所述二进制转换模块将所述返回指令转换为代码序列,所述代码序列通过对所述高速缓存进行索引并在转换返回地址处执行间接控制传输,来取回所述转换返回地址。7.根据权利要求6所述的设备,其中搜索所述查找表以确定是否存在针对所述客户返回目标地址的匹配。8.根据权利要求7所述的设备,其中所述查找表为由返回目标地址的散列索引的直接映射查找表。9.根据权利要求8所述的设备,其中所述查找表包括桶,所述桶包括所述客户返回目标地址以及映射到所述返回目标地址的转换代码。10.根据权利要求9所述的设备,其中当在所述查找表中存在未命中时,由执行慢速查找路径的二进制转换器模块填充所述查找表。11.一种二进制转换方法,包括:接收指令;当确定所述指令是返回指令时,访问返回高速缓存以加载预测的返回目标地址;当确定所述预测的转换返回目标地址不正确时,针对可执行二进制代码搜索查找表;以及执行所述可执行二进制代码以执行二进制转换。12.根据权利要求11所述的方法,进一步...

【专利技术属性】
技术研发人员:K·山田A·比约拉尼J·陆C·Y·赵
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1