KR100331414B1 - 인터리브된데이터스트림을디인터리브하기위한방법및장치 - Google Patents

인터리브된데이터스트림을디인터리브하기위한방법및장치 Download PDF

Info

Publication number
KR100331414B1
KR100331414B1 KR1019980708082A KR19980708082A KR100331414B1 KR 100331414 B1 KR100331414 B1 KR 100331414B1 KR 1019980708082 A KR1019980708082 A KR 1019980708082A KR 19980708082 A KR19980708082 A KR 19980708082A KR 100331414 B1 KR100331414 B1 KR 100331414B1
Authority
KR
South Korea
Prior art keywords
data
words
block
memory
read
Prior art date
Application number
KR1019980708082A
Other languages
English (en)
Other versions
KR20000005361A (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 KR20000005361A publication Critical patent/KR20000005361A/ko
Application granted granted Critical
Publication of KR100331414B1 publication Critical patent/KR100331414B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • H03M13/2782Interleaver implementations, which reduce the amount of required interleaving memory
    • H03M13/2785Interleaver using in-place interleaving, i.e. writing to and reading from the memory is performed at the same memory location

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명에 따른 방법 및 장치는 N워드의 단일 비트 위치로부터 데이터의 N 비트를 포함하는 데이터 그룹의 시퀀스로서 각각 전송된 데이터 블록들을 디인터리브한다. N워드의 각각에 대한 메모리 위치를 정의하는 방식으로 제1 데이터 블록이 수신(1004)되어 메모리(402)에 저장됨으로써, 상기 제1 데이터 블록을 디인터리브한다. 다음 데이터 블록이 메모리에 이전에 저장된 N워드의 적어도 일부를 처리(1008)함으로써 수신되어, 자유 메모리 위치를 제공하고, 그후 다음 데이터 블록의 다음 데이터 그룹의 적어도 일부를 포함하는 새로은 데이터를 수신(1012)한다. 새로운 데이터는 자유 메모리 위치의 적어도 일부에 저장(1014)되고, 다음 데이터 블록이 수신되어 모두 저장될 때까지 처리가 계속된다. 이때 메모리 위치가 N워드에 대해 재정의(1018)되어, 다음 데이터 블록을 디인터리브하게 된다.

Description

인터리브된 데이터 스트림을 디인터리브하기 위한 방법 및 장치{METHOD AND APPARATUS FOR DEINTERLEAVING AN INTERLEAVED DATA STREAM}
최근 데이터 통신 시스템은 버스트 오류에 대한 개선된 면역성을 위해 인터리브된 데이터 전송을 이용한다. 이와 같은 시스템은 전형적으로 전송 전에 메모리의 직사각형 어레이에 코드 워드를 정렬한다. 전송 동안, 어레이에서의 모든 코드 워드의 제1 비트 위치에 있는 비트들이 그룹으로 전송되고, 모든 코드 워드의 다음 비트 위치에 있는 비트들이 다음 그룹으로 이어져서, 모든 코드 워드의 모든 비트들이 전송될 때까지 계속된다. 비트 그룹들이 통신 수신기에 의해 수신될 때, 비트들은 코드 워드를 복원하기 위해 디인터리브되어야 한다.
종래 수신기는 필요한 디인터리빙을 수행하기 위해 두 개의 메모리 어레이를 사용한다. 두 개의 메모리 어레이중 첫째 어레이가 인터리브된 데이터의 제1 블럭을 수신하도록 동작한다. 그후 데이터의 제1 블럭은 데이터를 디인터리브하고 코드 워드를 복원하도록 처리된다. 데이터의 제1 블럭을 처리하기 위해 시간이 필요하고 데이터의 제2 블럭이 데이터의 제1 블럭의 끝단 직후 도달하기 시작하기 때문에, 두 개의 메모리 어레이중 두번째 어레이가 데이터의 제1 블럭이 처리되고 있는 동안 데이터의 제2 블럭을 수신한다. 데이터의 인입 블럭들을 교대로 수신하고 처리하기 위해 두 개의 메모리 어레이가 교대로 이용되면서 이러한 처리가 계속된다.
데이터 블럭들에 사용되는 큰 크기로 인해, 현재의 고속 데이터 통신 시스템에서 문제가 발생한다. 예를 들어, 1024 비트의 블럭 크기는 흔하며, 종래 기술에 의해 인터리브하기 위한 메모리 지원 회로와 함께 두 개의 독립적인 1024-비트 메모리 어레이를 필요로 한다. 두 개의 독립적인 1024-비트 메모리 어레이에 대한 요건은 메모리 어레이를 구비하는 집적 회로의 크기와 비용을 상당히 증가시킬 수 있다. 추가적으로, 휴대용 통신 응용에 매우 중요한 전력 소비는 두 개의 메모리 어레이를 가짐으로써 증가된다.
그래서, 단일 메모리 어레이만을 필요로 하면서 디인터리빙을 달성할 수 있는 방법 및 장치가 요구된다.
<발명의 요약>
본 발명의 특징은 복수의 데이터 블록들로서 전송되는 인터리브된 데이터 스트림을 디인터리브(deinterleaving)하는 방법이다. 데이터 블록은 M 비트 위치에 M 비트를 갖는 N 워드들을 표현하는 인터리브된 데이터를 포함한다. 데이터 블록은 데이터 그룹들의 시퀀스로서 전송되며, 하나의 데이터 그룹은 상기 모든 N 워드들의 단일 비트 위치로부터 데이터의 N 비트를 포함한다. 상기 방법은 (a) 상기 인터리브된 데이터 스트림의 제1 데이터 블록을 수신하고, (b) 상기 N 워드들의 각각에 대한 메모리 위치를 정의하는 방식으로 메모리에 상기 제1 데이터 블록을 저장함으로써, 상기 제1 데이터 블록을 디인터리브하는 단계를 포함한다. 상기 방법은 또한 (c) 다음 데이터 블록을 수신하는 단계를 포함한다. 다음 데이터 블록을 수신하는 단계는 (d) 상기 N 워드들 모두가 처리되지 않는 한, 상기 메모리에 이전에 저장된 상기 N 워드들의 적어도 일부를 처리하여, 자유 메모리 위치를 제공하고, (e) 그후, 상기 다음 데이터 블록의 다음 데이터 그룹의 적어도 일부를 구비하는 새로운 데이터를 수신하는 단계를 포함한다. 다음 데이터 블록을 수신하는 단계는 (f) 상기 자유 메모리 위치의 적어도 일부에 상기 새로운 데이터를 저장하고, (g) 상기 다음 데이터 블록이 수신되어 모두 저장될 때까지 상기 단계 (d), (e) 및 (f)를 반복하는 단계를 더 포함한다. 다음 데이터 블록을 수신하는 단계는 또한 (h) 상기 다음 데이터 블록이 수신되어 모두 저장된 후 상기 N 워드들에 대한 메모리 위치를 재정의하여, 상기 다음 데이터 블록을 디인터리브하는 단계를 더 포함한다.
본 발명의 또 다른 특징은 복수의 데이터 블록들로서 전송되는 인터리브된 데이터 스트림을 디인터리브하기 위한 장치이다. 데이터 블록은 M 비트 위치에 M 비트를 갖는 N 워드들을 표현하는 인터리브된 데이터를 포함한다. 데이터 블록은 데이터 그룹들의 시퀀스로서 전송되며, 하나의 데이터 그룹은 상기 모든 N 워드들의 단일 비트 위치로부터 데이터의 N 비트를 포함한다. 상기 장치는 상기 인터리브된 데이터 스트림의 제1 데이터 블록을 수신하기 위한 수신기 및 상기 수신기에 결합되어, 상기 N 워드들의 각각에 대한 메모리 위치를 정의하는 방식으로 상기제1 데이터 블록을 저장하여, 상기 제1 데이터 블록을 디인터리브하기 위한 메모리를 구비한다. 상기 장치는 상기 수신기 및 상기 메모리에 결합되어, 다음 데이터 블록의 수신을 제어하기 위한 처리기를 더 구비한다. 상기 처리기는 상기 N 워드들의 모두가 처리되지 않는 한, 상기 메모리에 이전에 저장된 상기 N 워드들의 적어도 일부를 처리하여, 자유 메모리 위치를 제공하고, 상기 다음 데이터 블록의 다음 데이터 그룹의 적어도 일부를 구비하는 새로운 데이터를 수신하도록 프로그램된다. 상기 처리기는 상기 자유 메모리 위치의 적어도 일부에 상기 새로운 데이터를 저장하고, 상기 다음 데이터 블록이 수신되어 모두 저장될 때까지, 이전에 저장된 N 워드들을 계속 처리하고 새로운 데이터를 수신하여 제공된 상기 자유 메모리 위치에 저장하도록 프로그램된다. 상기 처리기는 상기 다음 데이터 블록이 수신되어 모두 저장된 후 상기 N 워드들에 대한 메모리 위치를 재정의하여, 상기 다음 데이터 블록을 디인터리브하도록 프로그램된다.
본 발명의 또 다른 특징은 복수의 데이터 블록들로서 전송되는 인터리브된 데이터 스트림을 디인터리브하기 위한 통신 수신기이다. 데이터 블록은 M 비트 위치에 M 비트를 갖는 N 워드들을 표현하는 인터리브된 데이터를 포함한다. 데이터 블록은 데이터 그룹들의 시퀀스로서 전송되며, 하나의 데이터 그룹이 상기 모든 N 워드들의 단일 비트 위치로부터 데이터의 N 비트를 포함한다. 상기 통신 수신기는 상기 복수의 데이터 블록들을 운반하는 무선 신호를 인터셉트(intercepting)하기 위한 안테나 및 상기 안테나에 결합되어, 상기 인터리브된 데이터 스트림의 제1 데이터 블록을 수신하기 위한 수신기를 구비한다. 상기 통신 수신기는 상기 수신기에 결합되어, 상기 N 워드들의 각각에 대한 메모리 위치를 정의하는 방식으로 상기 제1 데이터 블록을 저장하여, 상기 제1 데이터 블록을 디인터리브하기 위한 메모리 및 상기 메모리에 결합되어, 상기 복수의 데이터 블록들로서 표현된 정보를 사용자에게 운반하기 위한 사용자 인터페이스를 더 구비한다. 상기 통신 수신기는 또한 상기 수신기 및 상기 메모리에 결합되어, 다음 데이터 블록의 수신을 제어하기 위한 처리기를 구비한다. 상기 처리기는 상기 N 워드들의 모두가 처리되지 않는 한, 상기 메모리에 이전에 저장된 상기 N 워드들의 적어도 일부를 처리하여, 자유 메모리 위치를 제공하고, 상기 다음 데이터 블록의 다음 데이터 그룹의 적어도 일부를 구비하는 새로운 데이터를 수신하도록 프로그램된다. 상기 처리기는 상기 자유 메모리 위치의 적어도 일부에 상기 새로운 데이터를 저장하고, 상기 다음 데이터 블록이 수신되어 모두 저장될 때까지, 이전에 저장된 N 워드들을 계속 처리하고 새로운 데이터를 수신하여 제공된 상기 자유 메모리 위치에 저장하도록 프로그램된다. 상기 처리기는 또한 상기 다음 데이터 블록이 수신되어 모두 저장된 후, 상기 N 워드들에 대한 메모리 위치를 재정의하여, 상기 다음 데이터 블록을 디인터리브하도록 프로그램된다.
본 발명은 일반적으로 통신 수신기에 관한 것으로, 특히 통신 수신기에 의해 수신된 인터리브된 데이터 스트림(interleaved data stream)을 디인터리브(deinterleaving)하기 위한 방법 및 장치에 관한 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 통신 수신기의 전기적 블럭도.
도 2는 본 발명의 실시예에 따른 짝수의 데이터 블럭들을 디인터리브(deinterleaving)하기 위한 메모리 구조도.
도 3은 본 발명의 실시예에 따른 홀수의 데이터 블럭들을 디인터리브하기 위한 메모리 구조도.
도 4는 본 발명이 바람직한 실시예에 따른 디인터리버의 전기적 블럭도.
도 5는 본 발명의 바람직한 실시예에 따른 데이터 판독-수정-기록 논리 회로의 전기적 블럭도.
도 6은 본 발명의 바람직한 실시예에 따른 데이터 판독 논리 회로의 전기적 블럭도.
도 7은 본 발명의 바람직한 실시예에 따른 판독 카운터 논리 회로의 전기적 블럭도.
도 8은 본 발명의 바람직한 실시예에 따른 선택 디코더 논리 회로의 전기적 블럭도.
도 9는 본 발명의 바람직한 실시예에 따른 비트 수정 선택 논리 회로의 전기적 블럭도.
도 10은 본 발명의 바람직한 실시예에 따른 디인터리빙 방법의 순서도.
도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 통신 수신기(100)의 전기적 블럭도는 종래 데이터 통신 시스템 하부 구조(도시하지 않음)로부터 당 기술 분야에 잘 공지된 기술을 사용하여 연속적으로 전송된 인터리브된 데이터 블럭을 운반하는 무선 주파수(RF) 신호를 인터셉트하기 위한 안테나(102)를 구비한다. 인터리브된 데이터는 바람직하게 모토롤라의 FLEXTM디지털 선택 호출 신호 프로토콜과 같이 잘 공지된 데이터 전송 프로토콜을 사용하여 전송된다. 이러한 프로토콜은 잘 공지된 오류 검출 및 오류 수정 기술을 이용하여, 만약 비트 오류가 임의의 한 코드 워드에서 너무 많지 않은 경우에는, 전송 동안 발생하는 비트 오류에 관대하다. 예를 들어, ReFLEXTM및 InFLEXionTM과 같은 다른 적합한 두 방식의 프로토콜이 또한 사용될 수 있슴을 알 수 있다. 배경 기술에 논의된 바와 같이, 각 데이터 블럭에서의 모든 코드 워드의 제1 비트 위치에 인터리브된 데이터 비트들이 그룹으로 전송되고, 이어서 블럭의 모든 코드 워드의 다음 비트 위치에 있는 비트들이 다음 데이터 그룹으로 전송되어, 블럭의 모든 코드 워드의 모든 비트들이 전송될 때까지 계속된다.
안테나(102)는 RF 신호를 수신하기 위한, 종래 복조 기술을 이용한 수신기(104)에 접속된다. 수신기(104)에 의해 수신된 무선 신호는 복조 데이터를 생성하는데, 이는 비트_데이터 라인(105)를 경유하여 데이터를 디인터리브하기 위한 디인터리버(106)에 접속되어 본 발명에 따라 내부에 포함된 코드 워드를 복원한다. 디인터리버(106)는 워드 버스(107)에 의해 디인터리브된 데이터를 처리하기 위한 처리 시스템(110)에 접속되어 그로부터 메세지를 추출한다. 제어 버스(109)는 디인터리버(106)의 동작을 제어하기 위해 처리 시스템에서 디인터리버(106)로 제어 신호를 공급한다. 처리 시스템(110)에 접속된 종래 전원 스위치(108)는 수신기(104)에 전력의 공급을 제어하는데 사용되어, 배터리 절약 기능을 제공한다.
통신 수신기(100)의 필요한 기능을 수행하기 위해, 처리 시스템(110)은 마이크로처리기(116), RAM(112), ROM(114), 및 EEPROM(118)을 포함한다. 바람직하게는, 처리 시스템(110)은 모토롤라사에 의해 제조된 M68HC08 마이크로-제어기와 유사하다.
다른 유사한 처리기가 처리 시스템(110)에 사용될 수 있고, 처리 시스템(110)의 처리 요건을 처리하도록 요구됨에 따라 동일하거나 대안의 부가적인 처리기가 더해질 수 있다는 것을 알 수 있을 것이다. 또한 다른 종류의 메모리, 예를 들어 EEPROM 또는 FLASH가 RAM(112) 뿐만 아니라 ROM(114)에 사용될 수 있다는 것을 알 수 있을 것이다. 더 나아가서, 단독으로 또는 결합된 RAM(112) 및 ROM(114)이 마이크로처리기(116)의 필수 부분으로서 제조될 수 있다는 것을 알 수 있을 것이다.
처리 시스템(110)은 인입 메시지를 처리하기 위해서 ROM(114)으로 프로그램된다. 처리 시스템(110)은 수신된 메시지의 디인터리브된 코드 워드내의 어드레스를 디코드하고, 디코드된 어드레스를 EEPROM(118)에 기억된 하나 이상의 어드레스와 비교하여 일치가 검출되면, 메시지의 남은 부분을 처리하기 시작한다.
처리 시스템(110)은 메시지를 처리하자마자, 이 메시지를 RAM(112)에 기억하고, 메시지가 수신되었음을 사용자에게 경보하기 위해서 호출 경보 신호가 발생된다. 호출 경보 신호는 가청 또는 접촉(tactile) 호출 경보 신호를 발생시키기 위해서 종래의 가청 또는 접촉 경보 장치(122)로 향해진다.
메시지는 사용자 제어(120)를 통해 사용자에 의해 액세스될 수 있고, 이 사용자 제어는 잠금, 잠금 해제, 삭제, 판독 등의 기능을 제공한다. 특히, 사용자제어(120)에 의해 제공된 적절한 기능의 사용으로, 메시지가 RAM(112)으로부터 복구될 수 있고 사용자 인터페이스(130)를 거쳐 사용자에게 전달된다. 사용자 인터페이스(130)는 바람직하게 디스플레이(124)를 포함하고, 또한 오디오 증폭기(126) 및 스피커(128) 결합체를 포함할 수 있다. 디스플레이(124), 예를 들어, 종래의 액정 디스플레이(LCD)가 데이터 메시지를 디스플레이하기 위해서 바람직하게 사용된다. 오디오 증폭기(126) 및 스피커(128)가 포함된다면, 오디오 음성 메시지를 재생하기 위해서 사용된다.
도 2 및 3을 참조하면, 본 발명의 실시예에 따라서, 짝수 및 홀수 번호의 데이터 블록을 각각 디인터리브하기 위한 메모리 구조(200, 300)에 대한 다이어그램이 도시된다. 메모리 구조는 단일 32-비트 x 32-비트(1024-비트) 메모리 어레이(202)로 형성되는 것이 바람직하다. 데이터 프레임의 제1 데이터 블록(블록0), 즉 모든 짝수 번호 데이터 블록에 대한 데이터 그룹 내에 수신된 비트 데이터가 도 1에서 묘사된 바와 같이 메모리 구조(200)를 사용하여 메모리 어레이(202) 내에 기억된다. 모든 코드 워드들의 비트 위치에 대응하는 각각의 데이터 그룹이 수신될 때, 비트가 메모리 어레이(202) 내에 열 방향으로 기억된다. 제1 데이터 블록의 모든 비트가 수신된 후, 제1 데이터 블록의 32개 코드 워드들이 디인터리브되고(각각의 32개 워드들의 위치가 정의되기 때문임), 메모리 어레이(202)의 행으로부터 바로 판독될 수 있다.
제2 블록(블록1)에 대한 데이터의 제1 비트가 수신되기 전에, 블록0의 제1 32-비트 워드(워드0)가 그 이상의 처리를 위해 메모리 어레이(202)의 제1 행으로부터 이미 판독된다. 이 제1 워드를 판독함으로써 작성된 자유 메모리 위치(free memory locations)가 다음 데이터 그룹, 즉, 다음 블록(블록1)의 워드0 내지 31에 대한 모든 비트-0-위치 비트를 기억하는데 사용된다. 블록1의 워드0의 제1 비트 1이 수신되기 전에, 블록0의 워드1이 메모리 어레이(202)의 제2 행으로부터 이미 판독되어 있다. 그러므로, 워드0 내지 31에 대한 비트-1-위치 비트가 블록0의 워드1에 의해 비워진 자유 메모리 위치에 기억될 수 있다. 이 프로세스는 블록1의 1024 비트 모두가 수신될 때까지 계속된다. 도 2는 블록1 및 모든 홀수 번호 데이터 블록들에 대해서 데이터가 어떻게 메모리 어레이(202) 내에 기억되는 지를 묘사한다. 블록1에 대한 모든 데이터 그룹이 메모리 어레이(202) 내에 기억된 후, 32개 워드들에 대한 메모리 위치가 (도 3에서 묘사된 바와 같이) 메모리 어레이(202)의 열로서 재 규정됨을 주목한다. 그러므로 32개 코드 워드들이 디인터리브되고 메모리 어레이(202)의 열로부터 바로 판독될 수 있다.
대안으로, 짝수 번호 데이터 블록들이 메모리 어레이(202) 행 방향으로 판독될 수 있고 디인터리브된 코드워드가 열 방향으로 판독될 수 있는 반면, 홀수 번호 데이터 블록들이 메모리 어레이(202)의 열 방향으로 판독될 수 있고 디인터리브된 코드 워드가 행 방향으로 판독될 수 있다는 것을 알 수 있을 것이다. 대안으로, 다른 보다 복잡한 메모리 구조가 데이터 블록을 기억하고 디인터리브된 코드 워드를 복원하는데 사용될 수 있다는 것을 더 알 수 있을 것이다. 대안으로, 데이터 블록이 정사각형일 필요가 없다는 것을 또한 알 수 있을 것이다 - 즉, N과 M이 같지 않을 때 데이터 블록이 N x M일 수 있음 -. 예를 들어, 8개 32-비트 워드의 데이터 블록이 본 발명에 따라서 디인터리브될 수 있다. 물론, 비-정사각형 데이터 블록을 갖는 비트의 메모리 어레이로의 맵핑은 매 교대 블록에 대해서 행과 열을 교환하는 것과 같이 간단하지 않는다.
본 발명에 따른 바람직한 실시예에 있어서, 데이터 블록의 디인터리빙에 사용된 메모리 어레이는 128개 8-비트 워드의 RAM(402)(도 4)이다. 보다 적은 지원 로직(support logic)이 요구되기 때문에 또한 결과적으로 보다 작은 다이 영역(die area)이 되기 때문에, 이러한 구성이 선택되었다 - 즉, 32 x 32 RAM은 보다 많은 지원 로직과 128 x 8 RAM 보다 큰 다이 영역을 필요로함 -. 이 경우에 데이터 블록이 정사각형이라고 해도, 메모리 어레이 자체가 정사각형이 아니기 때문에, 이하 보다 상세히 설명된 바와 같이, RAM(402)으로의 비트 맵핑이 교대 데이터 블록에 대해 행과 열을 단순 교환함으로써 행해질 수 없다.
1024 비트의 각 데이터 블록이 기억된 RAM(402)에서의 비트 위치는 RAM(402)으로의 판독 및 기록 액세스의 수를 최소화하기 위해서 선택되어 전력을 절약한다. RAM(402)으로의 판독 및 기록 어드레스가 다음의 수학식으로 정의된다.
짝수 데이터 블록의 인입 데이터 그룹을 기록하기 위해서,
짝수 데이터 블록의 디인터리브된 코드 워드를 판독하기 위해서,
홀수 데이터 블록의 인입 데이터 그룹을 기록하기 위해서,
홀수 데이터 블록의 디인터리브된 코드 워드를 판독하기 위해서,
상기 수학식에서, 괄호 안의 숫자는 변수들의 다양한 비트들 간의 대응을 정의한다. 예를 들어, 수학식 1은 변수 "bit_adr"의 비트 9 내지 0이 각각 변수 "bit_cnt"의 비트 7 내지 5, 9, 4 내지 0, 및 8에 대응한다는 것을 나타낸다.
변수 "bit_cnt"는 RAM(402)으로 들어오는 비트를 계속 계수한다. "bit_cnt"의 값은 블록의 제1 비트를 가지고 0에서 시작하고 블록의 마지막 비트를 나타내는 1023에서 종료한다. "bit_cnt"의 값은 새로운 비트가 디인터리버(106)에 들어오는 매 시간마다 증가된다. 변수 "bit_adr"는 데이터 비트가 RAM(402)에 기억되는 비트 위치를 나타낸다. "bit_adr"의 7개 최상위 비트(MSBs)는 비트 데이터가 기억된 RAM(402)의 128 메모리 워드 중 하나를 지시하고, 반면에 3개 최하위 비트(LSBs)는 입력 비트 데이터가 기억된 메모리 워드 내에 8 비트 위치를 나타낸다. 변수 "word_dat_adr"는 RAM(402)으로부터 판독될 32-비트 워드 중 하나를 식별한다."word_dat_adr"의 5개 MSBs는 각각의 32-비트 워드를 식별하는 한편 5개 LSBs는 32-비트 워드의 32 비트 각각을 나타낸다.
짝수 블록 데이터의 경우, RAM(402)에 있는 워드는 데이터 수신의 매 4 비트당 한번씩만 갱신된다. "bit_cnt"에서 4개의 증가 후, "bit_adr"의 7개 MSBs가 변화함을 주목함으로써 알 수 있다. 이것은 결과적으로 블록 내의 모든 1024 비트에 대해서 256 판독-수정-기록(512 메모리 액세스)이 된다. RAM(402)으로부터 판독될 32-비트 워드가 16개 메모리 위치 사이에 분배되기 때문에, 이 워드를 판독하기 위해서 16개의 2-비트를 필요로 한다. 그러므로, 모든 1024 비트를 판독하기 위해서 512 판독을 필요로 한다. 이것은 짝수 블록 데이터에 대해 RAM(402)에 전체 1024 액세스를 제공한다.
홀수 블록 데이터의 경우, RAM(402)에 있는 워드는 데이터 수신의 매 2 비트당 한번씩만 갱신된다. "bit_cnt"에서 2개의 증가 후, "bit_adr"의 7개 MSBs가 변화함을 주목함으로써 알 수 있다. 이것은 결과적으로 블록 내의 모든 1024 비트에 대해서 512 판독-수정-기록(1024 메모리 액세스)이 된다. RAM(402)으로부터 판독될 32-비트 워드가 8개 메모리 위치 사이에 분배되기 때문에, 이 워드를 판독하기 위해서 8개의 4-비트를 필요로 한다. 그러므로, 모든 1024 비트를 판독하기 위해서 256 판독을 필요로 한다. 이것은 홀수 블록 데이터를 위해 RAM에 전체 1280 액세스를 제공한다.
비트 데이터가 RAM(402)에 있는 연속 위치에 기억된다면, 짝수 블록을 위해 1024 판독-수정-기록(2048 메모리 액세스)과 128 판독을 필요로 하고, 홀수 블록을위해 128 기록 및 1024 판독을 필요로 할 것이다. 이것은 전체 3328 메모리 액세스를 필요로 할 것이다. 본 발명의 바람직한 실시예에 따라서 사용된 보다 복잡한 메모리 구조는 단지 2304 메모리 액세스만을 필요로 한다. 이는 메모리 액세스의 수를 약 31% 만큼 유리하게 감소시키므로, 전력을 보존한다.
도 4는 본 발명의 바람직한 실시예에 따른 디인터리버(106)의 전기적 블록도이다. 디인터리버는 bit_data 라인(105)을 거쳐 수신기(104)로부터 도달한 데이터 블록의 디인터리빙을 제어하기 위한 처리기(104)에 결합된 RAM(402)을 포함한다. 처리기(104)는 RAM(402)에 결합되어 8-비트 ram_in(RAM 입력) 신호(428)을 발생시킴으로써 인입 데이터 블록을 RAM(402)으로 기록하기 위한 데이터 판독-수정-기록 논리 회로(408)를 포함한다. 더욱이, 처리기(404)는 bit_data 라인(105)에 결합되어 데이터 블록의 비트들이 수신됨에 따라 이들을 카운트하고 수신된 현재 비트수를 정의하는 10-비트 bit_cnt(비트 카운트) 신호(450)를 발생하기 위한 종래의 비트 카운터(406)를 포함한다. (이 신호는 수학식 1 및 3에서 참조된 bit_cnt 값이다.)
처리기(404)는, 수학식 1 및 3에 따라 데이터를 RAM(402)에 기록하면서 RAM(402)의 어드레스된 워드의 비트들이 RAM(402)으로부터 판독되고 데이터 판독-수정-기록 논리 회로(408)의 레지스터(506)(도 5)에 저장되는가를 선택하기 위한 8-비트 bit_mod_sel(비트 수정 선택)을 발생시키기 위한 비트 수정 선택 논리 회로(410)를 더 포함한다. 비트 수정 선택 논리 회로(410)는 bit_cnt 신호(450), 0 입력에 결합된 종래의 AND 게이트를 갖는 종래의 멀티플렉서(418)에 의해 발생된read_mod_cn(판독-수정-인에이블) 신호(446)에 응답하며, 멀티플렉서(418)는 bit_cnt 신호(450)에 응답하고 제어 버스(109)를 거쳐 처리 시스템(110)에 의해 공급된 odd_block 신호(432)에 의해 제어된다. 처리기(404)는 또한 odd_block 신호(432)에 결합되고, 처리 시스템(110)에 의해 발생되고 제어 버스(109)를 거쳐 둘다 공급되는 read_cn(판독 인에이블) 신호(446) 및 start_read 신호(434)에 결합된 판독 카운터 논리 회로(412)를 포함한다. 판독 카운터 논리 회로(412)는, RAM(402)으로부터 디인터리브된 코드 워드를 판독할 때 RAM(402)의 어드레싱을 제어하기 위한 odd_block 신호(432)에 의해 제어되는 종래의 멀티플렉서(422)에 의해 선택적으로 사용되는 word_cnt(워드 카운트) 신호(442) 및 read_cnt(판독 카운트) 신호(444)를 발생시킨다.
처리기(404)는 bit_cnt 신호(450)에 응답하여, 종래의 디코더(414)를 거쳐 인입 데이터 비트를 기록하기 위하여 RAM(402)의 어드레스된 워드의 8비트 위치중 하나를 선택하기 위한 odd_block 신호(432)에 의해 제어되는 종래의 멀티플렉서(416)를 더 포함한다. 다시, 비트 위치는 수학식 1 및 3에 따라 선택된다. 인입 데이터 비트를 기록하기 위한 RAM(402)의 워드 어드레스는 bit_cnt 신호(450)에 결합된 멀티플렉서(420)에 의해 결정되고 odd_block 신호에 의해 제어되고, read_en 신호(436)에 응답하여 멀티플렉서(424)에 의해 더 선택된다. 처리기(404)는 또한 RAM(402)에 결합되어 RAM(402)으로부터 데이터를 판독하기 위한 ram_out(RAM 출력) 신호(430)를 수신하기 위한 데이터 판독 논리 회로(426)를 포함한다. 데이터 판독 논리 회로(426)는 또한 수학식 2 및 4에 따라 RAM(402)으로부터 32-비트 코드 워드의 판독을 제어하기 위한 word_cnt 신호(442), read_cnt 신호(444), odd_block 신호(432) 및 read_en 신호(436)에 결합된다. 코드 워드 각각이 판독됨에 따라, 처리 시스템(110)에 의해 더욱 처리하기 위하여 워드 버스(107)를 통해 출력된다. 바람직하게, 전력을 보존하기 위하여, RAM(402)은, 처리기(404)가 RAM(402)에 기록하거나 또는 이로부터 판독하는 데이터를 가질 때만 기술 분야에 잘 공지된 방식으로 부수적인 회로(도시되지 않음)에 의해 인에이블된다.
또한, 바람직하게, 디인터리버(106)는 간단하며 인접한 집적 회로로서 제조된다. 선택적으로, 디인터리버는 다중 집적 회로로서 또는 분리 장치로부터 제조될 수 있다는 것을 알 것이다. 한편, 다른 대안으로서, 디인터리버(106) 및 처리 시스템(110)은 간단한 커스텀 집적 회로로서 제조될 수 있다. 이들 및 다른 선택적 구성은 본 발명의 범위 및 의도로부터 벗어나지 않는다.
도 5 내지 도 9는 디인터리버(106)의 주요 블록을 보다 상세히 도시한다. 도 5를 참조하면, 본 발명의 바람직한 실시예에 따른 데이터 판독-수정-기록 논리 회로(408)의 전기적 블록도가 도시된다. 데이터 판독-수정-기록 논리 회로(408)는 bit_mod_sel 신호(438)에 응답하여, RAM(402)의 비트가 ram_out 신호(430)로부터 판독되고 8개의 종래 레지스터(506)에 저장되는지를 선택하기 위한 8개의 종래 멀티플렉서(502)를 포함한다. 데이터 판독-수정-기록 논리 회로(408)는 bit_sel 신호(440)에 응답하여, 레지스터(506)중 하나가 bit_data 라인(105)으로부터 인입 데이터 비트를 수신할 것인지를 선택하기 위한 8개의 종래 멀티플렉서(504)를 더 포함한다. 판독-수정 동작이 RAM(402)의 현재 어드레스된 워드에 대해 완료되었을 때, 레지스터(506)에 저장된 수정 데이터는 RAM(402)의 다음 사이클 동안 수정 데이터를 RAM(402)에 기록하기 위한 적절한 ram_in 신호(428)를 발생시킨다.
도 6은 본 발명의 바람직한 실시예에 따른 데이터 판독 논리 회로(426)의 전기적 블록도이다. 데이터 판독 논리 회로(426)는 ram_out 신호(430)가 4개의 8-비트 쉬프트 레지스터(616)에의 축적을 위하여 4개의 8:1 멀티플렉서(614) 각각에 의해 통과될 것인지를 선택하기 위한 4개의 3-비트 mux_sel(멀티플렉서 선택) 신호(604 내지 610)를 발생시키기 위한 선택 디코더 회로(602)를 포함한다. 선택 디코더 회로(602)는 또한 어느 쉬프트 레지스터(616)가 기록한 다음, 멀티플렉서(614)에 의해 통과된 데이터값을 쉬프트시키는지를 결정하기 위한 4-비트 shift_en(쉬프트 인에이블)을 발생시킨다. 선택 디코더 회로(602)는 read_en 신호(436) 및 odd_block 신호(432)에 응답할뿐 아니라, word_cnt 신호(442) 및 read_cnt 신호(444)의 선택된 비트에 응답하여, 수학식 2 및 4에 따라 RAM(402)으로부터 32-비트 코드 워드를 복원하기 위해 mux_sel 신호(604 내지 610) 및 shift_en 신호(612)를 발생시키기 위한 것이다.
도 7은 본 발명의 바람직한 실시예에 따른 판독 카운터 논리 회로(412)의 전기적 블록도이다. 판독 카운터 논리 회로(412)는 도시된 바와 같이 결합된 종래의 조합 논리 회로(702, 704, 705, 706), read_cnt 신호(444)를 발생시키기 위한 종래의 판독 카운터(708), 및 word_cnt 신호(442)를 발생시키기 위한 종래의 워드 카운터(710)를 포함한다. 판독 카운터(708) 및 워드 카운터 모두는 start_read신호(434)에 의해 리셋된다. 판독 카운터는 read_en 신호(436)에 의해 증분된다. 판독 카운터(708)는 또한, read_cnt 신호(444)가 코드 워드(즉, 짝수 블록에 대해 16 및 홀수 블록에 대해 8)를 복원하기 위해 최대 판독수에 도달할 때 리셋된다. 워드 카운터(710)는, read_cnt 신호(444)가 코드 워드를 복원하기 위해 최대 판독수에 도달할 때 증분된다.
도 8은 본 발명의 바람직한 실시예에 따른 선택 디코더 논리 회로(602)의 전기적 블록도이다. 선택 디코더 논리 회로(602)는 odd_block 신호(432)에 의해 제어되고 word_cnt 신호(442)의 선택된 비트 및 mux_sel 신호(604 내지 610)를 발생시키기 위한 추가 하드-와이어된 비트(hard-wired bits)에 결합된 4개의 종래 멀티플렉서(802)를 포함한다. 선택 디코더 논리 회로(602)는 도시된 바와 같이 shift_en 신호(612)를 발생시키기 위해 read_cnt 신호(444), odd_block 신호(432), 및 read_en 신호(436)에 결합된 종래의 조합 논리(804, 806, 808)를 더 포함한다. mux_sel 신호(604 내지 610)는 수학식 2 및 4에 따라 RAM(402)으로부터 디인터리브된 코드 워드를 판독하기 위해 shift_en 신호(612)와 협조한다.
도 9는 본 발명의 바람직한 실시예에 따른 비트 수정 선택 논리 회로(410)의 전기적 블록도이다. 비트 수정 선택 논리 회로(410)는 bit_cnt 신호(450) 및 odd_block 신호(432)에 결합되어 8개의 NOR 게이트(910)의 제1 입력들에 쌍으로 결합된 4개의 선택 신호를 발생시키기 위한 종래의 디코더(902)를 포함한다. 비트 수정 선택 논리 회로(410)는 도시된 바와 같이 NOR 게이트(910)의 선택된 제2 및 제3 입력들에 결합된 부수적인 종래의 논리 회로(904, 906, 및 908)를 더 포함한다. read_mod_en 신호(446)가 하이일 때, 비트 수정 선택 논리 회로(410)는 홀수 번호인 데이터 블록에 대해 bit_mod_sel 신호(438)의 8비트중 6비트를 어써트한다. 짝수 번호인 데이터 블록인 경우, 비트 수정 선택 논리 회로(410)는, bit_count 신호가 하이일 때 bit_mod_sel 신호(438)의 비트 0, 2, 4, 및 6를 어써트하고, bit_count 신호가 로우일 때 bit_mod_sel 신호(438)의 비트 1, 3, 5, 및 7을 어써트한다. 그 다음, bit_mod_sel 신호(438)는 상술된 바와 같은 데이터 판독-수정-기록 논리 회로(408)에 의해 이용되어, 수학식 1 및 3에 따라 인입 데이터 비트를 RAM(402)에 기록하기 위한 것이다.
도 10은 본 발명의 바람직한 실시예에 따른 디인터리빙 방법의 순서도이다. 이 순서도는 동작 비트 속도가 1600bps, 3200bps, 또는 6400bps인지의 여부에 대해 결정부(1002)로 시작한다. 비트 속도가 1600 또는 3200bps이면, 인입 데이터 블록은 RAM(402)의 2개의 분리부를 바람직하게 사용하는 종래의 방식으로 수신되고 디인터리브된다. 선택적으로, 종래의 디인터리빙은 소프트웨어 제어하에서 처리 시스템(110)에 의해 수행될 수 있다.
한편, 비트 속도가 6400bps이면, 디인터리빙은 본 발명에 따라 수행된다. 단계(1004)에서, 제1 데이터 블록이 수신된다. 데이터 블록은 M 비트 위치의 M 비트를 갖는 N 워드로 나타내는 인터리브된 데이터를 포함하고, 모든 N 워드의 단일 비트 위치에 대응하는 N비트 데이터를 각각 포함하는 일련의 데이터 그룹으로서 전송된다. 단계(1006)에서, 처리 시스템(110) 및 처리기(104)는 N 워드 각각에 대해 메모리 위치를 정의하는 방식으로, RAM(402)의 제1 데이터 블록을 저장하도록 협조한다. N 워드의 배치가 정의되고, N 워드가 RAM(402)으로부터 직접 판독될 수 있으므로, 제1 데이터 버스는 정의에 의해 디인터리브되었다.
단계(1008)에서, 처리기(404) 및 처리 시스템(110)은 RAM(402)에 저장된 N 워드중 적어도 일부를 처리하도록 협조하므로, RAM(402)에 자유 메모리 위치를 제공한다. 단계(1012)에서, 처리기(404)는 수신기(104)로부터 새로운 데이터를 수신한다. 새로운 데이터는 다음 데이터 블록의 다음 데이터 그룹중 적어도 일부를 포함한다. 그 다음, 처리기(404)는 새로운 데이터를 RAM(402)의 자유 메모리 위치중 적어도 일부에 저장한다. 단계(1016)에서, 처리기(404) 및 처리 시스템(110)은 다음의 전체 데이터 블록이 수신되었는지의 여부를 결정하도록 협조한다. 그렇지 않으면, 미리 저장된 데이터 블록의 모든 N 워드가 RAM(402)으로부터 수신되었는지의 여부를 검사하는 단계(1010)로 이동한다. 그렇치 않으면, N 워드의 부수적인 부분을 처리하는 단계(1008)로 복귀한다. 모든 N 워드가 처리되었다면, 부수적인 새로운 데이터를 수신하기 위해 단계(1008)는 스킵하고 단계(1002)로 직접 복귀한다.
단계(1016)에서, 처리기(404) 및 처리 시스템(110)이 다음의 전체 데이터 블록이 수신되었는지를 판정할 때, 이 때 처리기(404) 및 처리 시스템(11)은 N 워드(새롭게 저장됨)에 대해 메모리 위치를 재정의(1008)하도록 협조하여, 새롭게 저장된 N 워드를 디인터리브한다. 그 다음, 새롭게 저장된 N 워드의 처리를 시작하는 단계(1008)로 복귀한다.
따라서, 지금까지 본 발명이 디인터리빙 프로세스에 대해 단일 메모리 어레이만을 이용하면서, 인터리브된 데이터 신호중 디인터리빙을 유리하게 달성하는 방법 및 장치를 제공한다는 것이 명백하다. 이 방법 및 장치는 또한 메모리 어레이에의 액세스를 최소화하므로, 본 발명을 이용하는 휴대용 장치의 전력을 보존하여 배터리 수명을 유리하게 연장한다.
본 발명의 다양한 다른 실시예 및 변형이 당 기술분야에 통상의 기술을 가진 사람에게 합리적으로 행해질 수 있다. 따라서, 본 발명의 범위는 다음 청구범위에 따라서만 범위가 정해진다.

Claims (10)

  1. 하나의 데이터 블록이 M 비트 위치에 M 비트를 갖는 N 워드들을 표현하는 인터리브된 데이터를 포함하는 복수의 데이터 블록들 - 상기 데이터 블록은 하나의 데이터 그룹이 상기 모든 N 워드들의 단일 비트 위치로부터 데이터의 N 비트를 포함하는 데이터 그룹들의 시퀀스로서 전송됨- 로서 전송되는 인터리브된 데이터 스트림을 디인터리브(deinterleaving)하는 방법에 있어서,
    (a) 상기 인터리브된 데이터 스트림의 제1 데이터 블록을 수신하는 단계;
    (b) 상기 N 워드들의 각각에 대한 메모리 위치를 정의하는 방식으로 메모리에 상기 제1 데이터 블록을 저장하여, 상기 제1 데이터 블록을 디인터리브하는 단계; 및
    (c) 다음 데이터 블록을 수신하는 단계
    를 포함하며,
    상기 (c) 단계는,
    (d) 상기 N 워드들의 모두가 처리되지 않는 한, 상기 메모리에 이전에 저장된 상기 N 워드들의 적어도 일부를 처리하여, 자유 메모리 위치를 제공하는 단계,
    (e) 그후, 상기 다음 데이터 블록의 다음 데이터 그룹의 적어도 일부를 포함하는 새로운 데이터를 수신하는 단계,
    (f) 상기 자유 메모리 위치의 적어도 일부에 상기 새로운 데이터를 저장하는 단계,
    (g) 상기 다음 데이터 블록이 수신되어 모두 저장될 때까지 상기 단계 (d), (e) 및 (f)를 반복하는 단계, 및
    (h) 상기 다음 데이터 블록이 수신되어 모두 저장된 후 상기 N 워드들에 대한 메모리 위치를 재정의하여, 상기 다음 데이터 블록을 디인터리브하는 단계
    를 포함하되,
    상기 복수의 데이터 블록들은 제1 및 제2 세트들로 구성되고, 상기 제1 및 제2 세트들중의 하나는 홀수 번호의 데이터 블록들로 구성되고, 상기 제1 및 제2 세트들중의 또 다른 하나는 짝수 번호의 데이터 블록들로 구성되며,
    상기 짝수 또는 홀수 번호의 데이터 블록들중의 하나의 데이터 블록의 인터리브된 데이터는 메모리 행방향으로 판독될 수 있고 디인터리브된 워드들은 열방향으로 판독될 수 있는 반면, 상기 짝수 또는 홀수 번호의 데이터 블록들중의 다른 데이터 블록의 인터리브된 데이터는 메모리 열방향으로 판독될 수 있고 디인터리브된 워드들은 행방향으로 판독될 수 있는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    N=M이고,
    상기 단계 (d)는 상기 메모리에 이전에 저장된 N 워드들중의 하나를 처리하는 단계를 포함하고,
    상기 단계 (e)는 상기 다음 데이터 블록의 다음 데이터 그룹을 수신하는 단계를 포함하고,
    상기 단계 (f)는 상기 N워드들중의 상기 하나를 저장하기 위해 이전에 이용된 자유 메모리 위치에 상기 다음 데이터 그룹을 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 단계 (f)는 상기 복수의 데이터 블록들중의 하나를 저장하고, 상기 복수의 데이터 블록들중의 상기 하나의 N 워드들을 판독하는데 필요한 다수의 메모리 액세스를 최소화하는 방식으로 상기 새로운 데이터를 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 하나의 데이터 블록이 M 비트 위치에 M 비트를 갖는 N 워드들을 표현하는 인터리브된 데이터를 포함하는 복수의 데이터 블록들 - 상기 데이터 블록은 하나의 데이터 그룹이 상기 모든 N 워드들의 단일 비트 위치로부터 데이터의 N 비트를 포함하는 데이터 그룹들의 시퀀스로서 전송됨 - 로서 전송되는 인터리브된 데이터 스트림을 디인터리브(deinterleaving)하기 위한 장치에 있어서,
    상기 인터리브된 데이터 스트림의 제1 데이터 블록을 수신하기 위한 수신기;
    상기 수신기에 결합되어, 상기 N 워드들의 각각에 대한 메모리 위치를 정의하는 방식으로 상기 제1 데이터 블록을 저장하여, 상기 제1 데이터 블록을 디인터리브하기 위한 메모리; 및
    상기 수신기 및 상기 메모리에 결합되어, 다음 데이터 블록의 수신을 제어하기 위한 처리기
    를 포함하되,
    상기 처리기는,
    상기 N 워드들의 모두가 처리되지 않는 한, 상기 메모리에 이전에 저장된 상기 N 워드들의 적어도 일부를 처리하여, 자유 메모리 위치를 제공하고;
    상기 다음 데이터 블록의 다음 데이터 그룹의 적어도 일부를 구비하는 새로운 데이터를 수신하고;
    상기 자유 메모리 위치의 적어도 일부에 상기 새로운 데이터를 저장하고;
    상기 다음 데이터 블록이 수신되어 모두 저장될 때까지, 이전에 저장된 N 워드들을 계속 처리하고 새로운 데이터를 수신하여 제공된 상기 자유 메모리 위치에 저장하고; 및
    상기 다음 데이터 블록이 수신되어 모두 저장된 후 상기 N 워드들에 대한 메모리 위치를 재정의하여, 상기 다음 데이터 블록을 디인터리브하도록
    프로그램되어 있고,
    상기 복수의 데이터 블록들은 제1 및 제2 세트들로 구성되고, 상기 제1 및 제2 세트들중의 하나는 홀수 번호의 데이터 블록들로 구성되고, 상기 제1 및 제2 세트들중의 또 다른 하나는 짝수 번호의 데이터 블록들로 구성되며,
    상기 짝수 또는 홀수 번호의 데이터 블록들중의 하나의 데이터 블록의 인터리브된 데이터는 메모리 행방향으로 판독될 수 있고 디인터리브된 워드들은 열방향으로 판독될 수 있는 반면, 상기 짝수 또는 홀수 번호의 데이터 블록들중의 다른 데이터 블록의 인터리브된 데이터는 메모리 열방향으로 판독될 수 있고 디인터리브된 워드들은 행방향으로 판독될 수 있는 것을 특징으로 하는 장치.
  5. 제4항에 있어서,
    N=M이고,
    상기 처리기는 상기 메모리에 이전에 저장된 N 워드들중의 하나를 처리하고 상기 다음 데이터 블록의 다음 데이터 그룹을 수신하고, 상기 N 워드들중의 상기 하나를 저장하기 위해 이전에 이용된 상기 자유 메모리 위치에 상기 다음 데이터 그룹을 저장하도록 더 프로그램되어 있는 것을 특징으로 하는 장치.
  6. 제4항에 있어서, 상기 처리기는 상기 복수의 데이터 블록들중의 하나를 저장하고 상기 복수의 데이터 블록들중의 상기 하나의 N 워드들을 판독하는데 필요한 다수의 메모리 액세스를 최소화하는 방식으로 상기 새로운 데이터를 저장하도록 프로그램되어 있는 것을 특징으로 하는 장치.
  7. 하나의 데이터 블록이 M 비트 위치에 M 비트를 갖는 N 워드들을 표현하는 인터리브된 데이터를 포함하는 복수의 데이터 블록들 - 상기 데이터 블록은 하나의 데이터 그룹이 상기 모든 N 워드들의 단일 비트 위치로부터 데이터의 N 비트를 포함하는 데이터 그룹들의 시퀀스로서 전송됨- 로서 전송되는 인터리브된 데이터 스트림을 디인터리브(deinterleaving)하기 위한 통신 수신기에 있어서,
    상기 복수의 데이터 블록들을 운반하는 무선 신호를 인터셉트(intercepting)하기 위한 안테나;
    상기 안테나에 결합되어, 상기 인터리브된 데이터 스트림의 제1 데이터 블록을 수신하기 위한 수신기;
    상기 수신기에 결합되어, 상기 N 워드들의 각각에 대한 메모리 위치를 정의하는 방식으로 상기 제1 데이터 블록을 저장하여, 상기 제1 데이터 블록을 디인터리브하기 위한 메모리;
    상기 메모리에 결합되어, 상기 복수의 데이터 블록들로서 표현된 정보를 사용자에게 운반하기 위한 사용자 인터페이스; 및
    상기 수신기 및 상기 메모리에 결합되어, 다음 데이터 블록의 수신을 제어하기 위한 처리기
    를 포함하되,
    상기 처리기는,
    상기 N 워드들의 모두가 처리되지 않는 한, 상기 메모리에 이전에 저장된 상기 N 워드들의 적어도 일부를 처리하여, 자유 메모리 위치를 제공하고;
    상기 다음 데이터 블록의 다음 데이터 그룹의 적어도 일부를 구비하는 새로운 데이터를 수신하고;
    상기 자유 메모리 위치의 적어도 일부에 상기 새로운 데이터를 저장하고,;
    상기 다음 데이트 블록이 수신되어 모두 저장될 때까지, 이전에 저장된 N 워드들을 계속 처리하고, 새로운 데이터를 수신하여 제공된 상기 자유 메모리 위치에 저장하고; 및
    상기 다음 데이터 블록이 수신되어 모두 저장된 후, 상기 N 워드들에 대한 메모리 위치를 재정의하여, 상기 다음 데이터 블록을 디인터리브하도록
    프로그램되어 있고,
    상기 복수의 데이터 블록들은 제1 및 제2 세트들로 구성되고, 상기 제1 및 제2 세트들중의 하나는 홀수 번호의 데이터 블록들로 구성되고, 상기 제1 및 제2 세트들중의 또 다른 하나는 짝수 번호의 데이터 블록들로 구성되며,
    상기 짝수 또는 홀수 번호의 데이터 블록들중의 하나의 데이터 블록의 인터리브된 데이터는 메모리 행방향으로 판독될 수 있고 디인터리브된 워드들은 열방향으로 판독될 수 있는 반면, 상기 짝수 또는 홀수 번호의 데이터 블록들중의 다른 데이터 블록의 인터리브된 데이터는 메모리 열방향으로 판독될 수 있고 디인터리브된 워드들은 행방향으로 판독될 수 있는 것을 특징으로 하는 통신 수신기.
  8. 제7항에 있어서,
    상기 처리기는 상기 복수의 데이터 블록들중의 부수적인 데이터 블록들을 계속 수신하여 디인터리브하도록 프로그램되어 있는 것을 특징으로 하는 통신 수신기.
  9. 제7항에 있어서,
    N=M이고,
    상기 처리기는 상기 메모리에 이전에 저장된 상기 N 워드들중의 하나를 처리하고, 상기 다음 데이터 블록의 다음 데이터 그룹을 수신하고, 상기 N 워드들중의 상기 하나를 저장하기 위해 이전에 이용된 상기 자유 메모리 위치에 상기 다음 데이터 그룹을 저장하도록 더 프로그램되어 있는 것을 특징으로 하는 통신 수신기.
  10. 제7항에 있어서, 상기 처리기는 상기 복수의 데이터 블록들중의 하나를 저장하고 상기 복수의 데이터 블록들중의 상기 하나의 N 워드들을 판독하는데 필요한 다수의 메모리 액세스를 최소화하는 방식으로 상기 새로운 데이터를 저장하도록 프로그램되어 있는 것을 특징으로 하는 통신 수신기.
KR1019980708082A 1996-04-10 1997-03-27 인터리브된데이터스트림을디인터리브하기위한방법및장치 KR100331414B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/633,848 US5828671A (en) 1996-04-10 1996-04-10 Method and apparatus for deinterleaving an interleaved data stream
US08/633,848 1996-04-10
PCT/US1997/004912 WO1997038368A1 (en) 1996-04-10 1997-03-27 Method and apparatus for deinterleaving an interleaved data stream

Publications (2)

Publication Number Publication Date
KR20000005361A KR20000005361A (ko) 2000-01-25
KR100331414B1 true KR100331414B1 (ko) 2002-05-09

Family

ID=24541371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980708082A KR100331414B1 (ko) 1996-04-10 1997-03-27 인터리브된데이터스트림을디인터리브하기위한방법및장치

Country Status (7)

Country Link
US (1) US5828671A (ko)
EP (1) EP0892951A4 (ko)
JP (1) JP2000509569A (ko)
KR (1) KR100331414B1 (ko)
CN (1) CN1104682C (ko)
TW (1) TW355764B (ko)
WO (1) WO1997038368A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100193846B1 (ko) * 1996-10-02 1999-06-15 윤종용 인터리브 리드 어드레스 생성기
JPH11212864A (ja) * 1998-01-29 1999-08-06 Sanyo Electric Co Ltd メモリ装置
JP3973066B2 (ja) * 1999-09-10 2007-09-05 パイオニア株式会社 符号誤り訂正回路及び符号誤り訂正方法
KR100651500B1 (ko) * 2000-08-30 2006-11-28 삼성전자주식회사 디지털 오디오 방송용 타임 디인터리버 메모리의 제어 장치
GB2380598B (en) * 2000-10-04 2003-09-03 Global Silicon Ltd Deinterleaving data
KR100430567B1 (ko) 2000-10-11 2004-05-10 한국전자통신연구원 주소발생기를 포함한 인터리빙/디인터리빙 수행 장치 및그 방법과 그를 이용한 채널 부호화 시스템
US6964005B2 (en) * 2001-06-08 2005-11-08 Broadcom Corporation System and method for interleaving data in a communication device
DE10216999A1 (de) * 2002-04-16 2003-11-06 Thomson Brandt Gmbh ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf
FR2839222B1 (fr) * 2002-04-26 2004-09-10 St Microelectronics Sa Procede et circuit d'entrelacement de donnnees numeriques pour la reduction d'erreurs de transmission
US7433429B2 (en) 2002-07-19 2008-10-07 Intel Corporation De-interleaver method and system
US7073012B2 (en) * 2003-08-26 2006-07-04 Broadcom Corporation System and method for interleaving data in a communications device
US8085010B2 (en) 2007-08-24 2011-12-27 The Powerwise Group, Inc. TRIAC/SCR-based energy savings device for reducing a predetermined amount of voltage using pulse width modulation
US8810190B2 (en) 2007-09-14 2014-08-19 The Powerwise Group, Inc. Motor controller system and method for maximizing energy savings
US8698447B2 (en) 2007-09-14 2014-04-15 The Powerwise Group, Inc. Energy saving system and method for devices with rotating or reciprocating masses
US20090313399A1 (en) * 2008-06-13 2009-12-17 Texas Instruments Incorporated Direct memory access channel
CN102498294B (zh) 2009-09-08 2015-08-12 智能动力股份有限公司 用于带有旋转或往复运动块的装置的节能系统和方法
US8698446B2 (en) 2009-09-08 2014-04-15 The Powerwise Group, Inc. Method to save energy for devices with rotating or reciprocating masses
US10846175B2 (en) * 2018-04-10 2020-11-24 Micron Technology, Inc. High throughput bit correction of data inside a word buffer for a product code decoder

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4394642A (en) * 1981-09-21 1983-07-19 Sperry Corporation Apparatus for interleaving and de-interleaving data
US4559625A (en) * 1983-07-28 1985-12-17 Cyclotomics, Inc. Interleavers for digital communications
US4633486A (en) * 1983-07-28 1986-12-30 Cyclotomics, Inc. Method and apparatus for synchronization by coherent reinforcement
JPH0824386B2 (ja) * 1986-09-30 1996-03-06 日本電気株式会社 選択呼出信号受信機
US5237320A (en) * 1986-09-30 1993-08-17 Nec Corporation Radio paging system with different transmission speeds and receiver therefor
US5063533A (en) * 1989-04-10 1991-11-05 Motorola, Inc. Reconfigurable deinterleaver/interleaver for block oriented data
US5056112A (en) * 1989-07-28 1991-10-08 At&T Bell Laboratories Interleaving in coded modulation for mobile radio
ATE158461T1 (de) * 1990-01-02 1997-10-15 Motorola Inc Zeitmultiplex-signalisierungssystem für selektivruf
JPH06216882A (ja) * 1993-01-19 1994-08-05 Matsushita Electric Ind Co Ltd 誤り訂正送信装置及び受信装置
JP2576377B2 (ja) * 1993-09-09 1997-01-29 日本電気株式会社 Isdnデータ通信端末装置
FR2713845B1 (fr) * 1993-12-07 1996-01-19 Thomson Consumer Electronics Procédé d'entrelacement et de désentrelacement en bloc et dispositif de mise en Óoeuvre.
JP3415693B2 (ja) * 1993-12-23 2003-06-09 ノキア モービル フォーンズ リミテッド インターリーブプロセス
US5537420A (en) * 1994-05-04 1996-07-16 General Instrument Corporation Of Delaware Convolutional interleaver with reduced memory requirements and address generator therefor
US5548752A (en) * 1994-08-10 1996-08-20 Motorola, Inc. Method and system for storing data in a memory device
US5566183A (en) * 1994-12-02 1996-10-15 Lucent Technologies Inc. System and method for deinterleaving digital data
JP3610069B2 (ja) * 1994-12-23 2005-01-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 低速メモリによるインタリーブ

Also Published As

Publication number Publication date
KR20000005361A (ko) 2000-01-25
JP2000509569A (ja) 2000-07-25
CN1104682C (zh) 2003-04-02
TW355764B (en) 1999-04-11
EP0892951A1 (en) 1999-01-27
CN1218563A (zh) 1999-06-02
EP0892951A4 (en) 2002-05-29
WO1997038368A1 (en) 1997-10-16
US5828671A (en) 1998-10-27

Similar Documents

Publication Publication Date Title
KR100331414B1 (ko) 인터리브된데이터스트림을디인터리브하기위한방법및장치
US5063533A (en) Reconfigurable deinterleaver/interleaver for block oriented data
US4646081A (en) Radio paging receiver operable on a word scrolling basis
US4414676A (en) Signal synchronization system
JPS6314537B2 (ko)
CA1257910A (en) Radio paging device having circuitry for rewriting a stored message with error-free characters
KR900008596B1 (ko) 메시지 데이타를 수신할 수 있는 페이징 수신기
US6704848B2 (en) Apparatus for controlling time deinterleaver memory for digital audio broadcasting
US6101625A (en) Method and apparatus for performing error correcting process with small memory capacity
GB2253729A (en) Selective calling receiver
US6681314B1 (en) FIFO memory device suitable for data transfer apparatuses with different data bus widths and method for controlling the same
EP0498660A1 (en) Pager receiver with message display function
JPS6074736A (ja) 表示機能付無線選択呼出受信機
US6021321A (en) Selectively called wireless receiver with plural character set storage unit
JPH0683131B2 (ja) 表示付無線選択呼出受信機
GB2100486A (en) Radio receiver (pager) decoding system
JP2508585B2 (ja) 情報受信装置
JPH10336157A (ja) 受信データ処理回路
US6427199B1 (en) Method and apparatus for efficiently transferring data between peripherals in a selective call radio
JP2954089B2 (ja) 無線選択呼出受信機
JP2508586B2 (ja) 情報受信装置及び情報受信装置用記憶媒体
EP0724219B1 (en) Memory system for storing information data and state-of-radio-transmission data
JP3288262B2 (ja) データインタリーブ回路
JPH0365830A (ja) 呼出検出装置
JPS60140938A (ja) 個別選択呼出受信機

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

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150309

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160309

Year of fee payment: 15

EXPY Expiration of term