IP Library Granted Patent US 8,601,245
Granted Patent B2
US 8,601,245 · App. 13/183,662 · Granted Dec 3, 2013

Not-taken path instruction for selectively generating a forwarded result from a previous instruction based on branch outcome

Inventors: Augustus K. Uht (Cumberland, RI); David Morano (Malden, MA); David Kaeli (Medway, MA)
Assignee: Board of Governors for Higher Education, State of Rhode Island and Providence Plantations
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 8,601,245
App. No.
13/183,662
Granted
Dec 3, 2013
Kind
B2
Abstract

A scalable processing system includes a memory device having a plurality of executable program instructions, wherein each of the executable program instructions includes a timetag data field indicative of the nominal sequential order of the associated executable program instructions. The system also includes a plurality of processing elements, which are configured and arranged to receive executable program instructions from the memory device, wherein each of the processing elements executes executable instructions having the highest priority as indicated by the state of the timetag data field.

Claims (37)

1. In a processing system, a method for executing one or more program instructions, the method comprising:

executing the following instructions resident within an instruction storage:

a first instruction prior to a branch instruction, to thereby generate a first instruction output having a first register address;

the branch instruction establishing a branch; and

a second instruction between said branch instruction and a target location identified by a branch target address associated with said branch instruction, to thereby generate a second instruction output having a second register address;

forwarding the first instruction output to the second instruction in instruction storage;

storing in association with the second instruction, when the first and second register addresses are equal, the first instruction output; and

generating by the second instruction, when a branch-taken condition occurs, the stored first instruction output as the second instruction output;

wherein said branch-taken condition arises when a predicate evaluation indicates that execution of said second instruction should not be performed.

2. The method of claim 1 , wherein said first instruction output is a data output or a predicate output and said second instruction output is a data output or a predicate output.

3. The method of claim 1 , wherein said predicate evaluation is associated with said branch instruction, and further comprising broadcasting a predicate output of the branch instruction, indicating the branch-taken condition.

4. The method of claim 1 , further comprising:

initiating, in a common clock period, execution of a third instruction, including or subsequent to the target location, along with the first instruction and/or the second instruction.

5. The method of claim 4 , further comprising selectively executing the third instruction based on whether or not the branch is taken.

6. The method of claim 4 , further comprising restoring at least one data value and/or at least one predicate value to a previous value based on whether or not the branch is taken.

7. The method of claim 4 , wherein, when the branch is initially predicted to be taken, the executing the second instruction comprises broadcasting at least one pre-existing data value.

8. The method of claim 1 , further comprising:

executing a third instruction at or after the branch target address;

wherein, when an input operand address of the third instruction matches a relay address of the second instruction, the third instruction snarls relay data forwarded by the second instruction before the third instruction executes.

9. A system, comprising:

means for executing the following instructions resident within an instruction storage:

a first instruction prior to a branch instruction, to thereby generate a first instruction output having a first register address;

the branch instruction establishing a branch; and

a second instruction between said branch instruction and a target location identified by a branch target address associated with said branch instruction, to thereby generate a second instruction output having a second register address;

means for forwarding the first instruction output to the second instruction in instruction storage;

means for storing in association with the second instruction, when the first and second register addresses are equal, the first instruction output; and

means for generating by the second instruction, when a branch-taken condition occurs, the stored first instruction output as the second instruction output;

wherein said branch-taken condition arises when a predicate evaluation indicates that execution of said second instruction should not be performed.

10. The system of claim 9 , wherein said first instruction output is a data output or a predicate output and said second instruction output is a data output or a predicate output.

11. The system of claim 9 , wherein said predicate evaluation is associated with said branch instruction, said system further comprising means for broadcasting a predicate output of the branch instruction, indicating the branch-taken condition.

12. The system of claim 9 , wherein the means for executing is further configured for initiating, during a common clock period, execution of a third instruction, including or subsequent to the target location, along with the first instruction and/or the second instruction.

13. The system of claim 12 , wherein the means for executing is further configured for selectively executing the third instruction based on whether or not the branch is taken.

14. The system of claim 12 , wherein the system is further configured to restore at least one data value and/or at least one predicate value to a previous value based on whether or not the branch is taken.

15. The system of claim 12 , wherein the means for executing is further configured such that, if the branch is initially predicted to be taken, the executing the second instruction comprises broadcasting at least one pre-existing data value.

16. The system of claim 9 , further comprising:

a third instruction at or after the branch target address;

wherein, when an input operand address of the third instruction matches a relay address of the second instruction, the third instruction snarls relay data forwarded by the second instruction before the third instruction executes.

Assignments (2)
CONFIRMATORY LICENSE Recorded Jun 24, 2014
From: UNIVERSITY OF RHODE ISLAND
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 033220/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2011
From: UHT, AUGUSTUS K.; MORANO, DAVID; KAELI, DAVID
To: BOARD OF GOVERNORS FOR HIGHER EDUCATION, STATE OF RHODE ISLAND AND PROVIDENCE PLANTATIONS
Reel/Frame 026598/0029 →
Continuity (5)
Division 12254684 · Oct 20, 2008
Division 11248374 · Oct 11, 2005
Division 09828600 · Apr 6, 2001
Provisional Application 60194931 · Apr 6, 2000
Related Publication 20110276792A1 · Nov 10, 2011