KR20070061738A - 인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의제어 방법 - Google Patents

인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의제어 방법 Download PDF

Info

Publication number
KR20070061738A
KR20070061738A KR1020060043481A KR20060043481A KR20070061738A KR 20070061738 A KR20070061738 A KR 20070061738A KR 1020060043481 A KR1020060043481 A KR 1020060043481A KR 20060043481 A KR20060043481 A KR 20060043481A KR 20070061738 A KR20070061738 A KR 20070061738A
Authority
KR
South Korea
Prior art keywords
memory
data
block
memory block
buffer
Prior art date
Application number
KR1020060043481A
Other languages
English (en)
Other versions
KR100764011B1 (ko
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 한국전자통신연구원
Publication of KR20070061738A publication Critical patent/KR20070061738A/ko
Application granted granted Critical
Publication of KR100764011B1 publication Critical patent/KR100764011B1/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/17Burst error correction, e.g. error trapping, Fire codes
    • 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/27Coding, 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 using interleaving techniques
    • 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)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의 제어 방법에 관한 것이다.
인터리빙과 디인터리빙을 수행할 때 인터리버 또는 디인터리버의 메모리를 다수의 블록으로 나누어 활용하며, 각 블록은 다수의 메모리 버퍼로 이루어진다. 그리고 메모리에 저장되는 데이터의 전송 방식과 변조 방식에 따라 서로 다른 메모리 버퍼 및 메모리 블록을 사용한다. 따라서 인터리빙 패턴을 임의의 ROM(Read Only Memory)에 저장하여 데이터를 읽어 들이는 과정이 필요하지 않게 된다.
그러므로, 추가적인 인터리빙/디인터리빙 패턴의 저장 없이 간단한 메모리 컨트롤만으로도 인터리빙과 디인터리빙을 수행할 수 있으며, 그 결과 메모리의 크기를 줄일 수 있다.
인터리버, 디인터리버, 메모리 활용, 무선 랜

Description

