浮点操作的改善以及相关的改善制造技术

技术编号:4544638 阅读:229 留言:0更新日期:2012-04-11 18:40
描述了一种在程序代码转换期间能够处理浮点操作的计算机系统,包含处理器,该处理器包括浮点单元和整数单元。该计算系统还包含翻译器单元,被安排来接收包括至少一个涉及浮点操作的指令的主代码指令,以及作为响应产生用于在所述处理器上执行的相应的目标代码。为了处理浮点操作,在翻译器内提供浮点状态单元和浮点控制单元。这些单元使得翻译器产生:用于在计算系统的浮点单元上直接执行浮点操作的目标代码;或者用于例如使用计算系统的整数单元和计算系统的浮点单元的组合间接执行浮点操作的目标代码。以此方式,改善了计算系统的效率。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及计算机和计算机系统领域,更具体地,涉及例如在转换程序代码的代码翻译器(translator )、仿真器和加速器中有用的程序代码转换 方法和装置。更具体地,本专利技术涉及用于从由主(subject)计算平台可执行 的二进制代码转换为由目标计算平台可执行的目标代码的转换的方法和装 置。 '
技术介绍
中央处理单元(CPU)或处理器位于所有现代计算系统的中心。处理器 执行计算机程序的指令,并因此使计算机能够执行有用的工作-以该工作可 能采取的任何形式。CPU在现代生活的所有形式的数字设备中都很普遍,而 不仅仅在专用计算机器(如个人计算机、便携式计算机和PDA)中。现代微 处理器出现在从汽车到蜂窝电话到儿童玩具的每件事物中。在现代计算系统 中,可以在CPU旁边或内部提供额外的硬件以执行作为计算系统工作一部分 的算术操作。这样的硬件可以包含用于执行整数操作的整数单元(IU)和/或 用于执行浮点操作的浮点单元(FPU)。问题在于,由一种类型处理器可执行的程序代码经常不能在任何其它类 型的处理器中执行,因为每种类型的处理器具有它自己独特的指令集合架构 (ISA)。因此,程序代码转换已经发展为自动地将为一种类型处理器编写的 程序代码转换为由另一种类型的处理器可执行的代码,或者将旧的、低效率 的代码优化为用于相同类型处理器的新的、更快的版本。就是说,在嵌入式 和非嵌入式的CPU中,存在最主要的ISA,对于该ISA已经存在大量的软件, 其可以为了性能加速或"翻译"到呈现更好价格/性能优势的处理器。还发现 了在时间上锁定到它们的ISA并且在性能或市场影响力上不能发展的占优势 的CPU。这个问题在各级别的计算工业中适用,从单机的便携式计算设备一 直到具有数十或数百强大服务器的大规模网络。作为程序代码转换这个领域中的背景信息,标题为"Program CodeConversion"的WO2000/22521、标题为"Method and Apparatus for Performing Interpreter Optimizations during Program Code Conversion"的WO2004/095264 以及才示题为 "Improved Architecture for Generating Intermediate Representations for Program Code Conversion"的WO2004/097631 PCT公开,公开了方法和装 置以便利这样的程序代码转换能力,该程序代码转换能力可以在于此讨论的 示例实施例中^f吏用,在此通过引用并入其全部。在程序代码转换期间, 一个特定的问题领域涉及以浮点符号表示的数值 的处理。已经根据特定类型的处理器编写的原始程序代码(这里称为"主代 码")期望特定类型的执行环境。特别地,主代码期望对以浮点符号表示的浮 点数值的操作的硬件支持到特定的数值精度级别。该硬件支持由主FPU提供。但是,在程序代码转换期间,主代码转换为在目标计算平台上执行的目 标代码。目标计算平台可能包含这样的FPU,该FPU支持关于在比由主FPU 支持的精度低的精度的数值的操作。在这种情况下,在主计算平台和目标计 算平台之间存在基本的硬件不兼容。响应上述问题,PCT公开WO2005/003959描述了这样的机制,其用于使 用目标计算平台上的目标FPU和整数硬件的组合,在目标计算平台上执行浮 点操作。但是,利用使用目标计算系统上的整数硬件以提供浮点操作的结果 的机制通常很慢。因此,在程序代码转换期间遇到两个问题。第一,存在这样的问题目 标计算平台的硬件可能不提供对主代码期待的精度级别的浮点硬件支持。第二,存在这样的问题使用目标计算平台的整数硬件来提供在主代码希望的 精度、以及高于由目标FPU支持的精度的浮点操作的结果可能是低效率的。问题。
技术实现思路
根据本专利技术,提供了如权利要求所述的装置和方法。从从属权利要求和 下面的说明,本专利技术的其它特征将是明显的。下面是根据本专利技术的实施例可实现的各个方面和优势的总结。它作为介 绍提供以帮助那些本领域的一般技术人员更迅速地吸收详细的设计说明,该 说明追求并且不是和不打算以任何方式限制权利要求的范围。特别地,专利技术人已经开发了指引程序代码转换的方法,该方法连同运行 时间翻译器特别有用,该运行时间翻译器提供主代码到目标代码的动态二进 制翻i奪。在本专利技术的一个示例性方面,提供了一种计算系统,包含处理器;所 述处理器内的浮点单元和整数单元;翻译器单元,被安排来接收包括至少一 个涉及浮点操作的指令的主代码指令,并且作为响应产生用于在所述处理器 上执行的相应的目标代码;翻译器内的浮点状态单元,被安排为根据接收的 主代码指令产生浮点状态信息;以及翻译器单元内的浮点控制单元,被安排 来从浮点状态单元接收浮点状态信息,并且作为响应控制翻译器单元产生 用于在浮点单元上执行浮点操作的目标代码;或者用于使用整数单元和浮点 单元的组合执行浮点操作的目标代码。在本专利技术的另一个示例性方面,提供了一种计算系统,包含处理器; 所述处理器内的浮点单元和整数单元;翻译器单元,被安排来接收包括至少 一个涉及浮点操作的指令的主代码指令,并且作为响应产生用于在所述处理 器上执行的相应的目标代码;翻译器内的浮点状态单元,被安排来根据接收 的主代码指令产生浮点状态信息;以及翻译器单元内的浮点控制单元,被安 排来从浮点状态单元接收浮点状态信息,并且作为响应控制翻译器单元产生 用于在浮点单元上直接执行浮点操作的目标代码;或者用于使用整数单元和 浮点单元之一或两者间接执行浮点操作的目标代码。在本专利技术的另 一个示例性方面,提供了 一种在动态二进制翻译器中使用 的解码器单元,该解码器单元包含浮点状态单元,被安排来根据由解码器 单元接收的主代码指令中的浮点指令产生浮点状态信息;以及浮点控制单元, 被安排来从浮点状态接收浮点状态信息,并且作为响应产生指示用于浮点指 令输出的期望的数值精度级别的控制信号。在本专利技术的另一个示例性方面,提供了一种处理计算系统中的浮点指令 的方法,包含计算机实现的以下步骤接收包括至少一个涉及浮点操作的指 令的主代码指令;根据接收的主代码指令产生浮点状态信息;以及响应该浮 点状态信息,产生用于在计算系统的浮点单元上执行浮点操作的目标代码; 或者用于使用计算系统的整数单元和计算系统的浮点单元的组合执行浮点操 作的目标代码。 .在本专利技术的另 一个示例性方面,提供了 一种处理计算系统中的浮点指令的方法,包含计算机实现的以下步骤接收包括至少一个涉及浮点操作的指 令的主代码指令;根据接收的主代码指令产生浮点状态信息;以及响应该浮 点状态信息,产生用于在计算系统的浮点单元上直接执行浮点操作的目标 代码;或者用于使用计算系统的整数单元和计算系统的浮点单元的组合间接 执行浮点操作的目标代码。本专利技术也扩展到安排来执行在这里说明的本专利技术的实施例翻译器装置。. 同样地,本专利技术扩充到计算机可读存储介质,在其上具有记录的指令,该指 令可以由计算机实现以执行在这里定义的任何方法。造。在这里使用的术语如"组件"、"模块"或"单元,,可以包括但不限于硬 件设备,如场可编程门阵列(FPGA本文档来自技高网
...

【技术保护点】
一种计算系统,包含: 处理器; 所述处理器内的浮点单元和整数单元; 翻译器单元,被安排来接收包括至少一个涉及浮点操作的指令的主代码指令,并且作为响应产生用于在所述处理器上执行的相应的目标代码; 翻译器内的浮点状态单元 ,被安排为根据接收的主代码指令产生浮点状态信息;以及 翻译器单元内的浮点控制单元,被安排来从浮点状态单元接收浮点状态信息,并且作为响应控制翻译器单元产生:用于在浮点单元上执行浮点操作的目标代码;或者用于使用整数单元和浮点单元的组合执行 浮点操作的目标代码。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:加文巴勒克洛詹姆斯RH马尔凯西戴维JO里格比
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[]

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

1
相关领域技术
  • 暂无相关专利