Health management of non-volatile memory
First Claim
1. An apparatus for controlling programming of a non-volatile memory including at least one block partitioned into a plurality of physical sections, each of the physical sections including a plurality of memory cells, the apparatus comprising:
- a controller configured to;
access a health table including health data corresponding to individual ones of the plurality of physical sections;
identify a first programming method for a first physical section of the plurality of physical sections according to the health data in the table corresponding to the first physical section, and identify a second programming method for a second physical section of the plurality of physical sections according to the health data in the table corresponding to the second physical section; and
program the first and second physical sections according to the first and second programming methods for the first and second physical sections, respectively;
wherein the health data corresponds to a health status of the individual ones of the physical sections, and wherein the controller is further configured to determine that a bit error rate for a third physical section exceeds a predetermined threshold, and update the health data in the table corresponding to the third physical section to degrade a health status of the third physical section;
wherein the controller is further configured to determine the bit error rate for the third physical section following programming of the third physical section; and
wherein the controller is further configured to identify, based on the health data in the table, a fourth physical section of the plurality of physical sections of the memory with a greater health status relative to the degraded status of the third physical section when the controller determines that the bit error rate for the third physical section exceeds the predetermined threshold, and relocate the programmed information to the identified fourth physical section of the memory with the greater relative health status.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus for controlling programming of a non-volatile memory including at least one block partitioned into a plurality of physical sections, each of the physical sections including a plurality of memory cells, the apparatus including a controller configured to access a table including information corresponding to individual ones of the plurality of physical sections. The controller is configured to identify a first programming method for a first physical section of the plurality of physical sections and identify a second programming method for a second physical section of the plurality of physical sections according to information in the table corresponding to the first and second physical sections. The controller is also configured to program the first and second physical sections according to the first and second programming methods for the first and section physical sections, respectively.
29 Citations
13 Claims
-
1. An apparatus for controlling programming of a non-volatile memory including at least one block partitioned into a plurality of physical sections, each of the physical sections including a plurality of memory cells, the apparatus comprising:
a controller configured to; access a health table including health data corresponding to individual ones of the plurality of physical sections; identify a first programming method for a first physical section of the plurality of physical sections according to the health data in the table corresponding to the first physical section, and identify a second programming method for a second physical section of the plurality of physical sections according to the health data in the table corresponding to the second physical section; and program the first and second physical sections according to the first and second programming methods for the first and second physical sections, respectively; wherein the health data corresponds to a health status of the individual ones of the physical sections, and wherein the controller is further configured to determine that a bit error rate for a third physical section exceeds a predetermined threshold, and update the health data in the table corresponding to the third physical section to degrade a health status of the third physical section; wherein the controller is further configured to determine the bit error rate for the third physical section following programming of the third physical section; and wherein the controller is further configured to identify, based on the health data in the table, a fourth physical section of the plurality of physical sections of the memory with a greater health status relative to the degraded status of the third physical section when the controller determines that the bit error rate for the third physical section exceeds the predetermined threshold, and relocate the programmed information to the identified fourth physical section of the memory with the greater relative health status. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A method for programming a non-volatile memory including a plurality of blocks, each block including a plurality of physical sections, each of the plurality of physical sections including a plurality of memory cells, the method comprising:
-
receiving a control signal for a programming operation on one or more of the physical sections; accessing a health table including health data corresponding to individual ones of the one or more physical sections; identifying a first programming method for a first physical section of the one or more physical sections according to the health data in the table corresponding to the first physical section, and identifying a second programming method for a second physical section of the one or more physical sections according to the health data in the table corresponding to the second physical section; and programming the first and second physical sections according to the first and second programming methods for the first and second physical sections, respectively, wherein the health data corresponds to a health status of the individual ones of the physical sections, the method further comprising; determining that a bit error rate for a third physical section exceeds a predetermined threshold, and updating the health data in the table corresponding to the third physical section to degrade a health status of the third physical section; determining the bit error rate for the third physical section following programming of the third physical section; and identifying, based on the health data in the table, a fourth physical section of the plurality of physical sections of the memory with a greater health status relative to the degraded health status of the third physical section when the bit error rate for the third physical section exceeds the predetermined threshold, and relocating the programmed information to the identified fourth physical section of the memory with the greater relative health status. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system for controlling programming of memory, the system comprising:
-
a non-volatile memory device including at least one block partitioned into a plurality of physical sections, each of the physical sections including a plurality of memory cells; a health table including health data corresponding to a health status of individual ones of the plurality of physical sections; and a controller for controlling programming of the non-volatile memory device, the controller being configured to; receive a control signal for a programming operation on one or more of the physical sections; access the health table to identify health data corresponding to the one or more physical sections; identify a first programming method for a first physical section of the one or more physical sections according to the health data corresponding to the first physical section, and identify a second programming method for a second physical section of the one or more physical sections according to the health data corresponding to the second physical section; and program the first and second physical sections according to the first and second programming methods for the first and second physical sections, respectively, wherein the controller is further configured to determine that a bit error rate for the first or second physical section exceeds a predetermined threshold, and update the health data in the table corresponding to the respective physical section to degrade a health status of that physical section; wherein the controller is further configured to determine the bit error rate for the third physical section following programming of the third physical section; and wherein the controller is further configured to identify, based on the health data in the table, a fourth physical section of the plurality of physical sections of the memory with a greater health status relative to the degraded status of the third physical section when the controller determines that the bit error rate for the third physical section exceeds the predetermined threshold, and relocate the programmed information to the identified fourth physical section of the memory with the greater relative health status.
-
Specification