EP2431884A1

Multi-ported memory controller with ports associated with traffic classes

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 scheduled 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.

EP2431884A1, drawing sheet 1
Sheet 1 of 14

Term

5 yearsto projected expiry

Projected expiry 6 September 2031, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

15 claims: 9 independent, 6 dependent

  1. 1
    A memory controller comprising a plurality of ports, wherein each port is coupled to receive memory operations from one or more sources, and wherein each port is dedicated to memory operation traffic of a particular type, wherein the memory controller comprises an agent interface unit configured to switch memory operation traffic from the plurality of ports to a plurality of memory channel units responsive to relative quality of service (QoS) parameters for the memory operations.
  2. 3
    The memory controller as recited in claims 1 or 2 wherein at least one of the ports is dedicated to real time traffic, and wherein the QoS parameters for the real time traffic reflect different levels of urgency in the source.
  3. 5
    The memory controller as recited in claims 3 or 4 wherein at least another one of the ports is dedicated to traffic from a graphics unit, wherein the graphics traffic is non-real time.
  4. 6
    The memory controller as recited in any preceding claim 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.
  5. 8
    The memory controller as recited in any preceding claim further comprising the plurality of memory channel units coupled to the agent interface unit, wherein the memory channel units each comprise a presorting queue and a memory interface unit to couple to a memory, and wherein the agent interface unit is configured to schedule memory operations from the ports to a given memory channel unit responsive to the QoS parameters of the memory operations, and wherein the agent interface unit is configured to reorder memory operations to a given memory channel unit based on QoS parameters, and wherein the memory channel units are configured to group memory operations in the presorting queue according to which memory operations are expected to be performed together efficiently to the memory, and wherein the memory channel units are configured to schedule groups based on a highest level QoS parameter in each group, and wherein the memory channel units are configured to presynthesize the memory operations into commands for the memory, and wherein the memory interface unit is configured to reorder the commands based on efficient access to the memory.
  6. 10
    The memory controller as recited in claims 8 or 9 wherein memory operations are expected to be performed together efficiently if at least one of the following is true:(i) the memory operations are to a same page in the memory;(ii) they are to different ranks of the memory;or (iii) they are to different banks of the memory.
  7. 11
    An integrated circuit comprising:the memory controller as recited in any preceding claim;one or more real time (RT) peripherals;at least one processor;and one or more non-real time (NRT) peripherals;and wherein the one or more RT peripherals are coupled to an RT port of the plurality of ports, the at least one processor is coupled to a first NRT port of the plurality of ports, and wherein the one or more NRT peripherals are coupled to a second NRT port of the plurality of ports, and wherein the memory controller is configured to capture memory operations from the plurality of ports and to schedule the memory operations on one or more memory channels to memory, wherein scheduling determinations between memory operations received on different ports are dependent in part on the specific ports on which the memory operations were received.
  8. 12
    A method comprising:receiving memory operations on a plurality of ports in a memory controller, wherein each port is coupled to receive memory operations from one or more sources, and wherein each port is dedicated to memory operation traffic of a particular type;switching the memory operation traffic from the plurality of ports to a plurality of memory channel units in the memory controller responsive to relative quality of service (QoS) parameters for the memory operations.
  9. 14
    The method as recited in claims 12 or 13 further comprising:the plurality of memory channel units retaining the QoS parameters for read operations;the plurality of memory channel units eliminating the QoS parameters for write operations;and the plurality of memory channel units upgrading the QoS parameters for read operations from the first source responsive to the first QoS parameter indicating a higher level of service that the QoS parameters for the read operations.