【手続補正書】
【提出日】平成17年10月19日(2005.10.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  分散型のコンパイラ指向のデータベースを実行するためにプログラム化された少なくとも一つのノードを持ち、コンパイレーション（コンパイル）作動モード、シミュレーション作動モード、及び／又は、ソフトウェア実行作動モードを含む並列プロセッサシステムであって、
少なくとも二つのプロセッサと、
少なくとも一つのプロセッサに接続され、ローカルなメモリであるか又は共有されたメモリであるかのどちらかであるメモリと、
前記少なくとも二つのプロセッサと前記メモリとを接続するための相互接続機構と、
再構成可能なロジックエレメントとを備え、
前記プログラム化されたノードが、
ソースコードをデータベースへ増分的に分析する機能と、
新たな又は改訂されたエントリーを生成するために、以前に分析された情報を増分的に精緻化（エラボレーション：elaboration)又はインライニング(in-lining)する機能と、
より効率的なシミュレーション、より効率的な実行、又はより観測可能な実行を生成するためにデータベース内容を変換する増分的最適化機能と、
プログラム可能なプロセッサと再構成可能なロジックエレメントとの組合せ上で直接実行できる表示を生成するためにデータベース内容を変換するコード生成で、集約且つ結合して増分的にコード生成を行う機能と、
直接実行できるシミュレーション／実行の内部及びそれらの間でスケジューリング、通信、及びコールバックを可能にする、実行時間、Ｉ／Ｏ、及びファイルシステムを作動する機能と、
双方向形式でシミュレーション／実行を開始し、停止し、シミュレーション／実行の状態を調査するデバッグ機能と、
外部のツール又はユーザーに対しシミュレーション／実行の結果をアクセス可能とするためにシミュレーション／実行をプロフィーリング(profiling)又はイベント記録する機能と、
前記少なくとも一つのノードで使われる情報を前記データベースが一貫してキャッシュするグラフィカル双方向型ユーザーインターフェース転送の機能、とから成る機能グループの内から選択された一つ又はそれ以上の機能を前記分散型のコンパイラ指向のデータベース上で実行する複数のクライアントを含むために増強されていることを特徴とする並列プロセッサシステム。
【請求項２】  前記少なくとも二つのプロセッサの少なくとも一方が、前記少なくとも二つのプロセッサの少なくとも一方の指示ストリームからの指示を登録するために、レジスタの動作により指名された再構成可能なロジック実行パイプラインにより増強されていることを特徴とする請求項１に記載の並列プロセッサシステム。
【請求項３】  前記クライアントが、少なくとも二つの通信するオペレーティングシステムプロセッサの間で、追加アドレス可能メモリ、ソフトウェア保護を提供し且つ目標ソフトウェア実行環境を模倣（エミュレート）するように作動することを特徴とする請求項１に記載の並列プロセッサシステム。
【請求項４】  前記クライアントが、少なくとも二つの通信するオペレーティングシステムプロセッサの間で、追加アドレス可能メモリ、ソフトウェア保護を提供し且つ目標ソフトウェア実行環境を模倣（エミュレート）するように作動することを特徴とする請求項２に記載の並列プロセッサシステム。
【請求項５】  前記複数のクライアントが、増分的に変化し再分割されたシミュレーション／実行を、プロセッサと再構成可能なロジック装置との間で実行するために、前記データベース内の増分且つ一貫した変化を通してソースコードを増分的に変更し、ソースコード内の変化が、シミュレーション／実行の中断を求めて徐々に発展する要求を満たすために、シミュレーション／実行の状態を保存することを特徴とする請求項１に記載の並列プロセッサシステム。
【請求項６】  前記シミュレーション／実行を中断する段階が、コールバックのトリガー、コールバック、イベント駆動／サイクル駆動／連続ドメインのアルゴリズムの置換の中から選ばれた動作を含むか、又は、より詳細なデバッグ、ディスプレイ、又はプロフィーリングのために必要なシミュレーション／実行の中間状態を生成することを特徴とする請求項１に記載の並列プロセッサシステム。
【請求項７】  前記複数のクライアントが、増分的に変化し再分割されたシミュレーション／実行を、プロセッサと再構成可能なロジック装置との間で実行するために、前記データベース内の増分且つ一貫した変化を通してソースコードを増分的に変更し、ソースコード内の変化が、シミュレーション／実行の中断を求めて徐々に発展する要求を満たすために、シミュレーション／実行の状態を保存することを特徴とする請求項２に記載の並列プロセッサシステム。
【請求項８】  前記シミュレーション／実行を中断する段階が、コールバックのトリガー、コールバック、イベント駆動／サイクル駆動／連続ドメインのアルゴリズムの置換の中から選ばれた動作を含むか、又は、より詳細なデバッグ、ディスプレイ、又はプロフィーリングのために必要なシミュレーション／実行の中間状態を生成することを特徴とする請求項７に記載の並列プロセッサシステム。
【請求項９】  あるノード上に常駐する情報とある遠隔ノード上にのみ存在する情報とを関係付けるデータベース上に含まれる関係情報が、ある遠隔代理レコードによって表され、前記遠隔代理レコードが、キャッシュされたコピーの寿命を制限するために、メモリの利用可能性と整合性を使って前記遠隔ノード上の前記情報を一貫してキャッシュすることを可能にすることを特徴とする請求項１に記載の並列プロセッサシステム。
【請求項１０】  あるノード上に常駐する情報とある遠隔ノード上にのみ存在する情報とを関係付けるデータベース上に含まれる関係情報が、ある遠隔代理レコードによって表され、前記遠隔代理レコードが、キャッシュされたコピーの寿命を制限するために、メモリの利用可能性と整合性を使って前記遠隔ノード上の前記情報を一貫してキャッシュすることを可能にすることを特徴とする請求項２に記載の並列プロセッサシステム。
【請求項１１】  データベース情報の間における分析、精緻化、実行時間の従属関係が、コンパイレーション、シミュレーション、又は実行のクライアント動作を同一又は他のノード上にトリガーし、その結果、様々なノード上の情報やクライアントの位置、並びに当該ノードの構成要素に左右されることなく、前記データベースが前記トリガーをその関係のあるコンパイレーション、シミュレーション、又は実行に連結することを特徴とする請求項１に記載の並列プロセッサシステム。
【請求項１２】  データベース情報の間における分析、精緻化、実行時間の従属関係が、コンパイレーション、シミュレーション、又は実行のクライアント動作を同一又は他のノード上にトリガーし、その結果、様々なノード上の情報やクライアントの位置、並びに当該ノードの構成要素に左右されることなく、前記データベースが前記トリガーをその関係のあるコンパイレーション、シミュレーション、又は実行に連結することを特徴とする請求項２に記載の並列プロセッサシステム。
【請求項１３】  精緻化クライアントの作動により、コード生成の以前に、精緻化されたデータベースオブジェクトを作成することができ、精緻化の結果生じたデータベースオブジェクトが、分析クライアントの作動から生じたデータベースオブジェクト又は精緻化クライアントの以前の作動により生成されたオブジェクトを再使用することを特徴とする請求項１に記載の並列プロセッサシステム。
【請求項１４】  精緻化クライアントの作動により、コード生成の以前に、精緻化されたデータベースオブジェクトを作成することができ、精緻化の結果生じたデータベースオブジェクトが、分析クライアントの作動から生じたデータベースオブジェクト又は精緻化クライアントの以前の作動により生成されたオブジェクトを再使用することを特徴とする請求項２に記載の並列プロセッサシステム。
【請求項１５】  分散型のコンパイラ指向のデータベースを実行するためにプログラム化された少なくとも一つのノードを持ち、コンパイレーション作動モード、シミュレーション作動モード、及び／又は、ソフトウェア実行作動モードを含む並列プロセッサシステムであって、
少なくとも二つのプロセッサと、
少なくとも一つのプロセッサに接続され、ローカルなメモリであるか又は共有されたメモリであるかのどちらかであるメモリと、
前記少なくとも二つのプロセッサと前記メモリとを接続するための相互接続機構とを備え、
前記プログラム化されたノードが、
ソースコードを前記データベースへ増分的に分析する機能と、
新たな又は改訂されたエントリーを生成するために、以前に分析された情報を増分的に精緻化（エラボレーション：elaboration）又はインライニング(in-lining)する機能と、
より効率的なシミュレーション、より効率的な実行、又はより観測可能な実行を生成するためにデータベース内容を変換する増分的な最適化機能と、
プログラム可能なプロセッサと再構成可能なロジックエレメントとの組合せ上で直接実行できる表示を生成するためにデータベース内容を変換するコード生成で、集約且つ結合して増分的にコード生成しを行う機能と、
直接実行できるシミュレーション／実行の内部及びそれらの間でスケジューリング、通信、及びコールバックを可能にする、実行時間、Ｉ／Ｏ、及びファイルシステムを作動する機能と、
双方向形式でシミュレーション／実行を開始し、停止し、シミュレーション／実行の状態を調査するデバッグ機能と、
外部のツール又はユーザーに対しシミュレーション／実行の結果をアクセス可能とするためにシミュレーション／実行をプロフィーリング(profiling)又はイベント記録する機能と、
前記少なくとも一つのノードで使われる情報を前記データベースが一貫してキャッシュするグラフィカル双方向型ユーザーインターフェース転送の機能、とから成る機能グループの内から選択された一つ又はそれ以上の機能を前記分散型のコンパイラ指向のデータベース上で実行する複数のクライアントを含むために増強されていることを特徴とする並列プロセッサシステム。
【請求項１６】  クライアントが、少なくとも二つの通信するオペレーティングシステムプロセッサの間で、追加アドレス可能メモリ、ソフトウェア保護を提供し且つ目標ソフトウェア実行環境を模倣（エミュレート）するように作動することを特徴とする請求項１５に記載の並列プロセッサシステム。
【請求項１７】  前記複数のクライアントが、増分的に変化し再分割されたシミュレーション／実行を、プロセッサと再構成可能なロジック装置との間で実行するために、前記データベース内の増分且つ一貫した変化を通してソースコードを増分的に変更し、ソースコード内の変化が、シミュレーション／実行の中断を求めて徐々に発展する要求を満たすために、シミュレーション／実行の状態を保存することを特徴とする請求項１５に記載の並列プロセッサシステム。
【請求項１８】  シミュレーション／実行を中断する段階が、コールバックのトリガー、コールバック、イベント駆動／サイクル駆動／連続ドメインのアルゴリズムの置換の中から選ばれた動作を含むか、又はより詳細なデバッグ、ディスプレイ、又はプロフィーリングのために必要なシミュレーション／実行の中間状態を生成することを特徴とする請求項１７に記載の並列プロセッサシステム。
【請求項１９】  あるノード上に常駐する情報とある遠隔ノード上にのみ存在する情報とを関係付けるデータベース上に含まれる関係情報が、ある遠隔代理レコードによって表され、前記遠隔代理レコードが、キャッシュされたコピーの寿命を制限するために、メモリの利用可能性と整合性を使って前記遠隔ノード上の前記情報を一貫してキャッシュすることを可能にすることを特徴とする請求項１５に記載の並列プロセッサシステム。
【請求項２０】  データベース情報の間における分析、精緻化、実行時間の従属関係が、コンパイレーション、シミュレーション又は実行のクライアント動作を同一又は他のノード上にトリガーし、その結果、様々なノード上の情報やクライアントの位置、並びに当該ノードの構成要素に左右されることなく、前記データベースが前記トリガーをその関係のあるコンパイレーション、シミュレーション又は実行に連結することを特徴とする請求項１５に記載の並列プロセッサシステム。
【請求項２１】  精緻化クライアントの作動により、コード生成の以前に、精緻化されたデータベースオブジェクトを作成することができ、精緻化の結果生じたデータベースオブジェクトが、分析クライアントの作動から生じたデータベースオブジェクト又は精緻化クライアントの以前の作動により生成されたオブジェクトを再使用することを特徴とする請求項１５に記載の並列プロセッサシステム。
【請求項２２】  前記少なくとも二つのプロセッサの少なくとも一方が、前記少なくとも二つのプロセッサの少なくとも一方の指示ストリームからの指示を登録するために、レジスタの動作により指名された再構成可能なロジック実行パイプラインにより増強されていることを特徴とする請求項１５に記載の並列プロセッサシステム。
【請求項２３】  クライアントが、少なくとも二つの通信するオペレーティングシステムプロセッサの間で、追加アドレス可能メモリ、ソフトウェア保護を提供し且つ目標ソフトウェア実行環境を模倣（エミュレート）するように作動することを特徴とする請求項２２に記載の並列プロセッサシステム。
【請求項２４】  前記複数のクライアントが、増分的に変化し再分割されたシミュレーション／実行を、プロセッサと再構成可能なロジック装置との間で実行するために、前記データベース内の増分且つ一貫した変化を通してソースコードを増分的に変更し、ソースコード内の変化が、シミュレーション／実行の中断を求めて徐々に発展する要求を満たすために、シミュレーション／実行の状態を保存することを特徴とする請求項２２に記載の並列プロセッサシステム。
【請求項２５】  シミュレーション／実行を中断する段階が、コールバックのトリガー、コールバック、イベント駆動／サイクル駆動／連続ドメインのアルゴリズムの置換の中から選ばれた動作を含むか、又はより詳細なデバッグ、ディスプレイ、又はプロフィーリングのために必要なシミュレーション／実行の中間状態を生成することを特徴とする請求項２４に記載の並列プロセッサシステム。
【請求項２６】  あるノード上に常駐する情報とある遠隔ノード上にのみ存在する情報とを関係付けるデータベース上に含まれる関係情報が、ある遠隔代理レコードによって表され、前記遠隔代理レコードが、キャッシュされたコピーの寿命を制限するために、メモリの利用可能性と整合性を使って前記遠隔ノード上の前記情報を一貫してキャッシュすることを可能にすることを特徴とする請求項２２に記載の並列プロセッサシステム。
【請求項２７】  データベース情報の間における分析、精緻化、実行時間の従属関係が、コンパイレーション、シミュレーション又は実行のクライアント動作を同一又は他のノード上にトリガーし、その結果、様々なノード上の情報やクライアントの位置、並びに当該ノードの構成要素に左右されることなく、前記データベースが前記トリガーをその関係のあるコンパイレーション、シミュレーション又は実行に連結することを特徴とする請求項２２に記載の並列プロセッサシステム。
【請求項２８】  精緻化クライアントの作動により、コード生成の以前に、精緻化されたデータベースオブジェクトを作成することができ、精緻化の結果生じたデータベースオブジェクトが、分析クライアントの作動から生じたデータベースオブジェクト又は精緻化クライアントの以前の作動により生成されたオブジェクトを再使用することを特徴とする請求項２２に記載の並列プロセッサシステム。
【請求項２９】  前記少なくとも二つのプロセッサの少なくとも一方が、前記少なくとも二つのプロセッサの指示ストリームから固定アドレスへマップされた指示の動作により指名された再構成可能なロジック実行パイプラインにより増強されていることを特徴とする請求項１５に記載の並列プロセッサシステム。
【請求項３０】  クライアントが、少なくとも二つの通信するオペレーティングシステムプロセッサの間で、追加アドレス可能メモリ、ソフトウェア保護を提供し且つ目標ソフトウェア実行環境を模倣（エミュレート）するように作動することを特徴とする請求項２９に記載の並列プロセッサシステム。
【請求項３１】  前記複数のクライアントが、増分的に変化し再分割されたシミュレーション／実行を、プロセッサと再構成可能なロジック装置との間で実行するために、前記データベース内の増分且つ一貫した変化を通してソースコードを増分的に変更し、ソースコード内の変化が、シミュレーション／実行の中断を求めて徐々に発展する要求を満たすために、シミュレーション／実行の状態を保存することを特徴とする請求項２９に記載の並列プロセッサシステム。
【請求項３２】  シミュレーション／実行を中断する段階が、コールバックのトリガー、コールバック、イベント駆動／サイクル駆動／連続ドメインのアルゴリズムの置換の中から選ばれた動作を含むか、又はより詳細なデバッグ、ディスプレイ、又はプロフィーリングのために必要なシミュレーション／実行の中間状態を生成することを特徴とする請求項３１に記載の並列プロセッサシステム。
【請求項３３】  あるノード上に常駐する情報とある遠隔ノード上にのみ存在する情報とを関係付けるデータベース上に含まれる関係情報が、ある遠隔代理レコードによって表され、前記遠隔代理レコードが、キャッシュされたコピーの寿命を制限するために、メモリの利用可能性と整合性を使って前記遠隔ノード上の前記情報を一貫してキャッシュすることを可能にすることを特徴とする請求項２９に記載の並列プロセッサシステム。
【請求項３４】  データベース情報の間における分析、精緻化、実行時間の従属関係が、コンパイレーション、シミュレーション又は実行のクライアント動作を同一又は他のノード上にトリガーし、その結果、様々なノード上の情報やクライアントの位置、並びに当該ノードの構成要素に左右されることなく、前記データベースが前記トリガーをその関係のあるコンパイレーション、シミュレーション又は実行に連結することを特徴とする請求項２９に記載の並列プロセッサシステム。
【請求項３５】  精緻化クライアントの作動により、コード生成の以前に、精緻化されたデータベースオブジェクトを作成することができ、精緻化の結果生じたデータベースオブジェクトが、分析クライアントの作動から生じたデータベースオブジェクト又は精緻化クライアントの以前の作動により生成されたオブジェクトを再使用することを特徴とする請求項２９に記載の並列プロセッサシステム。
【請求項３６】  前記少なくとも二つのプロセッサの少なくとも一方が、前記少なくとも二つのプロセッサの指示ストリームから固定アドレスへマップされた指示の動作により指名された再構成可能なロジック実行パイプラインにより増強されていることを特徴とする請求項１に記載の並列プロセッサシステム。
【請求項３７】  クライアントが、少なくとも二つの通信するオペレーティングシステムプロセッサの間で、追加アドレス可能メモリ、ソフトウェア保護を提供し且つ目標ソフトウェア実行環境を模倣（エミュレート）するように作動することを特徴とする請求項３６に記載の並列プロセッサシステム。
【請求項３８】  前記複数のクライアントが、増分的に変化し再分割されたシミュレーション／実行を、プロセッサと再構成可能なロジック装置との間で実行するために、前記データベース内の増分且つ一貫した変化を通してソースコードを増分的に変更し、ソースコード内の変化が、シミュレーション／実行の中断を求めて徐々に発展する要求を満たすために、シミュレーション／実行の状態を保存することを特徴とする請求項３６に記載の並列プロセッサシステム。
【請求項３９】  シミュレーション／実行を中断する段階が、コールバックのトリガー、コールバック、イベント駆動／サイクル駆動／連続ドメインのアルゴリズムの置換の中から選ばれた動作を含むか、又はより詳細なデバッグ、ディスプレイ、又はプロフィーリングのために必要なシミュレーション／実行の中間状態を生成することを特徴とする請求項３８に記載の並列プロセッサシステム。
【請求項４０】  あるノード上に常駐する情報とある遠隔ノード上にのみ存在する情報とを関係付けるデータベース上に含まれる関係情報が、ある遠隔代理レコードによって表され、前記遠隔代理レコードが、キャッシュされたコピーの寿命を制限するために、メモリの利用可能性と整合性を使って前記遠隔ノード上の前記情報を一貫してキャッシュすることを可能にすることを特徴とする請求項３６に記載の並列プロセッサシステム。
【請求項４１】  データベース情報の間における分析、精緻化、実行時間の従属関係が、コンパイレーション、シミュレーション又は実行のクライアント動作を同一又は他のノード上にトリガーし、その結果、様々なノード上の情報やクライアントの位置、並びに当該ノードの構成要素に左右されることなく、前記データベースが前記トリガーをその関係のあるコンパイレーション、シミュレーション又は実行に連結することを特徴とする請求項３６に記載の並列プロセッサシステム。
【請求項４２】  精緻化クライアントの作動により、コード生成の以前に、精緻化されたデータベースオブジェクトを作成することができ、精緻化の結果生じたデータベースオブジェクトが、分析クライアントの作動から生じたデータベースオブジェクト又は精緻化クライアントの以前の作動により生成されたオブジェクトを再使用することを特徴とする請求項３６に記載の並列プロセッサシステム。
【請求項４３】  前記少なくとも二つのプロセッサの各々が、構成可能な指示セットアーキテクチャをサポートし、前記少なくとも二つのプロセッサの内の一つが、再構成可能な論理実行パイプラインにより増強されていることを特徴とする請求項１に記載の並列プロセッサシステム。
【請求項４４】  前記少なくとも二つのプロセッサの各々が、再構成可能な指示セットアーキテクチャをサポートし、前記少なくとも二つのプロセッサの内の一つが、再構成可能な論理実行パイプラインにより増強されていることを特徴とする請求項１５に記載の並列プロセッサシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】削除
【補正の内容】
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
（発明の概要）
その後の報告は、クライアントを備えた分散型のコンパイラ指向データベースを開示し、
・ソースアナライザ（コンパイラ構成要素）と、
・エラボレータ（コンパイラ構成要素）と、
・オプティマイザ（コンパイラ構成要素）と、
・コード生成器（コンパイラ構成要素）と、
・アセンブラ（コンパイラ構成要素）と、
・リンカー（コンパイラ構成要素）と、
・実行時間システム（シミュレーション／実行構成要素）と、
・デバッガー（シミュレーション／実行構成要素）と、
・プロフィーラ（シミュレーション／実行構成要素）と、
・イベントログ（シミュレーション／実行構成要素）と、
・図表ツール（様々なフェーズの構成要素）と、
をクライアントとして挙げている。
本報告は、複数のノードを有するコンピューター上のコンパイレーション及びシミュレーション／実行にまたがる単一のコンパイラ指向データベースの概念を導入したものである。
本発明が開示するコンパイラ指向データベース及びクライアント装置は、コンピュータープログラムとハードウェアモデルについてコンパイレーションモードと、シミュレーションモードと、実行モードとを含んだ効率的且つ密接に統合された作動モードとを提供する。本発明は並列コンピューターシステムの一つ又はそれ以上のノードを利用し、各ノードは、再構成可能な論理装置により随意的に増強された単一のプロセッサ又は共有メモリのマルチプロセッサである。本発明の利点は、コンパイレーション又はシミュレーション／実行の作動に関連した中間情報への全体的なアクセスを提供しながら、単一ノードの場合よりもはるかに大規模なコンパイル能力を提供できる点である。この全体的なアクセスにより、コンピュータープログラム及び／又はハードウェアモデルを（再）コンパイル及びシミュレート／実行するのに必要な時間がかなり減るものである。