IP Library › Granted Patent US 10,049,006
Granted Patent B2
US 10,049,006 · App. 14/963,035 · Granted Aug 14, 2018

Controller-based memory scrub for DRAMs with internal error-correcting code (ECC) bits contemporaneously during auto refresh or by using masked write commands

Inventors: David Reed (Saratoga, CA); Alok Gupta (Fremont, CA)
Assignee: Nvidia Corporation
G06F11/1068G06F3/064G06F3/0619G06F3/0659G06F3/0688G11C7/02G11C11/4082G11C11/4087G11C11/4093G11C11/40615G11C29/04G11C2029/0409G11C2029/0411G11C2029/4402G11C2211/4062
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,049,006
App. No.
14/963,035
Granted
Aug 14, 2018
Kind
B2
Abstract

A method for updating a DRAM memory array is disclosed. The method comprises: a) transitioning the DRAM memory array from an idle state to a refresh state in accordance with a command from a memory controller; b) initiating a refresh on the DRAM memory array using DRAM internal control circuitry by activating a row of data into an associated sense amplifier buffer; and c) during the refresh, performing an ERR Correction Code (ECC) scrub operation of selected bits in the activated row of the DRAM memory array.

Claims (59)

1. A method for updating a DRAM memory array, said method comprising:

a) transitioning the DRAM memory array from an idle state to a refresh state in accordance with a command from a memory controller;

b) initiating a refresh on the DRAM memory array using DRAM internal control circuitry by activating a row of data using an associated sense amplifier buffer;

c) during the refresh, performing an Error Correction Code (ECC) scrub operation of selected bits in the activated row of the DRAM memory array, wherein the ECC scrub operation comprises performing a virtual read and write operation, wherein the selected bits are identified using a refresh column counter; and

d) updating the refresh column counter.

2. The method of claim 1 , wherein the updating comprises:

d) updating the refresh column counter to set the refresh column counter to select a different set of bits from the selected bits of the activated row of the DRAM memory array for applying a subsequent ECC scrub operation to the different set of bits.

3. The method of claim 2 , further comprising:

repeating the c) and d) to select and perform an ECC scrub of subsequent bits in the activated row.

4. The method of claim 3 , further comprising:

repeating the b), c) and d) for subsequent refresh operations to perform an ECC scrub over all columns for all rows of the DRAM memory array.

5. The method of claim 2 , wherein the virtual read and write operation is operable to re-circulate selected data bits through an ECC repair module and store corrected data from the ECC repair module back in the sense amplifier buffer.

6. The method of claim 2 , further comprising:

activating another row of data using the associated sense amplifier buffer; and

performing an ECC scrub operation for bits over the another row in the DRAM memory array during subsequent memory controller initiated transitions to the refresh state.

7. The method of claim 1 , wherein the refresh state is part of an all bank refresh operation.

8. The method of claim 4 , further comprising:

incrementing a bank counter to address a different portion of the DRAM memory array.

9. The method of claim 1 , wherein the refresh state is part of a per bank refresh operation.

10. The method of claim 1 , wherein the performing an ECC scrub further comprises:

reading in the selected bits and corresponding ECC bits;

determining if the selected bits are correct using the corresponding ECC bits;

correcting the selected bits if the determining indicates an error;

re-computing the ECC bits for the selected bits; and

writing corrected data and ECC bits back into the sense amplifier buffer of the DRAM memory array.

11. The method of claim 10 , wherein an address associated with bits of any detected error is stored in a temporary buffer or register.

12. A method for updating a DRAM memory array, said method comprising:

a) transitioning the DRAM memory array from an idle state to a refresh state in accordance with a command from a memory controller;

b) initiating a refresh on the DRAM memory array using DRAM internal control circuitry by activating a plurality of rows of data using associated sense amplifier buffers;

c) during the refresh, performing an Error Correction Code (ECC) scrub operation of selected bits in the plurality of activated rows of the DRAM memory array, wherein the ECC scrub operation comprises performing a virtual read and write operation and the selected bits are identified using a refresh column counter; and

d) updating the refresh column counter.

13. The method of claim 12 , wherein the updating the refresh column counter comprises:

setting the refresh column counter to select a different set of bits from the selected bits of the plurality of activated rows of the DRAM memory array for applying a subsequent ECC scrub operation.

14. The method of claim 13 , further comprising:

repeating the c) and d) to select and perform an ECC scrub of subsequent bits in the plurality of activated rows.

15. The method of claim 14 , further comprising:

repeating the b), c) and d) for subsequent refresh operations to perform an ECC scrub over all columns for all rows of the DRAM memory array.

16. The method of claim 13 , wherein the virtual read and write operation is operable to re-circulate selected data bits through associated ECC repair modules and store corrected data from the associated ECC repair modules back in the associated sense amplifier buffers.

17. The method of claim 12 , wherein the refresh state is part of an all bank refresh operation.

18. The method of claim 12 , wherein the refresh state is part of a per bank refresh operation.

19. The method of claim 15 , further comprising:

incrementing a bank counter to address a different portion of the DRAM memory array.

20. The method of claim 12 , wherein the performing an ECC scrub further comprises:

reading in the selected bits and corresponding ECC bits;

determining the selected bits are correct using the corresponding ECC bits;

correcting the selected bits if the determining indicates an error;

re-computing the ECC bits for the selected bits; and

writing corrected data and ECC bits back into the sense amplifier buffer of the DRAM memory array.

21. An apparatus for updating a DRAM memory array, said apparatus comprising:

the DRAM memory array, wherein the DRAM memory array is configured to:

a) transition the DRAM memory array to a refresh state from an idle state in accordance with a command from a memory controller;

b) initiate a refresh on the DRAM memory array using DRAM internal control circuitry by activating a row of data using an associated sense amplifier buffer;

c) during the refresh, performing an Error Correction Code (ECC) scrub operation of selected bits in an activated row of the DRAM memory array wherein the ECC scrub operation comprises performing a virtual read and write operation and the selected bits are identified using a refresh column counter; and

d) updating the refresh column counter to select a different set of bits from the selected bits of the plurality of activated rows of the DRAM memory array for applying a subsequent ECC scrub operation to the different set of bits.

22. The method of claim 21 , wherein the ECC scrub operation further comprises:

reading the selected bits and ECC bits that correspond to the selected bits;

determining, using the ECC bits, if the selected bits include an error;

correcting the selected bits if the selected bits are determined to include an error and;

writing the corrected selected bits and ECC bits back to the DRAM memory array.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2015
From: REED, DAVID; GUPTA, ALOK
To: NVIDIA CORPORATION
Reel/Frame 037242/0290 →
Continuity (1)
Related Publication 20170161143A1 · Jun 8, 2017
Cited By (3)
US 12,360,847 US 12,450,058 US 12,645,532