WO2024085281A1 - Network interface device, operating method thereof, and server device including same - Google Patents

Network interface device, operating method thereof, and server device including same Download PDF

Info

Publication number
WO2024085281A1
WO2024085281A1 PCT/KR2022/016096 KR2022016096W WO2024085281A1 WO 2024085281 A1 WO2024085281 A1 WO 2024085281A1 KR 2022016096 W KR2022016096 W KR 2022016096W WO 2024085281 A1 WO2024085281 A1 WO 2024085281A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
tcp
connection information
network interface
controller
Prior art date
Application number
PCT/KR2022/016096
Other languages
French (fr)
Korean (ko)
Inventor
부준혁
Original Assignee
주식회사 망고부스트
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 망고부스트, 서울대학교산학협력단 filed Critical 주식회사 망고부스트
Priority to PCT/KR2022/016096 priority Critical patent/WO2024085281A1/en
Publication of WO2024085281A1 publication Critical patent/WO2024085281A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • the present invention relates to network interfaces, and particularly to a TOE (TCP/IP Offload Engine)-based network interface device, its operating method, and a server device including the same.
  • TOE TCP/IP Offload Engine
  • OTT Over-The-Top
  • the data required for various devices connected through the network such as user terminals, web servers, web application servers (WAS), storage servers, and database servers, etc.
  • WAS web application servers
  • the amount of processing is rapidly increasing and the processing speed is also accelerating.
  • TCP/IP protocol Transmission Control Protocol/Internet Protocol
  • Gbps gigabits per second
  • enormous system resources may be required.
  • a web server performs data communication with a user terminal through a network
  • a significant load may be incurred when the web server's central processing unit, that is, the host CPU (Central Processing Unit), performs TCP/IP operations. .
  • performance degradation of the entire web server may occur. Additionally, processing of network communications performed through a web server may be delayed.
  • the present invention is intended to solve the above-described problems, and seeks to provide a TOE-based network interface device that can reduce the load on the host CPU and accelerate data processing in a high-speed network, a method of operating the same, and a server device including the same.
  • a network interface device for solving the above technical problem includes an event scheduler that generates connection information for a requested event, performs scheduling on the connection information, and outputs a first control signal; a first TCP controller and a second TCP controller, respectively, receiving the connection information from the event scheduler and controlling calculation operations on the connection information; and memory control logic that transmits the connection information to a first memory or stores it in a second memory in response to the first control signal.
  • the event scheduler may transmit the connection information to at least one of the first TCP controller, the second TCP controller, and the memory control logic.
  • the first memory may be included in the first TCP controller and the second TCP controller.
  • the second memory may include a dynamic random access memory (DRAM) located outside the first chip equipped with the first TCP controller and the second TCP controller.
  • DRAM dynamic random access memory
  • the memory control logic may be provided on a second chip together with the second memory.
  • the memory control logic may be provided in the same first chip as the first TCP controller and the second TCP controller.
  • connection information stored in the first memory may be moved to the second memory if a corresponding event does not occur for a first time.
  • the memory control logic may generate a second control signal indicating whether the connection information is moved to the first memory when an event regarding the connection information stored in the second memory occurs.
  • connection information stored in the second memory may be moved to one of the first memories of the first TCP controller and the first memory of the second TCP controller.
  • a first TCP operation that performs an operation by receiving the connection information and event information corresponding to the connection information stored in a first memory from a corresponding TCP controller among the first TCP controller and the second TCP controller, respectively.
  • logic and second TCP operation logic may be further included.
  • third to nth TCP controllers respectively, controlling calculation operations on the connection information and the event information in response to the first control signal; and first TCP operation logic to perform an operation by receiving the connection information and the event information stored in the first memory included from the corresponding TCP controller among the third TCP controller to the nth TCP controller, respectively. Operation logic may be further included.
  • the n and the m may be different.
  • the event scheduler may include a mapping table for a storage location of the connection information.
  • reception processing module that parses a data packet received through a network interface, outputs user data of the data packet through a host interface, and transmits metadata of the data packet as an event to the event scheduler; and a transmission processing module that generates a header corresponding to the connection information in data received through the host interface and outputs it as a data packet.
  • the method of operating a network interface device to solve the above technical problem is a method of operating a TOE (TCP/IP Offload Engine)-based network interface device, and is a method of operating a network interface device that transmits connection information corresponding to an event to the TCP controller. 1 storing in memory; Checking occurrence of an event corresponding to connection information stored in the first memory; and, when an event corresponding to the connection information does not occur for a first time, moving the connection information stored in the first memory to a second memory.
  • TOE TCP/IP Offload Engine
  • Storing the connection information in the first memory may include selecting one of the plurality of TCP controllers; and storing the connection information in the first memory of the selected TCP controller.
  • connection information moved to the second memory When an event corresponding to the connection information moved to the second memory occurs, determining whether to transmit the connection information moved to the second memory to the first memory; selecting one of the plurality of TCP controllers; and transmitting the connection information moved to the second memory to the first memory of the selected TCP controller.
  • a server device for solving the above technical problem is a network including a TCP/IP hardware stack and a TCP/IP software stack that performs TCP/IP operations on received data packets.
  • interface module ; and a host module that receives and processes the data of the data packet from the network interface module, wherein the network interface module stores connection information corresponding to the data packet in the first memory of the TCP controller or controls the memory. Stored in a second memory controlled by logic.
  • the network interface module may include multiple TCP controllers.
  • the memory control logic may be provided on the same chip as the second memory.
  • a network adapter performs TCP/IP processing to reduce the load on the host CPU and provide information on requested events.
  • TCP/IP processing By storing connection information in one of the first memory and the second memory and performing optimized scheduling, data processing in a high-speed network can be accelerated.
  • the load on the host CPU is reduced by performing TCP/IP processing on the network adapter, and the requested event is transmitted to the TCP controllers.
  • FIG. 1 is a diagram showing a network interface device according to an embodiment of the present invention.
  • Figure 2 is a diagram showing data packets processed by a network interface device according to an embodiment of the present invention.
  • 3 to 5 are diagrams showing memory control logic according to an embodiment of the present invention, respectively.
  • FIGS 6 and 7 are diagrams showing a network interface device based on a TOE (TCP/IP Offload Engine) according to an embodiment of the present invention, respectively.
  • TOE TCP/IP Offload Engine
  • FIGS. 8A to 8C are diagrams showing the relationship between a TCP controller and TCP operation logic, respectively, according to an embodiment of the present invention.
  • Figure 9 is a flowchart showing a method of operating a network interface device according to an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating a network interface device operating according to the operation method of FIG. 9.
  • FIGS 11A and 11B are diagrams showing in more detail the operating method of the network interface device of Figure 9, respectively.
  • Figures 12A and 12B are diagrams for explaining an operation of retransmitting connection information to the first memory according to an embodiment of the present invention, respectively.
  • Figure 13 is a diagram showing a network interface device according to an embodiment of the present invention.
  • Figure 14 is a diagram showing a server device according to an embodiment of the present invention.
  • first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The above terms may be used for the purpose of distinguishing one component from another component.
  • a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component without departing from the scope of the present invention.
  • FIG. 1 is a diagram illustrating a network interface device 100 according to an embodiment of the present invention
  • FIG. 2 is a diagram illustrating a data packet (DPK) processed by the network interface device 100 according to an embodiment of the present invention.
  • DPK data packet
  • the network interface device 100 includes an event scheduler 120, a TCP controller 140, and a memory control logic 160, to store data in a high-speed network. Processing can be accelerated efficiently.
  • the event scheduler 120 generates connection information (ICT) for the requested event (EVT), performs scheduling on the connection information (ICT), and outputs a first control signal (XCT1).
  • An event (EVT) may mean, for example, that a data packet (DPK) is received from a network or a transmission request for data is transmitted from an application. Alternatively, even if a timeout occurs in the operation of the TCP controller 140, etc., it may be processed as an event (EVT).
  • the TCP controller 140 may include a first TCP controller 142 and a second TCP controller 144.
  • the first TCP controller 142 and the second TCP controller 144 each receive connection information (ICT) from the event scheduler 120 and control calculation operations for controlling the connection information (ICT). .
  • Connection information may include information used to establish a connection between two end-points, a local node and a remote node, with which one wishes to communicate.
  • Connection information may include, for example, connection identifiers for IP addresses and port numbers of local nodes and remote nodes.
  • This connection information (ICT) can be used to create or process a header for each layer of the TCP/IP stack. For each layer of the TCP/IP stack, a TCP packet containing a TCP header, an IP packet containing an IP header, and a MAC packet containing a MAC header may be generated.
  • the header of a TCP packet may include metadata such as a source address, destination address, sequence number, and acknowledgment number.
  • the event scheduler 120 may also generate event information (IEV) corresponding to connection information (ICT).
  • Event information (IEV) may be information about the type of event (EVT) that occurs between the local node and the remote node indicated by the connection information (ICT).
  • the event information (IEV) is information about the reception of a data packet (DPK) from a remote node identified by the corresponding connection information (ICT), a data transmission request by the local node, or a timeout of an event (EVT), etc. may include.
  • Connection information (ICT) for a pair of local nodes and remote nodes may be transmitted to one of the first TCP controller 142 and the second TCP controller 144.
  • connection information (ICT) for a first pair of local nodes and remote nodes is communicated to the first TCP controller 142
  • connection information (ICT) for a second pair of local nodes and remote nodes is transmitted to the first TCP controller 142.
  • 2 may be transmitted to the TCP controller 144.
  • a plurality of connection information (ICT) may be stored in the first TCP controller 142 and the second TCP controller 144.
  • x pieces of connection information may be transmitted to the first TCP controller 142
  • y pieces of connection information may be transmitted to the second TCP controller 144.
  • the event information may be transmitted to the TCP controller through which the corresponding connection information (ICT) is transmitted, among the first TCP controller 142 and the second TCP controller 144.
  • the memory control logic 160 moves the connection information (ICT) to the first memory (MEM1) or stores it in the second memory (MEM2) in response to the first control signal (XCT1).
  • the memory control logic 160 may transmit the second control signal (XCT2) to the event scheduler 120 as a result of an operation performed in relation to the storage location or scheduling of the connection information (ICT).
  • the first memory (MEM1) may be SRAM (Static Random Access Memory).
  • the first memory (MEM1) may be included in the first TCP controller 142 and the second TCP controller 144.
  • the second memory (MEM2) may be DRAM (Dynamic Random Access Memory).
  • the types of the first memory (MEM1) and the second memory (MEM2) are not limited.
  • the event information (IEV) corresponding to the connection information (ICT) stored in the first memory (MEM1) is not updated for the first time, for example, it is identified by the connection information (ICT) stored in the first memory (MEM1). If communication between the local node and the remote node does not occur for a certain period of time, the connection information (ICT) stored in the first memory (MEM1) will be stored in the second memory (MEM2) in response to the first control signal (XCT1). You can.
  • the network interface device 100 allows the first TCP controller 142 and the second TCP controller 144 to independently perform operations on separate connection information (ICT), thereby achieving high speed. Event processing may be possible.
  • the network interface device 100 according to an embodiment of the present invention provides connection information (ICT) for a connection in which the waiting time for an event occurrence continues for a certain period of time or more to the first TCP controller 142 and the second TCP controller 144. ), and the first TCP controller 142 or the second TCP controller 144 performs control of the operation corresponding to the new connection information (ICT). By doing so, high-speed event processing may be possible.
  • ICT connection information
  • 3 to 5 are diagrams showing memory control logic 160 according to an embodiment of the present invention, respectively.
  • the second memory (MEM2) is located outside the first chip (CH1) equipped with the first TCP controller 142 and the second TCP controller 144. You can. There may be at least two second memories (MEM2). At this time, the memory control logic 160 may be provided as a separate chip from the first chip CH1 and the second memory MEM2.
  • the memory control logic 160 is an FPGA (Field Programmable Gate Array) chip different from the first chip (CH1), which is a core chip, on a board on which the first chip (CH1) and the second memory (MEM2) are mounted. It can be provided.
  • FPGA Field Programmable Gate Array
  • the event scheduler 120 is shown as being located outside the first chip (CH1), but this only means that the event scheduler 120 can be located in various ways, and the event scheduler 120 is located outside the first chip (CH1). ) does not mean that it is excluded from being included in.
  • the memory control logic 160 may be provided with a second memory (MEM2) and a second chip (CH2) separate from the first chip (CH1). there is.
  • the second chip CH2 may be provided as a Data Process Unit (DPU) chip.
  • the first chip (CH1) and the second chip (CH2) can transmit and receive information and signals through a coherent interconnect.
  • the first chip CH1 and the memory control logic 160 of FIG. 3 can also transmit and receive information and signals through a coherent interconnect.
  • the memory control logic 160 may be provided in the first chip (CH1) including the first TCP controller 142 and the second TCP controller 144. It may be possible. At this time, the memory control logic 160 may transmit and receive information and signals with the second memory MEM2 through a coherent interconnect.
  • connection information may be stored in one of the first memory (MEM1) and the second memory (MEM2) based on the status of the connection information (ICT).
  • the memory control logic 160 determines whether to transmit the connection information (ICT) stored in the second memory (MEM2) to the first memory (MEM1) in response to the first control signal (XCT1). You can make decisions about whether or not to A more detailed description of the operation of the memory control logic 160 is described later.
  • the network interface device 100 can improve data processing performance by optimizing the storage location of connection information (ICT) by the memory control logic 160. Furthermore, the network interface device 100 according to an embodiment of the present invention can perform optimized operation in a high-speed network environment by providing a memory control logic 160 to optimize the required resource limits and performance standards. there is.
  • ICT connection information
  • FIGS 6 and 7 are diagrams showing a TOE (TCP/IP Offload Engine)-based network interface device 100, respectively, according to an embodiment of the present invention.
  • TOE TCP/IP Offload Engine
  • the network interface device 100 may be a NIC (Network Interface Controller), a network adapter, a Smart NIC, etc. that independently processes the Internet standard protocol TCP/IP.
  • the network interface device 100 may be a TOE protocol-based network interface device.
  • the TOE protocol performs TCP/IP operations in the network interface device 100 rather than in the operating system of the host CPU.
  • the network interface device 100 can support a high-speed network environment by being equipped based on the TOE protocol.
  • the network interface device 100 includes a first TCP controller 142 and a second TCP controller 144, as well as a first TCP operation logic 182 and a second TCP operation logic 184. ) may further be included.
  • the first TCP operation logic 182 and the second TCP operation logic 184 are stored in the first memory (MEM1) from the corresponding TCP controller among the first TCP controller 142 and the second TCP controller 144, respectively.
  • TCP/IP operations can be performed by receiving connection information (ICT) and event information (IEV).
  • the first TCP operation logic 182 and the second TCP operation logic 184 perform congestion window control, flow control, retransmission, etc. for the received connection information (ICT) and event information (IEV). , it is possible to perform calculation operations required to process the header of each layer.
  • the first TCP operation logic 182 and the second TCP operation logic 184 may transmit the results of the operation to the first TCP controller 142 and the second TCP controller 144.
  • the network interface device 100 also includes a network interface 110, a reception processing module 130, a host interface 150, and a transmission processing module ( 170) may further be included.
  • the network interface 110 includes a Gigabit Ethernet controller and is responsible for the interface with the Gb Ethernet MAC/PHY chip to process transmission and reception of Ethernet packets.
  • the reception processing module 130 may parse a data packet (DPK) received through the network interface 110 into user data and metadata. User data in the data packet (DPK) may be transmitted to the host module through the host interface 150.
  • the host interface 150 may include, for example, a PCIe controller (Peripheral Component Interconnect express controller) and may perform an interface with a host module.
  • PCIe controller Peripheral Component Interconnect express controller
  • the reception processing module 130 may transmit metadata of the data packet (DPK) to the event scheduler 120.
  • the event scheduler 120 may process metadata received from the reception processing module 130 into an event (EVT).
  • EDT event
  • the event scheduler 120 may generate new connection information (ICT). If the metadata transmitted from the reception processing module 130 is related to connection information (ICT) stored in the first memory (MEM1) or the second memory (MEM2), the corresponding connection information (ICT) may be updated.
  • the transmission processing module 170 may output a data packet (DPK) in response to a data transmission request received through the host interface 150.
  • a data transmission request may be transmitted from an application running on the host module.
  • a data transmission request may be transmitted directly to the host interface 150 without going through the TCP/IP protocol stack of the host operating system. This can be performed through API hooking operations for the socket API (socket application programming interface), such as the application's send() and recv().
  • socket API socket application programming interface
  • the transmission processing module 170 may perform an operation of combining the TCP header, IP header, and MAC header corresponding to the data transmission request with data (DTA) to be transmitted to the remote node.
  • the TCP header, IP header, and MAC header may be generated by the first TCP controller 142 and the first TCP operation logic 182, or the second TCP controller 144 and the second TCP operation logic 184.
  • Data (DTA) to be transmitted to the remote node can be read from the main memory of the host module.
  • the data packet (DPK) is sent to the transmission processing module 170. It may be transmitted to the network interface 110 and output.
  • the network interface device 100 processes a data packet (DPK) to be processed by the reception processing module 130 or data processed by the transmission processing module 170.
  • User data that is to be temporarily stored as a packet (DPK), processed by the reception processing module 130, and output through the host interface 150, or user data received through the host interface 150 in response to a data transmission request.
  • a TCP buffer that temporarily stores may be further included. Alternatively, all or part of these TCP buffers may be provided in all or part of the second memory (MEM2).
  • the network interface device 100 operates as shown in FIG. 6 or FIG. 7 and can improve data processing speed by performing TCP/IP operations on its own.
  • the connection information (ICT) is stored in the second memory (MEM2)
  • the above operations can be performed after the connection information (ICT) is transferred from the second memory (MEM2) to the first memory (MEM1).
  • the first TCP controller 142 and the second TCP controller 144 can control connections between more local nodes and remote nodes and operate adaptively to the occurrence of an event (EVT). Therefore, according to the network interface device 100 according to an embodiment of the present invention, high-speed networking can be efficiently supported.
  • first TCP operation logic 182 and the second TCP operation logic 184 correspond one-to-one to the first TCP controller 142 and the second TCP controller 144. That is, the first TCP operation logic 182 processes the connection information (ICT) and event information (IEV) of the first TCP controller 142, and the second TCP operation logic 184 processes the connection information (ICT) and event information (IEV) of the first TCP controller 142. It can process connection information (ICT) and event information (IEV). However, it is not limited to this.
  • FIGS 8A to 8C are diagrams showing the relationship between the TCP controller 140 and the TCP operation logic 180, respectively, according to an embodiment of the present invention.
  • the network interface device 100 may include n TCP controllers 140 and m TCP operation logic 180.
  • Each of the n TCP controllers 140 may control calculation operations for connection information (ICT) and event information (IEV) in response to the first control signal (XCT1).
  • the m TCP operation logic 180 may perform TCP/IP operation operations based on connection information (ICT) and event information (IEV) received from a corresponding TCP controller among the n TCP controllers 140.
  • Connection information (ICT) and event information (IEV) may be transferred from the first memory (MEM1) to the TCP operation logic 180. If the connection information (ICT) is stored in the second memory (MEM2), it is moved from the second memory (MEM2) to the first memory (MEM1) in response to the first control signal (XCT1), and then the TCP operation logic 180 ) can be output.
  • n and m may be the same. That is, the TCP controller 140 and TCP operation logic 180 may be provided in the same number. Additionally, the TCP controller 140 and the TCP operation logic 180 may have a one-to-one correspondence with each other. For example, the first TCP operation logic 182 performs an operation under the control of the first TCP controller 142, and the mth TCP operation logic 180m performs an operation under the control of the nth TCP controller 140n. Computational operations may be performed. Accordingly, the network interface device 100 according to an embodiment of the present invention can simultaneously perform parallel processing for connections of n remote nodes and local loads without other resource limitations.
  • the network interface device 100 may include n TCP controllers 140 and m TCP operation logic 180. Similar to Figure 8A, n and m may be the same. That is, the TCP controller 140 and TCP operation logic 180 may be provided in the same number. However, n TCP controllers 140 in FIG. 8B may share m TCP operation logic 180.
  • an operation operation is performed in one of the first TCP operation logic 182 to the mth TCP operation logic 180m under the control of the first TCP controller 142, and the nth TCP controller ( An operation may be performed in one of the first TCP operation logic 182 to the mth TCP operation logic 180m according to the control of 140n).
  • An operation may be performed in one of the first TCP operation logic 182 to the mth TCP operation logic 180m according to the control of 140n).
  • Some of the n TCP controllers 140 may share some of the m TCP operation logic 180, and others among the n TCP controllers 140 may share the remainder of the m TCP operation logic 180.
  • the network interface device 100 is equipped as shown in FIG. 8B, so that not only can simultaneous parallel processing be performed on the connections of n remote nodes and local loads while optimal scheduling is performed, but also m Among the TCP calculation logics 180, a new event (EVT) can be processed through the calculation logic for which the calculation operation has been completed. Accordingly, the processing performance of the network interface device 100 according to an embodiment of the present invention can be improved.
  • EDT new event
  • the network interface device 100 may include n TCP controllers 140 and m TCP operation logic 180.
  • n and m may be different. That is, the TCP controller 140 and TCP operation logic 180 may be provided in different numbers.
  • at least one TCP controller among the n TCP controllers 140 is shared by at least two TCP operation logics among the m TCP operation logics 180, or at least two TCP controllers among the n TCP controllers 140 are m. At least one TCP operation logic among the TCP operation logics 180 may be shared.
  • the network interface device 100 can improve its processing performance by performing optimized scheduling under resource constraints.
  • FIGS. 8A to 8C it is assumed whether the number of TCP controllers 140 and TCP operation logic 180 is the same, but the TCP controller 140 and TCP operation logic 180 are shown regardless of whether the numbers are the same. 8A to 8C or other connection relationships may be established.
  • FIG. 9 is a flowchart showing a method 900 of operating a network interface device according to an embodiment of the present invention
  • FIG. 10 is a diagram showing a network interface device 100 operating by the operating method 900 of FIG. 9 .
  • the method 900 of operating the network interface device 100 stores connection information (ICT) in the first memory (MEM1) of the TCP controller 140.
  • a step (S920), a step of checking the occurrence of an event (EVT) corresponding to the connection information (ICT) stored in the first memory (MEM1) (S940), and an event (EVT) corresponding to the connection information (ICT) is generated.
  • Data processing in a high-speed network can be accelerated, including the step (S960) of moving the connection information (ICT) stored in the first memory (MEM1) to the second memory (MEM2) if it does not occur for 1 hour. .
  • connection information is information that the event scheduler 120 generates for a received event (EVT).
  • the first memory may be the SRAM of the TCP controller 140.
  • An operation of writing connection information (ICT) into the second memory (MEM2) may be performed by the memory control logic 160.
  • the second memory MEM2 may be a DRAM located outside the chip on which the TCP controller 140 is installed.
  • a plurality of second memories MEM2 are provided, and a memory into which connection information ICT is to be written may be selected by the memory control logic 160 among the plurality of second memories MEM2.
  • the network interface device 100 and its operating method 900 allow the limited TCP controller 140 to control connections between more local nodes and remote nodes, thereby improving performance. It can be.
  • FIGS. 11A and 11B are diagrams illustrating in more detail the method 900 of operating the network interface device of FIG. 9 , respectively.
  • the event scheduler 120 when the event scheduler 120 receives an event (EVT) (S912), the event ( Connection information (ICT) corresponding to EVT can be created or already created connection information (ICT) can be updated (S914).
  • the event scheduler 120 may include a mapping table (MTB) that stores the storage location of connection information (ICT).
  • the event scheduler 120 updates the mapping table (MTB) (S916) and sends the connection information (ICT) to the TCP controller. It can be delivered to (140) (S918).
  • the TCP controller 140 may store connection information (ICT) in the first memory (MEM1) (S920).
  • the event scheduler 120 may periodically check the occurrence of an event (EVT) corresponding to the connection information (ICT) (S940). Multiple events (EVT) may occur continuously or discontinuously for connection information (ICT), which is an identifier for the connection between a paired remote node and a local node. If the event (EVT) corresponding to the connection information (ICT) does not occur during the first time (t1), the event scheduler 120 controls the operation related to the connection information (ICT) by using the first control signal (XCT1). It can be transmitted to the TCP controller 140 and memory control logic 160 (S942).
  • ICT connection information
  • XCT1 first control signal
  • the TCP controller 140 may transmit the connection information (ICT) stored in the first memory (MEM1) to the memory control logic 160 in response to the first control signal (XCT1) (S944).
  • the memory control logic 160 may write connection information (ICT) received from the TCP controller 140 to the second memory (MEM2) in response to the first control signal (XCT1) (S960).
  • the memory control logic 160 may transmit the second control signal (XCT2) indicating that the connection information (ICT) is stored in the second memory (MEM2) to the event scheduler 120 (S962).
  • the event scheduler 120 may update the mapping table (MTB) in response to the second control signal (XCT2) (S964).
  • the method 900 of operating the network interface device 100 includes an event scheduler ( Before 120) transmits the connection information (ICT), it is possible to select which TCP controller among the plurality of TCP controllers 142 and 144 to transmit the connection information (ICT) (S915).
  • the event scheduler 120 may select a TCP controller based on the number of connection information (ICT) controlled by each of the multiple TCP controllers 142 and 144.
  • connection information For example, if the first TCP controller 142 stores two connection information (ICT) and the second TCP controller 144 stores five connection information (ICT), the event scheduler 120 newly The generated connection information (ICT) may be transmitted to the first TCP controller 142 (S918).
  • Figures 12A and 12B are diagrams for explaining an operation of retransmitting connection information (ICT) to the first memory (MEM1) according to an embodiment of the present invention, respectively.
  • the event scheduler 120 may search the mapping table (MTB) (S913). As a result, if the event (EVT) corresponds to the connection information (ICT) stored in the second memory (MEM2), the event scheduler 120 transmits the first control signal (XCT1) to the memory control logic 160. (S915).
  • the memory control logic 160 may determine whether to transmit the connection information (ICT) stored in the second memory (MEM2) to the first memory (MEM1) in response to the first control signal (XCT1) ( S970). For example, if the probability that an event (EVT) for connection information (ICT) stored in the second memory (MEM2) is performed within a second time is less than or equal to a certain value, the memory control logic 160) may maintain a standby state without transmitting to the first memory (MEM1).
  • the memory control logic 160 controls the connection information (ICT) can be moved to the first memory (MEM1) (S980).
  • the memory control logic 160 may transmit a second control signal (XCT2) indicating whether the connection information (ICT) has been moved to the first memory (MEM1) to the event scheduler 120 (S982).
  • the event scheduler 120 may update the mapping table (MTB) with connection information (ICT) in response to the second control signal (XCT2) (S984).
  • the method 900 of operating the network interface device 100 is as shown in FIGS. 12A and 12B when two or more TCP controllers 142 and 144 are provided.
  • the memory control logic 160 transfers the connection information (ICT) stored in the second memory (MEM2) to the first memory (MEM1) (S980)
  • the event scheduler 120 configures a plurality of first memories ( It is possible to determine which of MEM1) to which the connection information (ICT) will be re-moved to the first memory of the TCP controllers 142 and 144 (S990).
  • the memory control logic 160 determines whether to transmit the connection information (ICT) stored in the second memory (MEM2) to the first memory (MEM1) (S970) and sends the result to the event scheduler 120. It can be transmitted as a second control signal (XCT2) (S982).
  • XCT2 second control signal
  • a TCP controller for example, the first TCP controller 142, that can store connection information (ICT) in the first memory (MEM1) can be selected (S990). The following assumes that the first TCP controller 142 is selected.
  • the event scheduler 120 stores the first memory (MEM1) of one of the plurality of TCP controllers 142 and 144. TCP controller 142 can be selected. The event scheduler 120 may select a TCP controller based on a Least Recently Used (LRU) strategy. The event scheduler 120 may transmit the first control signal (XCT1) to the selected first TCP controller 142 (S992).
  • LRU Least Recently Used
  • the first TCP controller 142 that receives the first control signal (XCT1) may transfer one of the connection information (ICT) stored in the first memory (MEM1) to the second memory (MEM2) (S994) ).
  • the first TCP controller 142 may select connection information (ICT) transmitted to the second memory (MEM2) from among the stored connection information (ICT) based on the LRU strategy, etc.
  • the memory control logic 160 transmits the connection information (ICT) stored in the second memory (MEM2) to the first TCP controller 142, which delivered the connection information (ICT) stored in the first memory (MEM1). (S996).
  • the memory control logic 160 transmits a second control signal (XCT2) indicating that the connection information (ICT) stored in the second memory (MEM2) is stored in the first memory (MEM1) to the event scheduler 120 ( S998), the event scheduler 120 may update the mapping table (MTB) in response to the second control signal (XCT2) (S999).
  • the storage location of the connection information (ICT) is determined through scheduling of the event scheduler 120 and the memory control logic 160.
  • Data processing performance can be improved by optimizing and at the same time efficiently moving it back to the first memory (MEM1).
  • Figure 13 is a diagram showing a network interface device 100 according to an embodiment of the present invention.
  • the network interface device 100 unlike the embodiment described above, allows the event scheduler 120 to transmit connection information (ICT) to the memory control logic 160. You can. For example, when multiple connection pairs to a remote node and a local node are created at the same time or within close proximity, the event scheduler 120 first configures memory control logic (ICT) to store connection information (ICT) in the second memory (MEM2). 160).
  • ICT memory control logic
  • MEM2 second memory
  • connection information (ICT) stored in the second memory (MEM2) may be processed according to the operation of FIG. 12A or FIG. 12B.
  • ICT connection information stored in the second memory (MEM2)
  • Figure 14 is a diagram showing a server device 1400 according to an embodiment of the present invention.
  • the server device 1400 includes a network interface module 1420 and a host module 1440.
  • the server device 1400 according to an embodiment of the present invention may be one of various types of web servers, such as an asynchronous web server, a thread-based web server, and a forward proxy or reverse proxy-based web server. You can.
  • the server device 1400 according to an embodiment of the present invention may be one of various types of servers such as a web application server (WAS), a storage server, and a database server.
  • WAS web application server
  • the network interface module 1420 includes a TCP/IP hardware stack 1422 and a TCP/IP software stack 1424 that perform TCP/IP operations on data packets (DPKs).
  • the TCP/IP hardware stack 1422 may include a network interface device 100 such as that shown in FIG. 1 or FIG. 10 .
  • the TCP/IP software stack 1424 is not shown in FIG. 1, etc., but as explained in FIG. 7, the TCP/IP software stack 1424 is used in the network interface module 1420 without going through the TCP/IP protocol stack of the operating system of the host module 1440. Communication can be performed between the TCP/IP hardware stack 1422 and the host module 1440 to perform IP operations. For example, when the host module 1440 generates a data transmission request, the TCP/IP software stack 1444 performs an API hooking operation for the socket API, such as send() and recv() of the application of the host module 1440. can be performed.
  • the network interface module 1420 may include at least two TCP controllers 142 and 144 as shown in FIG. 1 .
  • the network interface module 1420 may be provided as a DPU chip together with the second memory (MEM2) as shown in FIG. 4.
  • the network interface module 1420 performs TCP/IP operation to reduce the load on the CPU of the host module 1440 and provides connection information for requested events.
  • the server device 1440 includes a plurality of TCP controllers and can perform processing for connection pairs of remote nodes and local loads in parallel, so the server device 1440 Data processing performance can be improved.
  • the network interface device 100 and the server device 1400 use other protocols such as Internet Control Message Protocol (ICMP) and Address Resolution Protocol (ARP) in addition to TCP/IP.
  • ICMP Internet Control Message Protocol
  • ARP Address Resolution Protocol
  • a separate module to support a network protocol may be further included, and link layer routing, etc. may be performed through the corresponding processing module. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the claims and equivalents of the claims as well as the claims described later.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Disclosed are a TOE-based network interface device, operating method thereof, and server device including same. The present invention may comprise: an event scheduler that generates connection information for a requested event and outputs a first control signal by performing scheduling on the connection information; a first TCP controller and a second TCP controller that each receive the connection information from the event scheduler and control a calculation operation for the connection information; and a memory control logic that transmits the connection information to a first memory or stores the connection information in a second memory, in response to the first control signal.

Description

네트워크 인터페이스 장치, 이의 동작 방법 및 이를 포함하는 서버 장치Network interface device, method of operation thereof, and server device including the same
본 발명은 네트워크 인터페이스에 관한 것으로, 특히 TOE(TCP/IP Offload Engine) 기반 네트워크 인터페이스 장치, 이의 동작 방법 및 이를 포함하는 서버 장치에 관한 것이다. The present invention relates to network interfaces, and particularly to a TOE (TCP/IP Offload Engine)-based network interface device, its operating method, and a server device including the same.
빅데이터 또는 인공지능이 적용되는 분야가 확대되고 OTT(Over-The-Top) 서비스 이용이 일상화되고 있다. 이에, 사용자 단말, 웹 서버(web server), 웹 어플리케이션 서버(Web Application Server: WAS), 스토리지 서버(storage server), 데이터베이스 서버(database server) 등 네트워크를 통해 연결되는 다양한 장치에서 대해, 요구되는 데이터의 처리 양이 급증하고 처리 속도 또한 빨라지고 있다. The areas where big data or artificial intelligence are applied are expanding, and the use of OTT (Over-The-Top) services is becoming routine. Accordingly, the data required for various devices connected through the network, such as user terminals, web servers, web application servers (WAS), storage servers, and database servers, etc. The amount of processing is rapidly increasing and the processing speed is also accelerating.
이에, 수 내지 수십 또는 수백 Gbps(Gigabits per second) 이상의 초고속 네트워크 환경에서 TCP/IP 프로토콜(Transmission Control Protocol/Internet Protocol) 기반으로 데이터 통신을 수행하는 경우, 막대한 시스템 자원이 요구될 수 있다. 예를 들어, 웹 서버가 네트워크를 통해 사용자 단말과 데이터 통신을 수행하는 경우, 웹 서버의 중앙 처리 장치, 즉 호스트 CPU(Central Processing Unit)가 TCP/IP 연산을 함에 있어 상당한 부하가 야기될 수 있다. Accordingly, when data communication is performed based on the TCP/IP protocol (Transmission Control Protocol/Internet Protocol) in a high-speed network environment of several tens or hundreds of Gbps (Gigabits per second) or more, enormous system resources may be required. For example, when a web server performs data communication with a user terminal through a network, a significant load may be incurred when the web server's central processing unit, that is, the host CPU (Central Processing Unit), performs TCP/IP operations. .
이 경우, 웹 서버 전체에 대한 성능 저하가 야기될 수 있다. 또한 웹 서버를 통해 수행되는 네트워크 통신의 처리가 지연될 수 있다. In this case, performance degradation of the entire web server may occur. Additionally, processing of network communications performed through a web server may be delayed.
본 발명은 상술한 과제를 해결하기 위한 것으로서, 호스트 CPU의 부하를 줄이고 초고속 네트워크에서의 데이터 처리를 가속시킬 수 있는 TOE 기반의 네트워크 인터페이스 장치, 이의 동작 방법 및 이를 포함하는 서버 장치를 제공하고자 한다.The present invention is intended to solve the above-described problems, and seeks to provide a TOE-based network interface device that can reduce the load on the host CPU and accelerate data processing in a high-speed network, a method of operating the same, and a server device including the same.
상기 기술적 과제를 해결하기 위한 본 발명의 실시예에 따른 네트워크 인터페이스 장치는, 요청되는 이벤트에 대한 연결 정보를 생성하고 상기 연결 정보에 대한 스케줄링을 수행하여 제1 제어 신호를 출력하는 이벤트 스케줄러; 각각, 상기 이벤트 스케줄러로부터 상기 연결 정보를 수신하고, 상기 연결 정보에 대한 연산 동작을 제어하는 제1 TCP 컨트롤러 및 제2 TCP 컨트롤러; 및 상기 제1 제어 신호에 응답하여, 상기 연결 정보를 제1 메모리로 전송하거나 제2 메모리에 저장하는 메모리 제어 로직;을 포함할 수 있다. A network interface device according to an embodiment of the present invention for solving the above technical problem includes an event scheduler that generates connection information for a requested event, performs scheduling on the connection information, and outputs a first control signal; a first TCP controller and a second TCP controller, respectively, receiving the connection information from the event scheduler and controlling calculation operations on the connection information; and memory control logic that transmits the connection information to a first memory or stores it in a second memory in response to the first control signal.
상기 이벤트 스케줄러는, 상기 연결 정보를 상기 제1 TCP 컨트롤러, 상기 제2 TCP 컨트롤러 및 상기 메모리 제어 로직 중 적어도 하나로 전달할 수 있다. The event scheduler may transmit the connection information to at least one of the first TCP controller, the second TCP controller, and the memory control logic.
상기 제1 메모리는, 상기 제1 TCP 컨트롤러 및 상기 제2 TCP 컨트롤러에 포함될 수 있다. The first memory may be included in the first TCP controller and the second TCP controller.
상기 제2 메모리는, 상기 제1 TCP 컨트롤러 및 상기 제2 TCP 컨트롤러가 구비되는 제1 칩의 외부에 위치하는 DRAM(Dynamic Random Access Memory)을 포함할 수 있다. The second memory may include a dynamic random access memory (DRAM) located outside the first chip equipped with the first TCP controller and the second TCP controller.
상기 메모리 제어 로직은, 상기 제2 메모리와 함께 제2 칩에 구비될 수 있다. The memory control logic may be provided on a second chip together with the second memory.
상기 메모리 제어 로직은, 상기 제1 TCP 컨트롤러 및 상기 제2 TCP 컨트롤러와 동일한 제1 칩에 구비될 수 있다. The memory control logic may be provided in the same first chip as the first TCP controller and the second TCP controller.
상기 제1 메모리에 저장된 상기 연결 정보는, 대응되는 이벤트가 제1 시간 동안 발생하지 아니하는 경우, 상기 제2 메모리로 이동될 수 있다. The connection information stored in the first memory may be moved to the second memory if a corresponding event does not occur for a first time.
상기 메모리 제어 로직은, 상기 제2 메모리에 저장된 상기 연결 정보에 대한 이벤트가 발생하는 경우, 상기 연결 정보의 상기 제1 메모리로의 이동 여부를 나타내는 제2 제어 신호를 생성할 수 있다.The memory control logic may generate a second control signal indicating whether the connection information is moved to the first memory when an event regarding the connection information stored in the second memory occurs.
상기 제2 메모리에 저장된 상기 연결 정보는, 상기 제1 TCP 컨트롤러의 상기 제1 메모리 및 상기 제2 TCP 컨트롤러의 상기 제1 메모리 중 하나의 제1 메모리로 이동될 수 있다. The connection information stored in the second memory may be moved to one of the first memories of the first TCP controller and the first memory of the second TCP controller.
각각, 상기 제1 TCP 컨트롤러 및 상기 제2 TCP 컨트롤러 중 대응되는 TCP 컨트롤러로부터 포함하는 제1 메모리에 저장되는 상기 연결 정보 및 상기 연결 정보에 대응되는 이벤트 정보를 수신하여 연산을 수행하는 제1 TCP 연산 로직 및 제2 TCP 연산 로직;이 더 포함될 수 있다. A first TCP operation that performs an operation by receiving the connection information and event information corresponding to the connection information stored in a first memory from a corresponding TCP controller among the first TCP controller and the second TCP controller, respectively. logic and second TCP operation logic; may be further included.
각각, 상기 제1 제어 신호에 응답하여 상기 연결 정보 및 상기 이벤트 정보에 대한 연산 동작을 제어하는 제3 TCP 컨트롤러 내지 제n TCP 컨트롤러; 및 각각, 상기 제3 TCP 컨트롤러 내지 제n TCP 컨트롤러 중 대응되는 TCP 컨트롤러로부터 포함하는 제1 메모리에 저장되는 상기 연결 정보 및 상기 이벤트 정보를 수신하여 연산을 수행하는 제1 TCP 연산 로직 내지 제m TCP 연산 로직;이 더 포함될 수 있다. third to nth TCP controllers, respectively, controlling calculation operations on the connection information and the event information in response to the first control signal; and first TCP operation logic to perform an operation by receiving the connection information and the event information stored in the first memory included from the corresponding TCP controller among the third TCP controller to the nth TCP controller, respectively. Operation logic may be further included.
상기 n과 상기 m은 상이할 수 있다.The n and the m may be different.
상기 이벤트 스케줄러는, 상기 연결 정보의 저장 위치에 대한 맵핑 테이블;을 포함할 수 있다. The event scheduler may include a mapping table for a storage location of the connection information.
네트워크 인터페이스를 통해 수신되는 데이터 패킷을 파싱하여 상기 데이터 패킷의 유저 데이터를 호스트 인터페이스를 통해 출력하고, 상기 데이터 패킷의 메타 데이터를 상기 이벤트 스케줄러에 이벤트로 전송하는 수신 처리 모듈; 및 상기 호스트 인터페이스를 통해 수신되는 데이터에 상기 연결 정보에 대응되는 헤더를 생성하고 데이터 패킷으로 출력하는 송신 처리 모듈;이 더 포함될 수 있다. a reception processing module that parses a data packet received through a network interface, outputs user data of the data packet through a host interface, and transmits metadata of the data packet as an event to the event scheduler; and a transmission processing module that generates a header corresponding to the connection information in data received through the host interface and outputs it as a data packet.
상기 기술적 과제를 해결하기 위한 본 발명의 실시예에 따른 네트워크 인터페이스 장치의 동작 방법은, TOE(TCP/IP Offload Engine) 기반 네트워크 인터페이스 장치의 동작 방법으로, 이벤트에 대응되는 연결 정보를 TCP 컨트롤러의 제1 메모리에 저장하는 단계; 상기 제1 메모리에 저장된 연결 정보에 대응되는 이벤트의 발생을 체크하는 단계; 및 상기 연결 정보에 대응되는 이벤트가 제1 시간 동안 발생하지 아니하는 경우, 상기 제1 메모리에 저장된 연결 정보를 제2 메모리로 이동시키는 단계;를 포함한다. The method of operating a network interface device according to an embodiment of the present invention to solve the above technical problem is a method of operating a TOE (TCP/IP Offload Engine)-based network interface device, and is a method of operating a network interface device that transmits connection information corresponding to an event to the TCP controller. 1 storing in memory; Checking occurrence of an event corresponding to connection information stored in the first memory; and, when an event corresponding to the connection information does not occur for a first time, moving the connection information stored in the first memory to a second memory.
상기 연결 정보를 제1 메모리에 저장하는 단계는, 다수의 상기 TCP 컨트롤러 중 하나를 선택하는 단계; 및 상기 연결 정보를 상기 선택된 TCP 컨트롤러의 제 1 메모리에 저장하는 단계;를 포함할 수 있다. Storing the connection information in the first memory may include selecting one of the plurality of TCP controllers; and storing the connection information in the first memory of the selected TCP controller.
상기 제2 메모리로 이동된 연결 정보에 대응되는 이벤트가 발생하는 경우, 상기 제2 메모리로 이동된 연결 정보를 상기 제1 메모리로 전송할지 여부를 판단하는 단계; 다수의 상기 TCP 컨트롤러 중 하나를 선택하는 단계; 및 상기 제2 메모리로 이동된 연결 정보를 상기 선택된 TCP 컨트롤러의 제1 메모리로 전송하는 단계;가 더 포함될 수 있다. When an event corresponding to the connection information moved to the second memory occurs, determining whether to transmit the connection information moved to the second memory to the first memory; selecting one of the plurality of TCP controllers; and transmitting the connection information moved to the second memory to the first memory of the selected TCP controller.
상기 기술적 과제를 해결하기 위한 본 발명의 실시예에 따른 서버 장치는, 수신되는 데이터 패킷(data packet)에 대한 TCP/IP 연산을 수행하는 TCP/IP 하드웨어 스택 및 TCP/IP 소프트웨어 스택을 포함하는 네트워크 인터페이스 모듈; 및 상기 네트워크 인터페이스 모듈로부터 상기 데이터 패킷의 데이터를 수신하여 처리하는 호스트 모듈;을 포함하고, 상기 네트워크 인터페이스 모듈은, 상기 데이터 패킷에 대응되는 연결 정보를 TCP 컨트롤러의 제1 메모리에 저장하거나, 메모리 제어 로직에 의해 제어되는 제2 메모리에 저장한다. A server device according to an embodiment of the present invention for solving the above technical problem is a network including a TCP/IP hardware stack and a TCP/IP software stack that performs TCP/IP operations on received data packets. interface module; and a host module that receives and processes the data of the data packet from the network interface module, wherein the network interface module stores connection information corresponding to the data packet in the first memory of the TCP controller or controls the memory. Stored in a second memory controlled by logic.
상기 네트워크 인터페이스 모듈은, 상기 TCP 컨트롤러를 다수로 구비할 수 있다. The network interface module may include multiple TCP controllers.
상기 메모리 제어 로직은 상기 제2 메모리와 동일한 칩에 구비될 수 있다. The memory control logic may be provided on the same chip as the second memory.
본 발명의 실시예에 따른 네트워크 인터페이스 장치, 이의 동작 방법 및 이를 포함하는 서버 장치에 의하면, 네트워크 어댑터(network adapter)에서 TCP/IP 처리를 수행하여 호스트 CPU의 부하를 줄이면서, 요청되는 이벤트에 대한 연결 정보를 제1 메모리 및 제2 메모리 중 하나에 저장하고 최적화된 스케줄링을 수행함으로써, 초고속 네트워크에서의 데이터 처리가 가속될 수 있다. According to a network interface device, a method of operating the same, and a server device including the same according to an embodiment of the present invention, a network adapter performs TCP/IP processing to reduce the load on the host CPU and provide information on requested events. By storing connection information in one of the first memory and the second memory and performing optimized scheduling, data processing in a high-speed network can be accelerated.
또는, 본 발명의 실시예에 따른 네트워크 인터페이스 장치, 이의 동작 방법 및 이를 포함하는 서버 장치에 의하면, 네트워크 어댑터에서 TCP/IP 처리를 수행하여 호스트 CPU의 부하를 줄이면서, 요청되는 이벤트가 TCP 컨트롤러들에 분산되어 병렬적으로 처리됨으로써, 초고속 네트워크에서의 데이터 처리가 가속될 수 있다. Alternatively, according to a network interface device, a method of operating the same, and a server device including the same according to an embodiment of the present invention, the load on the host CPU is reduced by performing TCP/IP processing on the network adapter, and the requested event is transmitted to the TCP controllers. By being distributed and processed in parallel, data processing in high-speed networks can be accelerated.
도 1은 본 발명의 실시예에 따른 네트워크 인터페이스 장치를 나타내는 도면이다.1 is a diagram showing a network interface device according to an embodiment of the present invention.
도 2는 본 발명의 실시예에 따른 네트워크 인터페이스 장치에서 처리하는 데이터 패킷을 나타내는 도면이다. Figure 2 is a diagram showing data packets processed by a network interface device according to an embodiment of the present invention.
도 3 내지 도 5는 각각, 본 발명의 실시예에 따른 메모리 제어 로직을 나타내는 도면이다. 3 to 5 are diagrams showing memory control logic according to an embodiment of the present invention, respectively.
도 6 및 도 7은 각각 본 발명의 실시예에 따른 TOE(TCP/IP Offload Engine) 기반의 네트워크 인터페이스 장치를 나타내는 도면이다. Figures 6 and 7 are diagrams showing a network interface device based on a TOE (TCP/IP Offload Engine) according to an embodiment of the present invention, respectively.
도 8A 내지 도 8C는 각각, 본 발명의 실시예에 따른 TCP 컨트롤러와 TCP 연산 로직과의 관계를 나타내는 도면이다. Figures 8A to 8C are diagrams showing the relationship between a TCP controller and TCP operation logic, respectively, according to an embodiment of the present invention.
도 9는 본 발명의 실시예에 따른 네트워크 인터페이스 장치의 동작 방법을 나타내는 순서도이다. Figure 9 is a flowchart showing a method of operating a network interface device according to an embodiment of the present invention.
도 10은 도 9의 동작 방법으로 동작하는 네트워크 인터페이스 장치를 나타내는 도면이다.FIG. 10 is a diagram illustrating a network interface device operating according to the operation method of FIG. 9.
도 11A 및 도 11B는 각각, 도 9의 네트워크 인터페이스 장치의 동작 방법을 더 자세히 나타내는 도면이다. Figures 11A and 11B are diagrams showing in more detail the operating method of the network interface device of Figure 9, respectively.
도 12A 및 도 12B는 각각 본 발명의 실시예에 따른 연결 정보를 제1 메모리로 재전송하는 동작을 설명하기 위한 도면이다. Figures 12A and 12B are diagrams for explaining an operation of retransmitting connection information to the first memory according to an embodiment of the present invention, respectively.
도 13은 본 발명의 실시예에 따른 네트워크 인터페이스 장치를 나타내는 도면이다. Figure 13 is a diagram showing a network interface device according to an embodiment of the present invention.
도 14는 본 발명의 실시예에 따른 서버 장치를 나타내는 도면이다. Figure 14 is a diagram showing a server device according to an embodiment of the present invention.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다. Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The detailed description below is provided to provide a comprehensive understanding of the methods, devices and/or systems described herein. However, this is only an example and the present invention is not limited thereto.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, if it is determined that a detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. In addition, the terms described below are terms defined in consideration of functions in the present invention, and may vary depending on the intention or custom of the user or operator. Therefore, the definition should be made based on the contents throughout this specification.
상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.The terminology used in the detailed description is only for describing embodiments of the present invention and should in no way be limiting. Unless explicitly stated otherwise, singular forms include plural meanings. In this description, expressions such as “comprising” or “including” are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, and one or more than those described. It should not be construed to exclude the existence or possibility of any other characteristic, number, step, operation, element, or part or combination thereof.
제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.Terms such as first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The above terms may be used for the purpose of distinguishing one component from another component. For example, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component without departing from the scope of the present invention.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail so that a person skilled in the art can easily practice the present invention.
도 1은 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)를 나타내는 도면이고, 도 2는 본 발명의 실시예에 따른 네트워크 인터페이스 장치에서 처리하는 데이터 패킷(DPK)을 나타내는 도면이다.FIG. 1 is a diagram illustrating a network interface device 100 according to an embodiment of the present invention, and FIG. 2 is a diagram illustrating a data packet (DPK) processed by the network interface device 100 according to an embodiment of the present invention.
도 1 및 도 2를 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 이벤트 스케줄러(120), TCP 컨트롤러(140) 및 메모리 제어 로직(160)을 포함하여, 초고속 네트워크에서의 데이터 처리를 효율적으로 가속시킬 수 있다.Referring to Figures 1 and 2, the network interface device 100 according to an embodiment of the present invention includes an event scheduler 120, a TCP controller 140, and a memory control logic 160, to store data in a high-speed network. Processing can be accelerated efficiently.
이벤트 스케줄러(120)는 요청되는 이벤트(EVT)에 대한 연결 정보(ICT)를 생성하고, 연결 정보(ICT)에 대한 스케줄링을 수행하여 제1 제어 신호(XCT1)를 출력한다. 이벤트(EVT)는 예를 들어, 네트워크로부터 데이터 패킷(DPK)이 수신되거나 어플리케이션으로부터 데이터에 대한 전송 요청이 전달되는 것을 의미할 수 있다. 또는, TCP 컨트롤러(140) 등의 동작에 타임아웃(timeout)이 발생한 경우에도 이벤트(EVT)로 처리될 수 있다.The event scheduler 120 generates connection information (ICT) for the requested event (EVT), performs scheduling on the connection information (ICT), and outputs a first control signal (XCT1). An event (EVT) may mean, for example, that a data packet (DPK) is received from a network or a transmission request for data is transmitted from an application. Alternatively, even if a timeout occurs in the operation of the TCP controller 140, etc., it may be processed as an event (EVT).
TCP 컨트롤러(140)는 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)를 포함할 수 있다. 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)는 각각, 이벤트 스케줄러(120)로부터 연결 정보(ICT)를 수신하고, 연결 정보(ICT)에 대한 연산 동작을 제어하는 연산 동작을 제어한다.The TCP controller 140 may include a first TCP controller 142 and a second TCP controller 144. The first TCP controller 142 and the second TCP controller 144 each receive connection information (ICT) from the event scheduler 120 and control calculation operations for controlling the connection information (ICT). .
연결 정보(ICT)는 통신하고자 하는 로컬 노드(local node) 및 원격 노드(remote node)의 두 개의 엔드-포인트(end-point) 사이에 연결을 설정하는데 사용되는 정보를 포함할 수 있다. 연결 정보(ICT)는 예를 들어, 로컬 노드 및 원격 노드의 IP 주소 및 포트(port) 번호에 대한 연결 식별자에 대한 사항을 포함할 수 있다. 이러한 연결 정보(ICT)는 TCP/IP 스택(TCP/IP stack)의 각 계층에 대한 헤더(header)를 생성하거나 처리하는데 사용될 수 있다. TCP/IP 스택의 각 계층 중 대응되는 계층에 대해, TCP 헤더를 포함하는 TCP 패킷, IP 헤더를 IP 패킷 및 MAC 헤더를 MAC 패킷이 생성될 수 있다. 예를 들어, TCP 패킷의 헤더에는 출발지 어드레스(source address)와 목적지 어드레스(destination address), 시퀀스 번호(sequence number) 및 승인 번호(acknowledgement number) 등의 메타 데이터가 포함될 수 있다.Connection information (ICT) may include information used to establish a connection between two end-points, a local node and a remote node, with which one wishes to communicate. Connection information (ICT) may include, for example, connection identifiers for IP addresses and port numbers of local nodes and remote nodes. This connection information (ICT) can be used to create or process a header for each layer of the TCP/IP stack. For each layer of the TCP/IP stack, a TCP packet containing a TCP header, an IP packet containing an IP header, and a MAC packet containing a MAC header may be generated. For example, the header of a TCP packet may include metadata such as a source address, destination address, sequence number, and acknowledgment number.
이벤트 스케줄러(120)는 연결 정보(ICT)에 대응되는 이벤트 정보(IEV) 또한 생성할 수 있다. 이벤트 정보(IEV)는 연결 정보(ICT)가 나타내는 로컬 노드와 원격 노드 사이에 발생하는 이벤트(EVT)의 유형에 대한 정보일 수 있다. 전술된 예에 대해, 이벤트 정보(IEV)는 대응되는 연결 정보(ICT)로 식별되는 원격 노드로부터의 데이터 패킷(DPK) 수신, 로컬 노드의 데이터 전송 요청 또는 이벤트(EVT)의 타임아웃 등에 대한 정보를 포함할 수 있다.The event scheduler 120 may also generate event information (IEV) corresponding to connection information (ICT). Event information (IEV) may be information about the type of event (EVT) that occurs between the local node and the remote node indicated by the connection information (ICT). For the examples described above, the event information (IEV) is information about the reception of a data packet (DPK) from a remote node identified by the corresponding connection information (ICT), a data transmission request by the local node, or a timeout of an event (EVT), etc. may include.
한 쌍의 로컬 노드 및 원격 노드에 대한 연결 정보(ICT)는 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144) 중 하나로 전달될 수 있다. 예를 들어, 제1 쌍의 로컬 노드 및 원격 노드에 대한 연결 정보(ICT)는 제1 TCP 컨트롤러(142)로 전달되고, 제2 쌍의 로컬 노드 및 원격 노드에 대한 연결 정보(ICT)는 제2 TCP 컨트롤러(144)로 전달될 수 있다. 또한, 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)에는 다수의 연결 정보(ICT)가 저장될 수 있다. 예를 들어, 제1 TCP 컨트롤러(142)로 x개의 연결 정보(ICT)가 전달되고, 제2 TCP 컨트롤러(144)로 y개의 연결 정보(ICT)가 전달될 수 있다. 이벤트 정보(IEV)는 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144) 중 대응되는 연결 정보(ICT)가 전달되는 TCP 컨트롤러로 전달될 수 있다.Connection information (ICT) for a pair of local nodes and remote nodes may be transmitted to one of the first TCP controller 142 and the second TCP controller 144. For example, connection information (ICT) for a first pair of local nodes and remote nodes is communicated to the first TCP controller 142, and connection information (ICT) for a second pair of local nodes and remote nodes is transmitted to the first TCP controller 142. 2 may be transmitted to the TCP controller 144. Additionally, a plurality of connection information (ICT) may be stored in the first TCP controller 142 and the second TCP controller 144. For example, x pieces of connection information (ICT) may be transmitted to the first TCP controller 142, and y pieces of connection information (ICT) may be transmitted to the second TCP controller 144. The event information (IEV) may be transmitted to the TCP controller through which the corresponding connection information (ICT) is transmitted, among the first TCP controller 142 and the second TCP controller 144.
메모리 제어 로직(160)은 제1 제어 신호(XCT1)에 응답하여, 연결 정보(ICT)를 제1 메모리(MEM1)로 이동시키거나 제2 메모리(MEM2)에 저장한다. 메모리 제어 로직(160)은 연결 정보(ICT)의 저장 위치 또는 스케줄링과 관련하여 수행한 동작에 대한 결과로서 제2 제어 신호(XCT2)를 이벤트 스케줄러(120)로 전달할 수 있다.The memory control logic 160 moves the connection information (ICT) to the first memory (MEM1) or stores it in the second memory (MEM2) in response to the first control signal (XCT1). The memory control logic 160 may transmit the second control signal (XCT2) to the event scheduler 120 as a result of an operation performed in relation to the storage location or scheduling of the connection information (ICT).
제1 메모리(MEM1)는 SRAM(Static Random Access Memory)일 수 있다. 제1 메모리(MEM1)는 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)에 포함될 수 있다. 제2 메모리(MEM2)는 DRAM(Dynamic Random Access Memory)일 수 있다. 그러나, 제1 메모리(MEM1) 및 제2 메모리(MEM2)의 종류가 제한되는 것은 아니다.The first memory (MEM1) may be SRAM (Static Random Access Memory). The first memory (MEM1) may be included in the first TCP controller 142 and the second TCP controller 144. The second memory (MEM2) may be DRAM (Dynamic Random Access Memory). However, the types of the first memory (MEM1) and the second memory (MEM2) are not limited.
제1 메모리(MEM1)에 저장된 연결 정보(ICT)에 대응되는 이벤트 정보(IEV)가 제1 시간 동안 업데이트 되지 아니하면, 예를 들어 제1 메모리(MEM1)에 저장된 연결 정보(ICT)로 식별되는 로컬 노드와 원격 노드 사이의 통신이 일정 시간 발생하지 아니하는 경우, 제1 제어 신호(XCT1)에 응답하여 제1 메모리(MEM1)에 저장된 연결 정보(ICT)가 제2 메모리(MEM2)에 저장될 수 있다.If the event information (IEV) corresponding to the connection information (ICT) stored in the first memory (MEM1) is not updated for the first time, for example, it is identified by the connection information (ICT) stored in the first memory (MEM1). If communication between the local node and the remote node does not occur for a certain period of time, the connection information (ICT) stored in the first memory (MEM1) will be stored in the second memory (MEM2) in response to the first control signal (XCT1). You can.
이렇듯, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)가 각각 별도의 연결 정보(ICT)에 대한 동작을 독립적으로 수행함으로써, 고속의 이벤트 처리가 가능할 수 있다. 또한, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 이벤트 발생의 대기 시간이 일정 시간 이상 지속되는 연결에 대한 연결 정보(ICT)를 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)의 제1 메모리(MEM1)가 아닌 제2 메모리(MEM2)에 저장하여, 제1 TCP 컨트롤러(142) 또는 제2 TCP 컨트롤러(144)가 새로운 연결 정보(ICT)에 대응되는 동작의 제어를 수행함으로써, 고속의 이벤트 처리가 가능할 수 있다.As such, the network interface device 100 according to an embodiment of the present invention allows the first TCP controller 142 and the second TCP controller 144 to independently perform operations on separate connection information (ICT), thereby achieving high speed. Event processing may be possible. In addition, the network interface device 100 according to an embodiment of the present invention provides connection information (ICT) for a connection in which the waiting time for an event occurrence continues for a certain period of time or more to the first TCP controller 142 and the second TCP controller 144. ), and the first TCP controller 142 or the second TCP controller 144 performs control of the operation corresponding to the new connection information (ICT). By doing so, high-speed event processing may be possible.
도 3 내지 도 5는 각각, 본 발명의 실시예에 따른 메모리 제어 로직(160)을 나타내는 도면이다.3 to 5 are diagrams showing memory control logic 160 according to an embodiment of the present invention, respectively.
먼저 도 3을 참조하면, 본 발명의 실시예에 따른 제2 메모리(MEM2)는 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)가 구비되는 제1 칩(CH1)의 외부에 위치할 수 있다. 제2 메모리(MEM2)는 적어도 둘 이상으로 구비될 수 있다. 이때 메모리 제어 로직(160)은 제1 칩(CH1) 및 제2 메모리(MEM2)와 별개의 칩으로 구비될 수 있다. 예를 들어, 메모리 제어 로직(160)은 제1 칩(CH1) 및 제2 메모리(MEM2)이 장착되는 보드 상에 코어 칩인 제1 칩(CH1)과는 다른 FPGA(Field Programmable Gate Array) 칩으로 구비될 수 있다. 이벤트 스케줄러(120)는 제1 칩(CH1)의 외부에 위치하는 것으로 도시하였으나, 이는 이벤트 스케줄러(120)가 다양하게 위치될 수 있음을 의미할 뿐, 이벤트 스케줄러(120)는 제1 칩(CH1)에 포함되는 것을 배제하는 의미는 아니다.First, referring to FIG. 3, the second memory (MEM2) according to an embodiment of the present invention is located outside the first chip (CH1) equipped with the first TCP controller 142 and the second TCP controller 144. You can. There may be at least two second memories (MEM2). At this time, the memory control logic 160 may be provided as a separate chip from the first chip CH1 and the second memory MEM2. For example, the memory control logic 160 is an FPGA (Field Programmable Gate Array) chip different from the first chip (CH1), which is a core chip, on a board on which the first chip (CH1) and the second memory (MEM2) are mounted. It can be provided. The event scheduler 120 is shown as being located outside the first chip (CH1), but this only means that the event scheduler 120 can be located in various ways, and the event scheduler 120 is located outside the first chip (CH1). ) does not mean that it is excluded from being included in.
다음으로 도 4를 참조하면, 본 발명의 실시예에 따른 메모리 제어 로직(160)은 제2 메모리(MEM2)가 함께, 제1 칩(CH1)과 별개의 제2 칩(CH2)으로 구비될 수 있다. 예를 들어, 제2 칩(CH2)은 DPU(Data Process Unit) 칩으로 구비될 수 있다. 제1 칩(CH1)과 제2 칩(CH2)은 일관성 인터커넥트(coherent interconnect)를 통해 정보 및 신호를 송수신할 수 있다. 도 3의 제1 칩(CH1)과 메모리 제어 로직(160) 또한 일관성 인터커넥트를 통해 정보 및 신호를 송수신할 수 있다.Next, referring to FIG. 4, the memory control logic 160 according to an embodiment of the present invention may be provided with a second memory (MEM2) and a second chip (CH2) separate from the first chip (CH1). there is. For example, the second chip CH2 may be provided as a Data Process Unit (DPU) chip. The first chip (CH1) and the second chip (CH2) can transmit and receive information and signals through a coherent interconnect. The first chip CH1 and the memory control logic 160 of FIG. 3 can also transmit and receive information and signals through a coherent interconnect.
또는 도 5에 도시되는 바와 같이, 본 발명의 실시예에 따른 메모리 제어 로직(160)은 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)가 포함되는 제1 칩(CH1)에 구비될 수도 있다. 이때, 메모리 제어 로직(160)은 제2 메모리(MEM2)와 일관성 인터커넥트를 통해 정보 및 신호를 송수신할 수 있다.Or, as shown in FIG. 5, the memory control logic 160 according to an embodiment of the present invention may be provided in the first chip (CH1) including the first TCP controller 142 and the second TCP controller 144. It may be possible. At this time, the memory control logic 160 may transmit and receive information and signals with the second memory MEM2 through a coherent interconnect.
전술된 바와 같이, 연결 정보(ICT)의 상태에 근거하여 연결 정보(ICT)는 제1 메모리(MEM1) 및 제2 메모리(MEM2) 중 하나에 저장될 수 있다. 이때, 본 발명의 실시예에 따른 메모리 제어 로직(160)는 제1 제어 신호(XCT1)에 응답하여, 제2 메모리(MEM2)에 저장된 연결 정보(ICT)를 제1 메모리(MEM1)로 전송할지 여부에 대한 의사결정을 수행할 수 있다. 메모리 제어 로직(160)의 동작에 대한 더 자세한 설명은 후술된다.As described above, the connection information (ICT) may be stored in one of the first memory (MEM1) and the second memory (MEM2) based on the status of the connection information (ICT). At this time, the memory control logic 160 according to an embodiment of the present invention determines whether to transmit the connection information (ICT) stored in the second memory (MEM2) to the first memory (MEM1) in response to the first control signal (XCT1). You can make decisions about whether or not to A more detailed description of the operation of the memory control logic 160 is described later.
이렇듯, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 메모리 제어 로직(160)에 의해 연결 정보(ICT)의 저장 위치를 최적화함으로써 데이터 처리 성능을 향상시킬 수 있다. 나아가, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 요구되는 리소스(resource) 제한과 성능 기준에 최적화되도록 메모리 제어 로직(160)을 구비함으로써, 초고속 네트워크 환경에서 최적화된 동작을 수행할 수 있다.In this way, the network interface device 100 according to an embodiment of the present invention can improve data processing performance by optimizing the storage location of connection information (ICT) by the memory control logic 160. Furthermore, the network interface device 100 according to an embodiment of the present invention can perform optimized operation in a high-speed network environment by providing a memory control logic 160 to optimize the required resource limits and performance standards. there is.
도 6 및 도 7은 각각 본 발명의 실시예에 따른 TOE(TCP/IP Offload Engine) 기반의 네트워크 인터페이스 장치(100)를 나타내는 도면이다.Figures 6 and 7 are diagrams showing a TOE (TCP/IP Offload Engine)-based network interface device 100, respectively, according to an embodiment of the present invention.
먼저 도 6을 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 자체적으로 인터넷표준 프로토콜 TCP/IP의 처리를 수행하는 NIC((Network Interface Controller), 네트워크 어댑터, Smart NIC 등일 수 있다. 즉, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 TOE 프로토콜 기반의 네트워크 인터페이스 장치일 수 있다. TOE 프로토콜은 TCP/IP 연산을 호스트 CPU의 운영체제가 아닌 네트워크 인터페이스 장치(100)에서 수행함으로써, 서버 장치의 부하를 줄이고 데이터 처리 속도를 향상시키는 일종의 네트워크 가속 기술이다. 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 TOE 프로토콜 기반으로 구비됨으로써, 초고속 네트워크 환경을 지원할 수 있다.First, referring to FIG. 6, the network interface device 100 according to an embodiment of the present invention may be a NIC (Network Interface Controller), a network adapter, a Smart NIC, etc. that independently processes the Internet standard protocol TCP/IP. In other words, the network interface device 100 according to an embodiment of the present invention may be a TOE protocol-based network interface device. The TOE protocol performs TCP/IP operations in the network interface device 100 rather than in the operating system of the host CPU. By doing so, the network interface device 100 according to an embodiment of the present invention can support a high-speed network environment by being equipped based on the TOE protocol.
이를 위해 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)와 함께, 제1 TCP 연산 로직(182) 및 제2 TCP 연산 로직(184)을 더 포함할 수 있다. 제1 TCP 연산 로직(182) 및 제2 TCP 연산 로직(184)은 각각, 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144) 중 대응되는 TCP 컨트롤러로부터 제1 메모리(MEM1)에 저장되는 연결 정보(ICT) 및 이벤트 정보(IEV)를 수신하여 TCP/IP 연산을 수행할 수 있다.To this end, the network interface device 100 according to an embodiment of the present invention includes a first TCP controller 142 and a second TCP controller 144, as well as a first TCP operation logic 182 and a second TCP operation logic 184. ) may further be included. The first TCP operation logic 182 and the second TCP operation logic 184 are stored in the first memory (MEM1) from the corresponding TCP controller among the first TCP controller 142 and the second TCP controller 144, respectively. TCP/IP operations can be performed by receiving connection information (ICT) and event information (IEV).
예를 들어, 제1 TCP 연산 로직(182) 및 제2 TCP 연산 로직(184)은 수신되는 연결 정보(ICT) 및 이벤트 정보(IEV)에 대해 혼잡 윈도우(congestion window) 제어, 흐름 제어, 재전송 등, 각 계층의 헤더를 처리하는데 요구되는 연산 동작을 수행할 수 있다. 제1 TCP 연산 로직(182) 및 제2 TCP 연산 로직(184)은 연산 동작의 수행 결과를 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)에 전송할 수 있다.For example, the first TCP operation logic 182 and the second TCP operation logic 184 perform congestion window control, flow control, retransmission, etc. for the received connection information (ICT) and event information (IEV). , it is possible to perform calculation operations required to process the header of each layer. The first TCP operation logic 182 and the second TCP operation logic 184 may transmit the results of the operation to the first TCP controller 142 and the second TCP controller 144.
다음으로 도 2 및 도 7을 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 또한, 네트워크 인터페이스(110), 수신 처리 모듈(130), 호스트 인터페이스(150) 및 송신 처리 모듈(170)을 더 포함할 수 있다.Next, referring to FIGS. 2 and 7, the network interface device 100 according to an embodiment of the present invention also includes a network interface 110, a reception processing module 130, a host interface 150, and a transmission processing module ( 170) may further be included.
네트워크 인터페이스(110)는 기가빗 이더넷 컨트롤러(Gigabit Ethernet controller)를 포함하여, Gb 이더넷 MAC/PHY 칩과의 인터페이스를 담당하여 이더넷 패킷의 송수신을 처리할 수 있다. 수신 처리 모듈(130)은 네트워크 인터페이스(110)를 통해 수신되는 데이터 패킷(DPK)을 유저 데이터와 메타 데이터로 파싱(parsing)할 수 있다. 데이터 패킷(DPK)의 유저 데이터는 호스트 인터페이스(150)를 통해 호스트 모듈(host module)로 전달될 수 있다. 호스트 인터페이스(150)는 예를 들어 PCIe 컨트롤러(Peripheral Component Interconnect express controller)를 포함하여, 호스트 모듈과의 인터페이스를 수행할 수 있다.The network interface 110 includes a Gigabit Ethernet controller and is responsible for the interface with the Gb Ethernet MAC/PHY chip to process transmission and reception of Ethernet packets. The reception processing module 130 may parse a data packet (DPK) received through the network interface 110 into user data and metadata. User data in the data packet (DPK) may be transmitted to the host module through the host interface 150. The host interface 150 may include, for example, a PCIe controller (Peripheral Component Interconnect express controller) and may perform an interface with a host module.
수신 처리 모듈(130)은 데이터 패킷(DPK)의 메타 데이터를 이벤트 스케줄러(120)로 전송할 수 있다. 이벤트 스케줄러(120)는 수신 처리 모듈(130)로부터 수신되는 메타 데이터를 이벤트(EVT)로 처리할 수 있다. 수신 처리 모듈(130)로부터 전달되는 메타 데이터가 새로운 연결 정보(ICT)를 나타내는 경우, 이벤트 스케줄러(120)는 새로운 연결 정보(ICT)를 생성할 수 있다. 수신 처리 모듈(130)로부터 전달되는 메타 데이터가 제1 메모리(MEM1) 또는 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)와 관련된 경우, 해당 연결 정보(ICT)를 업데이트할 수 있다.The reception processing module 130 may transmit metadata of the data packet (DPK) to the event scheduler 120. The event scheduler 120 may process metadata received from the reception processing module 130 into an event (EVT). When metadata transmitted from the reception processing module 130 indicates new connection information (ICT), the event scheduler 120 may generate new connection information (ICT). If the metadata transmitted from the reception processing module 130 is related to connection information (ICT) stored in the first memory (MEM1) or the second memory (MEM2), the corresponding connection information (ICT) may be updated.
송신 처리 모듈(170)은 호스트 인터페이스(150)를 통해 수신되는 데이터 전송 요청에 응답하여 데이터 패킷(DPK)을 출력할 수 있다. 데이터 전송 요청은 호스트 모듈에서 동작하는 어플리케이션으로부터 전송될 수 있다. 데이터 전송 요청은 호스트 운영체제의 TCP/IP 프로토콜 스택을 거치지 아니하고 호스트 인터페이스(150)로 직접 전달될 수 있다. 이는 어플리케이션의 send() 와 recv() 등 소켓 API(socket Application Programming Interface)에 대한 API 후킹(hooking) 동작을 통해 수행될 수 있다.The transmission processing module 170 may output a data packet (DPK) in response to a data transmission request received through the host interface 150. A data transmission request may be transmitted from an application running on the host module. A data transmission request may be transmitted directly to the host interface 150 without going through the TCP/IP protocol stack of the host operating system. This can be performed through API hooking operations for the socket API (socket application programming interface), such as the application's send() and recv().
송신 처리 모듈(170)은 데이터 전송 요청에 대응되는 TCP 헤더, IP 헤더 및 MAC 헤더를 원격 노드로 전송할 데이타(DTA)에 결합하는 동작을 수행할 수 있다. TCP 헤더, IP 헤더 및 MAC 헤더는 제1 TCP 컨트롤러(142) 및 제1 TCP 연산 로직(182), 또는 제2 TCP 컨트롤러(144) 및 제2 TCP 연산 로직(184)에 의해 생성될 수 있다. 원격 노드로 전송할 데이타(DTA)는 호스트 모듈의 메인 메모리에서 독출할 수 있다.The transmission processing module 170 may perform an operation of combining the TCP header, IP header, and MAC header corresponding to the data transmission request with data (DTA) to be transmitted to the remote node. The TCP header, IP header, and MAC header may be generated by the first TCP controller 142 and the first TCP operation logic 182, or the second TCP controller 144 and the second TCP operation logic 184. Data (DTA) to be transmitted to the remote node can be read from the main memory of the host module.
제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144) 중 데이터 전송 요청에 대응되는 연결 정보(ICT)를 처리하는 TCP 컨트롤러의 전송 명령에 따라, 데이터 패킷(DPK)은 송신 처리 모듈(170)로부터 네트워크 인터페이스(110)로 전송되어 출력될 수 있다.According to the transmission command of the TCP controller that processes the connection information (ICT) corresponding to the data transmission request among the first TCP controller 142 and the second TCP controller 144, the data packet (DPK) is sent to the transmission processing module 170. It may be transmitted to the network interface 110 and output.
도 7에 도시되지는 아니하였으나, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 수신 처리 모듈(130)이 처리하고자 하는 데이터 패킷(DPK) 또는 송신 처리 모듈(170)에 의해 처리된 데이터 패킷(DPK)을 일시적으로 저장하거나, 수신 처리 모듈(130)에 의해 처리되어 호스트 인터페이스(150)를 통해 출력하고자 하는 유저 데이터 또는 데이터 전송 요청에 대응되어 호스트 인터페이스(150)를 통해 수신된 유저 데이터를 일시적으로 저장하는 TCP 버퍼가 더 포함될 수 있다. 또는, 이러한 TCP 버퍼의 전부 또는 일부는 제2 메모리(MEM2)의 전부 또는 일부로 구비될 수 있다.Although not shown in FIG. 7, the network interface device 100 according to an embodiment of the present invention processes a data packet (DPK) to be processed by the reception processing module 130 or data processed by the transmission processing module 170. User data that is to be temporarily stored as a packet (DPK), processed by the reception processing module 130, and output through the host interface 150, or user data received through the host interface 150 in response to a data transmission request. A TCP buffer that temporarily stores may be further included. Alternatively, all or part of these TCP buffers may be provided in all or part of the second memory (MEM2).
이렇듯, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 도 6 또는 도 7와 같이 동작함으로써, TCP/IP 연산을 자체적으로 수행함으로써, 데이터 처리 속도를 향상시킬 수 있다. 이때, 연결 정보(ICT)가 제2 메모리(MEM2)에 저장되어 있는 경우, 연결 정보(ICT)가 제2 메모리(MEM2)로부터 제1 메모리(MEM1)로 전달된 후 상기의 동작들이 수행될 수 있다. 즉, 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)에 의해 보다 많은 로컬 노드와 원격 노드 사이의 연결을 제어하면서도, 이벤트(EVT)의 발생에 적응적으로 동작할 수 있다. 따라서, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)에 의하면, 초고속 네트워킹을 효율적으로 지원할 수 있다.As such, the network interface device 100 according to an embodiment of the present invention operates as shown in FIG. 6 or FIG. 7 and can improve data processing speed by performing TCP/IP operations on its own. At this time, if the connection information (ICT) is stored in the second memory (MEM2), the above operations can be performed after the connection information (ICT) is transferred from the second memory (MEM2) to the first memory (MEM1). there is. That is, the first TCP controller 142 and the second TCP controller 144 can control connections between more local nodes and remote nodes and operate adaptively to the occurrence of an event (EVT). Therefore, according to the network interface device 100 according to an embodiment of the present invention, high-speed networking can be efficiently supported.
도 6 및 도 7에서는 제1 TCP 연산 로직(182) 및 제2 TCP 연산 로직(184)이 제1 TCP 컨트롤러(142) 및 제2 TCP 컨트롤러(144)에 일대일 대응되는 예를 도시한다. 즉, 제1 TCP 연산 로직(182)은 제1 TCP 컨트롤러(142)의 연결 정보(ICT)와 이벤트 정보(IEV)를 처리하고, 제2 TCP 연산 로직(184)은 제2 TCP 컨트롤러(144)의 연결 정보(ICT)와 이벤트 정보(IEV)를 처리할 수 있다. 다만, 이에 한정되는 것은 아니다.6 and 7 show an example in which the first TCP operation logic 182 and the second TCP operation logic 184 correspond one-to-one to the first TCP controller 142 and the second TCP controller 144. That is, the first TCP operation logic 182 processes the connection information (ICT) and event information (IEV) of the first TCP controller 142, and the second TCP operation logic 184 processes the connection information (ICT) and event information (IEV) of the first TCP controller 142. It can process connection information (ICT) and event information (IEV). However, it is not limited to this.
도 8A 내지 도 8C는 각각, 본 발명의 실시예에 따른 TCP 컨트롤러(140)와 TCP 연산 로직(180)과의 관계를 나타내는 도면이다.Figures 8A to 8C are diagrams showing the relationship between the TCP controller 140 and the TCP operation logic 180, respectively, according to an embodiment of the present invention.
먼저 도 1 및 도 8A를 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 n개의 TCP 컨트롤러(140) 및 m개의 TCP 연산 로직(180)을 포함할 수 있다. n개의 TCP 컨트롤러(140)는 각각, 제1 제어 신호(XCT1)에 응답하여 연결 정보(ICT) 및 이벤트 정보(IEV)에 대한 연산 동작을 제어할 수 있다. m개의 TCP 연산 로직(180)은 n개의 TCP 컨트롤러(140) 중 대응되는 TCP 컨트롤러로부터 수신되는 연결 정보(ICT) 및 이벤트 정보(IEV)에 근거하여 TCP/IP 연산 동작을 수행할 수 있다.First, referring to FIGS. 1 and 8A, the network interface device 100 according to an embodiment of the present invention may include n TCP controllers 140 and m TCP operation logic 180. Each of the n TCP controllers 140 may control calculation operations for connection information (ICT) and event information (IEV) in response to the first control signal (XCT1). The m TCP operation logic 180 may perform TCP/IP operation operations based on connection information (ICT) and event information (IEV) received from a corresponding TCP controller among the n TCP controllers 140.
연결 정보(ICT) 및 이벤트 정보(IEV)는 제1 메모리(MEM1)로부터 TCP 연산 로직(180)으로 전달될 수 있다. 연결 정보(ICT)가 제2 메모리(MEM2)에 저장되어 있는 경우, 제1 제어 신호(XCT1)에 응답하여 제2 메모리(MEM2)로부터 제1 메모리(MEM1)로 옮겨진 후, TCP 연산 로직(180)으로 출력될 수 있다.Connection information (ICT) and event information (IEV) may be transferred from the first memory (MEM1) to the TCP operation logic 180. If the connection information (ICT) is stored in the second memory (MEM2), it is moved from the second memory (MEM2) to the first memory (MEM1) in response to the first control signal (XCT1), and then the TCP operation logic 180 ) can be output.
이때, n과 m은 같을 수 있다. 즉, TCP 컨트롤러(140)와 TCP 연산 로직(180)은 동일한 개수로 구비될 수 있다. 또한, TCP 컨트롤러(140)와 TCP 연산 로직(180)은 서로 일대일 대응될 수 있다. 예를 들어, 제1 TCP 컨트롤러(142)의 제어에 따라 제1 TCP 연산 로직(182)이 연산 동작이 수행되고, 제n TCP 컨트롤러(140n)의 제어에 따라 제m TCP 연산 로직(180m)이 연산 동작이 수행될 수 있다. 따라서, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 다른 리소스의 제한이 없는 상태에서, n개의 원격 노드와 로컬 로드의 연결에 대해 동시에 병렬 처리가 가능할 수 있다.At this time, n and m may be the same. That is, the TCP controller 140 and TCP operation logic 180 may be provided in the same number. Additionally, the TCP controller 140 and the TCP operation logic 180 may have a one-to-one correspondence with each other. For example, the first TCP operation logic 182 performs an operation under the control of the first TCP controller 142, and the mth TCP operation logic 180m performs an operation under the control of the nth TCP controller 140n. Computational operations may be performed. Accordingly, the network interface device 100 according to an embodiment of the present invention can simultaneously perform parallel processing for connections of n remote nodes and local loads without other resource limitations.
다음으로 도 1 및 도 8B를 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 n개의 TCP 컨트롤러(140) 및 m개의 TCP 연산 로직(180)을 포함할 수 있다. 도 8A와 마찬가지로, n과 m은 같을 수 있다. 즉, TCP 컨트롤러(140)와 TCP 연산 로직(180)은 동일한 개수로 구비될 수 있다. 다만, 도 8B의 n개의 TCP 컨트롤러(140)는 m개의 TCP 연산 로직(180)을 공유할 수 있다.Next, referring to FIGS. 1 and 8B, the network interface device 100 according to an embodiment of the present invention may include n TCP controllers 140 and m TCP operation logic 180. Similar to Figure 8A, n and m may be the same. That is, the TCP controller 140 and TCP operation logic 180 may be provided in the same number. However, n TCP controllers 140 in FIG. 8B may share m TCP operation logic 180.
예를 들어, 제1 TCP 컨트롤러(142)의 제어에 따라 제1 TCP 연산 로직(182) 내지 제m TCP 연산 로직(180m) 중 하나의 TCP 연산 로직에서 연산 동작이 수행되고, 제n TCP 컨트롤러(140n)의 제어에 따라 제1 TCP 연산 로직(182) 내지 제m TCP 연산 로직(180m) 중 하나의 TCP 연산 로직에서 연산 동작이 수행될 수 있다. 다만, 이에 한정되는 것은 아니다. n개의 TCP 컨트롤러(140) 중 일부가 m개의 TCP 연산 로직(180) 중 일부를 공유하고, n개의 TCP 컨트롤러(140) 중 나머지가 m개의 TCP 연산 로직(180) 중 나머지를 공유할 수도 있다.For example, an operation operation is performed in one of the first TCP operation logic 182 to the mth TCP operation logic 180m under the control of the first TCP controller 142, and the nth TCP controller ( An operation may be performed in one of the first TCP operation logic 182 to the mth TCP operation logic 180m according to the control of 140n). However, it is not limited to this. Some of the n TCP controllers 140 may share some of the m TCP operation logic 180, and others among the n TCP controllers 140 may share the remainder of the m TCP operation logic 180.
본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 도 8B와 같이 구비됨으로써, 최적의 스케줄링이 수행되는 상태에서, n개의 원격 노드와 로컬 로드의 연결에 대해 동시에 병렬 처리가 가능할 뿐 아니라, m개의 TCP 연산 로직(180) 중 연산 동작의 수행이 완료된 연산 로직을 통해 새로운 이벤트(EVT)를 처리할 수 있다. 따라서, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)의 처리 성능이 향상될 수 있다.The network interface device 100 according to an embodiment of the present invention is equipped as shown in FIG. 8B, so that not only can simultaneous parallel processing be performed on the connections of n remote nodes and local loads while optimal scheduling is performed, but also m Among the TCP calculation logics 180, a new event (EVT) can be processed through the calculation logic for which the calculation operation has been completed. Accordingly, the processing performance of the network interface device 100 according to an embodiment of the present invention can be improved.
다음으로 도 1 및 도 8C를 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 n개의 TCP 컨트롤러(140) 및 m개의 TCP 연산 로직(180)을 포함할 수 있다. 이때, n과 m은 다를 수 있다. 즉, TCP 컨트롤러(140)와 TCP 연산 로직(180)은 서로 다른 개수로 구비될 수 있다. 이때, n개의 TCP 컨트롤러(140) 중 적어도 하나 이상의 TCP 컨트롤러가 m개의 TCP 연산 로직(180) 중 적어도 둘 이상의 TCP 연산 로직에 공유되거나, n개의 TCP 컨트롤러(140) 중 적어도 두 개의 TCP 컨트롤러가 m개의 TCP 연산 로직(180) 중 적어도 하나 이상의 TCP 연산 로직을 공유할 수 있다.Next, referring to FIGS. 1 and 8C, the network interface device 100 according to an embodiment of the present invention may include n TCP controllers 140 and m TCP operation logic 180. At this time, n and m may be different. That is, the TCP controller 140 and TCP operation logic 180 may be provided in different numbers. At this time, at least one TCP controller among the n TCP controllers 140 is shared by at least two TCP operation logics among the m TCP operation logics 180, or at least two TCP controllers among the n TCP controllers 140 are m. At least one TCP operation logic among the TCP operation logics 180 may be shared.
도 8C는 일 예로, 제1 TCP 컨트롤러(142)의 제어에 따라 제1 TCP 연산 로직(182) 및 제2 TCP 연산 로직(184)에서 연산 동작이 수행되고, 제n-1 TCP 컨트롤러(140n-1) 및 제n TCP 컨트롤러(140n)의 제어에 따라 제m TCP 연산 로직(180m)에서 연산 동작이 수행되는 예를 도시한다. 따라서, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 리소스의 제약하에 최적화된 스케줄링을 수행하여, 그 처리 성능을 향상시킬 수 있다.8C shows, as an example, an operation operation is performed in the first TCP operation logic 182 and the second TCP operation logic 184 under the control of the first TCP controller 142, and the n-1 TCP controller 140n- 1) and shows an example in which an operation is performed in the mth TCP operation logic 180m under the control of the nth TCP controller 140n. Accordingly, the network interface device 100 according to an embodiment of the present invention can improve its processing performance by performing optimized scheduling under resource constraints.
도 8A 내지 도 8C에서는 TCP 컨트롤러(140)와 TCP 연산 로직(180)의 개수가 동일한지 여부에 대해 전제하였으나, TCP 컨트롤러(140)와 TCP 연산 로직(180)은 그 개수의 동일성과 무관하게 도 8A 내지 도 8C 또는 그밖의 다른 연결 관계로 설정될 수 있을 것이다.In FIGS. 8A to 8C, it is assumed whether the number of TCP controllers 140 and TCP operation logic 180 is the same, but the TCP controller 140 and TCP operation logic 180 are shown regardless of whether the numbers are the same. 8A to 8C or other connection relationships may be established.
도 9는 본 발명의 실시예에 따른 네트워크 인터페이스 장치의 동작 방법(900)을 나타내는 순서도이고, 도 10은 도 9의 동작 방법(900)으로 동작하는 네트워크 인터페이스 장치(100)를 나타내는 도면이다.FIG. 9 is a flowchart showing a method 900 of operating a network interface device according to an embodiment of the present invention, and FIG. 10 is a diagram showing a network interface device 100 operating by the operating method 900 of FIG. 9 .
도 9 및 도 10을 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)의 동작 방법(900)은, 연결 정보(ICT)를 TCP 컨트롤러(140)의 제1 메모리(MEM1)에 저장하는 단계(S920), 제1 메모리(MEM1)에 저장된 연결 정보(ICT)에 대응되는 이벤트(EVT)의 발생을 체크하는 단계(S940) 및 연결 정보(ICT)에 대응되는 이벤트(EVT)가 제1 시간 동안 발생하지 아니하는 경우 제1 메모리(MEM1)에 저장된 연결 정보(ICT)를 제2 메모리(MEM2)로 이동시키는 단계(S960)를 포함하여, 초고속 네트워크에서의 데이터 처리를 가속시킬 수 있다.9 and 10, the method 900 of operating the network interface device 100 according to an embodiment of the present invention stores connection information (ICT) in the first memory (MEM1) of the TCP controller 140. A step (S920), a step of checking the occurrence of an event (EVT) corresponding to the connection information (ICT) stored in the first memory (MEM1) (S940), and an event (EVT) corresponding to the connection information (ICT) is generated. Data processing in a high-speed network can be accelerated, including the step (S960) of moving the connection information (ICT) stored in the first memory (MEM1) to the second memory (MEM2) if it does not occur for 1 hour. .
전술된 바와 같이, 연결 정보(ICT)는 이벤트 스케줄러(120)가 수신되는 이벤트(EVT)에 대해 생성하는 정보이다. 제1 메모리(MEM1)는 TCP 컨트롤러(140)의 SRAM일 수 있다. 연결 정보(ICT)를 제2 메모리(MEM2)에 기입하는 동작은 메모리 제어 로직(160)에 의해 수행될 수 있다. 제2 메모리(MEM2)는 TCP 컨트롤러(140)가 구비되는 칩의 외부에 위치하는 DRAM일 수 있다. 제2 메모리(MEM2)는 다수로 구비되고, 다수의 제2 메모리(MEM2) 중 메모리 제어 로직(160)에 의해 연결 정보(ICT)를 기입하고자 하는 메모리가 선택될 수 있다.As described above, connection information (ICT) is information that the event scheduler 120 generates for a received event (EVT). The first memory (MEM1) may be the SRAM of the TCP controller 140. An operation of writing connection information (ICT) into the second memory (MEM2) may be performed by the memory control logic 160. The second memory MEM2 may be a DRAM located outside the chip on which the TCP controller 140 is installed. A plurality of second memories MEM2 are provided, and a memory into which connection information ICT is to be written may be selected by the memory control logic 160 among the plurality of second memories MEM2.
따라서, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100) 및 이의 동작 방법(900)은 한정된 TCP 컨트롤러(140)가 더 많은 로컬 노드와 원격 노드 사이의 연결을 제어할 수 있어, 그 성능이 향상될 수 있다.Accordingly, the network interface device 100 and its operating method 900 according to an embodiment of the present invention allow the limited TCP controller 140 to control connections between more local nodes and remote nodes, thereby improving performance. It can be.
도 11A 및 도 11B는 각각, 도 9의 네트워크 인터페이스 장치의 동작 방법(900)을 더 자세히 나타내는 도면이다.FIGS. 11A and 11B are diagrams illustrating in more detail the method 900 of operating the network interface device of FIG. 9 , respectively.
먼저 도 10 및 도 11A를 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)의 동작 방법(900)은, 이벤트 스케줄러(120)가 이벤트(EVT)를 수신하면(S912), 이벤트(EVT)에 대응되는 연결 정보(ICT)를 생성하거나 기 생성된 연결 정보(ICT)를 업데이트할 수 있다(S914). 이벤트 스케줄러(120)는 연결 정보(ICT)의 저장 위치를 저장하는 맵핑 테이블(MTB)을 포함할 수 있다.First, referring to FIGS. 10 and 11A, in the method 900 of operating the network interface device 100 according to an embodiment of the present invention, when the event scheduler 120 receives an event (EVT) (S912), the event ( Connection information (ICT) corresponding to EVT can be created or already created connection information (ICT) can be updated (S914). The event scheduler 120 may include a mapping table (MTB) that stores the storage location of connection information (ICT).
새로이 생성되는 연결 정보(ICT)에 관한 사항이 맵핑 테이블(MTB)에 존재하지 아니하는 경우, 이벤트 스케줄러(120)는 맵핑 테이블(MTB)을 업데이트하고(S916), 연결 정보(ICT)를 TCP 컨트롤러(140)에 전달할 수 있다(S918). TCP 컨트롤러(140)는 연결 정보(ICT)를 제1 메모리(MEM1)에 저장할 수 있다(S920).If information regarding the newly created connection information (ICT) does not exist in the mapping table (MTB), the event scheduler 120 updates the mapping table (MTB) (S916) and sends the connection information (ICT) to the TCP controller. It can be delivered to (140) (S918). The TCP controller 140 may store connection information (ICT) in the first memory (MEM1) (S920).
이벤트 스케줄러(120)는 주기적으로 연결 정보(ICT)에 대응되는 이벤트(EVT)의 발생을 체크할 수 있다(S940). 쌍을 이루는 원격 노드와 로컬 노드 사이의 연결에 대한 식별자인 연결 정보(ICT)에 대해 연속 또는 불연속적으로 다수의 이벤트(EVT)가 발생할 수 있다. 연결 정보(ICT)에 대응되는 이벤트(EVT)가 제1 시간(t1) 동안 발생하지 아니하는 경우, 이벤트 스케줄러(120)는 제1 제어 신호(XCT1)를 연결 정보(ICT)과 관련된 동작을 제어하고 있는 TCP 컨트롤러(140) 및 메모리 제어 로직(160)에 전달할 수 있다(S942).The event scheduler 120 may periodically check the occurrence of an event (EVT) corresponding to the connection information (ICT) (S940). Multiple events (EVT) may occur continuously or discontinuously for connection information (ICT), which is an identifier for the connection between a paired remote node and a local node. If the event (EVT) corresponding to the connection information (ICT) does not occur during the first time (t1), the event scheduler 120 controls the operation related to the connection information (ICT) by using the first control signal (XCT1). It can be transmitted to the TCP controller 140 and memory control logic 160 (S942).
TCP 컨트롤러(140)는 제1 제어 신호(XCT1)에 응답하여 제1 메모리(MEM1)에 저장된 연결 정보(ICT)를 메모리 제어 로직(160)에 전달할 수 있다(S944). 메모리 제어 로직(160)은 제1 제어 신호(XCT1)에 응답하여 TCP 컨트롤러(140)로부터 수신되는 연결 정보(ICT)를 제2 메모리(MEM2)에 기입할 수 있다(S960).The TCP controller 140 may transmit the connection information (ICT) stored in the first memory (MEM1) to the memory control logic 160 in response to the first control signal (XCT1) (S944). The memory control logic 160 may write connection information (ICT) received from the TCP controller 140 to the second memory (MEM2) in response to the first control signal (XCT1) (S960).
메모리 제어 로직(160)은 연결 정보(ICT)가 제2 메모리(MEM2)에 저장되었음을 나타내는 제2 제어 신호(XCT2)를 이벤트 스케줄러(120)로 전달할 수 있다(S962). 이벤트 스케줄러(120)는 제2 제어 신호(XCT2)에 응답하여, 맵핑 테이블(MTB)을 업데이트할 수 있다(S964).The memory control logic 160 may transmit the second control signal (XCT2) indicating that the connection information (ICT) is stored in the second memory (MEM2) to the event scheduler 120 (S962). The event scheduler 120 may update the mapping table (MTB) in response to the second control signal (XCT2) (S964).
다음으로 도 1 및 도 11B를 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)의 동작 방법(900)은, TCP 컨트롤러(142, 144)가 둘 이상으로 구비되는 경우, 이벤트 스케줄러(120)가 연결 정보(ICT)를 전송하기 전에, 다수의 TCP 컨트롤러(142, 144) 중 어느 TCP 컨트롤러에 연결 정보(ICT)를 전송할지를 선택할 있다(S915). 이벤트 스케줄러(120)는 다수의 TCP 컨트롤러(142, 144) 각각이 제어하는 연결 정보(ICT)의 개수에 근거하여 TCP 컨트롤러를 선택할 수 있다. 예를 들어, 제1 TCP 컨트롤러(142)가 2개의 연결 정보(ICT)를 저장하고 있고 제2 TCP 컨트롤러(144)가 5개의 연결 정보(ICT)를 저장하고 있다면, 이벤트 스케줄러(120)는 새롭게 생성되는 연결 정보(ICT)를 제1 TCP 컨트롤러(142)로 전송할 수 있다(S918).Next, referring to FIGS. 1 and 11B, the method 900 of operating the network interface device 100 according to an embodiment of the present invention includes an event scheduler ( Before 120) transmits the connection information (ICT), it is possible to select which TCP controller among the plurality of TCP controllers 142 and 144 to transmit the connection information (ICT) (S915). The event scheduler 120 may select a TCP controller based on the number of connection information (ICT) controlled by each of the multiple TCP controllers 142 and 144. For example, if the first TCP controller 142 stores two connection information (ICT) and the second TCP controller 144 stores five connection information (ICT), the event scheduler 120 newly The generated connection information (ICT) may be transmitted to the first TCP controller 142 (S918).
도 12A 및 도 12B는 각각 본 발명의 실시예에 따른 연결 정보(ICT)를 제1 메모리(MEM1)로 재전송하는 동작을 설명하기 위한 도면이다.Figures 12A and 12B are diagrams for explaining an operation of retransmitting connection information (ICT) to the first memory (MEM1) according to an embodiment of the present invention, respectively.
먼저 도 10 및 도 12A를 참조하면, 이벤트(EVT)가 이벤트 스케줄러(120)로 수신되면(S912), 이벤트 스케줄러(120)가 맵핑 테이블(MTB)을 검색할 수 있다(S913). 그 결과 해당 이벤트(EVT)가 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)에 대응되는 경우, 이벤트 스케줄러(120)는 메모리 제어 로직(160)으로 제1 제어 신호(XCT1)를 전송할 수 있다(S915). 도 12A(및 도 12B)의 제1 제어 신호(XCT1)는 도 11A(및 도 11B)의 제1 제어 신호(XCT1)와 논리 레벨이 상이하는 등 그 신호 값이 상이할 수 있다.First, referring to FIGS. 10 and 12A, when an event (EVT) is received by the event scheduler 120 (S912), the event scheduler 120 may search the mapping table (MTB) (S913). As a result, if the event (EVT) corresponds to the connection information (ICT) stored in the second memory (MEM2), the event scheduler 120 transmits the first control signal (XCT1) to the memory control logic 160. (S915). The signal value of the first control signal
메모리 제어 로직(160)은 제1 제어 신호(XCT1)에 응답하여, 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)를 제1 메모리(MEM1)로 전송할지 여부를 판단할 수 있다(S970). 예를 들어, 메모리 제어 로직(160)은 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)에 대한 이벤트(EVT)가 제2 시간 내에 수행될 확률이 일정 값 이하인 경우, 메모리 제어 로직(160)은 제1 메모리(MEM1)로 전송하지 아니하고 대기 상태를 유지할 수 있다. 반면, 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)에 대한 이벤트(EVT)가 제2 시간 내에 수행될 확률이 일정 값보다 높은 경우, 메모리 제어 로직(160)은 연결 정보(ICT)를 제1 메모리(MEM1)로 이동시킬 수 있다(S980).The memory control logic 160 may determine whether to transmit the connection information (ICT) stored in the second memory (MEM2) to the first memory (MEM1) in response to the first control signal (XCT1) ( S970). For example, if the probability that an event (EVT) for connection information (ICT) stored in the second memory (MEM2) is performed within a second time is less than or equal to a certain value, the memory control logic 160) may maintain a standby state without transmitting to the first memory (MEM1). On the other hand, when the probability that an event (EVT) for the connection information (ICT) stored in the second memory (MEM2) is performed within the second time is higher than a certain value, the memory control logic 160 controls the connection information (ICT) can be moved to the first memory (MEM1) (S980).
메모리 제어 로직(160)은 연결 정보(ICT)를 제1 메모리(MEM1)로 이동시켰는지 여부를 나타내는 제2 제어 신호(XCT2)를 이벤트 스케줄러(120)에 전달할 수 있다(S982). 이벤트 스케줄러(120)는 제2 제어 신호(XCT2)에 응답하여, 연결 정보(ICT)를 맵핑 테이블(MTB)을 업데이트할 수 있다(S984).The memory control logic 160 may transmit a second control signal (XCT2) indicating whether the connection information (ICT) has been moved to the first memory (MEM1) to the event scheduler 120 (S982). The event scheduler 120 may update the mapping table (MTB) with connection information (ICT) in response to the second control signal (XCT2) (S984).
다음으로 도 1 및 도 12B를 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)의 동작 방법(900)은, TCP 컨트롤러(142, 144)가 둘 이상으로 구비되는 경우, 도 12A와 같이 메모리 제어 로직(160)이 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)를 제1 메모리(MEM1)로 전송(S980)하기 전에, 이벤트 스케줄러(120)는 다수의 제1 메모리(MEM1) 중 어느 TCP 컨트롤러(142, 144)의 제1 메모리로 연결 정보(ICT)를 재이동시킬지를 결정할 수 있다(S990).Next, referring to FIGS. 1 and 12B, the method 900 of operating the network interface device 100 according to an embodiment of the present invention is as shown in FIGS. 12A and 12B when two or more TCP controllers 142 and 144 are provided. Likewise, before the memory control logic 160 transfers the connection information (ICT) stored in the second memory (MEM2) to the first memory (MEM1) (S980), the event scheduler 120 configures a plurality of first memories ( It is possible to determine which of MEM1) to which the connection information (ICT) will be re-moved to the first memory of the TCP controllers 142 and 144 (S990).
구체적으로, 메모리 제어 로직(160)이 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)를 제1 메모리(MEM1)로 전송할지 여부를 판단(S970)한 결과를 이벤트 스케줄러(120)에 제2 제어 신호(XCT2)로 전달할 수 있다(S982). 제2 제어 신호(XCT2)가 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)를 제1 메모리(MEM1)로 전송하는 것을 나타내는 때에, 이벤트 스케줄러(120)는 TCP 컨트롤러(142, 144) 중 맵핑 테이블(MTB)을 검색하여 제1 메모리(MEM1)에 연결 정보(ICT)를 저장할 수 있는 TCP 컨트롤러, 예를 들어 제1 TCP 컨트롤러(142)를 선택할 수 있다(S990). 이하에서는 제1 TCP 컨트롤러(142)가 선택된 경우를 전제한다.Specifically, the memory control logic 160 determines whether to transmit the connection information (ICT) stored in the second memory (MEM2) to the first memory (MEM1) (S970) and sends the result to the event scheduler 120. It can be transmitted as a second control signal (XCT2) (S982). When the second control signal By searching the mapping table (MTB), a TCP controller, for example, the first TCP controller 142, that can store connection information (ICT) in the first memory (MEM1) can be selected (S990). The following assumes that the first TCP controller 142 is selected.
이때, 모든 있는 TCP 컨트롤러(142, 144)의 제1 메모리(MEM1)가 연결 정보(ICT)를 저장할 수 없는 경우, 이벤트 스케줄러(120)는 다수의 TCP 컨트롤러(142, 144) 중 하나의 제1 TCP 컨트롤러(142)를 선택할 수 있다. 이벤트 스케줄러(120)는 LRU(Least Recently Used) 전략 등에 근거하여 TCP 컨트롤러를 선택할 수 있다. 이벤트 스케줄러(120)는 선택된 제1 TCP 컨트롤러(142)로 제1 제어 신호(XCT1)를 전송할 수 있다(S992).At this time, if the first memory (MEM1) of all TCP controllers 142 and 144 cannot store the connection information (ICT), the event scheduler 120 stores the first memory (MEM1) of one of the plurality of TCP controllers 142 and 144. TCP controller 142 can be selected. The event scheduler 120 may select a TCP controller based on a Least Recently Used (LRU) strategy. The event scheduler 120 may transmit the first control signal (XCT1) to the selected first TCP controller 142 (S992).
제1 제어 신호(XCT1)를 수신하는 제1 TCP 컨트롤러(142)는 포함하는 제1 메모리(MEM1)에 저장되어 있는 연결 정보(ICT) 중 하나를 제2 메모리(MEM2)로 전달할 수 있다(S994). 제1 TCP 컨트롤러(142)는 저장하고 있는 연결 정보(ICT) 중 LRU 전략 등을 기준으로 제2 메모리(MEM2)에 전달되는 연결 정보(ICT)를 선택할 수 있다.The first TCP controller 142 that receives the first control signal (XCT1) may transfer one of the connection information (ICT) stored in the first memory (MEM1) to the second memory (MEM2) (S994) ). The first TCP controller 142 may select connection information (ICT) transmitted to the second memory (MEM2) from among the stored connection information (ICT) based on the LRU strategy, etc.
메모리 제어 로직(160)은 제1 메모리(MEM1)에 저장되어 있는 연결 정보(ICT)를 전달한 제1 TCP 컨트롤러(142)로, 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)를 전달할 수 있다(S996). 메모리 제어 로직(160)은 제2 메모리(MEM2)에 저장되어 있던 연결 정보(ICT)가 제1 메모리(MEM1)에 저장되었음을 나타내는 제2 제어 신호(XCT2)를 이벤트 스케줄러(120)로 전송하고(S998), 이벤트 스케줄러(120)는 제2 제어 신호(XCT2)에 응답하여 맵핑 테이블(MTB)을 업데이트할 수 있다(S999).The memory control logic 160 transmits the connection information (ICT) stored in the second memory (MEM2) to the first TCP controller 142, which delivered the connection information (ICT) stored in the first memory (MEM1). (S996). The memory control logic 160 transmits a second control signal (XCT2) indicating that the connection information (ICT) stored in the second memory (MEM2) is stored in the first memory (MEM1) to the event scheduler 120 ( S998), the event scheduler 120 may update the mapping table (MTB) in response to the second control signal (XCT2) (S999).
이렇듯, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100) 및 이의 동작 방법(900)에 의하면, 이벤트 스케줄러(120)와 메모리 제어 로직(160)의 스케줄링을 통하여 연결 정보(ICT)의 저장 위치를 최적화함과 동시에 효율적으로 제1 메모리(MEM1)로 재이동시킴으로써, 데이터 처리 성능을 향상시킬 수 있다.As such, according to the network interface device 100 and its operating method 900 according to an embodiment of the present invention, the storage location of the connection information (ICT) is determined through scheduling of the event scheduler 120 and the memory control logic 160. Data processing performance can be improved by optimizing and at the same time efficiently moving it back to the first memory (MEM1).
도 13은 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)를 나타내는 도면이다.Figure 13 is a diagram showing a network interface device 100 according to an embodiment of the present invention.
도 13을 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)는 이상에서 설명된 실시예의 경우와 달리, 이벤트 스케줄러(120)가 연결 정보(ICT)를 메모리 제어 로직(160)으로 전달할 수 있다. 예를 들어, 원격 노드 및 로컬 노드에 대한 다수의 연결 쌍이 동시 또는 근접한 시간 내에 생성되는 경우, 이벤트 스케줄러(120)는 우선 연결 정보(ICT)가 제2 메모리(MEM2)에 저장되도록 메모리 제어 로직(160)에 전달할 수 있다.Referring to FIG. 13, the network interface device 100 according to an embodiment of the present invention, unlike the embodiment described above, allows the event scheduler 120 to transmit connection information (ICT) to the memory control logic 160. You can. For example, when multiple connection pairs to a remote node and a local node are created at the same time or within close proximity, the event scheduler 120 first configures memory control logic (ICT) to store connection information (ICT) in the second memory (MEM2). 160).
이 경우, 도 12A 또는 도 12B의 동작에 따라, 제2 메모리(MEM2)에 저장되어 있는 연결 정보(ICT)가 처리될 수 있다. 이렇듯, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100)에 의하면, 일정한 리소스를 기준으로 최대한 많은 연결을 처리할 수 있다.In this case, connection information (ICT) stored in the second memory (MEM2) may be processed according to the operation of FIG. 12A or FIG. 12B. In this way, according to the network interface device 100 according to an embodiment of the present invention, as many connections as possible can be processed based on a certain resource.
도 14는 본 발명의 실시예에 따른 서버 장치(1400)를 나타내는 도면이다.Figure 14 is a diagram showing a server device 1400 according to an embodiment of the present invention.
도 14를 참조하면, 본 발명의 실시예에 따른 서버 장치(1400)는 네트워크 인터페이스 모듈(1420) 및 호스트 모듈(1440)을 포함한다. 본 발명의 실시예에 따른 서버 장치(1400)는 비동기식 웹 서버, 스레드(thread) 기반 웹 서버, 포워드 프록시(forward proxy) 또는 리버스 프록시(reverse proxy) 기반 웹 서버 등 다양한 유형의 웹 서버 중 하나일 수 있다. 또는 본 발명의 실시예에 따른 서버 장치(1400)는 웹 어플리케이션 서버(Web Application Server: WAS), 스토리지 서버(storage server), 데이터베이스 서버(database server) 등 다양한 유형의 서버 중 하나일 수 있다.Referring to FIG. 14, the server device 1400 according to an embodiment of the present invention includes a network interface module 1420 and a host module 1440. The server device 1400 according to an embodiment of the present invention may be one of various types of web servers, such as an asynchronous web server, a thread-based web server, and a forward proxy or reverse proxy-based web server. You can. Alternatively, the server device 1400 according to an embodiment of the present invention may be one of various types of servers such as a web application server (WAS), a storage server, and a database server.
네트워크 인터페이스 모듈(1420)은 데이터 패킷(DPK)에 대한 TCP/IP 연산을 수행하는 TCP/IP 하드웨어 스택(1422) 및 TCP/IP 소프트웨어 스택(1424)을 포함한다. TCP/IP 하드웨어 스택(1422)은 도 1 또는 도 10 등의 네트워크 인터페이스 장치(100)를 포함할 수 있다.The network interface module 1420 includes a TCP/IP hardware stack 1422 and a TCP/IP software stack 1424 that perform TCP/IP operations on data packets (DPKs). The TCP/IP hardware stack 1422 may include a network interface device 100 such as that shown in FIG. 1 or FIG. 10 .
TCP/IP 소프트웨어 스택(1424)은 도 1 등에 명시되지는 아니하였으나, 도 7에서 설명된 바와 같이 호스트 모듈(1440)의 운영체제의 TCP/IP 프로토콜 스택을 거치지 아니하고 네트워크 인터페이스 모듈(1420)에서 TCP/IP 연산을 수행하기 위한 TCP/IP 하드웨어 스택(1422)과 호스트 모듈(1440) 사이의 통신을 수행할 수 있다. 예를 들어, TCP/IP 소프트웨어 스택(1444)은 호스트 모듈(1440)이 데이터 전송 요청을 생성한 경우, 호스트 모듈(1440)의 어플리케이션의 send() 와 recv() 등 소켓 API에 대한 API 후킹 동작을 수행할 수 있다.The TCP/IP software stack 1424 is not shown in FIG. 1, etc., but as explained in FIG. 7, the TCP/IP software stack 1424 is used in the network interface module 1420 without going through the TCP/IP protocol stack of the operating system of the host module 1440. Communication can be performed between the TCP/IP hardware stack 1422 and the host module 1440 to perform IP operations. For example, when the host module 1440 generates a data transmission request, the TCP/IP software stack 1444 performs an API hooking operation for the socket API, such as send() and recv() of the application of the host module 1440. can be performed.
도 14의 네트워크 인터페이스 모듈(1420)에 대해 전술된 네트워크 인터페이스 장치(100)에 대한 다양한 실시예가 적용될 수 있다. 예를 들어, 네트워크 인터페이스 모듈(1420)은 도 1에 도시된 바와 같이 적어도 둘 이상의 TCP 컨트롤러(142, 144)를 포함할 수 있다. 또는, 네트워크 인터페이스 모듈(1420)은 도 4에 도시된 바와 같이 제2 메모리(MEM2)와 함께 DPU 칩으로 구비될 수 있다.Various embodiments of the network interface device 100 described above may be applied to the network interface module 1420 of FIG. 14. For example, the network interface module 1420 may include at least two TCP controllers 142 and 144 as shown in FIG. 1 . Alternatively, the network interface module 1420 may be provided as a DPU chip together with the second memory (MEM2) as shown in FIG. 4.
본 발명의 실시예에 따른 서버 장치(1400)에 의하면, 네트워크 인터페이스 모듈(1420)에서 TCP/IP 연산을 수행하여 호스트 모듈(1440)의 CPU의 부하를 줄이면서, 요청되는 이벤트에 대한 연결 정보를 제1 메모리(MEM1) 및 제2 메모리 중 하나에 저장하고 최적화된 스케줄링을 수행함으로써, 초고속 네트워크에서의 데이터 처리가 가속될 수 있다. 또한, 본 발명의 실시예에 따른 서버 장치(1440)에 의하면, 다수의 TCP 컨트롤러를 포함하여, 원격 노드와 로컬 로드의 연결 쌍에 대한 처리를 병렬적으로 수행할 수 있어, 서버 장치(1440)의 데이터 처리 성능을 향상시킬 수 있다.According to the server device 1400 according to an embodiment of the present invention, the network interface module 1420 performs TCP/IP operation to reduce the load on the CPU of the host module 1440 and provides connection information for requested events. By storing data in one of the first memory (MEM1) and the second memory and performing optimized scheduling, data processing in a high-speed network can be accelerated. In addition, according to the server device 1440 according to an embodiment of the present invention, it includes a plurality of TCP controllers and can perform processing for connection pairs of remote nodes and local loads in parallel, so the server device 1440 Data processing performance can be improved.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 예를 들어, 기술되지는 아니하였으나, 본 발명의 실시예에 따른 네트워크 인터페이스 장치(100) 및 서버 장치(1400)는 TCP/IP 외의 ICMP(Internet Control Message Protocol), ARP(Address Resolution Protocol) 등 다른 네트워크 프로토콜을 지원하기 위한 별도의 모듈을 더 포함할 수 있고, 해당 처리 모듈을 통해 연결 계층 라우팅(link layer routing) 등을 수행할 수 있다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Although representative embodiments of the present invention have been described in detail above, those skilled in the art will understand that various modifications can be made to the above-described embodiments without departing from the scope of the present invention. . For example, although not described, the network interface device 100 and the server device 1400 according to an embodiment of the present invention use other protocols such as Internet Control Message Protocol (ICMP) and Address Resolution Protocol (ARP) in addition to TCP/IP. A separate module to support a network protocol may be further included, and link layer routing, etc. may be performed through the corresponding processing module. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the claims and equivalents of the claims as well as the claims described later.

Claims (20)

  1. 요청되는 이벤트에 대한 연결 정보를 생성하고 상기 연결 정보에 대한 스케줄링을 수행하여 제1 제어 신호를 출력하는 이벤트 스케줄러; an event scheduler that generates connection information for a requested event, performs scheduling on the connection information, and outputs a first control signal;
    각각, 상기 이벤트 스케줄러로부터 상기 연결 정보를 수신하고, 상기 연결 정보에 대한 연산 동작을 제어하는 제1 TCP 컨트롤러 및 제2 TCP 컨트롤러; 및a first TCP controller and a second TCP controller, respectively, receiving the connection information from the event scheduler and controlling calculation operations on the connection information; and
    상기 제1 제어 신호에 응답하여, 상기 연결 정보를 제1 메모리로 전송하거나 제2 메모리에 저장하는 메모리 제어 로직;을 포함하는 네트워크 인터페이스 장치. A network interface device comprising: memory control logic that transmits the connection information to a first memory or stores it in a second memory in response to the first control signal.
  2. 청구항 1에 있어서,In claim 1,
    상기 이벤트 스케줄러는, The event scheduler is,
    상기 연결 정보를 상기 제1 TCP 컨트롤러, 상기 제2 TCP 컨트롤러 및 상기 메모리 제어 로직 중 적어도 하나로 전달하는 네트워크 인터페이스 장치. A network interface device that transmits the connection information to at least one of the first TCP controller, the second TCP controller, and the memory control logic.
  3. 청구항 1에 있어서,In claim 1,
    상기 제1 메모리는,The first memory is,
    상기 제1 TCP 컨트롤러 및 상기 제2 TCP 컨트롤러에 포함되는 네트워크 인터페이스 장치. A network interface device included in the first TCP controller and the second TCP controller.
  4. 청구항 1에 있어서,In claim 1,
    상기 제2 메모리는,The second memory is,
    상기 제1 TCP 컨트롤러 및 상기 제2 TCP 컨트롤러가 구비되는 제1 칩의 외부에 위치하는 DRAM(Dynamic Random Access Memory)을 포함하는 네트워크 인터페이스 장치. A network interface device including a dynamic random access memory (DRAM) located outside a first chip equipped with the first TCP controller and the second TCP controller.
  5. 청구항 4에 있어서,In claim 4,
    상기 메모리 제어 로직은, The memory control logic is,
    상기 제2 메모리와 함께 제2 칩에 구비되는 네트워크 인터페이스 장치.A network interface device provided on a second chip together with the second memory.
  6. 청구항 1에 있어서,In claim 1,
    상기 메모리 제어 로직은, The memory control logic is,
    상기 제1 TCP 컨트롤러 및 상기 제2 TCP 컨트롤러와 동일한 제1 칩에 구비되는 네트워크 인터페이스 장치. A network interface device provided on the same first chip as the first TCP controller and the second TCP controller.
  7. 청구항 1에 있어서,In claim 1,
    상기 제1 메모리에 저장된 상기 연결 정보는,The connection information stored in the first memory is,
    대응되는 이벤트가 제1 시간 동안 발생하지 아니하는 경우, 상기 제2 메모리로 이동되는 네트워크 인터페이스 장치. If a corresponding event does not occur for a first time, the network interface device is moved to the second memory.
  8. 청구항 1에 있어서,In claim 1,
    상기 메모리 제어 로직은, The memory control logic is,
    상기 제2 메모리에 저장된 상기 연결 정보에 대한 이벤트가 발생하는 경우, 상기 연결 정보의 상기 제1 메모리로의 이동 여부를 나타내는 제2 제어 신호를 생성하는 네트워크 인터페이스 장치. A network interface device that generates a second control signal indicating whether to move the connection information to the first memory when an event regarding the connection information stored in the second memory occurs.
  9. 청구항 8에 있어서,In claim 8,
    상기 제2 메모리에 저장된 상기 연결 정보는,The connection information stored in the second memory is,
    상기 제1 TCP 컨트롤러의 상기 제1 메모리 및 상기 제2 TCP 컨트롤러의 상기 제1 메모리 중 하나의 제1 메모리로 이동되는 네트워크 인터페이스 장치.A network interface device that is moved to a first memory of one of the first memory of the first TCP controller and the first memory of the second TCP controller.
  10. 청구항 1에 있어서,In claim 1,
    각각, 상기 제1 TCP 컨트롤러 및 상기 제2 TCP 컨트롤러 중 대응되는 TCP 컨트롤러로부터 포함하는 제1 메모리에 저장되는 상기 연결 정보 및 상기 연결 정보에 대응되는 이벤트 정보를 수신하여 연산을 수행하는 제1 TCP 연산 로직 및 제2 TCP 연산 로직;을 더 포함하는 네트워크 인터페이스 장치. A first TCP operation that performs an operation by receiving the connection information and event information corresponding to the connection information stored in a first memory from a corresponding TCP controller among the first TCP controller and the second TCP controller, respectively. A network interface device further comprising: logic and second TCP operation logic.
  11. 청구항 10에 있어서,In claim 10,
    각각, 상기 제1 제어 신호에 응답하여 상기 연결 정보 및 상기 이벤트 정보에 대한 연산 동작을 제어하는 제3 TCP 컨트롤러 내지 제n TCP 컨트롤러; 및third to nth TCP controllers, respectively, controlling calculation operations on the connection information and the event information in response to the first control signal; and
    각각, 상기 제3 TCP 컨트롤러 내지 제n TCP 컨트롤러 중 대응되는 TCP 컨트롤러로부터 포함하는 제1 메모리에 저장되는 상기 연결 정보 및 상기 이벤트 정보를 수신하여 연산을 수행하는 제1 TCP 연산 로직 내지 제m TCP 연산 로직;을 더 포함하는 네트워크 인터페이스 장치. First TCP operation logic to m-th TCP operation logic that performs an operation by receiving the connection information and the event information stored in the first memory included from the corresponding TCP controller among the third TCP controller to the n-th TCP controller, respectively. A network interface device further comprising logic.
  12. 청구항 11에 있어서,In claim 11,
    상기 n과 상기 m은 상이한 네트워크 인터페이스 장치.The n and the m are different network interface devices.
  13. 청구항 1에 있어서,In claim 1,
    상기 이벤트 스케줄러는, The event scheduler is,
    상기 연결 정보의 저장 위치에 대한 맵핑 테이블;을 포함하는 네트워크 인터페이스 장치.A network interface device including a mapping table for a storage location of the connection information.
  14. 청구항 1에 있어서,In claim 1,
    네트워크 인터페이스를 통해 수신되는 데이터 패킷(data packet)을 파싱(parsing)하여 상기 데이터 패킷의 유저 데이터를 호스트 인터페이스를 통해 출력하고, 상기 데이터 패킷의 메타 데이터를 상기 이벤트 스케줄러에 이벤트로 전송하는 수신 처리 모듈; 및A reception processing module that parses a data packet received through a network interface, outputs user data of the data packet through a host interface, and transmits metadata of the data packet as an event to the event scheduler. ; and
    상기 호스트 인터페이스를 통해 수신되는 데이터에 상기 연결 정보에 대응되는 헤더를 생성하고 데이터 패킷으로 출력하는 송신 처리 모듈;을 더 포함하는 네트워크 인터페이스 장치. A transmission processing module that generates a header corresponding to the connection information in data received through the host interface and outputs the header as a data packet.
  15. TOE(TCP/IP Offload Engine) 기반 네트워크 인터페이스 장치의 동작 방법에 있어서, In the method of operating a TOE (TCP/IP Offload Engine)-based network interface device,
    이벤트에 대응되는 연결 정보를 TCP 컨트롤러의 제1 메모리에 저장하는 단계; storing connection information corresponding to the event in a first memory of the TCP controller;
    상기 제1 메모리에 저장된 연결 정보에 대응되는 이벤트의 발생을 체크하는 단계; 및 Checking occurrence of an event corresponding to connection information stored in the first memory; and
    상기 연결 정보에 대응되는 이벤트가 제1 시간 동안 발생하지 아니하는 경우, 상기 제1 메모리에 저장된 연결 정보를 제2 메모리로 이동시키는 단계;를 포함하는 네트워크 인터페이스 장치의 동작 방법. If an event corresponding to the connection information does not occur for a first time, moving the connection information stored in the first memory to a second memory.
  16. 청구항 15에 있어서, In claim 15,
    상기 연결 정보를 제1 메모리에 저장하는 단계는, The step of storing the connection information in the first memory includes:
    다수의 상기 TCP 컨트롤러 중 하나를 선택하는 단계; 및 selecting one of the plurality of TCP controllers; and
    상기 연결 정보를 상기 선택된 TCP 컨트롤러의 제 1 메모리에 저장하는 단계;를 포함하는 네트워크 인터페이스 장치의 동작 방법.A method of operating a network interface device comprising: storing the connection information in a first memory of the selected TCP controller.
  17. 청구항 15에 있어서, In claim 15,
    상기 제2 메모리로 이동된 연결 정보에 대응되는 이벤트가 발생하는 경우, 상기 제2 메모리로 이동된 연결 정보를 상기 제1 메모리로 전송할지 여부를 판단하는 단계;When an event corresponding to the connection information moved to the second memory occurs, determining whether to transmit the connection information moved to the second memory to the first memory;
    다수의 상기 TCP 컨트롤러 중 하나를 선택하는 단계; 및selecting one of the plurality of TCP controllers; and
    상기 제2 메모리로 이동된 연결 정보를 상기 선택된 TCP 컨트롤러의 제1 메모리로 전송하는 단계;를 더 포함하는 네트워크 인터페이스 장치의 동작 방법.A method of operating a network interface device further comprising transmitting the connection information moved to the second memory to the first memory of the selected TCP controller.
  18. 수신되는 데이터 패킷(data packet)에 대한 TCP/IP 연산을 수행하는 TCP/IP 하드웨어 스택 및 TCP/IP 소프트웨어 스택을 포함하는 네트워크 인터페이스 모듈; 및A network interface module including a TCP/IP hardware stack and a TCP/IP software stack that performs TCP/IP operations on received data packets; and
    상기 네트워크 인터페이스 모듈로부터 상기 데이터 패킷의 데이터를 수신하여 처리하는 호스트 모듈;을 포함하고, A host module that receives and processes the data of the data packet from the network interface module,
    상기 네트워크 인터페이스 모듈은, The network interface module is,
    상기 데이터 패킷에 대응되는 연결 정보를 TCP 컨트롤러의 제1 메모리에 저장하거나, 메모리 제어 로직에 의해 제어되는 제2 메모리에 저장하는 서버 장치. A server device that stores connection information corresponding to the data packet in a first memory of a TCP controller or in a second memory controlled by memory control logic.
  19. 청구항 18에 있어서, In claim 18,
    상기 네트워크 인터페이스 모듈은, The network interface module is,
    상기 TCP 컨트롤러를 다수로 구비하는 서버 장치.A server device comprising a plurality of the TCP controllers.
  20. 청구항 18에 있어서, In claim 18,
    상기 메모리 제어 로직은, The memory control logic is,
    상기 제2 메모리와 동일한 칩에 구비되는 서버 장치.A server device provided on the same chip as the second memory.
PCT/KR2022/016096 2022-10-20 2022-10-20 Network interface device, operating method thereof, and server device including same WO2024085281A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/016096 WO2024085281A1 (en) 2022-10-20 2022-10-20 Network interface device, operating method thereof, and server device including same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/016096 WO2024085281A1 (en) 2022-10-20 2022-10-20 Network interface device, operating method thereof, and server device including same

Publications (1)

Publication Number Publication Date
WO2024085281A1 true WO2024085281A1 (en) 2024-04-25

Family

ID=90737855

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/016096 WO2024085281A1 (en) 2022-10-20 2022-10-20 Network interface device, operating method thereof, and server device including same

Country Status (1)

Country Link
WO (1) WO2024085281A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7738500B1 (en) * 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
US7949792B2 (en) * 2004-02-27 2011-05-24 Cisco Technology, Inc. Encoding a TCP offload engine within FCP
US8248939B1 (en) * 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US8549152B2 (en) * 2002-08-30 2013-10-01 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US10158575B2 (en) * 2015-06-17 2018-12-18 Citrix Systems, Inc. System for bandwidth optimization with high priority traffic awareness and control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549152B2 (en) * 2002-08-30 2013-10-01 Broadcom Corporation System and method for TCP/IP offload independent of bandwidth delay product
US7949792B2 (en) * 2004-02-27 2011-05-24 Cisco Technology, Inc. Encoding a TCP offload engine within FCP
US8248939B1 (en) * 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US7738500B1 (en) * 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
US10158575B2 (en) * 2015-06-17 2018-12-18 Citrix Systems, Inc. System for bandwidth optimization with high priority traffic awareness and control

Similar Documents

Publication Publication Date Title
US6115751A (en) Technique for capturing information needed to implement transmission priority routing among heterogeneous nodes of a computer network
US7974272B2 (en) Remote control of a switching node in a stack of switching nodes
JP3309336B2 (en) Method and apparatus for providing a three-way connection between a mobile computing device, a fixed computing device, and a computer network
US6154743A (en) Technique for accessing heterogeneous directory services in an APPN environment
CN110022264B (en) Method for controlling network congestion, access device and computer readable storage medium
EP2003823B1 (en) Autonegotiation over an interface for which no autonegotiation standard exists
EP2628323A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
WO2011142583A2 (en) Method and system for isochronous communication in audio/video networks
WO2024085281A1 (en) Network interface device, operating method thereof, and server device including same
WO2020055149A1 (en) Credit-based multipath data transmission method for load balancing of data center network
CN113225376B (en) Ethernet frame and SDN data frame adapting method based on FPGA
US7461142B2 (en) Method and apparatus for address management in a network device
KR102535531B1 (en) TOE-Based Network Interface Device, Operation Method thereof, and Server Device Including the Same
Cisco SDLLC: SDLC to LLC2 Media Translation
Cisco SDLLC: SDLC to LLC2 Media Translation
Cisco SDLLC: SDLC to LLC2 Media Translation
Cisco SDLLC: SDLC to LLC2 Media Translation
Cisco SDLLC: SDLC to LLC2 Media Translation
Cisco SDLLC: SDLC to LLC2 Media Translation
Cisco SDLLC: SDLC to LLC2 Media Translation
Cisco SDLLC: SDLC to LLC2 Media Translation
Cisco Configuring Serial Tunneling in SDLC and HDLC Environments
Cisco Configuring Serial Tunneling in SDLC and HDLC Environments
Cisco Configuring Serial Tunneling in SDLC and HDLC Environments
JP2001144793A (en) High speed/high reliability ether transmission system and i/f device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22962843

Country of ref document: EP

Kind code of ref document: A1