組み込みリアルタイムタスクでのIntel Atomの使用

Atomアーキテクチャがネットブックに登場した後、一部の企業はEmbedded RealtimeアプリケーションにAtomを使用し始めました。 産業用コントローラーを作成し、 PLCコードを駆動します。



通常、ネットブックと同じチップは工場では使用されません。 特別なプラットフォームがあります。 最初はCrown Beachでしたが、現在はクイーンズベイデザインで使用され始めています。 IVI(車のコンピューター)には独自のプラットフォームがあります



当然、リアルタイムの要件を満たすことが前提条件です。 カットの下でこれについての詳細。



x86の「リアルタイム」とは何ですか? 多くの基準があります。 ほとんどの場合、最初の要件は、トリガーされた割り込みとそのプロセッサ(ISR)の実行コードの開始との間に保証された時間が経過することです。 誰かにとっては2マイクロ秒、誰か10にとっては20マイクロ秒の遅延があっても我慢できる人もいます。 100マイクロ秒の遅延があるため、たとえ1週間に1回発生しても、喜んで仕事をする人はほとんどいません。



この主な要件が満たされると、プラットフォームを選択するクライアントは、パフォーマンス、価格、消費電力量、加熱方法、ベンダーがサポートする方法、ソフトウェアを簡単に作成する方法など、他の要因を考慮し始めます。



Atomファミリーのプロセッサーは非常に高速に動作し、SIMDがあります。 従来のデスクトップ/ネットブックオプションとは異なり、IntelがEmbedded Roadmapに組み込んだチップは、長期間(7〜10年)サポートおよび製造されています。 x86では、ソフトウェアの開発または市販のソフトウェアの使用は比較的簡単です。これは依然として最も一般的なアーキテクチャです。 VTも有用です-仮想化のハードウェアサポート。 たとえば、x86でのみRTOSを実行して、GUIのハードウェアとWindows XPを制御できます。 ところで、この業界では、ユーザーインターフェイスをGUIではなくHMI(Human Machine Interface)と呼ぶのが流行しています。 そして、それはMMIでした。 同様に、男性は工作機械で働いていましたが、今では人間です。



すでに「割り込み遅延」と書いている場合は、どれを決定する必要があります。 レガシー、msi、ローカル? 最も重要な2つのケースは、ローカルAPICタイマーと、周辺からのMSI-X割り込みです。



使用されているOS VxWorks、Integrity、QNX、Windows CE、高濃度ドープLinux。 Windows Embeddedや通常のWindows XP SP3を使用することもあります。 後者の場合、リアルタイムコードはISRでのみ実行されます。



測定方法 OSに依存します。 Windowsでは、Microsoft DPCアナライザーを使用できます。 ISR遅延に問題がある場合、DPC遅延が発生します。 しかし、その逆ではありません。 したがって、これは良い指標ですが、100%正確ではありません。 私は時々Beckhoff Twincatを使用します。 (ところで、Beckhoffは通常のWindows XPでハードリアルタイムの産業用コントローラーを作成する方法を知っています)サイトから、 試用版をダウンロードし、空のプロジェクトを開始し、ローカルAPICタイマーから割り込み遅延を見ることができます。 Windowsでの最も簡単で正確な方法。 そのため、ネットブックが最新のフライス盤や産業用ロボットのコントローラーとして適しているかどうかを確認するのは難しくありません。 適合すれば、鉄を追加する必要さえない可能性があります-突然、EtherCAT経由で制御するための穴がマシンにある場合。



100行のLinux割り込みハンドラーまでの時間を測定する同様のドライバーが半日で作成されます。または、drivers / rtc / rtc-cmos.cの20行にパッチを当てて、平均遅延を表示できます。



なぜ5マイクロ秒を超えるAtom割り込み遅延が可能なのですか? たとえば、すべてのX86プロセッサにはSMIがあります。これは、産業用コントローラの観点からすると非常に大きな悪です。 便利な命令もあります-WBINV。 一部のドライバーはそれを実行します-そして、割り込みハンドラーは最初にメモリからデータを長時間ドラッグする必要があります。 他にもいくつかの理由が考えられます。 これはすべて戦うことができます。



割り込みハンドラの開始時間の予測可能性に加えて、ISRのコードは一定のパフォーマンスで動作するはずです。 予測可能性を低下させる主な2つの要因は、共有キャッシュとハイパートレッドです。 残念ながら、最もエネルギー効率の高いAtomプロセッサーはシングルコアです。 ハイパートレッドはパフォーマンスをわずかに向上させるのに役立ちますが、GPOSが同時にハイパースレッドで動作する場合、RTOSでのコード実行の予測可能性に影響します。 誰もが興味を持っている場合は、これについて別の記事を書くことができます。



All Articles