JP2008165616A - 検索装置およびデータ処理装置 - Google Patents

検索装置およびデータ処理装置 Download PDF

Info

Publication number
JP2008165616A
JP2008165616A JP2006356323A JP2006356323A JP2008165616A JP 2008165616 A JP2008165616 A JP 2008165616A JP 2006356323 A JP2006356323 A JP 2006356323A JP 2006356323 A JP2006356323 A JP 2006356323A JP 2008165616 A JP2008165616 A JP 2008165616A
Authority
JP
Japan
Prior art keywords
search
search processing
processing circuit
stage
memory
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.)
Granted
Application number
JP2006356323A
Other languages
English (en)
Other versions
JP4879728B2 (ja
Inventor
Jun Mizuguchi
潤 水口
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2006356323A priority Critical patent/JP4879728B2/ja
Publication of JP2008165616A publication Critical patent/JP2008165616A/ja
Application granted granted Critical
Publication of JP4879728B2 publication Critical patent/JP4879728B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】検索用データベースのエントリ更新時においても検索処理を停止することなく検索処理の継続が可能な検索装置およびデータ処理装置を得ること。
【解決手段】検索処理装置であるデバイス13は、前段の検索処理回路である検索処理回路51と、後段の検索処理回路である検索処理回路52、53とを備える。検索用デースは運用面にある内蔵RAM57、58、59、60に分割して格納されている。検索用データベースの更新時には、待機面にある内蔵RAM61、62、63、64に更新データを書き込み、待機面と運用面を切り替える。このとき、後段の検索処理回路においては、後段の検索処理回路の処理能力を前段の検索処理回路を上回るようにすることにより、検索途中のデータが前段の検索処理回路から後段の検索処理回路へ入力されない時間を利用して、運用面と待機面との切り替えを行う。
【選択図】 図7

Description

本発明は、検索用データベースの更新時に検索処理を中断することなく、検索の継続が可能な検索装置およびこの検索装置を備えたデータ処理装置に関するものである。
通信分野においては、パケットのルーティングおよびパケット内の悪意あるコードの検出、また、情報分析分野においては、大量のデータの中からのパターン検出など、検索処理は、幅広い分野において多様な場面で利用されている。特に、近時の情報通信分野全般におけるデータ量の増大および処理の高度化に伴い、検索処理には、高速性、多機能性、さらにインテリジェンス性を備えた処理が求められ、これらの処理をオンデマンドでかつ動的に行うことが求められてきている。
例えば、特許文献1では、半導体メモリを使用して2分探索を実現する半導体集積回路が開示されており、メモリに格納された有効検索対象データの数の減少に応じて、2分探索を開始する半導体メモリ上のアドレスを適切に決定する手段を設けることにより、探索に要する処理サイクル数を減少させ、高速な検索処理を実現している。
また、非特許文献1では、バイナリ検索テーブルを使用したバイナリ検索を例に、テーブルで使用されるデータ構造によっては、検索時にテーブルの更新の実行が困難になることを指摘している。例えば、テーブルにおける項目の追加または削除を行う際には、テーブル全体を並べ直す処理が必要となり、このようなテーブルの更新時には、項目が移動したり変更されたりしているので、テーブルを使った検索の実行が困難になる。そして、その回避方法として、2つの方法を提案している。すなわち、第1の方法は、検索処理が少ない期間まで更新処理を延期し、テーブルの更新処理を行っている間は検索を停止する方法である。また、第2の方法は、2つのテーブルを用意し、一方のテーブルを検索用に使い、他方を更新用としてバックグランドでテーブルの更新を行う。そして、テーブルの更新が完了したら2つのテーブルを交換する方法である。
特開2000−250737号公報 Rich Seifert著、間宮あきら訳「LANスイッチング徹底解説」日経BP社発行、2001年8月6日、P83−84
しかしながら、特許文献1に記載の従来技術によれば、検索用データベースのエントリ更新時において、検索データの入力を一旦停止する必要がある。そのため、エントリ更新時には、ノン・ストップな検索処理を実現できないという問題があった。
また、非特許文献1に記載の従来技術によれば、テーブルの更新処理を行う際に検索処理を停止する必要がある(上記第1の方法を参照)。そのため、突然、検索パフォーマンスが低下するという問題があった。また、2つのテーブルを用意する上記第2の方法では、テーブルにて使用されるデータ構造が2分探索木のようなツリー構造である場合に、検索処理中にテーブルを交換すると、それまで旧テーブルのツリー構造に基づいて検索を行った検索中のデータは、突然、新テーブルのツリー構造に適用されることになり、誤った検索結果が返ってくる。このように、検索中に、旧テーブル情報で検索中のデータを新テーブル情報では引き継げないという問題があった。
本発明は、上記に鑑みてなされたものであって、検索用データベースのエントリ更新時においても検索処理を停止することなく検索処理の継続が可能な検索装置およびデータ処理装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる検索処理装置は、検索キーを入力としメモリ内に格納された検索用データベースを検索して検索結果を出力する検索装置であって、前記検索キーが入力される前段の検索処理回路と、この前段の検索処理回路の後段に設けられ、前記前段の検索処理回路の検索処理結果に基づいて、順次、検索処理を行う1または複数の後段の検索処理回路と、前記前段の検索処理回路が検索を行うための前記検索用データベースの一部が格納され、前記前段の検索処理回路に対応して設けられた前段の運用メモリと、この前段の運用メモリと対になって設けられ、前記検索用データベースの更新時まで待機を行う前段の待機メモリと、前記検索用データベースの残部が全体として格納されるように、前記各後段の検索処理回路が検索を行うためのデータがそれぞれ格納され、前記各後段の検索処理回路にそれぞれ対応して設けられた後段の運用メモリと、前記各後段の運用メモリと対になって設けられ、前記検索用データベースの更新時まで待機を行う後段の待機メモリと、前記検索用データベースの更新時に、更新後の検索用データベースを書き込むことにより前記前段および前記各後段の待機メモリの内容を更新するメモリ更新回路と、前記メモリ更新回路からの更新通知に基づいて、前記前段の検索処理回路が検索をするメモリを前記前段の運用メモリから前記前段の待機メモリへと切り替える前段の選択回路と、前記メモリ更新回路からの更新通知に基づいて、前記各後段の検索処理回路が検索をするメモリを前記各後段の運用メモリからそれと対になる前記各後段の待機メモリへと切り替える後段の選択回路と、を備え、前記前段の検索処理回路が検索処理に要する検索処理時間は、前記各後段の検索処理回路が検索処理に要する検索処理時間よりも長いことを特徴とする。
本発明によれば、前段の検索処理回路が検索処理に要する検索処理時間を、後段の検索処理回路が検索処理に要する検索処理時間よりも長くするように構成したので、検索用データベースの更新通知に基づいて、前段の検索処理回路が検索するメモリを前段の運用メモリから前段の待機メモリへと切り替え、さらに、前段の検索処理回路から検索途中のデータが後段の検索処理回路へ入力されない時間を利用して、後段の検索処理回路が検索するメモリを後段の運用メモリから後段の待機メモリへと切り替えることにより、検索動作中であっても検索動作を停止せずに、検索用データベースの更新をすることができる。
以下に、本発明にかかる検索装置およびデータ処理装置の実施の形態を図面に基づいて詳細に説明する。なお、以下に示す実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明にかかる検索装置の実施の形態1を利用したネットワーク構成を示す図である。なお、本実施の形態では、データ処理装置としてのルータと、ルータに実装される検索装置を例として説明しているが、本発明の適用分野は通信分野に限定されるものではない。
図1に示すように、本実施の形態のネットワークは、ルータ1、PC(Personal Computer)端末2、インターネット3、サーバー群4、アクセスポイント5、無線端末6、イントラネット7、制御PC8、制御リンク9、およびリンク10から構成されている。ルータ1は、インターネット3、イントラネット7、およびサーバー群4とそれぞれリンク10により接続されており、ネットワーク間のパケットの転送などを行う。アクセスポイント5は、リンク10を介してインターネット3、またはイントラネット7に接続されている。PC端末2はリンク10を介して、また、無線端末6はアクセスポイント5を介して、それぞれ端末間の相互通信を行う。また、制御PC8は制御リンク9を介してルータ1に接続されており、ルータ1に対してデータベース更新用のデータ送信などを行う。
図2は、図1で示したルータ1の機能構成例を示す図である。図2に示すように、ルータ1は、送受信ユニット11、転送ユニット12、デバイス13、外部メモリ14、およびコントローラ15を含んで構成される。送受信ユニット11と転送ユニット12とは転送経路21で、また、転送ユニット12とデバイス13とは検索経路22で接続されており、デバイス13、外部メモリ14、およびコントローラ15は、それぞれ外部バス接続線24を介して外部バス23に接続されている。
次に、各構成要素の機能について述べる。送受信ユニット11は、インターネット3、サーバー群4、およびイントラネット7にそれぞれリンク10を介して接続されている。図3は、Ethernet(登録商標)フレームのフォーマットを示す図である。送受信ユニット11は、リンク10から受信した図3に示すEthernet(登録商標)フレーム25からMAC(Media Access Control)ヘッダ26とFCS(FRAMe Check Sequence)28を取り除いたIPv4(Internet Protocol Version 4)パケット27を転送ユニット12に転送し、また、転送ユニット12から送られたIPv4パケット27に、MACヘッダ26とFCS28を付加してリンク10に送信する。
転送ユニット12は、受信したフレームから、そのフレームの転送に必要なルーティング情報を得るための検索処理に必要なデータ(以下、検索キーという)を抽出し、検索経路22を介してデバイス13へ検索キーを送る。また、デバイス13から検索経路22を介して検索結果(ルーティング情報)を受け取り、その検索結果に基づき、上記の受信したフレームを、転送経路21を介して送受信ユニット11へ転送する。
本実施の形態においては、転送ユニット12で抽出され、検索キーが抽出されるヘッダ情報には、ネットワーク層のヘッダに含まれる宛先・送信元アドレス、プロトコル、トータル長、識別子、フラグ、およびフラグメントオフセットと、トランスポート層のヘッダに含まれる宛先・送信元ポート番号、およびシーケンス番号(但し、TCPの場合のみ)と、が含まれる。以下、図3〜6を用いて検索キーについて説明する。
なお、以下の例では、ネットワーク層で使用するプロトコルをIPv4とし、また、トランスポート層で使用するプロトコルをTCP(Transmission Control Protocol)またはUDP(User Datagram Protocol)として説明するが、これに限定されることなく、例えば、ネットワーク層で使用するプロトコルをIPv6(Internet Protocol Version 6)とし、また、トランスポート層で使用するプロトコルをRDP(Remote Desktop Protocol)としてもよい。
図3に示すように、IPv4ヘッダ29、TCPヘッダ30、およびUDPヘッダ31は、Ethernet(登録商標)フレーム25にカプセル化されている。
図4は、ネットワーク層のヘッダであるIPv4ヘッダのフォーマットを示す図である。IPv4ヘッダの先頭から3バイト目にTOS(Type of Service)フィールド32、4バイト目にトータル長(Total Length)33、5バイト目に識別子(Identification)34、7バイト目のうち上位3ビットがフラグ(Flag)35であり、7バイト目の下位5ビットと8バイト目がフラグメントオフセット(Fragment Offset)36、10バイト目にプロトコル(Protocol)37、13バイト目に送信元IPアドレス(Source Address)38、17バイト目に宛先IPアドレス(Destination Address)39が位置している。
図5は、トランスポート層のヘッダであるTCPヘッダのフォーマットを示す図である。TCPヘッダの先頭から1バイト目に送信元ポート番号(Source Port)40、3バイト目に宛先ポート番号(Destination Port)41、5バイト目にシーケンス番号(Sequence Number)42、9バイト目に確認応答番号(Acknowledgement Number)43が位置している。
図6は、トランスポート層のヘッダであるUDPヘッダのフォーマットを示す図である。UDPヘッダの1バイト目に送信元ポート番号(Source Port)44、3バイト目に宛先ポート番号(Destination Port)45が位置している。
なお、本実施の形態では、パケットのトレーラーとしてEthernet(登録商標)フレームを用いた場合について説明したが、これに限定されるものではない。例えば、ATM(Asynchronous Transfer Mode)またはFDDI(Fiber-Distributed Data Interface)などを用いた場合にも同様に実施できる。
また、上記の検索キーの項目は一例であり、ルーティング情報を検索できる情報ではあれば、これに限らない。検索方法およびプロトコルによっては、上記の検索キー情報の項目の一部を用いない場合もあり、また、上記以外の項目(例えば、フローを識別するフィールドであるVLAN(Virtual Local Area Network)ID等)が含まれることもある。
デバイス13は、外部メモリ14に記憶されたデータベースを外部バス23および外部バス接続線24を介して取得し、検索経路22から送出された検索キーをもとに、データベースに対して検索処理を行い、検索結果としてルーティング情報を得る。そして、デバイス13は、検索結果を、検索経路22を介して転送ユニット12に通知する。
外部メモリ14は、制御PC8から制御リンク9を介して送られたデータベースを記憶している。データベースは、検索キーを用いて、ルーティング情報を検索するためのもので、検索キーとルーティング情報の対応が含まれているものとする。
コントローラ15は、制御リンク9を介して制御PC8から送られるルータ1の外部からのデータを、ルータ1内の外部バス23で用いるデータフォーマットに変換する。
図7は、図2におけるデバイス13の内部構成を示す図であり、デバイス13は本実施の形態の検索装置である。図7に示すように、本実施の形態のデバイス13は、検索機能を有する前段の検索処理回路である検索処理回路51と、検索機能を有する後段の検索処理回路である検索処理回路52および検索処理回路53と、運用面にある内蔵RAM57、内蔵RAM58、内蔵RAM59、および内蔵RAM60と、待機面にある内蔵RAM61、内蔵RAM62、内蔵RAM63、および内蔵RAM64と、これらの内蔵RAM群に接続され、検索用データベースの更新要求に応じて待機面にある内蔵RAM群の内容の更新を行うRAM更新回路65と、内蔵RAM58および内蔵RAM62と接続され接続先の内蔵RAMの選択を行うRAM選択回路54と、内蔵RAM59および内蔵RAM63と接続され接続先の内蔵RAMの選択を行うRAM選択回路55と、内蔵RAM60および内蔵RAM64と接続され接続先の内蔵RAMの選択を行うRAM選択回路56と、RAM更新回路65からの更新通知を検索処理回路51、RAM選択回路54、RAM選択回路55、およびRAM選択回路56に通知する通知線66と、を含んで構成される。また、検索処理回路51は内蔵RAM57および内蔵RAM61と、検索処理回路52はRAM選択回路54と、検索処理回路53はRAM選択回路55およびRAM選択回路56と、それぞれ接続されている。次に、各構成要素の詳細について述べる。
運用面にある内蔵RAM57、内蔵RAM58、内蔵RAM59、および内蔵RAM60には、検索用データベースが分割して格納されており、これらの内蔵RAM群にアクセスすることにより検索処理が行われる。待機面にある内蔵RAM57、内蔵RAM58、内蔵RAM59、および内蔵RAM60は、検索用データベースの更新時にその内容が更新され、更新後の検索用データベースが格納される。
図8は、検索処理回路51の内部構成を示す図である。図8に示すように、検索処理回路51は、検索経路22から入力された検索キーの出力先を2つの読み込みアドレス生成部から選択する選択回路77と、選択回路77の一方の出力先であると共に、選択回路77から出力された検索キーまたはラッチ71からの出力をもとに、内蔵RAM57における読み込み先のアドレスを生成し、読み込み先のアドレスを内蔵RAM57へ送出する読み込みアドレス生成部71と、内蔵RAM57における読み込み先のアドレスのデータを受信し、検索キーと読み込み先のアドレスのデータとの比較を行う読み込みデータ受信部72と、再度、内蔵RAM57へアクセスするときに、読み込みデータ受信部72にて得られた受信データを一時待ち合わせ、この受信データを読み込みアドレス生成部71へ送るラッチ73と、を含んでいる。
さらに、図8に示すように、検索処理回路51は、選択回路77の他方の出力先である読み込みアドレス生成部74と、読み込みアドレス生成部74に接続された読み込みデータ受信部75およびラッチ76と、読み込みデータ受信部72および読み込みデータ受信部75からの検索処理結果が入力され、それを後段の検索処理回路52へ出力する多重化回路78と、を含んでいる。
次に、読み込みアドレス生成部74、読み込みデータ受信部75およびラッチ76について説明する。図7に示すように、いま、内蔵RAM57は運用面にあり、内蔵RAM61は待機面にある。ここで、運用面とは、検索処理回路からの読み込み先のアドレスを受け付け、該当するアドレスのデータを出力する内蔵RAMを指し、待機面とは、検索処理回路からの読み込み先のアドレスが入力されていない内蔵RAMのことを示す。したがって、内蔵RAM61が待機面から運用面になると、選択回路77は検索キーの出力先として読み込みアドレス生成部74を選択し、読み込みアドレス生成部74、読み込みデータ受信部75およびラッチ76の各処理により内蔵RAM61に格納された検索用データベースの検索が行われる。この検索処理は、上述の、読み込みアドレス生成部71、読み込みデータ受信部72およびラッチ73に基づいた検索処理と同様である。選択処理回路77は、通知線66に接続されており、通知線を介して得られたRAM更新回路からの更新通知に応じて、読み込みアドレス生成部の選択を行う。このように本実施の形態においては、検索処理回路51は、読み込みアドレス生成部71、読み込みデータ受信部72、およびラッチ73を有する検索処理回路と、読み込みアドレス生成部74、読み込みデータ受信部75、およびラッチ76を有する検索処理回路との、2系統の検索処理回路を備えている。
図9は、検索処理回路52内部の回路構成を示す図である。図9に示すように、検索処理回路52は、検索処理回路51の検索処理結果が入力され、この入力データをもとに内蔵RAMにおける読み込み先のアドレスを生成し、この読み込み先のアドレスをRAM選択回路54へ送出する読み込みアドレス送信部81と、RAM選択回路54から送られてきた読み込み先のアドレスのデータを受信し、検索キーと読み込み先のアドレスのデータとの比較を行い、検索処理結果を検索処理回路53へ出力する読み込みデータ受信部82と、を含んで構成されている。RAM選択回路54は、運用面にある内蔵RAMを選択するので、図7に示す例では、内蔵RAM58にアクセスして読み込み先のアドレスのデータを取得する。
図10は、検索処理回路53内部の回路構成を示す図である。図10に示すように、検索処理回路53は、検索処理回路52の検索処理結果が入力され、この入力データをもとに内蔵RAMにおける読み込み先のアドレスを生成する読み込みアドレス送信部83と、この読み込みアドレス送信部83から送出された読み込み先のアドレスを、RAM選択回路55またはRAM選択回路56へ送出する選択回路85と、RAM選択回路55またはRAM選択回路56から送られてきたデータを多重化して出力する多重化回路86と、多重化回路86から出力された読み込み先のアドレスのデータを受信し、検索処理結果を検索経路22へ出力する読み込みデータ受信部84と、を含んで構成されている。RAM選択回路55およびRAM選択回路56は、それぞれ運用面にある内蔵RAMを選択するので、図7に示す例では、それぞれ内蔵RAM59および内蔵RAM60にアクセスして読み込み先のアドレスのデータを取得する。
RAM更新回路65は、検索用データベースの更新時に、外部バス23を経由して送られてきたエントリデータを、待機面となっている内蔵RAM群へ書き込む回路である。図7では、待機面は内蔵RAM61、内蔵RAM62、内蔵RAM63、および内蔵RAM64となっている。さらに、RAM更新回路65は、通知線66を介して検索処理回路51、RAM選択回路54、RAM選択回路55、およびRAM選択回路56へエントリ変更を通知する。
なお、本実施の形態においては、図7に記載されているように、2ポートの入出力を備えた内蔵RAMを使用したが、これに限らず、他の入出力の形態を備えた内蔵RAMを使用することもできる。
次に、検索用データベースのデータ構造と、この検索用データベースを、運用面となっている内蔵RAM57、内蔵RAM58、内蔵RAM59、および内蔵RAM60にどのように格納するのかについて説明する。本実施の形態における検索用データベースのデータ構造は、例えば、2分探索木のツリー構造である。図11は、本実施の形態で使用する検索用データベースのデータ構造の一例を示すと共に、エントリデータによって構成されたツリーが内蔵RAM内部でどのように構成されるのかを示す図である。図11に示すように、2分探索の起点となる深さ0におけるエントリデータから深さ4におけるエントリデータまで示されている。なお、エントリデータは黒丸で、エントリデータ間の関係はそれらを相互に接続する直線で示されている。内蔵RAM57では、深さ0から深さ2までのツリー情報が登録され、内蔵RAM58では、深さ3のツリー情報が、内蔵RAM59では、深さ4のツリー情報の内の左半分が、内蔵RAM60では、深さ4のツリー情報の内の右半分が、それぞれ登録されている。
このように、本実施の形態においては、一つの大きなRAMにツリーのデータ構造全体を記憶するのではなく、複数個の小さなRAMにツリーの階層毎に分けて記憶する。特に、前段のRAMには、ツリー構造の起点を含むツリー構造の上段のデータ(すなわち、深さの浅いデータ)を格納し、後段のRAMには、ツリー構造の下段のデータ(すなわち、深さの深いデータ)を順次格納し、後段のRAMに格納するデータの段数を1段とすることにより、前段のRAMに格納するデータの段数である3段より少なくしている。このような構造により、例えば、ツリー最深部のエントリデータのみを変更する場合には、変更データを保持する内蔵RAM(内蔵RAM59および内蔵RAM60)のみを書き換えるだけでよいため、エントリ変更を検索処理に高速に反映することができる。
なお、図9に示すように、検索処理回路52の内部構成は、この検索処理回路52が検索のためにアクセスする内蔵RAM58に格納されたデータの構造(深さ3のツリー情報)に対応して、内蔵RAM58に一回アクセスして検索処理結果を出力するような内部構成となっている。また、検索処理回路53の内部構成も同様であり、検索処理回路53はそれぞれ内蔵RAM59または内蔵RAM56に一回アクセスして検索処理結果を出力するような内部構成となっている。一方、検索処理回路51は、深さ0から深さ2までのデータに対して深さごとに繰り返しアクセスして検索できるように、ラッチ73、74を備え、ラッチ73、74にて検索途中のデータが次にメモリにアクセスするためのタイミングを調整し、ループ処理を行う。
なお、本実施の形態においては、検索用データベースのデータ構造として2分探索木を使用しているが、これに限らず、他のデータ構造を使用した実施の形態を構成することができる。
次に、本実施の形態の動作について説明する。ここで、内蔵RAM57、内蔵RAM58、内蔵RAM59、および内蔵RAM60には、任意のエントリによる検索用データベースが構築されているものとする。
まず、検索用データベースの更新時以外における、検索処理回路51、検索処理回路52、および検索処理回路53の動作について、図7〜図10を参照して説明する。まず、デバイス13には、検索経路22を介して検索キーが入力され、この検索キーは検索処理回路51に入力される。
検索処理回路51に入力された検索キーは、選択回路77により、運用面にある内蔵RAM57にアクセス可能な読み込みアドレス生成部71に送られる。ここで、運用面と待機面との選択情報は、RAM更新回路65から通知線66を介して選択回路77に通知されている。読み込みアドレス生成部71は検索キーの入力を受けて、内蔵RAM57における読み込み先のアドレスを生成し、この読み込み先のアドレスを内蔵RAM57に送る。そして、読み込みデータ受信部72にて、内蔵RAM57から送られてきた読み込み先のアドレスのデータを取得する。読み込みデータ受信部72では、検索キーと取得された読み込み先のアドレスのデータとを比較し、検索キーに相当する検索結果が得られない場合には、さらに内蔵RAM57にアクセスして検索処理を継続する。すなわち、ラッチ73で読み込みデータ受信部72から得られたデータを待ち合わせ、次に、ラッチ73から出力された読み込み先のアドレスのデータをもとに、読み込みアドレス生成部71にて、次の読み込み先のアドレスを生成し、内蔵RAM57へ再度生成した読み込み先のアドレスを送る。そして、内蔵RAM57から送られてきた読み込み先のアドレスのデータを読み込みデータ受信部72にて取得する。このような動作を検索キーと検索対象データベースの構造(RAMに格納されているデータの段数等)に応じて複数回繰り返した後、読み込み先のアドレスのデータを検索処理結果として検索処理回路52へ出力する。図11に示すように、内蔵RAM57には、深さ2までのツリー構造のエントリデータが格納されていることから、検索処理回路51は、一般に、読み込みデータ受信部72にて取得されたデータから読み込み先のアドレスを生成し該当アドレスのデータを読み込む、という操作を2回行う。
図12−1は、図8における選択回路77、読み込みアドレス生成部71、読み込みデータ受信部72、および多重化回路78での処理のタイミングを示すタイミングチャートである。図12−1においては、各ユニットの処理遅延、および内蔵RAMからのリードタイムを1クロックとした場合を示している。ツリーの深さ2までの検索をおこない、ループしたデータと、入力されてくるデータとの衝突を防ぐためには、検索キーを8クロック毎に入力することになる。すなわち、検索処理回路51は、検索キーの入力から多重化回路78にて検索処理結果を得るまでに8クロックを要する。なお、図12−1では、深さ0におけるアドレスの生成、そのアドレスのデータの取得過程は含まれておらず、2分探索木の探索の起点である深さ0におけるエントリデータと検索キーとの比較はアドレスの生成なしに行うことを仮定している。深さ0におけるアドレスの生成、そのアドレスのデータの取得過程を含めてもよいが、その分、検索処理時間が長くなる。
次に、検索処理回路51から出力された検索処理結果は、検索処理回路52へ入力される。検索キーに相当する検索結果が既に得られている場合には、この検索処理結果は検索処理回路53へそのまま送られるが、検索処理の途中である場合には、検索処理回路52による検索処理が行われる。図9に示すように、読み込みアドレス送信部81は検索処理回路51からの出力を受けて、内蔵RAMにおける読み込み先のアドレスを生成し、この読み込み先のアドレスをRAM選択回路54へ送る。RAM選択回路54は、運用面にある内蔵RAM58を選択し、検索処理回路52にて生成された読み込み先のアドレスを内蔵RAM58へ送る。そして、内蔵RAM58から送られてきた読み込み先のアドレスのデータを読み込みデータ受信部82にて取得する。この取得されたデータは、図11における深さ3のエントリデータである。読み込みデータ受信部82にて取得された読み込み先のアドレスのデータは検索キーと比較される。そして、検索処理結果は、検索処理回路53へ送られる。
図12−2は、図9における読み込みアドレス送信部81および読み込みデータ受信部82での処理のタイミングを示すタイミングチャートである。図12−2においては、図12−1と同様に、各ユニットの処理遅延、および内蔵RAMからのリードタイムを1クロックとしている。図12−2に示すように、検索処理回路52における検索処理時間は、読み込みアドレス送信部81にて深さ2での検索処理結果を受けてから読み込みデータ送信部82にて深さ3での検索処理結果を受けるまでの3クロックであり、検索処理回路51のように、検索途中の結果をループせずに、1回のリード処理で検索を終了する。
次に、検索処理回路52から出力された検索処理結果は、検索処理回路53へ入力される。検索キーに相当する検索結果が既に得られている場合には、この検索処理結果は検索経路22を介して出力される。検索処理の途中である場合には、検索処理回路53による検索処理が行われる。図10に示すように、読み込みアドレス送信部83は検索処理回路52からの出力を受けて、内蔵RAMにおける読み込み先のアドレスを生成し、この読み込み先のアドレスを選択回路85へ送る。選択回路85は、読み込み先のアドレスに応じてRAM選択回路55またはRAM選択回路56を選択し、読み込み先のアドレスを送出する。続いて、多重化回路86は、RAM選択回路55またはRAM選択回路56から送られてきた読み込み先のアドレスのデータを、読み込みデータ受信部84へ送り出す処理を行う。読み込みデータ受信部84にて取得されたデータは、検索処理結果として検索経路22を介して出力される。ここで、選択回路85がRAM選択回路55を選択した場合には、RAM選択回路55は運用面にある内蔵RAM59にアクセスし、図11に示す深さ4のツリーの左半分を検索する。また、選択回路85がRAM選択回路56を選択した場合には、RAM選択回路56は運用面にある内蔵RAM60にアクセスし、図11に示す深さ4のツリーの右半分を検索する。
図12−3は、図10における読み込みアドレス送信部83、選択回路85、検索回路からRAMへの経路におけるRAM選択回路55またはRAM選択回路56、RAMから検索回路への経路におけるRAM選択回路55またはRAM選択回路56、多重化回路86、および読み込みデータ受信84での処理のタイミングを示すタイミングチャートである。図12−3においては、図12−1と同様に、各ユニットの処理遅延、および内蔵RAMからのリードタイムを1クロックとしている。図12−3に示すように、検索処理回路53における検索処理時間は、読み込みアドレス生成部83にて深さ3での検索処理結果を受けてから読み込みデータ送信部84にて深さ4での検索処理結果を受けるまでの7クロックであり、検索処理回路51のように、検索途中の結果をループせずに、1回のリード処理で検索を終了する。また、読み込みアドレス生成部83には、深さ3での検索処理結果が8クロックごとに入力されている。これは、検索処理回路53には、前段からの検索処理結果が8クロックごとにパイプライン的に入力されるからである。
次に、検索動作中における検索用データベースの更新方法について説明する。検索用データベースの更新時には、制御PC8からエントリが変更された新データベースのデータが制御リンク9を介してルータ1に送られる。コントローラ15は、制御PC8から送られてきた新データベースのデータを、制御リンク9上でのデータフォーマットから外部バス23上でのデータフォーマットに変換する。続いて、データフォーマットが変換された新データベースは、外部バス接続線24を介して外部メモリ14へ送られ、保持される。
次に、制御PC8からルータ1内のデバイス13に検索用データベースの更新指示が送られると、外部バス接続線24を介してRAM更新回路65に対して更新指示が送られる。RAM更新回路65は、更新指示を受けて、待機面となっている内蔵RAM61、内蔵RAM62、内蔵RAM63、および内蔵RAM64に対して、外部メモリ14に保持されている新データベースを書き込み、新データベースの書き込みが終了すると、検索処理回路51、RAM選択回路54、RAM選択回路55、およびRAM選択回路56に通知線66を介して運用面の変更を指示する。
運用面の変更が起きると、まず、検索処理回路51が検索に使用していた内蔵RAM57を内蔵RAM61へ変更するため、選択回路77において検索キーが入力されていない時間に、検索経路22から入力される検索キーの出力先を、読み込みアドレス生成部71から読み込みアドレス生成部74へ変更する。このように、検索処理回路51では、選択回路77により選択される2系統の検索処理回路を利用して、検索に使用する内蔵RAMの切り替えが行われる。
なお、検索キーが1クロック分以上のビット幅を持つ場合、選択回路77による内蔵RAMの変更のタイミングは、検索キーが途中で切れて読み込みアドレス生成部71、または読み込みアドレス生成部74に送られないように、一続きの検索キーから次の検索キーへと検索キーの入力が途切れる間となる。
次に、検索処理回路52では、図12−2に示すように、8クロックごとに深さ2での検索処理結果が入力されるので、検索処理回路51にて検索処理を行う内蔵RAMを切り替え後、新データベースによる検索処理結果が検索処理回路52に入力されるまでの間(7クロックの間)に、RAM選択回路54において読み込み先のアドレスの出力先を内蔵RAM58から内蔵RAM62へ変更し、新データベースによる検索をおこなう。このとき、内蔵RAMの切り替えによるデータベースの更新は、検索処理回路51と検索処理回路52の処理能力の速度差、言い換えると、単位時間あたりの検索処理回数の差、を利用して行っている。つまり、検索処理回路51では、検索途中の結果をループし同じ内蔵RAMにリードすることにより検索を行うのに対し、検索処理回路52では、検索処理の途中結果をループせずに、1回のリード処理で検索を終了しているため、検索処理回路52の検索処理能力の速度は、検索処理回路51の検索処理能力の速度を上回る。このような検索処理能力の速度差が存在すれば、前段の検索処理回路51から次のデータが入力されるまでの8クロックの間に、後段の検索処理回路52では検索処理を行うと共に、内蔵RAMの運用面と待機面との切り替えを行うことができる。図12−2に示すように、検索処理回路52における内蔵RAMの切り替えは、検索処理回路52が内蔵RAM58にアクセスして検索を行っている時間を除いて可能となっている。なお、図12−2では、メモリの切り替えが可能なメモリ切替可能時間を斜線で示している。
同様に、検索処理回路53では、検索処理回路51、検索処理回路52と順番に内蔵RAMを切り替え後、新データベースによる検索結果が検索処理回路53に入力されるまでの間(7クロックの間)に、RAM選択回路55およびRAM選択回路56において、読み込み先のアドレスの出力先を内蔵RAM59および内蔵RAM60から内蔵RAM63および内蔵RAM64へ変更し、次の更新指示があるまで、新データベースによる検索処理を行い続ける。このときも同様に、内蔵RAMの切り替えによるデータベースの更新は、検索処理回路51と検索処理回路53の処理能力の速度差を利用して行っている。すなわち、検索処理回路51では、検索途中の結果をループし同じ内蔵RAMにリードすることにより検索を行うのに対し、検索処理回路53では、検索処理の途中結果をループせずに、1回のリード処理で検索を終了しているため、検索処理回路53の検索処理能力の速度は、検索処理回路51の検索処理能力の速度を上回る。図12−3に示すように、検索処理回路53における内蔵RAMの切り替えは、検索処理回路53が内蔵RAM59または内蔵RAM60にアクセスして検索を行っている時間を除いて可能となっている。図12−3では、メモリの切り替えが可能なメモリ切替可能時間を斜線で示している。
本実施の形態によれば、前段と後段の検索処理回路の処理能力の速度差を利用し、前段の検索処理回路を上回る処理速度を有する後段の検索処理回路により、検索途中のデータが前段の検索処理回路から後段の検索処理回路へ入力されない時間を利用して新しいエントリ情報を有するメモリへ切り替えることにより、検索動作中であっても検索動作を停止せずに検索用データベースのエントリを更新することができる。
また、本実施の形態においては、検索用データベースのツリー構造を深さ毎に区切って複数個の内蔵RAM内に保持しているため、例えば、ツリー最深部のエントリデータのみを変更する場合には、その最深部のデータを保持する内蔵RAMのみを更新すればよく、エントリ更新を検索処理に高速に反映することができる。図13は、検索用データベースのツリーの最深部のみにエントリ更新がある場合を示す図であり、深さ4におけるエントリデータが更新される場合を示している。前述のように、この場合には深さ4におけるエントリデータを保持する内蔵RAM59および内蔵RAM60の内容を更新するだけでよいので、更新されたエントリを待機面にある内蔵RAM63および内蔵RAM64に書き込み、RAM選択回路55およびRAM選択回路56により、これらの待機面にある内蔵RAMを運用面に変更すればよい。なお、検索用データベースのデータ構造に基づいて内蔵RAMの一部のみを更新するなどの判断は、外部の制御PC8を介して行う。
また、本実施の形態においては、後段の検索処理回路の個数を2個とする例を示したが、これは図11に示すデータ構造を例に説明を行ったからであり、検索用データベースの構造と量に応じて、後段の検索処理回路を、適宜、任意個数設定することができ、また、これに応じて、内蔵RAMおよびRAM選択回路も適宜設定することができる。
また、本実施の形態においては、後段の検索処理回路である検索処理回路52および検索処理回路53がそれぞれ運用面にある内蔵RAMにアクセスして検索を行う回数を1回としたが、これに限定されず、前段の検索処理回路である検索処理回路51が運用面にある内蔵RAMにアクセスして検索を行う回数よりも少なければ、任意の回数としてもよい。すなわち、この条件を満たせば、本実施の形態の効果を得ることができる。なお、この場合には、後段の検索処理回路の内部構造、後段の検索処理回路が検索のためにアクセスする内蔵RAMに格納されているデータ構造等は、アクセスの回数に依存して適宜設定される。
実施の形態2.
本発明にかかる検索装置およびデータ処理装置の実施の形態2について説明する。本実施の形態を利用したネットワーク構成例は、例えば、図1に示す実施の形態1におけるネットワーク構成と同様である。
図14は、本実施の形態にかかるデータ処理装置としてのルータ1の内部構成を示す図である。図14に示すルータ1の内部構成と、図2に示す実施の形態1におけるルータ1の内部構成との違いは、図2におけるデバイス13が、図14ではデバイス73で置き換えられている点である。図14におけるその他の構成は、図2における構成と同様である。そのため、図14においては、図2と同一の構成物には同一の符号を付して、その詳細な説明を省略する。次に、図2との違いである検索装置としてのデバイス73の内部構成について述べる。
図15は、図14におけるデバイス73の内部構成を示す図である。図15に示すように、デバイス73は、RAM更新回路112と、検索キー分離回路101と、前段の検索処理回路である検索処理回路102および検索処理回路103と、検索処理回路102および検索処理回路103からの出力が多重化される検索キー多重化回路104と、後段の検索処理回路である検索処理回路105と、同じく後段の検索処理回路であると共に、検索処理回路105からの検索処理結果が入力される検索処理回路106と、RAM選択回路107、RAM選択回路108、およびRAM選択回路109と、運用面にある、内蔵RAM57および内蔵RAM121、内蔵RAM58および内蔵RAM122、内蔵RAM59および内蔵RAM123、ならびに内蔵RAM60および内蔵RAM124と、待機面にある、内蔵RAM61および内蔵RAM131、内蔵RAM62および内蔵RAM132、内蔵RAM63および内蔵RAM133、ならびに内蔵RAM64および内蔵RAM134と、RAM更新回路112から検索処理回路102および検索処理回路103に接続された通知線112と、を含んで構成される。次に、各構成要素の内部構成および動作について述べる。
なお、本実施の形態においては、以下に説明するように、同時に2つの異なる検索キーを扱う例について述べるが、検索キーの個数は2つに限定されることはなく、同時に3つ以上の異なる検索キーを扱う実施の形態を実現することができる。
検索キー分離回路101には検索経路22から検索キーが入力される。検索キー分離回路101は、後述する検索キーを2つに分離し、分離した検索キーの一方を検索処理回路102へ、他方を検索処理回路103へ送り出す回路である。このため、検索処理回路102および検索処理回路103は、検索キー分離回路101の後段に並列して設けられている。
図16は、検索経路22から検索キー分離回路101へ入力される検索キーのフォーマットの一例を示す図であり、検索キー600は検索キー601および検索キー602含んで構成されている。検索キー分離回路101は、検索キー610を検索キー601と検索キー602とに分離する。
なお、本実施の形態においては、検索キー601を検索処理回路102へ、検索キー602を検索処理回路103へ送るという前提で説明を続けるが、この前提は本発明を限定するものではなく、検索キーの送り先を相互に入れ替えてもよい。
図17は、検索処理回路102内部の回路構成を示す図である。図17に示すように、検索キー分離回路101から入力された検索キー601は、選択回路130にて読み込みアドレス生成部71へ送り出される。このとき、読み込みアドレス生成部71は運用面にある内蔵RAM57へ接続され、一方、読み込みアドレス生成部74は待機面にある内蔵RAM61へ接続されている。読み込みアドレス生成部71では、入力された検索キー601をもとに、内蔵RAM57における読み込み先のアドレスを生成して、内蔵RAM57へ読み込み先のアドレスを送り、内蔵RAM57から送られてきた読み込み先のアドレスのデータを読み込みデータ受信部72にて取得する。
読み込みデータ受信部72では、取得された読み込み先のアドレスのデータと検索キー601とを比較し、検索キー601に相当する検索結果が得られない場合には、さらに内蔵RAM57にアクセスして検索処理を継続する。すなわち、ラッチ73で読み込みデータ受信部72からのデータを待ち合わせ、次に、ラッチ73から出力された読み込み先のアドレスのデータをもとに、読み込みアドレス生成部71にて、次の読み込み先のアドレスを生成し、内蔵RAM57へ再度生成した読み込み先のアドレスを送る。そして、内蔵RAM57から送られてきた読み込み先のアドレスのデータを読み込みデータ受信部72にて取得する。このような動作を任意回数繰り返した後、読み込み先のアドレスのデータを多重化回路131へ渡して多重化し、通知線111を介して送られてきた検索対象となる内蔵RAMを指定する指定情報(この場合は、内蔵RAM57を指定する指定情報)を付加して、後段の検索キー多重化回路104へ出力する。
検索キー多重化回路104は、検索処理回路102および検索処理回路103から送られてきた検索処理結果を検索処理回路105へ送り出す処理を行う。ここで、検索処理回路103による検索処理も検索処理回路102と同様に行われるが、検索処理回路103が検索対象とする運用面の内蔵RAMは、内蔵RAM121である。
図18は、検索処理回路105内部の回路構成を示す図である。図18に示すように、検索キー多重化回路104から出力された検索処理結果は、検索処理回路105へ入力され、検索途中である場合には、読み込みアドレス送信部141にて読み込み先のアドレスを生成し、検索処理回路102および検索処理回路103で付加された検索対象となる内蔵RAMを指定する指定情報と共に、生成された読み込み先のアドレスをRAM選択回路107へ送る。そして、RAM選択回路107から送られてきた読み込み先のアドレスのデータを読み込みデータ受信部142にて取得し、得られた検索処理結果を検索処理回路106へ出力する。
RAM選択回路107では、検索処理回路105から送られてきた検索対象となる内蔵RAMを指定する指定情報をもとに、検索キー601による検索中のデータ(読み込み先のアドレス)に対しては内蔵RAM58を、検索キー602による検索中のデータ(読み込み先のアドレス)に対しては内蔵RAM122をそれぞれ選択し、各検索中のデータをそれぞれ選択された内蔵RAMへ送り、各内蔵RAMから該当アドレスのデータを読み出し、その結果を検索処理回路105へ出力する。
図19は、検索処理回路106内部の回路構成を示す図である。図19に示すように、検索処理回路105から出力された検索処理結果は、検索処理回路106へ入力され、検索処理結果が検索途中である場合には、読み込みアドレス送信部151にて読み込み先のアドレスを生成し、検索対象となる内蔵RAMを指定する指定情報と共にこの読み込み先のアドレスを選択回路153へ送る。選択回路153では、読み込み先のアドレスに応じてRAM選択回路108またはRAM選択回路109を選択する。例えば、RAM選択回路108が選択された場合には、RAM選択回路108は運用面となっている内蔵RAMを選択し、さらに、検索対象となる内蔵RAMを指定する指定情報に基づいて、読み込み先のアドレスを内蔵RAM59または内蔵RAM123へ送る。検索キー601による検索中のデータ(読み込み先のアドレス)に対しては内蔵RAM59が、検索キー602による検索中のデータ(読み込み先のアドレス)に対しては内蔵RAM123が選択される。同様に、RAM選択回路109が選択された場合には、RAM選択回路109は運用面となっている内蔵RAMを選択し、さらに、検索対象となる内蔵RAMを指定する指定情報に基づいて、読み込み先のアドレスを内蔵RAM60または内蔵RAM124へ送る。検索キー601による検索中のデータ(読み込み先のアドレス)に対しては内蔵RAM60が、検索キー602による検索中のデータ(読み込み先のアドレス)に対しては内蔵RAM124が選択される。続いて、読み込み先のアドレスのデータはRAM選択回路108またはRAM選択回路109を経て多重化回路154へ送られ、さらに、多重化回路154から読み込みデータ受信部152へ送られる。読み込みデータ受信部152にて取得されたデータは、検索処理結果として検索経路22を介してデバイス73から出力される。
RAM更新回路112は、検索用データベースの更新時に、外部バス23を経由して送られてきたエントリデータを、待機面となっている内蔵RAM群へ書き込む回路である。図15では、待機面を、内蔵RAM61、内蔵RAM62、内蔵RAM63、内蔵RAM64、内蔵RAM132、内蔵RAM132、内蔵RAM133、および内蔵RAM134としている。さらに、RAM更新回路112は、エントリデータの更新指示を、通知線111を使って検索処理回路102および検索処理回路103へ通知する。
図20は、エントリデータによって構成されたツリーが各内蔵RAMの内部でどのように構成されるかを示した図である。図20に示すように、本実施の形態ではテーブル201とテーブル202からなる2つのテーブルを使用している。テーブル201では、内蔵RAM57に深さ0から深さ2までのツリー情報が登録されており、内蔵RAM58に深さ3のツリー情報が、内蔵RAM59に深さ4のツリー情報の左半分が、内蔵RAM60に深さ4のツリー情報の右半分が登録されている。テーブル202では、内蔵RAM121に深さ0から深さ2までのツリー情報が登録されており、内蔵RAM122に深さ3のツリー情報が、内蔵RAM123に深さ4のツリー情報の左半分が、内蔵RAM124に深さ4のツリー情報の右半分が登録されている。
本実施の形態における検索動作中の検索用データベースの更新方法は、実施の形態1と同様である。すなわち、本実施の形態においても、前段の検索処理回路では、検索途中の結果をループし、そのため、毎クロック検索結果が出力されない。一方、後段の検索処理回路では、内蔵RAMへ1回のリード処理で検索が終了する。そして、前段と後段の検索処理回路の処理能力の速度差を利用し、後段の検索処理回路に入力する検索途中のデータが毎クロックではないことを利用して、その間隙に後段の検索処理回路がアクセスする内蔵RAMの切り替えを行い、データベースの更新を行う。
本実施の形態によれば、検索動作中であっても検索処理を停止せずに、検索用データベースのエントリの更新ができる。また、検索用データベースのツリー構造を深さ毎に区切って内蔵RAM内に保持しているため、例えば、ツリー最深部のエントリデータのみを変更する場合においては、その最深部のデータを保持する内蔵RAMのみを更新すればよく、エントリ更新を検索処理に高速に反映することができる。また、本実施の形態では、入力される検索キーが2つの分離可能な検索キーを含むことから、前段の検索処理回路が検索対象とする内蔵RAMを同じ内容のデータが保持された2つの内蔵RAMとし、後段の検索処理回路が検索対象とする内蔵RAMを同じ内容のデータが保持された2つの内蔵RAMとすることで、分離された2つの検索キーに対する検索処理を、前段および後段における2つの内蔵RAMに分散して行っている。このように、2つの異なる検索キーに対して、実施の形態1で使用するテーブル検索処理機能に加えて、もう一つのテーブル検索処理機能を付加して並列度を上げることで、検索処理速度を上げつつ、高速なエントリ更新機能を実現できる。
また、後段に配置された内蔵RAMに使用されていないものがあるときに、それを他の検索テーブル用に割り当てることにより、資源を有効利用して検索処理の高速化を実現することができる。
以上のように、本発明にかかる検索装置はデータ検索を行うデータ処理において有用であり、特に、検索処理を中断させずに検索用のデータベースの更新を行う情報通信システムに適している。
本発明の実施の形態1を利用したネットワーク構成を示す図である。 実施の形態1のルータの機能構成例を示す図である。 Ethernet(登録商標)フレームフォーマットを示す図である。 IPv4ヘッダのフォーマットを示す図である。 TCPヘッダのフォーマットを示す図である。 UDPヘッダのフォーマットを示す図である。 図2におけるデバイスの内部構成を示す図である。 検索処理回路の内部構成を示す図である。 検索処理回路内部の回路構成を示す図である。 検索処理回路内部の回路構成を示す図である。 実施の形態1で使用する検索用データベースのデータ構造の一例を示すと共に、エントリデータによって構成されたツリーが内蔵RAM内部でどのように構成されるのかを示す図である。 図8における各ユニットでの処理のタイミングを示すタイミングチャートである。 図9における各ユニットでの処理のタイミングを示すタイミングチャートである。 図10における各ユニットでの処理のタイミングを示すタイミングチャートである。 検索用データベースのツリーの最深部のみにエントリ更新がある場合を示す図である。 実施の形態2のルータの機能構成例を示す図である。 図14におけるデバイスの内部構成を示す図である。 検索経路から検索キー分離回路へ入力される検索キーのフォーマットの一例を示す図である。 実施の形態2における検索処理回路内部の回路構成を示す図である 実施の形態2における検索処理回路内部の回路構成を示す図である。 実施の形態2における検索処理回路内部の回路構成を示す図である。 実施の形態2で使用する検索用データベースのデータ構造の一例を示すと共に、エントリデータによって構成されたツリーが内蔵RAM内部でどのように構成されるのかを示す図である。
符号の説明
1 ルータ
2 PC端末
3 インターネット
4 サーバー群
5 アクセスポイント
6 無線端末
7 イントラネット
8 制御PC
9 制御リンク
10 リンク
11 送受信ユニット
12 転送ユニット
13 デバイス
14 外部メモリ
15 コントローラ
22 検索経路
23 外部バス
24 外部バス接続線
25 Ethernet(登録商標)フレーム
26 MACヘッダ
27 IPv4パケット
28 FCS
29 IPv4ヘッダ
30 TCPヘッダ
31 UDPヘッダ
32 TOSフィールド
33 トータル長
34 識別子
35 フラグ
36 フラグメントオフセット
37 プロトコル
38 送信元IPアドレス
39 宛先IPアドレス
40 送信元ポート番号
41 宛先ポート番号
42 シーケンス番号
43 確認応答番号
44 送信元ポート番号
45 宛先ポート番号
51、52、53 検索処理回路
57、58、59、60、61、62、63、64 内蔵RAM
54、55、56 RAM選択回路
65 RAM更新回路
66 通知線
67 待機面
68 運用面
71、74 読み込みアドレス生成部
72、75、82、84 読み込みデータ受信部
73、76 ラッチ
77、85 選択回路
78、86 多重化回路
81、83 読み込みアドレス送信部

Claims (10)

  1. 検索キーを入力としメモリ内に格納された検索用データベースを検索して検索結果を出力する検索装置であって、
    前記検索キーが入力される前段の検索処理回路と、
    この前段の検索処理回路の後段に設けられ、前記前段の検索処理回路の検索処理結果に基づいて、順次、検索処理を行う1または複数の後段の検索処理回路と、
    前記前段の検索処理回路が検索を行うための前記検索用データベースの一部が格納され、前記前段の検索処理回路に対応して設けられた前段の運用メモリと、
    この前段の運用メモリと対になって設けられ、前記検索用データベースの更新時まで、待機を行う前段の待機メモリと、
    前記検索用データベースの残部が全体として格納されるように、前記各後段の検索処理回路が検索を行うためのデータがそれぞれ格納され、前記各後段の検索処理回路にそれぞれ対応して設けられた後段の運用メモリと、
    前記各後段の運用メモリと対になって設けられ、前記検索用データベースの更新時まで、待機を行う後段の待機メモリと、
    前記検索用データベースの更新時に、更新後の検索用データベースを書き込むことにより前記前段および前記各後段の待機メモリの内容を更新するメモリ更新回路と、
    前記メモリ更新回路からの更新通知に基づいて、前記前段の検索処理回路が検索をするメモリを前記前段の運用メモリから前記前段の待機メモリへと切り替える前段の選択回路と、
    前記メモリ更新回路からの更新通知に基づいて、前記各後段の検索処理回路が検索をするメモリを前記各後段の運用メモリからそれと対になる前記各後段の待機メモリへと切り替える後段の選択回路と、
    を備え、
    前記前段の検索処理回路が検索処理に要する検索処理時間は、前記各後段の検索処理回路が検索処理に要する検索処理時間よりも長いことを特徴とする検索装置。
  2. 前記前段の検索処理回路は、前記前段の運用メモリに対して複数回アクセスすることにより検索処理を行い、前記各後段の検索処理回路は、対応する前記各後段の運用メモリに対して、前記前段の検索処理回路のアクセス回数よりも少ない回数アクセスすることにより検索処理を行うことを特徴とする請求項1に記載の検索装置。
  3. 前記各後段の選択回路による前記各後段の運用メモリから前記各後段の待機メモリへのメモリの切り替えは、前記前段の検索処理回路からの検索処理結果が前記各後段の検索処理回路へ入力されるまでの時間のうち、前記各後段の検索処理回路が前記各後段の運用メモリへアクセスしている時間を除いた時間を利用して行われることを特徴とする請求項2に記載の検索装置。
  4. 前記前段の検索処理回路には、少なくとも所定の時間間隔を隔てて検索キーが入力され、前記所定の時間間隔は、前記前段の検索処理回路に既に入力した検索キーに対する検索途中のデータと次に入力する検索キーとが前記前段の検索処理回路の内部で衝突しないように間隔を隔てるものであることを特徴とする請求項2または3に記載の検索装置。
  5. 前記後段の運用メモリはその格納データが分割して割り当てられた複数のメモリから構成され、前記後段の待機メモリは前記後段の運用メモリと同数のメモリから構成され、前記後段の運用メモリを構成する各メモリと前記後段の待機メモリを構成する各メモリとが対をなしていることを特徴とする請求項1〜4のいずれか1つに記載の検索装置。
  6. 前記前段の選択回路は、前記前段の検索処理装置の内部に設けられていることを特徴とする請求項1〜5のいずれか1つに記載の検索装置。
  7. 前記前段の検索処理回路は、前記前段の運用メモリにアクセス可能な第1の内部検索処理回路と、前記前段の待機メモリにアクセス可能な第2の内部検索処理回路と、を備え、前記検索用データベースの更新通知に基づいて、前記検索キーの送り先を前記第1の内部検索処理回路から前記第2の検索処理回路へと切り替えることにより、前記前段の検索処理回路が検索をするメモリを前記前段の運用メモリから前記前段の待機メモリへと切り替えることを特徴とする請求項1〜6のいずれか1つに記載の検索装置。
  8. 前記検索用データベースのデータ構造はツリー構造であり、前記前段の運用メモリは、前記ツリー構造の起点を含む前記ツリー構造の上段のデータを格納し、前記各後段の運用メモリは、前記前段の運用メモリが格納するデータ以外の、前記ツリー構造の下段のデータを格納し、前記前段の運用メモリが格納する前記上段のデータの段数は、前記後段の運用メモリが格納する前記下段のデータの段数よりも多いことを特徴とする請求項1〜7のいずれか1つに記載の検索装置。
  9. 相互に異なる複数の検索キーを含んで構成される前記入力される検索キーに対して、前記入力される検索キーをその構成要素である複数の検索キーに分離する検索キー分離回路を備え、前記前段の運用メモリおよび前記前段の待機メモリは、それぞれ、同一の検索用データが格納された前記分離される検索キーの個数と同数のメモリから構成され、前記各後段の運用メモリおよび前記各後段の待機メモリは、それぞれ、同一の検索用データが格納された前記分離される検索キーの個数と同数のメモリから構成され、前記前段の検索処理回路は、前記検索キー分離回路により分離された複数の検索キーに対する検索を、前記前段の運用メモリを構成する複数のメモリに分散して並列に行い、前記分離された各検索キーに対する検索処理結果に検索対象となるメモリを識別する識別情報を付加し、前記各後段の検索処理回路は、前記前段の検索処理回路からの検索処理結果に対して、前記検索処理結果に付加された前記識別情報に基づいて、前記各後段の運用メモリを構成するメモリから検索対象となるメモリを選択して検索を行うことを特徴とする請求項1〜8のいずれか1つに記載の検索装置。
  10. 請求項1〜9のいずれか1つに記載の検索装置を備えたデータ処理装置。
JP2006356323A 2006-12-28 2006-12-28 検索装置およびデータ処理装置 Expired - Fee Related JP4879728B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006356323A JP4879728B2 (ja) 2006-12-28 2006-12-28 検索装置およびデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006356323A JP4879728B2 (ja) 2006-12-28 2006-12-28 検索装置およびデータ処理装置

Publications (2)

Publication Number Publication Date
JP2008165616A true JP2008165616A (ja) 2008-07-17
JP4879728B2 JP4879728B2 (ja) 2012-02-22

Family

ID=39694995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006356323A Expired - Fee Related JP4879728B2 (ja) 2006-12-28 2006-12-28 検索装置およびデータ処理装置

Country Status (1)

Country Link
JP (1) JP4879728B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015231131A (ja) * 2014-06-04 2015-12-21 株式会社ギデオン ネットワーク中継装置、同装置を用いたDDoS防御方法および負荷分散方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10190744A (ja) * 1996-12-26 1998-07-21 Toshiba Corp 情報記憶装置
JP2002157158A (ja) * 2000-11-20 2002-05-31 Hitachi Ltd データベースシステムにおけるデータ管理方法
JP2003022209A (ja) * 2001-07-05 2003-01-24 Nri & Ncc Co Ltd 分散サーバーシステム
JP2003296349A (ja) * 2002-04-03 2003-10-17 Mitsubishi Electric Corp データ検索装置及びサーバ更新方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10190744A (ja) * 1996-12-26 1998-07-21 Toshiba Corp 情報記憶装置
JP2002157158A (ja) * 2000-11-20 2002-05-31 Hitachi Ltd データベースシステムにおけるデータ管理方法
JP2003022209A (ja) * 2001-07-05 2003-01-24 Nri & Ncc Co Ltd 分散サーバーシステム
JP2003296349A (ja) * 2002-04-03 2003-10-17 Mitsubishi Electric Corp データ検索装置及びサーバ更新方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015231131A (ja) * 2014-06-04 2015-12-21 株式会社ギデオン ネットワーク中継装置、同装置を用いたDDoS防御方法および負荷分散方法

Also Published As

Publication number Publication date
JP4879728B2 (ja) 2012-02-22

Similar Documents

Publication Publication Date Title
KR102162730B1 (ko) 분산형 라우팅 테이블 탐색 기술
US6683885B1 (en) Network relaying apparatus and network relaying method
CN102104541B (zh) 报头处理引擎
US8290934B2 (en) Method and system for processing access control lists using a hashing scheme
JP4974078B2 (ja) データ処理装置
EP2544417A1 (en) Communication system, path control apparatus, packet forwarding apparatus and path control method
US10778721B1 (en) Hash-based ACL lookup offload
JP6426879B2 (ja) データパケット転送
CN106470158B (zh) 报文转发方法及装置
JP2006313949A (ja) パケット転送装置
JP6574054B2 (ja) パケット転送
JP2020520612A (ja) パケット伝送方法、エッジデバイス及び機械可読記憶媒体
Pontarelli et al. Parallel d-pipeline: a cuckoo hashing implementation for increased throughput
CN113746749A (zh) 网络连接设备
CN109525518B (zh) 一种基于fpga的ip报文网络地址转换方法及装置
US8050262B2 (en) System and method for parsing frames
US7702882B2 (en) Apparatus and method for performing high-speed lookups in a routing table
JP4879728B2 (ja) 検索装置およびデータ処理装置
JP2008060763A (ja) ネットワークノード
JP5674179B1 (ja) 効率的なネットワークアドレス変換およびアプリケーションレベルゲートウェイ処理のための装置および方法
JP3949696B2 (ja) プロトコル高速化装置
KR100431206B1 (ko) 고속 라우터에서 분산 포워딩을 위한 테이블 관리 방법
US20050044261A1 (en) Method of operating a network switch
WO2015131617A1 (zh) 流表处理方法、装置、开放流控制器及开放流交换机
JP5374290B2 (ja) ネットワーク中継装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111031

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: 20111129

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111130

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees