Toe-based network interface device, method of operating the same, and server device including the same
A TOE-based network interface device, a method of operating the same, and a server device including the same are provided. The network interface device includes an event scheduler configured to generate connection information on a requested event and to perform scheduling on the connection information to output a first control signal, a first TCP controller and a second TCP controller, each configured to receive the connection information from the event scheduler and to control an arithmetic operation on the connection information, and a memory control logic configured to transmit the connection information to a first memory or to store the connection information in a second memory in response to the first control signal.
1 . A network interface device comprising:
an event scheduler configured to generate connection information on a requested event, to perform scheduling on the connection information to output a first control signal, and to determine whether a first event corresponding to the connection information occurs during a first time period;
a first TCP controller and a second TCP controller, each of the first and second TCP controllers including a first memory and configured to receive the connection information from the event scheduler, to store the connection information in the first memory, and to control an arithmetic operation on the connection information;
a second memory shared by the first TCP controller and the second TCP controller; and
a memory control logic configured to move the connection information from the first memory to the second memory when the first event corresponding to the connection information does not occur during the first time period, and move the connection information, moved to the second memory, from the second memory to one of the first memory of the first TCP controller or the first memory of the second TCP controller when a second event corresponding to the connection information occurs, in response to the first control signal.
2 . The network interface device of claim 1 , wherein the event scheduler transmits the connection information to at least one of the first TCP controller, the second TCP controller, and the memory control logic.
3 . The network interface device of claim 1 , wherein the second memory comprises a dynamic random access memory (DRAM) disposed outside a first chip in which the first TCP controller and the second TCP controller are provided.
4 . The network interface device of claim 3 , wherein the memory control logic is provided in a second chip together with the second memory.
5 . The network interface device of claim 1 , wherein the memory control logic is provided in the same first chip as the first TCP controller and the second TCP controller.
6 . The network interface device of claim 1 , wherein the memory control logic generates a second control signal, indicating whether the connection information is moved to the first memory, when the second event for the connection information stored in the second memory occurs.
7 . The network interface device of claim 1 , further comprising:
a first TCP arithmetic logic and a second TCP arithmetic logic, each configured to perform an arithmetic operation by receiving the connection information, stored in the first memory included in a corresponding one of the first and second TCP controllers, and event information, corresponding to the connection information, from the corresponding TCP controller.
8 . The network interface device of claim 7 , further comprising:
a third to n-th TCP controllers, each configured to control an arithmetic operation on the connection information and the event information in response to the first control signal; and
a first to m-th TCP arithmetic logics, each configured to perform an arithmetic operation by receiving the connection information, stored in the first memory of a corresponding one of the third to n-th TCP controllers, and the event information from the corresponding TCP controller.
9 . The network interface device of claim 8 , wherein the n and the m are different from each other.
10 . The network interface device of claim 1 , wherein the event scheduler comprises a mapping table for a storage position of the connection information.
11 . The network interface device of claim 1 , further comprising:
a reception processing module configured to parse a data packet, received from a network interface, to output user data of the data packet through a host interface and to transmit metadata of the data packet to the event scheduler as an event; and
a transmission processing module configured to generate a header corresponding to the connection information in data received through the host interface and to output the header as a data packet.
12 . A method of operating a TCP/IP offload engine (TOE)-based network interface device including a plurality of TCP controllers, wherein each of the plurality of TCP controllers includes a first memory, the method comprising:
storing connection information corresponding to a first event in the first memory of a TCP controller among the plurality of TCP controllers;
checking whether the first event corresponding to the connection information stored in the first memory occurs during a first time period;
moving the connection information from the first memory of one of the plurality of TCP controllers to a second memory shared by the plurality of TCP controllers when the first event corresponding to the connection information does not occur for the first time period,
selecting one of the plurality of TCP controllers when a second event corresponding to the connection information that is moved to the second memory occurs; and
moving the connection information from the second memory to the first memory of the selected one of the plurality of TCP controllers.
13 . The method of claim 12 , wherein the storing the connection information in the first memory comprises:
selecting one of the plurality of TCP controllers; and
storing the connection information in the first memory of the selected TCP controller.
14 . A server device comprising:
a network interface module comprising a TCP/IP hardware stack and a TCP/IP software stack configured to perform a TCP/IP arithmetic operation on a received data packet; and
a host module configured to receive data of the data packet from the network interface module and to process the received data,
wherein the network interface module comprises:
an event scheduler configured to generate connection information corresponding to the data packet on a requested event, to perform scheduling on the connection information to output a first control signal, and to determine whether a first event corresponding to the connection information occurs during a first time period;
a first TCP controller and a second TCP controller, each of the first and second TCP controllers including a first memory and configured to receive the connection information from the event scheduler, to store the connection information in the first memory, and to control an arithmetic operation on the connection information;
a second memory shared by the first TCP controller and the second TCP controller; and
a memory control logic configured to move the connection information from the first memory to the second memory when the first event corresponding to the connection information does not occur for the first time period, and move the connection information, moved to the second memory, from the second memory to one of the first memory of the first TCP controller or the first memory of the second TCP controller when a second event corresponding to the connection information occurs, in response to the first control signal.
15 . The server device of claim 14 , wherein the memory control logic is provided in the same chip as the second memory.