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.