Detailed Action
Claims 1-30 are pending in this application.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 1/9/24 has been considered.
Drawings
The Drawings filed on 12/19/23 are acceptable.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-30 rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-30 of U.S. Patent No. 11,956,306. Although the claims at issue are not identical, they are not patentably distinct from each other because ‘306 teaches the instant claims and only differs in obvious verbiage.
Instant Claims
11,956,306
1. A method, comprising:
receiving, at a network device, network data associated with a multicast operation to be collectively performed by a plurality of endpoints;
reserving resources of the network device to process data to be received from the plurality of endpoints; and
providing, by the network device, the network data to a plurality of additional network devices, the plurality of additional network devices identified based, at least in part, on information obtained from the network data.
2. The method of claim 1, wherein one or more headers in the network data indicate a mapping between the network data and a virtual memory space of an endpoint device, and the information obtained from the network data comprises the mapping.
3. The method of claim 1, further comprising: storing the information obtained from the network data; retrieving the information in response to receiving the data from the plurality of endpoints; and using the retrieved information and reserving resources to process the data received from the plurality of endpoints.
4. The method of claim 1, wherein an endpoint of the plurality of endpoints comprises a parallel processing unit, and at least a portion of the network data is used by the parallel processing unit to perform at least a portion of the multicast operation.
5. The method of claim 1, wherein the network device receives the network data in response to at least one of a read operation or a write operation performed with respect to a memory of a parallel processing unit of an endpoint.
6. The method of claim 1, further comprising: processing the data received from the plurality of endpoints based, at least in part, on reduction information obtained from one or more headers in the network data.
7. The method of claim 1, further comprising: identifying a cycle in a topology, wherein the resources are reserved based, at least in part, on the cycle identified.
8. The method of claim 1, further comprising: updating both reduction information and routing information in a header prior to providing the network data to the plurality of additional network devices.
9. The method of claim 1, wherein providing the network data comprises sending the network data to the plurality of additional network devices, and the method further comprises: freeing the reserved resources in response to determining that a threshold amount of time has elapsed since the network data was sent and that at least one of the plurality of additional network devices has not responded to receiving the network data.
10. The method of claim 1, further comprising: determining that insufficient resources of the network device are available to process the data to be received from the plurality of endpoints; and waiting to process the network data until sufficient resources are available.
21. A method, comprising:
receiving, at a network device, first network data associated with a multicast operation to be collectively performed by at least a plurality of endpoints;
reserving resources of the network device to process second network data to be received from the plurality of endpoints, wherein resources to reserve are determined based, at least in part, on information obtained from the first network data;
sending, from the network device, the first network data to a plurality of additional network devices, the plurality of additional network devices identified based at least in part on the information obtained from the first network data;
receiving, at the network device, the second network data; and
processing, by the network device, the second network data using the reserved resources.
22. The method of claim 21, wherein the first network data comprises one or more headers, the one or more headers comprising information indicative of a mapping between the first network data and a virtual memory space of an endpoint device.
26. The method of claim 21, further comprising:
storing the information obtained from the header of the first network data; retrieving the information in response to receiving the second network data; and
using the retrieved information to process the second network data.
23. The method of claim 21, wherein an endpoint of the plurality of endpoints comprises a parallel processing unit, and wherein at least a portion of the first network data is used by the parallel processing unit to perform at least a portion of the multicast operation.
24. The method of claim 21, wherein the network device receives first network data sent in response to at least one of a read or write operation on a memory of a parallel processing unit on an endpoint.
25. The method of claim 21, further comprising:
processing the second network data based, at least in part, on reduction information obtained from one or more headers in the first network data.
27. The method of claim 21, further comprising:
identifying a cycle in a topology; and
reserving the resources based, at least in part, on the identification of the cycle.
28. The method of claim 21, further comprising:
update reduction and routing information in the header prior to sending the first network data to the plurality of additional network devices.
29. The method of claim 21, further comprising:
freeing the reserved resources in response to determining that a threshold amount of time has elapsed since sending the first network data and that at least one of the additional network devices has not responded to receiving the first network data.
30. The method of claim 21, further comprising: determining that insufficient resources of the network device are available to process the second network data to be received from the plurality of endpoints; and holding the first network data until sufficient resources are available.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claim 10 rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
As per claim 10, recites the limitation of “determining that insufficient resources of the network device are available to process the data to be received from the plurality of endpoints”, is unclear and indefinite. By reciting that the insufficient resources are available that means there is enough resource to process the data. In further from claim 1, recites the limitations of “reserving resources of the network device”, therefore how can there be insufficient resources for processing of the data if resources are already reserved to process the data?
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-6, 11-17, 20-27 rejected under 35 U.S.C. 103 as being unpatentable over US 2012/0076067 issued to Yao et al.(Yao) in view of US 2021/0036877 issued to Klenk et al.(Klenk) in view of US 2014/0359248 issued to Peters et al.(Peters).
As per claims 1, 11, 21, Yao teaches a method/a network device, comprising: at least one processor; and at least one memory comprising instructions that, in response to execution by the at least one processor, cause the network device/a non-transitory machine-readable medium having stored thereon instructions which, in response to execution by one or more processors, cause the one or more processors to at least(Fig.1): to comprising: receiving, at a network device, network data associated with a multicast data (Fig.1,2, [0030] Firstly, in step S10, RP 31 receives the multicast data packets, the multicast data packets…);
the network device to process data to be received from the plurality of endpoints(Fig.1, [0012] According the second aspect of present invention, providing a processing device, used for processing the multicast data packets from mobile multicast source point, in the first rendezvous point of communication network…..)
providing, by the network device, the network data to a plurality of additional network devices, the plurality of additional network devices identified based, at least in part, on information obtained from the network data(Fig.2, 6A-7C, [0048] Then, the method enters step S11. In step S11, RP 31 determines whether it is needed to send the multicast data packets to RP 32 and 33. In the present embodiment, we name the RP 31 that received the multicast data packet as the first RP, the sending object RP to which the first RP may forward the multicast data packet as the second RP 32 and 33…. [0050] RP 31 determines if the source IP address of the outermost layer IP header of present multicast data packet contains the unicast address of RP 32 or 33, according to the obtained multicast data packet. It should be noted that, when the multicast data packet only contains one layer of IP header, the outermost layer IP header is the only one layer of IP header. If the source IP address of the outermost IP header of present multicast data packet contains neither the unicast address of RP 32, nor the unicast address of RP 33, then RP 31 determines the need to forward the multicast data packet to other RP in anycast group 5. [0051] Then, the method enters step S12. In step S12, RP31 directly sends the multicast data packet to RP32 and 33 respectively. RP can send the multicast data packet to all the other RPs in anycast group 5, by using the way of unicast tunnel, or adding the routing extension header (mainly for IPv6) or by source routing options (mainly for IPv4) in data packets.)
Yao does not explicitly teach multicast operation to be collectively performed by a plurality of endpoints and reserving resources of the network device.
Klenk explicitly teaches multicast operation to be collectively performed by a plurality of endpoints([0025] In some embodiments, the collective communication primitive is associated with a reduction operation. A reduction operator is specified in at least one of the pull request or a multicast region table; [0026] …. receiving, at a network device, a pull request associated with a collective communication primitive; identifying one or more participating endpoints associated with the pull request; forwarding the pull request to each of the one or more participating endpoints via a multicast capability of the network device….[0158] At step 708, the replicated packets arrive at each participating endpoint and are processed by the endpoint. Processing a packet can refer to decoding a payload of the packet and performing any operations specified by the payload. In some embodiments, the payload for the packet can include an operation code (opcode) and data for the operation. The opcode can indicate the type of collective communication primitive contained in the packet. The data can include zero or more data elements to be processed by the endpoint. For example, if the collective communication primitive is an All-Reduce primitive, then the payload will contain a result of the reduce operation, computed in-network, that is broadcast to each participating endpoint….).
Therefore it would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to modify Yao to include the teaching of Klenk in order to provide the predictable result of endpoints performing multicast operation such as reduction operation.
One ordinary skill in the art would have been motivated to combine the teachings in order to perform computations with multiple processors in a shared global memory system(Klenk, para.3).
Yao in view of Klink does not explicitly teach reserving resources of the network device.
Peters explicitly teaches reserving resources of the network device([0032] In 64-bit architectures, memory section 204 can be reserved for use exclusively use by user applications. The 64-bit kernel can then reside in a reserved high memory area, such as memory section 208, which is disjoint from memory section 204. An embodiment of the memory manager (e.g., dynamic memory manager 105) can reserve an allocator reserve space 205 above the 64-bit user space 204 for use in allocating memory requests for user space applications. Placing the allocations in a specific region of virtual memory allows the allocator to reserve specific memory regions for specific purposes. For example, each processor core can be allocated a specific region of memory, avoiding contention between multiple processors as they attempt to perform memory allocations to the same region of memory. When the region of memory dedicated to each processor is defined in advance, metadata regarding the ownership of a memory allocation can be stored in the memory address of the allocation, instead of in a memory allocation descriptor.)
Therefore it would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to modify Yao in view of Klenk of processing of data to apply the well known teachings of Peters of reserving memory for specific purposes in order to provide the predictable result of reserving memory for storage and processing of data.
One ordinary skill in the art would have been motivated to combine the teachings in order to manage memory allocation(Peters, para.6)
As per claims 2,12,22, Yao in view of Klenk in view of Peters teaches the method/network device/non-transitory machine-readable medium of claim 1,11,21, wherein one or more headers in the network data indicate a mapping between the network data and a virtual memory space of an endpoint device, and the information obtained from the network data comprises the mapping(Yao, Fig.5-7, Klenk, [0158] At step 708, the replicated packets arrive at each participating endpoint and are processed by the endpoint. Processing a packet can refer to decoding a payload of the packet and performing any operations specified by the payload. In some embodiments, the payload for the packet can include an operation code (opcode) and data for the operation. The opcode can indicate the type of collective communication primitive contained in the packet. The data can include zero or more data elements to be processed by the endpoint. For example, if the collective communication primitive is an All-Reduce primitive, then the payload will contain a result of the reduce operation, computed in-network, that is broadcast to each participating endpoint. The endpoint can then write the data contained within the payload into a memory corresponding to the local virtual address space, as mapped from the network address for the packet in the address translation table.; Peters, [0021] In embodiments described herein, a memory manager manages memory allocations with reduced metadata processing and storage by representing multiple elements of metadata using the virtual memory address of the allocation. In one embodiment, multiple blocks of virtual memory can be pre-reserved based on a bit assignment between the memory address bits and the metadata bits, and memory allocations can be serviced using virtual memory addresses that correspond with the appropriate address bits that describe the allocation. In one embodiment, blocks of virtual memory having specific addresses are reserved, and the reserved virtual address space can be divided into equal sized lanes of a pre-determined size, and memory allocations of specific sizes can be serviced from specific lanes.). Motivation to combine set forth in claim 1,11,21, set forth above.
As per claims 3,13,23, Yao in view of Klenk in view of Peters teaches the method/network device/non-transitory machine-readable medium of claim 1,11,21, further comprising: storing the information obtained from the network data(Yao, [0056] RP31, 32 and 33 share the route forwarding table, and the route forwarding Table is shown as table 1. Wherein, Table 1 shows the source address, CoA, and out-interface. It is worth noting that, the out-interface information stored in the each route forwarding table of RP31, 32 and 33 is maintained respectively by each RP…. ); retrieving the information in response to receiving the data from the plurality of endpoints(Klenk, [0160] ….. For example, each of the participating endpoints can transmit an All-Reduce primitive to a network address associated with the MCR. The logic 130 processes the All-Reduce primitives and computes a reduction operation on the payloads from each of the participating endpoints. The final result of the reduction operation is then broadcast to each of the participating endpoints. In other words, the network device 110 is configured to intercept and consolidate certain network packets associated with different MCRs in order to perform operations associated with different collective communication primitives in the network device 110 rather than on the participating endpoints. The result is only forwarded to the participating endpoints once the operation is complete.); and using the retrieved information and reserving resources to process the data received from the plurality of endpoints(Yao, Fig.1, [0012] According the second aspect of present invention, providing a processing device, used for processing the multicast data packets from mobile multicast source point, in the first rendezvous point of communication network…..; Peters, [0032] In 64-bit architectures, memory section 204 can be reserved for use exclusively use by user applications. The 64-bit kernel can then reside in a reserved high memory area, such as memory section 208, which is disjoint from memory section 204. An embodiment of the memory manager (e.g., dynamic memory manager 105) can reserve an allocator reserve space 205 above the 64-bit user space 204 for use in allocating memory requests for user space applications. Placing the allocations in a specific region of virtual memory allows the allocator to reserve specific memory regions for specific purposes. For example, each processor core can be allocated a specific region of memory, avoiding contention between multiple processors as they attempt to perform memory allocations to the same region of memory. When the region of memory dedicated to each processor is defined in advance, metadata regarding the ownership of a memory allocation can be stored in the memory address of the allocation, instead of in a memory allocation descriptor). Motivation to combine set forth in claim 1,11,21, set forth above.
As per claims 4,24, Yao in view of Klenk in view of Peters teaches the method/non-transitory machine-readable medium of claim 1, 21, wherein an endpoint of the plurality of endpoints comprises a parallel processing unit, and at least a portion of the network data is used by the parallel processing unit to perform at least a portion of the multicast operation(Klenk, [0011] In some embodiments, each of the participating endpoints comprises a parallel processing unit and a memory coupled to the parallel processing unit. The memory in each participating endpoint stores an address translation table that maps network addresses in the shared global address space to a local address space for the participating endpoint. [0061] Although the endpoints are described to include a processor and memory, in some embodiments, the endpoints can each include a parallel processing unit. The parallel processing units can execute programs that include instructions that perform operations on data in a memory. The instructions can include instructions adapted to be processed in the network by using the special MCRs. For example, a load or store instruction can be addressed to an address within a MCR, which causes the parallel processing unit in the endpoint to generate a data packet associated with the load/store instruction that is forwarded to the network device 110. A description of an exemplary parallel processing unit is set forth below before discussing the detailed methods for performing a network computation.). Motivation to combine set forth in claim 1,11,21, set forth above.
As per claims 5,15,25, Yao in view of Klenk in view of Peters teaches the method/network device/non-transitory machine-readable medium of claim 1,11,21, wherein the network device receives the network data in response to at least one of a read operation or a write operation performed with respect to a memory of a parallel processing unit of an endpoint(Klenk, [0061] Although the endpoints are described to include a processor and memory, in some embodiments, the endpoints can each include a parallel processing unit. The parallel processing units can execute programs that include instructions that perform operations on data in a memory. The instructions can include instructions adapted to be processed in the network by using the special MCRs. For example, a load or store instruction can be addressed to an address within a MCR, which causes the parallel processing unit in the endpoint to generate a data packet associated with the load/store instruction that is forwarded to the network device 110. A description of an exemplary parallel processing unit is set forth below before discussing the detailed methods for performing a network computation. [0069] In an embodiment, a program executed by the host processor encodes a command stream in a buffer that provides workloads to the PPU 300 for processing. A workload may comprise several instructions and data to be processed by those instructions. The buffer is a region in a memory that is accessible (e.g., read/write) by both the host processor and the PPU 300. For example, the I/O unit 305 may be configured to access the buffer in a system memory connected to the interconnect 302 via memory requests transmitted over the interconnect 302. In an embodiment, the host processor writes the command stream to the buffer and then transmits a pointer to the start of the command stream to the PPU 300. The front end unit 315 receives pointers to one or more command streams. The front end unit 315 manages the one or more streams, reading commands from the streams and forwarding commands to the various units of the PPU 300.). Motivation to combine set forth in claim 1,11,21, set forth above.
As per claims 6, 16, 26, Yao in view of Klenk in view of Peters teaches the method/network device/non-transitory machine-readable medium of claim 1,11,21, further comprising: processing the data received from the plurality of endpoints based, at least in part, on reduction information obtained from one or more headers in the network data(Klenk, [0025] In some embodiments, the collective communication primitive is associated with a reduction operation. A reduction operator is specified in at least one of the pull request or a multicast region table; [0026] …. receiving, at a network device, a pull request associated with a collective communication primitive; identifying one or more participating endpoints associated with the pull request; forwarding the pull request to each of the one or more participating endpoints via a multicast capability of the network device….[0158] At step 708, the replicated packets arrive at each participating endpoint and are processed by the endpoint. Processing a packet can refer to decoding a payload of the packet and performing any operations specified by the payload. In some embodiments, the payload for the packet can include an operation code (opcode) and data for the operation. The opcode can indicate the type of collective communication primitive contained in the packet. The data can include zero or more data elements to be processed by the endpoint. For example, if the collective communication primitive is an All-Reduce primitive, then the payload will contain a result of the reduce operation, computed in-network, that is broadcast to each participating endpoint…). Motivation to combine set forth in claim 1,11,21, set forth above.
As per claims 14, Yao in view of Klenk in view of Peters teaches the network device of claim 11, wherein an endpoint of the plurality of endpoints comprises a parallel processing unit, and at least a portion of the network data is written to a memory of the parallel processing unit(Klenk, [0061] Although the endpoints are described to include a processor and memory, in some embodiments, the endpoints can each include a parallel processing unit. The parallel processing units can execute programs that include instructions that perform operations on data in a memory. The instructions can include instructions adapted to be processed in the network by using the special MCRs. For example, a load or store instruction can be addressed to an address within a MCR, which causes the parallel processing unit in the endpoint to generate a data packet associated with the load/store instruction that is forwarded to the network device 110. A description of an exemplary parallel processing unit is set forth below before discussing the detailed methods for performing a network computation. [0069] In an embodiment, a program executed by the host processor encodes a command stream in a buffer that provides workloads to the PPU 300 for processing. A workload may comprise several instructions and data to be processed by those instructions. The buffer is a region in a memory that is accessible (e.g., read/write) by both the host processor and the PPU 300. For example, the I/O unit 305 may be configured to access the buffer in a system memory connected to the interconnect 302 via memory requests transmitted over the interconnect 302. In an embodiment, the host processor writes the command stream to the buffer and then transmits a pointer to the start of the command stream to the PPU 300. The front end unit 315 receives pointers to one or more command streams. The front end unit 315 manages the one or more streams, reading commands from the streams and forwarding commands to the various units of the PPU 300.). Motivation to combine set forth in claim 1,11,21, set forth above.
As per claims 17, 27, Yao in view of Klenk in view of Peters teaches the network device/non-transitory machine-readable medium of claim 11, 21, wherein one or more headers in the network data(Yao, Figs.5-7) comprises both reduction information(Klenk, [0158] At step 708, the replicated packets arrive at each participating endpoint and are processed by the endpoint. Processing a packet can refer to decoding a payload of the packet and performing any operations specified by the payload. In some embodiments, the payload for the packet can include an operation code (opcode) and data for the operation. The opcode can indicate the type of collective communication primitive contained in the packet. The data can include zero or more data elements to be processed by the endpoint. For example, if the collective communication primitive is an All-Reduce primitive, then the payload will contain a result of the reduce operation, computed in-network, that is broadcast to each participating endpoint…). ) and routing information for the multicast operation(Ya, Figs.5-7). Motivation to combine set forth in claim 1,11,21, set forth above.
As per claim 20, the Yao in view of Klenk in view of Peters teaches network device of claim 11, wherein the plurality of additional network devices comprises at least one of a switch, router, or endpoint(Yao, [0026] FIG. 1 is a diagram of the IP network based on ASM, and it should be understood that for simplicity, it only shows the segments related to the invention, and the omitted part can be implemented by those skilled in the art by combining the existing or the future technology in this art, such omission do not affect the sufficient disclosure of the invention. In addition, as those skilled in the art understand, the number of each network equipment shown in the figures is just to meet the needs of the following description, and it does not constitute any restriction to this invention. Shown in FIG. 1, mobile multicast source point 1, such as a notebook computer, accesses the IP network through the equipments such as MODEM of family network. FIG. 1 also shows a router 2 based on multicast routing protocols such as PIM-SM or BIDIR-PIM, it is in advance selected as the CDR (Currently Designated Router) of one or more multicast sources (including mobile multicast source point) in the current subnet, the following will refer it to the current designated router 2 for short. The current designated router 2 can be placed in the ER (Edge Router). FIG. 1 also includes the RP 31, 32 and 33. These three RPs 31, 32 and 33 can be placed in the ER, or can be placed in the CR (Core Router). These three RP compose an anycast group 5, commonly takes the processing tasks of RPs of the shared multicast tree, and shares the address of one anycast group 5. In addition, three RPs 31, 32 and 33 have different IP unicast addresses respectively, used for the communication between them.).
Claims 7,30 rejected under 35 U.S.C. 103 as being unpatentable over US 2012/0076067 issued to Yao et al.(Yao) in view of US 2021/0036877 issued to Klenk et al.(Klenk) in view of US 2014/0359248 issued to Peters et al.(Peters) in view of US 2022/0206697 issued to Zhang et al.(Zhang).
As per claims 7, 30, Yao in view of Klenk in view of Peters teaches the method/non-transitory machine-readable medium of claim 1,21, however does not explicitly teach identifying a cycle in a topology, wherein the resources are reserved based, at least in part, on the cycle identified, which is taught by Zhang, [0005] According to a first aspect of the present disclosure, a memory coupled compiling method of a reconfigurable chip is provided. The memory coupled compiling method includes: acquiring a cycle number of a data flow graph; acquiring a linear transformation vector of the cycle number through a mapping time difference; determining whether a linear array of the linear transformation vector is acquired by a heuristic algorithm; acquiring a memory mapping result through a current data flow graph if the linear array of the linear transformation vector is acquired by the heuristic algorithm; and adjusting the current data flow graph and acquiring a cycle number of the current data flow graph until the linear array is acquired, if the linear array of the linear transformation vector is not acquired by the heuristic algorithm. [0057] In the present disclosure, the conflict accessing manner between mapping and memory is adjusted. In the method according to embodiments of the present disclosure, a mapping code will be executed first, and then the cycle number of each load node and store node will be computed using the mapping code, the generated cycle number will be added to the topological structure of the memory, and then try to find a reasonable memory allocation mechanism. If the reasonable memory allocation mechanism can be found, a banking coefficient obtained thereby will be used.
Therefore it would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to modify Yao in view of Klenk in view of Peters to apply the teachings of Zhang in order to provide the predictable result of memory allocation based on cycle in topological structure of memory.
One ordinary skill in the art would have been motivated to combine the teachings in order to manage memory allocation(Peters, para.6)
Claims 8, 18, 28, rejected under 35 U.S.C. 103 as being unpatentable over US 2012/0076067 issued to Yao et al.(Yao) in view of US 2021/0036877 issued to Klenk et al.(Klenk) in view of US 2014/0359248 issued to Peters et al.(Peters) in view of US 2016/0359769 issued to Wang et al.(Wang).
As per claims 8,18, 28, Yao in view of Klenk in view of Peters teaches the method/network device/non-transitory machine-readable medium of claim 1,11,21, further comprising: reduction information(Klenk, [0025]; [0026].[0158] ) and routing information in a header(Yao, Figs.5-7), however does not explicitly teach updating a header prior to providing the network data to the plurality of additional network devices, which is taught by Wang [0035] The forwarding device 410 is coupled to the classifier module 420 and separate from the plurality of virtual machine modules 402 and configured to forward the data packets 304, based on the updating data 412 as data packets 304′. In particular, the designation as data packets 304′ reflects that forwarding device 410 may modify some or all of the data packets 304 in the telecommunications traffic 300, for example, by rewriting the packet header data to include new or updated packet header data, by filtering out (dropping) a packet altogether that is not to be forwarded, by rate limiting some or all of the data packets 304 or otherwise modifying the data packets 304 prior to forwarding in the virtualized telecommunication network.
Therefore it would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to modify Yao in view of Klenk in view of Peters to apply the teachings of Wang in order to provide the predictable result of updating of reduction and routing information in a header before forwarding.
One ordinary skill in the art would have been motivated to combine the teachings in order to ensure the most up to date information is being sent.
Claims 9,19, rejected under 35 U.S.C. 103 as being unpatentable over US 2012/0076067 issued to Yao et al.(Yao) in view of US 2021/0036877 issued to Klenk et al.(Klenk) in view of US 2014/0359248 issued to Peters et al.(Peters) in view of US 2019/0173981 issued to Chalmers.
As per claims 9,19, Yao in view of Klenk in view of Peters teaches the method/network device of claim 1,11, wherein providing the network data comprises sending the network data to the plurality of additional network devices(Yao, Fig.1, [0012]), however does not explicitly teach freeing the reserved resources in response to determining that a threshold amount of time has elapsed since the network data was sent and that at least one of the plurality of additional network devices has not responded to receiving the network data, which is taught by Chalmers, [0042] Moreover, a packet disassembly resource is configured with a suitable timeout period. If an ingress packet cannot be delivered within the timeout period, the event is counted or logged. Further, the ingress packet will be dropped upon expiration of the timeout period, and the packet disassembly resource is freed for processing other ingress packets.
Therefore it would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to modify Yao in view of Klenk in view of Peters to apply the teachings of Chalmers in order to provide the predictable result free up resources when response packets timeout.
One ordinary skill in the art would have been motivated to combine the teachings in order using resources to process other packets(Chalmers, para.42).
Claims 10 rejected under 35 U.S.C. 103 as being unpatentable over US 2012/0076067 issued to Yao et al.(Yao) in view of US 2021/0036877 issued to Klenk et al.(Klenk) in view of US 2014/0359248 issued to Peters et al.(Peters) in view of US 2022/0253338 issued to Riley et al.(Riley).
As per claims 10, Yao in view of Klenk in view of Peters teaches the method/network device/non-transitory machine-readable medium of claim 1,11,21, however does not explicitly teach determining that insufficient resources of the network device are available to process the data to be received from the plurality of endpoints; and waiting to process the network data until sufficient resources are available, which is taught by Riley, [0019] ... For instance, in a situation where the memory has only 400 MB free space but 600 MB is needed to perform the task, conventional data analytic platforms typically lock a memory block of 400 MB for the task anyway and wait till another 200 MB becomes available to perform the task. The 400 MB is “wasted” during the time of waiting. Different from the conventional data analytic platforms, the data analytics application 150 does not lock the 400 MB. Rather, it uses the 400 MB to perform other data processing tasks that requires no more than 400 MB while it is waiting for the memory to have enough free space for the task. Thus, the memory management technique implemented by the data analytics application 150 optimizes usage of the memory 140 and improves data processing efficiency.
Therefore it would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to modify Yao in view of Klenk in view of Peters to apply the teachings of Riley in order to provide the predictable result of when there is not enough memory to process a task then waiting till there is enough to process the task.
One ordinary skill in the art would have been motivated to combine the teachings in order to optimize usage of memory and improve data processing efficiency(Riley, para.19).
Claim 29 rejected under 35 U.S.C. 103 as being unpatentable over US 2012/0076067 issued to Yao et al.(Yao) in view of US 2021/0036877 issued to Klenk et al.(Klenk) in view of US 2014/0359248 issued to Peters et al.(Peters) in view of US 2021/0029750 issued to Xin et al.(Xin).
As per claims 29, Yao in view of Klenk in view of Peters teaches the non-transitory machine-readable medium of claim 21, however does not explicitly teach drop the network data associated with the multicast operation based, at least in part, on a determination that a threshold amount of time has elapsed since the network data was sent and that at least one of the plurality of additional network devices has not responded to receiving the network data, which is taught by Xin, [0065] After the STA waits for the backoff time and senses that the channel is idle (unoccupied), the STA decides whether to send a Ready To Send (RTS) frame to ensure channel occupancy or not. If the STA sends an RTS frame, the channel occupancy is ensured when it receives a Clear To Send (CTS) frame, whereby the STA sends the packet. If the STA does not send an RTS frame, then it sends the packet directly. A retransmission is required if the CTS frame is not received after sending an RTS frame, or if the STA does not receive an ACKnowledgement (ACK) before timeout. Otherwise, the transmission succeeds. When the retransmission is required, the STA checks the number of retransmissions of the packet. If the number of retransmissions exceeds the retry limit, then the packet is dropped and no retransmissions are scheduled. Otherwise, the retransmission is scheduled. If the retransmission is scheduled, then another backoff time is needed to contend for channel access for the retransmission. If the size of the contention window does not reach the upper limit, then the STA increases it. The STA sets another backoff time depending on the new size of the contention window. The STA waits the backoff time for retransmission and so forth. [0129] FIG. 14 illustrates an example embodiment 210 of an RTA packet being dropped due to an expired packet lifetime, in particular in the case of when the retransmission of an RTA packet is not scheduled due to the expiration of the packet lifetime. The figure depicts a transmitter STA 212 and receiver STA 214. When the transmitter STA transmits an RTA packet, it sets a lifetime 216 to transmit that packet. An initial transmission is seen 218. In the figure the value G1 represents Short Interframe Spaces (SIFS), G2 represents Distributed Coordination Function (DCF) Interframe Spaces (DIFS) and G3 represents an ACKnowledgement (ACK) Timeout. Before performing any retransmitting of the RTA packet, the transmitter STA checks whether the lifetime of the packet expires. The retransmission is not scheduled and that packet is dropped if the lifetime has expired. In this example, the transmitter after the period 220 (G2+G3), and performs a backoff 222, after then having obtained the channel, the STA transmits a first retransmission 224 since the packet lifetime has not expired. After that, it checks the packet lifetime and it is found in this example that it has expired 226, so it stops retransmitting and drops the packet.
Therefore it would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to modify Yao in view of Klenk in view of Peters to apply the teachings of Xin in order to provide the predictable result of dropping packets when there is a timeout or expired packet lifetime.
One ordinary skill in the art would have been motivated to combine the teachings in order to reduce congestion in the network.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. See PTO-892.
US 2005/0010687 issued to Dai, teaches a parallel processor computer interconnect router comprises a multicasting module and a gathering module. The multicasting module is operable to receive a single incoming multicast packet comprising a destination identifier identifying a plurality of destination nodes, and to output multiple unicast packets, each of the multiple unicast packets comprising a destination header identifying a single destination node from among the plurality of destination nodes. The gathering module is operable to receive unicast reply packets from the plurality of destination nodes, and to output a combined multicast reply packet.
US 8,051,423 issued to Amin, teaches a parallel processing infrastructure, which enables the robust design of task scheduler(s) and communication primitive(s). This is achieved, in one embodiment of the present invention, by decomposing the general problem of exploiting parallelism into three parts. First, an infrastructure is provided to track resources. Second, a method is offered by which to expose the tracking of the aforementioned resources to task scheduler(s) and communication primitive(s). Third, a method is established by which task scheduler(s) in turn may enable and/or disable communication primitive(s). In this manner, an improved parallel processing infrastructure is provided
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BACKHEAN TIV whose telephone number is (571)272-5654. The examiner can normally be reached on Mon.-Thurs. 5:30-3: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, TONIA DOLLINGER can be reached on (571) 272-4170. 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.
/BACKHEAN TIV/
Primary Examiner
Art Unit 2459