(57)【特許請求の範囲】
【請求項１】
比較対象となる比較対象データと、前記比較対象データと対をなす命令を記憶する第１の記憶手段と、
前記第１の記憶手段に記憶されている前記比較対象データと比較すべき比較データを記憶する第２の記憶手段と、
前記第１の記憶手段に記憶されている前記比較対象データと前記第２の記憶手段に記憶されている前記比較データとを比較する比較手段と、
前記比較手段による比較結果を記憶する第３の記憶手段と、
前記比較結果に対応する命令を前記第１の記憶手段から読み出す読み出し手段と、
前記読み出し手段によって読み出された前記命令を実行する実行手段と、
前記実行手段が実行する命令を記憶する第４の記憶手段と
を備え、
前記実行手段が、前記比較手段による比較結果の提供を要求したとき、前記読み出し手段は、前記要求に応じて、前記第３の記憶手段に記憶されている前記比較結果に対応する、前記第１の記憶手段に記憶されている前記比較対象データと対をなす命令を前記実行手段に提供し、
前記実行手段は、前記読み出し手段より提供された前記命令を実行する
ことを特徴とする検索システム。
【請求項２】
前記比較手段により、前記比較対象データと前記比較データとが比較された結果、前記比較データと一致する前記比較対象データがあるとき、前記第３の記憶手段は、前記比較対象データと対をなす前記命令が記憶されている前記第１の記憶手段のアドレスを比較結果として記憶する
ことを特徴とする請求項１に記載の検索システム。
【請求項３】
前記読み出し手段は、前記実行手段からの前記要求が、命令フェッチ要求であるとき、前記要求に応じて、前記第３の記憶手段に記憶されている前記比較結果に対応する、前記第１の記憶手段に記憶されている前記比較対象データと対をなす命令を前記実行手段に提供する
ことを特徴とする請求項１または２に記載の検索システム。
【請求項４】
前記読み出し手段は、前記第３の記憶手段に記憶されている前記比較結果を参照する命令が置かれている前記第４の記憶手段のアドレスを記憶し、前記アドレスと前記実行手段による命令フェッチ要求に対応するアドレスとが一致したとき、前記第３の記憶手段に記憶されている前記比較結果に対応する、前記第１の記憶手段に記憶されている前記比較対象データと対をなす前記命令を前記実行手段に提供する
ことを特徴とする請求項１，２または３に記載の検索システム。
【請求項５】
比較対象となる比較対象データと、前記比較対象データと対をなす命令を記憶する第１の記憶手段と、前記第１の記憶手段に記憶されている前記比較対象データと比較すべき比較データを記憶する第２の記憶手段と、前記第１の記憶手段に記憶されている前記比較対象データと前記第２の記憶手段に記憶されている前記比較データとを比較する比較手段と、前記比較手段による比較結果を記憶する第３の記憶手段と、前記比較結果に対応する命令を前記第１の記憶手段から読み出す読み出し手段と、前記読み出し手段によって読み出された前記命令を実行する実行手段とを備える検索システムにおける検索方法であって、前記実行手段が、前記比較手段による比較結果の提供を要求したとき、前記読み出し手段は、前記要求に応じて、前記第３の記憶手段に記憶されている前記比較結果に対応する、前記第１の記憶手段に記憶されている前記比較対象データと対をなす命令を前記実行手段に提供し、
前記実行手段は、前記読み出し手段より提供された前記命令を実行する
ことを特徴とする検索方法。
【請求項６】
請求項５に記載の検索方法を実行可能なプログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、検索システムおよび検索方法、並びに記録媒体に関し、特に、検索処理を検索周辺ハードウェアが行い、その検索結果に対応した処理をＣＰＵが行う検索システムおよび検索方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
従来より、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）が外部からデータを取得する場合、以下に示すように、２種類の方法がある。
【０００３】
名称          ：内容
命令フェッチ  ：ＣＰＵの動作をさせる為に用いるプログラム命令
Ｉ／Ｏデータ  ：制御や演算を行う時に用いるデータ
【０００４】
以降では、上記で示した名称を用いる。
【０００５】
検索処理の全てをソフトウェアだけで行うとＣＰＵ処理効率が悪い。この為、近年では、検索に要する処理は検索ハードウェアを使用し、ＣＰＵはハードウェアの検索結果を用いて処理を行う。そして、ＣＰＵは、検索ハードウェアから得た結果を、制御や演算を行う時に用いるデータとして取り込んだ後、さらに、それを処理するというのが一般的な手法である。
【０００６】
この一般的な手法は、図２に示すようなシステム構成において、後述するような処理の流れにより実現することができる。
【０００７】
まず、システム構成について説明する。図２は、従来の検索システムの構成例を示すブロック図である。同図に示すように、検索システムは、命令フェッチの要求、Ｉ／Ｏデータのリード要求、後述する検索用周辺ハードウェア３によって検索された検索結果に対応する処理の実行等を行うＣＰＵ１と、ＣＰＵ１が実行する命令が置かれているメモリ２と、検索処理を実行する検索用周辺ハードウェア３と、ＣＰＵ１とメモリ２と検索用周辺ハードウェアを結ぶバスを制御し、ＣＰＵ１からの各要求により通知されるアドレスにある内容をＣＰＵ１に返却する処理を実行するバスコントローラ４とから構成されている。
【０００８】
メモリ２には、ＣＰＵ１が実行する命令が記憶されている。例えば、比較対象値を比較対象レジスタ３−１に設定する命令、比較対象値と比較して一致するものを検索するための検索比較値を検索比較値レジスタ３−３に設定する命令（比較対象設定）、検索結果レジスタ３−２に設定された検索結果をリードする命令（検索比較値の設定）、命令を分析した結果に応じて分岐するための命令（分析結果対応分岐）、検索結果レジスタ３−２に設定された検索結果に対応して分岐するための判断を行う処理をするための命令（参照データ分析）等の命令が記憶されている。
【０００９】
次に、処理の流れについて説明する。
（１）ＣＰＵ１はバスコントローラ４経由で検索用周辺ハードウェア３の比較対象レジスタ３−１に比較対象値を設定する。
（２）ＣＰＵ１が検索比較値レジスタ３−３に検索比較値を設定すると、検索周辺ハードウェア３は検索を開始する。そして、検索比較値と一致する比較対象値がある場合、その比較対象値が記憶されている比較対象レジスタ３−１の順番位置等を検索結果レジスタ３−２に検索結果として設定する。
（３）ＣＰＵ１はバスコントローラ４を経由して検索結果レジスタ３−２の値（検索結果値）を読み出す。
（４）ＣＰＵ１は検索結果値をＩ／Ｏデータとして分析する。
（５）分析結果から、ＣＰＵ１はＩ／Ｏデータに対応した処理へ分岐して処理を実行する。
（６）もし（５）でＣＰＵ１がＩ／Ｏデータに対応した処理へ分岐して処理を実行しない時は、更に検索結果値を分析する
（７）分析結果から、ＣＰＵ１はＩ／Ｏデータに対応した処理へ分岐して処理を実行する。
（８）以降、検索結果に対応した処理を行う回数だけ、分析と分析結果に対応した処理分岐判断を繰り返す。
このようにして、検索用周辺ハードウェア３が検索処理を実行し、ＣＰＵ１が検索結果をデータとして取り込み、検索結果を分析して検索結果に対応する処理を実行する。
【００１０】
【発明が解決しようとする課題】
しかしながら、この検索用周辺ハードウェア３の検索結果をもとに、ＣＰＵ１が処理を行うことは、ＣＰＵ１が検索用周辺ハードウェア３に検索を任せたにも拘わらず、検索用周辺ハードウェア３の検索結果を分析するプログラムを要してしまい、検索処理を全体として見ると、未だに処理にオーバーヘッドが残る。このことから、検索結果をＣＰＵ１が利用し、即座に検索結果に対応した処理を行うことができないという問題がある。
【００１１】
この問題が生じる理由として、以下の３項目がある。
（１）検索用周辺ハードウェア３から得る検索結果を元にＣＰＵ１が処理する場合に、ＣＰＵ１はＩ／Ｏデータとして検索結果を得る。
（２）ＣＰＵ１は検索結果をＩ／Ｏデータとして内部に取り込むことから、そのデータに対する結果の分析を行う必要がある。
（３）ＣＰＵ１はこの分析を行うために命令フェッチ要求を出して、命令フェッチを行いプログラムを実行する。
【００１２】
この３項目から、検索結果に対応した処理を行う上で、ＣＰＵ１は検索用周辺ハードウェア３に検索を任せたにも拘わらず、ＣＰＵ１は検索用周辺ハードウェア３の結果を分析するプログラムを要してしまう。その結果、検索全体として見ると、未だにオーバーヘッドが残ってしまう。
【００１３】
本発明はこのような状況に鑑みてなされたものであり、検索結果を分析することなく、直ちに検索結果に対応する処理を行うことができるようにし、検索結果に対応する処理を実行するときの処理効率を向上させることができるようにするものである。
【００１４】
【課題を解決するための手段】
請求項１に記載の検索システムは、比較対象となる比較対象データと、比較対象データと対をなす命令を記憶する第１の記憶手段と、第１の記憶手段に記憶されている比較対象データと比較すべき比較データを記憶する第２の記憶手段と、第１の記憶手段に記憶されている比較対象データと第２の記憶手段に記憶されている比較データとを比較する比較手段と、比較手段による比較結果を記憶する第３の記憶手段と、比較結果に対応する命令を第１の記憶手段から読み出す読み出し手段と、読み出し手段によって読み出された命令を実行する実行手段と、実行手段が実行する命令を記憶する第４の記憶手段とを備え、実行手段が、比較手段による比較結果の提供を要求したとき、読み出し手段は、要求に応じて、第３の記憶手段に記憶されている比較結果に対応する、第１の記憶手段に記憶されている比較対象データと対をなす命令を実行手段に提供し、実行手段は、読み出し手段より提供された命令を実行することを特徴とする。
また、比較手段により、比較対象データと比較データとが比較された結果、比較データと一致する比較対象データがあるとき、第３の記憶手段は、比較対象データと対をなす命令が記憶されている第１の記憶手段のアドレスを比較結果として記憶するようにすることができる。
また、読み出し手段は、実行手段からの要求が、命令フェッチ要求であるとき、要求に応じて、第３の記憶手段に記憶されている比較結果に対応する、第１の記憶手段に記憶されている比較対象データと対をなす命令を実行手段に提供するようにすることができる。
また、読み出し手段は、第３の記憶手段に記憶されている比較結果を参照する命令が置かれている第４の記憶手段のアドレスを記憶し、アドレスと実行手段による命令フェッチ要求に対応するアドレスとが一致したとき、第３の記憶手段に記憶されている比較結果に対応する、第１の記憶手段に記憶されている比較対象データと対をなす命令を実行手段に提供するようにすることができる。
請求項５に記載の検索方法は、比較対象となる比較対象データと、比較対象データと対をなす命令を記憶する第１の記憶手段と、第１の記憶手段に記憶されている比較対象データと比較すべき比較データを記憶する第２の記憶手段と、第１の記憶手段に記憶されている比較対象データと第２の記憶手段に記憶されている比較データとを比較する比較手段と、比較手段による比較結果を記憶する第３の記憶手段と、比較結果に対応する命令を第１の記憶手段から読み出す読み出し手段と、読み出し手段によって読み出された命令を実行する実行手段とを備える検索システムにおける検索方法であって、実行手段が、比較手段による比較結果の提供を要求したとき、読み出し手段は、要求に応じて、第３の記憶手段に記憶されている比較結果に対応する、第１の記憶手段に記憶されている比較対象データと対をなす命令を実行手段に提供し、実行手段は、読み出し手段より提供された命令を実行することを特徴とする。
請求項６に記載の記録媒体は、請求項５に記載の検索方法を実行可能なプログラムが記録されていることを特徴とする。
本発明に係る検索システムおよび検索方法、並びに記録媒体においては、実行手段が、比較手段による比較結果の提供を要求したとき、読み出し手段は、要求に応じて、第３の記憶手段に記憶されている比較結果に対応する、第１の記憶手段に記憶されている比較対象データと対をなす命令を実行手段に提供し、実行手段は、読み出し手段より提供された命令を実行する。
【００１５】
【発明の実施の形態】
以下、図１を参照して、本発明の検索システムの構成及び動作について説明する。図２に示した従来の検索システムと対応する部分には同一の符号を付して適宜その説明は省略する。本実施の形態では、従来の検索システムに新たに以下の２つの機構及びプログラムを追加するようにしている。
【００１６】
まず、以下の機構を検索用周辺ハードウェア３に追加する。
（１）検索時に用いる比較対象レジスタ３−１は、比較対象値（比較対象データ）と対にＣＰＵ１の命令（ＣＰＵ命令）を持つ。
（２）検索用周辺ハードウェア３が返却する検索結果は、従来の検索結果ではなく、検索で一致した比較対象レジスタ３−１と対になっているＣＰＵ命令とする。
【００１７】
次に、以下の機構をバスコントローラ４に追加する。
（１）新たにＸアドレス設定レジスタ４−１を設ける。このＸアドレスは、ＣＰＵ１からの命令フェッチの要求アドレスに対して、返却するデータの取り出し先を変更したいアドレスを示す。
（２）ＣＰＵ１からの命令フェッチ要求があった場合に、その要求アドレスとＸアドレス設定レジスタ４−１の間で比較を行う。この比較結果から、ＣＰＵ１からの命令フェッチ要求に対して、返却するデータ取り出し先を変更する。
比較結果が一致していない場合：要求アドレスにある命令をＣＰＵ１へ渡す。
比較結果が一致している場合  ：検索用周辺ハードウェア３が持つ検索結果レジスタ３−２の内容をＣＰＵ１へ渡す。
（３）本機構は、命令フェッチに対してのみ動作し、Ｉ／Ｏデータに対しての要求がＣＰＵ１からきた場合は、従来の場合と同様に動作する。
【００１８】
次に、ＣＰＵ１上で実行されるプログラムについて説明する。本実施の形態で追加した機構は、ＣＰＵ１上で実行されるプログラムで事前設定を要する。この事前設定を要する項目は、以下の２項目である。
【００１９】
（１）検索用周辺ハードウェア３への設定
検索用周辺ハードウェア３内にある比較対象レジスタ３−１と対になるＣＰＵ命令を設定する。なお、ここで設定するＣＰＵ命令は、従来の方式では検索結果の分析後に実行される命令である。
【００２０】
（２）バスコントローラ４への設定
ＣＰＵ１が命令フェッチを行って、検索用周辺ハードウェア４の検索結果レジスタ３−２を参照する命令が置かれているメモリ２のアドレスを、Ｘアドレス設定レジスタ４−１に設定する。
【００２１】
次に、本実施の形態の動作について説明する。本実施の形態は、検索用周辺ハードウェア３とバスコントローラ４の２つのハードウェアに対して新たな機構を追加し、追加した機構を用いて検索処理を行う。この場合、上述したような機構に対して事前に設定を行う必要が生じる。そのため、ＣＰＵ１は、従来方式にはない、機構に対して事前設定を行う事前設定プログラムを、検索処理の実行前に実行しておく。
【００２２】
検索処理を実行する上で、ＣＰＵ１は本来は命令フェッチの要求アドレスにあった命令を内部に取り込んだ後、実行する。しかしながら、本実施の形態では、バスコントローラ４にＸアドレス設定レジスタ４−１を新たに追加し、かつ、ＣＰＵ１からの命令フェッチによる要求アドレスと、Ｘアドレス設定レジスタ４−１とを常に比較する動作を行う機構を追加し、ＣＰＵ１からの命令フェッチに対する要求アドレスが、Ｘアドレス設定レジスタ４−１に設定したアドレスであった場合は、要求アドレスの命令を内部に取り込まずに、検索用周辺ハードウェア３の検索結果レジスタ３−２を読み出すようにする。
【００２３】
これにより、ＣＰＵ１は、検索用周辺ハードウェア３の検索結果を読み出すためのプログラムを実行するための命令フェッチ要求を行う必要がなくなり、ＣＰＵ１の処理量が削減されるという効果が生じる。
【００２４】
しかし、バスコントローラ４に追加した機構だけでは、ＣＰＵ１の命令フェッチの要求アドレスでＣＰＵ１が得る値は検索結果の値であり、ＣＰＵ１は命令を実行することができない。これは、従来の検索用周辺ハードウェア３の検索結果レジスタ３−２が持つ値を検索結果としたＩ／Ｏデータであり、ＣＰＵ１の命令フェッチに対応する値でない。
【００２５】
そこで、検索用周辺ハードウェア３にも新たに機構を追加し、比較対象レジスタ３−１に比較対象値と対をなしてＣＰＵ１の命令を持たせるようにする。そして、ＣＰＵ１が検索用周辺ハードウェア３の検索結果レジスタ３−２から検索結果を得る場合には、検索結果は比較対象レジスタ３−１の比較対象値と対のＣＰＵ１の命令を返却するようにする。
【００２６】
バスコントローラ４と検索用周辺ハードウェア３にそれぞれ追加した上記機構によって、ＣＰＵ１からの命令フェッチの要求アドレスを利用して、検索用周辺ハードウェア３の検索結果レジスタ３−２が参照されようとした時にそれをバスコントローラ４が検出し、バスコントローラ４はその要求アドレスにある命令をＣＰＵ１へ返却せずに、検索用周辺ハードウェア３の検索結果レジスタ３−２を参照し、検索結果に対応したＣＰＵ１の命令を検索結果に対応する比較対象レジスタ３−１から読み出し、それを要求アドレスに対応した命令としてＣＰＵ１へ返却する。
【００２７】
この動作から、ＣＰＵ１は検索用周辺ハードウェア３の検索結果レジスタ３−２の値を分析することなく、検索結果に対応した処理を行うことができる。
【００２８】
以上説明したように、本実施の形態によれば、従来方式ではＣＰＵ１が複数の命令を実行することにより行っていた処理の処理量を削除することができる。
【００２９】
検索処理を行う上で、従来の方式と本実施の形態による方式の違いを以下に示す。
【００３０】
従来方式で、ＣＰＵ１が行うプログラムは、以下の命令を実行する。
（１）命令フェッチ
（２）読み出した命令の実行（検索結果のレジスタリード）
（３）検索結果レジスタの内容を取得
（４）命令フェッチ
（５）読み出した命令の実行（検索結果の分析）
（６）命令フェッチ
（７）読み出した命令の実行（分析結果別の演算）
【００３１】
これに対して、本実施の形態で追加した機構を用いた場合は以下のようになる。
（１）命令フェッチ
（２）読み出した命令の実行（分析結果別の演算）
【００３２】
このように、従来の場合と本実施の形態の場合の処理手順の差異から、本実施の形態の方式を用いることで、従来方式でＣＰＵ１が複数の命令を実行することにより行っていた処理（従来方式でのＣＰＵ１が行うプログラムにおける（２）乃至（６）の動作）を削除することができる。即ち、検索結果に基づく分析処理プログラムの命令フェッチ動作時に、検索用周辺ハードウェア３の検索結果に対応する処理プログラム（ＣＰＵ命令）をバスコントローラ４がＣＰＵ１に提供することにより、ＣＰＵ１が実行する命令フェッチ動作を減らすことができる。これにより、ＣＰＵ１が検索結果に対応する処理を実行する時の処理効率を向上させることができる。
【００３３】
なお、上記実施の形態においては、検索結果レジスタ３−２には、検索結果として、検索比較値と合致する比較対象値が記憶されている比較対象レジスタ３−１の順番位置を示す値が設定され、その比較対象レジスタ３−１に記憶されているＣＰＵ命令を読み出し、ＣＰＵ１に提供するようにしたが、その比較対象値と対をなすＣＰＵ命令が設定されるようにしてもよい。その場合、バスコントローラ４は、検索結果レジスタ３−２に設定された命令をＣＰＵ１に提供することになる。
【００３４】
また、上記実施の形態の構成及び動作は例であって、これに限定されるものではなく、本発明の趣旨を逸脱しない範囲内において適宜変更され得ることは明らかである。
【００３５】
【発明の効果】
以上の如く、本発明に係る検索システムおよび検索方法、並びに記録媒体によれば、実行手段が、比較手段による比較結果の提供を要求したとき、読み出し手段は、要求に応じて、第３の記憶手段に記憶されている比較結果に対応する、第１の記憶手段に記憶されている比較対象データと対をなす命令を実行手段に提供し、実行手段は、読み出し手段より提供された命令を実行するようにしたので、検索結果を分析することなく、直ちに検索結果に対応する処理を行うことができ、検索結果に対応する処理を実行するときの処理効率を向上させることができる。
【図面の簡単な説明】
【図１】本発明の検索システムの一実施の形態の構成例を示すブロック図である。
【図２】従来の検索システムの一例の構成を示すブロック図である。
【符号の説明】
１  ＣＰＵ
２  メモリ
３  検索用周辺ハードウェア
３−１  比較対象レジスタ
３−２  検索結果レジスタ
３−３  検索比較値レジスタ
４  バスコントローラ
４−１  Ｘアドレス設定レジスタ
【図１】
0003563324.tif 000002
【図２】
0003563324.tif 000003