説明

検索装置、データ処理装置および検索方法

【課題】検索処理を停止せずにデータベース更新を実現し、余剰な電力を消費しない検索装置を得ること。
【解決手段】複数の演算器とメモリで構成され、設定情報に基づいた内部構成を構築する演算ユニット31と、設定情報を記憶し、指定された設定情報を演算ユニット31に送出する設定情報変更ユニット33と、検索用データベースの更新要求があると、演算ユニット31に内部構成変更指示を通知するプロセッサ32と、を備え、演算ユニット31は、検索処理のみを実行する期間は1つのメモリと検索処理回路を稼動させる内部構成を構築し、内部構成変更指示を受け取ると、他のメモリに更新された検索用データベースを書き込んだ後、検索処理を維持しつつ更新後の検索用データベースに対する検索処理を実行する内部構成に変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ検索処理を行う検索装置に関するものであり、特に、検索用データベースの更新時に中断することなくデータ検索処理を実施する検索装置に関するものである。
【背景技術】
【0002】
通信ネットワークにおけるパケットのルーティングやパケット内の悪意あるコードの検出、データベース分野における文章中のキーワード検出など、検索処理は幅広い分野において多様な場面で利用されている。特に、近年の情報通信分野全般のデータ量の増大や処理の高度化に伴い、検索処理に、高速性,多機能性といったオンデマンドで動的なデータ解析が求められてきている。
【0003】
たとえば、下記特許文献1では、異なる回路を持った複数のFPGA(Field Programmable Gate Array)を搭載して、通信内容に応じこれらのFPGAを切り替えて使う機能を備えた通信制御装置が開示されている。この通信制御装置は、さらに、これら複数のFPGAの内部回路を書き換える手段を搭載することにより、通信を中断することなく制御回路の変更を行う機能を備えている。
【0004】
また、下記非特許文献1では、テーブルのデータ構造によってはテーブル全体を並べなおす処理が必要となりテーブル更新の実行が難しいことを指摘している。そして、その回避方法として、活動(検索処理)が少ない期間まで更新処理を延期してテーブルを並べ替えている間は検索を停止する方法、同じテーブルを2つ用意する方法、の2つの方法を提案している。
【0005】
【特許文献1】特開2000−174844号公報
【非特許文献1】Rich Seifert著、間宮あきら訳「LANスイッチング徹底解説」日経BP社発行、2001年8月6日、P83−84
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の技術によれば、上記通信制御装置でパケット検索処理を行う場合、FPGAのメモリ内に保持している検索のためのデータベース変更についても、複数のFPGAにより冗長化構成をとる必要がある。そのため、データベースの変更を行っていないときにも、冗長なFPGAの数だけ余計に電力を消費するという問題があった。
【0007】
また、上記非特許文献1記載の技術では、更新処理をおこなう時に処理を停止する必要があるため、突然検索パフォーマンスが低下するという問題があった。また、2つのテーブルを用意する方法では、検索パフォーマンスの問題は回避できるが、常時、使用していないテーブルのためにも電力を消費するという問題があった。
【0008】
本発明は、上記に鑑みてなされたものであって、検索処理を停止せずにデータベース更新を実現し、さらに、冗長化構成デバイスのための電力を消費することのない検索装置を得ることを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、本発明は、検索キー情報に基づき検索用データベースを検索する機能を有する検索装置であって、複数の演算器およびメモリで構成され、各構成要素に対するコンフィグレーションデータである設定情報に基づいて内部構成を構築して動作する演算手段と、前記検索用データベースを格納するためのメモリと、前記検索機能を実現する検索処理回路と、を含む内部構成を構築するための複数の設定情報を記憶し、指定された設定情報を前記演算手段に送出する設定情報変更手段と、外部から検索用データベースの更新要求があった場合に、前記演算手段に対して内部構成変更指示を通知する制御手段と、を備え、前記演算手段は、検索処理のみを実行する期間については、特定の設定情報に基づく内部構成により1つのメモリと検索処理回路を稼動させ、前記内部変更指示を受け取った場合または自身で検索用データベースの更新を検出した場合には、前記検索中のメモリ以外の他のメモリに対して更新された検索用データベースを書き込み、さらに、前記特定の設定情報以外の他の設定情報に基づいて、前記検索処理を維持しつつ更新後の検索用データベースに対する検索処理を実行可能な内部構成に変更し、前記データベースの更新に応じて内部構成を遷移しながら検索処理を継続することを特徴とする。
【発明の効果】
【0010】
この発明によれば、書き換え可能なプロセッサ上でデータベース更新時だけ論理的な冗長回路構成をとることにより、電力の消費を抑えた上で無瞬断な検索機能を提供するという効果を奏する。
【発明を実施するための最良の形態】
【0011】
以下に、本発明にかかる検索装置,検索方法およびデータ処理装置の実施の形態を図面に基づいて詳細に説明する。なお、以下に示す実施の形態によりこの発明が限定されるものではない。
【0012】
実施の形態1.
図1は、本発明にかかる検索装置の実施の形態1のネットワーク構成を示す図である。本実施の形態では、本発明にかかる検索装置,データ処理装置として、ルータに実装されるデバイスを例として説明する。
【0013】
図1に示すように、本実施の形態1のネットワークは、ルータ1,PC端末2,インターネット3,サーバー群4,アクセスポイント5,無線端末6,イントラネット7,制御PC8,制御リンク9,リンク10で構成されている。ルータ1は、インターネット3,イントラネット7,サーバー群4とそれぞれリンク10により接続されており、ネットワーク間のパケットの転送などを行う。アクセスポイント5は、リンク10を介してインターネット3、またはイントラネット7に接続されている。PC端末2はリンク10を介して、無線端末6はアクセスポイント5を介して、それぞれ端末間の相互通信を行う。また制御PC8は、ルータ1と制御リンク9によって接続されており、ルータ1に対してデータベース更新用のデータ送信などを行う。
【0014】
図2は、図1で示したルータ1の機能構成例を示す図である。図2に示すように、ルータ1は、送受信ユニット11,転送ユニット12,デバイス13,外部メモリ14,コントローラ15で構成される。送受信ユニット11と転送ユニット12とは転送経路21で、転送ユニット12とデバイス13とは検索経路22で、それぞれ接続されており、デバイス13,外部メモリ14,コントローラ15は、外部バス接続線24を介して外部バス23に接続されている。
【0015】
つづいて、各構成要素の機能について述べる。送受信ユニット11は、インターネット3,サーバー群4,イントラネット7にそれぞれリンク10で接続されている。図3は、Ethernet(登録商標)フレームを説明する図である。送受信ユニット11は、リンク10から受信した図3のEthernet(登録商標)フレーム100からMAC(Media Access Control)ヘッダ101とFCS(Frame Check Sequence)103を取り除いたIPv4パケット102を転送ユニット12に転送し、また、転送ユニット12から送られたIPv4パケット102に、MACヘッダ101とFCS103を付加してリンク10に送信する。
【0016】
転送ユニット12は、受信したフレームから、そのフレームの転送に必要なルーティング情報を得るための検索処理に必要な情報(以下、検索キー情報とよぶ)を抽出し、検索経路22を介してデバイス13へ検索キー情報を送る。また、デバイス13から検索経路22を介して検索結果(ルーティング情報)を受け取り、上記の受信したフレームをその検索結果に基づき送受信ユニット11へ転送経路21を使い転送する。
【0017】
本実施の形態においては、検索キー情報は、ネットワーク層(IPv4)のヘッダに含まれる宛先アドレス送信元アドレス,プロトコル,トータル長,識別子,フラグ,フラグメントオフセットと、トランスポート層(TCPまたはUDP)のヘッダに含まれる宛先ポート番号,送信元ポート番号,シーケンス番号(TCPの場合のみ)と、を含むものとする。以下、図3〜6を用いて検索キー情報を説明する。
【0018】
図3のように、IPv4ヘッダ104,TCPヘッダ105,UDPヘッダ106はEthernet(登録商標)フレーム100にカプセル化されている。
【0019】
図4は、ネットワーク層のヘッダであるIPv4のヘッダのフォーマットを示している。IPv4ヘッダの先頭から3バイト目にTOSフィールド(TOS)201、4バイト目にトータル長(Total Length)202、5バイト目に識別子(Identification)203、7バイト目のうち上位3ビットがフラグ(Flag)204であり、7バイト目の下位5ビットと8バイト目がフラグメントオフセット(Fragment Offset)205、10バイト目にプロトコル(Protocol)206、13バイト目に送信元IPアドレス(Source Address)207、17バイト目に宛先IPアドレス(Destination Address)208が位置している。
【0020】
図5は、トランスポート層のヘッダであるTCPヘッダのフォーマットを示している。TCPヘッダの先頭から1バイト目に送信元ポート番号(Source Port)301、3バイト目に宛先ポート番号(Destination Port)302、5バイト目にシーケンス番号(Sequence Number)303、9バイト目に確認応答番号(Acknowledgement Number)304が位置している。
【0021】
図6は、トランスポート層のヘッダであるUCPヘッダのフォーマットを示している。UDPヘッダの1バイト目に送信元ポート番号(Source Port)401、3バイト目に宛先ポート番号(Destination Port)402が位置している。
【0022】
なお、本実施の形態では、ネットワーク層のプロトコルとしてIPv4を用い、また、トランスポート層のプロトコルとして、TCPまたはUDPを用いる場合について説明したが、本発明がこれらプロトコルに限定されるものではない。たとえば、ネットワーク層のプロトコルがIPv6であってもよいし、トランスポート層のプロトコルがRDPであってもよい。また、本実施の形態では、パケットのトレーラーとしてEthernet(登録商標)フレームを用いた場合について説明するが、Ethernet(登録商標)フレームに限定されるものではない。たとえば、ATM(Asynchronous Transfer Mode)またはFDDI(Fiber-Distributed Data Interface)などを用いた場合にも同様に実施できる。
【0023】
また、上記の検索キー情報の項目は一例であり、ルーティング情報を検索できる情報であれば、これに限らない。検索方法やプロトコルによっては、上記の検索キー情報の項目の一部を用いない場合もあり、また、上記以外の項目が含まれることもある。
【0024】
デバイス13は、外部メモリ14に記憶されたデータベースを外部バス23および外部バス接続線24を介して取得し、検索経路22から送出された検索キー情報を検索キーとして、データベースに対して検索処理を行い、検索結果としてルーティング情報を得る。そして、デバイス13は、検索結果を検索経路22を介して転送ユニット12に通知する。
【0025】
外部メモリ14は、制御PC8から制御リンク9を介して送られたデータベースを記憶している。データベースは、検索キー情報を用いて、ルーティング情報を検索するためのもので、検索キー情報とルーティング情報の対応が含まれているものとする。
【0026】
コントローラ15は、制御リンク9を介して制御PC8から送られるなどルータ1の外部からのデータを、ルータ1内の外部バス23で用いるデータフォーマットに変換する。
【0027】
図7は、図2のデバイス13の機能構成例を示す図である。図7に示すように、デバイス13は、演算ユニット31,プロセッサ32,設定情報変更ユニット33で構成されている。演算ユニット31は、検索経路22と接続している。内部バス34は、外部バス接続線24と内部バス接続線35に接続し、デバイス13の外部とのデータ入出力を行う。設定情報変更ユニット33は、設定情報通知線36により、それぞれ演算ユニット31とプロセッサ32に接続されている。また、プロセッサ32と演算ユニット31は、接続線37で接続されている。
【0028】
つづいて、各構成要素の機能について説明する。演算ユニット31は、多数の演算器およびメモリで構成されている。演算ユニット31は、設定情報変更ユニット33から、内部に記憶されている設定情報を受け取り、各演算器およびメモリに対してこの設定情報を反映することにより、設定情報に基づく内部構成を構築して動作する。
【0029】
設定情報とは、演算ユニット31に実装されている演算器,メモリ等の各構成要素に対する、設定が必要な定数値、各演算器での算術演算指定および論理演算指定、各構成要素間の配線接続情報などを格納したコンフィギュレーションデータである。
【0030】
プロセッサ32は、デバイス13全体の動作の制御を行うとともに、設定情報通知線36を通じて設定情報変更ユニット33に対して設定情報を送出し、設定情報の登録指示,設定情報の変更指示をおこなう。
【0031】
設定情報変更ユニット33は、プロセッサ32から送出された設定情報を受け取り、プロセッサ32からの登録指示に従って設定情報を登録する(記憶する)。また、プロセッサ32から、設定情報の変更指示があった場合には、その指示に基づき内部に記憶されている設定情報を変更する。設定情報は複数記憶可能とする。また、設定情報変更ユニット33は、プロセッサ32または演算ユニット31から設定情報送出の指示があると、演算ユニット31に対して指示された設定情報を送出する。
【0032】
つづいて、デバイス13の設定情報に基づく内部構成について例をあげて説明する。なお、本実施の形態では一例として2つの検索回路を持つ場合について説明するが、2つに限定されるものではない。以下、3種類の設定情報(第1の設定情報,第2の設定情報,第3の設定情報)に対応する3種類の内部構成について説明する。
【0033】
図8は、第1の設定情報に基づいた演算ユニット31の内部構成の一例を示す図である。演算ユニット31は、第1の設定情報に基づいた場合、演算ユニット31内のメモリおよび演算器を用いて、図8に示すように、第1の検索処理回路42,選択回路41,RAM更新回路43,第1の内蔵RAM44,第2の内蔵RAM45,多重化回路47で構成される。また、回路接続線51は選択回路41と第1の検索処理回路42を接続し、回路接続線52は第1の検索処理回路42と多重化回路47を接続し、信号線53はRAM更新回路43から選択回路41への信号を伝送する。
【0034】
選択回路41は、RAM更新回路43から信号線53を介して送られる、または、プロセッサ32から接続線37を介して送られる内部構成変更指示に基づき、検索処理を行う回路(検索キー情報の出力先経路)を選択する回路である。選択回路41は、上記の検索回路変更指示があると、第1の検索処理回路42から後述する第2の検索処理回路46へ、または、第2の検索処理回路46から第1の検索処理回路42に、それぞれ切替えることにより、検索キー情報の出力先を選択する回路である。
【0035】
第1の検索処理回路42は、選択回路41から入力された検索キー情報を検索キーとして、第1の内蔵RAM44に格納されているデータベースに対して検索処理を行い、検索結果を回路接続線52経由で検索経路22へ出力する回路である。
【0036】
RAM更新回路43は、外部バス接続線24,外部バス23,内部バス接続線35を経由して外部メモリ14に記憶されているデータベースをとりこみ、第1の内蔵RAM44、または第2の内蔵RAM45へ書き込む回路である。
【0037】
第1の内蔵RAM44,第2の内蔵RAM45は、RAM更新回路43から送られたデータベースを検索のためのデータベースとして保存するメモリである。検索キーの項目をアドレスとし、その項目に対応する経路情報をそのアドレスの位置の値として記憶している。第1の内蔵RAM44は第1の検索処理回路42から入力される検索キー情報を、第2の内蔵RAM45は第2の検索処理回路46から入力される検索キー情報を、それぞれアドレスとして、該当アドレスに記憶されている値(経路情報)を、それぞれ検索キー情報が入力された第1の検索処理回路42または第2の検索処理回路46に検索結果として出力する。
【0038】
多重化回路47は、第1の検索処理回路42または第2の検索処理回路46から出力された検索結果を多重化して検索経路22に出力する。
【0039】
図9は、第2の設定情報に基づいた演算ユニット31内部構成の一例を示す図である。演算ユニット31は、第1の設定情報に基づいた場合、演算ユニット31内のメモリおよび演算器を用いて、図9に示すように、第1の検索処理回路42,選択回路41,RAM更新回路43,第1の内蔵RAM44,第2の内蔵RAM45,多重化回路47,第2の検索処理回路46で構成される。また回路接続線51は選択回路41と第1の検索回路42を接続し、回路接続線52は第1の検索処理回路42と多重化回路47を接続し、信号線53はRAM更新回路から選択回路43への信号を伝送し、回路接続線54は選択回路41と第2の検索回路46を接続し、回路接続線55は第2の検索回路46と多重化回路47を接続する。
【0040】
図9の第1の検索処理回路42,選択回路41,RAM更新回路43,第1の内蔵RAM44,第2の内蔵RAM45については、第1の設定情報で構成される図8と同様であるため同一の符号を付して説明を省略する。
【0041】
第2の検索処理回路46は、選択回路41から入力された検索キー情報を検索キーとして、第2の内蔵RAM45に格納されているデータベースに対して検索処理を行い、検索結果を回路接続線52経由で検索経路22へ出力する回路である。
【0042】
図10は、第3の設定情報基づいた演算ユニット31内部構成の一例を示す図である。演算ユニット31は、第3の設定情報に基づいた場合、演算ユニット31内のメモリおよび演算器を用いて、図10に示すように、選択回路41,RAM更新回路43,第1の内蔵RAM44,第2の内蔵RAM45,多重化回路47,第2の検索処理回路46で構成される。また、信号線53はRAM更新回路から選択回路43への信号を伝送し、回路接続線54は選択回路41と第2の検索回路46を接続し、回路接続線55は第2の検索回路46と多重化回路47を接続する。
【0043】
図10の各構成要素は、第1の設定情報で構成される図8、または第2の設定情報で構成される図9と同様であるため同一の符号を付して説明を省略する。
【0044】
つづいて、本実施の形態の検索動作中におけるデータベース更新方法について述べる。なお、本実施の形態では、第1の設定情報に基づく内部構成(図8参照)を演算ユニット31での初期動作状態として説明するが、第3の設定情報に基づく内部構成(図10参照)を初期状態としてもよい。また、初期状態として、第1の内蔵RAM44,第2の内蔵RAM45には、検索に使用する任意のデータベースが記憶されているものとする。設定情報変更ユニット33には、前述の第1の設定情報,第2の設定情報,第3の設定情報が記憶されているものとする。
【0045】
まず、データベース更新前の初期状態を説明する。演算ユニット31は、第1の設定情報に基づき図8の内部構成をとっている。選択回路41は、検索経路22から検索キー情報が入力されると、回路接続線51を経由して第1の検索処理回路42に検索キー情報を出力する。第1の検索処理回路42は、入力された検索キー情報を用いて、第1の内蔵RAM44に記憶されているデータベースの検索を行い、検索結果を多重化回路47に出力する。多重化回路47は、その検索結果を多重化し、回路接続線52経由および検索経路22経由で転送ユニット12に出力する。
【0046】
つぎに、制御PC8が、変更した新データベースのデータを制御リンク9経由でルータ1に送る。データベースの更新は、たとえば、制御PC8が、ルータ1が関係するネットワークの状態から、転送経路の変更や追加,削除が必要と判断した場合に行われる。コントローラ15は、制御リンク9から送出された新データベースを、制御リンク9で用いられているデータフォーマットから外部バス23で用いるデータフォーマットに変換し、外部バス接続線24経由で外部メモリ14に出力する。そして、外部メモリ14は、この新データベースを記憶する。
【0047】
つぎに、制御PC8は、ルータ1内のデバイス13内のプロセッサ32に内部構成変更指示を送る。プロセッサ32は、この内部構成変更指示を受信すると、接続線37経由で演算ユニット31の選択回路41と、RAM更新回路43に内部構成変更指示を送出する。
【0048】
RAM更新回路43は、内部構成変更指示を受信すると、内部バス接続線35,内部バス34,外部バス接続線24,外部バス23経由で外部メモリ14に記憶されている新データベースを読み出して、第2の内蔵RAM45に読み出した新データベースを書き込む。そして、第2の内蔵RAM45への新データベースの書き込みが終了すると、設定情報通知線36を介して設定情報変更ユニット33に対して、第2の設定情報への変更を指示する。設定情報変更ユニット33は、記憶している第2の設定情報をよみだし、演算ユニット31に第2の設定情報を送出する。
【0049】
なお、制御PC8が内部構成変更指示を送出せずに、RAM更新回路43が、外部メモリ14をポーリングし、外部メモリ14に記憶されているデータベースの変更を検出した場合に、内部構成変更指示を送出するようにしてもよい。この場合、RAM更新回路43は、外部メモリ14に記憶されているデータベースの変更を検出すると、外部メモリ14から新データベースを読み出して、第2の内蔵RAM45に読み出した新データベースを書き込み、信号線53経由で選択回路41に対して内部構成変更指示を送出する。そして、第2の内蔵RAM45への新データベースの書き込みが終了すると、設定情報通知線36を介して設定情報変更ユニット33に対して、第2の設定情報への変更を指示する。設定情報変更ユニット33は、記憶している第2の設定情報を読み出し、演算ユニット31に第2の設定情報を送出する。
【0050】
そして、演算ユニット31は、設定情報変更ユニット33から受け取った第2の設定情報をロードし、第2の設定情報に基づいた内部回路など(図9に示した内部構成)を構成する。そして、選択回路41は、プロセッサ32またはRAM更新回路43からへ送られた内部構成変更指示により、検索キー情報の送出先を第1の検索処理回路42から第2の検索処理回路46に切替える。この切替えが終了すると、第2の検索処理回路46が、第2の内蔵RAM45に保持されている新データベースに対して検索処理を行い、検索結果を多重化回路47に出力する。多重化回路47は、その検索結果を多重化し、回路接続線52経由および検索経路22経由で転送ユニット12に出力する。
【0051】
なお、選択回路41の検索キー情報の送出先切替えは、切替えにより検索キー情報が途中で切れて検索処理回路に送られないように、検索キー情報の切れ目で行うこととする。
【0052】
次に、プロセッサ32は、演算ユニット31が第2の設定情報をロードしたことを検出すると、その時点から、第1の検索処理回路42で検索処理中だった検索キー情報に対する検索結果が検索経路22より出力されるまで、の時間程度の所定時間経過後に、設定情報変更ユニット33に対して第3の設定情報への変更指示を送出する。そして、設定情報変更ユニット33は、記憶されている第3の設定情報を読み出し、演算ユニット31に出力する。
【0053】
なお、プロセッサ32が第2の設定情報をロードしたことを検出するかわりに、選択回路41がRAM更新回路43から内部構成変更指示を受け取り、その時点から、第1の検索処理回路42で検索処理中だった検索キー情報に対する検索結果が検索経路22より出力されるまで、の時間程度の所定時間経過後に、選択回路41が設定情報変更ユニット33に対して第3の設定情報への変更指示を送出するようにしてもよい。
【0054】
つぎに、演算ユニット31は、設定情報変更ユニット33から受け取った第3の設定情報をロードし、第3の設定情報に基づいた内部回路など(図9に示した内部構成)を構成する。そして、制御PCが、次のデータベース変更を行うまで、検索キー情報に対して第2の検索処理回路46を使って検索処理を行う。
【0055】
このように、本実施の形態では、演算ユニット31の内部構成を設定情報に基づいて複数用意し、データベースの更新時のみ2つの検索回路と検索用メモリを備え、検索処理のみを行っている間は、2つの検索回路のうち1つのみを稼動させるようにした。このため、検索動作中であっても検索動作を停止せずにデータベースの変更ができ、かつ、使用していない構成品のために電力を消費しないため、従来のFPGAを切替える方式に比べ消費電力を削減することができる。
【0056】
実施の形態2.
図11は、本発明にかかる検索装置の実施の形態2の第3の設定情報に基づいた演算ユニット31aの構成例を示す図である。本実施の形態においても検索装置としてルータに実装されているデバイスを例として説明する。本実施の形態のルータは、実施の形態1の図2のルータ1と同様であり、ネットワーク構成も図1の実施の形態1と同様である。また、本実施の形態のデバイスの機能構成については、制御ユニット31を制御ユニット31aに置き換えた以外、図7に示す実施の形態1と同様である。すなわち、本実施の形態と実施の形態1では、設定情報によりロードされる演算ユニット31aの内部構成が異なる。以下、実施の形態1と同様の部分については、説明を省略し、実施の形態1と異なる部分について説明する。また、実施の形態1と同様の機能のものは、同一の符号を付して説明する。
【0057】
図11は、第4の設定情報に基づいた演算ユニット31aの内部構成である。演算ユニット31aは、第4の設定情報に基づいた場合、演算ユニット31a内のメモリおよび演算器を用いて、図11に示すように、第1の検索処理回路42,選択回路41,第1の内蔵RAM44,第2の内蔵RAM45,多重化回路47で構成される。実施の形態1の第1の設定情報に基づいた内部構成(図8参照)との相違点は、RAM更新回路43がない点である。実施の形態1と同様の機能のものについては、同一の番号を付して説明を省略する。
【0058】
図12は、第5の設定情報に基づいた演算ユニット31aの内部構成である。演算ユニット31aは、第5の設定情報に基づいた場合、演算ユニット31a内のメモリおよび演算器を用いて、図12に示すように、選択回路41,第1の内蔵RAM44,第2の内蔵RAM45,多重化回路47,第2の検索処理回路46で構成される。実施の形態1の第2の設定情報に基づいた内部構成(図10参照)との相違点は、RAM更新回路43がない点である。実施の形態1と同様の機能のものについては、同一の番号を付して説明を省略する。
【0059】
つづいて、本実施の形態の検索動作中におけるデータベース更新方法について説明する。なお、本実施の形態では、第4の設定情報に基づく内部構成(図11参照)を演算ユニット31での初期動作状態として説明するが、第5の設定情報に基づく内部構成(図12参照)を初期状態としてもよい。また、初期状態として、第1の内蔵RAM44,第2の内蔵RAM45には、検索に使用する任意のデータベースが記憶されているものとする。設定情報変更ユニット33には、前述の第4の設定情報,第5の設定情報と、実施の形態1で説明した第2の設定情報が記憶されているものとする。
【0060】
まず、データベース更新前の初期状態を説明する。演算ユニット31aは、第4の設定情報に基づき図11に示す内部構成をとっている。選択回路41は、検索経路22から検索キー情報が入力されると、回路接続線51を経由して第1の検索処理回路42に検索キー情報を出力する。第1の検索処理回路42は、入力された検索キー情報を用いて、第1の内蔵RAM44に記憶されているデータベースの検索を行い、検索結果を多重化回路47に出力する。多重化回路47は、その検索結果を多重化し、回路接続線52経由および検索経路22経由で転送ユニット12に出力する。
【0061】
ここで、本実施の形態では、実施の形態1と異なり、データベースの変更が行われていないとき(検索処理のみを行っているとき)には、RAM更新回路43を取り除いているので、RAM更新回路43を動作させるために定常的に消費されていた電力を削減することができる。
【0062】
つぎに、制御PC8が、変更した新データベースのデータを制御リンク9経由でルータ1に送る。データベースの更新は、たとえば、制御PC8が、ルータ1が関係するネットワークの状態に基づいて、転送経路の変更や追加、削除が必要と判断した場合に行われる。コントローラ15は、制御リンク9から送出された新データベースを、制御リンク9で用いられているデータフォーマットから外部バス23で用いるデータフォーマットに変換し、外部バス接続線24経由で外部メモリ14に出力する。そして、外部メモリ14は、この新データベースを記憶する。
【0063】
つぎに、制御PC8は、ルータ1内のデバイス13内のプロセッサ32に内部構成変更指示を送る。プロセッサ32は、この内部構成変更指示を受信すると、設定情報通知線36を介して設定情報変更ユニット33に対して、実施の形態1の第1の設定情報への変更を指示する。第1の設定情報への変更指示後の第2のメモリに更新後のデータベースを書き込むまでの処理を実施の形態1と同様に行う。その後、設定情報通知線36を介して設定情報変更ユニット33に対して、第2の設定情報への変更を指示する。設定情報変更ユニット33は、記憶している第2の設定情報を読み出し、演算ユニット31に第2の設定情報を送出する。
【0064】
そして、演算ユニット31aは、設定情報変更ユニット33から受け取った第2の設定情報をロードし、第2の設定情報に基づいた内部回路など(実施の形態1の図9に示した内部構成)を構成する。そして、選択回路41は、プロセッサ32またはRAM更新回路43から送られた内部構成変更指示により、検索キー情報の送出先を第1の検索処理回路42から第2の検索処理回路46に切替える。この切替えが終了すると、第2の検索処理回路46が、第2の内蔵RAM45に保持されている新データベースに対して検索処理を行う。
【0065】
次に、プロセッサ32は、演算ユニット31が第2の設定情報をロードしたことを検出すると、その時点から、第1の検索処理回路42で検索処理中だった検索キー情報に対する検索結果が検索経路22より出力されるまで、の時間程度の所定時間経過後に、設定情報変更ユニット33に対して第3の設定情報への変更指示を送出する。そして、設定情報変更ユニット33は、記憶されている第3の設定情報を読み出し、演算ユニット31に出力する。
【0066】
なお、プロセッサ32が第2の設定情報をロードしたことを検出するかわりに、選択回路41がRAM更新回路43から内部構成変更指示を受け取り、その時点から、第1の検索処理回路42で検索処理中だった検索キー情報に対する検索結果が検索経路22より出力されるまで、の時間程度の所定時間経過後に、選択回路41が設定情報変更ユニット33に対して第5の設定情報への変更指示を送出するようにしてもよい。
【0067】
つぎに、演算ユニット31は、設定情報変更ユニット33から受け取った第5の設定情報をロードし、第5の設定情報に基づいた内部回路など(図12に示した内部構成)を構成する。そして、制御PC8が、次のデータベース変更を行うまで、検索キー情報に対して第2の検索処理回路46を使って検索処理が行われる。
【0068】
このように、本実施の形態では、データベース更新を行う動作時のみRAM更新回路43を備え、検索処理のみを行っている場合には、RAM更新回路43を備えない構成とした。このため、実施の形態1に比べ、検索処理操作における消費電力を削減することができる。
【0069】
実施の形態3.
図13は、本発明の実施の形態3のルータ1bの機能構成例を示す図である。本実施の形態では、図1において、実施の形態1のルータ1と本実施の形態のルータ1bとを置き換え、さらに、ルータ1bにおいては、実施の形態1の転送ユニット12,デバイス13に代えてそれぞれ転送ユニット12b,デバイス13bを備えた構成としている。また、実施の形態1のデバイス13は、外部バス接続線24により外部バス23と接続されているが、本実施の形態のデバイス13bは、外部バス23とは接続されていない。これらの相違点以外は、実施の形態1と同様の構成とする。実施の形態1と同様の機能のものは、同一の符号を付して説明を省略する。
【0070】
図14は、デバイス13bの機能構成例を示す図である。本実施の形態のデバイス13bは、実施の形態1のデバイス13の演算ユニット31の代わりに演算ユニット31bを備え、それ以外は実施の形態1と同様である。実施の形態1と同様の機能のものは、同一の符号を付して説明を省略する。
【0071】
本実施の形態では、転送ユニット12bは、実施の形態1の転送ユニット12と同様に、受信したフレームから検索キー情報を抽出するが、実施の形態1と異なり、抽出後に検索キー情報にヘッダを付加して、検索経路22経由でデバイス13bへ送る。また、転送ユニット12bは、外部バス23に外部バス接続線25を介して接続しており、制御PC8から内部構成変更指示を受けると、デバイス13bに対して検索キー情報に付加するヘッダ部分の特定フィールド(後述のRAM変更指示フィールド)を書き換えるよう指示する。
【0072】
図15は、デバイス13bへ送られるヘッダ付検索キー情報500のフォーマットである。ヘッダ501は、RAM変更指示フィールド502を含む。なお、本実施の形態では、ヘッダ501はRAM変更指示フィールド502のみとして説明するが、ヘッダ501に、RAM更新指示フィールド502以外に回路の設定に関する情報を含めるようにしてもよい。
【0073】
本実施の形態では、デバイス13bは、外部バス23と接続されていないため、プロセッサ32からの内部構成変更指示は、転送ユニット12bが付加する検索キー情報のヘッダに含まれるRAM変更指示フィールド502を用いて通知されることになる。
【0074】
つづいて、デバイス13bの設定情報に基づく内部構成について例をあげて説明する。
【0075】
図16は、第6の設定情報に基づいた演算ユニット31bの内部構成の一例を示す図である。実施の形態1の第1の設定情報に基づく構成(図8参照)との相違点は、転送ユニット12bから送られるヘッダ付検索キー情報500のヘッダ解析を行うヘッダ解析回路48と、選択回路41とRAM更新回路43とを接続する信号線56が、追加されている点である。それ以外は、実施の形態1の第1の設定情報に基づく構成(図8参照)と同様である。実施の形態1の第1の設定情報に基づく構成と同様のものは、同一の番号を付して説明を省略する。
【0076】
図17は、第7の設定情報に基づいた演算ユニット31bの内部構成の一例を示す図である。実施の形態1の第2の設定情報に基づく構成(図9参照)との相違点は、転送ユニット12bから送られるヘッダ付検索キー情報のヘッダ解析を行うヘッダ解析回路48と、選択回路41とRAM更新回路43とを接続する信号線56が、追加されている点である。それ以外は、実施の形態1の第2の設定情報に基づく構成(図9参照)と同様である。実施の形態1の第2の設定情報に基づく構成と同様のものは、同一の番号を付して説明を省略する。
【0077】
図18は、第8の設定情報に基づいた演算ユニット31bの内部構成の一例を示す図である。実施の形態1の第3の設定情報に基づく構成(図10参照)との相違点は、転送ユニット12bから送られるヘッダ付検索キー情報500のヘッダ解析を行うヘッダ解析回路48と、選択回路41とRAM更新回路43とを接続する信号線56が、追加されている点である。それ以外は、実施の形態1の第3の設定情報に基づく構成(図10参照)と同様である。実施の形態1の第3の設定情報に基づく構成と同様のものは、同一の番号を付して説明を省略する。
【0078】
つづいて、本実施の形態実施の検索動作中におけるデータベース更新方法について説明する。なお、本実施の形態では、第6の設定情報に基づく内部構成(図16参照)を演算ユニット31bでの初期動作状態として説明するが、第8の設定情報に基づく内部構成(図18参照)を初期状態としてもよい。また、初期状態として、第1の内蔵RAM44,第2の内蔵RAM45には、検索に使用する任意のデータベースが記憶されているものとする。設定情報変更ユニット33には、前述の第6の設定情報,第7の設定情報,第8の設定情報が記憶されているものとする。
【0079】
まず、データベース更新前の初期状態を説明する。演算ユニット31bは、第6の設定情報に基づき図16の内部構成をとっている。演算ユニット31bのヘッダ解析回路48は、検索経路22経由でヘッダ付検索キー情報500を受信すると、ヘッダ付検索キー情報500のうちヘッダ501の内容を解析する。そして、RAM更新指示フィールド502が、内部構成変更指示が無いことを示す値か有ることを示す値かを確認する。初期状態では、内部構成変更指示は無いため、RAM更新指示フィールド502には内部構成変更指示が無いことを示す値が書き込まれている。
【0080】
選択回路41は、検索経路22経由でヘッダ付検索キー情報500を受信すると、ヘッダ付検索キー情報500のうち検索キー情報503を、回路接続線51を経由して第1の検索処理回路42に出力する。第1の検索処理回路42は、入力された検索キー情報を用いて、第1の内蔵RAM44に記憶されているデータベースの検索を行い、検索結果を回路接続線52経由および検索経路22経由で転送ユニット12bに出力する。なお、検索経路22から入力されるヘッダ付き検索キー情報500は、前述のとおり転送ユニット12bでヘッダ501が付加されている。検索処理のみを行っている初期状態では、転送ユニット12bは、ヘッダ501のRAM変更指示フィールド502の値を内部構成変更指示が無いことを示す値としている。
【0081】
つぎに、制御PC8が、変更した新データベースのデータを制御リンク9経由でルータ1bに送る。コントローラ15は、制御リンク9から送出された新データベースを、制御リンク9で用いられているデータフォーマットから外部バス23で用いるデータフォーマットに変換し、外部バス接続線24経由で外部メモリ14に出力する。そして、外部メモリ14は、この新データベースを記憶する。
【0082】
つぎに、制御PC8は、ルータ1b内の転送ユニット12bに内部構成変更指示を送る。転送ユニット12bは、この内部構成変更指示を受信すると、ヘッダ付検索キー情報500のRAM更新指示フィールド502の値を内部構成変更指示が有ることを示す値としてヘッダ501を付加したヘッダ付き検索キー情報500を生成する。そして、生成したヘッダ付き検索キー情報500を検索経路22経由でデバイス13bに送出する。
【0083】
つぎに、デバイス13bの演算ユニット31b内のヘッダ解析回路48が、検索経路22経由でヘッダ付検索キー情報500を受信し、ヘッダの解析を行う。そして、RAM更新指示フィールド502が、内部構成変更指示が有ることを示す値であることを確認すると、信号線56を使いRAM更新回路43に対して内部構成変更指示を送出する。
【0084】
選択回路41は、検索経路22経由でヘッダ付検索キー情報500を受信し、ヘッダ付検索キー情報500のうち検索キー情報503を、回路接続線51を経由して第1の検索処理回路42に出力する。第1の検索処理回路42は、入力された検索キー情報を用いて、第1の内蔵RAM44に記憶されているデータベースの検索を行い、検索結果を多重化回路47に出力する。多重化回路47は、その検索結果を多重化し、回路接続線52経由および検索経路22経由で転送ユニット12bに出力する。
【0085】
つぎに、RAM更新回路43は、ヘッダ解析回路48から内部構成変更指示を受信すると、内部バス接続線35,内部バス34,外部バス接続線24,外部バス23経由で外部メモリ14に記憶されている新データベースを読み出して、第2の内蔵RAM45に読み出した新データベースを書き込み、信号線53経由で選択回路41に対して内部構成変更指示を行う。そして、第2の内蔵RAM45への新データベースの書き込みが終了すると、設定情報通知線36を介して設定情報変更ユニット33に対して、第7の設定情報への変更を指示する。設定情報変更ユニット33は、記憶している第7の設定情報を読み出し、演算ユニット31bに第7の設定情報を送出する。
【0086】
つぎに、演算ユニット31bは、設定情報変更ユニット33から受け取った第7の設定情報をロードし、第7の設定情報に基づいた内部回路など(図17に示した内部構成)を構成する。そして、選択回路41は、RAM更新回路43から送られた内部構成変更指示により、検索キー情報の送出先を第1の検索処理回路42から第2の検索処理回路46に切替える。この切替えが終了すると、第2の検索処理回路46が、第2の内蔵RAM45に保持されている新データベースに対して検索処理を行う。
【0087】
つぎに、プロセッサ32は、演算ユニット31bが第7の設定情報をロードしたことを検出すると、その時点から、第1の検索処理回路42で検索処理中だった検索キー情報に対する検索結果が検索経路22より出力されるまで、の時間程度の所定時間経過後に、設定情報変更ユニット33に対して第8の設定情報への変更指示を送出する。そして、設定情報変更ユニット33は、記憶されている第8の設定情報を読み出し、演算ユニット31bに出力する。
【0088】
なお、プロセッサ32が第7の設定情報をロードしたことを検出するかわりに、選択回路41がRAM更新回路43から内部構成変更指示を受け取り、その時点から、第1の検索処理回路42で検索処理中だった検索キー情報に対する検索結果が検索経路22より出力されるまで、の時間程度の所定時間経過後に、選択回路41が設定情報変更ユニット33に対して第8の設定情報への変更指示を送出するようにしてもよい。
【0089】
つぎに、演算ユニット31bは、設定情報変更ユニット33から受け取った第8の設定情報をロードし、第8の設定情報に基づいた内部回路など(図18に示した内部構成)を構成する。そして、制御PCが次のデータベース変更を行うまで、検索キー情報に対して第2の検索処理回路46を使って検索処理を行う。
【0090】
このように、本実施の形態では、転送ユニット12bが検索キー情報にRAM更新フィールド502を含むヘッダ501を付加し、RAM更新フィールド502の値により、内部構成変更を指示するようにした。このため、外部バス23を介さずにデバイス13bに内部構成変更を指示することができる。
【0091】
実施の形態4.
図19は、本発明の実施の形態4のルータ1cの機能構成例を示す図である。本実施の形態では、図1において、実施の形態1のルータ1と本実施の形態のルータ1cとを置き換え、さらに、ルータ1cにおいては、前述した実施の形態3に検索FIFO16を追加し、デバイス13bの代わりにデバイス13cを備えた構成としている。また、実施の形態3の検索経路22の代わりに、デバイス13bと検索FIFO16を接続する検索経路26,検索FIFO16と転送ユニット12bを接続する検索経路27、を追加している。これらの相違点以外は、実施の形態3と同様の構成とする。実施の形態1または3と同様の機能のものは、同一の符号を付して説明を省略する。
【0092】
本実施の形態では、実施の形態3と同様に、転送ユニット12bは、受信フレームから抽出した検索キー情報にヘッダ501を付加したヘッダ付検索キー情報500を生成する。本実施の形態のヘッダ付検索キー情報500のフォーマットおよびその内容は、図15に示す実施の形態3と同様である。
【0093】
本実施の形態では、転送ユニット12bで生成されたヘッダ付検索キー情報500は、検索経路26を経由して、検索FIFO16を通過した後に、デバイス13cへ出力される。また、デバイス13cからの検索結果は検索経路27を経由して転送ユニット12bに出力される。
【0094】
本実施の形態では、データベース更新中と通常の検索処理のみを行っているときの検索処理能力の比率が、1:2となる。検索FIFO16は、デバイス13cにおける検索処理能力が通常の検索処理より低下するデータベース更新中に、検索キー情報の処理溢れを防ぐための記憶手段である。検索FIFO16は、転送ユニット12bから出力されるヘッダ付検索キー情報500を順次記憶し、デバイス13cにヘッダ付検索キー情報500を記憶された順に出力する。検索処理能力の低下によるヘッダ付検索キー情報500の処理溢れを防ぐために、検索FIFO16は、たとえば、出力したヘッダ付検索キー情報500からの検索結果の出力が停止した場合には、ヘッダ解析回路48へのヘッダ付検索キー情報500の出力を停止し、検索結果の出力開始まで出力されていないヘッダ付検索キー情報500を保持する。
【0095】
つづいて、デバイス13cの設定情報に基づく内部構成について例をあげて説明する。なお、また、本実施の形態のデバイス13cの機能構成は、実施の形態3の演算ユニット31bを演算ユニット31cに代える点以外は実施の形態3と同様とする。
【0096】
図20は、第9の設定情報に基づいた演算ユニット31cの内部構成の一例を示す図である。図20の構成は、実施の形態3の第7の設定情報に基づいた構成(図17参照)において、選択回路41を分配回路49に代えたものである。
【0097】
分配回路49は、入力された検索キー情報503を第1の検索処理回路42または第2の検索処理回路46にラウンドロビン方式で出力する。
【0098】
図21は、第10の設定情報に基づいた演算ユニット31cの内部構成の一例を示す図である。図21の構成は、実施の形態3の第6の設定情報に基づいた構成(図16参照)において、選択回路41を分配回路49に代えたものである。
【0099】
図22は、第11の設定情報に基づいた演算ユニット31cの内部構成の一例を示す図である。図22の構成は、実施の形態3の第8の設定情報に基づいた構成(図18参照)において、選択回路41を分配回路49に代えたものである。
【0100】
つづいて、本実施の形態の検索動作中におけるデータベース更新方法について述べる。なお、本実施の形態では、一例として、データベースの更新の際に、第9の設定情報(図20参照)⇒第10の設定情報(図21参照)⇒第9の設定情報(図20参照)⇒第11の設定情報(図22参照)の順でロードする手順を説明するが、第9の設定情報(図20参照)⇒第11の設定情報(図22参照)⇒第9の設定情報(図20参照)⇒第10の設定情報(図21参照)の順でロードしてもよい。また、初期状態として、第1の内蔵RAM44,第2の内蔵RAM45には、検索に使用する任意の同一のデータベースが記憶されているものとする。設定情報変更ユニット33には、前述の第9の設定情報,第10の設定情報,第11の設定情報が記憶されているものとする。
【0101】
まず、データベース更新前の初期状態を説明する。演算ユニット31cは、第9の設定情報に基づき図20の内部構成をとっている。演算ユニット31cのヘッダ解析回路48は、検索経路22経由でヘッダ付検索キー情報500を受信すると、ヘッダ501の解析を行う。そして、RAM更新指示フィールド502が、内部構成変更指示が無いことを示す値であることを確認する。
【0102】
分配回路49は、ヘッダ解析回路48から出力された検索キー情報503を、ラウンドロビン方式により、回路接続線51を経由して第1の検索処理回路42へ、または、回路接続線54を経由して第2の検索処理回路46へ出力する。第1の検索処理回路42,第2の検索処理回路46は、分配回路49から出力された検索キー情報503を用いて、それぞれ第1の内蔵RAM44,第2の内蔵RAM45に記憶されているデータベースの検索を行い、検索結果を多重化回路47に出力する。多重化回路47は、第1の検索処理回路42,第2の検索処理回路46から出力された検索結果を多重化し、検索経路27経由で転送ユニット12bに出力する。
【0103】
ここで、実施の形態3との違いは、第9の設定情報に基づいた内部構成として、第1の検索処理回路42と第2の検索処理回路46の2つの検索回路を使用することであり、この違いにより、検索処理能力を実施の形態1〜3の2倍にすることができる。
【0104】
つぎに、制御PC8が、変更した新データベースのデータを制御リンク9経由でルータ1cに送る。コントローラ15は、制御リンク9から送出された新データベースを、制御リンク9で用いられているデータフォーマットから外部バス23で用いるデータフォーマットに変換し、外部バス接続線24経由で外部メモリ14に出力する。そして、外部メモリ14は、この新データベースを記憶する。
【0105】
つぎに、制御PC8は、ルータ1c内の転送ユニット12bに内部構成変更指示を送る。転送ユニット12bは、この内部構成変更指示を受信すると、ヘッダ付検索キー情報500のRAM更新指示フィールド502の値を内部構成変更指示があることを示す値としてヘッダ501を付加したヘッダ付検索キー情報500を生成する。そして、生成したヘッダ付検索キー情報500を検索経路26および検索FIFO16を経由してデバイス13cに出力する。
【0106】
つぎに、デバイス13cの演算ユニット31c内のヘッダ解析回路48は、検索経路26経由でヘッダ付検索キー情報500を受信すると、ヘッダ501の解析を行う。そして、ヘッダ501のうちRAM更新指示フィールド502が、内部構成変更指示が有ることを示す値であることを確認すると、信号線56を使い分配回路49に対して検索キーの分配停止指示を送出する。
【0107】
分配回路49は、検索経路26経由でヘッダ付検索キー情報500を受信すると、ヘッダ付検索キー情報500のうち検索キー情報503を、ラウンドロビン方式により、回路接続線51を経由して第1の検索処理回路42へ、または、回路接続線54を経由して第2の検索処理回路46へ出力する。第1の検索処理回路42,第2の検索処理回路46は、分配回路49から出力された検索キー情報503を用いて、それぞれ第1の内蔵RAM44,第2の内蔵RAM45に記憶されているデータベースの検索を行い、検索結果を多重化回路47に出力する。多重化回路47は、第1の検索処理回路42,第2の検索処理回路46から出力された検索結果を多重化し、検索経路27経由で転送ユニット12bに出力する。
【0108】
ヘッダ解析回路48から分配停止指示を受け取った分配回路49は、第2の検索処理回路46への検索キー情報503の配信を停止し、第1の検索処理回路42のみに検索キー情報503を送出する。そして、第2の検索処理回路46で検索処理中だった検索キー503に対する検索結果が出力される程度の任意の所定時間経過後、分配回路49は、設定情報変更ユニット33に対して第10の設定情報への内部構成変更指示を送出する。設定情報変更ユニット33は、記憶している第10の設定情報を読み出し、演算ユニット31cに第10の設定情報を送出する。
【0109】
つぎに、演算ユニット31cは、設定情報変更ユニット33から受け取った第10の設定情報をロードし、第10の設定情報に基づいた内部回路など(図21に示した内部構成)を構成する。
【0110】
つぎに、RAM更新回路43は、内部バス接続線35,内部バス34,外部バス接続線24,外部バス23経由で外部メモリ14に記憶されている新データベースを読み出して、第2の内蔵RAM45に読み出した新データベースを書き込む。そして、第2の内蔵RAM45へ新データベースの書き込みが終了すると、信号線53を使い分配回路49に対して検索処理回路変更指示と、設定情報通知線36を介して設定情報変更ユニット33に対して、第9の設定情報への内部構成変更指示を送出する。
【0111】
つぎに、演算ユニット31cは、設定情報変更ユニット33から受け取った第9の設定情報をロードし、第9の設定情報に基づいた内部回路など(図20に示した内部構成)を構成する。
【0112】
検索処理回路変更指示を受け取った分配回路49は、第1の検索処理回路42への検索キー情報503の配信を停止し、第2の検索処理回路46に検索キー情報503を送出する。そして、第1の検索処理回路42で検索処理中だった検索キー503に対する検索結果が出力される程度の任意の所定時間経過後、分配回路49は、設定情報変更ユニット33に対して第11の設定情報への内部構成変更指示を送出する。設定情報変更ユニット33は、記憶している第11の設定情報を読み出し、演算ユニット31cに第11の設定情報を送出する。
【0113】
つぎに、演算ユニット31cは、設定情報変更ユニット33から受け取った第11の設定情報をロードし、第11の設定情報に基づいた内部回路など(図22に示した内部構成)を構成する。
【0114】
つぎに、RAM更新回路43は、内部バス接続線35,内部バス34,外部バス接続線24,外部バス23経由で外部メモリ14に記憶されている新データベースを読み出して、第1の内蔵RAM44に読み出した新データベースを書き込む。そして、第2の内蔵RAM45へ新データベースの書き込みが終了すると、信号線53を使い分配回路49に対して検索処理回路変更指示を送出し、さらに、設定情報通知線36を介して設定情報変更ユニット33に対して、第9の設定情報への内部構成変更指示を送出する。
【0115】
つぎに、演算ユニット31cは、設定情報変更ユニット33から受け取った第9の設定情報をロードし、第9の設定情報に基づいた内部回路など(図20に示した内部構成)を構成する。
【0116】
また、検索処理回路変更指示を受け取った分配回路49は、初期状態と同様、ラインドロビン方式により、検索情報キー503を第1の検索処理回路42、または、第2の検索処理回路46に出力する。そして、制御PC8が、次のデータベース変更を行うまで、検索キー情報に対してランドロビン方式により第1の検索処理回路42および第2の検索処理回路46の2つの検索処理回路を使って検索処理を行う。
【0117】
なお、本実施の形態では、実施の形態3の選択回路41を分配回路49に変え、ルータ1cに検索FIFO16を追加したが、たとえば、実施の形態1または2において、同様に選択回路41を分配回路49に変え、検索FIFO16を追加することにより、通常処理をランドロビン方式により第1の検索処理回路42および第2の検索処理回路46の2つの検索処理回路を使うようにしてもよい。
【0118】
このように本実施の形態では、通常の検索処理時(データベース変更時以外)に、第1の検索処理回路42および第2の検索処理回路46の2つの検索処理回路を用いて検索処理を行うようにした。このため、通常の検索処理時に、実施の形態1〜3に比べ2倍の処理能力を持つことができる。
【0119】
実施の形態5.
図23は、本発明にかかる検索装置の実施の形態5の第12の設定情報に基づいた演算ユニット31dの内部構成例を示す図である。本実施の形態においても検索装置としてルータに実装されているデバイスを例として説明する。本実施の形態のルータは、実施の形態3の図13に示すルータ1bと同様である。ネットワーク構成は、図1の実施の形態1と同様である。また、本実施の形態のデバイスの機能構成については、演算ユニット31bを演算ユニット31dに置き換える以外、図14に示す実施の形態3と同様である。
【0120】
図23に示すように、本実施の形態の第12の設定情報に基づいた演算ユニット31dは、図20に示した実施の形態4の第9の設定情報に基づいた演算ユニット31cに、演算ユニット内検索FIFO50が追加されている。以下、実施の形態1、3または4と同様の部分については、同一の符号付して説明を省略し、実施の形態1、3または4と異なる部分について説明する。
【0121】
演算ユニット内検索FIFO50は、実施の形態4の検索FIFO16と同様の目的で設けられており、デバイス13dにおける検索処理能力が通常の検索処理より低下するデータベース更新中に、検索キー情報の処理溢れを防ぐための記憶手段である。演算ユニット内検索FIFO50は、検索経路22から出力されるヘッダ付検索キー情報500を順次記憶し、ヘッダ解析回路48に記憶された順にヘッダ付検索キー情報500を出力する。検索処理能力の低下によるヘッダ付検索キー情報500の処理溢れを防ぐには、たとえば、出力したヘッダ付検索キー情報500に対する検索結果が出力されてから次のヘッダ付検索キー情報500を出力する。
【0122】
図24は、本実施の形態の第13の設定情報に基づいた演算ユニット31dの内部構成例を示す図である。図21に示した実施の形態4の第10の設定情報に基づいた演算ユニット31cとの相違点は、演算ユニット内検索FIFO50が追加されている点である。
【0123】
図25は、本実施の形態の第14の設定情報に基づいた演算ユニット31dの内部構成例を示す図である。図22に示した実施の形態4の第11の設定情報に基づいた演算ユニット31cとの相違点は、演算ユニット内検索FIFO50が追加されている点である。
【0124】
つづいて、本実施の形態の検索動作中におけるデータベース更新方法について述べる。なお、本実施の形態では、一例として、データベースの更新の際に、第12の設定情報(図23参照)⇒第13の設定情報(図24参照)⇒第12の設定情報(図23参照)⇒第14の設定情報(図25参照)の順でロードする手順を説明するが、第12の設定情報(図23参照)⇒第14の設定情報(図25参照)⇒第12の設定情報(図23参照)⇒第13の設定情報(図24参照)の順でロードしてもよい。また、初期状態として、第1の内蔵RAM44,第2の内蔵RAM45には、検索に使用する任意の同一のデータベースが記憶されているものとする。設定情報変更ユニット33には、前述の第12の設定情報,第13の設定情報,第14の設定情報が記憶されているものとする。また、以下では実施の形態3または実施の形態4と異なる部分のみを説明するが、それ以外の処理は、実施の形態3または実施の形態4と同様である。
【0125】
まず、データベース更新前の初期状態を説明する。演算ユニット31dは、第12の設定情報に基づき図23の内部構成をとっている。検索経路22より入力されたヘッダ付検索キー情報500は、演算ユニット内検索FIFO50にいったん記憶され、記憶された順にヘッダ付検索キー情報500をヘッダ解析回路48に出力する。ヘッダ解析回路48は、検索経路22経由でヘッダ付検索キー情報500を受信すると、ヘッダ501の解析を行う。そして、RAM更新指示フィールド502が、内部構成変更指示が無いことを示す値であることを確認する。
【0126】
分配回路49は、検索経路22経由で受信したヘッダ付検索キー情報500を受信し、ヘッダ付検索キー情報500のうちの検索キー情報503を、ラウンドロビン方式により、回路接続線51を経由して第1の検索処理回路42へ、または、回路接続線54を経由して第2の検索処理回路46へ出力する。第1の検索処理回路42,第2の検索処理回路46は、分配回路49から出力された検索キー情報503を用いて、それぞれ第1の内蔵RAM44,第2の内蔵RAM45に記憶されているデータベースの検索を行い、検索結果を多重化回路47に出力する。多重化回路47は、第1の検索処理回路42,第2の検索処理回路46から出力された検索結果を多重化し、検索経路27経由で転送ユニット12bに出力する。
【0127】
実施の形態4との違いは、検索FIFO16のかわりに、演算ユニット内検索FIFO50がヘッダ付検索キー情報500を記憶し、順次出力する点であるが、それ以外は、実施の形態4と同様の動作となる。データベース変更時の内部構成変更の手順についても、実施の形態4の第9の設定情報(図20参照)⇒第10の設定情報(図21参照)⇒第9の設定情報(図20参照)⇒第11の設定情報(図22参照)と同様である。ただし、この処理において、検索FIFO16のかわりに、演算ユニット内検索FIFO50がヘッダ付検索キー情報500を記憶する。
【0128】
このように、演算ユニット31d内に、演算ユニット内検索FIFO50を設けると、演算ユニット31dがもともと備えているメモリおよび演算器のなかで構成できるため、部品点数は実施の形態3と同じである。また、本実施の形態は、実施の形態4と比べると、ルータ1cに検索FIFO16を備える必要がないため、部品点数を削減できる。
【0129】
なお、本実施の形態では、常時演算ユニット内検索FIFO50を備えることとしたが、実施の形態2のRAM更新回路の43と同様に、データベース更新時以外(通常検査悪処理時)では、その回路を備えないようにしてもよい。このようにすると、消費電力の削減ができる。その場合、通常検索処理時には、実施の形態3と同様に演算ユニット内検索FIFO50を経由せずにヘッダ解析回路48が検索経路22からヘッダ付検索キー情報500を受け取る。
【0130】
なお、本実施の形態では、実施の形態3の選択回路41を分配回路49に変え、演算ユニット内検索FIFO50を追加したが、実施の形態1または2において、同様に選択回路41を分配回路49に変え、演算ユニット内検索FIFO50を追加することにより、同様の動作を行うようにしてもよい。
【0131】
このように、本実施の形態では、演算ユニット31d内に、演算ユニット内検索FIFO50を備えることした。このため、実施の形態4に比べ部品点数を削減することができる。
【産業上の利用可能性】
【0132】
以上のように、本発明にかかる検索回路はデータ検索を行うデータ処理に有用であり、特に、検索処理を中断させずに検索用のデータベースの更新を行う情報通信システムに適している。
【図面の簡単な説明】
【0133】
【図1】本発明の実施の形態1のネットワーク構成を示す図である。
【図2】実施の形態1のルータの機能構成例を示す図である。
【図3】Ethernet(登録商標)フレームフォーマットを示す図である。
【図4】IPv4ヘッダのフォーマットを示す図である。
【図5】TCPヘッダのフォーマットを示す図である。
【図6】UDPヘッダのフォーマットを示す図である。
【図7】実施の形態1のデバイスの機能構成例を示す図である。
【図8】実施の形態1の第1の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図9】実施の形態1の第2の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図10】実施の形態1の第3の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図11】実施の形態2の第4の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図12】実施の形態2の第5の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図13】実施の形態3のルータの機能構成例を示す図である。
【図14】実施の形態3のデバイスの機能構成例を示す図である。
【図15】ヘッダ付検索キー情報のフォーマットを示す図である。
【図16】実施の形態3の第6の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図17】実施の形態3の第7の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図18】実施の形態3の第8の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図19】実施の形態4のルータの機能構成例を示す図である。
【図20】実施の形態4の第9の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図21】実施の形態4の第10の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図22】実施の形態4の第11の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図23】実施の形態5の第12の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図24】実施の形態5の第13の設定情報に基づく演算ユニットの内部構成例を示す図である。
【図25】実施の形態5の第14の設定情報に基づく演算ユニットの内部構成例を示す図である。
【符号の説明】
【0134】
1,1b,1c ルータ
2 PC端末
3 インターネット
4 サーバー群
5 アクセスポイント
6 無線端末
7 イントラネット
8 制御PC
9 制御リンク
10 リンク
11 送受信ユニット
12,12b 転送ユニット
13,13b,13c,13d デバイス
14 外部メモリ
15 コントローラ
16 検索FIFO
21 転送経路
22,26,27 検索経路
23 外部バス
24 外部バス接続線
31,31a,31b,31c,31d 演算ユニット
32 プロセッサ
33 設定情報変更ユニット
34 内部バス
35 内部バス接続線
36 設定情報通知線
37 接続線
41 選択回路
42 第1の検索処理回路
43 RAM更新回路
44 第1の内蔵RAM
45 第2の内蔵RAM
46 第2の検索処理回路
47 多重化回路
48 ヘッダ解析回路
49 分配回路
50 演算ユニット内検索FIFO
51,52 回路接続線
53,56 信号線
54 回路接続線
55 回路接続線
100 Ethernet(登録商標)フレーム
101 MACヘッダ
102 IPv4パケット
103 FCS
104 IPv4ヘッダ
105 TCPヘッダ
106 UDPヘッダ
201 TOSフィールド
202 トータル長
203 識別子
204 フラグ
205 フラグメントオフセット
206 プロトコル
207 送信元IPアドレス
208 宛先IPアドレス
301 送信元ポート番号
302 宛先ポート番号
303 シーケンス番号
304 確認応答番号
401 送信元ポート番号
402 宛先ポート番号
500 ヘッダ付検索キー情報
501 ヘッダ
502 RAM更新指示フィールド
503 検索キー情報

