JP5245169B2 - 集積チップ、半導体チップ、及び方法 - Google Patents

集積チップ、半導体チップ、及び方法 Download PDF

Info

Publication number
JP5245169B2
JP5245169B2 JP2011513755A JP2011513755A JP5245169B2 JP 5245169 B2 JP5245169 B2 JP 5245169B2 JP 2011513755 A JP2011513755 A JP 2011513755A JP 2011513755 A JP2011513755 A JP 2011513755A JP 5245169 B2 JP5245169 B2 JP 5245169B2
Authority
JP
Japan
Prior art keywords
address
network
search
tables
address table
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
JP2011513755A
Other languages
English (en)
Other versions
JP2011523334A (ja
Inventor
ホワイト、マーティン
メルマン、デイビット
ミズラヒ、タイ
Original Assignee
マーベル ワールド トレード リミテッド
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 マーベル ワールド トレード リミテッド filed Critical マーベル ワールド トレード リミテッド
Publication of JP2011523334A publication Critical patent/JP2011523334A/ja
Application granted granted Critical
Publication of JP5245169B2 publication Critical patent/JP5245169B2/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • 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/742Route cache; Operation thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願の相互参照
本願は、参照することによって、本明細書に組み込まれる、2008年6月19日出願の米国暫定出願整理番号第61/074,001号の利益を主張するものである。
電子デバイスは、ネットワークを通して、相互に通信可能である。ネットワーク内で通信する方法の1つは、情報のパケットを送信することによるものである。典型的には、パケットは、パケットヘッダと、データのペイロードとを含有する。データのペイロードは、2つの電子デバイス間で通信される情報である。ヘッダは、送信デバイスから受信/宛先デバイスにパケットを転送するために使用される情報を有する。
パケットが、大規模ネットワーク内の遠隔電子デバイスに到達するためには、パケットは、異なるネットワークリンクを交差することになるであろう。ネットワークリンクは、スイッチに加えて、他のネットワーキングデバイスにおいても終端する。スイッチは、ネットワークリンクおよび他のネットワークデバイスに対応する多くのポートを通して、ネットワークとインターフェースをとる。スイッチが、ポート上でパケットを受信すると、スイッチは、次いで、パケットを別のポートにルーティングし、別のリンクに沿って、伝送を継続する。最終的に、パケットは、エラーが生じない場合、受信/宛先デバイスに到達するであろう。スイッチは、ソースアドレス、宛先アドレス、またはパケットヘッダ内の他のアドレスに基づいて、パケットをルーティングする。ソースアドレスは、パケットを送信する電子デバイスのアドレスであって、宛先アドレスは、パケットを受信する電子デバイスである。
一実施例では、スイッチは、100ポートに接続されてもよい。経時的に、スイッチは、アドレステーブル内の情報をコンパイルし、パケットの宛先アドレスに基づいて、パケットをルーティングするための最良ポートを格納するであろう。例えば、スイッチが、1000の宛先アドレスを伴うパケットに24のポート値を割り当てると仮定する。本割当(マッピングと称される)は、アドレステーブル内に設定される。その後、1000のアドレスが、スイッチによって受信されると、スイッチは、アドレステーブルを検索し、24のポート値がアドレス1000に割り当てられていることを見つけるであろう。スイッチは、パケットが宛先デバイスに向かって進行するように、パケットをポート24にルーティングするであろう。
時として、スイッチは、アドレステーブル内に存在しないアドレスを伴うパケットを受信する。この場合、スイッチは、パケットをルーティングすべき場所を判定することが不可能である。アドレステーブル内に存在しないアドレスのポートを判定するために、スイッチは、複数のポートにパケットをフラッディングしてもよい。スイッチは、スイッチがパケットの宛先が常駐する場所を把握するまで、複数のポートにパケットをフラッディングするであろう。
ポートに冗長メッセージをフラッディングすることは、スイッチのスループットに影響を及ぼす。複数のポートに対して、冗長メッセージを繰り返し処理させることは、受信したパケットの処理を中断させる。アドレスを見つける確率を向上させ、ポートのフラッディングを回避するために、比較的に大規模なアドレステーブルが、シリコンチップ内に設計される。例えば、チップは、4つの32Kアドレステーブルを含有し、各アドレステーブルは、32Kアドレスを格納してもよい。複数のアドレステーブルを提供することは、同一転送テーブルの複数のコピーを必要とし得る高転送速度を充足させる。
ギガビット受動光ネットワーキング(GPON)規格等の新しい規格は、スイッチポート数の増加を必要とし、したがって、アドレステーブルのサイズの増加を必要とする。増加は、スイッチがGPON規格を充足させるための適切なデータスループットを提供するために必要とされる。しかしながら、32Kエントリを上回るアドレステーブルサイズの増加は、シリコンチップの製造費に影響を及ぼす。メモリにアクセスするためのより優れた方法が所望され得る。
例示的実施形態は、2つ以上のアドレステーブルを伴って実装される、集積チップを含む。2つ以上のアドレステーブルは、アドレスを格納するための別個のメモリテーブルを伴って実装される。2つ以上のアドレステーブルは、第1のアドレステーブルと、第2のアドレステーブルとから成る。接続ラインは、第1のアドレステーブルと第2のアドレステーブルとを接続し、カスケード型アドレステーブルを生成する。検索論理は、あるアドレスに対して、第1のアドレステーブルの検索を起動する。アドレスが見つからない場合、検索論理は、接続ラインを通して、第2のアドレステーブルの検索を起動する。
別の実施形態は、メモリブロックから成る、半導体チップを含む。メモリブロックは、ネットワークパラメータを別々に格納する、複数のテーブルから成る。複数のテーブルは、少なくとも1つの接続ラインを介して、直列に接続され、カスケード型パラメータテーブルを形成する。半導体チップは、検索論理をさらに備える。検索論理は、ネットワークパラメータを受信し、複数のテーブルを連続的に順番に検索し、整合パラメータを見つける。
別の実施形態は、方法を含む。方法は、ネットワークパケットをデコードし、宛先アドレスを判定する。第1のアドレステーブルは、宛先アドレスと整合するアドレスに対して検索される。整合アドレスが見つからない場合、第1のアドレステーブルと直列に接続されている第2のアドレステーブル内の検索を起動するための信号が発生される。直列に接続された第2のアドレステーブルは、宛先アドレスと整合するアドレスに対して検索される。宛先アドレスが見つかった場合、ネットワークパケットは、宛先アドレスに対応する宛先ポートに伝送される。
本明細書に組み込まれ、その一部を成す付随の図面は、本発明の種々の態様の種々の例示的システム、方法、および他の例示的実施形態を例証する。図中に例証される要素の境界(例えば、ボックス、ボックス群、または他の形状)は、境界の一実施例を表すことを理解されるであろう。当業者は、いくつかの実施例では、一要素が、複数の要素として設計されてもよく、または複数の要素が、一要素として設計されてもよいことを理解するであろう。いくつかの実施例では、別の要素の内部構成要素として示される要素は、外部構成要素として実装されてもよく、またその逆も然りである。さらに、要素は、原寸に比例して描写されていない場合がある。
検索のためのカスケード型メモリテーブルと関連付けられたルーティングコントローラの実施形態を例証する。
検索のためのカスケード型メモリテーブルと関連付けられたネットワークスイッチの実施形態を例証する。
検索のためのカスケード型メモリテーブルと関連付けられた装置の実施形態を例証する。
検索のためのカスケード型メモリテーブルと関連付けられた装置の別の実施形態を例証する。
検索のためのカスケード型メモリテーブルと関連付けられた装置の別の実施形態を例証する。
検索のためのカスケード型メモリテーブルと関連付けられた方法の一実施形態を例証する。
検索のためのカスケード型メモリテーブルと関連付けられた方法の別の実施形態を例証する。
カスケード型メモリテーブルと関連付けられた例示的システムおよび方法、ならびに均等物が動作し得る、コンピューティング環境の実施形態を例証する。
本明細書では、カスケード型メモリテーブルと関連付けられた例示的システム、方法、および他の実施形態について説明する。カスケード型メモリテーブルを形成するメモリテーブルは、概して、相互に独立して動作し、別々に検索されるように構成される。しかしながら、メモリテーブル内にアドレスが見つからない時、カスケード型構成は、検索を次のメモリテーブルに転送させる。例えば、一構成では、テーブルは、転送情報に対して検索されてもよく、別の構成では、メモリテーブルは、データ値、フィルタリング情報、またはポリシング情報に基づいて、検索されてもよい。当業者は、テーブルが、他の情報に対して検索されてもよいことを理解するであろう。
一実施形態では、装置は、異なるポート群にサービシングするメモリアドレステーブルを伴って実装される。アドレステーブルは、アドレスを格納する別個のメモリテーブルとして実装される。電気接続ラインは、アドレステーブルを接続し、カスケード型アドレステーブル構成を形成する。一実施形態では、カスケード型アドレステーブル構成は、単一同質データベースと、カスケード型アドレステーブル検索を実行する能力とを提供するが、アドレステーブルは、別々に動作する。装置は、アドレステーブルのカスケード型検索および/または並行検索を起動するように構成される、検索論理を備える。
一実施形態では、装置がアドレスを受信すると、装置は、アドレステーブルのうちの1つ内のアドレスを検索する。アドレスが見つからない場合、検索は、電気接続ラインを介して接続された次のアドレステーブルにカスケーディングされる。次のアドレステーブルが、次いで、検索される。アドレステーブルを検索し、アドレスが見つからない時、検索をカスケーディングするプロセスは、アドレスが見つかるまで、または検索が終了するまで繰り返される。2つ以上のテーブルを検索する能力を提供することは、アドレスが見つけられる確率を増加させ、検索される第1のテーブル内でアドレスが見つからない時、要求メッセージがネットワークにフラッディングされる機会を減少させる。
一実施形態では、装置は、高データ速度アップリンクと低データ速度ラインカードとの間のインターフェースとして機能するように構成される、回路を備える。ラインカードは、電子デバイスとネットワークとの間にインターフェースを提供するデバイスである。装置は、少なくとも部分的に、アドレスルーティングテーブルに基づいて、アップリンクとラインカードとの間でパケットをルーティングする機能を果たす。
以下は、本明細書で採用される選択された用語の定義を含む。定義は、用語の範囲内にあって、実装のために使用され得る、構成要素の種々の実施例および/または形態を含む。実施例は、制限を意図するものではない。用語の単数形および複数形の両方とも、定義内であり得る。
「一実施形態」、「ある実施形態」、「一実施例」、「ある実施例」等の参照は、そのように記述される実施形態または実施例が、特定の機能、構造、特徴、特性、要素、または制限を含み得るが、あらゆる実施形態または実施例が、特定の機能、構造、特徴、特性、要素、または制限を必ずしも含むわけではないことを示す。さらに、語句「一実施形態では」の反復使用は、必ずしも同一実施形態を指すものではないが、同一実施形態を指す場合もある。
「コンピュータ可読媒体」は、本明細書で使用される場合、信号、命令、および/またはデータを格納する媒体を指す。コンピュータ可読媒体は、不揮発性媒体および/または揮発性媒体を含むが、それらに限定されない、形態をとってもよい。不揮発性媒体は、例えば、光ディスク、磁気ディスク等を含んでもよい。揮発性媒体は、例えば、半導体メモリ、動的メモリ等を含んでもよい。コンピュータ可読媒体の一般的形態は、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス、コンパクトディスク(CD)、他の光媒体、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、メモリチップまたはカード、メモリスティック、およびコンピュータ、プロセッサ、あるいは他の電子デバイスが読取可能な他の媒体を含んでもよいが、それらに限定されない。
「論理」は、本明細書で使用される場合、機能あるいは作用を実行するために、および/または別の論理、方法、および/またはシステムから機能あるいは作用を生じさせるために、機械に格納される、あるいはそこで実行される、ハードウェア、ファームウェア、ソフトウェア、および/またはそれぞれの組み合わせを含むが、それらに限定されない。論理は、ソフトウェア制御マイクロプロセッサ、個別論理(例えば、ASIC)、アナログ回路、デジタル回路、プログラム式論理デバイス、命令を含有するメモリデバイス等を含んでもよい。論理は、1つ以上のゲート、ゲートの組み合わせ、または他の回路構成要素を含んでもよい。複数の論理的論理について説明される場合、複数の論理的論理を1つの物理的論理に組み込むことが可能であってもよい。同様に、単一の論理的論理について説明される場合、その単一の論理的論理を複数の物理的論理間に分散させることが可能であってもよい。
「メモリアクセス」は、本明細書で使用される場合、メモリセルあるいはメモリロケーション群の書込、読取、整合、および/またはプログラミングを含むが、それらに限定されない。メモリアクセスは、2つの読取ポートを使用する、同一メモリに対する二重読取を含んでもよい。メモリアクセスは、当業者によって理解されるように、メモリとの他の種類の交信を含むことも可能である。
図1は、ルーティング情報に対して、メモリテーブルを検索するように構成される、ルーティングコントローラ100の一実施形態を例証する。ルーティングコントローラ100は、別個のメモリブロック(例えば、メモリテーブル1〜G)を伴って実装される、2つ以上のメモリテーブルを備える。メモリテーブル1〜Gは、アドレスを格納する。電気接続ライン115A〜Gは、メモリテーブルを接続し、カスケード型アドレステーブル構成を生成する。メモリテーブルは、1つのメモリテーブルが、1つの下流テーブルと、1つの上流テーブルとに直列に接続されるように、接続される。直列に接続されたメモリテーブル1−Gは、メモリテーブルのカスケード型チェーンを形成する。一実施形態では、チェーンは、閉鎖型であってもよい。別の実施形態では、チェーンは、チェーンの頂点において入力する検索情報による開放型であってもよい。このように、個々のメモリテーブル1〜Gは、直列リンク全体に検索を転送するように構成される、アドレスデータベースとして機能する。ある点では、構成は、単一同質データベースとしてみなされ得る。
一実施形態では、メモリテーブル1〜Gは、独立ネットワークパケット転送テーブルである。しかしながら、個々のメモリテーブル1〜Gのカスケーディングは、直列リンク115A〜Gを通して接続される1つ以上の他のメモリテーブル1−Gを経由して、ネットワークパケットを転送する能力を提供する。カスケード型メモリテーブルを通したネットワークパケットの転送によって、単一メモリテーブルは、メモリテーブルがサイズ拡張されたかのように動作可能となるが(例えば、カスケード型テーブルと同程度の規模)、依然として同質である。最終メモリテーブルに対する検索要求は、最終メモリテーブルが検索される最終メモリテーブルであることを示す情報を含んでもよい。本情報によって、最終メモリテーブルは、前の検索テーブルによって実行されなかった他の特有タスクを実行することが可能となる。
一実施形態では、メモリテーブル1〜Gは、アドレスおよびルーティング情報を格納するように構成される。ルーティング情報は、ルーティングコントローラ100によって使用され、アップリンクライン105A〜Gとダウンリンクライン110A〜Nとの間でデータをルーティングする。ネットワークトラフィック/パケットは、アップリンクライン105A〜Gのうちの1つから、ダウンリンクライン110A〜Nのうちの1つへと、またはその逆にルーティングされてもよい。
一実施形態では、ルーティングコントローラ100は、検索論理120を含む。検索論理120は、メモリテーブル1〜G内の検索を制御する。パケットが受信されると、検索論理120は、パケットのアドレスに対して、対応するメモリテーブル内の検索を起動する。検索されるメモリテーブル内にアドレスが見つからない場合、検索論理120は、関連付けられた電気接続ライン115A〜Gを通して、直列に接続されたメモリテーブル内のアドレスに対して、検索を起動するように構成される。別の実施形態では、1つのメモリは、1つの検索コントローラと関連付けられ、結合される。1つのメモリの検索コントローラは、別のメモリの前または後の検索を把握していない場合がある。したがって、1つのメモリに結合される検索コントローラは、メモリの最終検索と関連付けられたメモリの検索を考慮する。
一実施形態では、アドレステーブル1およびアドレステーブル2は、カスケード型アドレステーブルを生成するように、事前構成される、または構成可能である。カスケード型アドレステーブルは、ルーティングコントローラ100によって、電気接続ライン115Aをスイッティングし、アドレステーブル1およびアドレステーブル2をともにカスケーディングすることによって、構成されてもよい。代替として、マルチプレクサ制御信号は、テーブルと電気接続ライン115A〜Gとの間に接続を動的に生成し、個々のメモリブロックからカスケード型アドレステーブルを形成するように選択され得る。
一実施形態では、メモリテーブル1〜Gは、別個のメモリブロックを伴って実装される。別の実施形態では、メモリテーブル1〜Gは、メモリセルを伴って実装される、メモリアレイであってもよい。メモリテーブル1〜Gは、媒体アクセス制御(MAC)アドレス等、1つの種類のアドレスを格納するように構成される。後述のように、パケットは、少なくとも部分的に、パケットのMACアドレスに基づく宛先にルーティングされてもよい。別の実施形態では、パケットは、情報の小包(例えば、記述子)を含み、パケットを受信するデバイスに情報の小包に応答させてもよい。
別の実施形態では、メモリテーブル1〜Gは、2つ以上の種類のアドレスを格納するように構成される。例えば、メモリテーブル1〜Gは、MACアドレスおよびインターネットプロトコル(IP)アドレスを格納可能である。パケットが、MACアドレスである宛先アドレスを含有する場合、パケットは、少なくとも部分的に、MACアドレスに基づいて、ルーティングされる。パケットが、IPアドレスである宛先アドレスを含有する場合、パケットは、少なくとも部分的に、IPアドレスに基づいて、ルーティングされる。他の実施形態では、メモリテーブル1〜Gは、レイヤ2アドレス、レイヤ3アドレス、および/またはこれらあるいは他のアドレスの一部を格納するように構成されてもよい。
メモリテーブル1〜Gは、相互に独立して動作するように構成される。例えば、検索論理120は、メモリテーブル1内の1つのアドレスの検索と、メモリテーブル2等の異なるメモリテーブル2〜G内の異なるアドレスの検索とを起動してもよい。メモリテーブル1および2は、互いに独立して、並行して検索される。しかしながら、メモリテーブル1のアドレスの検索が、アドレスを見つけられない時、検索は、電気接続ライン115Aを介して、メモリテーブル2にカスケーディングされる。検索は、メモリテーブル2内の検索論理120によって、再起動される。
一実施形態では、電気接続ライン115A〜Gは、円形のリング型トポロジとして、メモリテーブル1〜Gを電気的に接続する。ルーティングコントローラ100内の検索論理120は、選択されたメモリテーブルにおいて、アドレスの検索を開始するように構成される。アドレスが見つからない場合、検索論理120は、対応する電気接続ライン115A〜Gを介して、円形のリング型トポロジ内の隣接して接続されたメモリテーブル1〜Gに対して検索を継続する。
一実施形態では、ルーティングコントローラ100は、アップリンクライン105A〜Gとダウンリンクライン110A〜Nに接続されたラインカードとの間のインターフェースである集積回路である。一実施形態では、アップリンクライン105A〜G上のデータ速度は、ラインカード上のデータ速度を上回る。ルーティングコントローラ100は、少なくとも部分的に、検索論理120によって見つけられたアドレスと関連付けられた宛先アドレスに基づいて、アップリンクライン105A〜Gとラインカードとの間でデータをルーティングするように構成される。
一実施形態では、メモリテーブル1は、ダウンリンクライン110A〜Nに接続された第1のラインカード群のパケットと関連付けられ、これをルーティングする。メモリテーブル2は、異なるダウンリンクライン110A−Nに接続された第2のラインカード群のパケットと関連付けられ、ルーティングされる。パケットが、アップリンクライン105A−Gから受信されると、検索論理120は、宛先アドレスをパケットから判定する。検索論理120は、次いで、少なくとも部分的に、宛先アドレスに基づいて、検索を起動する。ネットワークパケットは、少なくとも部分的に、メモリテーブルから見つけられたルーティング結果に基づいて、第1のラインカード群のうちの1つまたは第2のラインカード群のうちの1つにルーティングされる。
一実施形態では、ルーティングコントローラ100は、ネットワークスイッチ内で動作する、集積チップである。チップは、シリコンまたは他の材料から製造されてもよい。別の実施形態では、チップは、ネットワークスイッチ内のプリント回路基板上に組み込まれる。ネットワークスイッチは、ネットワーク接続にネットワークを提供する。ルーティングコントローラ100は、同質的に連動して動作する、2つ以上のチップを伴って実装されてもよい。2つ以上のチップは、検索されるアドレステーブルを2つ以上のチップ間に分散させてもよい。また、ルーティングコントローラ100は、チップ(SoC)上のシステムの一部であってもよい。
別の実施形態では、ネットワークスイッチは、メモリテーブル1〜Gのうちのいずれにもアドレスが見つからない時、アドレス要求メッセージをネットワークに接続された他のデバイスにフラッディングするように構成される。これは、スイッチが、対応するパケットをルーティングする手段を把握していないことを意味する。アドレス要求メッセージは、ルーティングコントローラ100が、アドレスのルーティング情報を問い合わせるネットワークスイッチのポートまたはポートのサブセットに送信する、メッセージである。また、アドレス要求メッセージは、ネットワークスイッチに接続された他のデバイスにも送信可能である。最終的に、デバイスは、アドレス要求メッセージのうちの1つを受信し、ネットワークパケットのルーティング情報を返信するであろう。ネットワークコントローラ100は、次いで、ルーティング情報をメモリテーブル1〜Gのうちの1つ内に格納するであろう。上述のように、カスケード型メモリテーブル構成を使用して、メッセージフラッディングの頻度を減少させる。
図2は、図1のルーティングコントローラ100を伴って実装される、ネットワーキングスイッチ200の一実施形態を例証する。ネットワークスイッチ200は、ネットワークのアップリンク1〜Gとラインカード1〜Nとの間のインターフェースである。ルーティングコントローラ100は、ネットワークパケットがルーティングされるべきアップリンクポート1〜Gまたはラインカードポート1〜Nを識別することによって、ネットワークスイッチのネットワークパケットのルーティングを補助する。一実施形態では、アップリンク1〜Gは、ラインカード1〜Nより高いデータ速度で動作する。他の実施形態では、データ速度は、同一とすることができる。ラインカード1〜Nは、電子デバイスとネットワーキングスイッチ200との間にインターフェースを提供する。アップリンク1〜Gは、アップリンクポート1〜Gにおいて、ネットワーキングスイッチ200に接続される。ラインカードは、ラインカードポート1−Nにおいて、ネットワーキングスイッチ200に接続される。
ネットワーキングスイッチ200が、アップリンクポート1−Gにおいて、ネットワークパケットを受信すると、ルーティングコントローラ100は、ネットワークパケットを受信ポートが関連付けられるラインカードポート1〜Nのうちの1つにルーティングする。ルーティングは、上述のように、メモリテーブル1〜Gからのデータを使用して、アドレスを検索およびマッピングすることによって、実行される。ネットワークパケットは、後述のように、部分的に、ネットワークパケットのヘッダ内の情報に基づいて、ルーティングされる。代替として、ネットワーキングスイッチ200は、ラインカードポート1−Nにおいて、ネットワークパケットを受信してもよく、ルーティングコントローラ100は、ネットワークパケットをアップリンクポート1〜Gのうちの1つにルーティングする。
図3は、カスケード型メモリテーブル1〜Gにより構成され、メモリテーブル1〜Gをカスケーディング式に検索する、装置300の一実施形態を例証する。装置300は、図1のルーティングコントローラ100と同様に動作可能である。一実施形態では、装置300は、ネットワークスイッチ305内に実装され、パケットを宛先にルーティングするように動作する。メモリテーブル1〜Gは、ネットワークパケットをルーティングするためのルーティングデータを格納する。装置300は、後述のように、格納されたデータを使用して、ネットワークパケットのルーティング方法、ネットワークパケットのフィルタリング方法、および/またはネットワークパケットのポリシング方法を判定するように構成される。
ネットワークパケットが受信されると、ネットワークスイッチ305は、宛先アドレスをネットワークパケットから識別し、アドレスを装置300に転送する。装置300内の検索論理310は、メモリテーブル1〜G内のアドレスに対応するルーティング情報を検索するように構成される。一実施形態では、メモリテーブル1〜Gは、別個のメモリブロックにより実装される、アドレステーブルである。メモリテーブル1〜Gは、アドレスを格納するメモリセルを伴って実装される、メモリアレイであってもよい。他の実施形態では、メモリテーブル1〜Gは、アドレス、アドレスの一部、パケットのコンテンツに関連するイベント情報、および/またはネットワークパケットと関連付けられた他の情報を格納するように構成される。
アップリンクポート1〜Gは、メモリテーブル1〜Gに接続される。1つのアップリンクポート1〜Gは、図3に示されるように、メモリテーブル1〜Gのうちの1つに接続されてもよい。他の実施形態では、1つのアップリンクポート1〜Gは、2つ以上のメモリテーブル1〜Gに接続され、メモリテーブルは、1つ以下のアップリンクポート1〜Gに接続される。
一実施形態では、装置300に接続される異なるポートは、異なるメモリテーブル1〜Gと関連付けられる。ポートは、少なくとも部分的に、ポートがメモリテーブル1〜Gに接続される方法に基づいて、メモリテーブル1〜Gと関連付けられる。検索論理310は、ネットワークパケットが受信されると、ポートと関連付けられたメモリテーブルの検索を起動するであろう。例えばネットワークパケットが、アップリンクポート1で受信される場合、検索論理310は、ネットワークパケットをルーティングする方法に関する情報に対して、メモリテーブル1の検索を起動するであろう。メモリテーブル1は、ルーティング要求をアップリンクポート1にサービシングするように接続されるため、メモリテーブル1が、検索に対して選択される。別の実施形態では、最初に検索されるメモリテーブルは、ハッシュ機能を使用して判定可能である。ハッシュ機能は、少なくとも部分的に、対応するパケットを受信するポート番号に基づいて、最初に検索されるメモリテーブル1〜Gを判定する。
別の実施例では、アップリンクポート1が、メモリテーブル1および2の両方に接続される場合、検索論理310は、アップリンクポートが接続される最左メモリテーブルの検索を起動するであろう。アップリンクポート1は、メモリテーブル1および2に接続されるため、アップリンクポート1は、メモリテーブル1および2と関連付けられる。アップリンクポートが、2つ以上のメモリテーブル1〜Gと関連付けられる場合、メモリ論理310は、他の好適なアルゴリズムまたはハッシュ機能を使用して、検索を開始すべき場所を判定してもよい。
例示的動作では、ネットワークスイッチ305は、複数のアップリンクポート1〜Gまたはラインカードポート1〜Nにおいて、複数のパケットを並行して受信するように構成される。検索論理310は、2つ以上のメモリテーブル1〜Gの検索を並行して起動するように構成される。並行検索は、異なるメモリテーブル1〜G内の異なるアドレスを検索する。メモリテーブル1〜Gは、相互に独立して、並行して検索される。一実施形態では、メモリテーブル1〜Gは、1つのクロックサイクルにおいて、1つのテーブルの内の検索を完了するように構成される。
一実施形態では、検索が、初期検索されたアドレステーブル1〜G内でアドレスを見つけられない時、検索論理310は、近傍(直列に接続された)メモリテーブルを検索する。装置300は、上述のように、メモリテーブル1〜Gを接続し、カスケード型メモリテーブルを生成する、電気接続ライン315により構成される。検索論理310は、初期検索がアドレスを見つけられない時、電気接続ラインを通して、近傍メモリテーブルに対して、カスケード型検索を起動するように構成される。検索論理310は、近傍メモリテーブルを効果的に中断し、カスケード型検索を実行する。したがって、近傍メモリテーブルは、その割り当てられたポートに対するアドレス検索の処理を遅延させ、割り当てられていないポートの検索を実行する。近傍メモリテーブル内にアドレスが見つからない場合、検索論理310は、次の接続されたメモリテーブルに対して、連続的検索を継続する、等々となるであろう。制御論理310は、アドレスが見つかるまで、またはメモリテーブル1−Gが検索されている間、検索を継続するように構成される。
メモリテーブル1〜Gのうちの1つの中でアドレスが見つかる/整合されると、テーブル内のメモリロケーションに格納されるルーティング情報が、読み出される。一実施形態では、ルーティング情報は、ネットワークパケットが装置300によってルーティングされるポートを示す。ルーティング情報は、宛先アドレスであってもよく、装置300は、少なくとも部分的に、宛先アドレスに基づいて、データをルーティングする。
装置300は、所定のルーティング情報を収集し、メモリテーブル1〜G内に格納することが可能である。また、装置300は、好適なルーティングテーブルアルゴリズムを使用して、ルーティング情報を判定可能である。当業者は、ネットワークスイッチ305が、ネットワークアドレスに関するルーティング情報を種々の方法で取得し、本情報を装置300に提供してもよいことを理解するであろう。ルーティング情報は、パケットがルーティングのために処理される時、後で読み出されるように、メモリテーブル1〜G内に格納される。別の実施形態では、ネットワークスイッチ305は、ネットワークトラフィックを監視し、部分的に、収集された新しいルーティングデータに基づいて、メモリテーブル1〜G内のルーティング情報を定期的に更新する。
図3を継続して参照すると、ネットワークスイッチ305のラインカードポート1〜Nは、選択された割当内のメモリテーブル1〜Gに動作可能に接続される。例えば、ラインカードポート1および2は、メモリテーブル1に接続され、ラインカードポート3および4は、メモリテーブル3に接続され、ラインカードポートN−1およびNは、メモリテーブルGに接続される。2つのラインカードポートが、単一メモリテーブルと関連付けられて示されるが、異なる数の割当も、実装可能である。
ラインカードポート1−Nは、ラインカードに対するインターフェースである。ラインカードは、スイッチを伴う電子デバイスアクセスライン、ルータ、および/または他のネットワークデバイスとのインターフェースをとるためのデバイスである。デジタルおよびアナログラインカードは、種々の速度で動作する。ラインカードは、電気ケーブルまたは光ファイバに接続されてもよい。データネットワークためのデジタルラインカードは、パケットを転送し、ピング応答を提供し、パケットフラグメンテーション機能をもたらす。また、ラインカードは、データのキューイング、輻輳制御、専用アクセスレート(CAR)機能、および/またはデータフローの統計を実行する。
別の実施形態では、メモリテーブル1〜Gは、ネットワークパラメータを格納するように別々に構成される。例えば、ネットワークパラメータは、フィルタパラメータであってもよい。装置300は、少なくとも部分的に、フィルタパラメータに基づいて、ネットワークパケットをフィルタリングするように構成される。一実施例では、装置300は、ネットワークパケットをフィルタリングし、ネットワークへの不正アクセスを防止するであろう。フィルタリングによって、メモリテーブル1−Gのうちの1つとして現れるIPアドレスを伴う認定ユーザまたはパケットは、ネットワークパケットを装置300によって転送させることが可能となる。不正ネットワークパケットは、ドロップされる。ネットワークパケットは、少なくとも部分的に、IPアドレスの一部に基づいて、フィルタリング可能である。
別の実施形態では、装置300は、ネットワークパケットをポリシングするように構成される。ネットワークパケットは、ネットワークパケットを定格制限することによって、ポリシングされる。例えば、制御論理310は、上述のように、ネットワークパケットのアドレスに対して、メモリテーブル1〜Gを検索する。アドレスが見つかると、アドレスと関連付けられた定格制限フィールドは、最大データ伝送速度を示す。装置300は、次いで、ネットワークパケットをポートにルーティングするように構成され、そのポートと関連付けられた論理は、最大データ伝送速度を下回って、ネットワークパケットを伝送するであろう。
別の実施形態では、装置300は、カスケードビットを格納する検索レジスタを実装する。カスケードビットが設定される時、検索論理310は、整合ネットワークパラメータが見つかるまで、検索を次の接続されたメモリテーブルに転送することが許容される。カスケードビットが設定されない時、カスケーディング検索は、有効ではない。一実施形態では、カスケードビットは、プログラム可能なファームウェアである。
図4は、媒体アクセス制御(MAC)アドレステーブル(例えばテーブル1〜4)を伴って構成される、装置400の一実施形態を例証する。MACテーブルは、上述のメモリテーブルのように、カスケーディング式に動作および検索される(図1参照)。装置400は、図1のルーティングコントローラ100および/または図3の装置300と同様に動作する。一実施形態では、装置400は、ネットワーク接続(例えば、アップリンク405A〜Bおよびラインカード1〜8)間にインターフェースを提供するネットワーキングスイッチ内に実装可能である。ネットワークアップリンク405A〜Bおよびラインカード1〜8は、示されるように、装置400に電気的に接続される。図4に示されるものとは異なる数のネットワークアップリンク405A〜Bおよびラインカード1〜8が、MACアドレステーブル1〜4に電気的に接続されてもよい。例えば、4つのラインカードは、MACアドレステーブル1〜4のうちの1つに接続されてもよく、1つのアップリンク405A〜Bは、MACアドレステーブル1〜4のうちの1つに接続されてもよい。
装置400が、ネットワークパケットを受信すると、装置400は、ネットワークパケットのMACアドレスである宛先アドレスを判定するであろう。装置400は、図3の検索論理310が検索を起動する方法と同様に、MACアドレステーブル1〜4のうちの1つ内のMACアドレスの検索を起動するであろう。MACアドレスが見つからない場合、MACアドレステーブル1〜4内に実装される検索論理(図5を参照して後述)は、上述のように、電気接続ライン410A〜Dを通して、隣接するMACアドレステーブルの検索を起動するであろう。接続ライン410A〜Dは、MACアドレステーブル1〜4を直列に接続する。一実施形態では、電気接続ライン410A〜Dは、リング型トポロジとして、MACアドレステーブル1〜4を電気的に接続する。MACアドレスが見つかると、ネットワークパケットは、少なくとも部分的に、MACアドレスが見つかったMACアドレステーブル1〜4から読み出される対応するルーティングデータに基づいて、ルーティングされる。
図5は、分散検索論理により実装される、メモリテーブル(例えばテーブル7および8)の一実施形態を例証する。テーブル7〜8は、複数のメモリテーブル(例えば、図1のメモリテーブル1〜G)から成る、ルーティングシステムの2つのテーブルを表す。分散検索論理は、検索論理505、515およびミスロジック510、520を伴って実装される。2つのテーブル7〜8は、ルーティングネットワークパケットと関連付けられたアドレスおよび/または他の情報を格納する、メモリアレイを含む。メモリアレイは、少なくとも部分的に、アドレスに基づいて、検索可能なコンテントアドレッサブルメモリ(CAM)であってもよい。メモリテーブルが検索され、整合エントリが見つからない場合、ミスロジック510、520は、整合性が見つからなかったことを示す、信号または値を発生させる。
動作中、テーブル7の検索論理505は、ラインカード13、ラインカード14、またはアップリンクポート525から検索される、アドレスを受信する。検索論理505は、次いで、アドレスに対して、メモリアレイ7の検索を起動するであろう。並行して、検索論理515は、ラインカード15、ラインカード16、またはアップリンクポート525から、検索要求を受信してもよい。検索論理515は、メモリアレイ8の検索を起動するように構成される。テーブル7では、検索論理505が、メモリアレイ7内でアドレスを見つけられない場合、ミスロジック510は、不整合信号を発生し、検索は、テーブル8にカスケーディングされる。不整合信号は、接続ラインを介して、テーブル8の検索論理515に入力される。一実施形態では、不整合信号は、ラインカード15またはラインカード16から受信したアドレスのさらなる検索を遅延あるいは防止する、インタラプトとして作用する。検索論理515は、次いで、テーブル7からのアドレスに対して、メモリアレイ8内で検索を起動する。アドレスが見つからない場合、テーブル8のミスロジック520は、次の直列に接続されたテーブルに信号を発し、直列に接続されたテーブル内で検索を継続する。本プロセスは、アドレスが見つかるまで、または直列に接続されたテーブルのいずれにもアドレスが見つけられない状態になるまで、繰り返されるであろう。
図6は、メモリセルをカスケーディング式に検索することと関連付けられた方法600の実施形態を例証する。方法は、図1に示されるものに類似するメモリテーブル構造を使用して説明されるであろう。方法600は、ルーティング情報を見つけるために、アドレステーブルのカスケード型検索を提供することによって、ネットワークデータのルーティングを改善する。ネットワーキング機器は、次いで、少なくとも部分的に、ルーティング情報に基づいて、パケットをルーティング可能である。
方法600は、ネットワークパケットが受信されると、起動される(605)。パケットは、次いで、デコードされる(610)。ネットワークパケットがデコードされ、パケットがルーティングされる宛先アドレスを判定する。初期アドレステーブルは、615において、宛先アドレスと整合するアドレスに対して検索される。初期アドレステーブルは、コンテントアドレッサブルメモリ(CAM)または宛先アドレスに対して検索されるために好適な別のメモリであってもよい。
620において、整合アドレスが見つかるかどうかを判定するための判定が行なわれる。初期テーブル内に整合アドレスが見つかる場合、格納されたルーティング情報が読み取られ、パケットは、それに従って、ルーティングされる。方法600は、パケットがルーティングされた後、終了する。初期テーブル内に整合アドレスが見つからない場合、次のアドレステーブル内で検索を起動するための信号が、625において、発生される。次のアドレステーブルは、初期アドレステーブルに直列に接続される1つである。直列に接続されたアドレステーブルは、630において、宛先アドレスと整合するアドレスに対して、検索される。
このように、方法600は、複数のアドレステーブルが単一同質データベースであるかのように、複数のアドレステーブルの検索が実行されるように、直列アドレステーブル接続全体に検索を転送可能である。
次のアドレステーブル内に宛先アドレスが見つかる場合、ネットワークパケットは、635において、宛先アドレスに対応する宛先ポートにダイレクトされる。宛先ポートは、少なくとも部分的に、上述のように、宛先アドレスが見つかったアドレステーブルエントリに格納されるルーティング情報を読み出すことによって、判定される。次のテーブル内に宛先アドレスが見つからない場合、方法600は、アドレスが見つかるまで、またはテーブルが検索されるまで、別の次のアドレステーブルの検索を継続するであろう。一実施形態では、アドレスが、テーブルが検索された後、テーブルに内に見つかっていない場合、ネットワークパケットを正常に転送するための試みとして、フラッディングメッセージが、複数の宛先ポートに送信されてもよい。
別の実施形態では、状態機械が、対応するアドレステーブルの検索を制御してもよい。検索は、複数のアドレステーブルのうちのいずれか1つにおいて開始されてもよく、開始および終了アドレステーブルは、未知であり得る。したがって、特定のアドレステーブルと関連付けられた状態機械は、そのアドレステーブルの検索が、直列に接続されたアドレステーブルの最終検索であるかどうか確認するであろう。最終アドレステーブルの最終状態機械は、最終検索アドレステーブルではないアドレステーブルの状態機械に追加作用を行なってもよい。
図7は、カスケード型メモリセルを検索することと関連付けられた方法700の別の実施形態を例証する。方法700は、ルーティング情報を見つけるために、アドレステーブルのカスケード型検索を提供することによって、ネットワークデータをルーティングするためのネットワークスイッチの能力を改善する。ネットワークスイッチは、次いで、ルーティング情報を使用して、ネットワークパケットをルーティング可能である。1つのアドレステーブル内にソースアドレスが見つかる場合、本イベントは、他のアドレステーブルが同一情報を把握しようとしないように、マーキングされることが可能である。
方法700は、705において、高優先度アドレステーブル内に高優先度アドレスを格納する。方法700が、高優先度アドレスを検出する時、高優先度アドレステーブルは、アドレスが見つかるように検索される最初のテーブルである。高優先度アドレステーブルは、上述のように、個々のテーブルのカスケーディングチェーン内において、別のアドレステーブルに直列に接続される1つのアドレステーブルである。本明細書で使用される「最初の」アドレステーブルとは、アドレステーブルのチェーン内の最初のアドレステーブルである。
図7は、図6と同一作用のうちのいくつかを含み、対応するブロックは、同一参照番号(例えば、605〜635)によってマーキングされる。これらの作用の説明は、簡潔のため、繰り返さない。アドレスが見つからない場合(620)、アドレスが見つからないアドレステーブルは、マーキングされる(710)。アドレステーブルは、同一アドレスに対して、アドレステーブルが再度検索されないように、マーキングされる。アドレスが見つかる、または後に解決された後、マーキングされたアドレステーブルは、マーキングが解除される。
テーブルがマーキングされた後、上述の方法600と同様に、625において、隣接するアドレステーブル内の検索を起動するように、信号が発生される。隣接するアドレステーブルは、初期アドレステーブルに直列に接続される。方法700は、並行検索が実行されるという点において、方法600と異なる。例えば、隣接するアドレステーブルが、630において、検索される間、新しい異なる検索が、並行して、715において、異なるアドレスに対して、初期アドレステーブル内で実行される。
隣接するアドレステーブルの検索後、宛先アドレスが見つかる場合、ネットワークパケットは、635において、図6の方法600におけるように、宛先ポートにダイレクトされる。宛先アドレスが見つからない場合、他のアドレステーブルが、アドレスが見つかるまで、またはアドレステーブルが検索され終わるまで、順番に検索される。
一実施形態では、アドレスが見つかると、ネットワークパケットは、720において、定格制限される。ネットワークパケットは、720において、ネットワークパケットと関連付けられたデータを低速で伝送することによって、定格制限される。ネットワークパケットは、少なくとも部分的に、アドレステーブル内に見つけられた整合アドレスと関連付けられた定格制限情報に基づいて、定格制限される。定格制限情報は、アドレステーブルから読み取られ、ネットワークパケットは、定格制限情報に従って、定格制限される。例えば、ネットワークパケットは、ネットワークパケットを定格制限情報に対応する定格制限されたポートに送信することによって、定格制限される。パケットは、定格制限されたポートと関連付けられた論理によって、定格制限情報によって指定される速度を下回って、伝送されるであろう。
別の実施形態では、方法700は、ネットワーキングスイッチ(例えば、図2に示されるスイッチ200)によって、実行される。
一実施形態では、本明細書に記載される方法またはそれらの均等物は、コンピュータ可読媒体上に具現化され、格納される、コンピュータ実行可能命令として実行されてもよいことを理解されるであろう。機械(例えば、プロセッサ、デバイス)によって実行されると、命令は、機械に方法を実行させる。他の実施形態では、方法は、半導体メモリチップによって実行されるように実装される。また、方法は、回路を伴って実装されることも可能である。一実施形態では、方法は、ギガビット受動光ネットワーキング(GPON)規格に従ってデータを処理する、ネットワーキングスイッチ内に実装される。
図8は、本明細書に記載される例示的システムおよび方法、または均等物が、実装される、例示的コンピュータ800の一実施形態を例証する。例示的コンピュータ800は、プロセッサ805と、メモリ810と、バス820によって動作可能に接続された入/出力ポート815とを備える。一実施例では、コンピュータ800メモリテーブルアクセス論理825は、メモリテーブルをカスケーディングし、カスケード型メモリテーブルを検索するように構成される。
メモリアクセス論理825は、メモリテーブルをカスケーディングし、カスケード型メモリテーブルを検索するための手段(例えば、ハードウェア、格納されたソフトウェア、およびファームウェア)を提供する。メモリアクセス論理825は、図1のルーティングコントローラ100、および/または図3ならびに図4の装置300、400、および/またはそれらの機能の組み合わせと同様に、実装することが可能である。メモリアクセス論理825は、例えば、ASICまたは他の種類の回路として実装される、論理を含み得る。
概して、コンピュータ800の例示的構成について説明するが、プロセッサ805は、ディアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含む、多様な種々のプロセッサであってもよい。メモリ810は、揮発性メモリおよび/または不揮発性メモリを含んでもよい。不揮発性メモリは、例えば、読取専用メモリ(ROM)、プログラム可能読取専用メモリ(PROM)、消去可能プログラム可能読取専用メモリ(EPROM)、電気的消去可能プログラム可能読取専用メモリ(EEPROM)等を含んでもよい。揮発性メモリは、例えば、ランダムアクセスメモリ(RAM)、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)等を含んでもよい。
ディクス830は、例えば、入/出力インターフェース(例えば、カード、デバイス)835および入/出力ポート815を通して、コンピュータ800に動作可能に接続されてもよい。ディスク830は、例えば、磁気ディスクドライブ、固体ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Zipドライブ、フラッシュメモリカード、メモリスティック等であってもよい。さらに、ディスク830は、コンパクトディスク読取専用メモリ(CD−ROM)ドライブ、コンパクトディスク記録可能(CD−R)ドライブ、コンパクトディスク書換可能(CD−RW)ドライブ、デジタルビデオディスク読取専用メモリ(DVD ROM)等であってもよい。メモリ810は、例えば、プロセス840および/またはデータ845を格納可能である。ディスク830および/またはメモリ810は、コンピュータ800のリソースを制御および割り当てる、オペレーティングシステムを格納可能である。
バス820は、単一内部バス相互接続アーキテクチャおよび/または他のバスあるいはメッシュアーキテクチャであってもよい。単一バスが例証されるが、コンピュータ800は、種々のデバイス、論理、および他のバス(例えば、周辺機器相互接続エクスプレス(PCIE)、1394、ユニバーサルシリアルバス(USB)、イーサネット(登録商標))を使用する周辺機器と通信してもよいことを理解されたい。バス820は、例えば、メモリバス、メモリコントローラ、周辺バス、外部バス、クロスバースイッチ、および/またはローカルバスを含む、種類とすることができる。
コンピュータ800は、メモリアクセス論理825および入/出力ポート815を含む、入/出力(I/O)インターフェース835を介して、入/出力デバイスと交信してもよい。入/出力デバイスは、例えば、キーボード、マイクロホン、ポインティングデバイスおよび選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク830、ネットワークデバイス850等であってもよい。入/出力ポート815は、例えば、シリアルポート、パラレルポート、およびUSBポートを含んでもよい。
コンピュータ800は、ネットワーク環境内で動作可能であり、したがって、I/Oインターフェース835および/またはI/Oポート815を介して、ネットワークデバイス850に接続されてもよい。ネットワークデバイス850を通して、コンピュータ800は、ネットワークと交信してもよい。ネットワークを通して、コンピュータ800は、リモートコンピュータに論理的に接続されてもよい。コンピュータ800が交信し得るネットワークは、ローカルエリアネットワーク(LAN)、広域ローカルワークエリアネットワーク(WLAN)、広域ネットワーク(WAN)、および他のネットワークを含むが、それらに限定されない。
例示的システム、方法等が、実施例を説明することによって例証され、実施例は、十分かつ詳細に記載されたが、出願人の意図は、添付の特許請求の範囲をそのような詳細に制限する、またはいかようにも限定するものではない。当然ながら、本明細書に記載されるシステム、方法等を説明する目的のために、構成要素または方法論のあらゆる企図可能な組み合わせを記述することは不可能である。したがって、本発明は、図示および説明される、特定の詳細、代表的装置、および例証的実施例に限定されない。故に、本願は、添付の請求項の範囲内にある代替例、修正例、および変形例を包含するものと意図される。

