(57)【特許請求の範囲】
【請求項１】
不揮発性メモリ及び揮発性メモリを内蔵しており前記揮発性メモリから前記不揮発性メモリへのデータのコピーが可能になっているメモリデバイスを、複数接続可能なメモリコントローラであって、
接続可能な前記メモリデバイスに１対１に対応しており、各々が、対応するメモリデバイスの前記揮発性メモリに対する前記データの書き込みを可能にするとともに、対応するメモリデバイスの前記不揮発性メモリ及び前記揮発性メモリからの前記データの読み出しを可能にする複数のメモリ制御部と、
一のメモリ制御部により一のメモリデバイスの不揮発性メモリから読み出された第１データを、他のメモリ制御部により他のメモリデバイスの揮発性メモリから読み出された第２データを用いてベリファイする検証部と、を備えている、
メモリコントローラ。
【請求項２】
前記一のメモリ制御部と前記他のメモリ制御部とは、互いに同期して動作しており、これにより、前記他のメモリ制御部は、前記一のメモリ制御部が前記第１データを読み出すのと同時に前記第２データを読み出す、
請求項１記載のメモリコントローラ。
【請求項３】
前記一のメモリ制御部と前記他のメモリ制御部とは、それぞれ対応するメモリデバイスの前記揮発性メモリに同時に同じデータを書き込む、
請求項２記載のメモリコントローラ。
【請求項４】
前記一のメモリ制御部は、前記他のメモリデバイスの前記揮発性メモリに書き込まれたデータを前記他のメモリ制御部を介して読み出して、前記一のメモリデバイスの前記揮発性メモリに書き込む、
請求項１又は２記載のメモリコントローラ。
【請求項５】
前記検証部と前記一のメモリ制御部との間及び前記検証部と前記他のメモリ制御部との間は、各々異なる線路で接続されている、
請求項１〜４のいずれか１項記載のメモリコントローラ。
【請求項６】
前記複数のメモリ制御部の少なくとも一つは、対応するメモリデバイスが挿抜可能なソケットを備えており、このソケットを介してデータの送受信を行う、
請求項１〜５のいずれか１項に記載のメモリコントローラ。
【請求項７】
各々が不揮発性メモリ及び揮発性メモリを内蔵しており前記揮発性メモリから前記不揮発性メモリへのデータのコピーが可能になっている複数のメモリデバイスと、
前記複数のメモリデバイスに１対１に対応しており、各々が、対応するメモリデバイスの前記揮発性メモリに対するデータの書き込みを可能にするとともに、対応するメモリデバイスの前記不揮発性メモリ及び前記揮発性メモリからのデータの読み出しを可能にする複数のメモリ制御部と、
一のメモリ制御部により一のメモリデバイスの不揮発性メモリから読み出された第１データを、他のメモリ制御部により他のメモリデバイスの揮発性メモリから読み出された第２データを用いてベリファイする検証部と、を備えている、
メモリシステム。
【請求項８】
各々が不揮発性メモリ及び揮発性メモリを内蔵する複数のメモリデバイスに、前記複数のメモリデバイスとの間でデータの送受信が可能なメモリコントローラによりデータを書き込む方法であって、
前記メモリコントローラが、各メモリデバイスの前記揮発性メモリに、異なる経路で同時に同じデータを書き込む第１段階と、
前記メモリコントローラが、各メモリデバイスに対して、前記揮発性メモリに書き込まれたデータを前記不揮発性メモリにコピーさせるための制御データを送信する第２段階と、
各メモリデバイスが、前記制御データを受信して内蔵する前記揮発性メモリに書き込まれた前記データを内蔵する前記不揮発性メモリにコピーする第３段階と、
前記メモリコントローラが、所定の一のメモリデバイスの前記不揮発性メモリに書き込まれた第１データを、他のメモリデバイスの揮発性メモリに書き込まれた第２データを用いてベリファイを行う第４段階と、を含む、
データの書込方法。
【請求項９】
前記４段階で、前記メモリコントローラが、前記ベリファイに用いる前記第１データと前記第２データとを同時取得する、
請求項８記載のデータの書込方法。
【請求項１０】
前記第４段階で、前記ベリファイがフェイルと判断されると、前記メモリコントローラが、前記制御データを前記メモリデバイスに再送信する、
請求項８又は９記載のデータの書込方法。
【請求項１１】
前記ベリファイの結果、前記第１データが前記一のメモリデバイスの前記不揮発性メモリに正常に書き込まれていると判断されると、前記メモリコントローラが、新たな別のメモリデバイスの揮発性メモリに前記他のメモリデバイスの前記揮発性メモリのデータを書き込む、
請求項８〜１０のいずれか１項記載のデータの書込方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを備えたメモリデバイスへデータを書き込むためのメモリコントローラ、このようなメモリコントローラを備えたメモリシステム、及びメモリデバイスへのデータの書込方法に関する。
【背景技術】
【０００２】
不揮発性メモリへのデータの書き込みには、通常、ＲＯＭライタなどのメモリコントローラを用いる。メモリコントローラは、不揮発性メモリへのデータの書き込み時或いは書き込み後に、正常に書き込みが行われたことを確認するためにベリファイを行う。
【０００３】
ＲＯＭライタは、一度に複数の不揮発性メモリにデータを書き込むことができる。書き込まれるデータ（以下、「書込データ」という。）は、ＲＯＭライタの外部に設けられたホスト装置からＲＯＭライタに内蔵された揮発性メモリに一旦書き込まれた後に、複数の不揮発性メモリに書き込まれる。この際、揮発性メモリに書き込まれている書込データはそのまま保持される。
ＲＯＭライタは、ベリファイ時に不揮発性メモリに書き込まれた書込データ（即ち、不揮発性メモリセルへ書き込まれた不揮発性メモリセルデータ）を読み出して、内蔵の揮発性メモリに書き込む。これにより、ＲＯＭライタの揮発性メモリには２つのデータが記憶される。ＲＯＭライタは、これら２つのデータ（検証データとなる不揮発性メモリに書き込む前の書込データと、被検証データとなる不揮発性メモリから読み出した書込データ）を比較することでベリファイを行う。ＲＯＭライタは、ベリファイにより不揮発性メモリへのデータの書き込みが正常に行われていると判断すると、当該不揮発性メモリへの書き込みを終了する。
【０００４】
このようにＲＯＭライタに内蔵された揮発性メモリは、少なくともベリファイ時に用いられる２つのデータを記憶するだけの容量が必要になる。また、不揮発性メモリに一度に書き込めるデータ量が、ＲＯＭライタの揮発性メモリの記憶容量に依存することになる。さらに、揮発性メモリへの書き込み、読み出しによりベリファイにかかる時間が長くなるために、データの書き込み動作全体に時間がかかる。
【０００５】
不揮発性メモリ及び揮発性メモリを一つのメモリデバイスに内蔵して用いることで、上記のようなＲＯＭライタの欠点を補うことができる。
特許文献１には、メモリデバイスのバッファ（揮発性メモリ）に書込データを一時的に格納しておき、格納した書込データを不揮発性メモリに書き込むことが記載されている。不揮発性メモリへ書込データが書き込まれた後に、バッファに格納された書込データと不揮発性メモリに書き込まれた書込データとによりベリファイが行われる。
特許文献２には、複数のフラッシュメモリとメモリコントローラに接続されたＳＲＡＭ（Static Random Access Memory）とを備えたメモリカードの発明が記載されている。ＳＲＡＭには、フラッシュメモリに書込データを書き込む際に当該書込データが一時的に書き込まれる。ベリファイは、書き込み時に印加される電圧の各段階で行われる。
特許文献３には、複数のフラッシュメモリとライトバッファを備えた半導体ディスクの発明が記載されている。空いているフラッシュメモリに書込データを順次書き込むことで、書き込み速度が遅いフラッシュメモリの欠点を補っている。
【特許文献１】特開２００６−３０９８２９号公報
【特許文献２】ＷＯ２００３／０６０７２２
【特許文献３】特開２００１−１４８５８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以上のような特許文献１〜３では、ベリファイの際に同じメモリデバイスからベリファイに用いる２つのデータを読み出す。そのために、メモリコントローラ側に揮発性メモリが不要になる。しかし、一つのメモリデバイスから順にベリファイに用いる２つのデータを読み出すために、読み出し時間が長くなりがちである。その結果、メモリデバイスへの書き込み動作全体にかかる時間が長くなる。
【０００７】
本発明は、上記のような問題に鑑み、メモリデバイスへの書き込み動作全体にかかる時間を従来よりも短縮する技術を提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決する本発明のメモリコントローラは、不揮発性メモリ及び揮発性メモリを内蔵しており前記揮発性メモリから前記不揮発性メモリへのデータのコピーが可能になっているメモリデバイスを、複数接続可能である。このメモリコントローラは、接続可能な前記メモリデバイスに１対１に対応しており、各々が、対応するメモリデバイスの前記揮発性メモリに対する前記データの書き込みを可能にするとともに、対応するメモリデバイスの前記不揮発性メモリ及び前記揮発性メモリからの前記データの読み出しを可能にする複数のメモリ制御部と、一のメモリ制御部により一のメモリデバイスの不揮発性メモリから読み出された第１データを、他のメモリ制御部により他のメモリデバイスの揮発性メモリから読み出された第２データを用いてベリファイする検証部と、備えている。
【０００９】
本発明のメモリコントローラは、メモリデバイスの揮発性メモリにのみデータを書き込むことが可能になっており、不揮発性メモリに直接書き込むことはない。不揮発性メモリには、同じメモリデバイス内の揮発性メモリからデータが書き込まれる。このような構成であるために、メモリコントローラ内に揮発性メモリを用意する必要がない。そのために、不揮発性メモリに一度に書き込めるデータ量は、メモリデバイスの揮発性メモリに依存して、メモリコントローラに依存することはない。
不揮発性メモリに書き込まれたデータ（第１データ）のベリファイは、この不揮発性メモリを有するメモリデバイスとは異なる、他のメモリデバイスが有する揮発性メモリに書き込まれたデータ（第２データ）を用いて行われる。これら２つメモリデバイスは、異なるメモリ制御部によりデータが読み出される。そのために本発明のメモリコントローラは、例えば、前記一のメモリ制御部と前記他のメモリ制御部とが、互いに同期して動作しており、これにより、前記他のメモリ制御部が、前記一のメモリ制御部が前記第１データを読み出すのと同時に前記第２データを読み出すことが可能になる。従来は、１つのメモリデバイスから第１データと第２データを読み出しており、同時に読み出すことは困難であった。本発明のメモリコントローラでは、同時に読み出すことができるために、従来よりも高速にベリファイに用いる２つのデータを読み出すことが可能になる。また、一のメモリ制御部と他のメモリ制御部とが、互いに同期して動作する場合には、一のメモリ制御部と他のメモリ制御部とは、それぞれ対応するメモリデバイスの前記揮発性メモリに同時に同じデータを書き込むことができる。
前記一のメモリ制御部は、例えば、前記他のメモリデバイスの前記揮発性メモリに書き込まれたデータを前記他のメモリ制御部を介して読み出して、前記一のメモリデバイスの前記揮発性メモリに書き込む構成であってもよい。このような構成では、例えば、一のメモリデバイスの揮発メモリへのデータの書き込みが、他のメモリデバイスを用いて可能になる。また、一のメモリデバイスを別の新たなメモリデバイスに交換したときに、当該新たなメモリデバイスへの書き込みが当該他のメモリデバイスを用いて可能になる。
前記検証部と前記一のメモリ制御部との間及び前記検証部と前記他のメモリ制御部との間は、各々異なる線路で接続されていてもよい。このような構成では、第１データと第２データとを各々別の線路で取得するので、同時に取得でき、高速なベリファイが可能になる。
【００１０】
このような本発明のメモリコントローラは、例えば、前記複数のメモリ制御部の少なくとも一つが、対応するメモリデバイスが挿抜可能なソケットを備えたＲＯＭライタのような構成にすることができる。このソケットを介してデータを送受信可能である。挿抜可能なソケットであるために、書き込みが終了すると別のメモリデバイスに取り替えることができる。
【００１１】
本発明のメモリシステムは、各々が不揮発性メモリ及び揮発性メモリを内蔵しており前記揮発性メモリから前記不揮発性メモリへのデータのコピーが可能になっている複数のメモリデバイスと、前記複数のメモリデバイスに１対１に対応しており、各々が、対応するメモリデバイスの前記揮発性メモリに対するデータの書き込みを可能にするとともに、対応するメモリデバイスの前記不揮発性メモリ及び前記揮発性メモリからのデータの読み出しを可能にする複数のメモリ制御部と、一のメモリ制御部により一のメモリデバイスの不揮発性メモリから読み出された第１データを、他のメモリ制御部により他のメモリデバイスの揮発性メモリから読み出された第２データを用いてベリファイを行う検証部と、を備えている。
このようなメモリシステムは、例えばコンピュータシステムに搭載可能であり、当該コンピュータシステムの不揮発性メモリとして用いることができる。
【００１２】
本発明のデータの書込方法は、各々が不揮発性メモリ及び揮発性メモリを内蔵しており前記揮発性メモリから前記不揮発性メモリへのデータのコピーが可能になっている複数のメモリデバイスに、前記複数のメモリデバイスとの間でデータの送受信が可能なメモリコントローラによりデータを書き込む方法である。このデータの書込方法では、前記メモリコントローラが、各メモリデバイスの前記揮発性メモリに、異なる経路で同時に同じデータを書き込む第１段階と、前記メモリコントローラが、各メモリデバイスに対して、前記揮発性メモリに書き込まれたデータを前記不揮発性メモリにコピーさせるための制御データを送信する第２段階と、各メモリデバイスが、前記制御データを受信して内蔵する前記揮発性メモリに書き込まれた前記データを内蔵する前記不揮発性メモリにコピーする第３段階と、前記メモリコントローラが、所定の一つのメモリデバイスの不揮発性メモリに書き込まれた第１データを、他のメモリデバイスの揮発性メモリに書き込まれた第２データを用いてベリファイを行う第４段階と、を含む。
【００１３】
前記４段階で、前記メモリコントローラが、前記ベリファイに用いる前記第１データと前記第２データとを同時取得可能であれば、高速なベリファイが可能になる。
前記第４段階で、前記ベリファイがフェイルと判断されると、前記メモリコントローラが、例えば、前記制御データを前記メモリデバイスに再送信する。こうすることで、例えば一のメモリデバイスでデータのコピーが良好に終了しなかった場合に、再度データのコピーを行わせることができる。この後、第３、第４段階を再び行うことで、再ベリファイが行われる。
さらに、ベリファイの結果、前記第１データが前記一のメモリデバイスの前記不揮発性メモリに正常に書き込まれていると判断されると、前記メモリコントローラが、新たな別のメモリデバイスの揮発性メモリに前記他のメモリデバイスの前記揮発性メモリのデータを書き込むようにしてもよい。当該他のメモリデバイスを用いて、新たなメモリデバイスの不揮発性メモリへのデータの書き込みが可能になる。
【発明の効果】
【００１４】
以上のような本発明により、不揮発性メモリに書き込まれたデータのベリファイを、この不揮発性メモリを内蔵するメモリデバイスとは異なる、他のメモリデバイスの揮発性メモリに書き込まれたデータを用いて行うことで、ベリファイを従来よりも高速に行うことができる。そのために、メモリデバイスへの書き込み動作全体にかかる時間を従来よりも短縮することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施形態を説明する。
【００１６】
図１は、本発明の実施形態であるメモリシステム１の構成図である。
メモリシステム１は、メモリコントローラ１０と、各々が不揮発性メモリ２１ａ、２１ｂ及び揮発性メモリ２２ａ、２２ｂを有する２つのメモリデバイス２０ａ、２０ｂとを備える。この実施形態では２つのメモリデバイス２０ａ、２０ｂによる構成を説明するが、さらに多くのメモリデバイスを備えた構成であってもよい。メモリコントローラ１０には入力装置２、出力装置３、及びホスト装置４が接続される。入力装置２は、メモリコントローラ１０を操作するための様々な指示データを入力するための装置である。入力装置２には、例えば、キーボードや操作パネルなどを用いることができる。出力装置３は、メモリコントローラ１０の操作に必要な情報や操作結果等を画像或いは音声により出力する。出力装置３には、例えばディスプレイやスピーカなどを用いることができる。メモリコントローラ１０、入力装置２、及び出力装置３は、一体に構成されていてもよい。ホスト装置４は、汎用のパーソナルコンピュータなどの情報処理装置である。ホスト装置４は、メモリコントローラ１０からの要求に応じて、書込データをメモリコントローラ１０に送信する。
【００１７】
メモリコントローラ１０は、入力インタフェース（入力Ｉ／Ｆ）１１、出力インタフェース（出力Ｉ／Ｆ）１２、通信制御部１３、ベリファイを行う検証部１４、メモリデバイス２０ａ、２０ｂが接続される第１、第２メモリ制御部１５ａ、１５ｂ、及び制御部１６を備えている。メモリコントローラ１０は、ホスト装置４からメモリデバイス２０ａ、２０ｂの不揮発性メモリ２１ａ、２１ｂに書き込むべき書込データを取得して、この書込データをメモリデバイス２０ａ、２０ｂの揮発性メモリ２２ａ、２２ｂに同時に書き込む。
【００１８】
入力Ｉ／Ｆ１１は、入力装置２との間のインタフェース制御を行う。入力Ｉ／Ｆ１１は、入力装置２から入力される様々な指示データを制御部１６へ送る。特に、この実施形態ではメモリデバイス２０ａ、２０ｂへの書き込みを指示する書込指示データが入力Ｉ／Ｆ１１を介して入力装置２から制御部１６へ送られる。
出力Ｉ／Ｆ１２は、出力装置３との間のインタフェース制御を行う。出力Ｉ／Ｆ１２は、制御部１６の制御により、出力装置３により出力できる形態で操作結果などを出力する。出力Ｉ／Ｆ１２は、例えば、出力装置３にメモリデバイス２０ａ、２０ｂへの書き込み操作のステータスを表示したり、書き込み終了時に書き込み終了の表示を行い、検証終了時に検証終了の表示を行う。
通信制御部１３は、ホスト装置４との間の通信を行うためのインタフェースである。通信制御部１３は、例えば、入力装置２からメモリコントローラ１０に書込指示データがあると、制御部１６の制御によりホスト装置４から書込データを取得する。
この実施形態では、ホスト装置４から書込データを取得する。しかし、これに限らず、例えば入力装置２により、書込指示データとともに書込データが入力されるような形態でもよい。この場合、ホスト装置４及び通信制御部１３は不要になる。
【００１９】
検証部１４は、制御部１６の制御により、メモリデバイス２０ａ、２０ｂの不揮発性メモリ２１ａ、２１ｂに書き込まれた書込データのベリファイを行う。検証部１４は、例えば、メモリデバイス２０ａの不揮発性メモリ２１ａから取り込まれた書込データ（不揮発性メモリセルへの書き込み後にそのセルから読み出された被検証データ）と、メモリデバイス２０ｂの揮発性メモリ２２ｂから取り込まれた検証に用いる検証データ（不揮発性メモリセルへの書き込み元データである検証データ）とを比較することでベリファイを行う。つまり、ベリファイに用いる検証データは、被検証データとなる書込データが書き込まれた不揮発性メモリを有するメモリデバイスとは異なるメモリデバイスの揮発性メモリから取り込まれる。検証部１４では、書込データと検証データの単純な比較の他に、例えば書込データと検証データのそれぞれのハッシュ値の比較によりベリファイを行う。検証データは、書込データと同じでもよく、また、検証専用のデータであってもよい。例えばハッシュ値の比較でベリファイを行う場合には、検証データが書込データのハッシュ値であってもよい。
【００２０】
第１、第２メモリ制御部１５ａ、１５ｂは、制御部１６により制御され、それぞれメモリデバイス２０ａ、２０ｂに対応して設けられる。第１、第２メモリ制御部１５ａ、１５ｂは、メモリデバイス２０ａ、２０ｂとの間で書込データ、検証データ、被検証データなどの送受信を行うためのデータ線１７と、メモリデバイス２０ａ、２０ｂの動作を制御する制御データを送受信するための制御線１８とで、対応するメモリデバイス２０ａ、２０ｂに接続される。制御データによる制御により、メモリデバイス２０ａ、２０ｂへの書込データ及び検証データの書き込み、読み出しが行われる。また、制御データによりメモリデバイス２０ａ、２０ｂに、揮発性メモリ２２ａ、２２ｂから不揮発性メモリ２１ａ、２１ｂへの書込データのコピーを行わせる（詳細については後述する）。第１、第２メモリ制御部１５ａ、１５ｂには、それぞれ対応するメモリデバイス２０ａ、２０ｂが、例えば図示しないソケットを介して接続される。ソケットにより、メモリデバイス２０ａ、２０ｂが挿抜可能になる。メモリ制御部の数だけ、このメモリコントローラ１０にはメモリデバイスが接続可能である。このような構成により、メモリコントローラ１０は、各メモリデバイス２０ａ、２０ｂとの間で異なる経路によりデータの送受信を行うことができる。
第１メモリ制御部１５ａは、不揮発性メモリ２１ａへのデータの書き込みのためにメモリデバイス２０ａの揮発性メモリ２２ａに対して書込データを書き込む。また、メモリデバイス２０ａの不揮発性メモリ２１ａから被検証データとして書込データを読み出すとともに、メモリデバイス２０ｂの不揮発性メモリ２１ｂの被検証データとなる書込データの検証に用いるために揮発性メモリ２２ａから検証データを読み出す。
第２メモリ制御部１５ｂは、第１メモリ制御部１５ａと同様の機能を有する。第２メモリ制御部１５ｂは、第１メモリ制御部１５ａがメモリデバイス２０ａの揮発性メモリ２２ａに書込データを書き込むのと同時に、メモリデバイス２０ｂの揮発性メモリ２２ｂに書込データを書き込む。
検証データは、通常、第１、第２メモリ制御部１５ａ、１５ｂがメモリデバイス２０ａ、２０ｂの揮発性メモリ２２ａ、２２ｂに書込データを書き込む際に、同時に揮発性メモリ２２ａ、２２ｂに書き込まれる。
【００２１】
第１、第２メモリ制御部１５ａ、１５ｂは、各々異なる線路で検証部１４に接続される。各線路は、検証データが送受信される検証データ用線と被検証用データが送受信される被検証データ用線とで構成される。このような構成では、ベリファイに用いる検証データ及び被検証データを、従来よりも高速に検証部１４に提供することができる。
【００２２】
制御部１６は、入力装置２から入力される指示データに応じて、メモリコントローラ１０の各構成要素の動作を制御して指示に沿った処理を行う。制御部１６は、メモリデバイス２０ａ、２０ｂに入力される制御データを生成して、第１、第２メモリ制御部１５ａ、１５ｂに入力する。また、制御部１６は、例えば、一つの信号により第１、第２メモリ制御部１５ａ、１５ｂの動作を制御する。そのために、第１、第２メモリ制御部１５ａ、１５ｂの書き込み、読み出し動作は同期して行われる。
【００２３】
図２は、メモリデバイス２０ａの概略断面図である。メモリデバイス２０ｂもメモリデバイス２０ａと同じ構成である。ここでは、メモリデバイス２０ａの構成を説明し、メモリデバイス２０ｂの構成についての説明は省略する。
メモリデバイス２０ａには、ＭＣＰ（Multi Chip Package）積層技術が用いられており、基板２３上に、不揮発性メモリ２１ａ及び揮発性メモリ２２ａが積層されている。不揮発性メモリ２１ａと揮発性メモリ２２ａとは、図示しない層間絶縁体の一例である接着剤（例えば、ポリイミド、シリコーン、エポキシ系の熱伝導性接着剤など）やスペーサなどで接着され、不揮発性メモリ２１ａは、図示しない接着剤などで基板２３に接着される。なお、図２はメモリデバイスの構造の一例であり、一つのパッケージに不揮発性メモリ２１ａ及び揮発性メモリ２２ａが内蔵されるＰｏＰ（Package-on-Package）構造でもよい。また、不揮発性メモリ２１ａ及び揮発性メモリ２２ａの他に、例えばメモリコントローラ１０の機能を有する半導体チップを更に備えた構成であってもよい。
不揮発性メモリ２１ａと揮発性メモリ２２ａとは、同じデータが入力される端子同士が配線２４により接続されている。基板２３の下部にはボール電極２５が配置されている。配線２４とボール電極２５とは、基板２３の内部配線により接続されている。ボール電極２５には、メモリデバイス２０ａの外部から電源電圧が印加されるとともに、メモリコントローラ１０との間でデータ線１７及び制御線１８を介して各種データ（例えば、書込データ、検証データ、被検証データなど）の送受信が行われる。
【００２４】
図３は、メモリデバイス２０ａの回路構成を説明する図である。メモリコントローラ１０から不揮発性メモリ２１ａへ書き込まれる書込データは、一旦、揮発性メモリ２２ａに書き込まれた後に、揮発性メモリ２２ａから不揮発性メモリ２１ａへコピーされる。不揮発性メモリ２１ａに書き込まれた書込データ及び揮発性メモリ２２ａに書き込まれた検証データを読み出す際には、メモリコントローラ１０が不揮発性メモリ２１ａ及び揮発性メモリ２２ａから直接読み出す。
【００２５】
メモリコントローラ１０と、不揮発性メモリ２１ａと、揮発性メモリ２２ａとの間は、各種クロック信号、各種コマンド信号、アドレス信号ＡＤ、などの制御データ、及び書込データであるデータ信号ＤＱが送受信される。不揮発性メモリ２１ａと揮発性メモリ２２ａとのいずれが活性化されるかは、チップセレクト信号ＣＳ１、ＣＳ２により決まる。
【００２６】
揮発性メモリ２２ａは、メモリコントローラ１０から出力される制御データであるロウアドレスセレクト信号ＲＡＳ、カラムアドレスセレクト信号ＣＡＳ、ライトイネーブル信号ＷＥをデコードして揮発性メモリ２２ａのメモリセルにアクセスする不図示のコマンド判定回路を備えている。
不揮発性メモリ２１ａは、揮発性メモリ２２ａから読み出されたデータを異なるアドレスに書き込む機能を有する。この機能はコマンド判定回路２６及びアドレス制御回路２７により実現される。
【００２７】
図４は、不揮発性メモリ２１ａに備えられたコマンド判定回路２６及びアドレス制御回路２７の一例を示す回路図である。
コマンド判定回路２６は、インバータ３１と、アンドゲート３２〜３５と、スイッチ３６、３７とを備えている。
【００２８】
インバータ３１は、チップセレクト信号ＣＳ１の反転信号を出力する。すなわち、不揮発性メモリ２１ａが選択され、チップセレクト信号ＣＳ１がローレベルになるとインバータ３１からはハイレベルが出力される。
【００２９】
アンドゲート３２は、ロウアドレスセレクト信号ＲＡＳがローレベルになり、カラムアドレスセレクト信号ＣＡＳ及びライトイネーブル信号ＷＥがハイレベルになると、出力であるアクティブ信号ＡＣＴがハイレベルになる。
アンドゲート３３は、チップセレクト信号ＣＳ１がローレベルの状態で、カラムアドレスセレクト信号ＣＡＳ及びライトイネーブル信号ＷＥがローレベルになり、ロウアドレスセレクト信号ＲＡＳがハイレベルになると、出力がハイレベルになる。スイッチ３６において、後述の実行コード判定信号ＣＢＣがローレベルの場合には、アンドゲート３３の出力がライト信号ＷＴに出力される。実行コード判定信号ＣＢＣがハイレベルの場合には、ハイレベルのパルスが強制的にライト信号ＷＴに出力される。
アンドゲート３４は、ロウアドレスセレクト信号ＲＡＳ及びライトイネーブル信号ＷＥがローレベルになり、カラムアドレスセレクト信号ＣＡＳがハイレベルになると、出力であるプリチャージ信号ＰＲがハイレベルになる。
アンドゲート３５は、チップセレクト信号ＣＳ１がローレベルで、カラムアドレスセレクト信号ＣＡＳがローレベルで、ロウアドレスセレクト信号ＲＡＳ及びライトイネーブル信号ＷＥがハイレベルになると、ハイレベルが出力される。スイッチ３７において、後述の実行コード判定信号ＣＢＣがローレベルの場合には、アンドゲート３５の出力がリード信号ＲＤに出力され、実行コード判定信号ＣＢＣがハイレベルの場合にはローレベルがリード信号ＲＤに出力される。
【００３０】
アドレス制御回路２７は、実行コード判定回路３８と、アドレスラッチレイテンシ付加回路３９と、ロウアドレスラッチ回路４０と、カラムアドレスラッチ回路４１とを備えている。
実行コード判定回路３８には、データ信号ＤＱ、アクティブ信号ＡＣＴ、及びプリチャージ信号ＰＲが入力される。アクティブ信号ＡＣＴがハイレベルになると、データ信号ＤＱに含まれる実行コードＣＭＤを取得する。実行コードＣＭＤにより、不揮発性メモリ２１ａは、揮発性メモリ２２ａからのデータコピーが可能なモードになる。実行コードＣＭＤにより、アドレスのレイテンシを付加するか否かが決定する。実行コードＣＭＤにより、データの転送元（揮発性メモリ２２ａ）と転送先（不揮発性メモリ２１ａ）とが異なる場合、実行コード判定信号ＣＢＣがハイレベルになる。なお、実行コード判定信号ＣＢＣは、プリチャージ信号ＰＲがハイレベルになるとローレベルになる。
【００３１】
アドレスラッチレイテンシ付加回路３９には、クロック信号ＣＬＫ及び実行コード判定信号ＣＢＣが入力される。実行コード判定信号ＣＢＣがハイレベルであると、ロウアドレスラッチ回路４０及びカラムアドレスラッチ回路４１におけるアドレスにレイテンシを付加するアドレスレイテンシ制御信号が出力される。付加するアドレスのレイテンシの値は「１」であってもよいし、「１」を上回る値でもよい。実行コード判定信号ＣＢＣがローレベルであるとアドレスのレイテンシ値は「０」となる。レイテンシの値は、図示しないモードレジスタ設定サイクルによって予め設定することができる。
【００３２】
ロウアドレスラッチ回路４０は、アクティブ信号ＡＣＴと、アドレスラッチレイテンシ付加回路３９からのアドレスレイテンシ制御信号と、アドレス信号ＡＤとが入力される。アクティブ信号ＡＣＴがハイレベルになると、アドレスラッチレイテンシ付加回路３９からのアドレスレイテンシ制御信号に応じたアドレスレイテンシで、ロウアドレスがラッチされ、ロウアドレスＲＯＷＡＤが出力される。
【００３３】
カラムアドレスラッチ回路４１は、ライト信号ＷＴと、リード信号ＲＤと、アドレスラッチレイテンシ付加回路３９からのアドレスレイテンシ制御信号と、アドレス信号ＡＤとが入力される。ライト信号ＷＴがハイレベルになるとアドレスラッチレイテンシ付加回路３９からのアドレスレイテンシ制御信号に応じたアドレスレイテンシで、カラムアドレスがラッチされ、カラムアドレスＣＯＬＡＤが出力される。なお、リード信号ＲＤがハイレベルの場合には、アドレスレイテンシは「０」で、アドレス信号ＡＤがラッチされる。
【００３４】
揮発性メモリ２２ａの図示しないライト制御回路について説明する。後述するように、不揮発性メモリ２１ａのライトデータは、揮発性メモリ２２ａのリードデータであり、不揮発性メモリ２１ａがそのデータをラッチする。よって、不揮発性メモリ２１ａのライトレイテンシＷＣＬ（コマンドからライトデータをラッチするまでのＣＬＫ数規定）は、転送元である揮発性メモリ２２ａのリードレイテンシＲＣＬと同じである。揮発性メモリ２２ａのライト制御回路に含まれるデータラッチレイテンシ付加回路は、アドレスラッチレイテンシ付加回路３９と同様な回路であり、実行コード判定回路３８の実行コード判定信号ＣＢＣとクロック信号ＣＬＫを入力し、図示しないデータラッチ回路を制御する。
【００３５】
図５を参照して、メモリデバイス２０ａで行われる揮発性メモリ２２ａから不揮発性メモリ２１ａへの書込データのコピー動作について説明する。図５は、メモリデバイス２０ａの動作を表すタイミングチャートである。クロック信号ＣＬＫ、チップセレクト信号ＣＳ２、ロウアドレスセレクト信号ＲＡＳ、カラムアドレスセレクト信号ＣＡＳ、ライトイネーブル信号ＷＥ、アドレス信号ＡＤ、及びデータ信号ＤＱは、メモリコントローラ１０の第１メモリ制御部１５ａから入力される。中段のアクティブ信号ＡＣＴ、リード信号ＲＤ、ライト信号ＷＴ、及びプリチャージ信号ＰＲは、揮発性メモリ２２ａのメモリコマンドである。下段のアクティブ信号ＡＣＴ、リード信号ＲＤ、ライト信号ＷＴ、及びプリチャージ信号ＰＲは、不揮発性メモリ２１ａのメモリコマンドである。
【００３６】
時刻Ｔ１において、チップセレクト信号ＣＳ２及びロウアドレスセレクト信号ＲＡＳがローレベルになり、カラムアドレスセレクト信号ＣＡＳ及びライトイネーブル信号ＷＥがハイレベルになると、不揮発性メモリ２１ａのアクティブ信号ＡＣＴがハイレベルになる。これとともにデータ信号ＤＱから実行コードＣＭＤが取得される。本実施形態では、転送先のアドレスレイテンシＡＬは「＋１」である。また、転送元のリードレイテンシＲＣＬは「＋２」である。転送先のライトレイテンシＷＣＬは「＋２」であり、その数値は、転送元のリードレイテンシＲＣＬに合わせられる。つまり、リードレイテンシＲＣＬとライトレイテンシＷＣＬが等しい。
揮発性メモリ２２ａのアクティブ信号ＡＣＴがハイレベルになる。これにより、揮発性メモリ２２ａでは、ロウアドレス“３Ａ”がセット（ラッチ）される。
【００３７】
時刻Ｔ２において、転送先のアドレスレイテンシＡＬが“１”であるため、不揮発性メモリ２１ａでは、アクティブ信号ＡＣＴから１ＣＬＫ遅れたタイミングでロウアドレス“１Ｂ”がセット（ラッチ）される。
【００３８】
時刻Ｔ３において、チップセレクト信号ＣＳ２及びカラムアドレスセレクト信号ＣＡＳがローレベルに、ロウアドレスセレクト信号ＲＡＳ及びライトイネーブル信号ＷＥがハイレベルになると、揮発性メモリ２２ａのリード信号ＲＤがハイレベルになる。これにより、揮発性メモリ２２ａのカラムアドレス“Ｂ０”がセット（ラッチ）される。
他方、不揮発性メモリ２１ａでは、実行コード判定信号ＣＢＣがハイレベルのため、ライト信号ＷＴがハイレベルにされる。
揮発性メモリ２２ａのリードレイテンシＲＣＬが“２”に設定されているため、２サイクル後（時刻Ｔ５）から揮発性メモリ２２ａのデータがデータ信号ＤＱとして出力される。
【００３９】
時刻Ｔ４において、転送先のアドレスレイテンシＡＬが“１”であるため、不揮発性メモリ２１ａでは、カラムアドレス“Ａ０”がセット（ラッチ）される。
不揮発性メモリ２１ａに与えられる転送先アドレスが、アドレスレイテンシ技術によって揮発性メモリ２２ａに与えられる転送元アドレスと同一サイクル内（Ｔ２、Ｔ４）で確立できる。
【００４０】
時刻Ｔ５〜Ｔ８において、揮発性メモリ２２ａのアドレス“３ＡＢ０”に格納されるデータＤ１〜Ｄ４が、リードレイテンシＲＣＬ＝２によって順次読み出されるとともに、不揮発性メモリ２１ａのアドレス“１ＢＡ０”へ、揮発性メモリ２２ａと同じライトレイテンシＷＣＬ＝２で、データＤ１〜Ｄ４が書き込まれる。
【００４１】
時刻Ｔ９において、ロウアドレスセレクト信号ＲＡＳ及びライトイネーブル信号ＷＥがローレベルになり、カラムアドレスセレクト信号ＣＡＳがハイレベルになるため、不揮発性メモリ２１ａでは、プリチャージ信号ＰＲがハイレベルとなる。これにより、実行コード判定信号ＣＢＣがローレベルとなり、不揮発性メモリ２１ａは通常の動作モードに復帰する。
【００４２】
以上、詳細に説明したとおり、このメモリデバイス２０ａでは、転送元となる揮発性メモリ２２ａから転送先となる不揮発性メモリ２１ａへのデータのコピーを、メモリコントローラ１０からの制御データにより、メモリデバイス２０ａ内の動作のみで行なうことができる。
【００４３】
図６は、メモリシステム１によるメモリデバイス２０ａへの書き込み動作の処理流れ図である。
メモリコントローラ１０は、入力装置２からメモリデバイス２０ａ、２０ｂへの書込指示データを受信する（ステップＳ１０）。メモリコントローラ１０は、ホスト装置４からメモリデバイス２０ａ、２０ｂへ書込データを書き込む（転送する）。書込データは、メモリコントローラ１０によりメモリデバイス２０ａ、２０ｂの各揮発性メモリ２２ａ、２２ｂに同時に書き込まれる（ステップＳ２０）。
【００４４】
メモリコントローラ１０は、書込データをメモリデバイス２０ａ、２０ｂの各揮発性メモリ２２ａ、２２ｂに書き込むと、制御データをメモリデバイス２０ａ、２０ｂに送信する。メモリデバイス２０ａ、２０ｂは、メモリコントローラ１０から制御データを受信すると、メモリデバイス２０ａ、２０ｂ内の各揮発性メモリ２２ａ、２２ｂに書き込まれた書込データを、同じメモリデバイス２０ａ、２０ｂ内の不揮発性メモリ２１ａ、２１ｂにそれぞれコピーする（ステップＳ３０）。
次いでメモリコントローラ１０は、不揮発性メモリ２１ａ、２１ｂに書き込まれた書込データの検証を行う。ここでは、メモリデバイス２０ａの不揮発性メモリ２１ａに書き込まれた書込データの検証を例に説明する。
メモリコントローラ１０は、メモリデバイス２０ａの不揮発性メモリ２１ａから、第１メモリ制御部１５ａにより、被検証データとして書込データを読み出す。読み出された書込データは、検証部１４に送られる。同時にメモリコントローラ１０は、メモリデバイス２０ｂの揮発性メモリ２２ｂから、第２メモリ制御部１５ｂにより検証データを読み出す。読み出された検証データは、検証部１４に送られる（ステップＳ４０）。検証データは、例えばメモリコントローラ１０からステップＳ２０で揮発性メモリ２２ｂに書き込まれた書込データである。
【００４５】
検証部１４では、メモリデバイス２０ａの不揮発性メモリ２１ａから被検証データとして読み出された書込データとメモリデバイス２０ｂの揮発性メモリ２２ｂから読み出された検証データとを比較して、ベリファイを行う（ステップＳ５０）。つまり、一のメモリデバイスの不揮発性メモリに書き込まれた書込データの検証は、他のメモリデバイスの揮発性メモリから読み出される検証データにより行われる。
メモリコントローラ１０は、ベリファイの結果、不揮発性メモリ２１ａへの書き込みが正常に行われている場合（ベリファイパス）には、メモリデバイス２０ａへの書き込みを終了する（ステップＳ６０：Y）。正常に書き込みが行われていない場合（ベリファイフェイル）には、例えば以下に示す通り、ステップＳ２０に戻る方法とステップ３０に戻る方法とがある（ステップＳ６０：N）。
ベリファイフェイルの原因が揮発性メモリ２２ａにある場合、メモリコントローラ１０は、ステップＳ２０に戻り、ホスト装置４から揮発性メモリ２２ａへ書込データを再び書き込む（転送する）段階から、書き込み動作を、書き込みとその検証が正常に終了するまで繰り返す（ステップＳ２０〜ステップＳ６０のループ）。メモリコントローラ１０に書込データを一時記憶するためのメモリを設けていないために、再度、ホスト装置４から書込データを揮発性メモリ２２ａへ書き込む。
ベリファイフェイルの原因が不揮発性メモリ２１ａにある場合、メモリコントローラ１０は、ステップＳ３０に戻り、揮発性メモリ２２ａから不揮発性メモリ２１ａへ書込データをコピーする段階から、書き込み動作を、書き込みとその検証が正常に終了するまで繰り返す（ステップＳ３０〜ステップＳ６０のループ）。メモリコントローラ１０に書込データを一時記憶するためのメモリを設けていないため、再度、揮発性メモリ２２ａから不揮発性メモリ２１ａに書込データをコピーする。
【００４６】
ベリファイも含めて書き込みが終了したメモリデバイスを新たな別のメモリデバイスに取り替えると、当該別のメモリデバイスへの書込データの書き込みは、高速に行うことができる。例えば、書き込みが終了したメモリデバイス２０ａをソケットから挿抜して新たな別のメモリデバイスを挿入すると、このメモリデバイスの揮発性メモリに対しては、第２メモリ制御部１５ｂと第１メモリ制御部１５ａとを介して、メモリデバイス２０ｂの揮発性メモリ２２ｂから書込データを書き込むことができる。これにより、新たにホスト装置４から書込データを転送する必要がなくなり、書き込みが高速に行われる。また、ホスト装置４は、一度いづれかの揮発性メモリへ書込データを転送した後は、メモリコントローラ１０或いはメモリシステム１からのディスターブがなく、図示しないその他のデバイスと通信することができる。
【００４７】
従来は、同じメモリデバイスから被検証データとしての書込データと検証データを読み出すために、各々に必要な時間を加算した時間必要である。しかし、上記のような本実施形態では、被検証データである書込データが書き込まれたメモリデバイスとは異なるメモリデバイスから検証データを読み出すために、書込データと検証データとを同時に読み出し可能である。そのために、ベリファイにかかる時間を従来よりも短縮できる。これにより、書込動作全体の時間も短縮できる。
メモリコントローラ１０は、ＲＯＭライタとして用いる他に、例えばコンピュータシステム内に設けられ、同じコンピュータシステム内のメモリデバイスに書き込む装置としても用いることができる。コンピュータシステム内に設けられる場合には、例えばメモリデバイスがメモリコントローラから挿抜できないように、接続される。
【図面の簡単な説明】
【００４８】
【図１】本実施形態のメモリシステムの構成図である。
【図２】メモリデバイスの概略断面図である。
【図３】メモリデバイスの回路構成を説明する図である。
【図４】不揮発性メモリに備えられたコマンド判定回路及びアドレス制御回路の一例を示す回路図である。
【図５】メモリデバイスの動作を表すタイミングチャートである。
【図６】メモリシステムによるメモリデバイスへの書き込み動作の処理流れ図である。
【符号の説明】
【００４９】
１…メモリシステム、１０…メモリコントローラ、１１…入力インタフェース、１２…出力インタフェース、１３…通信制御部、１４…検証部、１５ａ…第１メモリ制御部、１５ｂ…第２メモリ制御部、１６…制御部、１７…データ線、１８…制御線、２０ａ，２０ｂ…メモリデバイス、２１ａ，２１ｂ…不揮発性メモリ、２２ａ，２２ｂ…揮発性メモリ、２３…基板、２４…配線、２５…ボール電極、２６…コマンド判定回路、２７…アドレス制御回路、３１…インバータ、３２〜３５…アンドゲート、３６，３７…スイッチ、３８…実行コード判定回路３８、３９…アドレスラッチレイテンシ付加回路、４０…ロウアドレスラッチ回路、４１…カラムアドレスラッチ回路、２…入力装置、３…出力装置、４…ホスト装置
【図１】
0005107776.tif 000002
【図２】
0005107776.tif 000003
【図３】
0005107776.tif 000004
【図４】
0005107776.tif 000005
【図５】
0005107776.tif 000006
【図６】
0005107776.tif 000007