Storage device wear leveling
First Claim
Patent Images
1. A method, comprising:
- designating a reference memory location at a first physical memory address in a memory device;
designating a target memory location at a second physical memory address in the memory device, the target memory location being designated for storing data in the memory device;
in response to data being stored to the target memory location, incrementing the second physical memory address for the target memory location;
determining that the second physical memory address for the target memory location has been incremented to the first physical memory address for the reference memory location; and
in response to determining that the second physical memory address for the target memory location has been incremented to the first physical memory address for the reference memory location;
incrementing the first physical memory address for the reference memory location when the first physical memory address is not mapped to a logical address; and
leveling the reference memory location referenced by the first physical memory address when the first memory location is mapped to a logical address.
17 Assignments
0 Petitions
Accused Products
Abstract
A reference memory location can be designated in a memory device. A memory location can be designated in response to storing data in the memory device. If the identified memory location is associated with the reference memory location then an allocated memory location can be designated relative to the reference memory location, and the allocated memory location can be leveled.
-
Citations
22 Claims
-
1. A method, comprising:
-
designating a reference memory location at a first physical memory address in a memory device; designating a target memory location at a second physical memory address in the memory device, the target memory location being designated for storing data in the memory device; in response to data being stored to the target memory location, incrementing the second physical memory address for the target memory location; determining that the second physical memory address for the target memory location has been incremented to the first physical memory address for the reference memory location; and in response to determining that the second physical memory address for the target memory location has been incremented to the first physical memory address for the reference memory location; incrementing the first physical memory address for the reference memory location when the first physical memory address is not mapped to a logical address; and leveling the reference memory location referenced by the first physical memory address when the first memory location is mapped to a logical address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method, comprising:
-
identifying, by a data processing device, a contiguous block of allocated memory locations to level based on a target memory location matching a reference memory location and the reference memory location being mapped to a logical address, the block of allocated memory locations including the reference memory location and at least one contiguous allocated memory location adjacent to the reference memory location; allocating, by the data processing device, data stored in the identified contiguous block of allocated memory locations to unallocated memory locations; deallocating, by the data processing device, the contiguous block of allocated memory locations; and redesignating, by the data processing device, the reference memory location at a highest physical memory address to which the data stored in the contiguous block of allocated memory locations is allocated.
-
-
13. A method, comprising:
-
determining, by a data processing device, that a free block pointer is incremented to a memory location being referenced by a leveling pointer, the free block pointer being a pointer for referencing a memory location that is eligible to receive data, the leveling pointer referencing a reference memory location; identifying, by the data processing device, a first allocated memory location having a nearest incremental physical memory address relative to a physical memory address for the reference memory location; identifying, by the data processing device, an unallocated memory location having an incremental physical memory address relative to the physical memory address that references the first allocated memory location; storing data stored in the first allocated memory location at the unallocated memory location; deallocating, by the data processing device, the first allocated memory location; identifying, by the data processing device, a second memory location having a physical memory address that is within a specified range of the deallocated memory location; and designating, by the data processing device, the identified second memory location as the reference memory location. - View Dependent Claims (14, 15)
-
-
16. A memory device, comprising:
-
a memory array comprising memory cells defining memory blocks; and a memory control circuit configured to; define a leveling locator and a free block locator; reference respective memory blocks indicated by the leveling locator and free block locator; determine that the free block locator has been incremented to a memory block referenced by the leveling locator; and in response to determining that the free block locator has been incremented to a memory block referenced by the leveling locator, level a utilized memory block having a physical memory address that is within a threshold range of a physical memory address of a memory block referenced by the leveling locator. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A system, comprising:
-
means for determining that a free block pointer is incremented to a memory location being referenced by a leveling pointer, the free block pointer being a pointer for referencing a memory location that is eligible to receive data, the leveling pointer referencing a reference memory location; means for identifying a first allocated memory location at a nearest incremental physical memory address relative to the reference memory location; means for identifying an unallocated memory location at a nearest incremental physical memory address relative to a first allocated memory location; means for allocating the unallocated memory location to store data stored in the first allocated memory location; means for deallocating the first allocated memory location; and means for identifying a second memory location having a physical memory address that is within a specified range of the deallocated memory location; and means for designating the second identified memory location as the reference memory location.
-
Specification