Detection of potential need to use a larger data format in performing floating point operations

US9880840B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9880840-B2
Application numberUS-201414193322-A
CountryUS
Kind codeB2
Filing dateFeb 28, 2014
Priority dateApr 25, 2007
Publication dateJan 30, 2018
Grant dateJan 30, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Detection of whether a result of a floating point operation is safe. Characteristics of the result are examined to determine whether the result is safe or potentially unsafe, as defined by the user. An instruction is provided to facilitate detection of safe or potentially unsafe results.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for determining whether a decimal floating point number is safe or unsafe, said method comprising: obtaining, by a processor of a processing environment, a machine instruction for execution, the machine instruction comprising an opcode, a register field, an index field, a base field and a displacement value; and obtaining, by the processor, a first operand in a decimal floating point format, the first operand included in a register specified by the register field; performing, by the processor, a function defined by the opcode of the machine instruction of determining whether the first operand is a safe decimal floating point number or is a potentially unsafe decimal floating point number, said function comprising: determining, by the processor, a data group and a sign for the first operand; determining, by the processor, a plurality of second operand bits using the index field, base field and displacement value of the machine instruction, each bit of the plurality of second operand bits corresponding to a data group and sign combination; selecting, by the processor, a bit of the plurality of second operand bits based on the data group and sign determined for the first operand; determining, by the processor, a value of the selected bit; and setting, by the processor, a condition code based on the value of the selected bit, the condition code indicating whether a result of a floating point operation is safe or potentially unsafe wherein unsafe indicates that use of a larger data format would produce a different value or quantum. 2. The method of claim 1 , wherein the register specified by the register field comprises a floating point register. 3. The method of claim 1 , wherein the contents of a register specified by the index field, the contents of a register specified by the base field, and the displacement value are added together to produce a result comprising 64 bits, and wherein bits 0 - 51 are ignored, the plurality of second operand bits comprise bits 52 - 63 , and wherein each bit of bits 52 - 63 corresponds to a particular data group and sign combination. 4. The method of claim 3 , wherein: bit 52 corresponds to a data group having the characteristics of finite number, zero significand, and nonextreme exponent, and to a sign of positive; bit 53 corresponds to a data group having the characteristics of finite number, zero significand, and nonextreme exponent, and to a sign of negative; bit 54 corresponds to a data group having the characteristics of finite number, zero significand, and extreme exponent, and to a sign of positive; bit 55 corresponds to a data group having the characteristics of finite number, zero significand, and extreme exponent, and to a sign of negative; bit 56 corresponds to a data group having the characteristics of finite number, nonzero significand, and extreme exponent, and to a sign of positive; bit 57 corresponds to a data group having the characteristics of finite number, nonzero significand, and extreme exponent, and to a sign of negative; bit 58 corresponds to a data group having the characteristics of finite number, nonzero significand, nonextreme exponent, and zero leftmost digit in the significand, and to a sign of positive; bit 59 corresponds to a data group having the characteristics of finite number, nonzero significand, nonextreme exponent, and zero leftmost digit in the significand, and to a sign of negative; bit 60 corresponds to a data group having the characteristics of finite number, nonzero significand, nonextreme exponent and nonzero leftmost digit in the significand, and to a sign of positive; bit 61 corresponds to a data group having the characteristics of finite number, nonzero significand, nonextreme exponent and nonzero leftmost digit in the significand, and to a sign of negative; bit 62 corresponds to a data group having the characteristics of infinity or not a number, and to a sign of positive; and bit 63 corresponds to a data group having the characteristics of infinity or not a number, and to a sign of negative. 5. The method of claim 1 , wherein the condition code indicates whether characteristics of a value specified in the first operand match one or more selected conditions, and wherein a match indicates the value is safe or potentially unsafe depending on the selected conditions. 6. The method of claim 1 , wherein the machine instruction comprises 48 bits, and wherein the opcode comprises bit 0 - 7 and 40 - 47 , the register field comprises bits 8 - 11 , the index field comprises bits 12 - 15 , the base field comprises bits 16 - 19 , and the displacement field comprises bits 20 - 31 . 7. The method of claim 1 , wherein the computer architecture is the IBM® z/Architecture, and wherein the machine instruction has an RXE format according to the IBM® z/Architecture. 8. The method of claim 1 , wherein safe indicates that use of a larger data format would not produce a different value or quantum. 9. The method of claim 1 , wherein the machine instruction is in a format of one architecture and is emulated to execute on a processor having another architecture, said another architecture being different from said one architecture.

Assignees

Inventors

Classifications

  • Arrangements for executing specific machine instructions · CPC title

  • Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title

  • Recovery, e.g. branch miss-prediction, exception handling (error detection or correction G06F11/00) · CPC title

  • G06F7/491Primary

    Computations with decimal numbers {radix 12 or 20. (G06F7/4824 takes precedence)} · CPC title

  • with variable precision · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9880840B2 cover?
Detection of whether a result of a floating point operation is safe. Characteristics of the result are examined to determine whether the result is safe or potentially unsafe, as defined by the user. An instruction is provided to facilitate detection of safe or potentially unsafe results.
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F7/491. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 30 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).