IP Library Granted Patent US 12,210,751
Granted Patent B1
US 12,210,751 · App. 17/887,479 · Granted Jan 28, 2025

Nonvolatile memory controller with delegated processing

Inventors: Mike Jadon (Manhattan Beach, CA); Craig Robertson (Simi Valley, CA); Robert Lercari (Thousand Oaks, CA)
Assignee: Radian Memory Systems, LLC
G06F3/0619G06F3/0647G06F3/0655G06F3/0659G06F3/0679G06F3/0689G06F11/1068
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,210,751
App. No.
17/887,479
Granted
Jan 28, 2025
Kind
B1
Abstract

Processing functions are offloaded to a memory controller for nonvolatile memory by a host in connection with write data. The nonvolatile memory executes these functions, producing processed data that must be written into memory; for example, the offloaded functions can include erasure coding, with the nonvolatile memory controller generating redundancy information that must be written into memory. The memory controller holds this information in internal RAM and then later writes this information into nonvolatile memory according to dynamically determined write time and/or destinations selected by the host, so as to not collide with host data access requests. In one embodiment, the memory is NAND flash memory and the memory controller is a cooperative memory controller that permits the host to schedule concurrent operations in respective, configurable virtual block devices which have been configured by the host out of a pool of structural flash memory structures managed by the memory controller.

Claims (74)

1. A storage drive comprising:

flash memory having physical storage locations;

an interface to receive, from a storage manager of a host, write commands and, for each of the write commands, an associated host-provided address and associated data, wherein the write commands are compatible with a Non-Volatile Memory Express (NVMe) command format; and

circuitry, including at least one processor, to

control the flash memory,

for each one of the write commands, map the host-provided address which is associated with the one of the write commands to a respective one of the physical storage locations, and store the associated data in the respective one of the physical storage locations,

store metadata representing each item of data which has been stored in one of the physical storage locations, and

responsive to receipt of an additional command from the storage manager of the host, via the interface, execute a deduplication function, and as part of executing the deduplication function:

detect, using said metadata, duplication of data stored in the flash memory by two different ones of the write commands; and

remap the host-provided addresses associated with at least one the two different ones of the write commands, such that two different host-provided addresses which are respectively associated with the two different ones of the write commands each are thereafter mapped by the storage drive to a single, common one of the physical storage locations in the flash memory.

2. The storage drive of claim 1 wherein the circuitry is able to map each host-provided address associated with one of the write commands to multiple alternative ones of the physical storage locations in the flash memory, at respective times.

3. The storage drive of claim 1 wherein, following the remapping:

the interface is also to receive, via the interface, a first read command which specifies a first one of the two different host-provided addresses and a second read command which specifies a second one of the two different host-provided addresses, wherein the first read command and the second read command are each also compatible with the NVMe command format; and

the circuitry is to service each of the first read command and the second read command by identifying the single, common one of the physical storage locations in the flash memory, causing retrieval of data stored at the single, common one of the physical storage locations in the flash memory, and causing transmission of the retrieved data by the storage drive to the storage manager of the host.

4. The storage drive of claim 1 wherein:

the circuitry is to map a first namespace to a first plurality of the physical storage locations in the flash memory and a second namespace to a second plurality of the physical storage locations in the flash memory;

the second command is specific to the first namespace; and

the circuitry is to execute the deduplication function in a manner unique to the first namespace.

5. The storage drive of claim 1 wherein:

the circuitry is to, responsive to detecting the duplication of data, cause transmission by the storage drive to the storage manager of the host of information dependent on existence of the duplication of data;

the additional command is responsive to the information transmitted to the storage manager of the host from the storage drive.

6. The storage drive of claim 5 wherein the information transmitted to the storage manager of the host corresponds to a subset of logical storage space, wherein the additional command specifies the subset of logical storage space, and wherein the circuitry is to, responsive to the additional command, execute the deduplication function only in a subset of the flash memory which corresponds to the subset of logical storage space.

7. The storage drive of claim 1 wherein:

the circuitry is to, responsive to detecting the duplication of data, cause transmission by the storage drive to the storage manager of the host of information dependent on existence of the duplication of data;

the interface is to receive, via the interface, at least one further command from the storage manager of the host, subsequent to receipt of the additional command and responsive to the information transmitted to the storage manager of the host from the storage drive; and

the circuitry is to, responsive to the at least one further command:

map a third address to a third one of the physical storage locations,

move data stored at the single, common one of the physical storage locations in the flash memory from the single, common one of the physical storage locations in the flash memory to the third one of the physical storage locations, without sending the data being moved to the host,

cause erasure of the single, common one of the physical storage locations in the flash memory, and

thereafter cause the read of data stored at the third one of the physical storage locations in response to a read command, received via the interface, from the storage manager of the host which specifies the third address, wherein the read command is also compatible with the NVMe command format.

8. The storage drive of claim 7 wherein:

the at least one further command specifies the third address, such that the move of data is explicitly commanded by the host as part of the at least one third command.

9. The storage drive of claim 1 wherein the metadata is provided by the storage manager of the host in association with at least one of the write commands.

10. The storage drive of claim 1 wherein the circuitry is to generate the metadata on-board the storage drive.

11. The storage drive of claim 10 wherein the metadata comprises a hash, and wherein the circuitry is to detect the duplication of data by detecting the existence of two corresponding hashes.

12. The storage drive of claim 1 wherein each host-provided address associated with one of the write commands comprises a logical block address.

13. The storage drive of claim 12 wherein the flash memory is logically organized into pages, each of the pages comprising storage for plural logical block addresses.

14. The storage drive of claim 1 wherein:

the circuitry is to map a first namespace to a first plurality of the physical storage locations in the flash memory and a second namespace to a second plurality of the physical storage locations in the flash memory;

the storage drive further comprises a register;

the interface is to receive, via the interface, from the storage manager of the host a further command, and the circuitry is to program the register responsive to receipt of the further command; and

the circuitry is to execute the deduplication function in a manner dependent on programming stored in the register, wherein the deduplication function is selectively different for the first namespace than the second namespace according to the programming stored in the register.

15. The storage drive of claim 1 wherein the circuitry comprises instructions stored on at least physical storage medium that, when executed, are to configure the at least one processor to control the mapping of each host-provided address, the storage of associated data, the storing of the metadata, and the execution of the deduplication function.

16. The storage drive of claim 1 wherein:

the storage drive comprises on-board memory;

the circuitry is to store, in the on-board memory, storage location release information corresponding to the physical memory locations; and

the circuitry is to, in association with execution of the deduplication function, update the storage location release information stored in the on-board memory, so as to indicate that the respective one of the physical storage locations which was mapped to the host-provided address associated first one of the two different ones of the write commands has been released.

17. The storage drive of claim 16 wherein:

the interface is to receive a further command from the storage manager of the host, following the update of the storage location release information; and

the circuitry is to, responsive to the further command, control erasure of at least one of the physical storage locations in the flash memory, including the respective one of the physical storage locations which was mapped to the host-provided address associated first one of the two different ones of the write commands.

18. The storage drive of claim 1 wherein:

the storage drive comprises on-board memory;

the circuitry is to store, in the on-board memory, storage location release information corresponding to the physical memory locations; and

the interface is to receive a further command from the storage manager of the host; and

the circuitry is to, responsive to the further command, update the storage location release information.

19. The storage drive of claim 18 wherein the circuitry is to, responsive to the further command, dynamically control physical erasure of at least one of the physical storage locations in the flash memory.

20. The storage drive of claim 1 wherein the circuitry is further to transmit, via the interface, information, to the storage manager of the host, that explicitly conveys the remapped host-provided address back to the host, such that the host is able to update its logical addressing corresponding to the remapped host-provided address.

21. The storage drive of claim 1 wherein the additional command is interleaved by the host amongst the write commands and wherein the circuitry is operable to execute the deduplication function in a manner timed, relative to storage of the associated data, according to a manner in which the additional command is interleaved amongst the write commands.

22. A storage drive comprising:

flash memory having physical storage locations;

an interface to receive, from a storage manager of a host, write commands and, for each of the write commands, an associated host-provided address and associated data, wherein the write commands are compatible with a Non-Volatile Memory Express (NVMe) command format; and

circuitry, including at least one processor, to

control the flash memory,

for each one of the write commands, map the host-provided address which is associated with the one of the write commands to a respective one of the physical storage locations, and store the associated data in the respective one of the physical storage locations,

store metadata representing each item of data which has been stored in one of the physical storage locations, and

responsive to receipt of an additional command from the storage manager of the host, via the interface, execute a deduplication function, and as part of executing the deduplication function:

detect, using said metadata, duplication of data stored in the flash memory by two different ones of the write commands; and

remap the host-provided address associated with a first one of the two different ones of the write commands to instead map to the respective one of the physical storage locations which has been mapped to the host-provided address associated with a second one of the two different ones of the write commands, such that two different host-provided addresses respectively associated with the two different ones of the write commands each are thereafter mapped by the storage drive to a single, common one of the physical storage locations in the flash memory.

23. The storage drive of claim 22 wherein:

the circuitry is to, responsive to detecting the duplication of data by the two different ones of the write commands, cause transmission to the storage manager of the host, by the storage drive, of information dependent on existence of the duplication of data; and

the interface is to receive the additional command from the storage manager of the host, responsive to the information transmitted to the host by the storage drive.

24. The storage drive of claim 23 wherein the information transmitted to the storage manager of the host corresponds to a subset of logical storage space, wherein the additional command specifies the subset of logical storage space, and wherein the circuitry is to, responsive to the additional command, execute the deduplication function only in a subset of the flash memory which corresponds to the subset of logical storage space.

25. The storage drive of claim 22 wherein the circuitry is further to transmit, via the interface, information, to the storage manager of the host, that explicitly conveys the remapped host-provided address back to the host, such that the host is able to update its logical addressing corresponding to the remapped host-provided address.

26. The storage drive of claim 22 wherein the additional command is interleaved by the host amongst the write commands and wherein the circuitry is operable to execute the deduplication function in a manner timed, relative to storage of the associated data, according to a manner in which the additional command is interleaved amongst the write commands.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2024
From: RADIAN MEMORY SYSTEMS, INC.
To: RADIAN MEMORY SYSTEMS LLC
Reel/Frame 067471/0240 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2022
From: JADON, MIKE; ROBERTSON, CRAIG; LERCARI, ROBERT
To: RADIAN MEMORY SYSTEMS, INC.
Reel/Frame 062255/0970 →
Continuity (7)
Continuation 17240788 · Apr 26, 2021
Continuation 16591735 · Oct 3, 2019
Continuation 15211927 · Jul 15, 2016
Provisional Application 62241429 · Oct 14, 2015
Provisional Application 62199969 · Jul 31, 2015
Provisional Application 62199970 · Jul 31, 2015
Provisional Application 62194172 · Jul 17, 2015
References Cited (255)
US 4532590A · Wallach · 1985 [cited by applicant]
US 4813002A · Joyce · 1989 [cited by applicant]
US 5404485A · Ban · 1995 [cited by applicant]
US 5568423A · Jou et al. · 1996 [cited by applicant]
US 5652857A · Shimoi et al. · 1997 [cited by applicant]
US 5860082A · Smith et al. · 1999 [cited by applicant]
US 6118724A · Higgenbottom · 2000 [cited by applicant]
US 6134631A · Jennings, III · 2000 [cited by applicant]
US 6145069A · Dye · 2000 [cited by applicant]
US 6148354A · Ban · 2000 [cited by applicant]
US 6430650B1 · Miyauchi · 2002 [cited by applicant]
US 6571312B1 · Sugai · 2003 [cited by applicant]
US 7096378B2 · Stence et al. · 2006 [cited by applicant]
US 7339823B2 · Nakayama et al. · 2008 [cited by applicant]
US 7383375B2 · Sinclair · 2008 [cited by applicant]
US 7404031B2 · Oshima · 2008 [cited by applicant]
US 7406563B1 · Nagshain · 2008 [cited by applicant]
US 7581078B2 · Ware · 2009 [cited by applicant]
US 7702846B2 · Nakanishi et al. · 2010 [cited by applicant]
US 7710777B1 · Mintierth · 2010 [cited by applicant]
US 7752381B2 · Wong · 2010 [cited by applicant]
US 7801561B2 · Parikh et al. · 2010 [cited by applicant]
US 7814262B2 · Sinclair · 2010 [cited by applicant]
US 7818489B2 · Karamcheti et al. · 2010 [cited by applicant]
US 7836244B2 · Kim et al. · 2010 [cited by applicant]
US 7861122B2 · Cornwell et al. · 2010 [cited by applicant]
US 7877540B2 · Sinclair · 2011 [cited by applicant]
US 7904681B1 · Bappe · 2011 [cited by examiner]
US 7934074B2 · Lee · 2011 [cited by applicant]
US 7941692B2 · Royer et al. · 2011 [cited by applicant]
US 7970983B2 · Nochimowski · 2011 [cited by applicant]
US 7991944B2 · Lee et al. · 2011 [cited by applicant]
US 8001318B1 · Iyer · 2011 [cited by applicant]
US 8024545B2 · Kim et al. · 2011 [cited by applicant]
US 8046524B2 · Tringali · 2011 [cited by applicant]
US 8055833B2 · Danilak et al. · 2011 [cited by applicant]
US 8065471B2 · Yano et al. · 2011 [cited by applicant]
US 8065473B2 · Ito et al. · 2011 [cited by applicant]
US 8068365B2 · Kim · 2011 [cited by applicant]
US 8072463B1 · Van Dyke · 2011 [cited by applicant]
US 8074022B2 · Okin et al. · 2011 [cited by applicant]
US 8082389B2 · Fujibayashi · 2011 [cited by applicant]
US 8086790B2 · Roohparvar · 2011 [cited by applicant]
US 8099632B2 · Tringali · 2012 [cited by applicant]
US 8140821B1 · Raizen · 2012 [cited by examiner]
US 8195912B2 · Flynn · 2012 [cited by applicant]
US 8219776B2 · Forhan · 2012 [cited by applicant]
US 8285918B2 · Maheshwari · 2012 [cited by applicant]
US 8291151B2 · Sinclair · 2012 [cited by applicant]
US 8291295B2 · Harari · 2012 [cited by applicant]
US 8347042B2 · You · 2013 [cited by applicant]
US 8423710B1 · Gole · 2013 [cited by applicant]
US 8495280B2 · Kang · 2013 [cited by applicant]
US 8539197B1 · Marshall · 2013 [cited by applicant]
US 8572331B2 · Shalvi · 2013 [cited by applicant]
US 8645634B1 · Cox et al. · 2014 [cited by applicant]
US 8668894B2 · Kuehne · 2014 [cited by applicant]
US 8700961B2 · Lassa · 2014 [cited by applicant]
US 8954708B2 · Kim · 2015 [cited by applicant]
US 8959307B1 · Bruce · 2015 [cited by applicant]
US 8996796B1 · Karamcheti · 2015 [cited by applicant]
US 9123443B2 · Chung · 2015 [cited by applicant]
US 9176864B2 · Gorobets · 2015 [cited by applicant]
US 9229854B1 · Kuzmin et al. · 2016 [cited by applicant]
US 9286198B2 · Bennett · 2016 [cited by applicant]
US 9329986B2 · Li · 2016 [cited by applicant]
US 9335939B2 · Bennett et al. · 2016 [cited by applicant]
US 9400749B1 · Kuzmin et al. · 2016 [cited by applicant]
US 9405621B2 · Yu · 2016 [cited by applicant]
US 9519578B1 · Kuzmin et al. · 2016 [cited by applicant]
US 9542118B1 · Lercari et al. · 2017 [cited by applicant]
US 9565269B2 · Malwankar · 2017 [cited by applicant]
US 9575672B2 · Yamamoto · 2017 [cited by applicant]
US 9588904B1 · Lercari et al. · 2017 [cited by applicant]
US 9652376B2 · Kuzmin et al. · 2017 [cited by applicant]
US 9696917B1 · Sareena et al. · 2017 [cited by applicant]
US 9710377B1 · Kuzmin et al. · 2017 [cited by applicant]
US 9727454B2 · Kuzmin et al. · 2017 [cited by applicant]
US 9734086B2 · Flynn · 2017 [cited by applicant]
US 9785572B1 · Lercari et al. · 2017 [cited by applicant]
US 9846541B2 · Miyamoto et al. · 2017 [cited by applicant]
US 9858008B2 · Liu · 2018 [cited by applicant]
US 10067866B2 · Sutardja · 2018 [cited by applicant]
US 10445229B1 · Kuzmin et al. · 2019 [cited by applicant]
US 10552058B1 · Jadon et al. · 2020 [cited by applicant]
US 10552085B1 · Chen et al. · 2020 [cited by applicant]
US 10838853B1 · Kuzmin · 2020 [cited by applicant]
US 11023315B1 · Jadon · 2021 [cited by applicant]
US 11068408B2 · Kim · 2021 [cited by applicant]
US 11487678B2 · Park · 2022 [cited by applicant]
US 11500766B2 · Bueb · 2022 [cited by applicant]
US 11580030B2 · Das · 2023 [cited by applicant]
US 20030028733A1 · Tsunoda et al. · 2003 [cited by applicant]
US 20030065866A1 · Spencer · 2003 [cited by applicant]
US 20050073844A1 · Gonzalez · 2005 [cited by applicant]
US 20050144413A1 · Kuo et al. · 2005 [cited by applicant]
US 20060022171A1 · Maeda et al. · 2006 [cited by applicant]
US 20070046681A1 · Nagashima · 2007 [cited by applicant]
US 20070058431A1 · Chung et al. · 2007 [cited by applicant]
US 20070143569A1 · Sanders · 2007 [cited by applicant]
US 20070233939A1 · Kim · 2007 [cited by applicant]
US 20070260811A1 · Merry, Jr. et al. · 2007 [cited by applicant]
US 20070283428A1 · Ma et al. · 2007 [cited by applicant]
US 20080034153A1 · Lee · 2008 [cited by applicant]
US 20080082596A1 · Gorobets · 2008 [cited by applicant]
US 20080147964A1 · Chow et al. · 2008 [cited by applicant]
US 20080155204A1 · Qawami et al. · 2008 [cited by applicant]
US 20080189485A1 · Jung et al. · 2008 [cited by applicant]
US 20080195833A1 · Park · 2008 [cited by applicant]
US 20080307192A1 · Sinclair · 2008 [cited by applicant]
US 20080320476A1 · Wingard · 2008 [cited by applicant]
US 20090036163A1 · Kimbrell · 2009 [cited by applicant]
US 20090046533A1 · Jo · 2009 [cited by applicant]
US 20090083478A1 · Kunimatsu · 2009 [cited by applicant]
US 20090089482A1 · Traister · 2009 [cited by applicant]
US 20090089490A1 · Ozawa et al. · 2009 [cited by applicant]
US 20090172219A1 · Mardiks · 2009 [cited by applicant]
US 20090172250A1 · Allen et al. · 2009 [cited by applicant]
US 20090172257A1 · Prins et al. · 2009 [cited by applicant]
US 20090198946A1 · Ebata · 2009 [cited by applicant]
US 20090254705A1 · Abali et al. · 2009 [cited by applicant]
US 20090271562A1 · Sinclair · 2009 [cited by applicant]
US 20090300015A1 · Kazan et al. · 2009 [cited by applicant]
US 20090327602A1 · Moore et al. · 2009 [cited by applicant]
US 20100191779A1 · Hinrichs · 2010 [cited by applicant]
US 20100042655A1 · Tse et al. · 2010 [cited by applicant]
US 20100083050A1 · Ohyama · 2010 [cited by applicant]
US 20100115172A1 · Gillingham et al. · 2010 [cited by applicant]
US 20100125702A1 · Lee · 2010 [cited by applicant]
US 20100161882A1 · Stern et al. · 2010 [cited by applicant]
US 20100162012A1 · Cornwell et al. · 2010 [cited by applicant]
US 20100182838A1 · Kim et al. · 2010 [cited by applicant]
US 20100199065A1 · Kaneda · 2010 [cited by examiner]
US 20100241866A1 · Rodorff · 2010 [cited by applicant]
US 20100262761A1 · Borchers et al. · 2010 [cited by applicant]
US 20100262762A1 · Borchers · 2010 [cited by applicant]
US 20100262773A1 · Borchers · 2010 [cited by applicant]
US 20100281230A1 · Rabii et al. · 2010 [cited by applicant]
US 20100287217A1 · Borchers et al. · 2010 [cited by applicant]
US 20100287327A1 · Li · 2010 [cited by applicant]
US 20100287332A1 · Koshiyama · 2010 [cited by applicant]
US 20100299494A1 · Van Acht · 2010 [cited by applicant]
US 20100329011A1 · Lee et al. · 2010 [cited by applicant]
US 20110033548A1 · Kimmel et al. · 2011 [cited by applicant]
US 20110041039A1 · Harari · 2011 [cited by applicant]
US 20110055445A1 · Gee et al. · 2011 [cited by applicant]
US 20110138114A1 · Yen · 2011 [cited by applicant]
US 20110153911A1 · Sprouse · 2011 [cited by applicant]
US 20110161784A1 · Sellinger et al. · 2011 [cited by applicant]
US 20110197023A1 · Iwamitsu et al. · 2011 [cited by applicant]
US 20110238890A1 · Sukegawa · 2011 [cited by applicant]
US 20110238943A1 · Devendran et al. · 2011 [cited by applicant]
US 20110276756A1 · Bish et al. · 2011 [cited by applicant]
US 20110296133A1 · Flynn et al. · 2011 [cited by applicant]
US 20110314209A1 · Eckstein · 2011 [cited by applicant]
US 20120033519A1 · Confalonieri et al. · 2012 [cited by applicant]
US 20120054419A1 · Chen · 2012 [cited by applicant]
US 20120059972A1 · Chen · 2012 [cited by applicant]
US 20120066441A1 · Weingarten · 2012 [cited by applicant]
US 20120131270A1 · Hemmi · 2012 [cited by applicant]
US 20120131381A1 · Eleftheriou · 2012 [cited by applicant]
US 20120159039A1 · Kegel et al. · 2012 [cited by applicant]
US 20120198129A1 · Van Aken · 2012 [cited by applicant]
US 20120204079A1 · Takefman et al. · 2012 [cited by applicant]
US 20120221776A1 · Yoshihashi · 2012 [cited by applicant]
US 20120246394A1 · Ou · 2012 [cited by applicant]
US 20130007343A1 · Rub · 2013 [cited by applicant]
US 20130013852A1 · Hou et al. · 2013 [cited by applicant]
US 20130019062A1 · Bennett et al. · 2013 [cited by applicant]
US 20130073816A1 · Seo et al. · 2013 [cited by applicant]
US 20130111295A1 · Li et al. · 2013 [cited by applicant]
US 20130111298A1 · Seroff · 2013 [cited by applicant]
US 20130124793A1 · Gyl et al. · 2013 [cited by applicant]
US 20130138868A1 · Seroff · 2013 [cited by applicant]
US 20130166825A1 · Kim et al. · 2013 [cited by applicant]
US 20130227201A1 · Talagala · 2013 [cited by examiner]
US 20130232297A1 · Tanaka · 2013 [cited by applicant]
US 20130242425A1 · Zayas et al. · 2013 [cited by applicant]
US 20130290619A1 · Knight · 2013 [cited by applicant]
US 20130297852A1 · Fai et al. · 2013 [cited by applicant]
US 20130332656A1 · Kandiraju · 2013 [cited by applicant]
US 20130339580A1 · Brandt · 2013 [cited by applicant]
US 20140047210A1 · Cohen · 2014 [cited by applicant]
US 20140047300A1 · Liang · 2014 [cited by examiner]
US 20140101371A1 · Nguyen et al. · 2014 [cited by applicant]
US 20140122781A1 · Smith et al. · 2014 [cited by applicant]
US 20140189209A1 · Sinclair et al. · 2014 [cited by applicant]
US 20140208004A1 · Cohen · 2014 [cited by applicant]
US 20140208062A1 · Cohen · 2014 [cited by applicant]
US 20140215129A1 · Kuzmin et al. · 2014 [cited by applicant]
US 20140297949A1 · Nagawaka · 2014 [cited by applicant]
US 20150067297A1 · Arroyo et al. · 2015 [cited by applicant]
US 20150113203A1 · Pancho et al. · 2015 [cited by applicant]
US 20150134930A1 · Huang et al. · 2015 [cited by applicant]
US 20150149789A1 · Seo et al. · 2015 [cited by applicant]
US 20150212938A1 · Chen et al. · 2015 [cited by applicant]
US 20150193148A1 · Miwa et al. · 2015 [cited by applicant]
US 20150261456A1 · Alcantara et al. · 2015 [cited by applicant]
US 20150309734A1 · Brondjik · 2015 [cited by applicant]
US 20150324264A1 · Vidypoornachy et al. · 2015 [cited by applicant]
US 20150339187A1 · Sharon · 2015 [cited by applicant]
US 20150347041A1 · Kotte et al. · 2015 [cited by applicant]
US 20150347296A1 · Kotte et al. · 2015 [cited by applicant]
US 20150355965A1 · Peddle · 2015 [cited by applicant]
US 20150378886A1 · Nemazie · 2015 [cited by applicant]
US 20160018998A1 · Mohan et al. · 2016 [cited by applicant]
US 20160019148A1 · Vekiarides · 2016 [cited by examiner]
US 20160019159A1 · Ueda · 2016 [cited by applicant]
US 20160026564A1 · Manning · 2016 [cited by applicant]
US 20160179664A1 · Camp · 2016 [cited by applicant]
US 20160253091A1 · Ayyavu · 2016 [cited by applicant]
US 20160342509A1 · Kotte et al. · 2016 [cited by applicant]
US 20160357462A1 · Nam et al. · 2016 [cited by applicant]
US 20160364179A1 · Tsai et al. · 2016 [cited by applicant]
US 20170031699A1 · Banerjee et al. · 2017 [cited by applicant]
US 20180046480A1 · Dong · 2018 [cited by applicant]
US 20200363996A1 · Kanno · 2020 [cited by applicant]
US 20210064293A1 · Cho · 2021 [cited by applicant]
WO 2009100149A1 · 2009 [cited by applicant]
NVM Express, Version 1.0b, Jul. 12, 2011, pp. 1-126, published at http://www.nvmexpress.org/resources/ by the NVM Express Work Group. [cited by applicant]
John D. Strunk, “Hybrid Aggregates: Combining SSDs and HDDs in a single storage pool,” Dec. 15, 2012, ACM SIGOPS Operating Systems Review archive, vol. 46 Issue 3, Dec. 2012, pp. 50-56. [cited by applicant]
Yiying Zhang, Leo Prasath Arulraj, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, Computer Sciences Department, University of Wisconsin-Madison, “De-indirection for Flash-based SSDs with NamelessWrites,” published a… [cited by applicant]
Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, and Vijayan Prabhakaran, “ResearchRemoving The Costs Of Indirection in Flash-based SSDs with NamelessWrites,” Jun. 22, 2010, pp. 1-5, published at www.cs.wisc.edu/wind/… [cited by applicant]
Stan Park and Kai Shen, Department of Computer Science, University of Rochester, “FIOS: A Fair, Efficient Flash I/O Scheduler,” Feb. 23, 2012, pp. 1-15, published at www.usenix.org/event/fast12/tech/full_papers/Park.pdf… [cited by applicant]
Eric Seppanen, Matthew T. O'Keefe, David J. Lilja, Department of Electrical and Computer Engineering, University of Minnesota, “High Performance Solid State Storage Under Linux,” Apr. 10, 2010, MSST '10 Proceedings of t… [cited by applicant]
Xiangyong Ouyangyz, David Nellansy, Robert Wipfely, David Flynny, Dhabaleswar K. Pandaz, “Beyond Block I/O: Rethinking Traditional Storage Primitives,” Aug. 20, 2011, published at http://www.sciweavers.org/read/beyond-b… [cited by applicant]
Intel Corp, PCI-SIG SR-IOV Primer—An Introduction to SR-IOV Technology,: 321211-002, Revision 2.5, Jan. 2011, 28 pages. [cited by applicant]
Open NAND Flash Interface (ONFI), specification, version 2.0, 174 pages, Feb. 27, 2008. [cited by applicant]
Open NAND Flash Interface (ONFI), specification, version 3.1, 296 pages Sep. 19, 2012. [cited by applicant]
NVM Express, V. 1.2.1, 217 pages, Jun. 3, 2016. [cited by applicant]
Garth Gibson, Greg Ganger, “Principles of Operation for Shingled Disk Devices,” Canregie Mellon Parallel Data Laboratory, CMU-PDL-11-107, Apr. 2011, 9 pages. [cited by applicant]
Li-Pin Chang, “Hybrid Solid State Disks: Combining Heterogeneous NAND Flash in Large SSDs,” National Chiao-Tung University, Taiwan, ASPDAC 2008, 26 pages. [cited by applicant]
Hua Wangx, Ping Huangxz, Shuang Hex, Ke Zhoux, Chunhua Lix, and Xubin He, “A Novel I/O Scheduler for SSD with Improved Performance and Lifetime,” Mass Storage Systems and Technologies (MSST), 2013 IEEE 29th Symposium on… [cited by applicant]
Altera Corp et al., “Hybrid Memory Cube” specification, 2012, 122 pages. [cited by applicant]
JEDEC Standard, JESD229, Wide IO, Dec. 2011, 74 pages. [cited by applicant]
Li-Pin Chang, “Hybrid Solid State Disks: Combining Heterogeneous NAND Flash in Large SSDs,” National Chiao-Tung University, Taiwan, 978-1-4244-1922-7/08, 2008 IEEE, 6 pages. [cited by applicant]
Optimizing NAND Flash Performance, Flash Memory Summit, Santa Clara, CA USA Aug. 2008, Ryan Fisher, pp. 1-23. [cited by applicant]
High-Speed NAND Flash: Design Considerations to Maximize Performance, Flash Memory Summit, Santa Clara, CA USA Aug. 11, 2009, , Robert Pierce, pp. 1-19. [cited by applicant]
NAND 201: An Update on the Continued Evolution of NAND Flash, Jim Cooke, Micron White Paper, Sep. 6, 2011, pp. 1-10. [cited by applicant]
Spansion SLC NAND Flash Memory for Embedded, data sheet, S34ML01G1, S34ML02G1, S34ML04G1, Sep. 6, 2012, pp. 1-73. [cited by applicant]
Wang et al., “An Efficient Design and Implementation of LSM-Tree based Key-Value Store on Open Channel SSD,” EuroSys '14 Proceedings of the Ninth European Conference on Computer Systems, Article No. 16, Apr. 14, 2014, 1… [cited by applicant]
Ouyang et al., “SDF: Software-defined flash for web-scale internet storage systems,” Computer Architecture News—ASPLOS '14, vol. 42 Issue 1, Mar. 2014, 14 pages. [cited by applicant]
Macko et al., “Tracking Back References in a Write-Anywhere File System,” FAST'10 Proceedings of the 8th USENIX conference on File and storage technologies, 14 pages, Feb. 23, 2010. [cited by applicant]
Ohad, Rodeh, “IBM Research Report Defragmentation Mechanisms for Copy-on-Write File-systems,” IBM white paper, Apr. 26, 2010, 10 pages, available at domino.watson.ibm.com/library/CyberDig.nsf/papers/298A0EF3C2CDB17B8525… [cited by applicant]
Michael Cornwell, “Anatomy of a solid-state drive,” Oct. 17, 2012, pp. 1-13, https://queue.acm.org/detail.cfm?id=2385276. [cited by applicant]
Kang et al., “A Superblock-based Flash Translation Layer for NAND Flash Memory,” EMSOFT'06, Seoul, Korea, Oct. 22, 2006, ACM 1-59593-542-8/06/0010, pp. 161-170. [cited by applicant]
TN-29-28: Memory Management in NAND Flash Arrays, Micron publication, 2005, 10 pages, available from https://www.micron.com/-/media/client/global/documents/products/technical-note/nand-flash/tn2928.pdf. [cited by applicant]
Park et al., “A Reconfigurable FTL (Flash Translation Layer) Architecture for NAND Flash-Based Applications,” 23 pages, ACM Transactions on Embedded Computing Systems, vol. 7, No. 4, Article 38, Publication date: Jul. 2… [cited by applicant]
Gupta et al., “DFTL: A Flash Translation Layer Employing Demand-based Selective Caching of Page-level Address Mappings,” ASPLOS'09, Mar. 7-11, 2009, Washington, DC, USA, 12 pages. [cited by applicant]
Ruia, Virtualization of Non-Volatile RAM, Texas A&M Masters Thesis, 77 pages, May 2015, available from: https://oaktrust.library.tamu.edu/bitstream/handle/1969.1/154981/RUIA-THESIS-2015.pdf?sequence=1&isAllowed=y. [cited by applicant]
Hsieh et al., “Efficient Identification of Hot Data for Flash Memory Storage Systems,”ACM Transactions on Storage, vol. 2, No. 1, Feb. 2006, 19 Pages (pp. 22-40). [cited by applicant]
Wu et al., “An Adaptive Two-Level Management for the Flash Translation Layer in Embedded Systems ,” https://dl.acm.org/doi/pdf/10.1145/1233501.1233624, Date of Publication: Nov. 9, 2006. [cited by applicant]
Grupp et al., “Characterizing Flash Memory: Anomalies, Observations, and Applications,” https://dl.acm.org/doi/pdf/10.1145/1669112.1669118, Dec. 16, 2006. [cited by applicant]
Huang et al., “Unified Address Translation for Memory-Mapped SSDs with FlashMap,” https://dl.acm.org/doi/10.1145/2749469.2750420, Jun. 15, 2015. [cited by applicant]
Bang et al., “A Memory Hierarchy-Aware Metadata Management Technique for Solid State Disks,” https://ieeexplore.ieee.org/document/6026485, Aug. 10, 2011. [cited by applicant]