【手続補正書】
【提出日】平成29年1月19日(2017.1.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを非キャッシュ記録媒体上に格納するための方法であって、前記方法が、
ｉ．データを非キャッシュ記録媒体に書き込むための命令を受信することであって、前記命令が、ユーザーが認識する論理ブロックアドレスおよびユーザー提供のバッファを含むことと、
ｉｉ．前記ユーザー提供のバッファをユーザー提供のバッファユニットに分割することと、
ｉｉｉ．暗号化ハッシュ関数を各ユーザー提供のバッファユニットに適用し、それにより、各ユーザー提供のバッファユニットに対して生成されたハッシュ値を生成することと、
ｉｖ．コンピュータプログラム製品にハッシュ値テーブルをアクセスさせて、各生成されたハッシュ値が、前記ハッシュ値テーブル内のハッシュ値と重複しているかどうかを判断させる、アルゴリズムを含む前記コンピュータプログラム製品を起動することであって、前記ハッシュ値テーブルが、複数の格納されたハッシュ値の各々を異なる格納されたバッファユニット、および本当の論理ブロックアドレスと関連付けて；
Ａ．前記生成されたハッシュ値が前記ハッシュ値テーブル内にない場合は、前記ユーザー提供のバッファユニットを非キャッシュ記録媒体内のブロックに書き込み、前記ハッシュ値テーブルを、前記ユーザー提供のバッファユニット、前記生成されたハッシュ値および前記ユーザー提供のバッファユニットが格納されている本当の論理ブロックアドレスの相関関係を含むように更新して、メディエータ上で、前記ユーザー提供のバッファが書き込まれている位置に対応する本当の論理ブロックアドレスを、前記ユーザー提供のバッファに対する前記ユーザーが認識する論理ブロックアドレスと相互に関連付け、
Ｂ．前記生成されたハッシュ値が前記ハッシュ値テーブル内の格納されたハッシュ値と重複している場合は、矛盾があるかどうかを問い合わせ、矛盾は、前記同じハッシュ値が、格納されたバッファユニットおよび前記ユーザー提供のバッファユニットと関連付けられていて、かつ前記格納されたバッファユニットおよび前記格納されたバッファ使用および前記ユーザー提供のバッファユニットが異なる値を有する状況として定義され、
ａ．矛盾がある場合は、前記ユーザー提供のバッファユニットを前記非キャッシュ記録媒体内のブロックに書き込み、前記格納されたバッファユニットと前記格納されたハッシュ値との間の前記ハッシュ値テーブル内の関連付けを非アクティブにするか、または削除して、前記ハッシュ値テーブルを、前記ユーザー提供のバッファユニット、前記生成されたハッシュ値および前記ユーザー提供のバッファユニットが格納されている本当の論理ブロックアドレスの相関関係を含むように更新して、前記ユーザー提供のバッファユニットが書き込まれている位置に対応する本当の論理ブロックアドレスおよび前記ユーザーが認識する論理ブロックアドレスを前記メディエータ上に書き込み、
ｂ．矛盾がない場合は、前記ユーザー生成のバッファユニットと同じである、前記非キャッシュ記録媒体上に格納されたバッファユニットの本当の論理ブロックアドレスを前記メディエータ上に書き込み、それを、前記ユーザー提供のバッファユニットを前記非キャッシュ記録媒体上に書き込むことなく、前記ユーザー提供のバッファに対する前記ユーザーが認識する論理ブロックアドレスと相互に関連付けることと、
を含む、方法。
【請求項２】
前記方法が、複数のユーザー提供のバッファユニットの各々に対して、（ｉｉｉ）〜（ｉｖ）を繰り返すことをさらに含み、全体として、前記複数のユーザー提供のバッファユニットがファイルに対応する、請求項１に記載の方法。
【請求項３】
前記ユーザー提供のバッファユニットが５１２バイトから２ＭＢまでから成る、請求項１に記載の方法。
【請求項４】
ユーザーが認識する論理ブロックアドレスに対して、前記メディエータが、前記同じ本当の論理ブロックアドレスを複数回、相互に関連付ける、請求項１に記載の方法。
【請求項５】
前記バッファユニットがサイズにおいて５１２Ｂまたは４Ｋである、請求項１に記載の方法。
【請求項６】
前記ハッシュ値がサイズにおいて８バイトまたは１６バイトである、請求項５に記載の方法。
【請求項７】
前記ユーザー提供のバッファユニットが、前処理によって形成され、前記前処理が：
（ｉ）複数のデジタル２値信号を受信することであって、前記デジタル２値信号が複数のチャンクレットに編成されており、各チャンクレットがＮビット長で、Ｎが１より大きい整数であり、前記チャンクレットが順序を有することと、
（ｉｉ）Ｘ個のマーカーのセットから、１つのマーカーを各チャンクレットに割り当てて、複数のマーカーのセットを形成することであって、Ｘがチャンクレット内のビットの異なる組合せの数以下であり、同一のサブユニットが前記同じマーカーに割り当てられていることと、
（ｉｉｉ）前記マーカーをバッファユニットとして使用することと、
を含む、請求項１に記載の方法。
【請求項８】
前記ユーザー提供のバッファユニットが、前処理によって形成され、前記前処理が：
（ｉ）複数のデジタル２値信号を受信することであって、前記デジタル２値信号が複数のチャンクレットに編成されており、各チャンクレットがＮビット長で、Ｎが１より大きい整数であり、前記チャンクレットが順序を有することと、
（ｉｉ）各チャンクレットを均一なサイズのサブユニットに分割して、Ｘ個のマーカーのセットから、１つのマーカーを各サブユニットに割り当てて、複数のマーカーのセットを形成することであって、Ｘがサブユニット内のビットの異なる組合せの数以下であり、同一のサブユニットが前記同じマーカーに割り当てられていることと、
（ｉｉｉ）前記マーカーをバッファユニットとして使用することと、
を含む、請求項１に記載の方法。
【請求項９】
少なくとも１つのマーカーが、サブユニットより小さいサイズである、請求項８に記載の方法。
【請求項１０】
ステップ（ｉｉ）が、ビットマーカーテーブルおよび頻度変換器のうちの１つにアクセスすることを含む、請求項７〜８のいずれかに記載の方法。
【請求項１１】
データを格納するためのシステムであって、前記システムが、
（ａ）永続的メモリであって、前記永続的メモリが、格納されたバッファユニットを格納されたハッシュ値および本当の論理ブロックアドレスと関連付けるように構成されているハッシュ値テーブルを格納する、永続的メモリと、
（ｂ）持続性媒体内に格納されているコンピュータプログラム製品を含むか、またはそれに動作可能に結合されている、中央処理装置であって、前記コンピュータプログラム製品が、実行される際に、自動的に
ｉ．ハッシュ値アルゴリズムを１つ以上のユーザー提供のバッファユニットの各々に適用して、生成されたハッシュ値を作成し、
ｉｉ．前記生成されたハッシュ値が、格納されたバッファユニットと関連付けられている前記ハッシュ値テーブル内の格納されたハッシュ値の重複であるかどうかを判断し、そうである場合は、矛盾が存在するかどうかを判断し、前記矛盾が、２つの異なるバッファユニットと関連付けられているハッシュ値として定義されて、矛盾が存在する場合は、前記ハッシュ値テーブルを更新して、前記ハッシュ値テーブル内のハッシュ値を、前記格納されたバッファユニットではなく、前記ユーザー提供のバッファユニットと関連付けさせる、
実行可能コードを含む、中央処理装置と、
（ｃ）非キャッシュ記録媒体であって、前記非キャッシュ記録媒体がブロックレベル記憶に対して構成されている、非キャッシュ記録媒体と、
（ｄ）メディエータであって、前記メディエータが、本当の論理ブロックアドレスとユーザーが認識する論理ブロックアドレスとの相関関係を格納する、メディエータと、
を備える、システム。
【請求項１２】
前記コンピュータプログラムが、
ｉ．前記生成されたハッシュ値が、前記ハッシュ値テーブル内のハッシュ値の重複ではないか、または
ｉｉ．前記生成されたハッシュ値が、格納されたハッシュ値の重複であり、かつ矛盾があるか、のいずれか
の場合に限り、前記ユーザー提供のバッファユニットを前記非キャッシュ記録媒体に書き込む、請求項１１に記載のシステム。
【請求項１３】
複数のユーザーファイルに対して、ユーザーが認識する論理ブロックアドレスと本当の論理ブロックアドレスの相関関係があり、かつ、異なるファイルに対する複数の相関関係内に、前記同じ本当の論理ブロックアドレスであるが、異なるユーザーが認識する論理ブロックアドレスが１つ以上ある、請求項１１に記載のシステム。
【請求項１４】
前記システムが取得モジュールをさらに備え、前記取得モジュールが、前記メディエータにアクセスして、ハッシュ値テーブルにアクセスすることなく、複数のバッファユニットを、前記メディエータによって指示される順序で再結合することにより、データファイルを再構成するように構成され、かつ、前記メディエータによって指示される順序が、前記非キャッシュ記録媒体上での前記バッファユニットの順序とは異なる、請求項１１〜１３のいずれかに記載のシステム。
【請求項１５】
コンピュータ可読プログラムを含む持続性コンピュータ利用可能媒体を含むコンピュータプログラム製品であって、前記コンピュータ可読プログラムが、コンピュータ上で実行される際に、前記コンピュータに、請求項１〜１０のいずれかに記載の方法を含む、ファイルシステム内で重複を排除し、データブロックを管理するための方法を実装させる、コンピュータプログラム製品。