KR102237991B1 - Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치 - Google Patents

Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치 Download PDF

Info

Publication number
KR102237991B1
KR102237991B1 KR1020150039009A KR20150039009A KR102237991B1 KR 102237991 B1 KR102237991 B1 KR 102237991B1 KR 1020150039009 A KR1020150039009 A KR 1020150039009A KR 20150039009 A KR20150039009 A KR 20150039009A KR 102237991 B1 KR102237991 B1 KR 102237991B1
Authority
KR
South Korea
Prior art keywords
host
connection
pcie
communication module
dedicated communication
Prior art date
Application number
KR1020150039009A
Other languages
English (en)
Other versions
KR20160112752A (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 KR1020150039009A priority Critical patent/KR102237991B1/ko
Priority to US14/954,192 priority patent/US10042809B2/en
Publication of KR20160112752A publication Critical patent/KR20160112752A/ko
Application granted granted Critical
Publication of KR102237991B1 publication Critical patent/KR102237991B1/ko

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]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • H04L67/42
    • 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/10Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

호스트들 사이의 PCIe(peripheral component interconnect express)전용 통신 모듈을 이용한 통신 방법은, 제1호스트의 PCIe 전용 통신 모듈이, 제2호스트로부터 수신된 연결 명령을 저장할 제1연결 버퍼를 생성하고, 대기 소켓을 생성하여 상기 제2호스트로부터 연결 요청을 대기하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트로부터 수신된 연결 요청에 응답하여 상기 제2호스트와 연결 가능 여부를 판단하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트와 연결 가능한 것으로 판단되면 데이터를 송수신을 위해 상기 제2호스트와 연결된 제1연결 소켓을 생성하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트로부터 수신된 데이터를 저장할 제1송수신 버퍼를 생성하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제1송수신 버퍼를 상기 제1연결 소켓에 할당하고 상기 제1호스트와 상기 제2호스트의 연결을 승인하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트와의 데이터 송수신을 대기하는 단계를 포함한다.

Description

