1. A memory controller comprising: an agent interface unit coupled to receive a plurality of memory operations from one or more sources, each memory operation of the plurality of memory operations accompanied by a quality of service (QoS) parameter specifying a requested quality of service for the memory operation; and the agent interface unit comprises a plurality of memory channel interface units configured to schedule memory operations for transmission to a plurality of memory channel units for access to a memory on a plurality of memory channels, wherein the memory channel interface units are configured to arbitrate among the plurality of memory operations responsive to the QoS parameters corresponding to the plurality of memory operations; wherein, responsive to receiving a first memory operation from a first source that has transmitted one or more previous memory operations and further responsive to a first QoS parameter corresponding to the first memory operation indicating a higher level of service than previous QoS parameters corresponding to the previous memory operations, the memory controller is configured to upgrade the previous QoS parameters to the level of service indicated by the first QoS parameter; and wherein each memory operation includes a flow identifier indicating a flow of memory operations, and wherein the memory channel interface units are configured to upgrade the previous QoS parameters from the first source only for the previous memory operations that are from the same flow as the first memory operation.