Performant inline ECC architecture for DRAM controller

US11093323B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11093323-B2
Application numberUS-201916384614-A
CountryUS
Kind codeB2
Filing dateApr 15, 2019
Priority dateApr 15, 2019
Publication dateAug 17, 2021
Grant dateAug 17, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques are disclosed for reducing the time required to read and write data to memory. Data reads and/or writes can be delayed when error correction code (ECC) bits, which are used to detect and/or correct data corruption, are written to memory. Writing ECC bits can take longer in some instances than writing data bits because an ECC write may involve a read/modify/write operation, as opposed to just simply writing the bits to memory. Some latencies associated with writing ECC bits can be hidden by interleaving ECC writes with data writes. However, if insufficient data writes are available for interleaving, hiding such latencies become difficult. Thus, various techniques are disclosed, for example, where ECC writes are deferred until a sufficient number of data writes become available for interleaving. By interleaving ECC writes, the disclosed techniques decrease the overall time required to read and write data to memory.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: determining that an insufficient number of pending write transactions are available for execution during a first period of time to mask one or more latencies associated with executing a first error-correcting code (ECC) write transaction during the first period of time, wherein the first period of time corresponds to when write transactions are scheduled for execution; in response to determining that an insufficient number of pending write transactions are available, preventing the first ECC write transaction from being scheduled for execution during the first period of time; determining that a sufficient number of pending write transactions are available to mask the one or more latencies during a second period of time when write transactions are scheduled for execution; and in response to determining that a sufficient number of pending write transactions are available, scheduling the first ECC write transaction for execution during the second period of time. 2. The computer-implemented method of claim 1 , wherein preventing the first ECC write transaction from being scheduled to execute comprises caching the first ECC write transaction (i) during the first period of time, and (ii) during a subsequent period of time when read transactions are scheduled to execute. 3. The computer-implemented method of claim 1 , further comprising: determining that a first read transaction targets a memory page associated with the first ECC write transaction; and servicing the first read transaction using a cached version of the first ECC write transaction. 4. The computer-implemented method of claim 1 , further comprising scheduling one or more write transactions to execute using a first bank associated with a command/data bus during the second period of time, wherein scheduling the first ECC write transaction for execution comprises scheduling the first ECC write transaction to execute using a second bank associated with the command/data bus during the second period of time. 5. The computer-implemented method of claim 4 , wherein: the first ECC write transaction executes during N clock cycles that occur during the second period of time, the one or more write transactions include at least N write transaction(s), and N comprises a positive integer value. 6. The computer-implemented method of claim 1 , wherein the first ECC write transaction is associated with write data that is written to a first memory page during the first period of time. 7. The computer-implemented method of claim 6 , wherein the first ECC write transaction is executed during the second period of time to write ECC data associated with the write data to the first memory page. 8. The computer-implemented method of claim 1 , wherein determining that a sufficient number of pending write transactions are available comprises determining that: at least a first number of pending write transactions associated with a first group of memory banks are scheduled for execution during the second period of time; and at least a second number of pending write transactions associated with a second group of memory banks are scheduled for execution during the second period of time. 9. The computer-implemented method of claim 1 , wherein preventing the first ECC write transaction from being scheduled for execution during the first period of time prevents a formation of a bubble on a command/data bus on which the first ECC transaction would have been scheduled for execution during the first period of time. 10. The computer-implemented method of claim 1 , wherein preventing the first ECC write transaction from being scheduled for execution during the first period of time increases utilization of a command/data bus across the first period of time and the second period of time. 11. A system, comprising: a memory controller that schedules write transactions for execution by performing the steps of: determining that an insufficient number of pending write transactions are available for execution during a first period of time to mask one or more latencies associated with executing a first error-correcting code (ECC) write transaction during the first period of time, wherein the first period of time corresponds to when write transactions are scheduled for execution; in response to determining that an insufficient number of pending write transactions are available, preventing the first ECC write transaction from being scheduled for execution during the first period of time; determining that a sufficient number of pending write transactions are available to mask the one or more latencies during a second period of time when write transactions are scheduled for execution; and in response to determining that a sufficient number of pending write transactions are available, scheduling the first ECC write transaction for execution during the second period of time. 12. The system of claim 11 , wherein the memory controller prevents the first ECC write transaction from being scheduled to execute by caching the first ECC write transaction (i) during the first period of time, and (ii) during a subsequent period of time when read transactions are scheduled to execute. 13. The system of claim 11 , wherein the memory controller further performs the steps of: determining that a first read transaction targets a memory page associated with the first ECC write transaction; and servicing the first read transaction using a cached version of the first ECC write transaction. 14. The system of claim 11 , wherein the memory controller further performs the step of: scheduling one or more write transactions to execute using a first bank associated with a command/data bus during the second period of time, wherein scheduling the first ECC write transaction for execution comprises scheduling the first ECC write transaction to execute using a second bank associated with the command/data bus during the second period of time. 15. The system of claim 14 , wherein: the first ECC write transaction executes during N clock cycles that occur during the second period of time, the one or more write transactions include at least N write transaction(s), and N comprises a positive integer value. 16. The system of claim 14 , wherein: the first ECC write transaction is associated with write data that is written to a first memory page during the first period of time, and the first ECC write transaction is executed during the second period of time to write ECC data associated with the write data to the first memory page. 17. The system of claim 14 , wherein the memory controller determines that a sufficient number of pending write transactions are available by determining that: at least a first number of pending write transactions associated with a first group of memory banks are scheduled for execution during the second period of time; and at least a second number of pending write transactions associated with a second group of memory banks are scheduled for execution during the second period of time. 18. The system of claim 11 , wherein the memory controller prevents the first ECC write transaction from being scheduled for execution during the first period of time to prevent a formation of a bubble on a command/data bus on which the first ECC transaction would have been scheduled for execution during the first period of time. 19. The system of claim 11 , wherein the memory controller prevents the first ECC write transaction from being scheduled for execution du

Assignees

Inventors

Classifications

  • G06F9/466Primary

    Transaction processing · CPC title

  • Reliability improvement, data loss prevention, degraded operation etc · CPC title

  • with specific ECC/EDC distribution · CPC title

  • Latency reduction · CPC title

  • with data re-ordering, e.g. Endian conversion · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11093323B2 cover?
Techniques are disclosed for reducing the time required to read and write data to memory. Data reads and/or writes can be delayed when error correction code (ECC) bits, which are used to detect and/or correct data corruption, are written to memory. Writing ECC bits can take longer in some instances than writing data bits because an ECC write may involve a read/modify/write operation, as opposed…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/466. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 17 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 9 related publications on this page (citations in our corpus or others sharing the same primary CPC).