DETAILED ACTION
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 communication(s) filed on 01/03/2025. Claims 1-20 have been examined and are pending in this application.
Information Disclosure Statement
The information disclosure statement (IDS) was submitted on 01/03/2025. The submission is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
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.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Colella et al. US 2024/0168889 (“Colella”).
As per independent claim 1, Colella teaches A storage device (“FIG. 1B illustrates the example memory sub-system 110 of FIG. 1A in which the memory device 130 includes multiple memory dice 134 and multiple channels 124,” para 0041) comprising:
a memory (“memory device 130” para 0041 and FIGS. 1A-B), including a plurality of storage blocks (“The memory cells of the memory devices 130 can be grouped as pages that can refer to a logical unit of the memory device used to store data. With some types of memory (e.g., NAND), pages can be grouped to form blocks.” Para 0033), each of the plurality of segment bitmaps (“The controller can create a virtual block (VB) bitmap for each respective L2P table, the VB bitmap identifying virtual blocks to which the respective L2P table points.” Para 0021) including bit information indicating a mapping slice (“The controller can create an L2P bitmap for a respective virtual block, the L2P bitmap identifying logical addresses, within each respective L2P table, that belong to the respective virtual block.” Para 0021) that corresponds to at least one of the plurality of storage blocks, the mapping slice including mapping data associated with the corresponding storage block (“The controller can create an L2P bitmap for a respective virtual block, the L2P bitmap identifying logical addresses, within each respective L2P table, that belong to the respective virtual block.” Para 0021);
a controller (“memory sub-system controller 115” para 0041 and FIGS. 1A-B) configured to, generate a merged segment bitmap by loading a first segment bitmap and a second segment bitmap from among the plurality of segment bitmaps into a buffer memory and merging the first segment bitmap and the second segment bitmap (“the method 300B is performed by the dynamic bitmap tracker 113 of FIGS. 1A-1B.” Para 0068. “At operation 360, the VB bitmap and the updated VB bitmap are combined.” Para 0071 and FIG. 3B. “The controller 115 (e.g., the dynamic bitmap tracker 113) can store L2P bitmaps 150 and VB bitmaps 160 to the local memory 119.” Para 0041. Therefore, the VB bitmap and the updated VB bitmap are loaded into a volatile memory 119),
load at least one mapping slice indicated by the merged segment bitmap into the buffer memory (“At operation 365, each impacted L2P bitmap is loaded into the volatile memory.” Para 0072 and FIG. 3B),
search for a valid page for a first data movement operation using the at least one mapping slice (“the method 400 is performed by the dynamic bitmap tracker 113 and/or the controller 115 of FIGS. 1A-1B.” Para 0080 and FIG. 4. “At operation 420, valid logical addresses are identified.” Para 0082 and FIG. 4. “At operation 430, data is migrated to a new virtual block.” Para 0083 and FIG. 4).
In FIG. 1B, Colella teaches that “the local memory 119 is fast-access volatile memory such as SRAM or TCM.” Para 0041. Further, “The controller 115 … can store L2P bitmaps 150 and VB [Virtual Block] bitmaps 160 to the local memory 119.” Para 0041. The claimed invention (see dependent claim 12), however, stores the segment bitmaps in a non-volatile memory. Therefore, Colella does not explicitly teach “that stores a plurality of segment bitmaps”.
However, FIG. 3A of Colella is a flow diagram of an example method 300A for creating a virtual block (VB) bitmap for an L2P table. At operation 320, the L2P table is read from the dice of the memory device 130. Para 0064. At operation 330, a VB bitmap is created. Para 0066. A VB bitmap is mapped to the claimed segment bitmap.
Hence, it would have been obvious to a person of ordinary skill in the art before the effective filing date of the claimed invention to further modify the scope of the invention of Colella with “that stores a plurality of segment bitmaps”. The motivation would be that the VB bitmap can be quickly accessed from the fast-access volatile memory such as SRAM or TCM, para 0041 of Colella.
As per dependent claim 2, Colella discloses the device of claim 1. Colella teaches wherein the plurality of storage blocks includes two or more object storage blocks and a target storage block, and the controller copies a valid page stored in the two or more object storage blocks from among the plurality of storage blocks to the target storage block in the first data movement operation (“At operation 420, valid logical addresses are identified. More specifically, the processing logic identifies, based on at least one L2P table associated with the identified virtual block, valid logical addresses associated with valid data stored in the identified virtual block. At operation 430, data is migrated to a new virtual block.” Paras 0082-0083 and FIG. 4).
As per dependent claim 3, Colella discloses the device of claim 1. Colella teaches wherein the plurality of storage blocks includes two or more object storage blocks and a target storage block, and wherein, in the first data movement operation, the controller copies a valid page stored in an object storage block storing data in a first memory cell type to the target storage block storing data in a second memory cell type (“At operation 430, data is migrated to a new virtual block.” Paras 0082-0083 and FIG. 4. Colella does not explicitly teach that data is migrated from a block of a first memory cell type to a block storing data in a second memory cell type. However, Colella teaches “a particular memory device can include an SLC portion, and an MLC portion, a TLC portion, a QLC portion, or a PLC portion of memory cells.” Para 0032. Therefore, Colella inherently teaches migrating data from a block having a first memory cell type to a block having a second memory cell type).
As per dependent claim 4, Colella discloses the device of claim 1. Colella teaches wherein a number of free storage blocks included in the plurality of storage blocks increases after the first data movement operation (“At a certain point, there is no more availability of empty [mapped to free] VBs and the controller can perform media management (also called a garbage collection (GC) operation) by which to move valid data from a source VB to a destination VB to free up the source VB.” Para 0018).
As per dependent claim 5, Colella discloses the device of claim 1. Colella teaches wherein the controller loads one segment bitmap from among the plurality of segment bitmaps into the buffer memory, loads at least one mapping slice indicated by the one segment bitmap into the buffer memory, and searches for a valid page for a second data movement operation using the at least one mapping slice (“At operation 365, each impacted L2P bitmap is loaded into the volatile memory. … At operation 385, additional L2P bitmaps are loaded. More specifically, if additional L2P bitmaps were impacted by a bit-flip, at operation 365 the processing logic iteratively loads another L2P bitmap into volatile memory to be updated.” Paras 0072-0074 and FIG. 3B. “At operation 420, valid logical addresses are identified.” Para 0082 and FIG. 4).
As per dependent claim 6, Colella discloses the device of claim 5. Colella teaches wherein the plurality of storage blocks includes two or more object storage blocks and a target storage block, and wherein the controller copies a valid page stored in one object storage block to the target storage block according to the second data movement operation (“At operation 420, valid logical addresses are identified. More specifically, the processing logic identifies, based on at least one L2P table associated with the identified virtual block, valid logical addresses associated with valid data stored in the identified virtual block. At operation 430, data is migrated to a new virtual block.” Paras 0082-0083 and FIG. 4).
As per dependent claim 7, Colella discloses the device of claim 5. Colella teaches wherein the controller copies a valid page stored in an object storage block to a target storage block according to the first data movement operation or the second data movement operation, wherein a number of bits stored in a memory cell included in the target storage block is greater than or equal to a number of bits stored in a memory cell included in the object storage block (“a particular memory device can include an SLC portion, and an MLC portion, a TLC portion, a QLC portion, or a PLC portion of memory cells.” Para 0032. Since the memory device includes multiple portions of multiple cell types each type having a different number of bits, after the migration operation (operation 430, FIG. 4), the number of bits of the cell where data is migrated to would be different than a number of bits of the cell of the source block from which data is migrated).
As per dependent claim 8, Colella discloses the device of claim 5. Colella teaches wherein a total size of the segment bitmaps loaded into the buffer memory before loading the at least one mapping slice into the buffer memory for the first data movement operation is larger than a total size of the segment bitmap loaded into the buffer memory before loading the at least one mapping slice into the buffer memory for the second data movement operation (“At operation 240, a VB bitmap is created.” Para 0054 and FIG. 2. “At operation 250, an updated VB bitmap is created. More specifically, the processing logic creates an updated VB bitmap for a first L2P table based on changes to the first L2P table due to programming the virtual blocks after closing the first L2P table.” Para 0055 and FIG. 2. If the same virtual block is programmed a second time then only an updated VB bitmap needs to be created. Accordingly, the size of the VB bitmaps (both VB bitmap and the updated VB bitmap) is larger than a size of the only updated VB bitmap created due to a second programming operation of the same virtual block).
As per dependent claim 9, Colella discloses the device of claim 1. Colella teaches wherein the controller sets bit information of the merged segment bitmap corresponding to bit information having a valid value, in at least one of the first segment bitmap or the second segment bitmap, to a valid value and generates the merged segment bitmap (“if the entry has been reset in the VB bitmap (1->0), processing logic resets a bit in an entry of the identified L2P bitmap corresponding to the virtual block. Further, if the entry has been set in the VB bitmap (0->1), the processing logic sets a bit in an entry of the identified L2P bitmap corresponding to the virtual block.” Para 0058 and FIG. 2).
As per dependent claim 10, Colella discloses the device of claim 1. Colella teaches wherein the controller generates the merged segment bitmap if at least one of a number of valid pages included in the storage block corresponding to the first segment bitmap or a number of valid pages included in the storage block corresponding to the second segment bitmap is less than or equal to a preset reference value (“At operation 410, a virtual block (VB) is identified. More specifically, the processing logic identifies, using the L2P bitmaps, which include the identified L2P bitmap from operation 290 (FIG. 2), a virtual block of the virtual blocks having a minimum amount of valid data.” Para 0081 and FIG. 4).
As per dependent claim 11, Colella discloses the device of claim 1. Colella teaches wherein at least one of the mapping data included in the at least one mapping slice indicates a virtual page number included in a storage block other than a storage block corresponding to the first segment bitmap and a storage block corresponding to the second segment bitmap (“This mask of bits may identify which entries in L2P tables point to the virtual pages (identified by logical address) that belong to a current VB to which the controller 115 is writing.” Para 0045).
As per dependent claim 12, Colella discloses the device of claim 1. Colella teaches wherein the plurality of segment bitmaps are stored in a storage block, from among the plurality of storage blocks, that stores data in a single-level cell type (“a particular memory device can include an SLC portion” para 0032).
As per independent claim 13, this claim is rejected based on arguments provided above for similar rejected independent claim 1 and dependent claim 8.
As per dependent claim 14, this claim is rejected based on arguments provided above for similar rejected dependent claims 2 and 5.
As per dependent claims 15-16, these claims are respectively rejected based on arguments provided above for similar rejected dependent claims 3-4.
As per independent claim 17, this claim is rejected based on arguments provided above for similar rejected independent claim 1 and dependent claim 8.
As per dependent claims 18-20, these claims are respectively rejected based on arguments provided above for similar rejected dependent claims 1, 10, and 12.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ZUBAIR AHMED whose telephone number is (571)272-1655. The examiner can normally be reached 7:30AM - 5:00PM EST.
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.
/ZUBAIR AHMED/Examiner, Art Unit 2132
/HOSAIN T ALAM/Supervisory Patent Examiner, Art Unit 2132