セカンダリキャッシュ (セカンダリキャッシュ) とは | 意味や読み方など丁寧でわかりやすい用語解説
セカンダリキャッシュ (セカンダリキャッシュ) の読み方
日本語表記
二次キャッシュ (ニジキャッシュ)
英語表記
secondary cache (セカンダリ キャッシュ)
セカンダリキャッシュ (セカンダリキャッシュ) の意味や用語解説
セカンダリキャッシュとは、コンピュータシステムにおけるキャッシュメモリの一種であり、主にCPUが頻繁にアクセスするデータを一時的に保存することで、システム全体の処理速度を向上させる役割を担う。キャッシュメモリは、CPUの動作速度とメインメモリやストレージのアクセス速度との間に存在する大きな隔たりを埋めるために不可欠な要素である。この速度差が大きいため、CPUが直接メインメモリからデータを読み書きするのを待っている時間が長くなると、せっかく高速なCPUがあってもその性能を十分に発揮できなくなる。セカンダリキャッシュは、より高速で容量の小さいプライマリキャッシュ(一般的にはL1キャッシュ)と、より低速で大容量なメインメモリの中間に位置し、速度と容量のバランスを取ることで効率的なデータアクセスを実現する。 詳細に説明すると、コンピュータのデータアクセスには階層構造が存在する。最も高速なのはCPU内部にあるレジスタであり、その次に高速なのがキャッシュメモリである。キャッシュメモリ自体も階層化されており、通常はCPUコアに最も近いL1キャッシュ、その次にL2キャッシュ、さらにL3キャッシュというように段階的に分けられている。ここでいう「セカンダリキャッシュ」は、主にL2キャッシュやL3キャッシュを指すことが多い。 CPUが特定のデータにアクセスしようとするとき、まず最も高速なL1キャッシュを検索する。もしL1キャッシュにデータが見つかれば、これを「キャッシュヒット」と呼び、CPUは非常に高速にそのデータを利用できる。しかし、L1キャッシュの容量は非常に小さいため、必要なデータがL1キャッシュにない場合も頻繁に発生する。この場合を「キャッシュミス」と呼び、CPUは次にL2キャッシュを検索する。L2キャッシュはL1キャッシュよりも容量が大きく、L1キャッシュに収まらなかったデータを保持している可能性が高い。L2キャッシュもL1キャッシュよりは遅いが、メインメモリにアクセスするよりもはるかに高速であるため、L2キャッシュでデータが見つかれば、処理速度の低下を最小限に抑えることができる。L2キャッシュにもデータがなければ、さらに容量の大きいL3キャッシュを検索する。L3キャッシュは通常、複数のCPUコアで共有されることが多く、L2キャッシュよりもさらに容量が大きいが、アクセス速度はL2キャッシュよりやや遅い。L3キャッシュでもデータが見つからなければ、最終的にメインメモリにアクセスすることになる。メインメモリへのアクセスはキャッシュメモリへのアクセスに比べて非常に時間がかかり、CPUの処理を一時的に停止させることになるため、このアクセス回数を減らすことがシステム性能向上に直結する。 セカンダリキャッシュ、特にL2キャッシュやL3キャッシュの役割は、このキャッシュミス発生時のペナルティを軽減することにある。L1キャッシュが捉えきれなかったが、比較的頻繁にアクセスされるデータをセカンダリキャッシュが保持しておくことで、メインメモリへのアクセス頻度を大幅に削減し、CPUの待ち時間を短縮するのである。このように、セカンダリキャッシュは「プライマリキャッシュの補完」および「メインメモリへのアクセス頻度削減」という二重の役割を担い、全体的なシステムの応答性とスループット(単位時間あたりの処理量)を向上させる。 セカンダリキャッシュの設計においては、容量、速度、そしてキャッシュコヒーレンシと呼ばれる「複数のキャッシュに同じデータが存在する場合に、その一貫性を保つ仕組み」の管理が重要な要素となる。容量が大きくなればなるほど、キャッシュミスが減りメインメモリへのアクセスが減る可能性が高まるが、その分コストもかかり、物理的な回路の複雑さやアクセス速度の低下を招く場合もある。そのため、CPU設計者は、システムの特性やコストパフォーマンスを考慮して最適なセカンダリキャッシュの容量と階層構造を決定している。近年のマルチコアCPUでは、各コアに専用のL1、L2キャッシュが割り当てられ、複数のコアで共有するL3キャッシュが搭載される構成が一般的であり、これにより複数のコアが効率的にデータを共有し、並列処理の性能を高めている。セカンダリキャッシュは、単に高速なメモリとして機能するだけでなく、現代の高性能なコンピュータシステムを支える不可欠な基盤技術の一つであると言える。