Caching reads from the hard disk and caching writes to the hard disk are similar in
some ways, but very different in others. They are the same in their overall objective: to
decouple the fast PC from the slow mechanics of the hard disk. The key difference is that
a write involves a change to the hard disk, while a read does not.
With no write caching, every write to the hard disk involves a performance hit while
the system waits for the hard disk to access the correct location on the hard disk and
write the data. As mentioned in the general
discussion of the cache circuitry and operation, this takes at least 10 milliseconds
on most drives, which is a long time in the computer world and really slows down
performance as the system waits for the hard disk. This mode of operation is called write-through
caching. (The contents of the area written actually are put into the cache in case it
needs to be read again later, but the write to the disk always occurs at the same
time.)
When write caching is enabled, when the system sends a write to the hard disk, the
logic circuit records the write in its much faster cache, and then immediately sends back
an acknowledgement to the operating system saying, in essence, "all done!" The
rest of the system can then proceed on its merry way without having to sit around waiting
for the actuator to position and the disk to spin, and so on. This is called write-back
caching, because the data is stored in the cache and only "written back" to the
platters later on.
Write-back functionality of course improves performance. There's a catch however. The
drive sends back saying "all done" when it really isn't done--the data isn't on
the disk at all, it's only in the cache. The hard disk's logic circuits begin to write the
data to the disk, but of course this takes some time. The hard disk is using a variant of
that old "the check is in the mail" trick you might hear when you call someone
to remind them of that loan they were supposed to pay back three weeks ago. 
Now, this isn't really a problem most of the time, as long as the power stays on.
Since cache memory is volatile, if the power goes
out, its contents are lost. If there were any pending writes in the cache that were not
written to the disk yet, they are gone forever. Worse, the rest of the system has no way
to know this, because when it is told by the hard disk "all done", it can't
really know what that means. So not only is some data lost, the system doesn't even know
which data, or even that it happened. The end result can be file consistency problems,
operating system corruption, and so on. (Of course, this problem doesn't affect cached
reads at all. They can be discarded at any time.)
Due to this risk, in some situations write caching is not used at all. This is
especially true for applications where high data integrity is critical. Due to the
improvement in performance that write caching offers, however, it is increasingly being
used despite the risk, and the risk is being mitigated through the use of additional
technology. The most common technique is simply ensuring that the power does not go off!
In high-end server environments, with their uninterruptible
power supplies and even redundant power
supplies, having unfilled cached writes is much less of a concern. For added peace of
mind, better drives that employ write caching have a "write flush" feature that
tells the drive to immediately write to disk any pending writes in its cache. This is a
command that would commonly be sent before the UPS batteries ran out if a power
interruption was detected by the system, or just before the system was to be shut down for
any other reason.
Next: Hard Disk Form
Factors