IP Library › Granted Patent US 12,405,742
Granted Patent B2
US 12,405,742 · App. 18/442,851 · Granted Sep 2, 2025

Optimized read request processing for relocated data

Inventors: Andrew Bernat (Mountain View, CA); Peter Kirkpatrick (Los Altos, CA); Gordon Coleman (Los Altos, CA); Wei Tang (Sunnyvale, CA); John Roper (Mountain View, CA)
Assignee: PURE STORAGE, INC.
G06F3/0647G06F3/0604G06F3/0608G06F3/0634G06F3/064G06F3/0673G06F3/0688G06F12/06G06F2212/1044
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,405,742
App. No.
18/442,851
Filed
Feb 15, 2024
Granted
Sep 2, 2025
Kind
B2
Art Unit
2133
USPC
711/165
Abstract

A command to relocate data from a first set of data blocks at the plurality of storage devices to a second set of data blocks while bypassing the storage controller is transmitted by the storage controller. The command includes address information associated with the second set of blocks to store the relocated data.

Claims (26)

1. A storage system comprising:

a storage controller to be operatively coupled to a plurality of storage devices, the storage controller comprising a processing device, the processing device configured to:

transmit a command to relocate data from a first set of data blocks at the plurality of storage devices to a second set of data blocks at the plurality of storage devices while bypassing the storage controller, the command comprising address information associated with the second set of blocks to store the relocated data.

2. The storage system of claim 1 , wherein the processing device is further configured to:

receive, from one or more of the plurality of storage devices, an acknowledgement that the relocated data has been stored at the second set of blocks.

3. The storage system of claim 1 , wherein the command further comprises additional address information associated with the first set of blocks.

4. The storage system of claim 1 , wherein the first set of blocks store the data in a first programming mode and wherein the second set of blocks store the data in a second programming mode.

5. The storage system of claim 4 , wherein the first programming mode corresponds to single-level cell (SLC) mode and the second programming mode corresponds to quad-level cell (QLC) mode.

6. The storage system of claim 1 , wherein the first set of blocks and the second set of blocks are located at a same storage device of the plurality of storage devices.

7. The storage system of claim 1 , wherein the first set of blocks and the second set of blocks are located at different storage devices of the plurality of storage devices.

8. The storage system of claim 7 , wherein at least two of the different storage devices have different erase block sizes.

9. The storage system of claim 1 , wherein the processing device is further configured to:

update a mapping data structure to deallocate the data stored at the first set of blocks and associate the to be relocated data with the second set of blocks.

10. The storage system of claim 1 , wherein the storage controller is external to the plurality of storage devices.

11. A method, comprising:

transmitting, by a processing device of a storage controller to be operatively coupled to a plurality of storage devices, a command to relocate data from a first set of data blocks at the plurality of storage devices to a second set of data blocks at the plurality of storage devices while bypassing the storage controller, the command comprising address information associated with the second set of blocks to store the relocated data.

12. The method of claim 11 , wherein the command further comprises additional address information associated with the first set of blocks.

13. The method of claim 11 , wherein the first set of blocks store the data in a first programming mode and wherein the second set of blocks store the data in a second programming mode.

14. The method of claim 13 , wherein the first programming mode corresponds to single-level cell (SLC) mode and the second programming mode corresponds to quad-level cell (QLC) mode.

15. The method of claim 11 , wherein the first set of blocks and the second set of blocks are located at a same storage device of the plurality of storage devices.

16. The method of claim 11 , wherein the first set of blocks and the second set of blocks are located at different storage devices of the plurality of storage devices.

17. The method of claim 16 , wherein at least two of the different storage devices have different erase block sizes.

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

transmit a command to relocate data from a first set of data blocks at a plurality of storage devices to a second set of data blocks at the plurality of storage devices while bypassing the storage controller, the command comprising address information associated with the second set of blocks to store the relocated data.

19. The non-transitory computer readable storage medium of claim 18 , wherein the command further comprises additional address information associated with the first set of blocks.

20. The non-transitory computer readable storage medium of claim 18 , wherein the first set of blocks store the data in a first programming mode and wherein the second set of blocks store the data in a second programming mode.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2024
From: BERNAT, ANDREW; KIRKPATRICK, PETER; COLEMAN, GORDON; TANG, WEI; ROPER, JOHN
To: PURE STORAGE, INC.
Reel/Frame 066664/0038 →
Continuity (11)
Continuation In Part 18525392 · Nov 30, 2023
Continuation In Part 18522147 · Nov 28, 2023
Continuation 17981285 · Nov 4, 2022
Continuation 17543484 · Dec 6, 2021
Continuation 17352464 · Jun 21, 2021
Continuation 16815332 · Mar 11, 2020
Continuation 16547401 · Aug 21, 2019
Continuation In Part 16389675 · Apr 19, 2019
Provisional Application 62729597 · Sep 11, 2018
Provisional Application 62727792 · Sep 6, 2018
Related Publication 20240184472A1 · Jun 6, 2024
References Cited (16)
US 11076509B2 · Alissa et al. · 2021 [cited by applicant]
US 11194707B2 · Stalzer · 2021 [cited by applicant]
US 20080256141A1 · Wayda et al. · 2008 [cited by applicant]
US 20100306500A1 · Mimatsu · 2010 [cited by applicant]
US 20110055471A1 · Thatcher · 2011 [cited by examiner]
US 20140220561A1 · Sukumar et al. · 2014 [cited by applicant]
US 20150154418A1 · Redberg · 2015 [cited by applicant]
US 20160026397A1 · Nishikido et al. · 2016 [cited by applicant]
US 20160182542A1 · Staniford · 2016 [cited by applicant]
US 20160248631A1 · Duchesneau · 2016 [cited by applicant]
US 20170262202A1 · Seo · 2017 [cited by applicant]
US 20180054454A1 · Astigarraga et al. · 2018 [cited by applicant]
US 20190220315A1 · Vallala et al. · 2019 [cited by applicant]
US 20200034560A1 · Natanzon et al. · 2020 [cited by applicant]
US 20200326871A1 · Wu et al. · 2020 [cited by applicant]
US 20210360833A1 · Alissa et al. · 2021 [cited by applicant]