<データ処理システムの全体構成>
図1はデータ処理システム1の構成を示す図である。データ処理システム1は、ホスト装置2と、記憶装置3とを備えている。ホスト装置2は、記憶装置3を制御する上位装置である。記憶装置3は、半導体メモリの一種であるフラッシュメモリ5を有する。
ホスト装置2は、データ処理システム1全体の動作を統括的に管理する。ホスト装置2は、データ処理システム1の本体装置であると言える。ホスト装置2は、記憶装置3からデータを読み出したり、記憶装置3にデータを書き込んだりする。ホスト装置2が記憶装置3に対して読み出し要求を出力すると、それを受け取った記憶装置3は、フラッシュメモリ5内のデータを読み出してホスト装置2に出力する。また、ホスト装置2が記憶装置3に対して書き込み要求を出力すると、それを受け取った記憶装置3は、ホスト装置2からのデータをフラッシュメモリ5内に書き込む。
記憶装置3の形状は、例えば、カード型となっている。カード型の記憶装置3がホスト装置2に対して装着されることによって、記憶装置3とホスト装置2とが接続される。記憶装置3はホスト装置2に対して着脱可能となっている。なお、記憶装置3とホスト装置2との接続方法はこれに限られない。また、記憶装置3の形状はカード型に限られない。
フラッシュメモリ5はアプリケーションデータ520を記憶している。ホスト装置2は、フラッシュメモリ5内のアプリケーションデータ520を記憶装置3から読み出し、読み出したアプリケーションデータ520を処理する。
ここで、アプリケーションデータは、アプリケーションプログラム(アプリケーションソフトウェア)と、当該アプリケーションプログラムの実行で使用される各種データ(当該アプリケーションプログラムに付随する各種データ)とを含む。言い換えれば、アプリケーションデータは、アプリケーションプログラムと、当該アプリケーションプログラムの実行によって実現される所定の処理の進行で用いられる各種データとを含んでいる。アプリケーションデータ520が、例えばゲームデータである場合には、アプリケーションデータ520には、ゲームプログラムと、当該ゲームプログラムの実行によって実現されるゲームの進行で用いられる、キャラクタデータ及びイメージデータ等の各種データとが含まれる。アプリケーションデータ520が、ゲームデータである場合には、記憶装置3が例えばゲームカートリッジとして機能する。そして、ホスト装置2がゲーム機本体として機能する。ホスト装置2が、記憶装置3から読み出したゲームプログラムを実行することによって、データ処理システム1ではゲームが進行する。なお、フラッシュメモリ5内には、アプリケーションデータ520に加えて、あるいはアプリケーションデータ520の代わりに、動画像データ及び音楽データなどの各種コンテンツデータが記憶されても良い。
<ホスト装置の構成>
ホスト装置2は、一種のコンピュータ装置であって、制御部20、記憶部21及びI/F回路22を備える。制御部20は、CPU(Central Processing Unit)等で構成されており、ホスト装置2の動作を統括的に管理する。記憶部21は、ROM(Read Only Memory)及びRAM(Random Access Memory)等の、制御部20(CPU)が読み取り可能な非一時的な記録媒体で構成されている。記憶部21には、ホスト装置2の動作を制御するための制御プログラム210等が記憶されている。ホスト装置2の各種機能は、制御部20のCPUが記憶部21内の制御プログラム210を実行することによって実現される。I/F回路22は、ホスト装置2と記憶装置3と接続するための回路であって、記憶装置3からの信号を制御部20に入力したり、制御部20からの信号を記憶装置3に出力したりする。
なお、記憶部21は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えていても良い。記憶部21は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)等を備えていても良い。
制御部20は、フラッシュメモリ5内のデータを読み出すための制御信号を生成して、I/F回路22を通じて記憶装置3に出力する。また、制御部20は、フラッシュメモリ5内にデータを書き込むための制御信号を生成して、I/F回路22を通じて記憶装置3に出力する。制御部20は、後述する管理情報500に基づいて、フラッシュメモリ5からデータを読み出したり、フラッシュメモリ5にデータを書き込んだりする。制御部20は、フラッシュメモリ5から読み出されたデータに対して各種処理を行う。なお、制御部20は、CPU等で構成するのではなく、その機能の実現にソフトウェアを必要としないハードウェア回路で構成されても良い。また、ホスト装置2全体が、その機能の実現にソフトウェアを必要としないハードウェア回路で構成されても良い。
<記憶装置の構成>
記憶装置3は、メモリ制御装置(メモリ制御回路)4及びフラッシュメモリ5を備えている。メモリ制御装置4は、ホスト装置2からの指示に応じてフラッシュメモリ5を制御する。
フラッシュメモリ5は、例えばNAND型メモリである。フラッシュメモリ5は、メモリセルアレイ50と、ページバッファ51とを備えている。メモリセルアレイ50には、当該メモリセルアレイ50内でのデータを管理する管理情報510と、アプリケーションデータ520とが記憶されている。さらに、メモリセルアレイ50内には、ホスト装置2が使用する管理情報500が記憶されている。管理情報500は、メモリセルアレイ50内のデータをファイルとして管理する管理情報である。管理情報500は、ホスト装置2が起動したときに、記憶装置3からホスト装置2に出力されて、記憶部21内に記憶される。ホスト装置2では、制御部20は、記憶部21内の管理情報500を使用する。
メモリ制御装置4は、制御部40、I/F回路41及び記憶部42を備えている。メモリ制御装置4は一種のコンピュータ装置である。
I/F回路41は、記憶装置3とホスト装置2とを接続するための回路であって、ホスト装置2からの信号を制御部40に入力したり、制御部40からの信号をホスト装置2に出力したりする。
制御部40は、例えば、CPU等で構成されており、記憶装置3の動作を統括的に管理する。制御部40は、ホスト装置2の制御部20から読み出し要求が通知されると、メモリセルアレイ50内の管理情報510に基づいてフラッシュメモリ5内のデータを読み出し、読み出したデータをI/F回路41を通じてホスト装置2に出力する。また、制御部40は、ホスト装置2の制御部20から書き込み要求が通知されると、メモリセルアレイ50内の管理情報510に基づいて、フラッシュメモリ5に対して制御部20からのデータを書き込む。
記憶部42は、ROM及びRAM等の、制御部40(CPU)が読み取り可能な非一時的な記録媒体で構成されている。記憶部42には、メモリ制御装置4の動作を制御するための制御プログラム420等が記憶されている。メモリ制御装置4の各種機能は、制御部40のCPUが記憶部42内の制御プログラム410を実行することによって実現される。
本実施の形態では、ホスト装置2及びメモリ制御装置4によって、フラッシュメモリ5からデータを読み出したり、フラッシュメモリ5にデータを書き込んだりする制御装置10が構成されている。データ処理システム1は、フラッシュメモリ5と、当該フラッシュメモリ5からデータを読み出す制御装置10とを備える記憶システムであると言える。ホスト装置2は、メモリ制御装置4を通じて、フラッシュメモリ5からデータを読み出したり、フラッシュメモリ5にデータを書き込んだりする。
なお、制御部40は、CPU等で構成されるのではなく、その機能の実現にソフトウェアを必要としないハードウェア回路で構成されても良い。また、メモリ制御装置4全体が、その機能の実現にソフトウェアを必要としないハードウェア回路で構成されても良い。
<フラッシュメモリの記憶領域の構成>
図2はフラッシュメモリ5のメモリセルアレイ50の物理的な構成を示す図である。図2に示されるように、メモリセルアレイ50は、複数のページ150に物理的に区分されている。複数のページ150は、メモリセルアレイ50の列方向に沿って連続的に並んでいる。複数のページ150のそれぞれには固有の物理ページ番号が固定的に割り当てられている。物理ページ番号は、ページ150を識別するための一種の識別情報である。物理ページ番号は、メモリセルアレイ50での、それに対応するページ150の物理的な位置を示している。図2の例では、メモリセルアレイ50は、(N+1)個のページ150を備えている。連続する(N+1)個のページ150に対して、0番からN番までの数字がそれぞれ固定的に割り当てられている。物理ページ番号は物理ページアドレスとも呼ばれる。以後、特に断らない限り、ページ番号と言えば「物理ページ番号」を意味する。
各ページ150は、データの読み出し単位及び書き込み単位となっている。したがって、メモリセルアレイ50からは、ページ150単位でデータが読み出される。また、メモリセルアレイ50に対して、ページ150単位でデータが書き込まれる。複数のページ150は、メモリセルアレイ50において物理的に区分された複数の単位記憶領域であると言える。フラッシュメモリ5では、複数のページ150によって、データの消去単位であるブロックが構成される。メモリセルアレイ50に対するデータ消去は、ブロック単位で行われる。
ページバッファ51の記憶容量は、例えば、1ページ分の記憶容量と一致している。したがって、ページバッファ51は、1ページ分のデータを記憶することができる。メモリ制御装置4(制御装置10)がフラッシュメモリ5から、あるページ150のデータを読み出す際には、対象のページ150の全データが、一旦ページバッファ51に記憶される。その後、フラッシュメモリ5は、ページバッファ51内のデータをメモリ制御装置4(制御装置10)に出力する。また、メモリ制御装置4(制御装置10)がフラッシュメモリ5のあるページ150に対してデータを書き込む際には、書き込み対象のデータが、一旦ページバッファ51に記憶される。その後、フラッシュメモリ5は、ページバッファ51内のデータを対象のページ150に書き込む。
このように、メモリ制御装置4と、メモリセルアレイ50との間のデータのやり取りは、ページバッファ51を介して行われる。
また本実施の形態では、図3に示されるように、メモリセルアレイ50は、複数のセクタ250に論理的に区分されている。複数のセクタ250のそれぞれにはセクタ番号が割り当てられている。セクタ番号は、セクタ250を識別するための一種の識別情報である。複数のセクタ250は、メモリセルアレイ50において論理的に区分された複数の単位記憶領域であると言える。図3の例では、メモリセルアレイ50は、(M+1)個のセクタ250を論理的に有している。(M+1)個のセクタ250に対して、0番からM番までの数字がそれぞれ割り当てられている。セクタ番号はセクタアドレスとも呼ばれる。
ホスト装置2は、セクタ250単位で、メモリセルアレイ50からデータを読み出したり、メモリセルアレイ50にデータを書き込んだりする。またホスト装置2は、少なくとも一つのセクタ250で構成されるクラスタと呼ばれる単位でファイルの管理を行う。
本実施の形態では、各ページ150には複数のセクタ250が割り当てられる。例えば、各ページ150には4つのセクタ250が割り当てられる。一つのセクタ250の記憶容量は、一つのページ150の記憶容量の四分の一となっている。各ページ150は、セクタ250の4つ分のデータを記憶することが可能である。
図4に示されるように、各ページ150は、メモリセルアレイ50の行方向に並ぶ4つの部分ページ(部分記憶領域)151で構成されている。1つの部分ページ151には、1つのセクタ250が割り当てられる。つまり、論理的(仮想的)な記憶領域であるセクタ250内のデータは、それに対応する、物理的な記憶領域である部分ページ151内に記憶されている。部分ページ151に割り当てられるセクタ250の番号は固定ではなく変化する。あるページ番号のページ150に含まれる各部分ページ151は、メモリセルアレイ50に対して行方向に沿って割り当てられた列アドレスによって特定することができる。したがって、メモリセルアレイ50での任意の部分ページ151は、ページ番号及び列アドレスによって特定することができる。列アドレスは、ページ150に含まれる各部分ページ151を特定する一種の特定情報であると言える。以後、一つのページ150を構成する4つの部分ページ151を、列アドレスが小さいものから順に、第1部分ページ151a、第2部分ページ151b、第3部分ページ151c、第4部分ページ151dとそれぞれ呼ぶことがある。セクタ250内のデータをセクタデータと呼ぶことがある。
図5は、ホスト装置2で管理されているあるファイルAが記憶されるセクタ250及びページ150の対応関係の一例を示す図である。図5では、部分ページ151を示す四角内に、当該部分ページ151に対応するセクタ250のセクタ番号が示されている。
図5の例では、アプリケーションデータ520の一部であるファイルAは、セクタ番号1000〜1009のセクタ250に記憶されている。セクタ番号1000,1008,1005のセクタ250は、ページ番号100のページ150に割り当てられている。詳細には、セクタ番号1000,1008,1005のセクタ250は、それぞれ、ページ番号100のページ150の第1部分ページ151a、第3部分ページ151c及び第4部分ページ151dに割り当てられている。よって、ファイルAのうち、セクタ番号1000のセクタ250のデータは、ページ番号100のページ150の第1部分ページ151aに記憶され、セクタ番号1008のセクタ250のデータは、ページ番号100のページ150の第3部分ページ151cに記憶され、セクタ番号1005のセクタ250のデータは、ページ番号100のページ150の第4部分ページ151dに記憶されている。
セクタ番号1001,1004のセクタ250は、ページ番号101のページ150に割り当てられている。詳細には、セクタ番号1001,1004のセクタ250は、それぞれ、ページ番号101のページ150の第2部分ページ151b及び第3部分ページ151cに割り当てられている。
セクタ番号1006,1002のセクタ250は、ページ番号102のページ150に割り当てられている。詳細には、セクタ番号1006,1002のセクタ250は、それぞれ、ページ番号102のページ150の第2部分ページ151b及び第3部分ページ151cに割り当てられている。
セクタ番号1007,1009,1003のセクタ250は、ページ番号103のページ150に割り当てられている。詳細には、セクタ番号1007,1009,1003のセクタ250は、それぞれ、ページ番号103のページ150の第1部分ページ151a、第3部分ページ151c及び第4部分ページ151dに割り当てられている。
このように、一つのページ150に割り当てられる複数のセクタ250のセクタ番号は連続しているとは限らない。
ホスト装置2が使用する管理情報500には、メモリセルアレイ50内のファイル(データ)と、当該ファイルが記憶される複数のセクタのセクタ番号とを対応付ける対応付け情報(以後、「第1対応付け情報」と呼ぶことがある)が含まれている。
また、フラッシュメモリ5内の管理情報510には、セクタ番号と、当該セクタ番号のセクタ250が割り当てられたページ150のページ番号と、当該ページ150に含まれる、当該セクタ250が割り当てられた部分ページ151を特定するための部分ページ特定情報とを対応付ける論物変換情報(以後、「第2対応付け情報」と呼ぶことがある)が含まれている。論物変換情報では、セクタ番号と、当該セクタ番号のセクタ250内のデータが記憶されるページ150のページ番号と、当該ページ150に含まれる、当該セクタ250内のデータが記憶される部分ページ151の部分ページ特定情報とが対応付けられている。部分ページ特定情報としては、上記の列アドレスを採用することができる。また部分ページ特定情報として、列アドレス以外の情報を採用しても良い。例えば、一つのページを構成する4つの部分ページに対して4つの識別番号をそれぞれ割り当て、当該識別番号を部分ページ特定情報として採用しても良い。
<データ読み出しの基本動作>
次に図6を参照して、ホスト装置2がメモリセルアレイ50からアプリケーションデータ520を読み出す際のデータ処理システム1の基本的な動作について説明する。
ホスト装置2が、アプリケーションデータ520に含まれるあるファイルをメモリセルアレイ50から読み出す際には、制御部20が管理情報500(第1対応付け情報)を参照して、読み出し対象のファイルが記憶される複数のセクタ250のセクタ番号を特定する。そして、制御部20は、I/F回路22を通じて、特定した複数のセクタ番号の一つを含むホスト側読み出し要求信号をメモリ制御装置4に通知する(図6のステップs1)。制御部20には、ファイルを管理するファイルシステムが構築され、当該ファイルシステムによって管理情報500は管理される。ファイルシステムは、管理情報500を参照して、読み出し対象のファイルが記憶される複数のセクタ250のセクタ番号を特定する。
メモリ制御装置4では、制御部40が、ホスト装置2からI/F回路41を通じてホスト側読み出し要求信号を受け取ると、管理情報510(論物変換情報)を参照して、当該ホスト側読み出し要求信号に含まれるセクタ番号に対応するページ番号及び部分ページ特定情報を特定する。記憶装置3では、その電源が投入されると、メモリ制御装置4が、メモリセルアレイ50から管理情報510を読み出して揮発性メモリ42に記憶する。制御部40は、ホスト装置2からセクタ番号が通知されると、揮発性メモリ42内の管理情報510を参照して、当該セクタ番号に対応するページ番号及び部分ページ特定情報を特定する。
制御部40は、特定したページ番号のページ150に含まれる、特定した部分ページ特定情報で特定される部分ページ151内のデータの読み出し要求をフラッシュメモリ5に行う。具体的には、制御部40は、特定したページ番号と、特定した部分ページ特定情報で特定される部分ページ151の列アドレスとを含むメモリ側読み出し要求信号をフラッシュメモリ5に出力する(図6のステップs2)。これにより、フラッシュメモリ5は、メモリ制御装置4からページ番号及び列アドレスが通知される。
フラッシュメモリ5は、メモリ制御装置4からのメモリ側読み出し要求信号に含まれるページ番号のページ150内のデータが、ページバッファ51内にあるかどうかを判断する。フラッシュメモリ5は、ページバッファ51内に、メモリ制御装置4から通知されたページ番号のページ150内のデータがないと判断すると、当該ページ150内の全データをメモリセルアレイ50から読み出してページバッファ51内に一旦書き込む。その後、フラッシュメモリ5は、ページバッファ51内のデータのうち、メモリ制御装置4から通知されるページ番号のページ150に含まれる、メモリ制御装置4から通知される列アドレスで指定される部分ページ151内のデータを、セクタデータとしてメモリ制御装置4に出力する(図6のステップs3)。一方で、フラッシュメモリ5は、ページバッファ51内に、メモリ制御装置4から通知されたページ番号のページ150内のデータがあると判断すると、ページバッファ51内のデータのうち、メモリ制御装置4から通知されるページ番号のページ150に含まれる、メモリ制御装置4から通知される列アドレスで指定される部分ページ151内のデータを、セクタデータとしてメモリ制御装置4に出力する(図6のステップs3)。
メモリ制御装置4では、制御部40が、フラッシュメモリ5からセクタデータを受け取ると、受け取ったセクタデータをI/F回路41を通じてホスト装置2に出力する(図6のステップs4)。これにより、ホスト装置2は、メモリ制御装置4に通知したセクタ番号のセクタ250のデータ(読み出し対象のファイルの一部のデータ)を取得することができる。つまり、ホスト装置2は、記憶装置3に対して読み出し要求を行ったセクタデータを当該記憶装置3から受け取ることができる。
次に、ホスト装置2は、特定した複数のセクタ番号のうちの別のセクタ番号を含むホスト側読み出し要求信号をメモリ制御装置4に通知し(ステップs1)、以後、データ処理システム1は同様に動作する。ホスト装置2が、特定した複数のセクタ番号のうち、メモリ制御装置4に最後に通知したセクタ番号のセクタ250内のセクタデータを受け取ると、ホスト装置2では、フラッシュメモリ5に対する、読み出し対象のファイルの読み出し処理が終了する。以後、ホスト装置2が次のファイルを読み出す際には、データ処理システム1は同様に動作する。
このように、フラッシュメモリ5は、あるページ150内のデータの読み出し要求をメモリ制御装置4から受けた場合、当該あるページ150のデータがページバッファ51内に無いときには、当該あるページ150からデータを読み出してページバッファ51内に一旦記憶した後、ページバッファ51内のデータをメモリ制御装置4に出力する。一方で、フラッシュメモリ5は、当該あるページ150のデータがページバッファ51内にある場合には、当該あるページ150からデータを読み出さずにページバッファ51内のデータをメモリ制御装置4に出力する。したがって、ホスト装置2が、あるページ番号に対応するセクタ番号をメモリ制御装置4に通知した後に続けて、当該あるページ番号と同じページ番号に対応するセクタ番号をメモリ制御装置4に通知する場合には、フラッシュメモリ5は、2回目に通知されるセクタ番号のセクタ250内のセクタデータを、ページ150にアクセスすることなくページバッファ51から出力することができる。フラッシュメモリ5では、前回出力したセクタデータのセクタ番号に対応するページ番号とは異なるページ番号のページ150内のセクタデータの読み出し要求を受けると、メモリセルアレイ50に対するアクセスが必ず発生する。
<データ読み出し処理の詳細説明>
図5に示されるように、セクタ番号1000〜1009のセクタ250に記憶されるファイルAをメモリセルアレイ50から読み出す際のデータ処理システム1でのデータ読み出し処理について考える。
ホスト装置2がファイルAを読み出す場合には、ホスト装置2がセクタ番号1000〜1009を小さいものから順にメモリ制御装置4に通知することが考えられる。この場合には、図7に示されるように、メモリ制御装置4は、ページ番号100、ページ番号101、ページ番号102、ページ番号103、ページ番号101、ページ番号100、ページ番号102、ページ番号103、ページ番号100、ページ番号103の順で、ページ150内のデータの読み出し要求をフラッシュメモリ5に対して行うことになる。つまり、ファイルAの読み出し処理において、メモリ制御装置4は、フラッシュメモリ5に対して、ページ番号100、ページ番号101、ページ番号102、ページ番号103、ページ番号101、ページ番号100、ページ番号102、ページ番号103、ページ番号100、ページ番号103の順でページ番号を通知することになる。メモリ制御装置4は、同じページ番号を連続してフラッシュメモリ5に通知しないことから、フラッシュメモリ5は、ページ番号が通知されるたびに、当該ページ番号のページ150内のデータをメモリセルアレイ50から読み出してページバッファ51に書き込む必要がある。つまり、フラッシュメモリ5は、ページ番号が通知されるたびに、メモリセルアレイ50に対してアクセスする必要があり、この場合のファイルAの読み出し処理では、メモリセルアレイ50に10回アクセスすることになる。フラッシュメモリ5が、ページ番号が通知されたときにメモリセルアレイ50に対してアクセスする場合には、メモリ制御装置4がページ番号を出力してから、そのページ番号のページ150内のデータをフラッシュメモリ5から受け取るまでに時間がかかってしまう。よって、ホスト装置2が、フラッシュメモリ5からファイルAを読み出すときに、セクタ番号1000〜1009を小さいものから順にメモリ制御装置4に通知する場合には、フラッシュメモリ5に対する読み出し速度が遅くなってしまう。
そこで、本実施の形態に係る制御装置10は、読み出し対象のファイルAが記憶される複数のセクタ250のセクタ番号を、対応するページ番号ごとにグループ分けし、グループごとに、当該グループに必要な、当該グループに対応するページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行う。これにより、フラッシュメモリ5がメモリセルアレイ50にアクセスする頻度を低減することが可能となり、フラッシュメモリ5に対する読み出しの高速化を図ることができる。以下に、本実施の形態に係るデータ読み出し処理について詳細に説明する。
図8は本実施の形態に係る制御装置10の動作を説明するための図である。図8に示されるように、制御装置10は、ファイルAが記憶される複数のセクタ250のセクタ番号1000〜1009を、対応するページ番号ごとにグループ分けを行う。具体的には、制御装置10は、セクタ番号1000〜1009を、対応するページ番号が100である100番グループと、対応するページ番号が101である101番グループと、対応するページ番号が102である102番グループと、対応するページ番号が103番である103番グループとに分ける。100番グループは、セクタ番号1000,1005,10008で構成され、101番グループは、セクタ番号1001,1004で構成され、102番グループは、セクタ番号1002,1006で構成され、103番グループは、セクタ番号1003,1007,1009で構成される。
そして、制御装置10は、グループごとに、当該グループに必要な、当該グループに対応するページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行う。具体的には、制御装置10は、100番グループに必要な、ページ番号100のページ150内のデータの読み出し要求、つまり、ページ番号100のページ150に含まれる、セクタ番号1000,1005,1008のセクタ250に対応する第1部分ページ151a、第4部分ページ151d及び第3部分ページ151c内のデータの読み出し要求を行う。また制御装置10は、101番グループに必要な、ページ番号101のページ150内のデータの読み出し要求、つまり、ページ番号101のページ150に含まれる、セクタ番号1001,1004のセクタ250に対応する第2部分ページ151b及び第3部分ページ151c内のデータの読み出し要求を行う。また、制御装置10は、102番グループに必要な、ページ番号102のページ150内のデータの読み出し要求、つまり、ページ番号102のページ150に含まれる、セクタ番号1002,1006のセクタ250に対応する第3部分ページ151c及び第2部分ページ151b内のデータの読み出し要求を行う。そして、制御装置10は、103番グループに必要な、ページ番号103のページ150内のデータの読み出し要求、つまり、ページ番号103のページ150に含まれる、セクタ番号1003,1007,1009のセクタ250に対応する第4部分ページ151d、第1部分ページ151a及び第3部分ページ151c内のデータの読み出し要求を行う。
このように、本実施の形態では、制御装置10は、読み出し対象のファイルが記憶される複数のセクタ250のセクタ番号を、対応するページ番号ごとにグループ分けし、グループごとに、当該グループに必要な、当該グループに対応するページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行う。したがって、フラッシュメモリ5に対しては、同じページ番号のページ150内のデータの読み出し要求が連続して行われる可能性が高くなる。つまり、フラッシュメモリ5に対しては、同じページ番号のページ150に対する読み出し要求が連続して行われる可能性が高くなる。
例えば、制御装置10は、100番グループに必要なデータの読み出し要求を行う際には、ページ番号100のページ150に含まれる、セクタ番号1000のセクタ250に対応する第1部分ページ151aに対する読み出し要求、ページ番号100のページ150に含まれる、セクタ番号1005のセクタ250に対応する第4部分ページ151dに対する読み出し要求、ページ番号100のページ150に含まれる、セクタ番号1008のセクタ250に対応する第3部分ページ151cに対する読み出し要求が、連続して行われることになる。つまり、制御装置10は、100番グループに必要なデータの読み出し要求を行う際には、ページ番号100を3回連続してフラッシュメモリ5に通知することになる。同様に、制御装置10は、101番グループに必要なデータの読み出し要求を行う際にはページ番号101を2回連続してフラッシュメモリ5に通知し、102番グループに必要なデータの読み出し要求を行う際にはページ番号102を2回連続してフラッシュメモリ5に通知し、103番グループに必要なデータの読み出し要求を行う際にはページ番号103を3回連続してフラッシュメモリ5に通知する。よって、ファイルの読み出し処理において、フラッシュメモリ5がメモリセルアレイ50にアクセスする頻度を低減することが可能となり、フラッシュメモリ5に対する読み出しの高速化を図ることができる。
ファイルAについての本実施の形態に係る読み出し処理では、100番グループに必要なデータの読み出し要求で1回、101番グループに必要なデータの読み出し要求で1回、102番グループに必要なデータの読み出し要求で1回、103番グループに必要なデータの読み出し要求で1回、メモリセルアレイ50に対するアクセスが発生する。したがって、ファイルAについての本実施の形態に係る読み出し処理では、メモリセルアレイ50に対するアクセス回数が“4回”となり、セクタ番号1000〜1009を小さいものから順にメモリ制御装置4に通知する場合の“10回”と比較して大幅に少なくなる。
なお、複数のグループの間において、データの読み出し要求を行う順番はどのような順番であっても良い。例えば、ファイルAの読み出し処理では、100番グループ、101番グループ、102番グループ、103番グループの順でデータの読み出し要求を行っても良いし、103番グループ、102番グループ、101番グループ、100番グループの順でデータの読み出し要求を行っても良いし、102番グループ、101番グループ、100番グループ、103番グループの順でデータの読み出し要求を行っても良い。
また、一つのグループを構成する複数のセクタ番号のセクタ250の間においては、データの読み出し要求を行う順番はどのような順番であっても良い。例えば、上記の100番グループを構成する複数のセクタ番号1000,1005,1008のセクタ250においては、セクタ番号1000のセクタ250、セクタ番号1005のセクタ250、セクタ番号1008のセクタ250の順で、データの読み出し要求を行っても良いし、セクタ番号1008のセクタ250、セクタ番号1005のセクタ250、セクタ番号1000のセクタ250の順で、データの読み出し要求を行っても良いし、セクタ番号1005のセクタ250、セクタ番号1000のセクタ250、セクタ番号1008のセクタ250の順でデータの読み出し要求を行っても良い。
また、上記の例では、一つのファイルの読み出し処理について説明したが、複数のファイルの読み出し処理においても、同様にして、フラッシュメモリ5がメモリセルアレイ50にアクセスする頻度を低減することができる。以下に、フラッシュメモリ5から2つのファイルを読み出す場合を例に挙げて、複数のファイルの読み出し処理について説明する。
図9は、ホスト装置2で管理されている2つのファイルA,Bが記憶されるセクタ250及びページ150の対応関係の一例を示す図である。図9の例では、ファイルBは、セクタ番号2000〜2003のセクタ250に記憶されている。セクタ番号2000のセクタ250は、ページ番号100のページ150の第2部分ページ151bに割り当てられている。よって、ファイルBのうち、セクタ番号2000のセクタ250のデータは、ページ番号100のページ150の第2部分ページ151bに記憶されている。セクタ番号2001のセクタ250は、ページ番号101のページ150の第4部分ページ151dに割り当てられている。セクタ番号2002のセクタ250は、ページ番号102のページ150の第1部分ページ151aに割り当てられている。セクタ番号2003のセクタ250は、ページ番号103のページ150の第2部分ページ151bに割り当てられている。
ここで、制御装置10のホスト装置2が、ファイルA、ファイルBの順でフラッシュメモリ5からデータを読み出す場合であって、ファイルAの読み出し時にセクタ番号1000〜1009を小さいものから順にメモリ制御装置4に通知し、ファイルBの読み出し時にセクタ番号2000〜2003を小さいものから順にメモリ制御装置4に通知する場合を考える。この場合には、図10に示されるように、メモリ制御装置4は、ページ番号100、ページ番号101、ページ番号102、ページ番号103、ページ番号101、ページ番号100、ページ番号102、ページ番号103、ページ番号100、ページ番号103、ページ番号100、ページ番号101、ページ番号102、ページ番号103の順で、ページ150内のデータの読み出し要求をフラッシュメモリ5に対して行う。したがって、この場合には、フラッシュメモリ5は、メモリセルアレイ50に14回アクセスすることになり、ファイルA,Bの読み出し速度が低下する。
これに対して、本実施の形態では、制御装置10は、ファイルの種類を区別することなく、ファイルA,Bを記憶する複数のセクタ250のセクタ番号1000〜1009,2000〜2003を、対応するページ番号でグループ分けする。そして、制御装置10は、グループごとに、当該グループに必要な、当該グループに対応するページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行う。
図9の例では、図11に示されるように、100番グループは、セクタ番号1000,1005,1008,2000で構成され、101番グループは、セクタ番号1001,1004,2001で構成され、102番グループは、セクタ番号1002,1006,2002で構成され、103番グループは、セクタ番号1003,1007,1009,2003で構成される。
制御装置10は、100番グループに必要な、ページ番号100のページ150内のデータの読み出し要求を行う際には、ページ番号100のページ150に含まれる、セクタ番号1000,1005,1008,2000のセクタ250に対応する第1部分ページ151a、第4部分ページ151d、第3部分ページ151c及び第2部分ページ151b内のデータの読み出し要求を行う。また制御装置10は、101番グループに必要な、ページ番号101のページ150内のデータの読み出し要求を行う際には、ページ番号101のページ150に含まれる、セクタ番号1001,1004,2001のセクタ250に対応する第2部分ページ151b、第3部分ページ151c及び第4部分ページ151d内のデータの読み出し要求を行う。また、制御装置10は、102番グループに必要な、ページ番号102のページ150内のデータの読み出し要求を行う際には、ページ番号102のページ150に含まれる、セクタ番号1002,1006,2002のセクタ250に対応する第3部分ページ151c、第2部分ページ151b及び第1部分ページ151a内のデータの読み出し要求を行う。そして、制御装置10は、103番グループに必要な、ページ番号103のページ150内のデータの読み出し要求を行う際には、ページ番号103のページ150に含まれる、セクタ番号1003,1007,1009,2003のセクタ250に対応する第4部分ページ151d、第1部分ページ151a、第3部分ページ151c及び第2部分ページ151b内のデータの読み出し要求を行う。
このように、ファイルA,Bを記憶する複数のセクタ250のセクタ番号を、対応するページ番号でグループ分けし、グループごとに、当該グループに必要な、当該グループに対応するページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行うことによって、メモリセルアレイ50に対するアクセス回数が、14回から4回に減少する。よって、ファイルA,Bの読み出し処理が高速化する。
なお、制御装置10は、どのセクタからデータを読み出したか把握していることから、読み出した複数のセクタデータをファイルAとファイルBとに分けることが可能である。また、制御装置10は、フラッシュメモリ5から3つ以上のファイルを読み出す場合であっても、同様に動作することによって、複数のファイルの読み出し処理が高速化する。
次にデータの読み出し処理でのホスト装置2及びメモリ制御装置4のそれぞれの動作について詳細に説明する。図12はホスト装置2及びメモリ制御装置4のそれぞれの動作を示す図である。読み出し処理が開始すると、図12に示されるように、ホスト装置2では、制御部20が、ステップs11において、読み出し対象のデータ(少なくとも一つのファイル)が記憶される複数のセクタ250のセクタ番号を、管理情報500(第1対応情報)を参照して特定する。
次に、ステップs12において、制御部20は、特定した複数のセクタ番号の一つを含む情報要求信号をI/F回路22を通じてメモリ制御装置4に出力する。ここで、情報要求信号とは、それに含まれるセクタ番号に対応するページ番号の通知を要求するための信号である。
メモリ制御装置4では、制御部40は、I/F回路41を通じてホスト装置2からの情報要求信号を受け取ると、ステップs13において、揮発性メモリ42内の論物変換情報(第2対応付け情報)を参照して、受け取った情報要求信号に含まれるセクタ番号に対応するページ番号を特定し、特定したページ番号をI/F回路41を通じてホスト装置2に出力する。
ホスト装置2では、制御部20は、I/F回路22を通じてメモリ制御装置4からページ番号を受け取ると、再度ステップs12を実行する。このステップs12では、制御部20は、特定した複数のセクタ番号のうち、対応するページ番号がメモリ制御装置4から通知されていないセクタ番号を含む情報要求信号を送信する。そして、メモリ制御装置4は、ステップs13を実行して、ホスト装置2からの情報要求信号に含まれるセクタ番号に対応するページ番号をホスト装置2に出力する。
以後、ホスト装置2及びメモリ制御装置4は同様に動作し、ホスト装置2が、特定した複数のセクタ番号にそれぞれ対応するページ番号を取得するまで、制御装置10ではステップs12,s13が繰り返し実行される。
なお、ホスト装置2は、特定した複数のセクタ番号のすべてを含む情報要求信号をメモリ制御装置4に出力し、メモリ制御装置4は受け取った情報要求信号に含まれる複数のセクタ番号にそれぞれ対応する複数のページ番号をまとめてホスト装置2に通知しても良い。
ホスト装置2では、制御部20は、特定した複数のセクタ番号にそれぞれ対応するページ番号を取得すると、ステップs14において、上述のようにして、特定した複数のセクタ番号を、対応するページ番号でグループ分けする。そして、制御部20は、グループごとに、当該グループを構成する複数のセクタ番号を順にメモリ制御装置4に通知する。具体的には、まず、制御部20は、複数のグループのうち、処理対象のグループを決定する。そして、制御部20は、処理対象のグループを構成する複数のセクタ番号のうち、処理対象のセクタ番号を決定する。そして、制御部20は、処理対象のセクタ番号を含むホスト側読み出し要求信号をメモリ制御装置4に出力する(ステップs1)。
ホスト装置2からホスト側読み出し要求信号を受け取ったメモリ制御装置4では、制御部40は、管理情報510を参照して、受け取ったホスト側読み出し要求信号に含まれるセクタ番号に対応するページ番号及び部分ページ識別情報を特定する。そして、制御部40は、特定したページ番号のページ150に含まれる、特定した部分ページ特定情報で特定される部分ページ151内のデータの読み出し要求をフラッシュメモリ5に行う。具体的には、制御部40は、特定したページ番号と、特定した部分ページ特定情報で特定される部分ページ151の列アドレスとを含むメモリ側読み出し要求信号をフラッシュメモリ5に通知する(上述の図6のステップs2)。
フラッシュメモリ5は、メモリ制御装置4からメモリ側読み出し要求信号を受け取ると、上述のようにして、当該メモリ側読み出し要求信号に含まれるページ番号及び列アドレスに応じたセクタデータをメモリ制御装置4に出力する(上述の図6のステップs3)。
メモリ制御装置4では、制御部40は、フラッシュメモリ5からセクタデータを受け取ると、ステップs4において、受け取ったセクタデータをホスト装置2に出力する。
ホスト装置2では、制御部20は、処理対象のセクタ番号に応じたセクタデータをメモリ制御装置4から受け取ると、処理対象のグループにおいて処理対象のセクタ番号を変更し、新たな処理対象のセクタ番号を含むホスト側読み出し要求信号をメモリ制御装置4に出力する(ステップs1)。以後、メモリ制御装置4及びフラッシュメモリ5は同様に動作して、ホスト装置2は、新たな処理対象のセクタ番号に応じたセクタデータを取得する。
以後、ホスト装置2が、処理対象のグループを構成する各セクタ番号に応じたセクタデータを取得するまで、データ処理システム1は同様に動作する。そして、ホスト装置2は、処理対象のグループの各セクタ番号に応じたセクタデータを取得すると、処理対象のグループを変更する。以後、データ処理システム1は同様に動作し、ホスト装置2が、グループ分けによって得られた各グループの各セクタ番号に応じたセクタデータを取得すると、つまり、読み出し対象のデータを取得すると、読み出し処理が終了する。
このように、本実施の形態では、ホスト装置2は、グループごとに、当該グループを構成する複数のセクタ番号を順にメモリ制御装置4に通知する。そして、メモリ制御装置4は、セクタ番号が通知されると、当該セクタ番号に対応するページ番号のページ150内における、当該セクタ番号のセクタ250が割り当てられた部分ページ151に記憶されるデータの読み出し要求をフラッシュメモリ5に行う。このホスト装置2及びメモリ制御装置4の動作は、制御装置10が、グループごとに、当該グループに対応するページ番号のページ150内における、当該グループを構成する複数のセクタ番号に対応する複数のセクタ250が割り当てられた複数の部分ページ151にそれぞれ記憶される複数のデータの読み出し要求を順にフラッシュメモリ5に対して行う動作であると言える。
以上のように、本実施の形態では、制御装置10は、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号を、対応するページ番号ごとにグループ分けし、グループごとに、当該グループに必要な、当該グループに対応するページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行う。したがって、フラッシュメモリ5に対しては、同じページ番号のページ150内のデータの読み出し要求が連続して行われる可能性が高くなる。よって、データの読み出し処理において、フラッシュメモリ5がメモリセルアレイ50にアクセスする頻度を低減することが可能となる。その結果、フラッシュメモリ5に対する読み出しの高速化を図ることができる。
なお、上記の例では、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号のグループ分けは、ホスト装置2で行われていたが、メモリ制御装置4で行われても良い。この場合には、ホスト装置2は、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号をメモリ制御装置4に通知し、メモリ制御装置4は、当該複数のセクタ250のセクタ番号を、対応するページ番号でグループ分けする。そして、メモリ制御装置4は、グループごとに、当該グループに必要な、当該グループに対応するページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行う。したがって、メモリ制御装置4が、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号のグループ分けを行う場合には、ホスト装置2からメモリ制御装置4への情報要求信号の通知(図12のステップs12)と、当該情報要求信号に対するメモリ制御装置4の応答(図12のステップs13)が不要となる。よって、フラッシュメモリ5に対する読み出しのさらなる高速化を図ることができる。一方で、メモリ制御装置4が、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号を、対応するページ番号に応じてグループ分けする際には、メモリ制御装置4では、ホスト装置2から通知される当該複数のセクタ番号を一時的に保持するバッファが必要となる。その結果、記憶装置3の回路規模が大きくなる可能性がある。
<各種変形例>
以下に本実施の形態の各種変形例について説明する。
<第1変形例:論理ページ番号でグループ分け>
上記の例では、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号は、対応する物理ページ番号に応じてグループ分けされていたが、対応する論理ページ番号に応じてグループ分けされても良い。論理ページ番号とは、それに対応するページについての、メモリセルアレイ50での論理的な位置を示す情報である。
メモリセルアレイ50に対して、例えば、管理情報510が記憶される複数のページ150以外の各ページ150に対して論理ページ番号が割り当てられることがある。ページ150に割り当てられる論理ページ番号は変化することがある。管理情報510に含まれる論物変換情報では、物理ページ番号に対して、当該物理ページ番号のページ150に割り当てられた論理ページ番号が対応付けられている。
読み出し対象のデータが記憶される複数のセクタ250のセクタ番号が、対応する論理ページ番号に応じてグループ分けされる際には、例えば、メモリ制御装置4は、情報要求信号を利用してホスト装置2が通知する各セクタ番号に対応する論理ページ番号を、論物変換情報に基づいて特定する。そして、メモリ制御装置4は、特定した各論理ページ番号をホスト装置2に出力する。ホスト装置2は、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号を、対応する論理ページ番号でグループ分けする。その後、ホスト装置2は、メモリ側読み出し要求信号を利用して、グループごとに、当該グループを構成する各セクタ番号をメモリ制御装置4に通知する。以後の制御装置10の動作は上記と同様である。メモリ制御装置4が、物理ページ番号のページ内のデータの読み出し要求をフラッシュメモリ5に行うことは、見方を変えれば、当該物理ページ番号に対応する論理ページ番号のページ内のデータの読み出し要求をフラッシュメモリ5に行うことと言える。
このように、本変形例では、制御装置10は、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号を、対応する論理ページ番号ごとにグループ分けする。そして、制御装置10は、グループごとに、当該グループに必要な、当該グループに対応する論理ページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行う。これにより、上記と同様に、データの読み出し処理において、フラッシュメモリ5がメモリセルアレイ50にアクセスする頻度を低減することが可能となる。その結果、フラッシュメモリ5に対する読み出しの高速化を図ることができる。
<第2変形例:読み出し要求の変形例その1>
上記の例では、制御装置10は、セクタ単位で、言い換えれば、部分ページ単位でフラッシュメモリ5に対してデータの読み出し要求を行っていたが、ページ単位でフラッシュメモリ5に対してデータの読み出し要求を行っても良い。これにより、読み出し処理時のフラッシュメモリ5に対するアクセス回数が低減し、フラッシュメモリ5に対する読み出しのさらなる高速化を図ることができる。
本変形例では、ホスト装置2は、上述の図11の100番グループのように、処理対象のグループが4つのセクタ番号で構成されている場合には、つまり、処理対象のグループに対応するページ番号のページ150を構成する4つの部分ページ151のそれぞれに読み出し対象のセクタデータが記憶されている場合には、処理対象のグループに対応するページ番号を含むホスト側読み出し要求信号をメモリ制御装置4に出力する。メモリ制御装置4は、ホスト側読み出し要求信号に含まれるページ番号を含むメモリ側読み出し要求信号をフラッシュメモリ5に出力する。これより、ページ単位でフラッシュメモリ5に対してデータの読み出し要求が行われる。
フラッシュメモリ5は、メモリ制御装置4からのメモリ側読み出し要求信号に含まれるページ番号のページ150内のデータがページバッファ51内にある場合には、当該ページバッファ51内の1ページ分のデータ(4セクタ分のデータ)をメモリ制御装置4に出力する。一方で、フラッシュメモリ5は、メモリ側読み出し要求信号に含まれるページ番号のページ150内のデータがページバッファ51内にない場合には、当該ページ150内の全データをメモリセルアレイ50から読み出してページバッファ51内に一旦記憶する。そして、フラッシュメモリ5は、ページバッファ51内の1ページ分のデータをメモリ制御装置4に出力する。メモリ制御装置4は、フラッシュメモリ5からの1ページ分のデータと、処理対象のグループを構成する4つのセクタ番号にそれぞれ対応する複数の部分ページ特定情報とをホスト装置2に出力する。これにより、ホスト装置2は、処理対象のグループを構成する4つのセクタ番号に応じた4つのセクタデータを取得することができる。4つのセクタ番号で構成されるグループに関して、セクタ単位でアクセスする場合にはフラッシュメモリ5に4回アクセスする必要があったのに対して、ページ単位でアクセスすることによってフラッシュメモリ5に対するアクセス回数が1回となる。よって、フラッシュメモリ5に対する読み出しのさらなる高速化を図ることができる。
なお、本変形例のように、ページ単位でフラッシュメモリ5に対してデータの読み出し要求を行う場合であっても、当然に、セクタ単位でフラッシュメモリ5に対してデータの読み出し要求を行っても良い。つまり、フラッシュメモリ5に対するページ単位でのデータの読み出し要求と、フラッシュメモリ5に対するセクタ単位でのデータの読み出し要求とを併用しても良い。この点については以下の変形例についても同様である。
<第3変形例:読み出し要求の変形例その2>
上記の第2変形例では、制御装置10は、4つのセクタ番号で構成されるグループに関する読み出し処理においてページ単位でフラッシュメモリ5にアクセスしたが、グループを構成する複数のセクタ番号の数にかかわらず、ページ単位でフラッシュメモリ5にアクセスしても良い。つまり、制御装置10は、グループごとに、当該グループに対応するページ番号のページ150内の全データの読み出し要求をフラッシュメモリ5に行っても良い。以下に、本変形例について詳細に説明する。
本変形例では、メモリ制御装置4は、ホスト装置2から情報要求信号が入力されたとき、論物変換情報に基づいて、入力された情報要求信号に含まれるセクタ番号に対応するページ番号だけではなく、当該セクタ番号に対応する部分ページ特定情報をホスト装置2に出力する。
ホスト装置2は、処理対象のグループを構成する複数のセクタ番号の数にかかわらず、処理対象のグループに対応するページ番号を含むホスト側読み出し制御信号をメモリ制御装置4に出力する。メモリ制御装置4は、ホスト装置2からのホスト側読み出し制御信号に含まれるページ番号をフラッシュメモリ5に出力する。
フラッシュメモリ5は、メモリ制御装置4からページ番号を受けると、第2変形例と同様にして、当該ページ番号のページ150内の1ページ分のデータをメモリ制御装置4に出力する。メモリ制御装置4は、フラッシュメモリ5からの1ページ分のデータと、当該1ページ分のデータが記憶されるページ150を構成する複数の部分ページ151の部分ページ特定情報とをホスト装置2に出力する。
ホスト装置2は、メモリ制御装置4から、1ページ分のデータを受け取ると、当該1ページ分のデータに不要なデータが含まれているかどうかを判定する。具体的には、ホスト装置2は、処理対象のグループが4つのセクタ番号で構成されている場合には、1ページ分のデータに不要なデータが含まれていないと判定して、当該1ページ分のデータを読み出し対象として取り扱う。一方で、ホスト装置2は、処理対象のグループが4つ未満のセクタ番号で構成されている場合には、1ページ分のデータに不要なデータが含まれていると判定する。そして、ホスト装置2は、1ページ分のデータから不要なデータを破棄し、残りのデータを読み出し対象として取り扱う。ホスト装置2は、1ページ分のデータのうち、処理対象のグループを構成する複数のセクタ番号(3つ以下のセクタ番号)に対応する複数の部分ページ特定情報で特定される複数の部分ページ内のデータ以外のデータを、不要なデータとして破棄する。例えば図5,8の例において、処理対象のグループが100番グループである場合、ホスト装置2は、メモリ制御装置4から受け取った、ページ番号100のページ150内の1ページ分のデータのうち、100番グループを構成するセクタ番号1000,1005,1008に対応する3つの部分ページ特定情報で特定される第1部分ページ151a、第4部分ページ151d及び第3部分ページ151c内のデータ以外のデータ、つまり、第2部分ページ151b内のデータを、不要なデータとして破棄する。
なお、メモリ制御装置4が、入力された情報要求信号に含まれるセクタ番号に対応する部分ページ特定情報をホスト装置2に出力する代わりに、ホスト装置2は、処理対象のグループに対応するページ番号だけではなく、処理対象のグループを構成する複数のセクタ番号を含むホスト側読み出し制御信号をメモリ制御装置4に出力しても良い。この場合には、メモリ制御装置4は、フラッシュメモリ5から、処理対象のグループに対応するページ番号のページ150内の1ページ分のデータを受け取ると、ホスト装置2から通知された、処理対象のグループを構成する複数のセクタ番号に基づいて、当該1ページ分のデータに不要なデータが含まれているかどうかを判定する。具体的には、メモリ制御装置4は、処理対象のグループが4つのセクタ番号で構成されている場合には、1ページ分のデータに不要なデータが含まれていないと判定して、当該1ページ分のデータをホスト装置2に出力する。一方で、メモリ制御装置4は、処理対象のグループが4つ未満のセクタ番号で構成されている場合には、1ページ分のデータに不要なデータが含まれていると判定する。そして、メモリ制御装置4は、1ページ分のデータから不要なデータを破棄し、残りのデータをホスト装置2に出力する。メモリ制御装置4は、1ページ分のデータのうち、処理対象のグループを構成する複数のセクタ番号に対応する複数の部分ページ特定情報で特定される複数の部分ページ内のデータ以外のデータを不要なデータとして破棄する。
なお、ホスト装置2は、処理対象のグループに対応するページ番号を出力せずに、処理対象のグループを構成する複数のセクタ番号をメモリ制御装置4に出力しても良い。この場合には、メモリ制御装置4が、論物変換情報を参照して、処理対象のグループを構成する複数のセクタ番号に対応するページ番号を特定し、当該ページ番号をフラッシュメモリ5に通知すれば良い。
以上のように、本変形例では、制御装置10は、図13に示されるように、処理対象のグループに対応するページ番号のページ150内の全データ(1ページ分のデータ)の読み出し要求をフラッシュメモリ5に行う(ステップs21)。そして、制御装置10は、処理対象のグループに対応するページ番号のページ150内の全データ(1ページ分のデータ)をフラッシュメモリ5から受け取ると(ステップs22)、論物変換情報に基づいて、当該全データのうち、当該グループを構成する複数のセクタ番号に対応する複数のセクタ250が割り当てられた複数の部分ページ151内のデータ以外のデータを破棄する(ステップs23)。これにより、読み出し対象のデータを適切に取得しつつ、フラッシュメモリ5に対する読み出しのさらなる高速化を図ることができる。
<第4変形例:読み出し要求の変形例その3>
上記の第3変形例では、制御装置10は、処理対象のグループに対応するページ番号のページ150内の1ページ分のデータを読み出した後に不要なデータを破棄していたが、処理対象のグループに対応するページ番号のページ150内の1ページ分のデータのうち、必要なセクタデータだけを一度に読み出しても良い。以下に、本変形例について詳細に説明する。
本変形例では、ホスト装置2は、処理対象グループに対応するページ番号と、処理対象のグループを構成する複数のセクタ番号とを含むホスト側読み出し要求信号をメモリ制御装置4に出力する。メモリ制御装置4は、論物変換情報を参照して、ホスト側読み出し要求信号に含まれる複数のセクタ番号にそれぞれ対応する複数の部分ページ特定情報を特定する。そして、メモリ制御装置4は、特定した複数の部分ページ特定情報によって特定される複数の部分ページ151の列アドレスと、ホスト側読み出し要求信号に含まれるページ番号とを含むメモリ側読み出し要求信号をフラッシュメモリ5に出力する。これにより、制御装置10から、処理対象のグループに対応するページ番号のページ150の1ページ分のデータのうち、処理対象のグループを構成する複数のセクタ番号に対応する複数のセクタ250が割り当てられた複数の部分ページ151に記憶される全データの読み出し要求が、フラッシュメモリ5に対して行われる。
フラッシュメモリ5は、メモリ側読み出し要求信号に含まれるページ番号のページ150内のデータがページバッファ51に記憶される場合には、ページバッファ51内における、メモリ側読み出し要求信号に含まれる列アドレスで指定される複数の部分ページ151内の全データをメモリ制御装置4に出力する。これにより、メモリ制御装置4は、処理対象のグループに対応するページ番号のページ150内の1ページ分のデータのうち、処理対象のグループを構成する複数のセクタ番号のセクタ250のセクタデータ、つまり必要なセクタデータのみを取得する。メモリ制御装置4は、処理対象のグループを構成する複数のセクタ番号のセクタ250のセクタデータと、当該セクタデータの数と、当該複数のセクタ番号にそれぞれ対応する複数の部分ページ特定情報とをホスト装置2に出力する。なお、処理対象のグループが4つのセクタ番号で構成されている場合には、処理対象グループに対応するページ番号のページ150内の1ページ分のデータのすべてが必要なデータとなる。
なお、ホスト装置2は、処理対象のグループに対応するページ番号を出力せずに、処理対象のグループを構成する複数のセクタ番号をメモリ制御装置4に出力しても良い。この場合には、メモリ制御装置4が、論物変換情報を参照して、処理対象のグループを構成する複数のセクタ番号に対応するページ番号を特定し、当該ページ番号をフラッシュメモリ5に通知すれば良い。
以上のように、本変形例では、制御装置10は、図14に示されるように、処理対象のグループに対応するページ番号のページ150内における、処理対象のグループを構成する複数のセクタ番号に対応する複数のセクタ250が割り当てられた複数の部分ページ151に記憶される全セクタデータ、つまり必要な複数のセクタデータの読み出し要求をフラッシュメモリ5に行う(ステップs31)。そして、制御装置10は、必要な複数のセクタデータをフラッシュメモリ5から受け取る(ステップs32)。これにより、上記の第3変形例と同様に、読み出し対象のデータを適切に取得しつつ、フラッシュメモリ5に対する読み出しのさらなる高速化を図ることができる。
<第5変形例:フラッシュメモリに対する読み出し要求の不実施>
第2〜第4変形例のように、ホスト装置2がメモリ制御装置4に対してページ番号を含むホスト側読み出し要求信号を出力する場合には、上述の図12に示される、読み出し対象のデータについての読み出し処理において、ホスト装置2は、誤動作により、グループ分けによって得られた各グループに対応したページ番号以外のページ番号を出力する可能性がある。つまり、ホスト装置2は、読み出し処理において、メモリ制御装置4から通知されたページ番号以外のページ番号を、誤ってメモリ制御装置4に通知することがある。このような場合に、メモリ制御装置4が、誤って通知されたページ番号のページ150内のデータを、フラッシュメモリ5から読み出してホスト装置2に出力すると、ホスト装置2は、受け取ったデータがどのセクタ250のデータであるか分からないことから、ホスト装置2がさらに誤動作する可能がある。
そこで、本変形例では、メモリ制御装置4は、読み出し処理において、ホスト装置2からの情報要求信号に応じてホスト装置2に通知したページ番号以外のページ番号を含むホスト側読み出し要求信号をホスト装置2から受け取ったときには、当該ホスト側読み出し要求信号を無視する。つまり、メモリ制御装置4は、読み出し処理において、ホスト装置2からのホスト側読み出し要求信号に含まれるページ番号が、自身がホスト装置2に通知したページ番号である場合には、第2〜第4変形例のように、ホスト側読み出し要求信号に含まれるページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行う。一方で、メモリ制御装置4は、読み出し処理において、ホスト装置2からのホスト側読み出し要求信号に含まれるページ番号が、自身がホスト装置2に通知したページ番号では無い場合には、ホスト側読み出し要求信号に含まれるページ番号のページ150内のデータの読み出し要求をフラッシュメモリ5に行わない。これにより、フラッシュメモリ5に対する不要な読み出しを抑制することができるとともに、ホスト装置2が不要なデータを取得して誤動作する可能性を抑制することができる。
なお、メモリ制御装置4は、ホスト装置2からのホスト側読み出し要求信号を無視した場合には、その旨をホスト装置2に通知しても良い。メモリ制御装置4は、ホスト装置2からのホスト側読み出し要求信号を無視したことを通知する通知データを、読み出し処理において最後にフラッシュメモリ5から読み出したデータに続けて出力しても良いし、ホスト装置2からのホスト側読み出し要求信号を無視した直後に、それを通知する通知データを出力しても良い。
<第6変形例(再配置処理の一時的な禁止)>
上述の特許文献2及び3にも記載されるように、フラッシュメモリのメモリセルアレイ内のデータが、リードディスターブ等によって、本来の値から変化し、当該データにビットエラーが発生することがある。以下に、この対策として一般的に行われる再配置処理及び更新処理について説明する。
メモリ制御装置4の制御部40は、所定の判定条件に基づいて、ビットエラーの発生確率の高い少なくとも一つのページ150を特定し、特定した少なくとも一つのページ150内のデータを、別の少なくとも一つの空きのページ150に書き直す再配置処理を実行する。この再配置処理はリフレッシュとも呼ばれる。そして、制御部40は、再配置処理を実行したときには、実行した再配置処理の内容に応じて、管理情報510に含まれる論物変換情報を更新する更新処理を行う。以下に、再配置処理及び更新処理の例について説明する。
図15,17は再配置処理の一例を示す図である。図16は、図15に示される再配置処理に応じた更新処理を説明するための図である。図18は、図17に示される再配置処理に応じた更新処理を説明するための図である。図16,18では、説明の便宜上、第1部分ページ151a、第2部分ページ151b、第3部分ページ151c及び第4部分ページ151dを特定するための部分ページ特定情報が、それぞれ、A、B、C及びDで示されている。
図15に示される再配置処理では、ビットエラーの発生確率の高い一つのページ150に書き込まれているデータが、空きの一つのページ150に書き直されている。具体的には、ビットエラーの発生確率の高いページ番号100のページ150内のデータが、そのまま、空きのページ番号200のページ150に書き直されている。
図15に示される再配置処理に応じた更新処理では、図16に示されるように、論物変換情報において、セクタ番号1000,2000,1008,1005に対応するページ番号が100から200に変更される。なおこの更新処理では、セクタ番号1000,2000,1008,1005に対応する部分ページ特定情報は変更されない。
一方で、図17に示される再配置処理では、ビットエラーの発生確率の高い複数のページ150に書き込まれているデータが、空きの複数のページ150に書き直されている。具体的には、ビットエラーの発生確率の高いページ番号100,101のページ150内のデータが、空きのページ番号200,201のページ150に書き直されている。図17の例では、ページ番号100のページ150内のデータのうち、一部のデータ(セクタ番号1000,1005に応じたセクタデータ)がページ番号200のページ150に書き込まれ、残りのデータ(セクタ番号2000,1008に応じたセクタデータ)がページ番号201のページ150に書き込まれている。同様に、ページ番号101のページ150内のデータのうち、一部のデータ(セクタ番号1001,1004に応じたセクタデータ)がページ番号200のページ150に書き込まれ、残りのデータ(セクタ番号2001に応じたセクタデータ)がページ番号201のページ150に書き込まれている。
図17に示される再配置処理に応じた更新処理では、図18に示されるように、論物変換情報において、セクタ番号1000,1005に対応するページ番号が100から200に変更され、セクタ番号1001,1004に対応するページ番号が101から200に変更され、セクタ番号1008,2000に対応するページ番号が100から201に変更され、セクタ番号2001に対応するページ番号が101から201に変更される。
さらに、図17に示される再配置処理に応じた更新処理では、セクタ番号2000に対応する部分ページ特定情報がBからCに変更され、セクタ番号1008に対応する部分ページ特定情報がCからAに変更される。
このように、再配置処理においては、ビットエラーの発生確率の高いページ150内のデータが、そのまま別のページ150に書き直される場合もあれば、ビットエラーの発生確率の高いページ150内のデータが、複数に分けられて複数のページ150に書き直される場合もある。
更新処理が実行されると、データが別のページ150に書き直されたページ150は、空きのページ150となる。よって、データが別のページ150に書き直されたページ150には、図19に示されるように、新たなデータが書き込まれることがある。図19の例では、データが別のページ150に書き直されたページ番号100のページ150には、セクタ番号3000,3009,3002のセクタ250のデータが書き込まれている。
制御部40は、再配置処理を行う際には、ビットエラーの発生確率の高いページ150内のデータに対して誤り検出及び誤り訂正を行っても良い。制御部40は、ビットエラーの発生確率の高いページ150内のデータに対する誤り検出の結果、ビットエラーが検出された場合には、当該データに対して誤り訂正を行い、誤り訂正後の当該データを、書き直し先のページ150に書き込む。
再配置処理で使用される判定条件としては、様々な条件が考えられる。例えば、制御部40は、各ページ150に対する読み出し回数をカウントし、読み出し回数がしきい値以上のページ150を、ビットエラーの発生確率の高いページ150であると判定しても良い。また、制御部40は、ページ150から読み出したデータに対して誤り検出及び誤り訂正を行う場合には、ページ150から読み出したデータでの誤りビット数がしきい値以上のときに、当該ページ150が、ビットエラーの発生確率の高いページ150であると判定しても良い。このしきい値としては、制御部40が誤り訂正可能なビット数よりも小さい値に設定される。
以上のような一般的な再配置処理及び更新処理が、読み出し処理の際に行われると、フラッシュメモリ5に対して、同じページ番号のページ150内のデータの読み出し要求を連続して行う可能性が低くなることがある。さらに、上記の第2〜第5変形例のように、ホスト装置2がページ番号を含むホスト側読み出し要求信号を出力する場合には、ホスト装置2は所望のデータをフラッシュメモリ5から読み出せない可能性がある。以下にこの点について説明する。
上述の図17に示されるように、再配置処理が行われた場合には、同じページ番号のページ150に書き込まれている複数のセクタデータが、同じページ150に書き直されないことがある。図17の例では、ページ番号100のページ150に書き込まれている4つのセクタデータのうち、セクタ番号1000,1005のセクタ250のセクタデータは、ページ番号200のページ150に書き直され、セクタ番号2000,1008のセクタ250のセクタデータは、ページ番号201のページ150に書き直されている。
同じページ番号のページ150に書き込まれている複数のセクタデータが、同じページ150に書き直されない場合には、更新処理後の論物変換情報では、当該複数のセクタデータに対応するページ番号が同じにはならない。図18に示されるように、セクタ番号1000,1005に対応するページ番号は200であり、セクタ番号2000,1008に対応するページ番号は201であり、セクタ番号1000,2000,1008,1005に対応するページ番号は同じではない。
読み出し処理の実行中に、図17,18のような再配置処理及び更新処理が行われると、あるグループに関するデータの読み出し要求を行うときに、メモリ制御装置4での論物変換情報において、当該あるグループを構成する複数のセクタ番号が同じページ番号に対応付けられていない可能性がある。
例えば、上記のファイルAの読み出し処理において、グループ分け(図12のステップs14)の直後に、図17,18のような再配置処理及び更新処理が行われると、図8に示される100番グループに関するデータの読み出し処理を行う時点において、メモリ制御装置4での論物変換情報では、100番グループを構成する複数のセクタ番号1000,1005,1008は同じページ番号に対応付けられていない。具体的には、図18の右側に示されるように、セクタ番号1000,1005はページ番号200に対応付けられ、セクタ番号1008はページ番号201に対応付けられている。このような場合に、制御装置10が、100番グループについてのセクタ単位のデータ読み出しを行うと、フラッシュメモリ5に対しては、ページ番号200のページ150内のデータの読み出し要求が2回、ページ番号201のページ150内のデータの読み出し要求が1回通知され、上記の例とは異なり、同じページ番号のページ150内のデータの読み出し要求が3回連続して通知されない。よって、フラッシュメモリ5がメモリセルアレイ50にアクセスする頻度が少し増加し、フラッシュメモリ5に対する読み出し速度が少し低下する可能性がある。
さらに、このような場合に、ホスト装置2が、100番グループに関するデータ読み出しを行う際に、ページ番号100をメモリ制御装置4に通知すると、フラッシュメモリ5からは、セクタ番号1000,1005,1008以外のセクタ番号に応じたセクタデータが読み出される可能性がある。具体的に説明すると、上述の図19に示されるように、再配置処理が行われたデータを記憶していたページ番号100のページ150は空きページ150となって、他のセクタ番号に応じたデータが書き込まれることがあり、このような場合に、メモリ制御装置4がページ番号100のページ150内のデータの読み出し要求をフラッシュメモリ5に行うと、フラッシュメモリ5からは、セクタ番号1000,1005,1008以外のセクタ番号に応じたセクタデータが出力される。したがって、ホスト装置2は、所望のデータをフラッシュメモリ5から読み出せない可能性がある。
そこで、本変形例では、制御装置10は、読み出し処理を行う際には、読み出し対象のデータが記憶される複数のセクタ250が割り当てられた複数のページ150に書き込まれているデータについての再配置処理は実行しない。図20は、本変形例に係るホスト装置2及びメモリ制御装置4の動作を示す図である。図20は上述の図12に対応している。
図20に示されるように、ホスト装置2では、制御部20が、管理情報500に基づいて、読み出し対象のデータを記憶する複数のセクタ250のセクタ番号を特定する前に、メモリ制御装置4に対して、再配置処理の実行を禁止することを通知するための再配置禁止通知信号を出力する(ステップs41)。これにより、メモリ制御装置4では、再配置処理の実行が禁止される。メモリ制御装置4では、メモリセルアレイ50に記憶されている全データについての再配置処理が禁止されても良い。あるいは、メモリ制御装置4では、情報要求信号に応じてホスト装置2に通知する各ページ番号のページ150内のデータ、つまり、読み出し対象のデータが記憶される複数のセクタ250が割り当てられている複数のページ150内のデータだけの再配置処理が禁止され、他のページ150内のデータの再配置処理が許可されても良い。再配置処理が禁止されると、再配置処理に応じた更新処理も当然に実行されない。
ホスト装置2は、再配置禁止通知信号を出力した後、管理情報500に基づいて、読み出し対象のデータを記憶する複数のセクタ250のセクタ番号を特定する(ステップs11)。以後、ホスト装置2及びメモリ制御装置4は上記と同様に動作する。そして、ホスト装置2は、読み出し対象のデータの読み出しが完了すると、再配置処理の実行を許可することを通知するための再配置許可通知信号を出力する(ステップs42)。これにより、メモリ制御装置4では再配置処理の実行が許可される。
以上のように、本変形例では、制御装置10は、読み出し処理を行う際には、読み出し対象のデータが記憶される複数のセクタ250が割り当てられている複数のページ150(図8の例では、ページ番号100,101,102,103のページ150)に書き込まれているデータについての再配置処理は実行しない。したがって、より確実に、同じページ番号のページ150内のデータの読み出し要求を連続して行うことができる。さらに、ホスト装置2がページ番号を含むホスト側読み出し要求信号を出力する場合には、制御装置10が所望のデータをフラッシュメモリ5から読み出せない可能性を抑制することができる。
<第7変形例:読み出し処理後に更新処理を実施>
上記の説明から理解できるように、読み出し処理中に再配置処理が実行されたとしても、読み出し処理の後に当該再配置処理の内容に応じた更新処理が実行される場合には、読み出し処理中に、それが記憶するデータの再配置処理が行われたページ150が空きページ150とはならない。したがって、この場合には、読み出し処理中において、それが記憶するデータの再配置処理が行われたページ150内には、再配置処理されたデータが残っている(図15,17参照)。よって、この場合には、制御装置10は同じページ番号のページ150内のデータの読み出し要求を連続して行うことができるとともに、制御装置10が所望のデータをフラッシュメモリ5から読み出せないことを抑制することができる。
そこで、本変形例では、制御装置10は、読み出し処理中であっても再配置処理を禁止しない。そして、制御装置10は、読み出し処理中に、読み出し対象のデータが記憶される複数のセクタ250が割り当てられた複数のページ150の少なくとも一つのページ150に書き込まれているデータについての再配置処理を実行した場合には、読み出し対象データをフラッシュメモリ5から読み出した後に(読み出し処理後に)、当該再配置処理の内容に応じた更新処理を実行する。これにより、制御装置10は同じページ番号のページ150内のデータの読み出し要求を連続して行うことができるとともに、制御装置10が所望のデータをフラッシュメモリ5から読み出せない可能性を抑制し、さらに、リードディスターブ等によってメモリセルアレイ50内のデータにビットエラーが発生することを抑制することができる。
例えば、制御装置10は、ファイルAの読み出し中に、ページ番号100のページ150内のデータについて、図15に示されるような再配置処理を行った場合には、ファイルAを読み出した後に、論物変換情報において、セクタ番号1000,2000,1008,1005に対応するページ番号を100から200に変更する。これにより、制御装置10は、読み出し処理中に、ページ番号100のページ150内のデータの読み出し要求を行った場合には、所望のセクタデータ、つまりセクタ番号1000,2000,1008,1005に応じてセクタデータをフラッシュメモリ5から読み出すことができる。
なお、制御部40が、再配置処理を実行する際に、ビットエラーの発生確率の高いページ150内のデータに対して誤り検出及び誤り訂正を行う場合には、ホスト装置2は、読み出したデータのうち、そのデータの読み出し処理中に誤り訂正されたセクタデータを、読み出し処理後に再度フラッシュメモリ5から読み出しても良い。以下にこの場合のホスト装置2及びメモリ制御装置4の動作を詳細に説明する。
ホスト装置2は、読み出し対象のデータの読み出しが完了すると、当該読み出し対象のデータのうち、読み出し処理中の再配置処理の実行時に誤り訂正されたセクタデータが存在するか否かを確認するための訂正データ確認信号をメモリ制御装置4に出力する。
メモリ制御装置4では、制御部40は、ホスト装置2から訂正データ確認信号を受け取ると、読み出し対象のデータにおいて、読み出し処理中の再配置処理の実行時に誤り訂正を行ったセクタデータが存在するか否かを判定する。制御部40は、読み出し対象のデータにおいて、誤り訂正を行ったセクタデータが存在する場合には、当該セクタデータに対応するセクタ番号(以後、「訂正データ対応セクタ番号」と呼ぶ)をホスト装置2に通知する。例えば、ファイルAの読み出し処理の間に上述の図15に示される再配置処理が行われ、当該再配置処理の際に、制御部40が、ページ番号100のページ150の第1部分ページ151a及び第2部分ページ151b内のセクタデータを誤り訂正した上で、ページ番号200のページ150の第1部分ページ151a及び第2部分ページ151b内に書き込んだ場合には、制御部40は、ホスト装置2から訂正データ確認信号を受け取ると、訂正データ対応セクタ番号として、セクタ番号1000,2000をホスト装置2に通知する。
ホスト装置2では、制御部20は、読み出し済みの読み出し対象のデータのうち、メモリ制御装置4から通知された訂正データ対応セクタ番号に応じたセクタデータを破棄する。当該セクタデータは、メモリ制御装置2で誤り訂正される前のデータであることから、当該セクタデータにはデータ誤りが発生している。したがって、当該セクタデータはホスト装置2によって破棄される。その後、ホスト装置2は、通知された訂正データ対応セクタ番号に応じたセクタデータを、フラッシュメモリ5から読み出す。具体的には、ホスト装置2は、訂正データ対応セクタ番号をメモリ制御装置4に通知し、メモリ制御装置4は、論物変換情報に基づいて、通知された訂正データ対応セクタ番号に対応するページ番号及び部分ページ特定情報を特定する。このときの論物変換情報は、読み出し処理後に更新された論物変換情報である。したがって、訂正データ対応セクタ番号が、セクタ番号1000,2000である場合には、このときの論物変換情報においては、図16の右側に示されるように、セクタ番号1000,2000に対応するページ番号は100ではなく200となる。
その後、メモリ制御装置4は、特定したページ番号と、特定した部分ページ特定情報によって特定される部分ページ151の列アドレスとを含むメモリ側読み出し要求信号をフラッシュメモリ5に出力する。これにより、フラッシュメモリ5からは、訂正データ対応セクタ番号に応じたセクタデータが出力され、当該セクタデータがホスト装置2に入力される。このセクタデータは誤り訂正済みのデータである。ホスト装置2は、破棄したセクタデータ(データ誤りが発生しているセクタデータ)の代わりに、再度読み出したセクタデータ(誤り訂正済みのセクタデータ)を使用する。
このように、制御装置10は、読み出し済みの読み出し対象のデータにおいて、そのデータの読み出し処理中に誤り訂正されたセクタデータが存在する場合には、当該セクタデータを破棄する。そして、制御装置10は、読み出し処理中に誤り訂正されたセクタデータに対応するセクタ番号に対応するセクタ250内のデータをフラッシュメモリ5から再度読み出す。これより、制御装置10は、適切な読み出し対象のデータを取得することができる。
なお、上記の例では、メモリ制御装置4は、読み出し処理の後にホスト装置2から通知される訂正データ確認信号に応じて訂正データ対応セクタ番号を通知しているが、読み出し処理中において、訂正データ対応セクタ番号を自らホスト装置2に通知しても良い。このとき、メモリ制御装置4は、フラッシュメモリ5から読み出したデータと一緒に訂正データ対応セクタ番号を通知しても良い。
<第8変形例:読み出し処理後のデータの再読出し>
本変形例では、制御装置10は、読み出し処理中の再配置処理及び更新処理を禁止しない代わりに、読み出し処理後に、フラッシュメモリ5からデータを再読出しする。図21は本変形例に係るホスト装置2及びメモリ制御装置4の動作を示す図である。
図21に示されるように、ホスト装置2では、制御部20が、ステップs11において、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号を特定した後に、特定したセクタ番号に対応するページ番号の要求を開始することを通知するための情報要求開始通知信号をメモリ制御装置4に出力する。(ステップs51)。その後、制御装置20は、特定したセクタ番号を含む情報要求信号をメモリ制御装置4に出力し(ステップs12)、その後、ホスト装置2及びメモリ制御装置4は上記と同様に動作する。ホスト装置2は、特定した各セクタ番号に対応するページ番号を取得すると、ページ番号の要求を終了することを通知するための情報要求終了通知信号をメモリ制御装置4に出力する。(ステップs52)。
ホスト装置2は、情報要求終了通知信号を出力すると、ステップs14を実行し、その後、ホスト装置2及びメモリ制御装置4は同様に動作する。その後、ホスト装置2は、読み出し対象のデータの読み出しが完了すると、情報要求信号に応じてメモリ制御装置4から通知されたページ番号のページ150内のデータに対して再配置処理が実行された否かを確認するための再配置確認信号をメモリ制御装置4に出力する(ステップs53)。
メモリ制御装置4では、制御部40は、ホスト装置2から再配置確認信号を受け取ると、情報要求開始通知信号を受け取ってから情報要求終了通知信号を受け取るまでの期間にホスト装置2から通知された複数のセクタ番号において、読み出し処理の間に実行した再配置処理及び更新処理によって、論物変換情報でのページ番号との対応付けが変更されたセクタ番号が存在するか否かを判定する。つまり、制御部40は、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号において、読み出し処理中の再配置処理及び更新処理によって、論物変換情報でのページ番号との対応付けが変更されたセクタ番号(以後、対応変更済みセクタ番号と呼ぶ)が存在するか否かを判定する。メモリ制御装置4は、読み出し対象データが記憶される複数のセクタ250のセクタ番号において、対応変更済みセクタ番号が存在する場合には、対応変更済みセクタ番号をホスト装置2に通知する(ステップs54)。
例えば、ファイルAの読み出し処理の間に上述の図15,16に示される再配置処理及び更新処理が行われた場合には、対応変更済みセクタ番号は、セクタ番号1000,1008,1005となる。
ホスト装置2では、制御部20は、読み出したデータのうち、メモリ制御装置4から通知された対応変更済みセクタ番号に応じたセクタデータを破棄する(ステップs55)。その後、ホスト装置2は、通知された対応変更済みセクタ番号に応じたセクタデータを、フラッシュメモリ5から再度読み出す(ステップs56)。具体的には、ホスト装置2は、対応変更済みセクタ番号をメモリ制御装置4に通知し、メモリ制御装置4は、論物変換情報に基づいて、通知された対応変更済みセクタ番号に対応するページ番号及び部分ページ特定情報を特定する。なお、このときの論物変換情報は、読み出し処理中に行われた再配置処理の内容に応じて更新された論物変換情報である。したがって、対応変更済みセクタ番号が、セクタ番号1000,1008,1005である場合には、このときの論物変換情報においては、図16の右側に示されるように、セクタ番号1000,1008,1005に対応するページ番号は100ではなく200となる。
その後、メモリ制御装置4は、特定したページ番号と、特定した部分ページ特定情報によって特定される部分ページ151の列アドレスとを含むメモリ側読み出し要求信号をフラッシュメモリ5に出力する。これにより、フラッシュメモリ5からは、対応変更済みセクタ番号に応じたセクタデータが出力され、当該セクタデータがホスト装置2に入力される。ホスト装置2は、破棄したデータの代わりに、再度読み出したセクタデータを使用する。これにより、ホスト装置2は適切な読み出し対象のデータを取得することができる。
このように、本変形例では、制御装置10は、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号において、読み出し処理の実行中に行った再配置処理及び更新処理によってページ番号との対応付けが変更された対応変更済みセクタ番号が存在する場合には、読み出し対象データをフラッシュメモリ5から読み出した後に、読み出した当該読み出し対象のデータに含まれる、当該対応変更済みセクタ番号に対応するセクタ250内のデータを破棄する。そして、制御装置10は、対応変更済みセクタ番号に対応するセクタ250内のデータをフラッシュメモリ5から再度読み出す。これより、制御装置10は、適切な読み出し対象のデータを取得することができる。
<第9変形例:複数のフラッシュメモリに対する読み出し処理>
図22は本変形例に係るデータ処理システム1の構成を示す図である。図22に示されるように、本変形例では、記憶装置3は、複数のフラッシュメモリ5を備えている。ホスト装置2は、メモリ制御装置4を通じて、複数のフラッシュメモリ5のそれぞれからデータを読み出すことができるとともに、複数のフラッシュメモリ5のそれぞれに対してデータを書き込むことができる。
複数のフラッシュメモリ5は、互いに同じ構成を有している。各フラッシュメモリ5のメモリセルアレイ50には、上記と同様に、当該メモリセルアレイ50内でのデータを管理する管理情報510と、アプリケーションデータ520とが記憶されている。したがって、複数のフラッシュメモリ5のそれぞれには固有の管理情報510が記憶されている。よって、複数のフラッシュメモリ5にそれぞれ対応する複数の論物変換情報が存在する。
また、各フラッシュメモリ5においては、メモリセルアレイ50を構成する複数のページ150に対して、0番から始まる複数の物理ページ番号がそれぞれ固定的に割り当てられている。したがって、複数のフラッシュメモリ5の間においては、同じ物理ページ番号のページ150が存在する。ここでも、単にページ番号と言えば、物理ページ番号を意味する。
本変形例では、複数のフラッシュメモリ5がそれぞれ備える複数のメモリセルアレイ50全体で構成される記憶領域が、複数のセクタ250に論理的に区分されている。そして、当該複数のセクタ250には、互いに異なる複数のセクタ番号が割り当てられている。したがって、複数のフラッシュメモリ5の間においては、同じセクタ番号のセクタ250は存在しない。
また本変形例では、上記と同様に、一つのページ150には複数のセクタ250、例えば4つのセクタ250が割り当てられる。一つのセクタ250の記憶容量は、一つのページ150の記憶容量の四分の一となっている。各ページ150は、セクタ250の4つ分のデータを記憶することが可能である。
ホスト装置2内の管理情報500には、上記と同様に、複数のフラッシュメモリ5のメモリセルアレイ50内のファイル(データ)と、当該ファイルが記憶される複数のセクタ250のセクタ番号とを対応付ける第1対応付け情報が含まれている。一つのファイルは、一つのフラッシュメモリ5のメモリセルアレイ50内にだけ記憶されることもあれば、2つ以上のフラッシュメモリ5のメモリセルアレイ50にわたって記憶されることがある。
各フラッシュメモリ5に対しては、当該フラッシュメモリ5を識別するための固有の識別情報が割り当てられている。以後、この識別情報をメモリ識別情報と呼ぶ。メモリ識別情報は、番号であっても良いし、他の情報であっても良い。
フラッシュメモリ5内の管理情報510に含まれる論物変換情報では、当該フラッシュメモリ5のメモリ識別情報と、セクタ番号と、当該セクタ番号のセクタ250内のデータが記憶されるページ150のページ番号と、当該ページ150に含まれる、当該セクタ250内のデータが記憶される部分ページ151の部分ページ特定情報とが対応付けられている。言い換えれば、フラッシュメモリ5内の論物変換情報では、セクタ番号と、当該セクタ番号のセクタ250が割り当てられたページ150のページ番号と、当該ページ150に含まれる、当該セクタ250が割り当てられた部分ページ151の部分ページ特定情報と、当該ページ150を有するフラッシュメモリ5のメモリ識別情報とが対応付けられている。
本変形例に係る制御装置10は、複数のフラッシュメモリ5にそれぞれ対応する複数の論物変換情報に基づいて、読み出し対象のデータが記憶される複数のセクタのセクタ番号を、対応するページ番号及びメモリ識別情報の組が同一になるようにグループ分けする。そして、制御装置10は、グループごとに、当該グループに必要な、当該グループに対応するページ番号のページ150内のデータの読み出し要求を、当該グループに対応するメモリ識別情報のフラッシュメモリ5に行う。図23は読み出し処理を行う本変形例のホスト装置2及びメモリ制御装置4の動作を示す図である。
図23に示されるように、ホスト装置2は、上記と同様に、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号を、管理情報500を参照して特定する(ステップs11)。
次に、ホスト装置2は、上記と同様に、特定した複数のセクタ番号の一つを含む情報要求信号をメモリ制御装置4に出力する(ステップs12)。
メモリ制御装置4は、揮発性メモリ42内の、複数のフラッシュメモリ5にそれぞれ対応する複数の論物変換情報を参照して、ホスト装置2からの情報要求信号に含まれるセクタ番号に対応するページ番号及びメモリ特定情報を特定し、それらをホスト装置2に出力する(ステップs63)。
ステップs12,s63は、ホスト装置2が、特定した複数のセクタ番号のそれぞれに対応するページ番号及びメモリ特定情報を取得するまで行われる。
ホスト装置2は、特定した複数のセクタ番号のそれぞれに対応するページ番号及びメモリ特定情報を取得すると、ステップs64において、特定した複数のセクタ番号を、対応するページ番号及びメモリ特定情報の組が同じとなるようにグループ分けする。以下に、本変形例のグループ分けの一例について説明する。以下の説明では、セクタ番号5000〜5009のセクタ250に記憶されるファイルCの読み出し処理でのグループ分けについて説明する。
図24は、ファイルCが記憶されるセクタ250及びページ150の対応関係を示す図である。図24に示されるように、セクタ番号5000のセクタ250は、フラッシュメモリ5aでのページ番号500のページ150の第1部分ページ151aに割り当てられ、セクタ番号5008のセクタ250は、フラッシュメモリ5aでのページ番号500のページ150の第3部分ページ151cに割り当てられ、セクタ番号5005のセクタ250は、フラッシュメモリ5aでのページ番号500のページ150の第4部分ページ151dに割り当てられている。セクタ番号5001のセクタ250は、フラッシュメモリ5aでのページ番号501のページ150の第2部分ページ151bに割り当てられ、セクタ番号5004のセクタ250は、フラッシュメモリ5aでのページ番号501のページ150の第3部分ページ151cに割り当てられている。
セクタ番号5002のセクタ250は、フラッシュメモリ5bでのページ番号850のページ150の第1部分ページ151aに割り当てられ、セクタ番号5006のセクタ250は、フラッシュメモリ5bでのページ番号850のページ150の第2部分ページ151bに割り当てられ、セクタ番号5003のセクタ250は、フラッシュメモリ5bでのページ番号850のページ150の第3部分ページ151cに割り当てられている。セクタ番号5007のセクタ250は、フラッシュメモリ5bでのページ番号851のページ150の第2部分ページ151bに割り当てられ、セクタ番号5009のセクタ250は、フラッシュメモリ5bでのページ番号851のページ150の第4部分ページ151dに割り当てられている。
ホスト装置2は、図25に示されるように、ファイルCに対応するセクタ番号5000〜5009を、対応するページ番号及びメモリ識別情報の組が同一となるようにグループ分けする。図25では、フラッシュメモリ5a,5bのメモリ識別情報を便宜上それぞれ5a、5bとしている。
グループG1は、対応するページ番号及びメモリ識別情報が500及び5aであるセクタ番号5000,5008,5005で構成されている。グループG2は、対応するページ番号及びメモリ識別情報が501及び5aであるセクタ番号5001,5004で構成されている。グループG3は、対応するページ番号及びメモリ識別情報が850及び5bであるセクタ番号5002,5006,5003で構成されている。グループG4は、対応するページ番号及びメモリ識別情報が851及び5bであるセクタ番号5007,5009で構成されている。
ホスト装置2は、ステップs64においてグループ分けを行うと、上記と同様に、グループごとに、当該グループを構成する複数のセクタ番号を順にメモリ制御装置4に通知する(ステップs1)。
ホスト装置2からセクタ番号が通知されたメモリ制御装置4では、制御部40が、複数のフラッシュメモリ5にそれぞれ対応する複数の論物変換情報を参照して、通知されたセクタ番号に対応するページ番号、部分ページ識別情報及びメモリ識別情報を特定する。そして、制御部40は、特定したページ番号のページ150に含まれる、特定した部分ページ特定情報で特定される部分ページ151内のデータの読み出し要求を、特定したメモリ識別情報のフラッシュメモリ5に行う。つまり、制御部40は、特定したページ番号と、特定した部分ページ特定情報で特定される部分ページ151の列アドレスとを含むメモリ側読み出し要求信号を、特定したメモリ識別情報のフラッシュメモリ5に通知する(上述の図6のステップs2)。
メモリ側読み出し要求信号を受けたフラッシュメモリ5は、上記と同様にして、当該メモリ側読み出し要求信号に含まれるページ番号及び列アドレスに応じたセクタデータをメモリ制御装置4に出力する(上述の図6のステップs3)。
メモリ制御装置4では、制御部40は、フラッシュメモリ5からセクタデータを受け取ると、ステップs4において、受け取ったセクタデータをホスト装置2に出力する。
以後、制御装置10は同様に動作して、ホスト装置2が、グループ分けによって得られた各グループの各セクタ番号に応じたセクタデータを取得すると、読み出し処理が終了する。
このように、本変形例では、制御装置10が、複数のフラッシュメモリ5のそれぞれについて用意された論物変換情報に基づいて、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号を、対応するページ番号及びメモリ識別情報の組が同一になるようにグループ分けする。そして、制御装置10は、グループごとに、当該グループに必要な、当該グループに対応するページ番号のページ150内のデータの読み出し要求を、当該グループに対応するメモリ識別情報のフラッシュメモリ5に行う。これにより、制御装置10が複数のフラッシュメモリ5を制御する場合であっても、上記と同様に、各フラッシュメモリ5に対して、同じページ番号のページ150に対する読み出し要求が連続して行われる可能性が高くなる。よって、各フラッシュメモリ5に対する読み出しの高速化を図ることが可能となる。
なお、本変形例では、ホスト装置2からセクタ番号を含むホスト側読み出し要求信号が出力される場合について説明したが、上記の第2〜5変形例のように、ホスト装置2からページ番号を含むホスト側読み出し要求信号が出力される場合であっても、上記と同様のグループ分け及びフラッシュメモリ5に対する読み出し要求を行うことができる。
また、本変形例では、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号は、対応する物理ページ番号及びメモリ識別情報の組が同一となるようにグループ分けされていたが、対応する論理ページ番号でグループ分けされても良い。ここでの論理ページ番号とは、それに対応するページについての、複数のフラッシュメモリ5のメモリセルアレイ50全体で構成される記憶領域での論理的な位置を示す情報である。当該記憶領域には、互いに異なる複数の論理ページ番号がそれぞれ割り当てられた複数のページ150が含まれている。複数のフラッシュメモリ5がそれぞれ有する複数のメモリセルアレイ50の間では、同じ論理ページ番号が割り当てられたページ150は存在しない。
読み出し対象のデータが記憶される複数のセクタ250のセクタ番号が、対応する論理ページ番号でグループ分けされる場合には、複数のフラッシュメモリ5にそれぞれ対応する複数の論物変換情報のそれぞれでは、物理ページ番号に対して、当該物理ページ番号のページ150に割り当てられた論理ページ番号が対応付けられている。制御装置10は、各論物変換情報を参照して、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号に対応する複数の論理ページ番号を特定する。例えば、メモリ制御装置4は、情報要求信号を利用してホスト装置2が通知する各セクタ番号に対応する論理ページ番号を、各論物変換情報に基づいて特定する。そして、メモリ制御装置4は、特定した各論理ページ番号をホスト装置2に出力する。
ホスト装置2は、メモリ制御装置4から通知される論理ページ番号に基づいて、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号を、対応する論理ページ番号でグループ分けする。その後、ホスト装置2は、ホスト側読み出し要求信号を利用して、グループごとに、当該グループを構成する各セクタ番号をメモリ制御装置4に通知する。以後の制御装置10の動作は上記と同様である。メモリ制御装置4が、物理ページ番号のページ内のデータの読み出し要求をフラッシュメモリ5に行うことは、見方を変えれば、当該物理ページ番号に対応する論理ページ番号のページ内のデータの読み出し要求をフラッシュメモリ5に行うことと言える。
このように、制御装置10が、グループごとに、当該グループに必要な、当該グループに対応する論理ページ番号のページ150内のデータの読み出し要求を、当該論理ページ番号のページ150を含むメモリセルアレイ50を有するフラッシュメモリ5に行うことによって、同様の効果が得られる。
<第10変形例:ホスト装置が直接フラッシュメモリを制御>
上記の例では、ホスト装置2は、メモリ制御装置4を通じてフラッシュメモリ5を制御していたが、メモリ制御装置4を介さずに直接フラッシュメモリ5を制御しても良い。図26は、本変形例に係るデータ処理システム1の構成を示す図である。
図26に示されるように、本変形例のデータ処理システム1では、メモリ制御装置4が設けられておらず、ホスト装置2が、直接的に、フラッシュメモリ5からデータを読み出したり、フラッシュメモリ5に対してデータを書き込んだりする。本変形例では、制御装置10がホスト装置2だけで構成される。
本変形例に係るホスト装置2は、例えば、Linux(登録商標)に対応している。Linux(登録商標)に対応するホスト装置2では、FTL (Flash Translation Layer)という機能ブロック が制御部20に形成される。このFTLが、フラッシュメモリ5のメモリセルアレイ50でのデータを管理する。つまり、FTLが論物変換情報を有している。ホスト装置2の制御部20では、ファイルシステムが、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号を特定する。そして、ホスト装置2の制御部20では、FTLが、論物変換情報を使用して、読み出し対象のデータが記憶される複数のセクタ250のセクタ番号のグループ分けを行うとともに、グループごとに、当該グループに関するデータの読み出し要求をフラッシュメモリ5に対して行う。FTLは、メモリ制御装置4と同様に、フラッシュメモリ5に対して、ページ番号等を含む読み出し要求信号を出力することによって、フラッシュメモリ5に対して、ページ150内のデータの読み出し要求を行う。
このように、ホスト装置2がフラッシュメモリ5に対して直接アクセスする場合には、ホスト装置2とメモリ制御装置4との間の信号のやり取りが不要となることから、フラッシュメモリ5に対する読み出しのさらなる高速化を図ることができる。
以上のように、データ処理システム(記憶システム)1は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。