IP Library Granted Patent US 9,734,049
Granted Patent B2
US 9,734,049 · App. 13/539,688 · Granted Aug 15, 2017

Relocating data in a memory device

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 9,734,049
App. No.
13/539,688
Granted
Aug 15, 2017
Kind
B2
Abstract

Methods that can facilitate more optimized relocation of data associated with a memory are presented. In addition to a memory controller component, a memory manager component can be employed to increase available processing resources to facilitate more optimal execution of higher level functions. Higher level functions can be delegated to the memory manager component to allow execution of these higher level operations with reduced or no load on the memory controller component resources. A uni-bus or multi-bus architecture can be employed to further optimize data relocation operations. A first bus can be utilized for data access operations including read, write, erase, refresh, or combinations thereof, among others, while a second bus can be designated for higher level operations including data compaction, error code correction, wear leveling, or combinations thereof, among others.

Claims (52)

1. A method for relocating data stored in a memory component comprising:

first performing, using a first processor within the memory component, at least one lower level memory operation on the memory component wherein the memory component comprises a plurality of memory locations, the plurality of memory locations comprising at least one memory location and at least one different memory location, wherein the at least one lower level memory operation comprises performing, on the at least one memory location, at least one of a read, a write, an erase, or a refresh operation and wherein the first processor performs the at least one lower level memory operation using a first bus;

determining, using a second processor within the memory component, the second processor being independent from the first processor and, whether to relocate data in the at least one memory location to the at least one different memory location based at least in part on a predetermined relocation criterion; and

second performing, using the second processor and based at least in part on the determining, the second performing comprising moving the data from the at least one memory location of the memory component to the at least one different memory location of the memory component, wherein the at least one different memory location is determined to be less worn than the at least one memory location;

wherein the determining and the second performing are performed by the second processor using the first bus; and

wherein the first performing is performed at least partially concurrently with, but independently from, the at least one of the determining whether to relocate, cache, compact or wear level the data, and wherein performing the at least one lower level memory operation utilizes the first processor without utilizing the second processor.

2. The method of claim 1 , wherein the at least one memory location comprises a first memory page and the at least one different memory location comprises a second memory page; and wherein moving the data from the at least one memory location to the at least one different memory location comprises reading the data from the first memory page.

3. The method of claim 2 , wherein moving the data from the at least one memory location to the at least one different memory location further comprises:

determining if the read data is valid data; and

writing only valid data into the second memory page.

4. The method of claim 2 , wherein moving the data from the at least one memory location to the location further comprises writing all the data read from the first memory page to the second memory page.

5. The method of claim 2 , wherein moving the data from the at least one memory location to the at least one different memory location further comprises writing read data to the first memory page or to the second memory page.

6. The method of claim 1 , wherein moving the data from the at least one memory location to the location further comprises:

updating an address lookup table to reflect relocated data addresses.

7. The method of claim 1 , wherein moving the data from the at least one memory location to the at least one different memory location further comprises:

erasing the at least one memory location.

8. The method of claim 1 , wherein determining, whether to relocate the data in the at least one memory location based at least in part on the predetermined relocation criterion, comprises:

forming an inference relating to the wear leveling of the data as part of at least one of data compaction, error code correction, static wear leveling, active wear leveling, or combinations thereof.

9. The method of claim 1 , wherein determining, whether to relocate the data based at least in part on the at least one predetermined relocation criterion further comprises:

determining whether wear of at least one memory location meets a threshold wear level; and

selecting the at least one other memory location based at least in part on determining wear of the at least one other memory location does not meet the threshold wear level.

10. The method of claim 1 , wherein the determining does not use any processing resources from the first processor, and wherein the first performing does not use any processing resources from the second processor.

11. A method for relocating data stored in a memory component, the method comprising:

employing a first processor within the memory component to perform at least one lower level memory operation on a first memory location, wherein the first processor performs the at least one lower level memory operation using a first bus; and

employing a second processor within the memory component to:

determine whether to relocate data in the first memory location of the memory component based at least in part on at least one predetermined relocation criterion;

select a second memory location of the memory component based on a comparison of wear associated with the second memory location and wear associated with the first memory location;

perform wear leveling, based at least in part on determining the data is to be relocated, wherein performing the wear leveling comprises relocating the data from the first memory location to the second memory location,

wherein the determining and the wear leveling are performed by the second processor using the first bus; and

wherein performing the at least one lower level memory operation associated with the first memory location is performed concurrently with, but independently from, the employing of the second processor, wherein the at least one lower level memory operation comprises at least one of a read, a write, an erase, or a refresh operation.

12. The method of claim 11 , wherein the at least one memory location comprises a first erase block and wherein performing wear leveling further comprises reading data from at least one location in the first erase block.

13. The method of claim 11 , wherein performing the at least one lower level memory operation associated with the first memory location is performed using different processing resources than processing resources used by the second processor.

14. A method, comprising:

executing code to perform a method comprising steps of:

determining whether to relocate data in a first memory location of a memory component, wherein the determining is based at least in part on at least one predetermined relocation criterion;

wear leveling the data, based at least in part on determining that the data is to be at least one of relocated, cached, or compacted, wherein the wear leveling comprises removing the data from the first memory location and relocating the data to a second memory location determined to be less worn than the first memory location according to a wear criterion;

wherein the determining and the wear leveling are performed using a first bus; and

performing, using a first processor within the memory component, at least one lower level memory operation associated with a third memory location of the memory component, wherein the first processor performs the at least one lower level memory operation using the first bus; and wherein the performing is executed at least partially concurrently with, but is independent from the determining whether to wear level the data or the wear leveling of the data, wherein the at least one lower level memory operation comprises at least one of a read, a write, an erase, or a refresh operation.

15. The method of claim 14 , wherein the first memory location and the second memory location each comprise a respective plurality of memory pages and wherein wear leveling the data comprises:

reading data from at least one page in the first memory location.

16. The method of claim 15 , wherein wear leveling the data further comprises determining if the data read from the at least one page in the first memory location is valid data.

17. The method of claim 16 , wherein wear leveling the data further comprises:

writing only valid data into at least one page in the second memory location.

18. The method of claim 15 , wherein wear leveling the data further comprises:

writing all the data read from the at least one page in the first memory location to at least one page in the second memory location.

19. The method of claim 15 , wherein wear leveling the data further comprises:

writing the data read from the at least one page in the first memory location to at least one other page in the first memory location or to at least one page in the second memory location.

20. The method of claim 14 , wherein wear leveling the data further comprises updating an address lookup table to reflect a relocated data address.

21. The method of claim 14 , wherein wear leveling the data further comprises erasing at least one erase block of the memory component.

22. The method of claim 14 , wherein determining, whether to relocate the data based at least in part on the at least one predetermined relocation criterion, comprises:

forming an inference relating to the relocating of the data as part of the at least one of data compaction, error code correction, static wear leveling, or active wear leveling.

23. The method of claim 14 , wherein the performing uses different processing resources than processing resources used for the determining whether to wear level the data or the wear leveling of the data.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST. Recorded Nov 3, 2020
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058002/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2016
From: CYPRESS SEMICONDUCTOR CORPORATION
To: MONTEREY RESEARCH, LLC
Reel/Frame 040028/0054 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 11, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
Reel/Frame 039708/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2015
From: SPANSION LLC
To: CYPRESS SEMICONDUCTOR CORPORATION
Reel/Frame 035860/0001 →
SECURITY INTEREST Recorded Mar 21, 2015
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035240/0429 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2012
From: ALLEN, WALTER; FRANCE, ROBERT
To: SPANSION LLC
Reel/Frame 028475/0955 →