DETAILED ACTION
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 .
Status of Claims
Claims 1-14 are pending.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1, 2, 8, and 9 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Liu (US 2019/0179741) (hereinafter Liu) (published June 13, 2019).
Regarding Claim 1 and 8, taking claim 8 as exemplary, Liu discloses a storage device, comprising: a connection interface configured to be connected to a host system;
“FIG. 1 illustrates an example of a system 100 for memory management. The system 100 includes a device 110 and a host device 120” (Liu [0039])
a memory module; and a memory controller connected to the connection interface and the memory module,
“The device 110 includes a device controller 112 and a memory 116” (Liu [0039] see fig. 1)
wherein the memory module comprises a plurality of entity units, and
“The memory includes a number of planes each having one or more physical blocks” (Liu [0057] the blocks are entity units)
the memory controller is configured to: according to erase count information, read count information, and valid count information corresponding to each entity unit of the plurality of entity units, obtain quantified evaluation information corresponding to each entity unit,
“For the on-demand strategy, the controller can refer to one or more of a list of factors to pick a victim block by a priority and/or a formula. The list of factors can include erase count, quantity of victim blocks in the plane, erase delay time, block type, valid count, read count, and a number of other victim blocks same as the block in a logical to physical table (L2P)” (Liu [0100] the quantified evaluation information would be the result of the formula)
determine a source unit from the plurality of entity units according to the quantified evaluation information, and
“For the on-demand strategy, the controller can refer to one or more of a list of factors to pick a victim block by a priority and/or a formula. The list of factors can include erase count, quantity of victim blocks in the plane, erase delay time, block type, valid count, read count, and a number of other victim blocks same as the block in a logical to physical table (L2P)” (Liu [0100] the victim block is the source unit)
perform data migration on valid data in the source unit.
“Valid data in the victim blocks can be migrated to one or more super blocks (or CDBs) in current data block group 304” (Liu [0062])
Regarding Claims 2 and 9, Liu further disclose wherein the plurality of entity units comprise a first entity unit,
“FIG. 4A illustrates an example block information table 400 of a plane in a memory. The memory can be the memory 116 of FIG. 1, and the plane can be any plane in FIG. 1, e.g., Plane#0 in Die#0. The plane can include N−1 number of physical blocks. Each plane can have its own table that is independent from other planes in the same memory. A memory controller, e.g., the controller 112 of FIG. 1, can manage the block information table for each plane in the memory. As illustrated in table 400, the block information can include a number of parameters as discussed below” (Liu [0064] blocks are entity units)
first erase count information corresponding to the first entity unit reflects a total count of erase operations executed on the first entity unit,
“An erase count field is used to record a number of times that a single block is executed by an erase operation. Erase count is related to P/E (program/erase) cycles of the single block. When erase count is beyond a threshold, the single block can be considered to be an urgent block or a bad block that has worn out” (Liu [0067])
first read count information corresponding to the first entity unit reflects a total count of read operations executed on the first entity unit, and
“Read count by page records how many times each page in a single block was read. Read count can also record how many times the single block was read, that is, a sum of read operation on the single block” (Liu [0069])
first valid count information corresponding to the first entity unit reflects a total data amount of valid data stored in the first entity unit.
“A valid count field is used to record how many valid data is stored in a single block. The larger the valid count is, the more valid data is stored, which indicates the less unused count is left and the faster the single block is used up or becomes a data block in data block group. A total valid count (or a total of valid counts) of a plane is a sum of valid counts of all the blocks in the plane” (Liu [0068])
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 3, 4, 7, 10, 11, and 14 is/are rejected under 35 U.S.C. 103 as being unpatentable over Liu (published June 13, 2019) in view of itself.
Regarding Claims 3 and 10, Liu discloses the method of claim 1 and device of claim 8, and further discloses wherein the step of according to the erase count information, the read count information, and the valid count information corresponding to each entity unit of the plurality of entity units, obtaining the quantified evaluation information corresponding to each entity unit comprises: reading a plurality of control information from a management table; and
“As illustrated in the erase information table 470 of FIG. 4C, the shorter the erase delay time is, the more weight the block has, and the less possibility the block is selected as a victim block. In some cases, if a weight of erase delay time of a block is smaller than a threshold, the controller can select the block as a candidate of victim block” (Liu [00105] the control information would be the weights)
But does not explicitly state according to the plurality of control information, the erase count information, the read count information, and the valid count information, obtaining the quantified evaluation information corresponding to each entity unit.
Liu further discloses calculation via a formula, weights, and factors of erase count, valid count, and read count.
“For the on-demand strategy, the controller can refer to one or more of a list of factors to pick a victim block by a priority and/or a formula. The list of factors can include erase count, quantity of victim blocks in the plane, erase delay time, block type, valid count, read count, and a number of other victim blocks same as the block in a logical to physical table (L2P)” (Liu [0100] blocks are entity units)
“In some examples, the factors include block type, valid count, and erase delay time. A weight value of a block can be expressed by a formula as follows: Weight value=weight of erase delay time*n+valid count/bits per cell, where n is an integer” (Liu [0106] weights are control information)
A person of ordinary skill in the art before the effective filing date of the invention would find it obvious to combine the factors and weighting methodology disclosed by Liu to arrive at obtaining the quantified evaluation information corresponding to each entity unit using the plurality of control information, the erase count information, the read count information, and the valid count information. Liu explicitly teaches that a controller evaluates entity units (blocks) for victim selection based on a multi-factor priority list or formula, explicitly enumerating erase count, read count, and valid count as key data points. Furthermore, Liu establishes the framework for converting these factors into "quantified evaluation information" by disclosing a formula that calculates a total "weight value" based on valid count, block type, and an erase delay weight. Since Liu explicitly identifies erase count and read count as vital metrics for victim selection in the very same list of factors, a person of ordinary skill in the art would be motivated to integrate them into Liu's weighted formula approach to achieve a more comprehensive and accurate evaluation of each block's state. The motivation to include these specific parameters into a singular, quantified formula stems from well-known design trade-offs in flash memory management. A person of ordinary skill in the art would look to erase counts to ensure even wear leveling across the drive, and to read counts to mitigate read-disturb errors by proactively moving data from heavily read blocks. Combining valid counts, erase counts, and read counts into a unified weighted formula yields a highly predictable and optimized result of allowing the controller to balance data retention capability, wear endurance, and garbage collection efficiency simultaneously. Modifying Liu's explicit weighting formula to incorporate these other explicitly disclosed factors is nothing more than the predictable application of known engineering parameters to achieve their known, intended effects.
Regarding Claims 4 and 11, Liu further discloses wherein the plurality of control information comprises weight control information used to adjust a calculation weights of at least one of the erase count information, the read count information, and the valid count information for the quantified evaluation information.
“For example, during picking a free block, the controller can get a respective erase count of each free block and refer to table 450 or 470 to get a respective weight of the free block. Then, for each free block, a respective weighted number can be calculated by multiplying the respective weight by a number, e.g., a maximum erase count of all of the free blocks” (Liu [0073)
Regarding Claims 7 and 14, Liu further discloses wherein the step of reading the plurality of control information from the management table comprises: determining the management table from a plurality of candidate management tables according to system information,
“For example, during picking a free block, the controller can get a respective erase count of each free block and refer to table 450 or 470 to get a respective weight of the free block. Then, for each free block, a respective weighted number can be calculated by multiplying the respective weight by a number, e.g., a maximum erase count of all of the free blocks” (Liu [0073)
“The list of factors can include erase count, quantity of victim blocks in the plane, erase delay time, block type, valid count, read count, and a number of other victim blocks same as the block in a logical to physical table (L2P). The list of factors can be maintained in a block information table of the plane, e.g., the table 400 of FIG. 4A, the table 450 of FIG. 4B, and/or the table 470 of FIG. 4C” (Liu [0100])
wherein the plurality of candidate management tables comprise a first candidate management table and a second candidate management table, the first candidate management table records a first control information combination, and the second candidate management table records a second control information combination.
“FIG. 4B shows an example erase information table 450, which includes erase order, e.g., from 1.sup.st last to 10.sup.th last, and associated weight (%)” (Liu [0071])
“FIG. 4C shows another example erase information table 470, which includes erase delay time and associated weight (%)” (Liu [0072])
Claims 5, 6, 12, and 13 is/are rejected under 35 U.S.C. 103 as being unpatentable over Liu (published June 13, 2019) as applied to claim 3 and 10 above, and further in view of Min-max normalization (https://web.archive.org/web/20231203001559/https://www.oreilly.com/library/view/hands-on-machine-learning/9781788393485/fd5b8a44-e9d3-4c19-bebb-c2fa5a5ebfee.xhtml) (published May 17, 2023).
Regarding Claims 5 and 12, Liu discloses the method of claim 1 and device of claim 8, but does not explicitly state wherein the step of according to the plurality of control information, the erase count information, the read count information, and the valid count information, obtaining the quantified evaluation information corresponding to each entity unit comprises: according to the plurality of control information, executing a normalization operation on the erase count information, the read count information, and the valid count information, so that the normalized erase count information, read count information, and valid count information fall within a target numerical range.
Liu and Min-max normalization discloses wherein the step of according to the plurality of control information, the erase count information, the read count information, and the valid count information, obtaining the quantified evaluation information corresponding to each entity unit comprises: according to the plurality of control information, executing a normalization operation on the erase count information, the read count information, and the valid count information, so that the normalized erase count information, read count information, and valid count information fall within a target numerical range.
“The list of factors can include erase count, quantity of victim blocks in the plane, erase delay time, block type, valid count, read count, and a number of other victim blocks same as the block in a logical to physical table (L2P)” (Liu [0100])
“Min-max normalization (usually called feature scaling) performs a linear transformation on the original data. This technique gets all the scaled data in the range (0, 1). The formula to achieve this is the following:
x
s
c
a
l
e
d
=
x
-
x
m
i
n
x
m
a
x
-
x
m
i
n
” (Min-max normalization, the use of normalization brings values to a targeted numerical range)
It would have been obvious to person of ordinary skill in the art before the effective filing date of the application to apply the standard mathematical technique of min-max normalization to Liu's disclosed factors in order to calculate the quantified evaluation information (weight value) for each entity unit. While Liu provides the framework of combining factors like valid count, erase count, and read count into a weighted formula, these parameters inherently exist on wildly different numerical scales; for instance, a block's valid page count might range from zero to a few hundred, while its read and erase counts could reach into the thousands or tens of thousands. A person of ordinary skill in the art would readily recognize that plugging raw, unscaled values into a unified weight formula would cause the larger metrics to mathematically drown out the smaller metrics, rendering the weight value ineffective. To resolve this structural data mismatch, a person of ordinary skill in the art would look to established data processing techniques like min-max normalization, which linearly transforms raw values into a bounded target numerical range such as 0 to 1. By executing this normalization operation according to control information such as tracking the minimum and maximum counts across the memory array, the normalized metrics are brought into a shared, uniform scale. The motivation to integrate "Min-max normalization" with Liu's weighting strategy stems from a direct engineering need to maintain precise, balanced control over victim block selection. A person of ordinary skill in the art would be motivated to use this specific technique because "Min-max normalization" inherently preserves the exact linear relationships and proportions among the original data values while constraining them to a target range. This ensures that the controller can assign deliberate, predictable mathematical weights to each factor such as evenly balancing the priority of wear leveling (erase counts) against garbage collection overhead (valid counts) without one metric unpredictably dominating the formula due to its raw data magnitude. Implementing this routine mathematical scaling method to Liu’s disclosed factors represents nothing more than the predictable application of a known data-processing tool to achieve a balanced, highly optimized memory management system.
Regarding Claims 6 and 13, Liu and Min-max normalization further discloses wherein the plurality of control information comprises maximum erase count information, minimum erase count information, maximum read count information, minimum read count information, maximum valid count information, and minimum valid count information.
“The list of factors can include erase count, quantity of victim blocks in the plane, erase delay time, block type, valid count, read count, and a number of other victim blocks same as the block in a logical to physical table (L2P)” (Liu [0100])
“Min-max normalization (usually called feature scaling) performs a linear transformation on the original data. This technique gets all the scaled data in the range (0, 1). The formula to achieve this is the following:
x
s
c
a
l
e
d
=
x
-
x
m
i
n
x
m
a
x
-
x
m
i
n
” (Min-max normalization, the min and max of erase count, read count, and valid count is needed for the normalization)
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Shaharabany et al. (US 2017/0168716) discloses memory portions being blocks, and the metadata includes one or more of: a PE count, indicating a number of program/erase cycles for the block; a valid count, indicating an amount of valid data in the block; one or more read counts, indicating a number of read operations performed on the block, or respective portions of the block, since the block was last erased; etc.
Hsueh et al. (US 2026/0064587) disclose information associated with the physical blocks, such as a program/erase cycle count, usage statistics, and/or other relevant information of the physical blocks and weighting of blocks being adjusted by the number of P/E cycles and also the type of memory.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SIDNEY LI whose telephone number is (571)270-5967. The examiner can normally be reached Monday to Friday 10:00 AM to 6:00 PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Arpan P Savla can be reached at (571) 272-1077. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, 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.
/S.L./Examiner, Art Unit 2137
/Arpan P. Savla/Supervisory Patent Examiner, Art Unit 2137