(57)【要約】【課題】Ｒｅａｄ／Ｗｒｉｔｅコマンドにより、処理を実行することで、データの書き込みと読み出しの同時アクセスを仮想的に実現する不揮発性記憶システムを提供する。【解決手段】不揮発性記憶装置２のコマンド制御部２２は、ホスト装置１から、不揮発性メモリＭＥＭに対するデータ読み出し処理およびデータ書き込み処理の実行を指示するＲ／Ｗコマンドを受信すると、読み出し論理アドレスと、書き込み論理アドレスと、書き込みデータとを取得する。アドレス変換部２４は、書き込み論理アドレスに対応する書き込み物理アドレスを特定し、読み出し論理アドレスに対応する読み出し物理アドレスを特定する。メモリＩＦ部２５は、不揮発性メモリの書き込み物理アドレスに、ホスト装置から受信した書き込みデータを書き込むように、不揮発性メモリを制御するとともに、不揮発性メモリの読み出し物理アドレスからデータを読み出すように、不揮発性メモリを制御する。【選択図】図１
2014194689.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置とデータ通信を行うことができる不揮発性記憶装置であって、
不揮発性メモリと、
前記不揮発性メモリを制御するメモリコントローラと、
を備え、
前記メモリコントローラは、
前記ホスト装置から、前記不揮発性メモリに対するデータ読み出し処理およびデータ書き込み処理の実行を指示するコマンドであるＲ／Ｗコマンドを受信した場合、読み出しアドレスと、書き込みアドレスと、を取得するコマンド制御部と、
前記不揮発性メモリの前記書き込みアドレスに、前記ホスト装置から受信した書き込みデータを書き込むように、前記不揮発性メモリを制御するとともに、前記不揮発性メモリの前記読み出しアドレスからデータを読み出すように、前記不揮発性メモリを制御するメモリＩＦ部と、
を備える、
不揮発性記憶装置。
【請求項２】
前記Ｒ／Ｗコマンドは、書き込みアドレスと、読み出しアドレスとを含む、
請求項１に記載の不揮発性記憶装置。
【請求項３】
前記Ｒ／Ｗコマンドは、１つのアドレスを含み、
前記コマンド制御部は、前記Ｒ／Ｗコマンドに含まれるアドレスが１つである場合、当該アドレスを、前記書き込みアドレスおよび前記読み出しアドレスとして取得する、
請求項１に記載の不揮発性記憶装置。
【請求項４】
前記Ｒ／Ｗコマンドは、さらに、書き込みデータを含む、
請求項１から３のいずれかに記載の不揮発性記憶装置。
【請求項５】
前記Ｒ／Ｗコマンドは、不揮発性記憶装置の不揮発性メモリについての構成を指定するコマンド処理フラグをさらに含む、
請求項１から４のいずれかに記載の不揮発性記憶装置。
【請求項６】
前記Ｒ／Ｗコマンドは、不揮発性記憶装置に実行させる処理の順番を指定するコマンドシーケンスフラグを含む、
請求項１から５のいずれかに記載の不揮発性記憶装置。
【請求項７】
前記Ｒ／Ｗコマンドは、不揮発性記憶装置に実行させる機能を指定するファンクションフラグを含む、
請求項１から６のいずれかに記載の不揮発性記憶装置。
【請求項８】
前記メモリコントローラは、
前記不揮発性メモリからの読み出しデータからＣＲＣ値を取得するＣＲＣ生成部と、
ＣＲＣ値についての比較処理を行う比較部と、
前記ホスト装置とデータを送受信するためのホストＩＦ部と、
をさらに備え、
前記ファンクションフラグにおいて、ベリファイ機能が指定されており、
前記ホスト装置から、前記Ｒ／Ｗコマンドと、前記書き込みデータと、前記書き込みデータのＣＲＣ値とを受信した場合、
前記比較部は、前記ホスト装置から受信した前記書き込みデータのＣＲＣ値と、前記ＣＲＣ生成部により、前記書き込みデータが前記不揮発性メモリに書き込まれたアドレスから読み出したデータから取得したＣＲＣ値とを比較し、比較結果を示す信号を取得し、
前記ホストＩＦ部は、前記比較部により取得された前記比較結果を示す信号を、前記ホスト装置に送信する、
請求項７に記載の不揮発性記憶装置。
【請求項９】
不揮発性メモリを制御するメモリコントローラであって、
前記ホスト装置から、前記不揮発性メモリに対するデータ読み出し処理およびデータ書き込み処理の実行を指示するコマンドであるＲ／Ｗコマンドを受信した場合、読み出しアドレスと、書き込みアドレスと、を取得するコマンド制御部と、
前記不揮発性メモリの前記書き込みアドレスに、前記ホスト装置から受信した書き込みデータを書き込むように、前記不揮発性メモリを制御するとともに、前記不揮発性メモリの前記読み出しアドレスからデータを読み出すように、前記不揮発性メモリを制御するメモリＩＦ部と、
を備えるメモリコントローラ。
【請求項１０】
前記Ｒ／Ｗコマンドは、１つのアドレスを含み、
前記コマンド制御部は、前記Ｒ／Ｗコマンドに含まれるアドレスが１つである場合、当該アドレスを、前記書き込みアドレスおよび前記読み出しアドレスとして取得する、
請求項９に記載のメモリコントローラ。
【請求項１１】
前記Ｒ／Ｗコマンドは、さらに、書き込みデータを含む、
請求項９または１０に記載のメモリコントローラ。
【請求項１２】
前記Ｒ／Ｗコマンドは、メモリコントローラにおいて、実行される機能を指定するファンクションフラグを含む、
請求項９から１１のいずれかに記載のメモリコントローラ。
【請求項１３】
前記不揮発性メモリからの読み出しデータからＣＲＣ値を取得するＣＲＣ生成部と、
ＣＲＣ値についての比較処理を行う比較部と、
前記ホスト装置とデータを送受信するためのホストＩＦ部と、
をさらに備え、
前記ファンクションフラグにおいて、ベリファイ機能が指定されており、
前記ホスト装置から、前記Ｒ／Ｗコマンドと、前記書き込みデータと、前記書き込みデータのＣＲＣ値とを受信した場合、
前記比較部は、前記ホスト装置から受信した前記書き込みデータのＣＲＣ値と、前記ＣＲＣ生成部により、前記書き込みデータが前記不揮発性メモリに書き込まれたアドレスから読み出したデータから取得したＣＲＣ値とを比較し、比較結果を示す信号を取得し、
前記ホストＩＦ部は、前記比較部により取得された前記比較結果を示す信号を、前記ホスト装置に送信する、
請求項１２に記載のメモリコントローラ。
【請求項１４】
制御装置とデータ通信を行うことができる不揮発性メモリ装置であって
不揮発性メモリと、
前記制御装置から、前記不揮発性メモリに対するデータ読み出し処理およびデータ書き込み処理の実行を指示するコマンドであるＲ／Ｗコマンドを受信した場合、読み出しアドレスと、書き込みアドレスとを取得するコマンド制御部と、
前記不揮発性メモリの前記書き込みアドレスに、前記制御装置から受信した書き込みデータを書き込むように、前記不揮発性メモリを制御するとともに、前記不揮発性メモリの前記読み出しアドレスからデータを読み出すように、前記不揮発性メモリを制御するメモリ制御部と、
を備える不揮発性メモリ装置。
【請求項１５】
前記Ｒ／Ｗコマンドは、１つのアドレスを含み、
前記コマンド制御部は、前記Ｒ／Ｗコマンドに含まれるアドレスが１つである場合、当該アドレスを、前記書き込みアドレスおよび前記読み出しアドレスとして取得する、
請求項１４に記載の不揮発性メモリ装置。
【請求項１６】
前記Ｒ／Ｗコマンドは、さらに、書き込みデータを含む、
請求項１４または１５に記載の不揮発性メモリ装置。
【請求項１７】
前記Ｒ／Ｗコマンドは、不揮発性メモリ装置において、実行される機能を指定するファンクションフラグを含む、
請求項１４から１６のいずれかに記載の不揮発性メモリ装置。
【請求項１８】
前記不揮発性メモリからの読み出しデータからＣＲＣ値を取得するＣＲＣ生成部と、
ＣＲＣ値についての比較処理を行う比較部と、
前記制御装置とデータを送受信するためのＩＦ部と、
をさらに備え、
前記ファンクションフラグにおいて、ベリファイ機能が指定されており、
前記制御装置から、前記Ｒ／Ｗコマンドと、前記書き込みデータと、前記書き込みデータのＣＲＣ値とを受信した場合、
前記比較部は、前記制御装置から受信した前記書き込みデータのＣＲＣ値と、前記ＣＲＣ生成部により、前記書き込みデータが前記不揮発性メモリに書き込まれたアドレスから読み出したデータから取得したＣＲＣ値とを比較し、比較結果を示す信号を取得し、
前記ＩＦ部は、前記比較部により取得された前記比較結果を示す信号を、前記制御装置に送信する、
請求項１７に記載の不揮発性メモリ装置。
【請求項１９】
ホスト装置と、
請求項１から８のいずれかに記載の不揮発性記憶装置と、
を備える不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＮＤフラッシュメモリなど不揮発性半導体メモリにおいて、データの書き込みと読み出しの同時アクセスを仮想的に実現するための方法、および、その装置に関する。
【背景技術】
【０００２】
ＮＡＮＤフラッシュメモリなどの不揮発性半導体メモリに対するデータの書き込み／読み出し処理を高速化するための技術が多々提案されている。
【０００３】
例えば、特許文献１には、複数個のフラッシュメモリに対して、連続的にデータ書き込み処理を行うことで、フラッシュメモリにデータを書き込んでから、次のデータを書き込むまでの待ち時間を短縮する技術の開示がある。
【０００４】
一般的に、不揮発性半導体メモリは、Ｄｕａｌ  Ｐｏｒｔ  ＲＡＭ（揮発性半導体メモリ）のようなデータ書き込み用アドレスバスとデータ読み出し用アドレスバスとの２つのインターフェースを備えているものはない。そのため、データの書き込み処理と読み出し処理とを同時に実行することは困難である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３３９５８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、データ書き込み処理の高速化を図ることはできるが、データの書き込み処理と読み出し処理との両方を実行したい場合に、データ書き込み処理および読み出し処理の高速化を実現することは困難である。
【０００７】
例えば、不揮発性半導体メモリの全域Ｖｅｒｉｆｙ処理では、一般的に、全域（Ｖｅｒｉｆｙ処理の対象とする物理ブロックの全域）にデータを書き込んだ後、全域読み出し処理を実施しなければならない。具体的には、全域Ｖｅｒｉｆｙ処理を実行する場合、ホスト装置は、不揮発性半導体メモリを備える不揮発性記憶装置に対して、データ書き込み指示（Ｗｒｉｔｅコマンドの発行）を行い、不揮発性記憶装置においてデータ書き込み処理が終了した後、データ読み出し指示（Ｒｅａｄコマンドの発行）を行う必要がある。このため、ホスト装置がデータ書き込み指示（Ｗｒｉｔｅコマンドの発行）を行ってから、データ読み出し指示（Ｒｅａｄコマンドの発行）を行うまでの間に、いわゆる、ホストインターバルと呼ばれる待ち時間が発生する。
【０００８】
このように、不揮発性半導体メモリの全域Ｖｅｒｉｆｙ処理では、ホストインターバルによるオーバーヘッドが発生するため、全域Ｖｅｒｉｆｙ処理を高速化することは、困難である。
【０００９】
そこで、本発明は、上記問題点に鑑み、従来の不揮発性記憶システム、ホスト装置、不揮発性記憶装置、不揮発性メモリにおいて、定義されているＷｒｉｔｅコマンドとＲｅａｄコマンドとは別に、Ｒｅａｄ／Ｗｒｉｔｅコマンドを追加定義し、当該Ｒｅａｄ／Ｗｒｉｔｅコマンドにより、処理を実行することで、データの書き込みと読み出しの同時アクセスを仮想的に実現する不揮発性記憶システム、不揮発性記憶装置、および、メモリコントローラを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、第１の発明は、ホスト装置とデータ通信を行うことができる不揮発性記憶装置であって、不揮発性メモリと、不揮発性メモリを制御するメモリコントローラと、を備える。
【００１１】
メモリコントローラは、コマンド制御部と、メモリＩＦ部と、を備える。
【００１２】
コマンド制御部は、ホスト装置から、不揮発性メモリに対するデータ読み出し処理およびデータ書き込み処理の実行を指示するコマンドであるＲ／Ｗコマンドを受信した場合、読み出しアドレスと、書き込みアドレスと、書き込みデータとを取得する。
【００１３】
メモリＩＦ部は、不揮発性メモリの書き込みアドレスに、ホスト装置から受信した書き込みデータを書き込むように、不揮発性メモリを制御するとともに、不揮発性メモリの読み出しアドレスからデータを読み出すように、不揮発性メモリを制御する。
【００１４】
これにより、この不揮発性記憶装置では、Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）により、処理を実行することで、不揮発性メモリに対するデータの書き込みと読み出しの同時アクセスを仮想的に実現することができる。したがって、この不揮発性記憶装置では、例えば、Ｖｅｒｉｆｙ処理のようにデータ書き込み処理と読み出し処理とが頻繁に繰り返される処理において、ホストインターバル（ホスト装置の処理待ち時間）の発生を抑え、高速に処理を実行することができる。
【００１５】
第２の発明は、第１の発明であって、Ｒ／Ｗコマンドは、書き込みアドレスと、読み出しアドレスとを含む。
【００１６】
これにより、Ｒ／Ｗコマンドから、書き込みアドレス（例えば、書き込み論理アドレス）と読み出しアドレス（例えば、読み出し論理アドレス）とを抽出することができる。
【００１７】
第３の発明は、第１の発明であって、Ｒ／Ｗコマンドは、１つのアドレスを含む。
【００１８】
コマンド制御部は、Ｒ／Ｗコマンドに含まれるアドレスが１つである場合、当該アドレスを、書き込みアドレス（例えば、書き込み論理アドレス）および読み出しアドレス（例えば、読み出し論理アドレス）として取得する。
【００１９】
これにより、Ｒ／Ｗコマンドから、書き込みアドレスと読み出しアドレスとが同じ場合のＲ／Ｗコマンドのデータ量を少なくすることできるとともに、不揮発性記憶装置でのデータ読み出し処理および／またはデータ書き込み処理を適切に行うことができる。
【００２０】
第４の発明は、第１から第３のいずれかの発明であって、Ｒ／Ｗコマンドは、さらに、書き込みデータを含む。
【００２１】
これにより、Ｒ／Ｗコマンドから、書き込みデータを抽出することができる。
【００２２】
第５の発明は、第１から第４のいずれかの発明であって、Ｒ／Ｗコマンドは、不揮発性記憶装置の不揮発性メモリについての構成を指定するコマンド処理フラグをさらに含む。
【００２３】
これにより、Ｒ／Ｗコマンドにより、不揮発性記憶装置の不揮発性メモリについての構成を指定することができる。そして、コマンド処理フラグに基づいて、不揮発性記憶装置で、例えば、データ書き込み処理とデータ読み出し処理とを、並列処理により実行するか、それとも、直列処理により実行するかを切り替えることができる。
【００２４】
なお、「コマンド処理フラグ」は、不揮発性記憶装置が有する不揮発性メモリの個数を指定するものであってもよい。
【００２５】
第６の発明は、第１から第５のいずれかの発明であって、Ｒ／Ｗコマンドは、不揮発性記憶装置に実行させる処理の順番を指定するコマンドシーケンスフラグを含む。
【００２６】
これにより、Ｒ／Ｗコマンドのコマンドシーケンスフラグに基づいて、不揮発性記憶装置は、実行する処理の順番を特定することができる。そして、コマンドシーケンスフラグに基づいて、不揮発性記憶装置で、例えば、データ書き込み処理とデータ読み出し処理との処理の順番を切り替えることができる。
【００２７】
なお、「コマンドシーケンスフラグ」は、例えば、（１）データ読み出し処理をデータ書き込み処理よりも先に開始させる、あるいは、（２）データ書き込み処理をデータ読み出し処理よりも先に開始させる、等を指定するフラグ（情報）である。
【００２８】
第７の発明は、第１から第６のいずれかの発明であって、Ｒ／Ｗコマンドは、不揮発性記憶装置に実行させる機能を指定するファンクションフラグを含む。
【００２９】
これにより、Ｒ／Ｗコマンドのファンクションフラグに基づいて、不揮発性記憶装置は、実行する処理の内容（機能）を特定することができる。そして、不揮発性記憶装置は、ファンクションフラグで指定された処理（機能）を実行することができる。
【００３０】
第８の発明は、第７の発明であって、前記メモリコントローラは、ＣＲＣ生成部と、比較部と、ホストＩＦ部と、をさらに備える。
【００３１】
ＣＲＣ生成部は、不揮発性メモリからの読み出しデータからＣＲＣ値を取得する。
【００３２】
比較部は、ＣＲＣ値についての比較処理を行う。
【００３３】
ホストＩＦ部は、ホスト装置とデータを送受信するためのインターフェースである。
【００３４】
そして、ファンクションフラグにおいて、ベリファイ機能が指定されており、ホスト装置から、Ｒ／Ｗコマンドと、書き込みデータと、書き込みデータのＣＲＣ値とを受信した場合、比較部は、ホスト装置から受信した書き込みデータのＣＲＣ値と、ＣＲＣ生成部により、書き込みデータが不揮発性メモリに書き込まれたアドレスから読み出したデータから取得したＣＲＣ値とを比較し、比較結果を示す信号を取得し、ホストＩＦ部は、比較部により取得された比較結果を示す信号を、ホスト装置に送信する。
【００３５】
これにより、この不揮発性記憶装置では、ファンクションフラグに基づいて、ベリファイ処理（Ｖｅｒｉｆｙ処理）を実行することができる。この不揮発性記憶装置では、比較部により、ホスト装置から受信した書き込みデータのＣＲＣ値と、ＣＲＣ生成部により、書き込みデータが不揮発性メモリに書き込まれたアドレスから読み出したデータから取得したＣＲＣ値とを比較した結果が、ホストＩＦ部により、ホスト装置に送信される。したがって、ホスト装置は、この不揮発性記憶装置から受信した比較結果を確認するだけで、ベリファイ処理を実行することができる。その結果、ホスト装置での処理待ち時間（ホストインターバル）の発生を抑制することができる。
【００３６】
第９の発明は、不揮発性メモリを制御するメモリコントローラであって、コマンド制御部と、メモリＩＦ部と、を備える。
【００３７】
コマンド制御部は、ホスト装置から、不揮発性メモリに対するデータ読み出し処理およびデータ書き込み処理の実行を指示するコマンドであるＲ／Ｗコマンドを受信した場合、読み出しアドレスと、書き込みアドレスと、を取得する。
【００３８】
メモリＩＦ部は、不揮発性メモリの書き込みアドレスに、ホスト装置から受信した書き込みデータを書き込むように、不揮発性メモリを制御するとともに、不揮発性メモリの前記読み出しアドレスからデータを読み出すように、不揮発性メモリを制御する。
【００３９】
これにより、このメモリコントローラでは、Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）により、処理を実行することで、不揮発性メモリに対するデータの書き込みと読み出しの同時アクセスを仮想的に実現することができる。したがって、このメモリコントローラでは、例えば、Ｖｅｒｉｆｙ処理のようにデータ書き込み処理と読み出し処理とが頻繁に繰り返される処理において、ホストインターバル（ホスト装置の処理待ち時間）の発生を抑え、高速に処理を実行することができる。
【００４０】
第１０の発明は、第９の発明であって、Ｒ／Ｗコマンドは、１つのアドレスを含む。
【００４１】
コマンド制御部は、Ｒ／Ｗコマンドに含まれるアドレスが１つである場合、当該アドレスを、書き込みアドレスおよび読み出しアドレスとして取得する。
【００４２】
これにより、Ｒ／Ｗコマンドから、書き込みアドレスと読み出しアドレスとが同じ場合のＲ／Ｗコマンドのデータ量を少なくすることできるとともに、メモリコントローラでのデータ読み出し処理および／またはデータ書き込み処理を適切に行うことができる。
【００４３】
第１１の発明は、第９または第１０の発明であって、Ｒ／Ｗコマンドは、さらに、書き込みデータを含む。
【００４４】
これにより、Ｒ／Ｗコマンドから、書き込みデータを抽出することができる。
【００４５】
第１２の発明は、第９から第１１のいずれかの発明であって、Ｒ／Ｗコマンドは、メモリコントローラにおいて、実行される機能を指定するファンクションフラグを含む。
【００４６】
これにより、Ｒ／Ｗコマンドのファンクションフラグに基づいて、メモリコントローラは、実行する処理の内容（機能）を特定することができる。そして、メモリコントローラは、ファンクションフラグで指定された処理（機能）を実行することができる。
【００４７】
第１３の発明は、第１２の発明であって、ＣＲＣ生成部と、比較部と、ホストＩＦ部と、をさらに備える。
【００４８】
ＣＲＣ生成部は、不揮発性メモリからの読み出しデータからＣＲＣ値を取得する。
【００４９】
比較部は、ＣＲＣ値についての比較処理を行う。
【００５０】
ホストＩＦ部は、ホスト装置とデータを送受信するためのインターフェースである。
【００５１】
そして、ファンクションフラグにおいて、ベリファイ機能が指定されており、ホスト装置から、Ｒ／Ｗコマンドと、書き込みデータと、書き込みデータのＣＲＣ値とを受信した場合、比較部は、ホスト装置から受信した書き込みデータのＣＲＣ値と、ＣＲＣ生成部により、書き込みデータが不揮発性メモリに書き込まれたアドレスから読み出したデータから取得したＣＲＣ値とを比較し、比較結果を示す信号を取得する。そして、この場合、ホストＩＦ部は、比較部により取得された比較結果を示す信号を、前記ホスト装置に送信する。
【００５２】
これにより、このメモリコントローラでは、ファンクションフラグに基づいて、ベリファイ処理（Ｖｅｒｉｆｙ処理）を実行することができる。このメモリコントローラでは、比較部により、ホスト装置から受信した書き込みデータのＣＲＣ値と、ＣＲＣ生成部により、書き込みデータが不揮発性メモリに書き込まれたアドレスから読み出したデータから取得したＣＲＣ値とを比較した結果が、ホストＩＦ部により、ホスト装置に送信される。したがって、ホスト装置は、このメモリコントローラから受信した比較結果を確認するだけで、ベリファイ処理を実行することができる。その結果、ホスト装置での処理待ち時間（ホストインターバル）の発生を抑制することができる。
【００５３】
第１４の発明は、制御装置（例えば、メモリコントローラ）とデータ通信を行うことができる不揮発性メモリ装置であって、不揮発性メモリと、コマンド制御部と、メモリ制御部と、を備える。
【００５４】
コマンド制御部は、制御装置から、不揮発性メモリに対するデータ読み出し処理およびデータ書き込み処理の実行を指示するコマンドであるＲ／Ｗコマンドを受信した場合、読み出しアドレスと、書き込みアドレスとを取得する。
【００５５】
メモリ制御部は、不揮発性メモリの書き込みアドレスに、制御装置から受信した書き込みデータを書き込むように、不揮発性メモリを制御するとともに、不揮発性メモリの読み出しアドレスからデータを読み出すように、不揮発性メモリを制御する。
【００５６】
これにより、この不揮発性メモリ装置では、Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）により、処理を実行することで、不揮発性メモリに対するデータの書き込みと読み出しの同時アクセスを仮想的に実現することができる。したがって、この不揮発性メモリ装置では、例えば、Ｖｅｒｉｆｙ処理のようにデータ書き込み処理と読み出し処理とが頻繁に繰り返される処理において、ホストインターバル（例えば、制御装置と接続されているホスト装置の処理待ち時間）の発生を抑え、高速に処理を実行することができる。
【００５７】
第１５の発明は、第１４の発明であって、Ｒ／Ｗコマンドは、１つのアドレスを含む。
【００５８】
コマンド制御部は、Ｒ／Ｗコマンドに含まれるアドレスが１つである場合、当該アドレスを、書き込みアドレスおよび読み出しアドレスとして取得する。
【００５９】
これにより、Ｒ／Ｗコマンドから、書き込みアドレスと読み出しアドレスとが同じ場合のＲ／Ｗコマンドのデータ量を少なくすることできるとともに、不揮発性メモリ装置でのデータ読み出し処理および／またはデータ書き込み処理を適切に行うことができる。
【００６０】
第１６の発明は、第１４または第１５の発明であって、Ｒ／Ｗコマンドは、さらに、書き込みデータを含む。
【００６１】
これにより、Ｒ／Ｗコマンドから、書き込みデータを抽出することができる。
【００６２】
第１７の発明は、第１４から第１６のいずれかの発明であって、Ｒ／Ｗコマンドは、不揮発性メモリ装置において、実行される機能を指定するファンクションフラグを含む。
【００６３】
これにより、Ｒ／Ｗコマンドのファンクションフラグに基づいて、不揮発性メモリ装置は、実行する処理の内容（機能）を特定することができる。そして、不揮発性メモリ装置は、ファンクションフラグで指定された処理（機能）を実行することができる。
【００６４】
第１８の発明は、第１７の発明であって、ＣＲＣ生成部と、比較部と、ＩＦ部と、をさらに備える。
【００６５】
ＣＲＣ生成部は、不揮発性メモリからの読み出しデータからＣＲＣ値を取得する。
【００６６】
比較部は、ＣＲＣ値についての比較処理を行う。
【００６７】
ＩＦ部は、制御装置とデータを送受信するためのインターフェースである。
【００６８】
そして、ファンクションフラグにおいて、ベリファイ機能が指定されており、制御装置から、Ｒ／Ｗコマンドと、書き込みデータと、書き込みデータのＣＲＣ値とを受信した場合、比較部は、制御装置から受信した書き込みデータのＣＲＣ値と、ＣＲＣ生成部により、書き込みデータが不揮発性メモリに書き込まれたアドレスから読み出したデータから取得したＣＲＣ値とを比較し、比較結果を示す信号を取得する。また、上記の場合、ＩＦ部は、比較部により取得された比較結果を示す信号を、制御装置に送信する。
【００６９】
これにより、この不揮発性メモリ装置では、ファンクションフラグに基づいて、ベリファイ処理（Ｖｅｒｉｆｙ処理）を実行することができる。この不揮発性メモリ装置では、比較部により、ホスト装置から受信した書き込みデータのＣＲＣ値と、ＣＲＣ生成部により、書き込みデータが不揮発性メモリに書き込まれたアドレスから読み出したデータから取得したＣＲＣ値とを比較した結果が、ＩＦ部により、制御装置に送信される。したがって、制御装置（または制御装置に接続されたホスト装置）は、この不揮発性メモリ装置から受信した比較結果を確認するだけで、ベリファイ処理を実行することができる。その結果、制御装置および／または制御装置に接続されたホスト装置での処理待ち時間（ホストインターバル）の発生を抑制することができる。
【００７０】
第１９の発明は、ホスト装置と、第１から第８のいずれかの発明である不揮発性記憶装置とを備える不揮発性記憶システムである。
【００７１】
これにより、ホスト装置と、第１から第８のいずれかの発明である不揮発性記憶装置とを備える不揮発性記憶システムを実現することができる。つまり、第１から第８のいずれかの発明と同様の効果を奏する不揮発性記憶システムを実現することができる。
【発明の効果】
【００７２】
本発明によれば、従来の不揮発性記憶システム、ホスト装置、不揮発性記憶装置、不揮発性メモリにおいて、定義されているＷｒｉｔｅコマンドとＲｅａｄコマンドとは別に、Ｒｅａｄ／Ｗｒｉｔｅコマンドを追加定義し、当該Ｒｅａｄ／Ｗｒｉｔｅコマンドにより、処理を実行することで、データの書き込みと読み出しの同時アクセスを仮想的に実現する不揮発性記憶システム、不揮発性記憶装置、および、メモリコントローラを実現することができる。
【図面の簡単な説明】
【００７３】
【図１】第１実施形態に係る不揮発性記憶システム１０００の概略構成図。
【図２】コマンドシーケンスの一例を示す図。
【図３】Ｒ／Ｗコマンドのコマンドフォーマット（一例）を示す図。
【図４】（ａ）従来技術により、全域Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャート。（ｂ）第１実施形態の不揮発性記憶システム１０００において、全域Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャート。
【図５】第２実施形態に係る不揮発性記憶システム２０００の概略構成図。
【図６】コマンドシーケンスの一例を示す図。
【図７】Ｒ／Ｗコマンドのコマンドフォーマット（一例）を示す図。
【図８】（ａ）従来技術により、単発Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャート。（ｂ）第２実施形態の不揮発性記憶システム２０００において、単発Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャート。
【図９】第３実施形態に係る不揮発性記憶システム３０００の概略構成図。
【図１０】コマンドシーケンスの一例を示す図。
【図１１】Ｒ／Ｗコマンドのコマンドフォーマット（一例）を示す図。
【図１２】第３実施形態の不揮発性記憶システム３０００において、全域Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャート。
【発明を実施するための形態】
【００７４】
［第１実施形態］
第１実施形態について、図面を参照しながら、以下、説明する。
【００７５】
＜１．１：不揮発性記憶システムの構成＞
図１は、第１実施形態に係る不揮発性記憶システム１０００の概略構成図である。
【００７６】
不揮発性記憶システム１０００は、図１に示すように、ホスト装置１と、不揮発性記憶装置２と、備える。ホスト装置１と不揮発性記憶装置２とは、例えば、バスで接続されている。
【００７７】
不揮発性記憶装置２は、図１に示すように、メモリコントローラＭＣと、不揮発性メモリＭＥＭと、を備える。
【００７８】
メモリコントローラＭＣは、図１に示すように、ホストＩＦ部２１と、コマンド制御部２２と、バッファ２３と、アドレス変換部２４と、メモリＩＦ部２５と、誤り訂正処理部２６と、制御部２７と、を備える。
【００７９】
ホスト装置１は、バス（クロック信号、データ、コマンド等を送受信するための通信路）を介して、不揮発性記憶装置２と電気的に接続することが可能である。ホスト装置１は、不揮発性記憶装置２に対して、コマンド、データ等を送信し、および／または、不揮発性記憶装置２から、ステータス信号やデータ等を受信する。
【００８０】
不揮発性記憶装置２は、データを記憶することができる不揮発性メモリＭＥＭと、不揮発性メモリＭＥＭを制御するメモリコントローラＭＣとを備える。不揮発性記憶装置は、バス（クロック信号、データ、コマンド等を送受信するための通信路）を介して、ホスト装置１と電気的に接続することが可能である。不揮発性記憶装置２は、ホスト装置１から、コマンド、データ等を受信し、および／または、ホスト装置１へ、ステータス信号やデータ等を送信する。
【００８１】
不揮発性メモリＭＥＭは、例えば、ＮＡＮＤフラッシュメモリであり、メモリコントローラＭＣの制御に従い、データの書き込みおよび／または読み出しを行うことができるメモリである。また、不揮発性メモリは、メモリＩＦ部へ、不揮発性メモリのアクセス状況等を示すステータス信号（Ｒｅａｄｙ信号／Ｂｕｓｙ信号）やフラグ信号等を出力する。
【００８２】
メモリコントローラＭＣは、不揮発性メモリＭＥＭのデータの書き込み処理および／または読み出し処理の制御を行う。メモリコントローラＭＣは、図１に示すように、ホストＩＦ部２１と、コマンド制御部２２と、バッファ２３と、アドレス変換部２４と、メモリＩＦ部２５と、誤り訂正処理部２６と、制御部２７と、を備える。
【００８３】
ホストＩＦ部２１は、ホスト装置１とのインターフェース部である。ホストＩＦ部２１は、例えば、バスにより、ホスト装置１と接続され、バスを介して、ホスト装置１から、データ、コマンド等を受信する。また、ホストＩＦ部は、バスを介して、ホスト装置１へ、ステータス信号、データ等を送信する。
【００８４】
ホストＩＦ部２１は、ホスト装置１から受信したコマンドを、コマンド制御部２２に出力する。
【００８５】
また、ホストＩＦ部２１は、制御部２７や誤り訂正処理部２６から出力されるデータ（読み出しデータ）やステータス信号を入力し、入力したデータ（読み出しデータ）やステータス信号を、バスを介して、ホスト装置１へ送信する。
【００８６】
コマンド制御部２２は、ホストＩＦ部２１からの出力と制御部２７から出力されるステータス信号（不揮発性メモリの状態を示すステータス信号、フラグ信号等）とを入力とする。コマンド制御部２２は、ホストＩＦ部２１から出力されるコマンドをデコードし、当該コマンドで指定されている論理アドレスを取得し、デコードしたコマンドに関する情報（以下、単に、「コマンド」という。）と、取得した論理アドレスの情報（以下、単に、「論理アドレス」という。）とをアドレス変換部２４に出力する。また、コマンド制御部２２は、コマンドの種別に応じた処理を行う。
【００８７】
例えば、（１）ホストＩＦ部２１から入力されたコマンドがＲｅａｄコマンドである場合、コマンド制御部２２は、当該コマンドから読み出し論理アドレスを抽出し、抽出した読み出し論理アドレスをアドレス変換部２４に出力する。（２）ホストＩＦ部２１から入力されたコマンドがＷｒｉｔｅコマンドである場合、コマンド制御部２２は、当該コマンドから書き込み論理アドレスを抽出し、抽出した書き込み論理アドレスをアドレス変換部２４に出力するともに、ホストＩＦ部２１から入力された書き込みデータをバッファ２３に格納（出力）する。（３）ホストＩＦ部２１から入力されたコマンドがＲ／Ｗコマンドである場合、コマンド制御部２２は、当該コマンドから読み出し論理アドレスおよび書き込みアドレスを抽出し、それぞれ、所定のタイミング（例えば、制御部２７から出力されるステータス信号により決定されるタイミング）で、抽出した読み出し論理アドレスと書き込み論理アドレスとをアドレス変換部２４に出力する。また、コマンド制御部２２は、ホストＩＦ部２１から入力された書き込みデータをバッファ２３に格納（出力）する（詳細については、後述。）。
【００８８】
バッファ２３は、コマンド制御部２２から出力されるデータを記憶するためのバッファである。バッファ２３は、コマンド制御部２２から入力されたデータであって、記憶保持しているデータを、メモリＩＦ部２５に出力する。
【００８９】
アドレス変換部２４は、コマンド制御部２２から出力されるコマンドと論理アドレスとを入力する。また、アドレス変換部２４は、論理アドレス／物理アドレス変換テーブルを有している。アドレス変換部２４は、論理アドレス／物理アドレス変換テーブルに基づいて、コマンド制御部２２から入力された論理アドレスを物理アドレスに変換する。そして、アドレス変換部２４は、当該物理アドレスに関する情報（以下、単に、「物理アドレス」という。）と、コマンドとをメモリＩＦ部２５に出力する。
【００９０】
メモリＩＦ部２５は、不揮発性メモリＭＥＭに対してデータを書き込む処理、および／または、不揮発性メモリＭＥＭからデータを読み出す処理の制御を行うインターフェース部である。
【００９１】
不揮発性メモリＭＥＭに対してデータを書き込む処理を行う場合、メモリＩＦ部２５は、アドレス変換部２４から出力されるコマンドおよび物理アドレス（書き込み物理アドレス）と、バッファ２３から出力される書き込みデータとを入力する。そして、メモリＩＦ部２５は、不揮発性メモリＭＥＭに対して、コマンド（Ｗｒｉｔｅコマンド）と物理アドレス（書き込み物理アドレス）と書き込みデータとを出力し、不揮発性メモリＭＥＭにおいて、当該物理アドレス（書き込み物理アドレス）に、バッファ２３から出力される書き込みデータが書き込まれるように、第１不揮発性メモリＭ１に対して、データ書き込み制御を行う。
【００９２】
不揮発性メモリＭＥＭからデータを読み出す処理を行う場合、メモリＩＦ部２５は、アドレス変換部２４から出力されるコマンドおよび物理アドレス（読み出し物理アドレス）を入力する。そして、メモリＩＦ部２５は、不揮発性メモリＭＥＭに対して、コマンド（Ｒｅａｄコマンド）と物理アドレス（読み出し物理アドレス）とを出力し、第１不揮発性メモリＭ１において、当該物理アドレス（読み出し物理アドレス）に、記憶されているデータを読み出すように、不揮発性メモリＭＥＭに対して、データ読み出し制御を行う。
【００９３】
また、メモリＩＦ部２５は、不揮発性メモリＭＥＭから読み出したデータを誤り訂正処理部２６に出力する。また、メモリＩＦ部２５は、不揮発性メモリＭＥＭから受信したステータス信号やフラグ信号等を制御部２７に出力する。
【００９４】
誤り訂正処理部２６は、メモリＩＦ部２５から出力される読み出しデータを入力する。誤り訂正処理部は、入力された読み出しデータに対して、誤り訂正処理を行い、処理後の読み出しデータをホストＩＦ部２１に出力する。
【００９５】
制御部２７は、メモリＩＦ部２５から出力されるステータス信号やフラグ信号を入力する。制御部２７は、メモリＩＦ部２５からＲｅａｄｙ終了フラグ信号が入力された場合、当該Ｒｅａｄｙ終了フラグ信号をコマンド制御部２２に出力する。また、制御部２７は、メモリＩＦ部２５からＲｅａｄｙ信号（「Ｒｅａｄｙ」を示すステータス信号）が入力された場合、当該Ｒｅａｄｙ信号をホストＩＦ部２１に出力する。
【００９６】
＜１．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム１０００の動作について、図面を参照しながら、説明する。なお、本実施形態では、不揮発性記憶システム１０００が、１個の不揮発性メモリＭＥＭを備え、ホスト装置１から不揮発性記憶装置２に対して、（１）データ読み出し処理、（２）データ書き込み処理の順に処理を実行するよう指示するＲ／Ｗコマンドが発行された場合を例に説明する。また、以下では、図１に付した処理番号（図１中に括弧で付した番号）の順に、説明する。
【００９７】
≪処理（１）≫
ホスト装置１は、不揮発性記憶装置２のホストＩＦ部２１に対して、（１）データ読み出し処理、（２）データ書き込み処理の順に処理を実行するよう指示するＲ／Ｗコマンドを発行（送信）する。また、ホスト装置は、当該Ｒ／Ｗコマンドによりデータ書き込み処理を行う書き込みデータＷｒｉｔｅＤａｔａを不揮発性記憶装置２のホストＩＦ部２１に送信する。
【００９８】
≪処理（２）≫
ホストＩＦ部２１は、ホスト装置１から受信したＲ／Ｗコマンド、および書き込みデータＷｒｉｔｅＤａｔａをコマンド制御部２２に転送（出力）する。
【００９９】
≪処理（３）≫
コマンド制御部２２は、ホストＩＦ部２１から受信したＲ／Ｗコマンドをデコードし、読み出し論理アドレスを抽出するとともに、メモリＩＦ部２５が不揮発性メモリＭＥＭからデータを読み出すために、メモリＩＦ部２５から不揮発性メモリＭＥＭに出力されるＲｅａｄコマンドを生成する。そして、コマンド制御部２２は、Ｒ／Ｗコマンドから抽出した読み出し論理アドレス（Ｒｅａｄアドレス）を、アドレス変換部２４に転送（出力）する。
【０１００】
≪処理（４）≫
コマンド制御部２２は、ホストＩＦ部２１から受信した書き込みデータＷｒｉｔｅＤａｔａをバッファ２３に格納する。
【０１０１】
≪処理（５）≫
アドレス変換部２４は、論理アドレス／物理アドレス変換テーブルに基づいて、コマンド制御部２２から受信した読み出し論理アドレスを読み出し物理アドレスに変換する。そして、アドレス変換部２４は、コマンド制御部２２から受信したＲｅａｄコマンドと読み出し物理アドレス（Ｒｅａｄアドレス）とをメモリＩＦ部２５に出力する。
【０１０２】
≪処理（６）≫
メモリＩＦ部２５は、アドレス変換部２４から受信したＲｅａｄコマンドと読み出し物理アドレス（Ｒｅａｄアドレス）とを不揮発性メモリＭＥＭに出力する。これにより、不揮発性メモリＭＥＭでは、メモリＩＦ部２５から受信した読み出し物理アドレス（Ｒｅａｄアドレス）のデータを読み出す処理を実行する。
【０１０３】
≪処理（７）≫
不揮発性メモリＭＥＭは、メモリＩＦ部２５から受信したＲｅａｄコマンドに従い、読み出し物理アドレス（Ｒｅａｄアドレス）から読み出したデータＲｅａｄＤａｔａをメモリＩＦ部２５に出力する。
【０１０４】
≪処理（８）≫
メモリＩＦ部２５は、不揮発性メモリＭＥＭから受信した読み出しデータＲｅａｄＤａｔａを誤り訂正処理部２６に出力する。
【０１０５】
≪処理（９）≫
誤り訂正処理部２６は、メモリＩＦ部２５から受信した読み出しデータＲｅａｄＤａｔａに対して誤り訂正処理を実行し、読み出しデータＲｅａｄＤａｔａに誤りがある場合は訂正し、ホストＩＦ部２１に出力する。
【０１０６】
≪処理（１０）≫
ホストＩＦ部２１は、誤り訂正処理部２６から受信した誤り訂正処理後の読み出しデータＲｅａｄＤａｔａをホスト装置１に転送（出力）する。
【０１０７】
≪処理（１１）≫
不揮発性メモリＭＥＭは、読み出しデータＲｅａｄＤａｔａの読み出し処理が終了し、当該読み出しデータＲｅａｄＤａｔａの出力が完了すると、Ｒｅａｄ終了フラグをメモリＩＦ部２５に出力する。
【０１０８】
≪処理（１２）≫
メモリＩＦ部２５は、不揮発性メモリＭＥＭから受信したＲｅａｄ終了フラグを制御部２７に転送する。
【０１０９】
≪処理（１３）≫
制御部２７は、メモリＩＦ２５から受信したＲｅａｄ終了フラグをコマンド制御部２２に転送する。
【０１１０】
≪処理（１４）≫
コマンド制御部２２は、制御部２７からＲｅａｄ終了フラグを受信すると、Ｗｒｉｔｅコマンドと、Ｒ／Ｗコマンドに格納されている書き込み論理アドレス（Ｗｒｉｔｅアドレス）とをアドレス変換部２４に出力する。
【０１１１】
なお、Ｗｒｉｔｅコマンドは、メモリＩＦ部２５が不揮発性メモリＭＥＭへデータを書き込むために、メモリＩＦ部２５から不揮発性メモリＭＥＭに出力されるコマンドである。コマンド制御部２２は、Ｒ／Ｗコマンドを受信した場合、Ｗｒｉｔｅコマンドを生成するものとする。
【０１１２】
≪処理（１５）≫
アドレス変換部２４は、論理アドレス／物理アドレス変換テーブルに基づいて、コマンド制御部２２から受信した書き込み論理アドレス（Ｗｒｉｔｅアドレス）を、書き込み物理アドレスに変換する。そして、アドレス変換部２４は、Ｗｒｉｔｅコマンドと、書き込み物理アドレスとをメモリＩＦ部２５に出力する。
【０１１３】
≪処理（１６）≫
バッファ２３は、コマンド制御部２２から受信した書き込みデータＷｒｉｔｅＤａｔａをメモリＩＦ部２５に転送する。
【０１１４】
≪処理（１７）≫
メモリＩＦ部２５は、アドレス変換部２４から受信したＷｒｉｔｅコマンドおよび書き込み物理アドレスと、バッファ２３から受信した書き込みデータＷｒｉｔｅＤａｔａと、を不揮発性メモリＭＥＭに出力する。
【０１１５】
不揮発性メモリＭＥＭは、メモリＩＦ２５から受信したＷｒｉｔｅコマンドに従い、書き込み物理アドレスに、書き込みデータＷｒｉｔｅＤａｔａを書き込む処理を開始する。
【０１１６】
≪処理（１８）≫
不揮発性メモリＭＥＭは、データ書き込み処理が完了すると、Ｒｅａｄｙ信号（不揮発性メモリＭＥＭが「Ｒｅａｄｙ」状態であることを示すステータス信号）をメモリＩＦ部２５に出力する。
【０１１７】
≪処理（１９）≫
メモリＩＦ部２５は、不揮発性メモリＭＥＭから受信したＲｅａｄｙ信号を制御部２７に転送する。
【０１１８】
≪処理（２０）≫
制御部２７は、メモリＩＦ部２５から受信したＲｅａｄｙ信号をホストＩＦ部２１に転送する。
【０１１９】
≪処理（２１）≫
ホストＩＦ部２１は、制御部２７から受信したＲｅａｄｙ信号をホスト装置１に送信する。
【０１２０】
以上により、不揮発性記憶装置２では、ホスト装置１からＲ／Ｗコマンドを受信した場合に、当該Ｒ／Ｗコマンドにより指示されているデータ読み出し処理およびデータ書き込み処理を実行することができる。
【０１２１】
図２に、不揮発性記憶システム１０００において、Ｒ／Ｗコマンドによる処理が実行される場合のコマンドシーケンス例を示す。
【０１２２】
図２に示すように、ホスト装置１が不揮発性記憶装置２のメモリコントローラＭＣに対して、書き込みデータＷｒｉｔｅＤａｔａとともに、Ｒ／Ｗコマンドを発行すると（シーケンスＳＨ１、ＳＨ２）、メモリコントローラＭＣは、不揮発性メモリＭＥＭに対して、Ｒｅａｄコマンドを発行する（シーケンスＳＳ１）。そして、不揮発性メモリＭＥＭのステータスが「Ｒｅａｄｙ」（Ｒｅａｄ  Ｒｅａｄｙ）になると（シーケンスＳＳ２）、Ｒｅａｄコマンドで指示した読み出し物理アドレスから読み出されたデータＲｅａｄＤａｔａが、不揮発性メモリＭＥＭからメモリコントローラＭＣに出力される（シーケンスＳＳ３）。
【０１２３】
さらに、メモリコントローラＭＣは、不揮発性メモリＭＥＭに対して、書き込みデータＷｒｉｔｅＤａｔａとともにＷｒｉｔｅコマンドを発行する（シーケンスＳＳ４）。そして、不揮発性メモリＭＥＭは、当該Ｗｒｉｔｅコマンドで指示された書き込み物理アドレスに、書き込みデータＷｒｉｔｅＤａｔａを書き込む。不揮発性メモリＭＥＭは、データ書き込み中は、ステータス信号を「Ｂｕｓｙ」（Ｗｒｉｔｅ  Ｂｕｓｙ）にし、データ書き込み処理が終了すると、ステータス信号を「Ｒｅａｄｙ」（Ｗｒｉｔｅ  Ｒｅａｄｙ）にして、ステータス信号を、メモリコントローラＭＣに出力する。
【０１２４】
図２から分かるように、ホスト装置１は、Ｒ／Ｗコマンドを発行するだけで、不揮発性記憶装置２において、データ読み出し処理およびデータ書き込み処理が実行されるので、ホストインターバル（不揮発性記憶装置２に対して、Ｒｅａｄコマンドを発行してからＷｒｉｔｅコマンドを発行するまでの待ち時間）が発生することはない。
【０１２５】
なお、上記では、Ｒ／Ｗコマンドに、書き込みデータＷｒｉｔｅＤａｔａが含まれない場合について説明したが、これに限定されることはない。例えば、図３に示すように、書き込みデータＷｒｉｔｅＤａｔａは、Ｒ／Ｗコマンドに含まれるものであってもよい。
【０１２６】
図３は、Ｒ／Ｗコマンドのコマンドフォーマット（一例）を示す図である。
【０１２７】
図３に示すように、Ｒ／Ｗコマンドは、コマンド識別子（コマンドＩＤ）と、書き込み論理アドレスと、読み出し論理アドレスと、書き込みデータと、を含む。なお、書き込みデータは、オプションであり、Ｒ／Ｗコマンドに含めなくてもよい。Ｒ／Ｗコマンドに書き込みデータを含めない場合、Ｒ／Ｗコマンドとともに、書き込みデータを、ホスト装置１から不揮発性記憶装置２に送信するようにすればよい。
【０１２８】
以上のように、不揮発性記憶システム１０００では、Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）を追加定義し、当該Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）により、処理を実行することで、不揮発性メモリＭＥＭに対するデータの書き込みと読み出しの同時アクセスを仮想的に実現することができる。
【０１２９】
ここで、不揮発性記憶システム１０００において、全域Ｖｅｒｉｆｙ処理（不揮発性メモリＭＥＭの１つの物理ブロックの全ページに対するＶｅｒｉｆｙ処理）を実行する場合について、従来技術と比較しながら、図４を用いて説明する。
【０１３０】
図４（ａ）は、従来技術により、全域Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャートである。図４（ｂ）は、不揮発性記憶システム１０００において、全域Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャートである。
【０１３１】
図４（ａ）に示すように、従来技術により、全域Ｖｅｒｉｆｙ処理を実行する場合、まず、ページ番号０ｘ０のページに対して、データを書き込むために、ホスト装置から不揮発性記憶装置に対して、Ｗｒｉｔｅコマンドが発行される（ステップＳＡ１）。そして、その後、ページ番号０ｘ０のページに書き込まれたデータが正しいデータであるか否かを判断するために、ホスト装置は、不揮発性記憶装置に対して、ページ番号０ｘ０のページのデータを読み出すためのＲｅａｄコマンドを発行する（ステップＳＡ２）。
【０１３２】
上記処理を、ページ番号１〜Ｎに対して、実行することで、全域Ｖｅｒｉｆｙ処理が完了する。つまり、従来技術により全域Ｖｅｒｉｆｙ処理を実行するために、ホスト装置が、不揮発性記憶装置に対して発行するコマンドの総数は、「２Ｎ＋２」となる。
【０１３３】
不揮発性記憶システム１０００による全域Ｖｅｒｉｆｙ処理の場合、図４（ｂ）に示すように、まず、ページ番号０ｘ０のページに対して、データを書き込むために、ホスト装置から不揮発性記憶装置に対して、Ｗｒｉｔｅコマンドが発行される（ステップＳＢ１）。
【０１３４】
次に、ホスト装置１は、不揮発性記憶装置２に対して、読み出し論理アドレスを、ページ番号０ｘ０のページの論理アドレスとし、書き込み論理アドレスを、ページ番号０ｘ１のページの論理アドレスとして、Ｒ／Ｗコマンドを発行する（ステップＳＢ２）。
【０１３５】
不揮発性記憶システム１０００では、ステップＳＢ２と同様の処理が、ページ番号をインクリメントしながら、繰り返し実行される。具体的には、この処理は、ホスト装置１が、不揮発性記憶装置２に対して、読み出し論理アドレスを、ページ番号Ｎ−１のページの論理アドレスとし、書き込み論理アドレスを、ページ番号Ｎのページの論理アドレスとして、Ｒ／Ｗコマンドを発行するまで、繰り返し実行される（ステップＳＢ３）。
【０１３６】
そして、ステップＳＢ３の処理後、ページ番号Ｎのページに書き込まれたデータが正しいデータであるか否かを判断するために、ホスト装置は、不揮発性記憶装置に対して、ページ番号Ｎのページのデータを読み出すためのＲｅａｄコマンドを発行する（ステップＳＢ４）。
【０１３７】
これにより、不揮発性記憶システム１０００での全域Ｖｅｒｉｆｙ処理が完了する。
【０１３８】
図４（ｂ）から分かるように、不揮発性記憶システム１０００での全域Ｖｅｒｉｆｙ処理において、ホスト装置１が不揮発性記憶装置２に対して発行するコマンドの総数は、「Ｎ＋２」であり、従来技術の場合の発行コマンド総数「２Ｎ＋２」の約半分である。特に、Ｎが大きい場合（１つの物理ブロックに含まれるページ数Ｎが多い場合）において、全域Ｖｅｒｉｆｙ処理を実行する場合、不揮発性記憶システム１０００でのコマンド発行数と、従来技術でのコマンド発行数との差が大きくなる。したがって、Ｎが大きい場合（１つの物理ブロックに含まれるページ数Ｎが多い場合）、不揮発性記憶システム１０００において、全域Ｖｅｒｉｆｙ処理を実行すると、従来技術に比べて、コマンド発行数を大幅に少なくすることができる。その結果、不揮発性記憶システム１０００では、従来技術により発生するコマンド発行間隔のホストインターバルを効果的に抑制し、処理時間を大幅に短縮することができる。
【０１３９】
以上のように、不揮発性記憶システム１０００では、Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）により、処理を実行することで、不揮発性メモリＭＥＭに対するデータの書き込みと読み出しの同時アクセスを仮想的に実現することができるので、例えば、Ｖｅｒｉｆｙ処理のようにデータ書き込み処理と読み出し処理とが頻繁に繰り返される処理において、ホストインターバルの発生を抑え、高速に処理を実行することができる。
【０１４０】
［第２実施形態］
次に、第２実施形態について、説明する。
【０１４１】
＜２．１：不揮発性記憶システムの構成＞
図５は、第２実施形態に係る不揮発性記憶システム２０００の概略構成図である。
【０１４２】
不揮発性記憶システム２０００は、図５に示すように、ホスト装置１と、不揮発性記憶装置２Ａと、備える。ホスト装置１と不揮発性記憶装置２Ａとは、例えば、バスで接続されている。
【０１４３】
不揮発性記憶装置２Ａは、図５に示すように、メモリコントローラＭＣＡと、不揮発性メモリＭＥＭと、を備える。
【０１４４】
メモリコントローラＭＣＡは、図５に示すように、第１実施形態のメモリコントローラＭＣにおいて、コマンド制御部２２をコマンド制御部２２Ａに置換し、制御部２７を制御部２７Ａに置換し、ＣＲＣ生成部２８を追加した構成を有している。
【０１４５】
それ以外については、本実施形態の不揮発性記憶システム２０００は、第１実施形態の不揮発性記憶システム１０００と同様である。以下では、本実施形態に特有の部分を中心に説明し、上記実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
【０１４６】
コマンド制御部２２Ａは、第１実施形態のコマンド制御部２２の機能に加えて、以下の機能を有する。すなわち、コマンド制御部２２Ａは、ホストＩＦ部２１がホスト装置１から受信した、Ｒ／Ｗコマンドと、ファンクションフラグと、書き込みデータＷｒｉｔｅＤａｔａと、当該書き込みデータのＣＲＣ値と、を入力する。また、コマンド制御部２２Ａは、ホストＩＦ部２１から受信したファンクションフラグと、書き込みデータのＣＲＣ値（以下、「ＣＲＣ（Ｗ）」と表記する。）と、を制御部２７Ａに出力する。
【０１４７】
制御部２７Ａは、第１実施形態の制御部２７の機能に加えて、以下の機能を有する。すなわち、制御部２７Ａは、コマンド制御部２２Ａから出力されるＣＲＣ値ＣＲＣ（Ｗ）と、ＣＲＣ生成部２８から出力されるＣＲＣ値（読み出しデータから算出されたＣＲＣ値）（以下、「ＣＲＣ（Ｒ）」と表記する。）と、を入力する。制御部２７Ａは、ＣＲＣ（Ｗ）とＣＲＣ（Ｒ）とを比較し、その比較結果を示す信号をホストＩＦ部２１に出力する。
【０１４８】
ＣＲＣ生成部２８は、誤り訂正処理部２６から出力される誤り訂正処理後の読み出しデータＲｅａｄＤａｔａを入力し、入力した読み出しデータＲｅａｄＤａｔａから、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）値を算出する。そして、ＣＲＣ生成部は、算出したＣＲＣ値ＣＲＣ（Ｒ）を制御部２７Ａに出力する。
【０１４９】
＜２．２：不揮発性記憶装置の動作＞
以上のように構成された不揮発性記憶システム２０００の動作について、図面を参照しながら、説明する。なお、本実施形態では、不揮発性記憶システム２０００が、１個の不揮発性メモリＭＥＭを備え、ホスト装置１から不揮発性記憶装置２Ａに対して、Ｒ／Ｗコマンド、ファンクションフラグ、書き込みデータＷｒｉｔｅＤａｔａ、および、当該書き込みデータのＣＲＣ値（ＣＲＣ（Ｗ））が送信された場合の動作について、説明する。
【０１５０】
また、ファンクションフラグには、Ｖｅｒｉｆｙ処理機能を指定しているものとする。
【０１５１】
また、Ｒ／Ｗコマンドは、書き込み論理アドレスと読み出し論理アドレスとを同一アドレスに指定し、（１）データ書き込み処理、（２）データ読み出し処理の順に処理を実行するよう指示するＲ／Ｗコマンドであるものとする。
【０１５２】
以下では、図５に付した処理番号（図５中に括弧で付した番号）の順に、説明する。
【０１５３】
≪処理（１）≫
ホスト装置１は、不揮発性記憶装置２ＡのホストＩＦ部２１に対して、Ｒ／Ｗコマンド、ファンクションフラグ、書き込みデータＷｒｉｔｅＤａｔａ、およびＣＲＣ値ＣＲＣ（Ｗ）を送信する。
【０１５４】
≪処理（２）≫
ホストＩＦ部２１は、ホスト装置１から受信したＲ／Ｗコマンドおよび書き込みデータＷｒｉｔｅＤａｔａをコマンド制御部２２Ａに転送（出力）する。
【０１５５】
≪処理（３）≫
コマンド制御部２２Ａは、ホストＩＦ部２１から受信したＲ／Ｗコマンドをデコードし、読み出し論理アドレスを抽出するとともに、メモリＩＦ部２５が不揮発性メモリＭＥＭに書き込みデータＷｒｉｔｅＤａｔａを書き込むために、メモリＩＦ部２５から不揮発性メモリＭＥＭに出力されるＷｒｉｔｅコマンドと、Ｒ／Ｗコマンドから抽出した書き込み論理アドレスを、アドレス変換部２４に転送（出力）する。
【０１５６】
≪処理（４）≫
コマンド制御部２２Ａは、ホストＩＦ部２１から受信したファンクションフラグを制御部２７Ａに出力する。制御部２７Ａは、コマンド制御部２２Ａから出力されたファンクションフラグから、どのような機能を実施するか判断する。本実施形態では、ファンクションフラグには、Ｖｅｒｉｆｙ処理機能が指定されているので、制御部２７Ａは、当該ファンクションフラグに基づいて、Ｖｅｒｉｆｙ処理を実行するモードに、不揮発性記憶装置２Ａを設定する。
【０１５７】
≪処理（５）≫
コマンド制御部２２Ａは、ホストＩＦ部２１から受信した書き込みデータＷｒｉｔｅＤａｔａをバッファ２３に格納する。
【０１５８】
≪処理（６）≫
コマンド制御部２２Ａは、ホストＩＦ部２１から受信したＣＲＣ（Ｗ）を制御部２７Ａに出力する。
【０１５９】
≪処理（７）≫
アドレス変換部２４は、論理アドレス／物理アドレス変換テーブルに基づいて、コマンド制御部２２Ａから受信した書き込み論理アドレスを書き込み物理アドレスに変換する。そして、アドレス変換部２４は、コマンド制御部２２Ａから受信したＷｒｉｔｅコマンドと書き込み物理アドレスとをメモリＩＦ部２５に出力する。
【０１６０】
≪処理（８）≫
バッファ２３は、コマンド制御部２２Ａから受信した書き込みデータＷｒｉｔｅＤａｔａをメモリＩＦ部２５に転送する。
【０１６１】
≪処理（９）≫
メモリＩＦ部２５は、アドレス変換部２４から受信したＷｒｉｔｅコマンドと書き込み物理アドレスとを不揮発性メモリＭＥＭに出力する。これにより、不揮発性メモリＭＥＭでは、メモリＩＦ部２５から受信した書き込み物理アドレスに、書き込みデータＷｒｉｔｅＤａｔａを書き込む処理を実行する。
【０１６２】
≪処理（１０）≫
不揮発性メモリＭＥＭは、データ書き込み処理が完了すると、Ｒｅａｄｙ信号（不揮発性メモリＭＥＭが「Ｒｅａｄｙ」状態であることを示すステータス信号）をメモリＩＦ部２５に出力する。
【０１６３】
≪処理（１１）≫
メモリＩＦ部２５は、不揮発性メモリＭＥＭから受信したＲｅａｄｙ信号を制御部２７Ａに出力する。
【０１６４】
≪処理（１２）≫
制御部２７Ａは、メモリＩＦ部２５から受信したＲｅａｄｙ信号をコマンド制御部２２Ａに出力する。
【０１６５】
≪処理（１３）≫
コマンド制御部２２Ａは、制御部２７ＡからＲｅａｄｙ信号を受信すると、Ｒｅａｄコマンドと、Ｒ／Ｗコマンドから抽出した読み出し論理アドレスとをアドレス変換部２４に出力する。
【０１６６】
≪処理（１４）≫
アドレス変換部２４は、論理アドレス／物理アドレス変換テーブルに基づいて、コマンド制御部２２Ａから受信した読み出し論理アドレスを読み出し物理アドレスに変換する。そして、アドレス変換部２４は、コマンド制御部２２から受信したＲｅａｄコマンドと読み出し物理アドレス（Ｒｅａｄアドレス）とをメモリＩＦ部２５に出力する。
【０１６７】
≪処理（１５）≫
メモリＩＦ部２５は、アドレス変換部２４から受信したＲｅａｄコマンドと読み出し物理アドレスとを不揮発性メモリＭＥＭに出力する。これにより、不揮発性メモリＭＥＭでは、メモリＩＦ部２５から受信した読み出し物理アドレスのデータを読み出す処理を実行する。
【０１６８】
≪処理（１６）≫
不揮発性メモリＭＥＭは、メモリＩＦ部２５から受信したＲｅａｄコマンドに従い、読み出し物理アドレスから読み出したデータＲｅａｄＤａｔａをメモリＩＦ部２５に出力する。
【０１６９】
≪処理（１７）≫
メモリＩＦ部２５は、不揮発性メモリＭＥＭから受信した読み出しデータＲｅａｄＤａｔａを誤り訂正処理部２６に出力する。
【０１７０】
≪処理（１８）≫
誤り訂正処理部２６は、メモリＩＦ部２５から受信した読み出しデータＲｅａｄＤａｔａに対して誤り訂正処理を実行し、読み出しデータＲｅａｄＤａｔａに誤りがある場合は訂正し、ＣＲＣ生成部２８に出力する。
【０１７１】
≪処理（１９）≫
ＣＲＣ生成部２８は、誤り訂正処理部２６から受信した誤り訂正処理後の読み出しデータＲｅａｄＤａｔａから、ＣＲＣ値（ＣＲＣ（Ｒ））を算出する。そして、算出したＣＲＣ値（ＣＲＣ（Ｒ））を制御部２７Ａに出力する。
【０１７２】
≪処理（２０）≫
制御部２７Ａは、ＣＲＣ生成部２８から受信したＣＲＣ値（ＣＲＣ（Ｒ））と、コマンド制御部２２Ａから受信したＣＲＣ値（ＣＲＣ（Ｗ））とを比較し、その比較結果を示す信号をホストＩＦ部２１に出力する。
【０１７３】
例えば、制御部２７Ａは、ＣＲＣ（Ｒ）とＣＲＣ（Ｗ）とが一致する場合、ホスト装置１から送信された書き込みデータのＣＲＣ値（ＣＲＣ（Ｗ））と、当該書き込みデータを不揮発性メモリＭＥＭに書き込んだ後読み出したデータから算出したＣＲＣ値（ＣＲＣ（Ｒ））とが一致することを示す値「１」にする。
【０１７４】
一方、ＣＲＣ（Ｒ）とＣＲＣ（Ｗ）とが一致しない場合、ホスト装置１から送信された書き込みデータのＣＲＣ値（ＣＲＣ（Ｗ））と、当該書き込みデータを不揮発性メモリＭＥＭに書き込んだ後読み出したデータから算出したＣＲＣ値（ＣＲＣ（Ｒ））とが一致しないことを示す値「０」にする。
【０１７５】
上記のようにして生成した比較結果を示す信号を、制御部２７Ａは、ホストＩＦ部２１に出力する。
【０１７６】
≪処理（２１）≫
ホストＩＦ部２１は、制御部２７Ａから受信した、ＣＲＣ（Ｒ）とＣＲＣ（Ｗ）との比較結果を示す信号をホスト装置１に送信する。
【０１７７】
以上により、不揮発性記憶装置２Ａでは、ホスト装置１からＲ／Ｗコマンドを受信した場合に、当該Ｒ／Ｗコマンドにより指示されているデータ書き込み処理およびデータ読み出し処理を実行することができ、さらに、ファンクションフラグにより指定された処理（上記の場合は、Ｖｅｒｉｆｙ処理）を、不揮発性記憶装置２Ａ側で実行することができる。
【０１７８】
図６に、不揮発性記憶システム２０００において、上記処理が実行される場合のコマンドシーケンス例を示す。
【０１７９】
図６に示すように、ホスト装置１が不揮発性記憶装置２ＡのメモリコントローラＭＣＡに対して、フラグファンクション（ＦｕｎｃＦｌｇ）と、書き込みデータＷｒｉｔｅＤａｔａと、当該書き込みデータのＣＲＣ値（ＣＲＣ（Ｗ））とともに、Ｒ／Ｗコマンドを発行すると（シーケンスＳＨＡ１）、メモリコントローラＭＣＡは、不揮発性メモリＭＥＭに対して、Ｗｒｉｔｅコマンドを発行し、不揮発性メモリＭＥＭに、書き込みデータＷｒｉｔｅＤａｔａおよびＣＲＣ値（ＣＲＣ（Ｗ））を送信する（シーケンスＳＳＡ１）。そして、不揮発性メモリＭＥＭのステータスが「Ｒｅａｄｙ」（Ｗｒｉｔｅ  Ｒｅａｄｙ）になると（シーケンスＳＳＡ２）、メモリコントローラＭＣＡは、不揮発性メモリＭＥＭに対して、Ｒｅａｄコマンドを発行し、不揮発性メモリＭＥＭが「Ｒｅａｄｙ」（Ｒｅａｄ  Ｒｅａｄｙ）状態となった後（シーケンスＳＳＡ４）、不揮発性メモリＭＥＭの読み出し物理アドレスからデータを読み出す（シーケンスＳＳＡ５）。
【０１８０】
さらに、メモリコントローラＭＣＡでは、読み出しデータＲｅａｄＤａｔａから算出したＣＲＣ値（ＣＲＣ（Ｒ））と、ホスト装置１から送信された書き込みデータＷｒｉｔｅＤａｔａのＣＲＣ値（ＣＲＣ（Ｗ））とを比較することで、Ｖｅｒｉｆｙ処理が実行される（シーケンスＳＳＡ６）。そして、その比較結果（Ｖｅｒｉｆｙ処理の結果）を示す信号が、不揮発性記憶装置２Ａからホスト装置１に送信される（シーケンスＳＳＡ７）。
【０１８１】
ホスト装置１は、不揮発性記憶装置２Ａから受信した、Ｖｅｒｉｆｙ処理の結果をチェックすることで、Ｖｅｒｉｆｙ処理を行うことができる（シーケンスＳＨＡ２）。つまり、ホスト装置１は、不揮発性メモリＭＥＭに書き込んだデータが正しく書き込まれているかを確認することができる。
【０１８２】
図６から分かるように、ホスト装置１は、Ｒ／Ｗコマンドを発行するだけで、不揮発性記憶装置２Ａにおいて、データ書き込み処理およびデータ読み出し処理が実行されるので、ホストインターバル（不揮発性記憶装置２に対して、Ｗｒｉｔｅコマンドを発行してからＲｅａｄコマンドを発行するまでの待ち時間）が発生することはない。さらに、ホスト装置１は、Ｒ／Ｗコマンドともに、ファンクションフラグで実行したい機能（処理）を指定するだけで、不揮発性記憶装置２Ａにおいて、当該機能（処理）を実行させることができる。例えば、ファンクションフラグでＶｅｒｉｆｙ処理を指定すると、当該Ｖｅｒｉｆｙ処理は、不揮発性記憶装置２Ａで実行され、Ｖｅｒｉｆｙ処理の結果のみが、不揮発性記憶装置２Ａからホスト装置１に送信される。そして、ホスト装置１は、当該Ｖｅｒｉｆｙ処理の結果を確認するだけで、Ｖｅｒｉｆｙ処理を実行することができる。
【０１８３】
なお、上記では、Ｒ／Ｗコマンドに、書き込みデータＷｒｉｔｅＤａｔａが含まれない場合について説明したが、これに限定されることはない。例えば、図７に示すように、書き込みデータＷｒｉｔｅＤａｔａは、Ｒ／Ｗコマンドに含まれるものであってもよい。
【０１８４】
図７は、Ｒ／Ｗコマンドのコマンドフォーマット（一例）を示す図である。
【０１８５】
図７に示すように、Ｒ／Ｗコマンドは、コマンド識別子（コマンドＩＤ）と、書き込み論理アドレスと、読み出し論理アドレスと、書き込みデータと、ファンクションフラグとを含む。
【０１８６】
なお、書き込みデータは、オプションであり、Ｒ／Ｗコマンドに含めなくてもよい。Ｒ／Ｗコマンドに書き込みデータを含めない場合、Ｒ／Ｗコマンドとともに、書き込みデータを、ホスト装置１から不揮発性記憶装置２に送信するようにすればよい。
【０１８７】
また、図７に示すＲ／Ｗコマンドフォーマットにおいて、書き込み論理アドレスと読み出し論理アドレスとが同一である場合、どちらか片方を省略するようにしてもよい。そして、Ｒ／Ｗコマンドフォーマットに含まれる論理アドレスが１つである場合、当該論理アドレスが、書き込み論理アドレスであり、かつ、読み出し論理アドレスであると解釈するようにしてもよい。
【０１８８】
以上のように、不揮発性記憶システム２０００では、Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）を追加定義し、当該Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）により、処理を実行することで、不揮発性メモリＭＥＭに対するデータの書き込みと読み出しの同時アクセスを仮想的に実現することができ、さらに、ファンクションフラグで指定した処理（機能）を不揮発性記憶装置２Ａに実行させることができる。
【０１８９】
ここで、不揮発性記憶システム２０００において、単発Ｖｅｒｉｆｙ処理（不揮発性メモリＭＥＭの１つの物理ブロックの１ページに対するＶｅｒｉｆｙ処理）を実行する場合について、従来技術と比較しながら、図８を用いて説明する。
【０１９０】
図８（ａ）は、従来技術により、単発Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャートである。図８（ｂ）は、不揮発性記憶システム２０００において、単発Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャートである。
【０１９１】
図８（ａ）に示すように、従来技術により、単発Ｖｅｒｉｆｙ処理を実行する場合、ページ番号ｋのページに対して、データを書き込むために、ホスト装置から不揮発性記憶装置に対して、Ｗｒｉｔｅコマンドが発行される（ステップＳＣ１）。そして、その後、ページ番号ｋのページに書き込まれたデータが正しいデータであるか否かを判断するために、ホスト装置は、不揮発性記憶装置に対して、ページ番号ｋのページのデータを読み出すためのＲｅａｄコマンドを発行する（ステップＳＣ２）。
【０１９２】
その後、ホスト装置は、書き込みデータと読み出しデータが一致するか否かを確認する処理（Ｖｅｒｉｆｙ処理）を行う（ステップＳＣ３）。
【０１９３】
一方、不揮発性記憶システム２０００による単発Ｖｅｒｉｆｙ処理の場合、図４（ｂ）に示すように、処理が実行される。すなわち、不揮発性記憶システム２０００では、ホスト装置１から不揮発性記憶装置２Ａに対して、読み出し論理アドレスおよび書き込み論理アドレスをページ番号ｋに対応する論理アドレスとし、さらに、ファンクションフラグで「Ｖｅｒｉｆｙ処理」を指定したＲ／Ｗコマンドを、発行する（ステップＳＤ１）。当該Ｒ／Ｗコマンドを受信した不揮発性記憶装置２Ａは、ページ番号ｋに対応する不揮発性メモリＭＥＭの物理アドレスに対して、書き込みデータを書き込み、さらに当該データを読み出す。そして、不揮発性記憶装置２Ａでは、書き込みデータのＣＲＣ値（ＣＲＣ（Ｗ））と、読み出しデータから算出したＣＲＣ値（ＣＲＣ（Ｒ））とを比較し、その比較結果（Ｖｅｒｉｆｙ処理結果）を示す信号を、ホスト装置に送信する。
【０１９４】
ホスト装置１は、不揮発性記憶装置２Ａから受信したＶｅｒｉｆｙ処理結果を示す信号をチェックする（ステップＳＤ２）。
【０１９５】
以上により、不揮発性記憶システム２０００では、単発Ｖｅｒｉｆｙ処理を実行することができる。
【０１９６】
図８から分かるように、単発Ｖｅｒｉｆｙ処理を実行する場合、従来技術では、ホスト装置から不揮発性記憶装置に対して、コマンドを２回発行し、さらに、ホスト装置側でＶｅｒｉｆｙ処理を実行する必要がある。それに対して、不揮発性記憶システム２０００では、ホスト装置１から不揮発性記憶装置２Ａに対して、Ｒ／Ｗコマンドを１回発行するだけでよい。
【０１９７】
したがって、不揮発性記憶システム２０００では、従来技術に比べて、ホスト装置での処理負荷を大幅に低減させることができる。
【０１９８】
以上のように、不揮発性記憶システム２０００では、Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）およびファンクションフラグにより、不揮発性記憶装置２Ａ側で、不揮発性メモリＭＥＭに対するデータの書き込みと読み出しの同時アクセスを仮想的に実現するとともに、ファンクションフラグで指定されて処理を実行することができる。したがって、不揮発性記憶システム１０００では、例えば、ファンクションフラグによりＶｅｒｉｆｙ処理を指定し、不揮発性記憶装置２Ａ側で、データ書き込み処理、読み出し処理、および、Ｖｅｒｉｆｙ処理を実行することで、ホスト装置の処理負荷を大幅に低減させることができるとともに、ホストインターバルの発生を抑え、高速に処理を実行することができる。
【０１９９】
［第３実施形態］
次に、第３実施形態について、説明する。
【０２００】
＜３．１：不揮発性記憶システムの構成＞
図９は、第２実施形態に係る不揮発性記憶システム３０００の概略構成図である。
【０２０１】
不揮発性記憶システム３０００は、図９に示すように、ホスト装置１と、不揮発性記憶装置２Ｂと、備える。ホスト装置１と不揮発性記憶装置２Ｂとは、例えば、バスで接続されている。
【０２０２】
不揮発性記憶装置２Ｂは、図９に示すように、メモリコントローラＭＣＢと、第１不揮発性メモリＭ１と、第２不揮発性メモリＭ２と、を備える。つまり、不揮発性記憶装置２Ｂは、複数個の不揮発性メモリ（図９では、２個の不揮発性メモリ）を備える。
【０２０３】
メモリコントローラＭＣＢは、図９に示すように、第１実施形態のメモリコントローラＭＣにおいて、コマンド制御部２２をコマンド制御部２２Ｂに置換し、制御部２７を制御部２７Ｂに置換し、読み出し用バッファ２９を追加した構成を有している。
【０２０４】
それ以外については、本実施形態の不揮発性記憶システム３０００は、第１実施形態の不揮発性記憶システム１０００と同様である。以下では、本実施形態に特有の部分を中心に説明し、上記実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
【０２０５】
コマンド制御部２２Ｂは、第１実施形態のコマンド制御部２２において、制御部２７からの入力を削除した構成を有している。それ以外については、コマンド制御部２２Ｂは、第１実施形態のコマンド制御部２２と同様である。
【０２０６】
制御部２７Ｂは、第１実施形態の制御部２７において、コマンド制御部２２への出力を削除した構成を有している。それ以外については、制御部２７Ｂは、第１実施形態の制御部２７と同様である。
【０２０７】
読み出し用バッファ２９は、ホストＩＦ部２５から出力される読み出しデータを格納するバッファである。読み出し用バッファ２９に格納された読み出しデータは、誤り訂正処理部２６に出力される。
【０２０８】
＜３．２：不揮発性記憶装置の動作＞
以上のように構成された不揮発性記憶システム３０００の動作について、図面を参照しながら、説明する。なお、本実施形態では、不揮発性記憶システム３０００が、２個の不揮発性メモリ（第１不揮発性メモリＭ１および第２不揮発性メモリＭ２）を備え、ホスト装置１から不揮発性記憶装置２Ｂに対して、Ｒ／Ｗコマンド、および、書き込みデータＷｒｉｔｅＤａｔａが送信された場合の動作について、説明する。
【０２０９】
以下では、図９に付した処理番号（図９中に括弧で付した番号）の順に、説明する。
【０２１０】
≪処理（１）≫
ホスト装置１は、不揮発性記憶装置２ＢのホストＩＦ部２１に対して、Ｒ／Ｗコマンド、および、書き込みデータＷｒｉｔｅＤａｔａを送信する。
【０２１１】
≪処理（２）≫
ホストＩＦ部２１は、ホスト装置１から受信したＲ／Ｗコマンドおよび書き込みデータＷｒｉｔｅＤａｔａをコマンド制御部２２Ｂに転送（出力）する。
【０２１２】
≪処理（３）≫
コマンド制御部２２Ｂは、ホストＩＦ部２１から受信したＲ／Ｗコマンドをデコードし、読み出し論理アドレスおよび書き込み論理アドレスを抽出するとともに、メモリＩＦ部２５から不揮発性メモリＭＥＭに出力するためのＲｅａｄコマンドおよびＷｒｉｔｅコマンドを生成する。そして、コマンド制御部２２Ｂは、Ｒｅａｄコマンド、Ｗｒｉｔｅコマンド、読み出し論理アドレス、および、書き込み論理アドレスをアドレス変換部２４に出力する。
【０２１３】
≪処理（４）≫
コマンド制御部２２Ｂは、ホストＩＦ部２１から受信した書き込みデータＷｒｉｔｅＤａｔａをバッファ２３に格納する。
【０２１４】
≪処理（５）≫
アドレス変換部２４は、論理アドレス／物理アドレス変換テーブルに基づいて、コマンド制御部２２Ｂから受信した読み出し論理アドレスを読み出し物理アドレスに変換し、書き込み論理アドレスを書き込み物理アドレスに変換する。そして、アドレス変換部２４は、コマンド制御部２２Ｂから受信したＲｅａｄコマンドと読み出し物理アドレスとをメモリＩＦ部２５に出力する。また、アドレス変換部２４は、コマンド制御部２２Ｂから受信したＷｒｉｔｅコマンドと書き込み物理アドレスとをメモリＩＦ部２５に出力する。
【０２１５】
≪処理（６）≫
バッファ２３は、コマンド制御部２２Ｂから受信した書き込みデータＷｒｉｔｅＤａｔａをメモリＩＦ部２５に転送する。
【０２１６】
≪処理（７）≫
メモリＩＦ部２５は、アドレス変換部２４から受信した書き込み物理アドレスから、第１不揮発性メモリＭ１および第２不揮発性メモリＭ２のいずれの不揮発性メモリにアクセスするかを判断する。ここでは、第１不揮発性メモリＭ１にアクセスするものとする。
【０２１７】
メモリＩＦ部２５は、アドレス変換部２４から受信したＷｒｉｔｅコマンドと、書き込み物理アドレスと、バッファ２３から取得した書き込みデータＷｒｉｔｅＤａｔａとを第１不揮発性メモリＭ１に送信（出力）する。
【０２１８】
第１不揮発性メモリＭ１は、メモリＩＦ部２５から受信したＷｒｉｔｅコマンドに従い、書き込み物理アドレスに、書き込みデータＷｒｉｔｅＤａｔａを書き込む処理を開始する。
【０２１９】
≪処理（８）≫
メモリＩＦ部２５は、アドレス変換部２４から受信した読み出し物理アドレスから、第１不揮発性メモリＭ１および第２不揮発性メモリＭ２のいずれの不揮発性メモリにアクセスするかを判断する。ここでは、第２不揮発性メモリＭ２にアクセスするものとする。
【０２２０】
メモリＩＦ部２５は、アドレス変換部２４から受信したＲｅａｄコマンドと、読み出し物理アドレスとを第２不揮発性メモリＭ２に送信（出力）する。
【０２２１】
第２不揮発性メモリＭ２は、メモリＩＦ部２５から受信したＲｅａｄコマンドに従い、読み出し物理アドレスから、読み出しデータＲｅａｄＤａｔａを読み出す処理を開始する。
【０２２２】
なお、処理（７）のデータ書き込み処理と、処理（８）のデータ読み出し処理とは、並列に実行されるものとする。また、処理（７）のデータ書き込み処理と、処理（８）のデータ読み出し処理とは、略同時に開始されるものであってもよい。
【０２２３】
≪処理（９）≫
第２不揮発性メモリＭ２は、データ読み出し処理が完了して（Ｂｕｓｙ（Ｒｅａｄ）状態が終了した後）、データ読み出し処理が実行可能な状態、すなわち、「Ｒｅａｄｙ（Ｒｅａｄ）」状態であることを示すステータス信号をメモリＩＦ部２５に送信する。
【０２２４】
≪処理（１０）≫
第２不揮発性メモリＭ２は、読み出したデータＲｅａｄＤａｔａをメモリＩＦ部２５に出力する。
【０２２５】
≪処理（１１）≫
メモリＩＦ部２５は、第２不揮発性メモリＭ２から読み出したデータＲｅａｄＤａｔａを読み出し用バッファ２９に出力する。
【０２２６】
≪処理（１２）≫
読み出し用バッファ２９は、メモリＩＦ部２５から受信した読み出しデータＲｅａｄＤａｔａを誤り訂正処理部２６に出力する。
【０２２７】
≪処理（１３）≫
誤り訂正処理部２６は、読み出し用バッファ２９から受信した読み出しデータＲｅａｄＤａｔａに対して誤り訂正処理を実行し、読み出しデータＲｅａｄＤａｔａに誤りがある場合は訂正し、ホストＩＦ部２１に出力する。
【０２２８】
≪処理（１４）≫
ホストＩＦ部２１は、誤り訂正処理部２６から受信した誤り訂正処理後の読み出しデータＲｅａｄＤａｔａをホスト装置１に送信する。
【０２２９】
≪処理（１５）≫
第１不揮発性メモリＭ１は、データ書き込み処理が終了し（「Ｂｕｓｙ（Ｗｒｉｔｅ）」状態が終了した後）、データ書き込み処理が実行可能な状態、すなわち、「Ｗｒｉｔｅ（Ｒｅａｄ）」状態であることを示すステータス信号をメモリＩＦ部２５に送信する。
【０２３０】
≪処理（１６）≫
メモリＩＦ部２５は、第１不揮発性メモリＭ１から受信した「Ｗｒｉｔｅ（Ｒｅａｄｙ）」状態であることを示すステータス信号を、制御部２７Ｂに送信する。
【０２３１】
≪処理（１７）≫
制御部２７Ｂは、受信した「Ｗｒｉｔｅ（Ｒｅａｄｙ）」を示すステータス信号を、ホストＩＦ部２１に送信する。
【０２３２】
≪処理（１８）≫
ホストＩＦ部２１は、受信した「Ｗｒｉｔｅ（Ｒｅａｄｙ）」を示すステータス信号を、ホスト装置１に送信する。
【０２３３】
以上により、不揮発性記憶装置２Ｂでは、ホスト装置１からＲ／Ｗコマンドを受信した場合に、当該Ｒ／Ｗコマンドにより指示されているデータ書き込み処理およびデータ読み出し処理を実行することができる。さらに、不揮発性記憶装置２Ｂでは、複数個の不揮発性メモリを有しているので、データ読み出し処理とデータ書き込み処理とを並列に行うことができる。その結果、不揮発性記憶システム３０００では、Ｒ／Ｗコマンドにより、高速処理を実現することができる。
【０２３４】
図１０に、不揮発性記憶システム３０００において、上記処理が実行される場合のコマンドシーケンス例を示す。
【０２３５】
図１０に示すように、ホスト装置１が不揮発性記憶装置２ＢのメモリコントローラＭＣＢに対して、Ｒ／Ｗコマンドと、書き込みデータＷｒｉｔｅＤａｔａとを発行すると（シーケンスＳＨＢ１）、メモリコントローラＭＣＢは、第１不揮発性メモリＭ１に対するデータ書き込み処理と、第２不揮発性メモリＭ２に対するデータ読み出し処理とを並列に処理する。
【０２３６】
具体的には、メモリコントローラＭＣＢは、第１不揮発性メモリＭ１に対して、Ｗｒｉｔｅコマンドを発行し、第１不揮発性メモリＭ１に、書き込みデータＷｒｉｔｅＤａｔａを送信する（シーケンスＳＳＢ１）。そして、第１不揮発性メモリＭ１のステータスが「Ｒｅａｄｙ」（Ｗｒｉｔｅ  Ｒｅａｄｙ）になると再度データ書き込み処理を実行できる状態となる（シーケンスＳＳＢ３）。
【０２３７】
また、メモリコントローラＭＣＢは、第２不揮発性メモリＭ２に対して、Ｒｅａｄコマンドを発行し（シーケンスＳＳＣ１）、第２不揮発性メモリＭ２が「Ｒｅａｄｙ」（Ｒｅａｄ  Ｒｅａｄｙ）状態となった後（シーケンスＳＳＣ２）、第２不揮発性メモリＭ２の読み出し物理アドレスからデータを読み出す（シーケンスＳＳＣ３）。
【０２３８】
図１０から分かるように、ホスト装置１は、Ｒ／Ｗコマンドを発行するだけで、不揮発性記憶装置２Ｂにおいて、データ書き込み処理およびデータ読み出し処理を並列実行することができるので、ホストインターバル（不揮発性記憶装置２Ｂに対して、Ｗｒｉｔｅコマンドを発行してからＲｅａｄコマンドを発行するまでの待ち時間）が発生することはない。さらに、不揮発性記憶装置２Ｂでは、複数個の不揮発性メモリを有しており、並列処理を実行することができるので、高速処理を実現することができる。
【０２３９】
なお、上記では、Ｒ／Ｗコマンドに、書き込みデータＷｒｉｔｅＤａｔａが含まれない場合について説明したが、これに限定されることはない。例えば、図１１に示すように、書き込みデータＷｒｉｔｅＤａｔａは、Ｒ／Ｗコマンドに含まれるものであってもよい。
【０２４０】
図１１は、Ｒ／Ｗコマンドのコマンドフォーマット（一例）を示す図である。
【０２４１】
図１１に示すように、Ｒ／Ｗコマンドは、コマンド識別子（コマンドＩＤ）と、書き込み論理アドレスと、読み出し論理アドレスと、書き込みデータと、付加情報部とを備える。
【０２４２】
付加情報部は、コマンド処理フラグ、コマンドシーケンスフラグ、および、ファンクションフラグの少なくとも１つを含む。なお、付加情報は、オプションであり、Ｒ／Ｗコマンドに含めなくてもよい。
【０２４３】
コマンド処理フラグは、不揮発性記憶装置が１個の不揮発性メモリのみを有する構成（シングルダイ構成）であるのか、それとも、複数の不揮発性メモリを有する構成（マルチダイ構成）であるのかを示す情報（フラグ）である。なお、コマンド処理フラグは、不揮発性記憶装置が有している不揮発性メモリの個数を指定する情報を含むものであってもよい。また、コマンド処理フラグにより、（１）マルチダイ構成が指定されている場合、Ｒｅａｄコマンドによる処理とＷｒｉｔｅコマンドによる処理とが、並列に実行され、（２）シングル構成が指定されている場合、Ｒｅａｄコマンドによる処理とＷｒｉｔｅコマンドによる処理とが、直列に実行されるようにしてもよい。つまり、コマンド処理フラグにより、Ｒｅａｄコマンドによる処理とＷｒｉｔｅコマンドによる処理とを、並列実行するのか、それとも、直列実行するのかを切り替えるようにしてもよい。
【０２４４】
コマンドシーケンスフラグは、コマンドシーケンスを指定する情報（フラグ）である。コマンドシーケンスフラグは、例えば、（１）データ読み出し処理の実行を、データ書き込み処理の実行より先にすることを示す情報、（２）データ書き込み処理の実行を、データ読み出し処理の実行より先にすることを示す情報、あるいは、（３）データ書き込み処理とデータ読み出し処理とを並列に実行することを示す情報等を含むフラグである。
【０２４５】
ファンクションフラグは、不揮発性記憶装置が有する機能（実行する処理）を指定するフラグ（情報）である。ファンクションフラグには、例えば、不揮発性記憶装置でのＶｅｒｉｆｙ処理実行機能を示す値を指定する。
【０２４６】
なお、本実施形態では、コマンド処理フラグに、「２個の不揮発性メモリを有する構成」（マルチダイ構成）であることを示す値を設定したＲ／Ｗコマンドを、ホスト装置１から不揮発性記憶装置２Ｂに送信されるものであってもよい。
【０２４７】
以上のように、不揮発性記憶システム３０００では、Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）を追加定義し、当該Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）により、処理を実行することで、不揮発性メモリＭＥＭに対するデータの書き込みと読み出しの同時アクセスを仮想的に実現することができる。さらに、不揮発性記憶システム３０００では、不揮発性記憶装置２Ｂが複数個の不揮発性メモリを有しているので、データ読み出し処理とデータ書き込み処理とを並列に行うことができる。その結果、不揮発性記憶システム３０００では、Ｒ／Ｗコマンドにより、データ読み出し処理とデータ書き込み処理が完了するまでの時間をさらに短縮することができ、高速データ処理を実現することができる。
【０２４８】
ここで、不揮発性記憶システム３０００において、不揮発性メモリの２つの物理ブロックに対して全域Ｖｅｒｉｆｙ処理（不揮発性メモリの１つの物理ブロックの全ページに対するＶｅｒｉｆｙ処理）を実行する場合について、従来技術と比較しながら、図１２を用いて説明する。なお、不揮発性記憶システム３０００において、第１不揮発性メモリＭ１の物理ブロックＡと、第２不揮発性メモリＭ２の物理ブロックＢとに対して、全域Ｖｅｒｉｆｙ処理を実行する場合について、説明する。
【０２４９】
従来技術により、不揮発性メモリの２つの物理ブロックに対して全域Ｖｅｒｉｆｙ処理を実行する場合の処理は、図４（ｂ）に示したフローチャートの処理が２回実行される。図４（ｂ）から分かるように、従来技術により、不揮発性メモリの２つの物理ブロックに対して全域Ｖｅｒｉｆｙ処理を実行する場合に必要となるコマンド発行回数は、４Ｎ＋４回（＝（２Ｎ＋２）×２）となる。なお、１つの物理ブロックのページ数は、Ｎ＋１であるものとする。
【０２５０】
図１２は、不揮発性記憶システム３０００において、全域Ｖｅｒｉｆｙ処理を実行する場合の処理フローチャートである。
（ＳＣ１）：
不揮発性記憶システム３０００による全域Ｖｅｒｉｆｙ処理の場合、図１２に示すように、まず、第１不揮発性メモリＭ１の物理ブロックＡのページ番号０ｘ０のページに対して、データを書き込むために、ホスト装置から不揮発性記憶装置に対して、Ｗｒｉｔｅコマンドが発行される（ステップＳＣ１）。なお、便宜上、物理ブロックＡのページ番号ｘのアドレスを「Ａｘ」と表記し、物理ブロックＢのページ番号ｘのアドレスを「Ｂｘ」と表記する。
（ＳＣ２）：
次に、ホスト装置１は、不揮発性記憶装置２Ｂに対して、読み出し論理アドレスを、第１不揮発性メモリＭ１の物理ブロックＡのページ番号０ｘ０のページの論理アドレス（Ａ０）とし、書き込み論理アドレスを、第２不揮発性メモリＭ２の物理ブロックＢのページ番号０ｘ０のページの論理アドレス（Ｂ０）として、Ｒ／Ｗコマンドを発行する（ステップＳＣ２）。このＲ／Ｗコマンドにより、不揮発性記憶装置２Ｂでは、第１不揮発性メモリＭ１の物理ブロックＡのページ番号０ｘ０（論理アドレスＡ０に対応する物理アドレス）からデータを読み出す処理と、第２不揮発性メモリＭ２の物理ブロックＢのページ番号０ｘ０（論理アドレスＢ０に対応する物理アドレス）にデータを書き込む処理と、が並列実行される。
（ＳＣ３）：
次に、ホスト装置１は、不揮発性記憶装置２Ｂに対して、読み出し論理アドレスを、第２不揮発性メモリＭ２の物理ブロックＢのページ番号０ｘ０のページの論理アドレス（Ｂ０）とし、書き込み論理アドレスを、第１不揮発性メモリＭ１の物理ブロックＡのページ番号０ｘ１のページの論理アドレス（Ａ１）として、Ｒ／Ｗコマンドを発行する（ステップＳＣ３）。このＲ／Ｗコマンドにより、不揮発性記憶装置２Ｂでは、第２不揮発性メモリＭ２の物理ブロックＢのページ番号０ｘ０（論理アドレスＢ０に対応する物理アドレス）からデータを読み出す処理と、第１不揮発性メモリＭ１の物理ブロックＡのページ番号０ｘ１（論理アドレスＡ１に対応する物理アドレス）にデータを書き込む処理と、が並列実行される。
（ＳＣ４）：
ステップＳＣ４では、ホスト装置１は、不揮発性記憶装置２Ｂに対して、読み出し論理アドレスを「Ａ１」とし、書き込み論理アドレスを「Ｂ１」とするＲ／Ｗコマンドを送信する。
【０２５１】
そして、不揮発性記憶装置２Ｂでは、第１不揮発性メモリＭ１の物理ブロックＡのページ番号１に相当する物理アドレスからデータを読み出す処理と、第２不揮発性メモリＭ２の物理ブロックＢのページ番号１に相当する物理アドレスにデータを書き込む処理と、が並列実行される。
（ＳＣ５）：
ステップＳＣ５では、ホスト装置１は、不揮発性記憶装置２Ｂに対して、読み出し論理アドレスを「Ｂ１」とし、書き込み論理アドレスを「Ａ２」とするＲ／Ｗコマンドを送信する。
【０２５２】
そして、不揮発性記憶装置２Ｂでは、第２不揮発性メモリＭ２の物理ブロックＢのページ番号１に相当する物理アドレスからデータを読み出す処理と、第１不揮発性メモリＭ１の物理ブロックＡのページ番号２に相当する物理アドレスにデータを書き込む処理と、が並列実行される。
【０２５３】
上記同様の処理が、ページ番号を１ずつインクリメントしながら、ページ番号がＮになるまで、繰り返される。
（ＳＣ６）：
ステップＳＣ６では、ホスト装置１は、不揮発性記憶装置２Ｂに対して、読み出し論理アドレスを「ＡＮ」とし、書き込み論理アドレスを「ＢＮ」とするＲ／Ｗコマンドを送信する。
【０２５４】
そして、不揮発性記憶装置２Ｂでは、第１不揮発性メモリＭ１の物理ブロックＡのページ番号Ｎに相当する物理アドレスからデータを読み出す処理と、第２不揮発性メモリＭ２の物理ブロックＢのページ番号Ｎに相当する物理アドレスにデータを書き込む処理と、が並列実行される。
（ＳＣ７）：
ステップＳＣ７では、ホスト装置１は、不揮発性記憶装置２Ｂに対して、読み出し論理アドレスを「ＢＮ」とするＲｅａｄコマンドを送信する。
【０２５５】
そして、不揮発性記憶装置２Ｂでは、第２不揮発性メモリＭ２の物理ブロックＢのページ番号Ｎに相当する物理アドレスからデータを読み出す処理が実行される。
【０２５６】
以上の処理により、不揮発性記憶システム３０００では、第１不揮発性メモリＭ１の物理ブロックＡおよび第２不揮発性メモリＭ２の物理ブロックＢの全ページに対して、データ書き込み処理およびデータ読み出し処理が実行される。つまり、ホスト装置１では、上記のように、Ｒ／Ｗコマンドを用いて、２つの物理ブロックに対するＶｅｒｉｆｙ処理を行うことができる。上記処理の場合、２つの物理ブロックＡ、Ｂに対するＶｅｒｉｆｙ処理を実行するために必要なコマンド発行回数は、２Ｎ＋１回となり、従来技術による場合のコマンド発行回数４Ｎ＋４回よりも大幅に少なくなる。さらに、不揮発性記憶システム３０００では、Ｒ／Ｗコマンドを受信した場合に、データ読み出し処理とデータ書き込み処理とを並列実行するため、大幅に処理時間を短縮することができる。
【０２５７】
以上のように、不揮発性記憶システム３０００では、Ｒｅａｄ／Ｗｒｉｔｅコマンド（Ｒ／Ｗコマンド）により、複数の不揮発性メモリに対してデータ書き込み処理とデータ読み出し処理とを並列実行することができるので、例えば、Ｖｅｒｉｆｙ処理のようにデータ書き込み処理と読み出し処理とが頻繁に繰り返される処理において、ホストインターバルの発生を抑え、高速に処理を実行することができる。
【０２５８】
［他の実施形態］
上記実施形態の一部または全部を組み合わせて、不揮発性記憶システム、不揮発性記憶装置等を構成するようにしてもよい。
【０２５９】
また、上記実施形態で説明したコマンドシーケンス形態（データ読み出し処理、データ書き込み処理を実行する順番）を動的に切り替えるようにしてもよい。例えば、（１）データ読み出し処理の実行を、データ書き込み処理の実行よりも先に実行するように指定し、その後、（２）データ書き込み処理の実行を、データ読み出し処理の実行よりも先に実行するように変更するようにしてもよい。
【０２６０】
なお、コマンドシーケンス形態（データ読み出し処理、データ書き込み処理を実行する順番）は、コマンドシーケンスフラグにより指定してもよいし、不揮発性メモリの所定の領域に記憶されている情報（例えば、フラグ）により指定されるものであってもよい。
【０２６１】
また、コマンドシーケンス形態における直列処理（不揮発性メモリが１個の構成（シングルダイ構成）の場合の処理）と並列処理（複数個の不揮発性メモリを有する構成（マルチダイ構成）の場合の処理）との指定を、動的に切り替えるようにしてもよい。このコマンドシーケンス形態における直列処理と並列処理との切り替えは、切り替えフラグ（例えば、コマンド処理フラグ）により実行されるものであってもよいし、不揮発性メモリの所定の領域に記憶されている情報（例えば、フラグ）により実行されるものであってもよい。
【０２６２】
また、Ｒ／Ｗコマンドに所定のフラグを含ませ、当該フラグにより指定された機能を、不揮発性記憶装置に実行させるようにしてもよい。当該フラグは、Ｒ／Ｗコマンドの一部に含まれるものであってもよいし、不揮発性メモリの所定の領域に記憶されるものであってもよい。
【０２６３】
また、上記実施形態において、フラグとは、任意の形式のデータであり、１ビットのフラグデータに限定されることはなく、例えば、複数ビットからなるデータを含む概念である。
【０２６４】
また、第３実施形態において、不揮発性記憶装置２Ｂが２つの不揮発性メモリを有する場合について説明したが、これに限定されることはなく、不揮発性記憶装置２Ｂは、３個以上の不揮発性メモリを有してもよい。
【０２６５】
また、上記実施形態において、メモリコントローラＭＣ、ＭＣＡに含まれているコマンド制御部２２、２２Ａ、バッファ２３、アドレス変換部２４、メモリＩＦ部２５、誤り訂正処理部２６、制御部２７、２７Ａ、ＣＲＣ生成部２８、バッファ２９、の全部または一部の機能を実現する機能部が、不揮発性メモリＭＥＭ（または、第１不揮発性メモリＭ１、および／または、第２不揮発性メモリＭ２）に含まれるものであってもよい。
【０２６６】
上記のような構成とすることで、不揮発性メモリＭＥＭ（または、第１不揮発性メモリＭ１、および／または、第２不揮発性メモリＭ２）に対して、Ｒ／Ｗコマンドを送信することができるようになり、上記実施形態と同様の処理を、不揮発性メモリＭＥＭ（または、第１不揮発性メモリＭ１、および／または、第２不揮発性メモリＭ２）側で実現することができる。
【０２６７】
また、上記実施形態の不揮発性記憶システム、不揮発性記憶装置の一部または全部は、集積回路（例えば、ＬＳＩ、システムＬＳＩ等）として実現されるものであってもよい。
【０２６８】
上記実施形態の各機能ブロックの処理の一部または全部は、ソフトウェア（プログラム）により実現されるものであってもよい。
【０２６９】
また、上記実施形態の各処理の一部または全部をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【０２７０】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０２７１】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【０２７２】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０２７３】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【０２７４】
１０００、２０００、３０００  不揮発性記憶システム
１  ホスト装置
２、２Ａ、２Ｂ  不揮発性記憶装置
ＭＣ、ＭＣＡ、ＭＣＢ  メモリコントローラ
ＭＥＭ  不揮発性メモリ
Ｍ１  第１不揮発性メモリ
Ｍ２  第２不揮発性メモリ
２１  ホストＩＦ部
２２、２２Ａ、２２Ｂ  コマンド制御部
２４  アドレス変換部
２５  メモリＩＦ部
２７Ａ  制御部（比較部）
２８  ＣＲＣ生成部
【図１】
2014194689.tif 000003
【図３】
2014194689.tif 000004
【図４】
2014194689.tif 000005
【図５】
2014194689.tif 000006
【図７】
2014194689.tif 000007
【図８】
2014194689.tif 000008
【図９】
2014194689.tif 000009
【図１１】
2014194689.tif 000010
【図１２】
2014194689.tif 000011
【図２】
2014194689.tif 000012
【図６】
2014194689.tif 000013
【図１０】
2014194689.tif 000014