WO2007129577A1 - テキスト処理モジュール - Google Patents

テキスト処理モジュール Download PDF

Info

Publication number
WO2007129577A1
WO2007129577A1 PCT/JP2007/058940 JP2007058940W WO2007129577A1 WO 2007129577 A1 WO2007129577 A1 WO 2007129577A1 JP 2007058940 W JP2007058940 W JP 2007058940W WO 2007129577 A1 WO2007129577 A1 WO 2007129577A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing module
state
processing
register
output
Prior art date
Application number
PCT/JP2007/058940
Other languages
English (en)
French (fr)
Inventor
Yasuhiko Sasaki
Takahiko Murayama
Yoshikatsu Tada
Original Assignee
The University Of Electro-Communications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by The University Of Electro-Communications filed Critical The University Of Electro-Communications
Priority to JP2008514433A priority Critical patent/JPWO2007129577A1/ja
Publication of WO2007129577A1 publication Critical patent/WO2007129577A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】テキストレベルのメッセージ処理を行う際に、高性能に、また、より低消費電力に、これを行うことが可能なテキスト処理モジュールを提供することである。 【解決手段】比較ブロック101、状態セレクタ107、現状態レジスタ105、次状態候補レジスタ106、出力生成器108、及び状態遷移情報テーブル109を有し、上記比較ブロック101は、コード比較器102、入力コードレジスタ103、及びパターンコードレジスタ104により構成される。また、上述のハードウェア構造が階層化された処理モジュールを用いることにより、階層的なルールで記述されたメッセージの処理を高速化することができる。さらに、上記構造内において、比較機構と状態選択機構とを複数用意し、これらの間の対応比率を柔軟に変えられるような構成とすることで、複数のプロトコルの処理を行う場合にリソースの利用効率を高めることができる。

Description

