KR101221915B1 - 데이터 전송방법 - Google Patents
데이터 전송방법 Download PDFInfo
- Publication number
- KR101221915B1 KR101221915B1 KR20107002033A KR20107002033A KR101221915B1 KR 101221915 B1 KR101221915 B1 KR 101221915B1 KR 20107002033 A KR20107002033 A KR 20107002033A KR 20107002033 A KR20107002033 A KR 20107002033A KR 101221915 B1 KR101221915 B1 KR 101221915B1
- Authority
- KR
- South Korea
- Prior art keywords
- code
- size
- block
- code blocks
- blocks
- Prior art date
Links
Images
Classifications
-
- 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/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
- H03M13/091—Parallel or block-wise CRC computation
-
- 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/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0065—Serial concatenated codes
-
- 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/0083—Formatting with frames or packets; Protocol or part of protocol for error control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
본 발명은 무선접속 시스템에서 데이터를 전송하는 방법에 관한 것이다. 본 발명의 실시예들은, 코드블록에 부착될 오류검출부호의 크기를 고려하여 코드블록들의 개수를 구하는 방법들, 코드블록들의 크기를 구하는 방법들, 입력 데이터를 분할하는 다양한 방법들 및 코드블록들을 채널 부호화하는 방법들 등을 개시한다. 본 발명의 실시예들에서 개시된 방법들을 이용하여 효율적으로 데이터를 전송할 수 있다.
Description
본 발명은 무선접속 시스템에서 데이터를 전송하는 방법에 관한 것이다. 또한, 입력 데이터를 오류검출부호의 크기를 고려하여 코드블록으로 분할하는 다양한 방법에 관한 것이다.
데이터를 전송하는 경우에 데이터 전송 효율과 데이터의 신뢰성 있는 전송은 모두 중요한 문제이다. 일반적으로 사용되는 기술에서, 데이터 전송 효율을 높이기 위해 데이터를 분할하여 전송하는 방법과 데이터에 오류가 있는지 여부를 검사하기 위한 오류검출부호를 사용하는 다양한 방법들이 사용되고 있다.
오류제어란 데이터 전송 중에 발생하는 오류를 검출하고 보정하는 메커니즘을 말한다. 오류제어방식은 오류검출 후 재전송(ARQ: Automatic Retransmission reQuest) 방식, 전진오류수정(FEC: Forward Error Correction) 방식 및 후진오류수정(BEC: Backward Error Correction) 방식 등이 있다.
ARQ 기법은 통신회선 상에서 신뢰성 있는 데이터를 전송을 위해 수신측에서 수신긍정확인(ACK) 신호 및 타임아웃이라는 수단으로 오류발생 유무를 점검하고, 송신측은 오류가 발생한 프레임을 재전송하는 오류제어 방식을 말한다. 오류검출 후 재전송 방식은 자동 재전송방식이라고도 불리며, 수신측에서 오류 발생을 점검하고 오류 발생 부분에 대해 재전송을 요구하는 방식이다. 전진오류수정(FEC) 방식은 송신측이 전송할 문자나 프레임에 부가적 정보(Redundancy)를 첨가하여 전송함으로써, 수신측에서 오류를 발견하는 경우 수신측이 부가적 정보를 이용하여 오류검출 및 오류정정을 하는 방식을 말한다. 후진오류수정(BEC) 방식은 오류를 검출할 수 있을 정도의 부가적인 정보를 부가하여 오류발생 데이터에 대해 송신측에 재전송(ARQ)을 요구하는 방식을 말한다.
오류검출은 단지 전송중에 발생한 오류의 존재 여부만을 수신측이 알 수 있도록 하는 기술을 말하며, 오류검출코드는 오류검출기술을 지원하는 코드를 의미한다. 오류검출을 위한 주요 방식으로 패리티검사(Parity Check), 검사합(Checksum), 순환중복검사(CRC) 및 가중치코드 방식 등이 있다.
오류정정코드란 수신기가 전송되는 문자가 무엇인가를 추론할 수 있도록 전송되는 데이터 블록에 충분한 여분의 정보(Redundancy)를 포함하는 부호화(코드화) 방식을 말한다. OSI 계층모델의 관점에서 보면, 주로 데이터링크 계층에서 이와 같은 작업이 이루어진다. 한편, 오류검출코드(Error Detecting Code)는 수신기가 오류가 발생했다는 사실만을 추론가능하게 하여 재전송요구를 할 수 있도록 여분의 정보를 포함시켜 코드화하는 방식이다.
오류정정코드에는 일정길이의 정보(신호)에 일정길이의 부가정보를 부가하여 수신측에서 오류를 정정할 수 있도록 하는 채널 부호인 블록부호(Block Code) 방식과 부호화기가 메모리를 갖고 있어 코드화시킬 때 현재 입력되는 신호에 과거에 입력되었었던 일부 신호를 함께 활용하는 길쌈부호(Convolutional Code) 방식이 있다.
블록부호는 선형부호(Linear Code)로서 해밍부호(Hamming Code) 등이 있고, 순환부호(Cyclic Code)로서 리드-솔로몬(Reed-Solomon) 부호, BCH(Bose Chaudhuri-Hocquenghem) 부호, CRC(Cyclic Redundancy Check) 부호 등이 있다. 길쌈부호로는 비터비 부호(Viterbi Code) 및 터보 부호(Turbo Code) 등이 있다.
패리티 검사란 정보비트 수가 적고 오류 발생 확률이 낮은 경우 가장 일반적으로 사용하는 오류검출방식이다. 패리티 부호는 구현이 간단하여 비동기 통신에 많이 이용되나, 짝수 개의 오류가 발생하면 오류검출이 어려운 단점이 있다. 패리티 검사의 종류에는 패리티 비트를 부호화된 문자의 '1'의 개수가 전부 합하여 홀수가 되도록 정하는 기수(odd) 패리티 검사 방식과 패리티 비트를 부호화된 문자의 '1'의 개수가 전부 합하여 짝수가 되도록 정하는 방식 우수(even) 패리티 검사 방식이 있다.
또한, 순환중복검사(CRC: Cyclic Redundancy Check) 방식은 오류검출방법 중의 하나로 송신측에서 전송된 데이터로부터 다항식에 의해 추출된 결과를 여분의 오류검사필드(FCS: Frame Check Sequence)에 덧붙여 보내면, 수신측에서는 동일한 방법으로 추출한 결과와의 일치성으로 오류검사를 하는 기술이다. CRC는 강력하면서도 하드웨어로 구현하기 쉽다. 송신측에서 전송할 원래 데이터 프레임을 CRC 다항식으로 나누면 나머지 값이 나오는데, 상기 나머지 값이 FCS(Frame Check Sequence)가 된다. FCS를 생성하기 위해서는 나눗셈을 위한 젯수(Divisor)인 CRC 다항식이 필요하다. FCS는 결과 프레임(원래의 데이터 + FCS)이 미리 정의된 다항식에 의하여 정확하게 나누어떨어질 수 있도록 원래의 데이터 프레임의 뒤에 붙여서 송신된다(원래의 프레임에 대해 계산한 FCS를 프레임 끝에 추가). 여기서, 미리 정의된 다항식을 젯수(Divisor) 또는 CRC 다항식(CRC Polynomial)이라고 한다.
수신측에서는 결과 프레임을 수신한 후에 CRC 검사를 한다. 수신측은 수신한 데이터 프레임을 전송시 사용한 것과 같은 CRC 다항식으로 나누어서 나머지를 검사한다. 수신측에서의 오류검출은, 수신단에서 잉여분과 함께 전송된 데이터를 원래의 데이터를 나눈값으로 나누었을 때 나머지가 '0'인지 검사해서 오류를 검출한다. 이때, 나머지가 '0'이 아닌 수가 되면 전송시에 오류가 발생한 것으로 판단한다.
일반적으로 사용되는 CRC 부가 방법 및 데이터 블록 분할 방법은 입력되는 데이터 블록에 하나의 CRC를 부가한 후에 데이터 블록을 분할하여 코드블록의 형태로 전송한다. 이때, 입력되는 데이터 블록에 CRC를 부가한 후 분할하여 전송하는 경우에는, 수신측에서 분할된 모든 블록들을 수신한 후에 순서대로 코드블록들을 조합하고 CRC 확인을 통하여 복구된 데이터 블록에 오류가 있는지를 판단할 수 있다. 따라서, 복구된 데이터 블록의 오류를 판단할 수 있는 시점은 모든 코드블록들이 순서대로 복구된 이후가 되므로 신속한 오류검출을 할 수 없다.
또한, 수신된 원본 데이터 블록의 임의의 위치에 오류가 있다면, 코드블록이 많을수록 수신측 입장에서는 복구에 필요한 처리과정이 부담으로 작용할 수 있다.
또한, 코드블록의 개수 및 그 길이를 계산하는 과정에서 코드블록마다 CRC가 부가되는 것을 고려해야 하는데, 일반적으로 쓰이는 데이터 블록 분할기에서의 코드블록의 개수 및 길이를 계산하는 방법은 코드블록에 CRC가 부가되는 것을 고려하지 않는 문제점이 있다.
본 발명은 상기한 바와 같은 일반적 기술의 문제점을 해결하기 위하여 안출된 것으로서, 효율적인 데이터 전송방법에 관한 것이다.
본 발명의 목적은 코드블록마다 부가되는 오류검출부호의 크기를 고려하여 데이터 블록을 분할하는 다양한 방법을 제공하는 것이다.
본 발명의 다른 목적은, 코드블록들의 개수를 계산하는 다양한 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 오류검출부호의 크기를 고려하여 코드블록마다 데이터를 할당하는 경우 코드블록들의 개수, 코드블록들의 길이 정보 및/또는 오류검출부호의 크기를 고려하여 데이터를 할당하는 다양한 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 상기와 같은 목적들을 토대로 효율적인 데이터 전송방법을 제공하는 것이다.
본 발명은 무선 접속 시스템에서 코드블록을 분할하는 다양한 실시예들을 개시한다. 또한, 본 발명은 오류검출부호의 크기를 고려하여 데이터 블록을 분할하는 방법 및 코드블록에 오류검출부호를 부가하는 방법을 개시한다.
본 발명의 일 실시예로서 무선 접속 시스템에서 데이터를 전송하는 방법은, 데이터에 제 1 오류검출부호를 부착하여 입력비트를 생성하는 단계와 상기 입력비트의 크기(B)가 코드블록들의 최대크기(Z)보다 크면, 상기 입력비트의 크기(B)와 상기 코드블록들의 최대크기(Z) 및 상기 코드블록들 각각에 부착될 제 2 오류검출부호의 크기(L)를 이용하여, 상기 코드블록들의 개수(C)를 계산하는 단계와 상기 코드블록들의 개수(C)와 상기 제 2 오류검출부호의 크기(L) 및 상기 입력비트의 크기(B)를 이용하여 변경된 입력비트의 크기(B' : modified input bit size)를 계산하는 단계와 상기 변경된 입력비트의 크기(B' )를 상기 코드블록들의 개수(C)로 나눈 값에 기반하여, 기 설정된 값으로부터 코드블록들의 크기(K)를 획득하는 단계와 상기 입력비트를 상기 코드블록의 개수(C) 및 상기 획득한 코드블록들의 크기(K)를 갖도록 분할하는 단계와 상기 분할된 입력비트 각각에 상기 제 2 오류검출부호를 부착하여 상기 코드블록들을 생성하는 단계와 상기 코드블록들을 채널코딩 하는 단계를 포함할 수 있다.
이때, 상기 코드블록들의 개수(C)를 계산하는 단계에서, 상기 코드블록들의 개수(C)는 상기 입력비트의 크기(B)를 상기 코드블록들이 가질 수 있는 최대크기(Z)에서 상기 코드블록들에 부착될 제 2 오류검출부호의 크기(L)를 뺀 값으로 나눈 값을 올림한 정수값으로 계산되는 것이 바람직하다.
또한, 상기 일 실시예에서 상기 제 1 오류검출부호 및 상기 제 2 오류검출부호는 서로 다른 다항식을 이용하여 생성되는 것이 바람직하다.
또한, 상기 일 실시예에서, 상기 입력비트의 크기(B)는 상기 트랜스포트 블록의 크기(A)와 상기 제 1 오류검출부호의 크기(L)를 더한 값이고, 상기 코드블록들 각각에 부착될 제 2 오류검출부호는 상기 코드블록들 각각의 오류 여부 검출을 위해 추가적으로 부착되는 것이 바람직하다.
또한, 상기 코드블록들의 개수(C)를 계산하는 단계에서, 상기 입력비트의 크기(B)가 상기 코드블록들이 가질 수 있는 최대크기(Z) 이하이면, 상기 코드블록의 개수(C)는 '1' 로 설정되는 것이 바람직하다.
또한, 상기 변경된 입력비트의 크기(B' )는, 상기 코드블록들의 개수(C)와 상기 코드블록들에 포함될 오류검출부호의 크기(L)를 곱하고 상기 입력비트의 크기(B)를 더하여 계산되는 것이 바람직하다. 이때, 상기 코드블록들의 크기(K)는, 상기 코드블록들의 개수(C) 및 상기 코드블록들의 크기(K)를 곱한 값이 상기 변경된 입력비트의 크기(B' ) 이상인 조건을 만족하는 것이 바람직하다.
또한, 상기 일 실시예에서 상기 코드블록들의 크기(K) 중 제 1 코드블록의 크기(K+)는 상기 기 설정된 값 중 가장 작은 크기를 갖고, 상기 코드블록들의 크기(K) 중 제 2 코드블록의 크기(K-)는 상기 제 1 코드블록보다 작은 크기를 갖는 상기 기 설정된 값 중 가장 큰 크기를 갖는 것이 바람직하다.
또한, 상기 일 실시예에서 상기 제 2 코드블록의 개수(C-)는, 상기 코드블록들의 개수(C)와 상기 제 1 코드블록의 크기(K+)를 곱한 값에서 상기 변경된 입력비트의 크기(B' )를 뺀 값을, 상기 제 1 코드블록의 크기(K+)와 상기 제 2 코드블록의 크기(K-)의 차로 나눈 값을 내림한 정수값으로 계산되는 것이 바람직하다.
또한, 상기 제 1 코드블록의 개수(C+)는, 상기 코드블록들의 개수(C)에서 상기 제 2 코드블록의 개수(C-)를 뺀 값으로 계산될 수 있다.
또한, 상기 일 실시예에서 상기 제 1 코드블록의 개수(C+) 및 상기 제 1 코드블록의 크기(K+)를 곱한 값과 상기 제 2 코드블록의 개수(C-) 및 상기 제 2 코드블록의 크기(K+)를 곱한 값을 더한 값에서, 상기 변경된 입력비트의 크기(B' )를 뺀 값인 채움비트(Filler bit)의 개수(F)를 계산하는 단계와 상기 채움비트를 분할된 상기 코드블록들 중 첫 번째 코드블록에 할당하는 단계를 더 포함하는 것이 바람직하다.
또한, 상기 일 실시예에서 분할된 상기 코드블록들 중 첫 번째 코드블록에는, 채움비트 및 상기 코드블록에 포함될 오류검출부호의 크기에 해당하는 값을 제외한 영역에 데이터를 할당하는 단계와 분할된 상기 코드블록들 중 두 번째 코드블록부터는, 상기 오류검출부호의 크기에 해당하는 값을 제외한 영역에 상기 데이터를 할당하는 단계를 더 포함하는 것이 바람직하다.
이때, 상기 일 실시예에서 상기 첫 번째 코드블록에 데이터를 할당하는 단계는 상기 첫 번째 코드블록에 상기 오류검출부호를 부착하는 단계를 더 포함하는 것이 바람직하다. 또한, 상기 두 번째 코드블록부터 데이터를 할당하는 단계는, 상기 두 번째 코드블록 이하의 코드블록부터 상기 오류검출부호를 각각 부착하는 단계를 더 포함하는 것이 바람직하다.
또한, 상기 일 실시예에서 상기 코드블록들의 최대크기(Z)는 6144 비트인 것이 바람직하다.
본 발명의 다른 일 실시예로서 무선접속 시스템에서 데이터를 전송하는 방법은, 제 1 입력비트에 제 1 오류검출부호를 부착하여 제 2 입력비트를 생성하는 단계와 상기 제 1 입력비트의 크기(A)와 상기 제 1 오류검출부호의 크기(L)를 이용하여 상기 제 2 입력비트의 크기(B)를 계산하는 단계와 상기 제 2 입력비트의 크기(B)가 코드블록들의 최대크기(Z)보다 크면, 상기 제 2 입력비트의 크기(B), 상기 코드블록들의 최대크기(Z) 및 상기 코드블록들 각각에 부착될(attached) 제 2 오류검출부호의 크기(L)를 이용하여, 상기 코드블록들의 개수(C)를 계산하는 단계와 상기 코드블록들의 개수(C), 상기 제 2 오류검출부호의 크기(L) 및 상기 제 2 입력비트의 크기(B)를 이용하여 변경된 제 2 입력비트의 크기(modified input bit size: B' )를 계산하는 단계와 상기 변경된 제 2 입력비트의 크기(B' )를 상기 코드블록들의 개수(C)로 나눈 값에 기반하여, 기 설정된 값으로부터 코드블록들의 크기(K: K+, K-)를 획득하는 단계와 상기 제 2 입력비트를 상기 코드블록들의 개수(C) 및 상기 획득한 코드블록들의 크기(K: K+, K-)를 가지도록 분할하는 단계와 상기 분할된 제 2 입력비트 각각에 상기 제 2 오류검출부호를 부착하여 상기 코드블록들을 생성하는 단계와 상기 코드블록들을 채널코딩 하는 단계를 포함할 수 있다.
본 발명의 기술적 사상에 따르면 다음과 같은 효과가 있다.
첫째, 수신단에서 코드블록들을 수신할 때마다 오류 여부를 판단할 수 있어 효율적인 오류 복구 처리과정을 수행할 수 있는 장점이 있다.
둘째, CRC 부호의 길이를 고려하여 코드블록의 개수를 구하고 코드블록을 분할함으로써, 데이터 블록을 정확하게 분할하고 CRC 부호를 정확하게 부가할 수 있다.
셋째, 본 발명은 데이터 블록을 코드블록들로 분할하는 과정에서, CRC 길이를 고려하여 코드블록들의 개수를 구한 후에 각 코드블록들에 데이터를 할당하는 다양한 방법을 제공함으로써, 데이터의 처리효율을 높일 수 있다.
넷째, 본 발명은 시스템에 입력되는 입력비트 시퀀스의 길이가 시스템에서 분할할 수 있는 최대 크기보다 짧은 경우에는, 불필요하게 입력비트 시퀀스를 분할하지 않고 해당 입력비트를 코드블록으로 구성할 수 있다. 또한, 입력비트의 오류 여부를 검출하기 위한 오류검출부호를 계속 사용할 수 있으므로, 추가적으로 오류검출부호를 다시 부가할 필요가 없다. 따라서, 신속한 코드블록의 처리가 가능하다.
다섯째, 본 발명의 다양한 실시예들을 통해 효율적으로 데이터를 전송할 수 있다.
도 1은 CRC 부가기 및 데이터 블록 분할기와 각 부분에서 수행되는 단계를 나타내는 도면이다.
도 2는 데이터 블록이 코드블록으로 변화하는 과정을 나타내는 도면이다.
도 3은 본 발명의 실시예들 중 하나로서, CRC 길이를 고려한 코드블록 분할방법에 대한 흐름도를 나타내는 도면이다.
도 4는 본 발명의 실시예들 중 하나로서, 코드블록들에 CRC를 부가하는 일례를 나타내는 도면이다.
도 5는 본 발명의 실시예들 중 하나로서, 코드블록들에 CRC를 부가하는 다른 일례를 나타내는 도면이다.
도 6은 본 발명의 실시예들 중 하나로서, 부가될 CRC의 크기를 고려한 데이터 블록의 분할 및 CRC의 부가 방법을 나타내는 도면이다.
도 7은 본 발명의 실시예들 중 하나로서, CRC의 크기를 고려하여 데이터 블록이 코드블록으로 변화하는 과정을 나타내는 도면이다.
도 8은 본 발명의 실시예들 중 하나로서, CRC 길이를 고려하여 코드블록을 분할하는 방법을 나타내는 흐름도이다.
도 9는 본 발명의 실시예들 중 하나로서, 코드블록의 개수(C)를 구하는 방법을 나타내는 흐름도이다.
도 10는 본 발명의 실시예들 중 하나로서, 변경된 입력비트의 크기를 이용하여 코드블록을 분할하는 방법을 나타내는 흐름도이다.
도 11은 본 발명의 실시예들 중 하나로서, 코드블록의 개수(C)가 1인 경우를 나타내는 흐름도이다.
도 2는 데이터 블록이 코드블록으로 변화하는 과정을 나타내는 도면이다.
도 3은 본 발명의 실시예들 중 하나로서, CRC 길이를 고려한 코드블록 분할방법에 대한 흐름도를 나타내는 도면이다.
도 4는 본 발명의 실시예들 중 하나로서, 코드블록들에 CRC를 부가하는 일례를 나타내는 도면이다.
도 5는 본 발명의 실시예들 중 하나로서, 코드블록들에 CRC를 부가하는 다른 일례를 나타내는 도면이다.
도 6은 본 발명의 실시예들 중 하나로서, 부가될 CRC의 크기를 고려한 데이터 블록의 분할 및 CRC의 부가 방법을 나타내는 도면이다.
도 7은 본 발명의 실시예들 중 하나로서, CRC의 크기를 고려하여 데이터 블록이 코드블록으로 변화하는 과정을 나타내는 도면이다.
도 8은 본 발명의 실시예들 중 하나로서, CRC 길이를 고려하여 코드블록을 분할하는 방법을 나타내는 흐름도이다.
도 9는 본 발명의 실시예들 중 하나로서, 코드블록의 개수(C)를 구하는 방법을 나타내는 흐름도이다.
도 10는 본 발명의 실시예들 중 하나로서, 변경된 입력비트의 크기를 이용하여 코드블록을 분할하는 방법을 나타내는 흐름도이다.
도 11은 본 발명의 실시예들 중 하나로서, 코드블록의 개수(C)가 1인 경우를 나타내는 흐름도이다.
본 발명은 무선접속 시스템에서 코드블록을 분할하는 방법에 관한 것으로서, 오류검출부호의 크기를 고려하여 데이터 블록을 분할하는 방법 및 코드블록의 개수를 구하는 방법에 관한 것이다.
이하의 실시예들은 본 발명의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성할 수도 있다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.
도면에 대한 설명에서, 본 발명의 요지를 흐릴수 있는 절차 또는 단계 등은 기술하지 않았으며, 당업자의 수준에서 이해할 수 있을 정도의 절차 또는 단계는 또한 기술하지 아니하였다.
본 명세서에서 본 발명의 실시예들은 기지국과 단말 간의 데이터 송수신 관계를 중심으로 설명되었다. 여기서, 기지국은 단말과 직접적으로 통신을 수행하는 네트워크의 종단 노드(terminal node)로서의 의미를 갖는다. 본 문서에서 기지국에 의해 수행되는 것으로 설명된 특정 동작은 경우에 따라서는 기지국의 상위 노드(upper node)에 의해 수행될 수도 있다.
즉, 기지국을 포함하는 다수의 네트워크 노드들(network nodes)로 이루어지는 네트워크에서 단말과의 통신을 위해 수행되는 다양한 동작들은 기지국 또는 기지국 이외의 다른 네트워크 노드들에 의해 수행될 수 있음은 자명하다. '기지국'은 고정국(fixed station), Node B, eNode B(eNB), 억세스 포인트(access point) 등의 용어에 의해 대체될 수 있다. 또한, '이동단말(MS: Mobile Station)'은 단말(Terminal), UE(User Equipment), MSS(Mobile Subscriber Station) 등의 용어로 대체될 수 있다.
또한, 송신단은 데이터 또는 음성 서비스를 전송하는 노드를 말하고, 수신단은 데이터 또는 음성 서비스를 수신하는 노드를 의미한다. 따라서, 상향링크에서는 단말이 송신단이 되고, 기지국이 수신단이 될 수 있다. 마찬가지로, 하향링크에서는 단말이 수신단이 되고, 기지국이 송신단이 될 수 있다.
한편, 본 발명의 이동단말로는 PDA(Personal Digital Assistant), 셀룰러폰, PCS(Personal Communication Service)폰, GSM(Global System for Mobile)폰, WCDMA(Wideband CDMA)폰, MBS(Mobile Broadband System)폰 등이 이용될 수 있다.
본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
본 발명의 실시예들은 무선 접속 시스템들(예를 들어, IEEE 802 시스템, 3GPP 시스템, 3GPP LTE 시스템 또는 3GPP2 시스템) 중 적어도 하나에 개시된 문서들에 의해 뒷받침될 수 있다. 특히, 3GPP TS 36.212 V8.0.0 (2007-09) 내지 3GPP TS 36.212 V8.3.0(2008-05) 문서들은 본 발명의 실시예들을 뒷받침할 수 있다.
이하의 설명에서 사용되는 특정(特定) 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
도 1은 CRC 부가기 및 데이터 블록 분할기와 각 부분에서 수행되는 단계를 나타내는 도면이다.
도 1을 참조하여 일반적으로 사용되는 CRC 부가기 및 데이터 블록 분할기에 대하여 설명한다. 데이터 블록(100)은 필요에 의하여 여러 개의 코드블록(160)으로 나누어질 수 있다. 여기서 코드블록(160)은 입력되는 데이터 블록(100)이 분할되어 생성되는 것을 나타낸다.
개략적으로 사용자가 데이터 블록(100)을 입력으로 하면, CRC 부가기(120)는 데이터 블록에 대하여 CRC를 부가한다. CRC가 부가된 데이터 블록은 데이터 블록 분할기(140)에 의해서 필요한 길이의 데이터 블록으로 나누어지고, 하나 또는 여러 길이의 코드블록(160)을 구성하게 된다. 도 1의 우측 단계별로 살펴본다.
CRC 부가기(120)는 임의의 길이를 갖는 데이터 블록(100)에 CRC를 부가하여 수신측에서 데이터 블록의 오류 검출을 위한 용도로 사용할 수 있도록 한다. 이를 위해 CRC 부가기는 입력되는 데이터 블록을 기반으로 CRC 생성식을 이용하여 임의의 길이의 CRC 패리티 비트를 생성한다(S101). 이후 CRC 부가기는 정방향 데이터 블록에 CRC 패리티 비트를 정방향 또는 역방향으로 부착하여 직렬로 연결된 형태의 출력을 구성한다(S102).
CRC가 부가된 데이터 블록은 데이터 블록 분할기(140)에 의하여 하나 또는 여러개의 코드블록으로 분할된다. 데이터 블록 분할기는 다음과 같은 네 가지 과정을 통해 입력된 데이터 블록을 하나 이상의 코드블록들로 분할한다.
데이터 블록 분할기는 CRC가 부가된 데이터 블록의 크기를 코드블록이 가질수 있는 최대 크기로 나눈 후 올림 한 정수 값으로 코드블록의 개수를 정한다(S103).
데이터 블록 분할기는 상기 S103 단계에서 정해진 코드블록의 개수에 맞추어서 각각의 코드블록의 크기를 계산한다(S104).
상기 S104 단계에서 모든 코드블록의 크기를 합한 값이 CRC가 부가된 데이터 블록의 크기보다 길어지는 경우가 발생할 수 있다. 이런 경우에는 상기 모든 코드블록의 크기를 합한 값에서 CRC가 부가된 데이터 블록의 크기를 뺀 값을 구하고 이를 채움 비트의 길이로 계산한다(S105).
데이터 블록 분할기는 코드블록의 개수와 길이 및 채움 비트의 길이가 정해지면, CRC가 부가된 데이터 블록을 분할하고 각 코드블록에 데이터를 할당한다(S106). 상기 S106 단계에서 코드블록 중 첫 번째 블록의 앞 부분에는 채움비트 및 데이터를 순차적으로 할당하고, 두 번째 블록부터는 다음 데이터를 순차적으로 할당한다.
도 2는 데이터 블록이 코드블록으로 변화하는 과정을 나타내는 도면이다.
도 2에서는 도 1에서의 장치들 및 방법이 사용될 수 있다.
도 2를 참조하면, CRC 부가기(220)에 데이터 블록(200)이 입력된다. CRC 부가기에 의해서 데이터 블록(200)에 CRC 비트가 부가되어 CRC 비트가 부가된 데이터 블록(230)이 생성된다. CRC 비트가 부가된 데이터 블록은 데이터 블록 분할기(240)에 입력되어 코드블록들로 분할된다. 첫 번째 코드블록(260)의 앞 부분에는 채움비트가 할당되며, 나머지 부분에 데이터가 할당된다. 두 번째 코드블록 이후에는 데이터가 순차적으로 할당된다.
본 발명의 실시예들에서는 데이터 블록 분할기에서 코드블록에 부가될 수 있는 바람직한 오류검출부호들 중의 하나로서 CRC를 사용하는 것을 가정한다. 또한, 본 발명의 실시예들에서 사용되는 용어 중 데이터 블록은 데이터 블록 분할기에 입력되는 입력비트로서 제 1 데이터 블록이라 부를 수 있으며, 입력비트가 분할되면 코드블록 또는 제 2 데이터 블록이 생성된다.
<제 1 실시예>
도 3은 본 발명의 실시예들 중 하나로서, CRC 길이를 고려한 코드블록 분할방법에 대한 흐름도를 나타내는 도면이다.
도 3을 참조하면, 데이터 블록(예를 들어, 제 1 데이터 블록, 300)은 데이터 블록 분할기(320)에 입력되어 하나 이상의 코드블록(예를 들어, 제 2 데이터 블록)들로 분할되고, 각각의 코드블록들에 데이터가 순차적으로 할당된다. 각각의 코드블록들은 CRC 부가기(340)에 입력된다. 이때, 데이터 블록은 데이터 블록 자체에 대한 오류검출부호를 이미 포함하고 있을 수 있으며, 오류검출부호의 크기는 24 비트인 것이 바람직하다.
CRC 부가기는 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우(예를 들어, 데이터 블록의 크기(B)가 코드블록이 가질 수 있는 최대 크기(Z)보다 작거나 같은 경우)를 제외하고, CRC를 생성하여 각각의 코드블록들에 부가(attach)한다. 이와 같이 데이터 블록(300)은 데이터 블록 분할기(320) 및 CRC 부가기(340)를 통해 코드블록들(360)로 분할된다. 도 3에서 코드블록(360)은 하나 이상의 분할된 데이터 블록들을 의미한다.
도 3을 참조하면, 데이터 블록(300)이 데이터 블록 분할기(320)로 입력되면, 데이터 블록 분할기는 입력되는 데이터에 대하여 코드블록의 개수(C)를 계산한다. 이때, 데이터 블록 분할기는 최종 코드블록들 각각에 부가될 CRC의 크기(L)를 고려하여 코드블록들의 개수(C)를 계산할 수 있다(S301).
이하에서는 본 발명의 일 실시예에 따라, S301 단계에서 사용되는 코드블록들의 개수(C)를 구하는 다양한 방법들을 설명한다.
본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수를 구하는 제 1 방법을 설명한다.
다음 수학식 1은 코드블록들의 개수(C)를 구하는 일례를 나타낸다.
데이터 블록 분할기는 데이터 블록의 크기(B)를 코드블록이 가질 수 있는 최대 크기(Z)로 나눈 값을 올림한 정수값을 구하여 임시값(C')으로 정한다. 코드블록의 개수(C)는, 상기 임시값(C')과 CRC의 크기(L)를 곱한 값에 데이터 블록의 크기(B)를 더한 값이 임시값(C')과 코드블록이 가질 수 있는 최대 크기(Z)를 곱한 값보다 크면 임시값(C')에 '1'을 더한 정수값으로 결정되고, 그렇지 않으면 임시값(C')으로 결정된다.
한편 다음 수학식 2는 데이터 블록 분할기에 입력되는 데이터 블록의 크기(B)가 코드블록이 가질 수 있는 최대 크기(Z)와 같거나 작은 경우에 사용될 수 있다.
수학식 1 및 수학식 2에서는 코드블록의 개수(C)를 구하기 위해 임시값(C')을 사용하였다. 즉, 코드블록의 개수를 계산하는 과정에서 데이터 블록 분할기(320)에 입력되는 데이터 블록을 코드블록이 가질 수 있는 최대 크기로 나눈값을 올림한 값으로 임시값(C')을 계산함으로써 코드블록의 개수를 정확하게 구할 수 있다.
다음 수학식 3 및 수학식 4를 이용하여 수학식 1 및 수학식 2를 다른 형태로 나타낼 수 있다. 즉, 임시값(C')을 사용하지 않고 바로 코드블록의 개수를 계산하는 방법이다.
한편 다음 수학식 4는 데이터 블록 분할기에 입력되는 데이터 블록의 크기(B)가 코드블록이 가질 수 있는 최대 크기(Z) 이하인 경우에 사용될 수 있다.
본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수를 구하는 제 2 방법을 설명한다.
다음 수학식 5는 변경된 입력비트의 크기(B': modified input bit size)를 이용하여 코드블록들의 개수(C)를 구하는 방법을 나타낸다.
수학식 5를 참조하면, 코드블록의 개수(C)를 구하기 위해 우선 변경된 입력비트의 크기(B')을 구한다. 이때, 데이터 블록의 크기(B)를 코드블록이 가질 수 있는 최대 크기(Z)로 나눈 값을 올림한 정수값에 CRC의 크기(L)을 곱하고 데이터 블록의 크기(B)를 더한 값을 'M'이라 가정한다. 또한, 데이터 블록의 크기(B)를 코드블록이 가질 수 있는 최대 크기(Z)로 나눈 값을 올림한 정수값에 코드블록이 가질 수 있는 최대 크기(Z)를 곱한 값을 'N'이라 가정한다.
만약 'M' 값이 'N' 값보다 크면, 코드블록의 개수(C) 및 길이(K)를 구하기 위한 변경된 입력비트의 크기(B')은 데이터 블록의 크기(B)를 코드블록이 가질 수 있는 최대 크기(Z)로 나눈 값을 올림한 정수값에 '1'을 더한 값에 CRC의 크기(L)를 곱한 후 데이터 블록의 크기(B)를 더한값이 된다.
만약 'M' 값이 'N' 값보다 작으면, 변경된 입력 비트의 크기(B')은 데이터 블록의 크기(B)를 코드블록이 가질 수 있는 최대 크기(Z)로 나눈 값을 올림한 정수값에 코드블록에 포함될 CRC의 크기(L)를 곱한 후 데이터 블록의 크기(B)를 더한값이 된다.
따라서, 코드블록의 개수(C)는 코드블록의 개수 및 길이를 구하기 위한 변경된 입력비트의 크기(B')을 코드블록이 가질 수 있는 최대 크기(Z)로 나눈 값을 올림한 정수값으로 결정될 수 있다.
한편 데이터 블록 분할기에 입력되는 데이터 블록의 크기(B)가 코드블록이 가질 수 있는 최대 크기(Z)보다 작거나 같은 경우에 다음 수학식 6이 사용될 수 있다.
수학식 5 및 수학식 6은 수학식 1 및 수학식 2의 경우와 다르게 임시값(C')을 사용하지 않고 변경된 입력비트의 크기(B')을 사용하여 코드블록의 개수(C)를 구하는 방법을 개시한다. 즉, 코드블록의 개수(C)를 길이를 나타내는 변경된 입력비트의 크기(B')을 이용하여 구할 수 있다.
본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수를 구하는 제 3 방법을 설명한다.
다음 수학식 7은 코드블록들의 개수(C)를 구하는 바람직한 방법 중 또 다른 하나는 다음과 같다.
코드블록들의 개수(C)는 데이터 블록의 크기(B)를 코드블록이 가질 수 있는 최대 크기(Z)에서 오류검출부호의 크기(L)을 뺀 값으로 나눈값을 올림한 정수값으로 결정될 수 있다.
한편 데이터 블록 분할기에 입력되는 데이터 블록(B)의 크기가 코드블록이 가질 수 있는 최대 크기(Z)와 같거나 작은 경우에는 다음 수학식 8이 사용될 수 있다.
상기 수학식 7 및 8은 코드블록의 개수(C)를 구하는 경우에 코드블록에 포함될 코드블록에 대한 오류검출부호의 크기(L)를 고려하여 코드블록의 개수(C)를 구하는 방법을 나타낸다. 즉, 입력되는 데이터 블록의 크기(B)를 코드블록이 가질 수 있는 최대 크기(Z)에서 코드블록에 포함될 오류검출부호의 크기(L)를 뺀 값으로 나눔으로써, 데이터 블록의 크기(B)를 분할할 때 오류검출부호의 크기(L)를 고려할 수 있다. 이를 통해 데이터 블록을 사용자의 요구사항에 따라 정확하게 분할할 수 있다.
본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수(C)를 구하는 제 4 방법을 설명한다.
다음 수학식 9에서는 코드블록들이 가질 수 있는 최대 크기(Z)가 가변할 수 있는 경우를 나타낸다.
데이터 분할기는 데이터 블록의 크기(B)를 코드블록이 가질 수 있는 최대 크기 값(Z)보다 작은 값(Z')으로 나눈 값을 올림한 정수값으로 코드블록의 개수(C)를 결정할 수 있다. Z'값을 산출할 때는 Z에서 자연수 a를 뺄 수 있다. 여기에서 a는 CRC의 크기(L) 또는 시스템 상황에 따라 필요에 의한 크기가 될 수 있다.
한편, 데이터 블록 분할기에 입력되는 데이터 블록(또는, 입력비트)의 크기(B)가 코드블록이 가질 수 있는 최대 크기(Z) 이하인 경우에 다음 수학식 10을 사용할 수 있다.
본 발명의 일 실시예에 따라 상기 S301 단계에서 코드블록들의 개수를 구하는 제 5 방법을 설명한다.
데이터 분할기는 코드블록이 가질 수 있는 최대 크기(Z)를 특정값(x)으로 대체하여, 데이터 블록의 크기(B)를 특정값(x)으로 나눈값을 올림한 정수값으로 코드블록의 개수(C)를 결정할 수 있다.
다음 수학식 11은 코드블록들의 개수(C)를 구하는 일례를 나타낸다.
한편 데이터 블록 분할기에 입력되는 데이터 블록(또는, 입력비트)의 크기(B)가 코드블록이 가질 수 있는 최대 크기(Z) 이하인 경우에 다음 수학식 12가 사용될 수 있다.
상기 수학식 11 및 12는 코드블록이 가질 수 있는 최대 크기(Z)가 가변적인 경우에 사용될 수 있는 방법이다. 즉, 시스템의 상황에 따라 코드블록이 가질 수 있는 최대 크기가 변경될 수 있으며, 이에 유연하게 대처하기 위한 것이다.
다시 도 3을 참조하면, 상기 S301 단계에서 코드블록들의 개수(C)가 결정되면, 코드블록들의 개수(C) 및 변경된 입력비트의 크기(B') 중 하나 이상을 이용하여 각 코드블록의 크기와 특정 길이를 갖는 코드블록의 개수를 계산할 수 있다(S302).
이하에서는 본 발명의 일 실시예에 따라, S302 단계에서 각 코드블록의 크기(K)를 구하는 다양한 방법들에 대하여 설명한다.
코드블록의 크기(K)는 시스템의 요구사항에 따라 다양한 크기를 가질 수 있다. 본 발명의 일 실시예에서는 코드블록의 크기(K)가 균일한 경우 또는 'K+' 및 'K-'의 두 가지 크기를 갖는 경우를 가정한다. 물론, 다양한 형태의 코드블록의 크기를 이용할 수 있음은 자명하다. 본 발명의 실시예들에서 코드블록이란 데이터블록(또는, 입력비트)을 분할하여 생성되는 것으로서, 세그먼트(segment)라고 불릴 수 있다.
상기 S302 단계에서 각 코드블록의 크기가 동일한 경우에 코드블록의 크기(K)를 구하는 제 1 방법에 대하여 설명한다.
수학식 13은 각 코드블록들이 균등한 길이를 갖는 경우에, 각 코드블록들의 길이(K)를 구하는 바람직한 일례를 나타낸다.
수학식 13의 경우는 코드블록의 크기가 모두 균일한 길이를 갖는 경우의 계산 방법을 나타낸다. 즉, 'K'의 길이를 갖는 코드블록은 변경된 입력비트의 크기(B')를 코드블록의 개수(C)로 나눈값을 올림한 정수값으로 계산한다. 이때, 변경된 입력비트의 크기(B')는 코드블록의 개수 및 길이를 구하기 위한 임시값이다.
만약, S301 단계에서 코드블록의 개수 및 길이를 구하기 위한 변경된 입력비트의 크기(B')을 계산하지 않은 경우에는 코드블록의 개수(C)와 코드블록에 포함될 오류검출부호의 크기(L)을 곱한값에 데이터 블록의 크기(B)를 더한 값(C*L+B)을 변경된 입력비트의 크기(B')으로 이용할 수 있다.
S302 단계에서 코드블록의 크기(K)가 특정한 길이(K+ 및 K-)를 갖는 경우에, 제 1 코드블록의 크기(K+)를 구하는 제 2 방법에 대하여 설명한다.
다음 수학식 14는 제 1 코드블록의 크기(K+)를 구하는 바람직한 일례를 나타낸다.
'K+'의 길이를 갖는 코드블록은 이하 표 1에 나타난 K 값을 이용한다. 이때, K 값의 조건은 코드블록의 개수(C)와 K 값을 곱한값이 코드블록의 개수(C)와 오류검출부호의 크기(L)를 곱한값에 입력 시퀀스의 크기(B)를 더한 값보다 크거나 같은 경우를 만족하는 것이다. 또한, K 값의 다른 조건으로서, 코드블록의 개수(C)와 K 값을 곱한 값이 변경된 입력비트의 크기(B') 이상인 경우를 만족하는 경우이다. 즉, 상기 'K+' 값은 수학식 14의 두 가지 조건 중 어느 하나를 만족하는 K 값 중에서 최소값을 가질 수 있다.
수학식 14와 같은 방법을 사용하여 코드블록의 크기를 구하면 오류검출부호의 크기(L)를 고려하여 코드블록의 크기를 구할 수 있으므로, 입력되는 데이터 블록(또는, 입력비트)을 사용자가 원하는 길이로 정확하게 분할할 수 있다.
다음 수학식 15는 제 1 코드블록의 크기(K+)를 구하는 바람직한 다른 일례를 나타낸다.
수학식 15에서 'K+'의 길이를 갖는 코드블록은 이하 표 1에서 다음의 조건을 만족하는 'K'의 최소값을 이용한다. 즉, 코드블록의 개수(C)와 'K' 값에서 오류검출부호의 크기(L)를 뺀 값을 곱한값이 변경된 입력비트의 크기(B') 보다 크거나 같은 경우를 만족하는 가장 작은 'K' 값을 'K+' 값으로 사용한다.
다음 수학식 16은 상기 수학식 15에서 변경된 입력비트의 크기(B')가 코드블록의 총 개수(C) 및 오류검출부호의 크기(L)를 곱한 값에 입력비트의 길이(B)를 더한 값으로 설정되는 경우에 사용될 수 있다.
수학식 16에서 'K+'의 길이를 갖는 코드블록은 이하 표 1에서 나타난 K값을 이용할 수 있다.
다음 표 1은 수학식 13 내지 16에서 사용될 수 있는 'K' 값에 대한 파라미터를 나타낸다.
표 1에서 파라미터 f1 및 f2는 입력 데이터의 길이인 K 값에 따라 달라질 수 있다.
S302 단계에서 코드블록의 크기(K)가 특정한 길이(K+ 및 K-)를 갖는 경우에 'K-' 값을 갖는 코드블록의 크기를 구하는 제 3 방법에 대하여 설명한다.
'K-' 값은 수학식 14 내지 수학식 16 중 어느 하나에서 계산한 'K+' 값보다 작은 K 값 중 최대값으로 설정할 수 있다. 이때, K 값은 표 1의 값을 사용할 수 있다. 다음 수학식 17은 'K-' 값을 구하는 방법을 나타낸다.
표 1에 나타나는 값과 수학식 17을 이용하여 'K-'값을 계산하면, CRC가 부가될 코드블록의 크기를 고려하여, 입력되는 데이터 블록(또는, 입력비트)을 정확하게 분할할 수 있다.
상기 수학식 14 내지 17을 통해 코드블록의 크기가 특정한 길이를 갖는 경우에, 각 코드블록의 크기(K+ 및 K-)를 구하는 방법을 살펴보았다. 이때, 입력되는 데이터 블록을 정확하게 분할하기 위해 각 코드블록의 크기를 갖는 코드블록의 개수(C+ 및 C-)를 구할 필요가 있다.
이하, S302 단계에서 특정 길이(K-)를 갖는 코드블록의 개수(C-)를 구하는 바람직한 방법들에 대하여 설명한다.
다음 수학식 18은 'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)를 구하는 제 1 방법을 나타낸다.
제 2 코드블록들의 개수(C-)는, 전체 코드블록의 개수(C)와 제 1 코드블록의 크기(K+)를 곱한값에서 변경된 입력비트의 크기(B')을 뺀 후, K+와 K-의 차이값(ΔK)으로 나눈값을 내림한 정수값으로 계산할 수 있다. 이때, 상기 변경된 입력비트의 크기(B')은 코드블록의 개수 및 길이를 구하기 위한 임시값이다.
수학식 18을 참조하면, 변경된 입력비트의 크기(B')을 이용하여 'K-'의 길이를 갖는 코드블록의 개수(C-)를 구하면, 코드블록 각각에 포함되는 오류검출부호의 크기(L)를 고려하여 입력되는 데이터블록(또는, 입력비트)을 정확하게 분할할 수 있다. 이를 통해, 사용자가 원하는 길이의 코드블록 개수를 구할 수 있는 장점이 있다.
수학식 18은 다음 수학식 19와 같은 표현 방법으로 나타낼 수 있다.
즉, 수학식 19는 변경된 입력비트의 크기(B')가 코드블록의 개수(C)와 오류검출부호의 크기(L)를 곱한값에 데이터 블록의 크기(B)를 더한 값으로 설정되는 경우를 나타낸다.
상기 S302 단계에서 제 2 코드블록(K-)의 코드블록의 개수(C-)를 구하는 바람직한 제 2 방법을 설명한다.
다음 수학식 20은 'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)를 구하는 일례를 나타낸다.
제 2 코드블록들의 개수(C-)는, 제 1 코드블록의 크기(K+)에서 오류검출부호의 크기(L)를 뺀 값에 코드블록의 개수(C)를 곱한값에서 변경된 입력비트의 크기(B')을 뺀 후, 'K+'와 'K-'의 차이값(D)으로 나눈값을 내림한 정수값으로 계산할 수 있다.
즉, 수학식 20은 제 1 코드블록에 포함될 오류검출부호의 크기(L)를 고려하여 제 2 코드블록의 개수(C-)를 구하는 방법에 관한 것이다.
다음 수학식 21은 수학식 20을 변경된 입력비트의 크기(B')를 이용하여 표현한 경우를 나타낸다. 즉, 변경된 입력비트의 크기가 코드블록의 개수(C)와 오류검출부호의 크기(L)를 곱한값에 데이터 블록의 크기(B)를 더한 값으로 설정되는 경우를 나타낸다.
S302 단계에서 특정 길이(K+)를 갖는 제 1 코드블록들의 개수(C+)를 구하는 방법은 다음 수학식 22와 같다.
수학식 22를 참조하면, 코드블록의 총 개수(C)에서 수학식 19 내지 수학식 21에서 계산한 제 2 코드블록들의 개수(C-)를 빼면, 'K+'를 갖는 코드블록들의 개수(C+)를 구할 수 있다.
다시 도 3을 참조하면, 상기 S302 단계에서 계산되는 데이터 블록들의 길이(K)는 서로 균등하거나 서로 다른 특정한 길이(예를 들어, K+ 또는 K-)를 가질 수 있으며, 이는 시스템의 요구사항에 따라 결정될 수 있다.
데이터 블록을 분할하는 과정에서, 모든 코드블록들의 길이를 합한 값이 코드블록의 개수(C) 및 길이(K)를 구하기 위한 변경된 입력비트의 크기(B')보다 커지는 경우가 발생할 수 있다. 이런 경우에는 모든 코드블록들의 길이를 합한 값에서 상기 변경된 입력비트의 크기(B')의 차에 해당하는 채움비트의 길이(F)를 계산한다(S303).
채움비트는 입력되는 데이터 블록을 분할하여 생성되는 각 코드블록에 오류검출부호를 붙이는 경우, 최초 입력되는 데이터 블록과 각 코드블록의 총 길이를 같도록 하기 위한 것이다. 이때, 코드블록의 개수(C)가 '0'인 경우에는 채움비트의 길이(F) 또한 '0'이 된다.
이하, S303 단계에서 채움비트의 길이(F)를 구하는 방법들에 대하여 설명한다.
채움비트의 길이(F)는 코드블록의 개수(C)에 코드블록의 크기(K)를 곱한값에서, 변경된 입력비트의 크기(B')을 빼서 계산할 수 있다.
다음 수학식 23은 채움비트의 길이(F)를 구하는 제 1 방법을 나타낸다.
수학식 23은 입력되는 데이터 블록이 모두 같은 길이의 코드블록들로 분할되는 경우에 채움비트를 구하는 방법을 나타내는 것이다.
다음 수학식 24는 상기 수학식 23을 입력비트의 크기(B')를 이용하여 나타낸 것이다.
S303 단계에서 채움비트의 길이(F)를 구하는 제 2 방법은 다음과 같다.
다음 수학식 25는 채움비트의 길이(F)를 구하는 바람직한 방법의 일례를 나타낸다. 즉, 수학식 25는 입력되는 데이터 블록(또는, 입력비트)이 특정 길이(예를 들어, K+ 또는 K-)를 갖는 경우에 채움비트를 계산하는 방법을 나타낸다.
채움비트의 길이(F)는 모든 코드블록들의 길이의 합에서 코드블록의 개수 및 길이를 구하기 위한 변경된 입력비트의 크기(B')을 빼서 계산할 수 있다. 즉, 특정 길이를 갖는 제 1 코드블록의 개수(C+) 및 제 1 코드블록의 크기(K+)를 곱한값과 제 2 코드블록의 개수(C-) 및 제 2 코드블록의 크기(K-)를 곱한값을 더한 값에서 변경된 입력비트의 크기(B')을 뺀값으로 채움비트(F)를 계산할 수 있다.
수학식 25를 이용하면, 입력되는 데이터 블록이 분할되어 생성되는 코드블록들의 길이가 다양한 경우에도 본 발명의 실시예를 적용할 수 있다. 또한, 오류검출부호가 포함되는 경우의 채움비트를 계산할 수 있으므로, 더욱 정확하게 코드블록들을 생성할 수 있다.
다음 수학식 26는 상기 수학식 25에서 변경된 입력비트의 크기(B')이 코드블록들에 포함되는 오류검출부호(L)의 길이와 코드블록의 총 개수(C)를 곱한값에 입력되는 데이터 블록(또는, 입력비트)의 길이(B)를 곱한 값으로 설정되는 경우를 나타낸다.
다시 도 3을 참조하면 코드블록들의 개수, 코드블록들의 길이 및 채움비트의 길이가 결정되면 데이터 블록 분할기(320)는 코드블록들에 순차적으로 데이터를 할당할 수 있다(S304).
만약 S304 단계에서, 데이터 블록(300)이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우에는, 데이터 블록에(300) 데이터가 할당된 후 CRC 부가기(340)를 거치지 않는다. 이때는, 입력되는 데이터 블록(300)이 코드블록(360)이 가질 수 있는 최대 크기보다 작거나 같은 경우이다. 따라서, 데이터 블록 분할기(320)에서 데이터 블록(300)이 분할되고, 분할된 데이터 블록 각각에 CRC가 부가되는 단계가 생략된다. 즉, 입력되는 데이터 블록(300)이 바로 코드블록(360)으로 사용된다. 그러므로, 상기 코드블록(360)에는 데이터 블록(300)에 원래 포함된 CRC만이 존재하고, CRC 부가기(340)에서 생성된 CRC를 다시 부가할 필요가 없다.
코드블록들에 데이터가 할당되면, 코드블록들은 CRC 부가기(340)에 입력된다. CRC 부가기(340)는 코드블록들을 기반으로 CRC 생성식을 이용하여 임의 길이의 CRC 패리티 비트를 생성한다(S305).
CRC 부가기는 상기 S305 단계에서 생성한 CRC 패리티 비트를 코드블록들의 뒷부분에 정방향 또는 역방향의 순서대로 부착한다. 이를 통해, 최종적으로 CRC 부호가 부가된 코드블록들이 생성된다(S306).
<제 2 실시예>
도 4는 본 발명의 실시예들 중 하나로서, 코드블록들에 CRC를 부가(attach)하는 일례를 나타내는 도면이다.
도 4에서 데이터 블록(제 1 데이터 블록, 400)이 데이터 블록 분할기(420)에 입력되어 코드블록(제 2 데이터 블록)들로 분할되고, CRC 길이가 고려된 코드블록들(430)이 CRC 부가기(440)에 입력되어 CRC가 부가된 코드블록(460)이 생성되는 것은 도 3의 방법과 유사하다. 다만, 본 발명의 다른 실시예에서는, 도 3의 S304 단계 및 S306 단계에서 차이가 있다.
본 발명의 다른 실시예는 CRC 부가기에 입력되는 CRC 길이가 고려된 코드블록(430)의 길이와 출력되는 CRC가 할당된 코드블록(460)의 길이가 같은 경우이다. 이는 CRC 부가기에 입력되는 코드블록의 크기에 CRC의 크기가 포함되어 있는 경우를 나타낸다. 따라서, 데이터 블록 분할기는 입력되는 데이터에 대하여 코드블록들의 개수 및 길이를 계산할 때 코드블록 내에 부가될 CRC 부호의 길이를 고려하는 것이 바람직하다.
코드블록들의 개수(C), 코드블록들의 길이(K) 및 채움비트의 길이(F)가 결정되면, 데이터 블록 분할기(420)는 코드블록들에 순차적으로 데이터를 할당한다. 이때, 코드블록들 중 첫 번째 블록에는 채움비트와 데이터를 할당한다.
다만, 본 발명의 다른 실시예에서는 코드블록들에 데이터를 할당하는 경우에 CRC 부가기에서 부가될 CRC의 크기(L)를 고려하여 데이터를 할당한다. 따라서, 첫 번째 코드블록에는 채움비트와 데이터가 할당되고, 그 뒤에 소정의 CRC 부호의 길이만큼 '0' 또는 '1'의 값이 비트별로 할당되어 CRC 영역을 나타낼 수 있다. 다만, CRC 영역을 나타낼 뿐 CRC 영역에 CRC 부호가 부가된 것은 아니다.
두 번째 코드블록부터 마지막 코드블록까지는 순차적으로 데이터가 할당된다. 또한, 각 코드블록마다 CRC 영역을 나타내는 '0' 또는 '1'로 구성된 값이 비트별로 할당되어 CRC 영역을 확보한다.
CRC 부가기에서는 입력되는 코드블록들에 CRC 부호를 부가한다. 이때, 코드블록들에 포함된 '0' 또는 '1'로 채워진 CRC 영역이 있는데 이 영역만큼의 CRC 패리티 비트를 생성하고, 정방향 또는 역방향의 순서로 CRC 패리티 비트를 부착한다. 이 과정은 코드블록들 개수만큼 반복하여 수행된다. 이때, CRC 부호의 길이(L)은 바람직하게 24 비트의 길이를 가질 수 있다.
상술한 방법을 통해 임의의 길이를 갖는 데이터 블록은 데이터 블록 분할기(420) 및 CRC 부가기(440)를 거쳐서 CRC가 부가된 코드블록들로 나누어진다.
다만, 데이터 블록(400)이 코드블록이 가질 수 있는 최대 크기보다 작거나 같은 경우에는 데이터 블록 분할기(420) 및 CRC 부가기(440)의 단계를 통과하지 않는다. 즉, 데이터 블록(400)이 오류검출부호(CRC)를 포함하는 하나의 코드블록으로 구성되는 경우에는, 데이터 블록(400)이 이미 CRC 부호를 포함하고 있으므로 데이터 블록(400)에 데이터만 할당되고 CRC 부가기에서 CRC 부호가 다시 부가되지 않는다.
본 발명의 일 실시예에 따른, CRC 부가기에 입력되는 코드블록을 구성하는 경우 CRC 길이가 코드블록에 포함되는 구체적인 일례는 다음과 같다.
표 2는 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 3은 입력되는 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우 및 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 2 및 표 3에서 사용되는 주요 파라미터는 다음과 같다. 'F'는 채움비트의 길이를 나타내며, 데이터 블록 분할기의 출력을 나타내는 파라미터는 'Ork'이다. 이때 'r'은 코드블록의 번호를 나타내며, 'k'는 r 번째 블록의 비트 번호를 나타내는 파라미터이다.
코드블록의 크기는 'K+' 및 'K-'의 두 가지 길이를 갖는 것으로 가정한다. 이때, 'K-'는 'K+'값보다 작은 코드블록의 크기를 나타낸다. 'C+'및 'C-'는 특정 코드블록의 개수를 나타내는 파라미터로서, 각각 'K+' 및 'K-'의 길이를 갖는 코드블록의 개수를 나타낸다. 상기 표 2 및 표 3에 포함되는 파라미터 중 'L'은 코드블록당 부가될 CRC의 크기를 나타내고, 'Kr'은 코드블록에 적용될 길이를 나타내는 파라미터이다.
CRC 길이를 고려하여 생성되는 코드블록에 CRC를 부가하는 일례는 다음 수학식 27과 같다.
만약, 데이터 블록의 크기(B)가 코드블록이 가질 수 있는 최대 크기(Z) 이하인 경우에는, CRC의 크기(L)를 고려하여 생성되는 코드블록에 대해 CRC를 부가하는 일례는 다음 수학식 28과 같다.
CRC 부가를 위한 파라미터를 계산하면, 코드블록에 적용되는 길이는 Kr이고, 코드블록당 부가될 CRC의 크기는 L을 가정한다. 이때, 입력되는 입력비트는 Or0, Or1, Or2,...,OrKr-1로 구성될 수 있다. 또한, CRC 패리티 비트는 pr0, pr1, pr2,...,prL-1로 구성될 수 있다. 이때, CRC 패리티 비트는 입력비트들을 기반으로 CRC 생성식을 이용하여 생성될 수 있다. 또한, CRC가 부가된 후의 비트들은 Or0, Or1, Or2,...,OrKr-1로 구성될 수 있고, Cr0, Cr1, Cr2,..., CrKr-1로 구성될 수 있다. 즉, 같은 공간에 구성되거나 다른 공간에 구성될 수 있다. 또한, 시스템의 요구 사항에 따라 CRC 패리티 비트는 코드블록의 정방향 또는 역방향으로 부가될 수 있다.
<제 3 실시예>
도 5는 본 발명의 실시예들 중 하나로서, 코드블록들에 CRC를 부가하는 다른 일례를 나타내는 도면이다.
도 5에서는 CRC 부가기(540)에 입력되는 코드블록(530)의 길이가 출력되는 코드블록(560)의 길이에서 CRC의 크기(L)를 뺀 값을 갖는 경우를 나타낸다. 데이터 블록(제 1 데이터 블록, 500)을 분할하기 위한 데이터 블록 분할기의 동작은 도 3 및 도 4의 방법과 유사하지만, 코드블록(제 2 데이터 블록)에 데이터를 할당하는 방법과 CRC 부호가 부가된 블록을 생성하는 방법은 도 3 및 도 4의 경우와 차이가 있다.
즉, 데이터 블록을 분할하는 경우에 CRC 길이를 고려한다는 면에서는 유사하나, 도 4의 경우와 다르게 도 5에서는 CRC 부가기에 입력되는 코드블록들의 길이에는 CRC 영역이 확보되지 않은 경우이다.
도 5를 참조하면, 원본 데이터 블록(500)이 데이터 블록 분할기(520)에 입력되어 코드블록(530)으로 분할되고, 코드블록(530)이 CRC 부가기(540)에 입력되어 CRC 비트가 부가된 코드블록(560)이 생성된다.
도 5에서 데이터 블록(500)이 데이터 블록 분할기(520)로 입력되면, 데이터 블록 분할기에서는 부가될 CRC 길이를 고려하여 코드블록의 개수(C) 및 코드블록의 크기(K)를 계산한다. 또한, 코드블록의 개수(C) 및 길이(K)를 이용하여 채움비트(F)를 계산한다. 데이터 블록 분할기는 코드블록들(530) 중 첫 번째 블록에 채움 비트 및 데이터를 할당한다. 이때, 데이터는 코드블록의 크기에서 CRC 길이(L)를 제외한 길이만큼 순차적으로 할당된다. 또한, CRC 길이(L)는 바람직하게는 24 비트의 길이를 가질 수 있다.
또한, 데이터 블록 분할기는 두 번째 코드블록에 코드블록의 크기에서 CRC 길이를 제외한 길이만큼 데이터를 순차적으로 할당하고, 데이터를 할당하는 과정은 나머지 코드블록의 개수만큼 반복된다. 데이터를 할당하는 과정을 통해 CRC 부가기로 입력되는 코드블록들을 구성한다.
즉, 데이터 블록 분할기에서 계산된 코드블록의 개수(C) 값은 CRC 부가기로 전달되고, CRC 부가기에서 코드블록들에 CRC를 부가할 때 사용된다. CRC 부가기에 입력되는 코드블록들의 크기(K)가 균등한 경우를 가정할 때, 입력되는 데이터 블록(530)의 크기는 코드블록의 크기(K)에서 CRC 부호의 크기(L)를 뺀 값에 코드블록의 개수(C)를 곱한값 또는 코드블록의 크기(K)에서 CRC 부호의 길이(L)를 뺀 값을 갖는 코드블록 길이의 합으로 구할 수 있다.
도 5에서 설명한 본 발명의 일 실시예에 따라 CRC 부가기에 입력되는 데이터 블록(530)의 전체 크기를 구하면, 도 4의 방법에 비하여 각 코드블록에 부가될 총 CRC 길이만큼 작은 크기를 갖는 것을 확인할 수 있다.
도 5를 참조하면, CRC 부가기는 입력되는 코드블록들과 코드블록의 개수 정보를 기반으로 CRC 생성식을 이용하여 임의 길이의 CRC 패리티 비트를 생성한다. 또한, CRC 부가기는 각 코드블록의 뒷부분에 패리티 비트를 정방향 또는 역방향의 순서로 부착한다.
도 5를 통해 설명한 방법을 이용하면, 임의의 길이를 갖는 데이터 블록은 데이터 블록 분할기와 CRC 부가기를 거쳐서 CRC가 부가된 코드블록으로 구성된다.
다만, 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성이 되는 경우에는 데이터가 할당된 후에, CRC 부가기(540)의 단계를 거치지 않는다. 즉, 데이터 블록의 크기가 코드블록이 가질 수 있는 최대 크기보다 작거나 같으면, 데이터 블록이 분할될 필요가 없으며, 이때는 데이터 블록에 원래 포함되어 있는 CRC를 이용하면 되므로 다시 CRC 부가기를 통해 CRC를 중복해서 부가할 필요가 없는 것이다.
본 발명의 다른 실시예에 따른, CRC 부가기에 입력되는 코드블록을 구성시, CRC 길이가 코드블록 생성시에 고려되지만 코드블록에 포함되지 않는 경우의 구체적인 일례를 설명한다.
다음 표 4는 CRC 길이를 고려하여 생성되지만 CRC 길이는 포함되지 않는 코드블록의 구성식을 나타낸다.
다음 표 5는 데이터 블록이 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우에, CRC 부호의 길이를 고려하여 생성되지만 CRC 길이는 포함되지 않는 경우의 코드블록의 구성식을 나타낸다.
표 4 및 표 5에서 사용되는 주요 파라미터는 다음과 같다. 'F'는 채움비트의 길이를 나타내며, 데이터 블록 분할기의 출력을 나타내는 파라미터는 'Ork'이다. 이때 'r'은 코드블록의 번호를 나타내며, 'k'는 r 번째 블록의 비트 번호를 나타내는 파라미터이다.
코드블록의 크기는 'K+'및 'K-'의 두 가지 길이를 갖는 것으로 가정한다. 이때, 'K-'는 'K+' 값보다 작은 코드블록의 크기를 나타낸다. 'C+' 및 'C-'는 코드블록의 개수를 나타내는 파라미터로서, 각각 'K+' 및 'K-'의 길이를 갖는 코드블록의 개수를 나타낸다. 상기 표 4 및 표 5에 포함되는 파라미터 중 'L'은 코드블록당 부가될 CRC의 크기를 나타내고, 'Kr'은 코드블록에 적용될 길이를 나타내는 파라미터이다.
도 5를 참조하면, CRC 길이를 고려하여 생성되지만 CRC 길이는 포함되지 않는 코드블록을 구성하고, 상기 코드블록에 CRC를 부가하기 위해 상기 수학식 27을 이용할 수 있다.
또한, 데이터 블록이 분할되지 않고 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우에, CRC 길이를 고려하여 생성되지만 CRC 길이는 포함되지 않는 코드블록을 구성하고, 상기 코드블록에 CRC를 부가하기 위해 수학식 28을 이용할 수 있다.
또한, CRC가 부가된 후의 비트들은 Or0, Or1, Or2, ..., OrKr-1로 구성될 수 있고, 또는 Cr0, Cr1, Cr2, ..., CrKr-1로도 구성될 수 있다. 즉, 같은 공간이나 다른 공간에 구성될 수 있다.
<제 4 실시예>
도 6은 본 발명의 실시예들 중 하나로서, 부가될 CRC의 크기(L)를 고려한 데이터 블록의 분할 및 CRC의 부가 방법을 나타내는 도면이다.
도 6은 임의의 길이를 갖는 데이터 블록(제 1 데이터 블록, 600)을 기능모듈(데이터 블록 분할 및 CRC 부가기, 620)에 입력하여 코드블록(제 2 데이터 블록, 640)을 생성하는 방법을 나타낸다. 기능모듈(620)은 데이터 블록 분할 및 오류검출부호를 부가하는 기능을 동시에 수행한다. 이때, 데이터 블록(600)은 기능모듈에 입력되기 전에 미리 데이터 블록 자체에 대한 오류검출부호를 포함할 수 있다.
도 6을 참조하면, 데이터 블록(600)이 기능모듈(620)에 입력되면, 기능모듈은 코드블록에 부가될 CRC 크기(L)를 고려하여 코드블록의 개수(C)를 계산할 수 있다(S601). 또한, 기능모듈은 코드블록의 개수(C)를 이용하여 코드블록의 크기(K)를 계산할 수 있다(S602). 또한, 기능모듈은 코드블록의 개수 및 길이를 이용하여 채움비트의 길이(F)를 계산할 수 있다(S603).
상기 S601 내지 S603 단계에서 사용되는 코드블록의 개수(C) 및 길이(K)를 계산하는 방법과 채움비트(F)를 계산하는 방법은 도 3 내지 도 5에서 사용한 방법 중 하나 이상을 이용할 수 있다. 다만, 도 6에서 설명하는 코드블록들에 데이터를 할당하고 CRC 부호를 할당하는 단계(S604)는 도 3 내지 도 5에서 설명한 방법과 차이가 있다. 이때, CRC 부호의 크기(L)는 바람직하게 24 비트의 길이를 가질 수 있다.
도 6을 참조하면, 본 발명의 또 다른 실시예에서 코드블록들에 데이터 및 CRC 부호를 할당하는 S604 단계는 다음과 같다.
첫 번째 코드블록의 앞 부분에 채움 비트(F)를 할당하고, 부가될 CRC 크기(L)를 제외한 길이만큼 데이터를 할당하면서, CRC 부호를 첫 번째 코드블록의 뒷부분에 정방향 또는 역방향의 순서로 부착할 수 있다. 두 번째 코드블록에는, 두 번째 코드블록의 크기에서 부가될 CRC 크기(L)를 제외한 길이만큼 데이터를 할당하고, CRC 부호를 두 번째 코드블록의 뒷부분에 정방향 또는 역방향 순서로 부착할 수 있다. 두 번째 이후의 코드블록에 데이터를 할당하는 과정은 코드블록의 개수(C)만큼 반복할 수 있다. 이때, 각 코드블록의 크기(K)는 서로 동일한 값을 갖거나 또는 특정 값(예를 들어, K+ 또는 K-)을 가질 수 있다. 'K+'값 및 'K-'값은 K 값의 미소 변화량을 나타낸다(S604).도 6의 방법을 이용하면 임의의 길이를 갖는 데이터 블록(B)은 기능모듈(620)을 거쳐서 CRC가 부가된 코드블록(640)으로 구성될 수 있다. 다만, 데이터 블록이 분할되지 않고 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우에는 데이터를 할당한 후에 다시 CRC를 부가하지 않는다. 이때는, 이미 데이터 블록(B)이 CRC 부호(L)를 포함하고 있으므로 중복해서 CRC를 부가할 필요가 없기 때문이다.
코드블록이 생성된 후에는 채널 부호화(channel coding)를 수행할 수 있다. 채널 부호화 (Coding)는 채널을 통한 정보의 전송 중에 수신측이 오류를 검출 및/또는 정정할 수 있도록, 송신측에서 발생시킨 원래의 코드를 변환하는 과정을 말한다. 즉, 제한된 전력 또는 제한된 대역폭을 갖는 채널 환경에서 오류 극복을 위한 과정을 의미한다.
채널 부호화에는 다양한 방법들이 적용될 수 있다. 비 메모리 형태의 선형 부호화(Linear Coding), 순환 부호화(Cyclic Coding) 등이 있으며, 메모리 형태의 테일 비팅 길쌈 부호화(Tail Biting Convolution Coding), 터보 부호화(Trubo Coding) 등이 있다.
도 7은 본 발명의 실시예들 중 하나로서, CRC의 크기를 고려하여 데이터 블록을 코드블록으로 분할하는 과정을 나타내는 도면이다.
도 7을 참조하면, 데이터 블록(제 1 데이터 블록, 700)이 기능모듈(CRC 부가 및 데이터 블록 분할기, 720)에 입력되면, CRC의 크기(L)가 고려되어 코드블록(제 2 데이터 블록, 740)들로 변환되는 것을 알 수 있다. 도 7에서 CRC 부가 및 데이터 블록 분할기에서 데이터 블록을 코드블록으로 변환하는 과정은 도 6의 방법을 사용할 수 있다. 또한, 도 7에서 데이터 블록(700)은 기능모듈에 입력되기 전에 미리 데이터 블록에 대한 CRC 부호를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른, 데이터 블록의 분할과 CRC의 부가가 하나의 기능모듈에서 이루어지는 경우의 구체적 일례를 설명한다.
다음 표 6은 데이터 블록의 분할과 CRC의 부가가 하나의 기능모듈(CRC 부가 및 데이터 블록 분할기, 720)에서 이루어지는 경우, 데이터 블록의 분할 및 CRC 부가를 위한 데이터 블록 구성식을 나타낸다.
다음 표 7은 데이터 블록이 분할되지 않고, 오류검출부호를 포함하는 하나의 코드블록으로 구성되는 경우(즉, C=1인 경우) 및 데이터 블록의 분할과 CRC의 부가가 하나의 기능모듈(720)에서 이뤄지는 경우에 데이터 블록의 분할 및 CRC 부가를 위한 데이터 블록 구성식을 나타낸다.
표 6 및 표 7에서 사용되는 주요 파라미터는 다음과 같다. 'F'는 채움비트의 길이를 나타내며, 데이터 블록 분할기의 출력을 나타내는 파라미터는 'Ork'이다. 이때 'r'은 코드블록의 번호를 나타내며, 'k'는 r 번째 블록의 비트 번호를 나타내는 파라미터이다.
코드블록의 크기는 'K+' 및 'K-'의 두 가지 길이를 갖는 것으로 가정한다. 이때, 'K-'값은 'K+'값보다 작은 코드블록의 크기를 나타낸다. 'C+' 및 'C-'는 코드블록의 개수를 나타내는 파라미터로서, 각각 'K+'및 'K-'의 길이를 갖는 코드블록의 개수를 나타낸다. 또한, 상기 표 6 및 표 7에 포함되는 파라미터 중 'L'은 코드블록당 부가될 CRC의 크기를 나타내고, Kr은 최종 코드블록에 적용될 길이를 나타내는 파라미터이다.
CRC 부가를 위한 파라미터를 계산하면, CRC 패리티 비트는 pr0, pr1, pr2,...,prL-1로 구성될 수 있다. 이때, CRC 패리티 비트는 입력블록들을 기반으로 CRC 생성식을 이용하여 생성될 수 있다. 또한, 데이터 할당 및 CRC가 부가된 후의 비트들은 Or0, Or1, Or2,...,OrKr-1로 구성될 수 있고, Cr0, Cr1, Cr2,..., CrKr-1로 구성될 수도 있다. 즉, 같은 공간이나 다른 공간에서 구성될 수 있다.
<제 5 실시예>
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에서 설명한 방법들을 조합하여 구성할 수 있다.
데이터들이 큰 사이즈를 갖는 경우, 상기 데이터를 효과적으로 전달하기 위해 시스템의 요구사항에 따라 적합한 크기로 나누어 전송할 수 있다. 따라서, 입력되는 데이터 블록을 적절한 방법으로 분할할 필요가 발생한다. 이때, 데이터 블록을 분할하는 방법에 있어서 어떠한 방법으로 분할할 것인지가 중요한 문제가 될 수 있다.
본 발명의 또 다른 실시예에 따른 데이터 블록 분할 및 오류검출부호 부가기는 논리적인 데이터 블록(또는, 입력비트)을 분할하고 CRC 부호를 부가하는 기능을 수행하는 하나의 기능모듈(이하, 기능모듈)이다. 이때, 상기 기능모듈은 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할할 수 있다.
단, 입력비트를 코드블록(또는, 세그먼트)들로 분할하는 경우에는, 코드블록의 크기(K)는 시스템의 요구사항에 따라 최대로 분할할 수 있는 길이(Z)가 정해질 수 있다. 본 발명의 실시예들에서 코드블록이 가질 수 있는 최대 크기(Z)는 바람직하게 6144 비트이다.
기능모듈에 입력되는 입력비트(또는, 데이터 블록)의 시퀀스는 b0, b1, b2,..., bB-1로써 나타낼 수 있다. 이때, 입력비트의 크기는 'B'로서 나타낼 수 있고 B의 크기는 1 이상인 것을 가정한다. 만약, B가 코드블록이 가질 수 있는 최대 크기(Z)보다 크다면, 입력비트를 분할할 수 있다. 이때 CRC 비트의 크기(L)는 바람직하게 24 비트일 수 있다. 즉, 입력비트가 분할되어 생성되는 각 코드블록에는 오류검출부호 중 하나인 24 비트의 CRC가 부가될 수 있다.
만약, 이하 상술할 채움비트(Filler bit)의 길이가 '0'이 아니면, 채움비트는 첫 번째 코드블록의 시작부분에 부가될 수 있다. 또한, 입력비트의 길이(B)가 40 비트보다 작은 경우, 채움비트는 상기 코드블록의 시작부분에 부가된다. 채움비트는 상기 기능모듈의 입력부분에서 영(null)으로 설정된다.
입력비트가 분할되어 생성되는 코드블록들의 총 개수(C)는 다음 수학식 29과 같이 계산하여 구할 수 있다.
수학식 29에서 B는 입력되는 입력비트(또는, 데이터 블록)의 길이를 나타내고, B'는 코드블록의 개수(C)와 오류검출부호(CRC)의 길이(L)를 곱한 값에 입력비트(B)의 길이를 더한 값을 나타낸다. 즉, B'는 코드블록의 개수 및 길이를 구하기 위해 변경된 입력비트의 크기를 나타낸다.
수학식 29를 참조하면, 입력비트의 길이(B)가 코드블록이 가질 수 있는 최대길이(Z) 이하이면, 코드블록에 부가될 오류검출부호의 크기는 0 비트로, 코드블록의 총 개수(C)는 1로 설정될 수 있다. 또한, 변경된 입력비트의 크기(B')의 길이는 입력비트의 길이(B)와 같게 설정될 수 있다.
만약, 입력비트의 길이(B)가 코드블록이 가질 수 있는 최대 크기(Z)보다 크면, 오류검출부호의 크기(L)는 24 비트로, 코드블록의 총 개수(C)는 입력비트의 길이(B)를 코드블록이 가질 수 있는 최대 크기(Z)에서 오류검출부호의 크기를 뺀 값으로 나눈값을 올림한 값으로 설정될 수 있다. 또한, 변경된 입력비트의 크기의 길이(B')는 코드블록의 총 개수(C)와 오류검출부호의 크기(L)를 곱한 값에 입력비트의 길이(B)를 더한 값으로 설정될 수 있다.
코드블록의 개수가 0이 아닌 경우, 상기 기능블록에서 출력되는 코드블록들은 cr0, cr1, cr2, cr3,...,cr(Kr-1)로 나타낼 수 있다. 이때, 'r'은 코드블록의 번호를 나타내고, 'Kr'은 'r'번째 코드블록의 크기를 나타낸다.
상기 기능모듈에서, 수학식 29를 통해 코드블록의 개수를 구한 다음에 각 코드블록의 크기를 구해야 한다. 입력비트는 서로 동일한 길이를 갖는 코드블록들로 분할될 수 있으며, 특정 길이(예를 들어, 'K+' 또는 'K-')를 갖는 코드블록들로 분할될 수 있다. 이때, 시스템 또는 사용자의 요구사항에 따라 코드블록들은 다양한 길이를 가질 수 있음은 자명하다.
본 발명의 다른 실시예에서, 코드블록들 각각의 길이는 'K+' 와 'K-'의 크기를 가질 수 있다. 이때, 코드블록의 개수는 0 개가 아니어야 한다.
본 발명의 실시예에서 제 1 코드블록(또는, 제 1 세그먼트)의 길이는 'K+'로 나타낼 수 있다. 'K+'의 길이는 표 1의 K 값에서 정해질 수 있다. 이때, 코드블록의 총 개수(C)와 코드블록의 크기(K)를 곱한 값이 변경된 입력비트의 크기(B') 이상인 경우를 만족하는 K 값 중 최소의 K 값이 'K+' 값으로 정해질 수 있다.
만약, 코드블록의 개수(C)가 1이라면 'K+'의 길이를 갖는 코드블록의 개수 'C+'는 1개이고, 'K-'의 길이를 갖는 코드블록의 개수'C-'는 0 개이다.
만약, 코드블록의 개수가 두 개 이상(C>1)이라면 제 2 코드블록(또는, 제 2 세그먼트)의 길이(K-)는 표 1의 K 값에서 정해질 수 있으며, 바람직하게는 상기 'K+'보다 작은 K 값들 중 최대값을 갖는 것을 특징으로 한다. 이때, K 값의 변화량(ΔK)은 'K+'와 'K-'의 차이값을 나타낸다.
'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)는, 총 코드블록의 개수(C)와 제 1 코드블록의 크기(K+)를 곱한 값에서 변경된 입력비트의 크기(B')을 뺀 값을 K 값의 변화량(ΔK)으로 나눈 값을 내림하여 구할 수 있다.
또한, 'K+'의 길이를 갖는 제 1 코드블록들의 개수(C+)는, 코드블록의 총 개수(C)에서 제 2 코드블록들의 개수(C-)를 뺀 값으로 계산할 수 있다.
코드블록의 개수(C) 및 코드블록의 크기(K)를 계산하는 과정에서 코드블록에 포함되는 오류검출부호의 크기(L)를 고려하기 때문에, 코드블록들을 모두 합한 길이가 변경된 입력비트의 크기(B')보다 커지는 경우가 발생할 수 있다. 이러한 경우에는 그 차이만큼 채움 비트(Filler bit)를 계산하여 분할된 코드블록의 최초 코드블록에 부가할 수 있다.
본 발명의 또 다른 실시예에서는, 제 1 코드블록의 개수(C+)와 제 1 코드블록의 크기(K+)를 곱한 값과 제 2 코드블록의 개수(C-)와 제 2 코드블록의 크기(K-)를 곱한 값을 더한 값과 변경된 입력비트의 크기(B')과의 차이 값을 채움비트의 크기(F)로 계산할 수 있다.
표 8은 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 8을 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 8에서 cro, cr1, cr2,...,cr(Kr-1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr(L-1))를 계산하는 데 사용될 수 있다.
본 발명의 또 다른 실시예에서, 입력되는 데이터 블록에 미리 포함되어 있는 오류검출부호는 TB CRC(Transport Block CRC 또는 제 1 오류검출부호)로 불릴 수 있으며, 분할될 코드블록들에 포함되는 오류검출부호는 CB CRC(Code Block CRC 또는 제 2 오류검출부호)로 불릴 수 있다. 이때, 입력비트에 TB CRC가 부가되기 전의 초기 데이터 블록을 초기 입력비트 또는 트랜스포트 블록(Transport Block)이라 부를 수 있으며, TB CRC의 크기는 24 비트인 것이 바람직하다.
상술한 제 5 실시예에서 입력되는 데이터 블록이 분할되지 않는 경우(즉, C=1 인 경우)에는 최초의 입력 데이터 블록이 TB CRC를 포함하는 최종 코드블록으로 구성될 수 있다. 다만, 사용자의 요구사항 및 발명의 실시 형태에 따라 TB CRC를 제외하고 CB CRC 부호를 부가하여 최종 코드블록을 구성할 수 있다.
< 제 6 실시예 >
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에서 설명된 방법들을 조합하여 구성할 수 있다.
본 발명의 또 다른 실시예에 따른 논리적인 데이터 블록 분할 및 오류검출부호 부가기는 하나의 기능모듈(이하, 기능모듈)로서, 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할할 수 있다. 단, 입력비트 시퀀스를 코드블록들로 분할하는 경우에는 시스템의 요구사항에 따라 최대로 분할할 수 있는 크기가 정해진다. 본 발명의 실시예들에서 코드블록이 가질 수 있는 최대 크기(Z)는 바람직하게 6144 비트이다.
기능모듈에 입력되는 입력비트(또는 데이터 블록)의 시퀀스는 b0, b1, b2,..., bB-1로써 나타낼 수 있다. 이때, 입력비트의 크기(B)는 1 이상인 것을 가정한다. 만약, 입력비트의 크기(B)가 코드블록이 가질 수 있는 최대 크기(Z)보다 크다면, 입력비트 시퀀스는 분할된다. 입력비트를 분할할 때, 코드블록들에 부가될 오류검출부호의 크기를 고려할 수 있다.
만약, 이하 상술할 채움 비트(Filler bit)의 길이가 '0'이 아니면, 채움 비트는 첫 번째 코드블록의 시작부분에 부가될 수 있다. 채움 비트는 상기 기능모듈의 입력부분에서 항상 영(null)으로 설정된다.
입력비트가 분할되어 생성되는 코드블록들의 개수(C)는 다음 수학식 30을 이용하여 구할 수 있다.
수학식 30에서 B는 입력되는 입력비트(또는, 데이터 블록)의 길이를 나타내고, 변경된 입력비트의 크기(B')은 코드블록의 개수(C)와 오류검출부호(CRC)의 길이(L)를 곱한 값에 입력비트(B)의 길이를 더한 값이다. 즉, B'는 코드블록의 크기(K)를 구하기 위한 임시적인 변경된 입력비트의 크기를 나타낸다.
코드블록의 개수가 0이 아닌 경우, 상기 기능블록에서 출력되는 코드블록들은 cr0, cr1, cr2, cr3,...,cr(Kr-1)로 나타낼 수 있다. 이때, 'r'은 코드블록의 번호를 나타내고, 'Kr'은 'r'번째 코드블록의 크기를 나타낸다.
상기 기능모듈에서, 수학식 30를 통해 코드블록의 개수를 구한 후에 각 코드블록의 크기를 구해야 한다. 코드블록들 각각의 길이는 'K+' 와 'K-'의 크기를 가질 수 있다. 이때, 코드블록의 개수는 0 개가 아니어야 한다.
본 발명의 실시예에서 제 1 코드블록의 크기는 'K+'로 나타낼 수 있다. 'K+'의 길이는 표 1의 K 값에서, 바람직하게는 변경된 입력비트의 크기(B')을 코드블록의 개수(C)로 나눈값보다 크거나 같은 K 값들 중 최소값을 갖는 것을 특징으로 한다.
만약, 코드블록의 개수(C)가 '1'이라면 'K+'의 길이를 갖는 제 1 코드블록의 개수 'C+'는 1개이고, 'K-'의 길이를 갖는 코드블록의 개수는 0 개이다.
만약, 코드블록의 개수가 두 개 이상(C>1)이라면, 제 2 코드블록의 크기(K-)는 표 1의 K 값에서, 바람직하게는 'K+'보다 작은 K 값들 중 최대값을 갖는 것을 특징으로 한다. 이때, K 값의 변화량(Δk)은 'K+'와 'K-'의 차이값을 나타낸다.
'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)는, 총 코드블록의 개수(C)와 제 1 코드블록의 크기(K+)를 곱한 값에서 변경된 입력비트의 크기(B')을 뺀 값을 K값의 변화량(Δk)으로 나눈 값을 내림하여 구할 수 있다. 또한, 'K+'의 길이를 갖는 제 1 코드블록들의 개수(C+)는, 총 코드블록의 개수(C)에서 제 2 코드블록들의 개수(C-)를 뺀 값으로 계산할 수 있다. 이때, CRC 패리티 비트의 길이(L)는 24 비트로 설정할 수 있다.
코드블록의 개수 및 코드블록의 크기를 계산하는 과정에서 오류검출부호의 크기를 고려하기 때문에, 총 코드블록의 크기가 입력비트의 길이보다 커지는 경우가 발생할 수 있다. 이러한 경우에는 그 차이만큼 채움 비트(filler bit)를 계산하여 분할된 코드블록의 최초 코드블록에 부가할 수 있다.
본 발명의 또 다른 실시예에서는, 제 1 코드블록의 개수(C+)와 제 1 코드블록의 크기(K+)를 곱한 값과 제 2 코드블록의 개수(C-)와 제 2 코드블록의 크기(K-)를 곱한 값을 더한 값과 변경된 입력비트의 크기(B')과의 차이 값을 채움 비트로 계산할 수 있다.
표 9는 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 9를 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 8에서 cro, cr1, cr2,...,cr(Kr-1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr(L-1))를 계산하는 데 사용될 수 있다.
< 제 7 실시예 >
본 발명의 도 다른 실시예는 제 1 실시예 내지 제 4 실시예에서 설명된 방법들을 조합하여 구성할 수 있다.
본 발명의 또 다른 실시예에서는 CRC 비트를 부가하고 입력비트를 분할하는 기능을 수행하는 기능모듈을 정의한다. 상기 기능모듈은 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할할 수 있다. 단, 입력비트 시퀀스를 코드블록들로 분할하는 경우에는 시스템의 요구사항에 따라 최대로 분할할 수 있는 크기가 정해 진다. 본 발명의 실시예들에서 코드블록이 가질 수 있는 최대 크기(Z)는 바람직하게 6144 비트이다.
상기 기능모듈에 입력되는 입력비트를 분할하여 생성되는 코드블록들을 b0, b1, b2,...,bB-1로 나타낼 수 있다. 입력비트의 길이(B)가 코드블록이 가질 수 있는 최대 크기(Z)보다 큰 경우에 입력비트의 분할이 수행될 수 있다.
만약, 입력비트의 길이(B)가 0이 아니고, 이하 계산될 채움 비트(filler bit)가 0이 아니면, 채움비트(F)는 상기 분할된 코드블록 중 최초의 코드블록에 부가된다. 또한, 입력비트의 길이(B)가 40 비트보다 작은 경우에는, 채움 비트는 상기 코드블록의 시작부분에 부가된다. 상기 채움비트는 영(null)으로 설정되어야 한다.
다음 수학식 31은 입력비트를 분할하여 생성되는 코드블록들의 개수를 구하는 방법을 나타낸다.
수학식 31을 참조하면, 입력비트의 길이(B)가 코드블록이 가질 수 있는 최대 크기(Z)보다 작거나 같은 경우에는 입력비트의 길이(B)가 변경된 입력비트의 크기(B')과 같다. B가 Z보다 큰 경우에는 변경된 입력비트의 크기(B')을 구하는 방법은 다음과 같다.
만약, B를 Z로 나눈값을 올림한 값에 CRC 비트의 길이(L)를 곱한 후 B를 더한 값이 B를 Z로 나눈 값을 올림한 값에 Z를 곱한 값보다 크면, 변경된 입력비트의 크기(B')은 B를 Z로 나눈 값을 정수로 올림한 값에 1을 더한 후 CRC 비트의 길이(L)를 곱한 값에 B를 더한 값이 되고, 그렇지 않으면 변경된 입력비트의 크기(B')은 B를 Z로 나눈값을 올림한 값에 L을 곱한 값에 B를 더한 값으로 결정된다.
상기 과정을 거쳐서 변경된 입력비트의 크기(B')을 계산하면, 코드블록의 총 개수(C)는 변경된 입력비트의 크기(B')을 코드블록이 가질 수 있는 최대 크기(Z)로 나눈값을 정수로 올림한 값으로 결정될 수 있다. 이때, 상기 기능모듈로부터 분할된 입력비트들은 cr0, cr1, cr2,...,cr(Kr-1)로 나타낼 수 있다. 이때, 'r'은 코드블록의 번호를 나타내고, 'Kr'은 'r' 번째 코드블록의 크기를 나타낸다.
상기 기능모듈에서, 수학식 31을 통해 코드블록의 개수를 구한 다음에 각 코드블록의 크기를 구해야 한다. 코드블록들 각각의 길이는 'K+' 와 'K-'의 크기를 가질 수 있다. 이때, 코드블록의 개수는 0 개가 아니어야 한다.
본 발명의 실시예에서 제 1 코드블록의 크기는 'K+'로 나타낼 수 있다. 'K+'의 길이는 표 1의 K 값에서, 바람직하게는 변경된 입력비트의 크기(B')을 코드블록의 개수(C)로 나눈값보다 크거나 같은 K 값들 중 최소값을 갖는 것을 특징으로 한다.
만약, 코드블록의 개수(C)가 '1'이라면 'K+'의 길이를 갖는 제 1 코드블록의 개수 'C+'는 1개이고, 'K-'의 길이를 갖는 코드블록의 개수는 0 개이다.
만약, 코드블록의 개수가 두 개 이상(C > 1)이라면, 제 2 코드블록의 크기(K-)는 표 1의 K 값에서, 바람직하게는 'K+'보다 작은 K 값들 중 최대값을 갖는 것을 특징으로 한다. 이때, K 값의 변화량(Δk)은 'K+'와 'K-'의 차이값을 나타낸다.
'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)는, 총 코드블록의 개수(C)와 제 1 코드블록의 크기(K+)를 곱한 값에서 변경된 입력비트의 크기(B')을 뺀 값을 K값의 변화량(Δk)으로 나눈 값을 내림하여 구할 수 있다. 또한, 'K+'의 길이를 갖는 제 1 코드블록들의 개수(C+)는, 총 코드블록의 개수(C)에서 제 2 코드블록들의 개수(C-)를 뺀 값으로 계산할 수 있다. 이때, CRC 패리티 비트의 크기는 24 비트로 설정할 수 있다.
코드블록의 개수 및 코드블록의 크기를 계산하는 과정에서 오류검출부호의 크기를 고려하기 때문에, 총 코드블록의 크기가 입력비트의 길이보다 커지는 경우가 발생할 수 있다. 이러한 경우에는 그 차이만큼 채움 비트(filler bit)를 계산하여 분할된 코드블록의 최초 코드블록에 부가할 수 있다.
본 발명의 또 다른 실시예에서는, 제 1 코드블록의 개수(C+)와 제 1 코드블록의 크기(K+)를 곱한 값과 제 2 코드블록의 개수(C-)와 제 2 코드블록의 크기(K-)를 곱한 값을 더한 값과 변경된 입력비트의 크기(B')과의 차이 값을 채움 비트로 계산할 수 있다.
다음 표 10은 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 10을 참조하면, 상기 기능모듈에서 입력비트를 분할하여 코드블록을 구성하는 경우, CRC 길이를 고려하여 코드블록을 구성하는 과정을 알 수 있다.
<제 8 실시예>
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에 설명된 방법들을 조합하여 구성할 수 있다.
데이터가 큰 사이즈를 갖는 경우, 상기 데이터를 효과적으로 전달하기 위해 시스템의 요구사항에 따라 상기 데이터를 적합한 크기로 나누어 전송할 수 있다. 따라서, 입력되는 데이터 블록을 적절한 방법으로 분할할 필요가 발생한다. 이때, 데이터 블록을 분할하는 방법에 있어서 어떠한 방법으로 분할할 것인지가 중요한 문제가 될 수 있다.
본 발명의 또 다른 실시예에 따른 논리적인 데이터 블록 분할 및 오류검출부호 부가기는 하나의 기능모듈(이하, 기능모듈)로서, 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할하는 기능을 갖는다. 단, 입력비트 시퀀스를 코드블록들로 분할하는 경우에는 시스템의 요구사항에 따라 최대로 분할할 수 있는 크기가 정해질 수 있다. 본 발명의 실시예들에서 코드블록이 가질 수 있는 최대 크기는 바람직하게 6144 비트이다.
기능모듈에 입력되는 입력비트(또는, 데이터 블록)의 시퀀스는 b0, b1, b2,...,bB-1로써 나타낼 수 있다. 이때, 입력비트의 크기는 'B'로서 나타낼 수 있고 B의 크기는 1 이상인 것을 가정한다. 만약, B가 코드블록이 가질 수 있는 최대 크기(Z)보다 크다면, 입력비트 시퀀스의 분할은 CRC의 크기가 고려되어 분할될 수 있다. 이때 CRC 비트의 길이는 바람직하게 24 비트일 수 있다. 즉, 입력비트 시퀀스가 분할되어 생성되는 각 코드블록에는 오류검출부호 중 하나인 24 비트의 CRC가 부가될 수 있다.
만약, 이하 상술할 채움 비트(Filler bit)의 길이가 '0'이 아니면, 채움 비트는 첫 번째 코드블록의 시작부분에 부가될 수 있다. 또한, 입력비트의 길이(B)가 40 비트보다 작은 경우, 채움 비트는 상기 코드블록의 시작부분에 부가된다. 채움 비트는 상기 기능모듈의 입력부분에서 영(null)으로 설정된다.
입력비트가 분할되어 생성되는 코드블록들의 개수(C)는 다음 수학식 32와 같이 계산하여 구할 수 있다.
수학식 32에서 'B'는 입력되는 입력비트(또는, 데이터 블록)의 길이를 나타내고, 변경된 입력비트의 크기 B'는 코드블록의 개수(C)와 오류검출부호(CRC)의 길이(L)를 곱한 값에 입력비트(B)의 길이를 더한 값이다. 즉, 코드블록의 개수 및 길이를 구하기 위한 임시적인 변경된 입력비트의 크기를 나타낸다.
코드블록의 개수가 0이 아닌 경우, 상기 기능블록에서 출력되는 코드블록들은 cr0, cr1, cr2, cr3,...,cr(Kr-1)로 나타낼 수 있다. 이때, 'r'은 코드블록의 번호를 나타내고, 'Kr'은 'r'번째 코드블록의 크기를 나타낸다.
상기 기능모듈에서, 수학식 32를 통해 코드블록의 개수를 구한 다음에 각 코드블록의 크기를 구해야 한다. 코드블록들 각각의 길이는 'K+' 와 'K-'의 크기를 가질 수 있다. 이때, 코드블록의 개수는 1개 이상이어야 한다.
본 발명의 실시예에서 제 1 코드블록의 크기는 'K+'로 나타낼 수 있다. 'K+'의 길이는 표 1의 K 값에서, 바람직하게는 변경된 입력비트의 크기(B')을 코드블록의 개수(C)로 나눈값보다 크거나 같은 K 값들 중 최소값을 갖는 것을 특징으로 한다. 만약, 코드블록의 개수가 '1'이라면 'K+'의 길이를 갖는 코드블록의 개수 'C+'는 1개이고, 'K-'의 길이를 갖는 코드블록의 개수는 0 개이다.
만약, 코드블록의 개수가 두 개 이상(C>1)이라면, 제 2 코드블록의 크기(K-)는 표 1의 K 값에서, 바람직하게는 'K+'보다 작은 K 값들 중 최대값을 갖는 것을 특징으로 한다. 이때, K 값의 변화량(ΔK)은 'K+'와 'K-'의 차이값을 나타낸다.
'K-'의 길이를 갖는 제 2 코드블록들의 개수(C-)는, 총 코드블록의 개수(C)와 제 1 코드블록의 크기(K+)를 곱한 값에서 변경된 입력비트의 크기(B')을 뺀 값을 K값의 변화량(ΔK)으로 나눈 값을 내림하여 구할 수 있다. 또한, 'K+'의 길이를 갖는 제 1 코드블록들의 개수(C+)는, 총 코드블록의 개수(C)에서 제 2 코드블록들의 개수(C-)를 뺀 값으로 계산할 수 있다.
코드블록의 개수 및 코드블록의 크기를 계산하는 과정에서 오류검출부호의 크기를 고려하기 때문에, 총 코드블록의 크기가 입력비트의 길이보다 커지는 경우가 발생할 수 있다. 이러한 경우에는 그 차이만큼 채움 비트(Filler bit)를 계산하여 분할된 코드블록의 최초 코드블록에 부가할 수 있다.
본 발명의 또 다른 실시예에서는, 제 1 코드블록의 개수(C+)와 제 1 코드블록의 크기(K+)를 곱한 값과 제 2 코드블록의 개수(C-)와 제 2 코드블록의 크기(K-)를 곱한 값을 더한 값과 변경된 입력비트의 크기(B')과의 차이 값을 채움 비트로 계산할 수 있다.
다음 표 11은 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 11을 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 11에서 cro, cr1, cr2,...,cr(Kr-1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr(L-1))를 계산하는 데 사용될 수 있다.
< 제 9 실시예 >
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에 설명된 방법들을 조합하여 구성할 수 있다.
제 9 실시예에서 설명하는 방법은 제 8 실시예에서 개시하는 방법과 유사하다. 즉, 입력비트를 분할하여 생성되는 코드블록의 개수를 계산하는 방법은 제 8 실시예에서 설명한 방법을 사용할 수 있다. 또한, 채움 비트를 계산하는 방법과 코드블록들의 길이 및 각 길이에 해당하는 코드블록의 개수를 구하는 방법도 제 8 실시예와 유사하다. 이하 분할된 코드블록을 구성하는 방법에서 차이가 있는 부분만을 설명한다.
다음 표 12는 CRC 길이를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 12를 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 12에서 cro, cr1, cr2,...,cr(Kr-1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr(L-1))를 계산하는 데 사용될 수 있다.
<제 10 실시예>
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 4 실시예에서 설명한 방법들을 조합하여 구성할 수 있다.
제 10 실시예는 제 5 실시예와 유사하다. 즉, 제 5 실시예에서 설명한 코드블록의 개수를 구하는 방법, 코드블록의 크기를 구하는 방법, 채움비트를 계산하는 방법은 동일하다. 다만, 각 코드블록에 데이터를 할당함과 동시에 오류검출부호를 부가하는 방법에 있어서 차이가 있다.
다음 표 13은 CRC 부호를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 13에서 기본적인 설명인 표 8에 대한 설명과 유사하다. 따라서 중복되는 부분은 표 8에 대한 설명을 참조하기로 한다.
표 13을 참조하면, 코드블록의 개수(C)가 1개 이상인 경우, 각 코드블록에 CRC 패리티 비트를 할당한다. 이때, 코드블록 시퀀스(예를 들어, cro, cr1, cr2,...,cr(Kr-L-1))는 CRC 패리티 비트(pr0, pr1, pr2,..., pr(L-1))를 계산하는 데 사용될 수 있다. 또한, CRC 패리티 비트는, 코드블록에 포함될 CRC 패리티 비트의 자리에 정방향 또는 역방향으로 부착될 수 있다. 다만, 본 발명의 실시예에서는 CRC 패리티 비트가 정방향으로 부착되는 경우를 가정한다.
다음 수학식 33은 표 13에서 CRC 패리티 비트가 정방향으로 부착되는 것을 나타낸다.
수학식 33을 참조하면, 코드블록에 입력되는 CRC 패리티 비트(pr(k+L-Kr))가 정방향으로 부착되는 것을 알 수 있다. 즉, 하나의 코드블록에 데이터가 입력된 후에 CRC 부호가 입력되고, 다른 코드블록에 데이터가 입력된 후에 CRC 부호가 입력된다. 이러한 과정을 통해 코드블록들에 데이터 및 CRC 부호를 동시에 할당할 수 있다.
도 8은 본 발명의 실시예들 중 하나로서, CRC 길이를 고려하여 코드블록을 분할하는 방법을 나타내는 흐름도이다.
전송하려 하는 데이터들이 큰 사이즈를 갖는 경우, 시스템의 요구사항에 따라 상기 데이터를 적합한 크기로 나누어 전송할 수 있다. 따라서, 입력되는 데이터 블록을 적절한 방법으로 분할할 필요가 발생한다. 이때, 데이터 블록을 분할하는 방법에 있어서 어떠한 방법으로 분할할 것인지가 중요한 문제가 될 수 있다.
본 발명의 바람직한 실시예에 따른 논리적인 데이터 블록 분할 및 오류검출부호 부가기는 하나의 기능모듈(이하, 기능모듈)로서, 입력되는 데이터 블록을 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할하는 기능을 갖는다. 단, 입력비트 시퀀스를 코드블록들로 분할하는 경우에는 시스템의 요구사항에 따라 최대로 분할할 수 있는 크기가 정해질 수 있다.
이때, 데이터 블록은 데이터 블록 자체에 대한 오류검출부호를 미리 포함하고 있을 수 있다. 이때, 데이터 블록에 오류검출부호가 부착되기 전의 초기 데이터블록을 초기 입력비트 또는 트랜스포트 블록(Transport Block)이라 부를 수 있다. 트랜스포트 블록은 상위계층으로부터 전달된 데이터를 의미할 수 있다.
도 8을 참조하면, 기능모듈에 분할하기 위한 데이터 블록(B)이 입력된다(S801). 이때, 데이터 블록(B)에는 이미 제 1 CRC 부호가 포함되어 있을 수 있으며, 제 1 CRC 부호는 입력비트에 대한 오류검출부호를 나타낸다.
기능모듈은 입력된 데이터 블록(또는, 입력비트)의 크기(B)를 코드블록이 가질 수 있는 최대 크기(Z)와 비교한다(S802).
S802 단계에서 B가 Z보다 크면, 기능모듈은 코드블록에 부가될 CRC 길이를 고려하여 입력된 데이터 블록이 분할되어 생성되는 총 코드블록의 개수(C)를 계산할 수 있다(S803).
S803 단계에서 기능모듈은 코드블록의 개수(C)를 계산한 후에 각 코드블록들의 길이(K+ 또는 K-)를 계산한다(S804).
S804 단계에서 각 코드블록들의 길이는 다양한 방법으로 계산될 수 있다. 즉, 제 1 실시예 내지 제 9 실시예에서 설명한 코드블록의 크기를 구하는 방법을 이용할 수 있다. 일례로서 변경된 입력비트의 크기(B')을 구한 후에 이를 이용하여 각 코드블록들의 길이를 계산할 수 있다.
S805 단계에서 기능모듈은 CRC 부호의 길이를 고려하여 코드블록의 개수 및 길이를 구한 후에, 코드블록들의 총 길이에서 변경된 입력비트의 크기(B')을 뺀 차이값을 채움 비트(filler bit)로 사용할 수 있다(S805).
상기 S803 내지 S805 단계를 거쳐 코드블록들의 개수 및 길이를 계산한 후에, 기능모듈에서는 데이터와 제 2 CRC 부호를 할당한다(S806). 이때, 제 2 CRC 부호는 데이터 블록(B)에 포함되어 있는 제 1 CRC 부호와는 다른 역할을 수행한다. 즉, 제 1 CRC 부호는 데이터 블록에 대한 오류검출부호이며, 제 2 CRC 부호는 데이터 블록이 분할되어 형성되는 코드블록들에 대한 오류검출부호이다.
S802 단계에서 입력된 데이터 블록의 크기(B)가 코드블록이 가질 수 있는 최대 크기(Z)보다 작으면 데이터 블록을 분할할 필요가 없다. 즉, 코드블록의 개수(C)는 '1'로 설정되고, 코드블록의 크기를 계산하는 단계와 채움비트를 계산하는 단계가 생략된다. 따라서, 입력된 데이터 블록에 바로 데이터를 할당할 수 있다(S807). 이때, 데이터 블록에 포함된 제 1 CRC 부호를 그대로 사용할 수 있고, 새로이 제 2 CRC 부호를 다시 부가하지 않는다.
도 9는 본 발명의 실시예들 중 하나로서, 코드블록의 개수(C)를 구하는 방법을 나타내는 흐름도이다.
도 9에서 S901 단계 내지 S902 단계는 도 8의 S801 단계 내지 S802 단계와 유사하다. 따라서 이에 대한 설명은 도 8에 갈음한다.
도 9를 참조하면 S901 단계에서 B가 Z보다 긴 경우에 총 코드블록의 개수(C)는, 입력된 데이터 블록의 크기(B)를 코드블록이 가질 수 있는 최대 크기(Z) 및 코드블록에 부가될 제 2 CRC 부호의 길이(L)와의 차이값으로 나눈값을 올림한 값으로 계산할 수 있다(S903).
만약, S902 단계에서 B가 Z보다 짧은 경우에는 입력된 데이터 블록을 분할할 필요가 없으며, 따라서 코드블록의 개수(C)는 1로 설정될 수 있다(S904).
도 10는 본 발명의 실시예들 중 하나로서, 변경된 입력비트의 크기를 이용하여 코드블록을 분할하는 방법을 나타내는 흐름도이다.
전송하려 하는 데이터들이 큰 사이즈를 갖는 경우, 시스템의 요구사항에 따라 상기 데이터를 적합한 크기로 나누어 전송할 수 있다. 따라서, 입력되는 데이터 블록을 적절한 방법으로 분할할 필요가 발생한다. 이때, 데이터 블록을 분할하는 방법에 있어서 어떠한 방법으로 분할할 것인지가 중요한 문제가 될 수 있다.
본 발명의 바람직한 실시예에 따른 논리적인 데이터 블록 분할 및 오류검출부호 부가기는 하나의 기능모듈(이하, 기능모듈)로서, 입력되는 데이터 블록을 적합한 개수로 분할하고 각 코드블록의 크기를 계산하여 데이터를 부가하는 기능을 갖는다.
도 10을 참조하면, 기능모듈에 데이터 블록(즉, 입력비트)이 입력되면, 기능모듈은 데이터 블록을 분할하여 생성되는 코드블록의 개수(C)를 계산한다(S1001). 이때, 데이터 블록에는 이미 제 1 CRC 부호가 포함되어 있을 수 있으며, 제 1 CRC 부호는 입력비트에 대한 오류검출부호를 나타낸다.
기능모듈은 코드블록의 개수(C)를 계산한 후에 각 코드블록의 크기(K)를 구하기 위해 변경된 입력비트의 크기(B')을 계산한다(S1002).
S1002 단계에서 변경된 입력비트의 크기(B')은 코드블록의 개수(C)와 코드블록에 부가(attached)될 제 2 CRC 부호의 길이(L)를 곱한 값에 입력되는 데이터 블록의 크기(B)를 더한 값으로 계산될 수 있다. 변경된 입력비트의 크기는 각 코드블록의 크기(K)를 구하기 위한 것이다.
코드블록은 제 1 코드블록 및 제 2 코드블록으로 구성될 수 있다. 이때, 제 1 코드블록들의 크기(K+) 및 제 2 코드블록들의 크기(K-)는 특정값이 아닌 시스템의 요구사항에 따라 달라질 수 있는 값이다. 'K'는 코드블록의 크기가 균일한 경우의 길이를 나타낸다.
S1002 단계에서 변경된 입력비트의 크기(B')를 계산한 후에, 분할되어 형성되는 코드블록 중 제 1 코드블록의 크기(K+)를 계산할 수 있다. 이때, 'K+'의 길이는 표 1의 K 값에서 최소값을 이용할 수 있다. 다만, K 값은 변경된 입력비트의 크기(B')을 코드블록의 개수(C)로 나눈값 이상이어야 한다(S1003).
제 1 코드블록의 크기(K+)가 결정되면, 이를 이용하여 제 2 코드블록의 크기(K-)를 구할 수 있다. 이때, 'K-'의 길이는 표 1의 K 값에서 최대값을 사용할 수 있다. 다만, 제 2 코드블록의 크기(K-)를 구하기 위한 K 값은 제 1 코드블록의 크기(K+)보다 작은 값 중에서 최대값이어야 한다(S1004).
기능모듈은 제 1 코드블록의 크기(K+) 및 변경된 입력비트의 크기(B')을 이용하여 제 2 코드블록의 개수(C-)를 구할 수 있다. 먼저 기능모듈은 제 1 코드블록의 크기(K+)와 제 2 코드블록의 크기(K-)의 차이값(ΔK)을 계산한다. 기능모듈은 코드블록의 총 개수와 제 1 코드블록의 크기를 곱한값에서 변경된 입력비트의 크기(B')을 뺀 값을 상기 차이값(ΔK)으로 나눈 값을 내림한 값으로 제 2 코드블록의 개수(C-)를 계산할 수 있다(S1005).
제 1 코드블록의 개수(C+)는 코드블록의 총 개수(C)에서 제 2 코드블록의 개수(C-)를 뺀 값으로 계산할 수 있다(S1006).
도 10에서 설명한 방법을 이용하여 입력비트를 분할하여 생성되는 코드블록들의 적절한 길이를 계산할 수 있다. 즉, 각 코드블록의 크기를 구하기 위해 변경된 입력비트의 크기를 이용함으로써 코드블록의 크기가 균일한 경우뿐 아니라 코드블록의 크기가 시스템 상황에 따라 다른 경우에도 적용할 수 있다.
도 11은 본 발명의 실시예들 중 하나로서, 코드블록의 개수(C)가 1인 경우를 나타내는 흐름도이다.
전송하려 하는 데이터들이 큰 사이즈를 갖는 경우, 시스템의 요구사항에 따라 상기 데이터를 적합한 크기로 나누어 전송해야 한다. 따라서, 입력되는 데이터 시퀀스를 적절한 방법으로 분할할 필요가 발생한다. 이때, 입력비트(800)를 분할하는 방법에 있어서 어떠한 방법으로 분할할 것인지가 중요한 문제가 될 수 있다.
본 발명의 바람직한 실시예에 따른 논리적인 데이터 블록 분할 및 오류검출부호 부가기는 하나의 기능모듈(이하, 기능모듈)로서, 입력비트 시퀀스를 분할될 코드블록들에 포함되는 오류검출부호(예를 들어, CRC)의 크기를 고려하여 적합한 개수로 분할하는 기능을 갖는다.
단, 입력비트 시퀀스를 코드블록들로 분할하는 경우에는 시스템의 요구사항에 따라 최대로 분할할 수 있는 길이(Z)가 정해질 수 있다. 이때, 만약 입력비트의 길이(B)가 코드블록의 최대 크기(Z)보다 짧거나 같은 경우의 데이터 처리 방법을 설명한다.
도 11은 입력비트(1100)가 기능모듈(CRC 부가 및 입력비트 분할기, 1120)에 입력되어 코드블록(1140)들로 분할되는 과정을 나타낸다. 도 11을 참조하면, 입력비트(1100)가 기능모듈(1120)에 입력된다. 이때, 입력비트(1100)에는 이미 제 1 CRC 부호가 포함되어 있을 수 있으며, 제 1 CRC 부호는 입력비트(1100)에 대한 오류검출부호를 나타낸다.
기능모듈(1120)은 입력비트(1100)의 길이를 상기 기능모듈(1120)에서 분할할 수 있는 최대의 코드블록의 크기(Z)와 비교할 수 있다. 만약, 입력비트(1100)의 길이가 코드블록의 최대 크기(Z)보다 짧거나 같은 경우에는, 입력비트(1100)는 기능모듈(1120)에서 분할되지 않고 코드블록(1140)으로 구성될 수 있다.
따라서, 입력비트(1100)는 코드블록(1140)으로 전환되고, 코드블록(1140)에는 제 1 CRC 부호를 계속 사용할 수 있다. 코드블록(1140)에 대한 오류검출부호로서 제 1 CRC 부호를 사용하면 되므로, 기능모듈(1120)은 코드블록(1140)에 다시 제 2 CRC 부호를 부가하지 않는다.
도 11을 참조하면 입력되는 입력비트(1100)의 길이가 코드블록의 최대 크기(Z)보다 짧거나 같은 경우에는, 입력비트(1100)를 분할하지 않고 코드블록(1140)으로 바로 사용할 수 있다. 즉, 코드블록의 개수(C)는 1개이고 코드블록의 크기(K)는 입력비트의 길이(B)와 같을 수 있다. 또한, 코드블록(1140)에 다시 제 2 CRC 부호를 부가하지 않고 원래 입력비트(1100)에 포함된 제 1 CRC 부호를 계속 사용할 수 있다. 따라서, 이러한 경우에는 신속한 데이터의 처리가 가능하다.
<제 11 실시예>
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 10 실시예에서 설명한 방법들을 조합하여 구성할 수 있다.
제 11 실시예는 코드블록의 크기(K)가 항상 일정한 경우와 채움비트가 발생할 수 있는 경우에 사용될 수 있다. 제 11 실시예에서 코드블록의 개수(C)를 구하는 과정은 제 4 실시예 또는 제 5 실시예와 동일하다. 다만, 제 11 실시예에서는 모든 코드블록들의 크기(Kr)가 동일한 경우이다.
다음 수학식 34는 코드블록들의 크기(Kr) 및 채움비트의 크기(F)를 계산하는 방법을 나타낸다.
수학식 34를 참조하면, 코드블록의 크기(Kr)는 변경된 입력비트의 크기(B')를 코드블록의 총 개수(C)로 나눠서 계산할 수 있다. 이때, 'r'은 코드블록의 인덱스를 나타낸다. 또한, 채움비트의 크기(F)는 코드블록의 총 개수(C)와 코드블록의 크기를 곱한 값에서 상기 변경된 입력비트의 크기(B')의 차이값으로 계산할 수 있다. 즉, 본 발명의 제 11 실시예에서는 입력비트(B)가 분할되어 생성되는 모든 코드블록들의 크기가 동일한 경우에, 상기 코드블록들의 크기(Kr)를 구하는 방법을 나타낸다.
표 14는 CRC 길이(L) 및 채움비트의 크기(F)를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 14를 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 14에서 cro, cr1, cr2,...,cr(Kr-1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr(L-1))를 계산하는 데 사용될 수 있다.
본 발명의 또 다른 실시예에서 입력되는 데이터 블록에 미리 포함되어 있는 오류검출부호는 TB CRC(Transport Block CRC 또는 제 1 오류검출부호)로 불릴 수 있으며, 분할될 코드블록들에 포함되는 오류검출부호는 CB CRC(Code Block CRC 또는 제 2 오류검출부호)로 불릴 수 있다.
상술한 제 11 실시예에서 입력되는 데이터 블록이 분할되지 않는 경우(즉, C=1 인 경우)에는 최초의 입력 데이터 블록이 TB CRC를 포함하는 최종 코드블록으로 구성될 수 있다. 다만, 사용자의 요구사항 및 발명의 실시 형태에 따라 TB CRC를 제외하고 CB CRC 부호를 부가하여 최종 코드블록을 구성할 수 있다.
<제 12 실시예>
본 발명의 또 다른 실시예는 제 1 실시예 내지 제 10 실시예에서 설명한 방법들을 조합하여 구성할 수 있다. 제 12 실시예는 코드블록의 길이가 균등한 경우 및 채움비트가 발생하지 않는 경우에 사용될 수 있다. 즉, 입력비트의 크기와 추후 생성되는 코드블록들의 총 크기가 동일한 경우를 나타낸다.
제 12 실시예는 코드블록의 크기(Kr)가 항상 일정한 경우에 사용될 수 있다. 제 12 실시예에서 코드블록의 개수(C)를 구하는 과정은 제 4 실시예 또는 제 5 실시예와 동일하다.
다음 수학식 35는 코드블록들의 크기(Kr)를 계산하는 방법을 나타낸다.
수학식 35를 참조하면, 코드블록의 크기(Kr)는 변경된 입력비트의 크기(B')를 코드블록의 총 개수(C)로 나눈값으로 계산할 수 있다. 이때, 'Kr'은 코드블록의 크기를 나타내며, 'r' 은 코드블록의 인덱스를 나타낸다.
표 15는 CRC 길이(L)를 고려하여 생성되는 코드블록의 구성식을 나타낸다.
표 15를 참조하면, 상기 기능모듈에서 코드블록을 구성하는 경우, CRC 길이를 코드블록에 포함하여 구성하는 과정을 알 수 있다. 표 15에서 cro, cr1, cr2,...,cr(Kr-1)로 표현되는 코드블록 시퀀스는 CRC 패리티 비트(pr0, pr1, pr2,..., pr(L-1))를 계산하는 데 사용될 수 있다.
본 발명의 또 다른 실시예에서 입력되는 데이터 블록에 미리 포함되어 있는 오류검출부호는 TB CRC(Transport Block CRC 또는 제 1 오류검출부호)로 불릴 수 있으며, 분할될 코드블록들에 포함되는 오류검출부호는 CB CRC(Code Block CRC 또는 제 2 오류검출부호)로 불릴 수 있다.
상술한 제 12 실시예에서 입력되는 데이터 블록이 분할되지 않는 경우(즉, C=1 인 경우)에는 최초의 입력 데이터 블록이 TB CRC를 포함하는 최종 코드블록으로 구성될 수 있다. 다만, 사용자의 요구사항 및 발명의 실시 형태에 따라 TB CRC를 제외하고 CB CRC 부호를 부가하여 최종 코드블록을 구성할 수 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명의 실시예들은 광대역 무선 접속 시스템들에 적용할 수 있다. 또한, 본 발명의 실시예들은 입력 시퀀스를 분할하여 코드블록을 생성하는 모든 방법들에 적용할 수 있다. 또한, 본 발명의 실시예들을 이용하여 생성된 코드블록들은 물리채널을 코딩, 멀티플렉싱 및 인터리빙하는데 적용할 수 있다. 또한, 본 발명의 실시예들은 상술한 실시예에 한정되지 않고 본 발명의 기술적 사상을 나타내는 모든 기술들에 적용될 수 있다.
Claims (15)
- 무선 접속 시스템에서 데이터를 전송하는 방법에 있어서,
상기 데이터에 제 1 오류검출부호를 부착하여 입력비트를 생성하는 단계;
입력비트의 크기(B)와 상기 입력비트로부터 도출되는 코드블록들의 최대크기(Z) 및 상기 코드블록들 각각에 부착될 제 2 오류검출부호의 크기(L)를 이용하여, 코드블록들의 개수(C)를 계산하는 단계;
상기 코드블록들의 개수(C)와 상기 제 2 오류검출부호의 크기(L) 및 상기 입력비트의 크기(B)를 이용하여 변경된 입력비트의 크기(B' : modified input bit size)를 계산하는 단계;
상기 변경된 입력비트의 크기(B')를 상기 코드블록들의 개수(C)로 나눈 값에 기반하여, 코드블록들의 크기(K)를 획득하는 단계;
상기 입력비트를 상기 코드블록의 개수(C) 및 상기 획득한 코드블록들의 크기(K)를 갖도록 분할하는 단계;
상기 분할된 입력비트 각각에 상기 제 2 오류검출부호를 부착하여 상기 코드블록들을 생성하는 단계; 및
상기 코드블록들을 채널코딩 하는 단계를 포함하되,
상기 코드블록들의 개수 C는 다음 등식 과 같이 계산되는, 데이터 전송방법. - 삭제
- 제 1항에 있어서,
상기 제 1 오류검출부호 및 상기 제 2 오류검출부호는 서로 다른 다항식을 이용하여 생성되는 것을 특징으로 하는 데이터 전송방법. - 제 1항에 있어서,
상기 입력비트의 크기(B)는 상기 데이터의 크기(A)와 상기 제 1 오류검출부호의 크기(L)를 더한 값이고,
상기 코드블록들 각각에 부착될 상기 제 2 오류검출부호는 상기 코드블록들 각각의 오류 여부 검출을 위해 추가적으로 부착되는 것을 특징으로 하는 데이터 전송방법. - 제 1항에 있어서,
상기 코드블록들의 개수(C)를 계산하는 단계에서,
상기 입력비트의 크기(B)가 상기 코드블록들이 가질 수 있는 최대크기(Z) 이하이면, 상기 코드블록의 개수(C)는 '1'로 실정되는 것을 특징으로 하는 데이터 전송방법. - 제 1항에 있어서,
상기 변경된 입력비트의 크기(B')는,
상기 코드블록들의 개수(C)와 상기 코드블록들에 부착될 상기 제 2 오류검출부호의 크기(L)를 곱하고 상기 입력비트의 크기(B)를 더하여 계산되는 것을 특징으로 하는 데이터 전송방법. - 제 1항 또는 제 6항에 있어서,
상기 코드블록들의 크기(K)는,
상기 코드블록들의 개수(C) 및 상기 코드블록들의 크기(K)를 곱한 값이 상기 변경된 입력비트의 크기(B') 이상인 조건을 만족하는 것을 특징으로 하는 데이터 전송방법. - 제 7항에 있어서,
상기 코드블록들의 크기(K) 중 제 1 코드블록의 크기(K+)는 상기 기 설정된 값 중 가장 작은 크기를 갖고,
상기 코드블록들의 크기(K) 중 제 2 코드블록의 크기(K-)는 상기 제 1 코드블록보다 작은 크기를 갖는 상기 기 설정된 값 중 가장 큰 크기를 갖는 것을 특징으로 하는 데이터 전송방법. - 제 8항에 있어서,
상기 제 2 코드블록의 개수(C-)는,
상기 코드블록들의 개수(C)와 상기 제 1 코드블록의 크기(K+)를 곱한 값에서 상기 변경된 입력비트의 크기(B')를 뺀 값을, 상기 제 1 코드블록의 크기(K+)와 상기 제 2 코드블록의 크기(K-)의 차로 나눈 값을 내림한 정수값으로 계산되는 것을 특징으로 하는 데이터 전송방법. - 제 9항에 있어서,
상기 제 1 코드블록의 개수(C+)는,
상기 코드블록들의 개수(C)에서 상기 제 2 코드블록의 개수(C-)를 뺀 값인 것을 특징으로 하는 데이터 전송방법. - 제 10항에 있어서,
상기 제 1 코드블록의 개수(C+) 및 상기 제 1 코드블록의 크기(K+)를 곱한 값과 상기 제 2 코드블록의 개수(C-) 및 상기 제 2 코드블록의 크기(K+)를 곱한 값을 더한 값에서, 상기 변경된 입력비트의 크기(B')를 뺀 값인 채움비트(Filler bit)의 개수(F)를 계산하는 단계; 및
상기 채움비트를 분할된 상기 코드블록들 중 첫 번째 코드블록에 할당하는 단계를 더 포함하는, 데이터 전송방법. - 제 1항에 있어서,
분할된 상기 코드블록들 중 첫 번째 코드블록에는, 상기 첫 번째 코드블럭에서 채움비트 및 상기 코드블록들에 포함될 오류검출부호의 크기에 해당하는 값을 제외한 부분에 데이터를 할당하는 단계; 및
분할된 상기 코드블록들 중 두 번째 코드블록부터는, 상기 두 번째 코드블록에서 상기 오류검출부호의 크기에 해당하는 값을 제외한 부분에 상기 데이터를 할당하는 단계를 더 포함하는, 데이터 전송방법. - 제 12항에 있어서,
상기 첫 번째 코드블록에 데이터를 할당하는 단계는,
상기 첫 번째 코드블록에 상기 오류검출부호를 부착하는 단계를 더 포함하고,
상기 두 번째 코드블록부터 데이터를 할당하는 단계는,
상기 두 번째 코드블록 이하의 코드블록부터 상기 오류검출부호를 각각 부착하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송방법. - 제 1항에 있어서,
상기 코드블록들의 최대크기(Z)는 6144 비트인 것을 특징으로 하는 데이터 전송방법. - 무선접속 시스템에서 데이터를 전송하는 방법에 있어서,
제 1 입력비트에 제 1 오류검출부호를 부착하여 제 2 입력비트를 생성하는 단계;
제 1 입력비트의 크기(A)와 제 1 오류검출부호의 크기(L)를 이용하여 제 2 입력비트의 크기(B)를 계산하는 단계;
상기 제 2 입력비트의 크기(B), 상기 제 2 입력비트로부터 도출되는 코드블록들의 최대크기(Z) 및 상기 코드블록들 각각에 부착될(attached) 제 2 오류검출부호의 크기(L)를 이용하여, 코드블록들의 개수(C)를 계산하는 단계;
상기 코드블록들의 개수(C), 상기 제 2 오류검출부호의 크기(L) 및 상기 제 2 입력비트의 크기(B)를 이용하여 변경된 제 2 입력비트의 크기(modified input bit size: B')를 계산하는 단계;
상기 변경된 제 2 입력비트의 크기(B')를 상기 코드블록들의 개수(C)로 나눈 값에 기반하여, 기 설정된 값으로부터 코드블록들의 크기(K: K+ , K-)를 획득하는 단계; 및
상기 제 2 입력비트를 상기 코드블록들의 개수(C) 및 상기 획득한 코드블록들의 크기(K: K+ , K-)를 가지도록 분할하는 단계;
상기 분할된 제 2 입력비트 각각에 상기 제 2 오류검출부호를 부착하여 상기 코드블록들을 생성하는 단계; 및
상기 코드블록들을 채널코딩 하는 단계를 포함하되,
상기 코드블록들의 개수 C는 다음 등식 과 같이 계산되는, 데이터 전송방법.
Applications Claiming Priority (21)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20070082032 | 2007-08-14 | ||
KR1020070082032 | 2007-08-14 | ||
KR1020070082236 | 2007-08-16 | ||
KR20070082236 | 2007-08-16 | ||
US95706307P | 2007-08-21 | 2007-08-21 | |
US60/957,063 | 2007-08-21 | ||
US95736907P | 2007-08-22 | 2007-08-22 | |
US95733407P | 2007-08-22 | 2007-08-22 | |
US60/957,369 | 2007-08-22 | ||
US60/957,334 | 2007-08-22 | ||
US95745407P | 2007-08-23 | 2007-08-23 | |
US60/957,454 | 2007-08-23 | ||
KR1020070120391 | 2007-11-23 | ||
KR1020070120390 | 2007-11-23 | ||
KR1020070120391A KR20090017384A (ko) | 2007-08-14 | 2007-11-23 | 오류검출부호의 부가를 고려한 코드블록 분할 방법 |
KR1020070120389 | 2007-11-23 | ||
KR1020070120389A KR20090017382A (ko) | 2007-08-14 | 2007-11-23 | 오류검출부호의 부가를 고려한 코드블록 분할 방법 및코드블록 개수 계산방법 |
KR1020070120390A KR20090017383A (ko) | 2007-08-14 | 2007-11-23 | 오류검출부호의 부가를 고려한 코드블록 분할 방법 및코드블록 길이 계산방법 |
US2847808P | 2008-02-13 | 2008-02-13 | |
US61/028,478 | 2008-02-13 | ||
PCT/KR2008/004744 WO2009022874A1 (en) | 2007-08-14 | 2008-08-14 | Method of transmitting data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100038407A KR20100038407A (ko) | 2010-04-14 |
KR101221915B1 true KR101221915B1 (ko) | 2013-01-15 |
Family
ID=40350860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20107002033A KR101221915B1 (ko) | 2007-08-14 | 2008-08-14 | 데이터 전송방법 |
Country Status (10)
Country | Link |
---|---|
US (4) | US8219877B2 (ko) |
EP (3) | EP2183867B1 (ko) |
JP (2) | JP5228047B2 (ko) |
KR (1) | KR101221915B1 (ko) |
CN (2) | CN101821980B (ko) |
BR (1) | BRPI0815159B1 (ko) |
ES (1) | ES2486940T3 (ko) |
PL (1) | PL2183867T3 (ko) |
PT (1) | PT2183867E (ko) |
WO (1) | WO2009022874A1 (ko) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232370A (zh) * | 2007-01-23 | 2008-07-30 | 华硕电脑股份有限公司 | 无线通讯***加强信息安全的方法及其相关装置 |
EP2183867B1 (en) | 2007-08-14 | 2014-05-07 | LG Electronics Inc. | Method of transmitting data |
EP2210344B1 (en) * | 2007-10-26 | 2019-03-13 | Telefonaktiebolaget LM Ericsson (publ) | Method and apparatus for providing adaptive cyclic redundancy check computation |
JP5411537B2 (ja) * | 2009-03-13 | 2014-02-12 | 京セラ株式会社 | 無線通信装置および無線通信制御方法 |
CN102340372B (zh) * | 2010-07-28 | 2014-04-09 | 中兴通讯股份有限公司 | 一种lte基站发送端增大比特级吞吐量方法及其装置 |
CN107659384A (zh) * | 2012-11-16 | 2018-02-02 | 华为技术有限公司 | 数据处理的方法和装置 |
CN107408953A (zh) * | 2015-04-01 | 2017-11-28 | 华为技术有限公司 | 编码方法、装置、基站和用户设备 |
CN106160937B (zh) | 2015-04-15 | 2019-01-04 | 中兴通讯股份有限公司 | 一种实现码块分割的方法及装置 |
CN110708141B (zh) * | 2015-06-30 | 2021-11-02 | 展讯通信(上海)有限公司 | 数据传输方法、装置及微型基站 |
WO2017007483A1 (en) * | 2015-07-09 | 2017-01-12 | Hewlett-Packard Development Company, L.P. | Multi-dimensional cyclic symbols |
EP3306844B1 (en) * | 2015-07-17 | 2019-05-29 | Huawei Technologies Co., Ltd. | Unequal error protection-based data transmission method and apparatus |
US10348466B2 (en) | 2015-11-03 | 2019-07-09 | Qualcomm Incorporated | Transport block segmentation and signaling |
CN105260261B (zh) * | 2015-11-19 | 2018-06-15 | 四川神琥科技有限公司 | 一种邮件恢复方法 |
US10313057B2 (en) * | 2016-06-01 | 2019-06-04 | Qualcomm Incorporated | Error detection in wireless communications using sectional redundancy check information |
US10291354B2 (en) | 2016-06-14 | 2019-05-14 | Qualcomm Incorporated | High performance, flexible, and compact low-density parity-check (LDPC) code |
JP2019149589A (ja) * | 2016-07-08 | 2019-09-05 | シャープ株式会社 | 基地局装置、端末装置、通信方法、および、集積回路 |
EP3487095B1 (en) * | 2016-07-15 | 2021-03-31 | Sharp Kabushiki Kaisha | Transmission device, reception device and communication method |
WO2018064587A1 (en) * | 2016-09-29 | 2018-04-05 | Cohere Technologies | Transport block segmentation for multi-level codes |
CN108631789B (zh) * | 2016-10-25 | 2019-07-09 | 华为技术有限公司 | 编码、译码方法及设备 |
US10248498B2 (en) | 2016-11-21 | 2019-04-02 | Futurewei Technologies, Inc. | Cyclic redundancy check calculation for multiple blocks of a message |
PT3547576T (pt) | 2016-11-23 | 2021-09-28 | Guangdong Oppo Mobile Telecommunications Corp Ltd | Método de processamento de dados e dispositivo terminal e dispositivo de rede |
KR102608632B1 (ko) * | 2016-11-23 | 2023-12-01 | 삼성전자 주식회사 | 셀룰라 통신 시스템에서 상향링크 전송 방법 및 장치 |
CN115720128A (zh) | 2017-01-09 | 2023-02-28 | 中兴通讯股份有限公司 | 一种数据处理方法和装置 |
CN108289010B (zh) * | 2017-01-09 | 2022-04-15 | 中兴通讯股份有限公司 | 一种数据处理方法和装置 |
CN114598424A (zh) * | 2017-02-15 | 2022-06-07 | 中兴通讯股份有限公司 | 一种数据处理方法及装置 |
US10312939B2 (en) | 2017-06-10 | 2019-06-04 | Qualcomm Incorporated | Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code |
CN109787713B (zh) * | 2017-11-15 | 2020-10-09 | 华为技术有限公司 | 一种循环冗余校验crc计算方法和装置 |
US10680751B2 (en) | 2017-11-17 | 2020-06-09 | Qualcomm Incorporated | Methods and apparatus for determining transport block size in wireless communication |
CN108366414B (zh) * | 2018-01-15 | 2021-02-19 | 海信集团有限公司 | 一种基于NB-IoT的数据传输方法和装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05228047A (ja) | 1991-12-26 | 1993-09-07 | Tokuei Sakai | 絡まない傘立て |
ZA93290B (en) | 1992-01-16 | 1993-11-22 | Qualcomm Inc | Method and apparatus for the formatting of data for transmission |
US5768533A (en) * | 1995-09-01 | 1998-06-16 | National Semiconductor Corporation | Video coding using segmented frames and retransmission to overcome channel errors |
KR100434463B1 (ko) | 1999-01-07 | 2004-06-05 | 삼성전자주식회사 | 부호분할다중접속 통신시스템의 데이터 통신 장치 및 방법 |
US7593380B1 (en) | 1999-03-05 | 2009-09-22 | Ipr Licensing, Inc. | Variable rate forward error correction for enabling high performance communication |
FR2792788B1 (fr) * | 1999-04-21 | 2001-07-13 | Mitsubishi Electric France | PROCEDE D'EQUILIBRAGE DU RAPPORT Eb/I DANS UN SYSTEME cdma A MULTIPLEXAGE DE SERVICE ET SYSTEME DE TELECOMMUNICATION L'UTILISANT |
SG87129A1 (en) | 1999-07-12 | 2002-03-19 | Ibm | Data encoding systems |
JP3297668B2 (ja) * | 2000-04-26 | 2002-07-02 | 松下電器産業株式会社 | 符号/復号化装置及び符号/復号化方法 |
US6898743B2 (en) * | 2000-07-03 | 2005-05-24 | Lg Electronics Inc. | Data rate matching method in 3GPP2 system |
JP3683497B2 (ja) * | 2000-11-30 | 2005-08-17 | 松下電器産業株式会社 | 復号装置および復号方法 |
EP1277814A1 (en) * | 2001-07-20 | 2003-01-22 | Dsm N.V. | Badge-free coating composition for metal substrates |
KR100762632B1 (ko) * | 2001-10-17 | 2007-10-01 | 삼성전자주식회사 | 부호 분할 다중 접속 통신 시스템에서 전송 채널 다중화/역다중화 장치 및 방법 |
KR101000388B1 (ko) | 2003-05-15 | 2010-12-13 | 엘지전자 주식회사 | 이동 통신 시스템 및 이 이동 통신 시스템에서 신호를처리하는 방법 |
JP3880542B2 (ja) | 2003-05-19 | 2007-02-14 | 松下電器産業株式会社 | 誤り訂正符号化/復号化装置および誤り訂正符号化/復号化方法 |
US7564867B2 (en) | 2003-08-19 | 2009-07-21 | Alcatel-Lucent Usa Inc. | Enhanced uplink data transmission |
WO2006046925A1 (en) * | 2004-10-26 | 2006-05-04 | Agency For Science, Technology And Research | Method and system for encoding and decoding information with modulation constraints and error control |
CN1893342B (zh) * | 2005-07-05 | 2010-06-09 | 上海原动力通信科技有限公司 | 多载波hsdpa的业务传输信道编码方法和编码装置 |
US8356232B2 (en) * | 2006-10-06 | 2013-01-15 | Motorola Mobility Llc | Method and apparatus for encoding and decoding data |
US7873893B2 (en) * | 2007-02-28 | 2011-01-18 | Motorola Mobility, Inc. | Method and apparatus for encoding and decoding data |
US8386878B2 (en) * | 2007-07-12 | 2013-02-26 | Samsung Electronics Co., Ltd. | Methods and apparatus to compute CRC for multiple code blocks |
EP2183867B1 (en) | 2007-08-14 | 2014-05-07 | LG Electronics Inc. | Method of transmitting data |
US7853857B2 (en) * | 2007-09-14 | 2010-12-14 | Motorola Mobility, Inc. | Multi-layer cyclic redundancy check code in wireless communication system |
-
2008
- 2008-08-14 EP EP20080793258 patent/EP2183867B1/en active Active
- 2008-08-14 CN CN2008801115679A patent/CN101821980B/zh active Active
- 2008-08-14 KR KR20107002033A patent/KR101221915B1/ko active IP Right Grant
- 2008-08-14 WO PCT/KR2008/004744 patent/WO2009022874A1/en active Application Filing
- 2008-08-14 JP JP2010520945A patent/JP5228047B2/ja active Active
- 2008-08-14 EP EP13179786.2A patent/EP2663004B1/en active Active
- 2008-08-14 EP EP17160374.9A patent/EP3240217B1/en active Active
- 2008-08-14 ES ES08793258.8T patent/ES2486940T3/es active Active
- 2008-08-14 CN CN201310359229.XA patent/CN103441816B/zh active Active
- 2008-08-14 BR BRPI0815159-8A patent/BRPI0815159B1/pt active IP Right Grant
- 2008-08-14 PL PL08793258T patent/PL2183867T3/pl unknown
- 2008-08-14 US US12/191,939 patent/US8219877B2/en active Active
- 2008-08-14 PT PT08793258T patent/PT2183867E/pt unknown
-
2012
- 2012-06-04 US US13/488,332 patent/US9154162B2/en active Active
-
2013
- 2013-02-01 US US13/757,691 patent/US9246513B2/en active Active
- 2013-03-18 JP JP2013055156A patent/JP5466317B2/ja active Active
-
2015
- 2015-12-09 US US14/964,270 patent/US9912444B2/en active Active
Non-Patent Citations (2)
Title |
---|
3GPP TS 36.212 v.1.3.0, Multiplexing and channel coding, 2007.07.. * |
3GPP TSG RAN WG1 Meeting #50, R1-073504, On the consideration CRC attachment, LG Electronics, 20-24, Aug. 2007.. * |
Also Published As
Publication number | Publication date |
---|---|
ES2486940T3 (es) | 2014-08-19 |
US9246513B2 (en) | 2016-01-26 |
JP5228047B2 (ja) | 2013-07-03 |
CN103441816A (zh) | 2013-12-11 |
CN103441816B (zh) | 2017-03-01 |
BRPI0815159B1 (pt) | 2020-09-08 |
EP3240217A1 (en) | 2017-11-01 |
JP2010536305A (ja) | 2010-11-25 |
BRPI0815159A2 (pt) | 2015-03-31 |
JP5466317B2 (ja) | 2014-04-09 |
US9912444B2 (en) | 2018-03-06 |
EP2183867B1 (en) | 2014-05-07 |
EP2183867A4 (en) | 2011-03-09 |
EP2663004B1 (en) | 2017-04-19 |
US20090070653A1 (en) | 2009-03-12 |
US9154162B2 (en) | 2015-10-06 |
WO2009022874A1 (en) | 2009-02-19 |
KR20100038407A (ko) | 2010-04-14 |
EP2183867A1 (en) | 2010-05-12 |
JP2013141306A (ja) | 2013-07-18 |
US8219877B2 (en) | 2012-07-10 |
US20130262963A1 (en) | 2013-10-03 |
EP3240217B1 (en) | 2019-10-02 |
US20160094313A1 (en) | 2016-03-31 |
PT2183867E (pt) | 2014-07-18 |
CN101821980A (zh) | 2010-09-01 |
US20120240009A1 (en) | 2012-09-20 |
CN101821980B (zh) | 2013-09-18 |
PL2183867T3 (pl) | 2014-10-31 |
EP2663004A1 (en) | 2013-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101221915B1 (ko) | 데이터 전송방법 | |
KR102534564B1 (ko) | 코드블록 분할을 실현하는 방법 및 장치 | |
KR101275962B1 (ko) | 무선 통신 시스템에서 다단 순환 중복 검사 코드 | |
US20170294990A1 (en) | Data transmission method and device | |
US10476528B2 (en) | Data packet processing method and device | |
US8976902B2 (en) | Method and apparatus for transmitting and receiving control information in a broadcasting/communication system | |
KR20190099327A (ko) | 정보 처리 방법, 장치, 및 통신 시스템 | |
RU2448417C2 (ru) | Способ передачи данных | |
BRPI0717506B1 (pt) | método e aparelho para codificar e decodificar dados | |
ES2764425T3 (es) | Método de segmentación de un bloque de transporte en múltiples bloques de código cuando se añade una CRC a cada bloque de código | |
KR20230004238A (ko) | 통신 시스템에서 트래픽 전송 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151224 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161214 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171214 Year of fee payment: 6 |