IP Library Granted Patent US 12,306,766
Granted Patent B1
US 12,306,766 · App. 18/412,906 · Granted May 20, 2025

Hierarchical storage device with host controlled subdivisions

Inventors: Robert Lercari (Thousand Oaks, CA); Alan Chen (Simi Valley, CA); Mike Jadon (Manhattan Beach, CA); Craig Robertson (Simi Valley, CA); Andrey V. Kuzmin (Moscow, RU)
Assignee: Radian Memory Systems, ILLC
G06F12/1009G06F3/0616G06F3/064G06F3/0688G06F12/0207G06F12/0246G06F12/109G06F3/0659G06F3/0662G06F2212/1016G06F2212/7201G06F2212/7202G06F2212/7205
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,306,766
App. No.
18/412,906
Granted
May 20, 2025
Kind
B1
Abstract

This disclosure provides techniques hierarchical address virtualization within a memory controller and configurable block device allocation. By performing address translation only at select hierarchical levels, a memory controller can be designed to have predictable I/O latency, with brief or otherwise negligible logical-to-physical address translation time. In one embodiment, address transition may be implemented entirely with logical gates and look-up tables of a memory controller integrated circuit, without requiring processor cycles. The disclosed virtualization scheme also provides for flexibility in customizing the configuration of virtual storage devices, to present nearly any desired configuration to a host or client.

Claims (94)

1. A solid state storage drive (SSD) comprising:

an interface that employs a non-volatile memory express (NVMe) command format to communicate with a storage manager of a host;

flash memory having physical planes, wherein the flash memory is logically organized so as to have block devices, and for a given one of the block devices, segments, each of the segments mapped to a respective, mutually-exclusive subset of erase units, including erase units that are on different ones of the physical planes, and each segment having a respective set of logical block addresses (LBAs); and

logic operable to cause the SSD to:

receive via the interface, from the storage manager of the host, write commands, wherein the write commands are directed to a specific one of the segments, wherein the write commands direct programming of data for a numerically-consecutive subset of LBAs from the set of LBAs which is respective to the specific one of the segments;

for each one of the numerically-consecutive LBAs:

derive from incoming host-provided address information a first address portion and a second address portion;

identify from the first address portion the given one of the block devices;

perform one or more operations to subdivide the second address portion to identify the specific one of the segments and a storage location within the addressed segment;

derive a common physical page address; and

program data corresponding to the numerically-consecutive subset of LBAs into the erase units that are on the different ones of the physical planes using the common physical page address, in a manner such that the programming of the data corresponding to the numerically-consecutive subset of LBAs is at least partially concurrent in time; and

receive via the interface, from the storage manager of the host, a maintenance command directed to a specific one of the segments, and in response to the maintenance command, physically erase each of the erase units in the respective, mutually-exclusive subset which is mapped to the specific one of the segments;

wherein said logic comprises at least one of hardware circuitry or instructions stored on at least one physical storage medium that, when executed, are to control operation of hardware circuitry.

2. The SSD of claim 1 , wherein the logic is further operable to cause the SSD to, during the erasure of the erase units which is responsive to the maintenance command, detect a failure condition of a specific one of the physical erase units which is both in the respective, mutually-exclusive subset which is mapped to the specific one of the segments and which is on a specific one of the physical planes and, in response to detection of the failure condition, map the specific segment to a new physical erase unit which is on the specific one of the physical planes, the new physical erase unit being distinct from the respective sets of the physical erase units, the new physical erase unit is mapped only to the specific segment, and not to any other one of the segments.

3. The SSD of claim 1 , wherein the logic is further operable to cause the SSD to:

store metadata which is respective to each of the segments;

unsolicitedly update the metadata as an automated response to data access operations in the SSD;

via the interface, receive a query command from the storage manager;

in response to the query command, identify information which is dependent on the unsolicitedly updated metadata and transmit the information to the storage manager; and

via the interface, receive and execute one or more commands, from the storage manager, which are dependent on the transmitted information.

4. The SSD of claim 3 , wherein the information transmitted to the storage manager indicates an extent to which the erase units in the respective, mutually-exclusive subset which is mapped to the specific one of the segments are full.

