Prosecution Insights
Last updated: July 17, 2026
Application No. 18/513,393

SYSTEM AND METHOD FOR REDUCING MEMORY FOOTPRINT FOR DATA STORED IN A COMPRESSED MEMORY SUBSYSTEM

Non-Final OA §103
Filed
Nov 17, 2023
Examiner
KRIEGER, JONAH C
Art Unit
2133
Tech Center
2100 — Computer Architecture & Software
Assignee
Qualcomm Incorporated
OA Round
4 (Non-Final)
86%
Grant Probability
Favorable
4-5
OA Rounds
0m
Est. Remaining
92%
With Interview

Examiner Intelligence

Grants 86% — above average
86%
Career Allowance Rate
130 granted / 152 resolved
+30.5% vs TC avg
Moderate +7% lift
Without
With
+6.6%
Interview Lift
resolved cases with interview
Typical timeline
2y 6m
Avg Prosecution
19 currently pending
Career history
182
Total Applications
across all art units

Statute-Specific Performance

§101
0.8%
-39.2% vs TC avg
§103
90.6%
+50.6% vs TC avg
§102
6.1%
-33.9% vs TC avg
§112
2.0%
-38.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 152 resolved cases

Office Action

§103
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 . Claim Status Claims 1 and 11 have been amended. Claims 5-7 and 15-17 have been cancelled. Claims 1-4, 8-14 and 18-20 remain pending and are ready for examination. 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 (i.e., changing from AIA to pre-AIA ) 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. The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows: 1. Determining the scope and contents of the prior art. 2. Ascertaining the differences between the prior art and the claims at issue. 3. Resolving the level of ordinary skill in the pertinent art. 4. Considering objective evidence present in the application indicating obviousness or nonobviousness. Claim(s) 1-2 and 11-12 is/are rejected under 35 U.S.C. 103 as being unpatentable over Pawar et al. (US Publication No. 2010/0274773 -- "Pawar") in view of Heddes et al. (US Publication No. 2015/0339228 – “Heddes”) in further view of Kim et al. (US Patent No. 12,242,725 – “Kim”) in further view of Turner et al. (US Publication No. 2022/0189068 – “Turner”). Regarding claim 11, Pawar teaches A non-transitory computer-readable medium having program code recorded thereon for reducing a memory footprint of data stored in a compressed volatile memory subsystem, the program code being executed by a processor and comprising: (Pawar paragraph [0031], In one embodiment, the compression module includes a software module that operates from program memory, such as memory 124, and is executed by processor 122. Alternatively, the compression module may be implemented as a hardware module. For example, the compression module may include one or more integrated circuit chips that perform all or part of the data compression. In one embodiment, the compression module is implemented in a dedicated hardware module such as a Peripheral Component Interconnect (PCI) card. Such a hardware implementation of the compression module 101 may include its own processor and program memory separate from processor 122 and memory 124) program code to select a read/write data to store in the compressed volatile memory subsystem; (Pawar paragraph [0050], In one embodiment, the storage network 200 includes a storage area network (SAN) to transmit read/write requests at the block level of the storage server 210. Read/write data can be transmitted to be stored in a compressed memory system, also see Pawar paragraph [0040], The data block is compressed by compression module 101 and stored in NVM 110) and program code to store the read/write data in a second free data block from a second compressed data storage pool from the plurality of compressed data storage pools supporting a second data block size different from the first data block size if the first compressed data storage pool is exhausted (Pawar paragraph [0065], A storage system 100 may be configured so that consistency points occur at periodic intervals, and storage system 100 determines that a consistency point is reached upon the lapse of each time interval. Alternatively, a consistency point may be triggered by a condition or event. For example, a consistency point may occur when the active partition 111 of the NVM 110 runs out of space, or when the storage server 100 is preparing to shut down. When the first compressed storage pool is full (active partition 111), the storage system can trigger the second compressed storage pool (inactive partition 112) to be used to store the data) program code to generate meta data to identify a location of the read/write data within the compressed volatile memory subsystem (Pawar paragraph [0051], An inode 310 is a data structure used to store information, such as metadata, about a file, whereas the data blocks are structures used to store the actual data for the file. The information contained in an inode 310 may include, for example, ownership of the file, access permission for the file, size of the file, file type and references to locations on disk of the data blocks for the file. Each inode 310 also includes a “clone” flag which indicates whether the file is a clone of another file. Location information of the read/write data for the block may be stored as metadata) the meta data comprises a block index field and a block type field (Pawar paragraph [0051], An inode 310 is a data structure used to store information, such as metadata, about a file, whereas the data blocks are structures used to store the actual data for the file. The information contained in an inode 310 may include, for example, ownership of the file, access permission for the file, size of the file, file type and references to locations on disk of the data blocks for the file. Each inode 310 also includes a “clone” flag which indicates whether the file is a clone of another file. The metadata for the bock can contain a block index (see Pawar paragraph [0053], The logical (sequential) position of a direct (L0) block 360 within a file is indicated by the block's file block number (FBN)) as well as a block type (see paragraph [0051 above]). Pawar does not teach a compressed volatile memory subsystem; read/write data to store in the compressed volatile memory subsystem; each of the compressed storage pools supporting a different block size; program code to identify a first compressed data storage pool, from the plurality of compressed data storage pools, supporting a first data block size corresponding to a compressed size of the read/write data; search the first compressed data storage pool to identify a first free data block; second compressed storage pool … supporting a second data block size different from the first data block size … wherein the metadata encodes up-binning when the read/write data is stored in the second free data block. However, Heddes teaches each of the compressed storage pools supporting a different block size; program code to identify a first compressed data storage pool, from the plurality of compressed data storage pools, supporting a first data block size corresponding to a compressed size of the read/write data; (see Heddes Fig. 4; Ref #62(1-4) for storage pools supporting different sized compressed data blocks, also see Heddes paragraph [0050], With continuing reference to FIG. 4, note that not every 128 byte memory data block can be compressed by the compressed memory controller 36 in the same compression byte size. Some memory data blocks may compress to smaller sizes than others depending on the nature of the data contained in the memory data block and the compression scheme employed. Thus, in this example, the system memory 38 is split into multiple bit-length pools 62(1)-62(Q) each addressable by a PBA. The pools 62(1)-62(Q) each store compressed data of 128-byte data blocks in compressed form in physical buffers (PBs). Each PB pool 62(1)-62(Q) is provided to store different sized compressed data so that memory data blocks that can be compressed to smaller sizes can be grouped together to avoid unused bit storage after compression. Although the PB pools 62(1)-62(Q) are shown grouped in contiguous PBs in FIG. 4, note that there is no requirement for the PB pools 62(1)-62(Q) to contain contiguous PBs. As will be discussed in more detail below, the size of each PB pool 62(1)-62(Q) can be dynamically assigned by the compressed memory controller 36) search the first compressed data storage pool to identify a first free data block; second compressed storage pool … supporting a second data block size different from the first data block size (Heddes paragraph [0069], In this regard with reference to FIG. 8, in the hybrid line/page-based buffer memory capacity compression scheme 110, the compressed memory controller 36 is configured to access 128 byte memory data blocks at a time (in uncompressed form) for each PA addressed in a memory access. The system memory 38 is split into multiple physical blocks (PBs) 112(1)-112(Q) of the same size (e.g., 1 kB) that are each addressable by a buffer pointer 114 in a TLB entry 74 in the data array 76 of the TLB 68. Each PA is a page address (e.g., 4 kB) that maps to a plurality of buffer pointers 114(1)-114(S) each corresponding to a corresponding plurality of PBs 112(1)-112(Q) (e.g., 1 kB each) in the system memory 38. Thus, by splitting a PA page address into a number of PBs 112(1)-112(Q), each PB 112 can be of the same size to achieve the benefits similar to a line-based memory capacity compression scheme, but with data compression still managed by the compressed memory controller 36 on a data page size basis (e.g., 4 kB) like a page-based memory capacity compression scheme. Further, as will be discussed below, each of the memory data blocks within each PB 112 are the same size (e.g., 32 bytes). The storage pools may be searched for data page size corresponding to the write data and written to different sized blocks for different storage pools, as also described in Heddes paragraphs [0070-0071]). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Pawar with those of Heddes. Heddes teaches a storage system utilizing a plurality of storage pools which can each store blocks of compressed data of different sizes, which can allow for additional flexibility and minimize unused space to increase overall memory capacity (i.e., see Heddes paragraph [0049], In this regard with reference to FIG. 4, in this line-based compression scheme 60, the compressed memory controller 36 stores and accesses compressed data to and from the system memory 38. In this example, the compressed memory controller 36 is configured to access 128 byte memory data blocks of a memory line size at a time (in uncompressed form) for each PA addressed in a memory access. This may be because the system memory 38 in the form of DRAM in this example is efficient when accessing 128 bytes at a time. Alternatively, the memory data blocks could be other byte lengths, such as 64 bytes for example. Turning back to the present example, the compressed memory controller 36 compresses the 128 byte memory data block in the system memory 38 to increase the effective memory capacity addressable with the compressed memory controller 36 beyond the size of the physical memory accessible by the compressed memory controller 36). Pawar in view of Heddes does not teach a compressed volatile memory subsystem; read/write data to store in the compressed volatile memory subsystem; wherein the metadata encodes up-binning when the read/write data is stored in the second free data block. However, Kim teaches a compressed volatile memory subsystem; read/write data to store in the compressed volatile memory subsystem (Kim claim 1, determine a size of the first compressed data in the second temporary buffer of the temporary memory pool, allocate the size of the first compressed data in the second temporary buffer in a storage area of the compressed memory pool of the volatile memory device, store the first compressed data stored in the second temporary buffer in the storage area of the compressed memory pool, record a location of the storage area in metadata of the first data, and notify the host processor of completion of processing of the swap-out request, wherein a size of the allocated storage area of the compressed memory pool corresponds to the size of the first compressed data in the second temporary buffer of the temporary memory pool. Kim teaches using a compressed volatile memory subsystem with two independent memory pools to access data via read/write operations). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Pawar and Heddes with those of Kim. Kim teaches using a compressed volatile memory subsystem, which can maximize the life of the host memory and improve memory performance by utilizing volatile memory to perform data compressions and swaps (i.e, see Kim column 1; lines 33-45, In order to compensate for the drawbacks of the swap technique, recently, a zswap method is often utilized that allows faster swap-in/out than the storage device by compressing data before swapping out to a storage device and then storing it in some areas of the host memory. Because the zswap method uses the host memory without sending data down to the storage device, relatively high performance can be expected. However, there was a problem that memory availability was reduced in that CPU resources were consumed additionally to perform data compression and some areas of the host memory were used for storing compressed pages). Pawar in view of Heddes in further view of Kim does not teach wherein the metadata encodes up-binning when the read/write data is stored in the second free data block. However, Turner teaches wherein the metadata encodes up-binning when the read/write data is stored in the second free data block (Turner paragraph [0108], Metadata encoding 554 “1 2” signifies the start of a 32-byte compressed block, followed by the start of a 64-byte block, in this example, of uncompressed image data. Metadata encoding 556 “2 0 1” signifies the start of a 64-byte compressed block, followed by a 64-byte chunk that fits into the second 32-byte block, followed by a 32-byte compressed block. Metadata encoding 558 “1 0 0” signifies the start of a 32-byte compressed block, followed by a 64-byte chunk that fits into the same 32-byte block, followed by a second 64-byte chunk that fits into the same 32-byte block. Metadata encoding 560 represents a special case, in which “2 2 0” signifies the start of a 64-byte uncompressed block, followed by the start of a 64-byte uncompressed block, followed by a 64-byte chunk is fit into the second 64-byte block. In metadata encoding 560, the first “2” value is not followed by an indication that it shares a block with another chunk. The metadata may be used to encode up-binning when data is stored in a block. This up-binning refers to borrowing data storage between memory blocks of differing sizes, in this case the compressed data block sizes can be up-binned for 32 or 64-byte blocks, which can be done in response to read/write data being programmed or read, as described in Turner paragraph [0003], Various aspects may include determining a type of packing used for a chunk of image data, generating metadata describing the type of packing used for the chunk of image data, packing the chunk of image data according to the determined type of packing, and sending the packed chunk of image data and the metadata to a second computing device. In some aspects, describing the type of packing used for the chunk of image data may enable the chunk of image data to be read independently of a second chunk of image data. In some aspects, the metadata describing the type of packing used for the chunk of image data may enable the chunk of image data to be written tiled and read linearly). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Pawar, Heddes and Kim with those of Turner. Turner teaches encoding metadata to allow up-binning between blocks, which can allow data transfer between data blocks even when the compressed data sizes of the data blocks may differ, resulting in improved performance (i.e., see Turner paragraph [0108], Metadata encodings 550-580 illustrate non-limiting examples of such information encoded in the metadata. Metadata encoding 550 “1 1” signifies that two chunks each start at the beginning of a 32-byte block. Metadata encoding 552 “1 0 1” signifies the start of a 32-byte compressed block, followed by a 64-byte chunk fit into the 32-byte block, followed by the start of another 32-byte compressed block. Metadata encoding 554 “1 2” signifies the start of a 32-byte compressed block, followed by the start of a 64-byte block, in this example, of uncompressed image data. Metadata encoding 556 “2 0 1” signifies the start of a 64-byte compressed block, followed by a 64-byte chunk that fits into the second 32-byte block, followed by a 32-byte compressed block. Metadata encoding 558 “1 0 0” signifies the start of a 32-byte compressed block, followed by a 64-byte chunk that fits into the same 32-byte block, followed by a second 64-byte chunk that fits into the same 32-byte block. Metadata encoding 560 represents a special case, in which “2 2 0” signifies the start of a 64-byte uncompressed block, followed by the start of a 64-byte uncompressed block). Claim 1 is the corresponding method claim to the non-transitory computer readable medium claim 11. It is rejected with the same references and rationale. Regarding claim 12, Pawar in view of Heddes in further view of Kim in further view of Turner teaches The non-transitory computer-readable medium of claim 11, further comprising program code to store the compressed read/write data in the first free data block from the first compressed data storage pool of the compressed volatile (see Kim for volatile) memory subsystem if the first compressed data storage pool is not exhausted (Pawar paragraph [0043], Active partition 111 is connected to the compression module 101 so that the active partition 111 can receive compressed data from compression module 101. During normal operation of the storage server 100, the storage server 100 receives data to be written to physical storage device 120 from a client 140 and compresses the data, using compression module 101, into a compression group. The compressed data corresponding to the data received from the client 140 is stored in active partition 111. If the active partition (i.e., first compressed storage pool) can receive and store compressed data, then the data is stored there, also see Pawar paragraph [0064], At block 508, the storage server also stores the compressed data in an active partition of a nonvolatile memory. In one embodiment, the compression module 101 stores compressed data in the active partition 111 by storing one or more compression groups containing the compressed data in the active partition 111. In one embodiment, the compression module 101 stores on the active partition 111 compressed versions of data blocks received from the client 140 that are to be ultimately stored on physical storage device 120 according to a request from client 140). Claim 2 is the corresponding method claim to the non-transitory computer readable medium claim 12. It is rejected with the same references and rationale. Claim(s) 3-4 and 13-14 is/are rejected under 35 U.S.C. 103 as being unpatentable over Pawar in view of Heddes in further view of Kim in further view of Turner as applied to claims 1 and 11 above, and further in view of Koifman et al. (US Publication No. 2011/0283021 -- "Koifman"). Regarding claim 13, Pawar in view of Heddes in further view of Kim in further view of Turner and further in view of Koifman teaches The non-transitory computer-readable medium of claim 11, in which the second compressed data storage pool comprises a next available data storage pool in which the second data block size is greater than the first data block size (Koifman paragraph [0129], The size of the compressed sections may be configurable; larger compressed sections provide lower processing overhead and higher compression ratio, while smaller compressed sections provide more efficient access but higher processing overhead. The size of the compressed section may be predefined also in accordance with a certain time-related criterion (e.g. estimated time necessary to compress data which, being compressed, would substantially amount to the compressed section size, etc.). The compressed storage sections may be of a configurable size in which the second may be larger with less efficient access). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Pawar and Heddes and Kim and Turner with those of Koifman. Koifman teaches using two compressed storage sections for storing compressed data, which allows for additional customization, such as using a smaller first section for higher priority and processing data, with a larger second compressed section for less resource intensive data (Koifman paragraph [0129], The size of the compressed sections may be configurable; larger compressed sections provide lower processing overhead and higher compression ratio, while smaller compressed sections provide more efficient access but higher processing overhead. The size of the compressed section may be predefined also in accordance with a certain time-related criterion (e.g. estimated time necessary to compress data which, being compressed, would substantially amount to the compressed section size, etc.)). Claim 3 is the corresponding method claim to the non-transitory computer readable medium claim 13. It is rejected with the same references and rationale. Regarding claim 14, Pawar in view of Heddes in further view of Kim in further view of Turner and further in view of Koifman teaches The non-transitory computer-readable medium of claim 11, in which the second compressed data storage pool supports a largest data block size of the compressed volatile memory subsystem (Koifman paragraph [0129], The size of the compressed sections may be configurable; larger compressed sections provide lower processing overhead and higher compression ratio, while smaller compressed sections provide more efficient access but higher processing overhead. The size of the compressed section may be predefined also in accordance with a certain time-related criterion (e.g. estimated time necessary to compress data which, being compressed, would substantially amount to the compressed section size, etc.). The compressed storage sections may be of a configurable size in which the second may be larger with less efficient access. In the embodiment, the second would be the only other compressed storage section and the largest by default (i.e., see Fig. 2A ref #205-1 and 205-2). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Pawar and Heddes and Kim and Turner with those of Koifman. Koifman teaches using two compressed storage sections for storing compressed data, which allows for additional customization, such as using a smaller first section for higher priority and processing data, with a larger second compressed section for less resource intensive data (Koifman paragraph [0129], The size of the compressed sections may be configurable; larger compressed sections provide lower processing overhead and higher compression ratio, while smaller compressed sections provide more efficient access but higher processing overhead. The size of the compressed section may be predefined also in accordance with a certain time-related criterion (e.g. estimated time necessary to compress data which, being compressed, would substantially amount to the compressed section size, etc.)). Claim 4 is the corresponding method claim to the non-transitory computer readable medium claim 14. It is rejected with the same references and rationale. Claim(s) 8 and 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Pawar in view of Heddes in further view of Kim in further view of Turner as applied to claims 1 and 11 above, and further in view of Kim et al. (US Publication No. 2019/0056883 -- "Kim2019"). Regarding claim 18, Pawar in view of Heddes in further view of Kim in further view of Turner and further in view of Kim2019 teaches The non-transitory computer-readable medium of claim 11, in which the program code to store the read/write data further comprises: (see claim 11 above) program code to detect a free data block from the first compressed data storage pool of the compressed volatile (see Kim above for volatile) memory subsystem; and program code to move the read/write data from the second free data block of the second compressed data storage pool to the free data block in the first compressed data storage pool of the compressed volatile memory subsystem (Kim paragraph [0051], According to an embodiment, the processor 120 may select at least one compressed data from among the compressed data stored in the second area for the secondary swap. For example, the processor 120 may select at least one compressed data based on information indicating an order in which the compressed data is stored in the second area, and may move the selected at least one compressed data from the second area to the third area. The information indicating the order of storage may be a serial number or time information of compressed data assigned at the time when the compressed data is stored in the second area. According to an embodiment, the processor 120 may select data that has been stored in the second area for the longest time, data that is expected to stay in the second area for the longest time, data that has not been used in the second area for the longest time, or data that has a lowest frequency of use in the second area, based on the information indicating the order of storage of the compressed data stored in the second area. When a data area of separate storage pool opens up, compressed data may be swapped from the second storage pool to the other storage pool). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Pawar and Heddes and Kim and Turner with those of Kim2019. Kim teaches swapping data between compressed data storage tiers based on a given availability, which can allow the compressed data to be more efficiently allocated within storage pools/tiers (see Kim paragraph [0051], The information indicating the order of storage may be a serial number or time information of compressed data assigned at the time when the compressed data is stored in the second area. According to an embodiment, the processor 120 may select data that has been stored in the second area for the longest time, data that is expected to stay in the second area for the longest time, data that has not been used in the second area for the longest time, or data that has a lowest frequency of use in the second area, based on the information indicating the order of storage of the compressed data stored in the second area). Claim 8 is the corresponding method claim to the non-transitory computer readable medium claim 18. It is rejected with the same references and rationale. Claim(s) 9 and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Pawar in view of Heddes in further view of Kim in further view of Turner as applied to claims 1 and 11 above, and further in view of Mizushima et al. (US Publication No. 2021/0191658 -- "Mizushima"). Regarding claim 19, Pawar in view of Heddes in further view of Kim in further view of Turner and further in view of Mizushima teaches The non-transitory computer-readable medium of claim 11, further comprising: program code to mark a cache line as dirty in a level two (L2) cache when the cache line is in a borrowed block; (Mizushima paragraph [0113], An area part in which data is held and the data is already stored in the drive 29 is “Clean”. An area part in which data is held and the data is not yet stored in the drive 29 is “Dirty”. An area part in the cache area 203 in which no data is held is “Free”. The cache lines/areas of a cache (i.e., L2 cache, see Fig. 2 ref #202 and 203) can be indicated as dirty in which it contained data not allocated (i.e., borrowed block) and program code to set the cache line in memory to zeros to expedite return of the borrowed block (Mizushima paragraph [0116], At this time, since the data of the holding area in the clean state has already been stored in the drive 29, the data is not lost as the storage device 11 even if the holding area in the clean state is released. Accordingly, a released area changes from the Clean state to the Free state (1013). At this time, the ratio of “Clean” in the cache area 203 is reduced, and the ratio of Free is increased. The cache line can be emptied or zeroed in order to be used faster). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Pawar and Heddes and Kim and Turner with those of Mizushima. Mizushima teaches marking a cache line/area as dirty and zeroing/freeing the data, which can improve processing speed for the compression data storage (see Mizushima paragraph [0054], Further, the storage controller 22A may execute the compression of the group when a dirty cache ratio in the cache area 203A is equal to or larger than an upper limit value, and may suspend the compression of the group when the dirty cache ratio is less than the upper limit value. Accordingly, similar data capable of further increasing a compression degree can be held in the cache area 203 as much as possible while ensuring an area in a free state in which write data can be newly received in the cache area 203, the compression rate of data can be increased, and the access performance can be improved). Claim 9 is the corresponding method claim to the non-transitory computer readable medium claim 19. It is rejected with the same references and rationale. Claim(s) 10 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Pawar in view of Heddes in further view of Kim in further view of Turner as applied to claims 1 and 11 above, and further in view of Alverti et al. (US Publication No. 2022/0011941 -- "Alverti"). Regarding claim 20, Pawar in view of Heddes in further view of Kim in further view of Turner and further in view of Alverti teaches The non-transitory computer-readable medium of claim 11, further comprising program code to issue a hardware interrupt when a free data block is unavailable in each data storage pool of the compressed volatile (see Kim for volatile) memory subsystem (Alverti paragraph [0215], For each compressed page in memory there can be a Range 4365 associated with said compressed page; said Range is used as a point of synchronization between the Sector Overflow Device 4320 and the Free Memory Manager Device 4330 to determine how much space is used for memory capacity expansion and overflow handling. As described earlier, the Sector Overflow Device 4320/4200 can handle overflows silently until the Range Utilizer 4230, the Fragment Utilizer 4220 and the Recompactor 4240 can handle said overflows; if the overflow cannot be handled by said Overflow Device then either the compressed page is decompressed or the Range is expanded. In either case, the Free Memory Manager 4330 is notified (for example, through an interrupt) to reorganize the compressed memory so that other unrelated data are not overwritten by either of those actions. This is one example of synchronization between said devices. Someone skilled in the art can implement the synchronization of said units using locking mechanisms or other such mechanisms. In an alternative embodiment, if the overflow cannot be handled by said overflow device, the whole page can be relocated to another place in memory (as described in para [0118]) or the page can be split (as described in para [0120]). When no compressed memory storage is available, a hardware interrupt can be issued). It would have been obvious to a person having ordinary skill in the art before the effective filing date of the invention to combine the teachings of Pawar and Heddes and Kim and Turner with those of Alverti. Alverti teaches using a hardware interrupt when no compressed memory storage is available, which can prevent data from being overwritten unintentionally, improving reliability (Alverti paragraph [0215], For each compressed page in memory there can be a Range 4365 associated with said compressed page; said Range is used as a point of synchronization between the Sector Overflow Device 4320 and the Free Memory Manager Device 4330 to determine how much space is used for memory capacity expansion and overflow handling. As described earlier, the Sector Overflow Device 4320/4200 can handle overflows silently until the Range Utilizer 4230, the Fragment Utilizer 4220 and the Recompactor 4240 can handle said overflows; if the overflow cannot be handled by said Overflow Device then either the compressed page is decompressed or the Range is expanded. In either case, the Free Memory Manager 4330 is notified (for example, through an interrupt) to reorganize the compressed memory so that other unrelated data are not overwritten by either of those actions. This is one example of synchronization between said devices. Someone skilled in the art can implement the synchronization of said units using locking mechanisms or other such mechanisms. In an alternative embodiment, if the overflow cannot be handled by said overflow device, the whole page can be relocated to another place in memory (as described in para [0118]) or the page can be split (as described in para [0120])). Claim 10 is the corresponding method claim to the non-transitory computer readable medium claim 20. It is rejected with the same references and rationale. Response to Arguments Applicant’s arguments, see pages 1-2 (numbered pages 6-7), filed March 30th, 2026 with respect to the rejection(s) of claim(s) 1 and 11 under 35 U.S.C. 103 have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Pawar et al. (US Publication No. 2010/0274773 -- "Pawar") in view of Heddes et al. (US Publication No. 2015/0339228 – “Heddes”) in further view of Kim et al. (US Patent No. 12,242,725 – “Kim”) in further view of Turner et al. (US Publication No. 2022/0189068 – “Turner”). The applicant’s amendments to independent claims 1 and 11 incorporate subject matter previously disclosed in dependent claims 5-7 and 15-17. After careful consideration of the applicant’s arguments, the examiner finds the arguments regarding the interpretation of the previously cited Vandam reference addressing dependent claims 7 and 17 to be persuasive. In light of the determination, a new reference, Turner has been added to disclose the concept of encoding metadata to perform up-binning, where data blocks of differing sizes may be used to borrow data allocation. For further details regarding the interpretation of the Turner reference, see the rejection cited above. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Mishra et al. (US Publication No. 2021/0334160 – “Mishra”) teaches sorting different compressed data write groups by compressed data block sizes based on write data size, which can allow for more efficient writes by minimizing the padding required to fully complete the compressed data blocks (i.e., see Mishra claim 20, A non-transitory computer-readable medium comprising instructions configured to: compress data associated with write requests into data blocks of various sizes, the write requests being received at a node of a storage cluster; maintain a pool of the various-sized compressed data blocks; select a set of compressed data blocks from the pool to form a write group, wherein the selected set of compressed data blocks include compressed data blocks having a same size and being selected from the pool using a best-match size selection; and apply an erasure code to the same-sized compressed data blocks to algorithmically generate one or more encoded blocks of the write group for redundancy of the data blocks). Any inquiry concerning this communication or earlier communications from the examiner should be directed to JONAH C KRIEGER whose telephone number is (571)272-3627. The examiner can normally be reached Monday - Friday 8 AM - 5 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 on (571)-270-5935. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /J.C.K./Examiner, Art Unit 2133 /ROCIO DEL MAR PEREZ-VELEZ/Supervisory Patent Examiner, Art Unit 2133
Read full office action

Prosecution Timeline

Show 8 earlier events
Sep 19, 2025
Examiner Interview Summary
Oct 29, 2025
Request for Continued Examination
Oct 31, 2025
Response after Non-Final Action
Jan 09, 2026
Non-Final Rejection mailed — §103
Mar 20, 2026
Applicant Interview (Telephonic)
Mar 20, 2026
Examiner Interview Summary
Mar 30, 2026
Response Filed
Jun 22, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12681808
DEVICE MANAGEMENT SYSTEM AND METHOD OF CONTROLLING DEVICE MANAGEMENT SYSTEM
2y 8m to grant Granted Jul 14, 2026
Patent 12572298
ADAPTIVE SCANS OF MEMORY DEVICES OF A MEMORY SUB-SYSTEM
4y 1m to grant Granted Mar 10, 2026
Patent 12566705
SYSTEM ON CHIP, A COMPUTING SYSTEM, AND A STASHING METHOD
2y 3m to grant Granted Mar 03, 2026
Patent 12566556
DATA SECURITY PROTECTION METHOD, DEVICE, SYSTEM, SERVER-SIDE, AND STORAGE MEDIUM
1y 5m to grant Granted Mar 03, 2026
Patent 12554441
TRANSFERRING COMPRESSED DATA BETWEEN LOCATIONS
1y 9m to grant Granted Feb 17, 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

4-5
Expected OA Rounds
86%
Grant Probability
92%
With Interview (+6.6%)
2y 6m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 152 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