IP Library Granted Patent US 8,185,685
Granted Patent B2
US 8,185,685 · App. 12/002,188 · Granted May 22, 2012

NAND flash module replacement for DRAM module

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 8,185,685
App. No.
12/002,188
Granted
May 22, 2012
Kind
B2
Abstract

An electronic memory module according to the invention provides non-volatile memory that can be used in place of a DRAM module without battery backup. An embodiment of the invention includes an embedded microprocessor with microcode that translates the FB-DIMM address and control signals from the system into appropriate address and control signals for NAND flash memory. Wear-leveling, bad block management, garbage collection are preferably implemented by microcode executed by the microprocessor. The microprocessor, additional logic, and embedded memory provides the functions of a flash memory controller. The microprocessor memory preferably contains address mapping tables, free page queue, and garbage collection information.

Claims (38)

1. A method of operating an electronic memory module comprising:

accepting a write command formatted for DRAM from a host device, the write command including a DRAM address;

using a translation table to convert the DRAM address into a non-volatile EEPROM memory write address in an old page in a non-volatile EEPROM memory;

reading previous data in the old page from the non-volatile EEPROM memory;

updating the previous data with new data supplied in the write command to form an updated new page of data;

writing a new page in the non-volatile EEPROM memory with the updated page of data and metadata that includes the DRAM address; and

updating the translation table to map the DRAM address to the new page in the non-volatile EEPROM memory.

2. The method of claim 1 wherein the non-volatile EEPROM memory is NAND flash memory.

3. The method of claim 1 further comprising updating a table to mark the old page for garbage collection; and performing garbage collection when pages in a block have been marked for garbage collection by moving any pages in use to other blocks, erasing the block and marking the pages in the block as available for writing.

4. The method of claim 1 wherein writing the new page further comprises selecting a least recently used page in the non-volatile EEPROM memory as the new page.

5. The method of claim 1 further comprising:

accepting a read command formatted for DRAM from the host device, the read command including a logical DRAM read address;

using the translation table to convert the DRAM read address into a physical read address in a non-volatile EEPROM memory;

reading data from the physical read address in a non-volatile EEPROM memory; and

delivering the data from the physical read address to the host device.

6. The method of claim 1 further comprising responding to a detection of imminent loss of power by saving the translation table in non-volatile memory.

7. The method of claim 1 further comprising building the translation table after a loss of power by reading the DRAM addresses for each page in the metadata saved in non-volatile memory.

8. A method of operating an electronic memory module comprising:

accepting a write command formatted for DRAM from a host device, the write command including a DRAM address;

using a translation table to convert the DRAM address into a non-volatile EEPROM memory address in an old page in a NAND flash memory;

reading previous data in the old page from the non-volatile EEPROM memory;

updating the previous data with new data supplied in the write command to form an updated page of data;

selecting an unused writable page in the non-volatile EEPROM memory as a new page;

writing the new page in the non-volatile EEPROM memory with the updated page of data and metadata that includes the DRAM address;

updating the translation table to map the DRAM address to the new page; and

marking the old page as requiring garbage collection.

9. The method of claim 8 further comprising performing garbage collection when pages in a first block have been marked for garbage collection by copying any pages in use to a second block, erasing the first block and marking the pages in the first block as available for writing.

10. The method of claim 8 further comprising responding to a detection of imminent loss of power by saving the translation table in non-volatile memory.

11. An electronic memory module comprising:

NAND flash memory;

an address table that maps DRAM addresses to NAND flash memory addresses; and

a controller that accepts a write command formatted for DRAM memory module including a DRAM address and converts the write command into a sequence of operations including: a read operation for an old page in NAND flash memory mapped to the DRAM address in the address table and a write operation for a new page in NAND flash memory that includes metadata that includes the DRAM address and an update of the address table to map the DRAM write address to the new page.

12. The electronic memory module of claim 11 further comprising means for marking the old page as requiring garbage collection after the write operation.

13. The electronic memory module of claim 11 further comprising means for garbage collection after pages in a block have been marked for garbage collection.

14. The electronic memory module of claim 11 wherein the means for garbage collection further comprises means for erasing the block and marking the pages in the block as available for writing.

15. The electronic memory module of claim 11 further comprising error correction circuitry (ECC) for adding redundant information to data written to NAND flash memory.

16. The electronic memory module of claim 11 further comprising means for responding to a detection of imminent loss of power by saving the translation table in non-volatile memory.

17. The electronic memory module of claim 11 further comprising microcode for building the translation table after a loss of power by reading the metadata including the DRAM addresses for each page saved in non-volatile memory.

Assignments (7)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040826/0821 →
CHANGE OF NAME Recorded Oct 25, 2012
From: HITACHI GLOBAL STORAGE TECHNOLOGIES NETHERLANDS B.V.
To: HGST NETHERLANDS B.V.
Reel/Frame 029341/0777 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2008
From: SELINGER, ROBERT DAVID
To: HITACHI GLOBAL STORAGE TECHNOLOGIES NETHERLANDS B.V.
Reel/Frame 020551/0450 →