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
Response to Amendment
This office action has been issued in response to the response filed 04/15/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-2, 9-20 are rejected under 35 U.S.C. 103 as being unpatentable over Zhang (US PGPUB # 20160179386) in view of Palmer (US PGPUB # 20220197790) further in view of Tang et al (US PGPUB # 20230393976). With respect to independent claims 1, 16, 17 Zhang/Palmer/Tang discloses: A method of determining data hotness [Data being stored in a block of flash memory system may be characterized as being frequently modified or infrequently modified (hot/cold) based on a heuristic. When performing garbage collection, if the data from hot blocks is consolidated and data from cold blocks is separately consolidated by writing the data to different free blocks - Zhang abstract] [determine data temperature/hotness – Tang 0013], comprising:
acquiring a page table entry region count corresponding to a first virtual block of a plurality of virtual blocks [Zhang does not explicitly teach a page table entry region count corresponding to a virtual block, although Zhang teaches a functional equivalent as: For each of the blocks in which valid data is stored: maintaining a garbage collection parameter comprising at least an age parameter and a staleness parameter, where the age parameter is representative of a number of times any block of the usable memory has been erased since a last time the block has been erased, and a staleness parameter may represent a number of stale (invalid) pages of the block – Zhang 0020, 0022] and a valid data count of the first virtual block [For each of the blocks in which valid data is stored: maintaining a garbage collection parameter comprising at least an age parameter and a staleness parameter, where the age parameter is representative of a number of times any block of the usable memory has been erased since a last time the block has been erased, and a staleness parameter may represent a number of stale (invalid) pages of the block – Zhang 0022], wherein the first virtual block includes at least one memory block in a memory device [virtual block according to this definition appears coextensive in scope with logical blocks of Zhang – Zhang 0010, 0020 ] [logical address space may be divided into any quantity of portions (reads on region), each corresponding to a different subset of a logical-to-physical (L2P) table, and the bitmap (reads page table entry) may include any quantity of corresponding bits (reads on region count). To perform garbage collection on the block, the bitmap may be used to identify one or more subsets of the L2P table to evaluate to determine whether different sets of data within the block are valid or invalid – Palmer abstract, fig 2, 5; virtual blocks disclosed by Palmer in 0032];
determining a data distribution state of data stored in the first virtual block based on the page table entry region count and the valid data count [determining valid/invalid data in subset of logical address space - Zhang claim 10, paragraph 0020, 0022 & Palmer 0039];
determining data hotness of the data stored in the first virtual block based on the data distribution state [determining the hot or cold status of the block being garbage collected using by computing a heuristic value, and when the block is garbage collected, all valid data of the block is designated to be either hot data or cold data based on the heuristic value the block - Zhang claim 10]; and
after determining the first virtual block as a first target virtual block based on the data hotness and the valid data count of the first virtual block being lower than the plurality of virtual blocks [after determining subset of blocks (virtual block) that satisfy VDC constraint/threshold, select blocks according to a first and second garbage collection scheme that may prioritize cold blocks with lower valid data count – Tang fig 3; “In a first garbage collection scheme, the garbage collection source block is the block with the lowest VDC. This scheme is often referred to as the “greedy VDC scheme” or “minimum VDC scheme.”” – Tang 0013; 2D-Greedy scheme prioritizes cold blocks for garbage collection – Tang 015; Garbage collection management component identifies blocks with a VDC that satisfy a VDC constraint (e.g., by having a VDC that is lower than a VDC threshold). From the identified blocks, the garbage collection management component selects a first block as a potential garbage collection source block using a first garbage collection scheme such as the greedy VDC scheme described above. The garbage collection management component selects a second block from the identified blocks as another potential garbage collection source block using a second garbage collection scheme such as the 2D greedy VDC scheme – Tang 0016], performing a garbage collection on the first target virtual block to move valid data of the first target virtual block to a second virtual block [garbage collection performed on block selected – Tang fig 3 step 340] [performing garbage collection based on selecting block for garbage collection – Zhang claim 10].
Zhang does not explicitly disclose a page table entry region count corresponding to a virtual block, although Zhang teaches a functional equivalent as articulated above. Nevertheless in the same field of endeavor Palmer teaches means for valid data identification for garbage collection (Palmer abstract) wherein a logical address space may be divided into any quantity of portions (reads on region), each corresponding to a different subset of a logical-to-physical (L2P) table, and the bitmap (reads on page table entry) may include any quantity of corresponding bits (reads on region count). To perform garbage collection on the block, the bitmap may be used to identify one or more subsets of the L2P table to evaluate to determine whether different sets of data within the block are valid or invalid – Palmer abstract, fig 2, 5; virtual blocks disclosed by Palmer in 0032
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to use a page table entry region count corresponding to a virtual block in the invention of Zhang as taught by Palmer because it would be advantageous for increasing an efficiency associated with garbage collection operations performed by the memory system (e.g., by reducing one or more related latencies (Palmer 0012).
Zhang/Palmer does not explicitly disclose performing garbage collection on a selected block “after determining the first virtual block as a first target virtual block based on the data hotness and the valid data count of the first virtual block being lower than the plurality of virtual blocks”. Nevertheless in the same field of endeavor Tang teaches controlling variation of valid data counts in garbage collection wherein weighting factors, valid data counts and data temperatures are all considered when selecting blocks for garbage collection, making it possible to select a cold(er) block with a low(er) VDC for garbage collection – Tang 0049-0050.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to perform garbage collection on a selected block after determining a first virtual block as a first target virtual block based on a data hotness and a valid data count of the first virtual block being lower than the plurality of virtual blocks in the invention of Zhang/Palmer as taught by Tang because it would be advantageous for improving memory device performance consistency by reducing the variation in the VDCs of garbage collection source blocks when hot/cold data separation is being conducted (Tang 0019).
With respect to independent claims 16, 17 since the instant claims are substantially similar in scope relative to claim 1, they are rejected according to substantially the same rationale as applied to claim 1, with minor differences considered:
A memory controller, comprising: a cache and a processor communicatively connected with each other, the cache having computer instructions stored therein [Zhang 0059, 0072; Palmer 0018].
With respect to dependent claim 2 Zhang/Palmer/Tang discloses wherein the acquiring the page table entry region count corresponding to the first virtual block includes: acquiring a page table entry bitmap corresponding to the virtual block, the page table entry bitmap representing a distribution state, in various page table entry regions, of logical addresses of the data stored in the virtual block; and determining the page table entry region count based on the distribution state, in various page table entry regions, of the logical addresses of the data stored in the first virtual block [any subset of the logical address space may be evaluated according to its bitmap for valid and invalid data - Zhang claim 10, paragraph 0020, 0022 & Palmer fig 2, paragraph 0039].
With respect to dependent claim 9 Zhang/Palmer/Tang discloses wherein the determining the data distribution state of data stored in the first virtual block based on the page table entry region count and the valid data count includes determining a second ratio between the page table entry region count and the valid data count, and using the second ratio to represent the data distribution state [bits per logical address region, a count of set bits is a number of regions where block or virtual block has data – Palmer fig 2; valid page counts maintained by staleness parameter and ratios of valid/invalid pages used for garbage collection parameters - Zhang table 2, claim 1-5, using a ratio between the page table entry region count and a valid data count to represent a data distribution state is consistent with teachings of Zhang table 2, claim 1-5 in view of Palmer fig 2].
With respect to dependent claim 10 Zhang/Palmer/Tang discloses wherein the larger the second ratio, the more discrete the data distribution state [more bits set for a given valid data count = valid data being spread across more logical address regions - Zhang table 2, claim 1-5 in view of Palmer fig 2].
With respect to dependent claim 11, 18 Zhang/Palmer/Tang discloses determining, based on the data hotness of data stored in each virtual block and the valid data count of each virtual block, a first target virtual block for the garbage collection; and performing the garbage collection on the first target virtual block [Zhang abstract, fig 4-5; Palmer fig 3, 5].
With respect to dependent claim 12, 19 Zhang/Palmer/Tang discloses wherein the determining, based on the data hotness of the data stored in each virtual block and the valid data count of each virtual block, the first target virtual block for the garbage collection including: acquiring a data storage volume of each virtual block; determining a valid data proportion of each virtual block based on the valid data count and the data storage volume corresponding to each virtual block; determining a collection parameter value corresponding to each virtual block according to the valid data proportion and the data hotness; and determining the first target virtual block for the garbage collection from the plurality of virtual blocks based on the collection parameter value [Zhang abstract, fig 4-5 in view of Palmer fig 3, 5].
With respect to dependent claim 13 Zhang/Palmer/Tang wherein the larger the collection parameter value, the larger a collection value of the first target virtual block [higher garbage collection parameter = higher garbage collection priority/value - Zhang abstract, fig 4-5].
With respect to dependent claim 14, 20 Zhang/Palmer/Tang discloses detecting whether an erase/program count difference between various virtual blocks is greater than a preset threshold [block ages may be compared to one another as they are numerical values that lend themselves to comparison, the claimed preset threshold may be any number, zero to infinity – Zhang abstract, 0022]; when the erase/program count difference is greater than the preset threshold, determining cold data based on the data hotness of data stored in a third , the third virtual block virtual block having a smaller erase/program count as between two virtual blocks compared with each other; determining a second target virtual block having a larger erase/program count in the two virtual blocks compared with each other, wherein an erase/program count of the second target virtual block is greater than an erase/program count of the first third virtual block where the cold data is located; and migrating the cold data into the second target virtual block, and releasing a memory block in the third virtual block that stores cold data [For each of the blocks in which valid data is stored: maintaining a garbage collection parameter comprising at least an age parameter and a staleness parameter, where the age parameter is representative of a number of times any block of the usable memory has been erased since a last time the block has been erased, and a staleness parameter may represent a number of stale (invalid) pages of the block…. an aspect of wear leveling where free blocks are selected such that a cumulative erasure count of each block in the entire flash memory is approximately equal. Alternatively the wear leveling may pertain to a specific selected portion of the flash memory - Zhang 0014, 0022 in view of 0024, 0071, 0075, teaching multiple streams of data grouping cold data together].
With respect to dependent claim 15 Zhang/Palmer/Tang discloses determining a third target virtual block having a minimum valid data count; and performing second garbage collection on the third target virtual block [greedy garbage collection - Zhang abstract, 0017].
Claims 3-8 are rejected under 35 U.S.C. 103 as being unpatentable over Zhang/Palmer/Tang further in view of Kanno (US Patent # 9946643).
With respect to dependent claim 3 Zhang/Palmer/Tang does not explicitly disclose all limitations of the instant claim. Nevertheless in the same field of endeavor Kanno teaches controlling non-volatile memory and managing a garbage collection count for each of blocks containing data written by a host, the garbage collection count indicating the number of times the data in said each of the blocks has been copied by a garbage collection operation of the nonvolatile memory wherein an elapsed time interval between updates may be maintained – Kanno col 6 lines 60-67, col 20 lines 20-29. As such, Zhang/Palmer/Tang/Kanno teaches wherein the determining the data hotness of the data stored in the first virtual block based on the data distribution state includes: acquiring an update time interval [update time interval not explicitly disclosed by Zhang/Palmer/Tang, nevertheless in the same field of endeavor Kanno teaches garbage collection in a memory system wherein an elapsed time interval between updates may be maintained – Kanno col 6 lines 60-67, col 20 lines 20-29] of a block mapping relationship [temporal characteristics drive garbage collection operations - Zhang 0060-0063] and a relative erase/program count corresponding to the first virtual block [Zhang abstract, fig 9]; determining an erase/program state corresponding to the first virtual block based on the update time interval and the relative erase/program count [the age parameter is representative of a number of times any block of the usable memory has been erased since a last time the block has been erased - Zhang 0022; blocks have associated p/e count - Kanno col 4 lines 6-7]; and determining the data hotness of the data stored in the first virtual block based on the erase/program state and the data distribution state [Zhang 0082-0083, claim 10]. It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to track an update time interval in the invention of Zhang/Palmer/Tang/Kanno because it would be advantageous for improving the garbage collection operation in terms of reducing wear and write amplification in the memory system (Kanno col 5 line 65 – col 6 line 4, col 12 lines 32-40).
With respect to dependent claim 4 Zhang/Palmer/Tang/Kanno discloses wherein the acquiring the update time interval of the block mapping relationship corresponding to the first virtual block includes: acquiring latest update time of the block mapping relationship of the virtual block; and determining a time difference between the latest update time and current time, and determining the time difference as the update time interval [an elapsed time interval between updates may be maintained – Kanno col 6 lines 60-67, col 20 lines 20-29].
With respect to dependent claim 5 Zhang/Palmer/Tang/Kanno discloses wherein the acquiring the relative erase/program count corresponding to the first virtual block includes: acquiring a first erase/program count corresponding to the first virtual block and a second erase/program count of another virtual block in an unused state; and determining the relative erase/program count based on a difference between the first erase/program count and the second erase/program count.
With respect to dependent claim 6 Zhang/Palmer/Tang/Kanno discloses wherein the determining the data hotness of the data stored in the first virtual block based on the erase/program state and the data distribution state includes: adjusting the data distribution state according to a preset adjustment coefficient to generate an adjusted data distribution state; and determining the data hotness of the data stored in the first virtual block based on the erase/program state and the adjusted data distribution state [adjusted heuristic/parameter may be used to determine data hotness – Zhang 0113, 0115, table 2, claim 1-5].
With respect to dependent claim 7 Zhang/Palmer/Tang/Kanno discloses wherein the determining the data hotness of the data stored in the first virtual block based on the erase/program state and the adjusted data distribution state includes determining a first ratio between the erase/program state and the adjusted data distribution state, the first ratio to represent the data hotness of the data stored in the first virtual block [Zhang table 2, claim 1-5].
With respect to dependent claim 8 Zhang/Palmer/Tang/Kanno wherein the larger the first ratio, the colder the data stored in the first virtual block [Zhang table 2, claim 1-5].
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 11-12, that amended claims are not taught by the cited art [The examiner respectfully submits that amended grounds of rejection necessitated by amendments to the claims have rendered the remarks moot/unpersuasive, particularly in view of the combination of prior art including newly found Tang reference as integrated into the rationale above.]
Remaining arguments are understood to be 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