Page-level health equalization
First Claim
1. A computer-implemented method, comprising:
- assigning a subset of physical pages within a block of non-volatile memory to a pseudo-physical block, wherein a number of pages in the subset of physical pages assigned to the pseudo-physical block is less than a number of physical pages within the non-volatile memory block;
wherein the assigning includes;
determining a health metric for each of the physical pages within the block of non-volatile memory; and
selecting the subset of the physical pages for assignment to the pseudo-physical block based on the health metric; and
reassigning physical pages within the block of non-volatile memory to the pseudo-physical block upon occurrence of an event;
wherein the reassigning maintains the number of pages in the subset of physical pages assigned to the pseudo-physical block,wherein the number of pages in the subset of physical pages is fixed for at least a number of reassignments,wherein the number of pages in the subset of physical pages is changeable upon the number of reassignments being performed, andwherein the number of pages in the subset of physical pages is a same number as a number of pages in each subset of physical pages assigned to each pseudo-physical block accessed by a same controller.
1 Assignment
0 Petitions
Accused Products
Abstract
According to one embodiment, a method includes assigning a subset of physical pages within a block of non-volatile memory to a pseudo-physical block, wherein a number of pages in the pseudo-physical block is less than a number of physical pages within the non-volatile memory block, and reassigning physical pages within the block of non-volatile memory to the pseudo-physical block upon occurrence of an event. The assigning includes: determining a health metric for each of the physical pages within the block of non-volatile memory, and selecting a subset of the physical pages for assignment to the pseudo-physical block based on the health metric. Moreover, the subset of pages has a fixed size for at least a number of reassignments.
113 Citations
19 Claims
-
1. A computer-implemented method, comprising:
-
assigning a subset of physical pages within a block of non-volatile memory to a pseudo-physical block, wherein a number of pages in the subset of physical pages assigned to the pseudo-physical block is less than a number of physical pages within the non-volatile memory block; wherein the assigning includes; determining a health metric for each of the physical pages within the block of non-volatile memory; and selecting the subset of the physical pages for assignment to the pseudo-physical block based on the health metric; and reassigning physical pages within the block of non-volatile memory to the pseudo-physical block upon occurrence of an event; wherein the reassigning maintains the number of pages in the subset of physical pages assigned to the pseudo-physical block, wherein the number of pages in the subset of physical pages is fixed for at least a number of reassignments, wherein the number of pages in the subset of physical pages is changeable upon the number of reassignments being performed, and wherein the number of pages in the subset of physical pages is a same number as a number of pages in each subset of physical pages assigned to each pseudo-physical block accessed by a same controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus, comprising:
-
non-volatile memory configured to store data; and a controller and logic integrated with and/or executable by the controller, the logic being configured to; assign a subset of physical pages within a block of the non-volatile memory to a pseudo-physical block, wherein a number of pages in the subset of physical pages assigned to the pseudo-physical block is less than a number of physical pages within the block of non-volatile memory; wherein the assigning includes; determine a health metric for each of the physical pages within the block of non-volatile memory; and select the subset of the physical pages for assignment to the pseudo-physical block based on the health metric; and reassign physical pages within the block of non-volatile memory to the pseudo-physical block upon occurrence of an event; wherein the reassigning maintains the number of pages in the subset of physical pages assigned to the pseudo-physical block, wherein the number of pages in the subset of physical pages is fixed for at least a number of reassignments, wherein the number of pages in the subset of physical pages is changeable upon the number of reassignments being performed, and wherein the number of pages in the subset of physical pages is a same number as a number of pages in each subset of physical pages assigned to each pseudo-physical block accessed by a same controller. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and/or executable by a controller to cause the controller to:
-
assign, by the controller, a subset of physical pages within a block of non-volatile memory to a pseudo-physical block, wherein a number of pages in the subset of physical pages assigned to the pseudo-physical block is less than a number of physical pages within the non-volatile memory block; wherein the assigning includes; determine a health metric for each of the physical pages within the block of non-volatile memory; and select the subset of the physical pages for assignment to the pseudo-physical block based on the health metric; and reassign, by the controller, physical pages within the block of non-volatile memory to the pseudo-physical block upon occurrence of an event; wherein the reassigning maintains the number of pages in the subset of physical pages assigned to the pseudo-physical block, wherein the number of pages in the subset of physical pages is fixed for at least a number of reassignments, wherein the number of pages in the subset of physical pages is changeable upon the number of reassignments being performed, and wherein the number of pages in the subset of physical pages is a same number as a number of pages in each subset of physical pages assigned to each pseudo-physical block accessed by a same controller. - View Dependent Claims (19)
-
Specification