リアルタイム アクセラレータ テクノロジによるリアルタイム アプリケーション用 Windows

概要

現在、特に産業オートメーション、医療技術、データ収集、測定技術の分野で、決定論的なリアルタイム動作を必要とするアプリケーションがますます増えています。acontis リアルタイム アクセラレータ テクノロジ (RtaccWin) を使用すると、ハード リアルタイム対応アプリケーションを Windows 上で確定的に実行できます。これは、リアルタイム アプリケーション用に 1 つ以上の CPU を排他的に予約し、Windows の適切なパラメータ設定を設定し、正確なタイミングと直接ハードウェア アクセスのために acontis カーネル ドライバを利用することによって実現されます。

ソフトウェアアーキテクチャ

Windows IoT Enterprise ベースの PC は、1 ミリ秒のサイクル タイムが保証されたアプリケーションの安定したリアルタイム操作を実現する acontis の RtaccWin ソフトウェアの恩恵を受けることができます。原理的には、より速いサイクルタイムも達成できます。これを実現するために、少なくとも 1 つの CPU がリアルタイム アプリケーション専用に予約され、他の CPU は標準 Windows アプリケーションに使用可能なままになります。

RtaccWin には、アプリケーション全体に正確で調整可能なクロックを提供する Windows システム ドライバーが含まれています。確定的な動作を保証するために、標準の Windows ドライバーは通常、リアルタイム アプリケーションには使用されません。代わりに、RtaccWin のカーネル ドライバーを使用すると、Windows ユーザー モードからネットワーク カード、フィールドバス カードなどのハードウェアに直接アクセスできるため、ジッターが減少し、CPU 使用率が大幅に低下し、決定的な動作が得られます。これにより、Windows ネットワーク スタックを使用せずにイーサネット フレームの送受信も可能になり、他のネットワーク インターフェイスを並行して使用する場合にも悪影響はありません。

設定ツール: RtaccWinConfig

ソフトウェア構成ツール RtaccWinConfig は、Windows システムをリアルタイム アプリケーション用に準備するために使用されます。まず、少なくとも 1 つの CPU が分離されます。これは、通常の Windows プロセスとサービスがその CPU を使用しなくなることを意味します。分離された CPU は、リアルタイム アプリケーション専用に利用可能になります。

RtaccWinConfig ツールのもう 1 つの機能は、ハードウェアをリアルタイム アプリケーションに割り当てることです。これは、通常の Windows ドライバーがアンロードされ、Windows ユーザー空間からハードウェアにアクセスできることを意味します。acontis カーネル ドライバーを使用すると、割り当てられたハードウェアのすべてのメモリ領域に高速かつ直接アクセスできます。

ソフトウェア開発

リアルタイム アプリケーションの開発プロセスは、標準の Windows アプリケーションの開発プロセスと似ています。従うべき手順は次のとおりです。

  • RtaccWinConfig ツールを使用してシステムをセットアップする
  • リアルタイム タスク用に 1 つ以上のスレッドを作成します
  • これらのスレッドを以前に分離された CPU に割り当てます。
  • スレッドに非常に高い優先順位を割り当てて「リアルタイム スレッド」にします。
  • オプションで、acontis Windows システム ドライバーを介して安定した正確なクロックを生成します。

Windows プロセスには、「非リアルタイム スレッド」と「リアルタイム スレッド」の両方が含まれる場合があります。どちらのスレッド タイプもグローバル変数にアクセスし、イベント、クリティカル セクション、ミューテックス、セマフォなどの標準同期メカニズムを使用できます。人気の Win32 API も「リアルタイム スレッド」で利用できます。開発プロセス全体で Microsoft Visual Studio のすべての機能を使用できます。デバッグ モードでは、すべてのスレッドがすべてのリソースにアクセスできます。もちろん、リアルタイム動作を行わずに「リアルタイム スレッド」を段階的に実行することもできます。

パフォーマンス

リアルタイム アプリケーション、特に制御ループをミリ秒ごとに実行するアプリケーションには、低ジッターの安定した正確なクロックが不可欠です。アプリケーションは理想的には 1000 マイクロ秒ごとに正確にトリガーされる必要がありますが、実際には逸脱が発生し、間隔が長くなったり短くなったりする可能性があります。acontis リアルタイム アクセラレータ テクノロジを使用すると、ジッターとも呼ばれるこれらの偏差を Windows で大幅に削減できます。

RtaccWinConfig ソフトウェア ツールは、特定のサイクル タイムで分離された CPU のパフォーマンスを測定できます。最大偏差値と最小偏差値がグラフで表示されます。許容される最大ジッターはアプリケーションによって異なりますが、通常はサイクル タイムの最大 10% の偏差が許容されます。たとえば、サイクル時間が 1000 マイクロ秒の場合、最小値は 900 マイクロ秒以上、最大値は 1100 マイクロ秒以下である必要があります。

リアルタイム アクセラレータ テクノロジがないと、サイクル タイムが大幅に変動する可能性があります。8 時間後、Windows IoT を実行し、Passmark バーンイン テストで高負荷をかけた Minis Forum U820 (i5-8279U CPU) でテストを実施したところ、大幅な変動が明らかになりました。

ただし、リアルタイム アクセラレータ テクノロジを有効にすると、同じシステムで 8 時間後に実施されたテストで実証されているように、誤差が最小限に抑えられた正確なクロックが保証されます。

特徴

  • マイクロ秒以内の高速応答時間
  • CPU分離を使用したリアルタイムアクセラレータテクノロジーによるハードリアルタイム
    • リアルタイム機能と標準機能を1つの独立CPU上の1プロセスで実現
    • 正確で安定したクロックを生成する RtaccTimer ドライバー
    • カーネルドライバーなしでハードウェアに直接アクセスするための RtaccDevice ドライバー
  • 快適設定ツール RtaccWinConfig

利点

  • リアルタイム アプリケーションは通常の Windows アプリケーションと同様に開発可能
  • 標準 Win32 API はリアルタイム スレッドでも利用可能
  • Microsoft Visual Studio のサポート。リアルタイム アプリケーション全体の便利な開発とデバッグ
  • 変数を介した簡単なデータ交換。アプリケーションのリアルタイム部分と非リアルタイム部分の間の複雑な通信は必要ありません。
  • 非常に簡単な取り扱いと少ないトレーニング労力

システム要求

  • Windows 10 IoT Enterprise または Windows 11 IoT Enterprise
  • クアッドコアCPU
無料評価をリクエストする