5

나는 1000 바이트의 데이터 단위를 보내는 가상의 상황이 있습니다. 오류율은 거의 발생하지 않지만 오류가 발생하면 단일 비트 오류가 적고 행의 몇 비트에서 오류가 발생할 가능성이 더 큽니다.오류 감지 효율성 (CRC, 체크섬 등)

처음에는 체크섬을 사용할 생각 이었지만 분명히 비트 오류가 하나의 비트보다 크지 않을 수 있습니다. 패리티 검사가 작동하지 않으므로 CRC가 최상의 옵션 일 수 있습니다.

효율적인 순환 중복 검사를 사용하고 있습니까? 아니면 더 잘 작동 할 다른 방법이 있습니까?

답변

7

CRC (Cyclic Redundancy Check)는 으로 특히으로 널리 알려져 있으며 정확성이 보장 된 다중 비트 오류를 ​​효율적으로 감지 할 수 있기 때문에 유용합니다.

정확도 대 계산 복잡성이 절충되는 CRC 다항식을 생성하는 다양한 설계가 있습니다. 귀하의 경우 정확성에 대한 귀하의 요구 사항을 충족시키는 "가장 빠른"것을 선택할 수 있습니다.

Cyclic Redundancy Check에있는이 위키 백과 문서로 시작하는 것이 좋습니다.

+0

덕분에 어디서나 찾을 수 없었기 때문에 효율성에 대한 조언을 찾고있었습니다. –

1

CRC를 사용하는 것이 정상입니다. 나는 당신이 '효율성'에 대해 무엇을 의미하는지 확신 할 수 없지만 때때로 CRC가 하드웨어 (예 : 이더넷 카드)에 구현되는 경우도 있습니다. 그렇지 않으면 룩업 테이블을 사용하여 '최적화 된'구현을 찾을 수 있습니다.

1

디스크 섹터의 ​​크기는 어느 정도입니까? 아마 적어도 512 바이트. 또한 CRC는 하드웨어 수준의 디스크 ECC에 대해 오랜 시간 동안 인정 된 체계입니다.

재고 CRC 다항식 알고리즘은 적은 수의 비트 오류에 매우 효과적입니다. 정확한 정밀도는 수학적으로 계산 가능합니다. CRC는 상대적으로 적은 수의 게이트 및 시프트 레지스터가 작업을 즉시 관리 할 수있는 하드웨어에서 매우 효율적입니다.