49.5k views
3 votes
This Exercise examines the single error correcting, double error detecting (SEC/ DED) Hamming code. 1. What is the minimum number of parity bits required to protect a 128-bit word using the SEC/DED code? 2. Modern server memory modules (DIMMs) employ SEC/DED ECC to protect each 64 bits with 8 parity bits. Compute the cost/ performance ratio of this code to the code from 5.9.1. In this case, cost is the relative number of parity bits needed while performance is the relative number of errors that can be corrected. Which is better? 3. Consider a SEC code that protects 8 bit words with 4 parity bits. If we read the value 0x375, is there an error? If so, correct the error.

User Task
by
7.6k points

1 Answer

0 votes

Final answer:

The minimum number of parity bits needed for a 128-bit word using SEC/DED Hamming code is 8. For a 64-bit word protected by 8 parity bits, the cost/performance ratio is less favorable compared to a 128-bit word. To check and correct a possible error in the SEC code with the value 0x375, consider the last 8 bits and use Hamming code error correction techniques.

Step-by-step explanation:

The minimum number of parity bits required to protect a 128-bit word using single error correcting, double error detecting (SEC/DED) Hamming code can be found using the equation 2^p ≥ n + p + 1, where p is the number of parity bits, and n is the number of data bits. For 128 data bits, solving the inequality gives us p ≥ 8, since 2^8 = 256 which is greater than 128 + 8 + 1 = 137. Therefore, a minimum of 8 parity bits is needed.

The cost/performance ratio of SEC/DED ECC can be calculated by dividing the number of parity bits by the number of bits they protect, and dividing the number of errors they can correct. For the 64-bit word with 8 parity bits, the cost is 8/64, and it can correct 1 error, so the ratio is 8/64:1. Comparing this to the code used in question 1 with a ratio of 8/128:1, the ratio for the 64-bit word is worse in terms of redundancy but provides the same error correction.

For a SEC code that protects 8 bit words with 4 parity bits, the value 0x375 in binary is 0011 0111 0101 which is 12 bits. We only need to consider the last 8 bits for error checking, which is 0111 0101 or 0x75. Upon recalculating the parity, if an error is detected, we would identify and correct the incorrect bit by using the Hamming code error correction techniques.

User Leverin
by
8.0k points