QoS-Aware Scheduling
First Claim
1. A method comprising:
- receiving a plurality of memory operations in a memory controller, wherein each memory operation of the plurality of memory operations has an associated quality of service (QoS) parameter indicating a requested quality of service for the memory operation; and
grouping the plurality of memory operations into a plurality of affinity groups, wherein the memory operations within a given affinity group consume less memory bandwidth when scheduled as a group then when scheduled separately; and
scheduling memory operations directed to each memory channel of a plurality of memory channels responsive to the QoS parameters associated with the memory operations, a state of the memory controller, and sizes of the plurality of affinity groups.
0 Assignments
0 Petitions
Accused Products
Abstract
In an embodiment, a memory controller includes multiple ports. Each port may be dedicated to a different type of traffic. In an embodiment, quality of service (QoS) parameters may be defined for the traffic types, and different traffic types may have different QoS parameter definitions. The memory controller may be configured to schedule operations received on the different ports based on the QoS parameters. In an embodiment, the memory controller may support upgrade of the QoS parameters when subsequent operations are received that have higher QoS parameters, via sideband request, and/or via aging of operations. In an embodiment, the memory controller is configured to reduce emphasis on QoS parameters and increase emphasis on memory bandwidth optimization as operations flow through the memory controller pipeline.
10 Citations
20 Claims
-
1. A method comprising:
-
receiving a plurality of memory operations in a memory controller, wherein each memory operation of the plurality of memory operations has an associated quality of service (QoS) parameter indicating a requested quality of service for the memory operation; and grouping the plurality of memory operations into a plurality of affinity groups, wherein the memory operations within a given affinity group consume less memory bandwidth when scheduled as a group then when scheduled separately; and scheduling memory operations directed to each memory channel of a plurality of memory channels responsive to the QoS parameters associated with the memory operations, a state of the memory controller, and sizes of the plurality of affinity groups. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A memory controller comprising:
-
an agent interface unit coupled to receive memory operations input to the memory controller, wherein each received memory operation includes a quality of service (QoS) parameter indicating a requested quality of service for the received memory operation; and a plurality of memory channel units, wherein the agent interface unit is configured to schedule the received memory operations to the plurality of memory channel units responsive to an address accessed by each received memory operation, and wherein each of the plurality of memory channel units is configured to group memory operations received from the agent interface unit into affinity groups, wherein the memory operations within a given affinity group consume less memory bandwidth when scheduled as a group then when scheduled separately, and wherein each of the plurality of memory channel units is configured to schedule the memory operations to access a memory responsive to a size of the affinity groups and further responsive to the QoS parameters of the memory operations. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. An apparatus for a memory controller comprising:
-
a plurality of transaction queues configured to store memory operations and associated quality of service (QoS) parameters, wherein a given QoS parameter indicates a requested quality of service for the a corresponding memory operation; an enqueue control unit coupled to the plurality of transaction queues and configured to enqueue memory operations into the plurality of transaction queues, wherein the enqueue control unit is configured to group the memory operations into affinity queues in the plurality of transaction queues; and a scheduler coupled to the plurality of transaction queues and configured to schedule memory operations for transmission on a memory channel responsive to the affinity queues and further responsive to the QoS parameters. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification