Patent ID: 9405621
Filing Date: 2016-08-02
CPC Classification: G06F,G11C

Claim Text:
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; 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; a file type identifier for generating a data type for a host write received by the host interface from the host; a data split manager for sorting host write data based on the data type generated by the file type identifier; wherein the data write cache stores host write data having a user data type; a meta-data cache, in the DRAM buffer, for storing host write data having a meta-data data type; a paging cache, in the DRAM buffer, for storing host write data having a paging file data type; and a temp cache, in the DRAM buffer, for storing host write data having a temp data type; wherein the temp cache is not flushed to the plurality of flash memory devices by the flush manager; wherein the meta-data cache is flushed to the plurality of flash memory devices by the flush manager.