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

高效地址转换制造技术

技术编号:16707945 阅读:30 留言:0更新日期:2017-12-02 23:10
一个实施例提供了一种设备。所述设备包括:处理器;存储器;以及转换器逻辑。所述处理器用于执行主机指令集。所述转换器逻辑用于响应于接收到访客存储器访问指令而判定偏移量是否为常数以及所述偏移量是否大于零且小于最大偏移量,所述访客存储器访问指令包含基址加上或减去所述偏移量,所述最大偏移量与主机指令集架构(ISA)和访客ISA中的至少一者有关。

Efficient address conversion

One embodiment provides a device. The equipment described includes: the processor; the memory; and the converter logic. The processor is used to execute the host instruction set. The converter and logic is used to determine an offset is constant and the offset is greater than zero and less than the maximum offset in response to receiving a visitor access instruction memory, the memory access instructions include visitor base plus or minus the offset, the offset and the host instruction set architecture (ISA at least one visitor) and ISA in the.

【技术实现步骤摘要】
【国外来华专利技术】高效地址转换
本公开涉及地址转换,特别是涉及高效地址转换。
技术介绍
诸如便携式计算机、台式计算机、平板计算机、智能电话等计算设备具有相关联的指令集架构(ISA)。ISA是计算设备架构中与编程有关的一部分,包括原生数据类型、指令、寄存器、寻址模式、存储器架构、中断和异常处置、以及外部I/O。ISA通常具有相关联的原生字长,例如32位、64位等。原生字长与寄存器大小(以位为单位)以及存储器地址大小和存储器地址空间的相应容量有关。被设计用于在所选定的计算设备上执行的应用通常包括对应于计算设备的原生字长的指令。附图说明要求保护的主题的特征和优点将从与其一致的实施例的以下详细描述中变得显而易见,应参照附图考虑所附描述,在附图中:图1展示了根据本公开的各实施例的计算设备的功能框图;图2是存储器图,展示了根据本公开的各实施例的源(访客)存储器架构和目标(主机)存储器架构;图3展示了根据本公开的一个实施例的三种示例源ISA指令转换;并且图4是根据本公开的各实施例的高效地址转换操作的流程图。虽然以下具体实施方式将参考说明性实施例进行,但是许多替代方案、修改及其变体将对本领域的技术人员而言是明显的。具体实施方式有时期望与第一ISA(“访客ISA”)相关联的应用在与第二ISA(“主机ISA”)相关联的计算设备上执行(当这些ISA不相同时)。访客(即源)ISA可以具有比主机(即,目标)ISA的原生字长更小的原生字长(以位为单位)。例如,访客ISA可对应于ARMv7ISA(可从英国剑桥的控股公司获得),并且主机ISA可对应于X86-64ISA(例如,可从加利福尼亚州圣克拉拉的公司获得的X86-64ISA)。ARMv7ISA具有32位原生字长,并且X86-64ISA具有64位原生字长。这样的执行可以通过在主机上仿真访客操作来实现。仿真包括转换指令从源ISA到目标ISA,以及转换存储器地址从访客到主机。这些ISA之间的指令可能不同,例如,被配置用于将存储器位置的内容加载(即移动)到寄存器中的LD指令或MOV指令。算术运算的结果中的位数对应于原生字长,并且因此可能不同。存储器地址可能不同,因为存储器的大小和相关联的存储器地址数量与原生字长有关,并且因此与ISA有关。如本文所述,转换可以由编译器静态地(即,在运行时之前)和/或由即时(JIT)编译器、由访客操作系统(OS)和/或由虚拟机(VM)动态地(即,在运行时期间)执行。转换可以包括向被配置用于确保仿真准确度的目标指令添加一个或多个控制前缀。例如,可以将操作控制前缀添加到目标指令,所述目标指令被配置用于确保算术结果被限制为源ISA原生字长。在另一示例中,可以将被配置用于确保经转换的地址对应于访客原生地址空间的地址控制前缀添加到包括基址±偏移量计算的目标存储器访问指令。控制前缀被配置用于确保在主机上由于执行所仿真的源ISA指令而产生的行为与在其原生平台上由于执行源ISA而产生的行为相同。虽然提供了益处,但是包括这样的前缀消耗了计算设备资源。因为可能至少将地址控制前缀添加到包括基址±偏移量地址计算的每个存储器访问指令,所以每个前缀增加了由应用占据的存储器量。与解码和/或执行所述前缀相关联的操作消耗更多的处理器资源。此外,与控制前缀相关联的增大的存储器使用率可能增加高速缓存未命中,并且因此增大与存储器访问相关联的延迟。总体上,本公开涉及高效地址转换。本方法和系统被配置用于减少地址控制前缀的数量,同时确保在目标ISA平台(即,计算设备)上由于执行源ISA指令而产生的准确行为。在实施例中,当偏移量是零与最大偏移量之间的常数时,可以从包括基址加上或减去(±)偏移量计算的存储器访问指令中省略地址控制前缀。在本实施例中,当是偏移量不是常数和/或偏移量不在零与最大偏移量之间两种情况中的至少一种时,对于存储器访问指令而言,包括了地址控制前缀。最大偏移量的大小(即,量)与相关联的OS的特性有关。例如,最大偏移量可以是4096。在另一示例中,最大偏移量可以是8192。在另一示例中,最大偏移量可以大于或小于4096。在另一示例中,偏移量可以大于或小于8192。包括向或从基址加上或减去偏移量的存储器地址计算可能导致上溢、下溢或既不上溢也不下溢。当既没有下溢也没有上溢时,所产生的地址指向源地址空间和目标地址空间两者中类似的存储器位置。如果基址和偏移量之和大于访客/源ISA可寻址的最大允许地址,则可能会由于将偏移量添加到基址而导致发生上溢。换言之,较高阶的位被截断,使得所产生的地址对应于较小的地址。如果偏移量大于基址,则可能会由于从基址中减去偏移量而导致发生下溢。换言之,结果为负,并且当结果为负时,由于在计算设备中表示负数的方式(例如,二进制补码、反码),对应于相对较大的数正数(即,无符号整数),设定(多个)最高阶位。作为说明性示例,可以考虑四位源原生字长、八位目标原生字长以及为0100b的基址。最大源地址为1111b,并且最大目标地址为11111111b,其中下标b对应于二进制。当向基址添加大于或等于1100b的偏移量时,可能会在源平台地址空间中发生上溢。换言之,使用目标原生字长的地址计算是00000100b+00001100b=00010000b,可能是目标存储空间中的未预留的(即,用户空间)地址。由于结果可能被截断用于源地址,所以这四位结果为0000b,对应于源(访客)地址空间中的内核预留空间。当从基址中减去绝对值大于0100b的偏移量时,可能发生下溢。例如,对负数使用二进制补码,00000100b-00000101b=00000100b+11111011b=11111111b,可能是目标存储器中的内核空间。由于结果可能被截断用于源地址,所以这四位结果为1111b,对应于源存储器中的内核空间。在源原生架构中,当上溢或下溢导致指向预留的存储空间的地址时,上溢或下溢可能触发存储器访问异常(即故障)。例如,预留的存储器空间可以包括在低存储器中的源内核预留存储器(即在零处或附近的存储器地址)、以及高存储器中的源内核空间(即在最大允许地址处或附近的存储器地址)。预留的源内核可能因此对应于上溢区域,并且源内核空间可能对应于下溢区域。源内核预留存储器和源内核空间的对应大小可能与架构和/或OS有关。目标架构可以类似地包括预留的存储器空间:低存储器中预留的目标内核以及高存储器中的目标内核空间。应用一般没有访问预留的内存空间的权限。因此,指向预留的存储器空间的地址可能引起存储器访问异常,所述存储器访问异常然后可能被通信到尝试访问的应用。这种预留的存储器空间可以由例如OS和/或VMM(虚拟机监视器)来管理。在没有仿真的情况下,配置用于源ISA的存储器地址计算(即,基址±偏移量)可以在与目标ISA相关联的目标平台上执行时产生不同的结果。例如,可在源平台上导致上溢(基址+偏移量>最大存储器地址)的基址加偏移量计算可能反而指向目标平台上的用户空间中的存储器位置。在另一示例中,可在源平台上导致下溢的基址减去偏移量计算可能类似地导致目标平台上的下溢。尽管导致下溢的所产生地址可能不是相同的地址,但它们都会导致存储器访问异常。换言之,两者都产生相同的行为。根据本公开的方法和系统被配置用于在目标存储器地址空间中提供与源本文档来自技高网...
高效地址转换