明 細 書
テキスト処理モジュール
技術分野
[0001] 本発明は、有線 '無線の手段によりネットワーク接続される機器におけるテキスト処 理技術に関するもので、マイクロプロセッサ、マイクロコントローラ、信号処理プロセッ サ、 ASIC (^application specinc integrated circuit) , FPGA (field programmable gate ar ray)、及び、それらを搭載した基板モジュール等のテキスト処理モジュールに係り, 特にネットワーク接続されたコンピュータ群において用いられるテキスト記述されたメ ッセージを処理するのに適したテキスト処理モジュールに関する。
背景技術
[0002] 昨今、有線 '無線の手段によりインターネットや構内 LAN等のネットワークに接続さ れる機器は、テキストレベルのプロトコルを用いたメッセージの処理を伴うものが多数 存 itする。 f列 は、 HTTP(hypertext transfer protocol), XML (extensible markup lang uage) , SOAP(simple object access protocol)といった規格は,いずれもがテキスト記 述されたメッセージの記述ルールを与えるものであり、これらの処理とは、テキストレ ベルの処理を行うものである。また、これら以外にも、多数のテキスト記述されたプロト コルに則ったメッセージ、ドキュメント、命令記述セットなどが存在する。なお,本発明 に係る技術において、テキストとは、いわゆるバイナリなどと呼ばれる 2値データ形式 やあるいはその拡張版である多値データ形式と異なり、人間が通常用いている言語 の要素文字であるアルファベット、ひらがな、カタカナ、漢字等がコード化されたもの、 あるいはそれら複数が組み合わさって構成されるトークンをコードィ匕したものを意味 する。
[0003] さて、このようなネットワークに接続される機器におけるテキストレベルの処理に関し て、それを実現するための手段は、従来力 各種の企業内システムに配置されるサ ーバゃメインフレームといったコンピュータ上にソフトウェアとして実装されることが広く 行われている。また、このようなサーバやメインフレーム上で動作するテキスト処理の 技術として、汎用的なコンピュータ上で動作させるためのソフトウェア処理が知られて おり、そのアルゴリズムが例えば非特許文献 1及び非特許文献 2参照が開示されてい る。
[0004] また、上述のような従来の汎用的なマイクロプロセッサによるソフトウェアで処理を行 う場合において、その汎用的なコンピュータとしては、所謂 RISC(reduced instruction set computer)型コンピュータと呼ばれるものが広く用いられている。すなわち,従来の 汎用プロセッサで処理を行う場合、図 1に示すように、プログラムカウンタ 301、命令メ モリ 302、命令デコーダ 304、演算器 306、データメモリ 308、及びレジスタ 303、 30 5、 307、 309を有する構造のコンピュータを用いてテキスト処理を行う。さて、このよう な場合に,任意のプログラムに対する処理は一連の基本的な処理を繰り返すことによ つてなされる。すなわち,一連の基本的な処理とは、
1)メモリからの命令の読み出し
2)命令の種類を解析した上で各処理ブロックの動作モードを決定
3)演算の実行
4)メモリへの結果を書き戻し
に相当する。
[0005] 以上のような 4つの基本的な処理は、それぞれ、
1)フェッチ
2)デコード
3)演算実行
4)ライトバック
と呼ばれる。このような汎用コンピュータの構造とそこでの基本的な処理については、 非特許文献 3により詳細に述べられている。
[0006] 上述のような一連の基本的な処理は、任意のプログラム(処理)に対しても、一連の 基本的な処理を複数回実行することで、プログラムの処理全体を必ず実行することが できるという特徴がある。なお、このような任意のプログラムを一連の基本的な処理の 繰り返しへと対応させるために、所謂コンパイラと 、つたソフトウェアが用いられること が多い。本発明が対象とするようなテキストレベルのメッセージの処理に対しても、そ の処理を行うプログラムを作成し,これをコンパイラにより一連の基本的な処理の繰り 返しへと対応させることが可能である。
非特許文献 1 : S. Wu and U. Manber,貝占 ochA fast algorithm for multi-pattern search ing.ftoch Technical Report TR— 94— 17, Department of Computer Science, Universit y of Arizona, 1994.
非特許文献 2 : A. V. Aho and M. J. Corasick,貝占 ochEfficient string matching: an aid to bibliographic search, ftoch Communications of the ACM 18, pp. 333-340, 1975. 非特許文献 3 : John L. Hennessy and David A. Patterson,〃コンピュータの構成と設 計〃, 日経 BP社, 1996.
発明の開示
発明が解決しょうとする課題
[0007] 前述したように、従来のテキストレベルの処理は,サーバやメインフレームといった 汎用コンピュータ上でソフトウェアとして処理されることが一般的である。しかしながら ,このような汎用コンピュータ上におけるソフトウェアとしてのテキスト処理は、それが 利用される場所や機会によっては、必ずしも高い性能、あるいは低い消費電力、ある いは小さ 、物理的サイズの要望を十分満たし得るものではな力つた。
[0008] 例えば、 Webサービスと呼ばれる技術がある。これは,先に述べたような HTTP, XM L, SOAPといったプロトコルに則ったテキストレベルのメッセージを使って、様々なサ 一ビスを提供する複数のコンピュータ間で連携をとる技術である。この技術を、旅行 サービスを提供するといつた場合に利用すると、宿泊予約や航空券予約といった複 数のサービスの連携をとるといったことが可能となる。このような場合に、各サービスが 完了するまでの時間を考えると、宿泊の予約や航空券の予約といったサービスは比 較的長い時間のうちに完了すれば問題がない。すなわち、仮に、個別のサービスが 数分と!/、つた時間で完了し、旅行サービス全体で 1時間な 、し数時間と!/、つたような 時間で完了したとしても特別に大きな問題が生じるものではない。
[0009] 一方で、上述の Webサービスを用いて産業プラント内のある設備の温度を比較的 短い周期で取得しょうとした場合を考える。例えば 1秒間に 10回の温度取得が必要で あった場合に、このようなテキストレベルのメッセージの処理に許される時間は相当に 短い時間となる。上述の旅行サービスの場合では問題とはならな力つた力 このよう な場合には、テキストレベルのメッセージの処理を従来よりも著しく短い時間で完了さ せるために、機器は高性能であることが要求される。なお,ここでの性能とは、主に、 単位時間あたりの処理能力であるスループットと、入力が到着してから最初の応答を 返すまでのレイテンシの 2つを考慮するものである。
[0010] さらに、別の問題として、テキストレベルのメッセージの処理を行う機器の物理的サ ィズの問題が挙げられる。上述の旅行サービスの場合には、サーバやメインフレーム を屋内に配置するといつたことが一般的に広く行われており、このことに特段に大きな 問題はなかった。しかし、産業プラント内で用いられるような機器では、プラント内部 の狭い空間に多数の温度取得モジュールといったものを配置する必要が生じる。こ のような場合に、テキストレベルのプロトコルまたメッセージの処理を行う機器の物理 的サイズは、先の旅行サービスの場合に用いられるサーバやメインフレームよりも相 当に小さ 、サイズであることが要求される。
[0011] さらに、別の問題として,消費電力の問題が挙げられる。上述の温度取得を行うとい つた機器では、屋外に配置されるようなケースも多ぐこの場合、バッテリで動作させる 必要があるといった場合も多い。ノ ッテリ動作させる場合には、機器に対する充電や ノ ッテリ交換の時間間隔はできるだけ長くすることが望ましい。従って、処理で消費さ れる電力が可能な限り小さくすることが要求される。また、携帯型の情報'娯楽機器( 各種の情報を閲覧、取得、操作するソフトを動作させるものやオーディオやビデオの 再生 ·録音を行うもの)もバッテリ動作するものが多く存在する力 これらにおいてもテ キストレベルのメッセージの処理を行う場合には、同様の低消費電力性が要求される 。機器が低消費電力であることは、その機器全体に対して相対的に小さいサイズの ノ ッテリを搭載することを可能とし、また放熱装置を不要とするあるいは小さくすること が可能となるといつた理由により、先に述べた機器の物理的サイズを小さくすることに も関係するものである。
[0012] さらに、別の問題として、テキストレベルのメッセージのためのプロトコルが与える階 層的なルールの規定に対する処理方法の問題が挙げられる。すなわち、各種のプロ トコルのルールに沿ったテキストは、一般的に予約語と呼ばれるキーワード、および キーワード以外の文字列(以下、非キーワードと呼ぶ)との組み合わせで表記される。 ひとつながりの文字列は、キーワードおよび非キーワードに対応し、これらが単一また は複数組として一つの構文要素となり、これら構文要素間の並びの関係である構文 ルールを規定する。また、構文要素は複数がまとまってさらに別の構文要素となり得 る。すなわち、このような構文ルールは階層的な関係を持ち得るものである。なお、以 下においては、キーワードに相当する記号および非キーワードに相当する記号は最 下層(第 1階層)のトークンと呼び、また各階層の構文要素に対応する記号はその階 層(例えば第 i階層)のトークンと呼ぶものとする。このような階層的な構文ルールを有 するプロトコルに則ったメッセージに対する処理方法において、やはり高性能で、力 つ低消費電力でこれを行う方法は知られていな力つた。
[0013] 上記において、サーバやメインフレーム等を用いてテキストレベルのメッセージ処理 を行う場合についての問題点を示した。そのような例として、産業プラントにおける温 度測定の例を示したものであるが、このような例は、一般に産業プラントの分野などに 留まらず、サーバやメインフレームよりもコスト制約、電力制約、物理サイズ制約といつ た各種制約がより厳しいコンピュータを用いる産業分野 (例えば, 自動車内制御ュ- ット,家電機器,環境計測機器,ロボット制御機器等)ではいずれも問題となりうるもの である。また、これらの多様な分野にまたがって機器力 ツセージ交換しながら統合 処理を行うような場合にも問題となりうるものである。
[0014] 本発明の一の形態は,このような多様な分野で利用される機器におけるテキストレ ベルのメッセージ等の処理を行う際に、高性能に、また、より小さな物理的サイズで、 また、より低消費電力にて、これを行うことを可能とする処理モジュールを提供するも のである.
[0015] また、本発明の他の形態は、階層的な構文ルールを有するプロトコルに基づくメッ セージ処理に対して、高性能で、かつ低消費電力でこれを行う処理モジュールを提 供するものである。
[0016] また、本発明の更に他の形態は、より少ないリソースでテキストレベルのプロトコル やメッセージ等の処理を行うことが可能な処理モジュールを提供するものである。 課題を解決するための手段
[0017] 本発明に係る第 1の処理モジュールは、テキスト記述されたメッセージを解析する処 理モジュールであって、比較ブロック、状態セレクタ、現状態レジスタ、次状態候補レ ジスタ、出力生成器および状態遷移情報テーブルを有し、上記比較ブロックは、コー ド比較器、入力コードレジスタおよびパターンコードレジスタを備え、上記コード比較 器は、 2つのコードを入力として比較し、その結果を出力するものであり、上記入力コ ードレジスタの値は処理モジュール外部から挿入され、上記パターンコードレジスタ の値は状態遷移情報テーブル用メモリから読み込まれ、入力コードレジスタおよびパ ターンコードレジスタの出力はコード比較器への 2つのコード入力となり、上記状態セ レクタは、 2つの入力から一つを選択するものであって、その 2つの入力は、現状態レ ジスタおよび次状態候補レジスタの出力に接続され、それら 2つの入力からの選択を 決定する制御信号は比較ブロックの出力結果により制御され、現状態レジスタの値は 状態セレクタの出力により決定され、次状態候補レジスタの入力は状態遷移情報テ 一ブル用メモリから読み込まれ、上記出力生成器は、その入力が現状態レジスタの 出力に接続され、その出力が処理モジュールの外部への出力へと接続される構成と なる。
[0018] また、本発明に係る第 2の処理モジュールは、階層的なルールに則ったテキスト記 述されたメッセージを解析する処理モジュールであって、複数のサブモジュールを有 し、上記複数のサブモジュールのうち少なくとも一つのサブモジュールは前述した第 1の処理モジュールであって、上記サブモジュールにおいて、第 i番目のサブモジュ ールは、第 i-1番目のモジュールが生成した出力を入力とし、第 i+1番目のサブモジュ ールは、第 i番目のモジュールが生成した出力を入力とし、第 1番目のサブモジユー ルには処理モジュール外部力 入力が挿入され、最も上位の階層のサブモジュール の出力は処理モジュール外部への出力とする構成となる。
[0019] 更に、本発明に係る第 3の処理モジュールは、より少ないリソースでテキストレベル のプロトコルやメッセージ等の処理を行うために、前述した第 1の処理モジュールに おいて、状態遷移情報テーブル書き換え器を有し、上記書き換え器が、状態遷移情 報テーブル用メモリの値を書き換えることにより処理モジュールの処理ルールを変化 させ得る構成となる。
[0020] また、本発明に係る第 4の処理モジュールは、より高速にメッセージの処理を可能 にするため、テキスト記述されたメッセージを解析する処理モジュールであって、複数 の比較ブロック、状態セレクタ、現状態レジスタ、複数の次状態候補レジスタ、出力生 成器および複数の状態遷移情報テーブルを有し、上記各比較ブロックは、コード比 較器、入力コードレジスタおよびパターンコードレジスタを備え、上記コード比較器は
、 2つのコードを入力として比較し、その結果を出力するものであり、上記入力コード レジスタの値は処理モジュール外部から挿入され、上記パターンコードレジスタの値 は上記複数の状態遷移情報テーブル用メモリから読み込まれ、入力コードレジスタ およびパターンコードレジスタの出力はコード比較器への 2つのコード入力となり、上 記状態セレクタは、複数の入力から一つを選択するものであって、それら複数の入力 は、現状態レジスタおよび複数の次状態候補レジスタの出力に接続され、それら複 数の入力からの選択を決定する制御信号は複数の比較ブロックの出力結果により制 御され、現状態レジスタの値は状態セレクタの出力により決定され、複数の次状態候 補レジスタの入力は上記複数の状態遷移情報テーブル用メモリから読み込まれ、上 記出力生成器は、その入力が現状態レジスタの出力に接続され、その出力が処理モ ジュールの外部への出力へと接続される構成となる。
[0021] また、本発明に係る第 5の処理モジュールは、前述した第 4の処理モジュールにお いて、上記比較ブロックおよび次状態候補レジスタの数として、状態遷移情報テープ ルにより作成される状態遷移図における各状態力 の遷移枝数の中で最大のものを 設定した構成となる。
[0022] 更に、本発明に係る第 6の処理モジュールは、前述した第 4の処理モジュールにお いて、上記比較ブロックおよび次状態候補レジスタの数として、状態遷移情報テープ ルにより作成される状態遷移図における各状態からの遷移分岐数の標準偏差の 2倍 以下に設定した構成となる。
[0023] また、本発明に係る第 7の処理モジュールは、テキスト記述されたメッセージを解析 する処理モジュールであって、複数の状態選択/出力生成ブロック、複数の比較プロ ック、接続切替器、複数の状態遷移情報テーブルを有し、上記複数の状態選択/出 力生成ブロックの各々は、状態セレクタ、現状態レジスタ、出力生成器より構成され、 上記複数の比較ブロックの各々は、コード比較器、入力コードレジスタ、パターンコー ドレジスタより構成され、上記接続切替器は、複数の入力と複数の出力との間の接続 関係を変化させるものであり、上記複数の比較ブロックの出力と上記複数の状態選 択 /出力生成ブロックの入力とは上記接続切替器を介して変更可能な形で接続され 得る構成となる。
[0024] 更に、本発明に係る第 8の処理モジュールは、前述した第 1の処理モジュール乃至 第 7の処理モジュールを複数有する複合処理モジュールであって、上記複数の処理 モジュールが縦列的に接続され、入力段に近 、側の処理モジュール力 Sメッセージ全 体を処理完了する前に次段の処理モジュールが処理を開始する構成となる。
発明の効果
[0025] 本発明に係る処理モジュールによれば、テキストレベルのメッセージ等の処理を行 う際に、高性能に、また、低消費電力に、これを行うことが可能となる。また、本発明に 係る処理モジュールによれば、より少な!/、リソースで複数の種類の異なるルールに則 つたテキストレベルのメッセージの処理を行うことが可能となる。
図面の簡単な説明
[0026] [図 1]図 1は、従来の処理システムの構成例を示すブロック図である。
[図 2]図 2は、本発明の第 1の実施の形態に係る処理モジュールの構成を示すブロッ ク図である。
[図 3]図 3は、図 2に示す処理モジュールにおける処理の流れを示すフローチャートで ある。
[図 4]図 4は、入力文字に応じて与えられる条件に従ってなされる状態の遷移を示す 状態遷移図である。
[図 5]図 5は、図 4に示す状態遷移図に対応した状態遷移情報を表す状態遷移情報 テーブルである。
[図 6]図 6は、本発明の第 2の実施の形態に係る処理モジュールの構成を示すブロッ ク図である。
[図 7]図 7は、本発明の第 3の実施の形態に係る処理モジュールの構成を示すブロッ ク図である。
[図 8]図 8は、本発明の第 4の実施の形態に係る処理モジュールの構成を示すブロッ ク図である。
[図 9]図 9は、状態遷移情報テーブルにおける分岐数のばらつきの一例を示す図で ある。
[図 10]図 10は、本発明の第 7の実施の形態に係る処理モジュールの構成を示すプロ ック図である。
[図 11]図 11は、本発明の第 8の実施の形態に係る処理モジュールの構成を示すプロ ック図である。
[図 12]図 12は、処理モジュールにて処理され得るキーワードと構文について示した 図である。
[図 13]図 13は、本発明の各実施の形態に係る処理モジュールを汎用のマイクロプロ セッサとともに用いたシステムを示すブロック図である。
[図 14]図 14は、汎用のマイクロプロセッサと通信モジュールとの間に処理モジュール を配置したシステムを示すブロック図である。
[図 15]図 15は、本発明の第 3の実施の形態に係る処理モジュールの適用例を示す ブロック図である。
[図 16]図 16は、本発明の第 3の実施の形態に係る処理モジュールの他の適用例を 示すブロック図である。
[図 17]図 17は、本発明の第 7の実施の形態に係る処理モジュールの更に具体的な 構成例を示すブロック図である。
[図 18]図 18は、第 1乃至第 7の実施の形態に係る処理モジュールのいずれかを 3つ 縦列接続して用いたシステムを示すブロック図(a)である。
[図 19]図 19は、図 18に示すシステムにおける各処理モジュールでの処理タイミング を示す図である。
符号の説明
100、 400、 500、 600、 800、 1400、 1600、 1601、 1602
処理モジュール
101、 601、 602、 803、 804、 805、 1403、 1404、 1405
比較ブロック 102 コード比較器
103 入力コードレジスタ
104 パターンコードレジスタ
105 現状態レジスタ
106、 603、 604 次状態候補レジスタ
107 状態セレクタ
108 出力生成器
109、 807, 1603、 1604 状態遷移情報テーブル (メモリ)
501、 1605 テーブル書き換え器
502、 1606 データ用メモリ
801、 802、 1401、 1402 状態選択/出力生成ブロック
808、 1406 接続切替器
1301 ネットワークモジュール
発明を実施するための最良の形態
[0028] 以下、本発明の実施の形態について、図面を用いて説明する。
[0029] 本発明の第 1の実施の形態に係る処理モジュールは、図 2に示すように構成される
[0030] 図 2において、この処理モジュール 100は、比較ブロック 101、現状態レジスタ 105 、次状態候補レジスタ 106、状態セレクタ 107、出力生成器 108、及び状態遷移情報 テーブル 109により構成される。また、上記比較ブロック 101は、コード比較器 102、 入力コードレジスタ 103、及びパターンコードレジスタ 104により構成さ れる。
[0031] そもそも、従来の技術の項で示したような RISC型マイクロプロセッサを用いたサーバ やメインフレームに代表される汎用的なコンピュータ上で、ソフトウェアとして処理する 方法は、全てのプログラムに対して同様の動作をするために、必ずしも個別のプログ ラム (処理)に対して最適な方法であるとは言えない。特に,以下に示す文献は、この ような汎用のマイクロプロセッサ上の処理の形態は、本発明が対象とするネットワーク 接続される処理ノードにおけるテキスト処理に対しても、多大な計算時間を要すると いった例を示している。 佐々木靖彦,村山隆彦,多田好克, "分野横断アプリケーション統合に向けた Web サービスのプリミティブィ匕に関する実装と考察",情報処理学会,デジタル'ドキュメン ト研究会,研究報告 DD53-3, 2006.
[0032] 図 2に示すように構成される処理モジュール 100は、ここでの対象となるネットワーク 接続される処理ノードにおけるテキスト処理に対しては、従来のものよりもより高い性 能、低い電力で実行し得るものである。この処理モジュール 100の動作は、図 3に示 す手順に従ってなされる。
[0033] 図 3において、まず、全てのレジスタ 103、 104、 105、 106や状態遷移情報テープ ル 109は規定の初期状態にセットされ (S1)、その後、以下のように動作が進む。処 理モジュール 100に入力された文字は、第 1のサイクルで文字比較ブロック 101内に ある入力コードレジスタ 103に格納される(S2)。これと並行して、状態遷移情報テー ブル 109からパターンコードレジスタ 104に比較候補の文字群の中から 1つが選ばれ て格納される(S3)。次に第 2のサイクルで上記 2つのレジスタに格納されている文字 力 Sコード比較器 102を用いて比較され、同一力否かの判定が行われる(S4)。その結 果は状態セレクタ 107の制御入力となり、状態セレクタ 107に入力される 2つの入力 のうち一つを選択する。比較結果が一致と判断されれば、 2つの入力のうち次状態候 補レジスタ 106に格納されている次状態の符号データが選択され、一方、比較結果 が不一致と判断されれば、 2つの入力のうち現状態レジスタ 105に格納されている現 状態が選択される。そして、選択された入力は現状態レジスタ 105に格納される(S5 、 S3)。さら〖こ、第 3のサイクルで、上記で選択された結果が格納された現状態レジス タ 105の値が出力生成器 108に入力され、状態遷移情報テーブル 109の output欄 2 15 (後述する図 4参照)が値を有するかどうかが判断される(S6)。値を有する場合に は,出力生成器 108は、格納されているパターンデータをトークンとして出力する(S7 )。値が存在しない場合は,出力生成器 108は何も出力しないか、またはパターンの 値が存在しないことを示す特定の符号データを出力する(S8)。なお、上記の比較結 果が不一致と判断された場合 (S4参照)は、次なる文字を処理モジュール 100に挿 入することは行わず、かわりに比較対象のパターンとして次なる候補を状態遷移情報 テーブル力も読み込み、これをパターンコードレジスタに挿入する。その後の文字比 較に関しては、上記に述べた手順と同等である。
[0034] 以上のような動作は、非特許文献 2に示されるアルゴリズムも関係するものである。
すなわち、図 4に示されるように、上記の処理モジュール 100の動作は、入力文字に 応じて遷移条件が与えられる状態遷移図に対応している。図 5は、このような表現の ために、状態遷移情報テーブル 109用メモリ内に格納されるデータを示している。こ のテープノレは、 idカラム 209、 current stateカラム 210、 inputカラム 211、 gotoカラム 2 12、 otherカラム 213、 failureカラム 214、及び outputカラム 215を含んでいる. idカラ ム 209の値は、今状態遷移情報テーブル 209のどこを参照するかを示している。 curr ent stateカラム 210の値は、図 4に示される状態遷移図における現在の状態 201を 示している。 inputカラム 211の値は、現在の状態に対して遷移を行う条件となる入力 文字 203を示している。 gotoカラム 212の値は、 inputカラム 211で示される条件に一 致したときに、遷移する先の状態 202に対応する idを示している。 otherカラム 213の 値は、 1つの状態力 遷移する候補となる複数の遷移枝を表現している。すなわち、 図 4に示すある状態 201にいる時に、入力カラムに記述された値 203以外の入力 20 8が与えられた場合に、遷移する次の状態 206の候補として、 otherカラム 213にある i dが順に読み取られる。つまり、ある状態 201において、入力が入力カラム 211に記 述された値 203に合致しないとき、次の状態の候補として、 otherカラム 213に記述さ れた idの行へと状態遷移情報テーブル 209内を移動し、その idにおける入力カラム 2 11に記述された値 208を調べることとなる。 failureカラム 214は、ある状態から入力一 致により遷移する状態が存在しない時 (otherカラム 213に記述されるものを含めて全 ての候補が存在しなくなったら)、どの状態に遷移するかを意味する idを格納している 。 outputカラム 215は、ある状態に到達した時に予め規定されたパターンがその状態 で表現されるときに、そのパターンを示すデータを格納している。なお、このようなテ 一ブルの記述方法は、上記に限定されるものではなぐ同等の状態遷移図を表現す る情報を格納したものであれば、 、かなる形式のものであってもよ 、ことは言うまでも ない。
[0035] 本発明は、引用文献 2に開示される技術と関連があるものの、そのようなァルゴリズ ムをプログラム (ソフトウェア)の形で汎用のマイクロプロセッサ上で実行させる従来技 術とは異なり、より効率的に動作することを可能とするようなハードウ ア的な構造を 与えるものである。前述した処理モジュール 100は、本発明が対象とする処理に対し て一つの文字入力がある度に、その処理を完了することが可能となる。従って、従来 の汎用プロセッサが行うような一連の基本的な処理の繰り返しへと全体処理を分解、 対応させる必要もなければ、また、一連の基本的な処理自体を実行する必要もない。 従って、著しく少ないサイクルで全体の処理を完了させることが可能となる。また、従 来のようにプログラムを格納するようなメモリも不要であり、処理する対象であるテキス トデータを保持するメモリも不要である。従って、処理対象のプログラムやテキストデ ータを予めメモリに読み込むと 、つたことも不要であることは言うまでもな 、。したがつ て、相対的に大き 、として知られて 、るメモリアクセスに関わる遅延や消費電力と 、つ た問題も存在しない。さらに、汎用的なマイクロプロセッサ上でプログラムの実行を行 う場合、あら力じめメモリ上に所定の領域を確保するための準備処理等による処理時 間の増加があるのが一般的である力 前述した処理モジュール 100を用いた方法で は、このような準備時間といったものも削減される.以上のような複数の理由により、処 理モジュール 100は、従来の方法よりも高速、低電力に、かつ少ないリソースで対象 処理を実行することが可能となる。
なお,上記において、第 1のサイクルで入力コードレジスタ 103及びパターンコード レジスタ 104への文字の格納が行われ、第 2サイクルでこれら 2つの文字が比較され 状態選択が行われ、第 3のサイクルで出力生成器 108が outputパターンを調べた上 で出力を生成する、とあるが、これは、ある注目する入力文字に対しての流れを示し たものである。これらの処理のそれぞれが異なる文字に対しては同時並行的に動作 してもよいことは言うまでもない。すなわち、あるサイクルにおいてある入力文字に対 応した出力生成動作が行われ、同じサイクルで次の入力文字に対応する文字比較と 状態選択が行われ、同じサイクルでさらに次の入力文字に対応した入力コードレジス タ 103とパターンコードレジスタ 104への挿入が行われるといったことが可能である。 このようにすれば、同一のサイクルに多くの処理モジュール内ブロックを同時に動作 させることが可能であり、 1つの入力文字に対する処理を完了させるまで、次の文字 を入力することができないといった問題を防止できる。また,単位時間あたりの処理量 も増加する。
[0037] また,物理的なサイズに関しても,前述した処理ユニット 100は従来の方式を用い た場合より相当に小さくすることが可能となる。まず、半導体のチップ上の物理的なサ ィズに関して見てみると、汎用のマイクロプロセッサは汎用的な処理を行えるようにす る必要があるため,図 1で示したような構造における命令デコーダ 304や演算器 306 などは一般に大規模な回路となってしまう。また,レジスタの数に関しても、現在では 数十以上の数を有するものが一般的であり、やはり大規模な回路となってしまう。さら に、命令メモリ 302やデータメモリ 308なども非常に大きなサイズのメモリであることが 一般的である。一方,処理モジュール 100は、文字比較ブロック 101内のコード比較 器 102は、 ASCII文字の場合は 8bitのノイナリ比較器で済み、また 2バイト文字の場 合でも 16bitのノイナリ比較器で済むため、回路規模も非常に小さい。さらに、汎用の マイクロプロセッサのように非常に多数の命令をデコードするといつたことは不要であ るため、大規模なデコード回路も不要である。また、我々の解析の結果では、状態遷 移情報テーブル 109も命令メモリ 302やデータメモリ 308と比較すると相当に小さい ものとなる。以上のような理由により,本発明の第一の実施の形態に係る処理モジュ ール 100は、従来の方式より物理的に小さいものとなり得る。
[0038] さらに、機器としての物理的なサイズを見てみる。本発明の第 1の実施の形態に係 る処理モジュール 100は、その回路規模が小さいため、必要とされるゲート数も少な ぐ消費電力も小さくなる。このため、電力供給のためのバッテリを小さくすることが可 能であるといった理由や、放熱のための大きな装置が不要になるといった理由により 、機器全体の物理的サイズを小さくすることが可能となる。
[0039] 次に、本発明の第 2の実施の形態に係る処理モジュールについて説明する。
[0040] 本発明の第 2の実施の形態に係る処理モジュールは、図 6に示すように構成される
[0041] 図 6【こお!ヽて、この処理モジユーノレ 400ίま、複数のサブモジユーノレ 401、 402、 403 、 404、 405を有している。これらサブモジユーノレの入力は別のサブモジユーノレの出 力に接続されるように接続される。図中に示されている複数のサブモジュールは、一 般的には 2つ以上のいかなる個数(以下では, Ν個とする)のサブモジュールであって もよいことは言うまでもない。そして、第 1番目のサブモジュール 401の入力は別のサ ブモジュールの出力ではなく処理モジュール 400全体に対する入力が接続され、第 N番目のサブモジュール 405の出力は別のサブモジュールの入力ではなぐ処理モ ジュール 400全体の出力へと接続される。各サブモジュール 401〜405として、前述 した処理モジュール 100 (図 2参照)が用いられる。即ち、各サブモジュール 401〜4 05は、比較ブロック 101 (コード比較器 102、入力コードレジスタ 103及びパターンコ ードレジスタ 104を含む)、現状態レジスタ 105、次状態候補レジスタ 106、状態セレ クタ 107、出力生成器 108、及び状態遷移情報テーブル 109により構成される。
[0042] このような構成の処理モジュール 400は、以下のように動作する。すなわち、第 i番 目のサブモジュール 403は、第 i-1番目のモジュールが生成したトークン(第 i-1番目 の階層の構文におけるトークン)を入力として受け取り、予め登録された第 i番目の階 層の構文におけるトークン列と合致するかどうかを調べる処理を行う。ここで、トークン とは、先に述べたように第 1番目の階層においては、区切り文字を含まない一続きの 文字列を意味する。そして、一般に本構造の第 2番目以上の階層では、より下位の階 層のトークンの一続きであるトークン列 (構文要素)を意味する。このようなトークンに 入力が合致すれば、第潘目の階層の構文における出力としてトークンを生成する。 このような構造を用いると、前述したようにメッセージの記述ルールであるプロトコルを 規定するトークンおよび構文のルールが複数の階層に及んでも、各サブモジュール が複数の階層のそれぞれのルールを処理することにより、全体で複数階層のルール に準じたテキストプロトコルまたはメッセージを処理することが可能となる。
[0043] 次に、本発明の第 3の実施の形態に係る処理モジュールについて説明する。この 処理モジュールは、より少な!/、リソースでテキストレベルのプロトコルやメッセージ等の 処理を行うことができる。
[0044] 本発明の第 3の実施の形態に係る処理モジュールは、図 7に示すように構成される
[0045] 図 7において、この処理モジュール 500は、前述した第 1の実施の形態に係る処理 モジュール 100 (図 2参照)の構成にカ卩えて、さらに状態遷移情報テーブル 109の内 容を書き換えるテーブル書き換え器 501を備えている。異なるプロトコルあるいはメッ セージのルールに準じたメッセージを処理する場合には、テーブル書き換え器 501 によって、状態遷移情報テーブル 109のデータ用のメモリ 502から異なるデータを状 態遷移情報テーブル 109に格納することにより、同一の処理モジュール 500を異なる 時間に異なるルールに従ったメッセージを処理するモジュールとして動作させること が可能となる。
[0046] 更に、本発明の第 4の実施の形態に係る処理モジュールについて説明する。この 処理モジュールは、より高速に処理を行なうことができる。
[0047] 本発明の第 4の実施の形態に係る処理モジュールは、図 8に示すように構成される
[0048] 図 8において、この処理モジュール 600は、前述した第 1の実施の形態に係る処理 モジュール 100 (図 2参照)と異なり、比較ブロック 601、 602および次状態候補レジス タ 603、 604がそれぞれ複数有する構造となっている。なお、比較ブロックおよび次 状態候補レジスタをまとめて比較ブロックセットと呼ぶことにすれば、図 8において比 較ブロックセットの数は 2つである力 一般に 2つ以上の複数のいずれでも構わないこ とは言うまでもない。セレクタ 107は複数の入力力も一つを選択するようなものに拡張 される。このような構造によれば、ある入力に対して、比較するパターン文字の候補が 複数存在した場合に、第 1の実施の形態に係る処理モジュール 100のように一つず つ逐次比較を行うかわりに、複数の候補に対して一斉に比較を行うことが可能となる 。これは、図 4における 1つの状態力 の遷移できる可能性のある枝が複数存在する 場合に、これら複数の枝に対応した比較条件が成立するか否かを一斉に判定するこ とを可能とする。したがって、第一の実施の形態に係る処理モジュール 100に比較し て比較ブロックセットの個数をより多く必要とするものの、処理時間に関しては短い時 間で処理を完了させることが可能となる。
[0049] また、このような比較ブロックセットの数としていかなる数を設定するかである力 本 発明の第 5の実施の形態に係る処理モジュールでは、図 4における各状態からの遷 移枝数の中で最大のものに設定される。これにより、いずれの状態からの遷移におい ても、わずか 1回の比較動作により、状態セレクタ 107の制御入力を決定することが 可能となる。しかるに,これ以上の数の比較ブロックを処理モジュールに含めないよう にすることで,より小規模な回路で高速に動作することが可能となる.
[0050] 更に、本発明の第 6の実施の形態に係る処理モジュールは、前述した第 4の実施の 形態に係る処理モジュール 600 (図 8参照)における比較ブロックの数として、上述し たような各状態からの遷移枝数の中で最大のものを設定するかわりに (第 5の実施の 形態参照)、遷移分岐数の標準偏差の 2倍以下に設定するような構成を与える。我々 は、別途遷移分岐数の平均値と標準偏差に関して、どの程度になるかの検討を行つ た。図 9は、このような遷移分岐数に関する標準偏差を示している。この結果によれば 、遷移分岐数の平均値と標準偏差は、いずれも比較的小さい数となることが判明した 。したがって、上述のような各状態からの遷移枝数の中で最大のものを設定すること を行わず、遷移分岐数の標準偏差の 2倍以下に設定することで、大多数の状態から の遷移条件の判定を 1回で終了させることが可能となり、結果として遷移枝数の中で 最大のものを設定した場合よりわずかに遅い時間で処理を完了させることが可能とな る。し力しながら、本構造では、比較ブロックセットの数は、遷移枝数の中で最大のも のよりも相当に小さいものであるから、必要とする回路規模は相当に小さくすることが 可能となる。
[0051] 次に、本発明の第 7の実施の形態に係る処理モジュールについて説明する。
[0052] 本発明の第 7の実施の形態に係る処理モジュールは、図 10に示すように構成され る。この処理モジュールは、前述した第 4及び第 5の実施の形態に係る処理モジユー ルと類似の構成を有して ヽるが、具体的には次のように構成される。
[0053] 図 10において、この処理モジュール 800は、複数の状態選択/出力生成ブロック 8 01、 802、複数の比較ブロック 803、 804、 805、複数の状態遷移情報テーブル 806 、 807を有している力 どの比較ブロックの出力がどの状態選択/出力生成ブロックの 入力へと接続されるかが固定されていない。この第 7の実施の形態においては、それ らの入出力は固定的に接続されるかわりに、接続切替器 808を介して変更可能な形 で接続される。図 10では、特別に示していないが、このような接続切替器 808を介し て、複数の状態遷移情報テーブル 、 80 どの比較ブロック 803、 804, 805や 状態選択/出力生成ブロック 801、 802と接続されるかといったことも変更可能な形で 接続される。なお、上記の接続とは、必ずしも単一の物理的な線による接続に限らず 、複数の物理的な線 (バス)〖こよる接続でもあり得るものである。
[0054] 本発明の第 7の実施の形態に係る処理モジュール 800の利点は以下のようなもの である。すなわち、対象とするテキストレベルの処理がどのようなプロトコルを処理する ものであるかによつて、最適な比較ブロックの個数は変化し得る。このことは、本発明 の第 5の実施の形態において述べたとおりである。あら力じめ、本発明の第 6の実施 の形態に係る処理モジュールを作成しておき、処理する対象のテキストレベルのプロ トコルに応じて、状態選択/出力生成ブロック 801、 802に対する比較ブロックの割り 当て数を調整することにより、同一のハードウェアモジュールを様々なプロトコルに利 用可能でかつよりリソースを効率的に用いて処理することが可能となる。また、異なる 時間において接続切替器 808の接続関係を変更することにより、時間的に処理する プロトコルが変更するような場合にも、本処理モジュール 800を処理対象のプロトコル に最適化されたものとして変化させることが可能となる。
[0055] 更に、本発明の第 8の実施の形態に係る処理モジュールについて説明する。
[0056] 本発明の第 8の実施の形態に係る処理モジュールは、図 11に示すように構成され る。この処理モジュールは、機器の動作を停止させることなぐ異なるプロトコルを処 理することができる。
[0057] 図 11において、この処理モジュール 1600は、第 1の実施の形態に係る処理モジュ ール 100〖こ相当する処理モジュール 1601、 1602を複数有し、またこれら複数の処 理モジュール 1601、 1602内部に有するそれぞれの状態遷移情報テーブル用のメ モリ 1603、 1604の双方に対して書き換え処理を行なう書き換え器 1605を有する。 この書き換え器 1605は、処理モジュール 1600外部のメモリ 1606からデータを読み 込み、状態遷移情報テーブル 1603、 1604にデータを書き込む。このような書き込 みの際に、いずれか一つの処理モジュール(例えば 1601)が動作中に別の処理モ ジュール (例えば 1602)の状態遷移情報テーブル 1604を書き換え、書き換えが完 了した時点で動作する処理モジュールを切り替える(例えば 1601から 1602へ切り替 える)。これにより,処理モジュール 1600としてみた場合に、動作が停止している期 間を見かけ上なくすことにより不停止型の処理モジュールを構成するといつたことも可 能となる。 [0058] 図 12は、前述した各処理モジュールにて処理され得るキーワードと構文について 示したものである。この例では、 HTTPに則ったメッセージの第 1行目に記述されるリク ェストメッセージの一つとして知られている構文を解析する場合を示している。例えば 、そのようなメッセージの第 1行目に" POST http://abc.org/sample HTTP/1.1"という テキストが書かれている場合を見てみる。同構文において、 POSTに引き続く部分は、 URI(Universal Resource Identifier)を表し、またそれに引き続く部分は、 HTTPのバー ジョンを示すと!、うようにプロトコルで決められて!/、る。そしてこれらの並びが成立する と、それはリクエストラインと 、う構文になるものとされて 、る。
[0059] 上記のようなテキスト文字列に対して、本発明に係る処理モジュールがどのように動 作するかを以下に示す。
まず,第 1階層で対象とするキーワード (予約語)は、図 12にあるように、テキスト文 字の POST, GET, OPTIONS, http:〃, HTTP/であり、これらは第 1階層のトークンと なり、また、それら以外は NAMEとして第 1階層のトークンとなる。なお、スペース文字、 改行文字などは、第 1階層で処理されるトークンに含める場合もあるしそうでない場合 もありえ、処理モジュールの実装に依存して変化し得るものである。第 1階層で処理さ れたトークンは、それぞれに対応する符号コードとして出力され、第 2階層に渡される 。さらに、第 2階層では、 http:〃に続いて NAMEトークンが来る場合に URIトークンが、 また HTTP/に続!、て NAMEトークンが来る場合には VERSIONトークン力 またそれら 以外の場合には第 1階層からのトークンがそのまま、それぞれ対応するコードとして出 力され、第 3階層に渡される。さらに第 3の階層では、 POSTトークンに引き続き URIト 一クンが、そしてそれに引き続き VERSIONトークンが来ると、リクエストラインの構文に 相当するコードが出力される。
[0060] 第 1階層での処理は、図 2乃至 5で示されるような本発明の第 1の実施の形態に係る 処理ユニット 100にてなされ得る。同様のモジュールが第 1階層、第 2階層、第 3階層 として 3つ用意され接続されることにより、本発明の第 2の実施の形態に係る処理モジ ユールの構成となる。以下、第 1の階層の部分の動作について示すが、第 2、第 3の階 層でも同様の動作が行われる。
[0061] まず、図 2に示す処理モジュール 100における現状態レジスタ 105は、図 4に示す 状態 1 (図 5における current stageカラム 210の値が 1、 idは 1)に対応する値を保持し ている。次状態候補レジスタ 106は、 gotoのカラム 212にあるように状態 2に対応する 値がセットされている。このとき、パターンコードレジスタ 104には、状態 2への遷移に 対応する行の inputカラム 211にあるように文字〃 P"が挿入される。今、メッセージ中の テキスト文字列の最初の文字 Pが入力として、処理モジュール 100に挿入されたとき、 入力コードレジスタ 103とパターンコードレジスタ 104に格納されている文字が一致 するかどうかがコード比較器 102により調べられる。この場合は両者が一致するため 、状態セレクタ 107により次状態として状態 2が選択され、これに対応した値が、次の サイクルでの現状態レジスタ 105の値となる。状態遷移情報テーブル 109の参照先 の位置は、 idカラム 209が 2の値の部分に移動する。
[0062] 次に、次状態候補レジスタ 106は、 gotoカラム 212にあるように状態 3に対応する値 がセットされる。そして、パターンコードレジスタ 104には、状態 3への遷移に対応する 行の inputカラム 211にあるように文字 "0"が挿入される。メッセージ中のテキスト文字 列の 2番目の文字 0が入力として、処理モジュール 100に挿入されたとき、入カコー ドレジスタ 103とパターンコードレジスタ 104に格納されている文字が一致するかどう 力がコード比較器 102により調べられる。この場合、両者が一致するため、状態セレ クタ 107により次状態として状態 3が選択され、これに対応した値が、次のサイクルで の現状態レジスタ 105の値となる。状態遷移情報テーブル 109の参照先の位置は、 i dカラム 209が 3の値の部分に移動する。以下,同様に動作を続ける。
[0063] このような動作を繰り返した後、入力文字として、 POSTの最後の文字である Tが挿 入されたときに、現状態レジスタ 105は状態 5に到達し、出力生成器 108は output力 ラム 215に POSTというトークンが存在するので、 POSTトークンを出力する。以上、メッ セージの最初のトークンが解析されるまでを示した力 他のキーワード(トークン)につ いても、同様の動作がなされる。
[0064] 図 13は、本発明の各実施の形態に係る処理モジュールを汎用のマイクロプロセッ サとともに用いたシステム 1000を示している。すなわち、本発明の各実施の形態に 係る処理モジュールは、汎用のマイクロプロセッサ 1001のバス 1002上に接続される 多数の処理モジュール群(1003、 1004、 1005)の一つとして接続される形態をとつ ている。例えば,このような場合、処理モジュール 1003は,処理モジュール群の一つ である通信モジュール 1004からバス 1002を介して入力を受け取り、処理を行う。ト 一クンや構文の処理が完了すると、その結果をバス 1002を介して汎用マイクロプロ セッサ 1001に渡す。なお、このようなシステム 1000とは、プリント基板上に実装され る複数のチップよりなるシステムの形態であってもよ 、し、また一つのチップ上にマイ クロプロセッサコアや複数の処理モジュールが搭載される所謂システムオンチップの 形態であってもよ 、ことは言うまでもな 、。
[0065] 図 14は、図 13の場合とは異なり、汎用のマイクロプロセッサ 1101と通信モジュール 1103との間に処理モジュール 1102を配置したシステム 1100を示して!/、る。このよう な構成は、先の例のようにバスを介して多数の処理モジュールを接続するようなシス テムより軽量のシステム 1100を作る場合にふさわし!/、ものである。図 13のように多様 な処理モジュールを行うことはできないが、マイクロプロセッサ 1101と本処理モジュ ール 1102との間の接続 1104、また,本処理モジュール 1102と通信モジュール 110 3との間の接続 1105には、ピアツーピアの接続を用いることが可能であり、バス接続 特有の信号分岐がな 、ためインピーダンスのミスマッチ等の問題もなぐ信号反射に よる波形歪の問題が回避できるために物理的な信号伝送を高速に行えると 、つた利 点が存在する。
[0066] 図 15は、本発明の第 3の実施の形態に係る処理モジュール 500 (図 7参照)の適用 例を示している。すなわち、状態遷移情報テーブル 109の書き換えを行う場合を示し ており、まず、第 1の時間には HTTPのメッセージを処理し、第 2の時間には SOAPのメ ッセージを処理するといつた異なるプロトコルに則った 2つのメッセージを時間を分け て処理するものである。同一のハードウェアモジュールを用いているために、回路規 模を増大させることなぐ 2つの異なるプロトコルに則ったメッセージを処理することが 可能となる。ここでは, 2セットの状態遷移情報テーブル用のデータ 1201、 1202力 S 予め外部メモリ中に用意されており、これらはテーブル書き換え器 501を用いて順に 状態遷移情報テーブル 109へと格納されるものである。なお、このような外部メモリに ついては、あらかじめ ROMとして、あるいは既にデータを書き込んだ RAMとして、処 理モジュール 500の内部に含んで!/、てもよ!/、ことは言うまでもな!/、。 [0067] 図 16は、本発明の第 3の実施の形態に係る処理モジュール 500 (図 7参照)の他の 適用例を示している。この例では、図 15で示したような複数のセットの状態遷移情報 テーブルの書き換えを行うに際し、これをネットワークモジュール 1301によってネット ワークから注入させたデータによって行う。すなわち、予めメモリにデータを格納して おくかわりに、必要が生じた際に随時データの書き換えを行うものである。このような 方法には幾つかの利点がある力 それは以下のようなものである。まず、機器を設計 する際に全ての状態遷移情報を確定させる必要がないということである。機器の機能 追加を時間とともに進展させたい場合等にこのようなネットワークを介したデータ挿入 による状態遷移情報テーブルの書き換えを用いる。したがって、機器を作成した段階 では比較的少ない状態の遷移情報をメモリに格納しておき、後からより大きな状態遷 移情報を書き込むということが可能である。さらに、機器の作成段階より後になってか ら、初期の状態遷移情報に誤りが発見された場合には、ネットワークを介してこの情 報を書き換えることにより、機器の修復が可能になる。
[0068] 図 17は、本発明の第 7の実施の形態に係る処理モジュール 800 (図 10参照)の更 に具体的な構成例を示している。即ち、すなわち、比較ブロックセットの状態選択/出 力生成ブロックへの割りあてをダイナミックに変化させるものである。この処理モジュ ール 1400は、 2つの状態選択/出力生成ブロック (第 1および第 2の状態選択/出力 生成ブロック 1401、 1402)と, 3つの比較ブロックセット(第 1乃至第 3の比較ブロック 1403、 1404、 1405)を有している。ここで、処理するテキストプロトコルは 2つあるも のとし、 1つはプロトコル Aのメッセージ処理であり、他の 1つはプロトコル Bのメッセ一 ジ処理であるものとする。まず、第 1の時間においてはプロトコル Aのメッセージ処理を 実行し、第 2の時間にはプロトコル Bのメッセージ処理を実行する必要があるとする。こ のとき,プロトコル Aのメッセージ処理においては、第 1の状態選択/出力生成ブロック 1401に対して 2つの比較ブロックセット(第 1および第 2の比較ブロック 1403、 1404) を割り当て、第 2の状態選択/出力生成ブロックに対して 1つの比較ブロックセット (第 3の比較ブロック 1405)を割り当てる。プロトコル Bのメッセージ処理においては、第 1 の状態選択/出力生成ブロックに対して 1つの比較ブロックセット(第 1の比較ブロック 1403)を割り当て、第 2の状態選択/出力生成ブロックに対しては 2つの比較ブロック セット (第 2および第 3の比較ブロック 1404、 1405)を割り当てる。このような状態選択 /出力生成ブロックと比較ブロックセットの間の割り当てに関しては、接続切替器 140 6を操作することにより行うものである。すなわち、第 1の時刻においては、接続切替 器 1406の内部で実線で示されるように接続を行い、第 2の時刻においては,接続切 替器 1406の内部で点線で示されるように接続を行うことでこのような割り当てが行わ れる。
[0069] 図 18 (a)は、前述した第 1乃至第 7の実施の形態に係る処理モジュールのいずれ 力を 3つ縦列接続して用いたシステム 1500を示している。このような縦列接続を行え ば、第 1の処理モジュール 1501で処理された結果を引き続き第 2の処理モジュール 1502で処理し、また第 2の処理モジュール 1502で処理された結果を引き続き第 3の 処理モジュール 1503で処理するといつたことが可能となる。このような流れ作業を用 いることにより、第 1の処理モジュール 1501がメッセージの全ての処理を完了するか わりに一部の処理を完了して結果を生成すれば、それを第 2の処理モジュール 1502 が処理することを開始することが可能となる。これにより、単位時間あたりに処理でき るメッセージの量を増加させることが可能となる。なぜなら、図 18 (b)に示すように、同 じサイクノレ時 【こお ヽて 3つの処理 1504、 1505、 1506を同時並行的【こ処理するこ とが可能となるからである。特に、このような同時並行性は、本発明とは異なるようない かなる処理モジュールでも縦列接続することで実現できるものではなぐ本発明の処 理モジュールが特別に有するテキストの文字入力の度に処理を行うことが可能となる t 、う同期性に依って 、るものである。
[0070] 以上、説明したように、本発明の各実施の形態に係る処理モジュールは、テキストレ ベルのメッセージ等の処理を行う際に、より高性能に、また,より低消費電力に、これ を行うことが可能となる。また、本発明の各実施の形態に係る処理モジュールは、より 少ないリソースで複数の種類の異なるルールに則ったテキストレベルのメッセージを 処理を行うことが可能となる。

Claims

請求の範囲
[1] テキスト記述されたメッセージを解析する処理モジュールであって、
比較ブロック、状態セレクタ、現状態レジスタ、次状態候補レジスタ、出力生成器お よび状態遷移情報テーブルを有し、
上記比較ブロックは、コード比較器、入力コードレジスタおよびパターンコードレジ スタを備え、
上記コード比較器は、 2つのコードを入力として比較し、その結果を出力するもので あり、
上記入力コードレジスタの値は処理モジュール外部力 挿入され、上記パターンコ ードレジスタの値は状態遷移情報テーブル用メモリから読み込まれ、入力コードレジ スタおよびパターンコードレジスタの出力はコード比較器への 2つのコード入力となり 上記状態セレクタは、 2つの入力から一つを選択するものであって、その 2つの入力 は、現状態レジスタおよび次状態候補レジスタの出力に接続され、それら 2つの入力 力 の選択を決定する制御信号は比較ブロックの出力結果により制御され、現状態 レジスタの値は状態セレクタの出力により決定され、次状態候補レジスタの入力は状 態遷移情報テーブル用メモリから読み込まれ、
上記出力生成器は、その入力が現状態レジスタの出力に接続され、その出力が処 理モジュールの外部への出力へと接続されることを特徴とする処理モジュール。
[2] 請求項 1記載の処理モジュールにおいて、
状態遷移情報テーブル書き換え器を有し、上記書き換え器は、状態遷移情報テー ブル用メモリの値を書き換えることにより処理ルールを変化させ得ることを特徴とする 処理モジュール。
[3] 請求項 1記載の処理モジュールを複数有する複合処理モジュールであって、 上記複数の処理モジュールが縦列的に接続され、入力段に近 、側の処理モジュ 一ルカ ツセージ全体を処理完了する前に次段の処理モジュールが処理を開始する ことを特徴とする複合処理モジュール。
[4] 階層的なルールに則ったテキスト記述されたメッセージを解析する処理モジュール であって、
複数のサブモジュールを有し、上記複数のサブモジュールのうち少なくとも一つの サブモジュールは請求項 1または 2記載の処理モジュールであって、
上記サブモジュールにおいて、第 i番目のサブモジュールは、第 i-1番目のモジユー ルが生成した出力を入力とし、第 i+1番目のサブモジュールは、第 i番目のモジュール が生成した出力を入力とし、
第 1番目のサブモジュールには処理モジュール外部力 入力が挿入され、 最も上位の階層のサブモジュールの出力は処理モジュール外部への出力とするこ とを特長とする処理モジュール。
[5] 請求項 4記載の処理モジュールを複数有する複合処理モジュールであって、 上記複数の処理モジュールが縦列的に接続され、入力段に近 、側の処理モジュ 一ルカ ツセージ全体を処理完了する前に次段の処理モジュールが処理を開始する ことを特徴とする複合処理モジュール。
[6] テキスト記述されたメッセージを解析する処理モジュールであって、
複数の比較ブロック、状態セレクタ、現状態レジスタ、複数の次状態候補レジスタ、 出力生成器および複数の状態遷移情報テーブルを有し、
上記各比較ブロックは、コード比較器、入力コードレジスタおよびパターンコードレ ジスタを備え、
上記コード比較器は、 2つのコードを入力として比較し、その結果を出力するもので あり、
上記入力コードレジスタの値は処理モジュール外部力 挿入され、上記パターンコ ードレジスタの値は上記複数の状態遷移情報テーブル用メモリから読み込まれ、入 カコードレジスタおよびパターンコードレジスタの出力はコード比較器への 2つのコー ド入力となり、
上記状態セレクタは、複数の入力から一つを選択するものであって、それら複数の 入力は、現状態レジスタおよび複数の次状態候補レジスタの出力に接続され、それ ら複数の入力からの選択を決定する制御信号は複数の比較ブロックの出力結果によ り制御され、現状態レジスタの値は状態セレクタの出力により決定され、複数の次状 態候補レジスタの入力は上記複数の状態遷移情報テーブル用メモリから読み込まれ 上記出力生成器は、その入力が現状態レジスタの出力に接続され、その出力が処 理モジュールの外部への出力へと接続されることを特徴とする処理モジュール。
[7] 請求項 6記載の処理モジュールにおいて、
上記比較ブロックおよび次状態候補レジスタの数として、状態遷移情報テーブルに より作成される状態遷移図における各状態力 の遷移枝数の中で最大のものを設定 したことを特徴とする処理モジュール。
[8] 請求項 6記載の処理モジュールにおいて、
上記比較ブロックおよび次状態候補レジスタの数として、状態遷移情報テーブルに より作成される状態遷移図における各状態力 の遷移分岐数の標準偏差の 2倍以下 に設定したことを特徴とする処理モジュール。
[9] 請求項 6記載の処理モジュールを複数有する複合処理モジュールであって、
上記複数の処理モジュールが縦列的に接続され、入力段に近 、側の処理モジュ 一ルカ ツセージ全体を処理完了する前に次段の処理モジュールが処理を開始する ことを特徴とする複合処理モジュール。
[10] テキスト記述されたメッセージを解析する処理モジュールであって、
複数の状態選択/出力生成ブロック、複数の比較ブロック、接続切替器、複数の状 態遷移情報テーブルを有し、
上記複数の状態選択/出力生成ブロックの各々は、状態セレクタ、現状態レジスタ、 出力生成器より構成され、
上記複数の比較ブロックの各々は、コード比較器、入力コードレジスタ、パターンコ ードレジスタより構成され、
上記接続切替器は、複数の入力と複数の出力との間の接続関係を変化させるもの であり、
上記複数の比較ブロックの出力と上記複数の状態選択/出力生成ブロックの入力と は上記接続切替器を介して変更可能な形で接続され得ることを特徴とする処理モジ ユーノレ o 請求項 10記載の処理モジュールを複数有する複合処理モジュールであって、 上記複数の処理モジュールが縦列的に接続され、入力段に近 、側の処理モジュ 一ルカ ツセージ全体を処理完了する前に次段の処理モジュールが処理を開始する ことを特徴とする複合処理モジュール。
PCT/JP2007/058940 2006-05-08 2007-04-25 テキスト処理モジュール WO2007129577A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008514433A JPWO2007129577A1 (ja) 2006-05-08 2007-04-25 テキスト処理モジュール

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006-128877 2006-05-08
JP2006128877 2006-05-08

