Closing block family based on soft and hard closure criteria
Abstract
A system includes a memory device and a processing device, operatively coupled to the memory device. The processing device initializes a block family associated with the memory device and initializes a timer associated with the block family. In response to the timer reaching a soft closure value, the processing device performs a soft closure of the block family while programming a block, determines an amount of time until filling the block completely with data being received from a host system, and decides whether to finish programming the block based on the amount of time and a remainder of time left until the timer reaches a hard closure value.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system comprising:
a memory device; and a processing device, operatively coupled to the memory device, the processing device to perform operations, comprising:
initializing a block family associated with the memory device;
initializing a timer associated with the block family; and
in response to the timer reaching a soft closure value:
performing a soft closure of the block family while programming a block;
determining an amount of time until filling the block completely with data being received from a host system; and
deciding whether to finish programming the block based on the amount of time and a remainder of time left until the timer reaches a hard closure value.
2 . The system of claim 1 , wherein the operations further comprise setting the hard closure value of the timer based on at least one of a workload of the processing device, a reference temperature associated with the block family, or a performance expectation of the processing device.
3 . The system of claim 1 , wherein the operations further comprise setting the hard closure value of the timer as the soft closure value plus an additional threshold percentage of the soft closure value.
4 . The system of claim 1 , wherein the operations further comprise, in response to deciding to not finish programming the block, one of:
leaving empty an unwritten portion of the block; or writing dummy data to the unwritten portion of the block.
5 . The system of claim 1 , wherein the operations further comprise, in response to deciding to not finish programming the block:
creating a first partition of a written portion of the block; associating the first partition with the block family; and creating a second partition of an unwritten portion of the block for association with a new block family.
6 . The system of claim 1 , wherein the operations further comprise:
responsive to beginning to program a block residing on the memory device, associating the block with the block family; and in response to the timer reaching the soft closure value:
continuing to program data to the block; and
performing a hard closure of the block family in response to one of the timer reaching a hard closure value or the block family satisfying a hard closure criteria.
7 . The system of claim 6 , wherein, in response to deciding to finish programming the block, the operations further comprise finish programming the block with the data received from the host system before performing the hard closure of the block family.
8 . The system of claim 1 , wherein the operations further comprise:
detecting a bit error rate of a previously closed block family that employed the hard closure value, wherein the bit error rate is above a threshold acceptable bit error rate; and reducing the hard closure value by an amount of time calculated to reduce the bit error rate to below the threshold acceptable bit error rate.
9 . The system of claim 1 , wherein the operations further comprise:
detecting a write amplification of a previously closed block family that employed the hard closure value, wherein the write amplification is above a threshold acceptable write amplification; and increasing the hard closure value by an amount of time calculated to reduce the write amplification to below the threshold acceptable write amplification.
10 . A method comprising:
initializing, by a processing device, a block family associated with a memory device; initializing, by the processing device, a timer associated with the block family; and in response to the timer reaching a soft closure value:
performing a soft closure of the block family while programming a block;
determining, by the processing device, an amount of time until filling the block completely with data being received from a host system; and
deciding, by the processing device, whether to finish programming the block based on the amount of time and a remainder of time left until the timer reaches a hard closure value.
11 . The method of claim 10 , further comprising setting the hard closure value of the timer based on at least one of a workload of the processing device, a reference temperature associated with the block family, or a performance expectation of the processing device.
12 . The system of claim 10 , further comprising setting the hard closure value of the timer as the soft closure value plus an additional threshold percentage of the soft closure value.
13 . The system of claim 10 , further comprising, in response to deciding to not finish programming the block, one of:
leaving empty an unwritten portion of the block; or writing dummy data to the unwritten portion of the block.
14 . The system of claim 10 , further comprising, in response to deciding to not finish programming the block:
creating a first partition of a written portion of the block; associating the first partition with the block family; and creating a second partition of an unwritten portion of the block for association with a new block family.
15 . The system of claim 10 , further comprising:
responsive to beginning to program a block residing on the memory device, associating the block with the block family; and in response to the timer reaching the soft closure value:
continuing to program data to the block; and
performing a hard closure of the block family in response to one of the timer reaching a hard closure value or the block family satisfying a hard closure criteria.
16 . The system of claim 15 , wherein, in response to deciding to finish programming the block, the method further comprising finish programming the block with the data received from the host system before performing the hard closure of the block family.
17 . The system of claim 10 , further comprising:
detecting a bit error rate of a previously closed block family that employed the hard closure value, wherein the bit error rate is above a threshold acceptable bit error rate; and reducing the hard closure value by an amount of time calculated to reduce the bit error rate to below the threshold acceptable bit error rate.
18 . The system of claim 10 , further comprising:
detecting a write amplification of a previously closed block family that employed the hard closure value, wherein the write amplification is above a threshold acceptable write amplification; and increasing the hard closure value by an amount of time calculated to reduce the write amplification to below the threshold acceptable write amplification.
19 . A non-transitory computer-readable storage medium storing instructions, which when executed by a processing device operatively coupled to a memory device, the instructions cause the processing to perform operations comprising:
initializing a block family associated with the memory device; initializing a timer associated with the block family; and in response to the timer reaching a soft closure value:
performing a soft closure of the block family while programming a block;
determining an amount of time until filling the block completely with data being received from a host system; and
deciding whether to finish programming the block based on the amount of time and a remainder of time left until the timer reaches a hard closure value.
20 . The non-transitory computer-readable storage medium of claim 19 , wherein the operations further comprise setting the hard closure value of the timer based on at least one of a workload of the processing device, a reference temperature associated with the block family, or a performance expectation of the processing device.Join the waitlist — get patent alerts
Track US2025355777A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.