IP Library Granted Patent US 7,877,578
Granted Patent B2
US 7,877,578 · App. 12/071,586 · Granted Jan 25, 2011

Processing apparatus for storing branch history information in predecode instruction cache

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,877,578
App. No.
12/071,586
Granted
Jan 25, 2011
Kind
B2
Abstract

The present invention provides an information processing apparatus having a predecoder decoding an operation code in an input instruction, generating conditional branch instruction information indicating that the input instruction is a conditional branch instruction and instruction type information indicating a type of the conditional branch instruction when the input instruction is a conditional branch instruction, and writing the input instruction, from which the operation code is deleted, the conditional branch instruction information and the instruction type information to the instruction cache memory, and a history information writing unit writing history information indicating whether or not the conditional branch instruction was branched, as a result of executing the conditional branch instruction stored in the instruction cache memory, to an area in the instruction cache memory, where the operation code of the conditional branch instruction is deleted.

Claims (39)

1. An information processing apparatus comprising:

an instruction cache memory storing an instruction;

a predecoder decoding an operation code in an input instruction, generating conditional branch instruction information indicating that the input instruction is a conditional branch instruction and instruction type information indicating a type of the conditional branch instruction when the input instruction is a conditional branch instruction, and writing the input instruction, from which the operation code is deleted, the conditional branch instruction information and the instruction type information to the instruction cache memory; and

a history information writing unit writing history information indicating whether or not the conditional branch instruction was branched, as a result of executing the conditional branch instruction stored in the instruction cache memory, to an area in the instruction cache memory, where the operation code of the conditional branch instruction is deleted.

2. The information processing apparatus according to claim 1 ,

wherein the predecoder writes the instruction type information to an area in the instruction cache memory, where the operation code of the conditional branch instruction is deleted.

3. The information processing apparatus according to claim 1 ,

wherein the history information writing unit writes to add latest history information to prior history information stored in the instruction cache memory.

4. The information processing apparatus according to claim 1 , further comprising

a branch predictor predicting whether or not the conditional branch instruction will be branched based on the history information of the conditional branch instruction when the conditional branch instruction in the instruction cache memory is read, and instructing to generate a predicted subsequent reading address.

5. The information processing apparatus according to claim 1 ,

wherein, when the conditional branch instruction corresponding to the history information is read again, the history information writing unit predicts whether or not the conditional branch instruction will be branched based on the history information, and writes the prediction information and the history information to the instruction cache memory.

6. The information processing apparatus according to claim 5 , further comprising

an address generator generating a subsequent read address indicated by the prediction information of the conditional branch instruction when the conditional branch instruction in the instruction cache memory is read.

7. The information processing apparatus according to claim 1 ,

wherein the instruction cache memory is divided into two or more instruction cache memories to write the input instruction in a distributed manner.

8. The information processing apparatus according to claim 1 ,

wherein the instruction cache memory has a single-port memory storing the input instruction, from which the operation code is deleted, the conditional branch instruction information and the instruction type information, and a dual-port memory storing the history information.

9. The information processing apparatus according to claim 1 ,

wherein the predecoder decodes the operation code in the input instruction and, when the input instruction is not a conditional branch instruction, writes conditional branch instruction information indicating that the input instruction is not a conditional branch instruction and the input instruction to the instruction cache memory.

10. The information processing apparatus according to claim 1 , further comprising

an instruction execution unit reading the instruction in the instruction cache memory to decode and execute, and

wherein the history information writing unit writes the history information according to a result of exaction of the conditional branch instruction by the instruction execution unit.

11. The information processing apparatus according to claim 10 ,

wherein the predecoder writes the instruction type information to an area in the instruction cache memory, where the operation code of the conditional branch instruction is deleted.

12. The information processing apparatus according to claim 11 ,

wherein the history information writing unit writes to add the latest history information to the prior history information stored in the instruction cache memory.

13. The information processing apparatus according to claim 12 ,

wherein the predecoder decodes the operation code in the input instruction and, when the input instruction is not a conditional branch instruction, writes conditional branch instruction information indicating that the input instruction is not a conditional branch instruction and the input instruction to the instruction cache memory.

14. The information processing apparatus according to claim 13 , further comprising

a branch predictor predicting whether or not the conditional branch instruction will be branched based on the history information of the conditional branch instruction and generating a subsequent read address when the conditional branch instruction in the instruction cache memory is read.

15. The information processing apparatus according to claim 13 ,

wherein, when the conditional branch instruction corresponding to the history information is read again, the history information writing unit predicts whether or not the conditional branch instruction will be branched based on the history information and writes the prediction information and the history information to the instruction cache memory.

16. The information processing apparatus according to claim 15 , further comprising

an address generator generating a subsequent read address indicated by the prediction information of the conditional branch instruction when the conditional branch instruction in the instruction cache memory is read.

17. The information processing apparatus according to claim 13 ,

wherein the instruction cache memory is divided into two or more instruction cache memories to write the input instruction in a distributed manner.

18. The information processing apparatus according to claim 13 ,

wherein the instruction cache memory has a single-port memory storing the input instruction, from which the operation code is deleted, the conditional branch instruction information and the instruction type information, and a dual-port memory storing the history information.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2015
From: FUJITSU SEMICONDUCTOR LIMITED
To: SOCIONEXT INC.
Reel/Frame 035508/0637 →
CHANGE OF NAME Recorded Jul 27, 2010
From: FUJITSU MICROELECTRONICS LIMITED
To: FUJITSU SEMICONDUCTOR LIMITED
Reel/Frame 024794/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2008
From: FUJITSU LIMITED
To: FUJITSU MICROELECTRONICS LIMITED
Reel/Frame 021985/0715 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2008
From: YAMAZAKI, YASUSHIRO
To: FUJITSU LIMITED
Reel/Frame 020596/0665 →