title: Why does cache write-back happen the way it does?
body: <p><a href="https://en.wikipedia.org/wiki/Cache_(computing)" rel="nofollow noreferrer">Wikipedia says:</a></p>
  <blockquote>
  <p>When a system writes data to cache, it must at some point write that data to the backing store as well.</p>
  </blockquote>
  <p>Why? My course note's don't justify this. Is any component but the processor interested in what's in the cache? Apparently this mirroring isn't even very urgent, as we can postpone the the writes...</p>
  <blockquote>
  <p>The timing of this write is controlled by what is known as the write policy.</p>
  <p>There are two basic writing approaches:</p>
  <ul>
  <li><p>...</p>
  </li>
  <li><p>Write-back (or write-behind): initially, writing is done only to the cache. The write to the backing store is postponed until the cache blocks containing the data are about to be modified/replaced by new content.</p>
  </li>
  </ul>
  </blockquote>
  <p>So it's postponed until it's <em>about to be replaced</em>? How does that make any sense -- you're mirroring information that you <em>know</em> is about to change! Why not do it when blocks are <em>added</em>?</p>