JP5848185B2 - フレーム検索処理装置および方法 - Google Patents
フレーム検索処理装置および方法 Download PDFInfo
- Publication number
- JP5848185B2 JP5848185B2 JP2012096289A JP2012096289A JP5848185B2 JP 5848185 B2 JP5848185 B2 JP 5848185B2 JP 2012096289 A JP2012096289 A JP 2012096289A JP 2012096289 A JP2012096289 A JP 2012096289A JP 5848185 B2 JP5848185 B2 JP 5848185B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- information
- read
- frame
- search
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
この検索処理では、入力フレームから、検索に必要な情報、例えば、VLAN IDやMACアドレスやIPアドレス等のヘッダ情報、入力したポートの番号、フレーム長、などの情報を、フレーム情報として抽出し、検索テーブルの各エントリに予め指定されている検索条件と比較して、当該入力フレームに適合する検索条件を持ったエントリを見つける処理が実行される。
上記の検索処理では、クロックサイクル毎に、検索テーブルから検索条件を表すエントリ情報を読み出し、これら検索条件をフレーム情報と比較する。検索テーブル内の全てのエントリについて上記比較を実施することにより、入力フレームに適合する検索条件を持ったエントリを検索テーブルから探し出す。
この技術では、例えば8個の比較回路を備え、8個のフレーム情報に対する検索処理が並列に実施されている。
また、1個の比較回路が検索処理を行う場合と比較して、並列化されたP個の比較回路が同時に検索処理を行う場合、検索テーブルからエントリ情報を読み出す回数が1/Pに削減されるため、消費電力を低減する効果を有する。
しかしながら、高度な検索処理を行う場合、例えばレイヤ2からレイヤ4までの各種ヘッダ情報を組み合わせた検索条件でフィルタリングを行うような場合、前記検索条件を表すエントリ情報のビット数が増大する。
したがって、従来技術によれば、エントリ情報のビット数に比例して、検索テーブルからエントリ情報を読み出すときに消費される電力が増大するため、高度な検索処理を行う場合には、消費電力が大幅に増大することになる。
また、本発明にかかる他のフレーム検索処理装置は、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、前記検索処理部は、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶するとともに、当該検索条件のうち当該第1エントリ情報以外の部分からなる第2エントリ情報に関する第2エントリ番号を、当該第1エントリ情報に付加して記憶する第1検索テーブルと、前記エントリごとに前記第2エントリ情報を記憶する第2検索テーブルと、前記エントリごとに、前記第1エントリ情報および前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、前記第1検索テーブルから前記各エントリの第1エントリ情報を巡回的に読み出して、当該第1エントリ情報に付加されている前記第2エントリ番号を分離し、当該第2エントリ番号を分離した第1エントリ情報を前記比較回路へ出力する第1読出回路と、前記第1読出回路で分離した前記第2エントリ番号に基づいて、当該前記第2エントリ番号に対応するエントリからの第2エントリ情報の読み出しを指示する第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力する第2読出回路とを有し、前記比較回路は、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1読出回路から出力された前記第1エントリ情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第2読出回路は、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わないようにしたものである。
また、本発明にかかるさらに他のフレーム検索処理装置は、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、前記検索処理部は、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶する第1検索テーブルと、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第1エントリ情報以外の部分からなる第2エントリ情報を記憶する第2検索テーブルと、前記エントリごとに、前記第1エントリ情報および前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、前記各エントリから巡回的に、複数の前記第1エントリ情報を並列的に読み出して前記各比較回路へ分配するための第1読出信号を前記第1検索テーブルへ出力する第1読出回路と、前記各エントリから巡回的に前記第2エントリ情報を読み出して前記比較回路へ出力するための第2読出信号を前記第2検索テーブルへ出力する第2読出回路とを有し、前記比較回路は、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1検索テーブルから分配された前記第1エントリ情報を前記フレーム情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第2読出回路は、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第1エントリ情報と対応する前記第2エントリ情報を示す第2エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第2エントリ番号に基づいて、当該第2のエントリ番号に対応するエントリからの前記第2エントリ情報の読み出しを指示する前記第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力し、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わないようにしたものである。
また、本発明にかかる他のフレーム検索処理方法は、フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、前記検索処理ステップは、第1検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶するとともに、当該検索条件のうち当該第1エントリ情報以外の部分からなる第2エントリ情報に関する第2エントリ番号を、当該第1エントリ情報に付加して記憶するステップと、第2検索テーブルが、前記エントリごとに前記第2エントリ情報を記憶するステップと、比較回路が、前記エントリごとに、前記第1エントリ情報および前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、第1読出回路が、前記第1検索テーブルから前記各エントリの第1エントリ情報を巡回的に読み出して、当該第1エントリ情報に付加されている前記第2エントリ番号を分離し、当該第2エントリ番号を分離した第1エントリ情報を前記比較回路へ出力する第1読出ステップと、第2読出回路が、前記第1読出回路で分離した前記第2エントリ番号に基づいて、当該前記第2エントリ番号に対応するエントリからの第2エントリ情報の読み出しを指示する第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力する第2読出ステップとを有し、前記比較ステップは、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1読出回路から出力された前記第1エントリ情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第2読出ステップは、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わないようにしたものである。
また、本発明にかかるさらに他のフレーム検索処理方法は、フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、前記検索処理ステップは、第1検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶するステップと、第2検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第1エントリ情報以外の部分からなる第2エントリ情報を記憶するステップと、比較回路が、前記エントリごとに、前記第1エントリ情報および前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、第1読出回路が、前記各エントリから巡回的に、複数の前記第1エントリ情報を並列的に読み出して前記各比較回路へ分配するための第1読出信号を前記第1検索テーブルへ出力する第1読出ステップと、第2読出回路が、前記各エントリから巡回的に前記第2エントリ情報を読み出して前記比較回路へ出力するための第2読出信号を前記第2検索テーブルへ出力する第2読出ステップとを有し、前記比較ステップは、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1検索テーブルから分配された前記第1エントリ情報を前記フレーム情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第2読出ステップは、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第1エントリ情報と対応する前記第2エントリ情報を示す第2エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第2エントリ番号に基づいて、当該第2のエントリ番号に対応するエントリからの前記第2エントリ情報の読み出しを指示する前記第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力し、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わないようにしたものである。
[第1の実施の形態]
まず、図1を参照して、本発明の第1の実施の形態にかかるフレーム検索処理装置10について説明する。図1は、第1の実施の形態にかかるフレーム検索処理装置の構成を示すブロック図である。
検索処理部12は、フレーム情報抽出部11で抽出したフレーム情報FDを、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームFINと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果SRを、前記入力フレームFINに対して実行すべきフレーム処理の内容を示す処理情報として出力する機能を有している。
フレーム合成部14は、検索処理部12で得られた検索結果SRに基づいて、フレームバッファ13から出力された入力フレームFINのデータを書き換えて、出力フレームFOUTとして出力する機能を有している。
図2は、第1の実施の形態にかかるフレーム検索処理装置の検索処理部の構成を示すブロック図である。
この検索処理部12には、主な回路部として、フレーム情報振分回路21、第1検索テーブル22A、第2検索テーブル22B、第1読出回路23A、第2読出回路23B、N個の比較回路3n(n=1〜N;Nは2以上の自然数)、および検索結果合流回路24が設けられている。
第2検索テーブル22Bは、半導体メモリなどの記憶装置からなり、エントリごとに、当該エントリと対応する前記検索条件のうち第1エントリ情報以外の部分からなる第2エントリ情報を記憶する機能を有している。
第2読出回路23Bは、専用の信号処理回路からなり、第2検索テーブル22Bの各エントリから巡回的に第2エントリ情報EDBを読み出して、各比較回路3nへ出力するための第2読出信号を第2検索テーブル22Bへ出力する機能を有している。
検索結果合流回路24は、各比較回路3n(n=1〜N)から検索結果SRnを入力し、これらを検索結果SRとしてフレーム合成部14に対して順次出力する。
第2検索テーブル22Bは、第2読出回路23Bから第2読出信号RBを入力し、この第2読出信号RBが示すタイミングで、第2読出信号RBが示すアドレス、すなわちエントリiから、記憶している第2エントリ情報EDB[i]を読み出す機能を有している。
この検索処理において、比較回路3nは、入力されたフレーム情報FDnと、第1読出回路23Aが第1検索テーブル22Aのエントリi(i=1〜Ne)から読み出した第1エントリ情報EDA[i]とに基づいて、前記フレーム情報FDnが、前記第1エントリ情報EDA[i]が表す検索条件に適合するか否かを判定するための第1適合判定を行って、回路内部信号として第1適合判定結果CJAn[i](図示せず)を得る。
すなわち、本例では、第1適合判定とは別に第2検索テーブル読出判定を行う必要はなく、また、第1適合判定結果CJAn[i]を用いて読出判定結果RJn[i]を得ることができる。
さらに、前記処理の継続によって、検索テーブルの全エントリについて統合適合判定を行った場合は、最後のエントリに対する統合適合判定結果が不適合であったとしても、処理を終了する。
なお、前記適用優先度とは、検索テーブル中に適合と判定されるエントリが複数存在する場合に、それらのエントリのうち、どのエントリの検索結果SRnを採用するかを決めるために用いられる、各エントリに指定された値である。例えば、適合と判定されるエントリのなかで適用優先度の値が最も小さいエントリを採用する。
第2適合判定結果CJB[i]を得る前に、次のエントリ(i+1)に対する第1適合判定を行って、第1適合判定結果CJAn[i+1]を得る場合は、エントリiに対する第1適合判定結果CJAn[i]とともにエントリ(i+1)に対する第1適合判定結果CJAn[i+1]を、統合適合判定を行うまで一時的に保持しておく。
第1読出アドレス生成部41Aは、クロックに合わせて、1サイクル前に出力の第1読出アドレスRAA値である第1読出アドレスRAA[i−1]を+1した値を、第1読出アドレスRAA[i]として出力する機能を有している。これにより、エントリiの第1読出アドレスRAA[i]の値はi−1となる。ただし、フレーム検索処理装置10の動作開始時と、第1読出アドレスRAA値がNeとなった場合は0を出力する。
第1読出回路23Aが出力する第1読出信号RA[i]は、第1読出有効信号REA[i]と第1読出アドレスRAA[i]とを有している。
また、第1読出アドレスRAA[i]は、第1検索テーブル22Aの他に、第2読出回路23Bに出力され、第2テーブルメモリM2(第2検索テーブル22B用のメモリ)から第2エントリ情報EDB[i]を読み出すために用いられる。
第2読出有効生成部42Bは、各比較回路3n(n=1〜N)から読出判定結果RJn[i]を入力し、1個以上の読出判定結果RJn[i]が読出ありを示すとき、有効を示す第2読出有効信号REB[i]を出力する機能を有している。なお、全て読出なしを示す場合は、無効を示す第2読出有効信号REB[i]を出力する。すなわち、n=1〜Nについて、読出判定結果RJn[i]の論理和が第2読出有効信号REB[i]となる。
次に、図4を参照して、本実施の形態にかかる検索処理部12の動作について説明する。図4は、第1の実施の形態にかかる検索処理部の動作を示すタイムチャートであり、比較回路3nの個数Nが2の場合を例として、検索処理部12内の各信号について時間の経過(左から右)に伴う変化が示されている。
各比較回路3n(n=1,2)は、第1エントリ情報EDA[i]の入力から1サイクル後に読出判定結果RJn[i]を出力する。この1サイクルの遅延は、比較回路3nが読出判定結果RJn[i]をラッチして出力することによって生じる。なお、読出判定結果RJnが第1エントリ情報EDA[i]とフレーム情報FDnの複雑な演算を必要とする場合は、1サイクルより大きい遅延となる場合もある。
また、Tdが変動し第2読出アドレス生成部41Bが前記変動に合わせて遅延できないのであれば、第1読出アドレス生成部41Aが第2読出アドレス生成部41Bに出力する第1読出アドレスRAA[i]を前記Tdの変動に合わせて遅延させる構成や、図11に示されている別の実施の形態での構成のように、エントリ番号iを、比較回路3nを介して第1読出回路23Aから第2読出回路23Bに受け渡す構成も可能である。
この2サイクルの遅延は、前記第2テーブルメモリが入力したアドレス等の信号をラッチすることで生じる1クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる1クロックの遅延を合わせた値である。第2テーブルメモリの種類やメモリと前記第2読出回路23B等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。
このように、本実施の形態では、比較回路3nが、エントリiの第1エントリ情報EDA[i]および第2エントリ情報EDB[i]をフレーム情報FDnと比較する際、まず前記第1エントリ情報EDA[i]を前記フレーム情報FDnと比較することにより、前記第1エントリ情報EDA[i]が前記フレーム情報FDnと適合するか否か判定して、前記第2エントリ情報EDB[i]の読出要否を示す読出判定結果RJnとして前記第2読出回路23Bへ出力し、当該判定により得られた第1適合判定結果CJAn[i]が適合を示す場合には、前記第2エントリ情報EDB[i]を前記フレーム情報FDnと比較することにより、前記第2エントリ情報EDB[i]が前記フレーム情報FDnと適合するか否か判定し、当該判定により得られた第2適合判定結果CJB[i]が適合を示す場合には、当該エントリiのエントリ番号、前記第1エントリ情報EDA[i]の一部、または前記第2エントリ情報EDB[i]の一部を、適合エントリと対応する検索結果SRnとするようにしたものである。
次に、本実施の形態にかかるフレーム検索処理装置10の動作例について説明する。
ここでは、フレーム情報抽出部11から入力されるフレーム情報FDとして、フレーム検索処理装置10が入力した入力フレームFINのIPヘッダ内に格納されている送信元IPアドレスと宛先IPアドレスを含む場合を例として取り上げて説明する。
上記フレーム情報FDに対する検索を行う場合の、第1エントリ情報EDAと第2エントリ情報EDBの例を、以下に説明する。
第1エントリ情報EDA=エントリ有効フラグ・フレーム種別;IPv4かIPv6かを示すフラグ
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスと宛先IPアドレス
第1エントリ情報EDA=エントリ適用優先度
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスと宛先IPアドレスと各アドレスのマスク長
例えば、宛先IPアドレスがある範囲(IPx〜IPy)にあるフレームについては廃棄するが、例外的に、前記範囲内にある特定の宛先IPアドレス(IPz)のフレームについては通過させたい、といった場合である。この場合、前者に対するエントリの適用優先度よりも、後者に対するエントリの適用優先度を高くすることで前記が可能となる。
これに対して、本例によれば、1個のフレームを検索するときの1エントリあたりの検索テーブルからの平均読み出しビット数は、63.5ビット(=適用優先度8ビット+(送信元IPアドレス32ビット+宛先IPアドレス32ビット+送信元IPアドレスのマスク長5ビット+宛先IPアドレスのマスク長5ビット)*0.75)に削減できる。すなわち、1個のフレームを検索するとき検索テーブルから読み出されるビット数の平均値は、63.5bit*Ne(Neはエントリ数)となる。
第1エントリ情報EDA=第2エントリ情報EDBから算出されたハッシュ値
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスと宛先IPアドレス
例えば、宛先IPアドレスと送信元IPアドレスの両方に基づいて適合判定するエントリに加えて、宛先IPアドレスのみに基づいて適合判定する一部のエントリが含まれる検索処理である。
したがって、ハッシュ値を算出可能な検索条件を持ったエントリと、前記が不可能なエントリが混在している場合にも、前者のエントリに対して1エントリあたりの読み出しビット数を削減できる。
第1エントリ情報EDA=エントリに適合するための宛先IPアドレスとそのマスク長と第2エントリ情報EDBの読出フラグ、
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスとそのマスク長
このような場合に、全エントリについて、宛先IPアドレスと送信元IPアドレスの両方を検索テーブルから読み出す装置では、宛先IPアドレスのみを条件とするエントリが多数を占める場合に、無駄な送信元IPアドレスの読み出しが問題となる。
これにより、宛先IPアドレスと送信元IPアドレスの両方を検索テーブルから読み出す必要があるエントリについてのみ、送信元IPアドレスを第2検索テーブル22Bから読み出すこととなるため、無駄な送信元IPアドレスの読み出しが発生しない。
例えばVLAN IDのみを検索条件とするエントリと、VLAN IDに加えて送信元MACアドレスも検索条件となるエントリが混在する検索テーブルの場合、第1エントリ情報EDAとしてVLAN IDを指定し第2エントリ情報EDBとして送信元MACアドレスを指定することになる。
第1エントリ情報EDA=エントリに適合するためのIPアドレスとエントリ情報種別;宛先・送信元を識別するフラグ
第2エントリ情報EDB=エントリに適合するためのIPアドレス(第1エントリ情報EDAに指定されなかった方のIPアドレス;宛先ならば送信元で送信元ならば宛先)
次に、図5を参照して、本発明の第2の実施の形態にかかるフレーム検索処理装置10について説明する。図5は、第2の実施の形態にかかる検索処理部の要部を示すブロック図である。
第1の実施の形態では、図3に示したように、第1検索テーブル22A用の第1テーブルメモリと第2検索テーブル22B用の第2テーブルメモリの2個のテーブルメモリM1,M2を使用する場合を例として説明した。本実施の形態では、1個の共通テーブルメモリM0に、第1検索テーブル22Aと第2検索テーブル22Bの両方を実現する場合について説明する。
つまり、時間Td前に第1検索テーブル22Aから読み出された第1エントリ情報EDA[a+1−Cd]と同じエントリで第2検索テーブル22Bから読み出された第2エントリ情報EDB[a+1−Cd]が、エントリ(a+1)の第1エントリ情報EDA[a+1]と合わせて読み出されることになる。
本実施の形態において、上記以外の構成については、第1の実施の形態と同様であり、ここでの説明は省略する。
次に、図6を参照して、本実施の形態にかかる検索処理部12の動作について説明する。図6は、第2の実施の形態にかかる検索処理部の動作を示すタイムチャートであり、比較回路3nの個数Nが2の場合を例として、検索処理部12内の各信号について時間の経過(左から右)に伴う変化が示されている。
読出アドレスRAD[i]=i−1のワードには、第1エントリ情報EDA[i]と第2エントリ情報EDB[i−Cd](Cd=3)が格納されているので、読出アドレスaのワードから第2エントリ情報EDB[a−2]が読み出される。
本実施の形態において、上記以外の動作については、第1の実施の形態と同様であり、ここでの説明は省略する。
このように、本実施の形態は、前記第1検索テーブル22Aおよび前記第2検索テーブル22Bを含み、エントリiに対応する前記第1エントリ情報および前記第2検索テーブル22Bの前記第2エントリ情報をそれぞれEDA[i]およびEDB[i]とし、EDA[i]の読み出しからEDB[i]の読み出しまでの期間に読み進むエントリ数をCdとした場合、エントリiに対応するアドレスに、EDA[i]とEDB[i−Cd]とを記憶する1つの共通テーブルメモリM0を備え、前記第1読出回路23Aが、前記共通テーブルメモリM0内の前記各エントリから巡回的にEDA[i]とEDB[i−Cd]とを読み出して前記比較回路3nへ出力するための共通読出信号RAを前記共通テーブルメモリM0へ出力し、前記第2読出回路23Bが、前記比較回路3nから出力された前記読出判定結果RJが読み出しありを示す場合に、前記第2検索テーブル22Bからの読出有効を示す前記第2読出信号RBを前記共通テーブルメモリM0へ出力し、前記共通テーブルメモリM0が、前記第1読出回路23Aからの前記共通読出信号RAに応じて、当該共通読出信号RAと対応するアドレスからEDA[i]を読み出して出力するとともに、前記第2読出信号RBが前記第2検索テーブル22Bからの読出有効を示す場合にのみ、前記アドレスからEDB[i−Cd]を読み出して出力するようにしたものである。
次に、図7を参照して、本発明の第3の実施の形態にかかるフレーム検索処理装置10について説明する。図7は、第3の実施の形態にかかる検索処理部の構成を示すブロック図である。
第1の実施の形態では、第1読出回路23Aからの第1読出アドレスRAAに基づいて、第2読出回路23Bで、第2読出アドレスRABを生成する場合を例として説明した。本実施の形態では、第1エントリ情報EDA内に格納されている、当該第1エントリ情報EDAと対応する第2エントリ情報EDBを示す前記第2検索テーブル22B上の第2エントリ番号に基づいて、第2読出回路23Bで、第2読出アドレスRABを生成する場合について説明する。
第2検索テーブル22Bは、Ne’個(Ne’は1以上の自然数)のエントリj(j=1〜Ne’)を有し、各エントリjに第2エントリ情報EDB[j]を記憶する。
同様に、第2検索テーブル22Bは、第2読出回路23Bから第2読出信号RBを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第2エントリ情報EDB[i]を読み出す。
したがって、従来の検索テーブルにおける、エントリiのエントリ情報を、第1検索テーブル22Aの第1エントリ情報EDA[i](第2のエントリ番号ENB[i]を除く)と第2検索テーブル22Bの第2エントリ情報EDB[第2のエントリ番号ENB[i]]とに分割したことになる。
第2適合判定結果CJB[i]を得る前に、次のエントリ(i+1)に対する第1適合判定を行って、第1適合判定結果CJAn[i+1]を得る場合は、エントリiに対する第1適合判定結果CJAn[i]とともにエントリ(i+1)に対する第1適合判定結果CJAn[i+1]を、統合適合判定を行うまで一時的に保持しておく。
これにより、エントリの更新間隔を、第1適合判定結果CJAn[i]を得てから第2適合判定結果CJB[i]を得るまでの時間以上とする必要がなくなり、検索処理速度を向上できる。
このうち、第1読出アドレス生成部41Aおよび第1読出有効生成部42Aは、前述した図3と同一であり、各々、クロックに合わせて、第1読出アドレスRAA[i]および第1読出有効信号REA[i]を生成して、第1検索テーブル22Aに出力し、第1エントリ情報EDA[i]を読み出す機能を有している。
このうち、第2読出有効生成部42Bは、図3と同一であり、各比較回路3n(n=1〜N)から読出判定結果RJn[i]を入力し、1個以上の読出判定結果RJn[i]が読出ありを示すとき、有効を示す第2読出有効信号REB[i]を出力する機能を有している。
また、第2読出アドレス生成部41Bは、第2のエントリ番号ENB[i]を入力し、前記番号を基に第2読出アドレスRAB[i]を生成して出力する機能を有している。
前記演算の例は、第2テーブルメモリのアドレス=j−1であり、前記例では、エントリ番号jの第2エントリ情報EDB[j]は、第2テーブルメモリのアドレス=j−1にあるワードに記憶される。なお、他の演算方法によってエントリ番号からアドレスを生成する方法であってもよい。前記例では、エントリ番号=第2のエントリ番号ENB[i]のとき、第2読出アドレス生成部41Bが第2検索テーブル22Bに出力する第2読出アドレスRAB[i]=第2のエントリ番号ENB[i]−1となる。
次に、図9を参照して、本実施の形態にかかる検索処理部12の動作について説明する。図9は、第3の実施の形態にかかる検索処理部の動作を示すタイムチャートであり、比較回路3nの個数Nが2の場合を例として、検索処理部12内の各信号について時間の経過(左から右)に伴う変化が示されている。
なお、図9の信号を表す各箱内の数字は信号値である第2のエントリ番号ENBi(1〜8;第2検索テーブル22Bのエントリ数=8)を表し、前記箱内の−の記号は第2エントリ情報EDBなし、すなわち第1エントリ情報EDAのみで判定可能なエントリであったことを意味する。
第2エントリ情報EDB[第2のエントリ番号ENB[i]]は、第2読出有効信号REB[i]が有効時の第2読出アドレスRAB[i]の入力から2サイクル後に第2検索テーブル22Bから読み出されたデータである、第2エントリ情報EDB[i]が出力さ
れる。
このように、本実施の形態は、前記第1エントリ情報EDAが、当該第1エントリ情報EDAと対応する前記第2エントリ情報EDBのエントリ番号を示す第2エントリ番号ENBを含み、前記第1読出回路23Aが、前記第1検索テーブル22Aから読み出された前記第1エントリ情報EDAから前記第2エントリ番号ENBを分離し、前記第2エントリ番号ENBを除いた前記第1エントリ情報EDAを前記比較回路3nへ出力するとともに、分離した前記第2エントリ番号ENBを前記第2読出回路23Bへ出力し、前記比較回路3nが、前記第1検索テーブル22Aに代えて、前記第1読出回路23Aから前記第2エントリ番号ENBを除いた前記第1エントリ情報EDAを入力し、前記第2読出回路23Bは、前記第1読出回路23Aからの前記第2エントリ番号ENBに基づき、前記第2読出信号RBを生成して前記第2検索テーブル22Bへ出力するようにしたものである。
次に、本実施の形態にかかるフレーム検索処理装置10の動作例について説明する。
ここでは、フレーム情報抽出部11から入力されるフレーム情報FDとして、フレーム検索処理装置10が入力した入力フレームFINのIPヘッダ内に格納されている送信元IPアドレスと宛先IPアドレスを含む場合を例として取り上げて説明する。
上記フレーム情報FDに対する検索を行う場合の、第1エントリ情報EDAと第2エントリ情報EDBの例を、以下に説明する。
第1エントリ情報EDA=エントリに適合するための宛先IPアドレスとそのマスク長と第2エントリ情報EDBの読出フラグと第2のエントリ番号ENB
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスとそのマスク長
第1エントリ情報EDA=第2エントリ情報EDBから算出されたハッシュ値・エントリ情報種別・第2のエントリ番号ENB、
第2−1のエントリ情報=エントリに適合するための送信元IPv4アドレスと宛先IPv4アドレス、
第2−2のエントリ情報=エントリに適合するための送信元IPv6アドレスと宛先IPv6アドレス
このように、ビット数の異なる検索条件の一方をエントリに格納する場合には、ビット数の短い方の検索条件を格納したエントリには使用されない記憶領域が発生することになるため、検索テーブルの使用されない記憶領域によって検索テーブル用メモリの規模が必要以上に大きくなる。
各エントリの検索条件はIPv4かIPv6かのどちらか一方であるため、前記第2−1の検索テーブルの使用されているエントリ数と前記第2−2の検索テーブルの使用されているエントリ数とを合わせた数が、前記第1検索テーブル22Aの使用されたエントリ数となる。
前記第1適合判定とは、フレーム情報FDが、第1エントリ情報EDA[i]に含まれるエントリ情報種別[i]に適合し(上記例ではフレームがIPv4の場合に前記エントリ情報種別がIPv4を示すか、あるいは、フレームがIPv6の場合に前記エントリ情報種別がIPv6を示す)、かつ、第2エントリ情報EDBから算出されたハッシュ値がフレーム情報FDから算出されたハッシュ値と一致する(上記例ではフレーム情報FDに含まれる送信元IPアドレスと宛先IPアドレスのビット列に対して所定のハッシュ演算(例えばSRC8など)を施したフレーム情報FDのハッシュ値と第1エントリ情報EDA[i]に含まれるハッシュ値が一致する)場合に適合と判定するものである。
また、第1読出回路23Aは、前記第1エントリ情報EDA[i]に含まれる第2のエントリ番号ENB[i]と、前記エントリ情報種別[i]を、第2読出回路23Bに対して出力する。
これにより、検索テーブルのビット数削減とともに、全エントリをIPv4用として使用することもできるので、全エントリ(256エントリ)のうち1/2のエントリがIPv4を条件とするIPv4専用のエントリで残りのエントリがIPv6を条件とするIPv6専用のエントリである場合と比較して、IPv4用のエントリに対するエントリ数の制限が緩和され、最大2倍のエントリ数まで設定可能となる。
次に、図10を参照して、本発明の第4の実施の形態にかかるフレーム検索処理装置10について説明する。図10は、第4の実施の形態にかかる検索処理部の構成を示すブロック図である。
第1の実施の形態では、第1検索テーブル22Aから比較回路3nに対して第1エントリ情報EDAを出力する場合を例として説明した。本実施の形態では、第1読出回路23Aから比較回路3nに対して第1エントリ番号ENAを出力する場合について説明する。
第2検索テーブル22Bは、Ne個のエントリj(j=1〜Ne)を有し、各エントリjに第2エントリ情報EDB[j]を記憶する。
同様に、第2検索テーブル22Bは、第2読出回路23Bから第2読出信号RBを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第2エントリ情報EDB[i]を読み出す。
さらに、全ての比較回路3nについて、その検索状態SSnが検索停止中であることを示す場合は、第1検索テーブル22Aの読み出しを行わない。これにより、第1検索テーブル22Aの読み出しが不要な期間の消費電力を削減できる。
この検索処理において、比較回路3nは、入力されたフレーム情報FDnと、第1読出回路23Aが第1検索テーブル22Aのエントリi(i=1〜Nr)から読み出した第1エントリ情報EDA[i]とに基づいて、前記フレーム情報FDnが、前記各第1エントリ情報EDA[i]が表す検索条件に適合するか否かを判定するための第1適合判定を行って、回路内部信号として第1適合判定結果CJAn[i](図示せず)を得る。
このため、比較回路3nは、統合適合判定を行うまでの期間、前記第1適合判定結果CJAn[i]を一時的に保持しておく必要がある。なお、前記期間中に得られる別のエントリの第1適合判定結果CJAについても同様に保持しておく必要がある。
このため、第2読出待ちキュー44Bが前記オーバーフロー防止のための処理を行わないと、第1検索テーブル22Aに対する判定で第2検索テーブル読出となるエントリ数が第2検索テーブル22Bに対する判定速度を超える状況が発生したとき、第2読出待ちキュー44Bの蓄積が増大して、前記キューに蓄積可能な最大数を超えた(オーバーフローの発生)時点で、第2検索テーブル22Bに対する判定ができないエントリが発生するなどの問題が生じる。
例えば、Ne=256, Nr=8としたとき、前記一時停止がないと第1検索テーブル22Aの全エントリを読み出すために要する時間は、1クロックにつきNr個のエントリを読み出すので、32サイクル(=Ne/Nr)となるが、一時停止が最大となるケースである全エントリが第2検索テーブル22Bの読出ありとなった場合は、1クロックにつき1個のエントリとなってしまうため、256サイクルとなる。
さらに、前記比較回路3nは、エントリjについて、第1エントリ情報EDA[j]が第1検索テーブル22Aから読み出された後に得られる第1適合判定結果CJAn[j]と、その後の第2エントリ情報EDB[j]が第2検索テーブル22Bから読み出された後に得られる第2適合判定結果CJB[j]に基づいて、統合適合判定を行う。前記統合適合判定により適合と判断されたエントリが見つかった時点、あるいは、全てのエントリについてフレーム情報FDnとの判定を終えた時点で、前記比較回路3nは検索を終了し、検索結果SRnを出力する。
前記比較回路3nは、前記統合適合判定によって得られた結果(例えば前記判定において適合したエントリの番号iや前記エントリの第2エントリ情報EDB[i]に含まれる結果を示す情報;通過/廃棄を示す情報や送出先を示すポート番号など)を、検索結果SRnとして、検索結果合流回路24に対して出力する。
第1の実施の形態や第2の実施の形態では、比較回路3nが第1エントリ情報EDAを得てから時間Tdを経過した時点で第2検索テーブル22Bから入力した第2エントリ情報EDBは、同一エントリ番号に対応することが保証されているので、第2エントリ情報EDBを入力したとき前記エントリ番号が入力される必要はない。
各比較回路3nは、適合を示す第1適合判定結果CJAn[i]を得るとともに第2検索テーブル読出ありを示す読出判定結果RJn[i]を得たときのエントリ番号i(第2適合判定待ちエントリ番号)を一時的に保持しておく。
また、第2適合判定結果CJB[j]を得る前に、前記エントリj以降のエントリi’についても第1適合判定を行ってエントリ番号i’を一時的に保持しておくことにより検索処理速度を向上させることができるため、第2適合判定待ちエントリ番号をキューに保持する。
なお、全比較回路3n(n=1〜N)から検索停止を示す検索状態SSnを入力している期間、または、第1読出停止信号RSAが停止を示す期間は、無効を示す第1読出有効信号REA[k]を出力する。
第1検索テーブル22Aは、第1読出アドレスRAA[k]と第1読出有効信号REA[k]を第1読出回路23Aから入力し、前記第1読出有効信号REA[k]が有効を示すとき、前記第1テーブルメモリから前記第1読出アドレスRAA[k]が示す位置に記憶されているNr個の第1エントリ情報EDA[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)を読み出して、各比較回路3n(n=1〜N)に分配する。また、前記第1読出有効信号REA[k]が無効を示すときは前記読み出しと分配を行わない。
なお、第1エントリ番号kが所定の無効値を示す場合は、前記と同時に入力された第1エントリ情報EDA[i]を用いた第1適合判定や第2検索テーブル読出判定を行わない。これは、前記第1エントリ情報EDA[i]は第1検索テーブル22Aから読み出された値ではなく無効であるためである。
第2読出有効生成部42Bは、クロックサイクル毎に、比較回路3n(n=1〜N)の各々から、Nr個の読出判定結果RJn[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)を入力する。前記各比較回路3nから入力された各エントリiの読出判定結果RJn[i]に1個以上の読出ありを示す結果が含まれる場合に、有効を示す第2読出有効信号REB[i]を出力し、全て読出なしを示す場合は無効を示す第2読出有効信号REB[i]を出力する。これにより、クロックサイクル毎に、Nr個のエントリi(i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)について前記第2読出有効信号REB[i]が出力されることになる。
なお、有効を示す第2読出有効信号REB[i]のエントリ番号iを前記キューに入力するのではなく、Nr個の第2読出有効信号REB[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)のうち1個以上が有効を示しているとき、第1エントリ番号kと、Nr個の第2読出有効信号REB[i]を表すビット列を前記キューに入力する方法によっても、上記と同じ機能を実現可能である。
なお、他の演算方法によってエントリ番号からアドレスを生成する方法であってもよい。前記例では、エントリ番号=第2のエントリ番号ENB[i]のとき、第2読出アドレス生成部41Bが第2検索テーブル22Bに出力する第2読出アドレスRAB[i]=第2のエントリ番号ENB[i]−1となる。
したがって、第1エントリ番号kとNr個の第1エントリ情報EDA[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)が同時に入力する方法以外にも、第1エントリ番号kの入力とNr個の第1エントリ情報EDA[i]の入力を固定の時間差とする方法によっても、前記エントリ番号とエントリ情報の対応づけが可能である。
本実施の形態において、上記以外の構成については、第1の実施の形態と同様であり、ここでの説明は省略する。
次に、図12および図13を参照して、本実施の形態にかかる検索処理部12の動作について説明する。図12は、第4の実施の形態にかかる検索処理部の動作を示すタイムチャートである。図13は、第4の実施の形態にかかる検索処理部の動作を示すタイムチャート(続き)である。これら図12および図13では、比較回路3nの個数が2の場合であって、エントリ数Nrが2の場合を例として、検索処理部12内の各信号について時間の経過(左から右)に伴う変化が示されている。
つまり、第1テーブルメモリのアドレスkに、第1エントリ情報EDA[2*k+1]と第1エントリ情報EDA[2*k+2]を記憶しておき、クロックサイクル毎に、エントリ番号をインクリメントさせて、前記エントリkに対応する2個の第1エントリ情報EDAを第1テーブルメモリから並列して同時に読み出す。
各比較回路3n(n=1,2)は、第1エントリ情報EDA[i]の入力から1サイクル後に読出判定結果RJn[i]を出力する。前記1サイクルの遅延は、比較回路3nで読出判定結果RJn[i]をラッチして出力することによって生じる。なお、第2検索テーブル読出判定nが、第1エントリ情報EDA[i]とフレーム情報FDnの複雑な演算を必要とする場合は、1サイクルより大きい遅延となる場合もある。
同様に、読出判定結果RJ2[i]は、エントリ番号iが8,9,12,4について読出ありを示す場合が図示されている。つまり、比較回路32は、第2エントリ情報EDB[8],[9],[12],[4]を読み出すという第2検索テーブル読出判定を得たことになる。
時刻T6のクロックサイクルも同様に入力がなく、前記キューに蓄積中であったエントリ番号13については前記キューから出力され、第2読出信号生成部から第2読出アドレスRAB[13]として第2検索テーブル22Bに出力される。なお、第1読出停止信号RSAによって読出停止となっていないならば、エントリ番号4の入力があるタイミングであるが、3サイクル前に第1読出停止信号RSAが読出停止を出力したことによって、第1エントリ情報EDA[3],[4]以後の読出が2サイクル分遅れている。
時刻T8のエントリ番号4が、第1検索テーブル読出停止によって2サイクル分遅れて入力される。前記キューが空の状態であるためエントリ番号4については前記キューに蓄積されることなく、第2読出信号生成部に出力され、第2読出信号生成部から第2読出アドレスRAB[4]として第2検索テーブル22Bに出力される。
このように、本実施の形態は、前記第1検索テーブル22Aが、アドレスごとに、複数のエントリと対応するNr個の第1エントリ情報EDAを記憶し、前記比較回路3mが、前記第1検索テーブル22Aから並列して同時に読み出されたNr個の第1エントリ情報EDAを前記フレーム情報FDと比較し、これら第1エントリ情報EDAごとに得られたNr個の前記読出判定結果RJnを前記第2読出回路23Bへ出力し、前記第2読出回路23Bが、前記比較回路3mから出力されたNr個の前記読出判定結果RJnのいずれかが読み出しありを示す場合には、当該読出判定結果RJnを得た前記第1エントリ情報EDAと対応する前記第2エントリ情報EDBを示す第2エントリ番号ENBを第2読出待ちキュー44Bへ順次蓄積し、前記第2読出待ちキュー44Bに蓄積されている前記第2エントリ番号ENBを順次読み出して、前記第2検索テーブル22Bの当該第2エントリ番号のエントリから前記第2エントリ情報EDBを読み出して前記比較回路3nへ出力するための第2読出信号RBを前記第2検索テーブル22Bへ出力するようにしたものである。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
Claims (8)
- 入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、
前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、
前記検索処理部は、
前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶する第1検索テーブルと、
前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第1エントリ情報以外の部分からなる第2エントリ情報を記憶する第2検索テーブルと、
前記エントリごとに、前記第1検索テーブルから読み出された前記第1エントリ情報および前記第2検索テーブルから読み出された前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、
前記各エントリから巡回的に前記第1エントリ情報を読み出して前記比較回路へ出力するための第1読出信号を前記第1検索テーブルへ出力する第1読出回路と、
前記各エントリから巡回的に前記第2エントリ情報を読み出して前記比較回路へ出力するための第2読出信号を前記第2検索テーブルへ出力する第2読出回路とを有し、
前記比較回路は、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1エントリ情報を前記フレーム情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第2読出回路は、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理装置。 - 入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、
前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、
前記検索処理部は、
前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶するとともに、当該検索条件のうち当該第1エントリ情報以外の部分からなる第2エントリ情報に関する第2エントリ番号を、当該第1エントリ情報に付加して記憶する第1検索テーブルと、
前記エントリごとに前記第2エントリ情報を記憶する第2検索テーブルと、
前記エントリごとに、前記第1エントリ情報および前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、
前記第1検索テーブルから前記各エントリの第1エントリ情報を巡回的に読み出して、当該第1エントリ情報に付加されている前記第2エントリ番号を分離し、当該第2エントリ番号を分離した第1エントリ情報を前記比較回路へ出力する第1読出回路と、
前記第1読出回路で分離した前記第2エントリ番号に基づいて、当該前記第2エントリ番号に対応するエントリからの第2エントリ情報の読み出しを指示する第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力する第2読出回路とを有し、
前記比較回路は、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1読出回路から出力された前記第1エントリ情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第2読出回路は、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理装置。 - 入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、
前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、
前記検索処理部は、
前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶する第1検索テーブルと、
前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第1エントリ情報以外の部分からなる第2エントリ情報を記憶する第2検索テーブルと、
前記エントリごとに、前記第1エントリ情報および前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、
前記各エントリから巡回的に、複数の前記第1エントリ情報を並列的に読み出して前記各比較回路へ分配するための第1読出信号を前記第1検索テーブルへ出力する第1読出回路と、
前記各エントリから巡回的に前記第2エントリ情報を読み出して前記比較回路へ出力するための第2読出信号を前記第2検索テーブルへ出力する第2読出回路とを有し、
前記比較回路は、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1検索テーブルから分配された前記第1エントリ情報を前記フレーム情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第2読出回路は、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第1エントリ情報と対応する前記第2エントリ情報を示す第2エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第2エントリ番号に基づいて、当該第2のエントリ番号に対応するエントリからの前記第2エントリ情報の読み出しを指示する前記第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力し、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理装置。 - 請求項1〜請求項3のいずれかに記載のフレーム検索処理装置において、
前記比較回路を複数備えるとともに、これら比較回路のうち前記適合エントリの検索中である比較回路以外のいずれか1つに対して、前記フレーム情報抽出部で得られた前記フレーム情報を振り分けるフレーム情報振分回路をさらに備えることを特徴とするフレーム検索処理装置。 - 請求項2に記載のフレーム検索処理装置において、
前記第1読出回路は、前記第1エントリ情報を読み出す際、前記各エントリから巡回的に、複数の前記第1エントリ情報を並列的に読み出して前記各比較回路へ分配するための第1読出信号を前記第1検索テーブルへ出力し、
前記比較回路は、前記エントリの前記第1エントリ情報を前記フレーム情報と比較する際、前記第1検索テーブルから分配された前記第1エントリ情報を前記フレーム情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、
前記第2読出回路は、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第1エントリ情報と対応する前記第2エントリ情報を示す第2エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第2エントリ番号に基づいて、当該第2のエントリ番号に対応するエントリからの前記第2エントリ情報の読み出しを指示する前記第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力する
ことを特徴とするフレーム検索処理装置。 - フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、
検索処理部が、前記フレーム情報抽出ステップで抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、
前記検索処理ステップは、
第1検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶するステップと、
第2検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第1エントリ情報以外の部分からなる第2エントリ情報を記憶するステップと、
比較回路が、前記エントリごとに、前記第1検索テーブルから読み出された前記第1エントリ情報および前記第2検索テーブルから読み出された前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、
第1読出回路が、前記各エントリから巡回的に前記第1エントリ情報を読み出して前記比較回路へ出力するための第1読出信号を前記第1検索テーブルへ出力する第1読出ステップと、
第2読出回路が、前記各エントリから巡回的に前記第2エントリ情報を読み出して前記比較回路へ出力するための第2読出信号を前記第2検索テーブルへ出力する第2読出ステップとを有し、
前記比較ステップは、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1エントリ情報を前記フレーム情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第2読出ステップは、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理方法。 - フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、
検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、
前記検索処理ステップは、
第1検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶するとともに、当該検索条件のうち当該第1エントリ情報以外の部分からなる第2エントリ情報に関する第2エントリ番号を、当該第1エントリ情報に付加して記憶するステップと、
第2検索テーブルが、前記エントリごとに前記第2エントリ情報を記憶するステップと、
比較回路が、前記エントリごとに、前記第1エントリ情報および前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、
第1読出回路が、前記第1検索テーブルから前記各エントリの第1エントリ情報を巡回的に読み出して、当該第1エントリ情報に付加されている前記第2エントリ番号を分離し、当該第2エントリ番号を分離した第1エントリ情報を前記比較回路へ出力する第1読出ステップと、
第2読出回路が、前記第1読出回路で分離した前記第2エントリ番号に基づいて、当該前記第2エントリ番号に対応するエントリからの第2エントリ情報の読み出しを指示する第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力する第2読出ステップとを有し、
前記比較ステップは、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1読出回路から出力された前記第1エントリ情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第2読出ステップは、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理方法。 - フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、
検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、
前記検索処理ステップは、
第1検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第1エントリ情報を記憶するステップと、
第2検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第1エントリ情報以外の部分からなる第2エントリ情報を記憶するステップと、
比較回路が、前記エントリごとに、前記第1エントリ情報および前記第2エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、
第1読出回路が、前記各エントリから巡回的に、複数の前記第1エントリ情報を並列的に読み出して前記各比較回路へ分配するための第1読出信号を前記第1検索テーブルへ出力する第1読出ステップと、
第2読出回路が、前記各エントリから巡回的に前記第2エントリ情報を読み出して前記比較回路へ出力するための第2読出信号を前記第2検索テーブルへ出力する第2読出ステップとを有し、
前記比較ステップは、前記エントリの前記第1エントリ情報および前記第2エントリ情報を前記フレーム情報と比較する際、まず前記第1検索テーブルから分配された前記第1エントリ情報を前記フレーム情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、当該第1適合判定結果が適合を示す場合には、前記第2エントリ情報を前記フレーム情報と比較することにより、前記第2エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第1エントリ情報の一部、または前記第2エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第2読出ステップは、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第1エントリ情報と対応する前記第2エントリ情報を示す第2エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第2エントリ番号に基づいて、当該第2のエントリ番号に対応するエントリからの前記第2エントリ情報の読み出しを指示する前記第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力し、前記読出判定結果が読み出しなしを示す場合には、前記第2検索テーブルからの前記第2エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012096289A JP5848185B2 (ja) | 2012-04-20 | 2012-04-20 | フレーム検索処理装置および方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012096289A JP5848185B2 (ja) | 2012-04-20 | 2012-04-20 | フレーム検索処理装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013225739A JP2013225739A (ja) | 2013-10-31 |
JP5848185B2 true JP5848185B2 (ja) | 2016-01-27 |
Family
ID=49595538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012096289A Expired - Fee Related JP5848185B2 (ja) | 2012-04-20 | 2012-04-20 | フレーム検索処理装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5848185B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6319740B2 (ja) * | 2014-03-25 | 2018-05-09 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | データ圧縮を高速化する方法、並びに、データ圧縮を高速化するためのコンピュータ、及びそのコンピュータ・プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004336427A (ja) * | 2003-05-08 | 2004-11-25 | Mitsubishi Electric Corp | 検索回路およびパケット転送装置 |
JP4263718B2 (ja) * | 2005-12-16 | 2009-05-13 | 日本電信電話株式会社 | 通信処理装置及び通信処理方法 |
JP4971396B2 (ja) * | 2009-09-03 | 2012-07-11 | 日本電信電話株式会社 | 通信処理回路及び通信処理方法 |
-
2012
- 2012-04-20 JP JP2012096289A patent/JP5848185B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013225739A (ja) | 2013-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7606236B2 (en) | Forwarding information base lookup method | |
US7017021B2 (en) | High-speed message forwarding lookups for arbitrary length strings using pipelined memories | |
US10044646B1 (en) | Systems and methods for efficiently storing packet data in network switches | |
EP1551141B1 (en) | Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware | |
US7110400B2 (en) | Random access memory architecture and serial interface with continuous packet handling capability | |
Le et al. | Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning | |
TWI491206B (zh) | 檢索用串接記憶表 | |
JP2016195375A (ja) | 複数のリンクされるメモリリストを利用する方法および装置 | |
WO2013040730A1 (zh) | Ip查找方法和装置以及路由更新方法和装置 | |
JPWO2008149415A1 (ja) | パケットスイッチ装置 | |
US9083641B2 (en) | Method and apparatus for improving packet processing performance using multiple contexts | |
US20210392092A1 (en) | Buffer management method and apparatus | |
Le et al. | Memory-efficient and scalable virtual routers using FPGA | |
JP5624579B2 (ja) | オンチップルータ | |
TW201716984A (zh) | 用於使資料元件列表能夠有高讀取率之系統及方法 | |
JP5848185B2 (ja) | フレーム検索処理装置および方法 | |
JP5847887B2 (ja) | オンチップルータ及びそれを用いたマルチコアシステム | |
US10200296B2 (en) | Packet transport apparatus, packet transport system and packet transport method | |
US20100054272A1 (en) | Storage device capable of accommodating high-speed network using large-capacity low-speed memory | |
US10389626B2 (en) | Transfer device | |
JP5191059B2 (ja) | バッファ回路及びバッファ回路制御方法 | |
Van Tu et al. | A high throughput pipelined hardware architecture for tag sorting in packet fair queuing schedulers | |
JP2015069345A (ja) | 情報処理装置,データ転送装置,およびデータ転送方法 | |
Burns et al. | An FPGA based memory efficient shared buffer implementation | |
Bjerregaard et al. | Packetizing ocp transactions in the mango network-on-chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140829 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150619 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150707 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150828 |
|
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: 20151124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151126 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5848185 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |