キャッシュメモリ
【英】cache memory
キャッシュメモリとは、CPUの処理速度を低下させないために、メインメモリ(主記憶装置)にあるデータをあらかじめ移しておき、高速でのデータ入出力を可能にするメモリのことである。
CPUの動作周波数(クロック周波数)が高くなると、メインメモリとの処理速度に大きな差が生じて、待ち状態が頻発するようになる。これではCPUの性能が十分に活用できないため、CPUとメインメモリの中間にキャッシュメモリを配置して、命令実行速度を促進する。
なお、必要以上のデータをキャッシュメモリに配置しても、処理に時間がかかり、本来の目的を果たせない。
参照リンク
Memory and Cache - (英文)
キャッシュメモリ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/05/26 14:01 UTC 版)
キャッシュメモリ (cache memory) は、CPUなど処理装置がデータや命令などの情報を取得/更新する際に主記憶装置やバスなどの遅延/低帯域を隠蔽し、処理装置と記憶装置の性能差を埋めるために用いる高速小容量メモリのことである。略してキャッシュとも呼ぶ。コンピュータは以前から記憶装置や伝送路の性能が処理装置の性能に追いつけず、この差が全体性能に対するボトルネックとされてきた(ノイマンズ・ボトルネック)。そしてムーアの法則に基づく処理装置の加速度的な高性能化により現在ではますますこの差が拡大されている。キャッシュメモリは、記憶階層の観点からこれを解消しようとするものである。
- ^ "to sustain Haswell’s CPU peak (e.g., 16 multiply-adds per cycle), a core must access 16 matrix elements (= 64 bytes) per cycle, all from memory ... assuming 2.0GHz processor, it requires memory bandwidth of: ≈ 64 × 2.0 GHz = 128 GB/s" 田浦. (2016). What You Must Know about Memory, Caches, and Shared Memory. 並列分散プログラミング, 東京大学.
- ^ "__m256 _mm256_fmadd_ps ... Throughput (CPI) ... Haswell ... 0.5" Intel Intrinsics Guide. 2022-04-03閲覧.
- ^ "A simple memcpy experiment ... 4.575611 GB/sec ... an almost proportional improvement up to 10 lists" 田浦. (2016). What You Must Know about Memory, Caches, and Shared Memory. 並列分散プログラミング, 東京大学.
- ^ "it requires memory bandwidth ... ≈ 20× more than it provides" 田浦. (2016). What You Must Know about Memory, Caches, and Shared Memory. 並列分散プログラミング, 東京大学.
- ^ "multi level caches ... recent processors have multiple levels of caches" 田浦. (2018). What You Must Know about Memory, Caches, and Shared Memory. 並列分散プログラミング, 東京大学.
- ^ "multiple levels of caches (L1, L2, . . . )" 田浦. (2018). What You Must Know about Memory, Caches, and Shared Memory. 並列分散プログラミング, 東京大学.
- ^ Bonwick, Jeff (6 June 1994). "The Slab Allocator: An Object-Caching Kernel". USENIX Summer 1994 Technical Conference. USENIX.
- ^ Torvalds, Linus. “arch/x86/kernel/vmlinux.lds.S at master”. GitHub. 2024年5月26日閲覧。 Linux カーネル、x86のリンカスクリプト。セクション
.data..read_mostly
が該当、マクロREAD_MOSTLY_DATA()
を用いて間接的に定義。 - ^ The FreeBSD Project. “sys/conf/ldscript.amd64 at main”. GitHub. 2024年5月26日閲覧。 FreeBSD カーネル、amd64のリンカスクリプト。セクション
.data.read_mostly
が該当。
- 1 キャッシュメモリとは
- 2 キャッシュメモリの概要
- 3 ソフトウェアへの影響
- 4 参考文献
- 5 関連項目
キャッシュメモリ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/17 12:30 UTC 版)
「ソリッドステートドライブ」の記事における「キャッシュメモリ」の解説
キャッシュメモリには128Mバイト程度のDRAMを使用することが多く、読み書きの高速化に寄与する。部分的な書き込み時には対象となるブロック全体を一時的に保持するのに使用される。また、1つのブロックに対する複数の細かな書き込み要求ではフラッシュメモリに書き込まずにキャッシュメモリに蓄えておき、ある程度まとめてから1度に書き込むことで、書き込み可能回数の実質的な向上を行なうのにも使用される。 廉価帯の製品ではキャッシュメモリが省略されているものがある。 フラッシュメモリと、DRAMを用いたコントローラを搭載したものが主流であるが、2012年5月にはバッファローメモリ(メルコホールディングス傘下)が、DRAMの代わりに不揮発性メモリであるMRAMをキャッシュメモリに採用したSSDを産業向けにサンプル出荷開始した。製品は、組み込み向けに比較的小容量(数ギガバイト)で、突然の電源断でも書き込みデータや、コントローラの管理データを保持し、耐障害性の向上、低消費電力化などが図られるという。
※この「キャッシュメモリ」の解説は、「ソリッドステートドライブ」の解説の一部です。
「キャッシュメモリ」を含む「ソリッドステートドライブ」の記事については、「ソリッドステートドライブ」の概要を参照ください。
キャッシュメモリ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/01 03:04 UTC 版)
「USBフラッシュドライブ」の記事における「キャッシュメモリ」の解説
USB2.0以降のインターフェースを持つ高速USBメモリの記憶領域をHDDに対するキャッシュメモリとして使用し、HDDのデータの一部をUSBメモリに格納してHDDアクセスを高速化することが可能である。ReadyBoost機能を搭載したWindows Vista以後のOSで、所定の転送速度よりも高いパフォーマンスを発揮できると判定されると使用できる。また、ReadyBoostを搭載していないOSでも同様の機能を付与するサードパーティー製ソフトも発売されている。
※この「キャッシュメモリ」の解説は、「USBフラッシュドライブ」の解説の一部です。
「キャッシュメモリ」を含む「USBフラッシュドライブ」の記事については、「USBフラッシュドライブ」の概要を参照ください。
- キャッシュメモリのページへのリンク