JP3973066B2 - 符号誤り訂正回路及び符号誤り訂正方法 - Google Patents
符号誤り訂正回路及び符号誤り訂正方法 Download PDFInfo
- Publication number
- JP3973066B2 JP3973066B2 JP25696099A JP25696099A JP3973066B2 JP 3973066 B2 JP3973066 B2 JP 3973066B2 JP 25696099 A JP25696099 A JP 25696099A JP 25696099 A JP25696099 A JP 25696099A JP 3973066 B2 JP3973066 B2 JP 3973066B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- row
- error correction
- code error
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 41
- 238000012937 correction Methods 0.000 title claims description 34
- 239000011159 matrix material Substances 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 21
- 230000015654 memory Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 7
- 230000003936 working memory Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 101000822028 Homo sapiens Solute carrier family 28 member 3 Proteins 0.000 description 2
- 102100021470 Solute carrier family 28 member 3 Human genes 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 101000685663 Homo sapiens Sodium/nucleoside cotransporter 1 Proteins 0.000 description 1
- 101000821827 Homo sapiens Sodium/nucleoside cotransporter 2 Proteins 0.000 description 1
- 102100023116 Sodium/nucleoside cotransporter 1 Human genes 0.000 description 1
- 102100021541 Sodium/nucleoside cotransporter 2 Human genes 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/2703—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
- H03M13/2707—Simple row-column interleaver, i.e. pure block interleaving
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/276—Interleaving address generation
- H03M13/2764—Circuits therefore
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6569—Implementation on processors, e.g. DSPs, or software implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Description
【発明の属する技術分野】
本発明は、デジタルデータにインターリーブを施す符号誤り訂正回路及び符号誤り訂正方法に関するものである。
【0002】
【従来の技術】
周知のように、デジタルデータの符号誤り訂正技術として、インターリーブ(interleave)が行われている。情報通信の分野では、送信側では送信すべき元データのビット配列を所定の約束のもとに入れ替えて(インターリーブして)送信し、受信側では受信したデータを所定の約束のもとにディインターリーブ(de-interleave)することで元データを取得する。インターリーブを行って情報通信を行うと、雑音などの影響を受けてデータに符号誤り(エラー)が生じた場合でも、ディインターリーブの際に符号誤りの箇所が分散されるので、符号誤りの箇所を容易に訂正することができ、通信品質の向上を図ることができる。
【0003】
また、インターリーブは、情報通信の分野に限らず、デジタル情報処理の分野で広く用いられており、一例として、DVD(Digital Video Disc又はDigital Versatile Disc)等の情報記録媒体へのデータ記録の際にも行われている。
【0004】
従来、インターリーブを行うために、1ビット幅でメモリアクセスできる半導体メモリを備えておき、この半導体メモリに設けられている複数ビットに元データの各ビットデータを書き込んだ後、所定の順序に従ってメモリアクセスして1ビットずつ読み出すことにより、ビット配列の並び替えられたデータを生成していた。また、上記半導体メモリに元データを1ビットずつ書き込むための書き込み制御と、1ビットずつ読み出すための読み出し制御とを、マイクロプロセッサ(CPU)が行っていた。
【0005】
【発明が解決しようとする課題】
ところが、上記の1ビット幅でメモリアクセスできる半導体メモリを用いて元データのビット配列を並び替えることにすると、半導体メモリへのデータ書き込みと読み出しのためのメモリアクセス回数が多くなる。このため、インターリーブに要する処理時間が長くなり、また、マイクロプロセッサに多大な負担が掛かるという問題があった。
【0006】
また、マイクロプロセッサを備えて動作する通信装置や情報処理装置等の電子機器では、処理すべきデータを、8ビット、16ビット、32ビットなどの2のべき乗(2の相乗積)のデータとして扱うのが一般的であり、そのためマイクロプロセッサのワーキングメモリも2のべき乗のデータを各アドレスに対応して記憶する半導体メモリが一般に使用されている。したがって、インターリーブの際にもこうしたワーキングメモリを用いれば、電子機器に備えられている資源を有効利用することができ、また、マイクロプロセッサによるインターリーブのための処理にも都合がよい。
【0007】
しかしながら、上記のワーキングメモリを用いてマイクロプロセッサによるインターリーブの処理を行おうとした場合、ワーキングメモリの各記憶領域に、元データを1ビットずつ記憶させ、所定の順序に従って各記憶領域から1ビットずつ読み出すことになる。このため、各記憶領域は2のべき乗のデータを記憶できるにもかかわらず、1ビットしか記憶しないことになり、ワーキングメモリを有効利用することができないという問題が生じる。
【0008】
更に、上記ワーキングメモリを用いた場合にも、各記憶領域を1ビット単位でメモリアクセスしてビットデータを記憶させた後、所定の順序に従って再び各記憶領域を1ビット単位でメモリアクセスしてビットデータを読み出すという処理を繰り返すことになる。このため、従来の1ビット幅でメモリアクセスできる半導体メモリを用いた場合と同様に、メモリアクセスの回数が多くなるので、マイクロプロセッサに掛かる負担が重くなり、また、インターリーブに要する処理時間を短くすることができないという問題を生じる。
【0009】
本発明は、こうした課題に着目してなされたものであり、2のべき乗のデータを各アドレスに対応付けて記憶することが可能な複数の記憶領域を有する記憶手段を利用して、高速のインターリーブを行う符号誤り訂正回路及び符号誤り訂正方法を提供することを目的とする。また、マイクロプロセッサの制御下でインターリーブを行うのに好適な符号誤り訂正回路及び符号誤り訂正方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明の符号誤り訂正回路及び符号誤り訂正方法は、pビット長のビットデータ列を有する元データをi行j列のマトリックス状に仮想的に配列するものとして、上記各行iに位置する各ビットデータを上記各列jの順に沿って選択することで、上記元データをインターリーブするものであって、1行当たり2のべき乗のビット長2nを有する記憶領域を複数行備える記憶手段を備えておき、前記元データをビット長2 n ずつに分けて前記記憶手段の各行の記憶領域に記憶させ、前記pビット長が2のべき乗のビット長2 x-1 と2 x の間のビット長となる関係に基づいて設定されたxビット長において、計数動作によって上位x−nビットが前記仮想的なマトリックスにおける前記j列の位置を示し、下位nビットが前記仮想的なマトリックスにおける前記i行の位置を示す計数データを生成し、前記計数データの上位x−nビットのデータに基づいて、前記j列の位置に存在するビットデータの記憶されている前記記憶手段の記憶領域を指すアドレスデータを生成し、前記計数データの下位nビットのデータに基づいて、前記アドレスデータの指す前記記憶領域に記憶されているビットデータのうち、前記i行の位置に存在するビットデータを指すビット選択データを生成し、前記アドレスデータと前記ビット選択データに基づいて、前記記憶手段に記憶させた前記元データの各ビットデータを選択することにより、前記仮想的なマトリックスにおける前記各行iと各列jの順に沿って前記元データの各ビットデータを選択するインターリーブ処理を行うことを特徴とする。
【0011】
この本発明によれば、2のべき乗2 n の記憶手段を用いて元データをインターリーブすることができる。このため、マイクロコンピュータシステムに適した符号誤り訂正回路及び符号誤り訂正方法を提供することができる。また、2のべき乗2 n の記憶手段を用いることで、マイクロプロセッサを用いた場合に、記憶手段をメモリアクセスする回数を低減することができる。これにより、マイクロプロセッサの負担が低減されると共に、インターリーブに要する処理時間を短縮することができる。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。尚、図1は、本実施形態に係る符号誤り訂正回路の構成を示すブロック図である。
【0013】
図1において、この符号誤り訂正回路ECTは、マイクロプロセッサCPUを有する中央演算制御部1と記憶部2とを備えるマイクロコンピュータシステムMCSに付随して設けられ、中央演算制御部1に設けられている上記マイクロプロセッサCPUと協働して、記憶部2中に記憶されている元データをインターリーブする。
【0014】
また、記憶部2は、各アドレスr=0〜R-1に対応する複数の記憶領域D0〜DR−1を有し、各記録領域D0〜DR−1は、2のべき乗2 n (nは任意の正整数、以下同じ)で表されるビット長のデータを記憶できるようになっている。例えば、記憶部2は、マイクロプロセッサCPUがデータ処理を行うのに適した、8ビット/ワード構成、16ビット/ワード構成、32ビット/ワード構成などで複数ワードの記憶容量を有している。
【0015】
符号誤り訂正回路ECTは、行レジスタ6、比較器7、行カウンタ8、列レジスタ9、比較器10、列カウンタ11、加算器12、プリセッタブルカウンタ13、アドレスデコーダ14、ビットデコーダ15、データレジスタ16、ビットセレクタ17を備えて構成されている。また、これら各構成要素6〜17は、マイクロコンピュータシステムMCSのコントロールバス3とアドレスバス4及びデータバス5に適宜接続されており、マイクロプロセッサCPUの制御下で動作する。
【0016】
行レジスタ6は、マイクロプロセッサCPUからデータバス5を介して供給される行指定データDiを保持し、その行指定データDiを比較器7に供給する。
【0017】
行カウンタ8は、バイナリカウンタであり、マイクロプロセッサCPUからコントロールバス3を介して供給される制御信号CNT1に従ってリセットと計数動作を行い、それによって生じる行計数データDicを比較器7に供給する。
【0018】
比較器7は、行指定データDiと行計数データDicの値を比較し、比較結果を示す行比較データDicpを、データバス5を介してマイクロプロセッサCPUへ転送する。
【0019】
列レジスタ9は、マイクロプロセッサCPUからデータバス5を介して供給される列指定データDjを保持し、その列指定データDjを比較器10に供給する。
【0020】
行カウンタ11は、バイナリカウンタであり、マイクロプロセッサCPUからコントロールバス3を介して供給される制御信号CNT2に従ってリセットと計数動作を行い、それによって生じる列計数データDjcを比較器10に供給する。
【0021】
比較器10は、列指定データDjと列計数データDjcの値を比較し、比較結果を示す列比較データDjcpを、データバス5を介してマイクロプロセッサCPUへ転送する。
【0022】
プリセッタブルカウンタ13は、並列入力並列出力型のバイナリカウンタである。マイクロプロセッサCPUからコントロールバス3を介して供給される制御信号CNT3に従って、列カウンタ11の列計数データDjc又は加算器12の加算データDadをプリセットする。また、そのプリセットしたデータDjc又はDadを制御信号CNT3に従ってインクリメントする。
【0023】
尚、インターリーブすべき元データDinの1ブロック長がp個のビットから成る場合には、上記各記録領域D0〜DR−1のビット長2 n との関係から、プリセッタブルカウンタ13は、次式(1)の条件を満足するビット長xのバイナリカウンタが用いられる。
2 x−1 <p≦2 x (1)
例えば、元データDinの1ブロック長がp=30ビット、上記各記録領域D0〜DR−1のビット長が2 n =8ビットであれば、24<30≦25となるので、上記式(1)の条件から、x=5ビット長のバイナリカウンタが用いられる。
【0024】
また、例えば、元データDinの1ブロック長がp=48ビット、上記各記録領域D0〜DR−1のビット長が2 n =16ビットであれば、25<48≦26となるので、上記式(1)の条件から、x=6ビット長のバイナリカウンタが用いられる。
【0025】
加算器12は、マイクロプロセッサCPUからコントロールバス3を介して供給される制御信号CNT5に従って、列レジスタ9から出力される列指定データDjとプリセッタブルカウンタ13から出力されるxビット長の計数データDxをデジタル加算し、その加算データDad(=Dj+Dx)を出力する。
【0026】
アドレスデコーダ14は、プリセッタブルカウンタ13から出力される上記xビット長の計数データDxのうち、最上位ビット(MSB)側からx−n個のバイナリデータDMをバイナリデコードし、そのデコード結果を示すアドレスデータDADRをデータバス5を介してマイクロプロセッサCPUへ転送する。
【0027】
ビットデコーダ15は、プリセッタブルカウンタ13から出力される上記計数データDxのうち、最下位ビット(LSB)側からn個のバイナリデータDLをバイナリデコードし、そのデコード結果を示すセレクトデータDBTをビットセレククタ17に供給する。
【0028】
データレジスタ16は、並列入力並列出力型のバイナリレジスタであり、その記憶容量は、記憶部2の各記録領域D0〜DR−1に記憶される各データ(インターリーブすべきデータ)と同じビット長2 n に設定されている。また、詳細については後述するが、マイクロプロセッサCPUからコントロールバス3を介して制御信号CNT4が供給されると、記憶部2から読み出されたデータ(インターリーブすべきデータ)をデータバス5を介して入力(ロード:load)し、そのデータDLDを保持しつつビットセレクタ17側へ並列出力する。
【0029】
ビットセレクタ17は、マルチプレクサで形成され、データレジスタ16から供給される上記データDLDのうち、セレクトデータDBTで指定される1ビットのみのデータDoutを選択して出力する。
【0030】
より具体的には、図2に示すように、ビットセレクタ17は、データレジスタ16の2 n ビット分の出力端子Q0〜Qn−1に並列接続されたスイッチ素子S0〜Sn−1を備えて構成されており、各スイッチ素子S0〜Sn−1の導通/非導通の制御がセレクトデータDBTによって行われる。また、スイッチ素子S0〜Sn−1は、セレクトデータDBTによって何れか1つだけが排他的に導通するようになっている。そして、データDoutをインターリーブの施されたデータとして出力し、マイクロコンピュータシステムMCS側へ転送する。
【0031】
尚、プリセッタブルカウンタ13から出力される下位nビット分のバイナリデータDLが0のときには、セレクトデータDBTによって最上位ビットのスイッチ素子Sn−1のみが導通となり、バイナリデータDLが1増加する毎に、セレクトデータDBTによってスイッチ素子がSn−2,Sn−3〜S1,S0の順で排他的に導通するようになっている。
【0032】
但し、本実施形態では、ビットセレクタ17をマルチプレクサで構成しているが、セレクトデータDBTに応じてデータレジスタ16のデータDLDをビットシフトするシフトレジスタを用い、そのシフトレジスタがシフトした結果の最上位ビト(MSB)のビットデータを出力Doutとして選択的に出力する構成にしても良い。
【0033】
次に、かかる構成を有する符号誤り訂正回路ECTの動作例を図3〜図8を参照して説明する。
【0034】
尚、説明の便宜上、図3(a)に示すように、インターリーブすべき元データDinは、1ブロック当たりpビット長から成るビット列C0〜Cp−1のデータであるものとする。また、この元データDinをインターリーブすることで、図3(b)に示すようなビット配列のデータDoutに変換するものとする。
【0035】
つまり、アルゴリズムを説明すれば、図4に模式的に示すように、ビット列C0〜Cp−1を各行iに5ビット長ずつに分けてマトリックス状に仮想的に配列した後、j=0列目のビット列C0,C5,C10,C15……を上から下へ順に読み出し、それが終わるとj=1列目のビット列C1,C6,C11,C16……を上から下へ順に読み出し、それが終わるとj=2列目のビット列C2,C7,C12,C17……を上から下へ順に読み出すというようにして、最後のビットデータCp−1まで読み出すことで、インターリーブを行うものとする。
【0036】
更に、記憶部2の各記録領域D0〜DR−1は、8ビット/ワード構成となっているものとする。この場合には、マイクロプロセッサCPUは、図6に示すように、元データDinを8ビットずつに分割して、記憶部2の記憶領域D0,D1,D2・・・に記憶させる。つまり、記憶領域D0の各ビットA0,7〜A0,0にビットデータC0〜C7を記憶させ、次の記憶領域D1にビットデータC8〜C15を記憶させ、次の記憶領域D2にビットデータC16〜C23を記憶させるというように、元データDinを8ビットずつ記憶させる。また、p個のビットデータC0〜Cp−1が8ビットずつに分けられない場合には、最後に記憶されたビットデータCp−1に続く残りのビットはそのまま(Don't Care)にする。
【0037】
更にまた、本発明をより理解しやすくするために、上記元データDinは1ブロック当たりp=30ビットのビット列C0〜C29で構成され、更に各ビットデータC0〜C29は、図5(a)に示すように、{C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29}={0,1,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0}であるものとする。
【0038】
そして、図4に対応する図5(b)のアルゴリズムに示すように、ビット列C0〜Cp−1を各行iに5ビット長ずつに分けてマトリックス状に配列して、各列j毎に上から下へ順に読み出すのと同様な操作によってインターリーブを行うものとする。また、マイクロプロセッサCPUは、図6に対応する図5(c)に示すように、元データDinを、8ビット/ワード構成となっている各記録領域D0〜DR−1に8ビット長ずつに分割して記憶させる。
【0039】
次に、図7に示すフローチャートに基づいて動作を詳述する。
【0040】
まずステップ100において、マイクロプロセッサCPUが、図5(c)に示したように、1ブロック分の元データDinを記憶部2に記憶させる。
【0041】
次のステップ102において、行レジスタ6と列レジスタ9に初期値を設定する。ここでは、図6(b)に示したアルゴリズムに対応すべく、行レジスタ6の初期値は、行iの総数を示すバイナリデータ「6」に設定される。更に、列レジスタ9の初期値は、列jの総数を示すバイナリデータ「5」に設定される。これにより、最初の行指定データDiと列指定データDjは、Di=6、Dj=5となる。
【0042】
次に、ステップ104において、列カウンタ11をクリアする。これにより、列カウンタ11の列計数データDjcは、Djc=0となる。
【0043】
尚、図示していないが、残りの行カウンタ8とプリセッタブルカウンタ13及びデータレジスタ16もリセットする。
【0044】
こうして初期化処理が完了すると、次のステップ106において、比較器10が、列カウンタ11の列計数データDjcと列レジスタ9の列指定データDjとを比較し、比較結果を示す行比較データDjcpをマイクロプロセッサCPU側へ転送する。そして、マイクロプロセッサCPUがその行比較データDjcpに基づいて、Djc<Djか否か判定する。Djc<Djの場合(「YES」の場合)には、ステップ108の処理に移行し、Djc≧Djの場合(「NO」の場合)には、インターリーブが完了したとして、処理を終了する。
【0045】
ステップ108の処理に移行すると、列カウンタ11の列計数データDjcをプリセッタブルカウンタ13に設定(プリセット)する。従って、ステップ108が初めて処理されるときは、プリセッタブルカウンタ13には、Djc=0がプリセットされ、プリセッタブルカウンタ13の計数データDxも、Dx=0になる。
【0046】
次に、ステップ110において、行カウンタ8をクリアする。これにより、行計数データD icは、D ic=0となる。
【0047】
次に、ステップ112において、比較器10が、行カウンタ8の行計数データDicと行レジスタ6の行指定データDiとを比較し、比較結果を示す行比較データDicpをマイクロプロセッサCPU側へ転送する。そして、マイクロプロセッサCPUがその行比較データDicpに基づいて、Dic<Diか否か判定する。Dic<Diの場合(「YES」の場合)には、ステップ116の処理に移行する。Dic≧Diの場合(「NO」の場合)には、ステップ114に移行して、列カウンタ11の列計数データDicを1インクリメントした後、ステップ106からの処理を繰り返す。
【0048】
このように、ステップ106〜112の処理が行われると、プリセッタブルカウンタ13の計数データDxは、元データDinの各ビットデータ列の順番を示すことになる。この計数データDxのうちの最上位ビット(MSB)側からx−n個のバイナリデータDMは、図5(c)に示したビットデータ列の行の順番を示すデータとなり、計数データDxのうちの最下位ビット(LSB)側からn=3個のバイナリデータDLは、図5(c)に示した上記行でのMSBからの順番を示すデータとなる。 そして、最初の(第1番目の)ステップ106〜112の処理では、バイナリデータDLによってi=0、バイナリデータDMによってj=0が選択されることになる。また、ステップ114の処理が行われて、ステップ106〜112の処理が繰り返されると、列カウンタ11の列計数データDjcが1ずつインクリメントされるので、上記バイナリデータDMによって、図5(b)の列jが1→2→3→4の順に選択される。一方、行iについては、ステップ110において行計数データDicがクリアされるので、行i=0が選択される。
【0049】
つまり、ステップ106〜114の処理を行うことにより、バイナリデータDMが各列j=0,1,2,3,4を順番に選択し、一方、バイナリデータDLは上記の順番に選択された各列j=0,1,2,3,4における最初の行i=0を選択する。こうして何れかの列jの最初の行i=0が選択されて、ステップ116の処理に移行する。
【0050】
ステップ116では、ビットデコーダ15がバイナリデータDLをデコードし、そのデコード結果であるセレクトデータDBTをビットセレクタ17に供給する。
【0051】
次に、ステップ118において、アドレスデコーダ14がバイナリデータDMをデコードし、そのデコード結果であるアドレスデータDADRをマイクロプロセッサCPU側へ転送し、マイクロプロセッサCPUがそのアドレスデータDADRを取得する。
【0052】
次に、ステップ120において、マイクロプロセッサCPUが、取得したアドレスデータDADRに基づいて記憶部2をメモリアクセスし、アドレスデータDADRの指すアドレスrの記憶領域に記憶されている2 n =8ビット分の元データを読み出して、データレジスタ16にロードする。
【0053】
例えば、ステップ120の処理が最初に行われた場合には、プリセッタブルカウンタ13のバイナリデータDMは「0」になるので、アドレスデータDADRの値も「0」となり、図5(c)に示したアドレスr=0に該当する記憶領域D0中のビット列{C0,C1,C2,C3,C4,C5,C6,C7}={0,1,0,1,1,0,1,0}がデータレジスタ16に格納される。
【0054】
次にステップ122において、ビットセレクタ17が、セレクトデータDBTで指される1ビットのみを導通状態にする。これにより、データレジスタ16中のデータDLDのうち、セレクトデータDBTの指すビットデータのみが出力される。
【0055】
例えば、ステップ122の処理が最初に行われた場合には、プリセッタブルカウンタ13のバイナリデータDLは「0」になるので、セレクトデータDBTによって図2中のスイッチ素子Sn−1が導通状態となり、上記ビット列{0,1,0,1,1,0,1,0}のうちの最上位ビット、すなわち一番左側のビットデータ”0”が出力される。つまり、図5(a)(c)に示すビットA0,7のビットデータC0=0が、インターリーブされた第1番目のビット出力Doutとなる。
【0056】
次に、ステップ124において、加算器12が、列レジスタ9の列指定データDjとプリセッタブルカウンタ13の計数データDxとを加算し、その加算データDAD(=Dj+Dx)を再びプリセッタブルカウンタ13にプリセットする。
【0057】
例えば、ステップ124の処理が最初に行われた場合には、列指定データDjは「5」、計数データDxは「0」となっているので、加算データDADは「5」となり、プリセッタブルカウンタ13には「5」がプリセットされる。この結果、プリセッタブルカウンタ13のバイナリデータDLは「5」となり、バイナリデータDMは「0」のままになるので、図5(a)(c)に示すビットA0,2のビットデータC5=0が選択されることになる。
【0058】
次に、ステップ126において、行カウンタの行計数データDicをインクリメントする。そして、再びステップ112からの処理が繰り返される。
【0059】
例えば、ステップ126の処理が最初に行われた場合には、行計数データDicは「1」となり、図5(b)に示したi=2の行が指定された後、再びステップ112からの処理が繰り返される。
【0060】
このように、ステップ116〜126の処理が第1回目のときには、図8(a)に表示するように、各データDi,Dic,Dj,Djc,Dx,DL,DM,DADR,DBTが変化することにより、元データDinのビットデータC0=0が第1番目の出力Doutとなる。
【0061】
次に、再びステップ112の処理(2回目の処理)が行われると、このときには未だDic<Diであるので、ステップ116〜126の処理(2回目の処理)が行われることになる。
【0062】
この2回目の処理では、プリセッタブルカウンタ13のバイナリデータDMは「0」になるので、図5(c)に示したアドレスr=0に該当する記憶領域D0に記憶されているビット列{C0,C1,C2,C3,C4,C5,C6,C7}={0,1,0,1,1,0,1,0}がデータレジスタ16にロードされる。更に、プリセッタブルカウンタ13のバイナリデータDLは「5」になるので、ビットデータC5=0が出力される。つまり、第2回目の処理では、図5(a)(c)に示すビットA0,2のビットデータC5=0が、インターリーブされた第2番目のビット出力Doutとなる。
【0063】
このように、ステップ116〜126の処理が第2回目のときには、図8(b)に表示するように、各データDi,Dic,Dj,Djc,Dx,DL,DM,DADR,DBTが変化することにより、元データDinのビットデータC5=0が第2番目の出力Doutとなる。そして、ステップ126において再び行カウンタの行計数データDicをインクリメントして、再びステップ112からの処理が繰り返される。
【0064】
こうして、ステップ116〜126の処理が6回繰り返されると、図5(b)に示した列j=0に該当するビット列{C0,C5,C10,C15,C20}={0,0,1,1,0,0}がインターリーブされたビット出力Doutとなる。
【0065】
次に、第6回目の処理が終了すると、ステップ112において、Dic<Diとなるので、ステップ114において列j=1が設定され、更にステップ110において行i=0が設定された後、ステップ116〜126の処理が6回繰り返される。つまり、図5(b)に示した列j=1に該当するビット列{C1,C6,C11,C16,C21}={1,1,0,0,0,0}がインターリーブされたビット出力Doutとなる。
【0066】
以下同様にして、ステップ106〜126の処理が繰り返されることで、図5(b)に示した列j=2,3,4に該当する残りのビット列もインターリーブされビット出力Doutとなる。
【0067】
そして、ステップ106において、全ての元データDinをインターリーブしたと判断すると、処理を終了する。
【0068】
このように本実施形態によれば、2のべき乗2 n の記憶部2を用いて元データDinをインターリーブすることができる。このため、マイクロコンピュータシステムに適した符号誤り訂正回路を提供することができる。また、2のべき乗2 n の記憶部2を用いると、マイクロプロセッサCPUが記憶部2をメモリアクセスする回数を低減することができる。これにより、マイクロプロセッサCPUの負担が低減されると共に、インターリーブに要する処理時間を短縮することができる。
【0069】
また、図3(b)に示すインターリーブされたデータDoutを通信装置によって送信した際、記号*で示す位置に複数の連続した符号誤りが生じた場合でも、データDoutをディインターリーブすると、図3(c)に示すようにディインターリーブ後のデータDTでは符号誤りが分散されるので、符号誤りを容易に訂正することができる。ちなみに、本実施形態では、4ビット長のガードスペースを得ることができる。
【0070】
尚、本実施形態では、説明の都合上、8ビット/ワード構成の記憶部2を用いる場合を説明したが、本発明はこれに限定されるものではない。すなわち、2のべき乗2 n の記憶部であればよい。
【0071】
また、1ブロック30ビット長の元データDinをインターリーブする場合を説明したが、本発明は1ブロック当たり任意の数のビット列の元データをインターリーブすることができる。
【0072】
また、図5(b)に示したように、元データDinのビット列を6行5列のマトリックス状に配列して、所定の順序で読み出すようにしてインターリーブを行う場合について説明したが、本発明は6行5列のマトリックスに限定されるものではなく、任意の行数及び列数のマトリックスに配列して、所定の順序で読み出す方式のインターリーブを行うことができる。
【0073】
また、本実施形態では、符号誤り訂正回路ECTの動作タイミングを、マイクロプロセッサCPUからの指令にしたがって制御する場合を示したが、マイクロプロセッサCPUとは別に、タイミング制御回路をハードウェアで構成してもよい。そして、このタイミング制御回路の制御下で、比較器7,10の動作制御と、行カウンタ8及び列カウンタ11のカウント制御と、行レジスタ6及び列レジスタ9のデータ設定など、その他の構成要素12〜17の動作タイミングを制御することで、マイクロプロセッサCPUの負荷をより軽減することができる。
【0074】
【発明の効果】
以上説明したように本発明によれば、2のべき乗2 n の記憶手段を用いて元データをインターリーブすることができるため、マイクロコンピュータシステムに適した符号誤り訂正回路及び符号誤り訂正方法を提供することができる。また、2のべき乗2 n の記憶手段を用いることで、マイクロプロセッサの記憶手段に対するメモリアクセス回数を低減することができる。これにより、マイクロプロセッサの負担が低減されると共に、インターリーブに要する処理時間を短縮することができる。
【図面の簡単な説明】
【図1】本実施形態に係る符号誤り訂正回路の構成を示すブロック図である。
【図2】符号誤り訂正回路に備えられているビットセレクタの構成を示すブロック図である。
【図3】元データとインターリーブされたデータ及びディインターリーブされたデータの各ビット配列を示す説明図である。
【図4】インターリーブのアルゴリズムを説明するための図である。
【図5】記憶部に元データが記憶された状態を示す説明図である。
【図6】1ブロック30ビットの元データをインターリーブする場合を説明するための図である。
【図7】本実施形態の動作を説明するためのフローチャートである。
【図8】更に本実施形態の動作を説明するための説明図である。
【符号の説明】
1…中央演算制御装置
2…記憶部
3…コントロールバス
4…アドレスバス
5…データバス
6…行レジスタ
7,10…比較器
8…行カウンタ
9…列レジスタ
11…列カウンタ
12…加算器
13…プリセッタブルカウンタ
14…アドレスデコーダ
15…ビットデコーダ
16…データレジスタ
17…ビットセレクタ
Claims (6)
- pビット長のビットデータ列を有する元データをi行j列のマトリックス状に仮想的に配列するものとして、前記各行iに位置する各ビットデータを前記各列jの順に沿って選択することで、前記元データをインターリーブする方式の符号誤り訂正回路であって、
1行当たり2のべき乗のビット長2nを有する記憶領域を複数行備える記憶手段と、
前記元データをビット長2 n ずつに分けて前記記憶手段の各行の記憶領域に記憶させる制御手段と、
前記pビット長が2のべき乗のビット長2 x-1 と2 x の間のビット長となる関係に基づいて設定されたxビット長を有し、計数動作によって上位x−nビットが前記仮想的なマトリックスにおける前記j列の位置を示し、下位nビットが前記仮想的なマトリックスにおける前記i行の位置を示す計数データを生成するカウンタ手段と、
前記計数データの上位x−nビットのデータに基づいて、前記j列の位置に存在するビットデータの記憶されている前記記憶手段の記憶領域を指すアドレスデータを生成するアドレスデコード手段と、
前記計数データの下位nビットのデータに基づいて、前記アドレスデータの指す前記記憶領域に記憶されているビットデータのうち、前記i行の位置に存在するビットデータを指すビット選択データを生成する選択データデコード手段と、
を具備し、
前記制御手段が、前記アドレスデータと前記ビット選択データに基づいて、前記記憶手段に記憶させた前記元データの各ビットデータを選択することにより、前記仮想的なマトリックスにおける前記各行iと各列jの順に沿って前記元データの各ビットデータを選択するインターリーブ処理を行うこと、
を特徴とする符号誤り訂正回路。 - 前記アドレスデータに対応する前期記憶手段の記憶領域から読み出したビット長2nのビットデータ列を保持するデータ保持手段と、
前記データ保持手段に保持されたビット長2nのビットデータ列の中から前記ビット選択データの指すビットデータを選択して出力するビット選択手段とを更に具備し、
前記制御手段は、前記ビット選択手段の出力をインターリーブされたデータとして出力させること、
を特徴とする請求項1記載の符号誤り訂正回路。 - pビット長のビットデータ列を有する元データをi行j列のマトリックス状に仮想的に配列するものとして、前記各行iに位置する各ビットデータを前記各列jの順に沿って選択することで、前記元データをインターリーブする方式の符号誤り訂正方法であって、
1行当たり2のべき乗のビット長2nを有する記憶領域を複数行備える記憶手段を備えておき、前記元データをビット長2 n ずつに分けて前記記憶手段の各行の記憶領域に記憶させる第1の工程と、
前記pビット長が2のべき乗のビット長2 x-1 と2 x の間のビット長となる関係に基づいて設定されたxビット長において、計数動作によって上位x−nビットが前記仮想的なマトリックスにおける前記j列の位置を示し、下位nビットが前記仮想的なマトリックスにおける前記i行の位置を示す計数データを生成する第2の工程と、
前記計数データの上位x−nビットのデータに基づいて、前記j列の位置に存在するビットデータの記憶されている前記記憶手段の記憶領域を指すアドレスデータを生成する第3の工程と、
前記計数データの下位nビットのデータに基づいて、前記アドレスデータの指す前記記憶領域に記憶されているビットデータのうち、前記i行の位置に存在するビットデータを指すビット選択データを生成する第4の工程と、
前記アドレスデータと前記ビット選択データに基づいて、前記記憶手段に記憶させた前記元データの各ビットデータを選択することにより、前記仮想的なマトリックスにおける 前記各行iと各列jの順に沿って前記元データの各ビットデータを選択するインターリーブ処理を行う第5の工程と、
を備えることを特徴とする符号誤り訂正方法。 - 前記アドレスデータに対応する前記憶手段の記憶領域からビット長2nのビットデータ列を読み出して保持する第6の工程と、
前記第6の工程で保持したビット長2nのビットデータ列の中から、前記ビット選択データの指すビットデータを、インターリーブされたデータとして選択する第7の工程とを更に備えること、
を特徴とする請求項3記載の符号誤り訂正方法。 - 前記符号誤り訂正回路は、送信データをインターリーブして送信する通信装置に備えられること、
を特徴とする請求項1又は請求項2に記載の符号誤り訂正回路。 - 前記符号誤り訂正方法は、送信データをインターリーブして送信する通信装置に適用されること、
を特徴とする請求項3又は請求項4に記載の符号誤り訂正方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25696099A JP3973066B2 (ja) | 1999-09-10 | 1999-09-10 | 符号誤り訂正回路及び符号誤り訂正方法 |
| EP00119368A EP1083663A3 (en) | 1999-09-10 | 2000-09-08 | Code error correcting circuit, code error correcting method, communicating apparatus and communicating method |
| US09/657,805 US6701468B1 (en) | 1999-09-10 | 2000-09-08 | Code error correcting circuit, code error correcting method, communicating apparatus and communicating method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25696099A JP3973066B2 (ja) | 1999-09-10 | 1999-09-10 | 符号誤り訂正回路及び符号誤り訂正方法 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2001084155A JP2001084155A (ja) | 2001-03-30 |
| JP2001084155A5 JP2001084155A5 (ja) | 2005-05-19 |
| JP3973066B2 true JP3973066B2 (ja) | 2007-09-05 |
Family
ID=17299772
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP25696099A Expired - Fee Related JP3973066B2 (ja) | 1999-09-10 | 1999-09-10 | 符号誤り訂正回路及び符号誤り訂正方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6701468B1 (ja) |
| EP (1) | EP1083663A3 (ja) |
| JP (1) | JP3973066B2 (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003168287A (ja) | 2001-07-24 | 2003-06-13 | Toshiba Corp | メモリモジュール、メモリシステム、および、データ転送方法 |
| KR100518295B1 (ko) * | 2003-03-14 | 2005-10-04 | 삼성전자주식회사 | 디지털 통신 시스템의 디인터리빙장치 및 그의디인터리빙방법 |
| US9001921B1 (en) * | 2004-02-18 | 2015-04-07 | Marvell International Ltd. | Circuits, architectures, methods, algorithms, software, and systems for improving the reliability of data communications having time-dependent fluctuations |
| CN101159510B (zh) * | 2007-11-16 | 2011-09-28 | 海能达通信股份有限公司 | 一种提高信息比特传输可靠性的方法 |
| US8661320B2 (en) * | 2011-10-07 | 2014-02-25 | Aeroflex Colorado Springs Inc. | Independent orthogonal error correction and detection |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07105638A (ja) * | 1993-10-05 | 1995-04-21 | Matsushita Electric Ind Co Ltd | 画像データの記録再生装置 |
| US5636224A (en) * | 1995-04-28 | 1997-06-03 | Motorola Inc. | Method and apparatus for interleave/de-interleave addressing in data communication circuits |
| US5898710A (en) * | 1995-06-06 | 1999-04-27 | Globespan Technologies, Inc. | Implied interleaving, a family of systematic interleavers and deinterleavers |
| US5818789A (en) * | 1995-10-10 | 1998-10-06 | Holtek Microelectronics, Inc. | Device and method for memory access |
| US5828671A (en) * | 1996-04-10 | 1998-10-27 | Motorola, Inc. | Method and apparatus for deinterleaving an interleaved data stream |
| JPH09288895A (ja) * | 1996-04-19 | 1997-11-04 | Toshiba Corp | 3値記憶半導体記憶システム |
| JP2865078B2 (ja) * | 1996-10-02 | 1999-03-08 | 日本電気株式会社 | 半導体記憶装置 |
| US5912898A (en) * | 1997-02-27 | 1999-06-15 | Integrated Device Technology, Inc. | Convolutional interleaver/de-interleaver |
| TW378330B (en) * | 1997-06-03 | 2000-01-01 | Fujitsu Ltd | Semiconductor memory device |
| US5928371A (en) * | 1997-07-25 | 1999-07-27 | Motorola, Inc. | Systems for programmably interleaving and de-interleaving data and method thereof |
| US6014761A (en) * | 1997-10-06 | 2000-01-11 | Motorola, Inc. | Convolutional interleaving/de-interleaving method using pointer incrementing across predetermined distances and apparatus for data transmission |
| JP4002327B2 (ja) * | 1997-11-04 | 2007-10-31 | 株式会社日立製作所 | ディジタル信号処理回路 |
| US6178530B1 (en) * | 1998-04-24 | 2001-01-23 | Lucent Technologies Inc. | Addressing scheme for convolutional interleaver/de-interleaver |
| US6147915A (en) * | 1998-04-24 | 2000-11-14 | Fujitsu Limited | Semiconductor integrated circuit |
| JP3629144B2 (ja) * | 1998-06-01 | 2005-03-16 | 株式会社東芝 | 不揮発性半導体記憶装置 |
| US6353900B1 (en) * | 1998-09-22 | 2002-03-05 | Qualcomm Incorporated | Coding system having state machine based interleaver |
-
1999
- 1999-09-10 JP JP25696099A patent/JP3973066B2/ja not_active Expired - Fee Related
-
2000
- 2000-09-08 US US09/657,805 patent/US6701468B1/en not_active Expired - Fee Related
- 2000-09-08 EP EP00119368A patent/EP1083663A3/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| EP1083663A3 (en) | 2004-06-23 |
| US6701468B1 (en) | 2004-03-02 |
| JP2001084155A (ja) | 2001-03-30 |
| EP1083663A2 (en) | 2001-03-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3959788B2 (ja) | 縦及び横のパリティコードを有するデータフレームにおけるエラーを修正するシステム | |
| US6317472B1 (en) | Viterbi decoder | |
| US7900118B2 (en) | Flash memory system and method for controlling the same | |
| US5592404A (en) | Versatile error correction system | |
| WO1998033112A1 (fr) | Dispositif de disque a semiconducteur | |
| JP2010218634A (ja) | 誤り検出訂正器、メモリコントローラおよび半導体記憶装置 | |
| JP3071828B2 (ja) | 誤り訂正積符号ブロックを生成するためのデータ処理方法と該データを記録媒体に記録するためのデータ処理方法及び該データの処理装置 | |
| CN101281788A (zh) | 闪存系统及其控制方法 | |
| JP3973066B2 (ja) | 符号誤り訂正回路及び符号誤り訂正方法 | |
| JP4282989B2 (ja) | Womメモリーを備えたデータ処理装置 | |
| JP3502583B2 (ja) | 誤り訂正方法および誤り訂正装置 | |
| EP0608848B1 (en) | Cyclic coding and cyclic redundancy code check processor | |
| KR940011037B1 (ko) | 어드레스 발생회로 | |
| US6127950A (en) | Transmission circuit and reception circuit | |
| EP0909484A2 (en) | Modified reed solomon code selection and encoding system | |
| JP3777246B2 (ja) | ディスク記憶装置内の誤りを訂正するためのシステムおよび誤り制御チップ、ならびに符号化および復号化の方法 | |
| JP2001084155A5 (ja) | ||
| MXPA02009796A (es) | Metodo y aparato para la lectura eficiente y el almacenamiento en la memoria de mediciones de condicion para implementaciones de descodificador viterbi acs de alta velocidad. | |
| KR200141094Y1 (ko) | 비씨에이취 코드워드를 부호화하는 장치 | |
| KR100304193B1 (ko) | 리드솔로몬복호기의역수구현회로 | |
| JP3654655B2 (ja) | データ処理システム | |
| JP2000349652A (ja) | 誤り訂正手段を備えた記憶装置 | |
| JP3813337B2 (ja) | 消失誤り訂正方法とその装置 | |
| JP3288262B2 (ja) | データインタリーブ回路 | |
| JPH0628343B2 (ja) | 積符号の復号方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040531 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040531 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040705 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061005 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061024 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061225 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070605 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070607 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100622 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110622 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110622 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120622 Year of fee payment: 5 |
|
| LAPS | Cancellation because of no payment of annual fees |