KR20100139114A - 멀티-뱅크 llr 버퍼를 수반하는 디-인터리빙 메커니즘 - Google Patents

멀티-뱅크 llr 버퍼를 수반하는 디-인터리빙 메커니즘 Download PDF

Info

Publication number
KR20100139114A
KR20100139114A KR1020107024319A KR20107024319A KR20100139114A KR 20100139114 A KR20100139114 A KR 20100139114A KR 1020107024319 A KR1020107024319 A KR 1020107024319A KR 20107024319 A KR20107024319 A KR 20107024319A KR 20100139114 A KR20100139114 A KR 20100139114A
Authority
KR
South Korea
Prior art keywords
llr
memory
bank
llr values
word
Prior art date
Application number
KR1020107024319A
Other languages
English (en)
Other versions
KR101185868B1 (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 KR20100139114A publication Critical patent/KR20100139114A/ko
Application granted granted Critical
Publication of KR101185868B1 publication Critical patent/KR101185868B1/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/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
    • 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/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • 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/2771Internal interleaver for turbo 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
    • H03M13/2771Internal interleaver for turbo codes
    • H03M13/2775Contention or collision free turbo code internal interleaver
    • 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/6566Implementations concerning memory access contentions

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

디-인터리버는 하나보다 많지 않은 LLR 값이 한 번에 멀티-뱅크(multi-banked) 메모리의 각각의 뱅크로 기록되도록 대응하는 다수의 LLR 값들을 멀티-뱅크 메모리로 동시에 기록하기 위해 다수의 디-인터리빙된 재정렬 물리(DRP) 어드레스들을 생성한다. 이러한 병렬 기록들의 시퀀스는 서브-패킷의 전송의 LLR 값들이 메모리에 저장되도록 한다. DRP 어드레스들의 생성 동안 수행되는 어드레스 번역은 LLR 값들이 뱅크들 내에 저장되도록 하며, 그 결과 디코더는 디-인터리빙된 시퀀스로 메모리로부터 LLR 값들을 판독할 수 있다. 뱅크의 각각의 메모리 위치는 다수의 관련된 LLR 값들을 저장하기 위한 워드-위치이며, 하나의 LLR 값은 자신의 패리티 값들과 함께 저장된다. 다수의 LLR 값들을 동시에 기록하기 위한 능력은 빠르고 효율적인 방식으로 위치들을 클리어(clear)시키기 위해 사용된다.

Description

멀티-뱅크 LLR 버퍼를 수반하는 디-인터리빙 메커니즘{DE-INTERLEAVING MECHANISM INVOLVING A MULTI-BANKED LLR BUFFER}
제시된 실시예들은 디-인터리빙에 관한 것이며, 더욱 상세하게는, 멀티-뱅크(multi-banked) 메모리를 사용하는 디-인터리빙에 관한 것이다.
본 출원은 35 U.S.C. 제119조에 따라 출원번호가 61/040,591이고 출원일이 2008년 3월 28일인 가출원과 출원번호가 61/040,577이고 출원일이 2008년 3월 28일인 가출원에 대한 우선권을 주장하며, 이들 2개의 가출원들 모두는 여기에 참조로서 통합된다.
도 1(종래 기술)은 셀룰러 전화와 같은 기존의 무선 통신 디바이스(1)의 하나의 타입에 대한 간략화된 블록 다이어그램이다. 무선 통신 디바이스(1)는 안테나(2), RF 트랜시버 집적 회로(3) 및 디지털 베이스밴드 집적 회로(4)를 포함한다. 디지털 베이스밴드 집적 회로(4)는 모듈러(modular) 전송 채널(TX)(5) 및 변조기 수신 회로(RX)(6)를 포함한다. 디바이스(1)가 전송하고 있는 경우에, 그 이후에 전송될 정보(7)는 모듈러 전송 채널(5)을 통과하며, 상기 전송 채널(5)은 인코더 회로(8), 매퍼(mapper) 회로(9), 변조기 회로(10), 역 고속 푸리에 변환(IFFT) 회로(11) 및 윈도윙(windowing) 회로(12)를 포함한다. 상기 정보는 디지털-대-아날로그 변환기(DAC)(13)에 의해 아날로그 형태로 변환되고, 안테나(2)로부터의 전송을 위해 RF 트랜시버 집적 회로(3)를 통과한다. 상기 정보는 열잡음, 간섭 및 스퓨리어스(spurious) 신호들과 같은 손상(impairment)들에 의해 전송 동안 디그레이드(degrade)될 수 있다. 인코딩 및 인터리빙 기법들은 수신 무선 통신 디바이스가 디그레이드되거나 또는 손상된 정보를 복원하기 위해 디-인터리빙 및 디코딩을 수행하도록 허용하기 위해 이용된다.
상기 전송을 수신하는 수신 무선 통신 디바이스의 구조는 도 1에 설명된 구조와 동일할 수 있다. 상기 전송은 안테나(2)를 통해 수신되고, RF 트랜시버 집적 회로(3)를 통과하고, 아날로그-대-디지털 변환기(ADC)(14)에 의해 디지털 형태로 변환되고, 모듈러 수신 채널(RX)(6)을 통과한다. 수신 채널(6)은 프론트 엔드(front end) 회로(15), 고속 푸리에 변환(FFT) 회로(16), 복조기 회로(17), DEMAP 회로(18), 로그-확률비(LLR: Log-Likelihood Ratio) 버퍼(19) 및 디코더 회로(20)를 포함한다. DEMAP 회로(18)는 언페인트(unpaint) 회로(21), LLR 생성 회로(22), 디스크램블러 회로(23) 및 디-인터리버 회로(24)를 포함한다. 디-인터리버 회로(24)는, 예를 들어, 인터리빙된 LLR 값들의 스트림을 수신하고, 상기 스트림을 디-인터리빙하고, 디-인터리빙된 방식으로 LLR 값들을 버퍼(19)로 기록한다. 디코더 회로(20)는 버퍼(19)로부터 LLR 값들을 판독하고, 상기 값들에 대한 디코딩을 수행하고, 그에 의해 화살표(25)에 의해 표시되는 원래의 전송된 정보를 복원한다. 이러한 무선 통신 디바이스들에 대한 데이터 스루풋 요구들이 증가함에 따라, 보다 빠르고 보다 효율적인 디-인터리빙 방법들 및 구조들이 요구되고 있다. 그리하여, 향상된 디-인터리빙 프로세스가 요청된다.
제 1 양상에서, (예를 들어, 셀룰러 전화기의 무선 수신기 내에 있는) 디-인터리버 메커니즘은 다수의 디-인터리빙된 재정렬 물리(DRP: De-interleaved Reorder Physical) 어드레스들을 생성한다. 하나보다 많지 않은 로그 확률비(LLR: Log-Likelihood Ratio) 값이 한 번에 멀티-뱅크(multi-banked) 메모리의 각각의 뱅크로 기록되도록 상기 DRP 어드레스들은 대응하는 다수의 LLR 값들을 멀티-뱅크 메모리로 동시에 기록하기 위해 사용된다. 이러한 병렬 기록들의 시퀀스는 서브-패킷의 전송의 LLR 값들이 멀티-뱅크 메모리에 저장되도록 한다. DRP 어드레스들의 생성 동안 수행되는 상기 디-인터리버 메커니즘에 의해 수행되는 어드레스 번역(address translation)은 LLR 값들이 뱅크들 내에 저장되도록 하며, 그 결과 디코더는 디-인터리빙된 결과들인 시퀀스로 메모리로부터 LLR 값들을 판독할 수 있다. 뱅크의 각각의 메모리 위치는 다수의 LLR 값들을 저장하기 위한 워드-위치이다. 다수의 LLR 값들은 자신의 연관된 패리티(parity) LLR 값들과 함께 LLR 값을 포함할 수 있다.
제 2 양상에서, 다수의 LLR 값들은 동시에 클리어(clear)된다. 다수의 상이한 뱅크들에 있는 LLR 값들이 병렬 기록 동작들에서 동시에 클리어될뿐만 아니라, 하나의 워드-위치에 저장된 다수의 LLR 값들이 또한 동시에 클리어된다. 단일(single) 클리어 명령은 다수의 서브-패킷들에 대한 서브-패킷 영역들의 클리어링을 야기할 수 있으며, 그에 의해 LLR 기록 및 LLR 클리어링 동작들을 제어하는 중앙 처리 회로 상의 프로세싱 부담을 감소시킬 수 있다.
이전에 설명된 내용은 요약이며, 필요에 따라 세부사항들에 대한 단순화, 일반화 및 생략을 포함한다; 결과적으로 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 이러한 요약이 단지 예시적이며 임의의 방식으로 한정하는 것을 의미하지 않음을 이해할 것이다. 청구항들에 의해 정의되는 바와 같은, 여기에서 설명되는 디바이스들 및/또는 프로세스들의 다른 양상들, 신규한 특징들 및 장점들은 여기에서 설명되는 제한적이지 않은 상세한 설명으로부터 명백할 것이다.
도 1(종래 기술)은 모바일 통신 디바이스의 간략화된 다이어그램이다.
도 2(종래 기술)은 도 1의 디지털 베이스밴드 집적 회로의 보다 상세한 다이어그램이다.
도 3(종래 기술)은 도 3의 DEMAP 서브-회로(34)의 일부인 새로운 디-인터리버 회로(41)를 도시하는 블록 다이어그램이다.
도 2는 모바일 통신 디바이스의 전송기에서 수행되는 인코딩 프로세스를 도시하는 간략화된 블록 다이어그램이다.
도 3은 모바일 통신 디바이스의 트랜시버에 있는 수신 및 전송 채널 프로세싱을 도시하는 간략화된 블록 다이어그램이다.
도 4는 도 2의 디지털 베이스밴드 집적 회로(103)의 보다 상세한 블록 다이어그램이다.
도 5는 도 4의 DDE WCSMSC(125)의 보다 상세한 블록 다이어그램이다.
도 6은 도 5의 디-인터리버 회로의 보다 상세한 블록 다이어그램이다.
도 7은 도 5의 LLR 버퍼의 블록 다이어그램이다.
도 8은 도 7의 LLR 버퍼의 멀티-뱅크 메모리 세그먼트 D11의 블록 다이어그램이다.
도 9는 도 5의 디-인터리버 회로(223)를 통과하는 인터리빙된 LLR 값들의 입력 스트림의 일례를 도시하는 다이어그램이다. 도 9는 또한 도 5의 디-인터리버 회로(223)로부터 나오는 디-인터리빙된 LLR 값들의 출력 스트림의 일례를 도시한다.
도 10 및 11은 도 9의 LLR 값들의 입력 시퀀스의 예에 대하여 PBRI 재정렬 인덱스들이 어떻게 결정되는지를 도시하는 다이어그램들이다.
도 12는 PBRI 어드레스들을 도시하는 다이어그램이다. 각각의 어드레스의 4개의 최상위 비트(MSB)들은 도 6의 디-인터리버 회로(223)에 의해 동시에 생성될 수 있는 모든 가능한 PBRI 어드레스들에 대하여 도시되어 있다.
도 13은 7 비트 길이의 PBRI 어드레스를 제공하기 위해 PBRI 어드레스들이 시프트된(어드레스 번역된) 이전 및 이후의 PBRI 어드레스들을 도시하는 다이어그램이다.
도 14는 11 비트 길이의 PBRI 어드레스를 제공하기 위해 PBRI 어드레스들이 시프트된(어드레스 번역된) 이전 및 이후의 PBRI 어드레스들을 도시하는 다이어그램이다.
도 15는 LLR 값들 및 패리티 LLR 값들이 LLR 버퍼의 뱅크의 워드-위치에 인접하게 위치될 수 있으며, LLR 값들이 어떻게 디-인터리빙된 순서로 LLR 버퍼로부터 판독될 수 있는지를 도시하는 다이어그램이다.
도 16은 다수의 LLR 값들을 멀티-뱅크 메모리로 동시에 기록하는 단계를 포함하는 방법의 플로우차트이다.
도 17(종래 기술)은 2개의 서브-패킷들의 LLR 값들의 LLR 버퍼로의 기록을 도시하는 타임라인이다.
도 18은 제 2 신규한 양상에 따른 다이어그램이다. 상기 다이어그램은 2개의 서브-패킷 영역들을 가지는 세그먼트(멀티-뱅크 메모리)를 도시한다.
도 19는 제 2 신규한 양상에 따라 2개의 서브-패킷들의 LLR 값들을 도 18의 세그먼트로 기록하는 방법을 도시하는 타임라인이다.
도 20은 도 19의 방법에서 사용되는 DDE 클리어 LLR 작업 명령의 다이어그램이다.
도 21은 제 2 신규한 양상에 따라 도 19에서 제시되는 방법(500)의 플로우차트이다.
도 2는 모바일 통신 디바이스의 하나의 특정한 타입에 대한 매우 간략화된 상위 레벨 블록 다이어그램이다. 이러한 특정한 예에서, 모바일 통신 디바이스(100)는 셀룰러 전화기이다. 모바일 통신 디바이스(100)는 (도시되지 않은 여러 개의 다른 부분들 중에서) 안테나(101) 및 2개의 집적 회로들(102 및 103)을 포함한다. 집적 회로(102)는 RF 트랜시버 집적 회로이다. RF 트랜시버 집적 회로(102)는 전송기 및 수신기를 포함한다. RF 트랜시버 집적 회로(102)는 주로 아날로그 회로를 포함하는 아날로그 집적 회로이다. 한편, 집적 회로(103)는 주로 디지털 회로를 포함하는 디지털 집적 회로이다. 집적 회로(103)는 "디지털 베이스밴드 집적 회로" 또는 "베이스밴드 프로세서 집적 회로"로 지칭된다.
도 3은 도 2의 안테나(101) 및 RF 트랜시버 집적 회로(102)의 보다 상세한 블록 다이어그램이다. RF 트랜시버 집적 회로(102)는 수신 체인(104) 및 전송 체인(105)을 포함한다. 입력되는 전송(106)은 안테나(101)를 통해 수신되고, 듀플렉서(107) 및 매칭 네트워크(108)를 통과하여 수신 체인(104)으로 들어간다. 수신 체인(104)에서 다운-컨버팅된 후에, 수신된 신호는 추가적인 프로세싱을 위해 디지털 베이스밴드 집적 회로(103)의 아날로그-대-디지털 변환기(ADC)(109)로 이동한다. 무선 통신 디바이스(100)는 전송을 생성하고, 그 다음에 디지털 정보는 디지털 베이스밴드 집적 회로(103)의 디지털-대-아날로그 변환기(DAC)(110)에 의해 디지털 형태로 변환된다. 그 다음에 결과적인 아날로그 신호는 RF 트랜시버 집적 회로(102)의 전송 체인(105)에 의해 업컨버팅되고, 결과적인 RF 신호는 전력 증폭기 PA(111)에 의해 증폭된다. 증폭된 신호는 출력 전송(112)으로서 전송하기 위해 듀플렉서(107) 및 안테나(101)를 통과한다.
도 4는 도 2의 디지털 베이스밴드 집적 회로(103)의 보다 상세한 블록 다이어그램이다. 디지털 베이스밴드 집적 회로(103)는, 도시되지 않은 다른 부분들 중에서, ADC(109), 수신 채널(113), 전송 채널(114), DAC(110), 프로세싱 회로(115), 상당량의(an amount of) 메모리(116), 상당량의 고속 메모리(117), 데이터 이동기(mover) 엔진(118), 제 1 버스(119), 제 2 버스(120) 및 월(wall) 클록 타이머(121)를 포함한다. 수신 채널(113)은 입력 데이터의 스트림을 처리하도록 체인 내에 구성되는 무선 통신 시스템 모뎀 서브-회로(WCSMSC)들로서 여기에서 지칭되는 프로세싱 블록들의 세트(122-125)를 포함한다. 이러한 WCSMSC들은 프론트 엔드 WCSMSC(122), 고속 푸리에 변환 WCSMSC(123), 복조(DEMOD) WCSMSC(124) 및 디매핑(demap)/디-인터리빙/디코딩(DDE) WCSMSC(125)를 포함한다. DDE WCSMSC(125)는 아래에서 보다 상세하게 설명될 디매퍼 부분, LLR 버퍼(129) 및 디코더 부분을 포함한다. 수신 채널(113)의 다양한 WCSMSC들을 통과하는 데이터 플로우(flow)는 버퍼들(126-130)에 의해 버퍼링된다. 수신 채널 데이터의 일반적인 경로는 도4의 좌측에서 우측으로 회로들(109, 122, 126, 123, 127, 124, 128, 125, 130)을 통해 제 2 버스(20)로 이어진다. 유사하게, 전송 채널(114)은 대응하는 WCSMSC들의 세트(131-134) 및 버퍼들(135-138)을 포함한다. 전송 채널 데이터의 일반적인 경로는 우측에서 좌측으로 제 2 버스(120)로부터 135, 131, 136, 132, 137, 133, 138, 134 및 110으로 이어진다.
프로세싱 회로(115)는 다수의 프로세서들을 포함할 수 있다. 프로세싱 회로(115)는 메모리(116)에 저장되는 프로세서-실행가능한 명령들의 프로그램(139)을 실행한다. 고속 메모리(117), 제 1 버스(119) 및 프로세싱 회로(115)는 함께 TCM(Tightly Coupled Memory) 시스템을 형성한다. 프로세싱 회로(115)는 제 1 버스(119)를 통해 고속 메모리(117)로부터 판독하고 고속 메모리(117)로 기록할 수 있다.
이러한 예에서, 프로세싱 회로(115)는 "작업 리스트들(task lists)"로 지칭되는 것을 이용하여 수신 및 전송 채널들의 다양한 서브-회로들(122-125 및 131-134)을 제어한다. 작업 리스트는 하나 이상의 작업 명령들을 포함한다. 도면에서, 4개의 작업 리스트들 TL1, TL2, TL3 및 TL4가 메모리(117)에 저장되어 있는 것으로 도시된다. 작업 리스트 TL1은 전송 채널(114)을 위한 작업 명령들을 포함한다. 작업 리스트 TL2는 FFT WCSMSC(123)를 위한 작업 명령들을 포함한다. 작업 리스트 TL3은 DEMOD WCSMSC(124)를 위한 작업 명령들을 포함한다. TL4는 DDE WCSMSC(125)를 위한 작업 명령들을 포함한다. 각각의 작업 리스트는 연관된 서브-회로에 의한 실행을 위해 작업 명령들의 시퀀스를 포함한다. 서브-회로는 제 2 버스(120)에 연결되는 작업 관리자 회로뿐만 아니라 회로의 데이터 프로세싱 동작을 수행하기 위한 상당량의 전용 기능 회로를 포함한다. 작업 관리자는 자신의 연관된 작업 리스트로부터 작업 명령을 판독하고, 작업 명령의 연산부호(opcode) 및 다양한 필드들을 해석하고, 그 다음에 작업 명령에 의해 표시되는 동작을 수행하기 위해 전용 기능 회로의 연관된 하드웨어를 제어한다. 도 4의 DDE WCSMSC(125)를 위한 작업 관리자는 참조번호 142에 의해 식별된다. 특정한 서브-회로를 위해 적절한 작업 명령들을 작업 리스트로 배치함으로써, 프로세싱 회로(115)는 특정한 서브-회로를 위한 전용 기능 회로가 프로세싱 회로에 의해 특정되는 특정한 동작을 수행하도록 할 수 있다. 프로세싱 회로(115)는 제 1 버스(119)를 통해 필요에 따라 작업 명령들을 이러한 작업 리스트들로 기록할 수 있고, 이러한 작업 리스트들을 수정할 수 있고, 이러한 작업 리스트들을 삭제할 수 있고, 이러한 작업 리스트들을 유지할 수 있다. 각각의 작업 리스트는 순환 버퍼의 메모리(117)에 유지된다.
도 5는 도 4의 DDE WCSMSC(125)의 보다 상세한 블록 다이어그램이다. DDE WCSMSC(125)의 디매퍼 부분은 실제적으로 2개의 DEMAP 회로들(200 및 201)을 포함한다. DDE WCSMSC(125)의 디코더 부분(202)은 2개의 비터비(Viterbi) 디코더들(203 및 204), 2개의 터보 디코더들(205 및 206), 플로우 제어 회로(207) 및 메모리 인터페이스 회로(208)를 포함한다. DEMAP 및 디코더 부분들 이외에도, DDE WCSMSC(125)는 푸시(push) 엔진(209), 제 2 버스(120)로의 인터페이싱을 위한 버스 인터페이스(210), 구성, 상태 및 포인터 레지스터들의 세트(211) 및 메모리 인터페이스(212)를 포함한다. 도 4의 작업 관리자(142)는 작업 관리자 블록들(213 및 214) 및 레지스터들(211)로 분산된다. 전체 작업 관리자 기능은 작업 명령들을 수신한다. 이러한 작업 명령들 중 몇몇은 DEMAP 회로(200)를 제어하기 위한 필드들을 포함하며 이러한 필드들은 작업 관리자 부분(213)에 의해 해석되고 사용되며, 다른 필드들은 DEMAP 회로(201)를 제어하기 위한 것이며 이러한 필드들은 작업 관리자 부분(214)에 의해 해석되고 사용된다. 도 4의 프로세싱 회로(115)는 일반적으로 DDE WCSMSC(125)를 위해 작업 명령을 작업 리스트 TL4로 기록하고, 그 다음에 레지스터 블록(211)의 WR_PTR을 업데이트하기 위해 제 2 버스(120) 및 AHB 버스 인터페이스(210)를 통해 단일 기록을 수행한다. 작업 관리자 부분들(213 및 214)은 마지막 작업 명령이 실행된 후에 블록(211)의 레지스터에 있는 WR_PTR 값이 이제 메모리(117)(도 4를 볼 것)의 순환 버퍼에 있는 위치를 가리키는지를 검출한다. 그러므로 작업 관리자 부분들은 제 2 버스(120)를 통해 TL4의 다음 작업 명령을 판독하고, 그 다음에 상기 작업 명령을 해석하고 실행한다. DDE WCSMSC(125)의 작업 관리자 부분들은 레지스터 블록(211)의 다른 레지스터에 EXEC_PTR을 유지한다. 이러한 EXEC_PTR의 값은 실행되었던 작업 리스트 TL4의 마지막 작업 명령을 표시한다.
도 5의 DEMAP1 부분(200)은 제어 패킷들을 위해 사용되는 상대적으로 낮은 스루풋 회로인 반면에, DEMAP2 부분(201)은 데이터 패킷들을 위해 사용되는 상대적으로 높은 스루풋 회로이다. DEMAP1 부분(200)은 다음의 기능 블록들: 언페인트 블록(215), 로그-확률비(LLR) 생성기 블록(216), 디스크램블러 블록(217), 디-인터리버 블록(218)을 포함한다. DEMAP1 부분(200)은 컨덕터들(219 및 227)을 통해 LLR 버퍼(129)와 인터페이싱한다. LLR 버퍼(129)는 아래에서 보다 상세하게 설명될 바와 같이 멀티-세그먼트, 멀티-뱅크 메모리이다. 데이터 컨덕터들(219)은 데이터를 위한 2개의 병렬 기록/판독 채널들을 제공한다. 어드레스 컨덕터들(227)은 디-인터리버 회로(218)로부터 LLR 버퍼(129)로 데이터를 기록하기 위한 그리고 LLR 버퍼(129)로부터 디-인터리버 회로(218)로 데이터를 판독하기 위한 어드레스 정보를 제공한다. 더 높은 스루풋 DEMAP2 부분(201)은 다음의 기능 블록들: 언페인트 블록(220), 로그-확률비(LLR) 생성기 블록(221), 디스크램블러 블록(222) 및 디-인터리버 블록(223)을 포함한다. DEMAP2 부분(201)은 LLR 버퍼로 6개의 병렬 판독/기록 데이터 채널들을 제공하는 컨덕터들(224)을 통해 LLR 버퍼(129)와 인터페이싱한다. 6개의 병렬 판독/기록 채널들에 대한 어드레스 정보는 어드레스 컨덕터들(228)을 통해 LLR 버퍼(129)로 제공된다.
DEMAP/디-인터리빙/디코딩 동작이 시작되면, 프로세싱은 항상 언페인트 단계로부터 LLR 생성, 디스크램블링, 디-인터리빙 및 디코딩 단계로 각각의 순차적인 단계를 통해 진행한다. 그러므로 프로세싱의 DEMAP, 디-인터리빙 및 디코딩 양상들을 제어하기 위한 개별적인 작업 명령들은 필요하지 않다. 오히려, 단일 작업 명령이 이러한 단계들에 걸쳐 프로세싱의 전체 시퀀스를 제어하기 위해 사용된다. DEMAP(200 또는 201)이 서브-패킷에 대한 프로세싱의 자신의 부분을 완료하면, 그 다음에 서브-패킷은 서브-패킷과 연관된 상태 정보에 따라 DEMAP 부분으로부터 디코더 블록으로 포워딩된다. 그 다음에 디코더 블록(202)은 가능한 빠르게 수신된 서브-패킷을 처리한다. DEMAP 부분들(200 및 201)은 먼저 서브-패킷을 LLR 버퍼(129)의 일 부분에 기록하고, 컨덕터들(225 및 226)을 통해 디코더 블록(202)에 LLR 버퍼(129)에 있는 서브-패킷의 위치, 디코더 블록(202)이 디코딩 결과를 디코드 출력 버퍼(130)의 어디에 기록하여야 하는지, 그리고 서브-패킷과 연관되는 상태 정보를 알려줌으로써 서브-패킷을 디코더 블록(202)으로 포워딩한다.
도 6은 디-인터리버 회로(223)의 보다 상세한 블록 다이어그램이다. 디-인터리버 회로(223)는 PBRI(Pruned Bit Reversal Interleaved) 재정렬 인덱스 생성기(231), 물리 어드레스 번역기(232), 제어기 회로(233), 프리-프로세서(pre-processor) 회로(236), LLR 버퍼 기록 엔진(237)을 포함한다. PBRI 재정렬 인덱스 생성기(231)는 상당량의 비-시퀀스(non-sequential) 로직을 포함하며 현재 시드(seed) 값으로부터 12개의 후보 PBRI 재정렬 인덱스들을 생성한다. 각각의 후보 PBRI 재정렬 인덱스와 함께, PBRI 재정렬 인덱스 생성기(231)는 또한 연관된 후보 PBRI 재정렬 인덱스가 범위를 벗어나 있는지 여부를 표시한다. 다음으로, CLOCK 신호에 응답하여, 물리 어드레스 번역기(232)는 6개의 PBRI 재정렬 인덱스들을 6개의 대응하는 디-인터리빙된 재정렬 물리 어드레스들 P0-P5로 변환한다. 물리 어드레스 번역기(232)로 입력되는 PBRI 재정렬 인덱스들은 번역기(232) 내에 등록된다. 그 다음에 제어기 회로(233)는 다음 PBRI 재정렬 인덱스 생성 사이클을 위해 "현재 시드"를 획득한다. 그 다음에 후보 생성기 및 선택 회로(234)는 6개의 PBRI 재정렬 인덱스들의 다른 세트를 생성한다. 물리 어드레스들 P0-P5는 컨덕터들(238)을 통해 LLR 버퍼(129)로 제공되는 6개의 대응하는 LLR 값들을 저장하기 위해 사용되는 6개의 디-인터리빙된 재정렬 물리 어드레스들(DRP 어드레스들)이다.
도 6에 도시된 바와 같이, PBRI 재정렬 인덱스 생성기(231)가 다음 세트의 6개의 PBRI 재정렬 인덱스들을 생성하는 시간 동안, 물리 어드레스 번역기(232)는 6개의 PBRI 재정렬 인덱스들의 이전에 생성된 세트에 대한 6개의 디-인터리빙된 재정렬 물리 어드레스들의 세트를 생성한다. PBRI 재정렬 인덱스 생성 및 물리 어드레스 생성 동작들은 파이프라이닝(pipeline)될뿐만 아니라, 도 5의 LLR 버퍼(129)로의 LLR 값들의 기록 또한 파이프라이닝된다. LLR 값들의 이전에 수신된 세트는 물리 어드레스 번역기(232)가 LLR 값들의 이후에-수신된 세트에 대한 물리 어드레스들의 세트를 생성하고 있는 것과 동시에, 그리고 PBRI 재정렬 인덱스 생성기(231)가 여전히 LLR 값들의 이후에-수신된 세트에 대한 PBRI 재정렬 인덱스들을 생성하고 있는 것과 동시에 LLR 버퍼(129)로 기록된다. LLR 버퍼 기록 엔진(237)은 CLOCK 에지(edge)가 수신될 때 LLR 값들을 수신하며, 어드레스들(디-인터리빙된 재정렬 물리 어드레스들)에서 LLR 버퍼(129)로 기록되도록 LLR 값들을 컨덕터들(238)을 통해 도 5의 멀티-뱅크 LLR 버퍼(129)로 전송한다.
도 7은 도 5의 LLR 버퍼(129)의 보다 상세한 다이어그램이다. LLR 버퍼(129)는 멀티-뱅크 메모리 세그먼트들 C11, C12, C21, C22, D11, D12, D21 및 D22를 포함하는 멀티-세그먼트된 조정된 메모리이다. 각각의 메모리 세그먼트는 다수의 메모리 뱅크들 및 조정기(arbiter)(140)를 포함한다. 조정기(140)는 도 7의 확대된 섹션에 도시되어 있다. 도 5의 디매핑 및 디코딩 회로들: DEMAP1(200) 및 DEMAP2(201), VITERBI1(203), VITERBI2(204), TURBO1(205) 및 TURBO2(206)는 도 7에 포함되어 있다. LLR 버퍼는 또한 AHB 인터페이스(210)로부터 액세스 가능하다. 메모리 세그먼트들 C11, C12, C21 및 C22는 제어 채널 패킷들을 저장할 수 있으며 DEMAP1 회로(200), VITERBI 디코더들(203 및 204) 모두 및 AHB 버스 인터페이스(210)에 의해 액세스된다. DEMAP1 회로(200) 및 AHB 버스 인터페이스(210)는 제어 채널 메모리 섹션들에 걸쳐서 기록 및 판독 제어를 가지며 디코더들은 제어 채널 메모리 섹션들로부터의 판독 액세스를 가진다. D11, D12, D21 및 D22 멀티-뱅크 메모리 섹션들은 데이터 채널 서브-패킷들을 저장하기 위해 사용되며 DEMAP2 회로(201), AHB 인터페이스, VITERBI 디코더들(203 및 204) 모두 및 TURBO 디코더들(205 및 206) 모두에 의해 액세스가 가능하다. 기록 및 판독 액세스는 DEMAP2(201) 및 AHB 인터페이스(210)에 의해 허용되며 디코더들은 LLR 버퍼(129)의 데이터 섹션에 대한 판독 액세스를 가진다. DEMAP2(201)은 도 7에 도시된 바와 같이 6개의 병렬 어드레스 세트들 및 데이터 컨덕터들(224 및 228)을 통해 메모리 세그먼트들 D11, D12, D21 및 D22와 인터페이싱한다.
각각의 멀티-뱅크 메모리 세그먼트로의 액세스는 세그먼트의 조정기에 의해 조정된다. 예를 들어, 조정기(140)는 세그먼트 C11에 대한 조정기이다. 일 실시예에서, 조정기는 2개의 프로그래밍 가능한 모드들을 가지며 각각의 세그먼트는 임의의 다른 세그먼트의 조정 모드와 독립적으로 어느 한 쪽의 모드에서 동작할 수 있다. 제 1 모드에서, 조정기는 제 1 승인(grant)이 디매핑 회로로 가도록 보장한다. 그 다음에 제 2 승인이 VITERBI 또는 TURBO 디코더 회로로 주어진다. 그 다음에 이러한 패턴이 반복되어 제 3 승인이 디매핑 회로로 가게 된다. 이것은 디매핑 회로들이 디코더에 대한 액세스 승인에 선행하여 멀티-뱅크 메모리 세그먼트로의 액세스를 가지도록 보장한다. 이러한 제 1 프로그래밍 가능한 모드에서, 세그먼트의 조정기가 DEMAP 회로에 대한 요청을 승인할 때 DEMAP2(201)는 DEMAP1(200)보다 높은 우선순위를 가진다. 조정기가 디코딩 회로에 대한 요청을 승인할 때, 내림차순으로 디코더들의 우선순위는 TURBO2(206), TURBO1(205), VITERBI2(204) 및 VITERBI1(203)이 된다. 제 2 모드에서, 조정기는 요청하는 회로의 우선순위에 기반하여 요청들에 대한 액세스를 승인한다. 우선순위의 내림차순으로 이러한 모드에서의 우선순위는 TURBO2(206), TURBO1(205), VITERBI2(204), VITERBI1(203), DEMAP2(201), 및 DEMAP1(200)이 된다. 조정기가 디매핑 또는 디코더 회로로의 액세스를 승인하면, 프로세싱이 완료되고 메모리 섹션이 조정기에 의해 해제(release)될 때까지 오직 그러한 회로가 상기 메모리 섹션에 대한 액세스를 가지게 된다. 예를 들어, 조정기(141)는 멀티-뱅크 메모리 세그먼트 D11로 기록하기 위해 DEMAP2(201)로부터 액세스 요청을 수신할 수 있다. 조정기(141)는 상기 요청을 승인하고 DEMAP2는 DEMAP2(201)로부터의 6개의 동시적인 LLR 값들이 멀티-뱅크 메모리 세그먼트 D11로 기록되도록 6개의 병렬 어드레스 채널들을 통해 6개의 디-인터리빙된 재정렬 물리(DRP) 어드레스들을 멀티-뱅크 메모리 세그먼트 D11로 동시에 전송함으로서 응답한다. 이러한 프로세스는 서브-패킷의 모든 LLR 값들이 메모리 세그먼트 D11로 기록될 때까지 반복될 수 있다. 그 다음에 터보-디코더들(205 및 206)은 메모리 세그먼트 D11에 대한 액세스를 요청할 수 있으며 조정기(141)에 의해 액세스가 승인된다. 다음 단계에서, TURBO 디코더는 디-인터리빙된 형태로 세그먼트 D11로부터 LLR 값들을 판독한다.
도 8은 LLR 버퍼(129)의 멀티-뱅크 메모리 세그먼트 D11에 대한 상세한 도면이다. 상기 세그먼트는 16개의 메모리 뱅크들, BANK0 내지 BANK16을 포함한다. 이러한 간략화된 도면에서, 각각의 뱅크는 256 깊이(depth)의 워드-위치들이다. 최하위(least significant) 워드-위치는 최좌측(left-most) 위치 0으로 도시되며, 최상위(most significant) 워드-위치는 최우측(right-most) 위치 255로 도시된다. 이러한 예가 256의 깊이를 포함하더라도, 실제적인 구현에서 깊이는 더 깊을 수 있다. 예를 들어, 상기 깊이는 지원되는 통신 표준에 있는 인터페이스(interlace)들의 개수에 따라 40 또는 80개의 서브-패킷들을 제공하기에 충분한 깊이일 수 있다.
도시된 예에서, 도 8의 워드-위치들 각각은 적어도 30비트이며, 각각 5개까지의 LLR 값들을 보유할 수 있으며, 각각의 LLR 값은 6 비트 길이이다. 이러한 구성에서, 서브-패킷의 "U" LLR 값들 모두는 서로에 대하여 인접하게 뱅크들에 저장되며, "U" LLR 값들은 각각의 워드-위치의 최하위 비트들을 점유한다. 이러한 예가 5개의 LLR 값들의 폭(width)을 수반하더라도, 실제 구현에서 상기 폭은 8개의 LLR 값들을 저장하기에 충분할 수 있다.
도 8은 또한 65개의 LLR 값들의 길이를 가지는 서브-패킷의 예에서 16개의 뱅크들의 어떤 워드-위치들이 LLR 값들을 포함하는지를 도시한다. 서브-패킷의 모든 LLR 값들이 상기 세그먼트에 저장되는 경우에, 각각의 뱅크의 쉐이딩된(shaded) 영역은 LLR 값들을 포함하는 워드-위치들을 표시한다. 뱅크0에서, 첫번째 5개의 메모리 어드레스 위치들은 데이터를 포함한다. 나머지 모든 뱅크들, 뱅크1 내지 뱅크15에서, 첫번째 4개의 어드레스 위치들은 LLR 값들을 포함한다. 넌-쉐이딩된 영역들은 제로(0) 값들을 저장한다. 4096개의 LLR 값들의 서브-패킷 길이에 대하여, 모든 16개의 뱅크들의 모든 워드-위치들은 LLR 값들을 포함할 것이다.
도 9-11은 충돌(collision)들 없이 연속적인 LLR 값들이 어떻게 세그먼트로 기록될 수 있는지를 설명하는 다이어그램들이다. 도 9는 디-인터리빙 이후에 서브-패킷(46)의 LLR 값들의 출력 스트림(44)의 일례를 도시한다. 괄호들 안에 있는 인덱스들에 의해 표시되는 바와 같이, LLR 값들의 위치들 B0-B11은 디-인터리빙(디셔플링(deshuffled))된다. 재정렬되고 디-인터리빙된 LLR 값 위치들을 정의하는 상기 인덱스들은 여기에서 "PBRI 재정렬 인덱스들"로 지칭된다. LLR 값들의 서브-패킷을 디-인터리빙하기 위해, 디-인터리빙된 패킷의 다양한 LLR 값들에 대한 인덱스들이 결정된다. PBRI 재정렬 인덱스들의 시퀀스에 있는 각각의 순차적인 PBRI 재정렬 인덱스에 대하여, 연관된 LLR 값이 디-인터리빙된 스트림(44)을 형성하기 출력된다.
도 10 및 11은 PBRI 재정렬 인덱스들이 도 9의 예에 대하여 결정될 수 있는 하나의 방식을 도시하는 다이어그램들이다. 도 9의 단순화된 예에서, 서브-패킷은 11의 크기를 가진다. 11 값들을 표현할 수 있는 최소 개수의 이진 비트들은 4이다. 그러므로 16개의 가능한 4-비트 이진 값들이 도 10의 최좌측 열(47)에 도시된다. 각각의 4-비트 값에 대하여, 이것의 대응하는 10진수 표현은 다음 최좌측 열(48)의 괄호들 내에 도시된다. 예를 들어, 4-비트 이진수 값 "0000"은 10진수 값 (0)으로 표현된다. PBRI 방법은 "비트 반전(bit reversal)" 동작을 수반한다. 그러므로 열(47)에 있는 각각의 4-비트 값의 비트 반전된 버전은 열(49)에 기록된다. 예를 들어, 열(47)에 있는 4-비트 이진수 값 "0111"은 비트 반전되어 열(49)에 있는 4-비트 이진수 값 "1110"이 된다. 최우측 열(50)은 열(49)에 있는 값들과 동등한 10진수 값을 도시한다. 열들(48 및 49) 간의 관계는 재정렬을 정의하지만, 패킷(46)의 LLR 값들이 존재하는 것보다 이러한 열들에 더 많은 인덱스들이 존재한다. 서브-패킷(46)의 크기는 11이고, 열들(48 및 50)에는 16개의 값들이 존재한다. 그러므로 재정렬 인덱스들의 개수는 11로 "축소(pruned)"된다. 도 11에 도시된 바와 같이, 10보다 큰 최우측 열에 있는 값들은 "범위 초과(out of range)"로 간주되며 어두운 배경으로 도 11에 표시된다. 그 다음에 디-인터리빙 회로(223)는 이러한 어드레스들에서 연관된 LLR 값들을 멀티-뱅크 LLR 버퍼(129)로 기록할 것이다.
열(49)에 있는 4-비트 이진수 값은 도 7의 LLR 버퍼(129)의 각각의 멀티-뱅크 LLR 버퍼의 16개의 사용가능한 뱅크들 중 하나를 선택한다. 그 다음에 디매핑 회로는 연관된 6개의 LLR 값들을 세그먼트로 동시에 기록하기 위해 이러한 PBRI 재정렬 물리 어드레스들 중 6개의 연속적인 어드레스들을 선택할 것이다. 상기 어드레스들은 도 5의 병렬 어드레스 컨덕터들의 6개의 세트들(228)을 사용하여 LLR 버퍼(129)로 전송된다. 6개의 PBRI 재정렬 물리 어드레스들의 각각의 세트에 대응하는 6개의 LLR 값들은 도 5의 병렬 데이터 컨덕터들의 6개의 세트들을 통해 LLR 버퍼(129)로 기록하기 위해 사용가능하게 된다. 이러한 물리 재정렬 어드레스들 각각은 LLR 버퍼(129) 내에 있는 멀티-뱅크 메모리 세그먼트 내의 상이한 뱅크에 대응한다. 그에 따라, 하나보다 많지 않은 LLR 값이 한 번에 멀티-뱅크 메모리의 각각의 뱅크로 기록된다.
도 12는 12-비트 PBRI 어드레스들을 도시하는 보다 상세한 예이며, 여기서 각각의 어드레스는 6-비트 LLR 값에 대응한다. 각각의 어드레스의 4개의 최상위 비트(MSB)들은 좌측에 위치되며 도 9-11에 도시된 프로세스에 의해 선택되었다. 상기 어드레스의 나머지는 상기 MSB들의 우측에 위치된다. 4개의 MSB들은 대응하는 LLR 값이 저장될 세그먼트의 뱅크를 선택한다. 예를 들어, 1번째 PBRI 어드레스의 4개의 MSB들 "0000"은 멀티-뱅크 LLR 버퍼 세그먼트 D11의 "BANK0"을 선택할 수 있다. 4개의 MSB들의 각각의 나머지 세트는 동일한 세그먼트 내에 있는 메모리의 상이한 뱅크에 대응할 것이며, 이는 하나보다 많지 않은 LLR 값이 한 번에 멀티-뱅크 메모리의 각각의 뱅크에 기록되도록 보장한다.
도 13은 길이가 7 비트이고 12-비트 어드레스 필드 내에 있는 PBRI 물리 어드레스의 비트 시프팅을 도시하는 다이어그램이다. 번역 이전에, 도 13의 어드레스의 모든 비트들은 12-비트 어드레스 필드의 최좌측 위치들에 있다. 4개의 MSB들은 뱅크 위치를 결정하며 3개의 최하위(LSB) 비트들 "101"은 MSB들에 의해 선택된 뱅크 내의 워드-위치를 결정한다. 도 6의 물리 어드레스 번역기(232)는 동시적인 시프팅을 수행하고 어드레스 필드의 최우측 위치들로 어드레스의 3개의 LSB들을 위치시킨다. MSB들 "1010"은 최좌측 위치들에 남아 있으며, 일 실시예에서 모든 나머지 비트들은 이진 값 "0"으로 설정된다. 이러한 비트 시프팅 동작은 12-비트 어드레스 위치가 완전하게 점유되지 않을 때 비트들이 의도된 어드레스 위치들로 기록되도록 보장한다.
도 14는 길이가 12-비트보다 짧은 PBRI 물리 어드레스의 시프팅을 도시하는 다른 다이어그램이다. 도 14에서, PBRI 물리 어드레스는 길이가 11-비트이다. 번역 이전에, 도 14의 어드레스의 모든 비트들은 12-비트 어드레스 필드의 최좌측 위치들에 있다. 4개의 MSB들은 뱅크 위치를 결정한다. 8개의 LSB들 "10101010"은 MSB들에 의해 선택된 뱅크 내에서의 어드레스 위치를 결정한다. 이러한 예에서, 도 6의 물리 어드레스 번역기(232)는 동시적인 시프팅을 수행하고 어드레스 필드의 최우측 위치들로 어드레스의 8개의 LSB들을 위치시킨다. MSB들 "1010"은 최좌측 위치들에 남아 있으며, 일 실시예에서 모든 나머지 비트는 이진 값 "0"으로 설정된다.
도 15는 LLR 값들이 LLR 버퍼(129)의 세그먼트로부터 디-인터리빙된 순서로 한 번에 하나의 워드-위치로부터 판독되는 것을 도시하는 개별적인 다이어그램이다. LLR 버퍼 세그먼트는 16개의 메모리 뱅크들, BANK0-BANK15를 포함하며, 각각의 뱅크는 256개의 어드레싱 가능한 워드-위치들을 가진다. 도시된 예에서, 256개의 어드레싱 가능한 워드-위치들 각각은 5개의 LLR 값들: 하나의 "U" 6-비트 LLR 값 및 각각 길이가 6-비트인 4개의 추가적인 패리티 LLR 값들을 저장할 수 있는 충분한 비트들을 포함한다. 4개의 추가적인 LLR 값들은 첫번째 "U" 6-비트 LLR 값에 있는 에러들을 검출하고 복구하기 위한 패리티 정보를 포함한다. LLR 값 "U"는 대응하는 패리티 LLR 값들: V0, V0', V1 및 V1'과 함께 도 15에 도시되어 있다.
도 15는 또한 워드-위치의 컨텐트들 모두가 어떻게 동시에 판독되는지를 보여준다. 패리티를 가지는 LLR 값들 및 패리티가 없는 LLR 값들은 서로에 대하여 인접하게 하나의 워드 위치 내에 저장될 수 있기 때문에, 디코더는 패리티 LLR 값들과 함께 넌-패리티 LLR 값들을 순차적이고 동시적으로 판독할 수 있다. 디코더는 화살표(51)에 의해 표시되는 바와 같이 디-인터리빙된 순서로 LLR 값들을 판독한다. 도 15의 예에서, BANK0에 있는 모든 쉐이딩된 워드-위치들이 판독될 때까지 디코더는 BANK0의 상위-최좌측 워드-위치를 판독하고, 그 다음에 BANK0의 우측에 대하여 다음 워드-위치를 판독하고 우측에 대하여 그 다음 워드-위치를 판독하는 방식으로 워드-위치를 판독한다. 그 다음에 BANK1에 있는 모든 쉐이딩된 워드-위치들이 판독될 때까지 디코더는 BANK1의 최좌측 워드-위치를 판독하고, 그 다음에 BANK1의 우측에 대하여 다음 워드-위치를 판독하고 우측에 대하여 그 다음 워드-위치를 판독하는 방식으로 워드-위치를 판독한다. 이러한 판독은 디코더가 모든 쉐이딩된 워드-위치들을 판독할 때까지 뱅크에서 뱅크로 수직적으로 내려가며 진행된다. 판독된 LLR 값들의 디-인터리빙을 출력하는, 이러한 판독은 도 13 및 도 14와 관련하여 위에서 설명된 신규한 어드레스 번역에 기인하여 가능해진다. LLR 값들을 포함하지 않는 저장 위치들은 제로 값들을 포함한다. 제 1 전송에서, 서브-패킷의 LLR 값들 중 단지 일부가 LLR 버퍼로 수신되어 기록될 수 있다. 예를 들어, 서브-패킷 크기에 대하여 도 15에 쉐이딩되어 도시된 몇몇 워드-위치들은 제 1 전송 이후에 모두 제로들을 포함할 수 있다. 유사하게, 주어진 워드-위치 내에 있는 LLR 위치들 중 일부는 제로들을 포함할 수 있는 반면에, 상기 워드-위치의 다른 LLR 위치들은 LLR 값들로 채워진다. 얼마나 많은 LLR 값들이 제 1 전송에서 수신되는지에 관계없이, 디코더는 화살표(51)에 의해 표시되는 디-인터리빙된 순서로 모든 쉐이딩된 워드-위치들을 판독하고, 상기 서브-패킷을 디코딩하도록 시도할 수 있다. 디코딩이 실패하면, 그 다음에 서브-패킷의 더 많은 LLR 값들이 제 2 전송으로 수신될 수 있다. 제 2 전송의 종료시에, 디코더는 다시 디-인터리빙된 순서로 모든 쉐이딩된 워드-위치들을 판독하고 상기 서브-패킷을 디코딩하도록 시도할 수 있다. 이러한 프로세스는 임의의 횟수 동안 또는 서브-패킷의 성공적인 디코딩이 이루어질 때까지 계속된다.
도 16은 신규한 방법(300)의 플로우차트이다. 제 1 단계(301)에서, 비-시퀀스 로직은 동시적으로 다수의 디-인터리빙된 재정렬 물리(DRP) 어드레스들을 생성한다. DRP 어드레스들 각각은 멀티-뱅크 메모리의 상이한 뱅크를 식별한다. DRP 어드레스들 각각은 또한 LLR 값들의 입력되는 인터리빙된 스트림의 LLR 값에 대응한다.
제 2 단계(302)에서, 하나보다 많지 않은 LLR 값이 한 번에 멀티-뱅크 메모리의 각각의 뱅크로 기록되도록 다수의 LLR 값들이 충돌들 없이 동시적으로 멀티-뱅크 메모리에 기록된다. LLR 값들 각각은 자신의 대응하는 DRP 어드레스에 의해 표시되는 위치에서 멀티-뱅크 메모리로 기록된다.
제 3 단계(303)에서, LLR 값들이 디-인터리빙된 순서로 판독되는 방식으로 디코더는 멀티-뱅크 메모리의 컨텐츠를 판독한다.
도 17(종래 기술)은 2개의 서브-패킷들의 LLR 값들을 LLR 버퍼로 기록하는 것을 나타내는 타임라인이다. 각각의 서브-패킷은 65개의 LLR 값들의 크기를 가진다. 이러한 단순화된 예에서, LLR 패리티 값들은 존재하지 않는다. 서브-패킷의 LLR 값들은 65개의 위치들로 기록되어야 한다. 도 17의 예에서, 서브-패킷 크기가 65라도, 제 1 전송은 단지 54개의 LLR 값들을 포함하며 오직 54개의 LLR 값들이 제 1 서브-패킷으로 할당되는 54개의 위치들로 기록된다. 이러한 기록들 각각은 하나의 시간 유닛(time unit)을 점유한다. 상기 다이어그램에서, "54"는 54개의 LLR 값들을 65개의 위치들 중에서 54개의 위치들로 기록하는데 54개의 시간 유닛들을 점유함을 나타낸다. 이러한 기록들 이후에, 제로 값들이 65개의 위치들 중 나머지 11개 위치들로 기록된다. 이러한 예에서 이러한 제로 값들의 기록들은 하나씩(one by one) 발생하며, "11"은 이러한 프로세스가 11개의 시간 유닛들을 점유함을 나타낸다. 이러한 제로 기록들 각각은 클리어(clear) 명령에 의해 개시된다. 아래쪽을 향하는 화살표들은 이러한 클리어 명령들을 나타낸다. 그 다음에 디코더는 65개의 위치들을 판독하고 서브-패킷을 디코딩하도록 시도한다. 도시된 예에서, 제 2 서브-패킷의 LLR 값들을 포함하는 제 2 전송이 존재한다. 이러한 LLR 값들은 제 2 서브-패킷으로 할당되는 LLR 버퍼의 다른 65개의 위치들로 기록된다. 제 1 전송의 경우에서와 같이, 제 2 전송은 단지 54개의 LLR 값들을 포함하며, 제 2 서브-패킷으로 할당되는 LLR 버퍼의 부분 중 나머지 11개의 위치들은 제로 값들로 기록된다. 요구되는 전체 시간 유닛들의 개수는 130 시간 유닛들이다.
도 18은 LLR 버퍼(129)의 세그먼트의 개별적인 다이어그램이다. 상기 세그먼트는 16개의 뱅크들을 포함하는 멀티-뱅크 메모리이다. 각각의 뱅크는 워드-위치들의 하나의 행이다. 여기에서 설명되는 예에서, 2개의 서브-패킷들을 위한 LLR 값들은 상기 세그먼트로 기록되어야 한다. 이러한 2개의 서브-패킷들 각각의 서브-패킷 크기는 65이다. 제 1 서브-패킷에 대한 LLR 값들은 옅은 쉐이딩으로 마킹된 워드-위치들로 기록되어야 하며, 제 2 서브-패킷에 대한 LLR 값들은 보다 어두운 쉐이딩으로 마킹된 워드-위치들로 기록되어야 한다. 주어진 전송에서, 서브-패킷에 대한 LLR 값들 전부는 아닌 일부 LLR 값들이 수신될 수 있으며, 수신되는 LLR 값들은 적절한 워드-위치들로 기록된다. 전송이 수신된 후에, 디코더는 서브-패킷에 대한 워드-위치들 모두를 판독하고 상기 서브-패킷을 디코딩하도록 시도한다.
도 19는 제 2 신규한 양상에 따른 2개의 서브-패킷들의 LLR 값들을 도 18의 세그먼트로 기록하는 것을 나타내는 타임라인이다. 이러한 단순화된 예에서, LLR 패리티 값들을 존재하지 않는다. 처음에, 프로세싱 회로(115)는 DDE WCSMSC(125)로 DDE 클리어 LLR 작업 명령을 생성한다. 이것은 도 19의 화살표(400)에 의해 표시된다. DDE WCSMSC(125) 내의 디매핑 회로의 작업 관리자는 TCM(Tightly Coupled Memory)으로부터 작업 명령을 판독하고 상기 작업 명령을 해석한다.
도 20은 DDE 클리어 LLR 작업 명령의 다이어그램이다. 상기 작업 명령에 있는 필드들은 세그먼트에 있는 워드-위치들의 직사각형 블록을 식별한다. 이러한 블록은 제 1 서브-패킷에 대한 LLR 값들을 저장하는데 사용될 모든 워드-위치들 및 제 2 서브-패킷에 대한 LLR 값들을 저장하는데 사용될 모든 워드-위치들을 포함한다. 여기에서 설명되는 예에서, 상기 세그먼트는 도 18에 도시된 바와 같이 서브-패킷 영역들로 분할된다. 도시된 바와 같이, 서브-패킷 영역은 대응하는 서브-패킷의 LLR 값들을 저장하는데 사용될 모든 워드-위치들을 포함하는 워드-위치들의 직사각형 블록이다. 서브-패킷 영역은 세그먼트의 뱅크들 모두에 걸쳐 있으며, 각각의 뱅크에 있는 동일한 개수의 워드-위치들을 포함한다.
그 다음에 작업 관리자는 디매퍼가 6개의 동시적인 LLR 기록들의 시퀀스에서 제로 값들을 DDE 클리어 LLR 작업 명령에 의해 표시되는 모든 워드-위치들로 기록하도록 한다. 도 19의 예에서, 2개의 서브-패킷 영역들은 전체 192개의 워드-위치들을 포함한다. 그러므로 32개의 병렬 기록들이 이러한 192개의 워드-위치들을 클리어시키기 위해 수행된다. 타임라인에 있는 "32"는 이러한 기록들을 수행하기 위해 32개의 시간 유닛들이 요구됨을 나타낸다. 블록 클리어 동작이 완료된 후에, 제1 서브 패킷에 대한 LLR 값들이 도 8과 관련하여 위에서 설명된 바와 같이 제 1 서브-패킷을 위한 서브-패킷 영역으로 기록된다. 이러한 예에서, 제 1 전송은 제 1 서브-패킷의 단지 65개의 LLR 값들을 포함한다. 이러한 LLR 값들이 한 번에 6개씩 기록되기 때문에, 9개의 시간 유닛들이 요구된다. 제 1 서브-패킷으로 할당되는 워드-위치들 중 11개는 LLR 값들로 기록되지 않으나, 이러한 워드-위치들은 DDE 클리어 LLR 작업 명령의 실행으로 인하여 이미 제로 값들을 저장하고 있다. 다음으로, 제 2 전송이 발생하고 제 2 서브-패킷에 대한 54개의 LLR 값들이 수신되어 제 2 서브-패킷을 위한 서브-패킷 영역으로 기록된다. 이러한 LLR 값들은 한 번에 6개의 LLR 값들이 기록되며, 그리하여 이러한 기록들을 수행하기 위해 또다른 9개의 시간 유닛들이 요구된다. 제 1 및 제 2 서브-패킷들의 LLR 값들을 저장하고 디코더에 의해 판독될 다른 워드-위치들이 제로 값들을 포함하도록 보장하기 위해 요구되는 시간 유닛들의 총 개수는 50개의 시간 유닛들이다. 반면에, 도 17의 종래 기술의 예는 동일한 개수의 LLR 기록 및 제로잉(zeroing) 동작들을 달성하기 위해 130개의 시간 유닛들을 요구한다.
하나의 신규한 양상에서, LLR 기록 동작들을 제어하는 프로세싱 회로(115)는 다수의 서브-패킷들에 대한 LLR 제로잉을 수행하기 위해 단지 하나의 클리어 명령(DDE 클리어 LLR 작업 명령)을 생성해야 하는 반면에, 상기 종래 기술의 예에서는 많은 클리어 명령들이 수반된다. 이러한 많은 개수의 클리어 명령들을 생성해야 하는 것은 중앙 프로세서 및 LLR 기록 및 제로잉 동작들을 제어하기 위해 작업하는 다른 메커니즘에 부담을 줄 수 있다. 다른 신규한 양상에서, 다수의 LLR 값들은 동시에 클리어된다. 예를 들어, 6개의 상이한 뱅크들에 저장된 LLR 값들은 도 8과 관련하여 위에서 설명된 병렬 기록 기능을 이용하여 동시에 클리어된다. 또다른 신규한 양상에서, 워드-위치에 저장되는 모든 LLR 값들은 동시에 클리어된다. 도 18 및 도 8의 예에서, 각각의 워드-위치는 5개의 LLR 값들을 저장하기 위한 비트들을 포함하며, 모든 이러한 비트들은 동시에 클리어된다.
도 21은 도 19에서 설명된 방법(500)에 대한 플로우차트이다. 다수의 서브-패킷들에 대한 LLR 값들이 저장되어야 하는, (LLR 버퍼의 멀티-뱅크 세그먼트의) 메모리 위치들의 블록을 식별하는 작업 명령이 수신된다(단계 501). 일례에서, 제 1 서브-패킷 LLR 값들은 LLR 버퍼의 멀티-뱅크 메모리의 제 1 서브-패킷 영역으로 저장되어야 하며, 제 2 서브-패킷 LLR 값들은 LLR 버퍼의 멀티-뱅크 메모리의 제 2 서브-패킷 영역으로 저장되어야 한다. 작업 명령에 의해 식별되는 메모리 위치들의 블록은 제 1 및 제 2 서브-패킷 영역들 모두를 포함한다. 그 다음에 병렬로 제로 값들을 다수의 위치들에 기록함으로써 작업 명령이 실행되며(단계 502), 이러한 병렬 기록은 상기 블록의 모든 위치들이 제로 값들로 기록될 때까지 반복된다. 일례에서, 각각의 위치는 다수의 LLR 값들을 유지할 수 있는 멀티-비트 워드-위치이며, 상기 워드-위치의 모든 비트들은 제로들로 동시에 기록된다. 그 다음에 제 1 서브-패킷의 LLR 값들은 디-인터리빙 방식에 따라 병렬로 한 번에 다수의 LLR 값들이 제 1 서브-패킷 영역의 적절한 위치들로 기록된다(단계 503). 제 2 서브-패킷의 LLR 값들은 디-인터리빙 방식에 따라 병렬로 한 번에 다수의 LLR 값들이 제 2 서브-패킷 영역의 적절한 위치들로 기록된다(단계 504).
여기에서 설명되는 기법들은 다양한 수단들에 의해 구현될 수 있다. 하나 이상의 예시적인 실시예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 결합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기능들은 컴퓨터-판독가능 매체 상의 하나 이상의 명령들 또는 코드로서 저장되거나 또는 전송될 수 있다. 컴퓨터-판독가능 매체는 컴퓨터 저장 매체 및 한 장소에서 다른 장소로 컴퓨터 프로그램의 이동을 용이하게 하는 임의의 매체를 포함하는 통신 매체 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. 예시적으로, 이러한 컴퓨터-판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 요구되는 프로그램 코드를 전달하거나 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있으며, 이에 한정되는 것은 아니다. 또한, 임의의 접속이 적절하게 컴퓨터-판독가능 매체로 명명된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 트위스트 페어, 디지털 가입자 라인(DSL), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들은 매체의 범위 내에 포함된다. 여기에서 사용되는 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(CD: compact disc), 레이저 디스크(laser disc), 광학 디스크(optical disc), 디지털 다기능 디스크(DVD: digital versatile disc), 플로피 디스크(floppy disk) 및 블루-레이 디스크(blu-ray disc)를 포함하며, 여기서 디스크(disk)들은 통상적으로 자기적으로 데이터를 재생성하는 반면에 디스크(disc)들은 레이저들을 통해 데이터를 광학적으로 재생성한다. 위의 것들의 결합은 또한 컴퓨터-판독가능 매체의 범위 내에 포함되어야 할 것이다.
설명하기 위한 목적들로 위에서 임의의 특정한 실시예들이 설명되더라도, 본 특허 문서의 내용들은 일반적인 적용가능성을 가지며 위에서 설명된 특정한 실시예들로 한정되지 않는다. 그에 따라, 설명된 특정한 실시예들의 다양한 특징들에 대한 다양한 수정들, 변형들 및 조합들은 아래에서 설명되는 청구항들의 범위를 벗어남이 없이 실시될 수 있다.

Claims (42)

  1. 방법으로서,
    (a) 다수의 디-인터리빙된 재정렬 물리(DRP: De-interleaved Reorder Physical) 어드레스들을 생성하는 단계; 및
    (b) 대응하는 다수의 로그 확률비(LLR: Log-Likelihood Ratio) 값들을 멀티-뱅크(multi-banked) 메모리로 동시에 기록하기 위해 상기 DRP 어드레스들을 사용하는 단계를 포함하며, 상기 멀티-뱅크 메모리는 다수의 뱅크들을 포함하고, 하나보다 많지 않은 LLR 값이 한 번에 상기 멀티-뱅크 메모리의 각각의 뱅크로 기록되는, 방법.
  2. 제 1 항에 있어서,
    상기 DRP 어드레스들은 PBRI(Pruned Bit Reversal Interleaved) 어드레스들인, 방법.
  3. 제 1 항에 있어서,
    상기 (a) 단계는,
    재정렬 인덱스들의 스트림을 생성하는 단계 - 각각의 재정렬 인덱스는 다수의 어드레스 비트들을 포함함 -; 및
    각각의 재정렬 인덱스의 제 2 어드레스 비트들을 시프팅하고 시프팅되지 않은 각각의 재정렬 인덱스의 제 1 어드레스 비트들을 남겨둠(leave)으로써 각각의 재정렬 인덱스를 대응하는 DRP 어드레스로 번역(translate)하는 단계를 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 재정렬 인덱스의 제 1 어드레스 비트들은 상기 DRP 어드레스의 제 1 부분을 형성하며, 상기 DRP 어드레스의 상기 제 1 부분은 1(one) 및 LLR 값이 기록되는 상기 멀티-뱅크 메모리의 오직 하나의 뱅크를 식별하는, 방법.
  5. 제 4 항에 있어서,
    시프팅 이후에 상기 재정렬 인덱스의 제 2 어드레스 비트들은 상기 DRP 어드레스의 제 2 부분을 형성하며, 상기 DRP 어드레스의 상기 제 2 부분은 상기 LLR 값이 기록되는 워드-위치를 식별하는, 방법.
  6. 제 1 항에 있어서,
    (c) 상기 다수의 LLR 값들이 디-인터리빙된 순서를 가지도록 상기 멀티-뱅크 메모리로부터 상기 다수의 LLR 값들을 판독하는 단계를 더 포함하는, 방법.
  7. 제 6 항에 있어서,
    상기 (c) 단계는,
    상기 멀티-뱅크 메모리의 제 1 뱅크로부터 상기 다수의 LLR 값들의 제 1 서브세트를 판독하는 단계, 및 그 다음에 상기 멀티-뱅크 메모리의 제 2 뱅크로부터 상기 다수의 LLR 값들의 제 2 서브세트를 판독하는 단계를 포함하는, 방법.
  8. 제 6 항에 있어서,
    상기 멀티-뱅크 메모리는 멀티-세그먼트 조정(arbitrated) 메모리의 다수의 세그먼트들 중 하나이며, 제 2 서브-패킷의 LLR 값들이 디코더에 의해 상기 세그먼트들 중 하나로부터 판독되는 시간 기간 동안 제 1 서브-패킷의 LLR 값들이 상기 세그먼트들 중 다른 하나로 기록되는, 방법.
  9. 제 1 항에 있어서,
    각각의 뱅크는 다수의 워드-위치들을 포함하며, 다수의 LLR 값들은 상기 워드-위치들 중 적어도 하나의 위치로 기록되는 방법.
  10. 방법으로서,
    (a) 다수의 디-인터리빙된 재정렬 물리(DRP) 어드레스들을 생성하는 단계 - 상기 다수의 DRP 어드레스들은 다수의 DRP 어드레스들의 세트들을 포함함 -;
    (b) LLR 값들의 대응하는 세트를 메모리로 동시에 기록하기 위해 DRP 어드레스들의 각각의 세트를 사용하는 단계; 및
    (c) 디-인터리빙된 순서로 상기 메모리로부터 다수의 LLR 값들을 판독하는 단계를 포함하는, 방법.
  11. 제 10 항에 있어서,
    상기 DRP 어드레스들은 PBRI 어드레스들이고 상기 메모리는 멀티-뱅크 메모리인, 방법.
  12. 장치로서,
    다수의 디-인터리빙된 재정렬 물리(DRP) 어드레스들을 생성하는 디-인터리버 회로; 및
    멀티-뱅크 메모리를 포함하며, 상기 멀티-뱅크 메모리는 하나보다 많지 않은 LLR 값이 한 번에 상기 멀티-뱅크 메모리의 각각의 뱅크로 기록되도록 다수의 LLR 값들을 상기 멀티-뱅크 메모리로 동시에 기록하기 위해 상기 다수의 DRP 어드레스들을 사용하는, 장치.
  13. 제 12 항에 있어서,
    상기 디-인터리버 회로는,
    재정렬 인덱스들의 스트림을 생성하는 재정력 인덱스 생성기 - 각각의 재정렬 인덱스는 다수의 어드레스 비트들을 포함함 -; 및
    상기 재정렬 인덱스들의 스트림을 수신하고 각각의 수신된 재정렬 인덱스를 대응하는 DRP 어드레스로 변환하는 어드레스 번역기 회로를 포함하며, 상기 어드레스 번역기 회로는 재정렬 인덱스의 제 1 어드레스 비트들을 시프팅하고 시프팅되지 않은 상기 재정렬 인덱스의 제 2 어드레스 비트들을 남겨둠으로써 상기 재정렬 인덱스를 DRP 어드레스로 변환하는, 장치.
  14. 제 12 항에 있어서,
    상기 멀티-뱅크 메모리는 다수의 뱅크들을 포함하며, 각각의 뱅크는 다수의 워드-위치들을 포함하고, 각각의 LLR 값은 다수(A)의 비트들을 포함하고, 각각의 워드-위치는 다수(B)의 비트들을 포함하며, B는 A의 적어도 2배인, 장치.
  15. 제 13 항에 있어서,
    상기 제 2 어드레스 비트들은 상기 LLR 값들 중 하나가 기록되는 상기 멀티-뱅크 메모리의 뱅크를 식별하는, 장치.
  16. 제 13 항에 있어서,
    상기 다수의 DRP 어드레스들 각각은 1 및 상기 다수의 LLR 값들 중 대응하는 LLR 값이 기록되는 상기 멀티-뱅크 메모리의 뱅크들 중 오직 하나의 뱅크를 식별하는, 장치.
  17. 제 12 항에 있어서,
    상기 멀티-뱅크 메모리는 멀티-세그먼트 조정 메모리의 다수의 세그먼트들 중 하나이며, 제 2 서브-패킷의 LLR 값들이 상기 세그먼트들 중 하나로부터 판독되는 시간 기간 동안 제 1 서브-패킷의 LLR 값들이 상기 세그먼트들 중 다른 하나로 기록되는, 장치.
  18. 장치로서,
    다수의 뱅크들을 포함하는 멀티-뱅크 메모리; 및
    다수의 LLR 값들의 세트들을 상기 멀티-뱅크 메모리로 기록하기 위한 수단을 포함하며, 하나보다 많지 않은 LLR 값이 한 번에 상기 멀티-뱅크 메모리의 각각의 뱅크로 기록되도록 각각의 세트의 LLR 값들은 상기 멀티-뱅크 메모리로 동시에 기록되는, 장치.
  19. 제 18 항에 있어서,
    디-인터리빙된 순서로 상기 멀티-뱅크 메모리로부터 상기 LLR 값들을 판독하기 위한 수단을 더 포함하는, 장치.
  20. 컴퓨터-판독가능 매체를 포함하는 컴퓨터 프로그램 물건(product)으로서, 상기 컴퓨터-판독가능 매체는,
    컴퓨터로 하여금, 디-인터리버가 다수의 디-인터리빙된 재정렬 물리(DRP) 어드레스들을 생성하고 상기 DRP 어드레스들이 대응하는 다수의 LLR 값들을 멀티-뱅크 메모리로 동시로 기록하기 위해 사용되도록, 상기 디-인터리버를 제어하도록 하기 위한 코드 - 상기 멀티-뱅크 메모리는 다수의 뱅크들을 포함하고, 하나보다 많지 않은 LLR 값이 한 번에 상기 멀티-뱅크 메모리의 각각의 뱅크로 기록됨 -; 및
    상기 컴퓨터로 하여금, 디코더가 디-인터리빙된 순서로 상기 멀티-뱅크 메모리로부터 상기 다수의 LLR 값들을 판독하도록, 상기 디코더를 제어하도록 하기 위한 코드를 포함하는, 컴퓨터 프로그램 물건.
  21. 방법으로서,
    (a) 단일(single) 기록 동작을 수행함으로써 메모리의 워드-위치로부터 다수의 LLR 값들을 클리어(clear)시키는 단계를 포함하는, 방법.
  22. 제 21 항에 있어서,
    상기 워드-위치는 다수의 워드-위치들 중 하나이며, 상기 다수의 워드-위치들의 워드-위치들 모두는 동시에 클리어되는, 방법.
  23. 제 22 항에 있어서,
    상기 메모리는 멀티-뱅크 메모리이며, 상기 다수의 워드-위치들의 워드-위치들 각각은 상기 멀티-뱅크 메모리의 상이한 뱅크의 일부인, 방법.
  24. 제 23 항에 있어서,
    제 1 서브-패킷의 LLR 값 및 제 2 서브-패킷의 LLR 값은 모두 상기 멀티-뱅크 메모리의 동일한 뱅크에 저장되는, 방법.
  25. 제 21 항에 있어서,
    (b) 명령을 해석하는 단계; 및
    (c) 상기 명령에 의해 식별되는 다수의 워드-위치들이 클리어되도록 (b) 단계의 해석에 응답하여 여러번 단계 (a)를 수행하는 단계를 더 포함하는, 방법.
  26. 제 25 항에 있어서,
    단계 (c)는 상기 명령에 의해 식별되는 워드-위치들 중 제 1 워드-위치로부터 제 1 서브-패킷의 LLR 값을 클리어시키는 단계를 포함하고, 단계 (c)는 또한 상기 명령에 의해 식별되는 워드-위치들 중 제 2 워드-위치로부터 제 2 서브-패킷의 LLR 값을 클리어시키는 단계를 포함하는, 방법.
  27. 제 21 항에 있어서,
    상기 다수의 LLR 값들의 LLR 값들 중 제 1 LLR 값은 제 1 패리티 LLR 값이고, 상기 다수의 LLR 값들의 LLR 값들 중 제 2 LLR 값은 제 2 패리티 LLR 값인, 방법.
  28. 제 25 항에 있어서,
    상기 메모리는 제 1 서브-패킷 영역 및 제 2 서브-패킷 영역을 포함하며, 단계 (c)는 상기 제 1 서브-패킷 영역의 워드-위치들을 클리어시키는 단계를 포함하고, 단계 (c)는 또한 상기 제 2 서브-패킷 영역의 워드-위치들을 클리어시키는 단계를 포함하는, 방법.
  29. 장치로서,
    제 1 LLR 값 및 제 2 LLR 값을 저장하는 메모리; 및
    상기 제 1 및 제 2 LLR 값들을 동시에 클리어시키는 메커니즘을 포함하는, 장치.
  30. 제 29 항에 있어서,
    상기 제 1 및 제 2 LLR 값들은 단일 기록 동작에 의해 동시에 클리어되는, 장치.
  31. 제 29 항에 있어서,
    상기 제 1 및 제 2 LLR 값들은 동시에 발생하는 다수의 기록 동작들에 의해 동시에 클리어되는, 장치.
  32. 제 29 항에 있어서,
    상기 메커니즘은 작업 관리자를 포함하는, 장치.
  33. 제 29 항에 있어서,
    상기 메커니즘은 명령을 수신하며, 상기 명령은 상기 메모리의 다수의 워드-위치들을 식별하며, 상기 메커니즘은 식별된 다수의 워드-위치들로 기록함으로써 상기 제 1 및 제 2 LLR 값들이 클리어되도록 하는, 장치.
  34. 제 29 항에 있어서,
    상기 메모리는 멀티-뱅크 메모리이고, 상기 제 1 LLR 값은 상기 멀티-뱅크 메모리의 제 1 뱅크에 저장되고, 상기 제 2 LLR 값은 상기 멀티-뱅크 메모리의 제 2 뱅크에 저장되는, 장치.
  35. 제 29 항에 있어서,
    상기 제 1 및 제 2 LLR 값들은 상기 메모리의 단일 워드-위치에 저장되는, 장치.
  36. 장치로서,
    제 1 LLR 값 및 제 2 LLR 값을 저장하는 메모리; 및
    상기 제 1 및 제 2 LLR 값들을 동시에 클리어시키기 위한 수단을 포함하는, 장치.
  37. 제 36 항에 있어서,
    상기 수단은 단일 기록 동작을 수행함으로써 상기 제 1 및 제 2 LLR 값들을 동시에 클리어시키는, 장치.
  38. 제 36 항에 있어서,
    상기 수단은 다수의 기록 동작들을 동시에 수행함으로써 상기 제 1 및 제 2 LLR 값들을 동시에 클리어시키는, 장치.
  39. 컴퓨터-판독가능 매체를 포함하는 컴퓨터 프로그램 물건으로서, 상기 컴퓨터-판독가능 매체는,
    컴퓨터로 하여금 메모리로부터 다수의 LLR 값들을 동시에 클리어시키도록 하기 위한 코드를 포함하는, 컴퓨터 프로그램 물건.
  40. 제 39 항에 있어서,
    상기 코드는 작업 명령인, 컴퓨터 프로그램 물건.
  41. 제 39 항에 있어서,
    상기 코드는 상기 메모리의 단일 워드-위치로 단일 기록 동작을 수행함으로써 상기 컴퓨터로 하여금 상기 다수의 LLR 값들을 동시에 클리어시키도록 하는, 컴퓨터 프로그램 물건.
  42. 제 39 항에 있어서,
    상기 코드는 다수의 기록 동작들을 동시에 수행함으로써 상기 컴퓨터로 상기 다수의 LLR 값들을 동시에 클리어시키도록 하는, 컴퓨터 프로그램 물건.
KR1020107024319A 2008-03-28 2009-03-17 멀티-뱅크 llr 버퍼를 수반하는 디-인터리빙 메커니즘 KR101185868B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US4057708P 2008-03-28 2008-03-28
US4059108P 2008-03-28 2008-03-28
US61/040,577 2008-03-28
US61/040,591 2008-03-28
US12/404,613 US8572332B2 (en) 2008-03-28 2009-03-16 De-interleaving mechanism involving a multi-banked LLR buffer
US12/404,613 2009-03-16
PCT/US2009/037453 WO2009120546A1 (en) 2008-03-28 2009-03-17 De-interleaving mechanism involving a multi-banked llr buffer

Publications (2)

Publication Number Publication Date
KR20100139114A true KR20100139114A (ko) 2010-12-31
KR101185868B1 KR101185868B1 (ko) 2012-09-25

Family

ID=40749220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107024319A KR101185868B1 (ko) 2008-03-28 2009-03-17 멀티-뱅크 llr 버퍼를 수반하는 디-인터리빙 메커니즘

Country Status (7)

Country Link
US (1) US8572332B2 (ko)
EP (1) EP2269313A1 (ko)
JP (3) JP2011515994A (ko)
KR (1) KR101185868B1 (ko)
CN (1) CN101953077B (ko)
TW (1) TW200952378A (ko)
WO (1) WO2009120546A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347062B2 (en) * 2008-07-28 2013-01-01 Lantiq Deutschland Gmbh Interleaver memory allocation method and apparatus
JP5476902B2 (ja) * 2009-09-30 2014-04-23 富士通株式会社 ターボ復号装置及び通信装置
US20110299442A1 (en) * 2010-06-04 2011-12-08 Sairamesh Nammi Methods and apparatus for controlling location for starting decoding of sub-packets of a communication packet
JP5564566B2 (ja) * 2010-07-12 2014-07-30 パナソニック株式会社 デインタリーブ装置および方法ならびにデータ伝送システムおよび方法
US8406330B2 (en) * 2010-07-19 2013-03-26 Qualcomm Incorporated Advanced LLR processor for wireless telecommunication system
CN106452454B (zh) * 2015-08-04 2019-09-27 上海数字电视国家工程研究中心有限公司 数据换序发送接收译码方法及装置
KR101779584B1 (ko) * 2016-04-29 2017-09-18 경희대학교 산학협력단 복잡도 감소에 기반한 ds-cdma 시스템에서의 원신호 복원 방법
CN109144963A (zh) * 2017-06-26 2019-01-04 阿里巴巴集团控股有限公司 一种重做日志持久化方法及设备
WO2019007495A1 (en) * 2017-07-05 2019-01-10 Huawei Technologies Co., Ltd. DECODING MULTI-CORE POLAR CODES
KR102478169B1 (ko) * 2020-04-03 2022-12-16 한국전자통신연구원 디인터리빙 방법 및 이를 수행하는 디인터리빙 시스템
US11386007B1 (en) 2021-04-05 2022-07-12 Oracle International Corporation Methods and systems for fast allocation of fragmented caches

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63164091A (ja) * 1986-12-26 1988-07-07 Hitachi Ltd メモリ・クリア方式
JP3304632B2 (ja) * 1994-09-21 2002-07-22 ソニー株式会社 インターリーブ方法およびインターリーブ回路
US6789218B1 (en) * 2000-01-03 2004-09-07 Icoding Technology, Inc. High spread highly randomized generatable interleavers
US6392572B1 (en) 2001-05-11 2002-05-21 Qualcomm Incorporated Buffer architecture for a turbo decoder
US7095812B2 (en) * 2002-06-24 2006-08-22 Agere Systems Inc. Reduced complexity receiver for space-time- bit-interleaved coded modulation
US7702968B2 (en) * 2004-02-27 2010-04-20 Qualcomm Incorporated Efficient multi-symbol deinterleaver
US8325863B2 (en) 2004-10-12 2012-12-04 Qualcomm Incorporated Data detection and decoding with considerations for channel estimation errors due to guard subbands
EP1819056B1 (en) * 2004-12-02 2013-07-17 Mitsubishi Electric Corporation Decoding device and communication device
US7543197B2 (en) 2004-12-22 2009-06-02 Qualcomm Incorporated Pruned bit-reversal interleaver
KR100912156B1 (ko) 2005-02-03 2009-08-14 파나소닉 주식회사 병렬 인터리버, 병렬 디인터리버 및 인터리브 방법
JP4891927B2 (ja) 2005-02-14 2012-03-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 低減されたサイズのメモリテーブルによるブロックインターリーブ
KR100800853B1 (ko) * 2005-06-09 2008-02-04 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US7783952B2 (en) * 2006-09-08 2010-08-24 Motorola, Inc. Method and apparatus for decoding data
JP2008135813A (ja) 2006-11-27 2008-06-12 Fujitsu Ltd ターボ復号器及びターボ復号方法
US20090245423A1 (en) * 2008-03-28 2009-10-01 Qualcomm Incorporated De-Interlever That Simultaneously Generates Multiple Reorder Indices

Also Published As

Publication number Publication date
KR101185868B1 (ko) 2012-09-25
CN101953077B (zh) 2014-12-10
JP2013128301A (ja) 2013-06-27
WO2009120546A1 (en) 2009-10-01
US8572332B2 (en) 2013-10-29
JP5801353B2 (ja) 2015-10-28
US20090249134A1 (en) 2009-10-01
TW200952378A (en) 2009-12-16
JP2011515994A (ja) 2011-05-19
JP2013255244A (ja) 2013-12-19
CN101953077A (zh) 2011-01-19
JP5654057B2 (ja) 2015-01-14
EP2269313A1 (en) 2011-01-05

Similar Documents

Publication Publication Date Title
KR101185868B1 (ko) 멀티-뱅크 llr 버퍼를 수반하는 디-인터리빙 메커니즘
JP6858857B2 (ja) 受信機及び復号方法
JP4478668B2 (ja) 並列のターボ復号機中でのインターリーブの方法およびシステム。
JP4848359B2 (ja) 並列インターリーバ、並列デインターリーバ及びインターリーブ方法
US8438434B2 (en) N-way parallel turbo decoder architecture
RU2261529C2 (ru) Перемежитель и способ перемежения в системе связи
KR20080067987A (ko) 큐피피 인터리브를 갖는 병렬 터보 디코딩을 위한 공식적플렉서블 충돌 방지 메모리 억세싱
KR100800853B1 (ko) 통신 시스템에서 신호 수신 장치 및 방법
US8732435B1 (en) Single buffer multi-channel de-interleaver/interleaver
JP2014209785A (ja) 複数のコード・タイプをプログラマブル復号する方法および装置
KR100963463B1 (ko) 낮은 프레임 에러 레이트를 위한 개선된 터보 코드인터리버
US8352841B2 (en) Systems and methods for out of order Y-sample memory management
KR101110201B1 (ko) 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치
JP2006217072A (ja) ターボ復号装置及びターボ復号方法
JP2003526988A (ja) ビット−スライスの順に実施したパス計量更新におけるビタービ復号化
US20090245423A1 (en) De-Interlever That Simultaneously Generates Multiple Reorder Indices
Briki et al. A conflict-free memory mapping approach to design parallel hardware interleaver architectures with optimized network and controller
US9015551B2 (en) Decoding apparatus with de-interleaving efforts distributed to different decoding phases and related decoding method thereof
US8627022B2 (en) Contention free parallel access system and a method for contention free parallel access to a group of memory banks
US9128888B2 (en) Method and apparatus for turbo decoder memory collision resolution
Ur Reehman et al. A memory mapping approach based on network customization to design conflict-free parallel hardware architectures
US20040143722A1 (en) Method and circuit configuration for transmitting data between a processor and a hardware arithmetic-logic unit
Chavet et al. Hardware design of parallel interleaver architectures: A survey
CN108023599B (zh) 一种用于Turbo译码的数据存储方法及装置
KR101173555B1 (ko) 데이터 디레이트 매처 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 8