浮点常数产生指令的制作方法

文档序号:6532993阅读:140来源:国知局
浮点常数产生指令的制作方法
【专利摘要】本发明揭示一种用于根据指令产生浮点常数值的系统及方法。将所述指令的第一字段解码为所述浮点常数值的正负号位。解码所述指令的第二字段以对应于所述浮点常数值的指数值。解码所述指令的第三字段以对应于所述浮点常数值的有效数。组合所述第一字段、所述第二字段及所述第三字段以形成所述浮点常数值。所述指数值可包含偏差,且可将偏差常数加到所述指数值上以补偿所述偏差。所述第三字段可包括所述有效数的最高有效位。任选地,所述第二字段及所述第三字段可分别移位第一及第二移位值,其后将其进行组合以形成所述浮点常数值。
【专利说明】淳点常数产生指令

【技术领域】
[0001] 所揭示实施例涉及浮点运算。更确切地说,示范性实施例涉及用于产生常用浮点 常数的指令。

【背景技术】
[0002] 数的浮点表示在用于计算用于支持比可用整数或定点格式支持的更宽范围的值 的系统中为有用的。在浮点数中,允许小数点(十进制/二进制)为"浮动的",此使得可能 使用少量的位来编码广泛范围的值。由于广泛范围,所以许多浮点数可不能在没有严重精 度损失或有时误差/异常的情况下用定点格式有效地表示。
[0003] -些现代处理器支持可对用浮点格式表示的数进行运算的浮点指令。将浮点指令 集成在整数/定点处理器管线中呈现了挑战。举例来说,潜在精度损失在于浮点指令中编 码浮点常数或立即值方面引起了挑战。
[0004] 用于计算机处理器的传统指令集架构(ISA)通常包含指定立即值的指令。通常, 指定立即值的指令含有在指令自身内(在指令的指定字段中)的立即值。可用于指令中的 立即值的位的数目相当少,通常比指令的位宽度小得多。因此,浮点指令可不能够在小位宽 度的立即值字段中准确地指定浮点立即值。因此,浮点常数/立即值常规地直接从存储器 加载,或通过用于产生所要浮点常数的定制指令而整体形成。一些方法还可包含对寄存器 中的特定浮点值(例如,〇.〇、1.〇及2.0)硬译码。如可认识到,此类用于产生浮点常数的常 规技术导致增加的等待时间、增加的代码大小及/或增加的硬件。
[0005] 因此,此项技术中存在用于克服与用于浮点指令的浮点常数/立即值相关联的上 述限制的需要。


【发明内容】

[0006] 本发明的示范性实施例涉及用于根据指令产生浮点常数值的系统及方法。
[0007] 举例来说,示范性实施例涉及根据指令产生浮点常数值的方法,所述方法包括:将 指令的第一字段解码为浮点常数值的正负号位;解码指令的第二字段以对应于浮点常数值 的指数值;解码指令的第三字段以对应于浮点常数值的有效数;以及组合第一字段、第二 字段及第三字段以形成浮点常数值。任选地,所述第二字段及所述第三字段可分别移位第 一及第二移位值,其后将所述字段进行组合以形成浮点常数值。
[0008] 另一示范性实施例涉及用于产生浮点常数值的指令,其中所述指令包括:对应于 浮点常数值的正负号位的第一字段;对应于浮点常数值的指数值的第二字段;以及对应于 浮点常数值的有效数的第三字段。
[0009] 另一示范性实施例涉及用于根据指令产生浮点常数值的系统,所述系统包括:用 于将指令的第一字段解码为浮点常数值的正负号位的装置;用于解码指令的第二字段以对 应于浮点常数值的指数值的装置;用于解码指令的第三字段以对应于浮点常数值的有效数 的装置;以及用于组合第一字段、第二字段及第三字段以形成浮点常数值的装置。
[0010] 另一示范性实施例涉及非暂时性计算机可读存储媒体,其包括在由处理器执行时 致使所述处理器执行用于根据指令而产生浮点常数值的操作的代码,所述非暂时性计算机 可读存储媒体包括:用以将指令的第一字段解码为浮点常数值的正负号位的代码;用以解 码指令的第二字段以对应于浮点常数值的指数值的代码;用以解码指令的第三字段以对应 于浮点常数值的有效数的代码;以及用以组合第一字段、第二字段及第三字段以形成浮点 常数值的代码。

【专利附图】

