Patent ID: 6877127
Filing Date: 2005-04-05
Classification: G06F,G11B

Abstract:
1. Apparatus for transferring data from a host computing system to a magnetic tape storage means or the like, the apparatus comprising means for receiving data and dividing it into blocks, means for writing said blocks of data in sets of a plurality of blocks to said storage means, means for reading back data written to said storage means and transferring said read data to error checking means, said error checking means being arranged to determine if a block of data includes any errors and generate a positive output if the number of errors in said block of data is zero or does not exceed a predetermined number and/or a negative output if the number of errors in said block of data is greater than zero or exceeds a predetermined number, history storage means for storing information relating to at least some of the sets of data written to said storage means together with information corresponding to the output of said error checking means for each block of data in a set, and means for rewriting a set of blocks of data to said storage means if the output generated by the error checking means and stored in said history storage means is negative for more than a predetermined number of the blocks of data and/or a predetermined number or density within a block or set of data, said means for rewriting sets of data being configured such that said predetermined number or density is definable according to user requirements; each of said sets of data being identified in said history storage means by a plurality of bits of data, said bits of data comprising at least two quality bits relating to each block of data in a set; said quality bits being set to ‘0’ when the respective block of data is initially written to said storage means; each block of data comprising a header and two codewords; said error checking means is arranged to determine if the header of a block of data contains an error and, if so, to set the respective quality bits to ‘00’; and if the header of a block of data is determined to contain no errors, the error checking means is arranged to determine if either of the codewords in the block of data contains an error and to set the row quality bits to ‘01’ if both codewords are determined to contain one or more errors, to ‘10’ if only one of the codewords in the block of data is determined to contain at least one error, and to ‘11’ if both codewords are determined to contain no errors; and an N-bit look-up table which can be used to define the quality criteria by which a block of data is to be rewritten or not, wherein N is the number of combinations of 1's and 0's which can occur in the quality bits for each block of data in a set.