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
Response to Amendment
This office action has been issued in response to the response filed 1/30/26. Claims 1-20 are pending in this application. Applicant's arguments have been carefully considered, but are not persuasive in view of the “response to arguments” section below. The examiner appreciates Applicant's effort to distinguish over the cited prior art by presenting arguments/amendments in an attempt to distinguish or clarify the claimed invention, however, upon further consideration and/or search, the claims remain unpatentable over the cited prior art for the reasons articulated in the “response to arguments” section below. All claims pending in the instant application remain rejected and clarification and/or elaboration regarding why the claims are not in condition for allowance will hereafter be provided in order to efficiently further prosecution. Accordingly, this action is made FINAL.
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 set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103(a) 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.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Bennett (US PGPUB # 20140310483) in view of Shin (US PGPUB # 20220222139).
With respect to independent claims 1, 8, 15 Bennett/Shin discloses: A method of operating a memory system [Bennett fig 2], comprising:
maintaining one or more last write page tables [Bennett fig 2 & paragraph 0096; taking account of a record of the highest sector in each block that is known to have been recorded – Bennett abstract; highest physical page location P – Bennett claim 3], by periodically updating the one or more last write page tables to include a page serial number of a last page being written in a flash media [dynamic table in NVS – Bennett 0011; transaction log file (last write page table) & periodicity of metadata updates – Bennett 0059, 0077; The "last" value of the PgmSeqNum and system time, represents the last time that the particular metadata segment or the log has been written (checkpointed) to NVS – Bennett 0098] and periodically saving the one or more last write page tables to the flash media [incrementally checkpointing metadata and log data to NVS (flash) - Bennett fig 2; store log from VS to NVS - Bennett fig 2c; A snapshot (checkpoint) of the volatile metadata may be taken, stored in NVS and used as a first baseline. Each time that the file management system causes data to be written to the NVS, the association between the logical element and the physical location thereof is updated and stored in the volatile metadata, along with any changed attributes of the data or storage location, and the transaction is also stored in the log in volatile storage- Bennett 0076-0080]; and
during a process of rebuilding mapping tables after an abnormal power off [update the recovered (in response to an abnormal power off) metadata so that the metadata correctly represents the stored data – Bennett abstract; the metadata may be repaired (reads on rebuilding mapping tables) by: applying the transactions of the transaction log to the checkpointed metadata to update the metadata; discovering data written during a time when the transaction log had not as yet been updated to include a transaction; and, applying the transactions in the ordered recovery log to the updated metadata - Bennett 0012; if the page metadata read from the physical page location having a value of P+1 contains valid page metadata, storing the valid page metadata read from the physical page location to a recovery log - Bennett claim 3; maintaining a checkpointed copy of a dynamic table in non-volatile storage (NVS), and maintaining a transaction log for the dynamic table in NVS. When the dynamic table is not current or needs to be restored, the method includes discovering changes to the dynamic table that are not contained in the transaction log and updating the dynamic table by applying the transactions in the transaction log and the discovered changes. It may also include discovering entries in the transaction log which did not actually occur, such as a situation where the transaction log is written to NVS before one or more of the transactions being logged has started and/or finished being written to NVS - Bennett 0010, 0012],
determining a last checkpoint in the flash media [determine last checkpoint to facilitate recovery from last checkpoint – Bennett 0011, 0059, 0086], wherein the checkpoint is periodically updated and saved [checkpoint periodically updated/saved – Bennett 0098, fig 2a-b],
reading, from the flash media, the one or more last write page tables to obtain a plurality of page serial numbers stored therein [page serial numbers such as PgmSeqNum/SeqLba are determined/read from metadata or transaction log – Bennett 0093, fig 3];
starting from a highest page serial number among the plurality of page serial numbers, validating one or more pages corresponding to the plurality of page serial numbers, until a valid page is identified [a variable "MaxPage" whose value points to the highest page number in the flash memory block where a live page is believed to be stored, is used in recovery operations - Bennett 0104 & fig 3a-b; verification (reads on validating) that the data read from each portion of the stripe is the most recent data that was written (a variable "MaxPage" whose value points to the highest page number in the flash memory block where a live page is believed to be stored) to that portion of the stripe - Bennett 0051 & fig 3a-b; pages in a flash memory block are written sequentially, from low page addresses to high page addresses & validating pages using ECC – Bennett 0065; recovery log of discovered sectors in the plurality of blocks represented by the metadata may be ordered or processed, using PgmSeqNum [i,j], for example, from oldest at the tail to newest at the head (reads on - highest page serial number) - Bennett 0093 & fig 3a-b; A checkpointed version of the metadata on NVS and a transaction log may be maintained in NVS, and the metadata may be repaired by applying the transactions of the transaction log to the checkpointed metadata to update the metadata; discovering data written during a time when the transaction log had not as yet been updated to include a transaction; and, applying the transactions in the ordered recovery log to the updated metadata – Bennett 0012];
validating only pages having page serial numbers after the identified valid page [validating only pages after a certain page disclosed as: “Actions that take place between the last checkpointing of a metadata segment and log file segment are discovered by scanning the non-volatile memory blocks, taking account of a record of the highest sector in each block that is known to have been recorded. Any later transactions are discovered and used to update the recovered metadata so that the metadata correctly represents the stored data” … “So as to associate the data written to the storage medium with a log entry, a different sequence number (PgmSeqNum, PSN) may be associated with each transaction affecting the data or metadata, or block status on the NVS.” Where PSN is page serial # providing ordering across writes – Bennett abstract, 0055;] until an uncorrectable error correction code (UECC) occurs [unrecoverable error occurs – Bennett 0054; validating pages having only valid data – Bennett claim 3] [Bennett does not explicitly disclose an uncorrectable error correction code, nevertheless in the same field of endeavor Shin teaches generating a uncorrectable error correction code (UECC)– Shin 0068 and performing normal operations until a UECC is detected – Shin 0152, in other words, a UECC is the trigger/boundary at which a recovery operation is triggered]; and
rebuilding mapping tables according to pages from the last checkpoint up to a last validated page before the UECC occurs [update the recovered metadata so that the metadata correctly represents the stored data – Bennett abstract; the metadata may be repaired (reads on rebuilding mapping tables) by: applying the transactions of the transaction log to the checkpointed metadata to update the metadata; discovering data written during a time when the transaction log had not as yet been updated to include a transaction; and, applying the transactions in the ordered recovery log to the updated metadata - Bennett 0012; if the page metadata read from the physical page location having a value of P+1 contains valid page metadata, storing the valid page metadata read from the physical page location to a recovery log - Bennett claim 3; maintaining a checkpointed copy of a dynamic table in non-volatile storage (NVS), and maintaining a transaction log for the dynamic table in NVS. When the dynamic table is not current or needs to be restored, the method includes discovering changes to the dynamic table that are not contained in the transaction log and updating the dynamic table by applying the transactions in the transaction log and the discovered changes. It may also include discovering entries in the transaction log which did not actually occur, such as a situation where the transaction log is written to NVS before one or more of the transactions being logged has started and/or finished being written to NVS - Bennett 0010, 0012] [adaptive recovery aka adaptive defense code unit 211 – Shin fig 7 & paragraph 0057].
Bennett does not explicitly disclose an uncorrectable error correction code, although this limitation is suggested by the use of error correction codes (Bennett 0007, 0046, 0075, 0110) and the occurrence of an unrecoverable error (Bennett 0054).
Nevertheless, in the same field of endeavor Shin teaches means for reducing latency of a defense code in a memory device suffering from an uncorrectable error (Shin title, abstract, 0003) wherein a uncorrectable error correction code is generated upon encountering an uncorrectable error (Shin 0068).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to utilize an uncorrectable error correction code in the invention of Bennett as taught by Shin because it would be advantageous for reducing latency of a defense code in a memory device suffering from an uncorrectable error (Shin 0003).
With respect to dependent claim 2, 9, 16 Bennett/Shin discloses wherein maintaining the one or more last write page tables further comprises updating the one or more last write page tables periodically to include at least one page serial number of a page of different data types [periodically incrementally updating checkpoint version – Bennett 0011; metadata may include…type of data – Bennett 0046].
With respect to dependent claim 3, 10, 17 Bennett/Shin discloses wherein the data type of the page is one of checkpoint type, garbage collection/merge type, or user data type [Bennett 0046, 0080, 0095, 0124, 0136].
With respect to dependent claim 4, 11, 18 Bennett/Shin discloses wherein the one or more last write page tables are periodically updated to include at least one page serial number of a page between two checkpoints [log captures writes/changes/updates between incremental checkpoints; writes between checkpoint recorded with sequence numbers - Bennett 0011, 0136, fig 2-3].
With respect to dependent claim 5, 12, 19 Bennett/Shin discloses wherein the one or more last write page tables are periodically updated by updating the one or more last write page tables after a fixed number of pages of a same page type have been flushed into the flash media or after a fixed time has passed [system_time – last_system_time - Bennett fig 2a-b].
With respect to dependent claim 6, 13, 20 Bennett/Shin discloses wherein the one or more last write page tables are periodically saved when the checkpoint is saved into the flash media [write metadata segments to NVS - Bennett fig 2c; A snapshot (checkpoint) of the volatile metadata may be taken, stored in NVS and used as a first baseline. Each time that the file management system causes data to be written to the NVS, the association between the logical element and the physical location thereof is updated and stored in the volatile metadata, along with any changed attributes of the data or storage location, and the transaction is also stored in the log in volatile storage- Bennett 0076-0080].
With respect to dependent claim 7, 14 Bennett/Shin discloses in response to the page with the highest page serial number in the one or more last write page tables is invalid, validating a page with a second highest page serial number in the one or more last write page tables [pages are validated until an uncorrectable error occurs, at which time the page before the UECC becomes the last valid page with a second highest sequence/serial # - Bennett claim 3 & paragraph 0054 in view of Shin 0068].
Response to Arguments
Applicant's arguments have been fully considered but are not persuasive in view of the prior art. All claims pending in the instant application remain rejected. Please note that any rejections/objection not maintained from the previous Office Action have been rectified either by applicant's amendment and/or persuasive argument(s).
Regarding applicant’s arguments on page 10, that “At best, Bennett teaches maintaining checkpointed metadata (referred to in Bennett as a "dynamic table") and a transaction log, and after a crash/dirty shutdown, reading a per- block boundary value (MaxPage/"MAX") from the checkpointed metadata and scanning flash blocks/pages as needed to discover data written after the checkpoint, SO that the metadata can be repaired. However, Bennett is silent about maintaining one or more last write page tables, by periodically updating the one or more last write page tables to include a page serial number of a last page being written in a flash media and periodically saving the one or more last write page tables to the flash media, and during a process of rebuilding mapping tables after an abnormal power off, reading, from the flash media, the one or more last write page tables to obtain a plurality of page serial numbers stored therein, starting from a highest page serial number among the plurality of page serial numbers, validating one or more pages corresponding to the plurality of page serial numbers, until a valid page is identified, validating only pages having page serial numbers after the identified valid page, until an UECC occurs, and rebuilding mapping tables according to pages from the last checkpoint up to a last validated page before the UECC occurs, as recited in Claim 1.” [The examiner respectfully submits that amended grounds of rejection necessitated by amendments to the claims have rendered the remarks moot/unpersuasive, as integrated into the rationale above. More specifically, the combination of Bennett/Shin teaches the limitations/features that applicant alleges are missing because different terminology that is functionally equivalent is used in Bennett/Shin to teach:
a ‘last write page table’ as dynamic table of metadata representing data stored in NVS and a checkpointed version of the dynamic table is stored in NVS along with a transaction log. Using a broadest reasonable interpretation, the claimed ‘last write page table’ is simply a table that records a logical address and which page was last written. Bennett’s combined teaching of a dynamic map table, log, per-block highest sector known recorded, MaxPage/MaxNum and PSN stored per page reads on the broadest reasonable interpretation of the ‘last write page table’ and is checkpointed to NVS.
periodically updating the one or more last write page tables to include a page serial number of a last page being written in a flash media and periodically saving the one or more last write page tables to the flash media – this is taught by Bennett/Shin as a PSN being stored in spare area with data, see Bennett fig 2a-c where periodic updating/checkpointing is performed using these PSNs].
Remaining arguments are understood to be directed to amended subject matter that has been addressed in the amended rejection above, or otherwise predicated on the previous arguments being persuasive and thus are unpersuasive at least on dependency merits.
All remarks are understood to have been addressed herein. If any issues remain which may be clarified by the examiner, the applicant is invited to contact the examiner to set up a telephone interview.
When responding to the office action, any new claims and/or limitations should be accompanied by a reference as to where the new claims and/or limitations are supported in the original disclosure.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, 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).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any extension fee pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MARWAN AYASH whose telephone number is (571)270-1179. The examiner can normally be reached 9a-730p M-R.
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, Rocio del Mar Perez-Velez can be reached on 571-270-5935. 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.
/Marwan Ayash/ - Examiner - Art Unit 2133
/ROCIO DEL MAR PEREZ-VELEZ/Supervisory Patent Examiner, Art Unit 2133