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

文档序号:6517061阅读:283来源:国知局
响应指令执行舍入运算的制作方法
【专利摘要】本发明的名称为响应指令执行舍入运算。在一个实施例中,本发明包括一种方法,用于在处理器中接收舍入指令和立即值,确定立即值的舍入模式替换指示符是否有效,并且如果是这样的话,则在处理器的浮点单元中,响应该舍入指令并且根据在立即操作数中规定的舍入模式,以源操作数执行舍入运算。对其它的实施例进行了描述并要求其权益。
【专利说明】响应指令执行舍入运算
【技术领域】
[0001]本发明一般涉及处理器对数据执行的数学运算,特别是涉及舍入运算。
【背景技术】
[0002]处理器对数据执行各种各样的数学运算。数据可能属于不同的类型,包括例如具有不同内在精度的整数值和浮点(FP)值。当处理FP值时,在其它这样的操作之中,数学运算、比如乘法或加法的结果有可能产生需要将其转换为较低精度格式的结果。相应地,可以执行舍入运算以将该FP结果进行舍入。
[0003]尽管这样的舍入运算可以作为不同数学运算的一部分来执行,但是在一些处理器体系结构中,限制了或不能够作为独立运算对数据元素执行舍入运算,或者无需多个复杂的步骤。例如,处理器可以配置为根据缺省舍入模式执行FP值到整数值的舍入。然而,因为种种理由,可能需要根据不同的模式来将给定的源操作数进行舍入。为了完成这样的运算,可能出现保存处理器的当前配置状态、加载包括关于所要求的舍入模式的信息在内的新的配置状态、执行舍入运算、以及恢复原始处理器状态等的复杂步骤。这些操作可能是耗费时间的,提高了复杂性并且耗费了过多的处理周期。另外,虽然随着新的程序设计语言的发展,所希望的是支持其它的舍入模式,但是,在处理器中所执行的舍入运算通常仍然按照有限数量的舍入模式、即已在电气和电子工程师学会(IEEE)标准754-1985 (1985年发表)中所阐述的舍入模式进行。

【发明内容】

[0004]根据本发明的第一方面,提供了一种方法,包括:
[0005]在处理器中接收舍入指令和立即值;
[0006]确定所述立即值的舍入模式替换指示符是否是有效的;以及
[0007]如果有效,则响应所述舍入指令并且根据在所述立即值中规定的舍入模式,在所述处理器的浮点单元中对源操作数执行舍入运算。
[0008]根据本发明的第二方面,提供了一种装置,包括:
[0009]控制器,接收舍入指令和与所述舍入指令相关的立即数据元素,其中,所述控制器基于所述立即数据元素的替换指示符来确定是否替换缺省舍入模式;以及
[0010]执行单元,耦合于所述控制器,响应所述舍入指令来执行舍入运算,其中,如果替换所述缺省舍入模式,则所述执行单元根据所述立即数据元素的舍入模式来执行所述舍入运算。
[0011]根据本发明的第三方面,提供了一种系统,包括:
[0012]执行单元,如果替换指示符存在于控制字段中,则根据与舍入指令相关的控制字段中规定的舍入模式,对第一操作数执行舍入指令以获得舍入的结果;以及
[0013]耦合于所述执行单元的动态随机存取存储器(DRAM)。
[0014]根据本发明的第四方面,提供了一种机器可读介质,在其上存储了指令,如果所述指令由机器执行,就会使机器执行包括以下步骤的方法:
[0015]根据由所述指令规定的模式来执行舍入运算;以及
[0016]在第一存储区中存储所述舍入运算的结果。
【专利附图】

【附图说明】
[0017]图1是根据本发明的一个实施例的方法的流程图。
[0018]图2是根据本发明的一个实施例的处理器的一部分的框图。
[0019]图3是根据本发明的一个实施例、结合指令使用的立即数据元素的框图。
[0020]图4是根据本发明的实施例用于执行舍入运算的方法的流程图。
[0021]图5是根据本发明的一个实施例的系统的框图。
【具体实施方式】
[0022]在不同的实施例中,在处理器中、例如在处理器的浮点单元(FPU)中可使用指令集体系结构(ISA)的多个舍入指令来有效地执行舍如运算。除了在电气和电子工程师学会(IEEE)标准754-1985 (1985年发表)(在这里IEEE标准用于二元浮点运算或者IEEE标准754)中阐明的舍入模式之外,实施例可用于根据其它舍入模式来执行舍入运算。例如,如下所述,在有些实施例中,指令可提供对部分远离零的以及远离零的舍入运算的支持。此外,这些舍入运算可以和许多数据类型一起使用。在有些实现中,舍入运算可以对单指令多数据(SIMD)数据类型执行,以便可以对扩展的数据类型、比如封装数据元素执行指令,其中将多种数据元素封装到单一的位置例如处理器的扩充寄存器中。
[0023]为了提供灵活性并且提供有效的指令执行,实施例可提供基于ISA的指令,该指令可以对源操作数执行。这些基于ISA的指令可以是用于执行到源操作数的最接近整数值的舍入的舍入运算的不同实现。这样的源操作数可能已经是有限精度格式(即,不是算术运算的结果,而是从寄存器/存储器中读出的数据)。这样的指令可用于不同的应用,包括多媒体应用、游戏应用等等。此外,实施例可在基于编译程序的基本要素上来实现以实现舍入运算,这些舍入运算适用于不同的程序设计语言。注意,在不同的实施例中,舍入指令可采用浮点数作为源操作数,将其舍入到最接近的整数值,并且将结果也作为具有整数值的浮点值进行存储。
[0024]在不同的实施例中,至少部分根据与该指令一起接收到的信息、例如与该指令一起接收到的立即数据,可处理对该执行的控制。在不同的实现中,这样的立即数据可替换(override)由处理器当前所使用的缺省舍入模式。在这样的替换情况中,该立即数据可进一步提供对该舍入模式的控制。此外,该立即数据可为精度异常(即精度抑制)的替换作准备。如此可将立即数据用于提供特定舍入运算的非粘性控制,如此该运算可在最少周期中执行。这也许如此,如同当与指令结合接收的立即数据包括舍入控制信息的时候,可能不需要更新出现于配置寄存器中的这种信息,其中配置寄存器比如为扩展控制和状态寄存器(CSR),例如存在于依据Intel 本系结构(例如,IA-32体系结构)的处理器中的多媒体扩展CSR(Μ IX CSR)。然而,需要理解的是,可在不同的处理器类型中使用这些实施例,并且本发明的范围不是限于这个方面。
[0025]现在参照图1,所示的是根据本发明的一个实施例的方法的流程图。如图1所示,方法100首先接收在处理器之中的舍入指令以及相关的立即数据(步骤110)。例如,在许多实现中,可在处理器中接收用户级指令、例如,ISA的指令。除指令之外,同时也可提供立即数据。如下面要进一步进行苗述,这种立即数据可包括多个字段以控制运算的各个方面。
[0026]仍参照图1,控制从步骤110转到判断步骤115。在判断步骤115,可确定该立即数据是否替换配置寄存器的舍入模式。亦即,立即数据的字段可能包括替换指示符,它指出是否替换缺省舍入模式。在不同的实施例中,这种缺省舍入模式可存在于配置寄存器、比如CSR、例如,MXCSR的字段中,但本发明的范围不限于这个方面。如果该立即数据包括替换指示符,则控制转到步骤120。在步骤120,可将由指令识别的源操作数分派给例如处理器的浮点单元(FPU)。此外,可将该源操作数与信息一起分派以控制舍入运算的舍入模式。可从立即数据获得控制信息,即,如同在立即数据的舍入状态字段中所规定的。如同将要在下面进一步描述的,在有些实现中,控制单元、比如处理器的控制选择单元可接收指令以及立即数据,并且将立即数据解码以确定是否替换缺省舍入模式,以及如果是这样的话,则获得该立即数据中规定的舍入模式。
[0027]仍参照图1,如果在判断步骤115确定立即数据不包括替换指示符,则控制转移到步骤125。在步骤125,可分派源操作数用于在FPU进行执行。此外,可在例如配置寄存器中规定的缺省舍入模式的基础上执行舍入运算。
[0028]无论如何,控制都会从两个步骤120和125传递到步骤130,在那里可执行舍入运算。该舍入运算按照舍入模式删除了该输入(即源操作数)的分数精度。在不同的实施例中,可实现执行舍入运算的不同方式。例如,在许多实现中,FPU可包括加法器和舍入单元用以执行舍入运算。为了根据IEEE标准754执行舍入模式,加法器可拥有源操作数作为第一操作数以及常量值、例如零用作第二操作数。然后可将加法器的输出馈送到舍入单元,该舍入单元根据所选择的操作模式将结果进行舍入。因此,舍入单元可将它的输入值舍入成为整数值化的浮点结果。
[0029]在其它的实施例中,除IEEE标准754舍入模式之外还可执行其它舍入模式。在这类实现中,可向FPU加法器馈送源操作数以及以源操作数的值和该舍入模式为基础的特定数据值作为第二操作数,将要在下面进行进一步描述。然后可对该结果执行舍入运算,其中,该舍入运算可为IEEE标准754运算。在其它扩展的舍入模式的实现中,可将源操作数和零值提供给FPU加法器的输入,并且然后可将所得值根据送到舍入单元的控制信息进行舍入。
[0030]在执行之后,可将舍入运算的结果存储在目的操作数中(步骤140)。在不同的实施例中,目的操作数可以是处理器的扩展存储寄存器,但是本发明的范围不限于此。此外,可确定在舍入运算期间是否发生了精度异常(判断步骤145)。亦即,可以确定该舍入运算是否形成了能够引发异常的不精确的结果。如若不是,方法100可以结束。
[0031]如果产生了精度异常,则控制可转到判断步骤150。在判断步骤150,可确定立即数据是否包括了用于抑制精度异常的字段。亦即,在有些实现中,立即数据可包括抑制字段。这个字段的值可指示出,如果产生精度异常的话,相关的舍入指令是否应该抑制精度异常。如果精度抑制指示符存在,则即使精度异常发生,也不会采取更进一步地动作,并且方法100可以结束。如果立即数据不包括用于抑制精度异常的指示符,则控制可以转到步骤160。在步骤160,可在状态寄存器中设置精度异常的标志。例如,在有些实现中,状态寄存器可对应于MXCSR,但是本发明的范围不限于这个方面。以在状态寄存器中的这个标志的状态为基础,可能发生精度异常(例如,如果该标志是无屏蔽的)。如果是这样的话,则可例如经由软件处理器来执行适当的处理以处理该异常。如果标志是被屏蔽的,即使精度异常发生了并且在状态寄存器进行了标记,则相对于设置的标志不会采取任何动作。尽管在图1的实施例中对于这个具体实现进行了描述,但是可以理解的是,本发明的范围不限于这个方面。
[0032]现在参照图2,所示的是根据本发明的一个实施例的处理器一部分的框图。如图2所示,处理器200可包括控制选择单元210,经过耦合用以从寄存器205 (它可能是通用处理器寄存器)接收例如由微操作(μ op)产生的输入的指令信息以及与此相关的立即数据。μ OP可响应用于执行给定舍入运算的单一 ISA的指令而产生。在不同的实施例中,控制选择单元210可以对立即数据解码,其中该控制选择单元210可由硬件、软件、固件或它们的组合来实现。在立即数据的基础上,可以确定是否替换例如在存储了当前舍入控制状态220的控制或者配置寄存器中所表示的处理器的当前舍入模式。如果是这样的话,控制选择单元210可以解码立即数据的模式字段,即舍入模式字段,来确定恰当的舍入模式。
[0033]控制选择单元210可耦合于浮点单元(FPU) 240以在输入信息的基础上向其提供控制指令。如图2中进一步所示,扩展寄存器文件、比如所谓的扩展(XMM)寄存器230可出现在处理器200之内,其中该处理器200可包括在作为用于舍入运算的源和目的操作数的指令中所确定的寄存器。因此,XMM寄存器230可耦合于FPU240以对其提供源操作数并从其中接收目的操作数。
[0034]在不同的实施例中,FPU240可包括各种电路以对数据执行操作。在图2的实施例中,FPU240包括FPU加法器242。具体地,如图2所示,FPU加法器242可被耦合以接收输入操作数,例如第一源操作数和第二源操作数(即,操作数SI和S2)。FPU240也可包括FPU舍入器244,它耦合于FPU加法器242的输出。在不同的实施例中,FPU加法器242可产生运算的无限精确结果。然而,给定了存储器及其它约束,可能会将结果进行舍入来以所希望的格式例如单精度或者双精度浮点元素提供最终结果。相应地,FPU舍入器244可从FPU加法器242接收无限精确的结果并且执行舍入运算,例如由处理器200的当前舍入模式所指示的,或者以来自立即数据的控制为基础,其中该立即数据与指令一起获得,即经由控制选择单元210。注意,尽管FPU舍入器244通常可接收在FPU加法器242中作为数学运算结果出现的无限精确的结果,但是在不同的实现中,拥有舍入指令的源操作数可能已经是有限精度格式。在这些情况下,FPU舍入器244可接收其输入值(例如对应于给定舍入指令的源操作数)并且产生例如对应于最接近的整数值的舍入结果。
[0035]因此,以给定的舍入指令为基础,FPU240可以对例如来自XMM寄存器230之一、由来自控制选择单元210的信息所控制的给定源操作数执行舍入运算。此外,在舍入运算完成的时候,可将结果存储到例如在XMM寄存器230之中不同的寄存器上。如果精度异常在运算期间发生,通常可在FP状态寄存器225设置标志来表明。然而,在不同的实施例中,如果与舍入指令有关的立即数据指示了精度抑制,则不设置这样的标志。尽管在图2的实施例中对于这个具体实现进行了描述,但是可以理解的是,本发明的范围不限于这个方面。例如,在有些实施例中,例如由舍入控制状态220和FP状态寄存器225所表示的控制和情况状态可被存储在单一 CSR例如MXCSR中。[0036]注意,可通过不同的形式向控制选择单元210提供立即数据。例如,在有些实现中,立即数据可以是单字节数据元素的形式,但是本发明的范围不限于此。此外,在立即数据元素之内可实现不同方式的编码控制信息。现在参照图3,所示的是根据本发明的一个实施例的立即数据元素的框图。如图3所示,立即数据元素300可为包括替换指示符310、模式空制字段320、精度替换指示符330和保留字段340的8比特字。尽管在图3的实施例显示了这个具体实现,但是本发明的范围不限于这种方式。
[0037]在图3的实施例中,替换指示符310可用来确定与立即数据元素300有关的舍入指令的替换状态。如下面表1所示,替换指示符310可设置为逻辑低电平来指示缺省舍入模式(例如由配置寄存器如MXCSR所表示)的替换。逻辑高电平值指示缺省模式的使用。
[0038]表1
[0039]
【权利要求】
1.一种处理器,包括: 控制器,对用户级舍入指令做出响应,如果缺省舍入模式将被替换,该控制器从用户级舍入指令的立即操作数中确定舍入模式,其中用户级舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段和指示缺省舍入模式是否将被替换的替换指示符; 第一扩展XMM寄存器,用于存储具有多个打包的双精度浮点值的目的操作数; 第二扩展XMM寄存器,用于存储具有多个打包的双精度浮点值的源操作数; 多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和 浮点单元,耦合到控制器和第一和第二扩展XMM寄存器,用于按照舍入模式对源操作数执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器。
2.如权利要求1所述的处理器,其特征在于,立即操作数进一步包括指示处理器如何处理精度异常的精度抑制指示符。
3.如权利要求1所述的处理器,其特征在于,所述浮点单元还包括: 浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和 浮点舍入器,用于对加法结果进行舍入运算。
4.如权利要求3所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
5.如权利要求1所述的处理器,其特征在于,所述舍入模式包括最接近的偶模式、朝-00模式、朝+ 00模式、截 断模式、部分远离O的模式和向远离O的方向舍入中的一种模式。
6.一种处理器,包括: 控制器,对用户级舍入指令做出响应,如果缺省舍入模式将被替换,该控制器从用户级舍入指令的立即操作数中确定舍入模式,其中用户级舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段和指示缺省舍入模式是否将被替换的替换指示符; 第一扩展XMM寄存器,用于存储具有多个双精度浮点值的目的操作数; 其中具有多个打包的双精度浮点值的源操作数被存储在存储器中; 多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和 浮点单元,耦合到控制器、第一扩展XMM寄存器和存储器,用于按照舍入模式对源操作数执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器。
7.如权利要求6所述的处理器,其特征在于,立即操作数进一步包括指示处理器如何处理精度异常的精度抑制指示符。
8.如权利要求6所述的处理器,其特征在于,所述浮点单元还包括: 浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和 浮点舍入器,用于对加法结果进行舍入运算。
9.如权利要求8所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
10.如权利要求6所述的处理器,其特征在于,所述舍入模式包括最接近的偶模式、朝-00模式、朝+ 00模式、截断模式、部分远离O的模式和向远离O的方向舍入中的一种模式。
11.一种处理器,包括: 控制器,对用户级舍入指令做出响应,如果缺省舍入模式将被替换,该控制器从用户级舍入指令的立即操作数中确定舍入模式,其中用户级舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段和指示缺省舍入模式是否将被替换的替换指示符; 第一扩展XMM寄存器,用于存储具有多个标量双精度浮点值的目的操作数; 第二扩展XMM寄存器,用于存储具有多个标量双精度浮点值的源操作数; 多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和 浮点单元,耦合到控制器和第一和第二扩展XMM寄存器,用于按照舍入模式对源操作数的下双精度浮点值执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器的最低位置,其中将源操作数的上双精度浮点值写入第一扩展XMM寄存器,而不改变。
12.如权利要求11所述的处理器,其特征在于,立即操作数进一步包括指示处理器如何处理精度异常的精度抑制指示符。
13.如权利要求11所述的处理器,其特征在于,所述浮点单元还包括: 浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和 浮点舍入器,用于对加法结果进行舍入运算。
14.如权利要求13所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
15.如权利要求11所述的处理器,其特征在于,所述舍入模式包括最接近的偶模式、朝-∞模式、朝+ ∞模式、截断模式、部分远离0的模式和向远离.0的方向舍入中的一种模式。
16.—种系统,包括: 多核处理器,它包括:控制器,对舍入指令做出响应,如果缺省舍入模式将被替换,该控制器从舍入指令的8比特立即操作数中确定舍入模式,其中舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段,指示缺省舍入模式是否将被替换的替换指示符和指示处理器如何处理精度异常的精度抑制指示符;第一扩展XMM寄存器,用于存储具有多个浮点值的目的操作数;第二扩展XMM寄存器,用于存储具有多个浮点值的源操作数;多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和浮点单元,耦合到控制器和第一和第二扩展XMM寄存器,用于按照舍入模式对源操作数的一个浮点值执行舍入运算并将舍入的源写入第一扩展XMM寄存器的第一位置,其中将源操作数的其它浮点值写入第一扩展XMM寄存器,而不改变;以及 主存储器,耦合到所述多核处理器。
17.如权利要求16所述的系统,其特征在于,所述浮点单元还包括: 浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和 浮点舍入器,用于对加法结果进行舍入运算。
18.如权利要求17所述的系统,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
19.如权利要求16所述的系统,其特征在于,所述舍入模式包括最接近的偶模式、朝-00模式、朝+ 00模式、截断模式、部分远离O的模式和向远离O的方向舍入中的一种模式。`
【文档编号】G06F9/318GK103593165SQ201310524726
【公开日】2014年2月19日 申请日期:2007年9月21日 优先权日:2006年9月22日
【发明者】R.埃克索哈, S.斯托里 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1