IP Library › Granted Patent US 9,086,890
Granted Patent B2
US 9,086,890 · App. 13/345,391 · Granted Jul 21, 2015

Division unit with normalization circuit and plural divide engines for receiving instructions when divide engine availability is indicated

Inventors: Christopher H. Olson (Austin, TX); Jeffrey S. Brooks (Austin, TX); Matthew B. Smittle (Allen, TX)
Assignee: Oracle International Corporation
G06F9/3895G06F7/535G06F7/5375G06F9/3001G06F9/3875G06F9/3885G06F7/49936
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,086,890
App. No.
13/345,391
Granted
Jul 21, 2015
Kind
B2
Abstract

Techniques are disclosed relating to integrated circuits that include hardware support for divide and/or square root operations. In one embodiment, an integrated circuit is disclosed that includes a division unit that, in turn, includes a normalization circuit and a plurality of divide engines. The normalization circuit is configured to normalize a set of operands. Each divide engine is configured to operate on a respective normalized set of operands received from the normalization circuit. In some embodiments, the integrated circuit includes a scheduler unit configured to select instructions for issuance to a plurality of execution units including the division unit. The scheduler unit is further configured to maintain a counter indicative of a number of instructions currently being operated on by the division unit, and to determine, based on the counter whether to schedule subsequent instructions for issuance to the division unit.

Claims (25)

1. An integrated circuit, comprising:

a division unit including a normalization circuit and a plurality of divide engines, wherein the normalization circuit is configured to normalize a set of operands of a divide instruction, and wherein each divide engine is configured to operate on a respective normalized set of operands in parallel with one or more others of the plurality of divide engines, and wherein each respective normalized set of operands is received from the normalization circuit and is associated with a respective divide instruction; and

a scheduler unit configured to dispatch instructions to a plurality of execution units including the division unit, wherein the scheduler unit is configured to dispatch a divide instruction to the division unit in response to receiving a first indication that the division unit has completed operation on a previously dispatched divide instruction, wherein the first indication is indicative that one of the plurality of divide engines is available to receive another divide instruction.

2. The integrated circuit of claim 1 , wherein the scheduler unit is configured to:

maintain an availability counter indicative of a number of dispatched instructions being operated on by the division unit; and

dispatch an instruction in response to a value of the counter satisfying a particular threshold.

3. The integrated circuit of claim 1 , wherein the scheduler unit is configured to:

receive a second indication from the division unit prior to receiving the first indication, wherein the second indication is a request for a pipeline stall usable to transmit a result of a divide operation from the division unit; and

in response to the second indication, initiate the requested pipeline stall.

4. The integrated circuit of claim 1 , wherein the division unit further includes a divide post-engine configured to process results produced by each divide engine, and wherein each divide engine is configured to request, from an arbitration unit, permission to send a result to the divide post-engine.

5. The integrated circuit of claim 4 , wherein the arbitration unit is configured to:

grant a received request of a first one of the plurality of divide engines; and

disable a clock signal of a second one of the plurality of divide engines in response to receiving a request of the first divide engine and a request of the second divide engine within a particular interval.

6. The integrated circuit of claim 1 , wherein each divide engine is configured to perform a Sweeney, Robertson, and Tocher (SRT) division operation.

7. An integrated circuit, comprising:

a division unit configured to operate on a plurality of division instructions in parallel via a plurality of divide engines included in the division unit, wherein the division unit includes a normalization circuit configured to normalize a set of operands being processed by the division unit to perform a division operation, wherein each of the plurality of divide engines is configured to operate on a normalized set of operands for a respective one of the plurality of division instructions;

a scheduler unit configured to select instructions for issuance to a plurality of execution units including the division unit, wherein the scheduler unit is configured to:

maintain an availability counter indicative of the division unit's ability to receive another division instruction at one of the plurality of divide engines; and

based on the availability counter, determine whether to schedule a subsequent instruction for issuance to the division unit.

8. The integrated circuit of claim 7 , wherein the normalization circuit is configured to normalize a set of operands associated with only a single divide instruction within a particular interval, and wherein the scheduler unit is configured to not select more than one instruction for issuance to the division unit within that interval.

9. The integrated circuit of claim 7 , wherein the division unit includes:

a divide post-engine configured to process results produced by the plurality of divide engines.

10. The integrated circuit of claim 9 , wherein the division unit includes an arbitration unit configured to arbitrate between the plurality of divide engine to submit a result to the divide post-engine.

11. The integrated circuit of claim 9 , wherein the scheduler unit is configured to adjust a value of the counter in response to 1) an issuance of a divide instruction to the division unit, and 2) the divide post-engine outputting a quotient for an issued divide instruction.

12. The integrated circuit of claim 9 , wherein the plurality of divide engines are configured to implement a restoring division algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2012
From: OLSON, CHRISTOPHER H.; BROOKS, JEFFREY S.; SMITTLE, MATTHEW B.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 027495/0967 →
Continuity (1)
Related Publication 20130179664A1 · Jul 11, 2013