(57)【要約】【課題】書き込み単位と消去単位が異なる記憶手段を用いた場合に、情報単位での記憶手段からの消去が可能な記憶制御装置を提供する。【解決手段】記憶部１１は、書き込み単位と消去単位が異なる記憶装置である。記憶制御部１２は、情報の書き込みの際には、記憶部１１に対して、消去単位の整数倍の大きさで情報を書き込む制御を行う。また、情報が不要となり削除が依頼された場合には、不要となった情報が使用していた領域について、当該領域が不要となった旨を記憶部１１に対して通知する。そして、通知した領域が実際に消去されたことを確認した後に、当該領域を解放する。【選択図】図１
2014112319.tif 000002
【特許請求の範囲】
【請求項１】
書き込み単位と消去単位が異なる記憶手段に対して、消去単位の整数倍の大きさで情報を書き込む制御を行う制御手段を有することを特徴とする記憶制御装置。
【請求項２】
前記制御手段は、情報が不要になった場合に、前記情報が使用していた領域が不要になった旨を前記記憶手段に対して通知し、通知した領域が消去されたのを確認した後に当該領域を解放することを特徴とする請求項１に記載の記憶制御装置。
【請求項３】
前記制御手段は、情報の部分的な削除を行う場合に、残す部分を前記情報が存在する消去単位とは別の消去単位に複写した後、前記情報が存在する消去単位の消去を行うことを特徴とする請求項１または請求項２に記載の記憶制御装置。
【請求項４】
コンピュータに、請求項１から請求項３のいずれか１項に記載の記憶制御装置の機能を実行させるものであることを特徴とする記憶制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置及び記憶制御プログラムに関するものである。
【背景技術】
【０００２】
近年、記憶装置の一つとしてＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｅｖｉｃｅ）やＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリなどのフラッシュメモリを用いた記憶装置が使われている。例えばＳＳＤは、ＮＡＮＤ型のフラッシュメモリを用いており、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）に比べて耐振動性、消費電力等で優れ、ＨＤＤからの置き換えが行われている。
【０００３】
しかし、フラッシュメモリを用いた記憶装置では、情報の上書きは行われず、新たな情報を書き込む際には、すでに書き込まれている情報を消去してから書き込みを行うことになる。また、情報の消去は情報の書き込み単位に比べて大きな、書き込み単位の数倍の消去単位ごとに行われる。そのため、１つの消去単位に消去する情報と消去しない情報が書き込まれている場合、その消去単位の消去は行われない。
【０００４】
また、このような記憶装置の機能として、ウェアレベリングと呼ばれる機能がある。フラッシュメモリには書き込み回数に上限があり、ある領域ばかり書き換えを行ってゆくと、その領域で書き込み回数が上限に達した時点で記憶装置としての寿命となってしまう。ウェアレベリングでは、情報を書き込む領域を順に変更してゆき、あるいは書き込み回数が他の領域より多い領域へ、書き込み回数が他の領域より少ない領域に書き込まれている情報を移動し、書き込み回数が他の領域より少ない領域の書き換えを促すなどの処理を行い、記憶装置内の各領域における書き込み回数を均等化している。
【０００５】
例えば、ある領域に記憶されていた情報を消去する際に、ＨＤＤでは当該領域に別の情報を上書きすれば、それまで記憶されていた情報は消去される。しかし、フラッシュメモリを用いた記憶装置では、ある情報が書き込まれている領域に別の情報を上書きして消去しようとしても、上述のウェアレベリングの機能によって別の情報が書き込まれる領域は不定であり、書き込んだ別の情報が消去しようとした情報の領域に書き込まれる保障はない。例えば情報の漏洩を防止する観点から情報の消去を行う場合、消去される保障がないことは問題となる。
【０００６】
特許文献１では、ＮＡＮＤ型フラッシュメモリの記憶領域をパーティションに分け、パーティションを単位として情報の消去を行っている。パーティション内には複数の情報が格納されるが、それぞれの情報を単位とした消去には対応しておらず、一括して消去することになる。従って、電源の投入または切断の際などに消去を行うことになり、それまでは情報が残ってしまう。
【０００７】
上述したが、フラッシュメモリを用いた記憶装置では、新たな情報を書き込む際には、消去済みの領域についてはそのまま書き込みを行うが、不要となった情報が書き込まれた状態の領域については、消去を行ってから書き込みを行う。消去済みの領域が減少すると、書き込みの際に消去の処理が行われて書き込み速度が低下することが知られている。これに対し、ＡＴＡ８−ＡＣＳ２にて定義されたＤＡＴＡ  ＳＥＴ  ＭＡＮＡＧＥＭＥＮＴコマンドにて、不要となった領域を記憶装置に通知する機能がある。以下、この不要となった領域を通知するコマンドをＴｒｉｍコマンドと呼ぶ。このＴｒｉｍコマンドを受けた記憶装置では、通知された不要な領域について事前に消去しておき、書き込み速度の低下を防いでいる。
【０００８】
なお、上述のように情報の消去は消去単位ごとに行われることから、Ｔｒｉｍコマンドを用いて不要な領域を通知しても、消去単位内に消去が通知されない情報が残っていると、当該消去単位では消去が行われない場合がある。また、消去単位内の領域についてＴｒｉｍコマンドにより不要である旨が通知されても、通知された時点で消去の処理を行うとは限らず、例えばアイドル状態となってから行うなど、記憶装置の都合により消去の処理が行われることになる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−１７６３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、書き込み単位と消去単位が異なる記憶手段を用いた場合に、情報単位での記憶手段からの消去が可能な記憶制御装置及び記憶制御プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００１１】
本願請求項１に記載の発明は、書き込み単位と消去単位が異なる記憶手段に対して、消去単位の整数倍の大きさで情報を書き込む制御を行う制御手段を有することを特徴とする記憶制御装置である。
【００１２】
本願請求項２に記載の発明は、本願請求項１に記載の発明における前記制御手段が、情報が不要になった場合に、前記情報が使用していた領域が不要になった旨を前記記憶手段に対して通知し、通知した領域が消去されたのを確認した後に当該領域を解放することを特徴とする記憶制御装置である。
【００１３】
本願請求項３に記載の発明は、本願請求項１または請求項２に記載の発明における前記制御手段が、情報の部分的な削除を行う場合に、残す部分を前記情報が存在する消去単位とは別の消去単位に複写した後、前記情報が存在する消去単位の消去を行うことを特徴とする記憶制御装置。
【００１４】
本願請求項４に記載の発明は、コンピュータに、請求項１から請求項３のいずれか１項に記載の記憶制御装置の機能を実行させるものであることを特徴とする記憶制御プログラムである。
【発明の効果】
【００１５】
本願請求項１に記載の発明によれば、書き込み単位と消去単位が異なる記憶手段を用いた場合に、情報単位で記憶手段からの消去を行うことができるという効果がある。
【００１６】
本願請求項２に記載の発明によれば、確実な情報の消去を実現することができる。
【００１７】
本願請求項３に記載の発明によれば、部分的な情報の削除の際にも削除する部分の情報を確実に記憶手段から消去することができる。
【００１８】
本願請求項４に記載の発明によれば、本願請求項１から請求項３のいずれか１項に記載の発明の効果を得ることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の一形態を示す構成図である。
【図２】書き込み単位及び消去単位の一例の説明図である。
【図３】情報を書き込んだ状態の一例の説明図である。
【図４】情報の消去を行った状態の一例の説明図である。
【図５】情報を部分的に削除する場合の記憶状態の一例の説明図である。
【図６】本発明の実施の一形態で説明した記憶制御部２の機能をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体とコンピュータの一例の説明図である。
【発明を実施するための形態】
【００２０】
図１は、本発明の実施の一形態を示す構成図である。図中、１１は記憶部、１２は記憶制御部である。記憶部１１は、例えばＮＡＮＤ型などのフラッシュメモリを用いたＳＳＤやＳＤなど、書き込み単位と消去単位が異なる記憶装置である。図２は、書き込み単位及び消去単位の一例の説明図である。記憶部１１では、セクタと呼ばれる単位で論理的な情報の読み出し及び書き込みが行われる。情報の読み出しについてはセクタを単位として行われるが、情報の書き込みについては、複数のセクタを単位とした書き込み単位ごとに行われる。さらに、情報を消去する際には、複数の書き込み単位ごとに行われる。記憶部１１は、情報の読み出し及び書き込みのほか、各種コマンドの受付や、各種の装置情報の提供を行う。コマンドの１つとして、情報が不要になった旨の通知を受ける。この通知は、以下の説明では上述のＴｒｉｍコマンドとするが、これに限られるものではない。
【００２１】
記憶制御部１２は、記憶部１１からの情報の読み出しあるいは記憶部１１への情報の書き込みの依頼を受けて、記憶部１１を制御して、記憶部１１から情報を読み出して依頼元へ提供し、あるいは記憶部１１に対して依頼された情報を書き込ませる。情報の書き込みの際には、記憶部１１に対して、消去単位の整数倍の大きさで情報を書き込む制御を行う。受け取った情報のデータ長が不足している場合には、予め決められたデータを追加してデータ長を調整してもよい。また、情報が不要となり削除が依頼された場合には、不要となった情報が使用していた領域について、当該領域が不要となった旨を記憶部１１に対して通知する。例えばＴｒｉｍコマンドを記憶部１１に送ればよい。そして、通知した領域が実際に消去されたことを確認した後に、当該領域を解放する。情報の部分的な削除を行う場合には、残す部分を、情報が存在する消去単位とは別の消去単位に複写した後、情報が存在する消去単位の消去（不要となった旨の通知）を行う。複写の際にも、消去単位の整数倍の大きさで書き込む制御を行う。
【００２２】
記憶制御部１２による動作について、例を用いながらさらに説明する。以下の例では、２つのセクタを１つの書き込み単位とし、２つの書き込み単位を１つの消去単位として簡単化し、説明する。
【００２３】
図３は、情報を書き込んだ状態の一例の説明図である。上述したが、情報を記憶部１１に書き込む際には、記憶制御部１２は、消去単位の整数倍の大きさで情報を書き込む制御を行う。図３（Ａ）に示した情報ｂの例では、書き込み単位が２つ分の情報とし、１つ分の消去単位の大きさとして書き込んでいる。また、情報ａの例では、書き込み単位が４つ分の情報とし、２つ分の消去単位の大きさとして書き込んでいる。この情報ａでは、７セクタの情報であるが、情報の書き込みはセクタ単位ではなく、書き込み単位で行われることから、４つ分の書き込み単位の情報として書き込みを行う。もちろん、情報ａにデータを追加して８セクタの情報として書き込みを行ってもよい。
【００２４】
消去単位に合わせて情報を書き込む場合、記憶部１１においては消去単位に合わせて書き込み単位を選択して書き込みを行う。例えば、ある消去単位に未書き込みのセクタが１以上の書き込み単位で残っていても、その領域を使用せずに、消去単位に合わせた書き込みが行われる。従って、消去単位に合わせて書き込みを行うと、１つの消去単位に複数の情報が書き込まれることはなくなる。
【００２５】
図３（Ｂ）には、５セクタのデータ長の情報ｃと、１セクタのデータ長の情報ｄが書き込まれた状態を示している。この例では、書き込む情報のデータ長が消去単位に合ってない場合を示している。この場合、破線で示した領域に別の情報ｅや情報ｆが書き込まれる場合があり、１つの消去単位に２つの情報が書き込まれた状態となってしまう。例えば情報ｄと情報ｆが１つの消去単位に書き込まれた状態では、情報ｄを削除しても、情報ｄが存在していた消去単位には情報ｆが存在することから消去単位での消去がなされず、削除したはずの情報ｄが記憶部１１に残ってしまう。このような状態は漏洩を防止する観点から問題である。
【００２６】
図３（Ｂ）に示した例のように情報の書き込み単位が消去単位に合わない情報については、消去単位に合わせてデータを追加すればよい。この例では、５セクタのデータ長の情報ｃについては７セクタあるいは８セクタの情報として、１セクタのデータ長の情報ｄについては３セクタあるいは４セクタの情報として書き込みを行えば、図３（Ａ）に示すように書き込まれることになる。このように、１セクタまたは２セクタのデータ長の情報や、５セクタ、６セクタのデータ長の情報など、書き込み単位が消去単位に合わない情報については、消去単位に合わせてデータを追加し、例えば３セクタあるいは４セクタの情報や、７セクタあるいは８セクタの情報として書き込みを行うことになる。
【００２７】
図３に示した例では、１つあるいは２つ分の消去単位となる情報の書き込みについて示したが、もちろん、３つ分の消去単位以上となる情報であってもよく、消去単位に合わせた書き込みを行えばよい。
【００２８】
図４は、情報の消去を行った状態の一例の説明図である。ここでは、図３（Ａ）に示した状態から、情報ａを削除した場合について説明する。情報の消去は記憶部１１が行うが、書き込まれている情報が消去してよいものであるか否かは、記憶部１１では分からない。従って、消去してよい情報について、記憶制御部１２が記憶部１１に対して通知する。
【００２９】
情報ａを削除する場合、まず、情報ａが書き込まれていた領域が不要になった旨を記憶部１１に対して通知する。この通知は、情報ａが書き込まれていたセクタを指定してＴｒｉｍコマンドを記憶部１１に対して送ればよい。この例では、図４（Ａ）に示したように、情報ａが書き込まれている７つのセクタを指定したＴｒｉｍコマンドを記憶部１１に対して送る。
【００３０】
Ｔｒｉｍコマンドを受け取った記憶部１１では、指定されたセクタを消去してよい旨を認識し、１つの消去単位に書き込まれているすべての情報が消去してよい状態となった場合に、当該消去単位について消去を行う。図４（Ａ）に示した例では、４つのセクタに対してＴｒｉｍコマンドが送られた消去単位については、４つすべてのセクタに対して消去してよい旨が通知されたことで、消去対象として実際に消去される。また、３つのセクタに対して消去してよい旨が通知された消去単位では、もう１つのセクタには情報が書き込まれておらず、消去してはいけない情報は残っていないことから、消去対象として実際に消去される。２つの消去単位における消去の処理により、図４（Ｂ）に示すように情報ａは記憶部１１から消去される。１つの消去単位に複数の情報が書き込まれないことにより、ある情報が不要となれば他の情報の影響を受けずに消去対象となる。
【００３１】
記憶部１１に対してＴｒｉｍコマンドを送って情報を消去してよい旨を通知し、消去単位で消去してよい状態となっても、その直後に記憶部１１が当該消去単位を消去するとは限らない。例えばアイドル状態となってから消去するなど、記憶部１１が当該消去単位を実際に消去するまでに時間がかかる場合がある。情報の漏洩を防止する観点から、消去を確認するとよい。
【００３２】
消去の確認は、記憶部１１から種々の情報を得る際に用いられるＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ情報のうち、ワード６９、ビット１４（Ｄｅｔｅｒｍｉｎｉｓｔｉｃ  ｒｅａｄ  ａｆｔｅｒ  Ｔｒｉｍ  ｉｓ  ｓｕｐｐｏｒｔｅｄ）が１の場合には、Ｔｒｉｍコマンドを送ったセクタから読み出しを行う機能が備わっていることを示す。この機能を用いてＴｒｉｍコマンドを送ったセクタからデータを読み出し、消去されたことを確認すればよい。
【００３３】
消去されるまでＴｒｉｍコマンドを送ったセクタからの読み出しを繰り返して行い、消去が確認されたら、情報ａの削除が完了したものとする。これに伴い、情報ａの管理領域のエントリを削除する。逆に、情報ａの消去が確認されるまでは情報ａの管理領域を残しておいて、他の情報により再利用されないようにしておく。情報ａの削除が完了し、管理領域のエントリを削除すると、それまで情報ａが使用していた領域が他の情報の記憶に利用されるようになる。
【００３４】
このようにして、削除が指示された情報は、消去を記憶部１１に通知するだけでなく、記憶部１１から消去されたことを確認し、削除する情報が記憶部１１に残ることによって情報が漏洩しないようにしている。
【００３５】
図５は、情報を部分的に削除する場合の記憶状態の一例の説明図である。記憶部１１に書き込んである情報が複数の情報から構成されていて、そのうちのいくつかの情報について削除する場合がある。例えば、記憶部１１に書き込んである情報が複数枚の画像であり、そのうちの１枚あるいは複数枚の画像を削除するような場合である。このような場合の情報の削除の処理の一例について説明する。
【００３６】
ここでは、図５（Ａ）に示すように、２つの消去単位に７セクタ分の情報ａが書き込まれているものとする。この状態から、情報ａのうち先頭から５セクタ分の情報を削除する。この場合、２セクタ分の情報は記憶部１１に残すことになる。削除する５セクタ分の情報のうち、４セクタ分については１つの消去単位であって１消去単位の消去で対応すればよい。しかし、削除する情報のうち１セクタ分の情報については、記憶部１１に残す２セクタの情報とともに１つの消去単位に含まれており、このままでは消去されずに残ることになる。
【００３７】
削除する情報と残す情報とが１つの消去単位に併存する場合には、残す情報を別の消去単位に複写した上で、もとの情報をすべて削除する。残す情報を複写する際には、消去単位に合わせ、消去単位の整数倍の大きさで情報を書き込むとよい。図５（Ｂ）にはこの様子を示しており、記憶部１１に残す２セクタ分の情報を、消去単位に合わせて４セクタ分の情報として、別の消去単位の領域に複写している。もちろん、３セクタ分の情報とするなど、消去単位に合わせて書き込みを行えばよい。消去単位に合わせて書き込みを行っておけば、残された情報を削除する際にも他の情報に影響されずに削除の処理が行われることになる。
【００３８】
このようにして記憶部１１に残す情報を複写したら、情報ａをすべて削除する。削除の方法については上述した通りである。要約すれば、図５（Ｃ）に示すように情報ａが存在する７つのセクタを指定してＴｒｉｍコマンドを記憶部１１に送って不要である旨を通知し、これらのセクタからの読み出しを繰り返して消去されたことを確認した後、情報ａの管理情報を削除すればよい。このような処理により、図５（Ｄ）に示すように記憶部１１には情報ａのうちの残された情報が書き込まれた状態となる。また、情報ａの削除した部分は、記憶部１１に残らない。なお、複写した情報については、情報ａとは別の管理情報を作成しておけばよい。
【００３９】
図６は、本発明の実施の一形態で説明した記憶制御部１２の機能をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体とコンピュータの一例の説明図である。図中、２１はプログラム、２２はコンピュータ、３１は光磁気ディスク、３２は光ディスク、３３は磁気ディスク、３４はメモリ、４１はＣＰＵ、４２は内部メモリ、４３は読取部、４４はインタフェース、４５は通信部である。
【００４０】
上述の本発明の実施の一形態として説明した記憶制御部１２の機能を、コンピュータが実行するプログラム２１によって実現してもよい。その場合、そのプログラム２１およびそのプログラムが用いるデータなどは、コンピュータによって読み取られる記憶媒体に記憶させておけばよい。記憶媒体とは、コンピュータのハードウェア資源に備えられている読取部４３に対して、プログラムの記述内容に応じて、磁気、光、電気等のエネルギーの変化状態を引き起こして、それに対応する信号の形式で、読取部４３にプログラムの記述内容を伝達するものである。例えば、光磁気ディスク３１，光ディスク３２（ＣＤやＤＶＤなどを含む）、磁気ディスク３３，メモリ３４（ＩＣカード、メモリカード、フラッシュメモリなどを含む）等である。もちろんこれらの記憶媒体は、可搬型に限られるものではない。
【００４１】
これらの記憶媒体にプログラム２１を格納しておき、例えばコンピュータ２２の読取部４３あるいはインタフェース４４にこれらの記憶媒体を装着して、コンピュータからプログラム２１を読み出し、内部メモリ４２または記憶部１１に記憶し、ＣＰＵ４１によってプログラム２１を実行し、上述の本発明の実施の一形態として説明した記憶制御部１２の機能を実現すればよい。あるいは、通信路を介してプログラム２１をコンピュータ２２に転送し、コンピュータ２２では通信部４５でプログラム２１を受信して内部メモリ４２または記憶部１１に記憶し、ＣＰＵ４１によってプログラム２１を実行して実現してもよい。
【００４２】
なお、記憶部１１のほかに磁気ディスクなどが接続されていてもよく、この磁気ディスクにプログラム２１が記憶されてもよい。また、インタフェース４４を介して様々な装置と接続してもよく、記憶部１１をインタフェース４４に接続してもよい。なお、記憶制御部１２の機能がいくつかの分割されたプログラムにより構成されていてもよいし、あるいは、別の機能のプログラムと一体となっていてもよい。
【符号の説明】
【００４３】
１１…記憶部、１２…記憶制御部、２１…プログラム、２２…コンピュータ、３１…光磁気ディスク、３２…光ディスク、３３…磁気ディスク、３４…メモリ、４１…ＣＰＵ、４２…内部メモリ、４３…読取部、４４…インタフェース、４５…通信部。
【図１】
2014112319.tif 000003
【図２】
2014112319.tif 000004
【図３】
2014112319.tif 000005
【図４】
2014112319.tif 000006
【図５】
2014112319.tif 000007
【図６】
2014112319.tif 000008