KopherBit
AUTOSAR

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" } }
}