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:
- the memory device;
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, wherein the selected block is selected from a window comprising user-write memory blocks selected form the user-write data structure and relocation memory blocks selected from the relocation data structure, the window being of a size s+t, where s is a number of user-write memory blocks in the window and t is a number of relocation memory blocks in the window, s is a number of user-write memory blocks less than of the all user write memory blocks in the user-write data structure and t is a number of relocation memory blocks less than all of the relocation memory blocks in the relocation data structure.
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.
-
Citations
18 Claims
-
1. A memory management system for a memory device of a computer, the system comprising:
- the memory device;
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, wherein the selected block is selected from a window comprising user-write memory blocks selected form the user-write data structure and relocation memory blocks selected from the relocation data structure, the window being of a size s+t, where s is a number of user-write memory blocks in the window and t is a number of relocation memory blocks in the window, s is a number of user-write memory blocks less than of the all user write memory blocks in the user-write data structure and t is a number of relocation memory blocks less than all of the relocation memory blocks in the relocation data structure. - View Dependent Claims (2, 3, 4, 5)
- the memory device;
-
6. A memory management system for a memory device of a computer, the system comprising:
- the memory device;
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;
a user-write data structure configured to receive user-write memory blocks holding the user-write data from a first portion of the free block data structure corresponding to free memory blocks having a low write-erase endurance cycle count;
a relocation data structure configured to receive relocation memory blocks holding the relocation data from a second portion of the free block data structure corresponding to free memory blocks having a high write-erase endurance cycle count; and
a garbage collection pool structure configured to select at least one of the user-write blocks and relocation blocks for erasure and to transmit the selected block to the free block data structure upon being erased, wherein the selected block is selected from a window comprising user-write memory blocks selected form the user-write data structure and relocation memory blocks selected from the relocation data structure, the window being of a size s+t, where s is a number of user-write memory blocks in the window and t is a number of relocation memory blocks in the window, s is a number of user-write memory blocks less than of the all user write memory blocks in the user-write data structure and t is a number of relocation memory blocks less than all of the relocation memory blocks in the relocation data structure. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
- the memory device;
-
14. A computer-program product, comprising:
- a processor; and
memory having stored thereon a computer program which, upon execution by the processor, performs a method comprising;
arranging with the processor a plurality of free memory blocks in a block data structure based on a block write-erase endurance cycle count of the plurality of flee memory blocks;
writing data from user-write data requests to free memory blocks having lowest block write-erase endurance cycle counts and storing resulting user-write data blocks in a user-write data structure;
writing data from relocation data requests to free memory blocks having highest block write-erase endurance cycle counts and storing resulting relocation data blocks in a relocation data structure; and
selecting for a garbage collection operation at least one of the user-write blocks and relocation blocks for erasure, wherein the selected block is selected from a window comprising user-write memory blocks selected form the user-write data structure and relocation memory blocks selected from the relocation data structure, the window being of a size s+t, where s is a number of user-write memory blocks in the window and t is a number of relocation memory blocks in the window, s is a number of user-write memory blocks less than of the all user write memory blocks in the user-write data structure and t is a number of relocation memory blocks less than all of the relocation memory blocks in the relocation data structure. - View Dependent Claims (15, 16, 17, 18)
- a processor; and
Specification