ライトバックとは?らいとばっく
ライトバックとは、書込みをいったんキャッシュだけへ反映し、そのラインが追い出されるときにまとめて主記憶へ書き戻す方式。同じ場所へ何度書いても主記憶へのアクセスは1回で済むためバストラフィックが減るが、キャッシュと主記憶が食い違う期間ができるので、一貫性の管理がソフト側の責任として残る。
最終更新:2026-10-06
エンベデッドSPを最短で暗記・合格する →背景
制御ループのように、同じ変数へ短い周期で何度も書く処理では、そのつど主記憶まで書きに行くのは無駄が大きい。ライトバックは主記憶へのアクセスを書込み回数ではなくライン入替えの回数まで減らすので、空いたバスをDMAや他のコアが使える。その代償が「主記憶が最新とは限らない期間」で、DMAや他コアがその領域を読む前に、ソフト側で明示的な書戻し(クリーン)を挟む責任が生まれる。
具体例
各ラインに更新済みかどうかを示すダーティビットを持ち、追い出し時にダーティなラインだけ書き戻す。DMAで送るバッファをライトバック領域に置くなら、DMA起動の直前にキャッシュのクリーンを呼んで書き戻してから起動する。逆にDMAで受け取った領域を読む前には、古い行を捨てる無効化(インバリデート)が要る。Cortex-Aのキャッシュ保守命令やSTM32H7のD-Cache操作は、この2つを使い分けるためにある。
試験での引っ掛け
電源断やリセットのタイミングでは、書戻し前の内容が失われる。不揮発領域へ確実に残したいなら明示的な書戻しが要る。DMAとの併用では、送信前のクリーンと受信後の無効化を取り違えるのが典型的な不具合で、「たまに古いデータが送られる」「受信データが更新されない」という再現性の低い症状になる。ライトスルーと逆に覚えると、どちらの操作が要るかの判断ごと反転する。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。