IP Library › Granted Patent US 12,067,282
Granted Patent B2
US 12,067,282 · App. 17/831,339 · Granted Aug 20, 2024

Write path selection

Inventors: Ying Gao (San Jose, CA); Boris Feigin (San Francisco, CA); Hari Kannan (Sunnyvale, CA)
Assignee: PURE STORAGE, INC.
G06F3/0655G06F3/0604G06F3/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,067,282
App. No.
17/831,339
Granted
Aug 20, 2024
Kind
B2
Abstract

A storage system has NVRAM (nonvolatile random-access memory), storage memory that includes SLC (single level cell) flash memory and QLC (quad level cell) flash memory, and a processor. The processor performs a method that includes selecting one of a plurality of write paths for incoming data, and writing the incoming data via the selected write path. A first write path includes writing to NVRAM, writing from NVRAM to SLC flash memory and writing from SLC flash memory to QLC flash memory. A second write path includes writing to NVRAM and writing from NVRAM to QLC flash memory, bypassing SLC flash memory. A third write path includes writing to SLC flash memory, bypassing NVRAM, and writing from SLC flash memory to QLC flash memory.

Claims (62)

1. A method, comprising:

receiving incoming data, into a storage system;

selecting, by the storage system, on a dynamic basis upon arrival of the incoming data, one of a plurality of write paths for the incoming data, comprising:

a first write path comprising traversal of the incoming data from NVRAM (nonvolatile random-access memory) to SLC (single level cell) flash memory to QLC (quad level cell) flash memory;

a second write path comprising traversal of the incoming data from the NVRAM to the QLC flash memory, bypassing the SLC flash memory; and

a third write path comprising traversal of the incoming data to the SLC flash memory, bypassing the NVRAM, to the QLC flash memory; and

writing the incoming data into the storage system via the selected write path.

2. The method of claim 1 , further comprising:

allocating, by the storage system, a portion of flash memory to operate in SLC mode as a roaming region for the SLC flash memory.

3. The method of claim 1 , further comprising:

allocating a roaming region of a storage system flash memory as the SLC flash memory on a basis of at least one from a group consisting of: period of time-driven, wear-driven, even usage of available SLC flash memory, and system-guaranteed minimum performance level for SLC flash memory.

4. The method of claim 3 , wherein the allocating comprises cycling through flash memory of each of a plurality of solid-state storage drives (SSDs) of the storage system.

5. The method of claim 1 , wherein the SLC flash memory is a buffer in a time range of less than a threshold value for writing the incoming data to the QLC flash memory in the first write path and the third write path.

6. The method of claim 1 , wherein the selecting on the dynamic basis upon the arrival of the incoming data is based on storage system activity relative to the SLC flash memory.

7. The method of claim 1 , wherein the selecting is influenced according to at least one criterion from a group consisting of:

select the first write path when the SLC flash memory is busy;

select the second write path, including bypassing the SLC flash memory, when the SLC flash memory has greater than a threshold amount of wear;

select a write path based on capacity of at least one of the NVRAM, the SLC flash memory, and the QLC flash memory; and

select a write path based on fullness of at least one of the NVRAM, the SLC flash memory, and the QLC flash memory.

8. The method of claim 1 , further comprising:

allocating portions of the SLC flash memory with dynamic sizing, for the first write path and the third write path.

9. The method of claim 1 , further comprising:

writing out from the SLC flash memory to the QLC flash memory, for the first write path and the third write path, in response to space utilization of the SLC flash memory attaining a threshold.

10. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:

receiving incoming data, into a storage system;

selecting, by the storage system, on a dynamic basis upon arrival of the incoming data, one of a plurality of write paths for the incoming data, comprising:

a first write path comprising traversal of the incoming data from NVRAM (nonvolatile random-access memory) to SLC (single level cell) flash memory to QLC (quad level cell) flash memory;

a second write path comprising traversal of the incoming data from the NVRAM to the QLC flash memory, bypassing the SLC flash memory; and

a third write path comprising traversal of the incoming data to the SLC flash memory, bypassing the NVRAM, to the QLC flash memory; and

writing the incoming data into the storage system via the selected write path.

11. The computer-readable media of claim 10 , wherein the method further comprises:

allocating, by the storage system, a portion of flash memory to operate in SLC mode as a roaming region for the SLC flash memory.

12. The computer-readable media of claim 10 , wherein the SLC flash memory is to act as a buffer in a time range of less than a threshold value for writing the first data to the QLC flash memory in the first write path and the third write path.

13. The computer-readable media of claim 10 , wherein the selecting is influenced according to at least one criterion from a group consisting of:

select the first write path when the SLC flash memory is busy;

select the second write path, including bypassing the SLC flash memory, when the SLC flash memory has greater than a threshold amount of wear;

select a write path based on capacity of at least one of the NVRAM, the SLC flash memory, and the QLC flash memory; and

select a write path based on fullness of at least one of the NVRAM, the SLC flash memory, and the QLC flash memory.

14. The computer-readable media of claim 10 , wherein the method further comprises:

allocating portions of the SLC flash memory with dynamic sizing, for the first write path and the third write path.

15. A storage system, comprising:

storage memory, comprising SLC (single level cell) flash memory and QLC (quad level cell) flash memory;

NVRAM (nonvolatile random-access memory); and

a processor, to perform a method, comprising:

selecting, on a dynamic basis upon arrival of incoming data, one of a plurality of write paths for the incoming data, comprising:

a first write path comprising traversal of the incoming data from NVRAM (nonvolatile random-access memory) to SLC (single level cell) flash memory to QLC (quad level cell) flash memory;

a second write path comprising traversal of the incoming data from the NVRAM to the QLC flash memory, bypassing the SLC flash memory; and

a third write path comprising traversal of the incoming data to the SLC flash memory, bypassing the NVRAM, to the QLC flash memory; and

writing the incoming data via the selected write path.

16. The storage system of claim 15 , wherein the method further comprises:

allocating a portion of flash memory to operate in SLC mode as a roaming region to cycle through flash memory of the storage system, on a basis of at least one from a group consisting of: period of time-driven, wear-driven, even usage of available SLC flash memory, and system-guaranteed minimum performance level for the SLC flash memory.

17. The storage system of claim 15 , wherein the SLC flash memory is a buffer in a time range of less than a threshold value for writing the incoming data to the QLC flash memory in the first write path and the third write path.

18. The storage system of claim 15 , wherein the selecting is influenced according to at least one criterion from a group consisting of:

storage system activity relative to the SLC flash memory;

select the first write path when the SLC flash memory is busy;

select the second write path, including bypassing the SLC flash memory, when the SLC flash memory has greater than a threshold amount of wear;

select a write path based on capacity of one of the NVRAM, the SLC flash memory, and the QLC flash memory; and

select a write path based on fullness of one of the NVRAM, the SLC flash memory, and the QLC flash memory.

19. The storage system of claim 15 , wherein the method further comprises:

allocating portions of the SLC flash memory with dynamic sizing, for the first write path and the third write path.

20. The storage system of claim 15 , wherein the method further comprises:

writing out from the SLC flash memory to the QLC flash memory, for the first write path and the third write path, in response to space utilization of the SLC flash memory attaining a threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2024
From: GAO, YING; KANNAN, HARI; FEIGIN, BORIS
To: PURE STORAGE, INC.
Reel/Frame 068109/0640 →
Continuity (4)
Continuation In Part 17570340 · Jan 6, 2022
Continuation In Part 17512377 · Oct 27, 2021
Continuation In Part 17139460 · Dec 31, 2020
Related Publication 20220300193A1 · Sep 22, 2022
Cited By (1)
US 12,493,428