Claims (24)

  1. 各々が宛先アドレスを伴う複数のネットワークパケットを、複数のアップリンクポート又は複数のラインカードポートにおいて並行して受信するネットワークスイッチに組み込まれた集積チップであって、
    アドレスを格納するように構成される別個のメモリテーブルにより実装される、第1のアドレステーブルと、第2のアドレステーブルとを含む2つ以上のアドレステーブルと、
    前記第1のアドレステーブルと前記第2のアドレステーブルとを接続し、カスケード型アドレステーブルを生成する、接続ラインと、
    前記宛先アドレスに対して、前記第1のアドレステーブルの検索を起動して、前記宛先アドレスが見つからない場合、前記接続ラインを通して、前記第2のアドレステーブルの検索を起動する検索論理と
    を備え
    前記接続ラインは、リング型トポロジで、前記2つ以上のアドレステーブルをさらに直列に電気接続し、前記検索論理は、前記2つ以上のアドレステーブルの選択されたアドレステーブルにおいて、あるアドレスを、検索を開始するように構成され、前記アドレスが見つからない場合、前記接続ラインを介して、前記2つ以上のアドレステーブルの隣接して接続されたアドレステーブルに対して、前記検索を継続する、集積チップ。
  2. 前記集積チップは、アップリンクと複数のラインカードとの間のインターフェースであって、
    前記アップリンク上のデータ速度は、前記複数のラインカードのうちの1つにおけるデータ速度を上回り、
    前記集積チップは、少なくとも部分的に、前記検索論理によって見つけられたアドレスと関連付けられた宛先アドレスに基づいて、前記アップリンクと前記複数のラインカードのうちの1つとの間のデータをルーティングするように構成される、請求項1記載の集積チップ。
  3. 各々が宛先アドレスを伴う複数のネットワークパケットを、複数のアップリンクポート又は複数のラインカードポートにおいて並行して受信するネットワークスイッチに組み込まれた集積チップであって、
    アドレスを格納するように構成される別個のメモリテーブルにより実装される、第1のアドレステーブルと、第2のアドレステーブルとを含む2つ以上のアドレステーブルと、
    前記第1のアドレステーブルと前記第2のアドレステーブルとを接続し、カスケード型アドレステーブルを生成する、接続ラインと、
    前記宛先アドレスに対して、前記第1のアドレステーブルの検索を起動して、前記宛先アドレスが見つからない場合、前記接続ラインを通して、前記第2のアドレステーブルの検索を起動する検索論理と
    を備え、
    前記第1のアドレステーブルは、第1の複数のラインカードと関連付けられ、前記第2のアドレステーブルは、第2の複数のラインカードと関連付けられ、前記集積チップは、アップリンクから受信したネットワークパケットに対応する宛先アドレスを判定するように構成され、前記検索論理は、少なくとも部分的に、前記宛先アドレスに基づいて、前記検索を起動するように構成され、前記ネットワークパケットは、少なくとも部分的に、前記検索論理によって見つけられたアドレスに基づいて、前記第1の複数のラインカードのうちの1つまたは前記第2の複数のラインカードのうちの1つにルーティングされる、集積チップ。
  4. 前記検索論理は、前記2つ以上のアドレステーブルを別々に検索し、前記2つ以上のアドレステーブルは、媒体アクセス制御(MAC)アドレス、レイヤ2アドレス、インターネットプロトコル(IP)アドレス、およびレイヤ3アドレスのうちの1つ以上を格納する、請求項1からの何れか1項に記載の集積チップ。
  5. 前記検索論理および前記接続ラインは、前記第1のアドレステーブルおよび前記第2のアドレステーブル内の異なる検索を並行して実行するように構成可能である、請求項1からの何れか1項に記載の集積チップ。
  6. 前記ネットワークスイッチは、前記カスケード型アドレステーブル内に前記アドレスが見つからない時、前記ネットワークに接続された他のデバイスにアドレス要求メッセージをフラッディングするように構成される、請求項1からの何れか1項に記載の集積チップ。
  7. 前記検索論理は、前記宛先アドレスが見つかるまで、前記アドレステーブルを検索する、請求項1からの何れか1項に記載の集積チップ。
  8. 前記検索論理は、前記宛先アドレスが見つかった場合、ネットワークパケットを前記宛先アドレスに対応する宛先ポートに伝送する、請求項1からの何れか1項に記載の集積チップ。
  9. 各々がネットワークパラメータを伴う複数のネットワークパケットを、複数のアップリンクポート又は複数のラインカードポートにおいて並行して受信するネットワークスイッチに組み込まれた半導体チップであって、
    ネットワークパラメータを別々に格納する複数のテーブルとして構成され、前記複数のテーブルは、少なくとも1つの接続ラインを介して、順番に接続され、カスケード型パラメータテーブルを形成する、メモリブロックと、
    前記ネットワークパラメータを受信し、前記複数のテーブルを順番に連続的に検索し、整合ネットワークパラメータを見つけるように構成される、検索論理と、
    を備え
    前記ネットワークパラメータは宛先アドレスであり、
    前記半導体チップは、アップリンクポートから、ネットワークパケットを受信するように構成され、前記検索論理は、少なくとも部分的に、2つ以上のラインカードのうちの1つと関連付けられた宛先ラインカードポートを見つけるための宛先アドレスに基づいて、前記複数のテーブルを検索するように構成され、前記半導体チップは、前記ネットワークパケットを前記宛先ラインカードポートにルーティングする、半導体チップ。
  10. 前記検索論理は、前記整合ネットワークパラメータが見つかるまで、前記カスケード型パラメータテーブルを検索する、請求項に記載の半導体チップ。
  11. カスケードビットを格納する検索レジスタをさらに備え、前記カスケードビットが設定される時、前記検索論理は、前記整合ネットワークパラメータが見つかるまで、前記カスケード型パラメータテーブルを検索するように構成され、前記検索レジスタのカスケードビットが設定されない時、前記検索論理は、前記複数のテーブルのうちの1つが検索されるように、前記複数のテーブルを制御する、請求項10に記載の半導体チップ。
  12. 前記カスケードビットは、ファームウェアでプログラム可能である、請求項11に記載の半導体チップ。
  13. 前記複数のアップリンクポートの各々は、対応するアップリンクへの接続のためのものであって、
    前記ネットワークパラメータは、複数のアップリンクのうちの1つから受信され、前記検索論理は、前記ネットワークパラメータが受信されたアップリンクと関連付けられた複数のテーブルのうちの1つにおいて、前記カスケード型パラメータテーブルの検索を選択的に起動するように構成される、請求項から12の何れか1項に記載の半導体チップ。
  14. 前記ネットワークパラメータは、フィルタパラメータであって、前記半導体チップは、少なくとも部分的に、前記フィルタパラメータに基づいて、ネットワークパケットをフィルタリングするように構成される、請求項から13の何れか1項に記載の半導体チップ。
  15. 前記検索論理は、前記ネットワークパラメータが見つかった場合、ネットワークパケットを前記ネットワークパラメータに対応する宛先ポートに伝送する、請求項から14の何れか1項に記載の半導体チップ。
  16. 各々が宛先アドレスを伴う複数のネットワークパケットを、複数のアップリンクポート又は複数のラインカードポートにおいて並行して受信するネットワークスイッチ内で実行される方法であって、
    ネットワークパケットをデコードし、宛先アドレスを判定することと、
    前記宛先アドレスと整合するアドレスに対して、リング型トポロジで接続ラインを介して直列に電気接続された複数のアドレステーブルから、第1のアドレステーブルを検索することと、
    前記整合するアドレスが見つからない場合、
    前記リング型トポロジの前記第1のアドレステーブルに直列に接続されている第2のアドレステーブル内の検索を起動するための信号を発生することと、
    前記宛先アドレスと整合するアドレスに対して、前記直列に接続された第2のアドレステーブルを検索することと、
    前記宛先アドレスが見つかった場合、前記ネットワークパケットを前記宛先アドレスに対応する宛先ポートに伝送することと
    前記アドレスが見つからない場合、前記接続ラインを介して、前記2つ以上のアドレステーブルの隣接して接続されたアドレステーブルに対して、前記検索を継続することと
    を備える、方法。
  17. 前記ネットワークパケットは、アップリンクポートから受信され、前記ネットワークパケットは、前記ネットワークスイッチに接続された前記複数のラインカードポートのうちの1つである宛先にダイレクトされ、前記アップリンクポートは、前記複数のラインカードのうちの1つのポートより高速データ速度を有する、請求項16に記載の方法。
  18. 前記ネットワークパケットと関連付けられたデータを低速で伝送することによって、前記ネットワークパケットを定格制限することをさらに備え、前記ネットワークパケットは、少なくとも部分的に、前記整合するアドレスと関連付けられた定格制限情報に基づいて、定格制限され、前記ネットワークパケットは、前記ネットワークパケットを前記定格制限情報に対応する定格制限されたポートに送信することによって、定格制限される、請求項16または17に記載の方法。
  19. 追加宛先アドレスと整合する追加アドレスに対して、前記第1のアドレステーブルを検索し、並行して、前記宛先アドレスと整合するアドレスに対して、前記直列に接続された第2のアドレステーブルを検索することをさらに備え、前記第1のアドレステーブルの検索および前記第2のアドレステーブルの検索は、並行して生じる、請求項16から18の何れか1項に記載の方法。
  20. 高優先度アドレスが、第1のアドレステーブル検索中に見つかるように、前記第1のアドレステーブル内に前記高優先度アドレスを格納することをさらに備える、請求項16から19の何れか1項に記載の方法。
  21. 前記第1のアドレステーブル内に前記アドレスが見つからない時、前記第1のアドレステーブルが、前記アドレスに対して、再度検索されないように、前記第1のアドレステーブルをマークによってマーキングすることをさらに備える、請求項16から20の何れか1項に記載の方法。
  22. 前記方法は、ギガビット受動光ネットワーキング(GPON)規格に従って、データを処理するネットワーキングスイッチ内に実装される、請求項16から21の何れか1項に記載の方法。
  23. 前記宛先アドレスが見つかるまで、前記第1のアドレステーブル及び前記第2のアドレステーブル以外のアドレステーブルを検索することをさらに備える、請求項16から22の何れか1項に記載の方法。
  24. 各々がネットワークパラメータを伴う複数のネットワークパケットを、複数のアップリンクポート又は複数のラインカードポートにおいて並行して受信するネットワークスイッチに組み込まれた半導体チップであって、
    ネットワークパラメータを別々に格納する複数のテーブルとして構成され、前記複数のテーブルは、接続ラインを介して、順番に接続され、カスケード型パラメータテーブルを形成する、メモリブロックと、
    前記ネットワークパラメータを受信し、前記複数のテーブルを順番に連続的に検索し、整合ネットワークパラメータを見つけるように構成される、検索論理と、
    を備え、
    前記接続ラインは、リング型トポロジで、前記2つ以上のアドレステーブルをさらに直列に電気接続し、前記検索論理は、前記2つ以上のアドレステーブルの選択されたアドレステーブルにおいて、あるアドレスを、検索を開始するように構成され、前記アドレスが見つからない場合、前記接続ラインを介して、前記2つ以上のアドレステーブルの隣接して接続されたアドレステーブルに対して、前記検索を継続する、半導体チップ。
