(57)【要約】【課題】メモリにおいて新しい記憶領域が確保され、空き領域のなくなった記憶領域から新しい記憶領域にデータがコピーされる処理の１回当たりの実行時間を短縮化する。【解決手段】本発明の一態様に係るメモリ制御装置２は、メモリ３において、複数の記憶領域を確保する確保手段７と、複数の記憶領域の中の第１記憶領域の空き領域に対してデータを記憶し、当該第１記憶領域に空き領域がなくなった場合に、次の第２記憶領域の空き領域に対してデータを記憶する空き領域記憶手段８と、第１記憶領域の空き領域がなくなった後、第１記憶領域に記憶されているが第２記憶領域に記憶されていない複数のコピー対象データを、複数回に分けて第２記憶領域に記憶するコピー手段９とを具備する。【選択図】      図１
2008276330.tif 000002
【特許請求の範囲】
【請求項１】
メモリにおいて、複数の記憶領域を確保する確保手段と、
前記複数の記憶領域の中の第１記憶領域の空き領域に対してデータを記憶し、当該第１記憶領域に空き領域がなくなった場合に、次の第２記憶領域の空き領域に対してデータを記憶する空き領域記憶手段と、
前記第１記憶領域の空き領域がなくなった後、前記第１記憶領域に記憶されているが前記第２記憶領域に記憶されていない複数のコピー対象データを、複数回に分けて前記第２記憶領域に記憶するコピー手段と
を具備するメモリ制御装置。
【請求項２】
請求項１記載のメモリ制御装置において、
前記確保手段は、前記第１記憶領域における全てのコピー対象データが前記第２記憶領域に記憶された場合に、前記第１記憶領域を解放し、新たな記憶領域を確保する
ことを特徴とするメモリ制御装置。
【請求項３】
請求項１又は請求項２記載のメモリ制御装置において、
前記コピー手段は、前記第２記憶領域に記憶されているデータの数が１以上のしきい値を超えた場合に、前記第１記憶領域に記憶されている前記複数のコピー対象データを、複数回に分けて前記第２記憶領域に記憶する
ことを特徴とするメモリ制御装置。
【請求項４】
請求項３記載のメモリ制御装置において、
前記コピー手段は、前記第２記憶領域に記憶されているデータの数が前記しきい値を超え、前記第１記憶領域における全てのコピー対象データが前記第２記憶領域に記憶されていないことを条件として、前記第２記憶領域に更新されたデータが記憶されるたびに、前記第１記憶領域に記憶されている前記コピー対象データを、前記第２記憶領域に記憶する
ことを特徴とするメモリ制御装置。
【請求項５】
メモリにおいて、複数の記憶領域を確保し、
前記複数の記憶領域の中の第１記憶領域の空き領域に対してデータを記憶し、
前記第１記憶領域に空き領域がなくなった後に、次の第２記憶領域の空き領域に対してデータを記憶するとともに、前記第１記憶領域に記憶されているが前記第２記憶領域に記憶されていない複数のコピー対象データを、複数回に分けて前記第２記憶領域に記憶する
ことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリへの記憶処理を制御するメモリ制御装置及び方法に関する。
【背景技術】
【０００２】
従来において、半導体メモリをストレージデバイスとして使用する場合、論理アドレスから物理アドレスへの変換に用いられるアドレス変換テーブルなどの管理データが必要になる。
【０００３】
従来の半導体メモリのコントローラは、この管理データをコントローラ内の記憶部上に展開し、ホストからのコマンドにしたがって更新する。コントローラ内の記憶部の管理データが更新されると、コントローラは、半導体メモリの管理領域に、管理データの更新された部分を最小の書き込み単位であるページ単位で書き戻す。半導体メモリの管理領域に空き領域がなければ、コントローラは、新しい管理領域を作成し、管理データの各ページの最新状態を新しい管理領域に記憶する。
【０００４】
特許文献１の情報処理装置は、不揮発性記憶装置の消去単位であるブロックの一つ又は複数を一単位としてエリアを構成する。特許文献１の情報処理装置は、データの消去書き込みをエリア毎に行う。特許文献１の情報処理装置は、不揮発性記憶装置のエリアの内の一つを管理情報エリアとし、不揮発性記憶装置内の記憶データの管理情報を格納する。全てのエリアには、管理情報エリアであるかを示す記憶部が設けられる。管理情報には、全てのエリアの書き込み回数を格納した記憶部が設けられる。
【特許文献１】特開平６−１１９２５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の半導体メモリのコントローラは、新しい管理領域を確保した場合に、空き領域がなくなった管理領域に記憶されている各ページの最新状態をまとめて新しい管理領域に記憶（コピー）する。
【０００６】
したがって、新しい管理領域が確保されるたびに、空き領域がなくなった管理領域から新しい管理領域に各ページの最新状態をコピーする処理時間が必要となり、この処理時間はページの数に応じて長くなる。
【０００７】
本発明は、以上のような実情に鑑みてなされたもので、メモリにおいて新しい記憶領域が確保され、空き領域のなくなった記憶領域から新しい記憶領域にデータがコピーされる処理の１回当たりの実行時間を短縮化するメモリ制御装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題は、メモリにおいて複数の記憶領域を確保する確保手段と、複数の記憶領域の中の第１記憶領域の空き領域に対してデータを記憶し、当該第１記憶領域に空き領域がなくなった場合に、次の第２記憶領域の空き領域に対してデータを記憶する空き領域記憶手段と、第１記憶領域の空き領域がなくなった後、第１記憶領域に記憶されているが第２記憶領域に記憶されていない複数のコピー対象データを、複数回に分けて第２記憶領域に記憶するコピー手段とを具備するメモリ制御装置、により解決される。
【発明の効果】
【０００９】
本発明により、メモリにおいて新しい記憶領域が確保され、空き領域のなくなった記憶領域から新しい記憶領域にデータがコピーされる処理の１回当たりの実行時間を短縮化することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施の形態について説明する。本実施の形態においては、確保された複数の記憶領域の中の第１記憶領域に空き領域がなくなった場合に、次の第２記憶領域にデータを記憶し、また第１記憶領域に記憶されているが第２記憶領域に記憶されていないコピー対象データが複数存在する場合に、この複数のコピー対象データを複数回に分けて第２記憶領域に記憶するメモリ制御装置（コントローラ）について説明する。
【００１１】
本実施の形態においては、管理データが更新された場合の動作を例に説明するが、他のデータに関する制御にも同様の手法を用いることができる。
【００１２】
図１は、本実施の形態に係るメモリ制御装置の構成の一例を示すブロック図である。
【００１３】
記憶装置１は、メモリ制御装置２とメモリ３とを具備する。記憶装置１としては、例えばメモリカードなどを用いることができるがこれに限定されるものではない。また、メモリ３の一例としては、ＮＡＮＤフラッシュTMメモリなどの半導体メモリが用いられるがこれに限定されるものではない。
【００１４】
ホスト４は、記憶装置１からデータを読み出し、また記憶装置１へデータを書き込む。
【００１５】
メモリ制御装置２は、例えばＲＡＭ（Random access Memory）などのような記憶部５を備える。記憶部５は、論理アドレスと物理アドレスとの間でデータ変換を行うためのデータなどを含む管理データ６を記憶する。
【００１６】
メモリ制御装置２は、データ読み出し動作において、ホスト４から読み出しコマンド及び論理アドレスを受信し、記憶部５の管理データ６を用いて論理アドレスを物理アドレスに変換し、メモリ３から物理アドレスの示す位置のデータを読み出し、読み出したデータをホスト４に返す。
【００１７】
メモリ制御装置２は、データ書き込み動作において、ホスト４から書き込みコマンドとデータと論理アドレスを受信し、記憶部５の管理データ６を用いて論理アドレスを物理アドレスに変換し、メモリ３における物理アドレスの示す位置にデータを書き込む。
【００１８】
メモリ制御装置２は、管理データ６を複数のページsysdat0〜sysdat3に分けて扱う。複数のページsysdat0〜sysdat3の状態は、メモリ３に確保されている管理領域に記憶される。さらに、メモリ制御装置２の記憶部５において、管理データ６のあるページの内容が更新された場合、この更新されたページの内容は、メモリ３の管理領域における空き領域に記憶される。このように、メモリ制御装置２において更新されたページをメモリ３に記憶する動作を書き戻しという。
【００１９】
メモリ制御装置２は、確保部７、領域記憶部８、コピー部９を具備する。
【００２０】
確保部７は、メモリ３において複数の管理領域Ｓ0，Ｓ1を確保する。管理領域Ｓ0（第１管理領域）の後に、管理領域Ｓ1（第２管理領域）が用いられる。
【００２１】
さらに、確保部７は、管理領域Ｓ0に記憶されているコピー対象データの全てが管理領域Ｓ1に記憶された場合に、管理領域Ｓ0を解放し（不使用とし）、新たに管理領域Ｓ2を確保する。その後も、確保部７は、管理領域の解放と新たな確保とを繰り返す。
【００２２】
本実施の形態において、コピー対象データは、空き領域のなくなった管理領域には記憶されているが書き戻しが行われる管理領域には記憶されていないページの最新状態であるとする。
【００２３】
空き領域記憶部８は、記憶部５において管理データ６においてページが更新された場合に、複数の管理領域Ｓ0，Ｓ1の中の書き戻し対象の管理領域Ｓ0の空き領域に更新されたページを書き戻し、この管理領域Ｓ0に空き領域がなくなった場合に、次の管理領域Ｓ1の空き領域に対して更新されたページを書き戻す。その後も、空き領域記憶部８は、ページが更新されるたびに、空き領域のある管理領域への書き戻しを繰り返す。
【００２４】
コピー部９は、書き込み対象であった管理領域Ｓ0の空き領域がなくなり、新たに書き戻し対象となった管理領域Ｓ1に記憶されたページの数が１以上のしきい値を超えた場合に、複数回に分けて、空き領域のなくなった管理領域Ｓ0に記憶されているが新たに書き戻し対象となった管理領域Ｓ1に記憶されていない最新状態のページ（コピー対象データ）のいずれかを、書き戻し対象の管理領域Ｓ1の空き領域に記憶（コピー）する。その後、コピー部９は、更新されたページが書き戻し対象の管理領域Ｓ1に書き戻されるたびに、コピー対象データの少なくとも一つを、書き戻し対象の管理領域Ｓ1に記憶する。コピー部９は、書き込み対象であった管理領域の空き領域がなくなるたびに、新たに書き戻し対象となった管理領域へ同様のコピー処理を繰り返す。
【００２５】
図２は、本実施の形態に係るメモリ制御装置２の制御の一例を示す図である。この図２では、確保部７によって確保される管理領域の数が２であり、管理データ６を構成するページの数は４であり、一つの管理領域に記憶可能なページの数は１２である場合を例示している。しかしながら、確保部７によって確保される管理領域の数は３以上でもよく、管理データ６を構成するページの数は２以上であればよく、一つの管理領域に記憶可能なページの数は管理データ６を構成するページの数以上であればよい。
【００２６】
メモリ制御装置２の確保部７は、管理領域Ｓ0を確保し、メモリ制御装置２の空き領域記憶部８は、メモリ制御装置２の記憶部５に記憶されている管理データ６を構成するページsysdat0〜sysdat3を、管理領域Ｓ0に記憶する。
【００２７】
空き領域記憶部８は、メモリ制御装置２において記憶部５の管理データ６が更新された場合に、この更新されたページを、管理領域Ｓ0の空き領域に書き戻す。
【００２８】
確保部７は、管理領域Ｓ0の空き領域がなくなった場合、もしくはそれ以前に、次に用いられる管理領域Ｓ1を確保する。
【００２９】
書き戻しにより管理領域Ｓ0に空き領域がなくなった場合、空き領域記憶部８は、管理領域Ｓ1への書き戻しを行う。
【００３０】
コピー部９は、書き込み対象であった管理領域Ｓ0の空き領域がなくなり、新たに書き戻し対象となった管理領域Ｓ1に書き戻されたページの数がしきい値（この例では４）を超え、全てのページが管理領域Ｓ1に記憶されていないことを条件として、管理領域Ｓ1にページの書き戻しがなされるたびに、管理領域Ｓ1に記憶されていないページのうちの少なくとも一つの最新状態を、管理領域Ｓ1にコピーする。なお、この図２では、説明を簡略化するために、管理領域Ｓ1に記憶されていないページ（管理領域Ｓ0から管理領域Ｓ1へのコピー対象となるページ）が１つの場合を例として示しているが、管理領域Ｓ1に記憶されていないページが２以上ある場合、管理領域Ｓ0から管理領域Ｓ1へのコピー対象ページのコピーは複数回に分けて行われる。
【００３１】
書き戻し対象の管理領域Ｓ1に全てのページが集まった場合、確保部７は、空き領域のなくなった管理領域Ｓ0を解放（あるいは不使用と）し、新たに管理領域Ｓ2を確保する。なお、この新たに管理領域S2を確保するタイミングは、管理領域Ｓ1の空き領域がなくなった場合、もしくはそれ以前であればよい。
【００３２】
管理領域Ｓ1の空き領域がなくなった場合、この空き領域のなくなった管理領域Ｓ1と新たに書き戻し対象となった管理領域Ｓ2とに対して、同様の処理が繰り返される。
【００３３】
図３は、本実施の形態において、メモリ制御装置２の記憶部５内の管理データ６が更新された以後におけるメモリ制御装置２の処理の一例を示すフローチャートである。
【００３４】
ステップＳｔ１において、メモリ制御装置２は、記憶部５の管理データ６を更新する。
【００３５】
ステップＳｔ２において、メモリ制御装置２の空き領域記憶部８は、書き戻し対象の管理領域の空き領域に、管理データ６の更新されたページの書き戻しを行う。
【００３６】
ステップＳｔ３において、メモリ制御装置２のコピー部９は、書き戻し対象の管理領域に記憶されているページの数がしきい値を超えているか判断する。書き戻し対象の管理領域に記憶されているページの数がしきい値を超えていない場合、処理は終了する。
【００３７】
書き戻し対象の管理領域に記憶されているページの数がしきい値を超えている場合、ステップＳｔ４において、メモリ制御装置２のコピー部９は、現時点での書き戻し対象の管理領域に記憶されていないが前に書き戻し対象であった管理領域に記憶されているページ（コピー対象データ）があるか、すなわちコピー待ちのページがあるか判断する。
【００３８】
コピー待ちのページがない（すなわち、現時点での書き戻し対象の管理領域に全てのページが集まっている）場合、処理はステップＳｔ６に移る
コピー待ちのページがある場合、ステップＳｔ５において、メモリ制御装置２のコピー部９は、現時点での書き戻し対象の管理領域に対してコピーが複数回で行われるように、任意の数のコピー対象データを、書き戻し対象の管理領域にコピーする。
【００３９】
ステップＳｔ６において、メモリ制御装置２の確保部７は、現時点での書き戻し対象の管理領域に対する処理において、前に書き戻し対象であった管理領域の解放及び新たな管理領域の確保を実行済みか否か判断する。現時点での書き戻し対象の管理領域に対する処理において、前に書き戻し対象であった管理領域の解放及び新たな管理領域の確保を実行済みの場合、処理は終了する。
【００４０】
現時点での書き戻し対象の管理領域に対する処理において、前に書き戻し対象であった管理領域の解放及び新たな管理領域の確保を実行済みでない場合、ステップＳｔ７において、メモリ制御装置２の確保部７は、前に書き戻し対象であった管理領域を解放し、新たな管理領域を確保し、処理は終了する。
【００４１】
以下に、本実施の形態に係るメモリ制御装置２によって得られる効果を、従来のコントローラと比較して説明する。
【００４２】
図４は、参考として説明する従来のコントローラによる書き戻し処理の一例を示す図である。この図４では、上記図２の場合と同様に、確保される管理領域の数が２であり、管理データ６を構成するページの数は４であり、一つの管理領域に記憶可能なページの数は１２である場合を例示している。
【００４３】
従来のコントローラは、更新されたページを、確保されている管理領域内の空き領域に追記する。
【００４４】
確保されている管理領域が使い切られた状態になると、コントローラは、新たな管理領域を確保し、新たな管理領域に管理データを構成する全てのページの最新状態をコピーし、コピー完了後の古い管理ブロックを使用しないこととする。この従来のコントローラによる制御では、使い切られた管理領域から新たに確保された管理領域にコピーしなければならないページ数が多くなると、busy時間も長くなる。
【００４５】
このような従来のコントローラによる制御に対して、本実施の形態に係るメモリ制御装置２による制御においては、上記図２で説明したように、空き領域のなくなった管理領域から現時点で書き戻し対象となっている管理領域に対してコピーが必要なページが複数ある場合に、このページの最新状態が複数回に分けてコピーされる。
【００４６】
図５は、従来のコントローラによる更新処理のbusy時間と本実施の形態に係るメモリ制御装置２による更新処理のbusy時間との比較例を示すタイミングチャートである。
【００４７】
ホストから管理データの更新コマンドを受信すると、従来のコントローラによる制御では、メモリが、書き戻し処理のためにready状態からbusy状態となる。ここで、新たな管理領域へのコピーが必要な場合、従来のコントローラによる制御では、メモリのbusy状態の間隔が長くなる。
【００４８】
一方、本実施の形態に係るメモリ制御装置２による制御では、コピーの必要なページが複数ある場合に、コピーが複数回に分けて実行されるため、長いBusy時間をなくすことができる。
【００４９】
さらに、本実施の形態に係るメモリ制御装置２による制御では、新しい管理領域に対する書き戻しがしきい値を超えたときにコピーが開始されるため、コピーが必要なページ数を削減することができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施の形態に係るメモリ制御装置の構成の一例を示すブロック図。
【図２】本実施の形態に係るメモリ制御装置の制御の一例を示す図。
【図３】本実施の形態において、メモリ制御装置の記憶部内の管理データが更新された以後におけるメモリ制御装置の処理の一例を示すフローチャート。
【図４】従来のコントローラによる書き戻し処理の一例を示す図。
【図５】従来のコントローラによる更新処理のbusy時間と本実施の形態に係るメモリ制御装置による更新処理のbusy時間との比較例を示すタイミングチャート。
【符号の説明】
【００５１】
１…記憶装置、２…メモリ制御装置、３…メモリ、４…ホスト、５…記憶部、６…管理データ、７…確保部、８…空き領域記憶部、９…コピー部、sysdat0〜sysdat3…ページ
【図１】
2008276330.tif 000003
【図２】
2008276330.tif 000004
【図３】
2008276330.tif 000005
【図４】
2008276330.tif 000006
【図５】
2008276330.tif 000007