인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의 제어 방법{Apparatus and method for operating an interleaving and deinterleaving memory}
도 1은 본 발명의 실시예에 따른 인터리빙을 수행하기 위한 메모리 활용의 일 실시예이다.
도 2는 본 발명의 실시예에 따른 디인터리빙을 수행하기 위한 메모리 활용의 또 다른 예이다.
도 3은 본 발명의 실시예에 따른 인터리빙을 수행하기 위한 데이터 수집 방법의 흐름도이다.
본 발명은 저장 장치 즉, 메모리 및 메모리의 제어 방법에 관한 것으로, 보다 자세하게는 인터리빙과 디인터리빙을 효율적으로 수행하기 위한 메모리 장치 및 메모리의 활용 방법에 관한 것이다.
일반적으로 무선 랜 시스템은 세 단계의 과정을 통해 인터리빙이 수행된다. 첫 번째 과정은 부호화된 인접한 비트를 인접하지 않은 부반송(subcarrier) 신호로 옮기는(mapping) 과정이며, 두 번째 과정은 부호화된 비트를 형상 도(constellation) 상에서 더 중요한 비트와 덜 중요한 비트로 바꾸어 옮기는 과정이다. 마지막 과정은, 여러 개의 스트림을 사용하여 전송하는 경우, 부호화된 비트에 대해 주파수 회전을 통해서 주파수-공간 다양성(frequency-spatial diversity)을 높이는 것이다.
이때 인터리버 블록으로 입력되는 데이터는 부호화된 비트로써 메모리 블록으로 입력되어 저장되며, 상기 언급한 세 단계의 인터리빙 방식에 의해 메모리의 데이터가 읽혀진다. 인터리빙 수행 후의 데이터는 QAM(Quadrature Amplitude Modulation)이라는 방식으로 매핑하여 다음 단계로 넘어가는데, 무선 랜 시스템에 사용되는 변조 방식은 BPSK(Binary Phase Shift Keying), QPSK(Quadrature Phase Shift Keying), 16-QAM 또는 64-QAM이 주로 사용된다.
이와 같이 무선 랜 시스템, 특히 직교 주파수 분할 다중(OFDM: Orthogonal Frequency Division Multiplexing) 변조방식을 사용하는 무선 랜 시스템의 송신측에서 내부 인터리빙을 수행하여 데이터를 전송하면, 전송 주파수 대역의 특정 부분에서 발생되는 주파수 널(Frequency Null)이 전체 주파수 대역으로 퍼지게 되어 시스템의 성능 저하가 발생된다.
따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 전송 주파수 대역의 특정 부분에서 발생되는 주파수 널이 전체 주파수 대역으로 퍼지지 않도록 하기 위하여 메모리를 블록으로 나누어 구성한다.
또한, 인터리빙 및 디인터리빙을 수행하는 메모리를 블록으로 나누어 구성함 으로써 데이터의 전송 방식과 변조 방식에 따라 필요로 하는 메모리 블록의 크기에 변화를 줄 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 특징인 저장 장치의 구조는 인터리빙 또는 디인터리빙을 수행하기 위한 저장 장치에서,
다수의 메모리 버퍼로 이루어지며, 상기 저장 장치로 입력되는 데이터의 전송 방식에 따라 설정된 소정의 비트 단위로 상기 데이터를 저장하고, 제2n+1 번째에 위치되는 적어도 하나의 제1 메모리 블록; 및 다수의 메모리 버퍼로 이루어지며, 입력되는 데이터의 전송 방식에 따라 설정된 소정의 비트 단위로 상기 데이터를 저장하고, 제2n 번째에 위치되는 하나의 제2 메모리 블록을 포함하며, 상기 n은 1 이상의 정수이며, 각 메모리 블록의 위치에 따라 각 블록의 메모리 버퍼에 할당되는 주소의 순서가 가변되는 저장 장치이다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 저장 장치의 제어 방법은 저장 장치에서 인터리빙을 수행하는 경우, 상기 저장 장치를 제어하는 방법에 있어서,
(a) 상기 저장 장치--여기서 저장 장치는 다수의 메모리 블록으로 구성되며, 상기 메모리 블록은 다수의 메모리 버퍼로 구성됨--에 저장된 데이터 중 제2n 번째 또는 제2n+1 번째 메모리 블록--여기서 n은 1 이상의 정수임--에 저장된 데이터를 동시에 읽어오는 단계; (b) 상기 저장 장치에 입력된 데이터의 전송 방식에 따라 상기 읽어온 데이터 중 해당 메모리 데이터의 비트 값을 토대로 인터리빙 데이터를 출력하는 단계; 및 (c) 상기 읽어온 메모리의 데이터 외에 저장된 제2n 번째 또는 제2n+1 번째 메모리 블록의 데이터를 읽어오고, 상기 데이터의 전송 방식에 따라 해당 메모리 데이터의 비트 값을 토대로 인터리빙 데이터를 출력하는 단계를 포함한다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.
또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
일반적으로 무선 시스템의 인터리버와 디인터리버는 사용하는 대역폭과 전송 방식에 따라서 인터리버/디인터리버가 필요로 하는 메모리 블록의 크기가 달라진다. 그리고 입력 및 출력 비트의 단위에 따라 동작에 필요로 하는 주파수 크기가 달라지며, 인터리버 앞뒤 블록의 구조에도 많은 영향을 미치게 된다.
그러므로, 본 발명의 실시예에서는 OFDM, IEEE 802.11a 및 차세대 무선 랜으로 제안되고 있는 TGnSync의 세 가지 모드에 대한 인터리빙 및 디인터리빙을 수행할 수 있도록 메모리 활용을 고려하고자 한다. 그러나, 반드시 이에 한정되는 것은 아니다.
도 1은 본 발명의 실시예에 따른 인터리빙을 수행하기 위한 메모리 활용의 일 실시예이다.
무선 랜 시스템의 인터리빙은 OFDM 심벌 단위로 이루어지며, 이 심벌에 할당된 데이터 비트의 크기는 다시 대역폭의 크기(Width)와 변조 방식에 따라 변한다. 예를 들어, IEEE 802.11a 무선 랜 시스템의 표준에서는 20MHz의 대역폭을 사용하며, 48개의 부반송파에 데이터를 넣어 전송하도록 정의하고 있다.
또한, TGnSync에서는 20MHz 대역폭에 52개, 40MHz의 대역폭에서는 108개의 반송파를 사용하도록 정의하고 있다. 그러므로, 세 가지 모드에 대한 인터리빙 블록의 폭(column)은 IEEE 802.11a의 경우에는 16의 폭, TGnSync 20MHz 모드는 13의 폭, TGnSync 40MHz 모드는 18의 폭을 갖도록 정의되어 있다.
이와 같이 다양한 모드의 인터리빙을 제공하기 위하여, 도 1에 도시된 바와 같이 저장 장치 즉, 메모리를 구성한다. 이때 메모리에서 인터리빙을 수행하기 위한 블록은 총 6개의 메모리 블록을 가지며, 각 블록에는 12개의 메모리 버퍼(buffer)가 존재하도록 구성한다.
각 메모리 버퍼는 9비트의 크기를 가지며, 도 1에 도시된 블록 번호는 각 메모리 버퍼에서의 주소를 의미한다. 그러나 메모리 블록의 수나 메모리 버퍼의 수 및 각 메모리 버퍼의 크기는 반드시 한정되는 것은 아니다.
인터리버 블록으로 입력되는 데이터의 폭은 IEEE 802.11a의 경우는 8비트 단위로 입력되며, TGnSync 20MHz에서는 7비트의 데이터와 6비트의 데이터가 번갈아 가면서 입력된다. 또한 TGnSync 40MHz에서는 9비트 단위로 데이터가 입력된다. 이와 같이 최대 9비트 단위로 데이터가 입력되기 때문에, 각 메모리 버퍼를 9비트의 크기를 갖도록 정의하였다.
변조 방식에 따른 메모리 버퍼의 사용을 살펴보면, BPSK의 경우는 블록 당 두 개의 메모리 버퍼 즉, 0번과 1번 메모리 버퍼를 이용한다. QPSK의 경우에는 BPSK의 두 배인 0번부터 3번까지 4개의 메모리 버퍼를 사용한다. 16QAM의 경우에는 0번부터 7번까지 8개의 메모리 버퍼를, 64QAM의 경우에는 0번부터 11번까지 12개의 메모리 버퍼 즉, 전체 블록을 사용한다.
다음 전송 방법에 따른 메모리 버퍼의 사용을 살펴보면, IEEE 802.11a 모드의 경우 0번부터 2번 블록까지 세 개의 블록을 사용한다. TGnSync 20MHz에서는 0번 블록부터 3번 블록까지 네 개의 블록을, TGnSync 40MHz에서는 0번 블록부터 5번 블록까지 전체 블록을 모두 사용한다.
그리고 버퍼 내에서 사용하는 비트의 크기는 인터리버 블록으로의 입력 크기와 동일하다. 이는 40MHz 대역폭(bandwidth)의 버퍼를 사용할 경우에, 인터리버 버퍼의 모든 메모리 블록을 사용하기 때문에, 입력 비트의 폭 크기와 인터리버 블록 상의 메모리 블록 비트 폭의 크기가 동일함을 의미한다.
인터리버 블록의 메모리 쓰기 동작은 메모리 블록의 입력 순서대로 저장한다. 즉, 메모리로 입력되는 데이터는 인터리버 블록에 입력 순서대로 차곡차곡 저장된다. TGnSync 20MHz 모드에서 QPSK 변조를 사용하는 경우에 대해 예를 들어 설명하면, 메모리로 입력되는 데이터에 대해서 다음과 같은 순서로 저장된다.
0(0), 1(0), 2(0), 3(0), 1(1), 0(1), 3(1), 2(1), 0(2), 1(2), 2(2), 3(2), 1(3), 0(3), 3(3), 2(3)
이때 N(m)에서 N은 메모리 번호 즉, 도 1의 블록 번호를 나타내며, m은 메모리 내의 주소 값을 의미한다.
하나의 OFDM 심볼에 대해 인터리버 메모리에 저장된 데이터는 스트림 번호에 따른 시작 위치가 조정되며, 변조 방식에 따라서 비트의 위치를 바꾸어 읽어 들인다. TGnSync 무선 랜 시스템에서는 두 개의 스트림을 사용하고 있으며, 스트림별로 서로 다른 인터리버 메모리 블록이 있다.
여기서 메모리 블록 중 짝수 번째 블록의 좌측은 짝수 번째 버퍼가, 우측에는 홀수 번째 버퍼가 위치한다. 또한, 홀수 번째 블록에서는 좌측에는 홀수 번째 버퍼가, 우측에는 짝수 번째 버퍼가 위치한다. 이와 같은 구조를 이용하면, 인터리버에서 데이터를 읽어올 때 한꺼번에 읽어올 수 있는 장점이 있다. 즉, 짝수 번째 메모리에서의 데이터와 홀수 번째 메모리에서의 데이터를 주소만 다르게 정의하면 동시에 짝수 번째 메모리와 홀수 번째 메모리에서 데이터를 읽어올 수 있다.
이때 인터리버 메모리에서 데이터를 읽어 들일 경우, 스트림별로 데이터를 읽기 시작하는 위치가 서로 다르기 때문에 스트림 번호에 따른 시작 위치가 조정된다. 상기에서 가정한 바와 같이 TGnSync 20MHz 모드 QPSK 변조를 사용하는 경우, 첫 번째 스트림에서 데이터를 읽어 들이는 경우에 대하여 설명하면 다음과 같다.
먼저 짝수번의 메모리에 해당하는 0, 2, 4, 6, 8, 10번 메모리 버퍼의 0번 주소에서 9비트를 동시에 읽어 들인다. 읽어 들인 데이터 중 0번과 2번 메모리 버퍼에서 나오는 데이터의 0번 비트 값 두 개만을 붙여 출력한다.
이때 0번과 2번 메모리 버퍼의 데이터만 읽어 들이는 이유는, QPSK 변조의 경우 상기에서 언급한 바와 같이 0번부터 3번까지의 메모리 버퍼를 사용한다고 정의하였기 때문에, 0∼3번 메모리 버퍼 영역에 해당하는 0번과 2번 메모리 버퍼의 데이터만 읽어 들인다. 0번과 2번 메모리 버퍼에서 0비트의 데이터 값 두 개를 붙여 출력한 후, 1, 3, 5, 7, 9, 11번 메모리 버퍼의 1번 주소에서 9비트의 데이터를 동시에 읽어 들인 후, 1번과 3번 메모리 버퍼에서 나오는 데이터의 0번 비트 값 두 개를 붙여 출력한다.
다음에는 0, 2, 4, 6, 8, 10번 메모리 버퍼의 2번 주소에서 9비트의 데이터를 동시에 읽어 들인 후, 0번과 2번 메모리 버퍼에서 나오는 데이터의 0번 비트 값 두 개를 붙여 출력한다. 그 다음, 1, 3, 5, 7, 9, 11번 메모리 버퍼의 3번 주소에서 9비트의 데이터를 동시에 읽어 들인 후, 1번과 3번 메모리 버퍼에서 나오는 데이터의 0번 비트 값 두 개를 붙여 출력한다.
위와 같은 과정을 6번 더 반복 수행(총 7번 데이터 값을 출력함)하며, 이때 읽어온 데이터의 비트 번지는 0번에서부터 6번 까지 하나씩 증가시킨다. 이때 총 7번 반복 수행하는 이유는 이는 TGnSync 20MHz 모드의 경우 7비트/6비트 데이터가 번갈아 입력되며, 상기 과정이 반복되는 메모리에는 7비트의 데이터가 입력되었기 때문이다.
이와 같은 과정이 완료되면, 상기 과정의 역으로 홀수 번째 메모리부터 읽고, 짝수 번째 메모리를 읽는 과정을 총 6번 반복한다. 이는 TGnSync 20MHz 모드의 경우 7비트/6비트 데이터가 번갈아 입력되며, 상기 과정이 반복되는 메모리에는 6비트의 데이터가 입력되었기 때문이다.
다음은 디인터리빙을 수행하기 위한 메모리 활용에 대하여 도 2를 참조하여 자세히 설명하기로 한다.
도 2는 본 발명의 실시예에 따른 디인터리빙을 수행하기 위한 메모리 활용의 또 다른 예이다.
도 2에 도시된 바와 같이, 디인터리빙은 인터리빙 과정의 역 과정으로 수행된다. 디인터리빙을 위한 메모리는 총 6개의 블록을 가지고 있으며, 각 블록에는 18개의 메모리 버퍼가 세로로 존재한다. 각 메모리 버퍼의 폭은 3비트 소프트 디매핑(demapping)을 수행할 경우 18비트의 크기를 가지게 되며, 이 크기는 소프트 디매핑 방법에 따라 다양하게 조절될 수 있다. 소프트 디매핑이라 함은, 소프트 디매핑 알고리즘을 이용하여 수행하는 디매핑을 의미한다.
이때 메모리 버퍼만을 따로 놓고 볼 경우, 총 9개의 메모리 버퍼가 각각 12 깊이(depth)를 가지고 있다. 즉, 디인터리빙을 수행하는 메모리는 총 9개가 존재하며, 각 메모리는 0부터 11까지의 12개의 주소 값을 가질 수 있으며, 반드시 이에 한정되는 것은 아니다.
디인터리빙의 경우 변조 방식에 따른 메모리 버퍼의 구분은 없으나, 전송 방법에 따른 구분은 인터리버에서와 마찬가지로 블록 단위로 구분하여 사용한다. 즉, IEEE802.11a 모드의 경우에는 0번 블록부터 2번 블록까지 세 개의 블록을 사용하며, TGnSync 20MHz 모드의 경우에는 0번 블록부터 3번 블록까지 네 개의 블록을 사용한다. TGnSync 40MHz 모드의 경우에는 0번 블록부터 5번 블록까지 전체 블록을 모두 사용한다.
또한, 모드에 따라 사용하는 메모리 버퍼의 개수 및 사용 방법은 IEEE 802.11a 모드에서는 0번부터 7번까지의 메모리 버퍼를 사용하고, TGnSync 20MHz 모드의 경우에는 0번부터 6번까지의 메모리 버퍼를, TGnSync 40MHz 모드의 경우에는 전체 메모리 버퍼를 모두 사용한다.
디인터리버 메모리에 대한 쓰기 과정은 OFDM 심볼 단위로 이루어지며, 디매핑 과정을 거친 데이터를 메모리 버퍼에 저장한다. TGnSync 20MHz 모드의 경우 입력되는 데이터에 대해서 예를 들어 설명하면 다음과 같은 순서로 메모리에 저장된다.
0(0), 1(0), 2(0), 3(0), 4(0), 5(0), 6(0), 0(1), 1(1), 2(1), 3(1), 4(1), 5(1),
0(2), 1(2), 2(2), 3(2), 4(2), 5(2), 6(2), 0(3), 1(3), 2(3), 3(3), 4(3), 5(3),
0(4), 1(4), 2(4), 3(4), 4(4), 5(4), 6(4), 0(5), 1(5), 2(5), 3(5), 4(5), 5(5),
0(6), 1(6), 2(6), 3(6), 4(6), 5(6), 6(6), 0(7), 1(7), 2(7), 3(7), 4(7), 5(7)
이때 N(m)에서 N은 메모리 번호 즉, 블록 번호를 나타내며, m은 메모리 내의 주소 값을 의미한다.
한 OFDM 심벌이 메모리 버퍼에 저장된 후, 디인터리버 메모리를 읽기 시작한다. 여기서 OFDM 심벌이 상기와 같이 7비트와 6비트가 번갈아 저장되는 이유는 TGnSync 20MHz 모드에서는 7비트/6비트 번갈아 입력되기 때문이다. 메모리 버퍼에서는 블록 순서대로 데이터를 읽어오며, 블록당 데이터를 읽어오는 횟수는 변조 방식에 따라 다르다. 즉, BPSK의 경우는 블록당 한번, QPSK는 두 번, 16QAM은 네 번, 64QAM은 여섯 번의 데이터를 읽어온다.
여기서 본 발명의 실시예에 따라 메모리를 블록으로 나누어 사용하고, 변조 방식에서 가지는 비트의 크기가 서로 다르기 때문에 블록당 데이터를 읽어오는 횟수에 차이가 발생할 수 있다. TGnSync 20MHz QPSK를 예로 들어 설명하면, {0(0), 1(0), 2(0), 3(0), 4(0), 5(0), 6(0)}을 한꺼번에 읽어 들이고, 각 메모리의 데이터 중 0번째 비트의 데이터를 읽어 출력하고, 다음은 {0(1), 1(1), 2(1), 3(1), 4(1), 5(1)}의 0번째 비트를 읽어 들인다. 그 다음에는 {0(0), 1(0), 2(0), 3(0), 4(0), 5(0), 6(0)}의 첫 번째 비트의 데이터를, 마지막으로 {0(1), 1(1), 2(1), 3(1), 4(1), 5(1)}의 첫 번째 비트의 데이터를 읽어 들이는 방식으로 이루어진다.
이렇게 읽어온 데이터는 변조 방식에 따라 비트의 위치를 바꾸어 출력한다. TGnSync 20MHz QPSK의 경우를 예로 들면 다음과 같이 메모리를 읽어온다.
{0(0), 1(0), 2(0), 3(0), 4(0), 5(0), 6(0)},{0(1), 1(1), 2(1), 3(1), 4(1), 5(1)},
{0(0), 1(0), 2(0), 3(0), 4(0), 5(0), 6(0)},{0(1), 1(1), 2(1), 3(1), 4(1), 5(1)},
{0(2), 1(2), 2(2), 3(2), 4(2), 5(2), 6(2)},{0(3), 1(3), 2(3), 3(3), 4(3), 5(3)},
{0(2), 1(2), 2(2), 3(2), 4(2), 5(2), 6(2)},{0(3), 1(3), 2(3), 3(3), 4(3), 5(3)},
{0(4), 1(4), 2(4), 3(4), 4(4), 5(4), 6(4)},{0(5), 1(5), 2(5), 3(5), 4(5), 5(5)},
{0(4), 1(4), 2(4), 3(4), 4(4), 5(4), 6(4)},{0(5), 1(5), 2(5), 3(5), 4(5), 5(5)},
{0(6), 1(6), 2(6), 3(6), 4(6), 5(6), 6(6)},{0(7), 1(7), 2(7), 3(7), 4(7), 5(7)},
{0(6), 1(6), 2(6), 3(6), 4(6), 5(6), 6(6)},{0(7), 1(7), 2(7), 3(7), 4(7), 5(7)}
상기와 같이 중괄호("{ }") 단위로 매 데이터를 읽는다. 즉, 주소값이 중괄호 안에서는 같기 때문에, 모든 메모리 버퍼에 같은 주소를 주고 데이터를 입력받 은 후, 변조 방식에 맞추어 비트의 순서를 바꾼 후 출력한다. 이후 이를 하나로 결합하여 최종 출력으로 내보낸다.
다음은 상기에서 설명한 인터리빙을 수행하기 위한 메모리 활용 방법에 대하여 도 3을 참조하여 설명하기로 한다.
도 3은 본 발명의 실시예에 따른 인터리빙을 수행하기 위한 메모리 활용 방법의 흐름도이다.
도 3을 살펴보면, 먼저 메모리로 입력된 데이터의 변조 방식 및 모드를 확인(S100)한다. 본 발명의 실시예에 따르면 데이터 변조 방식은 BPSK, QPSK, 16QAM 및 64QAM으로 분류하며, 데이터 모드는 IEEE 802.11a, TGnSync 20MHZ 및 TGnSync 40MHz로 구분할 수 있다. 그러나 반드시 이에 한정되는 것은 아니다.
데이터의 변조 방식 및 모드를 확인(S100)하면, 먼저 짝수번째 메모리의 2n번 주소에서 전체 데이터를 동시에 읽어온다(S110). 전체 데이터 중 입력된 데이터의 모드 방식에 할당된 메모리의 데이터 비트 값만 묶어 출력(S120)한다. 짝수번째 메모리 후, 홀수번째 메모리의 2n+1번 주소에서 전체 데이터를 동시에 읽어온 후(S130), 짝수번째 메모리와 마찬가지로 모드 방식에 할당된 메모리의 데이터 비트 값만 묶어 출력(S140)한다. 여기서는 메모리가 짝수번째 메모리와 홀수번째 메모리의 순서로 구성되어 있다고 가정한 경우이며, 메모리의 구성에 따라 데이터를 읽어오는 순서는 변경될 수 있다.
다음, 입력된 데이터의 모드에 할당된 메모리를 모두 수행하였는지 판단(S150)하고, 변조 방식에 할당된 메모리 블록에 대하여 데이터 수집 과정이 모두 수행되었는지 판단(S160)한다. 그리고, 입력 데이터를 모두 데이터 수집 과정을 수행하였는지 판단(S170)하여, 모두 수행하였을 경우 데이터 수집을 종료(S180)한다. 그러나 어느 하나라도 수행하지 않은 경우 상기 S110번 단계부터 재 수행한다. 이때, 반드시 짝수번째 메모리와 홀수번째 메모리의 순서로 수행되는 것은 아니고, 메모리의 구성에 따라 홀수번째 메모리와 짝수번째 메모리의 순서로 데이터 수집이 수행될 수 있다.
여기서, 전술한 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체 역시 본 발명의 범주에 포함되는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
전술한 실시예에 따르면, 저장 장치에 저장되는 데이터의 전송 방식과 변조 방식에 따라 사용하는 메모리 버퍼 및 메모리 블록이 다르기 때문에 인터리빙 패턴을 임의의 ROM(Read Only Memory)에 저장하여 읽어 들이는 부분이 필요하지 않으며, 이에 따라 저장 장치의 크기를 줄일 수 있다.
또한, 메모리 블록 구성을 효율적으로 하여 간단하게 메모리 컨트롤 부분만이 필요하도록 함으로써, 저장 장치의 복잡도를 줄일 수 있다.

