JP2001326679A - 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体 - Google Patents

情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体

Info

Publication number
JP2001326679A
JP2001326679A JP2000142102A JP2000142102A JP2001326679A JP 2001326679 A JP2001326679 A JP 2001326679A JP 2000142102 A JP2000142102 A JP 2000142102A JP 2000142102 A JP2000142102 A JP 2000142102A JP 2001326679 A JP2001326679 A JP 2001326679A
Authority
JP
Japan
Prior art keywords
search
divided
result
pointer
storing
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.)
Pending
Application number
JP2000142102A
Other languages
English (en)
Inventor
Akira Jinzaki
明 陣崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000142102A priority Critical patent/JP2001326679A/ja
Priority to US09/783,559 priority patent/US6839703B2/en
Priority to EP20010301556 priority patent/EP1156432B1/en
Priority to DE60134694T priority patent/DE60134694D1/de
Publication of JP2001326679A publication Critical patent/JP2001326679A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Abstract

(57)【要約】 【課題】少ないメモリ容量で無駄なエントリのない、高
速検索可能なテーブルのデータ構造を提供する。 【解決手段】テーブルを検索するための検索キーを複数
のビット列からなる分割検索キーに分割する。各分割検
索キーには、対応した検索表を設けるようにし、1つの
分割検索キーで検索するテーブルの大きさを、全体の検
索キーで一度の検索する場合のテーブルよりも小さなも
のとする。最初に、分割検索キー(Aビット)で、一次
検索表を検索し、結果が得られれば、そのまま出力す
る。二次検索表へのポインタが得られたら、その二次検
索表を分割検索キー(Bビット)で検索する。以下同様
にして、分割検索キーを使って検索する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高速検索可能なテ
ーブルのデータ構造に関し、特には、最長前方一致検索
を高速に実現し、テーブルの検索、作成、テーブル項目
の追加、変更、削除を高速に行うことを可能とする構成
のテーブルを有する情報装置に関する。
【0002】
【従来の技術】複数のデータを一定の構造をもった配列
(テーブル)に格納し、特定のデータ(検索データ)に
一致するものを検索する処理は情報処理において多方面
で用いられる。中でも最長前方一致検索(longest pre
fix match search)は、例えば、辞書の最長前方一致
検索やインターネットプロトコルにおけるルーティング
処理で用いられる経路表の検索に利用されており、重要
である。
【0003】最長前方一致検索を必要とする代表的な応
用例は、インターネットプロトコルなどで用いられる経
路表検索である。以下の説明では、経路表検索の場合を
例にして説明をするが、最長前方一致検索はデータベー
ス検索など様々な用途に利用できるものであって、経路
表検索に限定されるものではない。
【0004】更に、以下の説明ではIPv4の32ビッ
トのネットワークアドレスを「aaa.bbb.ccc.ddd 」のよ
うに8ビット毎に「. 」で区切って、それぞれの8ビッ
ト値を十進数で表現する。例えば、「10.0.0.1」は十六
進数で「0x0A000001」である。また、ネットワーク部の
長さを明示的に「10.0.0.0/24 」のように表示する。こ
れは、10.0.0.0のネットワーク部が先頭から24ビット
(10.0.0)であることを表す。これらの表記法は一般的
に用いられるものである。また、以下の説明では「10.
0.0.x」のように「x」で特に指定の必要がない(don't
care )値を表す。
【0005】経路表とは、ネットワークアドレスとその
ネットワークアドレスに到達するための経路情報を対に
したデータベースである。インターネットルータはネッ
トワークからパケットを受信すること、このパケットの
宛先アドレスを検索データとして経路表を検索し、最も
長く一致するネットワークアドレスを見つけだし、その
ネットワークアドレスの経路に向けてパケットを転送す
る。ここで、経路とはパケットをフォワーディングする
次のリンクである。
【0006】図15は、経路表の一例を示した図であ
る。例えば、経路表に図15のようなネットワークアド
レスと経路が登録されていると仮定する。
【0007】この例では、検索データ(パケットの宛
先)として「10.0.1.2」が与えられたとき「10.0.1.0」
が一致する。これはビット単位で見たとき、「10.0.1.
0」のほうが「10.0.1.128」よりも1ビット長く一致す
るからである。もし「10.0.1.0」のエントリが経路表に
ない場合は「10.0.1.128」が最長前方一致となる。「1
0.0.1.128」もなければ「10.0.0.0」が、「10.0.0.0」
もなければ「10.1.0.0」が、「10.1.0.0」もなければ
「0.0.0.0」が最長前方一致となる。「0.0.0.0」が最長
前方一致となる場合は、上位4ビットが「0」で一致す
る。
【0008】なお、ルーティングにおいてはディフォル
トルートという概念があり、検索データに一致する経路
がない場合、用いる経路が定義されるので経路表の検索
は必ず成功する。
【0009】最長前方一致検索を実現する上で課題とな
るのは、検索、テーブルの追加、変更、削除などの処理
を行う手間を小さくし、これら全ての処理を高速に実行
することである。従来技術としては、検索アルゴリズム
を工夫したもの(文献1〜6)やハードウェアCAM
(Contents Addressable Memory )を利用した方法
(文献1〜8)、新しい方法(文献9、10)など多数
の方式がある。これらは経路表検索を目的としたものが
主であるが、最長前方一致検索という意味では単語検索
などと同等である。
【0010】経路表の検索は元来ソフトウェアで実現さ
れており、基本的にRadix TreeをはじめとするBinary
Treeを用いた検索方式が用いられてきた。しかし、高
速ネットワークにおいては数十万パケット/秒という速
度でパケットが伝送されるため、ソフトウェア処理では
対応が困難になっており、microsecond 以下の時間で検
索しなければならない場合は、ハードウェア検索方式が
用いられる。一般にハードウェア検索では、経路表の管
理はソフトウェアで行い、ハードウェアは検索のみを高
速に処理するよう最適化する。このような検索方式の代
表例としてスタンフォード大学が開発したTiny Tera方
式がある(文献11)。
【0011】図16は、Tiny Tera方式を説明する図で
ある。Tiny Tera方式は以下のようにして経路表検索を
行うものである。 ・検索キーを二個のフィールドに分割する。
【0012】・検索キーの長さがKの時第一フィールド
はP、第二フィールドはK−Pである。 ・IPv4(Internet Protocol version 4:K=3
2)の場合、P=24である。 ・第一フィールドをインデックスとして索引するための
テーブル(一次検索表)を設ける。 ・一次検索表には経路情報あるいは二次検索表へのポイ
ンタを格納する。
【0013】・二次検索表は2K-P エントリのテーブル
を必要な数準備する。 ・第一フィールドで一次検索表を引く(ステップ1) ・経路情報が得られれば、それが結果となる(一次結
果) ・二次検索表へのポインタが得たら、これと第二フィー
ルドで二次検索表を引く(ステップ2) このように、Tiny Tera方式では、たかだか2アクセス
で検索を完了する。
【0014】
【発明が解決しようとする課題】Tiny Tera方式ではテ
ーブルを、たかだか2回アクセスすることでIPv4ア
ドレスの経路検索を完了することができる。また、方式
から明らかなようにハードウェアによる実現が容易であ
り、その場合、検索時間は100ns以下にすることが
可能である。しかし、以下の問題がある。 ・一次検索表として224(16Mega −約1600万)
エントリのメモリが必要である。
【0015】・現在のインターネットで用いられている
経路は最大で10万経路とされているので、一次検索表
の1/160しか用いられない疎なテーブルとなる(す
なわち、メモリが無駄)。
【0016】・16M語のテーブルは通常の場合キャッ
シュメモリには入らないため、キャッシュミスが頻繁に
生じる。従って、経路表をキャッシュミスの度にアクセ
スする必要があり、処理速度低下が起こる。 ・基本的にネットワーク経路をホスト経路に展開する方
式なので、例えば、一次検索表にネットワークアドレス
が8ビットのネットワークを登録するとテーブルに216
(約65000)エントリに展開し、このエントリ全て
に同じ経路情報を設定する必要がある。すなわち、一次
検索表の検索キーである24ビットの値に対し、8ビッ
トしか使用しないので、残りの16ビットが取りうる全
ての値について経路情報を登録することになる。
【0017】・経路表の作成、変更、削除時にエントリ
数に比例した時間を要する。 ・一気にエントリ全てを変更できないため、変更の途中
段階においてデータに一貫性のない状態が生じ、このと
きに行われた最長前方一致検索は一貫性のないデータを
得る可能性がある。 ・IPv6(Internet Protocol version 6)など長
いアドレスを持つネットワークプロトコルに対応できな
い。すなわち、ネットワークアドレスが長くなると、登
録すべきエントリ数が極端に多くなり、上に述べた問題
点が更に深刻になる。
【0018】図17は、ルータのルーティング処理の概
念を示す図である。ルータRは、ルータRに接続するネ
ットワークN1〜N4に対してパケットを転送する必要
がある。このとき、ルータRに入力されたパケットの宛
先アドレスを調べ、どのパスに送信したらよいかが決定
される。このとき、一般に、ルータRには、複数の異な
るネットワークN1〜N4が接続されるが、これら全て
に異なるパスが割り当てられる訳ではなく、例えば、図
17に示されるように、ネットワークN1とN4へは同
じl1という、ルータRの1つのポートに接続されたパ
スを使ってパケットが送信されることが多々ある。この
ような場合、ネットワークN1とN4を宛先として持つ
パケットは全てパスl1へと出力されるので、経路表に
はネットワークアドレスN1とN4の全ての出力パスと
してl1が登録されることになる。
【0019】図18は、Tiny Tera方式における経路表
の概念を示す図である。図18の場合、ネットワークア
ドレスN1は、24ビットより短いとしている。この場
合、24ビットの内、ネットワークアドレスN1の後ろ
に付加されている全てのビット値に対してエントリが生
成され、これらの出力経路(出力パス)として全てl1
が登録されている。また、ネットワークアドレスN4
は、24ビットよりも長く、ビット値V4とW4とから
なっているとすると、まず図18のテーブル(1)にお
いて、24ビットのビット値V4によって一次経路表を
検索する。すると、二次経路表へのポインタが取得され
るので、このポインタに基づいて、図18の(2)の経
路表をビット値W4によって検索する。これによって、
出力経路としてl4が取得される。更に、ネットワーク
アドレスN3はちょうど24ビットで構成されていると
すると、ネットワークアドレスN3のエントリは1つだ
けであり、出力経路としてl3が取得される。
【0020】ところで、経路表は、ネットワークアドレ
ス格納部とパケットから得られたネットワークアドレス
との比較一致処理を行うのではなく、パケットから得ら
れたネットワークアドレスをオフセットとして、直接経
路表を参照するので、ネットワークアドレスの取りうる
値全てについて、たとえ、そのようなアドレスが無くて
もメモリエリアをとっておく。従って、経路表に登録さ
れるネットワークアドレスの登録数が224エントリより
も少なくても、一次経路表としては、224エントリ分の
メモリ容量を必要とする。すなわち、無駄なメモリ領域
を作ってしまうと共に、ネットワークアドレスのビット
数が長くなるに従って、経路表検索用キーのビット数を
大きくすると、急激に多くのメモリ容量を必要とすると
いう問題がある。
【0021】本発明の課題は、少ないメモリ容量で無駄
なエントリのない、高速検索可能なテーブルのデータ構
造を提供することである。
【0022】
【課題を解決するための手段】テーブルのデータ構造
は、検索キーに対応したデータを格納するテーブルのデ
ータ構造であって、該テーブルを、該検索キーを3つ以
上の任意のN個に分割した各分割検索キーに対応した種
類だけ分割した分割テーブルを備え、該分割テーブル
は、分割検索キーに対応した、データあるいは別の分割
テーブルを示すポインタもしくはインデックスを格納す
ることを特徴とする。
【0023】テーブル検索装置は、テーブルを検索して
所望の結果を取得するテーブル検索装置であって、検索
キーを3以上の任意の数に分割した分割検索キーを入力
する入力手段と、該テーブルを各分割検索キーに対応し
て分割したテーブルであって、分割検索キーに対応し
た、データあるいは別の分割テーブルを示すポインタも
しくはインデックスを格納する分割テーブルを格納する
分割テーブル格納手段と、該分割検索キーを使用して、
各分割テーブルを検索することによって最終結果を得る
結果取得手段とを備えることを特徴とする。
【0024】テーブル検索方法は、テーブルを検索して
所望の結果を取得するテーブル検索方法であって、
(a)検索キーを3以上の任意の数に分割した分割検索
キーを入力するステップと、(b)該テーブルを各分割
検索キーに対応して分割したテーブルであって、分割検
索キーに対応した、データあるいは別の分割テーブルを
示すポインタもしくはインデックスを格納する分割テー
ブルを格納するステップと、(c)該分割検索キーを使
用して、各分割テーブルを検索することによって最終結
果を得るステップとを備えることを特徴とする。
【0025】本発明によれば、テーブルを分割検索キー
に対応して分割した分割テーブルを格納するので、テー
ブルが小さくなり、格納するのに必要とするメモリ容量
を小さくすることが出来る。また、分割検索キーの大き
さを適当に調節することによって、分割テーブル内の無
駄な領域を減らすことができ、更にメモリ容量の節約に
つながる。
【0026】また、分割テーブルは大きさが小さく、検
索の際には、小さなテーブルを検索すればよいので、テ
ーブルの検索速度が速くなる。
【0027】
【発明の実施の形態】まず、経路表を前提に説明するた
めに、ルータの基本構成を説明する。ただし、本発明は
経路表に対する適用には限定されない。
【0028】図1は、ルータの基本的構成を示す図であ
る。ルータは、ルーティングテーブル11を有するプロ
セッサ10と、入力パケットを受信する入力部12と、
プロセッサ10によって制御され、入力パケットを適切
なパスに切り替え処理するスイッチ13と、スイッチ1
3から送られてきたパケットをネットワークへ出力する
出力部14とからなる。
【0029】プロセッサ10は、他のルータと通信を行
い、ルーティングテーブル11の更新を適宜行い、最適
なルーティングを実現する。この際、プロセッサ10
は、ルーティングテーブル11を高速に検索したり、更
新することが要求される。本実施形態においては、この
ルーティングテーブル11に適した、ルータの高速処理
を可能とするメモリ容量の少ないテーブルのデータ構造
を提供する。
【0030】図2は、本発明の第1の実施形態を説明す
る図である。本実施形態では、検索キー(インターネッ
トにおけるルータの経路表の場合には、パケットの宛先
アドレス)を3以上の複数フィールドに分割し、このフ
ィールド毎にテーブルを設ける。フィールド分割の仕方
は、各分割フィールド長を同じ大きさで分割してもよい
(A=B=C=・・・)し、必要に応じて異なる大きさ
で分割してもよい(A≠B≠C≠・・・)。本明細書に
おいては、この分割フィールドを分割検索キーと呼ぶ。
【0031】本実施形態においては、ステップ1におい
て、検索キーのAビットを用いて、一次検索表を検索す
る。一次検索表のエントリ数は、2A 個である。一次検
索表を検索した結果、出力経路のデータが得られた場合
には、検索は終了し、一次結果を検索結果として出力す
る。
【0032】一次検索表を検索した結果、二次検索表へ
のポインタが取得された場合には、検索キーのBビット
値を使用して、二次検索表を検索する。二次検索表のエ
ントリ数は、検索キーがBビットであることに対応し
て、L2 ・2B 個ある。ここで、L2 は、一次検索表か
らポインタで示されている検索表の数であり、ネットワ
ーク構成によって様々な値を取るものである。一次検索
表からポインタで二次検索表の検索を行う場合には、ポ
インタで示されたテーブルのみを調べればよいので、L
2 個のテーブルの内、1つのテーブルの検索を行うこと
になる。二次検索表の検索の結果、出力経路のデータが
得られた場合には、二次結果を最終検索結果として出力
する。
【0033】二次検索表の検索の結果、三次検索表への
ポインタが得られた場合には、検索キーのCビット値を
用いて、三次検索表の検索を行う。三次検索表の全エン
トリ数は、L3 ・2C 個である。ここで、L3 は、L2
と同様に、二次検索表のポインタで示される三次検索表
内のテーブルの数である。三次検索表の検索の結果、出
力経路についてデータが得られた場合には、三次結果を
最終結果として出力する。
【0034】このようにして、本実施形態においては、
複数あるいは、3以上に分割された検索キーを用いて、
それぞれに対応した検索表を順次検索することによっ
て、必要とする検索結果を得るようにする。このように
すれば、分割された検索キーはビット数が少ないので、
対応する検索表のエントリ数も小さくて済み、メモリの
無駄遣いを避けることが出来る。また、各検索表のエン
トリ数が小さくなることにより、データ更新を高速にす
ることが出来る。
【0035】図3は、4バイト(32ビット)の検索キ
ーを1バイト(8ビット)毎に分割した場合の論理的な
テーブルの構造の例を示す図である。図3の例では、一
つのテーブルは256(=28 )エントリからなる。テ
ーブルの各エントリは最終的に検索した結果(経路表の
場合は経路情報)であるデータあるいは他のテーブルを
示す識別番号ないしメモリ上のアドレス(ポインタ)で
構成する。従来方式ではテーブル内に検索対象となるキ
ーデータやマスクデータを格納しており、検索データと
これらのデータを比較することで検索を行うが、本実施
形態では、検索キーをメモリ上のオフセット値としてテ
ーブルを参照するので、比較機能も比較用のデータも必
要ない。なお、本実施形態の説明では説明を明確にする
ためにテーブルに値を明示している。
【0036】図4は、第1の実施形態における検索表検
索処理を示すフローチャートである。上記したように、
本説明では、検索キーは、32ビットで、8ビット毎に
分割して、それぞれの分割された検索キーを第一〜第四
部分として検索に使用する。
【0037】ひとつの具体例として、図3に示されるよ
うに、「1.0.2.255 」というキーを用いて検索する手順
を示す。まず、ステップS10において、キーの第一部
分を取得する。今の場合、第一部分は「1」である。次
に、ステップS11において、キーの第一部分「1」で
一次検索表(テーブル1)を検索する。そして、ステッ
プS12において、取得されたものがデータかポインタ
かを判断する。データである場合には、ステップ20に
進む。取得されたものがポインタの場合には、ステップ
S13に進む。
【0038】図3の場合、取得されたのはポインタであ
り、テーブル2を得る。次に、キーの第二部分「0」で
第二検索表(テーブル2)を検索する(ステップS1
3)。次に、ステップS14において、テーブル2を検
索した結果得られたのがデータかポインタかを判断し、
データである場合には、ステップS20に進み、ポイン
タである場合には、第三検索表(テーブル3)を得る。
【0039】そして、同様に、キーの第三部分「2」で
第三検索表(テーブル3)を検索し(ステップS1
5)、ステップS16において、取得されたのがデータ
かポインタかを判断する。取得されたのがデータである
場合には、ステップS20に進む。取得されたのがポイ
ンタである場合には、第四検索表(テーブル5)を得
る。次に、ステップS17において、キーの第四部分
「255」でテーブル5を検索する。そして、ステップ
S18において、データが得られたか否かを判断し、デ
ータが得られた場合には、ステップS20に進み、デー
タが得られなかった場合には、ステップS19において
デフォルト値を取得し、ステップS20に進む。ステッ
プS20では、最終的な検索結果(Data)を出力する。
【0040】上記例の場合、分割された全てのキーを用
いて検索しているが、テーブルのエントリ内容によって
は、もっと少ないテーブル検索で結果を得る場合もあ
る。例えば、「1.1.3.5 」というキーで検索すると、図
3に示されているとおり、テーブル2をキーの第二部分
「1」で検索した時点で検索結果(Data)を得るので、
検索は完了する。
【0041】上記第1の実施形態によれば、4バイトの
キーを1バイトの部分に分割して行う検索は256エン
トリのテーブルをたかだか4回アクセスすることで可能
となる。このようなテーブルは一般的なランダムアクセ
スメモリを用いて実現することができるので、4バイト
のIPv4アドレスの検索は、たかだか4回のメモリア
クセスで完了する。アクセスサイクルタイムが50ns
のメモリを用いると、検索に要する時間は200ns程
度となり、500万回/秒程度の性能を実現できる。
【0042】この数値だけを見ると従来技術に比べ性能
的に劣っているかに見える場合があるが、本実施形態に
おいては、経路表検索では必ずしも最後のフィールドま
で検索することなく結果を得る場合があること、ネット
ワーク通信のようにデータがオクテット単位で与えられ
るような場合では、全ての検索データの到着を待たずに
検索を開始できるため、伝送時間と検索時間をオーバラ
ップできるので、全体的な処理遅延の短縮化を実現でき
る。
【0043】上記実施形態においては、テーブルの大き
さを小さくできる点に特徴がある。詳細は後に説明する
が、キーをより小さな部分に分割したり、一定の大きさ
でない部分に分割することで、Tiny Tera方式の一次検
索表にあるような無駄な領域を削減できる。また、基本
方式ではテーブル内容が同じテーブルが複数の場所で使
われている場合、物理的に一つのテーブルを重複利用で
きる。
【0044】図5は、1つのテーブルを重複利用する場
合の概念を示す図である。図3の場合には、キーの第二
部分を用いてテーブル2を検索する場合、第二部分が
「0」の場合には、テーブル3を示し、第二部分が
「2」の場合には、テーブル4を示しており、テーブル
3の検索結果がテーブル5を示している。従って、最終
的な結果を得るテーブルが検索キーによってテーブル4
であったり、テーブル5であったりする。ところが、テ
ーブル4とテーブル5のエントリが同じ場合には、それ
ぞれ同じエントリを持つテーブルを別々に持つことはメ
モリ容量の無駄遣いとなる。従って、そのような場合に
は、図5に示すように、テーブル2のキー「2」が示す
テーブルとテーブル3のキー「2」が示すテーブルとを
共にテーブル4としておくことにより、物理的にテーブ
ル4を共用することが出来る。これによれば、メモリ容
量を節約することが出来、検索キーのビット数が大きく
なっても小さなメモリで実現が可能となる。
【0045】Tiny Tera方式が検索キーを最小限の2分
割にとどめるためテーブルを大きくしているのに対し、
本実施形態では検索キーを細分化することでテーブルを
小さくし、テーブルの作成更新の手間を小さくしてい
る。極端な場合、検索キーの分割を1ビット単位にする
とテーブルは2エントリの大きさとなり、IPv4アド
レスの検索に最高32回のメモリアクセスを必要とす
る。これにより最大検索時間は8ビット分割の場合の8
倍となるが、無駄なテーブルエントリは無くなる。
【0046】図6は、本発明の第1の実施形態の問題点
を説明する図である。第1の実施形態では検索キーを細
分化する事でテーブルを小さくするが、例えば、8ビッ
トに分割した場合でも無駄な領域は存在する。これをI
Pv4アドレスを1バイト部分に分割して処理する場合
を想定して説明する。
【0047】図6の例では「10.0.x(第三部分のテーブ
ル)」と「10.0.0.x(第四部分のテーブル)」を示して
いる。「10.0.x」のテーブルで、例えば0番目のエント
リは「10.0.0.x」のテーブルを示し、2番目のエントリ
は「10.0.2.0/24 」への経路を示す。「10.0.2.0/24 」
のネットワーク部の長さは、検索のためにキーを分割し
た部分の境界(検索キー(宛先アドレス)の先頭から2
4ビット目)と合致するので「10.0.2.x」のテーブルを
必要としない。
【0048】一方、「10.0.0.x」は「10.0.0.0/25 」と
「10.0.0.128/25 」の二つのネットワークからなり、そ
れぞれに経路を持つので、「10.0.0.x」のテーブルが必
要となる。「10.0.0.x」のテーブルは0番目から127
番目のエントリが「10.0.0.0/25 」への経路を格納し
(キーの第四番目の4ビットの内、最上位ビット(検索
キーの先頭から25ビット目)が「0」となってい
る)、128番目から255番目のエントリが「10.0.
0.128/25 」への経路を格納する(検索キーの第四番目
の4ビットの内、最上位ビットあるいは検索キー(宛先
アドレス)の先頭から25ビット目が「1」となってい
る)。
【0049】この例から明らかなように、第1の実施形
態においても検索キーを分割した部分の境界と実際のテ
ーブルの内容によってテーブルに同じ内容のデータを繰
り返し格納する必要がある。この場合、本来一エントリ
であるべき「10.0.0.0/25 」の経路情報が128エント
リ、すなわち、128倍の領域を必要としている。も
し、「10.0.0.0/25 」の経路が変わると、「10.0.0.x」
のテーブルでは0番目から127番目の128エントリ
に全く同じ内容を設定しなければならないので経路情報
を変更するための処理時間が128倍になる。経路情報
の変更が頻繁におこる場合、これは大きな問題となる。
【0050】なお、第1の実施形態においてテーブルの
構成上、このような問題が発生するのは、検索のために
分割したテーブル検索用のキーのビット数と、応用上要
求されるテーブルの処理単位(インターネットのルーテ
ィングで言えば、宛先アドレスのネットワーク部の単位
ビット数)が異なる場合である。例えば、経路の管理が
8ビット単位で行われるならば、このような問題は発生
しない。しかし、インターネットプロトコルにおいて
は、8ビット単位でネットワーク部を利用するような規
則はない。
【0051】図7は、図6で説明した問題点を解決する
ための一方法を説明する図である。第1の実施形態にお
いて、テーブルの内容を効率的に変更する一つの手段
は、最終的な値を格納するテーブル(経路情報テーブ
ル)を設け、経路情報テーブルの位置情報を検索テーブ
ルに格納することである。ことようなテーブルのデータ
構造をとれば経路を更新する場合、経路情報テーブルの
該当する値を一つ変更すればよい。すなわち、図7に示
されるように、「10.0.x」のテーブルや「10.0.0.x」の
テーブルには、経路情報を書き込まず、経路情報テーブ
ルの必要な経路情報が登録されているエントリを示すポ
インタあるいはインデックスを格納するようにする。図
7の例においては、「10.0.x」のテーブルにおいて、2
番目のエントリには、経路情報テーブルのインデックス
(経路Index2)が格納され、これを使って、経路情報テ
ーブルを参照すると、「10.0.2.0/24 」への経路情報が
取得できる。同様に、255番目のエントリには、経路
Index255が格納され、経路情報テーブルを参照すると
「10.0.255.0/24 」への経路情報が取得できる。
【0052】また、「10.0.0.x」のテーブルにおいて
は、0番目から127番目のエントリには、経路Index0
が格納され、経路情報テーブルの「10.0.0.0/25 」への
経路情報を示している。同様に、128番目から255
番目のエントリには、経路Index1が格納され、経理情報
テーブルの「10.0.0.128/25 」への経路情報を示してい
る。つまり、経路情報テーブルには、1つの経路には1
つのエントリしか存在しないので、経路の更新も1回で
済ませることが出来、高速に、かつ、確実に経路情報の
更新を行うことが出来る。
【0053】図8は、図6で説明した問題点を解決する
ための別の方法を説明する図である。図8の方法におい
ては、同じ値を持つテーブルエントリの一つのエントリ
に値を設定し、他のエントリには値を設定したエントリ
の位置を示すポインタなどを設定する。
【0054】「10.0.0.128」の検索では「10.0.0.x」の
テーブルの検索において、「10.0.0.128/25 」への経路
を得るので検索は終了する。「10.0.0.129」の検索では
「テーブル内絶対インデックス128」を得るので、再
度、「10.0.0.x」のテーブルの128番目のエントリを
参照し、値を得る。図7の方法と比べて「経路情報テー
ブル」に相当するテーブルが不要で、「10.0.0.128」の
検索では余分なメモリアクセス回数がないことが長所で
ある。「テーブル内絶対インデックス」は任意のテーブ
ル内のエントリを指定できるので、別のテーブル内のエ
ントリを示しても良い。
【0055】図9は、図6で説明した問題点を解決する
ための更に別の方法を説明する図である。図8の「テー
ブル内絶対インデックス」方式の変形として考えられる
のは、「テーブル内絶対インデックス」の代わりにテー
ブル内のみで有効な「テーブル内相対インデックス」を
用いることである。相対インデックスの場合、指し示す
エントリは同じテーブルの中に限る。
【0056】例えば、「10.0.0.x」のテーブルにおい
て、1番目のエントリには、テーブル内相対Index-1 が
格納されている。これは、自分のエントリより「1」だ
け小さい番号のエントリを指し示している。従って、1
番目のエントリのテーブル内インデックスは、0番目の
エントリを示している。同様に、2番目のエントリのテ
ーブル内インデックスは、自分より2つ上のエントリを
示しているので、やはり、0番目のエントリを示してい
る。また、127番目のエントリは、自分より127個
上のエントリを指しているので、やはり、0番目のエン
トリを指している。
【0057】同様に、129番目から255番目のエン
トリのテーブル内相対インデックスは、全て、128番
目のエントリを示している。図10は、本発明の実施形
態におけるテーブルのデータ構造の別の構成例を示した
図である。
【0058】図2の実施形態で使用されるテーブルで
は、検索キーをあらかじめ決定した長さである8ビット
毎に分割し、これら分割したキー毎にテーブルを作成し
たが、分割の長さを可変にすることにより、更に効率の
良い方式が得られる。この方式ではテーブルに次に参照
するテーブルのインデックスの大きさを示すフィールド
を設け、このフィールドの値に従って検索データから利
用するインデックス値を決定する。例えば、「10.0.0.
x」のテーブルは「10.0.0.0/25 」と「10.0.0.128/25
」の2エントリしかないので、インデックス値は
「1」となる。テーブルエントリが最終データを含む場
合はインデックス値は0となる。すなわち、この場合、
「10.0.0.x」のテーブルは、25番目ビットから32番
目ビットまでの4ビットをキーとしないで、25番目ビ
ットのみを検索キーとしている。この場合、検索キー
「10.0.0.x」の「x」の値が、0〜127の時は、25
番目のビットが「0」であり、「x」の値が128〜2
55の場合には、25番目のビットが「1」であるの
で、25番目のビットのみをキーとした場合には、テー
ブルのエントリは2つのみとなるのである。
【0059】図11は、本発明の実施形態におけるテー
ブルのデータ構造の更なる構成例を示した図である。イ
ンターネットにおけるネットワークの利用方法は自由で
あるが、管理されたネットワークの構成は大抵の場合組
織的であって、例えば「10.0.0.0/16 」のネットワーク
と「10.1.0.0/16 」のネットワークの下位ネットワーク
の使い方が全く同じになることがあり得る。このような
場合、経路インデックステーブルを複数設けておき、経
路インデックステーブルが決定できる段階で、これを指
定するようにし、以降の検索テーブルではこの経路イン
デックステーブル内部での相対的な位置(相対インデッ
クス)及びテーブルポインタのみを使用して検索テーブ
ルを構成する。このようにすれば、全ての下位ネットワ
ークを一通りのテーブルで表すことができるのでテーブ
ル用のメモリ領域を削減できる。
【0060】例えば、図11の例では、「10.0.x」のテ
ーブルの0番目から255番目のエントリでは、次に使
用するテーブルは、それぞれ、「10.0.0.x」、「10.0.
1.x」、「10.0.2.x」・・・「10.0.255」となっている
が、これらのアドレスで示される下位ネットワークの構
成が共通している(最終的な経路情報は異なっても良い
が、ネットワークの接続の仕方が共通している)場合に
は、同じテーブルを索引する事によって、必要な経路情
報を得ることが出来る。すなわち、図11の場合、0番
目から255番目のエントリでは、いずれも「10.0.0.
x」のテーブルを示しており、更に、使用する経路情報
テーブルを指し示している。「10.0.0.x」のテーブルに
おいては、各エントリには、経路情報テーブルのどのエ
ントリを参照するかを示す相対インデックスが示されて
いる。「10.0.x」のテーブルの0番目のエントリでは、
経路情報0を示しているので、経路情報0テーブルが参
照され、また、「10.0.0.x」のテーブルを参照すること
により、「10.0.0.0」への経路は、相対インデックス0
で示されているので、経路情報0テーブルの0番目のエ
ントリを参照することにより、「10.0.0.0/24 」への経
路情報が得られる。
【0061】この例では最悪の場合、経路情報テーブル
が256個必要かにみえるが、現実の経路検索において
経路情報テーブルの大きさは実際に存在する経路以上に
はならないため実質的には、経路情報テーブルも共用可
能である。
【0062】更に、本発明の上記実施形態では、これま
でに述べた種々の方法を用いてテーブルの内容を同じ内
容のものにすることが出来、この結果全く同じ構成、相
互リンクのテーブルを物理的に一個のテーブルで実現で
きる。例えば、図11の「経路情報テーブル指定」の例
では256個のテーブルを一つのテーブル「10.0.0.xの
テーブル」で共用している。
【0063】本発明の上記実施形態のテーブル及びテー
ブル間の相互リンクは数学的に根付き有向無閉路グラフ
(rooted directed acyclic graph)で表される。こ
のようなグラフの同型な部分グラフを探すアルゴリズム
は公知技術である(文献12)。しかし、このようなテ
ーブルの共用は本実施形態で提供している様々な方式で
テーブルの内容を均一化することによって可能となる。
【0064】本発明の実施形態においては、検索は常に
最初のテーブル(ルート)から開始し、次のテーブルへ
のポインタを辿ることによって検索を行う。一方、テー
ブルの変更は検索と非同期に発生するため、検索途中で
テーブル内容の変更があった場合、検索結果が不正なも
のとなる可能性がある。
【0065】このような問題を解決するために、テーブ
ルの変更は以下の手順で行う。図12は、テーブルの変
更処理を示すフローチャートである。テーブルの変更処
理の概略は以下の通りである。・検索に用いられるテー
ブル以外に新たなテーブル(あるいは複数のテーブルと
相互リンク)を作成する。・新しいテーブルのルートへ
のポインタを検索に用いられているテーブルの必要な部
分のポインタに置き換えるこの方法によれば、巨大なテ
ーブルを一回のポインタ書き換えで一貫性をもって入れ
替えることができるため、このポインタ書き換えの間だ
け検索処理を停止したり、検索処理を続けながら書き換
えても変更部分に関する一貫性は失われないという長所
がある。
【0066】まず、ステップS30において、登録すべ
き経路情報を取得する。そして、ステップS31におい
て、既存のテーブルを検索し、既に登録すべき経路情報
が登録されているか否かを判断する。ステップS31の
判断がYESの場合には、処理を終了する。ステップS
31の判断がNOの場合には、ステップS32におい
て、登録すべき経路情報を新しいテーブルを作成して登
録する、あるいは複数のテーブルとの相互リンクを作成
して、登録すべき経路情報を登録する。次に、ステップ
S33において、新たなテーブルに登録された経路情報
あるいは、複数のテーブルとの相互リンクによって示さ
れる、登録すべき経路情報へ至るためのポインタを既存
のテーブルの内、必要なテーブルに登録する。ステップ
S34では、登録すべき全ての経路情報を登録したか否
かが判断され、まだ登録すべき経路情報が残っている場
合には、ステップS30に戻って処理を繰り返し、全て
の経路情報を登録し終わった場合には、処理を終了す
る。以上によって、テーブルの変更処理が終了する。
【0067】なお、新たに経路情報検索用テーブルを作
成する場合においても、上記処理の内、既存のテーブル
がないだけで、ほぼ同じ処理によって作成することが出
来る。
【0068】図13は、本発明の第2の実施形態を説明
する図である。図2の実施形態では、分割フィールドを
前方から逐次検索するが、分割フィールド毎にルートテ
ーブルを設けておき、分割フィールド毎の検索を同時に
行う方式も可能である。前方一致検索においては前方の
フィールドの検索結果によって後方フィールドの結果が
影響を受けるが、後方フィールドに対応するテーブルが
共用可能になっている場合、「経路情報テーブル指定」
と同じ考え方を用いて前方フィールドに対応するテーブ
ルの検索結果に応じて、後方フィールドの検索結果を変
更することができる。
【0069】すなわち、図11の場合の例で説明すれ
ば、「10.0.0.x」のテーブルが、4番目の検索キーに共
通に保持されているので、3番目の検索キーによる「1
0.0.x」のテーブルの検索と4番目の検索キーによる「1
0.0.0.x」のテーブルの検索を同時に行うことが出来
る。4番目の検索キーによる検索によって、相対Index0
が取得された場合、同時に、3番目の検索キーによる検
索によって、経路情報テーブル0が選択されれば、3番
目の検索キーと4番目の検索キーによる検索を同時に行
うことによって、経路情報テーブル0の0番目のエント
リを取得すればよいことが分かる。このようにして、後
方フィールドの検索キーのテーブルが図11の4番目の
検索キーに対応するテーブルのように、前方フィールド
の検索キーの検索結果によらず、1つのテーブルで共用
できている場合には、共用できているテーブルを検索す
るための検索キーによる検索と、その前方フィールドの
検索キーによる検索を同時に行うことが出来る。従っ
て、検索キーを4つのフィールドに分割した場合、2〜
4番目の検索キーに対応するテーブルが全て共用されて
いれば、1番目から4番目の検索キーによる検索を同時
に行うことが出来る。
【0070】このとき、図13に示されているように、
1番目の検索キーであるAビットキーに対する第一次検
索表はエントリ数が2A 個であり、2番目の検索キーで
あるBビットキーに対する第二次検索表のエントリ数は
B 個となり、3番目の検索キーであるCビットキーに
対する第三次検索表のエントリ数は2C 個となる。これ
らの検索表の検索結果を合成回路に入力すると、合成回
路に格納されている経路情報テーブルから、経路情報が
最終結果として出力される。
【0071】この方式によれば、テーブルを検索する時
間がフィールド数に関わらず1回になるので、特にIP
v6アドレスのように長い検索データで検索を行う場
合、逐次検索に比べて検索時間を削減可能となる。ただ
し、この方式が意味を持つのは後方フィールドに対する
テーブルが一つのパターンに共用される場合に限られ
る。さもなければ結果を合成した結果は検索データと同
じ長さとなり、これは検索データ全体のテーブルを設け
るのと同じ結果になるためである。このような場合は逐
次検索方式を用いる。
【0072】図14は、本発明の実施形態に記載したテ
ーブルを用いた検索処理をプログラムで実現するために
必要とされる装置のハードウェア環境の一例を示す図で
ある。
【0073】CPU21は、バス20を介して、ROM
22に接続される。ROM22には、BIOSなどの基
本的プログラムが格納され、装置の起動と同時にCPU
21がバス20を介して各種入出力処理を行えるように
する。本実施形態を実現する当該プログラムは、このR
OM22に格納し、CPU21に実行させることが可能
である。
【0074】また、CPU21は、一般に、ハードディ
スクなどからなる記憶装置27に格納される当該プログ
ラムをRAM23に展開し、実行する。あるいは、当該
プログラムを、CD−ROMやフロッピー(登録商標)
ディスク、DVD、MOなどの可搬記録媒体29に格納
しておき、記録媒体読み取り装置28から読みとりなが
ら、CPU21が実行するようにしても良い。あるい
は、可搬記録媒体29に格納される当該プログラムを記
憶装置27にインストールして、CPU21が実行する
ようにしても良い。
【0075】入出力装置30は、CPU21へのユーザ
からの命令の入力や、CPU21の処理結果をユーザに
提示するために使用され、ディスプレイ、マウス、キー
ボードなどからなる。
【0076】通信インターフェース24は、ネットワー
ク25を介して情報提供者26と通信を行う。当該プロ
グラムは、情報提供者26が有しており、これをダウン
ロードして、記憶装置27にインストールするなどの方
法でCPU21が実行可能である。あるいは、ネットワ
ーク25がLANなどである場合には、ネットワーク環
境のもとで、当該プログラムを実行することが可能であ
る。
【0077】本実施形態のテーブルは、ROM22に格
納することも可能であるが、ROM22に格納すると書
き換え不可能となるので、好ましくは、RAM23に格
納するのが好ましいが、記憶装置27、可搬記録媒体2
9、あるいは、情報提供者26のデータベースなどに格
納してもよい。
【0078】また、本発明の上記実施形態は、プログラ
ムで実現することも可能であるが、テーブルの検索処理
のロジックなどをFPGAやASICなどのハードウェ
アで構成してもよく、この場合、プログラムで実現する
よりも処理速度が速くなることが期待される。このよう
に、本発明の実施形態においては、本発明を利用する者
の必要とする装置仕様の内容に従って、ソフトウェアに
よってもハードウェアによっても実現が可能であり、本
発明は、ハードウェアだけ、あるいは、ソフトウェアだ
けに限定されるものではない。
【0079】なお、上記実施形態では、インターネット
における経路表について、主に説明したが、本実施形態
の方法は、通常のデータベース検索処理にも応用が可能
であり、その他の応用の可能性についても当業者によれ
ば、容易に理解されるであろう。
【0080】参考文献ツリーなど、キーデータ、マスク
などを含むデータ構造をテーブルとし、検索する方式 1)IPアドレス検索テーブル作成方法、豊島(日本電
信電話株式会社)、特願平9−262535、199
7.9.26 2)最長一致検索方法及び装置、武藤他(NTTコミュ
ニケーションウェア株式会社)、特願平8−33866
6、1996.12.18 3)ルーティングテーブル検索方法、中村他(日本電信
電話株式会社)、特願平7−264556、1995.
10.12 4)ルーティングエントリ検索システム及びその検索方
法並びにその制御プログラムを記録した記録媒体、矢田
(日本電気エンジニアリング株式会社)、特願平10−
190859、1998.7.6 5)ルーティングテーブル検索装置、藤原他(日本電信
電話株式会社)、特願平9−241537、1997.
9.5 6)データ検索回路、宮崎他(日本電信電話株式会
社)、特願平9−41441、1997.2.12CA
Mを利用する方式 7)ルータ及び最長一致検索装置、村瀬他(日本電気株
式会社)、特願平10−61110、1998.3.1
2 8)最長一致検索装置、米田他(川崎製鉄株式会社)、
特願平10−84029、1998.3.30比較的新
しい経路検索方式の紹介(Tiny Tera方式の紹介を含
む) 9)播口、Network Technology 11 、 UNIX Magazi
ne 1998.10 10)播口、Network Technology 12 、 UNIX Maga
zine 1998.11Tiny Tera方式 11)Nick McKeown他、複数文献有り、[online]、
平成12年4月4日検索、スタンフォード大学、インタ
ーネット<URL:http://tiny-tera.stanford.edu/ti
ny-tera >グラフ関係アルゴリズム 12)Aho 、Hopcroft、Ullman、The Design and An
alysis of ComputerAlgorithms、Addison-Wesley、1
975、(特に、第5章) <付記> 1.検索キーに対応したデータを格納するテーブルのデ
ータ構造であって、該テーブルを、該検索キーを3つ以
上の任意のN個に分割した各分割検索キーに対応した種
類だけ分割した分割テーブルを備え、該分割テーブル
は、分割検索キーに対応した、データあるいは別の分割
テーブルを示すポインタもしくはインデックスを格納す
ることを特徴とするテーブルのデータ構造。(1) 2.前記分割テーブルの内、同じ内容を有するものは、
ただ一つだけ設けられることを特徴とする付記1に記載
のテーブルのデータ構造。(2) 3.前記分割テーブルは、最終結果を格納する結果テー
ブルを含み、該分割テーブルは、該結果テーブルのエン
トリあるいは別の分割テーブルを示すポインタもしくは
インデックスを格納することを特徴とする付記1に記載
のテーブルのデータ構造。(3) 4.分割テーブルの前記ポインタあるいはインデックス
は、同じ分割テーブル内の特定のエントリを示すことを
特徴とする付記3に記載のテーブルのデータ構造。
(4) 5.前記分割テーブルは、登録されているポインタで示
される他の分割テーブルの大きさを示す値を該ポインタ
に対応付けて格納することを特徴とする付記1に記載の
テーブルのデータ構造。(5) 6.前記分割テーブルは、最終結果を格納する少なくと
も一つの結果テーブルを含み、該分割テーブルは、該少
なくとも一つの結果テーブルを指定する情報と、該結果
テーブル内のエントリを示す情報とを備えることを特徴
とする付記1に記載のテーブルのデータ構造。(6) 7.テーブルを検索して所望の結果を取得するテーブル
検索装置であって、検索キーを3以上の任意の数に分割
した分割検索キーを入力する入力手段と、該テーブルを
各分割検索キーに対応して分割したテーブルであって、
分割検索キーに対応した、データあるいは別の分割テー
ブルを示すポインタもしくはインデックスを格納する分
割テーブルを格納する分割テーブル格納手段と、該分割
検索キーを使用して、各分割テーブルを検索することに
よって最終結果を得る結果取得手段と、を備えることを
特徴とするテーブル検索装置。(7) 8.前記分割テーブルの内、同じ内容を有するものは、
ただ一つだけ設けられることを特徴とする付記7に記載
のテーブル検索装置。 9.前記分割テーブルは、最終結果を格納する結果テー
ブルを含み、該分割テーブルは、該結果テーブルのエン
トリあるいは別の分割テーブルを示すポインタもしくは
インデックスを格納することを特徴とする付記7に記載
のテーブル検索装置。(8) 10.分割テーブル内の前記ポインタあるいはインデッ
クスは、同じ分割テーブル内の特定のエントリを示すこ
とを特徴とする付記9に記載のテーブル検索装置。
(9) 11.前記分割テーブルは、登録されているポインタで
示される他の分割テーブルの大きさを示す値を該ポイン
タに対応付けて格納することを特徴とする付記7に記載
のテーブル検索装置。(10) 12.前記分割テーブルは、最終結果を格納する少なく
とも一つの結果テーブルを含み、該分割テーブルは、該
少なくとも一つの結果テーブルを指定する情報と、該結
果テーブル内のエントリを示す情報とを備えることを特
徴とする付記7に記載のテーブル検索装置。(11) 13.前記各分割検索キーのそれぞれに対応する分割テ
ーブルの検索を並行して行うことを特徴とする付記7に
記載のテーブル検索装置。(12) 14.テーブルを検索して所望の結果を取得するテーブ
ル検索方法であって、(a)検索キーを3以上の任意の
数に分割した分割検索キーを入力するステップと、
(b)該テーブルを各分割検索キーに対応して分割した
テーブルであって、分割検索キーに対応した、データあ
るいは別の分割テーブルを示すポインタもしくはインデ
ックスを格納する分割テーブルを格納するステップと、
(c)該分割検索キーを使用して、各分割テーブルを検
索することによって最終結果を得るステップと、を備え
ることを特徴とするテーブル検索方法。(13) 15.前記分割テーブルの内、同じ内容を有するもの
は、ただ一つだけ設けられることを特徴とする付記14
に記載のテーブル検索方法。 16.前記分割テーブルは、最終結果を格納する結果テ
ーブルを含み、該分割テーブルは、該結果テーブルのエ
ントリあるいは別の分割テーブルを示すポインタもしく
はインデックスを格納することを特徴とする付記14に
記載のテーブル検索方法。(14) 17.分割テーブル内の前記ポインタあるいはインデッ
クスは、同じ分割テーブル内の特定のエントリを示すこ
とを特徴とする付記16に記載のテーブル検索方法。
(15) 18.前記分割テーブルは、登録されているポインタで
示される他の分割テーブルの大きさを示す値を該ポイン
タに対応付けて格納することを特徴とする付記14に記
載のテーブル検索方法。(16) 19.前記分割テーブルは、最終結果を格納する少なく
とも一つの結果テーブルを含み、該分割テーブルは、該
少なくとも一つの結果テーブルを指定する情報と、該結
果テーブル内のエントリを示す情報とを備えることを特
徴とする付記14に記載のテーブル検索方法。(17) 20.前記各分割検索キーのそれぞれに対応する分割テ
ーブルの検索を並行して行うことを特徴とする請求項1
4に記載のテーブル検索方法。(18) 21.テーブルを検索して所望の結果を取得するテーブ
ル検索方法をコンピュータに実行させるプログラムを格
納した記録媒体であって、該テーブル検索方法は、
(a)検索キーを3以上の任意の数に分割した分割検索
キーを入力するステップと、(b)該テーブルを各分割
検索キーに対応して分割したテーブルであって、分割検
索キーに対応した、データあるいは別の分割テーブルを
示すポインタもしくはインデックスを格納する分割テー
ブルを格納するステップと、(c)該分割検索キーを使
用して、各分割テーブルを検索することによって最終結
果を得るステップと、を備えることを特徴とする記録媒
体。(19) 22.前記分割テーブルの内、同じ内容を有するもの
は、ただ一つだけ設けられることを特徴とする付記21
に記載の記録媒体。 23.前記分割テーブルは、最終結果を格納する結果テ
ーブルを含み、該分割テーブルは、該結果テーブルのエ
ントリあるいは別の分割テーブルを示すポインタもしく
はインデックスを格納することを特徴とする付記21に
記載の記録媒体。 24.分割テーブル内の前記ポインタあるいはインデッ
クスは、同じ分割テーブル内の特定のエントリを示すこ
とを特徴とする付記23に記載の記録媒体。 25.前記分割テーブルは、登録されているポインタで
示される他の分割テーブルの大きさを示す値を該ポイン
タに対応付けて格納することを特徴とする付記21に記
載の記録媒体。 26.前記分割テーブルは、最終結果を格納する少なく
とも一つの結果テーブルを含み、該分割テーブルは、該
少なくとも一つの結果テーブルを指定する情報と、該結
果テーブル内のエントリを示す情報とを備えることを特
徴とする付記21に記載の記録媒体。 27.前記各分割検索キーのそれぞれに対応する分割テ
ーブルの検索を並行して行うことを特徴とする請求項2
1に記載の記録媒体。
【0081】
【発明の効果】本発明によれば、メモリ容量が少なく、
無駄なエントリを削減し、高速な検索が可能なテーブル
のデータ構造とその検索装置、方法を提供することが出
来る。
【図面の簡単な説明】
【図1】ルータの基本的構成を示す図である。
【図2】本発明の第1の実施形態を説明する図である。
【図3】4バイト(32ビット)の検索キーを1バイト
(8ビット)毎に分割した場合の論理的なテーブルの構
造の例を示す図である。
【図4】第1の実施形態における検索表検索処理を示す
フローチャートである。
【図5】1つのテーブルを重複利用する場合の概念を示
す図である。
【図6】本発明の第1の実施形態の問題点を説明する図
である。
【図7】図6で説明した問題点を解決するための一方法
を説明する図である。
【図8】図6で説明した問題点を解決するための別の方
法を説明する図である。
【図9】図6で説明した問題点を解決するための更に別
の方法を説明する図である。
【図10】本発明の実施形態におけるテーブルのデータ
構造の別の構成例を示した図である。
【図11】本発明の実施形態におけるテーブルのデータ
構造の更なる構成例を示した図である。
【図12】テーブルの変更処理を示すフローチャートで
ある。
【図13】本発明の第2の実施形態を説明する図であ
る。
【図14】本発明の実施形態に記載したテーブルを用い
た検索処理をプログラムで実現するために必要とされる
装置のハードウェア環境の一例を示す図である。
【図15】経路表の一例を示した図である。
【図16】Tiny Tera方式を説明する図である。
【図17】ルータのルーティング処理の概念を示す図で
ある。
【図18】Tiny Tera方式における経路表の概念を示す
図である。
【符号の説明】
10 プロセッサ 11 ルーティングテーブル 12 入力部 13 スイッチ 14 出力部

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】検索キーに対応したデータを格納するデー
    タ構造のテーブルを有する情報装置であって、 該テーブルを、該検索キーを3つ以上の任意のN個に分
    割した各分割検索キーに対応した種類だけ分割した分割
    テーブルを備え、 該分割テーブルは、分割検索キーに対応した、データあ
    るいは別の分割テーブルを示すポインタもしくはインデ
    ックスを格納することを特徴とするデータ構造のテーブ
    ルを有する情報装置。
  2. 【請求項2】前記分割テーブルの内、同じ内容を有する
    ものは、ただ一つだけ設けられることを特徴とする請求
    項1に記載のデータ構造のテーブルを有する情報装置。
  3. 【請求項3】前記分割テーブルは、最終結果を格納する
    結果テーブルを含み、 該分割テーブルは、該結果テーブルのエントリあるいは
    別の分割テーブルを示すポインタもしくはインデックス
    を格納することを特徴とする請求項1に記載のデータ構
    造のテーブルを有する情報装置。
  4. 【請求項4】分割テーブルの前記ポインタあるいはイン
    デックスは、同じ分割テーブル内の特定のエントリを示
    すことを特徴とする請求項3に記載のデータ構造のテー
    ブルを有する情報装置。
  5. 【請求項5】前記分割テーブルは、登録されているポイ
    ンタで示される他の分割テーブルの大きさを示す値を該
    ポインタに対応付けて格納することを特徴とする請求項
    1に記載のデータ構造のテーブルを有する情報装置。
  6. 【請求項6】前記分割テーブルは、最終結果を格納する
    少なくとも一つの結果テーブルを含み、 該分割テーブルは、該少なくとも一つの結果テーブルを
    指定する情報と、該結果テーブル内のエントリを示す情
    報とを備えることを特徴とする請求項1に記載のデータ
    構造のテーブルを有する情報装置。
  7. 【請求項7】テーブルを検索して所望の結果を取得する
    テーブル検索装置であって、 検索キーを3以上の任意の数に分割した分割検索キーを
    入力する入力手段と、該テーブルを各分割検索キーに対
    応して分割したテーブルであって、分割検索キーに対応
    した、データあるいは別の分割テーブルを示すポインタ
    もしくはインデックスを格納する分割テーブルを格納す
    る分割テーブル格納手段と、 該分割検索キーを使用して、各分割テーブルを検索する
    ことによって最終結果を得る結果取得手段と、を備える
    ことを特徴とするテーブル検索装置。
  8. 【請求項8】前記分割テーブルは、最終結果を格納する
    結果テーブルを含み、 該分割テーブルは、該結果テーブルのエントリあるいは
    別の分割テーブルを示すポインタもしくはインデックス
    を格納することを特徴とする請求項7に記載のテーブル
    検索装置。
  9. 【請求項9】分割テーブル内の前記ポインタあるいはイ
    ンデックスは、同じ分割テーブル内の特定のエントリを
    示すことを特徴とする請求項8に記載のテーブル検索装
    置。
  10. 【請求項10】前記分割テーブルは、登録されているポ
    インタで示される他の分割テーブルの大きさを示す値を
    該ポインタに対応付けて格納することを特徴とする請求
    項7に記載のテーブル検索装置。
  11. 【請求項11】前記分割テーブルは、最終結果を格納す
    る少なくとも一つの結果テーブルを含み、 該分割テーブルは、該少なくとも一つの結果テーブルを
    指定する情報と、該結果テーブル内のエントリを示す情
    報とを備えることを特徴とする請求項7に記載のテーブ
    ル検索装置。
  12. 【請求項12】前記各分割検索キーのそれぞれに対応す
    る分割テーブルの検索を並行して行うことを特徴とする
    請求項7に記載のテーブル検索装置。
  13. 【請求項13】テーブルを検索して所望の結果を取得す
    るテーブル検索方法であって、 (a)検索キーを3以上の任意の数に分割した分割検索
    キーを入力するステップと、 (b)該テーブルを各分割検索キーに対応して分割した
    テーブルであって、分割検索キーに対応した、データあ
    るいは別の分割テーブルを示すポインタもしくはインデ
    ックスを格納する分割テーブルを格納するステップと、 (c)該分割検索キーを使用して、各分割テーブルを検
    索することによって最終結果を得るステップと、を備え
    ることを特徴とするテーブル検索方法。
  14. 【請求項14】前記分割テーブルは、最終結果を格納す
    る結果テーブルを含み、 該分割テーブルは、該結果テーブルのエントリあるいは
    別の分割テーブルを示すポインタもしくはインデックス
    を格納することを特徴とする請求項13に記載のテーブ
    ル検索方法。
  15. 【請求項15】分割テーブル内の前記ポインタあるいは
    インデックスは、同じ分割テーブル内の特定のエントリ
    を示すことを特徴とする請求項14に記載のテーブル検
    索方法。
  16. 【請求項16】前記分割テーブルは、登録されているポ
    インタで示される他の分割テーブルの大きさを示す値を
    該ポインタに対応付けて格納することを特徴とする請求
    項13に記載のテーブル検索方法。
  17. 【請求項17】前記分割テーブルは、最終結果を格納す
    る少なくとも一つの結果テーブルを含み、 該分割テーブルは、該少なくとも一つの結果テーブルを
    指定する情報と、該結果テーブル内のエントリを示す情
    報とを備えることを特徴とする請求項13に記載のテー
    ブル検索方法。
  18. 【請求項18】前記各分割検索キーのそれぞれに対応す
    る分割テーブルの検索を並行して行うことを特徴とする
    請求項13に記載のテーブル検索方法。
  19. 【請求項19】テーブルを検索して所望の結果を取得す
    るテーブル検索方法をコンピュータに実行させるプログ
    ラムを格納した記録媒体であって、該テーブル検索方法
    は、 (a)検索キーを3以上の任意の数に分割した分割検索
    キーを入力するステップと、 (b)該テーブルを各分割検索キーに対応して分割した
    テーブルであって、分割検索キーに対応した、データあ
    るいは別の分割テーブルを示すポインタもしくはインデ
    ックスを格納する分割テーブルを格納するステップと、 (c)該分割検索キーを使用して、各分割テーブルを検
    索することによって最終結果を得るステップと、を備え
    ることを特徴とする記録媒体。
JP2000142102A 2000-05-15 2000-05-15 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体 Pending JP2001326679A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2000142102A JP2001326679A (ja) 2000-05-15 2000-05-15 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体
US09/783,559 US6839703B2 (en) 2000-05-15 2001-02-15 Information apparatus, table retrieval apparatus, table retrieval method, and recording medium
EP20010301556 EP1156432B1 (en) 2000-05-15 2001-02-21 Apparatus, method, data structure and recording medium for data retrieval by accessing retrieval tables
DE60134694T DE60134694D1 (de) 2000-05-15 2001-02-21 Gerät, Verfahren, Datenstrukturen und Aufzeichnungsmedium zur Datenwiederauffindung mittels Tabellen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000142102A JP2001326679A (ja) 2000-05-15 2000-05-15 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体

Publications (1)

Publication Number Publication Date
JP2001326679A true JP2001326679A (ja) 2001-11-22

Family

ID=18649129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000142102A Pending JP2001326679A (ja) 2000-05-15 2000-05-15 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体

Country Status (4)

Country Link
US (1) US6839703B2 (ja)
EP (1) EP1156432B1 (ja)
JP (1) JP2001326679A (ja)
DE (1) DE60134694D1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002033769A (ja) * 2000-05-29 2002-01-31 Internatl Business Mach Corp <Ibm> 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造
JP2003224581A (ja) * 2002-01-31 2003-08-08 Nippon Telegr & Teleph Corp <Ntt> 最長一致検索回路および方法およびプログラムおよび記録媒体
JP2003234762A (ja) * 2002-02-07 2003-08-22 Nippon Telegr & Teleph Corp <Ntt> テーブル検索装置および方法およびプログラムおよび記録媒体
JP2003273918A (ja) * 2002-03-12 2003-09-26 Nippon Telegr & Teleph Corp <Ntt> パケットのフィルタリング方法
JP2004015592A (ja) * 2002-06-10 2004-01-15 Internatl Business Mach Corp <Ibm> Macアドレスポインタ構造、macアドレスの並べ替え方法
JP2005513895A (ja) * 2001-12-11 2005-05-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・プロセッサおよびコンピュータ・システム用ハイブリッド・サーチ・メモリ
JP2005210513A (ja) * 2004-01-23 2005-08-04 Nippon Telegr & Teleph Corp <Ntt> ドメイン名別ビューアクセス制御方法及びdnsサーバシステム装置及びドメイン名別ビューアクセス制御プログラム及びドメイン名別ビューアクセス制御プログラムを格納した記憶媒体
JP2007013856A (ja) * 2005-07-04 2007-01-18 Mitsubishi Electric Corp テーブル装置及びこれを用いたアドレス検索装置
JP2013003644A (ja) * 2011-06-13 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> 一致判定装置、方法、およびプログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7106740B1 (en) * 2002-01-02 2006-09-12 Juniper Networks, Inc. Nexthop to a forwarding table
US7289498B2 (en) * 2002-06-04 2007-10-30 Lucent Technologies Inc. Classifying and distributing traffic at a network node
DE60218144T2 (de) * 2002-06-19 2007-10-31 Motorola, Inc., Schaumburg Verfahren und Vorrichtung zur Routenoptimierung in geschachtelten mobilen Netzwerken
JP4048861B2 (ja) * 2002-07-23 2008-02-20 日本電気株式会社 アドレス検索装置
KR20050066903A (ko) * 2003-12-27 2005-06-30 한국전자통신연구원 고속 라우팅 시스템에서의 패킷 포워딩 처리장치 및 그를이용한 라우팅 룩업 방법
US7433355B2 (en) 2004-02-09 2008-10-07 Alcatel Lucent Filter based longest prefix match algorithm
US7580918B2 (en) * 2006-03-03 2009-08-25 Adobe Systems Incorporated System and method of efficiently representing and searching directed acyclic graph structures in databases
US7644052B1 (en) 2006-03-03 2010-01-05 Adobe Systems Incorporated System and method of building and using hierarchical knowledge structures
TW201208551A (en) * 2010-08-12 2012-02-16 Hon Hai Prec Ind Co Ltd Fan rotating speed control system and method
US20140101150A1 (en) * 2012-10-05 2014-04-10 Axis Semiconductor, Inc. Efficient high performance scalable pipelined searching method using variable stride multibit tries
KR101354388B1 (ko) * 2012-12-12 2014-01-23 신한카드 주식회사 일회성 카드번호 생성방법
CN103560958B (zh) * 2013-10-18 2017-01-18 华为技术有限公司 一种数据包的规则匹配方法及装置
US9313171B2 (en) * 2013-11-19 2016-04-12 Cisco Technology, Inc. Path selection in a multi-service and multi-tenant secure cloud environment
EP3091450B1 (en) 2015-05-06 2017-04-05 Örjan Vestgöte Method and system for performing binary searches
US10592433B1 (en) * 2015-12-10 2020-03-17 Massachusetts Institute Of Technology Secure execution of encrypted software in an integrated circuit

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918646A (en) * 1986-08-28 1990-04-17 Kabushiki Kaisha Toshiba Information retrieval apparatus
JPH0285927A (ja) * 1988-09-22 1990-03-27 Hitachi Vlsi Eng Corp 記憶装置
JPH09107377A (ja) 1995-10-12 1997-04-22 Nippon Telegr & Teleph Corp <Ntt> ルーティングテーブル検索方法
JPH10177582A (ja) 1996-12-18 1998-06-30 Nippon Telegr & Teleph Corp <Ntt> 最長一致検索方法及び装置
JP3558151B2 (ja) 1997-02-12 2004-08-25 日本電信電話株式会社 データ検索回路
US6011795A (en) 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
JPH1188427A (ja) 1997-09-05 1999-03-30 Nippon Telegr & Teleph Corp <Ntt> ルーティングテーブル検索装置
SE511972C2 (sv) 1997-09-09 2000-01-10 Sics Swedish Inst Of Computers Uppslagningsanordning och förfarande för att klassificera och vidarebefordra datapaket
JP3448470B2 (ja) 1997-09-26 2003-09-22 日本電信電話株式会社 Ipアドレス検索テーブル作成方法
JP3166700B2 (ja) 1998-03-12 2001-05-14 日本電気株式会社 ルータ及び最長一致検索装置
JP3845512B2 (ja) 1998-03-30 2006-11-15 川崎マイクロエレクトロニクス株式会社 最長一致検索装置
JP2000022736A (ja) 1998-07-06 2000-01-21 Nec Eng Ltd ルーティングエントリ検索システム及びその検索方法並びにその制御プログラムを記録した記録媒体
JP3228249B2 (ja) * 1998-12-04 2001-11-12 日本電気株式会社 ルータ装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002033769A (ja) * 2000-05-29 2002-01-31 Internatl Business Mach Corp <Ibm> 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造
JP2005513895A (ja) * 2001-12-11 2005-05-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・プロセッサおよびコンピュータ・システム用ハイブリッド・サーチ・メモリ
US8195705B2 (en) 2001-12-11 2012-06-05 International Business Machines Corporation Hybrid search memory for network processor and computer systems
JP2003224581A (ja) * 2002-01-31 2003-08-08 Nippon Telegr & Teleph Corp <Ntt> 最長一致検索回路および方法およびプログラムおよび記録媒体
JP2003234762A (ja) * 2002-02-07 2003-08-22 Nippon Telegr & Teleph Corp <Ntt> テーブル検索装置および方法およびプログラムおよび記録媒体
JP2003273918A (ja) * 2002-03-12 2003-09-26 Nippon Telegr & Teleph Corp <Ntt> パケットのフィルタリング方法
JP2004015592A (ja) * 2002-06-10 2004-01-15 Internatl Business Mach Corp <Ibm> Macアドレスポインタ構造、macアドレスの並べ替え方法
JP2005210513A (ja) * 2004-01-23 2005-08-04 Nippon Telegr & Teleph Corp <Ntt> ドメイン名別ビューアクセス制御方法及びdnsサーバシステム装置及びドメイン名別ビューアクセス制御プログラム及びドメイン名別ビューアクセス制御プログラムを格納した記憶媒体
JP2007013856A (ja) * 2005-07-04 2007-01-18 Mitsubishi Electric Corp テーブル装置及びこれを用いたアドレス検索装置
JP4588560B2 (ja) * 2005-07-04 2010-12-01 三菱電機株式会社 テーブル装置及びこれを用いたアドレス検索装置
JP2013003644A (ja) * 2011-06-13 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> 一致判定装置、方法、およびプログラム

Also Published As

Publication number Publication date
US6839703B2 (en) 2005-01-04
EP1156432B1 (en) 2008-07-09
DE60134694D1 (de) 2008-08-21
EP1156432A2 (en) 2001-11-21
EP1156432A3 (en) 2004-02-04
US20010042070A1 (en) 2001-11-15

Similar Documents

Publication Publication Date Title
JP2001326679A (ja) 情報装置、テーブル検索装置、テーブル検索方法、及び記録媒体
US6956858B2 (en) Network routing table and packet routing method
US6434144B1 (en) Multi-level table lookup
US7069268B1 (en) System and method for identifying data using parallel hashing
CA2434876C (en) Method and apparatus for ternary content addressable memory (tcam) table management
US6553002B1 (en) Apparatus and method for routing data packets through a communications network
JP3299528B2 (ja) インターネット網等の高速通信網のノードのルーティング表構築のためのプレフィックス分析による情報探索用メモリ
US9672234B2 (en) Database and database processing methods
US6563823B1 (en) Multi-resolution tree for longest match address lookups
KR100586461B1 (ko) 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체
WO2001005116A2 (en) Routing method and apparatus
US20070115968A1 (en) Default route coding
US7861291B2 (en) System and method for implementing ACLs using standard LPM engine
JP2002033769A (ja) 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造
JP3570323B2 (ja) アドレスに関するプレフィクスの格納方法
JPH09503609A (ja) ビット・マッピングの装置および方法
JP2009219012A (ja) 固定長データの検索方法
EP4175233B1 (en) Packet matching method and apparatus, network device, and medium
US20040210588A1 (en) Methods and apparatus for address lookup
Sun et al. An on-chip IP address lookup algorithm
KR20180019437A (ko) 세트 멤버쉽 결정을 위한 테이블 검색 방법 및 이를 이용하는 테이블 검색 장치
JPH0832613A (ja) 経路選択情報の検索装置
US20240137317A1 (en) Method and apparatus for packet matching, network device, and medium
JP2020201656A (ja) 検索回路
JP3092524B2 (ja) ルーチングシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090804