Prosecution Insights
Last updated: July 17, 2026
Application No. 17/339,777

Management of Namespace Block Boundary Alignment in Non-Volatile Memory Devices

Final Rejection §103§112
Filed
Jun 04, 2021
Examiner
KIM, ELIAS YOUNG
Art Unit
2135
Tech Center
2100 — Computer Architecture & Software
Assignee
Micron Technology Inc.
OA Round
8 (Final)
78%
Grant Probability
Favorable
9-10
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 78% — above average
78%
Career Allowance Rate
68 granted / 87 resolved
+23.2% vs TC avg
Strong +31% interview lift
Without
With
+31.1%
Interview Lift
resolved cases with interview
Typical timeline
2y 7m
Avg Prosecution
10 currently pending
Career history
106
Total Applications
across all art units

Statute-Specific Performance

§101
0.4%
-39.6% vs TC avg
§103
91.3%
+51.3% vs TC avg
§102
1.7%
-38.3% vs TC avg
§112
4.9%
-35.1% vs TC avg
Black line = Tech Center average estimate • Based on career data from 87 resolved cases

Office Action

§103 §112
DETAILED ACTION This action is responsive to the communication filed on 4/7/2026. Claims 1-9, 13-24, and 26-27 are pending and have been examined. 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 . Claim Rejections - 35 USC § 112 The following is a quotation of the first paragraph of 35 U.S.C. 112(a): (a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention. The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112: The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention. Claim 8 is rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention. Claim 6, on which claim 8 is dependent upon, provides for a difference between a requested size of a namespace and a total size of full blocks allocated and also provides for comparing that difference to a first size of a first partial block. Claim 6 further provides for allocating the first partial block to the namespace and leaving a remaining portion of the first partial block that is not allocated to the namespace. Claim 8 provides that the first size of the first partial block is equal to the difference. However, the specification of the application does not appear to specifically provide for a disclosure where allocation of a partial block having a size equal to the difference results in a remaining unallocated portion (paragraphs 127, 142, 169). The disclosure of the specification providing for the remaining allocation portion appear to involve a partial block having a size greater, rather than equal, to the difference (paragraphs 127, 141, 171). Claim Rejections - 35 USC § 103 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. 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-9, 13-24, and 26-27 are rejected under 35 U.S.C. 103 as being unpatentable over Frolikov (US 20190121547 A1, hereinafter Frolikov) in view of Lee (US 20200050368 A1, hereinafter Lee). As per claim 1, Frolikov teaches: A device comprising: a host interface; a controller; non-volatile storage media; and firmware containing instructions which, when executed by the controller, instruct the controller to at least: [Frolikov teaches a computer storage device comprising a host interface (para. 29, lines 1-12), a controller controlled by firmware (para. 31, lines 1-9), and non-volatile storage media (para. 32, lines 1-6)] maintain a free block pool including one or more full free blocks having a same predetermined block size, a first partial block having a first size smaller than the predetermined block size, and a second partial block having a second size smaller than the predetermined block size, wherein the full free blocks and the first and second partial blocks are available for namespace allocation, and the first and second sizes are different; [Frolikov teaches a free block pool that includes available partial blocks and full blocks, where the full blocks have uniform size (para. 103, line 1 – para. 107, line 8); Frolikov also teaches that a partial block may comprise a portion of (smaller than) a full block (para. 90, lines 10-15); Frolikov teaches, in allocating blocks for a namespace, searching for a partial block having a size equal to or greater than the difference between the namespace size and the size of the full blocks allocated, with a preference for using a single partial block to meet the difference, the difference being smaller than the size of a full block (para. 122-123), where such a partial block being greater than or equal to the difference may be found through the search and used (para. 124) or may not found (para. 125-126; see para. 126 reciting a possibility of using multiple partial blocks to meet the size requirement); where Frolikov’s disclosure as shown above provides for a free block pool comprising a plurality of partial blocks and searching for a partial block over a specified size as well as an option of using several partial blocks to meet the specified size, the pool may necessarily comprise partial blocks that are smaller than the specified size as well as partial blocks that are greater than or equal to the specified size (being of different sizes)] receive, via the host interface, a request from a host to allocate a namespace having a requested size; [Frolikov teaches receiving a request to allocate a namespace with a requested namespace size (para. 121, lines 1-6; also see para. 80, lines 1-2 and para. 128, lines 6-9 indicating host interface used for receiving the request); Frolikov teaches allocating full blocks for a namespace, where the difference between the requested namespace size and the allocated full blocks is smaller than the size of a full block (para. 122, lines 1-7)] … determine whether the first size of the first partial block is equal to or greater than a difference between the requested size and the total size of the allocated full blocks; [Frolikov teaches allocating full blocks for a namespace, where the difference between the requested namespace size and the allocated full blocks is smaller than the size of a full block (para. 122, lines 1-7); Frolikov teaches determining to use a partial block after depending on the presence of a partial block being equal to or larger than the difference between the requested namespace size and the full blocks that have been already allocated (para. 123, line 1 – para. 125, line 7)]; in response to determining that the first size of the first partial block is equal to or greater than the difference between the requested size and the total size, allocate at least a portion of the first partial block to the namespace, [Frolikov teaches searching for and allocating a free partial block to the namespace, the free partial block being greater than or equal to the difference in size between the namespace and the full blocks allocated so far (para. 123, line 1 – para. 124, line 12; see fig. 12, #205, #209)] wherein, further in response to determining that the first size of the first partial block is greater than the difference, the instructions further cause the controller to allocate a portion of the first partial block corresponding to the difference to the namespace, leaving a remaining portion of the first partial block that is not allocated for the namespace, [Frolikov teaches allocating a portion of a partial block having a size larger than the difference in size between the namespace and the full blocks allocated so far and leaving a remaining portion in the free block pool (para. 124, 138)] wherein the instructions further cause the controller to combine the remaining portion with an existing partial block in the free block pool; [Frolikov teaches, in association with a namespace being deleted, combining free partial blocks in the free block pool (para. 127, 141-143), where the free partial blocks so being combined in the pool would necessarily exist in the pool] wherein the first partial block is selected from the free block pool based on comparing the difference between the requested size and the total size to the first size of the first partial block, and comparing the difference to the second size of the second partial block. [Frolikov teaches, in allocating blocks for the namespace, searching for a partial block having a size equal to or greater than the difference between the namespace size and the size of the full blocks allocated, with a preference for using a single partial block to meet the difference, the difference being smaller than the size of a full block (para. 122-123), where such a partial block being greater than or equal to the difference may be found through the search and allocated (para. 124) or may not found (para. 125-126); where Frolikov’s disclosure as shown above provides for free block pool comprising a plurality of partial blocks and searching for a partial block over a specified size, the pool may necessarily comprise other partial blocks (second partial block(s)) with that are smaller than the specified size, which were determined to not meet the size requirement (compared) prior to the partial blocks which is greater than or equal to the specified size was found and determined to meet the size requirement (compared) (also see para. 126 reciting a possibility of using multiple partial blocks to meet said requirement)] While Frolikov teaches allocating free full blocks to an extent where the allocated size is smaller than the requested namespace size and using partial block for the remaining size, it does not explicitly disclose the size of the full blocks comprising the total size of full blocks in the pool and also does not explicitly disclose the allocation of the partial block being made in response to the total size of the full free blocks being smaller than the requested size in association with the controller determining that no full blocks remain. However, Lee discloses: in response to the request, determine that the free block pool has a total size based on all full free blocks in the pool that is smaller than the requested size; allocate all of the full free blocks in the pool to the namespace; in response to determining that the total size is smaller than the requested size, …; wherein the partial block is allocated to the namespace only after the controller determines that no full blocks remain in the free block pool; [Frolikov as shown above teaches first allocating full blocks for a namespace, where the difference between the requested namespace size and the allocated full blocks is smaller than the size of a full block, and then searching for and allocating a partial block for the difference (para. 122-125); Lee teaches memory device comprising types of blocks including normal blocks and not-good blocks (para. 74, 174), where not-good blocks may comprise blocks having bad word lines among other possible criteria (para. 176-179; see para. 179, 191 providing only storing data on normal lines and not on the bad word line(s); figs. 7-8 and associated paragraphs), where the not-good blocks are not used under a normal situation or condition but may be used when there are insufficient or no free blocks (determining the size of the full free blocks is smaller than the requested size) (para. 77, 186, 199, 191, 193; figs. 2, 9 and associated paragraphs); where it would have been obvious for one of ordinary skill in the arts provided with Frolikov’s disclosure, directed towards classifying blocks as full blocks or partial blocks based on size and allocating a plurality of full blocks for namespace allocation request followed by allocation of a partial block, with size smaller than a full block, sufficient to cover the remaining requested space for the namespace, and with Lee’s disclosure, directed towards similarly classifying blocks as normal blocks or not-good blocks having differing number of word lines used for storing data, abstaining from using the not-good blocks under normal situations or conditions, but, upon determining there are insufficient normal blocks, using a not-good block, which may comprise a block with reduced usable space, to provide for a combination where a partial block may not be used in normal circumstances, but, upon determining that the amount of available full blocks is insufficient for covering the space needed for the namespace, a partial block may be searched for and allocated following the allocation of full blocks in order to provide for faster allocation speed, where, in said combination determining to use a partial block due to the amount of full blocks being insufficient and allocating the full blocks prior to the partial block, the controller would necessarily be aware, after allocating the full blocks but prior to allocating the partial block, that there are no more full blocks left to be allocated.] Frolikov and Lee are analogous to the claimed invention because they are in the same field of endeavor involving data storage. It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention, having knowledge of Frolikov and Lee, to modify the disclosures by Frolikov to include disclosures by Lee since both Frolikov and Lee teach data storage and memory allocation, wherein Lee is directed towards improved memory system efficiency [0244]. Therefore, it would be applying a known technique (maintaining fully programmable blocks and partially programmable blocks, wherein a partially programmable block may be used when there is insufficient amount of fully programmable blocks for an operation) to a known device (memory device for allocating full free blocks for a namespace allocation request, where the allocated full free blocks is of a smaller size than the namespace being allocated, and a partial block with size equal to or greater than the difference between the requested namespace and the size of the allocated full free blocks is also allocated) ready for improvement to yield predictable results (memory device for allocating full free blocks for a namespace allocation request, where the allocated full free blocks is of a smaller size than the namespace being allocated, and a partial block with size equal to or greater than the difference between the requested namespace and the size of the allocated full free blocks is also allocated responsive to the size of the full free blocks available being insufficient to fulfill the namespace allocation request, in order to provide for a more efficient utilization of storage space). MPEP 2143 As per claim 2, Frolikov in view of Lee teaches all the limitations of claim 1 as shown above and further teaches: wherein the instructions further instruct the controller to: update the first partial block in the free block pool to represent a remaining portion of the first partial block that is not allocated for the namespace. [Frolikov teaches allocating a portion of a partial block to a namespace and updating the partial block in the free pool to represent a remaining portion (para. 138, lines 1-10)] As per claim 3, Frolikov in view of Lee teaches all the limitations of claim 2 as shown above and further teaches: wherein the instructions further instruct the controller to: virtually expand the first partial block to include a virtual capacity, wherein a sum of the difference, a size of the remaining portion, and a size of the virtual capacity is equal to the predetermined block size. [Frolikov teaches a block containing a size smaller than a full block size and using the block as a partial block (see para. 111, lines 1-16 showing expanding the block by a virtual capacity that is not available for allocation and putting the free portion of the block in a free block pool as an available partial block; see para. 114, lines 1-3 showing dividing the storage capacity to include a possible partial block (block 239)); Frolikov teaches that the block may be expanded to include a virtual capacity enough to reach the same size as a full block (para. 111, lines 1-10); where an only a portion of this partial block being allocated to a namespace to leave an unallocated portion (as described in para. 138, lines 1-10) would result in the allocated portion (the difference), unallocated portion (the remaining portion) and the virtual capacity being equal to a full block size (predetermined block size)] As per claim 4, Frolikov in view of Lee teaches all the limitations of claim 3 as shown above and further teaches: wherein the virtual capacity is not available for allocation to any namespace. [Frolikov teaches that the virtual capacity is not available for allocation to any namespace (para. 111, lines 1-11)] As per claim 5, Frolikov in view of Lee teaches all the limitations of claim 1 as shown above and further teaches: wherein a total capacity of the non-volatile storage media is not a multiple of the predetermined block size. [Frolikov teaches that its storage device may have a storage capacity that is not a multiple of a desirable block size (para. 71, lines 1-3), where the desirable block size (indicated as ‘133’ in Frolikov) may correspond to the size of a full block (para 48, lines 1-9)] As per claim 6, Frolikov teaches: A device comprising: a host interface; a controller; non-volatile storage media; and firmware containing instructions which, when executed by the controller, instruct the controller to at least: [Frolikov teaches a computer storage device comprising a host interface (para. 29, lines 1-12), a controller controlled by firmware in operating the storage device (para. 31, lines 1-9), and non-volatile storage media (para. 32, lines 1-6)] maintain a free block pool including full blocks having a same predetermined block size, a first partial block having a first size smaller than the predetermined block size, and a second partial block having a second size smaller than the predetermined block size, wherein the full blocks and the first and second partial blocks are available for namespace allocation, and the first and second sizes are different; [Frolikov teaches a free block pool that includes available partial blocks and full blocks, where the full blocks have uniform size (para. 103, line 1 – para. 107, line 8); Frolikov also teaches that a partial block may comprise a portion of (smaller than) a full block (para. 90, lines 10-15); Frolikov teaches, in allocating blocks for a namespace, searching for a partial block having a size equal to or greater than the difference between the namespace size and the size of the full blocks allocated, with a preference for using a single partial block to meet the difference, the difference being smaller than the size of a full block (para. 122-123), where such a partial block being greater than or equal to the difference may be found through the search and used (para. 124) or may not found (para. 125-126; see para. 126 reciting a possibility of using multiple partial blocks to meet the size requirement); where Frolikov’s disclosure as shown above provides for a free block pool comprising a plurality of partial blocks and searching for a partial block over a specified size as well as an option of using several partial blocks to meet the specified size, the pool may necessarily comprise partial blocks that are smaller than the specified size as well as partial blocks that are greater than or equal to the specified size (being of different sizes)] receive, via the host interface, a request from a host to allocate a namespace having a requested size; [Frolikov teaches receiving a request to allocate a namespace with a requested namespace size (para. 121, lines 1-6; also see para. 80, lines 1-2 and para. 128, lines 6-9 indicating host interface used for receiving the request)] in response to the request, allocate a number of full blocks to the namespace, wherein a difference between a total size of the number of full blocks and the requested size is less than the predetermined block size; [Frolikov teaches allocating full blocks for a namespace, where the difference between the requested namespace size and the allocated full blocks is smaller than the size of a full block (predetermined block size) (para. 122, lines 1-7) and allocating a partial block for the difference (para. 123, line 1 – para. 125, line 7)] … select the first partial block from the free block pool as a next block, wherein the first partial block is selected based on the difference between the total size and the requested size, comparing the difference to the first size of the first partial block, and comparing the difference to the second size of the second partial block; [Frolikov teaches, in allocating blocks for the namespace, searching for a partial block having a size equal to or greater than the difference between the namespace size and the size of the full blocks allocated, with a preference for using a single partial block to meet the difference, the difference being smaller than the size of a full block (para. 122-123), where such a partial block being greater than or equal to the difference may be found through the search and allocated (para. 124) or may not found (para. 125-126); where Frolikov’s disclosure as shown above provides for free block pool comprising a plurality of partial blocks and searching for a partial block over a specified size, the pool may necessarily comprise other partial blocks (second partial block(s)) with that are smaller than the specified size, which were determined to not meet the size requirement (compared) prior to the partial blocks which is greater than or equal to the specified size was found and determined to meet the size requirement (compared) (also see para. 126 reciting a possibility of using multiple partial blocks to meet said requirement)] allocate the next block to the namespace leaving a remaining portion of the first partial block that is not allocated for the namespace,; add the remaining portion to the free block; and [Frolikov teaches allocating a portion of a partial block having a size larger than the difference in size between the namespace and the full blocks allocated so far and leaving a remaining portion in the free block pool (para. 124, 138)] combine the remaining portion with an existing partial block in the free block pool. [Frolikov teaches, in association with a namespace being deleted, combining free partial blocks in the free block pool (para. 127, 141-143), where the free partial blocks so being combined in the pool would necessarily exist in the pool] While Frolikov teaches allocating free full blocks to an extent where the allocated size is smaller than the requested namespace size and using partial block for the remaining size, it does not explicitly disclose the size of the full blocks comprising the total size of full blocks in the pool and also does not explicitly disclose the allocation of the partial block being made in response to the total size of the full free blocks being smaller than the requested size in association with the controller determining that no full blocks remain. However, Lee discloses: determine that no full blocks remain in the free block pool after the number of full blocks is allocated; in response to determining that no full blocks remain in the free block pool, …; wherein the next block is allocated to the namespace only after the controller determines that no full blocks remain in the free block pool; [Frolikov as shown above teaches first allocating full blocks for a namespace, where the difference between the requested namespace size and the allocated full blocks is smaller than the size of a full block, and then searching for and allocating a partial block for the difference (para. 122-125); Lee teaches memory device comprising types of blocks including normal and not-good blocks (para. 74), where not-good blocks may comprise blocks having bad word lines among other possible criteria (para. 176-179; see para. 179, 191 providing only storing data on normal lines and not on the bad word line(s); figs. 7-8 and associated paragraphs), where the not-good blocks are not used under a normal situation or condition but may be used when there are insufficient or no normal blocks for performing an operation (para. 77, 186, 199, 191, 193; figs. 2, 9 and associated paragraphs); where Lee does not explicitly disclose allocating the blocks, Frolikov as shown above teaches allocation of the full free blocks followed by a partial block to meet a namespace allocation requirement, where it would have been obvious for one of ordinary skill in the arts provided with Frolikov’s disclosure directed towards classifying full/partial blocks based on size and allocating, from a free block pool, a plurality of full blocks for namespace allocation request followed by allocating a partial block, with size smaller than a full block, sufficient to cover the remaining requested space for the namespace, and disclosures of Lee, directed towards differentiating normal/not-good blocks based on the number of usable wordlines, using normal blocks for operations, and, upon determining there is insufficient normal blocks, using a not-good block, which may comprise a block which has reduced usable space and which is not used in normal conditions, for a combination where a partial block is configured to not be used normally but may be used for namespace allocation upon determining that no more full blocks can be allocated for covering the space needed for the namespace in order to provide for faster allocation speed] Frolikov and Lee are analogous to the claimed invention because they are in the same field of endeavor involving data storage. It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention, having knowledge of Frolikov and Lee, to modify the disclosures by Frolikov to include disclosures by Lee since both Frolikov and Lee teach data storage and memory allocation, wherein Lee is directed towards improved memory system efficiency [0244]. Therefore, it would be applying a known technique (maintaining fully programmable blocks and partially programmable blocks, wherein a partially programmable block may be used when there is insufficient amount of fully programmable blocks for an operation) to a known device (memory device for allocating full free blocks for a namespace allocation request, where the allocated full free blocks is of a smaller size than the namespace requested, and wherein a partial block is allocated following the allocation of the full blocks to meet the difference) ready for improvement to yield predictable results (memory device for allocating full free blocks for a namespace allocation request, where the allocated full free blocks is of a smaller size than the namespace being allocated, and wherein a partial block is allocated following the allocation of the full blocks to meet the difference responsive to the number of the full free blocks available being insufficient to fulfill the namespace allocation request, in order to provide for a more efficient utilization of storage space). MPEP 2143 As per claim 7, Frolikov in view of Lee teaches all the limitations of claim 6 as shown above, and further teaches: wherein the first size of the first partial block is greater than the difference. [Frolikov teaches searching for a partial block with an available size that is equal to or greater than the difference between the requested namespace size and the full blocks that have been already allocated and allocating the partial block to the namespace (para. 137, line 1 - 12)] As per claim 8, Frolikov in view of Lee teaches all the limitations of claim 6 as shown above, and further teaches: wherein the first size of the first partial block is equal to the difference. [Frolikov teaches searching for a partial block with an available size that is equal to or greater than the difference between the requested namespace size and the full blocks that have been already allocated and allocating the partial block to the namespace (para. 137, line 1 - 12)] As per claim 9, Frolikov in view of Lee teaches all the limitations of claim 6 as shown above, and further teaches: wherein: the first size of the first partial block is greater than the difference; and allocating the first partial block leaves a remaining unallocated portion of the first partial block. [Frolikov teaches, after searching for and finding a partial block with a size larger than the difference between the requested namespace size and the full blocks that have been already allocated, allocating a portion of the partial block while leaving an unallocated portion in the free block pool (para. 137, line 1 – para. 138, line 10)] As per claim 13, Frolikov in view of Lee teaches all the limitations of claim 6 as shown above, and further teaches: wherein each of the allocated full blocks is represented in a namespace map by an identification of a starting unit. [Frolikov teaches a namespace map containing representations of full blocks that can contain identification of a starting unit (para. 132, lines 1-10)] As per claim 14, Frolikov in view of Lee teaches all the limitations of claim 13 as shown above, and further teaches: wherein the allocated next block is represented in the namespace map by an identification of a unit allocated for the namespace and a chunk size. [Frolikov teaches that partial blocks can be represented in the namespace map with an identifier of a starting unit allocated for the namespace and a chunk size (para. 133, lines 11), where the next block of claim 6 may be a partial block.] As per claim 15, Frolikov teaches: A method comprising: maintaining a free block pool including full blocks having a same predetermined block size, a first partial block having a first size smaller than the predetermined block size, and a second partial block having a second size smaller than the predetermined block size, wherein the full blocks and the first and second partial blocks are available for namespace allocation, and the first and second sizes are different; [Frolikov teaches a free block pool that includes available partial blocks and full blocks, where the full blocks have uniform size (para. 103, line 1 – para. 107, line 8); Frolikov also teaches that a partial block may comprise a portion of (smaller than) a full block (para. 90, lines 10-15); Frolikov teaches, in allocating blocks for a namespace, searching for a partial block having a size equal to or greater than the difference between the namespace size and the size of the full blocks allocated, with a preference for using a single partial block to meet the difference, the difference being smaller than the size of a full block (para. 122-123), where such a partial block being greater than or equal to the difference may be found through the search and used (para. 124) or may not found (para. 125-126; see para. 126 reciting a possibility of using multiple partial blocks to meet the size requirement); where Frolikov’s disclosure as shown above provides for a free block pool comprising a plurality of partial blocks and searching for a partial block over a specified size as well as an option of using several partial blocks to meet the specified size, the pool may necessarily comprise partial blocks that are smaller than the specified size as well as partial blocks that are greater than or equal to the specified size (being of different sizes)] receiving a request from a host to allocate a namespace having a requested size; [Frolikov teaches receiving a request to allocate a namespace with a requested namespace size (para. 121, lines 1-6; also see para. 80, lines 1-2 and para. 128, lines 6-9 indicating the request originating from the host)] in response to the request, allocating a number of full blocks to the namespace, wherein a difference between a total size of the number of full blocks and the requested size is less than the predetermined block size; [Frolikov teaches allocating full blocks for a namespace until the difference between the requested namespace size and the allocated full blocks is smaller than the size of a full block (predetermined block size) (para. 122, lines 1-7) and allocating a partial block for the difference (para. 123, line 1 – para. 125, line 7)] … selecting the first partial block from the free block pool based on the difference between the total size and the requested size, comparing the difference to the first sizes of the first partial block, and comparing the difference to the second size of the second partial block; [Frolikov teaches, in allocating blocks for the namespace, searching for a partial block having a size equal to or greater than the difference between the namespace size and the size of the full blocks allocated, with a preference for using a single partial block to meet the difference, the difference being smaller than the size of a full block (para. 122-123), where such a partial block being greater than or equal to the difference may be found through the search and allocated (para. 124) or may not found (para. 125-126); where Frolikov’s disclosure as shown above provides for free block pool comprising a plurality of partial blocks and searching for a partial block over a specified size, the pool may necessarily comprise other partial blocks (second partial block(s)) with that are smaller than the specified size, which were determined to not meet the size requirement (compared) prior to the partial blocks which is greater than or equal to the specified size was found and determined to meet the size requirement (compared) (also see para. 126 reciting a possibility of using multiple partial blocks to meet said requirement)] allocating the selected first partial block to the namespace leaving a remaining portion of the first partial block that is not allocated for the namespace,; and adding the remaining portion back to the free block pool. [Frolikov teaches allocating a portion of a partial block having a size larger than the difference in size between the namespace and the full blocks allocated so far and leaving a remaining portion in the free block pool (para. 124, 138)] While Frolikov teaches allocating free full blocks to an extent where the allocated size is smaller than the requested namespace size and using partial block for the remaining size, it does not explicitly disclose the size of the full blocks comprising the total size of full blocks in the pool and also does not explicitly disclose the allocation of the partial block being made in response to the total size of the full free blocks being smaller than the requested size in association with the controller determining that no full blocks remain. However, Lee discloses: determining that no full blocks remain in the free block pool after the number of full blocks is allocated; in response to determining that no full blocks remain in the free block pool, …; wherein the first partial block is allocated to the namespace only after the controller determines that no full blocks remain in the free block pool; [Frolikov as shown above teaches first allocating full blocks for a namespace, where the difference between the requested namespace size and the allocated full blocks is smaller than the size of a full block, and then searching for and allocating a partial block for the difference (para. 122-125); Lee teaches memory device comprising types of blocks including normal blocks and not-good blocks (para. 74), where not-good blocks may comprise blocks having bad word lines among other possible criteria (para. 176-179; see para. 179, 191 providing only storing data on normal lines and not on the bad word line(s); figs. 7-8 and associated paragraphs), where the not-good blocks are not used under a normal situation or condition but may be used when there are insufficient or no normal blocks for performing an operation (para. 77, 186, 199, 191, 193; figs. 2, 9 and associated paragraphs); where Lee does not explicitly disclose allocating the blocks, Frolikov as shown above teaches allocation of the full free blocks followed by a partial block to meet a namespace allocation requirement, where it would have been obvious for one of ordinary skill in the arts provided with Frolikov’s disclosure directed towards classifying full/partial blocks based on size and allocating, from a free block pool, a plurality of full blocks for namespace allocation request followed by allocating a partial block, with size smaller than a full block, sufficient to cover the remaining requested space for the namespace, and disclosures of Lee, directed towards differentiating normal/not-good blocks based on the number of usable wordlines, using normal blocks for operations, and, upon determining there is insufficient normal blocks, using a not-good block, which may comprise a block which has reduced usable space and which is not used in normal conditions, for a combination where a partial block is configured to not be used normally but may be used for namespace allocation upon determining that no more full blocks can be allocated for covering the space needed for the namespace in order to provide for faster allocation speed] Frolikov and Lee are analogous to the claimed invention because they are in the same field of endeavor involving data storage. It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention, having knowledge of Frolikov and Lee, to modify the disclosures by Frolikov to include disclosures by Lee since both Frolikov and Lee teach data storage and memory allocation, wherein Lee is directed towards improved memory system efficiency [0244]. Therefore, it would be applying a known technique (maintaining fully programmable blocks and partially programmable blocks, wherein a partially programmable block may be used when there is insufficient amount of fully programmable blocks for an operation) to a known device (memory device for allocating full free blocks for a namespace allocation request, where the allocated full free blocks is of a smaller size than the namespace requested, and wherein a free block is allocated following the allocation of the full blocks to meet the difference) ready for improvement to yield predictable results (memory device for allocating full free blocks for a namespace allocation request, where the allocated full free blocks is of a smaller size than the namespace being allocated, and wherein a partial block is allocated following the allocation of the full blocks to meet the difference responsive to the number of the full free blocks available being insufficient to fulfill the namespace allocation request, in order to provide for a more efficient utilization of storage space). MPEP 2143 As per claim 16, Frolikov in view of Lee teaches all the limitations of claim 15 as shown above, and further teaches: wherein the request to allocate the namespace is in accordance with a Non-Volatile Memory Host Controller Interface Specification (NVMHCI). [Frolikov teaches that the namespace allocation request can be made using a protocol that is in accordance with Non-Volatile Memory Host Control Interface Specification (NVMHCI) (para. 129, lines 1-4)] As per claim 17, Frolikov in view of Lee teaches all the limitations of claim 15 as shown above, and further teaches: further comprising converting, using a namespace map, logical addresses in the namespace to physical addresses in non-volatile memory, wherein the logical addresses are associated with read or write requests from the host. [Frolikov teaches the process of converting an LBA address (logical address) in a namespace ID received from a read or write request from the host into physical address, where the process involves use of the namespace map (see para. 67, line 1- para. 69, line 11, where the data manager uses the namespace map to convert the LBA address into a mapped logical address and then the mapped logical address is converted by the local manager to physical address)] As per claim 18, Frolikov in view of Lee teaches all the limitations of claim 17 as shown above, and further teaches: wherein the non-volatile memory is configured in a solid state drive. [Frolikov teaches that its storage device may be a solid state drive (para. 29, lines 1-3)] As per claim 19, Frolikov in view of Lee in teaches all the limitations of claim 17 as shown above, and further teaches: further comprising generating, by a controller in response to the request to allocate the namespace, the namespace map, wherein the namespace map identifies the allocated full blocks, and the allocated first partial block. [Frolikov teaches, in response to a host request to create or reserve a namespace, creating a namespace map containing blocks of a predetermined size (full block) and a partial block (first partial block) (para. 131, lines 1 – para. 138, line 10; para. 55; fig. 4 and associated paragraphs), where the namespace map generation process may involve determining to allocate the partial block based on a size difference between the requested namespace size and the full blocks allocated (para. 137, line 1 – para. 138, line 10)] As per claim 20, Frolikov in view of Lee teaches all the limitations of claim 19 as shown above, and further teaches: wherein each of the allocated full blocks is represented in the namespace map by an identification of a starting unit, and the allocated first partial block is represented in the namespace map by an identification of a unit allocated for the namespace and a chunk size. [Frolikov teaches that each of the full blocks can be represented in the namespace map by a full block identifier including an identification of a representative unit such as a starting unit (para. 132, lines 1-6); Frolikov teaches that the partial block can be represented by a starting unit (the unit) allocated for the namespace and a chunk size (para. 133, lines 1-11)] As per claim 21, Frolikov in view of Lee teaches all the limitations of claim 19 as shown above, and further teaches: further comprising: receiving a request from the host to delete the namespace; and adding the first partial block identified in the namespace to the free block pool. [Frolikov teaches creating a partial block identifier for the partial block in the namespace map (para. 138, lines 1-10); Frolikov further teaches receiving a request from the host to delete the namespace and adding, to the free block pool, the partial block (next block) identified by the partial block identifier in the namespace (para. 141, lines 1-7)] As per claim 22, Frolikov teaches: A non-transitory computer-readable storage medium storing instructions which, when executed by a controller of a computer storage device, cause the controller to: [Frolikov teaches a firmware comprising computer program that controls the operations of a controller (para. 31, lines 1-9)] maintain a free block pool including full blocks having a same predetermined block size, a first partial block having a first size smaller than the predetermined block size, and a second partial block having a second size smaller than the predetermined block size, wherein the full blocks and the first and second partial blocks are available for namespace allocation, and the first and second sizes are different; [Frolikov teaches a free block pool that includes available partial blocks and full blocks, where the full blocks have uniform size (para. 103, line 1 – para. 107, line 8); Frolikov also teaches that a partial block may comprise a portion of (smaller than) a full block (para. 90, lines 10-15); Frolikov teaches, in allocating blocks for a namespace, searching for a partial block having a size equal to or greater than the difference between the namespace size and the size of the full blocks allocated, with a preference for using a single partial block to meet the difference, the difference being smaller than the size of a full block (para. 122-123), where such a partial block being greater than or equal to the difference may be found through the search and used (para. 124) or may not found (para. 125-126; see para. 126 reciting a possibility of using multiple partial blocks to meet the size requirement); where Frolikov’s disclosure as shown above provides for a free block pool comprising a plurality of partial blocks and searching for a partial block over a specified size as well as an option of using several partial blocks to meet the specified size, the pool may necessarily comprise partial blocks that are smaller than the specified size as well as partial blocks that are greater than or equal to the specified size (being of different sizes)] receive a request from a host to allocate a namespace having a requested size; [Frolikov teaches receiving a request from a host to allocate a namespace with a requested namespace size (para. 121, lines 1-6; para. 80, lines 1-2; para. 128, lines 6-9)] in response to the request, allocate a number of full blocks to the namespace, wherein a difference between a total size of the number of full blocks and the requested size is less than the predetermined block size; [Frolikov teaches allocating full blocks for a namespace until the difference between the requested namespace size and the allocated full blocks is smaller than the size of a full block (predetermined block size) (para. 122, lines 1-7) and allocating a partial block for the difference (para. 123, line 1 – para. 125, line 7)] …select the first partial block based on the difference between the total size and the requested size, comparing the difference to the first size of the first partial block, and comparing the difference to the second size of the second partial block; and [As shown above, Frolikov teaches, in allocating blocks for the namespace, searching for a partial block having a size equal to or greater than the difference between the namespace size and the size of the full blocks allocated, with a preference for using a single partial block to meet the difference, the difference being smaller than the size of a full block (para. 122-123); where such a partial block being greater than or equal to the difference may be found through the search and allocated (para. 124) or may not found (para. 125-126); where Frolikov’s disclosure as shown above provides for free block pool comprising a plurality of partial blocks and searching for a partial block over a specified size, the pool may necessarily comprise other partial blocks (second partial block(s)) with that are smaller than the specified size, which were determined to not meet the size requirement (compared) prior to the partial blocks which is greater than or equal to the specified size was found and determined to meet the size requirement (compared) (also see para. 126 reciting a possibility of using multiple partial blocks to meet said requirement)] allocate the first partial block to the namespace leaving a remaining portion of the first partial block that is not allocated for the namespace,; add the remaining portion to the free block pool; and [Frolikov teaches allocating a portion of a partial block having a size larger than the difference in size between the namespace and the full blocks allocated so far and leaving a remaining portion in the free block pool (para. 124, 138)] combine the remaining portion with multiple existing partial blocks that are already in the free block pool. [Frolikov teaches, in association with deletion of namespace, combining free partial blocks in the free block pool (para. 127, 141-143), where the free partial blocks so being combined in the pool would necessarily exist and be present in the pool for the combining process(es)] While Frolikov teaches allocating free full blocks to an extent where the allocated size is smaller than the requested namespace size and using partial block for the remaining size, it does not explicitly disclose the size of the full blocks comprising the total size of full blocks in the pool and also does not explicitly disclose the allocation of the partial block being made in response to the total size of the full free blocks being smaller than the requested size in association with the controller determining that no full blocks remain. However, Lee discloses: determine that no full blocks remain in the free block pool after the number of full blocks is allocated; in response to determining that no full blocks remain in the free block pool,; and wherein the first partial block is allocated to the namespace only after the controller determines that non full blocks remain in the free block pool; [Frolikov as shown above teaches first allocating full blocks for a namespace, where the difference between the requested namespace size and the allocated full blocks is smaller than the size of a full block, and then searching for and allocating a partial block for the difference (para. 122-125); Lee teaches memory device comprising types of blocks including normal blocks and not-good blocks (para. 74), where not-good blocks may comprise blocks having bad word lines among other possible criteria (para. 176-179; see para. 179, 191 providing only storing data on normal lines and not on the bad word line(s); figs. 7-8 and associated paragraphs), where the not-good blocks are not used under a normal situation or condition but may be used when there are insufficient or no normal blocks for performing an operation (para. 77, 186, 199, 191, 193; figs. 2, 9 and associated paragraphs); where Lee does not explicitly disclose allocating the blocks, Frolikov as shown above teaches allocation of the full free blocks followed by a partial block to meet a namespace allocation requirement, where it would have been obvious for one of ordinary skill in the arts provided with Frolikov’s disclosure directed towards classifying full/partial blocks based on size and allocating, from a free block pool, a plurality of full blocks for namespace allocation request followed by allocating a partial block, with size smaller than a full block, sufficient to cover the remaining requested space for the namespace, and disclosures of Lee, directed towards differentiating normal/not-good blocks based on the number of usable wordlines, using normal blocks for operations, and, upon determining there is insufficient normal blocks, using a not-good block, which may comprise a block which has reduced usable space and which is not used in normal conditions, for a combination where a partial block is configured to not be used normally but may be used for namespace allocation upon determining that no more full blocks can be allocated for covering the space needed for the namespace in order to provide for faster allocation speed] Frolikov and Lee are analogous to the claimed invention because they are in the same field of endeavor involving data storage. It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention, having knowledge of Frolikov and Lee, to modify the disclosures by Frolikov to include disclosures by Lee since both Frolikov and Lee teach data storage and memory allocation, wherein Lee is directed towards improved memory system efficiency [0244]. Therefore, it would be applying a known technique (maintaining fully programmable blocks and partially programmable blocks, wherein a partially programmable block may be used when there is insufficient amount of fully programmable blocks for an operation) to a known device (memory device for allocating full free blocks for a namespace allocation request, where the allocated full free blocks is of a smaller size than the namespace requested, and wherein a free block is allocated following the allocation of the full blocks to meet the difference) ready for improvement to yield predictable results (memory device for allocating full free blocks for a namespace allocation request, where the allocated full free blocks is of a smaller size than the namespace being allocated, and wherein a partial block is allocated following the allocation of the full blocks to meet the difference responsive to the number of the full free blocks available being insufficient to fulfill the namespace allocation request, in order to provide for a more efficient utilization of storage space). MPEP 2143 As per claim 23, Frolikov in view of Lee teaches all the limitations of claim 22 as shown above, and further teaches: wherein the first size of the first partial block is equal to or greater than the difference. [Frolikov teaches searching for a partial block with an available size that is equal to or greater than the difference between the between the requested namespace size and the full blocks that have been already allocated and allocating the partial block to the namespace (para. 137, line 1 - 12)] As per claim 24, Frolikov in view of Lee teaches all the limitations of claim 22 as shown above, and further teaches: wherein the first size of the first partial block is greater than the difference, and wherein allocating the first partial block leaves a remaining unallocated portion of the first partial block. [Frolikov in view of Lee teaches, in the event of full blocks being exhausted, searching for and finding a partial block with a size larger than the difference between the requested namespace size and the full blocks that have been already allocated, and allocating a portion of the partial block while leaving an unallocated portion in the free block pool (Frolikov: para. 137, line 1 – para. 138, line 10)] As per claim 26, Frolikov in view of Lee teaches all the limitations of claim 22 as shown above, and further teaches: 26. The non-transitory computer-readable storage medium of claim 22, wherein the combination of the remaining portion with multiple existing partial blocks that are already in the free block pool yields a full block. [Frolikov in view of Lee teaches combining partial blocks in the pool as shown above (see claim 22; Frolikov: para. 127, 141-143), and provides that the partial blocks may be combined into a full block (Frolikov: para. 127, 143)] As per claim 27, Frolikov in view of Lee teaches all the limitations of claim 6 as shown above, and further teaches: 27. The device of claim 6, wherein the combination of the remaining portion with the existing partial block already in the free block pool yields a full block. [Frolikov in view of Lee teaches combining partial blocks in the pool as shown above (see claim 6; Frolikov: para. 127, 141-143), and provides that the partial blocks may be combined into a full block (Frolikov: para. 127, 143)] Response to Arguments Applicant's arguments filed pertaining to the amendments to the independent claims have been fully considered. The examiner respectfully disagrees. With respect to the amended subject matter of the independent claims, the examiner respectfully submits that Frolikov (US 20190121547 A1), as reliant upon as a prior art in combination with Lee, provides for allocating a partial block for a namespace and leaving an unallocated remaining portion of the partial block in the free block pool to be updated as a partial block (Frolikov: para. 124, 138; please see the amended rejections above). Frolikov further teaches partial blocks in the free block pool may be combined in association with namespace deletion (para. 127, 141-143). Frolikov similarly teaches, as relevant to claims 26 and 27, that the combining of the partial blocks in the pool may result in a full block (para. 127, 143). Relevant Prior Art The prior art made of record and not relied upon is considered pertinent to applicant’s disclosure. Danilov et al. (US 20200334142 A1) teaches forming composite data chunks by logically combining unused fragments from multiple data chunks (para. 48-55; figs. 4, 5A and associated paragraphs) 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 nonprovisional extension fee (37 CFR 1.17(a)) 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 mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to ELIAS KIM whose telephone number is (571)272-8093. The examiner can normally be reached Monday - Friday: 7:30-5:30. 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, JARED RUTZ can be reached on 571-272-5535. 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. /E.Y.K./Examiner, Art Unit 2135 /JARED I RUTZ/Supervisory Patent Examiner, Art Unit 2135
Read full office action

Prosecution Timeline

Show 16 earlier events
May 27, 2025
Response Filed
Sep 10, 2025
Final Rejection mailed — §103, §112
Nov 10, 2025
Response after Non-Final Action
Dec 10, 2025
Request for Continued Examination
Dec 19, 2025
Response after Non-Final Action
Jan 07, 2026
Non-Final Rejection mailed — §103, §112
Apr 07, 2026
Response Filed
Jun 25, 2026
Final Rejection mailed — §103, §112 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12669958
SUPPORTING MULTIPLE ACTIVE REGIONS IN MEMORY DEVICES
1y 5m to grant Granted Jun 30, 2026
Patent 12650785
DATA TRANSMISSION CIRCUIT, DATA TRANSMISSION METHOD, AND ELECTRONIC DEVICE
1y 6m to grant Granted Jun 09, 2026
Patent 12632189
MEMORY SYSTEM AND INFORMATION PROCESSING SYSTEM
1y 10m to grant Granted May 19, 2026
Patent 12625627
FILE SYSTEM STORAGE ALLOCATION BASED ON ZONES OF A MEMORY DEVICE
5y 3m to grant Granted May 12, 2026
Patent 12625639
STORAGE DEVICE AND OPERATING METHOD OF STORAGE DEVICE
2y 6m to grant Granted May 12, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

9-10
Expected OA Rounds
78%
Grant Probability
99%
With Interview (+31.1%)
2y 7m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 87 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month