KR101286022B1 - 데이터 레이트 매칭장치 및 방법 - Google Patents

데이터 레이트 매칭장치 및 방법 Download PDF

Info

Publication number
KR101286022B1
KR101286022B1 KR1020120011968A KR20120011968A KR101286022B1 KR 101286022 B1 KR101286022 B1 KR 101286022B1 KR 1020120011968 A KR1020120011968 A KR 1020120011968A KR 20120011968 A KR20120011968 A KR 20120011968A KR 101286022 B1 KR101286022 B1 KR 101286022B1
Authority
KR
South Korea
Prior art keywords
bit
bits
valid
rate matching
input
Prior art date
Application number
KR1020120011968A
Other languages
English (en)
Inventor
정진섭
이주형
임종호
이미옥
원태윤
Original Assignee
주식회사 이노와이어리스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 이노와이어리스 filed Critical 주식회사 이노와이어리스
Priority to KR1020120011968A priority Critical patent/KR101286022B1/ko
Application granted granted Critical
Publication of KR101286022B1 publication Critical patent/KR101286022B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 데이터 레이트 매칭장치에 관한 것으로, 보다 상세하게는 레이트 매칭을 복수의 비트 단위로 병렬적으로 수행할 수 있도록 구현된 레이트 매칭 신호처리 장치에 관한 것으로, 복수의 비트 단위로 처리되며 레이트 매칭에 활용될 수 있는 메모리 구조를 고안하며 해당 메모리에 읽고 쓰는 위치를 적절히 하여 레이트 매칭 신호처리 시간을 줄이고, 레이트 매칭을 복수의 비트 단위로 함에 있어서 하드웨어 구현시 필요한 자원을 최적화하였으며, 레이트 매칭 이후의 신호처리인 변조장치의 입력에 있어서 변조 모드에 따른 출력이 가능하도록 함으로써 변조장치의 신호처리 인터페이스를 단순화한 효과가 있다.

Description

데이터 레이트 매칭장치 및 방법 {Apparatus for Data Rate matching and Method thereof}
본 발명은 데이터 레이트 매칭장치에 관한 것으로, 보다 상세하게는 레이트 매칭을 복수의 비트 단위로 병렬적으로 수행할 수 있도록 구현된 레이트 매칭 신호처리 장치에 관한 것이다.
일반적으로, 데이터 부호화 과정에서, 터보 부호화(turbo coding) 또는 콘볼루션 부호화(convolution coding)된 데이터의 길이와 무선 전송(wireless transmission)에 요구되는 데이터 길이의 정합을 위하여 레이트 매처(rate matcher)에서 데이터 레이트 매칭을 수행한다.
도 1은 종래의 순환 버퍼 기반의 레이트 매칭장치의 구성을 나타내는 블록도이다. 도 1을 참조하면, 종래의 순환 버퍼 기반의 레이트 매칭장치(100)는 3개의 서브블록 인터리버(Sub-block interleaver)(102, 104, 106), 비트 수집부(108) 및 비트 선택부(Bit selection and pruning)(110)를 포함하도록 구성된다.
종래의 순환 버퍼 기반의 레이트 매칭장치는 3개의 정보 비트열
Figure 112012009652155-pat00001
를 입력받아 이를 서브블록 인터리버(102, 104, 106)에 통과시켜
Figure 112012009652155-pat00002
,
Figure 112012009652155-pat00003
,
Figure 112012009652155-pat00004
를 생성하고, 인터리빙된 데이터 스트림을 비트수집부(108)에 일시 저장한 후, 비트 선택부(110)를 통하여 출력 비트 크기에 따라서 비트가 선택되도록 하여 비트 스트림 ek를 출력한다.
상기 입력되는 비트열
Figure 112012009652155-pat00005
는 이전 신호처리단계인 터보 부호화기의 출력 또는 길쌈 부호화기의 출력이다.
서브블록 인터리버(102, 104, 106)는 각 비트열을 입력받아 섞은 후 환형 버퍼(110)에 입력되도록 한다.
Figure 112012009652155-pat00006
에 대한 서브블록 인터리버(102)의 출력은
Figure 112012009652155-pat00007
이고,
Figure 112012009652155-pat00008
에 대한 서브블록 인터리버(104)의 출력은
Figure 112012009652155-pat00009
이며,
Figure 112012009652155-pat00010
에 대한 서브블록 인터리버(106)의 출력은
Figure 112012009652155-pat00011
이다.
먼저 서브블록 인터리버의 입력 비트들을
Figure 112012009652155-pat00012
라고 하고 D는 비트수라고 할 때, 상기 출력 비트들은 아래에 표기한 방식으로 생성된다.
(1) 행렬의 행의 수를
Figure 112012009652155-pat00013
라고 할 때, 각 행의 번호는 왼쪽에서 오른쪽으로 0, 1, 2, ...,
Figure 112012009652155-pat00014
로 한다.
(2) 상기 행렬의 열 수를
Figure 112012009652155-pat00015
라고 하고 D를 비트수라고 할 때,
Figure 112012009652155-pat00016
를 만족하는 최소의
Figure 112012009652155-pat00017
를 구한다. 이 때, 각 열의 번호는 위쪽에서 아래쪽으로 0, 1, 2, ...,
Figure 112012009652155-pat00018
로 한다.
(3) 만일
Figure 112012009652155-pat00019
이면,
Figure 112012009652155-pat00020
개의 가공 비트(dummy bits)를 yk = <NULL> 이 되도록 k = 0, 1,…, ND-1 에 대하여 삽입하고, 상기 행렬의 입력 비트열을
Figure 112012009652155-pat00021
,k=0,1,…,D-1 가 되도록 하여 상기 행렬에 y0 가 행 0번 열 0번에 들어가도록 아래의 수학식 1에서와 같이 행렬을 구성한다.
수학식 1
Figure 112012009652155-pat00022

이 때, 서브블록
Figure 112012009652155-pat00023
Figure 112012009652155-pat00024
에 대하여는 아래 (4)와 (5)에 따른다.
(4) 표 1 또는 표 2(표 1은 터보 부호화된 전송채널의 레이트 매칭인 경우, 표 2는 길쌈 부호화된 전송채널의 레이트 매칭인 경우)에 정의된 패턴
Figure 112012009652155-pat00025
에 기초하여 먼저 행간 치환을 수행하는데 여기서 P(j) 는 j 번째 치환된 행의 원래 행 위치를 나타낸다. 상기 치환이 이루어진 뒤의 결과 행렬
Figure 112012009652155-pat00026
는 아래의 수학식2와 같다.
수학식 2
Figure 112012009652155-pat00027

(5) 상기 서브블록 인터리버의 출력은 상기 치환된 행렬
Figure 112012009652155-pat00028
로부터 열 단위로 읽어내어 생성한다. 이 출력은
Figure 112012009652155-pat00029
로 표시하며 여기서
Figure 112012009652155-pat00030
Figure 112012009652155-pat00031
에 해당되고
Figure 112012009652155-pat00032
Figure 112012009652155-pat00033
에 해당되며
Figure 112012009652155-pat00034
가 된다.
그리고,
Figure 112012009652155-pat00035
에 대하여는 아래 (6)에 따른다.
(6) 상기 서브블록 인터리버(106)의 출력은
Figure 112012009652155-pat00036
로 나타내며 여기서
Figure 112012009652155-pat00037
이고
Figure 112012009652155-pat00038
이다. 또한 치환함수 P는 표 1에 정의되어 있다. 다만, 길쌈 부호화된 전송채널의 레이트 매칭인 경우는
Figure 112012009652155-pat00039
에 대하여도 (4)와 (5)에 따른다.
Number of columns
Figure 112012009652155-pat00040
Inter - column permutation pattern
Figure 112012009652155-pat00041
32 < 0, 16, 8, 24, 4, 20, 12, 28, 2, 18, 10, 26, 6, 22, 14, 30, 1, 17, 9, 25, 5, 21, 13, 29, 3, 19, 11, 27, 7, 23, 15, 31 >
Number of columns
Figure 112012009652155-pat00042
Inter - column permutation pattern
Figure 112012009652155-pat00043
32 < 1, 17, 9, 25, 5, 21, 13, 29, 3, 19, 11, 27, 7, 23, 15, 31, 0, 16, 8, 24, 4, 20, 12, 28, 2, 18, 10, 26, 6, 22, 14, 30 >
비트수집부(108)와 비트 선택부(110)는 아래와 같이 길이
Figure 112012009652155-pat00044
인 환형 버퍼를 생성한다.
Figure 112012009652155-pat00045
for k=0,…,
Figure 112012009652155-pat00046
Figure 112012009652155-pat00047
for k=0,…,
Figure 112012009652155-pat00048
Figure 112012009652155-pat00049
for k=0,…,
Figure 112012009652155-pat00050

레이트 매칭 출력 시퀀스 길이를 E라고 하고, 레이트 매칭 출력 비트 시퀀스를 wk라 하면, 상위단으로부터 주어지는 변수 k0 와 Ncb를 이용하여 비트 선택된 데이터에 대해 레이트 매칭장치(100)에서의 출력 데이터 전송은 아래의 수학식 3에서와 같이 이루어진다.
수학식 3
Set k=0 and j=0
while {k<E}
if
Figure 112012009652155-pat00051
Figure 112012009652155-pat00052
k=k+1
end if
j = j+1
end while
상기한 종래의 순환 버퍼 기반의 레이트 매칭장치는 터보 부호화된 전송채널의 레이트 매칭 및 길쌈 부호화된 전송채널의 레이트 매칭 모두 비트 단위로 처리하도록 알고리즘이 구성되어 이를 하드웨어로 구현시 큰 코드블록에 대하여 많은 처리시간이 필요한 문제점이 있다.
또한, 종래의 순화 버퍼 기반의 레이트 매칭장치는 순환 버퍼에 쓰고 읽는 방식과 순환 버퍼의 구조에 따라 처리시간의 차이가 커지는 문제점이 있다.
본 발명의 목적은 복수의 비트 단위로 레이트 매칭이 가능하도록 한 데이터 레이트 매칭장치를 제공하는 것이다.
상기의 목적을 달성하기 위한 복수의 비트 단위로 입력되는 3개의 비트열에 대하여 각각 다른 규칙으로 상기 비트열의 비트들을 섞어서 저장하고 읽어내기 위한 제어 신호를 발생하는 제어부; 입력되는 상기 비트열을 상기 제어 신호에 따라 저장하는 저장부; 상기 저장부에서 상기 제어 신호에 따라 복수의 비트 단위의 3개의 비트열을 읽고, 읽혀진 상기 비트열 중 일부의 비트열을 선택하고 상기 일부의 비트열에 해당하는 유효비트를 생성하는 유효비트 선별부; 및 상기 일부의 비트열과 상기 유효비트를 변조방식에 따라 일정 비트 단위로 조합하여 출력하는 변조부;를 포함하는 것을 특징으로 하는 데이터 레이트 매칭장치가 제공된다.
바람직하게는, 상기 복수의 비트 단위는 8비트 단위이고, 상기 일부의 비트열은 읽혀진 상기 비트열 중 선택된 하나의 비트열이고, 상기 저장부는 입력되는 상기 비트열이 각각 저장되는 3개의 메모리 구조체를 포함하되, 상기 메모리 구조체는 1 비트 단위로 입력과 출력이 가능하고, 8개의 뱅크(bank), 8개의 행, 96개의 열로 이루어지고, 상기 비트열을 각 뱅크에 1 비트씩 할당하여 저장하며, 상기 유효비트 선별부는 상기 메모리 구조체에서 각 행에서 1 비트씩 읽는 것을 특징으로 한다.
바람직하게는, 상기 메모리 구조체는 입력되는 상기 비트열이 부호화된 종류에 따라 쓰기 어드레스와 읽기 어드레스가 상이한 것을 특징으로 한다.
바람직하게는, 상기 유효비트 선별부는 상기 메모리 구조체에서 세 개의 8비트를 읽고, 상기 8비트에 대한 상기 읽기 어드레스 값을 이용하여 널 비트의 위치를 나타내는 부가정보를 생성하되, 상기 세 개의 8비트 중 하나의 8비트를 선택하고, 선택된 상기 하나의 8비트에 상응하는 부가정보를 선택하는 것을 특징으로 한다.
바람직하게는, 상기 유효비트 선별부는 상기 부가정보를 이용하여 선택된 상기 하나의 8비트에 포함된 널 비트를 제거하고, 상기 하나의 8비트를 8개 복사하여 8x8 구조를 생성하되, 상기 하나의 8비트의 각 비트에 해당하는 널 비트를 8비트 크기로 확장한 후 비트 단위로 논리곱(AND) 연산을 수행하여 널 비트를 제거하여 상기 유효비트를 생성하는 것을 특징으로 한다.
바람직하게는, 상기 유효비트 선별부는 상기 유효비트를 생성하면서 상기 유효비트에 포함된 각 비트에 대하여 상기 각 비트보다 상위에 위치한 비트 중 널 비트의 수를 계산하여 이동되어야 할 위치정보를 나타내는 마스크 비트를 생성하고, 상기 유효비트를 8비트 박스(box)에 담으며, 상기 유효비트의 개수를 계산하여 출력하는 것을 특징으로 한다.
바람직하게는, 상기 변조부는 상기 8비트 박스를 저장하고, 배럴 시프터(Barrel shifter)를 이용하여 쉬프트(shift) 연산을 수행하되, 상기 배럴 시프터는 상기 유효비트의 개수, 상기 저장된 8비트 박스에 남아있는 유효비트의 개수 및 변조된 비트의 개수를 이용하여 쉬프트 수를 계산하는 것을 특징으로 한다.
바람직하게는, 상기 변조부는 상기 저장된 8비트 박스에 남아있는 유효비트의 개수가 상기 변조된 비트의 개수보다 크거나 같은 경우 상기 제어부가 상기 저장부에 대한 쓰기 신호 및 상기 변조부의 출력을 위한 신호를 정지하도록 하는 신호를 상기 제어부에 전달하는 것을 특징으로 한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 복수의 비트 단위로 처리되며 레이트 매칭에 활용될 수 있는 메모리 구조를 고안하며 해당 메모리에 읽고 쓰는 위치를 적절히 하여 레이트 매칭 신호처리 시간을 줄이는 효과가 있다.
또한, 본 발명은 레이트 매칭을 복수의 비트 단위로 함에 있어서 하드웨어 구현시 필요한 자원을 최적화한 효과가 있다.
그리고, 본 발명은 레이트 매칭 이후의 신호처리인 변조장치의 입력에 있어서 변조 모드에 따른 출력이 가능하도록 함으로써 변조장치의 신호처리 인터페이스를 단순화한 효과가 있다.
도 1은 종래의 순환 버퍼 기반의 레이트 매칭장치의 구성을 나타내는 블록도.
도 2는 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치의 구성을 나타내는 블록도.
도 3은 터보 부호화기를 위한 레이트 매칭 신호처리를 나타내는 블록도.
도 4는 길쌈 부호화기를 위한 레이트 매칭 신호처리를 나타내는 블록도.
도 5는 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치에 입력되는 입력 비트열 구조의 일 예를 나타내는 블록도.
도 6은 본 발명의 일 실시예에 따른 메모리 구조체의 상세도.
도 7은 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치에서 사용되는 인터리빙 방식의 차이를 나타내는 상관관계도.
도 8은 본 발명의 일 실시예에 따른 터보 부호화기 사용시 메모리 구조체의 입력 비트열 분산방식을 나타내는 블록도.
도 9는 본 발명의 일 실시예에 따른 길쌈 부호화기 사용시 메모리 구조체의 입력 비트열 분산방식을 나타내는 블록도.
도 10은 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치의 제어부의 상세블록도.
도 11는 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치의 유효비트 선별부의 상세블록도.
도 12은 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치의 변조부의 상세블록도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치의 구성을 나타내는 블록도이다. 도 2를 참조하면, 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치(200)는 제어부(210), 저장부(220), 유효비트 선별부(230) 및 변조부(240)를 포함하도록 구성되어 입력되는 3개의 비트열(
Figure 112012009652155-pat00053
)에 대하여 레이트 매칭을 수행하여 레이트 매칭 이후의 신호처리인 변조장치의 입력에 활용될 수 있는 비트열을 출력한다.
바람직하게는, 데이터 레이트 매칭장치(200)는 입력부를 추가로 포함하도록 구성될 수 있다.
입력부는 3개의 8비트 인터페이스를 가지며 각 8비트 인터페이스는 이전 신호처리단계인 부호화기에서 출력되는 3개의 부호화된 8비트 정보를 수신하도록 구현된다.
바람직하게는, 입력부는 8비트 입력 정보 외에 회로의 초기화를 위해 정보의 시작을 알려주는 시작신호 및 입력 정보의 유효여부를 판단하는 유효신호를 가질 수 있다.
또한 바람직하게는, 입력부는 32 비트 단위로 신호가 처리되도록 8비트 단위 구조를 유지하면서 32 비트 단위로 묶일 수 있도록 입력되는 비트열에 널 비트를 삽입할 수 있다. 삽입되는 널 비트의 개수는 최소 4개에서 최대 28개(4, 12, 20 또는 28)가 된다.
각 서브블록당 추가되는 널 비트의 개수는 아래의 공식에 따라 결정된다.
Number of Nulls = 32 - {(K + 4) mod 32}
제어부(210)는 데이터 레이트 매칭장치(200)에 입력되는 복수의 비트 단위인 3개의 비트열(
Figure 112012009652155-pat00054
)에 대하여 각각 다른 규칙으로 비트열의 비트들을 섞어서 저장하고 읽어내기 위한 제어 신호를 발생한다.
본 발명의 바람직한 일 실시예에 따르면, 복수의 비트 단위는 8비트 단위이다.
바람직하게는, 제어 신호는 입력되는 비트열을 저장부(220)에 저장하기 위한 저장부(220)에 대한 신호와 유효비트 선별부(230)가 저장부(220)에 저장된 비트열을 읽어내기 신호로 구분될 수 있다.
본 발명의 바람직한 다른 실시예에 따르면, 제어부(210)는 변조부(240)에 저장된 8비트 박스에 남아있는 유효비트의 개수가 변조된 비트의 개수보다 크거나 같은 경우 저장부(220)에 대한 쓰기 신호 및 변조부(240)의 출력을 위한 신호를 정지한다.
저장부(220)는 제어부(210)가 발생한 제어 신호에 따라 데이터 레이트 매칭장치(200)에 입력되는 복수의 비트 단위인 3개의 비트열(
Figure 112012009652155-pat00055
)을 저장한다.
바람직하게는, 제어부(210)는 3개의 비트열(
Figure 112012009652155-pat00056
)이 부호화된 종류에 따라 다르게 섞는다.
또한, 바람직하게는, 제어부(210)는 외부로부터 레이트 매칭 신호처리에 필수적인 파라미터를 받아 레이트 매칭 신호처리의 시작과 끝을 제어하고 쓰기 어드레스 생성 및 읽기 어드레스 생성을 할 수 있다.
터보 부호화된 경우, 제어부(210)는 첫 번째와 두 번째 입력 비트열에 대하여 표 1에서 설명한 규칙으로 섞으며 세 번째 입력 비트열에 대하여 표 1과 아래 수식에 의하여 섞는다. 길쌈 부호화된 경우, 제어부(210)는 세 개의 입력 비트열에 대하여 표 2에서 설명한 규칙으로 섞는다.
Figure 112012009652155-pat00057

