IP Library Granted Patent US 9,734,072
Granted Patent B2
US 9,734,072 · App. 14/666,771 · Granted Aug 15, 2017

Main memory prefetch operation and multiple prefetch operation

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,734,072
App. No.
14/666,771
Granted
Aug 15, 2017
Kind
B2
Abstract

Provided is an integrated circuit that includes a first prefetcher component communicatively coupled to a processor and a second prefetcher component communicatively coupled to the memory controller. The first prefetcher component configured for sending prefetch requests to the memory controller. The second prefetcher component configured for accessing prefetch data based on the prefetch request and storing the prefetch data in a prefetch cache of the memory controller.

Claims (37)

1. A computer system, comprising:

a first prefetcher component communicatively coupled to a processor, the first prefetcher component configured for sending a prefetch request to a memory controller; and

a second prefetcher component located within and communicatively coupled to the memory controller, the second prefetcher component configured for accessing prefetch data based on the prefetch request and storing the prefetch data in a prefetch cache of the memory controller,

wherein prior to receiving the prefetch request from the first prefetcher component, the second prefetcher component is further configured for retrieving the prefetch data and storing the prefetch data in a memory of the second prefetcher component, wherein the prefetch data is moved from the memory of the second prefetcher component to the prefetch cache of the memory controller based on a receipt of the prefetch request.

2. The computer system of claim 1 , wherein the first prefetcher component is further configured for determining a stride prefetch and locking onto access patterns based on the stride prefetch.

3. The computer system of claim 1 , wherein the first prefetcher component is further configured for determining a cost of performing a prefetch operation based on the prefetch request, independent of another determination performed by the second prefetcher component.

4. The computer system of claim 1 , wherein the second prefetcher component is further configured for determining a cost of performing a prefetch operation based on the prefetch request, independent of another determination performed by the first prefetcher component.

5. The computer system of claim 1 , wherein the first prefetcher component is further configured for determining the prefetch request based on local resources and a cost of sending the prefetch request over an interconnect.

6. The computer system of claim 1 , wherein the second prefetcher component is further configured for determining a cost of prefetching to a local cache associated with the memory controller based on a cache capacity of the memory controller, a remaining capacity of the local cache, a memory constraint, or a combination thereof.

7. The computer system of claim 1 , wherein the second prefetcher component is further configured for conducting one or more prefetch operations based on prefetch hints attached to regular memory loads from the processor.

8. The computer system of claim 1 , further comprising a third prefetcher component communicatively coupled to another memory controller, the third prefetcher component configured for accessing other prefetch data based on a second prefetch request from the first prefetcher component, the third prefetcher component further configured for storing the other prefetch data in another prefetch cache of the other memory controller.

9. The computer system of claim 1 , wherein the first prefetcher component is configured for attaching prefetch hint information to the prefetch request, wherein the prefetch hint information comprises stride information and data related to a determined number of reads.

10. A prefetch method comprising:

receiving, by a slave prefetch component located in a memory controller, a prefetch request from a master prefetch component located in a processor;

accessing, by the slave prefetch component, prefetch data based on the prefetch request;

storing, by the slave prefetch component, the prefetch data in a prefetch cache of the memory controller;

prior to receiving the prefetch request to the master prefetch component, retrieving, by the slave prefetch component, the prefetch data based on a previous prefetch hint;

storing, by the slave prefetch component, the prefetch data in a memory of the slave prefetch component; and

after receiving the prefetch request from the master prefetch component, moving, by the slave prefetch component, the prefetch data from the memory of the slave prefetch component to the prefetch cache of the memory controller.

11. The prefetch method of claim 10 , further comprising:

determining, by the slave prefetch component, a prefetch stride based on an address hit or an address miss; and

locking onto access patterns, by the slave prefetch component, based on the prefetch stride.

12. The prefetch method of claim 10 , further comprising:

independently determining, by the slave prefetch component, a cost of performing a prefetch operation based on the prefetch request.

13. The prefetch method of claim 10 , further comprising:

determining, by the slave prefetch component, the prefetch request based on local resources and a cost of sending the prefetch request over an interconnect.

14. The prefetch method of claim 10 , further comprising:

determining, by the slave prefetch component, a cost of prefetching to a local cache associated with the memory controller based on a cache capacity of the memory controller, a remaining capacity of the local cache, a memory constraint, or a combination thereof.

15. The prefetch method of claim 10 , further comprising:

receiving, by the slave prefetch component, prefetch hint information associated with the prefetch request, wherein the prefetch hint information comprises stride information and data related to a number of reads to fetch in additional to a current read.

16. An integrated circuit, comprising:

a first prefetcher component communicatively coupled to a processor, the first prefetcher component configured for sending prefetch requests to a memory controller; and

a second prefetcher component communicatively coupled to, and located in, the memory controller, the second prefetcher component configured for accessing prefetch data based on at least one prefetch request of the prefetch requests and storing the prefetch data in a prefetch cache of the memory controller,

wherein prior to receiving the prefetch request from the first prefetcher component, the second prefetcher component is further configured for retrieving the prefetch data and storing the prefetch data in a memory of the second prefetcher component, wherein the prefetch data is moved from the memory of the second prefetcher component to the prefetch cache of the memory controller based on a receipt of the prefetch request.

17. The integrated circuit of claim 16 , further comprising:

a third prefetcher component communicatively coupled to another memory controller, the third prefetcher component configured for accessing other prefetch data based on a second prefetch request of the prefetch requests, the third prefetcher component further configured for storing the other prefetch data in another prefetch cache of the other memory controller.

18. The integrated circuit of claim 16 , wherein the first prefetcher component further configured for determining a cost of performing a prefetch operation based on the prefetch requests independent of another determination performed by the second prefetcher component.

Assignments (6)
CHANGE OF NAME Recorded Dec 6, 2017
From: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
To: AMPERE COMPUTING LLC
Reel/Frame 044717/0683 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2017
From: MACOM CONNECTIVITY SOLUTIONS, LLC
To: PROJECT DENVER INTERMEDIATE HOLDINGS LLC
Reel/Frame 044798/0599 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2017
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: MACOM CONNECTIVITY SOLUTIONS, LLC (SUCCESSOR TO APPLIED MICRO CIRCUITS CORPORATION)
Reel/Frame 044652/0609 →
SECURITY INTEREST Recorded May 11, 2017
From: MACOM CONNECTIVITY SOLUTIONS, LLC (SUCCESSOR TO APPLIED MICRO CIRCUITS CORPORATION)
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 042444/0891 →
MERGER AND CHANGE OF NAME Recorded Apr 6, 2017
From: APPLIED MICRO CIRCUITS CORPORATION; MACOM CONNECTIVITY SOLUTIONS, LLC; MACOM CONNECTIVITY SOLUTIONS, LLC
To: MACOM CONNECTIVITY SOLUTIONS, LLC
Reel/Frame 042176/0185 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2015
From: SVENDSEN, KJELD
To: APPLIED MICRO CIRCUITS CORPORATION
Reel/Frame 035240/0903 →