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 .
Information Disclosure Statement
The Information Disclosure Statement filed on February 6, 2025 is considered.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-6, 9-15 and 18 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Talagala et al. (US 2013/0275656 A1, hereinafter Talagala).
Regarding claim 1, Talagala discloses a data storage device (figure 1A, 102) comprising: a memory device (figure 1A, 110); and a memory controller (figure 1A, 104) configured to extract a key value from a modified logic address generated by at least modification of a source logic address externally provided ([0062] and [0067], one or more clients 114 are in communication with the non-volatile memory device 102 through the key-value store module 116, wherein key-value store module 116 maintains one or more key-value stores 118 that associate data values with unique keys, and provides the data values to the clients 114 in exchange for the corresponding keys, and the key-value store module 116 may divide a logical address space into a key portion and a data value portion to share a single logical address space between keys and data values), and map, to a physical address of the memory device, an index generated based on the modified logic address and the key value ([0067], using a single logical address space, a single mapping structure, or the like for mapping keys to data values and for mapping logical addresses to physical locations on the non-volatile memory media 110).
Regarding claim 2, Talagala discloses that the memory controller is configured to generate, as the modified logic address, a converted logic address by converting the source logic address at least once ([0224], the key-value mapping module 602 converts or maps a key to a logical address without a key-value index or another key-value specific mapping structure).
Regarding claim 3, Talagala discloses that the memory controller is configured to generate the converted logic address by performing a shift operation on the source logic address ([0225], key-value mapping module 602 may divide a logical address space by separating logical addresses of the logical address space into a key address portion and a value address portion, and allows the key-value store module 116 to efficiently store data values of variable lengths while still using consecutive keys).
Regarding claim 4, Talagala discloses that the memory controller is configured to convert the source logic address at least once to generate a converted logic address, and combine the source logic address with the converted logic address to generate the modified logic address ([0227], the key-value mapping module 602 maps or converts a key into a logical address or key address portion of a logical address, and perform a predefined transform, such as a hash function, on a key to convert the key to a logical address or key address portion of a logical address).
Regarding claim 5, Talagala discloses that the memory controller is configured to generate the converted logic address by performing a shift operation on the source logic address ([0225], key-value mapping module 602 may divide a logical address space by separating logical addresses of the logical address space into a key address portion and a value address portion, and allows the key-value store module 116 to efficiently store data values of variable lengths while still using consecutive keys).
Regarding claim 6, Talagala discloses that the memory controller is configured to combine, by at least one of an arithmetic summation, a logic summation and a logic multiplication, the source logic address with the converted logic address to generate the modified logic address ([0176], storage bus controller 348 will cause the one or more commands to multiplied to each of the each of the storage I/O buses 210a-n with the logical address of the command mapped to a first physical addresses for storage I/O bus 210a, and mapped to a second physical address for storage I/O bus 210b).
Regarding claim 9, Talagala discloses that the memory controller is configured to generate the index by performing a hash function set based on the modified logic address and the key value ([0227], the key-value mapping module 602 may perform a predefined transform, such as a hash function, on a key to convert the key to a logical address or key address portion of a logical address).
Regarding claim 10, Talagala discloses a method of operating a data storage device (figure 1A, 102) including a memory device (figure 1A, 110) and a memory controller (figure 1A, 104), the method comprising: generating, by the memory controller, a modified logic address based on a source logic address externally provided ([0063], the key-value store module 116 stores data values in a restricted set of logical block addresses of the non-volatile memory device 102, so that the data values are only available to clients 114 through the key-value store module 116); extracting, by the memory controller, a key value based on the modified logic address ([0062] and [0067], one or more clients 114 are in communication with the non-volatile memory device 102 through the key-value store module 116, wherein key-value store module 116 maintains one or more key-value stores 118 that associate data values with unique keys, and provides the data values to the clients 114 in exchange for the corresponding keys, and the key-value store module 116 may divide a logical address space into a key portion and a data value portion to share a single logical address space between keys and data values); generating, by the memory controller, an index based on the modified logic address and the key value ([0066], sparse logical address space allows the non-volatile memory device 102 to use a single logical address space for keys and for the associated data values); and mapping, by the memory controller, the index to a physical address of the memory device ([0067], using a single logical address space, a single mapping structure, or the like for mapping keys to data values and for mapping logical addresses to physical locations on the non-volatile memory media 110).
Regarding claim 11, the limitations of the claim are rejected as the same reasons as set forth in claim 2.
Regarding claim 12, the limitations of the claim are rejected as the same reasons as set forth in claim 3.
Regarding claim 13, the limitations of the claim are rejected as the same reasons as set forth in claim 4.
Regarding claim 14, the limitations of the claim are rejected as the same reasons as set forth in claim 5.
Regarding claim 15, the limitations of the claim are rejected as the same reasons as set forth in claim 6.
Regarding claim 18, the limitations of the claim are rejected as the same reasons as set forth in claim 9.
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.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
Claims 7-8, 16-17 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Talagala et al. (US 2013/0275656 A1, hereinafter Talagala) in view of Shen et al. (US 2007/0088919 A1, hereinafter Shen).
Regarding claim 7, Talagala differs from the claimed invention in not specifically teaching that the memory controller is configured to generate the modified logic address when workloads of stride patterns with a uniform difference between adjacent source logic addresses are detected in requests of a same type, which are externally and continuously received. However, Shen teaches an effective mechanism with appropriate architecture support that enables software to specify data access patterns that are to be passed to underlying hardware comprising a load/store unit in the CPU compares the effective addresses specified in the memory access instructions to the contents of the pattern registers to see if there is a match, and the load/store unit copies memory access pattern hints from the pattern register if there is a match ([0043]). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Talagala in having that the memory controller is configured to generate the modified logic address when workloads of stride patterns with a uniform difference between adjacent source logic addresses are detected in requests of a same type, which are externally and continuously received, as per teaching of Shen in order to enable software to specify data access patterns that are to be passed to underlying hardware.
Regarding claim 8, Shen discloses the memory controller is configured to extract a first key value from the source logic address, and map a first index generated based on the source logic address and the first key value to a physical address of the memory device when the workloads of the stride patterns are not detected (figure 2 and [0043], the load/store unit uses the default memory hints when there is not match) such that the operations will revert to normal load and store operations when the operations will revert to normal load and store operations in order to optimize the system's performance for the specific memory access pattern.
Regarding claims 16, the limitations of the claim are rejected as the same reasons as set forth in claim 7.
Regarding claim 17, the limitations of the claim are rejected as the same reasons as set forth in claim 8.
Regarding claim 20, Talagala discloses a data storage device (figure 1A, 102) comprising: a memory device (figure 1A, 110); and a memory controller (figure 1A, 104) configured to generate a physical address corresponding to a source logic address based on a key value extracted from a modified logic address generated from the source logic address included in a write request in response to the write request externally provided ([0063], the key-value store module 116 stores data values in a restricted set of logical block addresses of the non-volatile memory device 102, so that the data values are only available to clients 114 through the key-value store module 116). Talagala differs from the claimed invention in not specifically teaching that when the memory controller receives a stride patterned access request in which a difference between the source logic addresses included in continuously provided write requests is uniform, the key values extracted from the source logic addresses are identical, and the key values extracted from modified logic addresses generated based on the source logic addresses are different. However, Shen teaches an effective mechanism with appropriate architecture support that enables software to specify data access patterns that are to be passed to underlying hardware comprising a load/store unit in the CPU compares the effective addresses specified in the memory access instructions to the contents of the pattern registers to see if there is a match, and the load/store unit copies memory access pattern hints from the pattern register if there is a match ([0043]). Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Talagala in having that when the memory controller receives a stride patterned access request in which a difference between the source logic addresses included in continuously provided write requests is uniform, the key values extracted from the source logic addresses are identical, and the key values extracted from modified logic addresses generated based on the source logic addresses are different, as per teaching of Shen, in order to enable software to specify data access patterns that are to be passed to underlying hardware.
Claim 19 is rejected under 35 U.S.C. 103 as being unpatentable over Talagala et al. (US 2013/0275656 A1, hereinafter Talagala) in view of Durham et al. (US 2017/0285976 A1, Durham).
Regarding claim 19, Talagala discloses a data storage device comprising: (figure 1A, 102) comprising: a memory device (figure 1A, 110); and a memory controller (figure 1A, 104) configured to control the memory device, wherein the memory controller comprises: a mapping manager configured to generate an index based on a key value and a modified logic address ([0063], the key-value store module 116 stores data values in a restricted set of logical block addresses of the non-volatile memory device 102, so that the data values are only available to clients 114 through the key-value store module 116), and generate mapping information by mapping the index and a physical address of the memory device, the key value being generated by extracting from the modified logic address generated by converting a source logic address externally provided at least once ([0062] and [0067], one or more clients 114 are in communication with the non-volatile memory device 102 through the key-value store module 116, wherein key-value store module 116 maintains one or more key-value stores 118 that associate data values with unique keys, and provides the data values to the clients 114 in exchange for the corresponding keys, and the key-value store module 116 may divide a logical address space into a key portion and a data value portion to share a single logical address space between keys and data values); and a processor configured to control the memory device to program write data into a position of the memory device, corresponding to the mapping information in response to a write request externally provided ([0146], the write data pipeline 106 includes a write buffer 320 that buffers data for efficient write operations, and allows a write operation to send an entire page of data to the non-volatile memory media). Talagala differs from the claimed invention in not specifically teaching that the key value extracted from specified bit digit values of the modified logic address, is generated with a random distribution, and wherein the write data is distributed and stored in the memory device based on the key value with the random distribution. However, Durham teaches a memory controller including an address scrambler to scramble a physical memory address utilized to access the memory such that the scrambler may generate a random number per power-up of a computing platform, which may be XORed with the physical address and causing corresponding unencrypted data to include a random distribution of the plurality of bits ([0035]-[0036]) in order to provide memory integrity. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Talagala in having that the key value extracted from specified bit digit values of the modified logic address, is generated with a random distribution, and wherein the write data is distributed and stored in the memory device based on the key value with the random distribution, as per teaching of Durham, in order to provide memory integrity.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Bae et al. (US 2018/0052768 A1) discloses a memory controller includes a logical-to-logical (L2L) mapping table including mapping information between a first logical area and a second logical area and a logical-to-physical (L2P) mapping table including mapping information between the second logical area and a physical area of a memory device (abstract and figure 6).
Park (US 2021/0200444 A1) discloses a memory system including a plurality of memory dies configured to store data in various storage modes; and a controller coupled with the plurality of memory dies via a plurality of channels and configured to perform a correlation operation on multiple read requests among a plurality of read requests received from a host so that the plurality of memory dies output plural pieces of data corresponding to the plurality of read requests via the plurality of channels in an interleaving way (abstract and figure 8).
Lee et al. (US 2022/0043724 A1) discloses memory controller is used to map the second logical blocks to the backup physical blocks according to the second mapping table, and the host system is configured to recover an environment set at the data backup operation (abstract).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ZHUO H LI whose telephone number is (571)272-4183. The examiner can normally be reached Mon. Tue. and Thurs. 8:00-4:00 PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Rocio Del Mar Perez-Velez can be reached at (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.
/ZHUO H LI/Primary Examiner, Art Unit 2133