Managing wear leveling and garbage collection operations in a solid-state memory using linked lists
First Claim
1. A storage subsystem, comprising:
- a non-volatile solid-state memory array; and
a system operation module for managing memory operations, the system operation module configured to;
store system operation data associated with an internal system operation in a data structure, the data structure comprising a plurality of linked lists for storing system operation data associated with the internal system operation, at least some of the lists comprising a plurality of entries referencing blocks in the solid-state memory array belonging to a category;
in response to detecting that a block referenced by a first entry in a first linked list has met a condition for being classified in a new category that is different from that of the blocks referenced by entries in the first linked list, remove the first entry from the first linked list, add the first entry to a second linked list comprising entries referencing blocks belonging to the new category, and designate a block referenced by a second entry as a preferred block for the internal system operation; and
update entries within the first and second linked lists so that the dependencies in the first and second linked lists are maintained.
10 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the invention provide a storage subsystem comprising a non-volatile solid-state memory array and a system operation module for managing memory operations. The system operation module is configured to store system operation data in a data structure that includes linked lists for storing system operation data, with at least some lists including entries referencing blocks in the solid-state memory array belonging to a category. The system operation module is further configured to (1) move a particular entry from a first linked list to a second linked list when a block referenced by the particular entry in the first linked list has met a condition for being classified in a new category that is different from that of the blocks referenced by entries in the first linked list, and (2) update entries within the first and second linked lists so that the dependencies in the linked lists are maintained.
-
Citations
24 Claims
-
1. A storage subsystem, comprising:
-
a non-volatile solid-state memory array; and a system operation module for managing memory operations, the system operation module configured to; store system operation data associated with an internal system operation in a data structure, the data structure comprising a plurality of linked lists for storing system operation data associated with the internal system operation, at least some of the lists comprising a plurality of entries referencing blocks in the solid-state memory array belonging to a category; in response to detecting that a block referenced by a first entry in a first linked list has met a condition for being classified in a new category that is different from that of the blocks referenced by entries in the first linked list, remove the first entry from the first linked list, add the first entry to a second linked list comprising entries referencing blocks belonging to the new category, and designate a block referenced by a second entry as a preferred block for the internal system operation; and update entries within the first and second linked lists so that the dependencies in the first and second linked lists are maintained. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of managing memory operations in non-volatile solid-state memory:
-
creating a plurality of linked lists for storing wear level data, at least one list comprising a plurality of entries referencing blocks in the solid-state memory assigned to a category; in response to detecting that a block referenced by a first entry in a first linked list has met a condition for being assigned to a new category that is different from the assigned category of the blocks referenced by entries in the first linked list, moving the first entry to a second linked list comprising entries referencing blocks assigned to the new category and designating a block referenced by a second entry as a preferred block for wear leveling; and updating entries within the first and second linked lists so that the dependencies in the first and second linked lists are preserved. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
Specification