Nova Patents
EP1540485B1

Out of order dram sequencer

Abstract

Memory access requests are successively received in a memory request queue of a memory controller. Any conflicts or potential delays between temporally proximate requests that would occur if the memory access requests were to be executed in the received order are detected, and the received order of the memory access requests is rearranged to avoid or minimize the conflicts or delays and to optimize the flow of data to and from the memory data bus. The memory access requests are executed in the reordered sequence, while the originally received order of the requests is tracked. After execution, data read from the memory device by the execution of the read-type memory access requests are transferred to the respective requestors in the order in which the read requests were originally received.

EP1540485B1, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Expired 14 May 2023, 3.4 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

36 claims: 3 independent, 33 dependent

  1. 1
    A memory controller (10) comprising;an input queue (12) for receiving a plurality of memory access-requests in an originally received order from at least one requestor, each memory access request including a read or write command and a data control command;a sequence matrix (18) for storing the plurality of memory access requests in a sequenced order;a sequencing unit (16) for arranging the plurality of memory access requests in the sequence matrix into the sequenced order;a conflict detector (20) for detecting whether a conflict or delay would occur among the memory access requests in the sequence matrix;an execution queue (24) for storing a plurality of commands, the plurality of commands being derived from the memory access requests in the sequence matrix (18);a read return queue (30) for keeping track of the originally received order of the memory access requests after execution of the memory access requests from the execution queue in the execution order, and for returning requested data to the at least one requestor in the originally received order of the memory access requests;and a returned data buffer (32) for holding requested data read from a memory until the data is to be returned to the requestor of the associated access request, wherein said conflict detector (20) and said sequencing unit (16) are operable such that, in use, the conflict detector (20) reports detected conflicts or delays to said sequencing unit to cause said sequencing unit (16) to rearrange the order of the memory access requests in the sequence matrix by moving ahead a memory access request involved in a detected conflict or delay;and wherein the memory controller (10) is operable to arrange the plurality of commands in the execution queue such that, in use, a data control command relating to a first memory access request is executed before a read or write command relating to a second memory access request, the second memory access request preceding the first memory access request in the sequenced order.
  2. 8
    A method for controlling memory access operations, comprising:receiving a plurality of memory access requests in an originally received order;detecting memory access conflicts involving one or more of the received memory access requests;rearranging the memory access requests into a sequenced order based on the detection result, said rearranging including moving ahead a received memory access request involved in a detected conflict or delay;extracting a plurality of commands from the plurality of memory access requests, including the step of parsing each memory access request into at least a read or write command and a data control command;rearranging the read or write command and the data control command for each request such that a data control command relating to a first memory access request is executed before a read or write command relating to a second memory access request, the second memory access request preceding the first memory access request in the sequenced order;and executing the plurality of commands, including the step of selecting at least one command at a time from the rearranged sequence of commands.
  3. 36
    A processor system (900) comprising:a processor (901);at least one memory device (902) for exchanging data with said processor (901);and a memory controller (10) as defined in any one of claims 1 to 7, for managing memory access requests from the processor to the at least one memory device.