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

文档序号:9810246阅读:来源:国知局
据IEEE标准754执行舍入模式,加法器可拥有源操作数作为第一操 作数以及常量值、例如零用作第二操作数。然后可将加法器的输出馈送到舍入单元,该舍入 单元根据所选择的操作模式将结果进行舍入。因此,舍入单元可将它的输入值舍入成为整 数值化的浮点结果。
[0028]在其它的实施例中,除IEEE标准754舍入模式之外还可执行其它舍入模式。在这类 实现中,可向FPU加法器馈送源操作数以及以源操作数的值和该舍入模式为基础的特定数 据值作为第二操作数,将要在下面进行进一步描述。然后可对该结果执行舍入运算,其中, 该舍入运算可为IEEE标准754运算。在其它扩展的舍入模式的实现中,可将源操作数和零值 提供给FHJ加法器的输入,并且然后可将所得值根据送到舍入单元的控制信息进行舍入。
[0029] 在执行之后,可将舍入运算的结果存储在目的操作数中(步骤140)。在不同的实施 例中,目的操作数可以是处理器的扩展存储寄存器,但是本发明的范围不限于此。此外,可 确定在舍入运算期间是否发生了精度异常(判断步骤145)。亦即,可以确定该舍入运算是否 形成了能够引发异常的不精确的结果。如若不是,方法100可以结束。
[0030] 如果产生了精度异常,则控制可转到判断步骤150。在判断步骤150,可确定立即数 据是否包括了用于抑制精度异常的字段。亦即,在有些实现中,立即数据可包括抑制字段。 这个字段的值可指示出,如果产生精度异常的话,相关的舍入指令是否应该抑制精度异常。 如果精度抑制指示符存在,则即使精度异常发生,也不会采取更进一步地动作,并且方法 100可以结束。如果立即数据不包括用于抑制精度异常的指示符,则控制可以转到步骤160。 在步骤160,可在状态寄存器中设置精度异常的标志。例如,在有些实现中,状态寄存器可对 应于MXCSR,但是本发明的范围不限于这个方面。以在状态寄存器中的这个标志的状态为基 础,可能发生精度异常(例如,如果该标志是无屏蔽的)。如果是这样的话,则可例如经由软 件处理器来执行适当的处理以处理该异常。如果标志是被屏蔽的,即使精度异常发生了并 且在状态寄存器进行了标记,则相对于设置的标志不会采取任何动作。尽管在图1的实施例 中对于这个具体实现进行了描述,但是可以理解的是,本发明的范围不限于这个方面。
[0031]现在参照图2,所示的是根据本发明的一个实施例的处理器一部分的框图。如图2 所示,处理器200可包括控制选择单元210,经过耦合用以从寄存器205(它可能是通用处理 器寄存器)接收例如由微操作(μ〇Ρ)产生的输入的指令信息以及与此相关的立即数据。μ〇Ρ 可响应用于执行给定舍入运算的单一ISA的指令而产生。在不同的实施例中,控制选择单元 210可以对立即数据解码,其中该控制选择单元210可由硬件、软件、固件或它们的组合来实 现。在立即数据的基础上,可以确定是否替换例如在存储了当前舍入控制状态220的控制或 者配置寄存器中所表示的处理器的当前舍入模式。如果是这样的话,控制选择单元210可以 解码立即数据的模式字段,即舍入模式字段,来确定恰当的舍入模式。
[0032]控制选择单元210可耦合于浮点单元(FPU)240以在输入信息的基础上向其提供控 制指令。如图2中进一步所示,扩展寄存器文件、比如所谓的扩展(XMM)寄存器230可出现在 处理器200之内,其中该处理器200可包括在作为用于舍入运算的源和目的操作数的指令中 所确定的寄存器。因此,XMM寄存器230可耦合于FPU 240以对其提供源操作数并从其中接收 目的操作数。
[0033]在不同的实施例中,FPU 240可包括各种电路以对数据执行操作。在图2的实施例 中,FPU 240包括FPU加法器242。具体地,如图2所示,FPU加法器242可被耦合以接收输入操 作数,例如第一源操作数和第二源操作数(即,操作数S1和S2KFPU 240也可包括FPU舍入器 244,它耦合于FPU加法器242的输出。在不同的实施例中,FPU加法器242可产生运算的无限 精确结果。然而,给定了存储器及其它约束,可能会将结果进行舍入来以所希望的格式例如 单精度或者双精度浮点元素提供最终结果。相应地,FPU舍入器244可从FPU加法器242接收 无限精确的结果并且执行舍入运算,例如由处理器200的当前舍入模式所指示的,或者以 来自立即数据的控制为基础,其中该立即数据与指令一起获得,即经由控制选择单元210。 注意,尽管FPU舍入器244通常可接收在FPU加法器242中作为数学运算结果出现的无限精确 的结果,但是在不同的实现中,拥有舍入指令的源操作数可能已经是有限精度格式。在这些 情况下,FPU舍入器244可接收其输入值(例如对应于给定舍入指令的源操作数)并且产生例 如对应于最接近的整数值的舍入结果。
[0034] 因此,以给定的舍入指令为基础,FPU 240可以对例如来自XMM寄存器230之一、由 来自控制选择单元210的信息所控制的给定源操作数执行舍入运算。此外,在舍入运算完成 的时候,可将结果存储到例如在XMM寄存器230之中不同的寄存器上。如果精度异常在运算 期间发生,通常可在FP状态寄存器225设置标志来表明。然而,在不同的实施例中,如果与舍 入指令有关的立即数据指示了精度抑制,则不设置这样的标志。尽管在图2的实施例中对于 这个具体实现进行了描述,但是可以理解的是,本发明的范围不限于这个方面。例如,在有 些实施例中,例如由舍入控制状态220和FP状态寄存器225所表示的控制和情况状态可被存 储在单一 CSR例如MXCSR中。
[0035] 注意,可通过不同的形式向控制选择单元210提供立即数据。例如,在有些实现中, 立即数据可以是单字节数据元素的形式,但是本发明的范围不限于此。此外,在立即数据元 素之内可实现不同方式的编码控制信息。现在参照图3,所示的是根据本发明的一个实施例 的立即数据元素的框图。如图3所示,立即数据元素300可为包括替换指示符310、模式控制 字段320、精度替换指示符330和保留字段340的8比特字。尽管在图3的实施例显示了这个具 体实现,但是本发明的范围不限于这种方式。
[0036] 在图3的实施例中,替换指示符310可用来确定与立即数据元素300有关的舍入指 令的替换状态。如下面表1所示,替换指示符310可设置为逻辑低电平来指示缺省舍入模式 (例如由配置寄存器如MXCSR所表示)的替换。逻辑高电平值指示缺省模式的使用。
[0037] 表 1
[0039] 如果替换指示符310指示将要替换缺省舍入模式,那么可对舍入模式字段320进行 解码以确定与舍入指令相关的舍入模式。如下面表2所示,在有些实现中,可支持六种舍入 模式,包括由IEEE标准754规定的四种舍入模式,以及两种扩展的舍入模式,将在下面对其 更进一步地进行讨论。
[0040] 表 2
[0042]立即数据元素300还包括精度抑制指示符330,可对其进行设置来指示不精确结果 的容差,使得精度异常即使在相关指令的运算期间发生时也不会导致在状态寄存器中的异 常标志的设置。具体地,如下面表3所示,精度抑制指示符330可以采用以下形式:
[0043]表 3
[0045] 注意,精度抑制指示符330可与不同语言、例如C99、Fortran和Java的用户级指令 结合使用。最后,在一些实施例中,可以为额外的信息保留保留字段340。还要注意,在表1-3 中规定的具体值、以及指示符和字段的具体位置和大小不受限制,并且各种改变、修改和扩 展都在本发明的范围之内。
[0046] 如同上面描述的,在许多实现中,舍入运算可响应ISA的单指令来执行。以这种方 法,提供了用户级的支持,并且可以有效地执行舍入运算。在给定的ISA中,可出现并使用若 干这类舍入指令来处理具体的舍入运算,例如双精度和单精度浮点值以及封装和标量值的 舍入。这些舍入指令也可用于将浮点数据元素的分数部分舍去。除ISA级指令的存在之外, 立即数据或者其它的控制字段信息可以允许舍入模式(连同其它属性一道)
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1