9703527

Storage Device and Method for Reallocating Storage Device Resources Based on an Estimated Fill Level of a Host Buffer

PublishedJuly 11, 2017
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
39 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A storage device comprising: a memory; an interface through which to communicate with a host device, wherein the host device has a buffer configured to store data before the data is sent to the storage device for storage in the memory; and a controller in communication with the memory and the interface, wherein the controller is configured to: receive, from the host device, a rate at which the host device stores data in the buffer; track an amount of data that was received from the buffer in the host device over time; estimate a fill level of the buffer at an elapsed time using the rate, the elapsed time, and the amount of data received from the host device over that elapsed time; and if the estimated fill level of the buffer is above a threshold, increase a rate of receiving data from the host device in order to avoid the buffer in the host device from overflowing.

2

2. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data to a rate higher than the rate at which the host device stores data in the buffer.

3

3. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data from the host device by reducing storage device resources allocated to a garbage collection operation.

4

4. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data from the host device by reducing a rate of receiving data from other sources.

5

5. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data from the host device by giving higher priority to commands in a packed command that are associated with data stored in the buffer.

6

6. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data by reallocating resources as a linear function of an estimated available capacity of the buffer.

7

7. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data by reallocating resources as a non-linear function of an estimated available capacity of the buffer in order to decrease the fill level below the threshold.

8

8. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data by reallocating resources according to a hysteresis function.

9

9. The storage device of claim 1 , wherein the controller is configured to increase the rate of receiving data by reallocating resources according to a rationing strategy.

10

10. The storage device of claim 1 , wherein the controller is further configured to reset the estimate of the fill level of the buffer.

11

11. The storage device of claim 10 , wherein the estimate is reset periodically.

12

12. The storage device of claim 10 , wherein the estimate is reset responsive to the controller concluding the buffer is empty.

13

13. The storage device of claim 12 , wherein the controller concludes the buffer is empty responsive to the host device denying the storage device's request for additional data from the buffer.

14

14. The storage device of claim 12 , wherein the controller concludes the buffer is empty response to the estimate being a negative value.

15

15. The storage device of claim 10 , wherein the estimate of the fill level of the buffer is reset by setting the estimate, the elapsed time, and the tracked amount of data to zero.

16

16. The storage device of claim 10 , wherein the estimate of the fill level of the buffer is reset by setting the elapsed time and the tracked amount of data to zero but retaining the estimate as an additional parameter for future estimates.

17

17. The storage device of claim 1 , wherein: the host device is configured to send additional data to the storage device that was not stored in the buffer; and the controller is configured to exclude this additional data in the controller's estimation of the fill level of the buffer.

18

18. The storage device of claim 1 , wherein: the host device is configured to send a plurality of streams of data to the storage device; each stream of data has its own respective buffer; and the controller is further configured to track an amount of data received from each stream.

19

19. The storage device of claim 1 , wherein the controller is further configured to track an amount of data received from different sources in the host device.

20

20. A method for reallocating storage device resources based on an estimated fill level of a host buffer, the method comprising: performing the following in a controller in a storage device in communication with a host device having a buffer for storing data before the data is sent to the storage device for storage in a memory of the storage device: receiving, from the host device, a rate at which the host device stores data in the buffer; tracking an amount of data that was received from the buffer in the host device over time; estimating a fill level of the buffer at an elapsed time using the rate, the elapsed time, and the amount of data received from the host device over that elapsed time; and if the estimated fill level of the buffer is above a threshold, increasing a rate of receiving data from the host device in order to avoid the buffer in the host device from overflowing.

21

21. The method of claim 20 , wherein the controller increases the rate of receiving data to a rate higher than the rate at which the host device stores data in the buffer.

22

22. The method of claim 20 , wherein the controller increases the rate of receiving data from the host device by reducing storage device resources allocated to a garbage collection operation.

23

23. The method of claim 20 , wherein the controller increases the rate of receiving data from the host device by reducing a rate of receiving data from other sources.

24

24. The method of claim 20 , wherein the controller increases the rate of receiving data from the host device by giving higher priority to commands in a packed command that are associated with data stored in the buffer.

25

25. The method of claim 20 , wherein the controller increases the rate of receiving data by reallocating resources as a linear function of an estimated available capacity of the buffer.

26

26. The method of claim 20 , wherein the controller increases the rate of receiving data by reallocating resources as a non-linear function of an estimated available capacity of the buffer in order to decrease the fill level below the threshold.

27

27. The method of claim 20 , wherein the controller increases the rate of receiving data by reallocating resources according to a hysteresis function.

28

28. The method of claim 20 , wherein the controller increases the rate of receiving data by reallocating resources according to a rationing strategy.

29

29. The method of claim 20 further comprising resetting the estimate of the fill level of the buffer.

30

30. The method of claim 29 , wherein the estimate is reset periodically.

31

31. The method of claim 29 , wherein the estimate is reset responsive to the controller concluding the buffer is empty.

32

32. The method of claim 31 , wherein the controller concludes the buffer is empty responsive to the host device denying the storage device's request for additional data from the buffer.

33

33. The method of claim 31 , wherein the controller concludes the buffer is empty response to the estimate being a negative value.

34

34. The method of claim 29 , wherein the estimate of the fill level of the buffer is reset by setting the estimate, the elapsed time, and the tracked amount of data to zero.

35

35. The method of claim 29 , wherein the estimate of the fill level of the buffer is reset by setting the elapsed time and the tracked amount of data to zero but retaining the estimate as an additional parameter for future estimates.

36

36. The method of claim 20 , wherein the host device sends additional data to the storage device that was not stored in the buffer, and wherein the method further comprising excluding the this additional data in the estimation of the fill level of the buffer.

37

37. The method of claim 20 , wherein the host device sends a plurality of streams of data to the storage device, wherein each stream of data has its own respective buffer, and wherein the method further comprises tracking an amount of data received from each stream.

38

38. The method of claim 20 further comprising tracking an amount of data received from different sources in the host device.

39

39. A storage device comprising: a memory; means for receiving, from a host device, a rate at which the host device stores data in a buffer in the host device before the data is sent to the memory in the storage device for storage; means for tracking an amount of data that was received from the buffer in the host device over time; means for estimating a fill level of the buffer at an elapsed time using the rate, the elapsed time, and the amount of data received from the host device over that elapsed time; and means for increasing a rate of receiving data from the host device in order to avoid the buffer in the host device from overflowing, if the estimated fill level of the buffer is above a threshold.

Patent Metadata

Filing Date

Unknown

Publication Date

July 11, 2017

Inventors

Amir Shaharabany
Alon Marcu
Hadas Oshinsky

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Storage Device and Method for Reallocating Storage Device Resources Based on an Estimated Fill Level of a Host Buffer” (9703527). https://patentable.app/patents/9703527

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.