AUTOSAR RTE クロスパーティション IOC: マルチコア ECU の安全性と一般的な機能分離
AUTOSAR Classic RTE の IOC (OS 間アプリケーション間通信) は、OS 間アプリケーション/コア間通信のための標準メカニズムです。Infineon TC387QP などのマルチコア MCU 上の一般パーティションからセキュア パーティションを分離すると、IOC は合法的なパーティション間通信パスになります。この記事では、KopherSAR RTE による IOC の生成プロセス、設定方法、制限事項をまとめます。
まとめ
IOC (OS 間アプリケーション間通信) は、AUTOSAR Classic RTE によって提供されるクロス OS アプリケーション/クロスコア通信メカニズムです。システムが ECU を複数の OS アプリケーション (異なるコアで実行できる異なるメモリ保護パーティション) に分割する場合、パーティション間の SWC 通信は通常の RTE センダー/レシーバーの直接呼び出しを使用できず、IOC を通じて実行する必要があります。Infineon TC387QP などのマルチコア MCU は、多くの場合、安全機能 (安全関連パーティション) を一般機能 (非安全パーティション) から分離しており、IOC は 2 つの間の合法的な通信パスです。KopherSAR RTE は構成フェーズ中に IOC チャネルを自動的に生成し、KopherConfig によって均一に管理されます。
技術的な役割
AUTOSAR OS を使用すると、ECU ソフトウェアを複数の OS アプリケーションに分割できます。各 OS アプリケーションは次のことができます。
- メモリ保護ユニット (MPU) セクションの独立した割り当て。
- 異なるコアに割り当てられます (TC387QP は 4 コア)。
- 独立した ASIL レベルを設定します (例: ASIL-D セーフティ パーティションと QM アプリケーション パーティション)。
異なる OS アプリケーション間の SWC 通信では、相手の RTE API を直接呼び出すことはできません (メモリ保護違反が発生します)。構成フェーズ中に、RTE は各 SWC がどの OS アプリケーションに属しているかを分析することにより、パーティション間通信用の IOC を自動的に生成します。
-IOC送受信 -IOC 読み取り/書き込み -IOCトリガー
IOC は OS 層で「IocSend」/「IocReceive」などの API を使用し、OS がコア間の同期やデータのレプリケーションを実行します。
建築
┌───────────────┐ ┌───────────────┐
│ パーティション A (安全、ASIL-D)│ │ パーティション B (QM、非安全)│
│ ┌───────┐ │ │ ┌───────┐ │
│ │ SWC_A │ │ │ │ SWC_B │ │
│ └──────┬──────┘ │ │ └──────┬──────┘ │
│ │ Rte_Write │ │ │ Rte_Read │
│ ▼ │ │ ▼ │
│ ┌─────────┐ │ │ ┌─────────┐ │
│ │ IOC 送信 │─────IPC───▶│ │ │ IOC 受信 │ │
│ ━━━━━━━┘ │ │ └─────────┘ │
━━━━━━━━━━━━━━━━━━━━━━━━┘
コア0 コア1
主要な機能
- クロスコア/クロスパーティション通信: マルチコア MCU (TC387QP) 上で合法的な SWC クロスパーティション データ パスを提供します。
- MPU フレンドリー: メモリ保護を使用する環境での保護違反のトリガーを回避します。
- 自動生成: KopherSAR RTE は、ARXML 構成からパーティション間の送受信を自動的に分析し、対応する IOC を生成します。
- 同期プリミティブ: IOC は、OS によって提供される同期メカニズム (スピン ロック、IPC) を使用して、データの一貫性を確保します。
- Last-is-Best モードと Queued モードをサポート: IOC は 1:1 および N:1 送信者/受信者モードをサポートします。
必要なエンジニアリング入力
| 入力 | 目的 |
|---|---|
| OS アプリケーションの計画 | どの SWC がどのパーティションに属するか。各パーティションの ASIL レベル。 |
| コア構成 | 各 OS アプリケーションがどのコアで実行されるか。 |
| 送信者/受信者インターフェイス | SWC 間のポート、インターフェイス、データ要素の定義。 |
| 同期ポリシー | キュー モード (イベントのシーケンスが保持される) または Last-is-Best (最新値のみ) が必要かどうか。 |
| セキュリティポリシー | パーティション間のデータに追加の整合性/範囲チェックが必要かどうか。 |
KopherBit がこれをサポートする方法
- KopherSAR RTE: AUTOSAR Classic 仕様に準拠した自動 IOC 生成を完全にサポートします。
- KopherConfig: OS アプリケーション、パーティション、コア マッピングを構成し、SWC ARXML から IOC 要件を推測します。
- TC387QP 統合: TC387QP マルチコアとロックステップ メカニズムを最大限に活用して、安全なパーティション テンプレートを提供します。
- コンサルタント: お客様による ASIL に対応したパーティション構造と SWC 割り当ての設計を支援します。
よくある質問
パーティション間で RTE API を直接呼び出すことができないのはなぜですか?
通常、OS アプリケーションごとに独立した MPU セクションがあり、相手のメモリを直接読み書きすると保護違反が発生します。OS アプリケーションが切り替わるたびに OS は MPU ルールを再適用するため、これは同じコアであっても当てはまります。
IOC はレイテンシーを増加させるのでしょうか?
はい。IOC は、IPC および OS の同期メカニズムを通じてデータを送信します。同じパーティションへの直接 RTE 呼び出しと比較すると、追加の遅延が発生します (OS とハードウェアによって異なりますが、通常はマイクロ秒のオーダーです)。設計では、高周波数および高優先度の信号がゾーンをまたがって通過することを避ける必要があります。
クロスコア IOC を同期するにはどうすればよいですか?
OS はクロスコア IOC でスピン ロック + 共有メモリ + コア間割り込み (ICI) を使用し、送信コアは受信コアにデータを読み取るように通知します。KopherSAR RTE はこれらのプリミティブを自動的に構成するため、ユーザーが手動でプリミティブを記述する必要はありません。
IOC はキュー モードをサポートしていますか?
サポート。RTE は、各 IOC チャネルをキューに入れる (イベントのシーケンスを保持する) か、Last-is-Best (最新の値のみを保持する) に設定できます。キュー モードは、イベント タイプの信号 (エラー通知など) に適しています。 Last-is-Best は、周期的な信号 (センサー値など) に適しています。
セキュア パーティション (ASIL-D) パーティション間でデータを検証するにはどうすればよいですか?
SWC レイヤーにチェック ロジックを追加できます: 範囲チェック、妥当性、古いデータの検出。 SecOC およびその他のメカニズムを使用して、パーティション間送信中に MAC を追加することもできます。実施戦略はプロジェクトの安全性分析 (FMEA / TARA / HARA) に基づいています。
すべてのパーティション間の通信には IOC が必要ですか?
はい。RTE 構成フェーズでは、SWC と OS アプリケーション間の対応を分析し、パーティション間の送受信を IOC に自動的に置き換えます。通常の RTE コールは、パフォーマンスに影響を与えることなく、同じゾーン内で引き続き使用されます。
JSON-LD
{
"@context": "https://schema.org",
"@type": "技術記事",
"headline": "AUTOSAR RTE クロスパーティション IOC: マルチコア ECU セキュリティと一般的な機能分離",
"description": "AUTOSAR Classic RTE の IOC (OS アプリケーション間通信) は、マルチコア MCU のセキュア パーティション分離によく使用されるクロス OS アプリケーション/クロスコア SWC 通信パスを提供します。",
"url": "https://kopherbit.com/knowledge/autosar-rte-cross-partition-ioc/",
"公開日": "2026-05-09",
"dateModified": "2026-05-09",
"inLanguage": "zh-TW",
"キーワード": ["AUTOSAR"、"RTE"、"IOC"、"マルチコア"、"セーフティ パーティション"、"TC387QP"]、
"articleSection": "AUTOSAR",
"著者": { "@type": "組織", "名前": "KopherBit", "url": "https://kopherbit.com" },
"publisher": { "@type": "組織", "name": "KopherBit", "logo": { "@type": "ImageObject", "url": "https://kopherbit.com/logo.png" } }
}