A write-caching RAID controller is disclosed. The controller includes a
CPU that manages transfers of posted-write data from host computers to a
volatile memory and transfers of the posted-write data from the volatile
memory to storage devices when a main power source is supplying power to
the RAID controller. A memory controller flushes the posted-write data
from the volatile memory to the non-volatile memory when main power
fails, during which time capacitors provide power to the memory
controller, volatile memory, and non-volatile memory, but not to the CPU,
in order to reduce the energy storage requirements of the capacitors.
During main power provision, the CPU programs the memory controller with
information needed to perform the flush operation, such as the location
and size of the posted-write data in the volatile memory and various
flush operation characteristics.