IP Library › Granted Patent US 11,720,364
Granted Patent B2
US 11,720,364 · App. 17/033,282 · Granted Aug 8, 2023

Methods and apparatus to dynamically enable and/or disable prefetchers

Inventors: Hanna Alam (Jish, IL); Leeor Peled (Hefer, IL); Refael Mizrahi (Raanana, IL); Amir Leibovitz (Biniamina, IL); Jonathan Beimel (Michmoret, IL); James Hermerding, II (Vancouver, WA); Gilad Olswang (Kfar Menahem, IL); Michal Moran (Tel Aviv, IL); Moran Peri (Kiryat Motzkin, IL); Ido Karavany (Giv'ot Bar, IL); Sudheer Nair (Portland, OR); Hadas Beja (Yehud-Monosson, IL); Avishai Wagner (Kfar Saba, IL); Ronen Laperdon (Modiin, IL)
Assignee: Intel Corporation
G06F9/3802G06F9/30043G06F9/30047G06F9/505G06F11/3024
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 11,720,364
App. No.
17/033,282
Granted
Aug 8, 2023
Kind
B2
Abstract

Disclosed Methods, Apparatus, and articles of manufacture to dynamically enable and/or disable prefetchers are disclosed. An example apparatus include an interface to access telemetry data, the telemetry data corresponding to a counter of a core in a central processing unit, the counter corresponding to a first phase of a workload executed at the central processing unit; a prefetcher state selector to select a prefetcher state for a subsequent phase based on the telemetry data; and the interface to instruct the core in the central processing unit to operate in the subsequent phase according to the prefetcher state.

Claims (50)

1. An apparatus to dynamically enable or disable a prefetcher, the apparatus comprising:

an interface to access telemetry data, the telemetry data corresponding to a counter of a core in a central processing unit, the counter corresponding to a current phase of a workload executed at the central processing unit when the core is operating in an enabled prefetcher state;

prefetcher state selector software to select a disabled prefetcher state for a subsequent phase based on (a) a first telemetry score of the current phase of the workload and (b) a second telemetry score corresponding to an opposite prefetcher state relative to the current phase; and

the interface to instruct the core in the central processing unit to operate in the subsequent phase according to the disabled prefetcher state.

2. The apparatus of claim 1 , further including score determiner software to determine a telemetry score for the core at the current phase using the telemetry data, the telemetry score corresponding to instructions per second for the current phase.

3. The apparatus of claim 2 , wherein the enabled prefetcher state is a first enabled prefetcher state and the disabled prefetcher state is a first disabled prefetcher state, the prefetcher state selector software to:

determine a first value corresponding to first telemetry scores for second disabled prefetcher states across a plurality of previous phases of the workload; and

determine a second value corresponding to second telemetry scores for second enabled prefetcher states across the plurality of previous phases.

4. The apparatus of claim 3 , wherein the prefetcher state selector software is to select the disabled prefetcher state for the subsequent phase based on a difference between (a) a third value corresponding to the first telemetry score of the first current phase of the workload and (b) the first value corresponding to the first telemetry score for the second disabled prefetcher states across the plurality of previous phases of the workload.

5. The apparatus of claim 3 , wherein the prefetcher state selector software is to select the disabled prefetcher state for the subsequent phase based on a comparison of (a) the first value of the second disabled prefetcher states across the plurality of previous phases and (b) the second value of the second enabled prefetcher states across the plurality of previous phases.

6. The apparatus of claim 1 , further including storage to store at least one of the telemetry data of the core at the current phase or a telemetry score of the core at the current phase in conjunction with the enabled prefetcher state of the core at the current phase.

7. The apparatus of claim 6 , wherein the storage is to store at least one of previous telemetry data of the core at previous phases or previous telemetry scores of the core at the previous phases in conjunction with previous prefetcher states of the core at the previous phases.

8. A non-transitory computer readable storage medium comprising instructions which, when executed, cause a processor to at least:

access telemetry data, the telemetry data corresponding to a counter of a core in a central processing unit, the counter corresponding to a current phase of a workload executed at the central processing unit when the core is operating in an enabled prefetcher state;

select a disabled prefetcher state for a subsequent phase based on (a) a first telemetry score of the current phase of the workload and (b) a second telemetry score corresponding to an opposite prefetcher state relative to the current phase; and

instruct the core in the central processing unit to operate in the subsequent phase according to the disabled prefetcher state.

9. The computer readable storage medium of claim 8 , wherein the instructions are to cause the processor to determine a telemetry score for the core at the current phase using the telemetry data, the telemetry score corresponding to instructions per second for the current phase.

10. The computer readable storage medium of claim 9 , wherein the enabled prefetcher state is a first enabled prefetcher state and the disabled prefetcher state is a first disabled prefetcher state, the instructions to cause the processor to:

determine a first value corresponding to first telemetry scores for second disabled prefetcher states across a plurality of previous phases of the workload; and

determine a second value corresponding to first average telemetry scores for second enabled prefetcher states across the plurality of previous phases.

11. The computer readable storage medium of claim 10 , wherein the instructions are to cause the processor to select the disabled prefetcher state for the subsequent phase based on a difference between (a) a third value corresponding to the first telemetry score of the current phase of the workload and (b) the first value corresponding to the first telemetry score for the second disabled prefetcher states across the plurality of previous phases of the workload.

12. The computer readable storage medium of claim 10 , wherein the instructions are to cause the processor to select the disabled prefetcher state for the subsequent phase based on a comparison of (a) the first value of the second disabled prefetcher states across the plurality of previous phases and (b) the second value of the second enabled prefetcher states across the plurality of previous phases.

13. The computer readable storage medium of claim 8 , wherein the instructions are to cause the processor to store at least one of the telemetry data of the core at the current phase or a telemetry score of the core at the current phase in conjunction with the enabled prefetcher state of the core at the current phase.

14. The computer readable storage medium of claim 13 , wherein the instructions are to cause the processor to store at least one of previous telemetry data of the core at previous phases or previous telemetry scores of the core at the previous phases in conjunction with previous prefetcher states of the core at the previous phases.

15. A method to dynamically enable or disable a prefetcher, the method comprising:

accessing, by executing an instruction with a processor, telemetry data, the telemetry data corresponding to a counter of a core in a central processing unit, the counter corresponding to a current phase of a workload executed at the central processing unit when the core is operating in an enabled prefetcher state;

selecting, by executing an instruction with the processor, a disabled prefetcher state for a subsequent phase based on (a) a first telemetry score of the current phase of the workload and (b) a second telemetry score corresponding to an opposite prefetcher state relative to the current phase; and

instructing, by executing an instruction with the processor, the core in the central processing unit to operate in the subsequent phase according to the disabled prefetcher state.

16. The method of claim 15 , further including determining a telemetry score for the core at the current phase using the telemetry data, the telemetry score corresponding to instructions per second for the current phase.

17. The method of claim 16 , wherein the enabled prefetcher state is a first enabled prefetcher state and the disabled prefetcher state is a first disabled prefetcher state, further including:

determining a first value corresponding to first telemetry scores for second disabled prefetcher states across a plurality of previous phases of the workload; and

determining a second value corresponding to second telemetry scores for second enabled prefetcher states across the plurality of previous phases.

18. The method of claim 17 , further including selecting the disabled prefetcher state for the subsequent phase based on a difference between (a) a third value corresponding to the first telemetry score of the current phase of the workload and (b) the first value corresponding to the first telemetry score for the second disabled prefetcher states across the plurality of previous phases of the workload.

19. The method of claim 17 , further including selecting the disabled prefetcher state for the subsequent phase based on a comparison of (a) the first value of the second disabled prefetcher states across the plurality of previous phases and (b) the second value of the second enabled prefetcher states across the plurality of previous phases.

20. The method of claim 15 , further including storing at least one of the telemetry data of the core at the current phase or a telemetry score of the core at the current phase in conjunction with the enabled prefetcher state of the core at the current phase.

21. The method of claim 20 , further including storing at least one of previous telemetry data of the core at previous phases or previous telemetry scores of the core at the previous phases in conjunction with previous prefetcher states of the core at the previous phases.

22. An apparatus to dynamically enable or disable a prefetcher, the apparatus comprising:

interface circuitry to access telemetry data corresponding to a counter of a core in processor circuitry, the counter corresponding to a current phase of a workload executed at the processor circuitry when the core is operating in an enabled prefetcher state;

instructions; and

the processor circuitry to execute the instructions to:

select a disabled prefetcher state for a subsequent phase based on (a) a first telemetry score of the current phase of the workload and (b) a second telemetry score corresponding to an opposite prefetcher state relative to the current phase; and

instruct the core in the processor circuitry to operate in the subsequent phase according to the disabled prefetcher state.

23. The apparatus of claim 22 , wherein the processor circuitry is to determine a telemetry score for the core at the current phase using the telemetry data, the telemetry score corresponding to instructions per second for the current phase.

24. The apparatus of claim 23 , wherein the enabled prefetcher state is a first enabled prefetcher state and the disabled prefetcher state is a first disabled prefetcher state, the processor circuitry to:

determine a first value corresponding to first telemetry scores for second disabled prefetcher states across a plurality of previous phases of the workload; and

determine a second value corresponding to first average telemetry scores for second enabled prefetcher states across the plurality of previous phases.

25. The apparatus of claim 24 , wherein the processor circuitry is to select the disabled prefetcher state for the subsequent phase based on a difference between (a) a third value corresponding to the first telemetry score of the current phase of the workload and (b) the first value corresponding to the first telemetry score for the second disabled prefetcher states across the plurality of previous phases of the workload.

26. The apparatus of claim 24 , wherein the processor circuitry is to select the disabled prefetcher state for the subsequent phase based on a comparison of (a) the first value of the second disabled prefetcher states across the plurality of previous phases and (b) the second value of the second enabled prefetcher states across the plurality of previous phases.

27. The apparatus of claim 22 , wherein the processor circuitry is to store at least one of the telemetry data of the core at the current phase or a telemetry score of the core at the current phase in conjunction with the enabled prefetcher state of the core at the current phase.

28. The apparatus of claim 27 , wherein the processor circuitry is to store at least one of previous telemetry data of the core at previous phases or previous telemetry scores of the core at the previous phases in conjunction with previous prefetcher states of the core at the previous phases.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2020
From: ALAM, HANNA; PELED, LEEOR; MIZRAHI, REFAEL; LEIBOVITZ, AMIR; BEIMEL, JONATHAN; HERMERDING II, JAMES; OLSWANG, GILAD; MORAN, MICHAL; PERI, MORAN; KARAVANY, IDO; NAIR, SUDHEER; BEJA, HADAS; WAGNER, AVISHAI; LAPERDON, RONEN
To: INTEL CORPORATION
Reel/Frame 053936/0875 →
Continuity (2)
Provisional Application 63000975 · Mar 27, 2020
Related Publication 20210011726A1 · Jan 14, 2021
Cited By (1)
US 12,591,431