IP Library Granted Patent US 8,195,889
Granted Patent B2
US 8,195,889 · App. 12/410,891 · Granted Jun 5, 2012

Hybrid region CAM for region prefetcher and methods thereof

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 8,195,889
App. No.
12/410,891
Granted
Jun 5, 2012
Kind
B2
Abstract

A first address is received and is used to determine a first address range. The first address range includes a second address range and a third address range. If the first address is in the second address range, a fourth address range is determined. The fourth address range is different from the first address range. Information is retrieved from a memory in response to determining that a second address is in the first address range or the fourth address range. If the first address is in the third address range, a fifth address range is determined. The fifth address range is different from the first address range. Other information is retrieved from the memory in response to determining the second address is in the first address range or the fifth address range.

Claims (63)

1. A method, comprising:

receiving a first address;

determining a first address range based on the first address, the first address range including a second address range sequentially contiguous with a third address range, wherein the first, second, and third address ranges are a linear sequence of contiguous addresses;

in response to determining the first address is in the second address range:

determining a fourth address range, addresses of the fourth address range different from and sequentially contiguous with addresses of the first address range; and

retrieving first information from a memory in response to determining a second address is in the first address range or the fourth address range; and

in response to determining the first address is in the third address range:

determining a fifth address range in response to determining the first address is in the third address range, addresses of the fifth address range different from and sequentially contiguous with addresses of the first address range; and

retrieving second information from a memory in response to determining the second address is in the first address range or the fifth address range.

2. The method of claim 1 , wherein the second address range and the third address range are non-overlapping address ranges.

3. The method of claim 1 , wherein determining the first address range comprises masking a first portion of the first address.

4. The method of claim 1 , wherein retrieving the first information comprises:

modifying a prefetch value in response to determining the second address is in the first address range or the second address range; and

retrieving the first information based on the prefetch value.

5. The method of claim 1 , further comprising:

determining a sixth address range based on the second address;

determining a seventh address range in response to determining the second address is in a first portion of the sixth address range; and

retrieving third information from the memory in response to determining a third address is in the sixth address range or the seventh address range.

6. The method of claim 1 , wherein receiving the first address comprises receiving the first address in response to an indication of a miss at a cache memory, the miss based on the first address.

7. The method of claim 1 , further comprising storing a representation of the first address range and of the fourth address range at a content addressable memory, the representations of the first address range and the fourth address range each including a base address of the corresponding address range.

8. The method of claim 1 , further comprising storing a representation of the first address range and of the fifth address range at a content addressable memory, the representations of the first address range and the fifth address range each including a base address of the corresponding address range.

9. A method, comprising:

in response to determining information associated with a first address is not stored at a first memory, storing a representation of the first address at a content addressable memory, the representation including a base address of a range of addresses that includes the first address, wherein the range of addresses is a linear sequence of contiguous addresses:

in response to receiving a second address:

determining a first address range based on the first address, the first address range including a second address range sequentially contiguous with a third address range;

in response to determining the first address is in the second address range and is not in the third address range:

determining a fourth address range based on the first address, addresses of the fourth address range sequentially contiguous with addresses of the first address range; and

indicating a hit at the content addressable memory in response to determining the second address is in the first or the fourth address ranges.

10. The method of claim 9 , further comprising:

in response to receiving the second address:

in response to determining the first address is in the third address range and is not in the second address range:

determining a fifth address range based on the first address; and

indicating a hit at the content addressable memory in response to determining the second address is in the first or the fifth address ranges.

11. The method of claim 10 , further comprising:

in response to indicating a hit at the content addressable memory:

retrieving information associated with the first address and information associated with the second address from a second memory.

12. The method of claim 9 , further comprising:

in response to determining information associated with the second address is not stored at the first memory:

storing a fifth address range based on the second address; and

storing a sixth address range based on the second address in response to determining the second address is in a first portion of the fifth address range.

13. The method of claim 9 , wherein the second address range is approximately half the first address range.

14. The method of claim 9 , wherein storing the representation of the first address comprises storing a base address of the first address range.

15. The method of claim 9 , wherein the second address range is of a different size than the first address range.

16. The method of claim 15 , wherein the second address range is approximately half a size of the first address range.

17. A device, comprising:

a memory comprising an input to receive a first address and an output to provide a first miss indication in response to the memory determining information associated with the first address is not stored at the memory; and

a content addressable memory comprising:

an input coupled to the output of the memory;

a memory module configured to store a representation of a second address, the representation including a base address of a range of addresses that includes the second address;

an output; and

a comparison module configured to, in response to the first miss indication:

determining a first address range based on the second address, the first address range including a second address range sequentially contiguous with a third address range, wherein the first and second address ranges are a linear sequence of contiguous addresses;

in response to determining the second address is in the second address range and is not in the third address range:

determining a fourth address range based on the second address, addresses of the fourth address range sequentially contiguous with addresses of the first address range; and

indicate hit information at the output in response to determining the first address is in the first or the fourth address ranges.

18. The device of claim 17 , further comprising:

a prefetch module comprising an input coupled to the output of the content addressable memory and an output to provide prefetch information based on the hit information.

19. The device of claim 17 , further comprising:

a memory coupled to the output of the prefetch module, the memory configured to retrieve stored information based on the prefetch information.

20. The device of claim 17 , wherein the comparison module is configured to:

in response to determining the second address is in the third address range and is not in the second address range:

determining a fifth address range based on the second address, the fifth address range sequentially contiguous with the first address range; and

indicate a hit at the content addressable memory in response to determining the first address is in the first or the fifth address ranges.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2015
From: ADVANCED MICRO DEVICES, INC.
To: ADVANCED SILICON TECHNOLOGIES, LLC
Reel/Frame 036700/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2009
From: DESHPANDE, MAHADEV S.; ARNOLD, RONNY L.; ROGERS, PAUL L.; WILLIAMS, DOUGLAS R.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 022637/0271 →