Host bus access by add-on devices via a network interface controller
First Claim
1. Peripheral apparatus for use with a host computer that includes a host bus and host resources, including a host processor, connected to the host bus, the apparatus comprising:
- a packet communication link having first and second ends;
an add-on device, which comprises;
a first network port coupled to the first end of the packet communication link; and
add-on logic, which is configured to receive and transmit packets containing data over the packet communication link and to perform computational operations on the data; and
a network interface controller (NIC), which comprises;
a host bus interface, configured for connection to the host bus;
a second network port, coupled to the second end of the packet communication link; and
packet processing logic, which is coupled between the host bus interface and the second network port, and is configured to translate between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources,wherein the host resources comprise a system memory, and wherein the NIC comprises a direct memory access (DMA) engine, which is configured to write and read data to and from the system memory via the host bus, including the data in the packets transmitted from the add-on device over the packet communication link.
3 Assignments
0 Petitions
Accused Products
Abstract
Peripheral apparatus for use with a host computer includes an add-on device, which includes a first network port coupled to one end of a packet communication link and add-on logic, which is configured to receive and transmit packets containing data over the packet communication link and to perform computational operations on the data. A network interface controller (NIC) includes a host bus interface, configured for connection to the host bus of the host computer and a second network port, coupled to the other end of the packet communication link. Packet processing logic in the NIC is coupled between the host bus interface and the second network port, and is configured to translate between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the resources of the host computer.
27 Citations
24 Claims
-
1. Peripheral apparatus for use with a host computer that includes a host bus and host resources, including a host processor, connected to the host bus, the apparatus comprising:
-
a packet communication link having first and second ends; an add-on device, which comprises; a first network port coupled to the first end of the packet communication link; and add-on logic, which is configured to receive and transmit packets containing data over the packet communication link and to perform computational operations on the data; and a network interface controller (NIC), which comprises; a host bus interface, configured for connection to the host bus; a second network port, coupled to the second end of the packet communication link; and packet processing logic, which is coupled between the host bus interface and the second network port, and is configured to translate between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources, wherein the host resources comprise a system memory, and wherein the NIC comprises a direct memory access (DMA) engine, which is configured to write and read data to and from the system memory via the host bus, including the data in the packets transmitted from the add-on device over the packet communication link. - View Dependent Claims (5, 6, 7)
-
-
2. Peripheral apparatus for use with a host computer that includes a host bus and host resources, including a host processor, connected to the host bus, the apparatus comprising:
-
a packet communication link having first and second ends; an add-on device, which comprises; a first network port coupled to the first end of the packet communication link; and add-on logic, which is configured to receive and transmit packets containing data over the packet communication link and to perform computational operations on the data; and a network interface controller (NIC), which comprises; a host bus interface, configured for connection to the host bus; a second network port, coupled to the second end of the packet communication link; packet processing logic, which is coupled between the host bus interface and the second network port, and is configured to translate between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources; and a third network port, which is configured to convey communications between the host computer and a packet data network while the second network port communicates with the add-on device over the packet communication link.
-
-
3. Peripheral apparatus for use with a host computer that includes a host bus and host resources, including a host processor, connected to the host bus, the apparatus comprising:
-
a packet communication link having first and second ends; an add-on device, which comprises; a first network port coupled to the first end of the packet communication link; and add-on logic, which is configured to receive and transmit packets containing data over the packet communication link and to perform computational operations on the data; and a network interface controller (NIC), which comprises; a host bus interface, configured for connection to the host bus; a second network port, coupled to the second end of the packet communication link; and packet processing logic, which is coupled between the host bus interface and the second network port, and is configured to translate between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources, wherein the add-on device comprises a switch, which is coupled between the first network port and the add-on logic, and is configured to convey communications, transmitted and received via the second network port, between the host computer and a packet data network, while transferring the packets to and from the add-on logic.
-
-
4. Peripheral apparatus for use with a host computer that includes a host bus and host resources, including a host processor, connected to the host bus, the apparatus comprising:
-
a packet communication link having first and second ends; an add-on device, which comprises; a first network port coupled to the first end of the packet communication link; and add-on logic, which is configured to receive and transmit packets containing data over the packet communication link and to perform computational operations on the data; a network interface controller (NIC), which comprises; a host bus interface, configured for connection to the host bus; a second network port, coupled to the second end of the packet communication link; and packet processing logic, which is coupled between the host bus interface and the second network port, and is configured to translate between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources; and a switch, which comprises; a third port, which is connected to the first end of the packet communication link; a fourth port, which is connected to communicate with the first port of the add-on device; and a fifth port, which is connected to communicate with another entity over a further packet communication link.
-
-
8. Peripheral apparatus for use with a host computer that includes a host bus and host resources, including a host processor, connected to the host bus, the apparatus comprising:
-
a packet communication link having first and second ends; an add-on device, which comprises; a first network port coupled to the first end of the packet communication link; and add-on logic, which is configured to receive and transmit packets containing data over the packet communication link and to perform computational operations on the data; and a network interface controller (NIC), which comprises; a host bus interface, configured for connection to the host bus; a second network port, coupled to the second end of the packet communication link; and packet processing logic, which is coupled between the host bus interface and the second network port, and is configured to translate between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources, wherein the host resources comprise a system memory, and wherein the packet processing logic is configured to read and execute work items posted in work queues in the system memory by software processes running on the host computer, including at least one queue containing add-on work items specifying operations to be performed by the add-on device, wherein execution of the add-on work items causes the packet processing logic to transmit, over the packet communication link, at least one packet that causes the add-on logic to perform the specified operations. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computing method, comprising:
-
connecting a first network port of an add-on device to a second network port of a network interface controller (NIC) via a packet communication link; connecting a host bus interface of the NIC to a host bus of a host computer comprising host resources, including a host processor, connected to the host bus; in the add-on device, receiving and transmitting packets containing data from and to the NIC over the packet communication link and performing computational operations on the data; and translating, in the NIC, between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources, wherein the host resources comprise a system memory, and wherein translating between the packets and the transactions comprises writing and reading the data in the packets transmitted from and to the add-on device over the packet communication link to and from the system memory via the host bus using a direct memory access (DMA) engine in the NIC. - View Dependent Claims (15, 16, 17, 19)
-
-
14. A computing method, comprising:
-
connecting a first network port of an add-on device to a second network port of a network interface controller (NIC) via a packet communication link; connecting a host bus interface of the NIC to a host bus of a host computer comprising host resources, including a host processor, connected to the host bus; in the add-on device, receiving and transmitting packets containing data from and to the NIC over the packet communication link and performing computational operations on the data; translating, in the NIC, between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources; and conveying communications between the host computer and a packet data network via a third network port of the NIC while the second network port communicates with the add-on device over the packet communication link.
-
-
18. A computing method, comprising:
-
connecting a first network port of an add-on device to a second network port of a network interface controller (NIC) via a packet communication link; connecting a host bus interface of the NIC to a host bus of a host computer comprising host resources, including a host processor, connected to the host bus; in the add-on device, receiving and transmitting packets containing data from and to the NIC over the packet communication link and performing computational operations on the data; and translating, in the NIC, between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources, wherein a range of addresses on the host bus is assigned to the host bus interface, and wherein the method comprises assigning a sub-range within the assigned range to the add-on device, and wherein translating between the packets and the transactions comprises translating the transactions on the host bus that are directed to the addresses in the sub-range into corresponding packets for transmission over the packet communication link to the add-on device.
-
-
20. A computing method, comprising:
-
connecting a first network port of an add-on device to a second network port of a network interface controller (NIC) via a packet communication link; connecting a host bus interface of the NIC to a host bus of a host computer comprising host resources, including a host processor, connected to the host bus; in the add-on device, receiving and transmitting packets containing data from and to the NIC over the packet communication link and performing computational operations on the data; and translating, in the NIC, between the packets transmitted and received over the packet communication link and transactions executed on the host bus so as to provide access between the add-on device and the host resources, wherein the host resources comprise a system memory, and wherein the method includes reading and executing in the NIC work items posted in work queues in the system memory by software processes running on the host computer, including at least one queue containing add-on work items specifying operations to be performed by the add-on device, wherein execution of the add-on work items causes NIC to transmit, over the packet communication link, at least one packet that causes the add-on device to perform the specified operations. - View Dependent Claims (21, 22, 23, 24)
-
Specification