プロセッサ内のキャッシュにより、命令の実行速度が向上します。キャッシュのサイズを1GBのように多くのMBに増やすとどうなるでしょうか。出来ますか?キャッシュサイズを増やすと、常にパフォーマンスが向上しますか?
3 に答える
一方ではキャッシュ サイズとヒット率、他方では電力消費による読み取りレイテンシーとの間にはトレードオフがあります。したがって、最初の質問に対する答えは次のとおりです。技術的には (おそらく) 可能ですが、数 MB のサイズの最新の CPU の L3 キャッシュには約数十サイクルの読み取りレイテンシがあるため、意味をなさない可能性があります。
パフォーマンスは、キャッシュ サイズよりもメモリ アクセス パターンに大きく依存します。より正確には、プログラムが主にシーケンシャルである場合、キャッシュ サイズは大した問題ではありません。ランダム アクセスが非常に多い場合 (例: 連想コンテナーがアクティブに使用されている場合)、キャッシュ サイズは非常に重要です。
上記は、単一の計算タスクに当てはまります。複数のアクティブなプロセスがあるマルチプロセス環境では、プロセス間の競合が減少するため、キャッシュ サイズが大きいほど常に優れています。
これは単純化したものですが、キャッシュが「速度」を向上させる主な理由の 1 つは、プロセッサに非常に近い高速メモリを提供することです。これは、メイン メモリよりもはるかに高速にアクセスできます。したがって、理論的には、キャッシュのサイズを大きくすると、この「高速」メモリにより多くの情報を格納できるようになり、それによってパフォーマンスが向上するはずです。現実の世界では、明らかにこれよりもはるかに複雑です。このような大規模なキャッシュに関連する複雑さとコストが追加され、キャッシュの一貫性やキャッシュ アルゴリズムなどの問題に対処する必要がありました。