Read while write method in data storage device

Abstract: A method of writing data simultaneously to a plurality of tracks of a magnetic tape storage device whilst preventing elongate tape scratches corrupting blocks of data comprises: arranging a byte stream of user data into a plurality of codewords (600); distributing said codewords amongst a plurality of write heads (601); writing said codewords to a plurality of tracks (602); reading said data back from said plurality of tracks (603); verifying that said data has been written to tape successfully (604) and, if not, distributing said codewords amongst said plurality of read/write heads in a different order and re-writing said data to tape (605).

Description: Field of the Invention The present invention relates to data storage devices and in particular although not exclusively to tape data storage devices having a capability of writing data simultaneously to a plurality of tracks. Background to the Invention In order to store digital electronic data, it is known to use magnetic tape data cartridges which are inserted into a tape drive unit having a plurality of read/write heads. Typically such magnetic tape storage devices may be used to back up data generated by a host device, eg a computer. As the drive for greater data storage capacity necessitates narrower tracks on linear tape data storage devices, individual codewords are at greater risk of being corrupted during the write to tape process due to, for example, a scratch on the magnetic coating of a tape storage medium. It is known in tape storage devices to configure the write and read heads such that data written to tape can immediately be read back from tape to verify whether or not the data has become corrupted during the writing process. In the case of discrete blocks of data associated with, for example, the output of a computer, it may be possible to rewrite the corrupted codewords detected. However, simply rewriting one bad block of a plurality of codewords that may be written to tape simultaneously using a plurality of read/write heads would necessitate that any subsequent codewords recorded on tape would need to be reordered. In addition, as the number of rewrite operations increases so the reordering of subsequently written data would become increasingly complex. International Patent Application publication number WO 89/00312 discloses a data buffer management system that supervises the transmission of blocks of data between a first device, a data buffer, and a second device. In a write mode, blocks are transmitted to the second device in an originally intended sequence. If the second device determines that a bad block was written thereto, the management system rewrites the block in an alternate sequence. In a read mode, the management system ignores bad blocks and duplicate blocks acquired from the second device to transmit blocks of data to the first device in the proper sequence. Summary of the Invention The specific embodiments and methods according to the present invention aim to improve the writing of data in high data density tape systems having a plurality of read/write heads, and thereby improving the reliability of such devices. Specific methods according to the present invention, recognize that if corrupted data is re-written to a plurality of tracks in a different track order to that of a previously written version of the data, then data previously effected by surface damage can be written to tape successfully. According to a first aspect of the present invention there is provided a method of writing data to a data storage medium the method characterized by comprising the steps of: partitioning said data into a plurality of codewords; distributing said codewords amongst a plurality of write heads; performing a write operation to write said codewords substantially simultaneously to a plurality of tracks of said data storage medium; performing a read operation to read said codewords from said plurality of tracks; if said codewords read from said plurality of tracks contain errors, then redistributing said codewords originally written to said data storage medium in a different order amongst said plurality of write heads; and performing a re-write operation to re-write said re-distributed codewords to a plurality of tracks of said data storage medium. Preferably, said data storage medium comprises an elongate tape, and said write operation comprises a write pass along a length of said tape. The said step of distributing codewords amongst a plurality of write heads preferably comprises distributing a plurality of Codeword Quads amongst said plurality of write heads. A set of four codewords is termed a Codeword Quad herein. Preferably each of said plurality of Codeword Quads are allocated to a corresponding said write head. Preferably, said step of performing a write operation comprises simultaneously writing said plurality of Codeword Quads onto said data storage medium through said write heads. A said plurality of Codeword Quads may be arranged into a logical track block for writing to said data storage medium simultaneously, and a position of an individual said Codeword Quad within said logical track block is indicated by an integer number. A plurality of said Codeword Quads to be written simultaneously may be arranged into a logical track block; said Codeword Quads of each said logical track block may be allocated to corresponding ones of said plurality of write heads in a first order, and if an error is detected in said Codeword Quads once written to said data storage medium, said Codeword Quads of said logical track block are re-allocated to said write heads in said different order. Preferably, a position of said Codeword Quads within said logical track block is denoted by an integer number. Preferably, each of said Codeword Quads of a said logical track block corresponds with a respective one of said plurality of write heads. A said first order may be determined by the expression: Track_Number=Mod [ (CQ_Number - Mod (CQ_Number, N_T) N_T , N_T] where the Track_Number represents a number of an element of a logical track block, CQ_Number represents a number of a set of four codewords, Mod represents the integer remainder of a modulo division; and N-T represents a number of tracks simultaneously written. Said different order may be determined by an expression: Track_Number=Mod [ (CQ_Number - Mod (CQ_Number, N_T) N_T - W, N_T] where the Track_Number represents a number of an element of a logical track block, CQ_Number represents a number of a set of four codewords, Mod represents the integer remainder of a modulo division; W represents the state of a character which cycles through a sequence of integers 0 to M-1, where M represents the number of active tracks which can be written to simultaneously; and N-T represents a number of tracks simultaneously written. Preferably, said data storage medium comprises a magnetic data storage medium, for example a cassette tape cartridge comprising an elongate band of tape wound about a reel. The invention includes a data storage device comprising at least one read element and at least one write element, said device characterized by comprising means capable of writing data to a data storage medium and means capable of reading said written data from said data storage medium, wherein: said write means is operable to partition said data into a plurality of codewords; said write means is operable to distribute said codewords amongst a plurality of write heads; said write means is operable to perform a write operation to write said codewords substantially simultaneously to a plurality of tracks of said data storage medium; said read means is operable to perform a read operation to read the codewords from said plurality of tracks; if said codewords read from said plurality of tracks are incomplete, then said device is operable to re-distribute said codewords originally written to said data storage medium in a different order amongst said plurality of write heads; and said device is operable to perform a re-write operation to re-write said re-distributed codewords to a plurality of tracks of said data storage medium. Said data storage medium optimally comprises a magnetic tape data storage medium. The invention includes a method of rewriting corrupt data which protects against the effects of extended data to the storage medium. Brief Description of the Drawings For a better understanding of the invention and to show how the same may be carried into effect, there will now be described by way of example only, specific embodiments, methods and processes according to the present invention with reference to the accompanying drawings in which: Fig. 1 illustrates schematically a plurality of paths taken by a read/write head relative to an elongate band of magnetic tape material according to a specific method of the present invention; Fig. 2 illustrates schematically a general overview of a device configured to distribute a stream of data to a plurality of write heads and to write the data to a magnetic tape data storage medium; Fig. 3 illustrates schematically a layout of a band group comprising a plurality of physical data tracks recorded onto a magnetic tape data storage medium according to a specific method of the present invention; Fig. 4 illustrates schematically in general overview a process for redundancy coding and recording a byte stream of data from a host apparatus onto a magnetic tape data storage medium according to a specific implementation of the present invention; Fig. 5 illustrates schematically the layout of a single block of process data from a host apparatus in the form in which it is allocated to a track of a magnetic tape storage medium according to a specific implementation of the present invention; Fig. 6 illustrates schematically how the process codewords of a complete data set are allocated to a plurality of tracks of a magnetic tape storage medium according to a specific implementation of the present invention; Fig. 7 illustrates schematically generalized process steps for writing data to a data storage medium, and rewriting any corrupted or incorrectly written data, during said data writing operation; Fig. 8 illustrates schematically steps for writing data to tape, verifying that the data has been correctly written and rewriting corrupt data according to the specific implementation of the present invention; and Fig. 9 illustrates schematically an example of how codewords are allocated to tracks of a tape storage medium where bad blocks have been rewritten to tape according to the specific implementation of the present invention. Detailed Description of the Best Mode for Carrying Out the Invention There will now be described by way of example the best mode contemplated by the inventors for carrying out the invention. In the following description numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent however, to one skilled in the art, that the present invention may be practiced without limitation to these specific details. In other instances, well known methods and structures have not been described in detail so as not to unnecessarily obscure the present invention. Specific methods according to the present invention described herein are aimed at magnetic tape recording devices having a substantially static read/write head in which an elongate tape is drawn past the head at relatively high speed, for example of the order 3 meters per second. Reading and writing of data onto the tape may be carried out in both forward and reverse pass directions of the tape relative to the head, and a plurality of parallel data tracks may be read or recorded onto the tape simultaneously using a read/write head comprising a plurality of spaced apart read/write elements. However, the general methods disclosed and as identified in the claims herein, are not limited to static head devices or devices having high tape speeds. In the following description a specific embodiment having 8 tracks simultaneously written to will be described. However, it will be recognized by the skilled person that the general methods disclosed herein may be applied generally to other track formats in which 2, 4, 16 or other numbers of tracks are written simultaneously. Referring to Fig. 1 herein, there is illustrated schematically a physical layout of data recorded along an elongate band of magnetic tape by a read/write head of a magnetic data recording device as the tape is drawn past the head. The read/write head contains a plurality of read elements and a plurality of write elements arranged to read or write a plurality of physical tracks of data along a tape simultaneously, resulting in physical tracks 100, 104 which are recorded parallel to each other along the length of the tape. The plurality of read/write elements are spaced apart from each other in a direction transverse to the direction of the tape, typically by a distance of the order 200 µm. Each read/write element is capable of reading or writing a physical track of width of the order 20 µm or so. The read/write head records a plurality of band routes along the tape in a path shown in Fig. 1 herein. Each band route contains a plurality of bands, each band comprising a plurality of physically recorded data tracks. Substantially a complete length of the tape is wound past the static read/write head in a single pass. Ideally the tape winds its whole full length from a first end to a second end of the tape during a "pass" of the tape past the read/write head. In this specification a "write pass" is defined as a single passage of the tape past a write head for writing onto a single track, irrespective of whether the tape speed varies, or whether the tape stops during a pass. During a back up operation, the tape may traverse the read/write head in forward and reverse directions a number of different times, in a plurality of different write passes. A write pass may comprise a sequence of writes which cause data to be written sequentially along one or more tracks, which are themselves written in sequence. Referring to Fig. 2 herein, there is illustrated schematically a data storage device capable of writing data to a data storage medium and reading said written data from said data storage medium, comprising: a device 201 which is operable to partition a stream of data from a host device into a plurality of codewords; a device 202 which is operable to distribute the codewords amongst a plurality of write heads; a plurality of write heads 220 - 227 which are operable to perform a write operation to write the codewords to a plurality of tracks of the data storage medium; a plurality of read heads 230 - 237 which are operable to perform a read operation to read the codewords from the plurality of tracks; a device 203 operable to verify if the codewords read from the plurality of tracks are incomplete. Device 204 which is operable to re-distribute incomplete codewords originally written to the data storage medium in a different order amongst the plurality of write heads. In one embodiment of the present invention, the line of 8 write heads are followed by a parallel line of 8 read heads. Each head is switchable to perform either as a read head or a write head. The state of each head is switched on every change of direction of the tape so as to ensure that the read head is always "downstream" of the write head with respect to the direction of movement of the tape past the heads. In a second embodiment of the present invention, the line of 8 write heads are located between two parallel lines of 8 read heads. The read head that is used to read the data from tape in any given write pass is chosen so as to ensure that the read head is always downstream of the corresponding write head irrespective of the direction of movement of the tape past the heads. Referring to Fig. 3 herein there is shown schematically the layout of a single band along a tape. Each band comprises a set of N tracks 301 formed during one write pass of the tape past one of a plurality M read/write heads. After recording one write pass along the length of the tape from the beginning of the tape (BOT) to the end of the tape (EOT), the plurality of read/write heads are moved in a transverse direction, with respect to the elongate direction of the tape, by a distance of the order 20 µm. Data is then written to the tape with the tape moving in the opposite direction to the previous write pass. The plurality of read/write heads trace a "serpentine" path on the tape 300 - 320. After each successive write pass the plurality of read/write heads are moved a further short distance of the order 20 µm in a transverse direction to the main length of the tape. During the process of writing data to tape there is a risk that the data may not be correctly written to tape. This may occur, for example, if the coating of the tape has been damaged by a scratch. Should this occur it may not be possible to correctly recover the data from the tape. According to the best mode presented herein, the data is read back off the tape immediately after having been written to tape during a same pass of the tape past the read/write heads. In this way the integrity of the data written to tape can be confirmed substantially at the same time as it is being written. If any of the data from one or more of the read/write heads has become corrupted on being written to tape, this is detected and the data can be rewritten at a point further along the main length of the tape. In the best mode herein, the order in which the rewritten data is presented to the read/write heads is varied by rotation in order to minimize the effects of scratches along the main length of the tape affecting the same rewritten data. Referring to Fig. 4 herein, there is illustrated an encoding method for encoding user data prior to recording the user data onto a plurality of physical data tracks as described hereinbefore. The data as supplied by the host device computer is in the form of a variable length record which may be separated by file marks and in the best mode presented herein may have a length of up to 2 24 - 1 bytes. A 4 byte cyclic redundancy check (CRC) is added to the end of each record, forming a protected record. In step 400 a data compression algorithm compresses the protected records producing a stream of Symbols. In step 401 the Symbol stream is broken into data sets of 403884 bytes to which a 468 data set information table (DSIT) is appended to form a 404352 byte data set. In step 402 each data set is split into 16 sub-data sets each of 25272 bytes and each sub-data set is arranged into a 54 by 468 byte matrix arranged in rows and columns. In step 403 a (240, 234, 7) Reed-Solomon redundancy coding algorithms is applied to the 234 even numbered bytes in each row producing 6 C1 Error Correcting Code (ECC) bytes. These bytes are placed in the even number C1 parity locations for that row. Then the same Reed-Solomon code is applied to the 234 odd numbered bytes with resulting 6 C1 ECC bytes placed in the odd numbered C1 parity locations for that row. Each row of the matrix comprises one interleaved codeword pair of 480 bytes. The even numbered bytes form the first codeword of the codeword pair and the odd numbered bytes form the second codeword of the codeword pair. Thus 12 bytes of C1 parity information are appended to each row of the 54 by 468 byte matrices forming the 16 sub-data sets. In step 404, a (64, 54,11) Reed-Solomon code is applied to each 54 byte column of the codeword pair matrix producing 10 C2 Error Correcting Code (ECC) bytes per column. The added 10 bytes of C2 ECC form ten additional codeword pairs. The resulting 64 by 480 byte matrices form ECC encoded sub-data sets each comprising 64 codeword pairs. An ECC encoded data set contains 491520 bytes comprised of 16 64x480 byte ECC encoded sub-data sets. Each row of each ECC encoded sub-data set is a 480 byte ECC encoded codeword pair. Thus there are 1024 ECC encoded codeword pairs per ECC encoded data set. In step 405, and referring to Fig. 5 herein, a codeword quad (CQ) is formed by combining a codeword pair header 500, a first codeword pair 501, a second codeword pair header 510 and a second codeword pair 511. The first and second codeword pairs in a codeword quad comprise the corresponding rows of the ECC coded sub-data sets 2R and 2R+1, where R takes the values 0 to 7. For example, the tenth codeword quad has a first codeword pair comprising the first row of sub-data set number 2 and a second codeword pair comprising the first row of sub-data set 3. The 1024 codeword pairs in the 16 sub-data sets form 512 codeword quads each of 960 bytes. In step 406, codeword quads are allocated to each one of the plurality of read/write heads. In the best mode herein codeword quads are written simultaneously onto the tape in sets of 8 CQs, where for example 8 is the number of concurrent read/write heads each read/write head allocated to a corresponding respective physical tape track. One CQ of each set is written concurrently by a respective one of the write heads. The set of a CQ is determined by the expression: Set_Number = CQ_Number - Mod (CQ_Number, N_T) N_T where the Set_Number is a number of a set of CQs, and CQ_Number is the number of the codeword quad to be allocated to the set, and N_T is the number of tracks simultaneously written in a write operation. Each codeword quad is allocated to a particular active track where an active track is a track currently being written to by one of the plurality of read/write heads. The active tracks are numbered 0 through 7 and a codeword quad is allocated to a particular active track identified by a track number using the following expression: Track_Number=Mod [ (CQ_Number - Mod (CQ_Number, N_T) N_T , N_T] where CQ_Number is the number of the codeword quad to be allocated to an active track and can take the values 0 to 511. The Mod function returns the integer remainder of a modulo division. For example Mod [N,8] returns the integer values 0 to 7 for all integer values N. The above expression shall be referred to in the remainder of this description as expression (2). The above expressions (1) and (2) are used in the default case, where no CQ sets are rewritten due to corrupted or poorly written CQ sets on the tape, and results in a write pattern as illustrated by example in Fig. 5 herein. Referring to Fig. 6 herein which relates to an example where 8 tracks are written together, it is illustrated how codeword quads are distributed among active tracks in the case where no write errors occur. Tracks are represented as rows in Fig. 6, on a vertical axis, whilst successively written CQs are represented on a horizontal axis by their CQ numbers. The use of the above expression (2) ensures that C2 symbols from the same C2 codewords are contained in the codeword quads that are distributed across the available active tracks. In Fig. 6 C2 parity codeword quads are represented by the shaded blocks. Once the codeword quads have been allocated to the active tracks, the 8 codeword quads which are written to tape simultaneously are known as a CQ set (also known as a Logical Track Block). The allocated codeword quads are then processed through a data randomizer which acts on each codeword pair within each codeword quad. The randomized byte stream is then encoded by a run length limited coding algorithm (RLL). The RLL encoded byte stream has synchronization information prior to writing to tape forming a synchronized codeword quads (SCQ). CQs which contain symbols for any specific C2 codeword are written physically in a diagonal line across the physical track on tape, as illustrated by shaded CQ boxes in Fig. 6 herein. The shaded boxes represent the CQs written to tape which contain the symbols from a single C2 codeword. In order to maintain the integrity of the data written to tape, each of the plurality of read/write heads are configured such that data can be read back off an active track immediately after it has been written to that track. Write and Read operations occur simultaneously as the tape passes the read/write heads. According to one aspect of the present invention there is provided a method of rewriting an CQ set which has been incompletely or badly written to tape wherein the order of the codeword quads within that SCQ set are rotated such that no rewritten codeword quad occupies the same active track as the previous, badly written, data. Referring to Fig. 7 herein, there is illustrated schematically general process steps for rewriting corrupted codewords to tape, immediately after, or substantially simultaneously, with their initial writing to tape, during a same pass of the tape past the read/write heads. In step 700, user data is partitioned into the plurality of codewords as described hereinabove. In step 701, the codewords are distributed amongst the plurality of write heads as described hereinabove. In step 702, the plurality of codewords are simultaneously written to a plurality of parallel physical tracks on the tape data storage medium, resulting in a sequence of codewords written on tape, an example of which is given in Fig. 6 herein. As the tape passes the read/write heads, codewords are continuously written to tape. Simultaneously with the writing of codewords to tape, as the tape passes the read head during the same pass of the tape past the read/write heads, the recently recorded codewords are read from the tape in parallel from the plurality of parallel physical tracks onto which they have been recorded, illustrated instep 703. In step 704, the read codewords are verified as being accurately recorded onto the tape. If, during the verification process, it is determined that the codewords as read from tape do not correspond with the codewords which were sent to the write head (ie the data has been incompletely written, or for some reason has been corrupted on the tape), then in step 705, the codewords affected by the corruption/incomplete writing are rewritten onto the plurality of tracks. Since new codewords are arriving at the write head during the read operation and the tape movement is continuous, the codewords which are to be rewritten are interleaved with current codewords which are being written by the write heads. The signals sent to the write heads comprise current codewords, interleaved with the re-write codewords. Interleaving of current codewords and re-write codewords may be effected by buffering the current codewords and re-write codewords together prior to recording on tape. Interleaving of the re-write codewords and the current codewords occurs in a buffer of the data storage device, arranged according to a microprocessor operated algorithm, operating as described hereunder. Referring to Fig. 8 herein there are illustrated steps for writing a CQ set to a plurality of tracks, verifying that the data has been correctly written and rewriting badly written CQ sets. In step 801, the codeword quads forming one CQ set are allocated to particular active tracks using equation (2) of this description. In step 802, the codeword quads comprising the logical track block are written to tape. In step 803, the logical track block is read back off tape. In step 804, the data read off tape is checked for completeness. If no error has occurred on writing the data to tape, then the next codeword quads are allocated to the active tracks and steps 802, 804 are repeated. However, if a write error has occurred, then step 805 character W is incremented by 1. In step 806, the original codeword quads written to tape in step 802 are allocated to new active tracks using equation (3) with the incremented value of the counter represented by W. The reordered data is rewritten to tape in step 802 and steps 803 and 804 are repeated. Each CQ set can be rewritten multiple times. In the example herein, the maximum number of CQ sets that may be rewritten within a single data set is 128. When an CQ set is rewritten, any CQ sets that have been written between the original and the rewritten version, do not need to be rewritten themselves unless one of the following conditions apply: An error is detected when they themselves are recorded. They have a data set number that is higher than that of the CQ set that is being rewritten. If an error is detected by read while write verification when recording an CQ set, then that CQ set is rewritten further down the tape. The original, badly written, CQ set is left on the tape as written, (ie the tape is not re-wound to re-record over the incomplete or badly written data, but rather the tape passage continues uninterrupted and the corrupted data CQs are re-written). In the specific example described herein, no more than 6 other CQ sets may be written between the point at which the error was detected and when the CQ set in error is rewritten. The number of other CQ sets written between the badly written CQ set and its rewritten version is fixed by the precise physical configuration of the read/write heads. The number of intermediate CQ sets also depends on the latency inherent to the read/write hardware of the device. When a CQ set is repeated due to a detected write error, read whilst recording, the CQ within the affected CQ set in which the error occurs may be rotated around the tracks so that they do not appear on the same track as the previous time that they were written. To effect such a rotation, the track number for each codeword quad in an SCQ set is given by the following equation: Track_Number=Mod [ (CQ_Number - Mod (CQ_Number, N_T) N_T - W, N_T ] where W is an arbitrary, but different, number between successive writings of the same SCQ set, W represents the state of a character which cycles through a sequence of integers 0 to M-1, where M represents the number of active tracks which can be written to simultaneously. Referring to Fig. 9 herein there is shown an example of such a rotation in which a number of CQ sets are rewritten because an error was detected while they were being written. The notation K X indicates that an error was detected while writing the CQ set K. The notation K' indicates that the CQ set K was rewritten once. The notation K" indicates that the CQ set K was rewritten twice, etc. N is the said set number within the data set. Physical tracks 0 - 7 are represented as rows in Fig. 9, whilst written CQ sets are represented by W numbers extending horizontally. Referring again to Fig. 2 herein, a data storage medium recorded with a set of Codeword Quads which have been erroneously written, and then re-written according to the above described method contains a set of Codeword Quads comprising a first logical track block written at a first position along a length of said tape, and said plurality of codewords comprising said first logical track block also re-written at a second position, further along said tape, at said second position, said Codeword Quads being reordered amongst said set of physical tracks 210-217 according to the expression (3) hereinabove. Reading of data recorded onto a magnetic tape in accordance with the above described method comprises passing the elongate past a plurality of read heads, such that all Codeword Quads of a logical track block are read simultaneously. If Codeword Quads are detected which have been erroneously written, the data is recovered from the same logical track block re-recorded further along the tape, in a second order as determined by the expression (3) above.

Claims: A method of writing data to a data storage medium the method characterized by comprising the steps of: partitioning said data into a plurality of codewords (405, 407); distributing said codewords amongst a plurality of write heads; performing a write operation to write said codewords substantially simultaneously to a plurality of tracks of said data storage medium (702); performing a read operation to read said codewords from said plurality of tracks (703); if said codewords read from said plurality of tracks contain errors, then redistributing said codewords originally written to said data storage medium in a different order amongst said plurality of write heads (804, 805); and performing a re-write operation to re-write said re-distributed codewords to a plurality of tracks of said data storage medium (705). The method as claimed in claim 1, wherein said data storage medium comprises an elongate tape, and said write operation comprises a write pass along a length of said tape. The method as claimed in claim 1 or 2, wherein said step of distributing codewords amongst a plurality of write heads comprises distributing a plurality of codewords amongst said plurality of write heads. The method as claimed in claim 1, wherein said step of distributing said Codeword Quads amongst said plurality of write heads comprises: allocating each of a plurality of Codeword Quads to a corresponding said write head. The method as claimed in claim 1, wherein said plurality of codewords are arranged into a plurality of Codeword Quads and said step of performing a write operation comprises simultaneously writing a plurality of Codeword Quads onto said data storage medium through said write heads. The method as claimed in claim 4 or 5, wherein said plurality of Codeword Quads are arranged into a logical track block for writing to said data storage medium simultaneously, and a position of an individual said Codeword Quad within said logical track block is indicated by an integer number. The method as claimed in claim 1, wherein: said codewords are arranged into a plurality of Codeword Quads; a plurality of said Codeword Quads to be written simultaneously are arranged into a logical track block; said Codeword Quads of each said logical track block are allocated to corresponding ones of said plurality of write heads in a first order; and if an error is detected in said Codeword Quads once written to said data storage medium, said Codeword Quads of said logical track block are re-allocated to said write heads in said different order. The method as claimed in claim 7, wherein a position of said Codeword Quads within said logical track block is denoted by an integer number. The method as claimed in claim 7, wherein each of said Codeword Quads of a said logical track block corresponds with a respective one of said plurality of write heads. The method as claimed in claim 7, wherein said first order is determined by the expression: Track_Number=Mod [ (CQ Number - Mod (CQ_Number, N_T) N_T , N_T] where the Track_Number represents a number of an element of a logical track block, CQ_Number represents a number of a set of four codewords, Mod represents the integer remainder of a modulo division; and N-T represents a number of tracks simultaneously written. The method as claimed in any one of the preceding claims, wherein said different order is determined by an expression: Track_Number=Mod [ (CQ_Number - Mod (CQ_Number, N_T) N_T - W, N_T] where the Track_Number represents a number of an element of a logical track block, CQ_Number represents a number of a set of four codewords, Mod represents the integer remainder of a modulo division; W represents the state of a character which cycles through a sequence of integers 0 to M-1, where M represents the number of active tracks which can be written to simultaneously; and N-T represents a number of tracks simultaneously written. The method as claimed in any one of the preceding claims, wherein said data storage medium comprises a magnetic data storage medium. A data storage device comprising at least one read element and at least one write element, said device characterized by comprising means (201, 202) capable of writing data to a data storage medium and means (203, 204) capable of reading said written data from said data storage medium, wherein: said write means is operable to partition said data into a plurality of codewords; said write means is operable to distribute said codewords amongst a plurality of write heads (220-227); said write means is operable to perform a write operation to write said codewords substantially simultaneously to a plurality of tracks (210 - 217) of said data storage medium; said read means is operable to perform a read operation to read the codewords from said plurality of tracks; if said codewords read from said plurality of tracks are incomplete, then said device is operable to re-distribute said codewords originally written to said data storage medium in a different order amongst said plurality of write heads; and said device is operable to perform a re-write operation to re-write said re-distributed codewords to a plurality of tracks of said data storage medium.

Inventors: BARTLETT PAUL FREDERICK, BARTLETT, PAUL FREDERICK
Applicants: HEWLETT PACKARD CO, HEWLETT-PACKARD COMPANY, A DELAWARE CORPORATION
Application year: 1998
Main classification: G11B20
IPC codes: G11B20, G11B5