JPH0810453B2 - 入れ子型トークン列の検索装置 - Google Patents
入れ子型トークン列の検索装置Info
- Publication number
- JPH0810453B2 JPH0810453B2 JP1340102A JP34010289A JPH0810453B2 JP H0810453 B2 JPH0810453 B2 JP H0810453B2 JP 1340102 A JP1340102 A JP 1340102A JP 34010289 A JP34010289 A JP 34010289A JP H0810453 B2 JPH0810453 B2 JP H0810453B2
- Authority
- JP
- Japan
- Prior art keywords
- token
- address
- code
- nest
- level
- 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.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明は各種情報機器間で通信されるマルチメディア
情報または各種記憶媒体に記憶されつマルチメディア情
報を構成する入れ子型トークン列の検索を高速化する装
置に関するものである。
情報または各種記憶媒体に記憶されつマルチメディア情
報を構成する入れ子型トークン列の検索を高速化する装
置に関するものである。
(従来の技術) 上記トークン(字句)列の検索装置は異機種情報機器
間のプロトコル(コード取り決め)変換や解析処理や、
ハイパーテキストサーチやマルチメディアデータベース
検索に使われる。ネットワークを介した各種情報機器間
のマルチメディア情報の通信と検索に欠かせないもので
ある。ここに、トークンが入れ子(ネスト)型であると
いう事は検索される情報が世界標準のOSI階層プロトコ
ルに基づいて表現されている事を意味する。
間のプロトコル(コード取り決め)変換や解析処理や、
ハイパーテキストサーチやマルチメディアデータベース
検索に使われる。ネットワークを介した各種情報機器間
のマルチメディア情報の通信と検索に欠かせないもので
ある。ここに、トークンが入れ子(ネスト)型であると
いう事は検索される情報が世界標準のOSI階層プロトコ
ルに基づいて表現されている事を意味する。
従来の入れ子型トークン列での特定トークンの検索は
メッセージを受信する情報機器に含まれるコンピュータ
によって、トークン列の順次読み出しとヘッダ部の解読
の済んだ後で行われた。すなわち、送られてきたメッセ
ージを一旦主記憶に格納し、トークン毎のヘッダー部の
解読によってネストレベルの判別処理を行い、その後で
ネストレベルの照合を行った。ここに、ネストレベルと
はメッセージに入れ子(ネストと呼ぶ)構造で含まれる
多数のトークンの入れ子の深さである。ソフトウェアに
よる処理ではネストレベルが深くなるようにつれてネス
トレベル判別までの処理時間が増加した。ネストレベル
が判明した後でないと、指定のネストレベルNLとIDコー
ドを持ったトークンのサーチを行えなかった。そのため
に特定トークンのテキストデータの選択や特定トークン
のプロトコル変換処理に時間がかかった。この問題をも
う少し詳しく説明するために、始めに、ネストレベル検
出のプロセスを第2図を用いて説明する。
メッセージを受信する情報機器に含まれるコンピュータ
によって、トークン列の順次読み出しとヘッダ部の解読
の済んだ後で行われた。すなわち、送られてきたメッセ
ージを一旦主記憶に格納し、トークン毎のヘッダー部の
解読によってネストレベルの判別処理を行い、その後で
ネストレベルの照合を行った。ここに、ネストレベルと
はメッセージに入れ子(ネストと呼ぶ)構造で含まれる
多数のトークンの入れ子の深さである。ソフトウェアに
よる処理ではネストレベルが深くなるようにつれてネス
トレベル判別までの処理時間が増加した。ネストレベル
が判明した後でないと、指定のネストレベルNLとIDコー
ドを持ったトークンのサーチを行えなかった。そのため
に特定トークンのテキストデータの選択や特定トークン
のプロトコル変換処理に時間がかかった。この問題をも
う少し詳しく説明するために、始めに、ネストレベル検
出のプロセスを第2図を用いて説明する。
第2図はOSIの階層プロトコルに従ってメッセージの
取扱方式(MHS)の構文規則によって作成されたトーク
ン列の1例である。この図においては、トークン列250
の各トークンはヘッダー部241とボディー部242から成
る。ボディー部242がさらにヘッダー部231とボディー部
232から成るトークン(入れ子なし)とヘッダー233とボ
ディー部234からなるトークン(入れ子あり)を含むこ
とが出来る。従って、ボディー部234はヘッダー部221、
223とボディー部222、224を持つ入れ子なしトークン列
とヘッダー部225とボディー部226を持つ入れ子ありトー
クンを含み、ボディー部226はさらにヘッダー部211とボ
ディー部212の入れ子なしトークンとヘッダー部213とボ
ディー部214の入れ子ありトークンを持つ。
取扱方式(MHS)の構文規則によって作成されたトーク
ン列の1例である。この図においては、トークン列250
の各トークンはヘッダー部241とボディー部242から成
る。ボディー部242がさらにヘッダー部231とボディー部
232から成るトークン(入れ子なし)とヘッダー233とボ
ディー部234からなるトークン(入れ子あり)を含むこ
とが出来る。従って、ボディー部234はヘッダー部221、
223とボディー部222、224を持つ入れ子なしトークン列
とヘッダー部225とボディー部226を持つ入れ子ありトー
クンを含み、ボディー部226はさらにヘッダー部211とボ
ディー部212の入れ子なしトークンとヘッダー部213とボ
ディー部214の入れ子ありトークンを持つ。
故に、ネストレベルNL=1のトークン250のボディー
部242がネストレベルNL=2の2つのトークン列を含
み、第1のトークン(231、232)はNL=2止まりである
が、第2トークンのボディー部234がさらにNL=3のト
ークン(221、222)(223、224)(225、226)を含むと
言う入れ子構造のトークン列が存在する。第2図の場
合、さらに、トークン(225、226)のボディー部226がN
L=4のトークン(211、212)(213、214)を含むこと
までが示されている。
部242がネストレベルNL=2の2つのトークン列を含
み、第1のトークン(231、232)はNL=2止まりである
が、第2トークンのボディー部234がさらにNL=3のト
ークン(221、222)(223、224)(225、226)を含むと
言う入れ子構造のトークン列が存在する。第2図の場
合、さらに、トークン(225、226)のボディー部226がN
L=4のトークン(211、212)(213、214)を含むこと
までが示されている。
入れ子でトークンを含むか否かは各トークンのヘッダ
ー部のIDコードの6ビット目(ネストビット)が1か0
で判定される。その事をこの図においてはIDコードの*
印で示している。入れ子を含まないトークン列は先頭位
置が指定されると各トークンのヘッドー部に含まれるLL
コード(短形式)やLコード(長形式)からボディー部
の長さと次のトークンの終わり位置あるいは始まり位置
がわかる。トークンの終わりの後に次のトークンのヘッ
ダー部があると約束されていることから、各トークンの
先頭のIDコードを見つけることが簡単となる。
ー部のIDコードの6ビット目(ネストビット)が1か0
で判定される。その事をこの図においてはIDコードの*
印で示している。入れ子を含まないトークン列は先頭位
置が指定されると各トークンのヘッドー部に含まれるLL
コード(短形式)やLコード(長形式)からボディー部
の長さと次のトークンの終わり位置あるいは始まり位置
がわかる。トークンの終わりの後に次のトークンのヘッ
ダー部があると約束されていることから、各トークンの
先頭のIDコードを見つけることが簡単となる。
トークン毎のIDコードとネストレベルがわかった後で
はじめて、それらを使ったトークンの選択が可能にな
り、選択されたトークンのプロトコル変換や内容検索が
可能になる。ネストレベルが常にトークンの先頭読みだ
し位置でわかっている場合には、IDコード読み出しと共
にそのトークンのヘッダ検索が可能になり、検索条件と
して与えられたネストレベルとIDコードと照合され、マ
ッチされたトークンは読みだしを続け、ミスマッチな
ら、読み飛ばしを行えるが、これまでは、ネストレベル
の判定に時間が掛かって、トークンの選択処理も遅くな
っていた。
はじめて、それらを使ったトークンの選択が可能にな
り、選択されたトークンのプロトコル変換や内容検索が
可能になる。ネストレベルが常にトークンの先頭読みだ
し位置でわかっている場合には、IDコード読み出しと共
にそのトークンのヘッダ検索が可能になり、検索条件と
して与えられたネストレベルとIDコードと照合され、マ
ッチされたトークンは読みだしを続け、ミスマッチな
ら、読み飛ばしを行えるが、これまでは、ネストレベル
の判定に時間が掛かって、トークンの選択処理も遅くな
っていた。
(発明が解決しようとする課題) 従って、本発明の目的はホストコンピュータの主記憶
に格納されたトークン列を先頭から読みだしする時に各
トークンの処理機能(IDコード)とネストレベルの検出
と同時に検索条件にマッチしているか否かの判定を可能
にすることにある。
に格納されたトークン列を先頭から読みだしする時に各
トークンの処理機能(IDコード)とネストレベルの検出
と同時に検索条件にマッチしているか否かの判定を可能
にすることにある。
この検索処理の難しさは各トークンの始めと終わりが
陽に指示されていない事、IDコードやLLコードがデータ
コードと区別できないコード(オクテット)であるため
に次のトークンの読みだし位置の計算抜きでは識別され
ない事、また、各トークンの階層(ネスト)レベルがビ
ットパターンとして与えられていない事にある。
陽に指示されていない事、IDコードやLLコードがデータ
コードと区別できないコード(オクテット)であるため
に次のトークンの読みだし位置の計算抜きでは識別され
ない事、また、各トークンの階層(ネスト)レベルがビ
ットパターンとして与えられていない事にある。
ソフトウェアによるトークン列の検索に際しては、ト
ークン列をコンピュータの主記憶に格納してから、順に
読み出してヘッダー位置や処理機能やネストレベルを解
読した。ネストレベルの追跡を行う時にネストレベルの
深さが増すと共に処理付加が大きくなった。ソフトウェ
アではネストレベル毎のトークン長さの比較が並列でな
く順に行われるからである。トークンの検索はネストレ
ベルが判定した後で行われるために、ヘッダ検索処理速
度はネストレベル検索処理速度よりさらに遅くなった。
本発明はヘッダ検索処理速度をトークンの主記憶からの
読みだし速度以上にする。
ークン列をコンピュータの主記憶に格納してから、順に
読み出してヘッダー位置や処理機能やネストレベルを解
読した。ネストレベルの追跡を行う時にネストレベルの
深さが増すと共に処理付加が大きくなった。ソフトウェ
アではネストレベル毎のトークン長さの比較が並列でな
く順に行われるからである。トークンの検索はネストレ
ベルが判定した後で行われるために、ヘッダ検索処理速
度はネストレベル検索処理速度よりさらに遅くなった。
本発明はヘッダ検索処理速度をトークンの主記憶からの
読みだし速度以上にする。
(課題を解決するための手段) 従って、本発明は次のように構成される。第1の発明
にトークン列のヘッダ検索装置は、トークン列の記憶手
段と、検索条件保持手段と、前記記憶手段をアクセスす
るために開始アドレスにトークンの読み出し位置アドレ
スを加算して出力する外部アドレス発生手段と、各トー
クンの先頭のIDコードや長さコードを検出して保持する
ヘッダ保持手段と、IDコードからのネストビット検出手
段と、IDコードやネストレベルなどの属性照合手段と、
照合結果と長さコードと長さコード読みだし位置によっ
て次に読み出されるトークンの読み出し位置を決め、ア
ドレス発生手段に与えるトークン列の読み出し位置アド
レス計算手段と、長さコードとそのコードの読み出し位
置を使って、各トークンのエンドアドレスを計算するエ
ンドアドレス計算手段と、エンドアドレスをネストレベ
ル別に記憶するエンドアドレス保持手段と、前記トーク
ン列の読み出し位置と前記エンドアドレスとアドレス比
較手段と、ネストビットによってシフトアップされ、ア
ドレス比較手段のマッチ出力によってリセットされ、シ
フトダウンするフラグビット保持手段と、複数個のフラ
グビット保持手段につながるネストレベルエンコード手
段とネストレベル出力レジスタとを備えることを特徴と
する。
にトークン列のヘッダ検索装置は、トークン列の記憶手
段と、検索条件保持手段と、前記記憶手段をアクセスす
るために開始アドレスにトークンの読み出し位置アドレ
スを加算して出力する外部アドレス発生手段と、各トー
クンの先頭のIDコードや長さコードを検出して保持する
ヘッダ保持手段と、IDコードからのネストビット検出手
段と、IDコードやネストレベルなどの属性照合手段と、
照合結果と長さコードと長さコード読みだし位置によっ
て次に読み出されるトークンの読み出し位置を決め、ア
ドレス発生手段に与えるトークン列の読み出し位置アド
レス計算手段と、長さコードとそのコードの読み出し位
置を使って、各トークンのエンドアドレスを計算するエ
ンドアドレス計算手段と、エンドアドレスをネストレベ
ル別に記憶するエンドアドレス保持手段と、前記トーク
ン列の読み出し位置と前記エンドアドレスとアドレス比
較手段と、ネストビットによってシフトアップされ、ア
ドレス比較手段のマッチ出力によってリセットされ、シ
フトダウンするフラグビット保持手段と、複数個のフラ
グビット保持手段につながるネストレベルエンコード手
段とネストレベル出力レジスタとを備えることを特徴と
する。
第2の発明は、トークン列の記憶手段と、検索条件保
持手段と、前記記憶手段をアクセスするために開始アド
レスにトークンの読み出し位置アドレスを加算して出力
する外部アドレス発生手段と、各トークンの先頭のIDコ
ードや長さコードを検出して保持するヘッダ保持手段
と、IDコードっからのネストビット検出手段と、IDコー
ドやネストレベルなどの属性照合手段と、長さコードと
長さコード読みだし位置の加算によってトークンのエン
ドアドレスを計算するエンドアドレス計算手段と、エン
ドアドレスをネストレベル別に記憶するエンドアドレス
保持手段と、前記トークン列の読み出し位置と前記エン
ドアドレスとアドレス比較手段と、IDコードを受信した
ヘッダ保持手段の出力するネストビットによってシフト
アップされ、アドレス比較手段の出力によってリセット
され、シフトダウンするフラグビット保持手段と、複数
個のフラグビット保持手段につながるネストレベルエン
コード手段とネストレベル出力レジスタと、属性照合手
段がミスマッチを出し、ネストビットが0である時には
エンドアドレスに1を加え、そうでないときは、現在の
読みだし位置アドレス1を加えて、アドレス発生手段に
与えるトークン列の読みだしアドレス発生手段とを備え
ることを特徴とする。
持手段と、前記記憶手段をアクセスするために開始アド
レスにトークンの読み出し位置アドレスを加算して出力
する外部アドレス発生手段と、各トークンの先頭のIDコ
ードや長さコードを検出して保持するヘッダ保持手段
と、IDコードっからのネストビット検出手段と、IDコー
ドやネストレベルなどの属性照合手段と、長さコードと
長さコード読みだし位置の加算によってトークンのエン
ドアドレスを計算するエンドアドレス計算手段と、エン
ドアドレスをネストレベル別に記憶するエンドアドレス
保持手段と、前記トークン列の読み出し位置と前記エン
ドアドレスとアドレス比較手段と、IDコードを受信した
ヘッダ保持手段の出力するネストビットによってシフト
アップされ、アドレス比較手段の出力によってリセット
され、シフトダウンするフラグビット保持手段と、複数
個のフラグビット保持手段につながるネストレベルエン
コード手段とネストレベル出力レジスタと、属性照合手
段がミスマッチを出し、ネストビットが0である時には
エンドアドレスに1を加え、そうでないときは、現在の
読みだし位置アドレス1を加えて、アドレス発生手段に
与えるトークン列の読みだしアドレス発生手段とを備え
ることを特徴とする。
第3の発明は、第1の発明において、トークン列の読
み出し位置アドレス計算手段が現在の出力に1と長さコ
ードを加算する3入力加算器で実現され、属性照合手段
の出力がミスマッチでかつネストビットが0の時以外は
長さコードの代わりに0を与える事を特徴とする。
み出し位置アドレス計算手段が現在の出力に1と長さコ
ードを加算する3入力加算器で実現され、属性照合手段
の出力がミスマッチでかつネストビットが0の時以外は
長さコードの代わりに0を与える事を特徴とする。
第4の発明は、第1の発明において、トークン列の読
み出し位置アドレス計算手段が、現在の出力に長さコー
ドを加算する加算器であって、キャリー信号によって1
が加算されることを特徴とする。
み出し位置アドレス計算手段が、現在の出力に長さコー
ドを加算する加算器であって、キャリー信号によって1
が加算されることを特徴とする。
第5の発明は、トークン列の記憶手段と、前記記憶手
段をアクセスするために開始アドレスを相対的なトーク
ン読み出し位置アドレスを加算するアドレス発生手段
と、検索条件保持手段と、外部クロックに従ってタイミ
ングシーケンスを発生する順序制御手段と、前記タイミ
ングシーケンスによって各トークンの先頭のIDコードや
長さを検出して保持するヘッダ保持手段と、IDコードか
らのネストビット判定手段と、前記検索条件保持手段の
内容に従って比較内容を限定するトークンの属性照合手
段と、長さコードと長さコードの読みだし位置の加算に
よってトークンのエンドアドレスを計算するエンドアド
レス計算手段と、エンドアドレスをネストレベル別に記
憶するエンドアドレス記憶手段と、全エンドアドレスと
現在のトークンの読み出し位置アドレスとの並列比較結
果とネストビットから次のトークンのネストレベルを判
定するネストレベル判定手段と、ネストレベル出力レジ
スタと、属性照合手段のミスマッチ信号と0のネストビ
ット信号の時にはトークン列の読みだし位置に1と長さ
コードを加算し、それ以外の時には1だけを加算するト
ークン列の読み出し位置アドレス手段とを備えることを
特徴とする。
段をアクセスするために開始アドレスを相対的なトーク
ン読み出し位置アドレスを加算するアドレス発生手段
と、検索条件保持手段と、外部クロックに従ってタイミ
ングシーケンスを発生する順序制御手段と、前記タイミ
ングシーケンスによって各トークンの先頭のIDコードや
長さを検出して保持するヘッダ保持手段と、IDコードか
らのネストビット判定手段と、前記検索条件保持手段の
内容に従って比較内容を限定するトークンの属性照合手
段と、長さコードと長さコードの読みだし位置の加算に
よってトークンのエンドアドレスを計算するエンドアド
レス計算手段と、エンドアドレスをネストレベル別に記
憶するエンドアドレス記憶手段と、全エンドアドレスと
現在のトークンの読み出し位置アドレスとの並列比較結
果とネストビットから次のトークンのネストレベルを判
定するネストレベル判定手段と、ネストレベル出力レジ
スタと、属性照合手段のミスマッチ信号と0のネストビ
ット信号の時にはトークン列の読みだし位置に1と長さ
コードを加算し、それ以外の時には1だけを加算するト
ークン列の読み出し位置アドレス手段とを備えることを
特徴とする。
第6の発明は、第1、第2、第5の発明において、検索
条件保持手段がIDコードとネストレベルとボディーサイ
ズとトークン列記憶手段の検索開始アドレスと検索され
るトークン列のサイズと検索コマンドのいずれかを保持
するレジスタから成り、検索コマンドが比較の対象にし
ない項目を指示するビットパターンである事を特徴とす
る。
条件保持手段がIDコードとネストレベルとボディーサイ
ズとトークン列記憶手段の検索開始アドレスと検索され
るトークン列のサイズと検索コマンドのいずれかを保持
するレジスタから成り、検索コマンドが比較の対象にし
ない項目を指示するビットパターンである事を特徴とす
る。
以下、図面を用いて本発明の更に詳細な説明を行う。
第1図(a)が請求項1に、第1図(b)が請求項2
に対応する。第2図は入れ子型トークン列の説明図、第
3図はネストレベルの計算方法を、第4図はネストレベ
ル判別回路の構成図を、第5図は入れ子型トークン列の
検索例を、第6図は読み出し位置アドレス発生回路の説
明図であり、(a)が請求項3に、(b)が請求項5に
対応する。第6図(c)は請求項2に含まれる実施例で
ある。第7図は各トークンのオクテットの順次見出しと
スキップのための順次制御回路の実施例であり、請求項
5に対応する。第8図は検索条件保持手段の実施例であ
り、請求項6に相当する。
に対応する。第2図は入れ子型トークン列の説明図、第
3図はネストレベルの計算方法を、第4図はネストレベ
ル判別回路の構成図を、第5図は入れ子型トークン列の
検索例を、第6図は読み出し位置アドレス発生回路の説
明図であり、(a)が請求項3に、(b)が請求項5に
対応する。第6図(c)は請求項2に含まれる実施例で
ある。第7図は各トークンのオクテットの順次見出しと
スキップのための順次制御回路の実施例であり、請求項
5に対応する。第8図は検索条件保持手段の実施例であ
り、請求項6に相当する。
(実施例) 第1図(a),(b)は本発明の第1の実施例であ
る。いずれもトークン列はトークン列メモリ100から読
みだされる。外部アトレス発生手段110がトークンメモ
リ100に格納されたトークン列の読み出し位置アドレス
を発生する。読みだし開始アドレスとサイズが検索条件
レジスタ105に格納されるため、アドレス発生手段110か
ら外部へ発生されるアドレスは開始アドレスにトークン
の先頭から数えたオクテット数を示す相対アドレスを加
算したものである。
る。いずれもトークン列はトークン列メモリ100から読
みだされる。外部アトレス発生手段110がトークンメモ
リ100に格納されたトークン列の読み出し位置アドレス
を発生する。読みだし開始アドレスとサイズが検索条件
レジスタ105に格納されるため、アドレス発生手段110か
ら外部へ発生されるアドレスは開始アドレスにトークン
の先頭から数えたオクテット数を示す相対アドレスを加
算したものである。
各トークンの先頭にあるヘッダー部はボディー部(テ
キストデータ)に対する処理機能を示すIDコードとボデ
ィー部の長さを示すLLコードやLコードからなる。これ
らは順次に読みだされ、検出される都度、ヘッダー保持
手段120のIDコードレジスタ121と長さコードレジスタ12
2に貯えられる。IDコードレジスタと6ビット目はネス
トビットNbとして次のトークンの始まりまで、ネストビ
ットレジスタ125に保持される。
キストデータ)に対する処理機能を示すIDコードとボデ
ィー部の長さを示すLLコードやLコードからなる。これ
らは順次に読みだされ、検出される都度、ヘッダー保持
手段120のIDコードレジスタ121と長さコードレジスタ12
2に貯えられる。IDコードレジスタと6ビット目はネス
トビットNbとして次のトークンの始まりまで、ネストビ
ットレジスタ125に保持される。
長さコードについては、OSIのMHS(メッセージハンド
リングシステム)では短形式と長形式があり、先頭のLL
コードと7ビット目が0なら短形式、1なら長形式であ
ると定義されている。短形式の場合にはLLコードがボデ
ィー長さを示すが、長形式の場合にはLLコードがその後
に続くLコードの長さを示し、複数のLコードがボディ
ー長さを示す。いずれにおいても、ボディー長さコード
がヘッダー保持手段120に格納される。
リングシステム)では短形式と長形式があり、先頭のLL
コードと7ビット目が0なら短形式、1なら長形式であ
ると定義されている。短形式の場合にはLLコードがボデ
ィー長さを示すが、長形式の場合にはLLコードがその後
に続くLコードの長さを示し、複数のLコードがボディ
ー長さを示す。いずれにおいても、ボディー長さコード
がヘッダー保持手段120に格納される。
入れ子構造のトークン列は第2図に示したようにネス
トレベル1のトークン内にネストレベル2のトークンが
含まれ、ネストレベル2のトークンの中にまたもやネス
トレベル3のトークンが含まれる、と言うように、いく
つものネストレベルのトークンが内部に含まれる。入れ
子のトークンを含むか含まないかはIDコードの6ビット
目(ネストビット)が1であるか0であるかに指示され
る。ネストビットレジスタ125から出力されるネストビ
ットが1であれば、現在のトークンの中に含まれるトー
クンのネストレベルが現在のトークンのネストレベルよ
り1ステップ高くなる。このネストレベルの高さは、第
1図では、ネストレベル数に比例した長さのフラグビッ
トレジスタ160とエンコーダ170を備えたネストレベル判
別回路190で判定される。
トレベル1のトークン内にネストレベル2のトークンが
含まれ、ネストレベル2のトークンの中にまたもやネス
トレベル3のトークンが含まれる、と言うように、いく
つものネストレベルのトークンが内部に含まれる。入れ
子のトークンを含むか含まないかはIDコードの6ビット
目(ネストビット)が1であるか0であるかに指示され
る。ネストビットレジスタ125から出力されるネストビ
ットが1であれば、現在のトークンの中に含まれるトー
クンのネストレベルが現在のトークンのネストレベルよ
り1ステップ高くなる。このネストレベルの高さは、第
1図では、ネストレベル数に比例した長さのフラグビッ
トレジスタ160とエンコーダ170を備えたネストレベル判
別回路190で判定される。
上昇したネストレベルのトークンが元のネストレベル
に戻るのは読み取りアドレスがトークンの最終オクテッ
トに達したときである。そこで、長さコードが判明した
時に、長さコードの読みだし位置と長さコードの和を求
めるトークンの最終オクテットの位置を示す。EA(エン
ドアドレス)の計算手段130を設けておき、EAスイッチ1
45を介してEAをネストレベル別のEAレジスタ140に保持
しておく事とした。そして、トークンの読みだし位置ア
ドレスAと全EAレジスタの内容をアドレス比較器150で
並列に比較し、アドレス比較器がマッチ信号を発生する
時に、フラグビットレジスタ160の該当する位置のレジ
スタを0にリセットする。
に戻るのは読み取りアドレスがトークンの最終オクテッ
トに達したときである。そこで、長さコードが判明した
時に、長さコードの読みだし位置と長さコードの和を求
めるトークンの最終オクテットの位置を示す。EA(エン
ドアドレス)の計算手段130を設けておき、EAスイッチ1
45を介してEAをネストレベル別のEAレジスタ140に保持
しておく事とした。そして、トークンの読みだし位置ア
ドレスAと全EAレジスタの内容をアドレス比較器150で
並列に比較し、アドレス比較器がマッチ信号を発生する
時に、フラグビットレジスタ160の該当する位置のレジ
スタを0にリセットする。
このフラグビットレジスタ160の後にANDゲート165を
使うことで、1と0との境目が判別し、その位置からネ
ストレベルがどこまで下がるかをネストレベルエンコー
ダ170で識別できる。その出力はNL出力レジスタ175に保
持され、デコーダ145の制御や属性照合に使われる。
使うことで、1と0との境目が判別し、その位置からネ
ストレベルがどこまで下がるかをネストレベルエンコー
ダ170で識別できる。その出力はNL出力レジスタ175に保
持され、デコーダ145の制御や属性照合に使われる。
属性照合は要求IDレジスタや要求NLレジスタを含む検
索条件メモリ106ヘッダー保持手段120とNL出力レジスタ
170に接続された属性比較器135で行われる。この時にミ
スマッチトークンの読み飛ばしを行うことが出来る。
索条件メモリ106ヘッダー保持手段120とNL出力レジスタ
170に接続された属性比較器135で行われる。この時にミ
スマッチトークンの読み飛ばしを行うことが出来る。
ミスマッチトークンのボディ部の読み飛ばしに際して
は2つのやり方がある。第1図(a)はミスマッチ検出
時に、長さコード読みだし位置Aに長さコードBと1を
加えて、次のトークンのヘッダアドレスを決定する内部
アドレス発生回路135を使う。ミスマッチでないときに
はBを0とする。
は2つのやり方がある。第1図(a)はミスマッチ検出
時に、長さコード読みだし位置Aに長さコードBと1を
加えて、次のトークンのヘッダアドレスを決定する内部
アドレス発生回路135を使う。ミスマッチでないときに
はBを0とする。
第1図(b)はミスマッチ検出時に、エンドアドレス
EAにAを加算して次のトークンを読みだし位置アドレス
を発生し、マッチの時はEAの代わりに現在の読みだし位
置アドレスAに1を加えてオクテットの読みだし位置ア
ドレスを発生する読みだし位置アドレス発生回路を使
う。この場合には使用する加算器の数が少なくなる。
EAにAを加算して次のトークンを読みだし位置アドレス
を発生し、マッチの時はEAの代わりに現在の読みだし位
置アドレスAに1を加えてオクテットの読みだし位置ア
ドレスを発生する読みだし位置アドレス発生回路を使
う。この場合には使用する加算器の数が少なくなる。
検索処理条件の指定は検索条件メモリ106の中の開始
アドレスレジスタ101やサイズレジスタ102や要求IDコー
ドレジスタ103や要求ネストレベルレジスタ104やコマン
ドレジスタ105によって設定される。コマンドレジスタ1
05にビットパターンを設定する事によって検索結果の出
力形式が決められる。たとえば、マッチしたトークンの
ヘッダアドレスを出力するか、マッチしたトークンのボ
ディ部を出力するか、トークンの検索処理毎でスタート
パルス待ちになって停止するか全トークン列の終わりま
で連続的にサーチを行うか、IDマッチを使うか、ネスト
レベルNLマッチを使うかなどの検索条件をコマンドレジ
スタ105上のビットパターンで記憶する。
アドレスレジスタ101やサイズレジスタ102や要求IDコー
ドレジスタ103や要求ネストレベルレジスタ104やコマン
ドレジスタ105によって設定される。コマンドレジスタ1
05にビットパターンを設定する事によって検索結果の出
力形式が決められる。たとえば、マッチしたトークンの
ヘッダアドレスを出力するか、マッチしたトークンのボ
ディ部を出力するか、トークンの検索処理毎でスタート
パルス待ちになって停止するか全トークン列の終わりま
で連続的にサーチを行うか、IDマッチを使うか、ネスト
レベルNLマッチを使うかなどの検索条件をコマンドレジ
スタ105上のビットパターンで記憶する。
以下では、第1図(a),(b)でのネストレベル判
別とヘッダ検索の動作をもう少し詳しく説明する。
別とヘッダ検索の動作をもう少し詳しく説明する。
まず始めに、トークンのネストレベルNLが1(“0
0")とする。故に、フラグビットレジスタ160は左端の
レジスタ以外全て“0"にリセットされ、出力レジスタ17
0は“00"を示し、それによって制御されたEAスイッチ14
5はEA計算手段130の出力を0番目のEAレジスタに接続し
ている。
0")とする。故に、フラグビットレジスタ160は左端の
レジスタ以外全て“0"にリセットされ、出力レジスタ17
0は“00"を示し、それによって制御されたEAスイッチ14
5はEA計算手段130の出力を0番目のEAレジスタに接続し
ている。
外部アドレス発生回路110が主記憶に格納されたトー
クン列を先頭から順に読みだすべくアドレスを発生する
と、トークン列が主記憶から送られて来る。その先頭を
見て、ネストビットNbを含むIDコードやボディーの長さ
コードがヘッダ保持手段120とネストビットレジスタ125
にラッチされる。長さコードの示すボデイー長さをB1と
すると、トークンのエンドアドレスEAは、 EA1=A+B1 (1) から計算される。これがEA計算回路130で求められる。
トークンの読みだし位置アドレスAは常にアドレス比較
器150にも送られる。
クン列を先頭から順に読みだすべくアドレスを発生する
と、トークン列が主記憶から送られて来る。その先頭を
見て、ネストビットNbを含むIDコードやボディーの長さ
コードがヘッダ保持手段120とネストビットレジスタ125
にラッチされる。長さコードの示すボデイー長さをB1と
すると、トークンのエンドアドレスEAは、 EA1=A+B1 (1) から計算される。これがEA計算回路130で求められる。
トークンの読みだし位置アドレスAは常にアドレス比較
器150にも送られる。
ヘッダ保持手段120においてネストビットNbが1なら
ば、ヘッダ部の後にNL=2のトークンが続くので、NL=
2を示すように、フラグビット(FB)レジスタ160を上
から2番目まで1にする。斜線の施された最上段のフラ
グビットレジスタ160は常に“1"を保持するとしてい
る。次段のフラグビットレジスタ160が“1"で、その下
の段がすべて“0"となる。“1"と“0"の境目をエンコー
ダ170とANDゲート165が検出し、ネストレベルをコード
“01"として発生し、出力レジスタ175に送る。
ば、ヘッダ部の後にNL=2のトークンが続くので、NL=
2を示すように、フラグビット(FB)レジスタ160を上
から2番目まで1にする。斜線の施された最上段のフラ
グビットレジスタ160は常に“1"を保持するとしてい
る。次段のフラグビットレジスタ160が“1"で、その下
の段がすべて“0"となる。“1"と“0"の境目をエンコー
ダ170とANDゲート165が検出し、ネストレベルをコード
“01"として発生し、出力レジスタ175に送る。
NL=2のトークンのヘッダー部保持手段120への設定
後、再び、そのトークンのボディーの長さBL2とその時
の内部アドレスAと1の加算結果EA2がEAレジスタ140の
2番目に格納される。Aはトークンのオクテッドを1つ
読み取る都度、1つづつ大きくなる。いま、NL=2のト
ークンのNbが0であると、そのトークンはプリミティブ
と呼ばれ、ヘッダー部の後にボディー部が続く。
後、再び、そのトークンのボディーの長さBL2とその時
の内部アドレスAと1の加算結果EA2がEAレジスタ140の
2番目に格納される。Aはトークンのオクテッドを1つ
読み取る都度、1つづつ大きくなる。いま、NL=2のト
ークンのNbが0であると、そのトークンはプリミティブ
と呼ばれ、ヘッダー部の後にボディー部が続く。
アドレスAとトークンの内容を順に読み取って行くに
つれて増加し、比較器150で全てのEAレジスタの内容と
比較される。もしAがEA2に等しくなると、AがNL=2
のトークンの終わりに到達したこと意味し、NLを1に戻
さなければならない。その事を実行するために、比較器
150の出力が1の時に上から2番目のフラグビットレジ
スタ160を0にリセットする。その結果、フラグビット
レジスタの1番目が1で、それ以下は0になる。エンコ
ーダ170はこれを検出してネストレベルNL=1(“00")
を出力する。
つれて増加し、比較器150で全てのEAレジスタの内容と
比較される。もしAがEA2に等しくなると、AがNL=2
のトークンの終わりに到達したこと意味し、NLを1に戻
さなければならない。その事を実行するために、比較器
150の出力が1の時に上から2番目のフラグビットレジ
スタ160を0にリセットする。その結果、フラグビット
レジスタの1番目が1で、それ以下は0になる。エンコ
ーダ170はこれを検出してネストレベルNL=1(“00")
を出力する。
このように、トークンの先頭読みだし位置でIDコード
とネストレベルNLコードが求まると、要求IDと要求NLレ
ジスタ115の内容の比較結果が属性比較器135から直ちに
求まる。これは現在のトークンが検索条件にマッチした
か否かを示している。マッチしていれば、読み出しアド
レスAに1を加えながら、現在のトークンのボディー部
を順次読み出せばよい。
とネストレベルNLコードが求まると、要求IDと要求NLレ
ジスタ115の内容の比較結果が属性比較器135から直ちに
求まる。これは現在のトークンが検索条件にマッチした
か否かを示している。マッチしていれば、読み出しアド
レスAに1を加えながら、現在のトークンのボディー部
を順次読み出せばよい。
ミスマッチならば現在のトークンのボディー部を読み
出す必要が無い。その場合には、次のトークンのヘッダ
アドレスHAを計算して、その結果をアドレス発生手段11
0に送る必要がある。ネストビットNbが“1"の時はすぐ
に入れ子のトークンのヘッダ部が続くので、長さコード
読み出し位置アドレスをAとすると、次のトークンのヘ
ッダアドレスは、HA=A+1から計算される。Nbが0の
時には、ミスマッチのトークンのボディー部の長さBが
わかった時点で次のトークンのヘッダアドレスはHA=A
+B+1から計算される。これらが内部アドレス計算回
路135で求められ、その結果が外部アドレス発生回路110
に与えられる。
出す必要が無い。その場合には、次のトークンのヘッダ
アドレスHAを計算して、その結果をアドレス発生手段11
0に送る必要がある。ネストビットNbが“1"の時はすぐ
に入れ子のトークンのヘッダ部が続くので、長さコード
読み出し位置アドレスをAとすると、次のトークンのヘ
ッダアドレスは、HA=A+1から計算される。Nbが0の
時には、ミスマッチのトークンのボディー部の長さBが
わかった時点で次のトークンのヘッダアドレスはHA=A
+B+1から計算される。これらが内部アドレス計算回
路135で求められ、その結果が外部アドレス発生回路110
に与えられる。
第3図はトークン列のネストレベル計算例を示してい
る。第3図(a)はトークン列の一例を、第3図(b)
はこれに対応したネストレベルの出力結果である。第3
図(a)は図面の関係で入れ子の深さが4までしか示し
ていないが、数10に及んでも同じ様な構造が繰り返され
るだけである。始めのトークンのネストレベルは常に1
番目である。
る。第3図(a)はトークン列の一例を、第3図(b)
はこれに対応したネストレベルの出力結果である。第3
図(a)は図面の関係で入れ子の深さが4までしか示し
ていないが、数10に及んでも同じ様な構造が繰り返され
るだけである。始めのトークンのネストレベルは常に1
番目である。
第3図(a)に示しトークンのヘッダー部はIDコード
*印の有無とLLコードの数字がそれぞれ、ネストビット
が“1"であるか否かとそのトークンのボディ部の長さを
示しているとする。すなわち、第1のトークンはコンス
トラクタであって、入れ子を持つこととボディ長さが64
(オクテット)であることがわかる。ヘッダー長さを2
とすると、このトークンの全長は66となる。すなわち、
位置アトレスが64に達するとネストレベルが必ず1に戻
ることを示す。トークンの下側の数字は位置アドレスで
あり、まるで囲まれた数字はプリミティブトークンのエ
ンドアドレスである。ネストレベルは3オクテット目で
1から2へ、17オクテット目で2から3へ、29オクテッ
ト目で3から4へ変わる場合が示されている。
*印の有無とLLコードの数字がそれぞれ、ネストビット
が“1"であるか否かとそのトークンのボディ部の長さを
示しているとする。すなわち、第1のトークンはコンス
トラクタであって、入れ子を持つこととボディ長さが64
(オクテット)であることがわかる。ヘッダー長さを2
とすると、このトークンの全長は66となる。すなわち、
位置アトレスが64に達するとネストレベルが必ず1に戻
ることを示す。トークンの下側の数字は位置アドレスで
あり、まるで囲まれた数字はプリミティブトークンのエ
ンドアドレスである。ネストレベルは3オクテット目で
1から2へ、17オクテット目で2から3へ、29オクテッ
ト目で3から4へ変わる場合が示されている。
第3図(b)は横軸301でトークンのオクテット数
を、縦軸302でネストレベルを示している。これが第3
図(a)のトークン列に対するネストレベル検出装置の
出力するネストレベルの該当する。第1番目のヘッダー
を読み取った第2オクテット目でこのネストレベルのト
ークンの終わりが66オクテット目であることがわかる。
それをエンドアドレスレジスタに設定した後、ネストレ
ベルを上げる。第2ネストレベルのプリミティブトーク
ンが3オクテット目から始まり、4オクテット目でその
トークンが14オクテット目迄続くとわかる。それを2番
目のエンドアドレスレジスタに設定する。5オクテット
目から14オクテットまではトークンを順に読む。オクテ
ット数が14に達すると2番目のエンドアドレスレジスタ
をリセットする。それまでの間、ネストレベルは2のま
まである。66オクテット目になるまでネストレベルは1
に戻らないためである。
を、縦軸302でネストレベルを示している。これが第3
図(a)のトークン列に対するネストレベル検出装置の
出力するネストレベルの該当する。第1番目のヘッダー
を読み取った第2オクテット目でこのネストレベルのト
ークンの終わりが66オクテット目であることがわかる。
それをエンドアドレスレジスタに設定した後、ネストレ
ベルを上げる。第2ネストレベルのプリミティブトーク
ンが3オクテット目から始まり、4オクテット目でその
トークンが14オクテット目迄続くとわかる。それを2番
目のエンドアドレスレジスタに設定する。5オクテット
目から14オクテットまではトークンを順に読む。オクテ
ット数が14に達すると2番目のエンドアドレスレジスタ
をリセットする。それまでの間、ネストレベルは2のま
まである。66オクテット目になるまでネストレベルは1
に戻らないためである。
15オクテット目で次の第2ネストレベルのトークンが
始まる。IDコードに*印がある。16オクテット目のLLコ
ードの数字50からこのネストレベルのトークンの終わり
が(16+50)=66オクテット目であると計算され、2番
目のエンドアドレスレジスタに設定される。この後、ネ
ストレベルが1つ増える。17オクテット目のIDコードに
は*印が付いていないので、18オクテット目のLLのプリ
ミティブトークンのボディー部の長さ8を示す。故に、
18+8=26オクテット目がエンドアドレスになる。オク
テット数が26に達すると、このトークンが終わるが、こ
の後に、再び第3ネストレベルのトークンが続く。すな
わち、27オクテット目のIDコードに*印があるので、28
オクテット目のLLコードの数字38から第3ネストレベル
のトークンの終わりを28+38=66オクテット目と計算
し、3番目のエンドアドレスレジスタに設定する。その
後ネストレベルを3から4に上げる。29オクテット目に
読むIDコードには*印が無いので、30オクテット目のLL
コードはプリミティブトークンのボディー部の長さ36を
示す。故に、31オクテット目から後は66オクテット目ま
でネストレベル4のままとなる。その後で、ネストレベ
ルは1に戻る。
始まる。IDコードに*印がある。16オクテット目のLLコ
ードの数字50からこのネストレベルのトークンの終わり
が(16+50)=66オクテット目であると計算され、2番
目のエンドアドレスレジスタに設定される。この後、ネ
ストレベルが1つ増える。17オクテット目のIDコードに
は*印が付いていないので、18オクテット目のLLのプリ
ミティブトークンのボディー部の長さ8を示す。故に、
18+8=26オクテット目がエンドアドレスになる。オク
テット数が26に達すると、このトークンが終わるが、こ
の後に、再び第3ネストレベルのトークンが続く。すな
わち、27オクテット目のIDコードに*印があるので、28
オクテット目のLLコードの数字38から第3ネストレベル
のトークンの終わりを28+38=66オクテット目と計算
し、3番目のエンドアドレスレジスタに設定する。その
後ネストレベルを3から4に上げる。29オクテット目に
読むIDコードには*印が無いので、30オクテット目のLL
コードはプリミティブトークンのボディー部の長さ36を
示す。故に、31オクテット目から後は66オクテット目ま
でネストレベル4のままとなる。その後で、ネストレベ
ルは1に戻る。
第4図はネストレベル検出回路の1構成例を示してい
る。この回路は第1図のネストレベル判別回路190の中
のフラグビットレジスタ160とエンコーダ170と接続部に
対応する。フラグビットレジスタFBRを左側からFBR1,F
BR2,FBR3,…と呼ぶ。ネストレベルが1の時はFBR1の
みが“1"で、他は“0"であるとする。*印付きIDコード
を持つトークンがくると、ネストビットが“1"であるか
ら、ネストビットレジスタ125からNb=1が端子401から
与えられる。LLコード読み出し時のタイミングで端子40
2からクロックCLKが与えられる。それによって、ゲート
165を介してFBR2にも“1"が設定される。
る。この回路は第1図のネストレベル判別回路190の中
のフラグビットレジスタ160とエンコーダ170と接続部に
対応する。フラグビットレジスタFBRを左側からFBR1,F
BR2,FBR3,…と呼ぶ。ネストレベルが1の時はFBR1の
みが“1"で、他は“0"であるとする。*印付きIDコード
を持つトークンがくると、ネストビットが“1"であるか
ら、ネストビットレジスタ125からNb=1が端子401から
与えられる。LLコード読み出し時のタイミングで端子40
2からクロックCLKが与えられる。それによって、ゲート
165を介してFBR2にも“1"が設定される。
その結果、ゲート175は左から2番目のホットにな
り、エンコーダ170から出力されるネストレベルが1番
目(“00")から2番目(“01")に上がる。これがネス
トビットの上昇ケースである。さらにネストビット“1"
のトークンがくると、ネストレベルはさらに高くなる。
その時に、FBR1,FBR2,FBR3が次々と“1"になって行
く。一般に、FBRiが“1"でFBRi+1が“0"のときに、エン
コーダはi番目のネストレベルを出力する。ただし、i
は1,2,3,…である。
り、エンコーダ170から出力されるネストレベルが1番
目(“00")から2番目(“01")に上がる。これがネス
トビットの上昇ケースである。さらにネストビット“1"
のトークンがくると、ネストレベルはさらに高くなる。
その時に、FBR1,FBR2,FBR3が次々と“1"になって行
く。一般に、FBRiが“1"でFBRi+1が“0"のときに、エン
コーダはi番目のネストレベルを出力する。ただし、i
は1,2,3,…である。
FBRiが“1"の時に比較器150がエンドアトレスとトー
クン読みだし位置との比較結果(マッチ信号)を出力し
た時に、“0"にもどる。その時にFBRi-1が“1"のままで
あれば、エンコーダの出力するネストレベルはi−1番
目となる。
クン読みだし位置との比較結果(マッチ信号)を出力し
た時に、“0"にもどる。その時にFBRi-1が“1"のままで
あれば、エンコーダの出力するネストレベルはi−1番
目となる。
同時に、FBRiとFBRi-1が比較器150の出力するマッチ
信号によって“0"になった場合には、ネストレベルはi
−2番目まで下がる。FBRiからFBR2迄がすべて“0"にな
った場合には、ネストレベルは当然、1番目に戻る。な
お、戻りのタイミングは、IDコードの直前のオクテット
の読み出し時とする。
信号によって“0"になった場合には、ネストレベルはi
−2番目まで下がる。FBRiからFBR2迄がすべて“0"にな
った場合には、ネストレベルは当然、1番目に戻る。な
お、戻りのタイミングは、IDコードの直前のオクテット
の読み出し時とする。
入れ子ありトークンが連続する場合には、ネストレベ
ルが階段状に上昇し、上昇の都度、ネストレベル毎に割
り当てられたエンドアドレスレジスト140にエンドアド
レス(EA)が書き込まれる。そして、アドレス比較器15
0がマッチ信号を発信するときは、入れ子なしトークン
の最後のオクテット入力時であって、その時にフラグビ
ットレジスタ160がリセットされる。
ルが階段状に上昇し、上昇の都度、ネストレベル毎に割
り当てられたエンドアドレスレジスト140にエンドアド
レス(EA)が書き込まれる。そして、アドレス比較器15
0がマッチ信号を発信するときは、入れ子なしトークン
の最後のオクテット入力時であって、その時にフラグビ
ットレジスタ160がリセットされる。
第5図は入れ子型トークン列の検索動作の説明図であ
る。第3図(a)のトークンの列の中の検索条件にあっ
たトークンを読み出す検索動作を示している。トークン
を読み出す場合の内部アドレス発生回路135の発生する
トークン読み出し位置アドレスAが横軸510で示され、
検索条件にあったトークンの読み出しのためのアクセス
回数が縦軸520で示されている。いくつかの検索例によ
って、トークンの属性比較でミスマッチのトークンがヘ
ッダ部以外で読み飛ばされ、アクセス回数が少なくて、
検索条件にマッチしたトークンだけが速く読み出される
ことが示される。
る。第3図(a)のトークンの列の中の検索条件にあっ
たトークンを読み出す検索動作を示している。トークン
を読み出す場合の内部アドレス発生回路135の発生する
トークン読み出し位置アドレスAが横軸510で示され、
検索条件にあったトークンの読み出しのためのアクセス
回数が縦軸520で示されている。いくつかの検索例によ
って、トークンの属性比較でミスマッチのトークンがヘ
ッダ部以外で読み飛ばされ、アクセス回数が少なくて、
検索条件にマッチしたトークンだけが速く読み出される
ことが示される。
第5図(a)は検索条件としてネストレベルNL=4と
IDコートのID6が与えられた場合の検索動作を示してい
る。この図からわかるように、読み出しアドレスAは1,
2,3,4の後15,16,17,18,27,28,29,30と変化し、Aが29の
時に始めて、IDとNLのマッチ信号が発生する。従って、
Aが30から66まではマッチしたトークンの順次読み出し
のために発生される。これに合わせ、出力端子501から
バリッド信号が出る。これを見て、主記憶100から読み
出されるトークンが外部でブロトコル変換や内容検索な
どに利用されている。アクセス回数は48回である。全部
読み出す場合(66回)の約2/3である。不要なトークン
のボディー部が短い時には読み飛ばしの効果が少ない
が、長くなるにつれ、効果が大きくなる。
IDコートのID6が与えられた場合の検索動作を示してい
る。この図からわかるように、読み出しアドレスAは1,
2,3,4の後15,16,17,18,27,28,29,30と変化し、Aが29の
時に始めて、IDとNLのマッチ信号が発生する。従って、
Aが30から66まではマッチしたトークンの順次読み出し
のために発生される。これに合わせ、出力端子501から
バリッド信号が出る。これを見て、主記憶100から読み
出されるトークンが外部でブロトコル変換や内容検索な
どに利用されている。アクセス回数は48回である。全部
読み出す場合(66回)の約2/3である。不要なトークン
のボディー部が短い時には読み飛ばしの効果が少ない
が、長くなるにつれ、効果が大きくなる。
第5図(b)は第3図(a)のトークンの中のヘッダ
部のみサーチの例である。検索条件としてヘッダ部のみ
の検索要求とIDコードのID6が与えられているとする。
故に、Aは1,2,3,4,15,16,17,18,27,28,29,30となる。
Aが29の時に、マッチ信号が出るが、A=31の時には、
出力端子502からバリッド信号が出力される。この時の
アドレス発生手段110の出力かマッチトークンのボディ
ー部アドレスを示すからである。これはプロトコル解析
やコンフォーマンステスト等に使われる。この時のトー
タルアクセス回数は12回であって、全体の約1/5とな
る。ボディー部の長いトークンの列の解析に有効とな
る。
部のみサーチの例である。検索条件としてヘッダ部のみ
の検索要求とIDコードのID6が与えられているとする。
故に、Aは1,2,3,4,15,16,17,18,27,28,29,30となる。
Aが29の時に、マッチ信号が出るが、A=31の時には、
出力端子502からバリッド信号が出力される。この時の
アドレス発生手段110の出力かマッチトークンのボディ
ー部アドレスを示すからである。これはプロトコル解析
やコンフォーマンステスト等に使われる。この時のトー
タルアクセス回数は12回であって、全体の約1/5とな
る。ボディー部の長いトークンの列の解析に有効とな
る。
第5図(c)はネストレベルのみの指定によるトーク
ン列の検索例である。ネストレベルNLを3として検索す
る場合、NLが1,2,4のトークンについてはヘッダー部し
かサーチしない。すなわち、Aは1,2,3,4,15,16,17と進
んだあとで、NLマッチが発生し、Aが18から28までは1
つづつ増加する。その後はAが30まで進んで、検索が終
了する。このような検索はマルチメディア文書データの
中のテキストデータのみを抜き出して検索するときとか
画像データのみを抜きだして表示するときとか、数値デ
ータのみを抜き出してソートする時などに使われる。ト
ータルアクセス回数は20回であって、全体の約4/13とな
る。
ン列の検索例である。ネストレベルNLを3として検索す
る場合、NLが1,2,4のトークンについてはヘッダー部し
かサーチしない。すなわち、Aは1,2,3,4,15,16,17と進
んだあとで、NLマッチが発生し、Aが18から28までは1
つづつ増加する。その後はAが30まで進んで、検索が終
了する。このような検索はマルチメディア文書データの
中のテキストデータのみを抜き出して検索するときとか
画像データのみを抜きだして表示するときとか、数値デ
ータのみを抜き出してソートする時などに使われる。ト
ータルアクセス回数は20回であって、全体の約4/13とな
る。
第5図(d)はネストレベルのレンジ指定によるトー
クン列の検索例である。ネストレベル2以下のトークン
を検索する場合は、NLが1と2のトークンのヘッダ部を
サーチする。NLが2の入れ子ありトークンについてはそ
のトークンのボディ部がネストレベル3以上になると判
断し、ミスマッチと判定し、そのトークンをスキップす
ると。すなわち、Aは1,2,3,4から15,16まで進むと、A
は16に長さコードの値50と1を加えた67へスキップす
る。このような検索は文書情報の表題名や出版社名など
の上位概念で検索範囲を絞るときに使える。この場合の
トータルアクセス回数は16回であり、全体の約1/11と小
さくなる。これはハイパーテキストサーチにも有効であ
る。
クン列の検索例である。ネストレベル2以下のトークン
を検索する場合は、NLが1と2のトークンのヘッダ部を
サーチする。NLが2の入れ子ありトークンについてはそ
のトークンのボディ部がネストレベル3以上になると判
断し、ミスマッチと判定し、そのトークンをスキップす
ると。すなわち、Aは1,2,3,4から15,16まで進むと、A
は16に長さコードの値50と1を加えた67へスキップす
る。このような検索は文書情報の表題名や出版社名など
の上位概念で検索範囲を絞るときに使える。この場合の
トータルアクセス回数は16回であり、全体の約1/11と小
さくなる。これはハイパーテキストサーチにも有効であ
る。
第6図はトークンの列の読みだし位置アレス発生回路
の1構成例を示している。一般に、この部分はトークン
を構成するオクテットを順次に読み取り相対アドレスを
発生するためだけであれば、クロック信号の計数器(カ
ウンタ)によって実現される。本発明では、トークンの
ヘッダ部の解読でわかる属性を検索条件として指定され
た属性と比較して、ミスマッチであればそのトークンの
ボディ部をスキップするようにアドレスを発生する。す
なわち、長さコードが求まったときの読み出し位置アド
レスAに1と長さコードを示す値Bを加えて、次のトー
クンの先頭アドレスを計算する。
の1構成例を示している。一般に、この部分はトークン
を構成するオクテットを順次に読み取り相対アドレスを
発生するためだけであれば、クロック信号の計数器(カ
ウンタ)によって実現される。本発明では、トークンの
ヘッダ部の解読でわかる属性を検索条件として指定され
た属性と比較して、ミスマッチであればそのトークンの
ボディ部をスキップするようにアドレスを発生する。す
なわち、長さコードが求まったときの読み出し位置アド
レスAに1と長さコードを示す値Bを加えて、次のトー
クンの先頭アドレスを計算する。
第6図(a)は上記Aと1とBの加算を2個の2入力
加算器から成る3入力加算器で実現する場合を示してい
る。ネストビットNb=1とか属性比較結果のZbがマッチ
(“1")の時にはB=0とする。そのためにスイッチ60
3が加算器601の入力側に入れられている。加算器602は
常に加算器601の出力に1を加算するだけである。その
ために+1のホルダー回路が使われている。加算結果は
レジスタ604に保持され、加算器601にフィードバックさ
れると共に、端子608から出力される。
加算器から成る3入力加算器で実現する場合を示してい
る。ネストビットNb=1とか属性比較結果のZbがマッチ
(“1")の時にはB=0とする。そのためにスイッチ60
3が加算器601の入力側に入れられている。加算器602は
常に加算器601の出力に1を加算するだけである。その
ために+1のホルダー回路が使われている。加算結果は
レジスタ604に保持され、加算器601にフィードバックさ
れると共に、端子608から出力される。
このような計算は最も単純な方法であるが、アドレス
信号が32ビット以上に及ぶと、加算器が500ゲート以上
となり、大きな面積を占めるだけでなく遅延時間も大き
くなるので、LSIチップとして実現するには最適と言え
ない。外部アドレス発生器やエンドアドレス計算回路の
所でも同じ加算器を使うので、加算器の個数を減らした
方が処理速度が上がり、チップコストが下がる。
信号が32ビット以上に及ぶと、加算器が500ゲート以上
となり、大きな面積を占めるだけでなく遅延時間も大き
くなるので、LSIチップとして実現するには最適と言え
ない。外部アドレス発生器やエンドアドレス計算回路の
所でも同じ加算器を使うので、加算器の個数を減らした
方が処理速度が上がり、チップコストが下がる。
第6図(b)は加算器を1個だけで実現するトークン
列読みだし位置アドレス発生回路である。A+B+1を
計算するに際し、1を端子609からキャリー信号として
受け付ける2入力加算器605を使う。前段のゲート603は
属性照合結果がマッチなら、Bを0とし、そうでなけれ
ばBのままで受け付けるスイッチである。当然ながら、
加算器605の出力はレジスタ604にラッチされ、加算器60
5の入力にフィードバックされ、端子608から出力され
る。これによって属性マッチの時には次のオクテットが
アクセスされ、ミスマッチの時には現トークンのボディ
部の後のトークンの先頭がアクセスされる。
列読みだし位置アドレス発生回路である。A+B+1を
計算するに際し、1を端子609からキャリー信号として
受け付ける2入力加算器605を使う。前段のゲート603は
属性照合結果がマッチなら、Bを0とし、そうでなけれ
ばBのままで受け付けるスイッチである。当然ながら、
加算器605の出力はレジスタ604にラッチされ、加算器60
5の入力にフィードバックされ、端子608から出力され
る。これによって属性マッチの時には次のオクテットが
アクセスされ、ミスマッチの時には現トークンのボディ
部の後のトークンの先頭がアクセスされる。
第6図(c)のエンドアトレス計算回路を利用したト
ークン列の読みだし位置アドレス発生回路例である。A
+Bはヘッダ部の読み取りが終わるときに別のEA計算用
加算器607で必ず計算される。この加算器607の内容がデ
コーダ145を介してEAレジスタに設定される事に着目
し、デコーダ145がEAレジスタへ加算器607の内容を設定
した後、端子609から与えられるキャリー信号を使って
加算器607の値をインクリメントし、アドレスレジスタ6
04に設定する。それが次のオクテットの読みだし位置ア
ドレスになる。
ークン列の読みだし位置アドレス発生回路例である。A
+Bはヘッダ部の読み取りが終わるときに別のEA計算用
加算器607で必ず計算される。この加算器607の内容がデ
コーダ145を介してEAレジスタに設定される事に着目
し、デコーダ145がEAレジスタへ加算器607の内容を設定
した後、端子609から与えられるキャリー信号を使って
加算器607の値をインクリメントし、アドレスレジスタ6
04に設定する。それが次のオクテットの読みだし位置ア
ドレスになる。
すなわち、加算器607の出力をEAレジスタ140に設定す
る期間には、加算器606の入力段のゲート603はボディ長
さレジスタの値Bとアドレスレジスタ604の出力を加算
器に伝達する。EAレジスタへのEAの設定後は、デコーダ
145が切り替わり、スイッチ603は、属性照合結果がミス
マッチなら閉じられて、Bがそのまま加算器607に入力
される。マッチの時にはスイッチ603がオープンとな
り、B=0が加算器607に入力される。このスイッチと
同じタイミングでキャリー信号1が加算器に入力され、
加算器607の出力は次のトークンの読みだし前にアドレ
スレジスタ604に設定される。
る期間には、加算器606の入力段のゲート603はボディ長
さレジスタの値Bとアドレスレジスタ604の出力を加算
器に伝達する。EAレジスタへのEAの設定後は、デコーダ
145が切り替わり、スイッチ603は、属性照合結果がミス
マッチなら閉じられて、Bがそのまま加算器607に入力
される。マッチの時にはスイッチ603がオープンとな
り、B=0が加算器607に入力される。このスイッチと
同じタイミングでキャリー信号1が加算器に入力され、
加算器607の出力は次のトークンの読みだし前にアドレ
スレジスタ604に設定される。
結果としての回路構成は第6図(b)と余り変わらな
いが、エンドアドレス計算用の加算器を使わない分、加
算器の使用数が1つ減る。第6図(a)ではアドレス発
生に関係して少なくとも4個の加算器を使うが、第6図
(b)では3個、第6図(c)では2個を使うだけで良
くなる。
いが、エンドアドレス計算用の加算器を使わない分、加
算器の使用数が1つ減る。第6図(a)ではアドレス発
生に関係して少なくとも4個の加算器を使うが、第6図
(b)では3個、第6図(c)では2個を使うだけで良
くなる。
第7図はトークンの読みだしの順序制御回路の実施例
の説明である。第7図(a)が順序制御回路の状態遷移
図を示し、第7図(b)がそれを実現する回路図を示
す。
の説明である。第7図(a)が順序制御回路の状態遷移
図を示し、第7図(b)がそれを実現する回路図を示
す。
第7図(a)においては、トークンの読みだしに伴う
状態変化が示されている。丸750は状態ノードを示し、
それらを結ぶ矢印線755は状態遷移パスを示す。状態ノ
ード間の状態遷移は矢印線755に沿って記入された条件
式が満足されたときに、矢印の方向への状態遷移が起こ
る。最初の状態はS0である。この状態になるとトークン
の先頭オクテットの読みだし位置アドレスが発生され、
第1オクテットのIDコードが読み出される。それを読み
取ると、状態はS1のS2の2通りがある。状態S1はIDコー
ドのネストビットNbが0の時であり、S2はNbが1の時で
ある。
状態変化が示されている。丸750は状態ノードを示し、
それらを結ぶ矢印線755は状態遷移パスを示す。状態ノ
ード間の状態遷移は矢印線755に沿って記入された条件
式が満足されたときに、矢印の方向への状態遷移が起こ
る。最初の状態はS0である。この状態になるとトークン
の先頭オクテットの読みだし位置アドレスが発生され、
第1オクテットのIDコードが読み出される。それを読み
取ると、状態はS1のS2の2通りがある。状態S1はIDコー
ドのネストビットNbが0の時であり、S2はNbが1の時で
ある。
次に、S1またはS2の状態ではトークンの第2オクテッ
トを読み出すアドレスが発生され、LLコードが読み出さ
れる。LLコードが読み出され、7ビット目の短形式か長
形式を示すLbと属性照合結果のZbが受けられると、状態
はノードS1やS2からS0に戻る以外にS3,S4,S5の3状態へ
の遷移が考えられる。S1からS0やS2からS0への遷移はLL
コード7ビット目が“0"で短形式であり属性照合がミス
マッチの時に起こり、S1からS3への状態遷移は短形式で
属性マッチの時に起こる。長形式のときには、S1からS4
への遷移とS2からS5への遷移が起こる。長形式の後Lコ
ードがD個続くとき、(D−1)回のLコード受付が終
わるまでS4やS5の状態はそこに留まる。D回目のLコー
ド受付時に状態はS4からS6へ、S5からはS0へ進む。状態
S6はボディ部データ受付の状態であり、ボディ部の長さ
をBとると、(B−1)回のデータ読み出し迄は状態が
S6にとどめられる。B回目のデータ読み出しで、状態が
S6からS0へ戻る。状態S5ではデータが来ないので、長さ
Bが求まるとS0に戻ってしまう。
トを読み出すアドレスが発生され、LLコードが読み出さ
れる。LLコードが読み出され、7ビット目の短形式か長
形式を示すLbと属性照合結果のZbが受けられると、状態
はノードS1やS2からS0に戻る以外にS3,S4,S5の3状態へ
の遷移が考えられる。S1からS0やS2からS0への遷移はLL
コード7ビット目が“0"で短形式であり属性照合がミス
マッチの時に起こり、S1からS3への状態遷移は短形式で
属性マッチの時に起こる。長形式のときには、S1からS4
への遷移とS2からS5への遷移が起こる。長形式の後Lコ
ードがD個続くとき、(D−1)回のLコード受付が終
わるまでS4やS5の状態はそこに留まる。D回目のLコー
ド受付時に状態はS4からS6へ、S5からはS0へ進む。状態
S6はボディ部データ受付の状態であり、ボディ部の長さ
をBとると、(B−1)回のデータ読み出し迄は状態が
S6にとどめられる。B回目のデータ読み出しで、状態が
S6からS0へ戻る。状態S5ではデータが来ないので、長さ
Bが求まるとS0に戻ってしまう。
第7図(b)はネストビット信号Nb、長さの形式信号
Lb、属性マッチ信号Zbの3レジスタ701,702,703と、状
態ノードS0から遷移先状態ノードまでの距離の計数器70
5と、状態ノードのデコーダ707とデコーダ707の出力に
したがうクロック信号の制御ゲート709とから構成され
る順序制御回路710の説明図である。この中のゲート709
の出力が第1図で示した回路を含む被制御回路730に送
られる。クロック信号は端子722から与えられるが、AND
ゲート725で制御される。すなわち、ビジーフラグレジ
スタ7120が端子721から与えられたスタート信号によっ
て“1"にセットされていれば、クロック信号を通過させ
るが、“0"へリセットされた後では通過されない。リセ
ット信号は1連の検索動作が終わったときに、被制御回
路730から発せられる。エンドアドレスレジスタやアド
レスレジスタの内容は保持したままで、状態をノードS0
に戻すことである。このリセット信号はトークン毎に発
生される場合もあり得る。
Lb、属性マッチ信号Zbの3レジスタ701,702,703と、状
態ノードS0から遷移先状態ノードまでの距離の計数器70
5と、状態ノードのデコーダ707とデコーダ707の出力に
したがうクロック信号の制御ゲート709とから構成され
る順序制御回路710の説明図である。この中のゲート709
の出力が第1図で示した回路を含む被制御回路730に送
られる。クロック信号は端子722から与えられるが、AND
ゲート725で制御される。すなわち、ビジーフラグレジ
スタ7120が端子721から与えられたスタート信号によっ
て“1"にセットされていれば、クロック信号を通過させ
るが、“0"へリセットされた後では通過されない。リセ
ット信号は1連の検索動作が終わったときに、被制御回
路730から発せられる。エンドアドレスレジスタやアド
レスレジスタの内容は保持したままで、状態をノードS0
に戻すことである。このリセット信号はトークン毎に発
生される場合もあり得る。
被制御回路730の中のヘッダ保持手段120ではそこに含
まれる各種レジスタへのデータの設定やLコードやボデ
ィ長さのカウンタの更新タイミングパルスが順序制御回
路710から与えられる。
まれる各種レジスタへのデータの設定やLコードやボデ
ィ長さのカウンタの更新タイミングパルスが順序制御回
路710から与えられる。
距離計数器705は被制御回路での1クロック分の動作
が終わると、終了の信号(状態遷移信号)をORゲート70
6を介して受付けて、計数値のカウントアップを行う。
また、被制御回路730での一連の動作が終わると、そこ
からリセット信号を受ける。それによって初期状態に戻
る。状態ノードの遷移信号をORゲート706を介して受け
付ける。ORゲート706の使用の理由は、状態ノードが分
岐している事による。
が終わると、終了の信号(状態遷移信号)をORゲート70
6を介して受付けて、計数値のカウントアップを行う。
また、被制御回路730での一連の動作が終わると、そこ
からリセット信号を受ける。それによって初期状態に戻
る。状態ノードの遷移信号をORゲート706を介して受け
付ける。ORゲート706の使用の理由は、状態ノードが分
岐している事による。
例えば、レジスタ701から703がすべて0で、距離計数
器705も00の時は状態がS0であり、デコーダ707が第1番
がホットになる。したがって、クロック信号はゲート70
9を通して第1番目から出力される。それが被制御回路7
30とORゲート706を介して距離計数器705を01に変化させ
る。これと共に、IDコードら読み出されたNbが変わる。
それによっ選択されたデコーダ707とゲート709から2番
目のクロック信号が出力され、第2オクテットのLLカウ
ンタとLコードレジスタへの設定を実行し、かつ、ORゲ
ート706を介して距離計数器705をカウントアップする。
状態遷移図に従って、次々と、デコーダの入力と出力が
変化する。
器705も00の時は状態がS0であり、デコーダ707が第1番
がホットになる。したがって、クロック信号はゲート70
9を通して第1番目から出力される。それが被制御回路7
30とORゲート706を介して距離計数器705を01に変化させ
る。これと共に、IDコードら読み出されたNbが変わる。
それによっ選択されたデコーダ707とゲート709から2番
目のクロック信号が出力され、第2オクテットのLLカウ
ンタとLコードレジスタへの設定を実行し、かつ、ORゲ
ート706を介して距離計数器705をカウントアップする。
状態遷移図に従って、次々と、デコーダの入力と出力が
変化する。
第8図は属性照合手段の回路構成図の一例を示してい
る。属性照合手段は検索条件メモリ106から与えられる
検索要求とヘッダ保持手段120やNL出力レジスタ175から
与えられる属性データとの比較を行う部分であって、第
1図では属性比較器115によって実現されると説明され
たが、ここでは、もう少し詳細を説明する。
る。属性照合手段は検索条件メモリ106から与えられる
検索要求とヘッダ保持手段120やNL出力レジスタ175から
与えられる属性データとの比較を行う部分であって、第
1図では属性比較器115によって実現されると説明され
たが、ここでは、もう少し詳細を説明する。
検索条件はIDコードやネストレベル(NLコード)で与
えらるが、その他に、トークン列の検索がヘッダ部に限
られること示すヘッダ要求信号のレジスタ801で与えら
れるとする。これは第5図(b)に示されるようなトー
クン列検索で使われる。従って、属性データもIDレジス
タ121やNL出力レジスタ175から与えられる他に、読み出
されているオクテットがヘッダ部に属している事を示す
ヘッダ信号の検出器802から与えられるとする。
えらるが、その他に、トークン列の検索がヘッダ部に限
られること示すヘッダ要求信号のレジスタ801で与えら
れるとする。これは第5図(b)に示されるようなトー
クン列検索で使われる。従って、属性データもIDレジス
タ121やNL出力レジスタ175から与えられる他に、読み出
されているオクテットがヘッダ部に属している事を示す
ヘッダ信号の検出器802から与えられるとする。
故に、属性検出手段では、少なくとも3つの比較器81
0が使われる。すなわち、第1がヘッダ要求信号とヘッ
ダ信号の比較器であり、第2が要求IDコードとIDコード
の比較器であり、第3が要求NLコードとNL出力コードの
比較器である。
0が使われる。すなわち、第1がヘッダ要求信号とヘッ
ダ信号の比較器であり、第2が要求IDコードとIDコード
の比較器であり、第3が要求NLコードとNL出力コードの
比較器である。
属性のマッチ信号Zbは常に3つの比較器の出力論理積
とは限らない。第5図で示したように、検索条としてNL
コードのみとか、IDコードのみを指定する。あるいは、
IDやNLコードを指定しないで、ヘッダ部全ての検索を指
定する場合がある。そこで、マスクビットパターンを記
憶するコマンドレジスタ105を使い、検索条件に含めな
い比較器810の出力をマスクする。
とは限らない。第5図で示したように、検索条としてNL
コードのみとか、IDコードのみを指定する。あるいは、
IDやNLコードを指定しないで、ヘッダ部全ての検索を指
定する場合がある。そこで、マスクビットパターンを記
憶するコマンドレジスタ105を使い、検索条件に含めな
い比較器810の出力をマスクする。
いま、i番目の比較器810の出力信号をyiとし、コマ
ンドレジスタ105から与えられるi番目のマスクビット
をmiとすると、属性のマッチ信号Zbは次式化で与えられ
る。
ンドレジスタ105から与えられるi番目のマスクビット
をmiとすると、属性のマッチ信号Zbは次式化で与えられ
る。
Zb=(yi+mi) (2) ここに、+は論理和を表すとする。
従って、マッチ信号Zbは比較器810につながるORゲート8
20と全てのORゲートの出力の論理積を求めるANDゲート8
25から出力される。
20と全てのORゲートの出力の論理積を求めるANDゲート8
25から出力される。
この実施例の中では、NLのレンジサーチの場合を示し
ていないが、要求NLとNLの出力信号の比較器810の出力
を比較の完全一致の端子からでなく大小比較の端子から
切り替えるだけで、要求NL以下のNLを持つトークンを選
択するように出来る。さらに、比較器810を増やして
も、もっと色々な属性の比較結果を出せるようにするこ
とも可能であり、以上の記述だけで検索条件の設定範囲
が制限されるものではない。
ていないが、要求NLとNLの出力信号の比較器810の出力
を比較の完全一致の端子からでなく大小比較の端子から
切り替えるだけで、要求NL以下のNLを持つトークンを選
択するように出来る。さらに、比較器810を増やして
も、もっと色々な属性の比較結果を出せるようにするこ
とも可能であり、以上の記述だけで検索条件の設定範囲
が制限されるものではない。
(発明の効果) 以上に説明したように、本発明は、主記憶に格納され
たトークン列のネストレベルやIDコード等の属性をトー
クン毎に解読してから、属性を使ってトークン列を検索
する2重手間によってトークン列の検索処理速度を遅く
なる欠陥を容易に解決するとわかる。すなわち、トーク
ン列のヘッダ部の解読と検索を行うことによって、ヘッ
ダ部でミスマッチとなったトークンのボディ部の読み飛
ばしを行え、検索条件にマッチするトークンの読みだし
のための主記憶アクセス回数が全トークン列読み出しの
アクセス回数の数分の1に減る。この事が検索時間を短
縮させる。
たトークン列のネストレベルやIDコード等の属性をトー
クン毎に解読してから、属性を使ってトークン列を検索
する2重手間によってトークン列の検索処理速度を遅く
なる欠陥を容易に解決するとわかる。すなわち、トーク
ン列のヘッダ部の解読と検索を行うことによって、ヘッ
ダ部でミスマッチとなったトークンのボディ部の読み飛
ばしを行え、検索条件にマッチするトークンの読みだし
のための主記憶アクセス回数が全トークン列読み出しの
アクセス回数の数分の1に減る。この事が検索時間を短
縮させる。
情報処理機器のホストコンピュータ側でのソフトウエ
アでネストレベル検出を行わせる時には処理速度が1MB/
secであっても、ネストが64レベルになると、ワースト
ケースであるが、処理速度が16KB/secに下がる。しか
し、ネストレベルを常に判別するハードウエアを内蔵さ
せたことで、ネストレベルが常に出力され、それによっ
て、トークンの検索がトークンの入力と同時に達成され
る。すなわち、1MB/secの検索処理速度が確保される。
それだけでなく、不要トークンの読み出しをスキップす
るために、実質の検索処理速度は数MB/s以上に上がる。
しかも、この装置はネストレベルが32から64に及んでも
2万ゲート以下のゲートアレイで設計できるので、現在
のLSI技術レベルでも、容易に1個のLSIチップで実現さ
れる。
アでネストレベル検出を行わせる時には処理速度が1MB/
secであっても、ネストが64レベルになると、ワースト
ケースであるが、処理速度が16KB/secに下がる。しか
し、ネストレベルを常に判別するハードウエアを内蔵さ
せたことで、ネストレベルが常に出力され、それによっ
て、トークンの検索がトークンの入力と同時に達成され
る。すなわち、1MB/secの検索処理速度が確保される。
それだけでなく、不要トークンの読み出しをスキップす
るために、実質の検索処理速度は数MB/s以上に上がる。
しかも、この装置はネストレベルが32から64に及んでも
2万ゲート以下のゲートアレイで設計できるので、現在
のLSI技術レベルでも、容易に1個のLSIチップで実現さ
れる。
第1図(a),(b)は本発明の実施例の装置構成図、
第2図は入れ子(ネスト)構造のトークン列の説明図、
第3図はネストレベルの計算プロセスの説明図、第4図
はネストレベル判別回路の1実施例を示す図である。第
5図はトークン列の検索動作の説明図、第6図は読み出
し位置アドレス発生回路の1実施例を示す図、第7図
(a),(b)各々トークン読み出しの順序制御回路の
状態遷移図と、それを実現する回路図、第8図は属性照
合手段の1例を示す図である。 図において、100…トークン列バッファメモリ、101…開
始アドレスレジスタ、102…サイズレジスタ、103…要求
IDレジスタ、104…要求NLレジスタ、105…コマンドレジ
スタ、106…検索条件メモリ、110…外部アドレス発生
器、115…属性比較器、120…ヘッダ保持手段、121…ID
コードレジスタ、122…長さコードレジスタ、125…ネス
トビットレジスタ、130…エンドアドレス計算回路、135
…内部アドレス発生回路、140…エンドアドレスレジス
タ、145…デコーダ、150…アドレス比較器、160…フラ
グビットレジスタ、162,165…ANDゲート、170…エンコ
ーダ、175…NL出力レジスタ、190…ネストレベル判別回
路。
第2図は入れ子(ネスト)構造のトークン列の説明図、
第3図はネストレベルの計算プロセスの説明図、第4図
はネストレベル判別回路の1実施例を示す図である。第
5図はトークン列の検索動作の説明図、第6図は読み出
し位置アドレス発生回路の1実施例を示す図、第7図
(a),(b)各々トークン読み出しの順序制御回路の
状態遷移図と、それを実現する回路図、第8図は属性照
合手段の1例を示す図である。 図において、100…トークン列バッファメモリ、101…開
始アドレスレジスタ、102…サイズレジスタ、103…要求
IDレジスタ、104…要求NLレジスタ、105…コマンドレジ
スタ、106…検索条件メモリ、110…外部アドレス発生
器、115…属性比較器、120…ヘッダ保持手段、121…ID
コードレジスタ、122…長さコードレジスタ、125…ネス
トビットレジスタ、130…エンドアドレス計算回路、135
…内部アドレス発生回路、140…エンドアドレスレジス
タ、145…デコーダ、150…アドレス比較器、160…フラ
グビットレジスタ、162,165…ANDゲート、170…エンコ
ーダ、175…NL出力レジスタ、190…ネストレベル判別回
路。
フロントページの続き (56)参考文献 電子情報通信学会技術研究報告CPSY 90−91(1991−1−25)P.17〜24 情報処理学会第40回(平成2年前記)全 国大会講演論文集P.1245−1246
Claims (6)
- 【請求項1】トークン列の記憶手段と、検索条件保持手
段と、前記記憶手段をアクセスするために初期アドレス
にトークンの読み出し位置アドレスを加算して出力する
外部アドレス発生手段と、各トークンの先頭のIDコード
や長さコードを検出して保持するヘッダ保持手段と、ID
コードからのネストビット検出手段と、IDコードやネス
トレベルなどの属性照合手段と、照合結果と長さコード
と長さコード読みだし位置によって次に読み出されるト
ークンの読み出し位置を決め、アドレス発生手段に与え
るトークン列の読み出し位置アドレス計算手段と、長さ
コードとそのコードの読み出し位置を使って、各トーク
ンのエンドアドレスを計算するエンドアドレス計算手段
と、エンドアドレスをネストレベル別に記憶するエンド
アドレス保持手段と、前記トークン列の読み出し位置と
前記エンドアドレスとアドレス比較手段と、ネストビッ
トによってシフトアップされ、アドレス比較手段のマッ
チ出力によってリセットされ、シフトダウンするフラグ
ビット保持手段と、複数個のフラグビット保持手段につ
ながるネストレベルエンコード手段とネストレベル出力
レジスタとを備えることを特徴とする入れ子型トークン
列の検索装置。 - 【請求項2】トークン列の記憶手段と、検索条件保持手
段と、前記記憶手段をアクセスするために初期アドレス
にトークンの読み出し位置アドレスを加算して出力する
外部アドレス発生手段と、各トークンの先頭のIDコード
や長さコードを検出して保持するヘッダ保持手段と、ID
コードからのネストビット検出手段と、IDコードやネス
トレベルなどの属性照合手段と、長さコードと長さコー
ド読みだし位置の加算によってトークンのエンドアドレ
スを計算するエンドアドレス計算手段と、エンドアドレ
スをネストレベル別に記憶するエンドアドレス保持手段
と、前記トークン列の読み出し位置と前記エンドアドレ
スとアドレス比較手段と、IDコードを受信したヘッダ保
持手段の出力するネストビットによってシフトアップさ
れ、アドレス比較手段の出力によってリセットされ、シ
フトダウンするフラグビット保持手段と、複数個のフラ
グビット保持手段につながるネストレベルエンコード手
段とネストレベル出力レジスタと、属性照合手段がミス
マッチを出し、ネストビットが0てある時にはエンドア
ドレスに1を加え、そうでないときは、現在の読みだし
位置アドレスに1を加えて、アドレス発生手段に与える
トークン列の読みだしアドレス発生手段とを備えること
を特徴とする入れ子型トークン列の検索装置。 - 【請求項3】トークン列の読み出し位置アドレス計算手
段が現在の出力に1と長さコードを加算する3入力加算
器で実現され、属性照合手段の出力がミスマッチでかつ
ネストビットが0の時以外は長さコードの代わりに0を
与える事を特徴とする請求項1に記載の入れ子型トーク
ン列の検索装置。 - 【請求項4】トークン列の読み出し位置アドレス計算手
段が、現在の出力に長さコードを加算する加算器であっ
て、キャリー信号によって1が加算されることを特徴と
する請求項1に記載の入れ子型トークン列の検索装置。 - 【請求項5】トークン列の記憶手段と、前記記憶手段を
アクセスするために初期アドレスと相対的なトークン読
み出し位置アドレスを加算するアドレス発生手段と、検
索条件保持手段と、外部クロックに従ってタイミングシ
ーケンスを発生する順序制御手段と、前記タイミングシ
ーケンスによって各トークンの先頭のIDコードや長さを
検出して保持するヘッダ保持手段と、IDコードからのネ
ストビット判定手段と、前記検索条件保持手段の内容に
従って比較内容を限定するトークンの属性照合手段と、
長さコードと長さコードの読みだし位置の加算によって
トークンのエンドアドレスを計算するエンドアドレス計
算手段と、エンドアドレスをネストレベル別に記憶する
エンドアドレス記憶手段と、全エンドアドレスと現在の
トークンの読み出し位置アドレスとの並列比較結果とネ
ストビットから次のトークンのネストレベルを判定する
ネストレベル判定手段と、ネストレベル出力レジスタ
と、属性照合手段のミスマッチ信号と0のネストビット
信号の時にはトークン列の読み出し位置に1と長さコー
ドを加算し、それ以外の時には1だけを加算するトーク
ン列の読みだし位置アドレス手段とを備えることを特徴
とする入れ子型トークン列の検索装置。 - 【請求項6】検索条件保持手段がIDコードとネストレベ
ルとボディーサイズとトークン列記憶手段の検索開始ア
ドレスと検索されるトークン列のサイズと検索コマンド
のいずれかを保持するレジスタから成り、検索コマンド
が比較の対象にしない項目を指示するビットパターンで
ある事を特徴とする請求項1,2または5に記載の入れ子
型トークン列の検索装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1340102A JPH0810453B2 (ja) | 1989-12-27 | 1989-12-27 | 入れ子型トークン列の検索装置 |
US07/634,739 US5293634A (en) | 1989-12-27 | 1990-12-27 | System for retrieving token having a selected nest level and satisfying predetermined retrieval condition |
EP90125512A EP0435260B1 (en) | 1989-12-27 | 1990-12-27 | Token train retrieval device capable of retrieving tokens at a high speed |
DE69032759T DE69032759T2 (de) | 1989-12-27 | 1990-12-27 | Gerät zur Wiederauffindung von Tokenketten mit hoher Geschwindigkeit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1340102A JPH0810453B2 (ja) | 1989-12-27 | 1989-12-27 | 入れ子型トークン列の検索装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03198155A JPH03198155A (ja) | 1991-08-29 |
JPH0810453B2 true JPH0810453B2 (ja) | 1996-01-31 |
Family
ID=18333738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1340102A Expired - Lifetime JPH0810453B2 (ja) | 1989-12-27 | 1989-12-27 | 入れ子型トークン列の検索装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5293634A (ja) |
EP (1) | EP0435260B1 (ja) |
JP (1) | JPH0810453B2 (ja) |
DE (1) | DE69032759T2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0652241A (ja) * | 1992-07-28 | 1994-02-25 | Nec Corp | 入れ子構造メッセージ検索装置 |
US5666661A (en) * | 1994-03-10 | 1997-09-09 | Motorola, Inc. | Method for automatically bypassing the use of a communication system infrastructure |
US7139839B2 (en) * | 2001-11-26 | 2006-11-21 | Schneider Automation Inc. | Method and apparatus for assigning a network node address |
JP4175296B2 (ja) * | 2004-06-25 | 2008-11-05 | キャタピラージャパン株式会社 | 建設機械のデータ処理装置及び建設機械のデータ処理方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4888553A (en) * | 1985-01-16 | 1989-12-19 | Varian Associates, Inc. | Multiple FIFO NMR acquistion system |
US4651278A (en) * | 1985-02-11 | 1987-03-17 | International Business Machines Corporation | Interface process for an all points addressable printer |
DE3534216A1 (de) * | 1985-09-25 | 1987-04-02 | Bayerische Motoren Werke Ag | Datenbussystem fuer fahrzeuge |
US4750114A (en) * | 1986-07-28 | 1988-06-07 | Honeywell Bull Inc. | Local area network control block |
US4926375A (en) * | 1987-05-05 | 1990-05-15 | Ge Fanuc Automation North America, Inc. | Multiple nodes broadcast communication method with receiver identification by bit position in transferred massage |
US4916660A (en) * | 1987-07-09 | 1990-04-10 | Nec Corporation | Nest level judging hardware device for high speed message handling systems |
-
1989
- 1989-12-27 JP JP1340102A patent/JPH0810453B2/ja not_active Expired - Lifetime
-
1990
- 1990-12-27 EP EP90125512A patent/EP0435260B1/en not_active Expired - Lifetime
- 1990-12-27 DE DE69032759T patent/DE69032759T2/de not_active Expired - Fee Related
- 1990-12-27 US US07/634,739 patent/US5293634A/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
情報処理学会第40回(平成2年前記)全国大会講演論文集P.1245−1246 |
電子情報通信学会技術研究報告CPSY90−91(1991−1−25)P.17〜24 |
Also Published As
Publication number | Publication date |
---|---|
US5293634A (en) | 1994-03-08 |
DE69032759T2 (de) | 1999-04-08 |
DE69032759D1 (de) | 1998-12-17 |
EP0435260A3 (en) | 1993-08-04 |
EP0435260A2 (en) | 1991-07-03 |
EP0435260B1 (en) | 1998-11-11 |
JPH03198155A (ja) | 1991-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4040009A (en) | Pattern recognition system | |
KR940003700B1 (ko) | 검색방법 및 그 장치 | |
US4054951A (en) | Data expansion apparatus | |
US7904429B2 (en) | System and method for searching strings of records | |
US20080059417A1 (en) | Structured document management system and method of managing indexes in the same system | |
GB1570342A (en) | Information storage and retrieval system | |
JPS63311530A (ja) | 文字列検索装置 | |
JPH10240765A (ja) | 類似オブジェクト検索方法および装置 | |
JPH0810453B2 (ja) | 入れ子型トークン列の検索装置 | |
US5459754A (en) | Serial bit pattern recognizer system | |
JPH11282852A (ja) | データ検索装置 | |
JPH0666050B2 (ja) | ソート処理方法 | |
JP3141428B2 (ja) | 数値検索装置およびその方法 | |
JPH0315221B2 (ja) | ||
JPH0514458B2 (ja) | ||
JP2679619B2 (ja) | 入れ子構造メッセージ検索装置 | |
JPH03175854A (ja) | トークン列のネストレベル検出装置 | |
JPS6349856A (ja) | 隣接構成デ−タベ−スを生成する方法 | |
JPH0652241A (ja) | 入れ子構造メッセージ検索装置 | |
JP4134824B2 (ja) | 情報処理装置及びプログラム | |
CN110502656A (zh) | 一种查找方法、装置、电子设备及可读存储介质 | |
JPH01297724A (ja) | 学習型文字列検索装置と同装置の制御方式 | |
US5953454A (en) | Minimum distance storage device | |
JPH0149072B2 (ja) | ||
SU1335977A1 (ru) | Устройство дл сортировки информации |