IP Library Granted Patent US 12,216,931
Granted Patent B1
US 12,216,931 · App. 18/412,919 · Granted Feb 4, 2025

Techniques for directed data migration

Inventors: Alan Chen (Simi Valley, CA); Craig Robertson (Simi Valley, CA); Robert Lercari (Thousand Oaks, CA); Andrey V. Kuzmin (Moscow, RU)
Assignee: Radian Memory Systems, LLC
G06F3/0655G06F3/061G06F3/0679
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,216,931
App. No.
18/412,919
Granted
Feb 4, 2025
Kind
B1
Abstract

A host stores “context” metadata for logical block addresses (LBAs) in a manner tied to physical location. Notwithstanding log-structured or copy on write processes, the host is then provided with immediate context when the host is called upon to assist a memory controller with data identified by physical location, for example, for memory reconfiguration, garbage collection, wear leveling or other processes. The metadata for example can provide the host with insight as to which data may be moved to enhance performance optimization and where that data can be placed. In one embodiment, the host writes back one or more references that span multiple layers of indirection in concert with write of the underlying data; in another embodiment, the context can point to other metadata.

Claims (67)

1. A storage device comprising:

an interface operable to communicate with a host;

flash memory having one or more namespaces and subdivisions, each of the subdivisions comprising one or more erase units;

logic operable to cause the storage device to:

receive via the interface, from a storage manager of the host, a query command and a write command, each of the query command and the write command being compatible with a non-volatile memory express (NVMe) command format;

transmit to the storage manager, via the interface, responsive to the query command, information representing the one or more namespaces and information representing the subdivisions;

receive via the interface, in association with the write command, write data, a designation of a given one of the one or more namespaces, a designation of a selected one of the subdivisions which is associated with the given one of the namespaces, and a logical block address (LBA);

store the write data in the one or more erase units of the flash memory which are associated with the selected one of the subdivisions,

track data validity information for the one or more erase units of flash memory which are associated with the selected one of the subdivisions; and

dependent on the data validity information, perform garbage collection in a manner dedicated to the selected one of the subdivisions;

wherein, as part of garbage collection, the logic is to cause the storage device to copy the write data to a destination erase unit of the flash memory, the destination erase unit being selected dependent on the selected one of the subdivisions; and

wherein said logic comprises at least one of (1) instructional logic stored on a physical storage medium that, when executed, is to control the operation of hardware circuitry of the storage device, or (2) hardware circuitry.

2. The storage device of claim 1 , wherein the logic is operable to cause the storage device to, in response to the query command:

identify the selected one of the subdivisions; and

transmit, to the host, information representing the selected one of the subdivisions.

3. The storage device of claim 2 , wherein the logic is operable to cause the storage device to, in response to the query command, explicitly identify the designation of the selected one of the subdivisions to the host.

4. The storage device of claim 1 , wherein the logic is operable to cause the storage device to, dependent on the data validity information: identify an erase unit of the flash memory which is fully released, and responsively control physical erasure of the identified erase unit.

5. The storage device of claim 1 , wherein the logic is operable to cause the storage device to receive, in association with the write command, a host-provided address, and to:

derive, from the host-provided address, a first address portion;

identify the given one of the one or more namespaces from the first address portion;

perform one or more operations to subdivide the host-provided address into a second address portion and a third address portion;

identify the selected one of the subdivisions from the second address portion; and

identify the LBA from the third address portion.

6. The storage device of claim 1 , wherein:

the interface is also to receive a read command from the storage manager, the read command being directed to the LBA; and

the logic is operable to cause the storage device to:

store into a look-up table a physical address which indicates a physical location at which the write data was stored;

in response to receipt of the read command, (1) use the LBA as an index into the look-up table to identify the physical address, (2) use the physical address to retrieve the write data, and (3) transmit the write data to the storage manager.

7. The storage device of claim 1 , wherein the logic is operable to cause the storage device to:

store a time associated with the selected one of the subdivisions; and

receive a request from the host for status information associated with the selected one of the subdivisions and responsively (1) identify the status information from the time and (2) transmit the status information to the host.

8. The storage device of claim 7 , wherein the time is associated with storage, by the storage device, of the write data into the flash memory.

