(57)【要約】【課題】スタンドアローン環境において、Ｎ＋１個の実行プログラムを持つ並列プログラム（Ｎ＋１  Ｐ−Ｐ）構造を生成するＮ＋１  Ｐ−Ｐソフトウェアシミュレーションの構造及び方法を提供する。【解決手段】Ｎ＋１  Ｐ−Ｐブランチプログラムモジュールは、Ｎ＋１個のオブジェクトコードに依存しない構造のブランチプログラムの時分割実行を通して、Ｐ−Ｐモジュールの実行を実現し、個々に既述のＰ−ＰブランチプログラムのＰ−Ｐデータ読込、Ｐ−Ｐデータ書込及びＰ−Ｐデータ一致化の３種類のシーケンスネット命令又はサブルーチンのサポートに基づいて、Ｐ−Ｐブランチプログラムのデータ転送と同期を完成し、一つの管理プログラムモジュールを既述のＰ−Ｐブランチプログラムからの情報の応答、Ｐ−Ｐブランチプログラムのサスペンド、実行可能と実行状態のサポートに用いることを含むＮ＋１  Ｐ−Ｐ構造モジュールによる。
2005524130.tif 000002
【特許請求の範囲】
【請求項１】
スタンドアローン環境に基づくＮ＋１個の並列プログラム構造モジュール（以下、「並列プログラム」を「Ｐ−Ｐ」と称し、「Ｎ＋１個の並列プログラム」を「Ｎ＋１  Ｐ−Ｐ」と称する。）であって、
Ｎ＋１  Ｐ−Ｐブランチプログラムモジュール（Ｎ≧１）は、Ｎ＋１個のオブジェクトコードに依存しない構造のブランチプログラムの時分割実行（並列コンピュータ構造における並列実行は時分割の必要がない）を通して、Ｐ−Ｐモジュールの実行を実現し、個々に既述のＰ−ＰブランチプログラムのＰ−Ｐデータ読込、Ｐ−Ｐデータ書込及びＰ−Ｐデータ一致化の三種類のシーケンスネット命令あるいはサブルーチンのサポートに基づいて、Ｐ−Ｐブランチプログラムのデータ転送と同期を完成し、また、一つの管理プログラムモジュールを、既述のＰ−Ｐブランチプログラムからの情報の応答、Ｐ−Ｐブランチプログラムのサスペンド、実行可能と実行状態のサポートに用いる、
ことを含むＮ＋１個の並列プログラム構造モジュールによることを特徴とするＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造。
【請求項２】
Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、さらに、一つのＰ−Ｐブランチプログラムのサスペンド処理モジュールを含み、当面のＰ−Ｐブランチプログラムのサスペンド、実行可能及び実行状態の処理に用いるＮ＋１個の並列プログラム構造モジュールによることを特徴とする請求項１に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造。
【請求項３】
Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、さらに、一つのＰ−Ｐ出入管理モジュールを含み、既述のＰ−Ｐの出入管理モジュールは既述の時分割管理プログラムモジュールの結合に応答し、個々の実用Ｐ−Ｐに対する初期化処理及び退出処理を行うＮ＋１個の並列プログラム構造モジュールによることを特徴とする請求項１に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造。
【請求項４】
Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、Ｐ−Ｐ構造モジュールのＮ＋１個目のＰ−Ｐブランチプログラムは一つのＰ−Ｐデータのシーケンスを実行し、データ一致化操作を用いて表示するＮ＋１個の並列プログラム構造モジュールによることを特徴とする請求項１に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造。
【請求項５】
Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、既述のＮ＋１個目のブランチプログラム中のトークン一致化操作とＰ−Ｐデータと対応し、既述のＮ＋１個目のブランチプログラムを通して直接にＰ−Ｐデータを一つずつ一致化することを制御し、Ｐ−Ｐデータ一致化を行える条件は当該Ｐ−Ｐデータが既に他のＰ−Ｐブランチプログラムに書かれたことがあり、そうでなければ、其のＮ＋１個目のブランチプログラムはサスペンドに入り、一致化作業実行後、当該Ｐ−Ｐデータが他のブランチプログラムに読取されたときに有効と見なし、そうでなければ、当該Ｐ−Ｐデータを読み取るＰ−Ｐブランチプログラムはサスペンドに入ることになるＮ＋１個の並列プログラム構造モジュールによることを特徴とする請求項４に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造。
【請求項６】
Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、Ｐ−Ｐのネスト及びサブＰ−Ｐのコール操作時、既述のＮ＋１個のプログラムはサブＰ−Ｐのコール許可とＰ−Ｐデータシーケンスとの関係の制御と連接を行うＮ＋１個の並列プログラム構造モジュールによることを特徴とする請求項５に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造。
【請求項７】
Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、既述のＮ＋１個のＰ−Ｐに三種類のＰ−Ｐサブルーチンが含まれ、即ち、Ｐ−Ｐデータの読取、書込と一致化操作であり、既述のサブルーチンはトークンの設置、テスト及び処理能力を持ち、しかもＰ−Ｐブランチプログラムの同期とＰ−Ｐデータの転送をサポートするＮ＋１個の並列プログラム構造モジュールによることを特徴とする請求項５に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造。
【請求項８】
スタンドアローン環境に基づくＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法であって、
初期化処理手順；
既述のＰ−Ｐの終了検査を行い、既述のＰ−Ｐの各ブランチプログラムのスイッチフラグを検査し、其の中、全てのＰ−Ｐブランチプログラムがオフであれば、Ｐ−Ｐの実行は終了したと表し、そしてＰ−Ｐ終了の記録及び外部プログラムの連接方式を処理する手順；
一つでもＰ−Ｐブランチプログラムがオンであれば、ブランチプログラムのサスペンド状態検査を行い、其の中、検査結果は全てのＰ−Ｐブランチプログラムがサスペンド状態にある場合、実行未完了のＰ−Ｐがあっても、当該Ｐ−Ｐブランチプログラムが実行継続できないことを表す手順；
Ｐ−Ｐブランチプログラムが実行不能の原因を探し、其の原因に基づいて、Ｐ−Ｐブランチプログラムの退出処理を行う手順；
検査結果は一つ以上のＰ−Ｐブランチプログラムが実行可能状態にある場合、Ｐ−Ｐブランチプログラムの待ち行列処理に進む手順；
一つ実行可能のＰ−Ｐブランチプログラムを選択し、ブランチプログラムの待ち行列処理を行う手順；
Ｐ−Ｐブランチプログラムを選定し、それらのパラメータをセットしてＰ−Ｐブランチプログラムのサスペンド前の状態に復帰させる手順；及び、
選定したＰ−Ｐブランチプログラムの実行に進む手順；
を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とするＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの方法。
【請求項９】
既述の初期化処理には、Ｐ−Ｐブランチプログラムのパラメータのセットとフラグ域のゼロリセットの処理を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする請求項８に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの方法。
【請求項１０】
既述のＰ−Ｐブランチプログラムのパラメータをセットする処理が、
Ｐ−ＰブランチプログラムのＮ＋１ブランチプログラムフラグをＯＮにする手順；
各Ｐ−Ｐブランチプログラムの入口アドレスを設置する手順；
相応するレジスタデータの初期値を設置する手順；及び
Ｐ−Ｐフラグ域とＰ−Ｐブランチプログラムのデータフラグをゼロにセットする手順；
を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする請求項９に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの方法。
【請求項１１】
既述のＰ−Ｐブランチプログラムが一つのデータ書込サブルーチンを含み、当該サブルーチンが、
一つのＰ−Ｐデータに対するデータ書込操作をする手順；
当該データの“既一致化無効”フラグを検査する手順；
当該フラグが有効の場合（当該データはデータ一致化作業を行ったと表し、しかも一致化フラグ無効で、其の一致化作業が実に実行できなく、一致化Ｐ−Ｐブランチプログラムがサスペンド状態に落ちた結果に招く）、実行可能フラグの当該一致化Ｐ−Ｐブランチプログラムのステータスビットをサスペンド状態より実行可能状態へセットし直す手順；
当該フラグが無効の場合、専用操作がない手順；
“一致化有効”フラグを生成し、即ち、一致化Ｐ−Ｐブランチプログラムが当該データに対する一致化作業の実行を許可する手順；及び
データ書込のサブルーチンが戻る手順；
を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする請求項８に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの方法。
【請求項１２】
既述のＰ−Ｐブランチプログラムが一つの一致化データサブルーチンを含み、当該サブルーチンが、
当該データの“一致化有効”フラグを検査する手順；  其の中、
当該データの“一致化有効”フラグが有効の場合、データとトークンの一致化作業を行う手順；
当該データのＮビット“既読無効”フラグを検査する手順；
“既読無効”フラグが有効の場合、“既読無効”フラグの内容に基づいて、相応するＰ−Ｐブランチプログラムの状態をサスペンド状態より実行可能状態へセットする手順；
“既読無効”フラグが無効の場合、専用操作がない手順；
データ一致化サブルーチンが終了戻る手順；
当該データの“一致化有効”フラグが無効の場合、当該Ｐ−Ｐブランチプログラムをサスペンドにし、“既一致化無効”フラグをセットする手順；
当面一致化ブランチプログラムのサスペンド処理を行い、一致化Ｐ−Ｐブランチプログラムの当面実行状態を保存し、後に当該Ｐ−Ｐブランチプログラムが戻るときに利用できる手順；及び、
新たにＰ−Ｐブランチプログラムを選択するために、当該Ｐ−Ｐブランチプログラムから退出し、Ｐ−Ｐブランチサスペンドへの転移と同時に戻り口から退出する手順；
を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする請求項８に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの方法。
【請求項１３】
既述のＰ−Ｐブランチプログラムが一つのデータ読込みサブルーチンを含み、当該サブルーチンが、
当該データの“読込有効”フラグを検査する手順；
当該データの“読込有効”フラグが有効の場合、データの読込を行う手順；及び、
データ読込サブルーチンが終了戻る手順；
当該データの“読込有効”フラグが無効の場合、データ読込サブルーチンの所在するブランチプログラムの位置に基づいて、相応するＮビットの“既読無効”フラグを無効にセットする手順；
当該Ｐ−Ｐブランチプログラムが戻るとき、サスペンドした時点のポイントから続行できるために、当Ｐ−Ｐブランチプログラムのサスペンド処理を行い、Ｐ−Ｐブランチプログラムの当面実行状態を保存する手順；及び、
新たにＰ−Ｐブランチプログラムの選択するために、当該Ｐ−Ｐブランチプログラムから退出し、Ｐ−Ｐブランチサスペンドへの転移と同時に戻り口から退出する手順；
を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする請求項８に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの方法。
【請求項１４】
マルチブランチプログラムの入口アドレスを含む並列コール命令であって、
一つの通常のコール命令は、一つのＰ−Ｐ出入管理モジュールをコールする場合に用いる；
既述のＰ−Ｐ出入管理モジュールは既述のＰ−Ｐコール命令の各ブランチプログラム入口アドレスの処理及び取得に用いる；
一つの時分割管理プログラムは、既述のマルチブランチプログラムの実行を管理する場合に用いる；
既述の時分割管理モジュールは第一ブランチプログラムを選択し実行に進み、しかも既述の第一ブランチプログラムの終了戻りに影響与え、そして第ニブランチプログラムを選択し実行に進み、このように全ての既述のマルチブランチプログラムの実行終了後、既述のＰ−Ｐ出入管理モジュールに戻る；
並列コール命令を含むことを特徴とするＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造及び方法。
【請求項１５】
時分割管理モジュールは、既述のマルチブランチプログラムに対し、“サスペンド状態”からのプログラム戻りに応答し、さらに当該プログラムの“サスペンド、実行可能及び実行”状態に対する時分割管理を行うことを特徴とする請求項１４に記載のＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造及び方法。
【請求項１６】
Ｐ−Ｐモジュールコール命令とコール許可命令の組合せ構造であって、
コール許可命令の実行はコール命令の実行可能条件であり；
コール許可命令とコール命令は異なるプログラムのブランチに位置している；
コール許可命令とＰ−Ｐモジュールデータシーケンス（Ｎ＋１個目のプログラム）は一緒にソートする；
ことを特徴とするＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造及び方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ技術に関連し、特に一つのコンピュータソフトウエアモジュール構造のカテゴリーに関連する。
【背景技術】
【０００２】
既存技術の中で、並列フローチャートに対する見方は“Ｎ個フローとデータとの相互連結”である。
既存技術のシーケンスネットコンピュータが想定しているのは、実は並列フローチャートにＮ＋１個のシーケンスがあり、しかもＮ＋１個シーケンスの構造において、分散型データトークンの構造がある場合であり、図１に示すように、シーケンスネットと称される。コンピュータにおいて、並列フローチャートを実現する場合、既存技術の考え方では、Ｎ＋１個のシーケンスが基本要素であり、それに応じてＮ＋１個のハードウエアフローが必要であることが、並列コンピュータの実行できる基本特徴である。Ｎ＋１個のフローシーケンスの構造条件において、並列フローチャートの機能を維持するため、既存技術は分散型トークンの構造を採用し、其の構造はＮ＋１個目のフローシーケンスが（データ）トークンを実行するような構造を持っている。それゆえ、既存発明はＮ＋１個のフローを持つコンピュータの構造を生成し、図１に示す構造のように、シーケンスネットコンピュータと定義する。
【０００３】
シーケンスネットコンピュータの構造にはＮ＋１個の並列プログラムと分散型データトークンとの連接構造が含まれている。プログラミングの視点から見れば、シーケンスネットはＮ＋１個の並列プログラム（既存のＮ個のプログラムを取り替え）の実行制御方法である。したがって、実行制御の視点から、本文ではシーケンスネット構造を並列プログラムあるいはＮ＋１並列プログラムと称し、さらに、「Ｎ＋１並列プログラム」を「Ｎ＋１  Ｐ−Ｐ」と略称する）。同時に、従来技術中のＮ個の並列プログラム処理構造をＮ並列プログラムと称する（以下同様に、「Ｎ並列プログラム」を「Ｎ  Ｐ−Ｐ」と略称する）。Ｎ＋１  Ｐ−ＰとＮ  Ｐ−Ｐの概念が異なっていても、其のブランチプログラム間に転送すべきデータは同じである。本発明は上記のＮ＋１  Ｐ−ＰとＮ  Ｐ−Ｐの相互関連データをＰ−Ｐデータと称し、今後の叙述中ではデータと略称する場合もある。
【０００４】
Ｎ＋１  Ｐ−Ｐ構造は図１に示すように、Ｎ＋１  Ｐ−ＰにはＮ＋１個プログラム１００、１０１、１０２、１０３（本図及び本発明の記述中、Ｎ＝３とし、以下説明略）、と４つの分散型（データ）トークン１０８が含まれている。新規追加したＮ＋１個目のプログラム１００を一致化プログラムと称する。分散型（データ）トークン１０８は、プログラムの中で三種類の新命令を表す、データ書込命令ＴＥＳＴ（１０４）、データ読込命令ＴＥＳＴ（１０５）とＮ＋１  Ｐ−Ｐデータ一致化命令ＴＣＯＳ（１０６）のいずれかからなる。図中、矢印はデータ転送路を表し、１０７は分散型トークンの一致化命令操作を表す。実行原理を次に示す。
【０００５】
（１）プログラムＳ１、Ｓ２またはＳ３を実行して、データ書込命令ＴＥＳＴ（１０４）に到達時、データ書込操作を行うという。それと同時に、トークン＝１をセットし、即ち、当該並列データの一致化操作を許可する。
（２）一致化プログラム１００を実行して、一致化命令ＴＣＯＳ（１０６）に到達時、並列データの一致化操作を行う。当該分散データトークンの一致化操作１０７を実行時、一致化操作はデータとトークンがソース１０４より、当該分散データトークン１０８範囲内での放送である。一致化放送中はトークンのテストを行う。トークンが無効である限り、当該一致化放送を繰り返す実行し、有効トークンがでたら、次の命令実行に進む。
（３）プログラムＳ１、Ｓ２またはＳ３を実行して、データ読込命令ＴＥＳＴに到達時、データ読込操作を行うという。それと同時に、トークンのテストを行う。トークンが無効である限り、プログラムのデータ読込を繰り返す実行し、有効トークンがでたら、次の命令実行に進む。
【０００６】
明らかに、マルチコンピュータ構造において、Ｎ＋１  Ｐ−Ｐは分散型データトークン構造にサポートされ、一致化プログラム１００を一つ新規増設したことによって、Ｐ−Ｐブランチプログラミングの同期とデータ転送を含み、Ｎ＋１  Ｐ−Ｐ内の並列計算を実現できた。其の中、一つのデータの転送には、異なるプログラムに分散されている３つの命令と２回の同期調整が必要である。即ち、データ書込（トークンの生成）、トークンの一致化処理（トークンセットに対するテスト及び調整）、データ読取（トークンの一致化に対するテスト及び調整）の３つである。一致化プログラム１００の特徴はＮ＋１  Ｐ−Ｐデータのシーケンス実行を駆動させることと、数値計算内容がないことである。
【０００７】
実際は、マルチコンピュータの構造において、Ｎ＋１  Ｐ−Ｐは一致化プログラム１００を一つ新規増設する必要があり、また一致化プログラム１００もＮ＋１  Ｐ−Ｐのネスト機能をサポートしている。構造上では、Ｎ＋１  Ｐ−Ｐのネストが二つの親子関係を持つＮ＋１  Ｐ−Ｐであり、親Ｐ−ＰのＮ＋１個のブランチプログラムは同時に子Ｐ−ＰのＮ＋１個のブランチプログラムによりコール（中断）される。数値計算モジュールの場合、もし、親と子のＰ−Ｐはデータ連結関係がない場合（例えば外部中断事件の子Ｎ＋１  Ｐ−Ｐから）、親のＰ−Ｐのブランチプログラムの任意位置からネスト実施ができる。もし、親と子のＰ−Ｐはデータ連結関係がある場合（プログラム構造の需要による）、アルゴリズムは子（ネスト）Ｐ−Ｐと親Ｐ−Ｐとの間に文脈関係を求める。例えば、１号ブランチプログラムの中から子Ｐ−Ｐのネストコールをだしたら、子Ｐ−Ｐの計算中は親Ｐ−Ｐの所有しているＰ−Ｐブランチプログラムのデータ準備を要求していて、親の各ブランチプログラムがあるプログラムの通過点まで、各自に実行して行かないと、子Ｐ−Ｐのコールが許可されず、それはデータの文脈関係が要求されると表している。実は子Ｐ−Ｐのコール（ネスト）がシリアルであり、子Ｐ−Ｐコールに二つのパラメータが含まれ、即ち、親Ｐ−Ｐブランチプログラムの中の子Ｐ−Ｐコール命令（プログラミングは便利）と親Ｐ−Ｐの実行順序に関するコール許可制御である。
【０００８】
上記Ｎ＋１個プログラムポイントは子Ｐ−Ｐコール位置の許可区域を定義する。Ｎ個ブランチプログラムを用いて、これらの文脈関係を制御するには、一致化プログラム１００を用いて制御するより桁違いの難しさがあると言える。其の制御には、許可位置の確定、とＰ−Ｐデータシーケンスとの関係及び実際の実行とも含まれる。其の中では、Ｐ−Ｐデータシーケンスは文脈のデータである。実用的な許可実行方法は多いが、例えば一つのＰ−Ｐデータに特定の解釈を付き加え、子Ｐ−Ｐのコール許可信号を取り替える方法でもよいし、新命令を設置してもよい。
【０００９】
したがって、子Ｐ−Ｐのネストコールをサポートするキーポイントは親Ｐ−ＰにＰ−Ｐデータシーケンスの実際実行プロセスを持つことで、例えば一つのプログラミング構造を用いてＰ−Ｐデータシーケンスの実行を制御する。上述二つの特徴があれば、子Ｐ−Ｐに対する許可はプログラム制御下で柔軟に処理でき、しかもプログラミングの定義と文脈データの関係が確立できる。プログラミングの汎用性構造機能にとっては、Ｐ−Ｐネスト機能が極めて重要である。明らかに、Ｐ−ＰのＮ＋１個目のプログラムはＰ−Ｐネスト機能をサポートするキーポイントである。
【００１０】
シーケンスネットコンピュータのＮ＋１  Ｐ−Ｐモジュールは以下の特徴を持つ。
（１）シーケンスネットコンピュータのＮ＋１  Ｐ−Ｐモジュールの構造はシンプルである。
（２）データシーケンスの特徴を持つＰ−Ｐモジュールは、Ｎ＋１  Ｐ−Ｐの並列計算をサポートする。データシーケンスはＮ＋１個目のプログラムＳｃからなる。
（３）複数のＰ−Ｐモジュール間は、構造的なネストが認められる。
（４）各ブランチプログラムは独立なプログラムモジュール構造を有する。
【００１１】
さらに、スタンドアローンのコールサブＰ−Ｐ命令（以下子Ｐ−ＰをサブＰ−Ｐと称する）を生成することによって、Ｐ−Ｐモジュール間のネスト構造を実現でき、Ｎ＋１個目のプログラムにサブＰ−Ｐのコール許可機能を生成することによって、サブＰ−Ｐのコール許可を実現できる。
（１）スタンドアローン中のＰ−Ｐコール命令を生成し、Ｐ−Ｐコールを実現する。
（２）一つのコール命令は、Ｎ＋１個並列的な並列化コール能力を有する。
（３）既存のＰ−Ｐデータ構造を用いて、サブＰ−Ｐのコール許可を取り替える。
【００１２】
シーケンスネットコンピュータ技術は並列フローチャートがＮ＋１個のＰ−Ｐブランチプログラムを持つことを明確にした。但し、今現在多くの人は並列フローチャートに対する認識がまだ、Ｎ個のフローと思って、それによって、マルチコンピュータ構造における並列化技術の発展は制限された。スタンドアローンの環境では、それの違いが小さくみられ、見分け難くなる。しかし、ある特定の情況下では、このような概念の差は具体的な構造に反映される。
【００１３】
本発明では、シーケンスネットコンピュータのＮ＋１  Ｐ−Ｐブランチプログラムの視点から、Ｐ−Ｐが下記のスタンドアローン環境に入るときの二種類の構造を考える。
【００１４】
並列計算のフローとシーケンスのマッチング原理に基づいて、並列モジュールの本質はＮ＋１個のシーケンスがある、Ｎ＋１個のフローとシーケンスのマッチングを実現するために、コンピュータがＮ＋１個の相応するハードウエアフローを要求する。スタンドアローン環境において、コンピュータは一つのフローしかないので、Ｎ＋１個のシーケンスを一つのシーケンスに併合してから、フローとシーケンスのマッチングができるようになる。併合の核心はＮ＋１個シーケンスに対する時分割処理である。概念上では、Ｎ個のシーケンスの併合を行うと理解するにしても、実際はＮ＋１個のシーケンスの併合を行うことである。ここでは、実際操作とコンセプト理解上の差がある。
【００１５】
既存技術には、次の二種類の、Ｎ＋１個のシーケンスを一つのシーケンスに併合する方法があり、それによって、異なる構造を作り上げる。図２に示したのは直接組合せの簡単構造で、Ｐ−Ｐブランチプログラムの独立構造問題がない。よって上述実際操作とコンセプト理解上の差が隠蔽される。図３に示したのは独立ブランチプログラム構造が要求される。よって、上述した差の影響が十分表現でき、Ｎ  Ｐ−Ｐ構造の一種類を形成する。即ち、Ｎ  Ｐ−Ｐ構造でＮ＋１  Ｐ−Ｐの実際構造を取り替える。
【００１６】
図２はＮ＋１個のシーケンスを一つのシーケンスに直接併合した構造図である。これはＮ＋１個のブランチプログラムを一つの分割不可のシリアルプログラムに併合する方法である。計算結果は変わらないが、計算プロセスが異なり、それゆえ、一つの計算プロセス範疇の問題がある。
【００１７】
図２に示すように、Ｓ１（１１１）、Ｓ２（１１２）、Ｓ３（１１３）は３つのプログラムであり、各々複数のプログラムセクション１１４−１２５に解体できる。各セクション右側の丸印は当該プログラムセクションから生成したＰ−Ｐデータ（データ書込命令１０４より生成）を表し、矢印線は当該Ｐ−Ｐデータがその他のプログラムセクションで、応用すべき（データ読込命令１０５）位置を指す。そして、それらの解体したセクションを組合せるための必要条件は、組合せ後のシーケンスと全Ｎ＋１のシーケンスとがマッチングできることである（したがって、解体時のセクションの分け方に対する要求がある）。明らかに、全ての矢印線は下向きが必須で、上向きが不可である。其の特徴は、即ちＰ−Ｐデータ一致化シーケンスＳｃ（１１０）の中のシーケンスである。併合後の３つのプログラムは、プログラム１２６になり、それは一つのシリアルプログラムで、一つの分割不可のモジュールである。
【００１８】
Ｎ  Ｐ−Ｐ概念はＮ＋１個目のシーケンスＳｃ（１１０）を有しない。Ｓｃと数値計算結果が無関係なので、しかもスタンドアローン環境において、一致化データの転送が要らないので、併合後のスタンドアローンプログラム１２６は全てのＮ＋１個のシーケンスに満足すればよい。したがって、Ｎ  Ｐ−ＰあるいはＮ＋１  Ｐ−Ｐの概念から言えば、上述の併合による実現した数値計算の結果は同じであることも可能で、これはＮ＋１概念が長い間重視されていない原因の一つである。
【００１９】
スタンドアローン環境において、本図に示した併合方式は一番普通の方法である。簡単に言えば、Ｎ＋１個目のフローシーケンスは、先にデータ書込、後でデータ読込のシーケンスモードである。併合処理によって、各Ｐ−Ｐモジュールはスタンドアローンの中でよく知られている（子）プログラムモジュールになる。
【００２０】
もし併合処理を受けたＮ＋１  Ｐ−Ｐモジュールが、中断プログラムあるいはサブルーチンである場合、実行中のプログラムも併合処理を受けたＰ−Ｐモジュールである。それはＰ−Ｐモジュールのネストを実現したことに相当する。（マルチ）シーケンスネットコンピュータ環境における子Ｐ−Ｐのコールは、分散型コール命令とシリアルのコール許可との二つ条件があり、文脈アルゴリズムの需要に適応する。但し、スタンドアローン環境の図２の構造において、Ｎ＋１個のシーケンスから一つのシーケンスへ併合し、コール命令の位置にコール許可も隠蔽され、文脈のアルゴリズムの需要に満たす。もちろん、全ての記述はよく知られているスタンドアローンの中断プログラムあるいはコールサブルーチンに対する、本発明の視角における一種の解釈である。
【００２１】
Ｎ＋１個のシーケンスを一つのシーケンスに直接併合するＰ−Ｐモジュールの構造は非常に簡単で、並列計算（同期的実行）も、Ｐ−Ｐ間のネスト性能もサポートされる。それらは図２方法の優勢である。但し、Ｎ＋１個目のシーケンスＳｃ中のＰ−Ｐデータシーケンスは固定的なシーケンス構造を持つことが必須で、子Ｐ−Ｐのコール位置も固定が必須である。上述の直接併合する方法は計算に相応しいが、マルチプログラムの管理には相応しくない。各Ｐ−Ｐブランチプログラムには独立的なモジュール構造がないことも一つ不足のことで、（ある特定の場合）各ブランチプログラムのダウンロードあるいはアップロードの機能を実現できない。
【００２２】
まとめて言うと、当該構造は、次のような特徴がある。
（１）Ｐ−Ｐモジュールは構造簡単である。
（２）Ｐ−Ｐモジュールは並列計算をサポートしている。但し、計算機能はＰ−Ｐデータシーケンスの固定化に拘束される。
（３）Ｐ−ＰモジュールはＰ−Ｐ間ネストを許可する。
（４）Ｐ−Ｐモジュールの中で各Ｐ−Ｐブランチプログラムのプログラム構造は独立モジュールではない。
【００２３】
一部の実際応用では、Ｐ−Ｐ各ブランチプログラムがマシンコード層において、独立モジュール構造を必要としている（例えば、ブランチプログラムのダウンロードとアップロード操作の需要がある）。既存技術は並列フローチャートにＮ個フローがあるというコンセプトに基づいて、図３に示すようなＮ  Ｐ−Ｐ構造を生成する。Ｎ  Ｐ−ＰのＮ個のブランチプログラムには独立構造を持つ。スタンドアローン環境において、一つの簡単な発想はＮ個のブランチプログラムを時分割実行させる。時分割は一つのＮ  Ｐ−Ｐ  管理モジュールが必要とされる。それは図３に示すような構造を生成したのである。即ち、一つのＮ  Ｐ−Ｐ管理モジュール１３０とＮ個の独立構造を持つＮ  Ｐ−Ｐブランチプログラム１３１、１３２、１３３を含む構造である。Ｎ個の独立Ｐ−Ｐブランチプログラムと伝統プログラム概念の一致化を保持するため、Ｎ  Ｐ−Ｐ管理モジュール１３０は、簡単な時分割問題ではなく、下記の問題を解決する必要がある。
（１）Ｎ  Ｐ−Ｐブランチプログラムの時分割管理。
【００２４】
これは一つの周知のアルゴリズムモジュールである。Ｎ  Ｐ−Ｐ管理モジュール１３０は親層の構造で、Ｎ個のＰ−Ｐブランチプログラムは子層のである。モジュール１３０は時分割調整を行う、一つのＰ−Ｐブランチプログラムを選定して実行する。実行中、条件が満たしてない場合実行しつづけることができず、ブランチプログラムは自動的にサスペンド状態に入り、モジュール１３０に戻って、次の一つのＰ−Ｐブランチプログラムの選定に移す。このようにすべてのＰ−Ｐブランチプログラムが実行完了まで繰り返す。そして、Ｎ  Ｐ−Ｐ管理モジュール１３０の実行を終了し、退出する。即ち、単純の時分割管理構造は複雑ではない。
【００２５】
もし、Ｎ個のプログラムが並列計算プログラムである場合、相互的なデータ交換は正確なＰ−Ｐデータシーケンスが要求される。上述の時分割アルゴリズム構造はＮ  Ｐ−Ｐを全て実行完了させることが可能である。しかし、実際に実行されるＰ−Ｐデータシーケンスは、モジュール１３０の処理において、制御を加えていない、即ち実際のＰ−Ｐデータシーケンスは不確定である。Ｐ−Ｐデータシーケンスが確定不能であると、Ｎ  Ｐ−Ｐ間のネスト操作に必要な文脈制御の実現が難しくなる。同時にＮ＋１個のプログラムがないため、各ブランチプログラム中に分散されたＮ  Ｐ−Ｐのコール命令は、許可によるソートもできず、Ｎ  Ｐ−Ｐ間のネスト機能も影響される。
（２）Ｎ  Ｐ−Ｐブランチプログラムの同期実行。
【００２６】
本発明の観点に基づいて、同期プロセスの本質は一つの正確なＰ−Ｐデータシーケンスを実行する。
【００２７】
Ｎ  Ｐ−Ｐの構造はＮ＋１個目の一致化プログラムと命令を持たず、それゆえ、一つのデータの転送は“書込”、“一致化”と“読込”３ステップの一般状況から、“書込一致化”と“読込”２ステップへかわる。書込一致化命令は個々のブランチプログラムに起動されたとき、客観的に、各分散された書込一致化操作が正確なＰ−Ｐデータシーケンス関係を持つ必要がある。データ読込テストが無効と発見されたとき、当該ブランチプログラムは退出すべき、親層のＮ  Ｐ−Ｐ管理モジュール１３０に戻る。時分割管理モジュールの調整によって、全てのブランチプログラムが実行され、Ｎ  Ｐ−Ｐの実行が完成される。其の中、各ブランチプログラム間のデータシーケンスが論理上では一致すべき、エラーになってはいけないと要求される。
（３）Ｎ  Ｐ−Ｐブランチプログラム間のデータ通信。
【００２８】
Ｎ  Ｐ−Ｐブランチプログラム間の通信にはいくつかの方法がある。通信パッケージ構造を採用することによって、通信パッケージの構造と解釈もモジュール１３０の構造に入る。それらの処理とプログラムの同期管理は異なる。もちろん、データ通信はＮ  Ｐ−Ｐ管理モジュール１３０の構造範囲から離れて独立処理しても可能である。
【００２９】
既存技術において、Ｎ  Ｐ−Ｐはソフトウエアの設計である。一部の構造は公開されていない。それゆえ、本発明のコメントは完全には不可能である。しかし、根本的に言えば、Ｎ  Ｐ−Ｐの実行にはＰ−Ｐデータシーケンスと独立的なＮ＋１個目のプログラムに欠けるため、Ｎ  Ｐ−Ｐのネスト性能及び並列計算機能に影響を与える。その他、実際にＮ  Ｐ−Ｐ実行時、内部にもＮ＋１個目のフローシーケンスの処理と類似する操作が必須で、別の構造上で表現するに違わない。例えば、メッセージキューはプロセス間の通信方式の一種であり、インタコネクトメッセージのキューである。しかし、それはプログラムではなく、プログラムのような自主実行の駆動機能を持っていない。
【００３０】
Ｎ  Ｐ−Ｐの情況を以下総合的に述べる。
（１）Ｎ  Ｐ−Ｐ管理モジュールは処理機能が多すぎ、構造が複雑である。
（２）Ｎ  Ｐ−Ｐは並列計算をサポートしているが、それのブランチプログラム連結は通信に基づいているので、粒度と並列機能上の制限がある。
（３）Ｎ  Ｐ−Ｐ間のネスト関係は実現し難い。
（４）Ｎ  Ｐ−Ｐブランチプログラムは独立構造があり、ブランチプログラムのダウンロードとアップロードをサポートする。
【００３１】
Ｎ  Ｐ−Ｐと図１に示したシーケンスネット機能に比べて、並列性能上では、マルチコンピュータに及ばない。情況は以下に示す。
（１）スタンドアローン環境とマルチコンピュータ環境が異なる。
（２）Ｎ  Ｐ−Ｐの構造は極めて複雑である。
（３）Ｎ  Ｐ−Ｐ実行中は、Ｐ−Ｐデータシーケンスがなく、Ｐ−Ｐデータシーケンスの処理同期と計算能力がない。
（４）Ｎ  Ｐ−Ｐには“子Ｎ  Ｐ−Ｐ”のコール許可をサポート可能なＮ＋１個目のプログラムがなく、Ｐ−Ｐデータシーケンスとの結合はできず、ネストに必要な文脈処理を実現し難い。
（５）Ｎ  Ｐ−Ｐは独立のブランチプログラム構造を有する。
【発明の開示】
【発明が解決しようとする課題】
【００３２】
既存のシーケンスネットコンピュータ技術は次を表明する。Ｎ＋１  Ｐ−Ｐは並列フローチャートの自然特徴である。当該自然構造において、Ｐ−ＰはＮ＋１個の同じレベル層に実行するブランチプログラムがあり、Ｎ＋１個のＰ−Ｐブランチプログラムは同期とデータ転送を実現し、制御する。また、Ｐ−Ｐのネスト構造もサポートする。本発明はスタンドアローン環境に入るとき、前述のＮ＋１  Ｐ−Ｐブランチプログラムの独立実行、実行中の同期とデータ処理、及びＰ−Ｐのネスト構造をサポートする特徴を維持できることが要求される。これらの性能を維持できれば、構造上では、Ｎ＋１個のＰ−Ｐブランチプログラムの時分割管理モジュールを一つ新規追加すれば済む。単純な時分割管理は比較的に容易であり、即ち、シーケンスネットコンピュータのＮ＋１個のブランチプログラムを待ち状態より、サスペンド、実行可能等状態（プロセスのような状態構造）へ変換させる必要がある。時分割管理モジュールとＮ＋１個のＰ−Ｐブランチプログラムの帰属は同じ層ではない。図３に示した既存技術のＰ−Ｐ構造と比較すると、本発明のＮ＋１個目のＰ−Ｐブランチプログラムは一つの主動実行、Ｐ−Ｐデータシーケンスの実行、Ｎ＋１  Ｐ−Ｐのネストをサポートするプログラムである。明らかに、其の構造の自然本質に相応しい。したがって、本発明のＮ＋１  Ｐ−Ｐ構造は一つの一般構造になる。
【００３３】
Ｐ−Ｐはモジュール自然特徴に符合する構造である。マルチコンピュータにおいて、シーケンスネットコンピュータはこの自然特徴に符合しているコンピュータモジュールである。スタンドアローン環境において、この自然規律に符合している特徴を生成すべきである。
【００３４】
したがって、本発明の目的はスタンドアローン環境において、Ｎ＋１個の実行プログラムを持つＰ−Ｐ構造を生成することにある。
【００３５】
本発明の目的に基づいて、生成すべきスタンドアローン環境におけるＰ−Ｐ構造は次の課題を含む。
（１）簡単に処理できるＮ＋１個のＰ−ＰブランチプログラムのＰ−Ｐ時分割管理構造を実現；
（２）Ｎ＋１個目Ｐ−ＰブランチプログラムはＰ−Ｐデータシーケンスを生成し、並列計算中の同期実行とデータ転送機能を実現；
（３）Ｐ−ＰとＰ−Ｐ間のネスト関係をサポート；及び
（４）Ｐ−Ｐ  Ｎ＋１個のブランチプログラムは独立的なモジュール構造である。
【００３６】
上述４つの課題を解決して得られた機能は、単項上では、図１、図２、と図３の優点を集中するだけでなく、さらに、総合後の創造優勢を持つ。
【００３７】
本発明の他の目的は一種の並列機能を合理的に配分する構造を作り上げることにあり、上述した並列性能を完成した後、さらに下記を含む新たな計算資源を生成することにある。
（１）Ｎ＋１個目のプログラムが制御している“Ｐ−Ｐデータシーケンス”と子Ｐ−Ｐコール許可はＰ−Ｐ実行のプロセス特徴を表す。
（２）余力を持つＮ＋１個目のプログラム資源。
（３）余力を持つＰ−Ｐ時分割管理モジュール。
【課題を解決するための手段】
【００３８】
上記目的を達成するため、本発明によるＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造は、請求項１に記載のとおり、スタンドアローン環境に基づくＮ＋１個の並列プログラム構造モジュールであって、Ｎ＋１  Ｐ−Ｐブランチプログラムモジュール（Ｎ≧１）は、Ｎ＋１個のオブジェクトコードに依存しない構造のブランチプログラムの時分割実行（並列コンピュータ構造における並列実行は時分割の必要がない）を通して、Ｐ−Ｐモジュールの実行を実現し、個々に既述のＰ−ＰブランチプログラムのＰ−Ｐデータ読込、Ｐ−Ｐデータ書込及びＰ−Ｐデータ一致化の三種類のシーケンスネット命令あるいはサブルーチンのサポートに基づいて、Ｐ−Ｐブランチプログラムのデータ転送と同期を完成し、また、一つの管理プログラムモジュールを、既述のＰ−Ｐブランチプログラムからの情報の応答、Ｐ−Ｐブランチプログラムのサスペンド、実行可能と実行状態のサポートに用いる、ことを含むＮ＋１個の並列プログラム構造モジュールによることを特徴とする。
【００３９】
また、請求項２に示すとおり、Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、さらに、一つのＰ−Ｐブランチプログラムのサスペンド処理モジュールを含み、当面のＰ−Ｐブランチプログラムのサスペンド、実行可能及び実行状態の処理に用いるＮ＋１個の並列プログラム構造モジュールによることを特徴とする。
【００４０】
また、請求項３に示すとおり、Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、さらに、一つのＰ−Ｐ出入管理モジュールを含み、既述のＰ−Ｐの出入管理モジュールは既述の時分割管理プログラムモジュールの結合に応答し、個々の実用Ｐ−Ｐに対する初期化処理及び退出処理を行うＮ＋１個の並列プログラム構造モジュールによることを特徴とする。
【００４１】
また、請求項４に示すとおり、Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、Ｐ−Ｐ構造モジュールのＮ＋１個目のＰ−Ｐブランチプログラムは一つのＰ−Ｐデータのシーケンスを実行し、データ一致化操作を用いて表示するＮ＋１個の並列プログラム構造モジュールによることを特徴とする。
【００４２】
また、請求項５に示すとおり、Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、既述のＮ＋１個目のブランチプログラム中のトークン一致化操作とＰ−Ｐデータと対応し、既述のＮ＋１個目のブランチプログラムを通して直接にＰ−Ｐデータを一つずつ一致化することを制御し、Ｐ−Ｐデータ一致化を行える条件は当該Ｐ−Ｐデータが既に他のＰ−Ｐブランチプログラムに書かれたことがあり、そうでなければ、其のＮ＋１個目のブランチプログラムはサスペンドに入り、一致化作業実行後、当該Ｐ−Ｐデータが他のブランチプログラムに読取されたときに有効と見なし、そうでなければ、当該Ｐ−Ｐデータを読み取るＰ−Ｐブランチプログラムはサスペンドに入ることになるＮ＋１個の並列プログラム構造モジュールによることを特徴とする。
【００４３】
また、請求項６に示すとおり、Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、Ｐ−Ｐのネスト及びサブＰ−Ｐのコール操作時、既述のＮ＋１個のプログラムはサブＰ−Ｐのコール許可とＰ−Ｐデータシーケンスとの関係の制御と連接を行うＮ＋１個の並列プログラム構造モジュールによることを特徴とする。
【００４４】
また、請求項７に示すとおり、Ｎ＋１  Ｐ−Ｐ構造モジュールに基づいて、既述のＮ＋１個のＰ−Ｐに三種類のＰ−Ｐサブルーチンが含まれ、即ち、Ｐ−Ｐデータの読取、書込と一致化操作であり、既述のサブルーチンはトークンの設置、テスト及び処理能力を持ち、しかもＰ−Ｐブランチプログラムの同期とＰ−Ｐデータの転送をサポートするＮ＋１個の並列プログラム構造モジュールによることを特徴とする。
【００４５】
また、上記目的を達成するため、本発明によるＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの方法は、請求項８に記載のとおり、スタンドアローン環境に基づくＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法であって、初期化処理手順；既述のＰ−Ｐの終了検査を行い、既述のＰ−Ｐの各ブランチプログラムのスイッチフラグを検査し、其の中、全てのＰ−Ｐブランチプログラムがオフであれば、Ｐ−Ｐの実行は終了したと表し、そしてＰ−Ｐ終了の記録及び外部プログラムの連接方式を処理する手順；一つでもＰ−Ｐブランチプログラムがオンであれば、ブランチプログラムのサスペンド状態検査を行い、其の中、検査結果は全てのＰ−Ｐブランチプログラムがサスペンド状態にある場合、実行未完了のＰ−Ｐがあっても、当該Ｐ−Ｐブランチプログラムが実行継続できないことを表す手順；Ｐ−Ｐブランチプログラムが実行不能の原因を探し、其の原因に基づいて、Ｐ−Ｐブランチプログラムの退出処理を行う手順；検査結果は一つ以上のＰ−Ｐブランチプログラムが実行可能状態にある場合、Ｐ−Ｐブランチプログラムの待ち行列処理に進む手順；一つ実行可能のＰ−Ｐブランチプログラムを選択し、ブランチプログラムの待ち行列処理を行う手順；Ｐ−Ｐブランチプログラムを選定し、それらのパラメータをセットしてＰ−Ｐブランチプログラムのサスペンド前の状態に復帰させる手順；及び、選定したＰ−Ｐブランチプログラムの実行に進む手順；を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする。
【００４６】
また、請求項９に示すとおり、既述の初期化処理には、Ｐ−Ｐブランチプログラムのパラメータのセットとフラグ域のゼロリセットの処理を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする。
【００４７】
また、請求項１０に示すとおり、既述のＰ−Ｐブランチプログラムのパラメータをセットする処理が、Ｐ−ＰブランチプログラムのＮ＋１ブランチプログラムフラグをＯＮにする手順；各Ｐ−Ｐブランチプログラムの入口アドレスを設置する手順；相応するレジスタデータの初期値を設置する手順；及び、Ｐ−Ｐフラグ域とＰ−Ｐブランチプログラムのデータフラグをゼロにセットする手順；を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする。
【００４８】
また、請求項１１に記載のとおり、既述のＰ−Ｐブランチプログラムが一つのデータ書込サブルーチンを含み、当該サブルーチンが、一つのＰ−Ｐデータに対するデータ書込操作をする手順；当該データの“既一致化無効”フラグを検査する手順；当該フラグが有効の場合（当該データはデータ一致化作業を行ったと表し、しかも一致化フラグ無効で、其の一致化作業が実に実行できなく、一致化Ｐ−Ｐブランチプログラムがサスペンド状態に落ちた結果に招く）、実行可能フラグの当該一致化Ｐ−Ｐブランチプログラムのステータスビットをサスペンド状態より実行可能状態へセットし直す手順；当該フラグが無効の場合、専用操作がない手順；“一致化有効”フラグを生成し、即ち、一致化Ｐ−Ｐブランチプログラムが当該データに対する一致化作業の実行を許可する手順；及び、データ書込のサブルーチンが戻る手順；を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする。
【００４９】
また、請求項１２に記載のとおり、既述のＰ−Ｐブランチプログラムが一つの一致化データサブルーチンを含み、当該サブルーチンが、当該データの“一致化有効”フラグを検査する手順；其の中、当該データの“一致化有効”フラグが有効の場合、データとトークンの一致化作業を行う手順；当該データのＮビット“既読無効”フラグを検査する手順；“既読無効”フラグが有効の場合、“既読無効”フラグの内容に基づいて、相応するＰ−Ｐブランチプログラムの状態をサスペンド状態より実行可能状態へセットする手順；“既読無効”フラグが無効の場合、専用操作がない手順；データ一致化サブルーチンが終了戻る手順；当該データの“一致化有効”フラグが無効の場合、当該Ｐ−Ｐブランチプログラムをサスペンドにし、“既一致化無効”フラグをセットする手順；当面一致化ブランチプログラムのサスペンド処理を行い、一致化Ｐ−Ｐブランチプログラムの当面実行状態を保存し、後に当該Ｐ−Ｐブランチプログラムが戻るときに利用できる手順；及び、新たにＰ−Ｐブランチプログラムを選択するために、当該Ｐ−Ｐブランチプログラムから退出し、Ｐ−Ｐブランチサスペンドへの転移と同時に戻り口から退出する手順；を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする。
【００５０】
また、請求項１３に示すとおり、既述のＰ−Ｐブランチプログラムが一つのデータ読込みサブルーチンを含み、当該サブルーチンが、当該データの“読込有効”フラグを検査する手順；当該データの“読込有効”フラグが有効の場合、データの読込を行う手順；及び、データ読込サブルーチンが終了戻る手順；当該データの“読込有効”フラグが無効の場合、データ読込サブルーチンの所在するブランチプログラムの位置に基づいて、相応するＮビットの“既読無効”フラグを無効にセットする手順；当該Ｐ−Ｐブランチプログラムが戻るとき、サスペンドした時点のポイントから続行できるために、当Ｐ−Ｐブランチプログラムのサスペンド処理を行い、Ｐ−Ｐブランチプログラムの当面実行状態を保存する手順；及び、新たにＰ−Ｐブランチプログラムの選択するために、当該Ｐ−Ｐブランチプログラムから退出し、Ｐ−Ｐブランチサスペンドへの転移と同時に戻り口から退出する手順；を含むＮ＋１個のＰ−Ｐブランチプログラム（Ｎ≧１）の実行方法によることを特徴とする。
【００５１】
また、上記目的を達成するため、本発明によるＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造及び方法は、請求項１４に記載のとおり、マルチブランチプログラムの入口アドレスを含む並列コール命令であって、一つの通常のコール命令は、一つのＰ−Ｐ出入管理モジュールをコールする場合に用いる；既述のＰ−Ｐ出入管理モジュールは既述のＰ−Ｐコール命令の各ブランチプログラム入口アドレスの処理及び取得に用いる；一つの時分割管理プログラムは、既述のマルチブランチプログラムの実行を管理する場合に用いる；既述の時分割管理モジュールは第一ブランチプログラムを選択し実行に進み、しかも既述の第一ブランチプログラムの終了戻りに影響与え、そして第ニブランチプログラムを選択し実行に進み、このように全ての既述のマルチブランチプログラムの実行終了後、既述のＰ−Ｐ出入管理モジュールに戻る；並列コール命令を含むことを特徴とする。
【００５２】
また、請求項１５に示すとおり、時分割管理モジュールは、既述のマルチブランチプログラムに対し、“サスペンド状態”からのプログラム戻りに応答し、さらに当該プログラムの“サスペンド、実行可能及び実行”状態に対する時分割管理を行うことを特徴とする。
【００５３】
また、上記目的を達成するため、本発明によるＮ＋１個の並列プログラムに対するソフトウェアシミュレーションの構造及び方法は、請求項１６に記載のとおり、Ｐ−Ｐモジュールコール命令とコール許可命令の組合せ構造であって、コール許可命令の実行はコール命令の実行可能条件であり；コール許可命令とコール命令は異なるプログラムのブランチに位置している；コール許可命令とＰ−Ｐモジュールデータシーケンス（Ｎ＋１個目のプログラム）は一緒にソートする；ことを特徴とする。
【発明の効果】
【００５４】
本発明を実施することにより、次のようないくつかの具体的な効果を挙げることができる。
【００５５】
（１）Ｐ−Ｐモジュールの“Ｐ−Ｐデータ＋シーケンス”の特徴
Ｎ＋１個目のＰ−ＰブランチプログラムはＰ−Ｐデータシーケンスを実行し、Ｐ−ＰデータシーケンスをＰ−Ｐパッケージの外部特徴にする。すなわち、もし、Ｐ−Ｐはオブジェクト指向のカテゴリ或いはオブジェクトの内部構造とする場合、そのパッケージの外部特徴は、単なるデータを有する１種のデータ要素だけでなく、Ｐ−ＰデータとＰ−Ｐデータシーケンスの２種類要素を備えることなる。その結果、オブジェクト指向技術の中のカテゴリ或いはオブジェクトからリアルタイム特徴が現れ、時間によるイベントのシーケンスの調整が表される。例えば、これらのデータの時間関係はあるシーケンシャル系列化作業を行わせ、これらの前後関係を変更することができない。
“Ｐ−Ｐデータ＋シーケンス”はよりよくオブジェクトのダイナミック状態の実行特徴を反映でき、オブジェクト指向技術の革新サポートに役に立つ。しかし、既存のオブジェクト指向技術では、カテゴリのパッケージがデートという１種の要素だけ有し、本発明のＰ−Ｐ構造よりシーケンス要素の１特徴を放棄したに相当する。
【００５６】
（２）Ｐ−Ｐブランチプログラムのオンライン増減
Ｐ−ＰにＰ−Ｐデータシーケンス特徴がある場合、１つのＰ−Ｐデータシーケンスに合致する新しいＰ−Ｐブランチプログラムが容易にＰ−Ｐに加入でき、Ｐ−Ｐ構造の１つ短絡プログラムに相当する。短絡プログラムとＰ−Ｐは共有のＰ−Ｐデータシーケンスを有し、独立の構造を持ち、カテゴリの継承・データの採取・ソフトウエアのテスト・運用状況の監視などの用途に用いられる。
【００５７】
（３）ユーザプログラムの中で、Ｐ−Ｐは実行の応答速度を向上することができる。
仮にあるユーザプログラム中に３つの外来データをそれぞれ受け入れる３つのプログラムがあって、データの到達はランダム的である。シリアル型のプログラムの下では、第１個目のデータ位置で停頓し、その他の２つ受入れプログラムの準備段階を実行することができない。もし、シリアル型のプログラムを本発明の３つブランチプログラムを有するＰ−Ｐ構造に変更した場合、プログラムは３つプログラムの受入れ態勢準を完了してから、待ち状態に入る。しかも、一旦１つデータが先に到達した場合、先に到データが到達したＰ−Ｐブランチプログラムが実行に移せる。
【００５８】
（４）Ｐ−Ｐは計算過程における一般的な構造
本発明のＰ−Ｐ構造は初めて並列プログラムの組み合わせモジュールを実現した。その中で、ブランチプログラムのサスペンド・実行可能などは、プロセスの処理方法をＰ−Ｐの内部構造に取り入れたように類似する。第Ｎ＋１個目のブランチプログラムは全体Ｐ−ＰのＰ−Ｐデータシーケンス特徴を際立った。実際、第Ｎ＋１番目のブランチプログラムが実行するＰ−ＰデータシーケンスとＰ−Ｐのデータ計算結果の間は無関係であり、その意義は１つのＰ−Ｐフローチャートという計算を完成したところではなく、Ｐ−Ｐ計算過程の特徴を表現したところにある。本発明のＰ−Ｐは計算過程の一般的な構造で、構造パラメータの変化を通じて図２、図３のような異なるＰ−Ｐ実施例を形成することができる。
１つスターンドアローンコール命令でこのＰ−Ｐを起動することができ、Ｐ−Ｐの応用を極めて簡単に行えるようになる。
【００５９】
（５）Ｐ−Ｐデータからデータブロックへの変化
Ｐ−Ｐデータ構造からデータブロック構造へと変化するＰ−Ｐ構造の違いは、図１１に示すＰ−Ｐデータによって、１つのＰ−Ｐデータフラグでもう１つのＰ−Ｐデータブロックの一致化をサポートするところにある。これは一連の新しいサブルーチン系の設計によって実現でき、ただし、プログラミングの概念上においては、共有メモリ構造の利用ができる。
【００６０】
（６）その他
さらに、マルチＰ−Ｐ間のネスト構造のように、Ｐ−ＰのＰ−Ｐコールは、すべて本発明Ｐ−Ｐ構造が所有する機能、コンピュータソフトウェアの各種要求をサポートすることができる。
Ｐ−ＰとＰ−Ｐコールにより新しい構造資源が生まれ、しかし使用方法上においては既存技術と相似し、熟練のＳＥであればこれらの新資源の運用については理解と実現できる。また、研究の進みに連れ、さらに多くの応用が開発と実現できる。
【発明を実施するための最良の形態】
【００６１】
以下、本発明に係る実施の形態を、図面を参照して具体的に説明する。
【実施例１】
【００６２】
図４は本発明のＮ＋１  Ｐ−Ｐ構造図であり、スタンドアローン環境において、ソフトウエアによる既存技術の“並列構造に基づく並列モジュール構造及び並列処理方法”の実施例である。またスタンドアローン環境におけるＰ−Ｐを実現する一般化構造でもある。
【００６３】
本発明の構造は時分割管理モジュール２０１、Ｎ＋１個のＰ−Ｐブランチプログラムモジュール２０７、及びＰ−Ｐブランチプログラムのサスペンド処理２０２を含む。図１を参照し、本発明がスタンドアローン環境におけるＰ−Ｐ実現の方法は、Ｎ＋１個の独立Ｐ−Ｐブランチプログラム構造２０７を保持する及び図１の自動的にＰ−Ｐブランチプログラム間の同期実行とデータ転送能力を保留することに基づいて、さらにブランチプログラムの時分割管理を行う。時分割管理はＰ−Ｐブランチプログラムのサスペンド、実行可能、実行という状態管理によって、ブランチプログラムの時分割実行を制御することである。
【００６４】
同時刻では、Ｎ＋１個のＰ−Ｐブランチプログラムモジュール２０７中一つのブランチプログラムしか実行できない。当該ブランチプログラムの中の既存Ｐ−Ｐデータ読込、Ｐ−Ｐデータ書込とＰ−Ｐデータ一致化という三種類のシーケンスネット命令は、本発明の中で、３つのソフトウエアサブルーチンに取り替えられた。中では、Ｐ−Ｐデータ書込サブルーチンが直接実行可能であるが、Ｐ−Ｐデータ読込、Ｐ−Ｐデータ一致化サブルーチンには実行可能の条件検査が含まれる。データ無効であれば、検査時ブランチプログラムの継続実行が不可になり、モジュール２０７の中のブランチプログラムが止り、モジュール２０２へ転移し、当該ブランチプログラムに対するサスペンド処理が行われ、当該Ｐ−Ｐブランチプログラムが実行終了であれば、２０８を通してモジュール２０１へ転移する。
【００６５】
モジュール２０７の中には、実行状態を“ＯＮ”か“ＯＦＦ”にしているＰ−Ｐブランチプログラムがなく、その“ＯＮ”状態はさらにサスペンドと実行可能の二つの情況へ細分する。
【００６６】
個々のブランチプログラムは相応的なデータ、プログラムアドレス等専用メモリエリアを持つ。これらのコンセプトは周知のプロセスあるいはスレッド管理に普遍的である。中ではＮ＋１個目のブランチプログラム２０３がＰ−Ｐデータシーケンス、即ち新たな内容を実行しているが、サスペンドや実行可能等状態処理の方式上では同様である。
【００６７】
ブランチプログラムサスペンド処理モジュール２０２はＰ−Ｐブランチプログラムモジュール２０７からのブランチプログラム実行不可の情報を受け入れる、読込無効と一致化無効の二種類情況を含む。一致化無効は当該Ｐ−Ｐデータが書込まれていない、読込無効は当該Ｐ−Ｐデータが一致化操作されなかったという。二種類の情況とも関連するサブルーチンがＰ−Ｐデータフラグを検査するとき発生し、当該ブランチプログラムが継続実行不可と表す。ブランチプログラムサスペンド処理モジュール２０２は当面のＰ−Ｐブランチプログラムのサスペンドや現場セーブ等処理内容を行い、その後モジュール２０１へ転移する。
【００６８】
時分割モジュール２０１の目標は一つの新しいＰ−Ｐブランチプログラムを選定する。時分割モジュールは全てのＰ−Ｐブランチプログラムの状態（主に各ブランチプログラムのサスペンド、実行可能及びスイッチ状態）情報を持つ。これらの情報が随時修正され、例えば、Ｐ−Ｐデータ書込サブルーチンには該当データの位置に一致化無効が起きたかどうかを検査する必要があり、起きたことがあれば、一致化プログラムＰＰｃ２０３をサスペンド状態へ行かし、サスペンド処理があれば、該当Ｐ−Ｐブランチプログラムのサスペンド状態を実行可能状態へ修正する必要がある。時分割モジュールは一定の優先権規則に従って、モジュール２０７中の次の実行可能状態のＰ−Ｐブランチプログラムを選出し、そして当該ブランチプログラムの復帰処理を行い、実行に進む。時分割管理モジュールがＰ−Ｐブランチプログラムの同期あるいはデータ通信に対する直接処理はしない。モジュール２０７は次のＰ−Ｐブランチプログラムを選出する方法を持ち、異なる需要に基づいて、モジュール２０７は各種の異なる優先権設計案を持つ。例えば、時間による優先権を生成するとき、先に起動したブランチプログラムは優先実行が可能である。
【００６９】
全てのブランチプログラムが実行終了後、時分割管理モジュール２０１は選択も停止する。全てのＰ−Ｐブランチプログラムがサスペンド状態になるとき、全Ｐ−Ｐが実行不能と表し、時分割管理モジュール２０１も選択停止になり、上層のＰ−Ｐに戻るかデータ入力待ちかの操作を行う。
【００７０】
本発明と図３の構造との主な違いはＰ−ＰがＮ＋１個目の独立実行のＰ−Ｐブランチプログラム２０３を持つことであり、Ｎ＋１個のプログラムの並列実行とＮ＋１個のＰ−Ｐブランチプログラムは同じ層にある。中では、Ｎ＋１個目のＰ−ＰブランチプログラムがＰ−Ｐデータシーケンスを実行し、（データ）一致化操作として表す。Ｐ−Ｐのデータシーケンス特徴と独立構造を強調し、その他のＮ個のブランチプログラムが数値計算に対する処理と全く異なる。
【００７１】
既存技術の中で、Ｎ＋１個目のプログラムは“データとトークン一致化”を含む命令のプログラムであり、マルチコンピュータ間のデータ一致化とトークン一致化（転送と判別）操作を完成させる。スタンドアローン環境において、当該命令は一致化サブルーチンに替わり、トークン（ハードウエア）もＰ−Ｐデータ（ソフトウエア）フラグに替わり、メモリで取り替え、トークンの判別もソフトウエアによるフラグ内容の判別に替わる。同時に、スタンドアローン環境において、データとトークンの共同転送も変わり、Ｐ−Ｐデータの転送（一致化）操作もなくなり、但し、トークン一致化の処理はまだ必要である。ソフトウエア方式によって、トークン一致化はＰ−Ｐデータのフラグに対する操作である。
【００７２】
Ｎ＋１個目のブランチプログラムの中のトークン一致化操作はＰ−Ｐデータに対応しているのである。Ｐ−ＰデータはＮ＋１個目のプログラム制御を通じて、個々に対して直接に一致化を行う。Ｐ−Ｐデータ一致化の実行可能条件は当該Ｐ−Ｐデータが既に他のＰ−Ｐブランチプログラムに書込したことである、そうでなければ、当該Ｐ−Ｐブランチプログラムがサスペンドに陥る。一致化実行後、当該Ｐ−Ｐデータは他のＰ−Ｐブランチプログラムに読込まれたとき、有効状態になり、そうでなければ、それらのＰ−Ｐブランチプログラムはサスペンドに陥る。
【００７３】
Ｎ＋１個目のブランチプログラムはプログラムである。プログラム資源と言えば、一致化操作の完成とＰ−Ｐデータシーケンスの生成後、多くのプログラム資源がまだ利用待ちになる。もちろんそれらの資源の応用は既に純粋な並列フローチャートの計算需要を超えた。Ｐ−Ｐネストと子Ｐ−Ｐのコールについて、Ｎ＋１個目のプログラムは子Ｐ−Ｐのコール許可とＰ−Ｐデータシーケンスの関係を連結及び制御することが可能である。ここでは、Ｐ−Ｐデータシーケンスが子Ｐ−Ｐコールにアルゴリズムに必要なデータと文脈情報を提供できる。本発明のＮ＋１個目のプログラムは主動実行の駆動能力を持ち、従って、Ｎ＋１個のプログラムを通してブランチプログラムの同期とＰ−Ｐデータ状態の管理を直接実現でき、Ｐ−Ｐのネストもサポートできる。
【００７４】
スタンドアローン構造において、Ｐ−Ｐの３つのシーケンスネット命令は３つのサブルーチンで取り替えられ、即ちサブルーチンがプログラムの中で、従来の読込、書込と一致化命令を取り替える。従って、Ｎ＋１個のＰ−Ｐ２０７の内部は三種類の特有のＰ−Ｐサブルーチンを含み、Ｐ−Ｐデータの読込、書込と一致化操作の処理を行う。サブルーチンはトークンのセット、テストと処理能力を持ち、Ｐ−Ｐブランチプログラムの同期とＰ−Ｐデータの転送をサポートする。ソフトウエアシミュレーションする場合、個々のＰ−Ｐデータに対し、相応的なＰ−Ｐデータフラグが要求される。
【００７５】
独立的なＰ−Ｐブランチプログラムモジュール構造は本発明の目標の一つである。プログラミングの段階であっても、プログラムのマシンコードの段階であっても、それらは全て独立的なモジュール構造である。
【００７６】
本発明の時分割管理モジュール２０１はＮ＋１個のブランチプログラム２０７と一緒にパッケージ化できる。それはＰ−Ｐモジュール２００の一部になり、よって、Ｐ−Ｐモジュール２００は実行中にＯＳの管理が必要しない。Ｐ−Ｐ内部に時分割、同期、データ相互連結管理機能とも持っているために、Ｐ−Ｐ間のネストを組合せも可能である。
【００７７】
本発明のユーザプログラミングインターフェイスはＮ＋１個のＰ−Ｐブランチプログラム２０７である。中ではＮ個のプログラムはスタンドアローンの通常プログラムである。Ｎ個のプログラムの中で、Ｐ−Ｐデータに対する読込と書込によって、プログラム間のデータ連結を実現し、共有メモリの読込、書込と一致する。コンパイルの段階では、コンパイルソフトウエアが共有メモリの読込あるいは書込から一つの（読込／書込）サブルーチンをコールする形式に取り替え、Ｐ−Ｐデータに相応するＰ−Ｐデータフラグの保存エリアも生成する。Ｎ＋１個目のプログラムは上述のＰ−Ｐデータ一致化操作であり、数値計算の内容はない。一つの一致化操作には一つのＰ−Ｐデータが含まれ、ユーザのプログラミングは個々にＰ−ＰデータあるいはＰ−Ｐ一致化命令を書くことである。図３に示したようなＮ  Ｐ−Ｐと比べて、Ｐ−Ｐデータのシーケンスは新しい入力情報のクラスであり、プログラムを通じて、このシーケンスの実行を駆動する。
【００７８】
モジュールの実行過程を次に示す。時分割管理モジュール２０１の機能は一つのＰ−Ｐブランチプログラムを定義し、実行させることである。全てのＮ＋１個のＰ−Ｐブランチプログラムの中で、Ｎ＋１個目のＰ−Ｐブランチプログラム２０３とその他Ｎ個のＰ−Ｐブランチプログラムの実行は機能が異なる。
【００７９】
モジュール２０１はＮ個のＰ−Ｐブランチプログラム２０４、２０５、２０６を定義し、実行情況は次に示す。Ｐ−Ｐブランチプログラムはプログラム実行に入り、条件に満たせば、終了まで実行でき、ブランチプログラムが終了時時分割管理モジュール２０１に戻る。時分割管理モジュール２０１は再度選択し、次の実行可能なＰ−Ｐブランチプログラムに進む。
【００８０】
Ｐ−Ｐブランチプログラムの実行中で、データ読込あるいは書込が発生したら、以下に処理する。
【００８１】
（１）データ読込の場合、当該Ｐ−Ｐデータが有効であれば、データ読込完成で、次の命令へ進む。当該Ｐ−Ｐデータが無効であれば（このデータは他の一つのＰ−Ｐブランチプログラムより）、ブランチプログラムは継続実行できず、データ読込のサブルーチンが自動的に当該データのデータフラグに“既読無効”とセットし、モジュール２０２へジャンプする。モジュール２０２の中で、当該Ｐ−Ｐブランチプログラムの状態保存を行い、当該プログラムから退出して、時分割管理モジュール２０１へジャンプし、別の実行可能状態のＰ−Ｐブランチプログラムを再選する。
【００８２】
（２）データ書込後、データの“一致化有効”フラグをセットする必要があり、同時に当該データの“既一致化無効”フラグを検査する必要もある。フラグが有効であれば、Ｎ＋１個目のＰ−Ｐブランチプログラム２０３は既にこのデータを処理したが、成功せず、サスペンド状態に陥ると表す。フラグが無効であれば、データ書込のサブルーチンが一致化ブランチプログラムの状態をサスペンドから実行可能に切り替え、当該ブランチプログラムに継続実行させる。データ書込サブルーチンはＰ−Ｐブランチプログラムをサスペンドに進ませることができない。
【００８３】
モジュール２０１はＮ＋１個目のＰ−Ｐブランチプログラム２０３を定義し、実行情況は次に示す。Ｐ−Ｐデータ一致化の処理前に、当該データの“一致化有効”フラグを検査する必要がある。
【００８４】
（１）フラグが無効であれば、一致化サブルーチンが“既一致化無効”フラグをセットし、モジュール２０２へジャンプする。モジュール２０２がＰ−Ｐブランチプログラム２０３の状態保存を行い、当該プログラムから退出して、時分割管理モジュール２０１へジャンプし、別の実行可能状態のＰ−Ｐブランチプログラムを再選する。
【００８５】
（２）フラグが有効であれば、データ一致化の実行へ進む。スタンドアローン環境においては、データの転送がなく、一致化操作の実質はフラグの処理である。“読込有効”フラグのセットを含み、Ｎ個のＰ−Ｐブランチプログラムの中で、当該データの“既読無効”フラグを個々に検査し、検査結果によって、関係しているＰ−Ｐブランチプログラムの状態をサスペンドから実行可能へ切り替え、一致化ブランチプログラムに継続実行させる。
【００８６】
時分割管理モジュール２０１は全てのＮ＋１個のＰ−Ｐブランチプログラム２０３、２０４、２０５、２０６の実行を完成したとき、Ｐ−Ｐの実行が終了と表す。
【００８７】
従って、本発明のＰ−Ｐ特徴を次にまとめる。スタンドアローン環境において、一つのＰ−ＰはＮ＋１個のＰ−Ｐブランチプログラムモジュールと一つの時分割管理プログラムモジュール２０１を含む。その他、書込、読込と一致化等３つのサブルーチンも含む。
【００８８】
（１）Ｐ−Ｐの同期処理規則に基づいて、データ読込無効待ちはスタンドアローン環境におけるソフトウエアのまねる方法で実現する必要がある。
【００８９】
（２）Ｐ−Ｐデータシーケンスの転送規則に基づいて、一致化無効もスタンドアローン環境におけるソフトウエアのまねる方法で実現する必要がある。
Ｐ−Ｐブランチプログラム管理モジュール２０１の機能はスタンドアローン環境によって起きた時分割管理を含むことだけが必要である。
【００９０】
（３）Ｐ−Ｐの同期はＰ−Ｐブランチプログラムの待ち状態と実行状態を生成することが必要である。
【００９１】
（４）時分割管理に組込み、Ｐ−Ｐブランチプログラムの待ち状態より実行可能、サスペンド及び実行状態に切り替える。
【００９２】
上記本発明に関する構造的な記述には、既にＰ−Ｐネスト構造をサポートするための二つの基本構造条件が含まれる。
（１）Ｐ−ＰはＮ＋１個目の独立プログラムがある。
（２）Ｐ−Ｐデータシーケンスの実行はＮ＋１個目のプログラムの中で管理される。
【００９３】
子Ｐ−Ｐのコールは親Ｐ−Ｐの中でのＮ＋１個のブランチプログラムとの文脈連結を実現する必要がある。次の二つのコール可能条件を含む。
（１）親Ｐ−Ｐブランチプログラムの中の子Ｐ−Ｐコール命令
（２）Ｐ−Ｐデータシーケンス（文脈データを代表する）と一緒にソートする子Ｐ−Ｐのコール許可
【００９４】
Ｐ−ＰのＮ＋１個目のブランチプログラムはプログラミング、制御と子Ｐ−Ｐのコール許可が可能であり、さらにＰ−Ｐデータシーケンスとのブランドを実現する。よって、Ｎ＋１  Ｐ−ＰはＰ−Ｐネストをサポートする構造の一種である。
【００９５】
明らかに、本発明の構造特徴は下記を含む。
（１）Ｎ＋１個のＰ−Ｐブランチプログラムを簡単に処理するＰ−Ｐ時分割管理構造。
（２）Ｎ＋１個目のＰ−ＰブランチプログラムはＰ−Ｐデータシーケンスを生成し、同期実行とデータ転送機能を実現する。
（３）Ｐ−ＰとＰ−Ｐ間のネスト関係をサポートする；及び
（４）Ｐ−ＰのＮ＋１個のブランチプログラムは独立のモジュール構造を持つ。
【００９６】
上述した特長はシーケンスネットコンピュータのマルチコンピュータＰ−Ｐの強みをスタンドアローン環境へ移植した。
【００９７】
スタンドアローンのプログラムにおいて、図４には、図１に示したＰ−Ｐモジュール構造と機能をスタンドアローンにおけるシリアルプログラムで実現できることを示す。文脈プログラムの連結を実現するために、図４に基づいて、一つのＰ−Ｐ出入管理モジュール２１０を追加する必要があり、図５に示す。
【００９８】
図４には実際にＰ−Ｐが既に一つのマイクロプロセス（あるいはスレッド）管理能力を見せ示した。よって、個々の実際応用するＰ−Ｐは初期化する必要がある。個々のＰ−Ｐには相応するＰ−Ｐフラグエリアを持ち、初期化とは全部のＰ−Ｐフラグに対して、初期化数値の書込み処理を行い、例えば、実行開始時Ｎ＋１個のＰ−Ｐブランチプログラムの初期化構造パラメータを生成する必要があり、Ｎ個のブランチプログラムの数、各ブランチプログラムの入口アドレス、及びその他の初期化パラメータ等を含む。これらの処理は一つのＰ−Ｐが管理モジュールに入ると要求される。
【００９９】
Ｐ−Ｐの退出も情況によって、異なる処理が必要である。Ｐ−Ｐが一つのサブルーチンとしている場合、実行後の退出は通常のサブルーチン戻りと同様である。Ｐ−Ｐはもし全てのブランチプログラムがサスペンド状態における退出なら、多くの異なる原因は可能である。
【０１００】
例えば、一つ可能なのは当該Ｐ−Ｐが親Ｐ−Ｐの一つのブランチプログラム中の一つＰ−Ｐコール命令からから起動されたのである。当該Ｐ−Ｐの全ブランチプログラムがサスペンドにあり、実際に当該親Ｐ−Ｐのブランチプログラムがサスペンド状態に入ると表し、当該ブランチプログラムは退出すべき、その他の親Ｐ−Ｐのブランチプログラム実行にジャンプする。別の情況は本Ｐ−Ｐが外部の入力情報を待つ必要があり、よって、Ｐ−Ｐが循環待ち状態に入る必要がある。三種目の情況はＰ−Ｐが設計あるいは実行中にエラーが発生する場合、制御可能な自動エラー修正あるいはエラー表示の処理に切り替える必要がある。それらの処理はＰ−Ｐ退出管理モジュールを要求する。
【０１０１】
それゆえ、本発明の実施例によって、一つのＰ−Ｐ出入管理モジュール２１０を含む。当該Ｐ−Ｐ出入モジュール２１０と時分割管理モジュール２０１は実際設計上では組合せることができる。
【０１０２】
スタンドアローンにおいて、一つの実用的なＰ−Ｐパッケージ構造はモジュール２１０と２００を含む。ユーザがＮ＋１個のＰ−Ｐブランチプログラムを書いた後、コンパイルの過程では、Ｐ−Ｐのコンパイルツールが自動的に個々のＰ−ＰにＰ−Ｐ出入モジュール２１０、時分割モジュール２０１等を添加し、中ではＰ−Ｐフラグと全てのＰ−Ｐデータフラグのメモリ空間、最後に共有メモリの読込、書込フォーマットを取り替える３つのサブルーチンも含む必要がある。
【０１０３】
既存技術のように、Ｐ−Ｐはソフトウエアにおいて、図２と図３に示した方式のように表し、本発明の図５に示す方式はさらに一般的な構造である。
【０１０４】
Ｐ−Ｐはブランチプログラムを組み合わせる能力、一般的構造、ネスト可能な特徴を持つために、本発明は、Ｐ−Ｐが今後のモジュール生成あるいはプログラミング設計に一種の汎用部品になると考える。サブルーチン計算からシステムプログラムまで、ＯＳからユーザプログラムまで、あらゆるところに、性能簡潔化の、あるいは性能向上のＰ−Ｐモジュールが生まれる。
【０１０５】
個々のＰ−Ｐには一つのＰ−ＰデータエリアとＰ−Ｐ専用フラグエリアがある。Ｐ−ＰデータエリアはＰ−Ｐ内部の総合連結するＰ−Ｐデータを保存し、しかも外部との交換ができる。Ｐ−Ｐ専用フラグはＰ−Ｐフラグ（図６）とＰ−Ｐデータフラグ（図７）を含む。
【０１０６】
図６はＰ−Ｐフラグ構造図である。Ｐ−Ｐフラグはソフトウエアで時分割処理過程の実現をサポートしている。一つのＰ−Ｐは一組のＰ−Ｐフラグしかなく、Ｐ−Ｐクラスフラグ２２０、Ｐ−Ｐ  ブランチプログラムのスイッチフラグ２２１（Ｎ＋１  ビット）、Ｐ−Ｐブランチプログラムの実行可能／サスペンドフラグ２２２（Ｎ＋１  ビット）、及びＮ＋１組のＰ−Ｐブランチプログラムのサスペンド状態保護２２３（命令アドレス、レジスタデータ、ストックエリア等）を含む。
【０１０７】
Ｐ−Ｐクラスフラグ２２０は一種のＰ−Ｐ特徴を表すしるしである。例えば、全てのＰ−Ｐブランチプログラムがサスペンドに陥るときに、エラーの原因であるか、親Ｐ−Ｐブランチプログラムのサスペンド原因であるか、あるいはプログラムループや入力待ちの原因などであるかを知らせることに利用できる。フラグビットはＰ−Ｐクラスの発展によって生成できる。
【０１０８】
Ｐ−Ｐブランチプログラムスイッチフラグ２２１はＰ−Ｐブランチプログラムが実行に進むと退出状態を表し、Ｎ＋１ビットがある。Ｐ−Ｐ最初入るとき、Ｎ＋１個のビットを全てＯＮにし、一つのＰ−Ｐブランチプログラムが終了したら、当該Ｐ−Ｐブランチプログラムを閉じ、ＯＦＦにする。全てのＰ−ＰブランチプログラムがＯＦＦの場合、Ｐ−Ｐ実行が終了を表す。
【０１０９】
Ｐ−Ｐブランチプログラムの実行可能／サスペンドフラグ２２２はＰ−Ｐブランチプログラムの実行条件を表し、全Ｎ＋１ビットはＮ＋１個のＰ−Ｐブランチプログラムを表す。ブランチプログラムがＰ−Ｐデータが無効であるため、実行不能になり、サスペンド状態に入る。Ｐ−Ｐデータが有効になったら、当該ブランチプログラム状態は実行可能に修正される。もしあるブランチプログラムスイッチがＯＮになっているが、全てのブランチプログラムの状態ともサスペンドである場合、Ｐ−Ｐは終了していないが、実行不可を表している。
【０１１０】
個々のＰ−Ｐはブランチプログラムの保護２２３も持ち、Ｎ＋１組のＰ−Ｐブランチプログラムの割り込みアドレス、各レジスタデータ、ストックエリア内容、及びその他のＰ−Ｐブランチプログラム情報を含む。
【０１１１】
Ｐ−ＰフラグエリアはＰ−Ｐに属し、ダイナミック的なエリアである。Ｐ−Ｐを起動する前にＰ−Ｐフラグにはデータロードする必要がある。各Ｐ−Ｐブランチプログラムの入口アドレスもロードすべき、Ｐ−Ｐのブランチプログラム構造数によって、ＯＮセットを行う。サスペンドと戻るときも保護とロードする必要がある。Ｐ−Ｐが終了後、それらのフラグは失効である。
【０１１２】
図７は一つのＰ−Ｐデータフラグの構造図である。Ｐ−ＰデータフラグはソフトウエアでＰ−Ｐブランチプログラムの同期とデータ転送過程を実現するときに用いられる。個々のＰ−Ｐデータ（あるいはＰ−Ｐデータブロック）に一つの対応するＰ−Ｐデータフラグがあり、一致化有効（１ビット）、読込有効（１ビット）、既読無効（Ｎビット）、及び既一致化無効（１ビット）等四種類のフラグを含む。
【０１１３】
一致化有効フラグ２２５（１ビット）は当該データ既にあるＰ−Ｐブランチプログラムに書いたと表し、当該データが一致化操作を許可されるという。これはデータ書込後有効しるしを生成し、しかもデータ一致化操作する前にテストする。テストが無効であれば、Ｐ−Ｐ一致化ブランチプログラムがサスペンド状態に陥る。もし、一致化有効フラグ２２５をＮビットにセットすると、当該データ書込のブランチプログラムが表示される。
【０１１４】
読込有効フラグ２２６（１ビット）は当該データが既に一致化と表示し、有効データであり、各Ｐ−Ｐブランチプログラムがこのデータを読込可能である。一致化操作後有効フラグを生成し、データ読込前にテストする。テストが無効であれば、当該読込無効のＰ−Ｐブランチプログラムがサスペンド状態に陥る。
【０１１５】
既読無効フラグ２２７（Ｎビット）、当該データが既にＰ−Ｐブランチプログラムに読込されたことを表し、しかしデータ無効である。ＮビットはＮ個のＰ−Ｐブランチプログラムに各自の既読無効と表す。読込テスト無効後にフラグを生成し、データ書込後テストし、テスト有効であれば、Ｐ−Ｐブランチプログラムがサスペンド状態から実行可能状態に切り替えられる。
【０１１６】
既一致化無効フラグ２２８（１ビット）、当該データ既に一致化操作実行されたと表し、しかし当面データが無効で、一致化は実際に実行されなかった。一致化無効後フラグを生成し、書込操作が成功後フラグに対するテストを行い、フラグが有効であれば、当該Ｐ−Ｐ一致化ブランチプログラムフラグがサスペンド状態から実行可能状態へ切り替えられる。
Ｐ−ＰデータフラグはＰ−Ｐ実行中しか必要せず、Ｐ−Ｐが終了したら、失効になる。従って、事前のフラグリセットと実行後の保存エリア釈放が必要である。
【０１１７】
Ｐ−Ｐフラグにとっては、図２に示した方法はそれらのフラグを必要しない。メモリ空間とプログラム実行時間の節約が可能で、構造も簡潔である。Ｐ−Ｐフラグと管理モジュールの導入することによって、ソフトウエアの方法でＰ−Ｐ機能を全てスタンドアローン環境に移植し、図４と図２のＮ個のプログラムがモジュール生成上ではほとんど一致され、ブランチプログラムが独立構造を保持している。同時に、Ｎ＋１個のプログラム資源が増えたため、本発明のＰ−Ｐは既存スタンドアローンにおけるソフトウエア技術が解決できない機能をサポートする。
【０１１８】
図３ＡはＰ−Ｐ管理プログラムのフローチャートである。
Ｐ−Ｐ管理プログラムの機能としては、
（１）Ｐ−Ｐは外部にとって、一つのシリアルプログラムセクションとして表現されているので、任意のＰ−Ｐに対して、ジャンプあるいはコール方式で入り、リタン方式で退出する。
（２）Ｎ＋１個のＰ−Ｐブランチプログラムの時分割管理を実現し、同期をサポートする。
（３）Ｐ−Ｐフラグの管理を実現する。
（４）Ｐ−Ｐブランチプログラムキューの優先モード。
【０１１９】
フローチャートは下記のＰ−Ｐ管理フラグを処理する。
（１）Ｐ−Ｐフラグ管理（Ｐ−Ｐブランチプログラムスイッチ、サスペンド／実行可能、クラスフラグ）。
（２）Ｐ−Ｐブランチプログラム現場保護メモリエリア（全てのＰ−Ｐブランチプログラムの割り込みアドレス、レジスタ、ストックエリア内容等情報）。
【０１２０】
フローチャートの操作原理は以下に示す。フローチャートは二つの入口があり、即ちそれぞれ初期化処理の入口３００とＰ−Ｐブランチプログラムがサスペンドあるいは退出戻るの入口３０２である。入口３００は外部プログラムの管理から起動され、Ｐ−Ｐブランチプログラムのサスペンドあるいは退出戻る３０２はブランチプログラムの中のデータ読込無効あるいは一致化データ無効のサブルーチン、“ブランチプログラム退出戻る”３０２はブランチプログラム実行終了後の戻る命令からなる。
【０１２１】
中では、
（１）初期化処理３００はＰ−Ｐパラメータのロード処理とＰ−Ｐフラグエリアのゼロセット処理を含む。初期化ロードはＰ−ＰのＮ＋１個のブランチプログラムフラグＯＮを起動、各ブランチプログラムの入口アドレスセット、相応なレジスタデータ初期値のセット等を含み、Ｐ−ＰフラグエリアのリセットはＰ−ＰフラグエリアとＰ−Ｐデータフラグエリアをゼロリセットすることである。
（２）モジュール３０２の入口はＰ−Ｐ実行に時分割管理モジュール２０１が一つの新しい実行可能なＰ−Ｐブランチプログラムを定義する必要があると表す。
【０１２２】
二つの入口が３０１を到達したら、Ｐ−Ｐブランチプログラムの終了検査手順３０３に入り、Ｐ−Ｐのスイッチフラグ２２１を検査する。一つのＰ−ＰブランチプログラムがＯＮであれば、手順３０５に入り、ブランチプログラムのサスペンド状態検査を行う。全てがＯＦＦであれば、Ｐ−Ｐ実行が既に終了を表し、Ｐ−Ｐ終了手順２０４へジャンプし、Ｐ−Ｐ終了の記録と外部プログラムとの連結方式を処理する。
【０１２３】
Ｐ−Ｐブランチプログラムのサスペンド検査手順３０５はＰ−Ｐの実行可能／サスペンドフラグ２２２に対する検査を行う。手順３０５の検査結果は全てのＰ−Ｐブランチプログラムがサスペンド状態に入る場合、実行完了していないＰ−Ｐがあっても当該Ｐ−Ｐが継続実行不能であることを表す。手順３０６へジャンプし、Ｐ−Ｐが実行不能の原因を探し、原因処理に基づいて、手順３１０へジャンプし、Ｐ−Ｐの退出処理を行う。
【０１２４】
Ｐ−Ｐが実行不能の可能な原因は次にある；
（１）正常実行時、当該Ｐ−Ｐが親Ｐ−ＰブランチプログラムからＰ−Ｐコールが起きたと表し、Ｐ−Ｐのネストである。当面Ｐ−Ｐが実行不能であれば、当該親Ｐ−Ｐのブランチプログラムがサスペンド状態にありと表し、よって、親Ｐ−Ｐの時分割管理モジュールへ戻る必要があり、他の一つの親Ｐ−Ｐブランチプログラムを配備する。当該Ｐ−Ｐはサスペンドフラグを持ちながら退出すべき、当該Ｐ−Ｐモジュール所在の親Ｐ−Ｐブランチプログラムにサスペンド状態に行かせる。
（２）Ｐ−Ｐモジュールにエラーが起きた場合、エラー処理に進む。
（３）プログラムをスキャンループに設計し、外部のキーボード入力を待つ。
（４）その他は本発明がさらに原因の検討をしない。
【０１２５】
手順３０５の検査結果は一つ以上のＰ−Ｐブランチプログラムが実行可能状態にある場合、ブランチプログラムの待ち行列処理手順３０７へ進む。ブランチプログラムの待ち行列処理手順３０７が一つの実行可能なＰ−Ｐブランチプログラムを選択し、そしてブランチプログラムのロード選定へ、手順３０８にジャンプする。選択方法は実際に一種の実行可能状態にあるブランチプログラムの待ち行列規則である。各種の優先規則が設計できる。プログラミング時優先規則を指定し、コンパイル時実現する。中では最も簡単な優先規則は循環待ち行列の方法である。手順３０７は循環順序によって、Ｐ−Ｐブランチプログラムの実行可能状態に対する検査を行う。
【０１２６】
手順３０８は手順３０７に次の一つ実行するＰ−Ｐブランチプログラムを選定後、当該Ｐ−Ｐブランチプログラムパラメータのロードを処理し、Ｐ−Ｐブランチプログラムのサスペンド時の状態へ復帰させる。ロード完成後、手順３０９へジャンプし、選定したＰ−Ｐブランチプログラムの実行に進む。
【０１２７】
Ｎ＋１  Ｐ−Ｐブランチプログラムの時分割実行はＰ−Ｐの基本方法である。異なる応用の場合によって、Ｐ−Ｐの構造に対する異なる修正と発展が可能である。時分割処理プログラムはＯＳに属すか、ユーザプログラムに進むことも可能である。
【０１２８】
本図に示したフローによって、ひとりの熟練なソフトウエア技師にとって、一つの実際実行プログラムの作成は困難ではない。同時に、本図核心フローに基づいて、修正も可能である。変化は各方向を含み、例えば、時分割方式の発展は上述したブランチプログラムの処理時、さらに時間スライスを持つブランチプログラムの切り替え条件を追加することによって、一つのＰ−Ｐブランチプログラムの実行時間が時間スライス数値を超えた場合、ブランチプログラムがサスペンドに入ることを強制される。
【０１２９】
既存技術に基づいて、シーケンスネットの操作原理状況が、データ読込命令、データ書込命令、及び一致化命令の過程中データに対する有効状態のテストが要求される。既存技術のマルチコンピュータ環境において、検索結果は割り込みプログラムと相互連結している。本発明の中で、ソフトウエアシミュレーションを行ったサブルーチンは検査結果に基づいて、相応の処理プログラムを直接連結させ、Ｐ−Ｐブランチプログラムのデータ一致化処理とプログラムの同期処理を実現する。
【０１３０】
本発明の図９、図１０、図１１はソフトウエアで三種類のシーケンスネット命令をシミュレーションし、及び処理の実施例を示す。ソフトウエアでデータトークンをシミュレーションするには、個々のデータに対してＰ−Ｐデータフラグ（図７に示す）の生成が必要である。また、Ｐ−Ｐデータ読込、書込、一致化操作時、フラグのテスト操作とフラグビットによる処理操作を増やし、その結果、ソフトウエアシミュレーションしたデータ読込、データ書込、とデータ一致化命令は３つの独立なサブルーチンである。各サブルーチンのフローチャートを図９、図１０、図１１に示す。その中では、Ｐ−Ｐブランチプログラムのサスペンド処理モジュール２０２もサブルーチンにソフトウエアシミュレーションを用いた。
【０１３１】
図９はデータ書込サブルーチンのフローチャートである。Ｐ−Ｐのデータ書込命令は数値計算の中で、一つのＰ−Ｐデータに対する書込操作である。スタンドアローン構造において、サブルーチンであり、あるいはＣ言語環境における一つの語句である。ソフトウエアでデータ書込命令をシミュレーションする場合、サブルーチンにはデータ状態フラグを増設する処理、一つの“既一致化無効”の判断及び判断後の処理が必要である。
【０１３２】
データ書込サブルーチンのフローチャートに操作原理を以下に示す。データ書込サブルーチンはまずデータ書込手順３２０に入り、Ｐ−Ｐデータの書込操作を実現する。そして、“既一致化無効”のテスト手順３２１に入る。手順３２１プログラムは当該データの“既一致化無効”フラグ２２８に対するテストを行う。手順３２１の中で当該フラグ２２８が有効であれば、当該データが既にデータ一致化操作を行ったが、一致化フラグが無効であるため、当該一致化操作は実に実行されなかった。それゆえ、一致化Ｐ−Ｐブランチプログラムがサスペンド状態に至る。現在、データ書込手順３２０が既に実行され、データも有効になり、手順３２３へ進むことが可能である。手順３２３は一致化プログラムの実行可能処理である。実行可能と言えば、即ち実行可能フラグの修正で、２２２の中で、当該一致化Ｐ−Ｐブランチプログラムの状態ビットを実行可能にセットし（従来はサスペンド）、そして手順３２２へ進む。手順３２１の中で当該フラグ２２８が無効であれば、当該データがデータ一致化操作に実行せずと表示、直接手順３２２へジャンプする。手順３２２は“一致化有効”フラグ２２５を生成し、データ有効を表し、一致化許可Ｐ−Ｐブランチプログラム１００で当該データに対する一致化操作を行う。そして、手順３２４へ進む。手順３２４はデータ書込サブルーチンの戻りである。
【０１３３】
図６はデータ一致化サブルーチンのフローチャートである。Ｐ−Ｐのデータ一致化命令は数値計算の中で一つのＰ−Ｐデータの転送操作であり、Ｐ−Ｐデータ有効の操作も確立し、スタンドアローンにおいて、一つのサブルーチンである。ソフトウエアで一致化データ命令に対するシミュレーションを行う場合、サブルーチンのなかで、データ状態フラグの処理、一致化トークン有効の検査、既読無効の検査、及び検査後の処理等を増やす必要がある。
【０１３４】
データ一致化サブルーチンのフローチャート操作原理は以下である。データ一致化サブルーチンはまず手順３３０へ入る。当該データの一致化有効フラグ２２５を検査する。もし手順３３０の中では、当該データの“一致化有効”フラグが無効であれば、データがまだ書込行っていないと表す。よって、当該Ｐ−Ｐ一致化ブランチプログラムは実行不能であり、サスペンドに陥る。プログラムは手順３３２へ進む。手順３３２の中で、“既一致化無効”フラグ２２８をセットし、そして手順３３３に進み、一致化ブランチプログラムのサスペンド処理を行う。手順３３３はソフトウエアでモジュール２０２を実現する方法である。そして、手順３３４へジャンプし、当該Ｐ−Ｐブランチプログラムから退出する。また、新しいＰ−Ｐブランチプログラムを再び選択するために、Ｐ−Ｐブランチプログラムのサスペンド処理３０２へ進む。
【０１３５】
手順３３０の中で、当該データの“一致化有効”フラグ２２５に対する検査を行った後、当該データの“一致化有効”フラグが有効であれば、データ書込が行ったし、データの一致化は実行可能であることを表す。そして、手順３３１へ進む。手順３３１はデータとトークンの一致化操作を行う。スタンドアローンのソフトウエアシミュレーションにおいて、実際にデータ転送がなく、“読込有効”フラグ２２６のセットのみである。そして、手順３３５へ進み、当該データの“既読無効”フラグ２２７に対する検査を行う。既読無効フラグ２２７はＮビットがあり、それぞれＮ個の異なるＰ−Ｐブランチプログラム（Ｎ＋１個目の一致化Ｐ−Ｐブランチプログラム用“既一致化無効”フラグ）を代表する。もし手順３３５の中の“既読無効”フラグ２２７が有効であれば（フラグ２２７のＮ個のフラグの中で少なくとも１ビットが有効であれば、多くてもＮ個のフラグビットが全て有効を指す）、一部のＰ−Ｐブランチプログラムには“既読無効”が起きたし、しかも既にサスペンド状態に陥ることを表す。既に一致化操作を実行する手順３３１があるため、従って、手順３３６へ進む。手順３３６は“既読無効”フラグ２２７の内容に基づいて、相応なＰ−Ｐブランチプログラム状態をサスペンドから実行可能へ切り替える。そして手順３３７へ進む。もし手順３３５の中の“既読無効”フラグ２２７に有効フラグがない場合、“既読無効”が起きたことがないと説明でき、そのとき、直接手順３３７へ進む。手順３３７はデータ一致化サブルーチンの戻り口である。
【０１３６】
図１１はデータ読込サブルーチンのフローチャートである。Ｐ−Ｐのデータ読込命令が数値計算中では、一つのＰ−Ｐデータの操作を取り、スタンドアローンにおいて、一つのサブルーチンである。ソフトウエアでデータ読込命令のシミュレーションを行う場合、サブルーチンにはデータ状態フラグに対する処理、一つのデータに対する有効性の判断、及び判断後の処理などを追加する必要がある。
【０１３７】
データ読込サブルーチンのフローチャート操作原理を以下に示す。データ読込サブルーチンはまず手順３４０に入る。当該データの“読込有効”フラグを検査する。もし、手順３４０の中の当該データの“読込有効”フラグが有効であれば、データも既に書かれた、一致化転送も行ったと表し、プログラムはデータ読込手順３４１に進む。手順３４１は通常のスタンドアローンプログラムのデータ読込方式で、データ読込後手順３４２へ進む。手順３４２はデータ読込サブルーチンの戻り口である。もし手順３４０の中で、当該データの“読込有効”フラグが無効であれば、当該データが現在無効（当該Ｐ−Ｐブランチプログラムがサスペンドに陥る）と表し、プログラムが手順３４３へ進む。
【０１３８】
手順３４３は“既読無効”フラグ２２７をセットするためである。“既読無効”フラグ２２７にはＮビットがあり、異なるＰ−Ｐブランチプログラムにそれぞれ対応する。本手順は当該Ｐ−Ｐデータフラグ２２７内部で当該Ｐ−Ｐブランチプログラムに相応的な“既読無効”フラグをセットする。そして手順３４４へ進む。
【０１３９】
手順２４４は当面Ｐ−Ｐブランチプログラムのサスペンド処理のために用いる。内容はＰ−Ｐブランチプログラムの当面実行状態を保存し、今後当該Ｐ−Ｐブランチプログラムが戻るとき、サスペンドから継続実行へ切り替えに使う。手順３４４はソフトウエアでモジュール２０２を実現する方法である。そして、手順３４５へ進む。手順３４５は当該Ｐ−Ｐブランチプログラムから退出するために用いるものである。Ｐ−Ｐブランチプログラムのサスペンド入口３０２へ進む。
【０１４０】
図１２はＰ−Ｐブランチプログラムの構造である。Ｐ−ＰにはＮ＋１個のＰ−Ｐブランチプログラムがあり、ＰＰｃ  ３５０、ＰＰ１  ３５１、ＰＰ２  ３５２、ＰＰ３  ３５４、それらは独立的なプログラムモジュール構造である。独立性はプログラミング段階に表現できるし、コンパイル後のマシンコード段階に至るまでも表現できる。各Ｐ−Ｐブランチプログラムの起動実行はモジュール２０１より指定される。各Ｐ−Ｐブランチプログラムが実行終了後、手順３５４に戻る。手順３５４は一つの退出戻り口３０２の入口への操作である。
【０１４１】
Ｎ＋１個のＰ−Ｐは内部に三種類の特有Ｐ−Ｐサブルーチンを含み、即ちＰ−Ｐデータの読込、書込と一致化操作である。スタンドアローン環境において、全てソフトウエアでシミュレーションを行うので、個々のＰ−Ｐデータは関連するＰ−Ｐデータフラグが必要である。一旦読込あるいは一致化サブルーチンがテストをした後、当該ブランチプログラムが継続実行不能と判定され、モジュール２０２がＰ−Ｐブランチプログラムのサスペンド処理を行う。そして、時分割管理モジュール２０１に戻る。一旦書込あるいは一致化サブルーチンがテストをした後、従来当該Ｐ−Ｐデータがサスペンドに入るときのその他のＰ−Ｐブランチプログラムの条件も既に満足していると判定された場合、サブルーチンがその他の処理Ｐ−Ｐブランチプログラムの状態を実行可能に修正し、そして戻る。これらのサブルーチンが処理したフローは、図９、図１０、図１１の中にも記述した。一旦一つのＮ＋１  Ｐ−Ｐを構成した場合、Ｐ−Ｐブランチプログラムにはこれらのサブルーチンのコール特徴も含まれる。
【０１４２】
本発明のソフトウエアシミュレーションＰ−Ｐは関連するＰ−Ｐフラグが必要である。図２と比べて、それらはスタンドアローン環境においてＰ−Ｐ構造と機能を保持するときに必要とされるパラメータの増加分である。
【０１４３】
Ｎ＋１個のＰ−Ｐブランチプログラム２０７はユーザのプログラミングインターフェイスである。その中Ｎ個のＰ−ＰブランチプログラムＰＰ１  ３５１、ＰＰ２  ３５２、ＰＰ３  ３５３は通常のスタンドアローンプログラミングであり、共有メモリ方式に加入するＰ−Ｐデータ読み書きだけである。コンパイル時、共有メモリの読み書きのかわりに上述したサブルーチンフォーマットを用いる。これはプログラミングのなかのメイン違いであるため、本発明のプログラミング方式と伝統的なプログラミング方式は一致であると考えられる。
【０１４４】
Ｎ＋１個目のＰ−ＰブランチプログラムＰＰｃ  ３５０も独立なプログラムである。これは通常のプログラムと異なり、数値計算はない。中には一つのＰ−ＰデータのシーケンスとＰ−Ｐデータを“一致化”する操作を含む。図１０に示すように、一つの一致化操作のサブルーチンＰ＿ＣＯＮＳＩＳ＿ＳＵＢが存在し、ＰＰｃ  ３５０  Ｐ−Ｐブランチプログラムは実際にＰ−Ｐに含むｍ個のデータに対して、以下の操作を行う。
【０１４５】
ＳＴＡＲＴ  ＰＰ１２３     ；  Ｐ−Ｐ１２３のＮ＋１個目のブランチプログラム開始
ＰＰ１２３＿ＤＡＴＡ１     ；  Ｐ−Ｐ１２３を定義する１個目のＰ−Ｐデータ
Ｐ＿ＣＯＮＳＩＳ＿ＳＵＢ   ；  Ｐ−Ｐ１２３の１個目のＰ−Ｐデータ一致化
ＰＰ１２３＿ＤＡＴＡ２     ；  Ｐ−Ｐ１２３を定義する２個目のＰ−Ｐデータ
Ｐ＿ＣＯＮＳＩＳ＿ＳＵＢ   ；  Ｐ−Ｐ１２３の２個目のＰ−Ｐデータ一致化
・・・  ・・・
ＰＰ１２３＿ＤＡＴＡｍ     ；  Ｐ−Ｐ１２３を定義するｍ個目のＰ−Ｐデータ
Ｐ＿ＣＯＮＳＩＳ＿ＳＵＢ   ；  Ｐ−Ｐ１２３のｍ個目のＰ−Ｐデータ一致化
ＥＮＤ  ＰＰ１２３         ；  Ｐ−Ｐ１２３のＮ＋１個目のブランチプログラム終了
【０１４６】
上記は一つ最も簡単な、しかも最も基本的なＮ＋１個目のプログラム例である。最大特徴はこれが一つのプログラムであり、Ｐ−Ｐデータ一致化のシーケンシャル実行を駆動できる。Ｎ＋１個のＰ−Ｐブランチプログラムの同期実行に対して、協調を行う。構造上では、Ｐ−ＰデータとＰ−Ｐデータシーケンスが他のＰ−Ｐ機能から独立できる。プログラムとして、Ｐ−Ｐデータ一致化のシーケンシャル実行はとても簡単な機能だけであり、まだ開発できる資源も沢山ある。例えば、Ｐ−Ｐデータシーケンスの変化、Ｐ−Ｐデータの増加あるいは減少、及び子Ｐ−Ｐコール許可命令を挿入することなどが実現できる。
【０１４７】
熟練のソフトウエア技師にとって、プログラミングで上述したＮ＋１個のＰ−Ｐブランチプログラムを実現するのは困ることがない。同時に、本発明に示したフローチャートに基づいて、修正を行うのも可能である。
【０１４８】
既存技術と本発明Ｐ−Ｐ構造の記述はＰ−Ｐフローチャートの計算機能に集中しているが、本発明で得られた本当の価値は、１つのＰ−Ｐフローチャートが数値計算の内包だけでなく、Ｐ−Ｐのスタンドアローン中の新構造に含まれたものである。この価値は、現段階ではまだＰ−Ｐフローチャートに似たような機能で表現できるものがない。Ｐ−Ｐデータシーケンスの生成、Ｐ−Ｐネスト構造の特徴をサポートする以外、本発明のＰ−Ｐ構造により生成された新資源も含まれる。これは、ユーザがＮ（或いはＮ＋１）個の独立モジュール構造のＰ−Ｐブランチプログラムに直面するとき、１つの一致化Ｐ−ＰブランチプログラムＰＰｃ  ３５０のプログラム資源及び１つの強力なＰ−Ｐ管理モジュール（モジュール２０１と２１０を含む）資源が現れる。
【図面の簡単な説明】
【０１４９】
【図１】既存技術のシーケンスネットコンピュータ構造と機能図。
【図２】既存技術のＮ＋１個シーケンスを直接併合の構造図。
【図３】既存技術のＮ並列プログラム構成図。
【図４】本発明のＮ＋１  Ｐ−Ｐの構成図。
【図５】本発明のＮ＋１  Ｐ−Ｐ実用化の構造図。
【図６】本発明のＰ−Ｐフラグの構造図。
【図７】本発明のＰ−Ｐデータフラグの構造図。
【図８】本発明のＰ−Ｐ管理プログラムのフローチャート。
【図９】本発明のデータ書込サブルーチンのフローチャート。
【図１０】本発明のデータ一致化サブルーチンフローチャート。
【図１１】本発明のデータ読込サブルーチンフローチャート。
【図１２】本発明のＮ＋１  Ｐ−Ｐブランチ構造図。
【図１】
2005524130.tif 000003
【図２】
2005524130.tif 000004
【図３】
2005524130.tif 000005
【図４】
2005524130.tif 000006
【図５】
2005524130.tif 000007
【図６】
2005524130.tif 000008
【図７】
2005524130.tif 000009
【図８】
2005524130.tif 000010
【図９】
2005524130.tif 000011
【図１０】
2005524130.tif 000012
【図１１】
2005524130.tif 000013
【図１２】
2005524130.tif 000014
【国際調査報告】
2005524130.tif 000015
2005524130.tif 000016
2005524130.tif 000017
2005524130.tif 000018