IP Library Granted Patent US 7,093,072
Granted Patent B2
US 7,093,072 · App. 10/371,969 · Granted Aug 15, 2006

Methods for improved data caching

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 7,093,072
App. No.
10/371,969
Granted
Aug 15, 2006
Kind
B2
Abstract

Write transactions with large amounts of data using a typical cache may consume over half of the available backing store bandwidth because of the way traditional caching algorithms fill lines during a write-invoked eviction. Relaxing the traditional constraint of cache coherency improves write performance by eliminating unneeded cache line fills. This technique conserves backing store bandwidth during many write operations while having negligible impact on the cache's read performance.

Claims (51)

1. A method for servicing requests to a backing store using a cache comprising at least one structure, the cache structure being associated with at least one address in the backing store, the method comprising:

(a) receiving a request to write to at least one address in the backing store;

(b) determining the presence in the cache of a cache structure associated with the at least one address;

(c) if no cache structure is associated with the at least one address, adding data to an invalidated cache structure from at least one address in the backing store that includes the at least one address of the request;

(d) servicing the request using the cache structure of step (c); and

(e) storing a value indicating a contiguous subregion of the structure affected by the servicing of the request.

2. The method of claim 1 wherein the cache structures are multi-byte lines.

3. The method of claim 1 wherein the value is stored in a descriptor comprising a pointer to the cache structure and at least one field for storing a value.

4. The method of claim 1 wherein the cache structure of step (c) is the least recently used structure in the cache.

5. The method of claim 1 wherein step (b) comprises:

(b-1) computing an index value from the at least one address of the request; and

(b-2) examining an entry in a lookup table associated with the computed index value to determine the presence in the cache of a cache structure associated wit the at least one address.

6. The method of claim 1 wherein the contents of the cache structure of step (c) are written to the backing store before the addition of the data from the backing store.

7. The method of claim 6 wherein the written contents of the cache structure are a subset of the contents of the cache structure.

8. The method of claim 1 wherein step (e) comprises:

(e-1) accessing a previously stored subregion value;

(e-2) computing a flew subregion value reflecting the sum of the previously stored subregion value and the value specifying the subregion affected by the servicing of the request, the resulting sum specifying a contiguous range; and

(e-3) storing the computed subregion value.

9. The method of claim 1 further comprising writing the contents of the contiguous subregion of the cache structure to the backing store.

10. The method of claim 1 wherein the size of the cache structures is adjusted to improve write performance.

11. A method for servicing requests to a backing store using a cache comprising at least one structure, the cache structure being associated with at least one address in the backing store, the method comprising:

(a) receiving a request to write to at least one address in the backing store;

(b) determining the presence in the cache of a cache structure associated with the at least one address;

(c) if no cache structure is associated with the at least one address, evicting a first structure in the cache;

(d) servicing the request using the first cache structure; and

(e) storing a value indicating a contiguous subregion of the first cache structure affected by the servicing of the request.

12. The method of claim 11 further comprising servicing a second request to read from at least one address in the backing store, wherein the at least one address of the second request is: (i) associated with the first cache structure, and (ii) contained in the addresses associated with the contiguous subregion of the first cache structure.

13. The method of claim 11 further comprising:

receiving a second request to read from at least one address in the backing store, wherein the at least one address of the second request is: (i) associated with the first cache structure, and (ii) not contained in the addresses associated with the contiguous subregion of the first cache structure;

adding data to a second cache structure from at least one address in the backing store that includes the at least one address of the second request; and

copying the data from a contiguous subregion of the first cache structure to the second cache structure.

14. The method of claim 13 further comprising servicing the second request using the second cache structure.

15. The method of claim 13 further comprising replacing the first cache structure with the second cache structure.

16. The method of claim 15 further comprising modifying the stored subregion value to reflect the sum of the previously-stored subregion value for the first cache structure and the value specifying the subregion affected by the servicing of the second request, the resulting sum specifying a contiguous range.

17. The method of claim 11 further comprising:

receiving a second request to write to at least one address in the backing store, the at least one address of the second request is: (i) associated wit the first cache structure, and (ii) not contained in the addresses associated with the contiguous subregion of the first cache structure;

adding data to a second structure in the cache from at least one addresses in the backing store that includes the at least one address of the second request; and

copying the data from the contiguous subregion of the first cache structure to the second cache structure.

18. The method of claim 17 further comprising servicing the second request using the second cache structure.

19. The method of claim 17 further comprising replacing the first cache structure with the second cache structure.

20. The method of claim 19 further comprising modifying the stored subregion value to reflect the sum of the previously-stored subregion value for the first cache structure with the value specifying the subregion affected by the servicing of the second request, the resulting sum specifying a contiguous range.

21. The method of claim 11 wherein the cache structures are multi-byte lines.

22. The method of claim 11 wherein the value is stored in a descriptor comprising a pointer to the cache stricture and at least one field for storing a value.

23. The method of claim 11 wherein the structure of step (c) is the least recently used structure in the cache.

24. The method of claim 11 wherein step (b) comprises:

(b-1) computing an index value from the at least one address of the request; and

(b-2) examining an entry in a lookup table associated with the computed index value to determine the presence in the cache of a cache structure associated wit the at least one address.

25. The method of claim 11 wherein the contents of the cache structure of step (c) are written to a backing store before the first structure is invalidated.

26. The method of claim 25 wherein the written contents of the cache structure are a subset of the contents of the cache structure.

27. The method of claim 11 further comprising writing the contents of the contiguous subregion of the cache structure to the backing store.

28. The method of claim 11 wherein the size of the cache structures is adjusted to improve write performance.

Assignments (14)
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: ENTERASYS NETWORKS, INC.
Reel/Frame 046047/0223 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2016
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 040521/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: ENTERASYS NETWORKS, INC.
To: EXTREME NETWORKS, INC.
Reel/Frame 036538/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2015
From: ENTERASYS NETWORKS, INC.
To: EXTREME NETWORKS, INC.
Reel/Frame 036467/0566 →
SECURITY AGREEMENT Recorded Jul 27, 2015
From: ENTERASYS NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 036189/0509 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 25339/0875 Recorded Nov 1, 2013
From: WELLS FARGO TRUST CORPORATION LIMITED
To: ENTERASYS NETWORKS INC.
Reel/Frame 031558/0677 →
GRANT OF SECURITY INTEREST IN U.S. PATENTS Recorded Nov 10, 2010
From: ENTERASYS NETWORKS INC.
To: WELLS FARGO TRUST CORPORATION LIMITED, AS SECURITY AGENT
Reel/Frame 025339/0875 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2003
From: TENOR NETWORKS, INC.
To: ENTERASYS NETWORKS, INC.
Reel/Frame 013742/0106 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2003
From: HASKINS, GREGORY
To: TENOR NETWORKS, INC.
Reel/Frame 014100/0392 →