IP Library Granted Patent US 11,366,597
Granted Patent B2
US 11,366,597 · App. 16/773,314 · Granted Jun 21, 2022

Storage system and method for maintaining uniform hot count distribution using smart stream block exchange

Inventor: Eldhose Peter (Bengaluru, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/064G06F3/0604G06F3/0673
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,366,597
App. No.
16/773,314
Granted
Jun 21, 2022
Kind
B2
Abstract

A storage system and method for maintaining uniform hot count distribution using smart stream block exchange are provided. In one embodiment, a rate at which a stream is requesting blocks from a plurality of blocks is determined, and a block from the plurality of blocks is selected for the stream based on the rate at which the stream is requesting blocks. Other embodiments are provided.

Claims (34)

1. A storage system, comprising:

a memory comprising a plurality of blocks including a first block and a second block, wherein a block cycling rate of the first block is greater than a block cycling rate of the second block; and

a controller configured to communicate with the memory and to:

assign a block cycling rate statistically representing block cycling rates of the plurality of blocks to a first stream when a block is selected for the first stream;

prior to selecting another block for the first stream, compare the block cycling rate assigned to the first stream with a current block cycling rate statistically representing block cycling rates of the plurality of blocks, wherein the current block cycling rate is different from the block cycling rate assigned to the first stream because of use of the plurality of blocks by a second stream;

in response to the block cycling rate assigned to the first stream being less than the current block cycling rate, which indicates that the first stream is consuming blocks slower than the second stream, select the first block for use by the first stream; and

in response to the block cycling rate assigned to the first stream, being greater than the current block cycling rate, which indicates that the first stream is consuming blocks faster than the second stream, select the second block for use by the first stream.

2. The storage system of claim 1 , wherein the controller is further configured to assign the current block cycling rate to the second stream.

3. The storage system of claim 1 , wherein the block cycling rate comprises a mean of block cycling rates of all blocks in the plurality of blocks.

4. The storage system of claim 1 , wherein the first block is selected in response to the block cycling rate assigned to the first stream being greater than the current block cycling rate by a threshold.

5. The storage system of claim 1 , wherein the second block is selected in response to the block cycling rate assigned to the first stream being less than the current block cycling rate by a threshold.

6. The storage system of claim 1 , wherein the controller is further configured to process a plurality of streams, wherein at least one of the streams comprises sequential data, and wherein at least one other of the streams comprises random data.

7. The storage system of claim 1 , wherein the memory comprises a three-dimensional memory.

8. The storage system of claim 1 , wherein the storage system is configured to be integrated in a host.

9. The storage system of claim 1 , wherein the storage system is configured to be removably connected with a host.

10. In a storage system including a memory comprising a plurality of blocks including a first block and a second block, wherein a block cycling rate of the first block is greater than a block cycling rate of the second block, a method comprising:

assigning a block cycling rate statistically representing block cycling rates of the plurality of blocks to a first stream when a block is selected for the first stream;

prior to selecting another block for the first stream, comparing the block cycling rate assigned to the first stream with a current block cycling rate statistically representing block cycling rates of the plurality of blocks, wherein the current block cycling rate is different from the block cycling rate assigned to the first stream because of use of the plurality of blocks by a second stream;

in response to the block cycling rate assigned to the first stream being less than the current block cycling rate, which indicates that the first stream is consuming blocks slower than the second stream, selecting the first block for use by the first stream; and

in response to the block cycling rate assigned to the first stream being greater than the current block cycling rate, which indicates that the first stream is consuming blocks faster than the second stream, selecting the second block for use by the first stream.

11. The method of claim 10 , further comprising assigning the current block cycling rate to the second stream.

12. The method of claim 10 , wherein the block cycling rate comprises a mean of block cycling rates of all blocks in the plurality of blocks.

13. The method of claim 10 , wherein the first block is selected in response to the block cycling rate being greater than the current block cycling rate by a threshold.

14. The method of claim 10 , wherein the second block is selected in response to the block cycling rate assigned to the stream being less than the current block cycling rate by a threshold.

15. The method of claim 10 , further comprising processing a plurality of streams, wherein at least one of the streams comprises sequential data, and wherein at least one other of the streams comprises random data.

16. The method of claim 10 , wherein the memory comprises a three-dimensional memory.

17. The method of claim 10 , wherein the storage system configured to be integrated in a host.

18. The method of claim 10 , wherein the storage system is configured to be removably connected with a host.

19. A storage system, comprising:

a memory comprising a plurality of blocks including a first block and a second block, wherein a block cycling rate of the first block is greater than a block cycling rate of the second block;

means for assigning a block cycling rate statistically representing block cycling rates of the plurality of blocks to a first stream when a block is selected for the first stream;

means for prior to selecting another block for the first stream, comparing the block cycling rate assigned to the first stream with a current block cycling rate statistically representing block cycling rates of the plurality of blocks, wherein the current block cycling rate is different from the block cycling rate assigned to the first stream because of use of the plurality of blocks by a second stream;

means for in response to the block cycling rate assigned to the first stream being less than the current block cycling rate, which indicates that the first stream is consuming blocks slower than the second stream, selecting the first block for use by the first stream; and

means for in response to the block cycling rate assigned to the first stream being greater than the current block cycling rate, which indicates that the first stream is consuming blocks faster than the second stream, selecting the second block for use by the first stream.

Assignments (10)
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 052025 FRAME 0088 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0699 →
SECURITY INTEREST Recorded Feb 26, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052025/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: PETER, ELDHOSE
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 051632/0991 →