Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Detailed Action
The instant application having Application No. 18/888,894 has claims 1-20 pending filed on 09/18/2024; there are 3 independent claims and 17 dependent claims, all of which are ready for examination by the examiner.
Response to Arguments
This Office Action is in response to applicant’s communication filed on November 21, 2025 in response to PTO Office Action dated October 1, 2025. The Applicant’s remarks and amendments to the claims and/or specification were considered with the results that follow.
Claim Rejections
Claim Rejections - 35 USC § 112
In view of the applicant’s amendments to the independent claims 1, 18 and 20 (dated 11/21/2025), the claim rejection under 35 U.S.C. § 112(b) for as being indefinite for failing to particularly point out and distinctly claim the subject matter for the claims 1, 2 and 7-20 is withdrawn.
Claim Rejections - 35 USC § 103
35 USC § 103 Rejection of claims 1-20
Applicant's arguments filed on 11/21/2025 with respect to the claims 1-20 have been fully considered but are moot because the arguments do not apply to any of the references being used in the current rejection.
CLAIM INTERPRETATION
The following is a quotation of 35 U.S.C. 112(f):
(f) ELEMENT IN CLAIM FOR A COMBINATION. – An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The following is a quotation of pre-AIA 35 U.S.C. 112, sixth paragraph:
An element in a claim for a combination may be expressed as a means or step for performing a specified function without the recital of structure, material, or acts in support thereof, and such claim shall be construed to cover the corresponding structure, material, or acts described in the specification and equivalents thereof.
The claims in this application are given their broadest reasonable interpretation using the plain meaning of the claim language in light of the specification as it would be understood by one of ordinary skill in the art. The broadest reasonable interpretation of a claim element (also commonly referred to as a claim limitation) is limited by the description in the specification when 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is invoked.
As explained in MPEP § 2181, subsection I, claim limitations that meet the following three-prong test will be interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph:
(A) the claim limitation uses the term “means” or “step” or a term used as a substitute for “means” that is a generic placeholder (also called a nonce term or a non-structural term having no specific structural meaning) for performing the claimed function;
(B) the term “means” or “step” or the generic placeholder is modified by functional language, typically, but not always linked by the transition word “for” (e.g., “means for”) or another linking word or phrase, such as "configured to" or "so that"; and
(C) the term “means” or “step” or the generic placeholder is not modified by sufficient structure, material, or acts for performing the claimed function.
Use of the word “means” (or “step”) in a claim with functional language creates a rebuttable presumption that the claim limitation is to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites sufficient structure, material, or acts to entirely perform the recited function.
Absence of the word “means” (or “step”) in a claim creates a rebuttable presumption that the claim limitation is not to be treated in accordance with 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph. The presumption that the claim limitation is not interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, is rebutted when the claim limitation recites function without reciting sufficient structure, material or acts to entirely perform the recited function.
The claim limitations in this application that use the word "means" (or "step") are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Conversely, claim limitations in this application that do not use the word "means" (or "step") are not being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, except as otherwise indicated in an Office action. Such claim limitation(s) is/are: component in claims 1-17.
Because this/these claim limitation(s) is/are being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, it/they is/are being interpreted to cover the corresponding structure described in the specification as performing the claimed function, and equivalents thereof.
If applicant does not intend to have this/these limitation(s) interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph, applicant may: (1) amend the claim limitation(s) to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph (e.g., by reciting sufficient structure to perform the claimed function); or (2) present a sufficient showing that the claim limitation(s) recite(s) sufficient structure to perform the claimed function so as to avoid it/them being interpreted under 35 U.S.C. 112(f) or pre-AIA 35 U.S.C. 112, sixth paragraph.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Lee Jong-Min (USPGPUB 20200097401 hereafter known as Lee) in view of Malshe et al (USPGPUB 20230168829 hereafter known as Malshe and in further view of Bahirat et al (USPGPUB 20200142613 hereafter known as Bahirat).
As per claim 1:
Lee teaches:
“A system comprising” (Paragraph [0006] (a memorysystem includes))
“a memory device” (Paragraph [0006] a memory device))
“and a processing device, operatively coupled to the memory device, configured to perform operations comprising” (Paragraph [0041] and Paragraph [0054] (the controller including a processor may control the memory device in response to a request from the host and may provide data read from the memory device (configured to perform operations)))
“generating a request to perform a garbage collection (GC) operation on data stored on the memory device” (Paragraph [0061] (the controller may perform a background operation on the memory device through the processor which may include an operation of copying and processing data stored in some memory blocks among the memory blocks of the memory device into other memory blocks like a garbage collection (GC) operation)).
Lee does not EXPLICITLY teach: storing, at a first time, a valid translation unit counts (VTCs) for a plurality of portions of the data stored on the memory device, a first portion of the plurality of portions being associated with an individual VTC of the VTCs at the first time; generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time; in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device; selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion; and performing the GC operation on the selected individual portion.
However, in an analogous art, Malshe teaches:
“storing, at a first time, a valid translation unit counts (VTCs) for a plurality of portions of the data stored on the memory device, a first portion of the plurality of portions being associated with an individual VTC of the VTCs at the first time” (Paragraph [0043] and Paragraph [0046] (the memory sub-system data age and validity-based memory management component can be further configured to determine VTCs of the blocks of memory cells where the VTC can be expressed as a percentage of valid translation units in a total amount of translation units in an entire memory block or portion of a memory block and can determine an amount of valid data on a memory block and a bin associated with the memory block at a number of different points in time e.g., t0, t1, t2, t3, etc (first time) of a period of time))
“and performing the GC operation on the selected individual portion” (Paragraph [0041] (the garbage collection operations can be performed on a selected source block where the previous garbage collection approaches can track a quantity of valid physical translation units (PTUs) or a valid translation count (VTC)) and then select a block having the lowest VTC as a source block)).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Malshe and apply them on teachings of Lee for the system “storing, at a first time, a valid translation unit counts (VTCs) for a plurality of portions of the data stored on the memory device, a first portion of the plurality of portions being associated with an individual VTC of the VTCs at the first time; and performing the GC operation on the selected individual portion”. One would be motivated as a garbage collection operation and/or a wear leveling operation can be performed on a memory block based on comparing the rate of change of the valid translation unit counts to the bin transition rate, the memory sub-system performance can be improved in comparison to approaches in which source block selection is solely based on having the lowest VTC or the highest bin index (Malshe, Paragraph [0022]).
Lee and Malshe do not EXPLICITLY teach: generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time; in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device; selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion.
However, in an analogous art, Bahirat teaches:
“generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time” (Paragraph [0041], Paragraph [0042] and Paragraph [0043] (the tracking component tracks the history of valid PTU counts i.e. the VTC, corresponding to respective groups of memory cells where the VTC history can be tracked based on changes to VTCs over time (an elapsed time between the first time and the current time), the tracking component keeps track of the VTC for each particular group of cells at each of a number of predetermined instants of time during each of a number of predetermined lengths of time or time periods and the tracking component can determine an invalidation velocity from the slope of the VTC profile for each of the number of the time periods to yield a number of invalidation velocities (an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion)))
“in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device” (Paragraph [0042] and Paragraph [0043] (a VTC profile may be obtained for a particular group of cells for each of the number of the time periods to yield a number of VTC profiles for the particular group of cells, the tracking component can determine an invalidation velocity from the slope of the VTC profile for each of the number of the time periods to yield a number of invalidation velocities and this allows changes in the invalidation velocity to be tracked over time since there will be an invalidation velocity for each of the different time periods))
“selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion” (Paragraph [0046] (the tracking component can use the history of valid PTU counts or VTCs to determine an invalidation velocity and/or invalidation acceleration associated with respective groups of cells (based on the VTC velocity of the individual portion))).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Bahirat and apply them on teachings of Lee and Malshe for the system “generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time; in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device; selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion”. One would be motivated as the categorization can be based on a determined invalidation velocity and the garbage collection may be performed on the blocks with the lower invalidation velocities (colder blocks) before blocks with higher invalidation velocities (hot blocks) (Bahirat, Paragraph [0022]).
As per claim 2:
Lee, Malshe and Bahirat teach the system of claim 1 above.
Malshe further teaches:
“wherein the plurality of portions comprises a plurality of block stripes” (Paragraph [0016] (a “block stripe” generally refers to a logical grouping of memory blocks that share a same upper block number and can be accessed in parallel)).
As per claim 3:
Lee, Malshe and Bahirat teach the system of claim 1 above.
Malshe further teaches:
“the operations comprising: storing, for each portion of the plurality of portions, a VTC when the respective portion was closed” (Paragraph [0018] and Paragraph [0043] (a “garbage collection operation” generally refers to a process of folding (closing) data from a victim block stripe into a new destination block stripe and the VTC can be expressed as a percentage of valid translation units in a total amount of translation units in an entire memory block or portion of a memory block))
“and computing the VTC velocity of each portion as a function of the stored VTC when the respective portion was closed and a duration of time that has elapsed since the respective portion was closed” (Paragraph [0043], Paragraph [0044] and Paragraph [0045] (a VTC can be determined for a portion of, but not all of, a block of memory cells, a rate of change of the respective valid translation units can represent a level by which the amount of valid data in memory blocks has decreased over a period of time and the memory sub-system data age and validity-based memory management component can perform a media management operation such as garbage collection operation (when the respective portion was closed))).
As per claim 4:
Lee, Malshe and Bahirat teach the system of claim 3 above.
Malshe further teaches:
“obtaining a first VTC value corresponding to the VTC value associated with the individual portion when the individual portion was closed” (Paragraph [0056] and Paragraph [0057] (for at least a first segment the rate of change of the valid translation unit counts (VTC) is greater than the bin transition rate, then a garbage collection (the individual portion was closed) operation can be performed on a memory block))
“obtaining a second VTC value corresponding to a current VTC associated with the individual portion” (Paragraph [0056] (the second segment which is each located below the bin transition rate, and therefore each represent a rate of change of the valid translation unit counts (VTC) that is greater than the bin transition rate))
“computing a difference between the first and second VTC values” (Paragraph [0056] (the rate of change of the valid translation unit counts (VTC) varies between a first segment and a second segment))
“and computing an individual duration of time that has elapsed since the individual portion was closed” (Paragraph [0056] (the rate of change of the valid translation unit counts (VTC) can be computed over a period of time)).
As per claim 5:
Lee, Malshe and Bahirat teach the system of claim 4 above.
Bahirat further teaches:
“the operations comprising: computing the VTC velocity for the individual portion based on a division of the computed difference and the individual duration of time” (Paragraph [0020] (the VTC history can be tracked based on changes to VTCs over time (the computed difference and the individual duration of time) corresponding to respective groups of cells (per block and/or block stripe), which can be used to determine an invalidation velocity and/or invalidation acceleration associated with respective groups))
“in response to determining that the condition is satisfied, selecting the target portion based on the corresponding VTC of the target portion relative to VTCs of remaining portions in the plurality of portions” (Paragraph [0025] (the valid PTU count or VTC of blocks can be tracked, and the VTC history can be used to assign various categories to the blocks so that an operation like garbage collection, buffer flushing, wear leveling (which includes amplification value) can be performed using the assigned block categories)).
As per claim 6:
Lee, Malshe and Bahirat teach the system of claim 5 above.
Bahirat further teaches:
“ wherein the VTC velocity of the individual portion comprises a first VTC velocity, the operations comprising” (Paragraph [0021] (the number of valid PTUs (the VTC) at particular times (e.g., instants of time) during the operation of the storage system may be obtained for a block or a block stripe (portion) where . the time rate of change (e.g., the slope) of the VTC curve gives the rate at which the PTUs are being invalidated, and thus may be referred to as the invalidation velocity, includes))
“ computing a second VTC velocity for an additional portion of the plurality of portions” (Paragraph [0039] (block stripes 141-1 and 141-S may be determined to have different invalidation velocities and may be assigned to different categories based on their different invalidation velocities))
“and determining that the first VTC velocity is lower than the second VTC velocity, wherein the individual portion is selected instead of the additional portion for performing the GC operation in response to determining that the first VTC velocity is lower than the second VTC velocity” (Paragraph [0048] and Paragraph [0050] (the tracking component may be configured to rank each respective block stripe at each of a number of instants of time according to its VTC and/or the rate of change of the VTC (velocity) at the instant of time, the lower the VTC and/or the rate of change of the VTC, the higher the rank or vice versa, and a block stripe may be selected for garbage collection based on its rank like a block stripe having a rank corresponding to the lowest VTC and/or the rate of change of the VTC (highest rank) may be selected for garbage collection before block stripes with higher VTCs and/or the rate of change of the VTC ( lower ranks))).
As per claim 7:
Lee, Malshe and Bahirat teach the system of claim 1 above.
Malshe further teaches:
“detecting a condition for transitioning from selecting a target portion for performing the GC operation based on a VTC velocity of the target portion to selecting the target portion based on a corresponding VTC of the target portion” (Paragraph [0064] (a selection of a candidate block can be made based at least on the VTC of the candidate blocks where in some embodiments, a candidate block having a lowest VTC (of all the respective VTCs of the candidate blocks) can be selected or in some examples a candidate block other than the candidate block having the lowest VTC can be selected where a rate of change in the VTC of the candidate block (VTC velocity of the target portion) is considered and therefore can perform a particular type of media management operation (GC operation) on the candidate block))
“and in response to determining that the condition is satisfied, selecting the target portion based on the corresponding VTC of the target portion relative to VTCs of remaining portions in the plurality of portions” (Paragraph [0065] (the rate of change of the VTC can be compared to the bin transition rate, a media management operation can be performed on the candidate block where the media management operation can be a garbage collection operation)).
As per claim 8:
Lee, Malshe and Bahirat teach the system of claim 7 above.
Malshe further teaches:
“wherein the target portion selected based on the corresponding VTC is selected in response to determining that the target portion is associated with a lowest VTC among VTCs of each of the plurality of portions” (Paragraph [0064] (a selection of a candidate block can be made based at least on the VTC of the candidate blocks where a candidate block having a lowest VTC (of all the respective VTCs of the candidate blocks) can be selected)).
As per claim 9:
Lee, Malshe and Bahirat teach the system of claim 7 above.
Malshe further teaches:
“determining that selection of the target portion based on the VTC velocity has been performed for a threshold number of iterations” (Paragraph [0061] a determination can be made whether the VTC is less than a validity threshold, a “validity threshold” generally refers to a given total number of valid translation units and/or a given amount of VTC at which blocks that have a lower total number of valid translation units and/or a lower VTC can be designated as candidate blocks))
“determining that the condition is satisfied in response to determining that the selection of the target portion based on the VTC velocity has been performed for the threshold number of iterations” (Paragraph [0075] (a “candidate block” generally refers to a block of memory to be utilized for a memory management operation where, a block having VTC that is less than a validity threshold and the first block of memory cells corresponds to a candidate block of memory cells that correspond to a first type of memory management operation which can correspond to a candidate block for a time after programming (TAP) fold operation)).
As per claim 10:
Lee, Malshe and Bahirat teach the system of claim 7 above.
Malshe further teaches:
“obtaining VTCs of each portion of the plurality of portions” (Paragraph [0043] (the memory sub-system data age and validity-based memory management component can be further configured to determine VTCs of the blocks of memory cells (e.g., an amount of valid data). The respective VTCs can be determined based on the r))
“identifying a lowest VTC of the obtained VTCs” (Paragraph [0019] (select a block having the lowest VTC as a source block))
“selecting the target portion in response to determining that the target portion is associated with the lowest VTC” (Paragraph [0022] (source block selection (and therefore a type of resultant media management operation) is solely based on having the lowest VTC)).
As per claim 11:
Lee, Malshe and Bahirat teach the system of claim 10 above.
Bahirat further teaches:
“determining that the target portion selected based on identifying the lowest VTC” (Paragraph [0050] (a block stripe having a rank corresponding to the lowest VTC may be selected for garbage collection))
“the lowest VTC is the same as the individual portion selected based on the VTC velocity of the individual portion” (Paragraph [0018] and Paragraph [0020] (the garbage collection can involve targeting blocks or the candidate blocks that have relatively few valid PTUs or VTCs with a lowest valid PTU count and can be used to determine an invalidation velocity)).
Also, Malshe further teaches:
“determining that the condition is satisfied in response to determining that the target portion selected based on identifying the lowest” (Paragraph [0019] (some garbage collection approaches can track a valid translation count (VTC) and then select a block having the lowest VTC as a source block)).
As per claim 12:
Lee, Malshe and Bahirat teach the system of claim 1 above.
Bahirat further teaches:
“generating a cold velocity area comprising a first subset of the plurality of portions having corresponding VTC velocities that are below a VTC velocity threshold” (Paragraph [0023] (the cold data can have low invalidation velocity and can be assigned to the category corresponding to the lowest invalidation velocity range (threshold)))
“and generating a hot velocity area comprising a second subset of the plurality of portions having the corresponding VTC velocities that are above the VTC velocity threshold” (Paragraph [0023] (the hot data can have the highest invalidation velocity and can be assigned to the category corresponding to the highest invalidation velocity range (above the VTC velocity threshold))).
As per claim 13:
Lee, Malshe and Bahirat teach the system of claim 12 above.
Malshe further teaches:
“wherein the VTC velocity threshold is configurable” (Paragraph [0061] ( a “threshold,” such as a validity threshold, generally refers to a designated quantity (configurable) of valid translation units to provide an efficient memory management operation)).
As per claim 14:
Lee, Malshe and Bahirat teach the system of claim 12 above.
Bahirat further teaches:
“selecting the individual portion from the cold velocity area” (Paragraph [0025] (the valid PTU count (VTC) of blocks can be tracked, and the VTC history can be used to assign various categories to the blocks where the categories can correspond to different workload characteristics like cold velocity area)).
As per claim 15:
Lee, Malshe and Bahirat teach the system of claim 14 above.
Bahirat further teaches:
“randomly selecting a first portion from the hot velocity area or the cold velocity area” (Paragraph [0023] (the hot data can have the highest invalidation velocity and can be assigned to the category corresponding to the highest invalidation velocity range))
“identifying a lowest VTC candidate portion in the hot velocity area having a corresponding VTC that is lower than VTCs of other portions in the hot velocity area” (Paragraph [0018] (the garbage collection can involve targeting blocks for candidate blocks that have relatively few valid PTUs or those with a lowest valid VTC count)))
“determining that the first portion that was randomly selected matches the lowest VTC candidate portion” (Paragraph [0017] (selecting a block having the lowest valid PTU or VTC count as a candidate block for garbage collection))
“performing subsequent GC operations on the plurality of portions based on lowest VTCs of the plurality of portions in response to determining that the first portion that was randomly selected matches the lowest VTC candidate portion” (Paragraph [0023] and Paragraph [0025] (the hot data can have the highest invalidation velocity and can be assigned to the category corresponding to the highest invalidation velocity range, the categories can correspond to different workload characteristics including random data workload and/or other data type characteristics like hot data and during the garbage collection process, the write process can place data having a same or similar life span in a same block (selected matches the lowest VTC candidate portion))).
As per claim 16:
Lee, Malshe and Bahirat teach the system of claim 1 above.
Bahirat further teaches:
“computing a block stripe score for each portion of the plurality of portions as a function of the VTC of each portion and the VTC velocity of each portion, wherein the individual portion is selected based on the block stripe score” (Paragraph [0034], Paragraph [0038] and Paragraph [0048] (the controller can identify the invalidation of the PTU and can decrease the valid PTU count (VTC) of the block to which the now invalid PTU belongs, each of the block stripes includes a one or more blocks of memory cells, the tracking component may be configured to rank each respective block stripe at each of a number of instants of time according to its the valid PTU count (score) at the respective instant of time and the ranking criteria can include the VTC and/or the rate of change of the VTC (the VTC velocity) at the instant of time))).
As per claim 17:
Lee, Malshe and Bahirat teach the system of claim 16 above.
Bahirat further teaches:
“wherein the block stripe score for the individual portion is computed by summing the VTC of the individual portion with the VTC velocity of the individual portion multiplied by a VTC velocity coefficient” (Paragraph [0062] (the block number may be a block stripe number, and the normalized VTC may be the number of valid PTUs in a block stripe divided by the total number of PTUs in that block stripe))).
As per claim 18:
Lee teaches:
“At least one non-transitory machine-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising” (Paragraph [0184] and Paragraph [0204] (a processing system including the memory system in an embedded Multi-Media Card (eMMC) (non-transitory machine-readable storage medium) to which the memory system may be applied and the application processor may control overall operations))
“generating a request to perform a garbage collection (GC) operation on data stored on the memory device” (Paragraph [0061] (the controller may perform a background operation on the memory device through the processor which may include an operation of copying and processing data stored in some memory blocks among the memory blocks of the memory device into other memory blocks like a garbage collection (GC) operation)).
Lee does not EXPLICITLY teach: storing, at a first time, a valid translation unit counts (VTCs) for a plurality of portions of the data stored on the memory device, a first portion of the plurality of portions being associated with an individual VTC of the VTCs at the first time; generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time; in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device; selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion; and performing the GC operation on the selected individual portion.
However, in an analogous art, Malshe teaches:
“storing, at a first time, a valid translation unit counts (VTCs) for a plurality of portions of the data stored on the memory device, a first portion of the plurality of portions being associated with an individual VTC of the VTCs at the first time” (Paragraph [0043] and Paragraph [0046] (the memory sub-system data age and validity-based memory management component can be further configured to determine VTCs of the blocks of memory cells where the VTC can be expressed as a percentage of valid translation units in a total amount of translation units in an entire memory block or portion of a memory block and can determine an amount of valid data on a memory block and a bin associated with the memory block at a number of different points in time e.g., t0, t1, t2, t3, etc (first time) of a period of time))
“and performing the GC operation on the selected individual portion” (Paragraph [0041] (the garbage collection operations can be performed on a selected source block where the previous garbage collection approaches can track a quantity of valid physical translation units (PTUs) or a valid translation count (VTC)) and then select a block having the lowest VTC as a source block)).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Malshe and apply them on teachings of Lee for the non-transitory machine-readable storage medium “storing, at a first time, a valid translation unit counts (VTCs) for a plurality of portions of the data stored on the memory device, a first portion of the plurality of portions being associated with an individual VTC of the VTCs at the first time; and performing the GC operation on the selected individual portion”. One would be motivated as a garbage collection operation and/or a wear leveling operation can be performed on a memory block based on comparing the rate of change of the valid translation unit counts to the bin transition rate, the memory sub-system performance can be improved in comparison to approaches in which source block selection is solely based on having the lowest VTC or the highest bin index (Malshe, Paragraph [0022]).
Lee and Malshe do not EXPLICITLY teach: generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time; in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device; selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion.
However, in an analogous art, Bahirat teaches:
“generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time” (Paragraph [0041], Paragraph [0042] and Paragraph [0043] (the tracking component tracks the history of valid PTU counts i.e. the VTC, corresponding to respective groups of memory cells where the VTC history can be tracked based on changes to VTCs over time (an elapsed time between the first time and the current time), the tracking component keeps track of the VTC for each particular group of cells at each of a number of predetermined instants of time during each of a number of predetermined lengths of time or time periods and the tracking component can determine an invalidation velocity from the slope of the VTC profile for each of the number of the time periods to yield a number of invalidation velocities (an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion)))
“in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device” (Paragraph [0042] and Paragraph [0043] (a VTC profile may be obtained for a particular group of cells for each of the number of the time periods to yield a number of VTC profiles for the particular group of cells, the tracking component can determine an invalidation velocity from the slope of the VTC profile for each of the number of the time periods to yield a number of invalidation velocities and this allows changes in the invalidation velocity to be tracked over time since there will be an invalidation velocity for each of the different time periods))
“selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion” (Paragraph [0046] (the tracking component can use the history of valid PTU counts or VTCs to determine an invalidation velocity and/or invalidation acceleration associated with respective groups of cells (based on the VTC velocity of the individual portion))).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Bahirat and apply them on teachings of Lee and Malshe for the non-transitory machine-readable storage medium “generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time; in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device; selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion”. One would be motivated as the categorization can be based on a determined invalidation velocity and the garbage collection may be performed on the blocks with the lower invalidation velocities (colder blocks) before blocks with higher invalidation velocities (hot blocks) (Bahirat, Paragraph [0022]).
As per claim 19, the claim is rejected based upon the same rationale given for the parent claim 18 and the claim 2 above.
As per claim 20:
Lee teaches:
“a method comprising” (Paragraph [0007] (an operating method including))
“generating a request to perform a garbage collection (GC) operation on data stored on the memory device” (Paragraph [0061] (the controller may perform a background operation on the memory device through the processor which may include an operation of copying and processing data stored in some memory blocks among the memory blocks of the memory device into other memory blocks like a garbage collection (GC) operation)).
Lee does not EXPLICITLY teach: storing, at a first time, a valid translation unit counts (VTCs) for a plurality of portions of the data stored on the memory device, a first portion of the plurality of portions being associated with an individual VTC of the VTCs at the first time; generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time; in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device; selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion; and performing the GC operation on the selected individual portion.
However, in an analogous art, Malshe teaches:
“storing, at a first time, a valid translation unit counts (VTCs) for a plurality of portions of the data stored on the memory device, a first portion of the plurality of portions being associated with an individual VTC of the VTCs at the first time” (Paragraph [0043] and Paragraph [0046] (the memory sub-system data age and validity-based memory management component can be further configured to determine VTCs of the blocks of memory cells where the VTC can be expressed as a percentage of valid translation units in a total amount of translation units in an entire memory block or portion of a memory block and can determine an amount of valid data on a memory block and a bin associated with the memory block at a number of different points in time e.g., t0, t1, t2, t3, etc (first time) of a period of time))
“and performing the GC operation on the selected individual portion” (Paragraph [0041] (the garbage collection operations can be performed on a selected source block where the previous garbage collection approaches can track a quantity of valid physical translation units (PTUs) or a valid translation count (VTC)) and then select a block having the lowest VTC as a source block)).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Malshe and apply them on teachings of Lee for the method “storing, at a first time, a valid translation unit counts (VTCs) for a plurality of portions of the data stored on the memory device, a first portion of the plurality of portions being associated with an individual VTC of the VTCs at the first time; and performing the GC operation on the selected individual portion”. One would be motivated as a garbage collection operation and/or a wear leveling operation can be performed on a memory block based on comparing the rate of change of the valid translation unit counts to the bin transition rate, the memory sub-system performance can be improved in comparison to approaches in which source block selection is solely based on having the lowest VTC or the highest bin index (Malshe, Paragraph [0022]).
Lee and Malshe do not EXPLICITLY teach: generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time; in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device; selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion.
However, in an analogous art, Bahirat teaches:
“generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time” (Paragraph [0041], Paragraph [0042] and Paragraph [0043] (the tracking component tracks the history of valid PTU counts i.e. the VTC, corresponding to respective groups of memory cells where the VTC history can be tracked based on changes to VTCs over time (an elapsed time between the first time and the current time), the tracking component keeps track of the VTC for each particular group of cells at each of a number of predetermined instants of time during each of a number of predetermined lengths of time or time periods and the tracking component can determine an invalidation velocity from the slope of the VTC profile for each of the number of the time periods to yield a number of invalidation velocities (an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion)))
“in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device” (Paragraph [0042] and Paragraph [0043] (a VTC profile may be obtained for a particular group of cells for each of the number of the time periods to yield a number of VTC profiles for the particular group of cells, the tracking component can determine an invalidation velocity from the slope of the VTC profile for each of the number of the time periods to yield a number of invalidation velocities and this allows changes in the invalidation velocity to be tracked over time since there will be an invalidation velocity for each of the different time periods))
“selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion” (Paragraph [0046] (the tracking component can use the history of valid PTU counts or VTCs to determine an invalidation velocity and/or invalidation acceleration associated with respective groups of cells (based on the VTC velocity of the individual portion))).
It would have been obvious to one of ordinary skill in the art before the effective filing date to take the teachings of Bahirat and apply them on teachings of Lee and Malshe for the method “generating, at a current time, based on the VTC stored at the first time, VTC velocities for the plurality of portions of the data stored on the memory device, an individual VTC velocity of the VTC velocities for the first portion being generated a function of the individual VTC of the first portion stored at the first time, a current VTC of the first portion, and an elapsed time between the first time and the current time; in response to generating the request, accessing the VTC velocity of each portion of a plurality of portions of the data stored on the memory device; selecting an individual portion of the plurality of portions based on the VTC velocity of the individual portion”. One would be motivated as the categorization can be based on a determined invalidation velocity and the garbage collection may be performed on the blocks with the lower invalidation velocities (colder blocks) before blocks with higher invalidation velocities (hot blocks) (Bahirat, Paragraph [0022]).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Bhardwaj Amit, (US PGPUB 20230176965), a system includes: a memory device; and a processing device, operatively coupled with the memory device, to perform operations including: dividing a translation map into a plurality of portions of the translation map, the translation map mapping a plurality of logical block addresses to a plurality of physical block addresses of the memory device, each of the plurality of portions of the translation map corresponding to a plurality of blocks of the memory device, wherein a portion of the plurality of portions of the translation map comprises a plurality of entries, each entry mapping a logical block address to a physical block address of the memory device; updating, responsive to receiving a data access request, a counter of data access operations performed using each of the plurality of portions of the translation map.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KAMAL K DEWAN whose telephone number is (571)272-2196. The examiner can normally be reached on Mon-Fri 8:00 AM – 5:00 PM (EST). If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, TONY MAHMOUDI can be reached on 571-272-4078. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from Patent Center. Status information for published applications may be obtained from Patent Center. Status information for unpublished applications is available through Patent Center to authorized users only. Should you have questions about access to Patent Center, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ALEX GOFMAN/Primary Examiner, Art Unit 2163