IP Library Granted Patent US 11,194,473
Granted Patent B1
US 11,194,473 · App. 16/255,063 · Granted Dec 7, 2021

Programming frequently read data to low latency portions of a solid-state storage array

Inventors: Yijie Zhao (Milpitas, CA); Peter E. Kirkpatrick (Mountain View, CA); Andrew R. Bernat (Mountain View, CA)
Assignee: Pure Storage, Inc.
G06F3/0611G06F3/0607G06F3/0647G06F3/0658G06F3/0685G06F12/0868G11C11/4085
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 11,194,473
App. No.
16/255,063
Granted
Dec 7, 2021
Kind
B1
Abstract

A storage array controller may receive data to be programmed to a solid-state storage device of a plurality of solid-state storage devices. The storage array controller may identify a type of the data and determine whether to program the data to a low latency portion of the solid-state storage device based on the type of the data. In response to determining to program the data to the low latency portion of the solid-state storage device, the storage array controller may program the data to the low latency portion of the solid-state storage device.

Claims (47)

1. A system comprising:

a plurality of solid-state storage devices; and

a storage controller operatively coupled to the plurality of solid-state storage devices, the storage controller comprising a processing device, the processing device to:

identify a type of data to be stored at a solid-state storage device of the plurality of solid-state storage devices, wherein the type of data comprises metadata;

determine an expected read frequency for the data based on the type of the data;

determine whether to store the data at a low latency portion of the solid-state storage device based on the expected read frequency; and

add the data to a low latency segment stored at a buffer, the low latency segment comprising additional data to be stored at the low latency portion of the solid-state storage device upon determining that the data is to be stored at the low latency portion of the solid-state storage device; and

store the low latency segment comprising the data to the low latency portion of the solid-state storage device.

2. The system of claim 1 , wherein to store the data at the low latency portion of the solid-state storage device, the processing device is further to:

store the data at the low latency portion of the solid-state storage device in single-level cell (SLC) mode.

3. The system of claim 1 , wherein the type of data comprises a mapping table.

4. The system of claim 1 , wherein the processing device is further to:

store subsequent data of a second type at a high latency portion of the solid-state storage device, wherein the high latency portion of the solid-state storage device is associated with a higher latency than the low latency portion of the solid-state storage device.

5. The system of claim 4 , wherein to store the subsequent data at the high latency portion of the solid-state storage device, the processing device is further to:

store the data at the high latency portion of the solid-state storage device in quad-level cell (QLC) mode.

6. The system of claim 4 , wherein to store the subsequent data at the high latency portion of the solid-state storage device, the processing device is further to:

add the subsequent data to a high latency segment comprising additional data to be stored at the high latency portion of the solid-state storage device, wherein the subsequent data and the additional data of the high latency segment are to be stored at the high latency portion of the solid-state storage device.

7. The system of claim 4 , wherein the processing device is further to:

allocate a first portion of the solid-state storage device as the low latency portion and a second portion of the solid-state storage device as the high latency portion, wherein the allocation of the first portion and the second portion is performed prior to receiving the data to be stored at the solid-state storage device.

8. A method, comprising:

identifying, by a processing device of a storage controller, a type of data to be stored at a solid-state storage device of a plurality of solid-state storage devices, wherein the type of data comprises metadata;

determining an expected read frequency for the data based on the type of the data;

determining whether to store the data at a low latency portion of the solid-state storage device based on the expected read frequency; and

adding the data to a low latency segment stored at a buffer, the low latency segment comprising additional data to be stored at the low latency portion of the solid-state storage device upon determining that the data is to be stored at the low latency portion of the solid-state storage device; and

storing the low latency segment comprising the data to the low latency portion of the solid-state storage device.

9. The method of claim 8 , wherein storing the data at the low latency portion of the solid-state storage device further comprises:

store the data at the low latency portion of the solid-state storage device in single-level cell (SLC) mode.

10. The method of claim 8 , wherein the type of data comprises a mapping table.

11. The method of claim 8 , further comprising:

storing subsequent data of a second type at a high latency portion of the solid-state storage device, wherein the high latency portion of the solid-state storage device is associated with a higher latency than the low latency portion of the solid-state storage device.

12. The method of claim 11 , wherein to storing the subsequent data at the high latency portion of the solid-state storage device further comprises:

storing the data at the high latency portion of the solid-state storage device in quad-level cell (QLC) mode.

13. The method of claim 11 , wherein storing the subsequent data at the high latency portion of the solid-state storage device further comprises:

adding the subsequent data to a high latency segment comprising additional data to be stored at the high latency portion of the solid-state storage device, wherein the subsequent data and the additional data of the high latency segment are to be stored at the high latency portion of the solid-state storage device.

14. The method of claim 11 , further comprising:

allocating a first portion of the solid-state storage device as the low latency portion and a second portion of the solid-state storage device as the high latency portion, wherein the allocation of the first portion and the second portion is performed prior to receiving the data to be stored at the solid-state storage device.

15. A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device to:

identify a type of data to be stored at a solid-state storage device of a plurality of solid-state storage devices, wherein the type of data comprises deduplicated user data;

determine an expected read frequency for the data based on the type of the data;

determine, by the processing device, whether to store the data at a low latency portion of the solid-state storage device based on the expected read frequency;

add the data to a low latency segment stored at a buffer, the low latency segment comprising additional data to be stored at the low latency portion of the solid-state storage device upon determining that the data is to be stored at the low latency portion of the solid-state storage device; and

store the low latency segment comprising the data at the low latency portion of the solid-state storage device.

16. The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further to:

store subsequent data of a second type at a high latency portion of the solid-state storage device, wherein the high latency portion of the solid-state storage device is associated with a higher latency than the low latency portion of the solid-state storage device.

17. The non-transitory computer readable storage medium of claim 16 , wherein to store the data at the low latency portion of the solid-state storage device and the subsequent data at the high latency portion of the solid-state storage device, the processing device is further to:

store the data at the low latency portion of the solid-state storage device in single-level cell (SLC) mode and the subsequent data at the high latency portion of the solid-state storage device in quad-level cell (QLC) mode.

18. The non-transitory computer readable storage medium of claim 15 , wherein the low latency portion of the solid-state storage device is comprised of memory cells located on one or more edge word lines of the solid-state storage device.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2019
From: ZHAO, YIJIE; KIRKPATRICK, PETER E.; BERNAT, ANDREW R.
To: PURE STORAGE, INC.
Reel/Frame 048114/0693 →
Cited By (7)
US 12,193,206 US 12,282,686 US 12,386,700 US 12,468,450 US 12,481,607 US 12,499,043 US 12,537,054