IP Library Granted Patent US 7,783,871
Granted Patent B2
US 7,783,871 · App. 10/609,814 · Granted Aug 24, 2010

Method to remove stale branch predictions for an instruction prior to execution within a microprocessor

Assignee: Intel Corporation
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,783,871
App. No.
10/609,814
Granted
Aug 24, 2010
Kind
B2
Abstract

According to one embodiment a computer system is disclosed. The computer system includes a microprocessor and a chipset coupled to the microprocessor. The microprocessor removes stale branch instructions prior to the execution of a first cache line by finding existing branch prediction data for the first cache line.

Claims (49)

1. A microprocessor comprising:

a packet builder to decode macro-instructions to form micro-operations;

an instruction cache to receive and store the micro-operations as cache lines from the packed builder;

a branch prediction array, coupled with the instruction cache, to store data corresponding with predictions for branch jump instructions; and

a branch prediction logic having a read port and a hit detection logic, wherein the read port is activated when the packet builder is decoding the macro-instructions, and wherein the branch prediction logic to:

receive information from the packet builder via the activated read port when the packet builder is decoding the macro-instructions, and

invalidate stale branch predictions from the branch prediction array via the hit detection logic when the packet builder is decoding the macro-instructions and transmitting the micro-operations to the instruction cache and as the cache lines are being written to the instruction cache.

2. The microprocessor of claim 1 further comprising a fetch and decode pipeline, coupled with the packet builder, to receive the macro-instructions.

3. The microprocessor of claim 2 further comprising:

a queue, coupled with the instruction cache, to receive micro-operations that are to be executed; and

a core, coupled with the queue, to execute the micro-operations.

4. The microprocessor of claim 3 further comprising branch prediction update logic, coupled with the core and the branch prediction array, to write update data to the branch prediction array.

5. The microprocessor of claim 1 , wherein the branch prediction logic performs a write command to the branch prediction array if stale predictions are to be invalidated.

6. A method comprising:

decoding a macro instruction to a micro-operation by the packet builder;

transmitting the micro-operations from the packet builder to an instruction cache for storage as a first cache line;

transmitting information corresponding to the first cache line from the packet builder to a branch prediction logic;

activating a read port of the branch prediction logic when the packet builder is decoding the macro-instructions;

receiving information from the packet builder via the activated read port when the packet builder is decoding the macro-instructions;

invalidating a stale branch prediction from a branch prediction array via a hit detection logic of the branch prediction logic when the packet builder is decoding the macro-instructions and transmitting the micro-operations to the instruction cache and as the first cache line is being written to the instruction cache.

7. The method of claim 6 further comprising:

finding a prediction in the branch prediction array corresponding to the first cache line; and

invalidating the stale branch prediction if the prediction is found.

8. The method of claim 6 further comprising:

transmitting the information corresponding to the first cache line from the packet builder to the branch prediction logic at the same time the micro-operations are transmitted to the instruction cache.

9. A computer system comprising:

a microprocessor having:

a packet builder to decode macro-instructions to form micro-operations;

an instruction cache to receive and store the micro-operations as cache lines from the packed builder;

a branch prediction array, coupled with the instruction cache, to store data corresponding with predictions for branch jump instructions; and

a branch prediction logic having a read port and a hit detection logic, wherein the read port is activated when the packet builder is decoding the macro-instructions, and wherein the branch prediction logic to:

receive information from the packet builder via the activated read port when the packet builder is decoding the macro-instructions, and

invalidate stale branch predictions from the branch prediction array via the hit detection logic when the packet builder is decoding the macro-instructions and transmitting the micro-operations to the instruction cache and as the cache lines are being written to the instruction cache; and

a chipset coupled with the microprocessor.

10. The microprocessor of claim 9 further comprising:

a queue, coupled with the instruction cache, to receive micro-operations that are to be executed; and

a core, coupled with the queue, to execute the micro-operations.

11. The microprocessor of claim 10 further comprising branch prediction update logic, coupled with the core and with the branch prediction array, to write update data to the branch prediction array.

12. A computer system comprising:

a microprocessor having:

a packet builder to decode macro-instructions to form micro-operations;

an instruction cache to receive and store the micro-operations as cache lines from the packed builder;

a branch prediction array, coupled with the instruction cache, to store data corresponding with predictions for branch jump instructions; and

a branch prediction logic having a read port and a hit detection logic, wherein the read port is activated when the packet builder is decoding the macro-instructions, and wherein the branch prediction logic to:

receive information from the packet builder via the activated read port when the packet builder is decoding the macro-instructions, and

invalidate stale branch predictions from the branch prediction array via the hit detection logic when the packet builder is decoding the macro-instructions and transmitting the micro-operations to the instruction cache and as the cache lines are being written to the instruction cache;

a chipset coupled with the microprocessor; and

a memory device coupled with the chipset.

13. The computer system of claim 12 , wherein the branch prediction logic performs a write command to the branch prediction array if stale predictions are to be invalidated.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2014
From: INTEL CORPORATION
To: SONY CORPORATION OF AMERICA
Reel/Frame 032893/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2003
From: COMBS, JONATHAN D.; CHEONG, HOICHI
To: INTEL CORPORATION
Reel/Frame 014599/0882 →
Continuity (1)
Related Publication 20040268102A1 · Dec 30, 2004