0% found this document useful (0 votes)
12 views

UNIT V Notes 2

The document discusses error detection and correction techniques for memory. It describes parity bits, which can detect single bit errors but not correct them. Error-correcting codes like the Hamming code use multiple check bits to detect and correct single bit errors by generating a syndrome that identifies the erroneous bit position. The Hamming code example shows how check bits are calculated and used to detect and correct errors. Adding another check bit allows it to detect double bit errors as well.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

UNIT V Notes 2

The document discusses error detection and correction techniques for memory. It describes parity bits, which can detect single bit errors but not correct them. Error-correcting codes like the Hamming code use multiple check bits to detect and correct single bit errors by generating a syndrome that identifies the erroneous bit position. The Hamming code example shows how check bits are calculated and used to detect and correct errors. Adding another check bit allows it to detect double bit errors as well.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

III.

ERROR DETECTION AND CORRECTION


• The dynamic physical interaction of the electrical signals affecting the data path of a
memory unit may cause occasional errors in storing and retrieving the binary
information.
• The reliability of a memory unit may be improved by employing error‐detecting and
error‐correcting codes.
common error detection scheme
• The most common error detection scheme is the parity bit.
• A parity bit is generated and stored along with the data word in memory.
• The parity of the word is checked after reading it from memory.
• The data word is accepted if the parity of the bits read out is correct.
• If the parity checked results in an inversion, an error is detected, but it cannot be
corrected.
error‐correcting code
• An error‐correcting code generates multiple parity check bits that are stored with the
data word in memory.
• Each check bit is a parity over a group of bits in the data word.
• When the word is read back from memory, the associated parity bits are also read
from memory and compared with a new set of check bits generated from the data that
have been read.
• If the check bits are correct, no error has occurred.
• If the check bits do not match the stored parity, they generate a unique pattern, called
a syndrome, that can be used to identify the bit that is in error.
• A single error occurs when a bit changes in value from 1 to 0 or from 0 to 1 during the
write or read operation.
• If the specific bit in error is identified, then the error can be corrected by
complementing the erroneous bit.
Hamming Code
• One of the most common error‐correcting codes used in RAMs was devised by R. W.
Hamming.
• In the Hamming code, k parity bits are added to an n ‐bit data word, forming a new
word of n + k bits.
• The bit positions are numbered in sequence from 1 to n + k.
• Those positions numbered as a power of 2 are reserved for the parity bits.
• The remaining bits are the data bits.
• The code can be used with words of any length.
EXAMPLE
• 8‐bit data word 11000100 (n=8)
• Let k=4(parity bits)
• n+k=8+4=12 bits
• Positions numbered in powers of 2 are left for parity bits. 20,21,22,23,24…. i.e.
1,2,4,8,16…
• In the remaining positions store data bits
1 2 3 4 5 6 7 8 9 10 11 12
P P2 1 P 1 0 0 P 0 1 0 0

0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
1 0 1 0 10
1 0 1 1 11
1 1 0 0 12

LSB=1,3,5,7,9,11
Next BIT=2,3,6,7,10,11
Next Bit=4,5,6,7,12
MSB=8,9,10,11,12
P1=XOR(3,5,7,9,11)=XOR(1,1,0,0,0)=0
P2=XOR(3,6,7,10,11)=XOR(1,0,0,1,0)=0
P4=1
P8=1
1 2 3 4 5 6 7 8 9 10 11 12
0 0 1 1 1 0 0 1 0 1 0 0
• LSB=1,3,5,7,9,11
• Next BIT=2,3,6,7,10,11
• Next Bit=4,5,6,7,12
• MSB=8,9,10,11,12
• After reading 12 bits they are checked for errors
• Check bits:
• C1=XOR(1,3,5,7,9,11)=XOR(0,1,1,0,0,0)=0
• C2=XOR(2,3,6,7,10,11)=0
• C4=XOR(4,5,6,7,12)=0
• C8=XOR(8,9,10,11,12)=0
• c1C2C4C8=0000 no error
• C=C1C2C4C8not equal to 0 ,an error
• If check bit=0 ,designates even parity
• If check bit=1 ,designates odd parity
• If c≠0, The 4-bit binary number gives position of erroneous bit, correct the error by
complementing the corresponding bit.
• C=C1C2C4C8 = 0101=5 error in position 5
Single‐Error Correction, Double‐Error Detection
• The Hamming code can detect and correct only a single error.
• By adding another parity bit to the coded word, the Hamming code can be used to
correct a single error and detect double errors.
• 8‐bit data word 11000100 (n=8)
• Let k=5
• n+k=8+5=13 bits
1 2 3 4 5 6 7 8 9 10 11 12 13

P1 P2 1 P4 1 0 0 P8 0 1 0 0 P13

• Set Even parity


• P1=XOR(3,5,7,9,11)=XOR(1,1,0,0,0)=0
• P2=XOR(3,6,7,10,11)=XOR(1,0,0,1,0)=0
• P4=XOR(5,6,7,12)=1
• P8=XOR(9,10,11,12)=1
• P13=XOR(1,2,3,4,5,6,7,8,9,10,11,12)=1
• When the 13‐bit word is read from memory, the check bits are evaluated, as is the
parity P over the entire 13 bits.
• If P = 0, the parity is correct (even parity), but if P = 1, then the parity over the 13
bits is incorrect (odd parity). The following four cases can arise:
• If C = 0 and P = 0, no error occurred.
• If C= 0 and P = 1, a single error occurred that can be corrected.
• If C= 1and P =1, a double error occurred that is detected, but that cannot be corrected.
• If C = 0 and P = 1, an error occurred in the P13 bit.
• This scheme may detect more than two errors, but is not guaranteed to detect all such
errors.
• C1=XOR(1,3,5,7,9,11)=XOR(0,1,1,0,0,0)=0
• C2=XOR(2,3,6,7,10,11)=0
• C4=XOR(4,5,6,7,12)=0
• C8=XOR(8,9,10,11,12)=0
• P=XOR(1,2,3,4,5,6,7,8,9,10,11,12,13)
• C=C1C2C4C8
• P

You might also like