Publications (1)

Publication Number Publication Date
WO2007129577A1 true WO2007129577A1 (ja) 2007-11-15

Family

ID=38667685

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/058940 WO2007129577A1 (ja) 2006-05-08 2007-04-25 テキスト処理モジュール

Country Status (2)

Country Link
JP (1) JPWO2007129577A1 (ja)
WO (1) WO2007129577A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231272A (ja) * 2009-03-25 2010-10-14 Nodc:Kk キーワード列検出方法及び装置
JP2011070502A (ja) * 2009-09-28 2011-04-07 Mitsubishi Electric Corp シーケンス制御回路及び制御回路

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0317780A (ja) * 1989-06-15 1991-01-25 Hitachi Ltd 記号列検索方法および装置
JP2005242668A (ja) * 2004-02-26 2005-09-08 Nippon Telegr & Teleph Corp <Ntt> パターンマッチング装置および方法ならびにプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0317780A (ja) * 1989-06-15 1991-01-25 Hitachi Ltd 記号列検索方法および装置
JP2005242668A (ja) * 2004-02-26 2005-09-08 Nippon Telegr & Teleph Corp <Ntt> パターンマッチング装置および方法ならびにプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SASAKI Y. ET AL.: "Hardware Kaisogata Aho-Corasick Machine o Mochiita Web Service Kosoku Shori Gijutsu", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN: COMPUTING SYSTEM, vol. 47, no. SIG12, September 2006 (2006-09-01), pages 308 - 316, XP003016955 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231272A (ja) * 2009-03-25 2010-10-14 Nodc:Kk キーワード列検出方法及び装置
JP2011070502A (ja) * 2009-09-28 2011-04-07 Mitsubishi Electric Corp シーケンス制御回路及び制御回路

