Green NAND SSD application and driver
First Claim
1. A DRAM Translation Layer (DTL) driver method to buffer accesses to a flash memory device comprising:
- controlling access to the flash memory device and to a dynamic-random-access memory (DRAM) buffer in response to IO request packets that indicate host reads and host writes, the IO request packets received by a file system filter;
wherein the flash memory device is block-erasable and page-writeable;
using a driver to write host data to the DRAM buffer;
creating a DTL in the DRAM buffer that is controlled by the driver and using the DTL to provide temporary storage to buffer flash accesses;
creating mapping tables to manage data stored in the DTL;
using the mapping tables to distribute data in the DRAM buffer to form a buffer of data for storage in a flash memory device;
during a host write, sending a logical address from the host to a logical-to-DTL mapping table that looks up the logical address to locate a DTL entry for storing data having the logical address from the host;
during a host read, using the logical-to-DTL mapping table and a DTL status table to read data from the DRAM buffer when valid data exists or to read data from the flash memory device when no valid data exists; and
during a flush operation, using a DTL-to-Logical mapping table that stores a logical address of data stored at a DTL entry to locate valid data in the DRAM buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
A GNSD Driver coupled to host DRAM, and having a memory manager, a data grouper engine, a data ungrouper engine, a power manager, and a flush/resume manager. The GNSD driver is coupled to a GNSD application, and the host DRAM to a Non-Volatile Memory Device. The GNSD Driver further includes a compression/decompression engine, a de-duplication engine, an encryption/decryption engine, or a high-level error correction code engine. The encryption/decryption engine encrypts according to DES or AES. A method of operating a GNSD Driver and a GNSD application coupled to DRAM of a host, includes coupling: Configuration and Register O/S Settings to the host and the GNSD Application; a data grouper and data ungrouper to the host DRAM and to Upper and a Lower Filter; a power manager and a memory manager to the host; a flush/resume manager to the DRAM; and the DRAM to an SEED SSD.
-
Citations
17 Claims
-
1. A DRAM Translation Layer (DTL) driver method to buffer accesses to a flash memory device comprising:
-
controlling access to the flash memory device and to a dynamic-random-access memory (DRAM) buffer in response to IO request packets that indicate host reads and host writes, the IO request packets received by a file system filter; wherein the flash memory device is block-erasable and page-writeable; using a driver to write host data to the DRAM buffer; creating a DTL in the DRAM buffer that is controlled by the driver and using the DTL to provide temporary storage to buffer flash accesses; creating mapping tables to manage data stored in the DTL; using the mapping tables to distribute data in the DRAM buffer to form a buffer of data for storage in a flash memory device; during a host write, sending a logical address from the host to a logical-to-DTL mapping table that looks up the logical address to locate a DTL entry for storing data having the logical address from the host; during a host read, using the logical-to-DTL mapping table and a DTL status table to read data from the DRAM buffer when valid data exists or to read data from the flash memory device when no valid data exists; and during a flush operation, using a DTL-to-Logical mapping table that stores a logical address of data stored at a DTL entry to locate valid data in the DRAM buffer. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. The method of claim further comprising:
-
controlling various functions using a grouping manager; managing a data write cache stored in the DRAM buffer; writing a first write data from the host and a header to a beginning of the data write cache; writing a new write data from the host and a header next to a previous data in the data write cache; wherein when an updated write data is received from the host and an old data is in the data write cache, the driver discarding the old data and its header and moving a dirty data behind the old data and then appending the updated write data and its header; wherein when the dirty data has a size of more than a stripe-ready unit and the data write cache is full, the driver writing the stripe-ready unit to the flash memory device; wherein write host data is stored in the DTL in the DRAM buffer and not immediately written to the flash memory device.
-
-
8. A green Solid-State Drive (SSD) flash device comprising:
-
a file system filter for receiving a logical address, host reads, and host writes from a host; a dynamic-random-access memory (DRAM) buffer for storing data; a flash memory device for storing data that is retained when power is lost, the flash memory device being block-erasable and page-writeable; a controller for controlling access to the flash memory device and to the DRAM buffer in response to host reads and host writes received by the file system filter, the controller writing host data to the DRAM buffer; a DRAM Translation Layer (DTL) implemented in the DRAM buffer and controlled by the controller that uses the DTL to provide temporary storage to reduce flash wear; a data write cache stored in the DRAM buffer and managed by the controller; a logical-to-DTL mapping table that looks up the logical address to locate a DTL entry in the DRAM buffer for storing data having the logical address from the host; a DTL status table indicating when valid data exists in the DRAM buffer; and a DTL-to-Logical mapping table that stores a logical address of data stored at a DTL entry to locate valid data in the DRAM buffer, the DTL-to-Logical mapping table used during a flush operation. - View Dependent Claims (9)
-
-
10. The green SSD flash device of claim $ further comprising:
-
a data split manager to identify a data-type of a write host data to be of a user data-type, a meta data-type, a paging data-type, or a temporary data type; the controller for storing write host data having the user data-type into a user data buffer in the DTL; the controller for storing write host data having the meta data-type into a meta data buffer in the DTL; the controller for storing write host data having the paging data-type into a paging data buffer in the DTL; and the controller for storing write host data having the temporary data-type into a temporary data buffer in the DTL. - View Dependent Claims (11, 12, 13)
-
-
14. A green Solid-State Drive (SSD) flash system comprising:
-
a driver for executing on a host, the driver comprising; a file system filter for receiving a logical address, host reads, and host writes from a host; a host dynamic-random-access memory (DRAM) buffer for storing data; a driver for controlling access to a green SSD flash device and to the host DRAM buffer in response to host reads and host writes received by the file system filter, the driver writing host data to the host DRAM buffer; a host DRAM Translation Layer (DTL) implemented in the host DRAM buffer and controlled by the driver that uses the host DTL to provide temporary storage to reduce flash wear; a host data write cache stored in the host DRAM buffer and managed by the driver; a host logical-to-DTL mapping table that looks up the logical address to locate a host DTL entry in the host DRAM buffer for storing data having the logical address from the host; a host DTL status table indicating when valid data exists in the host DRAM buffer; and a host DTL-to-Logical mapping table that stores a logical address of data stored at a host DTL entry to locate valid data in the host DRAM buffer, the host DTL-to-Logical mapping table used during a host flush operation; a green SSD flash device that comprises; a dynamic-random-access memory (DRAM) buffer for storing data; a flash memory device for storing data that is retained when power is lost, the flash memory device being block-erasable and page-writeable; a controller for controlling access to the flash memory device and to the DRAM buffer in response to host reads and host writes received from the driver executing on the host, the controller writing host data to the DRAM buffer; a device DRAM Translation Layer (DTL) implemented in the DRAM buffer and controlled by the controller that uses the device DTL to provide temporary storage to reduce flash wear; a data write cache stored in the DRAM buffer and managed by the controller; a logical-to-DTL mapping table that looks up the logical address to locate a DTL entry in the DRAM buffer for storing data having the logical address from the host; a DTL status table indicating when valid data exists in the DRAM buffer; and a DTL-to-Logical mapping table that stores a logical address of data stored at a DTL entry to locate valid data in the DRAM buffer, the DTL-to-Logical mapping table used during a flush operation. - View Dependent Claims (15, 16, 17)
-
Specification