IP Library Granted Patent US 7,975,128
Granted Patent B2
US 7,975,128 · App. 12/161,124 · Granted Jul 5, 2011

Apparatuses and programs for implementing a forwarding function

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,975,128
App. No.
12/161,124
Granted
Jul 5, 2011
Kind
B2
Abstract

The processor according to the present invention is a processor having a forwarding function and includes an attribute information holding unit ( 141 ) that holds attribute information regarding inhibition of writing to a register and a register write inhibition circuit ( 126 ) that holds, when forwarding is performed, the writing of the data forwarded according to attribute information. The attribute information holding unit ( 141 ) holds the attribute information by relating the attribute information to at least one register. Alternatively, the attribute information holding unit is a part of plural pipeline buffers and passes the attribute information along with the data to be forwarded, to a pipeline buffer in a subsequent stage.

Claims (36)

1. A program conversion apparatus, stored in a computer, to convert an original program into a converted program that is executable by a processor, the computer including a memory, the program conversion apparatus comprising:

an extractor, caused by the computer, to extract, from the original program, a variable to be stored in a register;

a detector, caused by the computer, to detect a live range for the extracted variable;

a first determiner, caused by the computer, to determine whether only one reference instruction is present in the live range, the reference instruction being an instruction to refer to the variable;

a second determiner, caused by the computer, to determine whether a definition instruction and the reference instruction are intended for forwarding, the definition instruction being an instruction to define the variable; and

a generator, caused by the computer, to generate the converted program including an inhibition instruction to inhibit writing to the register according to the definition instruction, when it is determined that only one reference instruction is present in the live range and that the reference instruction is intended for forwarding,

wherein, the inhibition instruction includes:

a first attribute change instruction to set, prior to the live range, first attribute information to said memory, the first attribute information being for inhibiting the writing to the register in which the variable is to be stored; and

a second attribute change instruction to set, subsequent to the live range, second attribute information to said memory, the second attribute information being for not inhibiting the writing to the register in which the variable is to be stored, and

said generator is configured to add the first attribute change instruction and the second attribute change instruction to the original program to generate the converted program.

2. A program conversion apparatus, stored in a computer, to convert an original program into a converted program that is executable by a processor, the computer including a memory, the program conversion apparatus comprising:

an extractor, caused by the computer, to extract, from the original program, a variable to be stored in a register;

a detector, caused by the computer, to detect a live range for the extracted variable;

a first determiner, caused by the computer, to determine whether only one reference instruction is present in the live range, the reference instruction being an instruction to refer to the variable;

a second determiner, caused by the computer, to determine whether a definition instruction and the reference instruction are intended for forwarding, the definition instruction being an instruction to define the variable; and

a generator, caused by the computer, to generate the converted program including an inhibition instruction to inhibit writing to the register according to the definition instruction, when it is determined that only one reference instruction is present in the live range and that the reference instruction is intended for forwarding,

wherein the inhibition instruction is a definition instruction with inhibition, which involves a same operation as the definition instruction and a register write inhibition indication, and

said generator is configured to generate the converted program by changing the definition instruction in the original program into the definition instruction with inhibition.

3. A non-transitory computer-readable medium including an executable program for converting an original program into a converted program, comprising:

an extracting code segment that, when executed, extracts, from the original program, a variable to be stored in a register;

a detecting code segment that, when executed, detects a live range for the extracted variable;

a first determining code segment that, when executed, determines whether only one reference instruction is present in the live range, the reference instruction being an instruction to refer to the variable;

a second determining code segment that, when executed, determines whether a definition instruction and the reference instruction are intended for forwarding, the definition instruction being an instruction to define the variable; and

a generating code segment that, when executed, generates the converted program including an inhibition instruction to inhibit writing to the register according to the definition instruction, when it is determined that only one reference instruction is present in the live range and that the reference instruction is intended for forwarding,

wherein, the inhibition instruction includes:

a first attribute change instruction to set, prior to the live range, first attribute information to a memory, the first attribute information being for inhibiting the writing to the register in which the variable is to be stored; and

a second attribute change instruction to set, subsequent to the live range, second attribute information to the memory, the second attribute information being for not inhibiting the writing to the register in which the variable is to be stored, and

the generating code segment adds the first attribute change instruction and the second attribute change instruction to the original program to generate the converted program.

4. A non-transitory computer-readable medium including an executable program for converting an original program into a converted program, comprising:

an extracting code segment that, when executed, extracts, from the original program, a variable to be stored in a register;

a detecting code segment that, when executed, detects a live range for the extracted variable;

a first determining code segment that, when executed, determines whether only one reference instruction is present in the live range, the reference instruction being an instruction to refer to the variable;

a second determining code segment that, when executed, determines whether a definition instruction and the reference instruction are intended for forwarding, the definition instruction being an instruction to define the variable; and

a generating code segment that, when executed, generates the converted program including an inhibition instruction to inhibit writing to the register according to the definition instruction, when it is determined that only one reference instruction is present in the live range and that the reference instruction is intended for forwarding,

wherein the inhibition instruction is a definition instruction with inhibition, which involves a same operation as the definition instruction and a register write inhibition indication, and

the generating code segment generates the converted program by changing the definition instruction in the original program into the definition instruction with inhibition.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2020
From: PANASONIC CORPORATION
To: PANASONIC SEMICONDUCTOR SOLUTIONS CO., LTD.
Reel/Frame 052755/0917 →