KR20140125311A - 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법 - Google Patents

멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법 Download PDF

Info

Publication number
KR20140125311A
KR20140125311A KR20140045571A KR20140045571A KR20140125311A KR 20140125311 A KR20140125311 A KR 20140125311A KR 20140045571 A KR20140045571 A KR 20140045571A KR 20140045571 A KR20140045571 A KR 20140045571A KR 20140125311 A KR20140125311 A KR 20140125311A
Authority
KR
South Korea
Prior art keywords
network interface
interface card
packet data
host processor
traffic processing
Prior art date
Application number
KR20140045571A
Other languages
English (en)
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 주식회사 엔피코어
Publication of KR20140125311A publication Critical patent/KR20140125311A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

멀티 코어를 가진 네트워크 인터페이스 카드와 호스트 프로세서가 결합하여 대용량 트래픽을 처리하는 장치 및 방법이 개시된다. 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치는, 복수의 코어를 포함하는 멀티 코어 프로세서와, 멀티 코어 프로세서와 연결되어 패킷 데이터를 송수신하는 PCIe(Peripheral Component Interconnect Express) 버스 라인부를 포함하는 네트워크 인터페이스 카드(Network Interface Card)와, PCIe 버스 라인부와 연결되는 PCIe 슬롯부를 통해 패킷 데이터를 송수신하는 호스트 프로세서를 포함한다. 따라서, 네트워크 인터페이스 카드는 호스트 프로세서를 사용하는 메인 보드의 PCIe 슬롯부에 연결되어 기존의 시스템을 그대로 사용하면서 성능을 향상시킬 수 있다.

Description

멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법{APPARATUS AND METHOD FOR PROCESSING TRAFFIC USING NETWORK INTERFACE CARD WITH MULTI-CORE}
본 발명은 트래픽 처리에 관한 것으로, 더욱 상세하게는 멀티 코어를 가진 네트워크 인터페이스 카드와 호스트 프로세서가 결합하여 대용량 트래픽을 처리하는 장치 및 방법에 관한 것이다.
고속 네트워킹이 필수적으로 되어가는 현대 컴퓨팅 시스템에서, 하나의 시스템 내에 일반적으로 다수의 프로세싱 코어(즉, 프로세서)를 사용한다. 멀티 코어 프로세서는 보다 강력한 성능과 소비 전력 절감, 그리고 여러 개의 작업을 보다 효율적으로 한 번에 처리하기 위해 두 개 이상의 코어가 결합되어 동시에 인터럽트를 수신하고 패킷을 처리한다.
또한, 네트워크 상의 패킷량이 지속적으로 증가하면서 이러한 패킷을 처리해야 하는 네트워크 장비들도 지속적으로 성능 향상이 요구되고 있으며, 성능 향상을 위해 네트워크 장비에도 멀티 코어 프로세서의 사용이 증가하고 있다.
한편, 최근에는 고속으로 대용량의 데이터 전송하기 위하여 직렬 구조의 버스 방식인 PCIe(Peripheral Component Interconnect Express) 버스가 많이 사용되고 있다.
PCIe 버스 방식의 데이터 전송 장치는 데이터 전송을 위하여 전송 데이터를 작은 데이터 단위로 구성된 패킷으로 분할하여 순차적으로 전송하는데, 패킷은 크게 헤더(HEADER) 필드와 데이터(DATA) 필드로 구분할 수 있다.
일반적으로 패킷의 헤더 필드에는 명령 타입, 데이터 길이, 주소 등의 제어 정보가 저장되며, 데이터 필드에는 전송하여야 할 데이터가 저장된다.
또한, PCIe 버스 방식을 이용한 패킷 송수신 장치는 트랜지스터의 고집적화로 인하여 반도체 소자가 CPU 블록, 통신 블록 등의 고집적 블록으로 구성되므로, 각 블록마다 메모리 주소가 할당되어 하나의 반도체 소자를 이용하여 데이터 통신을 하는 경우에도 다양한 주소를 사용한다.
그러나, 이러한 패킷 송수신 장치는 다양한 주소를 이용하여 데이터 통신을 하는 경우, 소량의 데이터 통신이 많아지므로 전송 효율이 떨어질 수 있다. 즉, 데이터 통신 시에 인터럽트를 많이 발생하는 경우에 오버헤드로 인해 성능이 저하되는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 멀티 코어를 가진 네트워크 인터페이스 카드를 이용하여 대용량의 트래픽을 처리하는 장치를 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 멀티 코어를 가진 네트워크 인터페이스 카드를 이용하여 대용량의 트래픽을 처리하는 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치는, 복수의 코어를 포함하는 멀티 코어 프로세서와, 멀티 코어 프로세서와 연결되어 패킷 데이터를 송수신하는 PCIe(Peripheral Component Interconnect Express) 버스 라인부를 포함하는 네트워크 인터페이스 카드(Network Interface Card)와, PCIe 버스 라인부와 연결되는 PCIe 슬롯부를 통해 패킷 데이터를 송수신하는 호스트 프로세서를 포함한다.
여기에서, 상기 멀티 코어 프로세서는, N×N 개의 코어 프로세서를 포함할 수 있다.
여기에서, 상기 N은, 6일 수 있다.
여기에서, 상기 네트워크 인터페이스 카드는, 패킷 데이터에 대한 요약 정보를 생성하여 호스트 프로세서로 전달할 수 있다.
여기에서, 상기 요약 정보는, IP 주소 정보 및 포트(port) 정보를 포함할 수 있다.
여기에서, 상기 호스트 프로세서는, 요약 정보에 기반하여 패킷 데이터를 호스트 메모리에 저장할지 여부를 결정할 수 있다.
여기에서, 상기 호스트 프로세서는, PCIe 슬롯부를 통하여 수신한 패킷 데이터에 대한 변조 여부를 체크섬(checksum)을 이용하여 확인할 수 있다.
여기에서, 상기 호스트 프로세서는, 패킷 데이터가 변조되지 않은 것으로 확인된 경우, 네트워크 인터페이스 카드 상에 존재하는 패킷 데이터를 재송신하도록 할 수 있다.
여기에서, 상기 호스트 프로세서는, 패킷 데이터를 적어도 하나의 채널을 통하여 호스트 메모리에 저장할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법은, 호스트 프로세서 및 호스트 프로세서와 연동하는 네트워크 인터페이스 카드에 의해 수행된다.
또한, 상기 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법은, 네트워크 인터페이스 카드가 패킷 데이터에 대한 요약 정보를 생성하여 호스트 프로세서로 전달하는 단계와, 호스트 프로세서가 요약 정보에 기반하여 패킷 데이터를 호스트 메모리에 저장할지 여부를 결정하는 단계를 포함한다.
여기에서, 상기 네트워크 인터페이스 카드는, 복수의 코어를 포함하는 멀티 코어 프로세서와, 멀티 코어 프로세서와 연결되어 패킷 데이터를 송수신하는 PCIe(Peripheral Component Interconnect Express) 버스 라인부를 포함할 수 있다.
여기에서, 상기 호스트 프로세서는, PCIe 버스 라인부와 연결되는 PCIe 슬롯부를 통해 패킷 데이터를 송수신할 수 있다.
상기와 같은 본 발명의 실시예에 따른 네트워크 인터페이스 카드는 호스트 프로세서를 사용하는 메인 보드의 PCIe 슬롯부에 연결되어 기존의 시스템을 그대로 사용하면서 성능을 향상시킬 수 있다.
또한, 본 발명의 실시예에 따른 호스트 프로세서는 패킷 데이터에 대한 요약 정보만을 이용하여 해당 패킷 데이터를 호스트 메모리에 복사할지 여부를 결정할 수 있으며, 이를 통하여 대용량 패킷 데이터에 대한 처리 속도를 향상시킬 수 있다.
또한, 본 발명에 실시예에 따르면, 데이터 통신 시에 인터럽트(interrupt)가 많이 발생하는 경우에 오버헤드로 인해 성능이 저하될 수 있는 PCIe 버스의 단점을 보안할 수 있다.
또한, 본 발명의 실시예에 따르면, PCIe 슬롯부를 통하여 수신한 패킷 데이터를 NIC를 통하여 재송신해야 경우, 패킷 데이터의 변조 여부를 확인하여 데이터 처리 속도를 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 네트워크 인터페이스 카드를 설명하기 위한 예시도이다.
도 2는 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치를 설명하기 위한 예시도이다.
도 3은 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치의 구현 예를 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 네트워크 인터페이스 카드를 설명하기 위한 예시도이고, 도 2는 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치를 설명하기 위한 예시도이며, 도 3은 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치의 구현 예를 설명하기 위한 개념도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 카드(Network Interface Card, NIC)(100)는 복수의 코어(111)를 포함하는 멀티 코어 프로세서(110)와, 멀티 코어 프로세서(110)와 연결되어 패킷 데이터를 송수신하는 PCIe(Peripheral Component Interconnect Express) 버스 라인부(120)를 포함한다.
상세하게는, 본 발명의 실시예에 따른 NIC(100)에는 N×N 개의 코어(111)를 포함하는 멀티 코어 프로세서(110)가 장착될 수 있다. 예를 들어, 멀티 코어 프로세서(110)는 6×6=36 개의 코어(111)를 포함할 수 있다.
특히, PCIe 버스 라인부(120)는 호스트 프로세서(210)에 연동하는 PCIe 슬롯부(220)와 연결될 수 있다. 여기서, 호스트 프로세서(210)는 호스트 쪽의 코어 프로세서로써 Window 또는 Linux 등의 OS를 지원할 수 있다.
예를 들어, 본 발명의 실시예에 따르면, 멀티 코어 프로세서(110)를 가진 NIC(100)는 36개의 코어(111)를 장착한 랜카드로 20Gbps에 해당하는 대용량 트래픽을 처리할 수 있는 보드일 수 있다. 또한, NIC(100)는 호스트 프로세서(210)(예컨대, 인텔 CPU)를 사용하는 메인 보드의 PCIe 슬롯부(220)에 연결되어 기존의 시스템을 그대로 사용하면서 성능을 향상 시킬 수 있다.
더욱 상세하게는, NIC(100)는 패킷 데이터를 송신 또는 수신할 수 있다. NIC(100)는 수신한 패킷 데이터를 호스트 프로세서(210)를 통하여 호스트 메모리에 전달할 수 있다. 또한, NIC(100)는 호스트 측에서 수신한 패킷 데이터를 외부로 송신할 수 있다.
본 발명의 실시예에 따른 NIC(100)는 멀티 코어를 이용하여 패킷 데이터를 분산 및 병렬 처리하여 송수신을 수행할 수 있으며, 이를 통하여 데이터 통신 시에 발생하는 인터럽트(interrupt)로 인한 오버헤드를 줄일 수 있다.
도 2를 참조하면, 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치는 도 1에 도시된 NIC와 호스트 측에 위치하는 호스트 프로세서(210) 및 PCIe 슬롯부(220)를 포함하여 구성될 수 있다.
또한, NIC(100)는 패킷 데이터에 대한 요약 정보를 생성하여 호스트 프로세서(210)로 전달할 수 있다. 여기서, 요약 정보는 패킷 데이터에 대한 IP 주소 정보 및 포트(port) 정보를 의미할 수 있다.
호스트 프로세서(210)는 NIC(100)로부터 수신한 요약 정보에 기반하여 패킷 데이터를 호스트 메모리에 저장할지 여부를 결정할 수 있다. 예를 들어, NIC(100)로부터 수신한 모든 데이터 패킷을 호스트 메모리에 복사할 경우, 이는 데이터 처리의 속도를 지연시키는 원인이 된다. 따라서, 호스트 프로세서(210)는 패킷 데이터에 대한 요약 정보만을 이용하여 해당 패킷 데이터를 호스트 메모리에 복사할지 여부를 결정할 수 있으며, 이를 통하여 대용량 패킷 데이터에 대한 처리 속도를 향상시킬 수 있다.
더 나아가, 본 발명의 실시예에 따른 호스트 프로세서(210)는 PCIe 슬롯부(220)를 통하여 수신한 패킷 데이터에 대한 변조 여부를 체크섬(checksum)을 이용하여 확인할 수 있다.
예를 들어, PCIe 슬롯부(220)를 통하여 수신한 패킷 데이터를 NIC(100)를 통하여 재송신해야 경우가 발생할 수 있다. 이러한 경우, 패킷 데이터의 변조 여부를 확인하여 데이터 처리 속도를 향상시킬 수 있다.
즉, 호스트 프로세서(210)는 패킷 데이터가 변조되지 않은 것으로 확인된 경우, NIC(100) 상에 존재하는 패킷 데이터를 재송신하도록 할 수 있다. 반면에, 호스트 프로세서(210)는 패킷 데이터가 변조된 것으로 확인된 경우, 변조된 패킷 데이터를 PCIe 슬롯부(220)를 통하여 재전송할 수 있다.
또한, 호스트 프로세서(210)는 NIC(100)로부터 수신한 패킷 데이터를 적어도 하나의 채널을 통하여 호스트 메모리에 저장할 수 있다. 상세하게는, 패킷 데이터를 복사하는 링 버퍼(ring buffer)를 다채널(예컨대, 16채널)로 구성하여 특정 패킷 데이터의 처리가 다른 패킷 데이터보다 처리 시간이 지연이 되는 경우에 먼저 특허 패킷 데이터에 대한 처리가 될 수 있도록 병렬화하는 구성을 통하여 전체적인 성능 저하를 최소화할 수 있다.
따라서, 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치는, 기존의 컴퓨터 시스템의 구성을 변경시키지 않고 사용하면서 데이터 처리 성능을 향상시킬 수 있는 것이며, 성능 대비 저전력을 소모할 수 있다.
특히, 본 발명에 실시예에 따르면, 데이터 통신 시에 인터럽트(interrupt)가 많이 발생하는 경우에 오버헤드로 인해 성능이 저하될 수 있는 PCIe 버스의 단점을 보안할 수 있다.
예컨대, 패킷 데이터를 각각 보내지 않고 모아서 보내어 인터럽트를 최소화하여 성능을 향상시킴으로써 호스트의 리소스 사용을 최소화할 수 있다. 멀티 코어가 분산 및 병렬 처리를 수행할 수 있는 장점을 가지고 있으므로, 트래픽을 처리하는 태스크와 PCIe 버스를 통해 패킷 데이터를 송수신하는 태스크를 분리하여 멀티 코어의 장점을 활용할 수 있다.
또한, PCIe 버스를 통해 호스트로 패킷 데이터를 송수신하는 경우에, 다채널 DMA(Direct Memory Access)을 구성하여 PCIe 버스를 효율적으로 사용하여 성능을 극대화할 수 있다.
도 3는 본 발명의 실시예에 따른 멀티 코어 프로세서(110)를 포함하는 NIC를 'Smart NIC'로 명명하고, 호스트 프로세서(210)를 'CPU'로 명명하여 나타낸다.
도 3을 참조하면, Smart NIC는 데이터를 송수신하는 수신단(Rx)와 송신단(Tx)를 포함하여 구성될 수 있다.
도 3 (a)는 다중의 수신단(Rx)를 포함하는 Smart NIC를 나타낸다. 즉, Smart NIC는 패킷 데이터를 수신할 수 있으며, PCIe 버스를 이용하여 패킷 데이터를 호스트 측의 CPU로 전달할 수 있다.
도 3 (b)는 다중의 수신단(Rx) 및 송신단(Tx)을 포함하는 Smart NIC를 나타낸다. 즉, Smart NIC는 패킷 데이터를 수신할 수 있으며, PCIe 버스를 이용하여 패킷 데이터를 호스트 측의 CPU로 전달할 수 있다. 또한, Smart NIC는 PCIe 버스를 이용하여 호스트 측의 CPU로부터 패킷 데이터를 수신하여 송신할 수 있다. 여기서, CPU로부터 수신한 패킷 데이터는 변조된 패킷 데이터일 수 있다.
도 3 (c)는 다중의 수신단(Rx) 및 송신단(Tx)을 포함하는 Smart NIC를 나타낸다. 즉, Smart NIC는 패킷 데이터를 수신할 수 있으며, PCIe 버스를 이용하여 패킷 데이터를 호스트 측의 CPU로 전달할 수 있다. 다만, 도 3 (c)에 따르면, Smart NIC는 PCIe 버스를 이용하여 호스트 측의 CPU로부터 패킷 데이터를 수신하여 송신하지 않고, Smart NIC 상에 존재하는 패킷 데이터를 송신할 수 있다.
상술한 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치의 구성을 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
도 4는 본 발명의 일 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법을 설명하기 위한 흐름도이고, 도 5는 본 발명의 다른 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법을 설명하기 위한 흐름도이다.
먼저, 본 발명의 실시예에 따른 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법은, 상술한 멀티 코어를 가진 네트워크 인터페이스 카드(100)를 이용한 트래픽 처리 장치에 의해 수행될 수 있다.
도 4를 참조하면, 본 발명의 실시예에 따른 네트워크 인터페이스 카드(Network Interface Card, NIC)(100)는 패킷 데이터를 수신하여 패킷 데이터에 대한 요약 정보를 생성할 수 있다(S410). 여기서, 요약 정보는 패킷 데이터에 대한 IP 주소 정보 및 포트(port) 정보를 포함할 수 있다.
NIC(100)는 생성된 요약 정보를 호스트 프로세서(210)로 전달할 수 있다(S420).
호스트 프로세서(210)는 NIC(100)로부터 수신한 요약 정보에 기반하여 패킷 데이터를 호스트 메모리에 저장할지 여부를 결정할 수 있다(S430). 예를 들어, NIC(100)로부터 수신한 모든 데이터 패킷을 호스트 메모리에 복사할 경우, 이는 데이터 처리의 속도를 지연시키는 원인이 된다. 즉, NIC(100)로부터 수신한 요약 정보에 기반하여 패킷 데이터를 호스트 메모리에 저장하는 것으로 결정한 경우에만, 해당 패킷 데이터를 호스트 메모리에 저장할 수 있다(S440).
따라서, 호스트 프로세서(210)는 패킷 데이터에 대한 요약 정보만을 이용하여 해당 패킷 데이터를 호스트 메모리에 복사할지 여부를 결정할 수 있으며, 이를 통하여 대용량 패킷 데이터에 대한 처리 속도를 향상시킬 수 있다.
도 5를 참조하여, PCIe 슬롯부(220)를 통하여 수신한 패킷 데이터를 NIC를 통하여 재송신해야 하는 경우를 설명한다.
호스트 프로세서(210)는 PCIe 슬롯부(220)를 통하여 수신한 패킷 데이터에 대한 변조 여부를 체크섬(checksum)을 이용하여 확인할 수 있다(S510). 즉, 패킷 데이터에 대한 변조 여부를 판단할 수 있다(S520).
예를 들어, PCIe 슬롯부(220)를 통하여 수신한 패킷 데이터를 NIC(100)를 통하여 재송신해야 경우가 발생할 수 있다. 이러한 경우, 패킷 데이터의 변조 여부를 확인하여 데이터 처리 속도를 향상시킬 수 있다.
즉, 호스트 프로세서(210)는 패킷 데이터가 변조되지 않은 것으로 확인된 경우, 네트워크 인터페이스 카드 상에 존재하는 패킷 데이터를 재송신하도록 할 수 있다(S530).
반면에, 호스트 프로세서(210)는 패킷 데이터가 변조된 것으로 확인된 경우, 변조된 패킷 데이터를 PCIe 슬롯부(220)를 통하여 재전송할 수 있다(S540).
더 나아가, 호스트 프로세서(210)는 NIC(100)로부터 수신한 패킷 데이터를 적어도 하나의 채널을 통하여 호스트 메모리에 저장할 수 있다. 상세하게는, 패킷 데이터를 복사하는 링 버퍼(ring buffer)를 다채널(예컨대, 16채널)로 구성하여 특정 패킷 데이터의 처리가 다른 패킷 데이터보다 처리 시간이 지연이 되는 경우에 먼저 특허 패킷 데이터에 대한 처리가 될 수 있도록 병렬화하는 구성을 통하여 전체적인 성능 저하를 최소화할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 네트워크 인터페이스 카드 110: 멀티 코어 프로세서
111: 코어 120: PCIe 버스 라인부
210: 호스트 프로세서 220: PCIe 슬롯부