【技术保护点】
一种设备,包括:处理器,所述处理器用于执行主机指令集;存储器;以及转换器逻辑,所述转换器逻辑用于响应于接收到访客存储器访问指令而判定偏移量是否为常数以及所述偏移量是否大于零且小于最大偏移量,所述访客存储器访问指令包含基址加上或减去所述偏移量,所述最大偏移量与主机指令集架构(ISA)和访客ISA中的至少一者有关。

【技术特征摘要】
【国外来华专利技术】1.一种设备,包括:处理器,所述处理器用于执行主机指令集;存储器;以及转换器逻辑,所述转换器逻辑用于响应于接收到访客存储器访问指令而判定偏移量是否为常数以及所述偏移量是否大于零且小于最大偏移量,所述访客存储器访问指令包含基址加上或减去所述偏移量,所述最大偏移量与主机指令集架构(ISA)和访客ISA中的至少一者有关。2.如权利要求1所述的设备,其中,所述转换器逻辑进一步用于:如果所述偏移量是常数并且所述偏移量大于零且小于所述最大偏移量,则将所述基址加上或减去所述偏移量作为主机地址计算进行转换。3.如权利要求1所述的设备,其中,所述转换器逻辑进一步用于:如果是所述偏移量不是常数和/或所述偏移量不大于零且小于所述最大偏移量两种情况中的至少一种,则将地址控制前缀添加到相应主机存储器访问指令;并且所述转换器逻辑进一步用于将所述基址加上或减去所述偏移量作为访客地址计算进行转换。4.根据权利要求1至3中任一项所述的设备,其中,所述转换器逻辑进一步用于将所述访客存储器访问指令从源ISA转换为目标ISA。5.根据权利要求1至3中任一项所述的设备,其中,所述访客ISA的原生字长小于所述主机ISA的原生字长,所述访客存储器访问指令与所述访客ISA有关。6.根据权利要求1至3中任一项所述的设备,其中,所述转换器逻辑进一步用于限定所述存储器中的上溢(OF)区域和下溢(UF)区域,所述OF区域和所述UF区域与所述最大偏移量有关。7.如权利要求6所述的设备,其中,所述转换器逻辑进一步用于设定所述OF区域的存储器访问权限以防止读取、写入和执行访问。8.一种方法,包括:由转换器逻辑响应于接收到访客存储器访问指令而判定偏移量是否为常数以及所述偏移量是否大于零且小于最大偏移量,所述访客存储器访问指令包含基址加上或减去所述偏移量,所述最大偏移量与主机指令集架构(ISA)和访客ISA中的至少一者有关。9.如权利要求8所述的方法,进一步包括:如果所述偏移量是常数并且所述偏移量大于零且小于所述最大偏移量,则由所述转换器逻辑将所述基址加上或减去所述偏移量作为主机地址计算进行转换。10.如权利要求8所述的方法,进一步包括:如果是所述偏移量不是常数和/或所述偏移量不大于零且小于所述最大偏移量两种情况中的至少一种,则由所述转换器逻辑将地址控制前缀添加到相应主机存储器访问指令;以及由所述转换器逻辑将所述基址加上或减去所述偏移量作为访客地址计算进行转换。11.如权利要求8所述的方法,进一步包括:由所述转换器逻辑将所述访客存储器访问指令从源ISA转换为目标ISA。12.如权利要求8所述的方法,其中,所述访客ISA的原生字长小于所述主机ISA的原生...

【专利技术属性】
技术研发人员:钟学亮伍勇Y·金J·李林晓东
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1