5. The SSD of claim 3 , wherein:

the metadata indicates an extent to which the erase units in the respective, mutually-exclusive subset which is mapped to the specific one of the segments are full;

the logic is operable to cause the SSD to detect, based on the metadata, when the extent satisfies a threshold condition; and

the information transmitted to the storage manager both identifies the specific one of the segments and indicates the threshold condition.

6. The SSD of claim 5 wherein the one or more commands comprise the maintenance command.

7. The SSD of claim 1 , wherein the logic is further operable to cause the SSD to:

store metadata which is respective to each of the segments;

unsolicitedly update the metadata as an automated response to data access operations in the SSD; and

transmit, to the storage manager, information which is dependent on the unsolicitedly updated metadata, wherein the transmitted information corresponds to a given one of the segments.

8. The SSD of claim 7 wherein the transmitted information explicitly identifies the given one of the segments, and indicates a need for maintenance for the given one of the segments.

9. The SSD of claim 7 , wherein the information transmitted to the storage manager indicates an extent to which the erase units in the respective, mutually-exclusive subset which is mapped to the given one of the segments are full.

10. The SSD of claim 7 , wherein:

the metadata indicates an extent to which the erase units in the respective, mutually-exclusive subset which is mapped to the given one of the segments are full;

the logic is operable to cause the SSD to detect, based on the metadata, when the extent satisfies a threshold condition; and

the information transmitted to the storage manager both identifies the given one of the segments and indicates the threshold condition.

11. The SSD of claim 7 wherein the metadata respective to the given one of the segments comprises a time measure.

12. The storage device of claim 1 , wherein:

the SSD further comprises at least one register to store a capacity, for at least one of the segments, representing a minimum amount of storage space that is to be physically erased; and

the logic is further operable to cause the SSD to:

transmit, to the storage manager, information which conveys the capacity;

via the interface, receive and execute at least one command from the storage manager; and

in response to the at least one command, physically erase the erase units in the respective, mutually-exclusive subset which is mapped to the at least one of the segments.

13. The SSD of claim 1 , wherein:

the SSD further comprises at least one register to store a capacity, for at least one of the segments; and

the capacity can be defined to be exactly equal to a non-power of two number of storage locations.

14. The SSD of claim 1 , wherein:

the interface is also to receive incoming data read requests which each specify corresponding read address information and which are targeted to the given one of the block devices and the specific one of the segments; and

the logic is operable to cause the SSD to, for each of the incoming data read requests:

derive, from the corresponding read address information, a first read address portion and a second read address portion;

identify from the first read address portion the given one of the block devices;

perform one or more operations to subdivide the second read address portion to identify the specific one of the segments and a read data storage location within the specific one of the segments; and

service the corresponding incoming data read request by retrieving read data from the read data storage location and transmitting the retrieved read data to the storage manager.

15. The SSD of claim 1 , wherein the logic is further operable to cause the SSD to:

store metadata which is respective to each of the segments;

unsolicitedly update the metadata as an automated response to data access operations in the SSD;

transmit, to the storage manager, information which is dependent on the unsolicitedly updated metadata, wherein the transmitted information corresponds to a given one of the segments; and

receive, via the interface, one or more commands, from the storage manager, and responsively reset metadata corresponding to the given one of the segments, as a function of executing the one or more commands.

16. The SSD of claim 1 , wherein:

the flash memory comprises flash memory dies;

the erase units in the respective, mutually-exclusive subset which is mapped to the specific one of the segments are in a number of the flash memory dies; and

for each corresponding one of the numerically-consecutive LBAs, the one or more operations include a division operation, performed on at least a portion of the corresponding one the numerically-consecutive LBAs, using an operand that is, at least in part, dependent on the number of flash memory dies, to derive therefrom the common page address.

17. The SSD of claim 1 , wherein at least one of the segments is mapped to erase units in at least four different ones of the physical planes.

18. An apparatus comprising:

a host having a storage manager; and

a solid state storage drive (SSD) comprising:

an interface that employs a non-volatile memory express (NVMe) command format to communicate with the storage manager;

