JP2006505044A - ハードウェアにより加速された妥当性検証パーサ - Google Patents

ハードウェアにより加速された妥当性検証パーサ Download PDF

Info

Publication number
JP2006505044A
JP2006505044A JP2004548350A JP2004548350A JP2006505044A JP 2006505044 A JP2006505044 A JP 2006505044A JP 2004548350 A JP2004548350 A JP 2004548350A JP 2004548350 A JP2004548350 A JP 2004548350A JP 2006505044 A JP2006505044 A JP 2006505044A
Authority
JP
Japan
Prior art keywords
data
state table
token
validation
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004548350A
Other languages
English (en)
Inventor
ミカエル シー ダップ
エリック シー レット
サイ ルン エヌジー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lockheed Martin Corp
Original Assignee
Lockheed Martin Corp
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
Priority claimed from US10/334,086 external-priority patent/US7080094B2/en
Application filed by Lockheed Martin Corp filed Critical Lockheed Martin Corp
Publication of JP2006505044A publication Critical patent/JP2006505044A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Document Processing Apparatus (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

全てでないとしても、妥当性検証パーシングに伴う大部分の処理および固定負荷をホストプロセッサから除去するために、ハードウェアにより加速された妥当性検証パーサを提供する。この除去は、一つには、トークンに基づく状態テーブル及びデータ辞書への並列アクセスにより、更には、それらからの出力のそれぞれを合成すること、及び、選択的にそれらの向かい先を再設定することによる。伝送制御ワード(TCW)の一部は、状態テーブルを通って進むように用いられる。TCWの一部は、プラットフォームの独立性と内部使用可能性を支援するXML(商標)のような言語によるテキスト文書に対応するツリー構造のデータオブジェクト(TSDO)の形成を制御するために用いられる。スタックは、要素の包み込みと要素の集合とに適応するために提供される。TSDOの形成は、妥当性検証パーシングと並列に、同期的かつ自律的に実行されることができ、また、好ましい。

Description

この発明は、ネットワークによって内部連結された個々のデータプロセッサにおいて、XML(商標)文書のような文書のパーシングと妥当性検証のために用いられる妥当性検証解読処理に関し、より具体的には、このような文書の妥当性検証を加速するためのハードウェア妥当性検証プロセッサに関する。
ネットワークにおけるコンピュータとコンピュータの接続との間のディジタル通信の分野は、近年多様な形態で急速に発達し、ここ数年のパーソナルコンピュータの急増をもたらしている。この、相互連結、および遠隔処理の可能性における増加は、ネットワークシステム等における個々のコンピュータの有効能力および機能を大きく発展させた。それでもやはり、個々のコンピュータやシステムの使用、それらのユーザの好み、並びにコンピュータが用いられる際の技術の状態などの多様性は、個々の装置の能力や構成並びにそれらのオペレーティングシステムに、実質的な程度における多様性を生み出しており、「プラットフォーム」と総称されるこれらは、一般に、ある程度の範囲で、特にオペレーティングシステムとプログラミング言語のレベルにおいて、相互互換性を欠いている。
このプラットフォーム特性の非互換性、および、これと同時に生ずる通信および遠隔処理、並びにそれをサポートするに足る十分程度の互換性に関する要求は、結果として、プログラミングに関する対象と(本質、属性、および関係の基準システムを通して、多少とも一般化されたモジュールのグループとしてアプリケーションやデータを集めようというコンセプトを含む)、それを具現化するための多数のプログラミング言語とを発展させた。エクステンシブル・マークアップ・ランゲージ(XML;商標)は、このような言語であり、広く普及していると共に、任意の構成およびアーキテクチャを有するネットワークを介して文書として送信することができる。
このような言語において、特定の文字記号列は、特定のコマンドや識別に対応しており、特別な文字や他の重要なデータ(制御ワードと総称する)を含み、それらは、データや演算が事実上自身を識別し得るようにして、以後、それらが「オブジェクト」として取り扱われるようにするためのものであり、これにより、結びつけられたデータとコマンドは、言語の異なる相違するアプリケーションで用いられる適当なフォーマットとコマンドに変換されることができ、その結果、接続されたプラットフォームのそれぞれにおいて、特定の機械で所望の処理の実行をサポートするに足る互換性が生み出される。これらの文字記号列の検出は、パーシングとして知られる処理により実行され、センテンス等の表現の系統的配列(syntax)をそれらの構成部分に分解し、また、それらを文法的に表現する従来の手法に類似している。
XML(商標)文書をパーシングする際、中央処理ユニット(CPU)の処理時間の大部分、おそらく殆どは、処理されている特定のXML(商標)仕様に対して定義されている制御ワード、特定文字、および他の重要なデータを探すための文書の通読に費やされる。この処理は、典型的には、個々の文字を照会して、それが、例えば以下のような「<command>」、「<data type=dataword>」、「</command>」等を含む所定の興味記号列のセットに属しているかを判断するソフトウェアにより実行される。何れかの対象記号列が検出されると、トークンが、トークンの開始とトークンの長さのために、ポインタと共に文書中のその位置に記録される。これらのトークンは、文書の全てが解析(パース)されるまで蓄積される。
この処理には、トークンの集まりや文書中に表れる文字記号列が、全体として、明確、かつ内部において首尾一貫した文書を形成するように良好に構成されていることを確認するために、文書タイプ定義(DTD)或いはXML(商標)スキーマなどの仕様のような「文書モデル」に含まれる規則および定義に対して、トークンを評価するための処理が続かなければならない。この処理は、妥当性検証として知られており、一般には、上述した興味記号列を見つけるための処理と殆ど同じ手法で進められるが、文字を表す単一の8ビット(又はより長い)バイトではなく、複数バイトのシーケンスに対応する16ビット(又はより長い)トークンを操作し、また、プラットフォームの独立性と内部接続可能性とを支援する、自己定義特性、並びに、XML、SGML(商標;XML(商標)はこれを単純化したもの)及びHTML(商標;XML(商標)の特別な場合)などのような言語の特性を受け入れるために、トークンと、他のトークンの内容又は主張との一貫性をチェックする。
トークンを見つけるためのパーシング、および妥当性検証のためのパーシングは、一般的に、何れも、概念的にテーブルを基礎とする有限状態装置(FSM)、若しくは、これらの興味記号列、又は、発見され、トークンにより表される要素間の一貫性を探索するための状態テーブルを用いて実装される。状態テーブルは、メモリ内に置かれ、文書中の文字やトークンの特別なパターンを探索するように設計されている。興味記号列を見つけるためのパーシングでは、現在の状態が状態テーブルに対する基礎アドレスとして用いられ、また、入力文字又はトークンを表すアスキー(ASCII)がそのテーブルのインデックスである。文字興味記号列は、要素、属性/属性リスト、又はデータなどのような幾つかのタイプのうちの何れかであり、また、要素は、単純な要素若しくは集合関数であることがあると共に、包まれた状態(ネスト)であることもある。妥当性検証のためのパーシングは、他の特定のトークンと関連している要素又はトークンと、それらの間の階層的関係とを判断するために、主として、与えられた文字記号列のタイプと包み込み(ネスティング)それ自体に着目する。
この処理の目的は、文書が、文書(例えば、XML(商標))の標準と合致し、かつ、全体として、DTD又はXML(商標)スキーマにより定義された正しい構造を有する妥当な文書であることを判断することだではなく、データの情報内容を完全に表す構造を有するツリー構造の文書オブジェクトのような階層的データ構造を生成することでもある。従って、興味文字記号列を見つけるためのパーシングは非常に時間を要し、かつ、プロセッサに大きな負荷を与えるものであるが、妥当性検証のためのパーシングは、より一層そのようなものである。つまり、例えば、XML(商標)データは、テキストによるものであり単なるデータではないが、そのデータ構造は、情報内容を表現するために自由に特定できる反面、このようなテキストから抽出されなければならないから、要求される処理が、特別に時間を要し、かつ、プロセッサに大きな負荷を与えるものであることは、容易に評価可能である。
同時に、多重の階層レベルを有し得る集合要素および柔軟な包み込みを適正に取り扱うために必要とされる処理の潜在的な複雑さは、局所コンピュータのCPUにかかる処理負荷を低減するための、専用或いはハードウェアプロセッサの使用を複雑化する。つまり、一般用のプロセッサを制御するための無駄の低減それ自身に起因して、一般用プロセッサとの比較において、専用若しくはハードウェアプロセッサが、しばしば優れた処理速度を提供し得ることは一般に理解されているが、処理機能がより複雑化した場合に、或いは、柔軟性に関する要求する要求がより大きくなった状態で、専用プロセッサが、適切なもの足り得るのか、或いはパフォーマンスにおいて何らかの顕著な効果を提供するのかは、確証されたものではない。一般的に、機能の柔軟性に対する増加した複雑さ及び/又は要求には、適用の多様さや得られるパフォーマンスゲインによっては経済的な正当性を得ることができないハードウェアへの要求の増大によってのみ対応が可能である。妥当性検証のパーシングが、その要求処理時間にも関わらず、プログラムされた一般用コンピュータ上で実行されていたのはこのためである。
この発明は、実質的なパフォーマンスゲインが限定されたハードウェアに由来する、妥当性検証処理のためのハードウェアアクセラレータを提供する。
本発明のこれらおよび他の事項を達成するため、プラットフォームの独立性と内部接続性を支援するコンピュータ言語におけるトークン化されたテキスト文書のための、妥当性検証パーシングの加速方法、およびハードウェアにより加速された妥当性検証パーサは、トークンに従ってデータ辞書および状態テーブルの双方からデータを取得する装置と、伝送制御ワードを生成するために、状態テーブルおよびデータ辞書からのデータを合成する加算器と、状態テーブルから更にデータを取得するために伝送制御ワードの一部を他のトークンに合成する加算器と、伝送制御ワードの部分制御の下でトークン化された文書に対応するツリー構造のデータオブジェクトを形成するための論理とを備える。
以上の、および他の事柄、様相および効果は、以下に続く好ましい実施形態の詳細な説明と、図面の参照により一層理解することができ、図面には以下の事項が記載されている。
図1は、本発明に係るハードウェア妥当性検証パーサアクセラレータを、高度の概要化した図である。 図1Aは、ツリー構造の文書オブジェクトの例の形式を明らかにする図である。 図2は、本発明に係る状態テーブルの好ましい論理レイアウトの図である。 図3は、状態テーブルエントリの好ましいフォーマットを示す図である。 図4は、本発明に係る図1の要素及び属性バッファの好ましい論理レイアウトを示す図である。 図5は、データ辞書エントリのフォーマットの好ましい例の図である。 図6は、本発明に係る伝送制御ワード(TCW)の好ましい論理レイアウトを示す図である。 図7は、図1に概要が示された妥当性検証パーサアクセラレータの動作の概観を示すフローチャートである。 図8は、TCW更新規則を実装するための本発明の動作を示すフローチャートである。 図9は、TCW動作を示すフローチャートである。 図10は、TCW動作を示すフローチャートである。 図11Aは、TCW動作を示すフローチャートである。 図11Bは、TCW動作を示すフローチャートである。 図11C及び図11Dは、TCW動作を示すフローチャートである。 図11Eは、TCW動作を示すフローチャートである。
以下、図面、より具体的には図1を参照して、そこには高度の概要化された形式で、本発明に係るハードウェア妥当性検証パーサアクセラレータの概観が示されている。本発明は、XML(商標)文書が典型であるような、一般にテキスト形式をとるオリジナル文書において、文字記号列に対応するトークンの特性または設定が既に解読(パース)された文書に対して作動する。(本発明は、XML(商標)文書をパーシングするうえでの好ましい適用との関係で説明されるが、本発明の原理は、如何なるプログラム言語において具現化されているファイルのパーシングにも、特に、固定された、若しくはユーザによる定義が可能な規則に従って、オブジェクトとその構造を識別することが求められるオブジェクト指向のプログラム言語に対して適用することができる。)このトークン化された文書は、文書基礎アドレス、文書限界アドレス、及び文書次アドレスをそれぞれ含むレジスタ112,114及び116に従ってアクセスされるメモリ/バッファ110に記憶される。
トークンは、順番に取り込まれ、トークンバッファ120に記憶される。そして、トークンの一部は、加算器130に対するアドレスの部分(これは状態テーブル160に入るアドレスを提供する)、データ辞書150に入り、かつ、名前空間マッピングメモリ(異なる文書に関して同じ要素名を用いる、異なる製作者によって引き起こされる問題を回避するためのXML(商標)の付随物であり、当業者によって十分に理解されているため、これ以上の説明は必要がない)140に向かうアドレスを提供するために用いられる。レジスタ152を介して、データ辞書150に入れる基礎アドレスを提供する名前空間マッピングメモリ140に関しては、レジスタ142からデフォルトのアドレスが提供される。
非常に高度に概要化された図1の残部を考えると、加算器170、伝送制御ワード(TCW)レジスタ180、スタック190、加算器130、および状態テーブル160は、ループを形成しており、状態テーブルが一つの状態から他の状態へ進むのを許す矢印Aにより一般的に表される。スタック190は、基本的に、包まれたトークンの評価に適合するため、および、要素間の親子の繋がり又は関係が正しく、かつ、良好に構成されているかを判断するために、トークンの順序を、それらが考慮される順序に入れ替えることを目的としている。スタックの制御は、現在のトークンに基づいて並列に引き出される状態テーブル160およびデータ辞書150からの情報の組み合わせに由来する。従って、スタック190は、XML(商標)のシンタックスの特定の特徴(例えば、集約関数)との適合を得るものとして考慮することができ、更なる説明は、後述する詳細な説明に譲ることとする。
このように、ループAのおおよその機能は、次状態を含む状態テーブルから情報を引き出し、更なるデータを加算器170に加え、データを引き出し、TCWレジスタ180内の組み合わせ信号から、最終的なツリー構造データオブジェクト(TSDO)を制作するために、コマンド、割り込み、および制御信号をスタックし、並びに、レジスタ192および194内の次状態及び/又は基礎アドレスを、それぞれ次のトークンに加えることである。TSDOへのノードの追加を提供するための制御信号の抽出は、現在のトークンの妥当性検証に対応しており、検出エラーは、割り込みの発行により表される。TCWは、基本的に、一定の更新を伴う状態テーブル160及びデータ辞書150からの制御フラグ及び状態伝送制御、並びに、適用された割り込み及びスタックの組み合わせである。
このように、TCWレジスタは、状態テーブルを通じての進歩の結果が、エラーを検出するための手法で、また、未だに一つのエラーも検出されていない間は、それぞれレジスタ302,304から供給される基礎及び限界アドレスに従って、要素及び属性バッファ200に一時記憶されたデータによりTSDO300を適正に構成するための手法で制御されるように、状態テーブル160、および、許容されるトークンのシンタックスを表すデータ辞書150の内容の中から取り出された制御信号及びデータを、合成し、かつ、その向かい先を再設定するように機能する。このアーキテクチャによれば、そうしようとする意志において調整することのできる状態テーブルの内容を適合することにより、標準と、確立されたタイプの文書の定義とがデータ辞書として用いられることを支援することができる。アクセラレータ処理ユニット100は、以下に説明する本発明の動作を統制することにつき、また、TSDOを構築することにつき責任を有するものである。
アクセラレータ処理ユニットをインターフェースで連結し、本発明に係るハードウェアアクセラレータの動作の開始を制御するための用いられるホストプロセッサ400も備わっている。ホストプロセッサの役割が、本発明のハードウェアアクセラレータの効果により低減されており、要求される動作が割り込みの供給のための単純なメモリアクセスだけであることが、以下の説明から評価される。本質的に、文書のシンタックスおよび包み込まれた要素および要素の集合に従うものに対応する、妥当性検証処理の固定負荷の全ては、実質的に、妥当性検証パーシングアクセラレータに移し替えられており、プロセッサの動作は、必要に応じて、ハードウェアアクセラレータ100からの処理の呼び出しに応えることだけである。
以上の概観を前提として、TSDOの一例の形成を示す図1Aを参照して、本発明により実行される妥当性検証パーシング処理の目的であるTSDO300の一例を説明することは、本発明のハードウェアにより加速された妥当性検証パーサヲ理解するうえで有益である。TSDOは、TSDOメンバーレイアウト内に示すように、好ましくは、メンバー/ノード毎に、7つの要素(例えば、兄弟要素、子供要素、属性リスト、名前長、名前ポインタ、値長、および値ポインタ)を有する2重連結リストのデータ構造としてメモリ内に構成される。表示された要素の8行は、個々にTSDOのメンバーレイアウトに対応しており、このため、TSDOの8つの個別のメンバーに対応しており、兄弟および親/子関係を示すために水平方向にオフセットしている。
2重連結リストを形成するために、幾つかの要素は、それぞれ、特定の又は同じタイプの、先の及び次の要素を含む、先の及び次のメンバーに対する2つのポインタp,nを含んでいる。このため、「次の兄弟要素ポインタ」は、現メンバーと同等にインデント処理されている次のメンバーを指す。同様に、ポインタは、属性リスト及びメンバーの属性に対して、或いはそれらから提供されている。「先の子供要素」は、親要素を指す。第3乃至第5行、および第2、第6および第7行に示すように、先及び次ぎのポインタは、兄弟要素の中で鎖を形成する。残りの要素は、現実のデータの長さ及び位置である。この情報より、図示されているように、現在のメンバー/ノードに従って5つの制御(例えば、親ノード、現要素ノード、現属性ノード、要素親、及び第1属性)が提供されることが望ましい。これらの制御は、基本的に、現メンバーが要素或いは属性であるかを追跡し、また、それらが存在しているノード、要素の属性リストの第1属性、直接関係のある親要素、およびルーツノードを追跡する。これらの制御に従うこととしれば、TSDOの構造の中で、個々の情報片の性質を完全に、かつ、明確に定義しながら、ツリーを通読して、所望の情報の全てを配置することができる。
同様に、処理の行われているデータファイルの特徴を見直すことは、本発明を理解するうえで有効であり得る。XML(商標)の例においては、要素とデータは、本質的にテキストであるが、文書の異なるクラスに対して自由に構築することのできる規則に従うファイルの中で具現化される。テキスト文書において具現化される規則は、実際には、そのテキスト文書の妥当性検証に用いられ、かつ、必要ではないがテキストファイルから分離したものと考えることのできる「文書モデル」と呼ばれるファイルの中で要約される。その規則は製作者が自由に定義することができるが、幾つかの規則の標準セットが存在し、便利であることからしばしば利用されている。
XML(商標)文書、或いは、現時点で使用可能な何れかの他の文書が準拠している規則を定めたファイルは、他は現在開発中であるが、一般に幾つかの形式の中の一つに従う文書モデルと称される。文書モデルは、与えられた要素と結びつけられ属性と一緒に文書内に表れ得る要素を定義し、また、要素の親子関係、子要素が表れ得るシーケンス、及び子要素の数、並びに、要素が空であるか、若しくは、テキスト並びに属性のデフォルト値を含み得るか、などのような文書についての構造情報をも定義する。文書型定義(DTDs)は、XML(商標)文書モデルの記述の、良く知られた例である。
DTD言語は、特に、SGML(商標)文書の妥当性検証規則を定義するために開発されたものである。先に示唆した通り、XML(商標)はSGML(商標)を単純化したサブセットであり、DTDsはXML(商標)妥当性検証規則としても用いることができる。しかしながら、特定の文書、或いは文書のクラスの妥当性検証に要求される情報は、伝送或いは利用の形式に関わらず、同じでなければならないため、妥当性検証情報の表現形式間の変換は、理論上、相当に些細であるべきで、また、DTDsに関する議論は、同じ情報の他の如何なる形式に対しても同様の適用されるべきである。さらに、非常に複雑で印刷記号に強く依存するDTDsのシンタックスの詳細は、本発明の原理に対して重要ではなく、詳細に説明する必要がない。
XML(商標)文書(及び、プラットフォームの独立性と内部使用可能性を支援する他の言語の文書)が、主としてデータ構造を提供し、そのデータ構造を使用するにあたり、選択的にデータにアクセスするために、プログラムによってそのデータを通読する能力が要求されることも、理解しておくべきである。XML(商標)文書を読むことができ、かつ、それらの内容および構造にアクセスすることのできるソフトウェアモジュールは、XML(商標)プロセッサ若しくはXMLAPIと称され、これらは、同じAPIによる如何なる従順実装の下でも走ることができるように、受け入れられており、商業的に提供が可能であり、かつ工業的に標準化されているAPIを用いることが、一般には、通常であり、かつ、推奨する実務ではあるが、製作者が自由に実装してもよい。
現在は、主として2つのAPIが現時点での工業的な標準として取り扱われており、文書オブジェクトモデル(DOM)と、XML(商標)用単純API(SAX)がそれである。より一般的であり、かつ、当業者は、これによりSAXを用いて本発明を実現することが可能となることから、以下においては、DOMを参照して本発明を説明する。DOMは、XML(商標)文書の、メモリ内のツリー表現を基礎としている。XML(商標)文書がプロセッサにロードされると、プロセッサは、その文書を適切に表すメモリ内ツリー構造を構築しなければならない。(反対に、妥当性検証は、本質的に、適正に構成された文書に従うツリー構造を構成することである。)DOMは、また、XML(商標)ツリーをプログラムに基づいて通読し、かつ、その要素、値、及び属性を操作するために用いられるべきプログラムによるインターフェース(方法及び特徴の名前を含む)を定義する。換言すると、妥当性検証の過程で開発されるTSDOデータ構造は、DOMAPI又は他の単純API、および文書の内容の使用を可能とする実装を支援する。
以上の説明を背景として、一般用のコンピュータ上でソフトウェアを用いて、内部操作の可能性を支援する言語で書かれたXML(商標)または他の文書の妥当性を検証するための処理が、著しくプロセッサに負荷を与えるものであり、また、DTDなどの要素のそれぞれに特定された内容、構造およびシンタックスに関する多数の比較のために多数のメモリアクセスが必要であり、そのために遅くなっていることは容易に理解できる。DTDなどにおける要素の数は、理論上無制限であり、比較的単純なデータ構造においても何千となることがあり、一方で、属性、子要素、及び兄弟要素の数は、必要に応じて多数となり、また、データ文書は、容易に、所与の要素や属性の何百万という場合を含み得る。換言すると、一般用のプロセッサ上のソフトウェアが有しなければならない非常な一般性は、処理を多分に複雑化させ、また、負荷を発生させる。比較と、その比較を行うための規則が、図1に示すループAにおけるトークンの高速連続評価と同時に、データ辞書の中に具現化されるDTD、及び、プロセッサの並列処理を制御するために高速で合成され、かつ、指向先が再設定される状態テーブルエントリの中に存在する信号の中に具現化されることから、本発明に係るハードウェアにより加速された妥当性検証パーサが、比較的少量のハードウェアで非常に高速での実行を可能とする比較的単純な一貫した経路的な手法でデータを取り扱うことは、比較において、以下の説明から判ると思われる。
図2を参照すると、状態テーブル160の論理レイアウトが概略的に示されている。状態テーブルは、特定のDTDなどに従って構築されており、許される全ての要素を収容している。次状態は、(図3に示し、かつ、以下に説明するように)部分的に16ビットのトークン値によって指し示される状態テーブルエントリのそれぞれにおいて特定されていることから、トークンが好適に次状態を含んでいることが理解されるべきである。図1に示すように、トークンバッファ120内の値(又は、その値の部分)は、加算器130において、状態テーブル内のエントリにアクセスするために、状態テーブルの基本アドレス及び次状態オフセットアドレスと組み合わされる。
特に、高速での格納要求を低減するために、状態テーブルの、状態テーブル基礎アドレスにより指し示された領域を提供し、次いで、トークン(パレット機構を用いることで最適化することができる)を用いて状態テーブルの領域の列を指し示し、また、次状態オフセットによって行を指し示すことが望ましい。このような場合には、アドレスの3つの部分を単純に連結することにより、例えば、それぞれのアドレス部分の供給源からレジスタの異なる部分を単純にローディングすることにより実行可能な完全アドレスを形成することができる。
状態テーブルの好ましいフォーマットを図3に示す。個々の状態テーブルエントリは、64ビットの長さを有し、2つの32ビットワードに分割されていることが好ましい。もちろん、当業者には明らかなように、他のフォーマットも用いることができる。
下位アドレスワードは、順番に、16ビットのトークン値と、それぞれトークンフラグおよび制御フラグのための2つの8ビットフラグ領域とに区分されている。(トークンは、ここでその全体を参照として編入すると共に、その基礎原理に従う本発明の実施に対して、その形式中他の部分は特に重要でない、同時提出の米国仮特許出願60/ (代理人記録番号FS−0076/02890051PR)において記載されているハードウェアパーサアクセラレータと一致する手法で定義されることが望ましい。この点に関しては、しかしながら、トークン値は、状態テーブルの列を指し示すために既に使用されており、このために、リザーブ領域として設計されていることから、16ビットのトークン値領域は本発明においてはある程度冗長とされている点に留意するべきである。)トークンフラグは、主として、包み込み、所与の要素が集合関数であるか否か、及びトークンにより表された要素のタイプを追跡するために提供される。その領域の8ビットが個々に表す個々のフラグは、それぞれ、包み込みのインクリメント、エレメントは集合関数、新要素名、要素値、属性名、属性値、要素の終わり、及び、包み込みのデクリメント、であることが望ましい。同様に、制御フラグ領域の個々のビットにより表される個々のフラグは、それぞれ、ホスト/メインプロセッサに対する終了割り込みセット、ホスト/メインプロセッサに対する特別割り込みセット、(リザーブ)、状態テーブルエンジン処理停止(図9及び図10に示すように、これらの制御フラグはTCWに複製される)、要素又は属性名の格納、要素又は属性値の格納、(多大に冗長ではあるが上記の編入した出願に記載されるハードウェアプロセッサアクセラレータと対応させるために含めており、ここではリザーブ領域となり得る文字パレットスキップ可能化、及び、現トークン、であることが望ましい。
状態テーブルからのこのデータは、加算器170において、データ辞書(DTD、又はXML(商標)スキーマなどに対応する)からのデータと、好ましくはそれらの連結として合成され、その結合結果の部分は、要素及び属性バッファに提供され;その好ましい論理レイアウトは、図4に概要的に示されている。データ辞書エントリの好ましいフォーマットは、図5に示す。
データ辞書は、好ましくは、ハッシュテーブルとして構成され、ハッシュキーは、125においてトークンから取り出される。データ辞書エントリのフォーマットは、128ビットの長さを有することが望ましい。そのエントリは、XML(商標)や、内部使用の可能性を支援する他の言語で記載された文書データが準拠している(べき)規則を記述するDTDやXML(商標)スキーマなどから取り出される。(当業者によって理解されるように、DTDやXML(商標)スキーマなどの内部のテキスト情報が、外部の構成要素によってデータ辞書フォーマットに翻訳される。このため、翻訳を実行する現実の構造については、更に説明する必要がない。)16ビットは、レジスタ120からの現トークンに対応するトークン値を保持し、妥当性検証パーサの適正な動作、特に、状態テーブルとデータ辞書との間の同期の内部チェックとして状態テーブルから取り込んだトークン値情報との比較に用いられる。(つまり、この比較は、通常動作においては必要でなく、検査またはデバッグの際に価値を発揮する。)4ビットは、スタックコマンドフラグのために準備されており、それらのうち3つが使用され(例えば、それぞれ、プッシュ、ポップ、パススルーのため)、一つがリザーブとされている。スタックコマンドフラグは、例えば、所与の要素によって要求される要素の包み込みや集合を表している。バイトを完成させる更なる4ビットは、これもリザーブである。8ビットは、タイプフラグのために準備されている。これらのビットは、要素と結合されるデータのタイプ(例えば、ブール代数、2値、小数など)を特定するために用いられる。タイプフラグ領域を用いると、8ビットで、256の異なる種類のタイプを特定することができる。タイプフラグ領域は、基礎原理に従うと本発明の動作に必要ではないが、要素データタイプに対する妥当性検証値の整合を向上させることができる。これらの領域には、それぞれ、状態テーブル基礎アドレスと、データパターン及びレンジ基準、並びに属性規則基準を提供する2つのポインタとを提供する3つの32ビットワードが続いている。上記の領域のうち、現トークンと結び溶けられるスタックコマンドフラグ、タイプフラグ、および状態テーブル基礎アドレスは、TCWレジスタ180に向けられ、一方、その残りは、好ましくは、自由に走ることができ、かつ、非常に早い応答を示す特別目的の論理回路内で、トークン、及び/又は、文書(例えばXML(商標))の関連テストとの比較に用いられる。
バッファに与えられた伝送制御ワード(TCW)及びレジスタ180の好ましい論理レイアウトを図6に示す。バッファレジスタの使用は、理論上必要ではないが、望ましいと考えられ、このため、上記において示唆しているように、データと制御信号との指向先が再設定されるにあたって同期を確保するための単純で安価な方策として好ましい。TCWに与えられる信号の供給源と、それらの向かい先である、図1に示す妥当性検証パーサアーキテクチャのそれぞれの部分を観察することは、本発明を理解するうえで重要である。個々の領域の供給源/吸入場所の詳細は、図8乃至図10に示す。
図6に示すTCWの好ましい論理レイアウトは、データ辞書から受け取ってレジスタ194に受け渡す状態テーブル基礎アドレス194と、状態テーブルから受け取ってレジスタ192に受け渡す次状態オフセットとを含む3つの32ビットワードを備えている。残りの32ビットは、データ辞書から受け取ってスタック190の制御動作に用いられる4ビットのスタックコマンド領域と、4ビットの集合状態フラグ領域と(集合関数は、ツリー構造の異なるレベルの要素を含むことができるため、それらのうち2ビットだけが、現トークン及び/又は先のトークンが集合関数であるかを示すために用いられることが望ましい)、データ辞書から受け取る8ビットのタイプフラグ領域と(上記の通り、その取得は図8に示され、その利用は図10に示されている)、状態テーブルから受け取って、図10に示すようにEAB及びTSDO処理の制御に用いられるトークンフラグ及び制御フラグのための2つの8ビット領域とを含んでいる。トークン値は、トークンバッファにおいて容易の提供が可能であるため、データ辞書トークン値領域は、データ辞書からも状態テーブルからも持ち込まれない(これらの値は、好ましく比較するものとする)。
図3Aには、トークンの完全な定義が示されていることに留意するべきである。所定のトークンに(新たな要素名にセットされたトークンフラグと共に)結びつけられたトークンテキスト記号列のハッシュ値はデータ辞書を指し示すために用いられる。トークン値は、トークンに割り当てられた特別な数であり、状態テーブルの列を見つけるために用いられる。場合によっては、トークンが、文字通りの文字記号列、或いは整数値を表していることを示す一般的な値となる。他の場合には、要素名或いはタグ名のコード化された番号となる。
再び図4を参照して、ここでは、要素及び属性バッファ(EAB)を十分に詳しく説明する。当業者によれば、アーキテクチャについての上記部分は、シンタックス、包み込み、及び集合関数についての追跡及び処理が完全に有限状態装置と本発明に係る関連するアクセラレータレジスタとによって取り扱われている一方で、EABの全領域が、本質的に、メモリアクセスと、単純で、判りやすく、かつ、アクセラレータ処理ユニットにより高速で実行される比較とを備える処理によって満たされるように、データを提供可能な状態にしていると評価される。
特に、所与の解読(パース)された要素は、要素タイプ、及び属性タイプ又は値タイプの何れか一つとなることができ、それらは何れものTSDO300において異なった取り扱いを受けなければならない。EABは、図1を参照して上記において示唆した通り、完了時に2重結合構造のTSDOを開発するために、(まだTSDOに置かれていない)特定のノードの周囲において属性又はデータを指し示す構造特定ポインタを集めて保持する。EABの特定の領域を参照して、計数を開始し、また終了させる包み込み要素は、図3との関係で上述したトークンフラグ(例えば、第1および第8ビット)から直接的に計数/蓄積することができ、その一方で、個々のトークンに対応する、要素及び属性の名前基礎アドレス及び長さ、並びにそれらの値は、トークンバッファ120から容易に提供が可能である。TSDO300の現ノードに対する、親子及び集合関係、並びにタイプ及び制御情報は、図6に示すようにTCWから直接的に提供が可能であると共に、トークン化された文書の個々の要素/トークンの妥当性が検証される毎に新たなノードがTSDOに追加されるのを許容する。
ここで、図7を参照して、本発明に係るハードウェア妥当性検証パーシングアクセラレータの全ての動作を要約する。ハードウェアアクセラレータの動作は、上述した好ましいフォーマットのようなフォーマットに入れられて解読および妥当性検証の対象とされる文書に対応するデータを状態テーブル160およびデータ辞書150にローディングする(705,710)初期化によって開始される。妥当性検証の対象であるトークン化された文書が次にメモリ110にローディングされ(715)、スタック制御レジスタ及び状態テーブル基礎アドレスが初期化され(720,725)、更に、次状態オフセットが初期状態にセットされる(730)。
トークン化された文書の処理は、第1(又は次の)トークンをトークンバッファ120に抜き出す(735)ことにより開始される。トークンはデータ辞書検索処理に用いられるハッシュキーにハッシュ化(乱数化)される。次に、検索処理740が、データ辞書基礎アドレスを更新するためにメモリ140内で実行され、これにより、そのデータ辞書基礎アドレスに対応するデータ辞書150における検索処理745の実行が可能となる。新たなトークンと、加算器130を介して提供された状態テーブルレジスタ192及び194の現在の内容とを用いて、状態テーブルは、同時にアクセスされ得る750。次に、加算器170を介して、TCWレジスタが、以下に図8及び図9との結びつきにおいて詳細に説明する規則に従ってデータ辞書150及び状態テーブルから取り出されたデータに更新される755。次に、EAB200が、TCW内のフラグ設定に基づく規則に従って更新される760。状態テーブルエントリに含まれる制御フラグに従って、TCW内に割り込みフラグがセットされている場合には、ホスト/メインプロセッサに対して、割り込みが同時に送信され得る。割り込みが発せられない場合は、EABに集められた情報が、トークン、及び制御フラグの設定に基づく規則に従ってTSDOに加えられ765、これもまたアクセスされた状態テーブルエントリから取り出されたTCWの中で、割り込みの発生がチェックされる770。多レベル集合関数(例えば、他のXML(商標)要素により作られたXML(商標)要素)を支援するためにプッシュ、ポップ、又はパススルー処理775が、スタック190の中で同時に実行される。データがスタック上にプッシュされない限り、スタックから新たな基礎アドレスと次状態オフセットデータとが出力され、レジスタ192および194が更新される780。ハードウェアアクセラレータはここで、以上の処理により、トークンの妥当性を検証しており、かつ、TSDOにノードを加えており、また、ここで、上記の処理の繰り返しを通じて(シンタックス、包み込み、および要素の集合を適正に評価するために、レジスタ192,194において)次トークンにリセットされる。
TCW更新規則は、極めて単純であり、図8に示される。第1に、トークンフラグ、制御フラグ、および次状態オフセット領域が、状態テーブルエントリからTCWレジスタ/バッファにコピーされる805。次に、集合状態テーブルエントリの中で、「現要素は集合関数」フラグが「先の要素は集合関数」フラグの中にコピーされる810。「新要素名」フラグがトークンフラグ領域にセットされていたら(815)、「タイプフラグ」及び「状態テーブル基礎アドレス」領域がデータ辞書出力からTCW内にコピーされ820、トークンフラグ領域の「要素は集合関数」がセットされていたら(825)、「集合状態フラグ」領域内の「現要素は集合関数」フラグビットがセットされる830。そうでなければ、「現要素は集合関数」フラグがリセットされる835。トークンフラグ領域の「新要素名」フラグがセットされておらず、かつ、840において判定されるように、トークンフラグ領域内の「要素の終了」フラグビット及び「要素は集合関数」フラグビットがセットされていれば、図9に示すように、スタックコマンド領域の「ポップ」フラグビットがセットされ、かつ、状態テーブル基礎アドレス領域がクリアされる845。そうでなければ、スタックコマンド領域の「パススルー」フラグビットがセットされ、かつ、状態テーブル基礎アドレス領域がクリアされる850。
図9に示すように、割り込みを発生するために、現トークンに対応するエントリのために状態装置出力から直接取り出された制御フラグビットは、910又は920に示すように、ホスト/メインプロセッサに対して終了割り込み又は特別割り込みを与えるために、単純に追跡され(破線矢印で示すように)、又は並列にテストされる。同様に、930に示すように、(データ辞書150の出力から直接取り込んだ)スタックコマンドが「プッシュ」である場合は、状態テーブル基礎アドレス及び次状態オフセットがスタック190上に押され、かつ、状態テーブル基礎アドレスレジスタ192と次状態オフセットレジスタ194が、対応するTCW領域から更新される。スタックコマンドフラグが「ポップ」コマンドに対応する場合は、940に示すように、状態テーブル基礎アドレス及び次状態オフセット値がスタックから飛び出して、それぞれレジスタ192,194の更新に用いられる。パススルースタックコマンド領域フラグがセットされている場合は、950に示すように、スタック190において何ら処理が実行されることなく、レジスタ192,194が、TCW領域のそれぞれから更新される。
図10に示すように、EAB及びTSDOの動作も、同様に、TCW内のフラグによって制御されることが望ましい。1010に示すように、「要素の終了」トークンフラグがセットされており、かつ、「要素は集合関数」トークンフラグもまたセットされていた場合、TSDO処理が、以下に説明するように、子要素を完成させるために起動される。その他の場合は、「属性名の要素格納」フラグが、要素のタイプに基づいて適切な処理を開始するために、他のフラグとの組み合わせにおいて、それらのフラグに反映されるように、処理1020及び1030において用いられる(また、以下の説明においてセットされるものとする)。「新要素名」フラグが更にセットされていると(1021)、EAB内の要素名基礎アドレスと要素名長領域とが、トークンバッファ120から更新され1022、また、EABの内部で、要素値基礎アドレス及び長領域がクリアされる1023。「属性名」フラグがセットされていたら(1024)、属性基礎アドレス及び長領域がEABの内部でトークンバッファ120からリセットされ1025、また、属性値基礎アドレス及び長領域がEABの内部でクリアされる1026。「要素値」フラグがセットされていたら(1031)、トークンバッファから要素値基礎アドレス及び長領域が更新される1032,1033。「属性値」フラグがセットされていたら(1034)、属性値基礎アドレス及び長領域がトークンバッファ120から更新される1035,1036。要約すると、EAB200内の選ばれた領域が、要素のタイプに基づいて更新され、また、クリアされる。
「要素又は属性名格納、および「新要素名」の双方が上記の如くセットされており、かつ、TCWの集合状態フラグ領域に「先の要素は集合関数」フラグがセットされている場合は、「子要素追加」処理を開始する更なる処理が、以下に説明するように起動され、また、EABの「要素包み込み開始カウント」領域がインクリメントされる。そうでない場合は、「先の要素は集合関数」フラグがセットされていなければ、TSDO内で「兄弟要素追加」の処理が起動される。
これに対して、「要素或いは属性格納」及び「要素値」フラグの組み合わせがセットされている場合は、TSDOの内部で、「要素値更新」処理が以下に説明するように起動される。同様に、「要素或いは属性格納」及び「属性値」フラグの組み合わせはTSDOに「属性追加」処理を開始させる。
上記のように示唆した5つのTSDO処理は、本発明に係るハードウェア妥当性検証パーサアクセラレータにより、上述した通り、一度開始されると、アクセラレータ処理ユニット400の制御かで自律的に実行され得る。このような処理は、本発明により処理の加速を更に支援しながら、妥当性検証処理と同時に実行され得る。これらの処理は、全てが非常に単純であり、短く、かつ判りやすく、このため、存在したとしても小さなホストプロセッサ負荷を伴うだけで、迅速に実行することができる。
図11Aに示す「兄弟要素追加」処理は、新TSDOエントリの割り当て、新たに割り当てられたエントリアドレスに対する現ノードの「次」ポインタの設定、現ノードに対する新エントリの「先」ポインタの設定、EAB要素名基礎アドレス及び長領域の、新エントリ内の対応領域(図1A参照)へのコピー、及び、TSDO制御の「現要素ノード」並びに「要素第1属性」を、それぞれ新エントリ及び空とする設定、を有している。図11Bに示す「子要素追加」処理は、EABの「包み込みレベル開始カウント」領域をインクリメントする追加のステップ1110の実行を除いて、「兄弟要素追加」の処理と同じである。
図11Cに示す「子要素完成」処理は、TSDO制御領域の「現要素ノード」により指示されるエントリから開始し、兄弟要素「p」ポインタを用いて、兄弟要素「p」ポインタが空となるまで階層を上って、その点に形成されたTSDO構造を通読することにより実行される。次に、TSDOエントリの「子要素」「p」ポインタをTSDO制御領域の「現要素ノード」にコピーする。次いで、TSDO領域の「包み込みエントリ開始カウント」がTSDO制御領域の「包み込みレベル終了カウント」にコピーされ、更に、TSDO制御領域の「包み込みエントリ開始カウント」がデクリメントされる。図11Dに示す「要素値更新」TSDO処理は、EAB領域の要素値基礎アドレス及び長を、TSDO制御領域の「現要素ノード」により指示されているTSDOエントリの「値ポインタ」および「値長」領域にコピーすることだけを含んでいる。
TSDO処理の「属性追加」は、新TSDOエントリの割り当てと、属性名基礎アドレス及び長、並びに、属性値基礎アドレス及び長のポインタの、新たなエントリへのコピーにより開始される。それから、TSDO制御レジスタの「要素第1属性」が空である場合は(1120)、TSDO制御の「現属性ノード」が新TSDOエントリを指示するためにセットされ、かつ、現ノードの「要素第1属性」が(例えば、「p」ポインタが心エントリに追加される前に)新エントリにセットされる一方で、現ノードの「n」および「p」ポインタと新エントリが、上述したように連結される。要素第1属性が空でない場合は、現ノードの「n」および「p」ポインタと新エントリが連結されると共に、TSDO制御の「現属性ノード」が新たなTSDOエントリにセットされる。
以上の観点より、本発明は、XML(商標)や、内部使用可能性を支援する他の言語文書の、極めて高速な妥当性検証パーシングを提供する装置及び方法を提供し、その一方で、そのような処理動作と複雑な支援負荷とをホストコンピュータから除去し、その結果、妥当性検証パーシングの処理の相当な加速を実現していることが判る。その加速は、潜在的に、また、好ましくは、妥当性検証のためのパーシングと並列にTSDOを形成する自律処理、並びに、データ辞書と状態テーブル情報の並列取得によって特に支援されている。このような加速の提供に要求されるハードウェアは、非常に単純で、かつ、量において非常に制限されており、そのため、高価でなく、コスト的に高度に効果的である。
本発明は単一の好ましい実施形態に関して説明されているが、添付のクレームの精神及び範囲の内部で本発明に修正が施せることは当業者にとって理解の範囲である。

Claims (11)

  1. プラットフォームの独立性と内部使用可能性を支援するコンピュータ言語によるトークン化されたテキスト文書のためのハードウェアにより加速された妥当性検証パーサであって、
    トークンに従って、データ辞書および状態テーブルの双方からデータを取り出す手段と、
    伝送制御ワードを形成するために、前記状態テーブル及び前記データ辞書からの前記データを合成する手段と、
    前記状態テーブルから更なるデータを取り出すために、前記伝送制御ワードの部分を、他のトークンと合成する手段と、
    前記伝送制御ワードの部分の制御下で前記トークン化されたテキスト文書に対応するツリー構造データオブジェクトを形成する手段と、
    を備える妥当性検証パーサ。
  2. 支援されている言語で定義された、包み込まれたデータ構造を支援する中の次の伝送状態を引き出すために、前記伝送制御ワードでスタックの動作を制御する手段を更に含む請求項1記載のハードウェアにより加速された妥当性検証パーサ。
  3. トークン化されたテキスト文書からデータ構造物を形成する手段を更に含む請求項2記載のハードウェアにより加速された妥当性検証パーサ。
  4. データ構造物を形成する前記手段は、要素及び属性バッファを含む請求項3記載のハードウェアにより加速された妥当性検証パーサ。
  5. トークン化されたテキスト文書からデータ構造物を形成する手段を更に含む請求項1記載のハードウェアにより加速された妥当性検証パーサ。
  6. データ構造物を形成する前記手段は、要素及び属性バッファを含む請求項5記載のハードウェアにより加速された妥当性検証パーサ。
  7. トークン化されたファイルの妥当性検証パーシングを加速方法であって、
    トークンに従って、データ辞書および状態テーブルの双方からデータを取り出すステップと、
    伝送制御ワードを形成するために、前記状態テーブル及び前記データ辞書からの前記データを合成するステップと、
    前記状態テーブルから更なるデータを取り出すために、前記伝送制御ワードの部分を、他のトークンと合成する手段とを含む方法。
  8. 次の伝送状態を引き出すために、前記伝送制御ワードでスタックの動作を制御するステップを更に含む請求項7記載の方法。
  9. 入力ストリームが妥当な入力シーケンスの組の一つであることを検証するステップを更に含む請求項7記載の方法。
  10. 入力ストリームが、妥当な許容される入力シーケンスから逸脱する場合に通知を生成するステップを更に含む請求項9記載の方法。
  11. 入力ストリームが、妥当な許容される入力シーケンスから逸脱する場合に通知を生成するステップを更に含む請求項7記載の方法。
JP2004548350A 2002-10-29 2003-10-03 ハードウェアにより加速された妥当性検証パーサ Pending JP2006505044A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US42177502P 2002-10-29 2002-10-29
US42177402P 2002-10-29 2002-10-29
US42177302P 2002-10-29 2002-10-29
US10/334,086 US7080094B2 (en) 2002-10-29 2002-12-31 Hardware accelerated validating parser
PCT/US2003/031315 WO2004040447A2 (en) 2002-10-29 2003-10-03 Hardware accelerated validating parser

Publications (1)

Publication Number Publication Date
JP2006505044A true JP2006505044A (ja) 2006-02-09

Family

ID=32234360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004548350A Pending JP2006505044A (ja) 2002-10-29 2003-10-03 ハードウェアにより加速された妥当性検証パーサ

Country Status (6)

Country Link
EP (1) EP1579321A2 (ja)
JP (1) JP2006505044A (ja)
KR (1) KR20050072777A (ja)
AU (1) AU2003277250A1 (ja)
CA (1) CA2504491A1 (ja)
WO (1) WO2004040447A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011512589A (ja) * 2008-02-14 2011-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 制御装置との通信用に構成されたホスト・コンピュータ・システムにおける制御ブロックに関する間接データ・アドレス指定を提供するためのコンピュータ・プログラム、装置、および方法(入出力処理システムのチャネル・サブシステムにおける制御ブロックに関する間接データ・アドレス指定の提供)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138542A1 (en) * 2003-12-18 2005-06-23 Roe Bryan Y. Efficient small footprint XML parsing
US9411853B1 (en) 2012-08-03 2016-08-09 Healthstudio, LLC In-memory aggregation system and method of multidimensional data processing for enhancing speed and scalability

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001217720A (ja) * 2000-02-04 2001-08-10 Internatl Business Mach Corp <Ibm> データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995963A (en) * 1996-06-27 1999-11-30 Fujitsu Limited Apparatus and method of multi-string matching based on sparse state transition list
AUPQ849500A0 (en) * 2000-06-30 2000-07-27 Canon Kabushiki Kaisha Hash compact xml parser
US20020099734A1 (en) * 2000-11-29 2002-07-25 Philips Electronics North America Corp. Scalable parser for extensible mark-up language

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001217720A (ja) * 2000-02-04 2001-08-10 Internatl Business Mach Corp <Ibm> データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XNI DESIGN DETAILS, JPN6008013191, 6 August 2002 (2002-08-06), ISSN: 0001006376 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011512589A (ja) * 2008-02-14 2011-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 制御装置との通信用に構成されたホスト・コンピュータ・システムにおける制御ブロックに関する間接データ・アドレス指定を提供するためのコンピュータ・プログラム、装置、および方法(入出力処理システムのチャネル・サブシステムにおける制御ブロックに関する間接データ・アドレス指定の提供)
US8516161B2 (en) 2008-02-14 2013-08-20 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8806069B2 (en) 2008-02-14 2014-08-12 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system

Also Published As

Publication number Publication date
KR20050072777A (ko) 2005-07-12
EP1579321A2 (en) 2005-09-28
WO2004040447A3 (en) 2004-09-30
AU2003277250A1 (en) 2004-05-25
CA2504491A1 (en) 2004-05-13
WO2004040447A2 (en) 2004-05-13

Similar Documents

Publication Publication Date Title
US7080094B2 (en) Hardware accelerated validating parser
US20200285607A1 (en) Processing structured data
Beazley Python essential reference
US7620652B2 (en) Processing structured data
US6317871B1 (en) System for ensuring the accuracy of file structures in a source-to-source computer program translator
US7458022B2 (en) Hardware/software partition for high performance structured data transformation
US6859810B2 (en) Declarative specification and engine for non-isomorphic data mapping
US7437666B2 (en) Expression grouping and evaluation
US7328403B2 (en) Device for structured data transformation
US20070234199A1 (en) Apparatus and method for compact representation of XML documents
WO2008051783A2 (en) Context-free grammar
JPH06501583A (ja) 多言語最適化コンパイラ内のフォールディングメカニズムを構成する方法
Ritchie et al. The unix time-sharing system
Agesen et al. The SELF 4.0 Programmer’s Reference Manual
JP2005332146A (ja) 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法
Cameron Rex: Xml shallow parsing with regular expressions
JP2006505044A (ja) ハードウェアにより加速された妥当性検証パーサ
Betz Xlisp: an object-oriented lisp
Ahmad et al. Hpxa: a highly parallel xml parser
CN100380322C (zh) 硬件加速的验证解析器
JP2006505043A (ja) ハードウェアパーサアクセラレータ
Weiss et al. ScmToCpp: A configurable, intelligent back end for SuchThat
Johnstone et al. Rdp-supp-Support Routines for the Rdp Compiler Compiler: User Manual Version 1.4
Bernstein et al. CIFtbx: Fortran tools for manipulating CIFs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080325

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080623

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080723

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081007