WRITE-ERASE ENDURANCE LIFETIME OF MEMORY STORAGE DEVICES
First Claim
1. A memory management system for a memory device of a computer, the system comprising:
- a free block data structure including a plurality of free memory blocks for writing, the free block data structure configured to sort the free memory blocks in a predetermined order based on block write-erase endurance cycle count and receive new user-write requests to update existing data and relocation write requests to relocate existing data separately such that user-write data from new user-write requests are placed on youngest free memory blocks having lower block write-erase endurance cycle count while relocation data from relocation requests are placed on oldest free memory blocks having higher block write-erase endurance cycle count than that of the youngest free memory blocks,a user-write data structure configured to receive user-write memory blocks holding the user-write data from the free block data structure;
a relocation data structure configured to receive relocation memory blocks holding the relocation data from the free block data structure; and
a garbage collection pool structure configured to select at least one of the user-write blocks and relocation blocks for erasure, wherein the selected block is moved to the free block data structure upon being erased.
2 Assignments
0 Petitions
Accused Products
Abstract
A memory management system and method for managing memory blocks of a memory device of a computer. The system includes a free block data structure including free memory blocks for writing, and sorting the free memory blocks in a predetermined order based on block write-erase endurance cycle count and receiving new user-write requests to update existing data and relocation write requests to relocate existing data separately, a user-write block pool for receiving youngest blocks holding user-write data (i.e., any page being updated frequently) from the free block data structure, a relocation block pool for receiving oldest blocks holding relocation data (i.e., any page being updated infrequently) from the free block data structure, and a garbage collection pool structure for selecting at least one of user-write blocks and relocation blocks for garbage collection, wherein the selected block is moved back to the free block data structure upon being relocated and erased.
61 Citations
19 Claims
-
1. A memory management system for a memory device of a computer, the system comprising:
-
a free block data structure including a plurality of free memory blocks for writing, the free block data structure configured to sort the free memory blocks in a predetermined order based on block write-erase endurance cycle count and receive new user-write requests to update existing data and relocation write requests to relocate existing data separately such that user-write data from new user-write requests are placed on youngest free memory blocks having lower block write-erase endurance cycle count while relocation data from relocation requests are placed on oldest free memory blocks having higher block write-erase endurance cycle count than that of the youngest free memory blocks, a user-write data structure configured to receive user-write memory blocks holding the user-write data from the free block data structure; a relocation data structure configured to receive relocation memory blocks holding the relocation data from the free block data structure; and a garbage collection pool structure configured to select at least one of the user-write blocks and relocation blocks for erasure, wherein the selected block is moved to the free block data structure upon being erased. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A memory management system for a memory device of a computer, the system comprising:
-
a free block data structure including a plurality of free memory blocks for writing, the free block data structure is configured to sort the free memory blocks in a predetermined order based on block write-erase endurance cycle count and to receive new user-write requests to update existing data and relocation write requests to relocate existing data such that user-write data from new user-write requests are placed on youngest free memory blocks having lower block write-erase endurance cycle count while relocation data from relocation requests are placed on oldest free memory blocks having higher block write-erase endurance cycle count than that of the youngest free memory blocks; a delay block data structure configured to receive memory blocks holding the user-write data and memory blocks holding the relocation data from the free block data structure and delay the memory blocks from being immediately selected as a candidate for garbage collection; and a garbage collection pool structure configured to receive memory blocks from the delay block data structure, and select at least one of the memory blocks for erasure, wherein the selected memory block is moved to the free block data structure upon being erased. - View Dependent Claims (8, 9)
-
-
10. A computer-implemented method of managing memory blocks within a memory device, the method comprising:
-
maintaining free memory blocks for writing in a predetermined order based on block write-erase endurance cycle count and receiving new user-write requests to update existing data and relocation write requests to relocate existing data; placing user-write data from the new user-write requests on youngest free memory blocks having lower block write-erase endurance cycle count; placing relocation data from the relocation write requests on oldest free memory blocks having higher block write-erase endurance cycle counter than that of the youngest free memory blocks; maintaining user-write memory blocks holding the user-write data and relocation memory blocks holding the relocation data; and selecting at least one of the user-write memory blocks or the relocation memory blocks for erasure. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer program product comprising a computer useable medium including a computer readable program, wherein the computer readable program when executed on a computer causes the computer to implement a method for managing memory blocks within a memory device, the method comprising:
-
maintaining free memory blocks for writing in a predetermined order based on block write-erase endurance cycle count and receiving new user-write requests to update existing data and relocation write requests to relocate existing data; placing user-write data from the new user-write requests on youngest free memory blocks having lower block write-erase endurance cycle count; placing relocation data from the relocation write requests on oldest free memory blocks having higher block write-erase endurance cycle count than that of the youngest free memory blocks; maintaining user-write memory blocks holding the user-write data and relocation memory blocks holding the relocation data; and selecting at least one of the user-write memory blocks or the relocation memory blocks for erasure. - View Dependent Claims (16, 17, 18, 19)
-
Specification