(57)【要約】      （修正有）【課題】テーブル検索を向上したネットワークスイッチを提供する。【解決手段】ネットワークスイッチ１００は、第１のプロセッサコア１０６＿１にパケット処理ユニット１０２＿１〜１０２＿Ｎを含む。インターフェースモジュール１０８は、第１のプロセッサコア１０６＿１に接続され、統一テーブル検索要求インターフェースと統一テーブル検索応答インターフェースとをサポートする。共通メモリプール１１０は、インターフェースモジュール１０８に接続され、多重並列テーブル検索要求をサポートするように構成可能である様々なメモリタイプを含む。【選択図】図１
2014220808.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークスイッチであって、該ネットワークスイッチは、
第１のプロセッサコア内の複数のパケット処理ユニットと、
該複数のパケット処理ユニットに接続されたインターフェースモジュールであって、該インターフェースモジュールは、統一テーブル検索要求インターフェースと統一テーブル検索応答インターフェースとをサポートする、インターフェースモジュールと、
該インターフェースモジュールに接続された共通メモリプールであって、該共通メモリプールは、複数の並列テーブル検索要求をサポートするように構成可能な様々なメモリタイプを含む、共通メモリプールと
を含む、ネットワークスイッチ。
【請求項２】
前記インターフェースモジュールに接続された、第２のプロセッサコア内の第２の複数のパケット処理ユニットをさらに含む、請求項１に記載のネットワークスイッチ。
【請求項３】
前記インターフェースモジュールは、異なる大きさの検索キーを用いる異なるタイプのテーブル検索をサポートするように構成されている、請求項１に記載のネットワークスイッチ。
【請求項４】
前記様々なメモリタイプは、静的ランダムアクセスメモリおよび三元コンテンツアドレス可能なメモリを含む、請求項１に記載のネットワークスイッチ。
【請求項５】
前記インターフェースモジュールは、異なる検索要求を調整する論理を有する個々のエンジンを含む、請求項１に記載のネットワークスイッチ。
【請求項６】
前記エンジンは、最長プレフィックスマッチエンジン、ハッシュ検索エンジン、直接メモリ検索エンジンおよび三元コンテンツアドレス可能なメモリ（ＴＣＡＭ）エンジンを含む、請求項５に記載のネットワークスイッチ。
【請求項７】
前記インターフェースモジュールは、構成テーブルに従って構成されたインターフェースユニットを含む、請求項５に記載のネットワークスイッチ。
【請求項８】
前記構成テーブルは、複数の列および行を含み、各行は、検索プロフィールを特定し、各列は、該検索プロフィールに対する検索コマンドを特定する、請求項７に記載のネットワークスイッチ。
【請求項９】
前記構成テーブルは、該構成テーブルの行へのインデックスとして動作可能なテーブル識別フィールドを含む、請求項７に記載のネットワークスイッチ。
【請求項１０】
前記構成テーブルは、検索キーの構造を特定するキーバイトマスクフィールドを含む、請求項７に記載のネットワークスイッチ。
【請求項１１】
前記構成テーブルは、最長プレフィックスマッチ検索パラメータを含む、請求項７に記載のネットワークスイッチ。
【請求項１２】
前記構成テーブルは、論理的通信レーンパラメータを含む、請求項７に記載のネットワークスイッチ。
【請求項１３】
前記構成テーブルは、サービス質のパラメータを含む、請求項７に記載のネットワークスイッチ。
【請求項１４】
前記構成テーブルは、テーブルエントリ退去パラメータを含む、請求項７に記載のネットワークスイッチ。
【請求項１５】
前記インターフェースモジュールは、構成テーブルのパラメータに従って処理されるテーブル検索要求を処理する、請求項７に記載のネットワークスイッチ。
【請求項１６】
前記テーブル検索要求は、検索キーセクションおよび制御データセクションを含む、請求項１５に記載のネットワークスイッチ。
【請求項１７】
前記検索キーセクションは、キーサイズ、ハッシュ機能構成およびメモリタイル構成から選択されるパラメータを含む、請求項１６に記載のネットワークスイッチ。
【請求項１８】
前記制御データセクションは、データサイズおよびデータメモリタイル構成から選択されるパラメータを含む、請求項１６に記載のネットワークスイッチ。
【請求項１９】
前記共通メモリプールは、アドレス可能データベースセグメントに分割された複数の三元コンテンツアドレス可能なメモリ（ＴＣＡＭ）リソースを含む、請求項１に記載のネットワークスイッチ。
【請求項２０】
前記ＴＣＡＭリソースからの出力は、ＴＣＡＭヒットに対応する静的ランダムアクセスメモリ情報にアクセスするエンコーダによって処理される、請求項１に記載のネットワークスイッチ。
【請求項２１】
前記共通メモリプールは、異なる数のテーブルと異なる検索タイプとに対して代替的に構成可能である、請求項１に記載のネットワークスイッチ。
【請求項２２】
前記共通メモリプールは、大容量長い待ち時間のテーブルおよび小容量短い待ち時間のテーブルに対して代替的に構成可能である、請求項１に記載のネットワークスイッチ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連の出願への参照
本出願は、２０１３年４月３０日に出願された米国仮特許出願第６１／８１７，８１０号に対して優先権を主張する。上記文献の内容は、参照することによって本明細書において援用される。
【０００２】
技術分野
本出願は、ネットワーク環境における通信に関する。特に、本発明は、高速ネットワーク処理ユニット内のテーブル検索を行うことに関する。
【背景技術】
【０００３】
背景
ネットワークスイッチングユニット内のテーブル検索の例は、メディアアクセス制御（ＭＡＣ）アドレスルックアップのためのハッシュ法、インターネットプロトコール（ＩＰ）ルーティングのための最長プレフィックスマッチング（ＬＰＭ）、アクセス制御リスト（ＡＣＬ）のためのワイルドカードマッチング、および制御データのための直接メモリアクセスを含む。
【０００４】
ソフトウェア規定のネットワーク（ＳＤＮ）が市場に出現した。ＳＤＮは、人が下位機能の抽象を通してネットワークサービスを管理することを可能にする。これは、トラフィックが送信される場所について決定を行うシステム（制御面）を、選択された目的地にトラフィックを転送する下層システム（データ面）から分離することによって行われる。
【０００５】
テーブル検索は、ソフトウェアによって見られるフレキシブル制御経路のコアにおけるものである。スイッチは、各受信パケットのルックアップを行い、検索ヒット結果によって指示されるアクションまたはテーブル検索失敗によって指示されるデフォルトアクションを行う。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
テーブル検索がＳＤＮに対して重大であるので、このような検索を行うために向上された技術を提供することが望ましい。
【課題を解決するための手段】
【０００７】
ネットワークスイッチは、第１のプロセッサコアにパケット処理ユニットを含む。インターフェースモジュールは、パケット処理ユニットに接続されている。インターフェースモジュールは、統一テーブル検索要求インターフェースと統一テーブル検索応答インターフェースとをサポートする。共通メモリプールは、インターフェースモジュールに接続されている。共通メモリプールは、多重並列テーブル検索要求をサポートするように構成可能である様々なメモリタイプを含む。
【０００８】
本願明細書は、例えば、以下の項目も提供する。
（項目１）
ネットワークスイッチであって、該ネットワークスイッチは、
第１のプロセッサコア内の複数のパケット処理ユニットと、
該複数のパケット処理ユニットに接続されたインターフェースモジュールであって、該インターフェースモジュールは、統一テーブル検索要求インターフェースと統一テーブル検索応答インターフェースとをサポートする、インターフェースモジュールと、
該インターフェースモジュールに接続された共通メモリプールであって、該共通メモリプールは、複数の並列テーブル検索要求をサポートするように構成可能な様々なメモリタイプを含む、共通メモリプールと
を含む、ネットワークスイッチ。
（項目２）
上記インターフェースモジュールに接続された、第２のプロセッサコア内の第２の複数のパケット処理ユニットをさらに含む、上記項目に記載のネットワークスイッチ。
（項目３）
上記インターフェースモジュールは、異なる大きさの検索キーを用いる異なるタイプのテーブル検索をサポートするように構成されている、上記項目のいずれかに記載のネットワークスイッチ。
（項目４）
上記様々なメモリタイプは、静的ランダムアクセスメモリおよび三元コンテンツアドレス可能なメモリを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目５）
上記インターフェースモジュールは、異なる検索要求を調整する論理を有する個々のエンジンを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目６）
上記エンジンは、最長プレフィックスマッチエンジン、ハッシュ検索エンジン、直接メモリ検索エンジンおよび三元コンテンツアドレス可能なメモリ（ＴＣＡＭ）エンジンを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目７）
上記インターフェースモジュールは、構成テーブルに従って構成されたインターフェースユニットを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目８）
上記構成テーブルは、複数の列および行を含み、各行は、検索プロフィールを特定し、各列は、該検索プロフィールに対する検索コマンドを特定する、上記項目のいずれかに記載のネットワークスイッチ。
（項目９）
上記構成テーブルは、該構成テーブルの行へのインデックスとして動作可能なテーブル識別フィールドを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目１０）
上記構成テーブルは、検索キーの構造を特定するキーバイトマスクフィールドを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目１１）
上記構成テーブルは、最長プレフィックスマッチ検索パラメータを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目１２）
上記構成テーブルは、論理的通信レーンパラメータを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目１３）
上記構成テーブルは、サービス質のパラメータを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目１４）
上記構成テーブルは、テーブルエントリ退去パラメータを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目１５）
上記インターフェースモジュールは、構成テーブルのパラメータに従って処理されるテーブル検索要求を処理する、上記項目のいずれかに記載のネットワークスイッチ。
（項目１６）
上記テーブル検索要求は、検索キーセクションおよび制御データセクションを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目１７）
上記検索キーセクションは、キーサイズ、ハッシュ機能構成およびメモリタイル構成から選択されるパラメータを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目１８）
上記制御データセクションは、データサイズおよびデータメモリタイル構成から選択されるパラメータを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目１９）
上記共通メモリプールは、アドレス可能データベースセグメントに分割された複数の三元コンテンツアドレス可能なメモリ（ＴＣＡＭ）リソースを含む、上記項目のいずれかに記載のネットワークスイッチ。
（項目２０）
上記ＴＣＡＭリソースからの出力は、ＴＣＡＭヒットに対応する静的ランダムアクセスメモリ情報にアクセスするエンコーダによって処理される、上記項目のいずれかに記載のネットワークスイッチ。
（項目２１）
上記共通メモリプールは、異なる数のテーブルと異なる検索タイプとに対して代替的に構成可能である、上記項目のいずれかに記載のネットワークスイッチ。
（項目２２）
上記共通メモリプールは、大容量長い待ち時間のテーブルおよび小容量短い待ち時間のテーブルに対して代替的に構成可能である、上記項目のいずれかに記載のネットワークスイッチ。
（摘要）
ネットワークスイッチは、第１のプロセッサコアにパケット処理ユニットを含む。インターフェースモジュールは、パケット処理ユニットに接続されている。インターフェースモジュールは、統一テーブル検索要求インターフェースと統一テーブル検索応答インターフェースとをサポートする。共通メモリプールは、インターフェースモジュールに接続されている。共通メモリプールは、多重並列テーブル検索要求をサポートするように構成可能である様々なメモリタイプを含む。
【０００９】
上記内容は、添付した図面に例示されるように、以下の本発明の例の実施形態のより特定の説明から明らかになり、同様の参照文字が、異なる図面を通して同じパーツを指す。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施形態に従って構成されるネットワークスイッチを例示する。
【図２】図２は、本発明の実施形態に従って利用されるインターフェースモジュールと共通メモリプールとを例示する。
【図３】図３は、本発明の実施形態に従って利用される例のインターフェースモジュールおよび共通メモリプールを例示する。
【図４】図４は、本発明の実施形態に従って利用されるテーブル検索構成情報を例示する。
【図５】図５は、本発明の実施形態に関連付けられる一般的テーブル検索パラメータを例示する。
【図６】図６は、本発明の実施形態に関連付けられる直接的テーブルアクセス検索パラメータを例示する。
【図７】図７は、本発明の実施形態に関連付けられるハッシュ検索パラメータを例示する。
【図８】図８は、本発明の実施形態に関連付けられるＴＣＡＭ検索パラメータである。
【図９】図９は、本発明の実施形態に従って利用されるＴＣＡＭアーキテクチャである。
【発明を実施するための形態】
【００１１】
（詳細な説明）
図１は、本発明の実施形態に従って構成されたネットワークスイッチ１００を例示する。ネットワークスイッチ１００は、トラフィック管理器１０１と、１つ以上のパケット処理ユニット１０２＿１〜１０２＿Ｎとを含み、ネットワークスイッチ１００は、処理されたパケットをパケット変更子（ｍｏｄｉｆｉｅｒ）１０４に送達する。このようなコンポーネントは、コア１０６＿１を形成する。各コアの多重のインスタンス（例えば、コア１０６＿１〜１０６＿Ｎ）が存在し得る。インターフェースモジュール１０８は、共通メモリプール１１０にインターフェースを提供する。以下の議論から理解されるように、このアーキテクチャは、多重コアネットワークスイッチのための集中型テーブル検索エンジンをサポートする。各コア１０６は、同じインターフェースモジュール１０８および共通メモリプール１１０を利用し得る。
【００１２】
アーキテクチャは、統一要求および結果インターフェースを通して多重並列テーブル検索をサポートする。共通メモリプール１１０は、メモリリソースの効率的使用をサポートする。以下に説明されるように、アーキテクチャはまた、検索キーを柔軟に生成して、異なる大きさの検索キーを用いて異なるタイプのテーブル検索を行う。ハイブリッドテーブル検索もサポートされる。
【００１３】
図２は、インターフェースモジュール１０８が、１組のメモリ検索論理インターフェース２００＿１〜２００＿Ｎを含むことを例示する。各メモリ検索論理インターフェース２００は、統一テーブル検索要求インターフェースフォーマットと統一テーブル検索応答インターフェースフォーマットとを遵守する。各メモリ検索論理インターフェース２００は、独立要求を行う。従って、共通メモリプール１１０は、多くの並列要求を処理する。
【００１４】
共通メモリプール１１０は、様々なメモリタイプ２０２＿１〜２０２＿Ｎを含む。メモリタイプは、直接アクセスメモリ（例えば、静的ランダムアクセスメモリ（ＳＲＡＭ）および三元コンテンツアドレス可能なメモリ（ＴＣＡＭ）を含み得る。ＴＣＡＭは、格納されたデータワード内の１つ以上のビットのための「Ｄｏｎ’ｔ  Ｃａｒｅ」または「Ｘ」をサポートする。これは、柔軟性を加えるが、ＴＣＡＭが２つの可能状態に代わって３つの可能状態を符号化するので、加えられた柔軟性は、２状態メモリを上回る追加のコストをもたらす。ＴＣＡＭは、しばしば、最長プレフィックスマッチおよびアクセス制御リスト検索のために使用される。ＴＣＡＭは、高価なスイッチコンポーネントである。以下に議論されるように、本発明の実施形態は、ＴＣＡＭリソースを柔軟に活用する。
【００１５】
図３は、インターフェースモジュール１０８および共通メモリプール１１０の実施形態を例示する。インターフェースモジュール１０８は、テーブル検索要求を受信するインターフェースユニット３００を含む。テーブル検索要求は、特定のテーブル検索要求を実装する論理を含むエンジンに向けられる。エンジンは、最長プレフィックスマッチ（ＬＰＭ）エンジン３０２、ハッシュ検索エンジン３０４、直接メモリ検索エンジン３０６およびＴＣＡＭエンジン３０８を含み得る。本発明の実施形態は、各エンジンの多重インスタンスを含む。各エンジンの出力は、オンチップネットワーク３１０に向けられる。オンチップネットワーク３１０は、テーブル要求インターフェースによって特定されるように、共通メモリプール１１０内のメモリリソースの全てへのアクセスを提供するように実装される。
【００１６】
この例において、共通メモリプール１１０は、１組のＳＲＡＭリソース３１２＿０〜３１２＿ＮとＴＣＡＭ３１４とを含む。以下に説明されるように、ＴＣＡＭ３１４内のヒットは、結果的に、対応する制御情報のためのその専用ＳＲＡＭリソースへのアクセスをもたらす。メモリ内のテーブルルックアップの結果は、オンチップネットワーク３１６に向けられ、オンチップネットワーク３１６は、結果をインターフェースユニット３００へルーティングする。
【００１７】
図４は、本発明の実施形態に従って使用され得る構成テーブルを例示する。構成テーブルは、インターフェースユニット３００の中に１組のプロフィールを確立する。構成テーブルは、検索キーがどのように形成されるか、どのタイプの検索を行うか、および、どの処理エンジンを利用するかを確立する。この例において、構成テーブルは、４個の列および８個の行を有する。図面は、１つの列に対するビットフィールドを例示する。第１のフィールドは、８ビット「ｔａｂｌｅ＿ｉｄ」であり、それがテーブルの行内のインデックスとして機能する。この例に８個の行が存在するので、８個の異なる検索プロフィールへのアクセスが存在する。各プロフィールは、最大４つの検索コマンドまでを包含し、各検索は、同じテーブルか、または異なるテーブルであり得る。
【００１８】
次のフィールドは、４８ビット「ｋｅｙ＿ｂｙｔｅ＿ｍａｓｋ」フィールドである。このフィールドは、検索キーの構造を特定する。すなわち、マスク（ｍａｓｋ）は、入力された統一テーブル要求インターフェースからのどのビットが特定の検索コマンドに対して解釈される必要があるかを伝える。例えば、レイヤ２ブリッジに対する目的地アドレスは、目的地ＭＡＣアドレスの場所に対応するバイトビットマップだけではなく、ハッシュルックアップに対するブリッジドメインも設定する。同時に、ソースアドレスルックアップは、別個の検索コマンドで行われ得、検索キーバイトマスク（ｋｅｙ  ｂｙｔｅ−ｍａｓｋ）が、ソースＭＡＣアドレスおよび同じブリッジドメインに対して設定される。バイトビットマップを有する検索キーを形成する柔軟性は、制御経路設計を簡単化にするだけではなく、ハードウェアリソースも減少させる。なぜなら、この２つのルックアップに対して２回同じブリッジドメインを抽出するために必要とされる追加のハードウェアがないからである。さらに、ソフトウェアは、ある検索要求に対する優先度を特定し得る。例えば、ブリッジング環境において、ユーザは、下位優先度としてソースアドレスルックアップを設定し得、その結果、検索エンジンが、予備の帯域幅であるときのみにこの検索を行う。なぜなら、ソースアドレスが常に将来のパケットから導出され得るからである。これは、検索エンジンスキームの用途と利点を例示する１つの例である。本発明は、柔軟性を容易にする、プロトコールに無関係の検索キーを提供することも認識されるべきである。
【００１９】
「ｅｃｍｐ＿ｅｎ」および「ｅｃｍｐ＿ｈａｓｈ＿ｂｙｔｅ＿ｓｔａｒｔ」フィールドは、ＬＰＭ検索に対して特定である。「ｒｓｌｔ＿ｑｗ＿ｓｔａｒｔ」フィールドは、結果が送信される論理通信レーンに対して開始点を特定し、その一方で、「ｒｓｌｔ＿ｑｗ＿ｉｎｃ」フィールドは、結果を送信するべきレーンの増加数を特定する。例えば、単一の検索コマンドの結果は、２５６ビットの幅があり、４つのレーンに分割され得、各レーンが６４ビットの幅がある。全体の検索プロフィールに対する結果は、最大１０２４ビットであり得、従って、全ての結果を戻すように複数のサイクルを行い得る。各検索コマンドは、「ｒｓｌｔ＿ｑｗ＿ｓｔａｒｔ」を０〜１５の間に構成し、「ｒｓｌｔ＿ｑｗ＿ｉｎｃ」を０〜３の間に構成して１６個のダブルワードで結果を加える箇所を特定する。
【００２０】
「ｒｅｇｒｅｔ＿ｔａｂｌｅ」フィールドは、サービス質のパラメータであり、それは、検索エンジンが混雑する場合を特定し、それは、クエリーの再展開を要求する。「ａｇｅ＿ｅｎ」フィールドは、デバッグの目的に対する助けであるテーブルエントリ退去パラメータである。「ｈａｓｈ＿ｗａｙ＿ｃｎｔ」フィールドは、特定のハッシュ検索をサポートする。「ｅｎｇ＿ｉｄ」フィールドは、複数の処理エンジンのうちの１つを特定する。
【００２１】
図５は、本発明の実施形態に従って構成された一般的検索エンジンテーブル５００を例示する。検索エンジンテーブル５００は、図４の構成情報に従って処理される検索要求を特定する。一実施形態において、検索エンジンテーブル５００は、検索キーセクション５０２と制御データセクション５０４とを含む。検索キーセクション５０２は、個々の検索キーパラメータ５０６＿１〜５０６＿Ｎを有する。検索キーパラメータは、キーサイズ、ハッシュ機能構成、メモリタイル構成等から選択され得る。従って、本発明は、異なる特定のキーサイズをサポートする。ハッシュ機能構成パラメータは、人がメモリへのマップに異なる通路を特定することを可能にする。メモリタイル構成は、物理メモリリソースの範囲である。
【００２２】
同様に、制御データセクション５０４は、個々のデータパラメータ５０８＿１〜５０８＿Ｎを有する。データパラメータは、データサイズ、データメモリタイル構成等から選択され得る。従って、本発明は、異なるデータサイズの結果をサポートする。メモリタイル構成は、メモリリソースへの抽象化された参照を可能にする。
【００２３】
従って、キーサイズおよび制御データの両方は、異なるサイズで構成され得、（ＴＣＡＭテーブル以外の全てのテーブルは、正確なアプリケーション使用に基づいて、集中型ＳＲＡＭプールのいくつかの部分に柔軟に格納されるように構成されている。
【００２４】
検索エンジンテーブル５００は、様々な検索クリエーをサポートする。図６は、直接テーブルアクセスのために構成されたテーブル６００を例示する。検索キーセクション５０２が予約される。制御データセクションは、データサイズ、プール、ｒｏｗ＿ｂｌｋ＿ｓｔａｒｔおよびｒｏｗ＿ｂｌｋ＿ｃｎｔのパラメータを含む。これらのパラメータは、８個の同一のプールに分割された、１６ＭＢのＳＲＡＭを有するＳＲＡＭプールに関連して使用され得る。各プールは、２ＭＢのメモリである。各サイクルで１つの読み取りおよび１つの読み取り／書き込みの動作をサポートする二重ポートメモリが使用され得る。物理的に、プール内の全てのあＳＲＡＭタイルは、８個のタイルに組織化され、各々が、２５６ビットの幅および８Ｋの行である。行ブロックは、高レベルテーブルアドレスと物理メモリアドレスとの間における中間表示である。これは、物理タイル選択からのメモリプールの論理ビューの分離を可能にする。各行ブロックは、１Ｋの行を表す。
【００２５】
ＳＲＡＭは、異なるテーブルタイプとエントリ幅とを格納するように柔軟に構成され得る。ハッシュテーブルおよびＬＰＭテーブルのアルゴリズムは、最も優れたメモリ効率のために複数のメモリアクセスを要求する。８個の別個のプールへのＳＲＡＭリソースの分割は、並列メモリアクセスおよびオンチップネットワークサイズの減少を可能にする。
【００２６】
ＳＲＡＭに関連付けられたテーブルは、行ブロックに割り当てられ、各行ブロックは、１０２４個のメモリ行である。テーブルエントリは、３２ビット、６４ビット、１２８ビット、２５６ビットまたは５１２ビットであり得、その一方で、物理ＳＲＡＭの各々が２５６ビットの幅である。エントリが２５６ビット未満である場合、複数のエントリは、１つのＳＲＡＭ行に存在し、論理テーブルアドレスの下位ビットが、同じ行内の複数のエントリのうちの１つを選択するために使用され、論理テーブルアドレスの上位ビットが、メモリ行およびメモリタイルを選択するために使用される。エントリが５１２ビットの幅である場合、それは、２つのＳＲＡＭタイルを使用する。二重タイルエントリは、その下位の２５６ビットを偶数番目のタイルに格納し、その上位の２５６ビットを中間の次のタイル内の同じ行に格納する。各タイルが各クロックサイクルで最大２つのアクセスを有するが、複数のテーブルは、同じタイル内に存在し得、時間ドメイン多重化方式で各テーブルへのアクセスを可能にする。一般的に、パケット構文解析結果に応じて、同じソースからの異なるパケットは、異なるルックアップを要求し得、結果的に、複数のテーブルが、同じメモリタイルで構成されるが、パイプラインが大きなテーブル容量を提供する場合、異なるパケットに対してアクセスされる。最小のテーブルサイズが１０２４個のエントリであり、しかしながら、最も大きなテーブルは、全てのＳＲＡＭリソースを占有し得る。検索テーブルのサイズは、各特定のネットワークアプリケーションの異なる要件を有する検索テーブルの数とのトレードオフであり得る。
【００２７】
図７は、ハッシュ検索のために構成されたテーブル７００を例示する。制御データセクション５０４が予約される。検索キーセクションは、以下のパラメータ：ｋｅｙ＿ｓｉｚｅ、ｄａｔａ＿ｓｉｚｅ、ｄｕａｌ＿ｔｉｌｅ＿ｅｎｔｒｙ、ｗａｙ＿ｂｍｐ、ｂｕｃｋｅｔ＿ｄｅｐｔｈ、ｈａｓｈ＿ｆｕｎｃおよびｒｏｗ＿ｂｌｋ＿ｓｔａｒｔを有する。この例において、検索エンジンハッシュ機能は、７個の異なるサイズから選び得、そこから選ぶ４個の異なるハッシュ機能がある。各通路は、対応するプールに固定され、制御データがキーと共に進む。
【００２８】
図８は、ＴＣＡＭ検索のために構成されたテーブル８００を例示する。制御データセクション５０４は、キーサイズパラメータ、データベース開始パラメータおよびデータベース終了パラメータを有する。制御データセクションは、データサイズパラメータを有する。一実施形態において、検索キーセクションは、６４ビット、１２８ビット、１９２ビットおよび３８４ビットの可能サイズを有する。一実施形態において、データサイズは。３２ビット、６４ビット、１２８ビットまたは２５６ビットであり得る。
【００２９】
全てのＴＣＡＭルックアップは、オンチップネットワークを通して共用のＴＣＡＭ３１４のプールにルーティングされ、共用のＴＣＡＭ３１４のプールは、対応する制御データの格納のための関連付けられたオンダイＳＲＡＭを有する。制御データは、別のオンチップネットワークを通して進み、個々のテーブル結果インターフェースに戻るようにルーティングする。
【００３０】
図９は、本発明の実施形態において、ＴＣＡＭエンジン３０８が、１６個のエンジンＥｎｇｉｎｅ＿０〜Ｅｎｇｉｎｅ＿１５を含むことを例示する。ＴＣＡＭ３１４は、１６個のデータベースＤＢ＿０〜ＤＢ＿１５に分割される。各データベースは、１組のタイルを有し得る。
【００３１】
各ＴＣＡＭデータベースは、異なるキーサイズ（例えば、６４ビット、１２８ビット、１９２ビットまたは３８４ビット）であるように構成され得る。ＴＣＡＭテーブルは、１つ以上の連続したＴＣＡＭデータベースであり得る。そのように、一実施形態において１６個の異なるＴＣＡＭテーブルがあり、各々が１つのデータベースを有し、または１つのＴＣＡＭテーブルが、１６個のデータベースの全てを有する。図９は、ＴＣＡＭ３１４が１６個のデータベースＤＢ＿０〜ＤＢ＿１５を含むことを例示する。アプリケーションに応じて、複数の小さいサイズのテーブルまたは少ない大きいサイズのＴＣＡＭテーブルが、ハードウェアが高価で、多量の電力を消費するＴＣＡＭメモリタイルを完全に利用するように構成され得る。
【００３２】
ＴＣＡＭ３１４からの出力は、ＴＣＡＭヒットに対応するＳＲＡＭエントリにアクセスするエンコーダ９００に適用される。この実施形態において、ＳＲＡＭプール３１２は、ＳＲＡＭバンクＳＲＡＭ＿０〜ＳＲＡＭ＿３１を含む。
【００３３】
検索エンジンは、最大１６個の並列ＴＣＡＭルックアップを行うことが可能である。構成に応じた偶発的な待ち時間トレードオフがある。１つの極端で、単一の大きなテーブルは、全てのメモリ空間を占有するが、比較的に長い待ち時間を有する。複数のより小さいテーブルは、全メモリに存在し、その場合、より小さなテーブルがより短い待ち時間を有する。
【００３４】
各ＴＣＡＭデータベースに対する専用のＳＲＡＭの使用は、ＴＣＡＭテーブルに対するアクセス待ち時間を減少させる。ＴＣＡＭテーブルの短い待ち時間および柔軟性に起因して、このスキームは、ＴＣＡＭテーブルを、様々なアプリケーションに対する魅力的な代替物にさせる。それらのアプリケーションは、ＡＣＬおよびＬＰＭを含むが、それらに限定されていない。
【００３５】
直接アクセステーブル、ハッシュテーブルおよびＬＰＭテーブルの全ては、集中型オンチップＳＲＡＭプールを共用し、集中型オンチップＳＲＡＭプールは、別個のオンチップネットワークを通して処理エンジンおよび結果インターフェースと相互接続される。テーブルエントリが古くなって、ある期間内にいずれのパケットによってもヒットされない場合、検索エンジンは、テーブル老化機構を通してＣＰＵに通知する。
【００３６】
ハッシュ処理エンジンの各々は、複数の受信要求を順に待たせる、関連付けられた入力バッファを有する。エンジンが全ての要求者によって定量を超過される場合、いくつかの下位優先度の要求者が落とされる。受信要求に優先度を付ける能力は、特に、パケットの長さを変化させることが処理帯域幅のオーバー供給を必要とする、パケットスイッチのコンテキストにおいて予備の帯域幅を完全に利用することを可能にする。このスキームは、システム構成においてより大きな柔軟性を提供する。
【００３７】
説明の目的のために、上記説明は、本発明の全体的な理解を提供するように具体的な述語を使用した。しかしながら、当業者にとって、具体的な詳細は、本発明を実施するために必要とされないことが容易に理解できる。従って、本発明の具体的な実施形態の上記説明は、例示および説明の目的のために提示されている。それらは、網羅的であるように意図されず、または本発明を開示された精確な態様に限定するように意図されず、明らかに、多くの変更およびバリエーションは、上記教示を考慮して可能である。実施形態は、本発明の原理およびその実際のアプリケーションを説明するために、選択および説明され、それによって、実施形態は、当業者が、熟考された特定の使用に適するように、様々な変更と共に、本発明および様々な実施形態を最もよく利用することを可能にする。以下の請求項およびそれらの同等物は、本発明の範囲を規定する。
【図１】
2014220808.tif 000003
【図２】
2014220808.tif 000004
【図３】
2014220808.tif 000005
【図４】
2014220808.tif 000006
【図５】
2014220808.tif 000007
【図６】
2014220808.tif 000008
【図７】
2014220808.tif 000009
【図８】
2014220808.tif 000010
【図９】
2014220808.tif 000011
【外国語明細書】
2014220808000001.pdf