Floating point processing unit with forced arithmetic results
First Claim
1. A floating point processing unit comprising:
- an arithmetic unit coupled between a floating point operand source and a round bus, said arithmetic unit being responsive to a normal result indication;
operand passing logic coupled between said floating point operand source and said round bus, said operand passing logic being responsive to a pass operand indication;
rounding logic coupled between said round bus and a result bus;
a forced result store coupled at an output port of said rounding logic to supply forced results without rounding in response to a forced result indication; and
operand characterization and control logic coupled to a floating point instruction source, to said arithmetic unit, to said operand passing logic, and to said forced result logic, wherein said control logic supplies one of said normal result indication, said pass operand indication, and said forced result indication, said pass operand indication and said forced result indication being supplied in response to respective first and second sets of predetermined combinations of floating point instructions and operand characterizations.
3 Assignments
0 Petitions
Accused Products
Abstract
Logic for selectively forcing arithmetic results allows a floating point unit to bypass the normal flow through arithmetic units and pipelines depending on the particular floating point operation and operand conditions. Certain forced results (e.g., forced zeros, infinities, and those corresponding to certain invalid operand conditions) may bypass arithmetic units or pipelines and rounding circuitry entirely. On the other hand, other operand dependent results (e.g., the result of X+0 and results of operations involving a NaN operand or operands) may only partially bypass the normal flow. By providing logic for selectively forcing results, arithmetic pipelines may be freed for subsequent instructions in the instruction stream. Logic for selectively forcing arithmetic results may be particularly attractive in a superscalar processor. In a superscalar processor which includes a floating point unit with forced arithmetic results, microcode to handle special cases, pipeline bypass, and early result generation can be avoided because architectural approaches for handling out-of-order results allow dependencies to be resolved irrespective of result reordering. Therefore, the early and out-of-order generation of forced results may be handled by a reorder buffer.
141 Citations
17 Claims
-
1. A floating point processing unit comprising:
-
an arithmetic unit coupled between a floating point operand source and a round bus, said arithmetic unit being responsive to a normal result indication; operand passing logic coupled between said floating point operand source and said round bus, said operand passing logic being responsive to a pass operand indication; rounding logic coupled between said round bus and a result bus; a forced result store coupled at an output port of said rounding logic to supply forced results without rounding in response to a forced result indication; and operand characterization and control logic coupled to a floating point instruction source, to said arithmetic unit, to said operand passing logic, and to said forced result logic, wherein said control logic supplies one of said normal result indication, said pass operand indication, and said forced result indication, said pass operand indication and said forced result indication being supplied in response to respective first and second sets of predetermined combinations of floating point instructions and operand characterizations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a processor having a floating point instruction source, a floating point operand source, and a result bus, a floating point processing unit comprising:
-
an arithmetic unit coupled to said floating point operand source and to said result bus, said arithmetic unit being responsive to a normal result indication; operand characterization logic coupled to said floating point operand source; control logic coupled to said operand characterization logic, to said floating point instruction source, to said arithmetic unit, wherein said control logic supplies one of said normal result indication, a pass operand indication, and a force predetermined result indication, said pass operand and force predetermined result indications being supplied in response to predetermined combinations of floating point instructions and operand characterizations; operand passing logic including an arithmetic unit bypass path coupled between said floating point operand source and said result bus, said operand passing logic also coupled to said control logic and responsive to said pass operand indication; rounding logic coupled between said operand passing logic and said result bus and between said arithmetic unit and said result bus, said rounding logic rounding operands passed via said arithmetic unit bypass path in accordance with a result format and a rounding mode; and predetermined result forcing logic coupled to said result bus and to said control logic said predetermined result forcing logic being responsive to said force predetermined result indication and supplying without operation of said rounding logic predetermined results in accordance with said result format and said rounding mode. - View Dependent Claims (15)
-
-
16. A floating point processing unit comprising:
-
at least one floating point arithmetic data path coupled between first and second operand busses and a rounding unit; predetection logic coupled in parallel with said at least one floating point arithmetic data path between said first and second operand busses and said rounding unit, said predetection logic coupled to pass an operand from a selected one of said first and said second operand busses in response to detection of a first combination of operands and operation thereupon, to supply forced result indications in response to detection of a second combination of operands and operation thereupon, and otherwise to neither pass an operand nor supply a forced result indication, a normal result instead being supplied by said at least one floating point arithmetic data path; and said rounding unit including logic selective for stored representations of exponent and fraction portions of a particular forced arithmetic result in response to a corresponding of said forced result indications and otherwise selective for rounded result data rounded in accordance with a current rounding mode, said rounded result data being one of a rounded version of said passed operand and a rounded version of said normal result.
-
-
17. A method of supplying floating point arithmetic results, said method comprising:
-
predetecting, in parallel with arithmetic result computation by at least one arithmetic pipeline, first and second combinations of operands and operation thereupon; in response to said predetecting of said first combination of operands and operation thereupon, passing an operand from a selected one of first and said second operand busses, and thereafter rounding said passed operand in accordance with a prevailing rounding mode; in response to said predetecting of said second combination of operands and operation thereupon, supplying, from a precomputed rounded result store, a result rounded in accordance with said prevailing rounding mode; and otherwise, supplying said arithmetic result from said at least one arithmetic data pipeline and thereafter rounding said arithmetic result in accordance with a prevailing rounding mode.
-
Specification