控制单指令多数据浮点单元中的舍入模式的装置与方法

文档序号:6650412阅读:306来源:国知局
专利名称:控制单指令多数据浮点单元中的舍入模式的装置与方法
技术领域
本发明一般涉及数据处理,并特别涉及一种控制舍入模式的装置。更具体地讲,本发明涉及一种控制单指令多数据(SIMD)浮点单元中的舍入模式的装置。
背景技术
一般地说,舍入模式用来在浮点数据处理系统内控制在浮点运算期间的浮点数的舍入。在科学计算过程中,舍入模式往往被非常频繁地切换。然而,频繁的切换舍入模式会造成严重的问题,该问题可以归结于普通处理器设计的缺点。即,每次处理器切换其舍入模式时,处理器必须刷新其内部流水线。由此,每当要求处理器切换其舍入模式时,处理器会有严重的性能损失。
许多数学或科学计算要求频繁地切换舍入模式。例如,在区间算术运算中反复发生舍入模式切换,其中相同的计算进行两次,一次利用上舍入模式,另一次利用下舍入模式。区间算术运算的结果为区间[a,b],其中计算问题(其无法精确计算)的无限精确结果保证落入该区间内。由此,为了使处理器根据这两种不同的舍入模式进行相同的计算,处理器必须频繁地改变其舍入模式。
因此,人们希望提供一种用于控制舍入模式的改进装置,从而可以减轻上述问题。

发明内容
根据本发明的优选实施方式,单指令多数据(SIMD)浮点单元包含具有第一舍入模式比特字段与第二舍入模式比特字段的浮点状态-控制寄存器(FPSCR)。该SIMD浮点单元还包含第一片(slice)与第二片。在浮点运算期间,SIMD浮点单元分别根据FPSCR内的第一舍入模式比特字段中的比特与第二舍入模式比特字段中的比特,而同时对第一片进行第一舍入运算并对第二片进行第二舍入运算。
本发明的所有特征与优点将在以下详细描述中变得明显。