flash memory having physical planes, wherein the flash memory is logically organized so as to have block devices, and for a given one of the block devices, segments, each of the segments mapped to a respective, mutually-exclusive subset of erase units, including erase units that are on different ones of the physical planes, and each segment having a respective set of logical block addresses (LBAs); and

logic operable to cause the SSD to:

receive via the interface, from the storage manager of the host, write commands, wherein the write commands are directed to a specific one of the segments, wherein the write commands direct programming of data for a numerically-consecutive subset of LBAs from the set of LBAs which is respective to the specific one of the segments;

for each one of the numerically-consecutive LBAs:

derive from incoming host-provided address information a first address portion and a second address portion;

identify from the first address portion the given one of the block devices;

perform one or more operations to subdivide the second address portion to identify the specific one of the segments and a storage location within the addressed segment;

derive a common physical page address; and

program data corresponding to the numerically-consecutive subset of LBAs into the erase units that are on the different ones of the physical planes using the common physical page address, in a manner such that the programming of the data corresponding to the numerically-consecutive subset of LBAs is at least partially concurrent in time; and

receive via the interface, from the storage manager of the host, a maintenance command directed to a specific one of the segments, and in response to the maintenance command, physically erase each of the erase units in the respective, mutually-exclusive subset which is mapped to the specific one of the segments;

wherein said logic comprises at least one of hardware circuitry or instructions stored on at least one physical storage medium that, when executed, are to control operation of hardware circuitry.

19. The apparatus of claim 18 , wherein the logic is further operable to cause the SSD to, during the erasure of the erase units which is responsive to the maintenance command, detect a failure condition of a specific one of the physical erase units which is both in the respective, mutually-exclusive subset which is mapped to the specific one of the segments and which is on a specific one of the physical planes and, in response to detection of the failure condition, map the specific segment to a new physical erase unit which is on the specific one of the physical planes, the new physical erase unit being distinct from the respective sets of the physical erase units, the new physical erase unit is mapped only to the specific segment, and not to any other one of the segments.

20. The apparatus of claim 18 , wherein the logic is further operable to cause the SSD to:

store metadata which is respective to each of the segments;

unsolicitedly update the metadata as an automated response to data access operations in the SSD;

via the interface, receive a query command from the storage manager;

in response to the query command, identify information which is dependent on the unsolicitedly updated metadata and transmit the information to the storage manager; and

via the interface, receive and execute one or more commands, from the storage manager, which are dependent on the transmitted information.

21. The apparatus of claim 18 , wherein the logic is further operable to cause the SSD to:

store metadata which is respective to each of the segments;

unsolicitedly update the metadata as an automated response to data access operations in the SSD; and

transmit, to the storage manager, information which is dependent on the unsolicitedly updated metadata, wherein the transmitted information corresponds to a given one of the segments.

22. The apparatus of claim 21 , wherein:

the metadata indicates an extent to which the erase units in the respective, mutually-exclusive subset which is mapped to the given one of the segments are full;

the logic is operable to cause the SSD to detect, based on the metadata, when the extent satisfies a threshold condition;

the information transmitted to the storage manager both identifies the given one of the segments and indicates the threshold condition; and

the storage manager is to transmit, to the SSD, at least one command in a manner responsive to the information transmitted to the storage manager by the SSD.

Assignments (3)
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; JADON, MIKE; CHEN, ALAN
To: RADIAN MEMORY SYSTEMS, LLC
Reel/Frame 066121/0947 →
CHANGE OF NAME Recorded Jan 15, 2024
From: RADIAN MEMORY SYSTEMS, LLC
To: RADIAN MEMORY SYSTEMS, INC.
Reel/Frame 066305/0971 →
Continuity (12)
Continuation 18140938 · Apr 28, 2023
Continuation 17377754 · Jul 16, 2021
Continuation 17213015 · Mar 25, 2021
Continuation 16841402 · Apr 6, 2020
Continuation 15690006 · Aug 29, 2017
Continuation 15074778 · Mar 18, 2016
Continuation 14880529 · Oct 12, 2015
Continuation In Part 14848273 · Sep 8, 2015
Provisional Application 62194172 · Jul 17, 2015
Provisional Application 62063357 · Oct 13, 2014
Provisional Application 62199969 · Jul 31, 2015
Provisional Application 62048162 · Sep 9, 2014
References Cited (400)
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 5963977A · Gold · 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 6381668B1 · Lunteren · 2002 [cited by applicant]
US 6430650B1 · Miyauchi · 2002 [cited by applicant]
US 6571312B1 · Sugai · 2003 [cited by applicant]
US 6892287B1 · Millard · 2005 [cited by applicant]
US 7096378B2 · Stence et al. · 2006 [cited by applicant]
US 7120729B2 · Gonzalez · 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 7519869B2 · Mizuno · 2009 [cited by applicant]
US 7552272B2 · Gonzalez · 2009 [cited by applicant]
US 7555628B2 · Bennett · 2009 [cited by applicant]
US 7581078B2 · Ware · 2009 [cited by applicant]
US 7702846B2 · Nakanishi et al. · 2010 [cited by applicant]
US 7702948B1 · Kalman · 2010 [cited by applicant]
US 7710777B1 · Mintierth · 2010 [cited by applicant]
US 7747813B2 · Danilak · 2010 [cited by applicant]
US 7752381B2 · Wong · 2010 [cited by applicant]
US 7801561B2 · Parikh et al. · 2010 [cited by applicant]
US 7809900B2 · Danilak · 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 7904619B2 · Danilak · 2011 [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 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 8069284B2 · Oh · 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 8099581B2 · Bennett · 2012 [cited by applicant]
US 8099632B2 · Tringali · 2012 [cited by applicant]
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 8341339B1 · Boyle · 2012 [cited by applicant]
US 8347042B2 · You · 2013 [cited by applicant]
US 8402249B1 · Zhu · 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 8601202B1 · Melcher · 2013 [cited by applicant]
US 8626989B2 · Van Aken · 2014 [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 8898410B1 · Ehrenberg · 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 9063844B2 · Higgins · 2015 [cited by applicant]
US 9123443B2 · Chung · 2015 [cited by applicant]
US 9134918B2 · Yurzola · 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 9348749B2 · Choi · 2016 [cited by applicant]
US 9378149B1 · Bonwick · 2016 [cited by applicant]
US 9383926B2 · Law · 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 10642505B1 · Kuzmin · 2020 [cited by applicant]
US 10642748B1 · Lercari · 2020 [cited by applicant]
US 10838853B1 · Kuzmin · 2020 [cited by applicant]
US 10884915B1 · Kuzmin · 2021 [cited by applicant]
US 10915458B1 · Lercari · 2021 [cited by applicant]
US 10956082B1 · Kuzmin · 2021 [cited by applicant]
US 10977188B1 · Lercari · 2021 [cited by applicant]
US 10983907B1 · Kuzmin · 2021 [cited by applicant]
US 10996863B1 · Kuzmin · 2021 [cited by applicant]
US 11003586B1 · Lercari · 2021 [cited by applicant]
US 11023315B1 · Jadon · 2021 [cited by applicant]
US 11023386B1 · Lercari · 2021 [cited by applicant]
US 11023387B1 · Lercari · 2021 [cited by applicant]
US 11048643B1 · Lercari · 2021 [cited by applicant]
US 11068408B2 · Kim · 2021 [cited by applicant]
US 11074175B1 · Kuzmin · 2021 [cited by applicant]
US 11080181B1 · Kuzmin · 2021 [cited by applicant]
US 11086789B1 · Lercari · 2021 [cited by applicant]
US 11100006B1 · Lercari · 2021 [cited by applicant]
US 11175984B1 · Lercari · 2021 [cited by applicant]
US 11188457B1 · Kuzmin · 2021 [cited by applicant]
US 11216365B1 · Kuzmin · 2022 [cited by applicant]
US 11221959B1 · Lercari · 2022 [cited by applicant]
US 11221960B1 · Lercari · 2022 [cited by applicant]
US 11221961B1 · Lercari · 2022 [cited by applicant]
US 11307995B1 · Lercari · 2022 [cited by applicant]
US 11347656B1 · Lercari · 2022 [cited by applicant]
US 11347657B1 · Lercari · 2022 [cited by applicant]
US 11347658B1 · Lercari · 2022 [cited by applicant]
US 11416413B1 · Lercari · 2022 [cited by applicant]
US 11449240B1 · Jadon · 2022 [cited by applicant]
US 11449436B1 · Lercari · 2022 [cited by applicant]
US 11487678B2 · Park · 2022 [cited by applicant]
US 11500766B2 · Bueb · 2022 [cited by applicant]
US 11544183B1 · Kuzmin · 2023 [cited by applicant]
US 11580030B2 · Das · 2023 [cited by applicant]
US 20030028733A1 · Tsunoda et al. · 2003 [cited by applicant]
US 20030037071A1 · Harris · 2003 [cited by applicant]
US 20030065866A1 · Spencer · 2003 [cited by applicant]
US 20030188032A1 · Solomon · 2003 [cited by applicant]
US 20040083335A1 · Gonzalez · 2004 [cited by applicant]
US 20050073844A1 · Gonzalez · 2005 [cited by applicant]
US 20050073884A1 · Gonzalez · 2005 [cited by applicant]
US 20050144413A1 · Kuo et al. · 2005 [cited by applicant]
US 20050160227A1 · Todd · 2005 [cited by applicant]
US 20060004957A1 · Hand, III · 2006 [cited by applicant]
US 20060022171A1 · Maeda et al. · 2006 [cited by applicant]
US 20070019481A1 · Park · 2007 [cited by applicant]
US 20070046681A1 · Nagashima · 2007 [cited by applicant]
US 20070058431A1 · Chung et al. · 2007 [cited by applicant]
US 20070091497A1 · Mizuno · 2007 [cited by applicant]
US 20070136555A1 · Sinclair · 2007 [cited by applicant]
US 20070143569A1 · Sanders · 2007 [cited by applicant]
US 20070168321A1 · Saito · 2007 [cited by applicant]
US 20070233939A1 · Kim · 2007 [cited by applicant]
US 20070260811A1 · Merry, Jr. et al. · 2007 [cited by applicant]
US 20070260841A1 · Hampel · 2007 [cited by applicant]
US 20070283428A1 · Ma et al. · 2007 [cited by applicant]
US 20080005502A1 · Kanai · 2008 [cited by applicant]
US 20080034153A1 · Lee · 2008 [cited by applicant]
US 20080082596A1 · Gorobets · 2008 [cited by applicant]
US 20080126720A1 · Danilak · 2008 [cited by applicant]
US 20080126724A1 · Danilak · 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 20080201517A1 · Kuhne · 2008 [cited by applicant]
US 20080209114A1 · Chow · 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 20090044190A1 · Tringali · 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 20090119529A1 · Kono · 2009 [cited by applicant]
US 20090138671A1 · Danilak · 2009 [cited by applicant]
US 20090144497A1 · Withers · 2009 [cited by applicant]
US 20090172219A1 · Mardiks · 2009 [cited by applicant]
US 20090172246A1 · Afriat · 2009 [cited by applicant]
US 20090172250A1 · Allen et al. · 2009 [cited by applicant]
US 20090172257A1 · Prins et al. · 2009 [cited by applicant]
US 20090172499A1 · Olbrich · 2009 [cited by applicant]
US 20090182964A1 · Greiner · 2009 [cited by applicant]
US 20090198946A1 · Ebata · 2009 [cited by applicant]
US 20090210616A1 · Karamcheti · 2009 [cited by applicant]
US 20090210636A1 · Karamcheti · 2009 [cited by applicant]
US 20090216992A1 · Greiner · 2009 [cited by applicant]
US 20090240903A1 · Sauber · 2009 [cited by applicant]
US 20090254689A1 · Karamcheti · 2009 [cited by applicant]
US 20090254705A1 · Abali et al. · 2009 [cited by applicant]
US 20090271562A1 · Sinclair · 2009 [cited by applicant]
US 20090292839A1 · Oh · 2009 [cited by applicant]
US 20090300015A1 · Kazan et al. · 2009 [cited by applicant]
US 20090327602A1 · Moore et al. · 2009 [cited by applicant]
US 20100011085A1 · Taguchi · 2010 [cited by applicant]
US 20100011186A1 · Bennett · 2010 [cited by applicant]
US 20100191779A1 · Hinrichs · 2010 [cited by applicant]
US 20100030946A1 · Kano · 2010 [cited by applicant]
US 20100042655A1 · Tse et al. · 2010 [cited by applicant]
US 20100083050A1 · Ohyama · 2010 [cited by applicant]
US 20100106734A1 · Calder · 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 20100211737A1 · Flynn · 2010 [cited by applicant]
US 20100241866A1 · Rodorff · 2010 [cited by applicant]
US 20100262761A1 · Borchers et al. · 2010 [cited by applicant]
US 20100262762A1 · Borchers · 2010 [cited by applicant]
US 20100262765A1 · Cheon · 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 20110066792A1 · Shaeffer · 2011 [cited by applicant]
US 20110125956A1 · Danilak · 2011 [cited by applicant]
US 20110138114A1 · Yen · 2011 [cited by applicant]
US 20110153817A1 · Maita · 2011 [cited by applicant]
US 20110153911A1 · Sprouse · 2011 [cited by applicant]
US 20110161784A1 · Sellinger et al. · 2011 [cited by applicant]
US 20110167199A1 · Danilak · 2011 [cited by applicant]
US 20110197014A1 · Yeh · 2011 [cited by applicant]
US 20110197023A1 · Iwamitsu et al. · 2011 [cited by applicant]
US 20110231623A1 · Goss · 2011 [cited by applicant]
US 20110238890A1 · Sukegawa · 2011 [cited by applicant]
US 20110238892A1 · Tsai · 2011 [cited by applicant]
US 20110238943A1 · Devendran et al. · 2011 [cited by applicant]
US 20110264843A1 · Haines · 2011 [cited by applicant]
US 20110276756A1 · Bish et al. · 2011 [cited by applicant]
US 20110283043A1 · Schuette · 2011 [cited by applicant]
US 20110296089A1 · Seol · 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 20120072645A1 · Olbrich · 2012 [cited by applicant]
US 20120079174A1 · Nellans · 2012 [cited by applicant]
US 20120131270A1 · Hemmi · 2012 [cited by applicant]
US 20120131381A1 · Eleftheriou · 2012 [cited by applicant]
US 20120155492A1 · Abel · 2012 [cited by applicant]
US 20120159037A1 · Kwon · 2012 [cited by applicant]
US 20120159039A1 · Kegel et al. · 2012 [cited by applicant]
US 20120191921A1 · Shaeffer · 2012 [cited by applicant]
US 20120198128A1 · Van Aken · 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 20120303875A1 · Benhase · 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 20130024460A1 · Peterson · 2013 [cited by applicant]
US 20130073793A1 · Yamagishi · 2013 [cited by applicant]
US 20130073816A1 · Seo et al. · 2013 [cited by applicant]
US 20130097236A1 · Khorashadi · 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 20130145111A1 · Murukani · 2013 [cited by applicant]
US 20130166824A1 · Shim · 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 20130275682A1 · Ramanujan · 2013 [cited by applicant]
US 20130282955A1 · Parker · 2013 [cited by applicant]
US 20130290619A1 · Knight · 2013 [cited by applicant]
US 20130297852A1 · Fai et al. · 2013 [cited by applicant]
US 20130297880A1 · Flynn · 2013 [cited by applicant]
US 20130326117A1 · Aune · 2013 [cited by applicant]
US 20130332656A1 · Kandiraju · 2013 [cited by applicant]
US 20130339580A1 · Brandt · 2013 [cited by applicant]
US 20140040550A1 · Nale · 2014 [cited by applicant]
US 20140047210A1 · Cohen · 2014 [cited by examiner]
US 20140047300A1 · Liang · 2014 [cited by applicant]
US 20140101371A1 · Nguyen et al. · 2014 [cited by applicant]
US 20140122781A1 · Smith · 2014 [cited by examiner]
US 20140189207A1 · Sinclair · 2014 [cited by applicant]
US 20140189209A1 · Sinclair et al. · 2014 [cited by applicant]
US 20140195725A1 · Bennett · 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 20140237168A1 · Prins · 2014 [cited by applicant]
US 20140297949A1 · Nagawaka · 2014 [cited by applicant]
US 20140317346A1 · Moon · 2014 [cited by applicant]
US 20150046670A1 · Kim · 2015 [cited by applicant]
US 20150067297A1 · Arroyo et al. · 2015 [cited by applicant]
US 20150113203A1 · Dancho 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 20150263978A1 · Olson · 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 20150347291A1 · Choi · 2015 [cited by applicant]
US 20150347296A1 · Kotte et al. · 2015 [cited by applicant]
US 20150355965A1 · Peddle · 2015 [cited by applicant]
US 20150363120A1 · Chen · 2015 [cited by applicant]
US 20150378613A1 · Koseki · 2015 [cited by applicant]
US 20150378886A1 · Nemazie · 2015 [cited by applicant]
US 20160011818A1 · Hashimoto · 2016 [cited by examiner]
US 20160018998A1 · Mohan et al. · 2016 [cited by applicant]
US 20160019148A1 · Vekiarides · 2016 [cited by applicant]
US 20160019159A1 · Ueda · 2016 [cited by applicant]
US 20160026564A1 · Manning · 2016 [cited by examiner]
US 20160034221A1 · Zettsu · 2016 [cited by applicant]
US 20160070496A1 · Cohen · 2016 [cited by applicant]
US 20160092116A1 · Liu · 2016 [cited by applicant]
US 20160147669A1 · Huang · 2016 [cited by applicant]
US 20160179664A1 · Camp · 2016 [cited by applicant]
US 20160202910A1 · Ravimohan · 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 20170075620A1 · Yamamoto · 2017 [cited by applicant]
US 20170109078A1 · Shaharabany · 2017 [cited by applicant]
US 20170139838A1 · Tomlin · 2017 [cited by applicant]
US 20170192901A1 · Coffin · 2017 [cited by applicant]
US 20170199703A1 · Ravimohan · 2017 [cited by applicant]
US 20170220287A1 · Wei · 2017 [cited by applicant]
US 20170364445A1 · Allison · 2017 [cited by applicant]
US 20180046480A1 · Dong · 2018 [cited by examiner]
US 20200363996A1 · Kanno · 2020 [cited by applicant]
US 20210064293A1 · Cho · 2021 [cited by applicant]
JP 2001051889A · 2001 [cited by applicant]
JP 2011123863A · 2011 [cited by applicant]
JP 2011203916A · 2011 [cited by applicant]
WO 2009100149A1 · 2009 [cited by applicant]
WO WO2010027983A1 · 2010 [cited by applicant]
Y.. Hu et al., “Achieving page-mapping FTL performance at block-mapping FTL cost by hiding address translation,” 2010 IEEE 26th Symposium On Mass Storage Systems And Technologies (MSST), 2010, pp. 1-12. [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, 14… [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]
Chang et al., “An efficient FTL design for multi-chipped solid-state drives,” 2010 IEEE 16th Int'l. Conference on Embedded and Real-Time Computing Systems and Applications, 2010, pp. 237-246. [cited by applicant]
RD527033 A, RD, Mar. 2008. [cited by applicant]
C. Kuo et al., “Detecting Solid-State Disk Geometry for Write Pattern Optimization,” 2011 IEEE 17th International Conference on Embedded and Real-Time Computing Systems and Applications, 2011, pp. 89-94. [cited by applicant]
S. Im and D. Shin, “Flash-aware RAID techniques for dependable and high-performance flash memory SSD,” IEEE Transactions On Computers, V. 60, No. 1, pp. 80-92, Jan. 2011. [cited by applicant]
J. Kim 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, 2009, pp.… [cited by applicant]
W. Lafi et al., “High level modeling and performance evaluation of address mapping in NAND flash memory,” 2009 16th IEEE International Conference on Electronics, Circuits and Systems (ICECS 2009), Yasmine Hammamet, 2009… [cited by applicant]
Tennison, RD, “Memory space mapping using virtual addressing to multiple sized memory units,” IP.com, prior art database technical disclosure, Aug. 1, 1975. [cited by applicant]
Y. Hu et al., “Achieving page-mapping FTL performance at block-mapping FTL cost by hiding address translation,” 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST), Incline Village, NV, USA, May 3, … [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]