IP Library Granted Patent US 12,164,782
Granted Patent B2
US 12,164,782 · App. 17/737,838 · Granted Dec 10, 2024

Persistent switch-based storage controller

Inventors: Ramanathan Muthiah (Karnataka, IN); Akhilesh Yadav (Karnataka, IN)
Assignee: Sandisk Technologies, Inc.
G06F3/0619G06F3/0635G06F3/0659G06F3/0679G06F12/0238G06F2212/7201G06F2212/7211
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,164,782
App. No.
17/737,838
Granted
Dec 10, 2024
Kind
B2
Abstract

Aspects of a storage device including a memory and a controller are provided. The memory includes a plurality of non-volatile memory packages coupled to the switch, with each non-volatile memory package including a plurality of non-volatile memory dies. The controller monitors a wear level of each non-volatile memory package in the plurality of non-volatile memory packages connected to the controller via the switch. The controller determines whether a wear level of a first non-volatile memory package of the plurality of non-volatile memory packages exceeds a wear level threshold. The controller also can transfer data from the first non-volatile memory package to a second non-volatile memory package of the plurality of non-volatile memory packages through the switch based on the wear level of the first non-volatile memory package exceeding the wear level threshold. Thus, the controller may facilitate a persistent switch-based storage controller, thereby improving memory capacity of the storage device.

Claims (48)

1. A storage device, comprising:

a switch;

a memory comprising a plurality of non-volatile memory packages coupled to the switch, wherein each of the plurality of non-volatile memory packages comprises a plurality of non-volatile memory dies; and

a controller coupled to the memory via the switch and configured to:

monitor a wear level of each non-volatile memory package in the plurality of non-volatile memory packages connected to the controller via the switch;

determine whether a wear level of a first non-volatile memory package of the plurality of non-volatile memory packages exceeds a wear level threshold; and

transfer data from the first non-volatile memory package in the storage device to a second non-volatile memory package of the plurality of non-volatile memory packages in the storage device through the switch based on the wear level of the first non-volatile memory package exceeding the wear level threshold and based on the data being sequential data.

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

select the second non-volatile memory package with the switch;

establish a data channel connection between the second non-volatile memory package and the controller via the switch, wherein the second non-volatile memory package is transitioned into an active mode and one or more non-selected non-volatile memory packages in the plurality of non-volatile memory packages are each transitioned into a standby mode; and

perform one or more storage device operations with the data using one or more non-volatile memory dies of the plurality of non-volatile memory dies within the second non-volatile memory package.

3. The storage device of claim 1 , wherein the storage device further comprises a master storage engine communicatively coupled to the memory, wherein the memory further comprises one or more first solid-state devices and one or more second solid-state devices, wherein each of the one or more second solid-state devices comprises the plurality of non-volatile memory packages connected to the controller via the switch, the master storage engine being configured to route a first data workload to the one or more first solid-state devices based on the first data workload including random data and route a second data workload to the one or more second solid-state devices based on the second data workload including the sequential data.

4. The storage device of claim 3 , wherein the controller is further configured to apply a policy that applies a first volatile memory ratio to an aggregated non-volatile memory capacity of the plurality of non-volatile memory packages in the one or more second solid-state devices, the first volatile memory ratio being smaller than a second volatile memory ratio that is applied to the one or more first solid-state devices.

5. The storage device of claim 3 , wherein the controller is further configured to apply a policy that applies a first logical-to-physical mapping granularity to the plurality of non-volatile memory packages in the one or more second solid-state devices, the first logical-to-physical mapping granularity being coarser than a second logical-to-physical mapping granularity that is applied to the one or more first solid-state devices.

6. The storage device of claim 1 , wherein the controller comprises a flash interface module configured to apply a policy to the plurality of non-volatile memory packages that enables the controller to share one or more data workloads between the plurality of non-volatile memory packages, wherein the plurality of non-volatile memory packages include non-overlapping wear leveling ratings based on the shared one or more data workloads.

7. The storage device of claim 1 , wherein the controller is further configured to perform an enhanced post write read (EPWR) in non-prime non-volatile memory packages of the plurality of non-volatile memory packages and to refrain from performing the EPWR in prime non-volatile memory packages of the plurality of non-volatile memory packages.

8. A storage device, comprising:

a flash interface module;

a switch coupled to the flash interface module;

a memory comprising a plurality of non-volatile memory packages coupled to the switch, wherein each of the plurality of non-volatile memory packages comprises a plurality of non-volatile memory dies, wherein the plurality of non-volatile memory packages are connected to a same data channel of the flash interface module; and

a controller coupled to the memory via the switch and configured to:

monitor a wear level of each non-volatile memory package in the plurality of non-volatile memory packages connected to the controller via the switch;

determine whether a wear level of a first non-volatile memory package of the plurality of non-volatile memory packages exceeds a wear level threshold; and

transfer data from the first non-volatile memory package in the storage device to a second non-volatile memory package of the plurality of non-volatile memory packages in the storage device through the switch based on the wear level of the first non-volatile memory package exceeding the wear level threshold and based on the data being sequential data.

9. The storage device of claim 8 , wherein the storage device further comprises a master storage engine communicatively coupled to the memory, wherein the memory further comprises one or more first solid-state devices and one or more second solid-state devices, wherein each of the one or more second solid-state devices comprises the plurality of non-volatile memory packages connected to the controller via the switch, the master storage engine being configured to route a first data workload to the one or more first solid-state devices based on the first data workload including random data and route a second data workload to the one or more second solid-state devices based on the second data workload including the sequential data.

10. The storage device of claim 9 , wherein the controller is further configured to apply a policy that applies a first volatile memory ratio to an aggregated non-volatile memory capacity of the plurality of non-volatile memory packages in the one or more second solid-state devices, the first volatile memory ratio being smaller than a second volatile memory ratio that is applied to the one or more first solid-state devices.

11. The storage device of claim 9 , wherein the controller is further configured to apply a policy that applies a first logical-to-physical mapping granularity to the plurality of non-volatile memory packages in the one or more second solid-state devices, the first logical-to-physical mapping granularity being coarser than a second logical-to-physical mapping granularity that is applied to the one or more first solid-state devices.

12. The storage device of claim 8 , wherein the flash interface module is configured to apply a policy to the plurality of non-volatile memory packages that enables the controller to share one or more data workloads between the plurality of non-volatile memory packages, wherein the plurality of non-volatile memory packages include non-overlapping wear leveling ratings based on the shared one or more data workloads.

13. The storage device of claim 8 , wherein the controller is further configured to:

select the second non-volatile memory package with the switch;

establish a data channel connection between the second non-volatile memory package and the controller via the switch, wherein the second non-volatile memory package is transitioned into an active mode and one or more non-selected non-volatile memory packages in the plurality of non-volatile memory packages are each transitioned into a standby mode; and

perform one or more storage device operations with the data using one or more non-volatile memory dies of the plurality of non-volatile memory dies within the second non-volatile memory package.

14. The storage device of claim 8 , wherein the controller is further configured to apply a policy including different amounts of parity protection respectively for the first non-volatile memory package and the second non-volatile memory package of the plurality of non-volatile memory packages.

15. A storage device, comprising:

a master storage engine; and

a memory communicatively coupled to the master storage engine and comprising one or more first solid-state devices and one or more second solid-state devices, wherein each of the one or more second solid-state devices comprises a controller and a switch coupled to a flash interface module and to the controller, the controller being configured to:

monitor a wear level of each non-volatile memory package in a plurality of non-volatile memory packages connected to the controller via the switch,

determine whether a wear level of a first non-volatile memory package of the plurality of non-volatile memory packages exceeds a wear level threshold, and

transfer data from the first non-volatile memory package in the one or more second solid-state devices to a second non-volatile memory package of the plurality of non-volatile memory packages in the one or more second solid-state devices through the switch based on the wear level of the first non-volatile memory package exceeding the wear level threshold and based on the data being sequential data,

wherein the master storage engine is configured to route a first data workload to the one or more first solid-state devices based on the first data workload including random data and route a second data workload to the one or more second solid-state devices based on the second data workload including the sequential data.

16. The storage device of claim 15 , wherein the controller is further configured to apply a policy that applies a first volatile memory ratio to an aggregated non-volatile memory capacity of the plurality of non-volatile memory packages in the one or more second solid-state devices, the first volatile memory ratio being smaller than a second volatile memory ratio that is applied to the one or more first solid-state devices.

17. The storage device of claim 15 , wherein the controller is further configured to apply a policy that applies a first logical-to-physical mapping granularity to the plurality of non-volatile memory packages in the one or more second solid-state devices, the first logical-to-physical mapping granularity being coarser than a second logical-to-physical mapping granularity that is applied to the one or more first solid-state devices.

18. The storage device of claim 15 , wherein the controller comprises a flash interface module configured to apply a policy to the plurality of non-volatile memory packages that enables the controller to share one or more data workloads between the plurality of non-volatile memory packages, wherein the plurality of non-volatile memory packages include non-overlapping wear leveling ratings based on the shared one or more data workloads.

19. The storage device of claim 15 , wherein the controller is further configured to:

select the second non-volatile memory package with the switch;

establish a data channel connection between the second non-volatile memory package and the controller via the switch, wherein the second non-volatile memory package is transitioned into an active mode and one or more non-selected non-volatile memory packages in the plurality of non-volatile memory packages are each transitioned into a standby mode; and

perform one or more storage device operations with the data using one or more non-volatile memory dies within the second non-volatile memory package.

20. The storage device of claim 15 , wherein the controller is further configured to determine placement of different Non-Volatile Memory Express (NVMe) endurance groups or different NVMe sets in the plurality of non-volatile memory packages based on respective qualities of the plurality of non-volatile memory packages.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2022
From: MUTHIAH, RAMANATHAN; YADAV, AKHILESH
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060709/0897 →
Continuity (2)
Continuation In Part 17216046 · Mar 29, 2021
Related Publication 20220308769A1 · Sep 29, 2022