响应指令执行舍入运算的制作方法_3

文档序号:9810246阅读:来源:国知局
的有效局部控 制,而不必修改处理器的当前缺省状态。
[0047] 如下面表4所示,在ISA之中可以出现不同风格的舍入指令以对不同类型的数据元 素实现有效的舍入运算。
[0048] 表4
[0049]
[0050]作为这些ISA指令如何操作的例子,可使用R0UNDPD指令,通过在直接元素(即 ΠΜ8)中规定的舍入模式来将在源操作数(即可从XMM寄存器或者存储器得到的第二操作 数)中的两个双精度浮点值进行舍入,并且将结果放到目的操作数(即可以是XMM寄存器的 第一操作数)中。直接元素可以指定用于舍入运算的控制字段。再参考表1-3,立即数据的比 特4(即图3的指示符330)可以控制精度异常的处理器的行为,而比特0(即图3的指示符310) 可以选择舍入模式控制的源。最后,比特3:1(即图3的字段320)可以指定非粘性舍入模式 值。注意,在有些实施例中,如果任何源操作数是信令而不是数字(SNaN),那么它将要转换 为静止的NaN (QNaN)。如果将配置寄存器对于非正常设置为零(DAZ),那么非正常可在舍入 之前转换为零。如果将配置寄存器对于非正常刷新(flush denormal)设置为零(FTZ),那么 非正常可在舍入之后转换为零。
[0051] 作为这些ISA指令如何操作的另一个例子,R0UNDPS指令可用来在源操作数中将四 个封装的单精度浮点值进行舍入并且将结果放到目的操作数中。为了说明的目的,具体的 舍入指令可以采用以下形式:
[0052] R0UNDPS 义111111〇,11111111,;[1111118(舍入到最接近的整数)。
[0053] 这个指令可取第一寄存器即xmml中的封装单精度值,如同由立即数据(即imm8)的 舍入模式所规定的将每个值舍入到最接近的整数值,并且将结果存储到第二寄存器、即 xmmO中。下面的表5显示了存在于源操作数(即xmml)中、各对应于有限精度浮点值的典型值 以及存储在目的操作数(即xmmO)中、对应于整数值化的浮点数、即与初始源值最接近的整 数值的所得舍入值。
[0054]表 5
[0056]注意,在另外的实现中,舍入运算可响应从源FP值生成的整数值(即,与整数值化 FP值相反)的指令。其它的实施例可以实现到较低精度浮点表示法的舍入。这样的实施例可 根据标准舍入模式或者特殊的舍入模式来提供舍入源值的有效部件,其中特殊的舍入模式 由配置寄存器中缺省舍入模式或者在与该指令有关的立即数据中规定的局部舍入模式来 进行控制。
[0057]在不同的实施例中,立即数据可提供控制信息以执行不同于IEEE标准754舍入运 算的舍入模式。这些舍入模式可以包括部分向远离零的方向舍入以及向远离零的方向舍入 模式。现在参照图4,所示的是根据本发明的一个实施例执行舍入运算的方法的流程图。如 图4所示,方法400可用来执行这些扩展的舍入模式。方法400可通过确定源操作数是否大于 或等于零(菱形步骤410)来开始。如果是这样的话,控制可以转到步骤420,在那里可从源 操作数减去预定的值(步骤420)。例如,FP加法器可以在所选择的具体舍入模式的基础上从 源操作数减去给定的值。当然,这个减法可通过与预定值的负值相加来执行。然后,可对FP 加法的结果执行所选定的舍入运算(步骤430)。在有些实现中,IEEE标准754舍入运算、例如 截尾(也称为舍入到零)可对结果执行以获得扩展的舍入模式结果。如果在菱形步骤410确 定该源操作数小于零,那么控制转移到步骤440。在步骤440,可在FP加法器中将预定的值 (它可能是与以上所述相同的值)加到源操作数上。然后,在步骤450,可对结果执行选定的 舍入运算以获得由此产生的舍入值。
[0058] 虽然本发明的范围不限于这个方面,但是部分向远离零的方向舍入运算可以使用 0.5的值作为其预定的值,而向远离零的方向舍入运算可以使用1",它对应于小于但不等于 一的最接近的可表示的FP值。对于单精度和双精度FP值,0.5可分别对应于0x3f000000和 0x3fe0000000000000。对于单精度和双精度FP值,-0.5可分别对应于OxbfOOOOOO和 0xbfe000000000000。对于单精度和双精度FP值,1〃可分别对应于0x3f7fffff和 0x3fefffffffffffff。对于单精度和双精度FP值,-1〃可以分别对应于0xbf7fffff和 Oxbfefffffffffffff。在下面表6中显示的是用于执行这些操作的源代码例子。
[0059] Table6

[0062] 在这些例子中,运算R0UND_T0WARD_ZER0是IEEE标准754的截尾操作,它对加法/减 法运算的结果执行。注意,在执行这些扩展舍入模式的运算中,可提供预定的值作为给FP加 法器的第二源操作数(例如,如同在图2实施例中的S2)。另一方面,在有些实施例中,如同其 它的舍入运算一样,第二源操作数可以为零,并且可将控制信号发送到舍入单元以实现选 定的扩展舍入模式运算。
[0063] 这样,在不同的实施例中,可实现对于执行舍入的增强。这些增强可以避免执行各 种操作的需要,例如存储控制寄存器的状态、执行空FP运算以及重新设置状态,或者甚至是 转换数字到整数以及回到浮点的近似简化。通过抑制不精确的精度异常,用于舍入的相符 不同语言的支持可简单化,而实现也可以遵守某些舍入功能的标准舍入模式,例如在C99语 言中。
[0064] 实施例可以在许多不同的系统类型中实现。现在参照图5,所示的是根据本发明的 一个实施例的系统的框图。如图5所示,多处理器系统500是点对点互连系统,并且包括经由 点对点互连550耦合的第一处理器570和第二处理器580。如图5所示,处理器570和580中每 一个都可以是多核处理器,包括第一和第二处理器核(即,处理器核574a和574b以及处理器 核584a和584b)。注意,每一个核都可响应根据本发明的一个实施例的ISA级指令来执行舍 入运算。
[0065] 第一处理器570此外还包括点对点(P-P)接口 576和578。类似地,第二处理器580 包括P-P接口 586和588。如图5所示,存储控制器集线器(MCH)572和582将处理器耦合到各自 的存储器上,即存储器532和存储器534,它们可能是本地连接到各自处理器的主存储器的 部分。
[0066] 第一处理器570和第二处理器580可分别经由P-P互连552和554耦合到芯片组590 上。如图5所示,芯片组590包括P-P接口 594和598。此外,芯片组590包括接口 592以将芯片组 590与高性能图形引擎538相耦合。在一个实施例中,高级图形接口(AGP)总线539可用来将 图形引擎538耦合到芯片组590 AGP总线539可符合加速图形端口接口规格修订版本2.0,它 于1998年5月4日由加利福尼亚Santa Clara的英特尔公司发表。另一方面,点对点互连539 可以耦合这些元件。
[0067] 随后,芯片组590可经由接口596耦合到第一总线516。在一个实施例中,第一总线 516可以是外围元件互连(PCI)总线,如由PCI局部总线规范,生产版本,修订版2.1,日期是 1995年6月所定义的,或者例如PCI Express?总线或者其它第三代输入/输出(I/O)中间联 接总线的总线,但本发明的范围不限于此。
[0068]如图5所示,各种I/O设备514可耦合到第一总线516,以及总线桥518,其中该总线 桥518将第一总线516耦合到第二总线520。在一个实施例中,第二总线520可以是少引线数 (LPC)总线。在一个实施例中,各种设备可以耦合到第二总线520,其中包括例如键盘八鼠标 522、通讯装置526以及诸如可包括代码530的磁盘驱动器或者其它大容量存储装置之类的 数据存储单元528。此外,音频I/O 524可耦合到第二总线520。注意,其它的体系结构也是可 能的。例如,代替图5的点对点体系结构,
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1