Flash storage failure rate reduction and hyperscale infrastructure robustness enhancement through the MRAM-NOR flash based cache architecture
First Claim
1. A flash storage device, comprising:
- a NAND flash memory;
a NOR flash memory that stores a first type of data that includes a flash translation layer that maps logical block addresses to physical block addresses;
a MRAM memory that stores a second type of data; and
a memory controller coupled to the NAND flash memory, the NOR flash memory, and the MRAM memory, the memory controller to;
receive a host write request that includes a received logical block address and a block of data;
store the received logical block address and the block of data in the MRAM memory;
access the flash translation layer in the NOR flash memory to determine a translated physical block address for the block of data from the received logical block address; and
write the block of data stored in the MRAM memory to the translated physical block address in the NAND flash memory.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide flash-based storage with non-volatile memory components. MRAM is mainly used as a data buffer, and NOR flash is used to store metadata, such as FTL information, thereby providing non-volatile storage and significantly simplifying power failure mitigation. MRAM and NOR are jointly used to share the work performed by DRAM in existing SSDs based on the characteristics of the data stored, reducing the power consumption and cost of the SSD. The cache fault rate is reduced because both MRAM and NOR are immune from soft errors. Moreover, the working mechanisms are simplified and the power-up duration is significantly reduced because less data is copied from NAND flash, as there is no need to move all of the FTL information back to NAND flash at power off.
-
Citations
20 Claims
-
1. A flash storage device, comprising:
-
a NAND flash memory; a NOR flash memory that stores a first type of data that includes a flash translation layer that maps logical block addresses to physical block addresses; a MRAM memory that stores a second type of data; and a memory controller coupled to the NAND flash memory, the NOR flash memory, and the MRAM memory, the memory controller to; receive a host write request that includes a received logical block address and a block of data; store the received logical block address and the block of data in the MRAM memory; access the flash translation layer in the NOR flash memory to determine a translated physical block address for the block of data from the received logical block address; and write the block of data stored in the MRAM memory to the translated physical block address in the NAND flash memory. - View Dependent Claims (2, 3, 4)
-
-
5. A flash storage device, comprising:
-
a NAND flash memory; a NOR flash memory that includes a flash translation layer that maps logical block addresses to physical block addresses; a MRAM memory; and a memory controller coupled to the NAND flash memory, the NOR flash memory, and the MRAM memory, the memory controller to; receive a write request that includes a received logical block address and a block of data; store the received logical block address and the block of data in the MRAM memory; determine a translated physical block address for the block of data, associate the translated physical block address with the received logical block address, and store the translated physical block address with the received logical block address in the MRAM memory; write the block of data stored in the MRAM memory to the translated physical block address in the NAND flash memory; receive a read request from a host to read requested data from a first logical block address; determine if the first logical block address is stored in the MRAM memory; read data associated with the first logical block address from the MRAM memory when the first logical block address is stored in the MRAM memory, and send the data read from the MRAM memory to the host; access the flash translation layer in the NOR flash memory to determine a first physical block address that corresponds with the first logical block address when the first logical block address is not stored in the MRAM memory; and read data associated with the first physical block address from the NAND flash memory, and send the data read from the NAND flash memory to the host. - View Dependent Claims (6, 7, 8)
-
-
9. A non-transitory computer-readable medium having computer-readable instructions stored thereon to be executed by a computer, the instructions including a method comprising:
-
receiving a host write request that includes a received logical block address and a block of data; storing the received logical block address and the block of data in a MRAM memory; accessing a flash translation layer in a NOR flash memory to determine a translated physical block address for the block of data from the received logical block address; and writing the block of data stored in the MRAM memory to the translated physical block address in a NAND flash memory. - View Dependent Claims (10)
-
-
11. A non-transitory computer-readable medium having computer-readable instructions stored thereon to be executed by a computer, the instructions including a method comprising:
-
receiving a write request that includes a received logical block address and a block of data; storing the received logical block address and the block of data in a MRAM memory; determining a translated physical block address for the block of data, associating the translated physical block address with the received logical block address, and storing the translated physical block address with the received logical block address in the MRAM memory; writing the block of data stored in the MRAM memory to the new translated physical block address in a NAND flash memory; receiving a read request from a host to read requested data from a first logical block address; determining if the first logical block address is stored in the MRAM memory; reading data associated with the first logical block address from the MRAM memory when the first logical block address is stored in the MRAM memory, and sending the data read from the MRAM memory to the host; accessing a flash translation layer in a NOR flash memory to determine a first physical block address that corresponds with the first logical block address when the first logical block address is not stored in the MRAM memory; and reading data associated with the first physical block address from the NAND flash memory, and sending the data read from the NAND flash memory to the host. - View Dependent Claims (12, 13, 14)
-
-
15. A method of writing data to a flash storage device, the method comprising:
-
receiving a host write request that includes a received logical block address and a block of data; storing the received logical block address and the block of data in a MRAM memory; accessing a flash translation layer in a NOR flash memory to determine a translated physical block address for the block of data from the received logical block address; and writing the block of data stored in the MRAM memory to the translated physical block address in a NAND flash memory. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A method of writing data to a flash storage device, the method comprising:
-
receiving a write request that includes a received logical block address and a block of data; storing the received logical block address and the block of data in a MRAM memory; determining a translated physical block address for the block of data, associating the translated physical block address with the received logical block address, and storing the translated physical block address with the received logical block address in the MRAM memory; writing the block of data stored in the MRAM memory to the translated physical block address in a NAND flash memory; receiving a read request from a host to read requested data from a first logical block address; determining if the first logical block address is stored in the MRAM memory; reading data associated with the first logical block address from the MRAM memory when the first logical block address is stored in the MRAM memory, and sending the data read from the MRAM memory to the host; accessing a flash translation layer in a NOR flash memory to determine a first physical block address that corresponds with the first logical block address when the first logical block address is not stored in the MRAM memory; and reading data associated with the first physical block address from the NAND flash memory, and sending the data read from the NAND flash memory to the host.
-
Specification