(57)【特許請求の範囲】
【請求項１】
比較対象値及びこれに対応する中継アドレスを含むアドレス検索テーブルの構成データを保持する複数のレジスタを有し、宛先アドレスの入力データと前記比較対象値とを比較して前記宛先アドレスに対応する中継アドレスを検索するセルと、
前記アドレス検索テーブルの構成データを保持するレジスタの選択を制御して前記宛先アドレスとの比較内容を動的に変更することにより、前記セルの出力として前記宛先アドレスに対応する中継アドレスを得る制御部とを備え、
前記セルは、
前記宛先アドレスの入力データにおける任意のビット位置及びそのビット数を規定するビット選択値を保持する複数のレジスタを有するビット選択レジスタ群と、
前記比較対象値を保持する複数のレジスタを有する比較対象レジスタ群と、
前記比較対象レジスタ群で保持する比較対象値に対応する中継アドレス、及び次に使用するレジスタを選択するためのレジスタ選択値を保持する複数のレジスタを有する出力値レジスタ群とを、アドレス検索テーブルの構成データを保持するレジスタ群として備えると共に、
前記ビット選択レジスタ群から選択されたレジスタのビット選択値に従って前記宛先アドレスの入力データから対応するビット位置及びビット数の比較データを選択するセレクタと、
前記セレクタにより選択された比較データと前記比較対象レジスタ群から選択されたレジスタの比較対象値とを比較し、両者が一致した際に一致信号を出力する比較器と、
レジスタ選択信号に基づいて前記各レジスタ群のそれぞれのレジスタを選択し、それが保持するデータを出力するレジスタ選択手段とを備え、
前記制御部は、
外部から設定されるレジスタ選択値又は前記出力値レジスタ群から出力されたレジスタ選択値に基づいて前記レジスタ選択信号を生成するテーブル装置。
【請求項２】
比較対象値及びこれに対応する中継アドレスを含むアドレス検索テーブルの構成データを保持する複数のレジスタを有し、宛先アドレスの入力データと前記比較対象値とを比較して前記宛先アドレスに対応する中継アドレスを検索するセルと、
前記アドレス検索テーブルの構成データを保持するレジスタの選択を制御して前記宛先アドレスとの比較内容を動的に変更することにより、前記セルの出力として前記宛先アドレスに対応する中継アドレスを得る制御部とを備え、
複数の前記セルから前記アドレス検索テーブルを構成し、前記複数のセルのうち、比較動作を行うものとして選択したセルにより前記宛先アドレスの入力データと比較対象値とを比較して前記宛先アドレスに対応する中継アドレスを検索し、
前記複数のセルからの出力の論理和を算出する論理和回路を備え、
前記制御部は、前記比較動作を行うセル及び前記アドレス検索テーブルの構成データを保持するレジスタの選択を制御して前記宛先アドレスとの比較内容を動的に変更することにより、前記論理和回路の出力として前記宛先アドレスに対応する中継アドレスを得るテーブル装置。
【請求項３】
各セルは、
比較動作を行うセルを指定する比較命令信号の接続先セルを規定する接続情報、及び自セルで保持する比較対象値と宛先アドレスの比較データとの一致結果が検索処理におけるリーフ若しくは分岐であることを示す判定ビットを保持する複数のレジスタを有する接続情報レジスタ群と、
比較対象値を保持する複数のレジスタを有する比較対象レジスタ群と、
前記宛先アドレスの入力データにおける任意のビット位置及びそのビット数を規定するビット選択値を保持する複数のレジスタを有するビット選択レジスタ群と、
前記比較対象レジスタ群で保持する比較対象値に対応する中継アドレスと、次に使用するレジスタを選択するためのレジスタ選択値及び次に比較動作を開始させるセルを指定する指定コードを含む分岐コードとを保持する複数のレジスタを有する出力値レジスタ群とを、アドレス検索テーブルの構成データを保持するレジスタ群として備えると共に、
前記ビット選択レジスタ群から選択されたレジスタのビット選択値に従って前記宛先アドレスの入力データから対応するビット位置及びビット数の比較データを選択するセレクタと、
前記セレクタにより選択された比較データと前記比較対象レジスタ群から選択されたレジスタの比較対象値とを比較し、両者が一致した際に一致信号を出力する比較器と、
前記接続情報レジスタ群から選択されたレジスタの接続情報に基づいて、前記比較命令信号又は前記比較結果の一致信号を、自セルで使用するか、他の隣接するセルへ転送するか、又はその両方の処理を行うかをそれぞれ切り換えるクロススイッチと、
前記比較器から出力された一致信号と前記接続情報レジスタ群から選択されたレジスタの判定ビットとの論理積の算出結果に応じてイネーブル信号を生成する論理積ゲートと、
前記イネーブル信号の値に応じて、前記出力値レジスタ群から選択したレジスタの前記中継アドレス又は前記分岐コード若しくは０値を自セルの出力として選択するセル出力選択手段と、
レジスタ選択信号に基づいて前記各レジスタ群のそれぞれのレジスタを選択し、それが保持するデータを出力するレジスタ選択手段とを備え、
制御部は、
前記宛先アドレスの入力データの入力開始時に外部から設定された初期コードあるいは論理和回路から前記セル出力の論理和として出力された分岐コードに基づいて、前記レジスタ選択信号を生成して前記各レジスタ選択手段に出力すると共に、比較動作を開始するセルを指定する比較命令信号を生成して前記クロススイッチに出力することを特徴とする請求項２記載のテーブル装置。
【請求項４】
各セルは、接続情報レジスタ群の他に、自セルでの検索処理における比較結果の一致がリーフか分岐であることを示す判定ビットを専用に保持する複数のレジスタを有する判定ビットレジスタ群と、レジスタ選択信号に基づいて前記判定ビットレジスタ群のレジスタを選択し、それが保持する判定ビットを出力するレジスタ選択手段とを備え、
前記接続情報レジスタ群は、接続情報のみを保持することを特徴とする請求項２又は請求項３記載のテーブル装置。
【請求項５】
宛先アドレスの入力データに対する一致確率が高い順に、複数のセルの配列、各レジスタ群のレジスタ及びこれに保持したデータの選択順序を設定したことを特徴とする請求項２又は請求項３記載のテーブル装置。
【請求項６】
セルは、レジスタを指定する信号をデコードして外部から入力されたアドレス検索テーブルの構成データを対応する各レジスタに書き込むデコーダを備えたことを特徴とする請求項１から請求項５のうちのいずれか１項記載のテーブル装置。
【請求項７】
請求項１から請求項６のうちのいずれか１項記載のテーブル装置と、
入力したデータから宛先アドレスデータを抽出し、前記テーブル装置に出力する宛先アドレス抽出部と、
アドレス検索テーブルの構成データ及びこれを書き込むべき前記テーブル装置の各レジスタを指定する信号を前記テーブル装置に伝送する伝送部と、
前記テーブル装置の出力データとして得られた前記宛先アドレスに対応する中継アドレスを送信データに付加する中継アドレス付加部とを備えたアドレス検索装置。
【請求項８】
比較動作の開始時に用いるレジスタ及び／又はセルを指定する初期コードを保持し、外部からの制御信号に応じてテーブル装置に設定する制御レジスタを備えたことを特徴とする請求項７記載のアドレス検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータネットワーク等におけるパケット通信の宛先アドレスから中継アドレスを決定するアドレス検索装置及びこれに好適に用いられるテーブル装置に関するものである。
【背景技術】
【０００２】
コンピュータネットワークシステムでは、各コンピュータネットワーク間でのパケット通信を中継するためのルータ装置やＬＡＮスイッチ等のパケット中継装置が用いられる。パケット中継装置では、宛先アドレスに対応する中継アドレスのテーブルデータをテーブルメモリに記憶し、入力された宛先アドレスをテーブルメモリ内部から検索して中継アドレスを得ている。このようないわゆる検索装置には、例えば非特許文献１に開示されるようなアドレスサーチエンジンであるテーブル装置が用いられる。
【０００３】
【非特許文献１】“NEC μPD98421 High-speed Address Search Engine”パンフレット, ２００１年１１月発行, 資料番号S13450JJ5V0PF00, [online], [平成１７年６月１日検索], インターネット<URL:http://www.necel.com/comm/docu_download/d98421/ja/S13450JJ5V0PF00.pdf>
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のパケット中継では、ネットワークの回線収容数の増大に伴い、宛先アドレスに対応する中継アドレスのテーブルデータの容量が大きくなり、このようなテーブルを収容するメモリのサイズが大型化するという課題があった。このような状況でも、マルチメディアデータなど大容量データを遅延なく転送することが要求されており、当該テーブルを用いた検索装置の小型化と性能向上が益々求められている。
【０００５】
また、ネットワークアドレスは、例えばＩＰアドレスの一部で具現化され、そのビット長は可変である。しかしながら、従来のパケット中継では、アドレスを収納するテーブルをメモリ上に実装するにあたり、メモリのビット幅をＩＰアドレスのビット長に合わせる必要があり、短いネットワークアドレスに対してメモリにおいては無駄な記憶領域が生じるという課題があった。
【０００６】
例えば、アドレス検索のためにメモリに格納するアドレスデータは、必ずしもフルビットであるとは限らず、いわゆる「ｄｏｎ’ｔ  ｃａｒｅ」のビットが存在する。この「ｄｏｎ’ｔ  ｃａｒｅ」の部分に該当する記憶素子は使用されず、メモリに無駄な記憶領域を生じさせている。
【０００７】
この発明は、上記のような課題を解決するためになされたもので、小型化、低消費電力化が可能であり、かつ動的再構成が可能なセルにより構成して宛先アドレスに対応する中継アドレスデータを様々に設定することができるテーブル装置及びこれを用いて検索処理を高速に行うことができるアドレス検索装置を得ること目的とする。
【課題を解決するための手段】
【０００８】
この発明に係るテーブル装置は、比較対象値及びこれに対応する中継アドレスを含むアドレス検索テーブルの構成データを保持する複数のレジスタを有し、宛先アドレスの入力データと比較対象値とを比較して宛先アドレスに対応する中継アドレスを検索するセルと、アドレス検索テーブルの構成データを保持するレジスタの選択を制御して宛先アドレスとの比較内容を動的に変更することにより、セルの出力として宛先アドレスに対応する中継アドレスを得る制御部とを備え、セルが、宛先アドレスの入力データにおける任意のビット位置及びそのビット数を規定するビット選択値を保持する複数のレジスタを有するビット選択レジスタ群と、比較対象値を保持する複数のレジスタを有する比較対象レジスタ群と、比較対象レジスタ群で保持する比較対象値に対応する中継アドレス、及び次に使用するレジスタを選択するためのレジスタ選択値を保持する複数のレジスタを有する出力値レジスタ群とを、アドレス検索テーブルの構成データを保持するレジスタ群として備えると共に、ビット選択レジスタ群から選択されたレジスタのビット選択値に従って宛先アドレスの入力データから対応するビット位置及びビット数の比較データを選択するセレクタと、セレクタにより選択された比較データと比較対象レジスタ群から選択されたレジスタの比較対象値とを比較し、両者が一致した際に一致信号を出力する比較器と、レジスタ選択信号に基づいて各レジスタ群のそれぞれのレジスタを選択し、それが保持するデータを出力するレジスタ選択手段とを備え、制御部が、外部から設定されるレジスタ選択値又は出力値レジスタ群から出力されたレジスタ選択値に基づいてレジスタ選択信号を生成するものである。
【発明の効果】
【０００９】
この発明によれば、アドレス検索テーブルの動的再構成により宛先アドレスに対応する中継アドレスデータを様々に設定することができることから、種々のネットワークの動的な構成変更に対応したテーブル装置を提供することができるという効果がある。また、中継アドレスをそれぞれ収容するテーブルと異なり、短いネットワークアドレスであってもそのビット長分の比較を行えば良くメモリに無駄な記憶領域が生じることがない。さらに、このテーブル装置を検索装置に用いることにより、動的再構成が可能なテーブルにより全てのアドレスを収容する必要がないことから小さい回路で大きな検索範囲を実現することができるため、小型かつ高速化を可能にする効果がある。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
先ず、後述する説明に登場する用語について述べる。
コンフィグレーションとは、本発明のテーブル装置が備える各種レジスタ群に対して、ネットワーク構成に対応した宛先アドレスと中継アドレスのデータ変換内容を設定してアドレス検索テーブルを形成することを言う。このコンフィグレーションを行う動作をコンフィグレーションモードとし、データ変換内容を含む信号をコンフィグレーションデータと呼ぶことにする。
【００１１】
また、コンフィグレーションデータ（アドレス検索テーブルの構成データ）とは、ビット選択値、比較対象値、出力値、分岐コード、接続情報、及びリーフ若しくは分岐を示す判定ビットなどで構成される。ここで、ビット選択値とは、比較処理のために入力データから抽出するビット位置及びそのビット数である。比較対象値とは、アドレス検索テーブルで参照される宛先アドレスを表す値である。出力値とは、比較対象値に対応して出力される中継アドレスを表す値である。
【００１２】
分岐コードとは、後述する本発明における比較動作で用いた複数のレジスタ群のレジスタを次に使用するレジスタに変更するレジスタ選択値と、次に比較動作を開始させるセルを指定する指定コードとを含んでいる。この分岐コードは、本発明によるテーブル装置の出力値レジスタ群のあるレジスタに上記出力値の代わりに設定し、比較動作を行うセルを動的に再構成するデータである。
【００１３】
接続情報とは、本発明のテーブル装置におけるメモリの複数のセルにおいて、対象とする比較動作を自セルで行うか、他のセルで行うか、又はその両方で行うかをクロススイッチで振り分けるための指示データである。リーフ若しくは分岐を示す判定ビットとは、セル内で現在対象としている比較動作で一致が得られた場合にその動作が最終であることを表すリーフ若しくは各レジスタ群のレジスタの変更を要する分岐であることを示す判定用のデータである。なお、この実施の形態１では、判定ビットを上記接続情報と同じレジスタ群で保持する例を示したが、別の専用のレジスタ群に保持して用いるように構成してもよい。
【００１４】
図１は、この発明の実施の形態１によるアドレス検索装置の概略構成を示すブロック図である。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２は、各部を制御する。メモリ３は、ＣＰＵ２が処理する命令領域及びコンフィグレーションデータ等を格納する領域を持つ。バスライン４は、ＣＰＵ２、メモリ３及びアドレス検索装置１の間のデータ転送に使用する経路である。
【００１５】
アドレス検索装置１は、バスインタフェース（以下、バスＩ／Ｆと略す）１２、パケット入力部７、宛先アドレス抽出部８、テーブル装置９、中継アドレス付加部１０、パケット送出部１１から構成される。ここで、パケット入力部７は、中継すべきパケットデータを受け付けて一時的に格納する。宛先アドレス抽出部８は、パケットデータのヘッダから宛先アドレス情報を抽出してテーブル装置９の入力データとして出力する。
【００１６】
中継アドレス付加部１０は、テーブル装置９の出力データとして得られた中継アドレスをパケットデータのヘッダに付加してパケット送出部１１の入力データとして出力する。制御レジスタ１３は、外部リセット信号１４によりリセットされ、ＣＰＵ２からの指示に従って、コンフィグレーション、アドレス検索時にテーブル装置９への入力データを選択するための入力データ選択信号、テーブル装置９による比較動作の開始時に用いる各レジスタ群のレジスタの選択や複数のセル構成の場合の比較動作を開始するセルを指定する初期コードを設定する。
【００１７】
信号線１５は、アドレス検索の開始直前にバスＩ／Ｆ１２を通してＣＰＵ２からテーブル装置９のレジスタに設定するコンフィグレーションデータとこれを書き込むレジスタを指定するレジスタ指定アドレス信号とを転送するための信号線である。信号線１６は、アドレス検索装置１を構成する各構成要素の動作モードを設定し、各構成要素から制御レジスタ１３に対してデータの書き込みと読み出しを行うための信号線である。
【００１８】
また、信号線５は、アドレス検索装置１へパケットデータ入力するための入力信号線である。また、信号線６は、アドレス検索装置１からパケットデータを出力するための出力信号線である。信号線１４は、アドレス検索装置１をリセットするために外部から与えられる外部リセット信号を装置１内部に供給するための供給線である。
【００１９】
図２は、図１中のテーブル装置の構成例を示すブロック図である。テーブル装置９は、複数の動的再構成可能なセル（以下、セルとする）ＰＥ０〜ＰＥ８、マルチプレクサ（以下、ＭＵＸとする）１０１、論理和回路１１１及び制御部１１３を備えている。セルＰＥ０〜ＰＥ８は、それぞれ接続用エレメント１０５と機能エレメント１０６を有している。ＭＵＸ１０１は、セルＰＥ０〜ＰＥ８への入力データ１０７を選択する。
【００２０】
より詳細に説明すると、ＭＵＸ１０１は、アドレス検索装置１がコンフィグレーションモード、検索モードのいずれかに設定された場合、図１に示す制御レジスタ１３から与えられる入力データ選択信号１０４に基づき、テーブル装置９内のセルＰＥ０〜ＰＥ８への入力データ１０７として、宛先アドレスデータ１０２及びコンフィグレーションデータ１０３のうちから、そのときの処理モードに対応する信号を選択する。
【００２１】
レジスタ指定アドレス信号１０８は、コンフィグレーションモード時にバスＩ／Ｆ１２から信号線１５を介してコンフィグレーションデータと共に与えられ、コンフィグレーションデータの書き込み先のセルとそのセル内のレジスタを指定するための信号であり、セルＰＥ０〜ＰＥ８の全てに対して入力される。出力信号１１０Ｏ０〜１１０Ｏ８は、各セルＰＥ０〜ＰＥ８から出力される信号であり、後述する比較動作で一致したことを示すイネーブル信号と一致した際にレジスタから出力されるレジスタの出力値又は分岐コードとを含んでいる。
【００２２】
論理和回路１１１は、出力信号１１０Ｏ０〜１１０Ｏ８の論理和を求め、テーブル装置９のデータ出力１１２として得る。制御部１１３は、論理和回路１１１のデータ出力１１２が分岐コードである場合、その分岐コードを構成しているレジスタ選択値に基づいてセル内の各レジスタ群の中から次に使用するレジスタをそれぞれ指定するレジスタ選択信号１１４を生成する。
【００２３】
また、制御部１１３は、分岐コードを構成しているセルの指定コードに基づいて、次に比較動作を開始するセルを指定するルート信号１０９Ｒ０〜１０９Ｒ１１を生成する。なお、ルート信号１０９Ｒ０〜１０９Ｒ１１は、複数のセルの配列において、外側に位置するセルが対称に与えられるようになっており、比較動作の開始時には比較命令信号として機能する。
【００２４】
図３は、図２中のセルの構成を示すブロック図である。本発明よるセルは、大きく分けて接続用エレメント１０５及び機能エレメント１０６から構成される。接続用エレメント１０５と機能エレメント１０６には、図２中の制御部１１３で生成されるレジスタ選択信号１１４が共通して入力されるようになっている。
【００２５】
接続用エレメント１０５は、クロススイッチ２０１、接続情報レジスタ群２０２及びマルチプレクサ（以下、ＭＵＸとする）２０３を有している。接続情報レジスタ群２０２は、クロススイッチ２０１が接続先を決めるための複数のレジスタを持つ接続情報を保持する。この接続情報は、比較動作を指示する比較命令信号の接続先を自セルの機能エレメント１０６にするか、隣接するセルにするか、又はその両方かをクロススイッチ２０１で振り分けるための指示データである。また、接続情報レジスタ群２０２は、接続情報の他に、自セルの機能エレメント１０６で行う比較の結果の一致信号がリーフ（最終値）か、分岐であるかを示す判定ビットを保持している。
【００２６】
ＭＵＸ２０３は、レジスタ選択信号１１４に基づいて、接続情報レジスタ群２０２の中から使用するレジスタを選択し、それが保持する接続情報２２９を抽出してクロススイッチ２０１へ出力するレジスタ選択手段である。これと同時に、ＭＵＸ２０３は、そのセルがリーフ若しくは分岐であると、そのことを示す判定ビット信号２２３を前記選択したレジスタから抽出して機能エレメント１０６内の比較器２０７及び論理積ゲート２１０へ出力する。
【００２７】
クロススイッチ２０１は、自セルの機能エレメント１０６と上下左右に隣接するセルの機能エレメントとを接続するための手段で、ＭＵＸ２０３により抽出された接続情報２２９に基づいて、ある隣接するセルから比較命令信号が入力された場合には自セルの機能エレメント１０６に比較命令信号２２６を送るか、他の隣接するセルへ転送するか、又はその両方を行うかの処理を行い、また自セルの機能エレメント１０６から一致信号２２７を受けると接続情報２２９が指示する所望の隣接するセルへ比較命令信号を転送する。
【００２８】
クロススイッチ２０１に関する信号には、上方向からの入力信号（比較命令信号）２１８Ｉ、上方向への出力信号（比較命令信号）２１８Ｏ、右方向からの入力信号２２１Ｉ、右方向への出力信号２２１Ｏ、下方向からの入力信号２１９Ｉ、下方向への出力信号２１９Ｏ、左方向からの入力信号２２０Ｉ、左方向への出力信号２２０Ｏ、及び比較命令信号２２６がある。ここで、比較命令信号２２６は、隣接するセルからの入力信号２１８Ｉ、２２１Ｉ、２１９Ｉ、２２０Ｉによって与えられ、自セルの機能エレメント１０６において比較動作を行うことを指示する信号である。
【００２９】
一方、機能エレメント１０６は、ビット選択レジスタ群２０４、比較対象レジスタ群２０６、出力値レジスタ群２０８、セレクタ２０５、比較器２０７、アドレスデコーダ２０９、論理積ゲート２１０及びマルチプレクサ（以下、ＭＵＸとする）２１１，２１２，２１３，２１４を有している。アドレスデコーダ（デコーダ）２０９は、コンフィグレーションモード時に入力されるレジスタ指定アドレス信号１０８をデコードしてコンフィグレーションデータを書き込むべきレジスタ群２０２，２０４，２０６，２０８の各レジスタを指定し、そのデコード出力２２２としてコンフィグレーションデータを対応する各レジスタに書き込む。
【００３０】
ビット選択レジスタ群２０４は、コンフィグレーションモード時に書き込まれ、入力データ（宛先アドレス）から抽出するビット位置及びそのビット数のビット選択値を保持する複数のレジスタを有する。ＭＵＸ２１１は、レジスタ選択信号１１４に基づいてビット選択レジスタ群２０４のレジスタを選択し、それが保持する比較すべきビット位置、及びビット数を出力するレジスタ選択手段である。セレクタ（ＳＥＬ）２０５は、ビット選択レジスタ群２０４で選択されたビット位置、及びビット数に従って入力データ１０７から対応するビット位置、及びビット数分のデータを比較データ２２４として選択する。
【００３１】
比較対象レジスタ群２０６は、コンフィグレーションモード時に書き込まれ、ビット選択レジスタ群２０４で保持する任意のビット数に対応した比較対象値（ビット選択レジスタ群２０４で保持するビット数と同等のビット数分だけ抜き出された宛先アドレス）を保持する複数のレジスタを有する。ＭＵＸ２１２は、レジスタ選択信号１１４に基づいて、比較対象レジスタ群２０６のレジスタを選択し、その保持する比較対象値２２８を出力するレジスタ選択手段である。比較器２０７は、セレクタ２０５によって選択された特定のビット数分の比較データ２２４とＭＵＸ２１２により比較対象レジスタ群２０６から選択された比較対象値２２８とを比較し、両者が一致した際に一致信号２２７を出力する。
【００３２】
出力値レジスタ群２０８は、コンフィグレーション時に書き込まれ、比較対象レジスタ群２０６で保持する比較対象値に対応する出力値（中継アドレス）、及びこれに代わる分岐コードを保持する複数のレジスタを有する。すなわち、出力値レジスタ群２０８には、そのセルでの比較動作で一致した際に当該セルが最終値を求めるリーフとして指定されているものであれば、対応するレジスタに出力値が書き込まれ、一方、当該セルが分岐として指定さているものであれば、対応するレジスタに分岐コードが書き込まれていることになる。
【００３３】
なお、分岐コードは、この実施の形態の冒頭にも述べたように、複数のレジスタ群のレジスタを次に使用するレジスタに変更するレジスタ選択値と、次に比較動作を開始させるセルを指定する指定コードを含んでいる。
【００３４】
ＭＵＸ２１３は、レジスタ選択信号１１４に基づいて、出力値レジスタ群２０８のレジスタを選択し、その保持する出力値又は分岐コードを出力信号２２５として出力するレジスタ選択手段である。論理積ゲート２１０は、比較器２０７から出力される一致信号２２７とＭＵＸ２０３からのリーフ若しくは分岐を示す判定ビット２２３の論理積をとり、出力値レジスタ群２０８で保持するデータの出力を指示するイネーブル信号２１６を生成する。
【００３５】
ＭＵＸ２１４は、イネーブル信号２１６に基づいて、ＭＵＸ２１３により出力値レジスタ群２０８から選択された出力値又は分岐コード（出力信号２２５）を選択して出力データ２１７とする。一方、それ以外、すなわち比較器２０７から一致信号が出力されなかった場合、ＭＵＸ２１４は、当該セルが比較対象のセルではなく一致信号が出力されるがリーフでも分岐でもない、すなわちレジスタの変更をすることなく、続きのビットを比較する他のセルが存在する場合には‘０’を選択して出力データ２１７とする。
【００３６】
また、動作モード信号２１５は、図１に示した信号線１６を介して動作モードを設定するための信号であり、各セルの接続用エレメント１０５及び機能エレメント１０６に入力される。動作モード信号２１５によりアドレス検索モード又はコンフィグレーションモードが設定される。
【００３７】
次に動作について説明する。
先ず、図１〜図３を用いてコンフィグレーションモードにおける動作を説明する。
アドレス検索装置１は、電源投入直後等に外部から与えられる外部リセット信号１４あるいは制御レジスタ１３の設定によるソフトウェアリセット信号によりリセットされる。リセット後、テーブル装置９は初期状態となり、ＣＰＵ２から起動指示があるまで状態を保持する。ＣＰＵ２は、起動後に初期化動作としてアドレス検索テーブルに対応するコンフィグレーションデータをレジスタ指定アドレス信号と共にテーブル装置９へ送信する。
【００３８】
テーブル装置９内のＭＵＸ１０１では、制御レジスタ１３から与えられる入力データ選択信号１０４により、コンフィグレーションデータ１０３を、テーブル装置９を構成する各セルＰＥ０〜ＰＥ８への入力データ１０７として選択する。各セルＰＥ０〜ＰＥ８では、レジスタ指定アドレス信号１０８がアドレスデコーダ２０９でデコードされ、そのデコード信号２２２により、各セルのレジスタ群２０２，２０４，２０６，２０８のそれぞれの中から書き込み対象となるレジスタが指定される。従って、この指定された各レジスタにコンフィグレーションデータ１０３の対応するデータが書き込まれる。この動作により、テーブル装置９は、アドレス検索テーブルとして動作が可能な状態に設定されたことになる。
【００３９】
次に、図４に示すアドレス検索テーブル例を基にコンフィグレーションデータのマッピングを説明する。なお、図中のｘは「ｄｏｎ’ｔ  ｃａｒｅ」のビットを示している。
ここで、テーブル装置９は、例えば本来必要とするアドレス検索テーブルの全体の４分の１程度の個数のセル（図３に示した動的再構成可能なセル）を用いて構成する。そして、そのアドレス検索テーブルの全体は、後述するように、これらのセル内で使用するレジスタを動的に変更することによって実現する。ここで求められることは、レジスタの変更回数を少なくすることであり、そのため、コンフィグレーションデータの各セルの各レジスタへのマッピングを、予測される比較一致確率に基づいて行うようにする。
【００４０】
また、図４に示すアドレス検索テーブルでは、テーブルの上欄から比較一致確率が高いと予測されるアドレスを並べている。テーブル装置９を構成する各セルＰＥ０〜ＰＥ８では、入力データに対して、それぞれ１バイトのデータの比較を行う場合、図４のアドレス検索テーブルの比較割り当ては、図５に示すように模式的に表すことができる。比較ポイントであるノードｎ１〜ｎ１７が持つ比較対象ビットパターン（例えばノードｎ３の場合、“１１”）と入力ビット列とを比較し、一致したときはそのノードに接続された“子”のノード（ノードにさらに分岐して接続されているノード）が持つ比較対象ビットパターンと続きの入力ビット列とを比較する。
【００４１】
図５の各ノードｎ１〜ｎ１７を図２の各セルＰＥ０〜ＰＥ８にマッピングした場合を図６に例示する。すなわち、セルＰＥ０にはノードｎ１、セルＰＥ１にはノードｎ５、セルＰＥ２にはノードｎ９、セルＰＥ３にはノードｎ２、セルＰＥ４にはノードｎ４、セルＰＥ５にはノードｎ８、セルＰＥ６にはノードｎ３、セルＰＥ７にはノードｎ６、セルＰＥ８にはノードｎ７がマッピングされる。太線の矢印は比較動作時の流れを表す。
【００４２】
比較一致確率の高い図４中の上欄４つのコードを最初に構成し、これらコードの一致の有無を判定する。このとき、これらのコードに一致しなかった場合、つまり、最上段の宛先アドレス‘１０ｘｘｘｘｘｘ・・・’と一致する比較対象ビットパターン‘１０’のノードｎ１、二段目の宛先アドレス‘０００１ｘｘｘｘ・・・’と一致する比較対象ビットパターン‘０００１’となるノードｎ２，ｎ４、三段目の宛先アドレス‘００１１ｘｘｘｘ・・・’と一致する比較対象ビットパターン‘００１１’となるノードｎ２，ｎ５、四段目の宛先アドレス‘１１００ｘｘｘｘ・・・’と一致する比較対象ビットパターン‘１１００’となるノードｎ３，ｎ６と一致しないことになる。
【００４３】
このように、図４中の上欄４つのコードに対応するノードｎ１〜ノードｎ６に一致しない場合、すなわちノードｎ７〜ｎ９に一致する場合、レジスタの切り替えと次に処理するセルを指定するルート信号を変更することでテーブルを再構成する。従って、比較一致確率の高いアドレスに対しては、テーブルの再構成なしに出力データを得ることができ、レジスタの変更回数を最小限に抑えることができる。テーブルを再構成する動作については後述する。
【００４４】
次に、アドレス検索の動作例を説明する。
アドレス検索は、上述のコンフィグレーションデータをテーブル装置９のセルに書き込み、図２に示す入力データ選択信号１０４をＭＵＸ１０１に与えて宛先アドレスデータを入力データ１０２として選択した後に行われる。図１において、パケット入力部７にパケットデータが入力される。宛先アドレス抽出部８は、パケットデータのヘッダから宛先アドレスを抽出し、テーブル装置９へ出力する。テーブル装置９は、宛先アドレスが入力開始されることで検索動作を起動する。
【００４５】
また、宛先アドレス抽出部８は、宛先アドレスデータをある特定のビット数単位でテーブル装置９へ出力する。テーブル装置９では、入力されたこの特定のビット数分のアドレスデータに従ってアドレス検索し、結果として得られる中継アドレスを中継アドレス付加部１０に出力すると同時に、テーブルの使用回数をクリアする。
【００４６】
図４及び図５に示すテーブルを例としてアドレス検索時にテーブル装置９内で行われる比較動作について、図３及び図７を用いて説明する。
図７において、先ず、入力データとして入力される特定のビット数分の宛先アドレスデータ１０２を例えば‘１１００’とし、各セルＰＥ０〜ＰＥ８で比較できる最大ビット数を２ビットとする。また、各セルＰＥ０〜ＰＥ８では、図６で示したようにマッピングした比較対象値（図７中の各セルの機能エレメント１０６に付した２ビットの太数字）を保持しているものとする。
【００４７】
アドレス検索モードにあるとき、宛先アドレスデータ１０２は、ＭＵＸ１０１により、入力データ選択信号１０４に基づいて、入力データ１０７、すなわちアドレスデータ‘１１００’として選択され、全てのセルＰＥ０〜ＰＥ８に入力される。一方、テーブル装置９の制御部１１３は、アドレス検索装置１の制御レジスタ１３の設定状態を参照し、比較動作開始時に用いる各レジスタ群のレジスタの選択と比較動作を開始するセルを指定する初期コードを取り寄せ、この初期コードに基づいてルート信号１０９Ｒ０とレジスタ選択信号１１４を生成する。
【００４８】
レジスタ選択信号１１４は、全てのセルＰＥ０〜ＰＥ８に対して入力され、各ＭＵＸ２０３，２１１，２１２，２１３によりレジスタ群２０２，２０４，２０６，２０８の最初に使用するレジスタをそれぞれ選択する。セルＰＥ０の上方向から入力されたルート信号１０９Ｒ０（図３に示す入力信号２１８Ｉに相当）は、セルＰＥ０の接続用エレメントのクロススイッチ（図３に示すクロススイッチ２０１に相当）に与えられ、接続情報レジスタ群（図３に示す接続情報レジスタ群２０２に相当）から得られた接続情報に基づいて、最初に比較を行うセルとしてセルＰＥ０，ＰＥ３，ＰＥ６を選択し、セルＰＥ３，ＰＥ６に伝送される。
【００４９】
ルート信号１０９Ｒ０が入力されたセルＰＥ０，ＰＥ３，ＰＥ６の接続用エレメント１０５は、接続情報に基づいてそれぞれの機能エレメントに比較命令信号３０１Ｃ０，３０１Ｃ３，３０１Ｃ６（図３に示す比較命令信号２２６に相当）として送信する。これら比較命令信号３０１Ｃ０，３０１Ｃ３，３０１Ｃ６が入力された対応するセルＰＥ０，ＰＥ３，ＰＥ６の機能エレメント１０６では、各セルの比較対象レジスタ群（図３に示す比較対象レジスタ群２０６に相当）が保持している各比較対象値、すなわちセルＰＥ０の‘１０’、ＰＥ３の‘００’、ＰＥ６の‘１１’と、入力されたビットストリームデータ‘１１００’のうち最初の２ビット‘１１’とを比較器２０７で比較する。
【００５０】
この場合のビットストリーム分‘１１’は、セルＰＥ６が保持している比較対象値とのみ一致することになる。その結果、セルＰＥ６の機能エレメント１０６のみが一致信号３０２（図３に示す一致信号２２７に相当）を自セルの接続用エレメントに対して出力する。なお、この場合、ビットストリームデータ‘１１００’には続きの‘００’が存在しているので、最初の比較対象値はリーフでも分岐でもない。このため、接続情報レジスタ群２０２からは、リーフ若しくは分岐の判定ビット信号は出力されておらず、セルＰＥ６の論理積ゲート（図３に示す論理積ゲート２１０に相当）からイネーブル信号は出力されず、セルＰＥ６のＭＵＸ２１４の出力２１７は‘０’となる。
【００５１】
セルＰＥ６の接続用エレメントでは、一致信号３０２が入力されたクロススイッチ（図３に示すクロススイッチ２０１に相当）は、ＭＵＸ２０３により接続情報レジスタ群２０２のレジスタから抽出した接続情報に基づいて、子のノードにあたるセルＰＥ７，ＰＥ８，ＰＥ５，ＰＥ２に対して一致信号３０２を比較命令信号３０３として伝送する。比較命令信号３０３が入力されたセルＰＥ７，ＰＥ８，ＰＥ５，ＰＥ２の接続用エレメント１０５は、それぞれのクロススイッチにより、各々の機能エレメントに対応する比較命令信号３０４Ｃ７，３０４Ｃ８，３０４Ｃ５，３０４Ｃ２を送信する。
【００５２】
比較命令信号が入力されたセルＰＥ７，ＰＥ８，ＰＥ５，ＰＥ２の機能エレメントは、アドレスデータ‘１１００’のうち、続きの２ビット‘００’と、各セルの比較対象値、すなわちセルＰＥ７の‘１１００’のうちの太線で示した続きの２ビットの‘００’、ＰＥ８の‘１１０１’のうちの太線で示した続きの２ビットの‘０１’、ＰＥ５の‘１１１０’のうちの太線で示した続きの２ビットの‘１０’、ＰＥ２の‘１１１１’のうちの太線で示した続きの２ビットの‘１１’とを比較する。この場合のビットストリームでは、セルＰＥ７の比較対象値とのみ一致する。
【００５３】
この場合のセルＰＥ７（図５に示すノードｎ６に相当）はリーフであるため、出力値レジスタ群（図３に示す出力値レジスタ群２０８に相当）で保持している対応する出力値（中継アドレス）がＭＵＸ２１３により抽出される。同時に、接続情報レジスタ群２０２からはリーフ若しくは分岐の判定ビット信号は選択され、論理積ゲート（図３に示す論理積ゲート２１０に相当）からリーフ若しくは分岐で一致したことを示すイネーブル信号（図３に示すイネーブル信号２１６に相当）が出力される。
【００５４】
ＭＵＸ２１４は、このイネーブル信号に応じて出力値レジスタ群から抽出された出力値（図３に示す出力信号２２５に相当）を取り出し、セルＰＥ７はこの出力値とイネーブル信号を論理和回路１１１への出力１１０Ｏ７として取り出す。イネーブル信号が出力されると、論理和回路１１１は、全てのセルＰＥ０〜ＰＥ８から出力される信号１１０Ｏ０〜１１０Ｏ８を演算して検索結果１１２として出力する。この例の場合、リーフで、かつ比較で一致したセルはＰＥ７のみであり、それ以外のセルの出力信号は‘０’であるため、検索結果であるデータ出力１１２はセルＰＥ７の出力値１１０Ｏ７となる。
【００５５】
また、入力データ１０７の宛先アドレスデータが、例えば‘１１０１’であったとした場合、この段階で一致する比較対象値のセルはＰＥ８に相当することとなる。しかし、セルＰＥ８（図６に示すノードｎ７に相当）は分岐として設定されているため、出力１１０Ｏ８としては、出力値レジスタ群（図３に示す出力値レジスタ群２０８に相当）に設定している分岐コードとなる。制御部１１３は、この分岐コードに基づいてＭＵＸ（図３に示すＭＵＸ２０３，２１１，２１２，２１３に相当）に入力するレジスタ選択信号１１４を変更し、また比較動作を開始するセルを指定するルート信号を変更する。これにより、データを既に保持しているレジスタの変更選択が行なわれ、アドレス検索テーブルは再構成される。
【００５６】
テーブル再構成後のルート信号１０９Ｒ０〜１０９Ｒ１１のうちいずれかの信号が入力されることで比較開始セルが指定され、かつレジスタ選択信号により各レジスタ群の新たなレジスタが選択されることで、分岐点以下（‘１１０１’より下位のビット）の比較が可能となる。このテーブルの再構成は、分岐コードの出力から新たなレジスタ選択信号、及び初めに比較するセルを指定するルート信号を出力するまでの１クロックで行うことが可能である。
【００５７】
以上のように、この実施の形態１によれば、比較対象値及びこれに対応する中継アドレスを含むアドレス検索テーブルの構成データを保持する複数のレジスタ２０２，２０４，２０６，２０８を有し、宛先アドレスの入力データと比較対象値とを比較して宛先アドレスに対応する中継アドレスを検索するセルＰＥ０〜ＰＥ８と、アドレス検索テーブルの構成データを保持するレジスタの選択を制御して宛先アドレスとの比較内容を動的に変更することにより、セルの出力として宛先アドレスに対応する中継アドレスを得る制御部１１３とを備えるので、ネットワークの構成に対応したコンフィグレーションデータを設定することで、高いスループットを可能にする動的再構成可能なテーブルを構成することができる。
【００５８】
特に、各セルは、各レジスタ群のそれぞれが持つ複数のレジスタの中から使用するレジスタ１つを１クロックで選択して変更できる。また、現在使用している１つのセル集合体で比較できるビット数が、比較すべき最大ビット数を満足していなくても、複数のセルを再構成することで、最大ビット数の比較が可能となる。これらの特徴からテーブル装置９の小型化かつ低消費電力化の効果が得られる。
【００５９】
なお、上記実施の形態１では、セルを複数個用いてテーブル装置９を構成する例を示したが、入力データに対して比較処理するビット数を大きな値に設定することにより、１個のセルで構成することも可能である。その場合には、接続用エレメント１０５の構成、論理積ゲート２１０、マルチプレクサ２１７は不要となり、比較命令信号も不要となるため分岐コードの内容や制御部１１３の処理内容もレジスタの変更に関することに簡略化されることになる。
【００６０】
例えば、アドレス検索テーブルを構成する１個のセルが、ビット選択レジスタ群、セレクタ、比較対象レジスタ群、比較器、出力値レジスタ群、使用するレジスタを指定するレジスタ選択信号に基づいて前記各レジスタ群のそれぞれのレジスタを選択し、その保持するデータを出力するそれぞれのＭＵＸを備える。ここで、これらの構成要素は、上記実施の形態１で示したように、ビット選択レジスタ群が、宛先アドレスにおける任意のビット位置とビット数の選択値を保持する複数のレジスタを有する。また、セレクタが、ビット選択レジスタ群の選択されたレジスタのビット位置とビット数の選択値に従って入力データから対応するビット位置とビット数の比較データを選択する。
【００６１】
比較対象レジスタ群が、比較対象値を保持する複数のレジスタを有し、比較器が、セレクタで選択された比較データと比較対象レジスタ群の選択されたレジスタの比較対象値とを比較し、両者が一致した際に一致信号を出力する。また、出力値レジスタ群では、比較対象レジスタ群で保持する比較対象値に対応する符号化または復号に係る出力値、及び、これに代わる、次に使用するレジスタを変更するレジスタ選択値を保持する複数のレジスタを有する。さらに、制御部では、外部から設定されるレジスタ選択値あるいは出力値レジスタ群から出力されたレジスタ選択値に基づいてレジスタ選択信号を生成する。このように構成しても、上記実施の形態１と同様に効果を得ることができる。
【図面の簡単な説明】
【００６２】
【図１】この発明の実施の形態１によるアドレス検索装置の概略構成を示すブロック図である。
【図２】実施の形態１によるテーブル装置の構成例を示すブロック図である。
【図３】実施の形態１による動的再構成可能なセルの単体の構成を示すブロック図である。
【図４】実施の形態１によるアドレス検索テーブルの構成例を示す図である。
【図５】実施の形態１によるアドレス検索テーブルの比較割り当てを模式的に示す図である。
【図６】実施の形態１によるアドレス検索テーブルのマッピング例を模式的に示す図である。
【図７】実施の形態１によるテーブル装置の動作を説明するための図である。
【符号の説明】
【００６３】
１  アドレス検索装置、２  ＣＰＵ、３  メモリ、４  バスライン、５，６，１５，１６  信号線、７  パケット入力部、８  宛先アドレス抽出部、９  テーブル装置、１０  中継アドレス付加部、１１  パケット送出部、１２  バスインタフェース（バスＩ／Ｆ）、１３  制御レジスタ、１４  外部リセット信号、１０１，２０３，２１１，２１２，２１３  マルチプレクサ（ＭＵＸ）（レジスタ選択手段）、１０５  接続用エレメント、１０６  機能エレメント、１０７  入力データ、１０８  レジスタ指定アドレス信号、１０９Ｒ０〜１０９Ｒ１１  ルート信号、１１０Ｏ０〜１１０Ｏ８  出力信号、１１１  論理和回路、１１２  データ出力、１１３  制御部、１１４  レジスタ選択信号、２０１  クロススイッチ、２０２  接続情報レジスタ群、２０４  ビット選択レジスタ群、２０５  セレクタ（ＳＥＬ）、２０６  比較対象レジスタ群、２０７  比較器、２０８  出力値レジスタ群、２０９  アドレスデコーダ（デコーダ）、２１０  論理積ゲート、２１４  マルチプレクサ（ＭＵＸ）（セル出力選択手段）、２１５  動作モード信号、２１６  イネーブル信号、２１７  データ出力、２１８Ｉ〜２２１Ｉ  入力信号、２１８Ｏ〜２２１Ｏ  出力信号、２２２  デコード出力、２２３  判定ビット、２２４  比較データ、２２５  出力信号、２２６  比較命令信号、２２７  一致信号、２２８  比較対象値、２２９  接続情報、３０１Ｃ０，３０１Ｃ３，３０１Ｃ６  比較命令信号、ｎ１〜ｎ１７  ノード、ＰＥ０〜ＰＥ８  セル。
【図１】
0004588560.tif 000002
【図２】
0004588560.tif 000003
【図３】
0004588560.tif 000004
【図４】
0004588560.tif 000005
【図５】
0004588560.tif 000006
【図６】
0004588560.tif 000007
【図７】
0004588560.tif 000008