KR100485545B1 - 블럭 인터리브 장치, 블럭 디인터리브 장치, 블럭인터리브 방법 및 블럭 디인터리브 방법 - Google Patents

블럭 인터리브 장치, 블럭 디인터리브 장치, 블럭인터리브 방법 및 블럭 디인터리브 방법 Download PDF

Info

Publication number
KR100485545B1
KR100485545B1 KR10-2001-7011676A KR20017011676A KR100485545B1 KR 100485545 B1 KR100485545 B1 KR 100485545B1 KR 20017011676 A KR20017011676 A KR 20017011676A KR 100485545 B1 KR100485545 B1 KR 100485545B1
Authority
KR
South Korea
Prior art keywords
address
block
value
output
comparison
Prior art date
Application number
KR10-2001-7011676A
Other languages
English (en)
Other versions
KR20020006682A (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 KR20020006682A publication Critical patent/KR20020006682A/ko
Application granted granted Critical
Publication of KR100485545B1 publication Critical patent/KR100485545B1/ko

Links

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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1866Error detection or correction; Testing, e.g. of drop-outs by 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/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/2767Interleaver wherein the permutation pattern or a portion thereof is stored
    • 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/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Abstract

1 블럭의 기억 영역을 갖는 기억 장치 1면에서 블럭 인터리브, 블럭 디인터리브를 실행하는 블럭 인터리브 장치, 블럭 디인터리브 장치, 블럭 인터리브 방법 및 블럭 디인터리브 방법에 있어서, 더욱 회로 면적의 삭감 및 저소비 전력화를 실현하기 위해서, 기억 장치(104)의 어드레스를 생성하는 어드레스 생성 장치(103)내의 비교기(123)의 비교 기준값을, 승산기(111)의 출력에 나타나는 L×M-1보다 큰 최소의 값으로 하는 것에 의해, 비교기의 규모를 축소하도록 구성했다.

Description

블럭 인터리브 장치, 블럭 디인터리브 장치, 블럭 인터리브 방법 및 블럭 디인터리브 방법{BLOCK INTERLEAVE DEVICE, BLOCK DEINTERLEAVE DEVICE, BLOCK INTERLEAVE METHOD, AND BLOCK DEINTERLEAVE METHOD}
본 발명은 위성 방송, 지상파 방송, 케이블 방송 등의 디지털 전송 및 하드 디스크 등의 기억 장치의 판독 및 기입에 있어서 필요로 하는 블럭 인터리브(interleave) 장치, 블럭 디인터리브(deinterleave) 장치, 블럭 인터리브 방법 및 블럭 디인터리브 방법에 관한 것이다.
블럭 인터리브는 버스트 오류에 대한 대책으로서 유효한 것이다.
이것을 위성 방송을, 예로 들어 설명하면, 지상의 방송국으로부터의 전파는 위성으로 송출되고, 위성에서 중계되어, 가정에 설치한 위성 방송 수신기에 의해서 수신된다.
여기서, 방송국으로부터 위성을 거쳐서 가정을 향해 송신된 전파는 전송 경로중에서 벼락이나 비 등이 있으면 방해를 받고, 그 방해를 받고 있는 동안에 데이터에 오류가 발생하게 된다. 이것이 버스트 에러라 불리우는 것이다.
디지털 전송에서는 미리 에러 정정용의 정보가 본래의 데이터에 부가되어 있기 때문에, 각 세그먼트에 있어서 일정 범위내의 비트의 오류이면 이것을 정정하는 것이 가능하지만, 버스트 오류와 같은 연속된 오류는 이것을 정정할 수 없다.
그래서, 미리 전송해야 할 데이터를 시간적으로 분산시켜 두는 것에 의해 (그 방법이 블럭 인터리브임), 전송 과정에서 버스트 오류가 발생했다고 하더라도, 수신측에서 미리 분산되어 있던 데이터의 시간적 위치를 복원할 때에(그 방법이 블럭 디인터리브임) 버스트 오류가 분산되고, 개개의 데이터 블럭에서는 오류를 에러 정정 가능한 범위의 비트 수에 포함되도록 할 수 있다.
이러한 블럭 인터리브나 블럭 디인터리브를 실행하려고 하면, 본래 1 블럭(L×M 데이터)의 기억 영역을 갖는 기억 장치 2면을 이용하여 이들 기억 장치에 대해 기입과 판독을 교대로 반복하는 처리가 필요하게 되지만, 블럭 인터리브나 블럭 디인터리브를 소회로 규모이고 저소비 전력으로 실현할 수 있는 것의 하나로서, 종래, 예를 들면 일본 특허 공표 평성 제 8-511393 호의 공보에 개시된 것이 있었다.
도 13은 이 종래의 블럭 인터리브의 동작을 모식적으로 나타내는 것으로서, 여기서는 설명을 간단하게 하기 위해 4행 5열의 데이터에 대해, 블럭 인터리브를 실행하는 경우를, 예로 들어 설명한다.
이러한 방식은 블럭 인터리브 장치의 기억 장치의 어드레스가 도 13의 (a)와 같이 할당되어 있는 것으로 하면, 우선, 어드레스의 증가분 REG를 1로 하고, 0 →1 →2 → …… →19의 순으로, 즉 그 어드레스가 1씩 증가하는 순서에 따라서 데이터를 기입해 간다. 다음에, 도 13의 (b)에 도시되어 있는 바와 같이, 어드레스가 5씩 증가하는 순서에 따라서 데이터를 판독한다. 즉, REG에 5를 곱하고, 도 13의 (a)에 있어서의 어드레스 0을 초기값으로 하여 1 입력 데이터마다 5 증가하는 어드레스를 순차 생성하지만, 그 때, 어드레스가 19(= 4×5-1)를 초과하면 이 19에 의한 잉여를 어드레스로서 사용한다. 그리고, 이 생성 규칙에 따라서 생성한 어드레스에 따라, 우선, 도 13의 (a)에 있어서 이미 기입되어 있는 데이터를 도 13의 (b)에 있어서 이 생성한 어드레스의 순서로 판독하고, 그 판독이 종료한 후에 도 13의 (b)에 있어서 판독을 실행한 것과 동일한 순서로 동일한 어드레스에 대해 데이터의 기입을 실행한다.
다음에, 도 13의 (c)에 도시되어 있는 바와 같이 이 REG에 대해 5를 곱하지만, 그 값 25가 19를 초과하면 이 19에 의한 잉여를 REG의 값으로서 사용한다.
그리고, 도 13의 (a)에 도시되어 있는 어드레스의 배치를 기준으로 하고 그 어드레스 0을 초기값으로 하여, 도 13의 (c)에 있어서 1입력 데이터마다 6(= 25-19) 증가하는 어드레스를 순차 생성하고, 어드레스가 19(= 4×5-1)를 초과하면, 이 19에 의한 잉여를 어드레스로서 사용하는 것에 의해 판독을 실행하고, 도 13의 (c)에 있어서 그 판독이 종료한 후에 판독을 살행한 것과 동일한 순서로 동일한 어드레스에 대해 데이터의 기입을 실행한다.
이하, 마찬가지의 처리를 반복함으로써, 순차적으로 상이한 어드레스의 순서로 판독을 실행하고, 판독을 실행한 것과 동일한 순서로 동일한 어드레스에 대해 기입을 실행하면, 이 예에서는 도 13의 (j)의 시점에 있어서 도 13의 (a)와 마찬가지의 어드레스의 순서로 되돌아간다.
이러한 순서를 반복하는 것에 의해, 도 14에 도시하는 바와 같이 1 블럭(L×M 데이터)의 기억 영역을 갖는 RAM(202)을 이용하여 블럭 인터리브를 실행하는 것이 가능하다. 이것은 RAM 제어 장치(200)에 의한 기입 판독 제어 및 어드레스 생성 장치(201)에 의해 생성하는 어드레스를 상술한 바와 같이 고안하는 것에 의해 실현하고 있는 것이다.
이 종래예의 블럭 인터리브 장치에 있어서의 어드레스 생성 규칙은 이하와 같다.
즉, n번째의 어드레스를 Ab(n), 기억 장치의 행의 수를 L, 열의 수를 M, b를 0 이상의 정수, x를 0 이상 b 이하의 임의의 정수라고 하면,
또한,
단, Ab(0)= 0으로 한다. 또한, **는 누승을 나타낸다.
또한, 이와 같이 해서 블럭 인터리브를 실행한 데이터에 대해 블럭 디인터리브를 실행하기 위해서는, 블럭 디인터리브 장치의 기억 장치의 어드레스가 도 13의 (k)와 같이 할당되어 있는 것으로 하면, 우선, REG를 1로 하고, 0 →1 →2 → …… →19의 순으로, 즉 그 어드레스가 1씩 증가하는 순서에 따라서 데이터를 기입해 간다. 다음에, 도 13의 (l)에 도시되어 있는 바와 같이, 어드레스가 4씩 증가하는 순서에 따라서 데이터를 판독한다. 즉, REG에 4를 곱하고, 도 13의 (k)에 있어서의 어드레스 0을 초기값으로 하여 1입력 데이터마다 4 증가하는 어드레스를 순차 생성하지만, 그 때, 어드레스가 19(= 4×5 - 1)를 초과하면 이 19에 의한 잉여를 어드레스로서 사용한다. 그리고, 이 생성 규칙에 따라서 생성한 어드레스에 따라, 우선, 도 13의 (k)에서 이미 기입되어 있는 데이터를 도 13의 (l)에서 이 생성한 어드레스의 순서로 판독하고, 그 판독이 종료한 후에, 도 13의 (l)에서 판독을 실행한 것과 동일한 순서로 동일한 어드레스에 대해 데이터의 기입을 실행한다.
다음에, 도 13의 (m)에 도시되어 있는 바와 같이, 이 REG에 대해 4를 곱하지만, 그 값이 19를 초과하면 이 19에 의한 잉여를 REG의 값으로서 사용한다. 이 경우 REG의 값 16은 19 이하이므로, 이 값 16을 그대로 REG의 값으로서 사용한다.
그리고, 도 13의 (k)에 도시되어 있는 어드레스의 배치를 기준으로 하고, 그 어드레스 0을 초기값으로 하여 1입력 데이터마다 16 증가하는 어드레스를 순차 생성하고, 어드레스가 19(= 4×5 - 1)를 초과하면 이 19에 의한 잉여를 어드레스로서 사용하는 것에 의해 판독을 실행하고, 도 13의 (m)에 있어서 판독이 종료한 후에 판독을 실행한 것과 동일한 순서로 동일한 어드레스에 대해 데이터의 기입을 실행한다.
이하, 마찬가지의 처리를 반복하는 것에 의해, 순차적으로 상이한 어드레스의 순서로 판독을 실행하고, 판독을 실행한 것과 동일한 순서로 동일한 어드레스에 대해 기입을 실행해 가면, 이 예에서는 도 13의 (t)의 시점에서 도 13의 (k)와 마찬가지의 어드레스의 순서로 되돌아간다.
이러한 순서를 반복하는 것에 의해, 도 14에 도시하는 바와 같이 1 블럭의 기억 영역을 갖는 RAM(202)을 이용하여 블럭 디인터리브를 실행하는 것이 가능하다. 이것은 RAM 제어 장치(200)에 의한 기입 판독 제어 및 어드레스 생성 장치(201)에 의해 생성하는 어드레스를 상술한 바와 같이 고안하는 것에 의해 실현하고 있는 것이다.
이 종래 예의 블럭 디인터리브 장치에 있어서의 어드레스 생성 규칙은 이하와 같다.
또한,
단, Ab(0) = 0으로 한다.
이 수학식 2는 수학식 1의 M을 L로 변경한 것이다.
종래의 블럭 인터리브 장치 및 블럭 디인터리브 장치는 이상과 같이 구성되어 있고, 상술한 바와 같이 1 블럭의 기억 영역을 갖는 기억 장치 1면만을 이용하여 블럭 인터리브 및 블럭 디인터리브를 실행할 수 있어, 장치의 면적 저감화, 및 저소비 전력화를 실현할 수 있는 것이다.
그러나, 이러한 블럭 인터리브 장치나 블럭 디인터리브 장치는 비용이나 소비 전력의 관점에서, 보다 작은 면적이고 저소비 전력인 것이 바람직하여, 회로 면적의 한층 더한 면적 저감화나 한층 더한 저소비 전력화의 실현이 요청되었다.
본 발명은 기억 장치의 제어 장치를 최적화하는 것에 의해, 회로 면적의 한층 더한 면적 저감화나 한층 더한 저소비 전력화를 실현할 수 있는 블럭 인터리브 장치, 블럭 디인터리브 장치, 블럭 인터리브 방법 및 블럭 디인터리브 방법을 제공하는 것을 목적으로 한다.
발명의 개시
본원의 청구 범위 제 1 항의 발명에 따른 블럭 인터리브 장치는 (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단과, 해당 기억 수단에 대해 블럭 인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단과, 해당 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여, 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환하여 실행하도록 동작 제어를 실행하는 제어 수단을 구비하고, 상기 어드레스 생성 수단은 블럭 번호 b의 블럭이 입력될 때마다, α(α는 2 이상의 정수)와 M의 (b-x)승(x는 0 이상 b 이하의 정수, b는 0 이상의 정수)과의 승산 결과를 생성하는 승산 수단과, 상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 승산 결과의 오버플로우를 억제하는 것에 의해, 상기 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG를 출력하는 제 1 오버플로우 처리 수단과, 블럭 번호 b의 블럭이 입력될 때마다, 상기 제 1 오버플로우 처리 수단에 의해 출력되는 어드레스의 증가분값 REG에 대해, 상기 블럭 번호 b의 n-1번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n-1)를 순차적으로 가산하는 것에 의해, 상기 블럭 번호 b의 블럭내의 n번째 어드레스 Ab(n)를 순차적으로 생성하는 가산 수단과, 상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 가산 결과의 오버플로우를 억제하는 것에 의해, 상기 기억 수단에 대해 실제로 공급하는 어드레스를 출력하는 제 2 오버플로우 처리 수단을 갖고, 상기 제 1 비교 수단은 상기 승산 결과와 상기 비교 기준값 L×M-1을 비교할 때에, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하도록 한 것이다.
본원의 청구 범위 제 1 항의 발명에 따른 블럭 인터리브 장치는 기억 수단에 대한 기입 판독을 실행할 때에, 상술한 바와 같은 어드레스 생성을 실행하는 것에 의해, 1 블럭의 기억 영역을 갖는 기억 수단 1면에서의 블럭 인터리브 동작을 가능하게 하고 또한 어드레스 생성 수단의 회로 규모를 축소할 수 있게 한다.
본원의 청구 범위 제 2 항의 발명에 따른 블럭 인터리브 장치는 (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단과, 해당 기억 수단에 대해 블럭 인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단과, 해당 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여, 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 제어 수단을 구비하고, 상기 어드레스 생성 수단은 블럭 번호 b(b는 1 이상의 정수)의 블럭에 대한 어드레스의 증가분값 REG(b)을 기억하는 어드레스 증가분값 기억 수단과, 블럭 번호 0의 블럭에 대한 어드레스의 증가분값 REG(0)로서 α(α는 2 이상의 정수)를 상기 어드레스 증가분값 기억 수단에 초기 설정하는 제 1 초기값 설정 수단과, 상기 어드레스 증가분값 기억 수단의 기억 출력값 REG(c)(c= b-1)에 대해 M을 승산하는 승산 수단과, 상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산하는 것에 의해, α×M**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 오버플로우를 억제하고 또한, 상기 연산 결과를 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG(b)로서 상기 어드레스 증가분값 기억 수단으로 출력하는 제 1 오버플로우 처리 수단과, 블럭 번호 b(b는 1 이상의 정수)의 블럭중의 n번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n)를 기억하고 상기 기억 수단의 어드레스 입력으로 출력하는 어드레스 기억 수단과, 블럭 번호 b의 블럭에 대한 0번째의 어드레스 Ab(0)를 상기 어드레스 기억 수단에 초기 설정하는 제 2 초기값 설정 수단과, 상기 어드레스 기억 수단의 기억 출력값 Ab(p)에 대해(p= n-1) 상기 어드레스 증가분값 기억 수단으로부터의 어드레스의 증가분값 REG(b)를 가산하는 가산 수단과, 상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산하는 것에 의해, (Ab(n-1)+α×M**(b-x)) mod (L×M-1)에 상당하는 연산을 실행하여 상기 가산 결과의 오버플로우를 억제하고, 또한 상기 연산 결과를 블럭 번호 b의 블럭에 대한 제 n 번째의 어드레스 Ab(n)로서 상기 어드레스 기억 수단으로 출력하는 제 2 오버플로우 처리 수단을 갖는 것이며, 상기 제 1 비교 수단은 상기 승산 결과와 상기 비교 기준값 L×M-1을 비교할 때에, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하도록 한 것이다.
본원의 청구 범위 제 2 항의 발명에 따른 블럭 인터리브 장치는 기억 수단에 대한 기입 판독을 실행할 때에, 상술한 바와 같은 어드레스 생성을 실행하는 것에 의해, 1 블럭의 기억 영역을 갖는 기억 수단 1면에서의 블럭 인터리브 동작을 가능하게 하고 또한 어드레스 생성 수단의 회로 규모를 축소할 수 있게 한다.
본원의 청구 범위 제 3 항의 발명에 따른 블럭 인터리브 장치는 청구 범위 제 2 항에 기재된 블럭 인터리브 장치에 있어서, 상기 제 1 초기값 설정 수단은, 상기 α를 발생하는 제 1 정수 발생 수단과, 리세트 신호의 투입시에 상기 제 1 정수 발생 수단으로부터의 상기 α를 선택하여 상기 어드레스 증가분값 기억 수단으로 출력하는 제 1 선택기를 갖는 것이며, 상기 제 1 오버플로우 처리 수단은 상기 승산 수단의 출력과 상기 어드레스 증가분값 기억 수단의 출력을 입력으로 하여, 상기 각 블럭의 선두에 있어서 해당 승산 수단의 출력을 선택하고, 그 이외의 기간은 상기 어드레스 증가분값 기억 수단의 출력을 선택하는 제 2 선택기와, 상기 제 2 선택기의 출력과 상기 비교 기준값 A를 비교하는 제 1 비교 수단과, 상기 제 2 선택기의 출력에서 상기 L×M-1을 감산하는 제 1 감산 수단과, 상기 제 2 선택기의 출력과 상기 제 1 감산 수단의 출력을 입력으로 하여, 상기 제 2 선택기의 출력이 상기 비교 기준값 이상인 경우에 상기 제 1 감산 수단의 출력을 선택하고, 상기 제 2 선택기의 출력이 상기 비교 기준값 미만인 경우에 해당 제 2 선택기의 출력을 선택하는 제 3 선택기를 갖고, 리세트 신호의 비투입 기간에 상기 제 1 선택기를 거쳐서 상기 제 3 선택기의 출력을 상기 어드레스 증가분값 기억 수단으로 출력하도록 한 것이다.
본원의 청구 범위 제 3 항의 발명에 따른 블럭 인터리브 장치는 상술한 바와 같은 제 1 초기값 설정 수단, 제 1 오버플로우 처리 수단의 구성으로 하는 것에 의해, 잉여를 구하는 것이 가능한 시점에서 즉시 잉여를 구하고 나서 M의 승산을 행함으로써 등가적으로 M의 값을 누승하여 잉여를 구하도록 하고 있고, 이 때문에, 승산 및 잉여의 산출에 시간을 필요로 하지 않아 저속의 연산으로도 어드레스 생성을 가능하게 한다.
본원의 청구 범위 제 4 항의 발명에 따른 블럭 인터리브 장치는 청구 범위 제 2 항에 기재된 블럭 인터리브 장치에 있어서, 상기 제 1 비교 수단은 상기 비교 기준값으로서, 상기 L×M-1을 초과하는 최소값 A 대신에, L×M-1<B<A를 만족시키고 또한 해당 비교 수단을 구성하는 논리 게이트 수가 최소로 되도록 선정한 값 B를 사용하도록 한 것이다.
본원의 청구 범위 제 4 항의 발명에 따른 블럭 인터리브 장치는 상술한 바와 같은 비교 기준값을 사용하는 것에 의해 제 1 비교 수단의 회로 면적을 더욱 축소할 수 있게 하고, 이 때문에 어드레스 생성 수단의 회로 규모를 더욱 축소할 수 있게 한다.
본원의 청구 범위 제 5 항의 발명에 따른 블럭 인터리브 장치는 청구 범위 제 2 항에 기재된 블럭 인터리브 장치에 있어서, 상기 제 2 초기값 설정 수단은, 값 0을 발생하는 제 2 정수 발생 수단과, 리세트 신호의 투입시에 상기 제 2 정수 발생 수단으로부터의 값 0을 선택하여 상기 어드레스 기억 수단으로 출력하는 제 4 선택기를 갖는 것이고, 상기 제 2 오버플로우 처리 수단은, 상기 가산 수단의 출력과 비교 기준값 L×M-1을 비교하는 제 2 비교 수단과, 상기 가산 수단의 출력에서 상기 비교 기준값 L×M-1을 감산하는 제 2 감산 수단과, 상기 가산 수단의 출력과 상기 제 2 감산 수단의 출력을 입력으로 하여, 상기 가산 수단의 출력이 상기 비교 기준값 이상인 경우에 상기 제 2 감산 수단의 출력을 선택하고, 상기 가산 수단의 출력이 상기 비교 기준값 미만인 경우에 해당 가산 수단의 출력을 선택하는 제 5 선택기를 갖고, 리세트 신호의 비투입 기간에 상기 제 4 선택기를 거쳐서 상기 제 5 선택기의 출력을 상기 어드레스 기억 수단으로 출력하도록 한 것이다.
본원의 청구 범위 제 5 항의 발명에 따른 블럭 인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 제 1 오버플로우 처리 수단에 비해 제 2 오버플로우 처리 수단의 구성이 간략화되고, 이 때문에 어드레스 생성 수단의 회로 규모를 더욱 축소할 수 있게 한다.
본원의 청구 범위 제 6 항의 발명에 따른 블럭 인터리브 장치는 청구 범위 제 2 항에 기재된 블럭 인터리브 장치에 있어서, 상기 α와 L×M-1 사이에 공약수가 존재하지 않도록, 이들의 값을 설정하도록 한 것이다.
본원의 청구 범위 제 6 항의 발명에 따른 블럭 인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 어드레스의 생성 규칙이 파괴되는 것을 방지하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 7 항의 발명에 따른 블럭 인터리브 장치는 청구 범위 제 2 항에 기재된 블럭 인터리브 장치에 있어서, 상기 α와 M의 (-x)승이 동일하지 않도록, 이들의 값을 설정하도록 한 것이다.
본원의 청구 범위 제 7 항의 발명에 따른 블럭 인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 최초의 기입 시점에 있어서 어드레스를 연속해서 기입하는 것을 방지하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 8 항의 발명에 따른 블럭 인터리브 장치는 청구 범위 제 2 항에 기재된 블럭 인터리브 장치에 있어서, 상기 α, L, M의 값을 각각 α=20, L=8, M=203으로 한 것이다.
본원의 청구 범위 제 8 항의 발명에 따른 블럭 인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 어드레스 생성 수단을 구성하는 제 1 비교 수단의 면적을 저감하여 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 9 항의 발명에 따른 블럭 인터리브 장치는 청구 범위 제 2 항에 기재된 블럭 인터리브 장치에 있어서, 상기 (L, M)의 값을 L=96×X(X=1,2,4), M=2,…, 13 또는 M=2,…, 13, L= 96×X(X=1,2,4)의 72가지중의 어느 하나의 값으로 한 것이다.
본원의 청구 범위 제 9 항의 발명에 따른 블럭 인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 어드레스 생성 수단을 구성하는 제 1 비교 수단의 면적을 저감하여 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 10 항의 발명에 따른 블럭 디인터리브 장치는 (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단과, 해당 기억 수단에 대해 블럭 디인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단과, 해당 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여, 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 제어 수단을 구비하고, 상기 어드레스 생성 수단은 블럭 번호 b의 블럭이 입력될 때마다, α(α는 2 이상의 정수)와 L의 (b-x)승(x는 0 이상 b 이하의 정수, b는 0 이상의 정수)과의 승산 결과를 생성하는 승산 수단과, 상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 승산 결과의 오버플로우를 억제하는 것에 의해, 상기 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG를 출력하는 제 1 오버플로우 처리 수단과, 블럭 번호 b의 블럭이 입력될 때마다, 상기 제 1 오버플로우 처리 수단에 의해 출력되는 어드레스의 증가분값 REG에 대해, 상기 블럭 번호 b의 n-1번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n-1)를 순차적으로 가산하는 것에 의해, 상기 블럭 번호 b의 블럭내의 n번째 어드레스 Ab(n)를 순차적으로 생성하는 가산 수단과, 상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 가산 결과의 오버플로우를 억제하는 것에 의해, 상기 기억 수단에 대해 실제로 공급하는 어드레스를 출력하는 제 2 오버플로우 처리 수단을 갖고, 상기 제 1 비교 수단은 상기 승산 결과와 상기 비교 기준값 L×M-1을 비교할 때에, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하도록 한 것이다.
본원의 청구 범위 제 10 항의 발명에 따른 블럭 디인터리브 장치는 기억 수단에 대한 기입 판독을 실행할 때에, 상술한 바와 같은 어드레스 생성을 실행하는 것에 의해, 1 블럭의 기억 영역을 갖는 기억 수단 1면에서의 블럭 디인터리브 동작을 가능하게 하고 또한 어드레스 생성 수단의 회로 규모를 축소할 수 있게 한다.
본원의 청구 범위 제 11 항의 발명에 따른 블럭 디인터리브 장치는 (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단과, 해당 기억 수단에 대해 블럭 디인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단과, 해당 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여, 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 제어 수단을 구비하고, 상기 어드레스 생성 수단은 블럭 번호 b(b는 1 이상의 정수)의 블럭에 대한 어드레스의 증가분값 REG(b)을 기억하는 어드레스 증가분값 기억 수단과, 블럭 번호 0의 블럭에 대한 어드레스의 증가분값 REG(0)로서 α(α는 2 이상의 정수)를 상기 어드레스 증가분값 기억 수단에 초기 설정하는 제 1 초기값 설정 수단과, 상기 어드레스 증가분값 기억 수단의 기억 출력값 REG(c)(c= b-1)에 대해 L을 승산하는 승산 수단과, 상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산하는 것에 의해, α×L**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 오버플로우를 억제하고, 또한 상기 연산 결과를 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG(b)로서 상기 어드레스 증가분값 기억 수단으로 출력하는 제 1 오버플로우 처리 수단과, 블럭 번호 b(b는 1 이상의 정수)의 블럭중의 n번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n)를 기억하여 상기 기억 수단의 어드레스 입력으로 출력하는 어드레스 기억 수단과, 블럭 번호 b의 블럭에 대한 0번째의 어드레스 Ab(0)를 상기 어드레스 기억 수단에 초기 설정하는 제 2 초기값 설정 수단과, 상기 어드레스 기억 수단의 기억 출력값 Ab(p)에 대해(p= n-1) 상기 어드레스 증가분값 기억 수단으로부터의 어드레스의 증가분값 REG(b)를 가산하는 가산 수단과, 상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산하는 것에 의해 (Ab(n-1)+α×L**(b-x)) mod (L×M-1)에 상당하는 연산을 실행하여 상기 가산 결과의 오버플로우를 억제하고, 또한 상기 연산 결과를 블럭 번호 b의 블럭에 대한 제 n 번째의 어드레스 Ab(n)로서 상기 어드레스 기억 수단으로 출력하는 제 2 오버플로우 처리 수단을 갖는 것이고, 상기 제 1 비교 수단은 상기 승산 결과와 상기 비교 기준값 L×M-1을 비교할 때에, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하도록 한 것이다.
본원의 청구 범위 제 11 항의 발명에 따른 블럭 디인터리브 장치는 기억 수단에 대한 기입 판독을 실행할 때에, 상술한 바와 같은 어드레스 생성을 실행하는 것에 의해, 1 블럭의 기억 영역을 갖는 기억 수단 1면에서의 블럭 디인터리브 동작을 가능하게 하고 또한 어드레스 생성 수단의 회로 규모를 축소할 수 있게 한다.
본원의 청구 범위 제 12 항의 발명에 따른 블럭 디인터리브 장치는 청구 범위 제 11 항에 기재된 블럭 디인터리브 장치에 있어서, 상기 제 1 초기값 설정 수단은, 상기 α를 발생하는 제 1 정수 발생 수단과, 리세트 신호의 투입시에 상기 제 1 정수 발생 수단으로부터의 상기 α를 선택하여 상기 어드레스 증가분값 기억 수단으로 출력하는 제 1 선택기를 갖는 것이고, 상기 제 1 오버플로우 처리 수단은, 상기 승산 수단의 출력과 상기 어드레스 증가분값 기억 수단의 출력을 입력으로 하여, 상기 각 블럭의 선두에 있어서 해당 승산 수단의 출력을 선택하고, 그 이외의 기간은 상기 어드레스 증가분값 기억 수단의 출력을 선택하는 제 2 선택기와, 상기 제 2 선택기의 출력과 상기 비교 기준값 A를 비교하는 제 1 비교 수단과, 상기 제 2 선택기의 출력에서 상기 L×M-1을 감산하는 제 1 감산 수단과, 상기 제 2 선택기의 출력과 상기 제 1 감산 수단의 출력을 입력으로 하여, 상기 제 2 선택기의 출력이 상기 비교 기준값 이상인 경우에 상기 제 1 감산 수단의 출력을 선택하고, 상기 제 2 선택기의 출력이 상기 비교 기준값 미만인 경우에 해당 제 2 선택기의 출력을 선택하는 제 3 선택기를 갖고, 리세트 신호의 비투입 기간에 상기 제 1 선택기를 거쳐서 상기 제 3 선택기의 출력을 상기 어드레스 증가분값 기억 수단으로 출력하도록 한 것이다.
본원의 청구 범위 제 12 항의 발명에 따른 블럭 디인터리브 장치는 상술한 바와 같은 제 1 초기값 설정 수단, 제 1 오버플로우 처리 수단의 구성으로 하는 것에 의해, 잉여를 구하는 것이 가능한 시점에서 즉시 잉여를 구하고 나서 M의 승산을 행함으로써 등가적으로 M의 값을 누승하여 잉여를 구하도록 하고 있고, 이 때문에, 승산 및 잉여의 산출에 시간을 필요로 하지 않아 저속의 연산으로도 어드레스 생성을 가능하게 한다.
본원의 청구 범위 제 13 항의 발명에 따른 블럭 디인터리브 장치는 청구 범위 제 11 항에 기재된 블럭 디인터리브 장치에 있어서, 상기 제 1 비교 수단은 상기 비교 기준값으로서, 상기 L×M-1을 초과하는 최소값 A 대신에, L×M-1<B<A를 만족시키고 또한 해당 비교 수단을 구성하는 논리 게이트 수가 최소로 되도록 선정한 값 B를 사용하도록 한 것이다.
본원의 청구 범위 제 13 항의 발명에 따른 블럭 디인터리브 장치는 상술한 바와 같은 비교 기준값을 사용하는 것에 의해 제 1 비교 수단의 회로 면적을 보다 축소할 수 있게 하고, 이 때문에 어드레스 생성 수단의 회로 규모를 보다 축소할 수 있게 한다.
본원의 청구 범위 제 14 항의 발명에 따른 블럭 디인터리브 장치는 청구 범위 제 11 항에 기재된 블럭 디인터리브 장치에 있어서, 상기 제 2 초기값 설정 수단은, 값 0을 발생하는 제 2 정수 발생 수단과, 리세트 신호의 투입시에 상기 제 2 정수 발생 수단으로부터의 값 0을 선택하여 상기 어드레스 기억 수단으로 출력하는 제 4 선택기를 갖는 것이고, 상기 제 2 오버플로우 처리 수단은, 상기 가산 수단의 출력과 비교 기준값 L×M-1을 비교하는 제 2 비교 수단과, 상기 가산 수단의 출력에서 상기 비교 기준값 L×M-1을 감산하는 제 2 감산 수단과, 상기 가산 수단의 출력과 상기 제 2 감산 수단의 출력을 입력으로 하여, 상기 가산 수단의 출력이 상기 비교 기준값 이상인 경우에 상기 제 2 감산 수단의 출력을 선택하고, 상기 가산 수단의 출력이 상기 비교 기준값 미만인 경우에 해당 가산 수단의 출력을 선택하는 제 5 선택기를 갖고, 리세트 신호의 비투입 기간에 상기 제 4 선택기를 거쳐서 상기 제 5 선택기의 출력을 상기 어드레스 기억 수단으로 출력하도록 한 것이다.
본원의 청구 범위 제 14 항의 발명에 따른 블럭 디인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 제 1 오버플로우 처리 수단에 비해 제 2 오버플로우 처리 수단의 구성이 간략화되고, 이 때문에 어드레스 생성 수단의 회로 규모를 보다 축소할 수 있게 한다.
본원의 청구 범위 제 15 항의 발명에 따른 블럭 디인터리브 장치는 청구 범위 제 11 항에 기재된 블럭 디인터리브 장치에 있어서, 상기 α와 L×M-1 사이에 공약수가 존재하지 않도록, 이들의 값을 설정하도록 한 것이다.
본원의 청구 범위 제 15 항의 발명에 따른 블럭 디인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 어드레스의 생성 규칙이 파괴되는 것을 방지하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 디인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 16 항의 발명에 따른 블럭 디인터리브 장치는 청구 범위 제 11 항에 기재된 블럭 디인터리브 장치에 있어서, 상기 α와 L의 (-x)승이 동일하지 않도록, 이들의 값을 설정하도록 한 것이다.
본원의 청구 범위 제 16 항의 발명에 따른 블럭 디인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 최초의 기입의 시점에 있어서 어드레스를 연속해서 기입하는 것을 방지하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 디인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 17 항의 발명에 따른 블럭 디인터리브 장치는 청구 범위 제 11 항에 기재된 블럭 디인터리브 장치에 있어서, 상기 α, L, M의 값을 각각 α=20, L=8, M=203으로 하도록 한 것이다.
본원의 청구 범위 제 17 항의 발명에 따른 블럭 디인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 어드레스 생성 수단을 구성하는 제 1 비교 수단의 면적을 저감하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 디인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 18 항의 발명에 따른 블럭 디인터리브 장치는 청구 범위 제 10 항에 기재된 블럭 디인터리브 장치에 있어서, 상기 (L, M)의 값을 L=96×X(X=1,2,4), M=2,…, 13 또는 M=2,…, 13, L= 96×X(X=1,2,4)의 72가지중의 어느 하나의 값으로 한 것이다.
본원의 청구 범위 제 18 항의 발명에 따른 블럭 디인터리브 장치는 상술한 바와 같이 구성한 것에 의해, 어드레스 생성 수단을 구성하는 제 1 비교 수단의 면적을 저감하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 디인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 19 항의 발명에 따른 블럭 인터리브 방법은 (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단에 대해, 블럭 인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하고, 해당 생성된 어드레스를 이용하여 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 것에 의해 데이터의 블럭 인터리브를 실행하는 방법에 있어서, 블럭 번호 0의 블럭에 대해 어드레스의 증가분값 REG로서 α(α는 2 이상의 정수)를 부여하고, 이후 블럭 번호가 1증가할 때마다 증가분값 REG에 M을 승산한 것을 해당 블럭의 어드레스의 증가분값 REG로 할 때, 어드레스의 증가분값 REG가 L×M-1을 초과한 경우, 해당 증가분값 REG 대신에 L×M-1에 의한 잉여를 해당 증가분값으로 해서 상기한 처리를 반복하는 것에 의해, α×M**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 각 블럭마다의 어드레스의 증가분값을 구하고, 각 블럭에 있어서 어드레스의 초기값으로서 Ab(0)를 설정하고, 이후 해당 블럭의 어드레스의 증가분값 REG를 순차적으로 가산하는 것에 의해 해당 블럭내의 각 어드레스 Ab(1) 내지 Ab(n)(n은 1 이상 L×M-1 이하의 정수)를 생성할 때, 어드레스가 L×M-1을 초과한 경우에 해당 어드레스 대신에 L×M-1에 의한 잉여를 해당 어드레스로 하여 상기한 처리를 반복하고, 각 블럭내의 어드레스를 생성하는 것에 의해 상기 어드레스 생성을 실행하고, 또한, 상기 어드레스의 증가분값을 계산할 때의 잉여를 구할지 여부의 판정을, 상기 어드레스의 증가분값과 상기 L×M-1과의 대소 비교로 판정할 때, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 제 1 비교 수단을 사용해서 실행하도록 한 것이다.
본원의 청구 범위 제 19 항의 발명에 따른 블럭 인터리브 방법은 기억 수단에 대한 기입 판독을 실행할 때에, 상술한 바와 같은 어드레스 생성을 실행하는 것에 의해, 1 블럭의 기억 영역을 갖는 기억 수단 1면에서의 블럭 인터리브 동작을 가능하게 하고 또한 어드레스 생성 수단의 회로 규모를 축소할 수 있게 한다.
본원의 청구 범위 제 20 항의 발명에 따른 블럭 인터리브 방법은 청구 범위 제 19 항에 기재된 블럭 인터리브 방법에 있어서, 상기 제 1 비교 수단은 상기 비교 기준값으로서, 상기 L×M-1을 초과하는 최소값 A 대신에, L×M-1<B<A를 만족시키고 또한 해당 비교 수단을 구성하는 논리 게이트 수가 최소로 되도록 선정한 값 B를 사용하도록 한 것이다.
본원의 청구 범위 제 20 항의 발명에 따른 블럭 인터리브 방법은 상술한 바와 같은 비교 기준값을 사용하는 것에 의해, 제 1 비교 수단의 회로 면적을 보다 축소할 수 있게 하고, 이 때문에 어드레스 생성 수단의 회로 규모를 보다 축소할 수 있게 한다.
본원의 청구 범위 제 21 항의 발명에 따른 블럭 인터리브 방법은 청구 범위 제 19 항에 기재된 블럭 인터리브 방법에 있어서, 상기 α와 L×M-1 사이에 공약수가 존재하지 않도록, 이들의 값을 설정하도록 한 것이다.
본원의 청구 범위 제 21 항의 발명에 따른 블럭 인터리브 방법은 상술한 바와 같이 구성한 것에 의해, 어드레스의 생성 규칙이 파괴되는 것을 방지하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 22 항의 발명에 따른 블럭 인터리브 방법은 청구 범위 제 19 항에 기재된 블럭 인터리브 방법에 있어서, 상기 α와 M의 (-x)승이 동일하지 않도록, 이들의 값을 설정하도록 한 것이다.
본원의 청구 범위 제 22 항의 발명에 따른 블럭 인터리브 방법은 상술한 바와 같이 구성한 것에 의해, 최초의 기입의 시점에 있어서 어드레스를 연속해서 기입하는 것을 방지하여, 기억 수단, 어드레스 생성을 위한 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 23 항의 발명에 따른 블럭 인터리브 방법은 청구 범위 제 19 항에 기재된 블럭 인터리브 방법에 있어서, 상기 α, L, M의 값을 각각 α=20, L=8, M=203으로 하도록 한 것이다.
본원의 청구 범위 제 23 항의 발명에 따른 블럭 인터리브 방법은 상술한 바와 같이 구성한 것에 의해, 어드레스 생성을 위한 수단을 구성하는 제 1 비교 수단의 면적을 저감하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 24 항의 발명에 따른 블럭 인터리브 방법은 청구 범위 제 19 항에 기재된 블럭 인터리브 방법에 있어서, 상기 (L, M)의 값을 L=96×X(X=1,2,4), M=2,…, 13 또는 M=2,…, 13, L=96×X(X=1,2,4)의 72가지중의 어느 하나의 값으로 하도록 한 것이다.
본원의 청구 범위 제 24 항의 발명에 따른 블럭 인터리브 방법은 상술한 바와 같이 구성한 것에 의해, 어드레스 생성을 위한 수단을 구성하는 제 1 비교 수단의 면적을 저감하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 25 항의 발명에 따른 블럭 디인터리브 방법은 (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단에 대해, 블럭 디인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하고, 해당 생성된 어드레스를 이용하여 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 것에 의해 데이터의 블럭 디인터리브를 실행하는 방법에 있어서, 블럭 번호 0의 블럭에 대해 어드레스의 증가분값 REG로서 α(α는 2 이상의 정수)를 부여하고, 이후 블럭 번호가 1증가할 때마다 증가분값 REG에 L을 승산한 것을 해당 블럭의 어드레스의 증가분값 REG로 할 때, 어드레스의 증가분값 REG가 L×M-1을 초과한 경우, 해당 증가분값 REG 대신에 L×M-1에 의한 잉여를 해당 증가분값으로 해서 상기한 처리를 반복하는 것에 의해, α×L**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 각 블럭마다의 어드레스의 증가분값을 구하고, 각 블럭에 있어서 어드레스의 초기값으로서 Ab(0)를 설정하고, 이후 해당 블럭의 어드레스의 증가분값 REG를 순차적으로 가산하는 것에 의해 해당 블럭내의 각 어드레스 Ab(1) 내지 Ab(n)(n은 1 이상 L×M-1 이하의 정수)를 생성할 때, 어드레스가 L×M-1을 초과한 경우에 해당 어드레스 대신에 L×M-1에 의한 잉여를 해당 어드레스로 하여 상기한 처리를 반복하고, 각 블럭내의 어드레스를 생성하는 것에 의해 상기 어드레스 생성을 실행하고, 또한 상기 어드레스의 증가분값을 계산할 때의 잉여를 구할지 여부의 판정을, 상기 어드레스의 증가분값과 상기 L×M-1과의 대소 비교로 판정할 때, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 제 1 비교 수단을 사용해서 실행하도록 한 것이다.
본원의 청구 범위 제 25 항의 발명에 따른 블럭 디인터리브 방법은 기억 수단에 대한 기입 판독을 실행할 때에, 상술한 바와 같은 어드레스 생성을 실행하는 것에 의해, 1 블럭의 기억 영역을 갖는 기억 수단 1면에서의 블럭 디인터리브 동작을 가능하게 하고 또한 어드레스 생성 수단의 회로 규모를 축소할 수 있게 한다.
본원의 청구 범위 제 26 항의 발명에 따른 블럭 디인터리브 방법은 청구 범위 제 23 항에 기재된 블럭 디인터리브 방법에 있어서, 상기 제 1 비교 수단은 상기 비교 기준값으로서, 상기 L×M-1을 초과하는 최소값 A 대신에, L×M-1<B<A를 만족시키고 또한 해당 비교 수단을 구성하는 논리 게이트 수가 최소로 되도록 선정한 값 B를 사용하도록 한 것이다.
본원의 청구 범위 제 26 항의 발명에 따른 블럭 디인터리브 방법은 상술한 바와 같이 비교 기준값을 사용하는 것에 의해, 제 1 비교 수단의 회로 면적을 보다 축소할 수 있게 하고, 이 때문에 어드레스 생성 수단의 회로 규모를 보다 축소할 수 있게 한다.
본원의 청구 범위 제 27 항의 발명에 따른 블럭 디인터리브 방법은 청구 범위 제 25 항에 기재된 블럭 디인터리브 방법에 있어서, 상기 α와 L×M-1 사이에 공약수가 존재하지 않도록, 이들의 값을 설정하도록 한 것이다.
본원의 청구 범위 제 27 항의 발명에 따른 블럭 디인터리브 방법은 상술한 바와 같이 구성한 것에 의해, 어드레스의 생성 규칙이 파괴되는 것을 방지하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 디인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 28 항의 발명에 따른 블럭 디인터리브 방법은 청구 범위 제 25 항에 기재된 블럭 디인터리브 방법에 있어서, 상기 α와 M의 (-x)승이 동일하지 않도록, 이들의 값을 설정하도록 한 것이다.
본원의 청구 범위 제 28 항의 발명에 따른 블럭 인터리브 방법은 상술한 바와 같이 구성한 것에 의해, 최초의 기입의 시점에 있어서 어드레스를 연속해서 기입하는 것을 방지하여, 기억 수단, 어드레스 생성을 위한 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 디인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 29 항의 발명에 따른 블럭 디인터리브 방법은 청구 범위 제 25 항에 기재된 블럭 디인터리브 방법에 있어서, 상기 α, L, M의 값을 각각 α=20, L=8, M=203으로 한 것이다.
본원의 청구 범위 제 29 항의 발명에 따른 블럭 디인터리브 방법은 상술한 바와 같이 구성한 것에 의해, 어드레스 생성을 위한 수단을 구성하는 제 1 비교 수단의 면적을 저감하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 디인터리브를 실행하는 것을 가능하게 한다.
본원의 청구 범위 제 30 항의 발명에 따른 블럭 디인터리브 방법은 청구 범위 제 25 항에 기재된 블럭 디인터리브 방법에 있어서, 상기 (L, M)의 값을 L=96×X(X=1,2,4), M=2,…, 13 또는 M=2,…, 13, L= 96×X(X=1,2,4)의 72가지중의 어느 하나의 값으로 하도록 한 것이다.
본원의 청구 범위 제 30 항의 발명에 따른 블럭 디인터리브 방법은 상술한 바와 같이 구성한 것에 의해, 어드레스 생성을 위한 수단을 구성하는 제 1 비교 수단의 면적을 저감하여, 기억 수단, 어드레스 생성 수단을 최적화하고, 최소한의 회로 면적에 의해 블럭 디인터리브를 실행하는 것을 가능하게 한다.
도 1은 본원 발명의 실시예 1에 따른 블럭 인터리브 장치의 구성을 도시하는 블럭도,
도 2는 본원 발명의 실시예 1에 따른 블럭 인터리브 장치에 있어서의 기억 장치의 기입 판독 순서의 일례를 도시하는 도면,
도 3은 본원 발명의 실시예 1에 따른 블럭 인터리브 장치에 있어서 기억 장치가 1면으로 되는 점을 도시하는 블럭도,
도 4는 본원 발명의 실시예 1에 따른 블럭 인터리브 장치에 있어서의 어드레스 생성 장치의 각 부의 신호 파형을 도시하는 도면,
도 5는 종래의 블럭 인터리브 장치의 기억 장치의 제어 장치에 있어서의 비교기의 구성을 도시하는 도면,
도 6은 본원 발명의 실시예 1에 따른 블럭 인터리브 장치의 기억 장치의 제어 장치에 있어서의 비교기의 구성을 도시하는 도면,
도 7은 본원 발명의 실시예 2에 따른 블럭 디인터리브 장치의 구성을 도시하는 블럭도,
도 8은 본원 발명의 실시예 2에 따른 블럭 디인터리브 장치에 있어서의 기억 장치의 기입 판독 순서의 일례를 도시하는 도면,
도 9는 본원 발명의 실시예 2에 따른 블럭 디인터리브 장치에 있어서 기억 장치가 1면으로 되는 점을 도시하는 블럭도,
도 10은 본원 발명의 실시예 2에 따른 블럭 디인터리브 장치에 있어서의 어드레스 생성 장치의 각 부의 신호 파형을 도시하는 도면,
도 11은 종래의 블럭 디인터리브 장치의 기억 장치의 제어 장치에 있어서의 비교기의 구성을 도시하는 도면,
도 12는 본원 발명의 실시예 2에 따른 블럭 디인터리브 장치의 기억 장치의 제어 장치에 있어서의 비교기의 구성을 도시하는 도면,
도 13은 종래의 블럭 인터리브 장치 및 블럭 디인터리브 장치에 있어서의 기억 장치의 기입 판독 순서를 도시하는 도면,
도 14는 종래의 블럭 인터리브 장치 및 블럭 디인터리브 장치에 있어서 기억 장치가 1면으로 되는 점을 도시하는 블럭도이다.
발명을 실시하기 위한 최선의 형태
(실시예 1)
이하, 본 발명의 실시예 1에 대해, 도면을 이용해서 설명한다.
본원 발명에 따른 블럭 인터리브 장치 및 블럭 인터리브 방법에 대해 설명한다.
본 실시예 1의 블럭 인터리브 장치 및 블럭 인터리브 방법은 기억 장치의 어드레스 생성 장치를 최적화하는 것에 의해, 기억 장치의 제어 장치의 면적 또는 소비 전력을 보다 저감할 수 있도록 한 것이다.
도 1은 본원 발명의 실시예 1에 따른 L×M 데이터의 블럭 인터리브를 실행하는 블럭 인터리브 장치를 도시한 도면이다. 도 1에 있어서, (101)은 본 블럭 인터리브 장치에 의해 블럭 인터리브를 실행해야 할 입력 데이터의 입력 단자, (102)는 이 블럭 인터리브를 실행해야 할 입력 데이터의 블럭의 선두 입력 데이터마다 동기해서 입력되고, 값 0에서 액티브로 되는 선두 입력 데이터 동기 신호(NBLOCKSYNC 신호)의 입력 단자, (114)는 값 0에서 본 블럭 인터리브 장치를 초기 상태로 리세트하는 리세트 신호(NRST 신호)의 입력 단자, (106)은 각 입력 데이터마다 발생하는 동기 신호의 입력 단자, (116)은 각 입력 데이터마다 발생하는 동기 신호(클럭 신호 CLK)의 2배의 주파수의 클럭 신호 CLK2의 입력 단자, (112)는 동기 신호 입력 단자(106)로부터 입력되는 동기 신호에 따라 기억 장치(104)를 제어하는 제어 장치로서, 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여 기억 수단이 데이터의 기입 및 판독을 전환해서 실행하는 제어 수단에 상당한다. (103)은 입력 단자(106)로부터 입력되는 동기 신호(CLK 신호), 입력 단자(102)로부터 입력되는 선두 입력 데이터 동기 신호(NBLOCKSYNC 신호) 및 입력 단자(114)로부터 입력되는 리세트 신호(NRST 신호)에 근거하여 기억 장치(104)의 어드레스를 생성하는 어드레스 생성 장치로서, 기억 수단에 대해 블럭 인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단에 상당한다. (120)은 이 어드레스 생성 장치(103)가 생성한 어드레스를 출력하는 출력 단자, (104)는 기억 장치(기억 수단)로서, (L×M)개의 어드레스가 할당되고, 제어 장치(112)의 제어에 의해 어드레스 생성 장치(103)에 의해 생성된 어드레스에 입력 단자(101)로부터의 입력 데이터를 기입하고, 이것을 판독하는 것에 의해 블럭 인터리브를 실행하는 것이다. 또한, AD는 기억 장치(104)의 어드레스 입력 단자, DI는 기억 장치(104)의 데이터 입력 단자, NWE는 기억 장치(104)의 기입 인에이블 입력 단자로서, 값 0이 입력되면 기억 장치(104)가 기입 모드로 된다. DO는 기억 장치(104)의 데이터 출력 단자로서, 이것은 본 블럭 인터리브 장치의 출력 단자이기도 하다. CLK2는 이 기억 장치(104)용의 클럭 입력 단자로서, 클럭 신호 입력 단자(116)로부터 클럭 신호 CLK의 2배의 클럭 신호가 입력된다. (105)는 본 블럭 인터리브 장치에 의해 인터리브된 데이터를 출력하는 출력 단자이다.
또한, 도 1의 어드레스 생성 장치(103)에 있어서, (110)은 정수 M을 발생하는 정수 발생기, (113)은 초기값 α가 초기 설정되는 레지스터, (111)은 이 정수 M과 레지스터(113)의 출력 신호를 승산하는 승산기로서, 블럭 번호 b의 블럭이 입력될 때마다, α(α는 2 이상의 정수)와 M의 (b-x)승(x는 0 이상 b 이하의 정수, b는 0 이상의 정수)과의 승산 결과를 생성하는 승산 수단에 상당한다. (140)은 이 승산기(111)의 출력이 오버플로우한 경우의 처리를 실행하는 오버플로우 처리 장치로서, 상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 1 클럭마다 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 승산 결과의 오버플로우를 억제하는 것에 의해, 상기 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG를 출력하는 제 1 오버플로우 처리 수단에 상당한다. (121)은 입력 단자(102)로부터의 NBLOCKSYNC 신호를 제어 신호로 하고 승산기(111)의 출력 신호 또는 레지스터(113)의 출력 신호중의 어느 하나를 선택하는 스위치(제 2 선택기), (122)는 이 선택기(121)의 출력 신호로부터 (L×M-1)을 감산하는 감산기(제 1 감산 수단), (123)은 이 선택기(121)의 출력 신호와 (L×M-1)과의 대소를 비교하는 비교기(제 1 비교 수단), (124)는 이 비교기(123)의 출력 신호를 제어 신호로 해서 감산기(122)의 출력 신호 또는 선택기(121)의 출력 신호중의 어느 하나를 선택하는 스위치(제 3 선택기), (118)은 초기값 α를 발생하는 정수 발생기(제 1 정수 발생 수단), (126)은 입력 단자(114)로부터의 NRST 신호를 제어 신호로 하고, 정수 발생기(118)의 출력 신호 또는 선택기(124)의 출력 신호중의 어느 하나를 선택하여 레지스터(어드레스 증가분값 기억 수단)(113)로 출력하는 스위치(제 1 선택기), (128)은 NBLOCKSYNC 신호를 제어 신호로 하여 레지스터 (113)의 출력 신호 또는 레지스터(127)의 출력 신호중의 어느 하나를 선택하는 스위치(선택기), (127)은 이 선택기(128)의 출력 신호를 입력으로 하는 레지스터이다.
또한, (115)는 이 레지스터(127)의 출력 신호와 레지스터(117)의 출력 신호를 가산하는 가산기로서, 블럭 번호 b의 블럭이 입력될 때마다 상기 제 1 오버플로우 처리 수단에 의해 출력되는 어드레스의 증가분값 REG에 대해, 상기 블럭 번호 b의 n-1번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n-1)를 순차적으로 가산하는 것에 의해 상기 블럭 번호 b의 블럭내의 n번째의 어드레스 Ab(n)를 순차적으로 생성하는 가산 수단에 상당한다. (141)은 이 가산기(115)의 출력이 오버플로우한 경우의 처리를 실행하는 오버플로우 처리 장치로서, 상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 가산 결과의 오버플로우를 억제하는 것에 의해, 상기 기억 수단에 대해 실제로 공급하는 어드레스를 출력하는 제 2 오버플로우 처리 수단에 상당한다. (132)는 가산기(115)의 출력 신호로부터 (L×M-1)을 감산하는 감산기(제 2 감산 수단), (133)은 이 가산기(115)의 출력 신호와 (L×M-1)과의 대소를 비교하는 비교기(제 2 비교 수단), (134)는 이 비교기(133)의 출력 신호를 제어 신호로 하여 가산기(115)의 출력 신호 또는 감산기(132)의 출력 신호중의 어느 하나를 선택하는 스위치(제 5 선택기), (119)는 초기값 0을 발생하는 정수 발생기, (130)은 NBLOCKSYNC 신호를 제어 신호로 하여 정수 발생기(119)의 출력 신호 또는 선택기(134)의 출력 신호중의 어느 하나를 선택하는 스위치(제 4 선택기)이다.
또한, (117)은 이 오버플로우 처리 장치(141)의 출력이 세트되는 레지스터(어드레스 기억 수단), (129)는 데이터 입력 단자(101)로부터의 데이터를 유지하여 기억 장치(104)로 출력하는 레지스터로서, 레지스터(113, 127, 117, 129)는 모두 입력 데이터와 동기한 클럭 신호 CLK의 상승에 의해 유지하는 데이터를 갱신한다.
도 2는 본 실시예 1에 따른 블럭 인터리브 장치의 동작을 모식적으로 도시한 것으로서, 4행 5열의 데이터에 대해 블럭 인터리브를 실행하는 경우를 예로 들어 나타내고 있다.
이 실시예 1에 따른 블럭 인터리브 장치는 이하와 같은 블럭 인터리브 방법에 의해 데이터의 블럭 인터리브를 실행하는 것이다.
즉, 이 방법은 (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단에 대해, 블럭 인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하고, 해당 생성된 어드레스를 이용하여 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 것에 의해 데이터의 블럭 인터리브를 실행하는 방법에 있어서, 블럭 번호 0의 블럭에 대해 어드레스의 증가분값 REG로서 α(α는 2 이상의 정수)를 부여하고, 이후 블럭 번호가 1증가할 때마다 증가분값 REG에 M을 승산한 것을 해당 블럭의 어드레스의 증가분값 REG로 할 때, 어드레스의 증가분값 REG가 L×M-1을 초과한 경우, 해당 증가분값 REG 대신에 L×M-1에 의한 잉여를 해당 증가분값으로 해서 상기한 처리를 반복하는 것에 의해, α×M**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 각 블럭마다의 어드레스의 증가분값을 구하고, 각 블럭에 있어서 어드레스의 초기값으로서 Ab(0)를 설정하고, 이후 해당 블럭의 어드레스의 증가분값 REG를 순차적으로 가산하는 것에 의해 해당 블럭내의 각 어드레스 Ab(1) 내지 Ab(n)(n은 1 이상 L×M-1 이하의 정수)를 생성할 때, 어드레스가 L×M-1을 초과한 경우에 해당 어드레스 대신에 L×M-1에 의한 잉여를 해당 어드레스로 하여 상기한 처리를 반복하고, 각 블럭내의 어드레스를 생성하는 것에 의해 상기 어드레스 생성을 실행하고, 또한 상기 어드레스의 증가분값을 계산할 때의 잉여를 구할지 여부의 판정을, 상기 어드레스의 증가분값과 상기 L×M-1과의 대소 비교로 판정할 때, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 제 1 비교 수단을 사용해서 실행하는 방법에 의해, 블럭 인터리브를 실행하는 것이다.
다음에 도 1의 동작에 대해서 도 2에 도시한 4행 5열의 데이터에 대해, 블럭 인터리브를 실행하는 경우를 예로 들어 설명한다.
도 1에 나타내는 바와 같이, 본 실시예 1에 따른 블럭 인터리브 장치는 입력 단자(101)로부터 입력되는 데이터를 L×M 데이터의 기억 장치(104)에 기입하고, 이 L×M 데이터의 기억 장치(104)로부터 데이터를 판독하는 것에 의해 블럭 인터리브를 실행하는 것으로서, 그 때, 도 2에 도시한 바와 같은 순서로 기입, 판독을 실행하도록 제어 장치(112)가 상기 기억 장치(104)로 제어 신호를 출력하는 것에 의해 그의 기입, 판독 제어를 실행하고, 또한 어드레스 생성 장치(103)가 그의 기입, 판독시의 어드레스를 생성하고, 이것을 상기 기억 장치(104)로 출력하는 것에 의해 1 블럭의 기억 영역을 갖는 기억 장치 1면에서 블럭 인터리브된 출력(105)을 생성할 수 있는 것이다.
이 장치는 블럭 인터리브 장치의 기억 장치(104)의 어드레스가 도 13의 (a)와 마찬가지로 할당되어 있는 것으로 하면, 우선, 도 2의 (a)와 마찬가지로 REG를 2로 하고, 도 13의 (a)의 어드레스 0을 초기값으로 하여 1입력 데이터마다 2씩 증가하는 기입 어드레스를 순차적으로 생성한다. 그 때, 기입 어드레스가 19(=4×5-1)를 초과하면 이 19에 의한 잉여를 어드레스로서 사용한다. 따라서, 예를 들어 도 13의 (a)에 있어서의 어드레스 2에 상당하는 어드레스에는, 도 2의 (a)에서는 어드레스 1이 할당된다. 그리고, 이 생성 규칙에 따라서 생성한 기입 어드레스에 따라, 데이터의 기입을 블럭내의 모든 어드레스로의 액세스가 완료될 때까지 실행한다.
즉, 도 13의 (a)의 종래 방식에서는 기입 어드레스가 증가하는 순서에 따라서 0 →1 →2 → …… →19의 순으로 데이터를 순차적으로 기입하였지만, 본 실시예 1에서는 이것을 1개 걸러 기입해 가는 것이다.
다음에, 도 2의 (b)에 도시되어 있는 바와 같이, REG에 5를 곱하고, 도 13의 (a)에 있어서의 어드레스의 배열을 기준으로 해서 도 13의 (a)의 어드레스 0을 초기값으로 하여 1 입력 데이터마다 어드레스가 10(= 2×5)씩 증가하는 어드레스를 순차적으로 생성하지만, 그 때, 어드레스가 19(= 4×5-1)를 초과하면 이 19에 의한 잉여를 어드레스로서 사용한다.
그리고, 도 2의 (b)에 있어서, 이 생성 규칙에 따라서 생성한 어드레스에 따라 판독을 실행하고, 이 판독을 실행한 것과 동일한 순서로 동일한 어드레스에 대해 기입을 실행한다. 또, 이 판독 및 기입은 블럭내의 모든 어드레스로의 액세스가 완료될 때까지 실행한다.
다음에, 도 2의 (c)에 도시되어 있는 바와 같이, 이 REG에 대해 5를 곱하지만, 그 값이 19를 초과하고 있으므로 이 19에 의한 잉여 12를 구하고, 이것을 REG의 값으로서 사용한다.
그리고, 도 13의 (a)에 도시되어 있는 어드레스의 배열을 기준으로 하고, 그 어드레스 0을 초기값으로 하여 1입력 데이터마다 12씩 증가하는 어드레스를 순차적으로 생성하고, 어드레스가 19(= 4×5-1)를 초과하면 이 19에 의한 잉여를 구하고, 이것을 어드레스로서 사용한다.
그리고, 도 2의 (c)에 있어서, 이 생성 규칙에 따라서 생성한 어드레스에 따라 판독을 실행하고, 이 판독을 실행한 것과 동일한 순서로 동일한 어드레스에 대해 기입을 실행한다. 또, 판독 및 기입은 블럭내의 모든 어드레스로의 액세스가 완료될 때까지 실행한다.
이하, 마찬가지의 처리를 반복하는 것에 의해, 순차적으로 상이한 어드레스의 순으로 판독, 기입을 실행해 가면, 이 예에서는 도 2의 (j)의 시점에 있어서 도 2의 (a)와 마찬가지의 어드레스의 순서로 되돌아간다.
이러한 순서를 반복하는 것에 의해, 도 3에 도시하는 바와 같이 1 블럭의 기억 영역을 갖는 기억 장치 1면만을 이용하여 블럭 인터리브를 실행하는 것이 가능하게 되어 있다. 이것은 제어 장치(112)에 의한 기입 판독 제어 및 어드레스 생성 장치(103)에 의해 생성하는 기억 장치(104)의 어드레스를 상술한 바와 같이 고안하는 것에 의해 실현하고 있는 것이며, 이에 부가해서, 본 실시예 1에서는 어드레스 생성 장치의 회로 면적이나 소비 전력의 저감이 가능하게 되어 있다.
이 실시예 1에 있어서의 어드레스 생성 규칙은 이하와 같다.
즉, n번째의 어드레스를 Ab(n), 기억 장치의 행의 수를 L, 열의 수를 M, 블럭 번호 b를 0 이상의 정수, x를 0 이상 b 이하의 임의의 정수라고 하면,
또한,
단, Ab(0)=0, α는 2 이상의 정수로 한다. 또한, **는 누승을 나타낸다.
따라서, 상술의 예에서는 α= 2로서 최초의 기입시에 1개 걸러 기입을 실행하고 있고, α의 값을 적절하게 설정하는 것에 의해 2개 이상 걸러 기입을 실행하는 것도 가능하지만, α와 L×M-1 사이에 공약수가 존재하면 안 된다. 이것은 α와 L×M-1 사이에 공약수가 존재하면, 블럭내의 데이터의 최후의 데이터가 항상 어드레스 L×M-1에 기입되게 되는데, 도중에서 어드레스가 L×M-1로 되게 되어 어드레스의 생성 규칙이 파괴되기 때문이다.
또한, α가 M의 (-X)승과 동일한 경우도 제외할 필요가 있다. 이 경우는 종래예와 일치하며, 한층 더한 회로 규모의 축소나 소비 전력의 저감을 실현할 수 없기 때문이다.
다음에 이러한 기입 판독 동작을 실행하는 데 필요한 어드레스 생성 장치의 어드레스 생성 동작에 대해 설명한다.
도 1의 어드레스 생성 장치는 수학식 3에서 정의된 어드레스 생성 규칙을 실행하는 것에 의해, 기억 장치(104)의 어드레스를 순차적으로 생성한다.
즉, 도 1의 어드레스 생성 장치는 (X+Y) modZ = XmodZ + Ymodz가 성립하는 것을 이용하여, 수학식 3의 (Ab(n-1)+α×M**(b-x)) mod (L×M-1)에 있어서의, α×M**(b-x) mod (L×M-1) 항의 M의 누승 계산을 정수 발생기(110), 승산기(111), 레지스터(113)에 의해 M의 반복 승산을 행하는 것에 의해 실행하고, 또한, 이 항에 있어서의 α의 승산과 (L×M-1)에 의한 잉여 계산을 오버플로우 처리 장치(140)에 의해 실행한다.
또한, 수학식 3의 Ab(n-1) mod (L×M-1) 항의 계산 및 그 초기값 Ab(0)= O의 투입을 오버플로우 처리 장치(141)에 의해 실행한다.
또한, 이들 2개의 항의 잉여 계산 결과의 가산을 가산기(115)에 의해 실행하고 있는 것이다.
선택기(121)에는 승산기(111)의 출력 및 레지스터(113)의 출력이 인가되지만, 입력 데이터가 블럭의 선두에 해당하며, 블럭의 선두 입력 데이터 동기 신호(102)가 입력되면, 선택기(121)는 승산기(111)의 출력을 선택하고, 그 이외의 경우에는 레지스터(113)의 출력을 선택한다. 이 선택기(121)의 출력은 비교기(123)에 의해 L×M-1과 비교된다. 선택기(124)에는 선택기(121)의 출력으로부터 L×M-1을 감산하는 감산기(122)의 출력 및 선택기(121)의 출력이 인가되지만, 선택기(121)의 출력이 L×M-1 이상이라는 것을 비교기(123)가 판정하면 감산기(122)의 출력을 선택하고, 그 이외의 경우는 선택기(121)의 출력을 선택한다. 그리고, 이 선택기(124)의 출력은 레지스터(113)로 출력된다. 이것에 의해, 오버플로우 처리 장치(140)는 입력이 L×M-1을 초과하면, 1클럭마다 L×M-1을 반복해서 감산함으로써, 그 값이 L×M-1 이하로 되도록 제한한다.
이러한 오버플로우 처리 장치를 마련하는 것에 의해, 어드레스 생성 장치의 내부에서 승산이나 가산을 반복함으로써, 수치가 L×M-1 이상으로 발산되어 가는 것을 억제하고 있다.
도 1의 어드레스 생성 장치(103)에 있어서, 정수 발생기(118)는 초기값「α」을 발생하고, 이것을 레지스터(113)로 출력한다. 승산기(111)는 이 레지스터(113)의 출력과 정수 발생기(110)의 출력「M」을 승산하여 오버플로우 처리 장치(140)로 출력한다.
삭제
또한, 정수 발생기(119)는 초기값「0」을 발생하여, 이것을 레지스터(117)로 출력한다. 가산기(115)는 이 레지스터(117)의 출력과 레지스터(113)의 출력을 가산하여 오버플로우 처리 장치(141)로 출력한다.
오버플로우 처리 장치(141)는 그의 입력 데이터가 L×M-1을 초과한 경우, 이것이 L×M-1 이하로 되도록「L×M-1」을 감산하고, 그 결과를 레지스터(117)로 출력하지만, 가산기(115)의 출력이 오버플로우 처리 장치(140)에 의해서 최대값 L×M-1 이하로 억제되고 있고 또한 오버플로우 처리 장치(141) 자신의 출력도 최대값 L×M-1 이하로 억제되기 때문에, 입력 데이터가 L×M-1을 초과한 경우에 감산기(132)가 감산을 실행하는 회수는 1회만으로도 되고, 따라서, 오버플로우 처리 장치(141)는 내부에 오버플로우 처리 장치(140)와 같은 귀환 루프를 갖고 있지 않아 오버플로우 처리 장치(140)보다도 회로 규모가 작고, 그 만큼 저소비 전력으로 되어 있다.
레지스터(117)는 입력 데이터가 L×M개 입력된 시점에서 블럭의 선두 입력 데이터 동기 신호(102)에 의해 초기값「0」으로 리세트되고, 동기 신호 입력(106)에 의해 입력 데이터마다 갱신된다.
이것에 의해, 어드레스 생성 장치에 있어서 블럭 번호 b의 0번째의 어드레스 Ab(0)를 O로 하고, 블럭 번호 b의 n번째(n은 0 이상의 정수)의 어드레스 Ab(n)를 α(α는 2 이상의 정수)와 M의 (b-x)승(x는 0 이상 b 이하의 정수)의 승산 결과와 Ab(n-1)와의 합을 L×M-1로 나눈 잉여로부터 생성하는 것에 의해, 본 실시예 1의 장치에 있어서의 기억 장치의 어드레스의 생성을 실행하고 있는 것으로서, 승산이나 가산을 반복하는 것에 의해, 어드레스 생성 장치 내부에서 수치가 L×M-1 이상으로 발산되어 가는 것을, 오버플로우 처리 장치를 마련하는 것에 의해 최대값 L×M-1 이하로 되도록 억제하고 있다.
도 4는 이 도 1의 블럭 인터리브 장치의 타이밍차트를 도시한 것이다. 이 도 4는 입력 단자(116)로부터의 클럭 신호 CLK2, 입력 단자(106)로부터의 클럭 신호 CLK, 입력 단자(106)로부터의 리세트 신호 NRST, 입력 단자(102)로부터의 신호 NBLOCKSYNC, 입력 단자(114)로부터의 리세트 신호 NRST, 레지스터(113)의 출력 신호, 레지스터(127)의 출력 신호, 레지스터(117)의 출력 신호, 기억 장치(104)의 제어 신호 NWE, 기억 장치(104)의 데이터 입력 신호 DI, 기억 장치(104)의 데이터 출력 신호 DO에 대해 나타내고 있다.
다음에, 이 도 4를 이용하여 도 1의 블럭 인터리브 장치의 동작을 상세하게 설명한다. 우선, 입력 단자(106)로부터 클럭 신호 CLK가, 또한 입력 단자(116)로부터 그의 2배의 주파수의 클럭 신호 CLK2가 인가되고 있는 것으로 한다.
시각 t0에서는 입력 단자(102)로부터의 신호 NBLOCKSYNC가 하이 레벨(= 값 1 : 이하, H라고 함)이므로, 선택기(121)는 승산기(111)의 출력을 선택하지 않고 레지스터(113)의 출력을 선택한다. 레지스터(113)의 출력값은 부정(不定)이지만, 이것이 L×M-1(이 예에서는 4×5-1=19)을 초과하고 있으면, 그 값이 L×M-1 이하로 될 때까지 선택기(124)는 감산기(122)의 출력을 계속해서 선택하고, 또한, 선택기(124)의 출력값이 원래 L×M-1 이하이면 선택기(124)는 선택기(121)의 출력을 선택하므로, 선택기(124)의 출력은 L×M-1 이하의 부정값으로 된다.
또한, 이 시각 t0에 있어서, 입력 단자(114)로부터의 리세트 신호 NRST는 H로부터 로우 레벨(= 값 0 : 이하, L이라 함)로 변화하고 있고, 선택기(126)는 선택기(124)의 출력이 아니라 정수 발생기(118)로부터의 정수 α(이 예에서는 값 2)를 선택한다. 이 선택기(126)의 출력은 레지스터(113)에 의해 1클럭 CLK분 유지된 후 출력되지만, 이 시각 t0에서는 레지스터(113)의 출력값은 부정 상태 그대로이다.
또한, 이 시각 t0에서는 NBLOCKSYNC 신호가 H이기 때문에, 선택기(128)는 레지스터(113)의 출력은 선택하지 않고 레지스터(127)의 출력을 선택한다. 이 선택기(128)의 출력은 레지스터(127)의 입력으로 되돌아가므로, 레지스터(127)의 출력은 부정 상태 그대로이다.
또한, 이 시각 t0에서는 선택기(130)는 정수 발생기(119)의 출력값 0이 아니라 선택기(134)의 출력을 선택한다. 이 선택기(134)는 가산기(115)의 출력 또는 이것이 L×M-1(이 예에서는 19)을 초과하고 있으면 L×M-1을 감산한 값을 선택하기 때문에, 레지스터(117)에는 선택기(134)의 출력인 부정값과 레지스터(127)의 출력을 가산한 부정값, 또는 이것에서 L×M-1을 감산한 값이 입력된다.
다음에, 시각 t1에서는 레지스터(113)로부터 값 2가 출력되고, 이것이 승산기(111)에 의해서 정수 발생기(110)로부터의 정수 M(= 값 5)과 승산되지만, 이 시각 t1에 있어서 선택기(121)는 이 승산값 10을 선택하지 않는다. 또한, 선택기(126)는 정수 발생기(118)로부터의 정수 α(= 값 2)를 선택하고 있고, 이것이 레지스터(113)에 입력된다. 선택기(128) 및 선택기(130)도 시각 t0에 있어서의 것과 마찬가지로, 각각 레지스터(127)의 출력 및 선택기(134)의 출력을 선택하고 있다. 이들의 상태는 시각 t2에서도 마찬가지이다.
다음에, 시각 t3에서는 시각 t2에 있어서 레지스터(113)에 입력된 값 2가 레지스터(113)로부터 출력되고, 이것과 정수 발생기(110)로부터의 정수 M(= 값 5)과의 승산값 10이 선택기(121)에 의해 선택되지만, 비교기(123)는 이 승산값 10이 L×M-1(= 값 19)보다 작다고 판정하기 때문에, 선택기(124)는 이 승산값 10을 선택한다. 또한 선택기(126)도 이 선택기(124)로부터의 승산값 10을 선택하기 때문에, 레지스터(113)에는 이 값 10이 입력된다.
또한, 선택기(128)는 레지스터(113)의 출력값 2를 선택하고, 레지스터(127)에는 이 값 2가 입력된다.
또한, 선택기(130)는 정수 발생기(119)로부터의 정수값 0을 선택하고, 레지스터(117)에는 이 값 0이 입력된다.
다음에, 시각 t4에 있어서, 시각 t3에 있어서 레지스터(113)에 입력된 값 10이 출력되고, 승산기(111)는 이것과 정수 발생기(110)의 출력값 5를 승산하지만, 선택기(121)는 이 승산값 50은 선택하지 않고 레지스터(113)의 출력값을 선택한다. 또한 선택기(126)는 선택기(124)의 출력을 선택하므로, 이 레지스터(113)에는 이 값 10이 입력된다.
또한, 선택기(128)는 레지스터(127)의 출력값 2를 선택하고, 이것을 선택기(127)에 입력한다. 가산기(115)는 이 레지스터(127)의 출력값 2와 레지스터(117)의 출력값 0을 가산하고, 선택기(134, 130)는 이 가산값 2를 선택하여 레지스터(117)에 입력한다.
또한, 레지스터(117)의 출력이 값 0으로 되기 때문에, 이것을 기억 장치(104)의 어드레스로 해서 제어 신호(기입 인에이블 신호) NWE의 H의 타이밍에서 기억 장치(104)로부터 초기값(부정값)이 판독되고, 또한 시각 t3에 있어서 레지스터(129)에 입력되어 있던 데이터 D0이 제어 신호(기입 인에이블 신호) NWE의 L의 타이밍에서 기억 장치(104)에 입력된다. 이들 상태는 시각 t5 이후에도 마찬가지이지만, 선택기(130)가 선택기(134)의 출력을 선택하고 레지스터(127)의 출력이 값 2를 유지하므로, 가산기(115)의 출력은 CLK 신호가 한 번 입력될 때마다 값 2씩 증가한다. 단, 이것이 값 19 이상으로 되려고 하면, 선택기(134)는 감산기(132)의 출력을 선택하고 그 값을 19 이하로 억제한다.
다음에, 시각 t23에 있어서, 선택기(121)가 승산기(111)의 출력값 50을 선택하면, 선택기(124)는 비교기(123)의 판정에 의해 감산기(122)의 출력을 선택하고, 값 31(= 50-19)을 출력한다. 선택기(126)는 이 값을 선택하고 레지스터(113)에 입력한다. 또한 선택기(128)는 레지스터(113)의 출력을 선택하고, 이 값 10을 레지스터(127)에 입력한다.
가산기(115)는 레지스터(127)의 출력값 2와 레지스터(117)의 출력값 19를 가산하지만, 이 시각 t23에 있어서 선택기(119)는 가산기(115)의 출력을 선택하지 않고 정수 발생기(119)의 출력값 0을 선택하고, 이것을 레지스터(117)에 입력한다.
이들, 시각 t4 내지 시각 t23까지의 동작에 의해서, 도 2의 (a)에 도시하는 어드레스가 발생된다. 또한, 기억 장치(104)로부터는 이들 어드레스로부터 초기값(부정값)이 클럭 CLK마다 순차 판독되고, 이 대신에 데이터 D0 내지 D19가 이들 어드레스에 클럭 CLK마다 순차 기입된다.
다음에, 시각 t24에 있어서, 레지스터(113)는 값 31을 출력하고 승산기(111)는 값 155를 출력하지만, 선택기(121)는 레지스터(113)의 출력값 31을 선택한다. 선택기(124)는 비교기(123)의 판정 결과에 따라 감산기(122)의 출력값 12를 선택하고, 선택기(126)는 이 값 12를 레지스터(113)에 입력한다.
선택기(128)는 선택기(128)의 출력값 10을 레지스터(127)에 입력하기 때문에, 이 값 10은 유지된다.
또한, 가산기(115)는 레지스터(127)의 출력값 10과 레지스터(117)의 출력값 0을 가산하고, 선택기(134)는 비교기(133)의 판정에 의해 가산값 10을 선택하여 레지스터(117)에 입력한다.
다음에, 시각 t25에 있어서, 레지스터(113)는 값 12를 출력하고, 승산기(111)는 값 60을 출력하지만, 선택기(121)는 레지스터(113)의 출력값 12를 선택하고, 선택기(126)는 이 값 12를 레지스터(113)에 입력한다.
선택기(128)는 선택기(128)의 출력값 10을 레지스터(127)에 입력하기 때문에, 이 값 10은 유지된다.
또한, 가산기(115)는 레지스터(127)의 출력값 10과 레지스터(117)의 출력값 10을 가산하지만, 선택기(134)는 비교기(133)의 판정에 의해 가산값 20을 선택하지 않고 감산기(132)의 출력값 1을 선택하고, 이것을 레지스터(117)에 입력한다.
이들 상태는 시각 t26 이후에도 마찬가지이지만, 선택기(130)가 선택기(134)의 출력을 선택하고 레지스터(127)의 출력이 값 10을 유지하기 때문에, 가산기(115)의 출력은 CLK 신호가 한 번 입력될 때마다 값 10씩 증가한다. 단, 이것이 값 19 이상으로 되려고 하면, 선택기(134)는 감산기(132)의 출력을 선택하여 그 값을 19 이하로 억제하고, 이것이 레지스터(117)를 거쳐서 1 클럭 CLK 후의 기억 장치(104)에 어드레스로서 인가된다.
이 때문에, 시각 t24 내지 시각 t43까지의 동작에 의해서, 도 2의 (b)에 도시되는 어드레스가 발생된다. 또한, 기억 장치(104)로부터는 이들 어드레스로부터 시각 t4 내지 t23의 기간에 기입되어 있던 데이터 D0 내지 D19가 데이터 DO0 내지 DO19로서 클럭 CLK마다 순차 판독되고, 이 대신에 데이터 D20 내지 D39가 이들 어드레스에 클럭 CLK마다 순차 기입된다.
또한, 시각 t44 이후에 있어서, 레지스터(113)의 출력은 클럭 CLK가 1회 입력될 때마다 감소하여, 값 41(= 60-19), 값 22(= 41-19), 값 3(= 22-19)으로 되어 안정하게 되지만, 레지스터(127)는 시각 t43에 있어서 레지스터(113)로부터 출력된 값 12를 유지하기 때문에, 레지스터(117)의 출력은 이 값 12의 정수배의 값 19에 의한 잉여로 된다.
이 때문에, 시각 t44 내지 시각 t63(도시하지 않음)의 동작에 의해서, 도 2의 (c)에 도시하는 어드레스가 발생된다. 또한, 기억 장치(104)로부터는 이들 어드레스로부터 시각 t24 내지 t43의 기간에 기입되어 있던 데이터 D20 내지 D39가 데이터 DO20 내지 DO39(도시하지 않음)로서 클럭 CLK마다 순차 판독되고, 이 대신에 데이터 D40 내지 D59(도시하지 않음)가 이들 어드레스에 클럭 CLK마다 순차 기입된다.
이후, 마찬가지의 동작을 반복하는 것에 의해, 도 2의 (a) 내지 도 2의 (j)에 도시된 어드레스를 순차적으로 발생한다.
또, 식 3에 있어서, x의 값을 설정하는 것에 의해 초기 상태를 도 2의 (a) 이외의 어느 하나의 상태로 변경할 수도 있지만, 이 경우도 상술한 처리를 반복하는 것에 의해 초기 상태의 블럭으로 되돌아가고, 이후의 처리는 마찬가지의 반복으로 된다.
이와 같이, 본 실시예 1은 1 블럭의 기억 영역을 갖는 기억 장치에 의해 블럭 인터리브를 실행할 수 있는 것으로서, 이 점은 종래 예와 마찬가지이지만, 본 실시예 1은 그의 어드레스 생성 장치의 회로 면적을 더욱 삭감할 수 있는 것이다.
이하, 이 점에 관하여 설명한다.
표 1은 본 실시예 1과 마찬가지의 회로 구성으로 종래 예를 구성한 경우(도 1에 있어서, 정수 발생기(118)의 α의 값을 1로 한 것이 종래 예이며, 이것을 2 이상으로 하면 본 실시예 1로 됨)에 레지스터(113)의 값의 천이를 나타낸 것이다.
이 표 1은 L=4, M=5, 즉 4행 5열의 데이터에 대해 블럭 인터리브를 실행하는 경우의 레지스터(113)의 값의 추이를 나타낸 것으로서, 표 1 중의 val로서 나타낸 것이 레지스터(113)의 값이며, 임계값 19(= 5×4-1)를 초과하는 경우에는 오버플로우 처리 장치에 의해서 이 임계값의 범위내로 포함되도록 순차적으로 값이 감소하도록 처리되어 있다.
또한, overtime은 레지스터(113)의 값이 임계값을 초과하는 회수, maxoverval은 임계값을 초과하는 레지스터(113)의 값의 최대값, minoverval은 임계값을 초과하는 레지스터(113)의 값의 최소값, maxval은 레지스터(113)의 값의 최대값이다.
또한, 이 표 1의 행 8 내지 행 16은 종래 예(행 5에서 α= 1로 설정)에 있어서의 레지스터(113)의 값의 추이를 나타내고 있고, 행 29 내지 행 37은 본 실시예 1(행 26에서 α= 2로 설정)에 있어서의 레지스터(113)의 값의 추이를 나타내고 있다.
예를 들면, 행 8에서는 레지스터(113)의 값이, 우선 값 1이 설정되어 있던 것이 승산기(110)에 의해서 값 5와 승산된 값 5로 재설정되고, 다음에 행 9에서는 이 값 5가 승산기(110)에 의해서 값 5와 승산된 값 25로 되지만, 이것이 오버플로우 처리 장치(140)에 의해서 값 19 이하로 되도록, 값 19가 감산되어 값 6으로 되는 상태가 나타내어져 있다.
이들을 대비하는 것에 의해, 종래 예에서는 임계값을 초과하는 레지스터(113)의 값의 최소값 minoverval이 20(=L×M의 값, 즉 임계값 19를 초과하는 최소의 값)인 데 반해, 본 실시예 1에서는 21, 즉 종래 예보다도 크게 되어 있는 것을 알 수 있다.
또한, 표 2의 행 3 내지 행 21은 L=8, M=203, 즉 8행 203열의 데이터에 대해 블럭 인터리브를 실행하는 경우의 레지스터(113)의 값의 계산 결과를 나타낸 것이고, 표 2의 행 8 내지 11이 종래 예의 레지스터(113)의 값의 계산 결과를 나타낸 것이다. 또한 표 2의 행 18 내지 행 21이 본 실시예 1에 있어서의 레지스터(113)의 값의 계산 결과를 나타낸 것이다.
이들을 대비하는 것에 의해, 종래 예에서는 오버플로우 처리 장치(140)의 임계값을 초과하는 레지스터(113)의 값의 최소값 minoverval이 1624(= L×M의 값, 즉 임계값 1623을 초과하는 최소의 값)인 데 반해, 본 실시예 1에서는 1643, 즉 종래 예보다도 크게 되어 있는 것을 알 수 있다.
이와 같이, 본 실시예 1에서는 기억 장치에 대해 기입, 판독을 실행할 때의 최초의 기입에 있어서, 종래 예에서는 어드레스대로 순차적으로 기입을 행하고 있는 데 반해, 하나 이상 걸러 기입을 행하도록 하고 있고, 이 최초의 기입 순서가 상이하기 때문에 레지스터(113)에 유지되는 임계값을 초과하는 최소의 값이 종래 예와 동일하거나 그보다 커진다.
이것에 의해, 종래 예에서는 오버플로우 처리 장치에 있어서 1624 이상을 비교하는 비교기가 필요했지만, 본 실시예 1에서는 1643 이상을 비교하는 비교기로도 되므로, 비교기의 구성, 기능을 간략화할 수 있다.
이와 같이, 오버플로우 처리 장치내의 비교기에 의해 입력과 비교해야 할 임계값을 L×M보다 크게 할 수 있는 경우에는, 비교기의 회로 규모를 종래 예보다 반드시 작게 할 수 있다.
이하, 이 점을 8행 203열의 데이터에 대해 블럭 인터리브를 실행하는 장치를 예로 들어 설명한다.
이 경우, 종래 예의 방식에서는 오버플로우 처리 장치(140)내의 비교기(123)는 입력이 L×M, 즉 1624 이상인 것을 판정해야 한다.
도 5는 종래 예의 방식에 의해 8행 203열의 데이터에 대해 블럭 인터리브를 실행하는 장치의 오버플로우 처리 장치에 있어서의 비교기의 구성을 도시한 것이다.
도 5에 있어서, (3311 내지 3319) 및 (3321 내지 3333)은 AND 게이트, (3336 내지 3339) 및 (3350 내지 3356)은 OR 게이트이다.
다음에 동작에 대해 설명한다. 입력 I가 1624 이상이라는 것을 판정하기 위해서는, 입력 I의 비트 패턴이 이 1624를 2진수로 전개한 011001011000 이상인 것을 판정하면 된다. 그리고, 이 때 입력 I의 하위 3비트는 그 값이 0이더라도 1이더라도 판정에 지장은 없고, 이들 하위 3비트가 모두 1인 경우의 입력값은 1631로 된다. 따라서, 입력값이 1624라는 것을 판정할 때에 하위 3비트를 입력하지 않는 것에 의해, 입력값이 1624∼1631이라는 것을 판정할 수 있다.
AND 게이트(3311 내지 3319)는 이러한 원리에 의해 입력값이 1624∼1631이라는 것을 판정하는 것으로서, AND 게이트(3311 내지 3314)에 의해 입력값의 12비트째 내지 5비트째의 비트 패턴이 01100101100과 일치하는 경우에 각각 1을 출력한다. AND 게이트(3315 및 3316)는 이들 4개의 AND 게이트(3311 내지 3314)의 출력이 모두 1인 경우에 각각 1을 출력하고, AND 게이트(3317)는 AND 게이트(3315 및 3316)의 출력이 모두 1인 경우에 1을 출력한다. 또한, AND 게이트(3318)는 입력값의 4비트째가 1이고 또한 AND 게이트(3316)의 출력이 1인 경우에 1을 출력한다. 또한, AND 게이트(3319)는 AND 게이트(3317 및 3318)의 출력이 모두 1인 경우에 1을 출력한다. 따라서, AND 게이트(3319)의 출력이 1인 경우, 입력값이 1624∼1631이라는 것이 판명된다.
마찬가지로, AND 게이트(3321 내지 3326)는 입력이 1632∼1663이라는 것을 판정한다. 또한, AND 게이트(3327 내지 3330)는 입력이 1664∼1791이라는 것을 판정한다. 또한, AND 게이트(3331 내지 3333)는 입력이 1792∼2047이라는 것을 판정한다. 또한, OR 게이트(3350 내지 3356)는 입력이 2048∼524287(maxoverval이 325409이기 때문에 524287까지 판정함)이라는 것을 판정한다.
따라서, OR 게이트(3336 내지 3339)에 의해 이들의 판정 결과를 통합하는 것에 의해, 입력값이 1624 이상이라는 것을 판정할 수 있다.
이와 같이, 종래 예에 있어서 비교기는 입력이 L×M, 즉 1624 이상이라는 것을 판정해야 하지만, 표 2의 행 1 내지 행 11 및 표 2의 행 13 내지 행 21의 대비에 의해, 본 실시예 1에서는 입력이 1643 이상이라는 것을 판정하면 된다.
도 6은 본 실시예 1의 블럭 인터리브를 실행하는 장치의 오버플로우 처리 장치에 있어서의 비교기의 구성을 도시한 것이다.
도 6에 있어서, (3321 내지 3333)은 AND 게이트, (3340 내지 3342) 및 (3350 내지 3356)은 OR 게이트이다.
이 도 6에서는 본래 입력이 1643 이상이라는 것을 판정해야 하지만, 이 판정은 1632 이상을 판정하는 경우에 포함되므로, 이 회로에서는 1632 이상이라는 것을 판정하고 있다.
우선, 입력이 1632∼1663이라는 것을 AND 게이트(3321 내지 3326)가 판정한다. 또한, 입력이 1664∼1791이라는 것을 AND 게이트(3327 내지 3330)가 판정한다. 또한, 입력이 1792∼2047이라는 것을 AND 게이트(3331 내지 3333)가 판정한다. 또한, 입력이 2048∼524287(maxoverval이 329266이기 때문에 524287까지 판정함)이라는 것을 OR 게이트(3350 내지 3356)가 판정한다.
따라서, OR 게이트(3340 내지 3342)에 의해 이들의 판정 결과를 통합하는 것에 의해서, 입력값이 1632 이상, 즉 1643 이상이라는 것을 판정할 수 있다.
이 도 6의 회로는 AND 게이트가 13개, OR 게이트가 10개 필요하지만, 종래 예에 대응하는 도 5의 회로에서는 AND 게이트가 22개, OR 게이트가 11개 필요하며, 이 도 6의 회로는 비교해야 할 대상이 감소한 분만큼 종래 예보다 회로 규모를 축소할 수 있어 면적 저감화가 도모되고 또한 그 만큼 소비 전력도 저감할 수 있다.
그런데, 이 L=8, M=203, α=20인 경우는 BS 디지털 방송에 있어서의 오류 정정에 이용할 때 유효한 것이다.
즉, BS 디지털 방송의 경우, 리드 솔로몬 복호기의 정정의 대상으로 되는 1 데이터 세그먼트는 데이터 인터리브 장치내에서는 203바이트로 되어 있고, 송신측의 블럭 인터리브 장치의 열의 수가 203이면, 가장 적은 인터리브 장치의 기억 용량으로 리드 솔로몬 복호기의 정정 능력을 향상시킬 수 있게 된다. 또한, 행 및 열의 수가 증가할수록 연속된 버스트 오류에 대한 리드 솔로몬 복호기의 정정 능력이 향상한다.
또, α는 L×M-1 사이에 공약수가 존재하지 않고 M의 (-X)승과 동일하지 않으면, 2 이상의 임의의 정수이면 되지만, α=20인 경우가 가장 효과가 크다.
또한, 이상의 경우와는 다른 원리에 의해 소비 전력을 저감할 수 있는 경우가 있다.
이하, 이 경우에 대해 설명하면, 표 3은 L=10, M=8, 즉 10행 8열의 데이터에 대해 블럭 인터리브를 실행하는 경우의 레지스터(113)의 값의 추이를, 본 실시예 1과 종래 예의 회로에 대해 대비해서 나타낸 것이다.
이 표 3으로부터 알 수 있는 바와 같이, 종래 예에서는 레지스터(113)의 값이 임계값을 초과하는 회수 overtime가 54회인 데 반해, 본 실시예 1에서는 이것이 45회로 감소되어 있고, 이 overtime의 감소에 의해 오버플로우 처리 장치(140)에 있어서의 계산량이 감소하고, 또한 종래 방식에서는 오버플로우 처리 장치(141)의 오버플로우 회수가 474회이었지만, 본 실시예 1에서는 395회로 감소시키는 것에 의해 오버플로우 처리 장치(141)의 계산량이 감소한다.
이들에 의해 소비 전력의 감소를 실현할 수 있다.
이와 같이, 본 실시예 1에 따른 블럭 인터리브 장치는 블럭 인터리브 장치 출력을 생성하는 L×M 데이터의 기억 장치, 상기 기억 장치로 어드레스를 출력하는 어드레스 생성 장치 및 상기 기억 장치로 제어 신호를 출력하는 기억 장치 제어 장치로 구성되고, 어드레스 생성 장치에 있어서 블럭 번호 b의 0번째의 어드레스 Ab(0)를 0으로 하고, 블럭 번호 b의 n번째(n은 0 이상의 정수)의 어드레스 Ab(n)를 α(α은 2 이상의 정수)와 M의 (b-x)승(x는 0 이상 b 이하의 정수)의 승산 결과와 Ab(n-1)와의 가산 결과를 L×M-1로 나눈 잉여로부터 생성하고, 생성한 어드레스에 대해 판독, 기입을 반복하는 것에 의해 블럭 인터리브를 실행하도록 했으므로, 기억 장치 어드레스 생성 장치를 최적화할 수 있어 최소한의 회로 면적에 의해 블럭 인터리브를 실행하는 것이 가능해진다.
또한, 블럭의 선두 어드레스와 최종 어드레스가 항상 일정하기 때문에, 이들에 대해 기억 장치내의 연속된 영역에 할당하는 것에 의해 2데이터에 대해 동시에 처리하는 것이 가능해져, 기억 장치의 액세스 회수가 저감되고 어드레스 생성 장치의 저소비 전력화가 가능해진다.
또한, 특히, L=8, M=203의 블럭 인터리브를 실행하는 경우, 일본 특허 공표 평성 제 8-511393 호에 기재된 종래의 어드레스 생성 장치에 있어서는 블럭 번호 b의 0번째의 어드레스 Ab(0)를 0으로 하고, 블럭 번호 b의 n번째(n은 0 이상의 정수)의 어드레스 Ab(n)를, M의 (b-x)승(x는 0 이상 b 이하의 정수)과 Ab(n-1)와의 가산 결과를 L×M-1로 나눈 잉여로부터 생성한다. 이 연산을 반복해 가면 잉여의 대상으로 되는 값이 무한히 커지기 때문에, 회로에 의해 실현하는 경우에 초기값을 M의 (b-x-1)승으로 하고 입력에 M을 승산하여 오버플로우 처리 장치 1(이하, 잉여기 1이라 함)로 출력하는 승산기와, 입력을 L×M-1로 나눈 잉여를 승산기와 가산기로 출력하는 잉여기 1과, Ab(n-1)와 잉여기 1의 출력을 가산하여 오버플로우 처리 장치 2(이하, 잉여기 2라고 함)로 출력하는 가산기와, 입력을 L×M-1로 나눈 잉여를 Ab(n)로 하는 잉여기 2로 구성되게 되지만, 잉여기 1은 입력이 L×M-1 이하로 될 때까지 L×M-1을 감산하기 위한 비교기와 감산기로 구성되고, 감산의 대상으로 되는 최소의 값은 『1624』로 되고, 비교기는 『1624』 이상을 판정하는 기능이 필요하게 된다.
그러나, 본 실시예 1에 따른 블럭 인터리브 장치에 있어서, α=20, L=8, M=203으로 하면, 초기값을 M의 (b-x-1)승에 α를 승산한 것으로 하고 입력에 M을 승산하여 잉여기 1로 출력하는 승산기와, 입력을 L×M-1로 나눈 잉여를 승산기와 가산기로 출력하는 잉여기 1과, Ab(n-1)와 잉여기 1의 출력을 가산하여 잉여기 2로 출력하는 가산기와, 입력을 L×M-1로 나눈 잉여를 Ab(n)로 하는 잉여기 2로 구성되고, 잉여기 1은 입력이 L×M-1 이하로 될 때까지 L×M-1을 감산하기 위한 비교기와 감산기로 구성되고, 감산의 대상으로 되는 최소의 값은 『1643』으로 되고, 비교기는 『1643』 이상을 판정하는 기능만으로도 되므로, 비교기의 면적이 저감되어 최소한의 회로 면적으로 블럭 인터리브를 실행하는 것이 가능해진다.
또, 판독 어드레스를 Ab(n)로 하고, 기입 어드레스를 Ab(n-t)(t는 L×M-2 이하의 자연수)로 하고, 각각의 어드레스에 대해 1시점마다 판독과 기입을 반복하는 것에 의해, 블럭 인터리브를 실현하는 것도 가능하다.
또한, Ab(0)를 β로 하고(β는 L×M-1 이하의 자연수), Ab(n)를 α와 M의 (b-x)승의 승산 결과와 Ab(n-1)와의 가산 결과를 L×M-1로 나눈 잉여로부터 어드레스를 생성하는 것도 가능하다.
(실시예 2)
이하, 본 발명의 실시예 2에 대해, 도면을 이용하여 설명한다.
본원 발명에 따른 블럭 디인터리브 장치 및 블럭 디인터리브 방법에 대해 설명한다.
본 실시예 2의 블럭 디인터리브 장치 및 블럭 디인터리브 방법은 기억 장치의 어드레스 생성 장치를 최적화하는 것에 의해, 기억 장치의 제어 회로의 면적 또는 소비 전력을 보다 저감할 수 있도록 한 것이다.
도 7은 본원 발명의 실시예 2에 따른 L×M 데이터의 블럭 디인터리브를 실행하는 블럭 디인터리브 장치를 나타내는 것이다. 도 7에 있어서, (1)은 본 블럭 디인터리브 장치에 의해 블럭 디인터리브를 실행해야 하는 입력 데이터의 입력 단자, (2)는 이 블럭 디인터리브를 실행해야 하는 입력 데이터의 블럭의 선두 입력 데이터마다 동기해서 입력되고, 값 O에서 액티브로 되는 선두 입력 데이터 동기 신호(NBLOCKSYNC 신호)의 입력 단자, (14)는 값 0에서 본 블럭 디인터리브 장치를 초기 상태로 리세트하는 리세트 신호(NRST 신호)의 입력 단자, (6)은 각 입력 데이터마다 발생하는 동기 신호의 입력 단자, (16)은 각 입력 데이터마다 발생하는 동기 신호(클럭 신호 CLK)의 2배의 주파수의 클럭 신호 CLK2의 입력 단자, (12)는 동기 신호 입력 단자(6)로부터 입력되는 동기 신호에 따라서 기억 장치(4)를 제어하는 제어 장치로서, 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여 기억 수단이 데이터의 기입 및 판독을 전환해서 실행하는 제어 수단에 상당한다. (3)은 입력 단자(6)로부터 입력되는 동기 신호(CLK 신호), 입력 단자(2)로부터 입력되는 선두 입력 데이터 동기 신호(NBLOCKSYNC 신호) 및 입력 단자(14)로부터 입력되는 리세트 신호(NRST 신호)에 근거하여 기억 장치(4)의 어드레스를 생성하는 어드레스 생성 장치로서, 기억 수단에 대해 블럭 인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단에 상당한다. (20)은 이 어드레스 생성 장치(3)가 생성한 어드레스를 출력하는 출력 단자, (4)는 기억 장치(기억 수단)로서, (L×M)개의 어드레스가 할당되고, 제어 장치(12)의 제어에 의해 어드레스 생성 장치(3)에 의해서 생성된 어드레스에 입력 단자(1)로부터의 입력 데이터를 기입하고, 이것을 판독하는 것에 의해 블럭 디인터리브를 실행하는 것이다. 또한, AD는 기억 장치(4)의 어드레스 입력 단자, DI는 기억 장치(4)의 데이터 입력 단자, NWE는 기억 장치(4)의 기입 인에이블 입력 단자로서, 값 0이 입력되면 기억 장치(4)가 기입 모드로 된다. DO는 기억 장치(4)의 데이터 출력 단자로서, 이것은 본 블럭 인터리브 장치의 출력 단자이기도 하다. CLK2는 이 기억 장치(4)용의 클럭 입력 단자로서, 클럭 신호 입력 단자(16)로부터 클럭 신호 CLK의 2배의 클럭 신호가 입력된다. (5)는 본 블럭 디인터리브 장치에 의해 인터리브된 데이터를 출력하는 출력 단자이다.
또한, 도 7의 어드레스 생성 장치(3)에 있어서, (10)은 정수 L을 발생시키는 정수 발생기, (13)은 초기값 α가 초기 설정되는 레지스터, (11)은 이 정수 L과 레지스터(13)의 출력 신호를 승산하는 승산기로서, 블럭 번호 b의 블럭이 입력될 때마다, α(α는 2 이상의 정수)와 L의 (b-x)승(x는 0 이상 b 이하의 정수, b는 0 이상의 정수)과의 승산 결과를 생성하는 승산 수단에 상당한다. (40)은 이 승산기(11)의 출력이 오버플로우한 경우의 처리를 행하는 오버플로우 처리 장치로서, 상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 1 클럭마다 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산하여 상기 승산 결과의 오버플로우를 억제하는 것에 의해, 상기 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG를 출력하는 제 1 오버플로우 처리 수단에 상당한다. (21)은 입력 단자(2)로부터의 NBLOCKSYNC 신호를 제어 신호로 해서 승산기(11)의 출력 신호 또는 레지스터(13)의 출력 신호중의 어느 하나를 선택하는 스위치(제 2 선택기), (22)는 이 선택기(21)의 출력 신호로부터 (L×M-1)을 감산하는 감산기(제 2 감산 수단), (23)은 이 선택기(21)의 출력 신호와 (L×M-1)과의 대소를 비교하는 비교기(제 2 비교 수단), (24)는 이 비교기(23)의 출력 신호를 제어 신호로 해서 감산기(22)의 출력 신호 또는 선택기(21)의 출력 신호중의 어느 하나를 선택하는 스위치(제 3 선택기), (18)은 초기값 α를 발생시키는 정수 발생기(제 1 정수 발생 수단), (26)은 입력 단자(14)로부터의 NRST 신호를 제어 신호로 해서, 정수 발생기(18)의 출력 신호 또는 선택기(24)의 출력 신호중의 어느 하나를 선택하여 레지스터(어드레스 증가분값 기억 수단)(13)로 출력하는 스위치(제 1 선택기), (28)은 NBLOCKSYNC 신호를 제어 신호로 해서, 레지스터(13)의 출력 신호 또는 레지스터(27)의 출력 신호중의 어느 하나를 선택하는 스위치(선택기), (27)은 이 선택기(28)의 출력 신호를 입력으로 하는 레지스터이다.
또한, (15)은 이 레지스터(27)의 출력 신호와 레지스터(17)의 출력 신호를 가산하는 가산기로서, 블럭 번호 b의 블럭이 입력될 때마다 상기 제 1 오버플로우 처리 수단에 의해 출력되는 어드레스의 증가분값 REG에 대해, 상기 블럭 번호 b의 n-1번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n-1)를 순차적으로 가산하는 것에 의해, 상기 블럭 번호 b의 블럭내의 n번째의 어드레스 Ab(n)를 순차적으로 생성하는 가산 수단에 상당한다. (41)은 이 가산기(15)의 출력이 오버플로우한 경우의 처리를 행하는 오버플로우 처리 장치로서, 상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산하여 상기 가산 결과의 오버플로우를 억제하는 것에 의해, 상기 기억 수단에 대해 실제로 공급하는 어드레스를 출력하는 제 2 오버플로우 처리 수단에 상당한다. (32)는 가산기(15)의 출력 신호로부터 (L×M-1)을 감산하는 감산기(제 2 감산 수단), (33)은 이 가산기(15)의 출력 신호와 (L×M-1)와의 대소를 비교하는 비교기(제 2 비교 수단), (34)는 이 비교기(33)의 출력 신호를 제어 신호로 해서 가산기(15)의 출력 신호 또는 감산기(32)의 출력 신호중의 어느 하나를 선택하는 스위치(제 5 선택기), (19)는 초기값 0을 발생시키는 정수 발생기, (30)은 NBLOCKSYNC 신호를 제어 신호로 해서, 정수 발생기(19)의 출력 신호 또는 선택기(34)의 출력 신호중의 어느 하나를 선택하는 스위치(제 4 선택기)이다.
또한, (17)은 이 오버플로우 처리 장치(41)의 출력이 세트되는 레지스터(어드레스 기억 수단), (29)는 데이터 입력 단자(1)로부터의 데이터를 유지하여 기억 장치(4)로 출력하는 레지스터이고, 레지스터(13, 27, 17, 29)는 모두 입력 데이터와 동기한 클럭 신호 CLK의 상승에 의해 유지하는 데이터를 갱신한다.
도 8은 본 실시예 2에 따른 블럭 디인터리브 장치의 동작을 모식적으로 도시한 것으로서, 4행 5열의 데이터에 대해 블럭 디인터리브를 실행하는 경우를 예로 들어 나타내고 있다.
이 실시예 2에 따른 블럭 디인터리브 장치는 이하와 같은 블럭 디인터리브 방법에 의해 데이터의 블럭 디인터리브를 실행하는 것이다.
즉, 이 방법은 (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단에 대해, 블럭 디인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하고, 해당 생성된 어드레스를 이용하여 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 것에 의해, 데이터의 블럭 디인터리브를 실행하는 방법에 있어서 블럭 번호 0의 블럭에 대해 어드레스의 증가분값 REG으로서 α(α는 2 이상의 정수)를 부여하고, 이후 블럭 번호가 1증가할 때마다 증가분값 REG에 L을 승산한 것을 해당 블럭의 어드레스의 증가분값 REG로 할 때, 어드레스의 증가분값 REG가 L×M-1을 초과한 경우에 상기 증가분값 REG 대신에 L×M-1에 의한 잉여를 해당 증가분값으로 해서 상기한 처리를 반복하는 것에 의해, α×L**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 각 블럭마다의 어드레스의 증가분값을 구하고, 각 블럭에 있어서 어드레스의 초기값으로서 Ab(0)를 설정하고, 이후 해당 블럭의 어드레스의 증가분값 REG를 순차적으로 가산하는 것에 의해, 해당 블럭내의 각 어드레스 Ab(1) 내지 Ab(n)(n은 1 이상 L×M-1 이하의 정수)를 생성할 때, 어드레스가 L×M-1을 초과한 경우에 해당 어드레스 대신에 L×M-1에 의한 잉여를 상기 어드레스로 하여 상기한 처리를 반복하고, 각 블럭내의 어드레스를 생성하는 것에 의해 상기 어드레스 생성을 실행하고, 또한, 상기 어드레스의 증가분값을 계산할 때의 잉여를 구할지 여부의 판정을, 상기 어드레스의 증가분값과 상기 L×M-1과의 대소 비교로 판정할 때, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 제 1 비교 수단을 사용해서 실행하는 방법에 의해 블럭 디인터리브를 실행하는 것이다.
다음에 도 7의 동작에 대해, 도 8에 도시한 4행 5열의 데이터에 대해 블럭 디인터리브를 실행하는 경우를 예로 들어 설명한다.
도 8에 도시하는 바와 같이, 본 실시예 2에 따른 블럭 디인터리브 장치는 입력 단자(1)로부터 입력되는 데이터를 L×M 데이터의 기억 장치(4)에 기입하고, 이 L×M 데이터의 기억 장치(4)로부터 데이터를 판독하는 것에 의해 블럭 디인터리브를 실행하는 것으로서, 그 때, 도 8에 도시한 바와 같은 순서로 기입 및 판독을 실행하도록 제어 장치(12)가 상기 기억 장치(4)로 제어 신호를 출력하는 것에 의해 그의 기입 및 판독 제어를 실행하고, 또한 어드레스 생성 장치(3)가 그의 기입, 판독시의 어드레스를 생성하고, 이것을 상기 기억 장치(4)로 출력하는 것에 의해, 1 블럭의 기억 영역을 갖는 기억 장치 1면에서 블럭 디인터리브된 출력(5)을 생성할 수 있는 것이다.
이 장치는 블럭 디인터리브 장치의 기억 장치(4)의 어드레스가 도 13의 (k)와 마찬가지로 할당되어 있는 것으로 하면, 우선, 도 8의 (a)와 마찬가지로 REG를 2로 하고, 도 13의 (k)의 어드레스 0을 초기값으로 하여 1입력 데이터마다 2씩 증가하는 기입 어드레스를 순차적으로 생성한다. 그 때, 기입 어드레스가 19(=4×5-1)를 초과하면, 이 19에 의한 잉여를 어드레스로서 사용한다. 따라서, 예를 들어 도 13의 (k)에 있어서의 어드레스 2에 상당하는 어드레스에는, 도 8의 (a)에서는 어드레스 1이 할당된다. 그리고, 이 생성 규칙에 따라서 생성한 기입 어드레스에 따라, 데이터의 기입을 블럭내의 모든 어드레스로 액세스가 완료될 때까지 실행한다.
즉, 도 13의 (k)의 종래 방식에서는 기입 어드레스가 증가하는 순서에 따라서 0 →1 →2 …… →19의 순으로 데이터를 순차 기입하고 있었던 것이, 본 실시예 2에서는 이것을 1개 걸러 기입해 가는 것이다.
다음에, 도 8의 (b)에 도시되어 있는 바와 같이, REG에 4를 곱하고, 도 13의 (k)에 있어서의 어드레스의 배열을 기준으로 해서, 도 13의 (k)의 어드레스 0을 초기값으로 하여 1입력 데이터마다 어드레스가 8(= 2×4)씩 증가하는 어드레스를 순차 생성하지만, 그 때, 어드레스가 19(= 4×5-1)를 초과하면 이 19에 의한 잉여를 어드레스로서 사용한다.
그리고, 도 8의 (b)에 있어서, 이 생성 규칙에 따라서 생성한 어드레스에 따라 판독을 실행하고, 이 판독을 실행한 것과 동일한 순서로 동일한 어드레스에 대해 기입을 실행한다. 또, 이 판독 및 기입은 블럭내의 모든 어드레스로 액세스가 완료될 때까지 실행한다.
다음에, 도 8의 (c)에 도시되어 있는 바와 같이, 이 REG에 대해 4를 곱하지만, 그 값이 19를 초과하고 있기 때문에 이 19에 의한 잉여 13을 구하고, 이것을 REG의 값으로서 사용한다.
그리고, 도 13의 (k)에 도시되어 있는 어드레스의 배열을 기준으로 하여, 그 어드레스 0을 초기값으로 하여 1입력 데이터마다 13씩 증가하는 어드레스를 순차 생성하고, 어드레스가 19(= 4×5-1)를 초과하면 이 19에 의한 잉여를 구하고, 이것을 어드레스로서 사용한다.
그리고, 이 생성 규칙에 따라서 생성한 어드레스에 따라 판독을 실행하고, 이 판독을 실행한 것과 동일한 순서로 동일한 어드레스에 대해 기입을 실행한다. 또, 판독 및 기입은 블럭내의 모든 어드레스로 액세스가 완료될 때까지 실행한다.
이하, 마찬가지의 처리를 반복하는 것에 의해, 순차적으로 상이한 어드레스의 순서로 판독, 기입을 실행해 가면, 이 예에서는 도 8의 (j)의 시점에 있어서 도 8의 (a)와 마찬가지의 어드레스의 순서로 되돌아간다.
이러한 순서를 반복하는 것에 의해, 도 9에 도시하는 바와 같이 1 블럭의 기억 영역을 갖는 기억 장치 1면을 이용하여 블럭 디인터리브를 실행하는 것을 가능하게 하고 있다. 이것은 제어 장치(12)에 의한 기입 판독 제어 및 어드레스 생성 장치(3)에 의해 생성하는 기억 장치(4)의 어드레스를 상술한 바와 같이 고안하는 것에 의해 실현하고 있는 것으로서, 이것에 부가하여, 본 실시예 2에서는 어드레스 생성 장치의 회로 면적이나 소비 전력의 저감이 가능하게 되어 있는 것이다.
이 실시예 2에 있어서의 어드레스 생성 규칙은 이하와 같다.
즉, n번째의 어드레스를 Ab(n), 기억 장치의 행의 수를 L, 열의 수를 M, 블럭 번호 b를 0 이상의 정수, x를 0 이상 b 이하의 임의의 정수라고 하면,
또한,
단, Ab(0) = 0, α는 2 이상의 정수로 한다. 또한, **는 누승을 나타낸다.
따라서, 상술한 예에서는 α=2로서 최초의 기입시에 1개 걸러 기입을 행하고있고, α의 값을 적절하게 설정하는 것에 의해 2개 이상 걸러 기입을 행하는 것도 가능하지만, α와 L×M-1 사이에 공약수가 존재하면 안 된다. 이것은 α와 L×M-1 사이에 공약수가 존재하면, 블럭내의 데이터의 최후의 데이터가 항상 어드레스 L×M-1에 기입되게 하는데, 도중에서 어드레스가 L×M-1로 되게 되어 어드레스의 생성 규칙이 파괴되기 때문이다.
또한, α가 L의 (-X)승과 동일한 경우에도 제외할 필요가 있다. 이 경우는 종래 예와 일치하며, 한층 더한 회로 규모의 축소나 소비 전력의 저감을 실현할 수 없기 때문이다.
다음에 이러한 기입 판독 동작을 실행하는데 필요한 어드레스 생성 장치의 어드레스 생성 동작에 대해 설명한다.
도 7의 어드레스 생성 장치는 수학식 4에 의해 정의된 어드레스 생성 규칙을 실행하는 것에 의해, 기억 장치(4)의 어드레스를 순차 생성한다.
즉, 도 7의 어드레스 생성 장치는 (X+Y) modZ= XmodZ+ YmodZ가 성립하는 것을 이용하여, 수학식 4의 (Ab(n-1)+α×L**(b-x)) mod (L×M-1)에 있어서의, α×L**(b-x) mod (L×M-1) 항의 L의 누승 계산을, 정수 발생기(10), 승산기(11), 레지스터(13)에 의해 L의 반복 승산을 실행하는 것에 의해 실행하고, 또한, 이 항에 있어서의 α의 승산과 (L×M-1)에 의한 잉여 계산을 오버플로우 처리 장치(40)에 의해 실행한다.
또한, 수학식 4의 Ab(n-1) mod (L×M-1) 항의 계산 및 그 초기값 Ab(0)=0의 투입을 오버플로우 처리 장치(41)에 의해 실행한다.
또한, 이들 2개의 항의 잉여 계산 결과의 가산을 가산기(15)에 의해 실행하고 있는 것이다.
선택기(21)에는 승산기(11)의 출력 및 레지스터(13)의 출력이 인가되지만, 입력 데이터가 블럭의 선두에 해당하여, 블럭의 선두 입력 데이터 동기 신호 2가 입력되면, 선택기(21)는 승산기(11)의 출력을 선택하고, 그 이외의 경우는 레지스터(113)의 출력을 선택한다. 이 선택기(21)의 출력은 비교기(23)에 의해 L×M-1과 비교된다. 선택기(24)에는 선택기(21)의 출력으로부터 L×M-1을 감산하는 감산기(22)의 출력 및 선택기(21)의 출력이 인가되지만, 선택기(21)의 출력이 L×M-1 이상이라는 것을 비교기(23)가 판정하면 감산기(22)의 출력을 선택하고, 그 이외의 경우에는 선택기(21)의 출력을 선택한다. 그리고, 이 선택기(24)의 출력은 레지스터(13)로 출력된다. 이것에 의해, 오버플로우 처리 장치(40)는 입력이 L×M-1을 초과하면, 1 클럭마다 L×M-1을 반복해서 감산하는 것에 의해, 그 값이 L×M-1 이하로 되도록 제한한다.
이러한 오버플로우 처리 장치를 마련하는 것에 의해, 어드레스 생성 장치의 내부에서 승산이나 가산을 반복하는 것에 의해, 수치가 L×M-1 이상으로 발산해 가는 것을 억제하고 있다.
도 7의 어드레스 생성 장치(3)에 있어서, 정수 발생기(18)는 초기값 「α」을 발생하고, 이것을 레지스터(13)로 출력한다. 승산기(11)는 이 레지스터(13)의 출력과 정수 발생기(10)의 출력 「L」을 승산하여 오버플로우 처리 장치(40)로 출력한다.
삭제
또한, 정수 발생기(19)는 초기값「0」을 발생하고, 이것을 레지스터(17)로 출력한다. 가산기(15)는 이 레지스터(17)의 출력과 레지스터(13)의 출력을 가산하여 오버플로우 처리 장치(41)로 출력한다.
오버플로우 처리 장치(41)는 그의 입력 데이터가 L×M-1을 초과한 경우, 이것이 L×M-1 이하로 되도록「L×M-1」을 감산하고, 그 결과를 레지스터(17)로 출력하지만, 가산기(15)의 출력이 오버플로우 처리 장치(40)에 의해서 최대값 L×M-1 이하로 억제되고 있고 또한 오버플로우 처리 장치(41) 자신의 출력도 최대값 L×M-1 이하로 억제되기 때문에, 입력 데이터가 L×M-1을 초과한 경우에 감산기(32)가 감산을 실행하는 회수는 1회만으로도 되고, 따라서, 오버플로우 처리 장치(41)는 내부에 오버플로우 처리 장치(40)와 같은 귀환 루프를 갖고 있지 않아 오버플로우 처리 장치(40)보다 회로 규모가 작고, 그만큼 저소비 전력으로 되어 있다.
레지스터(17)는 입력 데이터가 L×M개 입력된 시점에서 블럭의 선두 입력 데이터 동기 신호 2에 의해 초기값「0」으로 리세트되고, 동기 신호 입력(6)에 의해 입력 데이터마다 갱신된다.
이것에 의해, 어드레스 생성 장치에 있어서, 블럭 번호 b의 0번째의 어드레스 Ab(0)를 O으로 하고, 블럭 번호 b의 n번째(n은 0 이상의 정수)의 어드레스 Ab(n)를, α(α은 2 이상의 정수)와 L의 (b-x)승(x는 0 이상 b 이하의 정수)의 승산 결과와 Ab(n-1)와의 합을 L×M-1로 나눈 잉여로부터 생성하는 것에 의해, 본 실시예 2의 장치에 있어서의 기억 장치의 어드레스의 생성을 실행하고 있는 것으로서, 승산이나 가산을 반복하는 것에 의해 어드레스 생성 장치 내부에서 수치가 L×M-1 이상으로 발산해 가는 것을, 오버플로우 처리 장치를 마련함으로써 최대값 L×M-1 이하로 되도록 억제하고 있다.
도 10은 이 도 7의 블럭 디인터리브 장치의 타이밍차트를 도시하고 있다. 이 도 10은 입력 단자(16)로부터의 클럭 신호 CLK2, 입력 단자(6)로부터의 클럭 신호 CLK, 입력 단자(6)로부터의 리세트 신호 NRST, 입력 단자(2)로부터의 신호 NBLOCKSYNC, 입력 단자(14)로부터의 리세트 신호 NRST, 레지스터(13)의 출력 신호, 레지스터(27)의 출력 신호, 레지스터(17)의 출력 신호, 기억 장치(4)의 제어 신호 NWE, 기억 장치(4)의 데이터 입력 신호 DI, 기억 장치(4)의 데이터 출력 신호 DO에 대해 나타내고 있다.
다음에, 이 도 10을 이용하여 도 7의 블럭 디인터리브 장치의 동작을 상세하게 설명한다. 우선, 입력 단자(6)보다 클럭 신호 CLK가, 또한, 입력 단자(16)보다 그 2배의 주파수의 클럭 신호 CLK2가 인가되고 있는 것으로 한다.
시각 t0에서는 입력 단자(2)로부터의 신호 NBLOCKSYNC가 하이 레벨(=값 1 : 이하, H라고 함)이기 때문에, 선택기(21)는 승산기(11)의 출력을 선택하지 않고 레지스터(13)의 출력을 선택한다. 레지스터(13)의 출력값은 부정(不定)이지만, 이것이 L×M-1 (이 예에서는 4×5-1=19)을 초과하고 있으면, 그 값이 L×M-1 이하로 될 때까지 선택기(24)는 감산기(22)의 출력을 계속해서 선택하고, 또한, 선택기(24)의 출력값이 원래 L×M-1 이하이면 선택기(24)는 선택기(21)의 출력을 선택하므로, 선택기(24)의 출력은 L×M-1 이하의 부정값으로 된다.
또한, 이 시각 t0에 있어서, 입력 단자(14)로부터의 리세트 신호 NRST는 H로부터 로우 레벨(=값 0 : 이하, L이라 함)로 변화하고 있고, 선택기(26)는 선택기(24)의 출력이 아니라 정수 발생기(18)로부터의 정수 α(이 예에서는 값 2)를 선택한다. 이 선택기(26)의 출력은 레지스터(13)에 의해 1클럭 CLK분이 유지된 후 출력되지만, 이 시각 t0에서는 레지스터(13)의 출력값은 부정 상태 그대로이다.
또한, 이 시각 t0에서는 NBLOCKSYNC 신호가 H이기 때문에, 선택기(28)는 레지스터(13)의 출력은 선택하지 않고 레지스터(27)의 출력을 선택한다. 이 선택기(28)의 출력은 레지스터(27)의 입력으로 되돌아가므로, 레지스터(27)의 출력은 부정 상태 그대로이다.
또한, 이 시각 t0에 있어서 선택기(30)는 정수 발생기(19)의 출력값 0이 아니라 선택기(34)의 출력을 선택한다. 이 선택기(34)는 가산기(15)의 출력 또는 이것이 L×M-1(이 예에서는 19)을 초과하고 있으면 L×M-1을 감산한 값을 출력하기 때문에, 레지스터(17)에는 선택기(34)의 출력인 부정값과 레지스터(27)의 출력을 가산한 부정값 또는 이것에서 L×M-1을 감산한 값이 입력된다.
다음에, 시각 t1에서는 레지스터(13)에서 값 2가 출력되고, 이것이 승산기(11)에 의해서 정수 발생기(10)로부터의 정수 L(= 값 4)과 승산되지만, 시각 t2에서는, 선택기(21)는 이 승산값 8을 선택하지 않는다. 또한, 선택기(26)는 정수 발생기(18)로부터의 정수 α(= 값 2)를 선택하고 있고, 이것이 레지스터(13)에 입력된다. 선택기(28) 및 선택기(30)도 시각 t0에 있어서의 것과 마찬가지로, 각각 레지스터(27)의 출력 및 선택기(34)의 출력을 선택하고 있다. 이들 상태는 시각 t2에서도 마찬가지이다.
다음에, 시각 t3에서는, 시각 t2에 있어서 레지스터(13)에 입력된 값 2가 레지스터(13)로부터 출력되고, 이것과 정수 발생기(10)로부터의 정수 L(= 값 4)과의 승산값 8이 선택기(21)에 의해 선택되지만, 비교기(23)는 이 승산값 8이 L×M-1(= 값 19)보다 작다고 판정하기 때문에, 선택기(24)는 이 승산값 8을 선택한다. 또한 선택기(26)가 선택기(24)로부터의 승산값 8을 선택하기 때문에, 레지스터(13)에는 이 값 8이 입력된다.
또한, 선택기(28)는 레지스터(13)의 출력값 2를 선택하고, 레지스터(27)에는 이 값 2가 입력된다.
또한, 선택기(30)는 정수 발생기(19)로부터의 정수값 0을 선택하고, 레지스터(17)에는 이 값 0이 입력된다.
다음에, 시각 t4에 있어서, 시각 t3에서 레지스터(13)에 입력된 값 8이 출력되고, 승산기(11)는 이것과 정수 발생기(10)의 출력값 4를 승산하지만, 선택기(21)는 이 승산값 32는 선택하지 않고 레지스터(13)의 출력값을 선택한다. 또한 선택기(26)는 선택기(24)의 출력을 선택하기 때문에, 이 레지스터(13)에는 이 값 8이 입력된다.
또한 선택기(28)는 레지스터(27)의 출력값 2를 선택하고, 이것을 선택기(27)에 입력한다. 가산기(15)는 이 레지스터(27)의 출력값 2와 레지스터(17)의 출력값 0을 가산하고, 선택기(34, 30)는 이 가산값 2를 선택하여 레지스터(17)에 입력한다.
또한, 레지스터(17)의 출력이 값 0으로 되기 때문에, 이것을 기억 장치(4)의 어드레스로 해서, 제어 신호(기입 인에이블 신호) NWE의 H의 타이밍에서 기억 장치(4)로부터 초기값(부정값)이 판독되고, 또한, 시각 t3에 있어서 레지스터(29)에 입력되어 있던 데이터 D0이 제어 신호(기입 인에이블 신호) NWE의 L의 타이밍에서 기억 장치(4)에 입력된다. 이들 상태는 시각 t5 이후에도 마찬가지이지만, 선택기(30)가 선택기(34)의 출력을 선택하고 레지스터(27)의 출력이 값 2를 유지하기 때문에, 가산기(15)의 출력은 CLK 신호가 한 번 입력될 때마다 값 2씩 증가한다. 단, 이것이 값 19 이상으로 되려고 하면, 선택기(34)는 감산기(32)의 출력을 선택하여 그 값을 19 이하로 억제한다.
다음에, 시각 t23에 있어서, 선택기(21)가 승산기(11)의 출력값(32)을 선택하면, 선택기(24)는 비교기(23)의 판정에 의해 감산기(23)의 출력을 선택하고, 값 13(=32-19)을 출력한다. 선택기(26)는 이 값을 선택하여 레지스터(13)에 입력한다. 또한 선택기(28)는 레지스터(13)의 출력을 선택하여 이 값 8을 레지스터(27)에 입력한다.
가산기(15)는 레지스터(27)의 출력값 2와 레지스터(17)의 출력값 19를 가산하지만, 이 시각 t23에 있어서 선택기(30)는 가산기(15)의 출력을 선택하지 않고 정수 발생기(19)의 출력값 0을 선택하고, 이것을 레지스터(17)에 입력한다.
이들, 시각 t4 내지 시각 t23까지의 동작에 의해서, 도 8의 (a)에 도시하는 어드레스가 발생된다. 또한, 기억 장치(4)로부터는 이들 어드레스로부터 초기값(부정값)이 클럭 CLK마다 순차 판독되고, 이 대신에 데이터 D0 내지 D19가 이들 어드레스에 클럭 CLK마다 순차 기입된다.
다음에, 시각 t24에 있어서, 레지스터(13)는 값 13을 출력하고, 승산기(11)는 값 52를 출력하지만, 선택기(21)는 레지스터(13)의 출력값 13을 선택한다. 선택기(24)는 비교기(23)의 판정 결과에 따라 선택기(21)의 출력값 13을 선택하고, 선택기(26)는 이 값 13을 레지스터(13)에 입력한다.
선택기(28)는 선택기(28)의 출력값 13을 레지스터(27)에 입력하기 때문에, 이 값 13은 유지된다.
이들 상태는 시각 t25 이후에서도 마찬가지이지만, 선택기(30)가 선택기(34)의 출력을 선택하고 레지스터(27)의 출력이 값 8을 유지하기 때문에, 가산기(15)의 출력은 CLK 신호가 한 번 입력될 때마다 값 10씩 증가한다. 단, 이것이 값 19 이상으로 되려고 하면, 선택기(34)는 감산기(32)의 출력을 선택하여 그 값을 19 이하로 억제하고, 이것이 레지스터(17)를 거쳐서 1 클럭 CLK 후의 기억 장치(4)에 어드레스로서 인가된다.
이 때문에, 시각 t24 내지 시각 t43까지의 동작에 의해서, 도 8의 (b)에 도시하는 어드레스가 발생된다. 또한, 기억 장치(4)로부터는 이들 어드레스로부터 시각 t4 내지 t23의 기간에 기입되어 있던 데이터 D0 내지 D19가 데이터 DO0 내지 DO19로서 클럭 CLK마다 순차 판독되고, 이 대신에 데이터 D20 내지 D39가 이들 어드레스에 클럭 CLK마다 순차 기입된다.
또한, 시각 t44 이후에 있어서, 레지스터(13)의 출력 1은 클럭 CLK가 1회 입력될 때마다 감소하여, 값 33(=52-19), 값 14(=33-19)로 되어 안정하지만, 레지스터(27)는 시각 t43에 있어서 레지스터(13)로부터 출력된 값 13을 유지하기 때문에, 레지스터(17)의 출력은 이 값 13의 정수배의 값 19에 의한 잉여로 된다.
이 때문에, 시각 t44 내지 시각 t63(도시하지 않음)의 동작에 의해서, 도 8의 (c)에 도시한 어드레스가 발생된다. 또한, 기억 장치(4)로부터는 이들 어드레스로부터 시각 t24 내지 t43의 기간에 기입되어 있던 데이터 D20 내지 D39가 데이터 DO20 내지 DO39(도시하지 않음)로서 클럭 CLK마다 순차적으로 판독되고, 이 대신에 데이터 D40 내지 D59(도시하지 않음)가 이들 어드레스에 클럭 CLK마다 순차적으로 기입된다.
이후, 마찬가지의 동작을 반복하는 것에 의해, 도 8의 (a) 내지 도 8의 (j) 에 도시된 어드레스를 순차적으로 발생시킨다.
또, 수학식 4에 있어서, x의 값을 설정하는 것에 의해, 초기 상태를 도 8의 (a)이외의 어느 하나의 상태로 변경할 수도 있지만, 이 경우도 상술한 처리를 반복하는 것에 의해 초기 상태의 블럭으로 되돌아가고, 이후의 처리는 마찬가지로 반복된다.
이와 같이, 본 실시예 2는 1 블럭의 기억 영역을 갖는 기억 장치에 의해 블럭 디인터리브를 실행할 수 있는 것으로서, 이 점은 종래예와 마찬가지이지만, 본 실시예 2는 그의 어드레스 생성 장치의 회로 면적을 더욱 삭감할 수 있는 것이다.
이하, 이 점에 관하여 설명한다.
표 4의 행1 내지 행 21은 L=8, M=203, 즉 8행 203열의 데이터에 대해 블럭 디인터리브를 실행하는 경우의 레지스터(13)의 값의 계산 결과를 나타낸 것으로서, 표 4의 행 8 내지 11이 종래 예의 레지스터(13)의 값의 계산 결과를 나타낸 것이다. 또한 표 4의 행 18 내지 행 21이 본 실시예 2에 있어서의 레지스터(13)의 값의 계산 결과를 나타낸 것이다.
이들을 대비하는 것에 의해, 종래 예에서는 오버플로우 처리 장치(40)의 임계값을 초과하는 레지스터(13)의 값의 최소값 minoverval이 1624(= L×M의 값, 즉 임계값 1623을 초과하는 최소의 값)인 데 반해, 본 실시예 2에서는 1643, 즉 종래 예보다 크게 되어 있는 것을 알 수 있다.
이와 같이, 본 실시예 2에서는 기억 장치에 기입 및 판독을 실행할 때의 최초의 기입에 있어서, 종래 예에서는 어드레스대로 순차적으로 기입을 실행하고 있는데 반해, 1개 이상 걸러 기입을 실행하도록 하고 있어, 이 최초의 기입 순서가 달라짐으로써 레지스터(13)에 유지되는 임계값을 초과하는 최소의 값이 종래 예와 동일하거나 그보다 커진다.
이것에 의해, 종래 예에서는 1624 이상을 비교하는 비교기가 필요했지만, 본 실시예 1에서는 1643 이상을 비교하는 비교기로도 되므로, 비교기의 기능이 간략화된다.
이와 같이, 오버플로우 처리 장치내의 비교기에 의해 입력과 비교해야 할 임계값을 L×M보다 크게 할 수 있는 경우에는, 비교기의 회로 규모를 종래 예보다 반드시 작게 할 수 있다.
이하, 이 점을 8행 203열의 데이터에 대해 블럭 디인터리브를 실행하는 장치를 예로 들어 설명한다.
이 경우, 종래 예의 방식에서는, 오버플로우 처리 장치(40)내의 비교기(23)는 입력이 L×M, 즉 1624 이상인 것을 판정해야 한다.
도 11은 종래 예의 방식에 의해 8행 203열의 데이터에 대해 블럭 디인터리브를 실행하는 장치의 오버플로우 처리 장치에 있어서의 비교기의 구성을 도시한 것이다.
도 11에 있어서, (2311) 내지 (2319 및 2321 내지 (2333)은 AND 게이트, (2334 내지 2339)는 OR 게이트이다.
다음에 동작에 대해 설명한다. 입력이 1624 이상이라는 것을 판정하기 위해서는, 입력 I의 비트 패턴이 이 1624를 2진수로 전개한 011001011000 이상이라는 것을 판정하면 된다. 그리고, 그 때 입력 I의 하위 3비트는 그 값이 0이든 1이든 판정에 지장은 없으며, 이들 하위 3비트가 모두 1인 경우의 입력값은 1631로 된다. 따라서, 입력값이 1624이라는 것을 판정할 때에 하위 3비트를 입력하지 않음으로써 입력값이 1624∼1631이라는 것을 판정할 수 있다.
AND 게이트(2311 내지 2319)는 이러한 원리에 의해 입력값이 1624∼1631이라는 것을 판정하는 것으로서, AND 게이트(2311 내지 2314)에 의해 입력값의 12비트째 내지 5비트째의 비트 패턴이 01100101100과 일치하는 경우에 각각 1을 출력한다. AND 게이트(2315 및 2316)는 이들 4개의 AND 게이트(2311 내지 2314)의 출력이 모두 1인 경우에 각각 1을 출력하고, AND 게이트(2317)는 AND 게이트(2315 및 2316)의 출력이 모두 1인 경우에 1을 출력한다. 또한, AND 게이트(2318)는 입력값의 4비트째가 1이며, 또한 AND 게이트(2316)의 출력이 1인 경우에 1을 출력한다. 또한, AND 게이트(2319)는 AND 게이트(2317 및 2318)의 출력이 모두 1인 경우에 1을 출력한다. 따라서, AND 게이트(2319)의 출력이 1인 경우, 입력값이 1624∼1631이라는 것이 판명된다.
마찬가지로, AND 게이트(2321 내지 2326)는 입력이 1632∼1663이라는 것을 판정한다. 또한, AND 게이트(2327 내지 2330)는 입력이 1664∼1791이라는 것을 판정한다. 또한, AND 게이트(2331 내지 2333)는 입력이 1792∼2047이라는 것을 판정한다. 또한, OR 게이트(2334 및 2335)는 입력이 2048∼16383(maxoverval이 12824이기 때문에 16383까지 판정함)이라는 것을 판정한다.
따라서, OR 게이트(2336 내지 2339)에 의해 이들 판정 결과를 통합하는 것에 의해, 입력값이 1624 이상이라는 것을 판정할 수 있다.
이와 같이, 종래 예에 있어서 비교기는 입력이 L×M, 즉 1624 이상이라는 것을 판정해야 하지만, 표 4의 행 8 내지 행 11 및 표 4의 행 18 내지 행 21의 대비에 의해, 본 실시예 2에서는 입력이 1643 이상이라는 것을 판정하면 된다.
도 12는 본 실시예 2의 블럭 디인터리브를 실행하는 장치의 오버플로우 처리 장치에 있어서의 비교기의 구성을 도시한 것이다.
도 12에 있어서, (2321 내지 2333)은 AND 게이트, (2334, 2335) 및 (2340 내지 2342)는 OR 게이트이다.
이 도 12에서는 본래 입력이 1643 이상이라는 것을 판정해야 하지만, 이 판정은 1632 이상을 판정하는 경우에 포함되기 때문에, 이 회로에서는 1632 이상이라는 것을 판정하고 있다.
우선, 입력이 (1632∼1663)이라는 것을 AND 게이트(2321 내지 2326)가 판정한다. 또한, 입력이 (1664∼l791)이라는 것을 AND 게이트(2327 내지 2330)가 판정한다. 또한, 입력이 (1792∼2047)이라는 것을 AND 게이트(2331 내지 2333)가 판정한다. 또한, 입력이 (2048∼16383)(maxoverval이 12967이기 때문에 16383까지 판정함)이라는 것을 OR 게이트(2334 및 2335)가 판정한다.
따라서, OR 게이트(2340 내지 2342)에 의해 이들 판정 결과를 통합하는 것에 의해, 입력값이 1632 이상, 즉 1643 이상이라는 것을 판정할 수 있다.
이 도 12의 회로는 AND 게이트가 13개, OR 게이트가 5개 필요하지만, 종래 예에 대응하는 도 11의 회로에서는 AND 게이트가 22개, OR 게이트가 6개 필요하고, 이 도 12의 회로는 비교해야 할 대상이 감소된 분만큼 종래 예보다 회로 규모를 축소할 수 있어 면적 저감화가 도모되고 또한 그만큼 소비 전력도 저감할 수 있다.
그런데, 이 L=8, M=203, α= 0의 경우는 BS 디지털 방송에 있어서의 오류 정정에 이용하는데 유효한 것이다.
즉, BS 디지털 방송의 경우, 리드 솔로몬 복호기의 정정 대상으로 되는 1 데이터 세그먼트는 데이터 인터리브 장치내에서는 203byte(바이트)로 되어 있고, 송신측의 블럭 인터리브 장치의 열의 수가 203이면, 가장 적은 인터리브 장치의 기억 용량으로 리드 솔로몬 복호기의 정정 능력을 향상시킬 수 있게 된다. 또한, 행 및 열의 수가 증가할수록, 연속된 버스트 오류에 대한 리드 솔로몬 복호기의 정정 능력이 향상한다.
따라서, 이것에 대응하는 수신측의 블럭 디인터리브 장치측에서는 상술한 바와 같이 L=8, M=203, α=20으로 설정하는 것에 의해, 최소의 회로 규모로 버스트오류에 대한 정정 능력을 향상시킬 수 있는 블럭 디인터리브 장치를 얻는 것이 가능해진다.
또, α는 L×M-1과의 사이에 공약수가 존재하지 않고 L의 (-X)승과 동일하지 않으면, 2 이상의 임의의 정수로서도 되지만, α=20인 경우가 가장 효과가 크다.
이와 같이, 본 실시예 2에 따른 블럭 디인터리브 장치는 블럭 디인터리브 장치 출력을 생성하는 L×M 데이터의 기억 장치와 상기 기억 장치로 어드레스를 출력하는 어드레스 생성 장치와 상기 기억 장치로 제어 신호를 출력하는 기억 장치 제어 장치로 구성되고, 어드레스 생성 장치에 있어서 블럭 번호 b의 0번째의 어드레스 Ab(0)를 0으로 하고, 블럭 번호 b의 n번째(n은 0 이상의 정수)의 어드레스 Ab(n)를, α(α은 2 이상의 정수)와 L의 (b-x)승(x는 0 이상 b 이하의 정수)의 승산 결과와 Ab(n-1)와의 가산 결과를 L×M-1로 나눈 잉여로부터 생성하고, 생성한 어드레스에 대해 판독, 기입을 반복하는 것에 의해 블럭 디인터리브를 실행하도록 했으므로, 기억 장치 어드레스 생성 장치를 최적화할 수 있어, 최소한의 회로 면적에 의해 블럭 디인터리브를 실행하는 것이 가능해진다.
또한, 블럭의 선두 어드레스와 최종 어드레스가 항상 일정하기 때문에, 이들을 기억 장치내의 연속된 영역에 할당하는 것에 의해 2 데이터에 대해 동시에 처리하는 것이 가능해져, 기억 장치의 액세스 회수가 저감되고 어드레스 생성 장치의 저소비 전력화가 가능해진다.
또한, 특히, L=8, M=203의 블럭 디인터리브를 실행하는 경우, 일본 특허 공표 평성 제 8-511393 호에 기재된 종래의 어드레스 생성 장치에 있어서는 블럭 번호 b의 0번째의 어드레스 Ab(0)를 0으로 하고, 블럭 번호 b의 n번째(n은 0 이상의 정수)의 어드레스 Ab(n)를, L의 (b-x)승(x는 0 이상 b 이하의 정수)과 Ab(n-1)와의 가산 결과를 L×M-1로 나눈 잉여로부터 생성한다. 이 연산을 반복해 가면 잉여의 대상으로 되는 값이 무한히 커지기 때문에, 회로에 의해 실현하는 경우, 초기값을 L의 (b-x-1)승으로 하고 입력에 L을 승산하여 오버플로우 처리 장치 1(이하, 잉여기 1이라 함)로 출력하는 승산기와, 입력을 L×M-1로 나눈 잉여를 승산기와 가산기로 출력하는 잉여기 1과, Ab(n-1)와 잉여기 1의 출력을 가산하여 오버플로우 처리 장치2(이하, 잉여기 2라 함)로 출력하는 가산기와, 입력을 L×M-1로 나눈 잉여를 Ab(n)로 하는 잉여기 2로 구성되게 되지만, 잉여기 1은 입력이 L×M-1 이하로 될 때까지 L×M-1을 감산하기 위한 비교기와 감산기로 구성되고, 감산의 대상으로 되는 최대의 값은 「1624」로 되고, 비교기는「1624」이상을 판정하는 기능이 필요하게 된다.
그러나, 본 실시예 2에 따른 블럭 디인터리브 장치에 있어서, α=20, L=8, M=203으로 하면, 초기값을 L의 (b-x-1)승에 α를 승산한 것으로 하고 입력에 L을 승산하여 잉여기 1로 출력하는 승산기와, 입력을 L×M-1로 나눈 잉여를 승산기와 가산기로 출력하는 잉여기 1과, Ab(n-1)와 잉여기 1의 출력을 가산하여 잉여기 2로 출력하는 가산기와, 입력을 L×M-1로 나눈 잉여를 Ab(n)로 하는 잉여기 2로 구성되고, 잉여기 1은 입력이 L×M-1 이하로 될 때까지 L×M-1을 감산하기 위한 비교기와 감산기로 구성되고, 감산의 대상으로 되는 최대의 값은「1643」으로 되고, 비교기는 「1643」 이상을 판정하는 기능만으로도 되므로, 비교기의 면적이 저감되어 최소한의 어드레스 생성 회로 면적으로 블럭 디인터리브를 실행하는 것이 가능해진다.
또, 판독 어드레스를 Ab(n)로 하고, 기입 어드레스를 Ab(n-t)(t는 L×M-2 이하의 자연수)로 하고, 각각의 어드레스에 대해 1시점마다 판독과 기입을 반복하는 것에 의해, 블럭 디인터리브를 실현하는 것도 가능하다.
또한, Ab(0)를 β로 하고(β는 L×M-1 이하의 자연수), Ab(n)를 α와 L의 (b-x)승의 승산 결과와 Ab(n-1)와의 가산 결과를 L×M-1로 나눈 잉여로부터 생성하는 것도 가능하다.
또한, 상기 실시예 1, 2에서는 BS 디지털 방송의 오류 정정에 적용되는 블럭 인터리브 장치, 블럭 디인터리브 장치를 예로 들어 설명했지만, OFDM(지상파 디지털 방송)용의 블럭 인터리브 장치, 블럭 디인터리브 장치에 적용해도 되고, 상기 실시예 1, 2와 마찬가지의 효과가 얻어진다.
이 경우의 1 블럭(L×M 데이터)의 사이즈는 이하의 72가지(=12×6가지)이다.
또, 상기 실시예 1, 2의 기억 장치(104, 4)는 (L×M)개의 어드레스가 할당되고 있는 것으로 했지만, 보다 대 용량의 메모리에 (L×M)개의 어드레스를 갖는 영역을 마련한 것에 적용해도 되고, 상기 실시예 1, 2와 마찬가지의 효과를 얻는다.
또한, 이 (L×M)개의 어드레스는 연속해서 할당되는 것이 아니라도 되고, 상기 실시예 1, 2와 마찬가지의 효과를 얻는다.
이상과 같이, 본 발명에 따른 블럭 인터리브 장치, 블럭 디인터리브 장치, 블럭 인터리브 방법, 및 블럭 디인터리브 방법은 위성 방송, 지상파 디지털 방송이나 하드 디스크 등의 기억 장치에 있어서, 데이터의 버스트 오류에 대한 내성을 높이기 위해, 데이터의 배치를 데이터의 블럭내에서 변경하는 인터리브 조작 및 그의 반대 조작인 디인터리브 조작을 실행하는데 적합하고, 또한 이들 조작을 기억 장치 1면을 이용하여 실행하고 또한 그의 어드레스 생성에 필요한 회로 규모를 더욱 축소하여 더욱 소비 전력을 저감하는데 적합하다.

Claims (30)

  1. (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단과,
    해당 기억 수단에 대해 블럭 인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단과,
    해당 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여, 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 제어 수단을 구비하고,
    상기 어드레스 생성 수단은,
    블럭 번호 b의 블럭이 입력될 때마다, α(α는 2 이상의 정수)와 M의 (b-x)승(x는 0 이상 b 이하의 정수, b는 0 이상의 정수)과의 승산 결과를 생성하는 승산 수단과,
    상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 승산 결과의 오버플로우를 억제하는 것에 의해, 상기 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG를 출력하는 제 1 오버플로우 처리 수단과,
    블럭 번호 b의 블럭이 입력될 때마다, 상기 제 1 오버플로우 처리 수단에 의해 출력되는 어드레스의 증가분값 REG에 대해, 상기 블럭 번호 b의 n-1번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n-1)를 순차적으로 가산하는 것에 의해, 상기 블럭 번호 b의 블럭내의 n번째 어드레스 Ab(n)를 순차적으로 생성하는 가산 수단과,
    상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 가산 결과의 오버플로우를 억제하는 것에 의해, 상기 기억 수단에 대해 실제로 공급하는 어드레스를 출력하는 제 2 오버플로우 처리 수단을 갖고,
    상기 제 1 비교 수단은 상기 승산 결과와 상기 비교 기준값 L×M-1을 비교할 때에, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 것을 특징으로 하는 블럭 인터리브 장치.
  2. (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단과,
    해당 기억 수단에 대해 블럭 인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단과,
    해당 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여, 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 제어 수단을 구비하고,
    상기 어드레스 생성 수단은,
    블럭 번호 b(b는 1 이상의 정수)의 블럭에 대한 어드레스의 증가분값 REG(b)을 기억하는 어드레스 증가분값 기억 수단과,
    블럭 번호 0의 블럭에 대한 어드레스의 증가분값 REG(0)로서 α(α는 2 이상의 정수)를 상기 어드레스 증가분값 기억 수단에 초기 설정하는 제 1 초기값 설정 수단과,
    상기 어드레스 증가분값 기억 수단의 기억 출력값 REG(c)(c= b-1)에 대해 M을 승산하는 승산 수단과,
    상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산하는 것에 의해, α×M**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 오버플로우를 억제하고, 또한 상기 연산 결과를 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG(b)로서 상기 어드레스 증가분값 기억 수단으로 출력하는 제 1 오버플로우 처리 수단과,
    블럭 번호 b(b는 1 이상의 정수)의 블럭중의 n번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n)를 기억하고 상기 기억 수단의 어드레스 입력으로 출력하는 어드레스 기억 수단과,
    블럭 번호 b의 블럭에 대한 0번째의 어드레스 Ab(0)를 상기 어드레스 기억 수단에 초기 설정하는 제 2 초기값 설정 수단과,
    상기 어드레스 기억 수단의 기억 출력값 Ab(p)에 대해(p= n-1) 상기 어드레스 증가분값 기억 수단으로부터의 어드레스의 증가분값 REG(b)를 가산하는 가산 수단과,
    상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산하는 것에 의해, (Ab(n-1)+α×M**(b-x)) mod (L×M-1)에 상당하는 연산을 실행하여 상기 가산 결과의 오버플로우를 억제하고, 또한 상기 연산 결과를 블럭 번호 b의 블럭에 대한 제 n 번째의 어드레스 Ab(n)로서 상기 어드레스 기억 수단으로 출력하는 제 2 오버플로우 처리 수단을 갖는 것이며,
    상기 제 1 비교 수단은 상기 승산 결과와 상기 비교 기준값 L×M-1을 비교할 때에, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 것을 특징으로 하는 블럭 인터리브 장치.
  3. 제 2 항에 있어서,
    상기 제 1 초기값 설정 수단은,
    상기 α를 발생하는 제 1 정수 발생 수단과,
    리세트 신호의 투입시에 상기 제 1 정수 발생 수단으로부터의 상기 α를 선택하여 상기 어드레스 증가분값 기억 수단으로 출력하는 제 1 선택기를 갖는 것이며,
    상기 제 1 오버플로우 처리 수단은,
    상기 승산 수단의 출력과 상기 어드레스 증가분값 기억 수단의 출력을 입력으로 하여, 상기 각 블럭의 선두에 있어서 해당 승산 수단의 출력을 선택하고, 그 이외의 기간은 상기 어드레스 증가분값 기억 수단의 출력을 선택하는 제 2 선택기와,
    상기 제 2 선택기의 출력과 상기 비교 기준값 A를 비교하는 제 1 비교 수단과,
    상기 제 2 선택기의 출력에서 상기 L×M-1을 감산하는 제 1 감산 수단과,
    상기 제 2 선택기의 출력과 상기 제 1 감산 수단의 출력을 입력으로 하여, 상기 제 2 선택기의 출력이 상기 비교 기준값 이상인 경우에 상기 제 1 감산 수단의 출력을 선택하고, 상기 제 2 선택기의 출력이 상기 비교 기준값 미만인 경우에 해당 제 2 선택기의 출력을 선택하는 제 3 선택기를 갖고,
    리세트 신호의 비투입 기간에 상기 제 1 선택기를 거쳐서 상기 제 3 선택기의 출력을 상기 어드레스 증가분값 기억 수단으로 출력하는 것을 특징으로 하는 블럭 인터리브 장치.
  4. 제 2 항에 있어서,
    상기 제 1 비교 수단은 상기 비교 기준값으로서, 상기 L×M-1을 초과하는 최소값 A 대신에, L×M-1<B<A를 만족시키고 또한 해당 비교 수단을 구성하는 논리 게이트 수가 최소로 되도록 선정한 값 B를 사용하는 것을 특징으로 하는 블럭 인터리브 장치.
  5. 제 2 항에 있어서,
    상기 제 2 초기값 설정 수단은,
    값 0을 발생하는 제 2 정수 발생 수단과,
    리세트 신호의 투입시에 상기 제 2 정수 발생 수단으로부터의 값 0을 선택하여 상기 어드레스 기억 수단으로 출력하는 제 4 선택기를 갖는 것이고,
    상기 제 2 오버플로우 처리 수단은,
    상기 가산 수단의 출력과 비교 기준값 L×M-1을 비교하는 제 2 비교 수단과,
    상기 가산 수단의 출력에서 상기 비교 기준값 L×M-1을 감산하는 제 2 감산 수단과,
    상기 가산 수단의 출력과 상기 제 2 감산 수단의 출력을 입력으로 하여, 상기 가산 수단의 출력이 상기 비교 기준값 이상인 경우에 상기 제 2 감산 수단의 출력을 선택하고, 상기 가산 수단의 출력이 상기 비교 기준값 미만인 경우에 해당 가산 수단의 출력을 선택하는 제 5 선택기를 갖고,
    리세트 신호의 비투입 기간에 상기 제 4 선택기를 거쳐서 상기 제 5 선택기의 출력을 상기 어드레스 기억 수단으로 출력하는 것을 특징으로 하는 블럭 인터리브 장치.
  6. 제 2 항에 있어서,
    상기 α와 L×M-1 사이에 공약수가 존재하지 않도록, 이들의 값을 설정한 것을 특징으로 하는 블럭 인터리브 장치.
  7. 제 2 항에 있어서,
    상기 α와 M의 (-x)승이 동일하게 되지 없도록, 이들의 값을 설정한 것을 특징으로 하는 블럭 인터리브 장치.
  8. 제 2 항에 있어서,
    상기 α, L, M의 값을 각각 α=20, L=8, M=203으로 한 것을 특징으로 하는 블럭 인터리브 장치.
  9. 제 2 항에 있어서,
    상기 (L, M)의 값을,
    L= 96×X(X=1,2,4), M=2,…,13
    또는
    M=2,…,13, L= 96×X(X=1,2,4)
    의 72가지중의 어느 하나의 값으로 한 것을 특징으로 하는 블럭 인터리브 장치.
  10. (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단과,
    해당 기억 수단에 대해 블럭 디인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단과,
    해당 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여, 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 제어 수단을 구비하고,
    상기 어드레스 생성 수단은,
    블럭 번호 b의 블럭이 입력될 때마다, α(α는 2 이상의 정수)와 L의 (b-x)승(x는 0 이상 b 이하의 정수, b는 0 이상의 정수)과의 승산 결과를 생성하는 승산 수단과,
    상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 승산 결과의 오버플로우를 억제하는 것에 의해, 상기 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG를 출력하는 제 1 오버플로우 처리 수단과,
    블럭 번호 b의 블럭이 입력될 때마다, 상기 제 1 오버플로우 처리 수단에 의해 출력되는 어드레스의 증가분값 REG에 대해, 상기 블럭 번호 b의 n-1번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n-1)를 순차적으로 가산하는 것에 의해, 상기 블럭 번호 b의 블럭내의 n번째 어드레스 Ab(n)를 순차적으로 생성하는 가산 수단과,
    상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산해서 상기 가산 결과의 오버플로우를 억제하는 것에 의해, 상기 기억 수단에 대해 실제로 공급하는 어드레스를 출력하는 제 2 오버플로우 처리 수단을 갖고,
    상기 제 1 비교 수단은 상기 승산 결과와 상기 비교 기준값 L×M-1을 비교할 때에, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 것을 특징으로 하는 블럭 디인터리브 장치.
  11. (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단과,
    해당 기억 수단에 대해 블럭 디인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하는 어드레스 생성 수단과,
    해당 어드레스 생성 수단에 의해 생성된 어드레스를 이용하여, 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 제어 수단을 구비하고,
    상기 어드레스 생성 수단은,
    블럭 번호 b(b는 1 이상의 정수)의 블럭에 대한 어드레스의 증가분값 REG(b)을 기억하는 어드레스 증가분값 기억 수단과,
    블럭 번호 0의 블럭에 대한 어드레스의 증가분값 REG(0)로서 α(α는 2 이상의 정수)를 상기 어드레스 증가분값 기억 수단에 초기 설정하는 제 1 초기값 설정 수단과,
    상기 어드레스 증가분값 기억 수단의 기억 출력값 REG(c)(c= b-1)에 대해 L을 승산하는 승산 수단과,
    상기 승산 수단에 의한 승산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 1 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 승산 결과에서 가능한 한 상기 L×M-1을 감산하는 것에 의해, α×L**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 오버플로우를 억제하고, 또한 상기 연산 결과를 블럭 번호 b의 블럭에 대한 어드레스의 증가분값 REG(b)로서 상기 어드레스 증가분값 기억 수단으로 출력하는 제 1 오버플로우 처리 수단과,
    블럭 번호 b(b는 1 이상의 정수)의 블럭중의 n번째(n은 1 이상 L×M-1 이하의 정수)의 어드레스 Ab(n)를 기억하여 상기 기억 수단의 어드레스 입력으로 출력하는 어드레스 기억 수단과,
    블럭 번호 b의 블럭에 대한 0번째의 어드레스 Ab(0)를 상기 어드레스 기억 수단에 초기 설정하는 제 2 초기값 설정 수단과,
    상기 어드레스 기억 수단의 기억 출력값 Ab(p)에 대해(p= n-1) 상기 어드레스 증가분값 기억 수단으로부터의 어드레스의 증가분값 REG(b)를 가산하는 가산 수단과,
    상기 가산 수단에 의한 가산 결과와 비교 기준값 L×M-1과의 대소를 비교하는 제 2 비교 수단을 갖고, 그 비교 결과에 근거하여 상기 가산 결과에서 가능한 한 상기 L×M-1을 감산하는 것에 의해, (Ab(n-1)+α×L**(b-x)) mod (L×M-1)에 상당하는 연산을 실행하여 상기 가산 결과의 오버플로우를 억제하고, 또한 상기 연산 결과를 블럭 번호 b의 블럭에 대한 제 n 번째의 어드레스 Ab(n)로서 상기 어드레스 기억 수단으로 출력하는 제 2 오버플로우 처리 수단을 갖는 것이고,
    상기 제 1 비교 수단은 상기 승산 결과와 상기 비교 기준값 L×M-1을 비교할 때에, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 것을 특징으로 하는 블럭 디인터리브 장치.
  12. 제 11 항에 있어서,
    상기 제 1 초기값 설정 수단은,
    상기 α를 발생하는 제 1 정수 발생 수단과,
    리세트 신호의 투입시에 상기 제 1 정수 발생 수단으로부터의 상기 α를 선택하여 상기 어드레스 증가분값 기억 수단으로 출력하는 제 1 선택기를 갖는 것이고,
    상기 제 1 오버플로우 처리 수단은,
    상기 승산 수단의 출력과 상기 어드레스 증가분값 기억 수단의 출력을 입력으로 하여, 상기 각 블럭의 선두에 있어서 해당 승산 수단의 출력을 선택하고, 그 이외의 기간은 상기 어드레스 증가분값 기억 수단의 출력을 선택하는 제 2 선택기와,
    상기 제 2 선택기의 출력과 상기 비교 기준값 A를 비교하는 제 1 비교 수단과,
    상기 제 2 선택기의 출력에서 상기 L×M-1을 감산하는 제 1 감산 수단과,
    상기 제 2 선택기의 출력과 상기 제 1 감산 수단의 출력을 입력으로 하여, 상기 제 2 선택기의 출력이 상기 비교 기준값 이상인 경우에 상기 제 1 감산 수단의 출력을 선택하고, 상기 제 2 선택기의 출력이 상기 비교 기준값 미만인 경우에 해당 제 2 선택기의 출력을 선택하는 제 3 선택기를 갖고,
    리세트 신호의 비투입 기간에 상기 제 1 선택기를 거쳐서 상기 제 3 선택기의 출력을 상기 어드레스 증가분값 기억 수단으로 출력하는 것을 특징으로 하는 블럭 디인터리브 장치.
  13. 제 11 항에 있어서,
    상기 제 1 비교 수단은 상기 비교 기준값으로서, 상기 L×M-1을 초과하는 최소값 A 대신에, L×M-1<B<A를 만족시키고 또한 해당 비교 수단을 구성하는 논리 게이트 수가 최소로 되도록 선정한 값 B를 사용하는 것을 특징으로 하는 블럭 디인터리브 장치.
  14. 제 11 항에 있어서,
    상기 제 2 초기값 설정 수단은,
    값 0을 발생하는 제 2 정수 발생 수단과,
    리세트 신호의 투입시에 상기 제 2 정수 발생 수단으로부터의 값 0을 선택하여 상기 어드레스 기억 수단으로 출력하는 제 4 선택기를 갖는 것이고,
    상기 제 2 오버플로우 처리 수단은,
    상기 가산 수단의 출력과 비교 기준값 L×M-1을 비교하는 제 2 비교 수단과,
    상기 가산 수단의 출력에서 상기 비교 기준값 L×M-1을 감산하는 제 2 감산 수단과,
    상기 가산 수단의 출력과 상기 제 2 감산 수단의 출력을 입력으로 하여, 상기 가산 수단의 출력이 상기 비교 기준값 이상인 경우에 상기 제 2 감산 수단의 출력을 선택하고, 상기 가산 수단의 출력이 상기 비교 기준값 미만인 경우에 해당 가산 수단의 출력을 선택하는 제 5 선택기를 갖고,
    리세트 신호의 비투입 기간에 상기 제 4 선택기를 거쳐서 상기 제 5 선택기의 출력을 상기 어드레스 기억 수단으로 출력하는 것을 특징으로 하는 블럭 디인터리브 장치.
  15. 제 11 항에 있어서,
    상기 α와 L×M-1 사이에 공약수가 존재하지 않도록, 이들의 값을 설정한 것을 특징으로 하는 블럭 디인터리브 장치.
  16. 제 11 항에 있어서,
    상기 α와 L의 (-x)승이 동일하지 않도록, 이들의 값을 설정한 것을 특징으로 하는 블럭 디인터리브 장치.
  17. 제 11 항에 있어서,
    상기 α, L, M의 값을 각각 α=20, L=8, M= 203으로 한 것을 특징으로 하는 블럭 디인터리브 장치.
  18. 제 11 항에 있어서,
    상기 (L, M)의 값을,
    L= 96×X(X=1,2,4), M=2,…,13
    또는
    M=2,…, 13, L= 96×X(X=1,2,4)
    의 72가지중의 어느 하나의 값으로 한 것을 특징으로 하는 블럭 디인터리브 장치.
  19. (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단에 대해, 블럭 인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하고, 해당 생성된 어드레스를 이용하여 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 것에 의해 데이터의 블럭 인터리브를 실행하는 방법에 있어서,
    블럭 번호 0의 블럭에 대해 어드레스의 증가분값 REG로서 α(α는 2 이상의 정수)를 부여하고, 이후 블럭 번호가 1증가할 때마다 증가분값 REG에 M을 승산한 것을 해당 블럭의 어드레스의 증가분값 REG로 할 때, 어드레스의 증가분값 REG가 L×M-1을 초과한 경우, 해당 증가분값 REG 대신에 L×M-1에 의한 잉여를 해당 증가분값으로 해서 상기한 처리를 반복하는 것에 의해, α×M**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 각 블럭마다의 어드레스의 증가분값을 구하고,
    각 블럭에 있어서 어드레스의 초기값으로서 Ab(0)를 설정하고, 이후 해당 블럭의 어드레스의 증가분값 REG를 순차적으로 가산하는 것에 의해 해당 블럭내의 각 어드레스 Ab(1) 내지 Ab(n)(n은 1 이상 L×M-1 이하의 정수)를 생성할 때, 어드레스가 L×M-1을 초과한 경우에 해당 어드레스 대신에 L×M-1에 의한 잉여를 해당 어드레스로 하여 상기한 처리를 반복하고, 각 블럭내의 어드레스를 생성하는 것에 의해 상기 어드레스 생성을 실행하고,
    또한, 상기 어드레스의 증가분값을 계산할 때의 잉여를 구할지 여부의 판정을, 상기 어드레스의 증가분값과 상기 L×M-1과의 대소 비교로 판정할 때, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 제 1 비교 수단을 사용해서 실행하는 것을 특징으로 하는 블럭 인터리브 방법.
  20. 제 19 항에 있어서,
    상기 제 1 비교 수단은 상기 비교 기준값으로서, 상기 L×M-1을 초과하는 최소값 A 대신에, L×M-1<B<A를 만족시키고 또한 해당 비교 수단을 구성하는 논리 게이트 수가 최소로 되도록 선정한 값 B를 사용하는 것을 특징으로 하는 블럭 인터리브 방법.
  21. 제 19 항에 있어서,
    상기 α와 L×M-1 사이에 공약수가 존재하지 않도록, 이들의 값을 설정한 것을 특징으로 하는 블럭 인터리브 방법.
  22. 제 19 항에 있어서,
    상기 α와 M의 (-x)승이 동일하지 않도록, 이들의 값을 설정한 것을 특징으로 하는 블럭 인터리브 방법.
  23. 제 19 항에 있어서,
    상기 α, L, M의 값을 각각 α=20, L=8, M=203으로 한 것을 특징으로 하는 블럭 인터리브 방법.
  24. 제 19 항에 있어서,
    상기 (L, M)의 값을,
    L= 96×X(X=1,2,4), M=2,…,13
    또는
    M=2,…, 13, L= 96×X(X=1,2,4)
    의 72가지중의 어느 하나의 값으로 한 것을 특징으로 하는 블럭 인터리브 방법.
  25. (L×M)개의 어드레스(L, M은 2 이상의 정수)가 할당된 기억 수단에 대해, 블럭 디인터리브해야 할 (L×M)개의 데이터를 단위로 하는 블럭을 기입하고, 판독할 때의 어드레스를 생성하고, 해당 생성된 어드레스를 이용하여 상기 기억 수단이 상기 데이터의 기입 및 판독을 전환해서 실행하도록 동작 제어를 실행하는 것에 의해 데이터의 블럭 디인터리브를 실행하는 방법에 있어서,
    블럭 번호 0의 블럭에 대해 어드레스의 증가분값 REG로서 α(α는 2 이상의 정수)를 부여하고, 이후 블럭 번호가 1증가할 때마다 증가분값 REG에 L을 승산한 것을 해당 블럭의 어드레스의 증가분값 REG로 할 때, 어드레스의 증가분값 REG가 L×M-1을 초과한 경우, 해당 증가분값 REG 대신에 L×M-1에 의한 잉여를 해당 증가분값으로 해서 상기한 처리를 반복하는 것에 의해, α×L**(b-x) mod (L×M-1)에 상당하는 연산(**는 누승, mod는 잉여, x는 0 이상 b 이하의 정수)을 실행하여 각 블럭마다의 어드레스의 증가분값을 구하고,
    각 블럭에 있어서 어드레스의 초기값으로서 Ab(0)를 설정하고, 이후 해당 블럭의 어드레스의 증가분값 REG를 순차적으로 가산하는 것에 의해 해당 블럭내의 각 어드레스 Ab(1) 내지 Ab(n)(n은 1 이상 L×M-1 이하의 정수)를 생성할 때, 어드레스가 L×M-1을 초과한 경우에 해당 어드레스 대신에 L×M-1에 의한 잉여를 해당 어드레스로 하여 상기한 처리를 반복하고, 각 블럭내의 어드레스를 생성하는 것에 의해 상기 어드레스 생성을 실행하고,
    또한 상기 어드레스의 증가분값을 계산할 때의 잉여를 구할지 여부의 판정을, 상기 어드레스의 증가분값과 상기 L×M-1과의 대소 비교로 판정할 때, 상기 L×M-1 대신에 상기 승산 결과에 포함되는 상기 L×M-1을 초과하는 최소값 A를 상기 비교 기준값으로서 사용하여 대소 비교를 실행하는 제 1 비교 수단을 사용해서 실행하는 것을 특징으로 하는 블럭 디인터리브 방법.
  26. 제 25 항에 있어서,
    상기 제 1 비교 수단은 상기 비교 기준값으로서, 상기 L×M-1을 초과하는 최소값 A 대신에, L×M-1<B<A를 만족시키고 또한 해당 비교 수단을 구성하는 논리 게이트 수가 최소로 되도록 선정한 값 B를 사용하는 것을 특징으로 하는 블럭 디인터리브 방법.
  27. 제 25 항에 있어서,
    상기 α와 L×M-1 사이에 공약수가 존재하지 않도록, 이들의 값을 설정한 것을 특징으로 하는 블럭 디인터리브 방법.
  28. 제 25 항에 있어서,
    상기 α와 M의 (-x)승이 동일하지 않도록, 이들의 값을 설정한 것을 특징으로 하는 블럭 디인터리브 방법.
  29. 제 25 항에 있어서,
    상기 α, L, M의 값을 각각 α=20, L=8, M=203으로 한 것을 특징으로 하는 블럭 디인터리브 방법.
  30. 제 25 항에 있어서,
    상기 (L, M)의 값을,
    L= 96×X(X=1,2,4), M=2,…, 13
    또는
    M=2,…, 13, L= 96×X(X=1,2,4)
    의 72가지중의 어느 하나의 값으로 한 것을 특징으로 하는 블럭 디인터리브 방법.
KR10-2001-7011676A 1999-03-15 2000-03-14 블럭 인터리브 장치, 블럭 디인터리브 장치, 블럭인터리브 방법 및 블럭 디인터리브 방법 KR100485545B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-1999-00068407 1999-03-15
JP6840799 1999-03-15

Publications (2)

Publication Number Publication Date
KR20020006682A KR20020006682A (ko) 2002-01-24
KR100485545B1 true KR100485545B1 (ko) 2005-04-28

Family

ID=13372807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7011676A KR100485545B1 (ko) 1999-03-15 2000-03-14 블럭 인터리브 장치, 블럭 디인터리브 장치, 블럭인터리브 방법 및 블럭 디인터리브 방법

Country Status (6)

Country Link
US (1) US6986081B1 (ko)
EP (1) EP1170871A4 (ko)
JP (1) JP3535833B2 (ko)
KR (1) KR100485545B1 (ko)
TW (1) TW457782B (ko)
WO (1) WO2000055975A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100782214B1 (ko) * 2001-05-15 2007-12-05 엘지전자 주식회사 멀티 캐리어 인터리빙 구현장치 및 방법
US7233612B1 (en) * 2003-02-19 2007-06-19 Advanced Micro Devices, Inc. Wireless communication deinterleaver using multi-phase logic and cascaded deinterleaving
TWI226757B (en) * 2003-11-11 2005-01-11 Benq Corp Address generator for block interleaving
TWI288890B (en) 2005-04-01 2007-10-21 Realtek Semiconductor Corp Method and apparatus for pixel interpolation
TWI288896B (en) 2005-04-12 2007-10-21 Realtek Semiconductor Corp Method and apparatus of deinterlacing
TWI288897B (en) 2005-04-12 2007-10-21 Realtek Semiconductor Corp Method and apparatus of false color suppression
TW200811758A (en) 2006-08-24 2008-03-01 Realtek Semiconductor Corp Method for edge detection, method for motion detection, method for pixel interpolation utilizing up-sampling, and apparatuses thereof
GB2456292B (en) * 2007-11-07 2010-03-17 British Broadcasting Corp Interleaving or de-interleaving a stream of data received in successive frames
TWI366346B (en) * 2008-11-04 2012-06-11 Ralink Technology Corp Method for reading and writing a block interleaver and the reading circuit thereof
US9100102B2 (en) 2011-01-11 2015-08-04 Texas Instruments Incorporated Method to use a preamble with band extension in power line communications

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764649A (en) * 1996-03-29 1998-06-09 Amati Communications Corporation Efficient address generation for convolutional interleaving using a minimal amount of memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4633486A (en) * 1983-07-28 1986-12-30 Cyclotomics, Inc. Method and apparatus for synchronization by coherent reinforcement
US5063533A (en) * 1989-04-10 1991-11-05 Motorola, Inc. Reconfigurable deinterleaver/interleaver for block oriented data
KR0139192B1 (ko) * 1992-09-15 1998-07-01 윤종용 디지탈전송데이타의 디인터리빙방법 및 장치
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 ノキア モービル フォーンズ リミテッド インターリーブプロセス
US5659580A (en) 1994-11-29 1997-08-19 Lucent Technologies Inc. Data interleaver for use with mobile communication systems and having a contiguous counter and an address twister
JP3359291B2 (ja) 1998-07-17 2002-12-24 株式会社ケンウッド デインターリーブ回路
JP2000078030A (ja) * 1998-08-28 2000-03-14 Denso Corp インターリーブアドレス発生器及びインターリーブアドレス発生方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764649A (en) * 1996-03-29 1998-06-09 Amati Communications Corporation Efficient address generation for convolutional interleaving using a minimal amount of memory

Also Published As

Publication number Publication date
EP1170871A1 (en) 2002-01-09
TW457782B (en) 2001-10-01
WO2000055975A1 (fr) 2000-09-21
EP1170871A4 (en) 2004-04-28
KR20020006682A (ko) 2002-01-24
JP3535833B2 (ja) 2004-06-07
US6986081B1 (en) 2006-01-10

Similar Documents

Publication Publication Date Title
US6467062B1 (en) Digital data (multi-bit) storage with discrete analog memory cells
KR100192797B1 (ko) 정적 램을 이용한 길쌈인터리버의 구조
JP3773263B2 (ja) 順列ユニットを含む回路装置及び一組の項目の処理方法
US5446747A (en) Error-correction coding method with at least two systematic convolutional codings in parallel, corresponding iterative decoding method, decoding module and decoder
US3984668A (en) Method for generating pseudo-random bit sequence words and a device for carrying out the method
KR100485545B1 (ko) 블럭 인터리브 장치, 블럭 디인터리브 장치, 블럭인터리브 방법 및 블럭 디인터리브 방법
US5938763A (en) System for transposing data from column order to row order
US10534576B2 (en) Optimization apparatus and control method thereof
KR19990083538A (ko) 콘볼루셔널인터리빙장치및방법과콘볼루셔널디인터리빙장치및방법
US6138262A (en) Memory address generator in convolutional interleaver/deinterleaver
US5276827A (en) Data buffer for the duration of cyclically recurrent buffer periods
US7590917B2 (en) Parameter generation for interleavers
JP4767266B2 (ja) 演算ユニット、エラー訂正復号回路及び誤り位置多項式の演算方法
US6370667B1 (en) CRC operating calculating method and CRC operational calculation circuit
EP2827516B1 (en) Scrambling code generation method, apparatus and scrambling code processing apparatus
US7363552B2 (en) Method and apparatus for convolutional interleaving/de-interleaving technique
US5887036A (en) Logical block for a Viterbi decoder
US6609142B1 (en) Method of performing multiplication with accumulation in a Galois body
JP2009246474A (ja) ターボデコーダ
US6195781B1 (en) Error correction code calculator
JP2001332980A (ja) インタリーブ装置及びインタリーブ方法
KR100484418B1 (ko) 고속푸리에변환장치및방법,가변비트리버스회로,역고속푸리에변환장치및방법과직교주파수분할다중수신및송신장치
KR0155516B1 (ko) 비터비 복호기에서 한개의 메모리를 사용한 상태 매트릭 메모리 운용방법 및 그 장치
US20030177155A1 (en) Random number converter of distribution from uniform to gaussian-like
JP2791215B2 (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: 20110318

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee