用于仿真的算术惰性标志表示制造技术

技术编号:22300037 阅读:17 留言:0更新日期:2019-10-15 08:40
在用于仿真的算术惰性标志表示的各方面中,主机处理器系统接收被设计用于由客户处理器系统执行的应用指令,该客户处理器系统不同于主机处理器系统的处理器架构。主机仿真器接收包括算术运算的应用指令,确定对整数值执行的算术运算的结果值,并且确定第一状态变量和第二状态变量。主机仿真器还确定后续应用指令是否需要部分基于第三状态变量的算术标志子集的得出。然后,主机仿真器可以确定后续应用指令不需要算术标志子集的得出,并且执行后续应用指令而不需要确定第三状态变量,从而减少用于仿真应用指令的处理器时钟周期。

Arithmetic inertia flag representation for simulation

【技术实现步骤摘要】
【国外来华专利技术】用于仿真的算术惰性标志表示
技术介绍
计算设备依赖于处理器以运行应用和执行其他任务。应用开发人员通常将其应用设计为由特定类型的处理器架构运行。因为不同的计算设备通常实现不同的处理器架构,所以当为一个处理器架构设计的应用由实现另一处理器架构的计算设备运行时会出现问题。例如,实现基于x86的处理器架构的主机计算设备在尝试执行客户应用或操作系统的算术指令(诸如被设计为由除了主机的基于x86的处理器架构以外的处理器架构运行的应用)时会遇到问题。出现这些问题是因为一个处理器架构中的算术标志通常不直接映射到不同处理器架构的算术标志。作为传统解决方案,主机计算设备使用仿真器,仿真器将客户应用的指令转换为可以由主机处理器架构运行的基于x86的指令。但是,仿真器转换需要附加的时钟周期来计算,从而当为客户处理器架构设计的应用在主机处理器架构上运行时引入了速度减慢。传统的仿真器技术实现“惰性(lazy)标志”以仿真不同处理器架构之间的算术标志。然而,即使当正确执行客户应用不需要这些算术标志时,这些传统的仿真器技术也会由于仿真算术标志而浪费时钟周期。由于算术标志仿真在运行应用时经常发生,因此传统的仿真技术会导致不必要的延迟并且降低仿真应用的预期性能。
技术实现思路
本“
技术实现思路
”介绍了用于仿真的算术惰性标志表示的特征和概念,其在下面的“具体实施方式”中进一步描述和/或在附图中示出。本“
技术实现思路
”不应当被视为描述所要求保护的主题的必要特征,也不应当用于确定或限制所要求保护的主题的范围。描述了用于仿真的算术惰性标志表示。在各方面,实现主机处理器架构的主机系统接收指令集以便启动和运行为与主机处理器架构不同的客户处理器架构而设计的应用或操作系统,使得系统需要仿真来执行指令集。指令集中的每个客户指令包括第一整数值、第二整数值和要对第一整数值和第二整数值执行的算术运算。主机系统的仿真器对第一整数值和第二整数值执行算术运算以生成算术结果。使用第一整数值、第二整数值和算术结果,主机仿真器确定第一状态变量、第二状态变量和可选的第三状态变量。三个状态变量包括描述执行算术运算的结果的信息,并且可以由主机仿真器用来在执行算术运算之后得出描述处理器状态的算术标志。具体地,第三状态变量可以用于得出基于x86的处理器系统架构的进位标志、溢出标志和调节标志。主机仿真器以每个状态变量一个处理器时钟周期的速率确定第一状态变量、第二状态变量和第三状态变量中的每个。然而,因为客户指令通常需要不频繁地得出进位标志、溢出标志和调节标志,所以如果在执行每个客户指令之后确定三个状态变量中的每个,则主机仿真器将经常浪费宝贵的时钟周期。因此,本文中描述的技术在确定第三状态变量之前确定一组多个客户指令中的后续客户指令是否需要得出进位标志、溢出标志或调节标志。如果主机仿真器确定后续客户指令不需要得出这些算术标志,则主机仿真器继续执行后续客户指令而不首先确定第三状态变量,从而将仿真客户指令所需要的时间量减少了一个时钟周期。因此,本文中描述的算术惰性标志表示技术显著减少了启动和运行仿真应用、操作系统等所需要的时钟周期数。附图说明参考以下附图描述用于仿真的算术惰性标志表示的各方面。附图中表示的实体可以指示一个或多个实体,因此可以在讨论中将单个或多个形式的实体互换地引用。可以始终使用相同的数字来引用附图中所示的相似特征和组件:图1示出了根据本文中描述的技术的用于仿真的算术惰性标志表示的示例系统。图2示出了可以实现用于仿真的算术惰性标志表示的各方面的示例系统。图3示出了根据本文中描述的技术的用于仿真的算术惰性标志表示的示例方法。图4示出了具有可以实现如本文中描述的用于仿真的算术惰性标志表示的示例设备的示例系统。具体实施方式描述了用于仿真的算术惰性标志表示的各方面,以用于仿真被设计用于由一个处理器系统架构执行的算术指令,这些算术指令要由不同的处理系统架构执行,使得应用或操作系统可以由处理器系统运行,即使应用或操作系统没有被设计为由该处理器系统运行。如本文所述,执行仿真的处理器系统被称为“主机处理器系统”。由主机处理器系统接收和仿真的指令被称为“客户指令”,其被设计为在与主机处理器系统的架构不同的客户处理器系统架构上运行。在实现中,客户指令需要使用存储在处理器系统的某些存储器位置中的信息。例如,当由运行应用的计算设备执行应用的算术运算时,计算设备存储包含执行算术运算的结果的信息。在应用运行时,后续应用指令需要使用包含算术运算的结果的信息,以便正确执行后续应用指令。因此,应用指令通常需要计算设备查询特定存储器位置以在执行某些指令时使用。然而,因为不同的处理器系统架构被不同地设计,所以客户处理器系统中的存储器位置不一定与主机处理器系统中的存储器位置直接相对应。例如,诸如基于x86的处理器系统、基于Power-PC的处理器系统、基于高级精简指令集计算机机器(ARM)的处理器系统等处理器系统架构不实现存储器位置的相同底层架构。由于成本问题、应用的源代码、操作系统等被设计为在一个特定的处理器系统架构上运行。源代码包含必须由处理器系统正确执行以便应用、操作系统等能够在处理器系统上正确启动和运行的指令序列。因为为客户处理器系统设计的应用指令可能需要使用存储在主机处理器系统中不存在的存储器位置中的信息,所以实现主机处理器系统的设备不能运行应用,除非该应用是专门为主机处理器系统设计的。例如,在基于x86的处理器系统架构中,处理器系统包括存储在存储器中的标志寄存器。标志寄存器包含描述处理器系统执行的算术运算的结果的信息。在基于x86的处理器系统中,在标志寄存器的各个位中存储有用于表征算术运算的结果的标志。例如,标志寄存器包括位6中的“零标志”、位7中的“符号标志”、位2中的“奇偶校验标志”、位0中的“进位标志”、位11中的“溢出标志”、位4中的“调节标志”等。因此,基于x86的处理器系统中的标志寄存器的位包含处理器系统的当前状态。相反,基于Power-PC的处理器系统架构包括存储在存储器中的用于包含描述所执行的算术运算的结果的信息的条件寄存器。条件寄存器包括8个字段,每个字段是用于存储关于应用或操作系统指令的结果的状态信息的4个位的段。因此,PowerPC条件寄存器的段不能直接映射到x86标志寄存器的位。继续该示例,经常为基于x86的应用设计的指令需要使用描述先前算术运算的结果的信息,该信息存储在标志寄存器的标志中。相反,基于PowerPC的应用的指令需要使用描述存储在条件寄存器的位中的先前算术运算的结果的信息。因此,仿真为客户的基于PowerPC的处理器系统架构设计的应用的客户指令的主机的基于x86的处理器系统架构需要存储描述执行算术运算的结果的信息,以在执行后续客户指令时使用。生成和使用进位标志的示例是执行无进位加法(ADD)指令,后跟有进位加法(ADC)指令,诸如当32位代码执行64位算术作为32位ADD,并且使用ADC指令将进位标志传播到数字的高32位部分。ADD指令生成所有6个基于x86的处理器标志,ADC指令消耗进位标志,然后自己再次生成所有6个基于x86的处理器标志。如上所述,算术标志集包括零标志、符号标志、奇偶校验标志、进位标志、溢出标志和调节标志。生成和使用进位标志的其他示例包括常见的“比较本文档来自技高网...

【技术保护点】
1.一种被实现用于指令仿真的计算系统,所述系统包括:存储器,被配置为保持针对应用的多个指令,所述应用被设计用于由客户处理器系统执行;以及与所述客户处理器系统不同的主机处理器系统,所述主机处理器系统实现主机仿真器,所述主机仿真器被配置为:接收具有要使用第一整数值和第二整数值执行的算术运算的所述多个指令之一;确定对所述第一整数值和所述第二整数值执行的所述算术运算的结果值;确定第一状态变量和第二状态变量;确定后续指令是否需要部分基于第三状态变量的算术标志子集的得出;以及响应于确定所述后续指令不需要所述算术标志子集的所述得出,执行所述后续指令而不需要确定所述第三状态变量。

【技术特征摘要】
【国外来华专利技术】2017.02.28 US 15/445,4031.一种被实现用于指令仿真的计算系统,所述系统包括:存储器,被配置为保持针对应用的多个指令,所述应用被设计用于由客户处理器系统执行;以及与所述客户处理器系统不同的主机处理器系统,所述主机处理器系统实现主机仿真器,所述主机仿真器被配置为:接收具有要使用第一整数值和第二整数值执行的算术运算的所述多个指令之一;确定对所述第一整数值和所述第二整数值执行的所述算术运算的结果值;确定第一状态变量和第二状态变量;确定后续指令是否需要部分基于第三状态变量的算术标志子集的得出;以及响应于确定所述后续指令不需要所述算术标志子集的所述得出,执行所述后续指令而不需要确定所述第三状态变量。2.根据权利要求1所述的计算系统,其中所述算术运算是要使用所述第一整数值和所述第二整数值执行的加法运算或减法运算。3.根据权利要求1所述的计算系统,其中所述主机仿真器被配置为:使用所述第一整数值和所述第二整数值确定所述第一状态变量;以及使用所述算术运算的所述结果值、所述第一整数值和所述第二整数值确定所述第二状态变量。4.根据权利要求1所述的计算系统,其中所述主机仿真器还被配置为,响应于确定所述后续指令确实需要所述算术标志子集的所述得出:使用所述第一状态变量和所述第二状态变量确定所述第三状态变量;至少部分基于所述第三状态变量得出所述算术标志子集;以及使用所述算术标志子集执行所述后续指令。5.根据权利要求1所述的计算系统,其中所述主机处理器系统包括基于x86的系统,并且所述客户处理器系统包括基于Power-PC的系统或基于高级精简指令集计算机机器(ARM)的系统之一。6.根据权利要求1所述的计算系统,其中所述第一整数值是有符号整数值或无符号整数值之一,并且所述第二整数值是有符号整数值或无符号整数值之一。7.根据权利要求1所述的计算系统,其中所述算数标志子集包括来自算数标志集的进位标志、溢出标志和调节标志,所述算数标志集包括零标志、符号标志、奇偶校验标志、所述进位...

【专利技术属性】
技术研发人员:D·J·米霍克卡
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1