Monotonic counters in memories
AssigneeMicron Technology, Inc.
InventorsAntonino Mondello, Francesco Tomaiuolo, Carmelo Condemi, Tommaso Zerilli
Life of this patent
Estimating the term…
Abstract
An apparatus, such as a memory (e.g., a NAND memory), can have a controller, a volatile counter coupled to the controller, and a non-volatile memory array coupled to the controller. The controller can be configured to write information, other than a count of the counter, in the array each time the count of the counter has been incremented by a particular number of increments. Counts can be monotonic, non-volatile, and power-loss tolerant.
Claims26
An apparatus, comprising:
- a controller;
- a volatile counter coupled to the controller;
- and
- a non-volatile memory array coupled to the controller;
- wherein the controller is configured to write information, other than a count of the counter, in the array each time the count of the counter has been incremented by a particular number of increments;
- and
- wherein the controller is configured to, at a respective power up of the apparatus:
- compute an initialization count by multiplying a quantity of writes of the information up to the power up by the particular number of increments;
- and
- initialize the counter with the initialization count.
An apparatus, comprising:
- a controller;
- a volatile counter coupled to the controller;
- and
- a non-volatile memory array coupled to the controller;
- wherein the controller is configured to write information, other than a count of the counter, in the array each time the count of the counter has been incremented by a particular number of increments;
- and
- wherein the array comprises a block comprising:
- a plurality of groups of first segments, each respective first segment configured to store the information written during a respective write as respective first information;
- and
- a plurality of second segments, each respective second segment pointing to a respective group of the first segments and configured to store second information to indicate that at least one of the first segments of the respective group of first segments is available to store the respective first information.
An apparatus, comprising:
- a controller;
- a volatile counter coupled to the controller;
- and
- a non-volatile memory array coupled to the controller;
- wherein the controller is configured to write information, other than a count of the counter, in the array each time the count of the counter has been incremented by a particular number of increments;
- wherein the memory array comprises a quantity of segments, each respective segment initially storing a first bit pattern;
- and
- wherein the controller is further configured to:
- write a second bit pattern in a particular segment of the quantity of segments initially storing the first bit pattern to indicate that the controller is to write the information to the particular segment a next time the count of the counter has been incremented by the particular quantity of increments;
- and
- write the information to the particular segment by writing a third bit pattern to the particular segment storing the second bit pattern the next time the count of the counter has been incremented by the particular quantity of increments.
An apparatus, comprising:
- a controller;
- a volatile counter coupled to the controller;
- and
- first and second blocks of non-volatile memory cells coupled to the controller;
- wherein
- one of the first and second blocks is configured to have an active status while the other of the first and second blocks has an inactive status;
- each of the first and second blocks comprises a first region configured to store a first quantity of count-milestone records and a second region configured to store a second quantity of block-milestone records;
- the controller is configured to:
- swap the respective statuses of the blocks in response to the first region of the block having the active status having the quantity of count-milestone records
- write the block-milestone record in the second region of the block that becomes the block having the active status in response to the swap;
- and
- write the count-milestone record in the first region of the block having the active status each time the count of the counter has been incremented by a particular number of increments.
A method, comprising:
- counting events with a volatile counter by incrementing a count of the volatile counter in response to each event;
- writing a respective count-milestone record to a non-volatile memory array each respective time the count is incremented by a particular number of times;
- and
- determining a respective initialization count of the counter at each respective power up of the counter to be the particular number of times multiplied by a number of count-milestone records written to the non-volatile memory up to the respective power up.
Dependencies are inferred from the claim text.