キャッシュの本質的な弱点は、実際に実行してみないと本当のタイミングが決まらないことだ。ヒット率が低く、キャッシュミスが発生したときの遅延時間が非常に長い場合は、キャッシュが存在することそのものが性能の低下を招くことすらある。例えば複数のアドレスにアクセスする多重ロード命令(LDM命令)でキャッシュミスが発生すると、CPUの待ち時間は長大なものになる。これまで述べてきたいくつかの工夫は、メモリアクセスがキャッシュにヒットすることで初めて、性能の向上をもたらす。
キャッシュの有効性を支えているのは、データの局所性である。局所性には時間的局所性(一度アクセスしたデータは近い将来に再度アクセスする)と空間的局所性(特定のアドレスにアクセスが集中)があり、キャッシュではこれらの両方の性質を利用する。従って、局所性の少ないアプリケーションでは、キャッシュが有効に働かないことがある。
この他、1次キャッシュでミスしたとしても、2次キャッシュでヒットするかミスするかによって、結果は大きく違う。また割り込みサービスルーチン(ISR)の発生は、キャッシュラインのデータを無駄にする可能性がある。そしてマルチマスターのシステムでは、CPUがバスを確保するまでの待ち時間が発生して性能を低下させる恐れが残る。
(次回に続く)
⇒「福田昭のデバイス通信」連載バックナンバー一覧
IEDMで発表されていた3D XPointの基本技術(前編)
IEDM開催スケジュールの全体像
CPUアーキテクチャの基礎
のぞいてみよう、マイコンの中!! ―― 複雑な演算も簡単な動作の繰り返しCopyright © ITmedia, Inc. All Rights Reserved.
記事ランキング