Group Code Recording - GCR For 9-track Reel-to-reel Tape

GCR For 9-track Reel-to-reel Tape

In order to reliably read and write to magnetic tape, several constraints on the signal to be written must be followed. The first is that two adjacent flux reversals must be separated by a certain distance on the media. The second is that there must be a flux reversal often enough to keep the reader's clock in phase with the written signal; that is, the signal must be self-clocking. Prior to 6250 cpi tapes, 1600 cpi tapes satisfied these constraints using a technique called phase encoding, which was only 50% efficient. For 6250 GCR tapes, a (0,2)RLL code is used. This code requires five bits to be written for every four bits of data. The code is structured so that no more than two zero bits (which are represented by lack of a flux reversal) can occur in a row, either within a code or between codes, no matter what the data was. This RLL code is applied independently to the data going to each of the 9 tracks.

Of the 32 5-bit patterns, 8 begin with two consecutive zero bits, 6 others end with two consecutive zero bits, and one more (10001) contains three consecutive zero bits. Removing the all-ones pattern (11111) from the remainder leaves 16 suitable code words.

The 6250 GCR RLL code:

Nibble Code Nibble Code
0000 11001 1000 11010
0001 11011 1001 01001
0010 10010 1010 01010
0011 10011 1011 01011
0100 11101 1100 11110
0101 10101 1101 01101
0110 10110 1110 01110
0111 10111 1111 01111

11 of the nibbles (other than xx00 and 0001) have their code formed by prepending the complement of the msbit; i.e. abcd is encoded as a̅abcd. The other 5 values are assigned codes beginning with 11. Nibbles of the form ab00 have codes 11baa̅, i.e. the bit reverse of the code for ab11. The code 0001 is assigned the remaining value 11011.

Because of the extremely high density of 6250 cpi tape, the RLL code is not sufficient to ensure reliable data storage. On top of the RLL code, an error-correcting code called the Optimal Rectangular Code (ORC) is applied. This code is a combination of a parity track and polynomial code similar to a CRC, but structured for error correction rather than error detection. For every 7 bytes written to the tape (before RLL encoding), an 8th check byte is calculated and written to the tape. When reading, the parity is calculated on each byte and exclusive-or'd with the contents of the parity track, and the polynomial check code calculated and exclusive-or'd with the received check code, resulting in two 8-bit syndrome words. If these are both zero, the data is error free. Otherwise, error-correction logic in the tape controller corrects the data before it is forwarded to the host. The error correcting code is able to correct any number of errors in any single track, or in any two tracks if the erroneous tracks can be identified by other means.

IBM documents refer to the error correcting code itself as "group coded recording". However, GCR has come to refer to the recording format of 6250 cpi tape as a whole, and later to formats which use similar RLL codes without the error correction code.

Read more about this topic:  Group Code Recording

Famous quotes containing the word tape:

    We shall see but little way if we require to understand what we see. How few things can a man measure with the tape of his understanding! How many greater things might he be seeing in the meanwhile!
    Henry David Thoreau (1817–1862)