JP2019194848A - 分散したソフトウェアコンポーネント間の通信におけるエラー処理のための方法および装置 - Google Patents

分散したソフトウェアコンポーネント間の通信におけるエラー処理のための方法および装置 Download PDF

Info

Publication number
JP2019194848A
JP2019194848A JP2019073938A JP2019073938A JP2019194848A JP 2019194848 A JP2019194848 A JP 2019194848A JP 2019073938 A JP2019073938 A JP 2019073938A JP 2019073938 A JP2019073938 A JP 2019073938A JP 2019194848 A JP2019194848 A JP 2019194848A
Authority
JP
Japan
Prior art keywords
task
interval
execution
communication
time
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.)
Pending
Application number
JP2019073938A
Other languages
English (en)
Inventor
ルー・ギヨ
Guillot Lou
ペーター・ヘーフェレ
Hefele Peter
ジーモン・クラマー
Kramer Simon
ウーベ・ハートマン
Hartmann Uwe
ベヌゴパラン・ランジト・クマール
Ranjith Kumar Venugopalan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2019194848A publication Critical patent/JP2019194848A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0793Remedial or corrective actions
    • 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/0709Error 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 distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • 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/54Interprogram communication
    • 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/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】タスクの実行が時間的にずらされた場合でも、決定論的エラー処理を提供する。【解決手段】通信すべきデータが、データ伝送間隔K内で、一時的なデータ記憶のための第1のデータ領域からの読み取りおよび一時的なデータ記憶のための第2のデータ領域内での読み取られたデータの記憶により、第1のタスクT1と第2のタスクT2との間で通信する装置において、第1のタスクT1を実行するための時間間隔l1および第2のタスクT2を実行するための通信間隔l2が設定され、データ伝送間隔、時間間隔および通信間隔が、相互に接近し、もしくは重複して特定の関係を満たす場合には、当該タスクの実行をスキップする。【選択図】図1

Description

本発明は、とりわけ異なるサイクルタイムが設定されている時間間隔内で実行される2つ以上のタスクに分散されたソフトウェアコンポーネント間の通信におけるエラー処理のための方法および装置に関する。
エラーにより、タスクが完了する前に、サイクルタイム、つまり時間間隔の終了に達する可能性があり、このタスクの結果は、時間間隔の終了時にもう1つのタスクに渡すことになっている。
このようなエラーには決定論的エラー処理が望ましい。
これは、独立請求項に基づく方法および装置によって達成される。コンピュータプログラムおよびコンピュータプログラム製品も提供される。
通信におけるエラー処理のための方法であって、通信すべきデータが、データ伝送間隔内で、一時的なデータ記憶のための第1のデータ領域からの読み取りおよび一時的なデータ記憶のための第2のデータ領域内での読み取られたデータの記憶により、第1のタスクと第2のタスクとの間で通信される、方法に関して、第1のタスクを実行するための時間間隔および第2のタスクを実行するための通信間隔が設定され、これに関し、
a)第1の通信間隔内のデータ伝送間隔の実行は、以下の場合にはスキップされ、すなわち、第1のタスクが第1の通信間隔の時間的に直前に、この通信間隔のすぐ前の通信間隔の最後の時間間隔内で開始されており、この最後の時間間隔の終了時点を過ぎても続いており、かつ第1の通信間隔の第2のタスクの実行が既に開始されている場合には、スキップされ、または
b)第1の通信間隔内のデータ伝送間隔の実行は、以下の場合にはスキップされ、すなわち、第2のタスクが第1の通信間隔の時間的にすぐ前の第2の通信間隔内で開始されており、すぐ前の第2の通信間隔の終了時点を過ぎても続いており、かつ第1の通信間隔内の第1のタスクの実行が既に開始されている場合には、スキップされる。
時間間隔および通信間隔とはスケジューラの論理間隔であり、これらの論理間隔は、固定的なタイムスライスに基づいており、ずらすことはできない。しかしながらスケジューラのこの提示している実装は、論理間隔の遵守を強制しているのではなく、実際の間隔を終了したと初めて見なすのは、スケジューラがこの実際の間隔のすぐ後の新たな間隔内でタスク実行を現実にも実施してからである。これにより、タスクがそれらタスクにその実行のために割り当てられた論理間隔の終了を遵守できないほど計算システムを鈍らせる負荷ピーク時にも、決定論的通信が可能である。これは、様々な設定された静的なタスク分散およびタスクスケジューリングを有するカテゴリーに応じた様々な固有事項による、効率的なエラー処理を可能にする。これは、タスク実行の散発的な中止に関する有効なエラー処理コンセプトである。
好ましいのは、第1のタスクの実行が第2のタスクの実行より遅く完了する場合は、データ伝送間隔の開始が第1のタスクの実行の完了によって起動され、または第2のタスクの実行が第1のタスクの実行より遅く完了する場合は、データ伝送間隔の開始が第2のタスクの実行の完了によって起動されることである。
第1のタスクの実行が、第1のタスクのこの実行が開始された通信間隔の終了を過ぎても継続している場合で、データ伝送間隔の開始が第1のタスクの実行の完了によって起動される場合、第1のタスクのこの実行のすぐ後の第2のタスクの実行が、データ伝送間隔の終了まで延期されることが好ましい。これにより不整合データが発生しない。
第2のタスクの実行が、第2のタスクのこの実行が開始された通信間隔の終了を過ぎても継続している場合で、データ伝送間隔の開始が第1のタスクの実行の完了によって起動される場合、この通信間隔内ではデータ伝送間隔の起動がもはや起こらないことが好ましい。これにより不整合データが発生しない。
通信すべきデータが、データ伝送間隔内で、1つまたは複数のインスタンスにより、第1のタスクおよび第2のタスクを実行するためのハードウェアの外部で通信されることが好ましい。通信作業を1つまたは複数のインスタンスにスワップすることにより、決定論的処理が、例えばダイレクトメモリアクセス、DMAまたは割り込みサービスルーチン、ISRによって保証される。
前述のエラー処理コンセプトは、データ整合性がいつでも保証されていることを確保する。通信またはタスク実行のためのトランザクションが省略されるのは、さもなければデータ整合性が保証できなくなる場合だけである。これらのエラー処理コンセプトは、システム全体のロバスト性を高めるために、個々のタスク実行の中止および個々のトランザクションの中止により、システム負荷を減らすことができる。これらのエラー処理コンセプトは、複数回のプロセスアクティブ化のようなランタイムエラーを認識するために、スケジューリング情報にアクセスすることができる。
通信間隔の期間は、時間間隔のための期間の整数倍であることが好ましく、これに関し、1つの通信間隔は複数の時間間隔を含んでおり、これらの複数の時間間隔の一番早い時間間隔が、通信間隔と同時に始まる。これにより論理間隔が同期する。
1つの通信間隔中に少なくとも1つの時間間隔が始まることが好ましく、これに関し、時間間隔は時間的に重なり合っておらず、データ伝送間隔は、これらの時間間隔の一番早い時間間隔内の第1のタスクの最初の実行の前に終了しているか、またはこれらの時間間隔の一番遅い時間間隔内の第1のタスクの最後の実行の完了後に開始される。協調スケジューリングにより、新たな間隔内での最初のタスク実行が行われる前に通信が完全に完了していることが保証される。プリエンプティブスケジューリングでは、関与するプロセスによる中断は起こらず、かつ優先度のより低いプロセスが場合によっては押し退けられることが、スケジューラによって保証されている。
ステータス変数は、第1のプロセスの実行の第1の状態および第2のプロセスの実行の第2の状態に応じて決定されることが好ましく、これに関し、データ伝送間隔はステータス変数の値に応じてスタートする。ステータス変数は、例えば、第1の状態用の第1の状態カウンタの第1のカウントおよび第2の状態用の第2の状態カウンタの第2のカウントによって決定される。
1つの通信間隔内の第1のプロセスの1つが中止される場合に、詳しくは、この通信間隔中に動作すべき第1のプロセスの最後の第1のプロセスを除く、この通信間隔中に動作すべき第1のプロセスの1つが、この通信間隔に割り当てられた最初の時間間隔の終了時に完了していないので、1つの第1のタスクの実行が中止される場合に、第1の状態カウンタが訂正されることが有利であり、その際、第1の状態カウンタは、中止された第1のタスクが実行された場合に第1の状態カウンタが有するであろう状態に訂正される。
ステータス変数が、第1のタスクおよび第2のタスクに割り当てられた優先度に応じて決定されることが有利であり、これに関し、一番低い優先度を割り当てられたタスクが、通信間隔の1つ内の最後のタスクとして実行される場合、一番低い優先度をもつタスクが完了するすぐ後のデータ伝送間隔の開始は、すぐ後に続く通信間隔内にずらされる。一番高い優先度をもつタスクは、時間間隔内で最初にまたはそのほかのタスクと同時にアクティブにされる。一番低い優先度をもつタスクは通信間隔が終わっても続けられる。通信はその後、データ伝送間隔内で行われる。
通信におけるエラー処理のための装置に関しては、プロセッサおよび少なくとも1つの一時的なデータメモリが設けられており、これらは、通信すべきデータを、データ伝送間隔内で、少なくとも1つの一時的なデータメモリの第1のデータ領域からの読み取りおよび少なくとも1つの一時的なデータメモリの第2のデータ領域内での読み取られたデータの記憶により、第1のタスクと第2のタスクとの間で本方法の1つに基づいて通信するように形成されている。
この装置が、通信すべきデータをダイレクトメモリアクセス、DMAまたは割り込みサービスルーチンで通信するためのモジュールを含んでいることが有利である。
さらなる有利な形態は、以下の説明および図面から明らかである。
タスクの第1の時間制御された挙動の概略図である。 第1のエラー処理コンセプトの概略図である。 第2のエラー処理コンセプトの概略図である。 タスクの第2の時間制御された挙動の概略図である。 第3のエラー処理コンセプトの概略図である。 第4のエラー処理コンセプトの概略図である。 タスクの第3の時間制御された挙動の概略図である。 第5のエラー処理コンセプトの概略図である。 第6のエラー処理コンセプトの概略図である。 通信のための装置の概略図である。
タスクとは、ランタイムのためのコンピュータプログラムであり、その実行はオペレーティングシステムで特定のアクションにより動的にコントロールされる。タスクは、オペレーティングシステムのタスク制御によって管理され、このタスク制御をスケジューラとも言う。タスク制御は、タスクをそれが完了するまで計算させることができるか、または短い期間後にその都度、ちょうど動作しているタスクを中断させることができるかのいずれかである。こうしてタスク制御は、様々なアクティブタスクの間であちこちに切り替えることができる。タスクは、異なる長さであってよく、かつ異なる時点でスタートしてよい。
タスクの経時的な実行に関しては、タスク制御において、第1のタスクの周期的実行のための繰り返される時間間隔および第2のタスクの周期的実行のための繰り返される時間間隔が規定される。この例では、第2のタスクのための時間間隔の期間が、第1のタスクのための時間間隔の期間より長い。例えば第1のタスクのための時間間隔は5msの長さである。例えば第2のタスクのための時間間隔は10msの長さである。これらの時間間隔はスケジューラの論理間隔であり、これらの論理間隔は、固定的なタイムスライスに基づいており、ずらすことはできない。
タスク内のソフトウェアコンポーネントは相互間でデータを交換することができる。タスク間の通信のため、データを一時的なデータメモリ、とりわけバッファ内に中間記憶することができる。通信については、例えば通信すべきデータを、データ伝送間隔内で、第1のバッファからの読み取りおよび第2のバッファ内での読み取られたデータの記憶により、第1のタスクと第2のタスクとの間で通信する。この例では第1のタスクに、読み取り専用アクセスのための第1の5msバッファおよび読み取り書き込みアクセスのための第2の5msバッファを備えた第1のチャネルが割り当てられている。この例では第2のタスクに、読み取り専用アクセスのための第1の10msバッファおよび読み取り書き込みアクセスのための第2の10msバッファを備えた第2のチャネルが割り当てられている。一般的には、n個のタスクのために、2n個のこのようなバッファを備えたn個のチャネルを設けていることができる。
スケジューラの、以下の例に基づいて提示する実装は、論理間隔の遵守を強制しているのではなく、実際の間隔を終了したと初めて見なすのは、スケジューラがこの実際の間隔のすぐ後の新たな間隔内でタスク実行を現実にも実施してからである。一般的には、タスク間の通信におけるエラー処理に関し、以下に提示するエラーケースを分類することができる。
スケジューリングエラー
a)スケジュールが不完全であるかまたは決定論的でない。
b)タスクがアクティブになっていない(スキップされた)。
c)タスクが自発的にアクティブになっている。
d)チャネルのバッファがそれらの初期化前に使用される。
負荷に依存したエラー
a)タスクの完了が超える(複数回のタスクアクティブ化の際)。
b)通信が最後のデータ伝送間隔内で完了しなかった。
c)通信が最後のデータ伝送間隔内で実行されなかった。
メモリエラー
a)チャネル状態が損傷している。
スケジューリングエラーa)〜c)は、外部の時刻基準、例えば時計またはカウンタによってしか認識できない。
そのほかのエラーは、チャネル状態機械によって確実に認識できる。以下の例は、このチャネル状態機械に基づく通信方法ならびにエラー認識およびエラー処置の詳細を説明している。
計算システムにおいて通信方法および/またはエラー処理コンセプトをスケジューリング情報に基づいて選択するアルゴリズムは、タスクのコアへの割当て、スケジューリングタイプ、例えばプリエンプティブまたは協調、ならびに通信に関与するタスクの優先度および場合によってはシステムにおけるアクティブ化パターンによる順次実行を使用する。
カテゴリー「Concurrency Level」を確定する。このカテゴリーには、通信方法および/または対応するエラー処理コンセプトが割り当てられている。
「Concurrency Level」のあり得るカテゴリーは、
Cooperative Core Local
通信に関与するタスクが、専ら協調スケジューリングを有しており、かつ同じ計算コア上で実行される。
Preemptive Core Local
通信に関与するタスクが、プリエンプティブスケジューリングを有しており、かつ同じ計算コア上で実行される。
Parallel Cross Core
タスクが、少なくとも2つの計算コア上で実行される。
Sequential Core Local
タスクが、順次的に同じ計算コア上で実行される。
Sequential Cross Core
タスクが、順次的に少なくとも2つの計算コア上で実行される。
カテゴリー「Cooperative Core Local」における通信のための通信方法を、図1に基づいて説明する。
この通信方法は、すべての関与するタスクに通信負荷を分散することができる。この通信方法は、リアルタイムシステムにおける効率的で決定論的な通信を可能にする。この場合、ステータス変数Sを通信時点の決定に使用する。ステータス変数Sは、以下ではステータス変数のフェーズとも言う下記の状態の1つをとることができる。
PROC_ACTIVE
関与するタスクの少なくとも1つが、バッファ内に準備されたデータを使用している。読み取りバッファの上書きは、整合性の理由から許可されない。
PROC_COMPLETE
すべてのタスクが、1つの論理間隔内で(場合によってはあり得るエラーシナリオを考慮して)必要な数のアクティブ化を完了しており、準備されたデータはこの論理間隔内ではもう必要なくなっている。
TRANS_ACTIVE
個々のタスクの読み取りバッファを更新している。内包されているデータを用いた計算は、整合性の理由から許可されない。
TRANS_COMPLETE
バッファの更新が完了している。データを計算のために使用できる。ただしタスクはアクティブになっていない。
1つの通信間隔内で、ステータス変数Sは、状態PROC_ACTIVE、PROC_COMPLETE、TRANS_ACTIVE、TRANS_COMPLETEをこの順番に進んでいく。状態PROC_COMPLETEおよびTRANS_COMPLETEはスキップできる。各通信間隔内で1つのデータ伝送間隔Kを実行するべきである。データ伝送間隔K中は、バッファを更新するために、バッファに書き込みおよび/または読み取りアクセスする。通信間隔は、以下の例で説明するように、スケジューラの論理間隔に同期して定義されている。前述の例では、少なくとも1つのタスクが実行される場合は常にステータス変数Sが状態PROC_ACTIVEにセットされる。データ伝送間隔K中はステータス変数Sが状態TRANS_ACTIVEにセットされる。状態PROC_COMPLETEは、1つの通信間隔のすべての実行が完了した後にセットされる。状態TRANS_COMPLETEは、データ伝送間隔が終了した後に初めてセットされる。
通信を周期的に行うために、相互に通信すべき間隔T1、T2、...、Tnの最小公倍数、KGVとして、通信間隔l2を計算する。
Tnは、タスクnの間隔を表している。論理間隔は、個々のタスクの周期に時間的に同期して動作するよう定義されている。タスクはスケジューラによってアクティブにされる。通信間隔l2の終了までに、すべてのタスクおよびデータ伝送間隔Kが動作していることが望ましい。タスクにはそれぞれデッドラインが割り当てられており、これらのデッドラインまでにタスクが完了していなければならない。タスクをアクティブ化した後、このタスクに割り当てられたデッドラインの前に適時にこのタスクの計算を完了できない場合、スケジューラによるこのタスクのその後のアクティブ化は行われない。タスクをアクティブ化した後、このタスクに割り当てられたデッドラインの前に適時にこのタスクの計算を完了はするが、この通信間隔l2内に規定されているデータ伝送間隔Kは終了しない場合、この通信のためのエラー処理が必要である。
図1に基づく例に関し、通信間隔には、
l2=KGV(10ms、5ms)=10ms
が適用されている。
KGVの代わりにそのほかの公倍数を使用してもよい。
以下では図1に基づき、ステータス変数Sのフェーズがどのように順次進んでいくのかを説明する。ステータス変数Sは、第1のタスクの実行の第1の状態および第2のタスクの実行の第2の状態に応じて決定される。
通信はデータ伝送間隔K内で行われ、データ伝送間隔Kは、ステータス変数Sの値に応じてスタートする。
ステータス変数Sは、例えば、第1の状態用の第1の状態カウンタZ1の第1のカウントおよび第2の状態用の第2の状態カウンタZ2の第2のカウントによって決定される。第1の状態カウンタは、図1に示したように状態2、1、0をとることができる。第2の状態カウンタは、図1に示したように状態1、0をとることができる。
第1の状態カウンタZ1は、図1に示した時間経過では左側で、第1のカウント2で始まる。第1の論理間隔l1に同期して始まる時点t1で、第1のタスクT1の最初の実行が開始される。第1のタスクT1の最初の実行が完了する時点t2で、第1のカウントが1にセットされる。第1の論理間隔l1の最初の繰り返しに同期して始まる時点t3で、第1のタスクT1の2番目の実行が開始される。第1のタスクT1の2番目の実行が完了する時点t4で、第1のカウントが0にセットされる。
続いて時点t4でデータ伝送間隔Kがスタートする。データ伝送間隔Kは時点t5で終了する。時点t5で第1のカウントが2にセットされる。
第1の論理間隔l1の2番目および3番目の繰り返しも図1に示されている。2番目の繰り返しでは第1のタスクT1の3番目の実行が、第1の論理間隔l1の2番目の繰り返しと同期して時点t6で開始され、時点t7で完了する。第1のカウントが時点t7で2から1にセットされる。
3番目の繰り返しでは第1のタスクT1の4番目の実行が、第1の論理間隔l1の3番目の繰り返しと同期して時点t8で開始され、時点t9で完了する。第1のカウントが時点t9で1から0にセットされる。
第2の状態カウンタZ2は、図1では左側で、第2のカウント1で始まる。時点t1で、第2の論理間隔l2が第1の論理間隔l1と同期して始まる。第2のタスクT2の最初の実行は、第1のタスクT1の最初の実行が完了した後に、時点t2で開始される。つまり第1のタスクT1は、時点t1と時点t2との間で第2のタスクT2として処理される。
第2のタスクT2の最初の実行は、時点t10で、この例では時点t3の前に完了する。時点t10で第2のカウントが1から0にセットされる。データ伝送間隔Kの終了時に、つまり時点t5で、第2のカウントが0から1にセットされる。
第2の論理間隔l2の繰り返しも図1に示されている。時点t6で、第2の論理間隔l2の繰り返しが第1の論理間隔l1の2番目の繰り返しと同期して始まる。第2のタスクT2の2番目の実行は、第1のタスクT1の3番目の実行が完了した後に時点t7で開始される。つまり第1のタスクT1は、時点t6と時点t7との間で第2のタスクT2として処理される。この繰り返しでは第2のタスクT2の2番目の実行が、第1のタスクT1の4番目の実行のための時点t8とt9との間で、第1のタスクT1の3番目の繰り返しを行うために中断される。時点t9で第2のタスクT2の繰り返しが続行され、時点t11で完了する。時点t11で第2のカウントが0にセットされ、データ伝送間隔Kが繰り返される。データ伝送間隔Kの繰り返しは時点t12で終了する。第1のカウントが時点t12で2にセットされる。第2のカウントが時点t12で1にセットされる。
時点t1とt4およびt6とt9との間では、第1の5msバッファB51および第2の5msバッファB52へのアクセスが許可されている。時点t1とt10およびt6とt11との間では、第1の10msバッファB101および第2の10msバッファB102へのアクセスが許可されている。5msタスクからのアクセスは、この例ではt1とt2、t3とt4、t6とt7、およびt8とt9との間で、つまり第1のタスクT1の実行中に行われている。10msタスクからのアクセスは、この例ではt2とt10との間、つまり第2のタスクT2の最初の実行中に、およびt6とt7との間、つまりプリエンプティブに第2のタスクT2の繰り返しの実行前に行われている。データ伝送間隔K内では、タスクに対してすべてのバッファへのアクセスが禁じられている。タスクから第1の5msバッファB51および第1の10msバッファB101へのアクセスは、図1では一方向矢印で示される。タスクからもう一方のバッファへのアクセスは、図1では双方向矢印で示されている。データ伝送間隔K内では、第2の5msバッファB52から第2の10msバッファB102に書き込まれ、かつ第1の10msバッファB101から第1の5msバッファB51に書き込まれる。
ステータス変数Sは、時点t1とt4との間では状態PROC_ACTIVEを有している。
ステータス変数Sは、第1の状態カウンタZ1も第1の状態値0を有し、第2の状態カウンタZ2も第2の状態値0を有する時点t4とt5との間では状態TRANS_ACTIVEを有している。
ステータス変数Sは、時点t5とt6との間では状態TRANS_COMPLETEを有している。
ステータス変数Sは、時点t6とt11との間では状態PROC_ACTIVEを有している。
ステータス変数Sは、第1の状態カウンタZ1も第1の状態値0を有し、第2の状態カウンタZ2も第2の状態値0を有する時点t11とt12との間では状態TRANS_ACTIVEを有している。
ステータス変数Sは、図1では時点t12以降は状態TRANS_COMPLETEを有している。
通信はタスクのコンテキスト内で行われるので、このシナリオでのPROC_COMPLETEは、純粋な論理ステータスであり、PROC_ACTIVEからTRANS_ACTIVEに直接移行する場合は省略される。
タスクを実際に実行する際、タスクおよび通信を完全に実行するために実際に必要な通信間隔は、前述のエラーにより通信間隔から逸脱する可能性がある。エラー処理を図2および図3に基づいて説明する。既に図1に基づいて説明した要素に関しては、同じ符号を使用し、かつ図1についての説明を参照されたい。
図1に示した状況とは異なり、図2に示したように、第1の論理間隔l1の最初の繰り返し中に、時点t20で第1のタスクT1の2番目の実行の中断が行われる。2番目の実行は、時点t6の前の時点t21で続行され、時点t6の前の時点t22で完了する。時点t6ではデータ伝送間隔Kが開始されている。データ伝送間隔Kは、この例では時点t6の後にある時点t23で終了する。これは、データ伝送間隔Kが第1の論理間隔l1の2番目の繰り返しが始まった後に終了することを意味している。
第2のタスクT2の2番目の実行は時点t23で開始される。これにより、第2のタスクT2の2番目の実行は、第1のタスクT1の最新のデータを得ることになる。第1のタスクT1の3番目の実行は、第1の間隔l1の2番目の繰り返し内では抑制される。これにより第2のタスクT2の2番目の実行を、第1の間隔l1の2番目の繰り返しが終了する前に完了させることができる。
図1で示した状況とは異なり、図3に示したように、第1の論理間隔l1の最初の繰り返し中に、時点t3で第2のタスクT2の最初の実行の中断が行われる。第1のタスクT1の2番目の実行は、時点t3の後の時点t30で開始され、時点t6の前の時点t31で、つまり第1の論理間隔l1の最初の繰り返し中に完了する。時点t31で、第2のタスクT2の最初の実行が続行される。第1のタスクT1の3番目の実行を時点t32までに実施するため、時点t6で第2のタスクT2の最初の実行が改めて中断される。時点t32で第2のタスクT2の最初の実行が続行され、時点t8の前の時点t33で完了する。時点t8で、第1のタスクT1の4番目の実行が開始される。時点t34で、第1のタスクT1の4番目の実行が完了する。時点t34でデータ伝送間隔Kが開始される。データ伝送間隔Kは時点t35で終了する。
第2のタスクT2の2番目の実行は、論理的な第2の間隔l2の繰り返し内では抑制される。
それぞれの実行の抑制、つまりスキップにより、計算システムが決定的に負荷軽減される。実行中のタスクが論理間隔の境界を超えることを、以下にタスクデッドライン違反と言う。このようなタスクデッドライン違反への反応として、通信インフラにより、次の周期のタスク実行が中止される。
これに関し、原理的には2つの形式を区別しなければならない。
形式1
デッドライン違反が、タスクの最後の実行の際にデータ伝送間隔内で起こっている。
形式1の場合、2つのさらなる形式が区別される。
形式1A
デッドライン違反が、トランザクションのスタート前に既に起こっている。関与するタスクの1つが、新たな間隔内で既に計算を開始していた。PROC_ACTIVEからのステータス移行が、新たなデータ伝送間隔へ移行する。バッファの更新が省略される。
形式1B
ここでは図2に示したように、バッファの更新が既に行われている。ステータスTRANS_ACTIVEがセットされており、その一方でデッドライン違反が起こっている。協調スケジューリングにより、新たな間隔内での最初のタスク実行が行われる前に通信が完全に完了していることが保証される。
形式2
デッドライン違反が、タスクの最後の実行の際にデータ伝送間隔内で起こっているのではない。
形式2の場合、タスク実行の中止によって違ってしまったカウントを訂正するだけである。これは通信への影響を有さない。
図4では、カテゴリー「Parallel Cross Core」に相当する通信のための通信方法を示している。符号が一致する要素に関しては、図1についての説明も参照されたい。
前述の例とは異なり、タスクは並行しても計算される。これに加え、データ伝送間隔K内での通信の実施は、通信すべきデータを通信するためのモジュール400により、ダイレクトメモリアクセス、DMAまたは割り込みサービスルーチンで行われる。データ伝送間隔Kのスタートには第1のトリガ301を使い、データ伝送間隔Kの繰り返しのスタートには第2のトリガ302を使う。
通信作業を、DMAハードウェアまたはISRのような1つまたは複数のインスタンスにスワップすることにより、決定論的処理が保証されている。これらのインスタンスにも、要件に応じて優先順位をつけることができ、これらのインスタンスが、さらなる計算コアまたは専用ハードウェアリソースへの通信負荷の分散を可能にする。
図4に示したように、タスクからはそれぞれ更新のアクティブ化だけが行われる。バッファの本来の更新はさらなるインスタンスによって実施される。すべての関与するタスクが完全に並行して動作し得るので、実行の開始時にはステータスをチェックしなければならない。
TRANS_ACTIVEの場合、データの更新が完了するまで実行を延期する。ベーシックなタスクモデルを使用する場合、これはビジーウェイトによって達成される。状態TRANS_COMPLETEは、更新が行われるコンテキスト内でのみセットされる。
この場合には、カテゴリー「Parallel Cross Core」に相当する通信のためのタスク実行の散発的な中止に関するエラー処理コンセプトが可能である。このコンセプトを図5および図6に基づいてより詳しく説明する。符号が一致している要素に関しては、図2についての説明も参照されたい。
前述の例とは異なり、第2のタスクの最初の実行は、時点t2の後の時点t51で中断され、時点t3の前の時点t52で続行される。これに加え、第2のタスクT2の最初の実行は、時点t3および時点t20の後で、時点t21の前に、時点t53で完了する。これは、第1のタスクと第2のタスクがこの例では少なくとも一時的に並行して計算されることを意味している。
これに加え、データ伝送間隔K内の通信の実施は、通信すべきデータを通信するためのモジュール400により、ダイレクトメモリアクセス、DMAまたは割り込みサービスルーチンで行われる。データ伝送間隔Kのスタートには、第1のタスクT1の2番目の実行の完了時に起動される第3のトリガ501を使う。
図6では、図3でのような通信を示している。それゆえ符号が一致している要素に関しては、図3についての説明を参照されたい。
前述の例とは異なり、第2のタスクT2の最初の実行は、時点t31ではなく、時点t31の前で時点t30の後にある時点t61で既に続行される。これに加え、第2のタスクT2の最初の実行が時点t6で中断されない。これは、第1のタスクと第2のタスクがこの例では少なくとも一時的に並行して計算されることを意味している。
前述の例とは異なり、データ伝送間隔K内の通信の実施は、通信すべきデータを通信するためのモジュール400により、ダイレクトメモリアクセス、DMAまたは割り込みサービスルーチンで行われる。データ伝送間隔Kのスタートには、第1のタスクT1の4番目の実行の完了時に起動される第4のトリガ601を使う。
図7では、カテゴリー「Preemptive Core Local」に相当する通信のためのタスク実行の散発的な中止に関するエラー処理コンセプトに関する通信を示している。符号が一致している要素に関しては、図1についての説明も参照されたい。
以下に図7に基づいて説明する例では、タスクが順次計算される。その際、第1のタスクT1は第2のタスクT2より高い優先度で計算される。これは、第1のタスクT1のスケジュールに従い、第1のタスクT1の計算が必要になるとただちに、スケジューラが第2のタスクT2の実行を中断することを意味している。
この例では、図7に示した時間経過において時点t1で、第1の論理間隔l1も第2の論理間隔l2も同期して始まる。第1のカウントは開始時には値2になっており、第2のカウントは開始時には値1になっている。ステータス変数Sは、時点t1の前は状態TRANS_COMPLETEを有しており、時点t1以降は状態PROC_ACTIVEを有している。優先順位に基づき、第1のタスクT1の最初の実行が時点t1で開始され、時点t2で完了する。時点t2で第1のカウントが1にセットされる。第2のタスクT2の実行は時点t2で開始され、時点t3で中断され、この時点t3では第1の論理間隔l1の1番目の繰り返しが、第1のタスクT1の2番目の実行と同時に始まる。時点t4で第1のタスクT1の2番目の実行が完了し、第1のカウントが0にセットされる。第2のタスクT2の実行が時点t4で続行され、時点t5で完了し、この時点t5で第2のカウントが0にセットされる。ステータス変数Sは、時点t5で値PROC_COMPLETEにセットされる。
第2のタスクT2の実行が、第1のタスクT1の2番目の実行の後に完了したので、データ伝送間隔Kは、第1の論理間隔l1の2番目の繰り返しと第2の論理間隔l2の繰り返しが同期して始まる時点t6でようやく開始される。ステータス変数Sは、時点t6とt7との間ではTRANS_ACTIVEにセットされている。第1のタスクT1の3番目の実行は、データ伝送間隔Kが終了する時点t7で開始される。時点t7で、第1のカウントが2にセットされ、第2のカウントが1にセットされ、ステータス変数SはPROC_ACTIVEにセットされる。
第1のタスクT1の3番目の実行は時点t8で完了し、この時点t8で第1のカウントが1にセットされる。第2のタスクT2の実行の繰り返しが時点t8で開始され、時点t9で完了し、この時点t9で第2のカウントが0にセットされる。時点t9に続く時点t10で、第1の論理間隔l1の3番目の繰り返しおよび第1のタスクT1の4番目の実行が開始される。時点t11で第1のタスクT1の4番目の実行が完了する。第1のカウントが0にセットされる。第2のタスクT2の繰り返しは時点t11では既に完了しているので、ステータス変数Sが状態TRANS_ACTIVEにセットされる。データ伝送間隔Kの繰り返しは時点t11で開始され、時点t12で終了する。時点t12で、ステータス変数Sが状態TRANS_COMPLETEにセットされる。第1のカウントは値2にセットされ、第2のカウントは値1にセットされる。タスクのバッファへのアクセスは、前述のようにタスクの実行中に行われる。
この場合には、図8および図9に基づいてより詳しく説明するエラー処理コンセプトが可能である。符号が一致している要素に関しては、図8に関しては図2についての説明も、および図9に関しては図3についての説明も参照されたい。
図8に示した例では、第1のタスクT1が第2のタスクT2より高い優先度で実行される。時点t22で第1のタスクT1の2番目の実行が完了する。時点t22でデータ伝送間隔Kが開始される。この時点t22は、第1の間隔l1の2番目の繰り返しが開始されるのが望ましい時点t6の少し前である。したがってデータ伝送間隔Kは、この第2の論理間隔l2中にもうスタートしてはいるが、時点t6を過ぎてもまだ時点t23まで継続される。それゆえ第2のタスクT2の繰り返しは、データ伝送間隔Kの終了まで、つまり時点t23まで延期される。第1のタスクT1のより高い優先度にもかかわらず、この場合には第1の間隔l1の2番目の繰り返し内の第1のタスクT1がスキップされるので、第2のタスクT2が中断されずに実行される。これは、第1のタスクT1がより高い優先度で実行はされるが、必要であれば、エラー処理のために第1のタスクT1がスキップされることを意味している。
図9に示した例では、第1のタスクT1が第2のタスクT2より高い優先度で実行される。第2のタスクT2の実行が、時点t6の後、つまり第2の論理間隔l2の繰り返し内にある時点t33まで継続している。第2のタスクT2がその完了まで実行される。それまでにデータ伝送間隔Kがまだ実行されていなかったので、タスクの優先度に関係なく、第2のタスクT2の繰り返しは実行されずに省略される。
スケジューリングエラーd)チャネルのバッファがそれらの初期化前に使用される、または負荷に依存したエラーa)タスクの完了が超える(複数回のタスクアクティブ化の際)、b)通信が最後のデータ伝送間隔内で完了しなかった、c)通信が最後のデータ伝送間隔内で実行されなかった、のうちの1つ、またはメモリエラーa)チャネル状態が損傷している、が認識された場合、これらの例では1つのタスクが中止されるかまたはデータ伝送間隔Kがずらされるかのいずれかである。この例では1つのタスクは、このタスクの実行がスケジューラによりアクティブにされないことによって中止される。この例ではデータ伝送間隔は、スケジューラがタスクおよびデータ伝送間隔の実行を適切な時点でアクティブにすることによってずらされる。
個々の通信方法およびエラー処理コンセプトの使用は、挙げたカテゴリー「Concurrency Level」に限定されない。個々の通信方法およびエラー処理コンセプトは、ほかのシナリオまたはカテゴリー、例えば「Sequential Core Local」または「Sequential Cross Core」においても適用できる。
これらの通信方法およびエラー処理コンセプトは、2つのタスク間の通信に限定されない。図では、見やすくするために2つより多いタスクによる実行を行っていない。
通信のための装置1000を図10に示している。装置1000は、プロセッサ1001および少なくとも1つの一時的なデータメモリ1002を含んでおり、これらは、通信すべきデータを、データ伝送間隔K内で、少なくとも1つの一時的なデータメモリ1002の第1のデータ領域B51、B52からの読み取りおよび少なくとも1つの一時的なデータメモリ1002の第2のデータ領域B101、B102内での読み取られたデータの記憶により、第1のタスクT1と第2のタスクT2との間で前述の方法に基づいて通信するように形成されている。
請求項に基づくこの装置は、一例ではモジュール1003を含んでおり、モジュール1003は、モジュール400に関して説明したように、通信すべきデータをダイレクトメモリアクセス、DMAまたは割り込みサービスルーチンで通信するために形成されている。

Claims (12)

  1. 通信におけるエラー処理のための方法であって、通信すべきデータが、データ伝送間隔(K)内で、一時的なデータ記憶のための第1のデータ領域からの読み取りおよび一時的なデータ記憶のための第2のデータ領域内での読み取られた前記データの記憶により、第1のタスク(T1)と第2のタスク(T2)との間で通信される、方法において、前記第1のタスク(T1)を実行するための時間間隔(l1)および前記第2のタスク(T2)を実行するための通信間隔(l2)が設定され、
    a)1つの通信間隔(l2)内の前記データ伝送間隔(K)の実行は、以下の場合にはスキップされ、すなわち、第1のタスク(T1)が前記通信間隔(l2)の時間的に直前に、前記通信間隔(l2)のすぐ前の通信間隔(l2)の前記時間間隔(l1)の最後の時間間隔(l1)内で開始されており、前記最後の時間間隔(l1)の終了時点(t6)を過ぎても続いており、かつ前記通信間隔(l2)の第2のタスク(T2)の実行が既に開始されている場合には、スキップされ、または
    b)1つの通信間隔(l2)内の前記データ伝送間隔(K)の実行は、以下の場合にはスキップされ、すなわち、第2のタスク(T2)が前記通信間隔(l2)の時間的にすぐ前の通信間隔(l2)内で開始されており、前記すぐ前の通信間隔(l2)の終了時点(t6)を過ぎても続いており、かつ前記通信間隔(l2)内の前記第1のタスク(T1)の実行が既に開始されている場合には、スキップされることを特徴とする、方法。
  2. 前記第1のタスク(T1)の実行が前記第2のタスク(T2)の実行より遅く完了する場合は、前記データ伝送間隔(K)の前記開始が前記第1のタスク(T1)の前記実行の前記完了によって起動され(301、501)、または前記第2のタスク(T2)の実行が前記第1のタスク(T1)の実行より遅く完了する場合は、前記データ伝送間隔(K)の前記開始が前記第2のタスク(T2)の前記実行の前記完了によって起動される(302、601)ことを特徴とする、請求項1に記載の方法。
  3. 前記第1のタスク(T1)の実行が、前記第1のタスク(T1)の前記実行が開始された前記通信間隔(l2)の終了を過ぎても継続している場合で、前記データ伝送間隔(K)の前記開始が前記第1のタスク(T1)の前記実行の前記完了によって起動される(501)場合、前記第1のタスク(T1)の前記実行のすぐ後の前記第2のタスク(T2)の実行が、前記データ伝送間隔(K)の終了まで延期されることを特徴とする、請求項2に記載の方法。
  4. 前記第2のタスク(T2)の実行が、前記第2のタスク(T2)の前記実行が開始された前記通信間隔(l2)の終了を過ぎても継続している場合で、前記データ伝送間隔(K)の前記開始が前記第1のタスク(T1)の前記実行の前記完了によって起動される(601)場合、前記通信間隔内では前記データ伝送間隔(K)の起動がもはや起こらないことを特徴とする、請求項2に記載の方法。
  5. 前記通信すべきデータが、前記データ伝送間隔(K)内で、1つまたは複数のインスタンスにより、前記第1のタスク(T1)および前記第2のタスク(T2)を実行するためのハードウェアの外部で通信されることを特徴とする、請求項2〜4のいずれか一項に記載の方法。
  6. 前記通信間隔(l2)の期間が、前記時間間隔(l1)のための期間の整数倍であり、これに関し、1つの通信間隔(l2)が1つまたは複数の時間間隔(l1)を含んでおり、前記時間間隔(l1)の一番早い時間間隔(l1)が、前記通信間隔(l2)と同時に始まることを特徴とする、請求項1〜5のいずれか一項に記載の方法。
  7. 1つの通信間隔(l2)中に少なくとも1つの時間間隔(l1)が始まり、これに関し、時間間隔(l1)が時間的に重なり合っておらず、前記データ伝送間隔(K)が、前記時間間隔(l1)の一番早い時間間隔(l1)内の前記第1のタスク(T1)の最初の実行の前に終了しているか、または前記時間間隔(l1)の一番遅い時間間隔(l1)内の前記第1のタスク(T1)の最後の実行の完了後に開始されるかのいずれかであることを特徴とする、請求項1〜6のいずれか一項に記載の方法。
  8. ステータス変数(S)が、前記第1のタスク(T1)の前記実行の第1の状態および前記第2のタスク(T2)の前記実行の第2の状態に応じて決定され、これに関し、前記データ伝送間隔(K)が前記ステータス変数(S)の値に応じてスタートすることを特徴とする、請求項1〜7のいずれか一項に記載の方法。
  9. 1つの通信間隔(l2)内の前記第1のタスク(T1)の1つが中止される場合に、詳しくは、前記通信間隔(l2)中に動作すべき前記第1のプロセス(T1)の最後の前記第1のプロセス(T1)を除く、前記通信間隔(l2)中に動作すべき前記第1のタスク(T1)の1つが、前記通信間隔(l2)に割り当てられた最初の前記時間間隔(l1)の終了時に完了していないので、1つの第1のタスク(T1)の実行が中止される場合に、第1の状態カウンタ(Z1)が訂正され、その際、前記第1の状態カウンタ(Z1)が、前記中止された第1のタスク(T1)が実行された場合に前記第1の状態カウンタ(Z1)が有するであろう状態に訂正されることを特徴とする、請求項8に記載の方法。
  10. ステータス変数(S)が、前記第1のタスク(T1)および前記第2のタスク(T2)に割り当てられた優先度に応じて決定され、これに関し、一番低い優先度を割り当てられた前記タスクが、前記通信間隔(l2)の1つ内の最後のタスクとして実行される場合、前記一番低い優先度をもつ前記タスクが完了するすぐ後のデータ伝送間隔(K)の開始が、すぐ後に続く通信間隔(l2)内にずらされることを特徴とする、請求項1〜9のいずれか一項に記載の方法。
  11. プロセッサ(1001)および少なくとも1つの一時的なデータメモリ(1002)であって、通信すべきデータを、データ伝送間隔(K)内で、前記少なくとも1つの一時的なデータメモリ(1002)の第1のデータ領域(B51、B52)からの読み取りおよび前記少なくとも1つの一時的なデータメモリ(1002)の第2のデータ領域(B101、B102)内での読み取られた前記データの記憶により、第1のタスク(T1)と第2のタスク(T2)との間で請求項1〜10のいずれか一項に記載の方法に基づいて通信するように形成されている、プロセッサ(1001)および少なくとも1つの一時的なデータメモリ(1002)を特徴とする、通信におけるエラー処理のための装置(1000)。
  12. 前記装置が、前記通信すべきデータをダイレクトメモリアクセス、DMAまたは割り込みサービスルーチンで通信するためのモジュール(1003)を含んでいることを特徴とする請求項11に記載の装置。
JP2019073938A 2018-04-10 2019-04-09 分散したソフトウェアコンポーネント間の通信におけるエラー処理のための方法および装置 Pending JP2019194848A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018205392.8 2018-04-10
DE102018205392.8A DE102018205392A1 (de) 2018-04-10 2018-04-10 Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten

Publications (1)

Publication Number Publication Date
JP2019194848A true JP2019194848A (ja) 2019-11-07

Family

ID=67991259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019073938A Pending JP2019194848A (ja) 2018-04-10 2019-04-09 分散したソフトウェアコンポーネント間の通信におけるエラー処理のための方法および装置

Country Status (5)

Country Link
US (1) US11048575B2 (ja)
JP (1) JP2019194848A (ja)
KR (1) KR20190118522A (ja)
CN (1) CN110362413A (ja)
DE (1) DE102018205392A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002544621A (ja) * 1999-05-14 2002-12-24 ハネウェル・インコーポレーテッド タスクスケジューリングおよびメッセージ受け渡し
JP2005301812A (ja) * 2004-04-14 2005-10-27 Hitachi Ltd デジタル制御装置およびこれを用いたエンジン制御装置
JP2011170619A (ja) * 2010-02-18 2011-09-01 Toyota Motor Corp マルチスレッド処理装置
JP2016013782A (ja) * 2014-07-02 2016-01-28 株式会社デンソー 車載電子制御装置
WO2017140504A1 (de) * 2016-02-16 2017-08-24 Robert Bosch Gmbh Verfahren und vorrichtung zum betreiben eines steuergeräts

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020877B2 (en) * 2002-05-20 2006-03-28 Dell Products L.P. Method to distribute periodic task workload
EP1870806A1 (en) * 2006-06-19 2007-12-26 Wolfgang Pree GmbH System for executing distributed sofware
JP2008046857A (ja) * 2006-08-16 2008-02-28 Seiko Epson Corp 情報処理装置、情報処理方法及びそのプログラム
US8607247B2 (en) * 2011-11-03 2013-12-10 Advanced Micro Devices, Inc. Method and system for workitem synchronization
US9176872B2 (en) * 2013-02-25 2015-11-03 Barco N.V. Wait-free algorithm for inter-core, inter-process, or inter-task communication
US9519490B2 (en) * 2013-03-07 2016-12-13 Microsoft Technology Licensing, Llc Adaptive data synchronization
US10133602B2 (en) * 2015-02-19 2018-11-20 Oracle International Corporation Adaptive contention-aware thread placement for parallel runtime systems
US10157092B2 (en) * 2015-04-27 2018-12-18 Oracle International Corporation Automatic targeted system suspension based upon downstream system failure detection
US10776167B2 (en) * 2016-09-19 2020-09-15 Texas Instruments Incorporated Bandwidth controlled data synchronization for image and vision processor
US10360118B2 (en) * 2016-10-17 2019-07-23 Cboe Exchange, Inc. Low latency system having high availability computer architecture
DE102017200669A1 (de) * 2017-01-17 2018-07-19 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Steuergeräts, Computerprogramm und Verfahren zum Generieren des Computerprogramms
CN110998529B (zh) * 2017-07-31 2021-08-20 三菱电机株式会社 信息处理装置以及信息处理方法
US10552215B1 (en) * 2017-08-05 2020-02-04 Jia Xu System and method of handling real-time process overruns on a multiprocessor
GB2569269B (en) * 2017-10-20 2020-07-15 Graphcore Ltd Synchronization in a multi-tile processing arrangement
GB2569273B (en) * 2017-10-20 2020-01-01 Graphcore Ltd Synchronization in a multi-tile processing arrangement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002544621A (ja) * 1999-05-14 2002-12-24 ハネウェル・インコーポレーテッド タスクスケジューリングおよびメッセージ受け渡し
JP2005301812A (ja) * 2004-04-14 2005-10-27 Hitachi Ltd デジタル制御装置およびこれを用いたエンジン制御装置
JP2011170619A (ja) * 2010-02-18 2011-09-01 Toyota Motor Corp マルチスレッド処理装置
JP2016013782A (ja) * 2014-07-02 2016-01-28 株式会社デンソー 車載電子制御装置
WO2017140504A1 (de) * 2016-02-16 2017-08-24 Robert Bosch Gmbh Verfahren und vorrichtung zum betreiben eines steuergeräts

Also Published As

Publication number Publication date
CN110362413A (zh) 2019-10-22
DE102018205392A1 (de) 2019-10-10
US20190310909A1 (en) 2019-10-10
KR20190118522A (ko) 2019-10-18
US11048575B2 (en) 2021-06-29

Similar Documents

Publication Publication Date Title
US9477521B2 (en) Method and system for scheduling repetitive tasks in O(1)
CN109697082B (zh) 指令组
WO2021000758A1 (zh) 机器人资源任务周期管控方法及装置
EP2839370B1 (en) Time slack pipeline balancing for multicore programmable logic controllers (plc)
CN103870327A (zh) 一种实时多任务调度方法和装置
US20130145373A1 (en) Information processing apparatus, information processing method, and storage medium
KR102685982B1 (ko) 제어기를 작동시키기 위한 방법 및 장치
CA2433379A1 (en) Modulo scheduling of multiple instruction chains
Henzinger et al. Schedule-carrying code
CN104008005B (zh) 用于控制处理器的装置、方法和系统
US9152454B2 (en) Method for enabling sequential, non-blocking processing of statements in concurrent tasks in a control device
CN118295778A (zh) 一种任务调度方法、装置、电子设备及存储介质
CN109656868B (zh) 一种cpu与gpu之间的内存数据转移方法
JP7312002B2 (ja) 分散したソフトウェアコンポーネント間の通信におけるエラー処理のための方法および装置
US20240036921A1 (en) Cascading of Graph Streaming Processors
CN109960571B (zh) 一种多模块调度方法、装置及系统
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
JP5195408B2 (ja) マルチコアシステム
US20100325635A1 (en) Method for correct-by-construction development of real-time-systems
Ogawa et al. Efficient approach to ensure temporal determinism in automotive control systems
JP2019194848A (ja) 分散したソフトウェアコンポーネント間の通信におけるエラー処理のための方法および装置
CN104142802A (zh) 存储器控制设备和方法
JP6368452B2 (ja) 非同期のデバイスによって実行されるタスクのスケジューリングの向上
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作系统

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230307

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230606

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231027