Flash multiple-pass write with accurate first-pass write
First Claim
Patent Images
1. A method, comprising:
- receiving, at a Flash controller, an instruction to write to a location in a Flash memory;
performing an accurate coarse write on the location, including by configuring a level placement setting, associated with defining what voltage ranges correspond to what bit values, to be a first value; and
after the accurate coarse write is performed on the location;
reading the location to obtain a read-back bit value;
determining if the read-back bit value is a correct bit value;
in the event;
(1) it is determined that the read-back bit value is not the correct bit value and (2) a voltage level stored by the location is greater than a voltage range corresponding to the correct bit value per the level placement setting being set to the first value, setting the level placement setting to be a third value, wherein the level placement setting when set to the third value causes the stored voltage level to be within the voltage range corresponding to the correct bit value; and
in the event it is determined that the read-back value is the correct value, performing a fine write on the location, including by configuring the level placement setting to be a second value.
0 Assignments
0 Petitions
Accused Products
Abstract
An instruction to write to a location in the Flash memory is received. It is determining if the Flash memory exposes a level placement setting associated with defining what voltage range corresponds to what level. In the event it is determined that the Flash memory exposes a level placement setting, an accurate coarse write is performed on the location, including by configuring the level placement setting to be a first value, and after the accurate coarse write is performed on the location, a fine write is performed on the location, including by configuring the level placement setting to be a second value, in response to receiving the instruction.
1 Citation
14 Claims
-
1. A method, comprising:
-
receiving, at a Flash controller, an instruction to write to a location in a Flash memory; performing an accurate coarse write on the location, including by configuring a level placement setting, associated with defining what voltage ranges correspond to what bit values, to be a first value; and after the accurate coarse write is performed on the location; reading the location to obtain a read-back bit value; determining if the read-back bit value is a correct bit value; in the event;
(1) it is determined that the read-back bit value is not the correct bit value and (2) a voltage level stored by the location is greater than a voltage range corresponding to the correct bit value per the level placement setting being set to the first value, setting the level placement setting to be a third value, wherein the level placement setting when set to the third value causes the stored voltage level to be within the voltage range corresponding to the correct bit value; andin the event it is determined that the read-back value is the correct value, performing a fine write on the location, including by configuring the level placement setting to be a second value. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system, comprising:
-
a Flash memory; and a Flash controller configured to; receiving, at the Flash controller, an instruction to write to a location in the Flash memory; performing an accurate coarse write on the location, including by configuring a level placement setting, associated with defining what voltage ranges correspond to what bit values, to be a first value; and after the accurate coarse write is performed on the location; reading the location to obtain a read-back bit value; determining if the read-back bit value is a correct bit value; in the event;
(1) it is determined that the read-back bit value is not the correct bit value and (2) a voltage level stored by the location is greater than a voltage range corresponding to the correct bit value per the level placement setting being set to the first value, setting the level placement setting to be a third value, wherein the level placement setting when set to the third value causes the stored voltage level to be within the voltage range corresponding to the correct bit value; andin the event it is determined that the read-back value is the correct value, performing a fine write on the location, including by configuring the level placement setting to be a second value. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
-
receiving, at a Flash controller, an instruction to write to a location in a Flash memory; performing an accurate coarse write on the location, including by configuring a level placement setting, associated with defining what voltage ranges correspond to what bit values, to be a first value; and after the accurate coarse write is performed on the location; reading the location to obtain a read-back bit value; determining if the read-back bit value is a correct bit value; in the event;
(1) it is determined that the read-back bit value is not the correct bit value and (2) a voltage level stored by the location is greater than a voltage range corresponding to the correct bit value per the level placement setting being set to the first value, setting the level placement setting to be a third value, wherein the level placement setting when set to the third value causes the stored voltage level to be within the voltage range corresponding to the correct bit value; andin the event it is determined that the read-back value is the correct value, performing a fine write on the location, including by configuring the level placement setting to be a second value. - View Dependent Claims (12, 13, 14)
-
Specification