(57)【要約】  フレームが一緒にトランザクションとしてグループ化されたフレーム・キューイング・システムのフレームについて最悪ケースの応答時間を予測する方法。シリアル・バス・ネットワークに存在するトランザクションをよりよくモデル化する解析を実現するために、トランザクション概念を従来技術のものから再定義して、解析を実行する異なる方式を実現した。本発明に従えば、トランザクション周期は、そこに含まれるフレーム周期よりも長く、フレーム周期のＬＣＭとして定義される。この結果、与えられた優先順位を持つフレームのいくつかのインスタンスが１つのトランザクションで発生し、応答時間を予測するプロセスを変更する。キューイング・システムは、例えば、シリアル・バス・ネットワークのシリアル・バスでよく、解析は、送信キュー・バジェットを処理するように適応される。
2007506312.tif 000002
【特許請求の範囲】
【請求項１】
フレーム・キューイング・システムのフレームに関する最悪ケースの応答時間を予測する方法であって、前記フレームは、固定された優先順位（ｉ）および期待されるフレーム周期（ｐｉ）を有し、異なる優先順位および異なるフレーム周期を有するいくつかのフレームを含むトランザクション（Ｔ）に属しており、
含まれるフレームのフレーム周期の最小公倍数（ＬＣＭ）としてトランザクション周期を定義する工程と、
前記フレームと等しいかそれより高い優先順位（ｊ≦ｉ）を有するトランザクション（Ｔ）のすべてのフレーム・インスタンスについて可能な最も遅い解放時間を表す１組のスタート時点（ｓ）を同定する工程と、
各々のスタート時点（ｓ）に対して、この時点（ｓ）にスタートでき、前記フレームより高い優先順位を有するフレーム系列の最大周期（ｗ）を決定し、前記スタート時点（ｓ）と同じかそれより大きい可能な最も遅い解放時間（ｒｉ，ｋ）を有する次のフレーム・インスタンス（Ｆｉ，ｋ）を同定し、前記系列の最後（ｓ＋ｗ）と前記フレーム・インスタンス（Ｆｉ，ｋ）の到着時間（ａｉ，ｋ）との間の差分（Ｄｉ，ｋ）を計算する工程と、
前記差分（Ｄｉ，ｋ）の最長のものを選んで、フレーム応答時間を決定する工程と、
を含む前記方法。
【請求項２】
請求項１記載の方法であって、前記フレーム・キューイング・システムがＣＡＮなどのシリアル・バス・ネットワーク（１）のノード（２）の受信キュー（７）である前記方法。
【請求項３】
請求項１記載の方法であって、前記フレーム・キューイング・システムがＣＡＮなどのシリアル・バス・ネットワーク（１）のノード（２）の送信キュー（７）である前記方法。
【請求項４】
請求項１記載の方法であって、前記フレーム・キューイング・システムがＣＡＮなどのシリアル・バス・ネットワーク（１）のいくつかのノード（２）を接続するシリアル・バス（３）である前記方法。
【請求項５】
請求項１−４のいずれか１項記載の方法であって、フレーム応答時間が前記差分（Ｄｉ，ｋ）の最長のものとフレーム送信時間（Ｃｉ）との和として決定される前記方法。
【請求項６】
先行する項の任意の１項記載の方法であって、前記スタート時点の組がサブセットに分割され、そのサブセットの各々が１つのフレーム・インスタンス（Ｆｉ，ｋ）と関連付けられ、また前記差分（Ｄｉ，ｋ）が一時に１つのそのようなサブセットのスタート時点について計算される前記方法。
【請求項７】
先行する項の任意の１項記載の方法であって、前記最大周期を計算する工程が、現在の周期（ｗ）を初期値（Ｂ）にセットすることによって、および周期が収束するまで、次の工程、
各トランザクション（Ｔ）から
与えられたトランザクション（Ｔ）と前記スタート時点との間の１組の時間遅れを同定し、この特別な時間遅れを持ったこの特別なトランザクションからの寄与（ｉ（Ｔ））を決定し、最大の寄与を選択する（Ｉ（Ｔ）＝ｍａｘ（ｉ（Ｔ）））工程によって最大寄与（Ｉ（Ｔ））を決定する工程と、
すべてのそのような最大寄与の和（ΣＩ（Ｔ））を含む更新された時間長（ｗｎ）を決定する工程と、
現在の時間長（ｗ）を更新された時間長（ｗｎ）で置き換える工程と、
を繰り返すことによって実行される前記方法。
【請求項８】
請求項７記載の方法であって、前記初期値（Ｂ）が前記フレームよりも低い優先順位（ｊ＞ｉ）を有するフレームの可能な最長の送信時間である前記方法。
【請求項９】
請求項８記載の方法であって、前記初期値（Ｂ）が各々の更新された時間長（ｗｎ）に定数項として含まれる前記方法。
【請求項１０】
請求項７−９記載の方法であって、各々の更新された時間長（ｗｎ）に誤差項が含まれる前記方法。
【請求項１１】
請求項４に依存するとき、請求項７−１０のいずれか１項記載の方法であって、
送信キューは、与えられた時間内に前記シリアル・バスに限られた数（ｂＢ）のフレームを送信するように構成され、
同じ送信キューから発するフレームは、バッチと呼ばれ、
最大寄与（Ｉ（Ｔ））を決定する工程は、一時に１つのバッチについて実行され、更に、
対応する送信キューが現在の時間長（ｗ）内に送信する最大数のフレームの送信時間（ｌｉｍｉｔ（ｗ））を決定する工程と、
前記最大寄与（Ｉ（Ｔ））を前記送信時間に制限する（ｌｉｍｉｔ（ｗ））工程と、
を含む前記方法。
【請求項１２】
コンピュータ・プロセッサによって実行されるとき、先行する請求項のいずれか１項記載の方法を実行するように適応したソフトウエア・モジュール。
【請求項１３】
請求項１２項記載のソフトウエア・モジュールを含むフレーム・コンパイラ。
【発明の詳細な説明】
【技術分野】
【０００１】
（技術分野）
本発明は、ＣＡＮ等のシリアル・バス・ネットワークのフレーム・キューイング・システムにおいて、優先順位を固定したフレームの最悪ケースの応答時間を予測する方法に関する。
【背景技術】
【０００２】
（背景）
多くの応用において、シリアル・バス・ネットワークは、デジタル・デバイス間の通信のために使用される。一例は、車のＣＡＮネットワークである。更に、これらのデバイス間の通信には、特別なタイミングの要求が伴うのが普通であり、１つの事象が発生する時刻から、これに対応する作用が実行されるまでの最大遅延が指定される。例えば、ネットワークがいくつかの他のタスク（エンジン制御、送信制御など）によって占有されている場合であっても、センサ信号に対して自動ブレーキング・システム（ＡＢＳ）が直ちに応答することは当然のことと理解されている。
【０００３】
そのようなタイミング要求は、フレームに関する最大応答時間、すなわちフレーム送信要求の到着とこの同じフレームの送信完了との最大時間間隔と言い換えてもよい。
【０００４】
従って、そのようなネットワークを設計する場合、重要なことは、このタイミング要求のなかでメッセージ（フレーム）の送信を保証できることである。そのような保証を可能とするように、ネットワークは、ソフトウエア設計ツールを用いて修正され、最大応答時間が予測される。もしネットワークが現在の環境において遅すぎると判断されれば、再設計又は、もし可能であればネットワーク・バスの帯域幅の改善が必要となる。
【０００５】
シリアル・バスで優先順位を指定しフレームの分布を処理する仕組みは、スケジューリングと呼ばれ、例えば、集中型のコンピュータ処理システムのタスク・スケジューリングと似ている。上で述べた設計ツールは、応答時間解析、すなわち要求（例えば、シリアル・バスへフレームを送信する要求）がなされてからこれが処理されるまでの遅延を数学的に決定する方法に基づいている。
【０００６】
現在処理されているタスク又はフレームを新しい要求によって中断できるようにするアルゴリズムをプリエンプティブ・スケジューリング・アルゴリズムと呼ぶ。新しい要求を処理する前に現在のタスク又はフレームを完了させるようにするアルゴリズムをノンプリエンプティブと呼ぶ。
【０００７】
プリエンプティブ・スケジューリングのスケジューリング解析の一例は、１９８６年１０月発行のＢＣＳ  Ｃｏｍｐｕｔｅｒ  Ｊｏｕｒｎａｌ誌、第２９巻、第５号、ページ３９０−３９５に記載されたＭ．ＪｏｓｅｐｈおよびＰ．Ｐａｎｄｙａ著の論文「Ｆｉｎｄｉｎｇ  ｒｅｓｐｏｎｓｅ  ｔｉｍｅｓ  ｉｎ  ａ  ｒｅａｌ  ｔｉｍｅ  ｓｙｓｔｅｍ」に与えられる。この解析は、タスクの最悪ケースの応答時間は、スケジューリング・プロセスにすべての種類の要求が同時に入力されるときに発生する、とする仮定に基づく。
【０００８】
しかし、与えられた要求群がオフセット制約を有することがしばしばある。すなわち、異なる種類の要求は、互いに一定のオフセットを持たせて実行されるように制約を受ける。従って、同時に発生する要求という仮定は、望ましくない予測を与える。
【０００９】
１９９４年にヨーク大学のコンピュータ・サイエンス学部からＹＣＳ報告第２２１号として出版された、Ｋｅｎ  Ｔｉｎｄｅｌｌ著の論文「Ａｄｄｉｎｇ  ｔｉｍｅ−ｏｆｆｓｅｔｓ  ｔｏ  ｓｃｈｅｄｕｌａｂｉｌｉｔｙ  ａｎａｌｙｓｉｓ」は、そのようなオフセットを許容するプロセッサでのタスクに関するスケジューリング解析について述べている。ここで、相関のある時間依存性を有するタスク群は、いわゆるトランザクションに一緒にグループ化される。
【００１０】
この方式は、予測の精度を高め、悲観さの程度を低減するものの、各々のタスクは、対応するトランザクション周期の整数倍となる周期を持たされることになる。しかし、シリアル・バスのフレームについて考えると、フレーム周期は、フレーム処理周期の倍数になるとしか保証できない。タスクのオフセットがトランザクション周期よりも短くなるように制限されるため、このことは、この方法の応用に厳しい制限を課すことになる。
【００１１】
従って、上で述べた従来技術にもかかわらず、既知のスケジューリング解析モデルは、デジタル・ネットワークのシリアル・バスのフレーム応答時間の正確な予測ができない。
【００１２】
この結果、ＣＡＮネットワークなどのシリアル・バス・ネットワークで利用可能なコンピュータ・モデルは、一般に、悲観的に過ぎる。この過大に悲観的な近似のせいで、不必要な再設計や、不必要な帯域幅の導入などが行われている。
【００１３】
更に、シリアル・バス・ネットワークのノードは、与えられた数のフレームだけしかアービトレーション・プロセスに入力できないように制限される。一般にノード・バジェットと呼ばれるこの制約は、ノード・プロセッサがフレームのスケジューリングおよび送信から離れて他のタスクを処理できるようにするために課されるものである。これらのバジェットは、従来のスケジューリング解析では考慮されなかった。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
（発明の概要）
本発明の１つの目的は、従って、シリアル・バス・ネットワークのフレームの配信時間を推定するより正確な方法を提供することであり、更に従来技術の方法の欠点の少なくともいくつかを克服することである。
【課題を解決するための手段】
【００１５】
この目的およびその他の目的は、導入のところで述べた種類の方法によって達成される。この方法は、含まれるフレームのフレーム周期の最小公倍数（ＬＣＭ）としてトランザクション周期を定義するステップ、前記フレームと同じかそれよりも高い優先順位を有するトランザクション中のすべてのフレームについて可能性の最も遅い解放時間を表すスタート時点の組を同定するステップ、各々のスタート時点（ｓ）について、このスタート時点でスタートすることができ、前記フレームと同じかそれよりも高い優先順位を有するフレーム系列の最大周期を決定し、このスタート時点と同じかそれよりも大きい可能な最も遅い解放時間を有する次のフレーム・インスタンスを同定し、前記系列の最後と前記フレーム・インスタンスの到着時間との差分を計算するステップおよび前記差分の最長のものを選択することによってフレーム応答時間を決定するステップを含む。
【００１６】
シリアル・バス・ネットワークに存在するトランザクションをよりよくモデル化する解析を実現するために、トランザクションの概念を従来技術のものから再定義した結果、解析を実行するときに異なるアプローチを取ることになった。本発明に従えば、トランザクション周期は、そこに含まれるフレーム周期よりも長く、フレーム周期のＬＣＭとして定義される。この結果、与えられた優先順位の１つのフレームのいくつかのインスタンスが１つのトランザクションで発生し、このことが応答時間推定プロセスを変更する。
【００１７】
従来の推定は、１つのフレームの１つの特別なインスタンスに基づくのであるが、本発明に従う方法は、トランザクションのすべてのインスタンスを考慮する。
【００１８】
シリアル・バス・ネットワークの状態に合わせて従来技術の応答時間解析方式を調節することによって、本発明に従う方法は、処理の異なる段階でフレーム応答時間のより正確な予測を与え、ネットワークのより効率的な活用を可能にする。
【００１９】
キューイング・システムは、例えば、シリアル・バス・ネットワークのシリアル・バスでよく、あるいは、このバスに接続された送信又は受信キューでよい。システム全体の応答時間解析では、アプリケーションからアプリケーションへの応答時間に対するいくつかの異なる要因について考慮する必要がある。
【００２０】
フレーム応答時間を決定するステップは、前記差分の最大値とフレーム送信時間との和を計算する工程を含むことができる。
【００２１】
１つの実施の形態に従えば、スタート時点の組は、各々が１つのフレーム・インスタンスに付随するサブセットに分割され、一時にこのサブセットの１つのスタート時点について前記差分が計算される。このことによって、少し異なる実施方法が実現するが、最後の結果は不変である。
【００２２】
前記最大の周期を計算するステップは、現在の周期を初期値にセットし、周期が収束するまで次のステップを反復することによって実行される。すなわち、与えられたトランザクションと前記スタート時点との時間遅れの組を同定することによって各トランザクションからの最大寄与を決定し、この特別な時間遅れを伴うこの特別なトランザクションからの寄与を決定し、最大の寄与を選択するステップ、これらすべての最大寄与の合計を含む更新された周期を決定するステップ、および現在の周期を更新された周期で置き換えるステップである。
【００２３】
これは、与えられた時点でスタートする最長のビジー周期を見出すという非常に困難な解析問題に対する効率的な数値的解法を提供する。
【００２４】
初期値は、好ましくは、前記フレームより低い優先順位を有するフレームの可能な最長の送信時間にセットされる。これは、対象のフレームの前に解放される低優先順位のフレームによって引き起こされる、可能性のある最長遅延を表す。この遅延は、システムのノンプリエンプティブな性質によって生ずる。更に、この遅延は、各々の更新された周期の中に定数項として含めることができ、推定をより正確なものとする。
【００２５】
好適な実施の形態に従えば、各々の更新された周期の中に、誤差項も１つの項として含まれる。誤差項は、シリアル・バスの送信エラーの最も可能性の高い周期を表し、典型的には、現在のビジー周期の時間長に依存する。従って、誤差項は、各々の反復について再計算される。
【００２６】
１つの実施の形態に従えば、各送信キューが与えられた時間内に前記シリアル・バスへ限られた数のフレームを送信するように構成されたシリアル・バスの応答時間決定に関連して、同じ送信キューから発するフレームは、バッチと呼ばれ、また最大の寄与を決定するステップは、一時に１つのバッチについて実行され、更に、対応する送信キューが現在の周期内に送信する最大数のフレームの送信時間を決定するステップと、前記送信時間に対する前記最大寄与（Ｉ（Ｔ））を制限するステップとを含む。
【００２７】
この実施の形態は、本発明に従う方法をバジェット（ｂｕｄｇｅｔｓ）を処理するように修正するが、これは、例えばある種のＣＡＮシステムの重要な特徴である。
【００２８】
（詳細な説明）
以下の説明では、フレームというのは、同じ固定された優先順位を有するフレームのクラスを意味する。キューイング・システムの個々のフレームは、この代わりにフレーム・インスタンスと呼ばれる。
【００２９】
到着時間というのは、フレーム・インスタンスが概念的に生成される時点であり、また解放時間は、このフレーム・インスタンスが実際にキューイング・システムのアービトレーション・プロセス（ａｒｂｉｔｒａｔｉｏｎ  ｐｒｏｃｅｓｓ）に入る時点を意味する。完璧なシステムにおいては、これらの時刻は、一致するが、実際には、遅延が存在し、それは、解放ジッタと呼ばれる。インスタンスの可能な最も遅い解放時間というのは、到着時間に可能な最大のジッタを加えたものである。
【００３０】
フレーム・インスタンスは、周期的に到着すると期待され、これらの到着間の期待周期をフレーム周期と呼ぶ。散発フレーム、すなわち周期的な性質を持たないフレームは、２つの散発的な到着間で最も短い時間と等しい周期を有するものとして扱われる。
【００３１】
解放時間から、送信時間はそのフレームの送信を完了することを要求される。これは、フレーム本体に含まれるデータ量に依存する。ＣＡＮのようなノンプリエンプティブ・システムでは、フレームは送信が開始されたあとで中断されることはない。
【００３２】
共通の時間関係を共有するいくつかのフレームは、１つのトランザクションとして一緒にグループ化される。ここで、各フレームは、トランザクションのスタートに対してオフセットを以って関連付けられる。トランザクションは、トランザクション周期という周期性を有し、各トランザクションの発生は、トランザクション・インバケーション（ｉｎｖｏｃａｔｉｏｎ）と呼ばれる。共通の時間関係を有するすべてのフレームが同じトランザクションにグループ化される必要はないことに注目される。実際、本発明の好適な実施の形態に従えば、対象のフレームをそのトランザクションのうちで最も優先順位の低いフレームとして定義することが有利な場合もある。このことは、優先順位の低いフレームを別のトランザクションにグループ化することによって実現できる。
【００３３】
散発フレームは、他のフレームに対して時間関係を持たないため、それ自身で１つのトランザクションを構成する。このような散発トランザクションは、２つの散発的な到着間の最も短い時間に等しい周期を有するものとして扱われる。
【００３４】
優先順位ｉを有する解放されたフレーム・インスタンスがキューイング・システムによって送信される前に、最も高い優先順位ｊ＜ｉを有する任意のフレームの送信が完了している必要がある（より高い優先順位を低い指数で表現することに注意）。バスがこのようなフレームで占有される期間をレベルｉ−１のビジー周期と呼ぶ。フレーム・インスタンスの到着とこのインスタンスの送信完了との間の遅延を応答時間と呼ぶ。
【実施例】
【００３５】
図１は、本発明を応用できるネットワーク１の例を示す。ネットワーク１は、フレーム４に含まれる情報を運ぶシリアル・バス３によって接続された複数のノード２を含む。このようなネットワークの一例は、ＣＡＮ、コントローラ・エリア・ネットワークである。これは、自動車および制御応用で広く利用されるようになった簡単な通信標準である。ＣＡＮ標準は、１９９１年にＳｔｕｔｔｇａｒｔのＲｏｂｅｒｔ  Ｂｏｓｃｈ  ＧｍｂＨから発表された「ＣＡＮ仕様書第２．０版」に詳細に述べられている。
【００３６】
各ノード２は、ノード・コントローラ５、送信キュー６および受信キュー７を含む。送信準備のできたフレームは割当てられた送信キューに挿入され、送信キューは、フレームの優先順位によって指令される。ノード・コントローラは、フレーム処理ルーチンを呼び出すことで、送信キューに待機しているフレームをシリアル・バスに置く。このような呼出しの時間長を限られたものに保証するために、すべての送信キューは、バジェット、すなわち、１つのフレーム処理呼出しに含めることのできるフレーム・インスタンスの最大数を有する。フレーム処理呼出し間の期間は、フレーム処理周期と呼ばれる。
【００３７】
フレーム処理ルーチンの呼出しは、周期的に行われ、そのたびに、送信キュー・バジェットで許される個数のフレームが（優先順位に従って）キューから取り出されて、コントローラにコピーされ、送信される。いくつかのシリアル・バス・システム、例えば、Ｖｏｌｃａｎｏ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  ＡＢによって実施されるＣＡＮでは、１つのノード・コントローラに複数のキューが割り当てられるが、１つのフレームは、１つの送信キューにしか割り当てることができない。
【００３８】
この状況は、受信ノード側でも同様である。受信コントローラによって受信されたフレームは、ローカルの受信キューに挿入されて、フレーム処理ルーチンへの呼出しが周期的に行われる。そのたびに、受信キュー・バジェットで許される個数のフレームが受信キューから取り出され、処理される。
【００３９】
ＣＡＮシステム、および類似のタイプのシリアル・バス・ネットワークのノードは、同期しない。これは、同じノードから、もしノードがいくつかの送信キューを有していれば同じ送信キューから、発するフレーム間には、異なるフレーム間に予め定められた時間関係（オフセット、上記を参照）のみが存在することを意味する。従って、１つのトランザクションのフレームは、すべて同じ送信キューから発する。１つの送信キューからのトランザクションをすべて集めたものをバッチ（ｂａｔｃｈ）と呼ぶ。従って、特定のバジェットは、常に１つの特別なバッチに関連付けられることになる。
【００４０】
ＣＡＮは、２つ以上のフレームが送信準備できたときにバス上の競争を解決するためにアービトレーション・プロトコルを使用する。アービトレーション・プロトコルは、次のように働く。すなわち、各フレーム４は、１１又は２９ビットのユニークなアービトレーション・フィールドでスタートする。もしＣＡＮコントローラがゼロを送信すれば、他のコントローラが何を送信してもゼロを送り返す。もしＣＡＮコントローラが１を送信すれば、バスは、ゼロを送信する他のコントローラがない場合にだけ１を送り返す。
【００４１】
アービトレーション・プロトコルが始動すると、コントローラは、最上位ビットで始まるコントローラに待機している最優先のフレームのアービトレーション・フィールドの送信を開始する。送信される各ビットについて、コントローラは、信号がバスに沿って伝搬するのを待って、バスの値を読む。もしコントローラが１を送信して０を受信すると、これは、別のコントローラがアービトレーション・フィールドにより小さい値を符号化したフレームを送信しようとしていることを意味するため、コントローラは、その競争から下りて送信を中止する。アービトレーション・フィールドの最後のビットが送信されたあとでは、アービトレーション・フィールドがユニークであるため、まだ送信を続けているコントローラが１つ残ることがある。このように、アービトレーション・フィールドの値は、優先順位に等しく、小さい値は、高い優先順位を意味する。
【００４２】
Ｖｏｌｃａｎｏ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  ＡＢによって提供されるミドルウエアは、アプリケーション・プログラマに対するインタフェースを提供する。これは、完全に信号に基づくもので、信号が書き込まれたときに、その新しい値が所定の保証された時間内にシステム全体に配信されることを保証する。
【００４３】
Ｖｏｌｃａｎｏ  Ｎｅｔｗｏｒｋ  Ａｒｃｈｉｔｅｃｔ（ＶＮＡ：ヴォルカノ  ネットワーク  アーキテクト）と呼ばれるオフラインのソフトウエア・モジュールによって、システム・デザイナは、機能を構築する信号を定義し、これらの信号に対するタイミング制約を指定することができる。フレーム・コンパイラと呼ばれる別のモジュールは、異なる信号のタイミング要求に基づいてネットワーク構成をコンパイルするように適応している。このプロセスは、信号をフレームにパックし、周期、優先順位およびオフセットのようなパラメータを割り当てることを含む。応答時間解析は、この構成が指定された制約を満たすことを実証するためにこのプロセスの中で実行される。
【００４４】
ＣＡＮバス自身によって引き起こされる応答時間に加えて、終了から終了まで（すなわち、アプリケーションからアプリケーションまで）の応答時間は、このように１つのフレームが送信および受信キューのなかで待機できる時間に対応する２つの付加的な部分を含む。図２は、このプロセスを示す。最初に、データ（アプリケーションから発する信号）が送信される。すなわち、シリアル・バスへ送信されるはずのフレームに配置される。このフレームは、送信キューに置かれ、一定の時間Ｄ１のあとで、このフレームはフレーム処理呼出しに含められ、バス・スケジューリング・プロセス（アービトレーション）に入る。フレームがバスへ送信されるために要する時間Ｄ２が上で述べた応答時間である。フレームは、次に、一定の時間Ｄ３を受信キューで過ごし、そのあとで、最終的に受信アプリケーションにデータを通信するフレーム処理呼出しに含められる。
【００４５】
フレーム・コンパイラによって実行されるプロセスの一部のフロー・チャートを図３に示す。最初に、工程Ｓ５１で、現在利用可能なデータに基づいて周期およびオフセットが決められる。次に、引き続く３つの工程（Ｓ５２−Ｓ５４）で、送信キュー遅延、バス応答時間および受信キュー遅延がそれぞれ計算される。工程Ｓ５５では、この結果が解析されて、この結果が更に反復を施すことで改善するかどうか判断される。この判断に基づいて、プログラム制御は、工程Ｓ５１に戻されるか、あるいは、プロセスは、終了する。実際的な実施では、各サブセットが特別な動作モードに関連付けられるようになったフレームの異なるサブセットについて、これらの計算を工程Ｓ５２−Ｓ５４で実行することが望ましい。
【００４６】
次の説明は、シリアル・バスの応答時間に焦点を当てて行われるが、図２の３つの遅延Ｄ１、Ｄ２およびＤ３は、すべて本質的に同じ方法に従って決定することができる。ここで、１つの部分の応答時間は、次のもののジッタである。しかし、上で述べたバジェットの効果は、バス応答時間Ｄ２を決定するときにのみ考慮する必要があることに注目される。
【００４７】
図４は、優先順位ｉ＞ｊ＞ｇと、周期ｐｉ、ｐｊおよびｐｇを有する３つのフレームＦｉ、ＦｊおよびＦｇを示す。フレームＦｊとＦｇは、トランザクションの始まりに対するオフセットＯｊとＯｇを有するが、これらは、この場合、フレームＦｉの到着に一致する。本発明に従えば、これらのフレームを含むトランザクションＴは、３つのフレーム周期の最小公倍数、ｐＴ＝ＬＣＭ（ｐｉ，ｐｊ，ｐｇ）に等しい周期を有するように定義されるため、各トランザクション・インバケーションは同一である。１つのフレームＦｉ，ｋの各インスタンスｋは、２つのつながった矢印で示されており、最初の矢印は、インスタンスの到着時間ａｉ，ｋを示し、第２のものは、可能な最も遅い解放時間ｒｉ，ｋを示している。これらの矢印間の時間がジッタＪｉである。
【００４８】
優先順位ｉを有するフレームのインスタンスｋの応答時間Ｒｉ，ｋを決定するために、このインスタンスについてレベルｉ−１のビジー周期（ｗ）を決定しなければならない。応答時間は、次式で与えられる。
【００４９】
［数１］
Ｒｉ，ｋ＝βｉ−１，ｋ＋ｗ−ａｉ，ｋ＋Ｃｉ＝Ｄｉ，ｋ＋Ｃｉ          式１
【００５０】
ここで、βｉ−１，ｋは、インスタンスｋに関するレベルｉ−１のビジー周期ｗのスタート、ａｉ，ｋはフレームの到着時間、Ｃｉはフレームの送信時間である。このことは、図５に示されている。
【００５１】
式１に従って最悪ケースの応答時間を決定するプロセスについて、図６−８を参照しながら説明する。
【００５２】
まず、候補となるスタート時点の組が工程Ｓ２（図６）で決定される。明らかなように、最悪ケースのレベルｉ−１のビジー周期は、優先順位ｊ≦ｉ（同じかより高い優先順位）を持つ１つのフレーム・インスタンスの可能な最も遅い解放時間の１つでスタートしなければならない。図４に示されたトランザクションでは、これらのスタート時点候補は、ｒｉ，１−ｒｉ，４、ｒｊ，１−ｒｊ，３およびｒｇ，１−ｒｇ，６と表記されている。
【００５３】
これらのスタート時点ｓの各々について、対応する最大レベルｉ−１のビジー周期ｗの長さが決められ（工程Ｓ３）、対応するスタート時点ｓ（ｒｉ,ｋ≧ｓ）と同時又はそのあとで、可能な最も遅い解放時間ｒｉ，ｋを有するフレーム・インスタンスｋが同定される（工程Ｓ４）。図４で、時点ｒｉ，２、ｒｊ，１、ｒｇ，１およびｒｇ，２は、インスタンス２に関連し、ｒｉ，３、ｒｊ，２およびｒｇ，３は、インスタンス３に関連し、ｒｉ，４、ｒｇ，４およびｒｇ，５は、インスタンス４に関連し、またｒｉ，１、ｒｊ，３およびｒｇ，６はインスタンス１に関連する。
【００５４】
原理的に、ｒｊ，３およびｒｇ，６は、次のトランザクション・インバケーションのインスタンス１に関連するが、上で行ったトランザクション周期の定義に従って、スタート時点とインスタンスとの関連付けは、同じトランザクションに「循環（ラップ・アラウンド）」することができる。式１は、ビジー周期がフレーム・インスタンスの最も遅い解放の前にスタートすることを仮定しているので、当業者は、この場合に、ビジー周期βｉ−１，ｋの正確なスタートが実際には、ｒｊ，３又はｒｇ，６からトランザクション周期ｐＴを差し引いた時点であることを理解されよう。
【００５５】
式１の第１項である、ｓ＋ｗとａｉ，ｋの差分Ｄｉ，ｋは、工程Ｓ５で計算され、すべてのスタート時点について工程Ｓ３からＳ５が繰り返される（工程Ｓ６）。工程Ｓ７では、計算された差分の最大のものを選び、フレーム送信時間を加えることによって、最悪ケースの応答時間Ｒｉが次のように計算される。
【００５６】
［数２］
Ｒｉ＝ｍａｘ（Ｄｉ，ｋ）＋Ｃｉ
【００５７】
全く等価であるが別の方法が図７に示されている。ここで、工程Ｓ１１からＳ１６が図６の工程Ｓ２からＳ６に置き換わる。ここで、トランザクションのフレーム・インスタンスがまず決定され（工程Ｓ１１）、次にこのインスタンスに関連するスタート時点候補の組が決定される（工程Ｓ１２）。この組は、もちろん、工程Ｓ２の完全な組のサブセットである。工程Ｓ１３からＳ１５は、工程Ｓ３、Ｓ５およびＳ６に対応し、工程Ｓ４は、インスタンスが既知であるため不要である。次に、工程Ｓ１６では、各インスタンスについて工程Ｓ１２からＳ１５を繰り返す必要がある。
【００５８】
最大のビジー周期の長さを決定する工程（Ｓ３およびＳ１３）については、図８を参照しながらより詳細に説明する。ここに説明するルーチンは、入力変数ｉ（フレーム優先順位）とｓ（対象となるスタート時点）で呼び出される。
【００５９】
最初に、工程Ｓ２１で、時間長ｗの初期値が選ばれる。この値は、バスが低優先順位のフレームによってブロックされる期間であるブロッキング因子Ｂに対応し、優先順位ｊ＞ｉを有するフレームに関する最大送信時間に等しい。このブロッキング因子が非実時間のフレーム（解析の一部ではない）からも生ずること、そのためシリアル・バスの可能な最大の送信時間にセットすべきであることに注目される。典型的なＣＡＮバスでは、これは、８バイト・フレームの送信時間である。
【００６０】
次に、特別なトランザクションＴとビジー周期のスタート時点ｓとの間の時間遅れの候補値の組が工程Ｓ２２で同定される。上のスタート時点に関する状況と同様に、もしスタート時点ｓが、トランザクション中で優先順位ｊ＜ｉを持つ可能な最も遅い解放時間において発生すれば、トランザクションは、ビジー周期に対して最も大きい影響を与えるものとなるであろうことを示すことができる。
【００６１】
次に、工程Ｓ２３からＳ２６において、この特別なトランザクションからビジー周期ｗの長さへの寄与因子ｉ（Ｔ）が各時間遅れの候補値について決定される。最初に（工程Ｓ２３およびＳ２４）、トランザクションＴに属し優先順位ｊ＜ｉを持ついくつのフレームが時間長ｗのビジー周期内に解放されるかが決定される。ビジー周期内にいくつかのトランザクション・インバケーションが生じ得ることに注目される。
【００６２】
工程Ｓ２５では、すべての解放されたフレーム（優先順位ｊ＜ｉ）が加算されて寄与因子ｉ（Ｔ）が得られ、このプロセスが組のすべての時間遅れについて繰り返される（工程Ｓ２６）。トランザクションからの可能な最大の寄与Ｉ（Ｔ）が工程Ｓ２７で選ばれて、すべてのトランザクションについて工程Ｓ２２からＳ２７が繰り返される（工程Ｓ２８）。
【００６３】
対象のフレームが属するトランザクションに対しても工程Ｓ２２からＳ２８が実行されることに注目される。しかし、この特別な場合には、考えうる時間遅れは１つしか存在しない（スタート時点ｓは、トランザクションで固定される）ので、工程Ｓ２３およびＳ２５は、一度だけ繰り返される。
【００６４】
工程Ｓ２９で、時間長ｗｎに対する新しい値がｗｎ＝Ｂ＋ΣＩ（Ｔ）として決定され、この新しい値ｗｎが現在の時間長ｗと工程Ｓ３０で比較される。もしこれらが等しければ、このプロセスは、工程Ｓ３２で終了して、プログラム制御は、工程Ｓ４又はＳ１４に戻る。もしそうでなければ、ｗは、ｗｎで置き換えられて、工程Ｓ２２からＳ３０が繰り返される（工程Ｓ３１）。工程Ｓ３０からＳ３２は、時間長ｗが収束するまでのプロセスの反復に対応する。
【００６５】
ｗｎとｗを比較するとき、１ビットをシリアル・バスへ送信するために要する時間ＴＢＩＴよりも短い差分は、考慮しない。実際、本方法は、整数（浮動数の代わりに）のみを使用して、各整数きざみがＴＢＩＴを表すようにすることで有利に実施される。
【００６６】
推定に対する送信エラーの影響を処理するために、ｗｎに第３項Ｅ（ｗ＋Ｃｉ）を含めることができる。これは、時間ｗ＋Ｃｉ内にバスで発生するすべてのタイプのエラーに要する時間を表す。当業者は、Ｅを推定するためにいくつも方法があることを理解する。
【００６７】
上で述べたプロセスで、反復の各々は、現在の値ｗに基づいている。これの代わりに、工程Ｓ２３での決定は、トランザクションごとに更新される新しい時間長ｗｎに基づくようにすることができる。このような更新は、特別なトランザクションからの寄与Ｉ（Ｔ）が決定される工程Ｓ２７の直後にｗｎ＝ｗｎ＋Ｉ（Ｔ）を計算することを含む。同時に、このトランザクションから先に反復された寄与は、ｗｎから低減しているはずで、これは、Ｉ（Ｔ）が更新される工程Ｓ２７の直前にｗｎ＝ｗｎ−Ｉ（Ｔ）を計算することで行うことができる。
【００６８】
上の変形は、工程Ｓ２１での別の初期化を要求するものである。すなわち、新しい間隔値ｗｎがＢにセットされ、最大の寄与Ｉの組がゼロにセットされる。
【００６９】
更なる改善版として、工程Ｓ２３で使用されるビジー周期の時間長は、現在調べられているトランザクションからの寄与について補償することができる。しかし、先の反復で計算された寄与Ｉ（Ｔ）を単純に差し引くことは、楽観的に過ぎるビジー周期を与える危険性が高いことに注目しなければならない。この代わりに、もっと複雑な補償が必要である。
【００７０】
図９は、バジェット効果を処理し、それによって最悪ケースの応答時間を短縮するために、図８のプロセスの工程Ｓ２８及びＳ２９を置換するシーケンスを示す。
【００７１】
図８の工程Ｓ２８に置き換わる工程Ｓ４１は、１つのバッチのすべてのトランザクションについて工程Ｓ２２からＳ２６を繰り返す。次に、工程Ｓ４２では、このバッチからの合計の寄与（ＩＢ）に関する限度が次のように決定される。まず、現在のビジー周期ｗ内に送信できるフレームの最大数ｎＢが次のように決定される。
【００７２】
【数３】
2007506312.tif 000003
【００７３】
ここで、ｂＢは、ノード・バジェットのフレーム数、ｆｐＢは、ノードのフレーム処理周期、ＪＢは、フレーム処理呼出しの可能な遅延である。ｎＢは、最近接の整数値に丸められることに注目される。
【００７４】
フレーム処理時間ｆｐＢは、２つの引き続くフレーム処理呼出し間の時間として定義されるので、もし最初の呼出しが次のものよりも遅れるようであれば、フレームの実際の解放（すなわち、これらの呼出しの完了）間の時間は、もっと短い。従って、楽観的過ぎる限度を与えないようにするためには、現在の時間長に対して可能な最大の遅延ＪＢを加える必要がある。
【００７５】
限度ｌｉｍｉｔＢ（ｗ）が次にｎＢフレームの最大送信時間として計算される。この計算を簡単にするために、各々の送信されるフレームの送信時間を、優先順位ｊ＜ｉを持つバッチの任意のフレームの最大送信時間で近似することが可能であるが、より複雑な計算を考案することもできる。
【００７６】
工程Ｓ４３では、バッチ寄与ＩＢがＩＢ＝ｍｉｎ（Ｉ（Ｔ），ｌｉｍｉｔＢ（ｗ））として決定され、工程Ｓ２２からスタートするプロセスがすべてのバッチに対して繰り返される（工程Ｓ４４）。工程Ｓ４５が図８の工程Ｓ２９に置き換わり、ｗｎ＝Ｂ＋ΣＩＢとして新しい値ｗｎを計算する。ここでも、ｗｎに第３項Ｅ（ｗ＋Ｃｉ）を含めることができる。プログラム制御は、次に図８の工程Ｓ３０に続く。
【００７７】
当業者であれば、特許請求の範囲に定義される本発明から離れることなく上で述べた好適な実施の形態に対する数多くの修正を施すことができることが明らかである。例えば、上で述べたように、本方法は、完全な応答時間解析を提供するように、ＣＡＮの例えば送信キューおよび受信キューに容易に適応できる。これらの場合には、バジェットの効果は、存在しないが、送信レートによる同様の制約が受信キューに存在する。
【００７８】
当然ながら、本方法は、若干の調節を行うことでその他のタイプのシリアル・バス・ネットワークにも同様に適用可能である。
【図面の簡単な説明】
【００７９】
【図１】
2007506312.tif 000004
【図２】
2007506312.tif 000005
【図３】
2007506312.tif 000006
【図４】
2007506312.tif 000007
【図５】
2007506312.tif 000008
【図６】
2007506312.tif 000009
【図７】
2007506312.tif 000010
【図８】
2007506312.tif 000011
【図９】
2007506312.tif 000012
【手続補正書】
【提出日】平成17年2月15日(2005.2.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フレーム・キューイング・システムのフレームに関する最悪ケースの応答時間を予測する方法であって、前記フレームは、固定された優先順位（ｉ）および期待されるフレーム周期（ｐｉ）を有し、異なる優先順位および異なるフレーム周期を有するいくつかのフレームを含むトランザクション（Ｔ）に属しており、
含まれるフレームのフレーム周期の最小公倍数ＬＣＭとしてトランザクション周期を定義するステップと、
前記フレームと等しいかそれより高い優先順位（ｊ≦ｉ）を有するトランザクション（Ｔ）のすべてのフレーム・インスタンスについて、あり得る最も遅い解放時間を表す１組のスタート時点（ｓ）を同定するステップと、
各々のスタート時点（ｓ）に対して、この時点（ｓ）にスタートでき、前記フレームより高い優先順位を有するフレーム系列の最大周期（ｗ）を決定し、前記スタート時点（ｓ）と同じかそれより大きい、あり得る最も遅い解放時間（ｒｉ，ｋ）を有する次のフレーム・インスタンス（Ｆｉ，ｋ）を同定し、前記系列の最後（ｓ＋ｗ）と前記フレーム・インスタンス（Ｆｉ，ｋ）の到着時間（ａｉ，ｋ）との間の差分（Ｄｉ，ｋ）を計算するステップと、
前記差分（Ｄｉ，ｋ）の最長のものを選んで、フレーム応答時間を決定するステップと、
を含む前記方法。
【請求項２】
請求項１記載の方法であって、前記フレーム・キューイング・システムがコントローラ・エリア・ネットワークなどのシリアル・バス・ネットワーク（１）のノード（２）の受信キュー（７）である前記方法。
【請求項３】
請求項１記載の方法であって、前記フレーム・キューイング・システムがコントローラ・エリア・ネットワークなどのシリアル・バス・ネットワーク（１）のノード（２）の送信キュー（７）である前記方法。
【請求項４】
請求項１記載の方法であって、前記フレーム・キューイング・システムがコントローラ・エリア・ネットワークなどのシリアル・バス・ネットワーク（１）のいくつかのノード（２）を接続するシリアル・バス（３）である前記方法。
【請求項５】
請求項１−４のいずれか１項記載の方法であって、フレーム応答時間が前記差分（Ｄｉ，ｋ）の最長のものとフレーム送信時間（Ｃｉ）との和として決定される前記方法。
【請求項６】
先行するいづれか一つの項に記載の方法であって、前記スタート時点の組がサブセットに分割され、そのサブセットの各々が１つのフレーム・インスタンス（Ｆｉ，ｋ）と関連付けられ、また前記差分（Ｄｉ，ｋ）が一時に１つのそのようなサブセットのスタート時点について計算される前記方法。
【請求項７】
先行するいづれか一つの項に記載の方法であって、前記最大周期を計算するステップが、現在の周期（ｗ）を初期値（Ｂ）にセットし、周期が収束するまで次のステップ、
各トランザクション（Ｔ）から与えられたトランザクション（Ｔ）と前記スタート時点との間の１組の時間遅れを同定するステップと、
前記特別な時間遅れを持った前記特別なトランザクションからの寄与（ｉ（Ｔ））を決定し、最大の寄与を選択する（Ｉ（Ｔ）＝ｍａｘ（ｉ（Ｔ）））ステップによって最大寄与（Ｉ（Ｔ））を決定するステップと、
すべてのそのような最大寄与の和（ΣＩ（Ｔ））を含む更新された時間長（ｗｎ）を決定するステップと、
現在の時間長（ｗ）を更新された時間長（ｗｎ）で置き換えるステップと、
を繰り返すことによって実行される前記方法。
【請求項８】
請求項７記載の方法であって、前記初期値（Ｂ）が前記フレームよりも低い優先順位（ｊ＞ｉ）を有するフレームの可能な最長の送信時間である前記方法。
【請求項９】
請求項８記載の方法であって、前記初期値（Ｂ）が各々の更新された時間長（ｗｎ）に定数項として含まれる前記方法。
【請求項１０】
請求項７−９記載の方法であって、各々の更新された時間長（ｗｎ）に誤差項が含まれる前記方法。
【請求項１１】
請求項７−１０のいずれか１項記載の方法であって、前記フレーム・キューイング・システムは、コントローラ・エリア・ネットワークなどのシリアル・バス・ネットワーク（１）のいくつかのノード（２）を接続するシリアル・バス（３）であり、
送信キューは、与えられた時間内に前記シリアル・バスに限られた数（ｂＢ）のフレームを送信するように構成され、
同じ送信キューから発するフレームは、バッチと呼ばれ、
最大寄与（Ｉ（Ｔ））を決定するステップは、一時に１つのバッチについて実行され、更に、
対応する送信キューが現在の時間長（ｗ）内に送信する最大数のフレームの送信時間（ｌｉｍｉｔ（ｗ））を決定するステップと、
前記最大寄与（Ｉ（Ｔ））を前記送信時間に制限する（ｌｉｍｉｔ（ｗ））ステップと、
を含む前記方法。
【請求項１２】
コンピュータ・プロセッサによって実行されるとき、先行する請求項のいずれか１項記載の方法を実行するように適応したソフトウエア・モジュール。
【請求項１３】
請求項１２項記載のソフトウエア・モジュールを含むフレーム・コンパイラ。
【国際調査報告】
2007506312.tif 000013
2007506312.tif 000014
2007506312.tif 000015