JP5848185B2 - フレーム検索処理装置および方法 - Google Patents

フレーム検索処理装置および方法 Download PDF

Info

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
Application number
JP2012096289A
Other languages
English (en)
Other versions
JP2013225739A (ja
Inventor
健治 川合
健治 川合
直樹 三浦
直樹 三浦
川村 智明
智明 川村
勇輝 有川
勇輝 有川
浦野 正美
正美 浦野
衛 中西
衛 中西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012096289A priority Critical patent/JP5848185B2/ja
Publication of JP2013225739A publication Critical patent/JP2013225739A/ja
Application granted granted Critical
Publication of JP5848185B2 publication Critical patent/JP5848185B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、フレーム転送技術に関し、特に入力フレームに応じたフレーム処理を決めるための検索処理を行うフレーム検索処理技術に関する。
一般に、ルータやスイッチ、ブリッジなどのフレーム検索処理装置では、フレームの転送やフィルタリング、優先制御などを行う場合、入力フレームに応じたフレーム処理を決めるための検索処理を行う。
この検索処理では、入力フレームから、検索に必要な情報、例えば、VLAN IDやMACアドレスやIPアドレス等のヘッダ情報、入力したポートの番号、フレーム長、などの情報を、フレーム情報として抽出し、検索テーブルの各エントリに予め指定されている検索条件と比較して、当該入力フレームに適合する検索条件を持ったエントリを見つける処理が実行される。
フレーム検索処理装置は、入力フレームが入力された場合、まず、上記の検索処理を実行することによって、入力フレームから抽出したフレーム情報に適合する検索条件を持ったエントリを見つけ、このエントリに応じた検索結果、例えば、フレームを出力するポート番号、廃棄の有無、優先制御を行うときの優先度、フレームのヘッダ情報を書き換えるときの書き換え後の値などからなる検索結果を得る。
その後、フレーム検索処理装置は、得られた検索結果に基づいたフレーム処理を前記フレームに施す。このフレーム処理としては、例えば、検索結果のポート番号に対応したポートからフレームを出力する、検索結果が廃棄を示す場合にフレームを出力せず廃棄する、検索結果の優先度に応じたキューにフレームを蓄積する、フレームのヘッダ情報を検索結果の書換値に書き換える、などの処理がある。
このような検索処理を行うため、フレーム検索処理装置は、エントリ毎の検索条件を記憶する検索テーブルを備える。また、フレーム情報と検索テーブルに記憶された各検索条件とを比較し、適合の有無を判定する比較回路を備える。
上記の検索処理では、クロックサイクル毎に、検索テーブルから検索条件を表すエントリ情報を読み出し、これら検索条件をフレーム情報と比較する。検索テーブル内の全てのエントリについて上記比較を実施することにより、入力フレームに適合する検索条件を持ったエントリを検索テーブルから探し出す。
従来、このようなフレーム検索処理装置において、フレーム検索処理装置へのフレーム入力間隔よりも、1個のフレームに対する検索処理の所要時間の方が長い場合、つまり、エントリ数が多い場合や高速でフレームが入力される場合には、比較回路を並列化した構成を採用するという技術が提案されている(例えば、非特許文献1など参照)。
この技術では、例えば8個の比較回路を備え、8個のフレーム情報に対する検索処理が並列に実施されている。
これにより、1個の入力フレームに対する検索処理を開始してから完了するまでの時間に、7個のフレームを入力したとしても、これらのフレーム全てに対して検索処理を完遂できることになる。
また、1個の比較回路が検索処理を行う場合と比較して、並列化されたP個の比較回路が同時に検索処理を行う場合、検索テーブルからエントリ情報を読み出す回数が1/Pに削減されるため、消費電力を低減する効果を有する。
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.
しかしながら、このような従来技術では、入力フレームに応じたフレーム処理を決めるための検索処理において、フレーム単位で並列処理を行うものとなっているため、検索テーブルからエントリ情報を読み出すときに消費される電力は、エントリ情報のビット数に比例して増大するという問題があった。
例えば、検索条件が単純な場合、例えばVLAN IDに対する条件のみの場合には、前記検索条件を表すエントリ情報のビット数も小さいため、検索テーブルからエントリ情報を読み出したときの消費電力は小さい。
しかしながら、高度な検索処理を行う場合、例えばレイヤ2からレイヤ4までの各種ヘッダ情報を組み合わせた検索条件でフィルタリングを行うような場合、前記検索条件を表すエントリ情報のビット数が増大する。
例えば、検索条件がVLAN IDのみの場合、エントリ情報は12ビット程度であるが、検索条件としてVLAN IDに加えて宛先IPアドレスと宛先TCPポート番号とを組み合わせた場合、エントリ情報は60ビットとなる。
したがって、従来技術によれば、エントリ情報のビット数に比例して、検索テーブルからエントリ情報を読み出すときに消費される電力が増大するため、高度な検索処理を行う場合には、消費電力が大幅に増大することになる。
本発明はこのような課題を解決するためのものであり、エントリ情報のビット数が増大した場合でも消費電力の増加を抑制できるフレーム検索処理技術を提供することを目的としている。
このような目的を達成するために、本発明にかかるフレーム検索処理装置は、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、前記検索処理部は、前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第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つに対して、前記フレーム情報抽出部で得られた前記フレーム情報を振り分けるフレーム情報振分回路をさらに備えるものである。
また、上記フレーム検索処理装置の一構成例は、前記第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エントリ情報の読み出しを行わないようにしたものである。
本発明によれば、第1エントリ情報とフレーム情報との比較の結果、残りのエントリ情報である第2エントリ情報を読み出す必要があるか否かが判断され、読み出しが必要な場合に限って、第2エントリ情報が読み出されることになる。このため、一部のエントリ情報(第1エントリ情報)のみを読み出すエントリと、全てのエントリ情報(第1エントリ情報+第2エントリ情報)を読み出すエントリの2通りの場合が生じる。
したがって、全エントリについて全てのエントリ情報を読み出す必要がなくなるため、読み出すエントリ情報のビット数を削減することができる。このため、入力フレームに応じたフレーム処理を決めるための検索処理に用いる検索条件として、例えばVLAN IDに加えて宛先IPアドレスと宛先TCPポート番号とを組み合わせた場合など、エントリ情報のビット数が増大した場合でも、読み出すエントリ情報のビット数の増大を抑制することができ、結果としてフレーム検索処理に要する消費電力の増加を抑制することが可能となる。
第1の実施の形態にかかるフレーム検索処理装置の構成を示すブロック図である。 第1の実施の形態にかかるフレーム検索処理装置の検索処理部の構成を示すブロック図である。 第1の実施の形態にかかる検索処理部の要部を示すブロック図である。 第1の実施の形態にかかる検索処理部の動作を示すタイムチャートである。 第2の実施の形態にかかる検索処理部の要部を示すブロック図である。 第2の実施の形態にかかる検索処理部の動作を示すタイムチャートである。 第3の実施の形態にかかる検索処理部の構成を示すブロック図である。 第3の実施の形態にかかる検索処理部の要部を示すブロック図である。 第3の実施の形態にかかる検索処理部の動作を示すタイムチャートである。 第4の実施の形態にかかる検索処理部の構成を示すブロック図である。 第4の実施の形態にかかる検索処理部の要部を示すブロック図である。 第4の実施の形態にかかる検索処理部の動作を示すタイムチャートである。 第4の実施の形態にかかる検索処理部の動作を示すタイムチャート(続き)である。
次に、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
まず、図1を参照して、本発明の第1の実施の形態にかかるフレーム検索処理装置10について説明する。図1は、第1の実施の形態にかかるフレーム検索処理装置の構成を示すブロック図である。
このフレーム検索処理装置10には、主な機能部として、フレーム情報抽出部11、検索処理部12、フレームバッファ13、およびフレーム合成部14が設けられている。
フレーム情報抽出部11は、入力フレームFINに対して実行すべきフレーム処理を特定するためのフレーム情報FDを、前記入力フレームFINから抽出する機能を有している。
検索処理部12は、フレーム情報抽出部11で抽出したフレーム情報FDを、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームFINと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果SRを、前記入力フレームFINに対して実行すべきフレーム処理の内容を示す処理情報として出力する機能を有している。
フレームバッファ13は、前記入力フレームFINのフレーム情報FDに対する検索処理部12での検索処理により検索結果SRが得られるまで、当該入力フレームFINのデータを蓄積する機能を有している。
フレーム合成部14は、検索処理部12で得られた検索結果SRに基づいて、フレームバッファ13から出力された入力フレームFINのデータを書き換えて、出力フレームFOUTとして出力する機能を有している。
なお、図1では、検索処理部12で得られた検索結果SRに基づいて、入力フレームFINの書き換えを行う場合を例として説明したが、必ずしも入力フレームFINのデータの書き換えを伴わなくともよい。フレーム検索処理装置10において、入力フレームFINに関する廃棄の有無の検索や送信先の検索などのフレーム処理を行う場合は、フレーム合成部14を具備しない構成となる。
例えば、フレーム廃棄の有無を検索結果SRとして得る場合、つまり、フレームのフィルタリングを行う装置である場合、フレーム検索処理装置10は、検索結果SRがフレーム廃棄なしのときに、フレームバッファ13から前記入力フレームFINのデータを出力して装置外へと出力する。また、検索結果SRがフレーム廃棄ありのときに、フレームバッファ13から前記入力フレームFINのデータを空読みする、フレームバッファ13からのデータ読み出し位置を前記入力フレームFINの次に蓄積された入力フレームFINのデータ先頭位置に移動するなど、前記入力フレームFINの次に蓄積された入力フレームFINを出力する準備を行う。
また、送信先(出力ポート番号)を検索結果SRとして得る場合、つまり、複数ポートを持つフレーム転送装置である場合、フレーム検索処理装置10は、フレームバッファ13から前記入力フレームFINのデータを出力し、検索結果SRである出力ポート番号が示すポートから、装置外へと出力する。なお、入力フレームFINと検索結果SRとの同期が取れる場合には、必ずしもフレーム検索処理装置10にフレームバッファ13を備える必要はなく、次段の外部装置でフレームバッファ13の機能を実現すればよい。
次に、図2を参照して、検索処理部12の詳細な構成について説明する。
図2は、第1の実施の形態にかかるフレーム検索処理装置の検索処理部の構成を示すブロック図である。
この検索処理部12には、主な回路部として、フレーム情報振分回路21、第1検索テーブル22A、第2検索テーブル22B、第1読出回路23A、第2読出回路23B、N個の比較回路3n(n=1〜N;Nは2以上の自然数)、および検索結果合流回路24が設けられている。
フレーム情報振分回路21は、専用の信号処理回路からなり、フレーム情報抽出部11で得られたフレーム情報FDを、比較回路3nのうち適合エントリの検索中である比較回路以外のいずれか1つの比較回路3nに対して、フレーム情報FDnとして振り分ける機能を有している。なお、本実施の形態では、比較回路3nが複数並列的に設けられている場合を例として説明するが、これに限定されるものではなく、比較回路3nが1つの場合にも、同様に適用でき、この場合、フレーム情報振分回路21を省くことができる。
第1検索テーブル22Aは、半導体メモリなどの記憶装置からなり、エントリごとに、当該エントリと対応する検索条件の一部からなる第1エントリ情報を記憶する機能を有している。
第2検索テーブル22Bは、半導体メモリなどの記憶装置からなり、エントリごとに、当該エントリと対応する前記検索条件のうち第1エントリ情報以外の部分からなる第2エントリ情報を記憶する機能を有している。
第1読出回路23Aは、専用の信号処理回路からなり、第1検索テーブル22Aの各エントリから巡回的に第1エントリ情報EDAを読み出して、各比較回路3nへ出力するための第1読出信号RAを第1検索テーブル22Aへ出力する機能を有している。
第2読出回路23Bは、専用の信号処理回路からなり、第2検索テーブル22Bの各エントリから巡回的に第2エントリ情報EDBを読み出して、各比較回路3nへ出力するための第2読出信号を第2検索テーブル22Bへ出力する機能を有している。
検索結果合流回路24は、各比較回路3n(n=1〜N)から検索結果SRnを入力し、これらを検索結果SRとしてフレーム合成部14に対して順次出力する。
各比較回路3nは、専用の信号処理回路からなり、エントリごとに、第1検索テーブル22Aから読み出された第1エントリ情報EDAおよび第2検索テーブル22Bから読み出された第2エントリ情報EDBを、フレーム情報振分回路21からのフレーム情報FDnと比較することにより、当該エントリが入力フレームFINと適合する適合エントリか否かを判定する機能を有している。
これに加えて、これら比較回路3nは、対象となるエントリの第1エントリ情報EDAおよび第2エントリ情報EDBをフレーム情報FDnと比較する際、まず第1エントリ情報EDAをフレーム情報FDnと比較することにより、第1エントリ情報EDAがフレーム情報FDnと適合するか否か判定する機能と、第2エントリ情報EDBの読出要否を示す読出判定結果RJとして第2読出回路23Bへ出力する機能と、当該判定により得られた第1適合判定結果が適合を示す場合には、第2エントリ情報EDBをフレーム情報FDnと比較することにより、第2エントリ情報EDBがフレーム情報FDnと適合するか否か判定する機能と、当該判定により得られた第2適合判定結果が適合を示す場合には、当該エントリのエントリ番号、第1エントリ情報EDAの一部、または第2エントリ情報EDBの一部を、適合エントリと対応する検索結果SRnとして出力する機能とを有している。
さらに、第2読出回路23Bは、比較回路3nから出力された読出判定結果RJが読み出しあり(読出要)を示す場合に、第2検索テーブル22Bからの第2エントリ情報EDBの読み出しを行う機能と、読出判定結果RJが読み出しなし(読出不要)を示す場合には、第2検索テーブル22Bからの第2エントリ情報EDBの読み出しを行わない機能とを有している。
比較回路3nの個数Nについては、必ずしも2個以上でなくともよいが、N=1の場合はフレーム情報振分回路21を具備しない構成となる。検索処理部12がフレーム情報FDを入力してから、前記フレーム情報FDに対応した検索結果SRを得るまでの時間Ts内に、入力されるフレーム情報FDの最大個数Nmaxとした場合、NをNmax以上とすることにより、フレーム情報FDに対して検索結果SRを得ることを保証できる。
なお、NがNmaxより小さい場合、検索処理部12がフレーム情報FDを高いレート、すなわち単位時間Tcあたりに入力されるフレーム情報FDの数がN/Tcより大きくなるレートで入力したとき、全ての比較回路3nが既入力のフレーム情報FDnに対する検索処理を行っている状況が発生する可能性がある。このような状況では、検索処理部12が入力したフレーム情報FDに対する検索結果SRを得られないため、フレーム情報FDを抽出した入力フレームFINには、本来の検索結果SRを適用できなくなる。
第1検索テーブル22Aと第2検索テーブル22Bの各々は、Ne個(Neは1以上の自然数)のエントリi(i=1〜Ne)を有する。第1検索テーブル22Aは各エントリiに第1エントリ情報EDA[i]を記憶する。また、第2検索テーブル22Bは各エントリiに第2エントリ情報EDB[i]を記憶する。
第1検索テーブル22Aのエントリiに記憶された第1エントリ情報EDA[i]と、第2検索テーブル22Bのうち第1エントリ情報EDA[i]と同一エントリ番号のエントリiに記憶された第2エントリ情報EDB[i]とのセットが、前述した従来技術におけるエントリ情報に相当する。つまり、前記第1エントリ情報EDA[i]が表現する第1検索条件[i]とフレーム情報FDが適合し、かつ、前記第2エントリ情報EDB[i]が表現する第2検索条件[i]と前記フレーム情報FDが適合した場合に、入力フレームFINに適合する検索条件を持つエントリiを見つけたことになる。
第1検索テーブル22Aは、第1読出回路23Aから第1読出信号RAを入力し、この第1読出信号RAが示すタイミングで、第1読出信号RAが示すアドレス、すなわちエントリiから、記憶している第1エントリ情報EDA[i]を読み出す機能を有している。
第2検索テーブル22Bは、第2読出回路23Bから第2読出信号RBを入力し、この第2読出信号RBが示すタイミングで、第2読出信号RBが示すアドレス、すなわちエントリiから、記憶している第2エントリ情報EDB[i]を読み出す機能を有している。
フレーム情報振分回路21は、フレーム情報抽出部11からフレーム情報FDを入力し、所定の比較回路選択方法に基づいて、前記フレーム情報FDの出力先である比較回路3nを決定し、前記比較回路3nに対して前記フレーム情報FDをフレーム情報FDnとして出力する機能を有している。
前記比較回路選択方法の例は、前記各比較回路3nが検索処理中であるか否かを判定し、前記検索処理を行っていない比較回路3nの1つを選択することである。この比較回路選択方法を簡単な回路で実現する例として、フレーム情報を入力したとき前回入力時に選択した比較回路3nの番号nを+1した番号の比較回路3(n+1)を選択する方法がある。この比較回路選択方法において、前回入力時に選択した比較回路3nの番号nがNの場合は、番号1の比較回路31を選択して、巡回的に比較回路3nを選択することになる。
前記比較回路選択の他の例は、前記フレーム情報振分回路21が前記各比較回路3nの検索完了有無を判定する方法である。すなわち、フレーム情報振分回路21が、各比較回路3nについて前回フレーム情報FDを入力した時点からの経過時間を測り、前記計測時間が検索完了までに要する一定時間に達した時点で、前記比較回路3nが検索完了となったと判定し、前記検索完了となっている比較回路3nの1つを選択することである。
比較回路3nは、フレーム情報振分回路21からのフレーム情報FDn(n=1〜N)の入力に応じて、前記フレーム情報FDnに適合する検索条件を持ったエントリを検索するための検索処理を実行する。
この検索処理において、比較回路3nは、入力されたフレーム情報FDnと、第1読出回路23Aが第1検索テーブル22Aのエントリi(i=1〜Ne)から読み出した第1エントリ情報EDA[i]とに基づいて、前記フレーム情報FDnが、前記第1エントリ情報EDA[i]が表す検索条件に適合するか否かを判定するための第1適合判定を行って、回路内部信号として第1適合判定結果CJAn[i](図示せず)を得る。
さらに、前記比較回路3nは、得られた前記第1適合判定結果CJAn[i]に基づいて、第2検索テーブル22Bのエントリi(i=1〜Ne)から第2エントリ情報EDB[i]を読み出すか否かを判定するための第2検索テーブル読出判定を行い、得られた読出判定結果RJn[i]を第2読出回路23Bに出力する。
本例では、第1適合判定結果CJAn[i]が適合を示す場合に、第2検索テーブル22Bから第2エントリ情報EDB[i]を読み出す(第2検索テーブル読出あり)と判定し、前記第1適合判定結果CJAn[i]が不適合を示す場合に、第2検索テーブル22Bから第2エントリ情報EDB[i]を読み出さない(第2検索テーブル読出なし)と判定する。
すなわち、本例では、第1適合判定とは別に第2検索テーブル読出判定を行う必要はなく、また、第1適合判定結果CJAn[i]を用いて読出判定結果RJn[i]を得ることができる。
ここで、前記比較回路3nがフレーム情報FDnと第1エントリ情報EDA[i]とに基づいて、第2読出回路23Bに第2検索テーブル読出ありを示す読出判定結果RJn[i]を出力した場合、第2読出回路23Bは、第2検索テーブル22Bから第2エントリ情報EDB[i]を読み出して、前記第2エントリ情報EDB[i]を前記比較回路3nに入力する。
このとき、前記比較回路3nは、前記フレーム情報FDnと、前記第2エントリ情報EDB[i]とに基づいて、前記フレーム情報FDnが前記第2エントリ情報EDB[i]に適合するか否かの第2適合判定を行って、回路内部信号として第2適合判定結果CJB[i](図示せず)を得る。
これにより、比較回路3nのうち、前記フレーム情報FDnと前記第1エントリ情報EDA[i]とを比較する第1部分比較回路が検索処理中であっても、第2検索テーブル22Bの読み出しを行わない期間は、例えばクロック供給や電力供給を停止させて、前記比較回路3nのうち、前記フレーム情報FDnと前記第2エントリ情報EDB[i]とを比較する第2部分比較回路の動作を停止させることができるため、消費電力を削減することが可能となる。
前記比較回路3nは、前記第1適合判定結果CJAn[i]と前記第2適合判定結果CJB[i]に基づいて、エントリiの検索条件が前記フレーム情報FDnに適合するか否かを判定する統合適合判定を行う。
統合適合判定の例としては、前記第1適合判定結果CJAn[i]が適合ありを示し、かつ、前記第2適合判定結果CJB[i]が適合ありを示す場合に、統合適合判定において適合すると判定し、それ以外の場合、つまり、第1適合判定結果CJAn[i]が適合なしを示す場合や、第1適合判定結果CJAn[i]が適合ありを示すが、第2適合判定結果CJB[i]が適合なしを示す場合は、統合適合判定において不適合と判定する。なお、この例では、第1適合判定結果CJAn[i]が不適合の場合には、読出判定結果RJn[i]は読み出しなしとなり、第2適合判定は不要である。
また、統合適合判定の別の例としては、前記第1適合判定結果CJAn[i]が適合ありを示し、または、前記第2適合判定結果CJB[i]が適合ありを示す場合に、エントリiの検索条件が前記フレーム情報FDnに適合すると判定し、それ以外の場合、つまり、第1適合判定結果CJAn[i]が不適合かつ第2適合判定結果CJB[i]が不適合の場合は、統合適合判定において不適合と判定する。なお、この例では、第1適合判定結果CJAn[i]が適合ありを示す場合、読出判定結果RJn[i]は読み出しなしとなり、第2適合判定は不要である。
この際、第1適合判定結果CJAが不適合の場合に、統合判定結果が不適合となるとは限らない。ただし、一般的には、第1適合判定結果CJAが不適合の場合は統合判定結果を不適合とする。つまり、第1エントリ情報EDA[i]が表す第1検索条件と第2エントリ情報EDB[i]が表す第2検索条件のANDを統合適合判定の条件とする検索が一般的である。その理由は、「第1検索条件OR第2検索条件」の検索は、第1検索条件のみのエントリと第2検索条件のみのエントリという2つのエントリに分けることで実現可能である。同じ検索結果SRが設定された複数のエントリは、前記エントリの検索条件のORを検索条件とする1つのエントリと等価であるが、「第1検索条件AND第2検索条件」の検索は、第1検索条件OR第2検索条件の検索では実現困難であるためである。
また、前記統合適合判定により適合と判断されたエントリが見つかった時点、あるいは、全てのエントリについてフレーム情報FDnの判定を終えた時点で、比較回路3nは検索を終了し、検索結果SRnを出力する。すなわち、エントリiに対する統合適合判定において適合ありとなった時点で、前記フレーム情報FDnに対して前記エントリiの他に統合適合判定を行っていないエントリが残っていたとしても、前記エントリiを検索結果SRnとして採用し、前記残りのエントリに対する処理、例えば第1エントリ情報EDAや第2エントリ情報EDBの読み出し、その適合判定、統合適合判定などの処理を行わないようにすることが可能である。
また、エントリiに対する統合適合判定において不適合となった場合は、統合適合判定が行われていないエントリに対する処理、例えば第1エントリ情報EDAや第2エントリ情報EDBの読み出し、その適合判定、統合適合判定などの処理を継続する。
さらに、前記処理の継続によって、検索テーブルの全エントリについて統合適合判定を行った場合は、最後のエントリに対する統合適合判定結果が不適合であったとしても、処理を終了する。
この際、前記最後のエントリに対する統合適合判定結果が不適合の場合は予め設定された全エントリに不適合となった場合の検索結果SRnを採用する。フレーム情報FDnに対する検索中に、あるエントリで第1適合判定結果CJAが不適合であっても、残りのエントリの中に適合となるエントリが見つかる可能性がある。このため、第1適合判定結果CJAが不適合となったからといって、検索を終了することはない。
なお、第1エントリ情報EDAまたは第2エントリ情報EDBにエントリの適用優先度を含み、統合適合判定により適合とされたエントリのなかで前記エントリの適用優先度が最も高いエントリを見つける例では、統合適合判定により適合とされたエントリが1個見つかった時点で検索を終了するのではなく、全エントリについて統合適合判定を終えるか、上限の適用優先度、すなわち適用優先度に設定可能な範囲の値のうち最も適用優先度が高い値を持つ適用優先度を持つエントリが見つかった場合にのみ、検索を終了する。
前記比較回路3nは、前記統合適合判定によって得られた結果、例えば前記判定において適合したエントリの番号iや前記エントリの第2エントリ情報EDB[i]に含まれる結果を示す情報;通過/廃棄を示す情報や送出先を示すポート番号などを、検索結果SRnとして、検索結果合流回路24に対して出力する。
なお、前記適用優先度とは、検索テーブル中に適合と判定されるエントリが複数存在する場合に、それらのエントリのうち、どのエントリの検索結果SRnを採用するかを決めるために用いられる、各エントリに指定された値である。例えば、適合と判定されるエントリのなかで適用優先度の値が最も小さいエントリを採用する。
この際、エントリ毎に適用優先度の値を設定するのではなく、前記エントリの番号を適用優先度として使用することも可能であり、この場合は、適合と判定されるエントリのなかで検索テーブルの最上位に位置するエントリが採用される。また、エントリ毎に適用優先度の値を設定することによって、エントリ番号に制約されず同様の検索が可能となるので、エントリの追加のためにエントリ間に空きエントリを作るためのエントリ移動処理が不要となる。
比較回路3nは、エントリiについて、第1エントリ情報EDA[i]が第1検索テーブル22Aから読み出された後に得られる第1適合判定結果CJAn[i]と、その後の第2エントリ情報EDB[i]が第2検索テーブル22Bから読み出された後に得られる第2適合判定結果CJB[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適合判定結果CJBn[i]を得て統合適合判定を行うまで保持する必要があるが、前記保持期間中に得た次エントリ以後の第1適合判定結果CJAnも合わせて保持する。これにより、エントリの更新間隔を、第1適合判定結果CJAn[i]を得てから第2適合判定結果CJBn[i]を得るまでの時間以上とする必要がなくなり、検索処理速度を向上できる。
上記の全てのエントリi(i=1〜Ne)についてフレーム情報FDn(n=1〜N)との判定を終えた時点を知る判定終了特定方法の例として、フレーム情報FDnを比較回路3nが入力した時点からの経過時間を前記比較回路3nが測っておき、前記経過時間が予め定められた時間Tsに達したタイミングを用いる方法がある。この判定終了特定方法は、各エントリの処理時間が固定値でありエントリ数も固定値であることから、全エントリを検索するのにかかる時間も固定値となることを利用した方法である。また別の判定終了特定方法として、フレーム情報FDを比較回路3n(n=1〜N)が入力した時点からの統合適合判定の回数を計数し、その回数がN(全エントリ数)に達したタイミングを用いることもできる。
検索結果合流回路24は、各比較回路3n(n=1〜N)から検索結果SRnを入力し、これらを検索結果SRとしてフレーム合成部14に対して出力する。
第1読出回路23Aは、クロックに基づき時間の経過に合わせてエントリi(i=1〜Ne)を変えながら、エントリiを読み出すための第1読出信号RAを第1検索テーブル22Aに対して出力することにより、第1検索テーブル22Aが記憶する第1エントリ情報EDA[i]を次々と読み出す。これにより、第1エントリ情報EDA[i]は各比較回路3n(n=1〜N)に分配される。
第1エントリ情報EDAの読み出し方法の例として、第1検索テーブル22Aを第1テーブルメモリによって構成し、前記第1テーブルメモリの各アドレスa1(a1=0〜Ne−1)に第1エントリ情報EDA[a1+1]を記憶し、前記読み出すアドレスa1を時間の経過に合わせて、0〜Ne−1まで順番に変える方法がある。なお、この方法において、アドレスa1が最後のエントリNe−1のアドレスに達したときは0に戻すことにより、巡回的に第1エントリ情報EDAを読み出すことになる。
ここで、各比較回路3n(n=1〜N)が出力する検索処理中であるか否かを示す検索状態SSnを、第1読出回路23Aが入力して、全ての比較回路3nが検索処理を行っていない期間中の、前記読み出しを行わないことにより、第1検索テーブル22Aの読み出しが不要な期間の消費電力を削減できる。
また上記の方法を、テーブルメモリの全領域ではなく、その一部領域を第1検索テーブル22Aとして使用する場合にも適用可能である。この場合は、アドレスa1を0〜Ne−1の範囲で+1ずつ増加させるのではなく、読み出す対象となるエントリiを+1ずつ増加させて(i=Neの次はi=1とする)、アドレスa1をA0+(i−1)*A1で演算して求める。この場合、A0は第1検索テーブル22Aに割り当てられたメモリ領域の下限値、A1は1個の第1エントリ情報EDAを記憶するために必要なメモリ量に相当するアドレス増分を指す。なお、前記アドレスa1を先頭としてアドレスa1+A0の直前までの領域に記憶されたデータを、第1エントリ情報EDA[i]とする。
第2読出回路23Bは、第1読出回路23Aと同様に、クロックに基づき時間の経過に合わせてエントリi(i=1〜Ne)を変えながら、前記エントリを読み出すための第2読出信号RBを第2検索テーブル22Bに対して出力することにより、第2検索テーブル22Bが記憶する第2エントリ情報EDB[i]を次々と読み出す。これにより、前記第2エントリ情報EDB[i]は各比較回路3n(n=1〜N)に分配される。ただし、第1エントリ情報EDA[i]の読み出しから予め定められた一定の時間差Tdの後に、第2エントリ情報EDB[i]の読み出しを行う。
また、前記第2エントリ情報EDB[i]の読み出しを行うのは、少なくとも1個の比較回路3nから第2検索テーブル読出ありを示す読出判定結果RJn[i]を入力した場合に限る。なお、検索処理を行っていない比較回路3nは、第2検索テーブル読出なしを示す読出判定結果RJn[i]を出力することで、比較回路3nが検索処理中であるか否かを区別せずに、各読出判定結果RJn[i](n=1〜N)のみに基づいて、第2エントリ情報EDB[i]の読み出し実施の有無を判定することができる。
上記の時間差Tdは、(a)第1読出回路23Aが第1エントリ情報EDA[i](i=1〜Ne)の読み出しを開始してから比較回路3n(n=1〜N)に前記第1エントリ情報EDA[i]が入力されるまでの時間(=第1検索テーブル22Aの読み出しに要する時間+第1エントリ情報EDAを各比較回路3nに分配するのに要する時間)、(b)比較回路3n(n=1〜N)が第1エントリ情報EDA[i]を入力してから読出判定結果RJn[i]を第2読出回路23Bに出力するまでの時間(=第2検索テーブル読出判定に要する時間)、(c)第2読出回路23Bが全ての比較回路3n(n=1〜N)から読出判定結果RJn[i]を入力してから第2エントリ情報EDB[i]の読み出しを行うと判定して第2エントリ情報EDB[i](i=1〜Ne)の読み出しを開始するまでの時間(=第2検索テーブル22Bの読み出し有無を判断するのに要する時間)、の和となる。
第2読出回路23Bは、第1読出回路23Aがエントリiの第1エントリ情報EDA[i]を読み出す時点からTdの遅延をおいて、各比較回路3n(n=1〜N)からの読出判定結果RJn[i]の中に第2検索テーブル読出ありを示すものが含まれる場合に、前記エントリiの第2エントリ情報EDB[i]を読み出す。
この読み出し方法の例として、第2検索テーブル22Bを第2テーブルメモリによって構成し、前記第2テーブルメモリの各アドレスa2(a2=0〜Ne−1)に第2エントリ情報EDB[a2+1]を記憶し、前記読み出すアドレスa2を、時間Tdだけ以前に第1検索テーブル22Aからの読み出しのために生成された第1読出回路23Aの読み出しアドレスa1とする。さらに、前記第2テーブルメモリからの読出実施の有無を示す信号である読出制御信号として、読出判定結果RJn[i]を示す信号に対する論理演算、すなわち、少なくとも1個の読出判定結果RJが第2検索テーブル読出ありを示すとき読出制御信号が読出ありを示す値とする演算の結果を用いる。
次に、図3を参照して、本実施の形態にかかる第1読出回路23Aおよび第2読出回路23Bについて説明する。図3は、第1の実施の形態にかかる検索処理部の要部を示すブロック図である。
図3に示すように、第1読出回路23Aは、第1読出アドレス生成部41Aと第1読出有効生成部42Aを有している。
第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読出有効生成部42Aは、1個以上の検索状態SSnが検索処理中を示すとき、有効を示す第1読出有効信号REA[i]を出力する機能を有している。なお、全て検索停止を示す場合は無効を示す第1読出有効信号REA[i]を出力する。
第1読出回路23Aが出力する第1読出信号RA[i]は、第1読出有効信号REA[i]と第1読出アドレスRAA[i]とを有している。
第1検索テーブル22Aは、第1読出信号RA[i]を入力することによって、前記入力から一定時間の後に、第1読出有効信号REA[i]が有効を示すときの第1読出アドレスRAA[i]が示す、第1テーブルメモリM1(第1検索テーブル22A用のメモリ)のアドレスに記憶された第1エントリ情報EDA[i]が、各比較回路3nに出力される。
また、第1読出アドレスRAA[i]は、第1検索テーブル22Aの他に、第2読出回路23Bに出力され、第2テーブルメモリM2(第2検索テーブル22B用のメモリ)から第2エントリ情報EDB[i]を読み出すために用いられる。
第2読出回路23Bは、第2読出アドレス生成部41Bと第2読出有効生成部42Bを有している。
第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]となる。
第2読出アドレス生成部41Bは、第1読出アドレスRAA[i]を入力し、この第1読出アドレスRAA[i]を時間Tdだけ遅延させて前記値を第2読出アドレスRAB[i]として出力する機能を有している。第1読出アドレスRAA[i]はクロック毎に+1ずつ増加する信号であるため第1読出アドレスRAA[i]をシフトレジスタによってTd分遅延させて第2読出アドレスRAB[i]を生成しなくとも、カウンタを用いて生成することも可能である。
なお、第1テーブルメモリと第2テーブルメモリは各々、同じアドレスに同じエントリのエントリ情報を記憶しているものとする。すなわち、第1テーブルメモリのアドレスaにエントリiの第1エントリ情報EDA[i]が記憶されている場合は、第2テーブルメモリのアドレスaにエントリiの第2エントリ情報EDB[i]が記憶されている。第1読出アドレスRAA[i]の入力から時間Tdだけ遅延させて出力することで、エントリiの第2エントリ情報EDB[i]を読み出しの有効・無効を示す第2読出有効信号REB[i]を出力するのと同じタイミングで、前記エントリiの第2エントリ情報EDB[i]が第2テーブルメモリに記憶されているアドレスである第2読出アドレスRAB[i]を出力することができる。
[第1の実施の形態の動作]
次に、図4を参照して、本実施の形態にかかる検索処理部12の動作について説明する。図4は、第1の実施の形態にかかる検索処理部の動作を示すタイムチャートであり、比較回路3nの個数Nが2の場合を例として、検索処理部12内の各信号について時間の経過(左から右)に伴う変化が示されている。
検索状態SSn(n=1,2)の各信号は、Hレベル:検索処理中/Lレベル:検索停止中を表す信号であり、比較回路3nにフレーム情報FDn(n=1,2)が入力された時点でHレベル:検索処理中となり、1個のフレーム情報FDに対して全エントリ(16個)をテーブルから読み出した後(処理開始から16サイクル経過後)にLレベル:検索処理停止となる。
第1読出有効信号REA[i]の信号は、Hレベル:有効/Lレベル:無効を表す信号であり、検索状態SS1と検索状態SS2の各信号の論理和となる。つまり、各比較回路3nのうち1個以上が検索処理中である期間は第1読出有効信号REA[i]が有効を示すため、第1テーブルメモリの第1読出アドレスRAA[i]の位置に記憶された、第1エントリ情報EDA[i]が読み出されることになる。
第1読出アドレスRAA[i]の信号は、0〜15の範囲で繰り返しクロック毎に+1ずつ増加する。ただし、値が15の次は0となる。図4の第1読出アドレスRAA[i]を表す各箱内の数字はエントリ番号i(1〜16)を表しており、エントリ番号iの前記信号値はi−1である。つまり、第1テーブルメモリのアドレスi−1に第1エントリ情報EDA[i]を記憶しておき、クロックサイクル毎に、エントリ番号をインクリメントして、前記エントリ番号に対応する第1エントリ情報EDAを第1テーブルメモリから読み出す。
なお、第1エントリ情報EDA[i]を読み出すための信号である、第1読出有効信号REA[i]と第1読出アドレスRAA[i]は、第1テーブルメモリに同時に入力される例を示しているが、同時入力ではないメモリ(例えば第1読出有効信号REA[i]を第1読出アドレスRAA[i]より所定のサイクルだけ先に入力する必要があるメモリ)を第1テーブルメモリとして使用することも可能であり、この場合は、第1読出回路23Aは、メモリによって規定された信号入力方法に従って、第1読出有効信号REA[i]や第1読出アドレスRAA[i]を生成することになる。
また、第1読出有効信号REA[i]と第1読出アドレスRAA[i]によって読み出すのではなく、コマンドを用いてアクセスするメモリの場合、第1読出回路23Aは、第1読出有効信号REA[i]が有効を示す場合に、第1読出アドレスRAA[i]の位置に記憶されたデータを読み出すための第1読出コマンド[i]を生成することとなる。
第1エントリ情報EDA[i]は、第1読出有効信号REA[i]が有効時の第1読出アドレスRAA[i]の入力から2サイクル後に第1検索テーブル22Aから読み出されたデータである。なお、前記2サイクルの遅延は、前記第1テーブルメモリが入力したアドレス等の信号をラッチすることで生じる1クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる1クロックの遅延を合わせた値である。
第1テーブルメモリの種類やメモリと前記第1読出回路23A等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。また、固定遅延ではなくメモリの状況、例えば外部からの前記メモリへのアクセスの有無などの状況によって前記遅延量が変動する構成も可能である。なお、図4の第1エントリ情報EDA[i]を表す各箱内の数字はエントリ番号i(1〜16)を表している。
読出判定結果RJn[i](n=1,2)の各信号は、Hレベル:読出あり/Lレベル:読出なしを表す信号である。
各比較回路3n(n=1,2)は、第1エントリ情報EDA[i]の入力から1サイクル後に読出判定結果RJn[i]を出力する。この1サイクルの遅延は、比較回路3nが読出判定結果RJn[i]をラッチして出力することによって生じる。なお、読出判定結果RJnが第1エントリ情報EDA[i]とフレーム情報FDnの複雑な演算を必要とする場合は、1サイクルより大きい遅延となる場合もある。
図4では、読出判定結果RJ1[i]は、エントリ番号が5と12に対応するタイミングで、読出ありを示す場合が示されている。つまり、比較回路31は、第2エントリ情報EDB[5],第2エントリ情報EDB[12]を読み出すという読出判定結果RJ1を得たことになる。なお、本例では、第1適合判定結果CJAn[i]と読出判定結果RJn[i]は同値であり、フレーム情報FD1が第1エントリ情報EDA[5],第1エントリ情報EDA[12]に適合したことにもなる。
同様に、図4では、読出判定結果RJ2[i]は、エントリ番号が7と10に対応するタイミングで、読出ありを示す場合が示されている。つまり、比較回路32は、第2エントリ情報EDB[7],第2エントリ情報EDB[10]を読み出すという読出判定結果RJ2を得たことになる。
第2読出有効信号REB[i]の信号は、Hレベル:有効/Lレベル:無効を表す信号であり、読出判定結果RJn[i]の論理和が第2読出有効信号REB[i]となっている。本例では、第2検索テーブル22Bのエントリ5,7,10,12に対して有効を示し、前記エントリ番号の第2エントリ情報EDB[5],第2エントリ情報EDB[7],第2エントリ情報EDB[10],第2エントリ情報EDB[12]が読み出されることになる。
また、第2読出有効信号REB[i]は、エントリiに対する第1読出有効信号REA[i]を時間差Td分、ここではクロック3サイクル分だけ遅延させた値からなる。前記Tdは、第1読出アドレスRAA[i]と第1読出有効信号REA[i]を第1検索テーブル22Aが入力してから第1エントリ情報EDA[i]を出力するまでの2サイクル分の遅延と、比較回路3nが前記第1エントリ情報EDA[i]を入力してから前記入力に基づいて読出判定結果RJn[i]を出力するまでの1サイクル分の遅延と、第2読出有効生成部42Bが各比較回路3nから読出判定結果RJn[i]を入力してから前記に基づいて第2読出有効信号REB[i]を出力するまでの遅延(ただし、本例では単純な論理和の演算であるため遅延なし)と、の合計である。
なお、前記Tdはクロック3サイクル分の固定値であるが、第1読出アドレスRAA[i]と第1読出有効信号REA[i]を第1検索テーブル22Aが入力してから第1エントリ情報EDA[i]を出力するまでの遅延量が、2サイクルより大きい場合や前記遅延量が変動する場合もある。また、比較回路3nが前記第1エントリ情報EDA[i]を入力してから前記入力に基づいて読出判定結果RJn[i]を出力するまでの遅延が、1サイクルより大きい場合もある。
第2読出アドレスRAB[i]は、第1読出アドレス[i]をTd=3サイクルだけ遅延した信号であり、第2読出アドレスRAB[i]と同時に第2読出有効信号REB[i]が第2検索テーブル22Bに入力される。なお、図4の第2読出アドレスRAB[i]を表す各箱内の数字はエントリ番号i(1〜16)を表しており、第1読出アドレスRAA[i]と同じく、エントリ番号iの前記信号値はi−1となる。
なお、Tdがクロック3サイクル分ではない場合は、第2読出アドレスRAB[i]を第2読出有効信号REB[i] と同時に第2検索テーブル22Bに入力するために、第1読出アドレス[i]を前記Td分だけ遅延させた信号とする。
また、Tdが変動し第2読出アドレス生成部41Bが前記変動に合わせて遅延できないのであれば、第1読出アドレス生成部41Aが第2読出アドレス生成部41Bに出力する第1読出アドレスRAA[i]を前記Tdの変動に合わせて遅延させる構成や、図11に示されている別の実施の形態での構成のように、エントリ番号iを、比較回路3nを介して第1読出回路23Aから第2読出回路23Bに受け渡す構成も可能である。
また、図4では、第2エントリ情報EDB[i]を読み出すための信号である第2読出有効信号REB[i]と、第2読出アドレスRAB[i]とが、第2テーブルメモリに同時に入力される例が示されているが、同時入力ではないメモリ、例えば、第2読出有効信号REB[i]を第2読出アドレスRAB[i]より所定のサイクルだけ先に入力する必要があるメモリを第2テーブルメモリとして使用することも可能である。この場合は、第2読出回路23Bは、メモリによって規定された信号入力方法に従って、第2読出有効信号REB[i]や第2読出アドレスRAB[i]を生成することになる。
また、第2エントリ情報EDB[i]について、第2読出有効信号REB[i]と第2読出アドレスRAB[i]によって読み出すのではなく、コマンドを用いてアクセスが行われるメモリの場合、第2読出回路23Bは、第2読出有効信号REB[i]が有効を示す場合に、第2読出アドレスRAB[i]の位置に記憶されたデータを読み出すための第2読出コマンド[i]を生成することとなる。
図4において、第2エントリ情報EDB[i]は、第2読出有効信号REB[i]が有効時の第2読出アドレスRAB[i]の入力から2サイクル後に第2検索テーブル22Bから読み出されている。
この2サイクルの遅延は、前記第2テーブルメモリが入力したアドレス等の信号をラッチすることで生じる1クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる1クロックの遅延を合わせた値である。第2テーブルメモリの種類やメモリと前記第2読出回路23B等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。
なお、図4の第2エントリ情報EDB[i]を表す各箱内の数字はエントリ番号i(1〜16)を表しており、第2読出有効信号REB[i]が有効を示したエントリ5,7,10,12について、出力されている。
[第1の実施の形態の効果]
このように、本実施の形態では、比較回路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とするようにしたものである。
また、第2読出回路23Bが、前記比較回路3nから出力された前記読出判定結果RJnが読み出しありを示す場合には、前記第2検索テーブル22Bからの前記第2エントリ情報EDB[i]の読み出しを行い、前記読出判定結果RJnが読み出しなしを示す場合には、前記第2検索テーブル22Bからの前記第2エントリ情報EDB[i]の読み出しを行わないようにしたものである。
これにより、第1エントリ情報EDA[i]とフレーム情報FDnとの比較の結果、残りのエントリ情報である第2エントリ情報EDB[i]を読み出す必要があるか否かが判断され、前記読み出しが必要な場合に限って、第2エントリ情報EDBが読み出されることになる。このため、一部のエントリ情報(第1エントリ情報EDA)のみを読み出すエントリと、全てのエントリ情報(第1エントリ情報EDA+第2エントリ情報EDB)を読み出すエントリの2通りの場合が生じる。
したがって、従来構成では、全エントリについて全てのエントリ情報を読み出していたのに対し、本実施の形態では、読み出すエントリ情報のビット数を削減することができる。このため、入力フレームFINに応じたフレーム処理を決めるための検索処理に用いる検索条件として、例えばVLAN IDに加えて宛先IPアドレスと宛先TCPポート番号とを組み合わせた場合など、エントリ情報のビット数が増大した場合でも、読み出すエントリ情報のビット数の増大を抑制することができ、結果としてフレーム検索処理に要する消費電力の増加を抑制することが可能となる。
[第1の実施の形態の動作例]
次に、本実施の形態にかかるフレーム検索処理装置10の動作例について説明する。
ここでは、フレーム情報抽出部11から入力されるフレーム情報FDとして、フレーム検索処理装置10が入力した入力フレームFINのIPヘッダ内に格納されている送信元IPアドレスと宛先IPアドレスを含む場合を例として取り上げて説明する。
フレーム情報FDには、必ずしも送信元IPアドレスと宛先IPアドレスが含まれている必要はない。また、他のヘッダ情報、例えばMACアドレス、VLAN ID、VLAN優先度、フレームタイプ、IP上位層のプロトコル番号、フレーム長やパケット長、TCPやUDPのポート番号、IPヘッダ内のToS(Type of Service)値などの情報の一部が含まれていてもよい。また、フレームを入力したポート番号や、フレームに対する別の検索結果など、ヘッダ情報以外が、フレーム情報FDに含まれていてもよい。
上記フレーム情報FDに対する検索を行う場合の、第1エントリ情報EDAと第2エントリ情報EDBの例を、以下に説明する。
[ケース1]
第1エントリ情報EDA=エントリ有効フラグ・フレーム種別;IPv4かIPv6かを示すフラグ
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスと宛先IPアドレス
通常、検索テーブルの全てのエントリが使用されるのではなく、装置の通信状態に応じて、使用されるエントリの数が増減する。このような場合、使用中のエントリと未使用のエントリの各エントリ番号は不規則となるため、エントリ番号によって使用中か未使用かを判断するのではなく、検索条件にエントリ有効を加え、適合の判定はエントリが有効(=使用中のエントリ)である場合に限るようにする。
また、装置がIPv4とIPv6の両方に対応することが要求される場合があるが、このような場合、検索テーブルの各エントリには、IPv4あるいはIPv6のいずれか一方に対する検索条件を記述することになる。検索対象となるフレーム(IPパケット)は、IPv4もしくはIPv6のいずれか一方であるため、IPv6のフレームでは、IPv4用のエントリが適合することはなく、逆に、IPv4のフレームでは、IPv6用のエントリが適合することはない。
本実施の形態では、第1エントリ情報EDAに、エントリ有効であるか否かを示すエントリ有効フラグを含むようにすることで、エントリが有効な場合に限って、第2エントリ情報EDBを読み出す。つまり、第2検索テーブル読出判定において、前記エントリ有効フラグが有効を示す場合に第2検索テーブル読出ありと判定する。これにより、無効なエントリ(=未使用のエントリ)の第2エントリ情報EDBは、第2検索テーブル22Bから読み出されないので、無効なエントリが多いほど、読み出されるエントリ情報のビット数を削減することができる。
さらに、第1エントリ情報EDAに、IPv4フレームを対象としたエントリであるかIPv6フレームを対象としたエントリであるか否かを示すフレーム種別を含むようにすることで、前記エントリのフレーム種別と検索対象フレームのフレーム種別が一致する場合に限って、第2検索テーブル読出ありと判定し、第2エントリ情報EDBを読み出す。これにより、IPv4のフレームを検索する場合には、IPv6用の第2エントリ情報EDBは検索テーブルから読み出されない。同様に、IPv6のフレームを検索する場合には、IPv4用の第2エントリ情報EDBは検索テーブルから読み出されない。
例えば、1/2のエントリが未使用エントリであり、1/4がIPv4用のエントリ、残り1/4がIPv6用のエントリであり、IPv4のフレームとIPv6のフレームの割合が同じである場合、従来構成であれば、1エントリあたりの読み出しビット数が260ビット(=エントリ有効フラグ1ビット+フレーム種別1ビット+送信元IPアドレス128ビット+宛先IPアドレス128ビット)であったところが、本例により、82ビット(=エントリ有効フラグ1ビット+フレーム種別1ビット+(送信元IPアドレス32ビット+宛先IPアドレス32ビット)/4+(送信元IPアドレス128ビット+宛先IPアドレス128ビット)/4)に削減できる。
[ケース2]
第1エントリ情報EDA=エントリ適用優先度
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスと宛先IPアドレスと各アドレスのマスク長
各エントリに適用優先度を指定して、検索条件が適合と判定されたエントリが複数存在していた場合は、それらのエントリのうち適用優先度が最も高いエントリを採用する、という検索処理を行う装置がある。
例えば、宛先IPアドレスがある範囲(IPx〜IPy)にあるフレームについては廃棄するが、例外的に、前記範囲内にある特定の宛先IPアドレス(IPz)のフレームについては通過させたい、といった場合である。この場合、前者に対するエントリの適用優先度よりも、後者に対するエントリの適用優先度を高くすることで前記が可能となる。
適用優先度を指定できない装置で、これと同じ検索結果SRを得るためには、宛先IPアドレスがIPxから(IPz−1)の範囲にあるフレームを廃棄するエントリ、宛先IPアドレスが(IPz+1)からIPyの範囲にあるフレームを廃棄するエントリ、宛先IPアドレスがIPzのフレームを通過させるエントリのうち、少なくとも3個のエントリが必要となる。
適用優先度を付加した検索条件に対して検索を行う方法は、最初に適合判定したエントリの適用優先度とエントリ番号を比較回路3nが一時記憶しておき、その後に適合判定したエントリが見つかった場合には、そのエントリの適用優先度と、一時記憶していた適用優先度とを比較し、前者の方が高い場合は、一時記憶していたエントリ番号と適用優先度を前者のエントリ番号と適用優先度に更新し、全エントリについて適合判定を終えるか上限の適用優先度を持つエントリを見つけるまで、これを繰り返す。
ここで、第1エントリ情報EDAをエントリの適用優先度とし、検索開始から適合と判定されたエントリが見つかっていない場合、または、一時記憶している適用優先度よりも、第1エントリ情報EDAが示す適用優先度の方が高い場合に限って、第2エントリ情報EDBを読み出す。つまり、第2検索テーブル読出判定において、前記のように検索開始から適合と判定されたエントリが見つかっていないか一時記憶している適用優先度よりも、第1エントリ情報EDAが示す適用優先度の方が高いときに第2検索テーブル読出ありと判定する。これにより、適用優先度が既に見つけたエントリよりも低いエントリについては、第2検索テーブル22Bから第2エントリ情報EDBを読み出されなくなる。
例えば、各エントリの適用優先度がランダムで適合と判定されるエントリが任意の1個である場合、平均的にはエントリ数の1/2を検索した時点で適合と判定されるエントリが見つかり、その後に検索したエントリの1/2が適合と判定されるエントリよりも適用優先度が高いエントリであるため、全エントリの25%について、第2エントリ情報EDBの読み出しが行われない。
したがって、従来構成であれば、1エントリあたりの読み出しビット数が82ビット(=適用優先度8ビット+送信元IPアドレス32ビット+宛先IPアドレス32ビット+送信元IPアドレスのマスク長5ビット+宛先IPアドレスのマスク長5ビット)となる。
これに対して、本例によれば、1個のフレームを検索するときの1エントリあたりの検索テーブルからの平均読み出しビット数は、63.5ビット(=適用優先度8ビット+(送信元IPアドレス32ビット+宛先IPアドレス32ビット+送信元IPアドレスのマスク長5ビット+宛先IPアドレスのマスク長5ビット)*0.75)に削減できる。すなわち、1個のフレームを検索するとき検索テーブルから読み出されるビット数の平均値は、63.5bit*Ne(Neはエントリ数)となる。
[ケース3]
第1エントリ情報EDA=第2エントリ情報EDBから算出されたハッシュ値
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスと宛先IPアドレス
ハッシュ法を利用した検索手法があるが、この検索手法の一般的な実装では、エントリ情報に対して所定のハッシュ演算を施してエントリ情報のハッシュ値を得て、前記ハッシュ値に応じて決められた検索テーブルのエントリに、前記エントリ情報を記憶しておく。そして、フレーム情報FDの入力時に、前記フレーム情報FDに前記ハッシュ演算を施して得たフレーム情報FDのハッシュ値を用いて、適合可能性のある検索テーブルのエントリを限定し、前記限定されたエントリについてのみ、フレーム情報FDとエントリ情報とを用いた適合判定を行う。
しかし、このような検索手法では、エントリ情報のハッシュ値が格納できるエントリを限定するため、ハッシュ値が衝突する(同一ハッシュ値で異なるエントリ情報がある)場合に格納できるエントリがなくなる可能性があるという問題があった。
本実施の形態によれば、第2エントリ情報EDBをエントリに適合するための送信元IPアドレスと宛先IPアドレスとし、第1エントリ情報EDAを前記第2エントリ情報EDBに所定のハッシュ演算を施して得た第2エントリ情報EDBのハッシュ値とする。フレーム情報FDを入力したとき、前記フレーム情報FDに前記所定のハッシュ演算を施してフレーム情報FDのハッシュ値を求めた後に検索を開始する。
比較回路3nは、第1検索テーブル22Aから読み出された第1エントリ情報EDAである第2エントリ情報EDBのハッシュ値と、前記フレーム情報FDのハッシュ値が一致するか否かの適合判定を行う。さらに、前記適合判定結果が適合(ハッシュ値が一致)の場合に限って、第2エントリ情報EDBを読み出す。つまり、第2検索テーブル読出判定において、フレーム情報FDのハッシュ値と第2エントリ情報EDBのハッシュ値が一致する場合に、第2検索テーブル読出ありと判定する。これにより、一般的はハッシュ法の実装と同様に、ハッシュ値に基づいて検索テーブルからの読み出しを限定できる。さらに、一般的はハッシュ法の実装の課題が解消され、エントリ情報のハッシュ値によって格納できるエントリが限定されない。
例えば、エントリ数が256でありハッシュ値のビット数が8の場合、各エントリのハッシュ値(ランダム)とフレーム情報FDのハッシュ値(ランダム)が一致する確率は1/2^8であり、256個の各エントリでの前記発生は各々独立事象であるため、平均1回の第2検索テーブル22Bの読み出しが発生する。したがって、1エントリあたりの読み出しビット数は8.25ビット(=ハッシュ値8ビット+(送信元IPアドレス32ビット+宛先IPアドレス32ビット)*1/256)となり、全エントリについて送信元IPアドレスと宛先IPアドレスを読み出した場合の1エントリあたりの読み出しビット数である64ビットよりも削減することができる。
なお、エントリ情報である送信元IPアドレスと宛先IPアドレスを表すビット列のうち、予め定められた部分ビット列、例えば送信元IPアドレスの下位側8ビットが、エントリ間で異なる場合が多いという特徴を持っている場合は、前記部分ビット列を第1エントリ情報EDAとし、残りのビット列、前記例では送信元IPアドレスの上位側24ビットと宛先IPアドレスを第2エントリ情報EDBとする。
これにより、第1エントリ情報EDAとしてハッシュ値を用いた場合と同様に、検索テーブルからの読み出しを限定できる効果が得られる。さらに、この方法では、ハッシュ値の演算が不要であり、かつ、ハッシュ値を記憶するためのメモリが不要であるため、1エントリあたりの読み出しビット数の削減に加えて、ハッシュ値の演算やハッシュ値を記憶するためのメモリの回路規模を削減できる。
上記の例では、1エントリあたりの読み出しビット数は8.22ビット(=送信元IPアドレスの下位側8ビット+(送信元IPアドレスの上位側24ビット+宛先IPアドレス32ビット)*1/256)となり、第1検索テーブル22Aのメモリ量と第2検索テーブル22Bのメモリ量の合計は16384ビット(=(送信元IPアドレスの下位側8ビット+送信元IPアドレスの上位側24ビット+宛先IPアドレス32ビット)*256)であるのに対して、ハッシュ値を用いた場合のメモリは前記に加えてハッシュ値を記憶する分、つまり、2048ビット(ハッシュ値8ビット*256)が必要であるため、11%程度のメモリ量を削減できる効果がある。
なお、上記の例では、第2エントリ情報EDBの例として送信元IPアドレスと宛先IPアドレスを取り上げたが、前記以外の適用も可能である。第2エントリ情報EDBとしては、IPアドレスにMACアドレスやVLAN IDなどを組み合わせや、TCP/UDPのポート番号などであってもよい。また、ハッシュ値を第2エントリ情報EDBのビット列全体に対するハッシュ演算によって得るのではなく、第2エントリ情報EDBを表す全ビット列のうち一致判定の対象となる部分ビット列に対するハッシュ演算の結果であってもよい。
また、全ビットがマスクの対象となりうる場合は、第1エントリ情報EDAに有効フラグを加えておき、前記フラグによって第1エントリ情報EDAのハッシュ値が無効を示す場合には、必ず第2エントリ情報EDBを第2検索テーブル22Bから読み出すようにする。これにより、ハッシュ値によって検索テーブルからの読み出しを限定できないような検索条件(ハッシュ演算の対象となる第2エントリ情報EDBのビット列の少なくとも一部のビット値がマスクされる検索条件)が指定されたエントリについては、前記ハッシュ値に基づく読み出し限定を解除することができる。
したがって、ハッシュ値によって検索テーブルからの読み出しを限定できるエントリと限定できないエントリが混在する検索テーブルに対しても、前者のエントリに対して1エントリあたりの読み出しビット数を削減できる。
例えば、宛先IPアドレスと送信元IPアドレスの両方に基づいて適合判定するエントリに加えて、宛先IPアドレスのみに基づいて適合判定する一部のエントリが含まれる検索処理である。
この場合、ハッシュ演算の対象を宛先IPアドレスと送信元IPアドレスを合わせたビット列として前記ハッシュ値を第1エントリ情報EDAとして採用する。さらに、宛先IPアドレスのみに基づいて適合判定するエントリ、すなわち、送信元IPアドレスがマスクされたエントリのみに、無効を示す有効フラグの値を指定する。このときの第1エントリ情報EDAに含まれるハッシュ値は任意の値でよい。さらに、第2エントリ情報EDBに、適合と判定するための宛先IPアドレスと送信元IPアドレスを指定する。すなわち、宛先IPアドレスのみに基づいて適合判定するエントリでは宛先IPアドレスのみを指定する。
これにより、宛先IPアドレスと送信元IPアドレスの両方に基づいて適合判定するエントリに対しては、フレーム情報FDの宛先IPアドレスと送信元IPアドレスとから求めたハッシュ値と第1エントリ情報EDAのハッシュ値が一致した場合にのみ、第2エントリ情報EDBが検索テーブルから読み出されるとともに、宛先IPアドレスのみに基づいて適合判定するエントリに対しては、前記ハッシュ値の一致不一致によらず、第2エントリ情報EDBが検索テーブルから読み出される。
したがって、ハッシュ値を算出可能な検索条件を持ったエントリと、前記が不可能なエントリが混在している場合にも、前者のエントリに対して1エントリあたりの読み出しビット数を削減できる。
[ケース4]
第1エントリ情報EDA=エントリに適合するための宛先IPアドレスとそのマスク長と第2エントリ情報EDBの読出フラグ、
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスとそのマスク長
宛先IPアドレスのみに対する条件により適合と判定するエントリと、宛先IPアドレスと送信元IPアドレスの両方に対する条件により適合と判定するエントリの、両方がある検索を行う装置がある。例えば、ルータ装置の経路テーブルは、通常は、宛先IPアドレスのみを条件として適合判定するエントリによって占められているが、ソースルーティングを行う場合には、宛先IPアドレスと送信元IPアドレスの両方を条件として適合判定を行うエントリが加わる。
このような場合に、全エントリについて、宛先IPアドレスと送信元IPアドレスの両方を検索テーブルから読み出す装置では、宛先IPアドレスのみを条件とするエントリが多数を占める場合に、無駄な送信元IPアドレスの読み出しが問題となる。
本実施の形態によれば、第1エントリ情報EDAを、エントリに適合するための宛先IPアドレスとそのマスク長、すなわち、IPアドレスを表すビット列のうち一致判定対象とならない;判定がマスクされる最下位ビットからのビット数と、第2エントリ情報EDBの読出フラグ、すなわち、第2エントリ情報EDBを読み出すか否かを表すフラグとし、第2エントリ情報EDBを、エントリに適合するための送信元IPアドレスとそのマスク長、とする。
つまり、第2検索テーブル読出判定において、フレーム情報FDと、第1エントリ情報EDAによって表された宛先IPアドレスに対する条件を満たし、かつ、第2エントリ情報EDBの読出フラグが読み出しありを示す場合に限って、第2エントリ情報EDBを読み出す。
これにより、宛先IPアドレスと送信元IPアドレスの両方を検索テーブルから読み出す必要があるエントリについてのみ、送信元IPアドレスを第2検索テーブル22Bから読み出すこととなるため、無駄な送信元IPアドレスの読み出しが発生しない。
例えば、全エントリのうち1/2のエントリが宛先IPアドレスのみを条件とするエントリで残りのエントリが宛先IPアドレスに加えて送信元IPアドレスも条件とするエントリの場合、従来構成であれば、1エントリあたりの読み出しビット数は74ビット(=送信元IPアドレス32ビット+宛先IPアドレス32ビット+送信元IPアドレスのマスク長5ビット+宛先IPアドレスのマスク長5ビット、送信元IPアドレスを検索条件に加えない場合は送信元IPアドレスのマスク長を32とする)となる。
本例によれば、56.5ビット(=宛先IPアドレス32ビット+宛先IPアドレスのマスク長5ビット+第2エントリ情報EDBの読出フラグ1ビット+(送信元IPアドレス32ビット+送信元IPアドレスのマスク長5ビット)/2)に削減できる。
なお、上記の例では、第1エントリ情報EDAと第2エントリ情報EDBの例として宛先IPアドレスと送信元IPアドレスを取り上げたが、前記以外への適用も可能である。
例えばVLAN IDのみを検索条件とするエントリと、VLAN IDに加えて送信元MACアドレスも検索条件となるエントリが混在する検索テーブルの場合、第1エントリ情報EDAとしてVLAN IDを指定し第2エントリ情報EDBとして送信元MACアドレスを指定することになる。
このように、全てのエントリに共通の検索条件を表すエントリ情報(前記例ではVLAN ID)を第1エントリ情報EDAとし、一部のエントリについて付加された検索条件を表すエントリ情報(前記例では送信元MACアドレス)を第2エントリ情報EDBとすることで、検索処理に第2エントリ情報EDBを必要としないエントリについては第2エントリ情報EDBを検索テーブルから読み出さないので、1エントリあたりの読み出しビット数を削減できる。
[ケース5]
第1エントリ情報EDA=エントリに適合するためのIPアドレスとエントリ情報種別;宛先・送信元を識別するフラグ
第2エントリ情報EDB=エントリに適合するためのIPアドレス(第1エントリ情報EDAに指定されなかった方のIPアドレス;宛先ならば送信元で送信元ならば宛先)
多数の端末から少数のサーバへのフレームを特定するためのエントリが検索テーブルに複数含まれる場合であれば、サーバのIPアドレスを表す宛先IPアドレスはエントリ間で同一になるのに対して、端末のIPアドレスを表す送信元IPアドレスはエントリ間で異なる。一方、逆向きのフレームを特定するエントリであれば、宛先IPアドレスはエントリ間で異なる一方で、送信元IPアドレスは同一となる。
このように、複数のヘッダ情報に対する条件を含むエントリ情報を記憶する検索テーブルでは、そのエントリを限定しやすい、すなわち他のエントリと異なっているヘッダ情報と、そうでないヘッダ情報の両方を含み、かつ、エントリによってそのエントリを限定しやすいヘッダ情報が変わる。前記の例では、送信元IPアドレスであるか宛先IPアドレスであるかがエントリによって違う。
本実施の形態によれば、第1エントリ情報EDAとして、そのエントリを限定しやすい(他のエントリと異なっている)ヘッダ情報に関する値を指定することによって、第2エントリ情報EDBを読み出す機会を減らすことができる。なお、エントリによって前記ヘッダ情報が異なるので、第1エントリ情報EDAに指定したヘッダ情報の種別を表すエントリ情報種別を加える。
例として、4台のサーバと32台の端末があり、各サーバから各端末へのフレームを特定する128個(=4*32)のエントリと、各端末から各サーバへのフレームを特定する128個(=32*4)のエントリの合計256個のエントリを検索テーブルに記憶する場合、従来構成であれば、1エントリあたりの読み出しビット数は64ビット(=送信元IPアドレス32ビット+宛先IPアドレス32ビット)であった。
本例によれば、エントリ毎に読み出される第1エントリ情報EDA、すなわち、端末側IPアドレス32ビット+エントリ情報種別1ビットに、第1エントリ情報EDAに適合する確率、すなわち端末側IPアドレスが一致する確率である4(サーバの台数分)/256エントリで読み出される、第2エントリ情報EDB(サーバ側IPアドレス32ビット)を加えた、33.5ビット(=第1エントリ情報EDA33ビット+第2エントリ情報EDB32ビット*4/256)となる。
なお上記では、第1エントリ情報EDAとして、そのエントリを限定しやすい(他のエントリと異なっている)ヘッダ情報に関する値を指定したが、第1エントリ情報EDAのビット数を削減するために、前記ヘッダ情報に関する値に対して所定のハッシュ演算を施して得たハッシュ値を用いることも可能である。
[第2の実施の形態]
次に、図5を参照して、本発明の第2の実施の形態にかかるフレーム検索処理装置10について説明する。図5は、第2の実施の形態にかかる検索処理部の要部を示すブロック図である。
第1の実施の形態では、図3に示したように、第1検索テーブル22A用の第1テーブルメモリと第2検索テーブル22B用の第2テーブルメモリの2個のテーブルメモリM1,M2を使用する場合を例として説明した。本実施の形態では、1個の共通テーブルメモリM0に、第1検索テーブル22Aと第2検索テーブル22Bの両方を実現する場合について説明する。
本実施の形態において、第1読出回路23Aは、クロックに基づき時間の経過に合わせてエントリi(i=1〜Ne)を変えながら、第1検索テーブル22Aが記憶する第1エントリ情報EDA[i]を次々と読み出し、各比較回路3n(n=1〜N)に分配する。具体的には、前記共通テーブルメモリの各アドレスa(a=0〜Ne−1)に第1エントリ情報EDA[a+1]を記憶する。さらに、前記読み出すアドレスaを時間の経過に合わせて、0〜Ne−1まで順番に変える。なお前記方法において、アドレスaが最後のエントリNe−1に達したときは0に戻るものとする。
ここで、第1エントリ情報EDA[i]の読み出しから、第2エントリ情報EDB[i]の読み出しまでの時間差Td内に、読み進むエントリの数をCdとすると、前記共通テーブルメモリの各アドレスaには、第1エントリ情報EDA[a+1]を記憶しておくとともに、第2エントリ情報EDB[a+1−Cd]を記憶しておく。なお、a+1−Cdの値が負の場合は第2エントリ情報EDB[Ne+a+1−Cd]を記憶する。
また、第1読出回路23Aによって、アドレスaに記憶された第1エントリ情報EDA[a+1]が読み出されると同時に、第2エントリ情報EDB[a+1−Cd]が共通テーブルメモリから読み出される。
つまり、時間Td前に第1検索テーブル22Aから読み出された第1エントリ情報EDA[a+1−Cd]と同じエントリで第2検索テーブル22Bから読み出された第2エントリ情報EDB[a+1−Cd]が、エントリ(a+1)の第1エントリ情報EDA[a+1]と合わせて読み出されることになる。
ただし、前記共通テーブルメモリとして、第2エントリ情報EDB[i](i=1〜Ne)に対する読出実施の有無を示す信号である読出制御信号を入力可能なメモリを用いる。また、前記読出制御信号として、全ての比較回路3n(n=1〜N)からの読出判定結果RJn[i]を示す信号に対する論理演算の結果、すなわち、少なくとも1個の読出判定結果RJが第2検索テーブル読出ありを示すとき読出制御信号が読出ありを示す値とする演算の結果を用いる。
つまり、エントリ(a+1)の第1エントリ情報EDA[a+1]とエントリ(a+1−Cd)の第2エントリ情報EDB[a+1−Cd]とを共通テーブルメモリから読み出すために、共通テーブルメモリに読み出しアドレスaを入力するが、これと併せて、エントリ(a+1−Cd)に対する読出判定結果RJn[a+1−Cd]のなかに第2検索テーブル読出ありを示す場合に、エントリ(a+1−Cd)の第2エントリ情報EDB[a+1−Cd]を読み出すための読出制御信号を共通テーブルメモリに入力することになる。
図5の構成例と、前述した図3の構成例との主な差異は、第1検索テーブル22Aと第2検索テーブル22Bが1個の検索テーブル用の共通テーブルメモリM0に収容されている点である。また、前記に伴って、図3に記載されていた第2読出アドレスRAB[i]と前記信号を生成する第2読出アドレス生成部41Bが不要となって削除されている。
また、図3の構成例では、第1読出アドレスRAA[i]を遅延させて前記第2読出アドレスRAB[i]を生成していたが、図5の構成例では、前記第2読出アドレスRAB[i]が不要となることに伴って、第1読出回路23Aから第2読出回路23Bへの信号である第1読出アドレスRAA[i]が削除されている。
共通テーブルメモリの読出アドレス[i]が指すワードには、エントリ番号がiの第1エントリ情報EDA[i]とともに、エントリ番号がI’=i−Cd(i≦CdのときはI’=Ne−Cd+i)の第2エントリ情報EDB[I’]を格納する。前記Cdは時間Td内に共通テーブルメモリから読み出されるエントリの数である。このCdは、固定値でありTdがクロック3サイクル分の時間であり、1サイクル毎に1エントリが共通テーブルメモリから読み出される場合にはCd=3となる。
なお、図4の説明で示した、第1読出アドレスRAA[i]と第1読出有効信号REA[i]を、第1検索テーブル22Aが入力してから、第1エントリ情報EDA[i]を出力するまでの、検索テーブル読出にかかる遅延量が変動する場合は、各比較回路3n内あるいは第2読出回路23B内において、前記検索テーブル読出にかかる遅延量の変動を吸収することによって、第1読出信号RA[i]を共通テーブルメモリに入力する時点から第2読出信号RBを前記共通テーブルメモリに入力するまでの時間差を固定値とする必要がある。
本実施の形態において、上記以外の構成については、第1の実施の形態と同様であり、ここでの説明は省略する。
[第2の実施の形態の動作]
次に、図6を参照して、本実施の形態にかかる検索処理部12の動作について説明する。図6は、第2の実施の形態にかかる検索処理部の動作を示すタイムチャートであり、比較回路3nの個数Nが2の場合を例として、検索処理部12内の各信号について時間の経過(左から右)に伴う変化が示されている。
図6には、図4の第1読出アドレスRAA[i]と第2読出アドレスRAB[i]がなく、図4の第1読出アドレスRAA[i]が読出アドレスRAD[i]に代わっている。
図6において、第1読出有効信号REA[i]が有効時、第1読出アドレスRAA[i]=i−1の入力から2サイクル後に第1検索テーブル22Aから第1エントリ情報EDA[i]が読み出される。また、第2読出有効信号REB[i]が有効時、その時点から2サイクル後に第2エントリ情報EDB[i]が出力される。
読出アドレスRAD[i]=i−1のワードには、第1エントリ情報EDA[i]と第2エントリ情報EDB[i−Cd](Cd=3)が格納されているので、読出アドレスaのワードから第2エントリ情報EDB[a−2]が読み出される。
前記2サイクルの遅延は、前記共通テーブルメモリが入力したアドレス等の信号をラッチすることで生じる1クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる1クロックの遅延を合わせた値である。
本実施の形態において、上記以外の動作については、第1の実施の形態と同様であり、ここでの説明は省略する。
[第2の実施の形態の効果]
このように、本実施の形態は、前記第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]を読み出して出力するようにしたものである。
これにより、前記第1検索テーブル22Aおよび前記第2検索テーブル22Bごとに、第1テーブルメモリM1および第2テーブルメモリM2を用いる場合と比較し、これらのテーブルメモリの各々に備わっていたアドレスデコーダ回路、すなわち、アドレスを入力したとき前記アドレスに対応するメモリセルを選択するための信号を生成する回路に代わって、1個の共通テーブルメモリM0のアドレスデコーダ回路で済ませることができるため、回路規模を削減することができる。
[第3の実施の形態]
次に、図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を生成する場合について説明する。
本実施の形態において、検索処理部12には、主な回路部として、フレーム情報振分回路21、第1検索テーブル22A、第2検索テーブル22B、第1読出回路23A、第2読出回路23B、N個の比較回路3n(n=1〜N;Nは2以上の自然数)、および検索結果合流回路24が設けられている。
第1検索テーブル22Aは、Ne個(Neは1以上の自然数)のエントリi(i=1〜Ne)を有し、各エントリiに第1エントリ情報EDA[i]を記憶する。
第2検索テーブル22Bは、Ne’個(Ne’は1以上の自然数)のエントリj(j=1〜Ne’)を有し、各エントリjに第2エントリ情報EDB[j]を記憶する。
第1検索テーブル22Aは、第1読出回路23Aから第1読出信号RAを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第1エントリ情報EDA[i]を読み出す。
同様に、第2検索テーブル22Bは、第2読出回路23Bから第2読出信号RBを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第2エントリ情報EDB[i]を読み出す。
第1の実施の形態では、第1検索テーブル22Aのエントリiに記憶された第1エントリ情報EDA[i]と、エントリ番号iが同じ第2検索テーブル22Bのエントリiに記憶された第2エントリ情報EDB[i]とのセットが、従来技術におけるエントリ情報に相当していたが、本実施の形態では、第1検索テーブル22Aに記憶された第1エントリ情報EDA[i]の中に、セットとなるべき第2検索テーブル22Bのエントリ番号が含まれる。
つまり、前記第1エントリ情報EDA[i]が表現する第1検索条件とフレーム情報FDとが適合し、かつ、前記第1エントリ情報EDA[i]に第2検索テーブル22Bのエントリ番号である第2のエントリ番号ENB[i]が含まれるとき、第2エントリ情報EDB[第2のエントリ番号ENB[i]]が表現する第2検索条件と前記フレーム情報FDが適合した場合に、フレームに適合する検索条件を持つエントリを見つけたことになる。
したがって、従来の検索テーブルにおける、エントリiのエントリ情報を、第1検索テーブル22Aの第1エントリ情報EDA[i](第2のエントリ番号ENB[i]を除く)と第2検索テーブル22Bの第2エントリ情報EDB[第2のエントリ番号ENB[i]]とに分割したことになる。
フレーム情報振分回路21からフレーム情報FDn(n=1〜N)を入力した比較回路3nは、前記フレーム情報FDnを入力した時点で検索を開始し、前記フレーム情報FDnと、第1読出回路23Aが第1検索テーブル22Aから読み出したエントリi(i=1〜Ne)の第1エントリ情報EDA[i]とに基づいて、前記フレーム情報FDnが前記第1エントリ情報EDA[i]が表す検索条件に適合するか否かの第1適合判定を行って、第1適合判定結果CJAn[i]を得る。なお、前記第1エントリ情報EDA[i]には、第2のエントリ番号ENB[i]が指定されているとする。
さらに、前記比較回路3nは、第2検索テーブル22Bから前記第2のエントリ番号ENB[i]の第2エントリ情報EDB[第2のエントリ番号ENB[i]]を読み出すか否かの第2検索テーブル読出判定を、前記第1適合判定結果CJAに基づいて行うとともに、第2読出回路23Bに前記読出判定結果RJn[i]を出力する。
本実施の形態では、第1適合判定結果CJAn[i]が適合を示す場合に、第2検索テーブル22Bから第2エントリ情報EDB[第2のエントリ番号ENB[i]]を読み出す(第2検索テーブル読出あり)と判定し、前記第1適合判定結果CJAn[i]が不適合を示す場合に、第2検索テーブル22Bから第2エントリ情報EDB[第2のエントリ番号ENB[i]]を読み出さない(第2検索テーブル読出なし)と判定する。すなわち、本例では、第1適合判定とは別に第2検索テーブル読出判定を行う必要はなく、第1適合判定結果CJAn[i]を用いて読出判定結果RJn[i]を得ることができる。
ここで、前記比較回路3nがフレーム情報FDnと第1エントリ情報EDA[i]とに基づいて、第2読出回路23Bに第2検索テーブル読出ありを示す読出判定結果RJn[i]を出力した場合、第2読出回路23Bは第2検索テーブル22Bから第2エントリ情報EDB[第2のエントリ番号ENB[i]]を読み出して、前記比較回路3nに入力する。このとき、前記比較回路3nは、前記フレーム情報FDと、前記第2エントリ情報EDB[第2のエントリ番号ENB[i]]とに基づいて、前記フレーム情報FDnが前記第2エントリ情報EDB[第2のエントリ番号ENB[i]]に適合するか否かの第2適合判定を行って、第2適合判定結果CJB[i]を得る。
前記比較回路3nは、前記第1適合判定結果CJAn[i]と前記第2適合判定結果CJB[i]に基づいて、エントリiの検索条件が前記フレーム情報FDnに適合するか否かを判定する統合適合判定を行う。また、前記統合適合判定により適合と判断されたエントリが見つかった時点、あるいは、全てのエントリについてフレーム情報FDnとの判定を終えた時点で、前記比較回路3nは検索を終了し、検索結果SRnを出力する。
なお、第1エントリ情報EDAまたは第2エントリ情報EDBにエントリの適用優先度を含み、統合適合判定により適合とされたエントリのなかで前記エントリの適用優先度が最も高いエントリを見つける例では、統合適合判定により適合とされたエントリが1個見つかった時点で検索を終了するのではなく、全エントリについて統合適合判定を終えるか、上限の適用優先度を持つエントリが見つかった場合にのみ、検索を終了する。
前記比較回路3nは、前記統合適合判定によって得られた結果(例えば前記判定において適合したエントリの番号iや前記エントリの第2エントリ情報EDB[i]に含まれる結果を示す情報;通過/廃棄を示す情報や送出先を示すポート番号など)を、検索結果SRnとして、検索結果合流回路24に対して出力する。
前記比較回路3nは、エントリiについて、第1エントリ情報EDA[i]が第1検索テーブル22Aから読み出された後に得られる第1適合判定結果CJAn[i]と、その後の第2エントリ情報EDB[i]が第2検索テーブル22Bから読み出された後に得られる第2適合判定結果CJB[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適合判定結果CJAも合わせて保持する。
これにより、エントリの更新間隔を、第1適合判定結果CJAn[i]を得てから第2適合判定結果CJB[i]を得るまでの時間以上とする必要がなくなり、検索処理速度を向上できる。
上記の全てのエントリについてフレーム情報との判定を終えた時点を知る判定終了特定方法の例として、フレーム情報FDn(n=1〜N)を比較回路3nが入力した時点からの経過時間を前記比較回路3nが測っておき、前記経過時間が予め定められた時間Tsに達したタイミングを用いる方法がある。この判定終了特定方法は、各エントリの処理時間が固定値でありエントリ数も固定値であることから、全エントリを検索するのにかかる時間も固定値となることを利用した方法である。また別の方法として、フレーム情報FDn(n=1〜N)を比較回路3nが入力した時点からの統合適合判定の回数を計数し、その回数がN(全エントリ数)に達したタイミングを用いることもできる。
第1読出回路23Aは、時間の経過に合わせてエントリi(i=1〜Ne)を変えながら、第1検索テーブル22Aが記憶する第1エントリ情報EDA[i]を次々と読み出し、第2のエントリ番号ENB[i]を除く前記第1エントリ情報EDA[i]を、各比較回路3n(n=1〜N)に分配する。また、前記第2のエントリ番号ENB[i]を、第2読出回路23Bに対して出力する。
第1エントリ情報EDAの読み出し方法の例として、第1検索テーブル22Aを第1テーブルメモリによって構成し、前記第1テーブルメモリの各アドレスa1(a1=0〜Ne−1)に第1エントリ情報EDA[a1+1]を記憶し、前記読み出すアドレスa1を時間の経過に合わせて、0〜Ne−1まで順番に変える方法がある。なお、この方法において、アドレスa1が最後のエントリNe−1に達したときは0に戻るものとする。ここで、各比較回路3n(n=1〜N)が出力する検索処理中であるか否かを示す検索状態SSnを、第1読出回路23Aが入力して、全ての比較回路3nが検索処理を行っていない期間中の、前記読み出しを行わないことにより、第1検索テーブル22Aの読み出しが不要な期間の消費電力を削減できる。
第2読出回路23Bは、第1読出回路23Aから第2のエントリ番号ENB[i](i=1〜Ne)を入力する毎に、第2検索テーブル22Bが記憶する第2エントリ情報EDB[第2のエントリ番号ENB[i]]を読み出し、各比較回路3n(n=1〜N)に分配する。ただし、第1エントリ情報EDA[i]の読み出しから予め定められた一定の時間差Tdの後に、第2エントリ情報EDB[[第2のエントリ番号ENB[i]]の読み出しを行う。
また、前記第2エントリ情報EDB[第2のエントリ番号ENB[i]]の読み出しを行うのは、少なくとも1個の比較回路3nから第2検索テーブル読出ありを示す読出判定結果RJn[i]を入力した場合に限る。なお、検索処理を行っていない比較回路3nは、第2検索テーブル読出なしを示す読出判定結果RJn[i]を出力することで、比較回路3nが検索処理中であるか否かを区別する必要なく、各読出判定結果RJn[i](n=1〜N)に基づいて、第2エントリ情報EDB[第2のエントリ番号ENB[i]]の読み出し実施の有無を判定することができる。
上記の時間差Tdは、(a)第1読出回路23Aが第1エントリ情報EDA[i](i=1〜Ne)の読み出しを開始してから比較回路3n(n=1〜N)に前記第1エントリ情報EDA[i]が入力されるまでの時間(=第1検索テーブル22Aの読み出しに要する時間+第1エントリ情報EDAを各比較回路3nに分配するのに要する時間)、(b)比較回路3n(n=1〜N)が第1エントリ情報EDA[i]を入力してから読出判定結果RJn[i]を第2読出回路23Bに出力するまでの時間(=第2検索テーブル読出判定に要する時間)、(c)第2読出回路23Bが全ての比較回路3n(n=1〜N)から読出判定結果RJn[i]を入力してから第2エントリ情報EDB[第2のエントリ番号ENB[i]]の読み出しを行うと判定して第2エントリ情報EDB[第2のエントリ番号ENB[i]]の読み出しを開始するまでの時間(=第2検索テーブル22Bの読み出し有無を判断するのに要する時間)、の和となる。
第2読出回路23Bは、第1読出回路23Aがエントリiの第1エントリ情報EDA[i]を読み出す時点からTdの遅延をおいて、各比較回路3n(n=1〜N)からの読出判定結果RJn[i]の中に第2検索テーブル読出ありを示すものが含まれる場合に、前記エントリiの第2エントリ情報EDB[第2のエントリ番号ENB[i]]を読み出す。
この読み出し方法の例として、第2検索テーブル22Bを第2テーブルメモリによって構成し、前記第2テーブルメモリの各アドレスa2(a2=0〜Ne’−1)に第2エントリ情報EDB[a2+1]を記憶し、前記読み出すアドレスa2を、第2のエントリ番号ENB[i]とする。さらに、前記第2テーブルメモリからの読出実施の有無を示す信号である読出制御信号として、読出判定結果RJn[i]を示す信号に対する論理演算(少なくとも1個の読出判定結果RJが第2検索テーブル読出ありを示すとき読出制御信号が読出ありを示す値とする演算)の結果を用いる。
次に、図8を参照して、本実施の形態にかかる第1読出回路23Aおよび第2読出回路23Bについて説明する。図8は、第3の実施の形態にかかる検索処理部の要部を示すブロック図である。
図8に示すように、第1読出回路23Aは、第1読出アドレス生成部41A、第1読出有効生成部42A、および第2のエントリ番号分離部43Aを有している。
このうち、第1読出アドレス生成部41Aおよび第1読出有効生成部42Aは、前述した図3と同一であり、各々、クロックに合わせて、第1読出アドレスRAA[i]および第1読出有効信号REA[i]を生成して、第1検索テーブル22Aに出力し、第1エントリ情報EDA[i]を読み出す機能を有している。
また、第2のエントリ番号分離部43Aは、前記第1検索テーブル22Aから読み出した第1エントリ情報EDA[i]を入力し、前記第1エントリ情報EDA[i]に含まれる第2のエントリRNB番号[i]を分離して第2読出回路23Bに出力する機能と、前記第1エントリ情報EDA[i]から前記第2のエントリ番号ENB[i]を分離した残りの部分を、第1エントリ情報EDA[i]として各比較回路3n(n=1〜N)に分配する機能とを有している。なお、前記第1検索テーブル22Aが出力した第1エントリ情報EDA[i]を第1読出回路23Aと各比較回路3nに分配する簡易的な構成であってもよい。
第2読出回路23Bは、第2読出アドレス生成部41Bと第2読出有効生成部42Bを有している。
このうち、第2読出有効生成部42Bは、図3と同一であり、各比較回路3n(n=1〜N)から読出判定結果RJn[i]を入力し、1個以上の読出判定結果RJn[i]が読出ありを示すとき、有効を示す第2読出有効信号REB[i]を出力する機能を有している。
また、第2読出アドレス生成部41Bは、第2のエントリ番号ENB[i]を入力し、前記番号を基に第2読出アドレスRAB[i]を生成して出力する機能を有している。
第2検索テーブル22Bは、各エントリjに第2エントリ情報EDB[j]を格納するが、前記エントリ番号jから、前記第2エントリ情報EDB[j]が記憶された、第2検索テーブル22Bの実態である第2テーブルメモリM2のアドレスを、簡単な演算によって生成することができる。
前記演算の例は、第2テーブルメモリのアドレス=j−1であり、前記例では、エントリ番号jの第2エントリ情報EDB[j]は、第2テーブルメモリのアドレス=j−1にあるワードに記憶される。なお、他の演算方法によってエントリ番号からアドレスを生成する方法であってもよい。前記例では、エントリ番号=第2のエントリ番号ENB[i]のとき、第2読出アドレス生成部41Bが第2検索テーブル22Bに出力する第2読出アドレスRAB[i]=第2のエントリ番号ENB[i]−1となる。
第1読出有効信号REA[i]と第1読出アドレスRAA[i]を第1検索テーブル22Aが入力してから時間Tdの経過後に、第2読出有効信号REB[i]が第2検索テーブル22Bに入力される。前記Tdは、第1読出アドレスRAA[i]と第1読出有効信号REA[i]を第1検索テーブル22Aが入力してから第1エントリ情報EDA[i]を出力するまでの遅延と、第2のエントリ番号分離部43Aが第1エントリ情報EDA[i]を入力してから各比較回路3nに第2のエントリ番号ENB[i]を除く前記第1エントリ情報EDA[i]を分配するまでの遅延と、比較回路3nが前記第1エントリ情報EDA[i]を入力してから前記入力に基づいて読出判定結果RJn[i]を出力するまでの遅延、第2読出有効生成部42Bが各比較回路3nから読出判定結果RJn[i]を入力してから前記に基づいて第2読出有効信号REB[i]を出力するまでの遅延と、の合計である。
一方、第2読出アドレスRAB[i]を第2読出有効信号REB[i]と同時に入力することが求められる第2テーブルメモリの場合、第1読出有効信号REA[i]と第1読出アドレスRAA[i]を第1検索テーブル22Aが入力してから第2読出アドレスRAB[i]が第2検索テーブル22Bに入力されるまでの時間はTdとなる必要がある。このTdは、第1読出アドレスRAA[i]と第1読出有効信号REA[i]を第1検索テーブル22Aが入力してから第1エントリ情報EDA[i]を出力するまでの遅延と、第2のエントリ番号分離部43Aが前記第1エントリ情報EDA[i]を入力してから第2のエントリ番号ENB[i]を抽出して出力するまでの遅延と、第2読出アドレス生成部41Bが前記第2のエントリ番号ENB[i]を入力してから第2読出アドレスRAB[i]を出力するまでの遅延と、の合計である。
[第3の実施の形態の動作]
次に、図9を参照して、本実施の形態にかかる検索処理部12の動作について説明する。図9は、第3の実施の形態にかかる検索処理部の動作を示すタイムチャートであり、比較回路3nの個数Nが2の場合を例として、検索処理部12内の各信号について時間の経過(左から右)に伴う変化が示されている。
図9において、検索状態SSn(n=1,2)、第1読出有効信号REA[i]、第1読出アドレスRAA[i]、第1エントリ情報EDA[i]、読出判定結果RJn[i](n=1,2)の各信号、および第2読出有効信号REB[i]の各信号は、前述した図4と同一であり、ここでの説明は省略する。
第2のエントリ番号ENB[i]は、第1検索テーブル22Aから読み出された第1エントリ情報EDA[i]に含まれる第2のエントリ番号ENB[i]を第2のエントリ番号分離部43Aが抽出して出力した信号であり、第1検索テーブル22Aへの第1読出有効信号REA[i]が有効時の第1読出アドレスRAA[i]の入力から2サイクル後に出力される。図9の例では、第1エントリ情報EDA[i]に、第2のエントリ番号ENB[i−1]の値が含まれている。
前記2サイクルの遅延は、前記第1テーブルメモリが入力したアドレス等の信号をラッチすることで生じる1クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる1クロックの遅延とを合わせた値であり、第1テーブルメモリの種類やメモリと前記第1読出回路23A等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。また固定遅延ではなくメモリの状況(例えば外部からの前記メモリへのアクセスの有無など)によって前記遅延量が変動する構成も可能である。
第2のエントリ番号分離部43Aが第1エントリ情報EDA[i]を入力してから、第2のエントリ番号ENB[i]を抽出して出力するまでの遅延は、本例ではクロック0サイクル分としている。これは、第1エントリ情報EDA[i]の予め定められたビット列を第2のエントリ番号ENB[i]として取り出す簡易な処理であるため、遅延なしと見なせる。
なお、図9の信号を表す各箱内の数字は信号値である第2のエントリ番号ENBi(1〜8;第2検索テーブル22Bのエントリ数=8)を表し、前記箱内の−の記号は第2エントリ情報EDBなし、すなわち第1エントリ情報EDAのみで判定可能なエントリであったことを意味する。
また、図9の第1エントリ情報EDA[4],[9]に含まれる第2のエントリ番号ENB[4],[9]の値がともに5となっているように、第1検索テーブル22Aの各々異なるエントリから読み出されている第1エントリ情報EDAの各々に含まれた第2のエントリ番号ENBの値が、同じ値をとることも可能であり、第1検索テーブル22Aのエントリが異なっていても、第2検索テーブル22Bの同じエントリを参照することができる。すなわち、検索条件の一部が一致している複数のエントリがある場合に、そのエントリ情報を第2検索テーブル22Bに格納することで検索条件の縮約が可能となる。
これらによって、第2検索テーブル22Bを、第1検索テーブル22Aのエントリ数よりも少ないエントリ数とすることが可能である。本例では、第1検索テーブル22Aのエントリ数=16に対して第2検索テーブル22Bのエントリ数=8としている。したがって、第2検索テーブル22Bのための第2テーブルメモリのメモリ量を削減することができる。
第2読出アドレスRAB[i]は、第2のエントリ番号ENB[i]に対応する第2テーブルメモリのアドレスであり、第2読出有効信号REB[i]が第2検索テーブル22Bに入力されるのと同時に、第2検索テーブル22Bに出力される。第2読出アドレスRAB[i]を前記第2読出有効信号REB[i]と同時に第2検索テーブル22Bに入力するために、第2読出アドレス生成部41Bは、第2のエントリ番号ENB[i]の入力から第2読出アドレスRAB[i]を出力するまでの遅延をクロック1サイクル分としている。
つまり、第1読出アドレスRAA[i]と第1読出有効信号REA[i]を第1検索テーブル22Aが入力してから、第1エントリ情報EDA[i]を出力するまでの遅延2サイクル、第2のエントリ番号分離部43Aが前記第1エントリ情報EDA[i]を入力してから第2のエントリ番号ENB[i]を抽出して出力するまでの遅延0サイクル、第2読出アドレス生成部41Bが前記第2のエントリ番号ENB[i]を入力してから第2読出アドレスRAB[i]を出力するまでの遅延1サイクル、の合計が、本例のTdの値3サイクルとなる。
なお、図9では、第2エントリ情報EDB[i]を読み出すための信号である、第2読出有効信号REB[i]と第2読出アドレスRAB[i]は、第2テーブルメモリに同時に入力される例を示している。しかし、同時入力ではないメモリ、例えば第2読出有効信号REB[i]を第2読出アドレスRAB[i]より所定のサイクルだけ先に入力する必要があるメモリ)を第2テーブルメモリとして使用することも可能であり、この場合は、第2読出回路23Bは、メモリによって規定された信号入力方法に従って、第2読出有効信号REB[i]や第2読出アドレスRAB[i]を生成することになる。
また、第2読出有効信号REB[i]と第2読出アドレスRAB[i]によって読み出すのではなく、コマンドを用いてアクセスが行われるメモリの場合、第2読出回路23Bは、第2読出有効信号REB[i]が有効を示す場合に、第2読出アドレスRAB[i]の位置に記憶されたデータを読み出すための第2読出コマンド[i]を生成することとなる。
第2エントリ情報EDB[第2のエントリ番号ENB[i]]は、第2読出有効信号REB[i]が有効時の第2読出アドレスRAB[i]の入力から2サイクル後に第2検索テーブル22Bから読み出されたデータである、第2エントリ情報EDB[i]が出力さ
れる。
なお、前記2サイクルの遅延は、前記第2テーブルメモリが入力したアドレス等の信号をラッチすることで生じる1クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる1クロックの遅延を合わせた値である。第2テーブルメモリの種類やメモリと前記第2読出回路23B等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。なお、図9の信号を表す各箱内の数字はエントリ番号i(1〜16)を表しており、第2読出有効信号REB[i]が有効を示したエントリ1=5,7,10,12について、出力されている。
[第3の実施の形態の効果]
このように、本実施の形態は、前記第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へ出力するようにしたものである。
これにより、第2エントリ情報EDBが不要であって、第1エントリ情報EDAのみで適合判定できるエントリがあるとき、前記エントリについては第2検索テーブル22Bのエントリを用意しなくとも済む。したがって、第2検索テーブル22Bのエントリ数は、第1検索テーブル22Aのエントリ数よりも少ないエントリ数で実現できるため、前記第2検索テーブル22Bの回路規模(メモリ量)を削減することができる。
[第3の実施の形態の動作例]
次に、本実施の形態にかかるフレーム検索処理装置10の動作例について説明する。
ここでは、フレーム情報抽出部11から入力されるフレーム情報FDとして、フレーム検索処理装置10が入力した入力フレームFINのIPヘッダ内に格納されている送信元IPアドレスと宛先IPアドレスを含む場合を例として取り上げて説明する。
上記フレーム情報FDに対する検索を行う場合の、第1エントリ情報EDAと第2エントリ情報EDBの例を、以下に説明する。
[ケース1]
第1エントリ情報EDA=エントリに適合するための宛先IPアドレスとそのマスク長と第2エントリ情報EDBの読出フラグと第2のエントリ番号ENB
第2エントリ情報EDB=エントリに適合するための送信元IPアドレスとそのマスク長
第1の実施の形態の[ケース4]に示したように、宛先IPアドレスのみに対する条件により適合と判定するエントリと、宛先IPアドレスと送信元IPアドレスの両方に対する条件により適合と判定するエントリの、両方がある検索を行う装置がある。例えば、宛先IPアドレスだけを見て廃棄判定するエントリと、宛先IPアドレスと送信元IPアドレスの両方を見て廃棄判定するエントリが混在するような検索テーブルの場合である。
このように、全てのエントリに共通の検索条件を表すエントリ情報(前記例では宛先IPアドレスとそのマスク長)と、一部のエントリのみに追加される検索条件を表すエントリ情報(前記例では送信元IPアドレスとそのマスク長)とがある場合に、前者のエントリ情報を第1エントリ情報EDAとし、後者のエントリ情報を第2エントリ情報EDBとすることによって、後者のエントリ情報を必要としないエントリに対する適合判定を行うとき、検索テーブルから後者のエントリ情報を読み出さないので、検索テーブルの読み出しビット数を削減することができ、第1の実施の形態の[ケース4]と同様の効果が得られる。
さらに、第2エントリ情報EDBを記憶する第2検索テーブル22Bのエントリ数を、第1エントリ情報EDAを記憶する第1検索テーブル22Aのエントリ数より少なくなることが期待できるので、第2検索テーブル22Bに必要なメモリの量を、第1の実施の形態の[ケース4]のように、第1検索テーブル22Aと第2検索テーブル22Bのエントリ数が同数である場合と比較して、削減することができる。
例えば、全エントリ(256エントリ)のうち1/2のエントリが宛先IPアドレスのみを条件とするエントリで残りのエントリが宛先IPアドレスに加えて送信元IPアドレスも条件とするエントリの場合、第1の実施の形態の検索処理部12であれば、1エントリあたりの平均読み出しビット数は、56.5ビット(=宛先IPアドレス32ビット+宛先IPアドレスのマスク長5ビット+第2エントリ情報EDBの読出フラグ1ビット+(送信元IPアドレス32ビット+送信元IPアドレスのマスク長5ビット)/2)となり、メモリ量は、19200ビット(=(送信元IPアドレス32ビット+宛先IPアドレス32ビット+送信元IPアドレスのマスク長5ビット+宛先IPアドレスのマスク長5ビット+第2エントリ情報EDBの読出フラグ1ビット)*256)となる。
一方、本例では、1エントリあたりの平均読み出しビット数は、64.5ビット(=宛先IPアドレス32ビット+宛先IPアドレスのマスク長5ビット+第2エントリ情報EDBの読出フラグ1ビット+第2のエントリ番号7ビット+(送信元IPアドレス32ビット+送信元IPアドレスのマスク長5ビット)/2)となり、メモリ量は、16256ビット(=(送信元IPアドレス32ビット+送信元IPアドレスのマスク長5ビット+第2エントリ情報EDBの読出フラグ1ビット+第2のエントリ番号7ビット)*256+(送信元IPアドレス32ビット+送信元IPアドレスのマスク長5ビット)*256/2)となる。
このように、第1の実施の形態の[ケース4]よりも第2のエントリ番号ENBのビット数分だけ、本例の1エントリあたりの平均読み出しビット数の方が大きくなるが、第2検索テーブル22Bのエントリ数の削減によって、検索テーブルのメモリ量を削減することができる。前記効果は、第2エントリ情報EDBを必要としないエントリ数の割合が大きいほど顕著になる。
[ケース2]
第1エントリ情報EDA=第2エントリ情報EDBから算出されたハッシュ値・エントリ情報種別・第2のエントリ番号ENB、
第2−1のエントリ情報=エントリに適合するための送信元IPv4アドレスと宛先IPv4アドレス、
第2−2のエントリ情報=エントリに適合するための送信元IPv6アドレスと宛先IPv6アドレス
第1の実施の形態の[ケース3]に示したように、第1エントリ情報EDAとして検索条件を表すビット列のハッシュ値を用いることで、検索テーブルからの読み出しビット数を削減することができる。例えば、IPv6の宛先IPアドレス(128ビット)や送信元IPアドレス(128ビット)のように、ビット数が多いフレーム情報FDと検索条件に対してハッシュ演算を施し、前記ハッシュ化によって短縮されたビット列間の一致比較を行い、前記比較で一致したときのみハッシュ化前のビット列を検索テーブルから読み出して適合判定を行う。
前記検索条件のハッシュ化されたビット列を第1エントリ情報EDAとして第1検索テーブル22Aに記憶し、ハッシュ化前のビット列を第2エントリ情報EDBとして第2検索テーブル22Bに記憶する。IPv4のフレームとIPv6のフレームの両方に対して検索処理を行う装置では、検索条件であるIPv4のIPアドレスとIPv6のIPアドレスのどちらか一方が、第2検索テーブル22Bのエントリに記憶される。
このとき、IPv6のIPアドレスが128ビットであるのに対してIPv4のIPアドレスが32ビットであるため、第2検索テーブル22Bの各エントリがビット数が大きいIPv6のIPアドレスを格納できるようにしておき、IPv4のIPアドレスを格納するときは、IPv6のIPアドレスを格納する領域の一部を使用し残りの領域を空けておくことになる。
このように、ビット数の異なる検索条件の一方をエントリに格納する場合には、ビット数の短い方の検索条件を格納したエントリには使用されない記憶領域が発生することになるため、検索テーブルの使用されない記憶領域によって検索テーブル用メモリの規模が必要以上に大きくなる。
そこで、本例では、上記のハッシュ値の利用と併せて、第1の実施の形態の[ケース5]に示したように、第1エントリ情報EDAにエントリ情報種別(本例ではIPv4かIPv6かを示す値)を加えるとともに、IPv4用の第2−1の検索テーブルとIPv6用の第2−2の検索テーブルを設ける。
各エントリの検索条件はIPv4かIPv6かのどちらか一方であるため、前記第2−1の検索テーブルの使用されているエントリ数と前記第2−2の検索テーブルの使用されているエントリ数とを合わせた数が、前記第1検索テーブル22Aの使用されたエントリ数となる。
さらに、第1エントリ情報EDAに第2のエントリ番号ENBを加え、前記エントリ情報種別がIPv4を示す場合には、前記第2のエントリ番号ENBを前記エントリの検索条件であるIPv4のIPアドレスを格納している第2−1の検索テーブルのエントリ番号として使用する。同様に、前記エントリ情報種別がIPv6を示す場合には、前記第2のエントリ番号ENBを前記エントリの検索条件であるIPv6のIPアドレスを格納している第2−2の検索テーブルのエントリ番号として使用する。
上記において、各比較回路3nは、第2−1の検索テーブルあるいは第2−2の検索テーブルから、前記第2エントリ情報EDB[第2のエントリ番号ENB[i]]を読み出すか否かの第2検索テーブル読出判定を、第1適合判定結果CJAに基づいて得る。
前記第1適合判定とは、フレーム情報FDが、第1エントリ情報EDA[i]に含まれるエントリ情報種別[i]に適合し(上記例ではフレームがIPv4の場合に前記エントリ情報種別がIPv4を示すか、あるいは、フレームがIPv6の場合に前記エントリ情報種別がIPv6を示す)、かつ、第2エントリ情報EDBから算出されたハッシュ値がフレーム情報FDから算出されたハッシュ値と一致する(上記例ではフレーム情報FDに含まれる送信元IPアドレスと宛先IPアドレスのビット列に対して所定のハッシュ演算(例えばSRC8など)を施したフレーム情報FDのハッシュ値と第1エントリ情報EDA[i]に含まれるハッシュ値が一致する)場合に適合と判定するものである。
また、第2検索テーブル読出判定は、前記第1適合判定において適合と判定されたとき、第2検索テーブル22Bから第2エントリ情報EDBを読み出すと判定する。さらに、前記比較回路3nは、第2読出回路23Bに対して前記読出判定結果RJn[i]を出力する。
また、第1読出回路23Aは、前記第1エントリ情報EDA[i]に含まれる第2のエントリ番号ENB[i]と、前記エントリ情報種別[i]を、第2読出回路23Bに対して出力する。
前記第2読出回路23Bは、少なくとも1個の比較回路3nからの読出判定結果RJn[i]が第2エントリ情報EDBの読み出しありを示す場合に、前記エントリ情報種別[i]に応じて、第2エントリ情報EDBを読み出す検索テーブルを、第2−1の検索テーブルと第2−2の検索テーブルから選択し、前記選択した検索テーブルの、前記第2のエントリ番号ENB[i]が示すエントリから、第2エントリ情報EDB[第2のエントリ番号ENB[i]]を読み出して、前記比較回路3nに入力する。
このように、本例では、ビット数の異なる検索条件(IPv4とIPv6の各IPアドレス)の一方をエントリに格納する場合に、各々異なる検索テーブル(第2−1の検索テーブルと第2−2の検索テーブル)に分けて記憶するため、1個の検索テーブルのエントリに格納する場合に生じていた使用されない記憶領域が発生しないため、検索テーブル用メモリの規模を抑制することができる。
例えば、全エントリ(256エントリ)のうち1/2のエントリがIPv4を条件とするエントリで残りのエントリがIPv6を条件とするエントリである場合、第1の実施の形態の検索処理部12であれば、メモリ量は、67840ビット(=(送信元IPアドレス128ビット+宛先IPアドレス128ビット+ハッシュ値8ビット+エントリ情報種別1ビット)*256)となる。一方、本例では、メモリ量は、45056ビット(=(送信元IPv6アドレス128ビット+宛先IPv6アドレス128ビット+ハッシュ値8ビット+エントリ情報種別1ビット+第2のエントリ番号7ビット)*128+(送信元IPv4アドレス32ビット+宛先IPv4アドレス32ビット+ハッシュ値8ビット+エントリ情報種別1ビット+第2のエントリ番号7ビット)*128)となる。
なお、上記の検索テーブル構成の他にも、第2−1の検索テーブルを、IPv4の宛先・送信元IPアドレスが格納できる容量を持つエントリとし、IPv6時には宛先・送信元IPアドレスのうち下位32ビット(IPv4のIPアドレス長と同じビット数)を前記第2−1の検索テーブルに格納し、第2−2の検索テーブルには、IPv6のIPアドレスの上位96bit分を格納する構成も可能である。
この場合は、第1の実施の形態と同様に第1検索テーブル22Aのエントリ番号を使って前記第2−1の検索テーブルのエントリを読み出すとともに、エントリ情報種別がIPv6の場合に限って、第1エントリ情報EDAに含まれる第2のエントリ番号ENBが示す、第2−2の検索テーブルのエントリを読み出す。
これにより、検索テーブルのビット数削減とともに、全エントリをIPv4用として使用することもできるので、全エントリ(256エントリ)のうち1/2のエントリがIPv4を条件とするIPv4専用のエントリで残りのエントリがIPv6を条件とするIPv6専用のエントリである場合と比較して、IPv4用のエントリに対するエントリ数の制限が緩和され、最大2倍のエントリ数まで設定可能となる。
[第4の実施の形態]
次に、図10を参照して、本発明の第4の実施の形態にかかるフレーム検索処理装置10について説明する。図10は、第4の実施の形態にかかる検索処理部の構成を示すブロック図である。
第1の実施の形態では、第1検索テーブル22Aから比較回路3nに対して第1エントリ情報EDAを出力する場合を例として説明した。本実施の形態では、第1読出回路23Aから比較回路3nに対して第1エントリ番号ENAを出力する場合について説明する。
本実施の形態において、検索処理部12には、主な回路部として、フレーム情報振分回路21、第1検索テーブル22A、第2検索テーブル22B、第1読出回路23A、第2読出回路23B、N個の比較回路3n(n=1〜N;Nは2以上の自然数)、および検索結果合流回路24が設けられている。
第1検索テーブル22Aは、Ne個(Neは1以上の自然数)のエントリi(i=1〜Ne)を有し、各エントリiに第1エントリ情報EDA[i]を記憶する。
第2検索テーブル22Bは、Ne個のエントリj(j=1〜Ne)を有し、各エントリjに第2エントリ情報EDB[j]を記憶する。
第1検索テーブル22Aは、第1読出回路23Aから第1読出信号RAを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第1エントリ情報EDA[i]を読み出す。
同様に、第2検索テーブル22Bは、第2読出回路23Bから第2読出信号RBを入力し、前記信号が示すアドレスから前記信号が示すタイミングで、記憶している第2エントリ情報EDB[i]を読み出す。
第1の実施の形態では、第1検索テーブル22Aから第1エントリ情報EDAを1個ずつエントリ番号に従った順番で読み出していた。したがって、1個のフレームに対する検索処理に要する時間は、第1検索テーブル22Aから全てのエントリを読み出すのに必要な時間に依存する。
例えば、第1検索テーブル22Aが256個のエントリを持ち、検索処理部12の駆動に利用されるクロックの1サイクル毎に、前記1個のエントリを読み出す装置では、前記検索処理に要する時間は、第1検索テーブル22Aから全てのエントリを読み出すのに必要な時間=256サイクルに、第1エントリ情報EDA[i]の読み出しから第2エントリ情報EDB[i]の読み出しまでに要する予め定められた一定の時間差Td(例:3サイクル)と統合適合判定の時間(例:1サイクル)を合わせた、4サイクル程度の時間を加えた値(例:260サイクル)となる。
つまり、各フレームに対する検索は、エントリ単位でのパイプライン処理によって1エントリあたり1サイクルで処理可能でありエントリ数と同数のサイクルの時間を要する。しかし、次のフレームに対する検索を開始するためには、前記パイプラインが空になるまでの時間、つまり、最後のエントリがパイプラインを抜けるまでの時間(=時間Td+統合適合判定に要する時間)を加えておく必要がある。この加算時間は、4サイクル程度となる。このように、検索処理に要する時間のうち、第1検索テーブル22Aから全てのエントリを読み出すのに必要な時間が大部分を占める。
なお、上記Tdは、第1読出アドレスRAA[i]と第1読出有効信号REA[i]を第1検索テーブル22Aが入力してから第1エントリ情報EDA[i]を出力するまでの2サイクル分の遅延と、比較回路3nが前記第1エントリ情報EDA[i]を入力してから前記入力に基づいて読出判定結果RJn[i]を出力するまでの1サイクル分の遅延と、第2読出有効生成部42Bが各比較回路3nから読出判定結果RJn[i]を入力してから前記に基づいて第2読出有効信号REB[i]を出力するまでの遅延(本例では単純な論理和の演算であるため遅延なし)と、の合計である。
第1検索テーブル22Aへの第1読出有効信号REA[i]が有効時の第1読出アドレスRAA[i]の入力から2サイクル後に出力されるのは、前記第1検索テーブル22A用のメモリに入力したアドレス等の信号をラッチすることで生じる1クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる1クロックの遅延があるためである。
したがって、第1の実施の形態によれば、検索テーブルのエントリ数の増大に応じて検索処理時間が長くなるが、性能(=単位時間に検索できるフレームの個数)を維持するためには、比較回路3nの並列度を増大させる(nを大きくする)必要がある。すなわち、検索テーブルのエントリ数増大によって、検索テーブルとして用いられるメモリの規模が増大するのみならず、比較回路3nの回路規模が増大するという問題が発生する。
そこで、本実施の形態では、第1読出回路23Aは、Nr個(Nrは1以上の自然数、Ne=Nr*Nlの関係がありNlは1以上の自然数)の第1エントリ情報EDA[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr、第1エントリ番号kは0以上かつNl未満の整数)を第1検索テーブル22Aから並列して同時に読み出して、前記Nr個の第1エントリ情報EDAを各比較回路3nに分配するようにしたものである。また、前記読み出し毎に、第1検索テーブル読出制御変数の値を+1し、最大値(Nl−1)に達した時点で0に戻るようにしたものである。
これにより、前記第1検索テーブル22Aからの読み出しは、Nr個ずつ第1エントリ情報EDAをエントリ番号に従った順番で行われるため、第1検索テーブル22Aから全てのエントリを読み出すのに必要な時間は、第1の実施の形態で必要な時間の1/Nrとなる。ただし、前記には後述する第1検索テーブル22Aの読出停止を示す信号が入力されている期間は含まれていない。
なお、第1読出回路23Aは、各比較回路3n(n=1〜N)が出力する検索中であるか否かを示す検索状態SSnを入力し、何れか1個の比較回路3nの検索状態SSnが検索中である場合に、第1検索テーブル22Aの読み出しを行う。
さらに、全ての比較回路3nについて、その検索状態SSnが検索停止中であることを示す場合は、第1検索テーブル22Aの読み出しを行わない。これにより、第1検索テーブル22Aの読み出しが不要な期間の消費電力を削減できる。
フレーム情報振分回路21は、フレーム情報抽出部11からフレーム情報FDを入力し、所定の比較回路選択方法に基づいて、前記フレーム情報FDの出力先である比較回路3nを決定し、前記比較回路3nに対して前記フレーム情報FDをフレーム情報FDnとして出力する機能を有している。
比較回路選択方法の例は、各比較回路3nが検索処理中であるか否かを判定し、前記検索処理を行っていない比較回路3nの1つを選択することである。この比較回路選択方法を簡単な回路で実現する例として、フレーム情報FDを入力したとき前回入力時に選択した比較回路3nの番号nを+1した番号の比較回路3(n+1)を選択する方法がある。この比較回路選択方法において、前回入力時に選択した比較回路3nの番号nがNの場合は、番号1の比較回路31を選択して、巡回的に比較回路3nを選択することになる。
比較回路3nは、フレーム情報振分回路21からのフレーム情報FDn(n=1〜N)の入力に応じて、前記フレーム情報FDnに適合する検索条件を持ったエントリを検索するための検索処理を実行する。
この検索処理において、比較回路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]に基づいて、第2検索テーブル22Bのエントリi(i=1〜Nr)から、第2エントリ情報EDB[i]を読み出すか否かを判定するための第2検索テーブル読出判定を行い、得られた読出判定結果RJn[i]を第2読出回路23Bに出力する。
さらに、比較回路3nは、第1適合判定結果CJAn[i]を得た後、第2エントリ情報EDB[i]とフレーム情報FDnに基づいて第2適合判定結果CJB[i]を得て、前記第1適合判定結果CJAn[i]と前記第2適合判定結果CJB[i]に基づいて、エントリiが前記フレーム情報FDnに適合するか否かを示す統合適合判定を行う。
このため、比較回路3nは、統合適合判定を行うまでの期間、前記第1適合判定結果CJAn[i]を一時的に保持しておく必要がある。なお、前記期間中に得られる別のエントリの第1適合判定結果CJAについても同様に保持しておく必要がある。
第2読出回路23Bは、各比較回路3nから各々Nr個の読出判定結果RJn[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)を入力する。ここで、Nr個のエントリ番号i=Nr*k+1,Nr*k+2,…,Nr*k+Nrの各々について、少なくとも1個の比較回路3nから第2検索テーブル読出ありを示す読出判定結果RJn[i]を入力したとき、前記エントリ番号であるiを第2読出回路23Bが持つ、後述の第2読出待ちキュー44Bに蓄積する。したがって、第2読出待ちキュー44Bには、第2検索テーブル22Bから読み出す必要があるエントリの番号が前記番号順に蓄積されることになる。
なお、第2読出待ちキュー44Bに前記エントリ番号の蓄積を行うことによって前記キューが所定の個数Ns以上のエントリ番号を蓄積した場合は、下記に示す前記キューからのエントリ番号の取出しによって蓄積可能な状態になるまで、前記キューへの蓄積を一時的に停止する。さらに、第1読出回路23Aに対して、第1検索テーブル22Aから第1エントリ情報EDAの読み出しを停止させるための、第1読出停止信号RSAを出力し、前記信号を受けて、第1読出回路23Aは第1エントリ情報EDAの読み出しを行わない。
これにより、第2検索テーブル読出待ちエントリキューのオーバーフローを防止する。この際、第1検索テーブル22Aに対する判定速度(1クロックあたりに判定するエントリ数=Nr)は第2検索テーブル22Bに対する判定速度(1クロックあたりに判定できるエントリ数=1)よりも大きい。
このため、第2読出待ちキュー44Bが前記オーバーフロー防止のための処理を行わないと、第1検索テーブル22Aに対する判定で第2検索テーブル読出となるエントリ数が第2検索テーブル22Bに対する判定速度を超える状況が発生したとき、第2読出待ちキュー44Bの蓄積が増大して、前記キューに蓄積可能な最大数を超えた(オーバーフローの発生)時点で、第2検索テーブル22Bに対する判定ができないエントリが発生するなどの問題が生じる。
前記第1検索テーブル読出の一時停止によって、第1検索テーブル22Aから全てのエントリを読み出すための時間が増大するため、前記第1検索テーブル22Aからの読み出しを一時停止した時間だけ、各比較回路3nの検索処理開始から終了までの時間が増加することになる。
例えば、Ne=256, Nr=8としたとき、前記一時停止がないと第1検索テーブル22Aの全エントリを読み出すために要する時間は、1クロックにつきNr個のエントリを読み出すので、32サイクル(=Ne/Nr)となるが、一時停止が最大となるケースである全エントリが第2検索テーブル22Bの読出ありとなった場合は、1クロックにつき1個のエントリとなってしまうため、256サイクルとなる。
したがって、各比較回路3nの検索処理に要する時間は一定値ではなく、比較回路3nに入力されたフレーム情報FDや、第1エントリ情報EDAおよび第2エントリ情報EDBの設定に応じて変化する。このため、比較回路3nの検索処理に要する時間が大きくなることで、全比較回路3nが検索処理中のときフレーム情報FDが装置に入力される可能性が生じる場合は、前記フレーム情報FDの検索処理部12への入力を、前記入力可能となるまで、すなわち、1個以上の比較回路3nで検索処理が終了するまで、一時的に停止させる。
また、第2読出回路23Bは、前記第2読出待ちキュー44Bに蓄積されているエントリ番号jを1個ずつ取り出して、第2検索テーブル22Bから第2エントリ情報EDB[j]を読み出し、前記第2エントリ情報EDB[j]を、そのエントリ番号jとともに、各比較回路3n(n=1〜N)に分配する。
前記キューから取り出されるエントリ番号は、FIFO機能に従って最も以前に蓄積されたものから取り出されるため、蓄積された順、すなわち、第2検索テーブル22Bから読み出す必要があるエントリをエントリ番号順に並べたときの順で、取り出されることになる。なお、第2読出待ちキュー44Bが空のとき、すなわち、エントリ番号が蓄積されていない状態のときは、第2読出回路23Bは第2検索テーブル22Bからの読み出しを行わない。
前記比較回路3nは、前記フレーム情報FDnと、前記第2エントリ情報EDB[j]とに基づいて、前記フレーム情報FDnが前記第2エントリ情報EDB[j]に適合するか否かの第2適合判定を行って、第2適合判定結果CJB[j]を得る。
さらに、前記比較回路3nは、エントリjについて、第1エントリ情報EDA[j]が第1検索テーブル22Aから読み出された後に得られる第1適合判定結果CJAn[j]と、その後の第2エントリ情報EDB[j]が第2検索テーブル22Bから読み出された後に得られる第2適合判定結果CJB[j]に基づいて、統合適合判定を行う。前記統合適合判定により適合と判断されたエントリが見つかった時点、あるいは、全てのエントリについてフレーム情報FDnとの判定を終えた時点で、前記比較回路3nは検索を終了し、検索結果SRnを出力する。
なお、第1エントリ情報EDAまたは第2エントリ情報EDBにエントリの適用優先度を含み、統合適合判定により適合とされたエントリのなかで前記エントリの適用優先度が最も高いエントリを見つける例では、統合適合判定により適合とされたエントリが1個見つかった時点で検索を終了するのではなく、全エントリについて統合適合判定を終えるか、上限の適用優先度を持つエントリが見つかった場合にのみ、検索を終了する。
前記比較回路3nは、前記統合適合判定によって得られた結果(例えば前記判定において適合したエントリの番号iや前記エントリの第2エントリ情報EDB[i]に含まれる結果を示す情報;通過/廃棄を示す情報や送出先を示すポート番号など)を、検索結果SRnとして、検索結果合流回路24に対して出力する。
また、各比較回路3nが第1エントリ情報EDA[i]を得てから第2エントリ情報EDB[i]を得るまでの時間が一定時間Tdである第1の実施の形態や第2の実施の形態とは異なり、本例では、第2読出回路23B内の第2読出待ちキュー44Bの状態によって、前記時間は変動する。
第1の実施の形態や第2の実施の形態では、比較回路3nが第1エントリ情報EDAを得てから時間Tdを経過した時点で第2検索テーブル22Bから入力した第2エントリ情報EDBは、同一エントリ番号に対応することが保証されているので、第2エントリ情報EDBを入力したとき前記エントリ番号が入力される必要はない。
しかし、本例では、第1エントリ情報EDAを得てから一定時間を経過したとき入力した第2エントリ情報EDBが同一エントリ番号に対応することが保証されないため、第2エントリ情報EDBと併せて前記エントリ番号を入力する。
各比較回路3nは、適合を示す第1適合判定結果CJAn[i]を得るとともに第2検索テーブル読出ありを示す読出判定結果RJn[i]を得たときのエントリ番号i(第2適合判定待ちエントリ番号)を一時的に保持しておく。
そして、第2エントリ情報EDB[j]と併せて入力された前記エントリ番号jと、前記保持したエントリ番号iとが一致した場合に、フレーム情報FDnが前記第2エントリ情報EDB[j]に適合するか否かの第2適合判定を行って、第2適合判定結果CJB[j]を得る。
また、第2適合判定結果CJB[j]を得る前に、前記エントリj以降のエントリi’についても第1適合判定を行ってエントリ番号i’を一時的に保持しておくことにより検索処理速度を向上させることができるため、第2適合判定待ちエントリ番号をキューに保持する。
各比較回路3nが全てのエントリについてフレーム情報FDnとの判定を終えた時点を知る判定終了特定方法の例として、フレーム情報FDnを比較回路3nが入力し検索を開始したときの第1エントリ番号ENAを保持しておき、第1検索テーブル22Aの各エントリの読み出しが一巡して第1エントリ番号ENAが前記保持していた値に達したタイミングを用いる方法がある。
次に、図11を参照して、本実施の形態にかかる第1読出回路23Aおよび第2読出回路23Bについて説明する。図11は、第4の実施の形態にかかる検索処理部の要部を示すブロック図である。
第1読出回路23Aは、クロックに合わせて、1サイクル前に出力した第1エントリ番号kを+1する更新を行い、第1読出アドレスRAA[k]として出力する機能を有している。ただし、装置の動作開始時と、第1エントリ番号kがNlとなった場合は0を出力する。また、第1読出停止信号RSAが停止を示すときは、前記第1エントリ番号kの更新を行わない。
また、第1読出回路23Aは、前記第1エントリ番号k(ただし、第1読出停止信号RSAが停止を示すときは、第1検索テーブル22Aのエントリ番号の範囲外の値である所定の無効値)を、所定の時間(第1検索テーブル22Aが第1エントリ情報EDA[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)を出力するまでの時間)だけ、遅延させて出力する。これにより、各比較回路3nに第1エントリ情報EDA[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)と同時に、第1エントリ番号kが入力される。また、第1読出停止信号RSAによって、第1検索テーブル22Aから読み出しが停止中であることを、所定の無効値を示す前記第1エントリ番号kによって各比較回路3nに通知する。
また、第1読出回路23Aは、各比較回路3n(n=1〜N)から、前記比較回路3nが検索中であるか検索停止中であるかを示す検索状態SSnを入力し、1個以上の比較回路3nに対応する前記検索状態SSnが検索中を示しており、かつ、第1読出停止信号RSAが停止を示していない期間に、有効を示す第1読出有効信号REA[k]を出力する。また、前記以外の期間は無効を示す第1読出有効信号REA[k]を出力する。
なお、全比較回路3n(n=1〜N)から検索停止を示す検索状態SSnを入力している期間、または、第1読出停止信号RSAが停止を示す期間は、無効を示す第1読出有効信号REA[k]を出力する。
第1検索テーブル22Aは、第1テーブルメモリM1によって実現されており、前記メモリの各アドレスk(k=0〜Nl)に位置する各ワードには、Nr個の第1エントリ情報EDA[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)が記憶される。
第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]が無効を示すときは前記読み出しと分配を行わない。
比較回路3nは、フレーム情報振分回路21から入力されたフレーム情報FDnを保持し、前記保持しているフレーム情報FDnと、クロックサイクル毎に入力されたNr個の第1エントリ情報EDA[i]の各々が表す検索条件が適合するか否かの第1適合判定を行って、クロックサイクル毎にNr個の第1適合判定結果CJAn[i]を得る。さらに、第2検索テーブル22BからNr個の第2エントリ情報EDB[i]の各々について読み出すか否かの第2検索テーブル読出判定を行って、クロックサイクル毎に第2読出回路23Bに前記Nr個の読出判定結果RJn[i]を出力する。
また、比較回路3nは、第1読出回路23Aから第1エントリ番号kを入力し、前記入力時点から所定の時間だけ、すなわち読出判定結果RJn[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)を出力するまでの時間だけ、遅延させて前記値を第2読出回路23Bへ出力する。これにより、読出判定結果RJn[i]と対応する第1エントリ番号kが同時に出力されることになる。
なお、第1エントリ番号kが所定の無効値を示す場合は、前記と同時に入力された第1エントリ情報EDA[i]を用いた第1適合判定や第2検索テーブル読出判定を行わない。これは、前記第1エントリ情報EDA[i]は第1検索テーブル22Aから読み出された値ではなく無効であるためである。
第2読出回路23Bは、第2読出有効生成部42Bと、第2読出待ちキュー44Bと、第2読出信号生成部から構成される。
第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読出待ちキュー44Bは、任意の1個の比較回路3nが出力した第1エントリ番号kをクロックサイクル毎に入力する。なお、全比較回路3nは、同時に同じ値の第1エントリ番号kを入力し同じ時間だけ遅延させて出力するので、同時に同じ値の第1エントリ番号kを出力しており、どの比較回路3nが出力した第1エントリ番号kを採用してもよい。
さらに、第2読出待ちキュー44Bは、第2読出有効生成部42Bから、クロックサイクル毎にNr個のエントリi(i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)について前記第2読出有効信号REB[i]を入力する。この際、有効を示す前記第2読出有効信号REB[i]を受けた場合に、前記入力した第1エントリ番号kを基に前記エントリ番号iを生成して、前記生成した番号をキュー(FIFO)に蓄積する。また、エントリ番号iは、例えば入力されたNr個の第2読出有効信号REB[i]のうち3番目が有効を示しているときは、エントリ番号iをNr*k+3という演算によって生成できる。なお、無効を示す第2読出有効信号REB[i’]のエントリ番号i’は蓄積しない。
また、第2読出待ちキュー44Bは、前記キューに所定の個数Ns以上のエントリ番号が蓄積されている期間については、停止を示す第1読出停止信号RSAを出力する。また、クロックに合わせて、前記キューに蓄積されているエントリ番号を取出して第2のエントリ番号jとして出力する。この際、前記キューが空(蓄積なし)の場合は、エントリ番号の無効値(エントリ番号の範囲外の値である所定の無効値;例えば0)を出力する。
なお、有効を示す第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読出信号生成部は、第2読出待ちキュー44Bから第2のエントリ番号jを入力し、前記エントリ番号の値が有効な範囲にある場合に、前記第2のエントリ番号jを基に、第2読出アドレスRAB[j]を生成して出力する。また、前記第2のエントリ番号ENBjの値が所定の無効値である場合に無効を示し、前記以外の場合に有効を示す、第2読出有効信号REB[j]を生成して出力する。また、前記第2のエントリ番号jを入力時点から所定の時間(第2検索テーブル22Bが第2エントリ情報EDB[j]を出力するまでの時間)だけ遅延させて前記値を出力する。これにより、各比較回路3nに第2エントリ情報EDB[j]と対応する第2のエントリ番号jが同時に入力されることになる。
第2検索テーブル22Bは、各エントリjに第2エントリ情報EDB[j]を格納するが、前記エントリ番号jから、前記第2エントリ情報EDB[j]が記憶された、第2検索テーブル22Bの実態である第2テーブルメモリのアドレスを、簡単な演算によって生成することができる。前記演算の例は、第2テーブルメモリのアドレス=j−1であり、前記例では、エントリ番号jの第2エントリ情報EDB[j]は、第2テーブルメモリのアドレス=j−1にあるワードに記憶される。
なお、他の演算方法によってエントリ番号からアドレスを生成する方法であってもよい。前記例では、エントリ番号=第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)が同時に各比較回路3nに入力される理由は、同時に入力されたエントリ番号kとエントリ情報[i]とが対応している、つまり、入力されたNr個のエントリ情報がどのエントリのものかを知るために、前記エントリ情報と同時に入力されたエントリ番号を用いることができる。
したがって、第1エントリ番号kとNr個の第1エントリ情報EDA[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)が同時に入力する方法以外にも、第1エントリ番号kの入力とNr個の第1エントリ情報EDA[i]の入力を固定の時間差とする方法によっても、前記エントリ番号とエントリ情報の対応づけが可能である。
また、各比較回路3nから第1エントリ番号kとNr個の読出判定結果RJn[i](i=Nr*k+1,Nr*k+2,…,Nr*k+Nr)が同時に第2読出回路23Bに入力される理由や、第2のエントリ番号jと第2エントリ情報EDB[j]が同時に各比較回路3nに入力される理由についても前記と同様であり、入力されたエントリ番号とエントリ情報や読出判定の結果とを同時入力という方法によって対応づけている。
本実施の形態において、上記以外の構成については、第1の実施の形態と同様であり、ここでの説明は省略する。
[第4の実施の形態の動作]
次に、図12および図13を参照して、本実施の形態にかかる検索処理部12の動作について説明する。図12は、第4の実施の形態にかかる検索処理部の動作を示すタイムチャートである。図13は、第4の実施の形態にかかる検索処理部の動作を示すタイムチャート(続き)である。これら図12および図13では、比較回路3nの個数が2の場合であって、エントリ数Nrが2の場合を例として、検索処理部12内の各信号について時間の経過(左から右)に伴う変化が示されている。
図12および図13において、検索状態SSn(n=1,2)の各信号は、Hレベル:検索処理中/Lレベル:検索停止中を表す信号であり、比較回路3nにフレーム情報FDn(n=1,2)が入力された時点でHレベル:検索処理中となり、1個のフレーム情報FDnに対して全エントリ(Ne=16)をテーブルから読み出した後(Nr=2であるため最短でNe/Nr=8のクロック経過後)にLレベル:検索処理停止となる。
第1読出有効信号REA[k]の信号は、Hレベル:有効・Lレベル:無効を表す信号であり、検索状態SS1と検索状態SS2の各信号の論理和に、第1読出停止信号RSAの論理積を行った信号となる。つまり、検索状態SS1または検索状態SS2が検索処理中(1個以上の比較回路3nが検索中)で、かつ、第1読出停止信号RSAが読出ありのとき、読出有効となる第1テーブルメモリの第1読出アドレスRAA[k]の位置に記憶された、2個(Nr=2)の第1エントリ情報EDA[i](i=2*k+1,2*k+2)が並列して同時に読み出されることになる。
第1読出アドレスRAA[k]の信号は、0〜7(Nl=Ne/Nr=16/2=8, k=0〜Nl−1)の範囲で繰り返しクロック毎に+1ずつ増加する。ただし、値が7の次は0となる。図12および図13の第1読出アドレスRAA[k]を表す各箱内の数字はエントリ番号k(0〜7)を表しており、エントリ番号kの前記信号値はkであり、エントリ番号kと第1読出アドレスRAA[k]は同じ値となる。
つまり、第1テーブルメモリのアドレスkに、第1エントリ情報EDA[2*k+1]と第1エントリ情報EDA[2*k+2]を記憶しておき、クロックサイクル毎に、エントリ番号をインクリメントさせて、前記エントリkに対応する2個の第1エントリ情報EDAを第1テーブルメモリから並列して同時に読み出す。
なお、第1エントリ情報EDA[i]を読み出すための信号である、第1読出有効信号REA[k]と第1読出アドレスRAA[k]は、第1テーブルメモリに同時に入力される例を示しているが、同時入力ではないメモリ、例えば第1読出有効信号REA[k]を第1読出アドレスRAA[k]より所定のサイクルだけ先に入力する必要があるメモリを、第1テーブルメモリとして使用することも可能である。この場合は、第1読出回路23Aは、メモリによって規定された信号入力方法に従って、第1読出有効信号REA[k]や第1読出アドレスRAA[k]を生成することになる。
また、第1読出有効信号REA[k]と第1読出アドレスRAA[k]によって読み出すのではなく、コマンドを用いてアクセスするメモリの場合は、第1読出回路23Aは、第1読出有効信号REA[k]が有効を示す場合に、第1読出アドレスRAA[k]の位置に記憶されたデータを読み出すための第1読出コマンド[k]を生成することとなる。
第1エントリ情報EDA[i]は、第1読出有効信号REA[k]が有効時の第1読出アドレスRAA[k]の入力から2サイクル後に第1検索テーブル22Aから読み出されたデータである、2個の第1エントリ情報EDA[i](i=2*k+1,2*k+2)が出力される。図12および図13の第1エントリ情報EDA[i]を表す各箱内の数字はエントリ番号i(1〜16)を表している。
なお、前記2サイクルの遅延は、前記第1テーブルメモリが入力したアドレス等の信号をラッチすることで生じる1クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる1クロックの遅延を合わせた値である。第1テーブルメモリの種類やメモリと前記第1読出回路23A等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。
また、固定遅延ではなくメモリの状況、例えば外部からの前記メモリへのアクセスの有無などによって、前記遅延量が変動する構成も可能である。この場合、前記の構成では、前記遅延の変動に応じて第1エントリ番号kを各比較回路3nに入力する必要があるため、前記遅延の変動を知りえない第1読出回路23Aから第1エントリ番号kを入力するのではなく、第1検索テーブル22Aから第1エントリ番号kを入力する。
読出判定結果RJn[i](n=1,2)の各信号は、読出有無を表す信号であり、図12および図13の箱が示された期間が、読出ありを示している。また、前記各箱内の数字はエントリ番号i(1〜16)を表している。
各比較回路3n(n=1,2)は、第1エントリ情報EDA[i]の入力から1サイクル後に読出判定結果RJn[i]を出力する。前記1サイクルの遅延は、比較回路3nで読出判定結果RJn[i]をラッチして出力することによって生じる。なお、第2検索テーブル読出判定nが、第1エントリ情報EDA[i]とフレーム情報FDnの複雑な演算を必要とする場合は、1サイクルより大きい遅延となる場合もある。
ここで、図12および図13において、読出判定結果RJ1[i]は、エントリ番号iが7,10,11,13について、読出ありを示す場合が図示されている。つまり、比較回路31は、第2エントリ情報EDB[7],[10],[11],[13]を読み出すという第2検索テーブル読出判定を得たことになる。
同様に、読出判定結果RJ2[i]は、エントリ番号iが8,9,12,4について読出ありを示す場合が図示されている。つまり、比較回路32は、第2エントリ情報EDB[8],[9],[12],[4]を読み出すという第2検索テーブル読出判定を得たことになる。
第2読出待ちキュー44Bは、上記の読出判定結果RJn[i]が有効となったエントリ番号である、7,8,9,10,11,12,13,4をキューに入力して蓄積し、クロック1サイクルにつき1個のエントリ番号を取り出して出力する。なお、クロック1サイクルにつき、最大2個(Nl=2)のエントリ番号をキューに入力する可能性がある。このため、キューのオーバーフローが生じないよう、キューに蓄積したエントリ番号の個数が3個以上のとき、すなわち、第1読出停止信号RSAを出力するためのキューの閾値を3と設定した場合、第1読出停止信号RSAによって、第1検索テーブル22Aからの第1エントリ情報EDAの読み出しを停止させる。
前記停止中は、第1エントリ情報EDAが各比較回路3nに入力されないため、結果として、前記キューへのエントリ番号の入力が停止する。なお、停止を示す第1読出停止信号RSAを出力しても、キューへのエントリ番号の入力が停止するまでには一定の遅延があるため、前記閾値を超えて前記遅延時間内にキューへの入力があった場合にもオーバーフローを生じない最大蓄積量をキューに設ける必要がある。
第2読出待ちキュー44Bには、図13に示すように、時刻T1に、まず前記キューにエントリ番号7とエントリ番号8が同時に入力されるが、前記キューが空の状態であるためエントリ番号7については前記キューに蓄積されることなく、第2読出信号生成部に出力され、第2読出信号生成部から第2読出アドレスRAB[7]として第2検索テーブル22Bに出力される。前記エントリ番号8についてはキューに蓄積される。次のクロックサイクルでは、前記キューにエントリ番号9とエントリ番号10が同時に入力されるが、前記キューにエントリ番号8が蓄積中であるため、前記エントリ番号9,10は前記キューに蓄積される。また、前記キューに蓄積中であったエントリ番号8については前記キューから出力され、第2読出信号生成部から第2読出アドレスRAB[8]として第2検索テーブル22Bに出力される。
時刻T2のクロックサイクルでは、前記キューにエントリ番号11とエントリ番号12が同時に入力されるが、前記キューにエントリ番号9,10が蓄積中であるため、前記エントリ番号11,12は前記キューに蓄積される。また、前記キューに蓄積中であったエントリ番号9については前記キューから出力され、第2読出信号生成部から第2読出アドレスRAB[9]として第2検索テーブル22Bに出力される。ここで、キューに蓄積されたエントリ番号は10,11,12の3個となって第1読出停止信号RSAを出力する閾値に達するので、第1読出停止信号RSAが読出停止を示す値(L)に変化している。
時刻T3のクロックサイクルでは、前記キューにエントリ番号13が入力されるが、前記キューにエントリ番号10,11,12が蓄積中であるため、前記エントリ番号13は前記キューに蓄積される。また、前記キューに蓄積中であったエントリ番号10については前記キューから出力され、第2読出信号生成部から第2読出アドレスRAB[10]として第2検索テーブル22Bに出力される。ここで、キューに蓄積されたエントリ番号は11,12,13の3個であるため、第1読出停止信号RSAを出力する閾値に達しているので、前クロックサイクルから引き続き、第1読出停止信号RSAが読出停止を示す値(L)を維持する。
時刻T4のクロックサイクルでは、入力がなく、前記キューに蓄積中であったエントリ番号11については前記キューから出力され、第2読出信号生成部から第2読出アドレスRAB[11]として第2検索テーブル22Bに出力される。ここで、キューに蓄積されたエントリ番号は11,12の2個となって第1読出停止信号RSAを出力する閾値未満となるため、第1読出停止信号RSAが読出ありを示す値(H)に変化している。
時刻T5のクロックサイクルも同様に入力がなく、前記キューに蓄積中であったエントリ番号12については前記キューから出力され、第2読出信号生成部から第2読出アドレスRAB[12]として第2検索テーブル22Bに出力される。
時刻T6のクロックサイクルも同様に入力がなく、前記キューに蓄積中であったエントリ番号13については前記キューから出力され、第2読出信号生成部から第2読出アドレスRAB[13]として第2検索テーブル22Bに出力される。なお、第1読出停止信号RSAによって読出停止となっていないならば、エントリ番号4の入力があるタイミングであるが、3サイクル前に第1読出停止信号RSAが読出停止を出力したことによって、第1エントリ情報EDA[3],[4]以後の読出が2サイクル分遅れている。
時刻T7のクロックサイクルも同様に入力がなく、前記キューも空となったため、第2読出有効信号REBは無効となる。
時刻T8のエントリ番号4が、第1検索テーブル読出停止によって2サイクル分遅れて入力される。前記キューが空の状態であるためエントリ番号4については前記キューに蓄積されることなく、第2読出信号生成部に出力され、第2読出信号生成部から第2読出アドレスRAB[4]として第2検索テーブル22Bに出力される。
第2エントリ情報EDB[i]は、第2読出有効信号REB[i]が有効時の第2読出アドレスRAB[i]の入力から2サイクル後に第2検索テーブル22Bから読み出されたデータである、第2エントリ情報EDB[i]が出力される。なお、前記2サイクルの遅延は、前記第2テーブルメモリが入力したアドレス等の信号をラッチすることで生じる1クロックの遅延と、メモリ内のセルに記憶されているデータを出力する前にラッチするために生じる1クロックの遅延を合わせた値であり、第2テーブルメモリの種類やメモリと前記第2読出回路23B等が別部品によって構成される装置の場合は、前記よりも大きい遅延となる可能性がある。なお、図12および図13の第2エントリ情報EDB[i]を表す各箱内の数字はエントリ番号i(1〜16)を表しており、第2読出有効信号REB[i]が有効を示したエントリ7,8,9,10,11,12,13,4について、出力されている。
[第4の実施の形態の効果]
このように、本実施の形態は、前記第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へ出力するようにしたものである。
これにより、第1の実施の形態では、第1検索テーブル22Aから第1エントリ情報EDAを1個ずつ読み出していたのに対して、本例ではNr個の第1エントリ情報EDAを一度に読み出すので、第1検索テーブル22Aから全てのエントリを読み出すのに必要な時間を、第1の実施の形態での構成と比較して1/Nrに短縮することができる。
第2検索テーブル22Bの読み出しが多数生じることで、第2検索テーブル読出待ちエントリキューが満杯となり、第1読出停止信号RSAによって第1検索テーブル22Aの読み出しを中断することになった場合、本例での第1検索テーブル22Aから全てのエントリを読み出すのに必要な時間は増大する。しかし、第1エントリ情報EDAが示す検索条件にフレーム情報FDが適合する可能性を低く抑えることで、例えば第1の実施の形態で述べたケース3のように、第1エントリ情報EDAにハッシュを用いて前記ハッシュ値のビット数を増やすことで、第2検索テーブル22Bの読み出し回数を削減できるため、前記時間増大を抑制可能である。
[実施の形態の拡張]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
10…フレーム検索処理装置、11…フレーム情報抽出部、12…検索処理部、13…フレームバッファ、14…フレーム合成部、21…フレーム情報振分回路、22A…第1検索テーブル、22B…第2検索テーブル、23A…第1読出回路、23B…第2読出回路、24…検索結果合流回路、31,32,3n,3N…比較回路、41A…第1読出有効生成部、41B…第2読出有効生成部、42A…第1読出アドレス生成部、42B…第2読出アドレス生成部、43A…第2エントリ番号分離部、44B…第2読出待ちキュー、M1…第1テーブルメモリ、M2…第2テーブルメモリ、M0…共通テーブルメモリ、FIN…入力フレーム、FD,FD1,FD2,FDn,FDN…フレーム情報、SS,SS1,SS2,SSn,SSN…検索状態、SR,SR1,SR2,SRn,SRN…検索結果、FOUT…出力フレーム、RA…第1読出信号、RAA…第1読出アドレス、REA…第1読出有効信号、RB…第2読出信号、RAB…第2読出アドレス、REB…第2読出有効信号、RAD…読出アドレス、EDA…第1エントリ情報、EDB…第2エントリ情報、ENA…第1エントリ番号、ENB…第2エントリ番号、RJ,RJn…読出判定結果、RSA…第1読出停止信号。

