QoS-aware scheduling
First Claim
1. A memory controller comprising:
- an agent interface unit coupled to receive a plurality of memory operations from one or more sources, and wherein each memory operation of the plurality of memory operations is accompanied by a quality of service (QoS) parameter specifying a requested quality of service for the memory operation, wherein the agent interface unit comprises at least one memory channel interface unit configured to schedule the memory operations to access the memory, wherein scheduling decisions in the memory channel interface unit are responsive to the QoS parameters associated with the memory operations; and
at least one memory channel unit coupled to receive the memory operations scheduled by the memory channel interface unit, and wherein the memory channel unit is configured to schedule read operations responsive to the QoS parameters, and wherein, in a first case, the memory channel unit is configured to rank a low-latency QoS parameter equal to a best effort QoS parameter, and wherein, in a second case, the memory channel unit is configured to rank the low-latency QoS parameter higher than the best effort QoS parameter.
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.
-
Citations
20 Claims
-
1. A memory controller comprising:
-
an agent interface unit coupled to receive a plurality of memory operations from one or more sources, and wherein each memory operation of the plurality of memory operations is accompanied by a quality of service (QoS) parameter specifying a requested quality of service for the memory operation, wherein the agent interface unit comprises at least one memory channel interface unit configured to schedule the memory operations to access the memory, wherein scheduling decisions in the memory channel interface unit are responsive to the QoS parameters associated with the memory operations; and at least one memory channel unit coupled to receive the memory operations scheduled by the memory channel interface unit, and wherein the memory channel unit is configured to schedule read operations responsive to the QoS parameters, and wherein, in a first case, the memory channel unit is configured to rank a low-latency QoS parameter equal to a best effort QoS parameter, and wherein, in a second case, the memory channel unit is configured to rank the low-latency QoS parameter higher than the best effort QoS parameter. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A memory controller comprising:
-
an agent interface unit coupled to receive a plurality of memory operations from one or more sources, wherein each memory operation of the plurality of memory operations is accompanied by a quality of service (QoS) parameter specifying a requested quality of service for the memory operation, wherein the plurality of memory operations are classified into one of at least two traffic classes, wherein the QoS parameter definition is different for the different traffic classes; and a plurality of memory channel units, each of the plurality of memory channel units configured to interface to memory on a respective memory channel of the plurality of memory channels; wherein the agent interface unit is configured to identify a memory channel of the plurality of memory channels for each memory operation of the plurality of memory operations, wherein the identified memory channel is the memory channel to which the memory operation is directed, and wherein the agent interface unit is configured to independently schedule memory operations to each memory channel unit, and wherein scheduling decisions among memory operations directed to a particular memory channel are responsive, at least in part, to the QoS parameters of the memory operations, and wherein the ranking of the QoS parameters of each traffic class with respect to the QoS parameters of other traffic classes is dependent on a state of the memory controller. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. 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 wherein each of the plurality of memory operations has an associated traffic class, wherein the associated QoS parameter is defined according to the associated traffic class; and scheduling memory operations directed to each memory channel of a plurality of memory channels according to the QoS parameters associated with the memory operations and further according to a state of the memory controller, wherein a relative ranking of the QoS parameters is different for different states of the memory controller. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification