Processor-addressable timestamp for indicating oldest written-to cache entry not copied back to bulk memory
First Claim
1. In a system having a host processor for issuing read and write commands, a cache memory, a bulk memory and a storage control unit for controlling the transfer of segments of data between said bulk memory and said cache memory, the improvement comprising:
- first means for issuing a timestamp value associated with each of said write commands each timestamp indicating the clock time of issue of its associated write command;
second means for determining if a given write command is the first write command from said host commanding a write to a segment in said cache memory;
third means for storing a table comprising a linked list of entries, there being one entry in said table corresponding to each segment in said cache memory that has been written to in response to a write command from said host processor,each of said entries including one of said timestamp values and a forward and a backward agelink address for linking said entries in a first in, first out list;
fourth means responsive to said first and said second means for entering the timestamp value issued with a given write command in said table when said second means determines that a given write command is the first command from said host to write to a given segment,said fourth means including means for entering said given timestamp in the entry in said table corresponding to said given segment;
fifth means responsive to said third means for determining the timestamp which has been in said list for the longest period of time;
sixth means responsive to said fifth means for storing the timestamp determined to have been in said list for the longest period of time; and
,seventh means responsive to a read command from said host processor for transferring the timestamp stored in said sixth means to said host processor.
1 Assignment
0 Petitions
Accused Products
Abstract
In a data processing system including a processor, a bulk memory, a cache, and a storage control unit for controlling the transfer of data between the bulk memory and the cache, a timestamp is generated with each write command. A linked list is maintained, having an entry therein corresponding to each segment in the cache which has been written to since it was moved from the bulk memory to the cache. The timestamp accompanying a write command which is the first command to write to a segment after that segment is moved from bulk memory to the cache is entered into the list at the most recently used position. An entry in the linked list is removed from the list when the segment corresponding thereto is transferred from the cache to the bulk memory. The linked list is utilized to update a value TOLDEST, which represents the age of the oldest written-to segment in the cache that has not been returned to bulk memory since it was first written to. The processor periodically issues a command which transfers TOLDEST from the subsystem to the processor. In case of a cache failure, such as might result from a power loss, the processor may sense the latest value of TOLDEST together with other file recovery synchronization information and determine what part of the data which it sent to the cache was lost because it did not get recorded in the bulk memory.
-
Citations
11 Claims
-
1. In a system having a host processor for issuing read and write commands, a cache memory, a bulk memory and a storage control unit for controlling the transfer of segments of data between said bulk memory and said cache memory, the improvement comprising:
-
first means for issuing a timestamp value associated with each of said write commands each timestamp indicating the clock time of issue of its associated write command; second means for determining if a given write command is the first write command from said host commanding a write to a segment in said cache memory; third means for storing a table comprising a linked list of entries, there being one entry in said table corresponding to each segment in said cache memory that has been written to in response to a write command from said host processor, each of said entries including one of said timestamp values and a forward and a backward agelink address for linking said entries in a first in, first out list; fourth means responsive to said first and said second means for entering the timestamp value issued with a given write command in said table when said second means determines that a given write command is the first command from said host to write to a given segment, said fourth means including means for entering said given timestamp in the entry in said table corresponding to said given segment; fifth means responsive to said third means for determining the timestamp which has been in said list for the longest period of time; sixth means responsive to said fifth means for storing the timestamp determined to have been in said list for the longest period of time; and
,seventh means responsive to a read command from said host processor for transferring the timestamp stored in said sixth means to said host processor. - View Dependent Claims (2, 3, 7)
-
-
4. In a system having a host processor for issuing read and write commands, a cache memory for storing segments of data, a bulk memory, and a storage control unit for controlling the transfer of segments of data between said cache memory and said bulk memory, a method of providing an indication, in case of cache failure, of the segments which had been written to in said cache memory but had not been destaged to said bulk memory at the time of occurrence of said failure, said method comprising:
-
passing a timestamp from said host processor to said storage control unit with each command to write to said cache memory, each timestamp indicating the clock time of issue of its associated command; storing a given timestamp received from said host processor in a table having entries linked therein in the order of first in, first out only if the write command passed with said given timestamp is the first command to write to a given segment, whereby said table contains, for each written-to segment, a corresponding entry having an indication of when it was first written to; separately storing an oldest timestamp value equal to the timestamp value which has been resident in said linked list for the longest interval of time of all the timestamps resident therein; and
,issuing a read command from said host processor to said storage control unit to transfer said oldest timestamp value to said host processor. - View Dependent Claims (5, 6, 8)
-
-
9. In a system having a host processor for issuing read and write commands, a cache memory for storing segments of data, a bulk memory, and a storage control unit for controlling the transfer of segments of data between said cache memory and said bulk memory, a method of providing an indication, in case of cache failure, of the segments which had been written to in said cache memory but had not been destaged to said bulk memory at the time of occurrence of said failure, said method comprising:
-
generating a timestamp for said storage control unit corresponding to each command to write to said cache memory, each timestamp indicating the clock time of issue of its corresponding write command; storing a given generated timestamp in a table having entries linked therein in the order of first in, first out only if the write command passed with said given timestamp is the first command to write to a given segment, whereby said table contains, for each written-to segment, a corresponding entry having an indication of when it was first written to; separately storing an oldest timestamp value equal to the timestamp value which has been resident in said linked list for the longest interval of time of all the timestamps resident therein; and
,issuing a read command from said host processor to said storage control unit to transfer said oldest timestamp value to said host processor. - View Dependent Claims (10, 11)
-
Specification