JPH03135668A - 圧縮された接頭語突き合わせデータベース検索方法及び装置 - Google Patents
圧縮された接頭語突き合わせデータベース検索方法及び装置Info
- Publication number
- JPH03135668A JPH03135668A JP2185147A JP18514790A JPH03135668A JP H03135668 A JPH03135668 A JP H03135668A JP 2185147 A JP2185147 A JP 2185147A JP 18514790 A JP18514790 A JP 18514790A JP H03135668 A JPH03135668 A JP H03135668A
- Authority
- JP
- Japan
- Prior art keywords
- search
- node
- nodes
- address
- path
- 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
Links
- 238000000034 method Methods 0.000 title claims description 60
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000015654 memory Effects 0.000 claims description 89
- 230000008569 process Effects 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 2
- 230000007704 transition Effects 0.000 description 72
- 235000019800 disodium phosphate Nutrition 0.000 description 59
- 230000006835 compression Effects 0.000 description 41
- 238000007906 compression Methods 0.000 description 41
- 238000012423 maintenance Methods 0.000 description 22
- 239000008186 active pharmaceutical agent Substances 0.000 description 12
- 238000007726 management method Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 101710104937 Non-specific acid phosphatase Proteins 0.000 description 5
- 238000007792 addition Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000011049 filling Methods 0.000 description 3
- 238000011068 loading method Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000037361 pathway Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 230000002028 premature Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 101100119888 Arabidopsis thaliana FDM2 gene Proteins 0.000 description 1
- 102100037364 Craniofacial development protein 1 Human genes 0.000 description 1
- 101000880187 Homo sapiens Craniofacial development protein 1 Proteins 0.000 description 1
- 101150067473 IDP2 gene Proteins 0.000 description 1
- 102100023904 Nuclear autoantigenic sperm protein Human genes 0.000 description 1
- 101710149564 Nuclear autoantigenic sperm protein Proteins 0.000 description 1
- 235000008331 Pinus X rigitaeda Nutrition 0.000 description 1
- 235000011613 Pinus brutia Nutrition 0.000 description 1
- 241000018646 Pinus brutia Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 235000013365 dairy product Nutrition 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 101150046722 idh1 gene Proteins 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 235000014594 pastries Nutrition 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 238000007873 sieving Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/956—Hierarchical
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/959—Network
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Computer And Data Communications (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Document Processing Apparatus (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(発明の背景)
本発明はデータベース検索に於ける接頭語突合せに関す
る。
る。
データベースはストリング即ちキーを記憶情報と関係付
ける。データベースは与えられた入カストリング或いは
キーと関連する特定の情報を検索するためにしばしば使
用される。
ける。データベースは与えられた入カストリング或いは
キーと関連する特定の情報を検索するためにしばしば使
用される。
成る応用例は入力ストリンゲスに最も適合する接頭語と
関連する検索情報を必要とする。例えば、ストリングr
cARTJがデータベースに対する入力であり、データ
ベースがストリング「C」、rcAJ及び「CARL」
と関連する情報を保持する場合、「CART」に対する
最適突合せ接頭語はrcAJであり、「CA」と関連す
る情報が戻される。「C」はまたrcART」の接頭語
であり、「CA」が「C」より良い(より長い)接頭語
であることに注意。
関連する検索情報を必要とする。例えば、ストリングr
cARTJがデータベースに対する入力であり、データ
ベースがストリング「C」、rcAJ及び「CARL」
と関連する情報を保持する場合、「CART」に対する
最適突合せ接頭語はrcAJであり、「CA」と関連す
る情報が戻される。「C」はまたrcART」の接頭語
であり、「CA」が「C」より良い(より長い)接頭語
であることに注意。
最適突合せ接頭語検索は階層的、樹木構造を有するデー
タベースによって典型的に達成される。
タベースによって典型的に達成される。
データベースのこの形態はしばしばトリーと呼ばれる。
トリーデータベースは厳密な突合せ(即ち、入力ストリ
ングに厳密に等しいストリングの検索)と最適接頭語突
合せとの両方を達成することを可能にする。
ングに厳密に等しいストリングの検索)と最適接頭語突
合せとの両方を達成することを可能にする。
第1図を参照する。他のノードに対するポインターを各
々含む多数のノード32からトリーを構成される。各ノ
ードはn個のポインターの配列を有し、一つのポインタ
ーは、入力ストリングの文字で生じるn個の可能な文字
の各々に対応している。トリーは又根と呼ばれる単一の
ノード33を有し、個々から検索が開始する。
々含む多数のノード32からトリーを構成される。各ノ
ードはn個のポインターの配列を有し、一つのポインタ
ーは、入力ストリングの文字で生じるn個の可能な文字
の各々に対応している。トリーは又根と呼ばれる単一の
ノード33を有し、個々から検索が開始する。
ストリング例えばrcADJを探し出すために、検索が
トリーの根ノードで開始し、第1文字r(1を根ノード
のポインターの配列に索引を付けるの使用する。「C」
ポインター34は「C」で始まる全てのストリングに対
する情報を含むトリーの区分を指し示す。この検索はこ
の新たなノードに至り、入力ストリング内の次の文字を
、記憶されるポインターの配列に索引を付けるのに使用
される。rAJポインター35はrcA」で始まる全て
のストリングに対する情報を含むトリーの別の区分の根
を生成する。最終的に、この検索は最終の文字rA」を
配列に索引を付けるのに使用して、「CAD」に対応す
る実際の入力を得る。
トリーの根ノードで開始し、第1文字r(1を根ノード
のポインターの配列に索引を付けるの使用する。「C」
ポインター34は「C」で始まる全てのストリングに対
する情報を含むトリーの区分を指し示す。この検索はこ
の新たなノードに至り、入力ストリング内の次の文字を
、記憶されるポインターの配列に索引を付けるのに使用
される。rAJポインター35はrcA」で始まる全て
のストリングに対する情報を含むトリーの別の区分の根
を生成する。最終的に、この検索は最終の文字rA」を
配列に索引を付けるのに使用して、「CAD」に対応す
る実際の入力を得る。
−トリーが必要とする記憶容量は、(1)データベース
内の入力数、(2)異なる文字の数、(3)−語内の平
均文字数、(4)ポインタの記憶サイズの積に略比例し
て計算することができる。従って、(2)26の可能な
文字、(3)項目当たり20迄の文字、そして(4)4
バイトポインターを有する50,000人力登録データ
ベースに対しては、項目当たり略2にバイト、即ち10
0Mバイト要求される。
内の入力数、(2)異なる文字の数、(3)−語内の平
均文字数、(4)ポインタの記憶サイズの積に略比例し
て計算することができる。従って、(2)26の可能な
文字、(3)項目当たり20迄の文字、そして(4)4
バイトポインターを有する50,000人力登録データ
ベースに対しては、項目当たり略2にバイト、即ち10
0Mバイト要求される。
この記憶容量の要請にも関わらず、トリーは高速調査及
び接頭語突合せのために魅力的である。
び接頭語突合せのために魅力的である。
いくつかの有用な応用として、電話番号、オンライン辞
書、スペルチエッカ−に於ける登録簿検索、及び社会保
証番号の検索がある。
書、スペルチエッカ−に於ける登録簿検索、及び社会保
証番号の検索がある。
コンピュータネットワークはルータと呼ばれる装置によ
って互いに結合された多数のコンピュータから構成され
ており、コンピュータはパケットと呼ばれるメツセージ
を他のコンピュータに送ることができる。類推すると、
ルータは郵便局であり、パケットは手紙に対応する。各
パケットは宛先アドレスを運び、各ルータは宛先アドレ
スに対する最適の通路を計算する。この通路に沿う各ル
ータはパケットをこの通路上の次のルータに「前送り」
することに責任を負っている。この前送り工程は、パケ
ットがその宛先に到達するまで続(。
って互いに結合された多数のコンピュータから構成され
ており、コンピュータはパケットと呼ばれるメツセージ
を他のコンピュータに送ることができる。類推すると、
ルータは郵便局であり、パケットは手紙に対応する。各
パケットは宛先アドレスを運び、各ルータは宛先アドレ
スに対する最適の通路を計算する。この通路に沿う各ル
ータはパケットをこの通路上の次のルータに「前送り」
することに責任を負っている。この前送り工程は、パケ
ットがその宛先に到達するまで続(。
パケットはルータに到達すると、ルータは前送りデータ
ベース内の宛先アドレスを検索する。この前送りデータ
ベースは宛先アドレス及び各アドレスへの通路内の次の
ルータのリストを含む。
ベース内の宛先アドレスを検索する。この前送りデータ
ベースは宛先アドレス及び各アドレスへの通路内の次の
ルータのリストを含む。
郵便システムは巨大であるので、各郵便局が世界中の全
アドレスに対する項目を含むデータベースを記憶するこ
とは不可能である。その代わりに、手紙をWRITEH
ALL−LONDON−ENGLANDに送るためには
、先ず宛先国(英国)に送り、次に都市(ロンドン)に
送り、そして宛先都市内のストリートアドレス(Whi
tehall)へおくる。従って、この郵便システムア
ドレスを3レベルの階層を有するものとして記述するこ
とができる。即ち、レベル0をストリートアドレス、レ
ベルlを都市、レベル2を国としてである。ある理由の
ために、巨大なコンピュータネットワーク中の宛先アド
レスは階層的に分割されており、数種の階層レベルを有
している。
アドレスに対する項目を含むデータベースを記憶するこ
とは不可能である。その代わりに、手紙をWRITEH
ALL−LONDON−ENGLANDに送るためには
、先ず宛先国(英国)に送り、次に都市(ロンドン)に
送り、そして宛先都市内のストリートアドレス(Whi
tehall)へおくる。従って、この郵便システムア
ドレスを3レベルの階層を有するものとして記述するこ
とができる。即ち、レベル0をストリートアドレス、レ
ベルlを都市、レベル2を国としてである。ある理由の
ために、巨大なコンピュータネットワーク中の宛先アド
レスは階層的に分割されており、数種の階層レベルを有
している。
巨大ネットワークを構築するための一つの方法が、国際
標準委員会(ISO)の配送基準によって記述される。
標準委員会(ISO)の配送基準によって記述される。
これは直ぐに、大きな広範ネットワークを建設するため
に使用される世界的な標準となるべきである。このIS
O基準に従うと、各ルータは、ネットワーク内の全ての
可能なアドレスに対する配送情報を記憶することはしな
い。むしろ、部分的な配送情報を記憶する。
に使用される世界的な標準となるべきである。このIS
O基準に従うと、各ルータは、ネットワーク内の全ての
可能なアドレスに対する配送情報を記憶することはしな
い。むしろ、部分的な配送情報を記憶する。
例えば、ルータは部分的なアドレスDEC−READ
ING−ENGLAND 、 ENGLAND 、及び
LONDON−ENGLANDにパケットを前送りする
最適な方法を記憶することができる。ルータはWHIT
EAHALL−LONDO−ENGLANDにアドレス
付けされたパケットを得ると仮定する。
ING−ENGLAND 、 ENGLAND 、及び
LONDON−ENGLANDにパケットを前送りする
最適な方法を記憶することができる。ルータはWHIT
EAHALL−LONDO−ENGLANDにアドレス
付けされたパケットを得ると仮定する。
ISO基準は、ルータは最適突合せアドレスに送られる
べきであることを宣言する。このアドレスはデータベー
ス内に存在する。従って、上記例においては、ルータが
パケットをどのようにしてLONDON−ENGLAN
Dに送るのかを知っているので、パケットはここに送ら
れねばならない。この手法だと、パケットが前送りされ
る毎に、パケットはその宛先により近ずく。
べきであることを宣言する。このアドレスはデータベー
ス内に存在する。従って、上記例においては、ルータが
パケットをどのようにしてLONDON−ENGLAN
Dに送るのかを知っているので、パケットはここに送ら
れねばならない。この手法だと、パケットが前送りされ
る毎に、パケットはその宛先により近ずく。
世界的ネットワークに対するISO配送基準は、ネット
ワーク内の各ルータが部分アドレスのデータベースを維
持することを規定している。パケットがルータに到達す
ると、ルータはデータベースを介して検索を行い、パケ
ット内の宛先アドレスに対する項目を呼び出さなければ
ならなく、さもなぐば、宛先アドレスの最適突合せ接頭
語に対応する項目を呼び出することを失敗する。
ワーク内の各ルータが部分アドレスのデータベースを維
持することを規定している。パケットがルータに到達す
ると、ルータはデータベースを介して検索を行い、パケ
ット内の宛先アドレスに対する項目を呼び出さなければ
ならなく、さもなぐば、宛先アドレスの最適突合せ接頭
語に対応する項目を呼び出することを失敗する。
ISO配送基準の特に興味のあることは、標準化のため
の国際組織によって頒布された、ISO8348Add
endum 2 (ISO8348/AD2)の様な
公開システム相互接続(O8I)基準にある。この基準
の基で、O3Iアドレスの部分空間の管理が種々の国際
的に認知された組織に委任さてれている。
の国際組織によって頒布された、ISO8348Add
endum 2 (ISO8348/AD2)の様な
公開システム相互接続(O8I)基準にある。この基準
の基で、O3Iアドレスの部分空間の管理が種々の国際
的に認知された組織に委任さてれている。
これらの組織の各々は委任された管理を示す一義的な初
期アドレスオクテツト(典型的に8ビツト)に割り付け
られている。個々の組織はアトシスの別の部分を割り振
るために責任を負っおり、他の組織による管理及び割当
のために、組織に特定な長さを有する一義的な初期的な
部分によって識別される。この工程は多数回繰り返され
、特定の指定されたノードアドレスが広く一義的である
ことを保証する。
期アドレスオクテツト(典型的に8ビツト)に割り付け
られている。個々の組織はアトシスの別の部分を割り振
るために責任を負っおり、他の組織による管理及び割当
のために、組織に特定な長さを有する一義的な初期的な
部分によって識別される。この工程は多数回繰り返され
、特定の指定されたノードアドレスが広く一義的である
ことを保証する。
O8Iネットワークアドレス(NSAP)フォーマット
が第2A図に示されている。この図は初期区域部分ID
P60及び区域特定部分DSP70を含んでいる。ID
P60のフォーマット及び長さが標準化される。これは
、2つの部分、API62(識別子の権威とフォーマッ
ト)及びIDl64(初期区域識別子)から成っている
。これらの要素は各々オクテツト(8ビツト)又はセミ
オクテツト(4ビツト)によって計数される特定の数の
ビットを要求する。API及びIDI中の数字は2進化
コード10進数である。各lθ進数は0000(10進
0)から1001(10進9)の範囲内のセミオクテツ
ト値によって表せられる。
が第2A図に示されている。この図は初期区域部分ID
P60及び区域特定部分DSP70を含んでいる。ID
P60のフォーマット及び長さが標準化される。これは
、2つの部分、API62(識別子の権威とフォーマッ
ト)及びIDl64(初期区域識別子)から成っている
。これらの要素は各々オクテツト(8ビツト)又はセミ
オクテツト(4ビツト)によって計数される特定の数の
ビットを要求する。API及びIDI中の数字は2進化
コード10進数である。各lθ進数は0000(10進
0)から1001(10進9)の範囲内のセミオクテツ
ト値によって表せられる。
AF I 62は2つのセミオクテツト(即ち、2進化
コード10進数)の長さであり、IDS値を割り付ける
ため及びIDIのフォーマットを決めることに責任を有
する権限を決めるために使用される。IDl64は、D
SP値が割り当てられる部分区域及びこの値を割り当て
ることに責務を有する権限を識別する。IDIフォーマ
ットに依存して、IDl64フイールド中の数の実際の
個数はIDIフィールドに割り当てられるセミオクテツ
トの個数よりより少ない。ISO8348/AD2によ
って特定される好適な2進化エンコーデイングは、ID
ffに先行数が付加されることを規定して、必要な場合
は、APIによって規定される最大のIDP長さを得る
。従って、IDIフィールドはアドレス情報を搬送する
数個の数66、及び情報を搬送しない他の充填数65を
含むことができる。有用なIDIDCCはIDIフィー
ルド内で右位置が調整され、IDIフィールドの残りは
充填数65を含む。APIの値はIDPの長さを決め、
以下に記述されるようにして有用なIDr数66の位置
を決めるのに使用することができる。
コード10進数)の長さであり、IDS値を割り付ける
ため及びIDIのフォーマットを決めることに責任を有
する権限を決めるために使用される。IDl64は、D
SP値が割り当てられる部分区域及びこの値を割り当て
ることに責務を有する権限を識別する。IDIフォーマ
ットに依存して、IDl64フイールド中の数の実際の
個数はIDIフィールドに割り当てられるセミオクテツ
トの個数よりより少ない。ISO8348/AD2によ
って特定される好適な2進化エンコーデイングは、ID
ffに先行数が付加されることを規定して、必要な場合
は、APIによって規定される最大のIDP長さを得る
。従って、IDIフィールドはアドレス情報を搬送する
数個の数66、及び情報を搬送しない他の充填数65を
含むことができる。有用なIDIDCCはIDIフィー
ルド内で右位置が調整され、IDIフィールドの残りは
充填数65を含む。APIの値はIDPの長さを決め、
以下に記述されるようにして有用なIDr数66の位置
を決めるのに使用することができる。
ISO8348/AD2基準で規定されるIDIフォー
マットは、以下のものを含む異なる権限の数だけ発生さ
れるフォーマットを含む。
マットは、以下のものを含む異なる権限の数だけ発生さ
れるフォーマットを含む。
X、121(公衆ネットワーク番号区分)I So
DCC(ISO制御化での地理的アドレス割付け) F、69(テレックス番号区分) E、163(電話番号区分) E、164 (ISDN番号区分) ISOICD(ISO制御下での非地理的アドレス割付
け) Local (IDIが空であり、アドレスが一義的
であることを要しない。) IDl64はDSPを管理する権限を特定する。
DCC(ISO制御化での地理的アドレス割付け) F、69(テレックス番号区分) E、163(電話番号区分) E、164 (ISDN番号区分) ISOICD(ISO制御下での非地理的アドレス割付
け) Local (IDIが空であり、アドレスが一義的
であることを要しない。) IDl64はDSPを管理する権限を特定する。
DSP70の特定のフォーマットは、最大長を除いて、
ISOによって直ちに処理されるのではなく、むしろ指
示された権限に残される。DSPはIDPに類似する2
進化コード数シンタツクスを使用するか、又は直線的2
進化シンタツクスを使用することができる。DSOが2
進シンタツクスを使用する場合、DPS値は直接2進化
オクテツトとして表現される。DSPが10進シンタツ
クスを使用する場合、各10進数は0OOOから100
1(IDPにおけるように)の範囲においてセミオクッ
トによって表現される。後者の場合、必要な場合、11
11のセミオクテツトが、DSPの最後のセミオクテツ
トの後のパッドとして使用され、全アドレス長をオクテ
ツトの積分値に丸める。
ISOによって直ちに処理されるのではなく、むしろ指
示された権限に残される。DSPはIDPに類似する2
進化コード数シンタツクスを使用するか、又は直線的2
進化シンタツクスを使用することができる。DSOが2
進シンタツクスを使用する場合、DPS値は直接2進化
オクテツトとして表現される。DSPが10進シンタツ
クスを使用する場合、各10進数は0OOOから100
1(IDPにおけるように)の範囲においてセミオクッ
トによって表現される。後者の場合、必要な場合、11
11のセミオクテツトが、DSPの最後のセミオクテツ
トの後のパッドとして使用され、全アドレス長をオクテ
ツトの積分値に丸める。
第2B図及び第2C図は、API値及びID01DSP
及び各IDIフォーマットに対応する全N5APアドレ
スのに要求される最大長さを指し示すテーブルである(
ISO8348/AD2フオーマツトに於けるN5AP
アドレスにおいて、IDIが最大長に付加されているこ
とを注意すべきである。)。2つの値がAPIに与えら
れており、第1のものが零(000Q)先行数を有する
最さ長に付加されるIDIを識別するが、第2のものは
非零先行数(この非零付加数は値0001で無ければな
らない)が付加されるIDIを識別する。非零先行数は
、実際のIDI値の第1数がが0000に等しい時の混
乱を軽減するのに使用される。従って、非零付加数がI
DIで使用される場合、IDI中の第1の零敗が非充填
数で無ければならない。第2B図は、DSPシンタック
スが2進である場合に適用される。第2C図は10進の
場合に適用される。
及び各IDIフォーマットに対応する全N5APアドレ
スのに要求される最大長さを指し示すテーブルである(
ISO8348/AD2フオーマツトに於けるN5AP
アドレスにおいて、IDIが最大長に付加されているこ
とを注意すべきである。)。2つの値がAPIに与えら
れており、第1のものが零(000Q)先行数を有する
最さ長に付加されるIDIを識別するが、第2のものは
非零先行数(この非零付加数は値0001で無ければな
らない)が付加されるIDIを識別する。非零先行数は
、実際のIDI値の第1数がが0000に等しい時の混
乱を軽減するのに使用される。従って、非零付加数がI
DIで使用される場合、IDI中の第1の零敗が非充填
数で無ければならない。第2B図は、DSPシンタック
スが2進である場合に適用される。第2C図は10進の
場合に適用される。
一例として、36の2つのセミオクテツトBCD値は次
のことを示す。(1)宛先システムはX。
のことを示す。(1)宛先システムはX。
121公衆ネツトワークアドレスを使用する。(2)I
DI64が部分区域の権限を識別する14迄の重要なl
O進数からなる。(31DSP70セミオクテツトは、
存在する場合、2進化コード10進シンタツクスで宛先
装置を表現する。
DI64が部分区域の権限を識別する14迄の重要なl
O進数からなる。(31DSP70セミオクテツトは、
存在する場合、2進化コード10進シンタツクスで宛先
装置を表現する。
ディジタル イクイプメント、メイナード、マサチュー
セッツによって頒布される様な、デジタルネットワーク
アーキテクチュア(DNA)に対するDECnetフェ
イズVアドレスの最近版において、例えば、DSP70
は2進化シンタツクスを有し、N5APの最後の9つの
オクテツト(この内の7つはDSP内になければならな
い)は第2A図において示される数種のフィールド内に
分配される。
セッツによって頒布される様な、デジタルネットワーク
アーキテクチュア(DNA)に対するDECnetフェ
イズVアドレスの最近版において、例えば、DSP70
は2進化シンタツクスを有し、N5APの最後の9つの
オクテツト(この内の7つはDSP内になければならな
い)は第2A図において示される数種のフィールド内に
分配される。
(DNAに特定される第2A図内のこれらのフィールド
には星(*)が印される) LOG−AREA72はDNAの前の版と逆向きに互換
性を有するため及び将来の増強のために定義されたフィ
ールドである。LOG−AREA72はN5APの最後
の9つのオクテツトの最小の2つのオクテツトとして定
義される。
には星(*)が印される) LOG−AREA72はDNAの前の版と逆向きに互換
性を有するため及び将来の増強のために定義されたフィ
ールドである。LOG−AREA72はN5APの最後
の9つのオクテツトの最小の2つのオクテツトとして定
義される。
レベルIIDは6個のオクテツトフィールドであり、D
ECnet領域内の宛先システムを一義的に識別する。
ECnet領域内の宛先システムを一義的に識別する。
DNAネットワーク配送層の正常な動作はID74フイ
ールドがDECnet領域内にあることのみを要求する
(レベル2ルータを除く、ここでは、レベル2ルータの
レベルIIDは全構内ネットワーク内で通常一義的であ
る。)しかしながら、IDフィールドは通常I EEE
802アドレス空間から通常選択され、この場合広範囲
に一義的であることが保証される。802アドレスが使
用される場合、これは802 LAN上のノードの実際
のデータリンクアドレスに対応する場合があるが、この
対応は前記配送アルゴリズムによって仮定されたり、要
求されない。
ールドがDECnet領域内にあることのみを要求する
(レベル2ルータを除く、ここでは、レベル2ルータの
レベルIIDは全構内ネットワーク内で通常一義的であ
る。)しかしながら、IDフィールドは通常I EEE
802アドレス空間から通常選択され、この場合広範囲
に一義的であることが保証される。802アドレスが使
用される場合、これは802 LAN上のノードの実際
のデータリンクアドレスに対応する場合があるが、この
対応は前記配送アルゴリズムによって仮定されたり、要
求されない。
S E L 76 ハD E CN E T 7 x
イズV7ドレスの端部の一つのオクテツトフィールドで
ある。SELはモジュールの選択として働き、このモジ
ュールはパケットがその宛先に到達する場合パケットを
受信さねばならない。IDP60の連結及びDSPの先
行部分(即ち、これが存在する場合、DSPの部分は最
後の9つのオクテツトに先行する)はPRE−LOG−
AREA80と呼ばれる。
イズV7ドレスの端部の一つのオクテツトフィールドで
ある。SELはモジュールの選択として働き、このモジ
ュールはパケットがその宛先に到達する場合パケットを
受信さねばならない。IDP60の連結及びDSPの先
行部分(即ち、これが存在する場合、DSPの部分は最
後の9つのオクテツトに先行する)はPRE−LOG−
AREA80と呼ばれる。
PRE−LOG−AREA及びLOG−AREAの連結
は領域アドレス90として知られる(従って、領域アド
レスはN5APの最後の7バイト以外である)。パケッ
トが、ローカル領域のアドレスと正確に一致する領域ア
ドレス90を有する場合、パケットの宛先は領域に対し
て局所的であり、レベルIIDフィールドを使用するレ
ベル1配送によってこの宛先が搬送される。それ以外の
場合、パケットはレベル2配送によって搬送される。レ
ベル2配送は領域アドレスの接頭語部分上に機能し、パ
ケットを、パケットアドレスと最大に正確に一致する領
域アドレスを有する領域に向ける。
は領域アドレス90として知られる(従って、領域アド
レスはN5APの最後の7バイト以外である)。パケッ
トが、ローカル領域のアドレスと正確に一致する領域ア
ドレス90を有する場合、パケットの宛先は領域に対し
て局所的であり、レベルIIDフィールドを使用するレ
ベル1配送によってこの宛先が搬送される。それ以外の
場合、パケットはレベル2配送によって搬送される。レ
ベル2配送は領域アドレスの接頭語部分上に機能し、パ
ケットを、パケットアドレスと最大に正確に一致する領
域アドレスを有する領域に向ける。
他方、非DNAノードはDNAアドレス変換又はその要
請に従うことを要しない。しかしながら、DNAアドレ
スシンタックに対して設計されたルータは、成る要求が
満足されると、非DNA及び非DNAネットワークに組
み入れられる。この組み入れには数々のモードが可能と
なる。
請に従うことを要しない。しかしながら、DNAアドレ
スシンタックに対して設計されたルータは、成る要求が
満足されると、非DNA及び非DNAネットワークに組
み入れられる。この組み入れには数々のモードが可能と
なる。
成るモードにおいては、非DNA Endシステムは
DNAレベル2ネツトワークで作動する。
DNAレベル2ネツトワークで作動する。
隣接のレベル2ルータは手動で適合されて、パケットが
DNA r到達可能アドレス項目」を介してEndシス
テムに前送りされる。非DNA Endシステムのア
ドレスの唯一の要求は、Endシステムのアドレスの全
接頭語が、最大14の終端セミオクテツトを除くことに
より形成され、レベル2ネツトワーク内の全領域アドレ
スから区別される必要があることである。
DNA r到達可能アドレス項目」を介してEndシス
テムに前送りされる。非DNA Endシステムのア
ドレスの唯一の要求は、Endシステムのアドレスの全
接頭語が、最大14の終端セミオクテツトを除くことに
より形成され、レベル2ネツトワーク内の全領域アドレ
スから区別される必要があることである。
特定のDNA領域内のEndシステムとして、非DNA
ノードのアドレスは、最後の7オクテツトの前の先行オ
クテツトがノードが存在する領域の領域アドレスに等し
くなければならないと言う制限を受けなければならない
。更に、最後の7つのオクテツトの先行する6つのオク
テツトが領域内の一義的なレベルIIDから構成される
必要がある。隣接するルータの構成は、ES/l5(I
So 9542)プロトコルを介して手動又は自動に
より発生する。
ノードのアドレスは、最後の7オクテツトの前の先行オ
クテツトがノードが存在する領域の領域アドレスに等し
くなければならないと言う制限を受けなければならない
。更に、最後の7つのオクテツトの先行する6つのオク
テツトが領域内の一義的なレベルIIDから構成される
必要がある。隣接するルータの構成は、ES/l5(I
So 9542)プロトコルを介して手動又は自動に
より発生する。
最後に、DNAネットワークは、アドレス接頭語を使用
して、到達可能なアドレスを介して非DNAの自立性ネ
ットワークと解釈される。
して、到達可能なアドレスを介して非DNAの自立性ネ
ットワークと解釈される。
ネットワーク内の配送は前送りデータベースに基づく。
前送りデータベースにおいて、各リストされた宛先アド
レスは、パケットがその宛先に到達するのに取る配送通
路の次のリンク及びこのリンク上のアドレスを互いに参
照する。
レスは、パケットがその宛先に到達するのに取る配送通
路の次のリンク及びこのリンク上のアドレスを互いに参
照する。
データベースは2つの部分に分けられる。i)ネットワ
ークアドレスを内部索引に対応させる部分、及びii)
内部インデックスをリンク及びリンクアドレス要素の組
に対応させる部分。
ークアドレスを内部索引に対応させる部分、及びii)
内部インデックスをリンク及びリンクアドレス要素の組
に対応させる部分。
ネットワークルータは、宛先アドレス情報を受信された
パケットのヘッダーから受は取り、データベースにアク
セスして、パケットが通過する最適な次のリンク及びそ
のリンク上のデータリンクアドレスを決定し、そしてパ
ケットをこれを従って前送りする。
パケットのヘッダーから受は取り、データベースにアク
セスして、パケットが通過する最適な次のリンク及びそ
のリンク上のデータリンクアドレスを決定し、そしてパ
ケットをこれを従って前送りする。
公知のデータベースのフォーマットは、パケットが前送
りされる速度に影響し、データベースの記憶容量を大き
くすることできる。
りされる速度に影響し、データベースの記憶容量を大き
くすることできる。
(発明の要約)
本発明の従うと、配送データベースは同一の機能に対す
る従来のデータベースより領域が狭い。
る従来のデータベースより領域が狭い。
更に、配送情報は、より安価な計算ハードウェアを使用
してより高速に位置される。
してより高速に位置される。
本発明の一つの特徴は、減少された長さの検索通路に沿
った検索を管理する方法である。検索通路内の前の及び
次のノード間で発生しうるノードが除去される。除去さ
れたノードが存在すると仮定した場合に、検索が次のノ
ードに進むか否かに関する情報が記憶される。この検索
の間、検索引き数は記憶された情報と比較され、この検
索は、この比較が正である場合、前のノードから次のノ
ードに効率的に進行する。
った検索を管理する方法である。検索通路内の前の及び
次のノード間で発生しうるノードが除去される。除去さ
れたノードが存在すると仮定した場合に、検索が次のノ
ードに進むか否かに関する情報が記憶される。この検索
の間、検索引き数は記憶された情報と比較され、この検
索は、この比較が正である場合、前のノードから次のノ
ードに効率的に進行する。
好適な態様は次の特徴を含む。幾つかのノードは検索に
対する結果値を与える。ノードは、その存在が検索に対
する結果値に影響を及ぼす場合に除去される。比較され
るべき情報は次のノード内に記憶される。この検索は第
1及び第2のモードを有しており、第1のモードは検索
路に沿って処理ノードを有している。除去されたノード
は、もし存在すれば、検索を次のノードに進ませるか、
検索を第2モードに導入するの何れかを行う。この検索
引き数は一連の検索セグメントから成り、前記引き数の
セグメントの成る値は検索通路に沿ったノードに対応す
る。このセグメントの他の値は検索の第2モードに関係
する。記憶された情報は前記検索セグメントのシーフェ
ンスである。標識はノードに関連する。検索路は連続す
る検索セグメントを処理することにより検索される。こ
の処理は各ノードに関連する標識を検査し、標識がセグ
メントが第2モードに関連することを示す場合第2検索
に進むことを含む。検索の第2モードは前記検索を終了
することを含む。検索引き数はネットワーク中のシステ
ムアドレスを含む。
対する結果値を与える。ノードは、その存在が検索に対
する結果値に影響を及ぼす場合に除去される。比較され
るべき情報は次のノード内に記憶される。この検索は第
1及び第2のモードを有しており、第1のモードは検索
路に沿って処理ノードを有している。除去されたノード
は、もし存在すれば、検索を次のノードに進ませるか、
検索を第2モードに導入するの何れかを行う。この検索
引き数は一連の検索セグメントから成り、前記引き数の
セグメントの成る値は検索通路に沿ったノードに対応す
る。このセグメントの他の値は検索の第2モードに関係
する。記憶された情報は前記検索セグメントのシーフェ
ンスである。標識はノードに関連する。検索路は連続す
る検索セグメントを処理することにより検索される。こ
の処理は各ノードに関連する標識を検査し、標識がセグ
メントが第2モードに関連することを示す場合第2検索
に進むことを含む。検索の第2モードは前記検索を終了
することを含む。検索引き数はネットワーク中のシステ
ムアドレスを含む。
本発明の他の特徴は減少された長さの2つのモード検索
を管理する方法である。検索の第1モードに対して、検
索路に沿ったノードが与えられており、ノードの少なく
とも幾つかが他のノードを指し示す1つ以上のポインタ
を含んでいる。一連の検索セグメントを含む検索引き数
が与えられ、引き数のセグメントの幾つかの値が検索路
の沿ったノードに対応する。セグメントの幾つかの他の
値は検索の第2モードに関連する。ノードに関連する標
識が設けられ、セグメントを指示する各標識が第2モー
ドに対応する。検索路は、各ノードに関連する標識を検
査し、セグメントが第2モードに関連するすることを標
識が示す場合第2検索モードに進むことによって連続す
る検索セグメントを処理することにより検索がなされる
。
を管理する方法である。検索の第1モードに対して、検
索路に沿ったノードが与えられており、ノードの少なく
とも幾つかが他のノードを指し示す1つ以上のポインタ
を含んでいる。一連の検索セグメントを含む検索引き数
が与えられ、引き数のセグメントの幾つかの値が検索路
の沿ったノードに対応する。セグメントの幾つかの他の
値は検索の第2モードに関連する。ノードに関連する標
識が設けられ、セグメントを指示する各標識が第2モー
ドに対応する。検索路は、各ノードに関連する標識を検
査し、セグメントが第2モードに関連するすることを標
識が示す場合第2検索モードに進むことによって連続す
る検索セグメントを処理することにより検索がなされる
。
好適な実施態様は以下の特徴を有する。前記セグメント
が第2検索モードに対応することを標識が指示しない場
合は、標識及びセグメントが検査され、一つのポインタ
を決定する。この検索は次のモードに続く。各標識は、
複数のセグメント値にそれぞれ関連する数列内の1ビツ
トである。検索の第2モードは検索を終了することを含
む。検索引き数はネットワーク内のシステムアドレスか
ら成る。
が第2検索モードに対応することを標識が指示しない場
合は、標識及びセグメントが検査され、一つのポインタ
を決定する。この検索は次のモードに続く。各標識は、
複数のセグメント値にそれぞれ関連する数列内の1ビツ
トである。検索の第2モードは検索を終了することを含
む。検索引き数はネットワーク内のシステムアドレスか
ら成る。
本発明の別の特徴は検索路を階層的に検索する方法にあ
る。検索路に沿ってノードの階層が与えられ、ノード少
なくとも幾つかが、別の階層的レベルの他のノードを示
している1つ以上のポインターを含んでいる。一連の検
索セグメントから成る検索引き数が与えられ、引き数の
連続セグメントが検索路に沿って連続するノードに対応
する。
る。検索路に沿ってノードの階層が与えられ、ノード少
なくとも幾つかが、別の階層的レベルの他のノードを示
している1つ以上のポインターを含んでいる。一連の検
索セグメントから成る検索引き数が与えられ、引き数の
連続セグメントが検索路に沿って連続するノードに対応
する。
検索路はノード内の連続する検索セグメントを処理する
ことにより検索され、ポインターを検査し、検索引き数
が有効な状態を満足する場合、指示されたノードに進む
ことを含む。
ことにより検索され、ポインターを検査し、検索引き数
が有効な状態を満足する場合、指示されたノードに進む
ことを含む。
好適な態様は以下の特徴を含む。有効な状態は処理され
た又は未処理のセグメントの数を計数することを含む。
た又は未処理のセグメントの数を計数することを含む。
検索引き数は130 8348/AD2とに従うコンピ
ュータネットワークに対するシステムアドレスである。
ュータネットワークに対するシステムアドレスである。
検索は第1階層レベルにおけるレベル2配送検索及び第
2階層レベルにおけるレベルl配送検索からなる。検索
は第1階層レベルにおけるIDP検索及び第2階層レベ
ルにおけるDSP検索を含む。
2階層レベルにおけるレベルl配送検索からなる。検索
は第1階層レベルにおけるIDP検索及び第2階層レベ
ルにおけるDSP検索を含む。
本発明の別の特徴は、幾つかが所定の値を有するセグメ
ントの検索引き数を分析する方法にある。
ントの検索引き数を分析する方法にある。
検索路に沿ってノードが設けられ、少なくとも幾つかの
ノードが後続のノードを示す1つ以上のポインターを含
み、各ポインターはセグメントの一つの可能な値に対応
する。所定のセグメント値に対応するポインターは、ノ
ードがポインターを後続のノードとして記憶しているこ
とを指示するように向けられている。
ノードが後続のノードを示す1つ以上のポインターを含
み、各ポインターはセグメントの一つの可能な値に対応
する。所定のセグメント値に対応するポインターは、ノ
ードがポインターを後続のノードとして記憶しているこ
とを指示するように向けられている。
好適な態様は以下の特徴を含んでいる。検索引き数はI
SO8348/AD2に関連するネットワークアドレス
であり、所定の値が充填数の値である。
SO8348/AD2に関連するネットワークアドレス
であり、所定の値が充填数の値である。
本発明の別の特徴は、コンピュータネットワーク配送用
トリー形状配送データベース、種々の形態のトリー記憶
データのノードを記憶するための装置である。この装置
は異なるアクセス時間及び電力要求を有する複数のメモ
リー装置を含み、各装置は2つ以上のノードに対して特
定の形態のデータを記憶する。メモリー装置は、類アク
セス時間を有するメモリー装置内に高速アクセスを要求
するデータ形態を記憶し、それ以外の場合、低電力消費
を有するメモリー装置内により遅いアクセスを要求する
データ形態を記憶するように選択される。
トリー形状配送データベース、種々の形態のトリー記憶
データのノードを記憶するための装置である。この装置
は異なるアクセス時間及び電力要求を有する複数のメモ
リー装置を含み、各装置は2つ以上のノードに対して特
定の形態のデータを記憶する。メモリー装置は、類アク
セス時間を有するメモリー装置内に高速アクセスを要求
するデータ形態を記憶し、それ以外の場合、低電力消費
を有するメモリー装置内により遅いアクセスを要求する
データ形態を記憶するように選択される。
本発明は記憶空間、処理時間及びハードウェアを節約す
る。
る。
他の利点及び特徴は以下の好適な実施態様及び特許請求
の範囲から明らかになるであろう。
の範囲から明らかになるであろう。
(実施例)
乳産又グ皇罫
トリーはISOルータ内の部分アドレスのデータベース
を維持するための適当な候補者である。
を維持するための適当な候補者である。
トリーは宛先アドレスの最適突合せ接頭語を容易に支持
する。更に、トリーはISO部分アドレスの様な大きな
及び可変長ストリングを検索するために好適である。し
かしながら、トリーの記憶要求は実現不可能な実際のル
ータ内のトリーを利用する。又、ISOアドレスに対し
てトリーを適用するために、トリー検索方法がISOア
ドレスの特定の特徴、例えば上述された可変長フィール
ド及び充填数に適用されねばならない。
する。更に、トリーはISO部分アドレスの様な大きな
及び可変長ストリングを検索するために好適である。し
かしながら、トリーの記憶要求は実現不可能な実際のル
ータ内のトリーを利用する。又、ISOアドレスに対し
てトリーを適用するために、トリー検索方法がISOア
ドレスの特定の特徴、例えば上述された可変長フィール
ド及び充填数に適用されねばならない。
本発明はトリーデータベースの記憶要求を減少し、また
ISOアドレスに対してトリーを採用する。本発明によ
って達成された記憶容量の減少は付録Cに詳述される。
ISOアドレスに対してトリーを採用する。本発明によ
って達成された記憶容量の減少は付録Cに詳述される。
トリー要求記憶容量を減少するための方法は好適な態様
の外の種々の状況におけるトリーに適用できる。トリー
検索をISOアドレスに適用するための方法は他の状況
でも利用できる。
の外の種々の状況におけるトリーに適用できる。トリー
検索をISOアドレスに適用するための方法は他の状況
でも利用できる。
第3図を参照する。ルータ10の第1欠勤作において、
パケット11は受信ユニット12に受信される。受信ユ
ニット12はパケットを前送りエンジン14に与える。
パケット11は受信ユニット12に受信される。受信ユ
ニット12はパケットを前送りエンジン14に与える。
前送りエンジンI4はパケットヘッダーを処理する。宛
先ネットワークを抽出し、これを認識エンジン20へ転
送する。論理ユニット22は前送りエンジン14によっ
て使用される論理信号を与え、認識エンジン20とイン
ターフェースで接続する。認識エンジン20は宛先アド
レスを使用して、インデックスをメモリー50内に記憶
されるデータベースから呼び出す。
先ネットワークを抽出し、これを認識エンジン20へ転
送する。論理ユニット22は前送りエンジン14によっ
て使用される論理信号を与え、認識エンジン20とイン
ターフェースで接続する。認識エンジン20は宛先アド
レスを使用して、インデックスをメモリー50内に記憶
されるデータベースから呼び出す。
このインデックスは前送りエンジン14に戻され、この
エンジンはその値を使用して前送りデータベース(図示
せず)をアクセスする。前送りデータベースはリンク参
照及びリンクアドレスの組からなる。前送りエンジン1
4は次にリンク参照を使用してパケット11を種々の転
送ユニット26Aから26D(4つが説明のために示さ
れている)の一つに向ける。転送ユニット26A及び2
6Dはパケットを待ち行列化し、それらをネットワーク
に通信リンク16を介して他のルータ又は宛先システム
に送る。
エンジンはその値を使用して前送りデータベース(図示
せず)をアクセスする。前送りデータベースはリンク参
照及びリンクアドレスの組からなる。前送りエンジン1
4は次にリンク参照を使用してパケット11を種々の転
送ユニット26Aから26D(4つが説明のために示さ
れている)の一つに向ける。転送ユニット26A及び2
6Dはパケットを待ち行列化し、それらをネットワーク
に通信リンク16を介して他のルータ又は宛先システム
に送る。
アドレス識別エンジン20において、フェッチユニット
30は前送りエンジンI4からパケット宛先アドレスを
受信し、アドレス又はこのアドレスの特定の部分を検索
ユニット40に与える。検索ユニット40はフェッチユ
ニット30によって与えられるアドレス又はアドレス部
分を使用して直接メモリー50にアクセスする。メモリ
ー50からフェッチされた中間結果は検索ユニット40
によって処理され、フェッチユニット30によって与え
られたアドレスと関連して中間結果をにアクセスし、結
果的に最終結果を得る。この最終結果は検索ユニット4
0によって前送りエンジン14によって戻され、このエ
ンジンはこの結果を前送りデータベース(図示せず)の
インデックスとして使用する。
30は前送りエンジンI4からパケット宛先アドレスを
受信し、アドレス又はこのアドレスの特定の部分を検索
ユニット40に与える。検索ユニット40はフェッチユ
ニット30によって与えられるアドレス又はアドレス部
分を使用して直接メモリー50にアクセスする。メモリ
ー50からフェッチされた中間結果は検索ユニット40
によって処理され、フェッチユニット30によって与え
られたアドレスと関連して中間結果をにアクセスし、結
果的に最終結果を得る。この最終結果は検索ユニット4
0によって前送りエンジン14によって戻され、このエ
ンジンはこの結果を前送りデータベース(図示せず)の
インデックスとして使用する。
他の動作モードにおいて、データベースは管理エンジン
18によって使用することができる(付録Bを参照)。
18によって使用することができる(付録Bを参照)。
管理エンジン18はメモリー50内に記憶されるデータ
ベースを生成し、それを維持するための責務を有する。
ベースを生成し、それを維持するための責務を有する。
管理エンジン18は連続的な基礎の上の現在のネットワ
ークの接続性に関する情報を、図示されていない通路を
通して受信する。管理エンジン18は、ネットワーク接
続性情報から発生されるアドレス部分を検索ユニット4
0に与える。この検索の結果は戻されてエンジン18を
管理する。このエンジンはこの結果を使用してデータベ
ース内の現在の情報を学習する。データベースを更新す
る必要があり、それが現在のネットワーク接続性を正し
く表現する場合、管理エンジン18は直接メモリー50
をアクセスしてその変化を達成する。
ークの接続性に関する情報を、図示されていない通路を
通して受信する。管理エンジン18は、ネットワーク接
続性情報から発生されるアドレス部分を検索ユニット4
0に与える。この検索の結果は戻されてエンジン18を
管理する。このエンジンはこの結果を使用してデータベ
ース内の現在の情報を学習する。データベースを更新す
る必要があり、それが現在のネットワーク接続性を正し
く表現する場合、管理エンジン18は直接メモリー50
をアクセスしてその変化を達成する。
本発明の背景技術において述べられた様に、ルータlO
はレベルl及びレベル2配送を達成する能力を有さねば
ならない。レベル1配送はフェッチユニット30によっ
て与えられるネットワーク宛先アドレスの厳密な一致が
データベース内にあることを要求する。実現されるべき
厳密一致を可能にする多数の公知のデータベース構造が
ある。
はレベルl及びレベル2配送を達成する能力を有さねば
ならない。レベル1配送はフェッチユニット30によっ
て与えられるネットワーク宛先アドレスの厳密な一致が
データベース内にあることを要求する。実現されるべき
厳密一致を可能にする多数の公知のデータベース構造が
ある。
レベル2配送は、しかしながら、厳密な一致が見出され
ない場合は、ネットワーク宛先アドレスの最も長い接頭
語であるデータベース内の項目が位置されるべきことを
要求する。この要求は使用することのできる異なるデー
タベース構造の数を制限する。
ない場合は、ネットワーク宛先アドレスの最も長い接頭
語であるデータベース内の項目が位置されるべきことを
要求する。この要求は使用することのできる異なるデー
タベース構造の数を制限する。
本発明において、メモリー50内に記憶されるデータベ
ースはトリーとして知られる樹木構造の特定の形態であ
る。第4図はトリー構造データベースの如き部分の一例
である。トリーの各ノードは他のノード110に対して
16のポインターの配列を有している。トリーの根から
の他のノードへの遷移は、検索引き数(例えば、ネット
ワーク宛先アドレス)をセグメント数列(例えば、セミ
オクテツト)に分解することによって達成される。
ースはトリーとして知られる樹木構造の特定の形態であ
る。第4図はトリー構造データベースの如き部分の一例
である。トリーの各ノードは他のノード110に対して
16のポインターの配列を有している。トリーの根から
の他のノードへの遷移は、検索引き数(例えば、ネット
ワーク宛先アドレス)をセグメント数列(例えば、セミ
オクテツト)に分解することによって達成される。
トリー内の各ノードにおいて、この数列内の次のセミオ
クテツトは、零から15までの値を有しており、16の
ポインターの一つを選択するのに使用される。
クテツトは、零から15までの値を有しており、16の
ポインターの一つを選択するのに使用される。
第3図を参照する。現在ノードレジスタ41は検索中に
横断するトリーのノードを示す。検索が開始されると、
現在ノードレジスタ41がトリーの根のポイントに設定
される。検索引き数のセミオクテツトへの分解において
、形成されたセミオクテツトは前で議論されたN5AP
の構成数に対応する。
横断するトリーのノードを示す。検索が開始されると、
現在ノードレジスタ41がトリーの根のポイントに設定
される。検索引き数のセミオクテツトへの分解において
、形成されたセミオクテツトは前で議論されたN5AP
の構成数に対応する。
第4図を参照する。ポインターを有するノード110は
親ノードと呼ばれる。ポインターの目標は子ノードとな
る。他のノード(例えば、ノード110−8.110−
9及び110−11)に対するポインターを含まないト
リー内のノードは「ターミナルノード」と呼ばれる。検
索がターミナルノードに到達する時、検索を終了する。
親ノードと呼ばれる。ポインターの目標は子ノードとな
る。他のノード(例えば、ノード110−8.110−
9及び110−11)に対するポインターを含まないト
リー内のノードは「ターミナルノード」と呼ばれる。検
索がターミナルノードに到達する時、検索を終了する。
この検索は、次のセミオクテツトポイントが空ノード1
15を指し示す場合も同様に終了する。(第3図の数個
のノードが空結果値を含むが、明瞭のために、多くの他
の空ノードが除去されている。)ターミナルノードに検
索引き数円のセミオクテツトの全てを使用して到達する
と、厳密一致がデータベース内に位置し、ターミナルノ
ードは、検索引き数に対応する結果値120を保持する
。しかしながら、セミオクテツトの数列の全てが使用さ
れる前に、空ノード115に到達するか、又はターミナ
ルノードに到達すると、検索対象の厳密一致がデータベ
ース内に含まれない。
15を指し示す場合も同様に終了する。(第3図の数個
のノードが空結果値を含むが、明瞭のために、多くの他
の空ノードが除去されている。)ターミナルノードに検
索引き数円のセミオクテツトの全てを使用して到達する
と、厳密一致がデータベース内に位置し、ターミナルノ
ードは、検索引き数に対応する結果値120を保持する
。しかしながら、セミオクテツトの数列の全てが使用さ
れる前に、空ノード115に到達するか、又はターミナ
ルノードに到達すると、検索対象の厳密一致がデータベ
ース内に含まれない。
検索対象の接頭語はデータベースに含まれことが可能で
ある。この場合、検索中に横切られるノードの少なくと
も一つのノードは結果値120を保持する。横切られた
ノードは結果値(例えば、ノード110−13で終了す
る検索)を含まない場合、データベース内にこのような
接頭語は存在しない。結果値を保持する複数ノードが横
切られる場合、検索対象の複数接頭語がデータベース内
に含まれる。第1のこの様な横切られたノードは最も短
い接頭語に対応する結果を保持し、最後に横切られたこ
の様なノードは最も長い接頭語に対応する結果を保持す
る。最も長い接頭語に対応する結果は検索の結果として
戻される。
ある。この場合、検索中に横切られるノードの少なくと
も一つのノードは結果値120を保持する。横切られた
ノードは結果値(例えば、ノード110−13で終了す
る検索)を含まない場合、データベース内にこのような
接頭語は存在しない。結果値を保持する複数ノードが横
切られる場合、検索対象の複数接頭語がデータベース内
に含まれる。第1のこの様な横切られたノードは最も短
い接頭語に対応する結果を保持し、最後に横切られたこ
の様なノードは最も長い接頭語に対応する結果を保持す
る。最も長い接頭語に対応する結果は検索の結果として
戻される。
多くの場合に、子ノード及び親ノードに対する結果値1
20は同じである。これらの場合(例えば、ノード11
0−5及び110−7) 、子ノードは結果値120を
保持しない。検索が、結果値120を含まない子ノード
で終了する場合、結果値を有する最も最近横切られた前
のノードの結果値120が戻される。この様にして、デ
ータベースに記憶される接頭語は、単一のみのノードで
導入された対応する結果値を有しており、保守を簡略化
している。
20は同じである。これらの場合(例えば、ノード11
0−5及び110−7) 、子ノードは結果値120を
保持しない。検索が、結果値120を含まない子ノード
で終了する場合、結果値を有する最も最近横切られた前
のノードの結果値120が戻される。この様にして、デ
ータベースに記憶される接頭語は、単一のみのノードで
導入された対応する結果値を有しており、保守を簡略化
している。
以上の記述は、トリー構造データベースがどの様にして
所与の検索引き数の厳密一致又は最適接頭語一致を検索
工程が達成するのに使用できるかを概説した。データベ
ースの圧縮の2つの形態は本発明の好適な態様で使用さ
れて、トリー構造を支持するのに必要とされるメモリー
量を減少する。
所与の検索引き数の厳密一致又は最適接頭語一致を検索
工程が達成するのに使用できるかを概説した。データベ
ースの圧縮の2つの形態は本発明の好適な態様で使用さ
れて、トリー構造を支持するのに必要とされるメモリー
量を減少する。
これらはポインター圧縮及び通路圧縮として知られてい
る。
る。
第5図を参照する。ポインター圧縮は空ノードの全て及
び空ノードに対するポインターの全てをトリーから除去
して達成される。これは、ポインタービットマスク11
5をトリー内の各親ノードに関連することにより行われ
る。ビットマスクはどの子ノードが空であるか、即ち、
どのポインター105が空ノードを示すのかを指示する
。マスク内の各ビットは、親ノードポインターの一つに
対応し、且つこのポインター目標ノードが非空である場
合に設定され、その他の場合クリアーされる。
び空ノードに対するポインターの全てをトリーから除去
して達成される。これは、ポインタービットマスク11
5をトリー内の各親ノードに関連することにより行われ
る。ビットマスクはどの子ノードが空であるか、即ち、
どのポインター105が空ノードを示すのかを指示する
。マスク内の各ビットは、親ノードポインターの一つに
対応し、且つこのポインター目標ノードが非空である場
合に設定され、その他の場合クリアーされる。
例えば、根ノード100はビットマスク1150に関連
する。2つの非空子ノード110−1.110−2は根
ノード100以下に存在する。従って、根ノードビット
マスク115−0は2つのrlJ ビットを含み、それ
ぞれ非空子ノードに対応する。マスクの全ての他のビッ
トは「0」であり、根ノードの全ての他の子ノードは空
ノードであることを示している。
する。2つの非空子ノード110−1.110−2は根
ノード100以下に存在する。従って、根ノードビット
マスク115−0は2つのrlJ ビットを含み、それ
ぞれ非空子ノードに対応する。マスクの全ての他のビッ
トは「0」であり、根ノードの全ての他の子ノードは空
ノードであることを示している。
第5図を第4図と比較することによって、これらの2つ
の「1」ビットの位置が2つのポインターの位置に厳密
に対応することが分かる。動作において、子ノードに移
動する前に、検索ユニット40が親ビットマスク115
をチエツクして新たなノードが非空であることを決定す
る。新たなノードが空の場合、新たなノードに移動する
ことなしに直ちに終了する。
の「1」ビットの位置が2つのポインターの位置に厳密
に対応することが分かる。動作において、子ノードに移
動する前に、検索ユニット40が親ビットマスク115
をチエツクして新たなノードが非空であることを決定す
る。新たなノードが空の場合、新たなノードに移動する
ことなしに直ちに終了する。
ここで、第5図を参照する。全ての空ノード(及び空ノ
ードを示すポインター)はトリーから除去されて記憶領
域を節約する。全トリーに対して一つのみの空ノードを
記憶することが必要となる場合があるので、メモリー節
約は空ノードに対するポインターの除去の結果である。
ードを示すポインター)はトリーから除去されて記憶領
域を節約する。全トリーに対して一つのみの空ノードを
記憶することが必要となる場合があるので、メモリー節
約は空ノードに対するポインターの除去の結果である。
ポインター比較により、トリー構造データベースに必要
とされるメモリーが減少できるが、現在ノードアドレス
の計算がより複雑になる。新たなノードのアドレスを決
定するために、検索ユニット40は親ビットマスク11
5を参照して、ポインター105の数及び配布を決定し
なければならない。ビットマスクが、数列内の次のセミ
オクテツトに対応するポインターが存在することを示す
場合、ビットマスクか、親ノード内に記憶されたポイン
ターのリスト内の要求されるポインター115の位置を
決定するのに使用される。
とされるメモリーが減少できるが、現在ノードアドレス
の計算がより複雑になる。新たなノードのアドレスを決
定するために、検索ユニット40は親ビットマスク11
5を参照して、ポインター105の数及び配布を決定し
なければならない。ビットマスクが、数列内の次のセミ
オクテツトに対応するポインターが存在することを示す
場合、ビットマスクか、親ノード内に記憶されたポイン
ターのリスト内の要求されるポインター115の位置を
決定するのに使用される。
通路圧縮を導入するために、先ず、ポインター圧縮は空
ノードを及び空ノードに対するポインターを除去するが
、根ノードから所与の結果ノード塩の通路長(即ち、ノ
ードの数)は減少しないことに注意する。通路圧縮はこ
の様な減少を達成するのに使用される。
ノードを及び空ノードに対するポインターを除去するが
、根ノードから所与の結果ノード塩の通路長(即ち、ノ
ードの数)は減少しないことに注意する。通路圧縮はこ
の様な減少を達成するのに使用される。
通路圧縮はデータベース内の各ノードを除去する。この
データベースは(1)一つのみの子ノード、及び(2)
非結果値又は親ノードと同じ結果値を有する。第5図の
ノード110−7はこれらの要求を満足する。第6図を
参照する。通路圧縮の後、ノード110−7が除去され
、ノード110−11はノード110−2の直接下であ
る。
データベースは(1)一つのみの子ノード、及び(2)
非結果値又は親ノードと同じ結果値を有する。第5図の
ノード110−7はこれらの要求を満足する。第6図を
参照する。通路圧縮の後、ノード110−7が除去され
、ノード110−11はノード110−2の直接下であ
る。
本発明の好適な態様に於いて、(一つ以上の)除去され
たノードに対応するセミオクテツトが通路圧縮数ストリ
ング125として記憶される。
たノードに対応するセミオクテツトが通路圧縮数ストリ
ング125として記憶される。
(第1図において、ストリングは単一数の長さである)
。動作において、検索ユニット40は通路圧縮数ストリ
ング125の番数を検索対象の連続するセミオクテツト
と比較する。次のノードに進むためには、全ての比較が
同等であることを示さねばならない。ある比較が失敗す
ると、検索は、通路比較数ストリング125の直前を横
切るノードで終了する。通路比較をこの様にして実施す
ることにより、トリーデータベースは検索対象に対する
最適接頭語を探すのに使用できる。これは、スキップさ
れたセミオクテツトが処理されない場合は可能ではない
。
。動作において、検索ユニット40は通路圧縮数ストリ
ング125の番数を検索対象の連続するセミオクテツト
と比較する。次のノードに進むためには、全ての比較が
同等であることを示さねばならない。ある比較が失敗す
ると、検索は、通路比較数ストリング125の直前を横
切るノードで終了する。通路比較をこの様にして実施す
ることにより、トリーデータベースは検索対象に対する
最適接頭語を探すのに使用できる。これは、スキップさ
れたセミオクテツトが処理されない場合は可能ではない
。
好適な態様において、通路数ストリングは子ノードに記
憶される。ストリングが子ノードに存在する場合、スト
リングは、子ノードに到達するために検索対象の後続の
セミオクテツトに連続的に突き合わされる。ストリング
突合せが失敗すると、失敗は空ポインターが親ノードで
選択されるかの様に取り扱われる。
憶される。ストリングが子ノードに存在する場合、スト
リングは、子ノードに到達するために検索対象の後続の
セミオクテツトに連続的に突き合わされる。ストリング
突合せが失敗すると、失敗は空ポインターが親ノードで
選択されるかの様に取り扱われる。
この工程は、ノード110−2と110−11との間の
通路数ストリング125の挿入によって第6図内に図示
される。ノード内の通路数ストリングの存在がそのノー
ドのフラッグビットによって示される。このフラグがセ
ットされると、ノードは関連する通路数ストリングを有
する。セットされないと、ノードはこの様なストリング
を含まない。第6図に示される様に、フラグビットはノ
ード110の各々に含まれる。
通路数ストリング125の挿入によって第6図内に図示
される。ノード内の通路数ストリングの存在がそのノー
ドのフラッグビットによって示される。このフラグがセ
ットされると、ノードは関連する通路数ストリングを有
する。セットされないと、ノードはこの様なストリング
を含まない。第6図に示される様に、フラグビットはノ
ード110の各々に含まれる。
従って、ポインター圧縮及び通路圧縮はトリー構造デー
タベースに必要とされるメモリーを減少するが、非圧縮
データベースと同じ機能を正確に許容する。
タベースに必要とされるメモリーを減少するが、非圧縮
データベースと同じ機能を正確に許容する。
上述された最適化されたトリー構造は成る補強を伴って
、DECNETフェイズV配送の状況のO8Iネットワ
ーク宛先アドレス(NSAP)を正しく処理することを
可能する。この記述された機構は、厳密な一致及び入力
アドレスの最大接頭語一致を見出すことのできる検索に
対して設けられる。これらの機構は、1)IDPよりも
より短い記憶アドレス接頭語を、先行有効IDI数が記
憶された接頭語の有効IDI数に等しいアドレスに一致
することを可能にし、ii)領域アドレスの認識を許容
して、レベル1データベースへの遷移を指示するために
補強されねばならない(ネットワークアドレスは長さが
可変であるので、記憶された領域アドレスが入力アドレ
スの先行セミオクテツトと突き合うことが、突合せ領域
アドレス以後に正確に14個のセミオクテツトが残って
いるという要求を入力アドレスが満足することなしに可
能となる。)。
、DECNETフェイズV配送の状況のO8Iネットワ
ーク宛先アドレス(NSAP)を正しく処理することを
可能する。この記述された機構は、厳密な一致及び入力
アドレスの最大接頭語一致を見出すことのできる検索に
対して設けられる。これらの機構は、1)IDPよりも
より短い記憶アドレス接頭語を、先行有効IDI数が記
憶された接頭語の有効IDI数に等しいアドレスに一致
することを可能にし、ii)領域アドレスの認識を許容
して、レベル1データベースへの遷移を指示するために
補強されねばならない(ネットワークアドレスは長さが
可変であるので、記憶された領域アドレスが入力アドレ
スの先行セミオクテツトと突き合うことが、突合せ領域
アドレス以後に正確に14個のセミオクテツトが残って
いるという要求を入力アドレスが満足することなしに可
能となる。)。
第1補強に対する要求を図示する例として、データベー
ス内に記憶される接頭語37−123を記憶する。この
例において、AF I r37Jは、IDP長が16
数(即ち、IDI長が14数)であることを示している
。ハイフンの後に続く数、即ちrl 23JはIDIの
先行有効数である。例えばフェッチ30によって与えら
れ、そのAPIが「37」に等しく、先行有効IDI数
がr123」に等しい全アドレスは、接頭語37−12
3の認識を示すトリー内のノードを横切らばならない。
ス内に記憶される接頭語37−123を記憶する。この
例において、AF I r37Jは、IDP長が16
数(即ち、IDI長が14数)であることを示している
。ハイフンの後に続く数、即ちrl 23JはIDIの
先行有効数である。例えばフェッチ30によって与えら
れ、そのAPIが「37」に等しく、先行有効IDI数
がr123」に等しい全アドレスは、接頭語37−12
3の認識を示すトリー内のノードを横切らばならない。
フェッチ330で与えられる以下の3つのアドレスを考
える。
える。
(i) 3700000000012345678
9abcdef(ii) 370000000000
0123456789ab(iii)’3700000
0000000123456789abcdef第1ア
ドレスがr12345Jに等しい有効IDIを有してい
る。第2アドレスはrl 23Jに等しい有効IDI数
を有している。第3アドレスは「12」に等しい有効I
DI数を有している。
9abcdef(ii) 370000000000
0123456789ab(iii)’3700000
0000000123456789abcdef第1ア
ドレスがr12345Jに等しい有効IDIを有してい
る。第2アドレスはrl 23Jに等しい有効IDI数
を有している。第3アドレスは「12」に等しい有効I
DI数を有している。
従って、第1及び第2アドレスは接頭語37−123を
含み、第3アドレスは含まない。上記接頭語37−12
3を含むアドレス内のIDI (零と11の間)内に付
加数が幾つでも存在することができるので、改良されな
いアドレス認識トリーは接頭語37−123に対して1
2の異なる分岐を有する。各々の分岐は異なる数の付加
数(零から11の範囲内)を表しており、接頭語37−
123に対応する結果がラベルされた異なるノードに先
行する。しかしながら、この構造は、不格好であり、メ
モリーをより必要とする。
含み、第3アドレスは含まない。上記接頭語37−12
3を含むアドレス内のIDI (零と11の間)内に付
加数が幾つでも存在することができるので、改良されな
いアドレス認識トリーは接頭語37−123に対して1
2の異なる分岐を有する。各々の分岐は異なる数の付加
数(零から11の範囲内)を表しており、接頭語37−
123に対応する結果がラベルされた異なるノードに先
行する。しかしながら、この構造は、不格好であり、メ
モリーをより必要とする。
接頭語37−123を記憶する好ましい方法は、全ての
IDI付加数を捨て去ることの出来るものとして取り扱
うことである。次に、接頭語37−123に対応する結
果を記憶するノードはセミオクテツト数列3.7.1.
2.3の後に到達する。好ましい態様においては、パッ
ド数は容易に捨て去られ、トリーの基本動作は変化しな
い。異なる子ノードではなく、親ノードを指し戻すポイ
ンター105をIDI付加数が選択するようにトリーを
構成することによってパッド数は捨てられる。
IDI付加数を捨て去ることの出来るものとして取り扱
うことである。次に、接頭語37−123に対応する結
果を記憶するノードはセミオクテツト数列3.7.1.
2.3の後に到達する。好ましい態様においては、パッ
ド数は容易に捨て去られ、トリーの基本動作は変化しな
い。異なる子ノードではなく、親ノードを指し戻すポイ
ンター105をIDI付加数が選択するようにトリーを
構成することによってパッド数は捨てられる。
(この自己参照の結果として、IDIの第1数に対応す
るノードは関連する通路圧縮数ストリングを有すること
ができない。) さらに改良することなしに、上に挙げられた側内の第3
のアドレスは、−度IDI付加数が捨てられると、通路
3.7、■、2.3に沿って伝達し、接頭語37−12
3を含むことを間違って示す。これを克服するために、
2つの機構が基本トリーに加えられる。i)カウンター
、入力検索アアドレスの残りのIDI数の計数を保守す
る残りIDI長カウンタ43(第3図)、及び1i)1
7個のポインター、これはDSPと呼ばれ、IDIの数
を表す親ノードからDSPの第1数を表す子ノードを指
し示す。IDI長カウンタが零に減少される時、17ポ
インターがアクセスされる。
るノードは関連する通路圧縮数ストリングを有すること
ができない。) さらに改良することなしに、上に挙げられた側内の第3
のアドレスは、−度IDI付加数が捨てられると、通路
3.7、■、2.3に沿って伝達し、接頭語37−12
3を含むことを間違って示す。これを克服するために、
2つの機構が基本トリーに加えられる。i)カウンター
、入力検索アアドレスの残りのIDI数の計数を保守す
る残りIDI長カウンタ43(第3図)、及び1i)1
7個のポインター、これはDSPと呼ばれ、IDIの数
を表す親ノードからDSPの第1数を表す子ノードを指
し示す。IDI長カウンタが零に減少される時、17ポ
インターがアクセスされる。
作動において、ネットワーク宛先アドレスの検索中、ア
ドレスの第2セミオクテツトを処理した後到達するトリ
ー内のノードに対応するIDI長である。IDI長が記
憶されたことが、付加フラグビットによって示される。
ドレスの第2セミオクテツトを処理した後到達するトリ
ー内のノードに対応するIDI長である。IDI長が記
憶されたことが、付加フラグビットによって示される。
検索ユニット40はフラグがセットされ、ノードに記憶
されるIDI長を読み、これをIDI長カウンタ43に
転送することを認識する。セミオクテツトが検索ユニッ
ト40(IDIの付加数を含む)によって処理される時
毎に、IDI長カウンター42が1だけ減少される。I
DI長は零まで減少され、全IDIが処理される。この
点で、17(即ちDSP)ポインターが現在ノードで選
択される。AFI値が48又は49である場合、IDI
が存在しない。
されるIDI長を読み、これをIDI長カウンタ43に
転送することを認識する。セミオクテツトが検索ユニッ
ト40(IDIの付加数を含む)によって処理される時
毎に、IDI長カウンター42が1だけ減少される。I
DI長は零まで減少され、全IDIが処理される。この
点で、17(即ちDSP)ポインターが現在ノードで選
択される。AFI値が48又は49である場合、IDI
が存在しない。
従って、これらAFI値に対応するデータベース内のノ
ードは、IDI長が零であり、データベースのDSP区
域内への瞬間遷移に対する17番目のポインターを提供
せねばならない。
ードは、IDI長が零であり、データベースのDSP区
域内への瞬間遷移に対する17番目のポインターを提供
せねばならない。
別の例が、領域アドレスの認識に関連して、基本トリー
の第2補強の必要性を例示している。ルータが領域アド
レス471233400000000abcdによって
定義されるDECNETで作動することを考える。第2
A図及び第2B図を参照すると、この領域アドレスの異
なるフィールドが以下の如く認識される。
の第2補強の必要性を例示している。ルータが領域アド
レス471233400000000abcdによって
定義されるDECNETで作動することを考える。第2
A図及び第2B図を参照すると、この領域アドレスの異
なるフィールドが以下の如く認識される。
次に、以下の3つのネットワーク宛先アドレスがフェッ
チユニット30によって検索ユニット40に与えられる
(ネットワークを伝播するパケットから取り出される)
。
チユニット30によって検索ユニット40に与えられる
(ネットワークを伝播するパケットから取り出される)
。
(i) 47123400000000abcd01
23456789abOO(ii) 47123400
000000abcd0123456ff(iii)4
7123400000000abcdO1234567
ff89ab00第1アドレスの先行数が、ルータが所
在する領域の領域アドレスに厳密に一致する。残り数は
2つのフィールドとして解釈される。即ち、(a)アド
レスのDECNETレベルIIレベ分である12セミオ
クテツトフイールド0123456789ab、及び(
b)DECNET SELフィールドのセミオクテツ
トフィールドOOである。従って、第1アドレスが抜き
取られたパケットは、この領域内のEndシステムに対
して宛てられたものと見做されるべきであり、DECN
ETレベルl配送によって配送されるべきである。レベ
ルIIDの厳密一致がデータベース内で見出されで、パ
ケットが正しい終了システムに前送りできるようにすべ
きである。
23456789abOO(ii) 47123400
000000abcd0123456ff(iii)4
7123400000000abcdO1234567
ff89ab00第1アドレスの先行数が、ルータが所
在する領域の領域アドレスに厳密に一致する。残り数は
2つのフィールドとして解釈される。即ち、(a)アド
レスのDECNETレベルIIレベ分である12セミオ
クテツトフイールド0123456789ab、及び(
b)DECNET SELフィールドのセミオクテツ
トフィールドOOである。従って、第1アドレスが抜き
取られたパケットは、この領域内のEndシステムに対
して宛てられたものと見做されるべきであり、DECN
ETレベルl配送によって配送されるべきである。レベ
ルIIDの厳密一致がデータベース内で見出されで、パ
ケットが正しい終了システムに前送りできるようにすべ
きである。
第2のアドレスの先行数はまたルータが存在する領域の
領域アドレスと厳密に一致する。残りの数が試験される
時、9個存在する。従って、残りの数はレベルIID部
分足すSEL部分として解釈することはできず、従って
、特定の宛先アドレスを含むパケットは、ルータが存在
する領域内の終了システムには宛てられない。宛先アド
レスの先行数と領域アドレス間での偶発的な一致が無視
されねばならない。全アドレスの最長接頭語はレベル2
データベース内で探されねばならなく、パケットはレベ
ル2配送で配送される。
領域アドレスと厳密に一致する。残りの数が試験される
時、9個存在する。従って、残りの数はレベルIID部
分足すSEL部分として解釈することはできず、従って
、特定の宛先アドレスを含むパケットは、ルータが存在
する領域内の終了システムには宛てられない。宛先アド
レスの先行数と領域アドレス間での偶発的な一致が無視
されねばならない。全アドレスの最長接頭語はレベル2
データベース内で探されねばならなく、パケットはレベ
ル2配送で配送される。
同様に、第3の例のアドレスの先行数は厳密に領域アド
レスと一致する。ここで、残りの数ストリングはレベル
LID部分足すSEL部分として解釈するには長すぎる
ので、この一致が無視されねばならない。再び、全アド
レスの最長接頭語がレベル2データベース内で探さねば
ならなく、パケットはレベル2配送で配送される。
レスと一致する。ここで、残りの数ストリングはレベル
LID部分足すSEL部分として解釈するには長すぎる
ので、この一致が無視されねばならない。再び、全アド
レスの最長接頭語がレベル2データベース内で探さねば
ならなく、パケットはレベル2配送で配送される。
上記3つのアドレスの検索がトリーデータベースで有効
な時、有効アドレスとの一致に対応するデータベース内
のノード化及びこれを越えてこれらアドレスが同じ通路
を通ることは明らかである。
な時、有効アドレスとの一致に対応するデータベース内
のノード化及びこれを越えてこれらアドレスが同じ通路
を通ることは明らかである。
上述された様に、第1アドレスは、−度領域アドレスと
の一致が発生すると、異なる通路を通ることが必要とな
る。この地点で、分岐は、全レベル1アドレスを保持す
る論理的に分離したデータベースであるサブトリーを構
成せねばならない。
の一致が発生すると、異なる通路を通ることが必要とな
る。この地点で、分岐は、全レベル1アドレスを保持す
る論理的に分離したデータベースであるサブトリーを構
成せねばならない。
レベル2データベースからレベル1データベースへの分
岐を許容するために、別の18番目のポインターが各ト
リーノードに加えられる。18番目即ち「レベル1」ポ
インターを使用するために、2つの付加的な機構が基本
トリーに加えられる。
岐を許容するために、別の18番目のポインターが各ト
リーノードに加えられる。18番目即ち「レベル1」ポ
インターを使用するために、2つの付加的な機構が基本
トリーに加えられる。
(i)現存する長さレジスタ(第3図のCRL 42)
内のカウンタ及び比較器であり、これらは、検索対象の
残りの正確に14のセミオクテツトであることを示す。
内のカウンタ及び比較器であり、これらは、検索対象の
残りの正確に14のセミオクテツトであることを示す。
及び(ii)各ノードに記憶される付加フラグビットで
あり、これは、領域アドレス(即ち、ルータが存在する
領域の領域アドレス)に厳密に一致した後到達するトリ
ー内のノードのみにおいてセットされる。このフラグビ
ットは「レベルl遷移可能jビットとして参照される。
あり、これは、領域アドレス(即ち、ルータが存在する
領域の領域アドレス)に厳密に一致した後到達するトリ
ー内のノードのみにおいてセットされる。このフラグビ
ットは「レベルl遷移可能jビットとして参照される。
全検索対象の長さ(即ち、構成セミオクテツトの数)が
、それが前送りエンジン14によって初めてフェッチユ
ニット30に与えられる時に、CRLレジスタ42にロ
ードされる。アドレス自体の部分でないが、アドレスの
長さがISO8348/AD内で規定されたパケットヘ
ッダーに含まれる。CRLレジスタ42は、セミオクテ
ツトが検索ユニット40で処理される時に一度減少され
る。
、それが前送りエンジン14によって初めてフェッチユ
ニット30に与えられる時に、CRLレジスタ42にロ
ードされる。アドレス自体の部分でないが、アドレスの
長さがISO8348/AD内で規定されたパケットヘ
ッダーに含まれる。CRLレジスタ42は、セミオクテ
ツトが検索ユニット40で処理される時に一度減少され
る。
レベルl遷移可能ビットがセットされ、且つCRLレジ
スタに厳密に14のセミオクテツトが残っている場合の
み、18番目のポインターが選択される。18番目のポ
インターの子ノードがレベルlデータベースの根ノード
である。検索対象からの次のセミオクテツトは、レベル
1データベースへの遷移の後迄は使い尽くされないこと
に注意すべきである。
スタに厳密に14のセミオクテツトが残っている場合の
み、18番目のポインターが選択される。18番目のポ
インターの子ノードがレベルlデータベースの根ノード
である。検索対象からの次のセミオクテツトは、レベル
1データベースへの遷移の後迄は使い尽くされないこと
に注意すべきである。
作動において、レベル1データベースへの遷移が、ネッ
トワーク宛先アドレスの検索中に発生する場合、アドレ
スを含むパケットがルータが存在する領域内の終了シス
テムに宛てられる。上述されたように、厳密一致が宛先
アドレスのレベルIID部分に対するレベルlデータベ
ースに見出されねばならない。即ち、レベル2データベ
ースの初期の横切りの間得られる前の「最適接頭語」は
、レベルl内のへの遷移が一度発生すると、重要でな(
なる。厳密な一致がレベル1データベース内に見出すこ
とができない場合は、パケットは、その宛先アドレスが
存在しないので、廃棄されねばならない。レベル1内で
の検索から戻される結果は従って厳密突合せに対応しな
ければならず、その他の場合は、空の結果が戻されねば
ならない。
トワーク宛先アドレスの検索中に発生する場合、アドレ
スを含むパケットがルータが存在する領域内の終了シス
テムに宛てられる。上述されたように、厳密一致が宛先
アドレスのレベルIID部分に対するレベルlデータベ
ースに見出されねばならない。即ち、レベル2データベ
ースの初期の横切りの間得られる前の「最適接頭語」は
、レベルl内のへの遷移が一度発生すると、重要でな(
なる。厳密な一致がレベル1データベース内に見出すこ
とができない場合は、パケットは、その宛先アドレスが
存在しないので、廃棄されねばならない。レベル1内で
の検索から戻される結果は従って厳密突合せに対応しな
ければならず、その他の場合は、空の結果が戻されねば
ならない。
第7図に戻る。部分データベースの4つのノードが図示
され、本発明に従うデータベースを通しての検索の漸進
の一例として使用される。この例において、通路圧縮が
使用され、ポインター圧縮は使用されない。
され、本発明に従うデータベースを通しての検索の漸進
の一例として使用される。この例において、通路圧縮が
使用され、ポインター圧縮は使用されない。
検索は次の様にして漸進される。アドレス検索はノード
110−Aに到達する。通路及びIDIフラグは到達し
た際にチエツクされる。両フラグがノード110−A内
で「0」にセットされないので、ノード110−Aは特
定の処理を必要としない。従って、検索は次のセミオク
テ・ソトを使用してポインターの配列に索引をつけ、子
ノードに進む。この例において、フェッチされたセミオ
クテツトは値7を有している。それで検索ユニット40
はポインター7を使用してノード110−Bへ移動する
。
110−Aに到達する。通路及びIDIフラグは到達し
た際にチエツクされる。両フラグがノード110−A内
で「0」にセットされないので、ノード110−Aは特
定の処理を必要としない。従って、検索は次のセミオク
テ・ソトを使用してポインターの配列に索引をつけ、子
ノードに進む。この例において、フェッチされたセミオ
クテツトは値7を有している。それで検索ユニット40
はポインター7を使用してノード110−Bへ移動する
。
ノード110−Hに到達した際に、検索ユニット40は
、通路ストリングフラグが「0」であり、従って、ノー
ド110−Bが関連する数ストリングを有さないことを
知る。しかしながら、rID■」フラグは「1」である
。これはノード1lO−Bが、tDlフィールドの長さ
を含むIDI情報130を含む。(従って、全ての可能
性において、ちょうど処理されたセミオクテツトr1j
が第2APIの数であると想定することができる。)検
索ユニット40はこの情報を回収し、この値をIDI長
さレジスタにロードする。このレジスタは次にセミオク
テツトが処理された時毎に一度減少される。次のセミオ
クテツト(IDIフィールドの第1数)がフェッチされ
、検索が進行される。
、通路ストリングフラグが「0」であり、従って、ノー
ド110−Bが関連する数ストリングを有さないことを
知る。しかしながら、rID■」フラグは「1」である
。これはノード1lO−Bが、tDlフィールドの長さ
を含むIDI情報130を含む。(従って、全ての可能
性において、ちょうど処理されたセミオクテツトr1j
が第2APIの数であると想定することができる。)検
索ユニット40はこの情報を回収し、この値をIDI長
さレジスタにロードする。このレジスタは次にセミオク
テツトが処理された時毎に一度減少される。次のセミオ
クテツト(IDIフィールドの第1数)がフェッチされ
、検索が進行される。
この例の検索において、検索路に対するAPIは、ID
I充填数が10進値0に等しいことを規定する。充填ビ
ットを無視するために、セミオクテツト値0000に対
応するノード110−B内のポインターがノード110
−Bを指し示す。従って、IDI充填数が処理されて、
IDI長さレジスタが零に減少されない限り、検索はノ
ード110−Bを離れない。検索は、非充填(非00(
10)の数が分析された後のみにノードを通常離れる。
I充填数が10進値0に等しいことを規定する。充填ビ
ットを無視するために、セミオクテツト値0000に対
応するノード110−B内のポインターがノード110
−Bを指し示す。従って、IDI充填数が処理されて、
IDI長さレジスタが零に減少されない限り、検索はノ
ード110−Bを離れない。検索は、非充填(非00(
10)の数が分析された後のみにノードを通常離れる。
検索が順次従う成る通路に於いて、通路ストリングフラ
グがセットされるノード110−Dに検索が到達するこ
とがある。これは、ノード110−Dが通路数ストリン
グ125を含むことを示している。ノード110−Dで
処理が更に行われる前に、検索ユニットは、通路数スト
リング125を回収し、ストリングの要素を検索ユニッ
トに与えられる次のセミオクテツトと比較する。全数ス
トリングが連続的に比較された後のみに、検索はノード
110−Dを更に処理する。
グがセットされるノード110−Dに検索が到達するこ
とがある。これは、ノード110−Dが通路数ストリン
グ125を含むことを示している。ノード110−Dで
処理が更に行われる前に、検索ユニットは、通路数スト
リング125を回収し、ストリングの要素を検索ユニッ
トに与えられる次のセミオクテツトと比較する。全数ス
トリングが連続的に比較された後のみに、検索はノード
110−Dを更に処理する。
更に処理が行われている際、検索ユニットは、結果フィ
ールドは値xyzを含み、今までに処理されたセミオク
テツトが、配送情報と関連する接頭語であることを示し
ていることを発見する(接頭語は結果値xyzと関連す
る)。結果値xyzは検索ユニットによって記憶される
。検索中に別の結果に遭遇しない場合、値xyzが検索
結果として戻され、この関連する接頭語が、この特定の
検索引き数に対するデータベース中に記憶された最適接
頭語であることが示される。
ールドは値xyzを含み、今までに処理されたセミオク
テツトが、配送情報と関連する接頭語であることを示し
ていることを発見する(接頭語は結果値xyzと関連す
る)。結果値xyzは検索ユニットによって記憶される
。検索中に別の結果に遭遇しない場合、値xyzが検索
結果として戻され、この関連する接頭語が、この特定の
検索引き数に対するデータベース中に記憶された最適接
頭語であることが示される。
その後、検索ユニットは、DSPフラグが設定されるこ
とを発見する。これは、ノード110−Dが、データベ
ースのDSP区域内を指し示す非空17番目のポインタ
ーを有する。(実際の実行の際は、DSPフラグビット
は、明示的ビットよりも空及び非空DSPポインターを
使用することにより実行さる。)IDI長さレジスタが
厳密に零に減少された場合及びその場合のみに、この1
7番目のポインターがアクセスされる。この場合、検索
はデータベースのDSP区域内で続行する。
とを発見する。これは、ノード110−Dが、データベ
ースのDSP区域内を指し示す非空17番目のポインタ
ーを有する。(実際の実行の際は、DSPフラグビット
は、明示的ビットよりも空及び非空DSPポインターを
使用することにより実行さる。)IDI長さレジスタが
厳密に零に減少された場合及びその場合のみに、この1
7番目のポインターがアクセスされる。この場合、検索
はデータベースのDSP区域内で続行する。
IDI長さが零に減少した場合、検索対象の次のセミオ
クテツトがノード110−Dの第1の16ポインターの
一つを選択するのに使用される。
クテツトがノード110−Dの第1の16ポインターの
一つを選択するのに使用される。
検索が従う他の通路において、検索はノード1to−C
に到達する場合がある。ノード110−Cにおいて、レ
ベルlフラグがセットされる。これは、以前に処理され
た検索引き数のセミオクテツトがルータ(即ち、このデ
ータベースが含まれるルータ)が存在する領域の領域ア
ドレスに厳密に一致することを示す。この点でもし、検
索引き数の残りに14のセミオクテツトが存在すると、
検索引く数がこのDECNET領域内の終了システムの
アドレスとして見做され、従って、18番目のポインタ
ーがノード110−Cで選択され、検索がレベル1サブ
トリーで再開される。
に到達する場合がある。ノード110−Cにおいて、レ
ベルlフラグがセットされる。これは、以前に処理され
た検索引き数のセミオクテツトがルータ(即ち、このデ
ータベースが含まれるルータ)が存在する領域の領域ア
ドレスに厳密に一致することを示す。この点でもし、検
索引き数の残りに14のセミオクテツトが存在すると、
検索引く数がこのDECNET領域内の終了システムの
アドレスとして見做され、従って、18番目のポインタ
ーがノード110−Cで選択され、検索がレベル1サブ
トリーで再開される。
従って、各ノードは数種のフラグ及びあり得る情報片を
含んでいる。各ノードは(ポインター圧縮が使用される
所で)18ビツトポインタービツトマスク、後続のノー
ド(又はそれ自体)に対する16個のポインター、DS
Pポインター、レベルIポインター、通路圧縮ストリン
グ及びその長さ表示、結果情報、及びIDI長さ情報を
含むことができる。
含んでいる。各ノードは(ポインター圧縮が使用される
所で)18ビツトポインタービツトマスク、後続のノー
ド(又はそれ自体)に対する16個のポインター、DS
Pポインター、レベルIポインター、通路圧縮ストリン
グ及びその長さ表示、結果情報、及びIDI長さ情報を
含むことができる。
毘阻呈説」
検索ユニットの特定の実施例がここで記述される。要求
によって、容易に利用可能な最小数の部品を使用し、又
消費される電力を最小にするように設計される。
によって、容易に利用可能な最小数の部品を使用し、又
消費される電力を最小にするように設計される。
最小数の容易に利用可能な部品を使用するという要求に
悩まされる。通路圧縮及びポインター圧縮の技法を介し
てメモリーの使用を最小化することが上述された。実行
の観点からこれらの技法を見ると、通路圧縮が実行され
ねばならず、ポインター圧縮は実行されてはならないこ
とが決定されることがある。ポインター圧縮は必要とさ
れるメモリー量の減少を可能にするが、成るメモリー管
理工程によって管理される小片に、メモリーが分解され
ることが要求される。付加的なオーバーヘッドは、ビッ
トマスクを読出し且つデコードする予備の論理回路、マ
スクの有効ビットを累積する多重レベルハードウェア、
及び圧縮されたベクトルのブロックのアドレス上でこの
累積値を加算する付加的な加算器を有している。
悩まされる。通路圧縮及びポインター圧縮の技法を介し
てメモリーの使用を最小化することが上述された。実行
の観点からこれらの技法を見ると、通路圧縮が実行され
ねばならず、ポインター圧縮は実行されてはならないこ
とが決定されることがある。ポインター圧縮は必要とさ
れるメモリー量の減少を可能にするが、成るメモリー管
理工程によって管理される小片に、メモリーが分解され
ることが要求される。付加的なオーバーヘッドは、ビッ
トマスクを読出し且つデコードする予備の論理回路、マ
スクの有効ビットを累積する多重レベルハードウェア、
及び圧縮されたベクトルのブロックのアドレス上でこの
累積値を加算する付加的な加算器を有している。
このオーバーヘッドは、余分な制御論理回路の使用を要
求するばかりでなく、この余分な論理回路が全サイクル
の臨界通路内にあるので、機械の潜在的なサイクル時間
を減少する。ポインター圧縮を除去することによって、
制御論理回路が大幅に簡略化され、サイクル時間が改善
される。さらにこのメモリー増加は、ポインター圧縮が
効果を有する迄は部品の総数を増加しない。特により大
きなデータベースを用いる別の方法は、かなりより大き
なメモリー使用量を要求する場合がある。
求するばかりでなく、この余分な論理回路が全サイクル
の臨界通路内にあるので、機械の潜在的なサイクル時間
を減少する。ポインター圧縮を除去することによって、
制御論理回路が大幅に簡略化され、サイクル時間が改善
される。さらにこのメモリー増加は、ポインター圧縮が
効果を有する迄は部品の総数を増加しない。特により大
きなデータベースを用いる別の方法は、かなりより大き
なメモリー使用量を要求する場合がある。
この様な別の要求下では、ポインター圧縮を有効に使用
することができるかもしれない。
することができるかもしれない。
認識エンジンは、ここではrWidget−2」システ
ムに適合して設計される。このシステムは小さな3スロ
ット背面基板を有しており、この内の一つはアドレス認
識エンジン(ARE)の形態に対応するものである。背
面基板バスは、特にホスト68020モトローラ社製の
マイクロプロセッサのためのものであり、32アドレス
ビツトでなく、24のみのアドレスビットを有している
。
ムに適合して設計される。このシステムは小さな3スロ
ット背面基板を有しており、この内の一つはアドレス認
識エンジン(ARE)の形態に対応するものである。背
面基板バスは、特にホスト68020モトローラ社製の
マイクロプロセッサのためのものであり、32アドレス
ビツトでなく、24のみのアドレスビットを有している
。
バスのタイミングは、バスインターフェースロジックを
簡単化するために、CPUに比例してスローダウンされ
る。機能的な要求がこのことを指示する場合、CPUが
AREをアクセスする時に2つの待ち状態(200n
s)以下を依然として保証する。
簡単化するために、CPUに比例してスローダウンされ
る。機能的な要求がこのことを指示する場合、CPUが
AREをアクセスする時に2つの待ち状態(200n
s)以下を依然として保証する。
最大のフレキシビリティ−を可能にするため、装置は検
索を初期化するための8つの異なる根ノードを支持する
。特有の根ノードが、異なるアドレスフォーマットを検
索するため又は−級化された検索の種々の形態を達成す
るために選択されることができる。
索を初期化するための8つの異なる根ノードを支持する
。特有の根ノードが、異なるアドレスフォーマットを検
索するため又は−級化された検索の種々の形態を達成す
るために選択されることができる。
中央部品
第3図を参照する。認識エンジン20のメモリーに必要
な4つの基本部品、及び同時に作動する多数のレジスタ
及び基本状態マシン(検索エンジン40として正確に知
られている)がある。4つの中央メモリ一部品が以下に
記述される。
な4つの基本部品、及び同時に作動する多数のレジスタ
及び基本状態マシン(検索エンジン40として正確に知
られている)がある。4つの中央メモリ一部品が以下に
記述される。
DRAMポインターメモリー
認識エンジン20のコアーは、ノードポインターメモリ
ー及び「現在ノード+現在数→次のノード」検索ユニッ
ト40から成る。第8図を参照する。ポインターメモリ
ーは少数の制御論理によって支持されるDRAMメモリ
200の配列によって実現される。16ビツト状態ベク
トル(即ち、ライン202によって運ばれるノードアド
レス)及び(ライン204によって運ばれる)4ビツト
数が1MX16(20ビツト×16ビツト)の様に構成
されたDRAMメモリーを要求し、実現されるべき64
にの状態を可能にする。これは、(「次の状態」の子ノ
ードを有さない)32に空ノード及び次の状態を有する
32に非ターミナルノードが存在することを主張するこ
とにより、実際、認識されるべき少なくとも32にアド
レスを可能とする。その時多くの物理メモリーの半分の
み、即ち、1メガバイト(512KX16として構成さ
れる)のみが必要とされる。このサイズのDRAM配列
200が8チツプ(256KX4)チップのみ又は(メ
モリー技術のルックアヘッドを使用して)4チツプ(1
MX4)のみを必要とする。
ー及び「現在ノード+現在数→次のノード」検索ユニッ
ト40から成る。第8図を参照する。ポインターメモリ
ーは少数の制御論理によって支持されるDRAMメモリ
200の配列によって実現される。16ビツト状態ベク
トル(即ち、ライン202によって運ばれるノードアド
レス)及び(ライン204によって運ばれる)4ビツト
数が1MX16(20ビツト×16ビツト)の様に構成
されたDRAMメモリーを要求し、実現されるべき64
にの状態を可能にする。これは、(「次の状態」の子ノ
ードを有さない)32に空ノード及び次の状態を有する
32に非ターミナルノードが存在することを主張するこ
とにより、実際、認識されるべき少なくとも32にアド
レスを可能とする。その時多くの物理メモリーの半分の
み、即ち、1メガバイト(512KX16として構成さ
れる)のみが必要とされる。このサイズのDRAM配列
200が8チツプ(256KX4)チップのみ又は(メ
モリー技術のルックアヘッドを使用して)4チツプ(1
MX4)のみを必要とする。
基本マシンは、DRAM200を最高速度でサイクルす
る。この速度は所定のアドレスに対する検索時間に大き
く影響する(現在サイクルに対するデータが変化し始め
た後の次のサイクルに於けるDRAMアドレスを発生す
るのに時間があると仮定してでのことであるが、次のD
RAMアドレスは、本質的に4ビツト数を有するビット
ポインターデータと連結しているので、これは容易に達
成できる。) ノードは従ってライン202上に運ばれた16ビツトに
よって決められる。アドレスの最上位ビットは零に等し
いとすると、ノードが(次のポイ]5.・ターを有さな
い)終点であると(この実行で)で決められるが、他の
場合は、終点でない(即ち、次のポインターを有する)
とされる。
る。この速度は所定のアドレスに対する検索時間に大き
く影響する(現在サイクルに対するデータが変化し始め
た後の次のサイクルに於けるDRAMアドレスを発生す
るのに時間があると仮定してでのことであるが、次のD
RAMアドレスは、本質的に4ビツト数を有するビット
ポインターデータと連結しているので、これは容易に達
成できる。) ノードは従ってライン202上に運ばれた16ビツトに
よって決められる。アドレスの最上位ビットは零に等し
いとすると、ノードが(次のポイ]5.・ターを有さな
い)終点であると(この実行で)で決められるが、他の
場合は、終点でない(即ち、次のポインターを有する)
とされる。
高速ステチックRAM
全64にノードは(次のノードに対するポインターに加
えて)より早(言及された予備情報を提供する必要があ
る。この情報を供給するためには、高速64KXL6ス
タチツクRAM210はDRAMポインター200によ
って同時にアクセスされる。スタチックRAMは現在の
ノードについての以下の情報を与える。
えて)より早(言及された予備情報を提供する必要があ
る。この情報を供給するためには、高速64KXL6ス
タチツクRAM210はDRAMポインター200によ
って同時にアクセスされる。スタチックRAMは現在の
ノードについての以下の情報を与える。
−NIL(空)フラグ:ノードが空(且つ処理が一時停
止)される場合セットされる。
止)される場合セットされる。
−通路ストリング二通路ストリングがノードに記憶され
る場合、非零長がSRAM内に記憶される。
る場合、非零長がSRAM内に記憶される。
一結果フラグ:AFIが行われ(且つノードがIDI長
を含む)場合、セットされる。
を含む)場合、セットされる。
レベル−1フラグニレペルー1遷移可能(DECnet
領域がこのノードで認識される)この情報の物理メモリ
ーへのマツピングは、「メモリーマツプ」ヘッディング
の基で、以下で詳細に説明される。
領域がこのノードで認識される)この情報の物理メモリ
ーへのマツピングは、「メモリーマツプ」ヘッディング
の基で、以下で詳細に説明される。
通路数ストリングメモリ
通路数ストリングメモリー220はDRAMポインター
配列200によって同時にアクセスされる。ストリング
記憶空間は64にノードの各々に割り当てられる。各ノ
ードに記憶される数の個数は高速スタチックRAM21
0内に記憶されるストリング長によって示される。ノー
ドに記憶できる数の最大個数はノードのアドレスによっ
て決められる。3つの異なる最大数がある。48数、1
6数、又は零敗である。ライン202上のノードアドレ
スはどの最大値が有効であるかを示す。この指示は部分
的に結線により及び部分的に論理プログラムにより行う
ことが可能であり、物理メモリーの量を最小にする様設
計される。
配列200によって同時にアクセスされる。ストリング
記憶空間は64にノードの各々に割り当てられる。各ノ
ードに記憶される数の個数は高速スタチックRAM21
0内に記憶されるストリング長によって示される。ノー
ドに記憶できる数の最大個数はノードのアドレスによっ
て決められる。3つの異なる最大数がある。48数、1
6数、又は零敗である。ライン202上のノードアドレ
スはどの最大値が有効であるかを示す。この指示は部分
的に結線により及び部分的に論理プログラムにより行う
ことが可能であり、物理メモリーの量を最小にする様設
計される。
本実施例は、4にノードで48個の数の記憶及び52に
ノードで16個の数の記憶をサポートする。8にノード
はストリング記憶空間を有さない。
ノードで16個の数の記憶をサポートする。8にノード
はストリング記憶空間を有さない。
必要とされる全メモリーは512K又は4 (IMXi
)チップである1M個の数である。再び、次世代の4M
DRAMを使用すると、単一のチップのみが必要とされ
る。
)チップである1M個の数である。再び、次世代の4M
DRAMを使用すると、単一のチップのみが必要とされ
る。
本発明に従うと、ノードアドレス(16ビツト)及びス
トリング数カウンタ(6ビツト)をIMX4DRAMア
ドレスライン(20ビツト)上にマツプする技術が使用
される。実際上、マツピングはノードアドレスラインの
関数として変化する。
トリング数カウンタ(6ビツト)をIMX4DRAMア
ドレスライン(20ビツト)上にマツプする技術が使用
される。実際上、マツピングはノードアドレスラインの
関数として変化する。
これは「メモリーマツプJとして題される以下のセクシ
ョンで更に詳述される。
ョンで更に詳述される。
DSPポインターメモリー
DSPポインターメモリー230はDRAMポインター
配列200で同時にアクセスされる。
配列200で同時にアクセスされる。
「遷移ノード」 (ノードアドレスMSBが1に等しい
所)として知られるノード32にのみがこのメモリーに
アクセスすることができる。このメモリー要求は従って
32KX16であり、2つのみのチップと等しい。ノー
ドにアクセスされるDSPポインターは、IDPの終わ
りが認識された時、即ち、CRLカウンタが零に減少し
た時のIDI検索の後にのみに使用される。
所)として知られるノード32にのみがこのメモリーに
アクセスすることができる。このメモリー要求は従って
32KX16であり、2つのみのチップと等しい。ノー
ドにアクセスされるDSPポインターは、IDPの終わ
りが認識された時、即ち、CRLカウンタが零に減少し
た時のIDI検索の後にのみに使用される。
制御論理
AREに対する中央論理の中央部品が以下に記述される
。
。
タイミング発生器(図示されない)は、メモリー配列の
正しいシーフェンス、即ち、RAS及びCAS制御、リ
フリッシュタイミング、サイクル対サイクル制御等に対
して責任をおっている。
正しいシーフェンス、即ち、RAS及びCAS制御、リ
フリッシュタイミング、サイクル対サイクル制御等に対
して責任をおっている。
フェッチユニット280.290は、要求に基づいて検
索ユニットにアドレスのセミオクテツトを供給する責任
を追っている。このセミオクテツトは、ホストCPUに
よって(この場合)レジスタファイル270へ供給され
る検索アドレスの順序で引き出される。セミオクテツト
は検索エンジンに与えられて、そのタイミング発生器と
同期する。インターロックが与えられる。この場合、検
索エンジンが、ホストCPUがまだ供給していないセミ
オクテツトを必要とする時、検索エンジンはセミオクテ
ツトが準備されるまで停止される。
索ユニットにアドレスのセミオクテツトを供給する責任
を追っている。このセミオクテツトは、ホストCPUに
よって(この場合)レジスタファイル270へ供給され
る検索アドレスの順序で引き出される。セミオクテツト
は検索エンジンに与えられて、そのタイミング発生器と
同期する。インターロックが与えられる。この場合、検
索エンジンが、ホストCPUがまだ供給していないセミ
オクテツトを必要とする時、検索エンジンはセミオクテ
ツトが準備されるまで停止される。
同時操作を行うことのできる3つの数カウンタがある。
現在残余長(CRL)カウンタ240には、CPUによ
って認識レジスタに最初にそれが与えられた時、全検索
引き数のセミオクテツト長がロードされる。このカウン
タは、数が検索エンジンによって消費(処理)された時
毎に1減少される。
って認識レジスタに最初にそれが与えられた時、全検索
引き数のセミオクテツト長がロードされる。このカウン
タは、数が検索エンジンによって消費(処理)された時
毎に1減少される。
カウントがゼロに到達する場合、それは、検索が終了し
なければならないことを示す。
なければならないことを示す。
CRLカウンタ240はサイクル制御器(図示されず、
以下のサイクル制御器の記述を見よ)へライン310上
に信号が送られる。厳密の14個の検索引き数が、レベ
ル−1遷移のために残される。
以下のサイクル制御器の記述を見よ)へライン310上
に信号が送られる。厳密の14個の検索引き数が、レベ
ル−1遷移のために残される。
残余IDI長IDILカウンタ250には、(DECN
ETフェイズV配送明細で規定されるように)AFI値
によって指令されたIDI長がロードされる。ローディ
ングが、ノード(第2AFI数に直ぐ続くノード)で設
定された制御ビットの命令下で発生する。このカウンタ
は、数が検索エンジンで消費された時、1減少される。
ETフェイズV配送明細で規定されるように)AFI値
によって指令されたIDI長がロードされる。ローディ
ングが、ノード(第2AFI数に直ぐ続くノード)で設
定された制御ビットの命令下で発生する。このカウンタ
は、数が検索エンジンで消費された時、1減少される。
このカウント値が零に到達すると、次のマシンサイクル
はDSP遷移サイクルである必要がある。IDILカウ
ンタの値は、新たな検索がスタートする時毎に−64に
リセットされる。この値−64は「長さがロードされな
い」ことを示す。
はDSP遷移サイクルである必要がある。IDILカウ
ンタの値は、新たな検索がスタートする時毎に−64に
リセットされる。この値−64は「長さがロードされな
い」ことを示す。
AREは任意のデータベース内で任意のワードを検索す
るのに使用することができ、IDILカウンタをロード
することが必要でないことに注意(ロードされない場合
、DSP遷移は発生できず且つ発生しない。) ストリング数カウンタ260は、ノードに入った際は常
に零にリセットされる。カウンタは、ストリング数比較
サイクルである全マシンサイクルの終わりに増大され、
従って、このカウンタは、ノードが定数ストリングが記
憶されている場所に到達されるまで、零にリセットされ
続ける。長さNのストリングがノードに記憶される場合
、ストリング数カウンタはその値を零からN−1へ増大
し、(比較が成功したと仮定すると)8個ストリング数
比較サイクルが発生する。ストリング数カウンタが値N
に到達すると比較は最早行われない。
るのに使用することができ、IDILカウンタをロード
することが必要でないことに注意(ロードされない場合
、DSP遷移は発生できず且つ発生しない。) ストリング数カウンタ260は、ノードに入った際は常
に零にリセットされる。カウンタは、ストリング数比較
サイクルである全マシンサイクルの終わりに増大され、
従って、このカウンタは、ノードが定数ストリングが記
憶されている場所に到達されるまで、零にリセットされ
続ける。長さNのストリングがノードに記憶される場合
、ストリング数カウンタはその値を零からN−1へ増大
し、(比較が成功したと仮定すると)8個ストリング数
比較サイクルが発生する。ストリング数カウンタが値N
に到達すると比較は最早行われない。
カウンタは次のマシンサイクルで零にリセットされる。
サイクル制御器(図示せず)は、検索エンジンの中央イ
ンテリジェントであると見做すことができる。これは、
現在マシンサイクルに付いての情報及びバス330上の
ノード制御ワードから制御情報を検査する。サイクル制
御器は、現在のサイクルをどのようにして継続するか(
即ち、ストリング数を比較するか、他のサイクルに対す
るポインターを選択するか、又は停止するか否か)、他
のマシンサイクルを開始するか否か、そしてその場合新
たな数及び/又は新たなノードアドレスを使用するか否
かを決定する。サイクル制御器はまた信号を種々のレジ
スタ及びカウンタに発生する。
ンテリジェントであると見做すことができる。これは、
現在マシンサイクルに付いての情報及びバス330上の
ノード制御ワードから制御情報を検査する。サイクル制
御器は、現在のサイクルをどのようにして継続するか(
即ち、ストリング数を比較するか、他のサイクルに対す
るポインターを選択するか、又は停止するか否か)、他
のマシンサイクルを開始するか否か、そしてその場合新
たな数及び/又は新たなノードアドレスを使用するか否
かを決定する。サイクル制御器はまた信号を種々のレジ
スタ及びカウンタに発生する。
状態レジスタ245.248は最も最近横切られた接頭
語(即ち、現在までの最適接頭語)のノードアドレスを
セーブし、且つ有用な過去の履歴、特に、DSP及び/
又はレベル1遷移が生じたか否か、「現在までの最適接
頭語」がロードされたか否か、残余IDI長レジスタ2
50がロードされたか否かをセーブするのに使用される
。
語(即ち、現在までの最適接頭語)のノードアドレスを
セーブし、且つ有用な過去の履歴、特に、DSP及び/
又はレベル1遷移が生じたか否か、「現在までの最適接
頭語」がロードされたか否か、残余IDI長レジスタ2
50がロードされたか否かをセーブするのに使用される
。
ホストCPUアクセス送受信器252.254.258
.262は、ホストCPUがメンテナンスのためにAR
Eの内部メモリーにアクセスすることを可能にする。検
索エンジンによって採用される同時オペレーションはこ
の目的のために使用不能となる。ホストCPUに対して
、メモリーは集団として、[プログラマ−に友好的な」
構造及びアドレスマツプとして意図される単一データベ
ースとして表れる。この構造において、特定のトリー構
造に関連するデータの全てが、同一基準で構成されたデ
ータ構造内に表れる。
.262は、ホストCPUがメンテナンスのためにAR
Eの内部メモリーにアクセスすることを可能にする。検
索エンジンによって採用される同時オペレーションはこ
の目的のために使用不能となる。ホストCPUに対して
、メモリーは集団として、[プログラマ−に友好的な」
構造及びアドレスマツプとして意図される単一データベ
ースとして表れる。この構造において、特定のトリー構
造に関連するデータの全てが、同一基準で構成されたデ
ータ構造内に表れる。
AREに対する機能的インターフェースAREに対して
基本的に3つの機能的インターフェースが存在する。
基本的に3つの機能的インターフェースが存在する。
1、検索インターフェース−パケット送り;2、検索イ
ンターフェース−メンテナンス;3、メンテナンスイン
ターフェース; これらの内の第1のものは単純である。これはAREを
構成するための第1の理由と考えられる。
ンターフェース−メンテナンス;3、メンテナンスイン
ターフェース; これらの内の第1のものは単純である。これはAREを
構成するための第1の理由と考えられる。
このモードにおいて、ネットワークを横切るパケットか
ら除去された前送りアドレス(及び/又は他のアドレス
、例えばデータリンクアドレス)はAREへ与えられる
。AREはそのアドレスのルックアップを行って、前送
り情報を前送りエンジン(この場合、前送りエンジンは
ホストCPUである)へ戻す。
ら除去された前送りアドレス(及び/又は他のアドレス
、例えばデータリンクアドレス)はAREへ与えられる
。AREはそのアドレスのルックアップを行って、前送
り情報を前送りエンジン(この場合、前送りエンジンは
ホストCPUである)へ戻す。
第2及び第3の機能は両者ともメンテナンスに関係して
いる。メンテナンスに対する検索インターフェースはパ
ケット前送りに対する検索インターフェースと類似して
いる。この場合において、AREに与えられるアドレス
は完全アドレスであることを必要とされない。通常、ア
ドレスの部分は、データベースに対してどの様な構造的
変化がエントリを付加し、削除し、又は改良するために
要求されるかを決めるために、存在する。AREの作動
的振る舞いに対する若干の改良が、メンテナンス検索が
アドレス意味の微妙な違いをうまく処理するために使用
される。
いる。メンテナンスに対する検索インターフェースはパ
ケット前送りに対する検索インターフェースと類似して
いる。この場合において、AREに与えられるアドレス
は完全アドレスであることを必要とされない。通常、ア
ドレスの部分は、データベースに対してどの様な構造的
変化がエントリを付加し、削除し、又は改良するために
要求されるかを決めるために、存在する。AREの作動
的振る舞いに対する若干の改良が、メンテナンス検索が
アドレス意味の微妙な違いをうまく処理するために使用
される。
メンテナンスインターフェースは検索を行わない。実際
、検索エンジンはこのモードにおける作動を禁止してい
る。ARE内のアドレス、データ、及び制御通路は完全
に再構成されて、AREの初期メモリーがホストCPU
に対して可視的であるようにされる。AREの各メモリ
ー成分は、検索エンジンでなく、CPUアドレスライン
をデコーディングすることによりアクセスされる。
、検索エンジンはこのモードにおける作動を禁止してい
る。ARE内のアドレス、データ、及び制御通路は完全
に再構成されて、AREの初期メモリーがホストCPU
に対して可視的であるようにされる。AREの各メモリ
ー成分は、検索エンジンでなく、CPUアドレスライン
をデコーディングすることによりアクセスされる。
検索を行う目的のためのAREに対するCPUインター
フェースは、その検索がパケットを前送りするか、デー
タベースを検査する目的であれば機能的に同じである。
フェースは、その検索がパケットを前送りするか、デー
タベースを検査する目的であれば機能的に同じである。
このインターフェースは直接メモリーマツプ制御、ステ
ィタス及びデータレジスタにより支持される。制御レジ
スタはAREの作動モードが制御されることを可能にし
、スティタスレジスタはアドレス付与手段及び検索結果
を読出す手段をAREに与える。
ィタス及びデータレジスタにより支持される。制御レジ
スタはAREの作動モードが制御されることを可能にし
、スティタスレジスタはアドレス付与手段及び検索結果
を読出す手段をAREに与える。
制御レジスタは以下の制御を与える。
■、検索モード又はメンテナンスモードの選択、2、ア
ドレスフォーマットモード(結果の解釈に影響する) 3、(メンテナンス検索に対する)レベル−1遷移を禁
止する。
ドレスフォーマットモード(結果の解釈に影響する) 3、(メンテナンス検索に対する)レベル−1遷移を禁
止する。
4、 D S P遷移(メンテナンス検索)に対する■
DPを禁止する。
DPを禁止する。
5、検索が完了するまでポール又は停止を選択する。
6、 A REメモリーの制御パリティ−保護。
■、検索エンジン(リセット、検索、−時停止)の状態
。
。
2、検索エンジンに対するアドレスの状態データレジス
タが8つのブロックに分割される。
タが8つのブロックに分割される。
各ブロックは8つの根ノードの一つにおける検索開始に
対応する。ブロックは機能的に同じである。
対応する。ブロックは機能的に同じである。
(8つ根ノードの幾つかは、検索の異なる形態に対して
使用されるデータベースを開始し、他のものは、例えば
、アドレス検索データベースのレベル−1分岐の開始に
対応することができる)。レジスタブロックは64バイ
トのサイズであり、第2の32バイトは第1の32バイ
トの別名であるである(即ち、同じ物理メモリーを使用
する)。
使用されるデータベースを開始し、他のものは、例えば
、アドレス検索データベースのレベル−1分岐の開始に
対応することができる)。レジスタブロックは64バイ
トのサイズであり、第2の32バイトは第1の32バイ
トの別名であるである(即ち、同じ物理メモリーを使用
する)。
−ブロック内の32物理バイトに関して、24バイトま
でが、検索されるべきAREヘアドレスを書き込むため
に使用することができる。第1バイトは供給されるべき
アドレスの全長の長さの指示でなければならない。(こ
のフォーマットは、l808348/AD2からネット
ワークを横切るパケットを直接引き抜くことを可能にす
る。)何れのの別名にアドレスが書き込まれるかの選択
が、長さバイトが、オクテツトで測定された又はセミオ
クテツトで測定されたアドレスの長さとして解釈される
かを決める。オクテツト長さは、■5O8348/AD
2からの直接引き抜きを可能とする。セミオクテツト長
は検索されるべき任意の長さの接頭語を可能にし、メン
テナンス検索に対して特に有用である。(この実施例に
おける)検索できる最大長さアドレスは23オクテツト
又は46セミオクテツトである。
でが、検索されるべきAREヘアドレスを書き込むため
に使用することができる。第1バイトは供給されるべき
アドレスの全長の長さの指示でなければならない。(こ
のフォーマットは、l808348/AD2からネット
ワークを横切るパケットを直接引き抜くことを可能にす
る。)何れのの別名にアドレスが書き込まれるかの選択
が、長さバイトが、オクテツトで測定された又はセミオ
クテツトで測定されたアドレスの長さとして解釈される
かを決める。オクテツト長さは、■5O8348/AD
2からの直接引き抜きを可能とする。セミオクテツト長
は検索されるべき任意の長さの接頭語を可能にし、メン
テナンス検索に対して特に有用である。(この実施例に
おける)検索できる最大長さアドレスは23オクテツト
又は46セミオクテツトである。
検索動作は、検索アドレスの最初の4つのオクテツトが
書かれると直ぐに開始される。4から8のオクテツトを
、これらがCPUによって書き込まれるまで、検索エン
ジンが使用することをインターロック機構は禁止する。
書かれると直ぐに開始される。4から8のオクテツトを
、これらがCPUによって書き込まれるまで、検索エン
ジンが使用することをインターロック機構は禁止する。
同様に、インターロックが4つのグループ内の残余のオ
クテツトに対して与えられる。4つのオクテツトが、A
REが32ビツトデータインターフエースを有している
ので、1書き込み動作によって書き込まれることに注意
する。全長さ中に4つのオクテツトの集合が必要とされ
る場合、長さバイトを含む検索アドレスには任意のデー
タが付は加えられる。検索結果は検索エンジンによって
、検索アドレスがCPUによって書き込まれるのと同じ
ブロック内に書き込まれる。検索エンジンのスティタス
がCPUによって(スティタスレジスタ248を使用し
て)監視され、検索結果が正しいことを決められるか、
又は、インターロックが作動して、この結果が正しくな
るまで結果を読み出す時にCPUが停止されるようにす
る。
クテツトに対して与えられる。4つのオクテツトが、A
REが32ビツトデータインターフエースを有している
ので、1書き込み動作によって書き込まれることに注意
する。全長さ中に4つのオクテツトの集合が必要とされ
る場合、長さバイトを含む検索アドレスには任意のデー
タが付は加えられる。検索結果は検索エンジンによって
、検索アドレスがCPUによって書き込まれるのと同じ
ブロック内に書き込まれる。検索エンジンのスティタス
がCPUによって(スティタスレジスタ248を使用し
て)監視され、検索結果が正しいことを決められるか、
又は、インターロックが作動して、この結果が正しくな
るまで結果を読み出す時にCPUが停止されるようにす
る。
検索結果は8バイト群である。この群は次のフィールド
に分けられる。
に分けられる。
■、要約(lバイト)
2、現在までの結果(2バイト)
3、現在までの取得(2バイト)
4、内部カウンタ値(3バイト)
要約バイト検索成功又は失敗の急速な検出を達成する。
検索が成功の場合は、パケット前送りモードにおいて、
現在までの結果が、全必要な前送り情報を与える遠隔テ
ーブル(即ち、認識エンジンの外部)内へインデックス
を与える。検索失敗の場合において、特にメンテナンス
検索の場合、要約が失敗の理由を指示する。他のフィー
ルドが十分な情報を与えて、所望の場合CPtJによっ
て容易に且つ迅速にAREデータベースが更新されるこ
とを可能にする。更に、これらレジスタ及びその説明の
詳細は付録Bに与えられる。
現在までの結果が、全必要な前送り情報を与える遠隔テ
ーブル(即ち、認識エンジンの外部)内へインデックス
を与える。検索失敗の場合において、特にメンテナンス
検索の場合、要約が失敗の理由を指示する。他のフィー
ルドが十分な情報を与えて、所望の場合CPtJによっ
て容易に且つ迅速にAREデータベースが更新されるこ
とを可能にする。更に、これらレジスタ及びその説明の
詳細は付録Bに与えられる。
CPUは検索エンジンを(「検索」モードでなく)、1
ビツトを制御レジスタに書き込むことにより、「メンテ
ナンス」モードにすることかできる。
ビツトを制御レジスタに書き込むことにより、「メンテ
ナンス」モードにすることかできる。
メンテナンスモードにある場合、検索エンジンは機能し
なく、前に得られた全スティタス(データベースに対す
るものを除いて)が失われる。このモードにおいて、A
REの内部メモリーの全てがCPUアドレス空間の成る
部分にマツピング(対応)される。アドレス空間のこの
部分は、検索エンジンがメンテナンスモードになるまで
、アクセルできない。(これは、内部メモリー及びバス
に対する仲裁を大幅に簡略にし、最小部品総数の目標と
一致する) メモリーマツプ このマツピングは64にの連続ノードとして構成される
。各ノードは256オクテツトのサイズである。従って
、メモリーによって張られる全仮想空間は16Mバイト
である。各ノードのメモリーマツプが第9図に示される
。種々の部分を構成する物理的メモリ一部分が括弧内に
示される。
なく、前に得られた全スティタス(データベースに対す
るものを除いて)が失われる。このモードにおいて、A
REの内部メモリーの全てがCPUアドレス空間の成る
部分にマツピング(対応)される。アドレス空間のこの
部分は、検索エンジンがメンテナンスモードになるまで
、アクセルできない。(これは、内部メモリー及びバス
に対する仲裁を大幅に簡略にし、最小部品総数の目標と
一致する) メモリーマツプ このマツピングは64にの連続ノードとして構成される
。各ノードは256オクテツトのサイズである。従って
、メモリーによって張られる全仮想空間は16Mバイト
である。各ノードのメモリーマツプが第9図に示される
。種々の部分を構成する物理的メモリ一部分が括弧内に
示される。
このメモリーマツビッグ手法において、mの(第9図に
示される)オフセットを有するノードN内のリソース(
資源)はCPU供給アドレスによってアドレスされる。
示される)オフセットを有するノードN内のリソース(
資源)はCPU供給アドレスによってアドレスされる。
N*2”8+m;即ち、mが続くNの濃度。
幾つかの厳密なルールが、第9図のマツピング手法によ
って補強される。このルールは、1.8000の16進
数よりも少ないアドレスを有する全ノードは終端ノード
である。通路数ストリングは同じ終端に記憶される。他
のノードへの遷移は、終端ノードでは全く許されていな
い。
って補強される。このルールは、1.8000の16進
数よりも少ないアドレスを有する全ノードは終端ノード
である。通路数ストリングは同じ終端に記憶される。他
のノードへの遷移は、終端ノードでは全く許されていな
い。
2、48セミオクテツトまでの通路数ストリング記憶に
対する設備を有する4にノードが存在する。これらのノ
ードの半分が終端ノード(ノード7800−7の16進
数)であり及び他の半分が遷移ノード(ノードf 80
0−f f f fの16進数)である。これらのノー
ドが、データベース内のレベル2エントリを記憶するた
めに先ず与えられる。
対する設備を有する4にノードが存在する。これらのノ
ードの半分が終端ノード(ノード7800−7の16進
数)であり及び他の半分が遷移ノード(ノードf 80
0−f f f fの16進数)である。これらのノー
ドが、データベース内のレベル2エントリを記憶するた
めに先ず与えられる。
3、16セミオクテツトの通路数記憶に対する設備を有
する52にノードが存在する。これらのノードの半分が
終端ノード(ノード1000−77ffの16進数であ
る)及び他の半分が遷移ノード(ノード9000−f7
ffの16進数)である。これらのノードが、レベル−
1エントリ、データリンクアドレス及びデータベース内
の16のセミオクテツトを除く全長の他のエントリを記
憶するために与えられる。
する52にノードが存在する。これらのノードの半分が
終端ノード(ノード1000−77ffの16進数であ
る)及び他の半分が遷移ノード(ノード9000−f7
ffの16進数)である。これらのノードが、レベル−
1エントリ、データリンクアドレス及びデータベース内
の16のセミオクテツトを除く全長の他のエントリを記
憶するために与えられる。
4、 通路数ストリング記憶に対する設備を有さない8
にノードが存在する。これは、何が16セミオクテツト
に対する記憶となることを諦め、メモリーを48セミオ
クテツト記憶を有する4にノードに割り当てる結果であ
る。これらのノードは、例えば、IDPカウント値がノ
ード内に位置される場所のノードに対して使用すること
ができ(且つストリング記憶が従って許可されない)、
若しくは定数ストリングが存在しない場所のノードに対
して使用することができる。
にノードが存在する。これは、何が16セミオクテツト
に対する記憶となることを諦め、メモリーを48セミオ
クテツト記憶を有する4にノードに割り当てる結果であ
る。これらのノードは、例えば、IDPカウント値がノ
ード内に位置される場所のノードに対して使用すること
ができ(且つストリング記憶が従って許可されない)、
若しくは定数ストリングが存在しない場所のノードに対
して使用することができる。
5、単一のレベル−1ポインターが存在する。これは、
全遷移ノードに於いてアクセス可能である。
全遷移ノードに於いてアクセス可能である。
ポインターはデータベースのレベル−1分岐の根に対す
るポイントにセットされるべきである。
るポイントにセットされるべきである。
AREに・する作動理論
本発明に従う検索に対する動作の基本理論がここで記述
される。開始を検索する前の正しいデータペーストリー
構造をCPtJが構築すると仮定する。
される。開始を検索する前の正しいデータペーストリー
構造をCPtJが構築すると仮定する。
第8図を参照する。レジスタファイル270は、CPU
がAREに与える検索アドレスを保持し、CPUに返還
されるべき結果を保持するために必要なメモリーを提供
するのに使用される。レジスタファイル270は2重の
ポートを有し、ARE及びCPUによって同時にアクセ
スすることを可能にしている。これは機能を向上し、任
意の制御論理の必要性を除去する。
がAREに与える検索アドレスを保持し、CPUに返還
されるべき結果を保持するために必要なメモリーを提供
するのに使用される。レジスタファイル270は2重の
ポートを有し、ARE及びCPUによって同時にアクセ
スすることを可能にしている。これは機能を向上し、任
意の制御論理の必要性を除去する。
検索は、CPUが検索引き数をレジスタファイル270
内へ書き込む時に開始される。特に、CPUが長いエン
トリの第3オクテツト(これは全ロングワードの書き込
みと通常同時に発生する)を書き込む時、ハードウェア
フラグがセットされて、関連するロングワードが正しい
データを含むことを指示する。同時に、選ばれたブロッ
クは、正しい根ノードで検索を開始するために呼び出さ
れ、このブロック内で使用される別名物が呼び出されて
、第1オクテツトがオクテツト又はセミオクテツト長と
して正しく解釈できるようにする。
内へ書き込む時に開始される。特に、CPUが長いエン
トリの第3オクテツト(これは全ロングワードの書き込
みと通常同時に発生する)を書き込む時、ハードウェア
フラグがセットされて、関連するロングワードが正しい
データを含むことを指示する。同時に、選ばれたブロッ
クは、正しい根ノードで検索を開始するために呼び出さ
れ、このブロック内で使用される別名物が呼び出されて
、第1オクテツトがオクテツト又はセミオクテツト長と
して正しく解釈できるようにする。
6つの「準備」フラグが存在し、ブロック内の最初の6
つのロングワードの各々に対応する。プラグは2つの方
法の一つでクリアーされる。CPUは、メンテナンスモ
ード命令によって−(及びこのモードを検索モードに次
に戻すことにより)これらフラグを陽にクリアーするす
るか、又はCPUが検索引き数に新たな検索引き数を重
ね書きする。第10ングワードを重ね書きすると、AR
Eシステムリセットが発生されるが、第10ングワード
「準備」フラグセットは残される。後者の方法は、制御
オーバーヘッドを殆ど又は全く有さないて多重検索を可
能にする。
つのロングワードの各々に対応する。プラグは2つの方
法の一つでクリアーされる。CPUは、メンテナンスモ
ード命令によって−(及びこのモードを検索モードに次
に戻すことにより)これらフラグを陽にクリアーするす
るか、又はCPUが検索引き数に新たな検索引き数を重
ね書きする。第10ングワードを重ね書きすると、AR
Eシステムリセットが発生されるが、第10ングワード
「準備」フラグセットは残される。後者の方法は、制御
オーバーヘッドを殆ど又は全く有さないて多重検索を可
能にする。
レジスタファイル270の周辺の制御論理290はフラ
グを試験して、ロングワードを(これが、準備されてい
て、即ち正しい場合)一対のプログラム可能な論理配列
内に構築されるマルチプレクサ280へ配送する。マル
チプレクサ280の出力はデータのセミオクテツトをバ
ス204上の検索エンジンへ遅り、「データ準備」指示
を発生する。「データ準備」が(検索エンジンがファイ
ルを空にできるのど同じ様にはCPUはファイルを充填
することができないと言う理由で)停止した場合は、検
索エンジンが同様に停止する。レジスタファイル制御論
理は、検索エンジンからライン282上の「次の数」信
号を探す。そして、このレジスタファイル制御論理は、
次のセミオクテツトをマルチプレクサ280の出力バス
に送る。
グを試験して、ロングワードを(これが、準備されてい
て、即ち正しい場合)一対のプログラム可能な論理配列
内に構築されるマルチプレクサ280へ配送する。マル
チプレクサ280の出力はデータのセミオクテツトをバ
ス204上の検索エンジンへ遅り、「データ準備」指示
を発生する。「データ準備」が(検索エンジンがファイ
ルを空にできるのど同じ様にはCPUはファイルを充填
することができないと言う理由で)停止した場合は、検
索エンジンが同様に停止する。レジスタファイル制御論
理は、検索エンジンからライン282上の「次の数」信
号を探す。そして、このレジスタファイル制御論理は、
次のセミオクテツトをマルチプレクサ280の出力バス
に送る。
「準備」フラグの同期は各ロングワードの8つのセミオ
クテツトへのシリアル化と並列に発生する。
クテツトへのシリアル化と並列に発生する。
このパイプライン技法は同期化のオーバーヘッドが完全
に補償されることを可能する。
に補償されることを可能する。
レジスタファイルブロック内の第1オクテツト(即ち、
最小アドレスを有するオクテツト)がCRLレジスタ2
40に配送される。その長さは(セミオクテツトでなく
)オクテツト長として解釈されるべきである場合は、そ
の値は2倍されて、CRLレジスタ240が常にセミオ
クテツトカウント数を保持する。第2及び次のオクテツ
トは全てセミオクテツトマルチプレクサ280へ送られ
る。マルチプレクサ280に導入する各オクテツトに対
する、最上位4ビツトが最初に出力され、最下位4ビツ
トがこれに続く。各セミオクテツトがセミオクテツトバ
ス204で正しい時、制御論理290はライン292上
に「準備」を信号する。
最小アドレスを有するオクテツト)がCRLレジスタ2
40に配送される。その長さは(セミオクテツトでなく
)オクテツト長として解釈されるべきである場合は、そ
の値は2倍されて、CRLレジスタ240が常にセミオ
クテツトカウント数を保持する。第2及び次のオクテツ
トは全てセミオクテツトマルチプレクサ280へ送られ
る。マルチプレクサ280に導入する各オクテツトに対
する、最上位4ビツトが最初に出力され、最下位4ビツ
トがこれに続く。各セミオクテツトがセミオクテツトバ
ス204で正しい時、制御論理290はライン292上
に「準備」を信号する。
ライン282上の次の数信号が主張される場合及び時に
、CRLレジスタ240は1だけ減少され、セミオクテ
ツトが消費される。セミオクテツトの全てがセミオクテ
ツトデータバス(ライン204)上に出力された後、セ
ミオクテツト発生器論理は、もはやセミオクテツトが存
在しない場合でも検索エンジンに「準備」をライン29
2上で示す。
、CRLレジスタ240は1だけ減少され、セミオクテ
ツトが消費される。セミオクテツトの全てがセミオクテ
ツトデータバス(ライン204)上に出力された後、セ
ミオクテツト発生器論理は、もはやセミオクテツトが存
在しない場合でも検索エンジンに「準備」をライン29
2上で示す。
「次の数」がライン282上で制御論理290に与えら
れると、未定義のデータがセミオクテツトデータライン
204上に送られる。しかしながら、このデータは、「
残余長がゼロJ (RLEQO)であることをライン
284上に示すことにより適切なものとされる。
れると、未定義のデータがセミオクテツトデータライン
204上に送られる。しかしながら、このデータは、「
残余長がゼロJ (RLEQO)であることをライン
284上に示すことにより適切なものとされる。
「データ準備」が、セミデータバス204上に第1のセ
ミオクテツトに対して示されると直ぐに、第1のマシン
サイクルがスタートする。このサイクルは、正しい数を
セミオクテツトデータバス204に与え、正しいノード
アドレスをノードアドレスバス202に与えるこきによ
り開始される。
ミオクテツトに対して示されると直ぐに、第1のマシン
サイクルがスタートする。このサイクルは、正しい数を
セミオクテツトデータバス204に与え、正しいノード
アドレスをノードアドレスバス202に与えるこきによ
り開始される。
第1のマシンサイクルに対するノードアドレス(即ち、
根ノードアドレス)は、0から7のブロックの何れに検
索アドレスがロードされるかによって決められる、80
00から8007 (16進数)の8つの値の内の一つ
である。
根ノードアドレス)は、0から7のブロックの何れに検
索アドレスがロードされるかによって決められる、80
00から8007 (16進数)の8つの値の内の一つ
である。
マシンサイクルはDRAMサイクルに等しい。
マスタークリスタル発振器周波数はサイクル時間を最小
にするように選択されるが、最悪の場合の状態下での正
しいDRAM動作を補償する。この時間はマシンサイク
ル当たり約208ナノ秒である。
にするように選択されるが、最悪の場合の状態下での正
しいDRAM動作を補償する。この時間はマシンサイク
ル当たり約208ナノ秒である。
一般の場合のマシンサイクルが考慮される。この一般の
場合は極めて高速のマシンサイクルを含む。レジスタフ
ァイルの不当に遅いロードによって引き起こされる、(
「データ準備」が無視されたことによって指示される)
次の数を得るための遅延がない場合、マシンサイクルは
、遅れなしに、バックに対するバック(back t
o baak)を実施する。近似的に15マイクロ秒
毎に、マシンサイクルは、DRAM配列をリフレッシュ
するに寄与する。このリフレッシュサイクルの期間検索
は進行しない。
場合は極めて高速のマシンサイクルを含む。レジスタフ
ァイルの不当に遅いロードによって引き起こされる、(
「データ準備」が無視されたことによって指示される)
次の数を得るための遅延がない場合、マシンサイクルは
、遅れなしに、バックに対するバック(back t
o baak)を実施する。近似的に15マイクロ秒
毎に、マシンサイクルは、DRAM配列をリフレッシュ
するに寄与する。このリフレッシュサイクルの期間検索
は進行しない。
マシンサイクルの始めに、現在ノードアドレスはノ・−
ドアドレスバスに送られる。そして、現在検索アドレス
数が数データバスに送られる。同時アクセスが以下のメ
モリーに対してなされる。
ドアドレスバスに送られる。そして、現在検索アドレス
数が数データバスに送られる。同時アクセスが以下のメ
モリーに対してなされる。
1、次のノードポインターがポインターDRAM配列2
00からフェッチされる。
00からフェッチされる。
2、 D S PポインターがDSPポインタースタチ
ックRAM230からフェッチされる。
ックRAM230からフェッチされる。
3、次のストリング数が通路数ストリングDRAM配列
230からフェッチされる。
230からフェッチされる。
4、ストリング/IDI長及び制御ビットが高速スタチ
ックRAM210からフェッチされる。
ックRAM210からフェッチされる。
次のノードポインター及びDSPポインターが、レベル
−1ポインターデータレジスタ340が行うのと同様に
、両方ともノードデータバス206に対して競合する。
−1ポインターデータレジスタ340が行うのと同様に
、両方ともノードデータバス206に対して競合する。
制御論理は、どの競合物がバス上に利用可能になるかを
決める(以下を見よ)。
決める(以下を見よ)。
次のストリング数がバス208上で使用可能になり、(
ストリング数が存在しない場合でさえ、)バス204上
の現在検索数と比較される。この比較は比較器300に
よって達成される。ライン302上の「数一致」信号に
よって示される比較スティタスが制御論理に対して利用
可能とされる。
ストリング数が存在しない場合でさえ、)バス204上
の現在検索数と比較される。この比較は比較器300に
よって達成される。ライン302上の「数一致」信号に
よって示される比較スティタスが制御論理に対して利用
可能とされる。
高速スティタスRAMからフェッチされる制御情報は、
マシンサイクル内で比較的早く、約60nsに、利用可
能になる。この時まで、付加的な情報が、検索エンジン
内のレジスタ及び制御回路から利用可能になる。この付
加的スティタスは以下のものを含む。
マシンサイクル内で比較的早く、約60nsに、利用可
能になる。この時まで、付加的な情報が、検索エンジン
内のレジスタ及び制御回路から利用可能になる。この付
加的スティタスは以下のものを含む。
1、CRL=14(ライン310):14のセミオクテ
ツトが残り、レベル−1遷移可能な場合。
ツトが残り、レベル−1遷移可能な場合。
2、CRL=0(ライン284):最後の数が使用され
た場合。
た場合。
3.1DIL=0(ライン312):IDILが零に減
少されるか、又はIDILに零がロードされる場合。
少されるか、又はIDILに零がロードされる場合。
4、rIDIがロードされた」 (ライン314):I
DIが充填数ループノードに再ロードすることを禁止す
る場合。
DIが充填数ループノードに再ロードすることを禁止す
る場合。
5、「ストリングが消耗した」 (ライン316):ス
トリング数カウンカ260内の値が、高速スタチックR
AMからの(バス320で運ばれた)「ストリング長」
に等しいこと、ストリングが記憶されていない場合、両
方の値が0であることを示す。
トリング数カウンカ260内の値が、高速スタチックR
AMからの(バス320で運ばれた)「ストリング長」
に等しいこと、ストリングが記憶されていない場合、両
方の値が0であることを示す。
上記のスティタスピットを設定することは、高速スタチ
ックRAM210からのバス330上に運ばれたノード
制御情報と共に、何が、このマシンサイクルの第2の半
分で発生するかを決める。
ックRAM210からのバス330上に運ばれたノード
制御情報と共に、何が、このマシンサイクルの第2の半
分で発生するかを決める。
基本的に、マシンサイクルは4つの形態の一つである。
1、ストリング数比較サイクル(ストリングサイクル)
、 2、レベル−1遷移サイクル(レベル−1サイクル)、 3、DSP遷移に対するIDP (DSP+l−イクル
)、4、正常の次のノードポインタサイクル(ポインタ
サイクル)。
、 2、レベル−1遷移サイクル(レベル−1サイクル)、 3、DSP遷移に対するIDP (DSP+l−イクル
)、4、正常の次のノードポインタサイクル(ポインタ
サイクル)。
形態2.3、及び4は全体として「正規サイクル」とし
て呼ぶことができる。検索エンジンが新たなノードに進
まない以外は「ストリングサイクル」について異常でナ
イ。
て呼ぶことができる。検索エンジンが新たなノードに進
まない以外は「ストリングサイクル」について異常でナ
イ。
サイクルの形態がどの様にして決められるかの以下の記
述が、逐次的な形態により与えられる。
述が、逐次的な形態により与えられる。
この検索エンジンがこれらの決定を同時に行う。
「ロードIDI長」 (バス330上のノード制御)が
主張され、(ライン314上で)rIDIがロードされ
た」が誤りの場合、IDI長がこのレジスタ内にロード
され、rIDIがロードされた」が主張される。レジス
タ内容が零であり、rIDIがロードされた」が主張さ
れた場合は常に、(ライン312上で)rIDI長=0
」が主張される。
主張され、(ライン314上で)rIDIがロードされ
た」が誤りの場合、IDI長がこのレジスタ内にロード
され、rIDIがロードされた」が主張される。レジス
タ内容が零であり、rIDIがロードされた」が主張さ
れた場合は常に、(ライン312上で)rIDI長=0
」が主張される。
「ロードIDI長」が無視された場合、ストリング比較
が必要とされる。「ストリングが消耗した」 (ライン
316上)が主張された場合、これは「正常サイクル」
であり、他の場合はこのマシンサイクルは通路ストリン
グ数比較サイクルである。後者の場合、次の数及びDS
Pポインターが無視される。マシンは、「数一致」フラ
グ(ライン302上)が有効なまで待機する。(約IS
Onsの後)次に、それが無視される場合、「ストリン
グ一致」が主張される場合、「次の数」 (ライン28
2上)がセミオクテツト発生器から要求される。ストリ
ングカウントレジスタ260は増大され、IDI長レジ
スタ250及びCRLレジスタ240が減少される。マ
シンは現在のサイクルを終了し、ノードアドレスバス2
02上の値を変化することなしに次のサイクルをスター
トする。
が必要とされる。「ストリングが消耗した」 (ライン
316上)が主張された場合、これは「正常サイクル」
であり、他の場合はこのマシンサイクルは通路ストリン
グ数比較サイクルである。後者の場合、次の数及びDS
Pポインターが無視される。マシンは、「数一致」フラ
グ(ライン302上)が有効なまで待機する。(約IS
Onsの後)次に、それが無視される場合、「ストリン
グ一致」が主張される場合、「次の数」 (ライン28
2上)がセミオクテツト発生器から要求される。ストリ
ングカウントレジスタ260は増大され、IDI長レジ
スタ250及びCRLレジスタ240が減少される。マ
シンは現在のサイクルを終了し、ノードアドレスバス2
02上の値を変化することなしに次のサイクルをスター
トする。
ストリング比較サイクルは、数の不一致が存在するまで
、又は「ストリングが消耗した」がライン316で主張
されるまで続いて、全数が連続して一致することが示さ
れるか、もしくはrCRLO」が(不一致であると考慮
される)CRLカウンタ240によってライン284上
で発生されるまで続く。
、又は「ストリングが消耗した」がライン316で主張
されるまで続いて、全数が連続して一致することが示さ
れるか、もしくはrCRLO」が(不一致であると考慮
される)CRLカウンタ240によってライン284上
で発生されるまで続く。
「ストリングが消耗した」がライン316上で主張され
た時は常に、ストリングカウントレジスタ260は次の
マシンサイクルにおいて、(既に零であっても)零にリ
セットされる。
た時は常に、ストリングカウントレジスタ260は次の
マシンサイクルにおいて、(既に零であっても)零にリ
セットされる。
「ストリングサイクル」は、「ストリングが消耗した」
がマシンサイクル中に主張された場合は発生しない。こ
れは、「ストリングが消耗した」は(1)ノードに通路
数ストリングが存在しない時、又は(2)現在ノードが
既に連続して一致した時のみに主張されるためである。
がマシンサイクル中に主張された場合は発生しない。こ
れは、「ストリングが消耗した」は(1)ノードに通路
数ストリングが存在しない時、又は(2)現在ノードが
既に連続して一致した時のみに主張されるためである。
「ストリングサイクル」「ロードIDI長レジスタ」が
主張されている場合に発生しない。これは、ノードに記
憶されたIDI長が存在するからである(これは、ID
I遷移が発生した時、メモリー内の単一のフィールドが
長さ情報を記憶されるために与えられ、このフィールド
がIDI長を記憶し、及びストリング長を記憶出来ない
からである。) 「正常サイクル」は3つの潜在的次ノードアドレスの一
つを3つの源、次のポインター、DSPポインター及び
レベル−1ポインターから選択する。この選択は板のル
ールに従う。
主張されている場合に発生しない。これは、ノードに記
憶されたIDI長が存在するからである(これは、ID
I遷移が発生した時、メモリー内の単一のフィールドが
長さ情報を記憶されるために与えられ、このフィールド
がIDI長を記憶し、及びストリング長を記憶出来ない
からである。) 「正常サイクル」は3つの潜在的次ノードアドレスの一
つを3つの源、次のポインター、DSPポインター及び
レベル−1ポインターから選択する。この選択は板のル
ールに従う。
(a) r I D I長−〇」がライン312上で主
張される場合、rlDIがロードされた」がライン31
4上で主張され、DSP遷移が広範に可能になり、rD
sPサイクル」が選択される。メモリー230からアク
セスされるDSPポインターの値は、次のノードのアド
レスになる。単一の「DSPサイクル」のみが、この検
索操作中に許容される。これは、検索エンジンが無限ル
ープ内で張りつくことが禁止される。
張される場合、rlDIがロードされた」がライン31
4上で主張され、DSP遷移が広範に可能になり、rD
sPサイクル」が選択される。メモリー230からアク
セスされるDSPポインターの値は、次のノードのアド
レスになる。単一の「DSPサイクル」のみが、この検
索操作中に許容される。これは、検索エンジンが無限ル
ープ内で張りつくことが禁止される。
(b) (a)が当てはまらなく、rCRL= 14J
がライン230上のカウンタ240によって主張され、
「レベル−1遷移」が広範に可能になる場合、レジスタ
340からのアクセスされたレベル−1ポインターが次
ノードアドレス源となる。この場合、サイクルは「レベ
ル−lサイクル」である。再び、「レベル−1サイクル
」のみが検索操作ごとに許容される。
がライン230上のカウンタ240によって主張され、
「レベル−1遷移」が広範に可能になる場合、レジスタ
340からのアクセスされたレベル−1ポインターが次
ノードアドレス源となる。この場合、サイクルは「レベ
ル−lサイクル」である。再び、「レベル−1サイクル
」のみが検索操作ごとに許容される。
(a)又は(b)の何れかが適用される場合、次のマシ
ンサイクルは、「次の数」をセミオクテツト発生器から
フェッチすることなしに、走りだす。即ち、同じ数は、
レベル−1又はDSP遷移が発生される毎に再検査され
る。(a)又は(b)のいずれも適用されない場合は、
ポインターDRAM配列200からアクセスされた「次
のノードポインター」は次のノードアドレス源であり、
即ち、このマシンサイクルは「ポインタサイクル」であ
る。この場合、「次の数」はライン282上でセミオク
テツト発生器290に発生され、次の数が次のマシンサ
イクルの始めで利用可能となる。CRLレジスタ240
及びIDILレジスタ250は両方とも減少される。
ンサイクルは、「次の数」をセミオクテツト発生器から
フェッチすることなしに、走りだす。即ち、同じ数は、
レベル−1又はDSP遷移が発生される毎に再検査され
る。(a)又は(b)のいずれも適用されない場合は、
ポインターDRAM配列200からアクセスされた「次
のノードポインター」は次のノードアドレス源であり、
即ち、このマシンサイクルは「ポインタサイクル」であ
る。この場合、「次の数」はライン282上でセミオク
テツト発生器290に発生され、次の数が次のマシンサ
イクルの始めで利用可能となる。CRLレジスタ240
及びIDILレジスタ250は両方とも減少される。
「正常サイクル」に対して、以下のルールが同様に適用
される。最上位ノートアドレスビットが零に等しい場合
、又はrNI LJフラッグがセラとされる場合、この
マシンサイクルは現在検索引き数(即ち、検索される現
在ネットワークアドレス)である。[セーブ現在ノード
アドレス」がセットされる場合、現在サイクルのノード
アドレスは(これが空ノードでない場合のみ)「現在ま
での結果」レジスタ295内にセーブされ、前の値に重
ね書きされる。
される。最上位ノートアドレスビットが零に等しい場合
、又はrNI LJフラッグがセラとされる場合、この
マシンサイクルは現在検索引き数(即ち、検索される現
在ネットワークアドレス)である。[セーブ現在ノード
アドレス」がセットされる場合、現在サイクルのノード
アドレスは(これが空ノードでない場合のみ)「現在ま
での結果」レジスタ295内にセーブされ、前の値に重
ね書きされる。
「ストリングサイクル」に対して、又は「ポインタサイ
クル」 (即ち、検索数が吸収するマシンサイクル)に
対して、rcRL=o」がライン284が主張される場
合、現在マシンサイクルが最終となる。「ストリングサ
イクル」の場合において、ストリング不一致が宣言され
る。「ポインターサイクル」の場合において、現在ノー
ドが宣言され、検索アドレス上でなされる最大の増進を
表す。信号rcRL=0.+がrDSPサイクルJ又は
「レベル−1サイクル」中に主張される場合、適当な遷
移は、それがセミオクテツトデータバス204上に存在
すべき正しいセミオクテツトを必要としないので、依然
として行うことができる。
クル」 (即ち、検索数が吸収するマシンサイクル)に
対して、rcRL=o」がライン284が主張される場
合、現在マシンサイクルが最終となる。「ストリングサ
イクル」の場合において、ストリング不一致が宣言され
る。「ポインターサイクル」の場合において、現在ノー
ドが宣言され、検索アドレス上でなされる最大の増進を
表す。信号rcRL=0.+がrDSPサイクルJ又は
「レベル−1サイクル」中に主張される場合、適当な遷
移は、それがセミオクテツトデータバス204上に存在
すべき正しいセミオクテツトを必要としないので、依然
として行うことができる。
データベース内のエラーはマシンによって識別すること
ができ、早期エラー終了を引き起こす。
ができ、早期エラー終了を引き起こす。
以下のエラーが認識される。
1、パリティ−チエツクエラー300によって検出され
る、現在セミオクテツト及び現在通路数ストリング間の
パリティ−エラー 2、エラーが「ポインターサイクル」中に発生する場合
の(即ち、このメモリーからのデータが次のノードアド
レスとして使用されるべき時の)パリティ−チエツク素
子302によって検出される、ポインターDRAM配列
200内のパリティ−エフ− 3、ストリング長カウンタ260が「ストリングサイク
ル」中の合法的範囲を越えて増加される時、マシンがサ
イクルを停止する毎に、rBUsY」スティタスビット
がクリアーされ、検索結果がCPUによって読むことが
できる。付録Bは検索結果の形式及び内容を詳述する。
る、現在セミオクテツト及び現在通路数ストリング間の
パリティ−エラー 2、エラーが「ポインターサイクル」中に発生する場合
の(即ち、このメモリーからのデータが次のノードアド
レスとして使用されるべき時の)パリティ−チエツク素
子302によって検出される、ポインターDRAM配列
200内のパリティ−エフ− 3、ストリング長カウンタ260が「ストリングサイク
ル」中の合法的範囲を越えて増加される時、マシンがサ
イクルを停止する毎に、rBUsY」スティタスビット
がクリアーされ、検索結果がCPUによって読むことが
できる。付録Bは検索結果の形式及び内容を詳述する。
AREに・する機能予測
検索時間
AREの機能が比較的容易に予測する。検索時間は検索
引き数的の数の個数にマシンサイクル時間を掛けたもの
に略等しい。幾分かのオーバーヘッドがこの見積に加え
る必要がある。
引き数的の数の個数にマシンサイクル時間を掛けたもの
に略等しい。幾分かのオーバーヘッドがこの見積に加え
る必要がある。
15ミリ秒毎に、■マシンサイクルがD RAM200
.220をリフレッシュするのに走らされる。単一のこ
の様な「余分」のサイクルが、検索毎に期待することが
できる。更に、数が吸収されない2つの他のマシンサイ
クノペ即ちrDsPサイクル」及び「レベル−1サイク
ル」が存在することができる。本発明に従うと、上述し
た様に、組み込みハードウェアインターロックが、改変
されたデータベースを有する場合であっても、各検索引
き数毎の2つ以上の各遷移サイクルを禁止する。
.220をリフレッシュするのに走らされる。単一のこ
の様な「余分」のサイクルが、検索毎に期待することが
できる。更に、数が吸収されない2つの他のマシンサイ
クノペ即ちrDsPサイクル」及び「レベル−1サイク
ル」が存在することができる。本発明に従うと、上述し
た様に、組み込みハードウェアインターロックが、改変
されたデータベースを有する場合であっても、各検索引
き数毎の2つ以上の各遷移サイクルを禁止する。
従って、検索引き数の最大炎が数40である場合、最大
44のマシンサイクルを引き数を進めるのに取る。(こ
れは、一つの最終の「ダミー」マシンサイクルを含み、
セミオクテツトデータバス204上に正しくないセミオ
クテツトを有して走る)。これに、入力をロードする及
び出力レジスタを読み出すオーバーヘッドが加えられる
必要がある。この計算は複雑である、特にデータ書き込
み及びデータ読み出しサイクルが、これを引き起こす命
令として挿入される時に複雑である。
44のマシンサイクルを引き数を進めるのに取る。(こ
れは、一つの最終の「ダミー」マシンサイクルを含み、
セミオクテツトデータバス204上に正しくないセミオ
クテツトを有して走る)。これに、入力をロードする及
び出力レジスタを読み出すオーバーヘッドが加えられる
必要がある。この計算は複雑である、特にデータ書き込
み及びデータ読み出しサイクルが、これを引き起こす命
令として挿入される時に複雑である。
CPUレジスタロードサイクルは全て、多くて2つの待
ち状態を有することができる。第1のマシンサイクルは
、第ルジスタファイルロードサイククが検出されると直
ぐにスタートすることができる。この時間は、CPU書
き込みサイクルのSOの開始から第1マシンサイクルま
でで測定された300nsのオーダである。結果を読み
出すために、最終マシンサイクルと同時にCPU D
SACK信号が主張される(又は、これら信号のブロッ
クが免除される)。CPU読み出しサイクルのS5の終
了が次に150ns以内で発生する。
ち状態を有することができる。第1のマシンサイクルは
、第ルジスタファイルロードサイククが検出されると直
ぐにスタートすることができる。この時間は、CPU書
き込みサイクルのSOの開始から第1マシンサイクルま
でで測定された300nsのオーダである。結果を読み
出すために、最終マシンサイクルと同時にCPU D
SACK信号が主張される(又は、これら信号のブロッ
クが免除される)。CPU読み出しサイクルのS5の終
了が次に150ns以内で発生する。
CPUは(46個の数までの、最初の40までのみが重
要である)6つのロングワードを通常レジスタファイル
に転送する。第1の転送の開始から結果を読み取る読み
取りサイクルの終了迄の時間は、208nsのマシンサ
イクルに対して、300ns144*208ns+15
0ns=9.6μsである。
要である)6つのロングワードを通常レジスタファイル
に転送する。第1の転送の開始から結果を読み取る読み
取りサイクルの終了迄の時間は、208nsのマシンサ
イクルに対して、300ns144*208ns+15
0ns=9.6μsである。
利用可能な予備CPU時間に対してより正確な数字を与
えるために、6個のロングワードの転送時間がこの数字
(6*200ns=1.2μs)から引かれる。これは
8.4μsの結果を与える。
えるために、6個のロングワードの転送時間がこの数字
(6*200ns=1.2μs)から引かれる。これは
8.4μsの結果を与える。
レベル−1アドレス又はI E E E 802.3デ
ータリンクアドレスの検索時間はより少ない。CPUは
アドレスを値「12」のオクテツトで装う場合、結果を
レジスタファイル270に転送し、2つのロングワード
書き込みが要求される(このロングワードの最後のオク
テツトは無視される)。
ータリンクアドレスの検索時間はより少ない。CPUは
アドレスを値「12」のオクテツトで装う場合、結果を
レジスタファイル270に転送し、2つのロングワード
書き込みが要求される(このロングワードの最後のオク
テツトは無視される)。
レジスタファイル270内のデータが重ね書きされない
という事実を利用すことにより、8つの入力ブロックの
一つ(及び、これに対応する8つの根ノードの一つ)が
レベル−1ルツクアツプに対して検出される。−度第1
オクテツトに値「12」が書き込まれると、このオクテ
ツトはそこに滞在する。この方法で、レベル−1アドレ
スは直接ファイルに書き込まれる。これは、依然として
2つの書き込み動作を必要とする。しかし、少ないとも
3つのCPUバスサイクルが、位置が一致しないために
、インターフェースハードウェアにより発生される。
という事実を利用すことにより、8つの入力ブロックの
一つ(及び、これに対応する8つの根ノードの一つ)が
レベル−1ルツクアツプに対して検出される。−度第1
オクテツトに値「12」が書き込まれると、このオクテ
ツトはそこに滞在する。この方法で、レベル−1アドレ
スは直接ファイルに書き込まれる。これは、依然として
2つの書き込み動作を必要とする。しかし、少ないとも
3つのCPUバスサイクルが、位置が一致しないために
、インターフェースハードウェアにより発生される。
レベル−1ルツクアツプに対する根ノードは、データベ
ースのレベル−1分岐内の初期ノードと(多分)同じで
ある。区域遷移は期待出来ない。
ースのレベル−1分岐内の初期ノードと(多分)同じで
ある。区域遷移は期待出来ない。
リフレッシュサイクルがルックアップ中に発生する場合
、ルックアップ時間は12個の数+リフレッシュ+ダミ
ー即ち、 300ns+14*208ns+150ns=3.4μ
sである。
、ルックアップ時間は12個の数+リフレッシュ+ダミ
ー即ち、 300ns+14*208ns+150ns=3.4μ
sである。
書き込みサイクルに対する時間を引くと、2.8μsの
有効ルックアップ時間が与えられる。
有効ルックアップ時間が与えられる。
ここに与えられる本発明のAREのデータベースの容1
を計算するのは比較的容易である。2つのデータベース
の形態がAREで共存できるものと考えられる。この形
態は、全長で16個のセミオクテツト迄のアドレスが認
識されることを可能にし、また、40個の(潜在的に4
6個の)セミオクテツトまでのアドレスが認識されるこ
とを可能にする。8個迄の異なるデータベースの全てが
、共存できる。これは根ノードの数によって制限されて
いる。
を計算するのは比較的容易である。2つのデータベース
の形態がAREで共存できるものと考えられる。この形
態は、全長で16個のセミオクテツト迄のアドレスが認
識されることを可能にし、また、40個の(潜在的に4
6個の)セミオクテツトまでのアドレスが認識されるこ
とを可能にする。8個迄の異なるデータベースの全てが
、共存できる。これは根ノードの数によって制限されて
いる。
前者のデータベースはレベル−1アドレス、データリン
クアドレス及び地内のルータIDのために使用される。
クアドレス及び地内のルータIDのために使用される。
26Kがターミナルである52にのノード及び各ノード
に於いて16個のセミオクテツト定数ストリング記憶が
存在すると仮定すると、これらのデータベースに対して
、結合総数で26に迄のエントリが補償される。(最悪
の場合、各遷移は多(て次のノードポインターを有する
。
に於いて16個のセミオクテツト定数ストリング記憶が
存在すると仮定すると、これらのデータベースに対して
、結合総数で26に迄のエントリが補償される。(最悪
の場合、各遷移は多(て次のノードポインターを有する
。
従って、トリーは、最終ノードと同じ数の多(の遷移ノ
ードを有する2進化トリーとなる。)長さで48セミオ
クテツト迄の4にのノード記憶定数ストリングが存在す
るので、最小に、2に迄のエントリーがより長いアドレ
スを検索するために補償されると仮定することが合理的
である。
ードを有する2進化トリーとなる。)長さで48セミオ
クテツト迄の4にのノード記憶定数ストリングが存在す
るので、最小に、2に迄のエントリーがより長いアドレ
スを検索するために補償されると仮定することが合理的
である。
しかしながら、最悪の場合、余分の遷移ノードを要求す
ることができる。これらの余分のノードは一つの出口、
即ちDSPポインター出口のみを有する。(DSP遷移
は定数ストリングの部分として記憶される。)これらの
条件下では、IKエントリのみが補償される。AREは
再定義することが可能であり、DSP遷移がターミナル
ノードから許容され、次いでこの補償により最悪の場合
1.3 Kエントリまで増加することに注意する。また
、他のデータベースからノードを盗み、これらノードを
、より小さい定数ストリング容量で「鎖結合」すること
か可能であることに注意する。実際、定義される現在最
大炎IDIは長さで18個の数のみを有し、16数の容
量ストリング記憶長が、超過するノード容量を有すると
言う恐れなくしてIDP数を保持すために使用すること
かできる。
ることができる。これらの余分のノードは一つの出口、
即ちDSPポインター出口のみを有する。(DSP遷移
は定数ストリングの部分として記憶される。)これらの
条件下では、IKエントリのみが補償される。AREは
再定義することが可能であり、DSP遷移がターミナル
ノードから許容され、次いでこの補償により最悪の場合
1.3 Kエントリまで増加することに注意する。また
、他のデータベースからノードを盗み、これらノードを
、より小さい定数ストリング容量で「鎖結合」すること
か可能であることに注意する。実際、定義される現在最
大炎IDIは長さで18個の数のみを有し、16数の容
量ストリング記憶長が、超過するノード容量を有すると
言う恐れなくしてIDP数を保持すために使用すること
かできる。
(最大炎IDPが18個の数である場合、最大炎IDI
は2つ少なくなり、AFI数は、通常定数ストリングの
部分としては記憶されない。)パケット前送り目的のた
めには、レベル−2データベースがレベル−1ポインタ
ーを介してレベル−1データベースへ分岐されることに
注意する。
は2つ少なくなり、AFI数は、通常定数ストリングの
部分としては記憶されない。)パケット前送り目的のた
めには、レベル−2データベースがレベル−1ポインタ
ーを介してレベル−1データベースへ分岐されることに
注意する。
従って、(レベル−1配送によって配送される)領域内
に26にアドレス化及び(最大接頭語に従って送られる
)領域外にIKアドレス迄の認識を補償するデータベー
スが構築できることが主張される。
に26にアドレス化及び(最大接頭語に従って送られる
)領域外にIKアドレス迄の認識を補償するデータベー
スが構築できることが主張される。
他の実施例は特許請求の範囲内にある。
例えば、本発明は、長さが(好ましくはより広く)変化
するストリングを含む大きなデータベースの検索のため
に使用できる。この様なデータベースは共通であり、具
体的には、電話源、オンライン辞書、スペルチエッカ−
1社会保健番号等のディレクトリルックアップを含む。
するストリングを含む大きなデータベースの検索のため
に使用できる。この様なデータベースは共通であり、具
体的には、電話源、オンライン辞書、スペルチエッカ−
1社会保健番号等のディレクトリルックアップを含む。
この様な内容に於いて、ディレクトリルックアップが、
検索トリーを使用して達成される場合、本発明が適用可
能である。語「ノード」はここでは階層的樹木構造にお
ける要素を記述するのに使用されたが、本発明は、語「
ノード」が樹木構造を記述するのに使用されるか否かを
、樹木構造検索に利用する。
検索トリーを使用して達成される場合、本発明が適用可
能である。語「ノード」はここでは階層的樹木構造にお
ける要素を記述するのに使用されたが、本発明は、語「
ノード」が樹木構造を記述するのに使用されるか否かを
、樹木構造検索に利用する。
付録A:AREメモリーマツプ
AREはウェッジメモリーマツプ内の16Mスペースへ
、アドレスosoo oooo及び08ff ff
ff間でマツプされる。
、アドレスosoo oooo及び08ff ff
ff間でマツプされる。
16MB ARE空間は64K「ノード」内へ分割さ
れる。ここで、各ノードは256オクテツトサイズであ
る。従って、AREアドレス(8個の16進数字から成
る)が、次に示される様に、3つのフィールドに分解で
きる。
れる。ここで、各ノードは256オクテツトサイズであ
る。従って、AREアドレス(8個の16進数字から成
る)が、次に示される様に、3つのフィールドに分解で
きる。
081nnnn aa
ここで、最初の2つの数字「08」はAREを選択し、
次の4つの数字rrFnnnJが64にノードの一つを
選択し、最終の2つの数字raaJはノード内・の部分
空間を選択する。
次の4つの数字rrFnnnJが64にノードの一つを
選択し、最終の2つの数字raaJはノード内・の部分
空間を選択する。
各ノードでアクセスできる利用可能な空間が第9図内に
示される。
示される。
1亙立旦A
ノード制御語
ノード制御語は、全ノードで支持されるバイトアドレス
可能な16ビツト語である。全ビットが検索エンジンに
よって解釈されることはないが、全ビットをAREメン
テナンスを(例えば、フリーノードを鎖結合することに
より)促進するために使用することができる。この語の
フォーマット及び説明が以下に与えられる。
可能な16ビツト語である。全ビットが検索エンジンに
よって解釈されることはないが、全ビットをAREメン
テナンスを(例えば、フリーノードを鎖結合することに
より)促進するために使用することができる。この語の
フォーマット及び説明が以下に与えられる。
空I SRI ICI Lll dll l dlo
l d91 d81 d7d61←長さ→ 空(空ノード):これはビットが設定された場合、この
ノードが検索エンジンによって空ノードとして解釈され
る。空ノードにおいて、他の制御ビットの設定は無意味
である。空ノードに入ると直ちに、検索エンジンは停止
し、停止のための理由として「空ノード」を示す。空ノ
ードに記憶されたストリングは無視される。空ノードの
アドレスは、検索エンジンによって戻されるいかなる結
果内にも報告されない。
l d91 d81 d7d61←長さ→ 空(空ノード):これはビットが設定された場合、この
ノードが検索エンジンによって空ノードとして解釈され
る。空ノードにおいて、他の制御ビットの設定は無意味
である。空ノードに入ると直ちに、検索エンジンは停止
し、停止のための理由として「空ノード」を示す。空ノ
ードに記憶されたストリングは無視される。空ノードの
アドレスは、検索エンジンによって戻されるいかなる結
果内にも報告されない。
注意:そのアドレスのMSBがゼロに等しい全ノード(
即ち、ノード0000から7 f f f)は終了ノー
ドである。検索動作中、終了ノードに遭遇すると、検索
エンジンはノードから遷移をおこすのでなく、停止する
。
即ち、ノード0000から7 f f f)は終了ノー
ドである。検索動作中、終了ノードに遭遇すると、検索
エンジンはノードから遷移をおこすのでなく、停止する
。
SV(セーブ結果):検索動作中、このビットセットを
有する遭遇する全ノードは現在迄の結果レジスタ245
内にセーブされる。この信号語レジスタ245は常に、
SRピットセットと最も最近遭遇するノードのアドレス
を含む。SRビットは、定数ストリング存在が検索キー
と連続的に突き合わされるまで、検索エンジンによって
試験される。(検索キー数字の早期の消耗を含む)スト
リング不一致は、SRビットの状態に関わらず、セーブ
されるノードNOTを結果する。ノードアドレスは、ノ
ードが空でない場合にはセーブされない。
有する遭遇する全ノードは現在迄の結果レジスタ245
内にセーブされる。この信号語レジスタ245は常に、
SRピットセットと最も最近遭遇するノードのアドレス
を含む。SRビットは、定数ストリング存在が検索キー
と連続的に突き合わされるまで、検索エンジンによって
試験される。(検索キー数字の早期の消耗を含む)スト
リング不一致は、SRビットの状態に関わらず、セーブ
されるノードNOTを結果する。ノードアドレスは、ノ
ードが空でない場合にはセーブされない。
IC(IDPカウント存在):このビットがセットされ
る場合、「長さ」フィールドの値は検索エンジンによっ
てIDPの長さとして解釈される。
る場合、「長さ」フィールドの値は検索エンジンによっ
てIDPの長さとして解釈される。
このビットはAPIの第2の数字に続く第1のノルドで
設定されねばならない。長さフィールドは、関連するA
PIによって示される適当なIDP長さにセットされる
。この様な値の一つのみが検索動作中にロードされる。
設定されねばならない。長さフィールドは、関連するA
PIによって示される適当なIDP長さにセットされる
。この様な値の一つのみが検索動作中にロードされる。
ICビットは、ノードが空の場合無視される。
注意;定数ストリングは、ICビットセットを有するノ
ードで記憶されることができない(無視される)。
ードで記憶されることができない(無視される)。
LL(レベル−1遷移可能):このビットは、厳密に1
4個の数字の検索キーの残りを有し、検索アドレスに対
する定数ストリング存在と連続して突き合わされる時の
みに検索エンジンによって試験される。この場合、Ll
ビットがセットされ、検索エンジンが次のノードのアド
レスとしてレベル−1ポインターの値を使用する。
4個の数字の検索キーの残りを有し、検索アドレスに対
する定数ストリング存在と連続して突き合わされる時の
みに検索エンジンによって試験される。この場合、Ll
ビットがセットされ、検索エンジンが次のノードのアド
レスとしてレベル−1ポインターの値を使用する。
dll、dlo、・・・、d6: これらのビットは検
索エンジンによって使用されない。
索エンジンによって使用されない。
長さ(5ビツト):このフィールドは2通りで解釈され
る。
る。
1、 I Cがセットされる場合、空はセットされない
。このフィールドはIDPの長さとして解釈される(上
述の如く)。
。このフィールドはIDPの長さとして解釈される(上
述の如く)。
2、 I Cがセットされないく、空がセットされない
場合、このフィールドがノードに記憶された定数ストリ
ングの長さとして解釈される。定数ストリングは、不一
致があるまで、又はソースが消耗されるまで検索キーの
数字に対して突き合わされる。
場合、このフィールドがノードに記憶された定数ストリ
ングの長さとして解釈される。定数ストリングは、不一
致があるまで、又はソースが消耗されるまで検索キーの
数字に対して突き合わされる。
ストリング記憶空間
ストリング記憶空間が、ノードで可変長の定数ストリン
グを記憶するために与えられる。このストリングは、バ
イト当たり1数字で、連続する数字として記憶される(
各バイトの4つの最上位ビットは書き込みの際無視され
、常に零として読まれる。)。ストリング長(記憶され
た数字の数)はノード制御語内で指示される。記憶する
ことのできる数字の最大数はノードアドレスの関数であ
り、以下に示される。
グを記憶するために与えられる。このストリングは、バ
イト当たり1数字で、連続する数字として記憶される(
各バイトの4つの最上位ビットは書き込みの際無視され
、常に零として読まれる。)。ストリング長(記憶され
た数字の数)はノード制御語内で指示される。記憶する
ことのできる数字の最大数はノードアドレスの関数であ
り、以下に示される。
遷移ノード
f800≦ノードアドレス≦ffff−最大48数字
9000≦ノードアドレス≦f7ff−最大16数字
8000≦ノードアドレス≦8fff−許容される記憶
なし 端子ノード 7800≦ノードアドレス≦7fff−最大48数字 1000≦ノードアドレス≦77ff−最大16数字 0000≦ノードアドレス≦0fff−許容される記憶
なし くrx≦y」は、y未満か等しいことを意味する。) 検索エンジンは通路数が記憶されるノードに遭遇する時
、ストリングが、数ソースが消耗されるか、不一致が生
じるまで、残りの検索アドレス数字に対して比較される
。
なし 端子ノード 7800≦ノードアドレス≦7fff−最大48数字 1000≦ノードアドレス≦77ff−最大16数字 0000≦ノードアドレス≦0fff−許容される記憶
なし くrx≦y」は、y未満か等しいことを意味する。) 検索エンジンは通路数が記憶されるノードに遭遇する時
、ストリングが、数ソースが消耗されるか、不一致が生
じるまで、残りの検索アドレス数字に対して比較される
。
次のノードポインター
18個の「次のノード」ポインターが32に遷移ノード
に対して与えられる(ポインター圧縮が実行される。)
第1の32にノードは「終了ノード」であり、遷移はそ
こからは生じない。
に対して与えられる(ポインター圧縮が実行される。)
第1の32にノードは「終了ノード」であり、遷移はそ
こからは生じない。
(検索能力のある場所で)ストリング突き合わせが連続
して完了される場合、ノードが終了又は空ノードでない
場合、且つ検索アドレス数が残っている場合、次のノー
ドポインターが検索エンジンによって選択される。この
選択は、以下のルール(以上で作動の理論とで呼ばれて
いる)に従ってなされる。
して完了される場合、ノードが終了又は空ノードでない
場合、且つ検索アドレス数が残っている場合、次のノー
ドポインターが検索エンジンによって選択される。この
選択は、以下のルール(以上で作動の理論とで呼ばれて
いる)に従ってなされる。
1、 I D I長がIDILレジスタ250内にロー
ドされる場合、この長さが厳密に零に減少される(又、
このロードがない場合、現在ノードが全IDP長2のI
DILをロードする。)。即ち、検索エンジンが、処理
されるべき次の検索キー数字DSPの第1の数であり、
次にDSPポインターが選択される。DSPポインター
が、選択操作中に多くて一度選択することができる。D
SPポインターの選択は現在検索キー数を消費しない。
ドされる場合、この長さが厳密に零に減少される(又、
このロードがない場合、現在ノードが全IDP長2のI
DILをロードする。)。即ち、検索エンジンが、処理
されるべき次の検索キー数字DSPの第1の数であり、
次にDSPポインターが選択される。DSPポインター
が、選択操作中に多くて一度選択することができる。D
SPポインターの選択は現在検索キー数を消費しない。
このキー数字は次のマシンサイクル内で使用される。
2、他方、厳密に14個の検索キー数が残り、L1ビッ
トがこのノードのノード制御語内でセットされる場合、
レベル−1ポインターが選択される。このレベル−1ポ
インターは検索操作中に多くて一度選択できる。レベル
−1遷移ポインターの選択は現在検索キー数字を消費で
きない。このキー数字は次のマシンサイクルで使用され
る。
トがこのノードのノード制御語内でセットされる場合、
レベル−1ポインターが選択される。このレベル−1ポ
インターは検索操作中に多くて一度選択できる。レベル
−1遷移ポインターの選択は現在検索キー数字を消費で
きない。このキー数字は次のマシンサイクルで使用され
る。
注意:(1)及び(2)の両方が当てはまる場合、(2
)に対する条件が、(1)が達成された後に際に再試験
される。
)に対する条件が、(1)が達成された後に際に再試験
される。
3、他方、検索キーの次の数字が最初の16個の次のノ
ードポインターの一つを選択するのに使用される。例え
ば、数が零の場合、アドレス40に於けるポインターが
使用される(ポインターアドレスオフセットは、第9図
で40として参照される。)。
ードポインターの一つを選択するのに使用される。例え
ば、数が零の場合、アドレス40に於けるポインターが
使用される(ポインターアドレスオフセットは、第9図
で40として参照される。)。
青アドレス記恩領域
32バイトの記憶空間がノード8000から8007の
各々に与えられる。これらの32バイトの最初の24バ
イトは新たな検索アドレスをロードするのに使用される
。検索の結果は検索エンジンにより最後の8バイトに書
き込まれる。8個までの検索エンジン内容が指示される
。新たな検索は、現在の検索が完了するまで開始されな
いことに注意する(新たな検索は現在の検索を打ち切る
ため)。検索が開始される時、検索アドレスをロードす
るのに使用されるノードは検索エンジンにより使用され
る根ノードである。検索アドレスのフォーマットは以下
の通りでなければならない。
各々に与えられる。これらの32バイトの最初の24バ
イトは新たな検索アドレスをロードするのに使用される
。検索の結果は検索エンジンにより最後の8バイトに書
き込まれる。8個までの検索エンジン内容が指示される
。新たな検索は、現在の検索が完了するまで開始されな
いことに注意する(新たな検索は現在の検索を打ち切る
ため)。検索が開始される時、検索アドレスをロードす
るのに使用されるノードは検索エンジンにより使用され
る根ノードである。検索アドレスのフォーマットは以下
の通りでなければならない。
第1バイト(アドレス80/ao):検索アドレス長
後続のバイト:検索アドレス、第1バイト内で定義され
る長さ。
る長さ。
第1バイトに書き込まれる長さ情報は2通りに解釈され
る。二バイトがアドレス80に書き込まれる場合9、こ
のバイトはオクテツト長として解釈される。即ち、与え
られる数字の数は、長さバイトの値の2倍である。長さ
バイトがアドレスaOに書かれる場合、このバイトはセ
ミオクテツト長として解釈され、検索キー内の数を明示
する。アドレス空間ao−bfは他方アドレス空間8O
−9fの別称である。(現在AREの実施形態は40(
10進数)以上の又は零に等しいセミオクテツトをエラ
ーとみなす。) 長さオクテツトによって示唆されたよりも多い数を検索
キー領域に書き込むことができる。合計で最大32のオ
クテツトが書き込まれなければならず、33番目のオク
テツトは検索を再初期化するか、バスエラーを発生する
。25以上のオクテツトが供給される場合、検索結果が
利用可能となる時に、過剰なオクテツトが、この検索結
果とともに重ね書きされる。長さフィールドが示すより
もより少ないオクテツトが供給される場合、検索エンジ
ンは、検索を恒久的に終了、しない場合に供給されるべ
きオクテツトを無期限に待ち続ける。
る。二バイトがアドレス80に書き込まれる場合9、こ
のバイトはオクテツト長として解釈される。即ち、与え
られる数字の数は、長さバイトの値の2倍である。長さ
バイトがアドレスaOに書かれる場合、このバイトはセ
ミオクテツト長として解釈され、検索キー内の数を明示
する。アドレス空間ao−bfは他方アドレス空間8O
−9fの別称である。(現在AREの実施形態は40(
10進数)以上の又は零に等しいセミオクテツトをエラ
ーとみなす。) 長さオクテツトによって示唆されたよりも多い数を検索
キー領域に書き込むことができる。合計で最大32のオ
クテツトが書き込まれなければならず、33番目のオク
テツトは検索を再初期化するか、バスエラーを発生する
。25以上のオクテツトが供給される場合、検索結果が
利用可能となる時に、過剰なオクテツトが、この検索結
果とともに重ね書きされる。長さフィールドが示すより
もより少ないオクテツトが供給される場合、検索エンジ
ンは、検索を恒久的に終了、しない場合に供給されるべ
きオクテツトを無期限に待ち続ける。
良i級困■1
検索の結果は、検索キーがロードされる同じノード(即
ち、ノード8000から8007の一つ)におけるアド
レス98−9f (b8−bf)において利用可能であ
る。結果のフォーマットは以下の通りである。
ち、ノード8000から8007の一つ)におけるアド
レス98−9f (b8−bf)において利用可能であ
る。結果のフォーマットは以下の通りである。
99又はb9 検索の終了における検索アドレスの残
りのセミオクテツト 長〔バイト〕 9a−9b又は SRピットセットと遭遇するba−b
b 最近ノード〔符号なし語〕9c又はbc 検索の終了でのストリング数 字カウンタの値 制御及びスティタスレジスタ ス080000cO 9d又はbd 検索の終了での記憶数字カラ ンタの値 e e 9f又は f 検索中に最も最近遭遇するノ ード(このノードが空ノード である場合を除<)〔符号な し語〕 結果情報を解釈する場合の詳細な情報に対する付録Bを
参照する。
りのセミオクテツト 長〔バイト〕 9a−9b又は SRピットセットと遭遇するba−b
b 最近ノード〔符号なし語〕9c又はbc 検索の終了でのストリング数 字カウンタの値 制御及びスティタスレジスタ ス080000cO 9d又はbd 検索の終了での記憶数字カラ ンタの値 e e 9f又は f 検索中に最も最近遭遇するノ ード(このノードが空ノード である場合を除<)〔符号な し語〕 結果情報を解釈する場合の詳細な情報に対する付録Bを
参照する。
スティタスレジスタ0がパリティ−制御及びCPUアド
レスに対するスティタスを、DRAMが与えられたデー
タベースメモリーに与えられる。
レスに対するスティタスを、DRAMが与えられたデー
タベースメモリーに与えられる。
PES :パリティーエラーが、ストリング記憶メモリ
ーを読むCPU上で検出される時にセットされ、CPU
が1を重ね書きすることによりリセットされる。
ーを読むCPU上で検出される時にセットされ、CPU
が1を重ね書きすることによりリセットされる。
PEP :パリティーエラーが、次のノードポインター
を読むCPU上で検出される時にセットされ、CP、U
が1を重ね書きすることによりリセットされる。
を読むCPU上で検出される時にセットされ、CP、U
が1を重ね書きすることによりリセットされる。
EPS : CPUによって読み出され/書き込まれる
。零の時、ストリング記憶メモリー上に奇数パリティ−
を使用(生成し且つチエツク)し、lに設定される時、
偶数パリティ−を使用する。
。零の時、ストリング記憶メモリー上に奇数パリティ−
を使用(生成し且つチエツク)し、lに設定される時、
偶数パリティ−を使用する。
EPP : CPUによって読み出され/書き込まれる
。零の時、次のノードポインターメモリー上に奇数パリ
ティ−を使用(生成し且つチエツク)し、1に設定され
る時、偶数パリティ−を使用する。
。零の時、次のノードポインターメモリー上に奇数パリ
ティ−を使用(生成し且つチエツク)し、1に設定され
る時、偶数パリティ−を使用する。
全AREに対して一つの制御レジスタが存在する。これ
らビットは以下に定義される。
らビットは以下に定義される。
8M(検索モード): SM=0 (= rメンテナン
ス モード」)の時、検索モードが開始され、検索結果
情報は無効である。検索エンジンはリセットされる。こ
のモードは、CPUがアドレス7f以下の資源にアクセ
スすることができる。SM=1の場合、検索モードが使
用可能になる。このモードは、検索キーがロードされる
以前に選択され、結果が読み出されるまで維持される必
要がある。このモードにおいて、アドレス7f以下の全
資源にはアクセス不能である。
ス モード」)の時、検索モードが開始され、検索結果
情報は無効である。検索エンジンはリセットされる。こ
のモードは、CPUがアドレス7f以下の資源にアクセ
スすることができる。SM=1の場合、検索モードが使
用可能になる。このモードは、検索キーがロードされる
以前に選択され、結果が読み出されるまで維持される必
要がある。このモードにおいて、アドレス7f以下の全
資源にはアクセス不能である。
N5AP (NSAPモード):このビットは、検索の
終わりの結果要約オクテツト内の成功/失敗ビットのセ
ツティングのみに影響する(付録Bを参照する)。
終わりの結果要約オクテツト内の成功/失敗ビットのセ
ツティングのみに影響する(付録Bを参照する)。
ILI (禁止レベル−1遷移):このビットがセット
される場合、いかなる検索中にもレベル−1遷移はなさ
れない。
される場合、いかなる検索中にもレベル−1遷移はなさ
れない。
ID5P (禁止DSP遷移):このビットがセットさ
れる場合、いかなる検索中にもDSP遷移が生じない。
れる場合、いかなる検索中にもDSP遷移が生じない。
SDK (停止DSACK)このビットがセットされる
場合、(検索結果情報下で定義される)検索結果情報の
読み出しは、結果が使用可能であるまで停止される可能
性拡張バスサイクルを結果する。これは、結果が利用可
能であるかをチエツクする必要性を除去する。これは、
検索モードのみで全コンチクストに適用可能である。
場合、(検索結果情報下で定義される)検索結果情報の
読み出しは、結果が使用可能であるまで停止される可能
性拡張バスサイクルを結果する。これは、結果が利用可
能であるかをチエツクする必要性を除去する。これは、
検索モードのみで全コンチクストに適用可能である。
d2、dl、d 0−AREによって使用されない。
検索スティタスレジスタ 2
−アドレス 080000c2 (読し出しのみ)ビッ
トが診断目的のために先ず与えられる。これらビットは
、検索エンジンが(スティタスレジスタ3で定義された
)HALTed又はBUSYの何れかに成る時のみ正し
い。
トが診断目的のために先ず与えられる。これらビットは
、検索エンジンが(スティタスレジスタ3で定義された
)HALTed又はBUSYの何れかに成る時のみ正し
い。
BCNT:このビットは、検索エンジンが検索アドレス
の第1のバイトがオクテツト長カウントであると仮定す
る時にセットされる。次にセミオクテツト(数字)カウ
ントが仮定される。
の第1のバイトがオクテツト長カウントであると仮定す
る時にセットされる。次にセミオクテツト(数字)カウ
ントが仮定される。
RT2..0:これら3つのビットは、検索引き数を読
み出す目的のために検索エンジンが使用する根ルートの
3つ最下位ビットに等しい。
み出す目的のために検索エンジンが使用する根ルートの
3つ最下位ビットに等しい。
−アドレス 080000c3 (読み出しのみ)この
レジスタから利用可能な4つのスティタスこのスティタ
スレジスタは応用及び診断使用のための検索エンジンを
与える。
レジスタから利用可能な4つのスティタスこのスティタ
スレジスタは応用及び診断使用のための検索エンジンを
与える。
BUSY :このビットは、検索エンジンがノードを処
理し又は結果のロードを処理する時セットされる。
理し又は結果のロードを処理する時セットされる。
HALT :このビットが、検索エンジンが処理ノード
を停止した時にセットされる。
を停止した時にセットされる。
上記2つのビットが対としてデコードされる必要がある
。
。
BUSY HALT 解釈
00 検索エンジンがリセットされるI O検索エン
ジンが検索を行う 11 結果がロードされる(短い遷移状態)01
結果が読み出しのために利用可能f5..fo:これ
らのビットが、検索キーの構成部分を書き込むことによ
ってレジスタファイル内にセットされ、正しいデータが
存在することを示すのに検索エンジンによって使用され
る。
ジンが検索を行う 11 結果がロードされる(短い遷移状態)01
結果が読み出しのために利用可能f5..fo:これ
らのビットが、検索キーの構成部分を書き込むことによ
ってレジスタファイル内にセットされ、正しいデータが
存在することを示すのに検索エンジンによって使用され
る。
レジスタ3の全ビットは、マシンがメンテナンスモード
(制御レジスタのビット7がゼロ)にある時にリセット
される。ビットf5からflは、CPUが検索キーの最
初のロングワードの最後のバイトに書き込みを行う時に
リセットされる。同時に、ビットfOが(検索モードが
イネーブルされる場合)セットされる。CPUが検索キ
ーの第20ングワードの最終バイトに書き込みを行う時
、ビットflが、検索モードで、セットされ、ビットf
2からF5が同様に第3から第60ングワードの最終バ
イトが書き込み中に同様にセットされる。
(制御レジスタのビット7がゼロ)にある時にリセット
される。ビットf5からflは、CPUが検索キーの最
初のロングワードの最後のバイトに書き込みを行う時に
リセットされる。同時に、ビットfOが(検索モードが
イネーブルされる場合)セットされる。CPUが検索キ
ーの第20ングワードの最終バイトに書き込みを行う時
、ビットflが、検索モードで、セットされ、ビットf
2からF5が同様に第3から第60ングワードの最終バ
イトが書き込み中に同様にセットされる。
アドレス 080000c4 (読み出しのみ)このス
ティタスはCPUが基板上のスイッチパック内の8つの
スイッチの位置を読み出すことを可能にする。
ティタスはCPUが基板上のスイッチパック内の8つの
スイッチの位置を読み出すことを可能にする。
録 B:AREからの検索結果をデコードする検索キー
かロードされるのと同じノード、即ち、8000から8
007の一つのアドレス98−9f (b8−bf)で
利用可能である。制御ビットrSKDJがセットされる
場合(制御レジスタ1内のビット3)、検索キーをロー
ドした後に読み出すことができる。CPUは、正しいデ
ータが戻されるまでハードウェアによって停止される。
かロードされるのと同じノード、即ち、8000から8
007の一つのアドレス98−9f (b8−bf)で
利用可能である。制御ビットrSKDJがセットされる
場合(制御レジスタ1内のビット3)、検索キーをロー
ドした後に読み出すことができる。CPUは、正しいデ
ータが戻されるまでハードウェアによって停止される。
「SKD」ビットがセットされない場合、CPUはステ
ィタスレジスタ3をポールして、検索結果状態が正しい
時を決定しなければならない。
ィタスレジスタ3をポールして、検索結果状態が正しい
時を決定しなければならない。
結果のフォーマットは以下の通りである。最小遅延が、
結果が2つのロングワードを読み出すまで、生じる。
結果が2つのロングワードを読み出すまで、生じる。
要約
残余長
現在迄の
結果
残余IDI
バイト 要約スティタスバイト(以
下参照)
バイト 検索エンジンによって処理
されない残余検索キー数字
の数
ワード 「セーブ結果」ビットセッ
トを有する検索エンジンに
よって横切られるTRIE内最
近ノード
バイト 検索エンジンによって処理
されない検索キー内の残余
ストリング バイト
カウンタ
現在迄の
取得
バイト
IDI数字の数
ストリング不一致検索終了
の場合情報を与える、スト
リングカウンタ値
(空ノードの場合を除き)
終了時間に検索エンジンに
よって処理されるノード
要約スティタスバイト
要約スティタスバイトが与えられると、ホストCPUは
、検索が成功したかしないかを直ちに決定し、成功しな
い場合は、検索の失敗の理由を決定する。
、検索が成功したかしないかを直ちに決定し、成功しな
い場合は、検索の失敗の理由を決定する。
エンコーディングは、データベースが破壊されるべきか
否かが検索エンジンによって見做されるか否かに依存し
、更に制御レジスタl内のrNASPJ ビットによっ
て影響される。
否かが検索エンジンによって見做されるか否かに依存し
、更に制御レジスタl内のrNASPJ ビットによっ
て影響される。
2つの場合が以下に分けて記述される。
場合1;破壊されたデータベース
破壊されたデータベースに対して、出力のエンコーディ
グは、 ISO=到達した不合法ストリング係数(CPUが、1
ノードで許される最大よりも多くのストリング数字が存
在した。) PEP=ポインターメモリー上のパリティ−エラLI
ND=レベル1遷移が達成され、DSP遷移は達成され
ない(N S A Pモードのみ)。
グは、 ISO=到達した不合法ストリング係数(CPUが、1
ノードで許される最大よりも多くのストリング数字が存
在した。) PEP=ポインターメモリー上のパリティ−エラLI
ND=レベル1遷移が達成され、DSP遷移は達成され
ない(N S A Pモードのみ)。
LINE=レベル1遷移が達成され、ソース数字が費や
された(NSAPモードのみ)。
された(NSAPモードのみ)。
ビットISC,PEP及びPESの設定ビットは、互い
に排他的である。
に排他的である。
ISCが設定される場合、一つのノードで許される最大
ストリング長を越す数字ポインターによりストリング比
較サイクルを開始することを試みる。「現在までの取得
」フィールドは、ストリングが記憶されるノードを含む
。[ストリングカウント」フィールドが大きすぎるスト
リング数字ポインターを含む。
ストリング長を越す数字ポインターによりストリング比
較サイクルを開始することを試みる。「現在までの取得
」フィールドは、ストリングが記憶されるノードを含む
。[ストリングカウント」フィールドが大きすぎるスト
リング数字ポインターを含む。
PEPが設定される場合、遷移が16個の「次ノード」
ポインターの一つを通して一つのノードから達成される
。アドレスが、パリティ−エラーを含む次のノードに対
して示される。「現在までの取得」フィールドは破壊さ
れた「次のノード」ポインターが記憶されるノードを含
む。「残糸長」フィールドが検索エンジンによって処理
されべきにどれだけ多くの検索キー数字が残るかを示す
。
ポインターの一つを通して一つのノードから達成される
。アドレスが、パリティ−エラーを含む次のノードに対
して示される。「現在までの取得」フィールドは破壊さ
れた「次のノード」ポインターが記憶されるノードを含
む。「残糸長」フィールドが検索エンジンによって処理
されべきにどれだけ多くの検索キー数字が残るかを示す
。
これらの残りの数字の第1のものは、破壊された「次の
ノード」ポインターを選択するのに使用された数字に直
後の数字である。
ノード」ポインターを選択するのに使用された数字に直
後の数字である。
PESが設定される場合、次のストリング比較サイクル
が開始されたが、記憶されたストリング数字はパリティ
−エラーは含まなかった。「現在までの取得」フィール
ドは破壊されたストリングが記憶されたノードを含む。
が開始されたが、記憶されたストリング数字はパリティ
−エラーは含まなかった。「現在までの取得」フィール
ドは破壊されたストリングが記憶されたノードを含む。
「ストリングカウント」フィールドは、パリティ−エラ
ーが検出された後の数字を示す。
ーが検出された後の数字を示す。
LIND及びLIDEID上を設定することは、ISC
,PEP及びPESビットと独立している。
,PEP及びPESビットと独立している。
検索の終了時に、理由は何であっても、LINDビット
が、NASPモードが選択される場合設定され、レベル
1遷移が達成され、DSP遷移は達成されない。LID
EID上は、レベルl遷移が達成された場合、同様に設
定され、残りの検索キー数字は存在しない。検索エンジ
ンは、レベルl遷移が達成された場合、N5APの遷移
において最小2つの残りの数字が通常存在することを期
待する(これら2つ数字はSELフィールドである。ン
場合2:データベースが破壊されない データベースが破壊されないと考えれる場合、次ぎに要
約スティタスバイト内のビットのエンコーディングは、 F=検索失敗(0=成功)。このビットはN5APモー
ドピツトによって影響される。
が、NASPモードが選択される場合設定され、レベル
1遷移が達成され、DSP遷移は達成されない。LID
EID上は、レベルl遷移が達成された場合、同様に設
定され、残りの検索キー数字は存在しない。検索エンジ
ンは、レベルl遷移が達成された場合、N5APの遷移
において最小2つの残りの数字が通常存在することを期
待する(これら2つ数字はSELフィールドである。ン
場合2:データベースが破壊されない データベースが破壊されないと考えれる場合、次ぎに要
約スティタスバイト内のビットのエンコーディングは、 F=検索失敗(0=成功)。このビットはN5APモー
ドピツトによって影響される。
RL−r現在までの結果」フィールドが有効。
NIL−空ノードが到達。
SM=ストリング不一致が発生した。
DE=ソース数字が費やされた。
L1=レベルl遷移が達成された。
DSP=DSP遷移が達成した。
検索が成功した場合、Fビットは0である。成功した検
索は、データベースが破壊されなかったものと定義され
る。供給された長さが1から40のセミオクテツトの範
囲内にあり、更に、N5APモードにおいては(a)レ
ベル1遷移が達成され、現在までの結果が少なくとも一
度ロードされ、要約スティタスのエンコーディングがo
otxxxOXであるか、fb)レベル1遷移が達成さ
れ、ストリグの不一致がなく、端子ノードがSRがセッ
トされる場所に到達し、(暗示的に)DSP遷移が達成
され、検索キー数字の全ては使用されなかったのいずれ
かである。この場合の要約スティタスバイトのエンコー
ディングは00100011である。
索は、データベースが破壊されなかったものと定義され
る。供給された長さが1から40のセミオクテツトの範
囲内にあり、更に、N5APモードにおいては(a)レ
ベル1遷移が達成され、現在までの結果が少なくとも一
度ロードされ、要約スティタスのエンコーディングがo
otxxxOXであるか、fb)レベル1遷移が達成さ
れ、ストリグの不一致がなく、端子ノードがSRがセッ
トされる場所に到達し、(暗示的に)DSP遷移が達成
され、検索キー数字の全ては使用されなかったのいずれ
かである。この場合の要約スティタスバイトのエンコー
ディングは00100011である。
非N5APモードに於いて、成功検索は、データベース
が破壊されていなく、検索アドレス長が指定された長さ
にあり、検索アドレス数字の全てが使用され、ストリン
グ不一致がなく、(且つ検索アドレス数字が、検索突き
合わせの際に費やされない)、且つ到達した最終ノード
(空ノードでない)がSRビットセットを有する場合で
ある。
が破壊されていなく、検索アドレス長が指定された長さ
にあり、検索アドレス数字の全てが使用され、ストリン
グ不一致がなく、(且つ検索アドレス数字が、検索突き
合わせの際に費やされない)、且つ到達した最終ノード
(空ノードでない)がSRビットセットを有する場合で
ある。
最終ノードはターミナルノードである場合もあるしない
場合もある。このノードがターミナルノードである場合
、「DE」ビットは0である(例え、数字が費やされた
場合でも)。要約スティタスバイトのエンコーディング
は0010 0XX 検索期間中に「現在までの結果」フィールドにノードア
ドレスがロードされた後RLビットがセットされる。こ
のビットは、「現在までの結果」フィールドが有効なデ
ータを含むことを示す。RLが零の場合、「現在までの
結果」フィールドの値は定義されない(好ましい例にお
いて、この値は根ノードを含んでいる。)。
場合もある。このノードがターミナルノードである場合
、「DE」ビットは0である(例え、数字が費やされた
場合でも)。要約スティタスバイトのエンコーディング
は0010 0XX 検索期間中に「現在までの結果」フィールドにノードア
ドレスがロードされた後RLビットがセットされる。こ
のビットは、「現在までの結果」フィールドが有効なデ
ータを含むことを示す。RLが零の場合、「現在までの
結果」フィールドの値は定義されない(好ましい例にお
いて、この値は根ノードを含んでいる。)。
L1ビットの設定は、制御レジスタ内の制御ビットrI
LIJがセットされるかされないかに依存している。こ
の制御ビットがセットされない場合、レベル1遷移が利
用可能になり、L1スティタスビットは、レベル1遷移
が検索中に成された場合のみにセットされる。他方、r
ILl」ビットがセットされる場合、レベルl遷移が禁
止され、この場合、検索中のいかなる時においても、遷
移が、ノード制御ビット「イネーブルレベル1遷移」が
セットされたノードから成された場合(DSP遷移では
ない)、L1スティタスがセットされる。
LIJがセットされるかされないかに依存している。こ
の制御ビットがセットされない場合、レベル1遷移が利
用可能になり、L1スティタスビットは、レベル1遷移
が検索中に成された場合のみにセットされる。他方、r
ILl」ビットがセットされる場合、レベルl遷移が禁
止され、この場合、検索中のいかなる時においても、遷
移が、ノード制御ビット「イネーブルレベル1遷移」が
セットされたノードから成された場合(DSP遷移では
ない)、L1スティタスがセットされる。
検索期間中にDSP遷移が達成された場合及びその場合
のみDSPビットがセットされる。制御ビット「ID5
P」が制御レジスタl内にセットされる場合、DSP遷
移が禁止され、DSP (遷移達成)スティタスビット
が常に零になる。
のみDSPビットがセットされる。制御ビット「ID5
P」が制御レジスタl内にセットされる場合、DSP遷
移が禁止され、DSP (遷移達成)スティタスビット
が常に零になる。
N I L、SM、DEビットはデータベースが破壊さ
れない場合に検索エンジンが停止した理由をエンコード
する。各場合が以下の詳細に記述される。上述された様
に、「現在までの結果」フィールドは、RLビットがセ
ットされる場合のみ有効である。
れない場合に検索エンジンが停止した理由をエンコード
する。各場合が以下の詳細に記述される。上述された様
に、「現在までの結果」フィールドは、RLビットがセ
ットされる場合のみ有効である。
(a)N I L、 5M5DE=000 +こツエン
コーディングは、ターミナルノードに検索エンジンが到
達したことを意味する。「現在までの取得」フィールド
はターミナルノードを含む。「現在までの結果」フィー
ルドは「5R8F」ノード制御ビットセットを有した最
近横切られたノードを含む。
コーディングは、ターミナルノードに検索エンジンが到
達したことを意味する。「現在までの取得」フィールド
はターミナルノードを含む。「現在までの結果」フィー
ルドは「5R8F」ノード制御ビットセットを有した最
近横切られたノードを含む。
「5R8F」がターミナルノードにセットされると、「
現在までの結果」は「現在までの取得」る等しい。「残
糸長」フィールドは、どれだけ多くの検索キー数字が検
索エンジンによって使用され無かったかを示し、その値
が零であり場合は、最後の数字が検索エンジンがターミ
ナルノードに行くことに対して責任があることを示して
いる。
現在までの結果」は「現在までの取得」る等しい。「残
糸長」フィールドは、どれだけ多くの検索キー数字が検
索エンジンによって使用され無かったかを示し、その値
が零であり場合は、最後の数字が検索エンジンがターミ
ナルノードに行くことに対して責任があることを示して
いる。
(b)N I L、 SM、 DE=001 :このエ
ンコーディングは、検索キー数字を使い切ったために検
索エンジンが停止したことを意味する。その他の場合は
、検索エンジンが停止した場所のノードから遷移が達成
されていた。「現在までの取得」フィールドは、数字が
使い切られた時に検索エンジンによって到達されたノー
ドを含む。このノードはNILでもターミナルノードで
もない。このノードに記憶されたストリングが存在する
と、それは連続的に突き合わされる。「SR」ビットが
このノードに設定される場合は、「現在までの結果」は
「現在までの取得」に等しい。他方、rsRJビットセ
ットを有して最近され横切られたノードを含む。レベル
1又はDSP遷移は、検索アドレス数字が使い切られた
時でさえノードから達成され、従って、DSP又はレベ
ル1遷移は「現在までの取得」によって示される到達し
た最終ノードからは達成することができないことに注意
すべきである。
ンコーディングは、検索キー数字を使い切ったために検
索エンジンが停止したことを意味する。その他の場合は
、検索エンジンが停止した場所のノードから遷移が達成
されていた。「現在までの取得」フィールドは、数字が
使い切られた時に検索エンジンによって到達されたノー
ドを含む。このノードはNILでもターミナルノードで
もない。このノードに記憶されたストリングが存在する
と、それは連続的に突き合わされる。「SR」ビットが
このノードに設定される場合は、「現在までの結果」は
「現在までの取得」に等しい。他方、rsRJビットセ
ットを有して最近され横切られたノードを含む。レベル
1又はDSP遷移は、検索アドレス数字が使い切られた
時でさえノードから達成され、従って、DSP又はレベ
ル1遷移は「現在までの取得」によって示される到達し
た最終ノードからは達成することができないことに注意
すべきである。
(C)NILSSM、DE=010 :このエンコーデ
ィングは、検索キーの定数ストリング数字及び次ぎの数
字の間の不一致を検出してことにより検索エンジンが停
止したことを意味する。「現在までの取得」フィールド
は、定数ストリングが記憶される場所のノードに含まれ
る。「ストリングカウント」フィールドは一致しない数
字の後のストリング数字を指し示す。「残糸長Jフィー
ルドはどれだけ多くの検索キー数字が検索エンジンによ
って処理されなかっかかを示し。これら残りの数字の第
1のものは、定数ストリング数字と一致しなかった数字
の直後に続く。
ィングは、検索キーの定数ストリング数字及び次ぎの数
字の間の不一致を検出してことにより検索エンジンが停
止したことを意味する。「現在までの取得」フィールド
は、定数ストリングが記憶される場所のノードに含まれ
る。「ストリングカウント」フィールドは一致しない数
字の後のストリング数字を指し示す。「残糸長Jフィー
ルドはどれだけ多くの検索キー数字が検索エンジンによ
って処理されなかっかかを示し。これら残りの数字の第
1のものは、定数ストリング数字と一致しなかった数字
の直後に続く。
「現在までの結果」フィールドはrsR8F」ビットセ
ットを有する(検索が終了したノードの前の)最も最近
訪れられたノードを含む。
ットを有する(検索が終了したノードの前の)最も最近
訪れられたノードを含む。
(d)N I LXSM、 DE=011 :これは、
検索エンジンに課せられたストリング数字比較サイクル
を達成することかできないので検索エンジンが停止した
ことを意味する。これは、(i)検索引き数円の数字が
費やされ始めたか、又は(if)特に、IDP数字のみ
を記憶する通路数字ストリングに対する比較を行う間に
検索引き数のIDP数字が費やされ初めだかの何れかの
理由による。「現在までの取得」フィールドはストリン
グが記憶されたノードを含む。「ストリングカウント」
フィールドが、(ii次ぎの検索キー数字、又は(ii
)次ぎのIDP数字の一方と比較されるストリング数字
を指し示す。
検索エンジンに課せられたストリング数字比較サイクル
を達成することかできないので検索エンジンが停止した
ことを意味する。これは、(i)検索引き数円の数字が
費やされ始めたか、又は(if)特に、IDP数字のみ
を記憶する通路数字ストリングに対する比較を行う間に
検索引き数のIDP数字が費やされ初めだかの何れかの
理由による。「現在までの取得」フィールドはストリン
グが記憶されたノードを含む。「ストリングカウント」
フィールドが、(ii次ぎの検索キー数字、又は(ii
)次ぎのIDP数字の一方と比較されるストリング数字
を指し示す。
「現在までの結果」フィールドは(検索が終了したノー
ドの前の)、「SR」ビットセットを有した最も最近訪
れたノードを含む。
ドの前の)、「SR」ビットセットを有した最も最近訪
れたノードを含む。
(e)N I L、 SM、 DE= l 00 :こ
れは、検索エンジンがNILノードに到達したことを意
味する。「現在までの取得」フィールドは空ノードの前
の最も最近訪れたノードを含む。同様に、「現在までの
結果」は「SR」ビットがセットされた(空ノードの前
の)最も最近訪れたノードを含む。
れは、検索エンジンがNILノードに到達したことを意
味する。「現在までの取得」フィールドは空ノードの前
の最も最近訪れたノードを含む。同様に、「現在までの
結果」は「SR」ビットがセットされた(空ノードの前
の)最も最近訪れたノードを含む。
空ノードに対する遷移が、検索キー数字によって成され
、「現在までの取得」フィールド内にそのノードが示さ
れ続ける。この数字は、検索エンジンによって使用され
た最後のものであり、この数字は、「残余長」又は「残
りrDI長」カウント内には含まれない。
、「現在までの取得」フィールド内にそのノードが示さ
れ続ける。この数字は、検索エンジンによって使用され
た最後のものであり、この数字は、「残余長」又は「残
りrDI長」カウント内には含まれない。
げ)NI L、SM、DE=110 :これは、検索エ
ンジンが空ノードに到達したことを意味する。
ンジンが空ノードに到達したことを意味する。
この場合、DSP又はレベル1ポインターを使用してこ
の遷移が達成せれ、そのノードが「現在までの取得」フ
ィールド内に示され続ける。通常の場合、レベル1ポイ
ンターは空ノードを指し示し、従って、DSP遷移が空
ノードに対してなされたことを想定することができる。
の遷移が達成せれ、そのノードが「現在までの取得」フ
ィールド内に示され続ける。通常の場合、レベル1ポイ
ンターは空ノードを指し示し、従って、DSP遷移が空
ノードに対してなされたことを想定することができる。
DSP遷移が空ノードの対して達成された場合において
も、スティタスビットrDSP遷移達成」がセットされ
る。「残りのIDI長」の値が零になる。「残余長」フ
ィールドの値は供給検索キーの完全DSP長に等しい。
も、スティタスビットrDSP遷移達成」がセットされ
る。「残りのIDI長」の値が零になる。「残余長」フ
ィールドの値は供給検索キーの完全DSP長に等しい。
(勅NIL、SM、DE=111 :これは非合法検索
キー長が検索エンジンに供給されたことを意味する。即
ち、零又は41個以上の数字である。
キー長が検索エンジンに供給されたことを意味する。即
ち、零又は41個以上の数字である。
この場合、検索エンジンは検索キー上で全く進歩しない
。
。
求されたメンテナンスサポートの概
メンテナンスエンジン18は、新たなエントリーを、検
索ユニット40に対する引き数として先ず与えることに
よりデータベースに挿入する。検索ユニット40はデー
タベース内に検索引き数を位置させようと試みる。これ
が失敗すると、検索エンジンは少なくともデータベース
内に存在する検索引き数の最長接頭語を報告する(この
最長接頭語はデータベース内の「結果」と関係する必要
はない)。
索ユニット40に対する引き数として先ず与えることに
よりデータベースに挿入する。検索ユニット40はデー
タベース内に検索引き数を位置させようと試みる。これ
が失敗すると、検索エンジンは少なくともデータベース
内に存在する検索引き数の最長接頭語を報告する(この
最長接頭語はデータベース内の「結果」と関係する必要
はない)。
多くとも2つの新たなノードがデータベース内に挿入さ
れる。一つの新たなノードが加えられて、全ての既存の
ノードからこの新たなエントリーは識別される。このノ
ードは、検索ユニットが新たなエントリーの最長接頭語
を置(ポイントに挿入される。一つの別の新たなノード
が加えられ、このノードはデータベースと一致する接頭
語を越える新たなエントリーの残りの数字の全てに等し
い通路圧縮ストリングを含む。
れる。一つの新たなノードが加えられて、全ての既存の
ノードからこの新たなエントリーは識別される。このノ
ードは、検索ユニットが新たなエントリーの最長接頭語
を置(ポイントに挿入される。一つの別の新たなノード
が加えられ、このノードはデータベースと一致する接頭
語を越える新たなエントリーの残りの数字の全てに等し
い通路圧縮ストリングを含む。
識別ノードは、新たなエントリーがデータベースの通路
圧縮ストリングと比較され、この比較の一つの間に不一
致が発生した場合にのみ付加される必要がある。この場
合、通路圧縮ストリングが不一致点で2つに分けられる
必要がある。新たなエントリーに対しての比較が成功し
た部分は、新たなノード(識別ノード)に記憶される。
圧縮ストリングと比較され、この比較の一つの間に不一
致が発生した場合にのみ付加される必要がある。この場
合、通路圧縮ストリングが不一致点で2つに分けられる
必要がある。新たなエントリーに対しての比較が成功し
た部分は、新たなノード(識別ノード)に記憶される。
このノードは2つの非空ポインターを有する。一つのポ
インターが、元の通路圧縮ストリングを有するノードを
指し示す(元の通路圧縮ストリングは、新たなエントリ
ーに対して一致しないストリングの部分に置き換えられ
る。)。第2のポインターは新たなエントリーの残りの
数字の通路圧縮ストリングを(若しあれば)保持する新
たなノードを指し示す。
インターが、元の通路圧縮ストリングを有するノードを
指し示す(元の通路圧縮ストリングは、新たなエントリ
ーに対して一致しないストリングの部分に置き換えられ
る。)。第2のポインターは新たなエントリーの残りの
数字の通路圧縮ストリングを(若しあれば)保持する新
たなノードを指し示す。
この逆工程は消去の為に使用される。
C:ポインター及び通路圧縮によるメモリ節約
ここで与えられた解析は、とれだけ多くの物理的メモリ
ーが、通路圧縮及びポインター圧縮技法をトリーベース
のデータベースに適用することにより節約できるかを大
まかに示している。この解析のために、16個のポイン
ターが一つのノードにあり、これらは各ノードで処理さ
れる検索引き数の4ビット文字(セミオクテツト)に対
応する。
ーが、通路圧縮及びポインター圧縮技法をトリーベース
のデータベースに適用することにより節約できるかを大
まかに示している。この解析のために、16個のポイン
ターが一つのノードにあり、これらは各ノードで処理さ
れる検索引き数の4ビット文字(セミオクテツト)に対
応する。
異なるサイズの文字に対して、解析は、ここで想定され
る16個のポインターの固定サイズと置き換えられたパ
ラメータで達成されるべきである。
る16個のポインターの固定サイズと置き換えられたパ
ラメータで達成されるべきである。
更に、ISO及びD)iCnetフェイズVアドレスの
特異性は考慮に入れない。
特異性は考慮に入れない。
この解析は、所定数のエントリーを有する最悪の場合の
データベースを記憶するためのメモリー要求を考慮する
。第1に、通路圧縮が考えられ、通路圧縮に加えて、ポ
インター圧縮の適用が続く。
データベースを記憶するためのメモリー要求を考慮する
。第1に、通路圧縮が考えられ、通路圧縮に加えて、ポ
インター圧縮の適用が続く。
N個までのエントリーを記憶するのに必要とされるトリ
ーベースデータベースを考える。エントリーはLセミオ
クテツトの最大値までの可変長を有すると考える。トリ
ー内の各ノードは16個のポインターを含む。最悪の場
合、最大数のノードがこれらN個のエントリーを保持す
るのに必要とされる。
ーベースデータベースを考える。エントリーはLセミオ
クテツトの最大値までの可変長を有すると考える。トリ
ー内の各ノードは16個のポインターを含む。最悪の場
合、最大数のノードがこれらN個のエントリーを保持す
るのに必要とされる。
最悪の場合は、エントリー間の全区別が可能な限り根に
近いノードでなされる場合発生する。この場合において
、全エントリーは大きなノード鎖と関連され、各ノード
はこの鎖内の次ぎのリンクを指し示す非空ポインターの
みを使用する。全Nエントリーを特定するのに必要とさ
れるトリーの深さは、10g16Nである。このレベル
まで使用されるノードの全数は(N−1)/15である
。
近いノードでなされる場合発生する。この場合において
、全エントリーは大きなノード鎖と関連され、各ノード
はこの鎖内の次ぎのリンクを指し示す非空ポインターの
みを使用する。全Nエントリーを特定するのに必要とさ
れるトリーの深さは、10g16Nである。このレベル
まで使用されるノードの全数は(N−1)/15である
。
長い鎖内で使用されるノードは、必要とされるノードの
全数の集団を決めている。N個の鎖が存在する。データ
ベース内の全エントリーがLセミオクテツト長の場合、
全路は(L 1og+aN)長を有し、6鎖の端部が
、記憶要求が想定されないターミナルノードを指し示す
。
全数の集団を決めている。N個の鎖が存在する。データ
ベース内の全エントリーがLセミオクテツト長の場合、
全路は(L 1og+aN)長を有し、6鎖の端部が
、記憶要求が想定されないターミナルノードを指し示す
。
従って、必要とされるノードの全数は
(N −1) / 15 + (L −l o g、8
N) *N(1)各サイズは16ポインターである。第
1近似としてこれは L*Nノードに簡略化される。 (2)通
路圧縮が実行されることを今考える。ノードの長い鎖は
ターミナルノード又は少なくとも2つのポインターを有
するノードに崩壊される。メモリーの最大量は、可能な
限り多くの(非ターミナル)ノードが存在する時に必要
となる。これは、全ての非端子ノードが正確に2つのポ
インター(例えば、2進トリー)を有する時の場合であ
る。
N) *N(1)各サイズは16ポインターである。第
1近似としてこれは L*Nノードに簡略化される。 (2)通
路圧縮が実行されることを今考える。ノードの長い鎖は
ターミナルノード又は少なくとも2つのポインターを有
するノードに崩壊される。メモリーの最大量は、可能な
限り多くの(非ターミナル)ノードが存在する時に必要
となる。これは、全ての非端子ノードが正確に2つのポ
インター(例えば、2進トリー)を有する時の場合であ
る。
非端子ノードの全数がN−1である。端子ノードがポイ
ンターに対する記憶を必要としない。従って、ポインタ
ーに対するメモリー要求は(ノード当たり16個のポイ
ンターを有し)、 (N−1)*16ポインターである。 (3)通路圧
縮ストリングに対するメモリー要求がある。ノード間の
ストリングの分布は大幅に変化できるが、データベース
内に各長さがLセミオクテツトであるN個のエントリー
が存在する場合、全記憶要求は(N*L)セミオクテツ
トを越えることが出来ない。ポインターが4つのセミオ
クテツトに等しくされる場合、式(3)の要求を加えて
、全メモリー要求は、良い近似として、 (N−1)*64+ (N*L)=N* (64+L)
セミオクテツト (4)
となる。通路圧縮無しで同じサイズのデータベースに対
する記憶要求と式(2)が比較される時、(4)に対す
る(2)の比は (64*L) / (64+L)である。 (5
)これは、(小さなLに対する)1及び(大きなしに対
する)64の制限によって境界付けられる。
ンターに対する記憶を必要としない。従って、ポインタ
ーに対するメモリー要求は(ノード当たり16個のポイ
ンターを有し)、 (N−1)*16ポインターである。 (3)通路圧
縮ストリングに対するメモリー要求がある。ノード間の
ストリングの分布は大幅に変化できるが、データベース
内に各長さがLセミオクテツトであるN個のエントリー
が存在する場合、全記憶要求は(N*L)セミオクテツ
トを越えることが出来ない。ポインターが4つのセミオ
クテツトに等しくされる場合、式(3)の要求を加えて
、全メモリー要求は、良い近似として、 (N−1)*64+ (N*L)=N* (64+L)
セミオクテツト (4)
となる。通路圧縮無しで同じサイズのデータベースに対
する記憶要求と式(2)が比較される時、(4)に対す
る(2)の比は (64*L) / (64+L)である。 (5
)これは、(小さなLに対する)1及び(大きなしに対
する)64の制限によって境界付けられる。
L=40に対するI 808348/AD2ネツトワー
クアドレスの場合、減少率は24.6であり、極めて大
きな物理メモリーの節約がもたらされる。
クアドレスの場合、減少率は24.6であり、極めて大
きな物理メモリーの節約がもたらされる。
実施形態においては、メモリー管理をより容易にするこ
めに全ソードで最大長通路圧縮ストリングに対して全ノ
ードで最大通路圧縮ストリングに対して十分なメモリー
が割り当てられることがあることが望まれることがある
ことに注意する。この場合、約2倍のメモリーが通路圧
縮を記憶するのに必要とされ、式(5)が、 (32*L)/ (32+L)と変形される。 (6)
これは、32の上限を有し、ISOアドレスの場合の減
少率は17.8であり、依然としてかなりのものである
。
めに全ソードで最大長通路圧縮ストリングに対して全ノ
ードで最大通路圧縮ストリングに対して十分なメモリー
が割り当てられることがあることが望まれることがある
ことに注意する。この場合、約2倍のメモリーが通路圧
縮を記憶するのに必要とされ、式(5)が、 (32*L)/ (32+L)と変形される。 (6)
これは、32の上限を有し、ISOアドレスの場合の減
少率は17.8であり、依然としてかなりのものである
。
ポインター圧縮を、通路圧縮されたトリーに加えること
を次に考える。ポインター圧縮を有さない通路圧縮され
たトリーに対する最悪の場合の記憶要求は、式(4)で
与えられる。ポインター圧縮が導入される時、可能な限
り多くの実際の(即ち、非空)ポインターが使用される
場合に最悪の場合が発生する。従って、最悪場合は、上
述のポインターが圧縮されない場合において使用される
同じ2進トリー構造に対して発生する。各非ターミナル
ルートのサイズは2つのポインター足すビットマスクで
ある。ビットマスクは16個のビット巾であり、特にポ
インターと同じ大きさである。従って、通路圧縮された
及びポインター圧縮されたトリーに対する記憶要求量は
最悪の場合、よい近似として、 (N−1)*3ポインター+(N*L)セミオクテツト
=(7) N* (12+L)セミオクテツト (8
)となる。通路圧縮のみに要求される記憶量、式(4)
と比較すると、■と5の間の値を有する。
を次に考える。ポインター圧縮を有さない通路圧縮され
たトリーに対する最悪の場合の記憶要求は、式(4)で
与えられる。ポインター圧縮が導入される時、可能な限
り多くの実際の(即ち、非空)ポインターが使用される
場合に最悪の場合が発生する。従って、最悪場合は、上
述のポインターが圧縮されない場合において使用される
同じ2進トリー構造に対して発生する。各非ターミナル
ルートのサイズは2つのポインター足すビットマスクで
ある。ビットマスクは16個のビット巾であり、特にポ
インターと同じ大きさである。従って、通路圧縮された
及びポインター圧縮されたトリーに対する記憶要求量は
最悪の場合、よい近似として、 (N−1)*3ポインター+(N*L)セミオクテツト
=(7) N* (12+L)セミオクテツト (8
)となる。通路圧縮のみに要求される記憶量、式(4)
と比較すると、■と5の間の値を有する。
(64+L)/ (12+L) (9
)の割合だけメモリー要求に更に減少がもたらされる。
)の割合だけメモリー要求に更に減少がもたらされる。
L=40の場合ISOアドレスの場合に対して、減少率
は2である。
は2である。
通路圧縮された及びポインター圧縮されたデータベース
に対する全体の減少率は、圧縮のないデータベースと比
較すると、式(5)及び式(9)の積となる。これは、 (64+L) / (12+L) (
10)である。これは小さなLに対して5、大きなしに
対して64の制限によって境界付けられる。
に対する全体の減少率は、圧縮のないデータベースと比
較すると、式(5)及び式(9)の積となる。これは、 (64+L) / (12+L) (
10)である。これは小さなLに対して5、大きなしに
対して64の制限によって境界付けられる。
ISOアドレスの場合に対して、全体としての減少率は
49である。
49である。
第1図はトリーデータベースの概略図、第2A図は、O
8Iネットワークアドレスフォーマットを示す図、 第2B図及び第2C図はIDIフォーマットの表図、 第3図は認識エンジンを有するデータベース構造を表す
図、 第4図は圧縮されない通路データベース構造を表す図、 第5図はポインター圧縮通路データベース構造を表す図
、 第5A図はポインター圧縮されたノード構造の図、 第6図は通路圧縮されたノード構造の図、第7図はID
I、DSP及びレベルl処理のための部分的データベー
ス構造の図、 第8図は認識エンジンのデータ通路の図、第9図は第8
図内のメモリー内のノードデータの位置を説明する表図
。 10・・・ルータ、11・・・パケット、12・・・受
信ユニット、14・・・前送りエンジン、16・・・通
信リンク、18・・・管理エンジン、20・・・認識エ
ンジン、30・・・フェッチユニット、40・・・検索
ユニット、50・・・メモリー FIG、4 FIG、5 FIG、6 ボンルターB縮 なLノード′ ボイ〉ターE縮 あり ノード′ FIG、9 手 続 補 正 書(方式) %式% 1、事件の表示 平成2年特許願第185147号 2、発明の名称 圧縮された接頭語突き合わせデータ ベース検索方法及び装置 3、補正をする者 事件との関係 出 願人 4、代 理 人
8Iネットワークアドレスフォーマットを示す図、 第2B図及び第2C図はIDIフォーマットの表図、 第3図は認識エンジンを有するデータベース構造を表す
図、 第4図は圧縮されない通路データベース構造を表す図、 第5図はポインター圧縮通路データベース構造を表す図
、 第5A図はポインター圧縮されたノード構造の図、 第6図は通路圧縮されたノード構造の図、第7図はID
I、DSP及びレベルl処理のための部分的データベー
ス構造の図、 第8図は認識エンジンのデータ通路の図、第9図は第8
図内のメモリー内のノードデータの位置を説明する表図
。 10・・・ルータ、11・・・パケット、12・・・受
信ユニット、14・・・前送りエンジン、16・・・通
信リンク、18・・・管理エンジン、20・・・認識エ
ンジン、30・・・フェッチユニット、40・・・検索
ユニット、50・・・メモリー FIG、4 FIG、5 FIG、6 ボンルターB縮 なLノード′ ボイ〉ターE縮 あり ノード′ FIG、9 手 続 補 正 書(方式) %式% 1、事件の表示 平成2年特許願第185147号 2、発明の名称 圧縮された接頭語突き合わせデータ ベース検索方法及び装置 3、補正をする者 事件との関係 出 願人 4、代 理 人
Claims (34)
- (1)検索路内の前と次のノードの間に生じるノードを
除去することにより長さが減少された検索を制御する方
法が、 前記除去されたノードが存在した場合に、検索が前記次
のノードに進んだか否かに関する情報を記憶し、 検索引き数を前記記憶された情報と比較し、この比較が
正の場合、前記検索を、前記前のノードから前記次のノ
ードに直接的に効率的に進ませることから成る検索を制
御する方法。 - (2)前記ノードの幾つかが前記検索に対する結果値を
与え、前記ノードが、その存在が前記検索のための結果
値に影響を及ぼさない場合のみ除去されることを特徴と
する請求項(1)記載の方法。 - (3)前記情報が前記以下のノードに記憶されているこ
とを特徴とする請求項(1)記載の方法。 - (4)前記検索が第1及び第2のモードを有し、前記検
索の前記第1のモードが前記検索路に沿った処理ノード
から成り、そして 前記除去されたノードが、それが存在する場合、前記検
索を前記次のノードに進めるか、又は前記検索を前記第
2のモードに進ませるノードを含むことを特徴とする請
求項(1)記載の方法。 - (5)前記検索引き数が、一連の検索セグメントから成
り、前記引き数のセグメントの値の幾つかが、前記検索
路に沿ったノードに対応しており、前記セグメントの他
の値が前記第2のモードに関係していることを特徴とす
る請求項(4)記載の方法。 - (6)前記記憶された情報が、一連の前記検索引き数で
あることを特徴とする請求項(5)記載の方法。 - (7)ノードに関連し且つ前記第2のモードに対応する
セグメントを各々指示する標識を与え、前記連続する検
索セグメントを処理することにより前記検索路を検索す
る工程をさらに有し、前記処理が各ノードに関連する標
識を検査し、且つ前記標識が前記セグメントが前記第2
のモードに関係する場合のみ前記第2の検索に進むこと
を特徴とする請求の範囲(6)記載の方法。 - (8)前記検索の前記第2のモードが前記検索を終了す
ることから成ることを特徴とする請求項(7)記載の方
法。 - (9)前記検索用き数がネットワーク内のシステムアド
レスから成ることを特徴とする請求項(8)記載の方法
。 - (10)通路決め情報を分散型デジタルデータ処理ネッ
トワーク内のパケットアドレスと関係付ける方法が、 樹木構造にされた非空ノード、前記アドレスのセグメン
トによって識別される前記ノードを通過する通路であり
、1つのセグメントの各値が前記通路上に沿った次の可
能性のあるノードを識別し、 前記通路を終了するために空ノードを与え、単一の非空
次ノードを有するノードを、他のノード内に記憶された
通路ストリングで置き換え、前記通路ストリングが、置
き換えられたノードに対応する一連のセグメントの値を
記憶することから成る方法。 - (11)単一の非空次ノードを有する他のノードを、こ
の様なノードが前記樹木構造内に残らなくなるまで更に
置き換えることを含む請求項(10)の記載の方法。 - (12)減少された2つのモードを制御する方法が、前
記検索の第1のモードに対して、検索路に沿うノードを
与え、前記ノードの少なくとも幾つかが、他のノードを
指し示す一つ以上のポインターを含み、 一連の検索引き数から成る検索引き数を与え、前記引き
数のセグメントの幾つかの値が前記検索路に沿うノード
に対応し、前記セグメントの幾つかの他の値が、前記検
索の第2のモードに関係し、 ノードと関連する標識を与え、各標識が前記第2のモー
ドに対応するセグメントを指示し、連続する検索セグメ
ントを処理することにより前記検索路を検索し、前記処
理が各ノードに関連する標識を検査し、前記セグメント
が前記第2のモードに関連することを前記標識が指示す
る場合前記第2の検索モードを処理することから成る方
法。 - (13)前記標識が、前記セグメントが前記第2の検索
モードに対応することを示さない場合、前記標識及び前
記セグメントを検査して前記ポインターの一つを決め、
前記検索を次のノードに続けることを更に含む請求項(
12)の方法。 - (14)各前記標識が、複数の前記セグメント値にそれ
ぞれ関連する一連のビット内のビットであることを特徴
とする請求項(12)記載の方法。 - (15)前記検索の前記第2のモードが前記検索を終了
することから成ることを特徴とする請求項(12)記載
の方法。 - (16)前記検索引き数がネットワーク内のシステムア
ドレスから成ることを特徴とする請求項(12)記載の
方法。 - (17)検索路を階層的検索する方法が、 前記検索路に沿うノード階層を与え、前記ノードの少な
くとも幾つかが、異なる階層レベルの他の前記ノードを
指示する一つ以上のポインターを含み、 一連の検索セグメントから成る検索引き数を与え、前記
引き数の連続するセグメントが前記検索路の沿う連続す
るノードに対応し、 前記検索路を前記ノード内の連続する検索セグメントを
処理することにより検索し、前記処理が前記ポインター
を検査し、前記検索引き数が有効条件を満足する場合前
記指示されたノードに進むことから成る方法。 - (18)前記有効条件が未処理セグメントの数を計数す
ることから成ることを特徴とする請求項(17)記載の
方法。 - (19)前記有効条件が処理されたセグメントの数を計
数することから成る請求項(17)記載の方法。 - (20)前記検索引き数がコンピュータネットワークの
システムアドレスであることを特徴とする請求項(17
)記載の方法。 - (21)前記検索引き数が、ISO8348/AD2に
従うコンピュータネットワーク内のシステネアドレスを
表し、 前記階層的検索が、第1階層レベルのレベル2検索及び
第2階層レベルのレベル1検索から成り、 レベル2検索は、領域間の検索に対応し、レベル1検索
は前記ネットワークの領域内の検索に対応することを特
徴とする請求項(18)記載の方法。 - (22)前記引き数がISO8348/AD2に従うコ
ンピュータネットワーク内のシステムアドレスを表して
おり、 前記階層的検索が、第1の階層的レベルのIDP検索及
び第2の階層的レベルのDSP検索から成ることを特徴
とする請求項(19)記載の方法。 - (23)検索引き数を、その幾つかが所定の値を有する
セグメントに分解する方法が、 検索路に沿うノードを与え、前記ノードの少なくとも幾
つかが、次の前記ノードを指示する一つ以上のポインタ
ーを含み、各前記ポインターは前記セグメントの一つの
可能な値に対応し、前記所定のセグメント値に対応する
ポインターに、そのポインターを記憶するノードを次の
ノードとして示させることから成る方法。 - (24)前記検索引き数がISO8348/AD2に従
うネットワークアドレスであり、前記所定の値が充填数
の値であることを特徴とする請求項(23)記載の方法
。 - (25)コンピュータネットワーク経路決めに対する樹
木形状経路決めデータベースを記憶するための装置が、 異なるアクセス時間及び電力要求を有する複数のメモリ
ー素子を有し、各素子が2つ以上のノードに対する特定
の形態のデータを記憶し、前記メモリー素子の選択が、 短アクセス時間を有するメモリー素子へ高速アクセスを
必要とする形態のデータを記憶し、低電力消費を有する
メモリー素子へより低速アクセスしか必要とない形態の
データを記憶することにより前記メモリー素子の選択が
行われることを特徴とする装置。 - (26)検索路内の前及び次のノード間に生じるノード
を除去することにより減少した長さの検索を制御するた
めの装置であり、 前記除去されたノードが存在した場合、前記検索が前記
以下のノードに進むか否かに関する情報を記憶するメモ
リー、 検索引き数を前記記憶情報と比較する比較器、前記比較
が正の場合、前記検索を前記前のノードから前記次のノ
ードに効率的に進ませる制御器からなる検索を制御する
ための装置。 - (27)前記ノードの幾つかが前記検索に対する結果値
を与え、その存在が前記検索に対する結果値に影響を与
えない場合のみ除去されることを特徴とする請求項(2
6)記載の方法。 - (28)減少された2つのモード検索を制御する装置で
あり、 前記検索の第1のモードに対して、検索路に沿うノード
を記憶し、前記ノードの少なくとも幾つかが他の前記ノ
ードを指し示す一つ以上のポインターを含むメモリー、 一連の検索セグメントから成る検索引き数を与え、この
引き数のセグメントの幾つかの値が前記検索路に沿うノ
ードに対応し、前記セグメントの幾つかの他の値は前記
検索の第2のモードに関係するフェッチユニット、 ノードに関連する標識を記憶し、各標識が前記第2のモ
ードに対応するセグメントを示すメモリー、 連続する検索セグメントを処理することにより前記検索
路を検索し、前記処理が各ノードに関係する標識を検査
し、前記セグメントが第2のモードに関係することを前
記標識示す場合前記第2の検索モードに進む制御器から
なることう特徴とする装置。 - (29)前記セグメントが前記第2の検索モードに対応
することを前記標識が示さない場合、前記制御器が前記
標識及び前記セグメントを検査して前記ポインターの一
つを決定して、前記検索を次のノードに続けることを特
徴とする請求項(28)記載の装置。 - (30)各前記標識が複数の前記セグメント値とそれぞ
れ関連する一連のビットの一つのビットであることを特
徴とする請求項(29)記載の装置。 - (31)前記検索路に沿うノードの階層を記憶し、前記
ノードの少なくとも幾つかが異なる階層レベルの他の前
記ノードを指示する一つ以上のポインターを含むメモリ
ー、 一連のセグメントから成る検索引き数を与え前記引き数
の一連のセグメントが前記検索路に沿う一連のノードに
対応するフェッチユニット、前記ノード内の一連の検索
セグメントを処理することにより前記検索路を検索し、
前記処理が前記ポインターを検査し、前記検索引き数が
有効条件を満足する場合前記指示されたノードに進む制
御器からなる装置。 - (32)前記有効条件が未処理セグメントの数を計数す
ることから成る請求項(31)記載の方法。 - (33)前記有効条件が処理されたセグメントの数を計
数することから成ることを特徴とする請求項(31)記
載の方法。 - (34)検索引き数を複数のセグメントに分解し、この
セグメントの幾つかが所定の値を有する装置であって、
この装置が、検索路に沿うノードを記憶するメモリーを
有し、前記ノード少なくとも幾つかが次の前記ノードを
指示する一つ以上のポインターを含み、各前記ポインタ
ーが前記セグメントの一つの可能な値に対応し、前記所
定のセグメントに対応するポインターがポインターを次
のノードとして記憶するノードを指示することを特徴と
する装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37871889A | 1989-07-12 | 1989-07-12 | |
US378718 | 1989-07-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03135668A true JPH03135668A (ja) | 1991-06-10 |
Family
ID=23494282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2185147A Pending JPH03135668A (ja) | 1989-07-12 | 1990-07-12 | 圧縮された接頭語突き合わせデータベース検索方法及び装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US5781772A (ja) |
EP (1) | EP0408188B1 (ja) |
JP (1) | JPH03135668A (ja) |
AT (1) | ATE192248T1 (ja) |
AU (2) | AU620994B2 (ja) |
CA (1) | CA2019730A1 (ja) |
DE (1) | DE69033517T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009529174A (ja) * | 2006-03-07 | 2009-08-13 | 韓國電子通信研究院 | コード解析装置、コード情報提供装置及びそれを利用した方法 |
JP2009533752A (ja) * | 2006-04-12 | 2009-09-17 | チョン ベン ヤップ, | モバイル情報提供及び取引システム |
Families Citing this family (167)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU620994B2 (en) * | 1989-07-12 | 1992-02-27 | Digital Equipment Corporation | Compressed prefix matching database searching |
US5519858A (en) * | 1992-01-10 | 1996-05-21 | Digital Equipment Corporation | Address recognition engine with look-up database for storing network information |
EP0804769B1 (en) * | 1994-06-30 | 2000-02-02 | International Business Machines Corporation | Variable length data sequence matching method and apparatus |
US5794221A (en) * | 1995-07-07 | 1998-08-11 | Egendorf; Andrew | Internet billing method |
US6115716A (en) * | 1997-03-14 | 2000-09-05 | Nokia Telecommunications Oy | Method for implementing an associative memory based on a digital trie structure |
FI102424B1 (fi) | 1997-03-14 | 1998-11-30 | Nokia Telecommunications Oy | Menetelmä muistin toteuttamiseksi |
FI102426B1 (fi) | 1997-03-14 | 1998-11-30 | Nokia Telecommunications Oy | Menetelmä muistin toteuttamiseksi |
US6011795A (en) * | 1997-03-20 | 2000-01-04 | Washington University | Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes |
US6512766B2 (en) | 1997-08-22 | 2003-01-28 | Cisco Systems, Inc. | Enhanced internet packet routing lookup |
US6212183B1 (en) | 1997-08-22 | 2001-04-03 | Cisco Technology, Inc. | Multiple parallel packet routing lookup |
US6018524A (en) * | 1997-09-09 | 2000-01-25 | Washington University | Scalable high speed IP routing lookups |
US6223172B1 (en) * | 1997-10-31 | 2001-04-24 | Nortel Networks Limited | Address routing using address-sensitive mask decimation scheme |
JPH11203332A (ja) * | 1998-01-19 | 1999-07-30 | Nec Corp | 経路圧縮方式 |
US6675173B1 (en) | 1998-01-22 | 2004-01-06 | Ori Software Development Ltd. | Database apparatus |
US6341130B1 (en) * | 1998-02-09 | 2002-01-22 | Lucent Technologies, Inc. | Packet classification method and apparatus employing two fields |
US6430527B1 (en) * | 1998-05-06 | 2002-08-06 | Avici Systems | Prefix search circuitry and method |
US6449256B1 (en) | 1998-05-07 | 2002-09-10 | Washington University | Fast level four switching using crossproducting |
US6067574A (en) * | 1998-05-18 | 2000-05-23 | Lucent Technologies Inc | High speed routing using compressed tree process |
FR2779301B1 (fr) * | 1998-05-26 | 2000-07-21 | Thomson Multimedia Sa | Procede d'identification d'appareils dans un reseau de communication et appareil de mise en oeuvre |
NO983175L (no) * | 1998-07-10 | 2000-01-11 | Fast Search & Transfer Asa | Soekesystem for gjenfinning av data |
US6212184B1 (en) * | 1998-07-15 | 2001-04-03 | Washington University | Fast scaleable methods and devices for layer four switching |
US6308219B1 (en) * | 1998-07-31 | 2001-10-23 | Cisco Technology, Inc. | Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks |
IT1305140B1 (it) * | 1998-10-27 | 2001-04-10 | Cselt Centro Studi Lab Telecom | Memoria per la ricerca di informazioni mediante analisi di prefissi inparticolare per la realizzazione di tabelle di instradamento in nodi |
US6298321B1 (en) | 1998-11-23 | 2001-10-02 | Microsoft Corporation | Trie compression using substates and utilizing pointers to replace or merge identical, reordered states |
US6304878B1 (en) * | 1998-11-23 | 2001-10-16 | Microsoft Corporation | Method and system for improved enumeration of tries |
US6963924B1 (en) * | 1999-02-01 | 2005-11-08 | Nen-Fu Huang | IP routing lookup scheme and system for multi-gigabit switching routers |
US6567408B1 (en) * | 1999-02-01 | 2003-05-20 | Redback Networks Inc. | Methods and apparatus for packet classification with multi-level data structure |
US6192051B1 (en) * | 1999-02-26 | 2001-02-20 | Redstone Communications, Inc. | Network router search engine using compressed tree forwarding table |
US6202062B1 (en) * | 1999-02-26 | 2001-03-13 | Ac Properties B.V. | System, method and article of manufacture for creating a filtered information summary based on multiple profiles of each single user |
GB9912129D0 (en) * | 1999-05-26 | 1999-07-28 | 3Com Corp | Communication device with forwarding database having having a trie search facility |
US6587466B1 (en) * | 1999-05-27 | 2003-07-01 | International Business Machines Corporation | Search tree for policy based packet classification in communication networks |
FI991262A (fi) * | 1999-06-02 | 2000-12-03 | Nokia Networks Oy | Digitaaliseen trie-rakenteeseen perustuva muisti |
FI991261A (fi) * | 1999-06-02 | 2000-12-03 | Nokia Networks Oy | Trie-rakenteeseen perustuva funktionaalinen muisti |
US7058517B1 (en) | 1999-06-25 | 2006-06-06 | Genaissance Pharmaceuticals, Inc. | Methods for obtaining and using haplotype data |
US6493698B1 (en) * | 1999-07-26 | 2002-12-10 | Intel Corporation | String search scheme in a distributed architecture |
US6560610B1 (en) | 1999-08-10 | 2003-05-06 | Washington University | Data structure using a tree bitmap and method for rapid classification of data in a database |
US7249149B1 (en) * | 1999-08-10 | 2007-07-24 | Washington University | Tree bitmap data structures and their use in performing lookup operations |
US6675169B1 (en) | 1999-09-07 | 2004-01-06 | Microsoft Corporation | Method and system for attaching information to words of a trie |
US6907424B1 (en) | 1999-09-10 | 2005-06-14 | Requisite Technology, Inc. | Sequential subset catalog search engine |
US6697799B1 (en) * | 1999-09-10 | 2004-02-24 | Requisite Technology, Inc. | Automated classification of items using cascade searches |
US6324534B1 (en) * | 1999-09-10 | 2001-11-27 | Requisite Technology, Inc. | Sequential subset catalog search engine |
EP1093250B1 (en) * | 1999-10-12 | 2007-12-26 | Alcatel Lucent | Device and method to compress destination addresses of a multicast message |
US6741591B1 (en) * | 1999-11-03 | 2004-05-25 | Cisco Technology, Inc. | Search engine interface system and method |
US6876991B1 (en) | 1999-11-08 | 2005-04-05 | Collaborative Decision Platforms, Llc. | System, method and computer program product for a collaborative decision platform |
AU7339700A (en) * | 1999-11-16 | 2001-05-30 | Searchcraft Corporation | Method for searching from a plurality of data sources |
JP4741134B2 (ja) * | 1999-12-10 | 2011-08-03 | エスエイテック・グループ・エー・ビー・リミテッド・ライアビリティ・カンパニー | 最長一致アドレスルックアップのための方法および装置 |
US6711153B1 (en) | 1999-12-13 | 2004-03-23 | Ascend Communications, Inc. | Route lookup engine |
US7200408B1 (en) * | 1999-12-15 | 2007-04-03 | Lucent Technologies Inc. | Selective blocking in a communication network |
US6990070B1 (en) | 1999-12-17 | 2006-01-24 | Nortel Networks Limited | Method and apparatus for adjusting packet transmission volume from a source |
US6614789B1 (en) | 1999-12-29 | 2003-09-02 | Nasser Yazdani | Method of and apparatus for matching strings of different lengths |
US6993025B1 (en) * | 1999-12-30 | 2006-01-31 | Nortel Networks Limited | Method and apparatus for encoding a plurality of pre-defined codes into a search key and for locating a longest matching pre-defined code |
US20030093613A1 (en) * | 2000-01-14 | 2003-05-15 | David Sherman | Compressed ternary mask system and method |
FR2804811B1 (fr) * | 2000-02-07 | 2002-05-10 | Rene Duranton | Procede et dispositif pour l'attribution automatique d'adresses a une pluralite de modules interconnectes par reseau de communication a topologie complexe |
US6907032B2 (en) * | 2000-03-06 | 2005-06-14 | Goremote Internet Communications, Inc. | Method for selecting terminating gateways for an internet telephone call using a tree search |
US6947931B1 (en) * | 2000-04-06 | 2005-09-20 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
US6711558B1 (en) * | 2000-04-07 | 2004-03-23 | Washington University | Associative database scanning and information retrieval |
US7139743B2 (en) * | 2000-04-07 | 2006-11-21 | Washington University | Associative database scanning and information retrieval using FPGA devices |
US8095508B2 (en) * | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
US6625599B1 (en) | 2000-05-18 | 2003-09-23 | Rajendra Kumar Bera | Method and apparatus for data searching and computer-readable medium for supplying program instructions |
TW494322B (en) * | 2000-05-29 | 2002-07-11 | Ibm | Prefix search method and data structure using compressed search tables |
US6880064B1 (en) | 2000-06-21 | 2005-04-12 | Mosaid Technologies, Inc. | Method and apparatus for physical width expansion of a longest prefix match lookup table |
US6931326B1 (en) | 2000-06-26 | 2005-08-16 | Genaissance Pharmaceuticals, Inc. | Methods for obtaining and using haplotype data |
US6697363B1 (en) * | 2000-06-28 | 2004-02-24 | Alcatel Canada Inc. | Method and apparatus for longest matching prefix determination in a communication network |
JP2002026973A (ja) * | 2000-07-12 | 2002-01-25 | Nec Corp | 経路検索システム及びその方法並びにそれに使用するルータ装置 |
US6725326B1 (en) | 2000-08-15 | 2004-04-20 | Cisco Technology, Inc. | Techniques for efficient memory management for longest prefix match problems |
US6556991B1 (en) * | 2000-09-01 | 2003-04-29 | E-Centives, Inc. | Item name normalization |
US6944162B1 (en) * | 2000-10-03 | 2005-09-13 | Alcatel | Tuple-based lookup scheme for packet switching node |
US6792423B1 (en) | 2000-11-28 | 2004-09-14 | International Business Machines Corporation | Hybrid longest prefix match and fixed match searches |
US7031320B2 (en) * | 2000-12-22 | 2006-04-18 | Samsung Electronics Co., Ltd. | Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables |
US6708168B2 (en) * | 2000-12-29 | 2004-03-16 | Nortel Networks Limited | Method and apparatus for searching a data stream for character patterns |
US6959303B2 (en) * | 2001-01-17 | 2005-10-25 | Arcot Systems, Inc. | Efficient searching techniques |
GB2374442B (en) * | 2001-02-14 | 2005-03-23 | Clearspeed Technology Ltd | Method for controlling the order of datagrams |
GB2407673B (en) * | 2001-02-14 | 2005-08-24 | Clearspeed Technology Plc | Lookup engine |
US6804677B2 (en) * | 2001-02-26 | 2004-10-12 | Ori Software Development Ltd. | Encoding semi-structured data for efficient search and browsing |
US20020143787A1 (en) * | 2001-03-31 | 2002-10-03 | Simon Knee | Fast classless inter-domain routing (CIDR) lookups |
US7043492B1 (en) | 2001-07-05 | 2006-05-09 | Requisite Technology, Inc. | Automated classification of items using classification mappings |
US6925503B2 (en) * | 2001-07-27 | 2005-08-02 | International Business Machines Corporation | Method and system for performing a longest prefix match search |
US7382787B1 (en) | 2001-07-30 | 2008-06-03 | Cisco Technology, Inc. | Packet routing and switching device |
US8001594B2 (en) * | 2001-07-30 | 2011-08-16 | Ipass, Inc. | Monitoring computer network security enforcement |
US7418536B2 (en) * | 2001-07-30 | 2008-08-26 | Cisco Technology, Inc. | Processor having systolic array pipeline for processing data packets |
US7069372B1 (en) | 2001-07-30 | 2006-06-27 | Cisco Technology, Inc. | Processor having systolic array pipeline for processing data packets |
US6985483B2 (en) * | 2001-07-31 | 2006-01-10 | North Carolina State University | Methods and systems for fast packet forwarding |
US7020657B2 (en) * | 2001-09-27 | 2006-03-28 | International Business Machines Corporation | Scalable hardware scheduler time based calendar search algorithm |
US6775737B1 (en) | 2001-10-09 | 2004-08-10 | Cisco Technology, Inc. | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories |
US7716330B2 (en) | 2001-10-19 | 2010-05-11 | Global Velocity, Inc. | System and method for controlling transmission of data packets over an information network |
US7286534B2 (en) * | 2001-11-02 | 2007-10-23 | Infineon Technologies North America Corporation | SRAM based cache for DRAM routing table lookups |
JP4011548B2 (ja) * | 2001-11-14 | 2007-11-21 | ノキア コーポレイション | IPv6のモバイルルータサポート |
KR100456671B1 (ko) * | 2001-11-24 | 2004-11-10 | 주식회사 케이티 | 네트워크 라우터의 고속 패킷 전달을 위한 병렬 룩업 엔진및 그 방법 |
US6970971B1 (en) | 2002-01-08 | 2005-11-29 | Cisco Technology, Inc. | Method and apparatus for mapping prefixes and values of a hierarchical space to other representations |
US8151003B2 (en) * | 2002-02-05 | 2012-04-03 | International Business Machines Corporation | System and method for routing data by a server |
FR2835991B1 (fr) * | 2002-02-12 | 2004-04-23 | France Telecom | Procede de configuration d'une memoire trie pour le traitement de paquets de donnees, et dispositif de traitement de paquets mettant en oeuvre un tel procede |
US7287033B2 (en) * | 2002-03-06 | 2007-10-23 | Ori Software Development, Ltd. | Efficient traversals over hierarchical data and indexing semistructured data |
US7076544B2 (en) * | 2002-04-08 | 2006-07-11 | Microsoft Corporation | Caching techniques for streaming media |
US7093023B2 (en) * | 2002-05-21 | 2006-08-15 | Washington University | Methods, systems, and devices using reprogrammable hardware for high-speed processing of streaming data to find a redefinable pattern and respond thereto |
US7899067B2 (en) * | 2002-05-31 | 2011-03-01 | Cisco Technology, Inc. | Method and apparatus for generating and using enhanced tree bitmap data structures in determining a longest prefix match |
US7558775B1 (en) | 2002-06-08 | 2009-07-07 | Cisco Technology, Inc. | Methods and apparatus for maintaining sets of ranges typically using an associative memory and for using these ranges to identify a matching range based on a query point or query range and to maintain sorted elements for use such as in providing priority queue operations |
US7299317B1 (en) | 2002-06-08 | 2007-11-20 | Cisco Technology, Inc. | Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure |
US7450438B1 (en) | 2002-06-20 | 2008-11-11 | Cisco Technology, Inc. | Crossbar apparatus for a forwarding table memory in a router |
US7525904B1 (en) | 2002-06-20 | 2009-04-28 | Cisco Technology, Inc. | Redundant packet routing and switching device and method |
US7710991B1 (en) | 2002-06-20 | 2010-05-04 | Cisco Technology, Inc. | Scalable packet routing and switching device and method |
US7441074B1 (en) | 2002-08-10 | 2008-10-21 | Cisco Technology, Inc. | Methods and apparatus for distributing entries among lookup units and selectively enabling less than all of the lookup units when performing a lookup operation |
US7602891B2 (en) | 2002-08-13 | 2009-10-13 | At&T Intellectual Property I, L.P. | System and method for determining characteristics of international calls |
US7110513B2 (en) * | 2002-08-13 | 2006-09-19 | Sbc Properties, L.P. | System and method for determining characteristics of international calls |
US7711844B2 (en) | 2002-08-15 | 2010-05-04 | Washington University Of St. Louis | TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks |
US7117196B2 (en) * | 2002-11-22 | 2006-10-03 | International Business Machines Corporation | Method and system for optimizing leaf comparisons from a tree search |
US7099881B2 (en) * | 2002-12-06 | 2006-08-29 | Stmicroelectronics, Inc. | Method for increasing average storage capacity in a bit-mapped tree-based storage engine by using remappable prefix representations and a run-length encoding scheme that defines multi-length fields to compactly store IP prefixes |
US7782853B2 (en) * | 2002-12-06 | 2010-08-24 | Stmicroelectronics, Inc. | Apparatus and method of using fully configurable memory, multi-stage pipeline logic and an embedded processor to implement multi-bit trie algorithmic network search engine |
US7162481B2 (en) | 2002-12-06 | 2007-01-09 | Stmicroelectronics, Inc. | Method for increasing storage capacity in a multi-bit trie-based hardware storage engine by compressing the representation of single-length prefixes |
US7715392B2 (en) * | 2002-12-12 | 2010-05-11 | Stmicroelectronics, Inc. | System and method for path compression optimization in a pipelined hardware bitmapped multi-bit trie algorithmic network search engine |
US7536476B1 (en) | 2002-12-20 | 2009-05-19 | Cisco Technology, Inc. | Method for performing tree based ACL lookups |
US7453883B1 (en) | 2003-04-14 | 2008-11-18 | Cisco Technology, Inc. | Method for compressing route data in a router |
US7415472B2 (en) | 2003-05-13 | 2008-08-19 | Cisco Technology, Inc. | Comparison tree data structures of particular use in performing lookup operations |
US7415463B2 (en) | 2003-05-13 | 2008-08-19 | Cisco Technology, Inc. | Programming tree data structures and handling collisions while performing lookup operations |
US20070277036A1 (en) | 2003-05-23 | 2007-11-29 | Washington University, A Corporation Of The State Of Missouri | Intelligent data storage and processing using fpga devices |
US10572824B2 (en) | 2003-05-23 | 2020-02-25 | Ip Reservoir, Llc | System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines |
US7010548B2 (en) * | 2003-06-27 | 2006-03-07 | Emulex Design & Manufacturing Corporation | Sparse and non-sparse data management method and system |
US7702882B2 (en) | 2003-09-10 | 2010-04-20 | Samsung Electronics Co., Ltd. | Apparatus and method for performing high-speed lookups in a routing table |
AU2003292288A1 (en) * | 2003-10-28 | 2005-06-17 | France Telecom | Trie-type memory device comprising a compression mechanism |
US7634500B1 (en) | 2003-11-03 | 2009-12-15 | Netlogic Microsystems, Inc. | Multiple string searching using content addressable memory |
US7602785B2 (en) | 2004-02-09 | 2009-10-13 | Washington University | Method and system for performing longest prefix matching for network address lookup using bloom filters |
US7478109B1 (en) | 2004-03-15 | 2009-01-13 | Cisco Technology, Inc. | Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes |
US7574742B2 (en) * | 2004-11-15 | 2009-08-11 | Industrial Technology Research Institute | System and method of string matching for uniform data classification |
US7359895B2 (en) * | 2004-11-18 | 2008-04-15 | Industrial Technology Research Institute | Spiral string matching method |
US20060112078A1 (en) * | 2004-11-22 | 2006-05-25 | Bellsouth Intellectual Property Corporation | Information procurement |
US7889712B2 (en) | 2004-12-23 | 2011-02-15 | Cisco Technology, Inc. | Methods and apparatus for providing loop free routing tables |
US7917299B2 (en) * | 2005-03-03 | 2011-03-29 | Washington University | Method and apparatus for performing similarity searching on a data stream with respect to a query string |
WO2006127596A2 (en) | 2005-05-20 | 2006-11-30 | Hillcrest Laboratories, Inc. | Dynamic hyperlinking approach |
US7430560B1 (en) * | 2005-07-22 | 2008-09-30 | X-Engines, Inc. | Multi-level compressed lock-up tables formed by logical operations to compress selected index bits |
US7921088B1 (en) | 2005-07-22 | 2011-04-05 | X-Engines, Inc. | Logical operations encoded by a function table for compressing index bits in multi-level compressed look-up tables |
US7353332B2 (en) | 2005-10-11 | 2008-04-01 | Integrated Device Technology, Inc. | Switching circuit implementing variable string matching |
US7551609B2 (en) * | 2005-10-21 | 2009-06-23 | Cisco Technology, Inc. | Data structure for storing and accessing multiple independent sets of forwarding information |
US7702629B2 (en) * | 2005-12-02 | 2010-04-20 | Exegy Incorporated | Method and device for high performance regular expression pattern matching |
US7756859B2 (en) * | 2005-12-19 | 2010-07-13 | Intentional Software Corporation | Multi-segment string search |
US7954114B2 (en) | 2006-01-26 | 2011-05-31 | Exegy Incorporated | Firmware socket module for FPGA-based pipeline processing |
US7636703B2 (en) * | 2006-05-02 | 2009-12-22 | Exegy Incorporated | Method and apparatus for approximate pattern matching |
US20070282816A1 (en) * | 2006-06-05 | 2007-12-06 | Shing-Jung Tsai | Method and structure for string partial search |
US7840482B2 (en) | 2006-06-19 | 2010-11-23 | Exegy Incorporated | Method and system for high speed options pricing |
US7921046B2 (en) | 2006-06-19 | 2011-04-05 | Exegy Incorporated | High speed processing of financial information using FPGA devices |
WO2008022036A2 (en) * | 2006-08-10 | 2008-02-21 | Washington University | Method and apparatus for protein sequence alignment using fpga devices |
US7783654B1 (en) | 2006-09-19 | 2010-08-24 | Netlogic Microsystems, Inc. | Multiple string searching using content addressable memory |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
US7660793B2 (en) | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
US7827218B1 (en) | 2006-11-18 | 2010-11-02 | X-Engines, Inc. | Deterministic lookup using hashed key in a multi-stride compressed trie structure |
US7917486B1 (en) | 2007-01-18 | 2011-03-29 | Netlogic Microsystems, Inc. | Optimizing search trees by increasing failure size parameter |
US20090171936A1 (en) * | 2007-12-28 | 2009-07-02 | Sybase, Inc. | System, Method, and Computer Program Product for Accelerating Like Conditions |
US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
WO2010077829A1 (en) | 2008-12-15 | 2010-07-08 | Exegy Incorporated | Method and apparatus for high-speed processing of financial market depth data |
EP2264626B1 (de) | 2009-06-19 | 2021-02-24 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum speichereffizienten Suchen mindestens eines Anfragedatenelementes |
US9203743B2 (en) * | 2010-03-24 | 2015-12-01 | Nec Corporation | Packet forwarding system, control device, forwarding device and method and program for preparing processing rules |
US8364700B2 (en) * | 2010-05-21 | 2013-01-29 | Vonage Network Llc | Method and apparatus for rapid data access and distribution using structured identifiers |
JP6045505B2 (ja) | 2010-12-09 | 2016-12-14 | アイピー レザボア, エルエルシー.IP Reservoir, LLC. | 金融市場における注文を管理する方法および装置 |
US10650452B2 (en) | 2012-03-27 | 2020-05-12 | Ip Reservoir, Llc | Offload processing of data packets |
US9990393B2 (en) | 2012-03-27 | 2018-06-05 | Ip Reservoir, Llc | Intelligent feed switch |
US11436672B2 (en) | 2012-03-27 | 2022-09-06 | Exegy Incorporated | Intelligent switch for processing financial market data |
US10121196B2 (en) | 2012-03-27 | 2018-11-06 | Ip Reservoir, Llc | Offload processing of data packets containing financial market data |
US8825664B2 (en) | 2012-08-17 | 2014-09-02 | Splunk Inc. | Indexing preview |
US9633097B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for record pivoting to accelerate processing of data fields |
WO2014066416A2 (en) | 2012-10-23 | 2014-05-01 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US9633093B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
WO2015164639A1 (en) | 2014-04-23 | 2015-10-29 | Ip Reservoir, Llc | Method and apparatus for accelerated data translation |
US10798000B2 (en) * | 2014-12-22 | 2020-10-06 | Arista Networks, Inc. | Method and apparatus of compressing network forwarding entry information |
US9680749B2 (en) | 2015-02-27 | 2017-06-13 | Arista Networks, Inc. | System and method of using an exact match table and longest prefix match table as a combined longest prefix match |
US10942943B2 (en) | 2015-10-29 | 2021-03-09 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
US10474396B2 (en) * | 2016-10-25 | 2019-11-12 | Sandisk Technologies Llc | System and method for managing multiple file systems in a memory |
EP3560135A4 (en) | 2016-12-22 | 2020-08-05 | IP Reservoir, LLC | PIPELINES INTENDED FOR AUTOMATIC ACCELERATED LEARNING BY EQUIPMENT |
US10091137B2 (en) * | 2017-01-30 | 2018-10-02 | Cavium, Inc. | Apparatus and method for scalable and flexible wildcard matching in a network switch |
US11240143B2 (en) * | 2019-05-02 | 2022-02-01 | Fungible, Inc. | Embedded network packet data for use of alternative paths within a group of network devices |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3676851A (en) * | 1970-03-31 | 1972-07-11 | Ibm | Information retrieval system and method |
US4384325A (en) * | 1980-06-23 | 1983-05-17 | Sperry Corporation | Apparatus and method for searching a data base using variable search criteria |
EP0054588B1 (en) * | 1980-12-19 | 1984-09-26 | International Business Machines Corporation | Interactive data retrieval apparatus |
US4468728A (en) * | 1981-06-25 | 1984-08-28 | At&T Bell Laboratories | Data structure and search method for a data base management system |
US4464650A (en) * | 1981-08-10 | 1984-08-07 | Sperry Corporation | Apparatus and method for compressing data signals and restoring the compressed data signals |
US4453217A (en) * | 1982-01-04 | 1984-06-05 | Bell Telephone Laboratories, Incorporated | Directory lookup method and apparatus |
US4464718A (en) * | 1982-07-30 | 1984-08-07 | International Business Machines Corporation | Associative file processing method and apparatus |
US4479196A (en) * | 1982-11-15 | 1984-10-23 | At&T Bell Laboratories | Hyperedge entity-relationship data base systems |
EP0126122B1 (en) * | 1982-11-15 | 1988-06-15 | Western Electric Company, Incorporated | Data base locking |
US4644496A (en) * | 1983-01-11 | 1987-02-17 | Iowa State University Research Foundation, Inc. | Apparatus, methods, and systems for computer information transfer |
US4606002A (en) * | 1983-05-02 | 1986-08-12 | Wang Laboratories, Inc. | B-tree structured data base using sparse array bit maps to store inverted lists |
US4677550A (en) * | 1983-09-30 | 1987-06-30 | Amalgamated Software Of North America, Inc. | Method of compacting and searching a data index |
US4621362A (en) * | 1984-06-04 | 1986-11-04 | International Business Machines Corp. | Routing architecture for a multi-ring local area network |
US4706081A (en) * | 1984-12-14 | 1987-11-10 | Vitalink Communications Corporation | Method and apparatus for bridging local area networks |
US4914571A (en) * | 1987-06-15 | 1990-04-03 | International Business Machines Corporation | Locating resources in computer networks |
US5008882A (en) * | 1987-08-17 | 1991-04-16 | California Institute Of Technology | Method and apparatus for eliminating unsuccessful tries in a search tree |
US4811337A (en) * | 1988-01-15 | 1989-03-07 | Vitalink Communications Corporation | Distributed load sharing |
US4823111A (en) * | 1988-02-22 | 1989-04-18 | The Mitre Corporation | Landmark hierarchy method for routing signals in a communications network |
US5001755A (en) * | 1988-04-19 | 1991-03-19 | Vindicator Corporation | Security system network |
US4906991A (en) * | 1988-04-29 | 1990-03-06 | Xerox Corporation | Textual substitution data compression with finite length search windows |
US4882699A (en) * | 1988-09-19 | 1989-11-21 | International Business Machines Corp. | Communications network routing and management system |
US5079767A (en) * | 1988-09-27 | 1992-01-07 | Digital Equipment Corporation | Method of multicast message distribution |
AU620994B2 (en) * | 1989-07-12 | 1992-02-27 | Digital Equipment Corporation | Compressed prefix matching database searching |
US5202986A (en) * | 1989-09-28 | 1993-04-13 | Bull Hn Information Systems Inc. | Prefix search tree partial key branching |
US5519858A (en) * | 1992-01-10 | 1996-05-21 | Digital Equipment Corporation | Address recognition engine with look-up database for storing network information |
US5497485A (en) * | 1993-05-21 | 1996-03-05 | Amalgamated Software Of North America, Inc. | Method and apparatus for implementing Q-trees |
JP3152868B2 (ja) * | 1994-11-16 | 2001-04-03 | 富士通株式会社 | 検索装置および辞書/テキスト検索方法 |
-
1990
- 1990-06-06 AU AU56863/90A patent/AU620994B2/en not_active Ceased
- 1990-06-08 AT AT90306281T patent/ATE192248T1/de not_active IP Right Cessation
- 1990-06-08 DE DE69033517T patent/DE69033517T2/de not_active Expired - Fee Related
- 1990-06-08 EP EP90306281A patent/EP0408188B1/en not_active Expired - Lifetime
- 1990-06-25 CA CA002019730A patent/CA2019730A1/en not_active Abandoned
- 1990-07-12 JP JP2185147A patent/JPH03135668A/ja active Pending
-
1992
- 1992-02-27 AU AU11257/92A patent/AU644721B2/en not_active Ceased
-
1995
- 1995-05-15 US US08/441,253 patent/US5781772A/en not_active Expired - Lifetime
- 1995-06-07 US US08/473,135 patent/US6014659A/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
ACM TRANSACTIONS ON DATABASE SYSTEMS=1989 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009529174A (ja) * | 2006-03-07 | 2009-08-13 | 韓國電子通信研究院 | コード解析装置、コード情報提供装置及びそれを利用した方法 |
JP2009533752A (ja) * | 2006-04-12 | 2009-09-17 | チョン ベン ヤップ, | モバイル情報提供及び取引システム |
Also Published As
Publication number | Publication date |
---|---|
DE69033517D1 (de) | 2000-05-31 |
EP0408188A2 (en) | 1991-01-16 |
US5781772A (en) | 1998-07-14 |
ATE192248T1 (de) | 2000-05-15 |
EP0408188B1 (en) | 2000-04-26 |
AU1125792A (en) | 1992-05-07 |
CA2019730A1 (en) | 1991-01-12 |
US6014659A (en) | 2000-01-11 |
DE69033517T2 (de) | 2000-12-21 |
AU620994B2 (en) | 1992-02-27 |
EP0408188A3 (en) | 1993-02-03 |
AU5686390A (en) | 1991-01-17 |
AU644721B2 (en) | 1993-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH03135668A (ja) | 圧縮された接頭語突き合わせデータベース検索方法及び装置 | |
US6457058B1 (en) | Network switch with hash table look up | |
US6775281B1 (en) | Method and apparatus for a four-way hash table | |
JP3640978B2 (ja) | ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置 | |
US5230045A (en) | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus | |
US8200686B2 (en) | Lookup engine | |
US6434662B1 (en) | System and method for searching an associative memory utilizing first and second hash functions | |
US7330958B2 (en) | Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries | |
US5182799A (en) | Retrieving data using hash memory address generated by reversing /xor bits of selected bit strings of an input packet id | |
Raman | Priority queues: Small, monotone and trans-dichotomous | |
KR100477391B1 (ko) | 네트워크 프로세서용 완전 정합(fm) 검색 알고리즘 구현 | |
CA1332984C (en) | Dual cache memory | |
US20040230583A1 (en) | Comparison tree data structures of particular use in performing lookup operations | |
US20120239702A1 (en) | String lookup using three-transition tree structure | |
US20030236793A1 (en) | Compressed prefix tree structure and method for traversing a compressed prefix tree | |
JP2004229163A (ja) | 固定長データ検索装置、及び固定長データ検索方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記録媒体 | |
JPH0564816B2 (ja) | ||
EP3270551B1 (en) | Retrieval device, retrieval method, program, and recording medium | |
JP2002033769A (ja) | 圧縮検索テーブルを用いるプレフィックス検索方法およびデータ構造 | |
CA2058259C (en) | Apparatus for increasing the number of hits in a translation lookaside buffer | |
CN116319555A (zh) | 一种面向虚拟专用网络的路由转发方法 | |
JPH10233788A (ja) | Atmネットワーク装置の項目に仮想接続を介して到達するatmセルをデータに関連付ける方法 | |
CA1328026C (en) | Apparatus and method for enhanced virtual to real address translation for accessing a cache memory unit | |
GB2407673A (en) | Lookup engine | |
CN116319551A (zh) | 一种基于fpga实现的高效网络流表设计方法 |