PCプラットフォームによる PCプラットフォームによる 産業用ソリューションプロバイダー 産業用ソリューションプロバイダー


採用情報


お問合せ

JapaneseEnglish

  • PP061
ホーム > INtime® > INtime® 技術情報 > INtimeにおけるPコア・Eコア活用
2025年5月15日
石川 克之
INtimeにおけるPコア・Eコア活用
はじめに

第12世代インテル® Core™ プロセッサー(開発コード名:Alder Lake)以降のCPUでは、従来の同一構成のコアによる設計から、高性能なPerformance-cores(以下、Pコア)と省電力に優れたEfficient-cores(以下、Eコア)の2種類のコアを組み合わせた「ハイブリッド・アーキテクチャー」が採用されています。

ハイブリッド・アーキテクチャーにより処理負荷や電力効率に応じてPコアとEコアを使い分けることで、性能と省電力を両立した動作が行われますが、リアルタイムOS「INtime」を利用してシステムを開発する際にはPコアとEコアの特性差や論理コア番号の割り当て順序を理解した上で、適切なカーネル配置やアプリケーション配置を行うことが重要となります。

本ガイドラインでは、INtimeをPコア / Eコア搭載PC上で利用する際に留意すべき基本的な考え方や、CPUコアの割り当てに関する注意事項について説明します。

INtimeカーネルは、CPUコアへのさまざまな割り当て設定が可能です。
システム要件に応じてCPUコアへの柔軟な割り当てが可能であり、リアルタイム性や処理負荷に応じた最適な構成を実現できます。
- INtimeカーネルの割り当て例 (Intel Core i7 12700) -
[ 例1 ]
Eコアへのカーネル割り当て
[ 例3 ]
Eコアへの複数割り当て
[ 例5 ]
PコアのみのCPU (Core i3-13100E等)
[ 例2 ]
Pコアへのカーネル割り当て
[ 例4 ]
PコアとEコアへの複数割り当て
[ 例6 ]
EコアのみのCPU (Atom x7425E等)
PコアとEコアの有効活用例

リアルタイムシステムの開発者はアプリケーションプログラムが制御周期を超えることがないように配慮する必要があります。高速な制御周期が必要とされるシステムでは、プログラムの実行時間をできる限り短縮することが重要な課題となります。INtimeではCPUに搭載されているPコアとEコアの特性を活かすことで、この課題に対応することが可能です。

表1.INTIME-RTシングルカーネル基本構成
(1) Pコアの利用

Eコアが無駄になってしまいますがベースクロックの高いPコアを活用することで、アプリケーションの実行時間を短縮できる効果が期待できます

なお、産業用PCの中にはPコアのみを搭載したCPU(例:Core i5-12500E、Core i3-13100E など)を採用したモデルも販売されています。

表2.Pコア利用例
表3.Pコア利用例 その2 (Core i3-13100E)
(2) 複数コアを活用した処理分散

INtimeのシングルコア構成では実現が困難な制御周期が求められる場合でも、INtimeが持つマルチカーネル機能を活用することで、処理を複数のコアに分散し、解決を図ることが可能です。

例えば、最も処理負荷の高い処理をPコア上のINtimeカーネルに割り当て、それ以外のメイン制御処理、EtherCATマスタ通信、モーション制御処理などをEコア上のINtimeカーネルに分散することで、要求される制御周期を実現する構成が考えられます。

表4.複数コアによる処理分散例
PコアとEコアの主な違い
(1) インターバル周期性能

下記の周期性能データは、INtimeを 『 500μ秒 』 インターバルで 『 30分間 』 測定したデータです。

表5.測定条件

※論理コア14と論理コア15の違い
ハイパースレッディング有効時にINtimeを論理コア15で実行した際は論理コア14ではWindowsが動作している。

(2) ベンチマーク性能

PコアとEコアでINtimeアプリケーションを実行した場合、処理時間に差が生じます。
次のデータは浮動小数点数演算を含む3次方程式を実行するサーバータスクにおける1秒間の実行回数を測定した結果です。秒間のサービスタスク要求回数をベンチマーク値(回数/S)とします。

図1. 1秒間の実行回数
表6.測定条件
(3) EtherCAT通信性能

EtherCATマスタ通信をPコアとEコアで実行したときの実行時間を計測しました。
以下に示す処理時間は、EtherCATマスタ「RSI-ECAT」により、1台のスレーブを接続した状態でのプロセスイメージ通信にかかる処理時間を示しています。この処理時間は、EtherCATマスタによるプロセスイメージ処理の開始から、パケットの送信、返信パケットの受信、そして受信データの取り込みまでを含んだ一連の処理全体に要する時間を表しています。

図2. プログラム実行時間 (μ秒)
表7.測定条件
INtimeカーネル割り当て方法

INtimeでは、図3の「Node Management」画面にて、CPUコアへのINtimeカーネルの割り当て設定を行います。

図中の赤枠で示されている項目が、割り当て設定を行う箇所です。なお、例として表示されているPCはCore i7-12700を搭載しているため、「Automatic」と「1~19」の設定項目が表示されています。

「Automatic」に設定されている場合は、論理コア番号(OS上で認識されるCPU番号)が最も大きいコアにINtimeカーネルが自動的に割り当てられます。なお、任意のコアに対して個別に割り当てを指定することも可能です。

(1) “Automatic” でのコアの割り当て

INtimeカーネルのコア割り当て設定が「Automatic」になっている場合、論理コア番号(OS上で認識されるCPU番号)が最も大きいコアに自動的に割り当てられます。 CPU : Core i7-12700 (8P + 4E構成)。

表8.INTIME-RT (シングルカーネル)
論理コア番号が最も大きいコアに割り当てられます。
表9.INTIME-MCRT (マルチカーネル)
論理コア番号が最も大きいコアから順に割り当てられます。
(2) 任意指定でのコアの割り当て

INtimeカーネルのコア割り当て時に個別に論理コア番号を自由に設定することができます。なおそれ以降のコアは無効になります。 CPU : Core i7-12700 (8P + 4E構成)。

表10.INTIME-RT (シングルカーネル)
論理コア番号17にINtimeカーネルを割り当てた場合、18と19は無効になります。
表11.INTIME-MCRT (マルチカーネル)
論理コア番号16と17にINtimeカーネルを割り当てた場合、18と19が無効になります。
その他
(1) Windowsへのコア割り当て数と動作

Windowsは利用するコア数が少ないほど、Windowsの起動時間および起動後のWindows上で実行するアプリケーションの動作に影響を与える場合があります。また、INtimeはWindows起動後にINtimeカーネルが起動するため、INtimeの起動時間にも影響を及ぼします。実際の症例としてWindowsの利用コア数を1つに設定した場合、極端に起動時間が遅くなるという症例が報告されております。
そのためINtimeに割り当てるコア数を設定する際には、Windows側に十分なコア数を残すようご配慮ください。

[例] Core i3-13100E 搭載 PC