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 Green NAND SSD Driver (GNSD) driver for executing on a host computer comprising:
- a retention-check timer that indicates when a retention-check period of time has elapsed;
a retention manager that is periodically activated by the retention-check timer, the retention manager ensuring that flash data is moved to a new flash block before a data-retention time has elapsed, wherein flash data is subject to loss when the data-retention time is exceeded, the retention manager sending commands to a flash drive to perform retention operations to write flash data; and
a plurality of interfaces to peripheral devices that include the flash drive.
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.
95 Citations
20 Claims
-
1. A Green NAND SSD Driver (GNSD) driver for executing on a host computer comprising:
-
a retention-check timer that indicates when a retention-check period of time has elapsed; a retention manager that is periodically activated by the retention-check timer, the retention manager ensuring that flash data is moved to a new flash block before a data-retention time has elapsed, wherein flash data is subject to loss when the data-retention time is exceeded, the retention manager sending commands to a flash drive to perform retention operations to write flash data; and a plurality of interfaces to peripheral devices that include the flash drive. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for refreshing a flash memory comprising:
-
obtaining a current date; for a current block in a list of blocks in the flash memory; (a) reading a block status table for a write date of the current block that indicates when the current block was last written; calculating a first time delay as a difference of the write date and the current date; comparing the first time delay to a retention time; when the first time delay exceeds the retention time, moving all valid pages in the current block to empty pages in a spare block in a dynamic-random-access memory (DRAM); moving data from the spare block in DRAM to a spare block in the flash memory; erasing the current block; selecting another block in the list of blocks of flash memory as the current block and repeating from (a) until all blocks in the list of blocks have been processed, whereby flash blocks are refreshed. - View Dependent Claims (12, 13)
-
-
14. A retention card comprising:
-
an upstream interface to a host that provides power and firmware upgrade; a controller with a retention manager firmware; a DRAM that provides storage for the retention manager firmware; and a protocol controller that provides a plurality of interfaces to peripheral devices that include a flash drive. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. 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 Super Enhanced Endurance Device (SEED) that causes the SEED 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.
-
Specification