IP Library › Granted Patent US 9,251,083
Granted Patent B2
US 9,251,083 · App. 13/792,428 · Granted Feb 2, 2016

Communicating prefetchers in a microprocessor

Inventors: Rodney E. Hooker (Austin, TX); John Michael Greer (Austin, TX)
Assignee: VIA TECHNOLOGIES, INC.
G06F12/0862G06F2212/6026
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,251,083
App. No.
13/792,428
Granted
Feb 2, 2016
Kind
B2
Abstract

A microprocessor includes a first and second hardware data prefetchers configured to prefetch data into the microprocessor according to first and second respective algorithms, which are different. The second prefetcher is configured to detect a memory access pattern within a memory region and responsively prefetch data from the memory region according the second algorithm. The second prefetcher is further configured to provide to the first prefetcher a descriptor of the memory region. The first prefetcher is configured to stop prefetching data from the memory region in response to receiving the descriptor of the memory region from the second prefetcher. The second prefetcher also provides to the first prefetcher a communication to resume prefetching data from the memory region, such as when the second prefetcher subsequently detects that a predetermined number of memory accesses to the memory region are not in the memory access pattern.

Claims (35)

1. A microprocessor, comprising:

a first hardware data prefetcher, configured to prefetch data into the microprocessor according to a first algorithm; and

a second hardware data prefetcher, configured to prefetch data into the microprocessor according to a second algorithm, wherein the first and second algorithms are different;

wherein the second prefetcher is configured to detect a memory access pattern within a memory region and responsively prefetch data from the memory region according the second algorithm;

wherein the second prefetcher is further configured to provide to the first prefetcher a descriptor of the memory region;

wherein the first prefetcher is configured to stop prefetching data from the memory region in response to receiving the descriptor of the memory region from the second prefetcher.

2. The microprocessor of claim 1 , wherein the memory region is a memory page according to a virtual memory system of the microprocessor.

3. The microprocessor of claim 1 , wherein the second prefetcher is further configured to provide to the first prefetcher a communication to resume prefetching data from the memory region according to the first algorithm.

4. The microprocessor of claim 3 , wherein the second prefetcher is configured to provide the communication to the first prefetcher when the second prefetcher subsequently detects that a predetermined number of memory accesses to the memory region are not in the memory access pattern.

5. The microprocessor of claim 4 , wherein the predetermined number of memory accesses to the memory region is programmable.

6. The microprocessor of claim 1 , wherein the first and second data prefetchers prefetch data according to the first and second algorithms, respectively, in response to first and second respective streams of memory accesses.

7. The microprocessor of claim 6 , wherein the first and second streams of memory accesses are the same stream of memory accesses.

8. The microprocessor of claim 6 , wherein each of the memory accesses in the first and second streams specify a virtual memory address.

9. A method, comprising:

prefetching, by a first hardware data prefetcher, data into a microprocessor according to a first algorithm;

detecting, by a second hardware prefetcher, a memory access pattern within a memory region and responsively prefetching data from the memory region according to a second algorithm, wherein the first and second algorithms are different;

providing, by the second prefetcher, a descriptor of the memory region to the first prefetcher; and

stopping, by the first prefetcher, prefetching data from the memory region in response to receiving the descriptor of the memory region from the second prefetcher.

10. The method of claim 9 , wherein the memory region is a memory page according to a virtual memory system of the microprocessor.

11. The method of claim 9 , wherein the second prefetcher is further configured to provide to the first prefetcher a communication to resume prefetching data from the memory region according to the first algorithm.

12. The method of claim 11 , wherein the second prefetcher is configured to provide the communication to the first prefetcher when the second prefetcher subsequently detects that a predetermined number of memory accesses to the memory region are not in the memory access pattern.

13. The method of claim 12 , wherein the predetermined number of memory accesses to the memory region is programmable.

14. The method of claim 9 , wherein the first and second data prefetchers prefetch data according to the first and second algorithms, respectively, in response to first and second respective streams of memory accesses.

15. A computer program product encoded in at least one non-transitory computer usable storage medium for use with a computing device, the computer program product comprising:

computer usable program code embodied in said storage medium, for describing a microprocessor, the computer usable program code comprising:

first program code for describing a first hardware data prefetcher, configured to prefetch data into the microprocessor according to a first algorithm; and

second program code for describing a second hardware data prefetcher, configured to prefetch data into the microprocessor according to a second algorithm, wherein the first and second algorithms are different;

wherein the second prefetcher is configured to detect a memory access pattern within a memory region and responsively prefetch data from the memory region according the second algorithm;

wherein the second prefetcher is further configured to provide to the first prefetcher a descriptor of the memory region;

wherein the first prefetcher is configured to stop prefetching data from the memory region in response to receiving the descriptor of the memory region from the second prefetcher.

16. The computer program product of claim 15 , wherein the memory region is a memory page according to a virtual memory system of the microprocessor.

17. The computer program product of claim 15 , wherein the second prefetcher is further configured to provide to the first prefetcher a communication to resume prefetching data from the memory region according to the first algorithm.

18. The computer program product of claim 17 , wherein the second prefetcher is configured to provide the communication to the first prefetcher when the second prefetcher subsequently detects that a predetermined number of memory accesses to the memory region are not in the memory access pattern.

19. The computer program product of claim 18 , wherein the predetermined number of memory accesses to the memory region is programmable.

20. The computer program product of claim 15 , wherein the at least one non-transitory computer usable storage medium is selected from the set of a disk, tape, or other magnetic, optical, or electronic storage medium.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2013
From: HOOKER, RODNEY E.; GREER, JOHN MICHAEL
To: VIA TECHNOLOGIES, INC.
Reel/Frame 030217/0914 →
Continuity (1)
Related Publication 20140258641A1 · Sep 11, 2014