Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
First Claim
1. A Virtual-Memory Device (VMD) driver for executing on a host comprising:
- a file type identifier for generating a data type for a host write received by the VMD driver;
a data split manager for sorting host write data based on the data type generated by the file type identifier;
a data write cache for storing host write data having a user data type;
a meta-data cache for storing host write data having a meta-data data type;
a paging cache for storing host write data having a paging file data type;
a temp cache for storing host write data having a temp data type;
a user grouping engine for grouping user data stored in the data write cache into user meta-pages;
a meta-data grouping engine for grouping meta-data data stored in the data write cache into meta-data meta-pages; and
an output buffer for sending grouped meta-pages and data type information to a flash drive system for storage.
1 Assignment
0 Petitions
Accused Products
Abstract
A Virtual-Memory Device (VMD) driver and application execute on a host to increase endurance of flash memory attached to a Super Enhanced Endurance Device (SEED) or Solid-State Drive (SSD). Host accesses to flash are intercepted by the VMD driver using upper and lower-level filter drivers 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 before storage by the SSD. ramdisks and caches for storing each data type in the host DRAM are managed and flushed to the SSD by the VMD driver. 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
8 Claims
-
1. A Virtual-Memory Device (VMD) driver for executing on a host comprising:
-
a file type identifier for generating a data type for a host write received by the VMD driver; a data split manager for sorting host write data based on the data type generated by the file type identifier; a data write cache for storing host write data having a user data type; a meta-data cache for storing host write data having a meta-data data type; a paging cache for storing host write data having a paging file data type; a temp cache for storing host write data having a temp data type; a user grouping engine for grouping user data stored in the data write cache into user meta-pages; a meta-data grouping engine for grouping meta-data data stored in the data write cache into meta-data meta-pages; and an output buffer for sending grouped meta-pages and data type information to a flash drive system for storage. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A Virtual-Memory Device (VMD) driver for executing on a host comprising:
-
a data type assignor for generating a data type for a host write received by the VMD driver; a task priority assignor for assigning a priority to tasks including writing of host write data by data type, wherein priority is a function of the data type from the data type assignor; a target assignor for sorting host write data based on the data type generated by the data type assignor; a data write cache for storing host write data having a user data type; a ramdisk driver for storing host write data having a temp data type to a ramdisk stored in a host dynamic-random-access memory (DRAM); 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 volume manager for transfer to a flash memory, and meta-pages stored in the flash memory are received by the un-grouping engine; a power monitor for detecting a power failure; a flush manager for flushing data stored in the host DRAM to a SSD DRAM and then to a flash memory of a flash drive system when power is lost; a resume manager reloader for fetching flushed data from flash memory of the flash drive system and then to the host DRAM when power is restored. - View Dependent Claims (7, 8)
-
Specification