【附图说明】
[0011] 呈现附图来辅助对本发明的实施例的描述,且仅出于说明而非限制所述实施例的 目的来提供附图。
[0012] 图1A说明根据示范性实施例的浮点立即字段。
[0013] 图1B说明应用到图1A的浮点立即字段的指数及有效数字段的任选第一及第二移 位量。
[0014] 图2为根据示范性实施例的根据指令产生浮点常数值的方法的流程图说明。
[0015] 图3说明示范性无线通信系统300,其中可有利地使用根据示范性实施例的用于 产生浮点常数值的指令。

【具体实施方式】
[0016] 在以下针对本发明特定实施例的描述和有关图式中揭示本发明的若干方面。可在 不脱离本发明的范围的情况下设计替代实施例。另外,将不会详细描述本发明的众所周知 的元件,或将省略所述元件,以免混淆本发明的相关细节。
[0017] 词"示范性"在本文中用以意味"充当实例、例子或说明"。本文中被描述为"示范 性"的任何实施例不必被理解为比其它实施例优选或有利。同样,术语"本发明的实施例" 并非要求本发明的所有实施例包含所论述的特征、优点或操作模式。
[0018] 本文中所使用的术语仅出于描述特定实施例的目的且并不希望限制本发明的实 施例。如本文中所使用,单数形式"一"和"所述"既定也包含复数形式,除非上下文另外清 楚地指示。将进一步了解,术语"包括"及/或"包含"在用于本文中时指定所陈述的特征、 整数、步骤、操作、元件和/或组件的存在,但不排除一或多个其它特征、整数、步骤、操作、 元件、组件及/或其群组的存在或添加。
[0019] 此外,依据将由(例如)计算装置的元件执行的动作序列来描述许多实施例。将认 识到,可由特定电路(例如,专用集成电路(ASIC))、由正由一或多个处理器执行的程序指 令或由两者的组合来执行本文中所述的各种动作。另外,可认为本文中所述的这些动作序 列完全实施于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中已存储一组 对应计算机指令,所述指令在被执行时将致使相关联的处理器执行本文中所述的功能性。 因此,本发明的各种方面可以许多不同形式来实施,所有所述形式均被涵盖在所主张的标 的物的范围内。此外,对于本文中所述的实施例的每一者来说,任何此类实施例的对应形式 可在本文中被描述为(例如)"经配置以(执行所描述动作)的逻辑"。
[0020] 示范性实施例涉及在处理系统中使用用于整数管线的预先存在架构来产生经常 遇到的浮点值。实施例包含用以指定例如指令的立即值字段中的浮点常数的一或多个指 令。立即值字段内的一或多个子字段可包括对应于指定浮点常数的信息,例如正负号、有效 数及指数值。可适当地提取及组装子字段以产生指定的浮点常数。
[0021] 所属领域的技术人员将辨识用于表示浮点数的常规格式。大体上,浮点数可包含 用以指示浮点数的正负号(正/负)的正负号位。浮点数还包含对应于有效数(还称作 "尾数")的数个位,所述有效数包括浮点数的有效数字(例如,不包含前导零的数字)。大 体上,有效数的位的数目与浮点数可表示的精度有关。有效数被提高浮点数中所指定的指 数值(具有假定的基数),以提供浮点数的量值。举例来说,二进制数的假定基数为2,且十 进制数的假定基数为10。在数学记法中,浮点数的值通过具有适当正负号的公式有效数* 基数'指数来得出。
[0022] 指数值有时可偏移指定或假定的偏差值以便使指数范围移位。在常规实施方案 中,可将偏差值加到从浮点数提取的指数值上以便获得实际指数值。此外,有效数内的小数 点可以预定格式明确地指定。然而,在常规实施方案中,假定将小数点放在有效数中的固定 位置,且适当地调整指数值以实现小数点的浮动性质。举例来说,可将十进制小数点统一指 定为放在有效数的最高有效数字之后,使得十进制数12. 3ΧΚΓ10可通过移位小数点以放 在有效数的最高有效数字之后且适当地增加指数值而表示为1. 23X 10~ 11。
[0023] 用于表示具有上述字段的浮点数的标准格式(例如,IEEE-754标准)为此项技术 中众所周知的。IEEE-754标准包含用于在现代处理系统中使用的浮点数的单精度及双精 度标准。基本上,单精度格式包括32位二进制浮点数,包含正负号位、23位有效数字段及 8位指数字段,其中偏差值为127。双精度格式包括64位二进制浮点数,包含正负号位、52 位有效数字段及11位指数字段,其中偏差值为1023。虽然本文不将详细描述IEEE-754标 准的各种其它条款,但将理解示范性实施例可与针对单精度及双精度格式两者的IEEE-754 标准兼容。
[0024] 举例来说,示范性实施例可包含指令"SFMAKE"及"DFMAKE"以产生单精度及双精 度浮点值以用作浮点常数。这些指令可用以产生可(例如)在与数字信号处理器、微处理 器或其它通用处理器相关的应用中经常遇到的大的浮点值集合。
[0025] 在说明性实施例中,可将指定11位浮点立即字段的示范性指令辨识为包括正负 号位、6位有效数字段及4位指数字段。可基于浮点常数值是用单精度还是双精度表示来应 用预定偏差值。在此说明中,可假定偏差值6为适用的。此示范性指令可用以产生属于表 示为以下的广泛范围的常数的浮点数:[+,_] [1. 0, 1+63/64] *2~ [-6,+9]。举例来说,在此常 数范围内可产生以下量值范围的所有正及负的整数:[1,128]。此外,在此常数范围内可产 生以下量值的所有正及负的偶数整数:[2, 256]。还可产生量值1000的正及负的整数。还 可产生量值例如〇. 25、0. 5、1/32 (或其诸多倍数)、1. 5、1/256等许多常用的分数值(正及 负两者)。所属领域的技术人员将辨识由示范性指令中的常数范围覆盖的众多其它浮点常 数值。
[0026] 参看图1A,说明如上文描述的浮点立即字段的示范性格式。字段100可表示浮点 立即字段(例如,11位的大小,如上文所述)。如所展示,字段100可包括第一字段102中 的正负号位。第二字段104可包括指数值(例如,4位的大小)。或者,如上文描述,第二字 段104可包括包含偏差的指数值,可将基于所要精度的偏差常数(例如,值6,如在以上描述 中)加到所述指数值上以便补偿包含在指数值中的偏差。第三字段106可包括有效数(例 如,6位的大小)。在一些实施方案中,第三字段106可仅包括对应浮点常数的有效数的最 1?有效位。
[0027] 继续参看图1A,可从在字段100中包括浮点立即字段的浮点指令解码或提取第一 字段102、第二字段104及第三字段106。可适当地组合经解码字段(具有包含在第二字段 104中的适当偏差)以产生在浮点立即指令中指定的对应浮点常数值。
[0028] 现参看图1B,可将任选移位量应用到第二字段104及第三字段106。第二字段104 及第三字段106可移位如第一移位值108_1及第二移位值108_2 (如图1B所示)所指示的 量,以分别形成移位字段104'及106'。第一移位值108_1及第二移位值108_2可包含在 浮点立即字段100中,例如分别在第四及第五字段中。可将预定常数值(未图示)加到移 位字段104'及106'上以便产生指定浮点常数值。因此,经由对常数值的移位及相加的额 外步骤,可更改浮点常数值的精度。举例来说,对应于IEEE-754标准,仅有效数的最高有效 位可包含在第三字段106中,且这些最高有效位可移位适当地移位量以便产生单精度或双 精度的浮点常数值。在第二字段104中具有任选偏差啊指数值还可基于所要精度或基于特 定应用而类似地移位。在一个实例中,由第一移位值1〇8_1及第二移位值108_2指示的适 当移位量可基于用以产生浮点常数值的指令是上述SFMAKE指令还是DFMAKE指令。在其它 实施例中,单移位字段可包含在浮点立即字段100中,且可被应用到第二字段104及第三字 段106中的任一者或两者。
[0029] 因此,示范性实施例可包含用以产生常用浮点常数值的一或多个指令,而不需要 将从存储器载入的浮点常数值。所揭示实施例避免用浮点常数值污染储存器及高速缓冲存 储器。因此,实施例还导致用于产生浮点常数值的低功率实施方案。实施例可用于例如除 法、平方根计算等运算中。可支持广泛范围的常用常数。实施例可充分支持单精度或双精 度格式,且可与用于表示浮点数的常规标准兼容。
[0030] 此外,将了解实施例包含用于执行本文所揭示的过程、功能及/或算法的各种方 法。举例来说,如图2中说明,实施例可包含根据指令产生浮点常数值的方法,所述方法包 括:将指令的第一字段(例如,102)解码为浮点常数值的正负号位(方框202);解码指令 的第二字段(例如,104)以对应于浮点常数值的指数值(方框204);解码指令的第三字段 (例如,106)以对应于浮点常数值的有效数(方框206);任选地将第二字段及第三字段移 位第一移位值及第二移位值(例如,1〇8_1及108_2)(方框207);以及组合第一字段与视情 况经移位第二字段及第三字段以形成浮点常数值(方框208)。
[0031] 所属领域的技术人员将了解,可使用多种不同技术及技法中的任一者来表示信息 及信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来 表示在整个以上描述中所参考的数据、指令、命令、信息、信号、位、符号及码片。
[0032] 此外,所属领域的技术人员将了解,结合本文所揭示的实施例而描述的各种说明 性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚说 明硬件与软件的此互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、 电路及步骤。此类功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计 约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此 类实施方案决定不应被解释为会导致脱离本发明的范围。
[0033] 结合本文所揭示的实施例而描述的方法、序列及/或算法可直接以硬件、以由处 理器执行的软件模块或以两者的组合体现。软件模块可驻留在RAM存储器、快闪存储器、 ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、抽取式磁盘、⑶-ROM或此项技术 中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存 储媒体读取信息并将信息写入到存储媒体。在替代例中,存储媒体可与处理器成一体式。 [0034] 因此,本发明的实施例可包含体现用于根据指令产生浮点常数值的方法的计算机 可读媒体。因此,本发明并不限于所说明的实例且用于执行本文中所描述的功能性的任何 装置均包含在本发明的实施例中。
[0035] 参看图3,描绘且大体用300指定包含用于根据示范性实施例来产生浮点常数值 的指令的无线装置的特定说明性实施例的框图。装置300包含处理器,例如数字信号处理 器(DSP) 364。DSP 364可包含可包括上述SFMAKE/DFMAKE指令的存储器365。图3还展示 耦合到DSP 364及耦合到显示器328的显示控制器326。译码器/解码器(CODEC) 334 (例 如,音频及/或语音CODEC)可耦合到DSP 364。还说明其它组件,例如显示控制326 (其可 包含视频CODEC及/或图像处理器)及无线控制器340 (其可包含调制解调器)。扬声器 336及麦克风338可耦合到CODEC 334。图3还指示可耦合到无线天线342的无线控制器 340。在特定实施例中,DSP 364、显示控制器326、存储器332、C0DEC 334及无线控制器340 包含在系统级封装或系统单芯片装置322中。
[0036] 在特定实施例中,输入装置330及电力供应器344耦合到系统单芯片装置322。 此外,在特定实施例中,如图3中说明,显示器328、输入装置330、扬声器336、麦克风338、 无线天线342及电力供应器344在系统单芯片装置322外部。然而,显示器328、输入装置 330、扬声器336、麦克风338、无线天线342及电力供应器344中的每一者可耦合到系统单 芯片装置322的组件,例如接口或控制器。
[0037] 应注意,尽管图3描绘无线通信装置,但也可将DSP 364及存储器332集成到机顶 盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元 或计算机中。还可将处理器(例如,DSP 364)集成到此类装置中。
[0038] 前文所揭示的装置及方法通常经设计且经配置到存储于计算机可读媒体上的 ⑶SII及GERBER计算机文件中。这些文件又被提供到基于这些文件来制造装置的制造处置 器。所得产品是半导体晶片,其接着被切割成半导体裸片且封装成半导体芯片。所述芯片 接着用于上文所描述的装置中。
[〇〇39] 虽然前面的揭示内容展示本发明的说明性实施例,但应注意,可在不脱离如所附 权利要求书界定的本发明的范围的情况下,在其中做出各种改变及修改。无需以任何特 定次序来执行根据本文中所述的本发明的实施例的方法权利要求项的功能、步骤及/或动 作。此外,尽管可以单数形式描述或主张本发明的元件,但除非明确陈述对于单数的限制, 否则也涵盖复数形式。
【权利要求】
1. 一种根据指令产生浮点常数值的方法,其包括: 将所述指令的第一字段解码为所述浮点常数值的正负号位; 解码所述指令的第二字段以对应于所述浮点常数值的指数值; 解码所述指令的第三字段以对应于所述浮点常数值的有效数;以及 组合所述第一字段、所述第二字段及所述第三字段以形成所述浮点常数值。
2. 根据权利要求1所述的方法,其中所述指数值包含偏差。
3. 根据权利要求2所述的方法,其进一步包括将所述指数值加到偏差常数上以补偿包 含在所述指数值中的所述偏差。
4. 根据权利要求1所述的方法,其中通过将所述第二字段移位第一移位值及将所述第 三字段移位第二移位值以及将所述经移位第二及第三字段加到预定常数值上来产生所述 浮点常数值。
5. 根据权利要求1所述的方法,其中根据IEEE 754单精度或双精度格式中的一者而形 成所述浮点常数值。
6. 根据权利要求1所述的方法,其中所述第三字段包括所述浮点常数值的所述有效数 的最1?有效位。
7. -种用于产生浮点常数值的指令,其中所述指令包括: 对应于所述浮点常数值的正负号位的第一字段; 对应于所述浮点常数值的指数值的第二字段;以及 对应于所述浮点常数值的有效数的第三字段。
8. 根据权利要求7所述的指令,其中所述浮点常数值是通过组合所述第一字段、所述 第二字段及所述第三字段而形成。
9. 根据权利要求7所述的指令,其中所述指数值包含偏差,且其中加上偏差常数以补 偿包含在所述指数值中的所述偏差。
10. 根据权利要求7所述的指令,其中所述第三字段包括所述有效数的最高有效位。
11. 根据权利要求7所述的指令,其进一步包括对应于第一移位值的第四字段,及对应 于第二移位值的第五字段,且其中所述浮点常数值是通过将所述第二字段移位所述第一移 位值及将所述第三字段移位所述第二移位值以及将所述经移位第二及第三字段加上预定 常数值而产生。
12. 根据权利要求7所述的指令,其中所述浮点常数值根据IEEE754单精度或双精度格 式中的一者而形成。
13. 根据权利要求7所述的指令,其体现于装置中,其中所述装置被集成在至少一个半 导体裸片中。
14. 根据权利要求7所述的指令,其体现于装置中,其中所述装置选自由以下各项组 成的群组:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理 PDA、固定位置数据单元及计算机。
15. -种用于根据指令产生浮点常数值的系统,包括: 用于将所述指令的第一字段解码为所述浮点常数值的正负号位的装置; 用于解码所述指令的第二字段以对应于所述浮点常数值的指数值的装置; 用于解码所述指令的第三字段以对应于所述浮点常数值的有效数的装置;以及 用于组合所述第一字段、所述第二字段及所述第三字段以形成所述浮点常数值的装 置。
16. 根据权利要求15所述的系统,其中所述指数包含偏差,且所述系统进一步包括用 于将偏差常数加到所述指数值上以补偿包含在所述指数值中的所述偏差的装置。
17. 根据权利要求15所述的系统,其进一步包括用于将所述第二字段及所述第三字段 移位预定量的装置,以及用于将所述经移位第二及第三字段加到预定常数值上的装置。
18. -种非暂时性计算机可读存储媒体,其包括在由处理器执行时致使所述处理器执 行用于根据指令而产生浮点常数值的操作的代码,所述非暂时性计算机可读存储媒体包 括: 用以将所述指令的第一字段解码为所述浮点常数值的正负号位的代码; 用以解码所述指令的第二字段以对应于所述浮点常数值的指数值的代码; 用以解码所述指令的第三字段以对应于所述浮点常数值的有效数的代码;以及 用以组合所述第一字段、所述第二字段及所述第三字段以形成所述浮点常数值的代 码。
19. 一种用于根据指令产生浮点常数值的设备,其包括: 经配置以将所述指令的第一字段解码为所述浮点常数值的正负号位的逻辑; 经配置以解码所述指令的第二字段以对应于所述浮点常数值的指数值的逻辑; 经配置以解码所述指令的第三字段以对应于所述浮点常数值的有效数的逻辑;以及 经配置以组合所述第一字段、所述第二字段及所述第三字段以形成所述浮点常数值的 逻辑。
【文档编号】G06F9/30GK104106045SQ201380008389
【公开日】2014年10月15日 申请日期:2013年2月8日 优先权日:2012年2月9日
【发明者】埃里希·詹姆士·普罗恩德克, 鲁西恩·科德雷斯库, 查尔斯·约瑟夫·塔伯尼, 斯瓦米纳坦·巴拉苏布拉马尼安 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1