IP Library Granted Patent US 12,190,078
Granted Patent B2
US 12,190,078 · App. 17/705,036 · Granted Jan 7, 2025

Rounding hexadecimal floating point numbers using binary incrementors

Inventors: Michael Klein (Schoenaich, DE); Petra Leber (Ehningen, DE); Cedric Lichtenau (Stuttgart, DE); Stefan Payer (Stuttgart, DE); Kerstin Claudia Schelm (Stuttgart, DE)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F7/49947G06F7/4836G06F2207/3844
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 12,190,078
App. No.
17/705,036
Granted
Jan 7, 2025
Kind
B2
Abstract

Rounding hexadecimal floating point numbers using binary incrementors, including: incrementing, by a first incrementor, a first subset of bits of an operand comprising a binary hexadecimal floating point operand; incrementing, by a second incrementor, a second subset of bits of the operand; generate an intermediate result based on a carryout of the second incrementor; and generate an incremented result based on a carryout of the first incrementor and one or more of: a first bit of the intermediate result or the carryout of the second incrementor.

Claims (74)

1. A method of rounding hexadecimal floating point numbers using binary incrementors, the method comprising:

incrementing, by a first incrementor, a first subset of bits of an operand comprising a binary hexadecimal floating point operand;

incrementing, by a second incrementor, a second subset of bits of the operand;

generating, by a multiplexor, an intermediate result based on a carryout of the second incrementor;

generating, by correction logic if a carryout of the first incrementor is set, an incremented result based on the carryout of the first incrementor and one or more of: a first bit of the intermediate result or the carryout of the second incrementor; and

generating, by the correction logic if the carryout of the first incrementor is not set, the incremented result based on whether the first bit of the intermediate result is set.

2. The method of claim 1 , wherein generating the intermediate result comprises:

including, in the intermediate result, a non-incremented first subset of bits of the operand responsive to the carryout of the second incrementor not being set;

including, in the intermediate result, an incremented first subset of bits of the operand responsive to the carryout of the second incrementor being set; and

including, in the intermediate result, an incremented second subset of bits of the operand.

3. The method of claim 1 , wherein generating the incremented result comprises:

responsive to the carryout of the first incrementor being set and the carryout of the second incrementor being set:

generating, as a fraction component of the incremented result, a first predefined portion of leading bits and the intermediate result excluding an output of the second incrementor; and

incrementing an exponent component of the operand.

4. The method of claim 1 , wherein generating the incremented result comprises:

responsive to the carryout of the first incrementor not being set and the first bit of the intermediate result being set:

generating, as a fraction component of the incremented result, a second predefined portion of leading bits and the intermediate result excluding an output of the second incrementor; and

incrementing an exponent component of the operand.

5. The method of claim 1 , wherein generating the incremented result comprises:

responsive to the carryout of the first incrementor not being set and the first bit of the intermediate result not being set, generating, as a fraction component of the incremented result, the intermediate result excluding the first bit of the intermediate result.

6. The method of claim 1 , wherein the second subset of bits of the operand comprises a four least significant bits of the operand.

7. The method of claim 6 , wherein the second incrementor comprises a four-bit incrementor.

8. The method of claim 1 , wherein the first incrementor comprises a fifty-three-bit incrementor.

9. A chip for rounding hexadecimal floating point numbers using binary incrementors, comprising:

a first incrementor;

a second incrementor;

correction logic; and

a multiplexor, wherein:

the first incrementor increments a first subset of bits of an operand comprising a binary hexadecimal floating point operand;

the second incrementor increments a second subset of bits of the operand;

the multiplexor receives a non-incremented first subset of bits and the incremented first subset of bits and generates an intermediate result based on a carryout of the second incrementor;

the correction logic generates an incremented result if a carryout of the first incrementor is set based on the carryout of the first incrementor and one or more of: a first bit of the intermediate result or the carryout of the second incrementor; and

the correction logic generates the incremented result if the carryout of the first incrementor is not set based on whether the first bit of the intermediate result is set.

10. The chip of claim 9 , wherein the multiplexor generates the intermediate result by:

including, in the intermediate result, the non-incremented first subset of bits of the operand responsive to the carryout of the second incrementor not being set;

including, in the intermediate result, the incremented first subset of bits of the operand responsive to the carryout of the second incrementor being set; and

including, in the intermediate result, the incremented second subset of bits of the operand.

11. The chip of claim 9 , wherein the correction logic generates the incremented result by:

responsive to the carryout of the first incrementor being set and the carryout of the second incrementor being set:

generating, as a fraction component of the incremented result, a first predefined portion of leading bits and the intermediate result excluding an output of the second incrementor; and

incrementing an exponent component of the operand.

12. The chip of claim 9 , wherein the correction logic generates the incremented result by:

responsive to the carryout of the first incrementor not being set and the first bit of the intermediate result being set:

generating, as a fraction component of the incremented result, a second predefined portion of leading bits and the intermediate result excluding an output of the second incrementor; and

incrementing an exponent component of the operand.

13. The chip of claim 9 , wherein the correction logic generates the incremented result by:

responsive to the carryout of the first incrementor not being set and the first bit of the intermediate result not being set, generating, as a fraction component of the incremented result, the intermediate result excluding the first bit of the intermediate result.

14. The chip of claim 9 , wherein the second subset of bits of the operand comprises a four least significant bits of the operand.

15. The chip of claim 14 , wherein the second incrementor comprises a four-bit incrementor.