9. The storage device of claim 1 , wherein the logic is operable to cause the storage device to store, for the selected one of the subdivisions, metadata representing an extent to which additional write data can be programmed into the one or more erase units which are associated with the selected one of the subdivisions without first erasing the one or more erase units which are associated with the selected one of the subdivisions.

10. The storage device of claim 9 , wherein the logic is operable to cause the storage device to transmit the metadata to the storage manager.

11. The storage device of claim 9 , wherein:

the query command is a first query command;

the interface is also to receive a second query command from the storage manager, via the interface;

responsive to the second query command, the logic is operable to cause the storage device to transmit, to the storage manager, via the interface, information dependent on the metadata.

12. The storage device of claim 1 , wherein the logic is operable to cause the storage device to, in response to the query command:

identify a size corresponding to the selected one of the subdivisions; and

transmit to a host information representing the size corresponding to the selected one of the subdivisions.

13. The storage device of claim 12 , wherein the size exactly corresponds to a non-power of two number of storage locations in the flash memory.

14. The storage device of claim 12 , wherein the size corresponds to a maximum writeable capacity for the selected one of the subdivisions.

15. The storage device of claim 1 , wherein the flash memory comprises planes, and wherein at least one of the subdivisions comprises erase units on different ones of the planes.

16. The storage device of claim 15 , wherein the erase units on different ones of the planes are also on at least two different dies.

17. The storage device of claim 15 , wherein the erase units on different ones of the planes are also all within a common die.

18. The storage device of claim 1 , wherein the logic is operable to cause the storage device to:

track metadata for each corresponding one of the subdivisions, wherein the metadata for each corresponding one of the subdivisions represents an extent to which the corresponding one of the subdivisions can continue to receive writeable data without first erasing the corresponding one of the subdivisions;

receive a maintenance command from a host, wherein the maintenance command specifies the selected one of the subdivisions; and

perform maintenance, responsive to the maintenance command, which changes the extent the corresponding one of the groups can continue to receive writeable data without first erasing the selected one of the subdivisions, and responsively update the metadata corresponding to the selected one of the subdivisions.

19. The storage device of claim 1 , wherein the logic is operable to cause the storage device to, responsive to receipt of a command from the host, dynamically control physical erasure of the one or more erase units associated with the specific one of the subdivisions.

20. An apparatus comprising:

a host having a storage manager; and

a solid state drive (SSD), the SSD comprising:

an interface operable to communicate with the host;

flash memory having one or more namespaces and subdivisions, each of the subdivisions comprising one or more erase units; and

logic operable to cause the storage device to:

receive via the interface, from the storage manager of the host, a query command and a write command, each of the query command and the write command being compatible with a non-volatile memory express (NVMe) command format;

transmit to the storage manager, via the interface, responsive to the query command, information representing the one or more namespaces and information representing the subdivisions;

receive via the interface, in association with the write command, write data, and host-provided address information;

derive, from the host-provided address information, a first address portion, and identify a given one of the one or more namespaces from the first address portion;

perform one or more operations to subdivide the host-provided address information into a second address portion and a third address portion, and to identify a selected one of the subdivisions from the second address portion and a logical block address (LBA) from the third address portion; and

store the write data in the one or more erase units of the flash memory which are associated with the selected one of the subdivisions,

track data validity information for the one or more erase units of flash memory which are associated with the selected one of the subdivisions; and

dependent on the data validity information, perform garbage collection in a manner dedicated to the selected one of the subdivisions;

wherein, as part of garbage collection, the logic is to cause the storage device to copy the write data to a destination erase unit of the flash memory, the destination erase unit being selected dependent on the selected one of the subdivisions; and

wherein said logic comprises at least one of (1) instructional logic stored on a physical storage medium that, when executed, is to control the operation of hardware circuitry of the storage device, or (2) hardware circuitry.

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 Jan 15, 2024
From: KUZMIN, ANDREY V.; ROBERTSON, CRAIG; LERCARI, ROBERT; CHEN, ALAN
To: RADIAN MEMORY SYSTEMS, INC.
Reel/Frame 066305/0965 →
Continuity (9)
Continuation 17948161 · Sep 19, 2022
Continuation 17176035 · Feb 15, 2021
Continuation 16702736 · Dec 4, 2019
Continuation 15211939 · Jul 15, 2016
Continuation In Part 14848273 · Sep 8, 2015
Provisional Application 62241429 · Oct 14, 2015
Provisional Application 62199969 · Jul 31, 2015
Provisional Application 62194172 · Jul 17, 2015
Provisional Application 62048162 · Sep 9, 2014
References Cited (217)
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 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 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 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 8195912B2 · Flynn · 2012 [cited by applicant]
US 8219776B2 · Forhan · 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 8572331B2 · Shalvi · 2013 [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 9171585B2 · Rajan · 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 9432298B1 · Smith · 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 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 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 10642505B1 · Kuzmin et al. · 2020 [cited by applicant]
US 11068408B2 · Kim · 2021 [cited by applicant]
US 11481144B1 · Chen · 2022 [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 20050073884A1 · Gonzalez · 2005 [cited by applicant]
US 20050144413A1 · Kuo et al. · 2005 [cited by applicant]
US 20060022171A1 · Maeda et al. · 2006 [cited by applicant]
US 20070058431A1 · Chung et al. · 2007 [cited by applicant]
US 20070233939A1 · Kim · 2007 [cited by applicant]
US 20070260811A1 · Merry et al. · 2007 [cited by applicant]
US 20070283428A1 · Ma et al. · 2007 [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 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 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 applicant]
US 20100241866A1 · Rodorff · 2010 [cited by applicant]
US 20100262761A1 · Borchers et al. · 2010 [cited by applicant]
US 20100281230A1 · Rabii et al. · 2010 [cited by applicant]
US 20100287217A1 · Borchers et al. · 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 20110040927A1 · Fuxa · 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 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 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 20120059972A1 · Chen · 2012 [cited by applicant]
US 20120066441A1 · Weingarten · 2012 [cited by applicant]
US 20120131381A1 · Eleftheriou · 2012 [cited by applicant]
US 20120204079A1 · Takefman et al. · 2012 [cited by applicant]
US 20120221776A1 · Yoshihashi · 2012 [cited by applicant]
US 20120221781A1 · Frost · 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 20130124793A1 · Gyl et al. · 2013 [cited by applicant]
US 20130166825A1 · Kim et al. · 2013 [cited by applicant]
US 20130227201A1 · Talagala · 2013 [cited by applicant]
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 20140047210A1 · Cohen · 2014 [cited by applicant]
US 20140047300A1 · Liang · 2014 [cited by applicant]
US 20140068197A1 · Joshi · 2014 [cited by applicant]
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 20140215129A1 · Kuzmin et al. · 2014 [cited by applicant]
US 20150113203A1 · Dancho 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 20150261456A1 · Alcantara et al. · 2015 [cited by applicant]
US 20150324264A1 · Vidypoornachy et al. · 2015 [cited by applicant]
US 20150347296A1 · Kotte et al. · 2015 [cited by applicant]
US 20160018998A1 · Mohan et al. · 2016 [cited by applicant]
US 20160019148A1 · Vekiarides · 2016 [cited by applicant]
US 20160253091A1 · Ayyavu · 2016 [cited by applicant]
US 20160342463A1 · Oshima · 2016 [cited by examiner]
US 20160357462A1 · Nam et al. · 2016 [cited by applicant]
US 20160364179A1 · Tsai et al. · 2016 [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]
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]
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]
Lafi, Walid, et al., “High-level modeling and performance evaluation of address mapping in NAND flash memory,” Jan. 2011, vol. 60-1, IEEE 978-1-4244-5091, pp. 659-662. [cited by applicant]
Im, Soojun et al., “Flash-aware RAID techniques for dependable and high-performance flash memory SSD,” IEEE Transactions on Computers, pp. 80-82. [cited by applicant]
Kim, Jae-Hong et al., “A methodology for extracting performance parameters in solid state disks (SSDs),” 2009 IEEE International Symposium on Modeling, Analysis & Simulation of Computer and Telecommunication Systems, De… [cited by applicant]