Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED)
First Claim
1. A retention flash drive system comprising:
- a retention manager that is periodically activated when a retention-check timer has elapsed, the retention manager sending a vendor command to a flash drive that causes the flash drive to move physical blocks of data before a data-retention limit is reached wherein data stored in flash memory is lost, the retention manager also commanding a Solid-State Drive (SSD) to move a logical block before the data-retention limit is reached;
an upper-level file filter driver, for executing on a host, for intercepting high-level host writes to a flash drive;
an encryption/decryption engine, coupled to receive high-level host writes intercepted by the upper-level file filter driver, for generating encrypted data and for decrypting encrypted data;
a compression/decompression engine, coupled to receive high-level host writes from the upper-level file filter driver, for generating compressed data and for decompressing compressed data;
wherein compressed data and encrypted data are sent to a File System Driver (FSD) executing on the host;
a lower-level file filter driver, for executing on the host, for intercepting lower-level file system host writes to a flash drive system;
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 volume manager for transfer to a flash memory, and meta-pages stored in the flash memory are received by the un-grouping engine;
a file priority tag sorter for generating a data type for a host write received;
a task policy assignor for assigning a priority to tasks including writing of host write data by the data type, wherein priority is a function of the data type from the file priority tag sorter;
a performance adjustor for adjusting priority of tasks;
a target assignor for sorting host write data based on the data type generated by the file priority tag sorter;
a flush manager for flushing data stored in a 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 the flash memory of the flash drive system and then to the host DRAM when power is restored; and
a disk miniport driver for managing vendor-specific functions of the flash drive system.
1 Assignment
0 Petitions
Accused Products
Abstract
A Green NAND SSD Driver (GNSD) driver executes on a host to increase data-retention of flash memory attached to a Super Enhanced Endurance Device (SEED) or Solid-State Drive (SSD). Host accesses to flash are intercepted by the GNSD driver using upper and lower-level filter drivers. A retention-check timer causes a retention routine to be periodically executed. The routine sends high-level commands to the SEED that causes the SEED to refresh either all data or just data blocks with older write dates. Data is refreshed by moving to a new physical block. The retention routine can track write dates of logical blocks and command a SSD to move logical blocks with older write dates. A retention card has a controller that performs the retention routine when not connected to a host, while a SEED power card allows the SEED to refresh data when no host is attached to the SEED.
-
Citations
12 Claims
-
1. A retention flash drive system comprising:
-
a retention manager that is periodically activated when a retention-check timer has elapsed, the retention manager sending a vendor command to a flash drive that causes the flash drive to move physical blocks of data before a data-retention limit is reached wherein data stored in flash memory is lost, the retention manager also commanding a Solid-State Drive (SSD) to move a logical block before the data-retention limit is reached; an upper-level file filter driver, for executing on a host, for intercepting high-level host writes to a flash drive; an encryption/decryption engine, coupled to receive high-level host writes intercepted by the upper-level file filter driver, for generating encrypted data and for decrypting encrypted data; a compression/decompression engine, coupled to receive high-level host writes from the upper-level file filter driver, for generating compressed data and for decompressing compressed data; wherein compressed data and encrypted data are sent to a File System Driver (FSD) executing on the host; a lower-level file filter driver, for executing on the host, for intercepting lower-level file system host writes to a flash drive system; 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 volume manager for transfer to a flash memory, and meta-pages stored in the flash memory are received by the un-grouping engine; a file priority tag sorter for generating a data type for a host write received; a task policy assignor for assigning a priority to tasks including writing of host write data by the data type, wherein priority is a function of the data type from the file priority tag sorter; a performance adjustor for adjusting priority of tasks; a target assignor for sorting host write data based on the data type generated by the file priority tag sorter; a flush manager for flushing data stored in a 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 the flash memory of the flash drive system and then to the host DRAM when power is restored; and a disk miniport driver for managing vendor-specific functions of the flash drive system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
Specification