WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry    
United States Patent5594885   
Link to this pagehttp://www.wikipatents.com/5594885.html
Inventor(s)Lautzenheiser; Marvin (Springfield, VA)
AbstractA computer data storage device made up of both solid state storage and rotating magnetic disk which maintains a fast response time approaching that of a solid state device for many workloads and improving on the response time of a normal magnetic disk for practically all workloads. The high performance is accomplished by a special hardware configuration coupled with unique procedures and algorithms pertaining to the methodology of placing and maintaining data in the most appropriate media based on actual and projected activity. The system management features a completely searchless method for determining the location of data within and between the two devices. Sufficient solid state memory capacity is incorporated to permit retention of useful, active data, as well as to permit prefetching of data into the solid state component when the probabilities favor such action. Movement of updated data from the solid state storage to the magnetic disk and of prefetched data from the magnetic disk to the solid state component is done on a timely, but unobtrusive, basis as background tasks of the described device. The direct, private channel between the solid state storage and the magnetic disk prevents the conversations between these two media from conflicting with the transmission of data between the host computer and the described device. A set of microprocessors manage and oversee the data transmission and storage. Data integrity is maintained through a power interruption via a battery assisted, automatic and intelligent shutdown procedure.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5594885
Method for operating a cache memory system using a recycled register for

     identifying a reuse status of a corresponding cache entry - US Patent 5594885 Drawing
Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry
Inventor     Lautzenheiser; Marvin (Springfield, VA)
Owner/Assignee     Zitel Corporation (Fremont, CA)
Patent assignment
All assignments
Publication Date     January 14, 1997
Application Number     08/255,251
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 7, 1994
US Classification     711/133 711/118 711/136
Int'l Classification     G06F 012/12
Examiner     Chan; Eddie P.
Assistant Examiner     Nguyen; Hiep T.
Attorney/Law Firm     Caserza; Steven F. Flehr, Hohbach, Test, Albritton & Herbert
Address
Parent Case     CROSS-REFERENCE TO RELATED APPLICATIONS This Application is a continuation-in-part of U.S. Ser. No. 08/139,559 filed Oct. 20, 1993, now U.S. Pat. No. 5,353,430, which in turn is a continuation of U.S. Ser. No. 07/860,731, filed Feb. 21, 1992, now abandoned which in turn is a continuation-in-part of U.S. Ser. No. 07/665,021, filed Mar. 5, 1991 now abandoned.
Priority Data    
USPTO Field of Search     395/403 395/440 395/445 395/463 395/461 395/470 395/487 395/460 395/486 395/471
Patent Tags     operating cache memory recycled register for identifying reuse status corresponding cache entry
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5410653
Macon, Jr.
711/137
Apr,1995

[0 after 0 votes]
5309451
Noya
714/766
May,1994

[0 after 0 votes]
5224217
Zangenehpour
711/136
Jun,1993

[0 after 0 votes]
5133060
Weber
711/113
Jul,1992

[0 after 0 votes]
5043885
Robinson
711/133
Aug,1991

[0 after 0 votes]
4972364
Barrett
711/117
Nov,1990

[0 after 0 votes]
4959774
Davis
714/6
Sep,1990

[0 after 0 votes]
4956803
Tayler
711/113
Sep,1990

[0 after 0 votes]
4920478
Furuya
711/136
Apr,1990

[0 after 0 votes]
4908793
Yamagata
365/52
Mar,1990

[0 after 0 votes]
4888691
George
714/15
Dec,1989

[0 after 0 votes]
4882642
Tayler
360/78.11
Nov,1989

[0 after 0 votes]
4843542
Dashiell
711/119
Jun,1989

[0 after 0 votes]
4835686
Furuya
711/136
May,1989

[0 after 0 votes]
4636946
Hartung
711/136
Jan,1987

[0 after 0 votes]
4611289
Coppola
713/300
Sep,1986

[0 after 0 votes]
4607346
Hill
711/170
Aug,1986

[0 after 0 votes]
4603380
Easton
711/113
Jul,1986

[0 after 0 votes]
4583166
Hartung
711/113
Apr,1986

[0 after 0 votes]
4530054
Hamstra
711/133
Jul,1985

[0 after 0 votes]
4523206
Sasscer
711/130
Jun,1985

[0 after 0 votes]
4490782
Dixon
711/136
Dec,1984

[0 after 0 votes]
4468730
Dodd
711/113
Aug,1984

[0 after 0 votes]
4458307
McAnlis
714/22
Jul,1984

[0 after 0 votes]
4437155
Sawyer
711/136
Mar,1984

[0 after 0 votes]
4433734
van der Lely
172/68
Feb,1984

[0 after 0 votes]
4394733
Swenson
711/3
Jul,1983

[0 after 0 votes]
4086629
Desyllas
711/213
Apr,1978

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed:

1. A method for operating a cache memory system having a mass storage device and a cache memory, said method comprising the steps of:

storing in said cache memory selected data from said mass storage device;

maintaining a Least Recently Used (LRU) table indicating the relative recency of use of each data entry stored in said cache memory;

updating a value in a recycle register for each entry in said LRU table upon the occurrence of one or more of:

when data stored in said cache memory associated with said LRU entry has been accessed;

when data associated with said LRU entry is added to said cache memory;

when said LRU table entry is rechained for reuse after a previous non-use; and

when said LRU table entry reaches the LRU position of said LRU table; and

when cache space is determined to be needed corresponding to an area of mass storage which is not currently assigned in said cache memory:

examining the entry at the LRU position of said LRU table

to determine the value of said recycle register associated with said LRU table entry;

if said value is greater than a predefined threshold value, updating said value and placing said entry at the top of said LRU table and repeating said step of examining the entry at the LRU position of said LRU table to determine the value of said recycle register; and

if said value is not greater than said predefined threshold value, decaching said data in said cache memory associated with said LRU table entry, reusing said LRU entry for satisfying said current need for storing data not stored in said cache memory, and placing the new LRU entry at the MRU position of said LRU table or marking it dechained depending on the new usage of the entry.

2. A method as in claim 1 which further comprises the step of maintaining data in said LRU table indicating which sectors of each block of data stored in said cache have been modified.

3. A method as in claim 1 wherein, for each block stored in said cache memory, not all sectors of a given block need be cached.

4. A method as in claim 1 wherein an LRU track entry is flagged as a dechained member of the LRU table if that track contains modified data.

5. A method as in claim 4 wherein a track entry is made a chained member of the LRU table after its modified data is written to said mass storage device.

6. A method as in claim 5 wherein said track entry is made a chained member at the bottom of the LRU table if every sector of said track was modified prior to writing to said mass storage device.

7. A method as in claim 5 wherein said track entry is made a chained member at the top of the LRU table if less than every sector of said track was modified prior to writing to said mass storage device.

8. A method as in claim 1 wherein said step of updating a value in a recycle register upon data associated with said LRU entry being added to said cache memory is based upon the original reason for caching said data within said cache memory.

9. A method as in claim 8 wherein said reason is selected from the group of reasons consisting of a read-miss, a write-miss, a read-ahead, and a read-behind.

10. A method as in claim 1 wherein said step of updating a value in a recycle register upon data associated with said LRU entry being added to said cache memory is based upon the proportion of cache memory which is in a modified condition and needs to be written to said mass storage device.

11. A method as in claim 8 wherein said step of updating a value in a recycle register when said LRU table entry is rechained for reuse after a previous nonuse is dependent on one or more of:

the current value in said recycle register;

the original reason for caching data associated with said recycle register;

the nature of the most recent activity of said data associated with said recycle register; and

the proportion of cache memory which is in a modified condition and needs to be written to said mass storage device.

12. A method as in claim 11 wherein said original reason for caching said data is selected from the group of reasons consisting of read-miss, write-miss, read-ahead, and read-behind.

13. A method as in claim 11 wherein said nature of the most recent activity of said data associated with said recycle register is selected from read-hit, write-hit, read-ahead, and read-behind.

14. A method as in claim 11 wherein said original reason for caching said data is selected from the group of reasons consisting of read-miss, write-miss, read-ahead, and read-behind.

15. A method as in claim 11 wherein said nature of the most recent activity of said data associated with said recycle register is selected from read-hit, write-hit, read-ahead, and read-behind.

16. A method as in claim 1 wherein said step of updating a value in a recycle register when said LRU table entry reaches the LRU position is dependent on one or more of:

the current value in said recycle register;

the previous reason for caching data associated with said recycle register;

the nature of the most recent activity of said data associated with said recycle register; and

the proportion of cache memory which is in a modified condition and needs to be written to said mass storage device.
 Description Submit all comments and votes
 


INTRODUCTION

1. Field of Invention

This invention relates to a high performance computer data storage device including a combination of solid state storage and a rotating magnetic disk device.

2. Description of Prior Art

A number of computer data storage systems exist which make some use of solid state memory devices as a caching controller for placement between a computer host device and rotating magnetic disk devices. A typical caching system uses a single solid state memory unit as a holding area for data stored on a string of magnetic disks, thereby allowing certain information to be stored in a high speed cache memory, thereby increasing speed of performance as compared to the use solely of relatively lower speed disk memories, i.e. the percentage of times a desired piece of data is contained in the high speed cache memory, thereby allowing faster access as compared with when that data is only stored in a disk drive. A block diagram of such a system is shown in FIG. 1. Host computer 101 communicates with the entire string 102 of disks 102-1 through 102-N via cache unit 103 via Host interface 104, such as Small computer Systems Interface (SCSI). All data going to or from disk strip 102 passes through the cache-to-disk data path consisting of host interface 104, cache unit 103, and disk interface 105. Cache unit 103 manages the caching of data and services requests from host computer 101. Major components of cache unit 103 include microprocessor 103-1, cache management hardware 103-2, cache management firmware 103-3, address lookup table 103-4, and solid state cache memory 103-5.

The prior art cache system of FIG. 1 is intended to hold frequently accessed data in a solid state memory area so as to give more rapid access to that data than would be achieved if the same data were accessed from the disk media. Typically, such cache systems are quite effective when attached to certain host computers and under certain workloads. However, there exist some drawbacks and, under certain conditions, such cache systems exhibit a performance level less than that achieved by similar, but uncached, devices. Some of the factors contributing to the less than desirable performance of prior art cached disk devices are now described.

The single cache memory 103-5 is used in conjunction with all disks in disk string 102. Data from any of the disks may reside in cache memory 103-5 at any given time. The currently accessed data is given precedence for caching regardless of the disk drive on which it resides. When fulfilling a host command, the determination of whether or not the data is in cache memory 103-5, and the location of that data in cache memory 103-5, is usually via hashing schemes and table search operations. Hashing schemes and table searches can introduce time delays of their own which can defeat the purpose of the cache unit itself.

Performance is very sensitive to cache-hit rates. Due to caching overhead and queuing times, a low hit rate in a typical string oriented cache system can result in overall performance that is poorer than that of configured uncached string of disks.

The size of cache memory 103-5 relative to the capacity of disk drives 102 is generally low. An apparently obvious technique to remedy a low hit rate is to increase the cache memory 103-5 size. However, it has been found that there is an upper limit to the size of cache memory 103-5 above which adding more capacity has limited benefits. With limited cache memory 103-5 capacity, a multitude of requests over a variety of data segments exhausts the capability of the cache system to retain the desirable data in cache memory 103-5. Often, data that would be reused in the near future is decached prematurely to make room in cache memory 103-5 for handling new requests from the host computer 101. The result is a reduced cache hit rate. A reduced hit rate increases the number of disk accesses; increased disk accesses increases the contention on the data path. A self-defeating cycle is instituted.

