dSPACE FAQ 242 FAQ 242 Handling Overrun Situations キーワード タスクオーバーラン; オーバーラン状態; ターンアラウンドタイム; taskCallCount; overrunCount; overrunQueueCount; オーバーラン対応; オーバーランを無視; シミュレーションを停止する前にタスクをキューに登録; dSPACE Profiler; 最初のシミュレーションステップ; FIRST_SIMSTEP_INCREASEMENT 質問 リアルタイムシミュレーション中に、エラーメッセージ「Task Overrun: Occurred in task "<task name>", execution step <number> 」がControlDeskまたはControlDesk Next Generationで表示され、リアルタイムアプリケーションが停止します。 このエラーメッセージが表示される原因は何ですか。メッセージを表示しないようにするにはどうす れば良いですか。タスクオーバーランを解析する方法を教えてください。 解決策 スケジューラが実行中のタスクを開始しようとしたため、オーバーラン状況が発生します。サンプル 時間が小さすぎるか、またはタスクの呼び出し頻度が高すぎる可能性があります。このドキュメント では、タスクオーバーランを回避し対応するための定義および方法について概説します。 オーバーラン状態の定義 オーバーラン状態は、前のタスクの実行完了前に同じタスクの開始が要求された場合に発生します( タスクの先行するインスタンスの計算がまだ終了していません)。次の図を参照してください。 1回目と2回目のタイマー割り込みの間にオーバーランは発生していません。ただし、ハードウェア割 り込みブロックによってトリガされるTHWタスクを計算する必要がある場合、再び開始を要求される前 にTTimerタイマータスクは終了することができません。このようなオーバーラン状態が発生した場合、 スケジューラがそれを検出し、タスクのオーバーラン設定に基づいてRTIが応答します。 Handling Overrun Situations FAQバージョン: 6 / 2016-09-23 ページ1 dSPACE FAQ 242 タスクオーバーランが発生する場合、アプリケーションタスクのターンアラウンドタイムの解析が非 常に役に立ちます。タスクのターンアラウンドタイムとは、タスクがトリガされてから実行が完了す るまでに経過する時間です。 ターンアラウンドタイムは以下のもので構成されています。 タスクの機能コードの実行に要する時間 タスクの実行が優先順位の高い他のタスクによって割り込まれる時間 タスクがホストサービスコードを含む場合に、変数の取得に要する時間 ターンアラウンドタイムには、1つのタスクから別のタスクに切り替えるために要する時間は含まれません。 詳細については(多くのタスクのターンアラウンドタイムを示した図解など)、「オーバーラン状態 とターンアラウンドタイム」(『RTI and RTI-MP Implementation Guide』)を参照してください。 ControlDeskまたはControlDesk Next Generationでのオーバーラン状態の解析 タスクオーバーランの原因となるアプリケーションのターンアラウンドタイムを解析するには、RTI Task Configurationダイアログ(シングルプロセッサシステム:Configuration Parametersダイアログ、マルチプロセッサシステム: Multiprocessor Setupダイアログ)でオーバーラン対応をデフォルト値の「Stop simulation」から「Ignore Overrun」または「Queue task before simulation stop」に変更する必要があります。 「Queue task before simulation stop」または「Ignore Overrun」のオーバーラン対応を選択した場合、タスクがリアルタイムで実行されないため、タスクのオーバーラン オーバーラン状態を分析するには、次のリアルタイム変数を使用します。これらの変数は、‘Task Info’変数グループに属しています。 turnaroundTime:ターンアラウンドタイムを継続的に表示するには、プロッタアレイ計器を 使用する必要があります。一般的に、ターンアラウンドタイムはタスクの周期(固定ステッ プサイズ)よりも小さくする必要があります。 overrunCount:タスクのoverrunCount変数は、発生したタスクのオーバーランの合計数をカ ウントします。 overrunQueueCount:overrunQueueCount変数は、キューに登録されたインスタンス数を示し 、「Queue task before simulation stop」が選択されている場合は増減します。 taskCallCount:taskCallCount変数は、タスクの各実行ごとに増加します。これには、オー バーラン状態の原因になったタスクの呼び出しは含まれません。 Handling Overrun Situations FAQバージョン: 6 / 2016-09-23 ページ2 dSPACE FAQ 242 dSPACE Profilerでのオーバーラン状態の解析 dSPACE Profilerは、リアルタイムアプリケーションのランタイム動作の出力をグラフィカルに作成するため のスタンドアロンツールです。dSPACE Profilerでは、ランタイム時の問題(タスクオーバーランなど)を検証する場合に、すべてのアプリ ケーションタスクのターンアラウンドタイムの分布を表示します。リアルタイムカーネルと関連した 介入事項は、グラフィカルインターフェースの上部に表示されます。すべてのアプリケーションタス クの呼び出しと関連するターンアラウンドタイムは下部に表示されます。 Profilerを使用する場合は、少なくともロギングカテゴリの‘Task’、‘Task Register’、‘Overrun’、‘ISR’および‘Idle Mode’(最初にすべてのカテゴリを選択することを推奨します)を選択してください。さらに、オー バーランの原因となるアプリケーションタスクのトリガ条件を設定することができます(オーバー ランを検出するには<プロセッサボード - タスク名> OD)。オーバーラン状態は、‘OD’のマーク付きで表示されます。 dSPACE Profilerに関する詳細は、dSPACE Product DVDのユーザマニュアル( Tools\Profiler\Profiler_user_doc.pdf)を参照してください。 最新のセットアップは、http://www.dspace.jp/go/profilerにあります。 MicroAutoBox IIでは、dSPACE Profiler 1.1.5が必要です。インストールされているバージョンを確認するには、Windows Control Panelを開いてインストールされている製品のリストを確認します。 dSPACE Profilerは公式の製品ではなく、社内ツールとして開発されました。 タスクオーバーランの防止 タスクオーバーランを防止するには、以下の1つ以上の手順を実行します。 タイマータスクのサンプル時間またはモデルの固定ステップサイズを大きくします。 割り込み駆動タスクのトリガ頻度を減らします。 モデルに別の実行モード(シングルタイマータスクモードまたはマルチタイマータスクモー ド)を選択します。 タスクの優先順位を変更します。 タスクのターンアラウンドタイムを小さくするか、またはSimulinkモデル内のモデリングを 最適化することにより、サブシステムおよびブロックの実行時間を小さくします。詳細につ いては、FAQ 211、FAQ 023、またはFAQ 292を参照してください。 モデルのパーツをサンプル時間の遅いタイマータスクに移動します。 条件付きで実行されるモデルのパーツを検索します。条件付き実行によりターンアラウンド タイムが増えないよう、条件付き実行を考慮している他の方法を探します。 Handling Overrun Situations FAQバージョン: 6 / 2016-09-23 ページ3 dSPACE FAQ 242 最初のシミュレーションステップで発生するタスクオーバーランへの対処 たとえば、初期化の問題などによりシミュレーション開始時に一定数のオーバーランが発生する場合 など、モデル内で直接オーバーランに対処しなければならない場合があります。その際、許容範囲内 の一定数のオーバーラン以上のオーバーランが発生する場合は、アプリケーションの実行を中止する 必要があります。 MPシステムの場合(dSPACE Release 5.2以降):最も速いタイマータスクについて、マルチプロセッサシステムの1つのCPU上で最初の実 行ステップのみでタスクオーバーランが発生する場合は、FIRST_SIMSTEP_INCREASEMENTコンパイラオ プションを使用してタスクオーバーランを防止します。このためには、DFIRST_SIMSTEP_INCREASEMEN T=<Value>を呼び出します(ここで<Value>は0以上の任意の整数です)。 マルチプロセッサシステムのすべてのCPUにこのオプションを設定すると、各CPUの最初のシミュレー ションステップに<Value> * BaseSampleTimeが追加されます。最初のシミュレーションステップにおいて1つのCPUで利用可能な時 間は、次の通りです。(StepSizeMultiple + <Value>) * BaseSampleTime. FIRST_SIMSTEP_INCREASEMENTに加え、NUM_INCREASED_SIMSTEPSを使用して、マルチプロセッサアプリ ケーションにおける各CPU上の複数のシミュレーションステップに対してFIRST_SIMSTEP_INCREASEMEN Tマクロを適用することができます。この場合、DNUM_INCREASED_SIMSTEPS=<Value>を呼び出します(ここで<Value>は0以上の任意の整数です)。 マルチプロセッサシステムですべてのCPUに対してこのオプションを設定した場合、FIRST_SIMSTEP_I NCREASEMENTマクロによって定義されたシミュレーションステップサイズの増分が、マルチプロセッ サアプリケーションの各CPUにおける最初の<Value>シミュレーションステップに適用されます。 このオプションは、マルチプロセッサシステムの各CPUの最初のステップで同じ増分値を指定した場合にのみ有効です。 このオプションを使用する場合、最初のシミュレーションステップに使用可能な時間は、(StepSizeMultiple + <Valu BaseSampleTime(非リアルタイム)です。そのため、最初のシミュレーションステップ中は、I/O信号のタイミングはシ NUM_INCREASED_SIMSTEPSオプションは、FIRST_SIMSTEP_INCREASEMENTマクロとともに使用してください。 SPシステムの場合:dSPACE Release 2010B以降では、上記のコンパイラオプションFIRST_SIMSTEP_INCREASEMENTおよびNUM_INCREASED_SIMSTEP Sは、SPシステムでも使用可能です。 SPシステムの例:最初の3つのタスク実行にモデルのステップサイズの2倍のランタイムを与えるには 、SimulinkモデルのConfiguration Parametersダイアログを開き(Ctrl+E)、Code Generation > RTIの一般的なビルドオプションに移動し、[Compiler options]編集フィールドに以下のコマンドを入力します。 -DFIRST_SIMSTEP_INCREASEMENT=1 -DNUM_INCREASED_SIMSTEPS=3 関連するdSPACE HelpDeskのドキュメント 「Handling Tasks」(『RTI and RTI-MP Implementation Guide』) 「How to Handle Overrun Situations」(『RTI and RTI-MP Implementation Guide』) 「Handling overruns in multiprocessor systems」(『RTI and RTIMP Implementation Guide』) 「RTI Task Configuration Dialog」(『RTI and RTI-MP Implementation Reference』) Handling Overrun Situations FAQバージョン: 6 / 2016-09-23 ページ4 dSPACE FAQ 242 「Build Optionsページ(CPU Options Dialog)」(『RTI and RTI-MP Implementation Reference』) 関連するFAQs FAQ 211: 「Avoiding task overrun errors」 FAQ 023: ブロックおよびサブシステムの実行時間の計測 FAQ 292: dSPACE Profilerでの実行時間の計測 Handling Overrun Situations FAQバージョン: 6 / 2016-09-23 ページ5 dSPACE FAQ 242 How to Contact dSPACE Support dSPACE GmbH Rathenaustraße 26 33102 Paderborn Germany ++49 5251 1638-941 mailto:[email protected] http://www.dspace.com/support dSPACE recommends that you use the support request form on the Internet to contact dSPACE Support. It is available at: http://www.dspace.com/go/supportrequest Software Updates and Patches dSPACE strongly recommends that you download and install the most recent patches for your current dSPACE installation. Visit http://www.dspace.com/go/patches for software updates and patches. FAQ FAQ documents are available at http://www.dspace.com/go/faq. Important Notice This document contains proprietary information that is protected by copyright. All rights are reserved. Neither the documentation nor software may be copied, photocopied, reproduced, translated, or reduced to any electronic medium or machine-readable form, in whole or in part, without the prior written consent of dSPACE GmbH. © Copyright 2016 by: dSPACE GmbH Rathenaustraße 26 33102 Paderborn Germany This publication and the contents hereof are subject to change without notice. A list of registered dSPACE trademarks is available at: http://www.dspace.com/go/Trademarks Handling Overrun Situations FAQバージョン: 6 / 2016-09-23 ページ6
© Copyright 2024 Paperzz