(57)【要約】 【課題】少ない演算量で重複判定の精度を保証する。【解決手段】実施形態の情報記憶システムは、ホスト装置と情報記憶装置とを備える。情報記憶装置は、圧縮部と記憶部と第１のインタフェース部とを備える。圧縮部は、ホスト装置から入力されたデータを圧縮する。記憶部は、圧縮部により圧縮されたデータを示す圧縮データを記憶する。第１のインタフェース部は、ホスト装置から第１の書き込みデータが入力された場合、第１の書き込みデータを圧縮部で圧縮して得られる第２の書き込みデータをホスト装置へ送信し、ホスト装置から、第１の書き込みデータに対応するアドレス情報が入力された場合、アドレス情報に基づいて記憶部から読み出した圧縮データを示す読み出し圧縮データを、ホスト装置へ送信する。ホスト装置は、第２の書き込みデータと読み出し圧縮データとが一致する場合は、第１の書き込みデータは記憶済みであると判定する判定部を備える。【選択図】図１
2016207033.tif 000002
【特許請求の範囲】
【請求項１】
データの入出力を行うホスト装置と、前記ホスト装置に接続された情報記憶装置とを備える情報記憶システムであって、
前記情報記憶装置は、
前記ホスト装置から入力されたデータを圧縮する圧縮部と、
前記圧縮部により圧縮されたデータを示す圧縮データを記憶する記憶部と、
前記ホスト装置から、第１の書き込みデータが入力された場合、前記第１の書き込みデータを前記圧縮部で圧縮して得られる第２の書き込みデータを前記ホスト装置へ送信し、前記ホスト装置から、前記第１の書き込みデータに対応するアドレス情報が入力された場合、前記アドレス情報に基づいて前記記憶部から読み出した前記圧縮データを示す読み出し圧縮データを、前記ホスト装置へ送信する第１のインタフェース部と、を備え、
前記ホスト装置は、
前記第２の書き込みデータと前記読み出し圧縮データとが一致する場合は、前記第１の書き込みデータは記憶済みであると判定する判定部を備える、
情報記憶システム。
【請求項２】
前記判定部は、
前記第２の書き込みデータと前記読み出し圧縮データとが一致しない場合は、前記第１の書き込みデータは記憶済みではないと判定し、
前記第１の書き込みデータは記憶済みであると判定した場合は、前記情報記憶装置に対して、前記第２の書き込みデータの書き込みを指示せず、
前記第１の書き込みデータは記憶済みではないと判定した場合は、前記情報記憶装置に対して、前記第２の書き込みデータの書き込みを指示する、
請求項１の情報記憶システム。
【請求項３】
前記判定部は、前記第２の書き込みデータと前記読み出し圧縮データとを比較する前に、前記第２の書き込みデータのサイズと前記読み出し圧縮データのサイズとを比較し、前記第２の書き込みデータのサイズと前記読み出し圧縮データのサイズが一致する場合は、前記第２の書き込みデータと前記読み出し圧縮データとの比較を開始する一方、前記第２の書き込みデータのサイズと前記読み出し圧縮データのサイズが一致しない場合は、前記第２の書き込みデータと前記読み出し圧縮データとは一致しないと判定する、
請求項１の情報記憶システム。
【請求項４】
前記ホスト装置は、
前記第１の書き込みデータのハッシュ値を算出する算出部と、
ハッシュ値と前記アドレス情報とを対応付けた第１の対応情報を参照して、前記算出部により算出されたハッシュ値に対応付けられた前記アドレス情報を検索する検索部と、
前記第１の書き込みデータを前記情報記憶装置へ送信し、前記検索部により検索された前記アドレス情報を、前記第１の書き込みデータに対応する前記アドレス情報として前記情報記憶装置へ送信する第２のインタフェース部と、を備える、
請求項１の情報記憶システム。
【請求項５】
前記算出部は、前記第１の書き込みデータを分割して得られる複数の単位データごとにハッシュ値を算出し、
前記検索部は、前記算出部によって算出された、前記複数の単位データと１対１に対応する複数のハッシュ値ごとに、前記アドレス情報を検索し、
前記第２のインタフェース部は、前記検索部によって検索された、前記複数のハッシュ値と１対１に対応する複数の前記アドレス情報を前記情報記憶装置へ送信する、
請求項４の情報記憶システム。
【請求項６】
前記ホスト装置は、
前記第１の書き込みデータと、前記第１の書き込みデータに紐付く紐付情報と、前記第１の書き込みデータの書き込みを命令する情報とを含むユーザーデータの入力を受け付ける受付部をさらに備え、
前記第２のインタフェース部は、
前記受付部で受け付けた前記ユーザーデータに含まれる前記第１の書き込みデータを前記情報記憶装置へ送信し、
前記受付部で受け付けた前記ユーザーデータに含まれる前記第１の書き込みデータのハッシュ値に対応付けられた前記アドレス情報を、該第１の書き込みデータに対応する前記アドレス情報として前記情報記憶装置へ送信する、
請求項４の情報記憶システム。
【請求項７】
前記判定部は、前記受付部で受け付けた前記ユーザーデータに含まれる前記第１の書き込みデータは記憶済みであると判定した場合は、該第１の書き込みデータに対応する前記アドレス情報と、前記受付部で受け付けた前記ユーザーデータに含まれる前記紐付情報とを対応付けて、前記アドレス情報と前記紐付情報との対応関係を示す第２の対応情報を更新する、
請求項６の情報記憶システム。
【請求項８】
前記判定部は、前記受付部で受け付けた前記ユーザーデータに含まれる前記第１の書き込みデータは記憶済みではないと判定した場合は、該第１の書き込みデータのハッシュ値に対して、新たな前記アドレス情報を対応付けて前記第１の対応情報を更新する、
請求項６の情報記憶システム。
【請求項９】
前記判定部は、前記受付部で受け付けた前記ユーザーデータに含まれる前記第１の書き込みデータは記憶済みではないと判定した場合は、該第１の書き込みデータのハッシュ値に対して新たに対応付けた前記アドレス情報と、前記受け付け部で受け付けた前記ユーザーデータに含まれる前記紐付情報とを対応付けて、前記アドレス情報と前記紐付情報との対応関係を示す第２の対応情報を更新する、
請求項８の情報記憶システム。
【請求項１０】
前記アドレス情報は、論理アドレスを示す情報である、
請求項１の情報記憶システム。
【請求項１１】
データの入出力を行うホスト装置と、前記ホスト装置に接続された情報記憶装置とを備える情報記憶システムであって、
前記情報記憶装置は、
前記ホスト装置から入力されたデータを圧縮する圧縮部と、
前記圧縮部により圧縮されたデータを示す圧縮データを記憶する記憶部と、
前記ホスト装置から入力された第１の書き込みデータを、前記圧縮部で圧縮して得られる第２の書き込みデータと、前記ホスト装置から入力された、前記第１の書き込みデータに対応するアドレス情報に基づいて、前記記憶部から読み出した前記圧縮データを示す読み出し圧縮データと、を比較する比較部と、
前記比較部による比較の結果を示す比較結果情報を前記ホスト装置へ送信する第１のインタフェース部と、を備え、
前記ホスト装置は、
前記比較結果情報が、前記第２の書き込みデータと前記読み出し圧縮データとが一致することを示す場合は、前記第１の書き込みデータは記憶済みであると判定する判定部を備える、
情報記憶システム。
【請求項１２】
データの入出力を行い、かつ、第１の書き込みデータが記憶済みであるか否かを判定するホスト装置に接続された情報記憶装置であって、
前記ホスト装置から入力されたデータを圧縮する圧縮部と、
前記圧縮部により圧縮されたデータを示す圧縮データを記憶する記憶部と、
前記ホスト装置から前記第１の書き込みデータが入力された場合、前記第１の書き込みデータを前記圧縮部で圧縮して得られる第２の書き込みデータを前記ホスト装置へ送信し、前記ホスト装置から、前記第１の書き込みデータに対応するアドレス情報が入力された場合、前記アドレス情報に基づいて前記記憶部から読み出した前記圧縮データを示す読み出し圧縮データを、前記ホスト装置へ送信する第１のインタフェース部と、を備える、
情報記憶装置。
【請求項１３】
データの入出力を行い、かつ、第１の書き込みデータが記憶済みであるか否かを判定するホスト装置に接続された情報記憶装置であって、
前記ホスト装置から入力されたデータを圧縮する圧縮部と、
前記圧縮部により圧縮されたデータを示す圧縮データを記憶する記憶部と、
前記ホスト装置から入力された第１の書き込みデータを前記圧縮部で圧縮して得られる第２の書き込みデータと、前記ホスト装置から入力された、前記第１の書き込みデータに対応するアドレス情報に基づいて、前記記憶部から読み出した前記圧縮データを示す読み出し圧縮データと、を比較する比較部と、
前記比較部による比較の結果を示す比較結果情報を前記ホスト装置へ送信する第１のインタフェース部と、を備える、
情報記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報記憶システムおよび情報記憶装置に関する。
【背景技術】
【０００２】
例えばＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）などの情報記憶装は、ユーザーから与えられたデータを記憶しておき必要な時に読み出しを行う機能を、基本的な機能として有している。近年、重複排除（De-duplication）や圧縮技術により、情報記憶装置に記録するデータ量を削減し、記憶容量を等価的に増大させる技術が提案されている。
【０００３】
例えば記録しようとするデータ（書き込み対象のデータ）に対してハッシュ値のような署名データを情報記憶装置側で計算し、その計算結果を、情報記憶装置に対するデータの書き込みまたは読み出しを要求する制御を行う制御プロセッサ（ホスト装置）側に返し、制御プロセッサ側が、情報記憶装置側から受け取った書き込み対象のデータの署名データと、既に情報記憶装置に記録済みのデータの署名データとを比較することで重複判定を行う技術などが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１７９０９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、データを縮退させたハッシュ値等の署名データ同士を比較することで重複判定を行うため、署名データ同士が一致していても、署名データの元となるデータ同士が完全に一致している保証は無い。すなわち、重複判定の精度を保証することができないという問題がある。そこで、重複判定の精度を保証するために、例えば署名データ同士だけでなく、その元になるデータ同士も比較して重複判定を行う方法も考えられるが、この方法では、演算量が多くなってしまうという問題がある。
【課題を解決するための手段】
【０００６】
実施形態の情報記憶システムは、ホスト装置と情報記憶装置とを備える。情報記憶装置は、圧縮部と記憶部と第１のインタフェース部とを備える。圧縮部は、ホスト装置から入力されたデータを圧縮する。記憶部は、圧縮部により圧縮されたデータを示す圧縮データを記憶する。第１のインタフェース部は、ホスト装置から第１の書き込みデータが入力された場合、第１の書き込みデータを圧縮部で圧縮して得られる第２の書き込みデータをホスト装置へ送信し、ホスト装置から、第１の書き込みデータに対応するアドレス情報が入力された場合、アドレス情報に基づいて記憶部から読み出した圧縮データを示す読み出し圧縮データを、ホスト装置へ送信する。ホスト装置は、第２の書き込みデータと読み出し圧縮データとが一致する場合は、第１の書き込みデータは記憶済みであると判定する判定部を備える。
【図面の簡単な説明】
【０００７】
【図１】実施形態の情報記憶システムの構成の一例を示す図。
【図２】実施形態の情報記憶システムが有する機能の一例を示す図。
【図３】実施形態の第１の対応情報の一例を示す図。
【図４】変形例の第１の対応情報を説明するための図。
【図５】実施形態の第２の対応情報の一例を示す図。
【図６】実施形態の情報記憶システムの動作例を示すフローチャート。
【図７】変形例の情報記憶システムが有する機能の一例を示す図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照しながら、実施形態に係る情報記憶システムおよび情報記憶装置の実施形態を詳細に説明する。
【０００９】
図１は、本実施形態の情報記憶システム１のハードウェア構成の一例を示す図である。本実施形態の情報記憶システム１は、ユーザーから示された特定のアドレスやキーなどの紐付情報に紐付けられたデータを記憶しておき、その後、ユーザーが紐付情報を再提示することにより、その紐付情報に紐付けられたデータを読み出してユーザーに提示するといった機能を提供することができる。さらに、紐付情報は異なるものの過去に書き込んだデータと全く同一のデータの書き込みが要求された場合においては、データそのものを記憶するのではなく、紐付情報とデータとの関係性（後述するように、本実施形態では紐付情報と論理アドレスとの対応関係）を記憶することにより、記憶するデータ量を削減することを可能とする。
【００１０】
図１に示すように、情報記憶システム１は、データの入出力を行うホスト装置１０と、ホスト装置１０に接続された情報記憶装置２０と、を少なくとも備える。図１に示すように、ホスト装置１０は、データ処理部１１と、ストレージＩ／Ｆ１２と、を有する。
【００１１】
データ処理部１１は、書き込み対象のデータを示す第１の書き込みデータと、該第１の書き込みデータに紐付く紐付情報と、該第１の書き込みデータの書き込みを命令する情報とを含むユーザーデータの入力を受け付けると、その受け付けたユーザーデータを処理する。ここでは、データ処理部１１は、入力されたユーザーデータに含まれる第１の書き込みデータが記憶済みであるか否かを判定する判定部１１０を有する。ここでは、データ処理部１１は、ＣＰＵと記憶装置（ＲＯＭ、ＲＡＭ等）を少なくとも含んで構成される。データ処理部１１が有する各種の機能は、ＣＰＵが記憶装置等に格納されたプログラムを実行することにより実現されるが、これに限らず、例えばデータ処理部１１が有する各種の機能のうちの少なくとも一部が専用のハードウェア回路で実現されてもよい。
【００１２】
ストレージＩ／Ｆ１２は、情報記憶装置２０との間でデータの送受信を行うためのインタフェース装置である。
【００１３】
また、図１に示すように、情報記憶装置２０は、データを記憶する記憶部２１と、ホスト装置１０からの要求に応じて、記憶部２１に対するデータの書き込み、または、記憶部２１からのデータの読み出しを行うコントローラ２２と、を備える。コントローラ２２は、各種の機能を実現するための集積回路で構成される。図１に示すように、コントローラ２２は、ホストＩ／Ｆ２３と、圧縮部２０２と、書き込み制御部２０８と、読み出し制御部２０５とを備える。
【００１４】
ホストＩ／Ｆ２３は、ホスト装置１０との間でデータの送受信を行うためのインタフェース装置である。圧縮部２０２は、ホスト装置から入力されたデータを圧縮する。以下の説明では圧縮部２０２により圧縮されたデータを「圧縮データ」と称する場合がある。書き込み制御部２４は、記憶部２１に対するデータ（圧縮データ）の書き込みを制御する。読み出し制御部２０５は、記憶部２１からのデータの読み出しを制御する。
【００１５】
図２は、本実施形態の情報記憶システム１が有する機能の一例を示す図である。説明の便宜上、図２では、本実施形態に係る機能を主に例示しているが、ホスト装置１０および情報記憶装置２０の各々が有する機能は、これに限られるものではない。
【００１６】
まず、ホスト装置１０が有する機能について説明する。図２に示すように、ホスト装置１０は、受付部１０１と、第２のインタフェース部１２０と、算出部１０４と、検索部１０５と、第１の対応情報記憶部１０６と、判定部１１０と、を有する。
【００１７】
受付部１０１は、ユーザーデータの入力を受け付ける。この例では、受付部１０１の機能は、データ処理部１１により実現される。
【００１８】
第２のインタフェース部１２０は、第３の送信部１０２と、第１の取得部１０３と、第４の送信部１０７と、第２の取得部１０８と、を含む。この例では、第２のインタフェース部１２０の機能は、ストレージＩ／Ｆ１２により実現される。第２のインタフェース部１２０に含まれる第３の送信部１０２は、第１の書き込みデータを情報記憶装置２０へ送信する。より具体的には、第３の送信部１０２は、受付部１０１で受け付けたユーザーデータに含まれる第１の書き込みデータ（書き込み対象のデータ）を情報記憶装置２０へ送信する。本実施形態では、第３の送信部１０２は、受付部１０１で受け付けたユーザーデータに含まれる第１の書き込みデータの圧縮を要求する第１の要求を、情報記憶装置２０へ送信する。この第１の要求は、受付部１０１で受け付けたユーザーデータに含まれる第１の書き込みデータを少なくとも含んでいる。
【００１９】
第２のインタフェース部１２０に含まれる第１の取得部１０３は、情報記憶装置２０から第２の書き込みデータを取得する。より具体的には、第１の取得部１０３は、前述の第１の要求に対する応答として、第１の書き込みデータを圧縮して得られる第２の書き込みデータと、該第２の書き込みデータのサイズを示す第１のサイズ情報とを含む第１の応答データを情報記憶装置２０から取得する。ただし、これに限らず、例えば前述の第１の要求に対する応答として、第２の書き込みデータと、該第２の書き込みデータのサイズを示す第１のサイズ情報とを別々に情報記憶装置２０から取得する形態であってもよいし、第２の書き込みデータのみを情報記憶装置２０から取得する形態であってもよい。第２のインタフェース部１２０に含まれる第４の送信部１０７および第２の取得部１０８の各々の機能については後述する。
【００２０】
算出部１０４は、第１の書き込みデータのハッシュ値を算出する。より具体的には、算出部１０４は、受付部１０１でユーザーデータを受け付けた場合、その受け付けたユーザーデータに含まれる第１の書き込みデータのハッシュ値を算出する。本実施形態では、算出部１０４は、第１の書き込みデータを分割して得られる複数の単位データごとにハッシュ値を算出する。例えば算出部１０４は、第１の書き込みデータを、クラスタと呼ばれる４ＫＢｙｔｅ単位のデータ（単位データ）に分割し、複数の単位データの各々のハッシュ値を算出することもできる。なお、単位データの長さは、固定長であってもよいし、可変に設定する形態であってもよい。この例では、算出部１０４の機能は、データ処理部１１により実現される。
【００２１】
検索部１０５は、ハッシュ値とアドレス情報とを対応付けた第１の対応情報を参照して、算出部１０４により算出されたハッシュ値に対応付けられたアドレス情報を検索する。本実施形態では、検索部１０５は、算出部１０４によって算出された複数のハッシュ値（第１の書き込みデータを分割して得られた複数の単位データと１対１に対応する複数のハッシュ値）ごとに、該ハッシュ値に対応付けられたアドレス情報を検索する。この例では、アドレス情報は、ホスト装置１０上のプログラムが利用する仮想空間に含まれる複数の領域のうちの何れかを識別する論理アドレス（仮想アドレス）を示す情報である。この例では、検索部１０５の機能は、データ処理部１１により実現される。
【００２２】
第１の対応情報記憶部１０６は前述の第１の対応情報を記憶する。図３は、前述の第１の対応情報の一例を示す図である。なお、例えば第１の対応情報は、同一のハッシュ値に対して、過去に割り当てられた論理アドレスを全て対応付けた情報であってもよい。ハッシュ値に対する論理アドレスの割り当てについては後述するが、例えば「ＡＡＡＡ」を示すハッシュ値に対する論理アドレスの割り当てが過去ｎ回（ｎ≧２）だけ行われている場合は、図４に示すように、「ＡＡＡＡ」を示すハッシュ値に対して、それぞれが過去において該ハッシュ値に割り当てられた論理アドレスを示すｎ個の論理アドレスが対応付けられる形態であってもよい。要するに、第１の対応情報は、ハッシュ値とアドレス情報との対応関係を示す情報であればよく、その形態は任意である。この例では、第１の対応情報記憶部１０６は、ホスト装置内の記憶装置により実現される。
【００２３】
図２に戻って説明を続ける。第２のインタフェース部１２０に含まれる第４の送信部１０７は、検索部１０５により検索されたアドレス情報を、第１の書き込みデータに対応するアドレス情報として情報記憶装置２０へ送信する。要するに、本実施形態の第２のインタフェース部１２０（第３の送信部１０２および第４の送信部１０７）は、第１の書き込みデータを情報記憶装置２０へ送信し、検索部１０５により検索されたアドレス情報を、第１の書き込みデータに対応するアドレス情報として情報記憶装置２０へ送信する機能を有している。
【００２４】
より具体的には、第４の送信部１０７は、検索部１０５によって検索された、複数のハッシュ値（受付部１０１で受け付けたユーザーデータに含まれる第１の書き込みデータを分割して得られる複数の単位データと１対１に対応する複数のハッシュ値）と１対１に対応する複数のアドレス情報を情報記憶装置２０へ送信する。つまり、第４の送信部１０７は、受付部１０１で受け付けたユーザーデータに含まれる第１の書き込みデータのハッシュ値に対応付けられたアドレス情報を、該第１の書き込みデータに対応するアドレス情報として情報記憶装置２０へ送信する機能を有している。
【００２５】
本実施形態では、第４の送信部１０７は、検索部１０５により検索された複数の論理アドレスを情報記憶装置２０へ送信する。より具体的には、第４の送信部１０７は、検索部１０５により検索された複数の論理アドレスごとに、該論理アドレスに基づくデータ（圧縮データ）の読み出しを要求する第２の要求を、情報記憶装置２０へ送信する。複数の論理アドレスと１対１に対応する複数の第２の要求の各々は、対応する論理アドレスを少なくとも含んでいる。
【００２６】
また、ここでは、前述の第２の要求に従って記憶部２１から読み出されたデータ（圧縮データ）を、「読み出し圧縮データ」と称する。第２のインタフェース部１２０に含まれる第２の取得部１０８は、情報記憶装置２０から読み出し圧縮データを取得する。本実施形態では、第２の取得部１０８は、前述の第２の要求に対する応答として、読み出し圧縮データと、該読み出し圧縮データのサイズを示す第２のサイズ情報とを含む第２の応答データを、情報記憶装置２０から取得する。ただし、これに限らず、例えば前述の第２の要求に対する応答として、読み出し圧縮データと、該読み出し圧縮データのサイズを示す第２のサイズ情報とを別々に情報記憶装置２０から取得する形態であってもよいし、読み出し圧縮データのみを取得する形態であってもよい。
【００２７】
判定部１１０は、第２の書き込みデータと読み出し圧縮データとが一致する場合は、第１の書き込みデータ（該第２の書き込みデータの元になる第１の書き込みデータ、つまり、受付部１０１で受け付けたユーザーデータに含まれる第１の書き込みデータ）は記憶済みである（重複データである）と判定する。本実施形態では、判定部１１０は、検索部１０５によって検索された複数のアドレス情報と１対１に対応する複数の読み出し圧縮データごとに、該読み出し圧縮データと第２の書き込みデータとが一致するか否かを判定する。より具体的には、判定部１１０は、第２の取得部１０８により取得された複数の第２の応答データ（検索部１０５により検索された複数の論理アドレスと１対１に対応（前述の複数の第２の要求と１対１に対応）する複数の第２の応答データ）の各々に含まれる読み出し圧縮データごとに、該読み出し圧縮データと、第１の取得部１０３により取得された第１の応答データに含まれる第２の書き込みデータとが一致するか否かを判定する。
【００２８】
判定部１１０は、第１の書き込みデータは記憶済みであると判定した場合は、情報記憶装置２０に対して、第２の書き込みデータの書き込みを指示しない。本実施形態では、判定部１１０は、第１の書き込みデータは記憶済みであると判定した場合は、該第１の書き込みデータに対応するアドレス情報（この例では、該第１の書き込みデータのハッシュ値に対応付けられた論理アドレス）と、受付部１０１で受け付けたユーザーデータに含まれる紐付情報（該第１の書き込みデータに紐付く紐付情報）とを対応付けて、アドレス情報と紐付情報との対応関係を示す第２の対応情報を更新する。図５は、第２の対応情報の一例を示す図である。この例では、第２の対応情報は、特定のアドレスやキーなどの紐付情報と、論理アドレスとの対応関係を示す情報である。紐付情報は、ユーザー側が認識している情報識別子であると捉えることもできる。第２の対応情報は、図２に示す第２の対応情報記憶部１１１に記憶される。
【００２９】
一方、判定部１１０は、第２の書き込みデータと読み出し圧縮データとが一致しない場合は、第１の書き込みデータは記憶済みではないと判定する。判定部１１０は、第１の書き込みデータは記憶済みではないと判定した場合は、情報記憶装置２０に対して、第２の書き込みデータの書き込みを指示する。この例では、判定部１１０は、第１の書き込みデータは記憶済みではないと判定した場合は、情報記憶装置２０に対して第２の書き込みデータの書き込みを指示する書き込み指示情報を情報記憶装置２０へ送信する。
【００３０】
また、判定部１１０は、第１の書き込みデータは記憶済みではないと判定した場合は、該第１の書き込みデータのハッシュ値に対して、新たなアドレス情報を対応付けて（新たな論理アドレスを割り当てて）第１の対応情報を更新する。なお、この例では、前述の書き込み指示情報は、書き込み対象の第２の書き込みデータの元となる第１の書き込みデータのハッシュ値に対して新たに割り当てた論理アドレス（書き込み対象の第２の書き込みデータに対して新たに割り当てた論理アドレスであると考えることもできる）を少なくとも含んでいる。
【００３１】
さらに、判定部１１０は、第１の書き込みデータは記憶済みではないと判定した場合は、該第１の書き込みデータのハッシュ値に対して新たに対応付けたアドレス情報と、受付部１０１で受け付けたユーザーデータに含まれる紐付情報（該第１の書き込みデータに紐付く紐付情報）とを対応付けて、前述の第２の対応情報を更新する。
【００３２】
なお、本実施形態では、判定部１１０は、第２の書き込みデータと読み出し圧縮データとを比較する前に、第２の書き込みデータのサイズと読み出し圧縮データのサイズとを比較する。判定部１１０は、第２の書き込みデータのサイズと読み出し圧縮データのサイズが一致する場合は、第２の書き込みデータと読み出し圧縮データとの比較を開始する一方、第２の書き込みデータのサイズと読み出し圧縮データのサイズが一致しない場合は、第２の書き込みデータと読み出し圧縮データとは一致しないと判定する（つまり、該第２の書き込みデータの元になる第１の書き込みデータは記憶済みではないと判定する）。
【００３３】
この例では、判定部１１０は、第２の取得部１０８により取得された前述の第２の応答データに含まれる第２のサイズ情報が示すサイズと、第１の取得部１０３により取得された前述の第１の応答データに含まれる第１のサイズ情報が示すサイズとを比較する。サイズが一致する場合は、該第２の応答データに含まれる読み出し圧縮データと、該第１の応答データに含まれる第２の書き込みデータとの比較を開始し、両者が一致するか否かを判定する。一方、サイズが一致しない場合は、該第２の応答データに含まれる読み出し圧縮データと、該第１の応答データに含まれる第２の書き込みデータとは一致しないと判定する。なお、この例では、以上に説明した判定部１１０の機能は、データ処理部１１により実現される。
【００３４】
次に、情報記憶装置２０が有する機能について説明する。図２に示すように、情報記憶装置２０は、第１のインタフェース部２２０と、圧縮部２０２と、読み出し制御部２０５と、書き込み制御部２０８と、を有する。
【００３５】
第１のインタフェース部２２０は、第１の要求取得部２０１と、第１の送信部２０３と、第２の要求取得部２０４と、第２の送信部２０６と、書き込み指示情報取得部２０７と、を含む。この例では、第１のインタフェース部２２０の機能は、ホストＩ／Ｆ２３により実現される。ホストＩ／Ｆ２３は、例えばＳＡＴＡ(Serial  ATA)、ＳＡＳ(Serial  Attached  SCSI)、Ｅｔｈｅｒｎｅｔなどで構成され得る。第１の要求取得部２０１は、ホスト装置１０から前述の第１の要求を取得する。第１のインタフェース部２２０に含まれる第１の送信部２０３、第２の要求取得部２０４、第２の送信部２０６、および、書き込み指示情報取得部２０７の各々の機能については後述する。
【００３６】
圧縮部２０２は、ホスト装置１０から入力されたデータを圧縮する。本実施形態では、圧縮部２０２は、第１の要求取得部２０１により第１の要求が取得された場合、該第１の要求に従って、該第１の要求に含まれる第１の書き込みデータを圧縮して第２の書き込みデータを生成する。そして、第１の送信部２０３に対して、生成した第２の書き込みデータの送信を依頼するとともに、その生成した第２の書き込みデータを書き込み制御部２０８へ供給する。
【００３７】
第１のインタフェース部２２０に含まれる第１の送信部２０３は、圧縮部２０２からの依頼に従って、第２の書き込みデータをホスト装置１０へ送信する。つまり、第１の送信部２０３は、ホスト装置１０から、書き込み対象のデータを示す第１の書き込みデータが入力された場合、第１の書き込みデータを圧縮部２０２で圧縮して得られる第２の書き込みデータをホスト装置１０へ送信する。本実施形態では、第１の送信部２０３は、第２の書き込みデータと、該第２の書き込みデータのサイズを示す第１のサイズ情報とを含む第１の応答データをホスト装置１０へ送信するが、これに限らず、例えば第１の送信部２０３は、第２の書き込みデータを含み、かつ、該第２の書き込みデータのサイズを示す第１のサイズ情報を含まない第１の応答データをホスト装置１０へ送信する形態であってもよい。
【００３８】
第１のインタフェース部２２０に含まれる第２の要求取得部２０４は、ホスト装置２０から前述の第２の要求を取得する。第１のインタフェース部２２０に含まれる第２の送信部２０６および書き込み指示情報取得部２０７の各々の機能については後述する。
【００３９】
読み出し制御部２０５は、第２の要求取得部２０４により第２の要求が取得された場合、該第２の要求に従って、記憶部２１に記憶された圧縮データを読み出す。ここでは、情報記憶装置２０の記憶部２１は、論理アドレスと、記憶部２１の物理アドレスとの対応関係を示す論物変換テーブル２３０を有している。ただし、論物変換テーブル２３０の格納先は任意であり、例えば論物変換テーブル２３０が記憶部２１以外のメモリに記憶される形態であってもよい。読み出し制御部２０５は、記憶部２１に記憶された論物変換テーブル２３０を読み出し、読み出した論物変換テーブル２３０を参照して、第２の要求取得部２０４により取得された第２の要求に含まれる論理アドレスに対応する物理アドレスを特定する。そして、読み出し制御部２０５は、記憶部２１のうち、その特定した物理アドレスが示す位置に記憶された圧縮データを、読み出し圧縮データとして読み出し、第１の送信部２０３に対して該読み出し圧縮データの送信を依頼する。
【００４０】
第１のインタフェース部２２０に含まれる第２の送信部２０６は、読み出し制御部２０５からの依頼に従って、読み出し圧縮データをホスト装置１０へ送信する。つまり、第２の送信部２０６は、ホスト装置１０から、第１の書き込みデータに対応するアドレス情報（この例では論理アドレス）が入力された場合、該アドレス情報に基づいて記憶部２１から読み出した圧縮データを示す読み出し圧縮データを、ホスト装置１０へ送信する。要するに、本実施形態の第１のインタフェース部２２０（第１の送信部２０３および第２の送信部２０６）は、ホスト装置１０から、書き込み対象のデータを示す第１の書き込みデータが入力された場合、第１の書き込みデータを圧縮部２０２で圧縮して得られる第２の書き込みデータをホスト装置１０へ送信し、ホスト装置１０から、第１の書き込みデータに対応するアドレス情報（この例では論理アドレス）が入力された場合、該アドレス情報に基づいて記憶部２１から読み出した圧縮データを示す読み出し圧縮データを、ホスト装置１０へ送信する機能を有している。
【００４１】
本実施形態では、第２の送信部２０６は、読み出し圧縮データと、該読み出し圧縮データのサイズを示す第２のサイズ情報とを含む第２の応答データをホスト装置１０へ送信するが、これに限らず、例えば第２の送信部２０６は、読み出し圧縮データを含み、かつ、該読み出し圧縮データのサイズを示す第２のサイズ情報を含まない第２の応答データをホスト装置１０へ送信する形態であってもよい。
【００４２】
第１のインタフェース部２２０に含まれる書き込み指示情報取得部２０７は、ホスト装置１０から前述の書き込み指示情報を取得する。
【００４３】
書き込み制御部２０８は、書き込み指示情報取得部２０７により書き込み指示情報が取得された場合、該書き込み指示情報に従って、第２の書き込みデータを記憶部２１に書き込む。より具体的には、書き込み制御部２０８は、圧縮部２０２から供給された第２の書き込みデータを記憶部２１の空き領域に書き込む。そして、記憶部２１のうち該第２の書き込みデータを書き込んだ位置を示す物理アドレスと、書き込み指示情報に含まれる論理アドレスとを対応付けて前述の論物変換テーブル２３０を更新する。
【００４４】
図６は、本実施形態の情報記憶システム１の動作例を示すフローチャートである。まず、ホスト装置１０（受付部１０１）は、ユーザーデータの入力を受け付ける（ステップＳ１）。次に、ホスト装置１０（第３の送信部１０２）は、ステップＳ１で受け付けたユーザーデータに含まれる第１の書き込みデータの圧縮を要求する前述の第１の要求を情報記憶装置２０へ送信する（ステップＳ２）。情報記憶装置２０（圧縮部２０２）は、ホスト装置１０からの第１の要求に従って、該第１の要求に含まれる第１の書き込みデータを圧縮して第２の書き込みデータを生成する。そして、情報記憶装置２０（第１の送信部２０３）は、第１の要求に対する応答として、生成した第２の書き込みデータと、該第２の書き込みデータのサイズを示す第１のサイズ情報とを含む前述の第１の応答データをホスト装置１０へ送信する（ステップＳ３）。以上の各ステップの具体的な内容は上述したとおりである。
【００４５】
また、ホスト装置１０（算出部１０４）は、ステップＳ１で受け付けたユーザーデータに含まれる第１の書き込みデータのハッシュ値を算出する（ステップＳ４）。次に、ホスト装置１０（検索部１０５）は、前述の第１の対応情報を参照して、ステップＳ４で算出したハッシュ値に対応付けられた論理アドレスを検索する（ステップＳ５）。次に、ホスト装置１０（第４の送信部１０７）は、ステップＳ５で検索した論理アドレスに基づくデータの読み出しを要求する前述の第２の要求を情報記憶装置２０へ送信する（ステップＳ６）。情報記憶装置２０（読み出し制御部２０５）は、ホスト装置１０からの第２の要求に従って、記憶部２１に記憶された圧縮データを読み出す。そして、情報記憶装置２０（第２の送信部２０６）は、その読み出した圧縮データを示す読み出し圧縮データと、該読み出し圧縮データのサイズを示す第２のサイズ情報とを含む第２の応答データをホスト装置１０へ送信する（ステップＳ７）。以上の各ステップの具体的な内容は上述したとおりである。
【００４６】
次に、ホスト装置１０（判定部１１０）は、情報記憶装置２０から取得した前述の第１の応答データに含まれる第１のサイズ情報が示すサイズと、情報記憶装置２０から取得した前述の第２の応答データに含まれる第２のサイズ情報が示すサイズとを比較し、第２の書き込みデータのサイズと読み出し圧縮データのサイズとが一致するか否かを判定する（ステップＳ８）。
【００４７】
ステップＳ８の結果が否定の場合（ステップＳ８：Ｎｏ）、ホスト装置１０（判定部１１０）は、ステップＳ１で受け付けたユーザーデータに含まれる第１の書き込みデータは記憶済みではないと判定し、情報記憶装置２０に対して第２の書き込みデータの書き込みを指示する前述の書き込み指示情報を情報記憶装置２０へ送信する（ステップＳ９）。また、前述したように、ホスト装置１０（判定部１１０）は、前述の第１の対応情報および前述の第２の対応情報を更新する。情報記憶装置２０（書き込み制御部２０８）は、書き込み指示情報に従って、第２の書き込みデータを記憶部２１に書き込む（ステップＳ１０）。以上の各ステップの具体的な内容は上述したとおりである。
【００４８】
一方、ステップＳ８の結果が肯定の場合（ステップＳ８：Ｙｅｓ）、ホスト装置１０（判定部１１０）は、情報記憶装置２０から取得した第１の応答データに含まれる第２の書き込みデータと、情報記憶装置２０から取得した第２の応答データに含まれる読み出し圧縮データとを比較して、両者が一致するか否かを判定する（ステップＳ１１）。ステップＳ１１の結果が否定の場合（ステップＳ１１：Ｎｏ）、処理は前述のステップＳ９に移行する。また、ステップＳ１１の結果が肯定の場合（ステップＳ１１：Ｙｅｓ）、ホスト装置１０（判定部１１０）は、ステップＳ１で受け付けたユーザーデータに含まれる第１の書き込みデータは記憶済みであると判定し、情報報記憶装置２０に対して、第２の書き込みデータの書き込みを指示することはせずに、前述の第２の対応情報を更新する（ステップＳ１２）。以上の各ステップの具体的な内容は上述したとおりである。
【００４９】
以上に説明したように、本実施形態の情報記憶システム１では、情報記憶装置２０は、ホスト装置１０から、書き込み対象のデータを示す第１の書き込みデータが入力された場合、該第１の書き込みデータを圧縮部２０２で圧縮して得られる第２の書き込みデータをホスト装置１０へ送信し、ホスト装置１０から、該第１の書き込みデータに対応するアドレス情報が入力された場合、該アドレス情報に基づいて記憶部２１から読み出した圧縮データを示す読み出し圧縮データをホスト装置１０へ送信する。そして、ホスト装置１０は、第２の書き込みデータと読み出し圧縮データとが一致する場合は、書き込み対象の第１の書き込みデータは記憶済みである（重複データである）と判定する。すなわち、圧縮データ同士を比較して重複判定を行うことにより、少ない演算量で重複判定の精度を保証することができる。
【００５０】
以上、本発明の実施形態を説明したが、上述の実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら新規な実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００５１】
例えば情報記憶装置２０側に、第２の書き込みデータと読み出し圧縮データとを比較し、その結果を示す比較結果情報をホスト装置１０へ送信する機能が搭載される形態であってもよい。
【００５２】
図７は、本変形例の情報記憶システム１が有する機能の一例を示す図である。図７に示すように、情報記憶装置２０は比較部２１０を有し、情報記憶装置２０の第１のインタフェース部２２０は、第１の送信部２０３および第２の送信部２０６の代わりに比較結果情報送信部２４０を含み、ホスト装置１０の第２のインタフェース部１２０は、第１の取得部１０３および第２の取得部１０８の代わりに比較結果情報取得部１３０を含む点で上述の実施形態と相違する。比較部２１０は、ホスト装置１０から入力された第１の書き込みデータを、圧縮部２０２で圧縮して得られる第２の書き込みデータと、ホスト装置１０から入力された、第１の書き込みデータに対応するアドレス情報に基づいて、記憶部２１から読み出した圧縮データを示す読み出し圧縮データと、を比較する。つまり、比較部２１０は、前述の第１の要求に従って圧縮部２０２が生成した第２の書き込みデータと、前述の第２の要求に従って前記読み出し制御部２０５が読み出した読み出し圧縮データとを比較する。第１のインタフェース部１２０に含まれる比較結果情報送信部２４０は、比較部２１０による比較の結果を示す比較結果情報をホスト装置１０へ送信する。
【００５３】
ホスト装置１０の第２のインタフェース部１２０に含まれる比較結果情報取得部１３０は、比較結果情報を取得する。ホスト装置１０の判定部１１０は、比較結果情報取得部１３０が取得した比較結果情報が、第２の書き込みデータと読み出し圧縮データとが一致することを示す場合は、第１の書き込みデータは記憶済みであると判定する。その他の構成は上述の実施形態と同様であるので、詳細な説明は省略する。
【００５４】
本変形例では、ホスト装置１０の判定部１１０は、比較部２１０から受け取った比較結果情報を用いて、第１の書き込みデータは記憶済みであるか否かを判定することができる（重複判定を行うことができる）。つまり、判定部１１０は、重複判定の際に、第２の書き込みデータや圧縮読み出しデータを情報記憶装置２０から受け取る必要が無いので、上述の実施形態に比べて、ストレージＩ／Ｆ１２の通信量を削減できるという利点がある。
【００５５】
また、他の変形例として、ホスト装置１０に対して、２以上の情報記憶装置２０が接続され、書き込み対象の情報記憶装置２０と読み出し対象の情報記憶装置２０が異なる形態であってもよい。なお、以上の実施形態および各変形例は、任意に組み合わせることが可能である。
【符号の説明】
【００５６】
１      情報記憶システム
１０    ホスト装置
１１    データ処理部
１２    ストレージＩ／Ｆ
２０    情報記憶装置
２１    記憶部
２２    コントローラ
２３    ホストＩ／Ｆ
１０１  受付部
１０２  第３の送信部
１０３  第１の取得部
１０４  算出部
１０５  検索部
１０６  第１の対応情報記憶部
１０７  第４の送信部
１０８  第２の取得部
１１０  判定部
１２０  第２のインタフェース部
１３０  比較結果情報取得部
２０１  第１の要求取得部
２０２  圧縮部
２０３  第１の送信部
２０４  第２の要求取得部
２０５  読み出し制御部
２０６  第２の送信部
２０７  書き込み指示情報取得部
２０８  書き込み制御部
２２０  第２のインタフェース部
２３０  論物変換テーブル
２４０  比較結果情報送信部
【図１】
2016207033.tif 000003
【図２】
2016207033.tif 000004
【図３】
2016207033.tif 000005
【図４】
2016207033.tif 000006
【図５】
2016207033.tif 000007
【図６】
2016207033.tif 000008
【図７】
2016207033.tif 000009