본 발명은 표 1, 표 2 및 상기 수식을 8비트 단위로 처리가 가능하도록 하드웨어상 구현함에 있어서 메모리소자 없이 카운터와 로직의 단순한 구성을 통해 구현한 효과가 있다.
표 1에 의하여 입력 비트열이 섞이는 경우를 정리하면 아래의 표와 같다.
k (십진) k (이진) P(k) (십진) P(k) (이진) Bank ID
0 00000 0 00000 0
1 00001 16 10000 4
2 00010 8 01000 2
3 00011 24 11000 6
4 00100 4 00100 1
5 00101 20 10100 5
6 00110 12 01100 3
7 00111 28 11100 7
8 01000 2 00010 0
9 01001 18 10010 4
10 01010 10 01010 2
11 01011 26 11010 6
12 01100 6 00110 1
13 01101 22 10110 5
14 01110 14 01110 3
15 01111 30 11110 7
16 10000 1 00001 0
17 10001 17 10001 4
18 10010 9 01001 2
19 10011 25 11001 6
20 10100 5 00101 1
21 10101 21 10101 5
22 10110 13 01101 3
23 10111 29 11101 7
24 11000 3 00011 0
25 11001 19 10011 4
26 11010 11 01011 2
27 11011 27 11011 6
28 11100 7 00111 1
29 11101 23 10111 5
30 11110 15 01111 3
31 11111 31 11111 7
상기 표 3에서 나타난 바와 같이, 32 비트 단위로 처리되는 구조체를 위하여 5 비트의 카운터를 마련하고 이를 0부터 31까지 반복하여 증가시킬 때 표 1에 의하여 섞여지는 위치는 상기 마련한 5 비트의 카운터의 비트들의 위치를 서로 바꾼 것과 동일하다. 즉, 상기 5 비트의 카운터의 비트 위치를 바꾸면 표 1의 변환이 간단히 이루어지도록 할 수 있다.
또한, 비트 위치를 서로 바꾼 새로운 카운터에서 상위 3 비트는 반복적으로 나타나는데, 이를 메모리 구조체(221. 222, 223)의 각 뱅크 번호로 이용하여 8비트의 입력을 동시에 1 뱅크 당 1 비트 형태로 입력되도록 할 수 있다.
표 2에 의하여 입력 비트열이 섞이는 경우를 정리하면 아래의 표와 같다.
k (십진) k (이진) P(k) (십진) P(k) (이진) Bank ID
0 00000 1 00001 7
1 00001 17 10001 0
2 00010 9 01001 4
3 00011 25 11001 2
4 00100 5 00101 6
5 00101 21 10101 1
6 00110 13 01101 5
7 00111 29 11101 3
8 01000 3 00011 7
9 01001 19 10011 0
10 01010 11 01011 4
11 01011 27 11011 2
12 01100 7 00111 6
13 01101 23 10111 1
14 01110 15 01111 5
15 01111 31 11111 3
16 10000 0 00000 7
17 10001 16 10000 0
18 10010 8 01000 4
19 10011 24 11000 2
20 10100 4 00100 6
21 10101 20 10100 1
22 10110 12 01100 5
23 10111 28 11100 3
24 11000 2 00010 7
25 11001 18 10010 0
26 11010 10 01010 4
27 11011 26 11010 2
28 11100 6 00110 6
29 11101 22 10110 1
30 11110 14 01110 5
31 11111 30 11110 3
상기 표 4에서 나타난 바와 같이, 32 비트 단위로 처리되는 구조체를 위하여 5 비트의 카운터를 마련하고 이를 0부터 31까지 반복하여 증가시킬 때 표 2에 의하여 섞여지는 위치는 상기 마련한 5 비트의 카운터의 비트들의 위치를 서로 바꾼 다음 결과값의 LSB(Least significant bit)만 보수를 취하는것과 동일하다. 즉, 상기 5 비트의 카운터의 비트 위치를 바꾼 다음 결과값의 LSB만 보수를 취하면 표 2의 변환이 간단히 이루어지도록 할 수 있다.
또한, 뱅크 번호의 계산은 마련한 상기 5 비트의 카운터에서 1을 뺀 다음, 비트 위치를 서로 바꾸고 상위 3 비트를 취함으로써 가능하다.
표 1과 상기 공식에 의하여 입력 비트열이 섞이는 경우를 정리하면 아래의 표와 같다.
k (십진) k (이진) Pi(k) (십진) Pi(k) (이진) Bank ID
0 00000 1 00001 7
1 00001 17 10001 0
2 00010 9 01001 4
3 00011 25 11001 2
4 00100 5 00101 6
5 00101 21 10101 1
6 00110 13 01101 5
7 00111 29 11101 3
8 01000 3 00011 7
9 01001 19 10011 0
10 01010 11 01011 4
11 01011 27 11011 2
12 01100 7 00111 6
13 01101 23 10111 1
14 01110 15 01111 5
15 01111 31 11111 3
16 10000 2 00010 7
17 10001 18 10010 0
18 10010 10 01010 4
19 10011 26 11010 2
20 10100 6 00110 6
21 10101 22 10110 1
22 10110 14 01110 5
23 10111 30 11110 3
24 11000 4 00100 7
25 11001 20 10100 0
26 11010 12 01100 4
27 11011 28 11100 2
28 11100 8 01000 6
29 11101 24 11000 1
30 11110 16 10000 5
31 11111 0 00000 3
상기 표 5에서 나타난 바와 같이, 32 비트 단위로 처리되는 구조체를 위하여 5 비트의 카운터를 마련하고 이를 0부터 31까지 반복하여 증가시킬 때 표 1과 상기 공식에 의하여 섞여지는 위치는 상기 마련한 5 비트의 카운터의 비트들의 위치를 서로 바꾼 다음 1을 더하는 것과 동일하다. 즉, 상기 5 비트의 카운터의 비트 위치를 바꾼 다음 1을 더하면 표 1과 상기 공식에 의한 변환이 간단히 이루어지도록 할 수 있다.
또한, 뱅크 번호의 계산은 상기 표 4를 이용한 방법과 동일하게 생성된다.
도 3은 터보 부호화기를 위한 레이트 매칭 신호처리를 나타내는 블록도이며, 도 4는 길쌈 부호화기를 위한 레이트 매칭 신호처리를 나타내는 블록도이다. 데이터 레이트 매칭장치(200)가 입력 비트열의 부호화된 종류에 따라 비트열의 신호처리를 어떻게 상이하게 하는지 도 3과 도 4에 도시되어 있다.
도 7은 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치에서 사용되는 인터리빙 방식의 차이를 나타내는 상관관계도이다. 도 7은 상기 기재한 표 3, 표 4, 표 5의 상관관계를 보다 쉽게 이해할 수 있도록 나타낸다. 도 7은 표 3을 기준으로 표 4는 표 3의 상반부와 하반부를 바꾸는 작업을 4회 수행하면 표 5를 얻을 수 있음을 보여준다.
다시 도2를 참조하면, 본 발명의 바람직한 일 실시예에 따르면, 저장부(220)는 3개의 비트열(
Figure 112012009652155-pat00058
)이 각각 저장되는 3개의 메모리 구조체(221, 222, 223)를 포함하도록 구성된다.
각 메모리 구조체(221, 222, 223)는 1 비트 단위로 입력과 출력이 가능하고, 8개의 뱅크(bank), 8개의 행, 96개의 열로 이루어진다. 또한, 각 메모리 구조체(221, 222, 223)는 각 뱅크에 1 비트씩 비트열을 할당하여 저장한다.
본 발명의 바람직한 일 실시예에 따르면, 각 메모리 구조체(221, 222, 223)는 데이터 레이트 매칭장치(200)에 입력되는 복수의 비트 단위인 3개의 비트열(
Figure 112012009652155-pat00059
)이 부호화된 종류에 따라 쓰기 어드레스와 읽기 어드레스가 상이하다.
도 6은 본 발명의 일 실시예에 따른 메모리 구조체의 상세도이다. 도 6을 참조하면, 메모리 구조체(221, 222, 223)은 입력되는 3개의 입력 비트열을 각 1 비트씩 뱅크 ID에 의해 분류하여 저장한다. 메모리 구조체(221, 222, 223)는 각 1비트씩 각 행으로부터 읽혀진다.
이를 상세하게 설명하면, 메모리 구조체(221, 222, 223)는 도 7에서 도시된 바와 같이 각 비트를 표 2에서 정해진 뱅크 ID를 참조하여 각 뱅크에 분배한다. 이 때 첫 8비트는 행(Column) 0, 열(Row) 0에, 다음 8비트는 행(Column) 0 열(Row) 2에, 다음 8비트는 행(Column) 0, 열(Row) 1에, 다음 8비트는 행(Column) 0, 열(Row) 3에 저장하여 첫 32 비트의 저장을 마무리한다. 다음 32 비트는 행(Column) 1에 저장하되 열(Row)은 첫 32 비트와 동일하게 0, 2, 1, 3의 순서를 따른다. 이와 같은 방식으로 행(Column) 7까지 가면 모두 256 비트의 입력 비트열의 저장이 완료된다. 다음 256 비트는 동일한 순서를 따르되 저장되는 열(Row)이 4,6,5,7의 순서로 바뀌게 된다. 즉, 열(Row)의 증가순서는 0, 2, 1, 3으로 4개씩 묶여져서 모두 24개의 [0,2,1,3] 묶음이 존재하게 되어 메모리 구조체(221, 222, 223)에 6144 비트가 모두 저장된다.
도 8은 본 발명의 일 실시예에 따른 터보 부호화기 사용시 메모리 구조체의 입력 비트열 분산방식을 나타내는 블록도이다. 쓰기 어드레스는 각 메모리 구조체(221, 222, 223)에 공통으로 사용되도록 구성되나 터보 부호화된 입력 비트열은 세 번째 메모리 구조체(223)에 저장되는 비트열의 섞임이 다르므로 상이하다. 도 8은 이러한 상이점을 보여준다.
다시 도 7을 참조하면, 메모리 구조체(221, 222, 223)는 읽어지는 경우 각 행 0~7로부터 8비트씩 뱅크 ID를 0부터 7까지 증가시켜 가면서 순서대로 읽혀진다. 입력 비트열의 크기가 64인 경우, 64개의 입력 비트들은 행 0과 1 그리고 열 0 ~ 3 사이에 위치하게 되므로 읽기 순서는 뱅크 0에서 열 0, 1, 2, 3, 뱅크 1에서 열 0, 1, 2, 3, 계속하여 뱅크 7에서 열 0, 1, 2, 3 이 된다. 단, 실제로 입력 비트들이 존재하는 행은 0 번과 1번이므로 읽어낸 8비트 중 유효비트는 2개이고 이들은 비트 0 와 비트 1 이 된다. 입력 비트열의 크기가 6144인 경우, 읽기 순서는 뱅크 0에서 열 0, 4, 8, 12,…, 88, 92, 열 1, 5, 9, 13,…, 89, 93, 열 2, 6, 10, 14,…, 90, 94, 열 3, 7, 11, 15,…, 91, 95 가 되고 다음으로 뱅크 1에서 동일한 순서로 읽게되며 뱅크 7까지 진행되면 8비트 단위 읽기동작이 완료된다.
바람직하게는, 메모리 구조체(221, 222, 223)는 1비트 단위로 저장이 가능한 96개의 열(Row)이 8개 (Column)로 구성된 행렬구조로 이루어진 메모리 Bank가 8개 존재하는 3차원 Cube 형태의 메모리 구조체 3개 (221, 222, 223)로 이루어진다. 각 메모리 구조체(221, 222, 223)는 상기 구조설명에서 알 수 있듯이 6144개의 비트를 저장할 수 있는 공간을 제공하며 1비트 단위로 접근이 가능한 구조상의 특징을 이용하여 본 메모리에 쓰기 동작을 수행할 때는 입력되는 8비트 정보가 각 뱅크에 1 비트씩 나뉘어 저장되며 각 뱅크에 저장되는 8비트 정보의 배분은 사용되는 부호화기의 종류에 따라 달라지게 된다. 또한 터보 부호화기의 경우 읽어내기의 용이성을 고려하여 마지막 메모리 구조체(223)에 입력되는 열 어드레스의 최하위 2 비트를 아래와 같이 재매핑(re-map)하여 사용한다.
공용 Row_ADDR[1:0] 실제 Row_ADDR[1:0]
00 11
01 00
10 10
11 01
예를 들면, 입력되는 8비트 정보를 d(0),d(1),d(2),d(3),d(4),d(5),d(6),d(7) 라고 할 때, 터보 부호화기와 길쌈 부호화기의 선택에 따라 도 8 및 도 9에 도시된 것과 같이 저장한다. 각 비트가 저장되는 위치인 열(Row) 어드레스는 0부터 95까지의 값을 갖게 되는데 첫 번째 행(Column)에서 열(Row) 어드레스 {0,2,1,3}의 순서로 입력 비트가 저장되고 다음 행(Column)으로 이동하여 열(Row) 어드레스 {0,2,1,3}을 채우게 된다. 이와 같은 방식으로 8개의 행(Column)을 모두 채우게 되면 4 (Row) x 8 (Column) x 8 (Bank) 비트, 즉 256 비트의 저장이 완료된다. 두 번째 256 비트는 열(Row) 어드레스 {4,6,5,7} 의 순서로 위와 동일한 방법을 이용하여 저장이 된다. 열(Row) 어드레스를 4개씩 구분하고 그 저장순서를 {0,2,1,3}으로 고안한 이유는 저장된 비트들을 읽어내기 쉽게 배치하기 위함이다.
비트열을 저장할 때에는 각 Bank에 1 비트씩 배분했으나 이를 읽어낼 때는 8개의 행(Column)에서 8비트를 취하게 된다. 이 때 열(Row) 어드레스는 기본적으로 매 256 비트마다 {0,1,2,3}의 순서로 증가하되 257 비트 이상 512 비트 이하인 경우에는 {0,4,1,5,2,6,3,7}의 순서로 증가하도록 한다. Bank 0 에서 행(Column)과 열(Row)에 대한 읽기 동작이 끝나면 Bank 1 으로 이동하여 위와 동일한 순서로 저장된 비트들을 읽어내고 Bank 7까지 읽어내면 모든 읽기 동작이 마무리된다.
각 비트들이 위치해야 할 열(Row), 행(Column), Bank를 지정하는 어드레스와 이들을 읽어내기 위한 어드레스는 상기 설명한대로 생성하려면 약간 복잡해보이지만 이들의 특성을 잘 이용하면 단조 증가 카운터에서 일부 비트들의 위치만 바꾸는 것으로 쉽게 생성될 수 있다.
도 10은 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치의 제어부의 상세블록도이다. 도 10을 참조하면, 제어부(210)는 타이밍 제어장치(211), 쓰기 어드레스 카운터(212), 읽기 어드레스 카운터(213)를 포함하도록 구성된다.
제어부(210)는 외부로부터 입력 비트열의 시작을 알리는 신호가 들어오면 타이밍 제어장치(211)를 통해 쓰기 어드레스 카운터(212)가 리셋되어 단조 증가를 시작하고 이 카운터로부터 열(Row), 행(Column), Bank 어드레스에 해당하는 비트들을 추출하여 저장부(220) 내에 있는 세 개의 메모리 구조체의 쓰기 포트로 입력된다. 입력이 완료되거나 혹은 입력이 진행된 후 일정시간 후에 타이밍 제어장치(211)의 신호에 의해 읽기 어드레스 카운터(213)가 단조 증가를 시작하고 이 카운터로부터 열(Row), 행(Column), Bank 어드레스에 해당하는 비트들을 추출하여 저장부(220) 내에 있는 세 개의 메모리 구조체의 읽기 포트로 입력된다. 읽기 어드레스의 초기값은 외부로부터 입력되는
Figure 112012009652155-pat00060
값에 의하여 결정된다. 읽기 어드레스의 단조 증가는 총 유효비트 개수인
Figure 112012009652155-pat00061
값을 만족될 때까지 수행된다.
타이밍 제어장치(211)는 입력된 레이트 매칭 파라미터에 의하여 읽기 어드레스 카운터(213)의 값에 따라 현재 3개의 메모리 구조체(221, 222, 223)로부터 읽혀진 3개의 8비트 정보 중 모든 비트에 대하여 각각 널 플래그(Null flag)을 생성한다.
널 플래그는 해당 비트가 널 비트인지 판단하는 지표이다. 널 플래그는 해당 정보 비트와 함께 유효비트 선별부(230)로 전송된다. 또한 3개의 메모리 구조체(221, 222, 223)로부터 읽혀지는 8비트 정보 중 어떤 구조체의 정보를 사용할 것인가에 대한 선택을 위한 신호(SEL)를 생성하여 유효비트 선별부(230)로 전송한다.
제어부(210)는 저장부(220)로부터 올라오는 모든 정보를 하나의 환형 메모리 상에 존재하는 것으로 간주하는데 외부로부터 입력되는 값에 의해 읽기동작의 시작위치를 결정한다. 제어부(210)는 상기 시작위치 정보를 알게 되면 그 위치에 있는 정보의 널(Null) 여부 또는 유효비트 여부를 열(Row), 행(Column), Bank 어드레스를 이용하여 서브블록 인터리빙 이전의 위치를 구할 수 있고 그 위치정보를 통해 해당 비트가 널 비트인지 여부를 판단한다.
또한, 읽기 어드레스 카운터(213)는 변조부(240)로부터 저장부(220)에 대한 쓰기 신호 및 변조부(240)의 출력을 위한 신호를 정지하도록 하는 신호가 들어오는 경우 신호가 사라질 때까지 정지한 상태로 유지된다.
다시 도 2를 참조하면, 바람직하게는, 데이터 레이트 매칭장치(200)는 3개의 메모리 구조체(221, 222, 223)를 하나의 환형버퍼로 설정하고 각 메모리 구조체(221, 222, 223)가 서브블록 인터리빙 및 비트 선택(Bit Collection, Bit Pruning)을 위한 공통 메모리로 사용될 수 있다.
바람직하게는, 데이터 레이트 매칭장치(200)는 환형버퍼에서 시작위치를 지정하여, 지정된 시작위치에서부터 입력 비트들을 읽어내고 신호처리를 위해 삽입된 널 비트들과 저장되지 않은 메모리 공간으로부터 나온 무효비트들을 제거한 다음 변조 방식에 따라 2, 4, 6, 혹은 그 이상의 비트 단위로 출력을 만들어주도록 구성될 수 있다.
또한, 데이터 레이트 매칭장치(200)는 시작위치 정보를 이용하여 읽어야 할 열의 위치와 뱅크 ID를 계산하고 8개의 행으로부터 8개의 비트를 읽어내는 동시에 시작위치 정보를 이용하여 읽은 8개의 비트 각각에 대해 널 비트 여부와 무효비트 여부를 조사하여 유효비트만 출력한다.
그리고, 데이터 레이트 매칭장치(200)는 널 비트 여부를 판단함에 있어서 읽어낸 비트의 인터리빙전의 위치를 표 3, 4, 5를 참조하여 계산한 뒤 비교하여 널 비트의 개수보다 작으면 널 비트의 수로 판단하며 크면 유효비트로 판단한다.
데이터 레이트 매칭장치(200)는 무효비트 여부를 판단함에 있어서 8개의 행으로부터 읽혀지는 8개의 비트의 유효여부는 해당 비트의 원래 위치와 입력 비트열의 크기를 비교하여 입력 비트열의 크기가 크면 무효로 작으면 유효로 판단한다.
유효비트 선별부(230)는 제어부(210)가 발생한 제어 신호에 따라 저장부(220)에 저장된 비트를 읽는다. 또한, 유효비트 선별부(230)는 읽은 비트 중 일부의 비트를 선택하고 선택한 일부의 비트에 해당하는 유효비트를 생성한다.
본 발명의 바람직한 일 실시예에 따르면, 유효비트 선별부(230)는 저장부(210)에서 3개의 8비트 크기인 비트를 읽고, 읽은 3개의 8비트 크기인 비트 중 1개의 8비트 크기의 비트를 선택한다.
본 발명의 바람직한 다른 실시예에 따르면, 유효비트 선별부(230)는 메모리 구조체(221, 222, 223)의 각 행에서 1 비트씩 읽는다.
본 발명의 바람직한 또 다른 실시예에 따르면, 유효비트 선별부(230)는 메모리 구조체(221, 222, 223)에서 3개의 8비트를 읽고, 읽은 각 8비트에 대한 읽기 어드레스 값을 이용하여 널 비트의 위치를 나타내는 부가정보를 생성한다.
또한, 유효비트 선별부(230)는 읽은 3개의 8비트 중 하나의 8비트를 선택하고, 선택한 하나의 8비트에 상응하는 부가정보를 생성한다.
본 발명의 바람직한 또 다른 실시예에 따르면, 유효비트 선별부(230)는 생성한 부가정보를 이용하여 선택된 하나의 8비트에 포함된 널 비트를 제거하고, 선택된 하나의 8비트를 8개 복사하여 8x8 구조를 생성한다.
또한, 유효비트 선별부(230)는 선택한 하나의 8비트의 각 비트에 해당하는 널 비트를 8비트 크기로 확장한 후 비트 단위로 논리곱(AND) 연산을 수행함으로써 상기 널 비트를 동시에 제거하여 유효비트를 생성한다.
본 발명의 바람직한 또 다른 실시예에 따르면, 유효비트 선별부(230)는 논리곱(AND) 연산을 통하여 널 비트가 제거된 유효비트를 생성하면서 각 유효비트에 대하여 각 유효비트 자신보다 상위에 위치한 비트 중 널 비트의 수를 계산하여 이동되어야 할 위치정보를 나타내는 마스크 비트를 생성한다.
또한, 유효비트 선별부(230)는 생성한 유효비트를 8비트 박스에 담는다.
바람직하게는, 유효비트 선별부(230)는 생성한 유효비트를 8비트 박스에 담을 때 LSB(Least significant bit) 또는 MSB(Most significant bit) 방향으로 모이도록 담을 수 있다.
그리고, 유효비트 선별부(230)는 생성한 유효비트의 개수를 계산하여 출력한다.
바람직하게는, 유효비트 선별부(230)는 제어부(210)의 제어신호를 받아 선택한 8비트 정보에 해당하는 널 비트 또는 무효비트 여부를 표시하는 추가 정보 8비트를 생성하여 출력한다.
도 11은 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치의 유효비트 선별부의 상세블록도이다. 도 11을 참조하면, 유효비트 선별부(230)는 저장부(220)로부터 읽혀진 세 개의 8비트 정보를 받아 그 중 한 개의 8비트 정보를 선택하는 입력선택장치(231), 제어부(210)로부터 제어 신호를 받아 선택된 8비트 정보에 해당하는 널 여부를 표시하는 추가 정보 8비트를 참조하여 유효 비트의 개수를 계산하는 유효비트 카운터(232), 선택된 입력정보 8비트에서 널 비트가 제거된 빈 자리에 유효비트를 밀어넣어 조합하는 유효비트 조합장치 (233)로 구성된될 수 있다.
입력선택장치(231)는 세 개의 8비트 입력 중 하나를 선택하면서 이에 해당하는 널 표식 정보도 함께 선택한다. 널 표식 정보는 유효비트 카운터(232)로 전송되어 유효비트의 개수를 계산하는데 활용된다.
유효비트 조합장치(233)는 널 비트를 제거하고 빈 공간에 유효비트를 밀어넣는 작업을 한번에 수행하기 위하여 입력 비트를 확장하는 방식을 이용한다. 먼저 입력 각 비트의 위치에서 널 비트 표식을 검사하여 자신의 위치보다 MSB(Most significant bit) 방향에 위치한 비트들 중 널 비트의 수를 계산한다. 유효비트 조합장치(233)는 계산한 널 비트의 개수에 따라 마스크 정보를 생성한다. 예를 들면, 마스크 정보는 MSB 방향에 위치한 널 비트의 개수가 n개 이면 마스크 정보는 특정 비트와 같은 위치에 있는 비트에서 n번째 비트만 1로 하고 나머지 비트는 0으로 놓는다. 유효비트 조합장치(233)는 이러한 방식을 입력 8비트의 LSB에서 MSB 방향으로 매 비트마다 수행하여 마스크 정보를 생성할 수 있다. 마스크 정보는 특정 유효비트를 원하는 위치로 보내기 위한 수단으로 이용된다.
유효비트 조합장치(233)는 입력 8비트에서 각 비트를 8개씩 복사하여 8 x 8 구조로 만들고, 각 비트에 해당하는 널 비트 표식의 보수를 취해 이를 논리곱(AND) 연산하여 널이 아닌 부분은 입력 비트를 그대로 유지하고 널인 부분은 모두 0 으로 만든다. 유효비트 조합장치(233)는 이 결과와 마스크를 논리곱(AND) 연산하고 비트단위로 논리합(OR) 연산하여 8비트 입력 중에서 널 표식이 있는 비트들은 0이 되고 유효비트들은 MSB 쪽으로 모이도록 한다.
변조부(240)는 유효비트 선별부(230)에서 선택한 일부의 비트와 생성한 유효비트를 변조방식에 따라 일정 비트 단위로 조합하여 출력한다.
바람직하게는, 변조부(240)는 2, 4, 6 혹은 그 이상의 비트 단위로 비트를 조합하여 출력한다.
본 발명의 바람직한 일 실시예에 따르면, 변조부(240)는 8비트 박스를 임시적 공간에 저장하고 배럴 시프터를 이용하여 쉬프트 연산을 수행한다.
배럴 시프터는 유효비트 선별부(230)가 출력한 유효비트의 개수, 저장된 8비트 박스에 남아있는 유효비트의 개수 및 변조된 비트의 개수를 이용하여 쉬프트 수를 계산한다.
도 12는 본 발명의 일 실시예에 따른 데이터 레이트 매칭장치의 변조부의 상세블록도이다. 도 12를 참조하면, 변조부(240)는 8비트의 2배수인 16 비트의 정보를 받아서 쉬프트 수 만큼 쉬프트된 출력을 생성하는 배럴 시프터(Barrel Shifter)(241, 242), 유효비트 개수 정보를 이용하여 쉬프트 수를 계산하고 변조방식에 따른 출력가능 비트 수를 이용하여 제어부(210) 내의 타이밍 제어장치 (211)와 유효비트 선별부(230)의 흐름을 제어하는 신호(저장부(220)에 대한 쓰기 신호 및 변조부(240)의 출력을 위한 신호를 정지하도록 하는 신호)를 생성하는 쉬프트 제어장치(242), 쉬프트 수를 이용하여 두개의 배럴 시프터(241, 242) 출력을 각 비트별로 선택신호를 생성하는 선택신호 생성장치(244), 두개의 배럴 시프터(241, 242)로부터의 입력과 마스크의 연산을 통하여 16 비트 출력을 만들고 최상위 6 비트를 선택하여 유효신호와 함께 출력하는 변조용 데이터 조합장치(245)로 구성된다.
배럴 시프터(241, 242)는 임의의 정보를 임의의 자리 수 만큼 좌측 혹은 우측으로 shift 시킬 때 사용하는 회로이다. 본 발명의 일 실시예에서는 16 비트 정보에 대한 쉬프트 연산을 하도록 되어 있으며 최대 쉬프트 수는 8 이다.
첫 번째 배럴 시프터(241)의 입력은 상위 8비트는 모두 0 이고 하위 8비트는 유효비트 선별부(230)의 출력 8비트가 된다.
두 번째 배럴 시프터(242)의 입력은 변조용 데이터 조합장치(245) 내에 있는 16 비트 레지스터 값이다.
선택신호 생성장치(244)는 생성한 16 비트 선택정보를 이용하여 두 개의 배럴 시프터(241, 242)의 출력을 비트단위로 선택된 결과를 저장한다. 이 저장값의 상위 2, 4, 6, 또는 그 이상의 비트는 변조방식에 따라 최종 출력포트로 전송된다.
상기 16 비트 레지스터에 남겨진 나머지 유효비트들은 다음 사이클에 출력포트로 나가기 위해 두 번째 배럴 시프터(242)로 입력된다.
첫 번째 배럴 시프터(241)에 주어지는 쉬프트 비트 개수는 현재 변조용 데이터 조합장치(245)의 16 비트 레지스터에서 출력포트로 전송되는 유효출력을 제외하고 남은 유효비트 수의 8의 보수로 결정되는데, 만약 남은 유효비트 수가 변조방식에 따른 유효출력 비트 수(2, 4, 6, 또는 그 이상)보다 같거나 큰 경우에는 0으로 된다. 이때에는 유효비트 선별부(230)로부터 새로운 입력을 받을 필요가 없으므로 쉬프트 제어장치(243)는 제어신호를 생성하여 타이밍 제어장치(211), 유효비트 카운터(232), 유효비트 조합장치(233)를 일시 정지시켜서 남은 유효비트들이 두 번째 배럴 시프터(242)를 통해 출력포트로 전달될 수 있는 시간을 확보한다. 두 번째 배럴 시프터(242)에 주어지는 쉬프트 비트 개수는 현재 변조방식에 따른 유효비트 수 (2, 4, 6, 또는 그 이상)로 결정된다.
이상에서는 본 발명의 바람직한 실시예 및 응용예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
200: 데이터 레이트 매칭장치 210: 제어부
220: 저장부 230: 유효비트 선별부
240: 변조부

Claims (8)

  1. 복수의 비트 단위로 입력되는 3개의 비트열에 대하여 각각 다른 규칙으로 상기 비트열의 비트들을 섞어서 저장하고 읽어내기 위한 제어 신호를 발생하는 제어부;
    입력되는 상기 비트열을 상기 제어 신호에 따라 저장하는 저장부;
    상기 저장부에서 상기 제어 신호에 따라 복수의 비트 단위의 3개의 비트열을 읽고, 읽혀진 상기 비트열 중 일부의 비트열을 선택하고 상기 일부의 비트열에 해당하는 유효비트를 생성하는 유효비트 선별부; 및
    상기 일부의 비트열과 상기 유효비트를 변조방식에 따라 일정 비트 단위로 조합하여 출력하는 변조부;를 포함하는 것
    을 특징으로 하는 데이터 레이트 매칭장치.
  2. 제1항에 있어서,
    상기 복수의 비트 단위는 8비트 단위이고,
    상기 일부의 비트열은 읽혀진 상기 비트열 중 선택된 하나의 비트열이고,
    상기 저장부는 입력되는 상기 비트열이 각각 저장되는 3개의 메모리 구조체를 포함하되,
    상기 메모리 구조체는 1 비트 단위로 입력과 출력이 가능하고, 8개의 뱅크(bank), 8개의 행, 96개의 열로 이루어지고, 상기 비트열을 각 뱅크에 1 비트씩 할당하여 저장하며,
    상기 유효비트 선별부는 상기 메모리 구조체에서 각 행에서 1 비트씩 읽는 것
    을 특징으로 하는 데이터 레이트 매칭장치.
  3. 제2항에 있어서,
    상기 메모리 구조체는 입력되는 상기 비트열이 부호화된 종류에 따라 쓰기 어드레스와 읽기 어드레스가 상이한 것
    을 특징으로 하는 데이터 레이트 매칭장치.
  4. 제2항에 있어서,
    상기 유효비트 선별부는 상기 메모리 구조체에서 세 개의 8비트를 읽고, 상기 8비트에 대한 읽기 어드레스 값을 이용하여 널 비트의 위치를 나타내는 부가정보를 생성하되,
    상기 세 개의 8비트 중 하나의 8비트를 선택하고, 선택된 상기 하나의 8비트에 상응하는 부가정보를 선택하는 것
    을 특징으로 하는 데이터 레이트 매칭장치.
  5. 제4항에 있어서,
    상기 유효비트 선별부는 상기 부가정보를 이용하여 선택된 상기 하나의 8비트에 포함된 널 비트를 제거하고, 상기 하나의 8비트를 8개 복사하여 8x8 구조를 생성하되,
    상기 하나의 8비트의 각 비트에 해당하는 널 비트를 8비트 크기로 확장한 후 비트 단위로 논리곱(AND) 연산을 수행하여 널 비트를 제거하여 상기 유효비트를 생성하는 것
    을 특징으로 하는 데이터 레이트 매칭장치.
  6. 제5항에 있어서,
    상기 유효비트 선별부는 상기 유효비트를 생성하면서 상기 유효비트에 포함된 각 비트에 대하여 상기 각 비트보다 상위에 위치한 비트 중 널 비트의 수를 계산하여 이동되어야 할 위치정보를 나타내는 마스크 비트를 생성하고,
    상기 유효비트를 8비트 박스(box)에 담으며,
    상기 유효비트의 개수를 계산하여 출력하는 것
    을 특징으로 하는 데이터 레이트 매칭장치.
  7. 제6항에 있어서,
    상기 변조부는 상기 8비트 박스를 저장하고, 배럴 시프터(Barrel shifter)를 이용하여 쉬프트(shift) 연산을 수행하되,
    상기 배럴 시프터는 상기 유효비트의 개수, 상기 저장된 8비트 박스에 남아있는 유효비트의 개수 및 변조된 비트의 개수를 이용하여 쉬프트 수를 계산하는 것
    을 특징으로 하는 데이터 레이트 매칭장치.
  8. 제7항에 있어서,
    상기 변조부는 상기 저장된 8비트 박스에 남아있는 유효비트의 개수가 상기 변조된 비트의 개수보다 크거나 같은 경우 상기 제어부가 상기 저장부에 대한 쓰기 신호 및 상기 변조부의 출력을 위한 신호를 정지하도록 하는 신호를 상기 제어부에 전달하는 것
    을 특징으로 하는 데이터 레이트 매칭장치.
KR1020120011968A 2012-02-06 2012-02-06 데이터 레이트 매칭장치 및 방법 KR101286022B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120011968A KR101286022B1 (ko) 2012-02-06 2012-02-06 데이터 레이트 매칭장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120011968A KR101286022B1 (ko) 2012-02-06 2012-02-06 데이터 레이트 매칭장치 및 방법

Publications (1)

Publication Number Publication Date
KR101286022B1 true KR101286022B1 (ko) 2013-07-19

Family

ID=48997350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120011968A KR101286022B1 (ko) 2012-02-06 2012-02-06 데이터 레이트 매칭장치 및 방법

Country Status (1)

Country Link
KR (1) KR101286022B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020053335A (ko) * 2000-12-27 2002-07-05 송문섭 가변길이 복호화 장치
KR20040059342A (ko) * 2002-12-28 2004-07-05 엘지전자 주식회사 이동통신시스템의 데이터 전송을 위한 패러럴 래이트매칭장치
KR20080050191A (ko) * 2006-12-01 2008-06-05 한국전자통신연구원 통신 시스템의 디레이트 매칭 방법 및 장치
KR20110051789A (ko) * 2009-11-11 2011-05-18 한국전자통신연구원 디레이트 매칭과 디인터리빙을 처리하는 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020053335A (ko) * 2000-12-27 2002-07-05 송문섭 가변길이 복호화 장치
KR20040059342A (ko) * 2002-12-28 2004-07-05 엘지전자 주식회사 이동통신시스템의 데이터 전송을 위한 패러럴 래이트매칭장치
KR20080050191A (ko) * 2006-12-01 2008-06-05 한국전자통신연구원 통신 시스템의 디레이트 매칭 방법 및 장치
KR20110051789A (ko) * 2009-11-11 2011-05-18 한국전자통신연구원 디레이트 매칭과 디인터리빙을 처리하는 방법 및 장치

