【手続補正書】
【提出日】平成16年5月31日(2004.5.31)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ｐビット長のビットデータ列を有する元データをｉ行ｊ列のマトリックス状に仮想的に配列するものとして、前記各行ｉに位置する各ビットデータを前記各列ｊの順に沿って選択することで、前記元データをインターリーブする方式の符号誤り訂正回路であって、
２のべき乗のビット長２ｎを有する記憶領域を複数備える記憶手段と、
前記記憶手段の各記憶領域に、前記元データを記憶させる制御手段と、
前記仮想的なマトリックスにおける前記ｉ行の位置を指す第１のデータを生成する第１のデータ生成手段と、
前記仮想的なマトリックスにおける前記ｊ列の位置を指す第２のデータを生成する第２のデータ生成手段と、
前記第１，第２のデータに基づいて、前記ｊ列の位置に存在するビットデータの記憶されている前記記憶手段の記憶領域を指すアドレスデータを生成して前記制御手段に転送するアドレスデコード手段と、
前記第１，第２のデータに基づいて、前記アドレスデータの指す前記記憶領域に記憶されているビットデータのうち、前記ｉ行の位置に存在するビットデータを指すビット選択データを生成する選択データデコード手段と、
を具備し、
前記制御手段が、前記第１，第２のデータ生成手段、アドレスデコード手段、選択データデコード手段を、前記仮想的なマトリックスにおける前記各行ｉと各列ｊの順に沿って選択するタイミングを制御することでインターリーブ処理をなすことを特徴とする符号誤り訂正回路。
【請求項２】
前記アドレスデータに対応する前期記憶手段の記憶領域から読み出したビット長２ｎのビットデータ列を保持するデータ保持手段と、
前記データ保持手段に保持されたビット長２ｎのビットデータ列の中から前記ビット選択データの指すビットデータを選択して出力するビット選択手段とを
更に具備し、
前記制御手段は、前記ビット選択手段の出力をインターリーブされたデータとして出力させることを特徴とする請求項１記載の符号誤り訂正回路。
【請求項３】
ｐビット長のビットデータ列を有する元データをｉ行ｊ列のマトリックス状に仮想的に配列するものとして、前記各行ｉに位置する各ビットデータを前記各列ｊの順に沿って選択することで、前記元データをインターリーブする符号誤り訂正方法であって、
２のべき乗のビット長２ｎを有する記憶領域を複数備える記憶手段を備えておき、前記記憶手段の各記憶領域に、前記元データを記憶させる第１の工程と、
前記仮想的なマトリックスにおける前記ｉ行の位置を指す第１のデータを生成する第２の工程と、
前記仮想的なマトリックスにおける前記ｊ列の位置を指す第２のデータを生成する第３の工程と
前記第１，第２のデータに基づいて、前記ｊ列の位置に存在するビットデータの記憶されている前記記憶手段の記憶領域を指すアドレスデータを生成する第４の工程と、
前記第１，第２のデータに基づいて、前記アドレスデータの指す前記記憶領域に記憶されているビットデータのうち、前記ｉ行の位置に存在するビットデータを指すビット選択データを生成する第５の工程とを備えることを特徴とする符号誤り訂正方法。
【請求項４】
前記アドレスデータに対応する前記記憶手段の記憶領域からビット長２ｎのビットデータ列を読み出して保持する第６の工程と、
前記第６の工程で保持したビット長２ｎのビットデータ列の中から、前記ビット選択データの指すビットデータを、インターリーブされたデータとして選択する第７の工程とを更に備えることを特徴とする請求項３記載の符号誤り訂正方法。
【請求項５】
前記符号誤り訂正回路は、送信データをインターリーブして送信する通信装置に備えられることを特徴とする請求項１又は請求項２に記載の符号誤り訂正回路。
【請求項６】
前記符号誤り訂正方法は、送信データをインターリーブして送信する通信装置に適用されることを特徴とする請求項３又は請求項４に記載の符号誤り訂正方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
【課題を解決するための手段】
本発明の符号誤り訂正回路及び符号誤り訂正方法は、ｐビット長のビットデータ列を有する元データをｉ行ｊ列のマトリックス状に仮想的に配列するものとして、上記各行ｉに位置する各ビットデータを上記各列ｊの順に沿って選択することで、上記元データをインターリーブするものであって、２のべき乗のビット長２ｎを有する記憶領域を複数備える記憶手段を備えておき、上記記憶手段の各記憶領域に、上記元データを記憶させ、上記仮想的なマトリックスにおける上記ｉ行の位置を指す第１のデータを生成し、上記仮想的なマトリックスにおける上記ｊ列の位置を指す第２のデータを生成し、上記第１，第２のデータに基づいて、上記ｊ列の位置に存在するビットデータの記憶されている上記記憶手段の記憶領域を指すアドレスデータを生成し、上記第１，第２のデータに基づいて、上記アドレスデータの指す上記記憶領域に記憶されているビットデータのうち、上記ｉ行の位置に存在するビットデータを指すビット選択データを生成することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
この本発明によれば、２のべき乗２ｎの記憶手段を用いて元データをインターリーブすることができる。このため、マイクロコンピュータシステムに適した符号誤り訂正回路及び符号誤り訂正方法を提供することができる。また、２のべき乗２ｎの記憶手段を用いることで、マイクロプロセッサを用いた場合に、記憶手段をメモリアクセスする回数を低減することができる。これにより、マイクロプロセッサの負担が低減されると共に、インターリーブに要する処理時間を短縮することができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
また、記憶部２は、各アドレスｒ＝０〜R-1に対応する複数の記憶領域Ｄ０〜ＤＲ−１を有し、各記録領域Ｄ０〜ＤＲ−１は、２のべき乗２ｎ（ｎは任意の正整数、以下同じ）で表されるビット長のデータを記憶できるようになっている。例えば、記憶部２は、マイクロプロセッサＣＰＵがデータ処理を行うのに適した、８ビット／ワード構成、１６ビット／ワード構成、３２ビット／ワード構成などで複数ワードの記憶容量を有している。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
尚、インターリーブすべき元データＤinの１ブロック長がｐ個のビットから成る場合には、上記各記録領域Ｄ０〜ＤＲ−１のビット長２ｎとの関係から、プリセッタブルカウンタ１３は、次式（１）の条件を満足するビット長ｘのバイナリカウンタが用いられる。  
２ｘ−１＜ｐ≦２ｘ        （１）  
例えば、元データＤinの１ブロック長がｐ＝３０ビット、上記各記録領域Ｄ０〜ＤＲ−１のビット長が２ｎ＝８ビットであれば、２４＜３０≦２５となるので、上記式（１）の条件から、ｘ＝５ビット長のバイナリカウンタが用いられる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
また、例えば、元データＤinの１ブロック長がｐ＝４８ビット、上記各記録領域Ｄ０〜ＤＲ−１のビット長が２ｎ＝１６ビットであれば、２５＜４８≦２６となるので、上記式（１）の条件から、ｘ＝６ビット長のバイナリカウンタが用いられる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
データレジスタ１６は、並列入力並列出力型のバイナリレジスタであり、その記憶容量は、記憶部２の各記録領域Ｄ０〜ＤＲ−１に記憶される各データ（インターリーブすべきデータ）と同じビット長２ｎに設定されている。また、詳細については後述するが、マイクロプロセッサＣＰＵからコントロールバス３を介して制御信号ＣＮＴ４が供給されると、記憶部２から読み出されたデータ（インターリーブすべきデータ）をデータバス５を介して入力（ロード：load）し、そのデータＤＬＤを保持しつつビットセレクタ１７側へ並列出力する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
より具体的には、図２に示すように、ビットセレクタ１７は、データレジスタ１６の２ｎビット分の出力端子Ｑ０〜Ｑｎ−１に並列接続されたスイッチ素子Ｓ０〜Ｓｎ−１を備えて構成されており、各スイッチ素子Ｓ０〜Ｓｎ−１の導通／非導通の制御がセレクトデータＤＢＴによって行われる。また、スイッチ素子Ｓ０〜Ｓｎ−１は、セレクトデータＤＢＴによって何れか１つだけが排他的に導通するようになっている。そして、データＤoutをインターリーブの施されたデータとして出力し、マイクロコンピュータシステムＭＣＳ側へ転送する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
更に、記憶部２の各記録領域Ｄ０〜ＤＲ−１は、８ビット／ワード構成となっているものとする。この場合には、マイクロプロセッサＣＰＵは、図６に示すように、元データＤinを８ビットずつに分割して、記憶部２の記憶領域Ｄ０，Ｄ１，Ｄ２・・・に記憶させる。つまり、記憶領域Ｄ０の各ビットＡ０，７〜Ａ０，０にビットデータＣ０〜Ｃ７を記憶させ、次の記憶領域Ｄ１にビットデータＣ８〜Ｃ１５を記憶させ、次の記憶領域Ｄ２にビットデータＣ１６〜Ｃ２３を記憶させるというように、元データＤinを８ビットずつ記憶させる。また、ｐ個のビットデータＣ０〜Ｃｐ−１が８ビットずつに分けられない場合には、最後に記憶されたビットデータＣｐ−１に続く残りのビットはそのまま（Don't Care）にする。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
更にまた、本発明をより理解しやすくするために、上記元データＤinは１ブロック当たりｐ＝３０ビットのビット列Ｃ０〜Ｃ２９で構成され、更に各ビットデータＣ０〜Ｃ２９は、図５（ａ）に示すように、｛Ｃ０，Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６，Ｃ７，Ｃ８，Ｃ９，Ｃ１０，Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ１５，Ｃ１６，Ｃ１７，Ｃ１８，Ｃ１９，Ｃ２０，Ｃ２１，Ｃ２２，Ｃ２３，Ｃ２４，Ｃ２５，Ｃ２６，Ｃ２７，Ｃ２８，Ｃ２９｝＝｛０，１，０，１，１，０，１，０，１，０，１，０，０，１，０，
１，０，１，０，０，０，０，０，０，１，０，０，０，１，０｝であるものとする。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
そして、図４に対応する図５（ｂ）のアルゴリズムに示すように、ビット列Ｃ０〜Ｃｐ−１を各行ｉに５ビット長ずつに分けてマトリックス状に配列して、各列ｊ毎に上から下へ順に読み出すのと同様な操作によってインターリーブを行うものとする。また、マイクロプロセッサＣＰＵは、図６に対応する図５（ｃ）に示すように、元データＤinを、８ビット／ワード構成となっている各記録領域Ｄ０〜ＤＲ−１に８ビット長ずつに分割して記憶させる。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
まずステップ１００において、マイクロプロセッサＣＰＵが、図５（ｃ）に示したように、１ブロック分の元データＤinを記憶部２に記憶させる。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
このように、ステップ１０６〜１１２の処理が行われると、プリセッタブルカウンタ１３の計数データＤｘは、元データＤinの各ビットデータ列の順番を示すことになる。この計数データＤｘのうちの最上位ビット（ＭＳＢ）側からｘ−ｎ個のバイナリデータＤＭは、図５（ｃ）に示したビットデータ列の行の順番を示すデータとなり、計数データＤｘのうちの最下位ビット（ＬＳＢ）側からｎ＝３個のバイナリデータＤＬは、図５（ｃ）に示した上記行でのＭＳＢからの順番を示すデータとなる。  そして、最初の（第１番目の）ステップ１０６〜１１２の処理では、バイナリデータＤＬによってｉ＝０、バイナリデータＤＭによってｊ＝０が選択されることになる。また、ステップ１１４の処理が行われて、ステップ１０６〜１１２の処理が繰り返されると、列カウンタ１１の列計数データＤjc
が１ずつインクリメントされるので、上記バイナリデータＤＭによって、図５（ｂ）の列ｊが１→２→３→４の順に選択される。一方、行ｉについては、ステップ１１０において行計数データＤicがクリアされるので、行ｉ＝０が選択される。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
次に、ステップ１２０において、マイクロプロセッサＣＰＵが、取得したアドレスデータＤＡＤＲに基づいて記憶部２をメモリアクセスし、アドレスデータＤＡＤＲの指すアドレスｒの記憶領域に記憶されている２ｎ＝８ビット分の元データを読み出して、データレジスタ１６にロードする。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
例えば、ステップ１２０の処理が最初に行われた場合には、プリセッタブルカウンタ１３のバイナリデータＤＭは「０」になるので、アドレスデータＤＡＤＲの値も「０」となり、図５（ｃ）に示したアドレスｒ＝０に該当する記憶領域Ｄ０中のビット列｛Ｃ０，Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６，Ｃ７｝＝｛０，１，０，１，１，０，１，０｝がデータレジスタ１６に格納される。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
例えば、ステップ１２２の処理が最初に行われた場合には、プリセッタブルカウンタ１３のバイナリデータＤＬは「０」になるので、セレクトデータＤＢＴによって図２中のスイッチ素子Ｓｎ−１が導通状態となり、上記ビット列｛０，１，０，１，１，０，１，０｝のうちの最上位ビット、すなわち一番左側のビットデータ”０”が出力される。つまり、図５（ａ）（ｃ）に示すビットＡ０，７のビットデータＣ０＝０が、インターリーブされた第１番目のビット出力Ｄoutとなる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
例えば、ステップ１２４の処理が最初に行われた場合には、列指定データＤjは「５」、計数データＤxは「０」となっているので、加算データＤＡＤは「５」となり、プリセッタブルカウンタ１３には「５」がプリセットされる。この結果、プリセッタブルカウンタ１３のバイナリデータＤＬは「５」となり、バイナリデータＤＭは「０」のままになるので、図５（ａ）（ｃ）に示すビットＡ０，２のビットデータＣ５＝０が選択されることになる。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
例えば、ステップ１２６の処理が最初に行われた場合には、行計数データＤicは「１」となり、図５（ｂ）に示したｉ＝２の行が指定された後、再びステップ１１２からの処理が繰り返される。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
この２回目の処理では、プリセッタブルカウンタ１３のバイナリデータＤＭは「０」になるので、図５（ｃ）に示したアドレスｒ＝０に該当する記憶領域Ｄ０に記憶されているビット列｛Ｃ０，Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６，Ｃ７｝＝｛０，１，０，１，１，０，１，０｝がデータレジスタ１６にロードされる。更に、プリセッタブルカウンタ１３のバイナリデータＤＬは「５」になるので、ビットデータＣ５＝０が出力される。つまり、第２回目の処理では、図５（ａ）（ｃ）に示すビットＡ０，２のビットデータＣ５＝０が、インターリーブされた第２番目のビット出力Ｄoutとなる。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
こうして、ステップ１１６〜１２６の処理が６回繰り返されると、図５（ｂ）に示した列ｊ＝０に該当するビット列｛Ｃ０，Ｃ５，Ｃ１０，Ｃ１５，Ｃ２０｝＝｛０，０，１，１，０，０｝がインターリーブされたビット出力Ｄoutとなる。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
次に、第６回目の処理が終了すると、ステップ１１２において、Ｄic＜Ｄｉとなるので、ステップ１１４において列ｊ＝１が設定され、更にステップ１１０において行ｉ＝０が設定された後、ステップ１１６〜１２６の処理が６回繰り返される。つまり、図５（ｂ）に示した列ｊ＝１に該当するビット列｛Ｃ１，Ｃ６，Ｃ１１，Ｃ１６，Ｃ２１｝＝｛１，１，０，０，０，０｝がインターリーブされたビット出力Ｄoutとなる。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
以下同様にして、ステップ１０６〜１２６の処理が繰り返されることで、図５（ｂ）に示した列ｊ＝２，３，４に該当する残りのビット列もインターリーブされビット出力Ｄoutとなる。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
このように本実施形態によれば、２のべき乗２ｎの記憶部２を用いて元データＤinをインターリーブすることができる。このため、マイクロコンピュータシステムに適した符号誤り訂正回路を提供することができる。また、２のべき乗２ｎの記憶部２を用いると、マイクロプロセッサＣＰＵが記憶部２をメモリアクセスする回数を低減することができる。これにより、マイクロプロセッサＣＰＵの負担が低減されると共に、インターリーブに要する処理時間を短縮することができる。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
尚、本実施形態では、説明の都合上、８ビット／ワード構成の記憶部２を用いる場合を説明したが、本発明はこれに限定されるものではない。すなわち、２のべき乗２ｎの記憶部であればよい。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
また、図５（ｂ）に示したように、元データＤinのビット列を６行５列のマトリックス状に配列して、所定の順序で読み出すようにしてインターリーブを行う場合について説明したが、本発明は６行５列のマトリックスに限定されるものではなく、任意の行数及び列数のマトリックスに配列して、所定の順序で読み出す方式のインターリーブを行うことができる。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
【発明の効果】
以上説明したように本発明によれば、２のべき乗２ｎの記憶手段を用いて元データをインターリーブすることができるため、マイクロコンピュータシステムに適した符号誤り訂正回路及び符号誤り訂正方法を提供することができる。また、２のべき乗２ｎの記憶手段を用いることで、マイクロプロセッサの記憶手段に対するメモリアクセス回数を低減することができる。これにより、マイクロプロセッサの負担が低減されると共に、インターリーブに要する処理時間を短縮することができる。