(12) United States Patent ao) Patent No.: us 6,728,836 Bi
Lambright et al. (45) Date of Patent: Apr. 27,2004
(54) SEGMENTING CACHE TO PROVIDE VARYING SERVICE LEVELS
(75) Inventors: Daniel Lambright, Watertown, MA (US); Adi Ofer, Wellesley, MA (US); Natan Vishlitzky, Brookline, MA (US); Yuval Ofek, Framingham, MA (US)
(73) Assignee: EMC Corporation, Hopkinton, MA (US)
( * ) Notice: Subject to any disclaimer, the term ol this patent is extended or adjusted under 35 U.S.C. 154(b) by 0 days.
(21) Appl. No.: 09/535,134
(22) Filed: Mar. 24, 2000
Related U.S. Application Data
(63) Continuation-in-part of application No. 09/434,611, filed on Nov. 5, 1999, now Pat. No. 6,457,102.
(51) Int. CI.7 G06F 12/08
(52) U.S. C I 711/129
(58) Field of Search 711/113, 118,
711/129, 153, 173; 707/101
(56) References Cited
U.S. PATENT DOCUMENTS
4,371,929 A 2/1983 Brann et al.
5,206,939 A 4/1993 Yanai et al.
5,357,623 A * 10/1994 Megory-Cohen 711/129
5,680,571 A * 10/1997 Bauman 711/117
5,778,394 A 7/1998 Galtzur et al.
5,845,147 A 12/1998 Vishlitzky et al.
5,857,208 A 1/1999 Ofek
5,875,461 A * 2/1999 Lindholm 711/118
5,875,464 A * 2/1999 Kirk 711/121
5,964,838 A * 10/1999 Cheung et al 709/220
6,141,731 A * 10/2000 Beardsley et al 711/133
6,182,194 Bl * 1/2001 Uemura et al 711/129
6,295,580 Bl * 9/2001 Sturges et al 711/129
6,347,358 Bl * 2/2002 Kuwata 711/113
6,349,363 B2 * 2/2002 Cai et al 711/129
6,360,303 Bl * 3/2002 Wisler et al 711/147
6,381,676 B2 * 4/2002 Aglietti et al 711/133
6,470,422 B2 * 10/2002 Cai et al 711/129
6,493,800 Bl * 12/2002 Blumrich 711/129
FOREIGN PATENT DOCUMENTS
EP 0497543 A2 8/1992
WO WO9201988 A 2/1992
"Cache memories quicken access to disk data"; 2328 Electronic Design; vol. 30(1982) May, No. 10, Waseca, MN Denville, NJ "Systems and Software".
* cited by examiner
Primary Examiner—Hiep T. Nguyen
(74) Attorney, Agent, or Firm—Choate, Hall & Stewart
Storing data in a cache memory ol a storage device includes providing access to a first segment ol the cache memory on behall ol a first group ol external host systems coupled to the storage device and providing access to a second segment ol the cache memory on behall ol a second group ol external host systems coupled to the storage device, where at least a portion ol the second segment ol the cache memory is not part ol the first segment ol the cache memory. In some embodiments, no portion ol the second segment ol the cache memory is part ol the first segment. Storing data in a cache memory ol a storage device may also include providing a first data structure in the first segment ol the cache memory and providing a second data structure in the second segment ol the cache memory, where accessing the first segment includes accessing the first data structure and accessing the second segment includes accessing the second data structure. The data structures may be doubly linked ring lists ol blocks ol data. Each block ol data may correspond to a track on a disk drive. Different groups ol external host systems may be provided with different access, priority, and level ol service with respect to the different segments ol the cache.
18 Claims, 9 Drawing Sheets