(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-29
(45)【発行日】2024-04-08
(54)【発明の名称】形式モデルによってデータフローシステムを設計および確認するためのツールおよび方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20240401BHJP
G06F 11/36 20060101ALI20240401BHJP
G06F 9/44 20180101ALI20240401BHJP
【FI】
G06F9/50 150Z
G06F11/36 164
G06F9/44
(21)【出願番号】P 2021510638
(86)(22)【出願日】2019-08-30
(86)【国際出願番号】 FR2019052008
(87)【国際公開番号】W WO2020043999
(87)【国際公開日】2020-03-05
【審査請求日】2022-06-24
(32)【優先日】2018-08-31
(33)【優先権主張国・地域又は機関】FR
(73)【特許権者】
【識別番号】502124444
【氏名又は名称】コミッサリア ア レネルジー アトミーク エ オ ゼネルジ ザルタナテイヴ
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ポール・デュブリュレ
(72)【発明者】
【氏名】ステファン・ルイーズ
(72)【発明者】
【氏名】クリストフ・ガストン
(72)【発明者】
【氏名】ニコライ・コスマトフ
(72)【発明者】
【氏名】マシュー・ジャン
(72)【発明者】
【氏名】アルノー・ラピトル
【審査官】漆原 孝治
(56)【参考文献】
【文献】米国特許出願公開第2014/0040855(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 11/36
G06F 9/44
(57)【特許請求の範囲】
【請求項1】
1つの機器の搭載装置をモデル化したデータフローシステムを設計および確認するための、コンピュータによって実装されるツールであって、前記データフローシステムが、一方向通信チャネル(c
i、c
j)によって互いに相互接続されるソフトウェアおよび/またはハードウェアアクタ(a
i、a
j)の集合を備え、前記ツールが、
- リアルタイムかつ再構成可能なデータフローを、形式的に指定することによって前記システムのインスタンスを生成するように構成され、前記データフローの再構成が、前記通信チャネルを通じて1つのアクタから別の1つに再構成データを伝搬することによって動的に実施される、モデリングインタフェース(11)と、
- 前記アクタの起動状態および前記通信チャネルの状態を定義した行列の構築ならびに前記行列との積がゼロである自然整数ベクトルの決定を含む前記インスタンスの静的解析を用いて前記システムの挙動性の所定の集合を証明するように構成され、前記ベクトルの決定が、割当リソースと独立して前記データフローシステムの実現可能性を確証する、解析モデル(13)と、
- 挙動性の前記所定の集合に準拠して前記インスタンスにリソースを割り当て、したがっていわゆる構成済みインスタンスを確立するように設計される改良インタフェース(15)と、
- 単体試験(171)および統合試験(173)ツールを備え、前記単体試験ツール(171)が、アクタの実装の入力チャネル上でデータの作成をシミュレートし、この実装によって消費および作成される量が実装された前記アクタに対して指定されたものに相当することを検証し、前記統合試験ツール(173)が、前記構成済みインスタンスの期待される挙動に対応するプロットの集合を構築し、提供されたプロットがこの有効な集合に帰属することを保証し、したがって前記構成済みインスタンスに関して前記システムの実装の挙動の適合性を検証する、適合性試験モジュール(17)と
を備えることを特徴とする、ツール。
【請求項2】
前記システムの前記インスタンスが有理数のデータ消費および排出率を含むことを特徴とする、請求項1に記載のツール。
【請求項3】
更に前記システムの前記インスタンスが、
- 或るアクタに対する最高周波数制約と、
- 或る他のアクタに対する最低周波数制約と
を含むことを特徴とする、請求項1または2に記載のツール。
【請求項4】
前記システムの前記インスタンスが、
- データを処理するように構成される汎用アクタおよびデータを処理しかつ/または構成モードを選択するように構成されるモードアクタを含むアクタの前記集合と、
- アクタの前記集合を互いに接続し、各アクタが少なくとも1つの入力または出力チャネルと関連付けられている、一方向通信チャネルの前記集合と、
- その前記入力および出力チャネルの各々に対してアクタによって作成または消費される整数または有理数のデータと、
- 各モードアクタと関連したモードの集合であり、各モードアクタが、その起動の各々に対してモードの前記集合の中からモードを1つだけ動的に選ぶように構成されている、モードの集合と
を含むことを特徴とする、請求項1から3のいずれか一項に記載のツール。
【請求項5】
更に前記システムの前記インスタンスが、各汎用アクタに対して、それが実行する実行モードの対応する集合の他に、それがパスする全てのその他のモードの黙示の集合を含み、実行モードが、前記システムの全体に共通の公称モードか、モードアクタによって選ばれる特定モードかであり得ることを特徴とする、請求項1から4のいずれか一項に記載のツール。
【請求項6】
更に前記システムの前記インスタンスが、フィードバックチャネルの黙示の集合を含み、フィードバックチャネルが、同じモードアクタによって選ばれたモードの少なくとも1つに各々実行するデータ作成汎用アクタをデータ消費汎用アクタに接続するチャネルであること、および前記同じモードアクタから始まって消費汎用アクタを通過することによって作成汎用アクタによって終わる繰返しのない経路があることを特徴とする、請求項1から5のいずれか一項に記載のツール。
【請求項7】
更に前記システムの前記インスタンスが、有理数のかつ切り下げた前記有理数に等しい長さの一連のモードのチャネルによって、およびその初期モードの汎用アクタによって構成される前記システムの初期状態を含むことを特徴とする、請求項1から6のいずれか一項に記載のツール。
【請求項8】
挙動性の前記所定の集合が以下の第1、第2、第3および第4の性質、
- 前記第1の性質が、データ損失のないアクタ間の通信の実装のために必要とされる前記リソースが前記指定されたシステムの周期実行に対して制限されていることを検証し、
- 前記第2の性質が、前記第1の性質を疑問視することなく周波数および/または周期制約に準拠できることを検証し、
- 前記第3の性質が、任意の数のアクタ起動に対する相互遮断の非存在を検証し、
- 前記第4の性質が、全ての指定された再構成に対する前記システムの未知の状態の非存在およびその他の性質のいずれも構成の動的変化によって疑問視されていないことを検証する、
を含むことを特徴とする、請求項1から7のいずれか一項に記載のツール。
【請求項9】
前記システムが、1つの機器のリアルタイム搭載システムであり、前記機器に特有の測定値を受信するように、および前記機器の正しい動作のために動作を開始させる結果を送出するように構成されることを特徴とする、請求項1から8のいずれか一項に記載のツール。
【請求項10】
一方向通信チャネル(c
i、c
j)によって互いに相互接続されるソフトウェアおよび/またはハードウェアアクタ(a
i、a
j)の集合を備える、1つの機器のリアルタイム搭載システムであって、請求項1から9のいずれか一項に記載のツールによって設計および確認される、搭載システムにおいて、前記搭載システムが、前記機器およびその環境に特有の測定値を受信するように、ならびに前記機器の正しい動作のために動作を開始させる結果を送出するように構成されることを特徴とする、リアルタイム搭載システム。
【請求項11】
前記機器が、陸上、鉄道、航空宇宙または海洋型の自律または非自律乗物であることを特徴とする、請求項10に記載のシステム。
【請求項12】
請求項1から9のいずれか一項に記載のツールによって設計および確認される、リアルタイム工業プロセスのシステムであって、前記システムが、特定の流量制約に従って、および再構成可能なプロセスに従って物体の工業生産のために構成されることを特徴とする、システム。
【請求項13】
1つの機器の搭載装置をモデル化したデータフローシステムを設計および確認するための、コンピュータによって実装される方法であって、前記データフローシステムが、一方向通信チャネルによって互いに相互接続されるソフトウェアおよび/またはハードウェアアクタの集合を備え、前記方法が、コンピュータを使用して以下のステップ、
- リアルタイムかつ再構成可能なデータフローを、形式的に指定することによって前記システムのインスタンスを生成するステップであり、前記データフローの再構成が、前記通信チャネルを通じて1つのアクタから別の1つに再構成データを伝搬することによって動的に実施される、ステップと、
- 前記アクタの起動状態および前記通信チャネルの状態を定義した行列の構築ならびに前記行列との積がゼロである自然整数ベクトルの決定を含む前記インスタンスの静的解析を用いて前記システムの挙動性の所定の集合を証明するステップであり、前記ベクトルの決定が、割当リソースと独立して前記データフローシステムの実現可能性を確証する、ステップと、
- 挙動性の前記所定の集合に準拠して前記インスタンスにリソースを割り当て、したがっていわゆる構成済みインスタンスを確立するステップと、
- アクタの実装の入力チャネル上でデータの作成をシミュレートするステップと、
- 前記実装によって消費および作成される量が実装された前記アクタに対して指定されたものに相当することを検証するステップと、
- 前記構成済みインスタンスの期待される挙動に対応するプロットの集合を構築するステップと、
- 提供されたプロットがこの有効な集合に帰属することを保証し、したがって前記構成済みインスタンスに関して前記システムの実装の挙動の適合性を検証するステップと
を実装することを特徴とする、方法。
【請求項14】
1つの機器の搭載装置をモデル化したデータフローシステムを設計および確認するために構成されたコード命令
を記憶した非一時的コンピュータデータ記憶媒体であって、前記データフローシステムが、一方向通信チャネルによって互いに相互接続されるソフトウェアおよび/またはハードウェアアクタの集合を備え、前記コード命令が、以下のステップ、
- リアルタイムかつ再構成可能なデータフローを、形式的に指定することによって前記システムのインスタンスを生成するステップであり、前記データフローの再構成が、前記通信チャネルを通じて1つのアクタから別の1つに再構成データを伝搬することによって動的に実施される、ステップと、
- 前記アクタの起動状態および前記通信チャネルの状態を定義した行列の構築ならびに前記行列との積がゼロである自然整数ベクトルの決定を含む前記インスタンスの静的解析を用いて前記システムの挙動性の所定の集合を証明するステップであり、前記ベクトルの決定が、割当リソースと独立して前記データフローシステムの実現可能性を確証する、ステップと、
- 挙動性の前記所定の集合に準拠して前記インスタンスにリソースを割り当て、したがっていわゆる構成済みインスタンスを確立するステップと、
- アクタの実装の入力チャネル上でデータの作成をシミュレートするステップと、
- 前記実装によって消費および作成される量が実装された前記アクタに対して指定されたものに相当することを検証するステップと、
- 前記構成済みインスタンスの期待される挙動に対応するプロットの集合を構築するステップと、
- 提供されたプロットがこの有効な集合に帰属することを保証し、したがって前記構成済みインスタンスに関して前記システムの実装の挙動の適合性を検証するステップと
を実装するためにプロセッサによって実行できることを特徴とする、非一時的コンピュータデータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一方向通信チャネルによって互いに相互接続されるアクタの集合を備えるシステムを設計および確認するためのツールに関する。
【背景技術】
【0002】
本発明は、一方向通信チャネルを通じて、定量化可能な情報をそれらの間で交換し合うソフトウェアおよび/またはハードウェアアクタの集合を備える「データフローシステム」と一般に称されるシステムに適用される。各アクタは、その入力チャネル上で、静的に指定された量のデータを、この量のデータを消費し、このデータの処理を実施し、新たなアクタに対して向けられるその出力チャネル上に静的に指定された量のデータを作成する目的で、受信すると期待している。この挙動は、アクタの各々によって無期限に繰り返される。そのようなデータフローシステムの一例が、自律乗物にまたは運転者と使用できるリアルタイム搭載システムである。
【0003】
これらのシステムの指定は、全ての制約を考慮に入れると、それ自体が複雑な技術的問題である。次いで、指定されたシステムの実装のためのリソースを割り当てる作業、および実装がその指定に従って動作するように、これらのリソースが十分であるという検証に移る。最後に、所与の実装に対して、この実装は試験されなければならず、それが指定された挙動に準拠することが保証されなければならない。
【0004】
多くの制約および再構成があり得る多数のアクタを備えることができるデータフローシステムを指定および検証するためのこれらの種々のタスクを実施するために自動ツールが使用される。
【0005】
現行では、再構成できるリアルタイムデータフローシステムを指定するための形式モデルに基づくアルゴリズムがある。そのような方法が例えば文書[1]に記載されている。この方法は、実装のために必要とされるリソースを検証する他に、アクタ間に相互遮断が無いことを検証することを可能にしている。しかしながら、それは、指定されたシステムの指定に関するその実装の挙動の準拠を検証することを可能にしておらず、全ての指定された再構成に対してシステムの未知の状態が無いことを検証することも可能にしていない。
【0006】
データフローの実装の準拠を試験するための形式モデルに基づく他の指定がある。そのような方法が例えば文書[2]に記載されている。しかしながら、このような方法が考慮に入れた唯一の制約はリアルタイム方法である。加えて、それは、システムの挙動の準拠に関してではなく、システムの出力値の準拠に関する判断を提供するだけである。しかしながら或る場合、システムは、必ずしも指定された挙動に準拠することなく正しい出力値を提供し得る。
【0007】
現行では、リアルタイム制約および再構成制約の両方とも考慮に入れた形式モデルに基づく方法はない。公知の方法の各々は、システムの指定および検証のために必要とされるステップおよび性質の一部分を部分的に包含しているだけである。これらの方法のいずれも、システムに存在し得る全ての制約を考慮に入れたシステムの設計および確認を完全には包含していない。
【0008】
更には、システムのアクタに異なる周波数に従って動作させることを可能にする公知の方法は現行ではない。実際、現状技術に係る方法は、通信データ損失なく異なる周波数に従って動作する2つのアクタ間の接続チャネルのサイズ設定の実現可能性の形式検証を可能にしていない。
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明の目的は、特に、システムの挙動性の完全集合を考慮に入れ、したがって再構成に関係なくシステムの精密かつ詳細な設計および確認を可能にする一方で、それでもシステムの計算リソースおよびメモリを最適化することによって、上述の欠点を克服するデータフローシステムを設計および確認するためのツールおよび方法を提案することである。
【課題を解決するための手段】
【0010】
本発明は、1つの機器の搭載装置をモデル化したデータフローシステムを設計および確認するための、コンピュータによって実装されるツールであって、上記データフローシステムが、一方向通信チャネル(ci、cj)によって互いに相互接続されるソフトウェアおよび/またはハードウェアアクタ(ai、aj)の集合を備え、上記ツールが、
- リアルタイムかつ再構成可能なデータフローを、形式的に指定することによって上記システムのインスタンスを生成するように構成され、データフローの再構成が、通信チャネルを通じて1つのアクタから別の1つに再構成データを伝搬することによって動的に実施される、モデリングインタフェース(11)と、
- アクタの起動状態および通信チャネルの状態を定義した行列の構築ならびに行列との積がゼロである自然整数ベクトルの決定を含む上記インスタンスの静的解析を用いて上記システムの挙動性の所定の集合を証明するように構成され、上記ベクトルの決定が、割当リソースと独立してデータフローシステムの実現可能性を確証する、解析モデル(13)と、
- 挙動性の上記所定の集合に準拠して上記インスタンスにリソースを割り当て、したがっていわゆる構成済みインスタンスを確立するように設計される改良インタフェース(15)と、
- 単体試験(171)および統合試験(173)ツールを備え、単体試験ツール(171)が、アクタの実装の入力チャネル上でデータの作成をシミュレートし、この実装によって消費および作成される量が実装されたアクタに対して指定されたものに相当することを検証し、統合試験ツール(173)が、構成済みインスタンスの期待される挙動に対応するプロットの集合を構築し、提供されたプロットがこの有効な集合に帰属することを保証し、したがって上記構成済みインスタンスに関して上記システムの実装の挙動の適合性を検証する、適合性試験モジュール(17)と
を備える、ツールに関する。
【0011】
形式モデルによるこの実施形態は、再構成に関係なくかつ集中制御を有する必要性なくデータフローシステムの精密かつ詳細な設計および確認を自動化することを可能にする。より詳細には、本発明に係る分散方式の再構成は、挙動性の完全集合を考慮に入れる一方で、それでもシステムの計算リソースおよびメモリを最適化し、したがって計算時間および誤差を最小化し、認定プロセスを容易にすることを可能にする。
【0012】
有利には、システムのインスタンスは有理数のデータ消費および排出率を含む。これは、これらのアクタ間にいかなる通信データ損失もなく異なる周波数に従って動作しなければならないアクタを考慮に入れる可能性を与える。このように、損失のない通信の実現可能性の検証、ならびに該当する場合、動作の順序制御およびタスク間の同期が、アクタと関連した周波数への制約に関係なく容易に実施できる。
【0013】
有利には、システムのインスタンスは、
- 或るアクタに対する最高周波数制約と、
- 或るアクタに対する最低周波数制約と
を含む。
【0014】
このように、現状技術とは逆に、形式モデルにおけるおよび性質の検証における周波数制約を考慮に入れることができる。
【0015】
有利には、システムのインスタンスは、
- データを処理するように構成される汎用アクタおよびデータを処理しかつ/または構成モードを選択するように構成されるモードアクタを含むアクタの全てと、
- アクタの集合を互いに接続し、各アクタが少なくとも1つの入力または出力チャネルと関連付けられている、一方向通信チャネルの集合と、
- その入力および出力チャネルの各々に対してアクタによって作成または消費される整数または有理数のデータと、
- 各モードアクタと関連したモードの集合であり、各モードアクタが、その起動の各々に対してモードの上記集合の中からモードを1つだけ動的に選ぶように構成されている、モードの集合と
を含む。
【0016】
これは、システムのトポロジを最適化することを可能にし、より詳細には、構成の動的選択は、モードアクタおよび接続チャネルの数を最小化することを可能にする。
【0017】
有利には、システムのインスタンスは、各汎用アクタに対して、それが実行する実行モードの対応する集合の他に、それがパスする全てのその他のモードの黙示の集合を更に含み、実行モードは、全体システムに共通の公称モードか、モードアクタによって選ばれる特定モードかであり得る。
【0018】
これは、アクタからアクタへのモードの伝搬を容易にすることを可能にする。
【0019】
有利には、システムのインスタンスは、フィードバックチャネルの黙示の集合を更に含み、フィードバックチャネルが、同じモードアクタによって選ばれたモードの少なくとも1つに各々実行するデータ作成汎用アクタをデータ消費汎用アクタに接続するチャネルであり、かつ上記同じモードアクタから始まって消費汎用アクタを通過することによって作成汎用アクタによって終わる繰返しのない経路がある。
【0020】
フィードバックチャネルは、処理チェーンのアクタがチェーンの前のアクタに結果を送信するのを可能にし、その結果この前のアクタは、古い結果を考慮に入れることによって別の処理を行うことができる。これらのフィードバックチャネルの同定は、したがってモードの伝搬により未決定モードを導入することなくシステムに反復プロセスを記述することを可能にする。
【0021】
有利には、システムのインスタンスは、有理数のかつ切り下げた上記有理数に等しい長さの一連のモードのチャネルによって、およびその初期モードの汎用アクタによって構成されるシステムの初期状態を更に含む。
【0022】
これは、例えばフィードバックループの場合などの或る状況において相互遮断を防止することを可能にし、かつ例えば畳込み積の計算などのアクタによる或る種類の処理の開始を可能にするために遅延を初期化することも可能にする。
【0023】
有利には、挙動性の所定の集合は以下の第1、第2、第3および第4の性質、
- 第1の性質は、データ損失のないアクタ間の通信の実装のために必要とされるリソースが指定されたシステムの周期実行に対して制限されていることを検証し、
- 第2の性質は、第1の性質を疑問視することなく周波数および/または周期制約に準拠できることを検証し、
- 第3の性質は、任意の数のアクタ起動に対する相互遮断の非存在を検証し、
- 第4の性質は、全ての指定された再構成に対するシステムの未知の状態の非存在およびその他の性質のいずれも構成の動的変化によって疑問視されていないことを検証する、
を含む。
【0024】
このように、4つの性質を完全な方式で検証することによって、本発明に係るツールは、システムが全ての再構成に対してならびに全ての周波数、周期およびリソースサイズ設定制約に対して既知のかつ一貫した状態にあることを保証する。現状技術とは逆に、本発明は、4つの性質が検証されていることを完全に証明することができるような方法で再構成を表現する。
【0025】
本発明の一実施形態によれば、上記システムは、1つの機器のリアルタイム搭載システムであり、上記機器に特有の測定値を受信するように、および上記機器の正しい動作のために動作を開始させる結果を送出するように構成される。
【0026】
本発明は、一方向通信チャネルによって互いに相互接続されるソフトウェアおよび/またはハードウェアアクタの集合を備える、1つの機器のリアルタイム搭載システムであって、前の特性のいずれかに係るツールによって設計および確認される、搭載システムにおいて、上記搭載システムが、上記機器およびその環境に特有の測定値を受信するように、ならびに上記機器の正しい動作のために動作を開始させる結果を送出するように構成される、リアルタイム搭載システムにも関する。
【0027】
有利には、上記機器は、陸上、鉄道、航空宇宙または海洋型の自律または非自律乗物である。
【0028】
本発明は、前の特性のいずれかに係るツールによって設計および確認される、リアルタイム工業プロセスのシステムであって、特定の流量制約に従って、および再構成可能なプロセスに従って物体の工業生産のために構成される、システムにも関する。
【0029】
本発明は、1つの機器の搭載装置をモデル化したデータフローシステムを設計および確認するための、コンピュータによって実装される方法であって、上記データフローシステムが、一方向通信チャネルによって互いに相互接続されるソフトウェアおよび/またはハードウェアアクタの集合を備え、上記方法が、コンピュータを使用して以下のステップ、
- リアルタイムかつ再構成可能なデータフローを、形式的に指定することによって上記システムのインスタンスを生成するステップであり、データフローの再構成が、通信チャネルを通じて1つのアクタから別の1つに再構成データを伝搬することによって動的に実施される、ステップと、
- アクタの起動状態および通信チャネルの状態を定義した行列の構築ならびに行列との積がゼロである自然整数ベクトルの決定を含む上記インスタンスの静的解析を用いて上記システムの挙動性の所定の集合を証明するステップであり、上記ベクトルの決定が、割当リソースと独立してデータフローシステムの実現可能性を確証する、ステップと、
- 挙動性の上記所定の集合に準拠して上記インスタンスにリソースを割り当て、したがっていわゆる構成済みインスタンスを確立するステップと、
- アクタの実装の入力チャネル上でデータの作成をシミュレートするステップと、
- 上記実装によって消費および作成される量が実装されたアクタに対して指定されたものに相当することを検証するステップと、
- 構成済みインスタンスの期待される挙動に対応するプロットの集合を構築するステップと、
- 提供されたプロットがこの有効な集合に帰属することを保証し、したがって上記構成済みインスタンスに関して上記システムの実装の挙動の適合性を検証するステップと
を実装する、方法にも関する。
【0030】
本発明は、1つの機器の搭載装置をモデル化したデータフローシステムを設計および確認するために構成されたコード命令を有形に記憶した非一時的コンピュータデータ記憶媒体であって、上記データフローシステムが、一方向通信チャネルによって互いに相互接続されるソフトウェアおよび/またはハードウェアアクタの集合を備え、上記コード命令が、以下のステップ、
- リアルタイムかつ再構成可能なデータフローを、形式的に指定することによって上記システムのインスタンスを生成するステップであり、データフローの再構成が、通信チャネルを通じて1つのアクタから別の1つに再構成データを伝搬することによって動的に実施される、ステップと、
- アクタの起動状態および通信チャネルの状態を定義した行列の構築ならびに行列との積がゼロである自然整数ベクトルの決定を含む上記インスタンスの静的解析を用いて上記システムの挙動性の所定の集合を証明するステップであり、上記ベクトルの決定が、割当リソースと独立してデータフローシステムの実現可能性を確証する、ステップと、
- 挙動性の上記所定の集合に準拠して上記インスタンスにリソースを割り当て、したがっていわゆる構成済みインスタンスを確立するステップと、
- アクタの実装の入力チャネル上でデータの作成をシミュレートするステップと、
- 上記実装によって消費および作成される量が実装されたアクタに対して指定されたものに相当することを検証するステップと、
- 構成済みインスタンスの期待される挙動に対応するプロットの集合を構築するステップと、
- 提供されたプロットがこの有効な集合に帰属することを保証し、したがって上記構成済みインスタンスに関して上記システムの実装の挙動の適合性を検証するステップと
を実装するためにプロセッサによって実行できることを特徴とする、非一時的コンピュータデータ記憶媒体にも関する。
【0031】
添付図面を参照しつつ、限定するものではないが情報を目的として、以下に与えられる説明を読むことで、本発明に係る装置のおよび方法の他の詳細事項および利点がより良好に現れるはずである。
【図面の簡単な説明】
【0032】
【
図1】本発明の一実施形態に係る、データフローシステムを設計および確認するためのツールに実装されるハードウェア手段を示す概略図である。
【
図2A】本発明に従って定義されるような挙動性に準拠しないデータフローの一例を示す図である。
【
図2B】本発明に従って定義されるような挙動性に準拠しないデータフローの一例を示す図である。
【
図2C】本発明に従って定義されるような挙動性に準拠しないデータフローの一例を示す図である。
【
図3】本発明の一実施形態に係る、データフローシステムを設計および確認するための方法を示す概略図である。
【
図4】本発明の一実施形態に係るグラフによってモデル化されたデータフローシステムの一例を示す概略図である。
【発明を実施するための形態】
【0033】
本発明は、データフローシステムにリアルタイム制約および動的再構成を記述して、システムの正しい動作のために必要とされる性質の集合の検証を可能にするための形式モデルに基づく。システムの実装のための構成データと組み合わされるこの静的解析の結果は、その実行のために必要とされるリソースの自動割当てを、そのような割当てが実行可能である限り、可能にする。最後に、形式準拠関係および試験環境が、初期指定されたモデルでのそのような実装の準拠に関する判断を得ることを可能にする。
【0034】
本発明は、一方向通信チャネルを通じて、定量化可能な情報をそれらの間で交換し合う独立アクタを備えるいかなるデータフローシステムにも適用できる。アクタは、ソフトウェア(例えば、アプリケーション)および/またはハードウェア(例えば、センサ、カメラ、プローブ、マイクロプロセッサ等)エンティティであることができる。各アクタは、それがその入力チャネル上で静的に指定される量のデータを、この量のデータを消費する目的で、受信するまで待機するように、このデータの処理を実施する(またはしない)ように、そして新たなアクタに対して向けられるその出力チャネル上に静的に指定される量のデータを作成するように構成され、各々が無期限にこの挙動を繰り返している。消費/処理/排出プロセスは一般に起動と称される。
【0035】
各起動は、既定の再構成に従って展開され、所与の再構成に対して、起動は、消費/処理/作成することになるか(次いで実行すると称される)、何もしないことになるか(パスすると称される)であり、構成を変更する選択は予測不可能である。
【0036】
各アクタは、任意選択で周波数制約を伴って(または等価に周期制約を伴って)時間窓内で(リアルタイムと呼ばれる)既定の再構成に従って起動される。
【0037】
特に、本発明は、1つの機器に搭載されるシステムに適用され、そのようなシステムが設けられる機器の安全性および正しい動作のためには、期待される挙動への準拠が非常に重要であると考えられる。
【0038】
自律乗物のための最近のリアルタイム搭載システムが、エンティティが汎用インタフェースを提供して、具体的なアプリケーションがそれらの間でデータを交換し合うのを可能にし、各アプリケーションが独立しており、かつ分散アーキテクチャにより計算器上で実行しているようなシステムの一例である。アプリケーション間の接続は、乗物の現在の動作モードおよび/またはサービスの可用性に従って再構成できる。最後に、乗物の正しい動作のために、アプリケーションの動作に時間制約が課される。
【0039】
図1は、本発明の一実施形態に係る、データフローシステムを設計および確認するためのツールに実装されるハードウェア手段を概略的に示す。
【0040】
データフローシステム3を設計および確認するためのツール1は、マイクロプロセッサ7およびメモリ9を備える計算器またはコンピュータ5などの情報処理機を備えるハードウェア手段を実装する。マイクロプロセッサ7は、コンピュータ5のメモリ9に記憶され、かつデータフローシステム3を設計および確認するためのツールを実装するように設計された、プログラムコード命令を含む1つまたは複数のコンピュータプログラムを実行するように構成される。
【0041】
設計および確認するためのツール1は、モデリングインタフェース11、解析モデル13、改良インタフェース15および適合性試験モジュール17を備える。
【0042】
モデリングインタフェース11は、データフローシステム3を記述するソフトウェアと対話するように構成されるグラフィックスソフトウェアである。グラフィックスソフトウェアおよびシステム3を記述するソフトウェアは、コンピュータ5によって実行されるように適合される。
【0043】
モデリングインタフェース11は、リアルタイムかつ再構成可能なデータフローを、形式的に指定することによってシステム3のインスタンスを生成するように構成される。用語「インスタンス」は、モデリングインタフェース11に記述されるデータフローの指定を意味する。モデリングインタフェース11は、したがって基礎として形式計算モデルを使用するデータフローを、このデータフローのいかなる実装とも独立して指定するために使用される。
【0044】
更には、データフローの再構成は、通信チャネルciを通じて1つのアクタaiから別の1つajに再構成データを伝搬することによって動的に実施される。再構成を表現するこの方法は、システム3の全ての挙動性(以下に記載される)を完全に検証することを可能にする。
【0045】
モデリングインタフェース11によって実施される指定は、目的としてシステムの挙動性を証明することができなければならない。実際、解析モデル13は、インスタンスの静的解析を用いてシステムの挙動性の所定の集合を証明するように構成される検証ツール131を備える。静的解析は、アクタの起動状態および通信チャネルの状態を定義した状態行列の構築ならびに行列との積がゼロである自然整数ベクトルの決定を含む。そのようなベクトルの存在は、割当リソースと独立してデータフローシステムの実現可能性を確証する。この解析は、本説明において後により詳細に記載されるはずである。
【0046】
改良インタフェース15は、挙動性の所定の集合に準拠してインスタンスに十分なリソースを割り当て、したがって以降「構成済みインスタンス」と呼ばれるインスタンスを確立するように構成される。リソースを割り当てることは、システム3の実装が構成済みインスタンスに準拠するというような方法で実施される。
【0047】
改良インタフェース15は、したがってインスタンスに対して追加の時間制約を指定するために使用される。改良インタフェース15が同じインスタンスに対して構成される幾つかのインスタンスを指定できることに留意されたい。構成済みインスタンスに対するリソースの割当てを可能にする入力を提供するために、変換ツール19がインスタンスの静的解析の結果を適合させる。
【0048】
適合性試験モジュール17は、構成済みインスタンスに関してデータフローシステム3の実装の挙動の適合性を検証するように構成される。
【0049】
より詳細には、構成済みインスタンスのアクタaiに対して、「このアクタの実装」は、このアクタaiに対する指定された挙動を実施する任意の具体的なエンティティを指す。同じアクタに対して幾つかの実装があり得ることに留意されたい。更には、構成済みインスタンスに対して、「この構成済みインスタンスの実装」は、このインスタンスに対する指定された挙動を実施するのを可能にする具体的な手段と関連した、インスタンスを構成するアクタの実装の任意の集まりを指す。同じ構成済みインスタンスに対して幾つかの実装があり得ることにも留意されたい。その上、構成済みインスタンスの実装に対して、用語「プロット」は、この実装の実行中に発生する一連の有意なイベントを指す。
【0050】
有利には、適合性試験モジュール17は単体171および統合試験ツール173から構成される。単体試験ツール171は、アクタaiの実装の入力チャネル上でデータの作成をシミュレートし、この実装によって消費および作成される量が、全ての制約に準拠することによって、実装されたアクタに対して指定されたものに相当することを検証する。統合試験ツール173は、構成済みインスタンスの期待される挙動に対応する全てのプロットを構築し、提供されたプロットがこの有効な集合に帰属することを保証する。
【0051】
本発明の有利な実施形態によれば、システム3のインスタンスは有理数のデータ消費および排出率を含む。このように、インスタンスは、各アクタaiによってかつその入力および出力チャネルciの各々に対して作成または消費される整数または有理数のデータを含む。
【0052】
この実施形態は、形式モデルでのおよび性質の検証における周波数制約を統合することを可能にし、結果的に、チャネルc
iを通じて通信し合う2つのアクタa
iおよびa
jがこれらの2つのアクタ間の通信データのいかなる損失もなく異なる周波数に従って動作するのを可能にする(
図4の例を参照のこと)。
【0053】
本発明に係る設計および確認するためのツール1は、全ての再構成ならびに全ての周波数、周期およびリソースサイズ設定制約を包含する挙動性の所定の集合の検証を可能にすることによって、データフローシステム3の実現可能性および一貫性を保証する。挙動性のこの所定の集合は以下の4つの性質を含む。
【0054】
第1の性質P1は、データ損失のないアクタ間の通信の実装のために必要とされるリソースが指定されたシステムの周期実行に対して制限されていることを検証する。これは、例えば、データを損失なく記憶するために必要とされるメモリのサイズ設定をすることを可能にする。
【0055】
図2Aは、第1の性質に準拠しないデータフローの一例を示す。この例は、チャネルc
1およびc
2を通じてデータを相互に交換し合う第1および第2のアクタa
1およびa
2を備えるシステムを図示する。第1のアクタa
1は、それが各起動で1つのデータを作成および消費することを指定する。第2のアクタa
2は、それが各起動で2つのデータを作成し、1つを消費することを指定する。しかしながら、第2のアクタa
2の出力チャネルc
2上のデータを記憶するために必要とされるリソースは、これらのアクタの不定数の起動に対して制限できない。このように、この状況では、第1の性質P1は検証されない。
【0056】
第2の性質P2は、第1の性質が疑問視されることなく周波数および/または周期制約に準拠できることを検証する。
【0057】
図2Bは、第2の性質に準拠しないデータフローの一例を示す。この例も、2つのアクタa
1およびa
2を伴うシステムを図示しており、第1のアクタが起動を介して1つのデータを作成し、第2のアクタの各起動によって消費されることになる。周波数制約は、第1のアクタa
1が100Hzで、第2のa
2が10Hzで起動されなければならないようなものである。しかしながら、2つのアクタa
1およびa
2を接続するチャネルc
1上のデータを記憶するために必要とされるリソースは、不定数の起動に対して制限できず、但し周波数制約が除かれれば、それらは制限される。
【0058】
第3の性質P3は、任意の数のアクタ起動に対する相互遮断の非存在を検証する。相互遮断の結果、アクタの集合が循環的にデータを交換し合う状況になり得る。再び
図2Aの例をとると、2つのチャネルc
1およびc
2の一方に初期に存在する1つのデータの不在下では、アクタa
1およびa
2のいずれも起動できない。このように、第3の性質P3は、循環データフローのケースを考慮に入れることを可能にする。
【0059】
第4の性質P4は、全ての指定された再構成に対するシステムの未知の状態の非存在、指定された再構成のいずれにおいても実行しないアクタがシステムにないこと、およびその他の性質のいずれも構成の動的変化によって疑問視されていないことを検証する。
【0060】
図2Cは、第4の性質に準拠しないデータフローの一例を示す。この例は、3つのアクタa
1、a
2およびa
3を伴いかつ2つの可能な再構成に係るシステムを図示する。第1のアクタa
1が起動を介して1つのデータを作成し、第2のアクタa
2の各起動によって消費され、この第2のアクタa
2自体が起動を介して1つのデータを作成し、第3のアクタa
3の各起動によって消費される。第1の構成R
1では、第1および第2のアクタa
1およびa
2だけが実行され、第3のアクタa
3はパスする。第2の構成R
2では、第2および第3のアクタa
2およびa
3だけが実行され、第1のアクタa
1はパスする。そのようなシステムでは、選ばれた再構成モードが依然第1の構成R
1であれば、第2のアクタa
2と第3のアクタa
3との間のチャネルc
2上のデータを記憶するために必要とされるリソースは、未決定数の起動に対して制限されない。逆に、第2の構成R
2が依然選ばれれば、相互遮断がある。最後に、これらのアクタa
1、a
2およびa
3のいずれもいかなる構成においても起動しないように同例が変更されても、同様の状況が生じる。このように、第4の性質P4は、矛盾情報がないことを保証することによって全ての指定された再構成モードに対してシステムの一貫性を検証することを可能にする。
【0061】
現状技術の方法とは逆に、本発明による再構成の概念が表現される方法が4つの性質P1~P4を完全に証明することを可能にすることに留意されたい。
【0062】
図3は、本発明の一実施形態に係る、データフローシステムを設計および検証するための方法を概略的に示す。
【0063】
同じレベルにあるステップが前ステップ後に並列に共に連鎖できることに留意されたい。更には、渦巻線が図示されるステップ(すなわちステップE22、E41~E43およびE52)は、同じインスタンスの種々の構成、同じ構成済みインスタンスの種々の実装、または同じ実装の種々のプロットに対してこのステップを数回適用する可能性を示す。
【0064】
ステップE1は、上に定義されたリアルタイムデータフローシステム3の4つの挙動性P1~P4の全てを証明することができる目的で再構成できるこのシステム3の指定によるインスタンスの生成に関する。
【0065】
システム3のインスタンスは、計算モデルの形式主義を定義する全ての要素を含む。これらの要素には、データを処理するいわゆる汎用アクタおよび再構成を報告しかつ/またはデータを処理する担当であるいわゆるモードアクタを含むアクタai、ajの集合、これらのアクタを共に接続するチャネルci、cjの全て、その入力または出力チャネルの各々に対してアクタごとに作成または消費されるデータの数であり、有理数であるこれらの数の1つだけをチャネルが有する可能性がある、再構成モードの全て、或る汎用またはモードアクタに対する最高周波数制約、或る汎用またはモードアクタに対する最低周波数制約、ならびにシステムの初期状態を含む。
【0066】
ステップE21は、このインスタンスに対する全ての挙動性P1~P4の静的解析を用いた検証に関する。これは、割当リソースと独立してシステムの実現可能性を検証することを可能にする。
【0067】
ステップE22は、このインスタンスに対する時間制約の取得に関する。
【0068】
ステップE3は、前ステップにおける構成済みインスタンスに対する順序制御制約および有効なプロット(すなわち有効な状態の集合)の構築に関する。このステップは、アクタがデータおよび時間制約に従ってそれらの動作を実施しなければならない順序を定義することを可能にする。
【0069】
ステップE41で、構成済みインスタンスの順序制御制約に準拠するためにリソースが割り当てられる。
【0070】
ステップE42で、構成済みインスタンスのアクタの実装が得られる。
【0071】
ステップE43で、構成済みインスタンスの実装が得られる。
【0072】
ステップE51で、ステップE42の実装の準拠が試験される。
【0073】
ステップE52で、ステップE43の実装のプロットが得られる。
【0074】
最後に、ステップE6で、ステップE52で得られたプロットの準拠が試験され、したがって指定されたモデルへの実装の準拠を検証することを可能にする。
【0075】
図3に係る方法は、したがって、全体として上の4つの性質P1~P4を考慮に入れることによって、再構成できるリアルタイムデータフローシステム3の指定、リソースの割当ての構成、およびシステムの実装の挙動の準拠の検証を包含する。
【0076】
図4は、本発明の一実施形態に係るグラフによってモデル化されたデータフローシステムの一例を概略的に示す。
【0077】
グラフは、周波数制約、種々の再構成モードおよび初期消費のために利用可能な初期データでデータフローをモデル化する。円a1~a5は、データに処理を実施するいわゆる汎用アクタを表す。これらの汎用アクタa1~a5は、したがって、データを消費し、計算を行ってデータを変換し、結果を作成するように適合される。三角形a6およびa7は、周波数制約を伴ってデータを作成および消費するいわゆる「クロック」a6または「デッドライン」a7アクタを表す。正方形a8は、再構成を報告する担当のいわゆるモードアクタa8を表す。有向弧c1~c10は、2つのアクタ間のデータフローを各々示す一方向チャネル、およびチャネル上で作成または消費されるデータの量を与える関連数値である。
【0078】
この例によれば、モデル化システム3は、5つの汎用アクタa1~a5、2つの時間アクタa6およびa7(クロックおよびデッドライン)ならびに1つのモードアクタa8から構成される。第1の汎用アクタa1(取得アクタ)が、30Hzでクロックアクタa6によって提供されるデータを取得する。第2の汎用アクタa2(制御アクタ)が、10Hzでアクチュエータアクタa7にコマンドを送信する。コマンドは、全ての可能な再構成において取得アクタa1によって作成されるデータの前処理を実施する第3の汎用アクタa3(前処理アクタ)から構成される再構成可能な処理チェーンの結果に従って決定される。第1の構成(λ1によって示されるモード)では、第4の汎用アクタa4(高速アクタ)が、前処理アクタa3によって前処理されたデータの高速で低品位処理を実施する。第2の再構成(λ2によって示されるモード)では、第5の汎用アクタa5(低速アクタ)が、低速であるが高品位処理を実施する。このように、第1の構成λ1のデータ処理経路は、取得アクタa1を前処理アクタa3に、次いで高速処理アクタa4に、最後に制御アクタa2に接続する経路である。第2の構成λ2は、取得アクタa1を前処理アクタa3に、次いで低速処理アクタa5に、最後に制御アクタa2に接続する経路によって定義される。このように、構成は1つのアクタから別の1つに伝搬し、結果的に、これらの再構成モードでの集中同期は必要とされない。各アクタは、それが動作しなければならない構成モードをその隣に通信することになる。現在の構成の選択は、高品位処理が利用可能であるときに好ましくはそれを使用するモードアクタa8によって実施される。
【0079】
この例によれば、高速処理アクタa4は、それが起動されるたびに、その入力チャネルc3上の1つのデータを消費し(チャネルc3上に「1」によって表される)、その出力チャネルc4上に1つのデータを作成する(チャネルc4上に「1」によって表される)。同じく低速処理アクタa5に関しては、それは、その入力チャネルc5上の1つのデータを消費し、その出力チャネルc6上に1つのデータを作成する。制御アクタa2は、それが起動されるたびに、その第1の入力チャネルc4上のまたはその第2の入力チャネルc6上の(構成モードによる)1つのデータを消費し、その出力チャネルc2上に1つのデータを作成する。前処理アクタa3は、それが起動されるたびに、その第1の入力チャネルc1上の1つのデータおよびその第2の入力チャネルc9上の1つのデータを消費し、その第1の出力チャネルc3上にまたはその第2の出力チャネルc5上に(構成モードによる)1つのデータを作成する。
【0080】
他方で、取得アクタa
1は、その入力チャネルc
2上の有理数のデータを消費し(入力チャネルc
2上に値「1/3」によって表される)、その出力チャネルc
1上に有理数のデータを作成する(出力チャネルc
1上に値「1/3」によって表される)。これは、取得アクタa
1が3回の起動ごとに1つのデータを消費または作成することを意味する。
図4の例は、初期状態では、チャネルc
2(制御アクタa
2と取得アクタa
1との間)上でトークンT1(すなわち1つのデータ)が入手可能であることを示す。次いで、取得アクタa
1は、このチャネルc
2上のこの既存のデータを消費することになり、その出力チャネルc
1(すなわち取得アクタa
1を前処理アクタa
3に接続するチャネルc
1)上に1つのデータを作成することになる。このように、取得アクタa
1は1つのデータを消費し、1つのデータを作成した。他方で、その次の2回の起動にわたって、それはデータの消費もデータの作成もしないことになる。言い換えれば、取得アクタa
1は、3回の起動ごとに1つのデータを消費し、1つのデータを作成する。これは、データのいかなる損失もなく異なる周波数に従って動作している2つのアクタ間でデータを同期させることを可能にする。実際、これによれば、各コマンドのために取得は3回発生し、したがってデータのいかなる損失もなく30Hzで動作する取得アクタa
1と10Hzで動作する制御アクタa
2との間でデータの転送を可能にする。
【0081】
以下では、例えば
図4のシステム3を参照することによって、計算モデルの形式的定義(すなわち形式主義)の必須要素が要約される。この形式主義によれば、データフローの指定は以下の要素F1~F9から構成される。
【0082】
F1:データを処理する汎用アクタa1~a5の集合の他に、データを処理しおよび/または構成モードを選択する全てのモードアクタa6およびa7が定義される。
【0083】
F2:アクタを共に接続するチャネルc1~c10の集合が定義され、各アクタが少なくとも1つの入力または出力チャネルと関連付けられる。
【0084】
F3:その入力または出力チャネルの各々に対して、アクタごとに作成または消費されるデータの数が定義され、有利には、有理数であるこれらの数の1つをチャネルが有する可能性がある。これらの数は、
図4の例のアクタを接続する弧c
1~c
10上の値によって表される。
【0085】
F4:モードの非空集合の各モードアクタa8に関して、モードアクタa8は、その起動の各々に対してこれらのモード(これらのモードはλ1およびλ2と示される)の1つだけを動的に選ぶ担当である。現在の構成の選択は、有利には単一のモードアクタa8によってなされ、この現在の構成は、1つのアクタから別の1つに分散方式で伝搬する。
【0086】
F5:各汎用アクタa
1~a
5に対して、それが実行されるモードの集合、およびそれがパスする全てのその他のモードの黙示の集合が定義される。汎用アクタが実行されるモードの全てが全体システムに共通の公称モードかモードアクタによって選ばれるモードの部分集合かであることに留意されたい。
図4の例では、前処理a3、高速処理a
4および低速処理a
5アクタ以外のアクタの全てが公称モードで実行されており、前処理アクタa
3がモードλ
1およびλ
2で実行され、高速処理アクタa
4がモードλ
1で実行され、低速処理アクタa
5がモードλ
2で実行されることを知っている。
【0087】
F6:種々のモードが与えられると、同じモードアクタによって選ばれたモードの少なくとも1つに各々実行する2つの汎用アクタを接続するチャネルの全てとして、かつモードアクタから始まって消費アクタを通過してこのチャネル上の作成アクタによって終わる繰返しのない経路があるように、フィードバックチャネルの黙示の集合が定義される。
【0088】
F7:或る汎用またはモードアクタに対して最高周波数制約が定義される。それらを表現し得る方法が、周波数が関連付けられるいわゆるクロックアクタa
6によるものである。
図4の例では、取得アクタa
1は30Hzの最高周波数制約を有し、クロックアクタa
6によって、周波数30Hzとして、それらを接続する弧c
7および関連する量のデータで表現される。
【0089】
F8:或る汎用またはモードアクタに対して最低周波数制約が定義される。それらを表現し得る方法が、周波数が関連付けられるいわゆるデッドラインアクタa
7によるものである。
図4の例では、制御アクタa2は10Hzの最低周波数制約を有し、デッドラインアクタa
7によって、周波数10Hzとして、それらを接続する弧c
8および関連する量のデータで表現される。同じアクタを最低および最高周波数において動作するように強いることができ、この場合これが厳密な周波数制約であることに留意されたい。言い換えれば、周波数制約は、最高(毎秒同回数以下)か、最低(毎秒少なくとも同回数)か、厳密(毎秒厳密に同回数)かである。
【0090】
F9:有理数のかつ切り下げたこの有理数に等しい長さの一連のモードのチャネルによって、およびその初期モードの汎用アクタによって構成されるシステムの初期状態。
図4の例では、全てのアクタは初期モードのために公称モードを有し、小円T1およびT2が標記されたチャネルは値「1」の初期状態を有する。もちろん、初期状態は任意の有理数(例えば、2/5、4/3等)によって表現でき、これは、本発明の有利な実施形態に従って作成および消費率が有理数であるという事実から生じる。
【0091】
更には、所与の指定に関して、システムに対する指定された挙動は以下の特性C1~C7を含む。
【0092】
C1:チャネルへの作成ポリシは無閉塞先入れ先出し(FIFO)ポリシである。
【0093】
C2:チャネルからの消費ポリシは閉塞FIFOである。このように、アクタがチャネル上に1つのデータを作成するつもりであるとき、それは消費アクタによって閉塞されないことになる。
【0094】
C3:チャネルは素量のデータ(すなわちトークンT1、T2)を含む。トークンは、所与の瞬間のチャネル上のデータの数を示す任意の単位である。トークンは、全てモードおよび、実行によって作成される有意なデータかデータなしかから形成される。後者のトークンは、有利には作成側または消費側が所与のモードへ移るときに作成されるデータが無いことを表す。有利には、これは、有効データを送信する必要なくタスク間の同期を保持することを可能にする。
【0095】
C4:常に、チャネルの状態は有理数であり、それが含むトークンの整数は切り下げたこの数である。有利には、これは、トークンがどんな瞬間に消費されそうであるかを判定することを可能にする。
図4の例では、最初にチャネルc
2上にトークンT1(すなわち有理数1/1)がある。取得アクタa
1は1/3を消費することになり、これがチャネルc
2の状態を1/1から2/3(すなわち1-1/3)に変えることになり、切り下げると値0である。しかしながら、チャネルc
2の状態は2/3であり、取得アクタa
1が起動されると、それが再び1/3を除くのを可能にし、これがチャネルc
2の状態を2/3から1/3(すなわち2/3-1/3)に変えることになり、切り下げると値0である。最後に、その3回目の起動で、取得アクタa
1は再び1/3を除き、これがチャネルc
2の状態を1/3からゼロに変えることになる。このように、トークンT1は、取得アクタa
1によって3回の起動ごとに消費される。
【0096】
C5:各アクタの原子的起動は(それが実行されるか、それがパスするかに関係なく)、その入力チャネルの各々の状態から指定された有理数を除き、そしてその出力チャネルの各々の状態に指定された有理数を加える。原子的プロセスが明確に定義された始まりと終わりを有する不可分の作成および消費プロセスであることに留意されたい。消費または作成されるトークンの数は、起動前に切り下げたチャネルの状態と起動後に切り下げたチャネルの状態との間の差の絶対値である。
【0097】
C6:モードアクタの各起動において、それは実行されて、それと任意に関連付けられているモードの1つだけを選ぶ。それは、この起動によって選ばれたモードを各作成されるジェトンと関連付ける。この選ばれたモードで潜在的に実行されるであろう、その消費側に対して、および後者に対してだけ、それは各ジェトンと有意なデータを関連付ける。現状技術では、後続要素の起動を防止するために、作成されるデータの量が変化されることに留意されたい。他方で、本発明に係る伝搬モードは、選ばれたモードに従って潜在的に空のトークンを系統的に作成することを可能にしており、後続要素の起動を防止せず、したがって性質(以下を参照のこと)を保持することを可能にする。
【0098】
C7:汎用アクタの各起動前に、その現在モードが、この起動ではトークンが消費されないチャネルは無視して、各チャネルごとに消費されるであろうトークンと関連したモードの集合Lによって判定される。各チャネル上で考慮されるトークン(例えば最後に消費されたもの)は決定論的に選ばれる。考え得る実施形態において、判定するための規則は以下の点(a)-(e)に従って実施できる、
(a):集合Lが空である(すなわちアクタが先行要素を有しない)場合、現在モードは系統的に公称である;
(b):集合が単集合である場合、現在モードはLのこの唯一の要素である;
(c):集合が2つ以上の要素を有し、かつそれが未決定モード(以下を参照のこと)を含む場合、モードは未決定である;
(d):集合が2つ以上の要素を有し、かつアクタが公称モードでのみ実行される場合、現在モードは公称モードである;
(e):集合が2つ以上の要素を有し、かつアクタがモードアクタによって選択される1つまたは複数のモードΛにおいて実行される場合、L∩Λが空であれば、現在モードは変化せず、L∩Λが単集合であれば、現在モードはL∩Λの唯一の要素であり、全てのその他のケースではモードは未決定である。
【0099】
各汎用アクタの起動はその現在モードにおいて行われる。現在モードは、公称モードが関連付けられる、フィードバックチャネル上に作成されるものを除いて、この起動によって作成される全てのトークンと関連付けられる。作成されるトークンと関連したデータは現在モードによって決定される。アクタがその現在モードへ移る場合、作成されるトークンはいかなるデータも含まない。アクタがその現在モードにおいて実行される場合、この選ばれたモードにおいて潜在的に実行されるであろうその消費側、フィードバックチャネルによってそれに接続されるその消費側に対して、および後者に対してだけ、それは、作成される各トークンに有意なデータを関連付ける。その他の消費側の全てに対しては、それは、いかなるデータも関連付けない。
【0100】
アクタが最高周波数制約を有する場合、この周波数より速く2連続起動が起こることはできない。
【0101】
アクタが最低周波数制約を有する場合、この周波数より遅く2連続起動が起こることはできない。
【0102】
以下では、4つの性質P1~P4を証明するための方法が例として与えられる。
【0103】
第1の性質P1:任意のインスタンスに対して第1の性質を証明し得る方法は、データフローのための公知の方法に基づく。しかしながら、本証明は、有理量を考慮に入れることによって傑出している。この証明は以下の2つのステップP11およびP12によって定義される。
【0104】
第1のステップP11:チャネルごとに1行およびアクタごとに1列の、Γと示される行列を構築し、この行列の各入力としては、
e1:アクタが当該チャネルに接続されない場合、値0、
e2:アクタが当該チャネル上で作成側である場合、その各起動に対してチャネルの状態に加えられる数(潜在的に有理数)、
e3:アクタが当該チャネル上で消費側である場合、その各起動に対してチャネルの状態から引かれる数(潜在的に有理数)の反数、ならびに
e4:アクタが当該チャネル上で作成側でも消費側でもある場合、その各起動に対してチャネルの状態に関して加えられるおよび引かれる数(一方が潜在的に有理数)間の差
である。
【0105】
第2のステップP12:Γ.x=0であるように自然整数のベクトルx≠0を見つけることを可能にする連立方程式を解く。そのようなベクトルxを見つけることが第1の性質P1を証明する。このベクトルは次いでその他の性質を証明するために使用される。
【0106】
第2の性質P2:
図4におけるように時間制約が記述される実施形態において、インスタンスに対して第2の性質を検証する能力は、以下の革新的なステップP21~P25に従って発揮できる。
【0107】
第1のステップP21:アクタが最高かつ最低周波数制約を有する場合、それらが等しいことを検証する。
【0108】
第2のステップP22:システムにおける全ての周波数制約の最大公約数ιおよびそれらの最小公倍数πを計算する。
【0109】
第3のステップP23:ベクトルxが与えられると、任意に、ωiと示される周波数制約およびxの要素xiを伴うΓの列iのアクタを選ぶ。
【0110】
第4のステップP24:以下の整数を計算する。
【0111】
【0112】
第5のステップP25:ωiと示される周波数制約およびxの要素xiを伴うΓの列iの各アクタに対して、
【0113】
【0114】
となると検証する。
【0115】
第3の性質P3:第3の性質P3を証明し得る方法は、一般のデータフローのための公知の方法に基づくが、有理量を考慮に入れることによって傑出している。xおよびチャネルの初期状態が与えられると、この方法は、Γの列iの各アクタが少なくともxi回起動されるシステムの記号起動を実施すること、およびこの実行が終了することを保証することから成る。
【0116】
第4の性質P4:第4の性質P4を証明する方法は、本発明の革新的な実施形態に従ってモードおよびデータがトークンと関連付けられてモードを伝搬する方法から生じる。次の方法は、以下のステップP41~P47に従うこの性質P4の検証の非限定例である。
【0117】
第1のステップP41:モードアクタによって選ばれたモードの集合が2つずつ別々である(1つのモードが1つのモードアクタだけによって選ばれる)ことを検証する。
【0118】
第2のステップP42:各汎用アクタと関連したモードの集合がシステムの公称モードを含む単集合かモードアクタによって選ばれるモードの集合の部分集合かであることも検証する。汎用アクタと関連したモードが全て同じモードアクタによって選択されることに留意されたい。
【0119】
第3のステップP43:汎用アクタがモードアクタによって選ばれたものの部分集合である関連モードの集合を有する場合、このモードアクタがこの汎用アクタの直接の先行要素であるか、このアクタの直接の先行要素の少なくとも1つが、この先行要素と関連したモードの集合がこのモードアクタによって選ばれたモードの集合の部分集合であるようであるかを検証する。
【0120】
第4のステップP44:Γの列jの同じモードアクタによって選ばれる少なくとも1つのモードにおいて実行され、かつこのモードアクタから始まり、このモードアクタによって選ばれるモードの少なくとも1つにおいて実行されるアクタだけをパスする経路上にある、Γの列iの全てのアクタに関して、
(a)チャネルの初期状態が与えられると、diと示される初期遅延を、その現在モードが既知であるアクタiの最初のdiの起動に対してなど、計算する。
(b)Γの列jのモードアクタによって選ばれるモードにおいて実行されるか、Γの列jのモードアクタである、Γの列kのアクタを作成側として伴う各入力チャネル(フィードバックチャネルを除く)に対して、pikと示される局所モード変化周期を、
【0121】
【0122】
であるように計算する。
(c)piと示されるモード変化周期を、上で計算した局所周期の最大値であるとして計算する。
【0123】
【0124】
(d)上で計算した任意の局所周期に対して、モード変化周期がこの局所周期の倍数であることを検証する。
【0125】
【0126】
第5のステップP45:xおよびgと示されるxの成分の最大公約数が与えられると、ベクトル
【0127】
【0128】
を計算し、kは自然整数であり、前ステップにおいて考慮したアクタの各々に対して、
【0129】
【0130】
となる。
【0131】
第6のステップP46:モードアクタが各起動でモードを選ぶ方法が、それらが選ぶ全てのモードのラウンドロビン選択であると考えることによって、全てのアクタに対して少なくともyiの起動でデータフローの記号実行を実施する。
【0132】
第7のステップP47:いかなるモードも記号実行において未決定でなかったことを保証する。
【0133】
インスタンスに対する時間制約は以下の要素から構成される。全てのアクタに対する時間予算、全てのアクタに対する初期遅延、持続性か一過性かであると宣言する各アクタと関連した記号、その制約が厳密または緩和であると宣言する最低周波数制約を伴う各アクタと関連した記号、および最低周波数制約を伴う各アクタと関連した初期デッドライン。
【0134】
構成済みインスタンスに対して、指定された挙動は、単一のインスタンスに対して上記したものと同じであるが、以下の制約が加えられる。クロックが、起算日から始まる時間の経過を測定する。任意のアクタの起動の始まりと終わりとの間のどんな経過時間でも、このアクタと関連した予算以下である。その初期遅延が経過する前にアクタの起動は始まらない。一過性アクタの起動の始まりは、常に同じアクタの前の起動の始まり後に起こる。永続性アクタの起動の始まりは、常に同じアクタの前の起動の終わり後に起こる。最低周波数制約を伴うアクタに対して、その起動の各々とデッドラインが関連付けられる。最初の起動に関しては、このデッドラインは初期デッドラインに等しく、以後のものに関しては、それらのデッドラインは、この同じアクタの前の起動のデッドラインに加えて最低周波数の逆数(すなわち最低周期)に等しい。最低周波数制約を伴うアクタの起動の終わりは、常にそのデッドライン前に起こる。最高周波数制約を伴うアクタに対して、その起動の各々と遅延が関連付けられており、最初の起動に関しては、この遅延は初期遅延に等しく、以後のものに関しては、それらの遅延は、この同じアクタの前の起動の遅延に加えて最高周波数の逆数(すなわち最高周期)に等しい。最高周波数制約を伴うアクタの起動の始まりは、常にその遅延後に起こる。
【0135】
順序制御制約(リソースを割り当てる既存の方法論のための入力)の構築の方法は以下のステップを含む。
【0136】
ステップ1:xが与えられると、第jの要素が、iの第jの起動の開始日に対する変数sij、iの第jの起動の終了日に対する変数eij、およびiの第jの起動のデッドラインに対する変数dijによって定義される一連の少なくとも2.xiの要素をΓの列iの各アクタと関連付ける。
【0137】
ステップ2:線形制約の集合を定義するものであり、行列Γおよびチャネルの初期状態に従って、アクタiの第jの起動がチャネルから少なくとも1つのトークンを消費し、この同じトークンがアクタkの第lの起動によって作成される場合、ekl≦sijとなる。永続性アクタiの第jの起動がこの同じアクタの第kの起動に直接続く起動である(すなわちk=j-1)場合、eik≦sijとなる。一過性アクタiの第jの起動がこの同じアクタの第kの起動に直接続く起動である(すなわちk=j-1)場合、sik≦sijとなる。φと示される初期遅延を伴うアクタiの第1の起動に関しては、φ≦si1となる。ωと示される最高周波数制約およびφと示される初期遅延を伴うアクタの第jの起動に関しては、φ+(j-1)/ω≦sijとなる。各変数eijに関しては、eij≦dijとなる。
【0138】
ステップ3:反復的に、変数sijの全てが割り当てられるまで:まだ割り当てられていない各変数sijに対して、かつそれに関する線形制約に関与する全ての変数が割り当てられるように、線形制約によって許可される最小値を割り当てる。この反復に割り当てられる変数sijに対応する各変数eijに対して、アクタiの予算をbと示して、値sij+bをeijに割り当てる。
【0139】
ステップ4:各変数dijに対して、アクタiが、ωと示される最低周波数制約およびδと示される初期デッドラインを有する場合、値δ+(j-1)/ωを割り当てる。
【0140】
ステップ5:各変数eijに対して、アクタiが厳密な最低周波数制約を有する場合、制約eij≦dijに準拠することを保証する。
【0141】
ステップ6:各変数eijに対して、アクタiが緩和最低周波数制約を有する場合、および制約eij≦dijに準拠していない場合、値dijを割り当てる。
【0142】
ステップ7:反復的に、変数dijの全てが割り当てられるまで:まだ割り当てられていない各変数dijに対して、行列Γおよびチャネルの初期状態に従って、アクタiの第jの起動がチャネルに少なくとも1つのトークンを作成し、この同じトークンがアクタkの第lの起動によって消費されるように、全ての変数dklが既に割り当てられている場合、
【0143】
【0144】
を割り当てる。
【0145】
構成済みインスタンスの順序制御制約に準拠したリソースの割当てのために、本方法の上のステップ5が正常に通されれば、各起動の変数sij、dijの他に各アクタの予算bは、実行リソースの割当ておよびトークンの保管のための通信チャネルのサイズ設定に十分な入力である。再構成の管理のために、この情報がモードアクタに利用可能であるという事実が、例えば[3]に記載されている順序制御方法論を使用することを可能にする。加えて、この割当てがこれらのリソースの有限量に実行可能であることが保証される。
【0146】
アクタの実装の準拠を検証するために、各起動の変数sij、dijも、このアクタの予算bと同じく使用される。アクタの実装のための試験環境が、種々のシナリオS1~S6を試験することを可能にする。
【0147】
S1:日付eijに、試験用のこの実装の先行要素iの起動jによるトークンの作成をシミュレートするものであり、これらの起動は試験されるシナリオに依存している。考え得るシナリオの不完全なリストは次の通りである。(a)過少作成:この実装の起動に十分なトークンがないというように起動が選ばれる。(b)厳密作成:この実装の起動のために必要とされる最小数のトークンがあるというように起動が選ばれる。(c)過剰作成:この実装の幾つかの連続起動に十分な数のトークンがあるというように起動が選ばれる。
【0148】
S2:この実装の活動時間を観察する。
【0149】
S3:この実装から生じる作成を観察する。
【0150】
S4:この実装によって消費される量が指定によって提供される量であることを検証するものであり、すなわち上で与えられたシナリオの例に対して、(a)過少作成:この実装は起動されず、何も消費しない。(b)厳密作成:この実装は厳密に1回起動され、各入力チャネル上で指定された量を消費する。(c)過剰作成:この実装は厳密にシナリオによって提供される連続回数起動され、各回各入力チャネル上で指定された量を消費する。
【0151】
S5:この実装によって作成される量が指定によって提供される量であることを検証するものであり、すなわち上で与えられたシナリオの例に対して、(a)過少作成:この実装は起動されず、何も消費しない。(b)厳密作成:この実装は厳密に1回起動され、各出力チャネル上で指定された量を消費する。(c)過剰作成:この実装は厳密にシナリオによって提供される連続回数起動され、各回各出力チャネル上に指定された量を作成する。
【0152】
S6:活動時間がインスタンスの構成に関して正しいことを検証するものであり、すなわち上で与えられたシナリオの例に対して、(a)過少作成:この実装は起動されず、その活動時間はゼロである。(b)厳密作成:この実装は厳密に1回起動され、その活動時間は試験された実装に対応するアクタの時間予算以下であり、かつ対応する変数sijおよびeijによって定義される限度内で生成される。(c)過剰作成:この実装は厳密にシナリオによって提供される連続回数起動され、これらの起動の各々に対して、その活動時間は試験された実装に対応するアクタの時間予算以下であり、かつ対応する変数sijおよびeijによって定義される限度内で生成される。
【0153】
構成済みインスタンスの実装の準拠を検証するために、例えば[4]に記載されているように時限入出力遷移システム(TIOTS)を使用することが可能である。本発明は、入力値に応答して作成されるデータの値を考慮する代わりに、通信チャネルの状態が考慮されるという事実によって差別化される。例えば、アクタがデータとして文字列を含むトークンを作成する場合、現状技術では文字列が観察されるであろうが、他方で本発明では、チャネルにおいて入手可能なトークンの数である、値「1」が観察されることになる。
【0154】
このように、有効なプロットを構築するための方法は次の通りである。[4]に記載されている形式主義でこのアクタの指定された挙動に対応する各アクタのためのオートマトンを構築し、ここでチャネル上で作成/消費される値は、チャネルの状態を示す数値である。次いで、ベクトルxによって記述される周期挙動を観察するように[4]に記載されているようにシステムの記号実行において全ての考え得る経路を評価する。
【0155】
インスタンスの実装の実行のプロットは、実装の実行のオブザーバによって提供できる。プロットの各入力は、この状態の各変更で実装の状態に関する情報を提供する。例えば、構成済みインスタンスの実装のクロックの現在の日付、全てのチャネルに対する消費のために入手可能なトークンの数、および消費のために入手可能なトークンと関連したモード。
【0156】
そのようなプロットが与えられると、[4]に記載されているように、対応するインスタンスの指定された挙動に関して実装の実行の準拠を検証することが可能である。
【0157】
本発明は全てのデータフローシステムに適用される。第1の応用はクリティカルリアルタイム分散システムに関する。特に、1つの機器のリアルタイム搭載システムであり、機器およびその環境の特有の測定値を受信するように、ならびにこの機器の正しい動作のために動作を開始させる結果を送出するように構成される。機器は、陸上、鉄道、航空宇宙または海洋型の自律または非自律乗物であり得る。
【0158】
特に、乗物のデータフローシステムの枠組み内で、有利には本発明に従って、センサおよびプロセッサに異なる周波数でかつ幾つかの構成に従って動作させることが可能である。例えば、乗物のシステムは、歩行者を検出するためのカメラを備えることができる。カメラのサンプリング周波数は、信号を処理することになるマイクロプロセッサのそれと異なることができ、処理は、歩行者を回避するために制動または別の措置を起動させるように十分に早く運転者またはオートマトンに警告するのに十分に高速でなければならない。データの損失のない異なる周波数でのこの消費および作成は、本発明に従ってチャネル上で有理数のデータを使用することのおかげで可能である。更には、例として運転者を伴う車にとって、或る速度から始まって歩行者を検出することが関心を引くと考えることが可能である。このように、歩行者検出処理が或る速度から始まってまたは或る速度範囲にわたって展開し、マイクロプロセッサをこの範囲外では実行リソースを不必要に消費しないようにするというように、異なる再構成モードを使用することが可能である。
【0159】
第2の応用はクリティカルリアルタイムのためのFPGAシステムに関し、FPGAシステムは、処理ユニットを起動させるクロックによって計時されるデータフローであり、データのルーティングは動的に変化できる。
【0160】
第3の応用は、特定の流量制約に従って、および再構成可能なプロセスに従って物体の工業生産のために構成される工業プロセスのシステムに関する。実際、工業生産の方法は、技術的理由で流量制約を伴う、データフローとして見ることができる。更には、本発明は、例えば注文控帳の変化に適応するために、同方法の再構成を可能にする。
【0161】
参考文献
1. X. K. Do、S. LouiseおよびA. Cohen、Transaction Parameterized Dataflow: A model for context-dependent streaming applications、2016 Design, Automation & Test in Europe Conference & Exhibition (DATE)、Dresden、2016、960~965頁
2. O. N. Timo、H. MarchandおよびA. Rollet、Automatic test generation for data-flow reactive systems modeled by variable driven timed automata、Research report HAL-00503000、2010
3. R. HeniaおよびR. Ernst、Scenario Aware Analysis for Complex Event Models and Distributed Systems、28th IEEE International Real-Time Systems Symposium (RTSS 2007)、Tucson、AZ、2007、171~180頁
4. Boutheina Bannour、Jose Escobedo、Christophe Gaston、Pascale Gall、Off-Line Test Case Generation for Timed Symbolic Model-Based Conformance Testing、Brian Nielsen、Carsten Weise、24th International Conference on Testing Software and Systems (ICTSS)、2012年11月、Aalborg、Denmark、Springer、Lecture Notes in Computer Science、LNCS-7641、119~135頁、2012、Testing Software and Systems
【符号の説明】
【0162】
1 ツール
3 データフローシステム
5 コンピュータ
7 マイクロプロセッサ
9 メモリ
11 モデリングインタフェース
13 解析モデル
15 改良インタフェース
17 適合性試験モジュール
19 変換ツール
131 検証ツール
171 単体試験ツール
173 統合試験ツール
ai、aj アクタ
ci、cj 一方向通信チャネル