Network interface with host independent buffer management
DC CAFCFirst Claim
1. An apparatus for controlling communication between a host system and a network transceiver coupled with a network, wherein the host system includes a host address space, comprising:
- a buffer memory outside of the host address space;
host interface means, sharing the host address space with the host, for managing data transfers between the host address space and the buffer memory in operations transparent to the host system; and
network interface means, coupled with the network transceiver, for managing data transfers between the buffer memory and the network transceiver.
8 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A network interface controller controls communication between a host system and a network transceiver coupled to a network comprises a memory outside of the host address space in which receive and transmit buffers are managed, host interface logic emulating memory mapped registers in the host address space, for transferring data between the host address space and the buffer memory, and network interface logic coupled with the network transceiver, for transferring data between the buffers in the buffer memory and the network transceiver. The buffer memory includes a transmit descriptor ring buffer, transmit data buffer, transfer descriptor buffer, and receive ring buffer all managed by operations transparent to the host.
121 Citations
29 Claims
-
1. An apparatus for controlling communication between a host system and a network transceiver coupled with a network, wherein the host system includes a host address space, comprising:
-
a buffer memory outside of the host address space; host interface means, sharing the host address space with the host, for managing data transfers between the host address space and the buffer memory in operations transparent to the host system; and network interface means, coupled with the network transceiver, for managing data transfers between the buffer memory and the network transceiver. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus for controlling communication between a host system and a network transceiver coupled with a network, wherein the host system includes a host address space, comprising:
-
a buffer memory outside of the host address space, including a transmit buffer and a receive buffer; host interface means, sharing host address space including a prespecified block of host addresses of limited size defining a first area and a second area, and coupled with the buffer memory, for mapping data addressed to the first area into the transmit buffer, mapping data in the receive buffer into the second area, and uploading data from the receive buffer to the host; and network interface means, coupled with the network transceiver and the buffer memory, for transferring data from the transmit buffer to the network transceiver and mapping data into the receive buffer from the network transceiver. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. An apparatus for controlling communication between a host system and a network transceiver coupled with a network, wherein the host system includes a host address space, comprising:
-
buffer memory outside of the host address space, including a transmit ring buffer and a receive ring buffer; host interface means, sharing the host address space with the host, and coupled with the buffer memory, for mapping data from the host system to the transmit ring buffer and to the host system from the receive ring buffer; network interface means, coupled with the network transceiver and the buffer memory, for mapping data from the transmit ring buffer to the network transceiver and to the receive ring buffer from the network transceiver; transmit ring pointer means, coupled with the host interface means and the network interface means, for managing accesses to the transmit ring buffer; and receive ring pointer means, coupled with the host interface means and the network interface means, for managing accesses to the receive ring buffer. - View Dependent Claims (25, 26, 27)
-
-
28. An apparatus for controlling communication between a host system and a network transceiver coupled with a network, wherein the host system includes a host address space, comprising:
-
buffer memory outside of the host address space, including a transmit descriptor ring buffer, a transmit data buffer, a transfer descriptor buffer and a receive ring buffer; host interface means, sharing the host address space with the host, and coupled with the buffer memory, for mapping data from the host system to the buffer memory and to the host system from the buffer memory, wherein the host interface means includes transmit descriptor logic for mapping transmit descriptors from the host system to the transmit descriptor ring buffer, the transmit descriptors including immediate data and data identifying data to be transmitted, download logic, responsive to transmit descriptors in the transmit descriptor ring buffer, for retrieving data from memory in the host address space and storing retrieved data in the transmit data buffer, view logic for presenting data in the receive ring buffer to the host system prior to transfer to memory in the host address space, in response to host system access to a prespecified portion of the host memory space, transfer descriptor logic for mapping transfer descriptors from the host system to the transfer descriptor buffer, the transfer descriptors identifying locations in memory in the host address space to which data in the receive ring buffer is to be stored, and upload logic, responsive to transfer descriptors in the transfer descriptor buffer, for transferring data from the receive ring buffer to the host system; network interface means, coupled with the network transceiver and the buffer memory, for mapping data from the transmit ring buffer to the network transceiver and to the receive ring buffer from the network transceiver, wherein the network interface means includes receive logic for mapping received data from the network transceiver to the receive ring buffer, and transmit logic responsive to transmit descriptors in the transmit descriptor ring for retrieving data in the transmit descriptor ring buffer and the transmit data buffer and supplying retrieved data to the network transceiver for transmission on the network; transmit ring pointer means, coupled with the host interface means and the network interface means, for managing accesses to the transmit ring buffer and the transmit data buffer, including means for generating a plurality of pointers, the plurality of pointers including a host descriptor pointer indicating a location in the transmit descriptor ring at which the transmit descriptor logic stores a transmit descriptor being written from the host system, a download descriptor pointer indicating a location in the transmit descriptor ring of a transmit descriptor identifying a frame being downloaded by the download logic to the transmit data buffer, and a transmit descriptor pointer indicating a location in the transmit descriptor ring of a transmit descriptor identifying a frame being transmitted by the transmit logic on the network; and receive ring pointer means, coupled with the host interface means and the network interface means, for managing accesses to the receive ring buffer including means for generating a plurality of pointers, the plurality of pointers including a receive frame pointer indicating a location in the receive ring buffer to which data being received through the receive logic from the network is being written, an upload frame pointer indicating a location in the receive ring buffer from which data is being uploaded by the upload logic to the host system in response to a transfer descriptor in the transfer descriptor buffer, and a host view pointer indicating a location in the receive ring buffer at which data may be read through the view logic by the host system before uploading. - View Dependent Claims (29)
-
Specification