KR20070102753A - 크기가 축소된 메모리 테이블에 의한 블록 인터리빙 - Google Patents

크기가 축소된 메모리 테이블에 의한 블록 인터리빙 Download PDF

Info

Publication number
KR20070102753A
KR20070102753A KR1020077020918A KR20077020918A KR20070102753A KR 20070102753 A KR20070102753 A KR 20070102753A KR 1020077020918 A KR1020077020918 A KR 1020077020918A KR 20077020918 A KR20077020918 A KR 20077020918A KR 20070102753 A KR20070102753 A KR 20070102753A
Authority
KR
South Korea
Prior art keywords
symbols
buffer memory
rows
order
groups
Prior art date
Application number
KR1020077020918A
Other languages
English (en)
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 KR20070102753A publication Critical patent/KR20070102753A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • 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/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/2707Simple row-column interleaver, i.e. pure block interleaving
    • 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

Abstract

인터리빙은 디지털 통신 및 저장 시스템에서 잡음 억압을 향상시킨다. 공지된 방식에 의하면, 인터리빙/디인터리빙은, 공지된 방식에 의하면, 행단위 순으로 R행 x C열의 임시 메모리 테이블에 심볼들을 저장하고, 열단위 순으로 판독하거나, 이와는 반대로 수행하여서, 달성되어, 재배열된 순서를 얻는다. 임시 메모리 테이블의 크기가 감소된 동일한 인터리빙/디인터리빙 동작을 수행하는 인터리빙 및 디인터리빙 방법들 및 장치들을 제안한다. 상기 재배열된 순서에 따른 심볼들의 재배열은, 심볼들을 또 다른 메모리로부터 불러오거나 이 메모리에 저장하는 순서와 결합하여, 메모리 크기가 감소된 테이블을 사용하여 이루어진다. 또한 본 발명은, 인터리빙 및/또는 디인터리빙하는 IC들 및 장치들에 관한 것이다.
인터리빙, 디인터리빙, 테이블, 재배열.

Description

