Green eMMC Device (GeD) Controller with DRAM Data Persistence, Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files for Enhanced Flash Endurance
First Claim
1. An enhanced-endurance Solid-State Drive (SSD) controller comprising:
- a host interface for receiving host reads and host writes from a host;
a data write cache for storing host write data;
a data read cache for storing data for reading by the host;
a grouping engine for grouping data stored in the data write cache into meta-pages;
an un-grouping engine for un-grouping data in stored in meta-pages into ungrouped data for storage in the data read cache;
wherein meta-pages are sent from the grouping engine to a flash memory device, and meta-pages stored in the flash memory device are received by the un-grouping engine;
a multi-channel flash interface for transferring data from the grouping engine in a plurality of stripes for writing to a plurality of flash memory devices, and for reading a plurality of stripes from the plurality of flash memory devices for transfer to the un-grouping engine;
a dynamic-random-access memory (DRAM) buffer interface for interfacing to a DRAM buffer for storing the data write cache, the data read cache, and buffers for the grouping engine and for the un-grouping engine;
a flush manager for flushing data stored in the DRAM buffer to the plurality of flash memory devices when power is lost; and
a resume manager for fetching flushed data from the plurality of flash memory devices and fore writing to the DRAM buffer when power is restored.
1 Assignment
0 Petitions
Accused Products
Abstract
A controller for a Super Enhanced Endurance Device (SEED) or Solid-State Drive (SSD) increases flash endurance using a DRAM buffer. Host accesses to flash are intercepted by the controller and categorized as data types of paging files, temporary files, meta-data, and user data files, using address ranges and file extensions read from meta-data tables. Paging files and temporary files are optionally written to flash. Full-page and partial-page data are grouped into multi-page meta-pages by data type in the DRAM before storage by lower-level flash devices such as eMMC, UFS, or iSSD. Caches in the DRAM buffer for storing each data type are managed and flushed to the flash devices by the controller. Write dates are stored for pages or blocks for management functions. A spare/swap area in DRAM reduces flash wear. Reference voltages are adjusted when error correction fails.
-
Citations
20 Claims
-
1. An enhanced-endurance Solid-State Drive (SSD) controller comprising:
-
a host interface for receiving host reads and host writes from a host; a data write cache for storing host write data; a data read cache for storing data for reading by the host; a grouping engine for grouping data stored in the data write cache into meta-pages; an un-grouping engine for un-grouping data in stored in meta-pages into ungrouped data for storage in the data read cache; wherein meta-pages are sent from the grouping engine to a flash memory device, and meta-pages stored in the flash memory device are received by the un-grouping engine; a multi-channel flash interface for transferring data from the grouping engine in a plurality of stripes for writing to a plurality of flash memory devices, and for reading a plurality of stripes from the plurality of flash memory devices for transfer to the un-grouping engine; a dynamic-random-access memory (DRAM) buffer interface for interfacing to a DRAM buffer for storing the data write cache, the data read cache, and buffers for the grouping engine and for the un-grouping engine; a flush manager for flushing data stored in the DRAM buffer to the plurality of flash memory devices when power is lost; and a resume manager for fetching flushed data from the plurality of flash memory devices and fore writing to the DRAM buffer when power is restored. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An enhanced-endurance Solid-State Drive (SSD) comprising:
-
a dynamic-random-access memory (DRAM) buffer for storing caches and tables; a plurality of managed flash devices, each managed flash device having a flash memory and a managing controller that manages bad blocks within the flash memory by transferring data from worn or bad blocks within the flash memory to fresh blocks within the flash memory to perform low-level wear leveling and bad block management; a Super Enhanced Endurance Device (SEED) controller that comprises; a host interface for receiving host reads and host writes from a host; a DRAM interface for managing the DRAM buffer, the DRAM buffer having a data write cache for storing host write data and a data read cache for storing data for reading by the host; a grouping engine for grouping data stored in the data write cache into meta-pages; an un-grouping engine for un-grouping data in stored in meta-pages into ungrouped data for storage in the data read cache; wherein meta-pages are sent from the grouping engine to a managed flash device in the plurality of managed flash devices, and meta-pages stored in the managed flash device are received by the un-grouping engine; and a multi-channel flash interface for transferring data from the grouping engine in a plurality of stripes for writing to the plurality of managed flash devices, and for reading a plurality of stripes from the plurality of managed flash devices for transfer to the un-grouping engine. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A Solid-State Drive (SSD) comprising:
-
a plurality of managed flash devices, each managed flash device comprising; a flash memory a managing controller that manages bad blocks within the flash memory by transferring data from worn blocks within the flash memory to fresh blocks within the flash memory to perform low-level wear leveling and bad block management; a low-level flash interface in the managing controller for erasing blocks and writing pages in the flash memory, wherein a block is a multiple of pages in size; a dynamic-random-access memory (DRAM) buffer for storing tables and caches including a write data cache and a read data cache; a Super Enhanced Endurance Device (SEED) controller comprising; a host interface for receiving host reads and host writes from a host; a DRAM interface for managing the DRAM buffer; a grouping engine for grouping data stored in the write data cache into meta-pages; an un-grouping engine for un-grouping data in stored in meta-pages into ungrouped data for storage in the read data cache; wherein meta-pages are sent from the grouping engine to a managed flash device in the plurality of managed flash devices, and meta-pages stored in the managed flash device are received by the un-grouping engine; and a striping flash interface for transferring data from the grouping engine in a plurality of stripes for writing to the plurality of managed flash devices, and for reading a plurality of stripes from the plurality of managed flash devices for transfer to the un-grouping engine. - View Dependent Claims (17, 18, 19, 20)
-
Specification