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 .
This Office Action is responsive to the application filed 22 January 2025.
Claims 1-20 are pending and have been presented for examination.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claim(s) 9, 12, 15 and 18 is/are rejected under 35 U.S.C. 102(a)(1)/(a)(2) as being anticipated by BESINGA (U.S. Patent Application Publication #2023/0268014).
9. BESINGA discloses A system comprising: a controller (see [0062]: memory sub-system controller) to: determine a health of a last programmed wordline (see [0077]: page with newest programmed data) of a virtual block during a bootup process of a storage device that includes the virtual block (see [0064]-[0067]: at power-up the processing logic selects an open block, a charge loss metric is obtained, the charge loss metric is a measure of the health of the block), wherein the bootup process occurs after a power cycle, wherein the virtual block is an open state (see [0066]: open block), and wherein the virtual block includes user data (see [0077]: the open block includes a set of programmed pages and a set of erased pages, the programmed pages would be the user data); determine, based on the health of the last programmed wordline, a health of a next unprogrammed wordline of the virtual block during the bootup process (see [0070]: charge gain metric of the first erased page); and program additional user data on the virtual block after the bootup process (see [0076]: if the open block is available for programming, the block is kept open for additional programming, which would be the user data), wherein the additional user data is programmed based on determining the health of the last programmed wordline and based on determining the health of the next unprogrammed wordline (see [0066]: yes path for determining open block is valid for programming).
12. The system of claim 9, wherein, to program the additional user data on the virtual block, the controller is to: determine that the last programmed wordline is healthy (see [0067]: charge loss metric for written page); program the additional user data on the virtual block based on determining that the last programmed wordline is healthy (see [0066], [0074]: yes path for determining open block is valid for programming); determine that the next unprogrammed wordline is healthy (see [0071]: charge gain metric for erased page); and program the additional user data on the virtual block based on determining that the next unprogrammed wordline is healthy (see [0066], [0074]: yes path for determining open block is valid for programming).
15. BESINGA discloses A non-transitory computer-readable medium storing a set of instructions, the set of instructions (see [0091]: machine-readable medium having stored thereon instructions) comprising: one or more instructions that, when executed by one or more processors of a controller (see [0062]: memory sub-system controller), cause the controller to: determine a health of a last programmed wordline (see [0077]: page with newest programmed data) of a virtual block during a bootup process of a storage device that includes the virtual block (see [0064]-[0067]: at power-up the processing logic selects an open block, a charge loss metric is obtained, the charge loss metric is a measure of the health of the block), wherein the bootup process occurs after a power cycle, wherein the virtual block is an open state (see [0066]: open block), and wherein the virtual block includes user data (see [0077]: the open block includes a set of programmed pages and a set of erased pages, the programmed pages would be the user data); determine, based on the health of the last programmed wordline, a health of a next unprogrammed wordline of the virtual block during the bootup process (see [0070]: charge gain metric of the first erased page); and program additional user data on the virtual block after the bootup process (see [0076]: if the open block is available for programming, the block is kept open for additional programming, which would be the user data), wherein the additional user data is programmed based on determining the health of the last programmed wordline and based on determining the health of the next unprogrammed wordline (see [0066]: yes path for determining open block is valid for programming).
18. The non-transitory computer-readable medium of claim 15, wherein, to program the additional user data on the virtual block, the controller is to: determine that the next unprogrammed wordline is healthy (see [0071]: charge gain metric for erased page); and program the additional user data on the virtual block based on determining that the next unprogrammed wordline is healthy (see [0066], [0074]: yes path for determining open block is valid for programming).
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claim(s) 1-5 is/are rejected under 35 U.S.C. 103 as being unpatentable over BESINGA (U.S. Patent Application Publication #2023/0268014) in view of LEE (U.S. Patent Application Publication #2020/0110547).
1. BESINGA discloses A method comprising: determining a health of a last programmed wordline (see [0077]: page with newest programmed data) of a virtual block during a bootup process of a storage device that includes the virtual block (see [0064]-[0067]: at power-up the processing logic selects an open block, a charge loss metric is obtained, the charge loss metric is a measure of the health of the block), wherein the virtual block is an open state (see [0066]: open block), wherein the virtual block includes user data (see [0077]: the open block includes a set of programmed pages and a set of erased pages, the programmed pages would be the user data), and wherein the health of the last programmed wordline is determined using a first machine learning model (see LEE below); determining, based on the health of the last programmed wordline, a health of a next unprogrammed wordline of the virtual block during the bootup process (see [0070]: charge gain metric of the first erased page), wherein the health of the next unprogrammed wordline is determined using a second machine learning model (see LEE below); and programming additional user data on the virtual block after the bootup process (see [0076]: if the open block is available for programming, the block is kept open for additional programming, which would be the user data), wherein the additional user data is programmed based on determining the health of the last programmed wordline and based on determining the health of the next unprogrammed wordline (see [0066]: yes path for determining open block is valid for programming).
LEE discloses the following limitations that are not disclosed by BESINGA: the health of the last programmed wordline is determined using a first machine learning model (see [0052]-[0056: machine learning core collects information and determines the expected number of errors for memory cells, the expected number of errors would be the health of the word line; [0057]: the machine learning core is trained on multiple machine learning models, the machine learning core loads the appropriate model, this would be a first machine learning model) and the health of the next unprogrammed wordline is determined using a second machine learning model (see [0052]-[0056: machine learning core collects information and determines the expected number of errors for memory cells, the expected number of errors would be the health of the word line; [0057]: the machine learning core is trained on multiple machine learning models, the machine learning core loads the appropriate model, this would be a second machine learning model). Machine learning is used to determine the health of a memory word line in combination with actual checks. This provides a balance between reliability and time required to perform the checks (see [0085]).
It would have been obvious, before the effective filing date of the claimed invention, to a person having ordinary skill in the art to which said subject matter pertains to modify BESINGA to use a machine learning model to determine health, as disclosed by LEE. One of ordinary skill in the art would have been motivated to make such a modification to strike a balance between reliability and time requirements, as taught by LEE. BESINGA and LEE are analogous/in the same field of endeavor as both references are directed to analysis of memory cells for programming.
2. The method of claim 1, wherein determining the health of the last programmed wordline comprises: determining whether the last programmed wordline has been subjected to a data retention degradation (see BESINGA [0067]-[0068]: charge loss metric) or subjected to an erase bake effect.
3. The method of claim 2, wherein determining the health of the next unprogrammed wordline comprises: determining whether the next unprogrammed wordline has been subjected to a data retention degradation (see BESINGA [0071]: charge gain metric) or subjected to an erase bake effect.
4. The method of claim 1, comprising: determining a health of a subsequent unprogrammed wordline that is subsequent to the next unprogrammed wordline, wherein the health of the subsequent unprogrammed wordline is determined during the bootup process (see BESINGA [0064]-[0066] open block validation is performed during a power up event, which is considered a boot process).
5. The method of claim 1, comprising: determining that the last programmed wordline has been subjected to a data retention degradation (see BESINGA [0067]-[0068]: charge loss metric); and causing the virtual block to be in a closed state based on determining that the last programmed wordline has been subjected to the data retention degradation (see BESINGA [0076]: abandon the open block, this is considered closing the block).
Claim(s) 6 is/are rejected under 35 U.S.C. 103 as being unpatentable over BESINGA (U.S. Patent Application Publication #2023/0268014) and LEE (U.S. Patent Application Publication #2020/0110547) as applied to claims 1-5 above, and further in view of LIU (U.S. Patent Application Publication #2022/0147252).
6. The method of claim 5 (see BESINGA above), comprising: causing a garbage collection operation to be performed to move valid data of the virtual block, in the closed stated, to a different virtual block (see LIU below).
LIU discloses the following limitations that are not disclosed by BESINGA: causing a garbage collection operation to be performed to move valid data of the virtual block, in the closed stated, to a different virtual block (see [0066]: data refresh operation that copies data from one block to another block, this refresh is performed as part of a garbage collection operation). LIU discloses performing media management on power up that includes determining a block is an open block. The system determines a health characteristic of the block (see [0046]-[0048]). The refresh is performed in response to determining the health of the block to prevent errors (see [0049]). BESINGA already discloses performing a health check of an open block. A combination of BESINGA and LIU would result in BESINGA performing a garbage collection on an open block based on the health.
It would have been obvious, before the effective filing date of the claimed invention, to a person having ordinary skill in the art to which said subject matter pertains to modify BESINGA to perform a garbage collection operation, as disclosed by LIU. One of ordinary skill in the art would have been motivated to make such a modification to prevent errors, as taught by LIU. BESINGA and LIU are analogous/in the same field of endeavor as both references are directed to analyzing the health of open blocks.
Claim(s) 7 and 8 is/are rejected under 35 U.S.C. 103 as being unpatentable over BESINGA (U.S. Patent Application Publication #2023/0268014) and LEE (U.S. Patent Application Publication #2020/0110547) as applied to claims 1-5 above, and further in view of YEUNG (U.S. Patent Application Publication #2024/0256142).
7. The method of claim 1 (see BESINGA above), comprising: determining that the next unprogrammed wordline has been subjected to an open bake condition after programming the additional user data; and causing the virtual block to be in a closed state based on determining that the next unprogrammed wordline has been subjected to the open bake condition (see YEUNG below).
YEUNG discloses the following limitations that are not disclosed by BESINGA: determining that the next unprogrammed wordline has been subjected to an open bake condition after programming the additional user data (see [00418]: determine whether last page has been programmed, if not this would be the next unprogrammed word line; [0051]: partially programmed word line; [0040]: read window budget, exceeding the read window in considered an open bake condition); and causing the virtual block to be in a closed state based on determining that the next unprogrammed wordline has been subjected to the open bake condition (see [0062]-[0067]: ganged programming operation to copy data from a first block in a partially programmed state to a second block). Eliminating a block that is in an open bake condition mitigates a read window budget that would be imposed (see [0041]).
It would have been obvious, before the effective filing date of the claimed invention, to a person having ordinary skill in the art to which said subject matter pertains to modify BESINGA to determine if an open bake condition is present, as disclosed by YEUNG. One of ordinary skill in the art would have been motivated to make such a modification to mitigate a read window budget for the memory, as taught by YEUNG. BESINGA and YEUNG are analogous/in the same field of endeavor as both references are directed to managing memory blocks.
8. The method of claim 7, comprising: causing a new virtual block to be in an open state for programming of subsequent user data (see YEUNG [0069]: data is copied to a second block, the second block would be the new virtual block).
Claim(s) 10, 11, 16 and 17 is/are rejected under 35 U.S.C. 103 as being unpatentable over BESINGA (U.S. Patent Application Publication #2023/0268014) in view of LEE (U.S. Patent Application Publication #2020/0110547).
10. The system of claim 9 (see BESINGA above), wherein, to determine the health of the last programmed wordline, the controller is to: determine the health of the last programmed wordline using a first machine learning model (see LEE below).
LEE discloses the following limitations that are not disclosed by BESINGA: to determine the health of the last programmed wordline, the controller is to: determine the health of the last programmed wordline using a first machine learning model (see [0052]-[0056: machine learning core collects information and determines the expected number of errors for memory cells, the expected number of errors would be the health of the word line; [0057]: the machine learning core is trained on multiple machine learning models, the machine learning core loads the appropriate model, this would be a first machine learning model). Machine learning is used to determine the health of a memory word line in combination with actual checks. This provides a balance between reliability and time required to perform the checks (see [0085]).
It would have been obvious, before the effective filing date of the claimed invention, to a person having ordinary skill in the art to which said subject matter pertains to modify BESINGA to use a machine learning model to determine health, as disclosed by LEE. One of ordinary skill in the art would have been motivated to make such a modification to strike a balance between reliability and time requirements, as taught by LEE. BESINGA and LEE are analogous/in the same field of endeavor as both references are directed to analysis of memory cells for programming.
11. The system of claim 10, wherein, to determine the health of the next unprogrammed wordline, the controller is to: determine the health of the next unprogrammed wordline using a second machine learning model (see LEE [0052]-[0056: machine learning core collects information and determines the expected number of errors for memory cells, the expected number of errors would be the health of the word line; [0057]: the machine learning core is trained on multiple machine learning models, the machine learning core loads the appropriate model, this would be a second machine learning model).
16. The non-transitory computer-readable medium of claim 15 (see BESINGA above), wherein, to determine the health of the last programmed wordline, the controller is to: determine the health of the last programmed wordline using a first machine learning model (see LEE below).
LEE discloses the following limitations that are not disclosed by BESINGA: determine the health of the last programmed wordline, the controller is to: determine the health of the last programmed wordline using a first machine learning model (see [0052]-[0056: machine learning core collects information and determines the expected number of errors for memory cells, the expected number of errors would be the health of the word line; [0057]: the machine learning core is trained on multiple machine learning models, the machine learning core loads the appropriate model, this would be a first machine learning model). Machine learning is used to determine the health of a memory word line in combination with actual checks. This provides a balance between reliability and time required to perform the checks (see [0085]).
It would have been obvious, before the effective filing date of the claimed invention, to a person having ordinary skill in the art to which said subject matter pertains to modify BESINGA to use a machine learning model to determine health, as disclosed by LEE. One of ordinary skill in the art would have been motivated to make such a modification to strike a balance between reliability and time requirements, as taught by LEE. BESINGA and LEE are analogous/in the same field of endeavor as both references are directed to analysis of memory cells for programming.
17. The non-transitory computer-readable medium of claim 15 (see BESINGA above), wherein, to determine the health of the next unprogrammed wordline, the controller is to: determine the health of the next unprogrammed wordline using a second machine learning model (see LEE below).
LEE discloses the following limitations that are not disclosed by BESINGA: determine the health of the next unprogrammed wordline, the controller is to: determine the health of the next unprogrammed wordline using a second machine learning model (see [0052]-[0056: machine learning core collects information and determines the expected number of errors for memory cells, the expected number of errors would be the health of the word line; [0057]: the machine learning core is trained on multiple machine learning models, the machine learning core loads the appropriate model, this would be a second machine learning model). Machine learning is used to determine the health of a memory word line in combination with actual checks. This provides a balance between reliability and time required to perform the checks (see [0085]).
It would have been obvious, before the effective filing date of the claimed invention, to a person having ordinary skill in the art to which said subject matter pertains to modify BESINGA to use a machine learning model to determine health, as disclosed by LEE. One of ordinary skill in the art would have been motivated to make such a modification to strike a balance between reliability and time requirements, as taught by LEE. BESINGA and LEE are analogous/in the same field of endeavor as both references are directed to analysis of memory cells for programming.
Claim(s) 13, 14, 19 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over BESINGA (U.S. Patent Application Publication #2023/0268014) in view of LIU (U.S. Patent Application Publication #2022/0147252).
13. The system of claim 9, wherein the controller is to: determine that the last programmed wordline is unhealthy (see BESINGA [0067]-[0068]: charge loss metric); cause the virtual block to be in a closed state based on determining that the last programmed wordline is unhealthy (see BESINGA [0076]: abandon the open block, this is considered closing the block); and cause a garbage collection operation to be performed to move valid data of the virtual block, in the closed stated, to a different virtual block (see LIU below).
LIU discloses the following limitations that are not disclosed by BESINGA: causing a garbage collection operation to be performed to move valid data of the virtual block, in the closed stated, to a different virtual block (see [0066]: data refresh operation that copies data from one block to another block, this refresh is performed as part of a garbage collection operation). LIU discloses performing media management on power up that includes determining a block is an open block. The system determines a health characteristic of the block (see [0046]-[0048]). The refresh is performed in response to determining the health of the block to prevent errors (see [0049]). BESINGA already discloses performing a health check of an open block. A combination of BESINGA and LIU would result in BESINGA performing a garbage collection on an open block based on the health.
It would have been obvious, before the effective filing date of the claimed invention, to a person having ordinary skill in the art to which said subject matter pertains to modify BESINGA to perform a garbage collection operation, as disclosed by LIU. One of ordinary skill in the art would have been motivated to make such a modification to prevent errors, as taught by LIU. BESINGA and LIU are analogous/in the same field of endeavor as both references are directed to analyzing the health of open blocks.
14. The system of claim 13, wherein the controller is to: determine that the next unprogrammed wordline is unhealthy after programming the additional user data (see BESINGA [0067]-[0068]: charge loss metric); cause the virtual block to be in a closed state based on determining that the next unprogrammed wordline is unhealthy (see BESINGA [0076]: abandon the open block, this is considered closing the block); and cause a new virtual block to be in an open state for programming of subsequent user data (see BESINGA [0076]: after abandoning the block, another open block can be selected for analysis).
19. The non-transitory computer-readable medium of claim 15, wherein the one or more instructions further cause the controller to: determine that the last programmed wordline is unhealthy (see BESINGA [0067]-[0068]: charge loss metric); cause the virtual block to be in a closed state based on determining that the last programmed wordline is unhealthy (see BESINGA [0076]: abandon the open block, this is considered closing the block); and cause a garbage collection operation to be performed to move valid data of the virtual block, in the closed stated, to a different virtual block (see LIU below).
LIU discloses the following limitations that are not disclosed by BESINGA: causing a garbage collection operation to be performed to move valid data of the virtual block, in the closed stated, to a different virtual block (see [0066]: data refresh operation that copies data from one block to another block, this refresh is performed as part of a garbage collection operation). LIU discloses performing media management on power up that includes determining a block is an open block. The system determines a health characteristic of the block (see [0046]-[0048]). The refresh is performed in response to determining the health of the block to prevent errors (see [0049]). BESINGA already discloses performing a health check of an open block. A combination of BESINGA and LIU would result in BESINGA performing a garbage collection on an open block based on the health.
It would have been obvious, before the effective filing date of the claimed invention, to a person having ordinary skill in the art to which said subject matter pertains to modify BESINGA to perform a garbage collection operation, as disclosed by LIU. One of ordinary skill in the art would have been motivated to make such a modification to prevent errors, as taught by LIU. BESINGA and LIU are analogous/in the same field of endeavor as both references are directed to analyzing the health of open blocks.
20. The non-transitory computer-readable medium of claim 19, wherein the one or more instructions further cause the controller to: determine that the next unprogrammed wordline is unhealthy after programming the additional user data (see BESINGA [0067]-[0068]: charge loss metric); cause the virtual block to be in a closed state based on determining that the next unprogrammed wordline is unhealthy (see BESINGA [0076]: abandon the open block, this is considered closing the block); and cause a new virtual block to be in an open state for programming of subsequent user data (see BESINGA [0076]: after abandoning the block, another open block can be selected for analysis).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
YANG [12,436,882] discloses locating valid data in an open block after a power failure and performing garbage collection on the block. [Column 1 and 2]
GORRLE [2025/0291676] discloses recovery algorithms during a boot sequence after an ungraceful shutdown to recover data in an open block. [0024]-[0031]
NATARJAN [2025/0201309] discloses checking an open block during recovery from a power loss, the last valid written page is identified. [0013], [0029]
LEE [2023/0030620] discloses erase bake and tracking how long a given block has been in an erased state. [0035]-[0039]
SAXENA [2020/0401334] discloses scanning open blocks and locating programmed word lines and unprogrammed word lines. [0085]-[0090]
“Intelligent NAND Flash Memory for In-Situ Block Health Prediction with Machine Learning”: discloses training and using machine learning models to predict bad blocks.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to EDWARD J DUDEK JR whose telephone number is (571)270-1030. The examiner can normally be reached Monday - Friday, 8:00A-4:00P.
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, Hosain T Alam can be reached at 571-272-3978. 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.
/EDWARD J DUDEK JR/Primary Examiner, Art Unit 2132