(57)【特許請求の範囲】
【請求項１】
入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、
前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、
前記検索処理部は、
前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶する第１検索テーブルと、
前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第１エントリ情報以外の部分からなる第２エントリ情報を記憶する第２検索テーブルと、
前記エントリごとに、前記第１検索テーブルから読み出された前記第１エントリ情報および前記第２検索テーブルから読み出された前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、
前記各エントリから巡回的に前記第１エントリ情報を読み出して前記比較回路へ出力するための第１読出信号を前記第１検索テーブルへ出力する第１読出回路と、
前記各エントリから巡回的に前記第２エントリ情報を読み出して前記比較回路へ出力するための第２読出信号を前記第２検索テーブルへ出力する第２読出回路とを有し、
前記比較回路は、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第２読出回路は、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理装置。
【請求項２】
入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、
前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、
前記検索処理部は、
前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶するとともに、当該検索条件のうち当該第１エントリ情報以外の部分からなる第２エントリ情報に関する第２エントリ番号を、当該第１エントリ情報に付加して記憶する第１検索テーブルと、
前記エントリごとに前記第２エントリ情報を記憶する第２検索テーブルと、
前記エントリごとに、前記第１エントリ情報および前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、
前記第１検索テーブルから前記各エントリの第１エントリ情報を巡回的に読み出して、当該第１エントリ情報に付加されている前記第２エントリ番号を分離し、当該第２エントリ番号を分離した第１エントリ情報を前記比較回路へ出力する第１読出回路と、
前記第１読出回路で分離した前記第２エントリ番号に基づいて、当該前記第２エントリ番号に対応するエントリからの第２エントリ情報の読み出しを指示する第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力する第２読出回路とを有し、
前記比較回路は、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１読出回路から出力された前記第１エントリ情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第２読出回路は、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理装置。
【請求項３】
入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、
前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、
前記検索処理部は、
前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶する第１検索テーブルと、
前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第１エントリ情報以外の部分からなる第２エントリ情報を記憶する第２検索テーブルと、
前記エントリごとに、前記第１エントリ情報および前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、
前記各エントリから巡回的に、複数の前記第１エントリ情報を並列的に読み出して前記各比較回路へ分配するための第１読出信号を前記第１検索テーブルへ出力する第１読出回路と、
前記各エントリから巡回的に前記第２エントリ情報を読み出して前記比較回路へ出力するための第２読出信号を前記第２検索テーブルへ出力する第２読出回路とを有し、
前記比較回路は、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１検索テーブルから分配された前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第２読出回路は、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第１エントリ情報と対応する前記第２エントリ情報を示す第２エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第２エントリ番号に基づいて、当該第２のエントリ番号に対応するエントリからの前記第２エントリ情報の読み出しを指示する前記第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力し、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理装置。
【請求項４】
請求項１〜請求項３のいずれかに記載のフレーム検索処理装置において、
前記比較回路を複数備えるとともに、これら比較回路のうち前記適合エントリの検索中である比較回路以外のいずれか１つに対して、前記フレーム情報抽出部で得られた前記フレーム情報を振り分けるフレーム情報振分回路をさらに備えることを特徴とするフレーム検索処理装置。
【請求項５】
請求項２に記載のフレーム検索処理装置において、
前記第１読出回路は、前記第１エントリ情報を読み出す際、前記各エントリから巡回的に、複数の前記第１エントリ情報を並列的に読み出して前記各比較回路へ分配するための第１読出信号を前記第１検索テーブルへ出力し、
前記比較回路は、前記エントリの前記第１エントリ情報を前記フレーム情報と比較する際、前記第１検索テーブルから分配された前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、
前記第２読出回路は、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第１エントリ情報と対応する前記第２エントリ情報を示す第２エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第２エントリ番号に基づいて、当該第２のエントリ番号に対応するエントリからの前記第２エントリ情報の読み出しを指示する前記第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力する
ことを特徴とするフレーム検索処理装置。
【請求項６】
フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、
検索処理部が、前記フレーム情報抽出ステップで抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、
前記検索処理ステップは、
第１検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶するステップと、
第２検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第１エントリ情報以外の部分からなる第２エントリ情報を記憶するステップと、
比較回路が、前記エントリごとに、前記第１検索テーブルから読み出された前記第１エントリ情報および前記第２検索テーブルから読み出された前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、
第１読出回路が、前記各エントリから巡回的に前記第１エントリ情報を読み出して前記比較回路へ出力するための第１読出信号を前記第１検索テーブルへ出力する第１読出ステップと、
第２読出回路が、前記各エントリから巡回的に前記第２エントリ情報を読み出して前記比較回路へ出力するための第２読出信号を前記第２検索テーブルへ出力する第２読出ステップとを有し、
前記比較ステップは、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第２読出ステップは、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理方法。
【請求項７】
フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、
検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、
前記検索処理ステップは、
第１検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶するとともに、当該検索条件のうち当該第１エントリ情報以外の部分からなる第２エントリ情報に関する第２エントリ番号を、当該第１エントリ情報に付加して記憶するステップと、
第２検索テーブルが、前記エントリごとに前記第２エントリ情報を記憶するステップと、
比較回路が、前記エントリごとに、前記第１エントリ情報および前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、
第１読出回路が、前記第１検索テーブルから前記各エントリの第１エントリ情報を巡回的に読み出して、当該第１エントリ情報に付加されている前記第２エントリ番号を分離し、当該第２エントリ番号を分離した第１エントリ情報を前記比較回路へ出力する第１読出ステップと、
第２読出回路が、前記第１読出回路で分離した前記第２エントリ番号に基づいて、当該前記第２エントリ番号に対応するエントリからの第２エントリ情報の読み出しを指示する第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力する第２読出ステップとを有し、
前記比較ステップは、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１読出回路から出力された前記第１エントリ情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第２読出ステップは、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理方法。
【請求項８】
フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、
検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、
前記検索処理ステップは、
第１検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶するステップと、
第２検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第１エントリ情報以外の部分からなる第２エントリ情報を記憶するステップと、
比較回路が、前記エントリごとに、前記第１エントリ情報および前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、
第１読出回路が、前記各エントリから巡回的に、複数の前記第１エントリ情報を並列的に読み出して前記各比較回路へ分配するための第１読出信号を前記第１検索テーブルへ出力する第１読出ステップと、
第２読出回路が、前記各エントリから巡回的に前記第２エントリ情報を読み出して前記比較回路へ出力するための第２読出信号を前記第２検索テーブルへ出力する第２読出ステップとを有し、
前記比較ステップは、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１検索テーブルから分配された前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、
前記第２読出ステップは、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第１エントリ情報と対応する前記第２エントリ情報を示す第２エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第２エントリ番号に基づいて、当該第２のエントリ番号に対応するエントリからの前記第２エントリ情報の読み出しを指示する前記第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力し、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わない
ことを特徴とするフレーム検索処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム転送技術に関し、特に入力フレームに応じたフレーム処理を決めるための検索処理を行うフレーム検索処理技術に関する。
【背景技術】
【０００２】
一般に、ルータやスイッチ、ブリッジなどのフレーム検索処理装置では、フレームの転送やフィルタリング、優先制御などを行う場合、入力フレームに応じたフレーム処理を決めるための検索処理を行う。
この検索処理では、入力フレームから、検索に必要な情報、例えば、ＶＬＡＮ  ＩＤやＭＡＣアドレスやＩＰアドレス等のヘッダ情報、入力したポートの番号、フレーム長、などの情報を、フレーム情報として抽出し、検索テーブルの各エントリに予め指定されている検索条件と比較して、当該入力フレームに適合する検索条件を持ったエントリを見つける処理が実行される。
【０００３】
フレーム検索処理装置は、入力フレームが入力された場合、まず、上記の検索処理を実行することによって、入力フレームから抽出したフレーム情報に適合する検索条件を持ったエントリを見つけ、このエントリに応じた検索結果、例えば、フレームを出力するポート番号、廃棄の有無、優先制御を行うときの優先度、フレームのヘッダ情報を書き換えるときの書き換え後の値などからなる検索結果を得る。
【０００４】
その後、フレーム検索処理装置は、得られた検索結果に基づいたフレーム処理を前記フレームに施す。このフレーム処理としては、例えば、検索結果のポート番号に対応したポートからフレームを出力する、検索結果が廃棄を示す場合にフレームを出力せず廃棄する、検索結果の優先度に応じたキューにフレームを蓄積する、フレームのヘッダ情報を検索結果の書換値に書き換える、などの処理がある。
【０００５】
このような検索処理を行うため、フレーム検索処理装置は、エントリ毎の検索条件を記憶する検索テーブルを備える。また、フレーム情報と検索テーブルに記憶された各検索条件とを比較し、適合の有無を判定する比較回路を備える。
上記の検索処理では、クロックサイクル毎に、検索テーブルから検索条件を表すエントリ情報を読み出し、これら検索条件をフレーム情報と比較する。検索テーブル内の全てのエントリについて上記比較を実施することにより、入力フレームに適合する検索条件を持ったエントリを検索テーブルから探し出す。
【０００６】
従来、このようなフレーム検索処理装置において、フレーム検索処理装置へのフレーム入力間隔よりも、１個のフレームに対する検索処理の所要時間の方が長い場合、つまり、エントリ数が多い場合や高速でフレームが入力される場合には、比較回路を並列化した構成を採用するという技術が提案されている（例えば、非特許文献１など参照）。
この技術では、例えば８個の比較回路を備え、８個のフレーム情報に対する検索処理が並列に実施されている。
【０００７】
これにより、１個の入力フレームに対する検索処理を開始してから完了するまでの時間に、７個のフレームを入力したとしても、これらのフレーム全てに対して検索処理を完遂できることになる。
また、１個の比較回路が検索処理を行う場合と比較して、並列化されたＰ個の比較回路が同時に検索処理を行う場合、検索テーブルからエントリ情報を読み出す回数が１／Ｐに削減されるため、消費電力を低減する効果を有する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】M. Urano, T. Kawamura, S. Ohteru, H. Suto, K. Kawai, R. Kusaba, N. Miura, J. Kato, . Miyazaki, T. Hatano, S. Yasuda, N. Tanaka, S. Shigematsu, M. Nakanishi, T. Shibata, "The 10G-EPON OLT and ONU LSIs for the coexistence of 10G-EPON and GE-PON toward the next FTTH era", 2011 Symposium on VLSI Circuits (VLSIC), pp.132-133, 15-17 June 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、このような従来技術では、入力フレームに応じたフレーム処理を決めるための検索処理において、フレーム単位で並列処理を行うものとなっているため、検索テーブルからエントリ情報を読み出すときに消費される電力は、エントリ情報のビット数に比例して増大するという問題があった。
【００１０】
例えば、検索条件が単純な場合、例えばＶＬＡＮ  ＩＤに対する条件のみの場合には、前記検索条件を表すエントリ情報のビット数も小さいため、検索テーブルからエントリ情報を読み出したときの消費電力は小さい。
しかしながら、高度な検索処理を行う場合、例えばレイヤ２からレイヤ４までの各種ヘッダ情報を組み合わせた検索条件でフィルタリングを行うような場合、前記検索条件を表すエントリ情報のビット数が増大する。
【００１１】
例えば、検索条件がＶＬＡＮ  ＩＤのみの場合、エントリ情報は１２ビット程度であるが、検索条件としてＶＬＡＮ  ＩＤに加えて宛先ＩＰアドレスと宛先ＴＣＰポート番号とを組み合わせた場合、エントリ情報は６０ビットとなる。
したがって、従来技術によれば、エントリ情報のビット数に比例して、検索テーブルからエントリ情報を読み出すときに消費される電力が増大するため、高度な検索処理を行う場合には、消費電力が大幅に増大することになる。
【００１２】
本発明はこのような課題を解決するためのものであり、エントリ情報のビット数が増大した場合でも消費電力の増加を抑制できるフレーム検索処理技術を提供することを目的としている。
【課題を解決するための手段】
【００１３】
このような目的を達成するために、本発明にかかるフレーム検索処理装置は、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、前記検索処理部は、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶する第１検索テーブルと、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第１エントリ情報以外の部分からなる第２エントリ情報を記憶する第２検索テーブルと、前記エントリごとに、前記第１検索テーブルから読み出された前記第１エントリ情報および前記第２検索テーブルから読み出された前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、前記各エントリから巡回的に前記第１エントリ情報を読み出して前記比較回路へ出力するための第１読出信号を前記第１検索テーブルへ出力する第１読出回路と、前記各エントリから巡回的に前記第２エントリ情報を読み出して前記比較回路へ出力するための第２読出信号を前記第２検索テーブルへ出力する第２読出回路とを有し、前記比較回路は、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第２読出回路は、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わないようにしたものである。
また、本発明にかかる他のフレーム検索処理装置は、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、前記検索処理部は、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶するとともに、当該検索条件のうち当該第１エントリ情報以外の部分からなる第２エントリ情報に関する第２エントリ番号を、当該第１エントリ情報に付加して記憶する第１検索テーブルと、前記エントリごとに前記第２エントリ情報を記憶する第２検索テーブルと、前記エントリごとに、前記第１エントリ情報および前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、前記第１検索テーブルから前記各エントリの第１エントリ情報を巡回的に読み出して、当該第１エントリ情報に付加されている前記第２エントリ番号を分離し、当該第２エントリ番号を分離した第１エントリ情報を前記比較回路へ出力する第１読出回路と、前記第１読出回路で分離した前記第２エントリ番号に基づいて、当該前記第２エントリ番号に対応するエントリからの第２エントリ情報の読み出しを指示する第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力する第２読出回路とを有し、前記比較回路は、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１読出回路から出力された前記第１エントリ情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第２読出回路は、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わないようにしたものである。
また、本発明にかかるさらに他のフレーム検索処理装置は、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、前記検索処理部は、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶する第１検索テーブルと、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第１エントリ情報以外の部分からなる第２エントリ情報を記憶する第２検索テーブルと、前記エントリごとに、前記第１エントリ情報および前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較回路と、前記各エントリから巡回的に、複数の前記第１エントリ情報を並列的に読み出して前記各比較回路へ分配するための第１読出信号を前記第１検索テーブルへ出力する第１読出回路と、前記各エントリから巡回的に前記第２エントリ情報を読み出して前記比較回路へ出力するための第２読出信号を前記第２検索テーブルへ出力する第２読出回路とを有し、前記比較回路は、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１検索テーブルから分配された前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第２読出回路は、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第１エントリ情報と対応する前記第２エントリ情報を示す第２エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第２エントリ番号に基づいて、当該第２のエントリ番号に対応するエントリからの前記第２エントリ情報の読み出しを指示する前記第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力し、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わないようにしたものである。
【００１４】
また、上記フレーム検索処理装置の一構成例は、前記比較回路を複数備えるとともに、これら比較回路のうち前記適合エントリの検索中である比較回路以外のいずれか１つに対して、前記フレーム情報抽出部で得られた前記フレーム情報を振り分けるフレーム情報振分回路をさらに備えるものである。
【００１６】
また、上記フレーム検索処理装置の一構成例は、前記第１読出回路が、前記第１エントリ情報を読み出す際、前記各エントリから巡回的に、複数の前記第１エントリ情報を並列的に読み出して前記各比較回路へ分配するための第１読出信号を前記第１検索テーブルへ出力し、前記比較回路は、前記エントリの前記第１エントリ情報を前記フレーム情報と比較する際、前記第１検索テーブルから分配された前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、前記第２読出回路は、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第１エントリ情報と対応する前記第２エントリ情報を示す第２エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第２エントリ番号に基づいて、当該第２のエントリ番号に対応するエントリからの前記第２エントリ情報の読み出しを指示する前記第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力するようにしたものである。
【００１７】
また、本発明にかかるフレーム検索処理方法は、フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、検索処理部が、前記フレーム情報抽出ステップで抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、前記検索処理ステップは、第１検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶するステップと、第２検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第１エントリ情報以外の部分からなる第２エントリ情報を記憶するステップと、比較回路が、前記エントリごとに、前記第１検索テーブルから読み出された前記第１エントリ情報および前記第２検索テーブルから読み出された前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、第１読出回路が、前記各エントリから巡回的に前記第１エントリ情報を読み出して前記比較回路へ出力するための第１読出信号を前記第１検索テーブルへ出力する第１読出ステップと、第２読出回路が、前記各エントリから巡回的に前記第２エントリ情報を読み出して前記比較回路へ出力するための第２読出信号を前記第２検索テーブルへ出力する第２読出ステップとを有し、前記比較ステップは、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第２読出ステップは、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わないようにしたものである。
また、本発明にかかる他のフレーム検索処理方法は、フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、前記検索処理ステップは、第１検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶するとともに、当該検索条件のうち当該第１エントリ情報以外の部分からなる第２エントリ情報に関する第２エントリ番号を、当該第１エントリ情報に付加して記憶するステップと、第２検索テーブルが、前記エントリごとに前記第２エントリ情報を記憶するステップと、比較回路が、前記エントリごとに、前記第１エントリ情報および前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、第１読出回路が、前記第１検索テーブルから前記各エントリの第１エントリ情報を巡回的に読み出して、当該第１エントリ情報に付加されている前記第２エントリ番号を分離し、当該第２エントリ番号を分離した第１エントリ情報を前記比較回路へ出力する第１読出ステップと、第２読出回路が、前記第１読出回路で分離した前記第２エントリ番号に基づいて、当該前記第２エントリ番号に対応するエントリからの第２エントリ情報の読み出しを指示する第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力する第２読出ステップとを有し、前記比較ステップは、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１読出回路から出力された前記第１エントリ情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第２読出ステップは、前記比較回路から出力された前記読出判定結果が読み出しありを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行い、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わないようにしたものである。
また、本発明にかかるさらに他のフレーム検索処理方法は、フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、前記検索処理ステップは、第１検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第１エントリ情報を記憶するステップと、第２検索テーブルが、前記エントリごとに、当該エントリと対応する前記検索条件のうち前記第１エントリ情報以外の部分からなる第２エントリ情報を記憶するステップと、比較回路が、前記エントリごとに、前記第１エントリ情報および前記第２エントリ情報を、前記フレーム情報と比較することにより、当該エントリが前記入力フレームと適合する適合エントリか否かを判定する比較ステップと、第１読出回路が、前記各エントリから巡回的に、複数の前記第１エントリ情報を並列的に読み出して前記各比較回路へ分配するための第１読出信号を前記第１検索テーブルへ出力する第１読出ステップと、第２読出回路が、前記各エントリから巡回的に前記第２エントリ情報を読み出して前記比較回路へ出力するための第２読出信号を前記第２検索テーブルへ出力する第２読出ステップとを有し、前記比較ステップは、前記エントリの前記第１エントリ情報および前記第２エントリ情報を前記フレーム情報と比較する際、まず前記第１検索テーブルから分配された前記第１エントリ情報を前記フレーム情報と比較することにより、前記第１エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第１適合判定結果を前記第２エントリ情報の読出要否を示す読出判定結果として前記第２読出回路へ出力し、当該第１適合判定結果が適合を示す場合には、前記第２エントリ情報を前記フレーム情報と比較することにより、前記第２エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、前記第１エントリ情報の一部、または前記第２エントリ情報の一部を、前記適合エントリと対応する前記検索結果として出力し、前記第２読出ステップは、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第１エントリ情報と対応する前記第２エントリ情報を示す第２エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第２エントリ番号に基づいて、当該第２のエントリ番号に対応するエントリからの前記第２エントリ情報の読み出しを指示する前記第２読出信号を生成し、当該第２読出信号を前記第２検索テーブルへ出力し、前記読出判定結果が読み出しなしを示す場合には、前記第２検索テーブルからの前記第２エントリ情報の読み出しを行わないようにしたものである。
【発明の効果】
【００１８】
本発明によれば、第１エントリ情報とフレーム情報との比較の結果、残りのエントリ情報である第２エントリ情報を読み出す必要があるか否かが判断され、読み出しが必要な場合に限って、第２エントリ情報が読み出されることになる。このため、一部のエントリ情報（第１エントリ情報）のみを読み出すエントリと、全てのエントリ情報（第１エントリ情報＋第２エントリ情報）を読み出すエントリの２通りの場合が生じる。
【００１９】
したがって、全エントリについて全てのエントリ情報を読み出す必要がなくなるため、読み出すエントリ情報のビット数を削減することができる。このため、入力フレームに応じたフレーム処理を決めるための検索処理に用いる検索条件として、例えばＶＬＡＮ  ＩＤに加えて宛先ＩＰアドレスと宛先ＴＣＰポート番号とを組み合わせた場合など、エントリ情報のビット数が増大した場合でも、読み出すエントリ情報のビット数の増大を抑制することができ、結果としてフレーム検索処理に要する消費電力の増加を抑制することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施の形態にかかるフレーム検索処理装置の構成を示すブロック図である。
【図２】第１の実施の形態にかかるフレーム検索処理装置の検索処理部の構成を示すブロック図である。
【図３】第１の実施の形態にかかる検索処理部の要部を示すブロック図である。
【図４】第１の実施の形態にかかる検索処理部の動作を示すタイムチャートである。
【図５】第２の実施の形態にかかる検索処理部の要部を示すブロック図である。
【図６】第２の実施の形態にかかる検索処理部の動作を示すタイムチャートである。
【図７】第３の実施の形態にかかる検索処理部の構成を示すブロック図である。
【図８】第３の実施の形態にかかる検索処理部の要部を示すブロック図である。
【図９】第３の実施の形態にかかる検索処理部の動作を示すタイムチャートである。
【図１０】第４の実施の形態にかかる検索処理部の構成を示すブロック図である。
【図１１】第４の実施の形態にかかる検索処理部の要部を示すブロック図である。
【図１２】第４の実施の形態にかかる検索処理部の動作を示すタイムチャートである。
【図１３】第４の実施の形態にかかる検索処理部の動作を示すタイムチャート（続き）である。
【発明を実施するための形態】
【００２１】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかるフレーム検索処理装置１０について説明する。図１は、第１の実施の形態にかかるフレーム検索処理装置の構成を示すブロック図である。
【００２２】
このフレーム検索処理装置１０には、主な機能部として、フレーム情報抽出部１１、検索処理部１２、フレームバッファ１３、およびフレーム合成部１４が設けられている。
【００２３】
フレーム情報抽出部１１は、入力フレームＦＩＮに対して実行すべきフレーム処理を特定するためのフレーム情報ＦＤを、前記入力フレームＦＩＮから抽出する機能を有している。
検索処理部１２は、フレーム情報抽出部１１で抽出したフレーム情報ＦＤを、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームＦＩＮと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果ＳＲを、前記入力フレームＦＩＮに対して実行すべきフレーム処理の内容を示す処理情報として出力する機能を有している。
【００２４】
フレームバッファ１３は、前記入力フレームＦＩＮのフレーム情報ＦＤに対する検索処理部１２での検索処理により検索結果ＳＲが得られるまで、当該入力フレームＦＩＮのデータを蓄積する機能を有している。
フレーム合成部１４は、検索処理部１２で得られた検索結果ＳＲに基づいて、フレームバッファ１３から出力された入力フレームＦＩＮのデータを書き換えて、出力フレームＦＯＵＴとして出力する機能を有している。
【００２５】
なお、図１では、検索処理部１２で得られた検索結果ＳＲに基づいて、入力フレームＦＩＮの書き換えを行う場合を例として説明したが、必ずしも入力フレームＦＩＮのデータの書き換えを伴わなくともよい。フレーム検索処理装置１０において、入力フレームＦＩＮに関する廃棄の有無の検索や送信先の検索などのフレーム処理を行う場合は、フレーム合成部１４を具備しない構成となる。
【００２６】
例えば、フレーム廃棄の有無を検索結果ＳＲとして得る場合、つまり、フレームのフィルタリングを行う装置である場合、フレーム検索処理装置１０は、検索結果ＳＲがフレーム廃棄なしのときに、フレームバッファ１３から前記入力フレームＦＩＮのデータを出力して装置外へと出力する。また、検索結果ＳＲがフレーム廃棄ありのときに、フレームバッファ１３から前記入力フレームＦＩＮのデータを空読みする、フレームバッファ１３からのデータ読み出し位置を前記入力フレームＦＩＮの次に蓄積された入力フレームＦＩＮのデータ先頭位置に移動するなど、前記入力フレームＦＩＮの次に蓄積された入力フレームＦＩＮを出力する準備を行う。
【００２７】
また、送信先（出力ポート番号）を検索結果ＳＲとして得る場合、つまり、複数ポートを持つフレーム転送装置である場合、フレーム検索処理装置１０は、フレームバッファ１３から前記入力フレームＦＩＮのデータを出力し、検索結果ＳＲである出力ポート番号が示すポートから、装置外へと出力する。なお、入力フレームＦＩＮと検索結果ＳＲとの同期が取れる場合には、必ずしもフレーム検索処理装置１０にフレームバッファ１３を備える必要はなく、次段の外部装置でフレームバッファ１３の機能を実現すればよい。
【００２８】
次に、図２を参照して、検索処理部１２の詳細な構成について説明する。
図２は、第１の実施の形態にかかるフレーム検索処理装置の検索処理部の構成を示すブロック図である。
この検索処理部１２には、主な回路部として、フレーム情報振分回路２１、第１検索テーブル２２Ａ、第２検索テーブル２２Ｂ、第１読出回路２３Ａ、第２読出回路２３Ｂ、Ｎ個の比較回路３ｎ（ｎ＝１〜Ｎ；Ｎは２以上の自然数）、および検索結果合流回路２４が設けられている。
【００２９】
フレーム情報振分回路２１は、専用の信号処理回路からなり、フレーム情報抽出部１１で得られたフレーム情報ＦＤを、比較回路３ｎのうち適合エントリの検索中である比較回路以外のいずれか１つの比較回路３ｎに対して、フレーム情報ＦＤｎとして振り分ける機能を有している。なお、本実施の形態では、比較回路３ｎが複数並列的に設けられている場合を例として説明するが、これに限定されるものではなく、比較回路３ｎが１つの場合にも、同様に適用でき、この場合、フレーム情報振分回路２１を省くことができる。
【００３０】
第１検索テーブル２２Ａは、半導体メモリなどの記憶装置からなり、エントリごとに、当該エントリと対応する検索条件の一部からなる第１エントリ情報を記憶する機能を有している。
第２検索テーブル２２Ｂは、半導体メモリなどの記憶装置からなり、エントリごとに、当該エントリと対応する前記検索条件のうち第１エントリ情報以外の部分からなる第２エントリ情報を記憶する機能を有している。
【００３１】
第１読出回路２３Ａは、専用の信号処理回路からなり、第１検索テーブル２２Ａの各エントリから巡回的に第１エントリ情報ＥＤＡを読み出して、各比較回路３ｎへ出力するための第１読出信号ＲＡを第１検索テーブル２２Ａへ出力する機能を有している。
第２読出回路２３Ｂは、専用の信号処理回路からなり、第２検索テーブル２２Ｂの各エントリから巡回的に第２エントリ情報ＥＤＢを読み出して、各比較回路３ｎへ出力するための第２読出信号を第２検索テーブル２２Ｂへ出力する機能を有している。
検索結果合流回路２４は、各比較回路３ｎ（ｎ＝１〜Ｎ）から検索結果ＳＲｎを入力し、これらを検索結果ＳＲとしてフレーム合成部１４に対して順次出力する。
【００３２】
各比較回路３ｎは、専用の信号処理回路からなり、エントリごとに、第１検索テーブル２２Ａから読み出された第１エントリ情報ＥＤＡおよび第２検索テーブル２２Ｂから読み出された第２エントリ情報ＥＤＢを、フレーム情報振分回路２１からのフレーム情報ＦＤｎと比較することにより、当該エントリが入力フレームＦＩＮと適合する適合エントリか否かを判定する機能を有している。
【００３３】
これに加えて、これら比較回路３ｎは、対象となるエントリの第１エントリ情報ＥＤＡおよび第２エントリ情報ＥＤＢをフレーム情報ＦＤｎと比較する際、まず第１エントリ情報ＥＤＡをフレーム情報ＦＤｎと比較することにより、第１エントリ情報ＥＤＡがフレーム情報ＦＤｎと適合するか否か判定する機能と、第２エントリ情報ＥＤＢの読出要否を示す読出判定結果ＲＪとして第２読出回路２３Ｂへ出力する機能と、当該判定により得られた第１適合判定結果が適合を示す場合には、第２エントリ情報ＥＤＢをフレーム情報ＦＤｎと比較することにより、第２エントリ情報ＥＤＢがフレーム情報ＦＤｎと適合するか否か判定する機能と、当該判定により得られた第２適合判定結果が適合を示す場合には、当該エントリのエントリ番号、第１エントリ情報ＥＤＡの一部、または第２エントリ情報ＥＤＢの一部を、適合エントリと対応する検索結果ＳＲｎとして出力する機能とを有している。
【００３４】
さらに、第２読出回路２３Ｂは、比較回路３ｎから出力された読出判定結果ＲＪが読み出しあり（読出要）を示す場合に、第２検索テーブル２２Ｂからの第２エントリ情報ＥＤＢの読み出しを行う機能と、読出判定結果ＲＪが読み出しなし（読出不要）を示す場合には、第２検索テーブル２２Ｂからの第２エントリ情報ＥＤＢの読み出しを行わない機能とを有している。
【００３５】
比較回路３ｎの個数Ｎについては、必ずしも２個以上でなくともよいが、Ｎ＝１の場合はフレーム情報振分回路２１を具備しない構成となる。検索処理部１２がフレーム情報ＦＤを入力してから、前記フレーム情報ＦＤに対応した検索結果ＳＲを得るまでの時間Ｔｓ内に、入力されるフレーム情報ＦＤの最大個数Ｎｍａｘとした場合、ＮをＮｍａｘ以上とすることにより、フレーム情報ＦＤに対して検索結果ＳＲを得ることを保証できる。
【００３６】
なお、ＮがＮｍａｘより小さい場合、検索処理部１２がフレーム情報ＦＤを高いレート、すなわち単位時間Ｔｃあたりに入力されるフレーム情報ＦＤの数がＮ／Ｔｃより大きくなるレートで入力したとき、全ての比較回路３ｎが既入力のフレーム情報ＦＤｎに対する検索処理を行っている状況が発生する可能性がある。このような状況では、検索処理部１２が入力したフレーム情報ＦＤに対する検索結果ＳＲを得られないため、フレーム情報ＦＤを抽出した入力フレームＦＩＮには、本来の検索結果ＳＲを適用できなくなる。
【００３７】
第１検索テーブル２２Ａと第２検索テーブル２２Ｂの各々は、Ｎｅ個（Ｎｅは１以上の自然数）のエントリｉ（ｉ＝１〜Ｎｅ）を有する。第１検索テーブル２２Ａは各エントリｉに第１エントリ情報ＥＤＡ［ｉ］を記憶する。また、第２検索テーブル２２Ｂは各エントリｉに第２エントリ情報ＥＤＢ［ｉ］を記憶する。
【００３８】
第１検索テーブル２２Ａのエントリｉに記憶された第１エントリ情報ＥＤＡ［ｉ］と、第２検索テーブル２２Ｂのうち第１エントリ情報ＥＤＡ［ｉ］と同一エントリ番号のエントリｉに記憶された第２エントリ情報ＥＤＢ［ｉ］とのセットが、前述した従来技術におけるエントリ情報に相当する。つまり、前記第１エントリ情報ＥＤＡ［ｉ］が表現する第１検索条件［ｉ］とフレーム情報ＦＤが適合し、かつ、前記第２エントリ情報ＥＤＢ［ｉ］が表現する第２検索条件［ｉ］と前記フレーム情報ＦＤが適合した場合に、入力フレームＦＩＮに適合する検索条件を持つエントリｉを見つけたことになる。
【００３９】
第１検索テーブル２２Ａは、第１読出回路２３Ａから第１読出信号ＲＡを入力し、この第１読出信号ＲＡが示すタイミングで、第１読出信号ＲＡが示すアドレス、すなわちエントリｉから、記憶している第１エントリ情報ＥＤＡ［ｉ］を読み出す機能を有している。
第２検索テーブル２２Ｂは、第２読出回路２３Ｂから第２読出信号ＲＢを入力し、この第２読出信号ＲＢが示すタイミングで、第２読出信号ＲＢが示すアドレス、すなわちエントリｉから、記憶している第２エントリ情報ＥＤＢ［ｉ］を読み出す機能を有している。
【００４０】
フレーム情報振分回路２１は、フレーム情報抽出部１１からフレーム情報ＦＤを入力し、所定の比較回路選択方法に基づいて、前記フレーム情報ＦＤの出力先である比較回路３ｎを決定し、前記比較回路３ｎに対して前記フレーム情報ＦＤをフレーム情報ＦＤｎとして出力する機能を有している。
【００４１】
前記比較回路選択方法の例は、前記各比較回路３ｎが検索処理中であるか否かを判定し、前記検索処理を行っていない比較回路３ｎの１つを選択することである。この比較回路選択方法を簡単な回路で実現する例として、フレーム情報を入力したとき前回入力時に選択した比較回路３ｎの番号ｎを＋１した番号の比較回路３（ｎ＋１）を選択する方法がある。この比較回路選択方法において、前回入力時に選択した比較回路３ｎの番号ｎがＮの場合は、番号１の比較回路３１を選択して、巡回的に比較回路３ｎを選択することになる。
【００４２】
前記比較回路選択の他の例は、前記フレーム情報振分回路２１が前記各比較回路３ｎの検索完了有無を判定する方法である。すなわち、フレーム情報振分回路２１が、各比較回路３ｎについて前回フレーム情報ＦＤを入力した時点からの経過時間を測り、前記計測時間が検索完了までに要する一定時間に達した時点で、前記比較回路３ｎが検索完了となったと判定し、前記検索完了となっている比較回路３ｎの１つを選択することである。
【００４３】
比較回路３ｎは、フレーム情報振分回路２１からのフレーム情報ＦＤｎ（ｎ＝１〜Ｎ）の入力に応じて、前記フレーム情報ＦＤｎに適合する検索条件を持ったエントリを検索するための検索処理を実行する。
この検索処理において、比較回路３ｎは、入力されたフレーム情報ＦＤｎと、第１読出回路２３Ａが第１検索テーブル２２Ａのエントリｉ（ｉ＝１〜Ｎｅ）から読み出した第１エントリ情報ＥＤＡ［ｉ］とに基づいて、前記フレーム情報ＦＤｎが、前記第１エントリ情報ＥＤＡ［ｉ］が表す検索条件に適合するか否かを判定するための第１適合判定を行って、回路内部信号として第１適合判定結果ＣＪＡｎ［ｉ］（図示せず）を得る。
【００４４】
さらに、前記比較回路３ｎは、得られた前記第１適合判定結果ＣＪＡｎ［ｉ］に基づいて、第２検索テーブル２２Ｂのエントリｉ（ｉ＝１〜Ｎｅ）から第２エントリ情報ＥＤＢ［ｉ］を読み出すか否かを判定するための第２検索テーブル読出判定を行い、得られた読出判定結果ＲＪｎ［ｉ］を第２読出回路２３Ｂに出力する。
【００４５】
本例では、第１適合判定結果ＣＪＡｎ［ｉ］が適合を示す場合に、第２検索テーブル２２Ｂから第２エントリ情報ＥＤＢ［ｉ］を読み出す（第２検索テーブル読出あり）と判定し、前記第１適合判定結果ＣＪＡｎ［ｉ］が不適合を示す場合に、第２検索テーブル２２Ｂから第２エントリ情報ＥＤＢ［ｉ］を読み出さない（第２検索テーブル読出なし）と判定する。
すなわち、本例では、第１適合判定とは別に第２検索テーブル読出判定を行う必要はなく、また、第１適合判定結果ＣＪＡｎ［ｉ］を用いて読出判定結果ＲＪｎ［ｉ］を得ることができる。
【００４６】
ここで、前記比較回路３ｎがフレーム情報ＦＤｎと第１エントリ情報ＥＤＡ［ｉ］とに基づいて、第２読出回路２３Ｂに第２検索テーブル読出ありを示す読出判定結果ＲＪｎ［ｉ］を出力した場合、第２読出回路２３Ｂは、第２検索テーブル２２Ｂから第２エントリ情報ＥＤＢ［ｉ］を読み出して、前記第２エントリ情報ＥＤＢ［ｉ］を前記比較回路３ｎに入力する。
【００４７】
このとき、前記比較回路３ｎは、前記フレーム情報ＦＤｎと、前記第２エントリ情報ＥＤＢ［ｉ］とに基づいて、前記フレーム情報ＦＤｎが前記第２エントリ情報ＥＤＢ［ｉ］に適合するか否かの第２適合判定を行って、回路内部信号として第２適合判定結果ＣＪＢ［ｉ］（図示せず）を得る。
【００４８】
これにより、比較回路３ｎのうち、前記フレーム情報ＦＤｎと前記第１エントリ情報ＥＤＡ［ｉ］とを比較する第１部分比較回路が検索処理中であっても、第２検索テーブル２２Ｂの読み出しを行わない期間は、例えばクロック供給や電力供給を停止させて、前記比較回路３ｎのうち、前記フレーム情報ＦＤｎと前記第２エントリ情報ＥＤＢ［ｉ］とを比較する第２部分比較回路の動作を停止させることができるため、消費電力を削減することが可能となる。
【００４９】
前記比較回路３ｎは、前記第１適合判定結果ＣＪＡｎ［ｉ］と前記第２適合判定結果ＣＪＢ［ｉ］に基づいて、エントリｉの検索条件が前記フレーム情報ＦＤｎに適合するか否かを判定する統合適合判定を行う。
【００５０】
統合適合判定の例としては、前記第１適合判定結果ＣＪＡｎ［ｉ］が適合ありを示し、かつ、前記第２適合判定結果ＣＪＢ［ｉ］が適合ありを示す場合に、統合適合判定において適合すると判定し、それ以外の場合、つまり、第１適合判定結果ＣＪＡｎ［ｉ］が適合なしを示す場合や、第１適合判定結果ＣＪＡｎ［ｉ］が適合ありを示すが、第２適合判定結果ＣＪＢ［ｉ］が適合なしを示す場合は、統合適合判定において不適合と判定する。なお、この例では、第１適合判定結果ＣＪＡｎ［ｉ］が不適合の場合には、読出判定結果ＲＪｎ［ｉ］は読み出しなしとなり、第２適合判定は不要である。
【００５１】
また、統合適合判定の別の例としては、前記第１適合判定結果ＣＪＡｎ［ｉ］が適合ありを示し、または、前記第２適合判定結果ＣＪＢ［ｉ］が適合ありを示す場合に、エントリｉの検索条件が前記フレーム情報ＦＤｎに適合すると判定し、それ以外の場合、つまり、第１適合判定結果ＣＪＡｎ［ｉ］が不適合かつ第２適合判定結果ＣＪＢ［ｉ］が不適合の場合は、統合適合判定において不適合と判定する。なお、この例では、第１適合判定結果ＣＪＡｎ［ｉ］が適合ありを示す場合、読出判定結果ＲＪｎ［ｉ］は読み出しなしとなり、第２適合判定は不要である。
【００５２】
この際、第１適合判定結果ＣＪＡが不適合の場合に、統合判定結果が不適合となるとは限らない。ただし、一般的には、第１適合判定結果ＣＪＡが不適合の場合は統合判定結果を不適合とする。つまり、第１エントリ情報ＥＤＡ［ｉ］が表す第１検索条件と第２エントリ情報ＥＤＢ［ｉ］が表す第２検索条件のＡＮＤを統合適合判定の条件とする検索が一般的である。その理由は、「第１検索条件ＯＲ第２検索条件」の検索は、第１検索条件のみのエントリと第２検索条件のみのエントリという２つのエントリに分けることで実現可能である。同じ検索結果ＳＲが設定された複数のエントリは、前記エントリの検索条件のＯＲを検索条件とする１つのエントリと等価であるが、「第１検索条件ＡＮＤ第２検索条件」の検索は、第１検索条件ＯＲ第２検索条件の検索では実現困難であるためである。
【００５３】
また、前記統合適合判定により適合と判断されたエントリが見つかった時点、あるいは、全てのエントリについてフレーム情報ＦＤｎの判定を終えた時点で、比較回路３ｎは検索を終了し、検索結果ＳＲｎを出力する。すなわち、エントリｉに対する統合適合判定において適合ありとなった時点で、前記フレーム情報ＦＤｎに対して前記エントリｉの他に統合適合判定を行っていないエントリが残っていたとしても、前記エントリｉを検索結果ＳＲｎとして採用し、前記残りのエントリに対する処理、例えば第１エントリ情報ＥＤＡや第２エントリ情報ＥＤＢの読み出し、その適合判定、統合適合判定などの処理を行わないようにすることが可能である。
【００５４】
また、エントリｉに対する統合適合判定において不適合となった場合は、統合適合判定が行われていないエントリに対する処理、例えば第１エントリ情報ＥＤＡや第２エントリ情報ＥＤＢの読み出し、その適合判定、統合適合判定などの処理を継続する。
さらに、前記処理の継続によって、検索テーブルの全エントリについて統合適合判定を行った場合は、最後のエントリに対する統合適合判定結果が不適合であったとしても、処理を終了する。
【００５５】
この際、前記最後のエントリに対する統合適合判定結果が不適合の場合は予め設定された全エントリに不適合となった場合の検索結果ＳＲｎを採用する。フレーム情報ＦＤｎに対する検索中に、あるエントリで第１適合判定結果ＣＪＡが不適合であっても、残りのエントリの中に適合となるエントリが見つかる可能性がある。このため、第１適合判定結果ＣＪＡが不適合となったからといって、検索を終了することはない。
【００５６】
なお、第１エントリ情報ＥＤＡまたは第２エントリ情報ＥＤＢにエントリの適用優先度を含み、統合適合判定により適合とされたエントリのなかで前記エントリの適用優先度が最も高いエントリを見つける例では、統合適合判定により適合とされたエントリが１個見つかった時点で検索を終了するのではなく、全エントリについて統合適合判定を終えるか、上限の適用優先度、すなわち適用優先度に設定可能な範囲の値のうち最も適用優先度が高い値を持つ適用優先度を持つエントリが見つかった場合にのみ、検索を終了する。
【００５７】
前記比較回路３ｎは、前記統合適合判定によって得られた結果、例えば前記判定において適合したエントリの番号ｉや前記エントリの第２エントリ情報ＥＤＢ［ｉ］に含まれる結果を示す情報；通過／廃棄を示す情報や送出先を示すポート番号などを、検索結果ＳＲｎとして、検索結果合流回路２４に対して出力する。
なお、前記適用優先度とは、検索テーブル中に適合と判定されるエントリが複数存在する場合に、それらのエントリのうち、どのエントリの検索結果ＳＲｎを採用するかを決めるために用いられる、各エントリに指定された値である。例えば、適合と判定されるエントリのなかで適用優先度の値が最も小さいエントリを採用する。
【００５８】
この際、エントリ毎に適用優先度の値を設定するのではなく、前記エントリの番号を適用優先度として使用することも可能であり、この場合は、適合と判定されるエントリのなかで検索テーブルの最上位に位置するエントリが採用される。また、エントリ毎に適用優先度の値を設定することによって、エントリ番号に制約されず同様の検索が可能となるので、エントリの追加のためにエントリ間に空きエントリを作るためのエントリ移動処理が不要となる。
【００５９】
比較回路３ｎは、エントリｉについて、第１エントリ情報ＥＤＡ［ｉ］が第１検索テーブル２２Ａから読み出された後に得られる第１適合判定結果ＣＪＡｎ［ｉ］と、その後の第２エントリ情報ＥＤＢ［ｉ］が第２検索テーブル２２Ｂから読み出された後に得られる第２適合判定結果ＣＪＢ［ｉ］に基づいて、前記統合適合判定を行う。
第２適合判定結果ＣＪＢ［ｉ］を得る前に、次のエントリ（ｉ＋１）に対する第１適合判定を行って、第１適合判定結果ＣＪＡｎ［ｉ＋１］を得る場合は、エントリｉに対する第１適合判定結果ＣＪＡｎ［ｉ］とともにエントリ（ｉ＋１）に対する第１適合判定結果ＣＪＡｎ［ｉ＋１］を、統合適合判定を行うまで一時的に保持しておく。
【００６０】
つまり、第１適合判定結果ＣＪＡｎ［ｉ］を、第２適合判定結果ＣＪＢｎ［ｉ］を得て統合適合判定を行うまで保持する必要があるが、前記保持期間中に得た次エントリ以後の第１適合判定結果ＣＪＡｎも合わせて保持する。これにより、エントリの更新間隔を、第１適合判定結果ＣＪＡｎ［ｉ］を得てから第２適合判定結果ＣＪＢｎ［ｉ］を得るまでの時間以上とする必要がなくなり、検索処理速度を向上できる。
【００６１】
上記の全てのエントリｉ（ｉ＝１〜Ｎｅ）についてフレーム情報ＦＤｎ（ｎ＝１〜Ｎ）との判定を終えた時点を知る判定終了特定方法の例として、フレーム情報ＦＤｎを比較回路３ｎが入力した時点からの経過時間を前記比較回路３ｎが測っておき、前記経過時間が予め定められた時間Ｔｓに達したタイミングを用いる方法がある。この判定終了特定方法は、各エントリの処理時間が固定値でありエントリ数も固定値であることから、全エントリを検索するのにかかる時間も固定値となることを利用した方法である。また別の判定終了特定方法として、フレーム情報ＦＤを比較回路３ｎ（ｎ＝１〜Ｎ）が入力した時点からの統合適合判定の回数を計数し、その回数がＮ（全エントリ数）に達したタイミングを用いることもできる。
【００６２】
検索結果合流回路２４は、各比較回路３ｎ（ｎ＝１〜Ｎ）から検索結果ＳＲｎを入力し、これらを検索結果ＳＲとしてフレーム合成部１４に対して出力する。
【００６３】
第１読出回路２３Ａは、クロックに基づき時間の経過に合わせてエントリｉ（ｉ＝１〜Ｎｅ）を変えながら、エントリｉを読み出すための第１読出信号ＲＡを第１検索テーブル２２Ａに対して出力することにより、第１検索テーブル２２Ａが記憶する第１エントリ情報ＥＤＡ［ｉ］を次々と読み出す。これにより、第１エントリ情報ＥＤＡ［ｉ］は各比較回路３ｎ（ｎ＝１〜Ｎ）に分配される。
【００６４】
第１エントリ情報ＥＤＡの読み出し方法の例として、第１検索テーブル２２Ａを第１テーブルメモリによって構成し、前記第１テーブルメモリの各アドレスａ１（ａ１＝０〜Ｎｅ−１）に第１エントリ情報ＥＤＡ［ａ１＋１］を記憶し、前記読み出すアドレスａ１を時間の経過に合わせて、０〜Ｎｅ−１まで順番に変える方法がある。なお、この方法において、アドレスａ１が最後のエントリＮｅ−１のアドレスに達したときは０に戻すことにより、巡回的に第１エントリ情報ＥＤＡを読み出すことになる。
【００６５】
ここで、各比較回路３ｎ（ｎ＝１〜Ｎ）が出力する検索処理中であるか否かを示す検索状態ＳＳｎを、第１読出回路２３Ａが入力して、全ての比較回路３ｎが検索処理を行っていない期間中の、前記読み出しを行わないことにより、第１検索テーブル２２Ａの読み出しが不要な期間の消費電力を削減できる。
【００６６】
また上記の方法を、テーブルメモリの全領域ではなく、その一部領域を第１検索テーブル２２Ａとして使用する場合にも適用可能である。この場合は、アドレスａ１を０〜Ｎｅ−１の範囲で＋１ずつ増加させるのではなく、読み出す対象となるエントリｉを＋１ずつ増加させて（ｉ＝Ｎｅの次はｉ＝１とする）、アドレスａ１をＡ０＋（ｉ−１）＊Ａ１で演算して求める。この場合、Ａ０は第１検索テーブル２２Ａに割り当てられたメモリ領域の下限値、Ａ１は１個の第１エントリ情報ＥＤＡを記憶するために必要なメモリ量に相当するアドレス増分を指す。なお、前記アドレスａ１を先頭としてアドレスａ１＋Ａ０の直前までの領域に記憶されたデータを、第１エントリ情報ＥＤＡ［ｉ］とする。
【００６７】
第２読出回路２３Ｂは、第１読出回路２３Ａと同様に、クロックに基づき時間の経過に合わせてエントリｉ（ｉ＝１〜Ｎｅ）を変えながら、前記エントリを読み出すための第２読出信号ＲＢを第２検索テーブル２２Ｂに対して出力することにより、第２検索テーブル２２Ｂが記憶する第２エントリ情報ＥＤＢ［ｉ］を次々と読み出す。これにより、前記第２エントリ情報ＥＤＢ［ｉ］は各比較回路３ｎ（ｎ＝１〜Ｎ）に分配される。ただし、第１エントリ情報ＥＤＡ［ｉ］の読み出しから予め定められた一定の時間差Ｔｄの後に、第２エントリ情報ＥＤＢ［ｉ］の読み出しを行う。
【００６８】
また、前記第２エントリ情報ＥＤＢ［ｉ］の読み出しを行うのは、少なくとも１個の比較回路３ｎから第２検索テーブル読出ありを示す読出判定結果ＲＪｎ［ｉ］を入力した場合に限る。なお、検索処理を行っていない比較回路３ｎは、第２検索テーブル読出なしを示す読出判定結果ＲＪｎ［ｉ］を出力することで、比較回路３ｎが検索処理中であるか否かを区別せずに、各読出判定結果ＲＪｎ［ｉ］（ｎ＝１〜Ｎ）のみに基づいて、第２エントリ情報ＥＤＢ［ｉ］の読み出し実施の有無を判定することができる。
【００６９】
上記の時間差Ｔｄは、（ａ）第１読出回路２３Ａが第１エントリ情報ＥＤＡ［ｉ］（ｉ＝１〜Ｎｅ）の読み出しを開始してから比較回路３ｎ（ｎ＝１〜Ｎ）に前記第１エントリ情報ＥＤＡ［ｉ］が入力されるまでの時間（＝第１検索テーブル２２Ａの読み出しに要する時間＋第１エントリ情報ＥＤＡを各比較回路３ｎに分配するのに要する時間）、（ｂ）比較回路３ｎ（ｎ＝１〜Ｎ）が第１エントリ情報ＥＤＡ［ｉ］を入力してから読出判定結果ＲＪｎ［ｉ］を第２読出回路２３Ｂに出力するまでの時間（＝第２検索テーブル読出判定に要する時間）、（ｃ）第２読出回路２３Ｂが全ての比較回路３ｎ（ｎ＝１〜Ｎ）から読出判定結果ＲＪｎ［ｉ］を入力してから第２エントリ情報ＥＤＢ［ｉ］の読み出しを行うと判定して第２エントリ情報ＥＤＢ［ｉ］（ｉ＝１〜Ｎｅ）の読み出しを開始するまでの時間（＝第２検索テーブル２２Ｂの読み出し有無を判断するのに要する時間）、の和となる。
【００７０】
第２読出回路２３Ｂは、第１読出回路２３Ａがエントリｉの第１エントリ情報ＥＤＡ［ｉ］を読み出す時点からＴｄの遅延をおいて、各比較回路３ｎ（ｎ＝１〜Ｎ）からの読出判定結果ＲＪｎ［ｉ］の中に第２検索テーブル読出ありを示すものが含まれる場合に、前記エントリｉの第２エントリ情報ＥＤＢ［ｉ］を読み出す。
【００７１】
この読み出し方法の例として、第２検索テーブル２２Ｂを第２テーブルメモリによって構成し、前記第２テーブルメモリの各アドレスａ２（ａ２＝０〜Ｎｅ−１）に第２エントリ情報ＥＤＢ［ａ２＋１］を記憶し、前記読み出すアドレスａ２を、時間Ｔｄだけ以前に第１検索テーブル２２Ａからの読み出しのために生成された第１読出回路２３Ａの読み出しアドレスａ１とする。さらに、前記第２テーブルメモリからの読出実施の有無を示す信号である読出制御信号として、読出判定結果ＲＪｎ［ｉ］を示す信号に対する論理演算、すなわち、少なくとも１個の読出判定結果ＲＪが第２検索テーブル読出ありを示すとき読出制御信号が読出ありを示す値とする演算の結果を用いる。
【００７２】
次に、図３を参照して、本実施の形態にかかる第１読出回路２３Ａおよび第２読出回路２３Ｂについて説明する。図３は、第１の実施の形態にかかる検索処理部の要部を示すブロック図である。
【００７３】
図３に示すように、第１読出回路２３Ａは、第１読出アドレス生成部４１Ａと第１読出有効生成部４２Ａを有している。
第１読出アドレス生成部４１Ａは、クロックに合わせて、１サイクル前に出力の第１読出アドレスＲＡＡ値である第１読出アドレスＲＡＡ［ｉ−１］を＋１した値を、第１読出アドレスＲＡＡ［ｉ］として出力する機能を有している。これにより、エントリｉの第１読出アドレスＲＡＡ［ｉ］の値はｉ−１となる。ただし、フレーム検索処理装置１０の動作開始時と、第１読出アドレスＲＡＡ値がＮｅとなった場合は０を出力する。
【００７４】
第１読出有効生成部４２Ａは、１個以上の検索状態ＳＳｎが検索処理中を示すとき、有効を示す第１読出有効信号ＲＥＡ［ｉ］を出力する機能を有している。なお、全て検索停止を示す場合は無効を示す第１読出有効信号ＲＥＡ［ｉ］を出力する。
第１読出回路２３Ａが出力する第１読出信号ＲＡ［ｉ］は、第１読出有効信号ＲＥＡ［ｉ］と第１読出アドレスＲＡＡ［ｉ］とを有している。
【００７５】
第１検索テーブル２２Ａは、第１読出信号ＲＡ［ｉ］を入力することによって、前記入力から一定時間の後に、第１読出有効信号ＲＥＡ［ｉ］が有効を示すときの第１読出アドレスＲＡＡ［ｉ］が示す、第１テーブルメモリＭ１（第１検索テーブル２２Ａ用のメモリ）のアドレスに記憶された第１エントリ情報ＥＤＡ［ｉ］が、各比較回路３ｎに出力される。
また、第１読出アドレスＲＡＡ［ｉ］は、第１検索テーブル２２Ａの他に、第２読出回路２３Ｂに出力され、第２テーブルメモリＭ２（第２検索テーブル２２Ｂ用のメモリ）から第２エントリ情報ＥＤＢ［ｉ］を読み出すために用いられる。
【００７６】
第２読出回路２３Ｂは、第２読出アドレス生成部４１Ｂと第２読出有効生成部４２Ｂを有している。
第２読出有効生成部４２Ｂは、各比較回路３ｎ（ｎ＝１〜Ｎ）から読出判定結果ＲＪｎ［ｉ］を入力し、１個以上の読出判定結果ＲＪｎ［ｉ］が読出ありを示すとき、有効を示す第２読出有効信号ＲＥＢ［ｉ］を出力する機能を有している。なお、全て読出なしを示す場合は、無効を示す第２読出有効信号ＲＥＢ［ｉ］を出力する。すなわち、ｎ＝１〜Ｎについて、読出判定結果ＲＪｎ［ｉ］の論理和が第２読出有効信号ＲＥＢ［ｉ］となる。
【００７７】
第２読出アドレス生成部４１Ｂは、第１読出アドレスＲＡＡ［ｉ］を入力し、この第１読出アドレスＲＡＡ［ｉ］を時間Ｔｄだけ遅延させて前記値を第２読出アドレスＲＡＢ［ｉ］として出力する機能を有している。第１読出アドレスＲＡＡ［ｉ］はクロック毎に＋１ずつ増加する信号であるため第１読出アドレスＲＡＡ［ｉ］をシフトレジスタによってＴｄ分遅延させて第２読出アドレスＲＡＢ［ｉ］を生成しなくとも、カウンタを用いて生成することも可能である。
【００７８】
なお、第１テーブルメモリと第２テーブルメモリは各々、同じアドレスに同じエントリのエントリ情報を記憶しているものとする。すなわち、第１テーブルメモリのアドレスａにエントリｉの第１エントリ情報ＥＤＡ［ｉ］が記憶されている場合は、第２テーブルメモリのアドレスａにエントリｉの第２エントリ情報ＥＤＢ［ｉ］が記憶されている。第１読出アドレスＲＡＡ［ｉ］の入力から時間Ｔｄだけ遅延させて出力することで、エントリｉの第２エントリ情報ＥＤＢ［ｉ］を読み出しの有効・無効を示す第２読出有効信号ＲＥＢ［ｉ］を出力するのと同じタイミングで、前記エントリｉの第２エントリ情報ＥＤＢ［ｉ］が第２テーブルメモリに記憶されているアドレスである第２読出アドレスＲＡＢ［ｉ］を出力することができる。
【００７９】
［第１の実施の形態の動作］
次に、図４を参照して、本実施の形態にかかる検索処理部１２の動作について説明する。図４は、第１の実施の形態にかかる検索処理部の動作を示すタイムチャートであり、比較回路３ｎの個数Ｎが２の場合を例として、検索処理部１２内の各信号について時間の経過（左から右）に伴う変化が示されている。
【００８０】
検索状態ＳＳｎ（ｎ＝１，２）の各信号は、Ｈレベル：検索処理中／Ｌレベル：検索停止中を表す信号であり、比較回路３ｎにフレーム情報ＦＤｎ（ｎ＝１，２）が入力された時点でＨレベル：検索処理中となり、１個のフレーム情報ＦＤに対して全エントリ（１６個）をテーブルから読み出した後（処理開始から１６サイクル経過後）にＬレベル：検索処理停止となる。
【００８１】
第１読出有効信号ＲＥＡ［ｉ］の信号は、Ｈレベル：有効／Ｌレベル：無効を表す信号であり、検索状態ＳＳ１と検索状態ＳＳ２の各信号の論理和となる。つまり、各比較回路３ｎのうち１個以上が検索処理中である期間は第１読出有効信号ＲＥＡ［ｉ］が有効を示すため、第１テーブルメモリの第１読出アドレスＲＡＡ［ｉ］の位置に記憶された、第１エントリ情報ＥＤＡ［ｉ］が読み出されることになる。
【００８２】
第１読出アドレスＲＡＡ［ｉ］の信号は、０〜１５の範囲で繰り返しクロック毎に＋１ずつ増加する。ただし、値が１５の次は０となる。図４の第１読出アドレスＲＡＡ［ｉ］を表す各箱内の数字はエントリ番号ｉ（１〜１６）を表しており、エントリ番号ｉの前記信号値はｉ−１である。つまり、第１テーブルメモリのアドレスｉ−１に第１エントリ情報ＥＤＡ［ｉ］を記憶しておき、クロックサイクル毎に、エントリ番号をインクリメントして、前記エントリ番号に対応する第１エントリ情報ＥＤＡを第１テーブルメモリから読み出す。
【００８３】
なお、第１エントリ情報ＥＤＡ［ｉ］を読み出すための信号である、第１読出有効信号ＲＥＡ［ｉ］と第１読出アドレスＲＡＡ［ｉ］は、第１テーブルメモリに同時に入力される例を示しているが、同時入力ではないメモリ（例えば第１読出有効信号ＲＥＡ［ｉ］を第１読出アドレスＲＡＡ［ｉ］より所定のサイクルだけ先に入力する必要があるメモリ）を第１テーブルメモリとして使用することも可能であり、この場合は、第１読出回路２３Ａは、メモリによって規定された信号入力方法に従って、第１読出有効信号ＲＥＡ［ｉ］や第１読出アドレスＲＡＡ［ｉ］を生成することになる。
【００８４】
また、第１読出有効信号ＲＥＡ［ｉ］と第１読出アドレスＲＡＡ［ｉ］によって読み出すのではなく、コマンドを用いてアクセスするメモリの場合、第１読出回路２３Ａは、第１読出有効信号ＲＥＡ［ｉ］が有効を示す場合に、第１読出アドレスＲＡＡ［ｉ］の位置に記憶されたデータを読み出すための第１読出コマンド［ｉ］を生成することとなる。
【００８５】
第１エントリ情報ＥＤＡ［ｉ］は、第１読出有効信号ＲＥＡ［ｉ］が有効時の第１読出アドレスＲＡＡ［ｉ］の入力から２サイクル後に第１検索テーブル２２Ａから読み出されたデータである。なお、前記２サイクルの遅延は、前記第１テーブルメモリが入力したアドレス等の信号をラッチすることで生じる１クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる１クロックの遅延を合わせた値である。
【００８６】
第１テーブルメモリの種類やメモリと前記第１読出回路２３Ａ等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。また、固定遅延ではなくメモリの状況、例えば外部からの前記メモリへのアクセスの有無などの状況によって前記遅延量が変動する構成も可能である。なお、図４の第１エントリ情報ＥＤＡ［ｉ］を表す各箱内の数字はエントリ番号ｉ（１〜１６）を表している。
【００８７】
読出判定結果ＲＪｎ［ｉ］（ｎ＝１，２）の各信号は、Ｈレベル：読出あり／Ｌレベル：読出なしを表す信号である。
各比較回路３ｎ（ｎ＝１，２）は、第１エントリ情報ＥＤＡ［ｉ］の入力から１サイクル後に読出判定結果ＲＪｎ［ｉ］を出力する。この１サイクルの遅延は、比較回路３ｎが読出判定結果ＲＪｎ［ｉ］をラッチして出力することによって生じる。なお、読出判定結果ＲＪｎが第１エントリ情報ＥＤＡ［ｉ］とフレーム情報ＦＤｎの複雑な演算を必要とする場合は、１サイクルより大きい遅延となる場合もある。
【００８８】
図４では、読出判定結果ＲＪ１［ｉ］は、エントリ番号が５と１２に対応するタイミングで、読出ありを示す場合が示されている。つまり、比較回路３１は、第２エントリ情報ＥＤＢ［５］，第２エントリ情報ＥＤＢ［１２］を読み出すという読出判定結果ＲＪ１を得たことになる。なお、本例では、第１適合判定結果ＣＪＡｎ［ｉ］と読出判定結果ＲＪｎ［ｉ］は同値であり、フレーム情報ＦＤ１が第１エントリ情報ＥＤＡ［５］，第１エントリ情報ＥＤＡ［１２］に適合したことにもなる。
【００８９】
同様に、図４では、読出判定結果ＲＪ２［ｉ］は、エントリ番号が７と１０に対応するタイミングで、読出ありを示す場合が示されている。つまり、比較回路３２は、第２エントリ情報ＥＤＢ［７］，第２エントリ情報ＥＤＢ［１０］を読み出すという読出判定結果ＲＪ２を得たことになる。
【００９０】
第２読出有効信号ＲＥＢ［ｉ］の信号は、Ｈレベル：有効／Ｌレベル：無効を表す信号であり、読出判定結果ＲＪｎ［ｉ］の論理和が第２読出有効信号ＲＥＢ［ｉ］となっている。本例では、第２検索テーブル２２Ｂのエントリ５，７，１０，１２に対して有効を示し、前記エントリ番号の第２エントリ情報ＥＤＢ［５］，第２エントリ情報ＥＤＢ［７］，第２エントリ情報ＥＤＢ［１０］，第２エントリ情報ＥＤＢ［１２］が読み出されることになる。
【００９１】
また、第２読出有効信号ＲＥＢ［ｉ］は、エントリｉに対する第１読出有効信号ＲＥＡ［ｉ］を時間差Ｔｄ分、ここではクロック３サイクル分だけ遅延させた値からなる。前記Ｔｄは、第１読出アドレスＲＡＡ［ｉ］と第１読出有効信号ＲＥＡ［ｉ］を第１検索テーブル２２Ａが入力してから第１エントリ情報ＥＤＡ［ｉ］を出力するまでの２サイクル分の遅延と、比較回路３ｎが前記第１エントリ情報ＥＤＡ［ｉ］を入力してから前記入力に基づいて読出判定結果ＲＪｎ［ｉ］を出力するまでの１サイクル分の遅延と、第２読出有効生成部４２Ｂが各比較回路３ｎから読出判定結果ＲＪｎ［ｉ］を入力してから前記に基づいて第２読出有効信号ＲＥＢ［ｉ］を出力するまでの遅延（ただし、本例では単純な論理和の演算であるため遅延なし）と、の合計である。
【００９２】
なお、前記Ｔｄはクロック３サイクル分の固定値であるが、第１読出アドレスＲＡＡ［ｉ］と第１読出有効信号ＲＥＡ［ｉ］を第１検索テーブル２２Ａが入力してから第１エントリ情報ＥＤＡ［ｉ］を出力するまでの遅延量が、２サイクルより大きい場合や前記遅延量が変動する場合もある。また、比較回路３ｎが前記第１エントリ情報ＥＤＡ［ｉ］を入力してから前記入力に基づいて読出判定結果ＲＪｎ［ｉ］を出力するまでの遅延が、１サイクルより大きい場合もある。
【００９３】
第２読出アドレスＲＡＢ［ｉ］は、第１読出アドレス［ｉ］をＴｄ＝３サイクルだけ遅延した信号であり、第２読出アドレスＲＡＢ［ｉ］と同時に第２読出有効信号ＲＥＢ［ｉ］が第２検索テーブル２２Ｂに入力される。なお、図４の第２読出アドレスＲＡＢ［ｉ］を表す各箱内の数字はエントリ番号ｉ（１〜１６）を表しており、第１読出アドレスＲＡＡ［ｉ］と同じく、エントリ番号ｉの前記信号値はｉ−１となる。
【００９４】
なお、Ｔｄがクロック３サイクル分ではない場合は、第２読出アドレスＲＡＢ［ｉ］を第２読出有効信号ＲＥＢ［ｉ］  と同時に第２検索テーブル２２Ｂに入力するために、第１読出アドレス［ｉ］を前記Ｔｄ分だけ遅延させた信号とする。
また、Ｔｄが変動し第２読出アドレス生成部４１Ｂが前記変動に合わせて遅延できないのであれば、第１読出アドレス生成部４１Ａが第２読出アドレス生成部４１Ｂに出力する第１読出アドレスＲＡＡ［ｉ］を前記Ｔｄの変動に合わせて遅延させる構成や、図１１に示されている別の実施の形態での構成のように、エントリ番号ｉを、比較回路３ｎを介して第１読出回路２３Ａから第２読出回路２３Ｂに受け渡す構成も可能である。
【００９５】
また、図４では、第２エントリ情報ＥＤＢ［ｉ］を読み出すための信号である第２読出有効信号ＲＥＢ［ｉ］と、第２読出アドレスＲＡＢ［ｉ］とが、第２テーブルメモリに同時に入力される例が示されているが、同時入力ではないメモリ、例えば、第２読出有効信号ＲＥＢ［ｉ］を第２読出アドレスＲＡＢ［ｉ］より所定のサイクルだけ先に入力する必要があるメモリを第２テーブルメモリとして使用することも可能である。この場合は、第２読出回路２３Ｂは、メモリによって規定された信号入力方法に従って、第２読出有効信号ＲＥＢ［ｉ］や第２読出アドレスＲＡＢ［ｉ］を生成することになる。
【００９６】
また、第２エントリ情報ＥＤＢ［ｉ］について、第２読出有効信号ＲＥＢ［ｉ］と第２読出アドレスＲＡＢ［ｉ］によって読み出すのではなく、コマンドを用いてアクセスが行われるメモリの場合、第２読出回路２３Ｂは、第２読出有効信号ＲＥＢ［ｉ］が有効を示す場合に、第２読出アドレスＲＡＢ［ｉ］の位置に記憶されたデータを読み出すための第２読出コマンド［ｉ］を生成することとなる。
【００９７】
図４において、第２エントリ情報ＥＤＢ［ｉ］は、第２読出有効信号ＲＥＢ［ｉ］が有効時の第２読出アドレスＲＡＢ［ｉ］の入力から２サイクル後に第２検索テーブル２２Ｂから読み出されている。
この２サイクルの遅延は、前記第２テーブルメモリが入力したアドレス等の信号をラッチすることで生じる１クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる１クロックの遅延を合わせた値である。第２テーブルメモリの種類やメモリと前記第２読出回路２３Ｂ等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。
【００９８】
なお、図４の第２エントリ情報ＥＤＢ［ｉ］を表す各箱内の数字はエントリ番号ｉ（１〜１６）を表しており、第２読出有効信号ＲＥＢ［ｉ］が有効を示したエントリ５，７，１０，１２について、出力されている。
【００９９】
［第１の実施の形態の効果］
このように、本実施の形態では、比較回路３ｎが、エントリｉの第１エントリ情報ＥＤＡ［ｉ］および第２エントリ情報ＥＤＢ［ｉ］をフレーム情報ＦＤｎと比較する際、まず前記第１エントリ情報ＥＤＡ［ｉ］を前記フレーム情報ＦＤｎと比較することにより、前記第１エントリ情報ＥＤＡ［ｉ］が前記フレーム情報ＦＤｎと適合するか否か判定して、前記第２エントリ情報ＥＤＢ［ｉ］の読出要否を示す読出判定結果ＲＪｎとして前記第２読出回路２３Ｂへ出力し、当該判定により得られた第１適合判定結果ＣＪＡｎ［ｉ］が適合を示す場合には、前記第２エントリ情報ＥＤＢ［ｉ］を前記フレーム情報ＦＤｎと比較することにより、前記第２エントリ情報ＥＤＢ［ｉ］が前記フレーム情報ＦＤｎと適合するか否か判定し、当該判定により得られた第２適合判定結果ＣＪＢ［ｉ］が適合を示す場合には、当該エントリｉのエントリ番号、前記第１エントリ情報ＥＤＡ［ｉ］の一部、または前記第２エントリ情報ＥＤＢ［ｉ］の一部を、適合エントリと対応する検索結果ＳＲｎとするようにしたものである。
【０１００】
また、第２読出回路２３Ｂが、前記比較回路３ｎから出力された前記読出判定結果ＲＪｎが読み出しありを示す場合には、前記第２検索テーブル２２Ｂからの前記第２エントリ情報ＥＤＢ［ｉ］の読み出しを行い、前記読出判定結果ＲＪｎが読み出しなしを示す場合には、前記第２検索テーブル２２Ｂからの前記第２エントリ情報ＥＤＢ［ｉ］の読み出しを行わないようにしたものである。
【０１０１】
これにより、第１エントリ情報ＥＤＡ［ｉ］とフレーム情報ＦＤｎとの比較の結果、残りのエントリ情報である第２エントリ情報ＥＤＢ［ｉ］を読み出す必要があるか否かが判断され、前記読み出しが必要な場合に限って、第２エントリ情報ＥＤＢが読み出されることになる。このため、一部のエントリ情報（第１エントリ情報ＥＤＡ）のみを読み出すエントリと、全てのエントリ情報（第１エントリ情報ＥＤＡ＋第２エントリ情報ＥＤＢ）を読み出すエントリの２通りの場合が生じる。
【０１０２】
したがって、従来構成では、全エントリについて全てのエントリ情報を読み出していたのに対し、本実施の形態では、読み出すエントリ情報のビット数を削減することができる。このため、入力フレームＦＩＮに応じたフレーム処理を決めるための検索処理に用いる検索条件として、例えばＶＬＡＮ  ＩＤに加えて宛先ＩＰアドレスと宛先ＴＣＰポート番号とを組み合わせた場合など、エントリ情報のビット数が増大した場合でも、読み出すエントリ情報のビット数の増大を抑制することができ、結果としてフレーム検索処理に要する消費電力の増加を抑制することが可能となる。
【０１０３】
［第１の実施の形態の動作例］
次に、本実施の形態にかかるフレーム検索処理装置１０の動作例について説明する。
ここでは、フレーム情報抽出部１１から入力されるフレーム情報ＦＤとして、フレーム検索処理装置１０が入力した入力フレームＦＩＮのＩＰヘッダ内に格納されている送信元ＩＰアドレスと宛先ＩＰアドレスを含む場合を例として取り上げて説明する。
【０１０４】
フレーム情報ＦＤには、必ずしも送信元ＩＰアドレスと宛先ＩＰアドレスが含まれている必要はない。また、他のヘッダ情報、例えばＭＡＣアドレス、ＶＬＡＮ  ＩＤ、ＶＬＡＮ優先度、フレームタイプ、ＩＰ上位層のプロトコル番号、フレーム長やパケット長、ＴＣＰやＵＤＰのポート番号、ＩＰヘッダ内のＴｏＳ（Type of Service）値などの情報の一部が含まれていてもよい。また、フレームを入力したポート番号や、フレームに対する別の検索結果など、ヘッダ情報以外が、フレーム情報ＦＤに含まれていてもよい。
上記フレーム情報ＦＤに対する検索を行う場合の、第１エントリ情報ＥＤＡと第２エントリ情報ＥＤＢの例を、以下に説明する。
【０１０５】
［ケース１］
第１エントリ情報ＥＤＡ＝エントリ有効フラグ・フレーム種別；ＩＰｖ４かＩＰｖ６かを示すフラグ
第２エントリ情報ＥＤＢ＝エントリに適合するための送信元ＩＰアドレスと宛先ＩＰアドレス
【０１０６】
通常、検索テーブルの全てのエントリが使用されるのではなく、装置の通信状態に応じて、使用されるエントリの数が増減する。このような場合、使用中のエントリと未使用のエントリの各エントリ番号は不規則となるため、エントリ番号によって使用中か未使用かを判断するのではなく、検索条件にエントリ有効を加え、適合の判定はエントリが有効（＝使用中のエントリ）である場合に限るようにする。
【０１０７】
また、装置がＩＰｖ４とＩＰｖ６の両方に対応することが要求される場合があるが、このような場合、検索テーブルの各エントリには、ＩＰｖ４あるいはＩＰｖ６のいずれか一方に対する検索条件を記述することになる。検索対象となるフレーム（ＩＰパケット）は、ＩＰｖ４もしくはＩＰｖ６のいずれか一方であるため、ＩＰｖ６のフレームでは、ＩＰｖ４用のエントリが適合することはなく、逆に、ＩＰｖ４のフレームでは、ＩＰｖ６用のエントリが適合することはない。
【０１０８】
本実施の形態では、第１エントリ情報ＥＤＡに、エントリ有効であるか否かを示すエントリ有効フラグを含むようにすることで、エントリが有効な場合に限って、第２エントリ情報ＥＤＢを読み出す。つまり、第２検索テーブル読出判定において、前記エントリ有効フラグが有効を示す場合に第２検索テーブル読出ありと判定する。これにより、無効なエントリ（＝未使用のエントリ）の第２エントリ情報ＥＤＢは、第２検索テーブル２２Ｂから読み出されないので、無効なエントリが多いほど、読み出されるエントリ情報のビット数を削減することができる。
【０１０９】
さらに、第１エントリ情報ＥＤＡに、ＩＰｖ４フレームを対象としたエントリであるかＩＰｖ６フレームを対象としたエントリであるか否かを示すフレーム種別を含むようにすることで、前記エントリのフレーム種別と検索対象フレームのフレーム種別が一致する場合に限って、第２検索テーブル読出ありと判定し、第２エントリ情報ＥＤＢを読み出す。これにより、ＩＰｖ４のフレームを検索する場合には、ＩＰｖ６用の第２エントリ情報ＥＤＢは検索テーブルから読み出されない。同様に、ＩＰｖ６のフレームを検索する場合には、ＩＰｖ４用の第２エントリ情報ＥＤＢは検索テーブルから読み出されない。
【０１１０】
例えば、１／２のエントリが未使用エントリであり、１／４がＩＰｖ４用のエントリ、残り１／４がＩＰｖ６用のエントリであり、ＩＰｖ４のフレームとＩＰｖ６のフレームの割合が同じである場合、従来構成であれば、１エントリあたりの読み出しビット数が２６０ビット（＝エントリ有効フラグ１ビット＋フレーム種別１ビット＋送信元ＩＰアドレス１２８ビット＋宛先ＩＰアドレス１２８ビット）であったところが、本例により、８２ビット（＝エントリ有効フラグ１ビット＋フレーム種別１ビット＋（送信元ＩＰアドレス３２ビット＋宛先ＩＰアドレス３２ビット）／４＋（送信元ＩＰアドレス１２８ビット＋宛先ＩＰアドレス１２８ビット）／４）に削減できる。
【０１１１】
［ケース２］
第１エントリ情報ＥＤＡ＝エントリ適用優先度
第２エントリ情報ＥＤＢ＝エントリに適合するための送信元ＩＰアドレスと宛先ＩＰアドレスと各アドレスのマスク長
【０１１２】
各エントリに適用優先度を指定して、検索条件が適合と判定されたエントリが複数存在していた場合は、それらのエントリのうち適用優先度が最も高いエントリを採用する、という検索処理を行う装置がある。
例えば、宛先ＩＰアドレスがある範囲（ＩＰｘ〜ＩＰｙ）にあるフレームについては廃棄するが、例外的に、前記範囲内にある特定の宛先ＩＰアドレス（ＩＰｚ）のフレームについては通過させたい、といった場合である。この場合、前者に対するエントリの適用優先度よりも、後者に対するエントリの適用優先度を高くすることで前記が可能となる。
【０１１３】
適用優先度を指定できない装置で、これと同じ検索結果ＳＲを得るためには、宛先ＩＰアドレスがＩＰｘから（ＩＰｚ−１）の範囲にあるフレームを廃棄するエントリ、宛先ＩＰアドレスが（ＩＰｚ＋１）からＩＰｙの範囲にあるフレームを廃棄するエントリ、宛先ＩＰアドレスがＩＰｚのフレームを通過させるエントリのうち、少なくとも３個のエントリが必要となる。
【０１１４】
適用優先度を付加した検索条件に対して検索を行う方法は、最初に適合判定したエントリの適用優先度とエントリ番号を比較回路３ｎが一時記憶しておき、その後に適合判定したエントリが見つかった場合には、そのエントリの適用優先度と、一時記憶していた適用優先度とを比較し、前者の方が高い場合は、一時記憶していたエントリ番号と適用優先度を前者のエントリ番号と適用優先度に更新し、全エントリについて適合判定を終えるか上限の適用優先度を持つエントリを見つけるまで、これを繰り返す。
【０１１５】
ここで、第１エントリ情報ＥＤＡをエントリの適用優先度とし、検索開始から適合と判定されたエントリが見つかっていない場合、または、一時記憶している適用優先度よりも、第１エントリ情報ＥＤＡが示す適用優先度の方が高い場合に限って、第２エントリ情報ＥＤＢを読み出す。つまり、第２検索テーブル読出判定において、前記のように検索開始から適合と判定されたエントリが見つかっていないか一時記憶している適用優先度よりも、第１エントリ情報ＥＤＡが示す適用優先度の方が高いときに第２検索テーブル読出ありと判定する。これにより、適用優先度が既に見つけたエントリよりも低いエントリについては、第２検索テーブル２２Ｂから第２エントリ情報ＥＤＢを読み出されなくなる。
【０１１６】
例えば、各エントリの適用優先度がランダムで適合と判定されるエントリが任意の１個である場合、平均的にはエントリ数の１／２を検索した時点で適合と判定されるエントリが見つかり、その後に検索したエントリの１／２が適合と判定されるエントリよりも適用優先度が高いエントリであるため、全エントリの２５％について、第２エントリ情報ＥＤＢの読み出しが行われない。
【０１１７】
したがって、従来構成であれば、１エントリあたりの読み出しビット数が８２ビット（＝適用優先度８ビット＋送信元ＩＰアドレス３２ビット＋宛先ＩＰアドレス３２ビット＋送信元ＩＰアドレスのマスク長５ビット＋宛先ＩＰアドレスのマスク長５ビット）となる。
これに対して、本例によれば、１個のフレームを検索するときの１エントリあたりの検索テーブルからの平均読み出しビット数は、６３．５ビット（＝適用優先度８ビット＋（送信元ＩＰアドレス３２ビット＋宛先ＩＰアドレス３２ビット＋送信元ＩＰアドレスのマスク長５ビット＋宛先ＩＰアドレスのマスク長５ビット）＊０．７５）に削減できる。すなわち、１個のフレームを検索するとき検索テーブルから読み出されるビット数の平均値は、６３．５ｂｉｔ＊Ｎｅ（Ｎｅはエントリ数）となる。
【０１１８】
［ケース３］
第１エントリ情報ＥＤＡ＝第２エントリ情報ＥＤＢから算出されたハッシュ値
第２エントリ情報ＥＤＢ＝エントリに適合するための送信元ＩＰアドレスと宛先ＩＰアドレス
【０１１９】
ハッシュ法を利用した検索手法があるが、この検索手法の一般的な実装では、エントリ情報に対して所定のハッシュ演算を施してエントリ情報のハッシュ値を得て、前記ハッシュ値に応じて決められた検索テーブルのエントリに、前記エントリ情報を記憶しておく。そして、フレーム情報ＦＤの入力時に、前記フレーム情報ＦＤに前記ハッシュ演算を施して得たフレーム情報ＦＤのハッシュ値を用いて、適合可能性のある検索テーブルのエントリを限定し、前記限定されたエントリについてのみ、フレーム情報ＦＤとエントリ情報とを用いた適合判定を行う。
【０１２０】
しかし、このような検索手法では、エントリ情報のハッシュ値が格納できるエントリを限定するため、ハッシュ値が衝突する（同一ハッシュ値で異なるエントリ情報がある）場合に格納できるエントリがなくなる可能性があるという問題があった。
【０１２１】
本実施の形態によれば、第２エントリ情報ＥＤＢをエントリに適合するための送信元ＩＰアドレスと宛先ＩＰアドレスとし、第１エントリ情報ＥＤＡを前記第２エントリ情報ＥＤＢに所定のハッシュ演算を施して得た第２エントリ情報ＥＤＢのハッシュ値とする。フレーム情報ＦＤを入力したとき、前記フレーム情報ＦＤに前記所定のハッシュ演算を施してフレーム情報ＦＤのハッシュ値を求めた後に検索を開始する。
【０１２２】
比較回路３ｎは、第１検索テーブル２２Ａから読み出された第１エントリ情報ＥＤＡである第２エントリ情報ＥＤＢのハッシュ値と、前記フレーム情報ＦＤのハッシュ値が一致するか否かの適合判定を行う。さらに、前記適合判定結果が適合（ハッシュ値が一致）の場合に限って、第２エントリ情報ＥＤＢを読み出す。つまり、第２検索テーブル読出判定において、フレーム情報ＦＤのハッシュ値と第２エントリ情報ＥＤＢのハッシュ値が一致する場合に、第２検索テーブル読出ありと判定する。これにより、一般的はハッシュ法の実装と同様に、ハッシュ値に基づいて検索テーブルからの読み出しを限定できる。さらに、一般的はハッシュ法の実装の課題が解消され、エントリ情報のハッシュ値によって格納できるエントリが限定されない。
【０１２３】
例えば、エントリ数が２５６でありハッシュ値のビット数が８の場合、各エントリのハッシュ値（ランダム）とフレーム情報ＦＤのハッシュ値（ランダム）が一致する確率は１／２＾８であり、２５６個の各エントリでの前記発生は各々独立事象であるため、平均１回の第２検索テーブル２２Ｂの読み出しが発生する。したがって、１エントリあたりの読み出しビット数は８．２５ビット（＝ハッシュ値８ビット＋（送信元ＩＰアドレス３２ビット＋宛先ＩＰアドレス３２ビット）＊１／２５６）となり、全エントリについて送信元ＩＰアドレスと宛先ＩＰアドレスを読み出した場合の１エントリあたりの読み出しビット数である６４ビットよりも削減することができる。
【０１２４】
なお、エントリ情報である送信元ＩＰアドレスと宛先ＩＰアドレスを表すビット列のうち、予め定められた部分ビット列、例えば送信元ＩＰアドレスの下位側８ビットが、エントリ間で異なる場合が多いという特徴を持っている場合は、前記部分ビット列を第１エントリ情報ＥＤＡとし、残りのビット列、前記例では送信元ＩＰアドレスの上位側２４ビットと宛先ＩＰアドレスを第２エントリ情報ＥＤＢとする。
【０１２５】
これにより、第１エントリ情報ＥＤＡとしてハッシュ値を用いた場合と同様に、検索テーブルからの読み出しを限定できる効果が得られる。さらに、この方法では、ハッシュ値の演算が不要であり、かつ、ハッシュ値を記憶するためのメモリが不要であるため、１エントリあたりの読み出しビット数の削減に加えて、ハッシュ値の演算やハッシュ値を記憶するためのメモリの回路規模を削減できる。
【０１２６】
上記の例では、１エントリあたりの読み出しビット数は８．２２ビット（＝送信元ＩＰアドレスの下位側８ビット＋（送信元ＩＰアドレスの上位側２４ビット＋宛先ＩＰアドレス３２ビット）＊１／２５６）となり、第１検索テーブル２２Ａのメモリ量と第２検索テーブル２２Ｂのメモリ量の合計は１６３８４ビット（＝（送信元ＩＰアドレスの下位側８ビット＋送信元ＩＰアドレスの上位側２４ビット＋宛先ＩＰアドレス３２ビット）＊２５６）であるのに対して、ハッシュ値を用いた場合のメモリは前記に加えてハッシュ値を記憶する分、つまり、２０４８ビット（ハッシュ値８ビット＊２５６）が必要であるため、１１％程度のメモリ量を削減できる効果がある。
【０１２７】
なお、上記の例では、第２エントリ情報ＥＤＢの例として送信元ＩＰアドレスと宛先ＩＰアドレスを取り上げたが、前記以外の適用も可能である。第２エントリ情報ＥＤＢとしては、ＩＰアドレスにＭＡＣアドレスやＶＬＡＮ  ＩＤなどを組み合わせや、ＴＣＰ／ＵＤＰのポート番号などであってもよい。また、ハッシュ値を第２エントリ情報ＥＤＢのビット列全体に対するハッシュ演算によって得るのではなく、第２エントリ情報ＥＤＢを表す全ビット列のうち一致判定の対象となる部分ビット列に対するハッシュ演算の結果であってもよい。
【０１２８】
また、全ビットがマスクの対象となりうる場合は、第１エントリ情報ＥＤＡに有効フラグを加えておき、前記フラグによって第１エントリ情報ＥＤＡのハッシュ値が無効を示す場合には、必ず第２エントリ情報ＥＤＢを第２検索テーブル２２Ｂから読み出すようにする。これにより、ハッシュ値によって検索テーブルからの読み出しを限定できないような検索条件（ハッシュ演算の対象となる第２エントリ情報ＥＤＢのビット列の少なくとも一部のビット値がマスクされる検索条件）が指定されたエントリについては、前記ハッシュ値に基づく読み出し限定を解除することができる。
【０１２９】
したがって、ハッシュ値によって検索テーブルからの読み出しを限定できるエントリと限定できないエントリが混在する検索テーブルに対しても、前者のエントリに対して１エントリあたりの読み出しビット数を削減できる。
例えば、宛先ＩＰアドレスと送信元ＩＰアドレスの両方に基づいて適合判定するエントリに加えて、宛先ＩＰアドレスのみに基づいて適合判定する一部のエントリが含まれる検索処理である。
【０１３０】
この場合、ハッシュ演算の対象を宛先ＩＰアドレスと送信元ＩＰアドレスを合わせたビット列として前記ハッシュ値を第１エントリ情報ＥＤＡとして採用する。さらに、宛先ＩＰアドレスのみに基づいて適合判定するエントリ、すなわち、送信元ＩＰアドレスがマスクされたエントリのみに、無効を示す有効フラグの値を指定する。このときの第１エントリ情報ＥＤＡに含まれるハッシュ値は任意の値でよい。さらに、第２エントリ情報ＥＤＢに、適合と判定するための宛先ＩＰアドレスと送信元ＩＰアドレスを指定する。すなわち、宛先ＩＰアドレスのみに基づいて適合判定するエントリでは宛先ＩＰアドレスのみを指定する。
【０１３１】
これにより、宛先ＩＰアドレスと送信元ＩＰアドレスの両方に基づいて適合判定するエントリに対しては、フレーム情報ＦＤの宛先ＩＰアドレスと送信元ＩＰアドレスとから求めたハッシュ値と第１エントリ情報ＥＤＡのハッシュ値が一致した場合にのみ、第２エントリ情報ＥＤＢが検索テーブルから読み出されるとともに、宛先ＩＰアドレスのみに基づいて適合判定するエントリに対しては、前記ハッシュ値の一致不一致によらず、第２エントリ情報ＥＤＢが検索テーブルから読み出される。
したがって、ハッシュ値を算出可能な検索条件を持ったエントリと、前記が不可能なエントリが混在している場合にも、前者のエントリに対して１エントリあたりの読み出しビット数を削減できる。
【０１３２】
［ケース４］
第１エントリ情報ＥＤＡ＝エントリに適合するための宛先ＩＰアドレスとそのマスク長と第２エントリ情報ＥＤＢの読出フラグ、
第２エントリ情報ＥＤＢ＝エントリに適合するための送信元ＩＰアドレスとそのマスク長
【０１３３】
宛先ＩＰアドレスのみに対する条件により適合と判定するエントリと、宛先ＩＰアドレスと送信元ＩＰアドレスの両方に対する条件により適合と判定するエントリの、両方がある検索を行う装置がある。例えば、ルータ装置の経路テーブルは、通常は、宛先ＩＰアドレスのみを条件として適合判定するエントリによって占められているが、ソースルーティングを行う場合には、宛先ＩＰアドレスと送信元ＩＰアドレスの両方を条件として適合判定を行うエントリが加わる。
このような場合に、全エントリについて、宛先ＩＰアドレスと送信元ＩＰアドレスの両方を検索テーブルから読み出す装置では、宛先ＩＰアドレスのみを条件とするエントリが多数を占める場合に、無駄な送信元ＩＰアドレスの読み出しが問題となる。
【０１３４】
本実施の形態によれば、第１エントリ情報ＥＤＡを、エントリに適合するための宛先ＩＰアドレスとそのマスク長、すなわち、ＩＰアドレスを表すビット列のうち一致判定対象とならない；判定がマスクされる最下位ビットからのビット数と、第２エントリ情報ＥＤＢの読出フラグ、すなわち、第２エントリ情報ＥＤＢを読み出すか否かを表すフラグとし、第２エントリ情報ＥＤＢを、エントリに適合するための送信元ＩＰアドレスとそのマスク長、とする。
【０１３５】
つまり、第２検索テーブル読出判定において、フレーム情報ＦＤと、第１エントリ情報ＥＤＡによって表された宛先ＩＰアドレスに対する条件を満たし、かつ、第２エントリ情報ＥＤＢの読出フラグが読み出しありを示す場合に限って、第２エントリ情報ＥＤＢを読み出す。
これにより、宛先ＩＰアドレスと送信元ＩＰアドレスの両方を検索テーブルから読み出す必要があるエントリについてのみ、送信元ＩＰアドレスを第２検索テーブル２２Ｂから読み出すこととなるため、無駄な送信元ＩＰアドレスの読み出しが発生しない。
【０１３６】
例えば、全エントリのうち１／２のエントリが宛先ＩＰアドレスのみを条件とするエントリで残りのエントリが宛先ＩＰアドレスに加えて送信元ＩＰアドレスも条件とするエントリの場合、従来構成であれば、１エントリあたりの読み出しビット数は７４ビット（＝送信元ＩＰアドレス３２ビット＋宛先ＩＰアドレス３２ビット＋送信元ＩＰアドレスのマスク長５ビット＋宛先ＩＰアドレスのマスク長５ビット、送信元ＩＰアドレスを検索条件に加えない場合は送信元ＩＰアドレスのマスク長を３２とする）となる。
【０１３７】
本例によれば、５６．５ビット（＝宛先ＩＰアドレス３２ビット＋宛先ＩＰアドレスのマスク長５ビット＋第２エントリ情報ＥＤＢの読出フラグ１ビット＋（送信元ＩＰアドレス３２ビット＋送信元ＩＰアドレスのマスク長５ビット）／２）に削減できる。
【０１３８】
なお、上記の例では、第１エントリ情報ＥＤＡと第２エントリ情報ＥＤＢの例として宛先ＩＰアドレスと送信元ＩＰアドレスを取り上げたが、前記以外への適用も可能である。
例えばＶＬＡＮ  ＩＤのみを検索条件とするエントリと、ＶＬＡＮ  ＩＤに加えて送信元ＭＡＣアドレスも検索条件となるエントリが混在する検索テーブルの場合、第１エントリ情報ＥＤＡとしてＶＬＡＮ  ＩＤを指定し第２エントリ情報ＥＤＢとして送信元ＭＡＣアドレスを指定することになる。
【０１３９】
このように、全てのエントリに共通の検索条件を表すエントリ情報（前記例ではＶＬＡＮ  ＩＤ）を第１エントリ情報ＥＤＡとし、一部のエントリについて付加された検索条件を表すエントリ情報（前記例では送信元ＭＡＣアドレス）を第２エントリ情報ＥＤＢとすることで、検索処理に第２エントリ情報ＥＤＢを必要としないエントリについては第２エントリ情報ＥＤＢを検索テーブルから読み出さないので、１エントリあたりの読み出しビット数を削減できる。
【０１４０】
［ケース５］
第１エントリ情報ＥＤＡ＝エントリに適合するためのＩＰアドレスとエントリ情報種別；宛先・送信元を識別するフラグ
第２エントリ情報ＥＤＢ＝エントリに適合するためのＩＰアドレス（第１エントリ情報ＥＤＡに指定されなかった方のＩＰアドレス；宛先ならば送信元で送信元ならば宛先）
【０１４１】
多数の端末から少数のサーバへのフレームを特定するためのエントリが検索テーブルに複数含まれる場合であれば、サーバのＩＰアドレスを表す宛先ＩＰアドレスはエントリ間で同一になるのに対して、端末のＩＰアドレスを表す送信元ＩＰアドレスはエントリ間で異なる。一方、逆向きのフレームを特定するエントリであれば、宛先ＩＰアドレスはエントリ間で異なる一方で、送信元ＩＰアドレスは同一となる。
【０１４２】
このように、複数のヘッダ情報に対する条件を含むエントリ情報を記憶する検索テーブルでは、そのエントリを限定しやすい、すなわち他のエントリと異なっているヘッダ情報と、そうでないヘッダ情報の両方を含み、かつ、エントリによってそのエントリを限定しやすいヘッダ情報が変わる。前記の例では、送信元ＩＰアドレスであるか宛先ＩＰアドレスであるかがエントリによって違う。
【０１４３】
本実施の形態によれば、第１エントリ情報ＥＤＡとして、そのエントリを限定しやすい（他のエントリと異なっている）ヘッダ情報に関する値を指定することによって、第２エントリ情報ＥＤＢを読み出す機会を減らすことができる。なお、エントリによって前記ヘッダ情報が異なるので、第１エントリ情報ＥＤＡに指定したヘッダ情報の種別を表すエントリ情報種別を加える。
【０１４４】
例として、４台のサーバと３２台の端末があり、各サーバから各端末へのフレームを特定する１２８個（＝４＊３２）のエントリと、各端末から各サーバへのフレームを特定する１２８個（＝３２＊４）のエントリの合計２５６個のエントリを検索テーブルに記憶する場合、従来構成であれば、１エントリあたりの読み出しビット数は６４ビット（＝送信元ＩＰアドレス３２ビット＋宛先ＩＰアドレス３２ビット）であった。
【０１４５】
本例によれば、エントリ毎に読み出される第１エントリ情報ＥＤＡ、すなわち、端末側ＩＰアドレス３２ビット＋エントリ情報種別１ビットに、第１エントリ情報ＥＤＡに適合する確率、すなわち端末側ＩＰアドレスが一致する確率である４（サーバの台数分）／２５６エントリで読み出される、第２エントリ情報ＥＤＢ（サーバ側ＩＰアドレス３２ビット）を加えた、３３．５ビット（＝第１エントリ情報ＥＤＡ３３ビット＋第２エントリ情報ＥＤＢ３２ビット＊４／２５６）となる。
【０１４６】
なお上記では、第１エントリ情報ＥＤＡとして、そのエントリを限定しやすい（他のエントリと異なっている）ヘッダ情報に関する値を指定したが、第１エントリ情報ＥＤＡのビット数を削減するために、前記ヘッダ情報に関する値に対して所定のハッシュ演算を施して得たハッシュ値を用いることも可能である。
【０１４７】
［第２の実施の形態］
次に、図５を参照して、本発明の第２の実施の形態にかかるフレーム検索処理装置１０について説明する。図５は、第２の実施の形態にかかる検索処理部の要部を示すブロック図である。
第１の実施の形態では、図３に示したように、第１検索テーブル２２Ａ用の第１テーブルメモリと第２検索テーブル２２Ｂ用の第２テーブルメモリの２個のテーブルメモリＭ１，Ｍ２を使用する場合を例として説明した。本実施の形態では、１個の共通テーブルメモリＭ０に、第１検索テーブル２２Ａと第２検索テーブル２２Ｂの両方を実現する場合について説明する。
【０１４８】
本実施の形態において、第１読出回路２３Ａは、クロックに基づき時間の経過に合わせてエントリｉ（ｉ＝１〜Ｎｅ）を変えながら、第１検索テーブル２２Ａが記憶する第１エントリ情報ＥＤＡ［ｉ］を次々と読み出し、各比較回路３ｎ（ｎ＝１〜Ｎ）に分配する。具体的には、前記共通テーブルメモリの各アドレスａ（ａ＝０〜Ｎｅ−１）に第１エントリ情報ＥＤＡ［ａ＋１］を記憶する。さらに、前記読み出すアドレスａを時間の経過に合わせて、０〜Ｎｅ−１まで順番に変える。なお前記方法において、アドレスａが最後のエントリＮｅ−１に達したときは０に戻るものとする。
【０１４９】
ここで、第１エントリ情報ＥＤＡ［ｉ］の読み出しから、第２エントリ情報ＥＤＢ［ｉ］の読み出しまでの時間差Ｔｄ内に、読み進むエントリの数をＣｄとすると、前記共通テーブルメモリの各アドレスａには、第１エントリ情報ＥＤＡ［ａ＋１］を記憶しておくとともに、第２エントリ情報ＥＤＢ［ａ＋１−Ｃｄ］を記憶しておく。なお、ａ＋１−Ｃｄの値が負の場合は第２エントリ情報ＥＤＢ［Ｎｅ＋ａ＋１−Ｃｄ］を記憶する。
【０１５０】
また、第１読出回路２３Ａによって、アドレスａに記憶された第１エントリ情報ＥＤＡ［ａ＋１］が読み出されると同時に、第２エントリ情報ＥＤＢ［ａ＋１−Ｃｄ］が共通テーブルメモリから読み出される。
つまり、時間Ｔｄ前に第１検索テーブル２２Ａから読み出された第１エントリ情報ＥＤＡ［ａ＋１−Ｃｄ］と同じエントリで第２検索テーブル２２Ｂから読み出された第２エントリ情報ＥＤＢ［ａ＋１−Ｃｄ］が、エントリ（ａ＋１）の第１エントリ情報ＥＤＡ［ａ＋１］と合わせて読み出されることになる。
【０１５１】
ただし、前記共通テーブルメモリとして、第２エントリ情報ＥＤＢ［ｉ］（ｉ＝１〜Ｎｅ）に対する読出実施の有無を示す信号である読出制御信号を入力可能なメモリを用いる。また、前記読出制御信号として、全ての比較回路３ｎ（ｎ＝１〜Ｎ）からの読出判定結果ＲＪｎ［ｉ］を示す信号に対する論理演算の結果、すなわち、少なくとも１個の読出判定結果ＲＪが第２検索テーブル読出ありを示すとき読出制御信号が読出ありを示す値とする演算の結果を用いる。
【０１５２】
つまり、エントリ（ａ＋１）の第１エントリ情報ＥＤＡ［ａ＋１］とエントリ（ａ＋１−Ｃｄ）の第２エントリ情報ＥＤＢ［ａ＋１−Ｃｄ］とを共通テーブルメモリから読み出すために、共通テーブルメモリに読み出しアドレスａを入力するが、これと併せて、エントリ（ａ＋１−Ｃｄ）に対する読出判定結果ＲＪｎ［ａ＋１−Ｃｄ］のなかに第２検索テーブル読出ありを示す場合に、エントリ（ａ＋１−Ｃｄ）の第２エントリ情報ＥＤＢ［ａ＋１−Ｃｄ］を読み出すための読出制御信号を共通テーブルメモリに入力することになる。
【０１５３】
図５の構成例と、前述した図３の構成例との主な差異は、第１検索テーブル２２Ａと第２検索テーブル２２Ｂが１個の検索テーブル用の共通テーブルメモリＭ０に収容されている点である。また、前記に伴って、図３に記載されていた第２読出アドレスＲＡＢ［ｉ］と前記信号を生成する第２読出アドレス生成部４１Ｂが不要となって削除されている。
【０１５４】
また、図３の構成例では、第１読出アドレスＲＡＡ［ｉ］を遅延させて前記第２読出アドレスＲＡＢ［ｉ］を生成していたが、図５の構成例では、前記第２読出アドレスＲＡＢ［ｉ］が不要となることに伴って、第１読出回路２３Ａから第２読出回路２３Ｂへの信号である第１読出アドレスＲＡＡ［ｉ］が削除されている。
【０１５５】
共通テーブルメモリの読出アドレス［ｉ］が指すワードには、エントリ番号がｉの第１エントリ情報ＥＤＡ［ｉ］とともに、エントリ番号がＩ’＝ｉ−Ｃｄ（ｉ≦ＣｄのときはＩ’＝Ｎｅ−Ｃｄ＋ｉ）の第２エントリ情報ＥＤＢ［Ｉ’］を格納する。前記Ｃｄは時間Ｔｄ内に共通テーブルメモリから読み出されるエントリの数である。このＣｄは、固定値でありＴｄがクロック３サイクル分の時間であり、１サイクル毎に１エントリが共通テーブルメモリから読み出される場合にはＣｄ＝３となる。
【０１５６】
なお、図４の説明で示した、第１読出アドレスＲＡＡ［ｉ］と第１読出有効信号ＲＥＡ［ｉ］を、第１検索テーブル２２Ａが入力してから、第１エントリ情報ＥＤＡ［ｉ］を出力するまでの、検索テーブル読出にかかる遅延量が変動する場合は、各比較回路３ｎ内あるいは第２読出回路２３Ｂ内において、前記検索テーブル読出にかかる遅延量の変動を吸収することによって、第１読出信号ＲＡ［ｉ］を共通テーブルメモリに入力する時点から第２読出信号ＲＢを前記共通テーブルメモリに入力するまでの時間差を固定値とする必要がある。
本実施の形態において、上記以外の構成については、第１の実施の形態と同様であり、ここでの説明は省略する。
【０１５７】
［第２の実施の形態の動作］
次に、図６を参照して、本実施の形態にかかる検索処理部１２の動作について説明する。図６は、第２の実施の形態にかかる検索処理部の動作を示すタイムチャートであり、比較回路３ｎの個数Ｎが２の場合を例として、検索処理部１２内の各信号について時間の経過（左から右）に伴う変化が示されている。
【０１５８】
図６には、図４の第１読出アドレスＲＡＡ［ｉ］と第２読出アドレスＲＡＢ［ｉ］がなく、図４の第１読出アドレスＲＡＡ［ｉ］が読出アドレスＲＡＤ［ｉ］に代わっている。
【０１５９】
図６において、第１読出有効信号ＲＥＡ［ｉ］が有効時、第１読出アドレスＲＡＡ［ｉ］＝ｉ−１の入力から２サイクル後に第１検索テーブル２２Ａから第１エントリ情報ＥＤＡ［ｉ］が読み出される。また、第２読出有効信号ＲＥＢ［ｉ］が有効時、その時点から２サイクル後に第２エントリ情報ＥＤＢ［ｉ］が出力される。
読出アドレスＲＡＤ［ｉ］＝ｉ−１のワードには、第１エントリ情報ＥＤＡ［ｉ］と第２エントリ情報ＥＤＢ［ｉ−Ｃｄ］（Ｃｄ＝３）が格納されているので、読出アドレスａのワードから第２エントリ情報ＥＤＢ［ａ−２］が読み出される。
【０１６０】
前記２サイクルの遅延は、前記共通テーブルメモリが入力したアドレス等の信号をラッチすることで生じる１クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる１クロックの遅延を合わせた値である。
本実施の形態において、上記以外の動作については、第１の実施の形態と同様であり、ここでの説明は省略する。
【０１６１】
［第２の実施の形態の効果］
このように、本実施の形態は、前記第１検索テーブル２２Ａおよび前記第２検索テーブル２２Ｂを含み、エントリｉに対応する前記第１エントリ情報および前記第２検索テーブル２２Ｂの前記第２エントリ情報をそれぞれＥＤＡ［ｉ］およびＥＤＢ［ｉ］とし、ＥＤＡ［ｉ］の読み出しからＥＤＢ［ｉ］の読み出しまでの期間に読み進むエントリ数をＣｄとした場合、エントリｉに対応するアドレスに、ＥＤＡ［ｉ］とＥＤＢ［ｉ−Ｃｄ］とを記憶する１つの共通テーブルメモリＭ０を備え、前記第１読出回路２３Ａが、前記共通テーブルメモリＭ０内の前記各エントリから巡回的にＥＤＡ［ｉ］とＥＤＢ［ｉ−Ｃｄ］とを読み出して前記比較回路３ｎへ出力するための共通読出信号ＲＡを前記共通テーブルメモリＭ０へ出力し、前記第２読出回路２３Ｂが、前記比較回路３ｎから出力された前記読出判定結果ＲＪが読み出しありを示す場合に、前記第２検索テーブル２２Ｂからの読出有効を示す前記第２読出信号ＲＢを前記共通テーブルメモリＭ０へ出力し、前記共通テーブルメモリＭ０が、前記第１読出回路２３Ａからの前記共通読出信号ＲＡに応じて、当該共通読出信号ＲＡと対応するアドレスからＥＤＡ［ｉ］を読み出して出力するとともに、前記第２読出信号ＲＢが前記第２検索テーブル２２Ｂからの読出有効を示す場合にのみ、前記アドレスからＥＤＢ［ｉ−Ｃｄ］を読み出して出力するようにしたものである。
【０１６２】
これにより、前記第１検索テーブル２２Ａおよび前記第２検索テーブル２２Ｂごとに、第１テーブルメモリＭ１および第２テーブルメモリＭ２を用いる場合と比較し、これらのテーブルメモリの各々に備わっていたアドレスデコーダ回路、すなわち、アドレスを入力したとき前記アドレスに対応するメモリセルを選択するための信号を生成する回路に代わって、１個の共通テーブルメモリＭ０のアドレスデコーダ回路で済ませることができるため、回路規模を削減することができる。
【０１６３】
［第３の実施の形態］
次に、図７を参照して、本発明の第３の実施の形態にかかるフレーム検索処理装置１０について説明する。図７は、第３の実施の形態にかかる検索処理部の構成を示すブロック図である。
第１の実施の形態では、第１読出回路２３Ａからの第１読出アドレスＲＡＡに基づいて、第２読出回路２３Ｂで、第２読出アドレスＲＡＢを生成する場合を例として説明した。本実施の形態では、第１エントリ情報ＥＤＡ内に格納されている、当該第１エントリ情報ＥＤＡと対応する第２エントリ情報ＥＤＢを示す前記第２検索テーブル２２Ｂ上の第２エントリ番号に基づいて、第２読出回路２３Ｂで、第２読出アドレスＲＡＢを生成する場合について説明する。
【０１６４】
本実施の形態において、検索処理部１２には、主な回路部として、フレーム情報振分回路２１、第１検索テーブル２２Ａ、第２検索テーブル２２Ｂ、第１読出回路２３Ａ、第２読出回路２３Ｂ、Ｎ個の比較回路３ｎ（ｎ＝１〜Ｎ；Ｎは２以上の自然数）、および検索結果合流回路２４が設けられている。
【０１６５】
第１検索テーブル２２Ａは、Ｎｅ個（Ｎｅは１以上の自然数）のエントリｉ（ｉ＝１〜Ｎｅ）を有し、各エントリｉに第１エントリ情報ＥＤＡ［ｉ］を記憶する。
第２検索テーブル２２Ｂは、Ｎｅ’個（Ｎｅ’は１以上の自然数）のエントリｊ（ｊ＝１〜Ｎｅ’）を有し、各エントリｊに第２エントリ情報ＥＤＢ［ｊ］を記憶する。
【０１６６】
第１検索テーブル２２Ａは、第１読出回路２３Ａから第１読出信号ＲＡを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第１エントリ情報ＥＤＡ［ｉ］を読み出す。
同様に、第２検索テーブル２２Ｂは、第２読出回路２３Ｂから第２読出信号ＲＢを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第２エントリ情報ＥＤＢ［ｉ］を読み出す。
【０１６７】
第１の実施の形態では、第１検索テーブル２２Ａのエントリｉに記憶された第１エントリ情報ＥＤＡ［ｉ］と、エントリ番号ｉが同じ第２検索テーブル２２Ｂのエントリｉに記憶された第２エントリ情報ＥＤＢ［ｉ］とのセットが、従来技術におけるエントリ情報に相当していたが、本実施の形態では、第１検索テーブル２２Ａに記憶された第１エントリ情報ＥＤＡ［ｉ］の中に、セットとなるべき第２検索テーブル２２Ｂのエントリ番号が含まれる。
【０１６８】
つまり、前記第１エントリ情報ＥＤＡ［ｉ］が表現する第１検索条件とフレーム情報ＦＤとが適合し、かつ、前記第１エントリ情報ＥＤＡ［ｉ］に第２検索テーブル２２Ｂのエントリ番号である第２のエントリ番号ＥＮＢ［ｉ］が含まれるとき、第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］が表現する第２検索条件と前記フレーム情報ＦＤが適合した場合に、フレームに適合する検索条件を持つエントリを見つけたことになる。
したがって、従来の検索テーブルにおける、エントリｉのエントリ情報を、第１検索テーブル２２Ａの第１エントリ情報ＥＤＡ［ｉ］（第２のエントリ番号ＥＮＢ［ｉ］を除く）と第２検索テーブル２２Ｂの第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］とに分割したことになる。
【０１６９】
フレーム情報振分回路２１からフレーム情報ＦＤｎ（ｎ＝１〜Ｎ）を入力した比較回路３ｎは、前記フレーム情報ＦＤｎを入力した時点で検索を開始し、前記フレーム情報ＦＤｎと、第１読出回路２３Ａが第１検索テーブル２２Ａから読み出したエントリｉ（ｉ＝１〜Ｎｅ）の第１エントリ情報ＥＤＡ［ｉ］とに基づいて、前記フレーム情報ＦＤｎが前記第１エントリ情報ＥＤＡ［ｉ］が表す検索条件に適合するか否かの第１適合判定を行って、第１適合判定結果ＣＪＡｎ［ｉ］を得る。なお、前記第１エントリ情報ＥＤＡ［ｉ］には、第２のエントリ番号ＥＮＢ［ｉ］が指定されているとする。
【０１７０】
さらに、前記比較回路３ｎは、第２検索テーブル２２Ｂから前記第２のエントリ番号ＥＮＢ［ｉ］の第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］を読み出すか否かの第２検索テーブル読出判定を、前記第１適合判定結果ＣＪＡに基づいて行うとともに、第２読出回路２３Ｂに前記読出判定結果ＲＪｎ［ｉ］を出力する。
【０１７１】
本実施の形態では、第１適合判定結果ＣＪＡｎ［ｉ］が適合を示す場合に、第２検索テーブル２２Ｂから第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］を読み出す（第２検索テーブル読出あり）と判定し、前記第１適合判定結果ＣＪＡｎ［ｉ］が不適合を示す場合に、第２検索テーブル２２Ｂから第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］を読み出さない（第２検索テーブル読出なし）と判定する。すなわち、本例では、第１適合判定とは別に第２検索テーブル読出判定を行う必要はなく、第１適合判定結果ＣＪＡｎ［ｉ］を用いて読出判定結果ＲＪｎ［ｉ］を得ることができる。
【０１７２】
ここで、前記比較回路３ｎがフレーム情報ＦＤｎと第１エントリ情報ＥＤＡ［ｉ］とに基づいて、第２読出回路２３Ｂに第２検索テーブル読出ありを示す読出判定結果ＲＪｎ［ｉ］を出力した場合、第２読出回路２３Ｂは第２検索テーブル２２Ｂから第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］を読み出して、前記比較回路３ｎに入力する。このとき、前記比較回路３ｎは、前記フレーム情報ＦＤと、前記第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］とに基づいて、前記フレーム情報ＦＤｎが前記第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］に適合するか否かの第２適合判定を行って、第２適合判定結果ＣＪＢ［ｉ］を得る。
【０１７３】
前記比較回路３ｎは、前記第１適合判定結果ＣＪＡｎ［ｉ］と前記第２適合判定結果ＣＪＢ［ｉ］に基づいて、エントリｉの検索条件が前記フレーム情報ＦＤｎに適合するか否かを判定する統合適合判定を行う。また、前記統合適合判定により適合と判断されたエントリが見つかった時点、あるいは、全てのエントリについてフレーム情報ＦＤｎとの判定を終えた時点で、前記比較回路３ｎは検索を終了し、検索結果ＳＲｎを出力する。
【０１７４】
なお、第１エントリ情報ＥＤＡまたは第２エントリ情報ＥＤＢにエントリの適用優先度を含み、統合適合判定により適合とされたエントリのなかで前記エントリの適用優先度が最も高いエントリを見つける例では、統合適合判定により適合とされたエントリが１個見つかった時点で検索を終了するのではなく、全エントリについて統合適合判定を終えるか、上限の適用優先度を持つエントリが見つかった場合にのみ、検索を終了する。
【０１７５】
前記比較回路３ｎは、前記統合適合判定によって得られた結果（例えば前記判定において適合したエントリの番号ｉや前記エントリの第２エントリ情報ＥＤＢ［ｉ］に含まれる結果を示す情報；通過／廃棄を示す情報や送出先を示すポート番号など）を、検索結果ＳＲｎとして、検索結果合流回路２４に対して出力する。
【０１７６】
前記比較回路３ｎは、エントリｉについて、第１エントリ情報ＥＤＡ［ｉ］が第１検索テーブル２２Ａから読み出された後に得られる第１適合判定結果ＣＪＡｎ［ｉ］と、その後の第２エントリ情報ＥＤＢ［ｉ］が第２検索テーブル２２Ｂから読み出された後に得られる第２適合判定結果ＣＪＢ［ｉ］に基づいて、前記統合適合判定を行う。
第２適合判定結果ＣＪＢ［ｉ］を得る前に、次のエントリ（ｉ＋１）に対する第１適合判定を行って、第１適合判定結果ＣＪＡｎ［ｉ＋１］を得る場合は、エントリｉに対する第１適合判定結果ＣＪＡｎ［ｉ］とともにエントリ（ｉ＋１）に対する第１適合判定結果ＣＪＡｎ［ｉ＋１］を、統合適合判定を行うまで一時的に保持しておく。
【０１７７】
つまり、第１適合判定結果ＣＪＡｎ［ｉ］を、第２適合判定結果ＣＪＢ［ｉ］を得て統合適合判定を行うまで保持する必要があるが、前記保持期間中に得た次エントリ以後の第１適合判定結果ＣＪＡも合わせて保持する。
これにより、エントリの更新間隔を、第１適合判定結果ＣＪＡｎ［ｉ］を得てから第２適合判定結果ＣＪＢ［ｉ］を得るまでの時間以上とする必要がなくなり、検索処理速度を向上できる。
【０１７８】
上記の全てのエントリについてフレーム情報との判定を終えた時点を知る判定終了特定方法の例として、フレーム情報ＦＤｎ（ｎ＝１〜Ｎ）を比較回路３ｎが入力した時点からの経過時間を前記比較回路３ｎが測っておき、前記経過時間が予め定められた時間Ｔｓに達したタイミングを用いる方法がある。この判定終了特定方法は、各エントリの処理時間が固定値でありエントリ数も固定値であることから、全エントリを検索するのにかかる時間も固定値となることを利用した方法である。また別の方法として、フレーム情報ＦＤｎ（ｎ＝１〜Ｎ）を比較回路３ｎが入力した時点からの統合適合判定の回数を計数し、その回数がＮ（全エントリ数）に達したタイミングを用いることもできる。
【０１７９】
第１読出回路２３Ａは、時間の経過に合わせてエントリｉ（ｉ＝１〜Ｎｅ）を変えながら、第１検索テーブル２２Ａが記憶する第１エントリ情報ＥＤＡ［ｉ］を次々と読み出し、第２のエントリ番号ＥＮＢ［ｉ］を除く前記第１エントリ情報ＥＤＡ［ｉ］を、各比較回路３ｎ（ｎ＝１〜Ｎ）に分配する。また、前記第２のエントリ番号ＥＮＢ［ｉ］を、第２読出回路２３Ｂに対して出力する。
【０１８０】
第１エントリ情報ＥＤＡの読み出し方法の例として、第１検索テーブル２２Ａを第１テーブルメモリによって構成し、前記第１テーブルメモリの各アドレスａ１（ａ１＝０〜Ｎｅ−１）に第１エントリ情報ＥＤＡ［ａ１＋１］を記憶し、前記読み出すアドレスａ１を時間の経過に合わせて、０〜Ｎｅ−１まで順番に変える方法がある。なお、この方法において、アドレスａ１が最後のエントリＮｅ−１に達したときは０に戻るものとする。ここで、各比較回路３ｎ（ｎ＝１〜Ｎ）が出力する検索処理中であるか否かを示す検索状態ＳＳｎを、第１読出回路２３Ａが入力して、全ての比較回路３ｎが検索処理を行っていない期間中の、前記読み出しを行わないことにより、第１検索テーブル２２Ａの読み出しが不要な期間の消費電力を削減できる。
【０１８１】
第２読出回路２３Ｂは、第１読出回路２３Ａから第２のエントリ番号ＥＮＢ［ｉ］（ｉ＝１〜Ｎｅ）を入力する毎に、第２検索テーブル２２Ｂが記憶する第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］を読み出し、各比較回路３ｎ（ｎ＝１〜Ｎ）に分配する。ただし、第１エントリ情報ＥＤＡ［ｉ］の読み出しから予め定められた一定の時間差Ｔｄの後に、第２エントリ情報ＥＤＢ［［第２のエントリ番号ＥＮＢ［ｉ］］の読み出しを行う。
【０１８２】
また、前記第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］の読み出しを行うのは、少なくとも１個の比較回路３ｎから第２検索テーブル読出ありを示す読出判定結果ＲＪｎ［ｉ］を入力した場合に限る。なお、検索処理を行っていない比較回路３ｎは、第２検索テーブル読出なしを示す読出判定結果ＲＪｎ［ｉ］を出力することで、比較回路３ｎが検索処理中であるか否かを区別する必要なく、各読出判定結果ＲＪｎ［ｉ］（ｎ＝１〜Ｎ）に基づいて、第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］の読み出し実施の有無を判定することができる。
【０１８３】
上記の時間差Ｔｄは、（ａ）第１読出回路２３Ａが第１エントリ情報ＥＤＡ［ｉ］（ｉ＝１〜Ｎｅ）の読み出しを開始してから比較回路３ｎ（ｎ＝１〜Ｎ）に前記第１エントリ情報ＥＤＡ［ｉ］が入力されるまでの時間（＝第１検索テーブル２２Ａの読み出しに要する時間＋第１エントリ情報ＥＤＡを各比較回路３ｎに分配するのに要する時間）、（ｂ）比較回路３ｎ（ｎ＝１〜Ｎ）が第１エントリ情報ＥＤＡ［ｉ］を入力してから読出判定結果ＲＪｎ［ｉ］を第２読出回路２３Ｂに出力するまでの時間（＝第２検索テーブル読出判定に要する時間）、（ｃ）第２読出回路２３Ｂが全ての比較回路３ｎ（ｎ＝１〜Ｎ）から読出判定結果ＲＪｎ［ｉ］を入力してから第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］の読み出しを行うと判定して第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］の読み出しを開始するまでの時間（＝第２検索テーブル２２Ｂの読み出し有無を判断するのに要する時間）、の和となる。
【０１８４】
第２読出回路２３Ｂは、第１読出回路２３Ａがエントリｉの第１エントリ情報ＥＤＡ［ｉ］を読み出す時点からＴｄの遅延をおいて、各比較回路３ｎ（ｎ＝１〜Ｎ）からの読出判定結果ＲＪｎ［ｉ］の中に第２検索テーブル読出ありを示すものが含まれる場合に、前記エントリｉの第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］を読み出す。
【０１８５】
この読み出し方法の例として、第２検索テーブル２２Ｂを第２テーブルメモリによって構成し、前記第２テーブルメモリの各アドレスａ２（ａ２＝０〜Ｎｅ’−１）に第２エントリ情報ＥＤＢ［ａ２＋１］を記憶し、前記読み出すアドレスａ２を、第２のエントリ番号ＥＮＢ［ｉ］とする。さらに、前記第２テーブルメモリからの読出実施の有無を示す信号である読出制御信号として、読出判定結果ＲＪｎ［ｉ］を示す信号に対する論理演算（少なくとも１個の読出判定結果ＲＪが第２検索テーブル読出ありを示すとき読出制御信号が読出ありを示す値とする演算）の結果を用いる。
【０１８６】
次に、図８を参照して、本実施の形態にかかる第１読出回路２３Ａおよび第２読出回路２３Ｂについて説明する。図８は、第３の実施の形態にかかる検索処理部の要部を示すブロック図である。
【０１８７】
図８に示すように、第１読出回路２３Ａは、第１読出アドレス生成部４１Ａ、第１読出有効生成部４２Ａ、および第２のエントリ番号分離部４３Ａを有している。
このうち、第１読出アドレス生成部４１Ａおよび第１読出有効生成部４２Ａは、前述した図３と同一であり、各々、クロックに合わせて、第１読出アドレスＲＡＡ［ｉ］および第１読出有効信号ＲＥＡ［ｉ］を生成して、第１検索テーブル２２Ａに出力し、第１エントリ情報ＥＤＡ［ｉ］を読み出す機能を有している。
【０１８８】
また、第２のエントリ番号分離部４３Ａは、前記第１検索テーブル２２Ａから読み出した第１エントリ情報ＥＤＡ［ｉ］を入力し、前記第１エントリ情報ＥＤＡ［ｉ］に含まれる第２のエントリＲＮＢ番号［ｉ］を分離して第２読出回路２３Ｂに出力する機能と、前記第１エントリ情報ＥＤＡ［ｉ］から前記第２のエントリ番号ＥＮＢ［ｉ］を分離した残りの部分を、第１エントリ情報ＥＤＡ［ｉ］として各比較回路３ｎ（ｎ＝１〜Ｎ）に分配する機能とを有している。なお、前記第１検索テーブル２２Ａが出力した第１エントリ情報ＥＤＡ［ｉ］を第１読出回路２３Ａと各比較回路３ｎに分配する簡易的な構成であってもよい。
【０１８９】
第２読出回路２３Ｂは、第２読出アドレス生成部４１Ｂと第２読出有効生成部４２Ｂを有している。
このうち、第２読出有効生成部４２Ｂは、図３と同一であり、各比較回路３ｎ（ｎ＝１〜Ｎ）から読出判定結果ＲＪｎ［ｉ］を入力し、１個以上の読出判定結果ＲＪｎ［ｉ］が読出ありを示すとき、有効を示す第２読出有効信号ＲＥＢ［ｉ］を出力する機能を有している。
また、第２読出アドレス生成部４１Ｂは、第２のエントリ番号ＥＮＢ［ｉ］を入力し、前記番号を基に第２読出アドレスＲＡＢ［ｉ］を生成して出力する機能を有している。
【０１９０】
第２検索テーブル２２Ｂは、各エントリｊに第２エントリ情報ＥＤＢ［ｊ］を格納するが、前記エントリ番号ｊから、前記第２エントリ情報ＥＤＢ［ｊ］が記憶された、第２検索テーブル２２Ｂの実態である第２テーブルメモリＭ２のアドレスを、簡単な演算によって生成することができる。
前記演算の例は、第２テーブルメモリのアドレス＝ｊ−１であり、前記例では、エントリ番号ｊの第２エントリ情報ＥＤＢ［ｊ］は、第２テーブルメモリのアドレス＝ｊ−１にあるワードに記憶される。なお、他の演算方法によってエントリ番号からアドレスを生成する方法であってもよい。前記例では、エントリ番号＝第２のエントリ番号ＥＮＢ［ｉ］のとき、第２読出アドレス生成部４１Ｂが第２検索テーブル２２Ｂに出力する第２読出アドレスＲＡＢ［ｉ］＝第２のエントリ番号ＥＮＢ［ｉ］−１となる。
【０１９１】
第１読出有効信号ＲＥＡ［ｉ］と第１読出アドレスＲＡＡ［ｉ］を第１検索テーブル２２Ａが入力してから時間Ｔｄの経過後に、第２読出有効信号ＲＥＢ［ｉ］が第２検索テーブル２２Ｂに入力される。前記Ｔｄは、第１読出アドレスＲＡＡ［ｉ］と第１読出有効信号ＲＥＡ［ｉ］を第１検索テーブル２２Ａが入力してから第１エントリ情報ＥＤＡ［ｉ］を出力するまでの遅延と、第２のエントリ番号分離部４３Ａが第１エントリ情報ＥＤＡ［ｉ］を入力してから各比較回路３ｎに第２のエントリ番号ＥＮＢ［ｉ］を除く前記第１エントリ情報ＥＤＡ［ｉ］を分配するまでの遅延と、比較回路３ｎが前記第１エントリ情報ＥＤＡ［ｉ］を入力してから前記入力に基づいて読出判定結果ＲＪｎ［ｉ］を出力するまでの遅延、第２読出有効生成部４２Ｂが各比較回路３ｎから読出判定結果ＲＪｎ［ｉ］を入力してから前記に基づいて第２読出有効信号ＲＥＢ［ｉ］を出力するまでの遅延と、の合計である。
【０１９２】
一方、第２読出アドレスＲＡＢ［ｉ］を第２読出有効信号ＲＥＢ［ｉ］と同時に入力することが求められる第２テーブルメモリの場合、第１読出有効信号ＲＥＡ［ｉ］と第１読出アドレスＲＡＡ［ｉ］を第１検索テーブル２２Ａが入力してから第２読出アドレスＲＡＢ［ｉ］が第２検索テーブル２２Ｂに入力されるまでの時間はＴｄとなる必要がある。このＴｄは、第１読出アドレスＲＡＡ［ｉ］と第１読出有効信号ＲＥＡ［ｉ］を第１検索テーブル２２Ａが入力してから第１エントリ情報ＥＤＡ［ｉ］を出力するまでの遅延と、第２のエントリ番号分離部４３Ａが前記第１エントリ情報ＥＤＡ［ｉ］を入力してから第２のエントリ番号ＥＮＢ［ｉ］を抽出して出力するまでの遅延と、第２読出アドレス生成部４１Ｂが前記第２のエントリ番号ＥＮＢ［ｉ］を入力してから第２読出アドレスＲＡＢ［ｉ］を出力するまでの遅延と、の合計である。
【０１９３】
［第３の実施の形態の動作］
次に、図９を参照して、本実施の形態にかかる検索処理部１２の動作について説明する。図９は、第３の実施の形態にかかる検索処理部の動作を示すタイムチャートであり、比較回路３ｎの個数Ｎが２の場合を例として、検索処理部１２内の各信号について時間の経過（左から右）に伴う変化が示されている。
【０１９４】
図９において、検索状態ＳＳｎ（ｎ＝１，２）、第１読出有効信号ＲＥＡ［ｉ］、第１読出アドレスＲＡＡ［ｉ］、第１エントリ情報ＥＤＡ［ｉ］、読出判定結果ＲＪｎ［ｉ］（ｎ＝１，２）の各信号、および第２読出有効信号ＲＥＢ［ｉ］の各信号は、前述した図４と同一であり、ここでの説明は省略する。
【０１９５】
第２のエントリ番号ＥＮＢ［ｉ］は、第１検索テーブル２２Ａから読み出された第１エントリ情報ＥＤＡ［ｉ］に含まれる第２のエントリ番号ＥＮＢ［ｉ］を第２のエントリ番号分離部４３Ａが抽出して出力した信号であり、第１検索テーブル２２Ａへの第１読出有効信号ＲＥＡ［ｉ］が有効時の第１読出アドレスＲＡＡ［ｉ］の入力から２サイクル後に出力される。図９の例では、第１エントリ情報ＥＤＡ［ｉ］に、第２のエントリ番号ＥＮＢ［ｉ−１］の値が含まれている。
【０１９６】
前記２サイクルの遅延は、前記第１テーブルメモリが入力したアドレス等の信号をラッチすることで生じる１クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる１クロックの遅延とを合わせた値であり、第１テーブルメモリの種類やメモリと前記第１読出回路２３Ａ等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。また固定遅延ではなくメモリの状況（例えば外部からの前記メモリへのアクセスの有無など）によって前記遅延量が変動する構成も可能である。
【０１９７】
第２のエントリ番号分離部４３Ａが第１エントリ情報ＥＤＡ［ｉ］を入力してから、第２のエントリ番号ＥＮＢ［ｉ］を抽出して出力するまでの遅延は、本例ではクロック０サイクル分としている。これは、第１エントリ情報ＥＤＡ［ｉ］の予め定められたビット列を第２のエントリ番号ＥＮＢ［ｉ］として取り出す簡易な処理であるため、遅延なしと見なせる。
なお、図９の信号を表す各箱内の数字は信号値である第２のエントリ番号ＥＮＢｉ（１〜８；第２検索テーブル２２Ｂのエントリ数＝８）を表し、前記箱内の−の記号は第２エントリ情報ＥＤＢなし、すなわち第１エントリ情報ＥＤＡのみで判定可能なエントリであったことを意味する。
【０１９８】
また、図９の第１エントリ情報ＥＤＡ［４］，［９］に含まれる第２のエントリ番号ＥＮＢ［４］，［９］の値がともに５となっているように、第１検索テーブル２２Ａの各々異なるエントリから読み出されている第１エントリ情報ＥＤＡの各々に含まれた第２のエントリ番号ＥＮＢの値が、同じ値をとることも可能であり、第１検索テーブル２２Ａのエントリが異なっていても、第２検索テーブル２２Ｂの同じエントリを参照することができる。すなわち、検索条件の一部が一致している複数のエントリがある場合に、そのエントリ情報を第２検索テーブル２２Ｂに格納することで検索条件の縮約が可能となる。
【０１９９】
これらによって、第２検索テーブル２２Ｂを、第１検索テーブル２２Ａのエントリ数よりも少ないエントリ数とすることが可能である。本例では、第１検索テーブル２２Ａのエントリ数＝１６に対して第２検索テーブル２２Ｂのエントリ数＝８としている。したがって、第２検索テーブル２２Ｂのための第２テーブルメモリのメモリ量を削減することができる。
【０２００】
第２読出アドレスＲＡＢ［ｉ］は、第２のエントリ番号ＥＮＢ［ｉ］に対応する第２テーブルメモリのアドレスであり、第２読出有効信号ＲＥＢ［ｉ］が第２検索テーブル２２Ｂに入力されるのと同時に、第２検索テーブル２２Ｂに出力される。第２読出アドレスＲＡＢ［ｉ］を前記第２読出有効信号ＲＥＢ［ｉ］と同時に第２検索テーブル２２Ｂに入力するために、第２読出アドレス生成部４１Ｂは、第２のエントリ番号ＥＮＢ［ｉ］の入力から第２読出アドレスＲＡＢ［ｉ］を出力するまでの遅延をクロック１サイクル分としている。
【０２０１】
つまり、第１読出アドレスＲＡＡ［ｉ］と第１読出有効信号ＲＥＡ［ｉ］を第１検索テーブル２２Ａが入力してから、第１エントリ情報ＥＤＡ［ｉ］を出力するまでの遅延２サイクル、第２のエントリ番号分離部４３Ａが前記第１エントリ情報ＥＤＡ［ｉ］を入力してから第２のエントリ番号ＥＮＢ［ｉ］を抽出して出力するまでの遅延０サイクル、第２読出アドレス生成部４１Ｂが前記第２のエントリ番号ＥＮＢ［ｉ］を入力してから第２読出アドレスＲＡＢ［ｉ］を出力するまでの遅延１サイクル、の合計が、本例のＴｄの値３サイクルとなる。
【０２０２】
なお、図９では、第２エントリ情報ＥＤＢ［ｉ］を読み出すための信号である、第２読出有効信号ＲＥＢ［ｉ］と第２読出アドレスＲＡＢ［ｉ］は、第２テーブルメモリに同時に入力される例を示している。しかし、同時入力ではないメモリ、例えば第２読出有効信号ＲＥＢ［ｉ］を第２読出アドレスＲＡＢ［ｉ］より所定のサイクルだけ先に入力する必要があるメモリ）を第２テーブルメモリとして使用することも可能であり、この場合は、第２読出回路２３Ｂは、メモリによって規定された信号入力方法に従って、第２読出有効信号ＲＥＢ［ｉ］や第２読出アドレスＲＡＢ［ｉ］を生成することになる。
【０２０３】
また、第２読出有効信号ＲＥＢ［ｉ］と第２読出アドレスＲＡＢ［ｉ］によって読み出すのではなく、コマンドを用いてアクセスが行われるメモリの場合、第２読出回路２３Ｂは、第２読出有効信号ＲＥＢ［ｉ］が有効を示す場合に、第２読出アドレスＲＡＢ［ｉ］の位置に記憶されたデータを読み出すための第２読出コマンド［ｉ］を生成することとなる。
第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］は、第２読出有効信号ＲＥＢ［ｉ］が有効時の第２読出アドレスＲＡＢ［ｉ］の入力から２サイクル後に第２検索テーブル２２Ｂから読み出されたデータである、第２エントリ情報ＥＤＢ［ｉ］が出力さ
れる。
【０２０４】
なお、前記２サイクルの遅延は、前記第２テーブルメモリが入力したアドレス等の信号をラッチすることで生じる１クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる１クロックの遅延を合わせた値である。第２テーブルメモリの種類やメモリと前記第２読出回路２３Ｂ等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。なお、図９の信号を表す各箱内の数字はエントリ番号ｉ（１〜１６）を表しており、第２読出有効信号ＲＥＢ［ｉ］が有効を示したエントリ１＝５，７，１０，１２について、出力されている。
【０２０５】
［第３の実施の形態の効果］
このように、本実施の形態は、前記第１エントリ情報ＥＤＡが、当該第１エントリ情報ＥＤＡと対応する前記第２エントリ情報ＥＤＢのエントリ番号を示す第２エントリ番号ＥＮＢを含み、前記第１読出回路２３Ａが、前記第１検索テーブル２２Ａから読み出された前記第１エントリ情報ＥＤＡから前記第２エントリ番号ＥＮＢを分離し、前記第２エントリ番号ＥＮＢを除いた前記第１エントリ情報ＥＤＡを前記比較回路３ｎへ出力するとともに、分離した前記第２エントリ番号ＥＮＢを前記第２読出回路２３Ｂへ出力し、前記比較回路３ｎが、前記第１検索テーブル２２Ａに代えて、前記第１読出回路２３Ａから前記第２エントリ番号ＥＮＢを除いた前記第１エントリ情報ＥＤＡを入力し、前記第２読出回路２３Ｂは、前記第１読出回路２３Ａからの前記第２エントリ番号ＥＮＢに基づき、前記第２読出信号ＲＢを生成して前記第２検索テーブル２２Ｂへ出力するようにしたものである。
【０２０６】
これにより、第２エントリ情報ＥＤＢが不要であって、第１エントリ情報ＥＤＡのみで適合判定できるエントリがあるとき、前記エントリについては第２検索テーブル２２Ｂのエントリを用意しなくとも済む。したがって、第２検索テーブル２２Ｂのエントリ数は、第１検索テーブル２２Ａのエントリ数よりも少ないエントリ数で実現できるため、前記第２検索テーブル２２Ｂの回路規模（メモリ量）を削減することができる。
【０２０７】
［第３の実施の形態の動作例］
次に、本実施の形態にかかるフレーム検索処理装置１０の動作例について説明する。
ここでは、フレーム情報抽出部１１から入力されるフレーム情報ＦＤとして、フレーム検索処理装置１０が入力した入力フレームＦＩＮのＩＰヘッダ内に格納されている送信元ＩＰアドレスと宛先ＩＰアドレスを含む場合を例として取り上げて説明する。
上記フレーム情報ＦＤに対する検索を行う場合の、第１エントリ情報ＥＤＡと第２エントリ情報ＥＤＢの例を、以下に説明する。
【０２０８】
［ケース１］
第１エントリ情報ＥＤＡ＝エントリに適合するための宛先ＩＰアドレスとそのマスク長と第２エントリ情報ＥＤＢの読出フラグと第２のエントリ番号ＥＮＢ
第２エントリ情報ＥＤＢ＝エントリに適合するための送信元ＩＰアドレスとそのマスク長
【０２０９】
第１の実施の形態の［ケース４］に示したように、宛先ＩＰアドレスのみに対する条件により適合と判定するエントリと、宛先ＩＰアドレスと送信元ＩＰアドレスの両方に対する条件により適合と判定するエントリの、両方がある検索を行う装置がある。例えば、宛先ＩＰアドレスだけを見て廃棄判定するエントリと、宛先ＩＰアドレスと送信元ＩＰアドレスの両方を見て廃棄判定するエントリが混在するような検索テーブルの場合である。
【０２１０】
このように、全てのエントリに共通の検索条件を表すエントリ情報（前記例では宛先ＩＰアドレスとそのマスク長）と、一部のエントリのみに追加される検索条件を表すエントリ情報（前記例では送信元ＩＰアドレスとそのマスク長）とがある場合に、前者のエントリ情報を第１エントリ情報ＥＤＡとし、後者のエントリ情報を第２エントリ情報ＥＤＢとすることによって、後者のエントリ情報を必要としないエントリに対する適合判定を行うとき、検索テーブルから後者のエントリ情報を読み出さないので、検索テーブルの読み出しビット数を削減することができ、第１の実施の形態の［ケース４］と同様の効果が得られる。
【０２１１】
さらに、第２エントリ情報ＥＤＢを記憶する第２検索テーブル２２Ｂのエントリ数を、第１エントリ情報ＥＤＡを記憶する第１検索テーブル２２Ａのエントリ数より少なくなることが期待できるので、第２検索テーブル２２Ｂに必要なメモリの量を、第１の実施の形態の［ケース４］のように、第１検索テーブル２２Ａと第２検索テーブル２２Ｂのエントリ数が同数である場合と比較して、削減することができる。
【０２１２】
例えば、全エントリ（２５６エントリ）のうち１／２のエントリが宛先ＩＰアドレスのみを条件とするエントリで残りのエントリが宛先ＩＰアドレスに加えて送信元ＩＰアドレスも条件とするエントリの場合、第１の実施の形態の検索処理部１２であれば、１エントリあたりの平均読み出しビット数は、５６．５ビット（＝宛先ＩＰアドレス３２ビット＋宛先ＩＰアドレスのマスク長５ビット＋第２エントリ情報ＥＤＢの読出フラグ１ビット＋（送信元ＩＰアドレス３２ビット＋送信元ＩＰアドレスのマスク長５ビット）／２）となり、メモリ量は、１９２００ビット（＝（送信元ＩＰアドレス３２ビット＋宛先ＩＰアドレス３２ビット＋送信元ＩＰアドレスのマスク長５ビット＋宛先ＩＰアドレスのマスク長５ビット＋第２エントリ情報ＥＤＢの読出フラグ１ビット）＊２５６）となる。
【０２１３】
一方、本例では、１エントリあたりの平均読み出しビット数は、６４．５ビット（＝宛先ＩＰアドレス３２ビット＋宛先ＩＰアドレスのマスク長５ビット＋第２エントリ情報ＥＤＢの読出フラグ１ビット＋第２のエントリ番号７ビット＋（送信元ＩＰアドレス３２ビット＋送信元ＩＰアドレスのマスク長５ビット）／２）となり、メモリ量は、１６２５６ビット（＝（送信元ＩＰアドレス３２ビット＋送信元ＩＰアドレスのマスク長５ビット＋第２エントリ情報ＥＤＢの読出フラグ１ビット＋第２のエントリ番号７ビット）＊２５６＋（送信元ＩＰアドレス３２ビット＋送信元ＩＰアドレスのマスク長５ビット）＊２５６／２）となる。
【０２１４】
このように、第１の実施の形態の［ケース４］よりも第２のエントリ番号ＥＮＢのビット数分だけ、本例の１エントリあたりの平均読み出しビット数の方が大きくなるが、第２検索テーブル２２Ｂのエントリ数の削減によって、検索テーブルのメモリ量を削減することができる。前記効果は、第２エントリ情報ＥＤＢを必要としないエントリ数の割合が大きいほど顕著になる。
【０２１５】
［ケース２］
第１エントリ情報ＥＤＡ＝第２エントリ情報ＥＤＢから算出されたハッシュ値・エントリ情報種別・第２のエントリ番号ＥＮＢ、
第２−１のエントリ情報＝エントリに適合するための送信元ＩＰｖ４アドレスと宛先ＩＰｖ４アドレス、
第２−２のエントリ情報＝エントリに適合するための送信元ＩＰｖ６アドレスと宛先ＩＰｖ６アドレス
【０２１６】
第１の実施の形態の［ケース３］に示したように、第１エントリ情報ＥＤＡとして検索条件を表すビット列のハッシュ値を用いることで、検索テーブルからの読み出しビット数を削減することができる。例えば、ＩＰｖ６の宛先ＩＰアドレス（１２８ビット）や送信元ＩＰアドレス（１２８ビット）のように、ビット数が多いフレーム情報ＦＤと検索条件に対してハッシュ演算を施し、前記ハッシュ化によって短縮されたビット列間の一致比較を行い、前記比較で一致したときのみハッシュ化前のビット列を検索テーブルから読み出して適合判定を行う。
【０２１７】
前記検索条件のハッシュ化されたビット列を第１エントリ情報ＥＤＡとして第１検索テーブル２２Ａに記憶し、ハッシュ化前のビット列を第２エントリ情報ＥＤＢとして第２検索テーブル２２Ｂに記憶する。ＩＰｖ４のフレームとＩＰｖ６のフレームの両方に対して検索処理を行う装置では、検索条件であるＩＰｖ４のＩＰアドレスとＩＰｖ６のＩＰアドレスのどちらか一方が、第２検索テーブル２２Ｂのエントリに記憶される。
【０２１８】
このとき、ＩＰｖ６のＩＰアドレスが１２８ビットであるのに対してＩＰｖ４のＩＰアドレスが３２ビットであるため、第２検索テーブル２２Ｂの各エントリがビット数が大きいＩＰｖ６のＩＰアドレスを格納できるようにしておき、ＩＰｖ４のＩＰアドレスを格納するときは、ＩＰｖ６のＩＰアドレスを格納する領域の一部を使用し残りの領域を空けておくことになる。
このように、ビット数の異なる検索条件の一方をエントリに格納する場合には、ビット数の短い方の検索条件を格納したエントリには使用されない記憶領域が発生することになるため、検索テーブルの使用されない記憶領域によって検索テーブル用メモリの規模が必要以上に大きくなる。
【０２１９】
そこで、本例では、上記のハッシュ値の利用と併せて、第１の実施の形態の［ケース５］に示したように、第１エントリ情報ＥＤＡにエントリ情報種別（本例ではＩＰｖ４かＩＰｖ６かを示す値）を加えるとともに、ＩＰｖ４用の第２−１の検索テーブルとＩＰｖ６用の第２−２の検索テーブルを設ける。
各エントリの検索条件はＩＰｖ４かＩＰｖ６かのどちらか一方であるため、前記第２−１の検索テーブルの使用されているエントリ数と前記第２−２の検索テーブルの使用されているエントリ数とを合わせた数が、前記第１検索テーブル２２Ａの使用されたエントリ数となる。
【０２２０】
さらに、第１エントリ情報ＥＤＡに第２のエントリ番号ＥＮＢを加え、前記エントリ情報種別がＩＰｖ４を示す場合には、前記第２のエントリ番号ＥＮＢを前記エントリの検索条件であるＩＰｖ４のＩＰアドレスを格納している第２−１の検索テーブルのエントリ番号として使用する。同様に、前記エントリ情報種別がＩＰｖ６を示す場合には、前記第２のエントリ番号ＥＮＢを前記エントリの検索条件であるＩＰｖ６のＩＰアドレスを格納している第２−２の検索テーブルのエントリ番号として使用する。
【０２２１】
上記において、各比較回路３ｎは、第２−１の検索テーブルあるいは第２−２の検索テーブルから、前記第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］を読み出すか否かの第２検索テーブル読出判定を、第１適合判定結果ＣＪＡに基づいて得る。
前記第１適合判定とは、フレーム情報ＦＤが、第１エントリ情報ＥＤＡ［ｉ］に含まれるエントリ情報種別［ｉ］に適合し（上記例ではフレームがＩＰｖ４の場合に前記エントリ情報種別がＩＰｖ４を示すか、あるいは、フレームがＩＰｖ６の場合に前記エントリ情報種別がＩＰｖ６を示す）、かつ、第２エントリ情報ＥＤＢから算出されたハッシュ値がフレーム情報ＦＤから算出されたハッシュ値と一致する（上記例ではフレーム情報ＦＤに含まれる送信元ＩＰアドレスと宛先ＩＰアドレスのビット列に対して所定のハッシュ演算（例えばＳＲＣ８など）を施したフレーム情報ＦＤのハッシュ値と第１エントリ情報ＥＤＡ［ｉ］に含まれるハッシュ値が一致する）場合に適合と判定するものである。
【０２２２】
また、第２検索テーブル読出判定は、前記第１適合判定において適合と判定されたとき、第２検索テーブル２２Ｂから第２エントリ情報ＥＤＢを読み出すと判定する。さらに、前記比較回路３ｎは、第２読出回路２３Ｂに対して前記読出判定結果ＲＪｎ［ｉ］を出力する。
また、第１読出回路２３Ａは、前記第１エントリ情報ＥＤＡ［ｉ］に含まれる第２のエントリ番号ＥＮＢ［ｉ］と、前記エントリ情報種別［ｉ］を、第２読出回路２３Ｂに対して出力する。
【０２２３】
前記第２読出回路２３Ｂは、少なくとも１個の比較回路３ｎからの読出判定結果ＲＪｎ［ｉ］が第２エントリ情報ＥＤＢの読み出しありを示す場合に、前記エントリ情報種別［ｉ］に応じて、第２エントリ情報ＥＤＢを読み出す検索テーブルを、第２−１の検索テーブルと第２−２の検索テーブルから選択し、前記選択した検索テーブルの、前記第２のエントリ番号ＥＮＢ［ｉ］が示すエントリから、第２エントリ情報ＥＤＢ［第２のエントリ番号ＥＮＢ［ｉ］］を読み出して、前記比較回路３ｎに入力する。
【０２２４】
このように、本例では、ビット数の異なる検索条件（ＩＰｖ４とＩＰｖ６の各ＩＰアドレス）の一方をエントリに格納する場合に、各々異なる検索テーブル（第２−１の検索テーブルと第２−２の検索テーブル）に分けて記憶するため、１個の検索テーブルのエントリに格納する場合に生じていた使用されない記憶領域が発生しないため、検索テーブル用メモリの規模を抑制することができる。
【０２２５】
例えば、全エントリ（２５６エントリ）のうち１／２のエントリがＩＰｖ４を条件とするエントリで残りのエントリがＩＰｖ６を条件とするエントリである場合、第１の実施の形態の検索処理部１２であれば、メモリ量は、６７８４０ビット（＝（送信元ＩＰアドレス１２８ビット＋宛先ＩＰアドレス１２８ビット＋ハッシュ値８ビット＋エントリ情報種別１ビット）＊２５６）となる。一方、本例では、メモリ量は、４５０５６ビット（＝（送信元ＩＰｖ６アドレス１２８ビット＋宛先ＩＰｖ６アドレス１２８ビット＋ハッシュ値８ビット＋エントリ情報種別１ビット＋第２のエントリ番号７ビット）＊１２８＋（送信元ＩＰｖ４アドレス３２ビット＋宛先ＩＰｖ４アドレス３２ビット＋ハッシュ値８ビット＋エントリ情報種別１ビット＋第２のエントリ番号７ビット）＊１２８）となる。
【０２２６】
なお、上記の検索テーブル構成の他にも、第２−１の検索テーブルを、ＩＰｖ４の宛先・送信元ＩＰアドレスが格納できる容量を持つエントリとし、ＩＰｖ６時には宛先・送信元ＩＰアドレスのうち下位３２ビット（ＩＰｖ４のＩＰアドレス長と同じビット数）を前記第２−１の検索テーブルに格納し、第２−２の検索テーブルには、ＩＰｖ６のＩＰアドレスの上位９６ｂｉｔ分を格納する構成も可能である。
【０２２７】
この場合は、第１の実施の形態と同様に第１検索テーブル２２Ａのエントリ番号を使って前記第２−１の検索テーブルのエントリを読み出すとともに、エントリ情報種別がＩＰｖ６の場合に限って、第１エントリ情報ＥＤＡに含まれる第２のエントリ番号ＥＮＢが示す、第２−２の検索テーブルのエントリを読み出す。
これにより、検索テーブルのビット数削減とともに、全エントリをＩＰｖ４用として使用することもできるので、全エントリ（２５６エントリ）のうち１／２のエントリがＩＰｖ４を条件とするＩＰｖ４専用のエントリで残りのエントリがＩＰｖ６を条件とするＩＰｖ６専用のエントリである場合と比較して、ＩＰｖ４用のエントリに対するエントリ数の制限が緩和され、最大２倍のエントリ数まで設定可能となる。
【０２２８】
［第４の実施の形態］
次に、図１０を参照して、本発明の第４の実施の形態にかかるフレーム検索処理装置１０について説明する。図１０は、第４の実施の形態にかかる検索処理部の構成を示すブロック図である。
第１の実施の形態では、第１検索テーブル２２Ａから比較回路３ｎに対して第１エントリ情報ＥＤＡを出力する場合を例として説明した。本実施の形態では、第１読出回路２３Ａから比較回路３ｎに対して第１エントリ番号ＥＮＡを出力する場合について説明する。
【０２２９】
本実施の形態において、検索処理部１２には、主な回路部として、フレーム情報振分回路２１、第１検索テーブル２２Ａ、第２検索テーブル２２Ｂ、第１読出回路２３Ａ、第２読出回路２３Ｂ、Ｎ個の比較回路３ｎ（ｎ＝１〜Ｎ；Ｎは２以上の自然数）、および検索結果合流回路２４が設けられている。
【０２３０】
第１検索テーブル２２Ａは、Ｎｅ個（Ｎｅは１以上の自然数）のエントリｉ（ｉ＝１〜Ｎｅ）を有し、各エントリｉに第１エントリ情報ＥＤＡ［ｉ］を記憶する。
第２検索テーブル２２Ｂは、Ｎｅ個のエントリｊ（ｊ＝１〜Ｎｅ）を有し、各エントリｊに第２エントリ情報ＥＤＢ［ｊ］を記憶する。
【０２３１】
第１検索テーブル２２Ａは、第１読出回路２３Ａから第１読出信号ＲＡを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第１エントリ情報ＥＤＡ［ｉ］を読み出す。
同様に、第２検索テーブル２２Ｂは、第２読出回路２３Ｂから第２読出信号ＲＢを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第２エントリ情報ＥＤＢ［ｉ］を読み出す。
【０２３２】
第１の実施の形態では、第１検索テーブル２２Ａから第１エントリ情報ＥＤＡを１個ずつエントリ番号に従った順番で読み出していた。したがって、１個のフレームに対する検索処理に要する時間は、第１検索テーブル２２Ａから全てのエントリを読み出すのに必要な時間に依存する。
【０２３３】
例えば、第１検索テーブル２２Ａが２５６個のエントリを持ち、検索処理部１２の駆動に利用されるクロックの１サイクル毎に、前記１個のエントリを読み出す装置では、前記検索処理に要する時間は、第１検索テーブル２２Ａから全てのエントリを読み出すのに必要な時間＝２５６サイクルに、第１エントリ情報ＥＤＡ［ｉ］の読み出しから第２エントリ情報ＥＤＢ［ｉ］の読み出しまでに要する予め定められた一定の時間差Ｔｄ（例：３サイクル）と統合適合判定の時間（例：１サイクル）を合わせた、４サイクル程度の時間を加えた値（例：２６０サイクル）となる。
【０２３４】
つまり、各フレームに対する検索は、エントリ単位でのパイプライン処理によって１エントリあたり１サイクルで処理可能でありエントリ数と同数のサイクルの時間を要する。しかし、次のフレームに対する検索を開始するためには、前記パイプラインが空になるまでの時間、つまり、最後のエントリがパイプラインを抜けるまでの時間（＝時間Ｔｄ＋統合適合判定に要する時間）を加えておく必要がある。この加算時間は、４サイクル程度となる。このように、検索処理に要する時間のうち、第１検索テーブル２２Ａから全てのエントリを読み出すのに必要な時間が大部分を占める。
【０２３５】
なお、上記Ｔｄは、第１読出アドレスＲＡＡ［ｉ］と第１読出有効信号ＲＥＡ［ｉ］を第１検索テーブル２２Ａが入力してから第１エントリ情報ＥＤＡ［ｉ］を出力するまでの２サイクル分の遅延と、比較回路３ｎが前記第１エントリ情報ＥＤＡ［ｉ］を入力してから前記入力に基づいて読出判定結果ＲＪｎ［ｉ］を出力するまでの１サイクル分の遅延と、第２読出有効生成部４２Ｂが各比較回路３ｎから読出判定結果ＲＪｎ［ｉ］を入力してから前記に基づいて第２読出有効信号ＲＥＢ［ｉ］を出力するまでの遅延（本例では単純な論理和の演算であるため遅延なし）と、の合計である。
【０２３６】
第１検索テーブル２２Ａへの第１読出有効信号ＲＥＡ［ｉ］が有効時の第１読出アドレスＲＡＡ［ｉ］の入力から２サイクル後に出力されるのは、前記第１検索テーブル２２Ａ用のメモリに入力したアドレス等の信号をラッチすることで生じる１クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる１クロックの遅延があるためである。
【０２３７】
したがって、第１の実施の形態によれば、検索テーブルのエントリ数の増大に応じて検索処理時間が長くなるが、性能（＝単位時間に検索できるフレームの個数）を維持するためには、比較回路３ｎの並列度を増大させる（ｎを大きくする）必要がある。すなわち、検索テーブルのエントリ数増大によって、検索テーブルとして用いられるメモリの規模が増大するのみならず、比較回路３ｎの回路規模が増大するという問題が発生する。
【０２３８】
そこで、本実施の形態では、第１読出回路２３Ａは、Ｎｒ個（Ｎｒは１以上の自然数、Ｎｅ＝Ｎｒ＊Ｎｌの関係がありＮｌは１以上の自然数）の第１エントリ情報ＥＤＡ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ、第１エントリ番号ｋは０以上かつＮｌ未満の整数）を第１検索テーブル２２Ａから並列して同時に読み出して、前記Ｎｒ個の第１エントリ情報ＥＤＡを各比較回路３ｎに分配するようにしたものである。また、前記読み出し毎に、第１検索テーブル読出制御変数の値を＋１し、最大値（Ｎｌ−１）に達した時点で０に戻るようにしたものである。
【０２３９】
これにより、前記第１検索テーブル２２Ａからの読み出しは、Ｎｒ個ずつ第１エントリ情報ＥＤＡをエントリ番号に従った順番で行われるため、第１検索テーブル２２Ａから全てのエントリを読み出すのに必要な時間は、第１の実施の形態で必要な時間の１／Ｎｒとなる。ただし、前記には後述する第１検索テーブル２２Ａの読出停止を示す信号が入力されている期間は含まれていない。
【０２４０】
なお、第１読出回路２３Ａは、各比較回路３ｎ（ｎ＝１〜Ｎ）が出力する検索中であるか否かを示す検索状態ＳＳｎを入力し、何れか１個の比較回路３ｎの検索状態ＳＳｎが検索中である場合に、第１検索テーブル２２Ａの読み出しを行う。
さらに、全ての比較回路３ｎについて、その検索状態ＳＳｎが検索停止中であることを示す場合は、第１検索テーブル２２Ａの読み出しを行わない。これにより、第１検索テーブル２２Ａの読み出しが不要な期間の消費電力を削減できる。
【０２４１】
フレーム情報振分回路２１は、フレーム情報抽出部１１からフレーム情報ＦＤを入力し、所定の比較回路選択方法に基づいて、前記フレーム情報ＦＤの出力先である比較回路３ｎを決定し、前記比較回路３ｎに対して前記フレーム情報ＦＤをフレーム情報ＦＤｎとして出力する機能を有している。
【０２４２】
比較回路選択方法の例は、各比較回路３ｎが検索処理中であるか否かを判定し、前記検索処理を行っていない比較回路３ｎの１つを選択することである。この比較回路選択方法を簡単な回路で実現する例として、フレーム情報ＦＤを入力したとき前回入力時に選択した比較回路３ｎの番号ｎを＋１した番号の比較回路３（ｎ＋１）を選択する方法がある。この比較回路選択方法において、前回入力時に選択した比較回路３ｎの番号ｎがＮの場合は、番号１の比較回路３１を選択して、巡回的に比較回路３ｎを選択することになる。
【０２４３】
比較回路３ｎは、フレーム情報振分回路２１からのフレーム情報ＦＤｎ（ｎ＝１〜Ｎ）の入力に応じて、前記フレーム情報ＦＤｎに適合する検索条件を持ったエントリを検索するための検索処理を実行する。
この検索処理において、比較回路３ｎは、入力されたフレーム情報ＦＤｎと、第１読出回路２３Ａが第１検索テーブル２２Ａのエントリｉ（ｉ＝１〜Ｎｒ）から読み出した第１エントリ情報ＥＤＡ［ｉ］とに基づいて、前記フレーム情報ＦＤｎが、前記各第１エントリ情報ＥＤＡ［ｉ］が表す検索条件に適合するか否かを判定するための第１適合判定を行って、回路内部信号として第１適合判定結果ＣＪＡｎ［ｉ］（図示せず）を得る。
【０２４４】
また、比較回路３ｎは、得られた前記第１適合判定結果ＣＪＡｎ［ｉ］に基づいて、第２検索テーブル２２Ｂのエントリｉ（ｉ＝１〜Ｎｒ）から、第２エントリ情報ＥＤＢ［ｉ］を読み出すか否かを判定するための第２検索テーブル読出判定を行い、得られた読出判定結果ＲＪｎ［ｉ］を第２読出回路２３Ｂに出力する。
【０２４５】
さらに、比較回路３ｎは、第１適合判定結果ＣＪＡｎ［ｉ］を得た後、第２エントリ情報ＥＤＢ［ｉ］とフレーム情報ＦＤｎに基づいて第２適合判定結果ＣＪＢ［ｉ］を得て、前記第１適合判定結果ＣＪＡｎ［ｉ］と前記第２適合判定結果ＣＪＢ［ｉ］に基づいて、エントリｉが前記フレーム情報ＦＤｎに適合するか否かを示す統合適合判定を行う。
このため、比較回路３ｎは、統合適合判定を行うまでの期間、前記第１適合判定結果ＣＪＡｎ［ｉ］を一時的に保持しておく必要がある。なお、前記期間中に得られる別のエントリの第１適合判定結果ＣＪＡについても同様に保持しておく必要がある。
【０２４６】
第２読出回路２３Ｂは、各比較回路３ｎから各々Ｎｒ個の読出判定結果ＲＪｎ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）を入力する。ここで、Ｎｒ個のエントリ番号ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒの各々について、少なくとも１個の比較回路３ｎから第２検索テーブル読出ありを示す読出判定結果ＲＪｎ［ｉ］を入力したとき、前記エントリ番号であるｉを第２読出回路２３Ｂが持つ、後述の第２読出待ちキュー４４Ｂに蓄積する。したがって、第２読出待ちキュー４４Ｂには、第２検索テーブル２２Ｂから読み出す必要があるエントリの番号が前記番号順に蓄積されることになる。
【０２４７】
なお、第２読出待ちキュー４４Ｂに前記エントリ番号の蓄積を行うことによって前記キューが所定の個数Ｎｓ以上のエントリ番号を蓄積した場合は、下記に示す前記キューからのエントリ番号の取出しによって蓄積可能な状態になるまで、前記キューへの蓄積を一時的に停止する。さらに、第１読出回路２３Ａに対して、第１検索テーブル２２Ａから第１エントリ情報ＥＤＡの読み出しを停止させるための、第１読出停止信号ＲＳＡを出力し、前記信号を受けて、第１読出回路２３Ａは第１エントリ情報ＥＤＡの読み出しを行わない。
【０２４８】
これにより、第２検索テーブル読出待ちエントリキューのオーバーフローを防止する。この際、第１検索テーブル２２Ａに対する判定速度（１クロックあたりに判定するエントリ数＝Ｎｒ）は第２検索テーブル２２Ｂに対する判定速度（１クロックあたりに判定できるエントリ数＝１）よりも大きい。
このため、第２読出待ちキュー４４Ｂが前記オーバーフロー防止のための処理を行わないと、第１検索テーブル２２Ａに対する判定で第２検索テーブル読出となるエントリ数が第２検索テーブル２２Ｂに対する判定速度を超える状況が発生したとき、第２読出待ちキュー４４Ｂの蓄積が増大して、前記キューに蓄積可能な最大数を超えた（オーバーフローの発生）時点で、第２検索テーブル２２Ｂに対する判定ができないエントリが発生するなどの問題が生じる。
【０２４９】
前記第１検索テーブル読出の一時停止によって、第１検索テーブル２２Ａから全てのエントリを読み出すための時間が増大するため、前記第１検索テーブル２２Ａからの読み出しを一時停止した時間だけ、各比較回路３ｎの検索処理開始から終了までの時間が増加することになる。
例えば、Ｎｅ＝２５６，  Ｎｒ＝８としたとき、前記一時停止がないと第１検索テーブル２２Ａの全エントリを読み出すために要する時間は、１クロックにつきＮｒ個のエントリを読み出すので、３２サイクル（＝Ｎｅ／Ｎｒ）となるが、一時停止が最大となるケースである全エントリが第２検索テーブル２２Ｂの読出ありとなった場合は、１クロックにつき１個のエントリとなってしまうため、２５６サイクルとなる。
【０２５０】
したがって、各比較回路３ｎの検索処理に要する時間は一定値ではなく、比較回路３ｎに入力されたフレーム情報ＦＤや、第１エントリ情報ＥＤＡおよび第２エントリ情報ＥＤＢの設定に応じて変化する。このため、比較回路３ｎの検索処理に要する時間が大きくなることで、全比較回路３ｎが検索処理中のときフレーム情報ＦＤが装置に入力される可能性が生じる場合は、前記フレーム情報ＦＤの検索処理部１２への入力を、前記入力可能となるまで、すなわち、１個以上の比較回路３ｎで検索処理が終了するまで、一時的に停止させる。
【０２５１】
また、第２読出回路２３Ｂは、前記第２読出待ちキュー４４Ｂに蓄積されているエントリ番号ｊを１個ずつ取り出して、第２検索テーブル２２Ｂから第２エントリ情報ＥＤＢ［ｊ］を読み出し、前記第２エントリ情報ＥＤＢ［ｊ］を、そのエントリ番号ｊとともに、各比較回路３ｎ（ｎ＝１〜Ｎ）に分配する。
【０２５２】
前記キューから取り出されるエントリ番号は、ＦＩＦＯ機能に従って最も以前に蓄積されたものから取り出されるため、蓄積された順、すなわち、第２検索テーブル２２Ｂから読み出す必要があるエントリをエントリ番号順に並べたときの順で、取り出されることになる。なお、第２読出待ちキュー４４Ｂが空のとき、すなわち、エントリ番号が蓄積されていない状態のときは、第２読出回路２３Ｂは第２検索テーブル２２Ｂからの読み出しを行わない。
【０２５３】
前記比較回路３ｎは、前記フレーム情報ＦＤｎと、前記第２エントリ情報ＥＤＢ［ｊ］とに基づいて、前記フレーム情報ＦＤｎが前記第２エントリ情報ＥＤＢ［ｊ］に適合するか否かの第２適合判定を行って、第２適合判定結果ＣＪＢ［ｊ］を得る。
さらに、前記比較回路３ｎは、エントリｊについて、第１エントリ情報ＥＤＡ［ｊ］が第１検索テーブル２２Ａから読み出された後に得られる第１適合判定結果ＣＪＡｎ［ｊ］と、その後の第２エントリ情報ＥＤＢ［ｊ］が第２検索テーブル２２Ｂから読み出された後に得られる第２適合判定結果ＣＪＢ［ｊ］に基づいて、統合適合判定を行う。前記統合適合判定により適合と判断されたエントリが見つかった時点、あるいは、全てのエントリについてフレーム情報ＦＤｎとの判定を終えた時点で、前記比較回路３ｎは検索を終了し、検索結果ＳＲｎを出力する。
【０２５４】
なお、第１エントリ情報ＥＤＡまたは第２エントリ情報ＥＤＢにエントリの適用優先度を含み、統合適合判定により適合とされたエントリのなかで前記エントリの適用優先度が最も高いエントリを見つける例では、統合適合判定により適合とされたエントリが１個見つかった時点で検索を終了するのではなく、全エントリについて統合適合判定を終えるか、上限の適用優先度を持つエントリが見つかった場合にのみ、検索を終了する。
前記比較回路３ｎは、前記統合適合判定によって得られた結果（例えば前記判定において適合したエントリの番号ｉや前記エントリの第２エントリ情報ＥＤＢ［ｉ］に含まれる結果を示す情報；通過／廃棄を示す情報や送出先を示すポート番号など）を、検索結果ＳＲｎとして、検索結果合流回路２４に対して出力する。
【０２５５】
また、各比較回路３ｎが第１エントリ情報ＥＤＡ［ｉ］を得てから第２エントリ情報ＥＤＢ［ｉ］を得るまでの時間が一定時間Ｔｄである第１の実施の形態や第２の実施の形態とは異なり、本例では、第２読出回路２３Ｂ内の第２読出待ちキュー４４Ｂの状態によって、前記時間は変動する。
第１の実施の形態や第２の実施の形態では、比較回路３ｎが第１エントリ情報ＥＤＡを得てから時間Ｔｄを経過した時点で第２検索テーブル２２Ｂから入力した第２エントリ情報ＥＤＢは、同一エントリ番号に対応することが保証されているので、第２エントリ情報ＥＤＢを入力したとき前記エントリ番号が入力される必要はない。
【０２５６】
しかし、本例では、第１エントリ情報ＥＤＡを得てから一定時間を経過したとき入力した第２エントリ情報ＥＤＢが同一エントリ番号に対応することが保証されないため、第２エントリ情報ＥＤＢと併せて前記エントリ番号を入力する。
各比較回路３ｎは、適合を示す第１適合判定結果ＣＪＡｎ［ｉ］を得るとともに第２検索テーブル読出ありを示す読出判定結果ＲＪｎ［ｉ］を得たときのエントリ番号ｉ（第２適合判定待ちエントリ番号）を一時的に保持しておく。
【０２５７】
そして、第２エントリ情報ＥＤＢ［ｊ］と併せて入力された前記エントリ番号ｊと、前記保持したエントリ番号ｉとが一致した場合に、フレーム情報ＦＤｎが前記第２エントリ情報ＥＤＢ［ｊ］に適合するか否かの第２適合判定を行って、第２適合判定結果ＣＪＢ［ｊ］を得る。
また、第２適合判定結果ＣＪＢ［ｊ］を得る前に、前記エントリｊ以降のエントリｉ’についても第１適合判定を行ってエントリ番号ｉ’を一時的に保持しておくことにより検索処理速度を向上させることができるため、第２適合判定待ちエントリ番号をキューに保持する。
【０２５８】
各比較回路３ｎが全てのエントリについてフレーム情報ＦＤｎとの判定を終えた時点を知る判定終了特定方法の例として、フレーム情報ＦＤｎを比較回路３ｎが入力し検索を開始したときの第１エントリ番号ＥＮＡを保持しておき、第１検索テーブル２２Ａの各エントリの読み出しが一巡して第１エントリ番号ＥＮＡが前記保持していた値に達したタイミングを用いる方法がある。
【０２５９】
次に、図１１を参照して、本実施の形態にかかる第１読出回路２３Ａおよび第２読出回路２３Ｂについて説明する。図１１は、第４の実施の形態にかかる検索処理部の要部を示すブロック図である。
【０２６０】
第１読出回路２３Ａは、クロックに合わせて、１サイクル前に出力した第１エントリ番号ｋを＋１する更新を行い、第１読出アドレスＲＡＡ［ｋ］として出力する機能を有している。ただし、装置の動作開始時と、第１エントリ番号ｋがＮｌとなった場合は０を出力する。また、第１読出停止信号ＲＳＡが停止を示すときは、前記第１エントリ番号ｋの更新を行わない。
【０２６１】
また、第１読出回路２３Ａは、前記第１エントリ番号ｋ（ただし、第１読出停止信号ＲＳＡが停止を示すときは、第１検索テーブル２２Ａのエントリ番号の範囲外の値である所定の無効値）を、所定の時間（第１検索テーブル２２Ａが第１エントリ情報ＥＤＡ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）を出力するまでの時間）だけ、遅延させて出力する。これにより、各比較回路３ｎに第１エントリ情報ＥＤＡ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）と同時に、第１エントリ番号ｋが入力される。また、第１読出停止信号ＲＳＡによって、第１検索テーブル２２Ａから読み出しが停止中であることを、所定の無効値を示す前記第１エントリ番号ｋによって各比較回路３ｎに通知する。
【０２６２】
また、第１読出回路２３Ａは、各比較回路３ｎ（ｎ＝１〜Ｎ）から、前記比較回路３ｎが検索中であるか検索停止中であるかを示す検索状態ＳＳｎを入力し、１個以上の比較回路３ｎに対応する前記検索状態ＳＳｎが検索中を示しており、かつ、第１読出停止信号ＲＳＡが停止を示していない期間に、有効を示す第１読出有効信号ＲＥＡ［ｋ］を出力する。また、前記以外の期間は無効を示す第１読出有効信号ＲＥＡ［ｋ］を出力する。
なお、全比較回路３ｎ（ｎ＝１〜Ｎ）から検索停止を示す検索状態ＳＳｎを入力している期間、または、第１読出停止信号ＲＳＡが停止を示す期間は、無効を示す第１読出有効信号ＲＥＡ［ｋ］を出力する。
【０２６３】
第１検索テーブル２２Ａは、第１テーブルメモリＭ１によって実現されており、前記メモリの各アドレスｋ（ｋ＝０〜Ｎｌ）に位置する各ワードには、Ｎｒ個の第１エントリ情報ＥＤＡ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）が記憶される。
第１検索テーブル２２Ａは、第１読出アドレスＲＡＡ［ｋ］と第１読出有効信号ＲＥＡ［ｋ］を第１読出回路２３Ａから入力し、前記第１読出有効信号ＲＥＡ［ｋ］が有効を示すとき、前記第１テーブルメモリから前記第１読出アドレスＲＡＡ［ｋ］が示す位置に記憶されているＮｒ個の第１エントリ情報ＥＤＡ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）を読み出して、各比較回路３ｎ（ｎ＝１〜Ｎ）に分配する。また、前記第１読出有効信号ＲＥＡ［ｋ］が無効を示すときは前記読み出しと分配を行わない。
【０２６４】
比較回路３ｎは、フレーム情報振分回路２１から入力されたフレーム情報ＦＤｎを保持し、前記保持しているフレーム情報ＦＤｎと、クロックサイクル毎に入力されたＮｒ個の第１エントリ情報ＥＤＡ［ｉ］の各々が表す検索条件が適合するか否かの第１適合判定を行って、クロックサイクル毎にＮｒ個の第１適合判定結果ＣＪＡｎ［ｉ］を得る。さらに、第２検索テーブル２２ＢからＮｒ個の第２エントリ情報ＥＤＢ［ｉ］の各々について読み出すか否かの第２検索テーブル読出判定を行って、クロックサイクル毎に第２読出回路２３Ｂに前記Ｎｒ個の読出判定結果ＲＪｎ［ｉ］を出力する。
【０２６５】
また、比較回路３ｎは、第１読出回路２３Ａから第１エントリ番号ｋを入力し、前記入力時点から所定の時間だけ、すなわち読出判定結果ＲＪｎ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）を出力するまでの時間だけ、遅延させて前記値を第２読出回路２３Ｂへ出力する。これにより、読出判定結果ＲＪｎ［ｉ］と対応する第１エントリ番号ｋが同時に出力されることになる。
なお、第１エントリ番号ｋが所定の無効値を示す場合は、前記と同時に入力された第１エントリ情報ＥＤＡ［ｉ］を用いた第１適合判定や第２検索テーブル読出判定を行わない。これは、前記第１エントリ情報ＥＤＡ［ｉ］は第１検索テーブル２２Ａから読み出された値ではなく無効であるためである。
【０２６６】
第２読出回路２３Ｂは、第２読出有効生成部４２Ｂと、第２読出待ちキュー４４Ｂと、第２読出信号生成部から構成される。
第２読出有効生成部４２Ｂは、クロックサイクル毎に、比較回路３ｎ（ｎ＝１〜Ｎ）の各々から、Ｎｒ個の読出判定結果ＲＪｎ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）を入力する。前記各比較回路３ｎから入力された各エントリｉの読出判定結果ＲＪｎ［ｉ］に１個以上の読出ありを示す結果が含まれる場合に、有効を示す第２読出有効信号ＲＥＢ［ｉ］を出力し、全て読出なしを示す場合は無効を示す第２読出有効信号ＲＥＢ［ｉ］を出力する。これにより、クロックサイクル毎に、Ｎｒ個のエントリｉ（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）について前記第２読出有効信号ＲＥＢ［ｉ］が出力されることになる。
【０２６７】
第２読出待ちキュー４４Ｂは、任意の１個の比較回路３ｎが出力した第１エントリ番号ｋをクロックサイクル毎に入力する。なお、全比較回路３ｎは、同時に同じ値の第１エントリ番号ｋを入力し同じ時間だけ遅延させて出力するので、同時に同じ値の第１エントリ番号ｋを出力しており、どの比較回路３ｎが出力した第１エントリ番号ｋを採用してもよい。
【０２６８】
さらに、第２読出待ちキュー４４Ｂは、第２読出有効生成部４２Ｂから、クロックサイクル毎にＮｒ個のエントリｉ（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）について前記第２読出有効信号ＲＥＢ［ｉ］を入力する。この際、有効を示す前記第２読出有効信号ＲＥＢ［ｉ］を受けた場合に、前記入力した第１エントリ番号ｋを基に前記エントリ番号ｉを生成して、前記生成した番号をキュー（ＦＩＦＯ）に蓄積する。また、エントリ番号ｉは、例えば入力されたＮｒ個の第２読出有効信号ＲＥＢ［ｉ］のうち３番目が有効を示しているときは、エントリ番号ｉをＮｒ＊ｋ＋３という演算によって生成できる。なお、無効を示す第２読出有効信号ＲＥＢ［ｉ’］のエントリ番号ｉ’は蓄積しない。
【０２６９】
また、第２読出待ちキュー４４Ｂは、前記キューに所定の個数Ｎｓ以上のエントリ番号が蓄積されている期間については、停止を示す第１読出停止信号ＲＳＡを出力する。また、クロックに合わせて、前記キューに蓄積されているエントリ番号を取出して第２のエントリ番号ｊとして出力する。この際、前記キューが空（蓄積なし）の場合は、エントリ番号の無効値（エントリ番号の範囲外の値である所定の無効値；例えば０）を出力する。
なお、有効を示す第２読出有効信号ＲＥＢ［ｉ］のエントリ番号ｉを前記キューに入力するのではなく、Ｎｒ個の第２読出有効信号ＲＥＢ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）のうち１個以上が有効を示しているとき、第１エントリ番号ｋと、Ｎｒ個の第２読出有効信号ＲＥＢ［ｉ］を表すビット列を前記キューに入力する方法によっても、上記と同じ機能を実現可能である。
【０２７０】
第２読出信号生成部は、第２読出待ちキュー４４Ｂから第２のエントリ番号ｊを入力し、前記エントリ番号の値が有効な範囲にある場合に、前記第２のエントリ番号ｊを基に、第２読出アドレスＲＡＢ［ｊ］を生成して出力する。また、前記第２のエントリ番号ＥＮＢｊの値が所定の無効値である場合に無効を示し、前記以外の場合に有効を示す、第２読出有効信号ＲＥＢ［ｊ］を生成して出力する。また、前記第２のエントリ番号ｊを入力時点から所定の時間（第２検索テーブル２２Ｂが第２エントリ情報ＥＤＢ［ｊ］を出力するまでの時間）だけ遅延させて前記値を出力する。これにより、各比較回路３ｎに第２エントリ情報ＥＤＢ［ｊ］と対応する第２のエントリ番号ｊが同時に入力されることになる。
【０２７１】
第２検索テーブル２２Ｂは、各エントリｊに第２エントリ情報ＥＤＢ［ｊ］を格納するが、前記エントリ番号ｊから、前記第２エントリ情報ＥＤＢ［ｊ］が記憶された、第２検索テーブル２２Ｂの実態である第２テーブルメモリのアドレスを、簡単な演算によって生成することができる。前記演算の例は、第２テーブルメモリのアドレス＝ｊ−１であり、前記例では、エントリ番号ｊの第２エントリ情報ＥＤＢ［ｊ］は、第２テーブルメモリのアドレス＝ｊ−１にあるワードに記憶される。
なお、他の演算方法によってエントリ番号からアドレスを生成する方法であってもよい。前記例では、エントリ番号＝第２のエントリ番号ＥＮＢ［ｉ］のとき、第２読出アドレス生成部４１Ｂが第２検索テーブル２２Ｂに出力する第２読出アドレスＲＡＢ［ｉ］＝第２のエントリ番号ＥＮＢ［ｉ］−１となる。
【０２７２】
第１エントリ番号ｋとＮｒ個の第１エントリ情報ＥＤＡ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）が同時に各比較回路３ｎに入力される理由は、同時に入力されたエントリ番号ｋとエントリ情報［ｉ］とが対応している、つまり、入力されたＮｒ個のエントリ情報がどのエントリのものかを知るために、前記エントリ情報と同時に入力されたエントリ番号を用いることができる。
したがって、第１エントリ番号ｋとＮｒ個の第１エントリ情報ＥＤＡ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）が同時に入力する方法以外にも、第１エントリ番号ｋの入力とＮｒ個の第１エントリ情報ＥＤＡ［ｉ］の入力を固定の時間差とする方法によっても、前記エントリ番号とエントリ情報の対応づけが可能である。
【０２７３】
また、各比較回路３ｎから第１エントリ番号ｋとＮｒ個の読出判定結果ＲＪｎ［ｉ］（ｉ＝Ｎｒ＊ｋ＋１，Ｎｒ＊ｋ＋２，…，Ｎｒ＊ｋ＋Ｎｒ）が同時に第２読出回路２３Ｂに入力される理由や、第２のエントリ番号ｊと第２エントリ情報ＥＤＢ［ｊ］が同時に各比較回路３ｎに入力される理由についても前記と同様であり、入力されたエントリ番号とエントリ情報や読出判定の結果とを同時入力という方法によって対応づけている。
本実施の形態において、上記以外の構成については、第１の実施の形態と同様であり、ここでの説明は省略する。
【０２７４】
［第４の実施の形態の動作］
次に、図１２および図１３を参照して、本実施の形態にかかる検索処理部１２の動作について説明する。図１２は、第４の実施の形態にかかる検索処理部の動作を示すタイムチャートである。図１３は、第４の実施の形態にかかる検索処理部の動作を示すタイムチャート（続き）である。これら図１２および図１３では、比較回路３ｎの個数が２の場合であって、エントリ数Ｎｒが２の場合を例として、検索処理部１２内の各信号について時間の経過（左から右）に伴う変化が示されている。
【０２７５】
図１２および図１３において、検索状態ＳＳｎ（ｎ＝１，２）の各信号は、Ｈレベル：検索処理中／Ｌレベル：検索停止中を表す信号であり、比較回路３ｎにフレーム情報ＦＤｎ（ｎ＝１，２）が入力された時点でＨレベル：検索処理中となり、１個のフレーム情報ＦＤｎに対して全エントリ（Ｎｅ＝１６）をテーブルから読み出した後（Ｎｒ＝２であるため最短でＮｅ／Ｎｒ＝８のクロック経過後）にＬレベル：検索処理停止となる。
【０２７６】
第１読出有効信号ＲＥＡ［ｋ］の信号は、Ｈレベル：有効・Ｌレベル：無効を表す信号であり、検索状態ＳＳ１と検索状態ＳＳ２の各信号の論理和に、第１読出停止信号ＲＳＡの論理積を行った信号となる。つまり、検索状態ＳＳ１または検索状態ＳＳ２が検索処理中（１個以上の比較回路３ｎが検索中）で、かつ、第１読出停止信号ＲＳＡが読出ありのとき、読出有効となる第１テーブルメモリの第１読出アドレスＲＡＡ［ｋ］の位置に記憶された、２個（Ｎｒ＝２）の第１エントリ情報ＥＤＡ［ｉ］（ｉ＝２＊ｋ＋１，２＊ｋ＋２）が並列して同時に読み出されることになる。
【０２７７】
第１読出アドレスＲＡＡ［ｋ］の信号は、０〜７（Ｎｌ＝Ｎｅ／Ｎｒ＝１６／２＝８，  ｋ＝０〜Ｎｌ−１）の範囲で繰り返しクロック毎に＋１ずつ増加する。ただし、値が７の次は０となる。図１２および図１３の第１読出アドレスＲＡＡ［ｋ］を表す各箱内の数字はエントリ番号ｋ（０〜７）を表しており、エントリ番号ｋの前記信号値はｋであり、エントリ番号ｋと第１読出アドレスＲＡＡ［ｋ］は同じ値となる。
つまり、第１テーブルメモリのアドレスｋに、第１エントリ情報ＥＤＡ［２＊ｋ＋１］と第１エントリ情報ＥＤＡ［２＊ｋ＋２］を記憶しておき、クロックサイクル毎に、エントリ番号をインクリメントさせて、前記エントリｋに対応する２個の第１エントリ情報ＥＤＡを第１テーブルメモリから並列して同時に読み出す。
【０２７８】
なお、第１エントリ情報ＥＤＡ［ｉ］を読み出すための信号である、第１読出有効信号ＲＥＡ［ｋ］と第１読出アドレスＲＡＡ［ｋ］は、第１テーブルメモリに同時に入力される例を示しているが、同時入力ではないメモリ、例えば第１読出有効信号ＲＥＡ［ｋ］を第１読出アドレスＲＡＡ［ｋ］より所定のサイクルだけ先に入力する必要があるメモリを、第１テーブルメモリとして使用することも可能である。この場合は、第１読出回路２３Ａは、メモリによって規定された信号入力方法に従って、第１読出有効信号ＲＥＡ［ｋ］や第１読出アドレスＲＡＡ［ｋ］を生成することになる。
【０２７９】
また、第１読出有効信号ＲＥＡ［ｋ］と第１読出アドレスＲＡＡ［ｋ］によって読み出すのではなく、コマンドを用いてアクセスするメモリの場合は、第１読出回路２３Ａは、第１読出有効信号ＲＥＡ［ｋ］が有効を示す場合に、第１読出アドレスＲＡＡ［ｋ］の位置に記憶されたデータを読み出すための第１読出コマンド［ｋ］を生成することとなる。
【０２８０】
第１エントリ情報ＥＤＡ［ｉ］は、第１読出有効信号ＲＥＡ［ｋ］が有効時の第１読出アドレスＲＡＡ［ｋ］の入力から２サイクル後に第１検索テーブル２２Ａから読み出されたデータである、２個の第１エントリ情報ＥＤＡ［ｉ］（ｉ＝２＊ｋ＋１，２＊ｋ＋２）が出力される。図１２および図１３の第１エントリ情報ＥＤＡ［ｉ］を表す各箱内の数字はエントリ番号ｉ（１〜１６）を表している。
【０２８１】
なお、前記２サイクルの遅延は、前記第１テーブルメモリが入力したアドレス等の信号をラッチすることで生じる１クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる１クロックの遅延を合わせた値である。第１テーブルメモリの種類やメモリと前記第１読出回路２３Ａ等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。
【０２８２】
また、固定遅延ではなくメモリの状況、例えば外部からの前記メモリへのアクセスの有無などによって、前記遅延量が変動する構成も可能である。この場合、前記の構成では、前記遅延の変動に応じて第１エントリ番号ｋを各比較回路３ｎに入力する必要があるため、前記遅延の変動を知りえない第１読出回路２３Ａから第１エントリ番号ｋを入力するのではなく、第１検索テーブル２２Ａから第１エントリ番号ｋを入力する。
【０２８３】
読出判定結果ＲＪｎ［ｉ］（ｎ＝１，２）の各信号は、読出有無を表す信号であり、図１２および図１３の箱が示された期間が、読出ありを示している。また、前記各箱内の数字はエントリ番号ｉ（１〜１６）を表している。
各比較回路３ｎ（ｎ＝１，２）は、第１エントリ情報ＥＤＡ［ｉ］の入力から１サイクル後に読出判定結果ＲＪｎ［ｉ］を出力する。前記１サイクルの遅延は、比較回路３ｎで読出判定結果ＲＪｎ［ｉ］をラッチして出力することによって生じる。なお、第２検索テーブル読出判定ｎが、第１エントリ情報ＥＤＡ［ｉ］とフレーム情報ＦＤｎの複雑な演算を必要とする場合は、１サイクルより大きい遅延となる場合もある。
【０２８４】
ここで、図１２および図１３において、読出判定結果ＲＪ１［ｉ］は、エントリ番号ｉが７，１０，１１，１３について、読出ありを示す場合が図示されている。つまり、比較回路３１は、第２エントリ情報ＥＤＢ［７］，［１０］，［１１］，［１３］を読み出すという第２検索テーブル読出判定を得たことになる。
同様に、読出判定結果ＲＪ２［ｉ］は、エントリ番号ｉが８，９，１２，４について読出ありを示す場合が図示されている。つまり、比較回路３２は、第２エントリ情報ＥＤＢ［８］，［９］，［１２］，［４］を読み出すという第２検索テーブル読出判定を得たことになる。
【０２８５】
第２読出待ちキュー４４Ｂは、上記の読出判定結果ＲＪｎ［ｉ］が有効となったエントリ番号である、７，８，９，１０，１１，１２，１３，４をキューに入力して蓄積し、クロック１サイクルにつき１個のエントリ番号を取り出して出力する。なお、クロック１サイクルにつき、最大２個（Ｎｌ＝２）のエントリ番号をキューに入力する可能性がある。このため、キューのオーバーフローが生じないよう、キューに蓄積したエントリ番号の個数が３個以上のとき、すなわち、第１読出停止信号ＲＳＡを出力するためのキューの閾値を３と設定した場合、第１読出停止信号ＲＳＡによって、第１検索テーブル２２Ａからの第１エントリ情報ＥＤＡの読み出しを停止させる。
【０２８６】
前記停止中は、第１エントリ情報ＥＤＡが各比較回路３ｎに入力されないため、結果として、前記キューへのエントリ番号の入力が停止する。なお、停止を示す第１読出停止信号ＲＳＡを出力しても、キューへのエントリ番号の入力が停止するまでには一定の遅延があるため、前記閾値を超えて前記遅延時間内にキューへの入力があった場合にもオーバーフローを生じない最大蓄積量をキューに設ける必要がある。
【０２８７】
第２読出待ちキュー４４Ｂには、図１３に示すように、時刻Ｔ１に、まず前記キューにエントリ番号７とエントリ番号８が同時に入力されるが、前記キューが空の状態であるためエントリ番号７については前記キューに蓄積されることなく、第２読出信号生成部に出力され、第２読出信号生成部から第２読出アドレスＲＡＢ［７］として第２検索テーブル２２Ｂに出力される。前記エントリ番号８についてはキューに蓄積される。次のクロックサイクルでは、前記キューにエントリ番号９とエントリ番号１０が同時に入力されるが、前記キューにエントリ番号８が蓄積中であるため、前記エントリ番号９，１０は前記キューに蓄積される。また、前記キューに蓄積中であったエントリ番号８については前記キューから出力され、第２読出信号生成部から第２読出アドレスＲＡＢ［８］として第２検索テーブル２２Ｂに出力される。
【０２８８】
時刻Ｔ２のクロックサイクルでは、前記キューにエントリ番号１１とエントリ番号１２が同時に入力されるが、前記キューにエントリ番号９，１０が蓄積中であるため、前記エントリ番号１１，１２は前記キューに蓄積される。また、前記キューに蓄積中であったエントリ番号９については前記キューから出力され、第２読出信号生成部から第２読出アドレスＲＡＢ［９］として第２検索テーブル２２Ｂに出力される。ここで、キューに蓄積されたエントリ番号は１０，１１，１２の３個となって第１読出停止信号ＲＳＡを出力する閾値に達するので、第１読出停止信号ＲＳＡが読出停止を示す値（Ｌ）に変化している。
【０２８９】
時刻Ｔ３のクロックサイクルでは、前記キューにエントリ番号１３が入力されるが、前記キューにエントリ番号１０，１１，１２が蓄積中であるため、前記エントリ番号１３は前記キューに蓄積される。また、前記キューに蓄積中であったエントリ番号１０については前記キューから出力され、第２読出信号生成部から第２読出アドレスＲＡＢ［１０］として第２検索テーブル２２Ｂに出力される。ここで、キューに蓄積されたエントリ番号は１１，１２，１３の３個であるため、第１読出停止信号ＲＳＡを出力する閾値に達しているので、前クロックサイクルから引き続き、第１読出停止信号ＲＳＡが読出停止を示す値（Ｌ）を維持する。
【０２９０】
時刻Ｔ４のクロックサイクルでは、入力がなく、前記キューに蓄積中であったエントリ番号１１については前記キューから出力され、第２読出信号生成部から第２読出アドレスＲＡＢ［１１］として第２検索テーブル２２Ｂに出力される。ここで、キューに蓄積されたエントリ番号は１１，１２の２個となって第１読出停止信号ＲＳＡを出力する閾値未満となるため、第１読出停止信号ＲＳＡが読出ありを示す値（Ｈ）に変化している。
【０２９１】
時刻Ｔ５のクロックサイクルも同様に入力がなく、前記キューに蓄積中であったエントリ番号１２については前記キューから出力され、第２読出信号生成部から第２読出アドレスＲＡＢ［１２］として第２検索テーブル２２Ｂに出力される。
時刻Ｔ６のクロックサイクルも同様に入力がなく、前記キューに蓄積中であったエントリ番号１３については前記キューから出力され、第２読出信号生成部から第２読出アドレスＲＡＢ［１３］として第２検索テーブル２２Ｂに出力される。なお、第１読出停止信号ＲＳＡによって読出停止となっていないならば、エントリ番号４の入力があるタイミングであるが、３サイクル前に第１読出停止信号ＲＳＡが読出停止を出力したことによって、第１エントリ情報ＥＤＡ［３］，［４］以後の読出が２サイクル分遅れている。
【０２９２】
時刻Ｔ７のクロックサイクルも同様に入力がなく、前記キューも空となったため、第２読出有効信号ＲＥＢは無効となる。
時刻Ｔ８のエントリ番号４が、第１検索テーブル読出停止によって２サイクル分遅れて入力される。前記キューが空の状態であるためエントリ番号４については前記キューに蓄積されることなく、第２読出信号生成部に出力され、第２読出信号生成部から第２読出アドレスＲＡＢ［４］として第２検索テーブル２２Ｂに出力される。
【０２９３】
第２エントリ情報ＥＤＢ［ｉ］は、第２読出有効信号ＲＥＢ［ｉ］が有効時の第２読出アドレスＲＡＢ［ｉ］の入力から２サイクル後に第２検索テーブル２２Ｂから読み出されたデータである、第２エントリ情報ＥＤＢ［ｉ］が出力される。なお、前記２サイクルの遅延は、前記第２テーブルメモリが入力したアドレス等の信号をラッチすることで生じる１クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる１クロックの遅延を合わせた値であり、第２テーブルメモリの種類やメモリと前記第２読出回路２３Ｂ等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。なお、図１２および図１３の第２エントリ情報ＥＤＢ［ｉ］を表す各箱内の数字はエントリ番号ｉ（１〜１６）を表しており、第２読出有効信号ＲＥＢ［ｉ］が有効を示したエントリ７，８，９，１０，１１，１２，１３，４について、出力されている。
【０２９４】
［第４の実施の形態の効果］
このように、本実施の形態は、前記第１検索テーブル２２Ａが、アドレスごとに、複数のエントリと対応するＮｒ個の第１エントリ情報ＥＤＡを記憶し、前記比較回路３ｍが、前記第１検索テーブル２２Ａから並列して同時に読み出されたＮｒ個の第１エントリ情報ＥＤＡを前記フレーム情報ＦＤと比較し、これら第１エントリ情報ＥＤＡごとに得られたＮｒ個の前記読出判定結果ＲＪｎを前記第２読出回路２３Ｂへ出力し、前記第２読出回路２３Ｂが、前記比較回路３ｍから出力されたＮｒ個の前記読出判定結果ＲＪｎのいずれかが読み出しありを示す場合には、当該読出判定結果ＲＪｎを得た前記第１エントリ情報ＥＤＡと対応する前記第２エントリ情報ＥＤＢを示す第２エントリ番号ＥＮＢを第２読出待ちキュー４４Ｂへ順次蓄積し、前記第２読出待ちキュー４４Ｂに蓄積されている前記第２エントリ番号ＥＮＢを順次読み出して、前記第２検索テーブル２２Ｂの当該第２エントリ番号のエントリから前記第２エントリ情報ＥＤＢを読み出して前記比較回路３ｎへ出力するための第２読出信号ＲＢを前記第２検索テーブル２２Ｂへ出力するようにしたものである。
【０２９５】
これにより、第１の実施の形態では、第１検索テーブル２２Ａから第１エントリ情報ＥＤＡを１個ずつ読み出していたのに対して、本例ではＮｒ個の第１エントリ情報ＥＤＡを一度に読み出すので、第１検索テーブル２２Ａから全てのエントリを読み出すのに必要な時間を、第１の実施の形態での構成と比較して１／Ｎｒに短縮することができる。
【０２９６】
第２検索テーブル２２Ｂの読み出しが多数生じることで、第２検索テーブル読出待ちエントリキューが満杯となり、第１読出停止信号ＲＳＡによって第１検索テーブル２２Ａの読み出しを中断することになった場合、本例での第１検索テーブル２２Ａから全てのエントリを読み出すのに必要な時間は増大する。しかし、第１エントリ情報ＥＤＡが示す検索条件にフレーム情報ＦＤが適合する可能性を低く抑えることで、例えば第１の実施の形態で述べたケース３のように、第１エントリ情報ＥＤＡにハッシュを用いて前記ハッシュ値のビット数を増やすことで、第２検索テーブル２２Ｂの読み出し回数を削減できるため、前記時間増大を抑制可能である。
【０２９７】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【０２９８】
１０…フレーム検索処理装置、１１…フレーム情報抽出部、１２…検索処理部、１３…フレームバッファ、１４…フレーム合成部、２１…フレーム情報振分回路、２２Ａ…第１検索テーブル、２２Ｂ…第２検索テーブル、２３Ａ…第１読出回路、２３Ｂ…第２読出回路、２４…検索結果合流回路、３１，３２，３ｎ，３Ｎ…比較回路、４１Ａ…第１読出有効生成部、４１Ｂ…第２読出有効生成部、４２Ａ…第１読出アドレス生成部、４２Ｂ…第２読出アドレス生成部、４３Ａ…第２エントリ番号分離部、４４Ｂ…第２読出待ちキュー、Ｍ１…第１テーブルメモリ、Ｍ２…第２テーブルメモリ、Ｍ０…共通テーブルメモリ、ＦＩＮ…入力フレーム、ＦＤ，ＦＤ１，ＦＤ２，ＦＤｎ，ＦＤＮ…フレーム情報、ＳＳ，ＳＳ１，ＳＳ２，ＳＳｎ，ＳＳＮ…検索状態、ＳＲ，ＳＲ１，ＳＲ２，ＳＲｎ，ＳＲＮ…検索結果、ＦＯＵＴ…出力フレーム、ＲＡ…第１読出信号、ＲＡＡ…第１読出アドレス、ＲＥＡ…第１読出有効信号、ＲＢ…第２読出信号、ＲＡＢ…第２読出アドレス、ＲＥＢ…第２読出有効信号、ＲＡＤ…読出アドレス、ＥＤＡ…第１エントリ情報、ＥＤＢ…第２エントリ情報、ＥＮＡ…第１エントリ番号、ＥＮＢ…第２エントリ番号、ＲＪ，ＲＪｎ…読出判定結果、ＲＳＡ…第１読出停止信号。
【図１】
0005848185.tif 000002
【図２】
0005848185.tif 000003
【図３】
0005848185.tif 000004
【図４】
0005848185.tif 000005
【図５】
0005848185.tif 000006
【図６】
0005848185.tif 000007
【図７】
0005848185.tif 000008
【図８】
0005848185.tif 000009
【図９】
0005848185.tif 000010
【図１０】
0005848185.tif 000011
【図１１】
0005848185.tif 000012
【図１２】
0005848185.tif 000013
【図１３】
0005848185.tif 000014