NAND flash module replacement for DRAM module
First Claim
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.
7 Assignments
0 Petitions
Accused Products
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.
-
Citations
17 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
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. - View Dependent Claims (9, 10)
-
-
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. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
Specification