第1章 プロセッサーコア

プロセッサーコア は、コンピューター内の物理処理ユニット (CPU) です。コアはマシンコードの実行を行います。ソケット は、プロセッサーとコンピューターのマザーボードとの間の接続です。ソケットは、プロセッサーが配置されるマザーボードの場所です。1 つのコアプロセッサーが物理的に 1 つのソケットを占有しており、1 つのコアを利用できます。クアッドコアプロセッサーは物理的に 1 つのソケットを占有しており、4 つのコアを利用できます。
リアルタイムアプリケーションを設計する場合は、利用可能なコアの数を考慮してください。また、コア間でキャッシュがどのように共有されるか、およびコアが物理的に接続されている方法に注意することが重要です。
アプリケーションで複数のコアが利用できる場合は、スレッドまたはプロセスを使用してその利点を活用します。このコンストラクトを使用せずにプログラムが作成された場合には、一度に 1 つのプロセッサーでのみ実行されます。マルチコアプラットフォームを使用すると、異なるタイプの操作に異なるコアを使用して、利点を得ることができます。

1.1. キャッシュ

多くの場合、アプリケーションのさまざまなスレッドは、データ構造などの共有リソースへのアクセスを同期する必要があります。この場合、システムのキャッシュレイアウトを把握することでパフォーマンスを向上できます。Tuna ツールを使用すると、キャッシュレイアウトの判断に役立ちます。対話するスレッドをコアにバインドして、キャッシュを共有するようにします。キャッシュ共有 は、相互除外プリミティブ (mutex、condvar、または同様の )とデータ構造自体が同じキャッシュを使用するようにすることで、メモリー障害を軽減します。