データシートの背後にあるもの:HW-RTOS

テータ転送はインダストリアルIoTの基本です。流れ込む大量のデータを処理するために通信プロトコルが複雑になる中、センサやアクチュエータなどの端末の限られたリソースに対する要求が増えています。ハードウェアアクセラレータは、ソフトウェアの負担を最小限に抑制できるでしょうか?
現在、ほとんどの組み込みシステムでは、特にArm Cortex-Mファミリーなど現代の32ビットコアをベースとしている場合、何らかのオペレーティング・システムを使用しています。組み込みリアルタイム・オペレーティング・システムをサポートすることは、それがもたらす利点を考えると有効です。しかし、リアルタイムの状況は多くの側面で発生します。ハードリアルタイム実行を維持する必要がある場合、技術者には何ができるのでしょうか?1つのアプローチは、処理プラットフォームに備わっているハードウェア機能をフルに活用することです。
通常、オペレーティング・システムは、低位レベルでハードウェアと情報交換するために設計されているソフトウェアです。オペレーティング・システムは、アプリケーションとハードウェアの間に抽象レイヤーを設定していることが一般的であり、これにより上位レベルのコードが低位レベルの機能に簡単にアクセスできるようになります。
リアルタイム・オペレーティング・システム(RTOS)は、必要なときに必要な処理を行うことを保証する方法を含める形で、これを拡張しています。これにより、ソフトウェアとハードウェアが制御権をかけて戦う状態が発生することがあります。これを回避する方法は、ソフトウェアを混乱させうるハードウェア機能を停止することですが、これにも問題があります。ごく短時間であっても、割り込みなどの特定の機能が切られている(マスクされている)場合、イベントが見失われる可能性があるのです。
ここでは、基本的にリアルタイムシステムの開発における大きな課題および必要な優れたスキルについて説明します。RTOSは、チック、セマフォ、割り込み処理ルーチンなどのテクニックを使用して、これらの課題を軽減するために設計されました。
専用HW-RTOS(ハードウェアRTOS)の背後にある考え方は、これらの機能をハードウェアに組み込み、APIを介してアクセスすることです。これにより実現されるのは、低ジッターと超短時間の割り込み中断による割り込みレイテンシーの短縮です。
ルネサス HW-RTOSの主な機能
HW-RTOSは、専用ハードウェアのアプローチをとることにより、RTOS の応答性を低下させうるタスクを処理します。これら機能がハードウェアへ移行されるため、システムの他の部分は応答性が増し、隔離されたイベントによる中断の影響を受けにくくなります。
この第一が、チックオフローディングです。RTOSは、ハードウェアにおける経過時間の測定プロセスを処理することにより、時間を稼ぐためだけに現在のタスクの実行を中断する必要がなくなります。チックはハードウェアで実行されるため、測定時間に変動がなく、精度が向上します。
ルネサスのW-RTOS アクセラレーション技術のチックオフローディング機能による精度の向上およびCPUの稼働率の向上
割り込み処理は、リアルタイムシステムの設計にとって重要です。RTOSは割り込みが検知されたときに関連するサービスルーチンへ切り替えることにより、割り込みを処理します。この間により優先度の高い別の割り込みが起きた場合、失われる可能性があります。割り込み処理の一般的なアプローチはタスクの切り替えですが、これにより、割り込み処理プロセスのためにタスクが実行されていない時間が長時間続くことがあります。
HW-RTOSにおいて、割り込み処理ルーチンはハードウェアで扱われます。これはCPUの負荷を減らす効果がありますが、割り込みが無効化される時間も短縮されます。さらなる長所として、コンテクスト切り替えも削減されます。
HW-RTOSを用いたタスク切り替え
HW-RTOSはAPIを介して作用します。ホストのオペレーティング・システムにとって、HW-RTOSはシステムバスに存在する周辺機器のように見えます。ルネサスは、HW-RTOSを制御する3つのレジスタを使用するためのライブラリを作成しています。3つのレジスタとは、APIレジスタ、返り値レジスタ、および引数レジスタです。タスクの切り替えが必要な場合、HW-RTOSはそれをホストのオペレーティング・システムへ通知し、切り替えるべきタスクのIDを引数レジスタへ収納します。
HW-RTOSは、ルネサスのRZ/N1D、RZ/N1S、およびRZ/N1Lプロセッサで使用できます。サポートされているAPIの全リストを含むHW-RTOSの詳細に関しては、ルネサスのウェブサイトに掲載されているこの文書をご覧ください。

