A memory flush is processed in accordance with a state machine that keeps
track of the flush states of a memory target. A memory target is not
flushed if it has not been written to, or if a memory flush has already
been completed for that memory target. A memory target is flushed if the
memory partition is in a flush needed state or a flush pending state.
Each memory target has an associated state machine, but only one state
machine is maintained per memory target.