(57)【要約】【課題】アクセス元のＣＰＵのプログラム等にデータの多重化を一切意識させずに、ライト要求されたデータを多重化して記憶することのできる不揮発性メモリ装置を提供する。【解決手段】電気的消去可能な不揮発性メモリ装置２０は、メモリ部２１とメモリ制御部２２とを有する。メモリ部２１は、データを記憶するメモリ領域を１つのメモリアドレス当たりｎ個（ｎ≧３）有する。メモリ制御部２２は、ライト要求時はメモリ部２１のライトアドレスに対応するｎ個のメモリ領域に同じライトデータを記憶し、リード要求時はリードアドレスに対応するｎ個のメモリ領域に記憶されているデータから多数決によりリードデータを求めて出力する。【選択図】図２
2008097403.tif 000002
【特許請求の範囲】
【請求項１】
電気的消去可能な不揮発性メモリ装置であって、データを記憶するメモリ領域を１つのメモリアドレス当たりｎ個（ｎ≧３）有するメモリ部と、ライト要求時は前記メモリ部のライトアドレスに対応するｎ個のメモリ領域に同じライトデータを記憶し、リード要求時はリードアドレスに対応するｎ個のメモリ領域に記憶されているデータから多数決によりリードデータを求めて出力するメモリ制御部とを備えた不揮発性メモリ装置。
【請求項２】
前記メモリ部は、共通のメモリアドレス線、入力データ線および制御線に接続され、出力データ線がそれぞれ独立したｎ個の不揮発性メモリ素子により構成されることを特徴とする請求項１記載の不揮発性メモリ装置。
【請求項３】
電気的消去可能な不揮発性メモリ装置であって、データの一部を記憶する多重化用メモリ領域を１つのメモリアドレス当たりｎ個（ｎ≧３）、残りのデータ部分を記憶する非多重化用メモリ領域を１つのメモリアドレス当たり１個有するメモリ部と、ライト要求時はライトデータを多重化対象ビット列と非多重化対象ビット列とに分割し、前記メモリ部のライトアドレスに対応するｎ個の多重化用メモリ領域に同じ多重化対象ビット列を記憶するとともに前記メモリ部のライトアドレスに対応する１個の非多重化用メモリ領域に非多重化対象ビット列を記憶し、リード要求時はリードアドレスに対応する前記メモリ部のｎ個の多重化用メモリ領域に記憶されている多重化対象ビット列から多数決により求めた多重化対象ビット列の値とリードアドレスに対応する前記メモリ部の非多重化用メモリ領域に記憶されている非多重化対象ビット列とを結合したリードデータを出力するメモリ制御部とを備えた不揮発性メモリ装置。
【請求項４】
前記メモリ部は、多重化用メモリ領域として使用するｎ個の不揮発性メモリ素子と、非多重化用メモリ領域として使用する１個の不揮発性メモリ素子とを含むことを特徴とする請求項３記載の不揮発性メモリ装置。
【請求項５】
前記メモリ部は、多重化用メモリ領域および非多重化用メモリ領域として使用する１個の不揮発性メモリ素子と、多重化用メモリ領域として使用するｎ−１個の不揮発性メモリ素子とを含むことを特徴とする請求項３記載の不揮発性メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電気的消去可能な不揮発性メモリ装置に関し、特に同一データを多重化して記憶する不揮発性メモリ装置に関する。
【背景技術】
【０００２】
ＥＥＰＲＯＭやフラッシュメモリ等の電気的消去可能な不揮発性メモリ装置は、長期間繰り返し使用し続けると、絶縁膜の劣化などによってメモリセルに蓄積された電荷が抜けて記憶データが消失することがある。
【０００３】
そこで信頼性を高めるために、不揮発性メモリ装置に同一のデータを３個以上書き込んでおき、読み出し時に多数決をとることにより、何れかのデータが消失しても元のデータを正しく読み出せるようにした技術が提案されている。
【０００４】
例えば特許文献１および特許文献２では、ＥＥＰＲＯＭ等の不揮発性メモリ装置の記憶領域をｎ個（ｎ≧３）の領域に分割し、この不揮発性メモリ装置をアクセスする論理回路やＣＰＵが同じデータを不揮発性メモリ装置のｎ個の領域すべてに書き込むようにしている。
【０００５】
他方、特許文献３には、センスアンプ回路とアレイ部との間に選択回路を設け、複数のメモリセルを１つのセンスアンプに接続することにより、複数のメモリセルに同じデータを同時に書き込むことができるとともに、複数のメモリセルに同じデータが記録されているときは、この複数のメモリセルから同時にデータを読み出すことができる強誘電体メモリ装置が提案されている。
【０００６】
【特許文献１】特開昭６３−４９８６０号公報
【特許文献２】特開平４−７７６５号公報
【特許文献３】特開２００５−２６７８２４公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した従来技術によれば不揮発性メモリ装置にデータを多重化して記録することによりデータの消失を防止することができる。しかしながら、記憶領域を複数の領域に分割する特許文献１および特許文献２による方法では、不揮発性メモリ装置をアクセスする論理回路やＣＰＵが多重化する回数だけ同じデータを異なる記憶領域にリード／ライトする必要があるため、処理速度が低下する。また、多重化のための処理を論理回路やＣＰＵのプログラムに組み込む必要がある。
【０００８】
これに対して特許文献３による方法では、メモリ装置内部の動作によってデータの多重化が行われるため処理速度の低下は生じない。しかし、別々のメモリアドレスに対応する複数のメモリセルが同じデータを記憶するように動作するため、ＣＰＵで稼動するプログラムなどのメモリアクセス元は、これら別々のメモリアドレスにはそれぞれ異なるデータは記憶できないことを意識する必要がある。すなわち、特許文献１および２と同様に、メモリ装置をアクセスするプログラムはデータの多重化を考慮して作成する必要がある。
【０００９】
他方、何れの従来技術も多重化の単位はデータ単位であり、データを構成するビット単位で多重化することはできない。このため、例えばデータの一部分のみが重要データであってもデータの全ビットを多重化するためのメモリ容量を必要とする。
【００１０】
本発明はこのような事情に鑑みて提案されたものであり、その目的は、アクセス元のＣＰＵのプログラム等にデータの多重化を一切意識させずに、ライト要求されたデータを多重化して記憶することのできる不揮発性メモリ装置を提供することにある。
【００１１】
本発明の別の目的は、ライトデータの一部分のみを多重化して記録することのできる不揮発性メモリ装置を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の第１の不揮発性メモリ装置は、電気的消去可能な不揮発性メモリ装置であって、データを記憶するメモリ領域を１つのメモリアドレス当たりｎ個（ｎ≧３）有するメモリ部と、ライト要求時は前記メモリ部のライトアドレスに対応するｎ個のメモリ領域に同じライトデータを記憶し、リード要求時はリードアドレスに対応するｎ個のメモリ領域に記憶されているデータから多数決によりリードデータを求めて出力するメモリ制御部とを備えている。
【００１３】
本発明の第２の不揮発性メモリ装置は、電気的消去可能な不揮発性メモリ装置であって、データの一部を記憶する多重化用メモリ領域を１つのメモリアドレス当たりｎ個（ｎ≧３）、残りのデータ部分を記憶する非多重化用メモリ領域を１つのメモリアドレス当たり１個有するメモリ部と、ライト要求時はライトデータを多重化対象ビット列と非多重化対象ビット列とに分割し、前記メモリ部のライトアドレスに対応するｎ個の多重化用メモリ領域に同じ多重化対象ビット列を記憶するとともに前記メモリ部のライトアドレスに対応する１個の非多重化用メモリ領域に非多重化対象ビット列を記憶し、リード要求時はリードアドレスに対応する前記メモリ部のｎ個の多重化用メモリ領域に記憶されている多重化対象ビット列から多数決により求めた多重化対象ビット列の値とリードアドレスに対応する前記メモリ部の非多重化用メモリ領域に記憶されている非多重化対象ビット列とを結合したリードデータを出力するメモリ制御部とを備えている。
【００１４】
『作用』
本発明の第１の不揮発性メモリ装置にあっては、メモリ部が、データを記憶するメモリ領域を１つのメモリアドレス当たりｎ個（ｎ≧３）有しており、ＣＰＵで稼動するプログラム等のメモリアクセス元からライトデータおよびライトアドレスを指定したライト要求が出されると、メモリ制御部が、メモリ部のライトアドレスに対応するｎ個のメモリ領域に同じライトデータを記憶する。また、その後にリードアドレスを指定したリード要求が出されると、メモリ制御部が、リードアドレスに対応するｎ個のメモリ領域に記憶されているデータから多数決によりリードデータを求めて出力する。
【００１５】
本発明の第２の不揮発性メモリ装置にあっては、メモリ部が、データの一部を記憶する多重化用メモリ領域を１つのメモリアドレス当たりｎ個（ｎ≧３）、残りのデータ部分を記憶する非多重化用メモリ領域を１つのメモリアドレス当たり１個有しており、ＣＰＵで稼動するプログラム等のメモリアクセス元からライトアドレスおよびライトデータを指定したライト要求が出されると、メモリ制御部が、ライトデータを多重化対象ビット列と非多重化対象ビット列とに分割し、メモリ部のライトアドレスに対応するｎ個の多重化用メモリ領域に同じ多重化対象ビット列を記憶するとともに１個の多重化用メモリ領域に非多重化対象ビット列を記憶する。また、その後にリードアドレスを指定したリード要求が出されると、メモリ制御部が、リードアドレスに対応するメモリ部のｎ個の多重化用メモリ領域に記憶されている多重化対象ビット列から多数決により求めた多重化対象ビット列の値とリードアドレスに対応する多重化用メモリ領域に記憶されている非多重化対象ビット列とを結合したリードデータを出力する。
【発明の効果】
【００１６】
本発明の第１の不揮発性メモリ装置によれば、メモリアクセス元のＣＰＵのプログラム等にデータの多重化を一切意識させずに、ライト要求されたデータを多重化して記憶することができる。その理由は、不揮発性メモリ装置自体にデータの多重化機能を持たせてあり、メモリアクセス元は通常の不揮発性メモリ装置と同じインタフェースでアクセスできるためであり、また、メモリ部がデータを記憶するメモリ領域を１つのメモリアドレス当たりｎ個（ｎ≧３）有するためである。
【００１７】
また本発明の第２の不揮発性メモリ装置によれば、第１の不揮発性メモリ装置と同様の効果に加えてさらに、ライトデータの一部分のみを多重化して記録することができるため、一部分のみが重要なデータの多重化に必要なメモリ容量の削減が可能となる。
【発明を実施するための最良の形態】
【００１８】
図１を参照すると、本発明を適用した電子機器の一例は、ＣＰＵ１０と、そのバス１１に接続されたＲＯＭ１２、ＲＡＭ１３、入力部１４、表示部１５および本発明にかかる不揮発性メモリ装置１６とを備えている。
【００１９】
ＲＯＭ１２は、ＣＰＵ１０で実行されるプログラムや各種の固定データなどを記憶する。ＲＡＭ１３は、プログラムの実行過程で生成される途中データなどを一時的に記憶する。入力部１４は、キーボードやマウス、指紋入力器、デジタルカメラ等の各種の入力機器で構成される。表示部１５は、ディスプレイ等で構成される。
【００２０】
不揮発性メモリ装置１６は、ＥＥＰＲＯＭやフラッシュメモリ等の電気的消去可能なメモリ装置である。この不揮発性メモリ装置１６は、バス１１を構成するアドレス線、データ線および制御線を通じてＣＰＵ１０からライト要求およびリード要求を受信する。ライト要求では、アドレス線を通じてライトアドレスが、データ線を通じてライトデータが、制御線を通じてライトコマンドがそれぞれ送られてくる。ライトデータのデータ長は任意であるが、本発明の説明の便宜上、１６ビットとする。また、リード要求では、アドレス線を通じてリードアドレスが、制御線を通じてリードコマンドがそれぞれ送られてくる。不揮発性メモリ装置１６は、ライト要求を受信すると、後述するデータの多重化によるライト動作を行った後、その完了を制御線を通じてＣＰＵ１０に報告する。また、リード要求を受信すると、後述するデータの多重化によるリード動作を行った後、その完了時にデータ線にリードデータを、制御線に完了報告をそれぞれ送出する。
【００２１】
次に、不揮発性メモリ装置１６の実施例について説明する。
【００２２】
図２を参照すると、不揮発性メモリ装置１６として利用可能な第１の実施例にかかる不揮発性メモリ装置２０は、メモリ部２１とメモリ制御部２２とで構成されている。
【００２３】
メモリ部２１は、１６ビット長のデータを記憶する不揮発性のメモリ領域を１つのメモリアドレス当たり３個独立に有する。本実施例の場合、メモリ部２１は、３個の不揮発性メモリ素子２３〜２５で構成される。これら３個の不揮発性メモリ素子２３〜２５は、共通のメモリアドレス線１１１、入力データ線１１２および制御線１１３に接続され、出力データ線は１１４−１〜１１４−３としてそれぞれ独立している。
【００２４】
不揮発性メモリ素子２３は、アドレスに１対１に対応するメモリ領域を有し、１つのメモリ領域にライト要求で与えられるライトデータ１個分を記憶する。不揮発性メモリ素子２３は、制御線１１３からライト信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域に、入力データ線１１２から加わるライトデータを書き込む。また、制御線１１３からリード信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域から読み出したデータを出力データ線１１４−１に出力する。残りの２つの不揮発性メモリ素子２４、２５も不揮発性メモリ素子２３と同様の構成であり、同様の動作を行う。
【００２５】
メモリ制御部２２は、図１のバス１１とアドレス端子２１１、データ端子２１２および制御端子２１３を通じて接続され、メモリ部２１とメモリアドレス線１１１、入力データ線１１２および制御線１１３を通じて接続された書込読出制御部２６と、図１のバス１１とデータ端子２１２を通じて接続され、メモリ部２１と出力データ線１１４−１〜１１４−３を通じて接続され、書込読出制御部２６と制御線１１５を通じて接続された多数決回路２７とを備えている。
【００２６】
多数決回路２７は、３個の不揮発性メモリ素子２３〜２５から出力データ線１１４−１〜１１４−３に出力されるデータを相互に比較し、多数決論理に従ってデータの値を決定しデータ端子２１２へ出力する。また、処理の成否を制御線１１５を通じて書込読出制御部２６に報告する。具体的には、例えば、３個のデータのうちの２個のデータどうしを比較し、一致すればそのデータをデータ端子２１２に出力し、処理成功を書込読出制御部２６に報告する。不一致であれば、２個のデータの一方と残り１個のデータを比較し、一致すればそのデータをデータ端子２１２に出力し、処理成功を書込読出制御部２６に報告する。なおも不一致であれば、２個のデータの他方と残り１個のデータを比較し、一致すればそのデータをデータ端子２１２に出力し、処理の成功を書込読出制御部２６に報告し、不一致であれば書込読出制御部２６にエラーを通知する。
【００２７】
書込読出制御部２６は、制御端子２１３からライトコマンドが入力されると、制御線１１３にライト信号を、メモリアドレス線１１１にアドレス端子２１１から加わるライトアドレスを、入力データ線１１２にデータ端子２１２から加わるライトデータをそれぞれ出力することで、メモリ部２１の３個の不揮発性メモリ素子２３〜２５の同一ライトアドレスに対応する３個のメモリ領域に同一のライトデータを同時に書き込む多重書き込み制御を実施し、その完了時に制御端子２１３から完了報告を出力する。
【００２８】
また書込読出制御部２６は、制御端子２１３からリードコマンドが入力されると、制御線１１３にリード信号を、メモリアドレス線１１１にアドレス端子２１１から加わるリードアドレスをそれぞれ出力することで、メモリ部２１の３個の不揮発性メモリ素子２３〜２５の同一リードアドレスに対応する３個のメモリ領域からデータを同時に多数決回路２７に読み出し、多数決回路２７からの報告を待つ。そして、多数決回路２７から処理成功が報告されると、制御端子２１３に完了報告を出力し、エラーが通知されると制御端子２１３にエラー報告を出力する。
【００２９】
次に、図１の不揮発性メモリ装置１６として図２に示した不揮発性メモリ装置２０を使用した場合の全体の動作について説明する。
【００３０】
まず、ＣＰＵ１０で稼動するプログラムが不揮発性メモリ装置２０のメモリ空間に対してライトを行った際の動作を説明する。この場合、バス１１を通じて不揮発性メモリ装置２０にライトコマンド、ライトデータ、ライトアドレスが送られる。
【００３１】
不揮発性メモリ装置２０の書込読出制御部２６がこれらを受信すると、制御線１１３にライト信号を、メモリアドレス線１１１にライトアドレスを、入力データ線１１２にライトデータをそれぞれ出力する。各不揮発性メモリ素子２３〜２５は、ライト信号を入力すると、ライトアドレスに対応するメモリ領域にライトデータを書き込む。これにより、３個の不揮発性メモリ素子２３〜２５の同一ライトアドレスに対応する３個のメモリ領域に同一のライトデータが同時に書き込まれる。
【００３２】
次に、ＣＰＵ１０で稼動するプログラムが不揮発性メモリ装置２０のメモリ空間に対してリードを行った際の動作を説明する。この場合、バス１１を通じて不揮発性メモリ装置２０にリードコマンド、リードアドレスが送られる。
【００３３】
不揮発性メモリ装置２０の書込読出制御部２６がこれらを受信すると、制御線１１３にリード信号を、メモリアドレス線１１１にリードアドレスをそれぞれ出力する。各不揮発性メモリ素子２３〜２５は、リード信号を入力すると、リードアドレスに対応するメモリ領域に記憶されているデータを読み出して多数決回路２７へ出力する。多数決回路２７は、３個の不揮発性メモリ素子２３〜２５から読み出されたデータの多数決によりリードデータを生成し、データ端子２１２から出力する。
【００３４】
このように本実施例の不揮発性メモリ装置２０によれば、メモリアクセス元のＣＰＵ１０のプログラムにデータの多重化を一切意識させずに、データの多重化によって記憶データの信頼性を高めることができる。
【００３５】
図３を参照すると、不揮発性メモリ装置１６として利用可能な第２の実施例にかかる不揮発性メモリ装置３０は、メモリ部３１とメモリ制御部３２とで構成されている。
【００３６】
メモリ部３１は、データの一部を記憶する多重化用メモリ領域を１つのメモリアドレス当たり３個、残りのデータ部分を記憶する非多重化用メモリ領域を１つのメモリアドレス当たり１個有する。具体的には本実施例のメモリ部３１は、多重化用メモリ領域として使用する３個の不揮発性メモリ素子３３〜３５と、非多重化用メモリ領域として使用する１個の不揮発性メモリ素子３６とを備えている。
【００３７】
多重化用メモリ領域として使用する３個の不揮発性メモリ素子３３〜３５は、共通のメモリアドレス線１１１、多重化対象ビット列データ線１１２−１および制御線１１３に接続され、出力データ線は１１４−１〜１１４−３としてそれぞれ独立している。また非多重化用メモリ領域として使用する不揮発性メモリ素子３６は、メモリアドレス線１１１、非多重化対象ビット列データ線１１２−２および制御線１１３に接続され、出力データ線は１１４−４として独立している。
【００３８】
多重化用メモリ領域として使用する不揮発性メモリ素子３３は、アドレスに１対１に対応するメモリ領域を有し、１つのメモリ領域にライト要求で与えられるライトデータ中の多重化対象ビット列を１個分記憶する。この不揮発性メモリ素子３３は、制御線１１３からライト信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域に、多重化対象ビット列データ線１１２−１から加わるライトデータ中の多重化対象ビット列を書き込む。また、制御線１１３からリード信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域から読み出したデータを出力データ線１１４−１に出力する。多重化用メモリ領域として使用する残りの２つの不揮発性メモリ素子３４、３５も不揮発性メモリ素子３３と同様の構成であり、同様の動作を行う。
【００３９】
非多重化用メモリ領域として使用する不揮発性メモリ素子３６は、アドレスに１対１に対応するメモリ領域を有し、１つのメモリ領域にライト要求で与えられるライトデータ中の非多重化対象ビット列を１個分記憶する。この不揮発性メモリ素子３６は、制御線１１３からライト信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域に、非多重化対象ビット列データ線１１２−２から加わるライトデータ中の非多重化対象ビット列を書き込む。また、制御線１１３からリード信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域から読み出したデータを出力データ線１１４−４に出力する。
【００４０】
メモリ制御部３２は、図１のバス１１とアドレス端子２１１、データ端子２１２および制御端子２１３を通じて接続され、メモリ部３１とメモリアドレス線１１１および制御線１１３を通じて接続された書込読出制御部３７と、図１のバス１１とデータ端子２１２を通じて接続され、メモリ部３１と出力データ線１１４−４を通じて接続された結合部３８と、書込読出制御部３７とデータ線１３１で接続され、メモリ部３１と多重化対象ビット列データ線１１２−１および非多重化対象ビット列データ線１１２−２で接続されたデータ分割部３９と、メモリ部３１と出力データ線１１４−１〜１１４−３で接続され、書込読出制御部３７と制御線１１５を通じて接続された多数決回路４０とを備えている。
【００４１】
データ分割部３９は、データ線１３１を通じて書込読出制御部３７から入力されたライトデータをビット単位で多重化対象ビット列と非多重化対象ビット列とに分割し、前者のビット列を多重化対象ビット列データ線１１２−１に出力し、後者のビット列を非多重化対象ビット列データ線１１２−２に出力する。どのように分割するかは任意であるが、以下の説明の便宜上、ライトデータを１６ビットとし、上位８ビットを多重化対象ビット列、下位８ビットを非多重化対象ビット列に分割するものとする。
【００４２】
多数決回路４０は、多重化用メモリ領域として使用する３個の不揮発性メモリ素子３３〜３５から出力データ線１１４−１〜１１４−３に出力されるデータを相互に比較し、多数決論理に従ってデータの値を決定し結合部３８へ出力する。また、処理の成否を制御線１１５を通じて書込読出制御部３７に報告する。具体的には、例えば、３個のデータのうちの２個のデータどうしを比較し、一致すればそのデータを結合部３８に出力し、処理成功を書込読出制御部３７に報告する。不一致であれば、２個のデータの一方と残り１個のデータを比較し、一致すればそのデータを結合部３８に出力し、処理成功を書込読出制御部３７に報告する。なおも不一致であれば、２個のデータの他方と残り１個のデータを比較し、一致すればそのデータを結合部３８に出力し、処理の成功を書込読出制御部３７に報告し、不一致であれば書込読出制御部３７にエラーを通知する。
【００４３】
結合部３８は、多数決回路４０から出力されるデータと非多重化用メモリ領域として使用する不揮発性メモリ素子３６から出力されるデータとを連結してリードデータを生成し、データ端子２１２に出力する。データの連結はデータ分割部３９の分割と反対の処理であり、多数決回路４０から出力されるデータを上位８ビット、不揮発性メモリ素子３６から出力されるデータを下位８ビットとするリードデータを生成する。ここで、不揮発性メモリ素子３６の劣化等によって下位８ビットとするデータが読み出されないか、読み出されてもパリティエラーなどが発生していた場合、下位８ビットとして規定値（例えばオール０ビット）を使用する。
【００４４】
書込読出制御部３７は、制御端子２１３からライトコマンドが入力されると、制御線１１３にライト信号を、メモリアドレス線１１１にアドレス端子２１１から加わるライトアドレスを、データ線１３１にデータ端子２１２から加わるライトデータをそれぞれ出力することで、多重化用メモリ領域として使用する３個の不揮発性メモリ素子３３〜３５の同一ライトアドレスに対応する３個のメモリ領域に同一のライトデータ中の多重化対象ビット列を同時に書き込み、かつ、非多重化用メモリ領域として使用する１個の不揮発性メモリ素子３６のライトアドレスに対応する１個のメモリ領域にライトデータ中の非多重化対象ビット列を書き込む多重書き込み制御を実施し、その完了時に制御端子２１３から完了報告を出力する。
【００４５】
また書込読出制御部３７は、制御端子２１３からリードコマンドが入力されると、制御線１１３にリード信号を、メモリアドレス線１１１にアドレス端子２１１から加わるリードアドレスをそれぞれ出力することで、多重化用メモリ領域として使用する３個の不揮発性メモリ素子３３〜３５の同一リードアドレスに対応する３個のメモリ領域からデータ（多重化対象ビット列）を同時に多数決回路４０に読み出すとともに、非多重化用メモリ領域として使用する１個の不揮発性メモリ素子３６のリードアドレスに対応する１個のメモリ領域からデータ（非多重化対象ビット列）を結合部３８に読み出し、多数決回路４０からの報告を待つ。そして、多数決回路４０から処理成功が報告されると、制御端子２１３に完了報告を出力し、エラーが通知されると制御端子２１３にエラー報告を出力する。
【００４６】
次に、図１の不揮発性メモリ装置１６として図３に示した不揮発性メモリ装置３０を使用した場合の全体の動作について説明する。
【００４７】
まず、ＣＰＵ１０で稼動するプログラムが不揮発性メモリ装置３０のメモリ空間に対してライトを行った際の動作を説明する。この場合、バス１１を通じて不揮発性メモリ装置３０にライトコマンド、ライトデータ、ライトアドレスが送られる。
【００４８】
不揮発性メモリ装置３０の書込読出制御部３７がこれらを受信すると、制御線１１３にライト信号を、メモリアドレス線１１１にライトアドレスを、データ線１３１にライトデータをそれぞれ出力する。データ分割部３９は、データ線１３１上のライトデータを多重化対象ビット列と非多重化対象ビット列とに分割し、多重化対象ビット列データ線１１２−１、非多重化対象ビット列データ線１１２−２に出力する。
【００４９】
多重化用メモリ領域として使用する３個の不揮発性メモリ素子３３〜３５は、ライト信号を入力すると、ライトアドレスに対応するメモリ領域にライトデータ中の多重化対象ビット列を書き込む。これにより、３個の不揮発性メモリ素子３３〜３５の同一ライトアドレスに対応する３個のメモリ領域に同一の多重化対象ビット列が同時に書き込まれる。他方、非多重化用メモリ領域として使用する１個の不揮発性メモリ素子３６は、ライト信号を入力すると、ライトアドレスに対応するメモリ領域にライトデータ中の非多重化対象ビット列を書き込む。
【００５０】
次に、ＣＰＵ１０で稼動するプログラムが不揮発性メモリ装置３０のメモリ空間に対してリードを行った際の動作を説明する。この場合、バス１１を通じて不揮発性メモリ装置３０にリードコマンド、リードアドレスが送られる。
【００５１】
不揮発性メモリ装置３０の書込読出制御部３７がこれらを受信すると、制御線１１３にリード信号を、メモリアドレス線１１１にリードアドレスをそれぞれ出力する。多重化用メモリ領域として使用する不揮発性メモリ素子３３〜３５は、リード信号を入力すると、リードアドレスに対応するメモリ領域に記憶されているデータ（多重化対象ビット列）を読み出して多数決回路４０へ出力し、非多重化用メモリ領域として使用する不揮発性メモリ素子３６は、リード信号を入力すると、リードアドレスに対応するメモリ領域に記憶されているデータ（非多重化対象ビット列）を読み出して結合部３８へ出力する。
【００５２】
多数決回路４０は、３個の不揮発性メモリ素子３３〜３５から読み出されたデータの多数決によりリードデータの上位８ビットを生成し、結合部３８へ出力する。結合部３８は、この生成された上位８ビットに不揮発性メモリ素子３６から読み出された８ビットを下位８ビットとして結合したリードデータをデータ端子２１２から出力する。
【００５３】
このように本実施例の不揮発性メモリ装置３０によれば、メモリアクセス元のＣＰＵ１０のプログラムにデータの多重化を一切意識させずに、データの多重化によって記憶データの信頼性を高めることができる。
【００５４】
また、ライトデータの一部分のみを多重化して記録することができるため、一部分のみが重要なデータの多重化に必要なメモリ容量の削減が可能となる。データの一部分のみが特に重要となる例としては、例えば、指紋の階調画像の各画素の値が１６ビットのデータで表現されている場合がある。
【００５５】
またライトデータのビット数を半分に分割する場合、同じ容量の不揮発性メモリ素子３３〜３６を使用することができる。
【００５６】
図４を参照すると、不揮発性メモリ装置１６として利用可能な第３の実施例にかかる不揮発性メモリ装置５０は、メモリ部５１とメモリ制御部５２とで構成されている。
【００５７】
メモリ部５１は、データの一部を記憶する多重化用メモリ領域を１つのメモリアドレス当たり３個、残りのデータ部分を記憶する非多重化用メモリ領域を１つのメモリアドレス当たり１個有する。具体的には本実施例のメモリ部５１は、多重化用メモリ領域および非多重化用メモリ領域として使用する１個の不揮発性メモリ素子５３と、多重化用メモリ領域として使用する２個の不揮発性メモリ素子５４、５５とを備えている。
【００５８】
多重化用メモリ領域および非多重化用メモリ領域として使用する１個の不揮発性メモリ素子５３は、メモリアドレス線１１１、入力データ線１１２および制御線１１３に接続され、出力データ線は多重化対象ビット列を出力する出力データ線１１４−１と非多重化対象ビット列を出力する出力データ線１１４−４とに分かれている。また多重化用メモリ領域として使用する２個の不揮発性メモリ素子５４、５５は、メモリアドレス線１１１、多重化対象ビット列データ線１１２−２および制御線１１３に接続され、出力データ線は１１４−２、１１４−３として独立している。
【００５９】
多重化用メモリ領域および非多重化用メモリ領域として使用する１個の不揮発性メモリ素子５３は、アドレスに１対１に対応するメモリ領域を有し、１つのメモリ領域にライト要求で与えられるライトデータを１個分記憶する。この不揮発性メモリ素子５３は、制御線１１３からライト信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域に、データ線１１２から加わるライトデータを書き込む。また、制御線１１３からリード信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域から読み出したデータのうち多重化用メモリ領域のデータを出力データ線１１４−１に出力し、非多重化用メモリ領域のデータを出力データ線１１４−４に出力する。
【００６０】
多重化用メモリ領域として使用する不揮発性メモリ素子５４は、アドレスに１対１に対応するメモリ領域を有し、１つのメモリ領域にライト要求で与えられるライトデータ中の多重化対象ビット列を１個分記憶する。この不揮発性メモリ素子５４は、制御線１１３からライト信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域に、多重化対象ビット列データ線１１２−１から加わるライトデータ中の多重化対象ビット列を書き込む。また、制御線１１３からリード信号を入力すると、メモリアドレス線１１１から加わるメモリアドレスに対応するメモリ領域から読み出したデータを出力データ線１１４−２に出力する。多重化用メモリ領域として使用する残りの１つの不揮発性メモリ素子５５も不揮発性メモリ素子５４と同様の構成であり、同様の動作を行う。
【００６１】
メモリ制御部５２は、図１のバス１１とアドレス端子２１１、データ端子２１２および制御端子２１３を通じて接続され、メモリ部５１とメモリアドレス線１１１および制御線１１３を通じて接続された書込読出制御部５６と、図１のバス１１とデータ端子２１２を通じて接続され、メモリ部５１と出力データ線１１４−４を通じて接続された結合部５７と、書込読出制御部５６とデータ線１３１で接続され、メモリ部５１とデータ線１１２および多重化対象ビット列データ線１１２−１で接続されたデータ分割部５８と、メモリ部５１と出力データ線１１４−１〜１１４−３で接続され、書込読出制御部５６と制御線１１５を通じて接続された多数決回路５９とを備えている。
【００６２】
データ分割部５８は、データ線１３１を通じて書込読出制御部５６から入力されたライトデータをビット単位で多重化対象ビット列と非多重化対象ビット列とに分割し、その両者つまりライトデータ自体をデータ線１１２に出力し、多重化対象ビット列を多重化対象ビット列データ線１１２−１に出力する。どのように分割するかは任意であるが、以下の説明の便宜上、ライトデータを１６ビットとし、上位８ビットを多重化対象ビット列、下位８ビットを非多重化対象ビット列に分割するものとする。
【００６３】
多数決回路５９は、不揮発性メモリ素子５３〜５５から出力データ線１１４−１〜１１４−３に出力されるデータ（多重化対象ビット列）を相互に比較し、多数決論理に従ってデータの値を決定し結合部５７へ出力する。また、処理の成否を制御線１１５を通じて書込読出制御部５６に報告する。具体的には、例えば、３個のデータのうちの２個のデータどうしを比較し、一致すればそのデータを結合部５７に出力し、処理成功を書込読出制御部５６に報告する。不一致であれば、２個のデータの一方と残り１個のデータを比較し、一致すればそのデータを結合部５７に出力し、処理成功を書込読出制御部５６に報告する。なおも不一致であれば、２個のデータの他方と残り１個のデータを比較し、一致すればそのデータを結合部５７に出力し、処理の成功を書込読出制御部５６に報告し、不一致であれば書込読出制御部５６にエラーを通知する。
【００６４】
結合部５７は、多数決回路５９から出力されるデータと不揮発性メモリ素子５３から出力データ線１１４−４に出力されるデータとを連結してリードデータを生成し、データ端子２１２に出力する。データの連結はデータ分割部５８の分割と反対の処理であり、多数決回路５９から出力されるデータを上位８ビット、不揮発性メモリ素子５３から出力されるデータを下位８ビットとするリードデータを生成する。ここで、不揮発性メモリ素子５３の劣化等によってデータが読み出されないか、読み出されてもパリティエラーなどが発生していた場合、下位８ビットとして規定値（例えばオール０ビット）を使用する。
【００６５】
書込読出制御部５６は、制御端子２１３からライトコマンドが入力されると、制御線１１３にライト信号を、メモリアドレス線１１１にアドレス端子２１１から加わるライトアドレスを、データ線１３１にデータ端子２１２から加わるライトデータをそれぞれ出力することで、多重化用メモリ領域および非多重化用メモリ領域として使用する１個の不揮発性メモリ素子５３のライトアドレスに対応する１個のメモリ領域にライトデータを書き込み、かつ、多重化用メモリ領域として使用する２個の不揮発性メモリ素子５４、５５のライトアドレスに対応する２個のメモリ領域にライトデータ中の多重化対象ビット列を書き込む多重書き込み制御を実施し、その完了時に制御端子２１３から完了報告を出力する。
【００６６】
また書込読出制御部５６は、制御端子２１３からリードコマンドが入力されると、制御線１１３にリード信号を、メモリアドレス線１１１にアドレス端子２１１から加わるリードアドレスをそれぞれ出力することで、３個の不揮発性メモリ素子５３〜５５の同一リードアドレスに対応する３個のメモリ領域からデータを同時に読み出し、多数決回路５９からの報告を待つ。このとき、不揮発性メモリ素子５３〜５５から出力データ線１１４−１〜１１４−３に出力されたデータ（多重化対象ビット列）は多数決回路５９に伝達され、不揮発性メモリ素子５３から出力データ線１１４−４に出力されたデータ（非多重化対象ビット列）は結合部５７に伝達される。その後、多数決回路５９から処理成功が報告されると、制御端子２１３に完了報告を出力し、エラーが通知されると制御端子２１３にエラー報告を出力する。
【００６７】
次に、図１の不揮発性メモリ装置１６として図４に示した不揮発性メモリ装置５０を使用した場合の全体の動作について説明する。
【００６８】
まず、ＣＰＵ１０で稼動するプログラムが不揮発性メモリ装置５０のメモリ空間に対してライトを行った際の動作を説明する。この場合、バス１１を通じて不揮発性メモリ装置５０にライトコマンド、ライトデータ、ライトアドレスが送られる。
【００６９】
不揮発性メモリ装置５０の書込読出制御部５６がこれらを受信すると、制御線１１３にライト信号を、メモリアドレス線１１１にライトアドレスを、データ線１３１にライトデータをそれぞれ出力する。データ分割部５８は、データ線１３１上のライトデータを多重化対象ビット列と非多重化対象ビット列とに分割し、入力データ線１１２にはライトデータそのものを、多重化対象ビット列データ線１１２−１には非多重化対象ビット列を出力する。
【００７０】
多重化用メモリ領域および非多重化用メモリ領域として使用する１個の不揮発性メモリ素子５３は、ライト信号を入力すると、ライトアドレスに対応するメモリ領域にライトデータを書き込む。他方、多重化用メモリ領域として使用する２個の不揮発性メモリ素子５４、５５は、ライト信号を入力すると、ライトアドレスに対応するメモリ領域にライトデータ中の多重化対象ビット列を書き込む。これにより、３個の不揮発性メモリ素子５３〜５５の同一ライトアドレスに対応する３個のメモリ領域に同一の多重化対象ビット列が３個同時に書き込まれ、また非多重化対象ビット列が１個書き込まれる
【００７１】
次に、ＣＰＵ１０で稼動するプログラムが不揮発性メモリ装置５０のメモリ空間に対してリードを行った際の動作を説明する。この場合、バス１１を通じて不揮発性メモリ装置５０にリードコマンド、リードアドレスが送られる。
【００７２】
不揮発性メモリ装置５０の書込読出制御部５６がこれらを受信すると、制御線１１３にリード信号を、メモリアドレス線１１１にリードアドレスをそれぞれ出力する。不揮発性メモリ素子５３は、リード信号を入力すると、リードアドレスに対応するメモリ領域に記憶されているデータ（多重化対象ビット列と非多重化対象ビット列）を読み出し、多重化対象ビット列は多数決回路５９へ、非多重化対象ビット列は結合部５７へ出力する。また、多重化用メモリ領域として使用する不揮発性メモリ素子５４、５５は、リード信号を入力すると、リードアドレスに対応するメモリ領域に記憶されているデータ（多重化対象ビット列）を読み出して多数決回路５９へ出力する。
【００７３】
多数決回路５９は、３個の不揮発性メモリ素子５３〜５５から読み出されたデータの多数決によりリードデータの上位８ビットを生成し、結合部５７へ出力する。結合部５７は、この生成された上位８ビットに不揮発性メモリ素子５３から出力データ線１１４−４に読み出された８ビットを下位８ビットとして結合したリードデータをデータ端子２１２から出力する。
【００７４】
このように本実施例の不揮発性メモリ装置５０によれば、メモリアクセス元のＣＰＵ１０のプログラムにデータの多重化を一切意識させずに、データの多重化によって記憶データの信頼性を高めることができる。
【００７５】
また、ライトデータの一部分のみを多重化して記録することができるため、一部分のみが重要なデータの多重化に必要なメモリ容量の削減が可能となる。データの一部分のみが特に重要となる例としては、例えば、指紋の階調画像の各画素の値が１６ビットのデータで表現されている場合がある。
【００７６】
また第２の実施の形態の不揮発性メモリ装置３０では、ｎ＋１個の不揮発性メモリ素子を必要としたが、本実施例の場合はｎ個の不揮発性メモリ素子で済む利点がある。
【００７７】
以上本発明の実施の形態および実施例について説明したが、本発明は以上の例に限定されず、その他各種の付加変更が可能である。例えば、メモリアレイの一部が故障しても全体としての機能の遂行が停止しないように冗長回路を有するメモリ装置は公知である（例えば特開昭６０−９５６６０号公報参照）。このような公知技術と本発明を組み合わせ、多数決回路で少数派となったデータを記録していたメモリ領域をバックアップ用のメモリ領域に切り替え、多数決で決定した値を書き込むことで自己修正機能を持たせるようにしても良い。また、多重度ｎを３としたが、一般に４以上の多重度（好ましくは奇数値）とすることが可能である。
【図面の簡単な説明】
【００７８】
【図１】本発明を適用した電子機器の一例を示すブロック図である。
【図２】本発明の第１の実施例にかかる不揮発性メモリ装置のブロック図である。
【図３】本発明の第２の実施例にかかる不揮発性メモリ装置のブロック図である。
【図４】本発明の第３の実施例にかかる不揮発性メモリ装置のブロック図である。
【符号の説明】
【００７９】
２０、３０、５０…不揮発性メモリ装置
２１、３１、５１…メモリ部
２２、３２、５２…メモリ制御部
２３〜２５、３３〜３６、５３〜５５…不揮発性メモリ素子
２６、３７、５６…書込読出制御部
２７、４０、５９…多数決回路
３８、５７…結合部
３９、５８…データ分割部
【図１】
2008097403.tif 000003
【図２】
2008097403.tif 000004
【図３】
2008097403.tif 000005
【図４】
2008097403.tif 000006