第12世代インテル® Core™ プロセッサー(開発コード名:Alder Lake)以降のCPUでは、従来の同一構成のコアによる設計から、高性能なPerformance-core(以下、Pコア)と省電力に優れたEfficient-core(以下、Eコア)の2種類のコアを組み合わせた「ハイブリッド・アーキテクチャ」が採用されています。
このアーキテクチャにより処理負荷や電力効率に応じてPコアとEコアを使い分けることで、性能と省電力を両立した動作が行われますが、リアルタイムOS「INtime」を利用してシステムを開発する際にはPコアとEコアの特性差や論理コア番号の割り当て順序を理解した上で、適切なカーネル配置やアプリケーション配置を行うことが重要となります。
本ガイドラインでは、INtimeをPコア / Eコア搭載PC上で利用する際に留意すべき基本的な考え方や、CPUコアの割り当てに関する注意事項について説明します。
カーネルのコア割り当て設定が「Automatic」になっている場合、論理コア番号(OS上で認識されるCPU番号)が最も大きいコアに自動的に割り当てられます。
カーネルのコア割り当て設定が「手動」の場合、論理コア番号を自由に設定することができますが、それ以降のコアは無効になります。
(1) PコアとEコアでは、ベースクロック(基本動作周波数)が異なります。
(2) PコアとEコアではキャッシュ構成が異なり、L2キャッシュはPコアはコア毎に独立していることに対し、Eコアは4コアで共有します。
ベースクロックとキャッシュ構成の違いは、INtime上で動作するアプリケーション処理の実行時間に影響します。
例えば、同一のアプリケーションをPコアとEコアの両方で動作させた場合、Pコアでの処理はEコアに比べて短時間で完了します。そのため、システム開発においては、PコアとEコアの処理性能の違いを考慮したうえで、適切なシステム設計を行う必要があります。
※注意1.PコアとEコアのベースクロックの違いによるINtimeのカーネルティック(タイマー動作)への影響はありません。
※注意2.実際にはPコア上のINtimeカーネルとEコア上のINitmeカーネルは非同期であるが、便宜上、それぞれの実行時間の違いを表すために下記図1では同時で表現しています。
リアルタイムシステムの開発者はアプリケーションプログラムが制御周期を超えることがないように配慮する必要があります。高速な制御周期が必要とされるシステムでは、プログラムの実行時間をできる限り短縮することが重要な課題となります。INtimeではCPUに搭載されているPコアとEコアの特性を活かすことで、この課題に対応することが可能です。
ベースクロックの高いPコアを活用することで、アプリケーションの実行時間を短縮できる効果が期待できます。なお、産業用PCの中にはPコアのみを搭載したCPU(例:Core i5-12500E、Core i5-12500TE など)を採用したモデルも販売されています。
INtimeのシングルコア構成では実現が困難な制御周期が求められる場合でも、INtimeが持つマルチカーネル機能を活用することで、処理を複数のコアに分散し、解決を図ることが可能です。
例えば、最も処理負荷の高い処理をPコア上のINtimeカーネルに割り当て、それ以外のメイン制御処理、EtherCATマスタ通信、モーション制御処理などをEコア上のINtimeカーネルに分散することで、要求される制御周期を実現する構成が考えられます。