KR20020030409A - 인터리버에서 메모리의 크기를 줄일 수 있는 메모리관리방법 - Google Patents
인터리버에서 메모리의 크기를 줄일 수 있는 메모리관리방법 Download PDFInfo
- Publication number
- KR20020030409A KR20020030409A KR1020000061025A KR20000061025A KR20020030409A KR 20020030409 A KR20020030409 A KR 20020030409A KR 1020000061025 A KR1020000061025 A KR 1020000061025A KR 20000061025 A KR20000061025 A KR 20000061025A KR 20020030409 A KR20020030409 A KR 20020030409A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- seq
- counter
- packet
- memory
- Prior art date
Links
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/0071—Use of interleaving
-
- 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/27—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 using interleaving techniques
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
통신 시스템의 인터리버에서 메모리의 크기를 줄일 수 있는 메모리 관리방법이 개시된다. 상기 메모리 관리방법에서는 인터리버의 RS 코드길이와 인터리빙 깊이에 따라 기입 및 독출 브랜치 순서가 설정되고 서정된 기입 및 독출 브랜치 순서에 따라 기입 어드레스 및 독출 어드레스가 생성된다. 즉 인터리버의 RS 코드길이가 255이고 인터리빙 깊이가 16인 경우 기입 어드레스는 1씩 증가하고 독출 어드레스는 인터리빙 깊이에 해당하는 브랜치 오프셋, 즉 16만큼 증가한다. 따라서 상기 효율적인 인터리버 메모리 관리방법에 의하여 인터리버에 사용되는 메모리의 크기가 크게 감소될 수 있는 장점이 있다.
Description
본 발명은 통신 시스템의 인터리버(Interleaver)에 관한 것으로, 특히 인터리버에 사용되는 메모리의 크기를 줄일 수 있는 메모리 관리방법에 관한 것이다.
통신 시스템에서는 전송선로상의 잡음으로 인하여 오류가 발생할 수 있다.
따라서 대부분의 통신 시스템에서는 연집잡음(Burst error)이 발생할 경우 RS 복호기의 성능을 최대한 이용하기 위하여 인터리빙(Interleaving) 방식을 사용하여 연집잡음을 분산시킨다.
인터리빙 방식은 사용방법에 따라 약간의 차이는 있으나 근본적으로는 입력 데이터를 재배열하여 연집잡음을 분산시킨다. 따라서 입력 데이터를 재배열하기 위해서는 메모리가 요구되며 이 메모리의 크기는 RS 코드의 코드길이(Code length)와 인터리빙 깊이(Interleaving depth)에 의해 결정된다. 통상적으로 연집잡음이 많이 발생하는 시스템에서 좋은 성능을 얻기 위해서는 인터리빙 깊이가 커야 하는데 인터리빙 깊이가 커지면 메모리의 크기가 지나치게 커지는 문제점이 있다.
한편 통신 시스템에서 송신단에는 인터리버(Interleaver)가 포함되고 수신단에는 디인터리버(De-interleaver)가 포함된다. 인터리버는 인터리빙 방식을 사용하여 데이터를 재배열시켜 송신하며 디인터리버는 수신된 데이터를 원래의 데이터로 재배열시키는 기능을 수행한다. 일반적으로 인터리버에 사용되는 메모리의 크기와 디인터리버에 사용되는 메모리의 크기는 동일하다.
그런데 종래기술에서는 인터리버 및 디인터리버에 사용되는 메모리의 크기가 RS 코드의 코드길이와 인터리빙 깊이를 곱한 값만큼 사용되며 따라서 메모리의 크기가 커지는 단점이 있다.
따라서 본 발명이 이루고자하는 기술적 과제는 인터리버 및 디인터리버에서 메모리의 크기를 줄일 수 있는 메모리 관리(Memory management) 방법을 제공하는데 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명에 따른 인터리버의 메모리 관리방법을 나타내는 흐름도이다.
도 2는 도 1에 도시된 본 발명에 따른 인터리버의 메모리 관리방법에 대한 딜레이 브랜치 모델을 나타내는 도면이다.
도 3은 도 1에 도시된 본 발명에 따른 인터리버의 메모리 관리방법에 대한 기입 및 독출 브랜치 순서를 나타내는 도면이다.
상기 기술적 과제를 달성하기 위한 본 발명에 따른 메모리 관리방법은, 통신 시스템에서 RS 코드길이가 N이고 인터리빙 깊이가 D인 인터리버의 메모리 관리방법에 있어서, (1) 소정의 변수들의 초기치를 다음과 같이 설정하는 단계;
RDB_counter=0, WRB_counter=0, pointer[0], ..., pointer[N-1]=0, offset[0]=0, branch_length[0]=1, rd_seq=D, wr_packet=D, rd_packet=D, i=1
(2) 상기 i(반복 회수)가 상기 N만큼 수행되었는지를 판단하여 상기 반복회수(i)가 상기 N만큼 수행되면 종료하고 그렇지 않으면 다음 (3) 단계를 수행하는 단계;
(3) 상기 i값에 따라 상기 offset 값을 다음 수학식에 따라 계사하는 단계;
offset[i]=offset[i-1]+branch_length[i-1], (4) 상기 rd_seq 값과 상기 i값에 따라 상기 branch_lenght 값을 다음 수식에 따라 경신하는 단계; branch_length[i]=wr_packet-rd_packet+1(if rd_seq<i), branch_length[i]=wr_packet-rd_packet(if rd_seq≥i)
(5) 상기 rd_seq 값과 상기 N 값에 따라 상기 rd_seq 값과 상기 rd_packet 값을 다음 수학식에 따라 경신하는 단계; rd_seq=rd_seq, rd_packet=rd_packet(if re_sep<N), rd_seq=rd_seq+D-N, rd_packet=rd_packet-1 (if rd_seq≥N)
(6) 상기 i를 1만큼 증가시킨 후 상기 (2)단계로 이동하는 단계;
(7) 상기 WRB_counter 값과 상기 RDB_counter 값을 다음 수학식에 따라 계산하는 단계; WRB_counter(WRB_counter)%N (여기에서 %N은 modulo N을 나타내는 것으로서 N으로 나눈 나머지를 의미함), RDB_counter=(RDB_counter+RD_BRANCH_INC)%N(여기서에 RD_BRANCH_INC는 고정된 소정의 값임)
(8) 상기 인터리버 또는 디인터리버의 메모리에 대한 기입 어드레스(write_address) 및 독출 어드레스(read_address)를 다음 수학식에 따라 계산하는 단계; write_address=offset[WRB_counter]+pointer[WRB_counter], read_address=offset[RDB_counter]+pointer[RDB_counter]를 구비하는 것을 특징으로 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명에 인터리버의 메모리 관리방법을 나타내는 흐름도(Flowchart)이다. 여기에서 RS 코드길이가 N이고 인터리빙 깊이가 D라고 가정하고 이들은 초기에 소정의 값으로 셋팅된다.
도 1을 참조하면, 먼저 소정의 변수들의 초기치를 설정한다. 즉 RDB_counter, WRB_counter, pointer[0], ..., pointer[N-1], 및 offset[0]는 모두 0로 초기치를 설정하고, branch_length[0]는 1로 초기치를 설정한다. 또한 rd-seq, wr_packet, 및 rd_packet는 인터리빙 깊이 D로 초기치를 설정한다. 또한 반복 회수 i는 1로 초기치를 설정한다.(단계1)
다음에 반복 회수 i가 RS 코드길이 N만큼 수행되었는지를 판단하여 반복 회수 i가 N만큼 수행되면 종료하고 그렇지 않으면 다음 단계로 넘어간다.(단계 2)
다음에 i 값에 따라 offset 값을 다음 수학식 1에 다라 계산한다.(단계 3)
다음에 rd_seq 값과 i값에 따라 branch_length 값을 수학식 2에 따라 경신(Update)한다.(단계 4a,4b,4c)
다음에 rd_seq 값과 N 값에 따라 rd_seq 값과 rd_packet 값을 다음 수학식 3에 따라 경신한다.(단계 5a,5b,5c)
다음에 i를 1만큼 증가시킨 후 단계 2로 이동한다.(단계 6)
이상에서와 같은 단계들을 반복한 후 WRB_counter 값과 RDB_counter 값을 다음 수학식 4에 따라 계산한다.(단계 7)
여기에서 %N은 modulo N을 나타내는 것으로서 N으로 나눈 나머지를 의미하고, RD_BRANCH_INC는 고정된 소정의 값을 갖는다.
다음에 최종적으로 인터리버의 메모리에 대한 기입 어드레스(write-address) 및 독출 어드레스(read_address)를 다음 수학식 5에 따라 계산한다.(단계 8)
이상에서 설명한 본 발명에 따른 메모리 관리방법은 RS 코드길이(N)와 인터리빙 깊이(D)가 어떤 값을 갖던지 사용될 수 있다. 또한 이상에서는 인터리버의 메모리를 관리하는 방법에 대하여 설명되었지만. 인터리버 방식과 디인터리버 방식은 유사하며 디인터리버 방식에서는 인터리버 방식의 기입 어드레스와 독출 어드레스를 역으로 생성하면 된다.
도 2는 RS 코드길이(N)가 255이고 인터리빙 깊이(D)가 16인 경우 도 1에 도시된 본 발명에 따른 인터리버의 메모리 관리방법에 대한 딜레이 브랜치 모델(Delay branch model)을 나타내는 도면이다. 도 3은 RS 코드길이(N)가 255이고 인터리빙 깊이(D)가 16인 경우 도 1에 도시된 본 발명에 따른 인터리버의 메모리 관리방법에 대한 기입 및 독출 브랜치 순서(Branch oder)를 나타내는 도면이다.
도 2에서 참조번호 21은 인터리버에 입력되는 데이터를 1클럭만큼 지연시키는 지연소자, 예컨데 D플립플럽을 나타내고, 도 3에서 WB는 기입 브랜치 순서를 나타내며 RB는 독출 브랜치 순서를 나타낸다.
본 발명에 따른 인터리버의 메모리 관리방법에서는 인터리버에 입력되는 데이터 율(Data rate)은 8클럭마다 1바이트(Byte)이며 1바이트의 데이터가 입력될때마다 메모리의 기입 및 독출이 한번씩 수행된다. 또한 도 3에 도시된 브랜치 순서에 따라 기입 어드레스 및 독출 어드레스가 생성된다. 즉 RS 코드길이(N)가 255이고 인터리빙 깊이(D)가 16인 경우 기입 어드레스는 1씩 증가하는 반면에 독출 어드레스는 인터리빙 깊이(D)에 해당하는 브랜치 오프셋(Branch offset), 즉 16만큼 증가한다.
따라서 상술한 본 발명에 따른 효율적인 인터리버 메모리 관리방법에 의하여 인터리버에 사용되는 메모리의 크기가 크게 감소될 수 있다. 즉 종래의 방법에서는 RS 코드길이(N)가 255이고 인터리빙 깊이(D)가 16일 경우 인터리버를 구현하기 위해서는 255*16바이트, 즉 4096바이트의 메모리가 필요하다. 반면에 상술한 본 발명에서는 2048바이트의 메모리만이 요구된다. 결국 본 발명에서는 종래 방법에 비해 메모리 용량이 50%로 감소되는 장점이 있다.
이상 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 인터리버 메모리 관리방법은 인터리버에사용되는 메모리의 크기를 크게 감소시킬 수 있는 장점이 있다.
Claims (2)
- 통신 시스템에서 RS 코드길이가 N이고 인터리빙 깊이가 D인 인터리버의 메모리 관리방법에 있어서,(1) 소정의 변수들의 초기치를 다음과 같이 설정하는 단계;RDB_counter=0WRB_counter=0pointer[0], ..., pointer[N-1]=0offset[0]=0branch_length[0]=1rd_seq=Dwr_packet=Drd_packet=Di=1(2) 상기 i(반복 회수)가 상기 N만큼 수행되었는지를 판단하여 상기 반복 회수(i)가 상기 N만큼 수행되면 종료하고 그렇지 않으면 다음 (3)단계를 수행하는 단계;(3) 상기 i값에 따라 상기 offset 값을 다음 수학식에 따라 계산하는 단계;offset[i]=offset[i-1]+branch_length[i-1](4) 상기 rd_seq 값과 상기 i값에 따라 상기 branch_length 값을 다음 수학식에 따라 경신하는 단계;branch_length[i]=wr_packet-rd_packet+1 (if rd_seq<i)branch_length[i]=wr_packet-rd_packet (if rd_seq≥i)(5) 상기 rd_seq 값과 상기 N값에 따라 상기 rd_seq 값과 상기 rd_packet 값을 다음 수학식에 따라 경신하는 단계;rd_seq=re_seq, rd_packet=rd_packet (if rd_seq<N)rd_seq=rd_seq+D-N, rd_packet=rd_packet-1 (if rd_seq≥N)(6) 상기 i를 1만큼 증가시킨 후 상기 (2) 단계로 이동하는 단계;(7) 상기 WRB_counter 값과 상기 RDB_counter 값을 다음 수학식에 따라 계산하는 단계; 및WRB_counter=(WRB_counter)%N (여기에서 %N은 modulo N을 나타내는 것으로서 N으로 나눈 나머지를 의미함)RDB_counter=(RDB_counter+RD_BRANCH_INC)%N (여기에서 RD_BRANCH_INC는 고정된 소정의 값임)(8) 상기 인터리버의 메모리에 대한 기입 어드레스(write_address) 및 독출 어드레스(read_address)를 다음 수학식에 따라 계산하는 단계;write_address=offset[WRB_counter]+pointer[WRB_counter]read_address=offset[RDB_counter]+pointer[RDB_counter]를 구비하는 것을 특징으로 하는 인터리버의 메모리 관리방법.
- 제1항에 있어서, 상기 N 및 상기 D는 초기에 소정의 값으로 셋팅되는 것을 특징으로 하는 인터리버의 메모리 관리방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000061025A KR20020030409A (ko) | 2000-10-17 | 2000-10-17 | 인터리버에서 메모리의 크기를 줄일 수 있는 메모리관리방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000061025A KR20020030409A (ko) | 2000-10-17 | 2000-10-17 | 인터리버에서 메모리의 크기를 줄일 수 있는 메모리관리방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20020030409A true KR20020030409A (ko) | 2002-04-25 |
Family
ID=19693912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000061025A KR20020030409A (ko) | 2000-10-17 | 2000-10-17 | 인터리버에서 메모리의 크기를 줄일 수 있는 메모리관리방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20020030409A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100699491B1 (ko) * | 2005-07-19 | 2007-03-26 | 삼성전자주식회사 | 인터리빙 방법 및 그 장치 |
-
2000
- 2000-10-17 KR KR1020000061025A patent/KR20020030409A/ko not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100699491B1 (ko) * | 2005-07-19 | 2007-03-26 | 삼성전자주식회사 | 인터리빙 방법 및 그 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5886998A (en) | Method and apparatus for interleave/de-interleave addressing in data communication circuits | |
US7958431B2 (en) | Method for interleaving data in a communication device | |
JP3280529B2 (ja) | 共有メモリを有するデジタルプロセッサおよびビタビ復号器 | |
US8132076B1 (en) | Method and apparatus for interleaving portions of a data block in a communication system | |
JPH07212251A (ja) | インターリーブプロセス | |
US6523146B1 (en) | Operation processing apparatus and operation processing method | |
JP2004504754A (ja) | デジタルデータの送受信装置 | |
US5490178A (en) | Power and time saving initial tracebacks | |
EP1111798B1 (en) | Digital signal processor with co-processor for Viterbi decoding | |
US7317762B2 (en) | Third generation FDD modem interleaver | |
KR20020030409A (ko) | 인터리버에서 메모리의 크기를 줄일 수 있는 메모리관리방법 | |
JP4336809B2 (ja) | インタリーブ方法 | |
KR20020030170A (ko) | 터보 디코딩 방법 | |
US7318184B2 (en) | Mobile telephone, apparatus, method, and program for calculating an interleave parameter | |
CN110048805B (zh) | 低密度奇偶校验码的译码控制系统及方法、无线通信系统 | |
WO2024124843A1 (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
JP4090996B2 (ja) | データウィンドウを使用するデータ復号方法 | |
JP2007538452A (ja) | ターボ復号器入力並べ換え | |
KR0155516B1 (ko) | 비터비 복호기에서 한개의 메모리를 사용한 상태 매트릭 메모리 운용방법 및 그 장치 | |
CN116015546B (zh) | 一种基于FPGA的任意长度turbo码速率匹配方法 | |
KR100291591B1 (ko) | 심벌-비트 와이즈 인터리빙 및 디인터리빙 방법 | |
CN102624484B (zh) | 交织实现方法和设备 | |
US20030108114A1 (en) | Method for interleaving data in packet-based communications and a system thereof | |
CN117827527A (zh) | 一种用于分布式存储系统中的数据完整性校验方法及系统 | |
CN118214433A (zh) | 一种适用于5g ldpc码的并行解交织器及解交织方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |