패리티 코드 (Parity Code)
오류 감지하는 간단한 방법 중 하나로
데이터 비트에 하나의 추가 비트를 붙여 전체 비트의 홀수성 또는 짝수성을 유지하는 방식
짝수 패리티 (Even Parity): 전체 데이터 비트의 1의 개수를 짝수로 만든다.
홀수 패리티 (Odd Parity): 전체 데이터 비트의 1의 개수를 홀수로 만든다.
* 짝수/홀수 패리티 중 어떤 패리티를 사용하지 미리 동기화 필요
ex) 데이터 '1010'
• 짝수 패리티 비트: 추가 비트 '0' → 10100
• 홀수 패리티 비트: 추가 비트 '1' → 10101
구현이 간단하며, 1 비트 오류를 효과적으로 감지하지만
오류를 수정하지 못하며 2비트 이상의 오류는 감지할 수 없다.
해밍 코드 (Hamming Code)
오류 검출뿐만 아니라 오류 수정도 가능한 방식으로,
특정 위치에서 발생한 오류를 찾아내고 수정할 수 있다.
일반적으로 1비트 오류를 정정하고, 2비트 오류를 검출할 수 있습니다.
→ SEC DED (Single Error Correction | Double Error Detect)
해밍 코드는 데이터 비트에 추가적인 패리티 비트를 삽입하여 데이터 비트 보호
패리티 비트는 각각 데이터의 특정 위치를 관찰하며 오류 감지
ex) 데이터 '1011'
데이터 비트 배치: P1, P2, D1, P3, D2, D3, D4
• P1 | D1, D2, D4의 XOR = (1 ^ 0 ^ 1) = 0
• P2 | D1, D3, D4의 XOR = (1 ^ 1 ^ 1) = 1
• P3 | D2, D3, D4의 XOR = (0 ^ 1 ^ 1) = 0
→ 최종 코드: 데이터와 XOR 계산된 패리티 비트 조합 = 0110011
해밍 코드는 패리티 코드보다 복잡하지만
수정을 못하는 패리티 코드보다
단일 비트 오류를 수정할 수 있고, 이중 비트 오류를 검출할 수 있기에
데이터 신뢰성 높일 수 있다.
'까망 동네 > IT 용어' 카테고리의 다른 글
[SW 개발] TTF (Time To Failure)와 TAT(Turnaround Time) (3) | 2024.11.27 |
---|---|
[SW 테스트] Regression / Long Run / Aging Test (1) | 2024.11.25 |
페어 프로그래밍(Pair Programming) (5) | 2024.11.21 |
Sanity Test란 (4) | 2024.11.20 |
[애자일/스크럼] 칸반 보드(Kanban Board) (5) | 2024.11.17 |
댓글