JP2016519371A - リアルタイムで決定論的エラー回復を可能にするタスク時間割当て方法 - Google Patents

リアルタイムで決定論的エラー回復を可能にするタスク時間割当て方法 Download PDF

Info

Publication number
JP2016519371A
JP2016519371A JP2016508208A JP2016508208A JP2016519371A JP 2016519371 A JP2016519371 A JP 2016519371A JP 2016508208 A JP2016508208 A JP 2016508208A JP 2016508208 A JP2016508208 A JP 2016508208A JP 2016519371 A JP2016519371 A JP 2016519371A
Authority
JP
Japan
Prior art keywords
time
processing operation
processing
execution
fragment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016508208A
Other languages
English (en)
Other versions
JP6424208B2 (ja
Inventor
デイビッド,ヴィンセント
Original Assignee
クロノ−セイフ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クロノ−セイフ filed Critical クロノ−セイフ
Publication of JP2016519371A publication Critical patent/JP2016519371A/ja
Application granted granted Critical
Publication of JP6424208B2 publication Critical patent/JP6424208B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本発明は、それぞれがアプリケーションのタスクの処理動作の実行に関連付けられる時間ウィンドウを定義するステップと、時間ウィンドウを有する各処理動作に、時間割当量(QA1、QA2、QA3、QB)及び時間マージン(MA1、MA2、MA3、MB)を割り当てるステップであって、時間割当量及び時間マージンによって処理動作に割り当てられる時間がアプリケーションの実行中に処理動作の時間ウィンドウの持続時間よりも短い、割り当てるステップと、処理動作の内の1つの時間割当量の満了時に、各処理動作が関連付けられる時間ウィンドウの開始時に各処理動作を起動するステップと、処理動作の実行が完了しない場合にエラーモードを活性化するステップと、エラーモードが処理動作の1つに対してアクティブである場合、時間割当量及び時間マージンによって処理動作に割り当てられる残り時間の間処理動作のためにエラー処理動作を実行するステップとを含んだ、マルチタスクコンピュータでリアルタイムアプリケーションのタスクを実行するための方法に関する。【選択図】図5

Description

本発明は、同じ時間基準により計時される時間非依存のタスクのセットを含み、実行時間制約が既知であるリアルタイムマルチタスクシステムに関する。本発明は、特にその実装において高レベルの性能を必要とするリアルタイムシステム、及びシステムのタスクごとに割り当てられる実行ハードウェアリソースの使用に関して高い保証レベルが必要とされる重大なシステムに関する。
本発明は、特に、輸送(自動車、鉄道、船舶、及び飛行機)、産業用自動機械、エネルギー、及び通信ネットワークにおいてのようにリソースの制御された割当てが重要である他のシステムの分野において使用されるシステム等のコマンドシステム及び制御システムに適用する。
重大なリアルタイムシステムでは、タスクは、プロセッサ等の実行リソースを使用するための時間割当量の静的な時間割当てを実行するために、多くの場合静的なスケジューリング法に従って実行される。これは、タスク間のタスクの時間非依存性を、リソースの使用、特にプロセッサの使用に関して証明できるようにする。この簡略且つ広く受け入られている展望は、特に文書[3]、[4]、[7]、[8]で扱われるタスク間の通信の問題を考慮に入れていない。ただし、この展望は、キャッシュメモリを含む今日のプロセッサでの実装の問題を提起する。実際、これらのキャッシュメモリの中身は、アクセスされるタスク及びデータの実行の履歴全体に依存する。ここで、これらのメモリの状態は、インタリーブされるタスクの処理動作の実行時間に影響する。これらの条件下では、処理動作の実行時間(WCET−最悪実行時間‐文書[5]を参照)の絶対的な上限を保証するのは困難である。したがって、これらの上限を計算する正式な方法により、実験結果に比較してこれらの上限が潜在的に著しく過大評価されることになる。
さらに、特定のリアルタイムマルチタスクシステムでは、タスクが互いに干渉しないこと、つまりタスクを実行できないこと、又はタスクの実行が別のタスクに割り当てられている時間中に終了できないことを保証することが必要である。タスク間での係る非干渉の探求は、特定の分野で、キャッシュメモリを非活性化すること、又は以前の処理動作の実行とは無関係である状態(空)を有するように処理動作に割り当てられている各時間ウィンドウの開始時にそのコンテンツ全体を取り除いてキャッシュメモリを空にすることにつながる。ただし、キャッシュメモリを空にするこの動作は、マルチタスクシステムの性能を大幅に不利にする。さらに、処理動作は、いくつかの場合、いくつかの時間ウィンドウに分割されてよく、そのことが処理動作の実行中に数回キャッシュメモリを空にすることを必要とする。
これらの異なる理由から、リアルタイムシステムの設計者は係るシステムを大幅に特大にせざるを得ない。実際的な観点から、この手法をあまり不利にしないために、プロセッサの時間割当ては「理論上の」WCETより短い実行時間要件に基づいて実行され、特定の誤り率の許容につながる。この手法の主要な欠点は、処理動作の実行時間の分散の法則を特徴付ける任意のモデルが存在しないことにあり、真に割り当てられた時間割当量に関して誤り率を評価できるようにする。特に、許容できる誤り率が非常に低くなくてはならず、したがって非常に珍しいイベントから生じるとき、少なすぎる実験サンプルに基づいたこの手法を用いて、これらのシステムが決定論的な挙動を有することを証明することは可能ではない。したがって、係るシステムのロバスト性を改善するために、1つの周知の方法は、実行時間割当量に対して係るエラーのエラー回復処置を実施して、残余誤差のケースをきわめて低い数に削減することを必要とする。
特大化のこの重要な問題を克服するためには、未使用の時間(平均実行時間と割り当てられた時間割当量の差異)を、優先順位がないバックグラウンドタスク(文書[2]、[7]、[8]を参照)として実行される非リアルタイムタスク及び重大ではないタスクに動的に再割当てすることによって使用することが一般的であることに留意されたい。ただし、この解決策は同じ目的を達成せず、重大なリアルタイムタスクに何も貢献しない。
同様に、重大なリアルタイムタスクの実行中に出現することが可能な他のタイプのエラーの場合、実行中の他のタスクと干渉せずに、係る決定論的リアルタイムエラー処理機構を有することは有益である。これにより、タスク実行フローでの不連続性がないエラー回復が可能になり、適切な時間制約による適切な処置の実施が保証される。これらの問題は、非同期システムで、つまり、実行時間制約なしに既知の解決策を有する。ただし、これらの解決策はリアルタイム性能保証を提供せず、これらの解決策は、言うまでもなく操作機能不良が起きた場合も含んだ、処理動作間の非干渉が求められる重大なタスクの事情に適応していない。
したがって、タスクが実行されているマルチタスクシステムの効率的且つ確実な使用を保証する一方で、同じ時間基準によって計時されるタスクのセットを含んだアプリケーションを生成できることが望ましい。さらに、エラー処理に十分な時間を割り当てることができ、これによってエラー処理を、他のタスクとの干渉するリスクなしに重大なリアルタイムシステムの制約と互換性がある決定論的な時間内に実行できることが望ましいことがある。また、熱調節、エネルギー消費を最小限に抑えること、又は重大ではないタスクの分散された若しくは共有された実行等の異なる最適化のために未使用の割り当てられた時間を使用することが望ましいことがある。さらに、マルチタスクシステムによって実行されるアプリケーションのタスクの処理の正しい順序制御を保証することができ、この順序制御が正しいことを正式に立証できることが望ましいことがある。
いくつかの実施形態は、マルチタスクコンピュータで、各タスクが少なくとも1つの処理動作を含んだリアルタイムアプリケーションのタスクを実行するための方法に関し、方法は、それぞれがアプリケーションのタスクの処理動作の実行と関連付けられた時間ウィンドウを定義するステップと、時間ウィンドウを有する処理動作ごとに時間割当量及び時間マージンを割り当てるステップであって、時間割当量及び時間マージンによって処理動作に割り当てられる時間が処理動作と関連付けられる時間ウィンドウの持続時間よりも短い割り当てるステップと、マルチタスクシステムによるアプリケーションの実行中に、各処理動作が関連付けられる時間ウィンドウの開始時に各処理動作を活性化するステップと、処理動作の内の1つの時間割当量の満了時に、処理動作の実行が完了していない場合エラーモードを活性化するステップと、及びエラーモードが処理動作の内の1つに対してアクティブである場合、時間割当量及び時間マージンによって処理動作に割り当てられる残り時間の間に処理動作のためのエラー処理手順をエラーモードで実行するステップとを含む。
一実施形態に従って、方法は、エラーモードが処理動作の内の1つに対してアクティブである場合、処理動作に割り当てられた時間マージンの満了を監視しつつ、処理動作に割り当てられる時間割当量の満了時に実行が完了していない処理動作の実行を続行するステップと、処理動作に割り当てられる時間マージンの満了時に、処理動作の実行が完了していない場合、処理動作の実行を終了し、時間割当量超過エラー処理動作を実行するステップとを含む。
一実施形態に従って、方法は、アプリケーションの他のタスクを処理するためのいくつかの時間ウィンドウ上に延在する時間ウィンドウと関連付けられる処理動作を細分化し、これによって各時間ウィンドウが処理動作又は処理動作断片と独占的に関連付けられるステップと、細分化された処理動作のすべての断片の時間割当量の総計が細分化された処理動作の時間割当量に等しくなるように処理動作断片のそれぞれに時間割当量を割り当てるステップであって、細分化された処理動作と関連付けられる時間マージンが細分化された処理動作の最後の断片と関連付けられる割り当てるステップと、各処理動作断片と、それが細分化された処理動作の最後の断片であるかどうかを示す状態変数を関連付けるステップであって、処理動作断片と関連付けられる状態変数が、処理動作断片が細分化される処理動作の最後の断片ではないことを示す場合、エラーモードが処理動作断片の割当て量の満了時に活性化されない、関連付けるステップとを含む。
一実施形態に従って、時間割当量と関連付けられる処理動作のそれぞれのマージンが、処理動作の時間割当量に倍率を適用することによって計算され、倍率は時間割当量と関連付けられるすべての処理動作に対して同一である。
一実施形態によると、倍率は、アプリケーションのタスクを、処理動作の時間要件に従って、処理動作に関連付けられる時間ウィンドウに従って、及びコンピュータの特徴に従ってスケジューリングできるように決定される。
一実施形態に従って、処理動作は、第1の時間基準によって計時されるプロセッサによって実行され、処理動作と関連付けられる時間ウィンドウが第1の時間基準と比較して定期的ではない第2の時間基準で定義され、第2の時間基準の時間単位は第1の時間基準の最小値を有し、倍率は最小値に従って定義される。
一実施形態に従って、各処理動作は、それが処理動作を実行するプロセッサに関して入力/出力を実行するのかどうかを示す状態変数と関連付けられ、処理動作の内の1つが、処理動作が入力/出力も実行しないことを示す状態変数と関連付けられる場合、処理動作の実行は、以前の処理動作の実行が終了するとすぐに、処理動作の時間ウィンドウの開始を待機することなく起動される。
また、いくつかの実施形態は、各タスクが少なくとも1つの処理動作を含んだいくつかのタスクを含んだリアルタイムアプリケーションを実行するマルチタスクコンピュータを含んだリアルタイムマルチタスクシステムにも関し、システムは、それぞれがアプリケーションのタスクの処理動作のセットの実行と関連付けられる時間ウィンドウを記憶するように構成され、時間割当量及び時間マージンによって処理動作に割り当てられる時間が処理動作の時間ウィンドウの持続時間よりも短い、時間ウィンドウを有する処理動作ごとに、時間割当量及び時間マージンを記憶するように構成され、アプリケーションの処理動作を実行するように構成され、処理動作の内の1つの時間割当量の満了時に、処理動作の実行が完了していない場合エラーモードを活性化するように構成され、エラーモードが処理動作の内の1つに対してアクティブである場合に、時間割当量及び時間マージンによって処理動作に割り当てられる残り時間中にエラーモードで処理動作のエラー処理手順を実行するように構成される。
一実施形態によると、システムは、エラーモードが処理動作の内の1つに対してアクティブである場合、処理動作に割り当てられる時間マージンの満了を監視しつつ、実行がその時間割当量の満了時に完了していない処理動作の実行を続行するように構成され、時間マージンの満了時に、処理動作の実行が完了していない場合、処理動作の実行を終了し、時間割当量超過エラー処理動作を実行するように構成される。
一実施形態に従って、システムは、時間ウィンドウと関連付けられた処理動作のいくつかが細分化される事実を記憶するように構成され、処理動作断片の実行のために処理動作断片ごとに時間ウィンドウ及び時間割当量を記憶するように構成され、関連付けられた時間マージンとして細分化された各処理動作の最後の断片のために、細分化された処理動作と関連付けられた時間マージンを記憶するように構成され、各処理動作断片に、断片が細分化された処理動作の最後の断片であるかどうかを示す状態変数を記憶するように構成され、アプリケーションの実行中に、処理動作断片と関連付けられた状態変数が、処理動作断片が細分化された処理動作の最後の断片ではないことを示す場合に、処理動作断片の割当量の満了時にエラーモードを活性化しないように構成される。
一実施形態に従って、システムは、処理動作の時間割当量に倍率を適用することによって時間割当量と関連付けられた処理動作のそれぞれのマージンを決定するように構成され、倍率は時間割当量と関連付けられたすべての処理動作に対して同一である。
一実施形態に従って、システムは、処理動作を実行するために第1の時間基準によって計時され、第1の時間基準に比較して定期的ではない第2の時間基準を受け取るプロセッサを含み、システムは、第2の時間基準で処理動作と関連付けられる時間ウィンドウを決定するように構成され、第2の時間基準の時間単位は第1の時間基準の最小値を有し、倍率が最小値に従って定義される。
一実施形態に従って、システムは、処理動作ごとに、処理動作が、処理動作を実行するシステムのプロセッサに関して入力/出力を実行するかどうかを示す状態変数を記憶するように構成され、処理動作の内の1つが処理動作が入力/出力も実行しないことを示す状態変数と関連付けられる場合、以前の処理動作の実行が終了するとすぐに、処理動作の時間ウィンドウの開始を待機することなく処理動作の実行を起動するように構成される。
本発明の実施形態のいくつかの例は、添付図面に関してであるが、これに限定されることなく説明される。
マルチタスクコンピュータを概略で示す図である。 2つのタスクのタイミング図である。 2つのタスクのタイミング図である。 図2A、図2Bの2つのタスクのスケジュール計画を、タイミング図の形式でを示す図である。 一実施形態に係るロード計画をタイミング図の形式で概略で示す図である。 別の実施形態に係るロード計画をタイミング図の形式で概略で示す図である。 多様な実施形態に係る、リアルタイムコンピュータのリアルタイムコアによって実行されるステップを示す図である。 多様な実施形態に係る、リアルタイムコンピュータのリアルタイムコアによって実行されるステップを示す図である。 多様な実施形態に係る、リアルタイムコンピュータのリアルタイムコアによって実行されるステップを示す図である。 多様な実施形態に係る、リアルタイムコンピュータのリアルタイムコアによって実行されるステップを示す図である。
図1は、1台又は複数のプロセッサPRC、クロック回路CLK、1つ又は複数の不揮発性メモリNVM(書換可能又は不可)、(例えば、RAM―ランダムアクセスメモリ―型の)1つ又は複数の揮発性メモリVM、並びに周辺装置(不図示)を制御する及び/又は係る装置から信号を受信するように構成される1つ又は複数のインタフェース回路PHCを含んだマルチタスクコンピュータRTSを示す。プロセッサPRCは、アドレス及びデータバスSBを通して回路CLK、NVM、VM、及びVMに結合される。また、クロック回路CLKは、プロセッサPRCの割込み入力に接続され、所与のプログラム可能な持続時間が経過すると割込みをトリガする。このために、プロセッサPRCは、バスSBを通して持続時間の値を送信し、回路CLKを活性化してよい。
メモリNVMは、マルチタスクアプリケーションのタスクプログラム、及びアプリケーションに関するデータを記憶する。メモリVMは、アプリケーションの実行で使用される変数データを記憶する。実行されるプログラムが、マルチタスクアプリケーション起動時にコンピュータに送信される場合、メモリNVMは省略されてよいことに留意されたい。
プロセッサPRCは、それぞれ、1つ又は複数のコア又は処理装置を含んでよい1台又は複数のマイクロプロセッサ又はマイクロコントローラを含んでよい。プロセッサPRCは、ASIC(特定用途向け集積回路)又はFPGA(フィールドプログラマブルゲートアレイ)タイプの1つ又は複数の回路から構成されてもよい、又は1つ又は複数の回路を含んでもよい。プロセッサPRCは、タスクスケジューリング計画を実装するための機能、タスク実行コンテキストを管理するための機能、及び1つ又は複数のウォッチドッグを管理して処理動作の実行時間を監視するための機能等、リアルタイムマルチタスクアプリケーションの実行に必要な機能を特に含むリアルタイムコアを実行する。
重大なリアルタイムアプリケーションの場合、特にコンピュータの能力の点で、実行媒体(コンピュータRTS)がアプリケーションのすべてのタスクの最悪実行時間要件を満たすほど十分であることを証明することが必要になることがある。タスクをスケジューリングするために使用される手法が何であっても、この証明は、負荷方程式(文書[1]、[2]、[3]を参照)のシステムの正式な検証によって提供できる。ここで提示される方法は、スケジューリング法の、及び検証される負荷方程式の関連するシステムの選択とは無関係である。例によって方法を示すために、一般的な表示が使用される(例えば、文書[3]を参照すること)。
図2Aは、時間基準tでのタイミング図、繰り返し実行される3つの処理動作TA1、TA2、及びTA3に分類できる周期的なタスクAを示す。処理動作TA1は、最も早期の開始時間t=0及び最も遅い終了時間t=1によって定められる、[0,1[と示される時間ウィンドウ上で実行される。時間ウィンドウ[0,1[は、このようにして1つの時間単位の持続時間を有する。処理動作TA2は、時間t=1と時間t=5の間の4時間単位続行する時間ウィンドウ[1,5[上で実行される。処理動作TA3は、時間t=5とt=6との間の1時間単位続行する時間ウィンドウ[5,6[で実行される。これらの時間ウィンドウ[0,1[、[1,5[、[5,6[のそれぞれでの処理動作TA1、TA2、TA3のそれぞれの実行時間要件はQA1、QA2、及びQA3と示され、これらの要件はターゲットマルチタスクコンピュータの容量に従って定義される。
図2Bは、タイミング図において、同じ時間基準tで、時間t=0とt=3との間の3時間単位続行する時間ウィンドウ[0,3[で、繰り返し実行される1つの処理動作TBだけを含む周期タスクBを示す。時間ウィンドウ[0,3[での処理動作TBの実行時間要件はQBと示される。
タスクA及びBのスケジューリング計画を構築するために、タスクの処理動作は、各処理動作の要件が満たされるようにそのそれぞれの時間ウィンドウ上で分散される。これがいくつかのより短い時間ウィンドウ上での特定の処理動作の細分化につながり、これによって考慮される各時間ウィンドウで、この時間ウィンドウと関連付けられる処理動作及び/又は処理動作断片を各タスクの時間制約を尊重しながらも完全に実行できる。言い換えると、処理動作は、考慮されるすべての時間ウィンドウが隣接し(あるウィンドウの終了が別のウィンドウの開始に相当する)、且つ(2つのウィンドウに共通な領域がない)互いに素となるように細分化される。この結果、アプリケーションのすべてのタスクをスケジューリングできるように満たさなければならない処理動作断片に関する条件が生じる。
図3は、タスクA及びタスクBのスケジューリング計画を示す。処理動作TA2は、2つの部分TA21及びTA22に細分化されて、処理動作TBを再活性化するための時間ウィンドウの開始に相当し、処理動作TA2の時間ウィンドウの間に発生するタスクBの時間t=3を考慮に入れる。同様に、タスクBの処理動作TBは、時間ウィンドウ[0,3[上で2つの部分TB11及びTB12に細分化されて、処理動作TBの時間ウィンドウの間で発生するタスクAの処理動作TA2の時間ウィンドウ[1,5[の開始時間t=1を考慮に入れる。また、時間ウィンドウ[3,6[と関連付けられる処理動作TBの発生は、2つの部分TB21及びTB22に細分化されて、この時間が処理動作TBのこの発生の時間ウィンドウ中に発生するという事実のために、タスクAの処理動作TA3の時間ウィンドウの開始時間t=5を考慮に入れる。処理動作TBの2つの発生のこれらの異なる細分化は、タスクA及びタスクBの反復スケジューリング計画を構築するために必要である。ともに取られるタスクA、タスクBの反復シーケンスの持続時間は、各タスクの反復シーケンスの持続時間の最小公倍数(LCM)に等しい。図3の例では、タスクBが3時間単位の持続時間を有する時間ウィンドウに関連付けられるのに対し、タスクAは、6時間単位の持続時間を有する時間ウィンドウと関連付けられる。タスクA、タスクBの反復シーケンスの持続時間は、6及び3のLCM、つまりタスクBの2つの発生に相当する6時間単位に等しい。処理動作TA1及び処理動作断片TB11が時間ウィンドウ[0,1[の間に実行されなければならないことが、この細分化の結果から生じる。処理動作断片TA21及びTB12は、時間ウィンドウ[1,3[中に実行されなければならない。処理動作断片TA22及びTB21は、時間ウィンドウ[3,5[の間に実行されなければならない。処理動作TA3及び処理動作断片TB22は、時間ウィンドウ[5,6[の間に実行されなければならない。
さらに、処理動作断片TA21及びTA22の実行時間要件はそれぞれQA21及びQA22と示される。同様に、処理動作断片TB11、TB12、TB21,及びTB22の実行時間要件は、それぞれQB11、QB12、QB21、及びQB22と示される。図3に示される各時間ウィンドウでは、検証される負荷方程式(又は不等式)は、タスクA及びタスクBをスケジューリングできるように定義できる。この方程式は、同じ時間ウィンドウの処理動作又は処理動作断片の要件の和が時間ウィンドウの時間単位での持続時間より少ないことを指定する。従って、以下の負荷連立方程式が図3から生じる。
QA1 + QB11 ≦ 1 (E1)
QA21 + QB12 ≦ 2 (E2)
QA22 + QB21 ≦ 2 (E3)
QA3 + QB22 ≦ 1 (E4)
この連立方程式は、文書[1]及び[3]に提示されるアルゴリズム等の特定のスケジューリングアルゴリズムにとって必要且つ十分な条件を定義する。この連立方程式は、マルチタスクコンピュータのサイジングが正しいことを証明するために使用される。RMSスケジューリングアルゴリズム(レートモノトニックスケジューリング−文書[1]、[2]を参照)の場合、この方式はすべてのケースで十分な条件を定義せず、この条件は文書[1]に示される公式に従って補正されなければならないことが留意されるものとする。ただし、この補正は決して提示される方法を変更しない。断片の要件QA21、QA22、QB11、QB12、QB21、QB22がどのように計算されているのかは、スケジューリング理論によって定義され、本発明とは関係していない。詳細については、例えば文書[3]が参照されてよい。
一実施形態に従って、新しい負荷連立方程式が、不等号記号の左部分に1より大きい倍率Kを導入することによって以前に定義された負荷連立方程式から導出される。図3の例では、新しい負荷連立方程式が、以下のように連立方程式(E1)〜(E4)から導出される。
K・ (QA1 + QB11) ≦ 1 (E1’)
K・(QA21 + QB12) ≦ 2 (E2’)
K・(QA22 + QB21) ≦ 2 (E3’)
K・(QA3 + QB22) ≦ 1 (E4’)
因数Kの値に従って、この新しい連立方程式は解を有することもれば、有さないこともある。したがって、タスクの計算時間要件の最大倍率Kxが定義され、これによって(例えば、コンピュータRTS等、所与のコンピュータによって実行される)リアルタイムアプリケーションをスケジューリングできる。つまり、新しい連立方程式(E1’)〜(E4’)は解を有する。
(所与の方式によって実行される)リアルタイムアプリケーションをスケジューリングできることを保証しつつ、初期の負荷連続方程式(E1’)〜(E4’)から、それぞれの要件を因数Kxで乗算された同じ要件で置換できる。したがって、図3の例では、拡張された要件Kx・QA1及びKx・QB11を第1の時間ウィンドウ[0,1[でスケジューリングすることができ、拡張された要件Kx・QA21及びKxQB12を第2の時間ウィンドウ[1,3[でスケジューリングできる等であることが保証される。
使用される例を超えて、因数Kxによる要件の乗算は、適用されるスケジューリング法によってどのような連立方程式が得られるのかに関わりなく適用可能である(特に、文書[1]、[2]、[3]を参照すること)。重大なリアルタイムアプリケーションの場合、マージンは、通常、アプリケーションが実行されなければならないマルチタスクコンピュータの要件及び性能に関して保持されることにも留意されたい。因数Kxはこのようにして、コンピュータの計算時間リソースの例えば100%が使用されるように計算時間マージンから求められてよい。例えば、20%のマージンは5/4に等しい因数Kxの値に一致し、50%マージンは2に等しい因数Kxの値に一致する。また、測定可能な量に適用される正式な基準を規定する因数Kxの定義と異なり、マージンの概念が多くの場合不十分に形式化されることにも留意されたい。したがって、計算時間要件を因数Kxで乗算することは、つねに平均値ではなく、すべての処理動作について計算される少なくともマージンをつねに有する最悪の事態の保証を提供する。
図3に提示される例では、因数Kxを定義した結果、少なくとも1つの時間ウィンドウ(この場合kx・Q=時間ウィンドウの時間単位での持続時間であり、Qは時間ウィンドウと関連付けられる処理動作の要件である)で最大負荷に達するが、要件の値に応じてそれらのそれぞれでは必ずしも達しない。
結果として、(1より大きい)因数Kxで処理動作の実際の要件を乗算すると、各処理動作Tiの実際の実行時間要件Qiが(Kx−1)・Qiに等しい実行時間マージンMiを加算することによって拡張されるタスクスケジューリング計画を入手できる。また、タスクスケジューリング計画は、最大負荷に達していない残りの時間ウィンドウに相当する遊休時間を含んでよい。
タスクスケジューリング計画を構築するために、実際の実行時間要件の値は既知でなければならず、処理動作は時間ウィンドウに割り当てられなければならない。処理動作の実際の要件、及びこれらの処理動作の時間ウィンドウへの割当ては、因数Kxの値を求めることを可能にする。次に、選択されたスケジューリング方法が適用されてよい。したがって、図3から、例えば、第1の時間ウィンドウ及び第2の時間ウィンドウ[0,1[及び[0,1[で最大負荷に達すると想定すると、以下の連立方程式が得られる。
Kx・(QA1 + QB11) = 1 (E1")
Kx・(QA21 + QB12) = 2 (E2")
Kx・(QA22 + QB21) ≦ 2 (E3")
Kx・(QA3 + QB22) ≦ 1 (E4")
連立方程式(E1’’)〜(E4’’)の検証は、図4に示される負荷計画に繋がる。図4は、時間ウィンドウ[i,i+1[(i=0、1、2、3、4、及び5の場合)が示されるタイミング図の形式で負荷計画を示し、実際の要件QA1、QA21、QS22、QA3、QBは、時間軸tに沿った斜影線が付けられた領域により示され、関連付けられた実行時間マージンMA1、MA21、MA22、MA3、MBが、時間軸tの上方の斜線部によって、及び時間軸tの下方の斜線部によって示され、最大負荷に達しない時間ウィンドウの遊休時間NA1、NA2が示される。この負荷計画では、各時間ウィンドウは単一処理動作又は処理動作断片と関連付けられる。時間ウィンドウの時間単位での持続時間を考えると、特定の処理動作断片の要件は定義されてよい。したがって、処理動作TBの2つの発生の要件QB12及びQB22はQBに設定されてよい。結果は、要件QB12及びQB22が0に設定されることである。
処理動作TBが異なる持続時間の2つのはっきりと異なる時間ウィンドウと関連付けられることが、図4の負荷計画で分かる。実際に、負荷計画は、一方は時間ウィンドウ[1,2[に割り当てられ、他方は時間ウィンドウ[3,5[に割り当てられる処理動作TBの2つの発生を含む。
図4の負荷計画は、それぞれが処理動作要件、処理マージン、又は遊休時間タイプとなってよい時間スロットに分けられる。したがって、連続要件QA1、QB、QA21、QA22、QB、及びQA3はそれぞれ時間スロット[0,0[、[1,1[、[2,2[、[3,3[、[3,4[、及び[5,5[と関連付けられる。連続マージンMA1、MB、MA21、MA22、MB、MA3はそれぞれ時間スロット[0,1[、[1,2[、[2,3[、[3,3[、[4,4[、及び[5,5[と関連付けられる。遊休時間NA1、NA2はそれぞれ時間スロット[4,5[、及び[5,6[と関連付けられる。
マルチタスクコンピュータ負荷の観点から、図4の負荷計画は方程式(E1’’)〜(E4’’)と一貫しているが、特定の処理動作が細分化されるので、要件と関連付けられる実行時間マージンも細分化されてよいことを示すことができる。したがって、上記の例では、要件QA2は、2つの異なる部分QA21及びQA22に細分化されているように見える。同は関連付けられたマージンMA21、MA22に当てはまる。この細分化は、時間ウィンドウの再定義を生じさせることがある。実際、処理動作断片TA22の拡張された要件Kx.QA22と処理動作TBの第2の発生の要件QBとの間の遷移は、図4に[3]と示される時間ウィンドウ制限のこの時点での存在を暗示する。したがって、処理動作TA22は時間ウィンドウ[3,3[と関連付けられる。さらに、処理動作TBの第2の発生の要件QBは、時間[4]前後に拡張するので、この時間はもはや時間ウィンドウ制限に一致しない。処理動作TBの第2の発生は、このようにして時間ウィンドウ[3,5[と関連付けられる。
処理動作に割り当てられるマージンを最適に使用できるようにする静的スケジューリング計画を提供するため、特にエラー、及び特に予想される実行時間要件を超過するエラーを処理するために、負荷計画は図5に示されるように配置し直されてよい。図4の負荷計画と比較すると、図5の負荷計画は、要件QA21及びQA22と関連付けられた実行時間マージンMA21及びMA22をともにグループ化することによって修正される。このために、断片TA21と関連付けられたマージンMA21は、マージンMA22の直前に移動され、これらの2つのマージンはマージされて(Kx−1)・QA2に等しいマージンMA2を形成する。図5の例では、処理動作TA2の要件QA21及びQA22も、要件が隣接しているので、マージンMA21を移動後マージできるだろう。処理動作断片の要件をグループ化する可能性が、リアルタイムアプリケーソンが概して2つ以上のタスクを有するという事実のために頻繁ではないことが留意される。また、要件及びマージンのグループ化は、問題の時間ウィンドウの再定義につながる。一方、時間ウィンドウによって定義される処理動作の期日を尊重することは、当初、後者に割り当てられる。実際には、要件QA21及びQA2のグループ化のために、時間[3]はもはや時間ウィンドウ制限に一致しない。また、時間[3]はもはや要件の最後又はマージンの開始時に一致しないので、このグループ化は処理動作TA2に要件QA2時間[3]の最後を再割当てすることにつながる。処理動作TA2にここで割り当てられる時間ウィンドウ[2,3[は、この処理動作に当初割り当てられるウィンドウ[1,5[に含まれることに留意されたい。グループ化は、したがって時間[2]と[3]との間の時間スロットの再定義につながる。したがって、図5の例では、処理動作TA2の要件QA2はスロット[2,3[に関連付けられ、この処理動作のマージンMA2はスロット[3,3[と関連付けられる。
したがって、同じ時間基準によって計時されるタスクのセットのために、エラーの場合にエラーの処理に割り当てられる時間が(他の処理動作に割り当てられる時間に超過せずに)保証され、リアルタイムアプリケーションを実行するマルチタスクコンピュータから構成される重大なリアルタイムシステムの制約と互換性のある決定論的時間でエラー処理動作を可能にすることを保証するタスクスケジューリング計画を構築することが可能である。処理動作の実行時間の変動のためにマルチタスクコンピュータをサイジングする上でのエラーが発生した場合、この方法は、残余誤差のケースを極端に少ない数まで、他のタスクの実行と干渉することなく、可能な限り削減することによってリアルタイムマルチタスクシステムのロバスト性を改善できるようにする。したがって、この方法は、リアルタイムアプリケーションのタスクのスケジューリングに対するモジュラー式の複合的な手法を可能にし、このことがコンピュータ全体のサイジングを確証するために必要とされる試験を削減する。この方法は、すべてのタスク間で時間非依存が必要とされる(非干渉)重大なリアルタイムシステムを作り出し、係るシステムの認証を容易にすることを可能にする。また、この方法は、実行プロセッサの特大化を縮小できるようにし、このことは相対的に低い処理能力を有する埋め込み型コンピュータにとって重要な優位点である。
一般的なケースでは、時間スロットは図4及び図5においてのように必ずしもスケジューリングされていないことが留意される。実際に、各処理動作T1にとって、要件Qi、マージンMAi、及びおそらく遊休時間NAのスロットの順序が満たされる場合、スケジューリング計画の異なる処理動作に割り当てられる時間スロットは、どのような方法でもネスト化されてよい。したがって、異なる処理動作のいくつかの割当量タイプの時間スロットは隣接してよい。同様に、異なる処理動作のいくつかのマージンタイプの時間スロットは隣接してよい。各処理動作の割当量及びマージン時間スロットが処理動作に当初割り当てられる時間ウィンドウに含まれることは単に重要である。
また、図4及び図5によって示される実施形態は、プロセッサPRCの実行を停止することなく期間の長さを制限できるようにし、このことが(信頼性及び耐用年数に関する利点を有する)プロセッサの温度上昇を制限できる。また、プロセッサが重大なタスクに属するあらゆる処理動作を実行しない期間は、低い待ち時間での入力/終了の管理等、非常に頻繁に繰返し起こる要件を有する重大ではないタスクを実行するために使用されてもよい。
一般に、割り当てられる要件との準拠は、処理動作又は処理動作断片の要件の値に従って設定できる、処理動作又は処理動作断片に割り当てられる時間割当量を定義する時間遅延のある処理動作又は処理動作断片が開始されるときに有効にされるウォッチドッグによって制御される。したがって、以下では、処理動作に割り当てられる実行時間割当量は、以前に定められた要件に等しい。処理動作又は処理動作断片が完了していない場合、ウッチドッグは時間遅延の最後にトリガされる。
図6A、図6Bは、コンピュータRTSのリアルタイムコアによって実行されるステップS1からS6及びS10からS14を示す。図6AのステップS1からS6は、ウォッチドッグWDをスケジューリング計画の各時間スロットの最後におそらくトリガできるようにウォッチドッグWDを活性化するために恒久的に実行される。図6BのステップS10からS14は、ウォッチドッグWDがトリガされるときに実行される。以下、用語「処理動作」は、処理動作又は処理動作断片を分け隔てなく意味する。図6A、図6Bのステップの内のいくつかを実行するために、コンピュータRTSのリアルタイムコアは、リアルアイムアプリケーションのタスクの処理動作のスケジューリング計画から又は負荷計画から生成される表を有する。これらの表は、アプリケーションの処理動作のリスト、及び処理動作のそれぞれに割り当てられる時間スロットを定義するパラメータのリストを特に含んでよい。アプリケーションの処理動作のリストでは、各処理動作Tiは、時間割当量Qiタイプ及び時間マージンMiタイプの1つ又は複数の時間スロットと関連付けられてよい。時間スロットのリストでは、各スロットは処理動作又は処理動作断片と、タイプ(割当量、マージン、又は遊休時間)と、並びに時間スロットの持続時間と、及び/又は時間スロットの開始時間及び終了時間と関連付けられる。
図6Aでは、ステップS1はt<j>と示される時間スロットの開始時に実行される。プロセッサPRCは時間スロットのリストにアクセスして、ウォッチドッグWDを活性化するために必要なパラメータを決定し、これによって後者は時間スロットt<j>の最後にトリガされ、ウォッチドッグを活性化する。ステップS2では、プロセッサPRCは時間スロットt<j>のタイプを決定する。時間スロットt<j>は割当量Qタイプである場合、プロセッサPRCはステップS3で時間スロットと関連付けられた処理動作T[t<j>]を起動する。時間スロットt<j>がマージンMタイプの場合、プロセッサPRCはステップS4を実行する。ステップS4では、プロセッサPRCは処理動作T[t<j>]と関連付けられるエラーインジケータER(T[t<j>])を試験する。このエラーインジケータER(T[t<j>])が、処理動作T[t<j>]が割当量超過エラーとなっていることを示す場合、プロセッサPRCはステップS5で処理動作T[t<j>]の実行を続行する。ステップS3、S5の実行後、及び処理動作T[t<j>]が割当量超過エラーになっていない場合、プロセッサPRCはカウンタjを増分するためにステップS6を実行し、それによって次の時間スロットT[t<j>]の処理動作に移動することが可能である。
時間スロットt<j>のために活性化されたウォッチドッグWDがトリガされるときに(割当量又はマージン超過の場合に)実行される図6BのステップS10で、プロセッサPRCは、時間スロットt<j>のタイプ(Q/M/NA)を試験することによって、ウォッチドッグのトリガが処理動作の時間割当量又は時間マージンの満了に起因するかどうかを判断する。ウォッチドッグWDのトリガが時間割当量の満了に起因する場合、ステップS11が実行される。このトリガが時間マージンの満了に起因する場合、ステップS12からS14が実行される。
ステップS11で、処理動作T[t<j>]に割り当てられる時間割当量は、処理動作の実行の終わり前に満了する。次いで、プロセッサは、例えば処理動作T[t<j>]のためにエラーインジケータERを活性化することによってエラーモードに入る。ステップS12で、処理動作T[t<j>]に割り当てられる時間マージンは、処理動作の実行が完了せずに満了した。プロセッサは次いで処理動作T[t<j>]の実行を停止する。ステップS13で、プロセッサPRCは時間割当量超過エラーが処理動作T[t<j>]のために検出された事実を記憶してよい。ステップ14で、プロセッサPRCはリアルタイムコアに設けられるような一般エラー処理動作を実行してよい。この一般エラー処理動作は、処理動作間の非干渉の規則を尊重するために、次の時間ウィンドウを、従って次の処理動作に割り当てられる時間を侵害することがないように十分に短い。それは、再び処理動作間の不干渉の規則を尊重するために、処理動作に割り当てられる以後の時間ウィンドウ中に、アプリケーションに特有の、又は割当量超過している処理動作T[t<j>]に特有のエラー処理動作を実行するために提供されてもよい。
時間割当量超過エラーの場合には処理動作の実行を続行することが、リアルタイムアプリケーションの簡略な設計選択肢から生じることに留意されたい。いくつかの場合、時間割当量超過エラーの処理動作を恒久的に停止する、及びエラー処理動作の時間マージンよりも短い実行時間を要する、タスクの又はリアルタイムシステムの劣化した動作のために提供される代替の処理動作を実行する等、上述されたエラーとは異なるこのエラーを処理する他のモードを実装するために準備がなされてよい。
細分化された処理動作の実行の場合、ウォッチドッグが、第1の断片又は中間断片に割り当てられる割当量の最後が、ウォッチドッグが、処理動作の最後の断片の要件の終了を示すケースと区別されなければならないことを示すケース。第1のケースでは、ウォッチドッグは、細分化された処理動作の実行中、時間ウィンドウの変化時のある処理動作から別の処理動作への変化を単に示すだけである。第2のケースでは、ウォッチドッグが、細分化された処理動作の割当量が完全に使用されていること、したがって異常を示す。
一実施形態に従って、細分化された処理動作がスケジューリング計画に留まるとき、状態変数は各処理動作又は処理動作断片と関連付けられて、それが細分化された処理動作の第1の断片であるのか、それとも中間断片であるのか、又は後者が細分化されていない処理動作であるのか、それとも細分化された処理動作の最後の断片であるのかを示す。この状態変数は処理動作断片が第1の断片又は中間断片である場合に処理動作断片にマージンを割り当てないために、及び処理動作断片の時間割当量の満了時にエラーを生じさせないために使用される。この状態変数は、例えばリアルタイムアプリケーションの実行可能コードの生成時に各処理動作又は断片のために自動的に生成され、アプリケーションの負荷計画を定義する表の中に挿入されてよい。
この状態変数は、例えば図7に示されるように使用されてよい。したがって、図7は図6BのステップS10からS14を示し、追加のステップS15はステップS10とS11の間に差し込まれる。ステップS15は、このようにして、ウォッチドッグWDが処理動作T[t<j>]の時間割当量の満了時にトリガされるときに実行される。ステップS15で、プロセッサPRCは、処理動作T[t<j>]が細分化された処理動作の第1の断片又は中間断片のどちらかであるのか、それとも完全な処理動作(細分化されていない)又は細分化された処理動作の最後のフラグメントであるのかどうかを示す状態変数LF(T[t<j>])を試験する。変数LF(T[t<j>])が、実行中の処理動作T[t<j>]が細分化された処理動作の完全な処理動作又は最後の断片であることを示す場合、上述されたステップS11は、エラーモードを活性化するために実行する。それ以外の場合、エラーモードは活性化されない。
細分化された処理動作の第1の断片又は中間断片に時間マージンが割り当てられないので、細分化された処理動作に割り当てられる時間マージン全体は細分化された処理動作の最後の断片に割り当てられることに留意されたい。
一実施形態に従って、状態変数は、各処理動作又は処理動作断片に関連付けられて、処理動作断片がプロセッサPRCに関して入力及び/又は終了を実行するかどうかを示す。入力/出力は、例えば、メモリVM又はNVMでのリアルタイムアプリケーションのグローバル変数への書込みアクセスもしくは読取りアクセス、又は回路PHCを介してプロセッサPRCと周辺装置との間の信号もしくはデータの転送を意味する。この状態変数は、それが関連付けられている時間ウィンドウの開始を待機することなく、あらゆる入力及び/又は終了を実行しない処理動作を期待するために使用される。この状態変数は、例えば、リアルタイムアプリケーションの実行可能なコードを生成するときに処理動作又は処理動作断片ごとに自動的に生成され、アプリケーションの負荷計画及びスケジューリング計画を定義する表に挿入されてよい。
状態変数は、例えば、図8に示されるように使用されてよい。図8は図6AのステップS1からS6、及びステップS6とS1との間に差し込まれる2つの追加ステップS8及びS9を示す。ステップS8では、プロセッサPRCは処理動作Nxt(T)と関連付けられる次の時間スロットを決定し、この時間スロットが割当量Qタイプである場合、プロセッサは負荷計画で次の処理動作Nxt(T)の入力/終了の存在を示す状態変数を試験する。変数IO(Nxt.(T))が、処理動作Nxt.(T)が入力/終了を実行しないことを示す場合、プロセッサPRCはステップS9を実行して、ステップS8で決定される時間スロットについてステップS1−S2−S3で処理動作Nxt.(T)の実行を起動する。それ以外の場合、ステップS1は、ちょうど処理された時間ウィンドウに続く時間ウィンドウt<j+1>について実行される。当然、図7及び図8のステップが、両方の状態変数LF及びIOを実装するために組み合わせて実行されてよいことは言うまでもない。
この配置は、このようにして、順序制御計画で計画される処理動作を動的に予想できるようにし、したがって関連付けられた未使用のマージンを、予想できない入力/終了を実行する処理動作又は処理動作断片と関連付けられる時間ウィンドウに延期できるようにし、その結果、未使用のマージン及びあらゆる遊休時間がともにグループ化される。この配置は、システムの決定論的な挙動、及び前述の動作保証に異議を唱えない。マージン及び/又は遊休時間のグループかは、重大ではない又はリアルタイムではないタスクを含むことがあり、したがって割込みがほとんどなく、したがって実行コンテキスト切替えがほとんどなく実行できる二次的な活動の実装を可能にする優位点を提供する。結果は性能における、したがってプロセッサの平均温度での利益を生じさせる。プロセッサがグループ化されるマージンの間にスタンバイモードにされる場合、プロセッサはより長い時間スタンバイモードにすることができ、その結果、温度は低下し、このスタンバイモードの持続時間から生じるエネルギー消費が低下する。このマージンのグループ化は、プロセッサスタンバイ機構の活性化の数の削減も可能にする。さらに、処理動作を予測する可能性が、リアルタイムシステムをよりよくサイジングできるようにし、したがってより高い全体的な性能を取得できるようにする。これらの優位点がリアルタイムシステムの操作信頼性に影響を及ぼすことなく得られることに留意されたい。
大部分のリアルタイムシステムでは、処理動作の実行時間を制御するために時間測定、及び時間制約(時間ウィンドウへの時間の分解)を記述するために使用される時間測定は、例えば回路CLK等、クロック回路から生じる同じソースに基づく。ただし、この条件は必要ではない。実際、いくつかのリアルタイムシステムは(クロック信号に関係しない)定期的ではない外部イベントによって時間ウィンドウを区切るために計時されてよい。例えば、これらの外部イベントは、可変速度で運転するクランクシャフトの角位置のような移動物体の位置、又は厳密には期間が一定ではない交流電気信号の位相に関係してよい。
従来の方式では、定期的ではない時間基準を使用しなければならないことは、タスクの順序制御を容易に構築できるようにせず、このことが動的なスケジューリングアルゴリズムの使用につながる。それどころか、上記に提示された方法を用いると、まったく同じように進めることが可能である。時間制約、したがって処理動作の順序制御が例えば角位置測定信号等、定期的ではない第2の信号によって定義される異なる時間基準で表されるのに対し、時間要件及び時間割当量は依然として第1のクロック信号によって定義されるプロセッサの実行時間単位で表される。ただし、アプリケーションをスケジューリングできるように、2つの信号の間には関係があり、それにより第1のクロック信号で測定される第2の信号の時間単位の最小期間を決定することが可能である。この場合、因数Kxの値は、この最小値に従って依然として決定され得る。結果として、因数Kxで要件を乗算することによって要件マージンを定義することも可能である。
一実施形態に従って、因数Kxは第1のクロック信号で測定される第2の信号によって定義される時間単位の最小期間に従って計算される値に設定される。結果として、遊休時間が変わり、第2の信号によって定められる時間単位がその最小値から離れるとき特に増加するのに対し、マージンのそれぞれの持続時間は一定である。
性能及び信頼性に関して上述される特徴及び優位点と同じ特徴及び優位点は、このようにして、定期的ではない時間基準の速度変動に関わりなく維持され、それに基づいて実行時間制約(つまり、時間ウィンドウ)が定義される。
本発明が多様な代替実施形態及び多様な用途を可能とすることが当業者によって理解される。特に、本発明は、時間割当量超過している処理動作の実行を続行するために時間マージンを使用することに制限されていない。実際、例えば、処理動作に特有のエラー処理動作を実行する等、他のエラー処理動作が提供されてよい。
さらに、リアルタイムアプリケーションの処理動作に割り当てられる時間マージンは、これらの処理動作に割り当てられる時間割当量に必ずしも比例していない。時間マージンのそれぞれの持続時間を計算するための他のモードが使用されてよい。時間割当量及び割り当てられたマージン、並びにアプリケーションに割り当てられる計算時間リソースを考えると、リアルタイムアプリケーションをスケジューリングできることは単に重要にすぎない。したがって、各処理動作に割り当てられるマージンは、処理動作に従って明確に定義されてよい。
引用文書
[1]「Scheduling Algorithms for Multiprogramming in a Hard Real−Time Environment」、C.L.Liu、J.W.Layland、米国計算機学会誌、第20巻、第1号、1973年1月、46〜61ページ
[2]「Foundations of Real−Time Computing: Scheduling and Resource Management」、Andre M.Van Tilborg、Gary M.Koob編集、1991年、クルーヴァーアカデミックパブリッシャーズ
[3]「A Method and a Technique to Model and Ensure Timeliness in Safety Critical Real−Time Systems」、C.Aussagutes、V.David、第4回IEEE複雑なコンピュータシステムのエンジニアリングに関する国際会議、1998年
[4]特許出願第WO/2002/039277号又は米国/第2004/0078547号
[5]「The Worst−Case Execution Time Problem − Overview of Methods and Survey of Tools」、R.Wilhelm、J.Engblom、A.Ermedahi、N.Holsti、S.Thesing、D.Whalley、G.Bernat、C.Ferdinand、R.Heckmann、T.Mitra、F.Mueller、I.Puaut、P.Puschner、J.Staschulat、P.Stenstrom、ACM埋込計算システムに関する議事録(TECS)、2007
[6]”Giotto:A Time−Triggered Language for Embedded Programming」、T.A.Henzinger、B.Horowitz、C.M.Kirsch、EMSOFT 2001年、166〜184ページ、2001年、シュプリンガーフェアラーク
[7]特許出願第WO/2006/050967号
[8]特許出願米国/第2010/0199280号

Claims (13)

  1. マルチタスクコンピュータ(RTS)で、各タスク(A、B)が少なくとも1つの処理動作(Ti)を備えるリアルタイムアプリケーションのタスクを実行するための方法であって、
    それぞれが前記アプリケーションのタスクの処理動作の前記実行と関連付けられる時間ウィンドウを定義するステップと、
    時間ウィンドウを有する各処理動作に、時間割当量(Qi)及び時間マージン(Mi)を割り当てるステップであって、前記時間割当量及び前記時間マージンによって前記処理動作に割り当てられる前記時間が前記処理動作と関連付けられる前記時間ウィンドウの前記持続時間より短い、割り当てるステップと、
    前記マルチタスクシステムによる前記アプリケーションの前記実行中に、各処理動作が関連付けられる前記時間ウィンドウの前記開始時に各処理動作を活性化するステップと、
    前記処理動作の内の1つの前記時間割当量の満了時に、前記処理動作の前記実行が完了していない場合エラーモードを活性化するステップと、
    前記エラーモードが前記処理動作の内の1つに対してアクティブである場合、前記時間割当量及び前記時間マージンによって前記処理動作に割り当てられる前記残り時間の間に、前記処理動作のためのエラー処理手順をエラーモードで実行するステップと
    を含む方法。
  2. 前記エラーモードが前記処理動作の内の1つに対してアクティブである場合、前記処理動作に割り当てられる前記時間マージン(Mi)の前記満了を監視しつつ、前記処理動作に割り当てられる前記時間割当量(Qi)の満了時に前記実行が完了していない前記処理動作(Ti)の前記実行を続行するステップと、
    前記処理動作に割り当てられる前記時間マージンの満了時に、前記処理動作の前記実行が完了していない場合、前記処理動作の前記実行を終了し、時間割当量超過エラー処理動作を実行するステップと
    を含む、請求項1に記載の方法。
  3. 前記アプリケーションの他のタスクを処理するためのいくつかの時間ウィンドウ上に延在する時間ウィンドウと関連付けられる前記処理動作を細分化し、これによって各時間ウィンドウが処理動作又は処理動作断片と独占的に関連付けられるステップと、
    前記細分化された処理動作のすべての前記断片の前記時間割当量の前記総計が、前記細分化された処理動作の前記時間割当量(QA2)に等しくなるように、前記処理動作断片(TA21、TA22)のそれぞれに時間割当量(QA21、QA22)を割り当てるステップであって、前記細分化された処理動作(TA2)と関連付けられる前記時間マージン(MA22)が前記細分化された処理動作の前記最後の断片(TA22)と関連付けられる、割り当てるステップと、
    各処理動作断片(TA21、TA22)と、それが前記細分化された処理動作(TA2)の最後の断片であるのかどうかを示す状態変数(LF)を関連付けるステップであって、前記処理動作断片と関連付けられる前記状態変数が、前記処理動作断片が細分化される処理動作(TA2)の最後の断片ではないことを示す場合、前記エラーモードが処理動作断片(TA21)の前記割当量(QA21)の満了時に活性化されない、関連付けるステップと
    を含む、請求項1又は2に記載の方法。
  4. 時間割当量(Qi)と関連付けられる前記処理動作(Ti)のそれぞれの前記マージン(Mi)が、前記処理動作の前記時間割当量に倍率(Kx)を適用することによって計算され、前記倍率は時間割当量と関連付けられるすべての前記処理動作に対して同一である、請求項1から3の1項に記載の方法。
  5. 前記倍率(Kx)は、前記アプリケーションの前記タスクを、前記処理動作の前記時間要件に従って、前記処理動作と関連付けられる前記時間ウィンドウに従って、及び前記コンピュータ(RTS)の前記特徴に従ってスケジューリングできるように決定される、請求項4に記載の方法。
  6. 前記処理動作は、第1の時間基準によって計時されるプロセッサ(PRC)によって実行され、前記処理動作(Ti)と関連付けられる前記時間ウィンドウが前記第1の時間基準と比較して定期的ではない第2の時間基準で定義され、前記第2の時間基準の時間単位が前記第1の時間基準の最小値を有し、前記倍率(Kx)が前記最小値に従って定義される、請求項4又は5に記載の方法。
  7. 各処理動作(Ti)が、それが前記処理動作を実行するプロセッサ(PC)に関して入力/出力を実行するかどうかを示す状態変数(IO)と関連付けられ、前記処理動作の内の1つが、前記処理動作が入力/出力も実行しないことを示す状態変数と関連付けられる場合、前記処理動作の前記実行が、以前の処理動作の前記実行が終了するとすぐに、前記処理動作の前記時間ウィンドウの前記開始を待機することなく起動される、請求項1から6の1項に記載の方法。
  8. 各タスク(A、B)が少なくとも1つの処理動作(Ti)を備える、いくつかのタスクを備えるリアルタイムアプリケーションを実行するマルチタスクコンピュータ(RTS)を備えるリアルタイムマルチタスクシステムであって、
    それぞれが前記アプリケーションのタスクの処理動作のセットの前記実行と関連付けられる時間ウィンドウを記憶する、
    時間割当量及び時間マージンによって前記処理動作に割り当てられる前記時間が、前記処理動作の時間ウィンドウの前記持続時間よりも短い、前記時間ウィンドウを有する処理動作ごとに、前記時間割当量(Qi)及び前記時間マージン(Mi)を記憶する、
    前記アプリケーションの前記処理動作を実行し、前記処理動作の内の1つの前記時間割当量の満了時に、前記処理動作の前記実行が完了していない場合、エラーモードを活性化する、
    前記エラーモードが前記処理動作の内の1つに対してアクティブである場合、前記時間割当量及び前記時間マージンによって前記処理動作に割り当てられる前記残り時間中に、前記処理動作のためのエラー処理手順をエラーモードで実行する
    ように構成される、システム。
  9. 前記エラーモードが前記処理動作の内の1つに対してアクティブである場合、前記処理動作に割り当てられる前記時間マージン(Mi)の前記満了を監視しつつ、その時間割当量(Qi)の満了時に前記実行が完了していない前記処理動作(Ti)の前記実行を続行する、及び
    前記時間マージンの満了時に、前記処理動作の前記実行が完了していない場合、前記処理動作の前記実行を終了し、時間割当量超過エラー処理動作を実行する
    ように構成される、請求項8に記載のシステム。
  10. 時間ウィンドウと関連付けられる前記処理動作のいくつかが細分化される事実を記憶する、
    処理動作断片ごとに、前記処理動作断片の前記実行のために時間ウィンドウ及び時間割当量を記憶する、
    細分化された処理動作の最後の断片ごとに、関連付けられた時間マージンとして、前記細分化された処理動作(A2)と関連付けられた前記時間マージン(MA22)を記憶する、
    処理動作断片(TA21、TA22)ごとに、前記断片が細分化された処理動作(TA2)の前記最後の断片であるかどうかを示す状態変数(LF)を記憶する、及び
    前記アプリケーションの前記実行中、処理動作断片と関連付けられる前記状態変数が、前記処理動作断片が細分化された処理動作(TA2)の最後の断片ではないことを示す場合、前記処理動作断片(TA21)の前記割当量(QA21)の満了時にエラーモードを活性化しない
    ように構成される、請求項8又は9に記載のシステム。
  11. 時間割当量(Qi)と関連付けられる前記処理動作(Ti)のそれぞれの前記マージン(Mi)を、前記処理動作の前記時間割当量に倍率(Kx)を適用することによって決定するように構成され、前記倍率が時間割当量と関連付けられるすべての前記処理動作にとって同一である、請求項8から10の1項に記載のシステム。
  12. 前記処理動作を実行するために第1の時間基準によって計時され、前記第1の時間基準に比較して定期的ではない第2の時間基準を受け取るプロセッサ(PRC)を備え、前記システムが記第2の時間基準で前記処理動作(Ti)と関連付けられる前記時間ウィンドウを決定するように構成され、前記第2の時間基準の時間単位が前記第1の時間基準の最小値を有し、前記倍率(Kx)が前記最小値に従って定義される、請求項11に記載の前記システム。
  13. 処理動作(Ti)ごとに、前記処理動作が、前記処理動作を実行する前記システムのプロセッサ(PRC)に関して入力/出力を実行するかどうかを示す状態変数(IO)を記憶する、及び
    前記処理動作の内の1つが、前記処理動作が入力/出力も実行しないことを示す状態変数と関連付けられる場合、以前の処理動作の前記実行が終了するとすぐに、前記処理動作の前記時間ウィンドウの前記開始を待機することなく前記処理動作の前記実行を起動する
    ように構成される、請求項8から12の1つに記載のシステム。
JP2016508208A 2013-04-19 2014-03-17 リアルタイムで決定論的エラー回復を可能にするタスク時間割当て方法 Active JP6424208B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1353630 2013-04-19
FR1353630A FR3004825B1 (fr) 2013-04-19 2013-04-19 Procede d'allocation temporelle de taches permettant une recuperation d'erreur deterministe en temps reel
PCT/FR2014/050613 WO2014170569A1 (fr) 2013-04-19 2014-03-17 Procédé d'allocation temporelle de tâches permettant une récupération d'erreur deterministe en temps réel

Publications (2)

Publication Number Publication Date
JP2016519371A true JP2016519371A (ja) 2016-06-30
JP6424208B2 JP6424208B2 (ja) 2018-11-14

Family

ID=48782417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016508208A Active JP6424208B2 (ja) 2013-04-19 2014-03-17 リアルタイムで決定論的エラー回復を可能にするタスク時間割当て方法

Country Status (10)

Country Link
US (1) US9645850B2 (ja)
EP (1) EP2987081B1 (ja)
JP (1) JP6424208B2 (ja)
KR (1) KR102209030B1 (ja)
CN (1) CN105190556B (ja)
BR (1) BR112015026331B1 (ja)
CA (1) CA2908951C (ja)
FR (1) FR3004825B1 (ja)
RU (1) RU2648943C2 (ja)
WO (1) WO2014170569A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018072948A (ja) * 2016-10-25 2018-05-10 株式会社リコー 情報処理システム、更新方法、情報処理装置及びプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10768984B2 (en) 2015-06-11 2020-09-08 Honeywell International Inc. Systems and methods for scheduling tasks using sliding time windows
KR102079499B1 (ko) * 2015-10-20 2020-02-21 엘에스산전 주식회사 Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법
JP6838222B2 (ja) * 2016-04-28 2021-03-03 日立Astemo株式会社 車両制御装置、及び車両システム
US11025722B2 (en) * 2017-04-15 2021-06-01 Microsoft Technology Licensing, Llc IoT device jobs
FR3067482A1 (fr) * 2017-06-12 2018-12-14 Inria Institut National De Recherche En Informatique Et En Automatique Dispositif de caracterisation et/ou de modelisation de temps d'execution pire-cas
EP3537293A1 (de) * 2018-03-09 2019-09-11 Till I.D. GmbH Zeitlich deterministischer mikroprozessor und mikrocontroller
DE102018205390A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
CN109213027B (zh) * 2018-07-16 2021-07-16 哈尔滨工程大学 一种基于μ/COS-II实时操作系统的船用低速共轨柴油机调速单元
FR3093579B1 (fr) * 2019-03-07 2021-07-30 Thales Sa Ordonnanceur d'evenements pour microprocesseur

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000056989A (ja) * 1998-08-03 2000-02-25 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク設計方法
JP2003298599A (ja) * 2002-03-29 2003-10-17 Denso Corp 分散制御方法及び装置
JP2004070582A (ja) * 2002-08-05 2004-03-04 Nec Corp イベント通知タスク制御処理方式及び方法並びにプログラム
JP2004521427A (ja) * 2001-06-05 2004-07-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ タスクの進行を評価する方法及びシステム
JP2004206369A (ja) * 2002-12-25 2004-07-22 Nec Corp 共通資源へのアクセス方式及びアクセスプログラム
JP2011191806A (ja) * 2010-03-11 2011-09-29 Toyota Central R&D Labs Inc タスク実行制御装置及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640563A (en) * 1992-01-31 1997-06-17 International Business Machines Corporation Multi-media computer operating system and method
FR2816730B1 (fr) 2000-11-13 2004-10-15 Commissariat Energie Atomique Procede de securisation rendant deterministe l'execution en temps reel d'applications multitaches du type controle- commande avec confinement d'erreur
DE102004054571B4 (de) 2004-11-11 2007-01-25 Sysgo Ag Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem
US7971095B2 (en) * 2005-02-16 2011-06-28 Honeywell International Inc. Fault recovery for real-time, multi-tasking computer system
JP5299869B2 (ja) * 2006-06-19 2013-09-25 コンデューシブ・テクノロジーズ・コーポレイション コンピュータマイクロジョブ
US8316368B2 (en) * 2009-02-05 2012-11-20 Honeywell International Inc. Safe partition scheduling on multi-core processors
CN103034554B (zh) * 2012-12-30 2015-11-18 焦点科技股份有限公司 一种纠错重启以及自动判断启动的etl调度系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000056989A (ja) * 1998-08-03 2000-02-25 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク設計方法
JP2004521427A (ja) * 2001-06-05 2004-07-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ タスクの進行を評価する方法及びシステム
JP2003298599A (ja) * 2002-03-29 2003-10-17 Denso Corp 分散制御方法及び装置
JP2004070582A (ja) * 2002-08-05 2004-03-04 Nec Corp イベント通知タスク制御処理方式及び方法並びにプログラム
JP2004206369A (ja) * 2002-12-25 2004-07-22 Nec Corp 共通資源へのアクセス方式及びアクセスプログラム
JP2011191806A (ja) * 2010-03-11 2011-09-29 Toyota Central R&D Labs Inc タスク実行制御装置及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AUSSAGUES, CHRISTOPHE, DAVID, VINCENT: ""A Method and a Technique to Model and Ensure Timeliness in Safety Critical Real-Time Systems"", IN: PROCEEDINGS OF 4TH IEEE - INTERNATIONAL CONFERNCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (IC, JPN6018002449, 14 August 1998 (1998-08-14), US, pages 1 - 11, ISSN: 0003726696 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018072948A (ja) * 2016-10-25 2018-05-10 株式会社リコー 情報処理システム、更新方法、情報処理装置及びプログラム

Also Published As

Publication number Publication date
JP6424208B2 (ja) 2018-11-14
KR20160003710A (ko) 2016-01-11
US20160055032A1 (en) 2016-02-25
US9645850B2 (en) 2017-05-09
FR3004825A1 (fr) 2014-10-24
CA2908951C (fr) 2021-06-01
EP2987081B1 (fr) 2024-05-08
CN105190556A (zh) 2015-12-23
WO2014170569A1 (fr) 2014-10-23
RU2015149621A (ru) 2017-05-24
FR3004825B1 (fr) 2015-04-24
BR112015026331A2 (pt) 2017-07-25
KR102209030B1 (ko) 2021-01-28
EP2987081A1 (fr) 2016-02-24
CA2908951A1 (fr) 2014-10-23
CN105190556B (zh) 2019-06-21
RU2648943C2 (ru) 2018-03-28
BR112015026331B1 (pt) 2022-05-03

Similar Documents

Publication Publication Date Title
JP6424208B2 (ja) リアルタイムで決定論的エラー回復を可能にするタスク時間割当て方法
US9208113B2 (en) Deferred inter-processor interrupts
Swaminathan et al. Pruning-based, energy-optimal, deterministic I/O device scheduling for hard real-time systems
KR20130126717A (ko) 낮은 오버헤드를 갖는 전력 프로파일 정보의 획득
EP2624135A2 (en) Systems and methods for task grouping on multi-processors
Kumar et al. Reliability aware energy optimized scheduling of non-preemptive periodic real-time tasks on heterogeneous multiprocessor system
US20160328011A1 (en) Asynchronous processor
Colin et al. Energy-efficient allocation of real-time applications onto single-ISA heterogeneous multi-core processors
Hilbrich et al. Model-based generation of static schedules for safety critical multi-core systems in the avionics domain
Kritikakou et al. Dynascore: Dynamic software controller to increase resource utilization in mixed-critical systems
Blin et al. Maximizing parallelism without exploding deadlines in a mixed criticality embedded system
Guo et al. Mixed-criticality scheduling upon varying-speed multiprocessors
US9323642B2 (en) Calculation apparatus, calculation method, and recording medium for calculation program
Papadopoulos et al. Feedback-based resource management for multi-threaded applications
Natale et al. Buffer optimization in multitask implementations of simulink models
CN117591267B (zh) 一种任务处理方法、设备、介质及系统
US20130086402A1 (en) DFVS-Enabled Multiprocessor
Zou et al. Multi-Mode P-FRP Task Scheduling
US11880231B2 (en) Accurate timestamp or derived counter value generation on a complex CPU
JP7012905B1 (ja) スケジュール生成装置、スケジュール生成方法及びスケジュール生成プログラム
US20230244955A1 (en) Decision Diagram-Based Management of a Computer System or its Part
Dugo et al. Efficient Scheduling, Mapping and Memory Bandwidth Allocation for Safety-Critical Systems
Musliner Scheduling issues arising from automated real-time system design
Tessler et al. Bringing Inter-Thread Cache Benefits to Federated Scheduling--Extended Results & Technical Report
Ntaryamira et al. Data consistency and temporal validity under the circular buffer communication paradigm

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160421

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180419

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180925

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181022

R150 Certificate of patent or registration of utility model

Ref document number: 6424208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250