RAID 2 - Striping w/Bit Level ECC
Key: = The actual data file. = the parity information.
In the case of striping w/bit level ECC the file is split one bit at a time. The first data bit will end up on Drive#1 (far left), the second data bit will end up on Drive#2 (middle), and a parity bit calculated from these two data bits will be stored on Drive#3. (far right)
This form of RAID was developed to defeat random single bit flaws that would on rare occasion occur with early IDE and SCSI hard drives. In RAID2, the file is split bit by bit. The first bit is cached in a buffer for Drive#1, the second bit goes to a buffer intended for Drive#2 and a parity bit calculated from those preceding two bits is cached to go to Drive#3. When 512 bytes (at least) have accumulated in the buffers they are written out to the drives. If any single bit read/write error occurs the system can correct it with the parity calculation and continue to function without interruption. In any one of the drives fails all files can be corrected on-the-fly from the parity calculations. If the parity Drive (#3) is the one that fails, operations continue at full speed. if either of the other drives fails, operations will slow down dramatically because each disk access must undergo a parity calculation in order to actually read the file. RAID2 was rendered effectively deprecated once drives began performing bit level ECC onboard and therefore became capable of surviving single random bit errors on their own and at a much faster speed than the RAID2. RAID2 bogs down in performance because of the necessity of splitting the bytes bit by bit and then performing a parity bit calculation for every two bits. This ends up being 4 parity calculations per byte. Subsequent RAIDs take advantage of the full width of the processor's registers and can perform the same level of ECC with far fewer calculations.
RAID3, Striping with Parity, is exactly the same as RAID2 except that instead of spliting the file bit by bit, the file is split byte by byte. The first byte goes to the cache for Drive#1, the next byte into the cache of Drive#2, and a parity byte is calculated from the previous two bytes and is placed in the cache for Drive#3. When the caches reach at least 512 bytes, they are written out to the disks. RAID3 only requires one parity calculation per two bytes and is therefore 8 times more efficient than RAID2 concerning parity calculations. Performance is therefore better under all conditions although it still suffers if either Drive#1 or Drive#2 fails. It should be noted that it appears that Adaptec is defining RAID3 very much like the definition of RAID4 below).