(57)【特許請求の範囲】
【請求項１】
Ｎ個のデータから構成されたデータストリームをランダム化させるためにインターリービング間隔（Ｂ）を１周期としてインターリーブする重畳インターリーバにおいて、
前記データストリームを入力し、第１クロック周期の間に前記インターリービング間隔のうち一番目の入力データを出力し、第２乃至第Ｂクロックの各半周期の間に残りの（Ｂ−１）個の入力データをそれぞれ出力する入力手段と、
垂直端が（Ｂ−１）個であり水平長さが（Ｂ／２）×Ｍセルである中間メモリから構成され、インターリービング間隔の二番目のデータ及びＢ番目のデータの一部を格納する（Ｂ／２）×Ｍセルと、インターリービング間隔の三番目のデータ及びＢ−１番目のデータの一部を格納する（Ｂ／２）×Ｍセルと、…、インターリービング間隔のＢ番目のデータの残りの一部を格納する（Ｂ／２）×Ｍセル等が垂直方向に連続的に位置する（ここで、ＭはＮ／Ｂである）メモリ部と、
垂直端が（Ｂ−１）個であり水平長さが（Ｂ−１）×Ｍセルである基本メモリを前記中間メモリに変換させて前記中間メモリをアクセスするための物理的アドレスを発生するアドレス発生手段と、
前記第１クロックの間に前記入力手段から出力される一番目の入力データを出力し、第２乃至第Ｂクロックの間に前記メモリ部からそれぞれ出力される以前のデータを出力する出力手段と、
前記アドレス発生手段から発生した基本垂直アドレスに応じて、前記入力手段、出力手段、及びメモリ部を制御する各種制御信号を出力する制御部とを含むことを特徴とする重畳インターリーバ。
【請求項２】
前記アドレス発生手段は、
前記基本メモリをアクセスする基本垂直アドレス、基本水平群アドレス、及び水平セルアドレスを生成する基本アドレス発生部と、
前記基本メモリで実際に用いられる一部のメモリの位置を用いられないメモリの位置に移動させて形成された前記中間メモリをアクセスするために、前記基本垂直アドレス及び基本水平群アドレスを中間垂直アドレス及び中間水平群アドレスに変換させる中間アドレス変換部と、
前記中間垂直アドレス、前記中間水平群アドレス、及び前記水平セルアドレスを用いて、前記物理的アドレスを生成する物理的アドレス割当部とを含んで構成されることを特徴とする請求項１に記載の重畳インターリーバ。
【請求項３】
前記基本アドレス発生部は、
バイトクロックに同期され、初期値−１から順番に１ずつ増加させて、Ｂ−２までを繰り返してカウントし、カウントされた値を前記基本垂直アドレスとして出力する第１カウンターと、
前記第１カウンターから提供された第１キャリー信号を入力されてカウントし始め、初期値０から順番に１ずつ増加させ、Ｍ−１までを繰り返してカウントし、カウントされた値を前記水平セルアドレスとして出力する第２カウンターと、
前記第２カウンターから提供された第２キャリー信号を入力されてカウントし始め、初期値０から順番に１ずつ増加させ、ＬＣＭまで（ここで、ＬＣＭは、１〜Ｂ−１までの定数に対する最小公倍数である）を繰り返してカウントし、カウントされた値を前記基本アドレスに対する循環周期として出力する第３カウンターと、
前記第１カウンターから提供された基本垂直アドレスに、１を加算して出力する加算器と、
前記加算器の出力値を用いて前記第３カウンターのカウント値をモジューラ演算してその結果値を基本水平群アドレスとして出力するモジューラ計算器とを含んで構成されることを特徴とする請求項２に記載の重畳インターリーバ。
【請求項４】
１クロック周期の間に前記物理的アドレスが保持されながら、前記メモリ部はクロックの前の半周期に物理的アドレスに当たるメモリ位置に格納された以前のデータを読出し、クロックの後の半周期に前記物理的アドレスに当たるメモリ位置に前記入力手段としての現在の入力データを格納することを特徴とする請求項１に記載の重畳インターリーバ。
【請求項５】
Ｎ個のデータから構成されたデータストリームをランダム化させるために、インターリービング間隔（Ｂ）を１周期として重畳インターリーブするのに用いられるメモリのアドレスを生成する方法であって、
（ａ）Ｂ周期の一番目のデータのためにＢ周期の一番目のクロックでは前記メモリのアクセスをディスエーブルさせる段階と、
（ｂ）Ｂ周期の一番目のデータを除いた残りのデータの遅延のために、垂直端が（Ｂ−１）個であり水平長さが（Ｂ−１）×Ｍセルである基本メモリで、（Ｂ−１）個の垂直端のうち何れか一つを選択する基本垂直アドレス（ＡＶ）、（Ｂ−１）個の水平群のうち何れか一つを選択する基本水平群アドレス（ＭＡＨ）、及び何れか一つの水平群内のＭ個のセルのうち何れか一つを選択する水平セルアドレス（ＬＡＨ）を発生する段階（ここで、Ｍ＝Ｎ／Ｂである）と、
（ｃ）垂直端が（Ｂ−１）個であり水平長さが（Ｂ／２）×Ｍセルである中間メモリで前記（ｂ）段階の基本垂直アドレス（ＡＶ）を用いて、前記中間メモリの（Ｂ−１）個の垂直端のうち何れか一つを選択する中間垂直アドレス（ＩＡＶ）に変換し、前記（ｂ）段階の基本水平群アドレス（ＭＡＨ）を用いて、前記中間メモリの（Ｂ／２）個の水平群のうち何れか一つを選択する中間水平群アドレス（ＩＭＡＨ）に変換する段階と、
（ｄ）前記（ｃ）段階の中間垂直アドレス（ＩＡＶ）と中間水平群アドレス（ＩＭＡＨ）及び前記（ｂ）段階の水平セルアドレス（ＬＡＨ）を用いて前記中間メモリをアクセスするための物理的アドレス（ＰＡ）を発生する段階と、
（ｅ）前記（ｄ）段階の物理的アドレス（ＰＡ）を１クロック間保持しながら、クロックの前の半周期にはデータを読出し、クロックの後の半周期にはデータを書込む段階とを含んで構成されることを特徴とするメモリのアドレス発生方法。
【請求項６】
前記（ｂ）段階で、前記基本垂直アドレス（ＡＶ）は、初期値−１からＢ−２まで繰り返してカウントすることにより生成され、前記水平セルアドレス（ＬＡＨ）は、初期値０からＭ−１まで繰り返してカウントすることにより生成され、前記基本水平群アドレス（ＭＡＨ）は、初期値０からＬＣＭ（ここで、ＬＣＭは１〜Ｂ−１までの定数に対する最小公倍数である）まで繰り返してカウントした値を前記基本垂直アドレス（ＡＶ）に１を加算した値にてモジューラ演算することにより生成されることを特徴とする請求項５に記載のメモリのアドレス発生方法。
【請求項７】
前記（ｃ）段階で、前記中間垂直アドレス（ＩＡＶ）は、基本水平群アドレス（ＭＡＨ）が０≦ＭＡＨ＜Ｂ／２である時にはＩＡＶ＝ＡＶであり、Ｂ／２≦ＭＡＨである時にはＩＡＶ＝（Ｂ−２）−ＡＶに変換され、前記中間水平群アドレス（ＩＭＡＨ）は、基本水平群アドレス（ＭＡＨ）が０≦ＭＡＨ＜Ｂ／２である時にはＩＭＡＨ＝ＭＡＨであり、Ｂ／２≦ＭＡＨである時にはＩＭＡＨ＝（Ｂ−１）−ＭＡＨに変換されることを特徴とする請求項５に記載のメモリのアドレス発生方法。
【請求項８】
前記（ｄ）段階で、前記物理的アドレス（ＰＡ）は、前記メモリを垂直方向に走査した場合にはＰＡ＝（ＩＭＡＨ×Ｍ＋ＬＡＨ）×（Ｂ−１）＋ＩＡＶに割り当てられ、前記メモリを水平方向に走査した場合にはＰＡ＝（ＩＡＶ×Ｂ／２×Ｍ＋ＩＭＡＨ）×Ｍ＋ＬＡＨに割り当てられることを特徴とする請求項５に記載のメモリのアドレス発生方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル通信システムのチャンネル符号化器に関し、特にデータの伝送中に発生するバーストエラー（burst error）に効率よく対処するために入力ビットストリームをランダム化させる重畳インターリーバ及びこれに用いられるメモリのアドレス発生方法に関するものである。
【０００２】
【従来の技術】
一般に、ディジタル通信システムにおいては、チャンネルを通したデータの伝送中に発生するエラーを受信側で処理するためにエラー訂正技術を用いる。このようなエラー訂正技術は、送信側で伝送しようとする情報データにパリティデータを付加するエラー訂正符号化(ＥＣＣ)と、符号化されたデータの順番を再配列するインターリーブとに分けられる。
【０００３】
エラー訂正符号化(ＥＣＣ)に用いられるコードとしては、ブロックコードとノンブロックコードがある。リードソロモン符号のようなブロックコードを用いる場合には、情報データを所定単位のブロックに分離した後、ブロック単位でエラーを検出かつ訂正できる冗長ビットを追加して符号化を行う。重畳符号のようなノンブロックコードを用いる場合には、情報データの入力シーケンスに応じて符号化を行い、過去の入力データが現在のデータに影響を及ぼすように符号化することにより、ブロック符号より優れたエラー訂正能力を有する。インターリーブは、重畳符号又はリードソロモン符号で符号化されたデータ列を入力され、所定の方式により該データの順番を再配列して通信チャンネルに伝送するためのものである。即ち、インターリーブ技術によると、入力データストリームをランダム化することにより、ビットエラーが一箇所に集まって発生するバーストエラーを効率よく改善することができる。
【０００４】
一般に、通信チャンネルを通したデータの伝送中に発生するエラーとしては、多数箇所に無作為に発生するランダムエラーと、一箇所に集中して発生するバーストエラーとがある。エラー訂正符号化(ＥＣＣ)は、ランダムエラーに対しては優れた訂正能力を発揮するが、バーストエラーには劣る短所がある。従って、ほとんどの通信システムでは、送信側に元のデータストリームを再配列するインターリーバを具備し、受信側には再配列されたデータを元のデータストリームに復元するディインターリーバを一つ以上具備してバーストエラーに備えている。
【０００５】
このようなインターリーブ技術の種類には、ブロックインターリーブと重畳インターリーブとがある。ブロックインターリーバは入力されたデータストリームをＫ行Ｌ列で構成されたブロック単位(Ｋ×Ｌ)でインターリーブ処理し、この際、データの入出力の手順を異なるようにしてデータストリームをランダム化させる。例えば、入力データストリームを水平に走査してメモリに格納し、メモリに格納されたデータは垂直に走査して出力する。結果的に、ブロックインターリーブによると、二つの連続した入力データの間にインターリービング間隔(Ｌ)だけの任意のビット列が挿入される。即ち、ブロック単位(Ｋ×Ｌ)において、Ｋは符号語長であり、Ｌはインターリービング間隔である。
【０００６】
一方、重畳インターリーバによると、入力データをメモリに一時格納して所定時間だけ遅延させた後に出力させるので、入力時に連続した(隣接した)二つのデータの間に、所定時間だけ遅延され出力される幾つかのデータが挿入される。
【０００７】
図６は、重畳インターリーバと重畳ディインターリーバとを説明するための概念図であり、重畳インターリーバ１０は、入力スイッチ１１と、複数個のシフトレジスタＩ−０〜Ｉ−（Ｂ−１）と、出力スイッチ１２とから構成され、重畳ディインターリーバ１５は、入力スイッチ１６と、複数個のシフトレジスタＤ−（Ｂ−１）〜Ｄ−０と、出力スイッチ１７とから構成される。ここで、重畳インターリーバ１０と重畳ディインターリーバ１５とに入力又は出力されるデータの例はバイト単位のものを挙げることにする。
【０００８】
重畳インターリーバ１０において、シフトレジスタの構造を見ると、最上端Ｉ−０はシフトレジスタ無しに直接入力と出力とが連結され、シフトレジスタの長さは０になる。その次の端Ｉ−１から最終端Ｉ−（Ｂ−１）までのシフトレジスタは、それぞれ、Ｍ、２Ｍ、３Ｍ、…、（Ｂ−１）Ｍの長さを有するので、隣接したシフトレジスタ間の長さの差値はＭバイトになる。
【０００９】
かつ、重畳ディインターリーバ１５のシフトレジスタは重畳インターリーバ１０のシフトレジスタと正反対の構造を有する。即ち、重畳ディインターリーバ１５において、最上端Ｄ−（Ｂ−１）のシフトレジスタは、（Ｂ−１）Ｍの長さを有し、その次の端Ｄ−（Ｂ−２）から最終端Ｄ−０までのシフトレジスタは、それぞれ、（Ｂ−２）Ｍ、…、２Ｍ、Ｍ、０の長さを有する。このような構造の重畳インターリーバは、（Ｂ、Ｍ）重畳インターリーバとして示されるが、この際、Ｂはシフトレジスタの垂直端数であり、インターリービング間隔といい、Ｍは隣接したシフトレジスタ間の長さの差値である。
【００１０】
重畳インターリーバ１０において、入力スイッチ１１と出力スイッチ１２とは相互に同期して動作し、（Ｉ−０）端のシフトレジスタから（Ｉ（Ｂ−１））端までのシフトレジスタを順番にスイッチングする動作を周期Ｂに対して繰り返す。このようなスイッチング動作を通して、（Ｉ−０）端のシフトレジスタに入力される周期Ｂの一番目のデータは遅延されることなく出力され、（Ｉ−１）端のシフトレジスタに入力される周期Ｂの二番目のデータはＢＭだけ遅延された後に出力され、（Ｉ−２）端のシフトレジスタに入力される周期Ｂの三番目のデータは２ＢＭだけ遅延された後に出力される。最後に、（Ｉ−（Ｂ−１））端のシフトレジスタに入力される周期Ｂの最終データは（Ｂ−１）ＢＭだけ遅延された後に出力される。結局、送信側では入力データストリームで連続した二つのデータの間にＢＭ個の任意のデータが挿入されて通信チャンネル１３を通して伝送される。
【００１１】
一方、重畳ディインターリーバ１５において、入力スイッチ１６と出力スイッチ１７とが相互に同期して動作し、（Ｄ−（Ｂ−１））端のシフトレジスタから（Ｄ−０）端までのシフトレジスタを順番にスイッチングする動作を周期Ｂに対して繰り返す。このようなスイッチング動作を通して（Ｄ−（Ｂ−１））端のシフトレジスタに入力される周期Ｂの一番目のデータは（Ｂ−１）ＢＭだけ遅延された後に出力され、（Ｄ−（Ｂ−２））端のシフトレジスタに入力される周期Ｂの二番目のデータは（Ｂ−２）ＢＭだけ遅延された後に出力される。最後に、（Ｄ−０）端のシフトレジスタに入力される周期Ｂの最後のデータは遅延されず出力される。結局、受信側ではシステムが動作し始めて(Ｂ−１)ＢＭクロックが経過した後から実際的にインターリーブされる前の元のデータストリームを得ることができる。
【００１２】
このような重畳インターリーバを具現するための最小限のメモリ量は下記の式１に示した通りである。
【００１３】
（式１）
Ｓmin＝｛Ｍ×Ｂ×（Ｂ−１）｝／２  （bytes）
【００１４】
ここで、Ｂはインターリービング間隔、Ｍは隣接したシフトレジスタ間の長さの差値をそれぞれ示す。
【００１５】
重畳インターリーバにおいて、データ格納手段を、図６のように、先入先出バッファー(ＦＩＦＯ)のようなレジスタで具現する場合には非常に多数のハードウエアが必要になるので、実際の具現時には面積や複雑度を考えてレジスタの代りにＲＡＭ（Random Access Memory）を用いる。
【００１６】
【発明が解決しようとする課題】
ところが、データの格納手段としてＲＡＭを用いると、ハードウエア量は著しく減るが、ＲＡＭのアドレス制御ロジックが追加されるし、小容量のメモリを用いて高精度の重畳インターリーブを行うためのアドレス制御方法が必要になる。
【００１７】
本発明は、前記のような問題点を解決するために案出されたものであり、必要な最小限のメモリのみを用いてハードウエアのサイズ及びコストを減少させた重畳インターリーバを提供することにその目的がある。
【００１８】
かつ、本発明の他の目的は、前記重畳インターリーバに用いられるメモリのアドレス発生方法を提供することである。
【００１９】
【課題を解決するための手段】
前記目的を達成するために本発明の重畳インターリーバは、Ｎ個のデータから構成されたデータストリームをランダム化させるためにインターリービング間隔（Ｂ）を１周期としてインターリーブする重畳インターリーバにおいて、前記データストリームを入力し、第１クロック周期の間に前記インターリービング間隔のうち一番目の入力データを出力し、第２乃至第Ｂクロックの各半周期の間に残りの（Ｂ−１）個の入力データをそれぞれ出力する入力手段と、垂直端が（Ｂ−１）個であり水平長さが（Ｂ／２）×Ｍセルである中間メモリから構成され、インターリービング間隔の二番目のデータ及びＢ番目のデータの一部を格納する（Ｂ／２）×Ｍセルと、インターリービング間隔の三番目のデータ及びＢ−１番目のデータの一部を格納する（Ｂ／２）×Ｍセルと、…、インターリービング間隔のＢ番目のデータの残りの一部を格納する（Ｂ／２）×Ｍセル等が垂直方向に連続的に位置する（ここで、ＭはＮ／Ｂである）メモリ部と、垂直端が（Ｂ−１）個であり水平長さが（Ｂ−１）×Ｍセルである基本メモリを前記中間メモリに変換させて前記中間メモリをアクセスするための物理的アドレスを発生するアドレス発生手段と、前記第１クロックの間に前記入力手段から出力される一番目の入力データを出力し、第２乃至第Ｂクロックの間に前記メモリ部からそれぞれ出力される以前のデータを出力する出力手段と、前記アドレス発生手段から発生された基本垂直アドレスに応じて、前記入力手段、出力手段、及びメモリ部を制御する各種制御信号を出力する制御部とを含むことを特徴とする。
【００２０】
前記他の目的を達成するために本発明によるメモリアドレスの発生方法は、Ｎ個のデータから構成されたデータストリームをランダム化させるためにインターリービング間隔Ｂを１周期として重畳インターリーブするのに用いられるメモリのアドレスを生成する方法は、（ａ）Ｂ周期の一番目のデータのためにＢ周期の一番目のクロックでは前記メモリのアクセスをディスエーブルさせる段階と、（ｂ）Ｂ周期の一番目のデータを除いた残りのデータの遅延のために、垂直端が（Ｂ−１）個であり水平長さが（Ｂ−１）×Ｍセルである基本メモリで、（Ｂ−１）個の垂直端のうち何れか一つを選択する基本垂直アドレス（ＡＶ）、（Ｂ−１）個の水平群のうち何れか一つを選択する基本水平群アドレス（ＭＡＨ）、及び何れか一つの水平群内のＭ個のセルのうち何れか一つを選択する水平セルアドレス（ＬＡＨ）を発生する段階（ここで、Ｍ＝Ｎ／Ｂである）と、（ｃ）垂直端が（Ｂ−１）個であり水平長さが（Ｂ／２）×Ｍセルである中間メモリで前記（ｂ）段階の基本垂直アドレス（ＡＶ）を前記中間メモリの（Ｂ−１）個の垂直端のうち何れか一つを選択する中間垂直アドレス（ＩＡＶ）に変換し、前記（ｂ）段階の基本水平群アドレス（ＭＡＨ）を前記中間メモリの（Ｂ／２）個の水平群のうち何れか一つを選択する中間水平群アドレス（ＩＭＡＨ）に変換する段階と、（ｄ）前記（ｃ）段階の中間垂直アドレス（ＩＡＶ）と中間水平群アドレス（ＩＭＡＨ）及び前記（ｂ）段階の垂直セルアドレス（ＬＡＨ）を用いて前記中間メモリをアクセスするための物理的アドレス（ＰＡ）を発生する段階と、（ｅ）前記（ｄ）段階の物理的アドレス（ＰＡ）を１クロック間保持しながら、クロックの前の半周期にはデータを読出し、クロックの後の半周期にはデータを書込む段階とを含んで構成されることを特徴とする。
【００２１】
【発明の実施の形態】
以下、本発明を添した図面に基づき更に詳細に説明する。
【００２２】
図１に示した本発明による重畳インターリーバは、入力バッファー２１と、メモリ、例えばスタティックＲＡＭ（ＳＲＡＭ）２２と、アドレス発生部２３と、出力バッファー２４と、制御部２５とから構成される。かつ、アドレス発生部２３は基本アドレス発生部２３−１と、中間アドレス変換部２３−２と、物理的アドレス割当部２３−３とから構成される。かつ、本発明ではメモリをＳＲＡＭ２２により具現したが、これは他の種類のメモリに取り替えることができる。更に、入出力データはバイト単位のものを例に挙げる。
【００２３】
図２は図１に示したアドレス発生部２３から生成される基本アドレスを用いたメモリマッピング図であり、図３は図１に示したアドレス発生部から生成される中間アドレスを用いたメモリマッピング図であり、それぞれ（１２、１７）重畳インターリーバを例に挙げたものである。
【００２４】
図２を参照すると、基本アドレスに応じるメモリセルの配列は重畳インターリーバ（図６の重畳インターリーバ１０）の（Ｉ−１）端から（Ｉ−（Ｂ−１））端までのシフトレジスタの配列と同一である。図６と比較すると、重畳インターリーバの最前端（Ｉ−０）はシフトレジスタが要らないので、この部分に当たるメモリセルが示されていないという差がある。この差は、図６の入出力スイッチ１１、１２が最前端（Ｉ−０）を選択する時点で図１の入力バッファー２１から出力バッファー２４へと直接データを伝達することにより解消される。前記メモリマッピング図では、基本垂直アドレス（ＡＶ）０〜１０を用いてメモリの垂直端のうち何れか一つを選択し、基本水平群アドレス（ＭＡＨ）０〜１０と水平セルアドレス（ＬＡＨ）０〜１６とを用いて水平メモリセルを選択する。即ち、基本水平群アドレス（ＭＡＨ）は１１個のレジスタ群（一つのレジスタ群は１７個の連続したレジスタから構成されている）のうち何れか一つを示すアドレスであり、水平セルアドレス（ＬＡＨ）は基本水平群アドレス（ＭＡＨ）により選択されたレジスタ群を構成する１７個のレジスタのうち何れか一つの位置を示すアドレスである。
【００２５】
ところが、図２のように割り当てられた基本アドレスにメモリをマッピングする場合には、ＳＲＡＭ２２の全体サイズ、即ち１２１レジスタ群（＝１１×１１）のうち斜線により示した６６レジスタ群のみを用いていることがわかる。従って、用いられない残りの５５レジスタ群のメモリの無駄を招き、よって重畳インターリーバのハードウエアのサイズ及びコストが増加される。
【００２６】
図３は、図２のようなメモリの無駄を無くすためにメモリの使用を最適化させるメモリのマッピング方法を示したものであり、図２で基本水平群アドレス（ＭＡＨ）６〜１０番に当たる１５個のレジスタ群（アルファベットａ〜ｏに示す）を中間アドレスを用いて基本水平群アドレス（ＭＡＨ）０〜５番で用いない部分に移してマッピングしたものである。移動されたレジスタ群の位置は図２と同一なアルファベット（ａ〜ｏ）により示される。このようなメモリのマッピング時に用いられた中間垂直アドレス（ＩＡＶ）０〜１０はメモリの垂直端を選択し、中間水平群アドレス（ＩＭＡＨ）０〜５と水平セルアドレス（ＬＡＨ）０〜１６は水平メモリセルを選択する。図３のようなメモリマッピングによると、ＳＲＡＭ２２は１レジスタ群が１７（＝Ｍ）個のレジスタから構成された６６レジスタ群（＝（Ｂ−１）×Ｂ／２）の最小限の容量を有し、メモリを無駄に使用することなく重畳インターリーブを行うことができる。
【００２７】
図４は図１に示した基本アドレス発生部２３−１の細部ブロック図であり、基本アドレス発生部２３−１は、第１カウンター４１、第２カウンター４２、第３カウンター４３、加算器４４及びモジューラ計算器４５から構成される。
【００２８】
図５のＡ〜Ｉは、図１に示した重畳インターリーバの動作を示したタイミング図であり、（１２、１７）重畳インターリーバを例に挙げて入出力データ及び制御信号のレベル値を示したものである。ここで、図５のＡはバイトクロック信号（ｂｙｔｅ＿ｃｌｏｃｋ）であり、図５のＢは入力データストリームＤ（ｋ、ｉ）であり、バイトクロック（ｂｙｔｅ＿ｃｌｏｃｋ）に同期して入力バッファー２１に入力される。ここで、Ｄ（ｋ、ｉ）はｋ番目の周期のｉ番目のデータを示す。
【００２９】
図５のＣは入力バッファー２１のイネーブル信号ＩＮ＿ＥＮＡを示したものであり、制御部２５で基本垂直信号（ＡＶ）をモニタして１２クロック周期の一番目のクロックでは、ローレベルを有し、１２クロック周期の残りの１１クロックにおいて、各クロックの前の半周期には、ハイレベルを有し、後の半周期には、ローレベルを有する。これは、アクティブロー信号である。
【００３０】
図５のＤは入力バッファー２１の出力データを示したものであり、入力バッファーイネーブル信号ＩＮ＿ＥＮＡにより１クロック遅延された後、一番目のデータはバイトクロック（図５のＡ参照）の一番目のクロックで全周期の間にデータバスに格納され、１２周期の残りの１１個のデータは残りの１１クロックで各クロックの後の半周期のみにデータバスに格納される。
【００３１】
図５のＥは読出イネーブル信号ＲＥＡＤを示したものであり、制御部２５で基本垂直信号（ＡＶ）をモニタして１２クロック周期の一番目のクロックでは、ハイレベルを有し、１２クロック周期の残りの１１クロックのうち各クロックの前の半周期には、ローレベルを有し、後の半周期には、ハイレベルを有する。これは、アクティブロー信号である。
【００３２】
図５のＦは書込みイネーブル信号ＷＲＩＴＥを示したものであり、制御部２５で基本垂直信号（ＡＶ）をモニタして１２クロック周期の一番目のクロックでは、ハイレベルを有し、１２クロック周期の残りの１１クロックのうち各クロックの前の半周期には、ハイレベルを有し、後の半周期には、ローレベルを有する。これは、アクティブロー信号である。
【００３３】
図５のＧはＳＲＡＭ２２をアクセスするためにアドレスバスに格納されたアドレスデータのことを示したものであり、アドレス発生部２３から提供された物理的アドレス（ＰＡ）３１は１２クロック周期の一番目のクロックを除いた残りのクロックで各クロックの全周期の間に同一な値に保持される。
【００３４】
図５のＨはデータバスに格納されたデータであり、１２クロック周期の一番目のクロックと、残りの１１クロックの後の半周期には入力バッファー２１の出力データＤ（ｋ、ｉ）が格納され、残りの１１クロックの前の半周期には物理的アドレス（ＰＡ）（図５のＧ参照）に応じてＳＲＡＭ２２から読出された出力データＭ（ｋ、ｉ）が格納される。
【００３５】
図５のＩは出力バッファー２４の出力データであり、１２クロック周期の一番目のクロックでは入力バッファー２１から供給されるデータが出力され、残りの１１クロックではそれぞれＳＲＡＭ２２から読出されたデータが出力される。
【００３６】
次いで、上記のように構成された本実施の形態の重畳インターリーバの動作について詳細に説明する。
【００３７】
図１において、入力バッファー２１は入力データをバイト単位でラッチして制御部２５から提供された入力バッファーイネーブル信号ＩＮ＿ＥＮＡに応じて入力データをデータバスに出力する。データバスに出力されたデータは、制御部２５の書込みイネーブル信号ＷＲＩＴＥ及びアドレス発生部２３から提供された物理的アドレス（ＰＡ）３１に応じてＳＲＡＭ２２の該当するセル位置に格納される。ＳＲＡＭ２２に格納されたデータは、制御部２５の読出イネーブル信号及びアドレス発生部２３から提供された物理的アドレス（ＰＡ）３１に応じて該当するセル位置から読出されてデータバスに出力される。出力バッファー２４は、制御部２５から提供された出力バッファーイネーブル信号ＯＵＴ＿ＥＮＡに応じてデータバスに格納されたデータをラッチして出力する。
【００３８】
本発明の実施形態では各クロックの前の半周期にはＳＲＡＭ２２からデータを出力する読出動作を行い、クロックの残りの後の半周期にはデータバスに格納された入力データをＳＲＡＭ２２に格納する書込み動作を行う。このために、制御部２５ではアドレス発生部２３の基本アドレス発生部２３−１から出力された基本垂直アドレス（ＡＶ）２６に応じて、各クロックの前の半周期にはＳＲＡＭ２２の読出イネーブル信号ＲＥＡＤと出力バッファー２４の出力バッファーイネーブル信号ＯＵＴ＿ＥＮＡとを提供し、各クロックの後の半周期にはＳＲＡＭ２２の書込みイネーブル信号ＷＲＩＴＥと入力バッファー２１の入力バッファーイネーブル信号ＩＮ＿ＯＵＴとを提供する。
【００３９】
アドレス発生部２３において、基本アドレス発生部２３−１はリセット信号（ＲＥＳＥＴ）によりリセットされ、バイトクロック（ＣＬＫ）に応じて図２のように垂直端数が（Ｂ−１）であり、水平メモリセルの数が（Ｂ−１）Ｍであるメモリマッピングのための基本垂直アドレス（ＡＶ）２６と基本水平群アドレス（ＭＡＨ）２７及び水平セルアドレス（ＬＡＨ）２８とを発生させる。中間アドレス変換部２３−２では、基本アドレス発生部２３−１から提供された基本垂直アドレス（ＡＶ）２６と基本水平群アドレス（ＭＡＨ）２７とを用いて、図３のように垂直端数が（Ｂ−１）であり、水平メモリセル数が（Ｂ／２×Ｍ）であるメモリマッピングのための中間垂直アドレス（ＩＡＶ）２９と中間水平群アドレス（ＩＭＡＨ）３０とに変換させて出力する。かつ、物理的アドレス割当部２３−３では、中間アドレス変換部２３−２から中間垂直アドレス（ＩＡＶ）２９と中間水平群アドレス（ＩＭＡＨ）３０とを提供され、基本アドレス発生部２３−１から水平セルアドレス（ＬＡＨ）２８を提供され、図３のようなＳＲＡＭ２２に実際にアクセスするための１次元の物理的アドレス（ＰＡ）３１を出力する。
【００４０】
本発明による重畳インターリーバの動作は、１クロック周期の間に物理的アドレス（ＰＡ）３１は変らず、各クロックの前の半周期に物理的アドレス（ＰＡ）３１が示すメモリ位置に格納されたデータを読出してデータバスに出力させ、そのクロックの後の半周期には現在の入力データを読出されたアドレスのメモリ位置に格納する。即ち、メモリの物理的アドレス（ＰＡ）３１は一つのクロックに対して同じ値を保持しながら、インターリービング間隔（Ｂ＝１２クロック）毎に同一な基本垂直アドレス（ＡＶ）を示すようになる。ところが、基本垂直アドレス（ＡＶ）に応じて水平位置を示すアドレスである基本水平群アドレス（ＭＡＨ）と水平セルアドレス（ＬＡＨ）は変り、特に基本水平群アドレス（ＭＡＨ）の変化周期は基本垂直アドレス（ＡＶ）に応じて変る。
【００４１】
基本水平群アドレス（ＭＡＨ）の変化周期は、図６のシフトレジスタ端の長さと同一な周期性を有し、表１は基本水平群アドレス（ＭＡＨ）の変化周期を説明するためのものである。
【００４２】
【表１】
0003882097.tif 000002
【００４３】
前記表１と図２とを比較して説明すると、基本垂直アドレス（ＡＶ＝−１）は遅延されず出力される１２周期の一番目のデータＤ（ｋ、０）のためのものであり、基本垂直アドレス（ＡＶ＝０）は１２周期の二番目のデータＤ（ｋ、１）を格納するための、図２の一番目の垂直端のアドレスであり、基本垂直アドレス（ＡＶ＝１）は１２周期の三番目のデータＤ（ｋ、２）を格納するための、図２の二番目の垂直端のアドレスである。即ち、基本垂直アドレス（ＡＶ）は１クロック毎に１ずつ増加され−１、０、１、…、１０、−１、０、１、…に出力される。基本水平群アドレス（ＭＡＨ）は、１２周期のｉ番目のデータが１７個入力された後（即ち、水平セルアドレス（ＬＡＨ）が０〜１６まで変化した後、再び最初の０になる瞬間に）、１ずつ増加される。即ち、基本水平群アドレス（ＭＡＨ）は図２の斜線部分のメモリ位置を示すために、基本垂直アドレス（ＡＶ）及び水平セルアドレス（ＬＡＨ）に応じて周期的に変化する。
【００４４】
このような基本垂直アドレス（ＡＶ）、基本水平群アドレス（ＭＡＨ）及び水平セルアドレス（ＬＡＨ）を生成するための基本アドレス発生部（２３−１）に対して図４に基づき更に詳細に説明すると次の通りである。
【００４５】
図４において、第１カウンター４１はリセット信号（ＲＳＴ）によりリセットされた後、全体システムのバイトクロック（図５のＡ参照）に応じて同期され、初期値−１から順番に１ずつ増加させて１０までカウントし、再び−１からカウント周期（Ｂ＝１２）に対してカウント動作を繰り返す。第１カウンター４１のカウント値は４ビットの基本垂直アドレス（ＡＶ）２６に当たる。
【００４６】
第２カウンター４２は第１カウンター４１から提供された第１キャリー信号ＣＡＲＲＹ１に応じてカウントし始めて、初期値０から順番に１ずつ増加させて１６までカウントし、再び０からカウント周期（Ｍ＝１７）に対してカウント動作を繰り返す。第２カウンター４２のカウント値は５ビットの水平セルアドレス（ＬＡＨ）２８に当たる。
【００４７】
第３カウンター４３は第２カウンター４２から提供された第２キャリー信号ＣＡＲＲＹ２に応じてカウントし始めて、初期値０から順番に１ずつ増加させて２７７１９までカウントし、再び０からカウント周期（ＬＣＭ＝２７７２０）に対してカウント動作を繰り返す。ここで、２７７２０は０〜１１までの定数に対する最小公倍数に当たり、基本アドレスを生成する循環周期である。
【００４８】
加算器４４は基本垂直アドレス（ＡＶ）２６に１を加えて出力し、モジューラ計算器４５は加算器４４の出力値（ＡＶ＋１）を用いて第３カウンター４３のカウント値をモジューラ演算して出力する。モジューラ計算器４５から出力された値は基本水平群アドレス（ＭＡＨ）２７に当たる。
【００４９】
再び図１に戻り、前記のように発生された基本アドレス２６、２７、２８は、下記の式により実際のＳＲＡＭ２２にアクセスできる１次元の実際のアドレス（ＰＡ）３１に変換される。
【００５０】
まず、中間アドレス変換部２３−２では、基本垂直アドレス（ＡＶ）２６と基本水平群アドレス（ＭＡＨ）２７から中間垂直アドレス（ＩＡＶ）２９と中間水平群アドレス（ＩＭＡＨ）３０を計算するが、その変換式は下記の式２及び式３の通りである。
【００５１】
（式２）
ＩＡＶ＝ＡＶ、（０≦ＭＡＨ＜Ｂ／２）
ＩＡＶ＝（Ｂ−２）−ＡＶ、（Ｂ／２≦ＭＡＨ）
【００５２】
（式３）
ＩＭＡＨ＝ＭＡＨ、（０≦ＭＡＨ＜Ｂ／２）
ＩＭＡＨ＝（Ｂ−１）−ＭＡＨ、（Ｂ／２≦ＭＡＨ）
【００５３】
前記のように計算された２次元の中間垂直アドレス(ＩＡＶ)２９と中間水平群アドレス(ＩＭＡＨ)３０は、図２の基本メモリの群セルａ、ｂ、ｃ、…、ｎ、ｏが図３の中間メモリのように移動した時の各メモリセルの位置を示すアドレスに当たる。
【００５４】
そこで、物理的アドレス割当部２３−３では、図３のようなメモリをアクセスするために２次元の中間垂直アドレス２９、中間水平群アドレス３０及び水平セルアドレス２８を１次元の物理的アドレス(ＰＡ)３１にマッピングさせる。
【００５５】
中間垂直アドレス２９、中間水平群アドレス３０及び垂直セルアドレス２８を物理的アドレス(ＰＡ)３１に割り当てる規則は、図３のメモリセルの配列を垂直又は水平に走査して順次にアドレス値を割り当てることである。物理的アドレス(ＰＡ)の割当式は下記の式４ａ及び式４ｂの通りである。
【００５６】
（式４ａ）
ＰＡ＝（ＩＭＡＨ×Ｍ＋ＬＡＨ）×（Ｂ−１）＋ＩＡＶ  ：垂直に走査したアドレス
【００５７】
（式４ｂ）
ＰＡ＝｛ＩＡＶ×（Ｂ／２）×Ｍ＋ＩＭＡＨ｝×Ｍ＋ＬＡＨ  ：水平に走査したアドレス
【００５８】
前記のような変換を行う中間アドレス変換部２３−２及び物理的アドレス割当部２３−３は、周知の加算器と演算器とを用いて簡単に実現することができる。ここで、インターリービング間隔（Ｂ）と一つのレジスタ群を構成するレジスタ数（Ｍ＝Ｎ／Ｂ）（ここで、Ｎは一つのデータストリームを構成するデータの数）は予め設定された定数である。
【００５９】
制御部２５では、基本アドレス発生部２３−１から基本垂直アドレス（ＡＶ）２６を入力され、入力バッファー２１のための入力バッファーネーブル信号ＩＮ＿ＥＮＡ、ＳＲＡＭ２２のための読出イネーブル信号ＲＥＡＤ及び書込みイネーブル信号ＷＲＩＴＥ、並びに出力バッファー２４のための出力バッファーイネーブル信号ＯＵＴ＿ＥＮＡを発生する。
【００６０】
即ち、制御部２５では、基本垂直アドレス（ＡＶ）２６を監視して、現在のクロックがインターリービング間隔（Ｂ）、即ち１２クロックのうち何番目のクロックであるかを判断し、該クロックに応じて制御信号を発生させる。その反面、図５のＡ乃至図５のＩを参照して説明すると次の通りである。制御部２５から供給される制御信号はアクティブロー信号であることを例に挙げる。
【００６１】
周期１２クロック（図５のＡ参照）のうち一番目のクロックに同期して一番目のデータＤ（ｋ、０）が入力バッファー２１に入力されると、一番目のデータＤ（ｋ、０）は、ＳＲＡＭ２２を通らず、そのまま出力バッファー２４を通して出力させるべきである。従って、入力時点から１クロック遅延された二番目のクロックの間、入力バッファーイネーブル信号ＩＮ＿ＥＮＡ（図５のＣ参照）は、ローレベルを保持して、入力バッファー２１に入力されたデータ（図５のＢ参照）を図５のＤのようにデータバスに出力する。これと同時に、読出イネーブル信号ＲＥＡＤ（図５のＥ参照）と書込みイネーブル信号ＷＲＩＴＥ（図５のＦ参照）とは、ハイレベルを保持してＳＲＡＭ２２をディスエーブル状態にする。この際、出力バッファーイネーブル信号ＯＵＴ＿ＥＮＡは、ローレベルを保持し、出力バッファー２４は、データバスに格納された一番目のデータＤ（ｋ、０）をラッチして図５のＩのように出力する。
【００６２】
周期１２のデータのうち、一番目のデータＤ（ｋ、０）を除いた残りのデータＤ（ｋ、１）〜Ｄ（ｋ、１１）は、ＳＲＡＭ２２に格納させて所定の時間だけ遅延した後に出力させるべきである。従って、周期１２クロック（図５のＡ参照）の二番目のクロックに同期して二番目のデータＤ（ｋ、１）が入力バッファー２１に入力されると、三番目のクロックの前の半周期ではＳＲＡＭ２２の物理的アドレス（ＰＡ）３１（図５のＧ参照）に格納された以前の入力データＭ（ｋ、１）を読出してデータバスに出力するように、読出イネーブル信号ＲＥＡＤ（図５のＥ参照）は、ローレベルを保持し、書込みイネーブル信号ＷＲＩＴＥ（図５のＦ参照）は、ハイレベルを保持する。三番目のクロックの後の半周期では、入力バッファーイネーブル信号ＩＮ＿ＥＮＡ（図５のＣ参照）は、ローレベルを保持して入力データＤ（ｋ、１）をデータバス上に格納させ、以前の入力データＭ（ｋ、１）が格納された物理的アドレス（図５のＧ参照）と同一な位置に現在入力されたデータＤ（ｋ、１）を格納するように、読出イネーブル信号ＲＥＡＤ（図５のＥ参照）は、ハイレベルを保持し、書込みイネーブル信号ＷＲＩＴＥ（図５のＦ参照）は、ローレベルを保持する。かつ、出力バッファー２４に入力される出力バッファーイネーブル信号ＯＵＴ＿ＥＮＡは、ローレベルに遷移され、三番目のクロックの前の半周期にデータバス（図５のＨ参照）上に格納されたＳＲＡＭ２２からの以前の入力データＭ（ｋ、１）が出力バッファー２４によりラッチされて図５のＩのように出力される。
【００６３】
引き続き、前記二番目のデータＤ（ｋ、１）を処理する過程で発生された制御信号は、残りのデータＤ（ｋ、２）〜Ｄ（ｋ、１１）を処理する過程でも同一な値に遷移されながら入力バッファー２１、ＳＲＡＭ２２及び出力バッファー２４を制御するようになる。
【００６４】
前述した動作を要約すると、１２周期のデータストリームで一番目に入力されたデータＤ（ｋ、０）は、入力バッファー２１でＳＲＡＭ２２を通らず直接出力バッファー２４を通して出力される。１２周期の二番目以下に入力されたデータＤ（ｋ、１）〜Ｄ（ｋ、１１）は、アドレス発生部２３から提供された物理的アドレス（ＰＡ）３１に応じてＳＲＡＭ２２に格納され、所定の時間だけ遅延された後に出力される。この際、物理的アドレス（ＰＡ）３１は、１クロック間保持されながら、各クロックの前の半周期にはＳＲＡＭ２２に格納されていた過去の入力データＭ（ｋ、１）〜Ｍ（ｋ、１１）が出力され、各クロックの後の半周期には現在の入力データＤ（ｋ、１）〜Ｄ（ｋ、１１）がＳＲＡＭ２２に格納される。
【００６５】
【発明の効果】
以上、本発明によると、メモリのアドレス及び制御信号を効率よく発生させて高精度の重畳インターリーブ動作を行うことができ、理論上必要な最小限のメモリサイズ（＝Ｂ×Ｍ×（Ｂ−１）／２）（バイト）のみを用いるので、インターリーバのハードウエアのサイズ及びコストを減少させることができる。
【図面の簡単な説明】
【図１】図１は、本発明の一実施の形態の重畳インターリーバの構成を示すブロック図である。
【図２】図２は、図１に示すアドレス発生部から生成される基本アドレスを用いたメモリマッピング図である。
【図３】図３は、図１に示すアドレス発生部から生成される中間アドレスを用いたメモリマッピング図である。
【図４】図２に示す基本アドレス発生部の細部ブロック図である。
【図５】図５は、図１に示す各部の動作を説明するタイミング図である。
【図６】図６は、一般的な重畳インターリーバの概念図である。
【符号の説明】
２１  入力バッファー
２２  ＳＲＡＭ
２３  アドレス発生部
２３−１  基本アドレス発生部
２３−２  中間アドレス変換部
２３−３  物理アドレス割当部
２４  出力バッファー
２５  制御部
４１  第１カウンター
４２  第２カウンター
４３  第３カウンター
４４  加算器
４５  モジューラ計算器
【図１】
0003882097.tif 000003
【図２】
0003882097.tif 000004
【図３】
0003882097.tif 000005
【図４】
0003882097.tif 000006
【図５】
0003882097.tif 000007
【図６】
0003882097.tif 000008