Chapter 4 Theory

Data Integrity

Error-correctionThe use of Cyclic Redundancy Checking (CRC), two-level orthogonal

Code (ECC) Error Correction Coding (ECC) provides a very low probability of encountering a hard error. During the read process, ECC correction is performed on the fly without affecting tape streaming.

There are two levels of Error Correction Coding (ECC). These two levels are orthogonal — that is, an ECC codeword at one level intersects ECC codewords at the other level just once, which means there will be only one common symbol between them. The two levels are called C1 and C2.

C1 ECC

As data is written to memory from the Data Processing unit, the DMA / ECC interface generates C1 ECC bytes and writes them to memory.

As data is written to tape, the C1 ECC is checked and an interrupt generated if there is an error. The C1 ECC read from memory is the ECC that is written to tape.

When data is read from tape and stored into memory, C1 ECC is checked.

If the C1 ECC is good, that codeword pair’s “Valid” bit is set.

Otherwise, a pointer to the invalid Codeword Pair is passed to the C1 ECC correction engine.

If the C1 ECC correction engine can correct the error, then the corrected bytes are written to memory, and the Valid bit is set.

Otherwise, the Valid bit is left cleared.

As data is read from memory to the Data Processor for decompression, the C1 ECC is again checked and an interrupt generated if it is not correct.

C2 ECC

C2 ECC involves three distinct operations:

1Encoding: Generating C2 ECC bytes from data bytes (performed by ECC co-processor hardware)

2Decoding: Generating ECC syndromes from data and ECC bytes, testing for all-zeroes (performed by ECC co-processor hardware)

34

LTO-3 Tape Drive User’s Guide

Page 48
Image 48
Quantum LTO-3 manual C1 ECC