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 06/8/26. Claims 1-11, 19-27 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 § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claim 27 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA the applicant regards as the invention. The recitation “cause the electronic device to: the first type of data in accordance with a difference between the first count and the first quantity of invalid data units” appears to be missing a verb so that the claim is indefinite as to what it is doing to achieve its intended purpose.
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 2-11, 19-27 are rejected under 35 U.S.C. 103 as being unpatentable over Ouyang (US PGPUB # 20170075805) in view of Shaharabany (US Patent # 9747202). With respect to independent claims 2, 19, 24 Ouyang/Shaharabany discloses: A memory system [Ouyang fig 1], comprising:
one or more memory devices [Ouyang fig 1]; and
processing circuitry coupled with the one or more memory devices [controller/processing circuit coupled with the memory device - Ouyang fig 1-2] and configured to cause the memory system to:
determine, in accordance with accessing a data structure that tracks respective types of data associated with data units of a data block [various data structures including linked lists, circular buffer(s), hot list, LRU list, track respective types of data associated with data units of a data block – Ouyang abstract, 0031, 0037-0039, fig 3], a first quantity of invalid data units [a validity metric that increases with a proportion of valid to invalid objects of the one or more objects of the each block – Ouyang claim 1; temperature of a block is determined according to a function that increases with a number of valid objects in a block, accordingly a smaller/lower temperature indicates a large quantity of invalid data units and low quantity of valid data units, and conversely, a larger/higher temperature indicates a low quantity of invalid data units and high quantity of valid data units – Ouyang 0046; controller that maintains a temperature for a plurality of data blocks, the temperature calculated according to a function that increases with a number of valid data objects in the block and recency with which the valid data objects have been accessed– Ouyang abstract; FTL controller 210 may implement a garbage collection module 302 that performs garbage collection to free up blocks of memory that include a large number of invalid data objects – Ouyang 0034] [counter tracks valid/invalid data … most of the pages in block 23 are invalid (as indicated by flags in the list or by some other notation) – Shaharabany fig 7, col 7 line 61 - 8 lines 25], from among a plurality of data units included in the data block [pages are data units included in a data block - Ouyang 0033], that are associated with a first type of data [each different temperature bin is understood to be a different type of data – Ouyang fig 3] and a second quantity of invalid data units [each temperature and/or validity metric indicates a quantity of invalid data units - Ouyang 0046, fig 3, claim 1] [counter tracks valid/invalid data … most of the pages in block 23 are invalid (as indicated by flags in the list or by some other notation) – Shaharabany fig 7, col 7 line 61 - 8 line 25], from among the plurality of data units included in the data block, that are associated with a second type of data [each different temperature bin is understood to be a different type of data – Ouyang fig 3]; and
update, in accordance with the first quantity of invalid data units and the second quantity of invalid data units, a first count that tracks valid data units of the data block that are associated with the first type of data and a second count that tracks valid data units of the data block that are associated with the second type of data [valid/invalid counts for pages per hot/cold data block are continuously updated as pages/objects are invalidated/moved/changed (temperature update module – Ouyang fig 3) as they change based on I/O activity – Ouyang 0036, 0043-0045; V=(number of valid objects in the block)/(total number of objects in the block) – Ouyang 0048] [valid/invalid & hot/cold blocks/pages and numbers corresponding thereto are updated during the course of system operation; storage module updates the entries in the list with the destination block ID and the used pages (660). The storage module 100 also updates the management data in the translation layer (670) – Shaharabany fig 6-7, col 8 lines 1-25].
Ouyang does not explicitly disclose quantities of valid/invalid data units or pages. Nevertheless in the same field of endeavor, Shaharabany teaches means for identifying hot/cold data and means for tracking/counting valid/invalid data to determine a quantity of valid/invalid pages (Shaharabany fig 6-7, col 7 line 61 - 8 lines 25).
Therefore, Ouyang/ Shaharabany teaches all limitations of the instant claim(s).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to implement means for identifying hot/cold data and means for tracking/counting valid/invalid data to determine a quantity of valid/invalid pages in the invention of Ouyang as taught by Shaharabany because it would be advantageous for optimizing garbage collection operations and making them more efficient (Shaharabany col 1 lines 20-27).
With respect to dependent claims 3, 20, 25 Ouyang/Shaharabany discloses access one or more bits in the data structure that indicate a respective type of data of the data units of the data block, wherein determining the first quantity of invalid data units that are associated with the first type of data and the second quantity of invalid data units that are associated with the second type of data is in accordance with the one or more bits [tag/bit/flag/metadata in data structure indicating type of data and facilitates determining invalid data for garbage collection – Ouyang 0045] [counter tracks valid/invalid data … most of the pages in block 23 are invalid (as indicated by flags in the list or by some other notation) – Shaharabany fig 7, col 7 line 61 - 8 lines 25; Shaharabany col 7 lines 11-20, col 8 lines 12-22, fig 5-8].
With respect to dependent claims 4, 21, 26 Ouyang/Shaharabany discloses access one or more bits in the data structure that indicate a respective validity of the data units of the data block, wherein determining the first quantity of invalid data units that are associated with the first type of data and the second quantity of invalid data units that are associated with the second type of data are in accordance with the one or more bits [tag/bit/flag/metadata in data structure indicating type of data and facilitates determining invalid data for garbage collection – Ouyang 0045] [counter tracks valid/invalid data … most of the pages in block 23 are invalid (as indicated by flags in the list or by some other notation) – Shaharabany fig 7, col 7 line 61 - 8 lines 25; Shaharabany col 7 lines 11-20, col 8 lines 12-22, fig 5-8].
With respect to dependent claims 5, 22, 27 Ouyang/Shaharabany discloses wherein, to update the first quantity of valid data units and the second quantity of valid data units, the processing circuitry is configured to cause the memory system to: update the first count that tracks valid data units of the data block that are associated with the first type of data in accordance with a difference between the first count and the first quantity of invalid data units; and update the second count that tracks valid data units of the data block that are associated with the second type of data in accordance with a difference between the second count and the second quantity of invalid data units [valid/invalid counts for pages per hot/cold data block are continuously updated as pages/objects are invalidated/moved/changed (temperature update module – Ouyang fig 3) as they change based on I/O activity – Ouyang 0036, 0043-0045; V=(number of valid objects in the block)/(total number of objects in the block) – Ouyang 0048] [valid/invalid & hot/cold blocks/pages and numbers corresponding thereto are updated during the course of system operation – Shaharabany fig 7, col 8 lines 1-25].
With respect to dependent claims 6, 23 Ouyang/Shaharabany discloses wherein the processing circuitry is further configured to cause the memory system to: receive, from a host system, a command to update the first count that tracks valid data units of the data block that are associated with the first type of data and the second count that tracks valid data units of the data block that are associated with the second type of data, wherein accessing the data structure is in accordance with the command [FTL controller 210 may include an input/output (I/O) module 300 that executes read and write instructions from a host interface 208 and page metadata & valid/invalid metrics tracked/updated in response to commands from host so that validity/invalidity metrics are updated accordingly – Ouyang 0032, 0048, fig 4-5] [host access uses hot/cold list to determine block temperature and select last open hot or cold block and hot/cold & valid/invalid counts are updated accordingly – Shaharabany fig 4].
With respect to dependent claims 7 Ouyang/Shaharabany discloses mark one or more data units of the data block as invalid; access one or more bits of the data structure indicating that the one or more data units are associated with the first type of data; and decrement the first count that tracks valid data units of the data block that are associated with the first type of data in accordance with the one or more bits [valid/invalid counts and flags/tags/bits for pages per hot/cold data block are continuously updated as pages/objects are invalidated/moved/changed (temperature update module – Ouyang fig 3) as they change based on I/O activity – Ouyang 0036, 0043-0045; V=(number of valid objects in the block)/(total number of objects in the block) – Ouyang 0048] [valid/invalid & hot/cold blocks/pages and numbers corresponding thereto are updated during the course of system operation – Shaharabany fig 7, col 8 lines 1-25].
With respect to dependent claims 8 Ouyang/Shaharabany discloses wherein the data structure that tracks respective types of data associated with the data units of the data block is stored in a first data unit of the data block, in static random access memory of the memory system, in a second data block different from the data block, in a second memory system different from the memory system, or any combination thereof [Ouyang 0022, 0045, fig 3] [Shaharabany fig 3, 5-8].
With respect to dependent claims 9 Ouyang/Shaharabany discloses select the data block from a plurality of data blocks for a reorganization procedure in accordance with the updated first count and the updated second count [Ouyang fig 3-5].
With respect to dependent claims 10 Ouyang/Shaharabany discloses wherein first data units comprising the first type of data are associated with a first color and second data units comprising the second type of data are associated with a second color [hot=red; cold=blue - Ouyang fig 3-5].
With respect to dependent claims 11 Ouyang/Shaharabany discloses wherein the first type of data is hot data and the second type of data is cold data, the hot data associated with a higher invalid frequency than the cold data [Ouyang 0038, 0050].
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 rejection/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-11, that “Ouyang is generally directed to "maintain[ing] a temperature for a plurality of data blocks, the temperature calculated according to a function that increases with a number of valid data objects in the block and recency with which the valid data objects have been accessed." Ouyang, Abstract. At portions cited by the Office Action, Ouyang describes "a temperature update module 308 that determines the temperature of blocks based on both the number of valid objects stored therein and the recency with which the data objects thereof have been accessed." Id. [0036]. According to Ouyang, "the temperature T of a block may be calculated as T=V*R, where V is a metric of a number of valid data objects stored in the block and R is a metric of the recency with which the data objects stored in the block have been accessed." Id. [0048]. Ouyang further discusses that "[t]he temperature of the block storing the formerly last object in the hot list 315 may [] be updated," where "[i]f the change in temperature means that the temperature corresponds to a different bin 320a-320c, then the bin number of the block is updated." Id. [0043]. The Office Action appears to allege that calculating a temperature of a block according to a number of valid data objects in a data block and the recency with which the data objects have been accessed, as in Ouyang, is relevant to: update, in accordance with the first quantity of invalid data units and the second quantity of invalid data units, a first count that tracks valid data units of the data block that are associated with the first type of data and a second count that tracks valid data units of the data block that are associated with the second type of data, as recited in independent claim 2. However, the techniques of Ouyang do not teach or suggest the aforementioned features of independent claim 2. In particular, Ouyang's description of updating a bin number for a block based on a calculated temperature of the block does not teach or suggest updating "a first count that tracks valid data units of the data block that are associated with the first type of data and a second count that tracks valid data units of the data block that are associated with the second type of data," as recited in independent claim 2, for at least the reason that Ouyang makes no mention of maintaining different counters to track valid objects of a data block for different data types. ” [The examiner respectfully submits that the rejection is based on the combined teachings of Ouyang in view of Shaharabany and the arguments appear to address the reference as isolated teachings without addressing the proposed 103-rejection combination. More specifically, the rejection rationale does not rely on Ouyang, alone, in teaching the update of a bin #. Rather Ouyang is relied upon for teaching maintaining block level metrics based on the # of valid objects in the block and separately identifying whether valid objects are in a hot list or are cold. Ouyang’s validity metric teaches a number of valid objects in a block and a recency metric is based on the # of valid objects in a block that are part of the hot list. Lastly, Ouyang teaches that metadata for each object may include a flag indicating if the object is cold or on the cold list. As such Ouyang teaches per-object validity and type information upon which valid objects and respective types are identified. Ouyang does not explicitly disclose quantities of valid/invalid data units or pages. Nevertheless in the same field of endeavor, Shaharabany teaches means for identifying hot/cold data and means for tracking/counting valid/invalid data to determine a quantity of valid/invalid pages (Shaharabany fig 6-7, col 7 line 61 - 8 line 25) – so that the combination of Ouyang/Shaharabany teaches a broadest reasonable interpretation of the claimed “updating a first count that tracks valid data units of the data block that are associated with the first type of data and a second count that tracks valid data units of the data block that are associated with the second type of data". It is noted that Shaharabany is relied on for teaching a counter tracking valid/invalid data (applicable to hot/cold data types) … most of the pages in block 23 are invalid (as indicated by flags in the list or by some other notation) – Shaharabany fig 7, col 7 line 61 - 8 line 25 & each different temperature bin is understood to be a different type of data – Ouyang fig 3].
Regarding applicant’s arguments on page 11-12, that “Shaharabany does not overcome the deficiencies of Ouyang. Shaharabany is directed to "identifying hot and cold data." Shaharabany, Abstract. At portions cited by the Office Action, Shaharabany discusses "a garbage collection operation to generate empty blocks," where a storage module "allocates a destination block with free space . .. [and] selects a source block" Id. col. 7, 11. 61-64. Shaharabany states that selection of a source block "can be done by looking for the blocks with the least amount of valid information (e.g., as tracked by a counter)." Id. col. 7, 11. 65-67. Shaharabany further discusses "find[ing] the source block in the hot/cold list" and "updat[ing] the entries in the list with the destination block ID and the used pages." Id. col. 8, 11. 2-6. That is, Shaharabany provides for a garbage collection operation where a source block is copied to a destination block and a hot/cold list is updated based on the garbage collection operation. However, Shaharabany does not teach or suggest "update[ing]… a first count that tracks valid data units of the data block that are associated with the first type of data and a second count that tracks valid data units of the data block that are associated with the second type of data," as recited in amended independent claim 2. Specifically, Shaharabany fails to contemplate managing counters of valid data objects within a data block corresponding to different types of data, instead merely relating to identifying an overall block temperature as part of garbage collection operations. [The examiner respectfully submits that it is the combination of the two references that teaches this limitation since Ouyang teaches block level validity metrics, hot/cold data type classification and per object metadata flags, and Shaharabany teaches hot/cold list management, page validity tracking and valid data counters used for garbage collection so that the claimed per data type counters are obvious over the combination of the teachings of the two references].
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