Claims (9)

  1. 인터리빙 또는 디인터리빙을 수행하기 위한 저장 장치에서,
    다수의 메모리 버퍼로 이루어지며, 상기 저장 장치로 입력되는 데이터의 전송 방식에 따라 설정된 소정의 비트 단위로 상기 데이터를 저장하고, 제2n+1번째에 위치되는 적어도 하나의 제1 메모리 블록; 및
    다수의 메모리 버퍼로 이루어지며, 입력되는 데이터의 전송 방식에 따라 설정된 소정의 비트 단위로 상기 데이터를 저장하고, 제2n번째에 위치되는 하나의 제2 메모리 블록
    을 포함하며,
    상기 n은 1 이상의 정수이며, 각 메모리 블록의 위치에 따라 각 블록의 메모리 버퍼에 할당되는 주소의 순서가 가변되는 저장 장치.
  2. 제1항에 있어서,
    상기 제1 메모리 블록은,
    각각 다수의 메모리 버퍼로 이루어지는 제1 버퍼부 및 제2 버퍼부를 포함하며,
    상기 제1 메모리 블록의 제1 버퍼부의 각 메모리 버퍼에는 2n+1 간격으로 하나 이상의 메모리 버퍼가 위치하고, 제2 버퍼부의 각 메모리 버퍼에는 2n 간격으로 메모리 버퍼가 위치하는 저장 장치.
  3. 제1항에 있어서,
    상기 제2 메모리 블록은,
    각각 다수의 메모리 버퍼로 이루어지는 제1 버퍼부 및 제2 버퍼부를 포함하며,
    상기 제2 메모리 블록의 제1 버퍼부의 각 메모리 버퍼에는 2n 간격으로 하나 이상의 메모리 버퍼가 위치하고, 제2 버퍼부의 각 메모리 버퍼에는 2n+1 간격으로 메모리 버퍼가 위치하는 저장 장치.
  4. 제2항 또는 제3항에 있어서,
    상기 제1 버퍼부 또는 제2 버퍼부의 위치에 따라 상기 메모리 버퍼의 주소가 결정되는 저장 장치.
  5. 제4항에 있어서,
    상기 메모리 버퍼는 상기 저장 장치로 입력되는 데이터의 변조 방식에 따라 사용 가능한 버퍼의 수가 결정되고, 상기 메모리 블록은 상기 데이터의 전송 방식에 따라 이미 지정된 크기의 비트 단위로 입력되는 저장 장치.
  6. 저장 장치에서 인터리빙을 수행하는 경우, 상기 저장 장치를 제어하는 방법에 있어서,
    (a) 상기 저장 장치--여기서 저장 장치는 다수의 메모리 블록으로 구성되며, 상기 메모리 블록은 다수의 메모리 버퍼로 구성됨--에 저장된 데이터 중 제2n 번째 또는 제2n+1 번째 메모리 블록--여기서 n은 1 이상의 정수임--에 저장된 데이터를 동시에 읽어오는 단계;
    (b) 상기 저장 장치에 입력된 데이터의 전송 방식에 따라 상기 읽어온 데이터 중 해당 메모리 데이터의 비트 값을 토대로 인터리빙 데이터를 출력하는 단계; 및
    (c) 상기 읽어온 메모리의 데이터 외에 저장된 제2n 번째 또는 제2n+1 번째 메모리 블록의 데이터를 읽어오고, 상기 데이터의 전송 방식에 따라 해당 메모리 데이터의 비트 값을 토대로 인터리빙 데이터를 출력하는 단계
    를 포함하는 저장 장치 제어 방법.
  7. 제6항에 있어서,
    상기 메모리 블록은,
    상기 제2n 번째 블록 또는 상기 제2n+1 번째 메모리 블록의 위치에 따라 상기 메모리 블록의 주소가 결정되는 저장 장치 제어 방법.
  8. 제6항에 있어서,
    상기 (b) 단계는,
    상기 데이터의 상기 저장 장치로 입력된 데이터의 변조 방법에 따라 미리 지 정된 횟수만큼 반복 수행하여 인터리빙 데이터를 출력하는 저장 장치 제어 방법.
  9. 제6항에 있어서,
    상기 (a) 단계와 (c) 단계에서 제2n 번째 또는 제2n+1 번째 메모리 버퍼에 입력되어 있는 데이터는 동일한 주소의 데이터를 한 번에 읽어오는 저장 장치 제어 방법.
