System and method for management of a predictive split cache for supporting FIFO queues
First Claim
Patent Images
1. Apparatus for caching items for first-in, first-out queues on a data processing system, comprising:
- a backing store for supporting a wrap around buffer;
a cache store having a plurality of frames;
means for dynamically assigning some but not all of the plurality of frames to a cache tail portion and at least some remaining frames of the plurality of frames to a cache head portion;
means responsive to an enqueue command for writing an item to a free frame assigned to the cache tail portion;
means responsive to a dequeue command for reading an item from an occupied frame assigned to the cache head portion;
means for moving an item from a frame assigned to the cache tail portion to a trailing location in the wrap around buffer; and
means for moving an item from a leading location in the wrap around buffer to an unoccupied frame in the cache head portion.
1 Assignment
0 Petitions
Accused Products
Abstract
A first-in, first-out queue is implemented on two memory elements by enqueuing and dequeuing items from a first memory element and by swapping middle portions of the queue between the first memory element and the second memory whenever the first memory element is sufficiently filled. Where the second element is system memory for a computer system, queue length can be allowed to grow almost arbitrarily while preserving the performance of first memory element.
74 Citations
22 Claims
-
1. Apparatus for caching items for first-in, first-out queues on a data processing system, comprising:
-
a backing store for supporting a wrap around buffer; a cache store having a plurality of frames; means for dynamically assigning some but not all of the plurality of frames to a cache tail portion and at least some remaining frames of the plurality of frames to a cache head portion; means responsive to an enqueue command for writing an item to a free frame assigned to the cache tail portion; means responsive to a dequeue command for reading an item from an occupied frame assigned to the cache head portion; means for moving an item from a frame assigned to the cache tail portion to a trailing location in the wrap around buffer; and means for moving an item from a leading location in the wrap around buffer to an unoccupied frame in the cache head portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of implementing a first-in, first-out queue on a segmented data storage system having a primary store and a backing store, comprising the steps performed by a computer of:
-
writing items to a tail portion of the primary store; reading items from a head portion of the primary store; responsive to occurrence of an item in the tail portion, determining if the primary store either currently stores items for the first-in, first-out queue or that the primary store is filled to a point indicating use of the backing store for storing items for the first-in, first-out queue; if either determination of the preceding step is affirmative, moving the item from the tail portion to the backing store; and responsive to both determinations being negative and the head portion having space, moving the item from the tail portion to the head portion. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A data communications network comprising:
-
at least a first node; a communication channel; a data buffer connecting the node to the communication channel; a segmented data store for the data buffer including a primary store and a backing store; means for writing items to and reading items from the primary store; means for aging the items; and means responsive to age of the items and excess demand for space to store the items in the primary store for swapping items in the middle by age of all the items between the primary store and the backing store. - View Dependent Claims (15, 16, 17)
-
-
18. A predictive item swapping system for a segmented memory, comprising:
-
the segmented memory having a cache and a backing store; means for writing items to and reading items from the cache; means for aging any item written into the cache; and means responsive to age of the items and excess demand for space in the cache for swapping items in the middle by age of all items written to but not yet read from the cache between the cache and the backing store. - View Dependent Claims (19, 20, 21)
-
-
22. A method of replacing items in a cache from a wrap around buffer, the method comprising:
-
dividing the cache into a tail portion and a head portion; beginning ageing of items upon first being written to the tail portion of the cache; responsive to demand, reading an oldest item in the cache from the head portion; responsive to an excess number of items in the cache, moving an oldest item from the tail portion to the wrap around buffer; responsive to an opening in the head portion and presence of an item in the wrap around buffer, moving an oldest item in the wrap around buffer to the head portion; responsive to an opening in the head portion and lack of any items in the wrap around buffer, moving the oldest item in the tail portion directly to the head portion.
-
Specification