크기가 축소된 메모리 테이블에 의한 블록 인터리빙{Block interleaving with memory table of reduced size}
본 발명은 디인터리빙 방법 및 그에 대응한 인터리빙 방법에 관한 것이다.
또한, 본 발명은 디인터리버(deinterleaver) 및 그에 대응한 인터리버에 관한 것이다.
통신의 강건성을 향상시키기 위해 일부의 디지털 통신 시스템에서 인터리빙을 사용한다. 인터리빙과 그 인터리빙의 역동작인 디인터리빙 방식 일부는 예를 들면 소위 블록 인터리빙이 공지되어 있고, 이것에 따라 송신될 심볼로 이루어진 시퀀스를 블록으로 분할하고 블록마다 그 블록에 속하는 심볼을 송신하기 전에 그 블록 내에 셔플링 한다. 예를 들면, 특별한 블록 인터리빙 방식에서는 R행 및 C열의 테이블을 사용하고, 여기서 상기 테이블 또는 셀의 각 요소는 하나의 심볼을 포함할 수 있고: R x C 심볼의 블록들인 각 블록의 심볼들은, 행단위 순으로 상기 테이블에 심볼들을 저장하여서 셔플링되고 또 열단위 순으로 판독되거나, 또는 이와 반대로 된다. 상기 심볼들은, 예를 들면 고정 길이의 비트 스트링들일 수 있다.
이러한 블록 인터리빙 방식은, 공식적으로 다음과 같이 표현될 수 있다: 각 심볼이 새로운 위치 인덱스 j를 취하도록(여기서, j=c x R+r(r=i DIV C), c=i MOD C), 각 심볼이 초기에 위치 인덱스 i를 갖는 R x C 심볼들로 이루어진 블록을 재배 열하는 것.
이러한 블록 인터리빙 방식의 변형은, 예를 들면 248행 304열의 ECC 클러스터라고 하는 일 블록을 사용하는 것에 따른 블루레이 디스크(BD) 시스템에서 사용된다. 상술한 설명으로부터 명백한 것처럼, 인터리빙/디인터리빙의 동작은, 248행 304열로 이루어진 테이블의 형태의 메모리를 사용하여 실행될 수 있다.
특히 디인터리빙의 동작에 있어서, 디스크로부터 검색된 ECC 블록의 바이트들은, 초기에는 테이블에 행단위 순으로 저장되고, 그 후, 상기 테이블에 저장된 바이트들은, 판독되는 동일한 순서로, 버퍼 메모리라고도 많이 언급하는 상이한 메모리에 저장된다. 전형적으로, 이러한 버퍼 메모리는, 예를 들면 일부의 Mbytes의 순으로 아주 큰 크기를 갖고, 보통 SDRAM 메모리 타입으로 이루어져 있다. 그 버퍼 메모리는, 종종 드라이브라고 하는, BD를 액세스하는 장치와, 퍼스널 컴퓨터 등의 호스트 장치 사이의 인터페이스로서의 역할을 한다.
이러한 R행 x C열 바이트의 테이블은, 상기 테이블의 요소를 기록한 순서가 상기 테이블의 요소를 판독하는 순서, 예를 들면 행단위 대 열단위와 서로 다르므로, 완전히 랜덤하게 액세스하는데 적합해야 한다. 이러한 고려사항은 SRAM 메모리의 사용을 가리키고, 여기서, 각 바이트는 개별적으로 어드레싱될 수 있다.
그러나, 상기 테이블의 SRAM의 사용에 의한 주요 문제점은, 상기 타입의 메모리가 공간을 소비하고, 248 x 304 바이트인 필요한 메모리 양에 대해, 상기 테이블에 대해서만 할당된 인코더/디코더 IC에 중요한 영역이 생기게 되는 것이다.
본 발명의 목적은, 용량 공간이 감소된 테이블의 사용을 고려한 심볼들로 이 루어진 일 블록에 속하는 심볼들을 디인터리빙하는 방법 및 그에 대응한 인터리빙 방법을 제공하는데 있다.
본 발명의 다른 목적은, 용량 공간이 감소된 테이블을 사용하는 디인터리버 및 그에 대응한 인터리버를 제공하는데 있다.
본 발명에 따른 상기 첫 번째 목적은, 청구항 1에 기재된 디인터리빙 방법과 그에 대응한 청구항 6에 기재된 인터리빙 방법으로 달성된다.
R x C 심볼들로 이루어진 블록에 속하는 심볼들의 디인터리빙은, R행 C열의 테이블을 사용하지 않고 실행되지만, 그 대신에 N행 C열의 보다 작은 테이블을 사용하여 실행해도 된다.
청구항 1에서, 재배열된 순서에 따른 심볼들의 재배열은, 상기 테이블의 사용과, 상기 테이블의 각 열로부터 얻은 심볼들을 버퍼 메모리에 저장하는 순서의 조합으로 인해 상기 버퍼 메모리에서 이루어진다.
마찬가지로, 청구항 6에서, 상기 재배열된 순서에 따른 심볼들의 재배열은, 상기 테이블 사용과, 상기 버퍼 메모리로부터 얻은 심볼들을 상기 테이블의 열에 저장하는 순서의 조합으로 인해 달성된다.
주목하는 것은, 인터리빙 및 디인터리빙의 동작이, 원리상 테이블을 전혀 사용하지 않고도 달성된다는 것이다. 실제로, 예를 들면 디인터리빙시에, 상기 블록의 심볼들은, 디인터리빙된 순서에 따라 SDRAM 버퍼 메모리에 직접 개별적으로 설치될 수 있다. 그러나, 테이블을 전혀 필요로 하지 않는 상기 디인터리빙 방법은, 중요한 단점: 즉 SDRAM 버퍼 메모리에 매우 느리고 비효율적으로 액세스한다는 것 이다.
실제, SDRAM 메모리는 개별적으로 어드레싱 가능한, 수 바이트, 예를 들면 8 또는 16바이트로 이루어진 일부의 엔트리를 갖고, 상기 SDRAM메모리로의 액세스는 엔트리들이 한번에 액세스되는 경우 가장 좋은 효율로 일어난다. 이것은, 상대적으로 큰 데이터의 패키지의 전송을 포함하는 액세스에 대해 상기 SDRAM 메모리는 아주 적합하다는 사실을 반경한다. 이에 대해, 단일 엔트리보다 작은 양의 바이트들을 기록하는 경우, 효율 손실을 얻고, 그 손실 효율은 대역폭 손실 또는 대역폭 페널티라고 하는 경우도 있다. 대역폭 손실에 대한 최악의 경우는 개개의 바이트들이 비순서적 순서로 액세스되는 경우 적절하다는 것이 명백하다.
대신에 본 발명에 따른 방법에서, 버퍼 메모리로의 액세스는, 심볼들이 N의 그룹 및 개별적이 아닌 그룹에서 버퍼 메모리에 기록되므로, 공지된 방법과 비교하면 비교적 효율적이다.
원리상 N이 임의로 선택되었지만, 최고의 효율은 N이 M과 정확히 같은 경우 달성된다는 것이 명확해 보이고, 이때 M은 버퍼 메모리의 엔트리마다 저장될 수 있는 심볼의 수로, 대표적으로 2의 배수이다. 또한, 좋은 효율은, N이 예를 들면 M/2 또는 M/4처럼 M의 약수로서 선택되는 경우도 달성되고, 이 경우의 M은 2의 배수이다. M이 아닌 N 또는 그의 디바이더(divider)의 선택은, 효율이 보다 낮기 때문에 비실용적이다.
또한, N은, R x C 심볼들의 블록을 N x C 심볼들의 R/N 서브블록으로 분할하도록 R의 디바이더인 것이 바람직하다: 이 경우에 버퍼 메모리로의 액세스는 비교 적 단순한 방식에 따라 일어날 수 있다. 그러나, N이 R의 디바이더가 아닌 것도 가능하고, 이 경우에 최종 서브블록은 N x C 미만의 심볼, 즉 (R MOD N)x C의 심볼들을 포함하고, 그에 따라서 상기 방법의 최종 반복에서는 상기 테이블을 완전히 채우지 못한다. 이러한 최종의 경우에, 각 열의 첫 번째 R MOD N 심볼들만은 버퍼 메모리에 전송되어야 하는 것은 명백하고; 그럼에도 불구하고 예를 들어 중요하지 않거나 더미 심볼의 N-(R MOD N) 위치의 존재를 예견하기 때문에, 최종의 N-(R MOD N)들이 이전에 저장된 심볼과 오버라이트 되지 않는 버퍼 메모리의 위치에서 끝난다면 전체 열을 전송할 수 있다. N이 R의 디바이더가 아니고, 더미 심볼에 대한 위치 또는 메모리에서의 홀(hole)들이 미리 보이지 않으면, 일부의 경우에는 상기 테이블로부터 불러 온 N개의 심볼들로 이루어진 그룹은 효율이 비교적 낮은 2개의 인접한 엔트리들을 교차해서 버퍼 메모리에 저장된다.
청구항 1 및 6의 방법은, 블루레이 디스크에 따른 디인터리빙 및 인터리빙에 대해 각각 적용될 수 있다. 이 경우에, 블록은 ECC 클러스터이고, R은 248이며, C는 304이다. N은 바람직하게는 16으로서 선택될 수 있다.
이 경우에, 셔플링을 위해 사용된 테이블은 248 x 304 대신에 16 x 304 바이트로 이루어지므로, 필요로 하는 영역 및 비용에 있어서 필연적인 감소에 따라, 메모리 크기의 90% 이상의 감소를 감안한다.
상술한 설명으로부터 명백하듯이, 상기 다른 목적은, 청구항 10에 기재된 디인터리빙 장치 또는 디인터리버에 의해서 또한, 이에 대응한 청구항 12에 기재된 인터리빙 장치 또는 인터리버에 의해 달성된다.
본 발명에 따른 방법 및 장치의 바람직한 실시예들은, 종속항에 기재되어 있다.
본 발명에 따른 방법들 및 장치들의 이들 및 다른 국면을, 도면을 참조하여 더욱 더 설명하여 기재하겠다. 도면들에서,
도 1은 디지털 통신 시스템을 나타내고,
도 2는 정보매체를 판독하기 위한 시스템을 나타내고,
도 3은 본 발명에 따른 디인터리빙 방법에 있어서 일 블록의 심볼들을 어떻게 디인터리빙하는지를 나타내고,
도 4는 본 발명에 따른 일 블록의 심볼들을 디인터리빙하는 장치를 나타내며,
도 5는 ECC 클러스터를 나타내고,
도 6a, 6b 및 6c는 본 발명에 따른 디인터리빙 방법의 다른 실시예에서 일 블록의 심볼들을 어떻게 디인터리빙하는지를 나타내고,
도 7a-7k는, 본 발명에 따른 디인터리빙 방법의 또 다른 실시예에서 일 블록의 심볼들을 어떻게 디인터리빙하는지를 나타내고,
도 8은 상기 도 7a-7k을 참조하여 설명한 디인터리빙 방법의 실시예에 따라 ECC 클러스터의 심볼들을 어떻게 디인터리빙하는지를 나타낸다.
도 1은 송신기(11), 수신기(12) 및 그 송신기(11)로부터 수신기(12)로 심볼 들로 이루어진 시퀀스 형태의 데이터(10)를 전송하는 채널을 구비한 디지털 통신 시스템을 도시한 것이다. 상기 채널은, 통신 이론으로부터 알 수 있듯이, 도면에 도시된 것처럼, 정보매체(13)로도 나타낼 수 있다. 상기 송신기(11) 또는 레코더는, 데이터(10)를 잡음에 덜 민감한 형태로 인코딩하는 인코더(14)와, 상기 인코딩된 데이터에 관해 도면에 도시되지 않은 적절한 기록수단에 의해 정보매체(13)에 기록된 아날로그 신호(18)를 발생하는 변조기(15)를 구비한다. 상기 수신기(12) 또는 판독기는, 상기 인코딩된 데이터를 재구성하도록 그 도면에 도시되지 않은 적절한 판독수단에 의해 정보매체(13)로부터 재생성된, 재생성 아날로그 신호(18')를 복조하기 위한 복조기(15')와, 데이터(10')의 사본을 얻기 위해서 상기 재구성된 인코딩된 데이터를 디코딩하는 디코더(14')를 구비한다. 상세하게는, 상기 인코더(14)는, 오류정정코드(ECC) 생성기(16)와 인터리버(17)를 구비하고, 마찬가지로 디코더(14')는 상기 ECC를 사용하고 결국 억제하기 위한 디인터리버(17')와 오류정정부(16')를 구비한다. 인터리버(17)와 디인터리버(17')는 반대의 동작을 수행한다.
상기 ECC는, 상기 오류정정부(16')에 의해 상기 재구성된 인코딩 데이터의 정확성을 검증하는데 사용될 수 있는 일부의 리던던트(redundant) 정보, 예를 들면 패리티 바이트가 있고, 가능하면 정정을 수행하기 위해 손상되는 것이 발견된 임의의 심볼이어야 한다. 상기 손상된 심볼의 정정은, 서로 근접한 아주 많은 심볼들이 손상되지 않는 조건에서 가능하다. 전송 채널에 존재하는 백색 잡음, 즉 다른 것 중 하나에 관계없이 송신된 시퀀스의 임의의 심볼을 무작위로 균등하게 손상할 가 능성이 있는 잡음으로 인한 심볼들의 손상은, 일반적으로 ECC의 사용에 의해 치료될 수 있고, 이와는 대조적으로, 일반적으로, ECC만으로는 버스트 에러, 즉 송신된 시퀀스에서의 인접한 복수의 심볼들의 손상에 대해 치료하지 못한다.
채널 잡음이 긁힘이나 다른 결함에 민감한, 예를 들면 광 디스크와 같은 버스트상 작용을 갖는 시스템에서는, 인터리빙/디인터리빙과 오류 정정을 결합할 필요가 있다. 인터리빙의 동작은, 원래의 순서에 따른 인접한 심볼들이 상기 채널을 거쳐 송신된 시퀀스에서 충분히 분리되는 것을 얻기 위해서 심볼들의 시퀀스의 원래의 순서를 변경하고, 이와는 반대로, 수신기측에서 일어나는 반대의 디인터리빙 동작은, 원래의 순서를 재확립한다. 이러한 구성으로, 전송하는 동안 버스트 에러에 의해 손상될 수도 있는 심볼들은, 디인터리빙, 즉 원래의 순서를 재확립하는 것에 의해 따로따로 확장되어서, 이러한 경우에도 통상의 에러 정정 방법이 효과적일 수 있다.
이후 디인터리빙의 동작에 관해 초점을 맞춘 설명을 위해서: 그러나 이해해야 하는 것은, 디인터리빙의 동작을 참조한 어떠한 서술도 적절한 변경으로 반대의 인터리빙 동작에 적용될 수 있다. 또한, 당업자에게 있어서, ECC 생성 및 에러 검출/정정이, 명료하게 언급되지 않은 경우에도, 어떻게 일어나는지가 명백하다.
도 2는 서로 버스(23)로 접속된 액세스부(20)와 호스트 장치(24)를 구비한 정보매체의 판독을 위한 시스템을 도시한 것이다. 종종 "드라이브"라고도 하는 상기 액세스부(20)는, 정보매체(13)에 기록된 데이터를 검색하여 버퍼 메모리(22)에 저장할 수 있고, 여기서 데이터는 렌더링을 하기 위해 호스트 장치(24)에 대해 이 용가능하다. 상기 버퍼 메모리(22)와 수신기(12)는, 액세스부(20)의 부분들이다. 상기 호스트 장치(24)는 PC이어도 되고; 즉 또 다른 액세스부(20)와 호스트 장치(24)는 디스크 플레이어 등의 민수용 전자기기에 집적되어도 된다. 버퍼 메모리(22)의 존재에 의해, 렌더링으로부터 상기 정보매체(13)에 기록된 데이터의 검색을 디커플링할 수 있다. 실제로, 상기 검색은 전형적으로 비교적 낮지만 정상상태에서 일어나고, 렌더링은 "전송 패키지", 즉 버스(23)가 유휴인 기간에서 인터리빙된 비교적 큰 데이터 전송의 기간들에 의해 일어나는 것이 바람직할 수 있다.
액세스부(20)에서, 판독신호(18')는 정보매체(13)로부터 도면에 미도시된 판독수단에 의해 생성된다. 이러한 판독신호(18')는, 복조기(15')에 의해 심볼들(21)의 시퀀스 또는 스트림으로 변환되고, 이 심볼들(21)의 스트림은 디인터리버(17')에 공급된다. 인터리빙/디인터리빙의 방식은, 원래의 동일한 심볼들의 순서와 대조하여, 전송시에 심볼들의 순서, 즉 재배열된 순서로 정의된다. 가능한 인터리빙/디인터리빙의 방식과 공지된 디인터리빙 방법에 의하면, 디인터리버(17')에서는, R행 및 C열의 메모리 테이블을 사용하여 심볼들(21)의 스트림의 R x C 심볼들의 블록들을 재배열한다. 상기 심볼들은, 행단위 순서로 복조기(15')에서 생성된 심볼들(21)의 스트림에 설치된 것과 같은 순서로 상기 테이블에 일시적으로 저장된다; 즉 전체 블록이 저장되었고 그 테이블이 꽉찬 경우, 그 테이블에 저장된 심볼들을 열단위 순서로 불러오거나 판독한다: 상기 열에 불려온 심볼들의 그룹은, 상기 테이블로부터 판독된 것과 같은 순서로 버퍼 메모리(22)에 저장된다.
이러한 형태의 블록 인터리빙은, 각 심볼이 새로운 위치 인덱스 j(여기서, j=c x R +r, r=i DIV C이고 c=i MOD C)를 취하도록, 초기에 위치 인덱스 i를 갖는 R x C 심볼들로 이루어진 일 블록을 재배열하는 것을 다음과 같이 공식적으로 표현될 수 있다.
상기 인터리빙이 일어난 후, 그에 따라서 심볼들은, 원래의 순서인 디인터리빙된 순서로 버퍼 메모리(22)에 존재된다.
일부의 경우에 변조기로부터 심볼들의 흐름을 중지시키는 것이 비실용적이므로, 실제로 상기와 같은 디인터리빙의 동작은, R행 및 C열의 2개의 테이블의 교대의 사용을 필요로 한다: 즉 일 테이블이 채워지는 경우 타 테이블은 비어 있고, 일 테이블이 비어 있는 경우 타 테이블은 채워져 있다.
주목해야 하는 것은, 종래기술에 공지되어 있으므로, 동일한 테이블 또는 2개의 테이블이 인터리빙 및 디인터리빙 모두에 사용될 수 있다는 것이다.
도 3은 본 발명에 따른 디인터리빙 방법에서 일 블록의 심볼들을 어떻게 디인터리빙하는가를 나타낸다. 이러한 예시에서는 R, C 및 N의 값으로서 작은 수를 선택하여 본 발명에 다른 방법의 설명을 용이하게 한다: R=16, C=3 및 N=4.
48 심볼들인 R x C 심볼들로 이루어진 심볼들의 블록(30)은, 테이블(31)에 제공된다. 상기 심볼들의 블록(30)의 확대도에서, 심볼들은, 예를 들어 복조기(15')로부터 수신된 순서에 따라, 0부터 47까지 번호가 매겨져 있고, 즉 각 심볼에 관련된 수는 위치 인덱스 i이다.
사용된 인터리빙의 방식에서는, 심볼들의 블록(30)의 심볼들이 재배열된 순서, 즉 각 심볼이 새로운 위치 인덱스 i를 갖도록 인터리빙에 앞선 원래의 순서에 따라 상기 버퍼 메모리(22)에 저장되는 것을 필요로 하고, 그 i=c x R + r, r=j DIV C 및 c=j MOD C이다. 이 도면에는, 초기의 위치 인덱스 j라고 인정된 심볼들의 블록(30)의 심볼들이 어떻게 버퍼 메모리(22)에 상기 재배열된 순서에 따라 보이는가를 도시한다. 버퍼 메모리(22)는, 엔트리들의 어레이로 이루어지고, 각 엔트리는 M=4개의 심볼을 수용할 수 있고; 그 엔트리들은 최고의 효율로 어드레싱될 수 있는 버퍼 메모리의 최소의 단위들이고, 그 버퍼 메모리는 전형적으로 SDRAM 타입으로 이루어진다.
종래기술에 의하면 16행 x 3열의 테이블이 필요한 재배열을 달성하는데 사용되지만, 본 발명에 의하면 N행 x 3열의 테이블(31)이 사용되고, 그 N은 16보다 작다. 이러한 예시에서 N은 4와 같다: 이것은, M=4이므로, N이 4인 경우 당연한 선택이다.
상기 재배열은 아래에 설명된 것처럼 달성된다.
제 1 단계에서는, 테이블(31)에, 행단위 순으로, 즉 먼저 0번째 행, 다음에 1번째 행, 2번째 행 및 3번째 행으로 심볼들의 블록(30) 중의 12개의 심볼들인 N x C 심볼들의 제1 서브블록(32)을 저장한다; 완전히 채운 후, 상기 테이블(31)은 열단위 순으로, 즉 먼저 0번째 열, 다음에 1번째 열 및 2번째 열로 판독되고; 이 경우에 각 열로부터 판독된 N이 4개인 심볼들의 그룹은, 일 그룹과 또 다른 그룹간에 R-N에 대한 갭, 이 경우에 12개의 심볼이 남도록, 서로 R개의 심볼의 거리를 갖는 위치에서의 버퍼 메모리(22)에 저장된다. 그러므로, 각 열로부터 판독된 4개의 심볼들의 그룹은, 예를 들면 엔트리 n, n+4 및 n+8에서 버퍼 메모리(22)에 저장된다.
제 2 단계에서는, 테이블(31)에, 행단위 순으로, N x C 심볼들의 제 2 서브블록(33)을 저장하고; 그 후 테이블(31)은, 열단위 순으로 판독되고, 각 열로부터 판독된 N개의 심볼들로 이루어진 그룹은, 엔트리 n+1, n+5 및 n+9에 있는 상기 제 1 서브블록의 N개의 심볼들의 그룹에 관해 그 이후의 위치에서 버퍼 메모리(22)에 저장된다.
그 이후의 단계에서는, 마찬가지로 버퍼 메모리(22)에 기록된 심볼들의 전체 블록(30)을 얻기 위해서 제 3 서브블록(34), 제 4 및 최종 서브블록(35)을 처리한다.
상기 복조기로부터 심볼들의 연속적인 흐름을 조절하기 위해서, N행 및 C열의 2개의 테이블의 교대의 사용을, 일 테이블이 채워지고 타 테이블이 비워져 있는 경우 또는 이와 반대로 일 테이블이 비워지고 타 테이블이 채워져 있는 경우 볼 수 있다.
도 4는 본 발명에 따른 디인터리빙 장치 또는 디인터리버의 개략도를 나타낸다.
디인터리버(17')는, 버퍼 메모리(22)에 접속되고,
- N행 C열의 테이블(31)과,
- 상기 테이블(31)에 상기 블록의 N x C 심볼들의 서브블록을 행단위 순으로 저장하는 프론트 엔드(front-end) 논리부(40)와,
- N개의 심볼들의 그룹을 열단위 순으로 상기 테이블(31)의 열로부터 불러오고, 그들을 버퍼 메모리(22)에 저장하여, 그들이 재배열된 순성에 따라 버퍼 메모 리(22)에 나타나는 재배열 논리부(41)를 구비한다.
이러한 장치는, 집적회로로서 또는 복조 및 오류 정정을 포함하기도 하는 전체 디코딩에 대한 책임이 있는 집적회로의 일부로서 구현되는 것이 바람직하다.
이러한 장치는, 정보매체(13)을 액세스하기 위한 장치에 구비될 수 있다.
또한, 상기 디인터리버 및 대응한 인터리버는, 일체로서 구현될 수 있고, 동일한 자원, 특히 동일한 테이블 또는 테이블들을 공유할 수 있다. 상기 재배열 논리는, 유선 로직과 IC 펌웨어 및/또는 소프트웨어의 결합으로서 구현될 수 있다. 프론트 엔드 로직은, 유선 로직으로만 구현되는 것이 바람직하다.
강조해야 하는 것은, 테이블(31)로서 2차원 메모리 구조를 구성하는 것이 필수적이다는 것이고, 여기서 상기 테이블의 각 요소는 2개의 인덱스라고 인정된다. 그 2개의 인덱스 중에서 어느 것이 행에 관련되고 열에 관련된 것인지에 절대 상관없다: 그러므로, 본 발명에 따른 방법들 및 장치들도 행 및 열에 대한 레퍼런스를 스와핑하여 설명될 수 있다.
마찬가지로, 행의 요소들이 기록되는 순서와 열의 요소들이 판독되는 순서와 상관없다. 달리 말하면, 인터리빙의 방식은, 항상 행 및/또는 열의 순열을 포함하도록 변형될 수 있다.
도 5는 BD 표준에 따른 ECC 클러스터를 도시한 것이다. ECC 클러스터는, 248 x 304 바이트로 이루어지고, 248행 x 304열의 테이블로서 나타낼 수 있다. 제1의 216행은 데이터 바이트를 포함하는 반면에 나머지 32행은 패리티 바이트를 포함한다. 상기 ECC 클러스터는, 2052바이트마다의 32 데이터 프레임들(50)로 이루어지 고, 즉 각각 9와 1/2열로 이루어진다. 데이터 프레임들(50)은, 호스트 장치(24) 상에서 가동하는 애플리케이션에서 사용된 데이터 구조이다.
연속적으로 입사하는 바이트들로 이루어진 스트림의 일부로서 수신된 바이트들로 이루어진 상기와 같은 블록에 대해, 종래기술에 다른 디인터리빙은, 248 x 304 바이트의 2개의 테이블의 사용을 필요로 한다.
본 발명에 따른 방법의 실시예에서는, N을 16으로 선택한다: 그보다는 이것은 16 x 304바이트의 2개의 테이블의 사용을 의미하고, 약 팩터 15만큼 메모리 크기가 감소함을 감안한다. N의 값 16은, 버퍼 메모리(22)가 각각 M=16 바이트의 엔트리들을 갖는 경우 가장 자연스런 선택이다.
이것은, 연속적인 16행의 그룹들(51)로서 도면에 도시될 수 있는 16행 x 304열의 서브블록을 처리하는 것에 해당한다.
이미 예상한 것처럼, 8 또는 4와 같은 N에 대해 보다 작은 값을 사용하는 것이 가능하여, 메모리 크기가 더욱 감소될 수 있지만, 재배열 논리부의 변형의 증가 및/또는 대역폭의 손실이 생기게 된다. M의 디바이더가 아닌 N에 대한 값들의 사용은 비실용적이라고 생각된다.
이 경우에 16인 N이 248인 R의 디바이더가 아니므로, 최종 서브블록은 단지 8개의 행인 테이블을 불완전하게 채운다: 이 행들의 내용을 버퍼 메모리(22)에 전송하는 경우를 주의해야 한다. 바람직하게는, 이러한 상황은, 버퍼 메모리(22)의 적절한 엔트리들에 행 전체를 복사하여서 처리될 수 있고, 그 버퍼 메모리(22)에 복사되는 중요하지 않거나 더미 바이트들의 존재를 감안한다. 상기 호스트 장 치(24)에 있는 애플리케이션은, 버퍼 메모리의 디인터리빙된 바이트들을 액세스하는 경우 상기 더미 바이트들을 무시하도록 구성될 필요가 있다.
또한, 본 발명에 따른 방법은, 데이터 바이트들의 216행만의 버퍼 메모리에 저장을 하는데 적용될 수 있고, 또 패리티 바이트의 32행은, 서로 다른 메모리에 저장될 수 있거나, 오류 정정을 위해 직접 처리될 수 있다.
본 발명에 따른 디인터리빙 방법의 다른 실시예에서는, 단일 테이블로 연속적으로 입사하는 심볼들의 스트림의 일부로서 수신된 심볼들의 디인터리빙을 수행한다. 일반적으로, 이러한 본 발명에 따른 방법의 다른 실시예에서 예측되는 것은,
- 테이블의 N행이 PN 그룹들로 분할되고,
- 테이블의 C열이 PC 그룹들에 할당되고,
- 심볼들을 행단위 순으로 테이블에 저장하는 단계에서, 그 입사 심볼들이, 마지막 행이 채워진 후, 제1행이 다시 채워지는 순환 버퍼처럼 상기 테이블에 저장되고,
- 상기 테이블에 저장된 심볼들을 열단위 순으로 불러오는 단계에서, 상기 저장된 심볼들이, 마지막 열이 판독된 후 제1열이 다시 판독되는 순환 버퍼처럼 테이블로부터 불려오고,
- 행들로 이루어진 일 그룹을 채운 후, 대응한 열들로 이루어진 그룹과, 그 대응한 열들로 이루어진 그룹의 열들의 다음에 오는 열들이 전체 또는 일부 판독되고,
- 상기 불려온 심볼들이 재배열된 순서로 버퍼 메모리에 나타나는 위치에 저장되는 것이다.
이러한 다른 실시예를 도 6a, 6b 및 6c를 참조하여 설명한다. 이러한 특별한 예:
R=16,
N=8,
C=6,
M, 즉 버퍼 메모리(22)의 엔트리당 심볼들의 수는 8이고,
PN 및 PC=2,
제 1 그룹의 열은 열 0,1,2이고,
제 2 그룹의 열은 열 3,4,5이며,
제 1 그룹의 행은 행 0,1,2,3이고,
제 2 그룹의 행은 행 4,5,6,7이다.
제 1 단계에서는, 행들의 제 1 그룹을 기록한다; 이후 열들의 제 1 그룹을 판독하고, 그 내용을 버퍼 메모리(22)에 전송한다. 제1 단계의 종료 후 상황은 도 6a에 도시되어 있다. 테이블(31)에는, 제 1 단계를 종료할 때에 버퍼 메모리(22)에 복사된 심볼들을 나타내도록 줄무늬를 넣은 심볼들을 나타내고 있다.
제 2 단계에서는, 행들의 제 2 그룹을 기록한다; 이후 열들의 제 2 그룹을 판독하고, 그 내용을 버퍼 메모리(22)에 전송한다. 제2 단계의 종료 후 상황은 도 6b에 도시되어 있다. 테이블(31)에는, 제 2 단계를 종료할 때에 버퍼 메모리(22)에 복사된 심볼들을 나타내도록 줄무늬를 넣은 심볼들을 나타내고 있다.
제 3 단계에서는, 이전의 단계에서 테이블이 완전히 채워져 있으므로, 행들의 제 1 그룹을 오버라이트하고나서, 열들의 제 1 그룹을 판독하고 그 내용을 버퍼 메모리(22)에 전송한다. 제 3 단계의 종료 후 상황은 도 6c에 도시되어 있다.
그 방법을 어떻게 계속하여 일 블록과 다양한 이후의 블록들의 디인터리빙을 하는지가 명확하다. 제 3 단계에서는, 버퍼 메모리의 엔트리들이 일부만 기록되었고 N개의 심볼들의 그룹들이 일부의 경우에는 2개의 엔트리를 건너서 기록되었으므로 버퍼 메모리(22)에 대한 액세스의 효율이 보다 낮았다. 그러나, 이러한 효율의 손실은, 메모리 크기를 더욱 감소시키는 것의 이점과 비교하면, 특정한 경우에는 인정될 수 있다.
도 6a, 6b 및 6c를 참조하여 설명한 본 발명에 따른 디인터리빙 방법의 실시예는, 도 7a - 도 7k를 참조하여 설명하듯이, R의 디바이더가 아닌 N일 경우에 적용 및 변경될 수 있는 것이 바람직하다. 이러한 예에서,
R=10,
C=4,
M, 즉 버퍼 메모리(22)의 엔트리당 심볼들의 수는 4이고,
N=4,
N x C의 테이블과 아울러, S x C의 확장 테이블이 사용되고, 여기서 S는 N보다 작고, 그 확장 테이블은 이 경우에 S=2인 상기 테이블과 나란히 놓이고,
PN=2
PC=2,
제 1 그룹의 열은 열 1,3이고,
제 2 그룹의 열은 열 0,2이며,
제 1 그룹의 행은 행 0,1이고,
제 2 그룹의 행은 행 2,3이고,
그 확장 테이블의 행들은 행들의 제 3 그룹을 구성하고, 여기서는 행 4, 5로서 라벨이 붙여져 있다.
원하는 것은, R행 C열의 "풀 스케일(full-scale)" 테이블을 사용한 경우처럼, 40 심볼인 R x C의 시퀀스의 인터리빙을 달성하는데 있다. 도 7a는 40개의 심볼들의 시퀀스(70), 디인터리빙을 하는데 사용되는 10행 4열의 풀 스케일 테이블(71) 및 상기 심볼들이 디인터링된 순서로 저장되는 버퍼 메모리(22)를 나타낸 것이다.
또한, 본 실시예에서는, 6행 x 4열인 (N+S)x C의 테이블(72)을 사용한다.
제 1 단계에서는, 행들의 제 1 그룹을 기록하고, 도 7b에 도시된 상황에서 테이블(72)을 가져온다. 이어서, 열들의 제 1 그룹의 행 0 및 1에 존재하는 심볼들을 판독하여 버퍼 메모리(22)에 전송한다: 제 1 단계의 종료 후 상황은 도 7c에 도시되어 있고, 여기서 상기 테이블(72)에서의 줄무늬를 넣은 심볼들은, 버퍼 메모리(22)에 복사된 심볼들을 나타낸다.
제 2 단계에서는, 행들의 제 2 그룹을 기록하고, 도 7d에 도시된 상황에서 테이블(72)을 가져온다. 이어서, 열들의 제 2 그룹의 행 0-3에 존재하는 심볼들을 판독하여 버퍼 메모리(22)에 전송한다: 제 2 단계의 종료 후 상황은 도 7e에 도시되어 있다.
제 3 단계에서는, 행 4 및 5를 기록하고, 도 7f에 도시된 상황에서 테이블(72)을 가져온다. 이어서, 열들의 제 1 그룹의 행 2-5에 존재하는 심볼들을 판독하여 버퍼 메모리(22)에 전송한다: 제 3 단계의 종료 후 상황은 도 7g에 도시되어 있다.
제 4 단계에서는, 상기 테이블(72)이 이전의 단계에서 완전히 채워졌으므로, 행들의 제 1 그룹을 오버라이트하고, 도 7h에 도시된 상황에서 상기 테이블(72)을 가져온다. 이어서 열들의 제 2 그룹의 행 4,5,0 및 1에 존재하는 심볼들을 판독하여 버퍼 메모리(22)에 전송한다: 제 4 단계의 종료 후 상황은 도 7i에 도시되어 있다.
제 5 단계에서는, 행들의 제 2 그룹을 기록하고, 도 7j에 도시된 상황에서 테이블(72)을 가져온다. 이어서, 열들의 제 1 그룹의 행 0-3에 존재하는 심볼들을 판독하여 버퍼 메모리(22)에 전송한다: 제 5 단계의 종료 후 상황은 도 7k에 도시되어 있다.
제 6 및 종국의 단계에서는, 열의 제 2 그룹의 행 2 및 3에 존재하는 심볼들을 판독하여 버퍼 메모리(22)에 전송하여서, 도 7a에 도시된 것과 같은 원하는 디인터리빙을 수행한다.
본 실시예에서는 4개의 심볼로 이루어진 그룹들의 불러오기를 실행하는데 확장 테이블을 사용하였지만, 주목해야 하는 것은 그 확장 테이블의 사용이 배제될 수 있다는 것이다.
확장 테이블이 사용되는 경우, S는 N/PN, 또는 그의 배수로서 선택되는 것이 바람직하다.
이러한 실시예의 이점은,
- 버퍼 메모리(22)의 엔트리들이 한번에 기록되어서, 상기 시퀀스의 시작과 종료를 제외하고는 가장 효율적이고,
- 더미 바이트들이 버퍼 메모리(22)에서 예견될 필요가 없고,
- 상기 확장 테이블과 결합하여 단일 테이블이 2개의 테이블 대신에 사용된다.
이것은, 확장 테이블의 사용과 열들의 일 그룹으로부터 각 단계에서 전송된 N 심볼들의 그룹들의 선택과 함께 열들의 그룹들의 적절한 정의에 의해 가능하여서, N개의 심볼들의 그룹들은, 버퍼 메모리의 단일 엔트리에 전송된다.
이후 "개선된 구현"이라고 하는 도 7a-7k를 참조하여 설명한 디인터리빙 방법의 실시예는, 도 7a-7k의 특정 예시에서 주어진 것들과 서로 다른 파라미터 R, C, M, N의 값에 쉽게 적용될 수 있다. 특히, 도 5에 도시된 ECC 클러스터를 디인터리빙하는데 적용될 수 있고, 여기서 R=216, 따로따로 처리된 패리티 바이트를 고려하지 않고, C=304, 버퍼 메모리(22)는 각각 M=16바이트의 엔트리들을 갖는다.
상기 도입된 것처럼, N에 대한 민감한 선택은, 216의 디바이더가 아닌 N=M=16이다.
이러한 개선된 디인터리빙 방법을 적용할 때, 다음을 선택한다:
N x C의 테이블과 아울러, S x C의 확장 테이블이 사용되고, 여기서 S=4,
PN=4
PC=4,
제 1 그룹의 행들은 행 0-3이고,
제 2 그룹의 행들은 행 4-7이며,
제 3 그룹의 행들은 행 8-11이고,
제 4 그룹의 행들은 행 12-15이고,
그 확장 테이블의 행들은 제 5 그룹을 구성하고, 여기서는 행 16-19로서 라벨이 붙여져 있고,
그룹 A라고 하는 제 1 그룹의 열들은, column_nr MOD 19가 10,12,14,16,18과 같고, column_nr은 0과 303 사이에서 변화하는 열 인덱스이고,
그룹 B라고 하는 제 2 그룹의 열들은, column_nr MOD 19가 1,3,5,7,9*와 같은 모든 열이고,
그룹 C라고 하는 제 3 그룹의 열들은, column_nr MOD 19가 9*,11,13,15,17과 같은 모든 열이고,
그룹 D라고 하는 제 4 그룹의 열들은, column_nr MOD 19가 0,2,4,6,8과 같은 모든 열이다.
관측된 것은, column_nr MOD 19=9가 그룹 B와 C 양쪽의 일부이다는 것이다. 이들 열은, 108까지의 행들에 대한 열 B와 이후의 열 C로서 처리될 것이다.
도 8에는 ECC 클러스터가 도시되어 있고, 여기서 열들은 이들이 속하는 그룹에 따라, A, B, C 또는 D로서 마킹되었다.
이미 도 7a-7k를 참조하여 설명한 것처럼, 동일한 그룹의 열로부터 불러온 바이트들의 그룹들은 정렬되고, 즉 동일한 행으로부터 빼지지만, 서로 다른 그룹들의 열로부터 불러온 바이트들의 그룹들은 서로에 관해 이동된다. 이러한 이동은, 사용된 SRAM 메모리를 실제로 더욱 감소시켜 더미 바이트의 사용을 배제하고, 버퍼 메모리에 있는 홀들의 연속적인 생성을 피할 수 있는 것이다. 그 이동은 N/PN=4이므로 4개의 행에 해당한다.
ECC 클러스터의 시작과 끝을 처리하지만, 불러온 바이트들의 그룹들은 16보다 작은, 즉 4,8,12이다. 또한, 이것은, ECC 클러스터의 시작에서의 4,8 및 12바이트들의 그룹들이 데이터 클러스터의 끝에서의 12, 8 및 4 바이트들의 그룹들에 상보적이므로 버퍼 메모리에 홀들이 일어나지 않는다.
바이트들은, 디스크에서 흘러나오고 행단위로 상기 테이블에 저장되고, 그 이후의 행들의 그룹들이 파일링되자마자 상기 테이블로부터 판독되어 버퍼 메모리에 보내진다. ECC 클러스터의 디인터리빙은 아래에 설명된 것처럼 일어난다.
클러스터의 시작에서 제1의 4행, 행0-3은, 테이블의 행 0-3에 저장되고; 열 서브세트 A에 속하는 테이블의 이들 4행에서의 바이트들은, 테이블로부터 열단위로 판독되어 버퍼 메모리에 보내지고, 여기서 그들은 적절한 위치, 즉 달성되는 디인터리브 순서에 따라 저장된다. 이들 그룹만이 일부의 여분의 16개의 더미 바이트 대신에 4바이트를 포함하므로, 다른 어떤 때와 마찬가지로 그 16바이트보다 작은 그룹은 버퍼 메모리에 전송된다. 그러나, 이들 더미 바이트들은, 버퍼에 효과적으로 기록되지 않는다: 마스크는 그들이 버퍼에 기록되는 것을 방지하는데 사용될 수 있다.
그리고, ECC 클러스터의 다음의 4개의 행, 즉 행 4-7은, 테이블의 행 4-7에 저장되고; 열 서브세트 B에 속하는 테이블의 행 0-8의 바이트들은 메모리 버퍼에 전송된다.
그리고, ECC 클러스터의 다음의 4개의 행, 즉 행 8-11은, 테이블의 행 8-11에 저장되고; 열 서브세트 C에 속하는 테이블의 행 0-11의 바이트들은 메모리 버퍼에 전송된다.
그리고, ECC 클러스터의 다음의 4개의 행, 즉 행 12-15은, 테이블의 행 12-15에 저장되고; 열 서브세트 D에 속하는 테이블의 행 0-15의 바이트들은 메모리 버퍼에 전송된다. 이들 그룹은, 정확히 16바이트를 포함하고, 버퍼 메모리의 하나의 엔트리에 효과적으로 넣어진다.
그리고, ECC 클러스터의 다음의 4개의 행, 즉 행 16-19는, 테이블의 행 16-19에 저장되고; 열 서브세트 A에 속하는 테이블의 행 4-19의 바이트들은 메모리 버퍼에 전송된다. 이들 그룹은, 정확히 16바이트를 포함하고, 버퍼 메모리의 하나의 엔트리에 효과적으로 넣어진다.
입사하는 심볼들의 스트림을 처리하기 위해서, 이미 기록된 그룹 또는 행들에 해당하는 열들로 이루어진 일 그룹으로부터 심볼들을 불러오는 것은, 그 이후의 행들의 그룹이 기록되는 경우 동시에 일어난다. 예를 들면, 열 서브세트 D에 속하는 테이블의 행 0-15의 바이트들이 테이블로부터 불러왔지만, 그 테이블의 행 16-19는 파일링되고 있다.
그리고, ECC 클러스터의 다음의 4개의 행, 즉 행 20-23은, 테이블의 행 0-3에 저장되고; 열 서브세트 B에 속하는 테이블의 행 8-19,0-3의 바이트들은 메모리 버퍼에 전송된다. 이들 그룹은, 정확히 16바이트를 포함하고, 버퍼 메모리의 하나의 엔트리에 효과적으로 넣어진다.
그리고, ECC 클러스터의 다음의 4개의 행, 즉 행 24-27은, 테이블의 행 4-7에 저장되고; 열 서브세트 C에 속하는 테이블의 행 12-19, 0-7의 바이트들은 메모리 버퍼에 전송된다. 이들 그룹은, 정확히 16바이트를 포함하고, 버퍼 메모리의 하나의 엔트리에 효과적으로 넣어진다.
이러한 처리는 마찬가지로 계속된다.
ECC클러스터의 행 104-107이 테이블에 저장되는 경우, 16개의 짝수 데이터프레임의 4 EDC 바이트는 버퍼에 또는 이와는 달리 일부의 중간 메모리에 전송될 수 있다. 이것은 어쨌튼 그 데이터프레임의 상태 정보에 사용될 수 있는 상기 버퍼에서 일 데이터프레임의 끝에서 12개의 더미 바이트들의 홀들을 일으킬 수도 있다.
ECC 클러스터의 행 116-119이 테이블에 저장된 후, 열 서브세트 B에 속하는 ECC 클러스터의 행 104-119에 해당하는 관련 바이트들은 버퍼 메모리에 전송되고, column_nr MOD 19=9를 갖는 열들은, 그룹 C의 열들이라고 생각한다.
ECC 클러스터의 행 120-123이 테이블에 저장되는 경우, 열 서브세트 C에 속하는 ECC 클러스터의 행 108-123에 해당하는 관련 바이트들은 버퍼 메모리에 전송된다.
ECC 클러스터의 행 124-127이 테이블에 저장되는 경우, 열 서브세트 D에 속하는 ECC 클러스터의 행 112-127에 해당하는 관련 바이트들은 버퍼 메모리에 전송된다.
이러한 처리는, ECC 클러스터의 행 200-215에 해당하는 열 서브세트 B의 바이트들이 버퍼 메모리에 전송되는 경우, 행 215까지 반복된다.
이러한 동작은, 신드롬 계산 또는 다른 어떤 이유로 패리티 바이트들의 32행까지 쉽게 확장될 수 있다.
ECC 클러스터의 나머지 바이트들 모두는, 이 점에서 테이블에 있고 버퍼 메모리에 전송될 수 있다: 첫 번째로 그룹 C의 열들에 있는 12바이트들로 이루어진 그룹들, 다음의 그룹 D의 열들에 있는 8바이트들로 이루어진 그룹들, 마지막으로 그룹 A의 열들에 있는 4바이트들로 이루어진 그룹.
이들 마지막 그룹들로부터 column_nr MOD 19=18을 갖는 열들에 위치된 데이터 바이트들은, 홀수 데이터프레임의 EDC 바이트들이다. 이 마지막 그룹들은 SDRAM 버퍼에 전송되거나 이와는 달리 일부의 중간의 메모리에 전송될 수 있다.
BD에 따른 ECC 클러스터가 서브구조로서 M=16의 배수가 아닌 2052바이트들의 32개의 데이터프레임을 포함한다는 것을 주목할 수 있다. 상기 나타낸 방법은, 홀 수 데이터프레임의 바이트 0이 전송된 N 바이트들의 그룹에서 첫 번째이고, 엔트리들과 정밀하게 정렬되어서, 버퍼에 있는 데이터프레임의 시작부에 있는 더미 바이트 또는 전체 바이트가 생성되지 않는다.
이러한 방법의 변형에서, 상기 확장 테이블은, 바이트들을 테이블에 저장하고 바이트들을 그 테이블로부터 불러오는 것의 동기화를 실행하기 위해 4행 대신에 5행을 포함할 수 있다. 이러한 추가의 행은, 입사하는 바이트들이 저장되어야 하는 위치가 아직 자유롭지 않은 경우 일부의 입사하는 바이트들을 저장하는데 사용될 수 있다. 이러한 추가의 행을 사용할 수 있는 방식은, 실제로 행들이 관련되는 한 순환 버퍼로서 사용된다. 이 경우에, 고정된 행들의 그룹들이 더 이상 존재하지 않거나, 달리 말하면 행들은 다양한 행들의 그룹에 동적으로 할당된다: 그 이후의 행들의 그룹은, 항상 현재의 행들의 그룹보다 먼 4(=N/PN) 행들, 그래서 행 0-3의 제1 그룹, 행4-7의 다음 그룹, 행8-11의 다음 그룹, 행12-15의 다음 그룹, 행16-19의 다음 그룹, 행20-2의 다음 그룹, 행3-6의 다음 그룹, 등..으로 이루어진다.
명백히 알 수 있듯이, 이러한 개선된 방법에서 강조하는 아이디어는, 반대의 인터리빙 동작에도 마찬가지로 적용될 수 있다.
또한 주목해야 하는 것은, 청구항을 포함한 본 명세서에서 사용되는 경우의 용어 "포함한다/포함하는"를 상술한 특징, 정수, 단계 또는 구성요소의 존재를 특정하는데 있지만, 하나 이상의 다른 특징, 정수, 단계, 구성요소 또는 그의 그룹의 존재 또는 첨가를 배제하지 않는다는 것이다. 또한, 주목해야 하는 것은, 청구항에 서 하나의 구성요소 앞의 워드 "a" 또는 "an"은, 그 구성요소의 복수의 존재를 배제하지 않는다는 것이다. 더욱이, 임의의 참조부호는 청구범위를 한정하지 않고, 본 발명은 하드웨어와 소프트웨어 모두에 의해 구현될 수 있고, 일부의 "수단"은 동일한 하드웨어의 항목으로 나타내어져도 된다. 또한, 본 발명은, 어떠한 신규한 특징이나 그 특징들의 조합도 포함한다.
본 발명을 다음과 같이 요약할 수 있다. 인터리빙은, 디지털 통신 및 저장 시스템에서의 잡음 억압을 향상시킨다. 공지된 방식에 의하면, 상기 인터리빙/디인터리빙은, 행단위 순으로 R행 x C열의 임시 메모리 테이블에 심볼들을 저장하고, 열단위 순으로 판독하거나, 이와는 반대로 수행하여서, 달성되어, 재배열된 순서를 얻는다. 임시 메모리 테이블의 크기가 감소된 동일한 인터리빙/디인터리빙 동작을 수행하는 인터리빙 및 디인터리빙 방법들 및 장치들을 제안한다.
상기 재배열된 순서에 따른 심볼들의 재배열은, 심볼들을 또 다른 메모리로부터 불러오거나 이 메모리에 저장하는 순서와 결합하여, 메모리 크기가 감소된 테이블을 사용하여 이루어진다. 또한 본 발명은, 인터리빙 및/또는 디인터리빙하는 IC들 및 장치들에 관한 것이다.

Claims (16)

  1. R과 C가 정수인 R x C 심볼들로 이루어지고 그 심볼들이 각각의 위치 인덱스 i에 따라 배열된 하나의 블록(30)에 속하는 심볼들을 디인터리빙하는 방법으로서,
    각 심볼이 새로운 위치 인덱스 j를 갖도록(여기서, j=c x R+r(r=i DIV C), c=i MOD C), 상기 심볼들을 재배열된 순서로 재배열하고,
    상기 심볼들을 버퍼 메모리(22)에 상기 재배열된 순서로 저장하는 디인터리빙 방법에 있어서,
    상기 심볼들의 재배열 및 저장은,
    N이 R보다 작은 정수인 N행 C열의 테이블(31)을 사용하고,
    상기 테이블에 상기 블록의 N x C 심볼들로 이루어진 제1 서브블록(32)을 행단위 순으로 저장하고,
    상기 테이블의 열들로부터 N개의 심볼들로 이루어진 그룹들을 열단위 순으로 불러오고,
    서로 R개의 심볼들의 거리를 갖는 위치에서, 상기 버퍼 메모리(22)에 상기 N개의 심볼들로 이루어진 그룹들을 저장하는 것을 특징으로 하는 디인터리빙 방법.
  2. 제 1 항에 있어서,
    상기 심볼들의 테이블(31)에 행단위 순으로 저장하는 것,
    상기 N개의 심볼들로 이루어진 그룹들을 열단위 순으로 불러오는 것,
    상기 버퍼 메모리(22)에 상기 N개의 심볼들로 이루어진 그룹들을 저장하는 것은, 각 열에 존재하는 N개의 심볼들로 이루어진 그룹들이 이전의 시간에 저장된 N개의 심볼들로 이루어진 그룹들에 대해 차후의 위치에서 상기 버퍼 메모리에 저장될 때마다, 상기 블록(30)의 배출에 필요한 많은 시간만큼 N x C 심볼들로 이루어진 차후의 서브블록(33,34,35)에 적용하는 것을 특징으로 하는 디인터리빙 방법.
  3. 제 1 항에 있어서,
    상기 블록(30)은, 연속적으로 입사하는 심볼들의 스트림의 일부로서 수신되는 것을 특징으로 하는 디인터리빙 방법.
  4. 제 3 항에 있어서,
    N행 C열로 이루어진 추가의 테이블을 사용하고, 양자 택일로, 수신되는 심볼들을 상기 테이블(31)에 저장하면서, 상기 추가의 테이블에 있는 심볼들을 불러와 버퍼 메모리(22)에 저장하고, 또한 상기 테이블에 있는 심볼들을 불러오면서, 수신되는 심볼들을 상기 추가의 테이블에 저장하는 것을 특징으로 하는 디인터리빙 방법.
  5. 제 3 항에 있어서,
    상기 테이블의 N행을 PN 그룹들로 분할하고,
    상기 테이블의 C열을 PC 그룹들로 분할하고,
    심볼들을 행단위 순으로 상기 테이블(31)에 저장하는 단계에서, 그 입사 심볼들을, 순환 버퍼처럼 상기 테이블에 저장하고,
    상기 테이블에 저장된 심볼들을 열단위 순으로 불러오는 단계에서, 상기 저장된 심볼들을, 순환 버퍼처럼 상기 테이블로부터 불러오고,
    행들로 이루어진 하나의 그룹을 채운 후, 대응한 열들로 이루어진 그룹을 판독하고,
    각 열들로부터 불러온 상기 심볼들로 이루어진 PN 그룹들을, 상기 심볼들이 재배열된 순서로 버퍼 메모리(22)에 나타나는 위치에 저장하는 것을 특징으로 하는 디인터리빙 방법.
  6. R과 C가 정수인 R x C 심볼들로 이루어지고 각각의 위치 인덱스 j에 따라 그 심볼들이 배열되고 버퍼 메모리(22)에 저장되는 하나의 블록(30)에 속하는 심볼들을 인터리빙하는 방법으로서,
    상기 버퍼 메모리로부터 상기 심볼들을 불러오는 단계와,
    각 심볼이 새로운 위치 인덱스 i를 갖도록(여기서, i=r x C+c(c=j DIV R), r=j MOD R), 상기 심볼들을 재배열된 순서로 재배열하는 단계를 포함한 인터리빙 방법에 있어서,
    상기 심볼들의 불러오고 재배열하는 단계는,
    N이 R보다 작은 정수인 N행 C열의 테이블(31)을 사용하고,
    서로 R개의 심볼들의 거리를 갖는 위치에서, 상기 버퍼 메모리로부터 N개의 심볼들로 이루어진 C개의 그룹들을 불러오고,
    상기 테이블에 열단위 순으로 상기 N개의 심볼들로 이루어진 C개의 그룹들을 저장하고,
    상기 테이블로부터, 상기 재배열된 순서에 따라 기록된 블록의 N x C 심볼들로 이루어진 제1 서브블록(32)을 갖도록 행단위 순으로 상기 심볼들을 불러오는 것을 특징으로 하는 인터리빙 방법.
  7. 제 6 항에 있어서,
    상기 N개의 심볼들로 이루어진 그룹들을 버퍼 메모리(22)로부터 불러오는 것,
    상기 N개의 심볼들로 이루어진 그룹들을 열단위 순으로 저장하는 것,
    상기 심볼들을 상기 테이블로부터 행단위 순으로 불러오는 것은, 상기 N개의 심볼들로 이루어진 C개의 그룹들을 이전의 시간에 불러온 상기 N개의 심볼들로 이 루어진 C개의 그룹들에 대해 차후의 위치에서 상기 버퍼 메모리로부터 불러올 때마다, 상기 블록(30)을 기록하는데 필요한 많은 시간만큼 N x C 심볼들의 차후의 서브블록(33,34,35)을 형성하도록 적용하는 것을 특징으로 하는 인터리빙 방법.
  8. 제 6 항에 있어서,
    상기 재배열된 순서의 상기 블록(30)은, 연속적으로 출사하는 심볼들의 스트림의 일부로서 송신되는 것을 특징으로 하는 인터리빙 방법.
  9. 제 1 항 또는 제 6 항에 있어서,
    상기 테이블로부터 심볼들을 불러오는 단계 이전에 상기 테이블(31)의 열들 및/또는 행들의 순열을 수행하는 단계를 더 포함한 것을 특징으로 하는 방법.
  10. R과 C가 정수인 R x C 심볼들로 이루어지고 그 심볼들이 각각의 위치 인덱스 i에 따라 배열된 하나의 블록(30)에 속하는 심볼들을 디인터리빙하는 디인터리버로서, 버퍼 메모리(22)에 접속되고, 각 심볼이 새로운 위치 인덱스 j를 갖도록(여기서, j=c x R+r(r=i DIV C), c=i MOD C), 상기 심볼들을 재배열된 순서로 버퍼 메모리(22)에 저장 가능한 디인터리버에 있어서,
    N이 R보다 작은 정수인 N행 C열의 테이블(31)과,
    상기 테이블에 상기 블록의 심볼들을 행단위 순으로 저장하는 프론트 엔드 논리부(40)와,
    N개의 심볼들의 그룹을 열단위 순으로 상기 테이블의 열들로부터 불러오고, 서로 R개의 심볼들의 거리를 갖는 위치에서, 그들을 버퍼 메모리에 저장하는 재배열 논리부(41)를 구비한 것을 특징으로 하는 디인터리버(17').
  11. 제 10 항에 있어서,
    상기 프론트 엔드 논리부(40)는, 상기 블록(30)이 연속적으로 입사하는 심볼들의 스트림의 일부로서 수신하도록 구성된 것을 특징으로 하는 디인터리버(17').
  12. R과 C가 정수인 R x C 심볼들로 이루어지고 각각의 위치 인덱스 j에 따라 그 심볼들이 배열되고 인터리버에 접속된 버퍼 메모리(22)에 저장되는 하나의 블록(30)에 속하는 심볼들을 인터리빙하는 인터리버로서, 각 심볼이 새로운 위치 인덱스 i를 갖도록(여기서, i=c x R+r(r=j DIV C), c=j MOD C), 상기 심볼들을 상기 버퍼 메모리로부터 불러와서 재배열된 순서로 재배열 가능한 인터리버에 있어서,
    N이 R보다 작은 정수인 N행 C열의 테이블(31)과,
    서로 R개의 심볼들의 거리를 갖는 위치에서, N개의 심볼들의 그룹들을 상기 버퍼 메모리로부터 불러와서, 열단위 순의 심볼들로 상기 테이블의 열들에 저장하는 재배열 논리부(41)와,
    상기 테이블로부터 심볼들을 행단위 순으로 불러오는 프론트 엔드 논리부(40)를 구비한 것을 특징으로 하는 인터리버(17).
  13. 제 12 항에 있어서,
    상기 프론트 엔드 논리부(40)는, 상기 블록(30)이 연속적으로 출사하는 심볼들의 스트림의 일부로서 송신하도록 구성된 것을 특징으로 하는 인터리버(17).
  14. 청구항 10에 기재된 디인터리버(17') 및/또는 청구항 12에 기재된 인터리버(17)를 구비한 것을 특징으로 하는 집적회로.
  15. 청구항 10에 기재된 디인터리버(17')를 구비한 수신기(12).
  16. 청구항 12에 기재된 인터리버(17)를 구비한 송신기(11).
KR1020077020918A 2005-02-14 2006-02-03 크기가 축소된 메모리 테이블에 의한 블록 인터리빙 KR20070102753A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05101058 2005-02-14
EP05101058.5 2005-02-14

Publications (1)

Publication Number Publication Date
KR20070102753A true KR20070102753A (ko) 2007-10-19

Family

ID=36659797

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077020918A KR20070102753A (ko) 2005-02-14 2006-02-03 크기가 축소된 메모리 테이블에 의한 블록 인터리빙

Country Status (7)

Country Link
US (1) US7840859B2 (ko)
EP (1) EP1851861A2 (ko)
JP (1) JP4891927B2 (ko)
KR (1) KR20070102753A (ko)
CN (1) CN101120508B (ko)
TW (1) TW200705828A (ko)
WO (1) WO2006085251A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8402201B2 (en) 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US9116823B2 (en) * 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
MX2010001015A (es) * 2007-07-26 2010-03-01 Samsung Electronics Co Ltd Dispositivo para procesar flujos y metodo del mismo.
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8572332B2 (en) 2008-03-28 2013-10-29 Qualcomm Incorporated De-interleaving mechanism involving a multi-banked LLR buffer
CA2766469C (en) * 2009-07-30 2018-10-02 Ibiquity Digital Corporation Systems, methods, and computer readable media for digital radio broadcast receiver memory and power reduction
FR2955001A1 (fr) 2010-01-06 2011-07-08 St Microelectronics Grenoble 2 Procede et dispositif d'entrelacement en ligne et en colonne pour blocs de taille variable
WO2013089749A1 (en) * 2011-12-15 2013-06-20 Intel Corporation Methods to optimize a program loop via vector instructions using a shuffle table and a mask store table
WO2015050553A1 (en) * 2013-10-03 2015-04-09 Capso Vision, Inc. Robust storage and transmission of capsule images
US10201026B1 (en) 2016-06-30 2019-02-05 Acacia Communications, Inc. Forward error correction systems and methods
US10802907B2 (en) * 2018-03-20 2020-10-13 Micron Technology, Inc. Hierarchical buffering scheme to normalize non-volatile media raw bit error rate transients
US10381073B1 (en) 2018-03-20 2019-08-13 Micron Technology, Inc. Converged structure supporting buffering of recent writes and overwrite disturb remediation
US10505676B1 (en) 2018-08-10 2019-12-10 Acacia Communications, Inc. System, method, and apparatus for interleaving data
EP4197104B1 (fr) 2021-09-22 2023-11-22 Airbus Defence and Space SAS Dispositif et procédé d'entrelacement de blocs de données pour un système de communications optiques entre un satellite et une station terrestre
JP2024027962A (ja) * 2022-08-19 2024-03-01 株式会社東芝 インタリーブ回路および通信装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3335409A (en) * 1964-06-25 1967-08-08 Westinghouse Electric Corp Permutation apparatus
US4394642A (en) * 1981-09-21 1983-07-19 Sperry Corporation Apparatus for interleaving and de-interleaving data
US5530934A (en) * 1991-02-02 1996-06-25 Vlsi Technology, Inc. Dynamic memory address line decoding
JP2940196B2 (ja) 1991-02-08 1999-08-25 ソニー株式会社 記録再生装置
US5537420A (en) * 1994-05-04 1996-07-16 General Instrument Corporation Of Delaware Convolutional interleaver with reduced memory requirements and address generator therefor
US5559506A (en) * 1994-05-04 1996-09-24 Motorola, Inc. Method and apparatus for encoding and decoding a digital radio signal
US5946357A (en) * 1997-01-17 1999-08-31 Telefonaktiebolaget L M Ericsson Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal
US6088760A (en) 1997-03-07 2000-07-11 Mitsubishi Semiconductor America, Inc. Addressing system in a multi-port RAM having main and cache memories
TW334533B (en) 1997-06-28 1998-06-21 United Microelectronics Corp The control circuit apparatus for CD-ROM optical disk driver
KR100306282B1 (ko) * 1998-12-10 2001-11-02 윤종용 통신시스템의인터리빙/디인터리빙장치및방법
US6678843B2 (en) * 1999-02-18 2004-01-13 Interuniversitair Microelektronics Centrum (Imec) Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving
EP1039646A1 (en) * 1999-03-05 2000-09-27 Mitsubishi Electric France Interleaver device and method for interleaving a data set
EP1089439A1 (en) * 1999-09-28 2001-04-04 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Interleaver and method for interleaving an input data bit sequence using a coded storing of symbol and additional information
KR100416057B1 (ko) * 2000-08-23 2004-01-31 주식회사 대우일렉트로닉스 고밀도 디브이디에서 단연집 오류정정을 위한 인터리빙 방법
JP3752995B2 (ja) * 2000-09-27 2006-03-08 日本ビクター株式会社 情報記録再生装置
KR100370239B1 (ko) * 2000-10-25 2003-01-29 삼성전자 주식회사 고속 블럭 파이프라인 구조의 리드-솔로몬 디코더에적용하기 위한 메모리 장치와 메모리 액세스 방법 및 그메모리 장치를 구비한 리드-솔로몬 디코더
US7091889B2 (en) * 2002-09-09 2006-08-15 Telefonaktiebolaget Lm Ericsson (Publ) Speed and memory optimized interleaving
WO2005099099A1 (en) * 2004-03-05 2005-10-20 Thomson Licensing Address generation apparatus for turbo interleaver and deinterleaver in w-cdma systems

Also Published As

Publication number Publication date
WO2006085251A2 (en) 2006-08-17
WO2006085251A3 (en) 2006-10-19
US20080270714A1 (en) 2008-10-30
CN101120508A (zh) 2008-02-06
JP4891927B2 (ja) 2012-03-07
US7840859B2 (en) 2010-11-23
JP2008530885A (ja) 2008-08-07
CN101120508B (zh) 2012-10-10
EP1851861A2 (en) 2007-11-07
TW200705828A (en) 2007-02-01

Similar Documents

Publication Publication Date Title
KR20070102753A (ko) 크기가 축소된 메모리 테이블에 의한 블록 인터리빙
KR100915650B1 (ko) 정보 기록 장치, 그 데이터 흐름 제어기, 및 그 데이터흐름의 제어 방법
US5467360A (en) Storage device for reversibly storing digital data on a multitrack storage medium, a decoding device, an information reproducing apparatus for use with a storage medium, and a unitary storage medium for use with such a storage device decoding device and/o
US8127199B2 (en) SDRAM convolutional interleaver with two paths
EP1125294B1 (en) Multi-level error detection and correction technique for data storage recording device
US8495470B2 (en) Efficient rewrite technique for tape drives
US7840870B2 (en) Apparatus for accessing and transferring optical data
RU2261529C2 (ru) Перемежитель и способ перемежения в системе связи
US20100146229A1 (en) Interleaver and de-interleaver for iterative code systems
EP0907257B1 (en) Error correction of interleaved data blocks
US7395488B2 (en) System and method for efficient use of memory device bandwidth
US7523376B2 (en) Apparatus for accessing and transferring optical data
US6651208B1 (en) Method and system for multiple column syndrome generation
KR20040093499A (ko) 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치
US9208083B2 (en) System and method to interleave memory
KR20040014909A (ko) 크로스 인터리브 리드 솔로몬 코드 정정
US6346896B1 (en) Decoding apparatus and method for deinterleaving data
US6981198B2 (en) Dynamic error correction code shortening
US8397135B2 (en) Recording apparatus and recording method
KR100691065B1 (ko) 고밀도 광 기록매체에서의 데이터 에러정정 코드생성방법과 이에 의한 에러 정정 방법, 그리고 그 장치
KR100196927B1 (ko) 디지털 영상신호 기록/재생장치의 오류정정방법
WO2024098687A1 (zh) 交织数据的处理方法、装置、存储介质及电子装置
JP4169937B2 (ja) インターリーブ装置及びデインターリーブ装置
KR20050093170A (ko) 내부 메모리와 외부 메모리를 이용한 디인터리빙 장치 및 방법
EP0658983B1 (en) Encoding or decoding device comprising a paged memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application