CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to Chinese Application Serial No. 201910958904.8, filed Oct. 10, 2019, the disclosure of which is incorporated herein by reference in its entirety.

BACKGROUND

The present disclosure relates generally to information handling systems, and more particularly to storing data in an information handling system based on its frequency of modification in order to provide for improved garbage collection operations.

As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.

Information handling systems such as, for example, server devices, typically include storage devices that perform garbage collection operations to free up storage space on the storage device for storing data. For example, Solid State Drive (SSD) storage devices operate by writing data to data storage elements (sometimes called “pages”) that are included in NAND flash memory devices in the SSD storage device, with those data storage elements grouped into “blocks”, while groups of those blocks may further be grouped into “superblocks”. SSD storage devices are unable to overwrite existing data in a data storage element (e.g., as is done in overwrite operations performed by Hard Disk Drives (HDDs)), and instead must erase old data from all of the data storage elements in a particular block before writing new data to those data storage elements. As such, when data is first received, it is written to a first data storage element, and a Logical Block Address (LBA) for that data is associated with a Physical Allocation Address (PAA) for that first data storage element in an LBA/PAA table. Subsequently, when a modification to that data is received, the modified data is written to a different, second data storage element, the LBA for that data is associated with a PAA for that second data storage element in the LBA/PAA table, and the first data storage element is marked as an “invalid” data storage element (as opposed to “valid” data storage elements that include current/updated data). As such, each modification to data stored in a data storage element results in an invalid data storage element, and conventional storage devices are configured to perform garbage collection operations in order to “recover” those invalid data storage elements so that data may be subsequently written to them. However, conventional storage device garbage collection operations suffer from several issues.

For example, conventional storage devices may track the number of “valid”/“invalid” data storage elements that are included in a superblock. As discussed above, blocks of data storage elements may be grouped into superblocks, and the data writing operations discussed above will result in different superblocks including different numbers of “valid” and “invalid” data storage elements. When garbage collection operations are performed (e.g., when the number of “free” data storage elements that are available for writing data in the storage device is below a threshold level), the storage device may identify the superblock with the lowest number of “valid” data storage elements, and may select that superblock for garbage collection operations. The storage device may then move the data in any “valid” data storage elements in that superblock to free data storage elements in a different superblock, which allows each of the blocks in that superblock to have their “invalid” data storage elements erased and “freed up” for the storage of new data (as will be appreciated by one of skill in the art in possession of the present disclosure, while data can be written to individual data storage elements in an SSD storage device, only entire blocks of data in an SSD storage device can be erased.)

As such, the time needed to perform garbage collection operations for a storage device will depend on the number of “valid” data storage elements in the identified superblock with the lowest number of “valid” data storage elements. However, it has been found that the distribution of “valid” data storage elements in superblocks in a storage device can vary greatly, and in some cases can skew such that the superblock with the lowest number of “valid” data storage elements still includes a number of “valid” data storage elements that is high enough to introduce relatively significant latency into the garbage collection operations. For example, with garbage collection operations associated with data transfer speeds of 2-3 ms per word line, garbage collection operations can vary from 10 ms to hundreds of milliseconds in order to move all of the data in the “valid” data storage elements in an identified superblock, and garbage collection operations can extend into the scale of seconds for edge cases.

Accordingly, it would be desirable to provide an improved storage device garbage collection system absent the issues discussed above.

SUMMARY

According to one embodiment, an Information Handling System (IHS) includes a processing system; and a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide a data storage and garbage collection engine that is configured to: receive, from a host engine, first modified data that provides a modification to first current data that is stored in a first data storage element that is provided by one of a plurality of storage subsystems, wherein the first data storage element is grouped in a first superblock that is associated with a first data modification frequency range; determine a first frequency of modification of the first current data; and write, based on the first frequency of modification of the first current data, the first modified data to a second data storage element that is provided by one of the plurality of storage subsystems, wherein the second data storage element is grouped in a second superblock that is different than the first superblock and that is associated with a second data modification frequency range that is different than the first data modification frequency range.

