GB2276255A - Track buffer with embedded error data - Google Patents

Track buffer with embedded error data Download PDF

Info

Publication number
GB2276255A
GB2276255A GB9403001A GB9403001A GB2276255A GB 2276255 A GB2276255 A GB 2276255A GB 9403001 A GB9403001 A GB 9403001A GB 9403001 A GB9403001 A GB 9403001A GB 2276255 A GB2276255 A GB 2276255A
Authority
GB
United Kingdom
Prior art keywords
error
record
field
data
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB9403001A
Other versions
GB9403001D0 (en
Inventor
James M Bodwin
David J King
William G Nadzam
Charles H Reinking
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ANDOR INT Ltd
Original Assignee
ANDOR INT Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ANDOR INT Ltd filed Critical ANDOR INT Ltd
Publication of GB9403001D0 publication Critical patent/GB9403001D0/en
Publication of GB2276255A publication Critical patent/GB2276255A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A buffer stores a plurality of records read from a mass storage device. The buffer includes a record information field and an error flag field for each stored record. The record information field includes count, key and data fields, together with an optional error data field for storing error data indicating a characteristic of an error which occurred when the record was read from the mass storage device. The error data field is typically located adjacent to the field which caused the error. The error flag field stores information indicating whether an error occurred when the record was read from the mass storage device. The error flag field also indicates whether the error was a permanent error. When the host processor requests from the buffer a record which has an error associated with it, the host is informed that the error occurred and is provided with the error data and the record data. If the error was a permanent error, then a unit check is provided to the host for indicating that the record data is not valid. The invention allows the host processor to be aware that the data in the cache buffer contains corrected errors, and also means that host processor need not waste time trying to retrieve data that the cache has already failed to retrieve. <IMAGE>

Description

TRACK BUFFER WITH EMBEDDED ERROR DATA BACKGROUND OF THE INVENTION This invention relates to computer systems and, more particularly, to systems for managing data errors.
Data stored on a mass storage device may be corrupted due to physical damage of the storage media, by electromagnetic radiation, or by other factors.
Additionally, valid data stored on the mass storage device may be corrupted by the accessing mechanism due to hardware failure, etc. Some data errors may be corrected. For example, the error may be a transient one and may be cured by rereading the data from the storage media. Other data errors may be cured using various error correction algorithms. Once the error is corrected, the data may be provided to the user as if no error occurred, or else the fact that an error occurred may be reported to the user to alert the user that more serious problems may lie ahead.
Data errors which cannot be corrected are termed "permanent errors," and the user typically is notified of the permanent error without being provided with the corrupted data.
Many computer systems employ cache memories for buffering data from a mass storage device so that a host processor may obtain the stored data more rapidly than if the host processor obtained the data directly from the mass storage device. Ordinarily, only error-free data is stored in the cache memory. Thus, if an error (whether correctable or permanent) occurred when data to be stored in the cache memory was read from the mass storage device, then the host processor would be forced to access the data directly from the mass storage device, whereupon it would learn of the error. That means the host processor must spend a substantial amount of time attempting to access data that it will not get.
SUMMARY OF THE INVENTION The present invention is directed to a computer system having data error information stored in a cache memory so that the host processor may learn of the error without having to access a mass storage device. In one embodiment of the present invention, a buffer stores a plurality of records read from a mass storage device. The buffer includes a record information field and an error flag field for each stored record. The record information field includes count, key (i.e., record access information) and record data fields, together with an optional error data field for storing error data indicating a characteristic of an error which occurred when the record was read from the mass storage device. The error data field is typically located adjacent to the field which is in error.
The error flag field stores information indicating whether an error occurred when the record was read from the mass storage device. More particularly, the error flag field includes a count error field for storing information indicating whether an error occurred when the count information was read from the mass storage device, a key error field for storing information indicating whether an error occurred when the record access information was read from the mass storage device, and a record data error field for storing information indicating whether an error occurred when the record data was read from the mass storage device.
The error flag field also indicates whether a count, key or data error was a permanent error.
When the host processor requests from the buffer a record which has an error associated with it, the host is informed that the error occurred and is provided with the error data and the record data. If the error was a permanent error, tharr,a unit check ie provided to the host for indicating that the record data is not valid.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram of a particular embodiment of a computer system according to the present invention; Fig. 2 is a block diagram of a particular embodiment of the intermediate processor shown in Fig. 1; Fig. 3 is a block diagram of a particular embodiment of the track buffer shown in Fig. 2; Fig. 4 is a block diagram of a particular embodiment of the track data area shown in Fig. 3; Fig. 5 is a block diagram of a particular embodiment of a track record shown in Fig. 4; Fig. 6 is a diagram showing a particular embodiment of a record flag shown in Fig. 4; Fig. 7 is a block diagram of a particular embodiment of a track record which has error data stored therein; Fig. 8 is a block diagram of a particular embodiment of the main processor shown in Fig. 2; Fig. 9 is a flow chart showing how error data is stored in the track buffer; and Figs. 1OA-C are flow charts showing how host record requests are processed.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Fig. 1 is a block diagram of a particular embodiment of a computer system 10 according to the present invention. Computer system 10 includes a host processor 14, an intermediate processor 18, a mass storage control unit 26, and a mass storage device 34. Intermediate processor 18 stores data from mass storage device 34 for rapid access by host 14. Host processor 14 communicates with intermediate processor 18 through a host-processor co=unicaton path 22.
Intermediate processor 18 is coupled to mass storage ccrtrol unit 26 through a processor-control communication path 30, and mass storage control unit 26 is coupled to mass storage device 34 through a control-storage communication path 38.
Fig. 2 is a block diagram of a particular embodiment of intermediate processor 18. In this embodiment, intermediate processor 18 is constructed in accordance with the teachings of copending U.S. patent application Serial No.
entitled Intermediate Processor Disposed Between a Host Channel and a Storage Director, incorporated herein by reference. As shown in Fig. 2, intermediate processor 18 includes a control unit interface circuit 42 which receives data requests from host 14 through host-processor communication path 22; a front end circuit 46 which communicates with control unit interface 42 through a communication path 50 for processing the requests received by control unit interface 42; a main processor 54 which communicates with front end circuit 46 through a communication path 56 and which manages data stored in a track buffer 58; and a channel interface circuit 62 for communicating data between mass storage control unit 26 and main processor 54 through communication paths 30 and 66.
Fig. 3 is a block diagram showing the logical organization of track buffer 58. Track buffer 58 includes a page pointer area 70 for storing a plurality of pointers to pages which form the track buffer; a chain pointer area 74 for storing device chain pointers (for all tracks associated with the device), LRU pointers, sub-buffer chain pointers (which are used when there is more than one buffer describing the same track), etc; an operating system work area 78; and a track data area 82 for storing a track of data (comprising a plurality of records) from mass storage device 34.
Fig. 4 is a block diagram of a particular embodiment of track data area 82. Track data area 82 comprises a buffer modification flag 86; a Cylinder/Cylinder/Head/Head (CCHH) area 90 which identifies the track so that the task accessing the track may compare its internal CCHH to verify that it has the correct track; a record flag area 94 for storing status information about the plurality of records in the track; and a track record area 98 for storing the actual track data and control information.
Fig. 5 is a block diagram of a particular embodiment of a track record 100 that is stored in track record area 98. Track record 100 includes a home address field 104; a 2-byte error detection code (EDC) for home address field 104; an 8-byte count field 108 for indicating the length of the record in bytes; a 2-byte EDC 112 for count field 108; an optional key field 116 (up to 255 bytes) whose length is determined by count field 108 for providing access information for the record; a 2-byte EDC 120 for key field 116; a variable-length data field 124; and a 2-byte EDC 125 for data field 124. Following EDC 125 are the count, key, and data fields (together with their EDC values) for the remaining records in the track.
Fig. 6 is a diagram of a particular embodiment of a record flag 130 from record flag area 94. There is one such record flag for each record stored in track record area 98. Bits [0:2) store information indicating whether the count, key or data field, respectively, have been modified.
Bits [4:6] store information indicating whether a permanent error occurred when the count, key or data fields, respectively, were read from the mass storage device. Bit [7) functions as an END-OF-TRACK flag for indicating that the corresponding record is the last record in the track.
Bits [8:10] store information indicating whether error data for the count, key and/or data fields, respectively, are present in the record. Finally, bits [12:14] indicate whether the error data for the count, key and/or data fields, respectively, are valid in the associated record and need to be presented to the host.
In this embodiment, the error data may comprise sense data bytes received as described in the IBM ESA/370 Principles of Operation manual, incorporated herein by reference, and the sense bytes are embedded within the track record. Generally, the sense bytes are stored adjacent to the field which caused the data error. For example, Fig. 7 shows a sense data byte field 140 between count field 108 and key field 116 for indicating an error occurred when count field 108 was read from mass storage. As used in this example (and in the claims), the term "count field" may mean the bytes comprising the count value itself, or the bytes comprising both the count value and its associated EDC. The same is true for the key and data fields. If key field 116 caused the error, then the sense bytes would be disposed between key field 116 and data field 124. If a data field caused the error, then the sense bytes would be disposed directly after data field 124.
When there is no count field 108 (because of a permanent error when reading the count field), then there will be no key or data fields. When there is a count field, there may or may not be key or data fields depending on whether errors occurred when reading those fields from mass storage device 34 and whether or not the errors were permanent. In general, if the field data cannot be read after ten retry attempts, then the appropriate permanent error flag is set. If the count field was successfully read, then the count field may be used to skip over the failing record and subsequent records may be read until a good portion of the track is found. If the count field was not successfully read, then either the remainder of the track may be ignored, selected portions of the track may be skipped, or a search made for a reliable indicator of the next record (such as a predetermined data sequence). The remaining good portions of the track then may be staged into track record area 98.
Fig. 8 is a block diagram of portions of main processor 54 relevant to the present invention. A request processing unit 150 is coupled to front end circuit 46 through communication path 56 and to track buffer 5 through a communication path 162. Request processing unit 150 includes an error flag checking unit 154 for determining whether an error occurred when the requested record was read from mass storage device 3w, and a sense data processing unit 158 for selectively communicating any sense data stored in the requested record to front end circuit 46. A record processing unit 166 is coupled to track buffer 58 through a communication path 170 and to channel interface 62 through communication path 66. Record processing unit 166 includes an error flag setting unit 174 for setting the appropriate error flag when an error is reported by mass storage control unit 26, and a sense data storing unit 178 for storing sense data received from mass storage control unit 26 in the appropriate location in the record.
Fig. 9 is a flow chart showing the operation of record processing unit 166. Record processing unit 166 requests mass storage control unit 26 to read a record field (count, key or data as determined by the position of the read head) from mass storage device 34 into track record area 98 of track buffer 58 in a step 200. It is then ascertained in a step 204 whether an error occurred when the requested record field was read from mass storage device 34.
If not, then the mass storage device 34 is positioned to read the next record field in a step 209. If an error occurred, it is then ascertained whether correction data is present (for those systems which provide such) in a step 210. If so, then the record field is corrected in a step 211, and processing continues in step 209. If no correction data is present, then record processing unit 166 asks mass storage control unit 26 to retry the read in a step 212. It is then ascertained in a step 216 whether another error occurred. If so, it is then ascertained in a step 220 whether the retry threshold (e.g., 10) has been exceeded.
If not, then the retries continue in step 212.
If it is ascertained in step 216 that the retry was successful, then it is ascertained in a step 22 whether the count field caused the original error. If so, then the count field sense bytes present and valid flags (Fig. 6) are set in a step 228, the sense data received from mass storage control unit 26 is stored adjacent to the count field in a step 230, and mass storage device 34 is positioned to read the key and data fields for the record in a step 232. It is then ascertained in a step 234 whether the end of the track has been reached. This typically will not be the case when the count and key fields are being processed, so processing continues in step 200.
If it is ascertained in step 224 that the error did not occur from reading the count field, it is then ascertained in a step 238 whether the error occurred as a result of reading the key field. If so, then the key field sense bytes present and valid flags are set in a step 242, the sense data is stored adjacent to the key field in a step 246, mass storage device 34 is positioned to read the data field for the record in a step 248, and processing continues in step 234. If the key field did not cause the error, then the data field sense bytes present and valid flags are set in a step 250, the sense data is stored adjacent to the data field in a step 254, mass storage device is positioned to read the count field of the next record in a step 256, and processing continues in step 234.
If it is ascertained in step 220 that the retry threshold has been exceeded, then a permanent error condition exists. Therefore, it is ascertained in a step 258 whether the error occurred as a result of reading the count field. If so, then the count field permanent error and sense bytes valid and present flags are set in a step 262, the sense data is stored adjacent to the count field in a step 266, mass storage device 34 is positioned to read the next record in a step 268, and processing continues in step 234. If the count field did not generate the error, it is then ascertained in a step 274 whether the key field caused the error. If so, the key field permanent error and sense bytes present and valid flags are set in a step 278, the sense data is stored adjacent to the key field in a step 282, mass storage device 34 is positioned to read the data for the record in a step 284, and processing continues in step 234. If the key field did not cause the error, then the data field permanent error and sense bytes present and valid flags are set in a step 286, the sense data is stored adjacent to the data field in a step 290, mass storage device 34 is positioned to read the next record in a step 292, and processing continues in step 234.
When it is ascertained in step 234 that the end of the track has been reached, then the END-OF-TRACK flag is set in a step 294, and the program exits.
Figures 1OA-C are flow charts showing the operation of request processing unit 150. Request processing unit 150 receives a host command record request in a step 300 and ascertains in a step 304 whether the count field is being processed. If not, it is then ascertained in a step 308 (Figure 10B) whether a key field is being processed. If not, it is then ascertained in a step 312 (Figure 10C) whether a data field is being processed. If not, then the command is terminated in a step 316.
Typically one or more of steps 304, 308 or 312 provide an affirmative response. Thus, if it is ascertained in step 304 that the count field is being processed, it is then ascertained in a step 320 whether the command is a format write command. If so, then the sense bytes valid, sense bytes present and permanent error flags for all fields are reset in a step 324. The count field is then transferred in a step 328, and processing continues in step 308.
If the command was not a format write command, then the count field is transferred in a step 332, and it is then ascertained in a step 336 whether the count field sense bytes present flag is set. If not, then processing continues in step 308. If the count field sense bytes present flag is set, it is then ascertained in a step 340 whether the count field sense bytes valid flag is set. If not, then the 32 bytes are skipped in a step 4o, and processing continues to step 308. If the count field sense bytes valid flag is set, then the error status and sense bytes are sent to the host in a step 348. It is then ascertained in a step 352 whether the count field permanent error flag is set. If so, then the error is reported in a step 356, and the command is terminated. If the count field permanent error flag is not set, then the count field sense bytes valid flag is reset in a step 360, the error is reported in step 356, and the command terminates.
If it is ascertained in step 308 that a key field is being processed, it is then ascertained in a step 364 whether the command is one to write the key field. If so, then the key field sense bytes valid and key field permanent error flags are reset in a step 368, and the key field is transferred in a step 372. It is then ascertained in a step 376 whether the key field sense bytes present flag is set.
If not, then processing continues in step 312. If the key field sense bytes present flag is set, then the 32 sense bytes are skipped in a step 380, and processing continues in step 312.
If it is ascertained in step 364 that the command does not write the key field, it is then ascertained in a step 384 whether the key field is being transferred to the host. If not, then the key field is skipped in a step 388.
It is then ascertained in a step 392 whether the key field sense bytes present flag is set. If not, then processing continues in step 312. If the key field sense bytes present flag is set, then the 32 sense bytes are skipped in a step 396, and processing continues in step 312.
If it is ascertained in step 384 that the key field is being transferred to the host, then the key field is transferred in a step 400. It is then ascertained in a step 404 whether the key field sense bytes present flag is set. If not, then processing continues in step 312. If the key field sense bytes present flag is set, it is then ascertained in a step 408 whether the key field sense bytes valid flag is set. If not, then the 32 sense bytes sre skipped in a step 412, and processing continues in step 312.
If the key field sense bytes valid flag is set, then the error status and sense bytes are sent to the host in a step 416. It is then ascertained in a step 420 whether the key field permanent error flag is set. If so, then the error is reported in a step 424, and the command terminates. If the key field permanent error flag is not set, then the key field sense bytes valid flag is reset in a step 428, the error is reported in step 424, and the command terminates.
If it is ascertained in step 312 that the data field is being processed, then it is ascertained in a step 432 whether the command is writing the data field. If so, then the data field sense bytes valid and data field permanent error flags are reset in a step 436, and the data field is transferred in a step 440. It is then ascertained in a step 444 whether the data field sense bytes present flag is set. If not, then the command is terminated in step 316. If the data field sense bytes present flag is set, then the 32 sense bytes are skipped in a step 448, and processing terminates in step 316.
If it is ascertained in step 432 that the command does not write the data field, it is then ascertained in a step 452 whether the data field is being transferred to the host. If not, then the data field is skipped in a step 456.
It is then ascertained in a step 460 whether the data field sense bytes present flag is set. If not, then the command terminates in step 316. If the data field sense bytes present flag is set, then the 32 sense bytes are skipped in step 464, and the command terminates in step 316.
If it is ascertained in step 452 that the data field is being transferred to the host, then the data field is transferred in a step 468. It is then ascertained in a step 472 whether the data field sense bytes present flag is set. If not, then the command terminates in step 316. If the data field sense bytes valid flag is set, it is then ascertained in a step 476 whether the data field sense bytes valid flag is set. If not, then the 32 sense bytes are skipped in step 480, dnd the command terminates in step 316. If the data field sense bytes valid flag is set, then the error status and sense bytes are sent to the host in a step 484. It is then ascertained in a step 488 whether the data field permanent error flag is set. If so, then the error is reported to the host in a step 492, and the command terminates. If the data field permanent error flag is not set, then the data field sense bytes valid flag is reset in a step 496, the error is reported to the host in step 492, and the command terminates.
While the above is a complete description of a preferred embodiment of the present invention, various modifications may be employed. Consequently, the scope of the invention should not be limited except as described in the claims.

Claims (29)

CLAIMS:
1. A buffer for storing a plurality of records read from a mass storage device, the buffer comprising, for each record read from the mass storage device: an error flag field for storing information indicating whether an error occurred when the record was read from the mass storage device; and a record information field for storing record information for the record read from the mass storage device, the record information field including an error data field for storing error data indicating a characteristic of an error which occurred when the record was read from the mass storage device.
2. The buffer according to claim 1 wherein the error data field exists in a record only when an error occurred when the record was read from the mass storage device.
3. The buffer according to claim 1 wherein each record information field further comprises: a key field for storing access information for the record read from the mass storage device; a record data field for storing record data read from the mass storage device; and a count field for storing count information read from the mass storage device, the count information indicating a length of the record data field read from the mass storage device.
4. The buffer according to claim 3 wherein each error flag field comprises: a count error field for storing information indicating whether the error occurred when the count information was read from the mass storage device; a key error field for storing information indicating whether the error occurred when the access information was read from the mass storage device; and a record data error field for storing information indicating whether the error occurred when the record data was read from the mass storage device.
5. The buffer according to claim 4 wherein the error data field is disposed adjacent to the count field when the error occurred when the count information was read from the mass storage device.
6. The buffer according to claim 4 wherein the error data field is disposed adjacent to the key field when the error occurred when the access information was read from the mass storage device.
7. The buffer according to claim 4 wherein the error data field is disposed adjacent to the record data field when the error occurred when the record data was read from the mass storage device.
8. The buffer according to claim 4 wherein the key field is disposed between the count field and the record data field, wherein the error data field is disposed between the count field and the key field when the error occurred when the count information was read from the mass storage device, and wherein the error data field is disposed between the key field and the data field when the error occurred when the access information was read from the mass storage device.
9. An apparatus for accessing data from a mass storage device comprising: record reading means for reading a record from the mass storage device; error detecting means, coupled to the record reading means, for detecting when an error occurred when the record was read from the mass storage device; a buffer for storing a plurality of records read from the mass storage device, the buffer comprising, for each record read from the mass storage device: an error flag field for storing information indicating whether an error occurred when the record was read from the mass storage device; a record information field for storing record information for the record read from the mass storage device, the record information field including an error data field for storing error data indicating a characteristic of an error which occurred when the record was read from the mass storage device; record information storing means, coupled to the record reading means and to the buffer, for storing record information read from the mass storage device in the record information field; error flag setting means, coupled to the buffer and to the error detecting means, for storing information in the error flag field indicating an error occurred when the corresponding record was read from the mass storage device; and error data storing means, coupled to the buffer and to the error detecting means, for storing error data in the error data field when an error occurred when the corresponding record was read from the mass storage device.
10. The apparatus according to claim 9 wherein the error data field exists in the record information field only when an error occurred when the corresponding record was read from the mass storage device.
11. The apparatus according to claim 9 wherein each record information field further comprises a record data field for storing record data read from the mass storage device.
12. The apparatus according to claim 11 further comprising: request receiving means for receiving record requests from a data processing element; and response means, coupled to the buffer and to the request receiving means, for communicating the record data corresponding to a requested record to the data processing element when the error flag indicates no error occurred when the requested record was read from the mass storage device.
13. The apparatus according to claim 12 wherein the response means includes means for communicating the error data corresponding to the requested record to the data processing element when the error flag field indicates an error occurred when the requested record was read from the mass storage device.
14. The apparatus according to claim 13 wherein the response means includes means for communicating the record data corresponding to the requested record to the data processing element when the error flag field indicates an error occurred when the requested record was read from the mass storage device.
15. The apparatus according to claim 12 wherein the buffer further comprises, for each record read from the mass storage device, an error data status field for storing information indicating whether the error data for the corresponding record has been communicated to the data processing element.
16. The apparatus according to claim 15 further comprising error data status storing means, coupled to the error data status field and to the response means, for storing information in the error data status field indicating the error data for the corresponding record has been communicated to the data processing element when the response means communicates the error data for the corresponding record to the data processing element.
17. The apparatus according to claim 11 wherein the record information field further comprises: a count field for storing count information read from the mass storage device, the count information indicating a length of the record data field read from the mass storage device; and a key field for storing access information for the record read from the mass storage device.
18. The apparatus according to claim 17 wherein each error flag field comprises: a count error field for storing information indicating whether the error occurred when the count information was read from the mass storage device; a key error field for storing information indicating whether the error occurred when the access information was read from the mass storage device; and a record data error field for storing information indicating whether the error occurred when the record data was read from the mass storage device.
19. The buffer according to claim 18 wherein the error data field is disposed adjacent to the count field when the count error field indicates the error occurred when the count information was read from the mass storage device.
20. The buffer according to claim 18 wherein the error data field is disposed adjacent to the key field when the key error field indicates the error occurred when the access information was read from the mass storage device.
21. The buffer according to claim 18 wherein the error data field is disposed adjacent to the record data field when the record data error field indicates the error occurred when the record data was read from the mass storage device.
22. The buffer according to claim 18 wherein the key field is disposed between the count field and the record data field, wherein the error data field is disposed between the count field and the key field when the count error field indicates the error occurred when the count information was read from the mass storage device, and wherein the error data field is disposed between the key field and the data field when the key error field indicates the error occurred when the access information was read from the mass storage device.
23. A method for accessing data from a mass storage device comprising the steps of: reading a record from the mass storage device; storing information in an error flag field corresponding to the read record in a buffer, the error flag field indicating whether an error occurred when the record was read from the mass storage device; storing error data in an error data field corresponding to the read record in the buffer when an error occurred when the record was read from the mass storage device, the error data field indicating a characteristic of the error which occurred when the record was read from the mass storage device; storing record data in a record field corresponding to the read record in the buffer; receiving a record request from a data processing element; determining whether the error flag field corresponding to the requested record indicates an error occurred when the requested record was read from the mass storage device; and communicating the stored record data corresponding to the requested record to the data processing element when the error flag field indicates no error occurred when the requested record was read from the mass storage device.
24. The method according to claim 23 further comprising the step of communicating the error data corresponding to the requested record to the data processing element when the error flag field indicates an error occurred when the requested record was read from the mass storage device.
25. The method according to claim 24 further comprising the step of communicating the record data corresponding to the requested record to the data processing element when the error flag field indicates an error occurred when the requested record was read from the mass storage device.
26. The method according to claim 23 further comprising the step of storing information in a error data status field in the buffer, the information indicating whether the error data for a corresponding record has been communicated to the data processing element.
27. The method according to claim 32 further comprising the step of storing information in the error flag field indicating whether an error which occurred when the record was read from the mass storage device was a permanent error.
28. Apparatus for accessing data from a mass storage device, the apparatus being substantially as herein described with reference to the accompanying drawings.
29. A method of accessing data from a mass storage device, the method being substantially as herein described with reference to the accompanying drawings.
GB9403001A 1993-02-17 1994-02-17 Track buffer with embedded error data Withdrawn GB2276255A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US1868093A 1993-02-17 1993-02-17

Publications (2)

Publication Number Publication Date
GB9403001D0 GB9403001D0 (en) 1994-04-06
GB2276255A true GB2276255A (en) 1994-09-21

Family

ID=21789230

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9403001A Withdrawn GB2276255A (en) 1993-02-17 1994-02-17 Track buffer with embedded error data

Country Status (1)

Country Link
GB (1) GB2276255A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000070462A1 (en) * 1999-04-30 2000-11-23 Cewe Instrument Ab Supervision arrangement in a computer
WO2001045101A2 (en) * 1999-12-17 2001-06-21 Thomson Licensing S.A. USAGE OF AN SDRAM AS STORAGE FOR CORRECTION AND TRACK BUFFERING IN FRONTEND ICs OF OPTICAL RECORDING OR REPRODUCTION DEVICES
WO2004015717A2 (en) 2002-08-12 2004-02-19 Intel Corporation Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations
GB2395578A (en) * 2002-11-22 2004-05-26 Ibm Fault tracing in systems with virtualization layers

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2202976A (en) * 1987-03-30 1988-10-05 Ibm Method of handling disk sector errors in cache

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2202976A (en) * 1987-03-30 1988-10-05 Ibm Method of handling disk sector errors in cache

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000070462A1 (en) * 1999-04-30 2000-11-23 Cewe Instrument Ab Supervision arrangement in a computer
WO2001045101A2 (en) * 1999-12-17 2001-06-21 Thomson Licensing S.A. USAGE OF AN SDRAM AS STORAGE FOR CORRECTION AND TRACK BUFFERING IN FRONTEND ICs OF OPTICAL RECORDING OR REPRODUCTION DEVICES
WO2001045101A3 (en) * 1999-12-17 2001-11-08 Thomson Brandt Gmbh USAGE OF AN SDRAM AS STORAGE FOR CORRECTION AND TRACK BUFFERING IN FRONTEND ICs OF OPTICAL RECORDING OR REPRODUCTION DEVICES
US7346830B2 (en) 1999-12-17 2008-03-18 Thomson Licensing Usage of an SDRAM as storage for correction and track buffering in frontend ICs of optical recording or reproduction devices
WO2004015717A2 (en) 2002-08-12 2004-02-19 Intel Corporation Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations
WO2004015717A3 (en) * 2002-08-12 2006-06-01 Intel Corp Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations
GB2395578A (en) * 2002-11-22 2004-05-26 Ibm Fault tracing in systems with virtualization layers
US7210071B2 (en) 2002-11-22 2007-04-24 International Business Machines Corporation Fault tracing in systems with virtualization layers

Also Published As

Publication number Publication date
GB9403001D0 (en) 1994-04-06

Similar Documents

Publication Publication Date Title
US4558446A (en) Memory system
US6629198B2 (en) Data storage system and method employing a write-ahead hash log
US4688221A (en) Error recovery method and apparatus
US5255270A (en) Method of assuring data write integrity on a data storage device
US5412612A (en) Semiconductor storage apparatus
US5528755A (en) Invalid data detection, recording and nullification
US6772383B1 (en) Combined tag and data ECC for enhanced soft error recovery from cache tag errors
US4598357A (en) Cache/disk subsystem with file number for recovery of cached data
US6651133B2 (en) Method and data storage device for writing a minimum number of memory cells in a memory device
US7080200B2 (en) System and method for handling writes in HDD using 4K block sizes
EP0114190B1 (en) Data storage hierarchy
US6751757B2 (en) Disk drive data protection using clusters containing error detection sectors
US3800294A (en) System for improving the reliability of systems using dirty memories
US5513344A (en) Method of testing cache memories used for an information processing apparatus
US20040123202A1 (en) Mechanisms for detecting silent errors in streaming media devices
US5737344A (en) Digital data storage with increased robustness against data loss
US20130268492A1 (en) Method and System for Efficient Write Journal Entry Management for a Distributed File System
JPH0612895B2 (en) Information processing system
US5590298A (en) Method of restoring and updating records in a disk cache system during disk drive idle time using start and end addresses
US5719885A (en) Storage reliability method and apparatus
US6279134B1 (en) Storage device and storage subsystem for efficiently writing error correcting code
US6681299B1 (en) Cache-tag control method in information processing apparatus having cache, with error checking mechanism in cache tag, and information processing apparatus using this control method
US6711659B2 (en) Method and system for data path verification
GB2276255A (en) Track buffer with embedded error data
US4704641A (en) Recovery of stored data from mutilated tape data blocks

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)