패리티 비트
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
패리티 비트는 정보 기술에서 오류 감지 및 수정에 사용되는 개념으로, 주어진 이진 데이터에서 1의 개수가 짝수인지 홀수인지 나타내는 비트이다. 통신 프로토콜은 오류 감지를 위해 패리티를 사용하며, RAID 시스템은 오류 수정을 위해 패리티를 활용한다. 패리티 검사는 홀수 개의 비트 오류는 감지할 수 있지만, 짝수 개의 비트 오류는 감지하지 못한다는 한계가 있다. 패리티는 하드웨어, 통신, RAID 시스템 등 다양한 분야에서 활용되며, 단순성 때문에 오류 감지 또는 반복 작업에 유용하게 사용된다.
더 읽어볼만한 페이지
- RAID - ZFS
ZFS는 Jeff Bonwick 등이 설계하고 구현한 파일 시스템으로, 데이터 무결성, 스냅샷, RAID-Z 등의 기능을 제공하며, 썬 마이크로시스템즈에서 개발되어 OpenZFS 프로젝트를 통해 다양한 운영체제에서 사용된다. - RAID - 장애 허용 시스템
장애 허용 시스템은 일부 구성 요소에 고장이 발생해도 성능 저하 없이 작동하도록 설계되어 높은 신뢰성이 요구되는 분야에서 사용되며, 안전 실패 방지, 성능 저하 최소화, 견고성, 고장 투명성 등의 특징을 가진다. - 홀짝성 - 반정수
반정수는 정수에 1/2을 더한 수로 표현되며, 정수와 함께 덧셈 연산에 대해 군을 형성하지만 환은 형성하지 않고, 양자역학, 페르미온의 스핀, 4차원 격자 포장 등 다양한 분야에 응용된다. - 홀짝성 - 홀수와 짝수
홀수와 짝수는 정수를 2로 나눈 나머지에 따라 구분되는 성질로, 2로 나누어 떨어지면 짝수, 그렇지 않으면 홀수라고 하며, 이러한 성질은 홀짝성이라 불리고 수학 및 실생활에서 다양하게 활용된다. - 오류 검출 정정 - 부호 이론
부호 이론은 정보를 효율적으로 표현하고 오류를 감지 및 수정하는 기술을 연구하며, 소스 부호화, 채널 부호화, 암호 부호화 등으로 발전하여 CD, 모뎀, 휴대폰 등 다양한 분야에 응용된다. - 오류 검출 정정 - 비터비 알고리즘
비터비 알고리즘은 잡음이 있는 통신 링크 상에서 길쌈 부호 해독에 사용되며, 확률과 관련된 극대화 문제에 동적 계획법을 적용하는 표준 용어로, 상태 기계를 기반으로 은닉 마르코프 모델에서 가장 가능성 높은 상태 시퀀스를 찾는 데 활용되어 통신, 자연어 처리, 생물정보학 등 다양한 분야에 적용되고 개선 방법이 연구되고 있다.
패리티 비트 |
---|
2. 패리티의 기본 원리
패리티는 데이터의 가장 작은 단위인 비트(bit)의 값에 따라 결정된다. 모든 비트의 상태에 따라 패리티가 결정되므로, 이 속성은 오류 감지 및 수정에 활용된다. 예를 들어, XOR 게이트를 사용하면 짝수 패리티를 생성하는 검사 비트를 쉽게 만들 수 있다. XOR 및 AND 구조는 대부분의 집적 회로를 구성하므로, 패리티를 사용한 데이터 트랜스코딩은 매우 효율적일 수 있다.
패리티 비트 검사는 7비트를 갖는 ASCII 문자를 전송할 때 사용되기도 하며, 이때 8번째 비트는 패리티 비트로 사용된다. 패리티 비트는 홀수 개의 비트 오류만 감지할 수 있고, 짝수 개의 비트 오류는 감지하지 못한다는 한계가 있다. (오류 감지 및 수정 참조)
2. 1. 짝수 패리티와 홀수 패리티
수학에서 패리티는 정수가 짝수인지 홀수인지를 의미하며, 이진 형태의 최하위 비트를 확인하여 결정할 수 있다. 정보 기술에서 패리티는 주어진 이진 숫자에서 1의 값을 가진 비트 개수가 짝수인지 홀수인지를 나타낸다.통신에서 일부 프로토콜은 오류 감지를 위해 패리티를 사용한다. 전송 매체 양쪽 끝에서 홀수 패리티 또는 짝수 패리티 중 하나에 동의하도록 미리 설정한다. 송신자는 전송할 각 비트 문자열(데이터 패킷)에 대해 짝수 또는 홀수 패리티에 동의하도록 패리티 비트(0 또는 1)를 계산한다. 수신자는 전체 패킷의 패리티가 미리 설정된 동의와 일치하는지 확인하고, 패리티 오류가 있으면 재전송을 요청한다.
짝수 패리티는 데이터 비트열에 포함된 '1'의 개수가 짝수가 되도록 패리티 비트를 추가하는 방식이다. 홀수 패리티는 데이터 비트열에 포함된 '1'의 개수가 홀수가 되도록 패리티 비트를 추가하는 방식이다.
예를 들어, 앨리스가 밥에게 4비트 메시지 1001을 보내는 경우, 짝수 패리티와 홀수 패리티는 다음과 같이 계산된다.
비트 패리티 유형 | 성공적인 전송 시나리오 |
---|---|
짝수 패리티 | |
홀수 패리티 |
2. 2. 패리티 비트 생성
패리티 비트는 배타적 논리합(XOR) 연산을 통해 간단하게 생성할 수 있다. 짝수 패리티 비트는 모든 데이터 비트를 XOR 연산하여 구할 수 있다. 홀수 패리티 비트는 짝수 패리티 비트를 반전(NOT)시켜 구하거나, 모든 데이터 비트에 1을 XOR 연산하여 구할 수 있다.4비트 값 1001의 짝수 패리티 비트 계산:
- 1^0^0^1 = 0
4비트 값 1001의 홀수 패리티 비트 계산:
- ~(1^0^0^1) = 1
3. 오류 검출
패리티 비트는 정보 기술에서 주어진 이진 숫자에서 1의 개수가 짝수인지 홀수인지를 나타낸다. 패리티 검사는 전송 또는 저장 과정에서 발생하는 오류를 검출하는 데 사용된다. 통신에서 일부 프로토콜은 오류 감지를 위해 패리티를 사용하는데, 송신자는 전송할 데이터에 패리티 비트를 추가하여 짝수 또는 홀수 패리티를 맞춘다. 수신자는 전체 패리티를 확인하여 오류 여부를 판단하고, 오류가 있으면 재전송을 요청한다.
패리티 비트는 XOR 게이트를 사용하여 쉽게 계산할 수 있으며, CPU 캐시, SCSI, PCI 버스 등 다양한 컴퓨터 하드웨어에서 오류 감지를 위해 사용된다. 직렬 통신에서는 7비트 ASCII 문자를 전송할 때 8번째 비트를 패리티 비트로 사용하기도 한다.
이러한 오류 검출 방식을 "'''패리티 검사'''"라고 부른다.
3. 1. 패리티 검사 과정
패리티 검사는 데이터 전송 과정에서 오류를 검출하는 간단한 방법이다. 송신 측에서는 전송할 데이터 비트열에 대해 패리티 비트를 계산하여 함께 전송한다. 패리티 비트는 데이터 비트열에 포함된 1의 개수가 짝수인지 홀수인지를 나타낸다. 짝수 패리티는 1의 개수가 짝수가 되도록 패리티 비트를 설정하고, 홀수 패리티는 1의 개수가 홀수가 되도록 패리티 비트를 설정한다.수신 측에서는 수신된 데이터 비트열과 패리티 비트를 이용하여 패리티를 다시 계산한다. 계산된 패리티와 수신된 패리티 비트가 일치하면 데이터가 올바르게 전송된 것으로 판단한다. 하지만, 계산된 패리티와 수신된 패리티 비트가 일치하지 않으면 전송 과정에서 오류가 발생한 것으로 판단한다.
예를 들어, 앨리스가 밥에게 4비트 메시지 1001을 짝수 패리티로 전송한다고 가정해 보자.
비트 패리티 유형 | 성공적인 전송 시나리오 |
---|---|
짝수 패리티 |
위의 예시와 같이 앨리스는 1001의 짝수 패리티를 맞추기 위해 1의 개수를 센다. 1은 총 2개로 짝수이므로 0을 붙여 10010을 전송한다. 밥은 10010을 수신하여 1의 개수를 세어 짝수임을 확인하고, 전송이 올바르게 이뤄졌음을 확인한다.
하지만, 전송 과정에서 오류가 발생하여 10010이 아닌 11010이 수신된 경우에는 다음과 같이 오류를 검출할 수 있다.
비트 패리티 오류 유형 | 실패한 전송 시나리오 |
---|---|
짝수 패리티 | 앨리스가 전송하려는 내용: 1001 |
위의 예시와 같이 밥은 수신된 데이터 11010에서 1의 개수를 세어 홀수임을 확인한다. 짝수 패리티를 예상했으므로, 밥은 전송 과정에서 오류가 발생했음을 알 수 있다.
패리티 비트는 홀수 개의 비트 오류만 검출할 수 있다는 한계가 있다. 짝수 개의 비트 오류가 발생하면 패리티 비트가 변경되지 않아 오류를 검출할 수 없다.
3. 2. 패리티 오류
잘못 전송된 비트의 수가 홀수(패리티 비트 포함)인 경우 패리티 비트가 잘못되어 전송에 '''패리티 오류'''가 발생했음을 나타낸다. 패리티 비트는 오류를 감지하는 데 적합하지만, 손상된 특정 비트를 결정할 방법이 없으므로 오류를 수정할 수 없다. 따라서 데이터를 완전히 폐기하고 처음부터 다시 재전송해야 한다. 잡음이 많은 전송 매체에서는 성공적인 전송에 오랜 시간이 걸리거나 아예 발생하지 않을 수도 있다. 그러나 패리티는 단일 비트만 사용하고 생성하는 데 몇 개의 XOR 게이트만 필요하다는 장점이 있다.패리티 체계에는 제한이 있는데, 홀수 개의 비트 오류만 감지할 수 있다는 점이다. 짝수 개의 비트에 오류가 있는 경우, 데이터가 손상되었음에도 불구하고 패리티 비트는 1의 올바른 수를 기록하여 오류를 감지하지 못한다.
다음은 짝수 패리티에서 두 개의 손상된 비트가 발생하여 오류를 포착하지 못하는 예시이다.
비트 패리티 오류 유형 | 실패한 전송 시나리오 |
---|---|
짝수 패리티 (두 비트 손상) | 앨리스가 전송하려는 내용: 1001 |
위 표에서 밥은 예상대로 짝수 패리티를 관찰하여 두 비트 오류를 포착하지 못한다.
3. 3. 한계점
패리티 비트 검사는 홀수 개의 비트 오류만 감지할 수 있다는 한계가 있다. 전송 과정에서 짝수 개의 비트 오류가 발생하면, 패리티 비트는 데이터가 손상되었음에도 불구하고 1의 개수가 올바르게 기록되어 오류를 감지하지 못한다.다음 표는 짝수 패리티를 사용하는 상황에서 두 개의 비트가 손상되었을 때 오류를 감지하지 못하는 예시를 보여준다.
비트 패리티 오류 유형 | 실패한 전송 시나리오 |
---|---|
짝수 패리티 | 앨리스가 전송하려는 내용: 1001 |
위 표에서 볼 수 있듯이, 밥은 짝수 패리티(0)를 관찰하여 두 비트 오류를 감지하지 못한다.
따라서 패리티 검사는 단일 비트 오류만 감지할 수 있으며, 짝수 개의 비트 오류는 감지할 수 없다. 이러한 한계 때문에, 더 정교한 오류 검출 및 수정 기술이 필요할 수 있다.
4. 활용 사례
패리티 비트는 데이터 전송 과정에서 오류 발생 여부를 확인하는 단순하면서도 효과적인 방법으로, 오류 감지 시 재전송 또는 수정 등의 조치를 취할 수 있게 해준다.
패리티 검사는 하드웨어, 통신, RAID 등 다양한 분야에서 활용된다.
4. 1. 하드웨어
SCSI 및 PCI 버스와 같은 컴퓨터 하드웨어에서 전송 오류를 감지하기 위해 패리티 검사가 사용된다. 많은 마이크로프로세서 명령어 캐시는 패리티 보호를 포함한다. 명령어 캐시 데이터는 메인 메모리의 복사본이므로 손상된 것으로 확인되면 무시하고 다시 가져올 수 있기 때문이다.4. 2. 통신
직렬 통신에서 일반적인 형식은 7개의 데이터 비트, 짝수 패리티 비트, 그리고 하나 또는 두 개의 정지 비트이다. 이 형식은 8비트 바이트에서 모든 7비트 ASCII 문자를 편리하게 처리한다. 8비트 데이터와 패리티 비트를 조합하여 모든 8비트 바이트 값을 전달하는 다른 형식도 가능하다.직렬 통신 환경에서 패리티는 UART와 같은 인터페이스 하드웨어에 의해 생성되고 검사된다. 수신 시, 프로세서는 하드웨어 레지스터의 상태 비트를 통해 인터페이스 하드웨어에서 패리티 검사 결과를 확인할 수 있다. 오류 복구는 일반적으로 데이터를 다시 전송하는 방식으로 이루어지며, 운영 체제 I/O 루틴과 같은 소프트웨어가 이 과정을 처리한다.[1]
패리티 비트를 포함한 전송된 비트의 총 개수가 짝수일 때, 홀수 패리티는 모든 0과 모든 1 패턴이 오류로 감지된다는 장점이 있다. 비트의 총 개수가 홀수인 경우에는, 패턴 중 하나만 오류로 감지되며, 더 일반적인 오류가 무엇일 것으로 예상되는지에 따라 선택할 수 있다.
4. 3. RAID (Redundant Array of Independent Disks)
RAID는 여러 개의 디스크를 묶어 하나의 논리적인 저장 장치처럼 사용하며, 데이터의 안정성과 성능 향상을 목적으로 하는 기술이다. 패리티 정보는 이러한 RAID 시스템에서 중요한 역할을 담당한다.RAID 시스템에서 패리티 정보는 여러 디스크에 분산 저장되어 데이터 중복성을 제공한다. 디스크에 오류가 발생하면, 패리티 정보를 사용하여 손실된 데이터를 복구할 수 있다. RAID 레벨에 따라 패리티 블록을 사용하여 중복성을 확보하고, 디스크 장애 시 데이터를 재구축한다.
예를 들어, RAID 4 구성에서 3개의 드라이브 중 2개의 드라이브에 다음과 같은 데이터가 있다고 가정해 보자.
드라이브 1: | 01101101 |
드라이브 2: | 11010100 |
이 두 드라이브의 데이터를 XOR 연산하면 다음과 같은 패리티 데이터가 생성된다.
01101101 |
XOR 11010100 |
10111001 |
이렇게 생성된 패리티 데이터 10111001는 세 번째 드라이브에 저장된다. 만약 드라이브 2에 오류가 발생하면, 드라이브 1과 드라이브 3의 데이터를 XOR 연산하여 드라이브 2의 데이터를 복구할 수 있다.
01101101 | 드라이브 1 |
XOR 10111001 | 드라이브 3 |
11010100 | 재구성된 드라이브 2 |
이처럼 XOR 연산을 통해 오류가 발생한 드라이브의 데이터를 복구할 수 있다. 이러한 XOR 논리는 더 큰 RAID 배열에도 적용될 수 있으며, 여러 개의 디스크를 사용하더라도 데이터의 안정성을 확보할 수 있다.
RAID 5는 이러한 패리티 정보를 여러 드라이브에 분산 저장하는 방식을 사용한다. 아래 표는 RAID 5 어레이의 구성을 나타낸다.
드라이브 1 | 드라이브 2 | 드라이브 3 | 드라이브 4 | |
---|---|---|---|---|
데이터 블록 A | A1 | A2 | A3 | Ap |
데이터 블록 B | B1 | B2 | Bp | B3 |
데이터 블록 C | C1 | Cp | C2 | C3 |
데이터 블록 D | Dp | D1 | D2 | D3 |
위 표에서 Ap는 A1, A2, A3 데이터를 XOR 연산하여 생성된 패리티 블록이다. 만약 두 번째 디스크 드라이브에 오류가 발생하여 A2에 접근할 수 없게 되더라도, A1, A3, Ap를 XOR 연산하여 A2를 복구할 수 있다.
A1 XOR A3 XOR Ap = 00000101
5. 역사
초기 자기 테이프 데이터 저장 장치에는 ''패리티 트랙''이 존재하여 데이터 오류를 검출했다. 이러한 형태의 패리티는 여러 개의 병렬 신호에 적용되며, 횡 중복 검사로 알려져 있다.[1] 이는 단일 신호로 전송되는 여러 비트에 대해 계산된 패리티, 즉 종 중복 검사와 결합될 수 있다.[1] 병렬 버스에서는 병렬 신호당 하나의 종 중복 검사 비트가 있다.[1]
패리티는 종이 테이프 (천공 테이프) 데이터 입력 시스템(자기 테이프 시스템 이전)에도 사용되었다.[1] 영국 회사 ICL(구 ICT)에서 판매한 시스템에서 25.4mm 종이 테이프는 가로로 8개의 구멍 위치를 가지고 있었으며, 8번째는 패리티용이었다.[1] 7개의 위치는 데이터에 사용되었으며, 예를 들어 7비트 ASCII가 사용되었다.[1] 8번째 위치에는 펀칭된 데이터 구멍의 수에 따라 구멍이 뚫렸다.[1]
참조
[1]
서적
Principles of communication : systems, modulation, and noise
2014-03-17
[2]
서적
Principles of communication : systems, modulation, and noise
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com