(57)【要約】【課題】フラッシュメモリーのような書き込み可能かつ消去可能なロケーションを備えたメモリーを有するデータ処理装置を提供する。【解決手段】メモリーロケーションは、ＷＯＭコードワードを記憶する（連続して生成されたデータを、ビットを０から１にセットすることによってしか符号化することのできないライトワンスメモリーコードワード）。受け取ったデータ値と、現時点で選択されているロケーション内に記憶された以前のコードワードとに基づいて、データエンコーダは、受け取ったデータ値を、ＷＯＭコードからの新しいコードワード内に符号化する。ＷＯＭコードワードが、使い果たされると、データエンコーダは、新しい現時点で選択されたロケーションを論理ロケーション列の中から選択し、新しい現時点で選択されたロケーション内にある新しいコードワードを記憶する。すべてのロケーションが、使い果たされると、リセット回路が、論理ロケーション列内のロケーションの内容をリセットする。読み出すときには、現時点で選択されたロケーションが、読み出され、復号化される。
2004516603.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置であって、
ＷＯＭコードからのＷＯＭコードワードをそれぞれが記憶することのできるロケーションを有するメモリーと、
論理ロケーション列の中から現時点で選択されたロケーションを選択するためのメモリーセレクタと、
受け取ったデータ値と、現時点で選択されたロケーション内に記憶された以前のコードワードとに基づいて、受け取ったデータ値をＷＯＭコードからの新しいコードワード内に符号化するデータエンコーダであって、ＷＯＭコードが使い果たされると、前記データエンコーダが、現時点で選択されたロケーションを、論理ロケーション列の中の次のロケーションに変更し、前記データエンコーダが、新しいコードワードを現時点で選択されたロケーション内に記憶する、該データエンコーダと、
論理ロケーション列の中に含まれるロケーションの内容をリセットするためのリセット回路であって、ＷＯＭコードが、論理ロケーション列の中に含まれるすべてのロケーションのために使い果たされるとトリガーされるリセット回路とを備えたデータ処理装置。
【請求項２】
前記メモリーセレクタが、ロケーションの内容から、現時点で選択されたロケーションを決定するように構成され、そのために、現時点で選択されたロケーションが、直前のロケーションを有し、その直前のロケーションは、もしあれば、ロケーションが限界であることを指示するコードワードと、直後のロケーションとを含み、その直後のロケーションは、もしあれば、リセットすることによって生成された初期コードワード値を含む請求項１に記載のデータ処理装置。
【請求項３】
データワードを受け取るための入力と、
Ｎ個のデータ値を生成するように構成され、それぞれのデータ値が、エラー訂正コード内に符号化されたデータワードのそれぞれの部分を少なくとも表現するエラー訂正エンコーダと、
各々が論理ロケーション列に含まれるＮ個の現時点で選択されたロケーションを選択するように構成されたメモリーセレクタと、
それぞれのデータ値と、それぞれの論理ロケーション列の現時点で選択されたロケーション内に記憶された以前のコードワードとに基づいて、データ値をＷＯＭコードからのＮ個のそれぞれの新しいコードワード内に符号化するデータエンコーダであって、ＷＯＭコードが使い果たされた論理ロケーション列のために、現時点で選択された１つのロケーションまたは複数のロケーションを変更し、それぞれの新しいコードワードを、それぞれの論理ロケーション列の現時点で選択されたロケーション内に記憶するデータエンコーダと、
論理ロケーション列の中に含まれるすべてのロケーションのためにＷＯＭコードが使い果たされた論理ロケーション列に対してトリガーされるリセット回路と、
を備えた請求項１に記載のデータ処理装置。
【請求項４】
前記ロケーション列が、メモリー内に含まれる複数の論理ロケーション列の１つであり、
前記データ処理装置は、
データに対応するアドレス値を受け取るためのアドレス入力と、
アドレス値の制御下において、前記メモリーセレクタと、前記データエンコーダと、前記リセット回路とによって操作されるロケーション列を選択するための直列セレクタと、
を備えた請求項１に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明の分野は、メモリーを備えたデータ処理装置である。
【０００２】
【従来の技術】
ある種類のメモリーは、劣化する。劣化するメモリー内に記憶されたデータは、記憶されたデータの信頼性がなくなるまでには、限られた回数しか変更できない。例えば、現在のフラッシュメモリーにおいては、劣化が顕著に現れるまでには、データは、数十万回しか変更することができない。
【０００３】
１９９９年にインテル社から出版された「フラッシュ  データ  インテグレータ  ユーザーズガイド」（Ｆｌａｓｈ  Ｄａｔａ  Ｉｎｔｅｇｒａｔｏｒ（ＦＤＩ）  Ｕｓｅｒｓ  Ｇｕｉｄｅ）と題する出版物の第３章において、とりわけ、その第３．６節において、データをフラッシュメモリーに書き込むことのできる実効回数をどのようにすれば増加させることができるかが説明されている。これは、フラッシュメモリーロケーションのブロックをデータに提供することによってなされる。データが、時間的に連続して書き込まれる場合、データは、異なるロケーションに次々に書き込まれる。データが、読み出される場合、最後に書き込まれたロケーションからのデータが、取り出される。ブロックに含まれるすべてのロケーションが、書き込まれてしまえば、ブロックのロケーションは、消去され、ブロックの最初のロケーションから書き込みを再開することができる。
【０００４】
プログラマブルＲＯＭは、データビットを論理０から論理１にしか変更することのできないロケーションを有する。プログラマブルＲＯＭにおいては、データビットを１から０に戻すことができない。（これは、ブロック内のデータをまとめて消去することのできるフラッシュメモリーとは対照的なことである。）
【０００５】
【発明が解決しようとする課題】
米国特許第４，６９１，２９９号から、データをプログラマブルＲＯＭに書き込むために、いわゆるＷＯＭコードを使用することが知られている。ＷＯＭコードは、連続するデータ値が符号化される場合、いずれのビットに対してもデータ値をたった１回だけ変更すればよいような方法で、次々に生成されるデータ値を同じメモリーロケーションのビットによって符号化することを可能にする。ＷＯＭコードは、データ値を表現するコードワードを提供する。同じデータ値を表現するのに、いくつかの異なるコードワードを使用することができる。これを実現するために、コードワードに必要なサイズロケーションは、データ値そのものを書き込むのに必要なサイズよりも大きい。異なるデータ値に対するコードワードをメモリーに次々に書き込まなければならない場合、同じデータ値に対していくつかのコードワードを使用できることは、以前のコードワードを書き込むために変更されたビットを元に戻すことなく、すなわち、プログラマブルＲＯＭにおいては不可能な書き込み動作を必要とすることなく、メモリーに書き込むことのできるコードワードの選択を容易にする。
【０００６】
コードワードの可用性を向上させるために、ＷＯＭコードは、ビットを元に戻すことなく、第１のデータ値の後に第２のデータ値を符号化することができ、かつ、その逆もできるようなコードである。すなわち、コードは、第１のデータ値を表現する第１および第２のコードワードと、第２のデータ値を表現する第３および第４のコードワードとを含む。第３のコードワードは、ビットを元に戻すことなく、第１のコードワードに上書きすることができ、第２のコードワードは、ビットを元に戻すことなく、第４のコードワードに上書きすることができる。さらに、第１および第２のデータ値のそれぞれに対する第１または第４のコードワードを書き込むために最初に変更されたビットは、それに続く第３および第２のコードワードを他のコードワードと区別し、コードビットの効率的な使用を保証する。
【０００７】
本発明の目的は、とりわけ、劣化を減少されかつ、記憶ロケーションを効率的に使用するメモリーを備えたデータ処理回路を提供することである。
【０００８】
【課題を解決するための手段】
本発明によるデータ処理回路が、請求項１に記載されている。ＷＯＭコードを使用することによって、次のロケーションに書き込みを開始することが必要となる前に、ビットを何度も変更することなく、いくつかのデータ値を同じロケーションに書き込むことができる。そのようにして、ロケーション列のすべてが使い果たされた場合にのみロケーションをリセットすればよい。
【０００９】
好ましくは、データ処理回路は、複数のそのようなロケーション列を有し、それらのそれぞれが、異なる論理アドレスに対応する。プロセッサが、論理アドレスによって、ロケーション列をアドレス指定すると、データは、論理アドレスによってアドレス指定されたロケーション列の中の現時点でアクティブなものに書き込まれ、あるいは、読み出される。好ましくは、メモリーは、行および列からなるマトリックスからなり、それぞれの行をアドレス指定することができ、かつ、まとめてリセットすることができ、そして、ロケーション列は、整数の少なくとも１つのそのような行を含む。
【００１０】
一実施形態においては、データ処理回路は、論理ワードを論理アドレスから読み出し、あるいは、論理ワードを論理アドレスに書き込む。処理回路は、論理ワードを複数のサブワードに分割する。それぞれの論理アドレスは、複数のロケーション列に対応する。処理回路は、それぞれのサブワードを、論理アドレスに対応するそれぞれのロケーション列から読み出し、あるいは、論理アドレスに対応するそれぞれのロケーション列へ書き込む。特定のサブワードのためのロケーション列内の現ロケーションが使い果たされると、ロケーション列内の現ロケーションは、他のサブワードのためのロケーション列内の現ロケーションの変更とは無関係に、使用できる次のロケーションに変更される。これは、記憶効率をさらに増大させる。すべてのサブワードからなるワード全体が、１つのロケーションに書き込まれるならば、１つのサブワードのための記憶容量が使い果たされるやいなや、新しいロケーションが必要になる。異なるサブワードには異なるロケーション列を使用することによって、新しいロケーションは、１つのロケーション列だけの中でしか必要にならない。多くのワードを次々に書き込む場合、ロケーションの変更は、異なるロケーション列に統計学的に割り振られ、それによって、平均して、ただ１つのロケーション列の場合よりもさらに多くのワードを書き込むことができる。
【００１１】
さらなる実施形態においては、データ処理回路は、エラー訂正コードのためのエンコーダおよびデコーダを備える。データ処理回路は、論理ワードを複数の部分ワードに分割し、それぞれの部分ワードをそれぞれのエラー訂正ワード内に符号化する。それぞれのエラー訂正ワードからの異なるビットは、異なるロケーション列内に記憶される異なるサブワードに割り振られる。したがって、ただ１つのロケーションから受け取ったデータ内のエラーは、個々のエラー訂正ワード内の限られた数のビットエラーしか発生させない。この限られた数のビットエラーは、エラー訂正コードを用いて訂正することができる。
【００１２】
【発明の実施の形態】
以下、添付の図面を用いて、本発明による電子回路のこれらのそしてその他の有利な態様を説明する。
【００１３】
図１は、データ処理回路を示す。データ処理回路は、プロセッサ１０、メモリーマトリックスユニット１２、行アドレスデコーダ１３、ロケーションセレクタ１４、および、デコーダ１７を含む。メモリーマトリックスユニット１２は、メモリーセルマトリックス１２０、マルチプレクサ１５ａ、デマルチプレクサ１５ｂ、エンコーダ１６、および、メモリー制御回路１８を含む。プロセッサ１０は、行デコーダ１３に結合されたアドレス出力を有し、そして、その行デコーダ１３は、それぞれがメモリーセルマトリックス１２０の１つの行の選択入力に結合されたワード線出力を有する。メモリーセル１２０は、ロケーションセレクタ１４およびマルチプレクサ１５ａに結合されたデータ出力を有する。ロケーションセレクタは、マルチプレクサ１５ａおよびデマルチプレクサ１５ｂに接続された出力を有する。マルチプレクサ１５ａは、デコーダ１７に結合された出力を有し、そして、そのデコーダ１７は、プロセッサ１０に結合された出力を有する。
【００１４】
エンコーダ１６は、プロセッサ１０の制御出力、プロセッサ１０のデータ出力、および、マルチプレクサ１５ａの出力に結合された入力を有する。エンコーダ１６は、デマルチプレクサ１５ｂ、ロケーションセレクタ１４、および、メモリー制御回路１８に結合された出力を有する。ロケーションセレクタ１４は、メモリー制御回路１８に結合された出力を有する。メモリー制御回路１８は、メモリーセル１２０に結合された制御出力を有する。メモリー制御回路１８は、メモリーマトリックス１２０が、データを読み出すか、選択されたメモリーセルに論理１情報を書き込むか、それとも、メモリーセルの行をリセットする（メモリーセルの行に０を書き込む）かを制御する。
【００１５】
典型的な例においては、メモリーセル１２０は、書き換え可能な不揮発性メモリーセルであり、例えば、ＥＥＰＲＯＭまたはフラッシュメモリーとして、制御回路１８とともに構成され、このメモリーにおいては、論理１データをメモリーセルに個々に書き込むことができ、かつ、メモリーセルの１つの行を一度に消去する（論理０を書き込む）ことができる。書き込むとき、そのようなメモリーは、劣化する。すなわち、メモリーは、あまりにも頻繁に書き込まれると、信頼性がなくなってくる。したがって、新しいデータを書き込まなければならない回数を減少させることが望ましい。これは、データを書き込むのにＷＯＭコードを使用することによって可能となり、また、新しいデータを書き込まなければならない回数は、同じメモリーアドレスを備えたいくつかのロケーションを使用することによってさらに減少する。
【００１６】
動作時、プロセッサ１０は、一連の書き込み動作において、連続するアドレス値およびデータ値を出力する。それぞれのアドレス値が、行デコーダ１３に供給され、それに応じて、その行デコーダ１３は、選択信号をメモリーマトリックスユニット１２に出力する。メモリーマトリックスユニット１２は、アドレス値に対応するデータを表現する現コードワードを読み出しおよび／または更新する役割をなす。
【００１７】
メモリーマトリックスユニット１２は、２つかまたはそれ以上のロケーションを含み、そのそれぞれは、アドレス値に対応するコードワードを記憶するためのものであり、ロケーションの１つは、現時点で有効なコードワードが記憶されている現ロケーションである。読み出しの場合、メモリーマトリックスユニット１２は、現時点で有効なロケーションを選択し、そのロケーション内に記憶されたコードワードを復号化する。書き込みの場合、メモリーマトリックスユニット１２は、現時点で有効なロケーションを選択し、可能であれば、そのロケーション内でまだセットされていないビット位置をセットすることによって現時点で有効なロケーション内に記憶することのできる新しいコードワードを生成する。もしこれが不可能であれば、メモリーマトリックスユニット１２は、現時点で有効なロケーションを更新し、新しいコードワードを新しい現時点で有効なロケーションに書き込む。
【００１８】
メモリーマトリックスユニット１２においては、行デコーダ１３からの選択信号が、メモリーマトリックス１２のアドレス指定された１つの行を選択する。それに応じて、選択された行内にあるメモリーセル１２０は、それらのセル内に記憶されたデータを読み出す。複数のメモリーセルからなるグループが、（論理的な）ロケーションとして編成され、それぞれのロケーションは、その行からのいくつかのメモリーセルを含み、それらのいくつかのメモリーセルが、一体となって１つのコードワードを記憶する。ロケーションセレクタ１４は、どのロケーションが有効なコードワードを記憶しているかを判断し、そのロケーションからデータを転送するために、マルチプレクサ１５ａに信号を提供する。逆に、メモリー制御回路１８の制御下において、デマルチプレクサ１５ｂを介して、選択されたロケーションにデータを書き込むことができる。原則として、デマルチプレクサ１５ａは、例えば、論理０から論理１へ一方向にだけしかデータを書き込むことができず、選択されたロケーションのメモリーセル内に記憶されたビットを１にセットすることはできるが、いかなるビットも０にリセットすることはできない。
【００１９】
エンコーダ１６は、メモリーマトリックスユニット１２からコードワードを受け取り、また、プロセッサ１０から新しいデータ値を、この新しいデータ値がメモリーマトリックス１２に書き込まれなければならないことを通知する制御信号と共に受け取る。エンコーダ１６は、新しいデータ値を表現するコードワードを生成する。
【００２０】
コードワードは、マルチプレクサ１５ａから受け取ったとき、データ値に付随するアドレス値によってアドレス指定された以前のコードワードによって決まる。もし可能であれば、エンコーダ１６は、データ値を表現しかつ以前のコードワードが論理１（複数）を有するビット位置のすべてにおいて論理１（複数）を含むコードワードを選択する。エンコーダ１６が、そのようなコードワードを探し出した場合、そのコードワードが、デマルチプレクサ１５ｂに供給され、そして、そのデマルチプレクサ１５ｂが、行デコーダ１３およびロケーションセレクタ１４によって選択されたメモリーマトリックス１２０のロケーションにそのコードワードを供給する。
【００２１】
そして、エンコーダ１６は、メモリーマトリックスを制御するように制御回路１８に通知し、それによって、論理１（複数）が、このロケーション内の、新しいコードワードが論理１（複数）を含みかつ以前のコードワードがまだ論理１（複数）を含んでいない位置に書き込まれる。表１は、２ビットのデータを符号化する３ビットのコードワードの例を示す。もっとも左の列には、以前のコードが、マルチプレクサ１５ａによる出力として与えられる。いちばん上の行は、プロセッサ１０からの符号化されるべきデータ値を示す。表に含まれる項目は、以前のコードワードとデータ値との特定の組み合わせとして、エンコーダ１６から出力される新しいコードワードを示す。「Ｘ」は、コードワードが使い果たされたこと、すなわち、エンコーダが適切なコードワードを探し出すことができないことを示す。
【００２２】
この例に合致するエンコーダは、例えば、データ値および以前のコードワードをアドレスとして使用しかつ新しいコードワードを関連するロケーションに記憶するＲＯＭを使用して実現されてもよい。あるいは、論理ゲートが、この表を実現するのに使用されてもよい。
【００２３】
【表１】
2004516603.tif 000003
エンコーダ１６が、適切なコードワードを探し出すことができなければ（表１中の項目「Ｘ」）、エンコーダ１６は、ロケーションがもはや使用されていないことを指示するコードワード（例えば、表中の例の１１１）を、選択されたロケーションに書き込むようにメモリー制御回路１８に通知する。この場合には、それに続いて、エンコーダ１６は、最初に選択されたロケーションに論理的に後続するロケーション（例えば、メモリーマトリックス１２０のアドレス指定された行内の次の３ビット）を選択するようにロケーションセレクタ１４に通知し、エンコーダ１６は、データ値に対応する初期コードワードを生成する（表１中の例のコードワード０００で開始する行に基づいて）。この初期コードワードが、メモリーマトリックスユニット１２内の新しく選択されたロケーションに書き込まれる。ロケーションセレクタ１４が、論理的に最後のロケーションを選択したならば、エンコーダは、論理的にそれに後続するロケーションを選択するようにロケーションセレクタ１４に通知し、ロケーションセレクタ１４は、アドレス値によってアドレス指定された行をクリアするようにメモリー制御回路１８に通知する。ロケーションセレクタ１４は、論理的な初期ロケーションを選択する。そして、初期コードワードが、論理的な初期ロケーションに書き込まれる。
【００２４】
ロケーションセレクタ１４は、マトリックス１２０からのロケーションの論理順序においてもっとも低い順位を有しかつロケーションがもはや使用されていないことを指示するコードワードを含まない（例えば、１１１ではない）ロケーションを決定する。
【００２５】
プロセッサ１０が、それが供給されたアドレスから読み出したいだけであることを通知すると、対応するメモリーの内容は、読み出されはするが、変更はされない。この場合には、デコーダ１７が、マルチプレクサ１５ａから受け取ったコードワードを復号化し、結果として得られたデータ値をプロセッサ１０へ供給する。表２は、復号化によって提供されるコードワードとデータワードとの関係の例を示す。この関係は、表１の符号化に対応している。
【００２６】
【表２】
2004516603.tif 000004
復号化は、ＲＯＭメモリーを使用して実現されてもよく、コードワードをアドレスとして使用し、復号化されたデータは、コードワードによってアドレス指定される様々なメモリーロケーションに記憶される。あるいは、復号化は、論理ゲートからなる回路を使用して実現されてもよい。例えば、２ビットベクトルをコードワードのビットのそれぞれに対応させてもよく（左から１番目、２番目、および、３番目のビットを、それぞれ、１１、１０、および、０１に対応させる）、対応するコードビットが１であるベクトルのビットごとの排他的論理和を計算する。この例では、例えば、コードワード１０１は、１１および０１のビットごとの排他的論理和がとられ、その結果として、１０が得られる。
【００２７】
ロケーションセレクタ１４は、様々な形で実現されてもよい。好ましい実施形態においては、ロケーションセレクタ１４は、メモリーマトリックス１２内の選択された行の内容を検査し、（１）ロケーションがもはや使用されていないことを指示するコードワード（例えば、コードワード１１１）を備えたロケーションと、（２）初期コードワード値（例えば、０００）を有するロケーションとによって取り囲まれたロケーションを選択する。最初のメモリーロケーションが、このロケーションがもはや使用されていないことを指示していなければ、その最初のロケーションが、選択される。最後のメモリーロケーションを除いてすべてのロケーションが、もはや使用されていないことを指示していれば、その最後のメモリーロケーションが、選択される。
【００２８】
あるいは、現ロケーションを指示するためのカウンタを使用してもよい。しかしながら、そのようなカウンタは、マトリックスの行ごとに必要とされる（それぞれの行が、１つのアドレスに対応する場合。より一般的には、カウンタは、データ値を符号化するのに使用されるロケーションの組ごとに必要とされる。）。カウンタは、不揮発性でなければならない。カウンタは、このために特別に確保された行のロケーション内に記憶されてもよい。しかしながら、これは、付加的なロケーションを必要とし、さらに、カウンタにおける単一メモリーエラーが複数のデータエラーにつながるという危険性を含んでいる。２つかまたはそれ以上の取り囲まれたロケーションの内容を使用することによって、単一メモリーエラーを検出することができる。組み合わせた実施形態においては、上述したような現時点で有効なロケーションをメモリーマトリックス１２０内のコードワードから最初に選択し、行ごとにそれぞれの揮発性メモリーカウンタを提供してもよく、選択されたロケーションへのポインタを記憶するカウンタは、コードワードから選択される。したがって、不揮発性記憶装置の利点を損なうことなく、ロケーションを迅速に選択することができる。
【００２９】
図１に示されるように、メモリーセルのそれぞれの行内のロケーションは、プロセッサ１０によって供給されるそれぞれのアドレスに対応する。あるいは、１つの行が、２つかまたはそれ以上のそのようなアドレスに対応してもよい。この場合には、どの列が選択されたかを指示するために、プロセッサ１０からのアドレスビットが、ロケーションセレクタ１４へ供給される。さらなる変形においては、アドレスは、２つかまたはそれ以上の行からのロケーションに対応してもよい。この場合には、ロケーションセレクタ１４は、プロセッサ１０によって供給されるアドレスに加えて、アドレスの一部をアドレスデコーダ１３へ供給する。最初に、ロケーションセレクタ１４は、初期アドレス部分値を供給するが、ロケーションセレクタが、選択された行内に現時点で有効なロケーションが存在しないことを検出すれば、ロケーションセレクタは、それが、現時点で選択されたロケーションを備えた行を探し出すまで、次のアドレス部分値を順次に選択する。もちろん、現時点でアクティブなロケーションを指示するために、カウンタが、使用される場合、関連する行をアドレス指定するためのアドレス部分をカウンタ値から直接に得ることができる。
【００３０】
図２は、さらなるデータ処理システムを示す。図１に示されるシステムの構成要素に加えて、このシステムは、第１および第２のエラー訂正エンコーダ２０ａ−２０ｂと、第１および第２のエラー訂正デコーダ２２ａ−２２ｂとを含む。システムは、複数のメモリーマトリックスユニット２４ａ−２４ｄと、複数のＷＯＭエンコーダ２６ａ−２６ｄおよびＷＯＭデコーダ２８ａ−２８ｄとを含む。アドレスデコーダ１３は、メモリーマトリックスユニット２４ａ−２４ｄの行選択線に結合される。メモリーマトリックスユニット２４ａ−２４ｄのコードワード出力は、ＷＯＭエンコーダ２６ａ−２６ｄおよびＷＯＭデコーダ２８ａ−２８ｄに結合される。それぞれのＷＯＭエンコーダのコードワード出力は、それのメモリーマトリックスユニット２４ａ−２４ｄのコードワード入力に結合される。プロセッサ１０のデータ入力／データ出力は、それぞれ、エラー訂正エンコーダ２０ａ−２０ｂおよびエラー訂正デコーダ２２ａ−２２ｂを介して、ＷＯＭエンコーダ２６ａ−２６ｄおよびＷＯＭデコーダ２８ａ−２８ｄに結合される。エラー訂正エンコーダ２０ａ−２０ｂのそれぞれは、ＷＯＭエンコーダ２６ａ−２６ｄのそれぞれに結合された出力を有する。エラー訂正デコーダ２２ａ−２２ｂのそれぞれは、ＷＯＭデコーダ２８ａ−２８ｄのそれぞれに結合された出力を有する。
【００３１】
動作時、メモリーマトリックスユニット２４ａ−２４ｄ、ＷＯＭデコーダ２６ａ−２６ｄ、および、ＷＯＭエンコーダ２８ａ−２８ｄは、それ自身のメモリーマトリックス内の現時点で有効なロケーションを選択するためのそれ自身のロケーションセレクタを用いて、図１で説明したように動作する（それぞれのメモリーマトリックスユニット２４ａ−２４ｄ内にある現時点で有効なロケーションは、お互いに無関係なものである）。エラー訂正エンコーダ２０ａ−２０ｂのそれぞれは、プロセッサ１０からのデータワードの一部を、エラー訂正コードからのそれぞれのＥＣコードワード内に符号化する。すなわち、これらのエンコーダは、ＥＣコードワードを生成し、たとえＥＣコードワードが限られた数のエラーによって傷つけられていても、そのＥＣコードワードから、プロセッサからのデータワードの一部を修復することができる。それぞれのＷＯＭエンコーダ２６ａ−２６ｄは、それぞれのエラー訂正エンコーダ２０ａ−２０ｂからのＥＣコードワードの一部を符号化するＷＯＭコードワードを生成する。同様に、それぞれのエラー訂正デコーダ２２ａ−２２ｂは、それぞれのＷＯＭデコーダ２８ａ−２８ｄからの復号化された情報を用いて、データワードを復号化および訂正する。
【００３２】
メモリーマトリックスユニット２４ａ−２４ｄの１つにエラーが発生すれば、このエラーは、エラー訂正デコーダ２２ａ−２２ｂに割り振られる。装置は、１つのＷＯＭデコーダからの復号化されたデータが完全にエラーである場合に、少なくとも発生する数のエラーをそれぞれのエラー訂正デコーダ２２ａ−２２ｂが訂正できるように設計される。例えば、表１および表２に示されるＷＯＭコードの場合、それぞれのメモリーマトリックスユニット２４ａ−２４ｄは、ＷＯＭ内の２ビットの情報を記憶するのに使用される。これらのビットは、それぞれのエラー訂正エンコーダ２０ａ−２０ｂからの１ビットを用いて、符号化されたものである。２つのＷＯＭを復号化するとき、メモリーマトリックスユニット２４ａ−２４ｄからの復号化されたビットが、それぞれのＷＯＭデコーダ２８ａ−２８ｄによって生成される。それぞれのビットは、エラー訂正デコーダ２２ａ−２２ｂのそれぞれに供給される。したがって、メモリーマトリックスユニット２４ａ−２４ｄの１つにエラーが発生すれば、２つの復号化ビットは、エラーとなるが、それぞれのエラー訂正デコーダ２２ａ−２２ｄは、エラーのある１つのビットだけを受け取り、容易にそれを訂正することができる。
【００３３】
図２は、ただ単に１つの例を示すことが理解されよう。より多くのビットが、ＷＯＭロケーション内に符号化される場合には、より多くのエラー訂正エンコーダ２０ａ−２０ｂまたはデコーダ２２ａ−２２ｂが、使用されてもよい。より大きなまたはより小さいＥＣコードワードを使用することによって、より多くのまたはより少ない数のメモリーマトリックスユニットが、使用されてもよい。ＥＣコードワードが、より大きなエラー訂正能力を有する場合、同じＥＣコードワードからのより多くのビットが、同じメモリーマトリックスユニット２４ａ−２４ｄ内に記憶されてもよい。
【００３４】
ここで、回路モジュールとして示されたマルチプレクサ、エンコーダ、デコーダなどによって、本発明による装置を説明した。原理的には、これらの回路モジュールを実現するために、それ自体がこの技術分野から知ることのできる、機能ごとに特別に設計された回路が使用されてもよい。しかしながら、これらのモジュールのいずれか１つの機能またはこれらのモジュールのいずれかを組み合わせたものの機能は、本発明を逸脱することなく、適切にプログラムされた汎用コンピュータ回路によっても実現することができることが理解されよう。
【図面の簡単な説明】
【図１】
データ処理回路を示す図である。
【図２】
さらなるデータ処理システムを示す図である。
【国際公開パンフレット】
2004516603.tif 000005
2004516603.tif 000006
2004516603.tif 000007
2004516603.tif 000008
2004516603.tif 000009
2004516603.tif 000010
2004516603.tif 000011
2004516603.tif 000012
2004516603.tif 000013
2004516603.tif 000014
2004516603.tif 000015
2004516603.tif 000016
2004516603.tif 000017
2004516603.tif 000018
【国際公開パンフレット（コレクトバージョン）】
2004516603.tif 000019
【国際調査報告】
2004516603.tif 000020
2004516603.tif 000021
2004516603.tif 000022