KR100556469B1 - 인터리브/디인터리브 장치 - Google Patents

인터리브/디인터리브 장치 Download PDF

Info

Publication number
KR100556469B1
KR100556469B1 KR1019980000605A KR19980000605A KR100556469B1 KR 100556469 B1 KR100556469 B1 KR 100556469B1 KR 1019980000605 A KR1019980000605 A KR 1019980000605A KR 19980000605 A KR19980000605 A KR 19980000605A KR 100556469 B1 KR100556469 B1 KR 100556469B1
Authority
KR
South Korea
Prior art keywords
data
memory
region
written
interleaving
Prior art date
Application number
KR1019980000605A
Other languages
English (en)
Other versions
KR19990065357A (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 엘지전자 주식회사
Priority to KR1019980000605A priority Critical patent/KR100556469B1/ko
Publication of KR19990065357A publication Critical patent/KR19990065357A/ko
Application granted granted Critical
Publication of KR100556469B1 publication Critical patent/KR100556469B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

에러 정정을 위해 수행되는 인터리빙/디-인터리빙 과정을 개선한 인터리브/디인터리브 장치에 관한 것으로서, 특히 N개의 영역으로 구성되고 각 영역의 셀은 유닛 지연의 정수배로 증가하며, 어드레스 신호에 의해 선택된 영역에서의 데이터의 라이트 및 리드에 의해 인터리빙을 수행하는 메모리와, N 클럭을 주기로 상기 메모리의 각 영역을 선택하고 선택된 영역에서의 데이터의 리드 및 라이트를 위한 어드레스를 발생하는 제어부로 구성되어, 상기 제어부에 의해 선택된 영역에서 해당 셀에 데이터가 라이트되면 선택 영역의 전체 셀 주기로 상기 셀에 라이트된 데이터를 리드하고 리드된 위치에 새로운 데이터를 라이트하는 방식으로 인터리빙을 수행하고 그 반대 과정으로 디인터리빙을 수행함으로써, 메모리의 사이즈를 줄이고 또한, 메모리에 데이터가 다 라이트될 때까지 기다렸다 리드하지 않고 파이프라인식으로 리드와 라이트를 거의 동시에 수행하므로 인터리빙/디인터리빙 처리 시간을 단축시킨다.

Description

인터리브/디인터리브 장치{INTERLEAVER AND DEINTERLEAVER}
본 발명은 에러 정정을 위해 수행되는 인터리빙/디인터리빙 과정을 개선한 인터리브/디인터리브 장치에 관한 것이다.
먼저, 용어에 대해 설명하면, 연속적인 버스트(Burst) 에러를 단순한 랜덤(Random) 에러로 분산시킴으로써, 나중에 ECC(Error Correction Code)에 의해서 충분히 복구가 가능하도록 데이타의 순서를 바꾸어 기록 또는 전송하는 기능을 인터리브라 하고, 다시 이를 복구하기 위해서 이와반대 순서대로 데이타를 원위치로 배열하는 것을 디-인터리브라고 한다. 이와같이 인터리빙 방식으로 기록 또는 전송하면 만약 특정 영역에서 연속적인 에러가 발생하더라도 디-인터리빙 과정으로 에러들이 서로 다른 위치로 분산되므로 에러 정정 능력이 향상된다. 즉, 순서적으로 데이터를 전송 또는 디스크에 기록을 하였을 경우에는 채널 또는 디스크에 흠집이 발생하였을 경우, 그 흠집 위치에 있던 연속으로 연결된 데이타가 모두 손실되기 때문이며, 이럴 경우에는 ECC를 거치더라도 ECC가 손실된 에러를 복구할 수 있는 범위를 벗어나므로 그 위치와 관련된 데이타는 모두 손실되게 되기 때문이다.
도 1은 이러한 종래의 인터리브/디인터리브 장치의 일실시예를 나타낸 블록도로서, 지연기의 역할을 하는 쉬프트 레지스터가 여러단 연결되어 구성되어 있다.
즉, 인터리버(10)는 데이터를 그대로 패스하는 라인, 쉬프트에 의해 입력되는 데이터를 J비트만큼 지연시킨 후 출력하는 J 쉬프트 레지스터, 2J만큼 지연시킨 후 출력하는 2J 쉬프트 레지스터, 3J만큼 지연시킨 후 출력하는 3J 쉬프트 레지스터,...,(N-1)J만큼 지연시킨 후 출력하는 (N-J) 쉬프트 레지스터로 구성된다. 여기서, 2J는 2개의 J 쉬프트 레지스터가 직렬로 연결된 것과 같고, (N-1)J 쉬프트 레지스터는 (N-1)개의 J 쉬프트 레지스터가 직렬로 연결된 것과 같다. 또한, J는 통상 17비트이므로, J 쉬프트 레지스터로 입력된 데이터는 클럭이 입력될 때마다 1비트씩 쉬프트함에 의해 17 클럭이후에 J 쉬프트 레지스터로부터 출력된다.
이때, 엔코더와 인터리버(10) 사이에는 스위치가 연결되어 있고, 상기 스위치는 클럭에 동기되어 순차적으로 패스 라인을 포함한 각 쉬프트 레지스터에 스위칭된다. 그러므로, 각각의 쉬프트 레지스터는 N 클럭주기마다 스위칭되어 데이터를 입력받는다. 즉, J 쉬프트 레지스터인 경우, N×17 클럭이 지나야 입력된 데이터가 비로소 출력된다.
마찬가지로, 인터리버(10)의 출력단에도 스위치가 연결되어 있고, 상기 스위치도 클럭에 동기되어 순차적으로 패스 라인을 포함한 각 쉬프트 레지스터에 스위칭되어 인터리빙된 데이터를 채널상으로 출력한다. 즉, N 클럭주기마다 패스 라인을 포함한 각 쉬프트 레지스터는 스위칭되어 데이터를 출력한다.
예를 들어, 설명의 편의를 위해 N=3, J=4라고 가정하고, 엔코더로부터 데이터는 도 2a와 같이 순차적으로 입력된다고 하면, 패스라인은 도 2b와 같이 3클럭마다 입력되는 데이터를 지연없이 그대로 출력하고, 4비트 쉬프트 레지스터는 3×4클럭이 지난 후에야 데이터를 출력하며, 4비트 쉬프트 레지스터가 2개 직렬 연결된 8비트 쉬프트 레지스터는 3×8 클럭이 지난 후에야 데이터를 출력한다. 즉, 4비트 쉬프트 레지스터의 경우, 초기에 02 데이터가 입력되면 바로 02 데이터가 출력되는 것이 아니라 3클럭마다 스위칭될 때 1비트씩 데이터를 쉬프트하여 최상위 비트까지 쉬프트하게 되면 그때에 비로소 데이터가 출력된다. 8비트 쉬프트 레지스터의 경우도 마찬가지이다. 예컨대, 패스 라인은 3클럭마다 스위칭되므로 지연없이 01 03 07 10 13 16...순으로 데이터를 출력하고, 4비트 쉬프트 레지스터는 ×(여기서, ×는 unknown) × × × 02 05 08 11... 순으로 데이터를 출력하며, 8비트 쉬프트 레지스터는 × × × × × × × × 03 06 09 12 15...순으로 데이터를 출력한다.
따라서, 최종 출력은 도 2c에서와 같이, 01 × × 04 × × 07 × × 10 ×× 12 02 × 16 05 × 19 08,...의 순으로 출력된다.
디인터리버(20)는 상기 인터리버(10)와 반대로 구성된다. 이는 인터리빙 결과를 디인터리빙하면 인터리빙전의 데이터와 같은 결과가 나와야 하기 때문이다. 이때, 도 2c와 같은 인터리버(10)의 출력은 디인터리버(20)의 입력과 같다.
즉, (N-1)J 쉬프트 레지스터는 인터리버(10)의 패스라인을 통해 출력되는 데이터를 입력받고, (N-2)J 쉬프트 레지스터는 인터리버(10)의 J 쉬프트 레지스터를 통해 출력되는 데이터를 입력받으며, 패스라인은 인터리버(10)의 (N-1)J 쉬프트 레지스터를 통해 출력되는 데이터를 입력받는다.
마찬가지로, 디인터리버(20)의 입력단에도 스위치가 연결되어 있고, 상기 스위치는 클럭에 동기되어 순차적으로 패스 라인을 포함한 각 쉬프트 레지스터에 스위칭되므로, 각각의 쉬프트 레지스터는 N 클럭주기마다 스위칭되어 데이터를 입력받는다. 또한, 디인터리버(20)의 출력단과 디코더 사이에도 스위치가 연결되어 있고, 상기 스위치도 클럭에 동기되어 순차적으로 패스 라인을 포함한 각 쉬프트 레지스터에 스위칭되므로, N 클럭주기마다 패스 라인을 포함한 각 쉬프트 레지스터는 스위칭되어 데이터를 출력한다.
예를 들어, N=3, J=4라고 가정하면 상기 인터리버(10)로부터 데이터는 도 3a와 같이 입력된다. 즉, 01 × × 04 × × 07 × × 10 ×× 12 02 × 16 05 × 19 08,...의 순으로 입력된다.
이때, 8비트 쉬프트 레지스터는 상기 인터리버(10)의 패스라인을 통해 데이터를 입력받는데, 도 3b에서와 같이 8 클럭이 지날때까지는 출력할 데이터가 없으므로 ×를 출력하다가 8클럭이 지나면 01 04 07 10... 순으로 데이터를 출력하고, 4비트 지연기는 상기 인터리버(10)의 4 쉬프트 레지스터를 통해 데이터를 입력받는데, 4 클럭이 지날때까지는 출력할 데이터가 없으므로 ×를 출력하는데, 4클럭이 지나도 4 클럭 동안은 인터리버(10)에서 ×가 출력되므로 결국 8 클럭이 지날때까지는 ×를 출력하다가 8클럭이 지나면 02 05 08 11... 순으로 데이터를 출력한다. 패스라인은 입력되는 데이터를 지연없이 그대로 출력하는데, 상기 인터리버(10)의 8비트 쉬프트 레지스터를 통해 데이터를 입력받으므로 마찬가지로 8 클럭이 지날때까지는 ×를 출력하다가 8클럭이 지나면 03 06 09 12... 순으로 데이터를 출력한다.
따라서, 최종 출력은 도 3c와 같이, ×가 24개가 지난 후에 인터리빙전의 상태 즉, 01 02 03 04 05 06 07 08 09 10 11...순으로 출력된다.
그러나, 상기 인터리브/디인터리브 장치는 인터리빙과 디인터리빙에 쉬프트 레지스터를 이용하므로 트랜지스터의 개수가 많아져 회로 사이즈가 커지고 비용이 상승하는 문제점이 있었다.
이를 해결하기 위한 것이 도 4a에 도시된 메모리를 이용한 방법으로서, N×N개의 영역으로 구분되어 있고 각 영역은 다시 J개의 셀로 구성되어 있다. 여기서, J는 통상 17개의 셀로 구성된다. 그리고, 인터리빙시 데이터의 라이트는 대각선 방향으로 진행하고, 라이트된 데이터의 리드는 수평방향으로 순차적으로 진행한다.
도 4b는 설명의 편의를 위해 메모리가 A∼I 영역으로 구분되어 있고, 각 영역은 다시 2개의 셀로 구분되어 있다고 가정한 예시도이다. 즉, N=3, J=2인 경우이다.
그러므로, 인터리빙시 데이터는 A1 -> E1 -> I1 -> A2 -> E2 -> I2 -> ... -> B1 -> F1 -> G1 -> ... -> C1 -> D1 -> H1 -> C2 -> D2 -> H2 ->...의 순으로 메모리에 라이트된다. 즉, 입력되는 데이터가 도 2a와 같다면 A1에는 01, E1에는 02, I1에는 03, A2에는 04, E2에는 05,...가 도 4c와 같이 라이트된다.
그리고나서, 메모리에 데이터가 모두 라이트되면 메모리로부터 수평방향으로 순차적으로 데이터를 읽어오는데 그 순서는 다음과 같다.
A1 -> D1 -> G1 -> A2 -> D2 -> G2 -> ... -> B1 -> E1 -> H1 -> ... -> C1 -> F1 -> H1 -> C2 -> F2 -> I2 ->...의 순으로 메모리로부터 읽은 후 채널을 통해 디인터리버로 출력한다. 즉, 디인터리버로 출력되는 데이터는 01 14 09 04 17 12 07 02 15...의 순이 된다.
디인터리버의 경우, 메모리의 라이트하는 순서는 대각선 방향으로 진행하는데, 좌측 맨 아래 영역 즉, C영역부터 시작하며 그 순서는 다음과 같다.
C1 -> D1 -> H1 -> C2 -> D2 -> H2 -> ... -> B1 -> F1 -> G1 -> ... -> A1 -> E1 -> I1 -> A2 -> E2 -> I2 ->...의 순으로 메모리에 라이트되며, C1에는 01, D1에는 14, H1에는 09, C2에는 04, D2에는 17, H2에는 12, B1에는 07...의 순으로 실제 데이터가 라이트된다.
그리고, 라이트와 동시에 메모리로부터 정해진 순서대로 데이터를 읽어오면 인터리빙전의 데이터 순서대로 출력된다. 즉, 최하위 영역부터 수평방향으로 순차적으로 데이터를 읽어오는데 그 순서는 다음과 같다.
C1 -> F1 -> I1 -> C2 -> F2 -> I2 -> ... -> A1 -> D1 -> G1 -> ... -> B1 -> E1 -> H1 -> B2 -> E2 -> H2 ->...의 순으로 메모리로부터 읽으면, 디코더로 출력되는 데이터는 01 02 03 04 05 06 07...의 순이 된다.
그러나, 상기된 메모리를 이용한 인터리빙/디인터리빙 방법은 일단 메모리에 데이터를 모두 라이트한 후에 읽어내므로 메모리의 크기는 N×N×J가 된다. 따라서, 쉬프트 레지스터를 이용할 때보다는 사이즈가 작아지지만 그래도 사이즈가 커지게 된다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 인터리빙/디인터리빙시 메모리에의 데이터 라이트 및 읽기를 파이프라인식으로 수행하여 메모리의 크기를 줄이는 인터리빙/디인터리빙 장치를 제공함에 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 인터리빙/디인터리빙 장치는, N개의 영역으로 구성되고 각 영역의 셀은 유닛 지연의 정수배로 순차 증가하며, 어드레스 신호에 의해 선택된 영역에서의 데이터의 라이트 및 리드에 의해 인터리빙을 수행하는 메모리와, N 클럭을 주기로 상기 메모리의 각 영역을 선택하고 선택된 영역에서의 데이터의 리드 및 라이트가 파이트라인식으로 수행되도록 어드레스를 발생하는 제어부로 구성되어 데이터의 인터리빙을 수행함을 특징으로 한다.
상기 메모리는 상기 제어부의 제어에 의해 선택된 영역의 해당 셀에 입력되는 데이터를 라이트하고 선택된 영역의 전체 셀 주기로 상기 셀에 라이트된 데이터의 리드와 동시에 리드된 셀에 새로운 데이터를 라이트하는 과정으로 인터리빙을 수행함을 특징으로 한다.
상기 메모리는 상기 제어부로부터 패스 신호가 발생되면 입력되는 데이터를 라이트하지 않고 그대로 출력함을 특징으로 한다.
본 발명의 디인터리버는 N개의 영역으로 구성되고 각 영역의 셀은 유닛 지연의 정수배로 순차 감소하며, 어드레스 신호에 의해 선택된 영역에서의 데이터의 라이트 및 리드에 의해 인터리빙을 수행하는 메모리와, N 클럭을 주기로 상기 메모리의 각 영역을 선택하고 선택된 영역에서의 데이터의 리드 및 라이트가 파이프라인식으로 수행되도록 어드레스를 발생하는 제어부로 구성되어, 상기 인터리버의 반대 과정으로 수행됨을 특징으로 한다.
이하, 본 발명의 바람직한 실시예를 첨부도면을 참조하여 상세히 설명한다.
도 5는 본 발명에 따른 인터리브/디인터리브 장치의 구성 블록도로서, 파이프라인식으로 수행하기위해 리드/라이트 인에이블 신호와 어드레스를 발생하는 제어부(51), 상기 제어부(51)에서 제공하는 어드레스에 데이터의 라이트 및 읽기를 수행하는 2포트 메모리(52), 및 입력되는 데이타 또는 메모리(52)에 라이트된 데이터를 패스라인에 따라 선택 출력하는 멀티플렉서(53)로 구성된다. 상기 2포트 메모리(52)는 J×(1+2+3+...+N-1)개의 영역으로 구분되며, J는 유닛 지연이다. 그리고, 각 영역이 하나의 처리단위가 된다.
도 6은 인터리빙시의 메모리의 맵 상태를 나타낸 것으로서, 도 1의 쉬프트 레지스터 구조와 유사하다. 즉, 각 영역은 유닛 지연(J)의 정수배로 순차 증가하며, 각 영역의 전체 셀 주기로 라이트된 데이터의 리드와 새로운 데이터의 라이트가 거의 동시에 이루어진다. 예컨대, 리드 어드레스와 라이트 어드레스는 같으며, 단지 리드되는 속도가 라이트되는 속도보다 빠르다.
만일, 어드레스가 0이면 어드레스 0에 있던 이전 데이터가 리드되어 출력되면서 새로운 데이터가 라이트된다. 초기 상태에서는 메모리에 라이트된 데이터가 없으므로 ×(×는 unknown)를 출력한다.
도 7은 도 5의 제어부(51)의 상세 블록도로서, J×(1+2+3+...+N-1)개의 메모리들을 억세스하기 위한 카운터가 N-1개 필요하다. 즉, 클럭이 입력될 때마다 순차적으로 인에이블 신호를 출력하는 멀티플렉서(70)와 상기 멀티플렉서(70)에서 출력되는 신호를 클럭으로 사용하여 메모리의 해당 영역에 리드/라이트 어드레스를 발생하는 N-1개의 카운터(71∼7N)으로 구성된다.
예를 들어, N=3, J=4라고 가정할 때 인터리브 동작은 다음과 같다.
이때, 제어부(51)로 입력되는 클럭은 도 8의 (a)와 같고, 인에이블 신호는 (b)와 같다고 하면, 제어부(51)에서는 도 8의 (c) 내지 (g)와 같이 클럭에 동기되어 순차적으로 하이가 되고, 하이가 되는 출력에 맞추어서 도 8의 (h)와 같이 어드레스가 출력된다.
즉, 엔코더로부터 데이터가 도 9a와 같이 순차적으로 입력된다고 할 때 제어부(51)에서 패스 신호가 출력되면 입력되는 데이터는 도 9b와 같이 메모리(52)에 라이트되지 않고 그대로 멀티플렉서(53)를 통해 출력된다.
만일, 패스 신호가 아닌 다른 신호가 출력되면 제어부(51)에서 출력되는 어드레스에 따라 입력되는 데이터가 메모리(52)에 라이트되는데, 첫째 메모리 영역에서는 도 9c와 같이 4개의 셀 주기로 데이터가 라이트되면 리드 어드레스에 의해 데이터가 리드되면서 리드된 위치에는 새로운 데이터가 다시 라이트된다. 이때, 둘째 메모리 영역은 도 9d와 같이 8개의 셀로 이루어져 있으므로 첫째 메모리 영역에서 데이터를 읽기 시작해도 둘째 메모리 영역은 계속 라이트만 한다. 그러다가 8개의 셀 주기로 데이터가 모두 라이트되면 리드 어드레스에 의해 데이터가 리드되면서 리드된 위치에는 새로운 데이터가 다시 라이트된다. 즉, 첫째 메모리 영역은 초기 4클럭동안은 라이트된 데이터가 없으므로 ×를 출력하다가 4클럭이 지나면 데이터가 라이트되므로 이때부터 데이터를 출력하는데, 데이터를 리드함과 동시에 리드된 위치에 새로운 데이터를 라이트한다. 만일, 02가 리드되었다면 02 데이터는 이제 필요없으므로 02가 있던 위치에 14가 라이트된다.
여기서, 첫째 메모리 영역의 데이터들이 출력되기까지는 14클럭(4×3+2)이 소요된다. 여기서, 4는 첫째 메모리 영역이 4셀로 되어 있음을 의미하고, 3은 3클럭마다 데이터가 라이트됨을 의미하며, 2는 초기에 2클럭이 지나야 데이터가 입력됨을 의미한다. 그리고, 둘째 메모리 영역의 데이터들이 출력되기까지는 26클럭(2×4×3+3)이 소요된다. 여기서, 2는 둘째 메모리 영역이 2개의 4셀 즉, 8개의 셀로 구성됨을 의미한다.
그러므로, 메모리(52)로부터의 출력은 도 9e와 같이 01 × × 04 × × 07 × × 10 ×× 12 02 × 16 05 × 19 08,...의 순으로 출력된다.
도 10은 디인터리버의 메모리의 맵 상태를 나타낸 것으로서, 인터리버의 맵 상태의 반대 구조로 된다. 도 11은 디인터리버의 제어부의 구성블럭도로서, 인터리버의 제어부의 구성과 동일하다. 즉, 디인터리버의 메모리로 2포트 메모리로서, J×(1+2+3+...+N-1)개의 메모리로 구성되며, 이 메모리들을 억세스하기 위한 카운터(81∼8N)가 N-1개 필요하고, 이 카운터를 제어하기 위한 멀티플렉서(80)가 필요하다. 여기서도, 도 12의 (c) 내지 (g)와 같이 멀티플렉서(80)의 각 출력 soutN-1∼sout1은 각 카운터(81∼8N)의 클럭으로 쓰이고, 카운터(81∼8N)에서 카운트된 출력은 메모리의 리드 어드레스 또는 라이트 어드레스로 사용된다. 이때, 어드레스의 발생은 인터리버와 반대가 되어야 한다. 그리고, 도 12의 (h)와 같은 패스 신호는 데이터를 메모리에 라이트하지 않고 그냥 통과하게 하는 신호이다.
즉, 패스 신호가 발생되면 메모리에 데이터의 리드 또는 라이트를 중지하고 데이터를 바로 디코더로 출력한다. 패스 신호가 발생하지 않을 경우에는 카운터에서 발생되는 어드레스에 따라 데이터를 라이트하고 어드레스가 중복되면 리드먼저 한 후에 라이트한다. 예를 들면, 첫 번째 카운터는 0부터 J-1까지 카운트하고 두 번째 카운터는 J부터 3J-1까지 카운트하는데, 첫 번째 카운터가 J-1까지 카운트하고 난 후 다시 0부터 카운트할 때 어드레스 0에 써진 데이터는 읽어내고 다음 데이터를 그 위치에 라이트한다. 즉, 이미 읽어낸 데이터는 더 이상 필요없기 때문에 2포트 램 구조를 이용하여 바로 그 위치에 새로운 데이터를 써 넣는 것이다.
도 13a 내지 도 13e는 N=3, J=4라고 가정할 때의 디인터리브 동작을 나타낸 것으로, 인터리버의 출력은 디인터리버의 입력이 되므로, 디인터리버의 입력은 도 13a와 같이 01 × × 04 × × 07 × × 10 × × 13 02 × 16...의 순으로 된다.
이때, 첫째 메모리는 8개의 셀로 구성되어 있고, 둘째 셀은 4개의 셀로 구성되어 있으며, 동작은 종래의 쉬프트 레지스터를 사용한 디인터리빙 동작과 동일하다.
따라서, 최종 출력은 도 13e에서와 같이, 24 클럭동안 ×가 출력되다가 이후부터는 인터리빙전의 상태 즉, 01 02 03 04 05 06 07 08 09 10 11...순으로 출력된다.
이와같이, 본 발명은 J×(1+2+3+...+N-1)개의 메모리로 인터리빙 또는 디인터리빙을 수행하므로 도 4에 도시된 종래의 메모리보다 약 50% 이상 메모리 사이즈를 줄일 수 있게 된다.
이상에서와 같이 본 발명에 따른 인터리브/디인터리브 장치에 의하면, 2포트 램과 2포트 램에 리드/라이트 어드레스를 발생하는 카운터를 이용하여 데이터가 라이트되면 데이터를 리드와 동시에 리드된 위치에 새로운 데이터를 라이트하는 방식으로 인터리빙 및 디인터리빙을 수행함으로써, 메모리의 사이즈를 줄인다.
도 1은 종래의 쉬프트 레지스터를 이용한 인터리버/디인터리버의 구성 블록도
도 2a 내지 도 2c는 도 1의 인터리빙 과정을 나타낸 도면
도 3a 내지 도 3c는 도 1의 디인터리빙 과정을 나타낸 도면
도 4a는 종래의 메모리를 이용한 인터리브/디인터리버의 메모리 맵 상태를 보인 도면
도 4b,4c는 설명의 편의를 위한 메모리 맵 상태를 보인 도면
도 5는 본 발명에 따른 인터리버/디인터리버를 나타낸 구성 블록도
도 6는 인터리빙시의 본 발명에 따른 메모리 맵 상태를 보인 도면
도 7은 도 5의 제어부의 상세 블록도
도 8의 (a) 내지 (h)는 도 7의 제어부의 각 동작 파형도
도 9a 내지 도 9e는 본 발명에 따른 인터리빙 과정을 나타낸 도면
도 10은 디인터리빙시의 본 발명에 따른 메모리 맵 상태를 보인 도면
도 11은 인터리빙시의 본 발명에 따른 제어부의 상세 블록도
도 12의 (a) 내지 (i)는 도 11의 제어부의 각 동작 파형도
도 13a 내지 도 13e는 본 발명에 따른 디인터리빙 과정을 나타낸 도면
도면의 주요부분에 대한 부호의 설명
51 : 제어부 52 : 메모리
53 : 멀티플렉서 71∼7N : 카운터

Claims (6)

  1. N개의 영역으로 구성되고 각 영역의 셀은 유닛 지연의 정수배로 순차 증가하며, 어드레스 신호에 의해 선택된 영역의 해당 셀에서 이전 데이터가 리드됨과 동시에 새로운 데이터가 라이트되어 인터리빙을 수행하는 메모리와,
    N 클럭을 주기로 상기 메모리의 각 영역을 선택하고 선택된 영역의 해당 셀에서 데이터의 리드가 먼저 이루어지고, 동시에 그 영역의 셀에 새로운 데이터가 라이트되도록 어드레스를 발생하는 제어부로 구성되는 것을 특징으로 하는 인터리브 장치.
  2. 제 1 항에 있어서, 상기 메모리는
    상기 제어부의 제어에 의해 선택된 영역의 해당 셀에 입력되는 데이터를 라이트하고 선택된 영역의 전체 셀 주기로 상기 셀에 라이트된 데이터를 리드함과 동시에 리드된 셀에 새로운 데이터를 라이트하는 과정으로 인터리빙을 수행함을 특징으로 하는 인터리버.
  3. 제 1 항에 있어서, 상기 메모리는
    상기 제어부로부터 패스 신호가 발생되면 입력되는 데이터를 라이트하지 않고 그대로 출력함을 특징으로 하는 인터리버.
  4. N개의 영역으로 구성되고 각 영역의 셀은 유닛 지연의 정수배로 감소하며, 어드레스 신호에 의해 선택된 영역의 해당 셀에서 이전 데이터가 리드됨과 동시에 새로운 데이터가 라이트되어 디인터리빙을 수행하는 메모리와,
    N 클럭을 주기로 상기 메모리의 각 영역을 선택하고 선택된 영역의 해당 셀에서 데이터의 리드가 먼저 이루어지고, 동시에 그 영역의 셀에 새로운 데이터가 라이트되도록 어드레스를 발생하는 제어부로 구성되는 것을 특징으로 하는 디인터리버.
  5. 제 4 항에 있어서, 상기 메모리는
    상기 제어부의 제어에 의해 선택된 영역의 해당 셀에 인터리빙된 데이터를 라이트하고 선택된 영역의 전체 셀 주기로 상기 셀에 라이트된 데이터를 리드함과 동시에 리드된 위치에 새로운 데이터를 라이트하는 과정으로 디인터리빙을 수행함을 특징으로 하는 디인터리버.
  6. 제 4 항에 있어서, 상기 메모리는
    상기 제어부로부터 패스 신호가 발생되면 입력되는 데이터를 라이트하지 않고 그대로 출력함을 특징으로 하는 디인터리버.
KR1019980000605A 1998-01-12 1998-01-12 인터리브/디인터리브 장치 KR100556469B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980000605A KR100556469B1 (ko) 1998-01-12 1998-01-12 인터리브/디인터리브 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980000605A KR100556469B1 (ko) 1998-01-12 1998-01-12 인터리브/디인터리브 장치

Publications (2)

Publication Number Publication Date
KR19990065357A KR19990065357A (ko) 1999-08-05
KR100556469B1 true KR100556469B1 (ko) 2006-04-21

Family

ID=37180713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980000605A KR100556469B1 (ko) 1998-01-12 1998-01-12 인터리브/디인터리브 장치

Country Status (1)

Country Link
KR (1) KR100556469B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100651500B1 (ko) * 2000-08-30 2006-11-28 삼성전자주식회사 디지털 오디오 방송용 타임 디인터리버 메모리의 제어 장치
KR100438427B1 (ko) * 2001-12-04 2004-07-03 삼성전자주식회사 디인터리빙 장치 및 방법
KR100733767B1 (ko) * 2005-12-05 2007-06-29 한국전자통신연구원 시간 디인터리빙 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334867A (ja) * 1992-05-29 1993-12-17 Toshiba Corp 半導体記憶装置
JPH05342095A (ja) * 1992-06-10 1993-12-24 Toshiba Corp 近傍補間用インターリーブメモリ及びこのメモリを用いた画像処理装置
JPH06243038A (ja) * 1992-04-17 1994-09-02 Sun Microsyst Inc キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置
US5537420A (en) * 1994-05-04 1996-07-16 General Instrument Corporation Of Delaware Convolutional interleaver with reduced memory requirements and address generator therefor
KR970055848A (ko) * 1995-12-21 1997-07-31 양승택 무선이동통신 시스템에서 기지국에 사용된 인터리버의 파이프라인 방식 제어방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06243038A (ja) * 1992-04-17 1994-09-02 Sun Microsyst Inc キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置
JPH05334867A (ja) * 1992-05-29 1993-12-17 Toshiba Corp 半導体記憶装置
JPH05342095A (ja) * 1992-06-10 1993-12-24 Toshiba Corp 近傍補間用インターリーブメモリ及びこのメモリを用いた画像処理装置
US5537420A (en) * 1994-05-04 1996-07-16 General Instrument Corporation Of Delaware Convolutional interleaver with reduced memory requirements and address generator therefor
KR970055848A (ko) * 1995-12-21 1997-07-31 양승택 무선이동통신 시스템에서 기지국에 사용된 인터리버의 파이프라인 방식 제어방법

Also Published As

Publication number Publication date
KR19990065357A (ko) 1999-08-05

Similar Documents

Publication Publication Date Title
US5463591A (en) Dual port memory having a plurality of memory cell arrays for a high-speed operation
US4825411A (en) Dual-port memory with asynchronous control of serial data memory transfer
KR100356356B1 (ko) 논리회로
US4483001A (en) Online realignment of memory faults
KR930024012A (ko) 반도체 기억장치
KR19980018726A (ko) 데이터를 동시에 입력 및 출력하는 2포트 반도체기억장치 (two port memory for simultaneously inputting and outputting data)
US5708618A (en) Multiport field memory
US6191997B1 (en) Memory burst operations in which address count bits are used as column address bits for one, but not both, of the odd and even columns selected in parallel.
EP0520425B1 (en) Semiconductor memory device
KR100556469B1 (ko) 인터리브/디인터리브 장치
KR100317542B1 (ko) 반도체메모리장치
KR0161868B1 (ko) 메모리 주소제어회로
KR100228455B1 (ko) 반도체 메모리 회로
KR930008847A (ko) 듀얼포트 반도체 기억 장치
US3969717A (en) Digital circuit to eliminate display flicker
KR0172025B1 (ko) 반도체 기억 장치
JPH1069430A (ja) 半導体記憶装置
US7075846B2 (en) Apparatus for interleave and method thereof
KR0183171B1 (ko) 인터리버 및 디인터리버와 그 방법
JPH023197A (ja) デュアルポートメモリ
SU951401A1 (ru) Запоминающее устройство
JPH04168811A (ja) デインターリーブ回路
KR100557933B1 (ko) 버스 효율 향상을 위한 라이트 버퍼의 구조
JPH06290584A (ja) 半導体記憶装置
JP2629450B2 (ja) メモリ回路

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20091230

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee