(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024135961
(43)【公開日】2024-10-04
(54)【発明の名称】ストレージシステムおよび情報処理システム
(51)【国際特許分類】
G06F 16/907 20190101AFI20240927BHJP
G06F 16/13 20190101ALI20240927BHJP
【FI】
G06F16/907
G06F16/13 120
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023046891
(22)【出願日】2023-03-23
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】江丸 美智子
(72)【発明者】
【氏名】丸屋 宏二
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA02
5B175DA05
5B175FB03
(57)【要約】
【課題】重要なデータを長期的に保存できるストレージシステムおよび情報処理システムを実現する。
【解決手段】コントローラは、一つ以上の保存可能期間のうち、一つ以上のデータ部のうちの第1データ部に対応する第1保存可能期間が第1閾値以上である場合、一つ以上の第1ブロックとは異なる第2ブロックに前記第1データ部を書き込み、前記一つ以上の第1ブロックに格納されている前記第1データ部を無効化する。前記コントローラは、前記第1保存可能期間が前記第1閾値より短く、且つ前記第1データ部が前記一つ以上の第1ブロックに保存されている期間が前記第1保存期間に達した場合、前記一つ以上の第1ブロックに格納されている前記第1データ部を無効化する。
【選択図】
図9
【特許請求の範囲】
【請求項1】
ストレージシステムであって、
各々が消去動作の単位である複数のブロックを含む一つ以上の不揮発性メモリと、
前記複数のブロックのうちの一つ以上の第1ブロックに一つ以上のデータ部が格納されている場合、前記一つ以上のデータ部がそれぞれに対応する前記一つ以上の第1ブロックに保存されるべき一つ以上の保存可能期間を管理するコントローラと、を具備し、
前記コントローラは、
前記一つ以上の保存可能期間のうち、前記一つ以上のデータ部のうちの第1データ部に対応する第1保存可能期間が第1閾値以上である場合、前記複数のブロックのうちの前記一つ以上の第1ブロックとは異なる第2ブロックに前記第1データ部を書き込み、前記一つ以上の第1ブロックに格納されている前記第1データ部を無効化し、
前記第1保存可能期間が前記第1閾値より短く、且つ前記第1データ部が前記一つ以上の第1ブロックに保存されている期間が前記第1保存可能期間に達した場合、前記一つ以上の第1ブロックに格納されている前記第1データ部を無効化するように構成される、
ストレージシステム。
【請求項2】
前記コントローラは、
前記第1保存可能期間が前記第1閾値未満であり、且つ前記第1データ部が前記一つ以上の第1ブロックに保存されている期間が前記第1保存可能期間に達する前に、前記第1データ部が一つ以上の条件のうちの少なくとも一つの条件を満たした場合、前記第1保存可能期間に前記満たされた少なくとも一つの条件に対応する第1期間を加算し、
前記第1期間を加算した前記第1保存可能期間が前記第1閾値に達した場合、前記第2ブロックに前記第1データ部を書き込み、前記一つ以上の第1ブロックに格納されている前記第1データ部を無効化し、
前記第1期間を加算した前記第1保存可能期間が前記第1閾値に達することなく、前記第1データ部が前記一つ以上の第1ブロックに保存されている期間が前記第1保存可能期間に達した場合、前記一つ以上の第1ブロックに格納されている前記第1データ部を無効化するように構成される、
請求項1に記載のストレージシステム。
【請求項3】
前記コントローラは、
前記一つ以上の第1ブロックにおけるデータを新たに格納可能な空き記憶領域を示す指標が第2閾値以下になったことに応じて、
前記一つ以上の第1ブロックのうちの、データの書き込みが最も古い第3ブロックに格納され、無効化されていない全てのデータ部を、前記第2ブロックに書き込み、
前記第3ブロックに格納されている前記全てのデータ部を無効化するように構成される、
請求項1に記載のストレージシステム。
【請求項4】
前記ストレージシステムは、
複数のデータ部を一時的に格納する揮発性メモリをさらに具備し、
前記コントローラは、
前記揮発性メモリに格納されている複数のデータ部のうちの、最も古い第2データ部と、2番目に古い第3データ部とが類似するか否かを、前記第2データ部の特徴を示す第1情報と、前記第3データ部の特徴を示す第2情報とに基づいて判定し、
前記第2データ部と前記第3データ部とが類似しない場合、前記第2データ部を前記一つ以上の第1ブロックの何れか一つのブロックに格納して、前記揮発性メモリから前記第2データ部を削除し、
前記第2データ部と前記第3データ部とが類似する場合、前記揮発性メモリから前記第2データ部を削除するように構成される、
請求項1に記載のストレージシステム。
【請求項5】
前記一つ以上のデータ部のそれぞれは、画像データ、音声データ、およびメタデータの少なくとも一つを含む、
請求項1に記載のストレージシステム。
【請求項6】
設定情報を外部装置から受信する第2インタフェースをさらに具備し、
前記設定情報は、前記一つ以上の保存可能期間の初期値または前記第1閾値を含む、
請求項1に記載のストレージシステム。
【請求項7】
前記一つ以上の不揮発性メモリは、
前記一つ以上の第1ブロックを含む第1の不揮発性メモリと、前記一つ以上の第2ブロックを含む第2の不揮発性メモリと、を含む、
あるいは、前記一つ以上の第1ブロックと前記一つ以上の第2ブロックとを含む一つの不揮発性メモリである、
請求項1に記載のストレージシステム。
【請求項8】
前記コントローラは、
前記一つ以上の第1ブロックに含まれる複数のメモリセルにメモリセル当たりNビットのデータを書き込み、
前記一つ以上の第2ブロックに含まれる複数のメモリセルにメモリセル当たりMビットのデータを書き込むように構成され、
前記Nは1以上であり、
前記Mは前記Nよりも大きい、
請求項1に記載のストレージシステム。
【請求項9】
請求項1から請求項8の何れか1項に記載のストレージシステムと、
前記ストレージシステムに接続され、前記一つ以上のデータ部に関連するデータを取得するように構成されるデバイスと、を具備する
情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ストレージシステムおよび情報処理システムに関する。
【背景技術】
【0002】
近年、ユーザの記憶を補助するために、そのユーザに関するライフデータを記録する情報処理システムが開発されている。ライフデータは、例えば、ユーザが見聞きした情報やユーザの状態のような、ユーザの生活に関するデータを含む。情報処理システムは、例えば、ライフデータを取得するデバイスと、取得したライフデータを保存するストレージシステムとを備える。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許第8,014,573号明細書
【特許文献2】米国特許第10,133,917号明細書
【特許文献3】米国特許出願公開第2021/0174971号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
ストレージシステムの記憶容量は有限である。そのため、デバイスによって取得されたライフデータの全てがストレージシステムに格納され、格納されたデータの総量がストレージシステムの記憶容量に達した場合、ストレージシステムは、新たなライフデータを記録することができなくなる。したがって、デバイスによって取得されたライフデータの全てをストレージシステムに長期的に保存することは困難である。
【0005】
取得されたライフデータは、内容によって重要性が異なる可能性がある。そのため、重要なデータを長期的に保存できる新たな機能が必要とされる。
【0006】
本発明の一実施形態が解決しようとする課題は、重要なデータを長期的に保存できるストレージシステムおよび情報処理システムを提供することである。
【課題を解決するための手段】
【0007】
実施形態によれば、ストレージシステムは、一つ以上の不揮発性メモリと、コントローラとを具備する。前記一つ以上の不揮発性メモリは、各々が消去動作の単位である複数のブロックを含む。前記コントローラは、前記複数のブロックのうちの一つ以上の第1ブロックに一つ以上のデータ部が格納されている場合、前記一つ以上のデータ部がそれぞれに対応する前記一つ以上の第1ブロックに保存されるべき一つ以上の保存可能期間を管理する。前記コントローラは、前記一つ以上の保存可能期間のうち、前記一つ以上のデータ部のうちの第1データ部に対応する第1保存可能期間が第1閾値以上である場合、前記複数のブロックのうちの前記一つ以上の第1ブロックとは異なる第2ブロックに前記第1データ部を書き込み、前記一つ以上の第1ブロックに格納されている前記第1データ部を無効化する。前記コントローラは、前記第1保存可能期間が前記第1閾値より短く、且つ前記第1データ部が前記一つ以上の第1ブロックに保存されている期間が前記第1保存可能期間に達した場合、前記一つ以上の第1ブロックに格納されている前記第1データ部を無効化する。
【図面の簡単な説明】
【0008】
【
図1】実施形態に係るストレージシステムを含む情報処理システムの構成例を示すブロック図。
【
図2】実施形態に係るストレージシステムに含まれる(a)第2ストレージと、(b)第3ストレージとの構成例を示すブロック図。
【
図3】実施形態に係るストレージシステムにおいて各コンテンツを段階的に格納する複数の記憶領域の例を示すブロック図。
【
図4】実施形態に係るストレージシステムに保存されるコンテンツの構成例を示す図。
【
図5】実施形態に係るストレージシステムにおける、第1ストレージに格納されているコンテンツを解析する構成の例を示すブロック図。
【
図6】実施形態に係るストレージシステムにおいて、第1ストレージに格納されているコンテンツが比較される例を示す図。
【
図7】実施形態に係るストレージシステムにおいて実行される短期記憶コンテンツ削除処理の手順の例を示すフローチャート。
【
図8】実施形態に係るストレージシステムにおいて、第2ストレージ内のブロックに格納されるコンテンツの構成例を示す図。
【
図9】実施形態に係るストレージシステムにおいて、第2ストレージに格納されているコンテンツの保存可能期間の例を示すタイムチャート。
【
図10】実施形態に係るストレージシステムにおいて使用される保存管理テーブルの構成例を示す図。
【
図11】実施形態に係るストレージシステムにおいて実行される中期記憶コンテンツ移動処理の手順の例を示すフローチャート。
【
図12】実施形態に係るストレージシステムにおいて、コンテンツが第2ストレージから第3ストレージに移動される例を示す図。
【
図13】実施形態に係るストレージシステムにおける、(a)関連グラフに新たな関連を追加しないコンテンツと、(b)関連グラフに新たな関連を追加するコンテンツの例を示す図。
【発明を実施するための形態】
【0009】
以下、図面を参照して、各実施形態を説明する。
【0010】
図1は、実施形態に係るストレージシステム3を含む情報処理システム1の構成例を示すブロック図である。
【0011】
情報処理システム1は、ユーザに関するライフデータを継続的に記録するためのシステムである。ライフデータは、ユーザの生活や体験などに関するデータである。ライフデータは、例えば、ユーザが見聞きした情報、ユーザの状態に関する情報、ユーザがおかれた環境に関する情報、およびユーザによる操作に基づく情報を含むデータである。記録されたライフデータは、例えば、ユーザの記憶を補助するために用いられる。ライフデータは、ライフログとも称される。情報処理システム1は、第1外部装置2と、ストレージシステム3とを含む。
【0012】
第1外部装置2と、ストレージシステム3とは、第1バス5を介して接続可能である。第1バス5は、例えば、USBTM(Universal Serial BusTM)規格、BluetoothTMなどに準拠したバスである。第1バス5は、有線または無線で通信を行うバスである。
【0013】
第1外部装置2は、ライフデータを生成する情報処理デバイスである。第1外部装置2は、ユーザが着用または携行可能なデバイスである。第1外部装置2は、例えば、スマートグラスおよびスマートウォッチを含むウェアラブルデバイス、スマートフォン、ドライブレコーダを含む車載機器として実現される。第1外部装置2は、第1外部装置2の周辺の情報を取得し、取得した情報に基づいてライフデータを生成する。ライフデータは、画像データ、音声データ、およびメタデータの少なくとも一つを含む。第1外部装置2は、生成したライフデータをストレージシステム3に送信する。以降では、ライフデータが画像データ、音声データ、およびメタデータを含む場合について説明するが、ライフデータは、画像データ、音声データ、およびメタデータのうちの一部のデータで構成されていてもよい。
【0014】
ストレージシステム3は、一つ以上の不揮発性メモリを含むストレージデバイスである。ストレージシステム3は、第1外部装置2から受信したライフデータを保存する。
【0015】
ここでは、第1外部装置2が一つの情報処理デバイスである場合について説明したが、情報処理システム1全体が一つの情報処理装置として実現され、第1外部装置2がその情報処理装置に組み込まれたコンポーネントとして実現されてもよい。つまり、第1外部装置2を含む情報処理システム1が、一つのライフデータを記録するためのデバイスとして実現され得る。
【0016】
また、ストレージシステム3は、第2バス6を介して第2外部装置7と接続可能である。第2バス6は、例えば、USBTM(Universal Serial BusTM)規格、BluetoothTMなどに準拠したバスである。第2バス6は、ストレージシステム3と、第2外部装置7とを接続する。第2バス6は、有線または無線で通信を行うバスである。
【0017】
第2外部装置7は、情報処理装置である。第2外部装置7は、例えば、ユーザによって操作されるコンピューティングデバイスである。第2外部装置7は、ユーザが指定する設定情報をストレージシステム3に送信する。設定情報は、ストレージシステム3の動作を制御するための情報である。設定情報は、例えば、ライフデータがストレージシステム3に保存されるべき期間(以下、保存可能期間とも称する)を制御するために使用されるパラメータと、後述の第1コンテンツ処理部431が使用する教師データと、メタデータに含まれる位置情報が示す位置の範囲を特定する情報とを含む。また、第2外部装置7は、ストレージシステム3からライフデータを読み出す機能を有していてもよい。第2外部装置7は、例えば、第2外部装置7に設けられるディスプレイやスピーカを用いて、ライフデータをユーザに提供し得る。
【0018】
図1では、第2外部装置7が情報処理システム1の外部のデバイスである場合が示されているが、情報処理システム1は、第2外部装置7を含む情報処理装置として実現されてもよい。この場合、情報処理システム1(情報処理装置)は、例えば、マイクおよびカメラなどのセンサ(第1外部装置2)と、タッチスクリーンディスプレイ(第2外部装置7)と、メモリ(ストレージシステム3)とを含むスマートフォンとして実現される。
【0019】
次に、第1外部装置2の構成について説明する。
【0020】
第1外部装置2は、画像入力部21、音声入力部22、およびメタデータ入力部23を含む。第1外部装置2が生成するライフデータは、第1外部装置2の各部によって取得されたデータによって構成される。
図1では、第1外部装置2が画像入力部21、音声入力部22、およびメタデータ入力部23を含む一つのデバイスとして実現されている場合が示されているが、第1外部装置2は、各部のうちの少なくとも一つをそれぞれが含む複数のデバイスによって実現されてもよい。その場合、複数のデバイスのそれぞれは、第1バス5を介して、ストレージシステム3に接続する。これにより、ストレージシステム3は、複数のデバイスそれぞれからデータを受信する。また、第1外部装置2、または第1外部装置2の構成要素のうちの少なくとも一つを含むデバイスは、ユーザによって着用または携行されてもよい。以降では、画像入力部21と、音声入力部22と、メタデータ入力部23とを含む第1外部装置2が一つのウェアラブルデバイスとして実現されており、ユーザが第1外部装置2を着用している場合を想定する。
【0021】
画像入力部21は、画像データを取得する。画像入力部21は、撮像素子を備えるデバイスであり、例えば、カメラである。画像入力部21は、第1外部装置2の周辺を撮影する。画像入力部21が撮影したデータは、一つ以上の画像データを含む動画データであってもよい。画像入力部21は、取得した画像データと、画像データが取得された時刻を示すタイムスタンプとを関連付ける。画像入力部21は、例えば、第1外部装置2を着用しているユーザが見ている景色を撮影する。
【0022】
音声入力部22は、音声データを取得する。音声入力部22は、集音器を備えるデバイスであり、例えば、マイクである。音声入力部22は、第1外部装置2の周辺の音を収集する。音声入力部22は、収集した音に基づく音声データと、音声データが取得された時刻を示すタイムスタンプとを関連付ける。音声入力部22は、例えば、第1外部装置2を着用しているユーザが聞いている音を収集する。
【0023】
メタデータ入力部23は、メタデータを取得するデバイスである。メタデータは、画像入力部21によって取得される画像データと、音声入力部22によって取得された音声データとに関する情報を含むデータである。メタデータは、例えば、第1外部装置2の位置情報、ウェアラブルデバイスを着用しているユーザの生体情報、第1外部装置2の周辺の環境情報、時刻、ユーザによる操作に基づく情報を含む。メタデータ入力部23は、取得したメタデータと、そのメタデータが取得された時刻を示すタイムスタンプとを関連付ける。
【0024】
次に、ストレージシステム3の内部構成について説明する。
【0025】
ストレージシステム3は、例えば、コントローラ4と、Random Access Memory(RAM)31と、第1ストレージ32と、第2ストレージ33と、第3ストレージ34とを含む。コントローラ4と、RAM31と、第1ストレージ32と、第2ストレージ33と、第3ストレージ34とは、内部バス30を介して相互接続されている。
【0026】
コントローラ4は、制御回路の一例であるメモリコントローラである。コントローラ4は、例えば、System-on-a-Chip(SoC)のような半導体デバイスである。コントローラ4は、RAM31、第1ストレージ32、第2ストレージ33、および第3ストレージ34へのデータの書き込みを実行する。コントローラ4は、RAM31、第1ストレージ32、第2ストレージ33、および第3ストレージ34からのデータの読み出しを実行する。また、コントローラ4は、第1バス5を介して、第1外部装置2との通信を実行する。コントローラ4は、第2バス6を介して、第2外部装置7との通信を実行する。コントローラ4は、第1バス5を介して、第1外部装置2からライフデータを受信する。
【0027】
RAM31は、揮発性のメモリである。RAM31は、例えば、スタティックRAM(SRAM)、あるいはダイナミックRAM(DRAM)によって実現される。RAM31は、例えば、ストレージシステム3を管理するために使用される情報を記憶する。
【0028】
第1ストレージ32は、揮発性の半導体メモリである。第1ストレージ32は、例えば、Dynamic Random Access Memory(DRAM)である。第1ストレージ32は、コントローラ4が受信したライフデータを、一時的に格納する。コントローラ4が受信したライフデータは、単位期間ごとにパックされる。一つの単位期間でパックされたライフデータは、一つのデータ部となる。第1ストレージ32は、一つ以上のデータ部それぞれを格納する。データ部は、以降では、コンテンツと称される。一つのコンテンツに含まれる、画像データ、音声データ、およびメタデータのそれぞれは、一つの単位期間に対応する。より具体的には、一つのコンテンツに含まれる、画像データ、音声データ、およびメタデータのそれぞれには、例えば、同じ単位期間に含まれる時刻を示すタイムスタンプが関連付けられている。また、第1ストレージ32に格納されているコンテンツは、第2ストレージ33に移動される、または削除されるまでの間、一時的に格納されているコンテンツであることから、短期記憶コンテンツとも称される。
【0029】
RAM31と、第1ストレージ32とは、
図1において、異なる構成要素として実現されている場合が例示されているが、一つの揮発性メモリ(例えばDRAM)によって実現されてもよい。この場合、DRAMの記憶領域の一部が、ストレージシステム3を管理するために使用される情報を記憶する領域として割り当てられ、DRAMの記憶領域の他の一部がライフデータを一時的に記憶する領域として割り当てられる。
【0030】
第2ストレージ33は、不揮発性の半導体メモリである。第2ストレージ33は、例えば、NAND型フラッシュメモリを含むストレージデバイスまたはメモリデバイスである。NAND型フラッシュメモリは、例えば、二次元構造または三次元構造の複数のメモリセルを備えるフラッシュメモリである。NAND型フラッシュメモリは、複数のブロックを備える。ブロックは、NAND型フラッシュメモリに記憶されたデータの消去の最小単位である。第2ストレージ33に含まれるNAND型フラッシュメモリが備える各ブロックは、第1ブロックとも称される。第2ストレージ33には、第1ストレージ32に格納されているコンテンツのうち、条件を満たしたコンテンツが書き込まれる。第2ストレージ33に書き込まれるコンテンツは、コンテンツの特徴を示す情報である特徴データを含み得る。また、第2ストレージ33に格納されているコンテンツは、第1ストレージ32から移動された後から、第3ストレージ34に移動される、または削除されるまでの間、一時的に格納されているコンテンツであることから、中期記憶コンテンツとも称される。
【0031】
第3ストレージ34は、不揮発性半導体メモリである。第3ストレージ34は、例えば、NAND型フラッシュメモリを含むストレージデバイスまたはメモリデバイスである。第3ストレージ34に含まれるNAND型フラッシュメモリが備える各ブロックは、第2ブロックとも称される。第3ストレージ34は、第2ストレージ33に格納されているコンテンツのうち、条件を満たしたコンテンツを格納する。また、第3ストレージ34に格納されているコンテンツは、第2ストレージ33から移動されたコンテンツであることから、長期記憶コンテンツとも称される。
【0032】
ここで、ストレージシステム3は、例えば、ソリッドステートドライブ(SSD)である。第2ストレージ33および第3ストレージ34それぞれは、ストレージシステム3内の異なるチップまたはパッケージであってもよいし、同一パッケージ内の異なるチップであってもよい。また、第2ストレージ33および第3ストレージ34は、それぞれが一つ以上のNAND型フラッシュメモリを含む、異なるSSDであってもよい。
【0033】
あるいは、第2ストレージ33と、第3ストレージ34とのそれぞれが、一つのNAND型フラッシュメモリの記憶領域に含まれていてもよい。この場合、一つのNAND型フラッシュメモリは、第2ストレージ33を構成する一つ以上の第1ブロックと、第3ストレージ34を構成する一つ以上の第2ブロックとを備える。
【0034】
以降では、第1ストレージ32がDRAM、第2ストレージ33がシングルレベルセル(SLC)モードでデータが書き込まれるメモリセルを備えるNAND型フラッシュメモリ、第3ストレージ34がマルチレベルセル(MLC)モードでデータが書き込まれるメモリセルを備えるNAND型フラッシュメモリによってそれぞれ実現されている場合について説明する。
【0035】
SLCモードは、第2ストレージ33のブロックに含まれるメモリセルにデータを書き込む場合に使用される。SLCモードでは、メモリセル当たり1ビットのデータが書き込まれる。
【0036】
MLCモードは、第3ストレージ34のブロックに含まれるメモリセルにデータを書き込む場合に使用される。MLCモードでは、メモリセル当たり2ビット以上のデータが書き込まれる。例えば、メモリセル当たりに2ビットのデータを書き込むように制御するモードをMLCモードと称し、メモリセル当たりに3ビットのデータを書き込むように制御するモードをトリプルレベルセル(TLC)モードと称し、メモリセル当たりに4ビットのデータを書き込むように制御するモードをクワッドレベルセル(QLC)モードと称する。すなわち、第3ストレージ34のブロックに含まれるメモリセルにデータを書き込む場合に、TLCモードまたはQLCモードが使用されてもよい。
【0037】
第3ストレージ34のメモリセル当たりに書き込まれるデータのビット数は、第2ストレージ33のメモリセル当たりに書き込まれるデータのビット数よりも大きい。例えば、第2ストレージ33に対してメモリセル当たりNビットのデータが書き込まれ、第3ストレージ34に対してメモリセル当たりMビットのデータが書き込まれるものとする。この場合、Nは、1以上の整数であり、Mは、Nより大きい整数である。
【0038】
次に、コントローラ4の内部構成の例について説明する。コントローラ4は、第1インタフェース(I/F)41と、第2インタフェース(I/F)42と、Central Processing Unit(CPU)43とを含む。
【0039】
第1I/F41は、ハードウェアで構成されるインタフェース回路である。第1I/F41は、第1バス5を介して、第1外部装置2との通信を実行する。第1I/F41は、第1外部装置2から、画像データ、音声データ、メタデータの少なくとも一つを受信する。第1I/F41が受信するデータは、画像データ、音声データ、メタデータのうちの少なくとも一つを含むライフデータであってもよい。
【0040】
第2I/F42は、ハードウェアで構成されるインタフェース回路である。第2I/F42は、第2バス6を介して、第2外部装置7との通信を実行する。第2I/F42は、ユーザが指定する設定情報を第2外部装置7から受信する。
【0041】
CPU43は、プロセッサである。CPU43は、第1I/F41と、第2I/F42とを制御する。また、CPU43は、RAM31、第1ストレージ32、第2ストレージ33、および第3ストレージ34へのデータの書き込みを制御する。CPU43は、図示しないROMまたは不揮発性メモリから制御プログラム(ファームウェア)をRAM31にロードする。CPU43は、制御プログラムを実行することによって様々な処理を行う。CPU43は、例えば、第1ストレージ32と、第2ストレージ33と、第3ストレージ34とに記憶されたデータの管理と、第2ストレージ33と、第3ストレージ34とに含まれるブロックの管理とを実行する。
【0042】
次に、CPU43の機能構成の例について説明する。CPU43は、例えば、前述した制御プログラムを実行することにより、第1コンテンツ処理部431、第1コンテンツ移動部432、第2コンテンツ処理部433、第2コンテンツ移動部434、および第3コンテンツ処理部435として機能する。
【0043】
第1コンテンツ処理部431は、第1ストレージ32に格納されているコンテンツに関する処理を実行する。具体的には、第1コンテンツ処理部431は、第1ストレージ32に格納されている各コンテンツを解析し、解析結果に基づいて各コンテンツの特徴データを生成する。特徴データは、例えば、オブジェクト画像と、画像クラスタリング情報と、声紋と、音声クラスタリング情報と、テキストデータとを含む。オブジェクト画像は、対応するコンテンツに含まれる画像データを処理することによって生成されたオブジェクトの画像データである。画像クラスタリング情報は、例えば、対応するコンテンツに含まれる画像データからオブジェクトとして抽出された人や物の名称を示す文字情報であるラベルを含む。画像クラスタリング情報は、オブジェクト画像だけでなく、画像データ、あるいは画像データまたはオブジェクト画像の時間的変化に基づいて生成されてもよい。また、オブジェクトとして抽出される人や物は、例えば、事象、現象、色彩、複雑性など、様々な視覚的な特徴であってもよい。声紋は、対応するコンテンツに含まれる音声データの特徴を示す情報である。声紋は、人や動物の声以外の音の特徴を示す情報であってもよい。音声クラスタリング情報は、対応するコンテンツに含まれる音声データの特徴(声紋)に基づき特定された人や物などの名称を示す文字情報であるラベルを含む。音声クラスタリング情報は、声紋だけでなく、音声データ、あるいは音声データと声紋との組み合わせから抽出されてもよい。また、特定される人や物は、事象、現象、音色、音質、種類、楽曲など、様々な音の特徴であってもよい。テキストデータは、音声データにおいて発声された言葉や発せられた音を表す文字情報である音声テキストを含む。第1コンテンツ処理部431によって実行される処理を、短期記憶コンテンツ処理とも称する。
【0044】
第1コンテンツ処理部431は、オブジェクト処理部4311、画像クラスタリング部4312、声紋分析部4313、音声クラスタリング部4314、およびテキスト化部4315を含む。
【0045】
オブジェクト処理部4311は、オブジェクト画像を生成する。オブジェクト処理部4311は、コンテンツに含まれている画像データに基づいて、一つ以上のオブジェクト画像を生成する。オブジェクト処理部4311は、例えば、画像データから人や物の画像を抽出することによって、オブジェクト画像を生成する。オブジェクト処理部4311は、生成したオブジェクト画像を、コンテンツに関連付ける。
【0046】
画像クラスタリング部4312は、生成されたオブジェクト画像を分類する。画像クラスタリング部4312は、オブジェクト画像において抽出されている人や物ごとに、対応するラベルを含む画像クラスタリング情報を生成する。画像クラスタリング部4312は、生成された画像クラスタリング情報を、対応するオブジェクト画像に関連付ける。画像クラスタリング部4312は、第2I/F42を介して第2外部装置7から取得された教師データに基づいて、画像クラスタリング情報を生成してもよい。画像クラスタリング部4312は、生成した画像クラスタリング情報をコンテンツに関連付ける。
【0047】
声紋分析部4313は、音声データを解析して、音声データの特徴である声紋を抽出する。声紋は、その声を発した人や音を発した物を特定するために用いられる特徴である。
【0048】
音声クラスタリング部4314は、音声データから得られた声の特徴に基づいて、その声を発した人を特定する。あるいは、音声クラスタリング部4314は、音声データから得られた特徴に基づいて、その音を発した物を特定する。例えば、音声クラスタリング部4314は、声紋分析部4313が抽出した声紋を使用する。音声クラスタリング部4314は、例えば、第2I/F42を介して第2外部装置7から取得された教師データに基づいて、人や物を特定する。音声クラスタリング部4314は、特定された人や物に対応するラベルを含む音声クラスタリング情報を生成する。音声クラスタリング部4314は、生成した音声クラスタリング情報をコンテンツに関連付ける。
【0049】
テキスト化部4315は、音声データを解析して、音声データにおいて発生している音に対応するテキストデータを生成する。音声データに人が発した声が含まれている場合、テキスト化部4315は、音声データにおける発語内容を示すテキストデータを生成する。また、音声データに物が発した音が含まれている場合、テキスト化部4315は、発されている音を示すテキストデータ(例えば、擬音など)を生成する。テキスト化部4315は、生成したテキストデータを、コンテンツに関連付ける。
【0050】
第1コンテンツ移動部432は、第1ストレージ32に格納されているコンテンツを第2ストレージ33に移動する処理を実行する。具体的には、第1コンテンツ移動部432は、第1ストレージ32に格納されているコンテンツのうち、最も古いコンテンツが、次に古いコンテンツと類似していない場合、最も古いコンテンツを第2ストレージ33に移動する。最も古いコンテンツは、第1ストレージ32に格納されているコンテンツのうち、メタデータに含まれる時間情報が示す時刻が最も早いコンテンツである。次に古いコンテンツは、第1ストレージ32に格納されているコンテンツのうち、メタデータに含まれる時間情報が示す時刻が二番目に早いコンテンツである。対象のコンテンツを第2ストレージ33に移動する動作は、第1ストレージ32から読みだした対象のコンテンツを第2ストレージ33に書き込んだ後に、第1ストレージ32に格納されている対象のコンテンツを削除する動作である。最も古いコンテンツが次に古いコンテンツと類似している場合、第1コンテンツ移動部432は、最も古いコンテンツを削除する。なお、第1コンテンツ移動部432は、最も古いコンテンツを削除する代わりに、最も古いコンテンツに含まれている構成要素の一部を削除または圧縮してもよい。例えば、第1コンテンツ移動部432は、最も古いコンテンツに含まれている画像データおよび音声データなどを個別に削除または圧縮し得る。
【0051】
第2コンテンツ処理部433は、第2ストレージ33に格納されているコンテンツそれぞれに対応する保存可能期間を管理する。以降では、コンテンツが第2ストレージ33に格納されてから経過した時間を、保存期間と称する。また、コンテンツが第2ストレージ33に保存されるべき期間(コンテンツを第2ストレージ33に保存可能な期間)を、保存可能期間と称する。第2ストレージ33に格納されているコンテンツに、保存期間が、保存可能期間に達したコンテンツがある場合、第2コンテンツ処理部433は、このコンテンツを無効化する。無効化されたコンテンツは、第2ストレージ33から読み出されることが無いコンテンツである。各コンテンツに対応する保存可能期間は、第2I/F42を介して受信された設定情報312に基づいて、初期値が設定される。第2コンテンツ処理部433は、第2ストレージ33に格納されている第1コンテンツが、一つ以上の延長条件のうちの少なくとも一つの延長条件を満たしている場合、この第1コンテンツに対応する保存可能期間に、満たされた延長条件に対応する延長期間を加算する。延長条件に対応する延長期間は、第2I/F42を介して受信された設定情報312に基づいて設定される。
【0052】
第2コンテンツ移動部434は、第2ストレージ33に格納されているコンテンツを第3ストレージ34に移動する処理(中期記憶コンテンツ移動処理)を実行する。具体的には、第2ストレージ33に格納されているコンテンツに、保存可能期間が第1閾値に達したコンテンツがある場合、第2コンテンツ移動部434は、このコンテンツを第3ストレージ34に移動する。対象のコンテンツを第3ストレージ34に移動する動作は、第2ストレージ33から読みだした対象のコンテンツを第3ストレージ34に書き込んだ後、第2ストレージ33に格納されている対象のコンテンツを無効化する動作である。
【0053】
また、第2コンテンツ移動部434は、データを新たに格納可能な第2ストレージ33の空き記憶領域を示す指標が閾値以下になったことに応じて、第2ストレージ33に格納されているコンテンツを第3ストレージ34に移動してもよい。具体的には、第2コンテンツ移動部434は、第2ストレージ33内のブロックのうちのデータの書き込みが開始された時刻が最も古いブロックに格納され、且つ無効化されていない全てのコンテンツを、第3ストレージ34に書き込む。そして、第2コンテンツ移動部434は、第2ストレージ33において、この最も古いブロックに格納されている全てのコンテンツを無効化する。これにより、この最も古いブロックは、有効なコンテンツが格納されていないブロック(フリーブロック)になる。
【0054】
第3コンテンツ処理部435は、第3ストレージ34に格納されているコンテンツに基づいて、関連グラフ317を生成する。また、第3コンテンツ処理部435は、例えば、コンテンツが第3ストレージ34に新たに格納されたことに応じ、関連グラフ317を更新する。関連グラフ317は、第3ストレージ34に格納されているコンテンツ間の関連を示す。また、第3コンテンツ処理部435は、第2ストレージ33および第3ストレージ34に格納されているコンテンツに基づいて、関連グラフ317を生成してもよい。コンテンツ間の関連は、例えば、各コンテンツに含まれるオブジェクト画像およびテキストデータに基づく情報である。
【0055】
次に、RAM31に記憶されている情報について説明する。RAM31に記憶されている情報は、保存管理テーブル311と、設定情報312と、SLCアクティブブロック(AB)リスト313と、SLCフリーブロック(FB)リスト314と、MLCアクティブブロック(AB)リスト315と、MLCフリーブロック(FB)リスト316と、関連グラフ317とを含む。
【0056】
保存管理テーブル311は、第2ストレージ33に格納されているコンテンツそれぞれの、保存可能期間と、保存期限と、ステータスとを管理するための情報である。保存期限は、対応するコンテンツが第2ストレージ33に保存可能な期限を示す。例えば、保存期限は、コンテンツが第2ストレージ33に保存された時刻と、保存可能期間との和によって算出される。
【0057】
設定情報312は、ストレージシステム3の動作を制御するための情報である。設定情報312は、CPU43によって使用される。設定情報312は、例えば、第2外部装置7におけるユーザによる操作に基づいて指定された情報である。設定情報312は、例えば、第1コンテンツ処理部431が使用する教師データと、第2コンテンツ処理部433が使用するパラメータとを含む。設定情報312は、例えば、第2I/F42を介して、第2外部装置7から受信される。なお、設定情報312は、ストレージシステム3の初期値として、予め記憶されていてもよい。
【0058】
SLC ABリスト313は、第2ストレージ33に含まれる一つ以上のブロックのうち、少なくとも一つの有効なコンテンツが格納されているブロックのリストである。有効なコンテンツは、第2ストレージ33から読み出される可能性があるコンテンツである。
【0059】
SLC FBリスト314は、第2ストレージ33に含まれる一つ以上のブロックのうち、有効なコンテンツが格納されていないブロックのリストである。
【0060】
MLC ABリスト315は、第3ストレージ34に含まれる一つ以上のブロックのうち、少なくとも一つの有効なコンテンツが格納されているブロックのリストである。
【0061】
MLC FBリスト316は、第3ストレージ34に含まれる一つ以上のブロックのうち、有効なコンテンツが格納されていないブロックのリストである。
【0062】
関連グラフ317は、第3ストレージ34に格納されているコンテンツ間の関連を示す情報である。なお、関連グラフ317は、第3ストレージ34および第2ストレージ33に格納されているコンテンツ間の関連を示す情報であってもよい。
【0063】
次に、第2ストレージ33および第3ストレージ34の構成例について説明する。
図2は、実施形態に係るストレージシステム3に含まれる(a)第2ストレージ33と、(b)第3ストレージ34との構成例を示すブロック図である。
【0064】
図2(a)で示されるように、第2ストレージ33は、それぞれがSLCモードでデータを記憶可能なブロックである複数の(ここではx個の)SLCブロックSBLK0~SBLKx-1を含む。ブロックは、物理ブロック、消去ブロック、フラッシュブロック、またはメモリブロックとも称される。SLCブロックSBLK0~SBLKx-1の各々は、複数の(ここではy個の)SLCページSP0~SPy-1を含む。SLCページSP0~SPy-1の各々は、第2ストレージ33に含まれるSLCブロックSBLK0~SBLKx-1の各々に対するデータ書き込み動作およびデータ読み出し動作の最小単位である。データ書き込み動作は、データを書き込むための動作である。データ読み出し動作は、データを読み出すための動作である。SLCページSP0~SPy-1の各々は、同一ワード線に接続された複数のメモリセルを含む。SLCページSP0~SPy-1に含まれる複数のメモリセルのそれぞれに書き込まれるデータのビット数は、1である。
【0065】
また、
図2(b)で示されるように、第3ストレージ34は、それぞれがMLCモードでデータを記憶可能なブロックである複数の(ここではx個の)MLCブロックMBLK0~MBLKx-1を含む。MLCブロックMBLK0~MBLKx-1の各々は、複数の(ここではy個の)MLCページMP0~MPy-1を含む。また、MLCページMP0~MPy-1の各々は、同一ワード線に接続された複数のメモリセルを含む。MLCページMP0~MPy-1に含まれる複数のメモリセルのそれぞれに書き込まれるデータのビット数は、2以上である。
【0066】
例えば、第3ストレージ34においてメモリセル当たりに書き込まれるデータのビット数が4である場合(QLCモードの場合)、一つのMLCブロックに書き込むことができるデータ量は、一つのSLCブロックに書き込むことができるデータ量の約4倍になる。このことから、第2ストレージ33と、第3ストレージ34とに同数のブロックが含まれる場合であっても、第3ストレージ34の方がより多くのデータを格納することができる。
【0067】
SLCブロックは、MLCブロックと比較して、データを書き込む動作、およびデータを読み出す動作に要する時間が短い。そのため、MLCブロックに格納されているコンテンツよりも、SLCブロックに格納されているコンテンツの方が短い時間でデータを書き込むことおよび読み出すことができる。また、SLCブロックの動作が保証される消去回数は、MLCブロックの動作が保証される消去回数よりも多い。つまり、SLCブロックは、MLCブロックと比較して、高い頻度でデータの書き換えが繰り返されるような運用に適している。
【0068】
次に、ストレージシステム3におけるコンテンツの移動について説明する。
図3は、ストレージシステム3において、各コンテンツを段階的に格納する複数の記憶領域の例を示すブロック図である。
【0069】
コントローラ4は、第1外部装置2から受信したコンテンツを第1ストレージ32に一時的に格納する。そして、コントローラ4は、第1ストレージ32に格納されているコンテンツのうち、条件を満たしたコンテンツを、第2ストレージ33に移動する。さらに、コントローラ4は、第2ストレージ33に格納されているコンテンツのうち、条件を満たしたコンテンツを第3ストレージ34に移動する。
【0070】
図3を参照して具体的な動作について説明する。まず、コントローラ4の第1I/F41は、第1外部装置2からライフデータを受信する。コントローラ4は、受信されたライフデータを、単位期間ごとにパックすることによって、一つのコンテンツを生成する。コントローラ4は、生成したコンテンツを第1ストレージ32に格納する。単位期間は、例えば、30秒である。第1I/F41は、例えば、ライフデータとして既にパックされたコンテンツを受信してもよいし、ライフデータを構成する画像データ、音声データ、およびメタデータのそれぞれを個別に受信してもよい。画像データ、音声データ、およびメタデータのそれぞれが個別に受信される場合、コントローラ4は、各データに関連付けられたタイムスタンプを参照して、一つの単位期間に取得された各データをパックすることによって、コンテンツを生成する。
【0071】
具体的には、例えば、第1の単位期間に取得されたライフデータがパックされることによって、一つのコンテンツが生成される。次いで、第1の単位期間に後続する第2の単位期間に取得されたライフデータがパックされることによって、後続する一つのコンテンツが生成される。つまり、第1ストレージ32には、単位期間毎に(例えば30秒毎に)、新たに一つのコンテンツが格納されることになる。そのため、単位期間ごとに新たなコンテンツを格納することができるように、第1ストレージ32には、データを新たに格納できる空き記憶領域が確保されている必要がある。そのため、第1ストレージ32に格納されているコンテンツは、定期的に削除される必要がある。これ以降、第1ストレージ32に格納されているコンテンツの削除は、コンテンツの消去またはコンテンツの無効化を含むこととする。
【0072】
第1コンテンツ処理部431は、第1ストレージ32に格納されているコンテンツを解析する。
【0073】
第1コンテンツ移動部432は、第1コンテンツ処理部431によるコンテンツの解析結果に基づいて、第1ストレージ32に格納されているコンテンツのうち、最も古いコンテンツ(対象コンテンツ)を、第2ストレージ33に移動するか、あるいは第2ストレージ33に書き込むことなく削除する処理(短期記憶コンテンツ削除処理)を実行する。具体的には、第1コンテンツ移動部432は対象コンテンツを、第2ストレージ33に移動すべきか否かを判定する。対象コンテンツを第2ストレージ33に移動すべきでないと判定した場合、第1コンテンツ移動部432は、対象コンテンツを削除する。対象コンテンツを第2ストレージ33に移動すべきと判定した場合、第1コンテンツ移動部432は、対象コンテンツを第2ストレージ33の書き込み先SLCブロックに書き込む。そして、第1コンテンツ移動部432は、対象コンテンツの書き込みが完了すると、第1ストレージ32に格納されている対象コンテンツを削除する。
【0074】
第1コンテンツ移動部432は、短期記憶コンテンツ削除処理を、例えば、定期的に実行する。コンテンツは単位期間ごとにライフデータをパックすることによって生成されるため、一つのコンテンツが第1ストレージ32に格納される頻度は一定である。つまり、第1ストレージ32の新たにデータを格納することができる空き記憶領域が定期的に消費される。したがって、第1コンテンツ移動部432は、短期記憶コンテンツ削除処理を定期的に実行する。あるいは、第1ストレージ32の空き記憶領域を示す指標が閾値以下になったことに応じて、第1コンテンツ移動部432は、短期記憶コンテンツ削除処理を実行してもよい。第1ストレージ32の空き記憶領域を示す指標は、例えば、第1ストレージ32のデータを新たに格納可能な空き記憶領域のサイズ、または第1ストレージ32の記憶容量に対する、データを新たに格納可能な空き記憶領域のサイズの割合である。
【0075】
第2ストレージ33の書き込み先SLCブロックがフルになった場合、CPU43は、フルになったSLCブロックの書き込み先SLCブロックへの割り当てを解除する。フルになったSLCブロックは、新たなデータを書き込むことができる記憶領域が無くなったSLCアクティブブロックである。そして、CPU43は、SLC FBリスト314に登録されているSLCフリーブロックから、任意のブロックを選択する。このとき、CPU43は、ウェアレベリングを考慮して、SLC FBリスト314に登録されているSLCフリーブロックのうちの消去動作が実行された回数が少ないSLCフリーブロックを優先して選択してもよい。選択したSLCフリーブロックに対するデータ消去動作を実行した後、CPU43は、選択したSLCフリーブロックを新たな書き込み先SLCブロックに割り当てる。そして、CPU43は、書き込み先SLCブロックに割り当てられたSLCブロックをSLC ABリスト313に登録する。
【0076】
第2コンテンツ処理部433は、第2ストレージ33に格納されているコンテンツそれぞれに対応する保存可能期間を管理する。第2コンテンツ処理部433は、第2ストレージ33に格納されているコンテンツそれぞれについて、複数の延長条件のうちの少なくとも一つの延長条件を満たしているか否かを判定する。あるコンテンツが複数の延長条件のうちの少なくとも一つの延長条件を満たしている場合、CPU43は、満たされた延長条件に対応する延長期間を、そのコンテンツに対応する保存可能期間に加算する。
【0077】
第2ストレージ33に格納されているコンテンツのうち、いずれかのコンテンツに対応する保存可能期間が第1閾値に達した場合、第2コンテンツ移動部434は、そのコンテンツを第3ストレージ34の書き込み先MLCブロックに書き込む。そして、第2コンテンツ移動部434は、第2ストレージ33に格納されている、そのコンテンツを無効化する。
【0078】
また、第2ストレージ33に格納されているコンテンツの保存期間が、そのコンテンツに対応する保存可能期間に達した場合、第2コンテンツ移動部434は、第2ストレージ33に格納されているそのコンテンツを無効化する。
【0079】
SLC ABリスト313に登録されているSLCブロックから書き込み先SLCブロックを除外したSLCブロックのうち、有効なコンテンツを格納していないSLCブロックが生じた場合、CPU43は、そのSLCブロックをSLC FBリスト314に登録する。
【0080】
第2ストレージ33に格納されているコンテンツを第3ストレージ34の書き込み先MLCブロックに書き込むときに、書き込み先MLCブロックがフルになった場合、CPU43は、フルになったMLCブロックの書き込み先MLCブロックへの割り当てを解除する。そして、CPU43は、MLC FBリスト316に登録されている第3ストレージ34のMLCフリーブロックから、任意のブロックを選択する。このとき、CPU43は、ウェアレベリングを考慮して、MLC FBリスト316に登録されているMLCフリーブロックのうちの消去動作が実行された回数が少ないMLCフリーブロックを優先して選択してもよい。選択したMLCフリーブロックに対するデータ消去動作を実行した後、CPU43は、選択したMLCフリーブロックを新たな書き込み先MLCブロックに割り当てる。そして、CPU43は、書き込み先MLCブロックに割り当てられたMLCブロックをMLC ABリスト315に登録する。
【0081】
次に、コンテンツの構成について説明する。
図4は、ストレージシステム3に保存されるコンテンツの構成例を示す図である。
【0082】
コンテンツは、一つ以上の画像データと、音声データと、メタデータとを含む。コンテンツに含まれる各データは、特定の期間(単位期間)内に取得されたデータである。コンテンツには、識別子(ID)が付与される。識別子は、対応する一つのコンテンツを特定可能な情報である。
【0083】
一つ以上の画像データは、第1外部装置2の周辺を撮影した画像データである。一つ以上の画像データそれぞれは、画像入力部21によって取得される。
【0084】
音声データは、第1外部装置2の周辺の音声を収集した音声データである。音声データは、音声入力部22によって取得される。
【0085】
メタデータは、第1外部装置2の位置情報、時間情報、第1外部装置2を着用しているユーザの生体情報、第1外部装置2の周辺の環境情報、対応するライフデータが重要であるか否かに関する情報、および読み出し回数情報を含む。メタデータに含まれる各情報は、例えば、メタデータ入力部23によって取得される。
【0086】
位置情報は、例えば、コンテンツが取得されたときの第1外部装置2の位置を示す情報である。なお、コンテンツが取得されたときとは、コンテンツに含まれる何れかのデータが第1外部装置2によって取得されたときを意味するものとする。位置情報は、例えば、第1外部装置2によって受信されたGPS(Global Positioning System)信号に基づく。位置情報は、例えば、緯度および経度で表される。
【0087】
時間情報は、例えば、コンテンツの取得が開始されたときの時刻を示す情報である。時間情報は、コンテンツの取得が開始された時刻の代わりに、コンテンツが取得された単位期間内の任意の時刻を示す情報であってもよい。
【0088】
ユーザの生体情報は、例えば、ユーザの、体温、心拍数、乾燥度、および電位のうちの少なくともいずれかを示す情報である。ユーザの生体情報は、コンテンツが取得された単位期間内の平均値、最小値、または最大値を示していてもよいし、単位期間内の任意の時刻における値を示していてもよい。
【0089】
第1外部装置2の周辺の環境情報は、例えば、ユーザが置かれている環境における温度、湿度、および臭いのうちの少なくともいずれかを示す情報である。第1外部装置2の周辺の環境情報は、コンテンツが取得された単位期間内の平均値、最小値、または最大値を示していてもよいし、単位期間内の任意の時刻における値を示していてもよい。
【0090】
また、ライフデータが重要であるか否かに関する情報は、例えば、第1外部装置2のモードに基づいて決定され得る。第1外部装置2が第1モードである間に取得されたライフデータには、重要であることを示す情報が付与される。重要であることを示す情報は、例えば、1に設定された重要フラグである。一方、第1外部装置2が第2モードである間に取得されたライフデータには、重要でないことを示す情報が付与される。重要でないことを示す情報は、例えば、0に設定された重要フラグである。第1外部装置2の第1モードおよび第2モードは、例えば、第1外部装置2に設けられたボタン(不図示)が押下されることによって切り替えられてもよい。ボタンは、例えば、ウェアラブルデバイスを着用しているユーザによって操作される。
【0091】
読み出し回数情報は、コンテンツがストレージシステム3から読み出された回数を示す。コンテンツは、例えば、第2外部装置7によってストレージシステム3から読み出される。第2外部装置7は、例えば、再生したいコンテンツをストレージシステム3から読み出す。つまり、読み出された回数が多いコンテンツは、再生することが要求される、重要度が高いコンテンツであると考えられる。
【0092】
メタデータは、取得されたこれらのデータのうちの少なくとも一つに基づいて、メタデータ入力部23によって生成される。
【0093】
図4では、IDxxxx10が付与されたコンテンツが例示されている。以降では、IDxxxx10が付与されたコンテンツを、コンテンツxxxx10と称する。
【0094】
すなわち、コンテンツxxxx10は、一つ以上の画像データと、音声データと、メタデータとを含む。コンテンツxxxx10のメタデータは、位置情報、時間情報、気温情報、湿度情報、体温情報、重要フラグ情報、および読み出し回数情報を含む。
【0095】
位置情報は、コンテンツxxxx10(より詳しくは、コンテンツxxxx10としてパックされたデータ)が取得されたときの、第1外部装置2の位置を示す。
図4に示す例では、コンテンツxxxx10を取得したときの第1外部装置2の位置が、北緯A度、東経B度であることが示されている。
【0096】
時間情報は、コンテンツxxxx10の取得が開始されたときの時刻を示す。
図4に示す例では、コンテンツxxxx10の取得が開始された時刻が2022年12月19日9時15分00秒であることが示されている。例えば、単位期間が30秒である場合、コンテンツxxxx10は、2022年12月19日9時15分00秒から2022年12月19日9時15分30秒までの間に取得されたライフデータがパックされたコンテンツである。
【0097】
気温情報は、コンテンツxxxx10が取得されたときの、第1外部装置2の周辺の気温を示す。この気温は、例えば、コンテンツxxxx10が取得された単位期間における気温の平均値である。
図4に示す例では、コンテンツxxxx10が取得されたときの、第1外部装置2の周辺の気温が6.5℃であることが示されている。
【0098】
湿度情報は、コンテンツxxxx10が取得されたときの、第1外部装置2の周辺の湿度を示す。この湿度は、例えば、コンテンツxxxx10が取得された単位期間における湿度の平均値である。
図4に示す例では、コンテンツxxxx10が取得されたときの第1外部装置2の周辺の湿度が、40%であることが示されている。
【0099】
体温情報は、コンテンツxxxx10が取得されたときの、第1外部装置2を着用または携行しているユーザの体温を示す。この体温は、例えば、コンテンツxxxx10が取得された単位期間におけるユーザの体温の平均値である。
図4に示す例では、コンテンツxxxx10が取得されたときのユーザの体温が、35.9℃であることが示されている。
【0100】
重要フラグ情報は、コンテンツxxxx10が重要であるか否かを示す情報である。例えば、第1外部装置2が第1モードである間に取得されたコンテンツの重要フラグには、重要であることを示す「1」が設定される。また、第1外部装置2が第2モードである間に取得されたコンテンツの重要フラグには、重要でないことを示す「0」が設定される。
図4に示す例では、コンテンツxxxx10が重要であること(すなわち、1)が示されている。
【0101】
読み出し回数情報は、コンテンツxxxx10がストレージシステム3から読み出された回数を示す。コンテンツxxxx10は、例えば、第2外部装置7によってストレージシステム3から読み出される。
図4に示す例では、コンテンツxxxx10がストレージシステム3から読み出された回数が、0であることが示されている。つまり、コンテンツxxxx10は、ストレージシステム3から読み出されたことが無いコンテンツである。
【0102】
次に、コンテンツの特徴データを取得する処理(短期記憶コンテンツ処理)について説明する。
図5は、第1ストレージ32に格納されているコンテンツを解析する構成の例を示すブロック図である。
【0103】
特徴データは、例えば、画像データから生成されたオブジェクト画像および画像クラスタリング情報と、音声データから生成された声紋、音声クラスタリング情報、および、テキストデータとを含む。画像クラスタリング情報は、画像データに基づいて生成されたラベルを含む。音声クラスタリング情報は、音声データに基づいて生成されたラベルを含む。テキストデータは、音声データに基づいて生成された音声テキストを含む。生成された特徴データは、対応するコンテンツに追加され得る。オブジェクト画像は、画像データのうちの、特定の人や物を表す部分的な画像データである。オブジェクト画像は、例えば、撮像された画像のうちの特定の人が写されている領域のみを切り取った画像、および撮像された画像のうちの特定の物が写されている領域のみを切り取った画像である。画像クラスタリング情報に含まれるラベルは、例えば、オブジェクト画像に示されている人や物の名称を表すテキストである。音声クラスタリング情報に含まれるラベルは、例えば、声紋に対応する人や物の名称を表すテキストである。また、音声データに基づいて生成されたデータである音声テキストは、音声データにおいて発音されている言葉や発せられた音を表すテキストデータである。音声テキストには、人が発音した言葉の他にも、環境音を擬音で表したテキストが含まれていてもよい。環境音は、例えば、雨の音、車の音、生物が発する声や音、などを含む。
【0104】
ここで、コンテンツxxxx10に対して短期記憶コンテンツ処理が実行される場合を想定する。この場合、第1コンテンツ処理部431は、コンテンツxxxx10の特徴データを取得する。
【0105】
まず、コンテンツxxxx10に含まれる画像データから、コンテンツxxxx10の特徴データの一部を取得する処理について説明する。
【0106】
オブジェクト処理部4311は、コンテンツxxxx10に含まれる一つ以上の画像データそれぞれからオブジェクト画像を生成する。オブジェクト処理部4311は、画像データから、オブジェクトを含む領域を抽出することによって、オブジェクト画像を生成する。オブジェクト処理部4311は、生成したオブジェクト画像をコンテンツxxxx10に関連付ける。オブジェクトは、例えば、人、および物である。オブジェクト処理部4311は、一つの画像データから、一つ以上のオブジェクト画像を生成し得る。
【0107】
次いで、画像クラスタリング部4312は、生成されたオブジェクト画像を、オブジェクト画像に含まれるオブジェクトに基づいて分類する。例えば、同じ人や物を含む二つ以上のオブジェクト画像は、同じグループのオブジェクト画像として分類される。このとき、画像クラスタリング部4312は、第2I/F42が受信した教師データや過去に解析されたコンテンツに基づいて、オブジェクト画像を分類し得る。また、画像クラスタリング部4312は、ストレージシステム3が独自に記憶している設定情報312を使用してオブジェクト画像を分類してもよい。画像クラスタリング部4312は、分類されたオブジェクト画像に対応するラベルを画像クラスタリング情報としてコンテンツxxxx10に関連付ける。例えば、分類されたオブジェクト画像に含まれるオブジェクトが示している人や物の名称を示すラベルを、分類されたオブジェクト画像に対応付ける。オブジェクト画像は人または物を含む画像であるため、一つのオブジェクト画像には、一つ以上のラベルが関連付けられ得る。なお、画像クラスタリング部4312は、オブジェクト画像だけでなく、コンテンツxxxx10に含まれる画像データに基づいて、画像クラスタリング情報を生成してもよい。またさらに、画像クラスタリング部4312は、コンテンツxxxx10に含まれる画像データ、あるいは関連付けられたオブジェクト画像の時間的変化に基づいて、画像クラスタリング情報を生成してもよい。
【0108】
次に、コンテンツxxxx10に含まれる音声データから、コンテンツxxxx10の特徴データの他の一部を取得する処理について説明する。
【0109】
声紋分析部4313および音声クラスタリング部4314は、コンテンツxxxx10に含まれる音声データからクラスタリングの対象を特定する。声紋分析部4313は、音声データから特徴的な音声を示す声紋を生成する。声紋分析部4313は、生成した声紋をコンテンツxxxx10に関連付ける。音声クラスタリング部4314は、例えば、声紋から人の声を判別し、声を発している人を特定する。また、音声クラスタリング部4314は、声紋から、例えば、動物の声や音、環境音、物の音などを発している物を特定する。このとき、声紋分析部4313および音声クラスタリング部4314は、第2I/F42が受信した教師データや過去に解析されたコンテンツに基づいて、声を発した人や音を発した物を特定する。また、音声クラスタリング部4314は、ストレージシステム3が独自に記憶している設定情報312を使用して声紋から声を発した人や音を発した物を特定してもよい。音声クラスタリング部4314は、例えば、人の発した声から名前を、鳥のさえずりから鳥の名称を、環境音から波の音を、あるいは車のエンジン音から車種を特定し得る。例えば、声を発した人や音を発した物を特定することができた場合、音声クラスタリング部4314は、特定した人物の名称を示すラベルを音声クラスタリング情報としてコンテンツxxxx10に関連付ける。一方、声を発した人や音を発した物を特定することができない場合、声紋分析部4313および音声クラスタリング部4314は、この音声データにおいて声を発した人や音を発した物を、新たな人や物として記録してもよい。また、音声クラスタリング部4314は、一つの声紋から、複数の音声クラスタリング情報を生成し得る。例えば、音声クラスタリング部4314は、車のエンジン音を抽出した声紋から、車種を示す音声クラスタリング情報と、エンジンの稼働状況を示す音声クラスタリング情報とを生成し得る。また、音声クラスタリング部4314は、声紋だけでなく、コンテンツxxxx10に含まれる音声データに基づいて、音声クラスタリング情報を生成してもよい。
【0110】
また、テキスト化部4315は、音声データに基づいて、音声テキストを生成する。テキスト化部4315は、音声データにおいて、発声されている言葉や発せられた音を解析して、文章に変換する。つまり、テキスト化部4315は、人の声や、環境音などを文章に変換する。テキスト化部4315は、変換した文章を示す音声テキストをテキストデータとして、コンテンツxxxx10に関連付ける。
【0111】
短期記憶コンテンツ処理において生成された、オブジェクト画像、声紋、画像クラスタリング情報、音声クラスタリング情報、およびテキストデータは、コンテンツxxxx10が第1ストレージ32から第2ストレージ33に移動される際に、コンテンツxxxx10に追加されてもよい。あるいは、オブジェクト画像、声紋、画像クラスタリング情報、音声クラスタリング情報、およびテキストデータは、第1ストレージ32において、コンテンツxxxx10と共に格納されてもよい。
【0112】
次に、第1コンテンツ移動部432による短期記憶コンテンツ削除処理について説明する。前述した通り、短期記憶コンテンツ削除処理は、第1コンテンツ処理部431によるコンテンツの解析結果に基づいて、第1ストレージ32に格納されているコンテンツのうち、最も古いコンテンツを、第2ストレージ33に移動するか、あるいは第2ストレージ33に書き込むことなく削除する処理である。第1コンテンツ移動部432は、例えば、第1ストレージ32の空き記憶領域のサイズが閾値以下になったことに応じて、短期記憶コンテンツ削除処理を開始する。短期記憶コンテンツ削除処理において、第1コンテンツ移動部432は、第1ストレージ32に格納されている時間的に連続するコンテンツを比較する。
【0113】
第1コンテンツ移動部432は、第1ストレージ32に格納されているコンテンツのうち、最も古いコンテンツを第1対象コンテンツとして選択する。第1コンテンツ移動部432は、第1対象コンテンツと、第1対象コンテンツの次に古いコンテンツとが類似しているか否かを判定する。
【0114】
第1コンテンツ移動部432は、二つのコンテンツが類似しているか否か判定する際に、特徴データを使用する。第1コンテンツ移動部432は、例えば、二つのコンテンツそれぞれに含まれている、各コンテンツの特徴データに、共通していない特徴データがあるか否かを判定する。例えば、第1コンテンツ移動部432は、一方のコンテンツが、他方が有していない特徴データを有する場合には、これら二つのコンテンツが類似していないと判定する。
【0115】
第1対象コンテンツと、第1対象コンテンツの次に古いコンテンツとが類似している場合、第1コンテンツ移動部432は、第1対象コンテンツを第1ストレージ32から削除する。
【0116】
第1対象コンテンツと、第1対象コンテンツの次に古いコンテンツとが類似していない場合、第1コンテンツ移動部432は、第1対象コンテンツを第2ストレージ33に書き込む。そして、第1コンテンツ移動部432は、第1対象コンテンツを第2ストレージ33に書き込んだことに応じ、第1対象コンテンツを第1ストレージ32から削除する。
【0117】
つまり、第1対象コンテンツと、第1対象コンテンツの次に古いコンテンツとが類似しているかに関わらず、第1対象コンテンツは、第1ストレージ32から削除される。したがって、第1コンテンツ移動部432は短期記憶コンテンツ削除処理を実行することによって、第1ストレージ32の空き記憶領域のサイズを増加させることができる。
【0118】
図6に示した例を用いて、より具体的に説明する。
図6は、第1ストレージ32に格納されているコンテンツが比較される例を示す図である。まず、第1コンテンツ移動部432は、第1ストレージ32に格納されているコンテンツから、コンテンツxxxx10を第1対象コンテンツとして選択する。コンテンツxxxx10は、第1ストレージ32に格納されているコンテンツのうち、最も古いコンテンツである。第1コンテンツ移動部432は、第1ストレージ32に格納されているコンテンツのうち、メタデータに含まれる時刻が最も古い時刻を示すコンテンツを、第1対象コンテンツとして選択する。
【0119】
そして、第1コンテンツ移動部432は、第1ストレージ32に格納されているコンテンツのうち、時刻が二番目に古いコンテンツであるコンテンツxxxx11と、コンテンツxxxx10とが類似しているか否かを判定する。コンテンツxxxx10は、2022年12月19日9時15分00秒から2022年12月19日9時15分30秒の間に取得されたライフデータをパックしたコンテンツであり、コンテンツxxxx11は、2022年12月19日9時15分30秒から2022年12月19日9時16分00秒の間に取得されたライフデータをパックしたコンテンツである。そのため、コンテンツxxxx10と、コンテンツxxxx11とは、時間的に連続するコンテンツである。
【0120】
コンテンツxxxx10と、コンテンツxxxx11とが類似している場合、第1コンテンツ移動部432は、コンテンツxxxx10の冗長性が高いと判断する。この場合、第1コンテンツ移動部432は、コンテンツxxxx10を第1ストレージ32から削除する。
【0121】
また、コンテンツxxxx10と、コンテンツxxxx11とが類似していない場合、第1コンテンツ移動部432は、コンテンツxxxx10の冗長性が低いと判断する。この場合、第1コンテンツ移動部432は、コンテンツxxxx10を第2ストレージ33に書き込む。そして、第1コンテンツ移動部432は、第1ストレージ32に格納されているコンテンツxxxx10を削除する。
【0122】
第1対象コンテンツであるコンテンツxxxx10が削除された後にコンテンツが比較される場合、第1コンテンツ移動部432は、第1ストレージ32に格納されているコンテンツのうち、最も古いコンテンツであるコンテンツxxxx11を新たに第1対象コンテンツとして選択する。そして、上述した処理が同様に実行される。これにより、時間的に連続し、且つ類似する二つ以上のコンテンツが第1ストレージ32に格納されている場合、第1コンテンツ移動部432は、二つ以上のコンテンツのうち、古いコンテンツのみを第2ストレージ33に書き込む。第1コンテンツ移動部432は、短期記憶コンテンツ削除処理を、第1ストレージ32の空き記憶領域のサイズが閾値以下である間、繰り返し実行する。
【0123】
次に、短期記憶コンテンツ削除処理の手順について説明する。
図7は、ストレージシステム3において実行される、短期記憶コンテンツ削除処理の手順の例を示すフローチャートである。短期記憶コンテンツ削除処理は、第1ストレージ32に格納されているコンテンツを、第2ストレージ33に移動するか、あるいは第2ストレージ33に書き込むことなく削除する処理である。第1コンテンツ移動部432は、第1ストレージ32の新たにデータを格納可能な空き記憶領域のサイズが閾値以下である場合に、短期記憶コンテンツ削除処理を実行する。
【0124】
まず、第1コンテンツ移動部432は、第1ストレージ32に格納されているコンテンツのうち、最も古いコンテンツを、第1対象コンテンツとして選択する(S101)。第1コンテンツ移動部432は、例えば、最も古い時刻を示す時間情報を含むメタデータを有するコンテンツを、第1対象コンテンツとして選択する。
【0125】
第1コンテンツ移動部432は、S101で選択した第1対象コンテンツが解析済みであるか否かを判定する(S102)。例えば、第1対象コンテンツよりも古いコンテンツに対する短期記憶コンテンツ削除処理が実行済みであるケースでは、第1対象コンテンツに関連付けられている特徴データは、実行済みの短期記憶コンテンツ削除処理において第1対象コンテンツに対する解析が実行されたことから、取得済みである。また、例えば、短期記憶コンテンツ削除処理が初めて実行されるケースでは、第1対象コンテンツに対する解析が実行されておらず、第1対象コンテンツに関連付けられる特徴データは未取得である。
【0126】
第1対象コンテンツが未だ解析されていない場合(S102でNo)、第1コンテンツ処理部431は、第1対象コンテンツを解析する(S103)。具体的には、第1コンテンツ処理部431は、第1対象コンテンツの特徴データを取得する処理である短期記憶コンテンツ処理を実行する。これにより、第1コンテンツ処理部431は、第1対象コンテンツに対応するオブジェクト画像、声紋、テキストデータ、画像クラスタリング情報、および音声クラスタリング情報を含む特徴データを生成し、生成した特徴データを第1対象コンテンツに関連付ける。
【0127】
第1対象コンテンツが解析済みである場合(S102でYes)、あるいはS103の解析の完了後、第1コンテンツ処理部431は、第1ストレージ32に格納されているコンテンツのうち、第1対象コンテンツの次に古いコンテンツ(以下、比較コンテンツと称する)を解析する(S104)。具体的には、第1コンテンツ処理部431は、比較コンテンツの特徴データを取得する処理である短期記憶コンテンツ処理を実行する。これにより、第1コンテンツ処理部431は、比較コンテンツに対応するオブジェクト画像、声紋、テキストデータ、画像クラスタリング情報、および音声クラスタリング情報を含む特徴データを生成し、生成した特徴データを比較コンテンツに関連付ける。
【0128】
第1コンテンツ移動部432は、第1対象コンテンツと、比較コンテンツとが類似しているか否かを判定する(S105)。例えば、第1コンテンツ移動部432は、第1対象コンテンツに関連付けられている特徴データと、S104で解析した比較コンテンツに関連付けられている特徴データとを比較することによって、第1対象コンテンツと、比較コンテンツとが類似しているか否かを判定する。
【0129】
第1対象コンテンツと、比較コンテンツとが類似している場合(S105でYes)、第1コンテンツ移動部432は、S101で選択された第1対象コンテンツを第1ストレージ32から削除し(S106)、短期記憶コンテンツ削除処理を終了する。
【0130】
第1対象コンテンツと、比較コンテンツとが類似していない場合(S105でNo)、第1コンテンツ移動部432は、第1対象コンテンツを第2ストレージ33の書き込み先SLCブロックに格納する(S107)。そして、第1コンテンツ移動部432は、S101で選択された第1対象コンテンツを第1ストレージ32から削除し(S106)、短期記憶コンテンツ削除処理を終了する。
【0131】
このようにして、第1コンテンツ移動部432は、第1ストレージ32に格納されている一つ以上のコンテンツそれぞれを、第2ストレージ33に移動するか否かを判定することによって、ストレージシステム3に保存されているコンテンツを取捨選択できる。具体的には、時間的に連続しているコンテンツが類似している場合、古いコンテンツは、第2ストレージ33に書き込まれることなく削除される。また、時間的に連続しているコンテンツが類似していない場合、古いコンテンツは、第2ストレージ33に書き込まれるとともに削除される。そのため、時間的に連続しており、且つ類似しているコンテンツのグループのうち、第2ストレージ33に書き込まれるコンテンツは、最古の一つのコンテンツになる。また、第1ストレージ32のコンテンツは、第3ストレージ34には書き込まれない。これにより、本実施形態のストレージシステム3では、全てのコンテンツが無条件に不揮発性のメモリデバイスに保存される場合と比べて、冗長なコンテンツが第2ストレージ33および第3ストレージ34に保存されることを回避できる。したがって、第2ストレージ33および第3ストレージ34の記憶領域を有効に利用できる。
【0132】
次に、第2ストレージ33におけるコンテンツの格納について説明する。
図8は、第2ストレージ33内のブロックに格納されるコンテンツの構成例を示す図である。ここでは、第2ストレージ33内のSLCブロックSBLK0に、複数のコンテンツが格納されている場合を例示する。なお、第2ストレージ33内の他のSLCブロックも、同様にして複数のコンテンツを格納し得る。
【0133】
SLCブロックSBLK0に格納されているコンテンツ(ID:xxxx10、xxxx20、xxxx30、…)は、第1I/F31から受信されたライフデータ(すなわち、画像データ、音声データ、およびメタデータ)に加えて、短期記憶コンテンツ処理において生成された特徴データを含む。特徴データは、オブジェクト画像、声紋、画像クラスタリング情報、音声クラスタリング情報、およびテキストデータのうちの少なくとも一つを含む。テキストデータは、例えば、音声テキストを含む。
【0134】
SLCブロックに格納されているコンテンツは、固定長のデータサイズを有していてもよい。
【0135】
次に、第2ストレージ33内のSLCブロックから、第3ストレージ34内のMLCブロックへのコンテンツの移動について説明する。第2コンテンツ処理部433および第2コンテンツ移動部434は、(1)保存可能期間に基づいてコンテンツを移動する処理と、(2)第2ストレージ33内の空き記憶領域を示す指標に基づいてコンテンツを移動する処理とを行う。
【0136】
まず、
図9から
図11を参照して、
図8に示した、第2ストレージ33に格納されているコンテンツについて、(1)保存可能期間に基づいてコンテンツを移動する処理について説明する。
図9は、第2ストレージ33に格納されているコンテンツの保存可能期間の例を示すタイムチャートである。
【0137】
SLCブロックに格納されている各コンテンツには、個別に保存可能期間t_keep_totalが設定される。保存可能期間t_keep_totalの初期値は、標準の保存可能期間t_keepである。標準の保存可能期間t_keepは、例えば、設定情報312に基づいて決定される。第2コンテンツ処理部433は、コンテンツの保存時刻T_eventに保存可能期間t_keep_totalを加算することによって、保存期限T_limitを取得する。保存時刻T_eventは、対応するコンテンツが第2ストレージ33に保存された時刻である。保存期限T_limitは、対応するコンテンツが第2ストレージ33に保存可能な期限を示す時刻である。つまり、コンテンツは、現在の時刻T_currentが、そのコンテンツに対応する保存期限T_limitに達するまでの間、第2ストレージ33に格納されていてもよい。第2コンテンツ処理部433は、取得された保存期限T_limitと、現在の時刻T_currentとを比較する。現在の時刻T_currentが保存期限T_limitに達した場合に、第2コンテンツ処理部433は、保存可能期間t_keep_totalが満了したと判定し、対応するコンテンツを第2ストレージ33において無効化する。
【0138】
また、第2コンテンツ処理部433は、SLCブロックに格納されているコンテンツそれぞれが、一つ以上の延長条件のうちの少なくとも一つの条件を満たしているか否かを判定する。あるコンテンツが一つ以上の延長条件のうちの少なくとも一つの延長条件を満たしている場合、第2コンテンツ処理部433は、そのコンテンツに対応する保存可能期間t_keep_totalに、満たされた少なくとも一つの延長条件に対応する延長期間t_postponeを加算する。
【0139】
一つ以上の延長条件は、例えば、設定情報312で指定された情報(例えば、人、物、位置など)が、コンテンツのメタデータに含まれていること、コンテンツのメタデータに含まれている読み出し回数が閾値を超えていること、コンテンツのメタデータに含まれている重要フラグの値が1に設定されていること、コンテンツのメタデータが通常時と異なっていること、新たに第2ストレージ33に書き込まれたコンテンツに含まれるテキストデータと同じテキストデータを含んでいること、を含む。延長期間t_postponeは、例えば、延長条件ごとに異なる。なお、延長期間t_postponeは、一部または全ての延長条件で同一であってもよい。具体的には、第2コンテンツ処理部433は、例えば、メタデータに含まれるパラメータのいずれかが3σ以上のはずれ値である場合に、メタデータが通常時と異なっていると判定し、このメタデータを含むコンテンツが延長条件を満たすと判定する。σは、メタデータに含まれる任意のパラメータの正規分布における標準偏差である。また、あるコンテンツが二つ以上の延長条件を満たしている場合、第2コンテンツ処理部433は、満たされた二つ以上の延長条件にそれぞれに対応する二つ以上の延長期間t_postponeを、そのコンテンツの保存可能期間t_keep_totalに加算する。
【0140】
第2コンテンツ移動部434は、更新された保存可能期間t_keep_totalが、第1閾値である閾値t_longに達したか否かを判定する。閾値t_longは、コンテンツを、第3ストレージ34内のMLCブロックに移動するか否かを判定するための閾値である。閾値t_longは、例えば、標準の保存可能期間t_keepよりも長い。閾値t_longは、例えば、設定情報312に基づいて決定される。
【0141】
更新された保存可能期間t_keep_totalが閾値t_longに達した場合、第2コンテンツ移動部434は、対応するコンテンツを第3ストレージ34に移動する。具体的には、第2コンテンツ移動部434は、このコンテンツを第3ストレージ34に書き込んだ後、第2ストレージ33内のこのコンテンツを無効化する。
【0142】
更新された保存可能期間t_keep_totalが閾値t_longに達しておらず、且つ保存可能期間t_keep_totalが満了していない場合、第2コンテンツ移動部434は、対応するコンテンツを、第2ストレージ33内のSLCブロックに保存したままにする。
【0143】
図9では、SLCブロックに格納されているコンテンツxxxx10、xxxx20、およびxxxx30のそれぞれが無効化されるまでの時間経過が例示されている。ここでは、コンテンツxxxx10の保存時刻T_eventを、時刻T11とする。コンテンツxxxx20の保存時刻T_eventを、時刻T12とする。コンテンツxxxx30の保存時刻T_eventを、時刻T13とする。
【0144】
第2コンテンツ処理部433は、例えば、コンテンツxxxx10がSLCブロック(第2ストレージ33)に格納されたことに応じ、コンテンツxxxx10の保存可能期間t_keep_totalとして、標準の保存可能期間t_keepを設定する。
図9に示す例では、コンテンツxxxx10がいずれの延長条件も満たしていないので、第2コンテンツ処理部433は、コンテンツxxxx10の保存可能期間t_keep_totalを延長しない。また、
図9に示す例では、コンテンツxxxx10に対応する保存可能期間t_keep_totalが閾値t_longより短いので、第2コンテンツ処理部433は、コンテンツxxxx10をMLCブロック(第3ストレージ34)に移動しない。第2コンテンツ処理部433は、現在の時刻T_currentが、コンテンツxxxx10の保存期限T_limitに達したか否かを判定する。コンテンツxxxx10の保存期限T_limitは、コンテンツxxxx10の保存時刻T_event(=時刻T11)に、保存可能期間t_keep_total(ここでは、標準の保存可能期間t_keep)を加算して得られる時刻T14である。そして、第2コンテンツ処理部433は、現在の時刻T_currentが、コンテンツxxxx10の保存期限T_limitである時刻T14に達したことに応じて、SLCブロックに格納されているコンテンツxxxx10を無効化する。
【0145】
また、第2コンテンツ処理部433は、例えば、コンテンツxxxx20がSLCブロックに格納されたことに応じ、コンテンツxxxx20の保存可能期間t_keep_totalとして、標準の保存可能期間t_keepを設定する。第2コンテンツ処理部433は、コンテンツxxxx20が一つの延長条件を満たしたことに応じて、その延長条件に対応する延長期間t_postponeを保存可能期間t_keep_totalに加算する。これにより、コンテンツxxxx20に対応する保存可能期間t_keep_totalは、標準の保存可能期間t_keepと、その延長条件に対応する延長期間t_postponeとの和になる。
図9に示す例では、コンテンツxxxx20に対応する保存可能期間t_keep_totalが閾値t_longより短いので、第2コンテンツ処理部433は、コンテンツxxxx20をMLCブロックに移動しない。また、第2コンテンツ処理部433は、現在の時刻T_currentが、コンテンツxxxx20の保存期限T_limitに達したか否かを判定する。コンテンツxxxx20の保存期限T_limitは、コンテンツxxxx20の保存時刻T_event(=T12)に、保存可能期間t_keep_total(ここでは、標準の保存可能期間t_keep+延長期間t_postpone)を加算して得られる時刻T16である。第2コンテンツ処理部433は、現在の時刻T_currentが、コンテンツxxxx20の保存期限T_limitである時刻T16に達したことに応じて、SLCブロックに格納されているコンテンツxxxx20を無効化する。
【0146】
またさらに、第2コンテンツ処理部433は、例えば、コンテンツxxxx30がSLCブロックに格納されたことに応じ、コンテンツxxxx30の保存可能期間t_totalとして、標準の保存可能期間t_keepを設定する。第2コンテンツ処理部433は、コンテンツxxxx30が二つの延長条件を満たしたことに応じて、それら二つの延長条件にそれぞれ対応する二つの延長期間t_postponeを保存可能期間t_keep_totalに加算することにより、保存可能期間t_keep_totalを更新する。ここでは、二つの延長条件にそれぞれに対応する二つの延長期間t_postponeが同じ値であるものとする。この場合、コンテンツxxxx30に対応する保存可能期間t_keep_totalは、標準の保存可能期間t_keepと、延長期間t_postponeを二倍にした期間との和になる。これにより、コンテンツxxxx30の保存期限T_limitは、時刻T17になる。第2コンテンツ移動部434は、コンテンツxxxx30の保存可能期間t_keep_totalが更新されたことに応じ、更新された保存可能期間t_keep_totalが閾値t_longに達したか否かを判定する。
図9に示す例では、第2コンテンツ移動部434は、コンテンツxxxx30の保存可能期間t_keep_totalが閾値t_longに達したと判定された時刻T15(例えば、保存可能期間t_keep_totalが更新された時刻)において、コンテンツxxxx30をMLCブロックに書き込む。そして、第2コンテンツ移動部434は、SLCブロックに格納されているコンテンツxxxx30を無効化する。
【0147】
第2コンテンツ移動部434は、例えば、保存管理テーブル311を用いて、第2ストレージ33におけるコンテンツの保存を管理する。
図10は、保存管理テーブル311の構成例を示す。
【0148】
保存管理テーブル311は、複数のコンテンツにそれぞれ対応する複数のエントリを含む。複数のエントリのそれぞれは、例えば、対応するコンテンツがSLCブロック(第2ストレージ33)に格納されたことに応じて生成され、保存管理テーブル311に追加される。また、複数のエントリのそれぞれは、例えば、対応するコンテンツがSLCブロックにおいて無効化されたことに応じて、保存管理テーブル311から消去される。複数のエントリのそれぞれは、識別子(ID)フィールドと、保存可能期間フィールドと、保存期限フィールドと、ステータスフィールドとを含む。
【0149】
識別子(ID)フィールドは、対応するコンテンツのIDを示す。
【0150】
保存可能期間フィールドは、対応するコンテンツの保存可能期間t_keep_totalを示す。第2コンテンツ移動部434は、保存可能期間フィールドを参照して、対応するコンテンツの保存可能期間t_keep_totalが、コンテンツをMLCブロックに書き込む閾値t_long以上であるか否かを判定する。
【0151】
保存期限フィールドは、対応するコンテンツの保存期限T_limit(=保存時刻T_event+保存可能期間t_keep_total)を示す。第2コンテンツ移動部434は、保存期限フィールドを参照して、現在の時刻T_currentが保存期限T_limitに達したか否かを判定する。
【0152】
ステータスフィールドは、対応するコンテンツの状態を示す。対応するコンテンツの保存可能期間t_keep_totalが閾値t_long未満であり、且つ現在の時刻T_currentが保存期限T_limitに達している場合、ステータスフィールドには、例えば、そのコンテンツがSLCブロックにおいて無効化されることを示す「無効」が設定される。対応するコンテンツの保存可能期間t_keep_totalが閾値t_long未満であり、且つ現在の時刻T_currentが保存期限T_limitに達していない場合、ステータスフィールドには、例えば、そのコンテンツのSLCブロックへの保存を維持することを示す「存続」が設定される。対応するコンテンツの保存可能期間t_keep_totalが閾値t_long以上であり、且つ現在の時刻T_currentが保存期限T_limitに達していない場合、ステータスフィールドには、例えば、そのコンテンツがSLCブロックからMLCブロックに移動されることを示す「移動」が設定される。
【0153】
図10では、
図9を参照して前述したコンテンツxxxx10、xxxx20、およびxxxx30の保存を管理する場合の、時刻T15における保存管理テーブル311の状態が例示されている。
【0154】
まず、コンテンツxxxx10に対応するエントリについて説明する。
【0155】
コンテンツxxxx10に対応するエントリにおいて、IDフィールドは、コンテンツxxxx10のIDを示す。
【0156】
保存可能期間フィールドは、コンテンツxxxx10の保存可能期間t_keep_total_10を示す。第2コンテンツ移動部434は、保存可能期間t_keep_total_10が閾値t_long未満であると判定する。これは、コンテンツxxxx10の保存可能期間t_keep_total_10が延長されておらず、保存可能期間t_keep_total_10が標準の保存可能期間t_keepと等しいためである。
【0157】
保存期限フィールドは、コンテンツxxxx10の保存期限T_limit_10を示す。第2コンテンツ移動部434は、現在の時刻T_current(ここでは、時刻T15)が保存期限T_limit_10に達していると判定する。
【0158】
ステータスフィールドは、無効を示す。これは、時刻T15よりも前の時刻T14において、SLCブロックに格納されているコンテンツxxxx10が無効化されたためである。
【0159】
なお、ここでは、時刻T15に、コンテンツxxxx10に対応するエントリの情報が保存管理テーブル311に残っている場合について説明したが、コンテンツxxxx10に対応するエントリは、ステータスフィールドに無効が設定された後に、あるいは、SLCブロックにおいてコンテンツxxxx10が無効化された後に、保存管理テーブル311から消去されてもよい。
【0160】
次に、コンテンツxxxx20に対応するエントリについて説明する。
【0161】
コンテンツxxxx20に対応するエントリにおいて、IDフィールドは、コンテンツxxxx20のIDを示す。
【0162】
保存可能期間フィールドは、コンテンツxxxx20の保存可能期間t_keep_total_20を示す。第2コンテンツ移動部434は、保存可能期間t_keep_total_20が、閾値t_long未満であると判定する。これは、コンテンツxxxx20の保存可能期間t_keep_totalが一度延長されたものの、未だ閾値t_longに達していないためである。
【0163】
保存期限フィールドは、コンテンツxxxx20の保存期限T_limit_20を示す。第2コンテンツ移動部434は、現在の時刻T_current(ここでは、時刻T15)が保存期限T_limit_20に達していないと判定する。
【0164】
ステータスフィールドは、存続を示す。これは、時刻T15において、コンテンツxxxx20がSLCブロックから読み出すことができる有効な状態に維持されていることを示す。
【0165】
次に、コンテンツxxxx30に対応するエントリについて説明する。
【0166】
コンテンツxxxx30に対応するエントリにおいて、IDフィールドは、コンテンツxxxx30のIDを示す。
【0167】
保存可能期間フィールドは、コンテンツxxxx30の保存可能期間t_keep_total_30を示す。第2コンテンツ移動部434は、保存可能期間t_keep_total_30が閾値t_long以上であると判定する。これは、コンテンツxxxx30が二つの延長条件を満たしたことによって、コンテンツxxxx30の保存可能期間t_keep_totalが延長され、閾値t_longに達したためである。
【0168】
保存期限フィールドは、保存期限T_limit_30を示す。第2コンテンツ移動部434は、現在の時刻T_current(ここでは、時刻T15)が保存期限T_limit_30に達していないと判定する。
【0169】
ステータスフィールドは、移動を示す。これは、時刻T15において、コンテンツxxxx30がSLCブロックからMLCブロックに移動すべきコンテンツであると判定されたためである。
【0170】
なお、ここでは、時刻T15に、コンテンツxxxx30に対応するエントリの情報が保存管理テーブル311に残っている場合について説明したが、コンテンツxxxx30に対応するエントリは、コンテンツxxxx30がSLCブロックからMLCブロックに移動された後に、保存管理テーブル311から消去されてもよい。
【0171】
次に、中期記憶コンテンツ移動処理の手順について説明する。
図11は、ストレージシステム3において実行される中期記憶コンテンツ移動処理の手順の例を示すフローチャートである。中期記憶コンテンツ移動処理は、第2ストレージ33に格納されているコンテンツを第3ストレージ34に移動する処理である。第2コンテンツ処理部433および第2コンテンツ移動部434は、例えば、第2ストレージ33に新たなコンテンツが書き込まれたことに応じて中期記憶コンテンツ移動処理を実行する。あるいは、第2コンテンツ処理部433および第2コンテンツ移動部434は、定期的に第2ストレージ33に格納されているコンテンツを巡回して、中期記憶コンテンツ移動処理を実行してもよい。
【0172】
まず、第2コンテンツ処理部433は、第2ストレージ33内のSLCブロックに新たに書き込まれたコンテンツを第2対象コンテンツとして選択する(S201)。あるいは、第2コンテンツ処理部433は、前回の中期記憶コンテンツ移動処理以降、新たに第2ストレージ33に格納されているコンテンツから第2対象コンテンツを選択してもよい。
【0173】
第2コンテンツ処理部433は、設定情報312に含まれる標準の保存可能期間t_keepと第2対象コンテンツが第2ストレージ33に保存された時刻T_eventとに基づいて、第2対象コンテンツの保存可能期間t_keep_totalと保存期限T_limitとを設定する(S202)。具体的には、第2コンテンツ処理部433は、第2対象コンテンツの保存可能期間t_keep_totalとして、標準の保存可能期間t_keepを設定する。そして、第2コンテンツ処理部433は、第2対象コンテンツの保存期限T_limitとして、第2対象コンテンツが第2ストレージ33に保存された時刻T_eventに、第2対象コンテンツの保存可能期間t_keep_totalを加算した時刻を設定する。また、各コンテンツに対応する保存時刻T_eventは、例えば、そのコンテンツが初めて第2対象コンテンツとして選択されたときであってもよいし、そのコンテンツが第2ストレージ33に格納されるときに保存管理テーブル311に記録されていてもよい。
【0174】
第2コンテンツ処理部433は、第2対象コンテンツに未適用の延長条件があるか否かを判定する(S203)。つまり、第2コンテンツ処理部433は、第2対象コンテンツが、一つ以上の延長条件のうちの少なくとも一つの延長条件を新たに満たしているか否かを判定する。
【0175】
第2対象コンテンツに未適用の延長条件がある場合(S203でYes)、第2コンテンツ処理部433は、未適用の延長条件に対応する延長期間t_postponeを、第2対象コンテンツの保存可能期間t_keep_totalと保存期限T_limitのそれぞれに加算する(S204)。つまり、第2コンテンツ処理部433は、第2対象コンテンツの保存可能期間t_keep_totalに、未適用の延長条件に対応する延長期間t_postponeを加算する。また、第2コンテンツ処理部433は、第2対象コンテンツの保存期限T_limitに、未適用の延長条件に対応する延長期間t_postponeを加算する。
【0176】
そして、第2コンテンツ移動部434は、S204で更新された保存可能期間t_keep_totalが閾値t_long未満であるか否かを判定する(S205)。
【0177】
保存可能期間t_keep_totalが閾値t_long以上である場合(S205のNo)、第2コンテンツ移動部434は、第2対象コンテンツを第3ストレージ34の書き込み先MLCブロックに書き込む(S206)。この際、第2コンテンツ移動部434は、例えば、第2対象コンテンツに対応する保存管理テーブル311のエントリにおいて、ステータスフィールドに設定されている情報を移動に更新する。
【0178】
次いで、第2コンテンツ移動部434は、SLCブロックに格納されている第2対象コンテンツを無効化する(S207)。この際、第2コンテンツ移動部434は、例えば、第2対象コンテンツに対応する保存管理テーブル311のエントリにおいて、ステータスフィールドに設定されている情報を無効に更新する。
【0179】
また、保存可能期間t_keep_totalが閾値t_long未満である場合(S205でYes)、第2コンテンツ処理部433は、第2対象コンテンツにさらに未適用の延長条件があるか否かを再び判定する(S203)。なお、中期記憶コンテンツ移動処理が定期的に実行される場合には、第2コンテンツ処理部433は、保存可能期間t_keep_totalが閾値t_long未満である場合(S205でYes)、中期記憶コンテンツ移動処理を終了してもよい。
【0180】
第2対象コンテンツに未適用の延長条件がない場合(S203でNo)、第2コンテンツ処理部433は、現在の時刻T_currentが第2対象コンテンツの保存期限T_limitよりも前の時刻であるか否かを判定する(S208)。
【0181】
現在の時刻T_currentが保存期限T_limitよりも前の時刻である場合(S208でYes)、第2コンテンツ処理部433は、第2対象コンテンツに未適用の延長条件があるか否かを再び判定する(S203)。なお、中期記憶コンテンツ移動処理が定期的に実行される場合には、第2コンテンツ処理部433は、現在の時刻T_currentが保存期限T_limitよりも前の時刻である場合(S208でYes)、中期記憶コンテンツ移動処理を終了してもよい。
【0182】
現在の時刻T_currentが保存期限T_limit以降の時刻である場合(S208でNo)、第2コンテンツ処理部433は、SLCブロックに格納されている第2対象コンテンツを無効化する(S207)。その際、第2コンテンツ処理部433は、例えば、第2対象コンテンツに対応する保存管理テーブル311のエントリにおいて、ステータスフィールドに設定されている情報を無効に更新する。
【0183】
以上の中期記憶コンテンツ移動処理により、第2コンテンツ処理部433および第2コンテンツ移動部434は、保存可能期間に基づいて、コンテンツを第2ストレージ33(SLCブロック)から第3ストレージ34(MLCブロック)に移動できる。
【0184】
次に、(2)第2ストレージ33の空き記憶領域を示す指標に基づいてコンテンツを移動する処理について説明する。
図12は、コンテンツが第2ストレージ33から第3ストレージ34に移動される例を示す図である。
【0185】
第2コンテンツ移動部434は、第2ストレージ33内のデータを新たに格納可能な空き記憶領域を示す指標が第2閾値以下になったことに応じて、第2ストレージ33のアクティブブロックのうちの、データの書き込みが開始された時刻が最も古いブロック(SLCブロック)を選択する。このブロックは、例えば、第3ブロックと称される。第2ストレージ33内のデータを新たに格納可能な空き記憶領域を示す指標は、例えば、第2ストレージ33のデータを新たに格納可能な空き記憶領域のサイズ、またはSLC FBリスト314に登録されているフリーブロックの数である。第2コンテンツ移動部434は、第3ブロックに格納されている無効化されていない全てのコンテンツを第3ストレージ34に書き込む。つまり、第2コンテンツ移動部434は、第3ブロックに格納されているコンテンツのうち、有効なコンテンツのみを選択して、第3ストレージ34に書き込む。第3ブロック内の有効なコンテンツ全ての第3ストレージ34への書き込みが完了したことに応じ、第2コンテンツ移動部434は、第3ブロックにおいて、それら有効なコンテンツ全てを無効化する。これにより、第3ブロックは、有効なコンテンツを含まないフリーブロックになる。第2コンテンツ移動部434は、第3ブロックをSLC FBリスト314に登録する。
【0186】
図12では、第2ストレージ33が複数のSLCブロック0、1、2、…nを含む場合に、SLCブロック0、SLCブロック1、SLCブロック2、…の順番でデータの書き込みが開始された例が示されている。また、第3ストレージ34における書き込み先MLCブロックが、MLCブロック0であるものとする。
【0187】
第2コンテンツ移動部434は、SLC FBリスト314に登録されているフリーブロックの数が第2閾値以下になったことに応じて、第2ストレージ33に含まれるSLCブロック0、1、2、…nから、データの書き込みが開始された時刻が最も古いブロック(ここでは、SLCブロック0)を選択する。
【0188】
第2コンテンツ移動部434は、選択したSLCブロック0に格納されているコンテンツ11、15、17、22を、書き込み先MLCブロック0に書き込む。コンテンツ11、15、17、22は、SLCブロック0に格納されている有効なコンテンツ(すなわち、無効化されていないコンテンツ)である。SLCブロック0に格納された後に無効化されたコンテンツは、
図12に示されていない。SLCブロック0内の無効化されたコンテンツは、SLCブロック0から読み出されることが無いため、MLCブロック0には書き込まれない。
【0189】
SLCブロック0に格納されている全ての有効なコンテンツをMLCブロック0に書き込む動作が完了すると、第2コンテンツ移動部434は、SLCブロック0に格納されている有効なコンテンツ全てを無効化する。これにより、SLCブロック0は、有効なコンテンツを格納していないフリーブロックになる。そのため、CPU43は、SLCブロック0の、SLC ABリスト313への登録を解除する。そして、CPU43は、SLCブロック0を、SLC FBリスト314に登録する。
【0190】
したがって、第2コンテンツ移動部434は、第2ストレージ33の空き記憶領域を示す指標に基づいてコンテンツを移動する処理によりSLC FBリスト314に登録されているフリーブロックの数を増やすことができる。つまり、第2コンテンツ移動部434は、第2ストレージ33内のデータを新たに格納可能な空き記憶領域のサイズを増加させることができる。
【0191】
次に、第3コンテンツ処理部435によって、関連グラフ317が生成される場合について説明する。関連グラフ317は、第3ストレージ34に格納されているコンテンツ間の関連を示す。関連グラフ317が、第2コンテンツ処理部433によって保存可能期間t_keep_totalの延長条件の一つとして利用される場合に、第3コンテンツ処理部435は、関連グラフ317を生成する。第2コンテンツ処理部433は、第2ストレージ33に格納されているコンテンツが、関連グラフ317に新たな関連を追加するコンテンツである場合に、そのコンテンツの保存可能期間t_keep_totalを延長する。
図13は、ストレージシステム3における、(a)関連グラフ317に新たな関連を追加しないコンテンツと、(b)関連グラフ317に新たな関連を追加するコンテンツの例を示す図である。
【0192】
関連グラフ317は、第3ストレージ34に格納されている各コンテンツにそれぞれ含まれているオブジェクト画像およびテキストデータの関連を管理する。関連グラフ317における関連は、例えば、オブジェクト画像とテキストデータの関連、および二つのオブジェクト画像の関連を含む。例えば、第3ストレージ34に格納されている一つのコンテンツに、オブジェクト画像OBJ1と、テキスト1とが含まれている場合、オブジェクト画像OBJ1とテキスト1とが関連していることを示す情報が関連グラフ317に格納される。
【0193】
図13の(a)および(b)にそれぞれ示される関連グラフ317において、オブジェクト画像OBJ1は、テキスト1と、テキスト2と、テキスト3と、テキスト4と、テキスト6と、オブジェクト画像OBJ2と、オブジェクト画像OBJ3とに関連付けられている。オブジェクト画像OBJ2は、テキスト2と、テキスト5と、テキスト6と、テキスト7と、オブジェクト画像OBJ1とに関連付けられている。オブジェクト画像OBJ3は、テキスト6と、テキスト7と、テキスト8と、テキスト9と、オブジェクト画像OBJ1とに関連付けられている。
【0194】
図13の(a)に示すコンテンツxxxx35は、オブジェクト画像OBJ1と、オブジェクト画像OBJ2と、テキスト2と、テキスト6とを含む。コンテンツxxxx35は、関連グラフ317に対して、新たな関連を追加しないコンテンツである。具体的には、オブジェクト画像OBJ1とオブジェクト画像OBJ2との関連、オブジェクト画像OBJ1とテキスト2との関連、オブジェクト画像OBJ1とテキスト6との関連、オブジェクト画像OBJ2とテキスト2との関連、およびオブジェクト画像OBJ2とテキスト6との関連はいずれも、関連グラフ317に既に含まれている。したがって、コンテンツxxxx35は、関連グラフ317にいずれの関連も追加しないコンテンツである。つまり、コンテンツxxxx35が第2ストレージ33のSLCブロックから第3ストレージ34のMLCブロックに移動されたとしても、関連グラフ317に新たな関連が追加されることはない。
【0195】
図13の(b)に示すコンテンツxxxx40は、オブジェクト画像OBJ3と、テキスト8と、テキスト10とを含む。コンテンツxxxx40は、関連グラフ317に対して、新たな関連を追加するコンテンツである。具体的には、オブジェクト画像OBJ3とテキスト8との関連は関連グラフ317に既に含まれているが、オブジェクト画像OBJ3とテキスト10の関連は関連グラフ317に未だ含まれていない。したがって、コンテンツxxxx40は、関連グラフ317に対して、オブジェクト画像OBJ3とテキスト10の関連を新たに追加するコンテンツである。つまり、コンテンツxxxx40が第2ストレージ33のSLCブロックから第3ストレージ34に移動された場合、オブジェクト画像OBJ3とテキスト10との関連が関連グラフ317に新たに追加されることになる。
【0196】
第2コンテンツ処理部433は、第2ストレージ33に格納されているコンテンツが、関連グラフ317に新たな関連を追加するコンテンツであることを、関連グラフ317に関する延長条件として用いる。
図13に示す例では、第2コンテンツ処理部433は、関連グラフ317に関する延長条件を満たすコンテンツxxxx40の保存可能期間t_keep_totalに、この延長条件に対応する延長期間t_postponeを加算する。一方、第2コンテンツ処理部433は、関連グラフ317に関する延長条件を満たさないコンテンツxxxx35の保存可能期間t_keep_totalには、この延長条件に対応する延長期間t_postponeを加算しない。
【0197】
このように、保存可能期間t_keep_totalを延長する延長条件に、例えば、第3コンテンツ処理部435によって生成された関連グラフ317を利用することができる。
【0198】
以上説明したように、実施形態によれば、コントローラ4は、第2ストレージ33に格納されているコンテンツそれぞれに対応する保存可能期間t_keep_totalそれぞれを管理する。現在の時刻T_currentが一つのコンテンツに対応する保存期限T_limitに達した場合、コントローラ4は、そのコンテンツを無効化する。第2ストレージ33に格納されているあるコンテンツが一つ以上の延長条件のうちの少なくとも一つの延長条件を満たしている場合、コントローラ4は、満たされた延長条件に対応する延長期間t_postponeを、そのコンテンツに対応する保存可能期間t_keep_totalに加算する。保存可能期間t_keep_totalが第1閾値t_long以上である場合、コントローラ4は、その保存可能期間t_keep_totalに対応するコンテンツを、第3ストレージ34に書き込む。
【0199】
コントローラ4は、設定された延長条件を満たすコンテンツの保存可能期間t_keep_totalを延長する。そして保存可能期間t_keep_totalが第1閾値t_long以上に更新されたコンテンツを第3ストレージ34に移動することができる。そのため、コントローラ4は、重要なコンテンツによって満たされるような延長条件を設定することで、重要なコンテンツの保存可能期間t_keep_totalを優先的に延長することができる。これにより、コントローラ4は、重要なコンテンツを優先的に第3ストレージ34に移動することができる。
【0200】
また、コントローラ4は、不要なコンテンツの保存可能期間t_keep_totalが延長されにくいように延長条件を設定することもできる。これにより、コントローラ4は、不要なコンテンツによって、第2ストレージ33および第3ストレージ34の記憶領域が長い期間使用されることを避けることができる。
【0201】
また、第1ストレージ32に格納されているコンテンツのうち、最も古いコンテンツを第1対象コンテンツとして選択し、第1対象コンテンツと、第1ストレージ32に格納されているコンテンツのうち第1対象コンテンツの次に古いコンテンツである比較コンテンツとが類似しているか否かを判定する。第1対象コンテンツが比較コンテンツと類似している場合、コントローラ4は、第1対象コンテンツを消去する。また、第1対象コンテンツが比較コンテンツと類似していない場合、コントローラ4は、第1対象コンテンツを第2ストレージ33に書き込む。
【0202】
つまり、コントローラ4は、時間的に連続しており、且つ類似しているコンテンツのグループは、冗長性の高いコンテンツのグループであると判定し、最新のコンテンツ以外のコンテンツは消去する。
【0203】
これにより、コントローラ4は、冗長性の高いコンテンツによって、ストレージシステム3の第2ストレージ33および第3ストレージ34の記憶領域が使用されることを避けることができる。つまり、有限なリソースを有するストレージシステム3の記憶領域を有効に利用することができる。
【0204】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、更新を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0205】
(付記)
[1]条件は、第1条件、および第2条件を含み、
前記第1条件は、第1期間に対応し、
前記第2条件は、第2期間に対応し、
コントローラは、
第1データ部が前記第1条件を満たす場合には、第1保存可能期間に前記第1期間を加算し、
前記第1データ部が前記第2条件を満たす場合には、前記第1保存可能期間に前記第2期間を加算するように構成される、
ストレージシステム。
[2]少なくとも一つのデバイスから、画像データ、音声データ、およびメタデータの少なくとも一つを受信する第1インタフェースをさらに具備する、
ストレージシステム。
【符号の説明】
【0206】
1…情報処理システム、2…第1外部装置、3…ストレージシステム、4…コントローラ、5…第1バス、6…第2バス、7…第2外部装置、21…画像入力部、22…音声入力部、23…メタデータ入力部、30…内部バス、31…RAM、32…第1ストレージ、33…第2ストレージ、34…第3ストレージ、41…第1インタフェース、42…第2インタフェース、43…CPU、311…保存管理テーブル、312…設定情報、313…SLC ABリスト、314…SLC FBリスト、315…MLC ABリスト、316…MLC FBリスト、317…関連グラフ、431…第1コンテンツ処理部、432…第1コンテンツ移動部、433…第2コンテンツ処理部、434…第2コンテンツ移動部、435…第3コンテンツ処理部、4311…オブジェクト処理部、4312…画像クラスタリング部、4313…声紋分析部、4314…音声クラスタリング部、4315…テキスト化部。