US5948098A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Execution unit and method for executing performance critical and non-performance critical arithmetic instructions in separate pipelines
Assignee: Oracle America Inc
•
Filing: 1997-06-30
•
Granted: 1999-09-07
•
Expires: 2017-06-30
Abstract
Abstract A CPU (central processing unit) of a computer that comprises an issue unit and an execution unit. The issue unit selectively issues arithmetic instructions of a predefined arithmetic instruction type as performance critical arithmetic instructions and non-performance critical arithmetic instructions. The execution unit comprises a performance critical pipeline to execute the performance critical arithmetic instructions. The execution unit also comprises a non-performance critical pipeline to execute the non-performance critical arithmetic instructions.
Inventors
- 👤 Arthur T. Leung
- 👤 Gary R. Lauterbach
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-06 02:20
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3885; G06F9/30003; G06F9/30007; G06F9/3001; G06F9/30098; G06F9/3012; G06F9/30123; G06F9/30127; G06F9/3824; G06F9/3826; G06F9/3836; G06F9/3867
Claims Analysis
Total Claims: 9
Claim 1
Independent Claim
322 words
A central processing unit of a computer, comprising; an issue unit configured to selectively issue arithmetic instructions of a predefined arithmetic instruction type as first arithmetic instructions and second arithmetic instructions, the second arithmetic instructions being more complex than the first arithmetic instructions; an execution unit that comprises: an execution unit core; a first pipeline located in the execution unit core and configured to execute the first arithmetic instructions; and a second pipeline configured to execute the second arithmetic instructions, the second pipeline including arithmetic logic located away from and not in the execution unit core and configured to process operands selected for the second arithmetic instructions: wherein: the first pipeline comprises: a first operand selection stage configured to select at least one operand for each of the first arithmetic instructions; and a first operand processing stage coupled to the first operand selection stage without any other pipeline stage therebetween to receive the selected at least one operand for each of the first arithmetic instructions and configured to process the selected at least one operand for that instruction; and the second pipeline comprises: a second operand selection stage configured to select operands for each of the second arithmetic instructions; a second operand processing stage, including the arithmetic logic, configured to process the selected operands for each of the second arithmetic instructions; and at least one operand propagation stage coupled between the second operand selection and processing stages and configured to provide the selected operands for each of the second arithmetic instructions from the second operand selection stage to the second operand processing stage; and wherein the execution unit further comprises a register file located in the execution unit core and configured to provide operands from which the first operand selection stage may select the at least one operands for each of the first arithmetic instructions and the second operand selection stage may select the operands for each of the second arithmetic instructions.
Claim 2
Dependent Claim
322 words
A central processing unit of a computer, comprising; an issue unit configured to selectively issue arithmetic instructions of a predefined arithmetic instruction type as first arithmetic instructions and second arithmetic instructions, the second arithmetic instructions being more complex than the first arithmetic instructions; an execution unit that comprises: an execution unit core; a first pipeline located in the execution unit core and configured to execute the first arithmetic instructions; and a second pipeline configured to execute the second arithmetic instructions, the second pipeline including arithmetic logic located away from and not in the execution unit core and configured to process operands selected for the second arithmetic instructions: wherein: the first pipeline comprises: a first operand selection stage configured to select at least one operand for each of the first arithmetic instructions; and a first operand processing stage coupled to the first operand selection stage without any other pipeline stage therebetween to receive the selected at least one operand for each of the first arithmetic instructions and configured to process the selected at least one operand for that instruction; and the second pipeline comprises: a second operand selection stage configured to select operands for each of the second arithmetic instructions; a second operand processing stage, including the arithmetic logic, configured to process the selected operands for each of the second arithmetic instructions; and at least one operand propagation stage coupled between the second operand selection and processing stages and configured to provide the selected operands for each of the second arithmetic instructions from the second operand selection stage to the second operand processing stage; and wherein the execution unit further comprises a register file located in the execution unit core and configured to provide operands from which the first operand selection stage may select the at least one operands for each of the first arithmetic instructions and the second operand selection stage may select the operands for each of the second arithmetic instructions.
Claim 3
Dependent Claim
71 words
The central processing unit of claim 1 wherein: the first operand selection stage and the first operand processing stage are each configured to occur in one machine cycle for each of the first arithmetic instructions; the second operand selection stage, the operand propagation stage, and the second operand processing stage are respectively configured to occur in one, at least one, and multiple machine cycles for each of the second arithmetic instructions.
Claim 4
Independent Claim
311 words
A method of executing arithmetic instructions of a predefined arithmetic instruction type in a central processing unit of a computer, the central processing unit including an execution unit core, the method comprising the steps of: selectively issuing the arithmetic instructions as first arithmetic instructions and second arithmetic instructions, the second instructions being more complex than the first arithmetic instructions; executing the first arithmetic instructions in a first pipeline located in the execution unit core; executing the second arithmetic instructions in a second pipeline including the step of processing operands selected for the second arithmetic instructions in arithmetic logic of the second pipeline located away from and not in the execution unit core; selecting at least one operand for each of the first arithmetic instructions with a first operand selection stage of the first pipeline; processing the selected at least one operand for each of the first arithmetic instructions with a first operand processing stage of the first pipeline; providing the selected at least one operand for each of the first arithmetic instructions to the first operand processing stage with the first operand selection stage without any other pipeline stage therebetween; selecting operands for each of the second arithmetic instructions with a second operand selection stage of the second pipeline; processing the selected operands for each of the second arithmetic instructions with a second operand processing stage of the second pipeline; providing the selected operands for each of the second arithmetic instructions to the second operand processing stage with an operand propagation stage of the second pipeline therebetween; providing operands with a register file located in the execution unit core from which the at least one operands for each of the first arithmetic instructions may be selected in the first operand selecting step and the operands for each of the second arithmetic instructions may be selected in the second operand selecting step.
Claim 5
Independent Claim
311 words
A method of executing arithmetic instructions of a predefined arithmetic instruction type in a central processing unit of a computer, the central processing unit including an execution unit core, the method comprising the steps of: selectively issuing the arithmetic instructions as first arithmetic instructions and second arithmetic instructions, the second instructions being more complex than the first arithmetic instructions; executing the first arithmetic instructions in a first pipeline located in the execution unit core; executing the second arithmetic instructions in a second pipeline including the step of processing operands selected for the second arithmetic instructions in arithmetic logic of the second pipeline located away from and not in the execution unit core; selecting at least one operand for each of the first arithmetic instructions with a first operand selection stage of the first pipeline; processing the selected at least one operand for each of the first arithmetic instructions with a first operand processing stage of the first pipeline; providing the selected at least one operand for each of the first arithmetic instructions to the first operand processing stage with the first operand selection stage without any other pipeline stage therebetween; selecting operands for each of the second arithmetic instructions with a second operand selection stage of the second pipeline; processing the selected operands for each of the second arithmetic instructions with a second operand processing stage of the second pipeline; providing the selected operands for each of the second arithmetic instructions to the second operand processing stage with an operand propagation stage of the second pipeline therebetween; providing operands with a register file located in the execution unit core from which the at least one operands for each of the first arithmetic instructions may be selected in the first operand selecting step and the operands for each of the second arithmetic instructions may be selected in the second operand selecting step.
Claim 6
Dependent Claim
63 words
The method of claim 3 wherein: the first operand selecting step and the first operand processing step each occur in one machine cycle for each of the first arithmetic instructions; the second operand selecting step, the operand propagation step, and the second operand processing step respectively occur in one, at least one, and multiple machine cycles for each of the second arithmetic instructions.
Claim 7
Dependent Claim
311 words
An execution unit for use in a central processing unit of a computer, the central processing unit selectively issuing arithmetic instructions of a predefined arithmetic instruction type as first arithmetic instructions and second arithmetic instructions, the execution unit comprising: an execution unit core; a first pipeline located in the execution unit core and configured to execute first arithmetic instructions; a second pipeline configured to execute the second arithmetic instructions, the second pipeline including arithmetic logic located away from and not in the execution unit core and configured to process operands selected for the second arithmetic instructions; wherein: the first pipeline comprises: a first operand selection stage configured to select at least one operand for each of the first arithmetic instructions; and a first operand processing stage coupled to the first operand selection stage without any other pipeline stage therebetween to receive the selected at least one operand for each of the first arithmetic instructions and configured to process the selected at least one operand for that instruction; and the second pipeline comprises: a second operand selection stage configured to select operands for each of the second arithmetic instructions; a second operand processing stage, including the arithmetic logic, configured to process the selected operands for each of the second arithmetic instructions; and at least one operand propagation stage coupled between the second operand selection and processing stages and configured to provide the selected operands for each of the second arithmetic instructions from the second operand selection stage to the second operand processing stage; and wherein the execution unit further comprises a resister file located in the execution unit core and configured to provide operands from which the first operand selection stage may select the at least one operands for each of the first arithmetic instructions and the second operand selection stage may select the operands for each of the second arithmetic instructions.
Claim 8
Dependent Claim
311 words
An execution unit for use in a central processing unit of a computer, the central processing unit selectively issuing arithmetic instructions of a predefined arithmetic instruction type as first arithmetic instructions and second arithmetic instructions, the execution unit comprising: an execution unit core; a first pipeline located in the execution unit core and configured to execute first arithmetic instructions; a second pipeline configured to execute the second arithmetic instructions, the second pipeline including arithmetic logic located away from and not in the execution unit core and configured to process operands selected for the second arithmetic instructions; wherein: the first pipeline comprises: a first operand selection stage configured to select at least one operand for each of the first arithmetic instructions; and a first operand processing stage coupled to the first operand selection stage without any other pipeline stage therebetween to receive the selected at least one operand for each of the first arithmetic instructions and configured to process the selected at least one operand for that instruction; and the second pipeline comprises: a second operand selection stage configured to select operands for each of the second arithmetic instructions; a second operand processing stage, including the arithmetic logic, configured to process the selected operands for each of the second arithmetic instructions; and at least one operand propagation stage coupled between the second operand selection and processing stages and configured to provide the selected operands for each of the second arithmetic instructions from the second operand selection stage to the second operand processing stage; and wherein the execution unit further comprises a resister file located in the execution unit core and configured to provide operands from which the first operand selection stage may select the at least one operands for each of the first arithmetic instructions and the second operand selection stage may select the operands for each of the second arithmetic instructions.
Claim 9
Dependent Claim
70 words
The execution unit of claim 5 wherein: the first operand selection stage and the first operand processing stage are each configured to occur in one machine cycle for each of the first arithmetic instructions; the second operand selection stage, the operand propagation stage, and the second operand processing stage are respectively configured to occur in one, at least one, and multiple machine cycles for each of the second arithmetic instructions.
References Cited (Backward Citations)
US4928223A
Cited
US5226126A
Cited
US5481751A
Cited
US5375248A
Cited
US5594864A
Cited
US5369621A
Cited
US5268855A
Cited
US5604912A
Cited
US5696955A
Cited
US5675758A
Cited
US5764556A
Cited
US5603047A
Cited
US5805486A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-09-06 | 2003-03-08 | 2003-09-07 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-09-06 | 2007-03-08 | 2007-09-07 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-09-06 | 2011-03-08 | 2011-09-07 | $7700.00 | Window Closed / Lapsed |