(57)【要約】【課題】データを書き込む処理速度を改善させる。【解決手段】不揮発性メモリ１３は、データの書き換え時に消去が必要であり、それぞれが独立して動作可能な複数のバンクＢＡ１乃至ＢＡＮを有し、各アドレスにランダムアクセス可能である。メモリコントローラ１２は、不揮発性メモリ１３の消去動作を隠すように、データの書き込みを制御する。そして、ホスト１１は、ホストアプリケーションを実行し、不揮発性メモリ１３のバンクを並列動作させる個数を示すインターリーブ数を決定して、メモリコントローラ１２に通知する。さらに、ホスト１１は、ホストアプリケーションが使用するホスト１１でのアドレス空間、および、ホストアプリケーションにおいて設定されているアクセス単位をメモリコントローラ１２に通知する。本発明は、例えば、不揮発性メモリにデータを記憶させるデータ記憶システムに適用できる。【選択図】図１
2010262507.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが独立して動作可能な複数のメモリブロックを有し、各アドレスにランダムアクセス可能な不揮発性メモリと、
前記不揮発性メモリへのデータの書き込みを制御する制御手段と、
所定のアプリケーションを実行する実行手段と
を備え、
前記実行手段が、
前記メモリブロックを並列動作させる個数を示すインターリーブ数を決定し、
決定したインターリーブ数を前記制御手段に通知する
データ記憶システム。
【請求項２】
前記実行手段は、前記アプリケーションが使用する前記実行手段でのアドレス空間、および、前記アプリケーションにおいて設定されているアクセス単位を前記制御手段にさらに通知する
請求項１に記載のデータ記憶システム。
【請求項３】
前記制御手段は、
前記実行手段から通知される前記アドレス空間、前記アクセス単位、および前記インターリーブ数を保存する設定手段と、
前記設定手段に保存されている前記アドレス空間、前記アクセス単位、および前記インターリーブ数に基づいて、前記実行手段でのアドレス空間を前記不揮発性メモリのアドレスに割り当てる割り当て手段と
を有する
請求項２に記載のデータ記憶システム。
【請求項４】
前記制御手段は、前記設定手段に保存されている前記アドレス空間、前記アクセス単位、および前記インターリーブ数を記憶させる領域を前記不揮発性メモリに確保し、システム停止時に、前記アドレス空間、前記アクセス単位、および前記インターリーブ数を前記不揮発性メモリに記憶させる
請求項３に記載のデータ記憶システム。
【請求項５】
前記制御手段は、システム起動時に、前記不揮発性メモリに記憶させている前記アドレス空間、前記アクセス単位、および前記インターリーブ数を読み出して、前記設定手段に保存させる
請求項４に記載のデータ記憶システム。
【請求項６】
前記制御手段は、前記不揮発性メモリの所定のアドレスにデータを書き込む際に、前記所定のアドレスのデータを消去した後にデータを書き込む一連の動作を実行するコマンドを前記不揮発性メモリに送信する
請求項１に記載のデータ記憶システム。
【請求項７】
前記制御手段は、
前記実行手段からデータの書き込みを指示する書き込みコマンドの供給に応じて、前記割り当て手段による前記不揮発性メモリのアドレスの割り当てを参照し、前記書き込みコマンドにより指定される前記データの前記実行手段におけるアドレスを、前記不揮発性メモリのアドレスに変換する変換手段と、
前記変換手段により変換されたアドレスと、前記実行手段からのデータとを前記不揮発性メモリに転送して書き込ませる書き込み制御手段と
を有する
請求項３に記載のデータ記憶システム。
【請求項８】
前記実行手段は、複数の前記アプリケーションを実行するとき、各アプリケーションが使用するアドレス空間ごとに、前記アクセス単位および前記インターリーブ数を通知する
請求項２に記載のデータ記憶システム。
【請求項９】
前記制御手段は、
前記実行手段から通知される複数の前記アドレス空間と、それらのアドレス空間ごとの前記アクセス単位および前記インターリーブ数とを保存する設定手段と、
前記設定手段に保存されている前記アドレス空間ごとの前記アクセス単位および前記インターリーブ数に基づいて、前記不揮発性メモリの全てのメモリブロックが各アドレス空間に割り当てられるように、前記実行手段でのアドレス空間ごとに、前記アドレス空間を前記不揮発性メモリのアドレスにそれぞれ割り当てる割り当て手段と
を有する
請求項８に記載のデータ記憶システム。
【請求項１０】
それぞれが独立して動作可能な複数のメモリブロックを有し、各アドレスにランダムアクセス可能な不揮発性メモリと、前記不揮発性メモリへのデータの書き込みを制御する制御手段と、所定のアプリケーションを実行する実行手段とを有するデータ記憶システムのデータ記憶方法において、
前記メモリブロックを並列動作させる個数を示すインターリーブ数を決定し、
決定したインターリーブ数を前記制御手段に通知する
ステップを含むデータ記憶方法。
【請求項１１】
所定のアプリケーションを実行する実行装置において、
それぞれが独立して動作可能な複数のメモリブロックを有し各アドレスにランダムアクセス可能な不揮発性メモリの、前記メモリブロックを並列動作させる個数を示すインターリーブ数を決定する決定手段と、
決定したインターリーブ数を、前記不揮発性メモリへのデータの書き込みを制御する制御手段に通知する通知手段と
を備える実行装置。
【請求項１２】
前記通知手段は、前記アプリケーションが使用する前記実行手段でのアドレス空間、および、前記アプリケーションにおいて設定されているアクセス単位を前記制御手段にさらに通知する
請求項１１に記載の実行装置。
【請求項１３】
所定のアプリケーションを実行する実行装置の制御方法において、
それぞれが独立して動作可能な複数のメモリブロックを有し各アドレスにランダムアクセス可能な不揮発性メモリの、前記メモリブロックを並列動作させる個数を示すインターリーブ数を決定し、
決定したインターリーブ数を、前記不揮発性メモリへのデータの書き込みを制御する制御手段に通知する
ステップを含む制御方法。
【請求項１４】
それぞれが独立して動作可能な複数のメモリブロックを有し、各アドレスにランダムアクセス可能な不揮発性メモリへのデータの書き込みを制御する制御装置において、
所定のアプリケーションを実行する実行手段から通知される、前記アプリケーションで使用するアドレス空間、前記アプリケーションにおいて設定されているアクセス単位、および前記メモリブロックを並列動作させる個数を示すインターリーブ数を保存する設定手段と、
前記設定手段に保存されている前記アドレス空間、前記アクセス単位、および前記インターリーブ数に基づいて、前記実行手段でのアドレス空間を前記不揮発性メモリのアドレスに割り当てる割り当て手段と
を備える制御装置。
【請求項１５】
それぞれが独立して動作可能な複数のメモリブロックを有し、各アドレスにランダムアクセス可能な不揮発性メモリへのデータの書き込みを制御する制御装置の制御方法において、
所定のアプリケーションを実行する実行手段から通知される、前記アプリケーションで使用するアドレス空間、前記アプリケーションにおいて設定されているアクセス単位、および前記メモリブロックを並列動作させる個数を示すインターリーブ数を保存し、
保存されている前記アドレス空間、前記アクセス単位、および前記インターリーブ数に基づいて、前記実行手段でのアドレス空間を前記不揮発性メモリのアドレスに割り当てる
ステップを含む制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記憶システムおよびデータ記憶方法、実行装置および制御方法、並びに制御装置および制御方法に関し、特に、メモリ制御の自由度を持ち、データを書き込む処理速度を改善させることができるようにしたデータ記憶システムおよびデータ記憶方法、実行装置および制御方法、並びに制御装置および制御方法に関する。
【背景技術】
【０００２】
従来、揮発性メモリ（RAM：Random Access Memory）であるSRAMやDRAMなどのようにランダムアクセスが可能でありながら、電源供給を切断した後もデータを保持することができる不揮発性メモリ（NVRAM：Non-volatile RAM）として、FeRAMや、PCRAM，ReRAMなどの研究開発および製品化が進展している。
【０００３】
また、これらの不揮発性メモリは、将来的に、SRAMやDRAMなどを置き換えるものとなることが期待されており、さらに、ランダムアクセスが可能でありながら不揮発であるという特徴から新しいアプリケーションも模索されている。
【０００４】
ところで、不揮発性メモリの中には、データを書き換える際に、既に記憶されているデータを消去する処理を行った後でないと、新たなデータを書き込むことができないタイプのものがある。このようなタイプの不揮発性メモリを使用する場合、データを消去する処理を行い、その後、データを書き込む処理をするという単純な作業を行うだけでは、データを消去する処理に必要となる時間が、オーバヘッドとして現れることがある。
【０００５】
また、ランダムアクセスが可能なメモリでは、アプリケーションによって様々な単位で、例えば、１バイトや数バイトなどの小さなサイズから数キロバイトの大きなサイズまでの様々な単位で、データの書き込みが行われる。近年、ストレージやキャッシュなどの様々な用途に仕様されているNAND型フラッシュメモリでは、セルを駆動するのに必要な導線を複数のセルで共有しているため、デバイスによって固定されたページと呼ばれる単位（512バイト、2Kバイト、または4Kバイト単位）で書き込みが行われる。
【０００６】
従って、ページごとの書き込みに対しては高速に処理が行われるが、書き込みの単位が小さいほど、書き込みパフォーマンスが低下することになる。このような書き込みパフォーマンスの低下などに対応するために、従来より、メモリ制御の様々な方法が提案されている。
【０００７】
例えば、特許文献１には、データを消去する処理と並行して、次の書き込みデータをデータラッチにキャッシュすることにより、書き込みパフォーマンスを改善させる方法が開示されている。このような方法では、書き込み単位のデータをデータラッチにキャッシュする処理にかかる時間と、データを消去する時間が略同等である場合には、消去時間によるオーバヘッドが現れることが回避されるが、書き込み単位が考慮されていない。従って、アプリケーションによって様々な単位で書き込みが行われる場合には、書き込みデータをデータラッチにキャッシュする時間よりも消去時間が長くなることがあり、その場合、消去時間によるオーバヘッドが顕著に表れる。
【０００８】
また、特許文献２には、ホストから論理アドレスに対する不揮発性メモリのバンクを割り当てる方法が開示されている。しかしながら、このような方法では、メモリコントローラはホストからの書き込み単位を知らないために、書き込み速度が向上するようにホストの論理アドレスを不揮発性メモリのバンクに割り当てることができない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特表２００８−５３５１３９号公報
【特許文献２】特開２００３−１２２６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したように、従来、消去時間によるオーバヘッドが現れることなどにより、データの書き込みに要する時間が長くなることがあり、データを書き込む処理速度を改善させることが求められている。
【００１１】
本発明は、このような状況に鑑みてなされたものであり、メモリ制御の自由度を持ち、データを書き込む処理速度を改善させることができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の第１の側面のデータ記憶システムは、それぞれが独立して動作可能な複数のメモリブロックを有し、各アドレスにランダムアクセス可能な不揮発性メモリと、前記不揮発性メモリへのデータの書き込みを制御する制御手段と、所定のアプリケーションを実行する実行手段とを備え、前記実行手段が、前記メモリブロックを並列動作させる個数を示すインターリーブ数を決定し、決定したインターリーブ数を前記制御手段に通知する。
【００１３】
本発明の第１の側面のデータ記憶方法は、それぞれが独立して動作可能な複数のメモリブロックを有し、各アドレスにランダムアクセス可能な不揮発性メモリと、前記不揮発性メモリへのデータの書き込みを制御する制御手段と、所定のアプリケーションを実行する実行手段とを有するデータ記憶システムのデータ記憶方法であって、前記メモリブロックを並列動作させる個数を示すインターリーブ数を決定し、決定したインターリーブ数を前記制御手段に通知するステップを含む。
【００１４】
本発明の第１の側面においては、メモリブロックを並列動作させる個数を示すインターリーブ数が決定され、そのインターリーブ数が通知される。
【００１５】
本発明の第２の側面の実行装置は、所定のアプリケーションを実行する実行装置において、それぞれが独立して動作可能な複数のメモリブロックを有し各アドレスにランダムアクセス可能な不揮発性メモリの、前記メモリブロックを並列動作させる個数を示すインターリーブ数を決定する決定手段と、決定したインターリーブ数を、前記不揮発性メモリへのデータの書き込みを制御する制御手段に通知する通知手段とを備える。
【００１６】
本発明の第２の側面の制御方法は、所定のアプリケーションを実行する実行装置の制御方法において、それぞれが独立して動作可能な複数のメモリブロックを有し各アドレスにランダムアクセス可能な不揮発性メモリの、前記メモリブロックを並列動作させる個数を示すインターリーブ数を決定し、決定したインターリーブ数を、前記不揮発性メモリへのデータの書き込みを制御する制御手段に通知するステップを含む。
【００１７】
本発明の第２の側面においては、それぞれが独立して動作可能な複数のメモリブロックを有し各アドレスにランダムアクセス可能な不揮発性メモリの、メモリブロックを並列動作させる個数を示すインターリーブ数が決定され、そのインターリーブ数が、不揮発性メモリへのデータの書き込みを制御する制御手段に通知される。
【００１８】
本発明の第３の側面の制御手段は、それぞれが独立して動作可能な複数のメモリブロックを有し、各アドレスにランダムアクセス可能な不揮発性メモリへのデータの書き込みを制御する制御装置において、所定のアプリケーションを実行する実行手段から通知される、前記アプリケーションで使用するアドレス空間、前記アプリケーションにおいて設定されているアクセス単位、および前記メモリブロックを並列動作させる個数を示すインターリーブ数を保存する設定手段と、前記設定手段に保存されている前記アドレス空間、前記アクセス単位、および前記インターリーブ数に基づいて、前記実行手段でのアドレス空間を前記不揮発性メモリのアドレスに割り当てる割り当て手段とを備える。
【００１９】
本発明の第３の側面の制御方法は、それぞれが独立して動作可能な複数のメモリブロックを有し、各アドレスにランダムアクセス可能な不揮発性メモリへのデータの書き込みを制御する制御手段の制御方法において、所定のアプリケーションを実行する実行手段から通知される、前記アプリケーションで使用するアドレス空間、前記アプリケーションにおいて設定されているアクセス単位、および前記メモリブロックを並列動作させる個数を示すインターリーブ数を保存し、前記設定手段に保存されている前記アドレス空間、前記アクセス単位、および前記インターリーブ数に基づいて、前記実行手段でのアドレス空間を前記不揮発性メモリのアドレスに割り当てるステップを含む。
【００２０】
本発明の第３の側面においては、所定のアプリケーションを実行する実行手段から通知される、アプリケーションで使用するアドレス空間、アプリケーションにおいて設定されているアクセス単位、およびメモリブロックを並列動作させる個数を示すインターリーブ数が保存され、そのアドレス空間、アクセス単位、およびインターリーブ数に基づいて、実行手段でのアドレス空間が不揮発性メモリのアドレスに割り当てられる。
【発明の効果】
【００２１】
本発明の第１乃至第３の側面によれば、メモリ制御の自由度を持ち、データを書き込む処理速度を改善させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明を適用したデータ記憶システムの一実施の形態の構成例を示すブロック図である。
【図２】アドレスを変換する第１の変換例について説明する図である。
【図３】アドレスを変換する第２の変換例について説明する図である。
【図４】アドレスを変換する第３の変換例について説明する図である。
【図５】アクセス単位が１６バイトと設定され、インターリーブ数が８と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図６】アクセス単位が１６バイトと設定され、インターリーブ数が８と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図７】アクセス単位が１６バイトと設定され、インターリーブ数が４と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図８】アクセス単位が１６バイトと設定され、インターリーブ数が４と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図９】アクセス単位が１６バイトと設定され、インターリーブ数が２と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図１０】アクセス単位が１６バイトと設定され、インターリーブ数が２と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図１１】アクセス単位が１６バイトと設定され、インターリーブ数が４と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図１２】アクセス単位が１６バイトと設定され、インターリーブ数が４と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図１３】アクセス単位が１６バイトと設定され、インターリーブ数が２と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図１４】アクセス単位が１６バイトと設定され、インターリーブ数が２と設定されたときの消去時間と書き込み時間とのバランスについて説明する図である。
【図１５】複数バイトのデータを消去するときの消去時間と書き込み時間とのバランスについて説明する図である。
【図１６】複数バイトのデータを消去するときの消去時間と書き込み時間とのバランスについて説明する図である。
【図１７】インターリーブ数決定処理を説明するフローチャートである。
【図１８】メモリコントローラ１２に対する設定を行う処理を説明するフローチャートである。
【図１９】アドレスを変換する処理を説明するフローチャートである。
【図２０】不揮発性メモリ１３にデータを書き込む処理を説明するフローチャートである。
【図２１】先消しメモリ制御を行ったときのタイミングチャートである。
【図２２】先消しメモリ制御を行わないときのタイミングチャートである。
【図２３】先消しメモリ制御を行って、不揮発性メモリ１３にデータを書き込む処理を説明するフローチャートである。
【図２４】本発明を適用したデータ記憶システムの他の実施の形態の構成例を示すブロック図である。
【図２５】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００２３】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００２４】
図１は、本発明を適用したデータ記憶システムの一実施の形態の構成例を示すブロック図である。なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【００２５】
図１において、データ記憶システム１０は、ホスト１１、メモリコントローラ１２、および不揮発性メモリ１３を備えて構成される。不揮発性メモリ１３は、データの書き込み処理において、データの消去を行った後にデータの書き込みを行うという一連の処理が必要とされるタイプのものである。
【００２６】
ホスト１１は、所定のホストアプリケーションを実行し、必要に応じて、メモリコントローラ１２に対して、不揮発性メモリ１３へのデータの書き込み要求、および不揮発性メモリ１３からのデータの読み出し要求を行う。
【００２７】
また、ホスト１１は、１バイトまたは数バイトごとの所定のアクセス単位でデータを転送して不揮発性メモリ１３へのデータの書き込みを行い、このアクセス単位は、ホスト１１が実行するホストアプリケーションによるメモリの使用の仕方に応じて決定される。そして、ホスト１１は、例えば、ホストアプリケーションの実行を開始するときに、そのホストアプリケーションによって決定されるアクセス単位をメモリコントローラ１２に通知する。
【００２８】
また、ホスト１１では、ホスト１１が実行するホストアプリケーションごとに、それぞれのアプリケーションにおいて使用されるアドレス空間が設定されており、ホスト１１は、ホスト１１でのアドレス空間をメモリコントローラ１２に通知する。
【００２９】
さらに、ホスト１１は、ホストアプリケーションの仕様やデータ記憶システム１０の使用環境などに応じて、並列動作させる不揮発性メモリ１３のバンク（メモリブロック）の個数を示すインターリーブ数を決定し、メモリコントローラ１２に通知する。例えば、ホスト１１は、図１７を参照して後述するように、処理速度を優先してメモリ制御を行うときに使用するインターリーブ数を決定する。
【００３０】
メモリコントローラ１２は、ホストインターフェイス２１、メモリインターフェイス２２、データバッファ２３、アドレス変換部２４、アドレス空間設定部２５、アクセス単位設定部２６、インターリーブ数設定部２７、メモリ制御部２８を備えて構成される。
【００３１】
ホストインターフェイス２１は、ホスト１１とメモリコントローラ１２との間の信号を仲介し、メモリインターフェイス２２は、メモリコントローラ１２と不揮発性メモリ１３との間の信号を仲介する。
【００３２】
アドレス空間設定部２５には、ホスト１１でのアドレス空間がホストインターフェイス２１を介して通知（即ち、アドレス空間を示す情報が供給）され、アドレス空間設定部２５は、ホスト１１でのアドレス空間をレジスタに保存する。また、ホスト１１でのアドレス空間は、ホスト１１が実行するホストアプリケーションごとにそれぞれ設定され、アドレス空間設定部２５は、ホストアプリケーションごとに設定されているホスト１１でのアドレス空間を保存する。
【００３３】
アクセス単位設定部２６には、ホスト１１からのアクセス単位がホストインターフェイス２１を介して通知（即ち、アクセス単位を示す情報が供給）され、アクセス単位設定部２６は、ホスト１１からのアクセス単位をレジスタに保存する。
【００３４】
インターリーブ数設定部２７には、ホスト１１が決定したインターリーブ数がホストインターフェイス２１を介して通知（即ち、インターリーブ数を示す情報が供給）され、インターリーブ数設定部２７は、インターリーブ数をレジスタに保存する。
【００３５】
データバッファ２３には、ホスト１１からホストインターフェイス２１を介して、不揮発性メモリ１３に記憶させるデータが供給され、データバッファ２３は、そのデータをバッファリングする。
【００３６】
アドレス変換部２４は、アクセス単位設定部２６に設定されているアクセス単位と、インターリーブ数設定部２７に設定されているインターリーブ数とに基づいて、アドレス空間設定部２５に設定されているホスト１１でのアドレス空間を、不揮発性メモリ１３のアドレスに変換する（割り当てる）。ここで、インターリーブ数は、不揮発性メモリ１３のバンクＢＡ１乃至ＢＡＮのうちの、切り替えながら並列動作させるバンクの個数である。
【００３７】
例えば、アドレス変換部２４は、図２乃至４を参照して後述するように、ホスト１１の下位のアドレスから順に、不揮発性メモリ１３のバンクＢＡ１乃至ＢＡＮに書き込み単位ごとに、先頭のバンクの下位の行から順にホスト１１でのアドレス空間を割り当て、不揮発性メモリ１３のバンクをインターリーブしながら（切り替えながら）、インターリーブ数に応じたバンク数だけインターリーブすると、先頭のバンクの次の書き込み単位の行に戻るということを繰り返すように、ホスト１１でのアドレス空間を不揮発性メモリ１３のアドレスに割り当てる。
【００３８】
そして、例えば、アドレス変換部２４は、ホスト１１のアドレス空間と不揮発性メモリ１３のアドレスとを対応付けたアドレス変換表をレジスタに保存する。
【００３９】
メモリ制御部２８は、ホストインターフェイス２１を介してホスト１１から供給されるデータを、メモリインターフェイス２２を介して不揮発性メモリ１３に書き込む制御を行う。
【００４０】
ホスト１１からは、不揮発性メモリ１３にデータを書き込むことを指示するコマンド（書き込みコマンド）とともに、不揮発性メモリ１３に書き込むデータと、そのデータのホスト１１でのアドレスとが送信されてくる。メモリ制御部２８は、書き込みコマンドに従い、アドレス変換部２４のアドレス変換表を参照して、不揮発性メモリ１３に書き込むデータのホスト１１でのアドレスを不揮発性メモリ１３のアドレスに変換する。
【００４１】
そして、メモリ制御部２８は、不揮発性メモリ１３のアドレスに変換したホスト１１でのアドレスに対応付けられていたデータであって、データバッファ２３にバッファリングされているデータ（以下、適宜、変換後のアドレスに対応するデータとも称する）を不揮発性メモリ１３に書き込むように制御を行う。即ち、メモリ制御部２８は、所定の作動クロックに同期させて、そのデータを不揮発性メモリ１３から出力させるとともに、書き込みコマンドと、変換後の不揮発性メモリ１３のアドレスとを、メモリインターフェイス２２およびメモリインターフェイス３１を介して制御部３２に供給する。ここで、メモリ制御部２８が不揮発性メモリ１３に送信する書き込みコマンドは、指定のアドレスに対してデータを消去した後に、データを書き込むという一連の動作を実行するものである。
【００４２】
また、メモリ制御部２８は、アドレス空間設定部２５に記憶されているアドレス空間、アクセス単位設定部２６に記憶されているアクセス単位、インターリーブ数設定部２７に記憶されているインターリーブ数を記憶させる領域を不揮発性メモリ１３に確保する。そして、データ記憶システム１０のシステム停止時に、メモリ制御部２８は、アドレス空間、アクセス単位、およびインターリーブ数を設定情報として、不揮発性メモリ１３に記憶させる。さらに、データ記憶システム１０の起動時に、メモリ制御部２８は、不揮発性メモリ１３に記憶させた設定情報を不揮発性メモリ１３から読み出して、アドレス空間設定部２５、アクセス単位設定部２６、およびインターリーブ数設定部２７に設定することができる。
【００４３】
不揮発性メモリ１３は、メモリインターフェイス３１、制御部３２、および、Ｎ個のバンクＢＡ１乃至ＢＡＮを備えて構成される。
【００４４】
メモリインターフェイス３１は、メモリコントローラ１２と不揮発性メモリ１３との間の信号を仲介する。
【００４５】
制御部３２は、メモリインターフェイス３１を介して、書き込みコマンドとともに、不揮発性メモリ１３に書き込むデータと、そのデータのアドレスとがメモリコントローラ１２から供給されると、データを一時的に蓄積し、そのアドレスのデータの消去を開始する。そして、そのアドレスのデータの消去が完了すると、制御部３２は、そのアドレスにデータの書き込みを行うという連続した処理を行う。
【００４６】
上述したように、不揮発性メモリ１３のバンクをインターリーブしながら書き込み単位ごとの書き込みを行って、インターリーブ数に応じたバンク数だけインターリーブすると、先頭のバンクの次の書き込み単位の行に戻るということを繰り返すように、アドレスが割り当てられているので、制御部３２は、バンクＢＡ１乃至ＢＡＮをインターリーブしながら、それぞれにデータを書き込むことができる。
【００４７】
バンクＢＡ１乃至ＢＡＮは、不揮発性メモリ１３の記憶領域を区切る区画（メモリブロック）であり、バンクＢＡ１乃至ＢＡＮそれぞれが独立して動作することが可能である。また、バンクＢＡ１乃至ＢＡＮは、書き込みまたは消去が所定のバイト数ごとに行われるように構成されており、例えば、１バイトごとや４バイトごとなどに書き込みまたは消去が可能である。
【００４８】
このように構成されているデータ記憶システム１０では、ホスト１１が、アクセス単位およびインターリーブ数をメモリコントローラ１２に通知し、メモリコントローラ１２は、そのアクセス単位およびインターリーブ数に従って、ホスト１１でのアドレス空間が不揮発性メモリ１３のアドレスに割り当てられる。そして、ホスト１１から不揮発性メモリ１３への書き込み要求が発生すると、メモリコントローラ１２は、ホスト１１でのアドレスを不揮発性メモリ１３のアドレスに変換し、不揮発性メモリ１３では、バンクＢＡ１乃至ＢＡＮをインターリーブしながら、データの消去動作と書き込み動作とが並列に行われる。
【００４９】
次に、図２乃至図４を参照して、アクセス単位およびインターリーブ数の設定に従ってアドレスを変換する変換例について説明する。なお、アドレスを変換する方法は、以下で説明する３つの方法に限られるものではない。
【００５０】
図２では、独立動作可能な１６個のバンクＢＡ０乃至ＢＡ１５を備えた不揮発性メモリ１３に対して、ホスト１１からのアクセス単位を８バイト、インターリーブ数を４に設定したときの第１の変換例について説明する。また、図２の不揮発性メモリ１３は、１バイト単位でデータの書き込みが可能であり、かつ、１バイト単位でデータの消去が可能であるものとする。
【００５１】
このようにアクセス単位およびインターリーブ数が設定されているとき、まず、ホスト１１のアドレス空間の最も下位のアドレス（0X0000）から上位に向かって、ホスト１１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３に割り当てられる。
【００５２】
例えば、最も下位のアドレスの８バイトが、バンクＢＡ０乃至ＢＡ３の０列目および１列目の８バイト（太線で囲われた領域）に割り当てられ、その次のアドレスの８バイトが、バンクＢＡ０乃至ＢＡ３の２列目および３列目の８バイトに割り当てられる。以下、同様に、上位のアドレスに向かって、ホスト１１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３に割り当てられる。
【００５３】
そして、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３の全てが割り当てられると、その次のホスト１１のアドレス空間は、不揮発性メモリ１３のバンクＢＡ４乃至ＢＡ７に割り当てられる。即ち、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３に最後に割り当てられたアドレスの次のアドレスの８バイトが、バンクＢＡ４乃至ＢＡ７の０列目および１列目の８バイトに割り当てられる。そして、その次のアドレスの８バイトが、バンクＢＡ４乃至ＢＡ７の２列目および３列目の８バイトに割り当てられる。以下、同様に、上位のアドレスに向かって、ホスト１１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ４乃至ＢＡ７に割り当てられる。
【００５４】
そして、不揮発性メモリ１３のバンクＢＡ４乃至ＢＡ７の全てが割り当てられると、その次のホスト１１のアドレス空間は、不揮発性メモリ１３のバンクＢＡ８乃至ＢＡ１１に割り当てられる。さらに、不揮発性メモリ１３のバンクＢＡ８乃至ＢＡ１１の全てが割り当てられると、その次のホスト１１のアドレス空間は、不揮発性メモリ１３のバンクＢＡ１２乃至ＢＡ１５に割り当てられる。
【００５５】
このようにホスト１１のアドレス空間が不揮発性メモリ１３に割り当てられることにより、ホスト１１からの書き込みが発生すると、不揮発性メモリ１３では、バンクをインターリーブしながらデータの書き込みが行われる。
【００５６】
例えば、ホスト１１の下位のアドレス（0X0000）の８バイトのデータの書き込みが発生すると、不揮発性メモリ１３のバンクＢＡ０の０列目へのデータの書き込みが開始される。そして、バンクをインターリーブしながら、バンクＢＡ１の０列目、バンクＢＡ２の０列目、バンクＢＡ３の０列目へのデータの書き込みが順次開始される。そして、バンクＢＡ３の０列目へのデータの書き込みの次に、バンクＢＡ０の１列目へのデータの書き込みが開始され、以下、同様に、バンクＢＡ１の１列目、バンクＢＡ２の１列目、バンクＢＡ３の１列目へのデータの書き込みが順次開始される。
【００５７】
このように、バンクをインターリーブしながらデータの書き込みを行うことで、データの消去時間を隠しながら、データの書き込みを実行することができる。
【００５８】
即ち、上述したように、不揮発性メモリ１３では、データの書き込みコマンドに従って、データを消去した後に、データを書き込むという一連の処理が実行される。このとき、ホスト１１が、消去時間を書き込み時間で隠せるようなインターリーブを設定することで、消去時間のオーバヘッドが隠れ、同時動作するバンクを少なくすることができる。
【００５９】
例えば、不揮発性メモリ１３の消去および書き込みに必要な時間が動作クロックの４クロック分である場合について、ホスト１１の下位のアドレス（0X0000）の８バイトのデータの書き込みを例に説明する。
【００６０】
この場合、図２の書き込み順序に示されているように、クロックCLK０で、バンクＢＡ０の０列目にデータを書き込む処理が開始され、クロックCLK１で、バンクがインターリーブされて、バンクＢＡ１の０列目にデータを書き込む処理が開始される。以下、同様に、クロックCLK２でバンクＢＡ２の０列目にデータを書き込む処理が開始され、クロックCLK３でバンクＢＡ３の０列目にデータを書き込む処理が開始される。
【００６１】
このとき、不揮発性メモリ１３の消去および書き込みに必要な時間は動作クロックの４クロック分であるので、クロックCLK４の開始時において、クロックCLK０で開始されたバンクＢＡ０の０列目へのデータの書き込みは終了している。従って、クロックCLK４において、バンクＢＡ０の１列目にデータを書き込む処理を開始することができる。以下、同様に、クロックCLK５でバンクＢＡ１の１列目にデータを書き込む処理が開始され、クロックCLK６でバンクＢＡ２の１列目にデータを書き込む処理が開始され、クロックCLK７でバンクＢＡ３の１列目にデータを書き込む処理が開始される。
【００６２】
このようにバンクをインターリーブすることで、ホスト１１から見て、データの消去動作を隠しながら、書き込みが連続的に実行される。
【００６３】
次に、図３では、独立動作可能な１６個のバンクＢＡ０乃至ＢＡ１５を備えた不揮発性メモリ１３に対して、ホスト１１からのアクセス単位を８バイト、インターリーブ数を２に設定したときの第２の変換例について説明する。また、図３の不揮発性メモリ１３は、１バイト単位でデータの書き込みが可能であり、かつ、４バイト単位でデータの消去が可能であるものとする。
【００６４】
このようにアクセス単位およびインターリーブ数が設定されているとき、まず、ホスト１１のアドレス空間の最も下位のアドレス（0X0000）から上位に向かって、ホスト１１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０およびＢＡ１に割り当てられる。
【００６５】
例えば、最も下位のアドレスの８バイトが、バンクＢＡ０およびＢＡ１の０列目乃至３列目の８バイト（太線で囲われた領域）に割り当てられ、その次のアドレスの８バイトが、バンクＢＡ０およびＢＡ１の４列目乃至７列目の８バイトに割り当てられる。以下、同様に、上位のアドレスに向かって、ホスト１１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０およびＢＡ１に割り当てられる。
【００６６】
そして、不揮発性メモリ１３のバンクＢＡ０およびＢＡ１の全てが割り当てられると、その次のホスト１１のアドレス空間は、不揮発性メモリ１３のバンクＢＡ２およびＢＡ３に割り当てられる。即ち、不揮発性メモリ１３のバンクＢＡ０およびＢＡ１に最後に割り当てられたアドレスの次のアドレスの８バイトが、バンクＢＡ２およびＢＡ３の０列目乃至３列目の８バイトに割り当てられる。そして、その次のアドレスの８バイトが、バンクＢＡ２およびＢＡ３の４列目乃至７列目の８バイトに割り当てられる。以下、同様に、上位のアドレスに向かって、ホスト１１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ２およびＢＡ３に割り当てられる。
【００６７】
そして、不揮発性メモリ１３のバンクＢＡ２およびＢＡ３の全てが割り当てられると、その次のホスト１１のアドレス空間は、不揮発性メモリ１３のバンクＢＡ４およびＢＡ５に割り当てられる。さらに、不揮発性メモリ１３のバンクＢＡ４およびＢＡ５の全てが割り当てられると、その次のホスト１１のアドレス空間は、不揮発性メモリ１３のバンクＢＡ６およびＢＡ７に割り当てられる。以下、同様に、ホスト１１の上位のアドレスに向かって順次、バンクＢＡ８およびＢＡ９、バンクＢＡ１０およびＢＡ１１、バンクＢＡ１２およびＢＡ１３、そして、バンクＢＡ１４およびＢＡ１５に割り当てられる。
【００６８】
ここで、第２の変換例では、ホスト１１のアクセス単位に不揮発性メモリ１３の消去単位の４バイトが含まれるように設定されているので、書き込み時に消去単位の４バイトのデータをメモリコントローラ１２にバッファリングしなくても済むことになる。
【００６９】
例えば、ホスト１１の下位のアドレス（0X0000）の８バイトのデータの書き込みが発生すると、不揮発性メモリ１３のバンクＢＡ０の０列目へのデータの書き込みが開始され、次に、バンクＢＡ１の０列目へのデータの書き込みが開始される。このように、バンクＢＡ０とバンクＢＡ１とをインターリーブしながらデータの書き込みが行われる。以下、同様に、バンクＢＡ０の１列目、バンクＢＡ１の１列目、バンクＢＡ０の２列目、バンクＢＡ１の２列目、バンクＢＡ０の３列目、バンクＢＡ１の３列目、バンクＢＡ０の４列目、そして、バンクＢＡ１の４列目へのデータの書き込みが順次開始される。
【００７０】
これにより、消去動作を隠しながら、書き込みを実行することができる。
【００７１】
例えば、不揮発性メモリ１３の消去および書き込みに必要な時間が動作クロックの２クロック分である場合について、ホスト１１の下位のアドレス（0X0000）の８バイトのデータの書き込みを例に説明する。
【００７２】
この場合、図３の書き込み順序に示されているように、クロックCLK０で、バンクＢＡ０の０列目にデータを書き込む処理が開始され、バンクがインターリーブされて、クロックCLK１で、バンクＢＡ１の０列目にデータを書き込む処理が開始される。
【００７３】
このとき、不揮発性メモリ１３の消去および書き込みに必要な時間は動作クロックの２クロック分であるので、クロックCLK２の開始時において、クロックCLK０で開始されたバンクＢＡ０の０列目へのデータの書き込みは終了している。従って、クロックCLK２において、バンクＢＡ０の１列目にデータを書き込む処理を開始することができる。
【００７４】
以下、同様に、クロックCLK３でバンクＢＡ１の１列目にデータを書き込む処理が開始され、クロックCLK４でバンクＢＡ０の２列目にデータを書き込む処理が開始され、クロックCLK５でバンクＢＡ１の２列目にデータを書き込む処理が開始される。そして、このようにインターリーブを繰り返しながら、クロックCLK７でバンクＢＡ１の３列目にデータを書き込む処理が開始される。
【００７５】
このようにバンクをインターリーブすることで、ホスト１１から見て、データの消去動作を隠しながら、書き込みが実行される。
【００７６】
次に、図４では、ホスト１１のアドレス空間を分割し、それぞれの領域に異なるアクセス単位を設定したときの第３の変換例について説明する。例えば、ホスト１１が複数のホストアプリケーションを実行し、それぞれのホストアプリケーションのアクセス単位が異なるときに、アドレス空間ごとに異なるアクセス単位が設定される。図４の不揮発性メモリ１３は、独立動作可能な１６個のバンクＢＡ０乃至ＢＡ１５を備え、１バイト単位でデータの書き込みが可能であり、かつ、１バイト単位でデータの消去が可能であるものとする。
【００７７】
図４では、ホスト１１のアドレス空間が、３つの第１乃至第３のアドレス空間に分割され、第１のアドレス空間（0x0000〜0x03FF）では、ホスト１１からのアクセス単位を１６バイト、インターリーブ数を４に設定している。また、第２のアドレス空間（0x0400〜0x13FF）では、ホスト１１からのアクセス単位を１Ｋバイト、インターリーブ数を１６に設定している。また、第３のアドレス空間（0x1400〜0x1FFF）では、ホスト１１からのアクセス単位を４バイト、インターリーブ数を４に設定している。
【００７８】
このように、ホスト１１のアドレス空間ごとにアクセス単位が異なる場合には、それぞれのアドレス空間に対し、インターリーブ可能なバンクすべてが含まれるように、不揮発性メモリ１３が割り当てられる。即ち、第１乃至第３のアドレス空間のそれぞれに対し、１６個のバンクＢＡ０乃至ＢＡ１５が割り当てられる。このように割り当てることで、インターリーブするバンクの制約を最小限にすることができる。
【００７９】
例えば、ホスト１１の第１のアドレス空間の最も下位のアドレス（0X0000）から上位に向かって、ホスト１１の第１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３の０行目からｍ−１行目までに割り当てられる。即ち、最も下位のアドレスの１６バイトが、バンクＢＡ０乃至ＢＡ３の０列目乃至３列目の１６バイト（太線で囲われた領域）に割り当てられ、その次のアドレスの１６バイトが、バンクＢＡ０乃至ＢＡ３の４列目乃至７列目の１６バイトに割り当てられる。以下、同様に、上位のアドレスに向かって、ホスト１１の第１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３に割り当てられる。
【００８０】
そして、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３のｍ−１行目まで割り当てられると、その次のホスト１１の第１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ４乃至ＢＡ７に割り当てられる。即ち、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３のｍ−１行目に割り当てられたアドレスの次のアドレスの１６バイトが、バンクＢＡ４乃至ＢＡ７の０列目乃至３列目の１６バイトに割り当てられる。そして、その次のアドレスの１６バイトが、バンクＢＡ４乃至ＢＡ７の４列目乃至７列目の１６バイトに割り当てられる。以下、同様に、上位のアドレスに向かって、ホスト１１の第１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ４乃至ＢＡ７に割り当てられる。
【００８１】
そして、不揮発性メモリ１３のバンクＢＡ４乃至ＢＡ７のｍ−１行目まで割り当てられると、その次のホスト１１の第１のアドレス空間は、不揮発性メモリ１３のバンクＢＡ８乃至ＢＡ１１に割り当てられる。さらに、不揮発性メモリ１３のバンクＢＡ８乃至ＢＡ１１のｍ−１行目までの割り当てられると、その次のホスト１１のアドレス空間は、不揮発性メモリ１３のバンクＢＡ１２乃至ＢＡ１５に割り当てられる。
【００８２】
このように、ホスト１１の第１のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ１５の０行目からｍ−１行目までに割り当てられる。
【００８３】
次に、ホスト１１の第２のアドレス空間について説明する。例えば、ホスト１１の第２のアドレス空間の最も下位のアドレス（0x0400）から上位に向かって、ホスト１１の第２のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ１５のｍ行目からｎ−１行目までに割り当てられる。即ち、最も下位のアドレスの１６バイトが、バンクＢＡ０乃至ＢＡ１５のｍ列目の１６バイトに割り当てられ、その次のアドレスの１６バイトが、バンクＢＡ０乃至ＢＡ１５のｍ＋１列目の１６バイトに割り当てられる。以下、同様に、上位のアドレスに向かって、ホスト１１の第２のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ１５のｎ−１行目までに割り当てられる。
【００８４】
このように、ホスト１１の第２のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ１５のｍ行目からｎ−１行目までに割り当てられる。
【００８５】
次に、ホスト１１の第３のアドレス空間について説明する。例えば、ホスト１１の第３のアドレス空間の最も下位のアドレス（0x1400）から上位に向かって、ホスト１１の第３のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３のｎ行目以降に割り当てられる。即ち、最も下位のアドレスの４バイトが、バンクＢＡ０乃至ＢＡ３のｎ列目の４バイト（太線で囲われた領域）に割り当てられ、その次のアドレスの４バイトが、バンクＢＡ０乃至ＢＡ３のｎ＋１列目の４バイトに割り当てられる。以下、同様に、上位のアドレスに向かって、ホスト１１の第３のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３に割り当てられる。
【００８６】
そして、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３の最後の行までの割り当てが行われると、その次のホスト１１の第３のアドレス空間は、不揮発性メモリ１３のバンクＢＡ４乃至ＢＡ７に割り当てられる。即ち、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３に最後に割り当てられたアドレスの次のアドレスの４バイトが、バンクＢＡ４乃至ＢＡ７のｎ列目の４バイトに割り当てられる。そして、その次のアドレスの４バイトが、バンクＢＡ４乃至ＢＡ７のｎ＋１列目の４バイトに割り当てられる。以下、同様に、上位のアドレスに向かって、ホスト１１の第３のアドレス空間が、不揮発性メモリ１３のバンクＢＡ４乃至ＢＡ７に割り当てられる。
【００８７】
そして、不揮発性メモリ１３のバンクＢＡ４乃至ＢＡ７の最後の行までの割り当てが行われると、その次のホスト１１の第３のアドレス空間は、不揮発性メモリ１３のバンクＢＡ８乃至ＢＡ１１に割り当てられる。さらに、不揮発性メモリ１３のバンクＢＡ８乃至ＢＡ１１の最後の行までの割り当てが行われると、その次のホスト１１のアドレス空間は、不揮発性メモリ１３のバンクＢＡ１２乃至ＢＡ１５に割り当てられる。
【００８８】
このように、ホスト１１の第３のアドレス空間が、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ１５のｎ行目以降に割り当てられる。
【００８９】
また、上述したように、データ記憶システム１０では、ホスト１１が、アクセス単位およびインターリーブ数を設定することで、消去時間と書き込み時間とのバランスを調整し、消去時間がオーバヘッドとして現れないようにすることができる。
【００９０】
次に、図５乃至図１６を参照して、消去時間と書き込み時間とのバランスについて説明する。
【００９１】
図５および図６では、不揮発性メモリ１３のデータの消去時間が書き込み時間よりも長い場合において、アクセス単位が１６バイトと設定され、インターリーブ数が８と設定されたときの例について説明する。
【００９２】
図５には、データ記憶システム１０を構成する各ブロックのうちの説明に必要なブロックが示されている。図５の不揮発性メモリ１３は、１バイト単位でデータの書き込みが可能であり、かつ、１バイト単位でデータの消去が可能であるものとする。また、メモリコントローラ１２から不揮発性メモリ１３へは、不揮発性メモリ１３での処理の同期をとるためのクロック信号CLK、データの書き込みなどを示すコマンド信号CMD、データを書き込む不揮発性メモリ１３のアドレスを示すアドレス信号ADR、および、書き込むデータを示すデータ信号DATAが供給される。
【００９３】
例えば、ホスト１１の下位のアドレスの１６バイトのデータの書き込みが発生すると、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ７の０行目および１行目の１６バイト（太線で囲われた領域）にデータが書き込まれる。
【００９４】
このとき、図６の上側に示すように、クロック信号CLKに同期して、データの書き込みを示すコマンド信号CMD（Write）とともに、アドレス信号ADR（ＢＡ０〜ＢＡ７）およびデータ信号DATA（DATA0〜DATA15）が順次供給される。ここで、不揮発性メモリ１３は、データの消去時間が書き込み時間よりも長く、例えば、データの消去に６クロック分の時間がかかるとともに、データの書き込みに２クロック分の時間がかかるものとする。
【００９５】
そして、図６の下側に示すように、不揮発性メモリ１３では、バンクＢＡ０へのデータDATA0の書き込み（消去して書き込む一連の処理）が開始されると、その次のクロックで、バンクＢＡ１へのデータDATA1の書き込みが開始される。そして、その次のクロックで、バンクＢＡ２へのデータDATA2の書き込みが開始され、以下、順次、バンクＢＡ３、バンクＢＡ４、バンクＢＡ５、バンクＢＡ６、そして、バンクＢＡ７への書き込みが開始される。
【００９６】
そして、バンクＢＡ７への書き込みが開始された次のクロックでは、バンクＢＡ０へのデータDATA0の書き込みが終了しているので、続けて、バンクＢＡ０へのデータDATA8の書き込みが開始される。その次のクロックで、バンクＢＡ１へのデータDATA1の書き込みが終了しているので、続けて、バンクＢＡ１へのデータDATA9の書き込みが開始される。以下、順次、バンクをインターリーブさせてデータの書き込みが行われる。
【００９７】
このように、データの書き込み（消去して書き込む一連の処理）にかかる時間と、バンクのインターリーブ数とのバランスが調整されているので、消去にかかる時間がオーバヘッドとして現れることが回避される。即ち、ホスト１１から見て、消去時間を隠すことができ、不揮発性メモリ１３へのアクセスが連続的に（間隔が生じることなく）行われている。
【００９８】
一方、図７および図８を参照して、不揮発性メモリ１３へのアクセスに間隔が生じる例について説明する。
【００９９】
図７の不揮発性メモリ１３は、図６の不揮発性メモリ１３と同様に、データの消去時間が書き込み時間よりも長く、例えば、データの消去に６クロック分の時間がかかるとともに、データの書き込みに２クロック分の時間がかかるものとする。
【０１００】
このような不揮発性メモリ１３に対して、アクセス単位が１６バイトと設定され、インターリーブ数が４と設定されると、不揮発性メモリ１３へのアクセスに間隔が生じてしまう。
【０１０１】
このように設定されているとき、例えば、ホスト１１の下位のアドレスの１６バイトのデータの書き込みが発生すると、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３の０行目乃至４行目の１６バイト（太線で囲われた領域）にデータが書き込まれる。
【０１０２】
このとき、図８の上側に示すように、クロック信号CLKに同期して、データの書き込みを示すコマンド信号CMD（Write）、アドレス信号ADR（ＢＡ０〜ＢＡ３）、およびデータ信号DATA（DATA0〜DATA15）が順次供給される。
【０１０３】
そして、図８の下側に示すように、不揮発性メモリ１３では、バンクＢＡ０へのデータDATA0の書き込み（消去して書き込む一連の処理）が開始されると、その次のクロックで、バンクＢＡ１へのデータDATA1の書き込みが開始される。そして、その次のクロックで、バンクＢＡ２へのデータDATA2の書き込みが開始され、その次のクロックで、バンクＢＡ３へのデータDATA3の書き込みが開始される。
【０１０４】
この例では、インターリーブ数が４に設定されているため、バンクＢＡ３の次にバンクＢＡ０への書き込みが行われるが、バンクＢＡ３へのデータDATA3の書き込みが開始された次のクロックでは、バンクＢＡ０へのデータDATA0の書き込み処理が終了していない。従って、この場合、バンクＢＡ０へのデータの書き込み処理が終了するまで、不揮発性メモリ１３へのアクセスを待機する必要があり、バンクＢＡ０へのデータDATA0の書き込み処理が終了した後に、バンクＢＡ０へのデータDATA4の書き込みが開始される。
【０１０５】
このように、アクセス単位およびインターリーブ数の設定によって、不揮発性メモリ１３へのアクセスに間隔が生じ、即ち、データの消去時間がオーバヘッドとして現れるため、書き込み処理のパフォーマンスが低下してしまう。従って、ホスト１１は、このような間隔が生じないように、即ち、データの消去時間がオーバヘッドとして現れないように、アクセス単位およびインターリーブ数の設定をする。
【０１０６】
次に、図９および図１０では、不揮発性メモリ１３のデータの消去時間と書き込み時間とが等しい場合において、アクセス単位が１６バイトと設定され、インターリーブ数が２と設定されたときの例について説明する。
【０１０７】
図９の不揮発性メモリ１３は、データの消去に１クロック分の時間がかかるとともに、データの書き込みに１クロック分の時間がかかるものとする。また、不揮発性メモリ１３は、１バイト単位でデータの書き込みが可能であり、かつ、１バイト単位でデータの消去が可能であるものとする。
【０１０８】
例えば、ホスト１１の下位のアドレスの１６バイトのデータの書き込みが発生すると、不揮発性メモリ１３のバンクＢＡ０およびＢＡ１の０行目乃至７行目の１６バイト（太線で囲われた領域）にデータが書き込まれる。
【０１０９】
このとき、図１０の上側に示すように、クロック信号CLKに同期して、データの書き込みを示すコマンド信号CMD（Write）とともに、アドレス信号ADR（ＢＡ０とＢＡ１とが交互に）およびデータ信号DATA（DATA0〜DATA15）が順次供給される。
【０１１０】
そして、図１０の下側に示すように、不揮発性メモリ１３では、バンクＢＡ０へのデータDATA0の書き込み（消去して書き込む一連の処理）が開始されると、その次のクロックで、バンクＢＡ１へのデータDATA1の書き込みが開始される。そして、バンクＢＡ１への書き込みが開始された次のクロックでは、バンクＢＡ０へのデータDATA0の書き込みが終了しているので、続けて、バンクＢＡ０へのデータDATA2の書き込みが開始される。
【０１１１】
以下、順次、バンクＢＡ０とバンクＢＡ１とをインターリーブしながら、データDATA3乃至データDATA15の書き込みが行われる。
【０１１２】
このように、データの書き込み（消去して書き込む一連の処理）にかかる時間と、バンクのインターリーブ数とのバランスが調整されているので、消去にかかる時間がオーバヘッドとして現れることが回避される。
【０１１３】
次に、図１１および図１２では、不揮発性メモリ１３のデータの消去時間が書き込み時間よりも短い場合において、アクセス単位が１６バイトと設定され、インターリーブ数が４と設定されたときの例について説明する。
【０１１４】
図１１の不揮発性メモリ１３は、データの消去時間が書き込み時間よりも短く、例えば、データの消去に１クロック分の時間がかかるとともに、データの書き込みに３クロック分の時間がかかるものとする。また、不揮発性メモリ１３は、１バイト単位でデータの書き込みが可能であり、かつ、１バイト単位でデータの消去が可能であるものとする。
【０１１５】
例えば、ホスト１１の下位のアドレスの１６バイトのデータの書き込みが発生すると、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ３の０行目乃至３行目の１６バイト（太線で囲われた領域）にデータが書き込まれる。
【０１１６】
このとき、図１２の上側に示すように、クロック信号CLKに同期して、データの書き込みを示すコマンド信号CMD（Write）、アドレス信号ADR（ＢＡ０〜ＢＡ３）、およびデータ信号DATA（DATA0〜DATA15）が順次供給される。
【０１１７】
そして、図１２の下側に示すように、不揮発性メモリ１３では、バンクＢＡ０へのデータDATA0の書き込み（消去して書き込む一連の処理）が開始されると、その次のクロックで、バンクＢＡ１へのデータDATA1の書き込みが開始される。そして、その次のクロックで、バンクＢＡ２へのデータDATA2の書き込みが開始され、その次のクロックで、バンクＢＡ３へのデータDATA3の書き込みが開始される。
【０１１８】
そして、バンクＢＡ３への書き込みが開始された次のクロックでは、バンクＢＡ０へのデータDATA0の書き込みが終了しているので、続けて、バンクＢＡ０へのデータDATA4の書き込みが開始される。その次のクロックで、バンクＢＡ１へのデータDATA1の書き込みが終了しているので、続けて、バンクＢＡ１へのデータDATA5の書き込みが開始される。以下、順次、バンクをインターリーブさせてデータの書き込みが行われる。
【０１１９】
このように、データの書き込み（消去して書き込む一連の処理）にかかる時間と、バンクのインターリーブ数とのバランスが調整されているので、消去にかかる時間がオーバヘッドとして現れることが回避される。即ち、ホスト１１から見て、消去時間を隠すことができ、不揮発性メモリ１３へのアクセスが連続的に（間隔が生じることなく）行われている。
【０１２０】
一方、図１３および図１４を参照して、不揮発性メモリ１３へのアクセスに間隔が生じる例について説明する。
【０１２１】
図１３の不揮発性メモリ１３は、図１１の不揮発性メモリ１３と同様に、データの消去時間が書き込み時間よりも短く、例えば、データの消去に１クロック分の時間がかかるとともに、データの書き込みに３クロック分の時間がかかるものとする。
【０１２２】
このような不揮発性メモリ１３に対して、アクセス単位が１６バイトと設定され、インターリーブ数が２と設定されると、不揮発性メモリ１３へのアクセスに間隔が生じてしまう。
【０１２３】
このように設定されているとき、例えば、ホスト１１の下位のアドレスの１６バイトのデータの書き込みが発生すると、不揮発性メモリ１３のバンクＢＡ０およびＢＡ１の０行目乃至７行目の１６バイト（太線で囲われた領域）にデータが書き込まれる。
【０１２４】
このとき、図１４の上側に示すように、クロック信号CLKに同期して、データの書き込みを示すコマンド信号CMD（Write）、アドレス信号ADR（ＢＡ０とＢＡ１とが交互に）、およびデータ信号DATA（DATA0〜DATA15）が順次供給される。
【０１２５】
そして、図１４の下側に示すように、不揮発性メモリ１３では、バンクＢＡ０へのデータDATA0の書き込み（消去して書き込む一連の処理）が開始されると、その次のクロックで、バンクＢＡ１へのデータDATA1の書き込みが開始される。
【０１２６】
この例では、インターリーブ数が２に設定されているため、バンクＢＡ１の次にバンクＢＡ０への書き込みが行われるが、バンクＢＡ１へのデータDATA1の書き込みが開始された次のクロックでは、バンクＢＡ０へのデータDATA0の書き込み処理が終了していない。従って、この場合、バンクＢＡ０へのデータの書き込み処理が終了するまで、不揮発性メモリ１３へのアクセスを待機する必要があり、バンクＢＡ０へのデータDATA0の書き込み処理が終了した後に、バンクＢＡ０へのデータDATA2の書き込みが開始される。また、同様に、バンクＢＡ１へのデータDATA3の書き込みからバンクＢＡ０へのデータDATA4の書き込みまでの間、バンクＢＡ１へのデータDATA5の書き込みからバンクＢＡ０へのデータDATA6の書き込みまでの間にものアクセスに間隔が生じる。
【０１２７】
このように、アクセス単位およびインターリーブ数の設定によって、不揮発性メモリ１３へのアクセスに間隔が生じ、即ち、データの消去時間がオーバヘッドとして現れるため、書き込み処理のパフォーマンスが低下してしまう。従って、ホスト１１は、このような間隔が生じないように、即ち、データの消去時間がオーバヘッドとして現れないように、アクセス単位およびインターリーブ数の設定をする。
【０１２８】
ここで、不揮発性メモリ１３では、データを消去して書き込む一連の処理を１バイトごとに行うこともできるし、この一連の処理を複数バイトごとに行うこともできる。
【０１２９】
図１５および図１６では、データを消去して書き込む一連の処理を２バイトごとに行う場合において、アクセス単位が１６バイトと設定され、インターリーブ数が８と設定されたときの例について説明する。即ち、メモリコントローラ１２は、ホスト１１からのアクセス単位が予め設定されているので、データの書き込みを開始するタイミングで、アクセス単位を構成する複数バイトを予め消去しておき、書き込みデータが転送された直後に、データを書き込むことができる。これにより、データを書き込む処理速度をより改善させることができる。
【０１３０】
また、図１５の不揮発性メモリ１３は、２バイトのデータの消去に６クロック分の時間がかかるとともに、２バイトのデータの書き込みに４クロック分の時間がかかるものとする。また、不揮発性メモリ１３は、１バイト単位でデータの書き込みが可能であり、かつ、１バイト単位でデータの消去が可能であるものとする。
【０１３１】
例えば、ホスト１１の下位のアドレスの１６バイトのデータの書き込みが発生すると、不揮発性メモリ１３のバンクＢＡ０乃至ＢＡ７の０行目および１行目の１６バイト（太線で囲われた領域）にデータが書き込まれる。
【０１３２】
このとき、図１６の上側に示すように、クロック信号CLKに同期して、データの書き込みを示すコマンド信号CMD（Write）とともに、アドレス信号ADR（ＢＡ０〜ＢＡ７）およびデータ信号DATA（DATA0〜DATA15）が供給される。
【０１３３】
そして、図１６の下側に示すように、不揮発性メモリ１３では、バンクＢＡ０の０行目および１行目へのデータDATA0およびデータDATA8の書き込み（消去して書き込む一連の処理）が開始される。そして、その次のクロックで、バンクＢＡ１０の０行目および１行目へのデータDATA1およびデータDATA9の書き込みが開始される。以下、順次、バンクＢＡ３乃至バンクＢＡ７の０行目および１行目への書き込みが開始される。
【０１３４】
このように、データを消去して書き込む一連の処理を複数バイトごとに行う場合においても、バンクのインターリーブ数とのバランスが調整されているので、消去にかかる時間がオーバヘッドとして現れることが回避される。
【０１３５】
次に、データ記憶システム１０において、処理速度を優先してメモリ制御を行うときに使用するインターリーブ数を決定するインターリーブ数決定処理について説明する。
【０１３６】
データ記憶システム１０において処理速度を優先する場合、図５乃至図１６を参照して説明したように、ホスト１１から見て、不揮発性メモリ１３におけるデータの消去動作を隠しながら、データの書き込みを実行することができるインターリーブ数が用いられる。
【０１３７】
そのようなインターリーブ数は、例えば、消去時間ＴＥ、書き込み時間ＴＷ、データロード時間ＴＤＬ、クロック周期、およびメモリI/Oビット幅に基づいて決定される。ここで、消去時間ＴＥは、不揮発性メモリ１３の消去単位当たりで消去に必要な時間であり、書き込み時間ＴＷは、不揮発性メモリ１３の書き込み単位当たりで書き込みに必要な時間である。また、データロード時間ＴＤＬは、データの書き込み開始バンクからインターリーブ数で決められる最後のバンクまでの合計の書き込みデータサイズ分のデータ（１バンク数あたりのデータ）をメモリコントローラ１２から不揮発性メモリ１３に転送するのに必要な時間であって、例えば、１クロックあたり１バイトのデータを転送する場合には、１クロック周期×インターリーブ数である。また、クロック周期は、図６などを参照して説明したクロック信号CLKの１クロック分の時間であり、メモリI/Oビット幅は、１クロック周期あたりにメモリコントローラ１２から不揮発性メモリ１３に転送されるデータ量である。
【０１３８】
ホスト１１は、不揮発性メモリ１３が、消去時間ＴＥ、書き込み時間ＴＷ、およびクロック周期が等しいという条件を満たすとき、インターリーブ数を２に決定する。ここで、この条件（消去時間ＴＥ＝書き込み時間ＴＷ＝クロック周期）を第１の決定条件とする。例えば、図９および図１０を参照して説明した例では、消去時間ＴＥ、書き込み時間ＴＷ、およびクロック周期が等しいので、インターリーブ数が２と設定される。
【０１３９】
また、ホスト１１は、不揮発性メモリ１３が、第１の決定条件を満たさない場合であって、消去時間ＴＥと書き込み時間ＴＷとの和がデータロード時間ＴＤＬ以下であり、かつ、バンク数以下のインターリーブ数を設定することができるという条件を満たすとき、インターリーブ数を、消去時間ＴＥと書き込み時間ＴＷとの和をクロック周期で除算した値（即ち、インターリーブ数＝（消去時間ＴＥ＋書き込み時間ＴＷ）／クロック周期）に決定する。ここで、この条件（消去時間ＴＥ＋書き込み時間ＴＷ≦データロード時間ＴＤＬ、かつ、インターリーブ数＜バンク数）を第２の決定条件とし、インターリーブ数を決定する式を第１の決定式とする。
【０１４０】
例えば、図５および図６に示した例では、消去時間ＴＥが６クロック周期であり、書き込み時間ＴＷが２クロック周期であるので、インターリーブ数が８（＝６クロック周期＋２クロック周期／クロック周期）と設定される。また、図１１および図１２に示した例では、消去時間ＴＥが１クロック周期であり、書き込み時間ＴＷが３クロック周期であるので、インターリーブ数が４（＝１クロック周期＋３クロック周期／クロック周期）と設定される。
【０１４１】
また、ホスト１１は、不揮発性メモリ１３が第１および第２の決定条件を満たさない場合であって、ホスト１１からのアクセス単位が、バンク数とメモリI/Oビット幅とを積算した値未満であるとき、インターリーブ数を、ホスト１１からのアクセス単位をメモリＩ／Ｏで除算した値（即ち、インターリーブ数＝ホスト１１からのアクセス単位／メモリI/Oビット幅）に決定する。ここで、この条件（ホスト１１からのアクセス単位＜バンク数×メモリI/Oビット幅）を第３の決定条件とし、インターリーブ数を決定する式を第２の決定式とする。
【０１４２】
また、ホスト１１は、不揮発性メモリ１３が第１乃至第３の決定条件のいずれも満たさない場合、インターリーブ数を、不揮発性メモリ１３のバンク数に決定する。
【０１４３】
次に、図１７は、インターリーブ数決定処理を説明するフローチャートである。例えば、データ記憶システム１０では、初回の起動時に、ホスト１１がインターリーブ数決定処理を実行する。
【０１４４】
ステップＳ１において、ホスト１１は、不揮発性メモリ１３が第１の決定条件（消去時間ＴＥ＝書き込み時間ＴＷ＝クロック周期）を満たしているか否かを判定する。
【０１４５】
ステップＳ１において、ホスト１１が、不揮発性メモリ１３が第１の決定条件を満たしていると判定した場合、処理はステップＳ２に進み、ホスト１１は、インターリーブ数を２に決定し、インターリーブ数決定処理は終了する。
【０１４６】
一方、ステップＳ１において、ホスト１１が、不揮発性メモリ１３が第１の決定条件を満たしていないと判定した場合、処理はステップＳ３に進む。ステップＳ３において、ホスト１１は、不揮発性メモリ１３が第２の決定条件（消去時間ＴＥ＋書き込み時間ＴＷ＜データロード時間ＴＤＬ、かつ、インターリーブ数＜バンク数）を満たしているか否かを判定する。
【０１４７】
ステップＳ３において、ホスト１１が、不揮発性メモリ１３が第２の決定条件を満たしていると判定した場合、処理はステップＳ４に進む。ステップＳ４において、ホスト１１は、第１の決定式（インターリーブ数＝（消去時間ＴＥ＋書き込み時間ＴＷ）／クロック周期）によりインターリーブ数を決定し、インターリーブ数決定処理は終了する。
【０１４８】
一方、ステップＳ３において、ホスト１１が、不揮発性メモリ１３が第２の決定条件を満たしていないと判定した場合、処理はステップＳ５に進む。ステップＳ５において、ホスト１１は、不揮発性メモリ１３が第３の決定条件（ホスト１１からのアクセス単位＜バンク数×メモリI/Oビット幅）を満たしているか否かを判定する。
【０１４９】
ステップＳ５において、ホスト１１が、不揮発性メモリ１３が第３の決定条件を満たしていると判定した場合、処理はステップＳ６に進む。ステップＳ６において、ホスト１１は、第２の決定式（インターリーブ数＝ホスト１１からのアクセス単位／メモリI/Oビット幅）によりインターリーブ数を決定し、インターリーブ数決定処理は終了する。
【０１５０】
一方、ステップＳ５において、ホスト１１が、不揮発性メモリ１３が第３の決定条件を満たしていないと判定した場合、処理はステップＳ７に進む。ステップＳ７において、ホスト１１は、インターリーブ数を不揮発性メモリ１３のバンク数に決定し、インターリーブ数決定処理は終了する。
【０１５１】
なお、例えば、ステップＳ５の判定における第３の決定条件には、ホスト１１からのアクセス単位が含まれており、インターリーブ数決定処理を実行するときにおいてホスト１１からのアクセス単位が決まっていれば、そのホスト１１からのアクセス単位に基づいて判定が行われる。一方、例えば、インターリーブ数決定処理においてホスト１１からのアクセス単位が決まっていないときには、ホストアプリケーションの実行を開始するときに、ステップＳ５乃至Ｓ７の処理を行ってインターリーブ数を決定することができる。
【０１５２】
以上のように、データ記憶システム１０では、ホスト１１が、インターリーブ数を決定してメモリコントローラ１２に通知するので、メモリ制御の自由度を高く(柔軟な使い方ができるように)なり、処理速度を優先してメモリ制御をしたり、消費電力の抑制を優先してメモリ制御をしたりすることができる。なお、本実施の形態では、ホスト１１がインターリーブ数を決定しているが、例えば、メモリコントローラ１２や不揮発性メモリ１３が決定してもよい。
【０１５３】
次に、図１８は、図１のデータ記憶システム１０においてメモリコントローラ１２に対する設定を行う処理を説明するフローチャートである。
【０１５４】
例えば、データ記憶システム１０が搭載されている装置に電源が投入されて、ホスト１１がホストアプリケーションの実行を開始すると処理が開始され、ステップＳ１１において、ホスト１１は、実行するホストアプリケーションの仕様やデータ記憶システム１０の使用環境などに応じて、処理速度を優先してメモリ制御を行うのか、消費電力の抑制を優先してメモリ制御を行うのかを判定する。
【０１５５】
ステップＳ１１において、ホスト１１が、処理速度を優先してメモリ制御を行うと判定した場合、処理はステップＳ１２に進む。ステップＳ１２において、ホスト１１は、メモリ制御に使用するインターリーブ数を、図１７のインターリーブ数決定処理において決定したインターリーブ数に決定する。
【０１５６】
一方、ステップＳ１１において、ホスト１１が、消費電力の抑制を優先してメモリ制御を行うと判定した場合、処理はステップＳ１３に進み、ホスト１１は、メモリ制御に使用するインターリーブ数を小さな数値、例えば、２に決定する。
【０１５７】
ステップＳ１２またはＳ１３の処理後、処理はステップＳ１４に進む。ステップＳ１４において、ホスト１１は、設定情報として、実行するホストアプリケーションが使用するホスト１１でのアドレス空間、実行するホストアプリケーションに応じたアクセス単位、および、ステップＳ１２またはＳ１３で決定したインターリーブ数をメモリコントローラ１２に通知する。
【０１５８】
ステップＳ１４の処理後、処理はステップＳ１５に進み、ホスト１１は、実行する全てのホストアプリケーションについて、アドレス空間、アクセス単位、およびインターリーブ数をメモリコントローラ１２に通知したか否かを判定する。即ち、ホスト１１において複数のホストアプリケーションを実行する場合には、図４を参照して説明したように、ホストアプリケーションごとにアドレス空間、アクセス単位、およびインターリーブ数をメモリコントローラ１２に設定する必要がある。
【０１５９】
従って、ステップＳ１５において、ホスト１１が、実行する全てのホストアプリケーションについて、アドレス空間、アクセス単位、およびインターリーブ数をメモリコントローラ１２に通知していないと判定した場合、即ち、それらをメモリコントローラ１２に通知していないホストアプリケーションを実行する場合、処理はステップＳ１１に戻り、それらをメモリコントローラ１２に通知する処理を行っていないホストアプリケーションを対象として、以下、同様の処理が繰り返される。
【０１６０】
一方、ステップＳ１５において、ホスト１１が、実行する全てのホストアプリケーションについて、アドレス空間、アクセス単位、およびインターリーブ数をメモリコントローラ１２に通知したと判定した場合、処理は終了される。
【０１６１】
以上のように、データ記憶システム１０では、ホスト１１が、実行するホストアプリケーションごとに、アドレス空間、アクセス単位、およびインターリーブ数をメモリコントローラ１２に通知することができる。このように、ホスト１１が、アドレス空間、アクセス単位、およびインターリーブ数を通知することで、データ記憶システム１０では、実行するホストアプリケーションの仕様やデータ記憶システム１０の使用環境などに応じて不揮発性メモリ１３の使い方を選択することができる。
【０１６２】
即ち、従来、消去が必要な不揮発性メモリを使ったシステムにおいて、ホストが、アドレス空間、アクセス単位、並びに、不揮発性メモリの消去時間および書き込み時間を考慮してインターリーブ数をメモリコントローラに通知することはなく、ホストからのアクセス単位に合わせて、消去時間を隠すような柔軟なメモリ制御を行うことができなかった。これに対し、データ記憶システム１０では、ホスト１１が、実行するホストアプリケーションごとに、アドレス空間、アクセス単位、並びに、不揮発性メモリの消去時間および書き込み時間を考慮したインターリーブ数をメモリコントローラ１２に通知することができるので、実行するホストアプリケーションの仕様やデータ記憶システム１０の使用環境などに応じたメモリ制御、即ち、従来よりも自由度が高い（柔軟な）メモリ制御を行うことができる。このように、従来よりメモリ制御の自由度を向上させ、不揮発性メモリの消去動作を隠しながら、書き込みを実行することができる。
【０１６３】
次に、図１９は、図１のデータ記憶システム１０においてアドレスを変換する処理を説明するフローチャートである。
【０１６４】
例えば、データ記憶システム１０が搭載されている装置に電源が投入されたとき、または、ホスト１１から設定情報が供給されたときに、処理が開始される。ステップＳ２１において、メモリコントローラ１２のメモリ制御部２８は、電源が投入されたことにより処理が開始されたのか、ホスト１１からの設定情報が供給されたことにより処理が開始されたのかを判定する。
【０１６５】
ステップＳ２１において、メモリ制御部２８が、電源が投入されたことにより処理が開始されたと判定した場合、処理はステップＳ２２に進み、メモリ制御部２８は、メモリインターフェイス２２を介して、不揮発性メモリ１３から設定情報を読み出す。即ち、データ記憶システム１０では、システム停止時に、メモリ制御部２８が、アドレス空間設定部２５に記憶されているアドレス空間、アクセス単位設定部２６に記憶されているアクセス単位、インターリーブ数設定部２７に記憶されているインターリーブ数を、設定情報として不揮発性メモリ１３に記憶させておくことができ、ステップＳ２２では、それらの設定情報が読み出される。
【０１６６】
一方、ステップＳ２１において、メモリ制御部２８が、ホスト１１から設定情報が供給されたことにより処理が開始されたと判定した場合、処理はステップＳ２３に進み、メモリ制御部２８は、ホスト１１から供給される設定情報を受け取る。即ち、メモリ制御部２８は、図１８のステップＳ１４でホスト１１が通知するアドレス空間、アクセス単位、およびインターリーブ数を受け取る。
【０１６７】
ステップＳ２２またはＳ２３の処理後、処理はステップＳ２４に進み、メモリ制御部２８は、アドレス空間をアドレス空間設定部２５のレジスタに保存させる。また、メモリ制御部２８は、アクセス単位をアクセス単位設定部２６のレジスタに保存させ、インターリーブ数をインターリーブ数設定部２７のレジスタに保存させる。
【０１６８】
ステップＳ２４の処理後、処理はステップＳ２５に進み、アドレス変換部２４は、ステップＳ２４で各部に保存されたアドレス空間、アクセス単位、およびインターリーブ数に基づいて、ホスト１１のアドレス空間を不揮発性メモリ１３におけるアドレスに変換する。
【０１６９】
例えば、アクセス単位が８バイトに設定され、インターリーブ数が４に設定された場合、アドレス変換部２４は、ホスト１１のアドレスに対して、図２を参照して説明したように、バンクＢＡ０乃至ＢＡ１５を割り当てる。つまり、アドレス変換部２４は、ホスト１１の下位のアドレスから上位に向かって、順次、バンクＢＡ０乃至ＢＡ３、バンクＢＡ４乃至ＢＡ７、バンクＢＡ８乃至ＢＡ１１、バンクＢＡ１２乃至ＢＡ１５を割り当てる。
【０１７０】
このようにアドレス変換部２４は、ホスト１１のアドレス空間を不揮発性メモリ１３におけるアドレスに変換し、その結果得られるアドレス変換表を、例えば、自身のレジスタに保存し、処理は終了する。
【０１７１】
以上のように、メモリコントローラ１２では、アドレス空間、アクセス単位、およびインターリーブ数に基づいて、ホスト１１のアドレス空間を不揮発性メモリ１３におけるアドレスに変換することができる。
【０１７２】
次に、図２０は、図１の不揮発性メモリ１３にアクセス単位分のデータを書き込む処理を説明するフローチャートである。
【０１７３】
ホスト１１が、書き込みコマンドとともに、不揮発性メモリ１３に書き込むデータと、そのデータのホスト１１でのアドレスとの送信を開始すると処理が開始され、ステップＳ３１において、メモリコントローラ１２は、アドレスとデータの受信を開始する。そして、メモリコントローラ１２では、データバッファ２３が、不揮発性メモリ１３に書き込むデータをバッファリングするとともに、メモリ制御部２８が、そのデータのホスト１１でのアドレスを取得する。
【０１７４】
ステップＳ３２において、メモリ制御部２８は、アドレス変換部２４が保持しているアドレス変換表を参照し、ステップＳ３１で取得したホスト１１でのアドレスを、不揮発性メモリ１３のアドレスに変換し、処理はステップＳ３３に進む。
【０１７５】
このとき、メモリ制御部２８が参照するアドレス変換表は、不揮発性メモリ１３のバンクをインターリーブしながら書き込み単位ごとの書き込みを行って、インターリーブ数に応じたバンク数だけインターリーブすると、先頭のバンクの次の書き込み単位の行に戻るということを繰り返すように、アドレスが割り当てられているので、インターリーブ数に応じたバンク数で並列動作しながら書き込みが行われるように、ホスト１１でのアドレスが不揮発性メモリ１３のアドレスに変換される。
【０１７６】
ステップＳ３３において、メモリ制御部２８は、書き込みコマンドとともに、ステップＳ３２で変換したアドレスと、その変換後のアドレスに対応するデータバッファ２３にバッファリングされているデータとを不揮発性メモリ１３に送信する。
【０１７７】
ステップＳ３３の処理後、処理はステップＳ３４に進み、メモリ制御部２８は、アクセス単位分のデータを不揮発性メモリ１３に転送したか否かを判定する。
【０１７８】
ステップＳ３４において、メモリ制御部２８が、アクセス単位分のデータを不揮発性メモリ１３に転送していないと判定した場合、処理はステップＳ３２に戻り、アクセス単位分のデータを転送すると判定されるまで、ステップＳ３２乃至Ｓ３４の処理が繰り返される。一方、メモリ制御部２８が、アクセス単位分のデータを不揮発性メモリ１３に転送したと判定した場合、処理は終了する。
【０１７９】
以上のように、データ記憶システム１０では、メモリコントローラ１２に、ホスト１１のアドレス空間、アクセス単位、およびインターリーブ数を設定することで、インターリーブ数に応じたバンク数で並列動作しながら書き込みが行われるように、ホスト１１でのアドレスが不揮発性メモリ１３のアドレスに変換される。これにより、不揮発性メモリ１３が、データの消去を行った後にデータの書き込みを行うという一連の処理が必要とされるタイプのものであっても、不揮発性メモリ１３のバンクＢＡ１乃至ＢＡＮをインターリーブしながら書き込みを行うことで、消去時間によるオーバヘッドを隠すことができる。これにより、データを書き込む処理速度を改善すること、即ち、データの書き込み処理を高速化することができる。
【０１８０】
即ち、従来のメモリ制御では、アクセス単位が考慮されていないため、アプリケーションによって様々な単位で書き込みが行われる場合には、書き込みデータをデータラッチにキャッシュする時間よりも消去時間が長くなることがあり、その場合、消去時間によるオーバヘッドが顕著に表れたり、書き込み速度が向上するようにホストの論理アドレスを不揮発性メモリのバンクに割り当てることができなかったりした。
【０１８１】
これに対し、データ記憶システム１０では、メモリコントローラ１２が、ホスト１１のアドレス空間、アクセス単位、およびインターリーブ数を把握することで、オーバヘッドが現れないようにすることができ、書き込み速度を改善することができる。
【０１８２】
また、メモリ制御部２８においてアドレスの変換が行われるので、ホスト１１は、不揮発性メモリ１３のアドレスと、インターリーブするバンクＢＡ１乃至ＢＡＮとの関係を意識することなく処理を行うことができる。
【０１８３】
さらに、ホスト１１が、アクセス単位の異なる複数のホストアプリケーションを実行する場合において、１つの不揮発性メモリ１３を使用するとき、それぞれのホストアプリケーションが使用するアドレス空間ごとに、アクセス単位およびインターリーブ数が設定されているので、それぞれのホストアプリケーションごとに、最適な処理速度でデータを書き込むことができる。
【０１８４】
ところで、上述したように、ホスト１１は所定のアクセス単位でデータを転送し、そのアクセス単位はアクセス単位設定部２６に保存されている。また、ホスト１１は、アクセス単位において下位のアドレスのデータから転送を開始する。従って、メモリ制御部２８は、ホスト１１からアクセス単位分のデータが転送されてくると、その最初のデータのアドレスと、アクセス単位設定部２６に設定されているアクセス単位とに基づいて、アクセス単位のデータを書き込む不揮発性メモリ１３の領域を把握することができる。
【０１８５】
これにより、メモリコントローラ１２は、データの書き込みに必要になる領域に、不揮発性メモリ１３のデータを消去することを指示するコマンド（消去コマンド）をあらかじめ送信し、その領域に書き込むデータが蓄積されたタイミングで、不揮発性メモリ１３への書き込みを開始するようなメモリ制御（以下、適宜、先消しメモリ制御と称する）を行うことができる。
【０１８６】
このとき、即ち、書き込みコマンドの供給の前に、消去コマンドがメモリコントローラ１２から供給されたとき、不揮発性メモリ１３において、制御部３２は、不揮発性メモリ１３のデータの消去を行い、その後、書き込みコマンドが供給されると、データの消去が完了次第、データの書き込みを行う。
【０１８７】
図２１および図２２を参照して、先消しメモリ制御を行う処理と、先消しメモリ制御を行わない処理について説明する。
【０１８８】
図２１および図２２は、アクセス単位が３２バイトと設定され、インターリーブ数が４と設定され、不揮発性メモリ１３の書き込み単位および消去単位が８バイトであるときのメモリコントローラ１２および不揮発性メモリ１３の動作を示すタイミングチャートである。
【０１８９】
メモリコントローラ１２は、ホスト１１から不揮発性メモリ１３に書き込むデータの供給が開始されると、ホスト１１からのアクセス単位が３２バイトであることより、ホスト１１からのデータを不揮発性メモリ１３に供給するより先に、３２バイト分の領域の消去を行う。このとき、最初にデータを書き込むバンクについては、データを書き込むコマンドを送信することによって、データを消去した後にデータの書き込みが行われるので、メモリコントローラ１２は、最初にデータを書き込むバンク以外のバンクにデータの消去を示すコマンド信号を送信する。ここで、インターリーブ数が４と設定されていることより、メモリコントローラ１２は、バンクＢＡ０以外のバンクＢＡ１乃至ＢＡ３にデータの消去を示すコマンド信号を送信する。
【０１９０】
即ち、図２１の上側に示すように、メモリコントローラ１２は、最初の３クロックで、データの消去を示すコマンド信号CMD（Erase）（図２１においては、Eで示されているコマンド信号）とともに、アドレス信号ADR（１）、アドレス信号ADR（２）、およびアドレス信号ADR（３）を順次送信する。これにより、不揮発性メモリ１３は、書き込み単位および消去単位である８バイトの消去（Erase Byte ０〜７）を、バンクＢＡ０乃至ＢＡ３に対して順次開始する。
【０１９１】
そして、メモリコントローラ１２は、その次のクロックから、データの書き込みを示すコマンド信号CMD（Write）（図２１においては、Wで示されているコマンド信号）の送信を開始するとともに、アドレス信号ADR（０）と、バンクＢＡ０に書き込む８バイト分のデータ（Data ０〜７）とを順次送信する。その後、メモリコントローラ１２は、アドレス信号ADR（１）と、バンクＢＡ１に書き込む８バイト分のデータ（Data ８〜１５）とを送信し、アドレス信号ADR（２）と、バンクＢＡ２に書き込む８バイト分のデータ（Data １６〜２３）とを送信し、アドレス信号ADR（３）と、バンクＢＡ３に書き込む８バイト分のデータ（Data ２４〜３１）とを送信する。
【０１９２】
一方、不揮発性メモリ１３では、メモリコントローラ１２からのデータを一時的に蓄積し、データの書き込みを開始するバンクＢＡ０の８バイト分のデータの消去が終了すると、その次のクロックで、バンクＢＡ０への８バイト分のデータ（Data ０〜７）の書き込みを開始する。このとき、不揮発性メモリ１３には、バンクＢＡ１に書き込む８バイト分のデータも既に蓄積されているので、不揮発性メモリ１３は、その次のクロックで、バンクＢＡ１への８バイト分のデータ（Data ８〜１５）の書き込みを開始する。
【０１９３】
その後、不揮発性メモリ１３は、バンクＢＡ２に書き込む８バイト分のデータが蓄積されるまで待機し、バンクＢＡ２に書き込む８バイト分のデータが蓄積されると、その次のクロックで、バンクＢＡ２への８バイト分のデータ（Data １６〜２３）の書き込みを開始する。同様に、不揮発性メモリ１３は、バンクＢＡ３に書き込む８バイト分のデータが蓄積されるまで待機し、バンクＢＡ３に書き込む８バイト分のデータが蓄積されると、その次のクロックで、バンクＢＡ３への８バイト分のデータ（Data ２４〜３１）の書き込みを開始する。
【０１９４】
このように、先消しメモリ制御を行うときには、メモリコントローラ１２がホスト１１からのアクセス単位に基づいてデータの書き込みに必要となる領域を把握することができるので、ホスト１１からの書き込みアドレスを不揮発性メモリ１３のアドレスに変換することで、先消しする不揮発性メモリ１３のアドレスを決定することができる。従って、不揮発性メモリ１３の消去単位分のデータがそろう前に、データの消去を実行することができる。そして、不揮発性メモリ１３では、データの消去が完了したバンクに対して、書き込み単位分のデータが揃い次第、データの書き込みを実行することができる。
【０１９５】
これに対し、先消しメモリ制御を行わない場合、即ち、ホスト１１が、アクセス単位をメモリコントローラ１２に通知せずに、メモリコントローラ１２が、データの書き込みに必要となる領域を把握することができない場合には、メモリコントローラ１２は、不揮発性メモリ１３の書き込み単位のデータ分が揃うまでは、データの消去を実行することができない。例えば、不揮発性メモリ１３に書き込むデータが、不揮発性メモリ１３の消去単位未満である場合には、データのマージが必要になり、不揮発性メモリ１３の消去単位分のデータがそろう前に消去を実行すると、消去してはいけないデータまで消去することになる。
【０１９６】
従って、先消しメモリ制御を行わない場合には、図２２に示すように、メモリコントローラ１２は、データを書き込む順に従って、データの書き込みを示すコマンド信号CMD（Write）と、アドレス信号ADR（０）乃至ADR（３）と、データ（Data ０〜３１）とを順次送信する。
【０１９７】
そして、不揮発性メモリ１３では、コマンド信号CMD（Write）とともにアドレス信号ADR（０）が供給されると、バンクＢＡ０への消去を開始して、その消去の後にデータ（Data ０〜７）の書き込みを行う。以下、同様に、コマンド信号CMD（Write）とともにアドレス信号ADR（１）が供給されると、バンクＢＡ１への消去を開始して、その消去の後にデータ（Data ８〜１５）の書き込みを行う。その後、コマンド信号CMD（Write）とともにアドレス信号ADR（２）が供給されると、バンクＢＡ２への消去を開始して、その消去の後にデータ（Data １６〜２３）の書き込みを行う。その後、コマンド信号CMD（Write）とともにアドレス信号ADR（３）が供給されると、バンクＢＡ３への消去を開始して、その消去の後にデータ（Data ２４〜３１）の書き込みを行う。
【０１９８】
図２１と図２２とを比較して分かるように、先消しメモリ制御を行わない処理よりも、先消しメモリ制御を行う処理の方が、データの書き込みを早く（図２１と図２２の例では８クロック分早く）完了することができる。
【０１９９】
また、先消しメモリ制御を行うときには、メモリコントローラ１２は、不揮発性メモリ１３での消去の実行中に、不揮発性メモリ１３へのデータを転送することができるので、不揮発性メモリ１３の消去単位当たりで消去に必要な時間が長く、不揮発性メモリ１３の書き込み単位が大きいほど、不揮発性メモリ１３への書き込み処理に必要な時間を短縮することができる。
【０２００】
次に、図２３は、先消しメモリ制御を行って、図１の不揮発性メモリ１３にアクセス単位分のデータを書き込む処理を説明するフローチャートである。
【０２０１】
ホスト１１が、書き込みコマンドとともに、不揮発性メモリ１３に書き込むデータと、そのデータのホスト１１でのアドレスとの送信を開始すると処理が開始され、ステップＳ５１において、メモリコントローラ１２は、アドレスとデータの受信を開始する。そして、メモリコントローラ１２では、データバッファ２３が、不揮発性メモリ１３に書き込むデータをバッファリングするとともに、メモリ制御部２８が、そのデータのホスト１１でのアドレスを取得する。
【０２０２】
ステップＳ５２において、メモリ制御部２８は、アクセス単位分のデータを書き込むのに必要な、インターリーブ数ごとに書き込みを繰り返す繰り返し回数を決定し、その繰り返し回数をカウントするための繰り返しパラメータを０にセットする。即ち、ホスト１１からのアクセス単位が、インターリーブ数と書き込み単位とを積算した値より大きい場合には、データの書き込みを開始するバンクから、インターリーブ数で決められる最後のバンクまでの書き込みを、複数回、繰り返すことになり、メモリ制御部２８は、この繰り返す回数を求める。
【０２０３】
例えば、不揮発性メモリ１３の書き込み単位がＡ（Byte）であり、インターリーブ数がＢであり、ホスト１１からのアクセス単位がＣ（Byte）であるとすると、繰り返し回数は、Ｃ／Ａ×Ｂで求められる。具体的には、不揮発性メモリ１３の書き込み単位が８（Byte）であり、インターリーブ数が４であり、ホスト１１からのアクセス単位が６４（Byte）であるとすると、繰り返し回数は２と求められる。
【０２０４】
ステップＳ５２の処理後、処理はステップＳ５３に進み、メモリ制御部２８は、データの書き込みの対象となるバンクであって、あらかじめ消去コマンドを送信してデータの消去を行うバンクを決定する。例えば、データの書き込みを開始するアドレス（最初にホスト１１から送信されてきたデータのアドレスを、不揮発性メモリ１３のアドレスに変換したアドレス）と、アクセス単位設定部２６に設定されているアクセス単位とに基づいて、アクセス単位分のデータの書き込みに必要となる複数のバンクを把握し、それらのバンクのうちの、２番目以降にデータが書き込まれるバンクを、先消しするバンクとして決定する。
【０２０５】
ステップＳ５３の処理後、処理はステップＳ５４に進み、メモリ制御部２８は、ステップＳ５３で先消しすると決定したバンクに対し、データを書き込む順に、消去コマンドを送信し、処理はステップＳ５５に進む。
【０２０６】
ステップＳ５５において、メモリ制御部２８は、アドレス変換部２４が保持しているアドレス変換表を参照し、ステップＳ５１で取得したホスト１１でのアドレスを、不揮発性メモリ１３のアドレスに変換し、処理はステップＳ５６に進む。
【０２０７】
ステップＳ５６において、メモリ制御部２８は、書き込みコマンドとともに、ステップＳ５５で変換したアドレスと、その変換後のアドレスに対応するデータバッファ２３にバッファリングされているデータとを不揮発性メモリ１３に送信する。
【０２０８】
ステップＳ５６の処理後、処理はステップＳ５７に進み、メモリ制御部２８は、１インターリーブ数分のデータを不揮発性メモリ１３に転送したか否かを判定する。
【０２０９】
例えば、１インターリーブ数分のデータとは、データの書き込みを開始するバンクから、インターリーブ数で決められる最後のバンクまでの書き込み単位での書き込みを繰り返して行うときの、その１回分の書き込みにおけるデータの量（即ち、インターリーブ数分×不揮発性メモリ１３の書き込み単位）である。
【０２１０】
ステップＳ５７において、メモリ制御部２８が、１インターリーブ数分のデータを不揮発性メモリ１３に転送していないと判定した場合、処理はステップＳ５５に戻り、１インターリーブ数分のデータが不揮発性メモリ１３に転送されたと判定されるまで、処理が繰り返される。一方、ステップＳ５７において、メモリ制御部２８が、１インターリーブ数分のデータを不揮発性メモリ１３に転送したと判定した場合、処理はステップＳ５８に進む。
【０２１１】
ステップＳ５８において、メモリ制御部２８は、ステップＳ５２で決定した繰り返し回数だけ、インターリーブ数ごとの書き込みを繰り返したか否かを判定する。例えば、ステップＳ５２で０にセットした繰り返しパラメータが、繰り返し回数に到達していれば、メモリ制御部２８は、繰り返し回数だけインターリーブ数ごとの書き込みを繰り返したと判定する。一方、ステップＳ５２で０にセットした繰り返しパラメータが、繰り返し回数未満であれば、メモリ制御部２８は、繰り返し回数だけインターリーブ数ごとの書き込みを繰り返していないと判定する。
【０２１２】
ステップＳ５８において、メモリ制御部２８が、繰り返し回数だけインターリーブ数ごとの書き込みを繰り返していないと判定した場合、処理はステップＳ５９に進み、メモリ制御部２８は、繰り返しパラメータをインクリメントする。その後、処理はステップＳ５４に戻り、以下、同様の処理が繰り返される。
【０２１３】
一方、ステップＳ５８において、メモリ制御部２８が、繰り返し回数だけインターリーブ数ごとの書き込みを繰り返したと判定した場合、即ち、この場合、アクセス単位分のデータが不揮発性メモリ１３に転送されており、処理は終了する。
【０２１４】
以上のように、データ記憶システム１０では、メモリコントローラ１２がアクセス単位に基づいてデータの書き込みに必要となる領域を把握しているので、データの書き込みに必要になる領域に、あらかじめ消去コマンドを送信し、その領域に書き込むデータが蓄積されたタイミングで、不揮発性メモリ１３への書き込みを開始するようなメモリ制御を行うことができる。これにより、データの書き込み処理をより高速化することができる。
【０２１５】
なお、本発明は、図１に示したようにメモリコントローラ１２と不揮発性メモリ１３とが独立して構成されるシステムの他、メモリコントローラの機能を有した不揮発性メモリに適用することができる。
【０２１６】
即ち、図２４は、本発明を適用したデータ記憶システムの他の実施の形態の構成例を示すブロック図である。
【０２１７】
図２４において、図１のデータ記憶システム１０と共通するブロックには、同一の符号を付し、それらの説明は、適宜、省略する。
【０２１８】
即ち、図２４に示す実施の形態では、ホストインターフェイス２１、データバッファ２３、アドレス変換部２４、アドレス空間設定部２５、アクセス単位設定部２６、インターリーブ数設定部２７、およびメモリ制御部２８が、不揮発性メモリ１３’に内蔵されている点で、図１の不揮発性メモリ１３と異なっている。
【０２１９】
このように、メモリコントローラ１２の機能が内蔵された不揮発性メモリ１３’を用いたデータ記憶システムにおいても、図１のデータ記憶システム１０と同様に、ホスト１１が、不揮発性メモリ１３’に対して、アクセス単位およびインターリーブ数を設定することができる。そして、ホスト１１から見て、データの消去時間を隠しながら、データの書き込みを実行することができる。
また、上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用性のあるコンピュータなどにインストールされる。
【０２２０】
図２５は、上述した一連の処理をプログラムにより実行するコンピュータ（マイクロコンピュータ）のハードウエアの構成例を示すブロック図である。
【０２２１】
プログラムは、コンピュータに内蔵されている記録媒体としてのEEPROM(Electrically Erasable Programmable Read-only Memory)１０５やROM１０３に予め記録（インストール）しておくことができる。
【０２２２】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）して提供することができる。
【０２２３】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、有線または無線のネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、入出力インタフェース１１０で受信し、内蔵するEEPROM１０５にインストールすることができる。
【０２２４】
コンピュータでは、CPU(Central Processing Unit)（あるいは、DSP(Digital Signal Processor)）１０２、ROM(Read Only Memory)１０３、RAM(Random Access Memory)１０４、EEPROM１０５、および入出力インタフェース１１０が、バス１０１を介して接続されている。
【０２２５】
CPU１０２は、ROM(Read Only Memory)１０３やEEPROM１０５に格納されているプログラムを、RAM(Random Access Memory)１０４にロードして実行する。これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。なお、外部とのデータのやりとりは、入出力インタフェース１１０を介して行われる。
【０２２６】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。即ち、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。また、プログラムは、１のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
【０２２７】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０２２８】
１０  データ記憶システム，  １１  ホスト，  １２  メモリコントローラ，  １３  不揮発性メモリ，  ２１  ホストインターフェイス，  ２２  メモリインターフェイス，  ２３  データバッファ，  ２４  アドレス変換部，  ２５  アドレス空間設定部，  ２６  アクセス単位設定部，  ２７  インターリーブ数設定部，  ２８  メモリ制御部，  ３１  メモリインターフェイス，  ３２  制御部
【図１】
2010262507.tif 000003
【図２】
2010262507.tif 000004
【図３】
2010262507.tif 000005
【図４】
2010262507.tif 000006
【図５】
2010262507.tif 000007
【図６】
2010262507.tif 000008
【図７】
2010262507.tif 000009
【図８】
2010262507.tif 000010
【図９】
2010262507.tif 000011
【図１０】
2010262507.tif 000012
【図１１】
2010262507.tif 000013
【図１２】
2010262507.tif 000014
【図１３】
2010262507.tif 000015
【図１４】
2010262507.tif 000016
【図１５】
2010262507.tif 000017
【図１６】
2010262507.tif 000018
【図１７】
2010262507.tif 000019
【図１８】
2010262507.tif 000020
【図１９】
2010262507.tif 000021
【図２０】
2010262507.tif 000022
【図２１】
2010262507.tif 000023
【図２２】
2010262507.tif 000024
【図２３】
2010262507.tif 000025
【図２４】
2010262507.tif 000026
【図２５】
2010262507.tif 000027