Information Communication Technology/기타

Binary Code-Hamming Code

반응형

해밍 코드(Hamming Code)

Hamming code는 정보전달과정에서 오류가 발생했는지 만을 검사하는 parity bit와는 달리 검사와 오류 정정까지 가능한 장점을 가지고 있는 코드이다.

단점은 해밍 코드를 구현하는 데에 있어서 다소 복잡함이라는 단점을 가지고 있다.

해밍코드는 이러한 장단점을 고려 플래시 메모리 등에 쓰인다. 이 코드는 parity 비트와 같이 데이터 전달 과정 시 1bit의 에러를 정정할 수 있는 오류 정정 부호 코드이다. Hamming code는 1950년에 고안되었으며 이 코드의 이름인 Hamming에 의해 고안되고 발명된 블록 부호이고 예로는 플래시 메모리가 있다. 오류 검출방식은 정해진 위치의 parity를 검사하고 오류 확인을 하게 된다. 잘못된 위치를 찾아내며 수정을 통해 오류를 극복할 수 있다.

일반화된 Hamming 부호를 만드는 방법은 2의 거듭 제곱 번째의 위치에 있는 bit들은 parity 비트로 사용된다. 나머지 비트에는 부호화 될 데이터가 들어간다. 각각의 parity 비트는 위치에 따라서 비트들을 검사한다.


Hamming Code 복원 방식으로는 오류가 발생한 Hamming Code를 P8, P4, P2, P1 에 해당되는 비트를 읽어서 1이 짝수면 0, 1이 홀수면 1이 패리티 비트가 된다. 이 때, parity bits들을 P8부터 순서대로 나열한 수를 Decimal로 변환하면 그 Decimal의 위치에 해당되는 bit의 위치에 오류가 발생한 것이므로 이 자리를 반대 숫자로 바꿔준다.

반응형