IP Library Granted Patent US 10,078,458
Granted Patent B1
US 10,078,458 · App. 15/087,671 · Granted Sep 18, 2018

Method and system for adaptively migrating data in solid state memory

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,078,458
App. No.
15/087,671
Granted
Sep 18, 2018
Kind
B1
Abstract

A method for adaptively migrating data in solid state memory. The method includes making a first determination that a write limit of a first region of the solid state memory has been reached, and based on the first determination, allocating a second region of the solid state memory, writing a pre-migration marker to each memory location of the second region and receiving a first request to read a data fragment from a first logical address. The method further includes identifying a first memory location in the second region based on the first logical address, making a second determination that a first data fragment at the first memory location comprises a pre-migration marker, and based on the second determination, identifying a second memory location in the first region, based on the first logical address, and writing a second data fragment, retrieved from the second memory location, to the first memory location.

Claims (91)

1. A method for adaptively migrating data in solid state memory, the method comprising:

making a first determination that a write limit of a first memory region of the solid state memory has been reached, wherein the first memory region comprises a first memory location and wherein the first memory location comprises a first data fragment, and based on the first determination:

allocating a second memory region of the solid state memory;

writing a pre-migration marker to a second memory location of the second memory region;

after writing the pre-migration marker to the second memory location:

receiving, from a client, a first read request comprising a first logical address;

identifying the second memory location in the second memory region, based on the first logical address and a current map;

reading a second data fragment from the second memory location;

making a second determination that the first data fragment has not been migrated to the second memory location based on the second data fragment comprising the pre-migration marker, and based on the second determination:

identifying the first location in the first memory region based on the first logical address and a previous map;

obtaining the first data fragment from the first memory location;

writing the first data fragment to the second memory location; and

providing the first data fragment to the client.

2. The method of claim 1 ,

wherein the second memory region has a base address different from a base address of the first memory region.

3. The method of claim 1 further comprising:

sending the second data fragment to the client.

4. The method of claim 1 , wherein the pre-migration marker is an invalid data pattern that, when read, causes a read error.

5. The method of claim 1 , further comprising:

receiving a second request to read a data fragment from a second logical address;

identifying a third memory location in the second memory region, based on the second logical address; and

making a third determination that a third data fragment at the third memory location is not a pre-migration marker, and based on the third determination:

sending the third data fragment to the client.

6. The method of claim 1 further comprising:

receiving, from the client, a request to write a third data fragment to a second logical address;

identifying a third memory location in the second memory region, based on the second logical address; and

writing the third data fragment to the third memory location.

7. The method of claim 1 , further comprising:

making a third determination that a migration time limit has been exceeded, and based on the third determination:

performing a sweep migration.

8. The method of claim 1 , further comprising:

making a third determination that the pre-migration markers in all memory locations of the second memory region have been overwritten, and based on the third determination:

de-allocating the first memory region; and

labeling the first memory region as worn out.

9. The method of claim 1 , further comprising, prior to making the first determination:

performing at least one wear level operation.

10. A non-transitory computer readable medium (CRM) storing instructions for adaptively migrating data in solid state memory, the instructions comprising functionality for:

making a first determination that a write limit of a first memory region of the solid state memory has been reached, wherein the first memory region comprises a first memory location and wherein the first memory location comprises a first data fragment, and based on the first determination:

allocating a second memory region of the solid state memory;

writing a pre-migration marker to a second memory location of the second memory region;

after writing the pre-migration marker to the second memory location:

receiving, from a client, a first read request comprising a first logical address;

identifying the second memory location in the second memory region, based on the first logical address and a current map;

reading a second data fragment from the second memory location;

making a second determination that the first data fragment has not been migrated to the second memory location based on the second data fragment comprising the pre-migration marker, and based on the second determination:

identifying the first location in the first memory region based on the first logical address and a previous map;

obtaining the first data fragment from the first memory location;

writing the first data fragment to the second memory location; and

providing the first data fragment to the client.

11. The non-transitory CRM of claim 10 , wherein the pre-migration marker is an invalid data pattern that, when read, causes a read error.

12. The non-transitory CRM of claim 10 , wherein the instructions further comprise functionality for:

receiving a second request to read a data fragment from a second logical address;

identifying a third memory location in the second memory region, based on the second logical address; and

making a third determination that a third data fragment at the third memory location is not a pre-migration marker, and based on the third determination:

sending the third data fragment to the client.

13. The non-transitory CRM of claim 10 , wherein the instructions further comprise functionality for:

receiving, from the client, a request to write a third data fragment to a second logical address;

identifying a third memory location in the second memory region, based on the second logical address; and

writing the third data fragment to the third memory location.

14. The non-transitory CRM of claim 10 , wherein the instructions further comprise functionality for:

making a third determination that a migration time limit has been exceeded, and based on the third determination:

performing a sweep migration.

15. A system for adaptively migrating data in solid state memory, comprising:

at least one storage module comprising solid state memory, and

a control module configured to:

make a first determination that a write limit of a first memory region of the solid state memory has been reached, wherein the first memory region comprises a first memory location and wherein the first memory location comprises a first data fragment, and based on the first determination:

allocate a second memory region of the solid state memory;

write a pre-migration marker to a second memory location of the second memory region;

after writing the pre-migration marker to the second memory location:

receive, from a client, a first request to read a data fragment from a first logical address;

identify a first memory location in the second memory region, based on the first logical address and a current map for the data fragment;

make a second determination that the first data fragment has not been migrated to the second memory location based on the second data fragment comprising the pre-migration marker, and based on the second determination:

identify the first location in the first memory region based on the first logical address and a previous map;

obtain the first data fragment from the first memory location;

write the first data fragment to the second memory location; and

provide the first data fragment to the client.

16. The system of claim 15 , wherein the pre-migration marker is an invalid data pattern that, when read, causes a read error.

17. The system of claim 15 , wherein the control module is further configured to:

receive a second request to read a data fragment from a second logical address;

identify a third memory location in the second memory region, based on the second logical address; and

make a third determination that a third data fragment at the third memory location is not a pre-migration marker, and based on the third determination:

send the third data fragment to the client.

18. The system of claim 15 , wherein the control module is further configured to:

receive, from the client, a request to write a third data fragment to a second logical address;

identify a third memory location in the second memory region, based on the second logical address; and

write the third data fragment to the third memory location.

19. The system of claim 15 , wherein the control module is further configured to:

make a third determination that a migration time limit has been exceeded, and based on the third determination:

perform a sweep migration.

20. The system of claim 15 , wherein the control module is further configured to, prior to making the first determination:

perform at least one wear level operation.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2016
From: SHAPIRO, MICHAEL W.
To: EMC CORPORATION
Reel/Frame 039314/0760 →