16. The chip of claim 9 , wherein the first incrementor comprises a fifty-three-bit incrementor.

17. An apparatus for comprising:

a processor; and

memory coupled to the processor, wherein the processor comprises:

a first incrementor;

a second incrementor;

correction logic; and

a multiplexor, and wherein:

the first incrementor increments a first subset of bits of an operand comprising a binary hexadecimal floating point operand;

the second incrementor increments a second subset of bits of the operand;

the multiplexor receives a non-incremented first subset of bits and the incremented first subset of bits and generates an intermediate result based on a carryout of the second incrementor;

the correction logic generates an incremented result if a carryout of the first incrementor is set based on the carryout of the first incrementor and one or more of: a first bit of the intermediate result or the carryout of the second incrementor; and

the correction logic generates the incremented result if the carryout of the first incrementor is not set based on whether the first bit of the intermediate result is set.

18. The apparatus of claim 17 , wherein the multiplexor generates the intermediate result by:

including, in the intermediate result, the non-incremented first subset of bits of the operand responsive to the carryout of the second incrementor not being set;

including, in the intermediate result, the incremented first subset of bits of the operand responsive to the carryout of the second incrementor being set; and

including, in the intermediate result, the incremented second subset of bits of the operand.

19. The apparatus of claim 17 , wherein the correction logic generates the incremented result by:

responsive to the carryout of the first incrementor being set and the carryout of the second incrementor being set:

generating, as a fraction component of the incremented result, a first predefined portion of leading bits and the intermediate result excluding an output of the second incrementor; and

incrementing an exponent component of the operand.

20. The apparatus of claim 17 , wherein the correction logic generates the incremented result by:

responsive to the carryout of the first incrementor not being set and the first bit of the intermediate result being set:

generating, as a fraction component of the incremented result, a second predefined portion of leading bits and the intermediate result excluding an output of the second incrementor; and

incrementing an exponent component of the operand.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2022
From: KLEIN, MICHAEL; LEBER, PETRA; LICHTENAU, CEDRIC; PAYER, STEFAN; SCHELM, KERSTIN CLAUDIA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 059590/0518 →
Continuity (1)
Related Publication 20230315386A1 · Oct 5, 2023
References Cited (22)
US 5373461A · Bearden · 1994 [cited by examiner]
US 5781464A · Mehta · 1998 [cited by examiner]
US 5917741A · Ng · 1999 [cited by applicant]
US 6175847B1 · Brooks et al. · 2001 [cited by applicant]
US 7290023B2 · Dhong et al. · 2007 [cited by applicant]
US 11175891B2 · Rubanovich et al. · 2021 [cited by applicant]
US 20020095451A1 · Krygowski · 2002 [cited by examiner]
US 20120011185A1 · Mohamed et al. · 2012 [cited by applicant]
US 20180373533A1 · Gschwind et al. · 2018 [cited by applicant]
US 20200348908A1 · Schelm et al. · 2020 [cited by applicant]
US 20210042088A1 · Mueller et al. · 2021 [cited by applicant]
CN 1619484A · 2005 [cited by applicant]
CN 111767516A · 2020 [cited by applicant]
E. M. Schwarz, R. M. Smith and C. A. Krygowski, “The S/390 G5 floating point unit supporting hex and binary architectures,” Proceedings 14th IEEE Symposium on Computer Arithmetic (Cat. No. 99CB36336), Adelaide, SA, Aust… [cited by examiner]
G. Gerwig et al., “The IBM eServer z990 floating-point unit,” in IBM Journal of Research and Development, vol. 48, No. 3.4, pp. 311-322, May 2004, doi: 10.1147/rd.483.0311. (Year: 2004). [cited by examiner]
B. R. Sheikh and R. Manohar, “An Operand-Optimized Asynchronous IEEE 754 Double-Precision Floating-Point Adder,” 2010 IEEE Symposium on Asynchronous Circuits and Systems, Grenoble, France, 2010, pp. 151-162, doi: 10.110… [cited by examiner]
AWS, Hybrid Cloud with AWS, URL: https://aws.amazon.com/hybrid/?nc1=h_ls, printed Feb. 3, 2022, 19 pages. [cited by applicant]
Finney et al., Rounding IEEE Floating Point Results, IBM, An IP.com Prior Art Database Technical Disclosure, IP.com No. IPCOM000044048D, Original Publication Date: Oct. 1, 1984, IP.com Electronic Publication Date: Feb. … [cited by applicant]
IBM, IBM COBOL for Linux on x86, URL: https://www.ibm.com/products/cobol-compiler-linux-x86/details, printed Feb. 3, 2022, 12 pages. [cited by applicant]
Phil De Valence, Migrating a Mainframe to AWS in 5 Steps with Astadia, AWS Partner Network (APN) Blog, URL: https://aws.amazon.com/blogs/apn/migrating-a-mainframe-to-aws-in-5-steps/, dated Mar. 23, 2018, 6 pages. [cited by applicant]
Steuart et al., Coming Soon: The AWS Mainframe Migration Competency, AWS Partner Network (APN) Blog, URL: https://aws.amazon.com/blogs/apn/coming-soon-the-aws-mainframe-migration-competency/, dated Dec. 3, 2020, 4 pages. [cited by applicant]
International Search Report and Written Opinion, PCT/IB2023/052744, mailed Jun. 28, 2023, 6 pages. [cited by applicant]