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 .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicants’ submission filed on 09/11/2026 has been entered.
Response to Arguments
Applicants’ arguments/remarks made in an amendment filed September 11, 2026, have been fully considered. In view of the amended claims 1, 3, 8-11, 15, 17 and 20 and upon further consideration, a new ground(s) of rejection necessitated by the amendments is made in view of different interpretation of the previously applied references and new prior art as presented in this Office action. Applicant’s arguments with respect to claim(s) 1-20 are therefore moot.
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-20 are rejected under 35 U.S.C. 103 as being unpatentable over US 5978893 A1 (Bakshi et al.) (hereinafter Bakshi) in view of US 20180349261 A1 (DESAI et al.) (hereinafter DESAI) in view of US 20080112423 A1 (Christenson et al.) (hereinafter Christenson) in view of CN 103793267 A (HE) in view of US 20150169237 A1 (Ioannou et al.) (hereinafter Ioannou) and in further view of US 20190349904 A1 (Kwak et al.) (hereinafter Kwak).
In re claims 1, 9 and 15, Bakshi discloses a method (Fig. 2A) and a system (Fig. 1, Col 1, lines 1-6, “A method and a system for allocating and deallocating fixed size memory blocks in a system memory in a graphic imaging system for processing data”) comprising: one or more processors (Fig. 1, “processor 70”) comprising circuitry to, in response to an application programming interface (API) call, cause one or more lock-free statically-sized regions of linked storage locations to be deallocated (Col 4, lines 9-18, “A system memory manager 100 allocates memory blocks from the system memory 50 for the various purposes described above, including storing display list entries and frame buffer entries. The system memory 50 includes queues, each containing a linked list of fixed size blocks, and a page pool of memory, containing variable size blocks, which may be allocated for storing display list entries.”. Col 5, lines 29-34, “If, at step 2400, the system memory manager determines that there is insufficient memory available in the page pool to create an extension, the process moves to step 2700, at which the display list entries are rendered from the allocated memory blocks, and the allocated memory blocks are deallocated”. Col 2, lines 65-67, Col 3, lines 1-20, “It is an object of the present invention to dynamically allocate and deallocate memory blocks in a graphic imaging system while minimizing processor time and avoiding fragmentation. A system memory includes at least one queue containing a linked list of fixed size memory blocks and a page pool of variable size memory blocks. Upon a request (through user input or API) for a memory block of a particular fixed size, the system memory manager allocates a memory block of the fixed size from a queue containing memory blocks of the fixed size if the queue has memory blocks available... If the page pool does not contain adequate memory to create an extension... all of the allocated memory blocks are deallocated”), wherein the linked storage locations are organized in memory as a lock-free queue in which each linked storage location identifies a next linked storage location and a previous linked storage location, a last linked storage location identifies a first linked storage location as the next linked storage location, and the first linked storage location identifies the last linked storage location as the previous linked storage location, wherein the lock-free queue is to store shared fifth generation new radio (5G-NR) information.
Bakshi does not explicitly disclose in response to an application programming interface (API) call, cause one or more lock-free statically sized regions of linked storage locations to be deallocated.
DESAI discloses in response to an application programming interface (API) call, cause one or more lock-free statically sized regions of linked storage locations to be deallocated (Fig. 3:304, [0016], “In response to determining that the data stored in the compressor pool has exceeded the first predetermined threshold, a memory usage reduction action is performed by identifying and causing a reduction in memory usage; the action can include requests (via an API) to applications to reduce memory usage and ultimately can include terminating a process to reclaim a memory space occupied by the process... Thereafter, if the available memory is still low or the data stored in the compressor pool still exceeds the first predetermined threshold, a notification is sent to a process that supports a “save-and-exit” feature via an application programming interface (API) to notify the process that the available memory is low and to request the process to release some of the memory used and/or to exit or terminate itself”. [0035], “According to one embodiment, if a process supports a “save-and-exit” feature, process termination module 113 sends a notification to the process via an API to notify the process that the corresponding process has been selected as a candidate for memory usage reduction” (deallocate memory in response to API call to reduce memory usage)).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Bakshi with DESAI to provide a memory management method and device for dynamically allocating and deallocating storage space in a memory unit to store the 5G data according to the demand. The advantage of doing so is to utilize the memory in an efficient manner using a direct memory access (DMA) mechanism and reducing the load on the processor and power utilized by the processor.
BAKSHI and DESAI do not explicitly disclose lock-free statically sized regions of linked storage locations.
Christenson discloses a lock-free statically sized regions of linked storage locations (Fig. 1, [0013], “Lock-free algorithms have also been proposed for shared data structures, including concurrent FIFO queues. Lock-free algorithms allow concurrent update of shared data structures without resorting to critical sections protected by operating system managed locks”. [0036], “According to the preferred embodiments of the invention, a dummy node is enqueued to a concurrent, non-blocking, lock-free FIFO queue only when necessary to prevent the queue from becoming empty. The dummy node is only enqueued during a dequeue operation and only when the queue contains a single user node during the dequeue operation. This reduces overhead relative to conventional mechanisms that always keep a dummy node in the queue. User nodes are enqueued directly to the queue and can be immediately dequeued on-demand by any thread” (discloses an apparatus for implementing lock-free concurrent FIFO queue)).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Bakshi and DESAI with Christenson to provide a memory management method and device for dynamically allocating and deallocating storage space in a memory unit to store the 5G data according to the demand. The advantage of doing so is to enable updating the tail pointer variable value by parallel access so as to execute node operation of the queue, thus improving accessing efficiency of the queue without locking.
BAKSHI, DESAI and Christenson do not explicitly disclose a statically sized regions of linked storage locations.
HE discloses statically sized regions of linked storage locations ([0057], “queue on the shared memory, shared memory space in advance into forming blocks of the same size as the memory block according to the node queue, each memory block for one node in the queue is stored”. [0058], “wherein, the queue can be used for processing the management through the linked list structure, which is the location of the next one node by one node stores, besides including information of each node itself, and a node head is used for pointing at one node, the node head is after the content of the node. For information of the storage node head, the space in the head part of the shared memory a reserved, reserved, it is divided the memory block” (discloses a data queue accessing method. The queue is built on shared memory which is divided into chunks of equal size according to size of nodes as memory chunks corresponding to statically sized regions of linked storage locations)).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Bakshi, DESAI with Christenson and HE to provide a memory management method and device for dynamically allocating and deallocating storage space in a memory unit to store the 5G data according to the demand. The advantage of doing so is to utilize the memory in an efficient manner using a direct memory access (DMA) mechanism, thus eliminating processor intervention while allocating the memory unit, and reducing the load on the processor and power utilized by the processor.
Bakshi, DESAI, Christenson and HE do not explicitly disclose wherein the linked storage locations are organized in memory as a lock-free queue in which each linked storage location identifies a next linked storage location and a previous linked storage location, a last linked storage location identifies a first linked storage location as the next linked storage location, and the first linked storage location identifies the last linked storage location as the previous linked storage location.
Ioannou discloses wherein the linked storage locations are organized in memory as a lock-free queue in which each linked storage location identifies a next linked storage location and a previous linked storage location, a last linked storage location identifies a first linked storage location as the next linked storage location, and the first linked storage location identifies the last linked storage location as the previous linked storage location (Fig. 2, Fig. 5, [0021], “According to a further aspect of the present invention a storage device is provided comprising a memory comprising a set of units and a unit comprising a set of subunits, wherein a unit of the set of units is erasable as a whole by a unit reclaiming process resulting in a free unit available for writing data to”. [0025], “Data is organized in pages of typically 4, 8, or 16 KB sizes. Page read operations are typically one order of magnitude faster than write operations and latency neither depends on the current nor the previous location of operations”. [0032], “At time T0, a sequence of logical page write operations to logical locations A, C, F and B is received at the memory controller. These write operations are placed by the memory controller in the current open unit for writing at the consecutive physical locations 300, 301, 302, and 303 respectively. At time T1, the same sequence of logical write operations may be repeated. This translates to consecutive invalidations of physical locations 300, 301, 302, and 303 at times T1,0, T1,1, T1,2, and T1,3 respectively, with the new data being placed in physical locations 1051, 1052, 1053, and 1054”. [0042], “X is referred to a size of the circular buffer, i.e., in the above embodiment to the number of X queues contributing to the circular buffer”. [0043], “Hence, returning to the circular buffer 21 of FIG. 2, units are preferably placed at the tail of the current queue upon their first invalidation. Each unit may then be delayed for at least X times N pages writes with N denoting the number of pages per unit as follows: The index pointer 11 pointing at the current queue i is incremented upon each unit write. The next queue i+1 contains units that have seen exactly X unit writes (equaling X*N pages writes) since these units had been placed in this next queue i+1 when the index pointer was previously pointing at them, which is exactly X unit writes before. This next queue i+1 is then emptied. The units residing therein are returned to the first pool, before inserting new units. In an exemplary embodiment, a limit may be enforced to the total number of units residing in the second pool and as such being delayed at any one time so that the unit reclaiming never stagnates” (discloses a doubly ended circular structure last to first, first to last, circular arrangement for the lock free queue)).
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Bakshi, DESAI, Christenson and HE with Ioannou to provide a memory management method and device for dynamically allocating and deallocating storage space in a memory unit to store the 5G data according to the demand. The advantage of doing so is to utilize the memory in an efficient manner using a direct memory access (DMA) mechanism and reducing the load on the processor and power utilized by the processor.
Bakshi, DESAI, Christenson, HE and Ioannou do not explicitly disclose wherein the lock-free queue is to store shared fifth generation new radio (5G-NR) information.
Kwak discloses wherein the lock-free queue is to store shared fifth generation new radio (5G-NR) information ([0003], “The next generation wireless communication system, 5G (Fifth Generation), or new radio (NR), will provide access to information and sharing of data anywhere, anytime by various users and applications. NR is expected to be a unified network/system that can meet vastly different and sometimes conflicting performance dimensions and services. These diverse multi-dimensional targets for NR are driven by different services and applications”. [0104], “A first example embodiment employable in connection with aspects discussed herein can comprise a system and/or method of wireless communication for a fifth generation (5G) or new radio (NR) system, comprising: configuring a set of slot formats for use for dynamic slot format change”.
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Bakshi, DESAI, Christenson, HE and Ioannou with Kwak to provide a memory management method and device for dynamically allocating and deallocating storage space in a memory unit to store the 5G data according to the demand. The advantage of doing so is to utilize the memory in an efficient manner using a direct memory access (DMA) mechanism, thus eliminating processor intervention while allocating the memory unit, and deliver fast, rich contents and services.
In re claims 2, 10 and 16, the combination discloses the one or more processors of claim 1, the system of claim 9 and the method of claim 15, wherein Bakshi discloses wherein the one or more statically-sized regions of linked storage locations are to be deallocated by causing one or more regions of memory reserved to the one or more statically-sized regions of linked storage locations to no longer be reserved (Col 7, lines 9-10, “The deallocation is performed repeatedly until all the blocks have been freed” (no longer stored). Col 5, lines 54-57, “The present invention takes advantage of processes occurring normally in a laser printer to dynamically free memory blocks without requiring a halt in the processing to return unused memory blocks to the page pool”. Col 6, lines 6-8, “The fewer the extensions, the less time will be consumed upon deallocating in determining which extension a block of freed memory belongs to” (deallocate by no longer storing the information and freeing the memory)).
In re claims 3 and 11, the combination discloses the one or more processors of claim 1 and the system of claim 9, wherein Ioannou discloses wherein the linked storage locations comprise nodes of a pre-allocated fixed-size node array ([0036], “For implementing the above approach, in an exemplary embodiment a fixed size circular buffer 21 of queues is introduced as second pool 2, such as is shown in FIG. 2. The circular buffer 21 acts as a delay structure for delaying units from being considered for reclamation. The buffer 21 may contain a number of X elements [0 . . . X-1], each of which element’s points to or comprises a queue for units not available for reclamation. An index pointer 22 is provided for pointing at one queue of the buffer 21. The index pointer 22 switches to the next queue when a criterion is fulfilled. When pointing at the queue X-1, the index pointer 22 may return in a next operation to the beginning of the buffer 21 and point to queue 0 such that a circular buffer is implemented”).
In re claims 4, 12 and 20, the combination discloses the one or more processors of claim 1, the system of claim 9 and the method of claim 15, wherein Bakshi discloses wherein the one or more lock-free statically-sized regions of linked storage locations are to be deallocated by causing one or more regions of memory reserved to the one or more lock-free statically-sized regions of linked storage locations to no longer be reserved (Col 4, lines 9-23, “The system memory 50 includes queues, each containing a linked list of fixed size blocks, and a page pool of memory, containing variable size blocks, which may be allocated for storing display list entries. The system memory manager 100 allocates blocks from the linked lists and the page pool for storing the display list entries in response to requests from the interpreter 40. The system memory also contains memory blocks reserved for other purposes, such as storing frame buffer representations, spooling and processing” (discloses allocating means reserving memory to one or more blocks for various purposes would interpret deallocating means to no longer reserve)).
In re claims 5, 13 and 18, the combination discloses the one or more processors of claim 1, the system of claim 9 and the method of claim 15, wherein Bakshi discloses wherein the linked storage locations comprise one or more pointers to indicate one or more portions of the one or more lock-free statically-sized regions (Col 1, lines 66-67, Col 2, lines 1-4, “For applications using fixed size blocks, blocks are typically marked as allocated in a bit map. A running pointer or index identifies the next available block in the bit map. When a block is requested, the pointer or index is updated by executing a search algorithm to search for the next available block” (pointers are used to indicate blocks) and one or more counters to indicate a count of operations performed on the one or more lock-free statically sized regions (Fig. 2c, Col 6, lines 18-27, “FIG. 2c illustrates in detail the step of updating the usage count, i.e., step 2600. Referring to FIG. 2c, it is first determined at step 2620 whether there is an extension for which a usage count must be updated by determining whether the parameter "Extension (N)" is greater than 0. If the parameter "Extension (N)" is greater than 0, the parameter "usage (Extension (N))" is updated by adding one at step 2640. If the parameter "Extension (N)" is not greater than 0, this indicates that no extension has been created for queue N, and no updating occurs” (counters to indicate a count of operations performed on the blocks)).
In re claims 6, 14 and 19, the combination discloses the one or more processors of claim 1, the system of claim 9 and the method of claim 15, wherein Bakshi discloses wherein the 5G-NR information comprises integer data and the integer data is to be used to indicate at least one of the linked storage locations (Fig. 2d, Col 6, lines 28-46, “At step 2720, it is determined whether the parameter "Extension (N)" (an integer) is greater than zero. If the parameter "Extension (N)" is greater than zero, this indicates that the freed block was allocated from an extension, since extension blocks are allocated after queue blocks. The flow then moves to block 2722, where the extension from which the block was allocated is located. If the blocks have been allocated and freed sequentially, no searching is required to locate the extension that the freed block belongs to. The extension from which a freed block of size n was allocated is simply determined to be the most recently created extension that is still linked to the queue N containing blocks of size n” (N indicates the linked storage locations).
In re claim 7, the combination discloses the one or more processors of claim 1, wherein DESAI discloses wherein the API call is to receive one or more parameters to indicate the one or more lock-free statically sized regions of linked storage locations to be deallocated ([0016], “In response to determining that the data stored in the compressor pool has exceeded the first predetermined threshold, a memory usage reduction action is performed by identifying and causing a reduction in memory usage; the action can include requests (via an API) to applications to reduce memory usage and ultimately can include terminating a process to reclaim a memory space occupied by the process...Thereafter, if the available memory is still low or the data stored in the compressor pool still exceeds the first predetermined threshold, a notification is sent to a process that supports a “save-and-exit” feature via an application programming interface (API) to notify the process that the available memory is low and to request the process to release some of the memory used and/or to exit or terminate itself”. [0017], “Each memory allocation entry corresponds to an allocation of kernel memory, including information identifying a process or thread which allocated (e.g., caller of a “malloc” function) a memory region, as well as the meta data describing the allocated memory block. When a process calls a memory allocation function to allocate a memory block, a new memory allocation entry will be added to the zone map. Similarly, when a process calls a memory deallocation function to release a previously allocated memory region, a corresponding memory allocation entry will be removed from the zone map” (parameters indicating linked storage locations to be deallocated)).
In re claims 8 and 17, the combination discloses the one or more processors of claim 1 and the method of claim 15, wherein Ioannou discloses wherein the one or more lock-free statically sized regions of linked storage location are to be organized in memory as a circular doubly linked queue ([0043], “Hence, returning to the circular buffer 21 of FIG. 2, units are preferably placed at the tail of the current queue upon their first invalidation. Each unit may then be delayed for at least X times N pages writes with N denoting the number of pages per unit as follows: The index pointer 11 pointing at the current queue i is incremented upon each unit write. The next queue i+1 contains units that have seen exactly X unit writes (equaling X*N pages writes) since these units had been placed in this next queue i+1 when the index pointer was previously pointing at them, which is exactly X unit writes before. This next queue i+1 is then emptied. The units residing therein are returned to the first pool, before inserting new units. In an exemplary embodiment, a limit may be enforced to the total number of units residing in the second pool and as such being delayed at any one time so that the unit reclaiming never stagnates” (discloses a doubly ended circular structure last to first, first to last, circular arrangement for the lock free queue)).
Contact
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SWATI JAIN whose telephone number is (571)270-0699. The examiner can normally be reached Mon - Fri (830 am - 530 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, Pan Yuwen can be reached on 571-272-7855. 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.
/SWATI JAIN/Examiner, Art Unit 2649