JP6234048B2 - ハッシュ衝突低減システム、方法及びプログラム - Google Patents

ハッシュ衝突低減システム、方法及びプログラム Download PDF

Info

Publication number
JP6234048B2
JP6234048B2 JP2013081290A JP2013081290A JP6234048B2 JP 6234048 B2 JP6234048 B2 JP 6234048B2 JP 2013081290 A JP2013081290 A JP 2013081290A JP 2013081290 A JP2013081290 A JP 2013081290A JP 6234048 B2 JP6234048 B2 JP 6234048B2
Authority
JP
Japan
Prior art keywords
hash
tables
logic
controller
keys
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013081290A
Other languages
English (en)
Other versions
JP2013242539A (ja
Inventor
キャシマー・エム.・デクサティス
ファブリス・ジャン・ヴェルプランカン
ジャン・エル.・カルヴィニャック
ダニエル・ヴァン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013242539A publication Critical patent/JP2013242539A/ja
Application granted granted Critical
Publication of JP6234048B2 publication Critical patent/JP6234048B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はコンピュータ・システムの分野に関し、さらに具体的には、非常に大きなテーブルおよび非常に高いスループットのための、コンピュータ実装のパケット・ルックアップ・メカニズムに関する。
イーサネット(R)ポートは、コンピュータとコンピュータ・ネットワークとの間の接続を提供することができる。100Gbpsのイーサネット(R)ポートに対し、最小の64バイト・パケットの継続時間は6.7ナノ秒であり、ロジックが検索を行うために与えられるのは、500Mhzでたったの3クロック・サイクルである。
例えば、100Gbpsのイーサネット(R)アプリケーション中で使われている、結合数の少ないテーブル・ルックアップにおいて、「Cuckooアルゴリズム」などの連鎖法を用いる従来式のハッシュ法を使って検索を行うことは可能であるが、これの欠点は、非常に大きなテーブル中に多くのハッシュ衝突が存在する場合の挿入時間が長いことである。
本発明の一つの実施形態によれば、改良されたコンピュータ・システムには、コンピュータ・プロセッサを有するコントローラを含めることができ、該コントローラは、コントローラに導入される新規コンポーネントとインターフェースをとるときの挿入時間もしくはハッシュ衝突またはその両方を低減する。また、本システムには、複数のテーブルおよびバケットあたり複数のキーを使うことによってハッシュ衝突を低減する衝突回避装置も含めることができる。本システムには、複数のキーを複数のテーブルにマップするための、コントローラと交信するハッシュ装置をさらに含めることができ、該ハッシュ装置は、一つのキーが変更されたとき、単一のハッシュ・ロジックを用いて雪崩効果を施し、これは複数のテーブル中のビットのほぼ半数の変更をもたらす。
この単一のハッシュ・ロジックはCuckooアルゴリズムに基づくものとすることができる。該単一のハッシュ・ロジックには、更新設定可能な巡回冗長検査多項式を含めることが可能である。ハッシュ装置は、雪崩効果に基づいて複数のテーブルの並列テーブル・ルックアップを設けることができる。
雪崩効果は、複数のテーブルの各々に対する直交ハッシュ関数列に基づくものとすることができ、単一のハッシュ・ロジックが各直交ハッシュ関数を実行する。単一のハッシュ・ロジックの各ビット出力には、キーのビットの絞り込み結果(funneled results)を含めることができる。
この絞り込み結果はXOR関数によって生成することが可能である。これら複数のテーブルは更新設定可能にすることができる。複数のテーブルの全体負荷は、単一のハッシュ・ロジックの出力に対するビットの数を制御することで設定できるようにすることができる。
本発明の別の態様は、コンピュータ・システムを改良するための方法である。本方法には、コンピュータ・プロセッサを包含するコントローラに新規コンポーネントが導入されるときの挿入時間もしくはハッシュ衝突またはその両方を低減するステップを含めることができる。また、本方法には、衝突回避装置を介し、複数のテーブルおよびバケットあたり複数のキーを使うことによってハッシュ衝突を低減するステップも含めることができる。本方法には、コントローラと交信するハッシュ装置を使って、複数のキーを複数のテーブルにマップするステップをさらに含めることができ、該ハッシュ装置は、一つのキーが変更されたとき、単一のハッシュ・ロジックを用いて雪崩効果を施し、これは複数のテーブル中のビットのほぼ半数の変更をもたらす。
本方法には、ハッシュ装置を介し雪崩効果に基づいて、複数のテーブルの並列テーブル・ルックアップを設けるステップを追加して含めることができる。また、本方法には、雪崩効果を、複数のテーブルの各々に対する直交ハッシュ関数列に基づくものとするステップをさらに含めることができ、単一のハッシュ・ロジックが各直交ハッシュ関数を実行する。
本方法には、単一のハッシュ・ロジックの各ビット出力に対する、キーのビットの結果を絞り込むステップをさらに含めることができる。本方法には、複数のテーブルを更新設定可能にするステップを追加して含めることが可能である。また、本方法には、単一のハッシュ・ロジック出力に対するビットの数を制御することによって、これら複数のテーブルの全体負荷を更新設定可能にするステップも含めることができる。
本発明の別の態様は、有形の媒体と組み合わされた、コンピュータ・システムを改良するためのコンピュータ可読プログラム・コードである。本コンピュータ可読プログラム・コードは、新規コンポーネントが、コンピュータ・プロセッサを包含するコントローラに導入されるとき、プログラムに、挿入時間もしくはハッシュ衝突またはその両方を低減させるように構成することが可能である。また、本コンピュータ可読プログラム・コードは、衝突回避装置を介し、複数のテーブルおよびバケットあたり複数のキーを使うことによってハッシュ衝突を低減することができる。本コンピュータ可読プログラム・コードは、さらに、コントローラと交信するハッシュ装置を使って、複数のキーを複数のテーブルにマップすることができ、該ハッシュ装置は、一つのキーが変更されたとき、単一のハッシュ・ロジックを用いて雪崩効果を施し、これは複数のテーブル中のビットのほぼ半数の変更をもたらす。
加えて、本コンピュータ可読プログラム・コードは、ハッシュ装置を介し、雪崩効果に基づいて複数のテーブルの並列テーブル・ルックアップを設けることができる。また、本コンピュータ可読プログラム・コードは、雪崩効果を、複数のテーブルの各々に対する直交ハッシュ関数列に基づくものとすることができ、単一のハッシュ・ロジックが各直交ハッシュ関数を実行する。
本コンピュータ可読プログラム・コードは、さらに、単一のハッシュ・ロジックの各ビット出力に対するキーのビットの結果を絞り込むことができる。加えて、本コンピュータ可読プログラム・コードは、該複数のテーブルを更新設定可能にすることができる。また、本コンピュータ可読プログラム・コードは、単一のハッシュ・ロジックの出力に対するビットの数を制御することによって、これら複数のテーブルの全体負荷を更新設定可能にすることができる。
本発明による、データベース改良システムを示すブロック図である。 本発明による、方法の諸態様を示すフローチャートである。 図2の方法による、方法の諸態様を示すフローチャートである。 図2の方法による、方法の諸態様を示すフローチャートである。 図4の方法による、方法の諸態様を示すフローチャートである。 図2の方法による、方法の諸態様を示すフローチャートである。 図6の方法による、方法の諸態様を示すフローチャートである。 本発明による、CCBテーブル・ルックアップ・エンジンのハイ・レベルの構造を示す。 本発明による、5モードプログラム可能ハッシュ・ロジックのハイ・レベルの構造を示す。 本発明による、4対2の例を示す。 本発明による、XORマトリックスの例を示す。 本発明による、遠隔ルックアップ要求のタイミングを示す。 本発明による、「オン・ザ・フライ」比較エンジンを示す。
以降において、本発明の好適な実施形態が示されている添付の図面を参照しながら、本発明を詳述する。図面全体を通して、同様の番号は同様のエレメントを表す。
ここで図1を参照すると、最初に、改良されたコンピュータ・システム10が表されている。ある実施形態において、システム10は、コンピュータ・プロセッサ14を包含するコントローラ12を含む。コントローラ12は、該コントローラに導入される新規コンポーネント16とインターフェースをとるときの挿入時間もしくはハッシュ衝突またはその両方を低減する。また、システム10は、複数のテーブルおよびバケットあたり複数のキーを使ってハッシュ衝突を低減する衝突回避装置18も含む。システム10は、複数のキーを複数のテーブルにマップするための、コントローラ12と交信するハッシュ装置20をさらに含み、該ハッシュ装置は、一つのキーが変更されたとき、単一のハッシュ・ロジック22を用いて雪崩効果を施し、これは複数のテーブル中のビットのほぼ半数の変更をもたらす。システム10のコンポーネント群は、当業者ならよく理解しているように、通信ネットワーク21によって繋がれている。
一つの実施形態において、この単一のハッシュ・ロジック22はCuckooアルゴリズムに基づいている。別の実施形態では、この単一のハッシュ・ロジック22は、更新設定可能な巡回冗長検査(CRC:cyclic redundancy check)多項式を含む。別の実施形態では、ハッシュ装置20は、雪崩効果に基づいて複数のテーブルの並列テーブル・ルックアップを設ける。
一つの実施形態において、雪崩効果は、複数のテーブルの各々に対する直交ハッシュ関数列に基づき、単一のハッシュ・ロジック22が各直交ハッシュ関数を実行する。別の実施形態において、単一のハッシュ・ロジック22の各ビット出力は、キーのビットの絞り込み結果を含む。
一つの実施形態において、この絞り込み結果はXOR関数によって生成される。別の実施形態において、該複数のテーブルは更新設定可能である。別の実施形態では、これら複数のテーブルの全体負荷は、単一のハッシュ・ロジック22の出力に対するビット数を制御することによって更新設定が可能である。
本発明の別の態様は、コンピュータ・システムを改良するための方法であって、これについて図2のフローチャート24を参照しながら以下に説明する。この方法はブロック26で開始され、ブロック28で、該方法には、コンピュータ・プロセッサを包含するコントローラに新規コンポーネントが導入されるときの挿入時間もしくはハッシュ衝突またはその両方を低減するステップを含めることができる。また、本方法には、ブロック30で、衝突回避装置を介し、複数のテーブルおよびバケットあたり複数のキーを使うことによってハッシュ衝突を低減するステップも含めることができる。ブロック32で、本方法には、コントローラと交信するハッシュ装置を使って、複数のキーを複数のテーブルにマップするステップをさらに含めることができ、該ハッシュ装置は、一つのキーが変更されたとき、単一のハッシュ・ロジックを用いて雪崩効果を施し、これは複数のテーブル中のビットのほぼ半数の変更をもたらす。本方法はブロック34で終了する。
図3のフローチャート36を参照しながら以下に説明する別の方法の実施形態では、方法はブロック38で開始される。本方法には、図2のブロック28、30、および32のステップを含めることができる。ブロック40で、本方法には、ハッシュ装置を介し雪崩効果に基づいて複数のテーブルの並列テーブル・ルックアップを設けるステップを、追加して含めることができる。本方法はブロック42で終了する。
図4のフローチャート44を参照しながら以下に説明する別の方法の実施形態では、方法はブロック46で開始される。本方法には、図2のブロック28、30、および32のステップを含めることができる。また、ブロック48で、本方法には、雪崩効果を複数のテーブルの各々に対する直交ハッシュ関数列に基づくものとするステップをさらに含めることができ、単一のハッシュ・ロジックが各直交ハッシュ関数を実行する。本方法はブロック50で終了する。
図5のフローチャート52を参照しながら以下に説明する別の方法の実施形態では、方法はブロック54で開始される。本方法には、図4のブロック28、30、32、および48のステップを含めることができる。ブロック56で、本方法には、単一のハッシュ・ロジックの各ビット出力に対するキーのビットの結果を絞り込むステップをさらに含めることができる。本方法はブロック58で終了する。
図6のフローチャート60を参照しながら以下に説明する別の方法の実施形態では、方法はブロック62で開始される。本方法には、図2のブロック28、30、および32のステップを含めることができる。ブロック64で、本方法には、複数のテーブルを更新設定可能にするステップを追加して含めることができる。本方法はブロック66で終了する。
図7のフローチャート68を参照しながら以下に説明する別の方法の実施形態では、方法はブロック70で開始される。本方法には、図6のブロック28、30、32、および64のステップを含めることができる。また、ブロック72で、本方法には、単一のハッシュ・ロジックの出力に対するビットの数を制御することによって、これら複数のテーブルの全体負荷を更新設定可能にするステップも含めることができる。本方法はブロック74で終了する。
本発明の別の態様は、有形の媒体と組み合わされた、コンピュータ・システムを改良するためのコンピュータ可読プログラム・コードである。本コンピュータ可読プログラム・コードは、コンピュータ・プロセッサ14を包含するコントローラ12に新規コンポーネント16が導入されるときプログラムに挿入時間もしくはハッシュ衝突またはその両方を低減させるように構成することが可能である。また、本コンピュータ可読プログラム・コードは、衝突回避装置18を介し、複数のテーブルおよびバケットあたり複数のキーを使うことによってハッシュ衝突を低減することができる。本コンピュータ可読プログラム・コードは、さらに、コントローラ12と交信するハッシュ装置20を使って、複数のキーを複数のテーブルにマップすることができ、該ハッシュ装置は、一つのキーが変更されたとき、単一のハッシュ・ロジック22を用いて雪崩効果を施し、これは複数のテーブル中のビットのほぼ半数の変更をもたらす。
加えて、本コンピュータ可読プログラム・コードは、ハッシュ装置20を介し、雪崩効果に基づいて複数のテーブルの並列テーブル・ルックアップを設けることができる。また、本コンピュータ可読プログラム・コードは、雪崩効果を複数のテーブルの各々に対する直交ハッシュ関数列に基づくものとすることができ、単一のハッシュ・ロジック22が各直交ハッシュ関数を実行する。
さらに、本コンピュータ可読プログラム・コードは、単一のハッシュ・ロジック22の各ビット出力に対するキーのビットの結果を絞り込むことが可能である。加えて、本コンピュータ可読プログラム・コードは、複数のテーブルを更新設定可能にすることができる。また、本コンピュータ可読プログラム・コードは、単一のハッシュ・ロジック22の出力に対するビットの数を制御することによって、これら複数のテーブルの全体負荷を更新設定可能にすることができる。
前述を踏まえ、システム10は改良されたコンピュータ・システムを提供する。例えば、100Gbpsのイーサネット(R)アプリケーション中で使われている、結合数の少ないテーブル・ルックアップにおいて、「Cuckooアルゴリズム」などの連鎖法を用いる従来式のハッシュ法を使って検索を行うことは可能であるが、これの欠点は、非常に大きなテーブル中に、多くのハッシュ衝突が存在する場合の長い挿入時間にある。これと対照的に、システム10は、検索と同じ時間範囲内での挿入を可能にし、これは、プラグ・アンド・プレイ・ネットワークにおけるパケット学習などで、実行中に新規テーブル挿入を行う場合には重要である。
システム10は、衝突回避および挿入時間低減のため、効率的なハッシュ法もしくはアルゴリズムまたはその両方の選択を用いる。システム10は、非常に大きなテーブルおよび高いスループットに対するパケット・ルックアップを提供する。
一つの実施形態において、システム10は、任意の数のロジック・テーブルに対し任意の型のCRC多項式の除算を使うことが可能な、単一のハッシュ方法のハードウェア実装を提供し、これによりキャッシュ衝突を低減する。システム10のパケット・ルックアップ機能のハードウェア実装は、大きなキーの非常に多くの数(数億)と非常に高いスループット(100Gbpsイーサネット(R))をサポートする。別の実施形態において、システム10は、システム10が任意の型のCRC多項式を設定できる単一のロジック22に基づいている。別の実施形態において、システム10は、複数のハッシュ演算子に対して直交性および高い雪崩効果を用い、これによりいくつかのテーブルを並行して検索することを可能にして衝突を低減する。
一つの実施形態において、各異なるテーブルに対し、効率的な相直交するハッシュ演算子が使われる。別の実施形態において、効率的処理ために、ハッシュ演算子は、例えば、キーのたった一つのビットが変更された場合でもハッシュ結果のビットの約半数が変更されるといった、高い雪崩効果を施す必要がある。
これは、キーの除算または乗算によって可能であるが、100Gbpsの総量スループットに対する非常に限られたクロック・サイクルでは、このような乗算のハードウェア実装は困難である。XOR折り畳みを、ハードウェア中に実装することは可能であるが、これらは良好な雪崩効果を提供しない。CRCは、良好な雪崩効果を提供し、XOR絞り込み法を使いハードウェア中に実装できるので効果的であるが、数多くのロジックXOR回路を必要とし、相異なるテーブルに対する大きなロジック回路をもたらすことになる。
一つの実施形態において、システム10は、衝突を低減するために、4つの異なるテーブルおよびバケットあたり8つのキーを用いる。別の実施形態において、単一のプログラム可能ハッシュ機能22が使われ、そのハッシュ演算結果の各ビットはキーの全ビットの絞り込み結果であり、これは任意の型のCRC多項式の実装を可能にする。これは、多数のXOR回路を必要とするが、4つの異なるテーブルに対する単一のロジック22の共用によって、十分に対応が可能である。
一つの実施形態において、ルックアップ・テーブルによる処理法を最適化するための、このフレキシブルなハードウェア実装には、2〜5個に更新設定可能なハッシュ・テーブルの数を備えることが含まれる(基本的設定は、4つを作動中+1つの予備とすることができよう)。別の実施形態において、5つのハッシュ演算関数は、全面的に更新設定が可能なXORマトリックスである。このマトリックスが各種の型のハッシュ設定を可能にするものであっても、CRCハッシュ関数が望ましい選択肢である。
一つの実施形態において、全体のテーブル負荷は、ハッシュ結果に対するビット数の設定を定めることにより更新設定可能となろう(ハードウェアは、テーブルあたり、19bハッシュ値の4Mエントリまでサポートすることができる)。別の実施形態において、「オン・ザ・フライ」のキー比較は、折り返しのDMA要求および応答を最適化する助力となる。
さらに図8を参照すると、CCBテーブル・ルックアップ・エンジンのハイ・レベル構造が示されている。一つの実施形態において、ルックアップ処理は、受信されたルックアップ要求と、ハッシュ関数を使ってメモリ・アドレスを計算することと、DMA読み取り要求と、DMA読み取り応答と、読み取りデータを元のキーと比較することと、ルックアップ応答を要求元に送信することと、を含む。
さらに図9〜10を参照すると、図9には、5モードのプログラム可能ハッシュ・ロジックのハイ・レベル構造が示されている。図10には、本発明の4対2の例示的実施形態が開示されている。
おそらくはシステム10の最もフレキシブルな実装である、一つの実施形態においては、キーの全ビットが任意のハッシュ・ビットに参加することが可能である。この実装では、ハッシュ・ロジック22中に「インテリジェンス」があるので、ハードウェアと、アルゴリズムの改新およびテーブルの最大数とはほとんど無関係になる。
一つの実施形態において、64bのキー、19bのハッシュ、および5つのハッシュ関数にサイズ形成することによって、
64*19*5=6080の設定ラッチと、
設定を選択するための(64*19)の5対1のマルチプレクサと、
(64*19)の2対1のANDゲートと、
19*(32+16+8+4+2+1)=1197の2対1のXORゲートと、
が設けられる。
45nm実装の大まかな面積見積もりは、
ラッチ:6080*10μm=60800μm
XOR2:1197*4μm=4788μm
AND2:64*19*3μm=3648μm
AO22:3*64*19*4μm=14592μm
合計=(60800+4788+3648+14592)*1.4(60%の配線余裕度を想定)=117359μm、約0.12mmとなる。
図11は、本発明による、XORマトリックスの例を示す。この例では、64bのキーは16bハッシュ値にハッシュされる。
図12は、遠隔ルックアップ要求のタイミングを示す。この例では、4つのハッシュ・テーブルのケースが示されている。図13は、「オン・ザ・フライ」比較エンジンを示す。
一つの実施形態において、システム10は、テーブル・ルックアップのための方法を備えている。この方法には、数億のキーの一つを、テーブル内の例えばバケットなどのスロットにマップするための単一のハッシュ関数を実行する、ハードウェア手段を含めることができ、それによって、該ハッシュ関数は、あるキー中のただ一つのビットが変更されたときでも高い雪崩効果を生成する。また、本方法には、4つの異なるテーブルとバケットあたり8つのキーを実装することによってハッシュ衝突を最少化するための手段を含めることもできる。
一つの実施形態において、システム10は、任意の型のCRC多項式に設定することが可能な単一のロジック22に基づいて、いくつかのテーブルを並行してルックアップができるように、複数のハッシュ演算子に対し直交性および高雪崩効果を用いて衝突を低減しながら、例えば数億といった非常に多くの数の大きなキー、および例えば100Gbpsイーサネット(R)といった非常に高いスループットをサポートする、パケット・ルックアップ機能のハードウェア実装を提供する。
一つの実施形態において、システム10は、単一のハッシュ・ロジック22を実行し、高い雪崩効果によって、キーの非常に大きなセットを、例えばバケットなどのスロットにマップするための方法およびシステムを提供する。別の実施形態において、システム10は、単一のハッシュ・ロジック22を4つの異なるテーブルおよびスロット当たり8つのキーに対し共用することによってハッシュ衝突を低減する。
一部の別の実装においては、フローチャートのブロック中に記載された機能が、図に記載された順序を外れて行われ得ることに留意すべきである。本明細書に示されたフロー図は単なる例であるので、例えば、連続して示された2つのブロックが、関与する機能によって実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。本明細書に記載されたこれらの図またはステップ(またはオペレーション)に対し、本発明の趣旨から逸脱しない多くの変形があり得る。例えば、これらのステップは、同時にもしくは異なった順序でまたはその双方で実施することができ、あるいは、ステップを追加、削除、もしくは修改、またはこれらの組み合わせを実施することが可能である。これら変形の全ては、請求対象の発明の一部と見なされる。
本発明の好適な実施形態を説明してきたが、現在のまたは将来の当業者は、添付の特許請求の範囲に含まれる、さまざまな改良および増強を行うことができよう。これらの請求項は、前述で説明した本発明に対し、適正な保護を保持すると解釈すべきである。
10 コンピュータ・システム
12 コントローラ
14 コンピュータ・プロセッサ
16 新規コンポーネント
18 衝突回避装置
20 ハッシュ装置
21 通信ネットワーク
22 単一のハッシュ・ロジック

Claims (15)

  1. コンピュータ・プロセッサを含むコントローラと
    複数のテーブルであって、バケットあたり複数のキーが使用される前記複数のテーブルと
    前記複数のキーを前記複数のテーブルにマップするための、前記コントローラと交信するハッシュ装置であって、前記ハッシュ装置は、単一のハッシュ・ロジックを用い、前記単一のハッシュ・ロジックが前記複数のテーブルの各々に対する直交ハッシュ関数を実行することで前記複数のテーブルの並列テーブル・ルックアップを設ける、前記ハッシュ装置と、を含むシステムであって
    前記コントローラは、前記コントローラに新規コンポーネントが導入されるときの(1)ハッシューテーブルへのエントリ挿入時間と(2)ハッシュ衝突との少なくとも一つを、前記複数のテーブルの前記並列テーブル・ルックアップを用いて低減する、
    前記システム。
  2. 前記単一のハッシュ・ロジックはCuckooアルゴリズムに基づく、請求項1に記載のシステム。
  3. 前記単一のハッシュ・ロジックは更新設定可能な巡回冗長検査多項式を含む、請求項1に記載のシステム。
  4. 前記単一のハッシュ・ロジックの各ビット出力は、前記キーのビットの絞り込み結果を含む、請求項に記載のシステム。
  5. 前記絞り込み結果はXOR関数によって生成される、請求項に記載のシステム。
  6. 前記複数のテーブルは更新設定可能である、請求項1に記載のシステム。
  7. 前記複数のテーブルの全体負荷は、前記単一のハッシュ・ロジックの出力に対するビットの数を制御することによって更新設定可能である、請求項に記載のシステム。
  8. コンピュータ・プロセッサを含むコントローラがハッシュ装置と交信するステップであって、前記ハッシュ装置は、バケットあたり複数のキーが使用される複数のテーブルに複数のキーをマップするためのものである、前記交信するステップと、
    前記ハッシュ装置が、単一のハッシュ・ロジックを用いて前記複数のテーブルの各々に対する直交ハッシュ関数を実行することで前記複数のテーブルの並列テーブル・ルックアップを設けるステップと、及び
    前記コントローラが、前記コントローラに新規コンポーネントが導入されるときの(1)ハッシューテーブルへのエントリ挿入時間と(2)ハッシュ衝突との少なくとも一つを、前記複数のテーブルの前記並列テーブル・ルックアップを用いることで低減するステップと、
    を含む方法。
  9. 前記単一のハッシュ・ロジックの各ビット出力は、前記キーのビットの絞り込み結果を含む、請求項に記載の方法。
  10. 前記複数のテーブルは更新設定可能である、請求項に記載の方法。
  11. 前記複数のテーブルの全体負荷は、前記単一のハッシュ・ロジックの出力に対するビットの数を制御することによって更新設定可能である、請求項10に記載の方法。
  12. コンピュータ・プログラムであって
    コンピュータ・プロセッサを含むコントローラに、ハッシュ装置と交信するステップであって、前記ハッシュ装置は、バケットあたり複数のキーが使用される複数のテーブルに複数のキーをマップするためのものである、前記交信するステップを実行させ、
    前記ハッシュ装置に、単一のハッシュ・ロジックを用いて前記複数のテーブルの各々に対する直交ハッシュ関数を実行することで前記複数のテーブルの並列テーブル・ルックアップを設けるステップを実行させ、及び
    前記コントローラに、前記コントローラに新規コンポーネントが導入されるときの(1)ハッシューテーブルへのエントリ挿入時間と(2)ハッシュ衝突との少なくとも一つを、前記複数のテーブルの前記並列テーブル・ルックアップを用いることで低減するステップを実行させる、
    前記コンピュータ・プログラム。
  13. 前記単一のハッシュ・ロジックの各ビット出力は、前記キーのビットの絞り込み結果を含む、請求項12に記載のコンピュータ・プログラム。
  14. 前記複数のテーブルを更新設定可能である、請求項12に記載のコンピュータ・プログラム。
  15. 前記複数のテーブルの全体負荷は、前記単一のハッシュ・ロジックの出力に対するビットの数を制御することによって更新設定可能である、請求項14に記載のコンピュータ・プログラム。
JP2013081290A 2012-05-20 2013-04-09 ハッシュ衝突低減システム、方法及びプログラム Active JP6234048B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/475,990 US8762399B2 (en) 2012-05-20 2012-05-20 Hash collision reduction system
US13/475990 2012-05-20

Publications (2)

Publication Number Publication Date
JP2013242539A JP2013242539A (ja) 2013-12-05
JP6234048B2 true JP6234048B2 (ja) 2017-11-22

Family

ID=49511114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013081290A Active JP6234048B2 (ja) 2012-05-20 2013-04-09 ハッシュ衝突低減システム、方法及びプログラム

Country Status (4)

Country Link
US (1) US8762399B2 (ja)
JP (1) JP6234048B2 (ja)
CN (1) CN103425725B (ja)
DE (1) DE102013208213B4 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9117502B2 (en) * 2013-02-06 2015-08-25 Fixnetix Ltd. System and method for memory management of unique alpha-numeric order identifiers subjected to hashing and truncation for mapping to limited memory space
WO2016093809A1 (en) * 2014-12-09 2016-06-16 Hewlett Packard Enterprise Development Lp Storage media sections with alternative cells
US10496680B2 (en) 2015-08-17 2019-12-03 Mellanox Technologies Tlv Ltd. High-performance bloom filter array
US9984144B2 (en) 2015-08-17 2018-05-29 Mellanox Technologies Tlv Ltd. Efficient lookup of TCAM-like rules in RAM
US10049126B2 (en) * 2015-09-06 2018-08-14 Mellanox Technologies Tlv Ltd. Cuckoo hashing with selectable hash
US11194778B2 (en) * 2015-12-18 2021-12-07 International Business Machines Corporation Method and system for hybrid sort and hash-based query execution
US9892057B2 (en) 2016-03-31 2018-02-13 Mellanox Technologies Tlv Ltd. Single double cuckoo hash
US10068034B2 (en) 2016-09-07 2018-09-04 Mellanox Technologies Tlv Ltd. Efficient matching of TCAM rules using hash tables in RAM
US10491521B2 (en) 2017-03-26 2019-11-26 Mellanox Technologies Tlv Ltd. Field checking based caching of ACL lookups to ease ACL lookup search
US10476794B2 (en) 2017-07-30 2019-11-12 Mellanox Technologies Tlv Ltd. Efficient caching of TCAM rules in RAM
CN108111421B (zh) * 2017-11-28 2021-02-09 苏州浪潮智能科技有限公司 一种基于多重哈希的报文分流方法及装置
US11327974B2 (en) 2018-08-02 2022-05-10 Mellanox Technologies, Ltd. Field variability based TCAM splitting
US11003715B2 (en) 2018-09-17 2021-05-11 Mellanox Technologies, Ltd. Equipment and method for hash table resizing
US20200136971A1 (en) * 2019-06-07 2020-04-30 Intel Corporation Hash-table lookup with controlled latency
US10944675B1 (en) 2019-09-04 2021-03-09 Mellanox Technologies Tlv Ltd. TCAM with multi region lookups and a single logical lookup
CN113518033B (zh) * 2020-04-09 2023-01-03 阿里巴巴集团控股有限公司 路由方法、路由器和设备
US11539622B2 (en) 2020-05-04 2022-12-27 Mellanox Technologies, Ltd. Dynamically-optimized hash-based packet classifier
US11782895B2 (en) 2020-09-07 2023-10-10 Mellanox Technologies, Ltd. Cuckoo hashing including accessing hash tables using affinity table
CN112988763B (zh) * 2021-05-14 2021-07-27 北京顺实科技有限公司 一种以部分散列Key为索引的Kv数据库存储与查询方法
US11917042B2 (en) 2021-08-15 2024-02-27 Mellanox Technologies, Ltd. Optimizing header-based action selection
US11929837B2 (en) 2022-02-23 2024-03-12 Mellanox Technologies, Ltd. Rule compilation schemes for fast packet classification
US11968285B2 (en) 2022-02-24 2024-04-23 Mellanox Technologies, Ltd. Efficient memory utilization for cartesian products of rules
CN114666011B (zh) * 2022-03-23 2024-04-16 锐捷网络股份有限公司 一种数据处理方法、装置及电子设备
US12038883B2 (en) 2022-06-16 2024-07-16 Red Hat, Inc. Distributed Storage System with machine learning model for selecting a hash function to map a data item to a storage device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002334114A (ja) * 2001-05-10 2002-11-22 Allied Tereshisu Kk テーブル管理方法及び装置
US7069268B1 (en) * 2003-01-13 2006-06-27 Cisco Technology, Inc. System and method for identifying data using parallel hashing
US7613775B2 (en) * 2003-11-25 2009-11-03 Freescale Semiconductor, Inc. Network message filtering using hashing and pattern matching
US7424591B2 (en) * 2006-06-19 2008-09-09 International Business Machines Corporation Splash tables: an efficient hash scheme for processors
US8266116B2 (en) 2007-03-12 2012-09-11 Broadcom Corporation Method and apparatus for dual-hashing tables
CN101267381B (zh) * 2007-03-13 2010-12-29 大唐移动通信设备有限公司 哈希表操作方法及装置
US8275125B2 (en) 2008-04-21 2012-09-25 Tata Consultancy Services Ltd Method for designing a secure hash function and a system thereof
US8688902B2 (en) 2008-08-06 2014-04-01 Fujitsu Limited Method and system for processing access control lists using an exclusive-or sum-of-products evaluator
US8305271B2 (en) * 2010-03-17 2012-11-06 Microsoft Corporation Cuckoo hashing to store beacon reference data
US8935487B2 (en) * 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US8745013B2 (en) * 2012-05-19 2014-06-03 International Business Machines Corporation Computer interface system

Also Published As

Publication number Publication date
CN103425725B (zh) 2017-04-12
US20130311492A1 (en) 2013-11-21
DE102013208213A1 (de) 2013-11-21
DE102013208213B4 (de) 2016-07-21
JP2013242539A (ja) 2013-12-05
CN103425725A (zh) 2013-12-04
US8762399B2 (en) 2014-06-24

Similar Documents

Publication Publication Date Title
JP6234048B2 (ja) ハッシュ衝突低減システム、方法及びプログラム
US10268452B2 (en) Automatic control system and method for a true random number generator
US9495114B2 (en) System and method for reading and writing data with a shared memory hash table
KR102465738B1 (ko) 하드웨어-가속화된 암호 기법을 위한 키들의 스레드 소유권
US10229068B2 (en) Tunable oblivious RAM
JP2017519433A (ja) パケット処理のためのマルチテーブルハッシュベースのルックアップ
US10997140B2 (en) Method and apparatus for acceleration of hash-based lookup
EP3012747A1 (en) Tcam-based table query processing method and apparatus
US10601711B1 (en) Lens table
US9817594B2 (en) System and method for broadcasting data to multiple hardware forwarding engines
US12019606B1 (en) Hash operation manipulations
US20140040672A1 (en) Methods and structure for trapping requests directed to hardware registers of an electronic circuit
US20230385493A1 (en) Redacting network-on-chip functionality in a system-on-chip architecture
CN105744010A (zh) 一种网络地址转换与访问控制列表规则聚合方法和装置
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
US8595239B1 (en) Minimally disruptive hash table
US12015693B2 (en) Information security protection system and information security protection method
CN113726660B (zh) 一种基于完美哈希算法的路由查找器和方法
US10355994B1 (en) Lens distribution
US11048758B1 (en) Multi-level low-latency hashing scheme
US8160092B1 (en) Transforming a declarative description of a packet processor
CN111526108B (zh) 防止网络攻击的方法与装置
RU2781916C1 (ru) Способ модификации данных при сетевой пакетной коммутации
CN108667951A (zh) 虚拟mac地址的映射方法、装置及存储介质、中继设备
CN117688594B (zh) 数据库加密混淆的方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171024

R150 Certificate of patent or registration of utility model

Ref document number: 6234048

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150