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 .
Response to Remarks/Arguments
This Office Action is in response to the communications for the present US application number 17/733,625, with claims last filed on July 25th, 2025.
Claims 1, 2, 13-17 and 19 were amended.
Claims 1-20 remain pending and have been examined, directed to DATA CENTER CLUSTER ARCHITECTURE.
Upon further review of the latest claim amendments along with the applicant’s representative’s response, the examiner reviewed and reconsidered everything with respect to what the applied references’ teachings covered versus the new amended claim language and ultimately remain unpersuaded.
With respect to the 35 U.S.C. § 103 rejection, using Gans in view of Natu, and using amended independent claim 1 for discussion purposes here, the applicant’s representative primarily argued about the amended claim language directed to an interface that is compliant with CXL based protocol, which is what allows for the control messages, to be received by the system, via the interfacing, in order to carry out the processing steps.
In response, the Examiner reviewed Gans and would contend that Gans already disclosed about system that are compatible and CXL compliant. There are Figures and embodiments that clearly depict and illustrate the control interfacing aspects as well (e.g., Gans: Figs. 9, 10, 14, and 15), separate from memory storage means for the application’s data packets. The previous version of the claim language already established for example, that the system was sending instructions to the system to indicate to the host device that a request packet is stored within the memory pool at some address. The new amended language only re-emphasizes the same concept, that instructions are now referred to as “control messages”. In other words, the system is still carrying out the same steps, as one of ordinary skill already knows and interpreted that the host device/system would be responding to instructions or “control messages” to determine and recognize the request packets and how to handle them. The biggest concern with the independent claim at this time is that the interface that is compliant with CXL protocol, does not actually run/execute any CXL instructions.
With respect to the previously indicated allowable subject matter, after further review, the Examiner concluded that since Gans initially was already applicable CXL compliant/capable, then we haven’t really added significantly more to this concept. The Examiner had previously indicated that CXL specific commands, when executed, would have been allowable. However, such language was not found nor incorporated at this time. This would’ve required at a minimum of claim 3 and/or claim 4’s language. But, after further review, and because Natu’s supplemental teachings were found to illustrate a system that was not just CXL compliant or capable, but also executing CXL based read and write commands using CXL semantics, the Examiner has concluded this concept was still sufficiently taught.
The other independent claims 13 and 15 were reviewed and addressed accordingly with respect to claim 1, with the variations noted and addressed and thus was similarly rejected following the same rationale.
The remaining dependent claims were not specifically argued at this time.
Applicant's arguments were considered but they were not found persuasive. See the following claim rejections for further clarifications with added emphasis on the points previously disclosed.
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.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over U.S. Patent Publication No. US 2022/0254390 A1 to Gans et al. (referred to hereafter as “Gans”) in view of U.S. Patent Publication No. US 2020/0192798 A1 to Natu et al. (referred to hereafter as “Natu”).
As to claim 1, Gans further discloses an apparatus comprising:
a network processing device comprising:
an interface to couple to a plurality of host devices in a data center cluster via an interconnect, wherein the interface is compliant with a Compute Express Link (CXL)-based protocol (Gans discloses of various memory array configurations, that can be multi-modular, with an interface that is compliant with CXL protocol (e.g., Gans: ¶¶ 42-44, 46-47, and 65 for examples of different setups and configurations, and Figs. 3-5, 9-13, 15 and 16). Because Gans described of embodiments that encompasses multi-die or multi-module configurations (e.g., ¶¶ 46-47) and because host system(s) are mentioned passively in various examples as well (e.g., ¶¶ 5, 38, 40, 42-44, and 79-80), therefore, while Gans does not explicitly discloses of the modules/devices interfacing between host devices in data centers, it would still have been obvious to one of ordinary skill in the art, before the effective filing date of the present application, that these modules and/or configurations that Gans described, can be situated within one or more host devices/systems and wherein the host devices/systems are further situated across one or more data centers);
a processor device (Various embodiments of the memory array described with respect to the different Figures are all further connecting to one or more host processor(s) within a system, e.g., Gans: ¶¶ 7-8, 40, 42-44, 62, 65, 81 and Figs. 3-5, 9-13, 15 and 16);
a memory, wherein at least a portion of the memory is for use as a memory pool for the data center cluster, and the plurality of host devices are to access the memory pool via the interface (As mentioned above, while Gans does not explicitly disclose of the memory array configurations to be used in a data center cluster, Gans does disclose about the memory module arrays at a smaller scale. For example, all of the Figures illustrate some form of memory array or module configuration and to memory device(s).
It would have been obvious to one of ordinary skill in the art, before the effective filing date of the present application, that these memory storage means or arrays can be utilized and further incorporated within all sorts of devices, systems, or data center clusters, including distributed formats as we consider other possibilities scaling upwards (e.g., Gans: ¶¶ 5 and 85). Additionally, it would also have been obvious that any of these devices or host systems would have these memory arrays/modules, that provide access to a form of memory “pool” via an (control) interface, as the systems carry out various processing tasks/requests. Gans discloses at the very least of memory module arrays and control circuitry interfacing (e.g., Gans: abstract, ¶ 27 and Figs. 9, 10, 14 and 15));
a service mesh agent (this “mesh agent” component is being interpreted as any modular component that can perform the following steps, as it can be integrated within an overall “apparatus” and/or a “network processing device”), executable by the processor device, to:
identify a request packet, wherein the request packet is to be stored at an address in the memory pool (Gans discloses in one embodiment of an interfacing control logic circuit for a memory array module that is able to identify/inspect the memory address of one or more packet(s) received and determine its memory address space, e.g., Gans: ¶¶ 80-81);
determine that the request packet comprises a request associated with an application hosted by a particular one of the plurality of host devices (In some embodiments, the system knows of the applications involved or implementing this memory array module, e.g., Gans: ¶¶ 53 and 58);
write, via the interface, a first control message to a control message region in memory of the particular host device to indicate to the particular host device that the request packet is associated with the application and stored at the address in the memory pool (It’s been established that the host device/system is made aware of the request packet and the packet relates to the involved application, and stored in a location within the memory pool, based on addressing information. Gan discloses of the interfacing control circuitry and logic that can identify where the data is stored within the memory pool, based on addressing information, (e.g., Gans: ¶¶ 80-81). The “control” messages are the instructions that the system is responding to, in order to carry out or recognize the indicate of the request packets. Gans also further discloses of control circuit or interface control logic. And so, those can be the instructions for the system, separate from the request packets (e.g., Gans: ¶¶ Figs. 9, 10, 14 and 15));
monitor, via the interface, the control message region to identify that the application has prepared a response packet associated with the request and written the response packet to another address in the memory pool (Following the above steps and interpretation, the “control” message is again interpreted as instructions for the system. Gans also has control circuitry or interface control logic (e.g., Gans: ¶¶ Figs. 9, 10, 14 and 15), that can direct the system to determine or identify or distinguish between different packets, and at the very least, based on their different addressing information on where they are stored in memory.
While Gans does not expressly disclose of the system clearly identifying that a packet is a direct, specific reply or response packet in association with the identified request packet, it would still have been obvious to one of ordinary skill in the art, before the effective filing date of the present application that Gans’ system is modular in nature with each packet that’s identified, such that a reply or response packet can be treated or stored as a separate piece of data/information in a different address location within the memory, and similar to the above request packet scenario.
To further supplement this feature, Natu more expressly discloses of a similar scenario wherein a system can identify a packet as whether it is a request or response (e.g., Natu: ¶¶ 79-80).
Based upon Natu’s more explicitly example, it would have been obvious to one of ordinary skill in the art, before the effective filing date of the present application, that when combined and incorporated within Gans’ overall system, the same functionality of identifying and knowing where to send this particular “response” packet is also already known and handled in the same way as a “request” packet. And all of this would lead to increased efficiency and/or traffic flow management); and
facilitate transportation of the response packet from the network processing device to a destination computing device (Gans discloses of sending or facilitating each identified packet to its destination, which can be upstream, downstream and/or to another module entirely, which can be interpreted as a separate “system” or “device” entirely, e.g., Gans: ¶¶ 80-81).
As to claim 2, Gans further discloses the apparatus of Claim 1, wherein: the service mesh agent is further to:
read another control message in the control message region to identify that the application has prepared the response packet, wherein the other control message identifies that the response packet has been written to the other address in the memory pool, and the other control message was written to the control message region, via the interface, by the particular host device (Following claim 1’s steps and interpretations, the control messages are again interpreted as interpreted as instructions for the system, Gans discloses of the control circuitry or interface control logic (e.g., Gans: ¶¶ Figs. 9, 10, 14 and 15), which allows for written instructions or “control” messages, such that the system is now identifying the response packet, that’s written in its own addressing location with the memory storage array.
And following claim 1, it was established that Gans did not clearly and expressly discloses of the system being able to identify that a packet is a direct, specific reply or response packet to a request packet, but it would still have been obvious to one of ordinary skill in the art that Gans’ system is able to distinguish the packets apart, based on at least the addressing information of where they are stored. Gans’ system discloses of how the system can identify and handle “request” packets, but does not emphasize of response packets (e.g., Gans: ¶¶ 80-81).
Natu more expressly discloses of system that can identify a packet as whether it is a request or response (e.g., Natu: ¶¶ 79-80).
See the previously stated reasons for the incorporation of Natu’s teachings being combined within Gans’ overall system and teachings).
As to claim 3, Gans further discloses the apparatus of Claim 2, wherein reads and writes to the control message region and memory pool comprise CXL reads and CXL writes respectively (Following claims 1 and 2, while Gans discloses that the system is compliant with CXL protocol, Gans does not explicitly disclose of the CXL reads or writes.
Natu more expressly discloses of CXL specific commands using CXL semantics (e.g., Natu: ¶¶ 56 and 59).
See the previously stated reasons for the incorporation of Natu’s teachings being combined within Gans’ overall system and teachings).
As to claim 4, Gans further discloses the apparatus of Claim 3, wherein the control message is written to the control message region using a CXL.cache write, the response packet is written to the other address in the memory pool using a CXL.mem write, and the other control message is read using a CXL.cache read (Following claims 1-3, while Gans discloses that the system is compliant with CXL protocol, Gans does not explicitly disclose of the CXL.cache reads or CXL.mem writes.
Natu more expressly discloses of CXL specific commands using CXL semantics (e.g., Natu: ¶¶ 56 and 59).
See the previously stated reasons for the incorporation of Natu’s teachings being combined within Gans’ overall system and teachings).
As to claim 5, Gans further discloses the apparatus of Claim 1, wherein the network processing device further comprises another interface to couple to a network outside the data center cluster (Following claim 1, while Gans does not expressly discloses of separate data clusters, it would however be obvious to one of ordinary skill in the art, before the effective filing date of the present application, that each of the embodiments regarding the memory array modules that were being described can be connected or situated within a host system that can interface with other “systems” that are situated in a distributed manner, over the network, such as within one or more data center clusters, e.g., Gans: ¶¶ 76-77 and 80-81).
As to claim 6, Gans further discloses the apparatus of Claim 5, wherein the network processing device is to couple to another network processing device of another data center cluster via the other interface (See the similar interpreted rejection of claim 5 as it would have been obvious to one of ordinary skill in the art, before the effective filing date of the present application, that the system can communicate with other memory modules, interpreted as separate “systems” or hosts that are situated in a distributed manner, over the network, such as within one or more clusters or data centers, e.g., Gans: ¶¶ 76-77 and 80-81).
As to claim 7, Gans further discloses the apparatus of Claim 5, wherein the destination computing device comprises a computing device outside the data cluster, the request packet originates from the destination computing device, and the network processing device is to write the request packet to the address in the memory pool and send the response packet to the destination computing device over a network (Following claims 1 and 5, and similar to claim 5, Gans already discloses that the system circuitry can determine the addressing information of the packet, and so the packet’s destination can be determined to be a separate system or host that is situated in a distributed manner, over the network, such as within one or more clusters or data centers, e.g., Gans: ¶¶ 76-77 and 80-81).
As to claim 8, Gans further discloses the apparatus of Claim 7, wherein the network processing device further comprises:
a data processing unit to:
(Following claims 1, 5 and 7 above, all of the following steps are interpreted as being carried out by a modular circuitry component or “unit” as described in the Gans: ¶¶ 80-81 embodiment, wherein the system can determine the addressing information of the “request” packet in question and if the packet is destined to go elsewhere, facilitate the transmitting of the packet to the destination, over the network.
In addition, Gans’ teachings are further supplemented by Natu’s more explicit teachings of write requests that are captured by the system, directed to steps 2 and 3 below, (e.g., Natu: ¶ 142).
See the previously stated reasons for the incorporation of Natu’s teachings being combined within Gans’ overall system and teachings)
receive the request packet;
write the request packet to the memory pool;
notify the service mesh agent that the request packet has been written to the memory pool; and
send the response packet to the destination computing device over the network.
As to claim 9, Gans further discloses the apparatus of Claim 8, wherein the network processing device further comprises a programmable processor and the data processing unit is executed by the programmable processor (Following claims 1, 5, 7, and 8 above, while Gans does not explicitly describe of any programmable processing, Natu more expressly discloses of programmable processing or programmable systems, (e.g., Natu: ¶¶ 50, 136, and 180).
See the previously stated reasons for the incorporation of Natu’s teachings being combined within Gans’ overall system and teachings).
As to claim 10, Gans further discloses the apparatus of Claim 9, wherein the network processing device further comprises a network interface card (NIC) (Following claims 1, 5, and 7-9 above, it would have been obvious to one of ordinary skill in the art, before the effective filing date of the present application, that many of Gans’ embodiments can be interpreted as a “system” while interfacing or communicating with other components/devices/systems, situated over a network, and thus the system would act similarly to a NIC (e.g., Gans: Figs. ).
In addition, Gans’ teachings are further supplemented by Natu’s more explicit teachings of a NIC, (e.g., Natu: ¶ 27).
See the previously stated reasons for the incorporation of Natu’s teachings being combined within Gans’ overall system and teachings).
As to claim 11, Gans further discloses the apparatus of Claim 8, wherein the data processing unit is further to manage communications between the data center cluster and other data center clusters on the network (Following claims 1, 5, 7, and 8, this is similar to claims 5 and 6, wherein it would have been obvious to one of ordinary skill in the art, before the effective filing date of the present application, that Gans’ system can communicate with other memory modules, interpreted as separate “systems” or hosts that are situated in a distributed manner, over the network, such as within one or more clusters or data centers, e.g., Gans: ¶¶ 76-77 and 80-81).
As to claim 12, Gans further discloses the apparatus of Claim 1, wherein the request packet is generated by another application hosted by another one of the plurality of host devices in the data center cluster, the other host device writes the request packet to the address in the memory pool, and the response packet is read from the memory pool by the other host device to transport the response packet to the other host device (Following claim 1, while Gans does not expressly emphasize or focus on other applications or host systems in other clusters or data centers, it would still have been obvious to one of ordinary skill in the art, before the effective filing date of the present application, that the examining of the packet will illustrate the source and also a destination, which one of ordinary skill in the art can then associate back with an application or program, as well as knowing where the address exists within the array or memory pool, e.g., Gans: ¶¶ 80-81).
As to claim 13, see the similar conceptual rejection of claim 1, covering the similar conceptual features directed to instructions for a system capable of identifying and tracking packets, whether the packets are requests or in response to a request packet, and storing them in the appropriate memory address space within the memory array/pool, and also facilitating the packet to its destination, which one of ordinary skill in the art can understand as another “sub-system” within the overall system of distributed components, such as for example to be interpreted as another data center cluster over the network (e.g., Gans: ¶¶ 80-81 and in view of Natu’s incorporated teachings in Natu: ¶¶ 79-80.
The minor difference related to the “interface” in claim 1 versus the interface in claim 13 here which is now an interface compliant with Compute Express Link (CXL) based protocol. Since it’s already been established in claim 1 (and previously) that Gans’ also disclosed of an interface that is compliant with CXL protocol (e.g., Gans: ¶¶ 42-44 and 65) as well as receiving instructions or “control message(s)” via the interface to carry out the steps as already covered and established in claim 1, the Examiner therefore concluded this is within similar scope of what was established in claim 1 already.
As to claim 14, Gans further discloses the storage medium of Claim 13, wherein writes to the memory pool by the particular host device, writes to the attached memory by the network processing device, and reads of the attached memory by the network processing device are according to a CXL-based protocol (Similar to claim 1, Gans discloses of being able to work with CXL protocol, e.g., Gans: ¶¶ 43-44, 79, and 84).
As to claim 15, see the similar conceptual rejections of claims 1 and 13.
As to claim 16, Gans further discloses the system of Claim 15, wherein the switch comprises a switch compatible with the CXL-based protocol, and the memory pool is based on the CXL-based protocol (e.g., Gans: ¶¶ 43-44, 79, and 84).
As to claim 17, see the similar conceptual rejection of claim 2.
As to claim 18, Gans further discloses the system of Claim 15, wherein the host devices in the plurality of host devices access the memory pool using a CXL.mem subprotocol, and the network processing device accesses attached memory of the plurality of host devices using a CXL.cache subprotocol (While Gans discloses of utilizing CXL protocol (e.g., Gans: ¶¶ 43-44, 79, and 84), Gans however does not expressly further disclose about the CXL.mem or CXL.cache specific protocol.
Natu more expressly discloses of this (e.g., Natu: ¶¶ 51-52 and 56-58).
See the previously stated reasons for the incorporation of Natu’s teachings being combined within Gans’ overall system and teachings).
As to claim 19, see the similar conceptual rejection of claim 6.
As to claim 20, Gans further discloses the system of Claim 15, wherein the data center cluster comprises a service mesh cluster (While Gans does not expressly use those terms of a “service mesh cluster”, Gans does however describe in other words within multiple embodiments of grouping that can be formed, which can be obviously interpreted as the functional equivalent of a clustering of systems or components, e.g., Gans: ¶¶ 30, 51, 61, 62, 72, and 79).
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Xiang Yu whose telephone number is (571)270-5695. The examiner can normally be reached M-F 9:30-3:00 (PST/PDT).
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, Emmanuel Moise can be reached at (571)272-3865. 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.
/X.Y./Examiner, Art Unit 2455
/EMMANUEL L MOISE/Supervisory Patent Examiner, Art Unit 2455