IP Library Granted Patent US 8,185,723
Granted Patent B2
US 8,185,723 · App. 10/483,279 · Granted May 22, 2012

Method and apparatus to extract integer and fractional components from floating-point data

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,185,723
App. No.
10/483,279
Granted
May 22, 2012
Kind
B2
Abstract

A method is presented including decomposing a first value into many parts. Decomposing includes shifting ( 310 ) a rounded integer portion of the first value to generate a second value. Generating ( 320 ) a third value. Extracting ( 330 ) a plurality of significand bits from the second value to generate a fourth value. Extracting ( 340 ) a portion of bits from the fourth value to generate an integer component. Generating ( 350 ) a fifth value. Also the third value, the fifth value, and the integer component are either stored ( 360, 380 ) in a memory or transmitted to an arithmetic logical unit (ALU).

Claims (38)

1. A method comprising:

loading a first value into a computer processor, the first value being a floating point number, the computer processor including a plurality of arithmetic logical units (ALUs) including one or more floating point arithmetic logical units (FALUs), wherein a floating point number comprises a sign bit, a first plurality of exponent bits, and a second plurality of significand bits and wherein an integer comprises a plurality of bits, the first value being represented by a value x times a constant A;

decomposing the first value into integer and fractional parts, the decomposing of the first value comprising:

shifting a rounded integer portion of the first value to generate a second value in a first floating point ALU operation, where the shifting provides an addition of a constant S value to the first value, wherein the rounded integer portion is shifted into rightmost bits of the significand of the first value,

generating a third value n f from the second value in a second floating point ALU operation, the third value generated by subtracting the constant S from the second value to generate an integer,

extracting a plurality of significand bits from the second value to generate a fourth value in a first integer ALU operation,

generating a fifth value r from the third value in a third floating point ALU operation, the fifth value being generated by subtracting the third value times a constant B from x, where B=1/A, and

extracting a portion of bits from the fourth value to generate an integer component in a second integer ALU operation;

wherein the transformed representation of the first value represented by the third value, the fifth value, and the integer component are stored in a memory or transmitted to an ALU.

2. The method of claim 1 , further comprising: generating the constant S.

3. The method of claim 2 , wherein generating the constant S includes generating a constant so that adding the constant S to the first value shifts the rounded integer portion into the rightmost bits of the significand of the first value.

4. An apparatus comprising a non-transitory machine-readable storage medium containing instructions which, when executed by a machine, cause the machine to perform operations comprising:

loading a first value into a computer processor, the first value being a floating point number, the computer processor including a plurality of arithmetic logical units (ALUs) including one or more floating point arithmetic logical units (FALUs), wherein a floating point number comprises a sign bit, a first plurality of exponent bits, and a second plurality of significand bits and wherein an integer comprises a plurality of bits, the first value being represented by a value x times a constant A;

decomposing the first value into integer and fractional of parts, the instructions that cause the machine to perform decomposing operations further includes operations including:

generating a first constant S;

shifting a rounded integer portion of the first value to generate a second value in a first FALU operation, where the shifting provides an addition of the constant S value to the first value, wherein the rounded integer portion is shifted into rightmost bits of the significand of the first value,

generating a third value n f from the second value in a second FALU operation, the third value generated by subtracting the constant S from the second value to generate an integer,

extracting a plurality of significand bits from the second value to generate a fourth value in a first IALU operation,

generating a fifth value r from the third value in a third FALU operation, the fifth value being generated by subtracting the third value times a constant B from x, where B=1/A, and

extracting a portion of bits from the fourth value to generate an integer component in a second IALU operation;

wherein the transformed representation of the first value represented by the third value, the fifth value, and the integer component are stored in a memory or transmitted to an ALU.

5. An apparatus comprising:

a processor, the processor having a computational component;

a bus coupled to the processor; a memory coupled to the processor;

a plurality of arithmetic logical units (ALUs) coupled to the processor including one or more floating point ALUs (FALUs); and

a plurality of register sets coupled to the plurality of ALUs;

wherein the computational component is operable to:

load a first value into a computer processor, the first value being a floating point number,

wherein a floating point number comprises a sign bit, a first plurality of exponent bits, and a second plurality of significand bits and wherein an integer comprises a plurality of bits, the first value being represented by a value x times a constant A; and

decompose the first value into integer and fractional parts, the decomposing of the first value comprising:

shifting a rounded integer portion of the first value to generate a second value in a first floating point ALU operation, where the shifting provides an addition of a constant S value to the first value, wherein the rounded integer portion is shifted into rightmost bits of the significand of the first value,

generating a third value n f from the second value in a second floating point ALU operation, the third value generated by subtracting the constant S from the second value to generate an integer,

extracting a plurality of significand bits from the second value to generate a fourth value in a first integer ALU operation,

generating a fifth value r from the third value in a third floating point ALU operation, the fifth value being generated by subtracting the third value times a constant B from x, where B=1/A, and

extracting a portion of bits from the fourth value to generate an integer component in a second integer ALU operation;

wherein the transformed representation of the first value represented by the third value, the fifth value, and the integer component are stored in a memory or transmitted to an ALU.

6. The apparatus of claim 5 , wherein the constant S is generated such that adding the constant S to the first value shifts the rounded integer portion into the rightmost bits of the significand of the first value.

7. The apparatus of claim 4 , wherein generating the constant S comprises generating a constant such that when added to the first value produces a shift of the rounded integer portion into the rightmost bits of the significand of the first value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2016
From: INTEL CORPORATION
To: BEIJING XIAOMI MOBILE SOFTWARE CO., LTD.
Reel/Frame 037733/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2007
From: DRYZHAKOVA, OLGA
To: INTEL CORPORATION
Reel/Frame 018854/0834 →