【特許請求の範囲】
【請求項1】
検索キー情報に基づき検索用データベースを検索する機能を有する検索装置であって、
複数の演算器およびメモリで構成され、各構成要素に対するコンフィグレーションデータである設定情報に基づいて内部構成を構築して動作する演算手段と、
前記検索用データベースを格納するためのメモリと、前記検索機能を実現する検索処理回路と、を含む内部構成を構築するための複数の設定情報を記憶し、指定された設定情報を前記演算手段に送出する設定情報変更手段と、
外部から検索用データベースの更新要求があった場合に、前記演算手段に対して内部構成変更指示を通知する制御手段と、
を備え、
前記演算手段は、
検索処理のみを実行する期間については、特定の設定情報に基づく内部構成により1つのメモリと検索処理回路を稼動させ、
前記内部変更指示を受け取った場合または自身で検索用データベースの更新を検出した場合には、前記検索中のメモリ以外の他のメモリに対して更新された検索用データベースを書き込み、さらに、前記特定の設定情報以外の他の設定情報に基づいて、前記検索処理を維持しつつ更新後の検索用データベースに対する検索処理を実行可能な内部構成に変更し、
前記データベースの更新に応じて内部構成を遷移しながら検索処理を継続することを特徴とする検索装置。
【請求項2】
前記演算手段は、
初期状態として、前記特定の設定情報に相当する第1の設定情報に基づいて、第1の検索処理回路が検索用データベースを格納した第1のメモリに対して検索処理を行う第1の内部構成を構築し、
前記内部構成変更指示を受け取った場合または自身で検索用データベースの更新を検出した場合には、第2のメモリに対して更新後の検索用データベースを書き込み、その後、前記他の設定情報に相当する第2の設定情報に基づいて、前記第1のメモリに対する検索処理を実現するための構成を維持しつつ第2の検索処理回路が前記第2のメモリに対して検索処理を実行可能な第2の内部構成を構築し、
前記第2の内部構成を構築してから所定時間経過後に、前記特定の設定情報に相当する第3の設定情報に基づいて、前記初期状態で構築した第1の検索処理回路を含まない状態でかつ前記第2の検索処理回路が前記第2のメモリに対して検索処理を行う第3の内部構成を構築し、
以降、検索用データベースの更新毎に、検索中のメモリ以外のもう一方のメモリに対して更新後の検索用データベースを書き込む処理、および前記第2の内部構成から前記第1の内部構成または第3の内部構成への遷移、を繰り返すことにより、検索処理を継続することを特徴とする請求項1に記載の検索装置。
【請求項3】
前記第1の内部構成は、さらに、検索中の第1のメモリ以外の前記第2のメモリと、前記検索用データベースの更新を検出し更新後の検索用データベースを前記第2のメモリに書き込むRAM更新回路と、を備え、
前記第3の内部構成は、さらに、検索中の第2のメモリ以外の前記第1のメモリと、前記検索用データベースの更新を検出し更新後の検索用データベースを前記第1のメモリに書き込むRAM更新回路と、を備え、
前記RAM更新回路が検索用データベースの更新を検出した場合、対応する第1のメモリまたは第2のメモリに対して更新後の検索用データベースを書き込むことを特徴とする請求項2に記載の検索装置。
【請求項4】
前記第1の内部構成は、さらに、検索中の第1のメモリ以外の前記第2のメモリを備え、
前記第3の内部構成は、さらに、検索中の第2のメモリ以外の前記第1のメモリを備え、
前記内部構成変更指示を受け取った場合、前記第1の内部構成および第3の内部構成を、検索用データベースを更新するRAM更新回路を備えた内部構成に変更し、当該RAM構成回路が、対応する第1のメモリまたは第2のメモリに対して更新後の検索用データベースを書き込むことを特徴とする請求項2に記載の検索装置。
【請求項5】
前記第2の内部構成は、さらに、前記検索情報キーの出力先としていずれか一つの検索処理回路を選択する選択回路を備え、
前記選択回路は、前記検索キー情報が途切れて検索処理回路に送られないように検索キー情報の切れ目のタイミングで、前記検索情報キーの出力先を、検索処理中の一方の検索処理回路から更新後の検索用データベースを検索可能な他方の検索処理回路に切替えることを特徴とする請求項3または4に記載の検索装置。
【請求項6】
検索キー情報に基づき検索用データベースを検索する機能を有する検索装置であって、
複数の演算器およびメモリで構成され、各構成要素に対するコンフィグレーションデータである設定情報に基づいて内部構成を構築して動作する演算手段と、
前記検索用データベースを格納するためのメモリと、前記検索機能を実現する検索処理回路と、を含む内部構成を構築するための複数の設定情報を記憶し、指定された設定情報を前記演算手段に送出する設定情報変更手段と、
外部から検索用データベースの更新要求があった場合に、前記演算手段に対して内部構成変更指示を通知する制御手段と、
を備え、
前記演算手段は、
検索処理のみを実行する期間については、特定の設定情報に基づいて、同一の検索用データベースを格納する2つ以上のメモリと各々のメモリに個別に対応する検索処理回路とを含む内部構成を構築し、適宜検索処理回路を切替えながら検索処理を実行し、
前記内部変更指示を受け取った場合または自身で検索用データベースの更新を検出した場合には、前記特定の設定情報以外の他の設定情報に基づいて、前記検索用データベースによる検索処理を継続しながら、少なくとも1つの検索処理回路を削除した内部構成に変更する処理、および当該削除した検索処理回路に対応するメモリに更新後の検索用データベースを書き込む処理、を全てのメモリに対して更新後の検索用データベースを書き込むまで実行し、
その後、前記特定の設定情報に基づく内部構成に変更することにより、前記期間における検索処理を実行し、
以降、前記データベースの更新に応じて内部構成を遷移しながら検索処理を継続することを特徴とする検索装置。
【請求項7】
前記演算手段は、
初期状態として、前記特定の設定情報に相当する第1の設定情報に基づいて、第1のメモリに対して検索処理を行う第1の検索処理回路または第2のメモリに対して検索処理を行う第2の検索処理回路を適宜選択し、選択された検索処理回路が、対応するメモリに格納されている検索用データベースに対して検索処理を行う第1の内部構成を構築し、
前記内部構成変更指示を受け取った場合または自身で検索用データベースの更新を検出した場合には、
前記第2の検索処理回路による検索処理を停止させ、前記他の設定情報に相当する第2の設定情報に基づいて、前記第2の検索処理回路を削除し前記第1の検索処理回路が前記第1のメモリに対して検索処理を行う第2の内部構成を構築し、その後、前記第2のメモリに対して更新された検索用データベースを書き込み、
さらに、前記第1の設定情報に基づく前記第1の内部構成を構築し、前記更新後の検索用データベースが書き込まれた第2のメモリに対応する第2の検索処理回路を稼動させ、前記第1の検索処理回路による検索処理を停止させ、前記他の設定情報に相当する第3の設定情報に基づいて、前記第1の検索処理回路を削除し前記第2の検索処理回路が第2のメモリに対して検索処理を行う第3の内部構成を構築し、その後、前記第1のメモリに対して前記更新された検索用データベースを書き込み、
さらに、前記第1の設定情報に基づく前記第1の内部構成を構築し、適宜選択された検索処理回路が対応するメモリに格納されている検索用データベースに対して検索処理を行い、
以降、検索用データベースの更新毎に、前記内部構成の遷移を繰り返すことにより、検索処理を継続することを特徴とする請求項6に記載の検索装置。
【請求項8】
前記第1の内部構成は、さらに、検索情報キーの出力先を前記第1の検索処理回路と第2の検索処理回路の間で切替え、かつ分配停止指示を受け取った場合に指示された第1の検索処理回路または第2の検索処理回路への検索情報キーの出力を停止する分配回路と、を備え、
前記第2の内部構成は、さらに、前記検索用データベースの更新を検出し更新後の検索用データベースを前記第2のメモリに書き込むRAM更新回路と、前記分配回路と、を備え、
前記第3の内部構成は、さらに、前記検索用データベースの更新を検出し更新後の検索用データベースを前記第1のメモリに書き込むRAM更新回路と、前記分配回路と、を備え、
前記RAM更新回路が、前記内部構成指示を受け取った場合または前記検索用データベースの更新を検出した場合に、対応する検索処理回路への検索情報キーの分配停止を前記分配回路に対して指示し、
前記分配回路が、初期状態では、検索情報キーの出力先をラウンドロビン方式で切替え、前記RAM更新回路からの分配停止指示に従って、対応する検索処理回路への検索情報キーの出力を停止することを特徴とする請求項7に記載の検索装置。
【請求項9】
前記第1の内部構成は、
前記検索情報キーを格納し、格納した順に前記検索情報キーを分配回路に出力するFIFOメモリ、
をさらに備え、
前記FIFOメモリは、検索処理の速度に応じて検索情報キーの出力頻度を変えることを特徴とする請求項8に記載の検索装置。
【請求項10】
前記検索キー情報を、内部構成変更指示の有無を表すヘッダ付検索キー情報とし、
前記演算手段は、検索キー情報のヘッダを解析して内部構成変更指示の有無を確認することを特徴とする請求項1〜9のいずれか1つに記載の検索装置。
【請求項11】
前記設定情報変更手段は、前記複数の設定情報を、前記制御手段からの設定情報の指示により作成することを特徴とする請求項1〜10のいずれか1つに記載の検索装置。
【請求項12】
前記設定情報変更手段は、外部からの入力に基づき前記複数の設定情報の作成、更新を行うことを特徴とする請求項1〜11のいずれか1つに記載の検索装置。
【請求項13】
前記更新後の検索用データベースは、自装置外にある外部メモリに格納され、
前記演算手段は、前記外部メモリから前記更新後の検索用データベースを取得することを特徴とする請求項1〜12のいずれか一つに記載の検索装置。
【請求項14】
請求項1〜13のいずれか1つの検索装置を備えるデータ処理装置。
【請求項15】
請求項7に記載の検索装置と、
前記検索情報キーを格納し、格納した順に前記検索情報キーを分配回路に出力するFIFOメモリと、
を備え、
前記FIFOメモリは、検索処理の速度に応じて検索情報キーの出力頻度を変えることを特徴とするデータ処理装置。
【請求項16】
検索キー情報に基づき検索用データベースを検索する処理を行う検索方法であって、
前記検索用データベースを格納するためのメモリと、前記検索処理を実現する検索処理回路と、を含む内部構成を構築するための複数の設定情報を記憶する設定情報記憶ステップと、
前記検索処理のみを行っている期間については、特定の設定情報に基づく内部構成により1つのメモリと検索処理回路を稼動させて検索処理を行う検索処理ステップと、
前記内部変更指示を受け取った場合または自身で検索用データベースの更新を検出した場合には、内部構成変更指示を通知する内部構成変更指示ステップと、
前記内部構成変更指示が通知された場合に、前記検索中のメモリ以外の他のメモリに対して更新された検索用データベースを書き込む更新データ格納ステップと、
前記更新データ格納ステップの終了後に、前記特定の設定情報以外の他の設定情報に基づいて、前記検索処理を維持しつつ更新後の検索用データベースに対する検索処理を実行可能な内部構成に変更して、所定時間にわたって検索処理を行う更新時検索処理ステップと、
前記更新時検索処理ステップ終了後に検索処理のみを行う内部構成を構築する内部構成再変更ステップと、
を含み、
前記データベースの更新に応じて、前記検索処理ステップ、前記内部構成変更指示ステップ、前記更新データ格納ステップ、前記更新時検索処理ステップ、前記内部構成再変更ステップを繰り返すことを特徴とする検索方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2008−117300(P2008−117300A)
【公開日】平成20年5月22日(2008.5.22)
【国際特許分類】
【出願番号】特願2006−301903(P2006−301903)
【出願日】平成18年11月7日(2006.11.7)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】