KR1020060043481A 2005-12-10 2006-05-15 인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의제어 방법 KR100764011B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050121374 2005-12-10
KR20050121374 2005-12-10

Publications (2)

Publication Number Publication Date
KR20070061738A true KR20070061738A (ko) 2007-06-14
KR100764011B1 KR100764011B1 (ko) 2007-10-08

Family

ID=38357454

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060043481A KR100764011B1 (ko) 2005-12-10 2006-05-15 인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의제어 방법

Country Status (1)

Country Link
KR (1) KR100764011B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101482689B1 (ko) * 2013-09-09 2015-01-16 한국과학기술원 인터리브드 어드레스 매핑 방법 및 이를 포함하는 디코딩 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102478169B1 (ko) 2020-04-03 2022-12-16 한국전자통신연구원 디인터리빙 방법 및 이를 수행하는 디인터리빙 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1046236B1 (en) * 1998-08-17 2016-02-24 Dtvg Licensing, Inc Turbo code interleaver with near optimal performance
JP2001332980A (ja) 2000-05-19 2001-11-30 Sony Corp インタリーブ装置及びインタリーブ方法
US6785859B2 (en) 2000-08-04 2004-08-31 Texas Instruments Incorporated Interleaver for variable block size
KR100782214B1 (ko) * 2001-05-15 2007-12-05 엘지전자 주식회사 멀티 캐리어 인터리빙 구현장치 및 방법
KR100519334B1 (ko) * 2002-12-31 2005-10-07 엘지전자 주식회사 블록 인터리버 및 그를 이용한 블록 인터리빙 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101482689B1 (ko) * 2013-09-09 2015-01-16 한국과학기술원 인터리브드 어드레스 매핑 방법 및 이를 포함하는 디코딩 방법

Also Published As

Publication number Publication date
KR100764011B1 (ko) 2007-10-08

Similar Documents

Publication Publication Date Title
US7170849B1 (en) Interleaver, deinterleaver, interleaving method, and deinterleaving method for OFDM data
JP5670512B2 (ja) 変調ダイバーシティのためのシステム及び方法
US7370252B2 (en) Interleaving apparatus and method for orthogonal frequency division multiplexing transmitter
JP4372084B2 (ja) インタリーバ及びデインタリーバシステム
JP3748550B2 (ja) 高速ダウンリンクパケットアクセス移動通信システムにおけるシンボルマッピングのためのインターリービング装置及び方法
JP4077355B2 (ja) 通信装置および通信方法
US8677204B2 (en) Methods and apparatus for transmitting/receiving data in a communication system
US20150229504A1 (en) Transmitting apparatus and transmitting method
EP1938538A1 (en) Method for variable sub-carrier mapping and device using the same
US20090158131A1 (en) Viterbi decoding apparatus and method
US20040066838A1 (en) MC/MC-DS dual-mode adaptive multi-carrier code division multiple access (CDMA) apparatus and method thereof
US7835264B2 (en) Interleaver, deinterleaver, communication device, and method for interleaving and deinterleaving
US7535819B1 (en) Multiband OFDM system with mapping
KR100769671B1 (ko) Mb-ofdm 송수신장치 및 그 신호처리 방법
KR100764011B1 (ko) 인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의제어 방법
GB2419789A (en) Interleaver for MIMO-OFDM which interleaves bits between data blocks, to provide spatial interleaving across a plurality of antennae
CN1773896B (zh) 适应自适应调制系统的信道交织器及方法
JP2007142944A (ja) インターリーブ処理装置
JP4538052B2 (ja) Ofdm信号の処理方法及びofdm送信機
TWI746837B (zh) 發送裝置、接收裝置、發送方法及接收方法
WO2007125581A1 (ja) プリアンブル構成方法
JP4539969B2 (ja) マルチキャリアスペクトル拡散通信装置及びマルチキャリアスペクトル拡散通信方法
CN102571670A (zh) 用于ofdm系统的多维联合编码调制的方法及装置
CN110855398B (zh) 一种针对g3-plc通信标准的解交织方法
JP2004128783A (ja) マルチキャリア−cdma変調方式用送信装置およびマルチキャリア−cdma変調方式用受信装置

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee