L2キャッシュでライトバックとライトスルーの違いを教えてください。
ライトバックではL2キャッシュへの書き込みが発生してもすぐにはメインメモリに書き込まず,L2キャッシュ上で書き込みが行われた部分がL2キャッシュ上から廃棄されるとき(「あふれるとき」といったほうが分かりやすいかと思います)にメインメモリに書き込みを行います。
ライトスルーではL2キャッシュへの書き込みが発生すると同時にメインメモリにも書き込みを行い,L2キャッシュの内容とメインメモリの内容は常に一致しますから,書き込みが行われた部分が廃棄されるときでもメインメモリに書き込みを行う必要はありません。
一般には低速なメインメモリへの書き込み頻度が低くなるライトバックのほうが高速ですが,状況によってはライトスルーのほうが高速な場合もあります。ライトバックでは1バイトでも書き込みが発生した場合,最終的に管理ブロック単位でまとめてメインメモリに書き込む必要があります。これはL2キャッシュに書き込みがあったかどうかはブロック単位でしか管理されていないためです。例えば1ブロックが1KB=1024バイトなら1バイトでも書き込みがあったブロック1024バイトをすべてメインメモリに書き込まなければなりません。ライトスルーなら1バイトの書き込みはメインメモリへも1バイトの書き込みで済みます。要するにメモリへの書き込みのL2キャッシュへのヒット率が高い場合はライトバックのほうが高速なのですが,極端にL2キャッシュへのヒット率が低い場合はライトスルーのほうが高速になります。もっとも一般的にはL2キャッシュへのヒット率が極端に低くなることはまれですから,ライトバックのほうがたいてい高速であるといえます。
(吹田智章)