【手続補正書】
【提出日】令和2年5月19日(2020.5.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
重複除去モジュールに関連するメモリに格納されたデータを回収する方法であって、
前記データの論理的アドレスを識別する段階と、
変換テーブル内の前記論理的アドレスの少なくとも一部を検索し、前記論理的アドレスに従って、前記データがハッシュテーブルに格納されたか又はオーバーフローメモリ領域に格納されたかを示す第１識別子を含む前記データのＰＬＩＤ（物理的ラインＩＤ）を識別する段階と、
前記第１識別子を用いて、前記データが前記ハッシュテーブルに格納されているか又は前記オーバーフローメモリ領域に格納されているかを判断する段階と、
前記ＰＬＩＤに対応する物理的ラインの位置を特定する段階と、
前記物理的ラインから前記データを回収する段階と、を有し、
前記データを回収する段階は、ハッシュシリンダを読出しキャッシュにコピーする段階を含み、
前記ハッシュシリンダは、
前記物理的ラインを含むハッシュバケットと、
前記物理的ラインに関連する参照カウンターを含む参照カウンターバケットと、を含むことを特徴とする方法。
【請求項２】
前記ＰＬＩＤは、前記データに適用された第１ハッシュ関数を利用して生成され、
前記ＰＬＩＤは、前記ハッシュテーブル内の位置を示すアドレスを更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ＰＬＩＤは、
前記データが格納された行を示す第２識別子と、
前記データが格納された列を示す第３識別子と、を更に含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記参照カウンターバケットは、参照カウンターテーブルの一部であり、
前記ハッシュテーブル及び前記参照カウンターテーブルは、複合型データ構造の一部であり、
前記複合型データ構造は、各署名バケットが複数の署名を含む複数の署名バケットを含む署名テーブルを更に含み、
前記ハッシュシリンダは、前記複数の署名バケットのそれぞれの署名バケットを更に含み、
前記それぞれの署名バケットは、前記物理的ラインに関連するそれぞれの署名を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記ＰＬＩＤは、前記データに適用された第１ハッシュ関数を利用して生成され、
前記ＰＬＩＤは、前記ハッシュテーブル内の位置を示すアドレスを含み、
前記複数の署名は、前記第１ハッシュ関数よりも小さい第２ハッシュ関数を利用して生成されることを特徴とする請求項４に記載の方法。
【請求項６】
前記参照カウンターは、前記ハッシュテーブルに格納された該当データに対する重複除去回数を追跡することを特徴とする請求項１に記載の方法。
【請求項７】
重複除去エンジンに関連するメモリにデータを格納する方法であって、
格納されるデータを識別する段階と、
第１ハッシュ関数を利用して、前記データが前記メモリのハッシュテーブルに格納されなければならない物理的ラインに対応する第１ハッシュ値を決定する段階と、
前記物理的ラインが利用可能な場合は前記第１ハッシュ値に対応する前記ハッシュテーブル内の位置に、前記物理的ラインが利用できない場合はオーバーフローメモリ領域に対応する位置に前記データを格納する段階と、
前記位置に応じて、前記データが前記ハッシュテーブルに格納されたか又は前記オーバーフローメモリ領域に格納されたかを示す第１識別子を含む前記データのＰＬＩＤ（物理的ラインＩＤ）を設定する段階と、
前記第１ハッシュ関数よりも小さい第２ハッシュ関数を利用して、前記データが格納されなければならない位置にも対応する第２ハッシュ値を決定する段階と、
前記メモリの変換テーブルに前記第１ハッシュ値を格納する段階と、
前記メモリの署名テーブルに前記第２ハッシュ値を格納する段階と、を有することを特徴とする方法。
【請求項８】
前記データに対応する参照カウンターテーブル内の参照カウンターを増加させる段階を更に含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記メモリは、
複数のデータを格納する前記ハッシュテーブルと、
前記第１ハッシュ関数を利用して生成される複数のＰＬＩＤを格納する前記変換テーブルと、
前記第２ハッシュ関数を利用して生成される複数の署名を格納する前記署名テーブルと、
各参照カウンターが前記ハッシュテーブルに格納された該当データに対する重複除去回数を追跡する複数の参照カウンターを格納する参照カウンターテーブルと、
前記オーバーフローメモリ領域と、を含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記複数のＰＬＩＤの各々は、
前記データが格納された行を示す第２識別子と、
前記データが格納された列を示す第３識別子と、を更に含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記ハッシュテーブル、前記署名テーブル、及び前記参照カウンターテーブルは、複合型データ構造に統合され、
前記複合型データ構造は、複数のハッシュシリンダを含み、
各ハッシュシリンダは、
複数の物理的ラインを含むハッシュバケットと、
前記複数の物理的ラインに対応するそれぞれの署名を含む署名バケットと、
前記複数の物理的ラインに対応するそれぞれの参照カウンターを含む参照カウンターバケットと、を含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記第１ハッシュ値に対応する前記ハッシュテーブル内の位置に前記データを格納する段階は、前記第１ハッシュ値に対応する前記ハッシュバケットに前記データを格納する段階を含み、
前記メモリの署名テーブルに前記第２ハッシュ値を格納する段階は、前記データが格納された前記ハッシュバケットに対応する前記署名バケットに前記第２ハッシュ値を格納する段階を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
読出しキャッシュと、
ホストシステムからデータ回収要請を受信する重複除去エンジンと、
メモリと、を備え、
前記メモリは、変換テーブル及び複合型データ構造を含み、
前記複合型データ構造は、
各ハッシュバケットが各物理的ラインにデータを格納する複数の物理的ラインを含む複数のハッシュバケットを含むハッシュテーブルと、
各参照カウンターバケットが複数の参照カウンターを含む複数の参照カウンターバケットを含む参照カウンターテーブルと、
各ハッシュシリンダが前記ハッシュバケットの中の１つ及び前記参照カウンターバケットの中の１つを含む複数のハッシュシリンダと、を含み、
前記データ回収要請は、前記重複除去エンジンが、
前記データの論理的アドレスを識別し、
前記変換テーブル内の前記論理的アドレスの少なくとも一部を検索し、前記論理的アドレスに従って、前記データが前記ハッシュテーブルに格納されたか又はオーバーフローメモリ領域に格納されたかを示す第１識別子を含む前記データのＰＬＩＤ（物理的ラインＩＤ）を識別し、
前記第１識別子を用いて、前記データが前記ハッシュテーブルに格納されているか又は前記オーバーフローメモリ領域に格納されているかを判断し、
前記ＰＬＩＤに対応する前記複数の物理的ラインのそれぞれの物理的ラインの位置を特定し、
前記ハッシュテーブル内又は前記オーバーフローメモリ領域内の前記それぞれの物理的ラインから前記データを回収することをもたらし、
前記データの回収は、前記複数のハッシュシリンダのそれぞれのハッシュシリンダを前記読出しキャッシュにコピーすることを含み、
前記それぞれのハッシュシリンダは、
前記それぞれの物理的ラインを含む前記複数のハッシュバケットのそれぞれのハッシュバケットと、
前記それぞれの物理的ラインに関連するそれぞれの参照カウンターを含む前記複数の参照カウンターバケットのそれぞれの参照カウンターバケットと、を含むことを特徴とする重複除去モジュール。
【請求項１４】
前記データ回収要請は、前記重複除去エンジンが、前記ＰＬＩＤに基づいて、前記データが前記ハッシュテーブルに格納されていると判断することを更にもたらすことを特徴とする請求項１３に記載の重複除去モジュール。
【請求項１５】
前記ＰＬＩＤは、前記データに適用された第１ハッシュ関数を利用して生成され、
前記ＰＬＩＤは、前記ハッシュテーブル内の位置を示すアドレスを含むことを特徴とする請求項１３に記載の重複除去モジュール。
【請求項１６】
前記ＰＬＩＤは、
前記データが格納された行を示す第２識別子と、
前記データが格納された列を示す第３識別子と、を更に含むことを特徴とする請求項１５に記載の重複除去モジュール。
【請求項１７】
前記複合型データ構造は、各署名バケットが複数の署名を含む複数の署名バケットを含む署名テーブルを更に含み、
前記それぞれのハッシュシリンダは、前記複数の署名バケットのそれぞれの署名バケットを更に含み、
前記それぞれの署名バケットは、前記それぞれの物理的ラインに関連するそれぞれの署名を含むことを特徴とする請求項１３に記載の重複除去モジュール。
【請求項１８】
前記ＰＬＩＤは、前記データに適用された第１ハッシュ関数を利用して生成され、
前記ＰＬＩＤは、前記ハッシュテーブル内の位置を示すアドレスを含み、
前記複数の署名は、前記第１ハッシュ関数よりも小さい第２ハッシュ関数を利用して生成されることを特徴とする請求項１７に記載の重複除去モジュール。
【請求項１９】
各参照カウンターは、前記ハッシュテーブルに格納された該当データに対する重複除去回数を追跡することを特徴とする請求項１３に記載の重複除去モジュール。
【請求項２０】
ホストインターフェイスと、
前記ホストインターフェイスを通じてホストシステムからデータ伝送要請を受信する伝送管理部と、
複数のパーティションと、を備え、
各パーティションは、
前記伝送管理部からのパーティションデータ要請、及び前記ホストシステムからのデータ回収要請を受信する重複除去エンジンと、
複数のメモリコントローラと、
前記重複除去エンジンと前記メモリコントローラとの間に提供されるメモリ管理部と、
各メモリモジュールが前記複数のメモリコントローラの中の１つに連結される複数のメモリモジュールと、を含み、
前記データ回収要請は、前記重複除去エンジンが、
前記メモリモジュール内の前記データの論理的アドレスを識別し、
変換テーブル内の前記論理的アドレスの少なくとも一部を検索し、前記論理的アドレスに従って、前記データがハッシュテーブルに格納されたか又はオーバーフローメモリ領域に格納されたかを示す第１識別子を含む前記データのＰＬＩＤ（物理的ラインＩＤ）を識別し、
物理的ラインの位置を特定し、
前記ＰＬＩＤに対応する前記ハッシュテーブル内又は前記オーバーフローメモリ領域内の前記物理的ラインから前記データを回収することをもたらすことを特徴とする重複除去モジュール。
【請求項２１】
読出しキャッシュと、
メモリと、
複数のハッシュバケットの第１ハッシュバケットに対するＶ個の仮想バケットを識別する重複除去エンジンと、を備え、
前記メモリは、
変換テーブルと、
各ハッシュバケットが各物理的ラインにデータを格納する複数の物理的ラインを含む複数のハッシュバケットを含むハッシュテーブルと、
各参照カウンターバケットが複数の参照カウンターを含む複数の参照カウンターバケットを含む参照カウンターテーブルと、を含み、
前記仮想バケットは、前記第１ハッシュバケットに隣接する前記複数のハッシュバケットの中の他のものであり、
前記仮想バケットは、前記第１ハッシュバケットがフルに満たされた場合、前記第１ハッシュバケットのデータの一部を格納し、
前記Ｖは、前記第１ハッシュバケットの仮想バケットがフルに満たされた場合に動的に調節される整数であることを特徴とする重複除去モジュール。