IP Library Granted Patent US 7,409,534
Granted Patent B1
US 7,409,534 · App. 11/515,374 · Granted Aug 5, 2008

Automatic and transparent hardware conversion of traditional control flow to predicates

Assignee: The 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 7,409,534
App. No.
11/515,374
Granted
Aug 5, 2008
Kind
B1
Abstract

A computing device that provides hardware conversion of flow control predicates associated with program instructions executable within the computing device, detects the beginning and the end of a branch domain of the program instructions, and realizes the beginning and the end of the branch domain at execution time, for selectively enabling and disabling instructions within said branch domain.

Claims (32)

1. A computing device to provide hardware conversion of control flow in machine code that is executable by said computing device, comprising:

predicate assignment means configured to detect the beginning and the end of a branch domain of original machine code based solely on said original machine code, said original machine code being executable by said computing device and by a target computing device different from said computing device; and

predicate use means configured to realize the beginning and the end of said branch domain at execution time, and to selectively enable and disable machine code within said branch domain during program execution,

wherein said predicate assignment means is further configured to review a predicate address of a candidate branch in an instruction window of the computing device; to perform a look-up based on the predicate address to determine if the predicate address corresponds to an entry that indicates that a target address of the candidate branch is outside of the instruction window; and to read the target address of the candidate branch if the target address lies outside of the instruction window.

2. The computing device according to claim 1 wherein said predicate assignment means includes a tracking buffer comprising storage to store branch information in order to make said predicate assignments.

3. The computing device according to claim 1 , wherein said predicate assignment means is configured to assign a canceling predicate to said branch domain in order to delineate said branch domain.

4. A method for providing hardware conversion of control flow to predicates, comprising:

detecting the beginning and the end of a branch domain of original machine code based solely on said original machine code, said original machine code being executable within a target computing device different from said computing device;

generating from each said branch domain a predicate, including:

reviewing a predicate address of a candidate branch in an instruction window of a computer system;

performing a look-up based on the predicate address to determine if the predicate address corresponds to an entry that indicates that a target address of the candidate branch is outside of the instruction window; and

reading the target address of the candidate branch if the target address lies outside of the instruction window; and

associating said predicate with at least one machine code.

5. The method according to claim 4 , wherein said detecting includes storing branch information to make said predicate assignments.

6. The method according to claim 4 , wherein said generating assigns a canceling predicate to said branch domain in order to delineate said branch domain.

7. A method for handling branching in a predicate assignment system, comprising:

reviewing a predicate address of a candidate branch in an instruction window of a computer system;

performing a look-up based on the predicate address to determine if the predicate address corresponds to an entry that indicates that a target address of the candidate branch is outside of the instruction window; and

reading the target address of the candidate branch if the target address lies outside of the instruction window.

8. The method according to claim 7 , wherein said reading comprises reading the target address from a tracking buffer.

9. A method for providing hardware conversion of control flow to predicates comprising:

detecting the beginning and the end of a branch domain of original machine code based solely on said original machine code, said original machine code being executable within a target computing device different from said computing device;

generating from each said branch domain a predicate;

associating said predicate with at least one machine code; and

thereafter realizing the beginning and the end of said branch domain at execution time and selectively enabling and disabling execution of machine code within said branch domain,

wherein the method further includes handling at least one program element selected from the group consisting of a multiply-targeted instruction and a branch that is a target of a different branch.

10. The method according to claim 9 , wherein handling a multiply-targeted instruction comprises:

providing multiple canceling predicates for the multiply-targeted instruction.

11. The method according to claim 9 , wherein handling a multiply-targeted instruction comprises:

inserting a null operation following the multiply-targeted instruction, the null operation having at least one associated canceling predicate.

12. The method according to claim 9 , wherein handling a branch that is a target of a different branch comprises:

associating, with the branch that is the target of the different branch, predicate logic that appears to be both a branch and an assignment statement.

Assignments (2)
CONFIRMATORY LICENSE Recorded May 8, 2015
From: UNIVERSITY OF RHODE ISLAND
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 035615/0047 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 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 025843/0279 →
Continuity (2)
Continuation 0983867800 · Apr 19, 2001
Provisional Application 6019830000 · Apr 19, 2000