Methods and systems for ordering instructions using future values
AssigneeBoard of Control of Michigan Technological University
InventorSoner Onder
Life of this patent
Estimating the term…
Abstract
A method of ordering instructions. The method can include placing a first instruction that consumes a value of an object before a second instruction that produces the value of the object such that the first instruction is processed before the second instruction and a physical location is allocated to the value of the object upon processing the first instruction.
Claims69
A method of ordering software instructions, the method comprising:
- placing a first instruction that consumes a value of an object before a second instruction that produces the value of the object such that the first instruction is processed before the second instruction and a physical location is allocated to the value of the object upon processing the first instruction.
A method of processing software instructions, the method comprising:
- upon encountering a first instruction that consumes a value of an object that is not defined, allocating a physical location to a value of the object;
- and
- upon encountering a second instruction that produces the value of the object, mapping the value produced with the second instruction to the physical location.
A computer-readable medium including instructions for organizing an instruction set, the instruction set including a first instruction that consumes a value of an object and a second instruction that produces the value of the object, the instructions comprising:
- ordering the instructions sequentially such that the first instruction is before the second instruction;
- and
- flagging the object referenced in the first instruction as a future value object.
A system for organizing and processing an instruction set, the instruction set including a first instruction that consumes a value of an object and a second instruction that produces the value of the object, the system comprising:
- an instruction organizing application configured to order the instructions sequentially such that the first instruction is before the second instruction and to flag the object as a future value object in the first instruction;
- and
- a processor configured to allocate a physical location to the value of the object upon processing the first instruction and to map the value produced with the second instruction to the physical location.
A system as claimed in 31, wherein the processor is further configured to release the first instruction after executing the second instruction.
A method of processing a repeated instruction, the method comprising:
- fetching a repeated instruction;
- executing the repeated instruction;
- and
- holding a first copy of the repeated instruction with a predicate upon releasing the repeated instruction for execution, the predicate having a true state and a false state.
A program organizer comprising:
- an instruction-organizing module configured to place a first instruction that consumes a value of an object before a second instruction that produces the value of the object;
- and
- a future-value-flagging module configured to flag a reference to the object included in the first instruction as a reference to a future value object.
A processor comprising:
- a renamer configured to obtain a first instruction including a future value object flag and a reference to a first object, to allocate a first physical location for a value of the object and map the reference to the first object to the first physical location if the future value object flag is set, and, if the future value object flag is not set, to map the reference to the first object to a previously-allocated physical register as designated with a previously-allocated physical location identifier stored in a map table.
A renamer comprising:
- a map table configured store previously-allocated register identifiers that map an object identifier to a physical location, to receive an object identifier, and to transmit a previously-allocated physical location identifier;
- and
- a register allocator configured to receive a future value object flag and to allocate a first physical location and transmit a first physical location identifier associated with the first physical location if the future value object flag is set.
Dependencies are inferred from the claim text.