将通过结合附图参考以下对示范性实施方式的详细描述,而最好地理解本发明自身及其优选使用模式、进一步的目的及其优点,其中图1为根据现有技术的用来控制SIMD浮点单元舍入模式的装置的方框图;图2为根据本发明优选实施方式的用来控制SIMD浮点单元舍入模式的装置的方框图;和图3为其中可以合并本发明优选实施方式的SIMD系统的方框图。
具体实施例方式
因为经常对可以对运算数(operands)向量进行运算的SIMD数据处理系统进行复杂的数学计算,所以使用单指令多数据(SIMD)浮点单元来说明本发明。本公开描述支持对于SIMD浮点单元内每个SIMD片的、可分离控制的舍入模式的某些体系结构特征。
一般地,浮点单元的舍入模式存储在专用寄存器中。例如,SIMD浮点单元的舍入模式存储在浮点状态-控制寄存器(FPSCR)中。
现在参照附图,具体为图1,其中显示了根据现有技术的用来控制SIMD浮点单元10的舍入模式的装置的方框图。如图所示,SIMD浮点单元10包括两片,即浮点单元片0与浮点单元片1。运算数片0被馈送到SIMD浮点单元10的片0以产生结果片0。同时,运算数片1被馈送到SIMD浮点单元10的片1以产生结果片1。FPSCR 11具有舍入模式比特字段12,用来控制SIMD浮点单元10的舍入模式。浮点单元片0与浮点单元片1两者中的浮点运算都由在FPSCR 11内舍入模式比特字段12中存储的舍入模式比特控制。
许多处理器支持SIMD浮点单元,例如SIMD浮点单元10,从而以非常有效率的方式进行复杂的数学计算。然而,因为只有一个舍入模式存储在FPSCR 11的舍入模式比特字段12中,所以SIMD浮点单元10内的所有片都必须根据同一舍入模式执行其浮点运算。如上所述,通过写入FPSCR 11来改变舍入模式可导致SIMD浮点单元10内发生流水线刷新。SIMD浮点单元10内流水线刷新是必须的,因为SIMD浮点单元10不支持对于FPSCR 11的指令依赖性检查。舍入模式的频繁改变经常会妨碍SIMD浮点单元10的性能。
根据本发明的优选实施方式,在SIMD浮点单元的FPSCR内插入分离的舍入模式字段,以为SIMD浮点单元内每个浮点单元片提供分离的舍入模式。这使得能够同时以不同的舍入模式计算多个运算。
例如,当进行区间算术运算时,SIMD浮点单元可以设置一个浮点单元片执行上舍入运算,并设置另一个浮点单元片执行下舍入运算。然后,可以同时进行两种浮点运算,其中一个浮点单元片以上舍入模式执行,另一个浮点单元片以下舍入模式执行。这样,SIMD浮点单元可以无需在运算之间切换舍入模式而进行区间算术运算。这就节省了对于FPSCR中舍入模式字段的大部分更新,这进而防止了与FPSCR更新相关的大部分流水线刷新。作为结果,可以得到大大提高的计算性能。
现在参照图2,其中描绘了根据本发明优选实施方式的用来控制SIMD浮点单元的舍入模式的装置的方框图。如图所示,SIMD浮点单元20包含两片,即浮点单元片0与浮点单元片1。运算数片0被馈送到片0以产生结果片0,同时,运算数片1被馈送到片1以产生结果片1。
SIMD浮点单元20还包含FPSCR 21,用来控制SIMD浮点单元20的舍入模式。FPSCR 21包含舍入模式比特字段22与舍入模式比特字段23。在当前实施方式中,浮点单元片0中的浮点运算由第一舍入模式比特字段22控制,同时,浮点单元片1中的浮点运算由第二舍入模式比特字段23控制。
注意扩展FPSCR 21以为每个片提供一个舍入模式字段几乎没有什么成本。一般FPSCR有许多未用(保留)比特,而每个舍入模式字段只占这些未用比特中的两个比特。
现在参照图3,其中图示了其中可以合并本发明优选实施方式的SIMD数据处理系统的方框图。如图所示,SIMD数据处理系统30包括SIMD处理器31、随机存取存储器(RAM)32、只读存储器(ROM)33、以及多个输入/输出设备34,所有这些都连接到系统总线35。SIMD处理器31包括由SIMD处理器31的其他部件控制的SIMD浮点单元20。例如,SIMD浮点单元20接收来自处理器核心的指令与数据流。SIMD浮点单元20还包括FPSCR 21,用来控制多个执行单元片的执行模式。在图3中,四个浮点单元片被示出为由FPSCR 21中的模式比特字段控制。因为有四个浮点单元片,所以使用四个模式(每个模式都位于其在FPSCR 21内的模式字段中)来分离地控制四个浮点单元片。
如上所述,本发明提供了一种用来控制SIMD浮点单元的舍入模式的装置。虽然由具有两个片的SIMD浮点单元来说明本发明,但是本领域技术人员应该理解,本发明的原理可以扩展到具有任意数目片的SIMD浮点单元或者其他类型的SIMD单元。另外,虽然舍入模式比特字段用来说明本发明,但是模式比特字段可以包含对于SIMD浮点单元的任意类型的模式运算。
利用本发明,可以通过在SIMD浮点单元的不同片上同时进行上舍入与下舍入运算,而对SIMD单元进行区间算术运算。这就使大部分(如果不是所有的话)舍入模式切换变得没有必要。结果,可显著改善SIMD浮点单元的性能。另外,需要定期切换舍入模式的其他复杂数学计算也可以得益于其中片可以以不同舍入模式进行运算的SIMD浮点单元。
另外还要注意虽然已在功能完全的SIMD数据处理系统的环境下描述了本发明,但是本领域技术人员应该理解本发明的机制能够作为程序产品以各种形式分发,并且本发明同样适用,而不管用来实际执行该分发的信号承载介质的具体类型为何。信号承载介质的例子包括但不限于诸如软盘或CDROM等可记录类型介质、以及诸如模拟或数字通信链路等传输类型介质。
虽然已参照优选实施方式而具体示出并描述了本发明,但是本领域技术人员应该理解,在不脱离本发明的精神与范围的情况下,可以对其进行各种形式与细节上的改变。
权利要求
1.一种控制单指令多数据(SIMD)单元中的运算模式的装置,所述装置包含在所述SIMD单元中的第一片与第二片;用来在所述SIMD单元内的控制-状态寄存器中提供第一模式比特字段与第二模式比特字段的部件;以及用来根据所述第一模式比特字段中的比特而对所述第一片进行第一运算、同时根据所述第二模式比特字段中的比特而对所述第二片进行第二运算的部件。
2.如权利要求1所述的装置,其中所述运算模式为舍入模式。
3.如权利要求1所述的装置,其中所述SIMD单元为SIMD浮点单元。
4.如权利要求1所述的装置,其中所述第一模式比特字段为第一舍入模式比特字段。
5.如权利要求1所述的装置,其中所述第二模式比特字段为第二舍入模式比特字段。
6.如权利要求1所述的装置,其中所述第一运算为上舍入运算,并且所述第二运算为下舍入运算。
7.一种控制单指令多数据(SIMD)单元中的运算模式的方法,其中所述SIMD单元包括第一片与第二片,所述方法包含在所述SIMD单元内的控制-状态寄存器中提供第一模式比特字段与第二模式比特字段;以及根据所述第一模式比特字段中的比特而对所述第一片进行第一运算、同时根据所述第二模式比特字段中的比特而对所述第二片进行第二运算。
8.如权利要求7所述的方法,其中所述运算模式为舍入模式。
9.如权利要求7所述的方法,其中所述SIMD单元为SIMD浮点单元。
10.如权利要求7所述的方法,其中所述第一模式比特字段为第一舍入模式比特字段。
11.如权利要求7所述的方法,其中所述第二模式比特字段为第二舍入模式比特字段。
12.如权利要求7所述的方法,其中所述第一运算为上舍入运算,并且所述第二运算为下舍入运算。
13.一种驻留在计算机可用介质上的用来控制单指令多数据(SIMD)单元中的运算模式的计算机程序产品,其中所述SIMD浮点单元包括第一片与第二片,所述计算机程序产品包含用来在所述SIMD单元内的控制-状态寄存器中提供第一模式比特字段与第二模式比特字段的程序代码部件;以及用来根据所述第一模式比特字段中的比特而对所述第一片进行第一运算、同时根据所述第二模式比特字段中的比特而对所述第二片进行第二运算的程序代码部件。
14.如权利要求13所述的计算机程序产品,其中所述运算模式为舍入模式。
15.如权利要求13所述的计算机程序产品,其中所述SIMD单元为SIMD浮点单元。
16.如权利要求13所述的计算机程序产品,其中所述第一模式比特字段为第一舍入模式比特字段。
17.如权利要求13所述的计算机程序产品,其中所述第二模式比特字段为第二舍入模式比特字段。
18.如权利要求13所述的计算机程序产品,其中所述第一运算为上舍入运算,并且所述第二运算为下舍入运算。
全文摘要
公开了一种用于控制单指令多数据(SIMD)浮点单元中的舍入模式的装置。该SIMD浮点单元包含具有第一舍入模式比特字段与第二舍入模式比特字段的浮点状态-控制寄存器(FPSCR)。该SIMD浮点单元还包含用来生成第一片与第二片的部件。在浮点运算期间,SIMD浮点单元分别根据FPSCR内的第一舍入模式比特字段中的比特与第二舍入模式比特字段中的比特,而同时对第一片进行第一舍入运算、并对第二片进行第二舍入运算。
文档编号G06F15/80GK1773483SQ20051012012
公开日2006年5月17日 申请日期2005年11月4日 优先权日2004年11月5日
发明者董祥厚, 哈姆·P·霍夫斯蒂, 克里斯琴·雅各比, 西尔维亚·M·米勒, 吴和埈 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1