← Back to Patent Explorer
US5519846A Expired / Lapsed US ⏱️ 0.0 years remaining

Multiprocessor system with scheme for managing allocation and reservation of cache segments in a cache system employing round-robin replacement and exclusive access

Assignee: Unisys Corp
•
Filing: 1993-12-23
•
Granted: 1996-05-21
•
Expires: 2013-12-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A cache management method in a cache system having a plurality of processors for managing the cache storage. Each of the processors may reserve portions of the cache storage which future allocation of cache storage may be expedited. All the processors begin searching for a portion of cache storage to allocate with the same starting portion of cache storage when processing cache commands in which the referenced data is not present in the cache storage. A processor will advance past the starting portion of cache storage when allocation of a portion of cache storage is necessary and another processor is currently using the starting portion of cache storage.

Inventors

  • 👤 Robert E. Swenson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 12:07
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/084; G06F12/12; G06F12/121; G06F12/128; G06F12/0866

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 304 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) reserving said replacement candidate segment as a reserved segment before allocation of one of the plurality of allocable segments is required, wherein said reserved segment is reserved for future allocation by one of the plurality of processors and is made unavailable for allocation by others of the plurality of processors; (c) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said reserving step; (d) receiving a cache command by said one of the plurality of processors; (e) allocating said reserved segment if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments and said reserved segment has been reserved; (f) performing steps (g) and (h) if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments and said reserved segment has not been reserved; (g) allocating said replacement candidate segment; and (h) selecting another one of the plurality of allocable segments for use as said replacement candidate segment.
Claim 2
Dependent Claim 304 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) reserving said replacement candidate segment as a reserved segment before allocation of one of the plurality of allocable segments is required, wherein said reserved segment is reserved for future allocation by one of the plurality of processors and is made unavailable for allocation by others of the plurality of processors; (c) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said reserving step; (d) receiving a cache command by said one of the plurality of processors; (e) allocating said reserved segment if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments and said reserved segment has been reserved; (f) performing steps (g) and (h) if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments and said reserved segment has not been reserved; (g) allocating said replacement candidate segment; and (h) selecting another one of the plurality of allocable segments for use as said replacement candidate segment.
Claim 3
Dependent Claim 23 words
The method of claim 1, wherein said reserving step (b) and said selecting step (c) are performed while waiting for a cache command.
Claim 4
Dependent Claim 28 words
The method of claim 1, wherein said reserving step reserves a plurality of reserved segments; and said allocating step (e) allocates one of said plurality of reserved segments.
Claim 5
Dependent Claim 46 words
The method of claim 1, wherein said reserving step (b) and said selecting step (c) are performed while waiting for a cache command; said reserving step (b) reserves a plurality of reserved segments; and said allocating step (e) allocates one of said plurality of reserved segments.
Claim 6
Dependent Claim 314 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) receiving a cache command by one processor; (c) requesting exclusive access to said replacement candidate segment if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments, wherein exclusive access is granted, only said one processor may allocate said replacement candidate segment; (d) allocating said replacement candidate segment if exclusive access to said replacement candidate segment is obtained; (e) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said allocating step (d); (f) performing steps (g) through (j)if exclusive access to said replacement candidate segment from said requesting step (c) is not obtained; (g) selecting another segment as an alternate replacement candidate segment; (h) requesting exclusive access to said alternate replacement candidate segment, wherein if exclusive access is granted, only said one processor may allocate said alternate replacement candidate segment; (i) allocating said alternate replacement candidate segment if exclusive access to said alternate replacement candidate segment from said requesting step (h) is obtained; and (j) repeating steps (g) through (i) until said alternate replacement candidate segment is allocated.
Claim 7
Dependent Claim 314 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) receiving a cache command by one processor; (c) requesting exclusive access to said replacement candidate segment if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments, wherein exclusive access is granted, only said one processor may allocate said replacement candidate segment; (d) allocating said replacement candidate segment if exclusive access to said replacement candidate segment is obtained; (e) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said allocating step (d); (f) performing steps (g) through (j)if exclusive access to said replacement candidate segment from said requesting step (c) is not obtained; (g) selecting another segment as an alternate replacement candidate segment; (h) requesting exclusive access to said alternate replacement candidate segment, wherein if exclusive access is granted, only said one processor may allocate said alternate replacement candidate segment; (i) allocating said alternate replacement candidate segment if exclusive access to said alternate replacement candidate segment from said requesting step (h) is obtained; and (j) repeating steps (g) through (i) until said alternate replacement candidate segment is allocated.
Claim 8
Dependent Claim 51 words
The method of claim 5, wherein said selecting step (e) selects a next addressable segment for use as said replacement candidate segment, wherein the plurality of allocable segments are considered round-robin for allocation; and said selecting step (g) selects the next addressable segment of use as said alternate replacement candidate segment.
Claim 9
Dependent Claim 373 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) receiving a cache command by one processor; (c) requesting exclusive access to said replacement candidate segment if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments, wherein if exclusive access is granted, only said one processor may allocate said replacement candidate segment; (d) allocating said replacement candidate segment if exclusive access to said replacement candidate segment is obtained; (e) selecting a next addressable one of the plurality of allocable segments for use as said replacement candidate segment after said allocating step (d), wherein the plurality of allocable segments are considered round-robin for allocation; (f) performing steps (g) through (k) if exclusive access to said replacement candidate segment from said requesting step (c) is not obtained; (g) selecting a segment which is a predetermined number of addressable segments beyond said replacement candidate segment as an alternate replacement candidate segment; (h) requesting exclusive access to said alternate replacement candidate segment, wherein if exclusive access is granted, only said one processor may allocate said alternate replacement candidate segment; (i) allocating said alternate replacement candidate segment if exclusive access to said alternate replacement candidate segment from said requesting step (h) is obtained; (j) selecting a next addressable segment after said alternate replacement candidate segment for use as said alternate replacement candidate segment if exclusive access from said requesting step (h) is not obtained; and (k) repeating steps (h) through (j) until said alternate replacement candidate segment is allocated.
Claim 10
Dependent Claim 373 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) receiving a cache command by one processor; (c) requesting exclusive access to said replacement candidate segment if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments, wherein if exclusive access is granted, only said one processor may allocate said replacement candidate segment; (d) allocating said replacement candidate segment if exclusive access to said replacement candidate segment is obtained; (e) selecting a next addressable one of the plurality of allocable segments for use as said replacement candidate segment after said allocating step (d), wherein the plurality of allocable segments are considered round-robin for allocation; (f) performing steps (g) through (k) if exclusive access to said replacement candidate segment from said requesting step (c) is not obtained; (g) selecting a segment which is a predetermined number of addressable segments beyond said replacement candidate segment as an alternate replacement candidate segment; (h) requesting exclusive access to said alternate replacement candidate segment, wherein if exclusive access is granted, only said one processor may allocate said alternate replacement candidate segment; (i) allocating said alternate replacement candidate segment if exclusive access to said alternate replacement candidate segment from said requesting step (h) is obtained; (j) selecting a next addressable segment after said alternate replacement candidate segment for use as said alternate replacement candidate segment if exclusive access from said requesting step (h) is not obtained; and (k) repeating steps (h) through (j) until said alternate replacement candidate segment is allocated.
Claim 11
Dependent Claim 458 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) reserving said replacement candidate segment as a reserved segment before allocation of one of the plurality of allocable segments is required, wherein said reserved segment is reserved for future allocation by one of the plurality of processors and is made unavailable for allocation by others of the plurality of processors; (c) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said reserving step; (d) receiving a cache command by one processor; (e) allocating said reserved segment if the data referenced in said cache command from said receiving step (d) is not present in the plurality of allocable segments and said reserved segment has been reserved; (f) performing steps (g) through (n) if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments and said reserved segment has not been reserved; (g) requesting exclusive access to said replacement candidate segment if the data referenced in said cache command from said receiving stop (d) is not present in the plurality of allocable segments, whereby if exclusive access is granted, only said one processor may allocate said replacement candidate segment; (h) allocating said replacement candidate segment if exclusive access to said replacement candidate segment is obtained; (i) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said allocating step (h); (j) performing steps (k) through (n) if exclusive access to said replacement candidate segment from said requesting step (g) is not obtained; (k) selecting another segment as an alternate replacement candidate segment; (l) requesting exclusive access to said alternate replacement candidate segment, whwrwin if exclusive access is granted, only said one processor may allocate said alternate replacement candidate segment; (m) allocating said alternate replacement candidate segment if exclusive access to said alternate replacement candidate segment from said requesting step (l) is obtained; and (n) repeating steps (k) through (m) until said alternate replacement candidate segment is allocated.
Claim 12
Dependent Claim 458 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) reserving said replacement candidate segment as a reserved segment before allocation of one of the plurality of allocable segments is required, wherein said reserved segment is reserved for future allocation by one of the plurality of processors and is made unavailable for allocation by others of the plurality of processors; (c) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said reserving step; (d) receiving a cache command by one processor; (e) allocating said reserved segment if the data referenced in said cache command from said receiving step (d) is not present in the plurality of allocable segments and said reserved segment has been reserved; (f) performing steps (g) through (n) if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments and said reserved segment has not been reserved; (g) requesting exclusive access to said replacement candidate segment if the data referenced in said cache command from said receiving stop (d) is not present in the plurality of allocable segments, whereby if exclusive access is granted, only said one processor may allocate said replacement candidate segment; (h) allocating said replacement candidate segment if exclusive access to said replacement candidate segment is obtained; (i) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said allocating step (h); (j) performing steps (k) through (n) if exclusive access to said replacement candidate segment from said requesting step (g) is not obtained; (k) selecting another segment as an alternate replacement candidate segment; (l) requesting exclusive access to said alternate replacement candidate segment, whwrwin if exclusive access is granted, only said one processor may allocate said alternate replacement candidate segment; (m) allocating said alternate replacement candidate segment if exclusive access to said alternate replacement candidate segment from said requesting step (l) is obtained; and (n) repeating steps (k) through (m) until said alternate replacement candidate segment is allocated.
Claim 13
Dependent Claim 23 words
The method of claim 8, wherein said reserving step (b) and said selecting step (c) are performed while waiting for a cache command.
Claim 14
Dependent Claim 29 words
The method of claim 9, wherein said reserving step (b) reserves a plurality of reserved segments; and said allocating step (e) allocates one of said plurality of reserved segments.
Claim 15
Dependent Claim 46 words
The method of claim 9, wherein said reserving step (b) and said selecting step (c) are performed while waiting for a cache command; said reserving step (b) reserves a plurality of reserved segments; and said allocating step (e) allocates one of said plurality of reserved segments.
Claim 16
Dependent Claim 513 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) reserving said replacement candidate segment as a reserved segment before allocation of one of the plurality of allocable segments is required, wherein said reserved segment is reserved for future allocation by one of the plurality of processors and is made unavailable for allocation by others of the plurality of processors; (c) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said reserving step; (d) receiving a cache command by one processor; (e) allocating said reserved segment if the data referenced in said cache command from said receiving step (d) is not present in the plurality of allocable segments and said reserved segment has been reserved; (f) performing steps (g) through (o) if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments and said reserved segment has not been reserved; (g) requesting exclusive access to said replacement candidate segment if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments, wherein if exclusive access is granted, only said one processor may allocate said replacement candidate segment; (h) allocating said replacement candidate segment if exclusive access to said replacement candidate segment is obtained; (i) selecting a next addressable one of the plurality of allocable segments for use as said replacement candidate segment after said allocating step (h), where,the plurality of allocable segments are considered round-robin for allocation; (j) performing steps (k) through (o) if exclusive access to said replacement candidate segment from said requesting step (g) is not obtained; (k) selecting a segment which is a predetermined number of addressable segments beyond said replacement candidate segment as an alternate replacement candidate segment; (l) requesting exclusive access to said alternate replacement candidate segment, wherein if exclusive access is granted, only said one processor may allocate said alternate replacement candidate segment; (m) allocating said alternate replacement candidate segment if exclusive access to said alternate replacement candidate segment from said requesting step (l) is obtained; (n) selecting a next addressable segment after said alternate replacement candidate segment for use as said alternate replacement candidate segment if exclusive access from said requesting step (l) is not obtained; and (o) repeating steps (l) through (n) until said alternate replacement candidate segment is allocated.
Claim 17
Dependent Claim 513 words
In a cache system having a plurality of allocable segments for storing cached data and a plurality of processors for managing allocation of the plurality of allocable segments, wherein the cache system searches the plurality of allocable segments for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable segments, a method for managing allocation of the plurality of allocable segments, the method comprising the steps of: (a) establishing a replacement candidate segment, wherein said replacement candidate segment is shared among the plurality of processors and is the first one of the plurality of allocable segments to be considered for allocation if the referenced data is not present in the plurality of allocable segments; (b) reserving said replacement candidate segment as a reserved segment before allocation of one of the plurality of allocable segments is required, wherein said reserved segment is reserved for future allocation by one of the plurality of processors and is made unavailable for allocation by others of the plurality of processors; (c) selecting another one of the plurality of allocable segments for use as said replacement candidate segment after said reserving step; (d) receiving a cache command by one processor; (e) allocating said reserved segment if the data referenced in said cache command from said receiving step (d) is not present in the plurality of allocable segments and said reserved segment has been reserved; (f) performing steps (g) through (o) if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments and said reserved segment has not been reserved; (g) requesting exclusive access to said replacement candidate segment if the data referenced in said cache command from said receiving step is not present in the plurality of allocable segments, wherein if exclusive access is granted, only said one processor may allocate said replacement candidate segment; (h) allocating said replacement candidate segment if exclusive access to said replacement candidate segment is obtained; (i) selecting a next addressable one of the plurality of allocable segments for use as said replacement candidate segment after said allocating step (h), where,the plurality of allocable segments are considered round-robin for allocation; (j) performing steps (k) through (o) if exclusive access to said replacement candidate segment from said requesting step (g) is not obtained; (k) selecting a segment which is a predetermined number of addressable segments beyond said replacement candidate segment as an alternate replacement candidate segment; (l) requesting exclusive access to said alternate replacement candidate segment, wherein if exclusive access is granted, only said one processor may allocate said alternate replacement candidate segment; (m) allocating said alternate replacement candidate segment if exclusive access to said alternate replacement candidate segment from said requesting step (l) is obtained; (n) selecting a next addressable segment after said alternate replacement candidate segment for use as said alternate replacement candidate segment if exclusive access from said requesting step (l) is not obtained; and (o) repeating steps (l) through (n) until said alternate replacement candidate segment is allocated.
Claim 18
Dependent Claim 294 words
In a cache system having a plurality of allocable segments for storing data referenced by cache commands issued to the cache system, a cache management apparatus comprising: a segment allocation list, wherein said segment allocation list identifies an order of allocation of the plurality of allocable segments; a replacement candidate pointer, wherein said replacement candidate pointer references an entry in said segment allocation list which identifies the first segment to be considered for allocation; a plurality of cache management processors interfaced with said segment allocation list and said replacement candidate pointer, wherein each of said plurality of cache management processors includes a reserved segment list, wherein said reserved segment list identifies either one or more of the plurality of allocable segments which are reserved for allocation by one of said plurality of cache management processors; reservation control interfaced with said segment allocation list, said replacement candidate pointer, and said reserved segment list, wherein said reservation control obtains exclusive use of said replacement candidate pointer, adds an entry identifying the segment referenced by said replacement candidate pointer to said reserved segment list, and advances said replacement candidate pointer to a next entry in said segment allocation list; cache detection control responsive to cache commands and interfaced with the plurality of allocable segments, wherein said cache detection control detects whether the data referenced by a cache command is present in the plurality of allocable segments and generates a miss code if the data referenced is not present; and allocation control responsive to said miss code and interfaced with said reserved segment list, said segment allocation list, said replacement candidate pointer, wherein said allocation control selectively allocates either a segment identified by said reserved segment list or said segment allocation list if said miss code is detected.
Claim 19
Dependent Claim 294 words
In a cache system having a plurality of allocable segments for storing data referenced by cache commands issued to the cache system, a cache management apparatus comprising: a segment allocation list, wherein said segment allocation list identifies an order of allocation of the plurality of allocable segments; a replacement candidate pointer, wherein said replacement candidate pointer references an entry in said segment allocation list which identifies the first segment to be considered for allocation; a plurality of cache management processors interfaced with said segment allocation list and said replacement candidate pointer, wherein each of said plurality of cache management processors includes a reserved segment list, wherein said reserved segment list identifies either one or more of the plurality of allocable segments which are reserved for allocation by one of said plurality of cache management processors; reservation control interfaced with said segment allocation list, said replacement candidate pointer, and said reserved segment list, wherein said reservation control obtains exclusive use of said replacement candidate pointer, adds an entry identifying the segment referenced by said replacement candidate pointer to said reserved segment list, and advances said replacement candidate pointer to a next entry in said segment allocation list; cache detection control responsive to cache commands and interfaced with the plurality of allocable segments, wherein said cache detection control detects whether the data referenced by a cache command is present in the plurality of allocable segments and generates a miss code if the data referenced is not present; and allocation control responsive to said miss code and interfaced with said reserved segment list, said segment allocation list, said replacement candidate pointer, wherein said allocation control selectively allocates either a segment identified by said reserved segment list or said segment allocation list if said miss code is detected.
Claim 20
Dependent Claim 287 words
In a cache system having a plurality of allocable segments for storing data referenced by cache commands issued to the cache system, a cache management apparatus comprising: a segment allocation list, wherein said segment allocation list identifies an order of allocation of the plurality of allocable segments; a replacement candidate pointer, wherein said replacement candidate pointer references an entry in said segment allocation list which is the first segment to be considered for allocation; a plurality of cache management processors interfaced with said segment allocation list and said replacement candidate pointer, wherein each of said plurality of cache management processors includes cache detection control responsive to cache commands and interfaced with the plurality of allocable segments, wherein said cache detection control detects whether the data referenced by a cache command is present in the plurality of allocable segments and generates a miss code if the data referenced is not present; and allocation control responsive to said miss code and interfaced with said segment allocation list and said replacement candidate pointer, wherein said allocation control obtains exclusive access to said replacement candidate pointer and allocates the segment referenced by said replacement candidate pointer, wherein said allocation control further includes an alternate replacement candidate pointer, wherein said alternate replacement candidate pointer references an entry in said segment allocation list; means for establishing said alternate replacement candidate pointer to reference an entry in said segment allocation list other than said replacement candidate pointer if exclusive access to said replacement candidate pointer is not obtained; and wherein said allocation control obtains exclusive access to said alternate replacement candidate pointer and allocates the segment referenced by said alternate replacement candidate pointer if exclusive access to said replacement candidate pointer is not obtained.
Claim 21
Dependent Claim 287 words
In a cache system having a plurality of allocable segments for storing data referenced by cache commands issued to the cache system, a cache management apparatus comprising: a segment allocation list, wherein said segment allocation list identifies an order of allocation of the plurality of allocable segments; a replacement candidate pointer, wherein said replacement candidate pointer references an entry in said segment allocation list which is the first segment to be considered for allocation; a plurality of cache management processors interfaced with said segment allocation list and said replacement candidate pointer, wherein each of said plurality of cache management processors includes cache detection control responsive to cache commands and interfaced with the plurality of allocable segments, wherein said cache detection control detects whether the data referenced by a cache command is present in the plurality of allocable segments and generates a miss code if the data referenced is not present; and allocation control responsive to said miss code and interfaced with said segment allocation list and said replacement candidate pointer, wherein said allocation control obtains exclusive access to said replacement candidate pointer and allocates the segment referenced by said replacement candidate pointer, wherein said allocation control further includes an alternate replacement candidate pointer, wherein said alternate replacement candidate pointer references an entry in said segment allocation list; means for establishing said alternate replacement candidate pointer to reference an entry in said segment allocation list other than said replacement candidate pointer if exclusive access to said replacement candidate pointer is not obtained; and wherein said allocation control obtains exclusive access to said alternate replacement candidate pointer and allocates the segment referenced by said alternate replacement candidate pointer if exclusive access to said replacement candidate pointer is not obtained.
Claim 22
Dependent Claim 283 words
In a cache system having a plurality of allocable units of storage for storing cached data and a plurality of processors for managing allocation of the plurality of allocable units of storage, wherein the cache system searches the plurality of allocable units of storage for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable units of storage, a cache management apparatus comprising: selection means for selecting a replacement candidate unit of storage, wherein said replacement candidate unit of storage is eligible for allocation by any one of the plurality of processors and is the first one of the plurality of allocable units of storage to be considered for allocation if the referenced data is not present in the plurality of allocable units of storage; reservation means for reserving said replacement candidate unit of storage as a reserved unit of storage before allocation of one of the plurality of allocable units of storage is required, wherein said reserved unit of storage is reserved for future allocation by one of the plurality of processors and is made unavailable for allocation by others of the plurality of processors; and allocation means for allocating said reserved unit of storage to said one of the plurality of processors if the data referenced in a cache command is not present in the plurality of allocable units of storage and said reserved unit of storage has been reserved, and for allocating said replacement candidate unit of storage if the data referenced in said cache command is not present in the plurality of allocable units of storage and said reserved unit of storage has not been reserved.
Claim 23
Dependent Claim 283 words
In a cache system having a plurality of allocable units of storage for storing cached data and a plurality of processors for managing allocation of the plurality of allocable units of storage, wherein the cache system searches the plurality of allocable units of storage for data referenced by cache commands and provides access to the referenced data if the referenced data is present in the plurality of allocable units of storage, a cache management apparatus comprising: selection means for selecting a replacement candidate unit of storage, wherein said replacement candidate unit of storage is eligible for allocation by any one of the plurality of processors and is the first one of the plurality of allocable units of storage to be considered for allocation if the referenced data is not present in the plurality of allocable units of storage; reservation means for reserving said replacement candidate unit of storage as a reserved unit of storage before allocation of one of the plurality of allocable units of storage is required, wherein said reserved unit of storage is reserved for future allocation by one of the plurality of processors and is made unavailable for allocation by others of the plurality of processors; and allocation means for allocating said reserved unit of storage to said one of the plurality of processors if the data referenced in a cache command is not present in the plurality of allocable units of storage and said reserved unit of storage has been reserved, and for allocating said replacement candidate unit of storage if the data referenced in said cache command is not present in the plurality of allocable units of storage and said reserved unit of storage has not been reserved.
Claim 24
Dependent Claim 20 words
The apparatus of claim 15, wherein said reservation means includes means for reserving a plurality of reserved units of storage.

References Cited (Backward Citations)

US4195343A Cited
US4415970A Cited
US4445174A Cited
US4466059A Cited
US4636946A Cited
US4499539A Cited
US5263142A Cited
US5276835A Cited
US5265232A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-05-21 1999-11-20 2000-05-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-05-21 2003-11-20 2004-05-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-05-21 2007-11-20 2008-05-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag