H04L49/9047

SYSTEM AND METHOD FOR FACILITATING DATA-DRIVEN INTELLIGENT NETWORK WITH PER-FLOW CREDIT-BASED FLOW CONTROL

Data-driven intelligent networking systems and methods are provided. The system can accommodate dynamic traffic with fast, effective per-flow credit-based flow control. The system can maintain state information of individual packet flows, which can be set up or released dynamically based on injected data. Each flow can be provided with a flow-specific input queue upon arriving at a switch. Packets of a respective flow can be acknowledged after reaching the egress point of the network, and the acknowledgement packets can be sent back to the ingress point of the flow along the same data path. As a result, each switch can obtain state information of each flow and perform flow control on a per-flow basis.

SYSTEM AND METHOD FOR FACILITATING EFFICIENT PACKET FORWARDING IN A NETWORK INTERFACE CONTROLLER (NIC)

A network interface controller (NIC) capable of efficient packet forwarding is provided. The NIC can be equipped with a host interface, a packet generation logic block, and a forwarding logic block. During operation, the packet generation logic block can obtain, via the host interface, a message from the host device and for a remote device. The packet generation logic block may generate a plurality of packets for the remote device from the message. The forwarding logic block can then send a first subset of packets of the plurality of packets based on ordered delivery. If a first condition is met, the forwarding logic block can send a second subset of packets of the plurality of packets based on unordered delivery. Furthermore, if a second condition is met, the forwarding logic block can send a third subset of packets of the plurality of packets based on ordered delivery.

SYSTEM AND METHOD FOR FACILITATING EFFICIENT PACKET FORWARDING IN A NETWORK INTERFACE CONTROLLER (NIC)

A network interface controller (NIC) capable of efficient packet forwarding is provided. The NIC can be equipped with a host interface, a packet generation logic block, and a forwarding logic block. During operation, the packet generation logic block can obtain, via the host interface, a message from the host device and for a remote device. The packet generation logic block may generate a plurality of packets for the remote device from the message. The forwarding logic block can then send a first subset of packets of the plurality of packets based on ordered delivery. If a first condition is met, the forwarding logic block can send a second subset of packets of the plurality of packets based on unordered delivery. Furthermore, if a second condition is met, the forwarding logic block can send a third subset of packets of the plurality of packets based on ordered delivery.

PUBLISH-SUBSCRIBE CLASSIFICATION IN A CROSS-DOMAIN SOLUTION

A cross-domain device includes interfaces to couple to a first device, second device, and third device. The cross-domain device creates a first buffer in its shared memory to allow writes by the first device associated with a first software module and reads by the second device associated with a second software module, and creates a second buffer in the shared memory separate from the first buffer to allow writes by the first device associated with the first software module and reads by the third device associated with a third software module. The cross-domain device uses the first buffer to implement a first memory-based communication link between the first software module and the second software module, and uses the second buffer to implement a second memory-based communication link between the first software module and the third software module.

PUBLISH-SUBSCRIBE CLASSIFICATION IN A CROSS-DOMAIN SOLUTION

A cross-domain device includes interfaces to couple to a first device, second device, and third device. The cross-domain device creates a first buffer in its shared memory to allow writes by the first device associated with a first software module and reads by the second device associated with a second software module, and creates a second buffer in the shared memory separate from the first buffer to allow writes by the first device associated with the first software module and reads by the third device associated with a third software module. The cross-domain device uses the first buffer to implement a first memory-based communication link between the first software module and the second software module, and uses the second buffer to implement a second memory-based communication link between the first software module and the third software module.

Distributed link descriptor memory

Link data is stored in a distributed link descriptor memory (DLDM) including memory instances storing protocol data unit (PDU) link descriptors (PLDs) or cell link descriptors (CLDs). Responsive to receiving a request for buffering a current transfer data unit (TDU) in a current PDU, a current PLD is accessed in a first memory instance in the DLDM. It is determined whether any data field designated to store address information in connection with a TDU is currently unoccupied within the current PLD. If no data field designated to store address information in connection with a TDU is currently unoccupied within the current PLD, a current CLD is accessed in a second memory instance in the plurality of memory instances of the same DLDM. Current address information in connection with the current TDU is stored in an address data field within the current CLD.

Distributed link descriptor memory

Link data is stored in a distributed link descriptor memory (DLDM) including memory instances storing protocol data unit (PDU) link descriptors (PLDs) or cell link descriptors (CLDs). Responsive to receiving a request for buffering a current transfer data unit (TDU) in a current PDU, a current PLD is accessed in a first memory instance in the DLDM. It is determined whether any data field designated to store address information in connection with a TDU is currently unoccupied within the current PLD. If no data field designated to store address information in connection with a TDU is currently unoccupied within the current PLD, a current CLD is accessed in a second memory instance in the plurality of memory instances of the same DLDM. Current address information in connection with the current TDU is stored in an address data field within the current CLD.

System and method for facilitating operation management in a network interface controller (NIC) for accelerators

A network interface controller (NIC) capable of efficient operation management for host accelerators is provided. The NIC can be equipped with a host interface and triggering logic block. During operation, the host interface can couple the NIC to a host device. The triggering logic block can obtain, via the host interface from the host device, an operation associated with an accelerator of the host device. The triggering logic block can determine whether a triggering condition has been satisfied for the operation based on an indicator received from the accelerator. If the triggering condition has been satisfied, the triggering logic block can obtain a piece of data generated from the accelerator from a memory location and execute the operation using the piece of data.

System and method for facilitating operation management in a network interface controller (NIC) for accelerators

A network interface controller (NIC) capable of efficient operation management for host accelerators is provided. The NIC can be equipped with a host interface and triggering logic block. During operation, the host interface can couple the NIC to a host device. The triggering logic block can obtain, via the host interface from the host device, an operation associated with an accelerator of the host device. The triggering logic block can determine whether a triggering condition has been satisfied for the operation based on an indicator received from the accelerator. If the triggering condition has been satisfied, the triggering logic block can obtain a piece of data generated from the accelerator from a memory location and execute the operation using the piece of data.

Wide Elastic Buffer
20250150413 · 2025-05-08 ·

A receiving device uses an elastic buffer that is wider than the number of data elements transferred in each cycle. To compensate for frequency differences between the transmitter and the receiver, the transmitting device periodically sends a skip request with a default number of skip data elements. If the elastic buffer is filling, the receiving device ignores one or more of the skip data elements. If the elastic buffer is emptying, the receiving device adds one or more skip data elements to the skip request. To maintain the ordering of data despite the manipulation of the skip data elements, two rows of the wide elastic buffer are read at a time. This allows construction of a one-row result from any combination of the data elements of the two rows. The column pointers are adjusted appropriately, to ensure that they continue to point to the next data to be read.