Credit scheme for multi-queue memory controllers

    公开(公告)号:US11379388B1

    公开(公告)日:2022-07-05

    申请号:US17218650

    申请日:2021-03-31

    Abstract: A memory controller includes an address decoder, a first command queue coupled to a first output of the address decoder for receiving memory access requests for a first memory channel, and the second command queue coupled to a second output of the address decoder for receiving memory access requests for a second memory channel. A request credit control circuit is coupled to the first command queue and the second command queue, and operates to track a number of outstanding request credits. The request credit control circuit issues a request credit in response to a designated event based on a number of available entries of the first and second command queues.

    Refresh management for DRAM
    53.
    发明授权

    公开(公告)号:US11222685B2

    公开(公告)日:2022-01-11

    申请号:US16875281

    申请日:2020-05-15

    Abstract: A memory controller interfaces with a dynamic random access memory (DRAM) over a memory channel. A refresh control circuit monitors an activate counter which counts a rolling number of activate commands sent over the memory channel to a memory region of the DRAM. In response to the activate counter being above an intermediate management threshold value, the refresh control circuit only issue a refresh management (RFM) command if there is no REF command currently held at the refresh command circuit for the memory region.

    Command replay for non-volatile dual inline memory modules

    公开(公告)号:US11137941B2

    公开(公告)日:2021-10-05

    申请号:US16730092

    申请日:2019-12-30

    Abstract: Memory access commands are placed in a memory interface queue and transmitted from the memory interface queue to a heterogeneous memory channel coupled to a volatile dual in-line memory module (DIMM) and a non-volatile DIMM. Selected memory access commands that are placed in the memory interface queue are stored in a replay queue. The non-volatile reads that are placed in the memory interface queue are in a non-volatile command queue (NV queue). The method detects, based on information received over the heterogeneous memory channel, that an error has occurred requiring a recovery sequence. In response to the error, the method initiates the recovery sequence including (i) transmitting selected memory access commands that are stored in the replay queue, and (ii) transmitting non-volatile reads that are stored in the NV queue.

    SCHEDULING MEMORY REQUESTS WITH NON-UNIFORM LATENCIES

    公开(公告)号:US20210096750A1

    公开(公告)日:2021-04-01

    申请号:US16959503

    申请日:2018-09-20

    Abstract: Systems, apparatuses, and methods for performing scheduling memory requests for issue to two different memory types are disclosed. A computing system includes one or more clients for processing applications. A heterogeneous memory channel within a memory controller transfers memory traffic between the memory controller and a memory bus connected to each of a first memory and a second memory different from the first memory. The memory controller determines a next given point in time that does not already have read response data scheduled to be driven on the memory bus. The memory controller determines whether there is time to schedule a first memory access command for accessing the first memory and a second memory access command for accessing the second memory. If there is sufficient time for each, then one of the access commands is selected based on weighted criteria.

    DYNAMICALLY DETERMINING MEMORY ACCESS BURST LENGTH

    公开(公告)号:US20190196996A1

    公开(公告)日:2019-06-27

    申请号:US15851087

    申请日:2017-12-21

    Abstract: Systems, apparatuses, and methods for performing efficient memory accesses for a computing system are disclosed. When a memory controller in a computing system determines a threshold number of memory read requests have been sent to a memory device in a read mode of a data bus, the memory controller determines a threshold number of memory write requests to send to the memory device in an upcoming write mode is a number of outstanding memory write requests. Alternatively, the memory controller determines the threshold number of memory write requests to send to the memory device in an upcoming write mode is a maximum value of the number of outstanding memory write requests and a programmable value of the write burst length stored in a control register. Therefore, the write burst length is determined dynamically. Similarly, the read burst length is determined dynamically when the write mode ends.

    DYNAMIC PER-BANK AND ALL-BANK REFRESH
    57.
    发明申请

    公开(公告)号:US20190196987A1

    公开(公告)日:2019-06-27

    申请号:US15851324

    申请日:2017-12-21

    CPC classification number: G06F13/1636 G06F13/1642 G06F13/4234 G11C11/40603

    Abstract: Systems, apparatuses, and methods for performing efficient memory accesses in a computing system are disclosed. In various embodiments, a computing system includes computing resources and a memory controller coupled to a memory device. The memory controller determines a memory request targets a given rank of multiple ranks. The memory controller determines a predicted latency for the given rank as an amount of time the pending queue in the memory controller for storing outstanding memory requests does not store any memory requests targeting the given rank. The memory controller determines the total bank latency as an amount of time for refreshing a number of banks which have not yet been refreshed in the given rank with per-bank refresh operations. If there are no pending requests targeting the given rank, each of the predicted latency and the total bank latency is used to select between per-bank and all-bank refresh operations.

    ADAPTIVE PAGE CLOSE PREDICTION
    58.
    发明申请

    公开(公告)号:US20190196720A1

    公开(公告)日:2019-06-27

    申请号:US15851414

    申请日:2017-12-21

    CPC classification number: G06F3/0611 G06F3/0653 G06F3/0658 G06F3/0673

    Abstract: Systems, apparatuses, and methods for performing efficient memory accesses for a computing system are disclosed. In various embodiments, a computing system includes one or more computing resources and a memory controller coupled to a memory device. The memory controller determines a memory access request targets a given bank of multiple banks. An access history is updated for the given bank based on whether the memory access request hits on an open page within the given bank and a page hit rate for the given bank is determined. The memory controller sets an idle cycle limit based on the page hit rate. The idle cycle limit is a maximum amount of time the given bank will be held open before closing the given bank while the bank is idle. The idle cycle limit is based at least in part on a page hit rate for the bank.

    Low power memory throttling
    59.
    发明授权

    公开(公告)号:US10198216B2

    公开(公告)日:2019-02-05

    申请号:US15168043

    申请日:2016-05-28

    Abstract: In one form, a data processing system includes a memory channel having a plurality of ranks, and a data processor. The data processor is coupled to the memory channel and is adapted to access each of the plurality of ranks. In response to detecting a predetermined event, the data processor selects an active rank of the plurality of ranks and places other ranks besides the active rank in a low power state, wherein the other ranks include at least one rank with a pending request at a time of detection of the predetermined event. The data processor subsequently processes a memory access request to the active rank.

Patent Agency Ranking