KR101354288B1 - 통신 시스템에서 에러 검출 방법 및 장치 - Google Patents
통신 시스템에서 에러 검출 방법 및 장치 Download PDFInfo
- Publication number
- KR101354288B1 KR101354288B1 KR1020127011532A KR20127011532A KR101354288B1 KR 101354288 B1 KR101354288 B1 KR 101354288B1 KR 1020127011532 A KR1020127011532 A KR 1020127011532A KR 20127011532 A KR20127011532 A KR 20127011532A KR 101354288 B1 KR101354288 B1 KR 101354288B1
- Authority
- KR
- South Korea
- Prior art keywords
- sequence
- segment
- data packet
- segments
- original
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6522—Intended application, e.g. transmission or communication standard
- H03M13/6527—IEEE 802.11 [WLAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0076—Distributed coding, e.g. network coding, involving channel coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0084—Formats for payload data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명의 방법은 동일한 길이를 가지며 공통 요소를 갖지 않는 원래의 세그먼트의 제 1 시퀀스에서 데이터 패킷을 처리한다. 이 방법은 하나 이상의 심벌을 제 1 시퀀스의 원래의 세그먼트들중 최초 세그먼트 내에서 변형함에 의해 제 1 시퀀스의 원래의 세그먼트들 중 최초 세그먼트를 변형시키는 것을 포함한다. 데이터 패킷의 개시부가 원래의 세그먼트들 중 최초 세그먼트에 위치되고 그 내부에서 최초 디지털 데이터 심벌 뒤에 위치된다. 이 방법은 하나 이상의 디지털 데이터 심벌을 제 1 시퀀스의 원래의 세그먼트들 중 최종 세그먼트 내에서 변형함에 의해 그 최종 세그먼트를 변형시키는 것을 포함한다. 데이터 패킷의 종료부가 원래의 세그먼트들중 최종 세그먼트에 위치되고 그 내부에서 최종 디지털 데이터 심벌 앞에 위치된다. 이 방법은 제 1 시퀀스로부터 도출되며 공통 요소를 갖지 않는 세그먼트의 제 2 시퀀스상에서 다항식 제산을 효과적으로 실행함에 의해 나머지 시퀀스를 결정하는 것도 포함한다. 제 2 시퀀스의 각 세그먼트가 원래의 세그먼트들 중 하나에 대응하고 그 하나로부터 도출된다. 제 2 시퀀스의 세그먼트가 제 1 시퀀스의 원래의 세그먼트의 길이를 갖는다. 제 2 시퀀스의 도출된 세그먼트들 중 최초 세그먼트는 원래의 세그먼트들 중 변형된 최초 세그먼트이다. 제 2 시퀀스의 도출된 세그먼트들 중 최종 세그먼트는 원래의 세그먼트들 중 변형된 최종 세그먼트로부터 도출된다.
Description
본 발명은 패킷 기반의 통신 시스템에서 송신에 관련된 에러를 검출하는 것에 관한 것이다.
본 섹션은 본 발명의 다양한 양태를 양호하게 이해하는 데 독자에게 도움을 주는 다양한 양태를 소개하며 종래 기술 또는 종래 기술이 아닌 기술에 대한 설명을 포함하도록 제한적으로 이해되지 않아야한다.
통신 시스템의 하나의 목표는 의도된 수신자에 의해 수신된 메시지가 송신된 메시지를 변경안되게 복제하는 것이다. 그런 이유로, 통신 시스템은 수신된 메시지가 송신시 변경되는 지를 수신자로 하여금 결정하게 할 수 있는 에러 검출 기술을 사용한다. 채널 유도된 메시지 에러를 검출하는 하나의 기술이 순환 리던던시 검사(cyclic redundancy check ; CRC)코드를 기반으로 한다. CRC 코드는 데이터 메시지를 표현하는 디지털 데이터 심벌의 시퀀스를 일반적으로 변환하여 디지털 검사 심벌의 시퀀스를 생성한다. 디지털 검사 심벌의 시퀀스가 디지털 데이터 심벌의 시퀀스로써 송신되고 수신자는 디지털 검사 심벌의 시퀀스를 사용하여 디지털 데이터 심벌의 수신된 시퀀스가 원래 송신되는 같은 시퀀스인지를 평가한다.
일부의 시스템은 피드백 시프트 레지스터를 사용함에 의해 디지털 검사 심벌의 시퀀스를 생성하고 디지털 검사 심벌의 송신된 시퀀스로부터 송신 에러를 검출한다. 예를 들어, 2진 CRC 코드가 배타적 논리합(XOR)논리 회로를 경유해 피드백에 의해 제어되는 시프트 레지스터로써 구현될 수 있다. 시프트 레지스터의 메모리 소자 내용은 고정된 생성 다항식에 의해 디지털 데이터 심벌의 시퀀스의 제산에 의해 생성되는 나머지 시퀀스에 일반적으로 대응한다. 이 나머지 시퀀스는 데이터 패킷의 수신자에 송신하기 위해 디지털 데이터 심벌의 시퀀스의 종료부에 일반적으로 첨가된다. 그런 시스템에서, 나머지 시퀀스가 데이터 패킷의 송신 전에 비트 단위로 일반적으로 직렬로 계산된다.
일 실시예는 공통 요소를 갖지 않은(disjoint) 원래의 세그먼트의 제 1 시퀀스에서 위치되는 데이터 패킷을 처리하는 제 1방법이다. 제 1 시퀀스의 원래의 세그먼트 각각이 동일한 길이를 갖는다. 이 제 1방법은 제 1 시퀀스의 원래의 세그먼트들중 최초 세그먼트내에서 하나 이상의 심벌을 변형함에 의해 그 최초 세그먼트를 변형하는 것을 포함한다. 데이터 패킷의 개시부가 원래의 세그먼트들중 최초 세그먼트내에 위치되고 그 내부에서 최초 디지털 데이터 심벌 뒤에 위치된다. 제 1방법은 제 1 시퀀스의 원래의 세그먼트들중 최종 세그먼트내에서 하나 이상의 디지털 데이터 심벌을 변형함에 의해 그 최종 세그먼트를 변형하는 것을 포함한다. 데이터 패킷의 종료부가 원래의 세그먼트들중 최종 세그먼트에 위치되고 그 내부에서 최종 디지털 데이터 심벌 앞에 위치된다. 제 1방법은 제 1 시퀀스로부터 도출되는 공통 요소를 갖지 않은 세그먼트의 제 2 시퀀스에서 다항식 제산을 효과적으로 실행함에 의해 나머지 시퀀스를 결정하는 것도 포함한다. 제 2 시퀀스의 각 세그먼트는 제 1 시퀀스의 원래의 세그먼트들중 하나에 대응하고 그 원래의 세그먼트들중 하나로부터 도출된다. 제 2 시퀀스의 세그먼트가 제 1 시퀀스의 원래의 세그먼트의 길이를 갖는다. 제 2 시퀀스의 도출된 세그먼트들중 최초 세그먼트는 원래의 세그먼트들중 변형된 최초 세그먼트이다. 제 2 시퀀스의 도출된 세그먼트들중 최종 세그먼트가 원래의 세그먼트들중 변형된 최종 세그먼트로부터 도출된다.
제 1방법에 관한 일부의 실시예에서, 데이터 패킷의 개시부 또는 종료부를 포함하지 않는 각 도출된 세그먼트가 원래의 세그먼트들중 대응하는 하나와 같을 수 있다.
제 1방법에 관한 일부의 실시예에서, 그 변형 단계가 데이터 패킷 외부에 있는 원래의 세그먼트의 마스킹 부분을 포함할 수 있어서 상기 부분이 다항식 제산에 의해 결정된 나머지에 대한 설정량에 기여할 것이다.
제 1방법에 관한 일부의 실시예에서, 원래의 세그먼트들중 최초 세그먼트를 변형하는 것은 데이터 패킷의 개시부에서 심벌을 변형하는 것을 포함한다. 그런 일부의 실시예에서, 그 변형 단계는 데이터 패킷 외부에 있는 원래의 세그먼트의 마스킹 부분을 포함할 수 있어서 상기 마스킹된 부분이 다항식 제산에 의해 결정된 나머지에 대한 설정량에 기여할 것이다.
제 1방법에 관한 일부의 실시예에서, 원래의 세그먼트중 최종 세그먼트를 변형하는 것은 데이터 패킷의 종료부에서 심벌을 변형할 수 있다. 그런 일부의 실시예에서, 그 변형 단계는 데이터 패킷 외부에 있는 원래의 세그먼트의 마스킹 부분을 포함할 수 있어서 상기 마스킹된 부분이, 데이터 패킷의 순환 리던던시 검사가 소멸될 때, 다항식 제산에 의해 결정된 나머지에 대한 설정량에 기여하지 않을 것이다.
제 1방법에 관한 일부의 실시예에서, 제 1방법은 제 1 시퀀스로부터 심벌의 시퀀스를 심벌 단위로 감산을 수행함에 의해 제 3 시퀀스를 생성하는 것을 더 포함하여 제 3 시퀀스에 위치된 데이터 패킷이 다항식 제산을 기반으로 한 에러 제어 코드의 유효한 코드워드로 된다. 상기 방법에 관한 일부의 실시예에서, 심벌의 시퀀스가 다항식 제산을 제 2 시퀀스상에 수행함에 의해 결정된 나머지로부터 발견될 수 있다.
제 1방법에 관한 일부의 실시예에서, 제 1방법은 제 1 시퀀스의 세그먼트들중 특정한 하나로 되는 데이터 패킷의 종료에 응답해서 데이터 패킷에 대한 순환 리던던시 검사의 평가값을 제 1 시퀀스의 세그먼트들중 특정한 하나로 기록하는 것을 더 포함한다. 그 일부의 실시예에서, 그 변형은 패킷의 종료 위치를 표시하는 번호를 제 1 시퀀스의 세그먼트들중 특정한 하나에 수납하는 것을 더 포함한다. 그 기록은 그 수신된 번호를 기반으로 한 평가값을 기록하는 위치를 결정하는 것을 포함할 수 있다.
제 2방법에 관한 일 실시예는 같은 길이를 가지며 공통 요소를 갖지 않는 데이터 세그먼트를 처리하는 것을 포함한다. 그 시퀀스가 특정한 데이터 패킷을 포함한다. 제 2방법은 데이터 세그먼트들중 하나의 일부를 마스킹하는 것을 포함한다. 특정한 데이터 패킷의 일부가 데이터 세그먼트들중 하나에 있고 마스킹된 부분의 외부에 있다. 제 2방법은 특정한 데이터 패킷의 개시 및/또는 종료를 변형시키는 것과, 마스킹된 세그먼트 및 변형된 특정한 데이터 패킷을 기반으로 한 특정한 데이터 패킷에 대한 순환 리던던시 검사를 계산하는 것을 포함한다.
제 2방법에 대한 일부의 실시예에서, 제 2방법은 그 계산된 순환 리던던시 검사를 제로로 비교하는 것을 포함한다.
제 2방법에 관한 일부의 실시예에서, 순환 리던던시 검사를 계산하는 것은 데이터 패킷으로써 송신된 다른 순환 리던던시 검사를 적어도 부분적으로 기반으로 해서 검사 시퀀스값을 계산하는 것을 포함할 수 있다.
제 2방법에 관한 일부의 실시예에서, 제 2방법은 데이터 세그먼트들중 특정한 하나에서 패킷의 종료를 식별하는 것을 포함한다.
제 2방법에 관한 일부의 실시예에서, 제 2방법은 데이터 패킷의 개시부에서 하나 이상의 심벌을 반전시키는 것을 포함한다.
제 2방법에 관한 일부의 실시예에서, 제 2방법은 데이터 패킷의 종료부에서 하나 이상의 심벌을 반전시키는 것을 포함한다.
다른 실시예는 공통 요소를 갖지 않는 원래의 세그먼트의 제 1 시퀀스에 위치된 데이터 패킷을 처리하는 시스템이다. 제 1 시퀀스의 원래의 세그먼트 각각이 같은 길이를 갖는다. 그 시스템은 제 1 시퀀스의 원래의 세그먼트들중 최초 세그먼트에서 하나 이상의 심벌을 변형하기 위해 구성된 마스킹 유닛을 포함하고, 여기서 데이터 패킷의 개시부가 원래의 세그먼트들중 최초 세그먼트내에 있고 그 내부에서 제 1심벌 뒤에 있다. 마스킹 유닛은 제 1 시퀀스의 원래의 세그먼트들중 최종 세그먼트에서 하나 이상의 심벌을 변형하기 위해 구성되고, 여기서 데이터 패킷의 종료부가 원래의 세그먼트들중 최종 세그먼트내에 있고 그 내부에서 최종 심벌 앞에 있다. 그 시스템은 다항식 제산을 공통 요소를 갖지 않는 연속 세그먼트의 제 2 시퀀스상에서 실행함에 의해 나머지를 결정하기 위해 구성된 순환 리던던시 검사 계산 유닛을 포함한다. 제 2 시퀀스의 각 세그먼트가 원래의 세그먼트들중 하나에 대응하고 그 하나로부터 도출된다. 제 2 시퀀스의 세그먼트가 원래의 세그먼트의 길이를 갖는다. 제 2 시퀀스의 도출된 세그먼트들중 최초 세그먼트가 원래의 세그먼트들중 변형된 첫번째 것이다. 제 2 시퀀스의 도출된 세그먼트들중 최종 세그먼트가 원래의 세그먼트들중 변형된 최종 세그먼트이다.
시스템에 관한 일부의 실시예에서, 마스킹 유닛은 데이터 패킷 외부에 있는 원래의 세그먼트의 일부를 마스킹하기 위해 구성될 수 있어서, 데이터 패킷의 순환 리던던시 검사가 소멸될 때, 상기 일부가 다항식 제산에 의해 결정된 나머지에 기여하지 않을 것이다.
시스템에 관한 상기 일부의 실시예에서, 마스킹 유닛은 구성되어 심벌을 데이터 패킷의 개시부에서 변형함에 의해 원래의 세그먼트들중 최초 세그먼트를 변형시키고 심벌을 데이터 패킷의 종료부에서 변형함에 의해 원래의 세그먼트들중 최종 세그먼트를 변형시킨다.
각종 실시예의 장점은 도면을 참고로 다음의 설명에서 명백해진다.
도 1a는 디지털 데이터 패킷을 물리적인 통신 채널을 통한 송신시 야기된 에러를 예로 하는 에러 검출용 CRC 코드를 사용하는 디지털 데이터 통신 시스템을 개략적으로 예시하고;
도 1b는 예를 들어, 도 1a에 예시된 데이터 통신 시스템에서 CRC 코드워드의 최종 시퀀스를 생성하기 위해 디지털 데이터 심벌의 시퀀스를 처리하는 방법을 개략적으로 예시하고;
도 2는 시퀀스의 송신에서 에러가 야기하는 지를 결정하기 위해 도 1b에 예시된 디지털 데이터 심벌의 시퀀스를 디코드하는 방법, 예를 들어, 도 1a에서 예시된 수신기에서 사용하는 방법을 예시하는 흐름도이고;
도 3은 메시지 부분에 CRC 검사 시퀀스를 첨부하기 위해 도 1b에 예시된 디지털 데이터 심벌의 시퀀스에서 메시지 부분을 인코드하는 방법, 예를 들어, 도 1a에서 예시된 송신기에서 사용하는 방법을 예시하는 흐름도이고;
도 4a는 도 1a에서 예시된 송신기용 인코더의 일 실시예를 예시하는 블럭도이고, 여기서, 그 인코더가 도 1b 및 3의 방법을 사용해서 송신되는 각 데이터 패킷에 CRC 검사 시퀀스를 첨가하고;
도 4b는 도 1a의 수신기용 디코더의 일 실시예를 예시하는 블럭도이고, 여기서, 그 디코더는 수신된 데이터 패킷이 도 1b 및 2에 예시된 방법을 사용해서 CRC 검사 시퀀스를 기반으로 에러를 포함하는 지를 평가하고;
도 5는 도 4a에 예시된 인코더 및/또는 도 4b에 예시된 디코더에서 도 1b, 2, 및 3의 방법의 하나의 특정한 실시예에 의해 예시된 데이터 패킷에 대한 처리를 예시하고;
도 6은 도 4a-4b에 예시된 인코더 및 디코더의 일부 특정한 실시예에서 사용될 수 있는 결합된 마스킹 유닛 및 부분 나머지 첨가 유닛에 대한 일 실시예를 예시하는 블럭도이고;
도 7은 도 6에 예시되는 결합된 마스킹 유닛 및 부분 나머지 첨가 유닛의 연산을 예시하는 상태도이고;
도 8은 도 4a에 예시된 인코더의 일부 실시예에서 사용될 수 있는 후방향 계산 유닛의 특정 실시예를 예시하는 블럭도이다.
도 1a는 디지털 데이터 패킷을 물리적인 통신 채널을 통한 송신시 야기된 에러를 예로 하는 에러 검출용 CRC 코드를 사용하는 디지털 데이터 통신 시스템을 개략적으로 예시하고;
도 1b는 예를 들어, 도 1a에 예시된 데이터 통신 시스템에서 CRC 코드워드의 최종 시퀀스를 생성하기 위해 디지털 데이터 심벌의 시퀀스를 처리하는 방법을 개략적으로 예시하고;
도 2는 시퀀스의 송신에서 에러가 야기하는 지를 결정하기 위해 도 1b에 예시된 디지털 데이터 심벌의 시퀀스를 디코드하는 방법, 예를 들어, 도 1a에서 예시된 수신기에서 사용하는 방법을 예시하는 흐름도이고;
도 3은 메시지 부분에 CRC 검사 시퀀스를 첨부하기 위해 도 1b에 예시된 디지털 데이터 심벌의 시퀀스에서 메시지 부분을 인코드하는 방법, 예를 들어, 도 1a에서 예시된 송신기에서 사용하는 방법을 예시하는 흐름도이고;
도 4a는 도 1a에서 예시된 송신기용 인코더의 일 실시예를 예시하는 블럭도이고, 여기서, 그 인코더가 도 1b 및 3의 방법을 사용해서 송신되는 각 데이터 패킷에 CRC 검사 시퀀스를 첨가하고;
도 4b는 도 1a의 수신기용 디코더의 일 실시예를 예시하는 블럭도이고, 여기서, 그 디코더는 수신된 데이터 패킷이 도 1b 및 2에 예시된 방법을 사용해서 CRC 검사 시퀀스를 기반으로 에러를 포함하는 지를 평가하고;
도 5는 도 4a에 예시된 인코더 및/또는 도 4b에 예시된 디코더에서 도 1b, 2, 및 3의 방법의 하나의 특정한 실시예에 의해 예시된 데이터 패킷에 대한 처리를 예시하고;
도 6은 도 4a-4b에 예시된 인코더 및 디코더의 일부 특정한 실시예에서 사용될 수 있는 결합된 마스킹 유닛 및 부분 나머지 첨가 유닛에 대한 일 실시예를 예시하는 블럭도이고;
도 7은 도 6에 예시되는 결합된 마스킹 유닛 및 부분 나머지 첨가 유닛의 연산을 예시하는 상태도이고;
도 8은 도 4a에 예시된 인코더의 일부 실시예에서 사용될 수 있는 후방향 계산 유닛의 특정 실시예를 예시하는 블럭도이다.
각종 실시예가 디지털 패킷 기반의 통신 시스템에서 송신 에러를 검출하는 장치, 시스템, 및 시스템에서 사용하는 방법에 관한 것이다.
도 1a는 디지털 데이터 패킷의 정보를 송신하는 통신 시스템(10)의 일 예를 예시한다. 통신 시스템(10)은 송신기(12), 수신기(14), 및 그 송신기(12)를 그 수신기(14)에 연결하는 물리적인 통신 채널을 포함한다. 그 송신기(12)가 입력 데이터 프로세서(18) 및 인코더(400A)를 포함한다. 데이터 프로세서(18)는 송신용 데이터를 수신하고 그로부터 디지털 패킷의 스트림을 생성한다. 각 디지털 데이터 패킷은 예를 들어, 헤더, 메시지 부분, 및 예비 부분을 가질 수 있다. 인코더(400A)가 물리적인 통신 채널(16)에 송신를 하기 전에 하나 이상의 데이터 패킷의 예비 부분에 CRC 검사 시퀀스를 삽입한다. 수신기(14)는 디코더(400B) 및 출력 데이터 프로세서(20)를 포함한다. 디코더(400B)는 그 수신된 데이터 패킷을 그 내부에서 CRC 검사 시퀀스를 기반으로 송신 에러에 대해 검사하고, 출력 데이터 프로세서(20)에 에러를 가진 데이터 패킷을 표시하게 한다. 출력 데이터 프로세서(20)는 에러가 없게 되는 데이터 패킷의 메시지 부분으로부터 디코더(400B)에 의해 데이터를 도출할 수 있다. 수신기(14)가 송신기(12)에 신호 전송하기 위해 구성될 수 있어서 송신 에러를 갖는 것으로 디코더(400B)에 의해 발견된 데이터 패킷을 재-송신한다. 물리적인 통신 채널(16)은 송신기(12) 및 수신기(14)간에 데이터 통신을 지원한다. 물리적인 채널(16)이 하나 이상의 종래의 광 섬유 전송 라인, 무선 전송 매체, 및/또는 그 결합체를 포함할 수 있다. 통신 시스템(10)은 CRC 검사 시퀀스 기반의 방법에 뿐만 아니라 다른 에러 검출 및/또는 정정 방법에 대한 데이터 패킷 및/또는 오버헤드의 추가 패키징을 제공하도록 구성될 수 있다.
도 1b는 데이터 송신 에러를 검출하기 위해 2진 CRC 코드를 사용하는 통신 시스템에서 디지털 데이터 심벌의 스트림을 처리하는, 예를 들어, 도 1a의 송신기(12) 및/또는 수신기(14)에서 실행되는, 방법을 개략적으로 예시한다.
이 방법은 총 개의 디지털 심벌을 포함하는 제 1 시퀀스(32)의 연산을 포함한다. 제 1 시퀀스(32)가 같은 길이를 갖는 연속 세그먼트로 형성된다. 제 1 시퀀스(32)는 관심있는 데이터 패킷의 메시지 및 예비 부분을 형성하는 길이 를 갖는 시퀀스(34)를 포함한다. 그 메시지 부분은 다항식 로 정확하게 표현되고, 예비 부분이 다항식 로 정확하게 표현된다. 제 1 시퀀스에서, 메시지 부분인 "a" 데이터 심벌의 시퀀스가 선행되고, 그 뒤로 "b" 데이터 심벌의 시퀀스가 이어진다.
이 방법은 다항식 로 정확하게 표현되는 제 2 시퀀스(36)를 생성하기 위해 제 1 시퀀스(32)를 마스킹하는 것을 포함한다. 제 1실시예에서, 데이터 패킷의 메시지 또는 예비 부분에 위치되지 않은 제 1 시퀀스(32)의 그 비트들을 제로로 세트함에 의해 제 2 시퀀스(36)가 그 마스킹에 의해 생성된다. 대안의 제 2실시예에서, 그 마스킹은 제 1실시예의 마스킹 단계를 실행하고 제 1 시퀀스(32)에서 메시지 부분의 최초 "m" 비트 및 예비 부분의 "m" 비트의 1의 보수를 형성함에 의해 제 2 시퀀스(36)를 생성한다. 도 1b에서, 2개의 실시예는 제 2실시예의 추가의 마스킹 연산을 예시하기 위해 알맞은 데이터 패킷의 비트 위치에 를 삽입하는 것을 개략적으로 표시한다.
이 방법은 CRC 생성 다항식 에 대응하는 시퀀스로 마스킹된 제 2 시퀀스(36)를 제산해서 나머지 시퀀스값을 계산하는 것을 포함한다. 그 나머지는 다항식 로 정확하게 표현되는 시퀀스이다. 수신기에서, 그 나머지 시퀀스의 계산값이 수신된 데이터 패킷에서 어느 형태의 데이터 송신 에러가 존재하는지 또는 아닌지를 표시한다.
인코딩하는 실시예에서, 이 방법은 송신기로부터 수신기로 송신될 수 있는 제 3 시퀀스(38)를 생성하는 것을 포함한다. 그 제 3 시퀀스(38)는 데이터 패킷의 예비 부분(40)을(위에서 설명된 제 1실시예에서)CRC 검사 시퀀스 또는(위에서 설명된 제 1실시예에서)그 CRC 검사 시퀀스의 1의 보수로 대체함에 의해 형성된다. 여기서, CRC 검사 시퀀스 또는 그것의 1의 보수가 다항식 으로 표현되고 여기서 다항식 이 제 1 시퀀스(32)의 예비 부분에서 원래의 시퀀스를 정확하게 표현하고 가(34)를 코드워드로 되게 하는 조절 시퀀스를 표현한다. 하기에서, 도 1b에 예시된 단계 및 그 내부의 표기법은 더 상세하게 설명된다.
여기에서, 데이터 패킷은 공통 요소를 갖지 않는 메시지 및 예비 부분을 포함하고, 여기서 그 부분의 모두가 유한 심벌 알파벳 에서 디지털 심벌의 유한 시퀀스에 의해 형성된다. 그 알파벳 는 갈르와체(Galois field), 예를 들어 고정되어 기선택된 길이를 갖는 1과 0의 모드(mod)2개의 정수 또는 스트링일 수 있다. 그 메시지 부분이 차 다항식 인 형태:
로서 충실히 표현되며, 개의 디지털 심벌 의 스트림이다. 다항식 에서, 의 파워가 제 1스트림에서 대응하는 디지털 심벌의 임시 위치를 결정한다. 예비 부분이 메시지 부분 직후에 위치될 수 있다. 인코딩하기 전에, 예비 부분이 차 다항식 인 형태:
제 1실시예에서, 예를 들어, 도 1b에 대해 설명했듯이, 대응하는 메시지 및 CRC 검사 시퀀스 부분이
수학식 1의 특정한 CRC 생성 다항식은 CRC-32 다항식으로서 공지되고 몇 개의 표준, 예를 들어, IEEE 802.3 에서넷 표준에 의해 특정화된다. 본원에서 설명된 방법 및 장치의 각종 실시예가 CRC-32 다항식 또는 CRC 생성 다항식과 다른 다항식을 사용하기 위해 구성될 수 있다.
이러한 제 1실시예에서, CRC 검사 시퀀스 다항식 이 선택되어 는 CRC 생성 다항식 로 제산가능하고, 즉 가 코드워드이다. 특히, 를 CRC 생성 다항식 로 제산한 나머지가 수학식 2로 정의된다.
여기서, 나머지 다항식 은 디지털 심벌 시퀀스에 대응한다. 그러므로, CRC 검사 시퀀스 다항식이 를 만족하고 여기서 마이너스 계수는 대수 에서 계수의 갓법역원(additive inverse)이다. 2진 CRC 코드에서, 인데, 왜냐하면 2진 CRC 코드의 대수 는 정수 모듈로 2 및 그 정수 모듈로 2에 대한 1+1=0이기 때문이다. 그러므로, CRC 검사 시퀀스 다항식은 그 대수에 대해 이다.
CRC 코드를 구현한 데이터 통신 시스템에서, 도 1a에 도시된 송신기가 디지털 데이터 심벌의 스트림을 전송한다. 그 스트림에서, 각 송신된 디지털 데이터 패킷은 분리된 메시지 부분과, 코드워드에 함께 대응하는 CRC 검사 시퀀스 부분을 포함한다. 각 디지털 데이터 패킷이 데이터 패킷의 메시지 및 CRC 검사 시퀀스 부분의 일부로 되지 않는 분리된 패킷 헤더 및/또는 패킷 컨테이너도 포함할 수 있다. 코드워드에 대응하는 데이터 패킷의 송신에 응답해서, 수신기는 다항식에 대응하는 디지털 데이터 심벌의 시퀀스를 수신하고, 여기서, 이다. 여기서, 는 수신된 데이터 패킷에서 에러 위치 및 값을 정확하게 표현하는 다항식이다. 송신 에러가 발생하는 지를 결정하기 위해, 도 1a에 예시된 수신기(14)는 를 CRC 생성 다항식 로 제산한 다항식의 나머지를 평가한다. 송신 에러가 없을 때, CRC 생성 다항식 로 제산한 의 나머지가 제로 계수를 갖는 다항식이고, 즉 가 코드워드이다. 하나 이상의 송신 에러가 발생한 경우에, 그 제산의 나머지는 비-제로로 되고, 즉, 가 바로 코드워드로 되지 않으면, 에러가 검출될 수 있다. 예를 들어, 특정한 m차 생성 다항식에서, m차 보다 낮은 다항식의 순환 시프트인 에러 시퀀스는 코드워드가 아닌 다항식 를 생성한다. 그러므로, 수신된 데이터 패킷에서, 그 에러는, 대응하는 다항식 가 코드워드인지를 결정함에 의해 검출될 수 있다.
도 1b에 대해 설명하는 제 2실시예에서, 인코딩 단계는 나머지 를 모두 1의 시퀀스로 유지하는 개의 메모리 소자를 초기화하고, 다항식 을 CRC 생성 다항식 로 제산한 나머지 를 효과적으로 평가하고, 여기서, 이다. 그러므로, 다항식 은 다음과 같다.
이 제 2실시예에서, 데이터 패킷의 메시지 및 예비 부분에 대한 제 3 시퀀스의 송신된 부분이 를 만족하는 코드워드 로 정확하게 표현되고, 여기서, 이다. 본원에서, CRC 코딩의 제 2실시예에서, 데이터 패킷은, 다항식을 CRC 생성 다항식 로 제산한 것이 m차인 모든 1의 다항식을 생성하는 경우에, 코드워드인 다항식에 의해 충실히 표현되고, 여기서, 데이터 패킷의 예비 부분이 길이 를 갖는다. 그러므로, 수신기는, CRC 검사 시퀀스에 특정하는 메모리 소자를 모두 1의 시퀀스로 초기화한 후 인 에 대응하는 그 수신된 시퀀스를 CRC 생성 다항식 로 제산한 다항식의 나머지가 데이터 패킷에 송신 에러가 있는 지를 결정하기 위해 모두 제로 시퀀스를 생성하는 지를 결정한다. IEEE 802.3 표준의 매체 액세스 제어(MAC)층은 그 대안의 절차를 수학식 1의 표준 CRC-32 생성 다항식 로써 사용한다.
도 2 및 도 3은 0 및 1에 대한 모듈로 가산으로 정의된 2진 대수를 통해 CRC(cyclic redundancy code)를 기반으로 데이터 패킷을 처리하는 방법(200, 300)을 예시한다. 그 인코딩 방법(300)은 데이터 패킷의 메시지 부분에 대한 CRC 검사 시퀀스를 평가하고 CRC 검사 시퀀스 및 그것의 1의 보수를 도 1a에 예시된 인코더(400A)의 메시지 부분에 첨가함에 의해 송신용 데이터 패킷 각각을 준비하는 단계를 포함한다. 그 첨가 단계가 CRC 코드워드에 대응하는 시퀀스를 형성한다. 그 디코딩 방법(200)은, 데이터 패킷이 도 1a에 예시된 디코더(400B)의 CRC 코드워드에 대응하는 지를 결정함에 의해, 수신된 데이터 패킷이 CRC-검출가능한 송신 에러를 갖는 지를 결정하는 것을 포함한다. "코드워드"의 정의가 도 1b의 제 1 및 2 실시예에서 이미 설명되었다.
단계(210 및 310)에서, 그 방법(200,300)은 내부에 디지털 데이터 패킷을 갖는 제 1 시퀀스의 세그먼트를 세그먼트 단위로 수신하는 것을 포함하고, 그 수신은 도 1a에 예시된 바와 같이 인코더(400A)또는 디코더(400B)에서 실행된다. 제 1 시퀀스가 개의 세그먼트로 된 시퀀스이고, 여기서 각 세그먼트가 동일한 길이를 갖는다.
각 제 1 시퀀스가 도 2 및 3의 방법(200, 300)에서 데이터 패킷의 메시지 부분과 예비 부분을 포함하고, 비트의 메시지 부분의 시퀀스가 다항식 에 대응하고, 비트의 예비 부분의 시퀀스가 다항식 에 대응한다. 그 예비 부분이 데이터 패킷의 메시지 부분에 바로 이어진다. 메시지 및 예비 부분은, 예를 들어, 패킷 헤더 뒤인 데이터 패킷의 메시지 부분에 일반적으로 위치된다. 제 1 시퀀스에서, 비트가 에 대응하는 시퀀스에 앞서고, 에 대응하는 시퀀스에 비트가 이어진다. 그러므로, 이고, 여기서 가 제 1 시퀀스의 세그먼트 수이고, 는, 비트가 세그먼트에 있는 경우, 갯수이고, 가 에 대응하는 시퀀스에서 비트수이다.
여기서, 정수값 및 은 제 1 시퀀스의 데이터 패킷의 다른 가능한 위치 및 데이터 패킷의 다른 가능한 길이로 인해 데이터 패킷 단위로 변할 수 있다. 하기 설명된 예에서, 각 세그먼트의 길이가 2개만의 연속 데이터 패킷의 메시지 부분이 같은 세그먼트에 위치되는 것을 확정할 만큼 짧다. 일부의 다른 실시예에서, 그 세그먼트가 길어질 수 있어서 하나의 데이터 패킷의 메시지 부분의 일부, 제로인 메시지 부분, 하나 이상의 연속 데이터 패킷, 및 다른 데이터 패킷의 메시지 부분의 일부가 하나의 세그먼트에 있을 수 있다.
단게(220 및 320)에서, 그 방법(200,300)은 세그먼트를 수신했을 때 제 1 시퀀스의 개의 세그먼트를 순차적으로 마스킹하고, 예를 들어, 그 마스킹이 도 1a에 예시된 바와 같이 인코더(400A)또는 디코더(400B)에서 실행될 수 있다. 마스킹은 세그먼트 단위로 세그먼트의 제 2 시퀀스를 생성하고, 여기서
도 1b에 대해 설명된 상기 설명된 제 2실시예를 예로 하는 일부의 특정한 실시예에서, 마스킹 단계(220 및 230)는
ⅱ)에 대응하는 시퀀스의 최종 비트를 반전하는 것을 포함한다. 이들 특정한 실시예는 데이터 패킷의 메시지 및 예비 부분의 연속된 최초 비트 및 최종 비트에 대한 선택 반전(즉, 다시 말하면, 1의 보수)을 실행한다. 이 실시예에서, 세그먼트의 제 2 시퀀스가 수학식 4로 된 다항식 로 정확하게 표현된다.
단계(230 및 330)에서, 그 방법(200, 300)은 다항식 를 CRC 생성 다항식 로 재귀적으로 제산하는 것에 대응하는 세그먼트 단위로 다항식 에 대응하는 제 2 시퀀스를 처리하는 것을 포함한다. 단계(230 및 330)가 다항식 를 CRC 생성 다항식 로 제산한 나머지인 다항식 에 대응하는 나머지 시퀀스를 계산하는 것을 포함한다. 그러므로, 처리 단계(230, 330)는 데이터 패킷의 메시지 부분 을 CRC 생성 다항식 로 제산하는 것보다 를 CRC 생성 다항식 로 제산하는 것을 효과적으로 실행한다.
단계(240)에서, 그 방법(200)은 데이터 패킷의 메시지 및 예비 부분에 대응하는 제 1 시퀀스의 일부가 단계(230)에서 계산된 나머지를 기반으로 CRC 코드워드를 형성하는 지를 결정한다. 제 1 시퀀스의 일부가 코드워드로 되면, 방법(200)은 데이터 패킷에 송신 에러가 없이(250)에서 신호 전송하는 것을 포함한다. 제 1 시퀀스의 일부가 코드워드로 되지 않으면, 방법(200)은 데이터 패킷에 송신 에러가 있는 상태에서(260)에서 신호 전송하는 것을 포함한다.
단계(340)에서, 방법(300)은, 데이터 패킷의 메시지 및 예비 부분이 CRC 코드워드에 대응하는 시퀀스를 형성하도록, 데이터 패킷의 예비 부분을 조절하는 것을 포함한다. 단계(340)는 검사 시퀀스 차분 다항식 에 대응하는 시퀀스를 결정하고 데이터 패킷의 메시지 및 예비 부분에 대한 최종 시퀀스를 생성하는 것을 포함할 수 있다. 그 최종 시퀀스가 다항식 에 의해 정확하게 표현된다.
그 계산된 나머지 다항식 에 대한 시퀀스가 최소한 길이 을 갖는 모두-제로 시퀀스인 경우에, 로 되고, 단계(340)에서 으로 된다. 대신해서, 그 계산된 나머지 는 과 같거나 적은 길이를 갖는 비-제로 다항식인 경우에, 이고, 여기서, 비-제로 검사 시퀀스 차분 다항식 가 수학식 6을 만족한다.
그 후에, 단계(340)는 후방향 계산을 통해 수학식 6을 푸는 것을 효과적으로 할 수 있어서 계산된 나머지 다항식 에 대해 계산된 시퀀스로부터 검사 시퀀스 차분 다항식 에 대한 심벌 시퀀스를 획득한다.
단계(340)는 다항식 에 대한 시퀀스에서 다른 방정식에 관련한 나머지 를 제로로 연속하는 다른 수 에 대해 재귀적으로 푸는 것에 의해 다항식 를 계산된 나머지 다항식 으로부터 후방향 계산하는 것을 포함할 수 있다. 특히, 방정식에 관련한 나머지가 역차(reverse-order)생성 다항식으로부터 역차 형태로 재기록될 수 있다. 예를 들어, 는 수학식 7을 풀어서 를 포함하는 나머지로부터 획득될 수 있다.
즉, 제 나머지 다항식 의 계수가 제 역차 나머지 다항식 을 역차 고정된 다항식 로 제산해서 얻어진 나머지와 같다. 그런 이유로, 그 설명된 재귀 공정은 역차 형태의 나머지로 실행될 수 있어서 를 계산된 나머지 다항식 으로부터 얻는다. 예를 들어, 임의 범위에 있는 값을 소정의 범위로 계산을 하는 하나의 방법은 도 8과 관련해서 하기에서 더 상세하게 설명된다.
상술한 제 2실시예에서, 검사 시퀀스 차분 방정식 은 다항식 및 다항식 간의 차분이며, 제 1 시퀀스에서 데이터 패킷의 예비 부분에 대응된다. 다항식 은 데이터 패킷의 메시지 부분에 대한 다항식 을 CRC 생성 다항식 으로 제산한 나머지의 1의 보수에 대응한다. 본 실시예에서, 다항식 에 대한 시퀀스가 수학식 6 내지 8의 변형된 버젼을 기반으로 계산된 나머지 다항식 에 대한 시퀀스로부터의 후방향 계산에 의해 발견될 수 있었고, 그 수학식 6 내지 8이 제 2실시예에서 그 수학식 4에 도시된 바와 같이 다항식 의 반전을 설명한다. 당업자는 수학식 4 내지 8의 상기 설명을 기반으로 상기 변형된 방정식을 쉽게 결정할 수 있다.
단계(340)에서, 방법(300)은, 데이터 패킷이 원래의 메시지 부분을 갖고 메시지 및 예비 부분이 다항식 으로 정확하게 표현된 CRC 코드워드를 형성하는, 최종 시퀀스를 목적지 수신기에 순차적으로 송신한다.
아래 설명된 실시예에서, "워드"는 일반적으로 "1 바이트"이다.
도 4a 및 4b는 인코더(400A) 및 디코더(400B)각각을 예시한다. 인코더(400A)는 도 3의 인코딩 방법(300)을 실행할 수 있고, 디코더(400B)는 도 2의 디코딩 방법(200)을 실행할 수 있다. 인코더(400A) 및 디코더(400B)는 게이트, 플립-플롭, 레지스터, 가산기, 및/또는 승산기를 포함하는 회로로 형성된 종래의 디지털 하드웨어 장치이다. 도 4a-4b에 예시된 인코더(400A) 및 디코더(400B)가 도 1a에 예시된 각 인코더(400A) 및 디코더(400B)일 수 있다. 인코더(400A) 및 디코더(400B)는 유선, 무선, 또는 광 패킷 기반의 통신용 송수신기의, 에서넷 NIC(network interface card)또는 TNE(transport network element)을 예로 하는, NIC 또는 TNE에서 위치될 수 있다.
도 4a 및 4b에 도시했듯이, 인코더(400A) 및 디코더(400B)는 디지털 데이터 처리 유닛 세트를 포함한다. 디지털 데이터 처리 유닛 세트는 세그먼팅 유닛(410)과; 마스킹 유닛(420)과; 부분 나머지 첨가 유닛(425)과; 세그먼트 제산유닛(430, 435)과; 나머지 처리 유닛(440); 및 하나 이상의 버퍼(460, 462, 464, 466)를 포함한다. 그 인코더가 후방향 계산 유닛(470)과 검사 시퀀스 조절 유닛(480)도 포함한다. 디코더(400B)는 검사 시퀀스 입증 유닛(490)도 갖는다. 각종 디지털 처리 유닛은 각 세그먼트로 하여금 같은 길이를 갖게 하는 수신된 데이터 심벌의 스트림을 임시 순차적인 세그먼트 단위로 처리한다.
그 세그먼팅 유닛(410)은 디지털 데이터 심벌의 스트림을 수신하고 각 연속된 같은 길이의 세그먼트를 마스킹 유닛(420)에 및 각 세그먼트의 정보를 마스킹 유닛(420) 및 부분 나머지 첨가 유닛(425)에 연속 송신한다. 세그먼팅 유닛(410)은 스트림을 입력부(401)에서 수신하고 상기 스트림의 세그먼트를 출력부(412)에서 출력한다. 각 데이터 패킷에 대해, 세그먼팅 유닛(410)은 개의 연속 세그먼트의 시퀀스를 출력하고, 여기서 가 데이터 패킷 단위로 변할 수 있다. 그러나, 각 세그먼트가 바이트 길이이고, 즉 s 비트이고 여기서 s=wS이고 는 워드의 비트수이다. 아래 설명에서, 세그먼트가 바이트-배열된다고 가정한다. 그 결과는 워드 배열로 되지 않는 세그먼트를 처리하기 위해 쉽게 확장될 수 있다.
각 세그먼트에 대해, 세그먼팅 유닛(410)은 세그먼트에 대응하는 정보를 출력 포트(414)에 송신한다. 그 정보가 대응하는 세그먼트에서 위치된 데이터 패킷 개시부 및/또는 데이터 패킷 종료부를 식별하고 위치시킨다. 세그먼트가 데이터 패킷 개시부를 가지면, 세그먼팅 유닛(410)은 세그먼트에서 1값인 패킷의 개시(start-of-packet ; SOP)신호 및 데이터 패킷 개시부의 위치를 식별하는 패킷의 개시 색인(start-of-packet ; SPI)을 출력한다. 세그먼트가 데이터 패킷 개시부를 갖지 않는 다면, 세그먼팅 유닛(410)이 0값인 SOP 신호를 출력한다. 세그먼트가 데이터 패킷 종료부를 가진다면, 세그먼팅 유닛(410)은 세그먼트에서 1값인 패킷의 종료(end-of-packet ; EOP)신호 및 데이터 패킷 종료부의 위치를 식별하는 패킷의 종료(end-of-packet ; EPI)색인을 출력한다. 세그먼트가 데이터 패킷 종료부를 갖지 않는 다면, 세그먼팅 유닛(410)이 0 값인 EOP 신호를 출력한다. 세그먼팅 유닛(410)은 데이터 패킷의 패킷 헤더에서 패킷 길이 식별자(PLI)를 판독해서 데이터 패킷 개시부 및/또는 데이터 패킷 종료부를 식별하고 위치시킬 수 있다.
아래에서, 세그먼트의 연속된 워드가 번호(S-1)내지 0으로 전송 차수로 색인되고, 여기서, 고차 색인이 이미 송신된 워드에 대응한다. SPI 및 EPI 신호가 각 색인을 2진수로 표현하는 2진 신호 의 길이 의 벡터로 표현될 수 있다. SPI 값은 다항식 에 대응하는 부분인 데이터 패킷의 메시지 부분의 최초 워드이고, EPI 값은 데이터 패킷의 예비 또는 CRC 검사 시퀀스 부분의 최종 워드이다.
마스킹 유닛(420)은, 세그먼트가 세그먼팅 유닛(410)으로부터 출력부(412)를 통해 수신될 때, 세그먼트 단위로 세그먼트의 비트를 마스킹한다. 내부에 전체 데이터 패킷을 갖는 제 1 시퀀스의 각 개의 세그먼트로부터, 마스킹 유닛(420)은 대응하는 세그먼트의 제 2 시퀀스를 생성하고, 여기서, 제 2 시퀀스가 이미 설명되었던 다항식 에 대응한다. 그런 제 2 시퀀스에서, 마스킹 유닛(420)은 데이터 패킷의 메시지 및 예비 부분의 외부에 있는 각 비트를 제로로 세트하고, 즉 다시 말하면, 에 대응하는 시퀀스 전에 있는 각 비트를 제로로 세트하고 에 대응하는 시퀀스 뒤에 있는 각 비트를 제로로 세트한다. 그러므로, 마스킹 유닛(420)은 제 1 시퀀스의 최초 "a" 비트를 "0"로 세트하고 각 제 1 시퀀스의 최종 "b" 비트를 "0"로 세트한다. 상기 설명된 제 2실시예에서, 마스킹 유닛(420)은 연속되는 메시지 및 예비 부분에 대응하는 시퀀스의 최초 "m" 비트 및 최종 "m" 비트를 반전시키고(즉, 1의 보수), 즉 시퀀스가 다항식 에 대응한다.
마스킹 유닛(420)은 제 2 시퀀스의 각 세그먼트를 부분 나머지 첨가 유닛(425)에 순차적으로 출력한다. 부분 나머지 첨가 유닛(425)은 제 2 시퀀스의 각 비-선행 세그먼트의 최상위 "m" 비트에 의해 형성된 시퀀스에 부분 나머지를 가산하기 위해 길이 "m"의 부분 나머지 시퀀스를 시프트시킨다. 여기서, 각 부분 나머지 시퀀스가 같은 제 2 시퀀스의 선행 세그먼트의 세그먼트 제산 유닛(430, 435)중 하나를 CRC 생성 다항식 에 대응하는 시퀀스로 제산한 나머지이다. 그 부 분 나머지가 나머지 처리 유닛(440)으로부터 라인(441)을 통해 부분 나머지 첨가 유닛(425)으로 피드백된다.
세그먼트 제산 유닛(430, 435)이 순차적인 세그먼트 단위로 각 수신된 세그먼트에서 동작하고, 예를 들어, 각 세그먼트가 마스크된 다항식 의 세그먼트에 대응한다. 세그먼트 단위의 제산에 의해, 세그먼트 제산 유닛(430, 435)은 부분 나머지의 시퀀스를 출력한다. 세그먼트 제산 유닛(430, 435)은 이전의 세그먼트 제산으로부터 알맞게 시프트된 부분 나머지와 결합되는 비-선행 세그먼트를 수신하므로, 제 2 시퀀스의 최종 세그먼트를 제산해서 세그먼트 제산 유닛들(430,435)중 하나에서 생성된 최종 부분 나머지가 나머지 다항식 에 대한 시퀀스에 대응한다. 즉, 세그먼트 제산 유닛(430,435)에 의해 출력된 최종 부분 나머지 시퀀스가 마스킹된 다항식 를 CRC 생성 다항식 으로 제산해서 생성되는 나머지에 대응한다.
일부의 실시예에서, 부분 나머지 첨가 유닛(425)은 제 2 시퀀스의 세그먼트 세트를 하나의 세그먼트 제산 유닛(430,435)에 출력하고 다음의 제 2 시퀀스에 대한 세그먼트를 나머지 세그먼트 제산 유닛(435,430)에 출력한다. 그 실시예에서, 세그먼트 제산 유닛들(430,435)중 하나가 하나의 데이터 패킷의 각 세그먼트를 CRC 생성 다항식 으로 제산해서 실행하고, 나머지 세그먼트 제산 유닛(435,430)은 스트림에서 다음의 데이터 패킷의 각 세그먼트를 CRC 생성 다항식 으로 제산해서 실행한다.
다른 실시예에서, 부분 나머지 첨가 유닛(425)은 처리되는 데이터 패킷에 의해 점유된 세그먼트량을 기반으로 세그먼트 제산 유닛(430,435)에 세그먼트를 선택적으로 송신한다. 특히, 세그먼트가 데이터 패킷 종료부를 갖고, 현재의 데이터 패킷이 다음의 데이터 패킷보다 내부에서 더 많은 비트를 가진다면, 현재의 데이터 패킷의 세그먼트가 제 1세그먼트 제산 유닛(430)에 송신되고, 다음의 데이터 패킷을 갖는 단축된 세그먼트가 제 2세그먼트 제산 유닛(435)에 송신된다. 그렇치 않으면, 현재의 데이터 패킷이 다음의 데이터 패킷보다 적은 비트를 가지는 경우에, 다음의 데이터 패킷의 세그먼트가 제 1세그먼트 제산 유닛(430)에 송신되고, 현재의 데이터 패킷의 나머지를 갖는 단축된 세그먼트가 제 2세그먼트 제산 유닛(435)에 송신된다.
나머지 처리 유닛(440)은 추가의 처리를 위해 나머지 다항식 에 대한 시퀀스를 출력부(442)로 우회시킨다. 그 추가의 처리가 검사 시퀀스 입증 유닛(490)또는 후방향 계산 유닛(470)에 의해 실행될 수 있다. 각 데이터 패킷에서, 나머지 처리 유닛(440)은 대응하는 데이터 패킷에 대한 SOP, SPI, EOP, 및 EPI 정보를 기반으로 세그먼트 제산 유닛들(430,435)중 하나로부터 나머지 다항식 에 대한 시퀀스를 선택한다. 이미 설명했듯이, 나머지 처리 유닛(440)은 세그먼트 제산 유닛(430,435)으로부터 부분 나머지를 부분 나머지 첨가 유닛(425)로 공급한다.
상기 설명된 제 2실시예에서, 데이터 패킷의 예비 부분의 종료부가 제 2 시퀀스의 최종 세그먼트의 개시부 근처에 위치될 때, 특정한 상황이 발생한다. 그 상황에서, 나머지 처리 유닛(440)은 제 2 시퀀스의 최종 세그먼트에 대한 세그먼트 제산 유닛들(430,435)중 하나에 의해 평가된 부분 나머지에 정정항을 가산하여 구성될 수 있다. 특히, 정정항은 반전되었던 하나 이상의 바이트를 보상하나 대응하는 부분 나머지를 계산할 때 제 2 시퀀스의 맨 마지막에서 2번째 세그먼트에서 반전되지 않는다. 그 정정항은 맨 마지막에서 2번째 세그먼트의 알맞게 시프트되어 누락된 것의 시퀀스를 CRC 생성 다항식 으로 제산할 때 발생하는 나머지이다. 당업자는, 나머지 처리 유닛(440)이 그 특정한 상황에서 그 정정항을 인가하기 위해 사용될 수 있는 룩 업 테이블 또는 결합 회로를 쉽게 제조할 수 있다.
일부의 실시예(도 4a-4b에서 예시안된)에서, 부분 나머지 첨가 유닛(425)은 없고 마스킹 유닛(420)은 제 2 시퀀스의 각 세그먼트를 세그먼트 제산 유닛(430,435)에 직접적으로 순차적으로 출력한다. 그 후에, 나머지 처리 유닛(440)은 제 2 시퀀스의 최종 세그먼트의 세그먼트 제산 유닛(430,435)을 CRC 생성 다항식 에 대응하는 시퀀스로 제산해서 생성된 최종 부분 나머지를 변형시킨다. 특히, 그 변형은 제 2 시퀀스의 초기 세그먼트를 세그먼트 제산 유닛(430,435)으로 제산한 부분 나머지로부터 계산된 정정값을 가산하는 것을 포함한다. 그 조절은 최종 부분 나머지를 정정하여 나머지 처리 유닛(440)이 마스킹된 제 2 시퀀스 를 CRC 생성 다항식 으로 제산해서 얻어진 나머지인 나머지 다항식 에 대응하는 나머지 시퀀스를 출력부(442)에서 계속 출력할 것이다.
마스킹된 제 2 시퀀스에는, 대응하는 데이터 패킷의 일부로 되지 않는 고정된 디지털 데이터 심벌, 예를 들어, 다항식 의 연속 "0"에 대응하는 엔트리들이 있을 수 있다. 이미 논의했듯이, 마스킹된 다항식 에 대한 마스킹된 시퀀스로부터 계산된 바와 같이 다항식 에 대한 나머지 시퀀스가 데이터 패킷 자체에 대한 CRC 나머지 다항식 에 대응하지 않을 수 있다. 그러므로, 일부의 데이터 패킷에서, 후방향 계산 유닛(470)은 상기 논의했듯이 CRC 나머지 다항식 에 대한 정정된 CRC 나머지 시퀀스의 후방향 계산 또는 검사 시퀀스 차분 다항식 에 대한 차분 시퀀스를 실행할 수 있다. 후방향 계산 유닛(470)에서, 그 계산은 나머지 처리 유닛(440)의 출력 포트(442)로부터 수신되는 길이 "m" 을 갖는 나머지 다항식 를 기반으로 된다. 그 후방향 계산은 이미 설명했듯이, 즉 다시 말하면 라인(465)의 후방향 계산 유닛(470)에 의해 수신된 EOP 및 EPI 신호에서 알 수 있듯이 의 시퀀스에서 "b" 연속 제로의 공지된 고정 형태를 기반으로 된다.
인코더(400A)에서, 후방향 계산 유닛(470)은 CRC 나머지 다항식 에 대한 CRC 검사 시퀀스 또는 검사 시퀀스 다항식 에 대한 차분 시퀀스를 출력 포트(472)를 통해 검사 시퀀스 조절 유닛(480)에 출력한다.
인코더(400A)에서, 검사 시퀀스 조절 유닛(480)은 후방향 계산된 검사 시퀀스 를 대응하는 데이터 패킷의 예비 부분으로 삽입하여 물리적인 통신에 송신하기 위해 변환된 제 1 시퀀스를 생성한다. 그 변환된 제 1 시퀀스에서, 데이터 패킷의 메시지 및 예비 부분에 대한 시퀀스가 다항식 으로 정확하게 표현되는 입력 시퀀스보다 다항식 로 정확하게 표현된다. 그 변환된 제 1 시퀀스가 출력 포트(482)에서 출력된다. 각 데이터 패킷에서, 검사 시퀀스 조절 유닛(480)은 후방향 계산 유닛(470)의 출력 포트(472)로부터 다항식 또는 에 대한 시퀀스를 수신한다.
검사 시퀀스 조절 유닛(480) 및 후방향 계산 유닛(470)은 데이터 라인(469)을 통해 알맞은 시기에 데이터 패킷의 세그먼트를 수신한다. 데이터 라인은 알맞은 길이로 지연하는 버퍼(460, 466)를 포함한다. 검사 시퀀스 조절 유닛(480), 후방향 계산 유닛(470), 및 나머지 처리 유닛(440)은 데이터 라인(469)를 경유해 알맞은 시기에 데이터 패킷에 대한 EOP, EPI, SOP, SPI 신호를 수신한다. 제어 라인(465)은 알맞은 길이로 지연하는 버퍼(462,464)를 포함한다.
디코더(400B)에서, 검사 시퀀스 입증 유닛(490)은 대응하는 데이터 패킷이 코드워드인지를 표시하는 출력부(492)에 제어 신호를 출력한다. 검사 시퀀스 입증 유닛(490)은 나머지 처리 유닛(440)으로부터 수신되는 다항식 에 대한 시퀀스 형태를 기반으로 출력되는 제어 신호값을 결정한다. 다항식 가 길이 "m" 를 갖는 모두 제로인 다항식인 경우에, 검사 시퀀스 입증 유닛(490)은 대응하는 데이터 패킷에 송신 에러가 없다는 것을 표시하는 신호를 일반적으로 출력한다. 그러나, 다항식 가 길이 "m" 를 갖는 다른 다항식인 경우에, 검사 시퀀스 입증 유닛(490)은 대응하는 데이터 패킷에 송신 에러가 있다는 것을 표시하는 신호를 일반적으로 출력한다.
간단히 요약해서, 인코더(400A)에서, 마스킹 유닛(420)은 세그먼트 유닛(410)으로부터 세그먼트의 제 1 시퀀스를 수학식 5를 예로 하는 마스킹 방정식 에 대응하는 마스킹된 세그먼트의 제 2 시퀀스로 변환한다. 인코더(400A)에서, 세그먼트 제산 유닛(430, 435) 및 나머지 처리 유닛(440)은 예를 들어, 수학식 6에 따라 나머지 다항식 에 대응하는 세그먼트의 시퀀스를 함께 발생시킨다. 후방향 계산 유닛(470)은, 예를 들어, 수학식 9에 기초하여 나머지 다항식 으로부터 CRC 검사 시퀀스 조절 다항식 또는 CRC 나머지 다항식 를 효과적으로 결정하고, 그 다항식에 대한 시퀀스가 검사 시퀀스 조절 유닛(480)에서 더 사용될 수 있다.
대안의 실시예에서, 다른 디지털 장치가 마스킹 유닛(420), 부분 나머지 첨가 유닛(425), 세그먼트 제산 유닛(430, 435), 및 나머지 처리 유닛(440)의 결합을 대체할 수 있다. 예를 들어, 세그먼트가 많아야 하나의 데이터 패킷의 일부를 포함하는 경우에, 2개의 세그먼트 제산 유닛(435, 430) 및/또는 나머지 처리 유닛(440)을 갖는 것이 필요로 하지 않을 수 있다.
상기에서 설명했듯이, 본원에서 설명된 하나 이상의 실시예는 데이터 패킷에 대해 CRC 검사 시퀀스를 생성하며 그 생성된 CRC 시퀀스 또는 그것의 1의 보수를 송신 전에 데이터 패킷으로 기록하는 시스템 또는 방법에 관한 것이다.
세그먼트
처리의 예 및 다른 예의
실시예
도 5는 도 4a의 인코더의 일부의 실시예를 통해 예시된 데이터 패킷의 처리를 예시한다. 그 데이터 패킷은 4개의 연속하며 공통 요소를 갖는 않는 같은 길이의 세그먼트(522, 524, 526, 528)로 형성된 디지털 데이터 심벌의 제 1 시퀀스(510)에 위치된다. 그 처리는 마스킹된 세그먼트(570)의 제 2 시퀀스를 생성하고 세그먼트의 제 2마스킹된 시퀀스로부터 CRC 검사 시퀀스(580)를 계산하는 것을 포함한다. 아래에서, 그 처리가 도 4a의 마스킹 유닛(420) 및 부분 나머지 첨가 유닛(425)의 예의 블럭도인 도 6에 관련해서 설명된다. 마스킹 유닛(420) 및 부분 나머지 첨가 유닛(425)은 도 7에 도시된 유한 상태 머신(finite state machine ; FSM)(700)을 기반으로 동작된다.
도 5에서, 4개의 세그먼트(522, 524, 526, 528)의 제 1 시퀀스(510)는 CRC 검사 시퀀스에 대해 메시지 부분(514) 및 예비 부분(516)을 갖는 데이터 패킷을 포함한다. 제 1 및 4세그먼트(522, 528)는 데이터 패킷에 속하지 않는 부분(512, 518), 즉 다시 말하면, 데이터 패킷의 데이터 및 예비 부분(514 및 516)을 갖는다.
도 5는 도 4a의 세그먼팅 유닛(410), 마스킹 유닛(420), 부분 나머지 첨가 유닛(425), 세그먼트 제산 유닛(430, 435), 나머지 처리 유닛(440), 및 후방향 계산 유닛(470)의 처리를 예시한다. 세그먼팅 유닛(410)은 제 1 시퀀스(510)의 세그먼트(522, 524, 526, 528) 및 그 내부의 데이터 패킷의 종료 및 개시의 정보 형성 위치를 마스킹 유닛(420)에 순차적으로 출력한다. 그 마스킹 유닛(420)은 제 1 시퀀스(510)의 세그먼트(522, 524, 526, 528)를 제 2 시퀀스(570)의 마스킹된 세그먼트(536, 546, 556, 556)로 순차적으로 변환한다. 그 변환은 각 6바이트인 데이터 패킷에 없는 제 1 시퀀스(510)의 초기 및 최종 부분(512, 518)을 제로로 마스킹하고, 그 예(반전된 바이트가 대시로 표시됨)에서 각 4바이트인 데이터 패킷의 초기 및 최종 바이트 수와 같은 수를 반전시키는 것을 포함한다. 부분 나머지 첨가 유닛(425)은 세그먼트 제산 유닛(430, 435)에서 선행 세그먼트(522, 524, 526)의 초기 다항식 제산으로부터 중간 또는 부분 나머지(538, 548, 558)를 비-선행 세그먼트(524, 526, 528)의 최상위 바이트로 가산한다. 그 실시예에서, 부분 나머지(538, 548, 558)는 나머지 처리 유닛(440)또는 세그먼트 제산 유닛(430, 435)을 경유해 마스킹 유닛(420)에 피드백된다. 각 세그먼트 제산 유닛(430, 435)은 비-선행 마스킹된 세그먼트(524, 526, 528)에 대해 첨가된 부분 나머지를 갖는 각 마스킹된 세그먼트(536, 546, 556, 566)를 CRC 생성 다항식 에 대응하는 시퀀스로 제산하여 부분 나머지(538, 548, 558, 568)를 생성한다. 그 나머지 처리 유닛(440)은 나머지 다항식 에 대응하는 최종 세그먼트의 나머지(568)를 후방향 계산 유닛(470)에 출력한다. 후방향 계산 유닛(470)은 최종 세그먼트 나머지(568)로부터 CRC 나머지 다항식 에 대응하는 CRC 검사 시퀀스(580)또는 차분 다항식 에 대응하는 CRC 차분 시퀀스를 계산한다.
도 6 및 도 8은 도 4a-4b의 마스킹 유닛(420), 부분 나머지 첨가 유닛(425), 및 후방향 계산 유닛(470)의 특정한 실시예를 예시한다.
도 6을 참조하면, 세그먼팅 유닛(410)은 도 5의 또는 20 바이트인 길이 s를 갖는 세그먼트를 마스킹 유닛(420)의 마스킹 모듈(620, 630, 640)에 송신한다. 마스킹 유닛(420)은 데이터 패킷의 종료 및 개시 세그먼트 색인의 위치에 대한 정보를 수신하는 마스크 생성 모듈(610)을 포함할 수 있다.
마스크 생성 모듈(610)은 도 7에 예시된 FSM(700)에 따라 그 정보를 해석한다. 초기에, FSM이 초기/유휴 상태(710)에 있다. FSM은, SOP의 수신값이 "0"이기만 하면, 초기/유휴 상태에 있게 된다. 나중에 수신된(SOP, EOP)쌍이 SOP=1 및 EOP=0으로 표시하는 경우에, 대응하는 세그먼트가 도 5의 세그먼트(522)를 예로 하는 데이터 패킷의 개시부를 갖는다. FSM은, 그 데이터 패킷이 도 5의 세그먼트(522)에서처럼 데이터 패킷의 종료부를 갖지 않는 다면, PB(Packet-Begin)상태(720)로 변한다. FSM은, 그 세그먼트가 데이터 패킷의 종료부를 또한 갖는 다면, 즉 EOP=1인 경우에, PF(Packet-Full)상태(760)로 변한다. PB 상태(720)에서, 도 6의 마스킹 유닛(420)은 데이터 패킷의 외부에 있는 세그먼트의 초기부를 제로 시퀀스로 세트하고 도 5에서 mv =4 바이트를 예로 하는 데이터 패킷 자체의 최초 m 비트를 반전시킨다. 그 변환을 실행하기 위해, 마스크 생성 모듈(610)은 마스크 및 를 생성하여 SPI 신호의 수신값에 의해 정의된 형태를 갖는다. SOP 및 EOP 값이 도 5의 세그먼트(524)를 예로 하는 다음의 세그먼트에서 제로인 경우에, FSM은 PM(Packet-Middle)상태(730)로 변한다. FSM이 PM 상태로 있는 처음에는, 인코더는 데이터 패킷이 최종 세그먼트의 종료시에 개시되는 지를 결정하여 이전의 세그먼트의 마스크 의 나머지가 현재의 세그먼트(많아야 )워드가 로 특정화되듯이 반전된다)워드들중 최초 워드를 반전시키기 위해 마스킹 유닛(620)에 공급된다. 그렇치 않으면, PM 상태가 세그먼트의 마스킹을 일반적으로 실행하지 않는다. EOP 값이 데이터의 종료로 하여금 세그먼트에 위치한다는 것을 표시하기 위해 1로 변화될 때서야 FSM(700)은 상태 PM(730)에 있게 된다.
EOP 값이 1로 변할 때서야 FSM이 PM 상태(730)에 있게 된다. SOP 값이 여전히 제로인 경우에, FSM이 1로 변하는 EOP에 응답해서 PE(Packet-End)상태(740)로 변한다. PE 상태(740)에서, 마스크 생성 모듈(610)은 마스킹 모듈(620)에 공급되는 2개의 및 를 생성하여 데이터 패킷의 외부에 있는 세그먼트의 일부를 제로로 세트하고 데이터 패킷의 종료부에서 길이 을 갖는 부분을 비트 방향으로 반전시킨다. SOP 값이 EOP와 함께 1로 변하는 경우에, 세그먼트가 처리되는 데이터 패킷의 종료부 및 다음의 데이터 패킷의 개시부를 포함한다. 그러한 EOP 및 SOP 값들이 FSM으로 하여금 2개의 세그먼트 제산 유닛(430, 435)을 사용하는 PD(Packet-Double)상태(750)로 변하게 한다.
PD 상태(750)에서, 2개의 처리 경우가 있다. 제 1경우에, 세그먼트가 세그먼트에서 다음의 데이터 패킷의 개시 부분보다 긴 데이터 패킷의 종료 부분을 갖는다. 이 경우에, 데이터 패킷의 종료부가 PE 상태(740)에서와 같이 마스킹 모듈(620)에서 처리되고, 세그먼트 제산 유닛(430)은 마스크 및 을 사용한다. 그런 경우에, H 워드보다 적은 새로운 데이터 패킷의 개시부가 PB 상태(720)과 같은 형태로 마스크 및 의 H 최하위 비트를 사용해서 마스킹 모듈(640) 및 세그먼트 제산 유닛(435)에서 병렬로 처리된다. 제 2경우에, 그 세그먼트가 세그먼트에서 다음의 데이터 패킷의 개시부보다 짧은 데이터 패킷의 종료부를 갖는다. 그런 경우에, H 워드보다 적은 데이터 패킷의 종료부가 PE 상태와 비슷하게 2개의 및 의 H 최상위 비트를 사용해서 마스킹 모듈(630) 및 세그먼트 제산 유닛(435)에서 처리된다. 그런 경우에, 새로운 데이터 패킷의 개시부가 2개의 마스크 및 를 사용해서 마스킹 모듈(620) 및 세그먼트 제산 유닛(430)에서 PB 상태(720)와 비슷하게 처리된다.
최종적으로, FSM(700)이 초기/유휴 상태(710) 및 PE 상태(740)에 있고 SOP 및 EOP 값들이 1로 되는 경우에, FSM이 PF 상태(760)로 변한다. PE 상태(760)에서, 패킷 전체가 하나의 세그먼트에 포함된다. 그런 경우에, 세그먼트가 4개의 마스크 및 를 인가하여 마스킹 모듈(620)에서 변형되고, CRC 나머지가 세그먼트 제산 유닛(430)에 의해 결정된다.
FSM(700)은 패킷의 개시 및/또는 패킷의 종료에 관련된 정보의 유효성을 동시에 검사하는 것을 포함할 수 있다. 예를 들어, PM 상태(730)에서, SOP가 1이면, FSM 이 에러 메시지를 보낼 수 있고, FSM 이 초기/유휴 상태(710)로 복귀할 수 있다. FSM 이 SPI 및 EPI 신호의 범위의 유효성을 다르게 검사하는 것을 포함할 수 있다. 예를 들어, PD 상태(750)에서, SPI 및 EPI 신호들은 데이터 패킷의 종료 및 다음의 데이터 패킷의 개시간의 거리가 기형성된 패킷간 간격 길이와 같거나 길게 되는 것을 표시해야한다.
도 6은 마스크 생성 모듈(610) 및 마스킹 모듈(620, 630, 및 640)의 실시예를 예시한다. SOP=1 인 경우에, 마스크 생성 모듈(610)이 패킷 개시 색인()을 표현하는 SPI 신호를 처리하여 2진 마스크 를 생성하고, 그 2진 마스크 의 구성이 S 워드에 대응하는(S-1)로부터 0 까지의 색인을 갖는다. 보다 큰 색인을 갖는 구성들이 제로이고, 이하의 색인을 갖는 구성들이 1이다. 마스크 생성 모듈(610)은 어느 워드가 반전되는 가를 표시하는 2진 마스크 를 생성한다. 2진 마스크 에서, 에 대한 구성()이 1이고, 다른 구성들이 제로이다. 인 경우에, 다음의 세그먼트에 대응하는 2진 마스크 의 구성들 내지 이 모두 1이다. 마스크 및 가 마스킹 모듈(620, 630, 및 640)에 분배되고, FSM(700)의 상태에 따르는 방법으로 선택적으로 사용된다.
일 실시예에서, 마스킹이 데이터 패킷 대체를 하지 않는 제 1 시퀀스의 각 디지털 데이터 심벌을 제로로 대체하고 데이터 패킷의 선행 및 최종 디지털 데이터 심벌을 반전시킨다. 마스크 의 제로값 구성은 데이터 패킷에 없는 세그먼트의 일부를 식별하고, 마스크 의 단일값 구성은 데이터 패킷에 있는 제 1 시퀀스의 일부를 식별한다. 제 1 시퀀스의 워드가 의 대응하는 구성에 의해 제어된 게이트로써 그 워드를 처리함에 의해 제로로 선택적으로 세트하거나 변화안된 채로 남게 된다. 의 구성이 제로인 경우에, AND 게이트가 대응하는 워드를 제로로 대체하고, 의 구성이 1인 경우에, AND 게이트가 대응하는 워드를 변화시키지 않는다. 비슷하게, 마스크 의 단위값 구성이 반전되는 세그먼트의 일부를 식별한다. 제 1 시퀀스의 워드가 의 대응하는 구성에 의해 제어된 게이트로써 그 처리를 함에 의해 반전되도록 선택적으로 세트되거나 변화안된 채로 남게 된다. 마스크 의 구성이 1인 경우에, XOR 게이트가 1의 반전에 의해 대응하는 워드를 대체하고, 마스크 의 구성이 제로인 경우에, XOR 게이트가 대응하는 워드를 변화시키지 못한다.
도 5에서, 길이 20(바이트/워드)의 세그먼트(522)는 6 바이트가 패킷의 개시부를 선행하는 것을 표시하는 정보를 갖는 마스킹 유닛(420)으로 입력한다. 그런 이유로 인해, 마스크 생성 모듈(610)은 최초 6바이트를 제로로 대체한다. 마스크 생성 모듈이 반전되는 세그먼트의 바이트 7-10를 야기한다.
도 6을 참조하면, 마스킹 및 부분 나머지 첨가 유닛(420, 425)의 결합은 마스크 생성 모듈(610)에서 새로운 데이터 패킷의 개시를 검출하는 것에 응답해서 나머지 계산을 재개시할 수 있다. 특히, 마스킹 모듈(620 및 630)은 피드백 나머지 및 그 피드백 나머지로서 입력된 0 간에 선택하는 멀티플렉서를 가질 수 있다. SOP 값이 1인 경우에, 멀티플렉서가 제로 입력을 선택하여 나머지 다항식 에 대한 시퀀스를 평가하는 다항식 제산을 재개시한다.
도 4a, 도 4b, 도 5 및 도 6에서, 부분 나머지 첨가 및 나머지 처리 유닛(425, 440)은 이전에 계산된 부분 나머지(538, 548, 558)를 그것의 최상위부로 첨가함에 의해 제 2 시퀀스(570)의 비-선행 세그먼트(546, 556, 566)를 갱신할 수 있다. 각 부분 나머지(538, 548, 558, 568)의 계산은 세그먼트 제산 유닛(430, 435)에서 CRC 생성 다항식 을 예로 하는 고정 제수(divisor)시퀀스에 의해 그 갱신되고 마스킹된 세그먼트(536, 546, 556, 566)를 제산하는 것을 포함한다. 그런 방법에서, 마스킹 유닛(420), 부분 나머지 첨가 유닛(425), 및 나머지 처리 유닛(440)은, 데이터 패킷이 개별의 세그먼트(536, 546, 556, 566)에서 반복 계산을 통해 복수의 세그먼트에 걸쳐 스트레치할 때, 나머지 다항식 에 대한 나머지를 계산한다.
예를 들어, 그 나머지가 다음과 같이 도 5의 예에서 반복적으로 계산된다. 제 1반복에서, FSM(700)이 PB 상태(720)로 되고 마스크(532) 및 마스크(534)를 제 1 시퀀스의 세그먼트(522)에 형성하고 인가하여 제 2 시퀀스(570)의 제 1마스크된 세그먼트(536)를 획득한다. 그 후에, 세그먼트 제산 유닛(430)에서 처리되어 제 1부분 나머지(538)를 획득한다. 다음에서 반복적으로, FSM(700)은 PM 상태(730)로 되고, 마스킹 유닛(420)은 다음의 세그먼트(524)를 입력으로 하고 설정된 FSM 상태의 마스크를 생성하여 제 2세그먼트(546)를 형성하여, 제 2 시퀀스(570)의 제 2세그먼트를 형성한다. 부분 나머지(538)는 부분 나머지 첨가 유닛(425)에 피드백되고 다음의 세그먼트(546)의 최상위부에 가산된 후, 세그먼트 제산 유닛(430)이 최종의 세그먼트를 처리하여 다음의 부분 나머지(548)를 결정한다. 다음에서 반복적으로, FSM(700)은 PM 상태(730)로 되고, 세그먼트(526)가 처리되어 유닛(420)에서 제 2 시퀀스(570)의 제 3세그먼트(556)를 획득한다. 부분 나머지(548)는 부분 나머지 첨가 유닛(425)으로 피드백되고 다음의 세그먼트(556)의 최상부로 가산된 후, 세그먼트 제산 유닛(430)이 최종의 세그먼트를 처리하여 다음의 부분 나머지(558)를 결정한다. 최종 반복에서, FSM(700)은 PE 상태(740)로 변하고 마스크(562) 및 마스크(564)를 제 1 시퀀스의 세그먼트(528)에 형성하고 인가하여 제 2 시퀀스(570)의 최종 세그먼트(566)를 획득한다. 또한, 부분 나머지(558)는 부분 나머지 첨가 유닛(425)에 피드백되고 다음의 세그먼트(566)의 최상위부에 가산된 후, 세그먼트 제산 유닛(430)은 최종의 세그먼트를 처리하여 마스킹된 제 2 시퀀스(570)를 CRC 생성 다항식 으로 제산하여 생성된 다음의 부분 나머지(568)를 결정한다.
상기 절차는 세그먼트 제산 유닛(430, 435)으로 하여금 제 1 시퀀스(510)에서 데이터 패킷의 개시 위치와 무관하게 같은 형태로 부분 나머지(538, 548, 558, 568)을 계산하게 할 수 있다. 나머지 처리 유닛(440)은 데이터의 종료가 세그먼트내에 있는 지를 결정하기 위해 신호 정보를 사용하여 나머지를 출력해야하는 지를 결정한다.
마스크 생성 모듈(610)은 비트 레벨 반전 마스크 를 생성하여 하나 이상의 마스킹 모듈(620, 630, 640)에 송신될 수 있다. 패킷에 포함된 검사 시퀀스 세그먼트가 2개의 세그먼트에 걸쳐있는 경우에, 비트 레벨 반전 신호가 비트 레벨에서 마스킹 모듈(620, 630, 및 640)에 지시하고 세그먼트의 최상위 워드의 각 부분의 반전을 실행한다.
예를 들어, 데이터 패킷의 최종 워드가 반전되는 실시예에서, 비트 레벨 반전이 세그먼트의 제 1 워드에서 패킷의 종료를 설명하기 위해 사용될 수 있다. 반전되어야했던 하나 이상의 워드가 반전되지 않으므로 비트 레벨 반전이 사용되는데, 왜냐하면 그 워드가 이전의 세그먼트로써 처리되기 때문이다. 마스크 신호가 모든 마스킹 모듈(620, 630, 640)에 결합되고 대안의 실시예에서 각각의 폭 S,(S-H), 및 H 를 갖는 것으로 도시되는 반면에, 일부의 마스크는 반전되는 워드수 내에 있는 그 마스킹 모듈에만 결합될 수 있다.
S-워드 마스킹 모듈(620),(S-H)워드 및 H-워드 마스킹 모듈(630 및 640)은 AND 게이트로 된 다수의 뱅크 및 XOR 게이트의 다수의 뱅크를 포함할 수 있다. AND 및 XOR 게이트의 뱅크가 워드-레벨 마스킹 및 라인(441)으로부터의 부분 나머지의 가산을 제 2 시퀀스의 세그먼트에 가능하게 기능한다. XOR 게이트의 뱅크가 하나 이상의 들어오는 비트로 하여금 마스킹 모듈(620, 630, 640)에 반전되게 할 수 있고, XOR 게이트의 뱅크는 마스킹 모듈로 들어가는 데이터 세그먼트(412)의 일부의 모든 비트(즉, 전체 워드)를 반전시킨다. 대안의 실시예에서, 다른 논리 장치 및/또는 구조가 AND 게이트로 된 뱅크 및/또는 XOR 게이트로 된 뱅크를 대체할 수 있어서 그런 마스킹 기능을 실현한다.
상기 설명된 바와 같이, 마스킹 유닛(420)은 패킷에 속하지 않는 세그먼트의 워드를 제로로 세팅함에 의해 데이터 세그먼트의 워드를 마스크 할 수 있고 데이터 패킷의 개시 및/또는 종료부에서 하나 이상의 워드를 1로 반전시킬 수 있다.
도 5를 참조하면, 이 처리가 제 1 시퀀스의 세그먼트를 수신함에 의해 개시한다. 다음에, 마스크 생성 모듈(610)은 새로운 패킷이 세그먼팅 유닛(410)의 출력 포트(414) 및 유한 상태 머신(700)의 현재 상태로부터의 정보를 기반으로 그 수신된 세그먼트내에서 개시하는 지를 결정한다. 새로운 패킷이 세그먼트(522)를 예로 하는 세그먼트에서 개시하는 경우에, 마스킹 생성 모듈(610)은 마스크 벡터를 생성하여 새로운 데이터 패킷의 개시를 선행하는 바이트를 세트하고/세트하거나 새로운 데이터 패킷의 최초 워드를 반전시킨다. 도 5에서, 새로운 데이터 패킷의 개시부는 세그먼트(522)에서 제 7바이트에 있고, 마스킹 생성 모듈(610)은 마스크 벡터 (534) 및 반전 마스크 벡터 (536)을 생성하여 세그먼트(522)의 최초 6워드를 마스킹하고 마스킹 모듈(620)에서 워드 7-10 를 반전시킨다.
이 수신된 세그먼트가 새로운 데이터 패킷의 개시부를 갖지 않는 경우에, 상태 PM(730)로 표시했듯이, 마스킹 생성 유닛(610)은 데이터 패킷의 종료가 세그먼트에 있는 지를 결정한다. 데이터 패킷의 종료부가 그 수신된 세그먼트에 없다면, 마스킹 유닛(620)은 세그먼트의 바이트를 마스킹하거나 반전하지 않을 것이다. 그러나, 데이터 패킷이 그 수신된 세그먼트에서 종료하는 경우에, 마스크 생성 모듈(610)은 패킷의 종료부가 세그먼트(PE 상태(740) 및 PD 상태(750))의 최초 워드내에 있는 지를 결정한다.
데이터 패킷의 종료가 세그먼트의 최초 워드내에 있는 경우에, 마스킹 유닛(420)은 상기 워드를 제로로 세팅함에 의해 패킷의 종료에 따르는 워드를 마스크할 수 있고/있거나 데이터 패킷의 최종 워드를 반전시킬 수 있다. 일 실시예에서, 마스킹 유닛(420)은 를 갖는 데이터 패킷의 종료에 따르는 워드를 마스킹할 수 있고 마스크 를 갖는 데이터 패킷의 최종 워드를 반전시킨다.
데이터 패킷의 종료부가 데이터 세그먼트의 최초 워드내에 있는 경우에, IEEE 802.3 또는 다른 알맞은 표준에 따라 처리될 때 반전되는 하나 이상의 바이트가 반전없이 이미 처리될 수 있었는데, 왜냐하면 데이터 패킷의 종료가 반전되야했던 하나 이상의 워드를 포함하는 세그먼트에서 발생하지 않기 때문이다. 그러므로, 데이터 패킷의 종료부가(예를 들어, PE 상태(740) 및 PD 상태(750)에서)세그먼트(412)의 최초 워드내에서 생성하는 경우에, 마스킹 유닛(420)은 패킷의 종료에 따르는 워드를 마스킹한다.
도 4a 내지 도 4b에서, 나머지 처리 유닛(440)은 내부에서 데이터 패킷의 일부를 갖는 최종 세그먼트에 대한 나머지를 계산할 수 있다. 특히, PE 및 PF 상태(740, 760)에서, 세그먼트 제산 유닛(430)은 이미 설명된 방법으로 최종 세그먼트에 대해 나머지를 계산할 수 있다. 나머지 처리 유닛(440)이 부분 나머지를 피드백하는 경우에, 최종 데이터 세그먼트에 대한 세그먼트 제산 유닛(430)에 의해 계산된 나머지가 데이터 패킷의 종료에 따르는 바이트를 대체하는 제로뿐만 아니라 전체 데이터 패킷에 대한 나머지이다. 나머지 처리 유닛(440)은, 패킷의 종료가 될 때마다, 그 나머지를 생성한다. 나머지 처리 유닛(440)이 부분 나머지를 피드백하지 않는 경우에, 나머지 처리 유닛(440)이 로 승산된 라인(441)에서 나머지 다항식을 결정한 후, 그 계산에서의 최종 나머지가 세그먼트 제산 유닛(430)의 출력 포트로부터 가산되어 나머지 다항식 에 대한 시퀀스를 형성한다. PD 상태(750)에서, 마스킹 유닛(420)은 세그먼트 제산 유닛(430, 435)중 어느 하나를 선택하여 최종 패킷의 나머지를 결정하고, 나머지 처리 유닛(440)은 세그먼트 제산 유닛(430, 435)중 어느 하나의 출력을 선택하여 나머지 다항식 에 대한 시퀀스를 결정한다.
도 8을 참조하면, 후방향 계산 유닛(470)은 연속 제로의 효과를 마스킹 다항식 에서 제거함에 의해 나머지 다항식 로부터 CRC 검사 시퀀스 다항식 를 후방향으로 계산하기 위해 구성된다. 특히, 후방향 계산 유닛(470)은 복수의 후방향 계산 모듈(820-0, 820-1, ...., 820-(p-1))를 포함하고, 여기서 각 계산 모듈(820-0, 820-1, ...., 820-(p-1))은, 데이터 패킷의 종료를 포함하는 세그먼트가 라인(445)로부터의 제어 신호로 특정화된 특정량에 의해 더 짧아지는 경우에, 나머지가 얼마인가를 계산하기 위해 구성된다. 예를 들어, 후방향 계산 모듈(820-0)은, 다항식 제산이 세그먼트의 종료전에 1바이트를 정지하는 경우에, CRC 검사 시퀀스가 어떻게 되는 지를 계산하기 위해 구성된다. 일반적으로, 후방향 계산 모듈(820-k)은, 다항식 제산이 세그먼트의 종료전에 바이트를 정지하는 경우에, 검사 시퀀스가 어떻게 되는 지를 계산하기 위해 구성된다.
후방향 계산 모듈( 의 결합을 선택함에 의해, 후방향 계산 유닛(470)은 제로 및 간의 b값에 대한 나머지 다항식 으로부터 CRC 검사 시퀀스 다항식 을 선택적으로 후방향으로 계산할 수 있다. 특히, 도 8에 예시된 실시예에서, 후방향 계산 유닛(470)은 제로로 마스킹된 연속 바이트수의 합인 b를 기반으로 선택된 후방향 계산 모듈( )을 작동 또는 우회하기 위해 동작하는 복수의 멀티플렉서()를 포함한다. 여기서, 후방향 계산 모듈(820-k)이 에 대한 방정식(7)을 구현하는 하드웨어 장치이다.
예를 들어, 세그먼트(528)의 최종 7 바이트가 제로로 마스킹되는 경우에, 패킷의 CRC 나머지 또는 CRC 검사 시퀀스 다항식 (580)이 후방향 계산된 7 바이트이다. 즉, 라인(445)의 신호가 2진수 "00111"를 표시한다. 그러므로, 1 바이트, 2 바이트, 및 4 바이트를 계산하는 후방향에 대응하는 멀티플렉서(830-0, 830-1, ..., 830-2)가 작동되고, 8 바이트 및 16 바이트를 계산하는 후방향에 대한 후방향 계산 모듈이 총 7 바이트로 된 후방향 계산을 생성하기 위해 우회된다.
나머지 에 관한 상기 후방향 계산은 실현가능한 데 왜냐하면 최종 마스킹된 세그먼트의 종료부의 제로가 나머지의 평가에 결정적으로 영향을 미치기 때문이다. 그런 이유로 인해, 실제 CRC 검사 시퀀스는 계산된 나머지 다항식 및 데이터 패킷의 종료 위치로부터 발견될 수 있다. 또한, 후방향 계산 유닛(470)은 세그먼트 제산 유닛(430, 435)으로 하여금 데이터 패킷의 종료 위치와 무관하게 같은 형태로 나머지 계산을 실행한다. 세그먼트 제산 유닛(430, 435)은 연속의 같은 길이의 세그먼트의 시퀀스를 처리하여, 원하는 나머지를 결정하기 위해 더 많은 병렬 또는 직렬 제산 유닛을 필요로 하는 대안의 CRC 인코더에 대해 도 4a의 인코더의 크기 및 제조 비용에 대한 효율을 개선하고 그 크기 및 제조 비용을 감소시킨다.
도 4a를 다시 참조하면, CRC 검사 시퀀스 다항식 에 대한 시퀀스의 후방향 계산 후에, 후방향 계산 유닛(470)은 이전에 설명된 차분 다항식 에 대한 길이 m을 갖는 CRC 검사 시퀀스 또는 길이 m을 갖는 시퀀스를 출력 포트(472)를 경유해 검사 시퀀스 세그먼트 조절 유닛(480)에 출력한다. 후방향 계산 유닛(470)이 데이터 패킷의 예비 부분 위치상의 정보를 출력 포트(474)를 경유해 검사 시퀀스 세그먼트 조절 유닛(480)에 출력한다. 검사 시퀀스 조절 유닛(480)은 위치 정보를 사용하여 지연 라인(469)상의 원래의 데이터 스트림에서 데이터 패킷의 예비 부분을 식별하고, 대응하는 데이터 패킷의 예비 부분이 내부에 CRC 검사 시퀀스를 갖는, 데이터 스트림을 출력 포트(482)에서 생성한다.
최종적으로, 그 CRC 검사 시퀀스가 첨가된 데이터 패킷은 출력 포트(482)로부터 다양하게 적합한 송신기 및 송신 프로토콜(예를 들어, 에서넷, 기가비트 에서넷, 개선된 음성/데이터만)을 경유해 통신 채널로 송신될 수 있다.
데이터 패킷이 그 목적지에 도달할 때, 수신기는 도 4b의 디코더(400B)를 사용할 수 있어서 송신시 발생한 에러를 식별하는 데 사용되는 데이터 패킷에 대한 CRC 나머지를 계산한다. 그 수신된 데이터 패킷이 CRC 코드워드로 되도록 발견되지 않으면, 패킷의 하나 이상의 비트가 송신시 변경될 가능성이 높다.
본 발명이 각종 변형예 및 대안의 형태로 되기 쉽지만, 특정한 실시예는 도면에서 예에 의해 도시되었고 본원에서 상세하게 설명되었다. 그러나, 본 발명이 개시된 특정한 형태로 제한되지 않는다. 오히려, 본 발명은 다음의 첨부된 청구항에 의해 형성된 본 발명의 정신 및 범위내에 있는 모든 변형예, 등가물, 및 대안예를 포함한다.
16 : 채널 410 : 처리 유닛
425 : 부분 나머지 첨가 유닛 440: 나머지 처리 유닛
480: 검사 시퀀스 세그먼트 조절 유닛
620: S 워드로 된 마스킹 모듈
425 : 부분 나머지 첨가 유닛 440: 나머지 처리 유닛
480: 검사 시퀀스 세그먼트 조절 유닛
620: S 워드로 된 마스킹 모듈
Claims (10)
- 인코더 또는 디코더가 공통 요소를 갖지 않은 원래의 세그먼트(disjoint original segments)의 제 1 시퀀스를 처리하는 방법 - 상기 제 1 시퀀스에 데이터 패킷이 위치하며, 상기 제 1 시퀀스의 원래의 세그먼트 각각이 동일한 길이를 가짐 - 으로서,
상기 제 1 시퀀스의 상기 원래의 세그먼트들 중 최초 세그먼트내의 하나 이상의 심벌을 변형함으로써 상기 최초 세그먼트를 변형시키는 단계 - 데이터 패킷의 개시부가 상기 원래의 세그먼트들 중 최초 세그먼트에 위치되고 그 내부의 최초 심벌 뒤에 위치됨 - 와;
상기 제 1 시퀀스의 상기 원래의 세그먼트들 중 최종 세그먼트내의 하나 이상의 심벌을 변형함으로써 상기 최종 세그먼트를 변형시키는 단계 - 데이터 패킷의 종료부가 상기 원래의 세그먼트들 중 최종 세그먼트에 위치되고 그 내부의 최종 심벌 앞에 위치됨 - 와,
공통 요소를 갖지 않은 도출된 세그먼트의 제 2 시퀀스상에서 다항식 제산(polynominal division)을 실행함으로써 나머지(a remainder)를 결정하는 단계 - 상기 제 2 시퀀스의 각 세그먼트가 상기 원래의 세그먼트들 중 하나에 대응하여 그 하나로부터 도출되고, 상기 제 2 시퀀스의 상기 세그먼트가 상기 원래의 세그먼트의 길이를 갖고, 상기 제 2 시퀀스의 상기 도출된 세그먼트들 중 최초 세그먼트는 상기 원래의 세그먼트들 중 상기 변형된 최초 세그먼트이고, 상기 제 2 시퀀스의 상기 도출된 세그먼트들 중 최종 세그먼트는 상기 원래의 세그먼트들 중 상기 변형된 최종 세그먼트임 - 을 포함하는
방법.
- 제 1 항에 있어서,
상기 데이터 패킷의 개시부 및 종료부를 포함하지 않는 각각의 도출 세그먼트는 상기 원래의 세그먼트들 중 대응하는 하나와 동일한
방법.
- 제 1 항 또는 제 2 항에 있어서,
상기 변형시키는 단계들은 상기 데이터 패킷 외부에 있는 상기 원래의 세그먼트의 부분을 마스킹하여 상기 마스킹된 부분이 상기 다항식 제산에 의해 결정된 나머지에 대한 사전결정된 양에 기여하게 되는 단계를 포함하는
방법.
- 제 1 항 또는 제 2 항에 있어서,
상기 변형시키는 단계들은 상기 데이터 패킷 외부에 있는 상기 원래의 세그먼트의 부분을 마스킹하여, 상기 마스킹된 부분이, 상기 데이터 패킷의 순환 리던던시 검사 (cycle redundancy check)가 소멸될(vanish) 때, 상기 다항식 제산에 의해 결정된 나머지에 대한 설정량에 기여하지 않는 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 제 1 시퀀스의 상기 세그먼트들 중 특정한 하나에 있는 상기 데이터 패킷의 종료부에 응답해서 상기 데이터 패킷에 대한 순환 리던던시 검사의 평가값을 상기 제 1 시퀀스의 상기 세그먼트들 중 특정한 하나에 기록하는 단계를 더 포함하는
방법.
- 인코더 또는 디코더가 동일한 길이를 가지며 공통 요소를 갖지 않는 데이터 세그먼트의 시퀀스를 처리하는 방법 - 상기 시퀀스는 특정한 데이터 패킷을 포함함 - 으로서,
상기 데이터 세그먼트들 중 하나의 세그먼트의 일부를 마스킹함으로써 상기 길이의 마스킹된 데이터 세그먼트를 형성하는 단계 - 상기 특정한 데이터 패킷의 일부가 상기 데이터 세그먼트들 중 상기 하나의 세그먼트에 있고 상기 마스킹된 부분 외부에 있으며, 상기 특정한 데이터 패킷의 개시부는 상기 데이터 세그먼트 중 상기 하나의 세그먼트에 있으며 상기 데이터 세그먼트 중 상기 하나의 데이터 세그먼트의 첫 번째 심볼 뒤에 위치됨 - 와;
상기 특정한 데이터 패킷의 개시부/종료부를 변형시킴으로써 상기 길이의 변형된 세그먼트를 형성하는 단계와,
상기 마스킹된 세그먼트 및 상기 변형된 세그먼트의 계산을 수행함으로써 상기 특정한 데이터 패킷에 대해 순환 리던던시 검사를 계산하는 단계를 포함하는
방법.
- 제 6 항에 있어서,
상기 계산된 순환 리던던시 검사를 제로와 비교하는 단계를 포함하고,
상기 순환 리던던시 검사를 계산하는 단계가 상기 데이터 패킷으로써 송신된 다른 순환 리던던시 검사에 적어도 부분적으로 기초하여 검사 시퀀스 값을 계산하는 단계를 포함하는
방법.
- 공통 요소를 갖지 않은 원래의 세그먼트의 제 1 시퀀스에 위치된 데이터 패킷을 처리하는 시스템 - 상기 제 1 시퀀스의 원래의 세그먼트 각각이 동일한 길이를 가짐 - 으로서,
상기 제 1 시퀀스의 상기 원래의 세그먼트들 중 최초 세그먼트에서 하나 이상의 심벌을 변형하고 - 상기 데이터 패킷의 개시부가 상기 원래의 세그먼트들 중 최초 세그먼트에 있고 그 내부에서 최초 심벌 뒤에 있음 - , 상기 제 1 시퀀스의 상기 원래의 세그먼트들 중 최종 세그먼트에서 하나 이상의 심벌을 변형하는 마스킹 유닛 - 상기 데이터 패킷의 종료부가 상기 원래의 세그먼트들 중 최종 세그먼트에 위치되고 그 내부에서 최종 심벌 앞에 있음 - 과,
공통 요소를 갖지 않은 연속 세그먼트의 제 2 시퀀스상에서 다항식 제산을 실행함으로써 나머지를 결정하는 순환 리던던시 검사 계산 유닛 - 상기 제 2 시퀀스의 각 세그먼트가 상기 원래의 세그먼트들 중 하나에 대응하여 그 하나로부터 도출되고, 상기 제 2 시퀀스의 상기 세그먼트가 상기 원래의 세그먼트의 길이를 갖고, 상기 제 2 시퀀스의 상기 도출된 세그먼트들 중 최초 세그먼트는 상기 원래의 세그먼트들 중 상기 변형된 최초 세그먼트이고, 상기 제 2 시퀀스의 상기 도출된 세그먼트들 중 최종 세그먼트는 상기 원래의 세그먼트들 중 상기 변형된 최종 세그먼트임 - 을 포함하는
시스템.
- 제 8 항에 있어서,
상기 마스킹 유닛은 상기 데이터 패킷 외부에 있는 상기 원래의 세그먼트의 일부를 마스킹하기 위해 구성되어 상기 일부가, 상기 데이터 패킷의 순환 리던던시 검사가 소멸될 때, 상기 다항식 제산에 의해 결정된 나머지에 기여하지 않는
시스템.
- 제 9 항에 있어서,
상기 마스킹 유닛은 상기 데이터 패킷의 개시부에서 심벌을 변형함으로써 상기 원래의 세그먼트들 중 상기 최초 세그먼트를 변형시키고 상기 데이터 패킷의 종료부에서 심벌을 변형함으로써 상기 원래의 세그먼트들 중 상기 최종 세그먼트를 변형시키도록 구성되는
시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/612,674 | 2009-11-04 | ||
US12/612,674 US8892983B2 (en) | 2008-11-04 | 2009-11-04 | Method and apparatus for error detection in a communication system |
PCT/US2010/055391 WO2011056932A2 (en) | 2009-11-04 | 2010-11-04 | Method and apparatus for error detection in a communication system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120062019A KR20120062019A (ko) | 2012-06-13 |
KR101354288B1 true KR101354288B1 (ko) | 2014-01-23 |
Family
ID=42242055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127011532A KR101354288B1 (ko) | 2009-11-04 | 2010-11-04 | 통신 시스템에서 에러 검출 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8892983B2 (ko) |
EP (1) | EP2497217A4 (ko) |
JP (2) | JP5717748B2 (ko) |
KR (1) | KR101354288B1 (ko) |
CN (1) | CN102771074B (ko) |
WO (1) | WO2011056932A2 (ko) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102588145B1 (ko) | 2011-01-14 | 2023-10-12 | 지이 비디오 컴프레션, 엘엘씨 | 엔트로피 인코딩 및 디코딩 방식 |
US8838680B1 (en) | 2011-02-08 | 2014-09-16 | Google Inc. | Buffer objects for web-based configurable pipeline media processing |
US8681866B1 (en) | 2011-04-28 | 2014-03-25 | Google Inc. | Method and apparatus for encoding video by downsampling frame resolution |
US9106787B1 (en) | 2011-05-09 | 2015-08-11 | Google Inc. | Apparatus and method for media transmission bandwidth control using bandwidth estimation |
US8661323B2 (en) * | 2011-05-09 | 2014-02-25 | Google Inc. | Method and apparatus for generating packet mask |
CN102325003B (zh) * | 2011-07-14 | 2014-02-12 | 海能达通信股份有限公司 | 数据错误检测的方法及设备 |
US8856624B1 (en) | 2011-10-27 | 2014-10-07 | Google Inc. | Method and apparatus for dynamically generating error correction |
US9490850B1 (en) | 2011-11-28 | 2016-11-08 | Google Inc. | Method and apparatus for decoding packetized data |
US9185429B1 (en) | 2012-04-30 | 2015-11-10 | Google Inc. | Video encoding and decoding using un-equal error protection |
US10034023B1 (en) | 2012-07-30 | 2018-07-24 | Google Llc | Extended protection of digital video streams |
US9172740B1 (en) | 2013-01-15 | 2015-10-27 | Google Inc. | Adjustable buffer remote access |
US9311692B1 (en) | 2013-01-25 | 2016-04-12 | Google Inc. | Scalable buffer remote access |
US9225979B1 (en) | 2013-01-30 | 2015-12-29 | Google Inc. | Remote access encoding |
US20160286011A1 (en) * | 2015-03-26 | 2016-09-29 | Assaf Kasher | Techniques for communicating an end of packet indicator |
CN111064546B (zh) * | 2019-12-10 | 2022-05-31 | 卡斯柯信号有限公司 | 一种基于crc实现信息位与冗余编码安全转换的方法 |
US11706150B2 (en) * | 2021-04-06 | 2023-07-18 | Apple Inc. | Data encoding and packet sharing in a parallel communication interface |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2360177A (en) * | 2000-03-07 | 2001-09-12 | 3Com Corp | Parallel cyclic redundancy checking with last segment padding |
US20030223417A1 (en) * | 2002-06-04 | 2003-12-04 | Masashi Higashida | Method of processing data packets |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5251215A (en) | 1992-01-13 | 1993-10-05 | At&T Bell Laboratories | Modifying check codes in data packet transmission |
JP3029738B2 (ja) | 1992-06-30 | 2000-04-04 | 富士電機株式会社 | 複数ブロック化伝送フレームの誤り検出方法 |
US5473607A (en) * | 1993-08-09 | 1995-12-05 | Grand Junction Networks, Inc. | Packet filtering for data networks |
US6192498B1 (en) * | 1997-10-01 | 2001-02-20 | Globepan, Inc. | System and method for generating error checking data in a communications system |
US7185266B2 (en) * | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
US6405340B1 (en) * | 1999-07-02 | 2002-06-11 | Ericsson Inc. | Flexible method of error protection in communications systems |
US6519737B1 (en) * | 2000-03-07 | 2003-02-11 | International Business Machines Corporation | Computing the CRC bits at a time for data whose length in bits is not a multiple of M |
JP2002141809A (ja) * | 2000-10-31 | 2002-05-17 | Ando Electric Co Ltd | Crc符号演算回路、及びcrc符号演算方法 |
US20020104058A1 (en) * | 2000-12-06 | 2002-08-01 | Yigal Rappaport | Packet switched network having error correction capabilities of variable size data packets and a method thereof |
US6701478B1 (en) * | 2000-12-22 | 2004-03-02 | Nortel Networks Limited | System and method to generate a CRC (cyclic redundancy check) value using a plurality of CRC generators operating in parallel |
US6915473B2 (en) * | 2001-05-14 | 2005-07-05 | Interdigital Technology Corporation | Method and system for implicit user equipment identification |
JP3546959B2 (ja) * | 2001-05-31 | 2004-07-28 | 日本電気株式会社 | Crc演算装置 |
JP3554715B2 (ja) * | 2001-07-31 | 2004-08-18 | アンリツ株式会社 | 誤り検出装置 |
US6928608B2 (en) * | 2001-08-14 | 2005-08-09 | Optix Networks Ltd. | Apparatus and method for accelerating cyclic redundancy check calculations |
AU2002362426B2 (en) * | 2001-09-29 | 2008-09-11 | Lg Electronics Inc. | Method for transferring and/or receiving data in communication system and apparatus thereof |
CA2468919C (en) * | 2001-12-05 | 2010-03-09 | Lg Electronics Inc. | Error detection code generating method and error detection code generator |
US6968492B1 (en) * | 2002-03-28 | 2005-11-22 | Annadurai Andy P | Hardware-efficient CRC generator for high speed communication networks |
US7243289B1 (en) * | 2003-01-25 | 2007-07-10 | Novell, Inc. | Method and system for efficiently computing cyclic redundancy checks |
US7010469B2 (en) * | 2003-09-30 | 2006-03-07 | International Business Machines Corporation | Method of computing partial CRCs |
US7543214B2 (en) * | 2004-02-13 | 2009-06-02 | Marvell International Ltd. | Method and system for performing CRC |
US7266760B1 (en) * | 2004-09-30 | 2007-09-04 | Altera Corporation | Method and apparatus for calculating cyclic redundancy checks for variable length packets |
EP1659727B1 (en) * | 2004-11-19 | 2015-03-25 | ATI International SRL | Iterative decoding of packet data |
EP1802019B1 (de) * | 2005-04-06 | 2008-05-28 | Siemens Aktiengesellschaft | Erkennung von Fehlern bei der Übermittlung von Daten |
WO2007126196A1 (en) * | 2006-04-29 | 2007-11-08 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
US7500170B2 (en) * | 2006-08-14 | 2009-03-03 | Motorola, Inc. | Method and apparatus for error detection in a data block |
KR101286238B1 (ko) * | 2007-08-01 | 2013-07-15 | 삼성전자주식회사 | 데이터 병렬화 수신기 |
US7853857B2 (en) | 2007-09-14 | 2010-12-14 | Motorola Mobility, Inc. | Multi-layer cyclic redundancy check code in wireless communication system |
US8555148B2 (en) | 2007-09-18 | 2013-10-08 | Samsung Electronics Co., Ltd. | Methods and apparatus to generate multiple CRCs |
US8234551B2 (en) * | 2007-11-02 | 2012-07-31 | Broadcom Corporation | Single CRC polynomial for both turbo code block CRC and transport block CRC |
DE102008012523A1 (de) * | 2008-03-04 | 2009-09-10 | Lufthansa Technik Ag | Falttisch |
EP2129028B1 (en) * | 2008-05-06 | 2012-10-17 | Alcatel Lucent | Recovery of transmission errorrs |
EP2117149B1 (en) * | 2008-05-06 | 2011-10-26 | Alcatel Lucent | Recovery of transmission errors |
US8495477B2 (en) * | 2010-02-11 | 2013-07-23 | Lg Electronics Inc. | Digital broadcasting system and method for transmitting and receiving digital broadcast signal |
US8341504B2 (en) * | 2010-03-11 | 2012-12-25 | Microsoft Corporation | Fast and reliable wireless communication |
US8578240B1 (en) * | 2011-01-21 | 2013-11-05 | Juniper Networks, Inc. | CRC computation for packet length not multiple of data path width |
US8671333B2 (en) * | 2011-06-29 | 2014-03-11 | Lsi Corporation | Adaptive encoding and decoding for error protected packet-based frames |
-
2009
- 2009-11-04 US US12/612,674 patent/US8892983B2/en active Active
-
2010
- 2010-11-04 JP JP2012537981A patent/JP5717748B2/ja not_active Expired - Fee Related
- 2010-11-04 WO PCT/US2010/055391 patent/WO2011056932A2/en active Application Filing
- 2010-11-04 CN CN201080049570.XA patent/CN102771074B/zh active Active
- 2010-11-04 KR KR1020127011532A patent/KR101354288B1/ko not_active IP Right Cessation
- 2010-11-04 EP EP10829067.7A patent/EP2497217A4/en not_active Withdrawn
-
2014
- 2014-05-12 JP JP2014098463A patent/JP6382569B2/ja not_active Expired - Fee Related
- 2014-10-07 US US14/508,879 patent/US20150039977A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2360177A (en) * | 2000-03-07 | 2001-09-12 | 3Com Corp | Parallel cyclic redundancy checking with last segment padding |
US20030223417A1 (en) * | 2002-06-04 | 2003-12-04 | Masashi Higashida | Method of processing data packets |
Also Published As
Publication number | Publication date |
---|---|
WO2011056932A3 (en) | 2011-10-27 |
US20100153828A1 (en) | 2010-06-17 |
US8892983B2 (en) | 2014-11-18 |
JP6382569B2 (ja) | 2018-08-29 |
KR20120062019A (ko) | 2012-06-13 |
US20150039977A1 (en) | 2015-02-05 |
EP2497217A4 (en) | 2013-05-01 |
CN102771074A (zh) | 2012-11-07 |
EP2497217A2 (en) | 2012-09-12 |
JP2013510514A (ja) | 2013-03-21 |
CN102771074B (zh) | 2015-08-19 |
WO2011056932A2 (en) | 2011-05-12 |
JP2014180025A (ja) | 2014-09-25 |
JP5717748B2 (ja) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101354288B1 (ko) | 통신 시스템에서 에러 검출 방법 및 장치 | |
JP2013510514A5 (ko) | ||
US8468439B2 (en) | Speed-optimized computation of cyclic redundancy check codes | |
US5440570A (en) | Real-time binary BCH decoder | |
US6530057B1 (en) | High speed generation and checking of cyclic redundancy check values | |
JP4764973B2 (ja) | Crc値の算出装置 | |
US7246294B2 (en) | Method for iterative hard-decision forward error correction decoding | |
CN103380585B (zh) | 输入位错误率推定方法及其装置 | |
EP2974036B1 (en) | Fast cyclic redundancy check computation circuit | |
US8271850B2 (en) | Fast low-density parity-check code encoder | |
CN101795175B (zh) | 数据的校验处理方法及装置 | |
US7539918B2 (en) | System and method for generating cyclic codes for error control in digital communications | |
WO2020072323A1 (en) | Burst error tolerant decoder and related systems, methods and devices | |
US7434150B1 (en) | Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations | |
CN112468161A (zh) | 一种rs高速编码电路 | |
CN108270508B (zh) | 一种循环冗余校验crc实现方法、装置及网络设备 | |
US20170288697A1 (en) | Ldpc shuffle decoder with initialization circuit comprising ordered set memory | |
US11804855B2 (en) | Pipelined forward error correction for vector signaling code channel | |
US6442747B1 (en) | Method of synthesizing a cycle redundancy code generator circuit using hardware description language | |
US8745465B1 (en) | Detecting a burst error in the frames of a block of data bits | |
CN115037415A (zh) | 基于crc的纠错编码的方法、装置、终端 | |
EP2285003B1 (en) | Correction of errors in a codeword | |
US9032277B1 (en) | Parallel low and asymmetric rate Reed Solomon coding | |
US8245103B2 (en) | Arithmetic circuit for concatenated codes and address control method | |
CN113068046A (zh) | Mpeg-2同步字节解码器中伴随式的并行产生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170106 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180119 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |