(57)【要約】  データ処理回路は、データワードをエンコードするためのエンコーダ回路を備えている。この場合、各ディジットは、３つ以上のディジット値のうちの任意の１つを有していても良い。データワードは、データワード中のディジットカウントが所定の基準を満たすようにエンコードされる（ディジットカウントは、対応するディジット値をとるエンコードされたデータワード中のディジットの数の総数である）。エンコーダは、少なくとも２つのディジットマップを規定し、各ディジットマップは、それぞれの異なる出力ディジット値に対する利用可能なディジット値のそれぞれの割り当てを規定する。エンコーダは、入力データワード内のディジットの少なくとも２つのグループを選択する。各グループは、ディジットマップのうちの対応する１つに関連付けられ、グループは、各ディジットマップがその関連するグループからのディジットに対して選択的に適用されたときにそれぞれのディジット値がデータワードにおいて生じる回数のディジットカウントが所定の基準を満たすという制約下で選択される。選択されたグループを識別する情報と、そのグループのためのディジットマップにしたがって入力データワード中の各グループのディジットをマッピングすることにより得られる出力データワードとにより、入力データワードを表わすデータ信号を生成される。【特許請求の範囲】
【請求項１】
複数のディジットを含む入力データワードをエンコードするためのエンコーダ回路を備え、前記各ディジットが、３つ以上のレベルを使用するマルチレベルエンコーディング方式で信号レベルを制御するために利用可能な少なくとも３つのディジット値から選択される１つの値を有するデータ処理回路であって、前記エンコーダ回路は、
−  少なくとも２つのディジットマップを規定するようになっており、各ディジットマップは、それぞれの出力ディジット値に対する利用可能なディジット値のそれぞれの割り当てを規定し、各ディジットマップが出力ディジット値の共通の組に対してマッピングし、
−  前記入力データワード内のディジットの少なくとも２つのグループを選択するようになっており、各グループが前記ディジットマップのうちの対応する１つに関連付けられ、グループは、各ディジットマップがその関連するグループからのディジットに対して選択的に適用されたときにそれぞれのディジット値がデータワードにおいて生じる回数のディジットカウントが所定の基準を満たすという制約下で選択され、
−  選択されたグループを識別する情報と、そのグループのためのディジットマップにしたがって入力データワード中の各グループのディジットをマッピングすることにより得られる出力データワードとにより、入力データワードを表わすデータ信号を生成するようになっている、
データ処理回路。
【請求項２】
２レベルよりも大きいエンコード情報を記憶するためのメモリセルを有するメモリを備え、前記出力データワードの各ディジットが前記メモリセルの対応する１つに記憶される、請求項１に記載のデータ処理回路。
【請求項３】
−  前記メモリセルの対応する１つからの信号のそれぞれと少なくとも２つの異なる閾値レベルとを比較することにより表わされる前記出力データワードのディジット値を検出するようになっている検出回路と、
−  前記出力データワードにおける検出されたディジット値に関して前記基準が満たされるように閾値レベルを選択するようになっている閾値レベル選択回路と、
を備える、請求項２に記載のデータ処理回路。
【請求項４】
前記基準は、個々のディジット値におけるディジットカウントおよび／またはディジット値の組におけるディジットカウントの和が少なくとも１つのディジットカウント値を含むディジットカウント値のそれぞれの所定の範囲内となることを課す、請求項１に記載のデータ処理回路。
【請求項５】
前記エンコーダ回路は、
−  基準のシーケンスを規定するようになっており、
−  前記基準に関連してディジットマップを選択するようになっており、それにより、特定の基準に関連するディジットマップの適用は、前記シーケンス中の前記特定の基準に先行するグループに関連する基準が満たされているかどうかを変えず、
−  シーケンス中の連続するグループの内容を連続的に変えるようになっており、各グループは、グループに関連するディジットマップがグループからのディジットに対して選択的に適用されたときにディジットカウントがディジットマップに関連する基準を満たすまで変えられる、
請求項１に記載のデータ処理回路。
【請求項６】
前記シーケンス中の連続する基準に関連するディジットマップはそれぞれ、ディジット値の対応する対を交換することを伴い、残りのディジット値は変わらないままである、請求項５に記載のデータ処理回路。
【請求項７】
基準の前記シーケンスおよび／または基準に関連するディジットマップは、前記シーケンス中の特定の各基準毎に、シーケンス中の先行する基準に関連するディジットマップの適用後、特定の基準に関連するディジットマップの適用前における第１のディジットカウントからワード中の全てのディジットに対して特定の基準に関連するディジットマップを仮定的に適用した後における第２のディジットカウントまでのディジットカウントの範囲で特定の基準が満たされる少なくとも１つのディジットカウントが存在するように選択される、請求項５に記載のデータ処理回路。
【請求項８】
入力データを表わす情報を示す前記データ信号は、ディジットマップを識別する情報を含んでいる、請求項５に記載のデータ処理回路。
【請求項９】
送信チャンネルに接続される出力回路を備え、前記出力回路は、前記出力データワードのディジットを、２レベルよりも大きいエンコード情報として送信するようになっている、請求項５に記載のデータ処理回路。
【請求項１０】
複数のディジットを含む入力データワードをエンコードする方法であって、前記各ディジットが、３つ以上のレベルを使用するマルチレベルエンコーディング方式で信号レベルを制御するために利用可能な少なくとも３つのディジット値から選択される１つの値を有する方法において、
−  入力データワードを受信し、
−  少なくとも２つのディジットマップを規定し、各ディジットマップは、それぞれの異なる出力ディジット値に対する利用可能なディジット値のそれぞれの割り当てを規定し、各ディジットマップが出力ディジット値の共通の組に対してマッピングし、
−  前記入力データワード内のディジットの少なくとも２つのグループを選択し、各グループが前記ディジットマップのうちの対応する１つに関連付けられ、グループは、各ディジットマップがその関連するグループからのディジットに対して選択的に適用されたときにそれぞれのディジット値がデータワードにおいて生じる回数のディジットカウントが所定の基準を満たすという制約下で選択され、
−  選択されたグループを識別する情報と、そのグループのためのディジットマップにしたがって入力データワード中の各グループのディジットをマッピングすることにより得られる出力データワードとにより、入力データワードを表わすデータ信号を生成する、
ことを含む方法。
【請求項１１】
前記基準は、個々のディジット値におけるディジットカウントおよび／またはディジット値の組におけるディジットカウントの和が少なくとも１つの値を含むそれぞれの所定の範囲内となることを課す、請求項１０に記載のエンコーディング方法。
【請求項１２】
−  基準のシーケンスを規定し、
−  前記基準に関連してディジットマップを選択し、それにより、特定の基準に関連するディジットマップの適用は、前記シーケンス中の前記特定の基準に先行するグループに関連する基準が満たされているかどうかにかかかわらず変化せず、
−  シーケンス中の連続するグループの内容を連続的に変え、各グループは、グループに関連するディジットマップがグループからのディジットに対して選択的に適用されたときにディジットカウントがディジットマップに関連する基準を満たすまで変えられる、
ことを含む、請求項１０に記載のエンコーディング方法。
【請求項１３】
前記シーケンス中の連続する基準に関連するディジットマップはそれぞれ、ディジット値の対応する対を交換することを伴う、請求項１２に記載のエンコーディング方法。
【請求項１４】
基準の前記シーケンスおよび／または基準に関連するディジットマップは、前記シーケンス中の特定の各基準毎に、シーケンス中の先行する基準に関連するディジットマップの適用後、特定の基準に関連するディジットマップの適用前における第１のディジットカウントからワード中の全てのディジットに対して特定の基準に関連するディジットマップを仮定的に適用した後における第２のディジットカウントまでのディジットカウントの範囲で特定の基準が満たされる少なくとも１つのディジットカウントが存在するように選択される、請求項１２に記載のエンコーディング方法。
【請求項１５】
入力データを表わす情報を示す前記データ信号は、ディジットマップを識別する情報を含んでいる、請求項１０に記載のエンコーディング方法。
【請求項１６】
前記データ信号と少なくとも２つの異なる閾値レベルとを比較することにより前記データ信号により表わされる前記出力データワードのディジット値を検出することを含み、前記閾値レベルは、検出されたディジット値に関して前記基準が満たされるように選択される、請求項１０に記載のエンコーディング方法。
【請求項１７】
前記データ信号がメモリ内に記憶され、データワードのディジットは、２レベルよりも大きいエンコード情報として共通のアドレスで対応するメモリセル内に記憶される、請求項１０に記載のエンコーディング方法。
【請求項１８】
前記データ信号が送信チャンネルにより送信され、データワードのディジットは、２レベルよりも大きいエンコード情報として送信される、請求項１０に記載のエンコーディング方法。
【請求項１９】
３つ以上のレベルを使用するマルチレベルエンコーディング方式で信号レベルとしてエンコードされる複数のディジットを含む入力データワードをデコードするためのデコーダ回路を備えるデータ処理回路であって、前記デコーダ回路は、
−  前記データワード内のディジットの少なくとも２つのグループを識別する情報を検索するようになっており、
−  グループのそれぞれのディジットを対応するディジットマップにしたがってマッピングするようになっており、前記各ディジットマップは、それぞれの出力ディジット値に対する利用可能なディジット値のそれぞれの割り当てを規定し、各ディジットマップが出力ディジット値の共通の組へマッピングし、
−  その対応するマップにしたがってマッピングされた各グループのディジットを含む出力データワードを生成するようになっている、
データ処理回路。
【請求項２０】
３つ以上のレベルを使用するマルチレベルエンコーディング方式で信号レベルとしてエンコードされる複数のディジットを含む入力データワードをデコードする方法であって、
−  前記データワード内のディジットの少なくとも２つのグループを識別する情報を検索し、
−  グループのそれぞれのディジットを対応するディジットマップにしたがってマッピングし、前記各ディジットマップは、それぞれの出力ディジット値に対する利用可能なディジット値のそれぞれの割り当てを規定し、各ディジットマップが出力ディジット値の共通の組へマッピングし、
−  その対応するマップにしたがってマッピングされた各グループのディジットを含む出力データワードを生成する、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データワードをエンコードおよびデコードする方法に関し、好ましくはデータワードをメモリマトリクスに記憶させるためのこれらの方法の適用に関する。また、本発明は、そのようなエンコードされたワードが記憶されるメモリマトリクスを有する回路に関する。
【背景技術】
【０００２】
米国特許第４，３０９，６９４号は、データがバイナリービットのワードへエンコードされ、それにより、論理１の値を有するワード中のビット数が論理０の値を有するビット数に等しくなるデータ送信技術について記載している。これは、入力ワード中の第１の数の論理１を数え、第１の数のビットの半分が論理１の値を有するワードの一部を論理的に逆にすることにより実現される。
【０００３】
本発明は、データワード中のバイナリを越えるデータのディジットを表わすために３つ以上の信号レベルから選択された信号値が使用される、いわゆるマルチレベルエンコーディングに関するものである。
【０００４】
特定の実施形態において、本発明はメモリ回路に関するものである。メモリ回路の容量は、バイナリ表示の代わりにディジットのマルチレベル表示を使用することにより増大することができる。一般的なメモリにおいて、データは、メモリセル内に記憶された電荷によって表わされ、例えば、フローティングゲート上の電荷またはコンデンサ上の電荷として表わされる。通常、バイナリ表示または２レベル表示は、記憶された電荷が２つの値のうちの一方を名目上有する場合に使用される。マルチレベル表示がメモリ内で使用されると、電荷は、３つ以上の公称値のうちの１つをとるようにプログラムされる。したがって、各電荷は、バイナリ表示を用いて表わすことができる多くの情報を示す。例えば、４つのレベルが使用される場合、各電荷は２ビット情報を表わす。
【０００５】
データがメモリから読み取られると、電荷に依存する信号が生成される。この信号は、可能な公称電荷のうちのどれが記憶されたのかを決定するために多くの閾値と比較される。比較結果から、記憶された情報が復元される。多くのレベルを使用すればするほど、多くのディジット値をエンコードできるが、実際には、レベルの最大数は、検出中の信号対雑音比などの因子によって制限される。フラッシュメモリにおいては、４つのレベルを使用できることが分かった。
【０００６】
閾値のレベルは、そのようなメモリの確実な動作において、したがってレベルの最大数において重要である。閾値レベルは、隣接する公称電荷における信号レベル同士を、これらの信号レベルにおける避けられない変動に起因するエラーを最小限に抑えつつ、区別しなければならない。更なる問題点は、時間や温度などの環境に応じて電荷レベルが系統だったシフト（すなわち、各電荷毎に起こるシフト）を示す場合があるという点である。
【０００７】
この種のシフトを考慮するためには、閾値レベルを動的に適合させることが望ましい。適合された基準レベルを選択するための１つの技術は、所定量の電荷を最初に記憶する基準セルを使用すること、および、データが記憶されるデータセルと同じ影響に基準セルを晒すことである。これらの基準セルから得られる出力信号から、適合された閾値が得られても良い。このようにして、閾値シフトを補償することができる。しかしながら、この方法により、メモリは、基準セルの故障に陥り易くなる。閾値変化がデータを書き込む回数に依存するフラッシュメモリのようなメモリにおいては、基準セルをデータセルと同程度の回数となるようにしなければならず、それにより、基準セルが故障しやすくなる（データセルの故障は、エラー修正コードを使用して、より簡単に修正できる）。
【０００８】
魅力的な他の手段は、データセル自体から得られる情報から閾値レベルを得ることである。データは、マルチレベルディジットのデータワードとして記憶される（一般に、メモリマトリクスの横列のほぼ全体のセルを占める）。例えば所定数の記号がデータワード中でそれぞれのレベルをとる時に、データワード内で異なるレベルをとるディジットの総数（ここでは、ディジットカウントと呼ばれる）が特定の制約を満たすことが分かっている場合、データワードのために得られる出力信号の統計値から閾値レベルを得ることができる。データワードが大きい場合、これは、個々のセルにおけるエラーが閾値選択に対して殆ど影響を与えないという利点を有する。
【０００９】
しかしながら、この技術は、ディジットカウントが所定の制約を満たすデータワードのみを用いて情報がエンコードされることを要する。メモリ内のデータを表わすためにバイナリ表示が使用される場合には、送信のために米国特許第４，３０９，６９４号に開示されるような技術が適用されても良い。しかしながら、この技術は、３つ以上のレベルを用いるマルチレベルエンコーディングを扱わず、無論、この種のエンコーディングをメモリマトリクスからの読み取り中に使用するために閾値選択に適用することもない。
【００１０】
欧州特許第７５８  ８２５号は、ランニングデジタル和がゼロになるようにチャンネルコードワードを生成するための方法および装置を開示する。この文献は、マルチビットコードワードにおけるバイナリエンコーディングに関するものである。各コードワードは複数のバイナリ記号を含んでおり、各バイナリ記号は、それ自体、ランニングデジタル和に寄与する。１つの実施形態において、想定し得るデータワードのそれぞれは、互いに逆の一対のチャンネルコードワードのうちのいずれか一方によりエンコードすることができる。各対において、対の一方のチャンネルコードワードの記号のデジタル和は、対の他方のチャンネルコードワードのそれのマイナスである。他の実施形態において、対におけるコードワードは、互いの逆ではなく、単に反対のデジタル和を有している。チャンネルエンコーディング中、データワードが連続的に受けられ、また、各データワード毎に、ランニングデジタル和をほぼゼロに保つチャンネルコードワードのその対のうちの１つが選択される。
【００１１】
他の実施形態において、欧州特許第７５８  ８２５号は、入力データ記号の複数の異なるマップを規定する。各マップは、全てが同じデジタル和を有するチャンネルコードワードの異なる組へマッピングし、異なるマップの組は互いに異なるデジタル和を有している。この実施形態において、これらの重なり合わないマップのうちの異なるマップは、ランニングデジタル和をほぼゼロに保つための時間の最中に選択される。
【００１２】
米国特許第２００３／０１５２１５４号は、同様の技術をマルチレベルエンコーディングに対して適用する。すなわち、各データワードを、互いに異なるシーケンスのマルチレベルディジットを有する２つのチャンネルコードワードのうちの任意の１つへ変換することができる。同じデータワードにおける異なるコードワードは異なるデジタル和（平均信号レベル）を有している。エンコーディング中、ランニングデジタル和をほぼゼロに保つコードワードを選択するために、毎回、対応するチャンネルコードワード間の連続する各データワード毎に選択が行なわれる。米国特許第２００３／０１５２１５４号および欧州特許第７５８  ８２５号の両方がそれぞれのデータワードをエンコードするための選択肢の相互にまとまりのない組を使用するという事実は別として、両方は、全体として、データワードのために、それぞれが所定の複数の記号を伴う一方の選択肢または他方の選択肢の間で選択する。
【００１３】
米国特許第２００２／１８１２７８号は、ディジットのマルチレベル表示が使用され且つ隣接していない記号が１つのレベル間距離を越えて離れている、記憶媒体での記憶について記載している。
【発明の開示】
【課題を解決するための手段】
【００１４】
特に、本発明の目的は、２レベルよりも大きい情報をエンコードして、情報を検出するための閾値レベルをエンコード情報自体から容易に選択できるようにすることである。
【００１５】
特に、本発明の目的は、２レベルよりも大きい情報をエンコードして、ワード中のディジットカウントが所定の基準を満たすようにすることである。
【００１６】
１つの態様において、入力データワードは、入力データワードからのディジットの少なくとも２つのグループを対応するディジットマップに対して選択的に晒すことにより、出力データワード中のディジットを表わすための３つ以上のレベルを用いてエンコードされる（すなわち、グループ外のディジットをディジットマップに晒すことなく、ディジット値を有するディジットが１つのグループ内にある或いは他のグループ内にある或いはグループ外にあるかどうかに応じて、入力データワードからのディジット値に関して異なるレベルが使用されても良いようにする）。各マップは、各レベルが入力データワード中のディジット値に対してどのように関連付けられるのかを決定する。ディジットマップの一般的な例は、一対のディジット値を交換し、他のディジット値を変えずにおくことを含んでいる。
【００１７】
異なるグループに対して割り当てられるデータワードのディジットは、マッピング後のそれぞれのディジット値におけるディジットカウントが所定の基準を満たすという制約下で選択される。一般的な基準は、全てのディジットカウントが所定の値を有し或いは値の所定の範囲内にあり、例えば、全てのディジットカウントが同じ値を有し或いは同じ範囲にあることを含んでいる。他の基準は、ディジット値の組におけるディジットカウントの和が所定の値を有し或いは所定の範囲内にあることを必要とし得る。任意のデータワードにおいては、これらの基準を満たすグループの多くの組み合わせが存在する。任意のそのような組み合わせが選択されても良い。
【００１８】
グループの内容は基準が満たされるように選択され、また、グループを識別する情報はデータワードをエンコードする情報と共に含められる。ディジットの適切なグループを検索する多くの方法が使用されても良い。簡単な方法は、全ての可能なグループを考慮し、基準が満たされているかどうかをグループの各組み合わせ毎に決定するとともに、基準が満たされたグループの組み合わせを選択することである。しかしながら、そのような技術は、特に多くのディジットを有するデータワードが使用されるとき、例えば基準が満たされなければならないワード毎に１２８ビット以上、２５６ビット以上、あるいは、１０２４ビット以上が使用される際には、計算的に高価となる。
【００１９】
一実施形態において、グループは、ディジットカウントにより満たされなければならない基準のシーケンスを規定することにより選択される。各基準は、基準が確実に満たされるようにディジットのグループが選択されるディジットマップに関連付けられる。ディジットマップは、特定の基準に関連付けられるディジットマップの適用が、シーケンス中の特定の基準に先行するグループに関連する基準が満たされているかどうかに影響を与えないように、基準に関連付けられる。この場合、グループの内容を連続的に選択することができ、それにより、全ての基準が満たされるまで、満たされる基準の数が次第に増大する。これにより、グループを選択するために必要な計算量力が減少する。
【００２０】
基準とディジットマップとの組み合わせは、適したグループを見出し得ることが予め確保されるようにエンコードされるデータワードに応じて選択されることが好ましい。あるいは、異なるディジットマップを試みなければならない場合がある。ディジットカウントまたはディジットカウントの和が所定の範囲内にある（または、所定の値を有している）という形態を基準が成している場合には、空のグループに関して（すなわち、ディジットがマッピングされない場合に関して）および完全なグループ（データワードの全てのディジットがマッピングされる場合に関して）に関して関連するディジットカウントまたはディジットカウントの和を計算することにより、適切なグループの確実な存在をチェックすることができる。これらの２つの計算値間の範囲が所定の必要とされる範囲と重なり合う場合には、適切なグループを確実に見つけることができる。
【００２１】
一実施形態において、データワードをエンコードする情報は、それぞれのグループのために使用されたディジットマップの表示も含んでいる。例えば、３つのディジット値が使用され、ディジットマップが、第１のディジット値が第２のディジット値と交換される第１のマップおよび第２のディジット値が第３のディジット値と交換される第２のマップである場合には、この情報が第２のディジット値を示すことができる。
【発明を実施するための最良の形態】
【００２２】
本発明は、マルチディジットデータワード中のディジットを表わすためにマルチレベル（Ｍ＞２レベル）信号が使用され且つそれぞれのディジット値を表わす信号値を有するデータワード中のディジットのそれぞれの数Ｎｉの指標に基づいて異なるディジットを表わす信号値を区別するための閾値が選択される回路に対して適用することができる。そのような回路で使用されるデータワードは、データワードをエンコードする数Ｎｉに関する制約の組み合わせを満たさなければならない。本発明は、そのような回路で使用するためのエンコードされたデータワードの選択に関係している。本発明を更に十分に理解するため、本発明を適用できる回路の一例について最初に説明する。
【００２３】
１．マルチレベル検出を伴う回路の例
図１は、メモリマトリクス１０と、読み取り回路１２と、閾値選択回路１４と、デコーダ１５と、エラー修正回路１６と、処理回路１８と、エンコーダ回路１９とを有する回路を示している。処理回路１８は、メモリマトリクス１０に結合されたアドレス出力を有している。メモリマトリクス１０は、読み取り回路１２に結合されたデータ信号出力を有している。読み取り回路１２はデコーダ１５に結合された出力を有しており、デコーダ１５はエラー修正回路１６に結合された出力を有しており、エラー修正回路１６は処理回路１８に結合されたデータ出力を有している。また、処理回路１８は、エンコーダ１９を介してメモリマトリクス１０に結合される書き込み出力を有している。読み取り回路１２の出力は閾値選択回路１４にも結合されており、閾値選択回路１４は、読み取り回路１２に結合された閾値選択出力を有している。回路が単なる一例として示されており、例えばエラー修正回路１６がデコーダ１５と組み合わされ或いは省かれ、処理回路１８とエンコーダ１９との間に別個のエラー修正コードエンコーダが加えられ、処理回路とは別個のアドレスを計算する専用のアドレス指定回路が加えられても良いことは言うまでもない。動作時、処理回路１８は、メモリマトリクス１０内のセルの横列（図示せず）をアドレス指定する。それに応じて、メモリマトリクス１０は、データ信号出力におけるセルの情報量によって決定される信号を出力する。読み取り回路１２は、これらの信号と閾値とを比較して、これらの比較結果を出力する。結果は、データ信号出力毎に２以上のバイナリービットの情報を表わす。例えば、３レベルコーディングが使用される場合、結果は各データ信号毎にレベル出力を表わし、３つの公称レベルのうちのいずれかのレベル出力に対してデータ信号出力における信号が割り当てられる。より一般的には、Ｍレベルコーディングが使用される場合、結果は各データ信号毎にレベル出力を表わし、Ｍ個の公称レベルのうちのいずれかのレベル出力に対してデータ信号出力における信号が割り当てられる。デコーダ１５が結果からの情報をデコードし、エラー修正回路１６が結果におけるエラーを修正する。エラー修正回路１６は、デコードされて修正された情報を処理回路１８に供給する。
【００２４】
図２は、読み取り回路１２の一部の一実施形態を示している。メモリマトリクス１０（図示せず）からのデータ信号出力２４は、２つのコンパレータ回路２０，２２の入力に結合される。コンパレータ回路２０，２２の更なる入力は、閾値選択回路１４（図示せず）からの閾値選択ライン２５ａ，ｂに対して結合されている。コンパレータ回路２０，２２の出力はエラー修正回路１６（図示せず）に対して結合されている。読み取り回路１２がそれぞれのビットライン２４と並列に結合される図２に示されるタイプの複数の回路を含んでいることは言うまでもない。
【００２５】
図３は読み取り回路１２の動作を示している。メモリマトリクス１０内の各セルは、名目上３つの可能な出力信号のうちの１つが生じるように、データディジットでプログラムされている。値の散らばりに起因して、公称値からの偏りが生じる場合がある。これは、それぞれの公称値において異なる出力信号値が生じ得る確率を垂直軸に沿ってプロットすることにより示されている。図示のように、確率にはピークが存在しており、これは、確率がピークから降下する異なる公称値に対応して存在する。
【００２６】
動作時、コンパレータ回路２０，２２は、データ信号出力におけるデータ出力信号とそれぞれの閾値Ｔｉとを比較する。図３には２つのレベルＴ１，Ｔ２が示されている。コンパレータ回路２０，２２の出力信号は、データ出力信号を、それぞれのディジット値を表わす３クラスのうちの１つに分類する。データ出力信号が両方のレベルＴ１，Ｔ２を下回っていることをコンパレータ回路２０，２２が示す場合には、第１のディジット値が示される。データ出力信号がＴ２を上回り且つＴ１を下回っていることをコンパレータ回路２０，２２が示す場合には、第２のディジット値が示される。データ出力信号が両方のレベルＴ２，Ｔ１を上回っていることをコンパレータ回路２０，２２が示す場合には、第３のディジット値が示される。ディジット間を区別するために３つ以上の閾値レベルＴｉを使用することにより、４つ以上のディジット値を考慮できることは言うまでもない。
【００２７】
レベルＴｉは、出力信号の誤った分類を防止するために注意深く選択されなければならない。データ出力信号のシフトを考慮するようにレベルＴｉを適合させることがしばしば必要であることが分かってきた。そのようなシフトは、データがメモリマトリクス１０内に記憶される間の時間にわたって、あるいは、度重なる消去によりメモリマトリクス１０のセルが摩耗することにより、あるいは、温度の変動などの外部の影響に起因して生じる場合がある。
【００２８】
図４は閾値選択回路の一実施形態を示している。回路は、計数回路４２と閾値設定回路４４とを含んでいる。計数回路４２は、読み取り回路１２（図示せず）の出力に結合された入力４０を有している。計数回路４２は閾値設定回路４４に結合された出力を有するとともに、閾値設定回路４４は閾値選択ライン２５ａ，ｂに結合された出力を有している。動作時、計数回路４２は、メモリマトリクス１０のＭ個のそれぞれの検出可能な出力レベルの各レベル「ｉ」毎に、ここではそれぞれのレベルを伝えるメモリ回路１０のデータ信号出力を読み取り回路１２が幾つ検出したのかを表わす「ディジットカウント」と呼ばれる数Ｎｉを数える。データ信号出力のこれらの数のディジットカウントＮｉは、閾値選択ライン２５ａ，ｂ上の閾値信号のレベルによって決まる。閾値設定回路４２は、ディジットカウントが所要の数Ｐｉとほぼ一致するまで閾値信号を適合させる。
【００２９】
エンコーダ回路１９は、メモリマトリクス１０内に記憶された記憶データワードが特定のタイプを有するように、処理回路１８からの受信データワードをエンコードする。各記憶データワードは、それぞれがＭ個（Ｍ＞２；例えばＭ＝３）のレベルのうちの１つをとることができる複数のＮ個の「ディジット」を含んでいる。記憶データワードはデータワードのサブセットから選択される。この場合、データワード中のそれぞれのレベル（インデックスｉにより示される）にあるディジットの数Ｐｉは、サブセット中の各データワードにおいて同じである。好ましくは、数Ｐｉは、異なるレベルｉにおいてほぼ同じである（Ｎ／Ｍにほぼ等しい）。例えばＭ＝３の場合、各データワードは、第１のレベルのＰ１個のディジット、第２のレベルのＰ２個のディジット、第３のレベルのＰ３個のディジットを有しており、好ましくはＰ１＝Ｐ２およびＰ２＝Ｐ３である。
【００３０】
全てのデータワードがそれぞれのレベルでディジットの同じ対応する数Ｐｉを実質的に有しているため、閾値信号を適合させるために閾値選択回路１４によりディジットカウントＮｉを使用することができる。一実施形態において、閾値選択回路１４は、ｉを上回るディジット値を用いて検出される出力レベルからｉ以下のディジット値を用いて検出される出力レベルを区別する閾値信号Ｔｉを適合させる。これは、Ｔｉにより規定されるｉ以下のレベルｊの出力信号のディジットカウントの第１の和ΣＮｊを数えるとともに、この和を同じレベルにおける第２の（所定の）和ΣＰｉの値と比較することにより実施されても良い。第１の和ΣＮｊが第２の和よりも大きい場合にはレベルＴｉが増大され、また、第１の和が第２の和よりも小さい場合にはレベルＴｉが減少される。レベルＴｉは、第１の和が第２の値をとるＴｉの範囲の中間に設定される。この手続きは全ての閾値レベルにおいて行なわれても良い。
【００３１】
図５は、マルチレベルエンコーディングが使用されても良い回路の他の例を示している。この回路は、互いに直列に接続された、データソース５０と、エンコーダ５２と、送信チャンネル５４と、読み取り回路５６と、エラー修正デコーダ５８と、受信回路５９とを含んでいる。チャンネル５４および読み取り回路５６には、読み取り回路５６の閾値レベルを調整するための閾値調整回路５５が結合されている。動作時、エンコーダ５２は、ソース５０からのデータワードをディジットを有するワードへエンコードする。各ディジットは、チャンネル５４を介して送信され、Ｍ個のレベルから選択される１つのレベルにより表わされる。エンコーダ５２は、各レベルがそれぞれの送信されたワードにおいて対応する所定の回数だけ起こるようにワードを選択する。読み取り回路５６は、チャンネルからの信号と閾値調整回路５５により決定された閾値レベルとを比較し、閾結果を受信回路５９により使用するためにエラー修正デコーダ５８へ出力する。
【００３２】
図１の場合と同様に、閾値調整回路５５は、それぞれの値のそれぞれの所定のディジット数が各ワードにおいて読み取り回路により検出されるように閾値を適合させるべく動作する。一実施形態において、読み取り回路５６は、閾値調整回路５５が閾値を調整するまでワードの受信データを遅らせるが、もう１つの方法として、閾値調整回路５５が前のワードに関して得られた結果に基づいて閾値を調整しても良い。送信チャンネル５４が磁気記録デバイスまたは光記憶デバイスのような記憶デバイスに取って代えられるような同様の適用も可能である。
【００３３】
関連するワードは、一般に、図５の送信実施形態よりも図１のメモリ実施形態における方が十分に長いことは言うまでもない。小さなワードサイズにおいては、ルックアップテーブルによりエンコーダを実施できる場合がある。
【００３４】
メモリ実施形態においてディジットカウントＮｉが数えられるワードサイズは、一般に、メモリマトリクスの横列サイズに等しく、例えば１ワード当たり２５６または１０２４ディジットである。ワードサイズは、異なるマトリクスから並行して読み取ることができるような複数の横列にわたって広がっていても良く、その場合、レベルは、それに応じて変化するものと思われる。そのようなワードサイズにおいて、ルックアップテーブルの使用は不可能である。
【００３５】
２．マルチレベル検出のためのデータワードのエンコーディング
図６はエンコーディングプロセスのフローチャートを示している。第１のステップ６１では、入力データワードが受けられる。このデータワードは複数のＮ個のディジットを含んでおり、各ディジットはＭ個（Ｍ＞２）の値のうちの選択可能な１つを自由にとる。
【００３６】
図６のプロセスにおいて、入力データワード中の選択されたディジットの値は、Ｍ個の値（異なる値がインデックスｉにより示される）のうちの対応する値をとるディジットのほぼ所定の数Ｎｉを有する出力データワードを生成するように変えられる。ディジットは、異なるディジットマップをディジットの異なるグループに対して適用することにより変えられる。ディジットマップｆ：ｘ−＞ｙは、Ｍ個の可能なディジット値ｘのそれぞれを対応するディジット値ｙに対して割り当て、それにより、割り当てられたディジットｙは、異なるディジット値ｘに関して異なるようになる。ディジットマップの一般的な例は、Ｍ個の値のうちの２つ（例えば、値Ａ，Ｂ）を交換して他の値を変えずにおくマップである。
【００３７】
プロセスにおいて、異なるディジットマップが適用されるディジットのグループは、選択されたグループのディジットに対してディジットマップを適用した後にディジットのほぼ所定の数Ｎｉが出力データワードで実現されるように選択される。その後、選択されたグループを識別する情報が加えられ、また、随意的には、適用されたディジットマップも加えられ、この情報と出力ワードとの組み合わせを使用して、一般的にはこの情報を有する出力データワードをメモリに記憶するために入力データワードがエンコードされる。
【００３８】
更に詳細には、受信ステップ６１の後、第２のステップ６２においては、受信ワードのディジットの複数のＭ−１個のグループが選択される。この第２のステップ６２については以下で更に詳しく説明する。第３のステップ６３において、受信ワードは、ディジットマッピング動作の適用により、１つのグループの対応するディジットへ変換される。第４のステップ６４により、第３のステップ６３がそれぞれのグループ毎に繰り返され、各グループがそれぞれのグループに関連するディジットマッピングを適用する。全てのグループのディジットが変換されたら、第３および第４のステップにより生成された出力ワードを含むエンコードされた情報（エンコード情報）、グループを識別するための情報、随意的にはディジットマッピングを識別するための情報を生成する第５のステップ６５が行なわれる。第５のステップ６５により適用される「エンコード情報の生成」は、エンコード情報をメモリに書き込むこと、あるいは、エンコード情報を送信することを含んでいても良い。
【００３９】
グループを識別する情報は、例えばグループ境界にあるディジットのインデックス値の形態を成していても良い。この目的のため、各ディジットには、一連の連続するインデックス値のうちの対応する１つ、例えばディジットが記憶されるメモリマトリクス１０中の縦列の連続番号が割り当てられる。したがって、連続するインデックス値を有するディジットのグループは、２つのインデックス値を使用して、あるいは、グループが所定のインデックス値で始まる或いは終わる場合には１つのインデックス値を使用して識別することができる。
【００４０】
図６のプロセスが例えば適切にプログラムされたプロセッサを使用して実行されても良いことは言うまでもない。等価なエンコード情報は、ディジットマッピングを選択されたディジットに対して適用するようになっている専用の回路によっても生成できる。
【００４１】
デコーダ回路１５は逆デコーディング操作を行なう。すなわち、デコーダ回路は、ディジットのどのグループをマッピングする必要があるのかを示す情報、また、随意的には、どのマッピングを適用すべきかを示す情報を検索する。グループに関する情報は、例えばメモリマトリクス１０に記憶されても良く、また、デコーディングのためにメモリマトリクス１０から検索されても良く、例えばデコーディングのためにメモリマトリクス１０から読み取られるデータワードの一部として検索されても良い。あるいは、情報のためにメモリマトリクス１０内の別の記憶場所が使用されても良く、別個のメモリが使用されても良い。グループに関する情報は、例えば極めて高いディジットレベルだけを使用して、あるいは、強いＥＣＣを使用して情報をエンコードすることにより、グループ内のデータよりも高いエラー保護をもって書き込まれることが好ましい。
【００４２】
グループに関する情報が同じメモリマトリクス１０内に記憶される場合、この情報は、位置コードをこの特性を有するエンコードされた位置コードに変換するための例えばルックアップテーブルにより、異なるレベルの所定数のディジットを用いてエンコードされることが好ましい。しかしながら、他の方法として、異なるレベルの所定数のディジットを有さないコードが使用されても良い。この場合、この情報を記憶するメモリセルが閾値レベルの決定に寄与しないことが好ましい。しかしながら、これらのメモリセルが閾値レベルの決定に寄与することが受け入れられる場合もある。これは、この情報を記憶するために必要なメモリセルの数が、ユーザデータを記憶するために必要なメモリセルの数と比べて少ないだけだからである。
【００４３】
図６のグループ選択ステップ６２は多くの方法で実施することができる。簡単な解決策をＭ＝３の場合に関して説明する。そのため、記憶または送信中に異なる公称信号レベルにより表わされるＡ，Ｂ，Ｃと呼ばれる３つの可能なディジット値が存在する。この例においては、Ｍ−１＝２個のディジットマップ、例えば、ＡディジットをＢディジットへマッピングし、ＢディジットをＡディジットへマッピングし、Ｃディジットを変えないでおく第１のディジットマップと、Ａディジットを変えずにおき、ＢディジットをＣディジットへマッピングし、ＣディジットをＢディジットへマッピングする第２のディジットマップとが選択される。第１のディジットマップをデータワード中の任意の数のディジットに対して適用すると、ディジット値Ｃを有するディジットの数Ｎｃは変わらないままとなる。第２のディジットマップをデータワード中の任意の数のディジットに対して適用すると、ディジット値Ａを有するディジットの数ＮＡが変わらないままとなる。
【００４４】
これにより、ディジットマップが２つのステップで適用されるディジットのグループをデータワードから選択することができる。第１のステップでは、第１のマップが適用される第１のグループが選択され、第２のステップでは、第２のマップが適用される第２のグループが選択される。
【００４５】
第１のステップにおいて、第１のグループは、第１のマップを第１のグループのディジットに対して適用した後に（値Ａを有する変換されたデータワード中のディジットの）ディジットカウントＮＡが出力ワードのために必要な値ＰＡを有するように選択される。この値は、第２のステップで選択されるグループによって影響されない。その理由は、第２のマップがＮＡに影響を及ぼさないからである。第２のステップにおいて、第２のグループは、第２のマップを第２のグループのディジットに対して適用した後にディジットカウントＮＢが出力ワードのために必要な値ＰＢを有する（したがって、ディジットカウントＮＣもその必要な値を有する）ように選択される。
【００４６】
第１のステップにおいて、第１のグループは、例えば、提示された第１のグループがディジットを加えることにより連続的に広げられるときに入力データワードにおけるディジットカウントＮＡを数え且つランニング差ｎＡ−ｎＢ（値Ａを有するディジットの数と値Ｂを有するディジットの数との間の差）を数えることによって選択される。ｎＡ−ｎＢが値ＮＡ−ＰＡをとると、必要とされる第１のグループが見出された。第２のグループは、ランニング差ｎＢ−ｎＣがＮＢ’−ＰＢ（ＮＢ’は、第１のマッピングを第１のグループに適用した後に得られるレベルＢのディジットのディジットカウントである。ＮＢ’＝ＮＢ＋ＮＡ−ＰＡ）に等しくなるまでグループを広げることにより同様の方法で構成されても良い。
【００４７】
連続的に更に大きいグループに対してディジットマッピングが適用されると、ディジット値ＮＡを有するディジットのディジットカウントが変化する。ＮＡがＮＢの最初の値に変化する場合が確実にある（全てのＡおよびＢが交換される場合）。したがって、ＮＡ＜ＰＡ＜ＮＢまたはＮＢ＜ＰＡ＜ＮＡの場合に、必要とされるグループを確実に見つけることができる（無論、最初にＮＡ−ＰＡの場合、空の第１のグループが使用されても良い）。エンコーディングに関与するレベルＡ，Ｂ，Ｃは、この条件が満たされるように選択されることが好ましい。しかしながら、多くの場合にＮＡをＮＡ〜ＮＢの範囲外の値へ変えることができ、それにより、特に大きなデータワードが使用される場合にＡ，Ｂ，Ｃのそのような選択を行なう必要がなくなる場合があることに留意しても良い。
【００４８】
図７は、データワードをエンコードするレベルＭの数が３に等しい場合にこの方法にしたがって入力データワード中のディジットのグループを選択するためのグループ選択ステップ６２におけるプロセスのフローチャートを示している。このプロセスは、１の番号が付されたＮ個のディジットを有する入力ワードに対して適用される。ここで、Ｎ個の各ディジットは、Ｍ＝３個の値のうちの１つを有していても良い。問題は、同じ回数Ｎ／３だけ各値がとられるような変換された出力ワードが実現されるようにグループを見つけることである。
【００４９】
第１のステップ７１においては、入力データワード中に対応する値を有するディジットのディジットカウントＮ１，Ｎ２，Ｎ３が数えられる。例えば、入力データワードが
１１２３２  １１２２３  １１３１１
である場合、
Ｎ１＝７、Ｎ２＝４、Ｎ３＝３である。データワードの全体の長さ（１５ディジット）が単に例示的な目的で使用されていることは言うまでもなく、実際には、更に長いワード（例えば、２５５ディジットまたはそれ以上）が使用される。第２のステップ７２においては、ＮＡ＜ＰＡ＜ＮＢとなるようにレベルＡ，Ｂが選択される。この例では、例えば、入力ワードが
ＢＢＡＣＡ  ＢＢＡＡＣ  ＢＢＣＢＢ
に対応するように、Ｂ＝１およびＡ＝２が選択されても良い。
【００５０】
また、第２のステップ７２においては、ディジットのグループＧ１が規定されて空のグループに初期化される。ランニング差ｎＡ−ｎＢが規定されてゼロに設定される。最初のディジットカウンタ「ｉ」がゼロに設定される。第３のステップ７３では、ＮＡ−（ｎＡ−ｎＢ）＝Ｎ／３かどうかが検査される。そうでない場合には、第４のステップ７４において、ディジットカウンタが増大され、ディジットカウンタにより示されるディジットを加えることによりグループＧ１が広げられる。加えられたディジットが値Ａ，ＢまたはＣを有しているかどうかに応じてランニング差ｎＡ−ｎＢが更新される。その後、プロセスが第３のステップ７３に戻る。
【００５１】
この例において、グループＧ１は最初に値Ｂを有する第１のディジットを含んでおり、そのため、（ｎＡ−ｎＢ）が−１になる。このとき、ＮＡ−（ｎＡ−ｎＢ）＝５となり、そのため、
ＡＢＡＣＡ  ＢＢＡＡＣ  ＢＢＣＢＢ
に対するデータワードのマッピングに対応する所望のグループが見出された。
【００５２】
ＮＡ−（ｎＡ−ｎＢ）＝Ｎ／３であることを第３のステップ７３が見出すと、第５のステップ７５が実行される。この第５のステップでは、ディジットのグループＧ２が規定されて空のグループに初期化され、ランニング差ｎＡ−ｎＢが規定されてゼロに設定されるとともに、最初のディジットカウンタ「ｉ」がゼロに設定される。その後、第６のステップ９６が実行され、ＮＢ’−（ｎＢ−ｎＣ）＝Ｎ／３かどうかが検査される。そうでない場合には、第７のステップ７４において、ディジットカウンタが増大され、ディジットカウンタにより示されるディジットを加えることによりグループＧ２が広げられる。加えられたディジットが値Ａ，ＢまたはＣを有しているかどうかに応じてランニング差ｎＢ−ｎＣが更新される。その後、プロセスが第６のステップ７６に戻る。この例では、これにより、データワードが以下のようになる。
ＡＣＡＢＡ  ＣＣＡＡＣ  ＢＢＣＢＢ＝２３２１２  ３３２２３  １１３１１
【００５３】
ＮＢ−（ｎＢ−ｎＣ）＝Ｎ／３であることを第６のステップ７６が見出すと、必要なグループが見つけられ、また、修正されたデータワード、および、例えばグループＧ１，Ｇ２中の最後のディジットのインデックス値１，７を供給するとともに、エンコーディングのために使用されたマッピングを識別するための情報としてディジットＡ，ＢおよびＣの識別表示を供給する（例えばディジットＡに関して所定のディジット値が使用されても良く、ディジットＢの選択だけをデータワードに依存したままとし、それにより、このディジット値だけをエンコードすれば済む）、図６のプロセスの残りが実行されても良い。
【００５４】
図７のフローチャートにしたがって決定されたグループＧ１，Ｇ２が図６のプロセスにおいて直接に使用される必要がない点に留意しても良い。例えば、一般的には、両方のグループＧ１，Ｇ２に属するディジットと、１つのグループ（Ｇ１またはＧ２のいずれか大きい方）に属するディジットと、グループに属さないディジットとが存在する。１つの実施形態においては、第１および第２のディジットマッピングの両方が、両方のグループに属するディジットに対して適用される。しかしながら、両方のディジットマッピングの適用は１つの複合マッピング（ディジット値ＡをＣへ変更し、ディジット値ＢをＡへ変更し、ディジット値ＣをＢへ変更する）によって実施されても良い。この場合、そのような複合マッピングは２つのグループＧ１，Ｇ２のうちの小さい方に対して適用され、また、第１または第２のマッピングは、大きい方のグループに属するが他方のグループには属さないディジットに対して適用される。
【００５５】
ディジットをエンコードするために多数のレベルＭが使用されるケースまで図７のプロセスを容易に広げることができることは言うまでもない。これは、例えば、２つのディジット値が交換される再帰的に連続するディジットマッピングによって実現されても良い。一般に、以下の形式のアルゴリズムが使用されても良い。
１．全てのディジットカウントがそれらの所望の数に等しいかどうかをチェックする。等しい場合には、アルゴリズムを終了することを止める。
２．そのディジットカウントＮＡがその必要とされる値ＰＡよりも小さいディジット値Ａを求める。
３．そのディジットカウントＮＢがその必要とされる値ＰＢよりも大きいディジット値Ｂを求める。
４．ＡにおけるディジットカウントＮＡがその必要とされる値ＰＡに等しくなるまで、連続するディジットにおいてディジット値Ａ，Ｂのスワッピングを始める。
５．どの記号Ａ，Ｂがスワップされたかをエンコードするとともに、この繰り返しでスワップされたディジットの位置をエンコードする。
６．ステップ１から繰り返す。
【００５６】
図７ａはこのアルゴリズムを示している。ステップ７８は、必要とされるディジットカウントを得るためにマッピングされる必要がある残りのディジット値があるかどうかを検査する。このステップは、第３のステップ７３でＮＡが所望の値に変更されるようにグループＧ１が見出されたことが決定されたときに実行される。次のディジット値が処理されるべきであることをステップ７８が決定すると、他のディジット値、すなわち、ディジット値Ａにより既に果たされた役割を果たしている例えばＢの役割を果たした最後のディジット値に関して図７の第２〜第４のステップと同様のステップが使用される。最初に、修正された第２のステップ７２において、前のマッピング後に新たなＮＡがその所望の値Ｐを上回っているか或いは下回っているかどうかが決定され、その後、ＮＡがその所望の値を上回り或いは下回るときにそれぞれそのＮＢが所望の値Ｐを下回る或いは上回る新たな（未だ変更されていない）ディジット値Ｂが選択される。
【００５７】
この技術において分かるように、連続するグループＧｉは、一対のディジット値Ａｉ，Ｂｉが交換されるディジットマッピングＦｉ毎に選択される。一実施形態では、複数のディジットマッピングが１つのチェーンを形成する。この場合、各マッピングは、その先行マッピングＦｉ−１でディジット値Ｂｉ−１として関与したディジット値Ａｉ＝Ｂｉ−１を、新たなディジット値Ｂｉへ変更し、あるいは、その逆を行なう（Ｂｉ−＞Ａｉ）。チェーンの使用は、アルゴリズムの管理を簡略化するが、必ずしも必要ではない。したがって、益々多くの数のディジット値Ａｉ（ｉ＝１，．．．．）におけるディジットＮＡｉのカウントは所望の値に設定される。
【００５８】
より一般的には、以下のアルゴリズムが使用されても良い。すなわち、
例えば、Ｍ＝５（５つの異なるディジット値）の場合には、入力データワードが、例えば、
１４４３５  ２２２１４  ３１１２２  Ｎ１＝４、Ｎ２＝５，Ｎ３＝２，Ｎ４＝３，Ｎ５＝１
であっても良い。
ここでチェーン（Ａ１＝２，Ｂ１＝３），（Ａ１＝３，Ｂ１＝４），（Ａ１＝４，Ｂ１＝５），（Ａ１＝５，Ｂ１＝１）が使用されても良く、これは、以下のような連続的にマッピングされたワードに対応する。
８個のディジット位置に至るまでマピングされた１４４２５  ３３３１４  ３１１２２；この場合、Ｎ２＝３
８個のディジット位置に至るまでマピングされた１３３２５  ４４４１４  ３１１２２；この場合、Ｎ３＝３
７番目のディジット位置に至るまでマピングされた１３３２４  ５５４１４  ３１１２２；この場合、Ｎ４＝３
最初のディジット位置に至るまでマピングされた５３３２４  ５５４１４  ３１１２２
【００５９】
連続するディジット値においては図７ａのフローチャートにわたってサイクルさせる必要がないことは言うまでもない。ディジット値対のチェーンおよびディジットマッピングは、マッピングされるディジットのグループＧｉが選択される前に予め選択されても良い。これにより、全てのグループが終了するディジット位置を１つのサイクルで決定することができる。初めに、このサイクル中に、最初のサイクルのディジットマップＦ１，Ｆ２の構成要素Ｆ１Ｆ２．．．．である１つのディジットマップＦが使用される。次に、この複合マップが益々多くのディジットグループに対して適用される場合にどのようにディジットカウントが変化するかが決定される。このグループが大きくなって、図７ａの周期的な実行中にマッピングＦｉのためのディジットのグループが完全になると、このマップは完全なマップから除去される。
【００６０】
先の例では、最初に、連続するマップ（３−＞２，２−＞１，１−＞５，５−＞４，４−＞３）の適用の結果である複合ディジットマップ（２＜−＞３，３＜−＞４，４＜−＞５および５＜−＞１）が適用される。第１のディジット位置に達した後、このマップは、連続するマップ（２＜−＞３，３＜−＞４および４＜−＞５）の適用の結果である（３−＞２，２−＞５，５−＞４，４−＞３）と置き換えられる。第７のディジット位置に達した後、このマップは、連続するマップ（２＜−＞３および３＜−＞４）の適用の結果である（３−＞２，２−＞４，４−＞３）と置き換えられる。第８のディジット位置の後は、それ以上の変換が必要とされない。複合マップが変更されるディジット位置およびマップに対して適用される変更は、図７ａのケースにおいて変更されたディジット値のうちの最初のディジット値のディジットカウントが所要のディジットカウントに達するまで各ディジットマップが適用されるという知識に加えて、図７ａの実施形態において使用される基準により計算することができる。無論、これらの基準は、位置およびマップの変更を直接に計算できるように言い換えられても良い。
【００６１】
結果として、データワードは、
１４４３５  ２２２１４  ３１１２２入力データワード
（３−＞２，  ２−＞１，  １−＞５，  ５−＞４，  ４−＞３）を用いてマッピングされた５４４３５  ２２２１４  ３１１２２
（３−＞２，  ２−＞５，  ５−＞４，  ４−＞３）を用いてマッピングされた５３４３５  ２２２１４  ３１１２２
（３−＞２，  ２−＞５，  ５−＞４，  ４−＞３）を用いてマッピングされた５３３３５  ２２２１４  ３１１２２
（３−＞２，  ２−＞５，  ５−＞４，  ４−＞３）を用いてマッピングされた５３３２５  ２２２１４  ３１１２２
（３−＞２，  ２−＞５，  ５−＞４，  ４−＞３）を用いてマッピングされた５３３２４  ２２２１４  ３１１２２
（３−＞２，  ２−＞５，  ５−＞４，  ４−＞３）を用いてマッピングされた５３３２４  ５２２１４  ３１１２２
（３−＞２，  ２−＞５，  ５−＞４，  ４−＞３）を用いてマッピングされた５３３２４  ５５２１４  ３１１２２
（３−＞２，  ２−＞４，  ４−＞３）を用いてマッピングされた５３３２４  ５５４１４  ３１１２２
から連続的に変化する。
【００６２】
以上は、多数のレベルをどのように扱うことができるのかについての幾つかの例を示しているにすぎないことは言うまでもない。
【００６３】
図８は、ディジット値の所望のカウントＰがデータワード中で生じるようにするための他のプロセスのフローチャートを示している。第１のステップ８１において、ディジット値は、ディジット値の２つの組に分けられる。第１の組内に値を有する入力データワード中のディジットＮ１のディジットカウントが数えられる。第２のステップ８２においては、１つの組からの１つ以上のディジット値を他の組からのそれぞれのディジット値と交換するディジットマッピングが選択される。第３のステップ８３では、ディジットのグループＧが空のグループへ初期化され、ディジットカウンタが初期化され、ランニング差ｎI−ｎIIがゼロに設定される。第４のステップ８４においては、ＮI―（ｎI−ｎII）が第１の組のディジット値の所望のカウント（すなわち、第１の組のディジット値におけるディジットカウントの和）に等しいかどうかが検査される。等しくない場合には、ディジットカウンタが増大され、ディジットカウンタにより示されるディジットを用いてグループＧが広げられるとともに、このディジットが第１または第２のグループに属しているかどうかに応じてランニング差が更新される第５のステップ８５が実行さる。この後、プロセスが第４のステップ８４から繰り返す。
【００６４】
必要とされるグループＧが見出されたことを第４のステップ８４が検出すると、選択されたディジットマッピングを第１のグループのディジットに対して適用した後に各組毎に組中のディジット値のディジットカウントＮｉの和が所望の値（組中のディジット値における所望のディジットカウントＰｉの和）をとることが分かる。ここで、グループを見つけて所望のディジットカウントＰを実現するために、組内で任意の適当なプロセス（例えば、図８のプロセス自体）が適用されても良い。言うまでも無く、考慮される必要がある組のサイズは、このようにして連続的に半分にされても良く、また、半分にされた組が同時に扱われても良い。
【００６５】
図７を参照して説明したプロセスは、図８のプロセスの一例である。図７のケースにおいて、第１の組はディジット値Ａを含んでおり、第２の組はディジット値ＢおよびＣを含んでいる。最初の４つのステップにおいて、グループＧ１は、それぞれの組におけるディジットカウントの和が所望の値をとるようにするべく選択された。その後、第１の組において最初の動作は不要である。これは、第１の組が１つのディジット値（Ａ）だけを含んでいるからである。第２の組のディジット値（ＢおよびＣ）においては、図７の第５のステップおよびそれ以降のステップで行なわれる１つの更なるグループ選択が必要とされる。
【００６６】
この例において、Ｍ＝５であり、入力データワードは以下の通りである。
１４４３５  ２２２１４  ３１１２２
【００６７】
ディジット値の組（１，２，３）および（４，５）が選択され、それにより、ＮI＝１１およびＮII＝４となっても良い。第１のマップ（２＜−＞５）が使用されても良い（組内の任意のマッピングが加えられても良い）。このようにして、最初の８個のディジットを含むグループが選択され、それにより、入力ワードが、
１４４３２  ５５５１４  ３１１２２
に対してマッピングされる。
【００６８】
ここで、値１，２，３におけるディジットカウントの第１の和およびディジット４，５における第２の和は所望の値（９および６）を有している。このとき、組内のディジットカウントを修正するために、それぞれの組内マッピングが適用されても良い。
【００６９】
好ましくは、ディジットマッピングは、第２のステップ８２において、必要とされるグループＧを確実に見出すことができるように選択される。それぞれの可能なマッピング毎に、マッピングがデータワードに対して全体として適用される場合の影響を計算することにより、ディジットカウントの変化の保証範囲を決定することができる。第１および第２の和ＳI，ＳIIの差ＳI−ＳIIが変化の保証範囲を決定する。第１の和ＳIは、第１の組から第２の組へマッピングされるディジット値におけるディジットカウントの和であり、また、第２の和ＳIIは、逆の方向でマッピングされるディジット値におけるディジットカウントの和である。
【００７０】
このことは、ディジットマップをデータワードの一部に対して適用することにより第１の組においてＮI〜ＮI−（ＳI−ＳII）の範囲の任意のディジットカウントを確実に実現できることを意味する。所望のディジットカウントが実現されるようにするためには、このカウントの所望の値ＰＩ（すなわち、第１の組のディジット値における所望のディジットカウントＰｉの和）がこの範囲内にあることが好ましい。この条件を満たすディジットマップが選択されることが好ましい。あるいは、ディジットマップが選択されたときに、この条件を満たす組が選択されても良い。
【００７１】
他の例として、マッピングの適用の順序が結果に影響を与えないように極めて対称なマッピングが使用されて選択されても良い。例えば、Ｍ＝４の場合には、それぞれのディジットマッピング（Ａ＜−＞Ｃ＋Ｂ＜−＞Ｄ）および（Ａ＜−＞Ｂ）および（Ｃ＜−＞Ｄ）が使用されても良い。ディジット値Ａ＝１，Ｂ＝２，Ｃ＝３，Ｄ＝４が選択される場合には、これにより、ワードの以下の変換が成される。
１１４１  ３３３４  ２２２２  ３３３４  最初のワード＝ＡＡＤＡ  ＣＣＣＤ  ＢＢＢＢ  ＣＣＣＤ
３３２３  １１１２  ４４４４  １１１４  （ＮＡ＋ＮＢ＝ＮＣ＋ＮＤとなるまでＡ＜−＞Ｃ＋Ｂ＜−＞Ｄ）の適用後
３３１３  ２２２２  ４４４４  １１１４  ＮＡ＝ＮＢとなるまでＡ＜−＞Ｂの適用後
４４１４  ２２２２  ３３３３  １１１４  ＮＣ＝ＮＤとなるまでＣ＜−＞Ｄの適用後
【００７２】
なお、この方式はディジットマッピングの適用の順序とは無関係であり、そのため、順序に関する情報をエンコードする必要はない。デコーディング順序は、エンコーディング順序と異なる可能性がある。この技術は、例えばマッピングＡ＜−＞Ｄ＋Ｂ＜−＞Ｃ；Ａ＜−＞Ｂ；Ｃ＜−＞Ｄに示されるディジットマッピングに限定されず、また、幾つかの他のディジットマッピングが同じ特性を有する。
【００７３】
図９は、説明した方法の適用時に使用するためのエンコーディング回路を示している。回路は、シフトレジスタ９０と、ディジットマッピング回路９２と、マップセレクタ９４と、計数回路９６と、出力レジスタ９８とを含んでいる。動作時には、エンコードされるべきデータワードの最初のディジットがシフトレジスタ９０にロードされる（例えばシリアルに或いはパラレルに）。シフトレジスタ９０は、データワードからのディジットをディジットマッピング回路９２に対して連続的に供給する。ディジットマッピング回路９２は、各種のマップにしたがって、各ディジット値を出力ディジット値へマッピングする。ディジットマッピング回路９２は、入力ディジット値に対応するアドレスで出力ディジット値を記憶する例えばルックアップテーブルメモリとして実施されても良い。計数回路９６は、特定のディジット値を有するディジットの数を数える。先の図面のフローチャートに関して説明したように、カウント値の特定の組み合わせに達すると、計数回路９６は、先の図面に関して説明したようにディジットマッピング回路により適用されるディジットマップを例えば識別情報マップへ変更するために、マップセレクタ９４をトリガする。随意的に、マッピングされたディジット値は、他のディジットマッピングの繰り返しのため、シフトレジスタ９０へフィードバックされる。しかしながら、本発明から逸脱することなく、図９の回路以外の回路が使用されても良いことは言うまでもない。例えば、同等な動作を行なうようにプログラムされるプログラマブルプロセッサが使用されても良い。
【００７４】
本発明において、データワードは、入力データワードからのディジットのそれぞれのグループを対応するマップにしたがってマッピングすることにより、また、ワードをエンコードするためのグループおよび随意的にはマップを表わす情報を加えることによりエンコードされる。デコーディング中、グループに関する情報は、逆マップを適用するために使用される。マッピングは、エンコードされたワードに所定のディジットカウントが生じるようにするために使用され、それにより、異なるディジット値を区別するための閾値レベルの選択が容易になる。
【００７５】
しかしながら、これが本発明の単なる１つの適用であることは言うまでもない。他の適用も考えられる。
【００７６】
例えば、データワードが非常に大きい場合には、様々なディジット値におけるディジットカウントが各ワードにおける所定の値と全く等しいかどうかが必ずしも問題にならない。ディジットカウントの所望の値における小さな変化により影響されない閾値選択技術を利用することができる。すなわち、ディジットカウントＮｉが最小値Ｐｉｍｉｎと最大値Ｐｉｍａｘとの間の区間になければならないという形態の制約を定め、それにより、マッピングされたワードのディジットカウントＮｉがそのような区間内に入るとグループの検索を完了できるようにすれば十分となる場合がある。これを使用して、例えば検索中に複数のディジット分だけグループを一度に広げることにより、グループのための検索時間を減らすことができる。また、これにより、グループを表わすために必要とされる情報量が減少する。そのため、閾値選択を行なえるようにディジットカウントを所望の値に十分に近づくようにするグループが見出されれば足りる。閾値選択技術により、例えばデータワード中のディジットの数の１％または２％内のディジットカウントで十分な場合がある。
【００７７】
他の例として、全ての所望のディジットカウントが互いに等しい（Ｎ／Ｍ、Ｎはデータワード中のディジットの数、Ｍはディジット値の数）場合に関して幾つかの例が与えられた。等しい値を使用すると、最小のディジットを用いて最大数の異なるデータワード値をエンコードできるという利点が得られる。しかしながら、代わりに異なる所望の値が異なるディジットに関して使用されても良いことは言うまでもない。実際には、閾値選択技術に応じて、所望の値を定める必要がない場合もある。例えば、加重和、すなわち、所定の重み係数ｗｉが使用されるｓｕｍｉｗｉＮｉ＝Ｃ（ｓｕｍｉはｉの異なる値における次の項の和を示している）に対する条件またはｓｕｍｉｗｉＮｉ＜Ｃのような不等式に関する条件で表わされた制約を定めるだけで足りる場合もある。図８の技術は、ディジットの組におけるディジットカウントの和に関する制約が定められる例を与える。他の例としては、唯一の制約が、ディジット値の連続する対におけるディジットカウントの和が所定の値を有していなければならないというものであっても良く、対におけるディジットカウントに対しては制約が課されない。これは、対におけるディジット間の閾値が他の閾値から得られるためである。前述した技術は、そのような制約を満たすように容易に適合させることができる。
【００７８】
また、同じマッピングが適用されるディジットＧのグループが全て同じディジットから始まり且つ増大するインデックスを有するディジットを含んでいる実施例を用いて本発明を説明してきたが、本発明から逸脱することなく他のグループが使用されても良いことは言うまでもない。幾つかのグループは例えば最も高いインデックスを有するディジットから始めても良く、これらのグループは、低いインデックス値を有するディジットを加えることにより広げられても良い。グループは、他のディジットから始めても良く、また、高いインデックスおよび低いインデックスを有するディジットを加えることにより広げられても良い。同様に、グループは、１つのディジットを一度に加えることにより構成される必要はない。別の方法として、例えば、グループは、例えば所望のディジットカウントからの偏差の大きさに応じて、サイズが異なるディジットのサブグループを加えるべきか否かを選択することにより成長されても良い。別の方法として、開始グループが多数のディジットを含んでいても良く、また、ディジットを連続的に省くことにより、所望のディジットカウントをもたらすグループが構成されても良い。任意の形式のグループが使用されても良い。
【００７９】
また、全てのデータワードが同じ条件を満たさなければならないケースに関して本発明を説明してきたが、本発明から逸脱することなく、異なる条件を満たすために異なるデータワードが必要とされても良いことは言うまでもない。これは、例えば、異なるデータワードに関して閾値が異なって選択される（例えばワードのアドレス応じて、例えば、偶数のアドレスを有するワードのための１つの閾値選択方式および奇数のアドレスを有するワードのための他の方式を使用して）場合である。この場合、異なるワードでグループを選択するために、異なる選択基準が使用される。
【図面の簡単な説明】
【００８０】
【図１】メモリマトリクスを有する回路を示している。
【図２】読み取り回路を示している。
【図３】レベル分布を示している。
【図４】閾値設定回路を示している。
【図５】送信回路を示している。
【図６】エンコーディングプロセスのフローチャートを示している。
【図７】ディジットのグループを選択するためのフローチャートを示している。
【図７ａ】ディジットのグループを選択するためのフローチャートを示している。
【図８】ディジットのグループを選択するためのフローチャートを示している。
【図９】ディジットマッピングを行なうための回路を示している。
【図１】
2008508649.tif 000002
【図２】
2008508649.tif 000003
【図３】
2008508649.tif 000004
【図４】
2008508649.tif 000005
【図５】
2008508649.tif 000006
【図６】
2008508649.tif 000007
【図７】
2008508649.tif 000008
【図７ａ】
2008508649.tif 000009
【図８】
2008508649.tif 000010
【図９】
2008508649.tif 000011
【国際調査報告】
2008508649.tif 000012
2008508649.tif 000013
2008508649.tif 000014