Claims (13)

  1. 복수의 코어를 포함하는 멀티 코어 프로세서; 및
    상기 멀티 코어 프로세서와 연결되어 패킷 데이터를 송수신하는 PCIe(Peripheral Component Interconnect Express) 버스 라인부를 포함하는 네트워크 인터페이스 카드(Network Interface Card)와,
    상기 PCIe 버스 라인부와 연결되는 PCIe 슬롯부를 통해 상기 패킷 데이터를 송수신하는 호스트 프로세서를 포함하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치.
  2. 청구항 1에 있어서,
    상기 멀티 코어 프로세서는,
    N×N 개의 코어 프로세서를 포함하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치.
  3. 청구항 2에 있어서,
    상기 N은,
    6인 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치.
  4. 청구항 1에 있어서,
    상기 네트워크 인터페이스 카드는,
    상기 패킷 데이터에 대한 요약 정보를 생성하여 상기 호스트 프로세서로 전달하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치.
  5. 청구항 4에 있어서,
    상기 요약 정보는,
    IP 주소 정보 및 포트(port) 정보를 포함하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치.
  6. 청구항 4에 있어서,
    상기 호스트 프로세서는,
    상기 요약 정보에 기반하여 상기 패킷 데이터를 호스트 메모리에 저장할지 여부를 결정하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치.
  7. 청구항 6에 있어서,
    상기 호스트 프로세서는,
    상기 PCIe 슬롯부를 통하여 수신한 상기 패킷 데이터에 대한 변조 여부를 체크섬(checksum)을 이용하여 확인하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치.
  8. 청구항 7에 있어서,
    상기 호스트 프로세서는,
    상기 패킷 데이터가 변조되지 않은 것으로 확인된 경우,
    상기 네트워크 인터페이스 카드 상에 존재하는 상기 패킷 데이터를 재송신하도록 하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치.
  9. 청구항 6에 있어서,
    상기 호스트 프로세서는,
    상기 패킷 데이터를 적어도 하나의 채널을 통하여 상기 호스트 메모리에 저장하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치.
  10. 호스트 프로세서 및 상기 호스트 프로세서와 연동하는 네트워크 인터페이스 카드에 의해 수행되는 트래픽 처리 방법에 있어서,
    상기 네트워크 인터페이스 카드가 패킷 데이터에 대한 요약 정보를 생성하여 상기 호스트 프로세서로 전달하는 단계;
    호스트 프로세서가 상기 요약 정보에 기반하여 상기 패킷 데이터를 호스트 메모리에 저장할지 여부를 결정하는 단계를 포함하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법.
  11. 청구항 10에 있어서,
    상기 네트워크 인터페이스 카드는,
    복수의 코어를 포함하는 멀티 코어 프로세서; 및
    상기 멀티 코어 프로세서와 연결되어 상기 패킷 데이터를 송수신하는 PCIe(Peripheral Component Interconnect Express) 버스 라인부를 포함하며,
    상기 호스트 프로세서는,
    상기 PCIe 버스 라인부와 연결되는 PCIe 슬롯부를 통해 상기 패킷 데이터를 송수신하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법.
  12. 청구항 10에 있어서,
    상기 호스트 프로세서는,
    상기 PCIe 슬롯부를 통하여 수신한 상기 패킷 데이터에 대한 변조 여부를 체크섬(checksum)을 이용하여 확인하고,
    상기 패킷 데이터가 변조되지 않은 것으로 확인된 경우,
    상기 네트워크 인터페이스 카드 상에 존재하는 상기 패킷 데이터를 재송신하도록 하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법.
  13. 청구항 10에 있어서,
    상기 호스트 프로세서는,
    상기 패킷 데이터를 적어도 하나의 채널을 통하여 상기 호스트 메모리에 저장하는 것을 특징으로 하는,
    멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 방법.
KR20140045571A 2013-04-17 2014-04-16 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법 KR20140125311A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130041960 2013-04-17
KR1020130041960 2013-04-17

Publications (1)

Publication Number Publication Date
KR20140125311A true KR20140125311A (ko) 2014-10-28

Family

ID=51995189

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140045571A KR20140125311A (ko) 2013-04-17 2014-04-16 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20140125311A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180126255A (ko) * 2017-05-17 2018-11-27 단국대학교 산학협력단 데이터 저장 기능이 포함된 네트워크 인터페이스 컨트롤러 및 그것을 포함하는 컴퓨팅 장치
US10237207B2 (en) 2015-07-01 2019-03-19 Electronics And Telecommunications Research Institute Apparatus and method for storing data traffic on flow basis
US20210409348A1 (en) * 2020-06-30 2021-12-30 Viscore Technologies Inc. Asymmetric network infrastructure with distributed broadcast-select switch and asymmetric network interface controller

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10237207B2 (en) 2015-07-01 2019-03-19 Electronics And Telecommunications Research Institute Apparatus and method for storing data traffic on flow basis
KR20180126255A (ko) * 2017-05-17 2018-11-27 단국대학교 산학협력단 데이터 저장 기능이 포함된 네트워크 인터페이스 컨트롤러 및 그것을 포함하는 컴퓨팅 장치
US20210409348A1 (en) * 2020-06-30 2021-12-30 Viscore Technologies Inc. Asymmetric network infrastructure with distributed broadcast-select switch and asymmetric network interface controller
US11601382B2 (en) * 2020-06-30 2023-03-07 Viscore Technologies Inc. Asymmetric network infrastructure with distributed broadcast-select switch and asymmetric network interface controller

Similar Documents

Publication Publication Date Title
US11991072B2 (en) System and method for facilitating efficient event notification management for a network interface controller (NIC)
KR101725755B1 (ko) 적응형 라우팅을 이용하여 자원 활용도를 제어하기 위한 메커니즘
US10425344B2 (en) Avoiding dropped data packets on a network transmission
EP3042298B1 (en) Universal pci express port
US9430432B2 (en) Optimized multi-root input output virtualization aware switch
US7827325B2 (en) Device, system, and method of speculative packet transmission
US9047418B2 (en) Methods and devices for extending USB 3.0-compliant communication
WO2001018988A1 (en) Bridge between parallel buses over a packet-switched network
CN110661725A (zh) 用于对出口上的网络分组进行重排序的技术
US20130185472A1 (en) Techniques for improving throughput and performance of a distributed interconnect peripheral bus
US7788437B2 (en) Computer system with network interface retransmit
US8032675B2 (en) Dynamic memory buffer allocation method and system
KR20140125311A (ko) 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법
US9509623B2 (en) Information processing device, information processing system, and method for processing packets from transmitting devices
US8090893B2 (en) Input output control apparatus with a plurality of ports and single protocol processing circuit
US8885673B2 (en) Interleaving data packets in a packet-based communication system
US8799519B2 (en) Network-to-network bridge
US20230014415A1 (en) Reducing transactions drop in remote direct memory access system
US9450706B2 (en) Communication apparatus and packet transfer method
US20170295237A1 (en) Parallel processing apparatus and communication control method
US20120246263A1 (en) Data transfer apparatus, data transfer method, and information processing apparatus
US9936003B1 (en) Method and system for transmitting information in a network
US8751603B2 (en) Exploiting cluster awareness infrastructure through internet socket based applications
US20160112318A1 (en) Information processing system, method, and information processing apparatus
KR20140052101A (ko) 패킷을 처리하는 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination