← Back to Patent Explorer
US5592679A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method for distributed control in a processor architecture

Assignee: Oracle America Inc
•
Filing: 1994-11-14
•
Granted: 1997-01-07
•
Expires: 2014-11-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention provides a multi-level instruction scheduling system for controlling multiple execution pipes of a distributed data flow (DDF) processor. The multi-level scheduling system includes a simple global instruction scheduler and multiple local instruction schedulers corresponding to the number of execution pipes. The global instruction scheduler is responsible for distributing instructions among the execution pipes. Each local instruction scheduler is only responsible for scheduling its share of distributed instructions and matching the reduced number of instructions with the execution units of the corresponding execution pipe when all its source operands are available. Source operands are garnered in one of three ways. First, the local instruction scheduler ensures that locally generated register operand values are stored in a local register buffer and made available quickly to younger instructions distributed to the execution pipe. Second, when source operand values of the instruction are not available in the local register buffer, an inter-pipe operand request is made to an arbiter. If the operand value(s) is available from another execution pipe, a transfer of the source operand(s) is initiated via an inter-pipe bypass coupling the first and second execution pipes. Third, if the source register operand value(s) cannot be found in any of the other execution pipes, the register operand value(s) is retrieved from a global register file via an inter-pipe bypass. This multiple execution pipe architecture advantageously lends itself to software optimizing techniques such as multi-tasking, system exception/trap handling and speculative execution, e.g., instruction branch prediction techniques.

Inventors

  • 👤 Robert Yung

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 14:42
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F15/00; G06F15/76; G06F15/80; G06F15/8007; G06F9/3838; G06F9/384; G06F9/3854; G06F9/3858

Claims Analysis

Total Claims: 11
Claim 1
Independent Claim 313 words
A distributed data flow (DDF) processor comprising: a global instruction scheduler for distributing a plurality of instructions into sub-groups of instructions; and a first and a second execution pipe coupled to said global instruction scheduler, each said execution pipe includes; a local instruction buffer for receiving a corresponding one of said sub-groups of instructions; at least one execution unit coupled to said local instruction buffer for executing said corresponding one sub-group of instructions; a local register buffer coupled to said at least one execution unit for storing local register operand values generated by said at least one execution unit; and a local instruction scheduler for scheduling said corresponding one sub-group of instructions, said local instruction scheduler providing said local register operand values to said at least one execution unit when said local register operand values are useful as source operand values by said at least one execution unit; an inter-pipe bypass coupled to said first and said second execution pipe for transferring said local register operand values between said first and said second execution pipe; an arbiter coupled to said inter-pipe bypass for garnering one of said local register operand values from said first execution pipe to said second execution pipe when said one local register operand value of said first execution pipe is useful as a source operand value for said second execution pipe; and a global register file coupled to said arbiter for storing global register operand values, said arbiter garnering one of said global register operand values from said global register file to said first execution pipe when said one global register operand value is useful as a source operand value for said first execution pipe, wherein said global register file is coupled to said inter-pipe bypass and said one global register operand value is garnered from said global register file to said first execution pipe via said inter-pipe bypass.
Claim 2
Dependent Claim 313 words
A distributed data flow (DDF) processor comprising: a global instruction scheduler for distributing a plurality of instructions into sub-groups of instructions; and a first and a second execution pipe coupled to said global instruction scheduler, each said execution pipe includes; a local instruction buffer for receiving a corresponding one of said sub-groups of instructions; at least one execution unit coupled to said local instruction buffer for executing said corresponding one sub-group of instructions; a local register buffer coupled to said at least one execution unit for storing local register operand values generated by said at least one execution unit; and a local instruction scheduler for scheduling said corresponding one sub-group of instructions, said local instruction scheduler providing said local register operand values to said at least one execution unit when said local register operand values are useful as source operand values by said at least one execution unit; an inter-pipe bypass coupled to said first and said second execution pipe for transferring said local register operand values between said first and said second execution pipe; an arbiter coupled to said inter-pipe bypass for garnering one of said local register operand values from said first execution pipe to said second execution pipe when said one local register operand value of said first execution pipe is useful as a source operand value for said second execution pipe; and a global register file coupled to said arbiter for storing global register operand values, said arbiter garnering one of said global register operand values from said global register file to said first execution pipe when said one global register operand value is useful as a source operand value for said first execution pipe, wherein said global register file is coupled to said inter-pipe bypass and said one global register operand value is garnered from said global register file to said first execution pipe via said inter-pipe bypass.
Claim 3
Dependent Claim 21 words
The DDF processor of claim 1 wherein said instruction distribution is based on instruction classes and operand interdependencies of said instructions.
Claim 4
Dependent Claim 18 words
The DDF processor of claim 1 wherein said instruction distribution is based on computational paths of instructions streams.
Claim 5
Independent Claim 205 words
A method of scheduling instructions in a distributed data flow processor having at least a first and a second execution pipe, said method comprising the steps of: distributing a plurality of instructions among said first and second execution pipes; scheduling at least two of said instructions for execution within said first execution pipe; providing a local register operand value generated by said first execution pipe for use as a first source operand value by said first execution pipe; garnering a local register operand value generated by said second execution pipe to said first execution pipe when said local register operand value of said second execution pipe is useful as a second source operand value for said first execution pipe, said local register operand value garnered via an inter-pipe bypass coupled to said first and second execution pipes; and garnering a global register operand value from a global register file to said first execution pipe when said global register operand value is useful as a third source operand value for said first execution pipe, said global register file is coupled to said inter-pipe bypass and said global register operand value is garnered from said global register file to said first execution pipe via said inter-pipe bypass.
Claim 6
Independent Claim 205 words
A method of scheduling instructions in a distributed data flow processor having at least a first and a second execution pipe, said method comprising the steps of: distributing a plurality of instructions among said first and second execution pipes; scheduling at least two of said instructions for execution within said first execution pipe; providing a local register operand value generated by said first execution pipe for use as a first source operand value by said first execution pipe; garnering a local register operand value generated by said second execution pipe to said first execution pipe when said local register operand value of said second execution pipe is useful as a second source operand value for said first execution pipe, said local register operand value garnered via an inter-pipe bypass coupled to said first and second execution pipes; and garnering a global register operand value from a global register file to said first execution pipe when said global register operand value is useful as a third source operand value for said first execution pipe, said global register file is coupled to said inter-pipe bypass and said global register operand value is garnered from said global register file to said first execution pipe via said inter-pipe bypass.
Claim 7
Dependent Claim 17 words
The method of claim 4 wherein said instruction distribution is based on instruction classes of said instructions.
Claim 8
Dependent Claim 51 words
The method of claim 4 wherein said scheduling step includes the step of: matching an execution unit of said first execution pipe to one of said instructions; and wherein said garnering step includes the step of providing said first and second source operands for said one instruction to said execution unit.
Claim 9
Dependent Claim 29 words
The method of claim 4 wherein said providing step includes the step of retrieving said first source operand value from a local register buffer of said first execution pipe.
Claim 10
Dependent Claim 29 words
The method of claim 4 wherein said garnering step includes the step of retrieving said second source operand value from a local register buffer of said second execution pipe.
Claim 11
Dependent Claim 57 words
The method of claim 8 wherein said garnering step further includes the steps of: initiating a request for said second source operand value to an arbiter; identifying said second execution pipe as a source of said second source operand value; and transferring said second source operand value from said second execution pipe to said first execution pipe.

References Cited (Backward Citations)

US4594660A Cited
US5467476A Cited
US5471633A Cited
US5524262A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-01-07 2000-07-08 2001-01-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-01-07 2004-07-08 2005-01-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-01-07 2008-07-08 2009-01-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag