IP Library › Granted Patent US 9,628,107
Granted Patent B2
US 9,628,107 · App. 14/246,725 · Granted Apr 18, 2017

Compression of floating-point data by identifying a previous loss of precision

Inventor: Garth A. Dickie (Framingham, MA)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H03M7/00G06F7/483H03M7/24
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 9,628,107
App. No.
14/246,725
Granted
Apr 18, 2017
Kind
B2
Abstract

Each binary floating-point value in a set of binary floating-point values is converted to a decimal floating-point value. Data are determined including an exponent, a mantissa and a quantity of decimal digits of the mantissa for each decimal floating-point value. The exponents, the mantissas and the quantity of decimal digits are individually compressed to produce compressed floating-point values based on the individual compressions.

Claims (50)

1. A system for compressing floating-point data, the system comprising:

at least one processor configured to:

convert each binary floating-point value in a set of binary floating-point values to a decimal floating-point value;

determine data for each decimal floating-point value including an exponent, a mantissa, and a quantity of decimal digits of the mantissa; and

individually compress the exponents, the mantissas and the quantity of decimal digits of the decimal floating-point values and produce compressed floating-point values based on the individual compressions.

2. The system of claim 1 , wherein the converting includes:

generating a mantissa with a minimum number of digits; and

wherein the determining data includes:

determining whether one or more of the exponent and the quantity of decimal digits are constant for the decimal floating-point values.

3. The system of claim 1 , wherein the individually compressing includes:

analyzing the determined data to identify reduced precision within the decimal floating-point values and producing the compressed floating-point values based on the reduced precision.

4. The system of claim 1 , wherein the converting includes at least one from the group of:

normalizing a position of a decimal point; and

normalizing a length of a mantissa.

5. The system of claim 1 , wherein the individually compressing includes:

compressing the exponents, the mantissas and the quantity of decimal digits of the decimal floating-point values using a plurality of compression formats.

6. The system of claim 5 , wherein the individually compressing further includes:

selecting a compressed exponent, a compressed mantissa and a compressed quantity of decimal digits with a shortest bit length from results of the compressing using the plurality of compression formats.

7. The system of claim 5 , wherein each converted binary floating-point value comprises a corresponding set of the exponent, the mantissa and the quantity of decimal digits to form a data triplet for the individually compressing the exponents, the mantissas and the quantity of decimal digits, and the at least one processor is further configured to:

process each data triplet among plural parallel processing paths, wherein each processing path includes one or more from the group of:

compressing the values in each data triplet;

normalizing the exponent in each data triplet and compressing the values in each data triplet;

normalizing the mantissa length in each data triplet and compressing the values in each data triplet; and

normalizing the exponent and the mantissa length in each data triplet and compressing the values in each data triplet; and

select a compressed data triplet comprising a shortest bit length from among the compressed data triplets processed among the plural parallel processing paths.

8. A computer program product for compressing floating-point data, the computer program product comprising:

a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising computer readable program code configured to:

convert each binary floating-point value in a set of binary floating-point values to a decimal floating-point value;

determine data for each decimal floating-point value including an exponent, a mantissa, and a quantity of decimal digits of the mantissa; and

individually compress the exponents, the mantissas and the quantity of decimal digits of the decimal floating-point values and produce compressed floating-point values based on the individual compressions.

9. The computer program product of claim 8 , wherein the converting includes:

generating a mantissa with a minimum number of digits; and

wherein the determining data includes:

determining whether one or more of the exponent and the quantity of decimal digits are constant for the decimal floating-point values.

10. The computer program product of claim 8 , wherein the individually compressing includes:

analyzing the determined data to identify reduced precision within the decimal floating-point values and producing the compressed floating-point values based on the reduced precision.

11. The computer program product of claim 8 , wherein the individually compressing includes:

compressing the exponents, the mantissas and the quantity of decimal digits of the decimal floating-point values using a plurality of compression formats.

12. The computer program product of claim 11 , wherein the computer readable program code further comprises computer readable program code configured to:

select a compressed exponent, a compressed mantissa and a compressed quantity of decimal digits with a shortest bit length from results of the compressing using the plurality of compression formats.

13. The computer program product of claim 8 , wherein each converted binary floating-point value comprises a corresponding set of the exponent, the mantissa and the quantity of decimal digits to form a data triplet for the individually compressing the exponents, the mantissas and the quantity of decimal digits, and the computer readable program code further comprises computer readable program code configured to:

process each data triplet among plural parallel processing paths, wherein each processing path includes one or more from the group of:

compressing the values in each data triplet;

normalizing the determined exponent in each data triplet and compressing the values in each data triplet;

normalizing the mantissa length in each data triplet and compressing the values in each data triplet; and

normalizing the determined exponent and the mantissa length in each data triplet and compressing the values in each data triplet; and

select a compressed data triplet comprising a shortest bit length from among the compressed data triplets processed among the plural parallel processing paths.

14. The computer program product of claim 8 , wherein the converting includes at least one from the group of:

normalizing a position of a decimal point; and

normalizing a length of a mantissa.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2014
From: DICKIE, GARTH A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032619/0362 →
Continuity (1)
Related Publication 20150286465A1 · Oct 8, 2015