IP Library Granted Patent US 9,916,161
Granted Patent B2
US 9,916,161 · App. 14/750,535 · Granted Mar 13, 2018

Instruction and logic for tracking fetch performance bottlenecks

Inventor: Ahmad Yasin (Haifa, IL)
Assignee: Intel Corporation
G06F9/30076G06F9/3836G06F11/30
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 9,916,161
App. No.
14/750,535
Granted
Mar 13, 2018
Kind
B2
Abstract

A processor includes a front end, an execution unit, a retirement stage, a counter, and a performance monitoring unit. The front end includes logic to receive an event instruction to enable supervision of a front end event that will delay execution of instructions. The execution unit includes logic to set a register with parameters for supervision of the front end event. The front end further includes logic to receive a candidate instruction and match the candidate instruction to the front end event. The counter includes logic to generate the front end event upon retirement of the candidate instruction.

Claims (50)

1. A processor, comprising:

a front end circuitry to receive an event instruction to enable supervision of a front end event that causes execution of instructions to be delayed;

an execution unit comprising circuitry to execute the event instruction and set a register with parameters for supervision of the front end event;

a retirement stage comprising circuitry to retire the event instruction;

an instruction decode queue;

a latency counter to:

identify a number of bubbles within the instruction decode queue;

determine that the number of bubbles exceeds a threshold; and

mark a subsequent instruction based upon the determination that the number of bubbles exceeds the threshold; and

a performance monitoring unit

comprising circuitry to:

generate the front end event upon retirement of the subsequent instruction based on presence of the mark.

2. The processor of claim 1 , further comprising circuitry to:

filter the front end event based upon a critical filter, the critical filter may indicate a likelihood that the front end event will cause execution delays.

3. The processor of claim 1 , wherein the performance monitoring unit is to report an address of the subsequent instruction based upon the front end event and retirement of the subsequent instruction.

4. The processor of claim 1 ,

wherein the threshold comprises a number of cycles for which the instruction decode queue includes bubbles, and the subsequent instruction comprises a first instruction after an allocation window including bubbles.

5. The processor of claim 1 ,

wherein the threshold comprises a number of cycles for which the number of bubbles are within the instruction decode queue.

6. A method comprising, within a processor:

receiving an event instruction to enable supervision of a front end event that will delay execution of instructions;

executing the event instruction and setting a register with parameters for supervision of the front end event;

retiring the event instruction;

identifying a number of bubbles within an instruction decode queue of the processor;

determining that the number of bubbles exceeds a threshold;

marking a subsequent instruction with an event tag based upon the determination that the number of bubbles exceeds the threshold; and

generating the front end event upon retirement of the subsequent instruction based on presence of the event tag.

7. The method of claim 6 , further comprising:

filtering the front end event based upon a critical filter, the critical filter may indicate a likelihood that the front end event will cause execution delays.

8. The method of claim 6 , further comprising reporting an address of the subsequent instruction based upon the front end event and retirement of the subsequent instruction.

9. The method of claim 6 , wherein the subsequent instruction comprises a first instruction after an allocation window including bubbles.

10. A system comprising:

a front end including a first logic to receive an event instruction to enable supervision of a front end event that will delay execution of instructions;

an execution unit including a second logic to execute the event instruction and set a register with parameters for supervision of the front end event;

a retirement stage including a third logic to retire the event instruction;

an instruction decode queue;

a latency counter to:

identify a number of bubbles within the instruction decode queue;

determine that the number of bubbles exceeds a threshold; and

assign an event tag to a subsequent instruction based upon the determination that the number of bubbles exceeds the threshold; and

a performance monitoring unit

comprising circuitry to:

generate the front end event upon retirement of the subsequent instruction based on presence of the event tag.

11. The system of claim 10 , further comprising circuitry to:

filter the front end event based upon a critical filter, the critical filter may indicate a likelihood that the front end event will cause execution delays.

12. The system of claim 10 , wherein the performance monitoring unit is to report an address of the subsequent instruction based upon the front end event and retirement of the subsequent instruction.

13. The system of claim 10 ,

wherein the threshold comprises a number of cycles for which the instruction decode queue includes bubbles, and the subsequent instruction comprises a first instruction after an allocation window including bubbles.

14. The system of claim 10 ,

wherein the threshold comprises a number of cycles for which the number of bubbles are within the instruction decode queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2015
From: YASIN, AHMAD
To: INTEL CORPORATION
Reel/Frame 036028/0883 →
Continuity (1)
Related Publication 20160378470A1 · Dec 29, 2016