CN101882064B - 响应指令执行舍入运算 - Google Patents

响应指令执行舍入运算 Download PDF

Info

Publication number
CN101882064B
CN101882064B CN201010200409XA CN201010200409A CN101882064B CN 101882064 B CN101882064 B CN 101882064B CN 201010200409X A CN201010200409X A CN 201010200409XA CN 201010200409 A CN201010200409 A CN 201010200409A CN 101882064 B CN101882064 B CN 101882064B
Authority
CN
China
Prior art keywords
rounding mode
operand
round
pattern
source operand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201010200409XA
Other languages
English (en)
Other versions
CN101882064A (zh
Inventor
R·埃克索哈
S·斯托里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101882064A publication Critical patent/CN101882064A/zh
Application granted granted Critical
Publication of CN101882064B publication Critical patent/CN101882064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Nonlinear Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及响应指令执行舍入运算,在一个实施例中,提供了一种方法,用于在处理器中接收舍入指令和立即值,确定立即值的舍入模式替换指示符是否有效,并且如果是这样的话,则在处理器的浮点单元中,响应该舍入指令并且根据在立即操作数中规定的舍入模式,以源操作数执行舍入运算。对其它的实施例进行了描述并要求其权益。

Description

响应指令执行舍入运算
本申请是分案申请,其母案申请号为200710170152.6,其母案申请日为2007年9月21日,其母案发明名称为:“响应指令执行舍入运算”。
技术领域
本发明一般涉及处理器对数据执行的数学运算,特别是涉及舍入运算。
背景技术
处理器对数据执行各种各样的数学运算。数据可能属于不同的类型,包括例如具有不同内在精度的整数值和浮点(FP)值。当处理FP值时,在其它这样的操作之中,数学运算、比如乘法或加法的结果有可能产生需要将其转换为较低精度格式的结果。相应地,可以执行舍入运算以将该FP结果进行舍入。
尽管这样的舍入运算可以作为不同数学运算的一部分来执行,但是在一些处理器体系结构中,限制了或不能够作为独立运算对数据元素执行舍入运算,或者无需多个复杂的步骤。例如,处理器可以配置为根据缺省舍入模式执行FP值到整数值的舍入。然而,因为种种理由,可能需要根据不同的模式来将给定的源操作数进行舍入。为了完成这样的运算,可能出现保存处理器的当前配置状态、加载包括关于所要求的舍入模式的信息在内的新的配置状态、执行舍入运算以及恢复原始处理器状态等的复杂步骤。这些操作可能是耗费时间的,提高了复杂性并且耗费了过多的处理器周期。另外,虽然随着新的程序设计语言的发展,所希望的是支持其它的舍入模式,但是,在处理器中所执行的舍入运算通常仍然按照有限数量的舍入模式、即已在电气和电子工程师学会(IEEE)标准754-1985(1985年发表)中所阐述的舍入模式进行。
发明内容
根据本发明的第一方面,提供了一种方法,包括以下步骤:
接收包括指示舍入模式的舍入信息的指令集体系结构(ISA)的舍入指令;
根据所述舍入信息来确定所述舍入模式;以及
根据舍入模式来对操作数执行舍入运算。
根据本发明的第二方面,提供了一种装置,包括:
控制器,接收包括具有指示舍入模式的模式字段和替换指示符的舍入信息的指令集体系结构(ISA)的舍入指令,所述控制器根据所述替换指示符来确定是否替换缺省舍入模式,所述控制器根据所述舍入信息来确定所述舍入模式;以及
执行单元,根据所述舍入模式来对操作数执行舍入运算。
根据本发明的第三方面,提供了一种系统,包括:
处理器,根据舍入模式来对操作数执行舍入运算,所述舍入模式根据用户级舍入指令来确定,所述用户级舍入指令包括指示舍入模式的舍入信息;
耦合到所述处理器的存储器。
根据本发明的第四方面,提供了一种方法,包括以下步骤:
接收包括舍入信息的用户级舍入指令,所述舍入信息具有替换指示符和指示舍入模式的模式字段;
根据替换信息来确定是否替换缺省舍入模式;以及
如果替换所述缺省舍入模式,则从所述模式字段获得所述舍入模式;
根据所述舍入模式和将被舍入的操作数来把预定值加到所述操作数上;以及
根据所述舍入模式来对加法结果执行舍入运算。
根据本发明的第五方面,提供了一种装置,包括:
控制器,接收包括指示舍入模式的舍入信息的舍入指令,以便根据所述舍入信息来确定是否替换缺省舍入模式;以及如果替换所述缺省舍入模式,则从所述舍入信息获得所述舍入模式;以及
执行单元,根据所述舍入模式和将被舍入的操作数来把预定值加到所述操作数上,并根据所述舍入模式来对加法结果执行舍入运算。
附图说明
图1是根据本发明的一个实施例的方法的流程图。
图2是根据本发明的一个实施例的处理器的一部分的框图。
图3是根据本发明的一个实施例、结合指令使用的立即数据元素的框图。
图4是根据本发明的一实施例用于执行舍入运算的方法的流程图。
图5是根据本发明的一个实施例的系统的框图。
具体实施方式
在不同的实施例中,在处理器中、例如在处理器的浮点单元(FPU)中可使用指令集体系结构(ISA)的多个舍入指令来有效地执行舍入运算。除了在电气和电子工程师学会(IEEE)标准754-1985(1985年发表)(在这里IEEE标准用于二元浮点运算或者IEEE标准754)中阐明的舍入模式之外,实施例可用于根据其它舍入模式来执行舍入运算。例如,如下所述,在有些实施例中,指令可提供对部分远离零的以及远离零的舍入运算的支持。此外,这些舍入运算可以和许多数据类型一起使用。在有些实现中,舍入运算可以对单指令多数据(SIMD)数据类型执行,以便可以对扩展的数据类型、例如打包(packed)的数据元素执行指令,其中将多个数据元素打包到单个位置例如处理器的扩充寄存器中。
为了提供灵活性并且提供有效的指令执行,实施例可提供基于ISA的指令,该指令可以对源操作数执行。这些基于ISA的指令可以是用于执行到源操作数的最接近整数值的舍入的舍入运算的不同实现。这样的源操作数可能已经是有限精度格式(即,不是算术运算的结果,而是从寄存器/存储器中读出的数据)。这样的指令可用于不同的应用,包括多媒体应用、游戏应用等等。此外,实施例可在基于编译程序的原语中实现以实现舍入运算,这些舍入运算适用于不同的程序设计语言。注意,在不同的实施例中,舍入指令可采用浮点数作为源操作数,将其舍入到最接近的整数值,并且将结果也作为具有整数值的浮点值进行存储。
在各种实施例中,至少部分根据与该指令一起接收到的信息、例如与该指令一起接收到的立即数据,可处理对该执行的控制。在不同的实现中,这样的立即数据可替换(override)由处理器当前所使用的缺省舍入模式。在这样的替换情况中,该立即数据可进一步提供对该舍入模式的控制。更进一步讲,该立即数据可为精度异常(即精度抑制)的替换作准备。这样,可将立即数据用于提供特定舍入运算的非粘性控制,如此该运算可在最少周期中执行。这也许如同当与指令结合接收的立即数据包括舍入控制信息的时候,可能不需要更新出现于配置寄存器中的这种信息,其中配置寄存器例如为扩展控制和状态寄存器(CSR),例如存在于依据
Figure GSB00000475017400041
体系结构(例如,IA-32体系结构)的处理器中的多媒体扩展CSR(MXCSR)。然而,需要理解的是,可在不同的处理器类型中使用这些实施例,并且本发明的范围不是限于这个方面。
现在参照图1,所示的是根据本发明的一个实施例的方法的流程图。如图1所示,方法100首先接收在处理器之中的舍入指令以及相关的立即数据(步骤110)。例如,在许多实现中,可在处理器中接收用户级指令、例如,ISA的指令。除指令之外,同时也可提供立即数据。如下面要进一步进行描述,这种立即数据可包括多个字段以控制运算的各个方面。
仍参照图1,控制从步骤110转到判断步骤115。在判断步骤115,可确定该立即数据是否替换配置寄存器的舍入模式。亦即,立即数据的字段可能包括替换指示符,它指出是否替换缺省舍入模式。在各种实施例中,这种缺省舍入模式可存在于配置寄存器、比如CSR、例如,MXCSR的字段中,但本发明的范围不限于这个方面。如果该立即数据包括替换指示符,则控制转到步骤120。在步骤120,可将由指令识别的源操作数分派给例如处理器的浮点单元(FPU)。此外,可将该源操作数与信息一起分派以控制舍入运算的舍入模式。可从立即数据获得控制信息,即,如同在立即数据的舍入状态字段中所规定的。如同将要在下面进一步描述的,在有些实现中,控制单元、比如处理器的控制选择单元可接收指令以及立即数据,并且将立即数据解码以确定是否替换缺省舍入模式,以及如果是这样的话,则获得该立即数据中规定的舍入模式。
仍参照图1,如果在判断步骤115确定立即数据不包括替换指示符,则控制转移到步骤125。在步骤125,可分派源操作数用于在FPU进行执行。此外,可在例如配置寄存器中规定的缺省舍入模式的基础上执行舍入运算。
在任一种情况下,控制都会从两个步骤120和125传递到步骤130,在那里可执行舍入运算。该舍入运算按照舍入模式去除该输入(即源操作数)的分数精度。在不同的实施例中,可实现执行舍入运算的不同方式。例如,在许多实现中,FPU可包括加法器和舍入单元以执行舍入运算。为了根据IEEE标准754执行舍入模式,加法器可拥有源操作数作为第一操作数以及常量值、例如零用作第二操作数。然后可将加法器的输出馈送到舍入单元,该舍入单元根据所选择的操作模式将结果进行舍入。因此,舍入单元可将它的输入值舍入成为整数值化的浮点结果。
在其它的实施例中,除IEEE标准754舍入模式之外还可执行其它舍入模式。在这类实现中,可向FPU加法器馈送源操作数以及以源操作数的值和该舍入模式为基础的特定数据值作为第二操作数,这将在下面进行进一步描述。然后可对该结果执行舍入运算,其中,该舍入运算可为IEEE标准754运算。在其它扩展的舍入模式的实现中,可将源操作数和零值提供给FPU加法器的输入,并且然后可将所得值根据送到舍入单元的控制信息进行舍入。
在执行之后,可将舍入运算的结果存储在目的操作数中(步骤140)。在不同的实施例中,目的操作数可以是处理器的扩展存储寄存器,但是本发明的范围不限于此。此外,可确定在舍入运算期间是否发生了精度异常(判断步骤145)。亦即,可以确定该舍入运算是否形成了能够引发异常的不精确的结果。如若不是,方法100可以结束。
如果产生了精度异常,则控制可转到判断步骤150。在判断步骤150,可确定立即数据是否包括了用于抑制精度异常的字段。亦即,在有些实现中,立即数据可包括抑制字段。这个字段的值可指示出,如果产生精度异常的话,相关的舍入指令是否应该抑制精度异常。如果精度抑制指示符存在,则即使精度异常发生,也不会采取更进一步地动作,并且方法100可以结束。如果立即数据不包括用于抑制精度异常的指示符,则控制可以转到步骤160。在步骤160,可在状态寄存器中设置精度异常的标志。例如,在有些实现中,状态寄存器可对应于MXCSR,但是本发明的范围不限于这个方面。以在状态寄存器中的这个标志的状态为基础,可能发生精度异常(例如,如果该标志是无屏蔽的)。如果是这样的话,则可例如经由软件处理器来执行适当的处理以处理该异常。如果标志是被屏蔽的,即使精度异常发生了并且在状态寄存器进行了标记,则相对于设置的标志不会采取任何动作。尽管在图1的实施例中对于这个具体实现进行了描述,但是可以理解的是,本发明的范围不限于这个方面。
现在参照图2,所示的是根据本发明的一个实施例的处理器一部分的框图。如图2所示,处理器200可包括控制选择单元210,经过耦合用以从寄存器205(它可能是通用处理器寄存器)接收例如由微操作(μop)产生的输入的指令信息以及与此相关的立即数据。μop可响应用于执行给定舍入运算的单个ISA的指令而产生。在各种实施例中,控制选择单元210可以对立即数据解码,其中该控制选择单元210可由硬件、软件、固件或它们的结合来实现。在立即数据的基础上,可以确定是否替换例如在存储了当前舍入控制状态220的控制或者配置寄存器中所表示的处理器的当前舍入模式。如果是这样的话,控制选择单元210可以解码立即数据的模式字段,即舍入模式字段,来确定恰当的舍入模式。
控制选择单元210可耦合到浮点单元(FPU)240以在输入信息的基础上向其提供控制指令。如图2中进一步所示,扩展寄存器文件、比如所谓的扩展(XMM)寄存器230可出现在处理器200之内,其中该处理器200可包括在作为用于舍入运算的源和目的操作数的指令中所确定的寄存器。因此,XMM寄存器230可耦合到FPU 240以对其提供源操作数并从其中接收目的操作数。
在各种实施例中,FPU 240可包括各种电路以对数据执行操作。在图2的实施例中,FPU240包括FPU加法器242。具体地脱,如图2所示,FPU加法器242可被耦合以接收输入操作数,例如第一源操作数和第二源操作数(即,操作数S1和S2)。FPU240也可包括FPU舍入器244,它耦合到FPU加法器242的输出。在各种实施例中,FPU加法器242可产生运算的无限精确结果。然而,给定了存储器及其它约束,可能会将结果进行舍入来以所希望的格式例如单精度或者双精度浮点元素提供最终结果。相应地,FPU舍入器244可从FPU加法器242接收无限精确的结果并且执行舍入运算,例如由处理器200的当前舍入模式所指示的,或者以来自立即数据的控制为基础,其中该立即数据采用指令获得,即经由控制选择单元210。注意,尽管FPU舍入器244通常可接收在FPU加法器242中作为数学运算结果出现的无限精确的结果,但是在不同的实现中,拥有舍入指令的源操作数可能已经是有限精度格式。在这些情况下,FPU舍入器244可接收其输入值(例如对应于给定舍入指令的源操作数)并且产生例如对应于最接近的整数值的舍入结果。
因此,以给定的舍入指令为基础,FPU 240可以对例如来自XMM寄存器230之一、由来自控制选择单元210的信息所控制的给定源操作数执行舍入运算。此外,在舍入运算完成的时候,可将结果存储到例如在XMM寄存器230之中不同的寄存器上。如果精度异常在运算期间发生,则通常可在FP状态寄存器225设置标志来表明。然而,在各种实施例中,如果与舍入指令有关的立即数据指示了精度抑制,则不设置这样的标志。尽管在图2的实施例中对于这个具体实现进行了描述,但是可以理解的是,本发明的范围不限于这个方面。例如,在有些实施例中,例如由舍入控制状态220和FP状态寄存器225所表示的控制和情况状态可被存储在单个CSR例如MXCSR中。
注意,可通过不同的形式向控制选择单元210提供立即数据。例如,在有些实现中,立即数据可以采用单字节数据元素的形式,但是本发明的范围不限于此。此外,在立即数据元素之内可实现不同方式的编码控制信息。现在参照图3,所示的是根据本发明的一个实施例的立即数据元素的框图。如图3所示,立即数据元素300可为包括替换指示符310、模式控制字段320、精度替换指示符330和保留字段340的8比特字。尽管在图3的实施例显示了这个具体实现,但是本发明的范围不限于这种方式。
在图3的实施例中,替换指示符310可用来确定与立即数据元素300有关的舍入指令的替换状态。如下面表1所示,替换指示符310可设置为逻辑低电平来指示缺省舍入模式(例如由配置寄存器如MXCSR所表示)的替换。逻辑高电平值指示缺省模式的使用。
表1
  舍入模式替换指示符
  0:使用直接值的1∶3比特
  1:使用缺省舍入模式
如果替换指示符310指示将要替换缺省舍入模式,那么可对舍入模式字段320进行解码以确定与舍入指令相关的舍入模式。如下面表2所示,在有些实现中,可支持六种舍入模式,包括由IEEE标准754规定的四种舍入模式,以及两种扩展的舍入模式,将在下面对其更进一步地进行讨论。
表2
  舍入模式字段
  000:最接近的偶数
  001:朝-∞的方向
  010:朝+∞的方向
  011:截断(舍入到0)
  100:部分向远离0的方向舍入
  101:向远离0的方向舍入
立即数据元素300还包括精度抑制指示符330,可对其进行设置来指示不精确结果的容差(allowance),使得精度异常即使在相关指令的运算期间发生时也不会导致在状态寄存器中的异常标志的设置。具体地,如下面表3所示,精度抑制指示符330可以采用以下形式:
表3
  精度抑制指示符
  1:没有对不精确(精度)字段进行更新
  0:正常行为
注意,精度抑制指示符330可与不同语言、例如C99、Fortran和Java的用户级指令结合使用。最后,在一些实施例中,可以为额外的信息保留保留字段340。还要注意,在表1-3中规定的具体值、以及指示符和字段的具体位置和大小不受限制,并且各种改变、修改和扩展都在本发明的范围之内。
如同上面描述的,在许多实现中,舍入运算可响应ISA的单个指令来执行。以这种方法,提供了用户级的支持,并且可以有效地执行舍入运算。在给定的ISA中,可出现并使用若干这类舍入指令来处理具体的舍入运算,例如双精度和单精度浮点值以及打包和标量值的舍入。这些舍入指令也可用于将浮点数据元素的分数部分舍去。除ISA级指令的存在之外,立即数据或者其它的控制字段信息可以允许舍入模式(连同其它属性一道)的有效局部控制,而不必修改处理器的当前缺省状态。
如下面表4所示,在ISA之中可以出现不同风格的舍入指令以对不同类型的数据元素实现有效的舍入运算。
表4
Figure GSB00000475017400091
作为这些ISA指令如何操作的例子,可使用ROUNDPD指令,通过在直接元素(即IMM 8)中规定的舍入模式来把源操作数(即可从XMM寄存器或者存储器得到的第二操作数)中的两个双精度浮点值进行舍入,并且将结果放到目的操作数(即可以是XMM寄存器的第一操作数)中。直接元素可以指定用于舍入运算的控制字段。再参考表1-3,立即数据的比特4(即图3的指示符330)可以控制精度异常的处理器的行为,而比特0(即图3的指示符310)可以选择舍入模式控制的源。最后,比特3∶1(即图3的字段320)可以指定非粘性舍入模式值。注意,在有些实施例中,如果任何源操作数是信令而不是数字(SNaN),那么它将要转换为静止的NaN(QNaN)。如果将配置寄存器对于非正常设置为零(DAZ),那么非正常可在舍入之前转换为零。如果将配置寄存器对于非正常刷新(flush denormal)设置为零(FTZ),那么非正常可在舍入之后转换为零。
作为这些ISA指令如何操作的另一个例子,ROUNDPS指令可用来在源操作数中将四个打包的单精度浮点值进行舍入并且将结果放到目的操作数中。为了说明的目的,具体的舍入指令可以采用以下形式:
ROUNDPS xmm0,xmm1,imm8(舍入到最接近的整数)。
这个指令可取第一寄存器即xmm1中的打包单精度值,如同由立即数据(即imm8)的舍入模式所规定的将每个值舍入到最接近的整数值,并且将结果存储到第二寄存器、即xmm0中。下面的表5显示了存在于源操作数(即xmm1)中、各对应于有限精度浮点值的典型值以及存储在目的操作数(即xmm0)中、对应于整数值化的浮点数、即与初始源值最接近的整数值的所得舍入值。
表5
注意,在另外的实现中,舍入运算可响应从源FP值生成的整数值(即,与整数值化FP值相反)的指令。其它的实施例可以实现到较低精度浮点表示法的舍入。这样的实施例可根据标准舍入模式或者特殊的舍入模式来提供舍入源值的有效方式,其中特殊的舍入模式由配置寄存器中缺省舍入模式或者在与该指令有关的立即数据中规定的局部舍入模式来进行控制。
在各种实施例中,立即数据可提供控制信息以执行不同于IEEE标准754舍入运算的舍入模式。这些舍入模式可以包括部分向远离零的方向舍入以及向远离零的方向舍入模式。现在参照图4,所示的是根据本发明的一个实施例执行舍入运算的方法的流程图。如图4所示,方法400可用来执行这些扩展的舍入模式。方法400可通过确定源操作数是否大于或等于零(菱形框410)来开始。如果是这样的话,控制可以转到步骤420,在那里可从源操作数减去预定的值(步骤420)。例如,FP加法器可以在所选择的具体舍入模式的基础上从源操作数减去给定的值。当然,这个减法可通过与预定值的负值相加来执行。然后,可对FP加法的结果执行所选定的舍入运算(步骤430)。在有些实现中,IEEE标准754舍入运算、例如截尾(也称为舍入到零)可对结果执行以获得扩展的舍入模式结果。如果在菱形框410确定该源操作数小于零,那么控制转移到步骤440。在步骤440,可在FP加法器中将预定的值(它可能是与以上所述相同的值)加到源操作数上。然后,在步骤450,可对结果执行选定的舍入运算以获得由此产生的舍入值。
虽然本发明的范围不限于这个方面,但是部分向远离零的方向舍入运算可以使用0.5的值作为其预定的值,而向远离零的方向舍入运算可以使用1”,它对应于小于但不等于一的最接近的可表示的FP值。对于单精度和双精度FP值,0.5可分别对应于0x3f000000和0x3fe0000000000000。对于单精度和双精度FP值,-0.5可分别对应于0xbf000000和0xbfe000000000000。对于单精度和双精度FP值,1″可分别对应于0x3f7fffff和0x3fefffffffffffff。对于单精度和双精度FP值,-1″可以分别对应于0xbf7fffff和0xbfefffffffffffff。在下面表6中显示的是用于执行这些操作的源代码例子。
表6
Figure GSB00000475017400111
在这些例子中,运算ROUND_TOWARD_ZFRO是IEEE标准754的截尾操作,它对加法/减法运算的结果执行。注意,在执行这些扩展舍入模式的运算中,可提供预定的值作为给FP加法器的第二源操作数(例如,如同在图2实施例中的S2)。或者,在有些实施例中,如同其它的舍入运算一样,第二源操作数可以为零,并且可将控制信号发送到舍入单元以实现选定的扩展舍入模式运算。
这样,在各种实施例中,可实现对于执行舍入的增强。这些增强可以避免执行各种操作的需要,例如存储控制寄存器的状态、执行空FP运算以及重新设置状态,或者甚至是转换数字到整数以及回到浮点的近似简化。通过抑制不精确的精度异常,用于舍入的相符不同语言的支持可被简化,而实现也可以遵守某些舍入功能的标准舍入模式,例如在C99语言中。
实施例可以在许多不同的系统类型中实现。现在参照图5,所示的是根据本发明的一个实施例的系统的框图。如图5所示,多处理器系统500是点对点互连系统,并且包括经由点对点互连550耦合的第一处理器570和第二处理器580。如图5所示,处理器570和580中每一个都可以是多核处理器,包括第一和第二处理器核(即,处理器核574a和574b以及处理器核584a和584b)。注意,每一个核都可响应根据本发明的一实施例的ISA级指令来执行舍入运算。
第一处理器570还包括点对点(P-P)接口576和578。类似地,第二处理器580包括P-P接口586和588。如图5所示,存储控制器集线器(MCH)572和582将处理器耦合到各自的存储器上,即存储器532和存储器534,它们可能是本地连接到各自处理器的主存储器的部分。
第一处理器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可以耦合这些元件。
随后,芯片组590可经由接口596耦合到第一总线516。在一个实施例中,第一总线516可以是外设部件互连(PCI)总线,如由PCI局部总线规范,生产版本,修订版2.1,日期是1995年6月所定义的,或者例如PCIExpressTM总线或者其它第三代输入/输出(I/O)中间联接总线的总线,但本发明的范围不限于此。
如图5所示,各种I/O设备514可耦合到第一总线516,以及总线桥518,其中该总线桥518将第一总线516耦合到第二总线520。在一个实施例中,第二总线520可以是低引脚数(LPC)总线。在一个实施例中,各种设备可以耦合到第二总线520,其中包括例如键盘/鼠标522、通讯装置526以及诸如可包括代码530的磁盘驱动器或者其它大容量存储装置之类的数据存储单元528。此外,音频I/O 524可耦合到第二总线520。注意,其它的体系结构也是可能的。例如,代替图5的点对点体系结构,系统可以实现多点总线或者其它这样的体系结构。
实施例可通过编码来实现,并且可存储在存储介质上,其中已经在该存储介质上存储了用于为系统编制程序使其执行指令的指令。该存储介质可包括但是不局限于任何类型的盘,包括软盘、光盘、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)以及磁光盘、半导体装置例如只读存储器(ROM)、随机存取存储器(RAM)例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁或光卡、或者任何其它类型的适于存储电子指令的介质。
尽管已经针对有限数量的实施例描述了本发明,但是本领域的技术人员能够从其中知道多种修改和变化。所附的权利要求覆盖了落入本发明的真正的精神和范围之内的所有这样的修改和变化。

