IP Library Granted Patent US 7,136,992
Granted Patent B2
US 7,136,992 · App. 10/739,689 · Granted Nov 14, 2006

Method and apparatus for a stew-based loop predictor

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,136,992
App. No.
10/739,689
Granted
Nov 14, 2006
Kind
B2
Abstract

A method and apparatus for a loop predictor for predicting the end of a loop is disclosed. In one embodiment, the loop predictor may have a predict counter to hold a predict count representing the expected number of times that a predictor stew value will repeat during the execution of a given loop. The loop predictor may also have one or more running counters to hold a count of the times that the stew value has repeated during the execution of the present loop. When the counter values match the predictor may issue a prediction that the loop will end.

Claims (47)

1. An apparatus, comprising:

a source of instructions to store a set of instructions;

a loop predictor to predict when a branch of said set of instructions will be not loop direction, to include a predict counter to hold a predict count corresponding to a number of times a stew value was repeated during a previous execution of a loop bounded by said branch, and to include a running counter to hold a running count of a number of times said stew value has been repeated during a current execution of said loop.

2. The apparatus of claim 1 , further comprising a compare circuitry to issue a prediction when said running count matches said predict count.

3. The apparatus of claim 1 , wherein said predict count is trained by results from a pipeline retirement stage.

4. The apparatus of claim 1 , wherein said running counter includes a retired counter to hold a retired count.

5. The apparatus of claim 4 , wherein said retired count is incremented responsive to when a value of said stew repeats.

6. The apparatus of claim 4 , wherein said predict count is set equal to said retired count after said branch is not loop direction when said retired count is not zero.

7. The apparatus of claim 4 , wherein said running counter further includes a speculative counter to hold a speculative count incremented when instructions of said set of instructions are issued from said source of instructions and a value of said stew repeats.

8. The apparatus of claim 7 , wherein said speculative count is set to said retired count when said speculative count is not valid.

9. The apparatus of claim 7 , further including a switch to select between said speculative count and said retired count responsive to a speculative valid signal.

10. The apparatus of claim 1 , further including a confidence counter to hold a confidence count incremented when said predict count equals said running count and when said branch is not loop direction.

11. A method, comprising:

storing a predict count of the number of times a stew value repeats between a first occurrence of a branch not loop direction and a second occurrence of said branch not loop direction;

maintaining a running count of the number of times a stew value repeats subsequent to a third occurrence of a branch not loop direction; and

predicting a fourth branch not loop direction when said running count matches said predict count.

12. The method of claim 11 , further comprising training said predict count by results from a pipeline retirement stage.

13. The method of claim 11 , wherein said maintaining said running count includes maintaining a retired count.

14. The method of claim 13 , further comprising incrementing said retired count responsive to when a value of said stew repeats.

15. The method of claim 14 , further comprising setting said predict count to said retired count at said second occurrence when said retired count is not zero.

16. The method of claim 14 , wherein said maintaining said running count includes maintaining a speculative count incremented when instructions are issued from a source of instructions and a value of said stew repeats.

17. The method of claim 16 , wherein speculative count is set to said retired count when said speculative is not valid.

18. The method of claim 16 , further comprising selecting said running count from said retired count and said speculative count responsive to whether said speculative count is valid.

19. The method of claim 11 , further comprising incrementing a confidence count when said predict count equals said running count and when said branch is not loop direction.

20. A system, comprising:

a processor including a source of instructions to store a set of instructions, and a loop predictor to predict when a branch of said set of instructions will be not loop direction, to include a predict counter to hold a predict count corresponding to a number of times a stew value was repeated during a previous execution of a loop bounded by said branch, and to include a running counter to hold a running count of a number of times said stew value has been repeated during a current execution of said loop;

an interface coupled to said processor; and

an audio input/output coupled to said interface and said processor.

21. The system of claim 20 , further comprising a compare circuitry to issue a prediction when said running count matches said predict count.

22. The system of claim 21 , wherein said predict count is trained by results from a pipeline retirement stage.

23. The system of claim 21 , wherein said running counter includes a retired counter to hold a retired count.

24. The system of claim 23 , wherein said retired count is incremented responsive to when a value of said stew repeats.

25. The system of claim 24 , wherein said predict count is set equal to said retired count after said branch is not loop direction when said retired count is not zero.

26. An apparatus, comprising:

means for storing a predict count of the number of times a stew value repeats between a first occurrence of a branch not loop direction and a second occurrence of said branch not loop direction;

means for maintaining a running count of the number of times a stew value repeats subsequent to a third occurrence of a branch not loop direction; and

means for predicting a fourth branch not loop direction when said running count matches said predict count.

27. The apparatus of claim 26 , further comprising means for training said predict count by results from a pipeline retirement stage.

28. The apparatus of claim 27 , wherein said means for maintaining said running count includes means for maintaining a retired count.

29. The apparatus of claim 28 , further comprising means for incrementing said retired count responsive to when a value of said stew repeats.

30. The apparatus of claim 28 , further comprising means for setting said predict count to said retired count at said second occurrence when said retired count is not zero.

31. The apparatus of claim 28 , wherein said means for maintaining said running count includes means for maintaining a speculative count incremented when instructions are issued from a source of instructions and a value of said stew repeats.

32. The apparatus of claim 31 , wherein said speculative count is set to said retired count when said speculative is not valid.

33. The apparatus of claim 31 , further comprising means for selecting said running count from said retired count and said speculative count responsive to whether said speculative count is valid.

34. The apparatus of claim 26 , further comprising means for incrementing a confidence count when said predict count equals said running count and when said branch is not loop direction.

35. A processor, comprising: a loop predictor to produce a loop prediction; a global predictor to produce a global prediction; and a prediction resolution circuit to give priority to said loop prediction over said global prediction; wherein said loop predictor predicts when a branch of said set of instructions will be not loop direction, includes a predict counter to hold a predict count corresponding to a number of times a stew value was repeated during a previous execution of a loop bounded by said branch, and includes a running counter to hold a running count of a number of times said stew value has been repeated during a current execution of said loop.

36. The processor of claim 35 , further comprising a bimodal predictor to produce a bimodal prediction, wherein said prediction resolution circuit gives priority to said global prediction over said bimodal prediction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2004
From: MAIYURAN, SUBRAMANIAM; SMITH, PETER J.; JOURDAN, STEPHAN
To: INTEL CORPORATION
Reel/Frame 015085/0145 →
Continuity (1)
Related Publication 20050138341A1 · Jun 23, 2005