IP Library › Granted Patent US 10,552,315
Granted Patent B2
US 10,552,315 · App. 15/927,105 · Granted Feb 4, 2020

Data processing method and apparatus, and flash device

Inventors: Jianhua Zhou (Chengdu, CN); Po Zhang (Chengdu, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F12/0246G06F3/0604G06F3/0616G06F3/0629G06F3/0652G06F3/0679G06F12/0253
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 10,552,315
App. No.
15/927,105
Granted
Feb 4, 2020
Kind
B2
Abstract

A method for adjusting over provisioning space and a flash device are provided. The flash device includes user storage space for storing user data and over provisioning space for garbage collection within the flash device. The flash device receives an operation instruction, and then performs an operation on user data stored in the user storage space according to the operation instruction. Further, the flash device identifies a changed size of user data after performing the operation. Based on the changed size of data, a target adjustment parameter is identified. Further, the flash device adjusts the capacity of the over provisioning space according to the target adjustment parameter. According to the method, the over provisioning ratio can be dynamically adjusted.

Claims (71)

1. A method for adjusting storage spaces in a flash device, wherein the flash device comprises a data storage space for storing user data and an over provisioning space, the method comprising:

receiving, by a controller of the flash device, an operation instruction from a host device coupled to the flash device;

performing, by the controller, an operation on the user data stored in the data storage space according to the operation instruction, wherein before performing the operation, the data storage space already stores the user data having an initial size;

determining, by the controller, a changed size of the user data after performing the operation;

identifying, by the controller, a target over provisioning level according to the changed size of the user data, wherein the target over provisioning level is one of a plurality of different over provisioning levels preset for the flash device; and

adjusting, by the controller, capacities of the data storage space and the over provisioning space according to the target over provisioning level.

2. The method according to claim 1 , wherein adjusting the capacities of the data storage space and the over provisioning space comprises:

when the changed size of the user data is larger than the initial size of the user data, and a difference between the changed size of the user data and a capacity of the data storage space is smaller than a first adjustment threshold, increasing the capacity of the data storage space and decreasing the capacity of the over provisioning space; and

when the changed size of the user data is smaller than the initial size of the user data, and a difference between the changed size of the user data and the capacity of the data storage space is larger than a second adjustment threshold, decreasing the capacity of the data storage space and increasing the capacity of the over provisioning space.

3. The method according to claim 1 , wherein each over provisioning level corresponds to an adjustment parameter, and wherein adjusting the capacities of the data storage space and the over provisioning space according to the target over provisioning level comprises:

determining a target adjustment parameter based on the target over provisioning level; and

adjusting the capacities of the data storage space and the over provisioning space according to the target adjustment parameter.

4. The method according to claim 3 , wherein the target adjustment parameter comprises an over provisioning space adjustment parameter, and adjusting the capacities of the data storage space and the over provisioning space according to the target adjustment parameter comprises:

adjusting the capacity of the over provisioning space capacity according to the over provisioning space adjustment parameter.

5. The method according to claim 4 , wherein the target adjustment parameter further comprises a garbage collection adjustment parameter, and wherein the method further comprises:

performing, by the controller according to the garbage collection adjustment parameter, garbage collection on the user data.

6. The method according to claim 4 , wherein the target adjustment parameter further comprises a wear leveling adjustment parameter, and wherein the method further comprises:

performing, by the controller according to the wear leveling adjustment parameter, wear leveling on the user data.

7. The method according to claim 1 , wherein the operation instruction includes a write instruction comprising to-be-added data, wherein performing the operation on the user data stored in the data storage space comprises:

writing the to-be-added data into the data storage space,

wherein the changed size of the user data equals to the initial size of the user data plus a size of the to-be-added data.

8. The method according to claim 1 , wherein the operation instruction includes a delete instruction comprising to-be-deleted data, wherein performing the operation on the user data stored in the data storage space comprises:

deleting the to-be-deleted data from the data storage space,

wherein the changed size of the user data equals to the initial size of the user data minus a size of the to-be-deleted data.

9. A flash device, comprising:

a storage medium providing storage space, and a controller;

wherein the storage space includes a data storage space for storing user data and an over provisioning space;

wherein the controller is configured to:

receive an operation instruction from a host device coupled to the flash device;

perform an operation on the user data stored in the data storage space according to the operation instruction, wherein before performing the operation, the data storage space already stores the user data having an initial size;

determine a changed size of the user data after performing the operation;

identify a target over provisioning level according to the changed size of the user data, wherein the target over provisioning level is one of a plurality of different over provisioning levels preset for the flash device; and

adjust the capacities of the data storage space and the over provisioning space according to the target over provisioning level.

10. The flash device according to claim 9 , wherein in adjusting the capacities of the data storage space and the over provisioning space, the controller is configured to:

when the changed size of the user data is larger than the initial size of the user data, and a difference between the changed size of the user data and a capacity of the data storage space is smaller than a first adjustment threshold, increase the capacity of the data storage space and decrease the capacity of the over provisioning space; and

when the changed size of the user data is smaller than the initial size of the user data, and a difference between the changed size of the user data and the capacity of the data storage space is larger than a second adjustment threshold, decrease the capacity of the data storage space and increase the capacity of the over provisioning space.

11. The flash device according to claim 9 , wherein each over provisioning level corresponds to an adjustment parameter, and wherein in adjusting the capacities of the data storage space and the over provisioning space according to the target over provisioning level, the controller is configured to:

determine a target adjustment parameter based on the target over provisioning level; and adjust the capacities of the data storage space and the over provisioning space according to the target adjustment parameter.

12. The flash device according to claim 11 , wherein the target adjustment parameter comprises an over provisioning space adjustment parameter, and wherein in adjusting the capacities of the data storage space and the over provisioning space, the controller is configured to:

adjust the capacity of the over provisioning space capacity according to the over provisioning space adjustment parameter.

13. The flash device according to claim 12 , wherein the target adjustment parameter further comprises a garbage collection adjustment parameter, and wherein the controller is further configured to:

perform, according to the garbage collection adjustment parameter, garbage collection on the user data.

14. The flash device according to claim 12 , wherein the target adjustment parameter further comprises a wear leveling adjustment parameter, and wherein the controller is further configured to:

perform, according to the wear leveling adjustment parameter, wear leveling on the user data.

15. The flash device according to claim 9 , wherein the operation instruction includes a write instruction comprising to-be-added data, wherein in performing the operation on the user data stored in the data storage space, the controller is configured to:

write the to-be-added data into the data storage space,

wherein the changed size of the user data equals to the initial size of the user data plus a size of the to-be-added data.

16. The flash device according to claim 9 , wherein the operation instruction includes a delete instruction comprising to-be-deleted data, wherein in performing the operation on the user data stored in the data storage space, the controller is configured to:

delete the to-be-deleted data from the data storage space,

wherein the changed size of the user data equals to the initial size of the user data minus a size of the to-be-deleted data.

17. A method for adjusting storage spaces in a flash device, wherein the flash device comprises a data storage space for storing user data and an over provisioning space, the method comprising:

receiving, by a controller of the flash device, a write data request from a host device coupled to the flash device, wherein the write data request includes target data to be stored in the data storage space;

writing, by the controller, the target data into the data storage space according to the write data request;

determining, by the controller, a total size of the user data in the storage space after the target data is written to the storage space;

identifying, by the controller, a target over provisioning level according to the total size of the user data, wherein the target over provisioning level is one of a plurality of different over provisioning levels preset for the flash device; and

adjusting, by the controller, capacities of the data storage space and the over provisioning space according to the target over provisioning level.

18. The method according to claim 17 , wherein adjusting the capacities of the data storage space and the over provisioning space according to the total size of the user data comprises:

when a difference between the total size of the user data and a capacity of the data storage space is smaller than a first adjustment threshold, increase the capacity of the data storage space and decrease the capacity of the over provisioning space; and

when the difference between the total size of the user data and the capacity of the data storage space is larger than a second adjustment threshold, decrease the capacity of the data storage space and increase the capacity of the over provisioning space.

19. A flash device, comprising:

a storage medium providing storage space, and a controller;

wherein the storage space includes a data storage space for storing user data and an over provisioning space;

wherein the controller is configured to:

receive a write data request from a host device coupled to the flash device, wherein the write data request includes target data to be stored in the data storage space;

write the target data into the data storage space according to the write data request;

determine a total size of the user data in the storage space after the target data is written to the storage space;

identify a target over provisioning level according to the total size of the user data, wherein the target over provisioning level is one of a plurality of different over provisioning levels preset for the flash device; and

adjust capacities of the data storage space and the over provisioning space according to the determined target over provisioning level.

20. The flash device according to claim 19 , wherein in adjusting the capacities of the data storage space and the over provisioning space according to the total size of the user data, the controller is configured to:

when a difference between the total size of the user data and a capacity of the data storage space is smaller than a first adjustment threshold, increase the capacity of the data storage space and decrease the capacity of the over provisioning space; and

when the difference between the total size of the user data and the capacity of the data storage space is larger than a second adjustment threshold, decrease the capacity of the data storage space and increase the capacity of the over provisioning space.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2018
From: ZHOU, JIANHUA; ZHANG, PO
To: HUAWEI TECHNOLOGIES CO.,LTD.
Reel/Frame 045799/0851 →
Priority Claims (1)
CN 2015 1 0629175 · Sep 29, 2015 · national
Continuity (2)
Continuation PCTCN2016100824 · Sep 29, 2016
Related Publication 20180210828A1 · Jul 26, 2018