Claims (32)

1.一种处理器,包括:
控制器,对舍入指令作出响应,如果缺省舍入模式将被替换,该控制器从舍入指令的8比特立即操作数中确定舍入模式,其中舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段,指示缺省舍入模式是否将被替换的替换指示符和指示处理器如何处理精度异常的精度抑制指示符;
第一扩展XMM寄存器,用于存储具有两个打包的64位双精度浮点值的目的操作数;
第二扩展XMM寄存器,用于存储具有两个打包的64位双精度浮点值的源操作数;
多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和
浮点单元,耦合到控制器和第一和第二扩展XMM寄存器,用于按照舍入模式对源操作数执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器。
2.如权利要求1所述的处理器,其特征在于,所述浮点单元还包括:
浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和
浮点舍入器,用于对加法结果进行舍入运算。
3.如权利要求2所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
4.如权利要求1所述的处理器,其特征在于,所述舍入指令包括最接近的偶模式、朝-∞模式、朝+∞模式、截断模式、部分远离0的模式和向远离0的方向舍入中的至少一种模式。
5.一种处理器,包括:
控制器,对舍入指令作出响应,如果缺省舍入模式将被替换,该控制器从舍入指令的8比特立即操作数中确定舍入模式,其中舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段,指示缺省舍入模式是否将被替换的替换指示符和指示处理器如何处理精度异常的精度抑制指示符;
第一扩展XMM寄存器,用于存储具有两个打包的64位双精度浮点值的目的操作数;
其中具有两个打包的64位双精度浮点值的源操作数被存储在128位存储器中;
多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和
浮点单元,耦合到控制器、第一扩展XMM寄存器和存储器,用于按照舍入模式对源操作数执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器。
6.如权利要求5所述的处理器,其特征在于,所述浮点单元还包括:
浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和
浮点舍入器,用于对加法结果进行舍入运算。
7.如权利要求6所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
8.如权利要求5所述的处理器,其特征在于,所述舍入指令包括最接近的偶模式、朝-∞模式、朝+∞模式、截断模式、部分远离0的模式和向远离0的方向舍入中的至少一种模式。
9.一种处理器,包括:
控制器,对舍入指令作出响应,如果缺省舍入模式将被替换,该控制器从舍入指令的8比特立即操作数中确定舍入模式,其中舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段,指示缺省舍入模式是否将被替换的替换指示符和指示处理器如何处理精度异常的精度抑制指示符;
第一扩展XMM寄存器,用于存储具有四个打包的32位单精度浮点值的目的操作数;
第二扩展XMM寄存器,用于存储具有四个打包的32位单精度浮点值的源操作数;
多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和
浮点单元,耦合到控制器和第一和第二扩展XMM寄存器,用于按照舍入模式对源操作数执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器。
10.如权利要求9所述的处理器,其特征在于,所述浮点单元还包括:
浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和
浮点舍入器,用于对加法结果进行舍入运算。
11.如权利要求10所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
12.如权利要求9所述的处理器,其特征在于,所述舍入指令包括最接近的偶模式、朝-∞模式、朝+∞模式、截断模式、部分远离0的模式和向远离0的方向舍入中的至少一种模式。
13.一种处理器,包括:
控制器,对舍入指令作出响应,如果缺省舍入模式将被替换,该控制器从舍入指令的8比特立即操作数中确定舍入模式,其中舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段,指示缺省舍入模式是否将被替换的替换指示符和指示处理器如何处理精度异常的精度抑制指示符;
第一扩展XMM寄存器,用于存储具有四个打包的32位单精度浮点值的目的操作数;
其中具有四个打包的32位单精度浮点值的源操作数被存储在128位存储器中;
多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和
浮点单元,耦合到控制器、第一扩展XMM寄存器和存储器,用于按照舍入模式对源操作数执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器。
14.如权利要求13所述的处理器,其特征在于,所述浮点单元还包括:
浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和
浮点舍入器,用于对加法结果进行舍入运算。
15.如权利要求14所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
16.如权利要求13所述的处理器,其特征在于,所述舍入指令包括最接近的偶模式、朝-∞模式、朝+∞模式、截断模式、部分远离0的模式和向远离0的方向舍入中的至少一种模式。
17.一种处理器,包括:
控制器,对舍入指令作出响应,如果缺省舍入模式将被替换,该控制器从舍入指令的8比特立即操作数中确定舍入模式,其中舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段,指示缺省舍入模式是否将被替换的替换指示符和指示处理器如何处理精度异常的精度抑制指示符;
第一扩展XMM寄存器,用于存储具有两个标量64位双精度浮点值的目的操作数;
第二扩展XMM寄存器,用于存储具有两个标量64位双精度浮点值的源操作数;
多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和
浮点单元,耦合到控制器和第一和第二扩展XMM寄存器,用于按照舍入模式对源操作数的下64位双精度浮点值执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器的最低位置,其中将源操作数的上64位双精度浮点值写入第一扩展XMM寄存器,而不改变。
18.如权利要求17所述的处理器,其特征在于,所述浮点单元还包括:
浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和
浮点舍入器,用于对加法结果进行舍入运算。
19.如权利要求18所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
20.如权利要求17所述的处理器,其特征在于,所述舍入指令包括最接近的偶模式、朝-∞模式、朝+∞模式、截断模式、部分远离0的模式和向远离0的方向舍入中的至少一种模式。
21.一种处理器,包括:
控制器,对舍入指令作出响应,如果缺省舍入模式将被替换,该控制器从舍入指令的8比特立即操作数中确定舍入模式,其中舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段,指示缺省舍入模式是否将被替换的替换指示符和指示处理器如何处理精度异常的精度抑制指示符;
第一扩展XMM寄存器,用于存储具有两个标量64位双精度浮点值的目的操作数;
其中具有两个标量64位双精度浮点值的源操作数被存储在128位存储器中;
多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和
浮点单元,耦合到控制器、第一扩展XMM寄存器和存储器,用于按照舍入模式对源操作数的下64位双精度浮点值执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器的最低位置,其中将源操作数的上64位双精度浮点值写入第一扩展XMM寄存器,而不改变。
22.如权利要求21所述的处理器,其特征在于,所述浮点单元还包括:
浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和
浮点舍入器,用于对加法结果进行舍入运算。
23.如权利要求22所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
24.如权利要求21所述的处理器,其特征在于,所述舍入指令包括最接近的偶模式、朝-∞模式、朝+∞模式、截断模式、部分远离0的模式和向远离0的方向舍入中的至少一种模式。
25.一种处理器,包括:
控制器,对舍入指令作出响应,如果缺省舍入模式将被替换,该控制器从舍入指令的8比特立即操作数中确定舍入模式,其中舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段,指示缺省舍入模式是否将被替换的替换指示符和指示处理器如何处理精度异常的精度抑制指示符;
第一扩展XMM寄存器,用于存储具有四个标量32位单精度浮点值的目的操作数;
第二扩展XMM寄存器,用于存储具有四个标量32位单精度浮点值的源操作数;
多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和
浮点单元,耦合到控制器和第一和第二扩展XMM寄存器,用于按照舍入模式对源操作数的下32位双精度浮点值执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器的最低位置,其中将源操作数的三个上32位单精度浮点值写入第一扩展XMM寄存器,而不改变。
26.如权利要求25所述的处理器,其特征在于,所述浮点单元还包括:
浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和
浮点舍入器,用于对加法结果进行舍入运算。
27.如权利要求26所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
28.如权利要求25所述的处理器,其特征在于,所述舍入指令包括最接近的偶模式、朝-∞模式、朝+∞模式、截断模式、部分远离0的模式和向远离0的方向舍入中的至少一种模式。
29.一种处理器,包括:
控制器,对舍入指令作出响应,如果缺省舍入模式将被替换,该控制器从舍入指令的8比特立即操作数中确定舍入模式,其中舍入指令包括识别源操作数的第一字段,识别目的操作数的第二字段和识别立即操作数的立即字段,其中立即操作数包括指示舍入模式的模式字段,指示缺省舍入模式是否将被替换的替换指示符和指示处理器如何处理精度异常的精度抑制指示符;
第一扩展XMM寄存器,用于存储具有四个标量32位单精度浮点值的目的操作数;
其中具有四个32位单精度浮点值的源操作数被存储在128位存储器中;
多媒体扩展控制和状态寄存器,用于存储缺省舍入模式;和
浮点单元,耦合到控制器、第一扩展XMM寄存器和存储器,用于按照舍入模式对源操作数的下32位单精度浮点值执行舍入运算并将舍入的源操作数写入第一扩展XMM寄存器的最低位置,其中将源操作数的三个上32位单精度浮点值写入第一扩展XMM寄存器,而不改变。
30.如权利要求29所述的处理器,其特征在于,所述浮点单元还包括:
浮点加法器,用来根据所述舍入模式来把预定值加到所述源操作数上;和
浮点舍入器,用于对加法结果进行舍入运算。
31.如权利要求30所述的处理器,其特征在于,根据将被舍入的源操作数和所述舍入模式来确定所述预定值。
32.如权利要求29所述的处理器,其特征在于,所述舍入指令包括最接近的偶模式、朝-∞模式、朝+∞模式、截断模式、部分远离0的模式和向远离0的方向舍入中的至少一种模式。
CN201010200409XA 2006-09-22 2007-09-21 响应指令执行舍入运算 Active CN101882064B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/525,420 US9223751B2 (en) 2006-09-22 2006-09-22 Performing rounding operations responsive to an instruction
US11/525420 2006-09-22

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101701526A Division CN101149674A (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算

Publications (2)

Publication Number Publication Date
CN101882064A CN101882064A (zh) 2010-11-10
CN101882064B true CN101882064B (zh) 2013-11-06

Family

ID=39200854

Family Applications (6)

Application Number Title Priority Date Filing Date
CN201310524726.0A Active CN103593165B (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算
CN201510697468.5A Active CN105573715B (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算
CN201910143641.5A Pending CN109871235A (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算
CN201010200409XA Active CN101882064B (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算
CN201910766458.0A Pending CN110471643A (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算
CNA2007101701526A Pending CN101149674A (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN201310524726.0A Active CN103593165B (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算
CN201510697468.5A Active CN105573715B (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算
CN201910143641.5A Pending CN109871235A (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201910766458.0A Pending CN110471643A (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算
CNA2007101701526A Pending CN101149674A (zh) 2006-09-22 2007-09-21 响应指令执行舍入运算

Country Status (7)

Country Link
US (11) US9223751B2 (zh)
JP (6) JP4990977B2 (zh)
KR (1) KR100947138B1 (zh)
CN (6) CN103593165B (zh)
DE (1) DE112007001989B4 (zh)
RU (2) RU2447484C1 (zh)
WO (1) WO2008036944A1 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223751B2 (en) 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
US8327120B2 (en) * 2007-12-29 2012-12-04 Intel Corporation Instructions with floating point control override
US8046400B2 (en) 2008-04-10 2011-10-25 Via Technologies, Inc. Apparatus and method for optimizing the performance of x87 floating point addition instructions in a microprocessor
CN101930354B (zh) * 2009-07-28 2014-03-12 威盛电子股份有限公司 微处理器及其执行指令的方法
US8407271B2 (en) * 2009-08-28 2013-03-26 Advanced Micro Devices, Inc. Method for floating point round to integer operation
US8914430B2 (en) 2010-09-24 2014-12-16 Intel Corporation Multiply add functional unit capable of executing scale, round, GETEXP, round, GETMANT, reduce, range and class instructions
EP3805921B1 (en) 2011-04-01 2023-09-06 INTEL Corporation Vector friendly instruction format and execution thereof
US10209986B2 (en) * 2011-12-22 2019-02-19 Intel Corporation Floating point rounding processors, methods, systems, and instructions
WO2013101119A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Method and apparatus for controlling a mxcsr
EP2798466B1 (en) * 2011-12-30 2017-12-13 Intel Corporation Floating point round-off amount determination processors, methods, systems, and instructions
KR101835494B1 (ko) * 2013-11-27 2018-03-08 인텔 코포레이션 프로세서의 버퍼의 자율 제어
CN106406810B (zh) * 2014-07-02 2019-08-06 上海兆芯集成电路有限公司 微处理器及其方法
US9817661B2 (en) * 2015-10-07 2017-11-14 Arm Limited Floating point number rounding
CN106485318B (zh) * 2015-10-08 2019-08-30 上海兆芯集成电路有限公司 具有混合协处理器/执行单元神经网络单元的处理器
US20170177336A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Hardware cancellation monitor for floating point operations
US9996319B2 (en) * 2015-12-23 2018-06-12 Intel Corporation Floating point (FP) add low instructions functional unit
US20180173527A1 (en) * 2016-12-15 2018-06-21 Optimum Semiconductor Technologies, Inc. Floating point instruction format with embedded rounding rule
US10725739B2 (en) 2017-06-23 2020-07-28 International Business Machines Corporation Compiler controls for program language constructs
US10379851B2 (en) 2017-06-23 2019-08-13 International Business Machines Corporation Fine-grained management of exception enablement of floating point controls
US10481908B2 (en) 2017-06-23 2019-11-19 International Business Machines Corporation Predicted null updated
US10740067B2 (en) 2017-06-23 2020-08-11 International Business Machines Corporation Selective updating of floating point controls
US10310814B2 (en) 2017-06-23 2019-06-04 International Business Machines Corporation Read and set floating point control register instruction
US10514913B2 (en) 2017-06-23 2019-12-24 International Business Machines Corporation Compiler controls for program regions
US10684852B2 (en) 2017-06-23 2020-06-16 International Business Machines Corporation Employing prefixes to control floating point operations
US11372643B2 (en) 2018-11-09 2022-06-28 Intel Corporation Systems and methods for performing instructions to convert to 16-bit floating-point format
US11366663B2 (en) 2018-11-09 2022-06-21 Intel Corporation Systems and methods for performing 16-bit floating-point vector dot product instructions
US10908878B2 (en) * 2018-11-26 2021-02-02 Nvidia Corporation Dynamic directional rounding
US11099853B2 (en) * 2019-02-15 2021-08-24 International Business Machines Corporation Digit validation check control in instruction execution
CN110134436B (zh) * 2019-05-05 2021-03-02 飞依诺科技(苏州)有限公司 超声数据打包处理方法及系统
US11327923B2 (en) 2019-09-04 2022-05-10 SambaNova Systems, Inc. Sigmoid function in hardware and a reconfigurable data processor including same
US11327713B2 (en) 2019-10-01 2022-05-10 SambaNova Systems, Inc. Computation units for functions based on lookup tables
US11328038B2 (en) 2019-11-25 2022-05-10 SambaNova Systems, Inc. Computational units for batch normalization
US11150872B2 (en) * 2019-12-17 2021-10-19 SambaNova Systems, Inc. Computational units for element approximation
CN113031914B (zh) * 2019-12-24 2023-05-16 龙芯中科技术股份有限公司 浮点舍入模式的控制方法、装置、设备及存储介质
US11836629B2 (en) 2020-01-15 2023-12-05 SambaNova Systems, Inc. Computationally efficient softmax loss gradient backpropagation
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
US20220414182A1 (en) * 2021-06-26 2022-12-29 Intel Corporation Apparatuses, methods, and systems for instructions for matrix multiplication instructions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503150A (zh) * 2002-11-19 2004-06-09 ��ʽ���綫֥ 多处理器系统中的任务分配方法和多处理器系统

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56135236A (en) * 1980-03-24 1981-10-22 Casio Comput Co Ltd Numeric data displaying system
JPH0469734A (ja) * 1990-07-11 1992-03-04 Toshiba Corp 浮動小数点加減算のアンダーフロー例外発生予測回路
RU2018921C1 (ru) * 1992-06-19 1994-08-30 Институт точной механики и вычислительной техники им.С.А.Лебедева РАН Устройство для нормализации и округления вещественных чисел
US5450607A (en) 1993-05-17 1995-09-12 Mips Technologies Inc. Unified floating point and integer datapath for a RISC processor
US5516658A (en) * 1993-08-20 1996-05-14 Immunex Corporation DNA encoding cytokines that bind the cell surface receptor hek
US5404324A (en) * 1993-11-01 1995-04-04 Hewlett-Packard Company Methods and apparatus for performing division and square root computations in a computer
US5487022A (en) 1994-03-08 1996-01-23 Texas Instruments Incorporated Normalization method for floating point numbers
EP0685794A1 (en) * 1994-06-01 1995-12-06 Advanced Micro Devices, Inc. System for generating floating point test vectors
US5631859A (en) * 1994-10-27 1997-05-20 Hewlett-Packard Company Floating point arithmetic unit having logic for quad precision arithmetic
US5696709A (en) * 1995-03-31 1997-12-09 International Business Machines Corporation Program controlled rounding modes
US5812439A (en) * 1995-10-10 1998-09-22 Microunity Systems Engineering, Inc. Technique of incorporating floating point information into processor instructions
JPH09128217A (ja) * 1995-10-31 1997-05-16 Hitachi Ltd 丸め処理回路
US5886915A (en) * 1995-11-13 1999-03-23 Intel Corporation Method and apparatus for trading performance for precision when processing denormal numbers in a computer system
US6012139A (en) * 1996-01-31 2000-01-04 Hitachi Micro Systems, Inc. Microprocessor including floating point unit with 16-bit fixed length instruction set
US6128726A (en) * 1996-06-04 2000-10-03 Sigma Designs, Inc. Accurate high speed digital signal processor
US5838984A (en) * 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5782304A (en) 1996-11-26 1998-07-21 Garcia-Soule; Virgilio Normally closed retainer valve with fail-safe pump through capability
US6058410A (en) * 1996-12-02 2000-05-02 Intel Corporation Method and apparatus for selecting a rounding mode for a numeric operation
JPH10187416A (ja) 1996-12-20 1998-07-21 Nec Corp 浮動小数点演算装置
US6233672B1 (en) * 1997-03-06 2001-05-15 Advanced Micro Devices, Inc. Piping rounding mode bits with floating point instructions to eliminate serialization
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6055555A (en) 1997-12-29 2000-04-25 Intel Corporation Interface for performing parallel arithmetic and round operations
US6044454A (en) 1998-02-19 2000-03-28 International Business Machines Corporation IEEE compliant floating point unit
US6292815B1 (en) 1998-04-30 2001-09-18 Intel Corporation Data conversion between floating point packed format and integer scalar format
US6282634B1 (en) 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
JP2000010762A (ja) * 1998-06-19 2000-01-14 Mitsubishi Electric Corp 浮動小数点演算装置
US7346643B1 (en) 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
JP2001236206A (ja) 1999-10-01 2001-08-31 Hitachi Ltd データのロード方法及びその記憶方法、データワードのロード方法及びその記憶方法、並びに、浮動小数点数の比較方法
US6571265B1 (en) * 1999-10-29 2003-05-27 Intel Corporation Mechanism to detect IEEE underflow exceptions on speculative floating-point operations
US6820106B1 (en) * 2000-06-27 2004-11-16 Intel Corporation Method and apparatus for improving the performance of a floating point multiplier accumulator
US6879992B2 (en) 2000-12-27 2005-04-12 Intel Corporation System and method to efficiently round real numbers
US6996591B2 (en) 2000-12-27 2006-02-07 Intel Corporation System and method to efficiently approximate the term 2x
US6889242B1 (en) * 2001-06-29 2005-05-03 Koninklijke Philips Electronics N.V. Rounding operations in computer processor
WO2003038092A1 (en) * 2001-11-01 2003-05-08 Sympore Gmbh Method for identifying transport proteins
US7120755B2 (en) * 2002-01-02 2006-10-10 Intel Corporation Transfer of cache lines on-chip between processing cores in a multi-core system
US7529912B2 (en) * 2002-02-12 2009-05-05 Via Technologies, Inc. Apparatus and method for instruction-level specification of floating point format
CN1503160A (zh) 2002-11-20 2004-06-09 英业达股份有限公司 计算机可执行的电子书阅读界面的自动排版方法
US7523152B2 (en) * 2002-12-26 2009-04-21 Intel Corporation Methods for supporting extended precision integer divide macroinstructions in a processor
US7290023B2 (en) 2003-11-20 2007-10-30 International Business Machines Corporation High performance implementation of exponent adjustment in a floating point design
US7380240B2 (en) 2003-12-23 2008-05-27 Intel Corporation Apparatus and methods to avoid floating point control instructions in floating point to integer conversion
JP4477959B2 (ja) * 2004-07-26 2010-06-09 独立行政法人理化学研究所 ブロードキャスト型並列処理のための演算処理装置
US20060095714A1 (en) * 2004-11-03 2006-05-04 Stexar Corporation Clip instruction for processor
US7447725B2 (en) * 2004-11-05 2008-11-04 International Business Machines Corporation Apparatus for controlling rounding modes in single instruction multiple data (SIMD) floating-point units
US9223751B2 (en) * 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503150A (zh) * 2002-11-19 2004-06-09 ��ʽ���綫֥ 多处理器系统中的任务分配方法和多处理器系统

Also Published As

Publication number Publication date
CN101882064A (zh) 2010-11-10
JP2018139134A (ja) 2018-09-06
JP6487097B2 (ja) 2019-03-20
JP2016058098A (ja) 2016-04-21
US20170220348A1 (en) 2017-08-03
US20170322805A1 (en) 2017-11-09
US20210216314A1 (en) 2021-07-15
US20170220349A1 (en) 2017-08-03
DE112007001989B4 (de) 2019-04-18
US20130191433A1 (en) 2013-07-25
JP6333439B2 (ja) 2018-05-30
CN110471643A (zh) 2019-11-19
US10114641B2 (en) 2018-10-30
US20170322802A1 (en) 2017-11-09
DE112007001989T5 (de) 2009-06-18
CN103593165B (zh) 2017-10-24
JP6162203B2 (ja) 2017-07-12
JP5851536B2 (ja) 2016-02-03
JP5475746B2 (ja) 2014-04-16
US20170322803A1 (en) 2017-11-09
US10108416B2 (en) 2018-10-23
CN105573715B (zh) 2019-09-13
RU2447484C1 (ru) 2012-04-10
US20080077779A1 (en) 2008-03-27
CN109871235A (zh) 2019-06-11
JP4990977B2 (ja) 2012-08-01
JP2012043479A (ja) 2012-03-01
US10114640B2 (en) 2018-10-30
CN101149674A (zh) 2008-03-26
RU2420790C2 (ru) 2011-06-10
KR20080027454A (ko) 2008-03-27
RU2009115188A (ru) 2010-10-27
US9286267B2 (en) 2016-03-15
CN105573715A (zh) 2016-05-11
US20170220347A1 (en) 2017-08-03
US10067761B2 (en) 2018-09-04
RU2011102731A (ru) 2012-03-20
US20160139918A1 (en) 2016-05-19
US20170322804A1 (en) 2017-11-09
CN103593165A (zh) 2014-02-19
WO2008036944A1 (en) 2008-03-27
JP2017157225A (ja) 2017-09-07
JP2010503935A (ja) 2010-02-04
US9223751B2 (en) 2015-12-29
JP2014123390A (ja) 2014-07-03
KR100947138B1 (ko) 2010-03-12

Similar Documents

Publication Publication Date Title
CN101882064B (zh) 响应指令执行舍入运算
CN107077416B (zh) 用于以选择性舍入模式进行向量处理的装置和方法
EP3555742B1 (en) Floating point instruction format with embedded rounding rule
CN111656367A (zh) 神经网络加速器的系统和体系结构
CN102356378B (zh) 具有隐式混合正负号操作数的数字信号处理引擎
US9104479B2 (en) Apparatus and method for rounding a floating-point value to an integral floating-point value
CN112394904A (zh) 一种浮点数据处理方法、运算器及电子设备
US11704092B2 (en) High-precision anchored-implicit processing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant