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