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 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) 15 is/are rejected under 35 U.S.C. 103 as being unpatentable over Vary 20200301765 herein Vary in view of Tu et al. 20210133917 herein Tu.
Per claim 15, Vary discloses: :a memory configured to store executable instructions; andone or more processors coupled to the memory and configured to execute the executable instructions to cause the electronic device to:determine first data to be written into a circular storage queue; (fig. 4a, ¶0079; the present embodiment, the circular buffer 400 does not have predefined and fixed memory slots. Instead, the size of the data chunks inputed may vary and appropriate size slots in the queue 400 are to be assigned to accommodate this size. Therefore, this size is computed before assigning the pointer to a new location in the queue 400 as the size is necessary to assess if the input process 309 has sufficient space before doing so.) obtain a first write pointer of the first storage area; (fig. 4, ¶0053; A write pointer field comprising data indicative of the start of available writing space in the data queue. In the present example, the write pointer comprises a portion of memory in the metadata portion 403 containing the first memory address following the last slot of data added to the queue.) determine a first size of allocated space in the first storage area based on the first write pointer; (¶0079; In the present example, the input process 309 verifies whether there is sufficient space in the queue 400. In the present example where the queue may accommodate slots of arbitrary size, this involves computing the size of the slot required (by adding in this case the chunk of data which will form the second portion 406 of the slot to the size of the metadata portion 405 which in this example is a fixed size) and computing the size of available space in the queue (by comparing the number of memory addresses between the read pointer location and the write pointer location). The input process 309 then compares the space available in the queue and the size of the slot required and upon finding that the space available is greater than the size required, determines that there is sufficient space and proceeds to the next step in writing into the queue) … determining the first size is less than a second size of space of the first storage area; (¶0079; The input process 309 then compares the space available in the queue and the size of the slot required and upon finding that the space available is greater than the size required, determines that there is sufficient space and proceeds to the next step in writing into the queue) write the first data into the first subarea (¶0079; The input process 309 then compares the space available in the queue and the size of the slot required and upon finding that the space available is greater than the size required, determines that there is sufficient space and proceeds to the next step in writing into the queue).
Vary does not specifically disclose: obtain a global write pointer of the circular storage queue, wherein the circular storage queue comprises a plurality of storage areas, wherein each storage area of the storage areas comprises a plurality of subareas, and wherein the global write pointer points to a first storage area of the storage areas; perform a fetch and add (FAA) operation on the first storage area to allocate a first subarea of a first plurality of subareas in the first storage area when determining the first size is less than a second size of space of the first storage area.
However, TU discloses: obtain a global write pointer of the circular storage queue, wherein the circular storage queue comprises a plurality of storage areas, wherein each storage area of the storage areas comprises a plurality of subareas, and wherein the global write pointer points to a first storage area of the storage areas; (¶0052; a buffer management mechanism can be utilized in which threads directly output to different locations of a buffer pool in global memory as shown in FIG. 4. An output buffer pool of size B can be allocated and divided into small pages of size b. A global pointer P can hold the position of the first available page in the buffer pool. Each thread can start with one page and fill the page with output tuples by keeping its own pointer to empty space in the page.) perform a fetch and add (FAA) operation on the first storage area to allocate a first subarea of a first plurality of subareas in the first storage area when determining the first size is less than a second size of space of the first storage area;(¶0052; a buffer management mechanism can be utilized in which threads directly output to different locations of a buffer pool in global memory as shown in FIG. 4. An output buffer pool of size B can be allocated and divided into small pages of size b. A global pointer P can hold the position of the first available page in the buffer pool. Each thread can start with one page and fill the page with output tuples by keeping its own pointer to empty space in the page. Once the page is filled, the thread can acquire a new page pointed to by P via an atomic operation and increment P.; the examiner interprets the FAA operation as the atomic increment operation).
It would have been obvious to one having ordinary skill in the art at the effective filing date of the invention to combine the teachings of Vary and Tu’s buffer management in parallel without the need to synchronize. Vu reduces overhead (¶0052).
Per claim 16, Vary discloses: determine the first size is equal to the second size; determine a status of a second storage area of the storage areas is a writable state, wherein the second storage area is a next storage area that is adjacent to the first storage area; and update the global write pointer to obtain an updated global write pointer pointing to the second storage area (¶0072; In the present example where the queue may accommodate slots of arbitrary size, this involves computing the size of the slot required (by adding in this case the chunk of data which will form the second portion 406 of the slot to the size of the metadata portion 405 which in this example is a fixed size) and computing the size of available space in the queue (by comparing the number of memory addresses between the read pointer location and the write pointer location). The input process 309 then compares the space available in the queue and the size of the slot required and upon finding that the space available is greater than the size required, determines that there is sufficient space and proceeds to the next step in writing into the queue).
Per claim 17, Vary discloses: when executed by the one or more processors, further cause the electronic device to determine the status when the second storage area is in an unallocated state (¶0072; In the present example where the queue may accommodate slots of arbitrary size, this involves computing the size of the slot required (by adding in this case the chunk of data which will form the second portion 406 of the slot to the size of the metadata portion 405 which in this example is a fixed size) and computing the size of available space in the queue (by comparing the number of memory addresses between the read pointer location and the write pointer location). The input process 309 then compares the space available in the queue and the size of the slot required and upon finding that the space available is greater than the size required, determines that there is sufficient space and proceeds to the next step in writing into the queue).
Per claim 20, Tu discloses: further comprising writing the first data into the first subarea based on an allocate-write data-commit procedure (¶0052; a buffer management mechanism can be utilized in which threads directly output to different locations of a buffer pool in global memory as shown in FIG. 4. An output buffer pool of size B can be allocated and divided into small pages of size b. A global pointer P can hold the position of the first available page in the buffer pool. Each thread can start with one page and fill the page with output tuples by keeping its own pointer to empty space in the page. Once the page is filled, the thread can acquire a new page pointed to by P via an atomic operation and increment P.; the examiner notes that the atomic operation requires and allocation, write and commit).
Claims 1-3 and 6 are the method claims corresponding to the device claims 15-17 and 20and are rejected under the same reasons set forth in connection with the rejection of claims 15-17 and 20.
Per claim 1, The examiner notes that the new amendment further distinguishes when the peripheral device exclusively owns the caching data, deleting a status entry corresponding to the cache data in the host cache record table from the peripheral device sharing the cache data. The broadest reasonable interpretation of a method (or process) claim having contingent limitations requires only those steps that must be performed and does not include steps that are not required to be performed because the condition(s) precedent are not met. For example, the method claim requires “performing a fetch and add (FAA) operation on the first storage area to allocate a first subarea of a first plurality of subareas in the first storage area.” This limitation is contingent on “when determining the first size is less than a second size of space of the first storage area.” If the claimed invention may be practiced without either the first or second condition happening, then neither step A or B is required by the broadest reasonable interpretation of the claim.
See 2111.04. When analyzing the claimed method as a whole, the PTAB determined that giving the claim its broadest reasonable interpretation, "[i]f the condition for performing a contingent step is not satisfied, the performance recited by the step need not be carried out in order for the claimed method to be performed"
Allowable Subject Matter
Claims 4-5 and 18-19 objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Remark
Examiner respectfully requests, in response to this Office action, support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line number(s) in the specification and/or drawing figure(s). This will assist Examiner in prosecuting the application.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Lomet discloses: A storage entity structured as a plurality of storage buffers is accessed using dynamic allocation of storage for newly arriving storage entity entries. An offset variable value indicating a next available location for newly requested storage allocation within a particular storage buffer is maintained, the offset variable value updated via an atomic fetch and increment (FAI) operation to add the size of a requested allocation to the offset variable value, the offset variable value further indicating a current number of active users of the particular storage buffer. Storage of an entry in the storage entity is initiated using dynamic allocation of storage in one of the storage buffers, and the offset variable value is updated.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BABOUCARR FAAL whose telephone number is (571)270-5073. The examiner can normally be reached M-F 8:30-5:30 EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Tim VO can be reached at 5712723642. 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.
BABOUCARR . FAAL
Primary Examiner
Art Unit 2138
/BABOUCARR FAAL/Primary Examiner, Art Unit 2138