JP2011513755A 2008-06-19 2009-06-16 集積チップ、半導体チップ、及び方法 Active JP5245169B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US7400108P 2008-06-19 2008-06-19
US61/074,001 2008-06-19
PCT/US2009/047431 WO2009155253A1 (en) 2008-06-19 2009-06-16 Cascaded memory tables for searching

Publications (2)

Publication Number Publication Date
JP2011523334A JP2011523334A (ja) 2011-08-04
JP5245169B2 true JP5245169B2 (ja) 2013-07-24

Family

ID=40951672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011513755A Active JP5245169B2 (ja) 2008-06-19 2009-06-16 集積チップ、半導体チップ、及び方法

Country Status (6)

Country Link
US (2) US8243733B2 (ja)
EP (1) EP2297905B1 (ja)
JP (1) JP5245169B2 (ja)
CN (1) CN102067528B (ja)
TW (1) TWI491206B (ja)
WO (1) WO2009155253A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5422844B2 (ja) * 2009-12-17 2014-02-19 日立金属株式会社 スイッチングハブ、ラインカード、及びフレーム中継方法
US9124526B2 (en) 2010-10-15 2015-09-01 Nec Corporation Switch system, and data forwarding method
JP5135411B2 (ja) * 2010-10-27 2013-02-06 楽天株式会社 検索装置、検索装置の制御方法、プログラム、及び情報記憶媒体
JP5967967B2 (ja) * 2012-02-13 2016-08-10 キヤノン株式会社 情報処理装置およびその制御方法
ES2659566T3 (es) * 2012-03-19 2018-03-16 Nec Corporation Nodo de comunicación, método y programa de procesamiento de paquetes
CN103064901B (zh) * 2012-12-18 2017-02-22 中兴通讯股份有限公司 一种ram、网络处理系统和一种ram查表方法
JP6098728B2 (ja) * 2013-10-10 2017-03-22 富士通株式会社 データ転送装置、情報処理装置及びデータ転送方法
US10120813B2 (en) * 2017-03-08 2018-11-06 Arm Limited Address translation
CN111355674A (zh) * 2020-02-24 2020-06-30 盛科网络(苏州)有限公司 路由报文的处理方法及装置、存储介质和电子装置
CN113438301B (zh) * 2021-06-22 2023-06-06 北京百度网讯科技有限公司 网络负载均衡器、请求消息分配方法、程序产品及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5519700A (en) * 1994-12-07 1996-05-21 At&T Corp. Telecommunication system with synchronous-asynchronous interface
US5930359A (en) * 1996-09-23 1999-07-27 Motorola, Inc. Cascadable content addressable memory and system
US5914938A (en) * 1996-11-19 1999-06-22 Bay Networks, Inc. MAC address table search unit
US6490279B1 (en) * 1998-07-23 2002-12-03 Advanced Communication Device, Inc. Fast data base research and learning apparatus
US7366171B2 (en) * 1999-03-17 2008-04-29 Broadcom Corporation Network switch
JP3625697B2 (ja) * 1999-07-05 2005-03-02 沖電気工業株式会社 ネットワーク集線装置及びネットワーク
JP2001237881A (ja) * 2000-02-23 2001-08-31 Nec Corp テーブル型データ検索機構及びそれを用いるパケット処理システム並びにそのテーブル型データ検索方法
US6711161B1 (en) * 2000-02-24 2004-03-23 Advanced Micro Devices, Inc. Arrangement for providing linearly scaleable address forwarding tables within multiple network switch modules
ATE493733T1 (de) * 2000-06-08 2011-01-15 Netlogic Microsystems Inc Unterteilte inhaltsadressierbare speicherschaltung
US6999418B2 (en) * 2001-12-21 2006-02-14 Fujitsu Limited System and method for reduced frame flooding
US7277399B1 (en) * 2002-04-08 2007-10-02 Cisco Technology, Inc. Hardware-based route cache using prefix length
EP1548998A4 (en) * 2002-10-03 2008-02-27 In4S Inc BITKETTENPR FISHING PROCEDURE AND EQUIPMENT
DE60225703T2 (de) * 2002-12-16 2008-07-17 Alcatel Lucent Mehrkanaliges Netzknoten und Verfahren zur Vermittlung/Leitweglenkung den Daten
JP2004221807A (ja) * 2003-01-14 2004-08-05 Hitachi Ltd 分散ルーティングテーブル管理方式およびルータ
US7464217B2 (en) * 2004-02-24 2008-12-09 International Business Machines Corporation Design structure for content addressable memory
JP4834493B2 (ja) * 2006-08-25 2011-12-14 アラクサラネットワークス株式会社 ネットワーク中継装置、および、ネットワーク中継装置の制御方法
US7680978B1 (en) * 2007-09-05 2010-03-16 Juniper Networks, Inc. Reducing content addressable memory (CAM) power consumption counters

