(57)【特許請求の範囲】
【請求項１】
互いにブロック内部共通変数により結ばれている定常状態の有限状態機械部分と、事象駆動処理部と、を含み、外部イベントと内部イベントを区別し、イベントが通る方向を検出するイベント検出部分と、
上記外部イベント入出力の橋渡しを行う、外部イベント入力を外部イベント出力に転送する第１動作機能と、
上記内部イベント入出力の橋渡しを行う、内部イベント入力を内部イベント出力に転送する第２動作機能と、
上記各出力を上記ブロックの有限状態機械へ転送する第３動作機能と、
を有するシミュレーションモデルを構築する装置であって、
外部イベントが入力される外部イベント入力端子、および外部イベントを出力する外部イベント出力端子を入力・編集する第１編集手段と、
上記第１動作機能を入力・編集する第２編集手段と、
内部イベントが入力される内部イベント入力端子、および内部イベントを出力する内部イベント出力端子を入力・編集する第３編集手段と、
上記第２動作機能を入力・編集する第４編集手段と
を有するイベント方向検出装置。
【請求項２】
有限状態機械で構成される定常応答処理部と事象駆動処理部と、
上記処理部間の橋渡しを行う共通部と、をさらに有するシミュレーションモデルを構築する装置であって、
有限状態機械で構成され定常応答処理部と事象駆動処理部の動作仕様を入力・編集する第５編集手段と、
上記処理部間の橋渡しを行う共通部の構成要素を入力・編集する第６編集手段と
を有する請求項１記載のイベント方向検出装置。
【請求項３】
有限状態機械で構成される定常応答処理部と、事象駆動処理部と、該処理部間の橋渡しを行う共通部とで構成される副ブロック部と、をさらに有するシミュレーションモデルを構築する装置であって、
上記副ブロックの定常応答処理部と事象駆動処理部の動作を入力・編集する第５編集手段と、
上記処理部間の橋渡しを行う共通部の構成要素を入力・編集する第６編集手段と
を有する請求項１記載のイベント方向検出装置。
【請求項４】
部分ブロックからの制御を受け取る入力端子と、
入力値を保持する保持手段と、
上記部分ブロックからの制御を受け取る入力端子を入力・編集する第５編集手段と、
上記入力値を保持する保持手段の動作を入力・編集する第６編集手段と
を有する請求項１記載のイベント方向検出装置。
【請求項５】
イベント検出回数および、またはイベントの内容を保持する保持手段と、
上記イベント検出回数および、またはイベントの内容を保持する保持手段の動作を入力・編集する第５編集手段と
を有する請求項１記載のイベント方向検出装置。
【請求項６】
上記シミュレーションモデルが、
マスター側のリクエスト出力においては初期状態として外部イベントを遮断する第１機構と、
リクエスト出力信号をトリガとして外部イベント許可状態とし応答データを受け取る第２機構と、
スレーブ側のデータ出力においては、初期状態として外部イベント許可とする第３機構と、
リクエスト入力信号をトリガとして外部イベント遮断状態とし、応答データを送出する第４機構と、
を含む、インマスター・アウトスレーブ動作が可能な請求項１記載のイベント方向検出装置であって、
マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する動作を入力・編集する第５編集手段と、
上記リクエスト出力信号をトリガとして外部イベント許可状態とし応答データを受け取る動作を入力・編集する第６編集手段と、
スレーブ側のデータ出力においては、初期状態として外部イベント許可とする動作を入力・編集する第７編集手段と、
上記リクエスト入力信号をトリガとして外部イベント遮断状態とする動作を入力・編集する第８編集手段と
を有するイベント方向検出装置。
【請求項７】
上記シミュレーションモデルが、
マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する第１機構と、
リクエスト出力信号によらず外部イベントを遮断する第２機構と、
スレーブ側のリクエスト入力においては、初期状態として外部イベントの入力を許可する第３機構と、
リクエスト入力信号を受信する第４機構と、
を含む、アウトマスター・インスレーブ動作が可能な請求項１記載のイベント方向検出装置であって、
マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する動作を入力・編集する第５編集手段と、
上記リクエスト出力信号によらず外部イベントを遮断する動作を入力・編集する第６編集手段と、
スレーブ側のリクエスト入力においては、初期状態として外部イベントの入力を許可する動作を入力・編集する第７編集手段と、
上記リクエスト入力信号を受信する動作を入力・編集する第８編集手段と
を有するイベント方向検出装置。
【請求項８】
上記シミュレーションモデルが、複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、決まった手順を元に選択的に受信する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能な請求項６記載のイベント方向検出装置であって、
複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、決まった手順を元に選択的に受信する動作を入力・編集する第９編集手段と
を有する請求項６記載のイベント方向検出装置。
【請求項９】
上記シミュレーションモデルが、複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、決まった手順を元に選択的に受信する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能な請求項７記載のイベント方向検出装置であって、
複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、決まった手順を元に選択的に受信する動作を入力・編集する第９編集手段と
を有する請求項７記載のイベント方向検出装置。
【請求項１０】
上記シミュレーションモデルが、複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、動的に優先順位を変化させ選択的に受信する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能な請求項６記載のイベント方向検出装置であって、
複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、動的に優先順位を変化させ選択的に受信する動作記述を入力・編集する第９編集手段と
を有する請求項６記載のイベント方向検出装置。
【請求項１１】
上記シミュレーションモデルが、複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、動的に優先順位を変化させ選択的に受信する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能な請求項７記載のイベント方向検出装置であって、
複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、動的に優先順位を変化させ選択的に受信する動作記述を入力・編集する第９編集手段と
を有する請求項７記載のイベント方向検出装置。
【請求項１２】
上記シミュレーションモデルが、マスター・スレーブの役割分担を、システム内部の決まった手順より変更する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能な請求項６記載のイベント方向検出装置であって、
マスター・スレーブの役割分担を、上記システム内部の決まった手順より変更する動作を入力・編集する第９編集手段と
を有する請求項６記載のイベント方向検出装置。
【請求項１３】
上記シミュレーションモデルが、マスター・スレーブの役割分担を、システム内部の決まった手順より変更する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能な請求項７記載のイベント方向検出装置であって、
マスター・スレーブの役割分担を、上記システム内部の決まった手順より変更する動作を入力・編集する第９編集手段と
を有する請求項７記載のイベント方向検出装置。
【請求項１４】
マスター・スレーブの役割分担を、システム外部から与えられた情報により、動的に変更する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能な請求項６記載のイベント方向検出装置であって、
マスター・スレーブの役割分担を、上記システム外部から与えられた情報により、動的に変更する動作を入力・編集する第９編集手段と
を有する請求項６記載のイベント方向検出装置。
【請求項１５】
マスター・スレーブの役割分担を、システム外部から与えられた情報により、動的に変更する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能な請求項７記載のイベント方向検出装置であって、
マスター・スレーブの役割分担を、上記システム外部から与えられた情報により、動的に変更する動作を入力・編集する第９編集手段と
を有する請求項７記載のイベント方向検出装置。
【請求項１６】
外部イベント入出力の橋渡しを行う、外部イベント入力を外部イベント出力に転送する第１動作機能と、
内部イベント入出力の橋渡しを行う、内部イベント入力を内部イベント出力に転送する第２動作機能と、
上記各出力をブロックの有限状態機械へ転送する第３動作機能と、
を有するシミュレーションモデルを構築する方法であって、
第１編集手段が、外部イベントが入力される外部イベント入力端子、および外部イベントを出力する外部イベント出力端子を入力・編集する第１ステップと、
第２編集手段が、上記第１動作機能の転送動作機能を入力・編集する第２ステップと、
第３編集手段が、内部イベントが入力される内部イベント入力端子、および内部イベントを出力する内部イベント出力端子を入力・編集する第３ステップと、
第４編集手段が、上記第２動作機能の転送動作機能を入力・編集する第４ステップと
を有するイベント方向検出方法。
【請求項１７】
上記シミュレーションモデルが、
マスター側のリクエスト出力においては初期状態として外部イベントを遮断する第１機構と、
リクエスト出力信号をトリガとして外部イベント許可状態とし応答データを受け取る第２機構と、
スレーブ側のデータ出力においては、初期状態として外部イベント許可とする第３機構と、
リクエスト入力信号をトリガとして外部イベント遮断状態とし、応答データを送出する第４機構と、
を含む、インマスター・アウトスレーブ動作が可能な請求項１６記載のイベント方向検出方法であって、
第５編集手段が、マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する動作を入力・編集する第５ステップと、
第６編集手段が、上記リクエスト出力信号をトリガとして外部イベント許可状態とし応答データを受け取る動作を入力・編集する第６ステップと、
第７編集手段が、スレーブ側のデータ出力においては、初期状態として外部イベント許可とする動作を入力・編集する第７ステップと、
第８編集手段が、上記リクエスト入力信号をトリガとして外部イベント遮断状態とする動作を入力・編集する第８ステップと
を有するイベント方向検出方法。
【請求項１８】
上記シミュレーションモデルが、
マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する第１機構と、
リクエスト出力信号によらず外部イベントを遮断する第２機構と、
スレーブ側のリクエスト入力においては、初期状態として外部イベントの入力を許可する第３機構と、
リクエスト入力信号を受信する第４機構と、
を含む、アウトマスター・インスレーブ動作が可能な請求項１６記載のイベント方向検出方法であって、
第５編集手段が、マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する動作を入力・編集する第５ステップと、
第６編集手段が、上記リクエスト出力信号によらず外部イベントを遮断する動作を入力・編集する第６ステップと、
第７編集手段が、スレーブ側のリクエスト入力においては、初期状態として外部イベントの入力を許可する動作を入力・編集する第７ステップと、
第８編集手段が、上記リクエスト入力信号を受信する動作を入力・編集する第８ステップと
を有するイベント方向検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムレベル設計におけるアーキテクチャ検討時等に有効なイベント方向検出装置およびその方法に係り、いわゆるプロセッサを内包する半導体大規模集積回路（ＳｏＣ：Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）の設計技術分野に属し、特にシステムアーキテクチャ設計段階での、ハードウェアとソフトウェア分担ブロック切り分け、およびその協調開発・協調設計・協調検証環境を構築する際の、システムを構成する機能ブロックのモデリング方法、およびブロック間あるいはアルゴリズム間の上位コミュニケーションのモデリングに関するものである。
【背景技術】
【０００２】
従来、アルゴリズムからシステムレベルモデルへの変換規則あるいは手順は、使用するシステムレベル設計言語あるいはシミュレータに依存している。
【０００３】
特許文献１には、マスター・スレーブ動作の再構成についての「再構成可能なマスター・スレーブ制御方法および装置」が開示されている。
これはマスターあるいはスレーブ動作自体を切り替えの値として保持し、マスター・スレーブの組み合わせを再構成する制御方法および装置の提案である。
【特許文献１】特開平６−７０５７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、特許文献１に記載された技術では、システム設計時の計算機模擬計算装置を構成することはできない。さらに一度設定を行った後の動的な再構成にも対応できない。
【０００５】
特に、アルゴリズム上で暗黙ルールによって決定されているイベントあるいはメッセージの制御とデータの方向をシステムレベル設計言語で記述するには、モデル内で制御とデータの分離を行い、アルゴリズム開発では通常不必要な下位の通信プロトコルを考慮する問題が生じていた。
【０００６】
また、現在使用されているブロック間マスター・スレーブ通信機構の上位記述での実装は、相手先ブロック内の対象スレーブ処理関数を呼び出し側で直接コールするいわゆるリモートプロシージャーコールが使用されており、通信の様子を観測することができない。
【０００７】
さらに、複数のアルゴリズムを組み合わせた複雑な系においては、たとえば、アルゴリズム間コミュニケーションの同期・調停、また場合により、アルゴリズム自体の多態性等を考慮する必要があるが、このような複雑な系を設計する環境はない。
【０００８】
本発明の目的は、システム設計におけるアルゴリズムからシステムモデルへの変換時に、下位の通信プロトコルを考慮すること無しに機械的な追加あるいは置き換えにより、容易かつ高速なモデル構築を支援することが可能なイベント方向検出装置およびその方法を提供することにある。
また、本発明の目的は、設計者が意図する場合には、複雑な系の制御を静的、あるいは動的に行うことが可能なイベント方向検出装置およびその方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１の観点のイベント方向検出装置は、互いにブロック内部共通変数により結ばれている定常状態の有限状態機械部分と、事象駆動処理部と、を含み、外部イベントと内部イベントを区別し、イベントが通る方向を検出するイベント検出部分と、上記外部イベント入出力の橋渡しを行う、外部イベント入力を外部イベント出力に転送する第１動作機能と、上記内部イベント入出力の橋渡しを行う、内部イベント入力を内部イベント出力に転送する第２動作機能と、上記各出力を上記ブロックの有限状態機械へ転送する第３動作機能と、を有するシミュレーションモデルを構築する装置であって、外部イベントが入力される外部イベント入力端子、および外部イベントを出力する外部イベント出力端子を入力・編集する第１編集手段と、上記第１動作機能を入力・編集する第２編集手段と、内部イベントが入力される内部イベント入力端子、および内部イベントを出力する内部イベント出力端子を入力・編集する第３編集手段と、上記第２動作機能を入力・編集する第４編集手段とを有する。
【００１０】
好適には、有限状態機械で構成される定常応答処理部と事象駆動処理部と、上記処理部間の橋渡しを行う共通部と、をさらに有するシミュレーションモデルを構築する装置であって、有限状態機械で構成され定常応答処理部と事象駆動処理部の動作仕様を入力・編集する第５編集手段と、上記処理部間の橋渡しを行う共通部の構成要素を入力・編集する第６編集手段とを有する。
【００１１】
好適には、有限状態機械で構成される定常応答処理部と、事象駆動処理部と、該処理部間の橋渡しを行う共通部とで構成される副ブロック部と、をさらに有するシミュレーションモデルを構築する装置であって、上記副ブロックの定常応答処理部と事象駆動処理部の動作を入力・編集する第５編集手段と、上記処理部間の橋渡しを行う共通部の構成要素を入力・編集する第６編集手段とを有する。
【００１２】
好適には、部分ブロックからの制御を受け取る入力端子と、入力値を保持する保持手段と、上記部分ブロックからの制御を受け取る入力端子を入力・編集する第５編集手段と、上記入力値を保持する保持手段の動作を入力・編集する第６編集手段とを有する。
【００１３】
好適には、イベント検出回数および、またはイベントの内容を保持する保持手段と、上記イベント検出回数および、またはイベントの内容を保持する保持手段の動作を入力・編集する第５編集手段とを有する。
【００１４】
本発明の第２の観点は、好適には、上記シミュレーションモデルが、マスター側のリクエスト出力においては初期状態として外部イベントを遮断する第１機構と、リクエスト出力信号をトリガとして外部イベント許可状態とし応答データを受け取る第２機構と、スレーブ側のデータ出力においては、初期状態として外部イベント許可とする第３機構と、リクエスト入力信号をトリガとして外部イベント遮断状態とし、応答データを送出する第４機構と、を含む、インマスター・アウトスレーブ動作が可能な請求項１記載のイベント方向検出装置であって、マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する動作を入力・編集する第５編集手段と、上記リクエスト出力信号をトリガとして外部イベント許可状態とし応答データを受け取る動作を入力・編集する第６編集手段と、スレーブ側のデータ出力においては、初期状態として外部イベント許可とする動作を入力・編集する第７編集手段と、上記リクエスト入力信号をトリガとして外部イベント遮断状態とする動作を入力・編集する第８編集手段とを有する。
【００１５】
本発明の第３の観点は、好適には、上記シミュレーションモデルが、マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する第１機構と、リクエスト出力信号によらず外部イベントを遮断する第２機構と、スレーブ側のリクエスト入力においては、初期状態として外部イベントの入力を許可する第３機構と、リクエスト入力信号を受信する第４機構と、を含む、アウトマスター・インスレーブ動作が可能な請求項１記載のイベント方向検出装置であって、マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する動作を入力・編集する第５編集手段と、上記リクエスト出力信号によらず外部イベントを遮断する動作を入力・編集する第６編集手段と、スレーブ側のリクエスト入力においては、初期状態として外部イベントの入力を許可する動作を入力・編集する第７編集手段と、上記リクエスト入力信号を受信する動作を入力・編集する第８編集手段とを有する。
【００１６】
好適には、上記シミュレーションモデルが、複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、決まった手順を元に選択的に受信する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能なイベント方向検出装置であって、複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、決まった手順を元に選択的に受信する動作を入力・編集する第９編集手段とを有する。
【００１７】
好適には、上記シミュレーションモデルが、複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、動的に優先順位を変化させ選択的に受信する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能なイベント方向検出装置であって、複数のマスターブロックをひとつのスレーブブロックに接続し、複数のマスターリクエスト側の複数のイベント方向検出装置のイベントを、動的に優先順位を変化させ選択的に受信する動作記述を入力・編集する第９編集手段とを有する。
【００１８】
好適には、上記シミュレーションモデルが、マスター・スレーブの役割分担を、システム内部の決まった手順より変更する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能なイベント方向検出装置であって、マスター・スレーブの役割分担を、上記システム内部の決まった手順より変更する動作を入力・編集する第９編集手段とを有する。
【００１９】
好適には、マスター・スレーブの役割分担を、システム外部から与えられた情報により、動的に変更する第５機構をさらに含む、アウトマスター・インスレーブ動作が可能なイベント方向検出装置であって、マスター・スレーブの役割分担を、上記システム外部から与えられた情報により、動的に変更する動作を入力・編集する第９編集手段とを有する。
【００２０】
本発明の第４の観点のイベント方向検出方法は、外部イベント入出力の橋渡しを行う、外部イベント入力を外部イベント出力に転送する第１動作機能と、内部イベント入出力の橋渡しを行う、内部イベント入力を内部イベント出力に転送する第２動作機能と、上記各出力をブロックの有限状態機械へ転送する第３動作機能と、を有するシミュレーションモデルを構築する方法であって、第１編集手段が、外部イベントが入力される外部イベント入力端子、および外部イベントを出力する外部イベント出力端子を入力・編集する第１ステップと、第２編集手段が、上記第１動作機能の転送動作機能を入力・編集する第２ステップと、第３編集手段が、内部イベントが入力される内部イベント入力端子、および内部イベントを出力する内部イベント出力端子を入力・編集する第３ステップと、第４編集手段が、上記第２動作機能の転送動作機能を入力・編集する第４ステップとを有する。
【００２１】
本発明の第５の観点は、好適には、上記シミュレーションモデルが、マスター側のリクエスト出力においては初期状態として外部イベントを遮断する第１機構と、リクエスト出力信号をトリガとして外部イベント許可状態とし応答データを受け取る第２機構と、スレーブ側のデータ出力においては、初期状態として外部イベント許可とする第３機構と、リクエスト入力信号をトリガとして外部イベント遮断状態とし、応答データを送出する第４機構と、を含む、インマスター・アウトスレーブ動作が可能なイベント方向検出方法であって、第５編集手段が、マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する動作を入力・編集する第５ステップと、第６編集手段が、上記リクエスト出力信号をトリガとして外部イベント許可状態とし応答データを受け取る動作を入力・編集する第６ステップと、第７編集手段が、スレーブ側のデータ出力においては、初期状態として外部イベント許可とする動作を入力・編集する第７ステップと、第８編集手段が、上記リクエスト入力信号をトリガとして外部イベント遮断状態とする動作を入力・編集する第８ステップとを有する。
【００２２】
本発明の第６の観点は、好適には、上記シミュレーションモデルが、マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する第１機構と、リクエスト出力信号によらず外部イベントを遮断する第２機構と、スレーブ側のリクエスト入力においては、初期状態として外部イベントの入力を許可する第３機構と、リクエスト入力信号を受信する第４機構と、を含む、アウトマスター・インスレーブ動作が可能な請求項１６記載のイベント方向検出方法であって、第５編集手段が、マスター側のリクエスト出力においては、初期状態として外部イベントを遮断する動作を入力・編集する第５ステップと、第６編集手段が、上記リクエスト出力信号によらず外部イベントを遮断する動作を入力・編集する第６ステップと、第７編集手段が、スレーブ側のリクエスト入力においては、初期状態として外部イベントの入力を許可する動作を入力・編集する第７ステップと、第８編集手段が、上記リクエスト入力信号を受信する動作を入力・編集する第８ステップとを有する。
【発明の効果】
【００２３】
本発明によれば、どちらの端子から信号が入力されるのかを判定することが可能となり、イベントの方向を検出することが可能となる。
また、システム内すべての副ブロックモデルの構成要素が同一となり部品の共通化が可能となる。さらにシステムアーキテクチャが決定した後の割り当てによりモデルを書き直す必要がなく、終始一貫したモデル構造の使用を保つことが可能となる。
また、複数のイベント方向検出装置をひとつ、あるいはイベントが渡されるブロック群の機能ごとにまとめ、イベントに対応する動作の共通化が可能となる。
さらに、受け取ったイベントを単にバケツリレーするだけではなく、その時々の状態によりイベントの渡し方を変化させることが可能となる。
また、受け取ったイベントがなんらかの条件により直ちに処理できない場合でも、有限回数記憶しておき、処理を先送りすることが可能となる。また、記憶されたイベントの重要度によりイベントの処理の順番を入れ替えることが可能になる。
また、いわゆるブロック間マスター・スレーブ型通信をイベントの方向により判別して、新たな伝達経路の付加を行うことなく唯一の伝達経路により実現することが可能となる。
複数のマスターブロックによる、あるスレーブブロックへの同時アクセスを矛盾なく行うことが可能となる。
複数のマスターブロックによる、あるスレーブブロックへの同時アクセスに対し、接続の順番を動的な条件判断により変更しながら矛盾なく行うことが可能となる。
また、従来全くシステム模型計算が実現不可能であった、同じ信号でのマスター・スレーブの役割の切り替え、すなわち、ある時点ではマスターとして他のブロックを従属させ、ある時点ではスレーブとなり他のブロックに仕える等、ブロック間の繋がり方が動的に変更されるような機能ブロックを模擬計算することが可能となる。
さらに、同じ信号でのマスター・スレーブの役割の切り替えがブロック間の繋がりと無関係に可能となる。つまり固定されたブロック間の繋がりであっても、動的な判定条件によりマスター・スレーブの役割の切り替えが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施形態を添付図面に関連付けて説明する。
【００２５】
［表記法・用語定義］
まず、本実施形態における表記法、用語定義について説明する。
図１は、本実施形態で使用しているモデルの表記法を示す図である。
【００２６】
本モデル１０１は、図１に示すように、定常状態の有限状態機械部分（以降、Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ：ＦＳＭと呼ぶ）１０２と、事象駆動処理部（以降、Ｅｖｅｎｔ  Ｄｒｉｖｅｎ  Ｐｒｏｃｅｄｕｒｅ：ＥＤＰと呼ぶ）１０３とを有し、ＦＳＭ１０２とＥＤＰ１０３とは互いにブロック内部共通変数により結ばれている。
外部との通信窓口としてポートを有し、これはそのブロックのアクションと、ポートを介して接続される他ブロックのアクションとの主従関係から、「他ブロックのアクションに依存する」関係を有する、白塗りの端子で示されるスレーブポート１０４と、「他ブロックのアクションを征する」関係を有し、黒で塗りつぶされた端子で示されるマスターポート１０５に分類できる。
さらに「主従関係を（が）一意に決定しない（できない）」市松模様のミューチュアルポート１０６を定義する。
【００２７】
また、本実施形態ではイベントとデータつきのイベント（シグナル）を区別無しに使用し、イベントと総称する。これは、断りがない限り、本発明の内容ではデータつきであるか否かの区別の必要がなく、そのどちらでも実現可能であるからである。
【００２８】
［部品としてのイベント方向検出装置の実施例］
図２は、本発明の実施形態に係るイベント方向検出装置を含むシステムの一構成例を示す図である。
【００２９】
イベント方向検出装置２００において、ブロック２０１は、図２に示すように、そのブロック自体の動作モデル(以後、コアモデルと称する)２０２を有し、スレーブポート２０３とマスターポート２０４とを有する。
【００３０】
スレーブポート２０３を経由してブロック２０１へ送られた外部イベントは、外部イベント検出関数２０５によりこれが外部イベントであると判別された後、コアモデル２０２のＥＤＰ１０３に転送される。
また、コアモデル２０２のＦＳＭ１０２から送られた内部イベントは、内部イベント検出関数２０６によりこれが内部イベントであると判別された後、コアモデル２０２のＥＤＰに転送されるか、マスターポート２０４を経由して外部ブロックへ送出される。
あるいは、内部イベントとしてモデルが認識する必要がなければ、内部イベント検出関数２０６をバイパスし、直接マスターポート２０４を経由して外部ブロックへ送出してもよい。
【００３１】
イベント方向検出装置２００は、ブロック内共通関数として実装され、ＦＳＭ１０２およびＥＤＰ１０３の双方から呼び出し可能である。内部イベントを考慮するか、外部イベントに励起されるか等のモデル内部動作については、これを規定せず、あくまでモデル作成者の意思に委ねられる。
すなわち、誤った動作を記述すれば誤った動作を起こすことも本モデルの特徴であり、特に誤り記述訂正の支援を行うものではない。本発明によりイベントの方向が検出できる。
【００３２】
図３は、本実施形態に係る副ブロック化イベント検出装置３００の構成例を示す図であって、同じモデリング構成にそろえたイベント方向検出装置を含むシステムの一構成例を示す図である。
【００３３】
ブロック３０１は、図３に示すように、そのコアモデル３０２とイベント方向検出副ブロック（以後Ｅｖｅｎｔ  Ｄｉｒｅｃｔｉｏｎ  Ｄｅｔｅｃｔｏｒ：ＥＤＤと称す）３０３とを有し、スレーブポート３０４とマスターポート３０５を有する。
【００３４】
スレーブポート３０４を経由してブロック３０１へ送られた外部イベントは、ＥＤＤ３０３の外部イベント入力スレーブポート３０８に伝搬する。これにより、ＥＤＤ３０３の動作モデルのＥＤＰ１０３が起動され、このＥＤＰ１０３の動作記述に従って処理される。
ＥＤＰ１０３の動作がブロック３０１のコアモデル３０２に伝搬可能な条件において、このイベントはＥＤＤ３０３の外部イベント出力マスターポート３１０を経由してコアモデルのスレーブポート３０６に伝搬される。
内部イベントはコアモデル３０２から生成され、コアモデル３０２の内部イベント出力マスターポート３０７を経由して、ＥＤＤ３０３の内部イベント入力スレーブポート３１１に伝搬される。
これにより、ＥＤＤ３０３の動作モデルのＥＤＰ１０３が起動され、このＥＤＰ１０３の動作記述に従って処理される。ＥＤＰ１０３の動作が内部伝搬を要求すれば、内部イベントはさらにコアモデルのスレーブポート３０６に伝搬される。
【００３５】
なお、本図３ではコアモデル３０２の、唯一のスレーブポート３０６が表現されているが、これは、内部イベントと外部イベントを区別せずに受け取る仕組みを意味しており、この場合、モデル内の無限ループを招く恐れがあるが、これは設計者がケアする必要がある。
さらに内部イベントと外部イベントを別のイベント要因として区別するには、コアモデル３０２においては、外部イベント用のスレーブポートと内部イベント用のスレーブポート、ＥＤＤ３０３においては、外部イベント用のマスターポートと内部イベント用のマスターポートを用意する必要がある。
さらに、イベントの伝達タイミングを制御することも可能となる。ＥＤＤ３０３にてイベントを処理する際に、ＥＤＤ３０３のＥＤＰ１０２内のみで処理を行えば、即答性の手続きを記述できる。
【００３６】
また、ＥＤＤ３０３のＥＤＰ１０３でＥＤＤ３０３のＦＳＭ１０２を制御する状態変数の変更のみを行い、このＦＳＭ１０２内で処理を行うことにより、ＥＤＰ１０３で処理するには不都合な大規模処理を行う等の変形も考えられる。この場合、多重割込みを矛盾なく実現する等の場合において工夫が必要となる場合があるが、この場合も本発明はモデルのエラー解析支援を行うものではなく、設計者がすべての動作についてケアをしなければならない。本発明により、ＥＤＤの共通部品化、テンプレート化が可能となる。
【００３７】
図４は、本実施形態に係る共通ブロック化イベント方向検出装置４００を示す図であって、互いに独立なブロック４０１とブロック４０２および共有のＥＤＤ４０３からなるマルチマスター・マルチスレーブシステムの一実施形態を示す図である。簡単化のため、図本例では、ブロック４０１あるいはブロック４０２は双方ともスレーブブロックとして説明する。
【００３８】
図４の構成の場合、ＥＤＤ４０３から、ブロック４０１あるいはブロック４０２への出力形態として、一対多のブロードキャスティングと一対一の個別伝送が考えられるが、ここではブロードキャスティングの場合を示す。
【００３９】
ＥＤＤ４０３のスレーブポート４０９を経由した外部イベントはＥＤＤのＥＤＰに伝搬する。このイベントはＥＤＤ４０３のＥＤＰでの動作記述によりＥＤＤ４０３の外部イベント出力マスターポート４０８より出力され、ブロック４０１およびブロック４０２のスレーブポート４０５、４０６に伝搬する。
この際、各々のブロックのＥＤＰ１０３では、ブロック変数等の値によりこれを選択して処理を行うことも可能で、たとえばある保存されたアドレス番地により処理の切り替えを行えば、本実施形態によるＥＤＤはその一例としてバスアーキテクチャーをモデル化することができる。
この場合、値無しのイベントでは、ブロック４０１あるいは４０２へのアドレス書き込みの手順が必要となる。値ありのイベント（シグナル）では、アドレスをイベント値とすればよい。この場合、ＥＤＤ４０３に調停機構を持たせることも可能であるが、その論理は設計者により保障される必要がある。これにより、機能のまとまりごとに同じＥＤＤを共通化して使用することが可能となる。
【００４０】
同様に、内部イベントを検出するには、各々のマスターポート４０４あるいは、４０７から出力された内部イベントをＥＤＤ４０３の内部イベント入力ポート４１０より受け、内部動作記述に従って内部イベント出力ポート４１１を経由し、内部あるいは外部へ伝搬される。本実施形態で示されたように、システム内のマスターとスレーブの数は一致している必要はない。
【００４１】
図５は、本実施形態に係るキュー機構付イベント方向検出装置５００の構成例を示す図である。
【００４２】
図５の構成例によれば、ブロック５０１はコアモデル５０２を有し、ＥＤＤ５０３によってイベントの方向が検出される。外部イベントスレーブポート５０４を経由して伝搬された外部イベントは、ＥＤＤ５０３の外部イベント入力スレーブポート５０８により検出され、ＥＤＤ５０３のＥＤＰ１０３の動作記述によりＥＤＤ５０３のＦＳＭ１０２とＥＤＰ１０３との共通変数領域に構成されたキュー配列５１２に格納される。
キュー配列５１２に格納されたイベントキューはＥＤＤ５０３のＦＳＭ１０２によって処理され、必要によって並べ替えを行った後、順に外部イベント出力マスターポート５１０を経由してコアモデル５０２のスレーブポート５０６に伝搬される。
内部イベントは、コアモデル５０２の内部イベント出力マスターポート５０７から出力され、ＥＤＤ５０３の内部イベント入力ポート５１１を経由してＥＤＤ５０３のＥＤＰ１０３に伝搬される。
この場合も、ＥＤＤ５０３のＦＳＭ１０２とＥＤＰ１０３との共通変数領域に構成されたキュー配列５１２に格納され、ＥＤＤ５０３のＦＳＭ１０２によって処理される。
この内部イベントをいかに処理するかは設計者に依存しており、通常は無限ループを避ける論理を導入する必要がある。ブロック外部へ伝搬するにはＥＤＤ５０３の内部イベント出力マスターポート端子５０９を経由して、ブロックマスターポート５０５から外部へ送出する。
【００４３】
以上において、個別部品としての本発明の実施形態を示した。
本発明は、限定を与えないシステムの実施形態や図面を利用することにより、さらに明確なものとなる。
【００４４】
［システムの実施形態］
以下、図面を参照し、本発明のシステムの実施形態について説明する。
【００４５】
＜インマスター・アウトスレーブ装置＞
［アルゴリズムを電子システムとしてモデル化する場合の説明］
アルゴリズムは、一般に制御と演算で記述される。この際、制御と演算を明確に分離しながらアルゴリズムが設計されること、つまりある一定の演算粒度を保ち、かつその内部に制御構造を排除し、かつ電子システムとして前提となる並列並行実行を考慮してアルゴリズムを設計すること、はあまり行われていない。
このため、電子システムとしてモデル化する際にはまずアルゴリズムのブロック化による演算粒度の切り分け工程がはじめの一歩となる。アルゴリズムのブロック化工程では、一般に関数をその最小単位とすることが多く、すなわち関数処理を電子システムとしてモデル化する必要がある。
【００４６】
また、関数の呼び出しには返り値を持たないものと、返り値を有するものがある。これは、一般的にはこの関数の手続き後に何らかの値を呼び出し側に返すか、返さないかの違いでありその実装法は処理系によって異なり、ここではその実装方法については問題としない。アルゴリズムの関数呼び出しは、あまりにも頻繁に使用され、かつ設計者は特に信号の方向を意識せずに呼び出しという処理を行っているため、認知されにくいが、常に呼び出し側から関数側への制御の伝達経路が存在する。
【００４７】
図６は、Ｃ言語を使用した返り値無しの関数呼び出しの電子システムモデル６００の一例を示す図である。
【００４８】
この電子システムモデル６００において、呼び出し側（つまりマスター側）ブロック６０１は、マスターポート６０３を介し、Ｆ（ｘ）という処理を行う関数（すなわちスレーブ側）ブロック６０２とそのスレーブポート６０４を経由して接続されている。
引数（データ）ｘは一般にポートとして陽に接続するので、マスターポート６０３とスレーブポート６０４はデータｘを受け渡すポートである。この際、呼び出し側からのリクエスト信号はデータの方向と同じであり、データ付のイベントとして暗に接続される。すなわち、マスターポート６０３とスレーブポート６０４は呼び出しリクエストイベントにデータｘの値を付属した信号として、電子システムモデル化される。
【００４９】
図７は、Ｃ言語を使用した返り値つきの関数呼び出しの電子システムモデル７００の一例を示す図である。
【００５０】
この電子システムモデル７００において、呼び出し側（つまりマスター側）ブロック７０１は、マスターポート７０３を介し、Ｆ（ｘ）という処理を行う関数（すなわちスレーブ側）ブロック７０２とそのスレーブポート７０４を経由して接続されている。引数（データ）ｘは、返り値無しの場合と同様に、ポートとして接続されるのでここでは省略する。
返り値ａはかならず陽に接続しなければならず、この場合、マスターポート７０３とスレーブポート７０４を介して伝搬されるとする。
さて、呼び出しイベントリクエスト信号であるが、電子システムモデル７００には、存在しない。よってこのままでは、該モデルを動作させることはできない。ある種のシミュレーションシステム、例えばＣｏＷａｒｅ社Ｎ２Ｃシミュレータあるいは、ＳｙｓｔｅｍCシミュレータ＋マスタースレーブライブラリ環境では、直接マスター、スレーブという概念を導入し明示することにより呼び出しイベントを意識せずに動作させることが可能ではあるが、その内部動作はマスター側からスレーブ側のスレーブ動作関数を直接呼び出すリモートプロシージャーコールを使用しているためブロック間の通信を表現し得ず、設計者側からは論理が見えない。
【００５１】
図８は、明示的にリクエスト信号を付加した返り値つき関数呼び出しの、電子システムモデル８００の一例を示す図である。
【００５２】
この場合、呼び出し側８０１からの関数呼び出しはマスターポート８０３から出力され、関数側８０２のスレーブポート８０４へ入力される。関数処理後、返り値ａは関数側のマスターポート８０５から出力され、呼び出し側８０１のスレーブポート８０６から入力される。引数ｘについては、省略している。
この場合、制御フローとデータフローが区別されている点から動作の論理が明確であり、信号の方向が常にマスターアウト−スレーブインの関係にあるため、特にマスター・スレーブという概念を導入する必要がなく、もっとも基本の通信形態であるセンダー（送信者）・レシーバー（受信者）の関係が使用できる。
【００５３】
一般にシステムレベル設計言語、たとえばＳｙｓｔｅｍＣやＳｐｅｃＣではこの通信機構を採用している。しかしながら、この場合、制御信号を明示的に関数呼び出し時の引数にする等、関数呼び出し手順から書き直す必要が生じるため、アルゴリズムをそのまま電子システムモデルに置き換えることができない。
言い換えれば、本形態の電子システムモデルを構築するためには、対象アルゴリズム中のすべての関数呼び出しにおいて、制御（呼び出しリクエストイベント）を変数として定義し、引数の中に加える等の方法で関数に渡し、さらに該関数中で返り値（データ）の書き戻しを引数その他の形で定義しなおす必要が生じる。これは、ハードウェアあるいはソフトウェアの分担を切り替えながら最適な電子システムアーキテクチャを決定していく段階でのモデルとしては抽象度が低すぎ、かつ該ブロックをソフトウェアに割り当てた場合には呼び出しを元に戻す等の工程が必要となるので無駄となる恐れがある。
【００５４】
さらに、入力値に対するアルゴリズムと電子システムの挙動の違いがある。たとえば、アルゴリズム中では同じ関数の呼び出しで前回と同じ値を入力値とする場合、前回と同じ動作を行うのに対し、電子システムではこのシステムの仕様により、ブロックの入力に変化がない場合、明示的にブロックの起動イベントを与えない限り動作をしない場合がある。その場合には、明示的にリクエスト信号を付加しなければならず、同様の問題が生じる。
【００５５】
［解決法］
図９は、本実施形態に係るＥＤＤを使用したインマスター・アウトスレーブモデル９００の一例を示す図である。また、図１０は、図９の例のインマスター・アウトスレーブ動作時の大まかなシーケンス図である。
【００５６】
呼び出し（センダー）側ブロック９０１はコアモデル９０２とＥＤＤ９０３を有し、関数（レシーバー）側ブロック９０４のコアモデル９０５とＥＤＤ９０６と両ブロックの市松模様のミューチュアルポート９０７、９０８を介し接続されている。
初期状態として呼び出し側ＥＤＤ９０３の外部イベント入力の伝搬イネーブルを偽とし、関数側ＥＤＤ９０６の外部イベント入力の伝搬イネーブルを真とする。
【００５７】
呼び出し側ブロック９０１から送出された呼び出しリクエストイベントは呼び出し側ブロック９０１のＥＤＤ９０３と関数側ブロック９０４のＥＤＤ９０６の双方へ伝搬され、呼び出し側コアモデル９０２のＦＳＭは返り値待ち状態となる。
ＥＤＤ９０３では、伝搬イネーブルが偽であるため内部帰還は行わないが、本関数呼び出しリクエストイベントにより伝搬イネーブルが真に更新される。他方、ＥＤＤ９０６では伝搬イネーブルが真であるため、関数９０４側コアモデル９０５のＥＤＰにイベントを中継する。同時にこのイベントによりＥＤＤ９０６の伝搬イネーブルは偽に更新される。
コアモデル９０５のＥＤＰでは動作記述どおりの処理を行った後、返り値をＥＤＤ９０３およびＥＤＤ９０６へ送出する。ＥＤＤ９０６では伝搬イネーブルが偽であるため、内部帰還を行わず、このイベントにより伝搬イネーブルを真に更新する。ＥＤＤ９０３では、伝搬イネーブルが真であるため、返り値を呼び出し側コアモデル９０２のＦＳＭに中継する。
【００５８】
以上の手順により、関数呼び出しにより処理された返り値が呼び出し側に渡され、伝搬イネーブルの状態も初期状態に戻る。
【００５９】
［外部イベントと内部イベントの区別についての説明］
イベントには内部イベントと外部イベントがあり、一般的にアルゴリズムレベルでこの区別を行うことはあったものの、電子システムでの区別が行われることはない。この区別はＵＭＬ等のモデル分析の結果から必要となることが多いが、今後のシステムレベル設計において多用される可能性があり、電子システムモデルの要素技術のひとつである。
【００６０】
図１１は、外部イベントを送出するインマスター部のモデル１０００の一例を示す図である。また、図１２は、図１１の例の詳細なシーケンス図である。
【００６１】
モデル１０００において、インマスター部１００１はコアモデル１００２とＥＤＤ１００３を有し、ミューチュアルポート１００５を経由して信号を送出する。
以下の説明で、（）内はシーケンスの番号を示す。
コアモデル１００２のＦＳＭから送出された呼び出しリクエストイベントはマスターポート１００４を経由（１）してポート１００６およびポート１００５に送出（２）される。ポート１００６を経由したリクエストイベントはＥＤＤ１００３のＥＤＰに伝搬され、その伝搬イネーブルを真に更新する。
同時に、ミューチュアルポート１００５を経由したリクエストイベントは、外部のスレーブ側ブロックに伝搬（３）される。
さて、外部に伝送されたリクエストイベントは適切な処理の後、返り値データとしてミューチュアルポート１００５に入力（４）される。さらにデータはＥＤＤ１００３のスレーブポート１００６を経由（５）し、ＥＤＤ１００３のＥＤＰに伝搬（６）される。
出力データはＥＤＤ１００３のマスターポート１００７を経由（７）し、コアモデル１００２のスレーブポート１００８に中継（８）されコアモデル１００２のＦＳＭへ戻る（９）。
【００６２】
図１３は、外部イベントに励起されるアウトスレーブ部のモデル１１００の一例を示す図である。また、図１４は、図１３の例の詳細なシーケンス図である。
【００６３】
図１３において、アウトスレーブのブロックモデル１１０１はミューチュアルポート１１０４を有し、外部からのイベントにより励起される。本モデルの動作記述はコアモデル１１０２に記述され、さらにＥＤＤ１１０３を内包している。
先と同様に、以下で（）はシーケンスの番号を示す。
ミューチュアルポート１１０４から入力された外部イベントリクエストはポート１１０４を経由（１）してモデル内部へ伝搬（２）される。伝搬されたリクエストはＥＤＤ１１０３の外部イベント入力ポート１１０６よりＥＤＤ１１０３のＥＤＰに渡される（３）。このリクエストは、ＥＤＰの伝搬イネーブルの初期状態が真であるので、伝搬イネーブルを偽に更新し、かつリクエストをＥＤＤ１１０３のマスターポート１１０７を経由（４）しコアモデルのスレーブポート１１０８に中継（５）する。
ポート１１０８を経由（６）したリクエストはコアモデル１１０２のＥＤＰにより処理（７）され、コアモデルのマスターポート１１０５から送出（８）される。このデータはＥＤＤ１１０３のスレーブポート１１０６を経由して、ＥＤＤ１１０３のＥＤＰにも伝搬し、偽状態である伝搬イネーブルを初期状態の真に更新する。同時に外部ポート１１０４を経由して外部へ送出（９）される。
【００６４】
図１５は、内部イベントと外部イベントを明確に区別するモデルでかつ、内部イベントに励起されるスレーブモデル１２００の一例を示す図である。この場合、内部イベント検出後データを出力する等の事後アクションは規定しない。また、図１６は、図１５の例の詳細なシーケンス図である。
【００６５】
この場合、ブロックモデル１２０１は、内部イベントと外部イベントを明確に区別しており、イベントの区別により引火された際の動作が異なる。よって、コアモデル１２０２は二つのＥＤＰ、すなわちＥＤＰ１２０２ＡおよびＥＤＰ１２０２Ｂを有する。各々のＥＤＰはさらに専用のＥＤＤであるＥＤＤＡ１２０３およびＥＤＤＢ１２０４によりイベントの方向が検出される。
【００６６】
本例では、モデル１２０１が外部からのイベントにより、ＥＤＰ１２０２Ａが起動され、内部イベントを発生させる。
ＥＤＰ１２０２Ａから生成されたリクエストイベントは、コアモデルのマスターポート１２０５を経由（１）し、内部イベント用ＥＤＤＢ１２０４のスレーブポート１２０８に伝搬（２）される。これは、ＥＤＤＢ１２０４のＥＤＰ１２０４に伝搬（３）された後、ＥＤＤＢ１２０４のマスターポート１２０９を経由（４）し出力（５）され、コアモデルのスレーブポート１２１０よりコアモデルの内部イベント用ＥＤＰ１２０２Ｂに伝搬する（６）。
ＥＤＰ１２０２Ｂの処理が終了後、返り値は、専用のマスターポート１２１１を経由（７）して、ＥＤＤ．Ａのスレーブポート１２０６に伝搬（８）される。さらにＥＤＤＡ１２０３のＥＤＰへ伝搬（９）し処理後（１０）、ＥＤＤＡ１２０３の内部イベントマスターポート１２０７から出力されコアモデルのスレーブポート１２１２を経由（１１）してＥＤＰ１２０２Ａに返り値が戻る（１２）。
本例の伝搬経路では、信号の衝突がないためＥＤＤのスイッチング機構を省略したが、必要に応じて問題１に示すようなフリップフロップ構成あるいは条件判断構成等を用いて、適切な衝突回避機構を導入しなければならない。
【００６７】
［再帰呼び出しを含む内部イベント］
図１７は、再帰型内部イベント検出スレーブモデル１３００の構成例を示す図である。また、図１８は、再帰型内部イベント検出スレーブモデルのシーケンス図である。
【００６８】
この場合、ブロックモデル１３０１は、内部イベントおよび外部イベントを検出しイベントによりコアモデル１３０２の応答が変化する。
本例では、何らかの外部要因でコアモデル１３０２のＥＤＰが励起され、これが再帰的に自己（すなわちコアモデル１３０２のＥＤＰ）に向けてイベントを生成する。図１７で実線は初回の呼び出しを、点線は二回目の呼び出しを示す。
【００６９】
コアモデル１３０２のＥＤＰから生成（１）されたリクエストイベントはコアモデル１３０２のマスターポート１３０４を経由してＥＤＤ１３０３のスレーブポート１３０５に伝送（２）される。ＥＤＤ１３０３内で該リクエストイベントはＥＤＤ１３０３のＥＤＰに直送（３）され、ＥＤＤ１３０３のＥＤＰによりＥＤＤ１３０３のマスターポート１３０６に中継（４）される。このイベントはさらにコアモデル１３０２のスレーブポート１３０７に伝搬（５）され、再度コアモデル１３０２のＥＤＰに渡る（６）。
この段階でのコアモデル１３０２のＥＤＰの動作は今おこなった手順を繰り返してもよいし、何らかの制御機構、たとえば再帰呼び出しの回数を蓄積する等、により手順の分岐をすることも可能である。今行った手順を繰り返すのであれば、多重イベントを印加できる環境を構築しておかない限り、無限にループを繰り返すことになる。
【００７０】
さて、今回はコアモデル１３０２のＥＤＰが前回とは異なり、リクエストイベントによりデータを返す動作が記述されていたとすると、前述のリクエストイベントを返り値データに置き換えた手順を繰り返す。
すなわち、コアモデル１３０２のＥＤＰから生成（７）された返り値データはコアモデル１３０２のマスターポート１３０４を経由してＥＤＤ１３０３のスレーブポート１３０に伝送（８）される。ＥＤＤ１３０３内でこの返り値データはＥＤＰに直送（９）され、ＥＤＤ１３０３のＥＤＰによりＥＤＤ１３０３のマスターポート１３０６に中継（１０）される。この返り値データはさらにコアモデル１３０２のスレーブポート１３０７に伝搬（１１）され、再度コアモデル１３０２のＥＤＰに渡る（１２）。
【００７１】
［マルチマスターシステム］
図１９は、静制御マルチマスターシステム装置１４００のシステム構成例を示す図である。
【００７２】
あるマスターブロック１４０１は互いに独立なマスターブロック１４０２と共有資源ブロック１４０３を共有している。
各々は、ブロック１４０１においては、動作が記述されたコアモデル１４０４とＥＤＤ１４０５、ブロック１４０２においては、動作が記述されたコアモデル１４０６とＥＤＤ１４０７により構成されている。
同様に共有ブロック１４０３においても、動作が記述されたコアモデル１４０８とＥＤＤ１４０９により構成されており、各ブロック間は、ブロック１４０１のマスターポート１４１０とブロック１４０２のマスターポート１４１１とが、ブロック１４０３のスレーブポート１４１２においてマルチポイント接続されている。
【００７３】
いま、マスターイベントがブロック１４０１から発生し、ブロック１４０１のマスターポート１４１０およびブロック１４０３のスレーブポート１４１２を経由してＥＤＤ１４０９のＥＤＰに伝わるとする。
励起されたブロック１４０３が一切多重のイベントを受け付けない場合、必要な処理は望ましくはＥＤＤ１４０９のＥＤＰの中のみで処理される。必要とされる処理の負荷がシステムにとって重い場合、ＥＤＤ１４０９のＦＳＭ内に処理を移すことができる。この場合、多重イベントを受け付けない動作が求められれば、ブロック１４０３のＥＤＤ１４０９のＥＤＰをロックする等の制御が必要であり、多重イベントの受付が可能であれば、イベントキュー等にフラグを立て、処理中のイベントに対するケアを動作記述する必要がある。
この場合、外部からの制御の変更を受け付けないので固定された優先順位あるいは固定された優先順位変更法によってどちらのイベントに対する応答を行うかを決定する必要がある。
【００７４】
いま、ブロック１４０１のイベントにより共有資源ブロック１４０３が動作を行っている場合に、常にブロック１４０１に優先するブロック１４０２のイベントがブロック１４０３に印加された場合、ＥＤＤ１４０９のＥＤＰによってイベントキューにこのイベントが並ぶことになる。
これにより、ＥＤＤ１４０９のＦＳＭ内でイベントキューの並べ替えが行われ、必要に応じてコアモデルの内部情報を退避した後コアモデル１４０８に起動命令を発行する。
【００７５】
本手順によりコアモデルの動作記述を書き換えずに、ＥＤＤの記述によりマルチマスターの共有資源の調停機構を実現できる。
【００７６】
［動的にイベント処理順を変更可能なマルチマスターシステム］
このシステムは、図１９のシステムに、コントローラを付加したものである。
図２０は、動制御マルチマスターシステム装置１５００のシステム構成例を示す図である。
【００７７】
あるマスターブロック１５０１は互いに独立なマスターブロック１５０２と共有資源ブロック１５０３を共有している。
各々は、ブロック１５０１においては、動作が記述されたコアモデル１５０４とＥＤＤ１５０５、ブロック１５０２においては、動作が記述されたコアモデル１５０６とＥＤＤ１５０７により構成されている。
同様に共有ブロック１５０３においても、動作が記述されたコアモデル１５０８とＥＤＤ１５０９により構成されており、各ブロック間は、ブロック１５０１のマスターポート１５１０とブロック１５０２のマスターポート１５１１とが、ブロック１５０３のスレーブポート１５１２においてマルチポイント接続されている。ブロック１５０３にはさらにコントローラ１５１３がそのマスターポート１５１４を経由し、ブロック１５０３のスレーブポート１５１５に接続されている。
【００７８】
いま、マスターイベントがブロック１５０１から発生し、ポート１５１０およびポート１５１２を経由してＥＤＤ１５０９のＥＤＰに伝わるとする。
励起された１５０３ブロックが一切多重のイベントを受け付けない場合、必要な処理は望ましくはＥＤＰの中のみで処理される。必要とされる処理の負荷がシステムにとって重い場合、ＦＳＭ内に処理を移すことができる。この場合、多重イベントを受け付けない動作が求められればＥＤＰをロックする等の制御が必要であり、多重イベントの受付が可能であれば、イベントキュー等にフラグを立て、処理中のイベントに対するケアを動作記述する必要がある。
この場合、外部からの制御の変更を受けつけることができ、その条件とデフォルトの優先順位によりどちらのブロックの要求イベントを処理するかが動的に制御できる。
【００７９】
いま、ブロック１５０１のイベントにより共有資源ブロック１５０３が動作を行っている場合に、デフォルトでブロック１５０１に優先するブロック１５０２のイベントがブロック１５０３に印加された場合、ＥＤＤ１５０９のＥＤＰによってイベントキューにこのイベントが並ぶことになる。
さらに、コントローラ１５１３より入力がある場合、動的に処理順を変更することが可能となる。たとえば、コントローラ１５１３によりブロック１５０１の担当する処理に緊急性が生じている等の場合、ブロック１５０１の要求イベント処理の優先順位を高め、これによりＥＤＤ１５０９のＦＳＭ内でイベントキューの並べ替えが行うことによりリアルタイムな処理が可能となる。
【００８０】
本手順によりコアモデルの動作記述を書き換えずに、ＥＤＤとコントローラの記述によりマルチマスターの共有資源の動的調停機構変更を実現できる。
また、これはマスター側からシステムを見ると、複数のマスターがＥＤＤにより択一選択され、さらにスレーブの機能がＥＤＤによって動的に変更されることを示している。すなわち、つながる先を動的に切り替えることができることを意味しており、ブロック間の接続情報（トポロジー）を動的に変更することが可能となる。
【００８１】
［役割分担交換可能システム］
図２１は、静制御役割交換可能システム装置１６００のシステム構成例を示す図である。
【００８２】
あるブロック１６０１はその動作を記述したコアモデル１６０３とＥＤＤ１６０４を内包する。また、ブロック１６０１に互いに独立なブロック１６０２はその動作を記述したコアモデル１６０５とＥＤＤ１６０６を内包する。
各々は、前述のインマスター・アウトスレーブモデルと同様にブロック１６０１においては、コアモデル１６０３のマスターポート１６０７と外部ミューチュアルポート１６１５およびＥＤＤ１６０４のスレーブポート１６０８が接続され、コアモデル１６０３のスレーブポート１６０９とＥＤＤ１６０４のマスターポート１６１０が接続される。
同様に、ブロック１６０２においては、コアモデル１６０５のマスターポート１６１１と外部ミューチュアルポート１６１６およびＥＤＤ１６０６のスレーブポート１６１２が接続され、コアモデル１６０５のスレーブポート１６１３とＥＤＤ１６０６のマスターポート１６１４が接続される。
【００８３】
図９の例での動作から明らかなように、マスターあるいはスレーブ双方のモデル構造は全く同じであり、その違いはＥＤＤの伝搬イネーブルの真偽値設定のみである。すなわち、互いに相反する設定であればマスターとスレーブの関係が一意に決定される。
本システム１６００では、たとえば、双方のＥＤＤのＦＳＭ内で設定されたルールにより互いに相反する伝搬イネーブルの値を設定することが可能である。ランダムにマスター・スレーブの役割が変更されるシステムを構築することも可能である。
【００８４】
［動的に役割分担を交換可能なシステム］
本システムは、図２１のシステムにコントローラを加えたものである。
図２２は、動制御役割交換可能システム装置１７００のシステム構成例を示す図である。
【００８５】
あるブロック１７０１はその動作を記述したコアモデル１７０３とＥＤＤ１７０４を内包する。またブロック１７０１に互いに独立なブロック１７０２はその動作を記述したコアモデル１７０５とＥＤＤ１７０６を内包する。
各々は、前述のインマスター・アウトスレーブモデルと同様にブロック１７０１においては、コアモデル１７０３のマスターポート１７０７と外部ミューチュアルポート１７１５およびＥＤＤ１７０４のスレーブポート１７０８が接続され、コアモデル１７０３のスレーブポート１７０９とＥＤＤ１７０４のマスターポート１７１０が接続される。
同様に、ブロック１７０２においては、コアモデル１７０５のマスターポート１７１１と外部ミューチュアルポート１７１６およびＥＤＤ１７０６のスレーブポート１７１２が接続され、コアモデル１７０５のスレーブポート１７１３とＥＤＤ１７０６のマスターポート１７１４が接続される。さらにコントローラ１７１７がブロック１７０１においては、そのスレーブポート１７１８とコントローラ１７１７のマスターポート１７１９で接続され、ブロック１７０２においては、そのスレーブポート１７２１とコントローラ１７１７のマスターポート１７２０で接続される。
【００８６】
図２１のシステムでは、決まった手順により決定されたマスターとスレーブの切り替えが、本例では、コントローラの入力により動的に変更できる。
【００８７】
次に、本実施形態に係るイベント方向検出装置のモデルを、実際のシステムに適用した場合について説明する。
【００８８】
図２３は、本実施形態に係るイベント方向検出装置が適用されるシステム構成の概念図である。
【００８９】
本システム装置２０００は、基本的に、処理装置であるＣＰＵ２００１、ＲＯＭ２００２、ＲＡＭ２００３、ストレージユニット２００４、ゲームに関する情報が表示される表示装置２００５、およびキーボードやマウスを含む操作部２００６により構成される。
【００９０】
本例においては、図中のストレージユニット２００４内に保存されたシミュレーション計算モデルの一部をなし、実行時にいわゆる電子計算機のソフトウェアとしてＲＡＭ２００３上に展開される。
すなわち、本イベント方向検出装置は、数学モデル部分の一構成要素として形成することができる。
本イベント方向検出装置は、前述したように、部品であることから、使用法は様々であり、用途も広い。
以下、具体的なイメージを得るために、例を示しながら説明するが、応用例は以下の説明に限るものではない。
【００９１】
たとえば、アーケードゲームであるクレーンゲームをコンピュータ上でシミュレーションすることを考える。
現実世界は、万物に等しく時間が流れているので、全てコンカレントシステムであり、クレーンゲームもその構成要素である、対象物を掴むアーム、アームを動かすモータ、アームを制御する制御ボタン、対象物である景品等はすべてコンカレントシステムであり並行に存在する。
コンピュータ上でこれらのコンカンレントシステムの動作をシミュレーションするには数学モデルが必要となり、これをモデルと呼び、前述したようにイベント方向検出装置は、モデルを構成する部品である。
【００９２】
図２４は、本実施形態に係るクレーンゲーム装置の概略構成を示す図である。
クレーンゲーム装置３０００は、概ね、システム内の制御を行うＣＰＵ３００１、景品を掴むアームを動かすモータ３００２，３００３（二次元であるので、ｘ軸ｙ軸方向の２種）、ユーザインタフェースである操作ボタンを含む操作部３００４と、システムの状況を表示する表示装置３００５とから構成されるテストベンチの３ブロックからなる。
【００９３】
図２５は、実物のクレーンゲームシステムのマンマシンインタフェースの概念図である。
物理（現実の）マンマシンインタフェース３０１０の要素は、コイン投入口３０１１、奥行き方向指示ボタン３０１２、横方向指示ボタン３０１３、アーム３０１４、対象である景品３０１５、および景品取り出し口３０１６である。
【００９４】
これら物理インタフェース３０１０の構成要素のうち、物理ＣＰＵ３００１が制御しているのは、コイン投入口３０１１、奥行き方向指示ボタン３０１２、横方向指示ボタン３０１３、およびアーム３０１４である。
このうち、アーム３０１４には、各方向指示ボタン３０１２，３１０３によって、ＣＰＵ３００１を介して制御可能な２方向のモータ３００２，３００３とプレーヤーが制御できずＣＰＵ３００１だけが制御可能な上下の動きを実現するモータとアームの開閉を制御するモータがあり、これらの全ての要素が通信路３０２０を経てＣＰＵ３００１に接続されている。
【００９５】
物理マンマシンインタフェース３０１０と物理ＣＰＵ３００１との通信接続は、多くは電気伝導体Ｗを材料とする配線として実現されていて、全ての信号について片側一方通行の単線から構成される。システム全体では当然複数の信号線が使用されている。
【００９６】
図２４におけるモデルの構成も基本的には実物と同じであるが、実物ではユーザインタフェースであった部分も仮想現実モデルが必要である点が異なる。
事例のシステムでは、テストベンチとしてモデリングされており、操作ボタンを押す、コインを投入する等の制御入力インタフェースが擬似的なスイッチとしてマウスおよびキーボードとして提供され。また、アーム３０１４の動作や景品の動作などの、実物ではそのものを目で見ることができたものがディスプレイモニタである表示装置３００５上に出力グラフィックスユーザインタフェースとして提供される。
【００９７】
物理マンマシンユーザインタフェースの要素は、ディスプレイモニタ（表示装置）、キーボード、およびマウスのみである。
物理ＣＰＵ３００１は、全てのモデルをロードしている。実物のＣＰＵもＣＰＵモデルとしてモデル化されている。
【００９８】
物理マンマシンインタフェースと物理ＣＰＵを繋ぐ通信もモデルとして実現される。システムモデル内の複数の信号線のうち、制御方向とデータ方向が全く逆であり、かつこの制御とデータ信号が同時に発生することがない組については唯一の線路が使用され、これが本件での唯一の線路、双方向の線路である。
制御とデータの２信号について１線路を使用しているため「唯一」と表現している。システム内にたった一つしかない線路を意味しているわけではない。この一つの組に対して唯一の線路はシステム内に複数存在する。
本実施形態のイベント方向検出装置は、上記の制御とデータの一つの組に対する唯一の線路の両端に接続される要領で、かつ各モデル内に配置されている。
【００９９】
図２６は、図２３および図２４のシステムの全体のフローチャートである。
このフローチャートに関連付けてシステムの動作例について説明する。
【０１００】
起動ステップＳＴ１：
キーボードから実行コマンドを入力する。このコマンドにより、数学モデルを含む実行プログラムが電子計算機のソフトウェアとしてＲＡＭ状に展開される。
実物では、電源投入ステップとなる。
【０１０１】
入力待ちステップＳＴ２：
ユーザー操作ボタンが画像表示装置上に表示され、クレーンゲームの初期画面がモニター上に表示される。
実物でも、コイン投入後、ボタン入力待ちステップとなる。
【０１０２】
ゲーム中のステップＳＴ３：
ユーザーが正しい順番（横移動ボタンから縦移動ボタンの順）でボタンを押すと、それぞれのボタンに対応したモータモデルが動作を始め、クレーンゲームの画面がモータモデルにより計算されたアームの座標に応じてモニター上に描画される。
この一連の動作はプロセッサモデルにより制御される。この際、プロセッサモデルはテストベンチモデルに対しボタンが押されたか、モータにより移動されたアーム３０１４の位置は何処であるかを問い合わせ続けており、本イベント方向検出装置はこの問い合わせと返答の一連の動作を唯一の通信路で実現するために使用されている。すなわち、プロセッサ側からの問い合わせは制御信号として取り扱われ、テストベンチからの返答はデータとしてシステム上認識される。
実物でも同様のステップとなる。ただし、実際に物理アームが動作し物理景品を獲得しようとする。後で説明するコア部分のステップは、この一連の動作中にすべてのステップが実行される。
すなわち、一回のアーム３０１４の位置問い合わせ中に現実のクレーンゲームでは、
ａ.アーム座標の問い合わせ （制御信号：物理ＣＰＵから物理アーム方向へ）、
ｂ.アーム座標データの返答（データ信号：物理アームから物理ＣＰＵ方向へ）、
と行われ、それぞれ一本の通信路すなわちこの組で２本の通信路を使用して行われる。
ａ.ｂ.のそれぞれの動作が現実のクレーンゲームの動作であり、アームの位置を確認する機能にあたる。
自明であるが、現実のクレーンゲームではこのａ.ｂ.それぞれの動作に対し一本の通信路が必要であるのに対し、本イベント方向検出装置を使用すれば一本を使いまわすことが可能となり全体として半分に線路を減らすことができる。
【０１０３】
終了処理ステップＳＴ４：
縦移動ボタンが押され、放されるとアーム３０１４は自動的に下降しアームを閉じる。この際に、景品座標がアーム座標と一致しているとアーム３０１４は景品を掴む。アーム３０１４を閉じたまま再度上昇の後スタート位置にモータにより移動し、アーム３０１４を開く。この際に景品を掴んでいれば、景品が落下しこれを得ることができる。
実物でも同様のステップとなる。
そして、ステップＳＴ２に戻る。
実物でもコイン投入待ちステップとなる。
【０１０４】
図２７は、コア部分の実コードを示す図である。
本例ではシステムレベル設計言語として一般的なＳｙｓｔｅｍＣによる記述を例示したが、これに限るものではない(なお、他にＳｐｅｃＣ言語による記述例もあり)。
本例ではイベントを受けたときの動作がイネーブル変数により制御されているがこれについては図２８のフローチャートに関連付けて説明する。
コア部分３０３０では、信号を中継するリレーモジュールが内部イベント用、外部イベント用の２つのモジュール３０３１、３０３２にインスタンス化される。
コアモジュール３０３０は、階層モジュールとしてサブモジュールをインスタンス化する機能のみ有し、プロセスは持たない。
また、コアモジュール３０３０のサブモジュールであるリレーモジュール３０３１、３０３２はリーフモジュールであり内部にサブモジュールを持たず、機能を実現するプロセスを持っている。
コア部分ではクロックｃｌｋポートを持っているが、本例では自律動作が全く必要ないので使用されていない。
図２８は、図２７のコア部分のフローチャートである。
【０１０５】
本イベント方向検出装置は２種のフローからなり、この２種の制御フローは図中のｖ９：イネーブル変数により関連付けられている。
わかりやすくするために、ポートをｅｎａｂｌｅ、変数をイネーブルと表現している。
＜イネーブル制御フロー（コア部分のｅｎａｂｌｅポートにバインドされたフロー)＞
ｅｎａｂｌｅポートイベント制御フローは３つのステップからなる。
第１ステップｓ１はｅｎａｂｌｅポートイベント発生判断ステップである。
第２ステップｓ２はイネーブル要求判断ステップである。
第３ステップｓ３はイネーブル変数設定動作ステップである。
【０１０６】
各ステップ間の遷移を以下に示す。
ステップｓ１:
ｅｎａｂｌｅポートにイベントが発生した場合（ｓ１:ｙｅｓ）、ステップｓ２へ遷移する。発生していない場合（s１:ｎｏ）は、ステップｓ１に戻る。
ステップｓ２:
ｅｎａｂｌｅポート値が真だった場合（ｓ２:ｙｅｓ）、ステップｓ３へ遷移する。偽（ｓ２:ｎｏ）であった場合、ステップｓ１へ遷移する。
ステップｓ３:
イネーブル変数を真に設定しステップs１へ遷移する。
＜イベント制御フロー(コア部分のｉｎｐｕｔポートにバインドされたフロー)＞
このｉｎｐｕｔポートイベント制御フローは第４から第８の５つのステップからなる。
第４ステップｓ４はｉｎｐｕｔポートイベント発生判断ステップである。
第５ステップｓ５はイネーブル要求判断ステップである。
第６ステップｓ６はイネーブル変数設定動作ステップである。
第７ステップｓ７はイネーブル要求判断ステップである。
第８ステップｓ８はイネーブル変数設定動作ステップである。
【０１０７】
各ステップ間の遷移を以下に示す。
ステップｓ４:
ｉｎｐｕｔポートにイベントが発生した場合（ｓ４:ｙｅｓ）、ステップｓ５に遷移する。発生していない場合（ｓ４:ｎｏ）は、ステップｓ４に戻る。
ステップｓ５: 
イネーブル変数が真だった場合（ｓ５:ｙｅｓ）、ステップｓ６へ遷移する。偽（ｓ５:ｎｏ）であった場合、ステップｓ８に遷移する。
ステップｓ６:
ｅｖｅｎｔを(コア部分のｏｕｔｐｕｔポートに)中継し、ステップｓ７に遷移する。
ステップｓ７:
イネーブル変数を偽に設定しステップｓ４に遷移する。
ステップｓ８:
イネーブル変数を真に設定しステップｓ４に遷移する。
【０１０８】
以上説明したように、本実施形態によればイベントの方向を検出することが可能となり、さらにイベント検出後の動作を様々な条件により変更することができるという理由により、以下のような効果が得られる。
どちらの端子から信号が入力されるのかを判定することが可能となり、イベントの方向による動作の切り替えができる。
また、部品構成の共通化により、モデルの可読性が向上し、動作部品の共通化により、モデルの再利用性が向上する利点がある。
イベントの伝搬方法を変化させることでモデルの動作順序を入れ替えることが可能となり、リアルタイム性のあるシステムが構築できる。
イベントキューの利用により、モデルの動作順序を入れ替えることが可能となり、リアルタイム性が向上する。
マスター・スレーブ動作を唯一の伝達経路で実現することが可能となり、アルゴリズムの電子システムモデル化が容易となる。
複数のマスターブロックからの共通ブロックへのアクセスを切り替えることが可能となるため、順序アルゴリズムを、並列並行電子システムにモデル化する際の共通資源の統一化が容易となる。
複数のマスターブロックからの共通ブロックへのアクセスを動的な条件判断で変更することが可能なため、リアルタイム性が向上する。
ブロック間の繋がり方を動的に変更することが可能となるため、動的再構成可能演算ブロックのモデル化ができる。
動的な条件判定によりマスター・スレーブの役割の切り替えが可能となるため、アルゴリズム内の多態性がモデル化できる。これにより例えば呼び出しは同じで異なる機能を実現するブロックをシステムの構成部品とすることが可能となる。
【図面の簡単な説明】
【０１０９】
【図１】本発明で使用するモデル構造の概念図である。
【図２】発明モデルであるイベント方向検出装置の簡略形の概念図である。
【図３】副ブロック構成による発明モデルであるイベント方向検出装置の基本形の概念図である。
【図４】マルチマスター・マルチスレーブシステムの構成例を示す図である。
【図５】イベントキュー機構付きイベント方向検出装置を使用したシステム構成例を示す図である。
【図６】返り値なし関数呼び出しモデルの概念図である。
【図７】返り値あり関数呼び出しモデルの概念図である。
【図８】制御信号・データ分離型の返り値あり関数呼び出しモデルの概念図である。
【図９】インマスター・アウトスレーブモデルのシステム構成例を示す図である。
【図１０】インマスター・アウトスレーブモデルのシーケンス図である。
【図１１】外部イベント生成インマスターモデルの構成例を示す図である。
【図１２】外部イベント生成インマスターモデルのシーケンス図である。
【図１３】外部イベント検出アウトスレーブモデルの構成例を示す図である。
【図１４】外部イベント検出アウトスレーブモデルのシーケンス図である。
【図１５】内部イベント検出スレーブモデルの構成例を示す図である。
【図１６】内部イベント検出スレーブモデルのシーケンス図である。
【図１７】再帰型内部イベント検出スレーブモデルの構成例を示す図である。
【図１８】再帰型内部イベント検出スレーブモデルのシーケンス図である。
【図１９】静制御マルチマスターシステム装置のシステム構成例を示す図である。
【図２０】動制御マルチマスターシステム装置のシステム構成例を示す図である。
【図２１】静制御役割交換可能システム装置のシステム構成例を示す図である。
【図２２】動制御役割交換可能システム装置のシステム構成例を示す図である。
【図２３】本実施形態に係るイベント方向検出装置が適用されるシステム構成の概念図である。
【図２４】本実施形態に係るクレーンゲーム装置の概略構成を示す図である。
【図２５】実物のクレーンゲームシステムのマンマシンインタフェースの概念図である。
【図２６】図２３および図２４のシステムの全体のフローチャートである。
【図２７】コア部分の実コードを示す図である。
【図２８】図２７のコア部分のフローチャートである。
【符号の説明】
【０１１０】
１０１…ブロックモデル全体集合、１０２…有限状態機械部、１０３…事象駆動処理部、１０４…スレーブポート、１０５…マスターポート、１０６…ミューチュアルポート、２００…イベント方向検出装置、２０１…ブロックモデル、２０２…コアモデル、２０３…ブロックモデルのスレーブポート、２０４…ブロックモデルのマスターポート、２０５…外部イベント検知関数記述、２０６…内部イベント検知関数記述、３００…副ブロック化イベント方向検出装置、３０１…ブロックモデル、３０２…コアモデル、３０３…イベント方向検出装置、３０４…ブロックモデルのスレーブポート、３０５…ブロックモデルのマスターポート、３０６…コアモデルのスレーブポート、３０７…コアモデルのマスターポート、３０８…外部イベント検出入力スレーブポート、３０９…内部イベント検出出力マスターポート、３１０…外部イベント検出出力マスターポート、３１１…内部イベント検出入力スレーブポート、４００…共通ブロック化イベント方向検出装置、４０１…ブロックモデル、４０２…ブロック４０１と互いに独立なるブロックモデル、４０３…共有のイベント方向検出装置、４０４…ブロック４０１のマスターポート、４０５…ブロック４０１のスレーブポート、４０６…ブロック４０２のマスターポート、４０７…ブロック４０２のスレーブポート、４０８…外部イベント出力マスターポート、４０９…外部イベント入力スレーブポート、４１０…内部イベント入力スレーブポート、４１１…内部イベント出力マスターポート、５００…キュー機構付イベント方向検出装置、５０１…ブロックモデル、５０２…コアモデル、５０３…イベント方向検出装置、５０４…ブロックモデルの外部入力スレーブポート、５０５…ブロックモデルの外部出力マスターポート、５０６…コアモデルのスレーブポート、５０７…コアモデルのマスターポート、５０８…外部イベント入力スレーブポート、５０９…内部イベント出力マスターポート、５１０…外部イベント出力マスターポート、５１１…内部イベント入力スレーブポート、５１２…イベントキュー、６００…返り値ない関数呼び出しモデル、６０１…呼び出し側ブロックモデル、６０２…ブロック化された返り値のない関数モデル、６０３…呼び出し側のマスターポート、６０４…関数モデルのスレーブポート、７００…返り値あり関数呼び出しモデル、７０１…呼び出し側ブロックモデル、７０２…ブロック化された返り値のある関数モデル、７０３…呼び出し側のマスターポート、７０４…関数モデルのスレーブポート、８００…制御信号分離型返り値あり関数呼び出しモデル、８０１…呼び出し側ブロックモデル、８０２…ブロック化された返り値のある関数モデル、８０３…呼び出し側の制御信号マスターポート、８０４…関数モデルの制御信号スレーブポート、８０５…関数モデルのデータマスターポート、８０６…呼び出し側のデータスレーブポート、９００…インマスター・アウトスレーブモデル、９０１…呼び出し側ブロックモデル、９０２…呼び出し側コアモデル、９０３…呼び出し側イベント方向検出装置、９０４…ブロック化された返り値のある関数モデルの集合、９０５…関数モデルのコアモデル、９０６…関数モデルのイベント方向検出装置、９０７…呼び出し側のミューチュアルポート、９０８…関数モデルのミューチュアルポート、１０００…外部イベント生成インマスターモデル、１００１…インマスターブロックモデルの全体集合、１００２…ブロックモデルのコアモデル、１００３…ブロックモデルのイベント方向検出装置、１００４…コアモデルのマスターポート、１００５…ブロックモデルの外部ミューチュアルポート、１００６…外部イベント入力スレーブポート、１００７…外部イベント出力マスターポート、１００８…コアモデルのスレーブポート、１１００…外部イベント検出アウトスレーブモデル、１１０１…外部イベントを検出するブロックモデルの全体集合、１１０２…コアモデル、１１０３…ブロックモデルのイベント方向検出装置、１１０４…ブロックモデルの外部ミューチュアルポート、１１０５…コアモデルのマスターポート、１１０６…外部イベント入力スレーブポート、１１０７…外部イベント出力マスターポート、１１０８…コアモデルのスレーブポート、１２００…内部イベント検出スレーブモデル、１２０１…ブロックモデルの全体集合、１２０２…コアモデル、１２０３…イベントＡを検出するイベント方向検出装置、１２０４…イベントＢを検出するイベント方向検出装置、１２０５…イベントＢ用内部イベントマスターポート、１２０６…内部イベント入力スレーブポート、１２０７…内部イベント出力マスターポート、１２０８…内部イベント入力スレーブポート、１２０９…内部イベント出力マスターポート、１２１０…イベントＢ用内部イベントスレーブポート、１２１１…イベントＡ用内部イベントマスターポート、１２１２…イベントＡ用内部イベントスレーブポート、１３００…再帰納型内部イベント検出スレーブモデル、１３０１，１３０２…ブロックモデルの全体集合、１３０３…ブロックモデルのイベント方向検出装置、１３０４…コアモデルのマスターポート、１３０５…内部イベント入力スレーブポート、１３０６…内部イベント出力マスターポート、１３０７…コアモデルのスレーブポート、１５００…静制御マルチマスターシステム装置、１４０１…マスターブロックの全体集合、１４０２…ブロック１４０１と互いに独立なマスターブロックの全体集合ブロック、１４０３…共有されるスレーブブロックの集合、１４０４…コアモデル、１４０５…ブロック１４０１のイベント方向検出装置、１４０６…コアモデル、１４０７…ブロック１４０２のイベント方向検出装置、１４０８…コアモデル、１４０９…ブロック１４０３のイベント方向検出装置、１４１０…ブロック１４０１のマスターポート、１４１１…ブロック１４０２のマスターポート、１４１２…ブロック１４０３のスレーブポート、１５００…動制御マルチマスターシステム装置、１５０１…マスターブロックの全体集合、１５０２…ブロック１５０１と互いに独立なマスターブロックの全体集合、１５０３…共有されるスレーブブロックの集合、１５０４…コアモデル、１５０５…ブロック１５０１のイベント方向検出装置、１５０６…コアモデル、１５０７…ブロック１５０２のイベント方向検出装置、１５０８…コアモデル、１５０９…ブロック１５０３のイベント方向検出装置、１５１０…ブロック１５０１のマスターポート、１５１１…ブロック１５０２のマスターポート、１５１２…ブロック１５０３の共有イベントスレーブポート、１５１３…コントローラ、１５１４…ブロック１５１３のマスターポート、１５１５…ブロック１５０３の動作制御用スレーブポート、１６００…静制御役割交換可能システム装置、１６０１…ブロックの全体集合、１６０２…ブロック１６０２と互いに独立なブロックの全体集合、１６０３…コアモデル、１６０４…ブロック１６０１のイベント方向検出装置、１６０５…コアモデル、１６０６…ブロック１６０２のイベント方向検知装置、１６０７…ブロック１６０１のコアモデルのマスターポート、１６０８…ブロック１６０１のイベント方向検出装置のスレーブポート、１６０９…ブロック１６０１のコアモデルのスレーブポート、１６１０…ブロック１６０１のイベント方向検出装置のマスターポート、１６１１…ブロック１６０２のコアモデルのマスターポート、１６１２…ブロック１６０２のイベント方向検出装置のスレーブポート、１６１３…ブロック１６０２のコアモデルのマスターポート、１６１４…ブロック１６０２のイベント方向検出装置のマスターポート、１６１５…ブロック１６０１の外部ミューチュアルポート、１６１６…ブロック１６０２の外部ミューチュアルポート、１７００……動制御役割交換可能システム装置、１７０１…ブロックの全体集合、１７０２…ブロック１７０２と互いに独立なブロックの全体集合、１７０３…コアモデル、１７０４…ブロック１７０１のイベント方向検出装置、１７０５…コアモデル、１７０６…ブロック１７０２のイベント方向検知装置、１７０７…ブロック１７０１のコアモデルのマスターポート、１７０８…ブロック１７０１のイベント方向検出装置のスレーブポート、１７０９…ブロック１７０１のコアモデルのスレーブポート、１７１０…ブロック１７０１のイベント方向検出装置のマスターポート、１７１１…ブロック１７０２のコアモデルのマスターポート、１７１２…ブロック１７０２のイベント方向検出装置のスレーブポート、１７１３…ブロック１７０２のコアモデルのマスターポート、１７１４…ブロック１７０２のイベント方向検出装置のマスターポート、１７１５…ブロック１７０１の外部ミューチュアルポート、１７１６…ブロック１７０２の外部ミューチュアルポート、１７１７…コントローラ、１７１８…ブロック１７０１の役割制御用スレーブポート、１７１９…ブロック１７０１用の役割制御用マスターポート、１７２０…ブロック１７０２用の役割制御用マスターポート、１７２１…ブロック１７０２の役割制御用スレーブポート。
【図１】
0004779657.tif 000002
【図２】
0004779657.tif 000003
【図３】
0004779657.tif 000004
【図４】
0004779657.tif 000005
【図５】
0004779657.tif 000006
【図６】
0004779657.tif 000007
【図７】
0004779657.tif 000008
【図８】
0004779657.tif 000009
【図９】
0004779657.tif 000010
【図１０】
0004779657.tif 000011
【図１１】
0004779657.tif 000012
【図１２】
0004779657.tif 000013
【図１３】
0004779657.tif 000014
【図１４】
0004779657.tif 000015
【図１５】
0004779657.tif 000016
【図１６】
0004779657.tif 000017
【図１７】
0004779657.tif 000018
【図１８】
0004779657.tif 000019
【図１９】
0004779657.tif 000020
【図２０】
0004779657.tif 000021
【図２１】
0004779657.tif 000022
【図２２】
0004779657.tif 000023
【図２３】
0004779657.tif 000024
【図２４】
0004779657.tif 000025
【図２５】
0004779657.tif 000026
【図２６】
0004779657.tif 000027
【図２７】
0004779657.tif 000028
【図２８】
0004779657.tif 000029