Dynamic QoS upgrading
First Claim
1. A system comprising:
- a plurality of sources of memory operations, where each source is configured to transmit memory operations and corresponding quality of service (QoS) parameters indicating a requested QoS for the corresponding memory operations; and
a memory controller coupled to the plurality of sources and configured to control access to a memory for the memory operations, wherein the memory controller comprises a plurality of queues configured to store memory operations, and wherein the memory controller is configured to arbitrate among the memory operations responsive to the QoS parameters, and wherein the memory controller is coupled to receive an upgrade QoS indication from a first source of the plurality of sources, and wherein the memory controller is configured to modify the QoS parameters of pending memory operations in the queues, and wherein the pending memory operations were received from the first source, and wherein the QoS parameters are modified responsive to receiving the upgrade QoS indication from the first source subsequent to receiving the pending memory operations, wherein the modified QoS parameter for a given pending memory operation is different from an original QoS parameter provided by the first source with the pending memory operation at a time that the pending memory operation is received from the first source, and wherein the modified QoS parameter indicates a higher level of QoS than a level of QoS indicated by the original QoS parameter provided with the pending memory operation.
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.
41 Citations
20 Claims
-
1. A system comprising:
-
a plurality of sources of memory operations, where each source is configured to transmit memory operations and corresponding quality of service (QoS) parameters indicating a requested QoS for the corresponding memory operations; and a memory controller coupled to the plurality of sources and configured to control access to a memory for the memory operations, wherein the memory controller comprises a plurality of queues configured to store memory operations, and wherein the memory controller is configured to arbitrate among the memory operations responsive to the QoS parameters, and wherein the memory controller is coupled to receive an upgrade QoS indication from a first source of the plurality of sources, and wherein the memory controller is configured to modify the QoS parameters of pending memory operations in the queues, and wherein the pending memory operations were received from the first source, and wherein the QoS parameters are modified responsive to receiving the upgrade QoS indication from the first source subsequent to receiving the pending memory operations, wherein the modified QoS parameter for a given pending memory operation is different from an original QoS parameter provided by the first source with the pending memory operation at a time that the pending memory operation is received from the first source, and wherein the modified QoS parameter indicates a higher level of QoS than a level of QoS indicated by the original QoS parameter provided with the pending memory operation. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
receiving a first memory operation in a memory controller from a first source of a plurality of sources, the first memory operation having a first QoS parameter assigned by the first source indicating a first QoS level for the first memory operation; receiving additional memory operations from other sources of the plurality of sources, the additional memory operations having QoS parameters assigned by the other sources; subsequent to receiving the first memory operation, receiving an upgrade QoS indication from the first source; determining that the first QoS level is to be modified for the first memory operation pending in the memory controller subsequent to receiving the first memory operation in the memory controller and responsive to receiving the upgrade QoS indication; and changing the first QoS parameter to indicate a modified QoS level in response to the determining, wherein the modified QoS level is an upgraded QoS level indicating a higher level of service that the first QoS parameter originally indicated at a time that the first memory operation was received in the memory controller. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A memory controller comprising:
-
a plurality of ports, wherein the memory controller is coupled to receive memory operations on the plurality of ports from a plurality of sources, each memory operation having a quality of service (QoS) parameter indicating a requested QoS level for the memory operation; and memory channel circuitry configured to receive the memory operations from the plurality of ports and configured to schedule each memory operation on a memory channel to which that memory operation is directed, wherein the memory channel circuitry is configured to select memory operations for scheduling at one or more of a plurality of scheduling points responsive to the QoS parameters of the memory operations, and wherein the memory channel circuitry is configured to upgrade QoS levels for one or more memory operations awaiting scheduling in the memory channel circuitry from an original QoS level assigned at a time that the one or more memory operations were received from a source of the one or more memory operations to a higher QoS level responsive to the higher QoS level being subsequently received on a first port of the plurality of ports, wherein the one or more memory operations were received on the first port prior to the higher QoS level being received on the first port. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification