执行浮点运算的方法及浮点处理器技术

技术编号:2822440 阅读:286 留言:0更新日期:2012-04-11 18:40
一种具有可选择的子精确度的浮点处理器包含:寄存器,其经配置以按照浮点格式来存储多个位;控制器;以及浮点数学运算器。所述控制器经配置以响应于用户输入而选择浮点运算的子精确度。所述控制器经配置以根据所述选定的子精确度来确定所述位的子集。所述浮点运算器经配置以仅使用所述位的所述子集来执行所述浮点运算。可迫使所述浮点运算中未使用的过剩位进入低泄漏状态。从所述浮点运算得出的输出值被舍位或舍入到所述选定的子精确度。

【技术实现步骤摘要】
【国外来华专利技术】

技术介绍
浮点处理器是高速执行例如乘法、除法、三角函数和指数函数等某些数学运算的专 门的计算单元。因此,功能强大的计算系统通常并入有浮点处理器,作为主处理器的一 部分或作为协处理器。数字的浮点表示形式通常包含符号分量、指数和尾数。为了求出 浮点数的值,使尾数乘以升高到指数的幂的基数(在计算机中通常为2)。将符号应用于 所得的值。浮点处理器的精确度由用于表示尾数的位的数目界定。尾数中的位越多,精确度越 大。浮点处理器的精确度通常取决于特定应用。举例来说,ANSI/正EE-754标准(几乎 所有现代计算机都遵循所述标准)规定具有1位符号、8位指数和24位尾数的32位单 一格式。在32位编码中仅存储尾数的23个分数位,直接位于二进制小数点左侧的整数 位是隐含的。IEEE-754还规定具有1位符号、11位指数和53位尾数的64位双重格式。 与单一编码类似,在64位编码中仅存储尾数的52个分数位,直接位于二进制小数点左 侧的整数位是隐含的。较高精确度导致较高准确性,但计算量较大从而导致功率消耗增 加。浮点算术运算的性能可能会伴有计算上的低效率,因为浮点处理器通常限于单一格 式或单一和双重格式两者所提供的精确度。虽然一些应用可能需要这些类型的精确度, 但其它应用可能并非如此。举例来说, 一些图形应用可能仅需要16位尾数。对于这些图 形应用,超过16位的精确度的任何准确性都趋向于导致不必要的功率消耗。这在例如无 线电话、个人数字助理(PDA)、膝上型计算机、游戏控制台、寻呼机和相机(仅举几例) 等功率对其来说极为重要的电池操作的装置中尤其受到关注。如果知道应用总是需要某一减小的精确度,那么可根据所述减小的精确度来设计和建构浮点处理器。然而,对于 大多数通用处理器,典型的情况是对于某些应用(例如,产生3D图形),减小的精确度是可接受的,且对于其它应用(例如,实施全球定位系统(GPS)功能),需要较大的精 确度。因此,此项技术中需要一种在其中可选择浮点格式的减小的精确度或子精确度的 浮点处理器。
技术实现思路
在浮点处理器的一个实施例中,所述浮点处理器包含浮点寄存器,其经配置以按 照一个或一个以上浮点格式来存储多个位;控制器;以及至少一个浮点运算器。所述控 制器经配置以选择浮点运算的指定精确度的子精确度。所述控制器进一步经配置以根据 选定的子精确度来确定所述多个位的子集。所述浮点运算器经配置以仅使用所述多个位 的所述子集来执行所述浮点运算。在执行浮点运算的方法的一个实施例中,所述方法包含选择浮点运算的子精确度。 所述方法包含根据选定的子精确度来确定存储在浮点寄存器中的多个位的子集。所述方 法包含仅使用所述多个位的所述子集来执行所述浮点运算。应了解,所属领域的技术人员从以下具体实施方式中将容易明白浮点处理器和执行 浮点运算的方法的其它实施例,在以下具体实施方式中,以说明的方式展示和描述浮点 处理器和执行浮点运算的方法的各个实施例。如将了解,浮点处理器和执行浮点运算的 方法的其它以及不同的实施例是可能的,且用于描述这些实施例的细节能够在许多方面 进行修改。因此,附图和具体实施方式应认为本质上是说明性而不是限制性的。附图说明图1是说明具有可选择的子精确度的浮点处理器的实例的功能框图; 图2示意性地说明具有可选择的子精确度的浮点处理器中所使用的浮点寄存器文件 的实例;图3A是说明使用具有可选择的子精确度的浮点处理器来执行的浮点加法的实例的 概念图图3B是说明使用具有可选择的子精确度的浮点处理器来执行的浮点乘法的实例的 概念图。具体实施例方式下文结合附图陈述的具体实施方式希望描述本专利技术的各个实施例,而不希望表示可实践本专利技术的仅有实施例。具体实施方式包含特定细节,以便允许对本专利技术的全面理解。 然而,所属领域的技术人应了解,可在没有这些特定细节的情况下实践本专利技术。在一些 情况下,为了更清楚地说明本专利技术的概念,以框图形式展示众所周知的结构和组件。在浮点处理器的至少一个实施例中, 一个或一个以上浮点运算的精确度可从规定格 式的精确度减小。向浮点处理器提供以执行数学运算的指令可包含可编程的控制字段。 所述控制字段可用于选择浮点格式的子精确度。通过将浮点格式的子精确度恰好选择为 特定运算所需的精确量,可实现较大效率以及显著的功率节省。图l是说明具有可选择的子精确度的浮点处理器(FPP) 100的实例的功能框图。浮 点处理器100包含浮点寄存器文件(FPR) 110;浮点控制器(CTL) 130;以及浮点数学 运算器(FPO) 140。浮点处理器100可实施为主处理器的一部分、协处理器或通过总线 或其它信道连接到主处理器的单独实体。浮点寄存器文件110可以是任何合适的存储媒体。在图1所示的实施例中,浮点寄 存器文件110包含若干可寻址寄存器位置115-1 (REG1)、 115-2 (REG2)、 . . . 115-N (REGN),其每一者经配置以存储用于浮点运算的运算数。所述运算数可包含来自主存储 器的数据和/或先前浮点运算的结果。向浮点处理器提供的指令可用于将运算数移动到主 存储器以及从主存储器移出运算数。图2示意性地说明如结合图1描述的具有可选择的子精确度的浮点处理器100中所 使用的浮点寄存器文件110的数据结构的实例。在图2中所说明的实施例中,浮点寄存 器文件110包含十六个可寻址寄存器位置,在图2中为了方便起见用参考标号200来表 示每个寄存器位置。每个寄存器位置200经配置以按照正EE-754 32位单一格式存储32 位二进制浮点数。明确地说,每个寄存器位置200含有1位符号202、 8位指数204和 23位分数206。然而,当然应了解,浮点处理器100的其它实施例可包含以与IEEE 32 位单一格式(包含但不限于IEEE64位双重格式)不同的方式格式化且/或含有不同数目 的寄存器位置的浮点寄存器文件210。返回参看图1,浮点控制器130可用于选择浮点运算的子精确度。控制寄存器137 可加载有在一个或一个以上指令的控制字段中传输的子精确度选择位。以稍后将更详细 描述的方式,浮点控制器130可使用子精确度选择位来减小运算数的精确度,并指导浮 点处理器100内的各个组件的操作。浮点运算器140可包含经配置以执行浮点运算的一个或一个以上组件。这些组件可 包含(但不限于)计算单元,例如经配置以执行浮点加法和减法指令的浮点加法器(ADD)142,和经配置以执行浮点乘法指令的浮点乘法器(MUL) 144。如图l中看出,浮点运 算器140中的计算单元ADD 142和MUL 144的每一者以允许运算数在计算单元之间以 及在每一计算单元与浮点寄存器文件110之间转移的方式彼此耦合,并耦合到浮点寄存 器文件110。在浮点处理器100的至少一个实施例中,计算单元(ADD 142和MUL 144) 的任一者的输出可以是任何其它计算单元的输入。浮点寄存器文件110可用于存储中间 结果,以及从浮点运算器140输出的结果。加法器142可以是经配置以按照浮点格式执行标准算术运算的常规浮点加法器。乘 法器144可以是经配置以执行浮点乘法的常规浮点乘法器。乘法器144可以(举例来说) 布思(Booth)算法或经修改的布思算法来实施,且可包含产生本文档来自技高网
...

【技术保护点】
一种执行浮点运算的方法,其包括:选择浮点运算的格式,以及选择所述浮点运算的子精确度;根据所述选定的子精确度来确定存储在浮点寄存器中的多个位的子集,且其中所述浮点寄存器包括经配置以存储指数位的指数区和经配置以存储分数位的分数区,且其中过剩位包括分数位;以及仅使用所述多个位的所述子集来执行所述浮点运算。

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

【专利技术属性】
技术研发人员:肯尼思艾伦多克塞尔
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:US[美国]

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

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