Similar Documents

Publication Publication Date Title
US10461778B2 (en) Interleaving and puncturing apparatus and method thereof
CN104915182B (zh) 具有位域操纵指令的数据处理装置及方法
US7170432B2 (en) Addresses generation for interleavers in turbo encoders and decoders
CN104617959B (zh) 一种基于通用处理器的ldpc编译码方法
CN101461173A (zh) 同音替代对称加密
CN104038232B (zh) 基于二次异或运算的测试数据压缩与解压缩方法
TWI424718B (zh) 無線通訊方法與系統
TW201445567A (zh) 半導體裝置及寫入/讀取登錄位址於半導體裝置中的方法
JP3008685B2 (ja) 可変長符号の復号化回路
CN105680877A (zh) 一种cc-qc-ldpc码的构建方法及译码装置
CN101151806B (zh) 利用映射函数周期性的存储器有效的交织/去交织
CN108288966A (zh) 极性Polar码的速率匹配处理方法及装置
KR101269901B1 (ko) Harq를 지원하는 데이터 디레이트 매처 및 방법
CN101754020A (zh) 用于编码的视频压缩的方法和系统
CN101783719A (zh) 一种速率匹配和解速率匹配方法、装置和通信系统
KR101286022B1 (ko) 데이터 레이트 매칭장치 및 방법
JP2000353965A (ja) インターリービング方法、インターリービング装置、ターボ符号化方法及びターボ符号化装置
CN106506010A (zh) 一种基于dvb‑s2标准多码率兼容的ldpc编码器
CN102594371B (zh) 一种Turbo编码交织处理的方法及装置
US6684365B1 (en) Encoding device and method, decoding device and method, providing medium, and method for generating data substitution position information
CN100558026C (zh) 一种信号交织图案的生成方法
JP2002527981A (ja) ターボ符号のためのハイブリッドインタリーバー
CN102480334B (zh) 一种速率匹配的方法及装置
CN105577196A (zh) 基于宽带OFDM电力线通信系统的Turbo码数据交织方法和交织器
CN112804026B (zh) 一种ofdm系统中频率、时频交织方法及系统

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: 20160609

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170608

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180627

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190625

Year of fee payment: 7