ライトスルー方式とライトバック方式

問題

応用情報技術者 平成24年秋期 午前問11

キャッシュメモリへの書込み動作には,ライトスルー方式とライトバック方式がある。それぞれの特徴のうち,適切なものはどれか。

  • ライトスルー方式では,データをキャッシュメモリだけに書き込むので,高速に書込みができる。
  • ライトスルー方式では,データをキャッシュメモリと主記憶の両方に同時に書き込むので,主記憶の内容は常に最新である。
  • ライトバック方式では,データをキャッシュメモリと主記憶の両方に同時に書き込むので,速度が遅い。
  • ライトバック方式では,読出し時にキャッシュミスが発生してキャッシュメモリの内容が追い出されるときに,主記憶に書き戻す必要が生じることはない。

答え

ライトスルー方式では,データをキャッシュメモリと主記憶の両方に同時に書き込むので,主記憶の内容は常に最新である。

解説

「ライトバックなので後(バック)から書き込む」とライトバックの特徴を覚えます。

キャッシュメモリ

キャッシュメモリは、とても速いCPUとあまり速くないメモリ(主記憶)の情報のやり取りの中間にあるメモリで、主記憶より容量は少ないが高速に動作することで、コンピュータの全体的な処理速度を高めるために使われます。


キャッシュメモリ (cache memory) は、CPUなど処理装置がデータ命令などの情報を取得/更新する際に主記憶装置バスなどの遅延/低帯域を隠蔽し、処理装置と記憶装置の性能差を埋めるために用いる高速小容量メモリのことである。略してキャッシュとも呼ぶ。コンピュータは以前から記憶装置や伝送路の性能が処理装置の性能に追いつけず、この差が全体性能に対するボトルネックとされてきた(ノイマンズ・ボトルネック)。そしてムーアの法則に基づく処理装置の加速度的な高性能化により現在ではますますこの差が拡大されている。キャッシュメモリは、記憶階層の観点からこれを解消しようとするものである。
主に、主記憶装置とCPUなど処理装置との間に構成される。この場合、処理装置がアクセスしたいデータやそのアドレス、状態、設定など属性情報をコピーし保持することで、本来アクセスすべき記憶装置に代わってデータを入出力する。通常はキャッシュメモリが自動的にデータ保存や主記憶装置の代替を行うため、基本的にCPUのプログラムなど処理装置側がキャッシュメモリを意識する必要はない。


出典: フリー百科事典『ウィキペディア(Wikipedia)』

キャッシュメモリと主記憶のデータの同期

キャッシュメモリ上で更新されたデータは、いずれかのタイミングで下位レベルのメモリ(主記憶)に反映、同期する必要があります。

その同期のタイミングによって、2つのアルゴリズムに分かれます。

ライトスルー(write through)方式

書込み命令時にキャッシュメモリと主記憶の両方を同時に書き換える方式。

データをキャッシュメモリと主記憶の両方に同時に書き込むので,主記憶の内容は常に最新ですが、速度は遅くなります。


CPUがメモリ書き込みを行ったら、キャッシュにストアすると同時に下位レベルのメモリにも書き戻す方式。必ず下位レベルのバスが活性化するため、バスの競合や下位レベルの低いスループットに律速されるなどの制約はあるが、単純な構成で実現でき、またデータのコヒーレンシを保つことが容易である。出力段にライトバッファを設けることにより、単一CPUであればライトバック方式に比べ遜色のない性能が期待できる。そのためCPUのL1キャッシュなどに実装される場合が多い。


出典: フリー百科事典『ウィキペディア(Wikipedia)』

ライトバック(write back)方式

キャッシュメモリからデータが追い出される際に主記憶への書き込みを行う方式。

データをキャッシュメモリだけに書き込むので,高速に書込みができます。

読出し時にキャッシュミスが発生してキャッシュメモリの内容が追い出されるときに,主記憶に書き戻します。


CPUがメモリ書き込みを行っても、条件が整わない限りキャッシュに留まりメモリへの書き戻しを行わない方式。書き戻す条件は対象エントリにウエイ数以上のフレームアドレスのリード/ライトが行われる、他のバスマスタが対象エントリが保持しているアドレスに対しアクセスを行った時にコヒーレンシを保つために行うなどがある。ライトスルー方式に対し下位レベルのバスが競合を起こしにくく、マルチCPU構成に向くため、記憶階層の同一レベルに複数のキャッシュが接続されているようなL2キャッシュに実装される。


出典: フリー百科事典『ウィキペディア(Wikipedia)』