シングル スレッド プロセスがビジーで、シングル コアを 100% 使用している場合、Windows がこのプロセスをコア間で切り替えているように見えます。タスク マネージャーのコアの概要では、すべてのコアが均等に使用されているためです。
なぜWindowsはそうするのですか?これは L1/L2 キャッシュを破壊していませんか?
シングル スレッド プロセスがビジーで、シングル コアを 100% 使用している場合、Windows がこのプロセスをコア間で切り替えているように見えます。タスク マネージャーのコアの概要では、すべてのコアが均等に使用されているためです。
なぜWindowsはそうするのですか?これは L1/L2 キャッシュを破壊していませんか?
プロセスを1つのコアに固定することには利点があります。主に、すでに述べたキャッシュです。
不利な点もあります。加熱が不均一になり、シリコン ダイの期待寿命を改善しない機械的ストレスが発生する可能性があります。
これを回避するために、OS はすべてのコアを均等に使用する傾向があります。アクティブなスレッドが 1 つしかない場合は、そのスレッドを移動してキャッシュを無効にする必要があります。これが (CPU 時間で) 頻繁に行われない限り、移行中の余分なキャッシュ ミスの影響は無視できます。
たとえば、「パワー ゲーティングを実装するクラスター化されたマルチコア アーキテクチャのハードウェア ベースの負荷分散におけるエネルギーと熱のトレードオフ」の要約では、これをスケジューリング アルゴリズムの設計目標として明示的に挙げています (強調は私のものです)。
この作業では、これらのクラスター化されたマルチコア アーキテクチャの負荷分散手法が提示され、エネルギーのオーバーヘッドが低く、ダイ全体の温度分布がスムーズになり、コアに均等に負荷をかけることでプロセッサの信頼性が向上します。
熱放散をダイ全体に分散させることは、コアが長期的に持続不可能なレートで一時的にクロックされるターボ ブーストなどの技術にも不可欠です。負荷を定期的に別のコアに移動することで、瞬間的な電力は維持できなくても、平均的な熱放散は維持されます。