PCI 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치{METHOD FOR COMMUNICATION USING PCI EXPRESS DEDICATED COMMUNICATION MODULE AND NETWORK DEVICE INCLUDING THE SAME}
본 발명의 개념에 따른 실시 예는 PCIe(peripheral component interconnect express) 전용 통신 모듈을 이용한 통신 방법에 관한 것으로서, 특히 원격 메모리 공유 기능을 이용하여 호스트들 사이의 통신을 수행하는 PCIe 전용 통신 모듈의 작동 방법, PCIe 전용 통신 모듈 및 이를 포함하는 네트워크 장치에 관한 것이다.
컴퓨팅 시스템은 사용자에게 다양한 서비스를 제공하기 위하여 고도화된 성능과 및 복잡한 알고리즘 등을 필요로 한다. 컴퓨팅 시스템의 프로세서는 무어의 법칙에 상응하게 성능이 지속적으로 향상하고 있음에 반하여, 시스템 간의 네트워크 연결 성능은 컴퓨팅 성능을 따라가지 못한다. 따라서, 대규모 고성능 시스템에서 네트워크의 성능이 전체 시스템의 성능을 결정하는 중요한 변수의 하나로 부각되고 있다.
고성능 컴퓨팅 시스템에서는 인피니밴드를 이용한 인터커넥터 기술이 널리 적용되고 있다. 하지만, 인피니밴드 기술은 고속 전용 네트워크 프로토콜을 제공하지 않는다.
PCIe는 일반적으로 단일 컴퓨팅 노드내에서의 프로세서와 I/O 장치간의 연결을 위한 시스템 버스로서 널리 사용되고 있다. 현재의 PCIe는 단일 레인에서 8 Gbps의 성능을 보이며 16개의 레인을 이용할 경우 단방향으로 최대 128 Gbps의 성능을 대역폭을 제공할 수 있다. 즉, PCIe는 다른 네트워크 인터커넥터 기술에 비하여 우수한 프로토콜 효율, 동급의 지연 특성, 적은 전력소모및 낮은 단가 등을 제공할 수 있다.
따라서, 고성능 컴퓨팅 시스템에서 PCIe를 이용하여 하드웨어의 성능에 상응하는 고속 전용 네트워크 프로토콜이 필요하다.
본 발명이 이루고자하는 기술적인 과제는, PCIe 네트워크 장치를 이용한 통신에서 기존의 이더넷 및 인피니밴드 등을 이용한 네트워크 장치보다 우수한 프로토콜 효율, 우수한 지연 특성, 및 낮은 전력 소모 등의 특성을 갖고, 고성능 컴퓨팅 시스템에 적합한 네트워크 장치를 제공하는 것이다.
또한, 본 발명이 이루고자하는 기술적인 과제는, TCP/IP 프로토콜 처리과정에서 발생되는 네트워크 성능 저하 문제를 해결하기 위한 네트워크 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 호스트들 사이의 PCIe(peripheral component interconnect express)전용 통신 모듈을 이용한 통신 방법은, 제1호스트의 PCIe 전용 통신 모듈이, 제2호스트로부터 수신된 연결 명령을 저장할 제1연결 버퍼를 생성하고, 대기 소켓을 생성하여 상기 제2호스트로부터 연결 요청을 대기하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트로부터 수신된 연결 요청에 응답하여 상기 제2호스트와 연결 가능 여부를 판단하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트와 연결 가능한 것으로 판단되면 데이터를 송수신을 위해 상기 제2호스트와 연결된 제1연결 소켓을 생성하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트로부터 수신된 데이터를 저장할 제1송수신 버퍼를 생성하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제1송수신 버퍼를 상기 제1연결 소켓에 할당하고 상기 제1호스트와 상기 제2호스트의 연결을 승인하는 단계와, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트와의 데이터 송수신을 대기하는 단계를 포함한다.
실시 예에 따라, 상기 연결요청을 대기하는 단계는, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트와 연결된 대기 소켓을 생성하고, 상기 대기 소켓을 통해 상기 제1연결 버퍼로 수신되는 상기 연결 요청을 대기할 수 있다.
실시 예에 따라, 상기 PCIe 전용 통신 모듈이, 상기 제2호스트와 연결 불가능한 것으로 판단되면 상기 제2호스트로 연결 불가 메시지를 전송하고, 상기 제2호스트로부터 새로운 연결 요청을 대기하는 단계를 더 포함할 수 있다.
실시 예에 따라, 상기 데이터 송수신을 대기하는 단계는, 상기 PCIe 전용 통신 모듈이, 상기 제1송수신 버퍼의 메모리 주소 정보를 상기 제2호스트로 전송하고, 상기 제2호스트로부터 전송된 제2송수신 버퍼의 메모리 주소 정보를 저장할 수 있다.
실시 예에 따라, 상기 PCIe 전용 통신 모듈이, 상기 제1호스트의 네트워크 애플리케이션으로부터 수신된 데이터 전송 요청에 응답하여 상기 제2호스트와 데이터를 송수신하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시 예에 따른 애플리케이션으로부터 요청된 데이터 송수신 명령에 응답하여 네트워크 장치를 통해 외부의 호스트와 통신하는 PCIe(Peripheral Component Interconnect Express) 전용 통신 모듈은, 상기 외부의 호스트로부터 수신된 연결 명령을 저장하는 연결 버퍼와, 상기 외부의 호스트와의 연결 승인을 결정하는 연결 관리부와, 데이터를 저장하는 송수신 버퍼와, 상기 애플리케이션으로부터 데이터 송수신 명령에 응답하여 상기 데이터를 상기 송수신 버퍼에 저장하거나 상기 외부의 호스트로 전송하는 데이터 송수신부를 포함한다.
실시 예에 따라, 상기 연결 관리부는, 상기 외부의 호스트에 대한 하드웨어 정보 및 네트워크 주소 정보를 수집하여 상기 연결 버퍼에 저장하고, 상기 외부의 호스트와의 PCIe 통신을 위한 소켓 및 자료 구조를 생성하고 관리할 수 있다.
실시 예에 따라, 상기 연결 관리부는, 상기 연결 버퍼에 저장된 상기 연결 명령을 읽고, 외부의 호스트와 연결을 승인할 수 있다.
본 발명의 또 다른 실시 예에 따른 네트워크 장치는, 소켓 API(Application Programming Interface)를 이용하여 데이터 송수신 명령을 요청하는 네트워크 애플리케이션과, PCIeLink 디바이스 드라이버에 의해 구동되고, PCIe 전용 통신 케이블을 통해 외부의 호스트와 연결되는 PCIeLink 디바이스와, 상기 네트워크 애플리케이션의 상기 데이터 송수신 명령에 응답하여, 상기 PCIeLink 디바이스를 통해 데이터 송수신을 제어하는 PCIe 전용 통신 모듈을 포함한다.
실시 예에 따라, 상기 PCIe 전용 통신 모듈은, 상기 외부의 호스트로부터 수신된 연결 명령을 저장하는 연결 버퍼와, 상기 연결 버퍼에 저장된 상기 연결 명령을 읽고, 상기 외부의 호스트와 연결을 승인하는 연결 관리부와, 데이터를 저장하는 송수신 버퍼와, 상기 데이터 송수신 명령에 응답하여 상기 데이터를 상기 송수신 버퍼에 저장하거나 상기 외부의 호스트로 전송하는 데이터 송수신부를 포함할 수 있다.
본 발명의 실시 예에 따른 PCIe 전용 통신 모듈 및 이를 포함하는 네트워크 장치는, 기존의 이더넷 및 인피니밴드 등을 이용한 네트워크 장치보다 우수한 프로토콜 효율, 우수한 지연 특성, 및 낮은 전력 소모 등의 특성을 가질 수 있고, 대용량의 데이터 전송이 필요한 고성능 컴퓨팅 시스템에서 효율적인 네트워킹 환경을 제공할 수 있다.
본 발명의 실시 예에 따른 PCIe 전용 통신 모듈 및 이를 포함하는 네트워크 장치는 TCP/IP 프로토콜 처리과정의 오버헤드를 줄일 수 있는 전용 통신 모듈을 제공하여 전송 지연을 최소화할 수 있고, PCIe 장치가 지원하는 대역폭과 상응하는 대역폭을 지원할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위해서 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 PCIe 전용 통신 모듈을 이용하여 통신을 하는 호스트들의 개략적인 블록도이다.
도 2는 본 발명의 실시 예에 따른 PCIe 전용 통신 모듈을 포함하는 제1호스트의 블록도이다.
도 3은 본 발명의 실시 예에 따른 PCIe 전용 통신 모듈을 이용한 통신 방법을 설명하기 위한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 PCIe(peripheral component interconnect express) 전용 통신 모듈을 이용하여 통신을 하는 호스트들의 개략적인 블록도이다.
도 1을 참조하면, 제1호스트(100)와 제2호스트(100')는 PCIe 네트워크 디바이스를 이용하여 서로 데이터를 송수신할 수 있다.
제1호스트(100)와 제2호스트(100')는 PCIe 전용 통신 모듈을 포함하는 네트워크 장치일 수 있다. 실시 예에 따라, 제1호스트(100)와 제2호스트(100')는 동일한 소프트웨어 스택을 가지고, 구동되는 사용자 네트워크 애플리케이션에 따라 서버 또는 클라이언트로 동작될 수 있다.
예컨대, 제1호스트(100)에 포함된 네트워크 애플리케이션이 서버로 동작되고, 제2호스트(100')에 포함된 네트워크 애플리케이션이 클라이언트로 동작되면, 제1호스트(100)는 서버가 되어 클라이언트인 제2호스트(100')로부터 요청된 명령에 응답하여 데이터를 송수신할 수 있다.
본 명세서에서는 설명의 편의를 위해 제1호스트(100)와 제2호스트(100')만을 설명하였지만, 복수의 호스트들이 PCIe 전용 통신 케이블을 통해 서로 연결될 수 있고, 서버 호스트는 복수의 클라이언트 호스트들과 데이터 송수신을 할 수 있다.
제1호스트(100)와 제2호스트(100')는 PCIe 통신을 위한 전용 통신 모듈인 PCIe 전용 통신 모듈을 포함할 수 있고, PCIe 전용 통신 모듈은 제1호스트(100)와 제2호스트(100')의 데이터 송수신을 제어할 수 있다.
PCIe 전용 통신 케이블(200)은 제1호스트(100)와 제2호스트(100') 사이에 연결될 수 있다. 예컨대, PCIe 전용 통신 케이블(200)은 LAN 케이블, PLC(Power Line Communication) 케이블로 구현될 수 있지만, 이에 한정되는 것은 아니다.
도 2는 본 발명의 실시 예에 따른 PCIe 전용 통신 모듈을 포함하는 제1호스트의 블록도이다.
도 1과 도 2를 참조하면, 제1호스트(100)는 네트워크 애플리케이션(110), 소켓 API(Application Programming Interface; 120), PCIe 전용 통신 모듈(130), PCIeLink 디바이스 드라이버(140), 및 PCIeLink 장치(150)를 포함할 수 있다.
네트워크 애플리케이션(110)은 사용자의 선택에 따라 서버 또는 클라이언트로 작동될 수 있다. 예컨대, 제1호스트(100)의 네트워크 애플리케이션(110)이 서버로 설정되면, 제1호스트(100)는 서버로서 클라이언트 호스트들과 통신을 할 수 있다.
실시 예에 따라, 제2호스트(100')는 제1호스트(100)와 동일한 구성과 동일한 소프트웨어를 포함할 수 있다.
소켓 API(120)는 다른 호스트들과 데이터 송수신을 하기 위해 PCIe 전용 통신 모듈(130)의 제어에 따라 소켓 구조체를 생성할 수 있다.
PCIe 전용 통신 모듈(130)은 네트워크 애플리케이션(110)의 데이터 송수신 명령에 응답하여 소켓 API(120)를 통해 통신을 수행하는 처리 모듈일 수 있다. 예컨대, PCIe 전용 통신 모듈(130)은 리눅스 커널 레벨의 처리 모듈일 수 있다.
예컨대, 네트워크 애플리케이션(110)이 통신을 위하여 소켓 API(120)를 호출하면 PCIe 전용 통신 모듈(130)은 PCIe 프로토콜에 대해 생성된 소켓 구조체를 이용하여 연결된 외부의 호스트들과 통신할 수 있다.
PCIe 전용 통신 모듈(130)은 데이터 송수신부(132), 연결 관리부(134), 송수신 버퍼(136), 및 연결 버퍼(138)를 포함할 수 있다.
데이터 송수신부(132)는 PCIeLink 장치(150)를 통해 외부로부터 전송된 데이터를 송수신 버퍼(136)에 저장하거나, PCIeLink 장치(150)를 통해 외부의 호스트들로 저장된 데이터를 전송할 수 있다.
연결 관리부(134)는 PCIeLink 디바이스 드라이버(140)로부터 제1호스트(100) 및 연결될 제2호스트(100')에 대한 PCIeLink 장치 정보 및 가상 네트워크 주소 정보를 수집할 수 있다.
연결 관리부(134)는 PCIe 통신을 위한 소켓 구조체를 생성할 수 있고, 외부의 호스트와 통신을 하기 위한 자료 구조를 생성할 수 있다. 예컨대, 연결 관리부(134)는 외부의 호스트로부터 연결 요청에 응답하기 위해 연결 대기 큐를 생성 및 관리할 수 있다.
연결 관리부(134)는 PCIeLink 장치(150)의 원격 메모리 공유 기능을 이용하여 연결 버퍼(138)를 생성할 수 있다. 또한, 연결 관리부(134)는 데이터 송수신을 위한 송수신 버퍼(136)를 생성할 수 있다.
즉, 연결 관리부(134)는 연결 버퍼(138)를 이용하여 호스트 사이의 연결 요청들을 저장 및 처리하고, 데이터 송수신을 위한 송수신 버퍼(136)를 생성하여 데이터 송수신부(132)로 제공할 수 있다.
PCIeLink 디바이스 드라이버(140)는 PCIe 전용 통신 모듈(130)과 PCIeLink 장치(150)를 연결할 수 있고, PCIeLink 장치(150)를 제어할 수 있는 장치 드라이버 모듈이다.
PCIeLink 장치(150)는 원격 메모리 공유 기능을 이용하여 호스트 사이에서 원격으로 대상의 메모리를 변환 및 관리할 수 있다. 또한, PCIeLink 장치(150)는 DMA(Direct memory access), 메모리 복사, 또는 도어벨(Doorbell) 레지스터 등을 제어하여 PCIe 전용 통신 모듈(130)로부터 요청된 연결 명령 및 데이터 송수신 명령들을 처리할 수 있다.
도 3은 본 발명의 실시 예에 따른 PCIe 전용 통신 모듈을 이용한 통신 방법을 설명하기 위한 흐름도이다.
도 1부터 도 3을 참조하면, 제1호스트(100)의 네트워크 애플리케이션(110)은 서버로 동작하고, 제2호스트(100')의 네트워크 애플리케이션(110)은 클라이언트로 동작될 수 있다.
제1호스트(100)의 PCIe 전용 통신 모듈(130)은 제2호스트(100')로부터 수신된 연결 명령을 저장할 제1연결 버퍼(CB1)를 생성하고(S100), 제2호스트(100')로부터 연결 명령을 수신할 대기소켓(SS)을 생성하여 연결 요청(CR)을 대기할 수 있다(S110).
예컨대, 대기소켓(SS)은 제1연결 버퍼(CB1)와 연결될 수 있고, PCIe 전용 통신 모듈(130)은 제2호스트(100')로부터의 연결 요청(CR)에 따라 연결 명령을 제1연결 버퍼(CB1)를 통하여 처리할 수 있다.
제1호스트(100)와 마찬가지로 제2호스트(100')는 제1호스트(100)와 연결을 위해 제2연결 버퍼(CB2)와 제2연결 소켓(CS2)를 생성할 수 있다.
제2호스트(100')로부터 연결 요청(CS)이 수신되면(S120), PCIe 전용 통신 모듈(130)은 대기 소켓(SS)이 연결가능한지 판단할 수 있다(S130).
예컨대, 제1호스트(100)는 서버로서 복수의 클라이언트인 호스트들과 연결될 수 있다. 따라서, 제1호스트(100)는 다른 호스트들로부터 수신된 복수의 연결 요청 중에서 선택된 호스트와 데이터 송수신을 할 수 있다.
만약, 제2호스트(100')로부터 수신된 연결 요청(CR)에 따라 연결 가능한 것으로 판단되면, PCIe 전용 통신 모듈(130)은 제2호스트(100')의 제2연결 소켓(CS2)와 연결되는 제1연결 소켓(CS1)을 생성할 수 있다(S140).
실시 예에 따라, 제2호스트(100')와 연결 불가능한 것으로 판단되면, PCIe 전용 통신 모듈(130)은 연결 불가 메시지를 제2호스트(100')로 전송하고, 제2호스트(100')로부터 새로운 연결 요청을 대기할 수 있다.
PCIe 전용 통신 모듈(130)은 제2호스트(100')로부터 제1연결 소켓(CS1)을 통해 수신될 데이터를 저장할 제1송수신 버퍼(TB1)를 생성할 수 있고, 생성된 제1송수신 버퍼(TB1)를 제1연결 소켓(CS1)에 할당할 수 있다(S150).
PCIe 전용 통신 모듈(130)은 제1호스트(100)와 제2호스트(100')의 연결을 승인하고(S160), 제1송수신 버퍼의 메모리 주소 정보(TA1)를 제2호스트(100')로 전송할 수 있다(S170).
제2호스트(100')의 PCIe 전용 통신 모듈(130)은 제1송수신 버퍼의 메모리 주소 정보(TA1)을 저장하고(S180), 제1호스트(100)로부터 수신될 데이터를 저장할 제2송수신 버퍼(TB2)를 생성하고, 생성된 제2송수신 버퍼(TB2)를 제2연결 소켓(CS2)에 할당할 수 있다(S190).
PCIe 전용 통신 모듈(130)은 제2호스트(100')로부터 제2송수신 버퍼의 메모리 주소 정보(TA2)를 수신할 수 있고(S200), 제2송수신 버퍼의 메모리 주소 정보(TA2)를 저장할 수 있다(S210).
마지막으로, 제1호스트(100)의 PCIe 전용 통신 모듈(130)과 제2호스트(100')의 PCIe 전용 통신 모듈(130)은 데이터 송수신을 대기할 수 있다(S220).
이로써, 제1호스트(100)는 제2호스트(100')로부터 수신된 데이터를 제1송수신 버퍼(TB1)에 저장할 수 있고, 제2호스트(100')의 제2송수신 버퍼(TB2)에 저장된 데이터를 읽을 수 있다. 또한, 제2호스트(100')는 제1호스트(100)로부터 수신된 데이터를 제2송수신 버퍼(TB2)에 저장할 수 있고, 제1호스트(100)의 제1송수신 버퍼(TB1)에 저장된 데이터를 읽을 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 제1호스트
100': 제2호스트
200: PCIe 전용 통신 케이블

Claims (11)

  1. 호스트들 사이의 PCIe(peripheral component interconnect express)전용 통신 모듈을 이용한 통신 방법에 있어서,
    제1호스트의 PCIe 전용 통신 모듈이, 제2호스트로부터 연결 명령을 수신하기 위한 제1연결 버퍼를 생성하고, 상기 제2호스트로부터 연결 요청을 대기하는 단계;
    상기 PCIe 전용 통신 모듈이, 상기 제2호스트로부터 수신된 연결 요청에 응답하여 상기 제2호스트와 연결 가능 여부를 판단하는 단계;
    상기 PCIe 전용 통신 모듈이, 상기 제2호스트와 연결 가능한 것으로 판단되면 데이터를 송수신을 위해 상기 제2호스트와 연결된 제1연결 소켓을 생성하는 단계;
    상기 PCIe 전용 통신 모듈이, 상기 제2호스트로부터 수신된 데이터를 저장할 제1송수신 버퍼를 생성하는 단계;
    상기 PCIe 전용 통신 모듈이, 상기 제1송수신 버퍼를 상기 제1연결 소켓에 할당한 후, 연결 요청에 대한 응답으로 상기 제1호스트와 상기 제2호스트의 연결을 승인하는 단계; 및
    상기 PCIe 전용 통신 모듈이, 상기 제1 호스트 및 제2호스트와의 데이터 송수신을 대기하는 단계를 포함하는 PCIe 전용 통신 모듈을 이용한 통신 방법.
  2. 제1항에 있어서, 상기 연결요청을 대기하는 단계는,
    상기 PCIe 전용 통신 모듈이, 상기 제2호스트와 연결된 대기 소켓을 생성하고, 상기 대기 소켓을 통해 상기 제1연결 버퍼로 수신되는 상기 연결 요청을 대기하는 PCIe 전용 통신 모듈을 이용한 통신 방법.
  3. 제1항에 있어서,
    상기 PCIe 전용 통신 모듈이, 상기 제2호스트와 연결 불가능한 것으로 판단되면 상기 제2호스트로 연결 불가 메시지를 전송하고, 상기 제2호스트로부터 새로운 연결 요청을 대기하는 단계를 더 포함하는 PCIe 전용 통신 모듈을 이용한 통신 방법.
  4. 제1항에 있어서, 상기 데이터 송수신을 대기하는 단계는,
    상기 PCIe 전용 통신 모듈이, 상기 제1송수신 버퍼의 메모리 주소 정보를 상기 제2호스트로 전송하고, 상기 제2호스트로부터 전송된 제2송수신 버퍼의 메모리 주소 정보를 저장하는 PCIe 전용 통신 모듈을 이용한 통신 방법.
  5. 제1항에 있어서,
    상기 PCIe 전용 통신 모듈이, 상기 제1호스트의 네트워크 애플리케이션으로부터 수신된 데이터 전송 요청에 응답하여 상기 제2호스트와 데이터를 송수신하는 단계를 더 포함하는 PCIe 전용 통신 모듈을 이용한 통신 방법.
  6. 제1항 내지 제5항 중에서 어느 하나의 항에 기재된 PCIe 전용 통신 모듈을 이용한 통신 방법을 실행할 수 있는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  7. 애플리케이션으로부터 요청된 데이터 송수신 명령에 응답하여 네트워크 장치를 통해 외부의 호스트와 통신하는 PCIe(Peripheral Component Interconnect Express) 전용 통신 모듈에 있어서,
    상기 외부의 호스트로부터 수신된 연결 명령을 저장하는 연결 버퍼;
    상기 외부의 호스트와의 연결 승인을 결정하는 연결 관리부;
    데이터를 저장하는 송수신 버퍼; 및
    상기 애플리케이션으로부터 데이터 송수신 명령에 응답하여 상기 데이터를 상기 송수신 버퍼에 저장하거나 상기 외부의 호스트로 전송하는 데이터 송수신부를 포함하고,
    외부의 호스트로부터 연결 명령을 수신하기 위한 제1연결 버퍼를 생성하고, 연결 요청을 대기하는 단계;
    상기 외부 호스트로부터 수신된 연결 요청에 응답하여 상기 외부 호스트와 연결 가능 여부를 판단하는 단계;
    상기 외부 호스트와 연결 가능한 것으로 판단되면 데이터를 송수신을 위해 상기 외부 호스트와 연결된 제1연결 소켓을 생성하는 단계;
    상기 외부 호스트로부터 수신된 데이터를 저장할 제1송수신 버퍼를 생성하는 단계;
    상기 제1송수신 버퍼를 상기 제1연결 소켓에 할당한 후, 연결 요청에 대한 응답으로 상기 외부 호스트와의 연결을 승인하는 단계; 및
    상기 외부 호스트와의 데이터 송수신을 대기하는 단계를 수행하는, PCIe 전용 통신 모듈.
  8. 제7항에 있어서, 상기 연결 관리부는,
    상기 외부의 호스트에 대한 하드웨어 정보 및 네트워크 주소 정보를 수집하여 상기 연결 버퍼에 저장하고, 상기 외부의 호스트와의 PCIe 통신을 위한 소켓 및 자료 구조를 생성하고 관리하는 PCIe 전용 통신 모듈.
  9. 제7항에 있어서, 상기 연결 관리부는,
    상기 연결 버퍼에 저장된 상기 연결 명령을 읽고, 외부의 호스트와 연결을 승인하는 PCIe 전용 통신 모듈.
  10. 소켓 API(Application Programming Interface)를 이용하여 데이터 송수신 명령을 요청하는 네트워크 애플리케이션;
    PCIeLink 디바이스 드라이버에 의해 구동되고, PCIe 전용 통신 케이블을 통해 외부의 호스트와 연결되는 PCIeLink 디바이스; 및
    상기 네트워크 애플리케이션의 상기 데이터 송수신 명령에 응답하여, 상기 PCIeLink 디바이스를 통해 데이터 송수신을 제어하는 PCIe 전용 통신 모듈을 포함하되,
    상기 PCIe 전용 통신 모듈은,
    외부의 호스트로부터 연결 명령을 수신하기 위한 제1연결 버퍼를 생성하고, 연결 요청을 대기하는 단계;
    상기 외부 호스트로부터 수신된 연결 요청에 응답하여 상기 외부 호스트와 연결 가능 여부를 판단하는 단계;
    상기 외부 호스트와 연결 가능한 것으로 판단되면 데이터를 송수신을 위해 상기 외부 호스트와 연결된 제1연결 소켓을 생성하는 단계;
    상기 외부 호스트로부터 수신된 데이터를 저장할 제1송수신 버퍼를 생성하는 단계;
    상기 제1송수신 버퍼를 상기 제1연결 소켓에 할당한 후, 연결 요청에 대한 응답으로 상기 외부 호스트와의 연결을 승인하는 단계; 및
    상기 외부 호스트와의 데이터 송수신을 대기하는 단계를 수행하는, 네트워크 장치.
  11. 제10항에 있어서, 상기 PCIe 전용 통신 모듈은,
    상기 외부의 호스트로부터 수신된 연결 명령을 저장하는 연결 버퍼;
    상기 연결 버퍼에 저장된 상기 연결 명령을 읽고, 상기 외부의 호스트와 연결을 승인하는 연결 관리부;
    데이터를 저장하는 송수신 버퍼; 및
    상기 데이터 송수신 명령에 응답하여 상기 데이터를 상기 송수신 버퍼에 저장하거나 상기 외부의 호스트로 전송하는 데이터 송수신부를 포함하는 네트워크 장치.
KR1020150039009A 2015-03-20 2015-03-20 Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치 KR102237991B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150039009A KR102237991B1 (ko) 2015-03-20 2015-03-20 Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치
US14/954,192 US10042809B2 (en) 2015-03-20 2015-11-30 Method for communication using PCI express dedicated communication module and network device including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150039009A KR102237991B1 (ko) 2015-03-20 2015-03-20 Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치

Publications (2)

Publication Number Publication Date
KR20160112752A KR20160112752A (ko) 2016-09-28
KR102237991B1 true KR102237991B1 (ko) 2021-04-08

Family

ID=56923772

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150039009A KR102237991B1 (ko) 2015-03-20 2015-03-20 Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치

Country Status (2)

Country Link
US (1) US10042809B2 (ko)
KR (1) KR102237991B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148032A1 (en) * 2006-12-19 2008-06-19 Freimuth Douglas M System and method for communication between host systems using a queuing system and shared memories
JP2010128696A (ja) 2008-11-26 2010-06-10 Toshiba Corp バスブリッジ装置およびそれを用いたバスブリッジシステム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7676607B2 (en) 2005-12-08 2010-03-09 Electronics And Telecommunications Research Institute Hardware acceleration apparatus for iSCSI target system using TOE and method for performing read/write command using the apparatus
KR100823734B1 (ko) 2006-07-07 2008-04-21 한국전자통신연구원 iSCSI를 위한 데이터 가속 장치 및 이를 이용한iSCSI 저장 시스템
CN101918931B (zh) 2007-02-02 2013-09-04 普西迈斯特公司 具有集成高速分组交换串行接口的处理器芯片架构
US8139575B2 (en) * 2007-06-29 2012-03-20 International Business Machines Corporation Device, system and method of modification of PCI express packet digest
KR101026759B1 (ko) 2008-08-26 2011-04-08 최백준 터미널 환경의 서버 기반 컴퓨팅 시스템에서 영상 밀림, 영상 손실 및 지연 없이 동영상 재생을 그 파일 형태 및 크기와 무관하게 분산 처리하기 위한 동영상 재생 분산 처리 시스템 및 동영상 재생 분산 처리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148032A1 (en) * 2006-12-19 2008-06-19 Freimuth Douglas M System and method for communication between host systems using a queuing system and shared memories
JP2010128696A (ja) 2008-11-26 2010-06-10 Toshiba Corp バスブリッジ装置およびそれを用いたバスブリッジシステム

Also Published As

Publication number Publication date
US20160275038A1 (en) 2016-09-22
US10042809B2 (en) 2018-08-07
KR20160112752A (ko) 2016-09-28

Similar Documents

Publication Publication Date Title
US11379265B2 (en) Resource management method, host, and endpoint based on performance specification
CN111221758B (zh) 处理远程直接内存访问请求的方法和计算机设备
EP3025241B1 (en) Scalable direct inter-node communication over peripheral component interconnect-express (pcie)
US6347341B1 (en) Computer program product used for exchange and transfer of data having a siga vector and utilizing a queued direct input-output device
US6345327B1 (en) Queuing method and apparatus for providing direct data processing access using a queued direct input-output device
US20140195634A1 (en) System and Method for Multiservice Input/Output
EP3441878B1 (en) Method and device for data transmission in virtual switch technique
EP3563534B1 (en) Transferring packets between virtual machines via a direct memory access device
US11940933B2 (en) Cross address-space bridging
JP2016529575A (ja) ハードディスクおよびデータ処理方法
US6397350B1 (en) Method of providing direct data processing access using a queued direct input-output device
US6345241B1 (en) Method and apparatus for simulation of data in a virtual environment using a queued direct input-output device
CN105007329A (zh) 一种基于PCIe的网络共享存储系统及其存储方法
US6401145B1 (en) Method of transferring data using an interface element and a queued direct input-output device
US6321350B1 (en) Method and apparatus for error detection using a queued direct Input-Output device
US6341321B1 (en) Method and apparatus for providing concurrent patch using a queued direct input-output device
US6345324B1 (en) Apparatus for transferring data using an interface element and a queued direct input-output device
US6339803B1 (en) Computer program product used for exchange and transfer of data having a queuing mechanism and utilizing a queued direct input-output device
CN105786398A (zh) 存储器映射方法和存储器映射系统
US6339801B1 (en) Method for determining appropriate devices for processing of data requests using a queued direct input/output device by issuing a special command specifying the devices can process data
KR102237991B1 (ko) Pci 익스프레스 전용 통신 모듈을 이용한 통신 방법과 이를 포함하는 네트워크 장치
US6332171B1 (en) Self-contained queues with associated control information for receipt and transfer of incoming and outgoing data using a queued direct input-output device
US6345329B1 (en) Method and apparatus for exchanging data using a queued direct input-output device
US6339802B1 (en) Computer program device and an apparatus for processing of data requests using a queued direct input-output device
US6697854B1 (en) Method and apparatus for providing configuration information using a SIGA vector and utilizing a queued direct input-output device

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right