IP Library Granted Patent US 9,569,361
Granted Patent B2
US 9,569,361 · App. 14/325,343 · Granted Feb 14, 2017

Pre-fetch chaining

Inventors: Arun Radhakrishnan (Austin, TX); Kevin Lepak (Austin, TX); Rama Gopal (Austin, TX); Murali Chinnakonda (Austin, TX); Karthik Sundaram (Austin, TX); Brian Grayson (Austin, TX)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F12/0862G06F2212/6022
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,569,361
App. No.
14/325,343
Granted
Feb 14, 2017
Kind
B2
Abstract

According to one general aspect, an apparatus may include a cache pre-fetcher, and a pre-fetch scheduler. The cache pre-fetcher may be configured to predict, based at least in part upon a virtual address, data to be retrieved from a memory system. The pre-fetch scheduler may be configured to convert the virtual address of the data to a physical address of the data, and request the data from one of a plurality of levels of the memory system. The memory system may include a plurality of levels, each level of the memory system configured to store data.

Claims (52)

1. An apparatus comprising:

a cache pre-fetcher configured to predict, based at least in part upon a virtual address, data to be retrieved from a memory system; and

a pre-fetch scheduler configured to:

convert the virtual address of the data to a physical address of the data, and

request the data from a determined one of a plurality of levels of the memory system, wherein:

if a determined level comprises a first level of the memory system, injecting requests for data for the pre-fetched data into a first level fill buffer configured to store requests for data to be stored within the first level of the memory system,

if the determined level comprises a second level of the memory system and if the second level fill buffer does include capacity to store the requests for data, injecting requests for data for the pre-fetched data into a second level fill buffer configured to store the requests for data to be stored within the second level of the memory system, and

if the determined level comprises the second level of the memory system and the second level fill buffer does not include capacity to store the requests for data, injecting requests for data for the pre-fetched data into a second level pre-fetch request buffer configured to store the requests for data that are to be placed within the second level fill buffer when the second level fill buffer comprises capacity for an additional request for data; and

wherein the memory system comprises a plurality of levels, each level of the memory system configured to store data.

2. The apparatus of claim 1 , wherein the pre-fetch scheduler is configured to:

request the data be placed into one of a plurality of levels of the memory system based upon a predefined set of criteria involving an available amount of system resources.

3. The apparatus of claim 2 ,

wherein the predefined set of criteria involving an available amount of system resources comprises a determination as to whether the first level fill buffer is capable of storing more requests for data.

4. The apparatus of claim 2 , wherein cache pre-fetcher is configured to cross a page boundary when predicting data to be retrieved from the memory system; and

wherein the predefined set of criteria involving an available amount of system resources comprises a determination as that the physical address of the data is not comprised by a restricted memory area.

5. The apparatus of claim 1 , wherein the pre-fetch scheduler is configured to:

request the data from one of a plurality of levels of the memory system based upon the physical address of the data.

6. The apparatus of claim 1 , wherein the pre-fetch scheduler is configured to:

request the physical address of the data from a translation look aside buffer.

7. The apparatus of claim 1 , wherein the pre-fetch scheduler is configured to pre-fetch a translation look-aside buffer entry.

8. A method comprising:

predicting, based at least in part upon a virtual address, data likely to be accessed, from a memory system, by an instruction;

selecting, from a plurality of levels of the memory system, a determined level of the memory system to store pre-fetched data, wherein the pre-fetched data comprises the data predicted to be accessed by the instruction; and

causing the pre-fetched data to be stored by the determined level of the memory system before the pre-fetched data is accessed by the instruction, wherein:

if the determined level comprises a first level of the memory system, injecting requests for data for the pre-fetched data into a first level fill buffer configured to store requests for data to be stored within the first level of the memory system,

if the determined level comprises the second level of the memory system and if the second level fill buffer does include capacity to store the requests for data, injecting requests for data for the pre-fetched data into a second level fill buffer configured to store the requests for data to be stored within the second level of the memory system, and

if the determined level comprises the second level of the memory system and the second level fill buffer does not include capacity to store the requests for data, injecting requests for data for the pre-fetched data into a second level pre-fetch request buffer configured to store the requests for data that are to be placed within the second level fill buffer when the second level fill buffer comprises capacity for an additional request for data.

9. The method of claim 8 , wherein selecting a determined level of the memory system comprises:

selecting a first level of the memory system if the first level fill buffer associated with the first level of the memory system comprises capacity for an additional request for the pre-fetch data, and

selecting the second level of the memory system if the first level fill buffer associated with the first level of the memory system does not comprise capacity for an additional request for the pre-fetch data.

10. The method of claim 8 , wherein predicting data likely to be accessed by an instruction comprises:

crossing a page boundary when predicting data.

11. The method of claim 8 , wherein predicting data likely to be accessed by an instruction comprises:

converting the virtual address associated with the pre-fetch data to a physical address; and

determining that the physical address is not comprised by a restricted memory area.

12. The method of claim 8 , wherein predicting data likely to be accessed by an instruction comprises:

converting the virtual address associated with the pre-fetch data to a physical address via a translation look aside buffer; and

wherein converting the virtual address comprises pre-fetching a translation look-aside buffer entry.

13. A system comprising:

an execution unit configured to execute one or more instructions;

a pre-fetch unit configured to:

identify pre-fetched data by predicting, based at least in part upon a virtual address, data to be accessed by one or more of the instructions, and

cause the pre-fetched data to be stored within a determined one of a plurality of levels of a memory system prior to the pre-fetched data being accessed by the instruction, wherein:

if a determined level comprises a first level of the memory system, injecting requests for data for the pre-fetched data into a first level fill buffer configured to store requests for data to be stored within the first level of the memory system,

if the determined level comprises a second level of the memory system and if the second level fill buffer does include capacity to store the requests for data, injecting requests for data for the pre-fetched data into a second level fill buffer configured to store the requests for data to be stored within the second level of the memory system, and

if the determined level comprises the second level of the memory system and the second level fill buffer does not include capacity to store the requests for data, injecting requests for data for the pre-fetched data into a second level pre-fetch request buffer configured to store the requests for data that are to be placed within the second level fill buffer when the second level fill buffer comprises capacity for an additional request for data; and

the memory system comprising a plurality of levels, wherein each level of the memory system is configured to store data.

14. The system of claim 13 , wherein the pre-fetch unit is configured to cross a page boundary when predicting data to be accessed by the one or more of the instructions; and

convert the virtual address associated with the pre-fetched data to a physical address.

15. The system of claim 13 , wherein the pre-fetch unit is configured to:

request a physical address associated with the pre-fetched data from a translation look-aside buffer, and

cause the translation look-aside buffer to pre-fetch a translation look-aside buffer entry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2014
From: RADHAKRISHNAN, ARUN; LEPAK, KEVIN; GOPAL, RAMA; CHINNAKONDA, MURALI; SUNDARAM, KARTHIK; GRAYSON, BRIAN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 033255/0225 →
Continuity (2)
Provisional Application 61926247 · Jan 10, 2014
Related Publication 20150199275A1 · Jul 16, 2015