(57)【要約】【課題】テキストレベルのメッセージ処理を行う際に、高性能に、また、より低消費電力に、これを行うことが可能なテキスト処理モジュールを提供することである。【解決手段】比較ブロック１０１、状態セレクタ１０７、現状態レジスタ１０５、次状態候補レジスタ１０６、出力生成器１０８、及び状態遷移情報テーブル１０９を有し、上記比較ブロック１０１は、コード比較器１０２、入力コードレジスタ１０３、及びパターンコードレジスタ１０４により構成される。また、上述のハードウェア構造が階層化された処理モジュールを用いることにより、階層的なルールで記述されたメッセージの処理を高速化することができる。さらに、上記構造内において、比較機構と状態選択機構とを複数用意し、これらの間の対応比率を柔軟に変えられるような構成とすることで、複数のプロトコルの処理を行う場合にリソースの利用効率を高めることができる。【選択図】図２
2007129577.tif 000002
【特許請求の範囲】
【請求項１】
テキスト記述されたメッセージを解析する処理モジュールであって、
比較ブロック、状態セレクタ、現状態レジスタ、次状態候補レジスタ、出力生成器および状態遷移情報テーブルを有し、
上記比較ブロックは、コード比較器、入力コードレジスタおよびパターンコードレジスタを備え、
上記コード比較器は、２つのコードを入力として比較し、その結果を出力するものであり、
上記入力コードレジスタの値は処理モジュール外部から挿入され、上記パターンコードレジスタの値は状態遷移情報テーブル用メモリから読み込まれ、入力コードレジスタおよびパターンコードレジスタの出力はコード比較器への２つのコード入力となり、
上記状態セレクタは、２つの入力から一つを選択するものであって、その２つの入力は、現状態レジスタおよび次状態候補レジスタの出力に接続され、それら２つの入力からの選択を決定する制御信号は比較ブロックの出力結果により制御され、現状態レジスタの値は状態セレクタの出力により決定され、次状態候補レジスタの入力は状態遷移情報テーブル用メモリから読み込まれ、
上記出力生成器は、その入力が現状態レジスタの出力に接続され、その出力が処理モジュールの外部への出力へと接続されることを特徴とする処理モジュール。
【請求項２】
請求項１記載の処理モジュールにおいて、
状態遷移情報テーブル書き換え器を有し、上記書き換え器は、状態遷移情報テーブル用メモリの値を書き換えることにより処理ルールを変化させ得ることを特徴とする処理モジュール。
【請求項３】
請求項１記載の処理モジュールを複数有する複合処理モジュールであって、
上記複数の処理モジュールが縦列的に接続され、入力段に近い側の処理モジュールがメッセージ全体を処理完了する前に次段の処理モジュールが処理を開始することを特徴とする複合処理モジュール。
【請求項４】
階層的なルールに則ったテキスト記述されたメッセージを解析する処理モジュールであって、
複数のサブモジュールを有し、上記複数のサブモジュールのうち少なくとも一つのサブモジュールは請求項１または２記載の処理モジュールであって、
上記サブモジュールにおいて、第i番目のサブモジュールは、第i-1番目のモジュールが生成した出力を入力とし、第i+1番目のサブモジュールは、第i番目のモジュールが生成した出力を入力とし、
第１番目のサブモジュールには処理モジュール外部から入力が挿入され、
最も上位の階層のサブモジュールの出力は処理モジュール外部への出力とすることを特長とする処理モジュール。
【請求項５】
請求項４記載の処理モジュールを複数有する複合処理モジュールであって、
上記複数の処理モジュールが縦列的に接続され、入力段に近い側の処理モジュールがメッセージ全体を処理完了する前に次段の処理モジュールが処理を開始することを特徴とする複合処理モジュール。
【請求項６】
テキスト記述されたメッセージを解析する処理モジュールであって、
複数の比較ブロック、状態セレクタ、現状態レジスタ、複数の次状態候補レジスタ、出力生成器および複数の状態遷移情報テーブルを有し、
上記各比較ブロックは、コード比較器、入力コードレジスタおよびパターンコードレジスタを備え、
上記コード比較器は、２つのコードを入力として比較し、その結果を出力するものであり、
上記入力コードレジスタの値は処理モジュール外部から挿入され、上記パターンコードレジスタの値は上記複数の状態遷移情報テーブル用メモリから読み込まれ、入力コードレジスタおよびパターンコードレジスタの出力はコード比較器への２つのコード入力となり、
上記状態セレクタは、複数の入力から一つを選択するものであって、それら複数の入力は、現状態レジスタおよび複数の次状態候補レジスタの出力に接続され、それら複数の入力からの選択を決定する制御信号は複数の比較ブロックの出力結果により制御され、現状態レジスタの値は状態セレクタの出力により決定され、複数の次状態候補レジスタの入力は上記複数の状態遷移情報テーブル用メモリから読み込まれ、
上記出力生成器は、その入力が現状態レジスタの出力に接続され、その出力が処理モジュールの外部への出力へと接続されることを特徴とする処理モジュール。
【請求項７】
請求項６記載の処理モジュールにおいて、
上記比較ブロックおよび次状態候補レジスタの数として、状態遷移情報テーブルにより作成される状態遷移図における各状態からの遷移枝数の中で最大のものを設定したことを特徴とする処理モジュール。
【請求項８】
請求項６記載の処理モジュールにおいて、
上記比較ブロックおよび次状態候補レジスタの数として、状態遷移情報テーブルにより作成される状態遷移図における各状態からの遷移分岐数の標準偏差の２倍以下に設定したことを特徴とする処理モジュール。
【請求項９】
請求項６記載の処理モジュールを複数有する複合処理モジュールであって、
上記複数の処理モジュールが縦列的に接続され、入力段に近い側の処理モジュールがメッセージ全体を処理完了する前に次段の処理モジュールが処理を開始することを特徴とする複合処理モジュール。
【請求項１０】
テキスト記述されたメッセージを解析する処理モジュールであって、
複数の状態選択/出力生成ブロック、複数の比較ブロック、接続切替器、複数の状態遷移情報テーブルを有し、
上記複数の状態選択/出力生成ブロックの各々は、状態セレクタ、現状態レジスタ、出力生成器より構成され、
上記複数の比較ブロックの各々は、コード比較器、入力コードレジスタ、パターンコードレジスタより構成され、
上記接続切替器は、複数の入力と複数の出力との間の接続関係を変化させるものであり、
上記複数の比較ブロックの出力と上記複数の状態選択/出力生成ブロックの入力とは上記接続切替器を介して変更可能な形で接続され得ることを特徴とする処理モジュール。
【請求項１１】
請求項１０記載の処理モジュールを複数有する複合処理モジュールであって、
上記複数の処理モジュールが縦列的に接続され、入力段に近い側の処理モジュールがメッセージ全体を処理完了する前に次段の処理モジュールが処理を開始することを特徴とする複合処理モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、有線・無線の手段によりネットワーク接続される機器におけるテキスト処理技術に関するもので、マイクロプロセッサ、マイクロコントローラ、信号処理プロセッサ、ASIC（application specific integrated circuit），FPGA（field programmable gate array）、及び、それらを搭載した基板モジュール等のテキスト処理モジュールに係り，特にネットワーク接続されたコンピュータ群において用いられるテキスト記述されたメッセージを処理するのに適したテキスト処理モジュールに関する。
【背景技術】
【０００２】
昨今、有線・無線の手段によりインターネットや構内LAN等のネットワークに接続される機器は、テキストレベルのプロトコルを用いたメッセージの処理を伴うものが多数存在する。例えば、HTTP(hypertext transfer protocol)，XML（extensible markup language），SOAP(simple object access protocol)といった規格は，いずれもがテキスト記述されたメッセージの記述ルールを与えるものであり、これらの処理とは、テキストレベルの処理を行うものである。また、これら以外にも、多数のテキスト記述されたプロトコルに則ったメッセージ、ドキュメント、命令記述セットなどが存在する。なお，本発明に係る技術において、テキストとは、いわゆるバイナリなどと呼ばれる２値データ形式やあるいはその拡張版である多値データ形式と異なり、人間が通常用いている言語の要素文字であるアルファベット、ひらがな、カタカナ、漢字等がコード化されたもの、あるいはそれら複数が組み合わさって構成されるトークンをコード化したものを意味する。【０００３】
さて、このようなネットワークに接続される機器におけるテキストレベルの処理に関して、それを実現するための手段は、従来から各種の企業内システムに配置されるサーバやメインフレームといったコンピュータ上にソフトウェアとして実装されることが広く行われている。また、このようなサーバやメインフレーム上で動作するテキスト処理の技術として、汎用的なコンピュータ上で動作させるためのソフトウェア処理が知られており、そのアルゴリズムが例えば非特許文献１及び非特許文献２参照が開示されている。【０００４】
また、上述のような従来の汎用的なマイクロプロセッサによるソフトウェアで処理を行う場合において、その汎用的なコンピュータとしては、所謂RISC(reduced instruction set computer)型コンピュータと呼ばれるものが広く用いられている。すなわち，従来の汎用プロセッサで処理を行う場合、図１に示すように、プログラムカウンタ３０１、命令メモリ３０２、命令デコーダ３０４、演算器３０６、データメモリ３０８、及びレジスタ３０３、３０５、３０７、３０９を有する構造のコンピュータを用いてテキスト処理を行う。さて、このような場合に，任意のプログラムに対する処理は一連の基本的な処理を繰り返すことによってなされる。すなわち，一連の基本的な処理とは、
１）メモリからの命令の読み出し
２）命令の種類を解析した上で各処理ブロックの動作モードを決定
３）演算の実行
４）メモリへの結果を書き戻し
に相当する。【０００５】
以上のような４つの基本的な処理は、それぞれ、
１）フェッチ
２）デコード
３）演算実行
４）ライトバック
と呼ばれる。このような汎用コンピュータの構造とそこでの基本的な処理については、非特許文献３により詳細に述べられている。【０００６】
上述のような一連の基本的な処理は、任意のプログラム（処理）に対しても、一連の基本的な処理を複数回実行することで、プログラムの処理全体を必ず実行することができるという特徴がある。なお、このような任意のプログラムを一連の基本的な処理の繰り返しへと対応させるために、所謂コンパイラといったソフトウェアが用いられることが多い。本発明が対象とするようなテキストレベルのメッセージの処理に対しても、その処理を行うプログラムを作成し，これをコンパイラにより一連の基本的な処理の繰り返しへと対応させることが可能である。
【非特許文献１】S. Wu and U. Manber, 貼ochA fast algorithm for multi-pattern searching,能och Technical Report TR-94-17, Department of Computer Science, University of Arizona, 1994.
【非特許文献２】A. V. Aho and M. J. Corasick, 貼ochEfficient string matching: an aid to bibliographic search,能och Communications of the ACM 18, pp. 333-340, 1975.
【非特許文献３】John L. Hennessy and David A. Patterson, "コンピュータの構成と設計"，日経BP社，1996.
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前述したように、従来のテキストレベルの処理は，サーバやメインフレームといった汎用コンピュータ上でソフトウェアとして処理されることが一般的である。しかしながら，このような汎用コンピュータ上におけるソフトウェアとしてのテキスト処理は、それが利用される場所や機会によっては、必ずしも高い性能、あるいは低い消費電力、あるいは小さい物理的サイズの要望を十分満たし得るものではなかった。【０００８】
例えば、Webサービスと呼ばれる技術がある。これは，先に述べたようなHTTP，XML，SOAPといったプロトコルに則ったテキストレベルのメッセージを使って、様々なサービスを提供する複数のコンピュータ間で連携をとる技術である。この技術を、旅行サービスを提供するといった場合に利用すると、宿泊予約や航空券予約といった複数のサービスの連携をとるといったことが可能となる。このような場合に、各サービスが完了するまでの時間を考えると、宿泊の予約や航空券の予約といったサービスは比較的長い時間のうちに完了すれば問題がない。すなわち、仮に、個別のサービスが数分といった時間で完了し、旅行サービス全体で１時間ないし数時間といったような時間で完了したとしても特別に大きな問題が生じるものではない。【０００９】
一方で、上述のWebサービスを用いて産業プラント内のある設備の温度を比較的短い周期で取得しようとした場合を考える。例えば1秒間に10回の温度取得が必要であった場合に、このようなテキストレベルのメッセージの処理に許される時間は相当に短い時間となる。上述の旅行サービスの場合では問題とはならなかったが、このような場合には、テキストレベルのメッセージの処理を従来よりも著しく短い時間で完了させるために、機器は高性能であることが要求される。なお，ここでの性能とは、主に、単位時間あたりの処理能力であるスループットと、入力が到着してから最初の応答を返すまでのレイテンシの２つを考慮するものである。【００１０】
さらに、別の問題として、テキストレベルのメッセージの処理を行う機器の物理的サイズの問題が挙げられる。上述の旅行サービスの場合には、サーバやメインフレームを屋内に配置するといったことが一般的に広く行われており、このことに特段に大きな問題はなかった。しかし、産業プラント内で用いられるような機器では、プラント内部の狭い空間に多数の温度取得モジュールといったものを配置する必要が生じる。このような場合に、テキストレベルのプロトコルまたメッセージの処理を行う機器の物理的サイズは、先の旅行サービスの場合に用いられるサーバやメインフレームよりも相当に小さいサイズであることが要求される。【００１１】
さらに、別の問題として，消費電力の問題が挙げられる。上述の温度取得を行うといった機器では、屋外に配置されるようなケースも多く、この場合、バッテリで動作させる必要があるといった場合も多い。バッテリ動作させる場合には、機器に対する充電やバッテリ交換の時間間隔はできるだけ長くすることが望ましい。従って、処理で消費される電力が可能な限り小さくすることが要求される。また、携帯型の情報・娯楽機器（各種の情報を閲覧、取得、操作するソフトを動作させるものやオーディオやビデオの再生・録音を行うもの）もバッテリ動作するものが多く存在するが、これらにおいてもテキストレベルのメッセージの処理を行う場合には、同様の低消費電力性が要求される。機器が低消費電力であることは、その機器全体に対して相対的に小さいサイズのバッテリを搭載することを可能とし、また放熱装置を不要とするあるいは小さくすることが可能となるといった理由により、先に述べた機器の物理的サイズを小さくすることにも関係するものである。【００１２】
さらに、別の問題として、テキストレベルのメッセージのためのプロトコルが与える階層的なルールの規定に対する処理方法の問題が挙げられる。すなわち、各種のプロトコルのルールに沿ったテキストは、一般的に予約語と呼ばれるキーワード、およびキーワード以外の文字列（以下、非キーワードと呼ぶ）との組み合わせで表記される。ひとつながりの文字列は、キーワードおよび非キーワードに対応し、これらが単一または複数組として一つの構文要素となり、これら構文要素間の並びの関係である構文ルールを規定する。また、構文要素は複数がまとまってさらに別の構文要素となり得る。すなわち、このような構文ルールは階層的な関係を持ち得るものである。なお、以下においては、キーワードに相当する記号および非キーワードに相当する記号は最下層（第1階層）のトークンと呼び、また各階層の構文要素に対応する記号はその階層（例えば第i階層）のトークンと呼ぶものとする。このような階層的な構文ルールを有するプロトコルに則ったメッセージに対する処理方法において、やはり高性能で、かつ低消費電力でこれを行う方法は知られていなかった。【００１３】
上記において、サーバやメインフレーム等を用いてテキストレベルのメッセージ処理を行う場合についての問題点を示した。そのような例として、産業プラントにおける温度測定の例を示したものであるが、このような例は、一般に産業プラントの分野などに留まらず、サーバやメインフレームよりもコスト制約、電力制約、物理サイズ制約といった各種制約がより厳しいコンピュータを用いる産業分野（例えば，自動車内制御ユニット，家電機器，環境計測機器，ロボット制御機器等）ではいずれも問題となりうるものである。また、これらの多様な分野にまたがって機器がメッセージ交換しながら統合処理を行うような場合にも問題となりうるものである。【００１４】
本発明の一の形態は，このような多様な分野で利用される機器におけるテキストレベルのメッセージ等の処理を行う際に、高性能に、また、より小さな物理的サイズで、また、より低消費電力にて、これを行うことを可能とする処理モジュールを提供するものである．【００１５】
また、本発明の他の形態は、階層的な構文ルールを有するプロトコルに基づくメッセージ処理に対して、高性能で、かつ低消費電力でこれを行う処理モジュールを提供するものである。【００１６】
また、本発明の更に他の形態は、より少ないリソースでテキストレベルのプロトコルやメッセージ等の処理を行うことが可能な処理モジュールを提供するものである。
【課題を解決するための手段】
【００１７】
本発明に係る第１の処理モジュールは、テキスト記述されたメッセージを解析する処理モジュールであって、比較ブロック、状態セレクタ、現状態レジスタ、次状態候補レジスタ、出力生成器および状態遷移情報テーブルを有し、上記比較ブロックは、コード比較器、入力コードレジスタおよびパターンコードレジスタを備え、上記コード比較器は、２つのコードを入力として比較し、その結果を出力するものであり、上記入力コードレジスタの値は処理モジュール外部から挿入され、上記パターンコードレジスタの値は状態遷移情報テーブル用メモリから読み込まれ、入力コードレジスタおよびパターンコードレジスタの出力はコード比較器への２つのコード入力となり、上記状態セレクタは、２つの入力から一つを選択するものであって、その２つの入力は、現状態レジスタおよび次状態候補レジスタの出力に接続され、それら２つの入力からの選択を決定する制御信号は比較ブロックの出力結果により制御され、現状態レジスタの値は状態セレクタの出力により決定され、次状態候補レジスタの入力は状態遷移情報テーブル用メモリから読み込まれ、上記出力生成器は、その入力が現状態レジスタの出力に接続され、その出力が処理モジュールの外部への出力へと接続される構成となる。【００１８】
また、本発明に係る第２の処理モジュールは、階層的なルールに則ったテキスト記述されたメッセージを解析する処理モジュールであって、複数のサブモジュールを有し、上記複数のサブモジュールのうち少なくとも一つのサブモジュールは前述した第１の処理モジュールであって、上記サブモジュールにおいて、第i番目のサブモジュールは、第i-1番目のモジュールが生成した出力を入力とし、第i+1番目のサブモジュールは、第i番目のモジュールが生成した出力を入力とし、第１番目のサブモジュールには処理モジュール外部から入力が挿入され、最も上位の階層のサブモジュールの出力は処理モジュール外部への出力とする構成となる。【００１９】
更に、本発明に係る第３の処理モジュールは、より少ないリソースでテキストレベルのプロトコルやメッセージ等の処理を行うために、前述した第１の処理モジュールにおいて、状態遷移情報テーブル書き換え器を有し、上記書き換え器が、状態遷移情報テーブル用メモリの値を書き換えることにより処理モジュールの処理ルールを変化させ得る構成となる。【００２０】
また、本発明に係る第４の処理モジュールは、より高速にメッセージの処理を可能にするため、テキスト記述されたメッセージを解析する処理モジュールであって、複数の比較ブロック、状態セレクタ、現状態レジスタ、複数の次状態候補レジスタ、出力生成器および複数の状態遷移情報テーブルを有し、上記各比較ブロックは、コード比較器、入力コードレジスタおよびパターンコードレジスタを備え、上記コード比較器は、２つのコードを入力として比較し、その結果を出力するものであり、上記入力コードレジスタの値は処理モジュール外部から挿入され、上記パターンコードレジスタの値は上記複数の状態遷移情報テーブル用メモリから読み込まれ、入力コードレジスタおよびパターンコードレジスタの出力はコード比較器への２つのコード入力となり、上記状態セレクタは、複数の入力から一つを選択するものであって、それら複数の入力は、現状態レジスタおよび複数の次状態候補レジスタの出力に接続され、それら複数の入力からの選択を決定する制御信号は複数の比較ブロックの出力結果により制御され、現状態レジスタの値は状態セレクタの出力により決定され、複数の次状態候補レジスタの入力は上記複数の状態遷移情報テーブル用メモリから読み込まれ、上記出力生成器は、その入力が現状態レジスタの出力に接続され、その出力が処理モジュールの外部への出力へと接続される構成となる。【００２１】
また、本発明に係る第５の処理モジュールは、前述した第４の処理モジュールにおいて、上記比較ブロックおよび次状態候補レジスタの数として、状態遷移情報テーブルにより作成される状態遷移図における各状態からの遷移枝数の中で最大のものを設定した構成となる。【００２２】
更に、本発明に係る第６の処理モジュールは、前述した第４の処理モジュールにおいて、上記比較ブロックおよび次状態候補レジスタの数として、状態遷移情報テーブルにより作成される状態遷移図における各状態からの遷移分岐数の標準偏差の２倍以下に設定した構成となる。【００２３】
また、本発明に係る第７の処理モジュールは、テキスト記述されたメッセージを解析する処理モジュールであって、複数の状態選択/出力生成ブロック、複数の比較ブロック、接続切替器、複数の状態遷移情報テーブルを有し、上記複数の状態選択/出力生成ブロックの各々は、状態セレクタ、現状態レジスタ、出力生成器より構成され、上記複数の比較ブロックの各々は、コード比較器、入力コードレジスタ、パターンコードレジスタより構成され、上記接続切替器は、複数の入力と複数の出力との間の接続関係を変化させるものであり、上記複数の比較ブロックの出力と上記複数の状態選択/出力生成ブロックの入力とは上記接続切替器を介して変更可能な形で接続され得る構成となる。【００２４】
更に、本発明に係る第８の処理モジュールは、前述した第１の処理モジュール乃至第７の処理モジュールを複数有する複合処理モジュールであって、上記複数の処理モジュールが縦列的に接続され、入力段に近い側の処理モジュールがメッセージ全体を処理完了する前に次段の処理モジュールが処理を開始する構成となる。
【発明の効果】
【００２５】
本発明に係る処理モジュールによれば、テキストレベルのメッセージ等の処理を行う際に、高性能に、また、低消費電力に、これを行うことが可能となる。また、本発明に係る処理モジュールによれば、より少ないリソースで複数の種類の異なるルールに則ったテキストレベルのメッセージの処理を行うことが可能となる。
【図面の簡単な説明】
【００２６】
【図１】図１は、従来の処理システムの構成例を示すブロック図である。
【図２】図２は、本発明の第１の実施の形態に係る処理モジュールの構成を示すブロック図である。
【図３】図３は、図２に示す処理モジュールにおける処理の流れを示すフローチャートである。
【図４】図４は、入力文字に応じて与えられる条件に従ってなされる状態の遷移を示す状態遷移図である。
【図５】図５は、図４に示す状態遷移図に対応した状態遷移情報を表す状態遷移情報テーブルである。
【図６】図６は、本発明の第２の実施の形態に係る処理モジュールの構成を示すブロック図である。
【図７】図７は、本発明の第３の実施の形態に係る処理モジュールの構成を示すブロック図である。
【図８】図８は、本発明の第４の実施の形態に係る処理モジュールの構成を示すブロック図である。
【図９】図９は、状態遷移情報テーブルにおける分岐数のばらつきの一例を示す図である。
【図１０】図１０は、本発明の第７の実施の形態に係る処理モジュールの構成を示すブロック図である。
【図１１】図１１は、本発明の第８の実施の形態に係る処理モジュールの構成を示すブロック図である。
【図１２】図１２は、処理モジュールにて処理され得るキーワードと構文について示した図である。
【図１３】図１３は、本発明の各実施の形態に係る処理モジュールを汎用のマイクロプロセッサとともに用いたシステムを示すブロック図である。
【図１４】図１４は、汎用のマイクロプロセッサと通信モジュールとの間に処理モジュールを配置したシステムを示すブロック図である。
【図１５】図１５は、本発明の第３の実施の形態に係る処理モジュールの適用例を示すブロック図である。
【図１６】図１６は、本発明の第３の実施の形態に係る処理モジュールの他の適用例を示すブロック図である。
【図１７】図１７は、本発明の第７の実施の形態に係る処理モジュールの更に具体的な構成例を示すブロック図である。
【図１８】図１８は、第１乃至第７の実施の形態に係る処理モジュールのいずれかを３つ縦列接続して用いたシステムを示すブロック図（ａ）である。
【図１９】図１９は、図１８に示すシステムにおける各処理モジュールでの処理タイミングを示す図である。
【符号の説明】
【００２７】
１００、４００、５００、６００、８００、１４００、１６００、１６０１、１６０２
処理モジュール
１０１、６０１、６０２、８０３、８０４、８０５、１４０３、１４０４、１４０５
比較ブロック
１０２  コード比較器
１０３  入力コードレジスタ
１０４  パターンコードレジスタ
１０５  現状態レジスタ
１０６、６０３、６０４  次状態候補レジスタ
１０７  状態セレクタ
１０８  出力生成器
１０９、８０７，１６０３、１６０４  状態遷移情報テーブル（メモリ）
５０１、１６０５  テーブル書き換え器
５０２、１６０６  データ用メモリ
８０１、８０２、１４０１、１４０２  状態選択/出力生成ブロック
８０８、１４０６  接続切替器
１３０１  ネットワークモジュール
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態について、図面を用いて説明する。【００２９】
本発明の第１の実施の形態に係る処理モジュールは、図２に示すように構成される。【００３０】
図２において、この処理モジュール１００は、比較ブロック１０１、現状態レジスタ１０５、次状態候補レジスタ１０６、状態セレクタ１０７、出力生成器１０８、及び状態遷移情報テーブル１０９により構成される。また、上記比較ブロック１０１は、コード比較器１０２、入力コードレジスタ１０３、及びパターンコードレジスタ１０４により構成さ  れる。【００３１】
そもそも、従来の技術の項で示したようなRISC型マイクロプロセッサを用いたサーバやメインフレームに代表される汎用的なコンピュータ上で、ソフトウェアとして処理する方法は、全てのプログラムに対して同様の動作をするために、必ずしも個別のプログラム（処理）に対して最適な方法であるとは言えない。特に，以下に示す文献は、このような汎用のマイクロプロセッサ上の処理の形態は、本発明が対象とするネットワーク接続される処理ノードにおけるテキスト処理に対しても、多大な計算時間を要するといった例を示している。
佐々木靖彦，村山隆彦，多田好克，“分野横断アプリケーション統合に向けたWebサービスのプリミティブ化に関する実装と考察”，情報処理学会，デジタル・ドキュメント研究会，研究報告  DD53-3，2006．【００３２】
図２に示すように構成される処理モジュール１００は、ここでの対象となるネットワーク接続される処理ノードにおけるテキスト処理に対しては、従来のものよりもより高い性能、低い電力で実行し得るものである。この処理モジュール１００の動作は、図３に示す手順に従ってなされる。【００３３】
図３において、まず、全てのレジスタ１０３、１０４、１０５、１０６や状態遷移情報テーブル１０９は規定の初期状態にセットされ（Ｓ１）、その後、以下のように動作が進む。処理モジュール１００に入力された文字は、第１のサイクルで文字比較ブロック１０１内にある入力コードレジスタ１０３に格納される（Ｓ２）。これと並行して、状態遷移情報テーブル１０９からパターンコードレジスタ１０４に比較候補の文字群の中から１つが選ばれて格納される（Ｓ３）。次に第２のサイクルで上記２つのレジスタに格納されている文字がコード比較器１０２を用いて比較され、同一か否かの判定が行われる（Ｓ４）。その結果は状態セレクタ１０７の制御入力となり、状態セレクタ１０７に入力される２つの入力のうち一つを選択する。比較結果が一致と判断されれば、２つの入力のうち次状態候補レジスタ１０６に格納されている次状態の符号データが選択され、一方、比較結果が不一致と判断されれば、２つの入力のうち現状態レジスタ１０５に格納されている現状態が選択される。そして、選択された入力は現状態レジスタ１０５に格納される（Ｓ５、Ｓ３）。さらに、第3のサイクルで、上記で選択された結果が格納された現状態レジスタ１０５の値が出力生成器１０８に入力され、状態遷移情報テーブル１０９のoutput欄２１５（後述する図４参照）が値を有するかどうかが判断される（Ｓ６）。値を有する場合には，出力生成器１０８は、格納されているパターンデータをトークンとして出力する（Ｓ７）。値が存在しない場合は，出力生成器１０８は何も出力しないか、またはパターンの値が存在しないことを示す特定の符号データを出力する（Ｓ８）。なお、上記の比較結果が不一致と判断された場合（Ｓ４参照）は、次なる文字を処理モジュール１００に挿入することは行わず、かわりに比較対象のパターンとして次なる候補を状態遷移情報テーブルから読み込み、これをパターンコードレジスタに挿入する。その後の文字比較に関しては、上記に述べた手順と同等である。【００３４】
以上のような動作は、非特許文献２に示されるアルゴリズムも関係するものである。すなわち、図４に示されるように、上記の処理モジュール１００の動作は、入力文字に応じて遷移条件が与えられる状態遷移図に対応している。図５は、このような表現のために、状態遷移情報テーブル１０９用メモリ内に格納されるデータを示している。このテーブルは、idカラム２０９、current stateカラム２１０、inputカラム２１１、gotoカラム２１２、otherカラム２１３、failureカラム２１４、及びoutputカラム２１５を含んでいる．idカラム２０９の値は、今状態遷移情報テーブル２０９のどこを参照するかを示している。current stateカラム２１０の値は、図４に示される状態遷移図における現在の状態２０１を示している。inputカラム２１１の値は、現在の状態に対して遷移を行う条件となる入力文字２０３を示している。gotoカラム２１２の値は、inputカラム２１１で示される条件に一致したときに、遷移する先の状態２０２に対応するidを示している。otherカラム２１３の値は、１つの状態から遷移する候補となる複数の遷移枝を表現している。すなわち、図４に示すある状態２０１にいる時に、入力カラムに記述された値２０３以外の入力２０８が与えられた場合に、遷移する次の状態２０６の候補として、otherカラム２１３にあるidが順に読み取られる。つまり、ある状態２０１において、入力が入力カラム２１１に記述された値２０３に合致しないとき、次の状態の候補として、otherカラム２１３に記述されたidの行へと状態遷移情報テーブル２０９内を移動し、そのidにおける入力カラム２１１に記述された値２０８を調べることとなる。failureカラム２１４は、ある状態から入力一致により遷移する状態が存在しない時（otherカラム２１３に記述されるものを含めて全ての候補が存在しなくなったら）、どの状態に遷移するかを意味するidを格納している。outputカラム２１５は、ある状態に到達した時に予め規定されたパターンがその状態で表現されるときに、そのパターンを示すデータを格納している。なお、このようなテーブルの記述方法は、上記に限定されるものではなく、同等の状態遷移図を表現する情報を格納したものであれば、いかなる形式のものであってもよいことは言うまでもない。【００３５】
本発明は、引用文献２に開示される技術と関連があるものの、そのようなアルゴリズムをプログラム（ソフトウェア）の形で汎用のマイクロプロセッサ上で実行させる従来技術とは異なり、より効率的に動作することを可能とするようなハードウェア的な構造を与えるものである。前述した処理モジュール１００は、本発明が対象とする処理に対して一つの文字入力がある度に、その処理を完了することが可能となる。従って、従来の汎用プロセッサが行うような一連の基本的な処理の繰り返しへと全体処理を分解、対応させる必要もなければ、また、一連の基本的な処理自体を実行する必要もない。従って、著しく少ないサイクルで全体の処理を完了させることが可能となる。また、従来のようにプログラムを格納するようなメモリも不要であり、処理する対象であるテキストデータを保持するメモリも不要である。従って、処理対象のプログラムやテキストデータを予めメモリに読み込むといったことも不要であることは言うまでもない。したがって、相対的に大きいとして知られているメモリアクセスに関わる遅延や消費電力といった問題も存在しない。さらに、汎用的なマイクロプロセッサ上でプログラムの実行を行う場合、あらかじめメモリ上に所定の領域を確保するための準備処理等による処理時間の増加があるのが一般的であるが、前述した処理モジュール１００を用いた方法では、このような準備時間といったものも削減される．以上のような複数の理由により、処理モジュール１００は、従来の方法よりも高速、低電力に、かつ少ないリソースで対象処理を実行することが可能となる。【００３６】
なお，上記において、第1のサイクルで入力コードレジスタ１０３及びパターンコードレジスタ１０４への文字の格納が行われ、第２サイクルでこれら２つの文字が比較され状態選択が行われ、第3のサイクルで出力生成器１０８がoutputパターンを調べた上で出力を生成する、とあるが、これは、ある注目する入力文字に対しての流れを示したものである。これらの処理のそれぞれが異なる文字に対しては同時並行的に動作してもよいことは言うまでもない。すなわち、あるサイクルにおいてある入力文字に対応した出力生成動作が行われ、同じサイクルで次の入力文字に対応する文字比較と状態選択が行われ、同じサイクルでさらに次の入力文字に対応した入力コードレジスタ１０３とパターンコードレジスタ１０４への挿入が行われるといったことが可能である。このようにすれば、同一のサイクルに多くの処理モジュール内ブロックを同時に動作させることが可能であり、１つの入力文字に対する処理を完了させるまで、次の文字を入力することができないといった問題を防止できる。また，単位時間あたりの処理量も増加する。【００３７】
また，物理的なサイズに関しても，前述した処理ユニット１００は従来の方式を用いた場合より相当に小さくすることが可能となる。まず、半導体のチップ上の物理的なサイズに関して見てみると、汎用のマイクロプロセッサは汎用的な処理を行えるようにする必要があるため，図１で示したような構造における命令デコーダ３０４や演算器３０６などは一般に大規模な回路となってしまう。また，レジスタの数に関しても、現在では数十以上の数を有するものが一般的であり、やはり大規模な回路となってしまう。さらに、命令メモリ３０２やデータメモリ３０８なども非常に大きなサイズのメモリであることが一般的である。一方，処理モジュール１００は、文字比較ブロック１０１内のコード比較器１０２は、ASCII文字の場合は８bitのバイナリ比較器で済み、また2バイト文字の場合でも１６bitのバイナリ比較器で済むため、回路規模も非常に小さい。さらに、汎用のマイクロプロセッサのように非常に多数の命令をデコードするといったことは不要であるため、大規模なデコード回路も不要である。また、我々の解析の結果では、状態遷移情報テーブル１０９も命令メモリ３０２やデータメモリ３０８と比較すると相当に小さいものとなる。以上のような理由により，本発明の第一の実施の形態に係る処理モジュール１００は、従来の方式より物理的に小さいものとなり得る。【００３８】
さらに、機器としての物理的なサイズを見てみる。本発明の第１の実施の形態に係る処理モジュール１００は、その回路規模が小さいため、必要とされるゲート数も少なく、消費電力も小さくなる。このため、電力供給のためのバッテリを小さくすることが可能であるといった理由や、放熱のための大きな装置が不要になるといった理由により、機器全体の物理的サイズを小さくすることが可能となる。【００３９】
次に、本発明の第２の実施の形態に係る処理モジュールについて説明する。【００４０】
本発明の第２の実施の形態に係る処理モジュールは、図６に示すように構成される。【００４１】
図６において、この処理モジュール４００は、複数のサブモジュール４０１、４０２、４０３、４０４、４０５を有している。これらサブモジュールの入力は別のサブモジュールの出力に接続されるように接続される。図中に示されている複数のサブモジュールは、一般的には２つ以上のいかなる個数（以下では，N個とする）のサブモジュールであってもよいことは言うまでもない。そして、第１番目のサブモジュール４０１の入力は別のサブモジュールの出力ではなく処理モジュール４００全体に対する入力が接続され、第N番目のサブモジュール４０５の出力は別のサブモジュールの入力ではなく、処理モジュール４００全体の出力へと接続される。各サブモジュール４０１〜４０５として、前述した処理モジュール１００（図２参照）が用いられる。即ち、各サブモジュール４０１〜４０５は、比較ブロック１０１（コード比較器１０２、入力コードレジスタ１０３及びパターンコードレジスタ１０４を含む）、現状態レジスタ１０５、次状態候補レジスタ１０６、状態セレクタ１０７、出力生成器１０８、及び状態遷移情報テーブル１０９により構成される。【００４２】
このような構成の処理モジュール４００は、以下のように動作する。すなわち、第i番目のサブモジュール４０３は、第i-1番目のモジュールが生成したトークン（第i-1番目の階層の構文におけるトークン）を入力として受け取り、予め登録された第i番目の階層の構文におけるトークン列と合致するかどうかを調べる処理を行う。ここで、トークンとは、先に述べたように第1番目の階層においては、区切り文字を含まない一続きの文字列を意味する。そして、一般に本構造の第2番目以上の階層では、より下位の階層のトークンの一続きであるトークン列（構文要素）を意味する。このようなトークンに入力が合致すれば、第i番目の階層の構文における出力としてトークンを生成する。このような構造を用いると、前述したようにメッセージの記述ルールであるプロトコルを規定するトークンおよび構文のルールが複数の階層に及んでも、各サブモジュールが複数の階層のそれぞれのルールを処理することにより、全体で複数階層のルールに準じたテキストプロトコルまたはメッセージを処理することが可能となる。【００４３】
次に、本発明の第３の実施の形態に係る処理モジュールについて説明する。この処理モジュールは、より少ないリソースでテキストレベルのプロトコルやメッセージ等の処理を行うことができる。【００４４】
本発明の第３の実施の形態に係る処理モジュールは、図７に示すように構成される。【００４５】
図７において、この処理モジュール５００は、前述した第１の実施の形態に係る処理モジュール１００（図２参照）の構成に加えて、さらに状態遷移情報テーブル１０９の内容を書き換えるテーブル書き換え器５０１を備えている。異なるプロトコルあるいはメッセージのルールに準じたメッセージを処理する場合には、テーブル書き換え器５０１によって、状態遷移情報テーブル１０９のデータ用のメモリ５０２から異なるデータを状態遷移情報テーブル１０９に格納することにより、同一の処理モジュール５００を異なる時間に異なるルールに従ったメッセージを処理するモジュールとして動作させることが可能となる。【００４６】
更に、本発明の第４の実施の形態に係る処理モジュールについて説明する。この処理モジュールは、より高速に処理を行なうことができる。【００４７】
本発明の第４の実施の形態に係る処理モジュールは、図８に示すように構成される。【００４８】
図８において、この処理モジュール６００は、前述した第１の実施の形態に係る処理モジュール１００（図２参照）と異なり、比較ブロック６０１、６０２および次状態候補レジスタ６０３、６０４がそれぞれ複数有する構造となっている。なお、比較ブロックおよび次状態候補レジスタをまとめて比較ブロックセットと呼ぶことにすれば、図８において比較ブロックセットの数は２つであるが、一般に２つ以上の複数のいずれでも構わないことは言うまでもない。セレクタ１０７は複数の入力から一つを選択するようなものに拡張される。このような構造によれば、ある入力に対して、比較するパターン文字の候補が複数存在した場合に、第１の実施の形態に係る処理モジュール１００のように一つずつ逐次比較を行うかわりに、複数の候補に対して一斉に比較を行うことが可能となる。これは、図４における１つの状態からの遷移できる可能性のある枝が複数存在する場合に、これら複数の枝に対応した比較条件が成立するか否かを一斉に判定することを可能とする。したがって、第一の実施の形態に係る処理モジュール１００に比較して比較ブロックセットの個数をより多く必要とするものの、処理時間に関しては短い時間で処理を完了させることが可能となる。【００４９】
また、このような比較ブロックセットの数としていかなる数を設定するかであるが、本発明の第５の実施の形態に係る処理モジュールでは、図４における各状態からの遷移枝数の中で最大のものに設定される。これにより、いずれの状態からの遷移においても、わずか１回の比較動作により、状態セレクタ１０７の制御入力を決定することが可能となる。しかるに，これ以上の数の比較ブロックを処理モジュールに含めないようにすることで，より小規模な回路で高速に動作することが可能となる．【００５０】
更に、本発明の第６の実施の形態に係る処理モジュールは、前述した第４の実施の形態に係る処理モジュール６００（図８参照）における比較ブロックの数として、上述したような各状態からの遷移枝数の中で最大のものを設定するかわりに（第５の実施の形態参照）、遷移分岐数の標準偏差の２倍以下に設定するような構成を与える。我々は、別途遷移分岐数の平均値と標準偏差に関して、どの程度になるかの検討を行った。図９は、このような遷移分岐数に関する標準偏差を示している。この結果によれば、遷移分岐数の平均値と標準偏差は、いずれも比較的小さい数となることが判明した。したがって、上述のような各状態からの遷移枝数の中で最大のものを設定することを行わず、遷移分岐数の標準偏差の２倍以下に設定することで、大多数の状態からの遷移条件の判定を１回で終了させることが可能となり、結果として遷移枝数の中で最大のものを設定した場合よりわずかに遅い時間で処理を完了させることが可能となる。しかしながら、本構造では、比較ブロックセットの数は、遷移枝数の中で最大のものよりも相当に小さいものであるから、必要とする回路規模は相当に小さくすることが可能となる。【００５１】
次に、本発明の第７の実施の形態に係る処理モジュールについて説明する。【００５２】
本発明の第７の実施の形態に係る処理モジュールは、図１０に示すように構成される。この処理モジュールは、前述した第４及び第５の実施の形態に係る処理モジュールと類似の構成を有しているが、具体的には次のように構成される。【００５３】
図１０において、この処理モジュール８００は、複数の状態選択/出力生成ブロック８０１、８０２、複数の比較ブロック８０３、８０４、８０５、複数の状態遷移情報テーブル８０６、８０７を有しているが、どの比較ブロックの出力がどの状態選択/出力生成ブロックの入力へと接続されるかが固定されていない。この第７の実施の形態においては、それらの入出力は固定的に接続されるかわりに、接続切替器８０８を介して変更可能な形で接続される。図１０では、特別に示していないが、このような接続切替器８０８を介して、複数の状態遷移情報テーブル８０６、８０７がどの比較ブロック８０３、８０４、８０５や状態選択/出力生成ブロック８０１、８０２と接続されるかといったことも変更可能な形で接続される。なお、上記の接続とは、必ずしも単一の物理的な線による接続に限らず、複数の物理的な線（バス）による接続でもあり得るものである。【００５４】
本発明の第７の実施の形態に係る処理モジュール８００の利点は以下のようなものである。すなわち、対象とするテキストレベルの処理がどのようなプロトコルを処理するものであるかによって、最適な比較ブロックの個数は変化し得る。このことは、本発明の第５の実施の形態において述べたとおりである。あらかじめ、本発明の第6の実施の形態に係る処理モジュールを作成しておき、処理する対象のテキストレベルのプロトコルに応じて、状態選択/出力生成ブロック８０１、８０２に対する比較ブロックの割り当て数を調整することにより、同一のハードウェアモジュールを様々なプロトコルに利用可能でかつよりリソースを効率的に用いて処理することが可能となる。また、異なる時間において接続切替器８０８の接続関係を変更することにより、時間的に処理するプロトコルが変更するような場合にも、本処理モジュール８００を処理対象のプロトコルに最適化されたものとして変化させることが可能となる。【００５５】
更に、本発明の第８の実施の形態に係る処理モジュールについて説明する。【００５６】
本発明の第８の実施の形態に係る処理モジュールは、図１１に示すように構成される。この処理モジュールは、機器の動作を停止させることなく、異なるプロトコルを処理することができる。【００５７】
図１１において、この処理モジュール１６００は、第１の実施の形態に係る処理モジュール１００に相当する処理モジュール１６０１、１６０２を複数有し、またこれら複数の処理モジュール１６０１、１６０２内部に有するそれぞれの状態遷移情報テーブル用のメモリ１６０３、１６０４の双方に対して書き換え処理を行なう書き換え器１６０５を有する。この書き換え器１６０５は、処理モジュール１６００外部のメモリ１６０６からデータを読み込み、状態遷移情報テーブル１６０３、１６０４にデータを書き込む。このような書き込みの際に、いずれか一つの処理モジュール（例えば１６０１）が動作中に別の処理モジュール（例えば１６０２）の状態遷移情報テーブル１６０４を書き換え、書き換えが完了した時点で動作する処理モジュールを切り替える（例えば１６０１から１６０２へ切り替える）。これにより，処理モジュール１６００としてみた場合に、動作が停止している期間を見かけ上なくすことにより不停止型の処理モジュールを構成するといったことも可能となる。【００５８】
図１２は、前述した各処理モジュールにて処理され得るキーワードと構文について示したものである。この例では、HTTPに則ったメッセージの第1行目に記述されるリクエストメッセージの一つとして知られている構文を解析する場合を示している。例えば、そのようなメッセージの第１行目に"POST http://abc.org/sample HTTP/1.1"というテキストが書かれている場合を見てみる。同構文において、POSTに引き続く部分は、URI(Universal Resource Identifier)を表し、またそれに引き続く部分は、HTTPのバージョンを示すというようにプロトコルで決められている。そしてこれらの並びが成立すると、それはリクエストラインという構文になるものとされている。【００５９】
上記のようなテキスト文字列に対して、本発明に係る処理モジュールがどのように動作するかを以下に示す。
まず，第1階層で対象とするキーワード（予約語）は、図１２にあるように、テキスト文字のPOST，GET，OPTIONS，http://，HTTP/であり、これらは第1階層のトークンとなり、また、それら以外はNAMEとして第1階層のトークンとなる。なお、スペース文字、改行文字などは、第1階層で処理されるトークンに含める場合もあるしそうでない場合もありえ、処理モジュールの実装に依存して変化し得るものである。第1階層で処理されたトークンは、それぞれに対応する符号コードとして出力され、第2階層に渡される。さらに、第2階層では、http://に続いてNAMEトークンが来る場合にURIトークンが、またHTTP/に続いてNAMEトークンが来る場合にはVERSIONトークンが、またそれら以外の場合には第1階層からのトークンがそのまま、それぞれ対応するコードとして出力され、第３階層に渡される。さらに第3の階層では、POSTトークンに引き続きURIトークンが、そしてそれに引き続きVERSIONトークンが来ると、リクエストラインの構文に相当するコードが出力される。【００６０】
第1階層での処理は、図２乃至５で示されるような本発明の第１の実施の形態に係る処理ユニット１００にてなされ得る。同様のモジュールが第1階層、第2階層、第3階層として３つ用意され接続されることにより、本発明の第２の実施の形態に係る処理モジュールの構成となる。以下、第1の階層の部分の動作について示すが、第2、第3の階層でも同様の動作が行われる。【００６１】
まず、図２に示す処理モジュール１００における現状態レジスタ１０５は、図４に示す状態１（図５におけるcurrent stage カラム210の値が１、idは１）に対応する値を保持している。次状態候補レジスタ１０６は、gotoのカラム２１２にあるように状態２に対応する値がセットされている。このとき、パターンコードレジスタ１０４には、状態２への遷移に対応する行のinputカラム２１１にあるように文字"P"が挿入される。今、メッセージ中のテキスト文字列の最初の文字Pが入力として、処理モジュール１００に挿入されたとき、入力コードレジスタ１０３とパターンコードレジスタ１０４に格納されている文字が一致するかどうかがコード比較器１０２により調べられる。この場合は両者が一致するため、状態セレクタ１０７により次状態として状態２が選択され、これに対応した値が、次のサイクルでの現状態レジスタ１０５の値となる。状態遷移情報テーブル１０９の参照先の位置は、idカラム２０９が2の値の部分に移動する。【００６２】
次に、次状態候補レジスタ１０６は、gotoカラム２１２にあるように状態３に対応する値がセットされる。そして、パターンコードレジスタ１０４には、状態３への遷移に対応する行のinputカラム２１１にあるように文字"O"が挿入される。メッセージ中のテキスト文字列の２番目の文字Oが入力として、処理モジュール１００に挿入されたとき、入力コードレジスタ１０３とパターンコードレジスタ１０４に格納されている文字が一致するかどうかがコード比較器１０２により調べられる。この場合、両者が一致するため、状態セレクタ１０７により次状態として状態３が選択され、これに対応した値が、次のサイクルでの現状態レジスタ１０５の値となる。状態遷移情報テーブル１０９の参照先の位置は、idカラム２０９が3の値の部分に移動する。以下，同様に動作を続ける。【００６３】
このような動作を繰り返した後、入力文字として、POSTの最後の文字であるTが挿入されたときに、現状態レジスタ１０５は状態５に到達し、出力生成器１０８はoutputカラム２１５にPOSTというトークンが存在するので、POSTトークンを出力する。以上、メッセージの最初のトークンが解析されるまでを示したが、他のキーワード（トークン）についても、同様の動作がなされる。【００６４】
図１３は、本発明の各実施の形態に係る処理モジュールを汎用のマイクロプロセッサとともに用いたシステム１０００を示している。すなわち、本発明の各実施の形態に係る処理モジュールは、汎用のマイクロプロセッサ１００１のバス１００２上に接続される多数の処理モジュール群（１００３、１００４、１００５）の一つとして接続される形態をとっている。例えば，このような場合、処理モジュール１００３は，処理モジュール群の一つである通信モジュール１００４からバス１００２を介して入力を受け取り、処理を行う。トークンや構文の処理が完了すると、その結果をバス１００２を介して汎用マイクロプロセッサ１００１に渡す。なお、このようなシステム１０００とは、プリント基板上に実装される複数のチップよりなるシステムの形態であってもよいし、また一つのチップ上にマイクロプロセッサコアや複数の処理モジュールが搭載される所謂システムオンチップの形態であってもよいことは言うまでもない。【００６５】
図１４は、図１３の場合とは異なり、汎用のマイクロプロセッサ１１０１と通信モジュール１１０３との間に処理モジュール１１０２を配置したシステム１１００を示している。このような構成は、先の例のようにバスを介して多数の処理モジュールを接続するようなシステムより軽量のシステム１１００を作る場合にふさわしいものである。図１３のように多様な処理モジュールを行うことはできないが、マイクロプロセッサ１１０１と本処理モジュール１１０２との間の接続１１０４、また，本処理モジュール１１０２と通信モジュール１１０３との間の接続１１０５には、ピアツーピアの接続を用いることが可能であり、バス接続特有の信号分岐がないためインピーダンスのミスマッチ等の問題もなく、信号反射による波形歪の問題が回避できるために物理的な信号伝送を高速に行えるといった利点が存在する。【００６６】
図１５は、本発明の第３の実施の形態に係る処理モジュール５００（図７参照）の適用例を示している。すなわち、状態遷移情報テーブル１０９の書き換えを行う場合を示しており、まず、第1の時間にはHTTPのメッセージを処理し、第2の時間にはSOAPのメッセージを処理するといった異なるプロトコルに則った２つのメッセージを時間を分けて処理するものである。同一のハードウェアモジュールを用いているために、回路規模を増大させることなく、２つの異なるプロトコルに則ったメッセージを処理することが可能となる。ここでは，２セットの状態遷移情報テーブル用のデータ１２０１、１２０２が予め外部メモリ中に用意されており、これらはテーブル書き換え器５０１を用いて順に状態遷移情報テーブル１０９へと格納されるものである。なお、このような外部メモリについては、あらかじめROMとして、あるいは既にデータを書き込んだRAMとして、処理モジュール５００の内部に含んでいてもよいことは言うまでもない。【００６７】
図１６は、本発明の第３の実施の形態に係る処理モジュール５００（図７参照）の他の適用例を示している。この例では、図１５で示したような複数のセットの状態遷移情報テーブルの書き換えを行うに際し、これをネットワークモジュール１３０１によってネットワークから注入させたデータによって行う。すなわち、予めメモリにデータを格納しておくかわりに、必要が生じた際に随時データの書き換えを行うものである。このような方法には幾つかの利点があるが、それは以下のようなものである。まず、機器を設計する際に全ての状態遷移情報を確定させる必要がないということである。機器の機能追加を時間とともに進展させたい場合等にこのようなネットワークを介したデータ挿入による状態遷移情報テーブルの書き換えを用いる。したがって、機器を作成した段階では比較的少ない状態の遷移情報をメモリに格納しておき、後からより大きな状態遷移情報を書き込むということが可能である。さらに、機器の作成段階より後になってから、初期の状態遷移情報に誤りが発見された場合には、ネットワークを介してこの情報を書き換えることにより、機器の修復が可能になる。【００６８】
図１７は、本発明の第７の実施の形態に係る処理モジュール８００（図１０参照）の更に具体的な構成例を示している。即ち、すなわち、比較ブロックセットの状態選択/出力生成ブロックへの割りあてをダイナミックに変化させるものである。この処理モジュール１４００は、２つの状態選択/出力生成ブロック（第1および第２の状態選択/出力生成ブロック１４０１、１４０２）と，３つの比較ブロックセット（第1乃至第３の比較ブロック１４０３、１４０４、１４０５）を有している。ここで、処理するテキストプロトコルは２つあるものとし、１つはプロトコルAのメッセージ処理であり、他の１つはプロトコルBのメッセージ処理であるものとする。まず、第1の時間においてはプロトコルAのメッセージ処理を実行し、第2の時間にはプロトコルBのメッセージ処理を実行する必要があるとする。このとき，プロトコルAのメッセージ処理においては、第1の状態選択/出力生成ブロック１４０１に対して２つの比較ブロックセット（第1および第２の比較ブロック１４０３、１４０４）を割り当て、第２の状態選択/出力生成ブロックに対して１つの比較ブロックセット（第３の比較ブロック１４０５）を割り当てる。プロトコルBのメッセージ処理においては、第1の状態選択/出力生成ブロックに対して１つの比較ブロックセット（第1の比較ブロック１４０３）を割り当て、第２の状態選択/出力生成ブロックに対しては２つの比較ブロックセット（第２および第３の比較ブロック１４０４、１４０５）を割り当てる。このような状態選択/出力生成ブロックと比較ブロックセットの間の割り当てに関しては、接続切替器１４０６を操作することにより行うものである。すなわち、第１の時刻においては、接続切替器１４０６の内部で実線で示されるように接続を行い、第２の時刻においては，接続切替器１４０６の内部で点線で示されるように接続を行うことでこのような割り当てが行われる。【００６９】
図１８（ａ）は、前述した第１乃至第７の実施の形態に係る処理モジュールのいずれかを３つ縦列接続して用いたシステム１５００を示している。このような縦列接続を行えば、第１の処理モジュール１５０１で処理された結果を引き続き第2の処理モジュール１５０２で処理し、また第２の処理モジュール１５０２で処理された結果を引き続き第３の処理モジュール１５０３で処理するといったことが可能となる。このような流れ作業を用いることにより、第1の処理モジュール１５０１がメッセージの全ての処理を完了するかわりに一部の処理を完了して結果を生成すれば、それを第２の処理モジュール１５０２が処理することを開始することが可能となる。これにより、単位時間あたりに処理できるメッセージの量を増加させることが可能となる。なぜなら、図１８（ｂ）に示すように、同じサイクル時間において３つの処理１５０４、１５０５、１５０６を同時並行的に処理することが可能となるからである。特に、このような同時並行性は、本発明とは異なるようないかなる処理モジュールでも縦列接続することで実現できるものではなく、本発明の処理モジュールが特別に有するテキストの文字入力の度に処理を行うことが可能となるという同期性に依っているものである。【００７０】
以上、説明したように、本発明の各実施の形態に係る処理モジュールは、テキストレベルのメッセージ等の処理を行う際に、より高性能に、また，より低消費電力に、これを行うことが可能となる。また、本発明の各実施の形態に係る処理モジュールは、より少ないリソースで複数の種類の異なるルールに則ったテキストレベルのメッセージを処理を行うことが可能となる。
【図１】
2007129577.tif 000003
【図２】
2007129577.tif 000004
【図３】
2007129577.tif 000005
【図４】
2007129577.tif 000006
【図５】
2007129577.tif 000007
【図６】
2007129577.tif 000008
【図７】
2007129577.tif 000009
【図８】
2007129577.tif 000010
【図９】
2007129577.tif 000011
【図１０】
2007129577.tif 000012
【図１１】
2007129577.tif 000013
【図１２】
2007129577.tif 000014
【図１３】
2007129577.tif 000015
【図１４】
2007129577.tif 000016
【図１５】
2007129577.tif 000017
【図１６】
2007129577.tif 000018
【図１７】
2007129577.tif 000019
【図１８】
2007129577.tif 000020
【図１９】
2007129577.tif 000021
【国際調査報告】
2007129577.tif 000022
2007129577.tif 000023
2007129577.tif 000024