組込みシステムの低コスト化、及び開発効率を向上させるDual-OS環境
~Xtensaのセキュリティ拡張を用いた実現~
1 背景
組込みシステムの低コスト化のためには、開発効率向上のために外部ソフトウェアの利用が必須となっていますが、セキュリティやエラー対応など堅牢性には懸念も残ります。これらのいわゆる非信頼系の外部ソフトウェアと、信頼できる内製のソフトウェアを安全に同時に実行することが、より少数のCPUにタスクを集約して部品点数を減らしたり、その結果得られる省電力化により熱対策に必要なコストやバッテリー容量を削減したりすることができるため、特に重要です。マイコンやSoCにおいては、このような要件を実現するために、Dual-OS環境の活用が非常に効果的です。
また車載分野においては、機能安全規格ISO26262で定義されるASIL(Automotive Safety Integrity Level)が異なるソフトウェアを安全に同時に実行できる仕組みとして活用できます。
2 Dual-OS環境
Dual-OS環境には、スタンドアローン型ハイパーバイザーと、オフロード型ハイパーバイザーがあります。ここからは、Dual-OS環境の意義と機能(要件)、及びそれぞれの型のハイパーバイザーについて紹介します。
2.1 Dual-OS環境の意義
Dual-OS環境は、単一のコアで2種類以上のソフトウェア環境を実行することが出来ます。このソフトウェア環境には、多くの場合、信頼系と非信頼系の2種類がサポートされます(1)。
- 信頼系(内製ソフトウェア)
システムの維持に必須でリアルタイム性が必要な、高信頼性タスクが実行されます。セキュリティについても、機密性の高いアプリケーションはこちらで実行されます。主に内製ソフトウェアを実行することを想定しています。 - 非信頼系(外部ソフトウェア)
アプリケーションと、その実行基盤であるRTOS・ミドルウェア・ドライバが実行されます。近年では、アプリケーションを安価に短時間で開発するためにRTOS・ミドルウェア・ドライバなどのOSSが発展し、これらをSoCベンダーがSDKとしてまとめて提供するケースが多く見られます。ユーザーはSDKを利用することで、ライブラリやバージョン等の違いや、デバイスドライバとの組み合わせで生じる問題に煩わされることなく、豊富な機能を短時間で実現することが出来ます。
Dual-OS環境を用いずに複数のソフトウェア環境を実行する場合には、同一環境で実行できるようにソフトウェアを書き直したり、それぞれが同一環境で安全に動作することを検証したり保証したりする必要が生じます。例えばメモリ保護環境で安全に動作するように変更することは非常に困難を伴いますし(2)、仮に多くの工数を割いて保証したとしても、OSSの流用などでは、メインラインがアップデートして追従する場合、検証はやり直しになります。
2種類の独立したソフトウェア実行環境を用意できればこの問題を解決できます。もっとも単純な方法は、2個のマイコンを用意してそれぞれを実行することですが、部品点数の増大や消費電力の問題が発生します。
上記のような煩雑さや問題点が、Dual-OS環境では環境によって解消されます。すなわち、Dual-OS環境では、マイコンのセキュリティ機構を用いて単一のマイコンで2種類の独立したソフトウェア実行環境を実現します。
(1) 2種類で十分なケースが多く、その理由は、ハードウェア及びソフトウェアがシンプルになる、切り替えのオーバーヘッドが少ない、などが挙げられます。
(2) ミドルウェアやドライバは基本的にはユーザーモードで動作できません。
2.2 Dual-OS環境の機能(要件)
図1 Dual-OS環境のソフトウェアスタック
要件には、以下のように、保護要件、機能要件、非機能要件の3種類があります。これらの要件を満たすため、Dual-OS環境は、図 1に示すような階層構造を取ります。
- 保護要件1:メモリ保護
→信頼系が使用するメモリ領域(ROM/RAM/ペリフェラル)が、非信頼系から保護されること。 - 機能要件1:安全なOS間通信
→信頼系と非信頼系で安全な通信が可能であること。 - 機能要件2:独立したバイナリの実行
→信頼系にSDKのバイナリを混在せずに実行可能であること。(機能安全等の説明が容易になります。)
→SDKやネットワーク機能を変更なしに実行可能であること。 - 非機能要件1:低実行オーバーヘッド
→両方の系の実行オーバーヘッドが大きく増加しないこと。 - 非機能要件2:少ないソースコード変更量
→両方の系のソースコードの変更が少ないこと。
2.3 スタンドアローン型ハイパーバイザー
スタンドアローン型ハイパーバイザーでは、Dual-OS環境は、シングルCPUで実装されます。ハイパーバイザーは、2.2章で紹介した要件を満たすために、多くの場合、ハードウェア仮想化支援(セキュリティ(3))機能を活用して実行されます。ハードウェア仮想化支援機能の例としては、x86系ではIntel VTやAMD-V、ARMではTrustZoneやVirtualization Extensionが挙げられます。そしてCadenceでは、後述するTensilica® Xtensa® LX Secure Mode (XLS)がこの機能を提供します。
(3) セキュリティ向けの拡張機能も、仮想化支援と同等であることが多くあります。この場合、システムをノンセキュア環境とセキュア環境に分けます。
2.4 オフロード型ハイパーバイザー
スマートフォンのような携帯機器など、省電力化が必要な組込みシステムでは、負荷の重たい処理を専用のハードウェアや特定用途向けのDSPにオフロードして実行する方式がしばしば採用されます。これにより、汎用のメインプロセッサの負荷を軽減したり、システム全体の動作周波数を下げたりして消費電力の削減効果が見込まれます。
Dual-OS環境でも、このようなオフロードエンジンにDSPを活用することで、ソフトウェア環境の利便性はそのままに、システムの省電力化を図ることが出来ます。オフロードエンジンもDual-OS環境とすることで、メインプロセッサの各ソフトウェア環境がオフロードエンジンを独立に使用でき、信頼系のデータ等を非信頼系から保護可能です。その構成例を図 2に示します。この例では、メインプロセッサにCortex-Mを、オフロードエンジンにTensilica Xtensaを用いています。メインプロセッサのハイパーバイザーはTrustZone-Mを用いて、オフロードエンジンのハイパーバイザーはXLSを用いてそれぞれ実装します。
図2 オフロード型ハイパーバイザー
次の章では、このXLSについて、概要をご紹介します。
3 オフロードエンジンのDual-OS環境
3.1 Cadence Tensilica Xtensa LX Secure Mode(XLS)概要
XLSでは、TrustZoneと同様に、CPU内をセキュアモードとノンセキュアモードの2種類のワールドに分割します(図 3)。セキュアモードでは、システムの全てのリソースにアクセス可能である一方、ノンセキュアモードでは、アクセスはシステムの一部のリソースに限定されます。すなわち、セキュアモードで信頼系ソフトウェアを実行し、ノンセキュアモードで非信頼系ソフトウェアを実行することにより、非信頼系ソフトウェアが信頼系ソフトウェアの使用するメモリ領域にアクセスすることを回避します。このアイソレーション機能が、ハードウェアによって提供されます。それぞれのモードで別のOSを動作させることで、Dual-OS環境を実現します。
図3 XLS概要ブロック図
4 まとめ
Dual-OS環境を用いることで、組込みシステムの低コスト化や開発効率を向上させることが可能となること、及びこの環境をXtensaのセキュリティ拡張(XLS)を用いて実現する方法について紹介しました。
Cadenceと南山大学は、2022年度から共同でXLS機能を用いたDual-OS環境の実現のための研究を行っています。2023年7月に開催予定のCadenceLIVE Japan 2023では、この共同研究のこれまでの成果を発表する講演を予定しています。
システムソリューション テンシリカ
プリンシパルアプリケーションエンジニア
博士(工学) 辻 雅之
Latest Issue
- OpenEyeのご紹介 人類の健康増進に貢献するために
- ケイデンスオンラインサポート (Cadence Online Support: COS)のご紹介
- トピックス:CadenceLIVE Japan開催のご案内
- HiFi-TURB プロジェクト - AIおよび機械学習による乱流モデリング
- 「Celsius EC Solver」および「DataCenter Design Software and DataCenter Insight Platform」新機能のご紹介
- 新たな検証課題と高性能FastSPICEシミュレータSpectre FX
- PPA向上および短TAT化にも貢献! Digital Full Flowに融合したModus DFT Test Solutionのご紹介
- アサーション(SVA)の下書きをしたいときには
- OrCAD 便利機能のご紹介
- AI/MLアプリケーションの普及に対応しつつ一段と高速化が進むDRAMメモリーインターフェース
- Chiplet接続 標準規格UCIeとCadence UCIe IPのご紹介
Archive
2023 Issues
2022 Issues
2021 Issues
2020 Issues