Also Published As

Publication number Publication date
CN102067528A (zh) 2011-05-18
US8837487B2 (en) 2014-09-16
TWI491206B (zh) 2015-07-01
EP2297905B1 (en) 2018-08-22
CN102067528B (zh) 2014-01-15
TW201006183A (en) 2010-02-01
US20120300779A1 (en) 2012-11-29
EP2297905A1 (en) 2011-03-23
US8243733B2 (en) 2012-08-14
US20090316700A1 (en) 2009-12-24
JP2011523334A (ja) 2011-08-04
WO2009155253A1 (en) 2009-12-23

Similar Documents

Publication Publication Date Title
JP5245169B2 (ja) 集積チップ、半導体チップ、及び方法
CN101421991B (zh) 针对拒绝服务攻击的硬件过滤支持
US11374858B2 (en) Methods and systems for directing traffic flows based on traffic flow classifications
US8799507B2 (en) Longest prefix match searches with variable numbers of prefixes
CN102668473B (zh) 用于高性能、低功率数据中心互连结构的系统和方法
US7581059B2 (en) Controlling a searchable range within a network search engine
US9917776B2 (en) Hash-based address matching
US20030135691A1 (en) Input data selection for content addressable memory
JP3734704B2 (ja) パケット分類エンジン
US8363654B2 (en) Predictive packet forwarding for a network switch
US7062592B2 (en) Selecting a queue for service in a queuing system
JP5518135B2 (ja) データセンター向けの拡張可能なマルチキャスト転送方法および装置
US20120275466A1 (en) System and method for classifying packets
US10623316B2 (en) Scaling of switching tables with high bandwidth
JP2001285333A (ja) データ通信スイッチのための選択可能な優先順位付け
US11818022B2 (en) Methods and systems for classifying traffic flows based on packet processing metadata
JP2003508957A (ja) ネットワーク・プロセッサ処理コンプレックス及び方法
US20190044873A1 (en) Method of packet processing using packet filter rules
CN110691032A (zh) 一种融合自适应和确定性路由算法的分级路由方法及装置
CN107094114A (zh) 用于模块化转发表可缩放性的技术

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130219

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: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130321

R150 Certificate of patent or registration of utility model

Ref document number: 5245169

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371