Claims (8)

  1. 入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、
    前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、
    前記検索処理部は、
    前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第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エントリ情報の読み出しを行わない
    ことを特徴とするフレーム検索処理装置。
  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エントリ情報の読み出しを行わない
    ことを特徴とするフレーム検索処理装置。
  3. 入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出部と、
    前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理部とを備え、
    前記検索処理部は、
    前記エントリごとに、当該エントリと対応する前記検索条件の一部からなる第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エントリ情報の読み出しを行わない
    ことを特徴とするフレーム検索処理装置。
  4. 請求項1〜請求項3のいずれかに記載のフレーム検索処理装置において、
    前記比較回路を複数備えるとともに、これら比較回路のうち前記適合エントリの検索中である比較回路以外のいずれか1つに対して、前記フレーム情報抽出部で得られた前記フレーム情報を振り分けるフレーム情報振分回路をさらに備えることを特徴とするフレーム検索処理装置。
  5. 請求項2に記載のフレーム検索処理装置において、
    前記第1読出回路は、前記第1エントリ情報を読み出す際、前記各エントリから巡回的に、複数の前記第1エントリ情報を並列的に読み出して前記各比較回路へ分配するための第1読出信号を前記第1検索テーブルへ出力し、
    前記比較回路は、前記エントリの前記第1エントリ情報を前記フレーム情報と比較する際、前記第1検索テーブルから分配された前記第1エントリ情報を前記フレーム情報と比較することにより、前記第1エントリ情報が前記フレーム情報と適合するか否か判定し、当該判定により得られた第1適合判定結果を前記第2エントリ情報の読出要否を示す読出判定結果として前記第2読出回路へ出力し、
    前記第2読出回路は、前記比較回路から出力された前記読出判定結果のうち読み出しありを示す読出判定結果について、当該読出判定結果を得た前記第1エントリ情報と対応する前記第2エントリ情報を示す第2エントリ番号をキューへ順次蓄積し、当該キューから順次読み出した前記第2エントリ番号に基づいて、当該第2のエントリ番号に対応するエントリからの前記第2エントリ情報の読み出しを指示する前記第2読出信号を生成し、当該第2読出信号を前記第2検索テーブルへ出力する
    ことを特徴とするフレーム検索処理装置。
  6. フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、
    検索処理部が、前記フレーム情報抽出ステップで抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、
    前記検索処理ステップは、
    第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エントリ情報の読み出しを行わない
    ことを特徴とするフレーム検索処理方法。
  7. フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、
    検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、
    前記検索処理ステップは、
    第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エントリ情報の読み出しを行わない
    ことを特徴とするフレーム検索処理方法。
  8. フレーム情報抽出部が、入力フレームに対して実行すべきフレーム処理を特定するためのフレーム情報を、前記入力フレームから抽出するフレーム情報抽出ステップと、
    検索処理部が、前記フレーム情報抽出部で抽出した前記フレーム情報を、予めエントリごとに登録されている検索条件と順次比較することにより、前記入力フレームと適合する適合エントリを検索し、得られた適合エントリと対応する検索結果を、前記入力フレームに対して実行すべきフレーム処理の内容を示す処理情報として出力する検索処理ステップとを備え、
    前記検索処理ステップは、
    第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エントリ情報の読み出しを行わない
    ことを特徴とするフレーム検索処理方法。
JP2012096289A 2012-04-20 2012-04-20 フレーム検索処理装置および方法 Expired - Fee Related JP5848185B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6319740B2 (ja) * 2014-03-25 2018-05-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ圧縮を高速化する方法、並びに、データ圧縮を高速化するためのコンピュータ、及びそのコンピュータ・プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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 日本電信電話株式会社 通信処理回路及び通信処理方法

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