"Background" cache-ahead operations are limited since the data transferred during such activities travels over the same data path as, and often conflicts with, the data transferred to service direct requests from the host computer 101. The data path between cache unit 103 and disk string 102 can easily be overloaded. All data to and from any of the disks in disk string 102, whether for satisfying requests from host computer 101 or for cache management purposes, travels across the cache-to-disk path. This creates a bottleneck if a large amount of prefetching of data from disk string 102 to cache memory 103-5 occurs. Each attempt to prefetch data from disk string 102 into cache memory 103-5 potentially creates contention for the path with data being communicated between any of the disk drives of disk string 102 and host computer 101. As a result, prefetching of data into cache memory 103-5 must be judiciously limited; increasing the size of the cache memory 103-5 beyond a certain limit does not produce corresponding improvements in the performance of the cache system. This initiates a string of related phenomena. Cache-ahead management is often limited to fetching an extra succeeding track of data from disk wherever a read command from the host cannot be fulfilled from the cached data. This technique helps to minimize the tendency of cache-ahead to increase the queuing of requests waiting for the path between cache memory 103-5 and disk string 102. However, one of the concepts on which caching is based is that data accesses tend to be concentrated within a given locality within a reasonably short time frame. For example, data segments are often accessed in sequential fashion. Limiting the cache-ahead operations to being a function of read misses can have the negative effect of lowering the cache hit rate since such limitation may prevent or degrade the exploitation of the locality of data accesses.

A variety of algorithms and configurations have been devised in attempts to optimize the performance of string caches. A nearly universally accepted concept involves the retention and replacement of cached data segments based on least-recently used (LRU) measurements. The decaching of data to make room for new data is managed by a table which gives, for each cached block of data, its relative time since it was last accessed. Depending on the algorithm used, this process can also result in some form of table search with a potential measurable time delay.

Cache memory 103-5 is generally volatile; the data is lost if power to the unit is removed. This characteristic, coupled with the possibility of unexpected power outages, has generally imposed a write-through design for handling data transferred from host computer 103 to the cached string. In such a design, all writes from host computer 103 are written directly to disk; handled at disk speed, these operations are subject to all the inherent time delays of seek, latency, and lower transfer rates commonly associated with disk operations.

Cache unit 103 communicates with the string of disk drives 102 through disk interface 105.

SUMMARY OF THE INVENTION

Computer operations and throughput are often limited by the time required to write data to, or read data from, a peripheral data storage device. A solid state storage device has high-speed response, but at a relatively high cost per megabyte of storage. A rotating magnetic disk, optical disk, or other mass media provides high storage capacity at a relatively low cost per megabyte, but with a low-speed response. The teachings of this invention provide a hybrid solid state and mass storage device which gives near solid state speed at a cost per megabyte approaching that of the mass storage device.

For the purposes of this discussion, embodiments will be described with regard to magnetic disk media. However, it is to be understood that the teachings of this invention are equally applicable to other types of mass storage devices, including optical disk devices, and the like.

This invention is based on a combination of hardware and firmware features.

The hardware features include: one or more rotating magnetic disk media, an ample solid state storage capacity; private channels between the disks and the solid state storage device; and high speed microprocessors to gather the intelligence, make data management decisions, and carry out the various data management asks.

The firmware features include the logic for gathering the historical data, making management decisions, and instructing the hardware to carry out the various data management operations. Important aspects of the firmware include making the decisions regarding the retention of data in the solid state memory based on usage history gathered during the device's work load experience.

The present invention includes a unique methodology for retaining, or recycling, of certain cached data which normally would be decached. While it would be normal to decache that data which is least recently used, this invention adds the further feature of utilizing a simple, but effective method of determining the probability of reuse of the least recently used data. This recycling methodology determines which data, although currently the least recently used, should still be retained in cache based on its higher potential reuse; and which least recently used data has a lessor probability of being reused, and thus, should be decached to make space in cache for other data which is or may be of current need.

The hybrid storage media of this invention performs at near solid state speeds for many types of computer workloads while practically never performing at less than normal magnetic disk speeds for any workload.

A rotating magnetic disk media is used to give the device a large capacity; the solid state storage is used to give the device a high-speed response capability. By associating the solid state media directly with a single magnetic disk device, a private data communication line is established which avoids contention between normal data transfers between the host and the device and transfers between the solid state memory and the disk. This private data channel permits virtually unlimited conversation between the two storage media. Utilization of ample solid state memory permits efficient maintenance of data for multiple, simultaneously active data streams. Management of the storage is via one or more microprocessors which utilize historical and projected data accesses to perform intelligent placement of data. No table searches are employed in the time-critical path. Host accesses to data stored in the solid state memory are at solid state speeds; host accesses to data stored on the magnetic disk are at disk device speeds. Under most conditions, all data sent from the host to the device is handled at solid state speeds.

BRIEF DESCRIPTIONS OF THE DRAWINGS

FIG. 1 is a block diagram of a typical prior art cached disk computer data storage system;

FIG. 2 is a block diagram depicting one embodiment of a cached disk computer data storage device constructed in accordance with the teachings of this invention;

FIG. 3 is a block diagram depicting one embodiment of a hardware controller for implementing the described invention;

FIG. 4 is a flow chart depicting the operation of one embodiment of this invention;

FIG. 5 is a flow chart depicting a more detailed description of the operation of the host command step of FIG. 4;

FIG. 6 is a flow chart depicting the operation of one embodiment of the analyze host I/O command operation of FIG. 5;

FIG. 7 is a flow chart depicting in more detail the operation of the setup track address list operation of FIG. 6;

FIG. 8 is a flow chart depicting in more detail the address translation of FIG. 7;

FIG. 9 is a flow chart depicting the cache read hit operation depicted in FIG. 5;

FIG. 10 is a flow chart depicting in more detail the cache read miss/operation depicted in FIG. 5;

FIG. 11 is a flow chart depicting the cache write hit operation of FIG. 5;

FIG. 12 is a flow chart depicting the cache write miss operation of FIG. 5;

FIG. 13 is a flow chart depicting the seek cache miss operation of FIG. 5;

FIG. 14 is a flow chart depicting the decache LRU operation of FIGS. 6, 13 and 15;

FIG. 15 is a flow chart depicting the cache ahead operation of FIG. 4;

FIG. 16 is a flow chart depicting the operation of the cache ahead determination operation of FIG. 15;

FIG. 17 is a flow chart depicting the operation of the initiate background sweep operation of FIG. 4;

FIG. 18 is a flow chart depicting the step of background sweep initiation at host I/O completion depicted in FIG. 4;

FIG. 19 is a flow chart depicting the generate background event operations depicted in FIGS. 17, 18, and 20;

FIG. 20 is a flow chart depicting the operation of the continued background sweep step of FIG. 4;

FIG. 21 is a flow chart depicting the power down control operations; and

FIG. 22 is a flow chart depicting the final background sweep operation depicted in FIG. 21.

DESCRIPTION OF THE TABLES

Tables F-1 through F-4 describe the organization of Tables T-1 through T-4, respectively;

Table T-0 depicts a sample of I/O commands extracted from computer system operations during normal usage. These I/O commands, and the intervening commands, were the basis for the sample predicted LRU and ADT tables as shown in Tables T-1 through T-3.

Table T-1 depicts an example of values in the address translation (ADT) table prior to the handling of the first I/O operation from the host CPU;

Table T-2 depicts an example of values in the Least-Recently-Used (LRU) table prior to the handling of the first I/O operation from the host CPU; and

Table 3 is formed of Tables T-3a through T-3e, which depict the ADT table after various numbers of I/O operations.

DETAILED DESCRIPTION OF THE INVENTION

Glossary of Terms

ADDRESS TRANSLATION:

The conversion of a sector address into a track address and sector offset within the trac