Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store control information facilitating wear leveling
First Claim
1. A storage device comprising:
- flash memory comprising a plurality of physical data blocks;
a flash memory controller that controls at least one of addressing, programming, erasing, and reading of the flash memory;
a host interface for communicating with a host device;
a magnetoresistive random access memory (MRAM) buffer electrically connected between the host interface and the flash controller;
a processor that receives commands from the host device via the host interface and coordinates the at least one of addressing, programming, erasing and reading of the flash memory by the flash memory controller; and
MRAM device memory electrically connected to the processor, the MRAM device memory storing control information comprising an erase count table and a flash translation layer table, wherein the erase count table comprises an erase count for each of the plurality of physical data blocks of the flash memory, the control information facilitating wear leveling of the flash memory according to a dynamic algorithm that comprises, upon receiving, from the host device, a write command for a logical address;
scanning a portion of the erase count table corresponding to data blocks of the flash memory that are available to be written to;
selecting an available data block of the flash memory based on its corresponding erase count;
writing data corresponding to the write command to the selected data block;
updating the flash translation layer table to reflect an association between the logical address and a physical address for the selected data block; and
erasing a data block previously associated with the logical address and incrementing an erase count in the erase count table corresponding to the erased data block;
wherein the MRAM buffer receives data via the host interface and stores the data until the data is written to the flash memory under control of the flash memory controller; and
wherein upon cessation of power to the storage device, the MRAM buffer stores the data until power is restored, after which the processor causes the buffered data to be written to the flash memory under control of the flash memory controller.
1 Assignment
0 Petitions
Accused Products
Abstract
A flash memory based storage device may utilize magnetoresistive random access memory (MRAM) as at least one of a device memory, a buffer, or high write volume storage. In some embodiments, a processor of the storage device may compare a logical block address of a data file to a plurality of logical block addresses stored in a write frequency file buffer table and causes the data file to be written to the high write volume MRAM when the logical block address of the data file matches at least one of the plurality of logical block addresses stored in the write frequency file buffer table. In other embodiments, upon cessation of power to the storage device, the MRAM buffer stores the data until power is restored, after which the processor causes the buffered data to be written to the flash memory under control of the flash memory controller.
38 Citations
15 Claims
-
1. A storage device comprising:
-
flash memory comprising a plurality of physical data blocks; a flash memory controller that controls at least one of addressing, programming, erasing, and reading of the flash memory; a host interface for communicating with a host device; a magnetoresistive random access memory (MRAM) buffer electrically connected between the host interface and the flash controller; a processor that receives commands from the host device via the host interface and coordinates the at least one of addressing, programming, erasing and reading of the flash memory by the flash memory controller; and MRAM device memory electrically connected to the processor, the MRAM device memory storing control information comprising an erase count table and a flash translation layer table, wherein the erase count table comprises an erase count for each of the plurality of physical data blocks of the flash memory, the control information facilitating wear leveling of the flash memory according to a dynamic algorithm that comprises, upon receiving, from the host device, a write command for a logical address; scanning a portion of the erase count table corresponding to data blocks of the flash memory that are available to be written to; selecting an available data block of the flash memory based on its corresponding erase count; writing data corresponding to the write command to the selected data block; updating the flash translation layer table to reflect an association between the logical address and a physical address for the selected data block; and erasing a data block previously associated with the logical address and incrementing an erase count in the erase count table corresponding to the erased data block; wherein the MRAM buffer receives data via the host interface and stores the data until the data is written to the flash memory under control of the flash memory controller; and wherein upon cessation of power to the storage device, the MRAM buffer stores the data until power is restored, after which the processor causes the buffered data to be written to the flash memory under control of the flash memory controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A storage device comprising:
-
flash memory comprising a plurality of physical data blocks; a flash memory controller that controls at least one of addressing, programming, erasing, and reading of the flash memory; a host interface for communicating with a host device; a magnetoresistive random access memory (MRAM) buffer electrically connected between the host interface and the flash controller; a processor that receives commands from the host device via the host interface and coordinates the at least one of addressing, programming, erasing and reading of the flash memory by the flash memory controller; and MRAM device memory electrically connected to the processor, the MRAM device memory storing control information comprising an erase count table and a flash translation layer table, wherein the erase count table comprises an erase count for each of the plurality of physical data blocks of the flash memory, the control information facilitating wear leveling of the flash memory according to a static algorithm that comprises; for at least a subset of the data blocks of the flash memory that are storing data, determining a data block with a minimum erase count, the data block associated with a logical block address in the flash translation layer table; for at least a subset of the data blocks of the flash memory that are available to be written to, determining a data block with a maximum erase count; and where a difference between the minimum erase count and the maximum erase count is greater than a predetermined threshold value, copying the data stored in the data block with the minimum erase count to the data block with the maximum erase count, erasing the data in the data block with the minimum erase count, updating the flash translation layer table to reflect that the logical address is now associated with a physical address for the data block with the maximum erase count, and incrementing an erase count in the erase count table corresponding to the erased data block; wherein the MRAM buffer receives data via the host interface and stores the data until the data is written to the flash memory under control of the flash memory controller; and wherein upon cessation of power to the storage device, the MRAM buffer stores the data until power is restored, after which the processor causes the buffered data to be written to the flash memory under control of the flash memory controller. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
Specification