Also Published As

Publication number Publication date
JPWO2007129577A1 (ja) 2009-09-17

Similar Documents

Publication Publication Date Title
US20210255911A1 (en) Programmable device, hierarchical parallel machines, and methods for providing state information
JP5763784B2 (ja) 要素利用のための状態のグループ化
JP6082753B2 (ja) ステートマシンにおけるデータ解析用の方法およびシステム
JP5857072B2 (ja) オートマトンの入次数および/または出次数を制御するための量化子の展開
JP6126127B2 (ja) ステートマシンにおけるルーティング用の方法およびシステム
EP2668575B1 (en) Method and apparatus for compiling regular expressions
JP5848778B2 (ja) Fsmを実装するための専用要素の利用
JP6017034B2 (ja) 状態機械エンジンが受信したデータを取り扱うための方法およびシステム
TWI465945B (zh) 用於型樣辨識處理器中降低電力消耗之方法及裝置
JP6109186B2 (ja) 状態機械格子におけるカウンタ動作
Stoelinga An introduction to probabilistic automata
JP2014506693A5 (ja)
WO2009116646A1 (ja) マルチバイト処理向け文字列照合用有限オートマトン生成システム
CN104011736A (zh) 用于状态机中的检测的方法及系统
JP2015531934A (ja) パターン認識処理における電力管理のための方法およびシステム
US10769373B2 (en) Contextual validation of synonyms in otology driven natural language processing
Chen et al. Computer generation of high throughput and memory efficient sorting designs on FPGA
Palumbo et al. Coarse‐grained reconfiguration: dataflow‐based power management
WO2007129577A1 (ja) テキスト処理モジュール
US10769099B2 (en) Devices for time division multiplexing of state machine engine signals
Kaneta et al. High-speed string and regular expression matching on FPGA
Semé et al. Repetitions detection on a linear array with reconfigurable pipelined bus system
Chin et al. Implementing And Verifying Finite-state Machines Using Types In Higher-order Logic
SOEWITO DNA COMPRESSED AND SEQUENCE SEARCHING ON MULTICORE
Namba et al. Test compression for IP core testing with reconfigurable network and fixing-flipping coding

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07742375

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2008514433

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07742375

Country of ref document: EP

Kind code of ref document: A1