(57)【要約】  フラッシュメモリにコンテンツを格納する際の応答性の低下を軽減すること  ストレージ管理装置は、それぞれが予約領域と通常領域とを含む複数のブロックを含むフラッシュメモリを含み、複数のブロックの通常領域のうち書込み可能領域が新たなデータセットより大きく、かつ、前記複数のブロックに含まれる不要なデータセットを削除した場合の前記複数のブロックの前記通常領域の書込み可能領域より小さい場合に、前記新たなデータセットを取得し、前記不要なデータセットが含まれるブロックの通常領域から他のブロックの通常領域へ不要でないデータセットをコピーし、当該ブロックの通常領域に含まれるすべてのデータセットを削除し、前記すべてのデータセットが削除されたブロックの通常領域に前記新たなデータセットを格納する。
2021015175.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが通常領域と予約領域とを含む複数のブロックを含み１または複数のデータセットが前記通常領域に格納されるフラッシュメモリと、
複数のブロックの通常領域のうち書込み可能領域が新たなデータセットより大きく、かつ、前記新たなデータセットのサイズが前記複数のブロックに含まれる不要なデータセットを削除した場合の前記複数のブロックの前記通常領域の書込み可能領域より小さい場合に、前記新たなデータセットを取得する手段と、
前記新たなデータセットを取得する場合に、前記不要なデータセットが含まれるブロックの通常領域から他のブロックの通常領域へ不要でないデータセットをコピーし、当該ブロックの通常領域に含まれるすべてのデータセットを削除するブロック解放手段と、
前記すべてのデータセットが削除されたブロックの通常領域に前記新たなデータセットを格納するデータセット書き込み手段と、
を含むことを特徴とするストレージ管理装置。
【請求項２】
請求項１に記載のストレージ管理装置において、
前記新たなデータセットのサイズが、前記複数のブロックの通常領域のサイズより大きい場合には、データセット書き込み手段は、前記複数のブロックのいずれかであってデータセットを格納しないブロックに含まれる予約領域を前記通常領域に追加し、当該ブロックの前記通常領域に前記新たなデータセットの少なくとも一部を格納する、
ストレージ管理装置。
【請求項３】
請求項１または２に記載のストレージ管理装置において、
ユーザの操作に基づいて、前記複数のブロックに含まれる予約領域を通常領域に変更する領域変更手段をさらに含む、
ストレージ管理装置。
【請求項４】
請求項１または２に記載のストレージ管理装置において、
前記複数のブロックに格納されるデータセットの量の推移に基づいて、前記複数のブロックに含まれる予約領域を通常領域に変更する領域変更手段をさらに含む、
ストレージ管理装置。
【請求項５】
フラッシュメモリに含まれる複数のブロックであって、それぞれが、予約領域と１または複数のデータセットが格納される通常領域とを含む複数のブロックの通常領域に含まれる書込み可能領域が新たなデータセットより大きく、かつ、前記新たなデータセットのサイズが前記複数のブロックに含まれる不要なデータセットを削除した場合の前記複数のブロックの前記通常領域の書込み可能領域より小さい場合に、前記新たなデータセットを取得するステップと、
前記新たなデータセットを取得する場合に、前記不要なデータセットが含まれるブロックの通常領域から他のブロックの通常領域へ不要でないデータセットをコピーし、当該ブロックの通常領域に含まれるすべてのデータセットを削除するステップと、
前記すべてのデータセットが削除されたブロックの通常領域に前記新たなデータセットを格納するステップと、
を含むことを特徴とするストレージ管理方法。
【請求項６】
フラッシュメモリに含まれる複数のブロックであって、それぞれが、予約領域と１または複数のデータセットが格納される通常領域とを含む複数のブロックの通常領域に含まれる書込み可能領域が新たなデータセットより大きく、かつ、前記新たなデータセットのサイズが前記複数のブロックに含まれる不要なデータセットを削除した場合の前記複数のブロックの前記通常領域の書込み可能領域より小さい場合に、前記新たなデータセットを取得する手段、
前記新たなデータセットを取得する場合に、前記不要なデータセットが含まれるブロックの通常領域から他のブロックの通常領域へ不要でないデータセットをコピーし、当該ブロックの通常領域に含まれるすべてのデータセットを削除するブロック解放手段、および、
前記すべてのデータセットが削除されたブロックの通常領域に前記新たなデータセットを格納するデータセット書き込み手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ管理装置、ストレージ管理方法およびプログラムに関する。
【背景技術】
【０００２】
ゲーム機などのコンピュータの記憶装置としてフラッシュメモリが用いられている。フラッシュメモリには、ダウンロードされたプログラムおよびコンテンツなどが格納されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
フラッシュメモリは、一定のサイズの複数のブロックを有し、各ブロックにデータが書き込まれる。フラッシュメモリの特性上、ブロック内のデータの一部だけを書き換えることは難しい。そのため、ブロック内の一部のデータのみが不要になった場合、必要なデータのみを他のブロックへコピーするガベージコレクションを実施し、その後、元のブロック全体を消去（解放）する。【０００４】
このガベージコレクションは多量のデータの転送を伴うため処理負荷が大きく、データのダウンロードなどの他の処理に支障が生じる場合があった。【０００５】
本願発明は上記課題を鑑みたものであって、その目的は、フラッシュメモリにコンテンツを格納する際の応答性の低下を軽減する技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明にかかるストレージ管理装置は、それぞれが通常領域と予約領域とを含む複数のブロックを含み１または複数のデータセットが前記通常領域に格納されるフラッシュメモリと、複数のブロックの通常領域のうち書込み可能領域が新たなデータセットより大きく、かつ、前記新たなデータセットのサイズが前記複数のブロックに含まれる不要なデータセットを削除した場合の前記複数のブロックの前記通常領域の書込み可能領域より小さい場合に、前記新たなデータセットを取得する手段と、前記新たなデータセットを取得する場合に、前記不要なデータセットが含まれるブロックの通常領域から他のブロックの通常領域へ不要でないデータセットをコピーし、当該ブロックの通常領域に含まれるすべてのデータセットを削除するブロック解放手段と、前記すべてのデータセットが削除されたブロックの通常領域に前記新たなデータセットを格納するデータセット書き込み手段と、を含む。【０００７】
また、本発明にかかるストレージ管理方法は、フラッシュメモリに含まれる複数のブロックであって、それぞれが、予約領域と１または複数のデータセットが格納される通常領域とを含む複数のブロックの通常領域に含まれる書込み可能領域が新たなデータセットより大きく、かつ、前記新たなデータセットのサイズが前記複数のブロックに含まれる不要なデータセットを削除した場合の前記複数のブロックの前記通常領域の書込み可能領域より小さい場合に、前記新たなデータセットを取得するステップと、前記新たなデータセットを取得する場合に、前記不要なデータセットが含まれるブロックの通常領域から他のブロックの通常領域へ不要でないデータセットをコピーし、当該ブロックの通常領域に含まれるすべてのデータセットを削除するステップと、前記すべてのデータセットが削除されたブロックの通常領域に前記新たなデータセットを格納するステップと、を含む。【０００８】
また、本発明にかかるプログラムは、フラッシュメモリに含まれる複数のブロックであって、それぞれが、予約領域と１または複数のデータセットが格納される通常領域とを含む複数のブロックの通常領域に含まれる書込み可能領域が新たなデータセットより大きく、かつ、前記新たなデータセットのサイズが前記複数のブロックに含まれる不要なデータセットを削除した場合の前記複数のブロックの前記通常領域の書込み可能領域より小さい場合に、前記新たなデータセットを取得する手段、前記新たなデータセットを取得する場合に、前記不要なデータセットが含まれるブロックの通常領域から他のブロックの通常領域へ不要でないデータセットをコピーし、当該ブロックの通常領域に含まれるすべてのデータセットを削除するブロック解放手段、および、前記すべてのデータセットが削除されたブロックの通常領域に前記新たなデータセットを格納するデータセット書き込み手段、
としてコンピュータを機能させる。【０００９】
本発明によれば、フラッシュメモリにコンテンツを格納する際の応答性の低下を軽減することができる。【００１０】
本発明の一形態では、前記新たなデータセットのサイズが、前記複数のブロックの通常領域のサイズより大きい場合には、データセット書き込み手段は、前記複数のブロックのいずれかであってデータセットを格納しないブロックに含まれる予約領域を前記通常領域に追加し、当該ブロックの前記通常領域に前記新たなデータセットの少なくとも一部を格納してもよい。【００１１】
本発明の一形態では、ストレージ管理装置は、ユーザの操作に基づいて、前記複数のブロックに含まれる予約領域を通常領域に変更する領域変更手段をさらに含んでよい。【００１２】
本発明の一形態では、ストレージ管理装置は、前記複数のブロックに格納されるデータセットの量の推移に基づいて、前記複数のブロックに含まれる予約領域を通常領域に変更する領域変更手段をさらに含んでよい。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態にかかる情報処理装置のハードウェア構成の一例を示す図である。
【図２】フラッシュストレージの記憶領域の構成を示す図である。
【図３】ブロック内に設けられる通常領域および予約領域を示す図である。
【図４】情報処理装置が実現する機能を示すブロック図である。
【図５】情報処理装置がアーカイブを外部から取得しフラッシュメモリに格納する処理の一例を示すフロー図である。
【図６】論理パーティションに格納されるアーカイブの一例を示す図である。
【図７】アーカイブの削除を説明する図である。
【図８】ガベージコレクションの手法を説明する図である。
【図９】ガベージコレクションの処理の一例を示すフロー図である。
【図１０】最低転送速度とガベージコレクションにおいて必要なコピー速度との関係を説明する図である。
【図１１】領域切替部の処理の一例を示すフロー図である。
【発明を実施するための形態】
【００１４】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
【００１５】
本実施形態では、フラッシュメモリにデータセットとしてアーカイブを格納する情報処理装置について説明する。アーカイブには、例えば、アプリケーションプログラムを有するものと、そのアプリケーションプログラムで用いられる画像音声コンテンツを有するものとがある。情報処理装置は、ネットワーク経由でアーカイブを受信し、受信されたアーカイブをフラッシュメモリに格納してもよい。あるいは情報処理装置は、ブルーレイ（登録商標）の光ディスクなどの情報記憶媒体に記憶されたアーカイブを読み出し、読みだされたアーカイブをフラッシュメモリに格納してもよい。
【００１６】
図１は、本発明の実施形態にかかる情報処理装置のハードウェア構成の一例を示す図である。情報処理装置は、例えばゲーム機である。情報処理装置は、プロセッサ１１、メモリ１２、通信部１３、入出力部１４、フラッシュストレージ１５を含む。
【００１７】
プロセッサ１１は、メモリ１２に格納されているプログラムに従って動作し、通信部１３や入出力部１４、フラッシュストレージ１５等を制御する。なお、上記プログラムは、コンピュータで外部読み取り可能な記憶媒体に格納されて提供されるものであってもよいし、インターネット等のネットワークを介して提供されるものであってもよい。
【００１８】
メモリ１２は、例えばＤＲＡＭのような揮発性メモリ素子によって構成されている。メモリ１２は、上記プログラムのうち実行されるものを格納する。また、メモリ１２は、プロセッサ１１や通信部１３等から入力される情報や演算結果を格納する。なお、情報処理装置は、メモリ１２のほかに、フラッシュストレージ１５を含む外部記憶装置を有し、外部記憶装置にプログラムや情報を格納する。なお、外部記憶装置として、光ディスク装置およびハードディスクの少なくとも一方をさらに含んでもよい。
【００１９】
通信部１３は有線ＬＡＮや無線ＬＡＮを構成する集積回路やコネクタ、アンテナなどにより構成されている。通信部１３は、ネットワークを介して他の装置と通信する機能を有する。通信部１３は、プロセッサ１１の制御に基づいて、他の装置から受信した情報をプロセッサ１１やメモリ１２に入力し、他の装置に情報を送信する。
【００２０】
入出力部１４は、ユーザの操作を検出するハードウェアからの入力を取得する回路と、画像の表示信号をディスプレイに出力する表示制御回路と、光ディスクドライブなどの外部記憶装置を制御する回路と、音声などを出力する回路とを含む。入出力部１４は、キーボードやコントローラ等の入力デバイスとから入力信号を取得し、その入力信号が変換された情報をプロセッサ１１やメモリ１２に入力する。
【００２１】
フラッシュストレージ１５は、フラッシュメモリ素子およびフラッシュメモリ素子のコントローラを含む。
【００２２】
図２は、フラッシュストレージ１５の記憶領域の構成を示す図である。フラッシュストレージ１５の記憶領域は、複数のブロックＢに分割されている。ブロックＢのそれぞれの記憶領域は、例えば数百ＭＢから数ＧＢである。オペレーティングシステムを実行するプロセッサ１１の制御により、フラッシュストレージ１５は各ブロックＢへデータセットをシーケンシャルに書き込む。また、各ブロックＢに記録されたデータセットを単に上書きすることは難しく、そのデータセットを含むブロックＢに格納されるすべてのデータを削除した後に新たにそのブロックＢに新たなデータセットを格納することが可能となる。なお、フラッシュストレージ１５に含まれるブロックＢのそれぞれは複数のページを含み、ハードウェア上ではフラッシュメモリ素子へのデータセットの書き込みはページ単位で行われる。そのため、オペレーティングシステム上で稼働するプログラムから見ると、データセットはページサイズに応じた１または複数の書込単位に分割され、その分割された１または複数の書込単位がシーケンシャルにブロックＢの記憶領域に書き込まれる。
【００２３】
本実施形態では、１または複数のブロックＢを論理パーティションＬ（図６参照）に割当て、情報処理装置は、論理パーティションＬごとにシーケンシャルにデータセットを書込み、論理パーティションＬを構成するブロックＢごとにデータを消去する。論理パーティションＬにデータセットを書き込むとは、その論理パーティションＬを構成するブロックＢのうちいずれか１つにデータセットを書き込むことを示す。
【００２４】
それぞれのブロックＢの記憶領域には、データセットを格納させない領域を有する。図３は、ブロックＢ内に設けられる通常領域Ｎおよび予約領域Ｒを概略的に示す図である。通常領域Ｎは、データセットを格納することが可能な領域であり、予約領域Ｒは、データセットの格納が禁止される領域である。ここで、初期状態における通常領域Ｎのサイズおよび予約領域Ｒのサイズは、予め決まっているものとする。予約領域Ｒに関わる処理や利点については後述する。
【００２５】
次に、情報処理装置が実現する機能および処理を説明する。図４は、情報処理装置が実現する機能を示すブロック図である。情報処理装置は機能的に、アーカイブ取得部５１、アーカイブ書込部５２、アーカイブ削除部５３、ブロック解放部５４、領域切替部５７を含む。これらの機能は、主に、プロセッサ１１がメモリ１２に記憶されるプログラムを実行し、通信部１３、入出力部１４、フラッシュストレージ１５を制御することにより実現される。
【００２６】
アーカイブ取得部５１は、ユーザによるアーカイブの取得指示を取得し、その取得指示により指示される新たなアーカイブをデータセットとして取得する。アーカイブは、予め定められた複数の種別のうちいずれか１つに属している。アーカイブの種別は、例えば、「パッケージ」、「修正パッケージ」、「追加コンテンツ」の３種類である。パッケージは、アプリケーションのプログラムと、そのプログラムにより出力される映像などのコンテンツのデータとを含む。修正パッケージは、パッケージをバージョンアップするためのアーカイブである。追加コンテンツ（ＡＣ）は、アプリケーションのプログラムで利用可能な追加のコンテンツのデータを含む。
【００２７】
新たなアーカイブの取得の際に、アーカイブ取得部５１は、配信サーバからネットワーク経由で指示されたアーカイブを受信してもよいし、光ディスクなどの外部記憶媒体に記録されかつ指示されたアーカイブを読み込んでもよい。アーカイブ取得部５１の処理の詳細については後述する。
【００２８】
アーカイブ書込部５２は、アーカイブ取得部５１により取得された新たなアーカイブを１または複数のブロックＢの通常領域Ｎに格納する。
【００２９】
アーカイブ削除部５３は、ユーザの削除指示に基づいて、フラッシュストレージ１５に格納されるアーカイブであって、ユーザにより削除の指示がされたアーカイブを不要なデータセットとして設定する。ここで、アーカイブ削除部５３は、ユーザによる削除の指示がされたアーカイブの削除フラグをフラッシュストレージ１５に格納させることにより、そのアーカイブを不要なデータセットとして設定する。
【００３０】
ブロック解放部５４は、いわゆるガベージコレクションにより、アーカイブの削除により不要とされた領域であってデータを書き込みできないフラッシュストレージ１５の領域を解放し、データが書き込まれていない領域である書込可能領域を確保する。ガベージコレクションにおいて、ブロック解放部５４は、不要なデータセットが含まれるブロックＢの通常領域Ｎから他のブロックＢの通常領域Ｎへ不要でないデータセットを転送（具体的にはコピー）し、コピー元のブロックＢの通常領域Ｎに含まれるすべてのデータセットを削除する。転送元のブロックＢは、論理的に削除されたアーカイブであってブロックＢ内の記憶領域を占有しているアーカイブ、つまり削除フラグが削除済であることを示すアーカイブを格納している。ガベージコレクションの詳細については後述する。
【００３１】
ここで、アーカイブ取得部５１は、複数のブロックＢの通常領域Ｎのうち書込み可能領域が新たなアーカイブより大きく、かつ、新たなアーカイブのサイズが複数のブロックＢに含まれる不要なアーカイブを削除した場合の複数のブロックＢの通常領域Ｎの書込み可能領域より小さい場合にも、新たなデータセットを取得する。この場合には、新たなアーカイブの取得を始める時点で空き領域のあるブロックＢのみにアーカイブのすべてを格納することはできない。そこで、ブロック解放部５４は、不要なデータセットを含むブロックＢの記憶領域を開放し、書込み可能領域を確保する。また、その開放と並行して、アーカイブ書込部５２は、取得された新たなアーカイブをブロックＢの通常領域Ｎに格納する。その際、アーカイブ書込部５２は、新たなアーカイブのうち少なくとも一部を、その開放されたブロックＢの通常領域Ｎに格納する。
【００３２】
領域切替部５７は、ユーザの操作、または、複数のブロックＢに格納されるデータセットの量の推移に基づいて、前記複数のブロックＢに含まれる予約領域Ｒを通常領域Ｎに変更する。
【００３３】
次に、アーカイブを取得しフラッシュストレージ１５に格納する処理についてより詳細に説明する。図５は、情報処理装置がアーカイブを外部から取得しフラッシュストレージ１５に格納する処理の一例を示すフロー図である。
【００３４】
はじめに、アーカイブ取得部５１は、ユーザから、例えば入出力部１４を介して、対象のアーカイブを取得させる取得指示を取得する（ステップＳ１０１）。取得指示は、例えばサーバに存在する複数のアーカイブのうち、情報処理装置が新たに取得しフラッシュストレージ１５に格納させる対象のアーカイブを指定する情報である。取得指示は、光ディスクなどの外部記憶媒体に格納される１または複数のアーカイブのうち、情報処理装置が新たに取得しフラッシュストレージ１５に格納させる対象のアーカイブを指定する情報であってもよい。また、取得指示は、複数のアーカイブを対象としてもよい。
【００３５】
取得指示が取得されると、アーカイブ取得部５１は、対象のアーカイブのサイズを取得する（ステップＳ１０２）。アーカイブのサイズは、フラッシュストレージ１５に格納される場合の専有領域の大きさを示す。また、アーカイブ取得部５１は、他のアーカイブの属性（アーカイブの種別など）を取得してもよい。
【００３６】
対象のアーカイブのサイズが取得されると、アーカイブ取得部５１は、フラッシュストレージ１５に、対象のアーカイブを格納できる空き領域が存在するか判定する（ステップＳ１０３）。空き領域が存在しない場合には（ステップＳ１０３のＮ）、エラーを出力し処理を終了する（ステップＳ１０４）。ここで空き領域は、フラッシュストレージ１５において、書込可能領域だけではなく、論理的に削除されているが物理的には削除されていない不要なアーカイブやファイルが専有する領域を含むものとする。
【００３７】
一方、対象のアーカイブを格納する空き領域が存在する場合には（ステップＳ１０３のＹ）、アーカイブ取得部５１は、フラッシュストレージ１５に、対象のアーカイブを格納できる書込可能領域が存在するか判定する（ステップＳ１０５）。書込可能領域が存在しない場合には（ステップＳ１０５のＮ）、ブロック解放部５４にガベージコレクションの処理を開始させ、ステップＳ１０７の処理へ遷移する（ステップＳ１０６）。書込可能領域が存在する場合には（ステップＳ１０５のＹ）、ステップＳ１０６の処理をスキップする。
【００３８】
ステップＳ１０７では、アーカイブ取得部５１は、対象のアーカイブの実体の取得を開始する（ステップＳ１０７）。ここで、アーカイブ取得部５１は、対象のアーカイブがサーバ上にある場合には通信部１３を介してアーカイブの実体を受信してもよいし、対象のアーカイブが外部記憶媒体にある場合には入出力部１４を介してアーカイブの実体を読み込んでよい。
【００３９】
アーカイブの実体の読み込みが開始されると、アーカイブ書込部５２は、対象のアーカイブのサイズが、通常領域Ｎのサイズ（正確には、１つのブロックＢに含まれる通常領域Ｎの全体サイズ）以上であるか否かを判定する（ステップＳ１０９）。対象のアーカイブのサイズが、通常領域Ｎのサイズ以上の場合には（ステップＳ１０９のＹ）、アーカイブ書込部５２は、対象のアーカイブの格納先として空きブロックＢを確保し、その確保されたブロックＢを独立した論理パーティションＬ（ＬＰＡＲ）に割り当てる（ステップＳ１１０）。またアーカイブ書込部５２は、対象のアーカイブの実体のうち少なくとも一部を、その独立した論理パーティションＬに格納する（ステップＳ１１１）。これにより、対象のアーカイブの少なくとも一部は、他のアーカイブが格納されないブロックＢに格納される。一方、対象のアーカイブのサイズが、通常領域Ｎのサイズより小さい場合には（ステップＳ１０９のＮ）、ステップＳ１１０，Ｓ１１１はスキップされる。
【００４０】
ステップＳ１１１において、アーカイブ書込部５２は、独立した論理パーティションＬに割当てられたブロックＢに含まれる予約領域Ｒの記憶領域を通常領域Ｎに追加し、記憶領域が追加された通常領域Ｎに対象のアーカイブの実体のうち少なくとも一部を格納してよい。これにより、予約領域Ｒに起因する記憶容量の減少を抑えることができる。
【００４１】
独立した論理パーティションＬにアーカイブの実体の一部が格納されると、アーカイブ書込部５２はアーカイブの実体のうち未格納の部分を、共通パーティションを構成するブロックＢの通常領域Ｎに格納する（ステップＳ１１２）。なお、アーカイブの実体のうち未格納の部分が存在しない場合は、アーカイブ書込部５２は、共通パーティションにはアーカイブの実体を格納しない。
【００４２】
これらの処理により、アーカイブ書込部５２は、対象のアーカイブのサイズがブロックＢのサイズを超える場合に以下の３つの処理を実行する。１つめの処理においてアーカイブ書込部５２は、対象のアーカイブを複数の部分に分割し、２つめの処理においてアーカイブ書込部５２は、その複数の部分のうち少なくとも一部を他のアーカイブが格納されない１または複数のブロックＢに格納し、３つめの処理においてアーカイブ書込部５２は、その複数の部分のうちその１または複数のブロックＢに格納されなかった部分を、他のアーカイブが格納される共通パーティションのブロックＢに格納する。他のアーカイブが格納されない１または複数のブロックＢに格納されるアーカイブのサイズは通常領域Ｎのサイズ以上である。また、共通パーティションのブロックＢに格納されるアーカイブのサイズは、ブロックＢのサイズより小さい。
【００４３】
共通パーティションは、１または複数のブロックＢが割り当てられた論理パーティションＬである。共通パーティションには、アプリケーションについて種別に関わらず複数のアーカイブのデータが格納される。共通パーティションを構成する各ブロックＢについても、複数のアーカイブのデータが格納される。なお、共通パーティションの書き込み可能な領域がなくなった場合には、アーカイブ書込部５２は共通パーティションに新たなブロックＢを割り当てて領域を拡張し、アーカイブを格納可能にする。
【００４４】
図６は、論理パーティションＬに格納されるアーカイブの一例を示す図である。図６は、順に、アーカイブapp.pkg、patch101.pkg、AC1.pkgが取得され、フラッシュストレージ１５に格納される場合の例である。論理パーティションＬ１，Ｌ２は、それぞれブロックＢ１，Ｂ２を有する。論理パーティションＬ３は共通パーティションであり、論理パーティションＬ３にはブロックＢ３，Ｂ４が割り当てられている。また、パッケージ（app.pkg）、および修正パッケージ（patch101.pkg）の一部は、それぞれ独立した論理パーティションＬ１，Ｌ２に格納される。また、論理パーティションＬ３には、アーカイブapp.pkg、patch101.pkgのうち、論理パーティションＬ１，Ｌ２に格納できなかった部分と、AC1.pkgとが格納される。
【００４５】
図６の例ではブロックＢ１〜Ｂ４は予約領域Ｒを有し、アーカイブは通常領域Ｎに格納されている。複数のブロックＢ３，Ｂ４が割当てられている論理パーティションＬ３においては、アーカイブAC1.pkgの一部を格納し、ブロックＢ３の通常領域Ｎの空き領域がなくなると、アーカイブAC1.pkgの残りはブロックＢ４の通常領域Ｎに格納される。
【００４６】
次に、アーカイブ削除部５３によるアーカイブの削除について説明する。アーカイブ削除部５３は、ユーザから、例えば入出力部１４を介して、フラッシュストレージ１５に格納されるいずれかのアーカイブを削除する指示（削除指示）を取得し、指示されたアーカイブについて、そのアーカイブを格納するブロックＢ内に削除フラグを立て、そのアーカイブを使用不可にする。アーカイブの実体をフラッシュストレージ１５から消去しないのは、ブロックＢ単位での消去が必要であり、そのアーカイブの実体のみを消去できないからである。なお、指示されたアーカイブを格納するブロックＢに他のアーカイブであって削除されていないアーカイブが存在しない場合には、アーカイブ削除部５３は、そのブロックＢを消去し空きブロックＢにする。
【００４７】
図７は、アーカイブの削除を説明する図である。図７の例では、図６に示される修正パッケージpatch101.pkgが削除される場合の例である。この場合、修正パッケージpatch101.pkgの実体のみを格納する論理パーティションＬ２およびその論理パーティションＬ２を構成するブロックＢ２が消去され、さらに、論理パーティションＬ３に格納される修正パッケージpatch101.pkgの実体は使用不可になる。
【００４８】
次に、ブロック解放部５４によるガベージコレクションについて説明する。図８は、ガベージコレクションの手法を説明する図である。図８の例では、元の論理パーティションＬｐは２つのブロックＢａ，Ｂｂで構成される。ガベージコレクションの後の論理パーティションＬｎは１つのブロックＢｃで構成され、論理パーティションＬｐに格納され削除されていないアーカイブを格納する。本実施形態においては、ガベージコレクションは、ブロック解放部５４が、複数のブロックＢ（図８ではＢａ，Ｂｂ）に格納されるアーカイブを、より少ない数のブロックＢの通常領域Ｎ（図８ではＢｃ）に格納するようコピーし、コピー元のブロックＢ（図８ではＢａ，Ｂｂ）を解放する処理である。解放されたブロックＢを他の論理パーティションＬに割当て可能となり、使用不可の領域が減少し実際の書込み可能領域を増加させることができる。
【００４９】
図９は、ガベージコレクションの処理の一例を示すフロー図である。はじめに、ブロック解放部５４は、使用不可のアーカイブを有する論理パーティションＬを検出する（ステップＳ３０１）。
【００５０】
ブロック解放部５４は、検出された論理パーティションＬのブロックＢを、空き領域が多いものから順に並べ（ステップＳ３０２）、はじめのブロックＢを選択する（ステップＳ３０３）。ブロック解放部５４は選択された論理パーティションＬ内のアーカイブを新たな論理パーティションＬのブロックＢにコピーし（ステップＳ３０４）、コピー元のブロックＢを論理パーティションＬから切り離して解放する（ステップＳ３０５）。そして、書込可能領域の総計が、取得指示で指示されたアーカイブのサイズより大きく、かつアーカイブの取得を開始している場合には（ステップＳ３０６のＹ）、処理を終了する。一方、そうでない場合には（ステップＳ３０６のＮ）、次のブロックＢを選択し（ステップＳ３０７）、ステップＳ３０４以降の処理を繰り返す。
【００５１】
ここで、ガベージコレクションを行わないと、アーカイブ取得部５１が取得するアーカイブ（データセット）を格納する書込可能領域が存在しないケースについて検討する。このケースでは、ブロック解放部５４によるブロックＢを解放する処理と、アーカイブ書込部５２により解放されたブロックＢにアーカイブ（データセット）を格納する処理とが並行して行われる。フラッシュストレージ１５におけるデータの転送速度は、フラッシュストレージ１５により決まっている。これらの処理が並行して行われる際の書き込みの最低転送速度Ｒｔは、フラッシュストレージ１５のガベージコレクションおけるコピー速度Ｒｃだけでは定まらない。コピー速度Ｒｃと書き込みの最低転送速度Ｒｔとの関係を以下の式に示す。
【００５２】
【数１】
2021015175.tif 000003
【００５３】
ここで、Ｓｂは１つのブロックＢにおける通常領域Ｎのサイズであり、Ｓｄは削除されたデータセットのサイズであり、最悪のケースを想定する場合には、Ｓｄにはデータセットを格納する最小単位であるページサイズ（たとえば４．５ＭｉＢ）が設定される。
【００５４】
図１０は、最低転送速度Ｒｔとガベージコレクションにおいて必要なコピー速度Ｒｃとの関係を説明する図であり、上記数式に基づいて算出される値の一例である。最低転送速度Ｒｔを２５ＭｉＢ（ブルーレイの転送速度に相当）とすると、ブロックＢのサイズに対する予約領域Ｒのサイズの割合（予備率）が１０％だとガベージコレクションにおけるコピー速度Ｒｃとして２５０ＭｉＢ／Ｓｅｃが要求されるが、予備率が２０％だとコピー速度Ｒｃは１２５ＭｉＢ／Ｓｅｃで良くなる。つまり、予約領域Ｒの割合を大きくすることで低いコピー速度Ｒｃでも最低転送速度Ｒｔを確保することが容易にできる。
【００５５】
これまでの説明からわかるように、予約領域Ｒを設けることにより、ガベージコレクションとデータセットの取得とが平行して行われる状況においても、データセットを取得する際のデータの最低転送速度Ｒｔを保証することが可能になる。
【００５６】
一方、予約領域Ｒにはデータが格納されないため、ユーザからみて、フラッシュストレージ１５の全体容量が予約領域Ｒの分だけ減少することになる。新たなデータセットを取得する際の所要時間を気にしないユーザに対しては予約領域Ｒを設けないほうが望ましいことも考えられる。以下では、この問題に対応するための領域切替部５７の処理について説明する。
【００５７】
図１１は、領域切替部５７の処理の一例を示すフロー図である。図１１に示される処理は、一定の周期で（例えば週ごとに）行われてよい。領域切替部５７の処理のため、情報処理装置は空き領域の量（空き容量）の推移をモニタリングし、その空き容量の履歴をメモリ１２に格納しているとする。
【００５８】
はじめに、領域切替部５７は、一定の期間（例えば１週間から１か月）における、空き容量の履歴を取得する（ステップＳ４０１）。次に、領域切替部５７は、取得された履歴に基づいて、空き領域が容量閾値より小さい期間の長さを求める（ステップＳ４０２）。また、領域切替部５７は、アーカイブの変動を示す指標を取得する（ステップＳ４０３）。アーカイブの変動を示す指標は、アーカイブ取得部５１がアーカイブを取得する頻度であってよいし、アーカイブが削除される頻度であってもよい。
【００５９】
期間の長さおよび指標が取得されると、領域切替部５７は、期間の長さが期間閾値を超え、かつ、取得された指標が、変動が少ないことを示すか判定する（ステップＳ４０４）。取得された指標が、変動が少ないことを示す、とは、例えば、アーカイブが取得されるまたは削除される頻度が判定閾値より小さいことであってよい。
【００６０】
期間の長さが期間閾値を超え、かつ、取得された指標が、変動が少ないことを示す場合には（ステップＳ４０４）、ユーザがアーカイブの取得で困難を感じる回数が少ない蓋然性が高いため、領域切替部５７は、予約領域Ｒの削減をするか否かのメッセージをディスプレイなどの出力デバイスに出力させる（ステップＳ４０５）。そして、領域切替部５７はそのメッセージに対するユーザの選択操作を取得し、その選択操作により予約領域Ｒの削減が選択された場合には（ステップＳ４０６のＹ）、複数のブロックＢのそれぞれの予約領域Ｒを削減する（ステップＳ４０７）。領域切替部５７は予約領域Ｒが削減された後にガベージコレクションを実行してもよい。
【００６１】
なお、ステップＳ４０１からステップＳ４０５の処理をせず、単にユーザが設定画面において予約領域Ｒの削減を指示する操作がされた場合に、ステップＳ４０７の処理が行われてもよい。また領域切替部５７はステップＳ４０５，Ｓ４０６の処理をせず自動的に予約領域Ｒを最適化してもよい。また、領域切替部５７は、情報処理装置の通信速度を測定し、測定された通信速度が閾値以下の場合には予約領域Ｒを削減してもよい。
【００６２】
領域切替部５７の処理により、ユーザの状況に応じてデータセットを取得する際の速度の確保と、容量の確保とを最適化することができる。
【図１】
2021015175.tif 000004
【図２】
2021015175.tif 000005
【図３】
2021015175.tif 000006
【図４】
2021015175.tif 000007
【図５】
2021015175.tif 000008
【図６】
2021015175.tif 000009
【図７】
2021015175.tif 000010
【図８】
2021015175.tif 000011
【図９】
2021015175.tif 000012
【図１０】
2021015175.tif 000013
【図１１】
2021015175.tif 000014
【国際調査報告】
2021015175.tif 000015
2021015175.tif 000016
2021015175.tif 000017
2021015175.tif 000018