Mapped FIFO buffering
First Claim
1. A network interface device for connection between a network and a data processing system, the network interface device comprising:
- a common memory configured to buffer data packets;
a plurality of ports operable to receive data packets for writing to the common memory;
a memory manager configured to store information defining a plurality of virtual queues held in the common memory, wherein the memory manager is configured to associate one or more of the virtual queues with each port such that data packets received at a port are written to the one or more virtual queues associated with that port, wherein a linked logical sequence of buffers in said common memory represents each virtual queue; and
an interface configured to;
receive from the memory manager an indication of one or more buffers for each linked logical sequence of buffers representing a virtual queue; and
service the ports and write data packets received at a respective port into the indicated one or more buffers of the linked logical sequence of buffers representing a virtual queue associated with that port.
5 Assignments
0 Petitions
Accused Products
Abstract
A network interface device for connection between a network and a data processing system, the network interface device comprising: a plurality of ports for receiving data packets directed to the data processing system. An interface services the ports in a predetermined order and writes the data packets to buffers of a common memory. Each buffer is part of one of a set of linked logical sequence of buffers forming virtual queues in the common memory. Each virtual queue is associated with a port. A memory manager selects buffers of the common memory so as to cause the interface to populate the plurality of virtual queues with data packets.
-
Citations
21 Claims
-
1. A network interface device for connection between a network and a data processing system, the network interface device comprising:
-
a common memory configured to buffer data packets; a plurality of ports operable to receive data packets for writing to the common memory; a memory manager configured to store information defining a plurality of virtual queues held in the common memory, wherein the memory manager is configured to associate one or more of the virtual queues with each port such that data packets received at a port are written to the one or more virtual queues associated with that port, wherein a linked logical sequence of buffers in said common memory represents each virtual queue; and an interface configured to; receive from the memory manager an indication of one or more buffers for each linked logical sequence of buffers representing a virtual queue; and service the ports and write data packets received at a respective port into the indicated one or more buffers of the linked logical sequence of buffers representing a virtual queue associated with that port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method for buffering data packets at a network interface device connecting a data processing system to a network, the network interface device comprising a common memory configured to buffer data packets, a plurality of ports operable to receive data packets for writing to the common memory, and a memory manager, the method comprising:
storing in the memory manager, information defining a plurality of virtual queues held in the common memory, wherein the memory manager is configured to associate one or more of the virtual queues with each port such that data packets received at a port are written to the one or more virtual queues associated with that port, wherein a linked logical sequence of buffers in said common memory represents each virtual queue; receiving from the memory manager an indication of one or more buffers for each linked logical sequence of buffers representing a virtual queue; and servicing the ports and writing data packets received at a respective port into the indicated one or more buffers of the linked logical sequence of buffers representing a virtual queue associated with that port.
-
21. A non-transitory computer readable storage medium configured to store instructions which, when executed on one or more processors of a network interface device connecting a data processing system to a network, cause a method to be performed, the network interface device comprising a common memory configured to buffer data packets, a plurality of ports operable to receive data packets for writing to the common memory, and a memory manager, the method comprising:
storing in the memory manager information defining a plurality of virtual queues held in the common memory, wherein the memory manager is configured to associate one or more of the virtual queues with each port such that data packets received at a port are written to the one or more virtual queues associated with that port, wherein a linked logical sequence of buffers in said common memory represents each virtual queue; receiving from the memory manager an indication of one or more buffers for each linked logical sequence of buffers representing a virtual queue; and servicing the ports and writing data packets received at a respective port into the indicated one or more buffers of the linked logical sequence of buffers representing a virtual queue associated with that port.
Specification