KR20200112422A - Pcie ntb based data share system between multi host and method thereof - Google Patents

Pcie ntb based data share system between multi host and method thereof Download PDF

Info

Publication number
KR20200112422A
KR20200112422A KR1020190032865A KR20190032865A KR20200112422A KR 20200112422 A KR20200112422 A KR 20200112422A KR 1020190032865 A KR1020190032865 A KR 1020190032865A KR 20190032865 A KR20190032865 A KR 20190032865A KR 20200112422 A KR20200112422 A KR 20200112422A
Authority
KR
South Korea
Prior art keywords
host
data
hosts
ntb
memory
Prior art date
Application number
KR1020190032865A
Other languages
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 KR1020190032865A priority Critical patent/KR20200112422A/en
Publication of KR20200112422A publication Critical patent/KR20200112422A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)

Abstract

The present invention relates to a PCIE NTB-based data share system between multiple hosts, which includes: a CPU for processing data transmission or reception to serve as an independent computer that transmits or receives data; at least three hosts each including a memory that stores the data or allocates the data into memory windows as separate address areas; and at least three host adapters based on PCIe NTB each connected to at least three hosts, each equipped with at least two NTB ports, and having at least one of the two NTB ports connected to an NTB port of the host adapter connected to a neighboring host and the other connected to an NTB port of the host adapter connected to another neighboring host, so as to be connected to two different neighboring hosts to have a ring topology structure through the NTB ports, wherein the memory window is shared through the NTB ports of the host adapters formed on the both hosts, so that the data is transmitted and received between the two hosts. Accordingly, multiple host clusters share data at high speed based on the PCIe NTB, thereby implementing a low-cost and high-performance supercomputer.

Description

PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템 및 방법{PCIE NTB BASED DATA SHARE SYSTEM BETWEEN MULTI HOST AND METHOD THEREOF}PCIE NTB BASED DATA SHARE SYSTEM BETWEEN MULTI HOST AND METHOD THEREOF}

본 발명은 PCIe NTB 기반의 다중 호스트간 데이터 공유 시스템 및 방법에 관한 것으로, 자세하게는, 공유 데이터 영역을 기반으로 다중 호스트간 데이터를 송수신하는 무스위치 네트워크 시스템 및 방법에 관한 것이다.The present invention relates to a PCIe NTB-based data sharing system and method between multiple hosts, and in detail, to a switchless network system and method for transmitting and receiving data between multiple hosts based on a shared data area.

고성능 수퍼컴퓨터(HPC; High Performance Compuiting) 시스템은 다수의 계산노드(Computation Node)를 초고성능 상호연결망(Interconnection Network)으로 연결하여 클러스터 시스템으로 구성하고 있으며, 이러한 상호연결망 기술은 고성능 수퍼컴퓨터 시스템의 성능과 안정성을 결정하는 중요한 기술 요소이다.The high performance supercomputer (HPC) system consists of a cluster system by connecting a number of computation nodes with an ultra-high performance interconnection network, and this interconnection technology is the performance of a high-performance supercomputer system. It is an important technical factor that determines the stability and stability.

이러한 고성능 수퍼컴퓨터의 자체적인 개발을 위해, 기술 의존성이 높은 인터커넥트 기술인 인피니티밴드/이더넷(Infiniband/Ethernet) 대신, 저전력 및 고성능 기능을 구현할 수 있는 PCIe 기반 스위칭 기술을 대체 인터커넥트 기술로서 사용한다.For the self-development of such a high-performance supercomputer, instead of Infiniband/Ethernet, an interconnect technology with high technology dependence, PCIe-based switching technology that can implement low-power and high-performance functions is used as an alternative interconnect technology.

PCIe 기반 스위칭 기술은 컴퓨터 내부의 CPU와 메모리 및 주변장치 등을 연결하는데 사용되는 기술이나, PCIe 스위칭 칩 제조사의 기술지원에 한계가 있어, PCIe 스위칭 기술을 대체 인터커넥트 기술로 활용하기 위해서 PCIe NTB(Non-Transparent Bridge) 기술을 활용하는 방안이 제시되고 있다.PCIe-based switching technology is a technology used to connect the CPU, memory, and peripherals inside a computer, but there is a limitation in technical support from PCIe switching chip manufacturers, so to use PCIe switching technology as an alternative interconnect technology, PCIe NTB (Non -Transparent Bridge) technology is being proposed.

PCIe NTB는 독립된 두 호스트 사이에 분리된 어드레스 영역에서 주소 변환을 통해 직접적 접근을 구현하는 장치로서, 3대 이상의 호스트간 연결의 연구개발이 필요한 실정이다.PCIe NTB is a device that implements direct access through address translation in an address area separated between two independent hosts, and research and development of connections between three or more hosts is required.

미국 공개특허공보 US2014/0075079(DATA STORAGE DEVICE CONNECTED TO A HOST SYSTEM VIA A PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIE) INTERFACE)US Patent Publication US2014/0075079 (DATA STORAGE DEVICE CONNECTED TO A HOST SYSTEM VIA A PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIE) INTERFACE)

본 발명이 이루고자 하는 기술적 과제는 PCIe NTB 기술을 이용하여 3대 이상의 멀티 호스트간 무스위치 인터커넥션 통신방법을 제공함으로써, 고성능 수퍼컴퓨터 상호연결망의 구성에 소요되는 비용을 절감하기 위한 것이다.The technical problem to be achieved by the present invention is to reduce the cost required to construct a high-performance supercomputer interconnection network by providing a switchless interconnection communication method between three or more multi-hosts using PCIe NTB technology.

본 발명의 일 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템은 데이터를 송신하거나 데이터를 수신하는 독립된 컴퓨터로서, 데이터 송신 또는 수신을 처리하는 CPU와, 데이터를 저장하거나 분리된 어드레스 영역인 메모리 윈도우로 할당하는 메모리를 각각 포함하는 적어도 세 개의 호스트, 그리고 상기 적어도 세 개의 호스트에 각각 연결되고, 적어도 두 개의 NTB 포트를각각 구비하여, 상기 적어도 두 개의 NTB 포트 중 어느 하나는 상기 이웃 호스트에 연결된 호스트 아답터의 NTB 포트에 연결되고, 나머지 하나는 또다른 상기 이웃 호스트에 연결된 호스트 아답터의 NTB 포트에 각각 연결되어, 서로 다른 두 개의 이웃 호스트에 NTB 포트를 통해 링 토폴로지 구조로 연결되는 PCIe NTB 기반의 적어도 세 개의 호스트 아답터를 포함하여, 상기 두 호스트에 형성된 호스트 아답터들의 NTB 포트들을 통해 상기 메모리 윈도우가 공유되어 상기 두 호스트간 데이터 송수신이 이루어지는 것을 특징으로 한다.The PCIE NTB-based data sharing system between multiple hosts according to an embodiment of the present invention is an independent computer that transmits or receives data, a CPU that processes data transmission or reception, and an address area that stores or separates data. At least three hosts each including memory allocated as a memory window, and each connected to the at least three hosts, each having at least two NTB ports, and one of the at least two NTB ports is connected to the neighboring host. PCIe NTB-based, which is connected to the NTB port of the connected host adapter, and the other is connected to the NTB port of the host adapter connected to another neighboring host, and is connected to two different neighboring hosts in a ring topology structure through NTB ports. Including at least three host adapters of, the memory window is shared through NTB ports of host adapters formed in the two hosts, so that data transmission/reception between the two hosts is performed.

상기 메모리 윈도우는, 상기 메모리 윈도우가 형성된 호스트의 호스트 아답터를 통해 연결되는 서로 다른 두 개의 이웃 호스트에 대해 각각 형성되어, 상기 서로 다른 두 개의 이웃 호스트에 대해 각각 형성된 메모리 윈도우를 통해 두 호스트간 데이터를 공유하는 것을 특징으로 한다.The memory windows are respectively formed for two different neighboring hosts connected through a host adapter of a host on which the memory window is formed, and data between the two hosts are transmitted through memory windows respectively formed for the two different neighboring hosts. It is characterized by sharing.

상기 메모리 윈도우는, 데이터 수신을 위한 메모리 윈도우와 데이터 송신을 위한 메모리 윈도우를 각각 포함하고, 호스트의 데이터 송신 또는 수신에 따라 상기 메모리 윈도우를 통해 두 호스트간 데이터를 공유하는 것을 특징으로 한다.The memory window includes a memory window for data reception and a memory window for data transmission, and shares data between two hosts through the memory window according to data transmission or reception by the host.

상기 서로 다른 두 개의 이웃 호스트에 대해 각각 형성된 메모리 윈도우는 데이터 수신을 위한 메모리 윈도우와 데이터 송신을 위한 메모리 윈도우를 각각 포함하고, 호스트의 데이터 송신 또는 수신에 따라 상기 메모리 윈도우를 통해 두 호스트간 데이터를 공유하는 것을 특징으로 한다.Each of the memory windows formed for the two different neighboring hosts includes a memory window for data reception and a memory window for data transmission, and data between the two hosts is transmitted through the memory window according to data transmission or reception by the host. It is characterized by sharing.

상기 두 호스트간 데이터 송수신은 DMA를 통해 이루어지는 것을 특징으로 한다.Data transmission/reception between the two hosts is characterized in that it is performed through DMA.

데이터를 송신하는 호스트는 DMA를 통해 데이터를 송신한 이후 도어벨 레지스터를 통해 DMA 데이터 전송을 알리는 인터럽트를 발생하고, 데이터를 수신하는 호스트는 상기 인터럽트를 통해 수신된 데이터를 확인하는 것을 특징으로 한다.The host transmitting data is characterized in that after transmitting the data through the DMA, an interrupt notifying of the DMA data transmission is generated through the doorbell register, and the host receiving the data checks the received data through the interrupt.

상기 CPU는 상기 적어도 세 개의 호스트들의 식별번호를 링 테이블로 형성하고, 상기 호스트가 데이터를 다른 호스트로 송신함에 있어서, 상기 링 테이블을 참조하여 데이터를 송신하는 호스트의 식별번호와 데이터를 수신할 호스트의 식별번호를 정보로서 송신하는 것을 한다.The CPU forms the identification numbers of the at least three hosts as a ring table, and when the host transmits data to another host, the identification number of the host transmitting data and the host to receive the data refer to the ring table. The identification number of is transmitted as information.

상기 정보는 공유할 데이터의 메모리 주소, 전송 데이터 크기를 더 포함하는 것을 특징으로 한다.The information may further include a memory address of data to be shared and a size of transmission data.

한 예에서, 데이터를 송신하는 호스트 및 데이터를 수신하는 호스트 사이를 연결하는 스크래치패드 레지스터를 더 포함하고, 상기 데이터를 송신하는 호스트는 상기 정보를 상기 스크래치패드 레지스터를 통해 상기 데이터를 수신하는 호스트로 송신하는 것을 특징으로 한다.In one example, a scratch pad register is connected between a host transmitting data and a host receiving data, and the host transmitting the data transmits the information to the host receiving the data through the scratch pad register. It is characterized by transmitting.

상기 적어도 세 개의 호스트가 상기 호스트 아답터를 통해 직접 연결되지 않는 호스트 아답터간 링 토폴로지에서, 특정 호스트가 데이터와 상기 정보를 수신함에 따라, 상기 정보에 포함된 상기 데이터를 수신할 호스트의 식별번호를 자신 호스트의 식별번호와 비교하고, 일치하는 경우 상기 메모리 윈도우에서 상기 데이터를 읽어들이고, 일치하지 않는 경우 수신된 데이터를 이웃 호스트로 포워딩하는 것을 특징으로 한다.In a ring topology between host adapters in which the at least three hosts are not directly connected through the host adapter, as a specific host receives data and the information, the identification number of the host that will receive the data included in the information is itself It compares with the identification number of the host, reads the data from the memory window if they match, and forwards the received data to a neighboring host if they do not match.

본 발명의 한 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 방법은 적어도 세 개의 호스트와, 상기 적어도 세 개의 호스트에 각각 연결되고 적어도 두 개의 NTB 포트를 포함하는 적어도 세 개의 호스트 아답터를 포함하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템에서 데이터를 공유하는 방법에 있어서, 송신 호스트가 상기 호스트 아답터들을 통해 데이터를 송신하고, 송신 호스트의 식별번호, 데이터의 목적지 호스트 식별번호를 정보로 송신하는 단계(S100), 상기 송신 호스트에 연결된 호스트가 데이터를 수신하는 단계(S200), 데이터를 수신한 호스트가 상기 정보에 포함된 상기 목적지 호스트 식별번호에 대해, 자신 호스트 식별번호와 일치여부를 판단하는 단계(Q100), 그리고 상기 판단 단계(Q100)의 수행 결과 상기 정보에 포함된 상기 목적지 호스트 식별번호가 자신 호스트 식별번호와 일치함에 따라, 상기 데이터를 수신한 호스트가 메모리 윈도우에 복사된 메모리 영역을 통해 데이터를 확인하는 단계(S310)와, 상기 판단 단계(Q100)의 수행 결과 상기 정보에 포함된 상기 목적지 호스트 식별번호가 자신 호스트 식별번호와 불일치함에 따라, 상기 데이터를 수신한 호스트가 이웃 호스트로 데이터를 포워딩하는 단계(S320) 중 어느 한 단계를 수행하는 단계를 포함하여 이루어지는 것을 특징으로 한다.A method for sharing data between multiple hosts based on PCIE NTB according to an embodiment of the present invention includes at least three hosts and at least three host adapters each connected to the at least three hosts and including at least two NTB ports. In a method for sharing data in a PCIE NTB-based data sharing system between multiple hosts, the step of: a sending host transmits data through the host adapters, and transmits an identification number of a sending host and a destination host identification number of the data as information (S100), the step of receiving data by the host connected to the sending host (S200), the step of the receiving host to determine whether the destination host identification number included in the information matches its own host identification number (Q100), and as a result of performing the determination step (Q100), as the destination host identification number included in the information matches its host identification number, the host that received the data through the memory area copied to the memory window As a result of performing the data verification step (S310) and the determination step (Q100), the destination host identification number included in the information is inconsistent with its own host identification number. It characterized in that it comprises the step of performing any one of the step of forwarding (S320).

이러한 특징에 따르면, 본원 발명의 한 실시예에 따른 PCIe NTB 기반의 다중 호스트간 데이터 공유 시스템 및 방법은 다중 호스트 클러스터가 기존의 인터커넥트 기술에 의존하지 않고 PCIe NTB 기반으로 데이터를 고속으로 공유할 수 있어, 저비용 고성능 슈퍼컴퓨터를 구현할 수 있는 효과가 있다.According to these features, the PCIe NTB-based data sharing system and method between multiple hosts according to an embodiment of the present invention allows multiple host clusters to share data at high speed based on PCIe NTB without relying on the existing interconnect technology. , It has the effect of implementing a low-cost, high-performance supercomputer.

도 1은 본 발명의 한 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템의 개략적인 구조를 나타낸 블록도이다.
도 2는 본 발명의 한 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템에서 메모리 윈도우의 구조를 나타낸 블록도이다.
도 3은 본 발명의 한 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템의 개략적인 구조를 나타낸 블록도이다.
도 4는 본 발명의 한 실시예에 따른 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 방법의 개략적인 흐름을 나타낸 순서도이다.
도 5는 본 발명의 한 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 방법 중 송신 호스트가 데이터를 송신하는 단계를 자세히 나타낸 순서도이다.
1 is a block diagram showing a schematic structure of a PCIE NTB-based data sharing system between multiple hosts according to an embodiment of the present invention.
2 is a block diagram showing the structure of a memory window in a data sharing system between multiple hosts based on PCIE NTB according to an embodiment of the present invention.
3 is a block diagram showing a schematic structure of a PCIE NTB-based data sharing system between multiple hosts according to an embodiment of the present invention.
4 is a flowchart illustrating a schematic flow of a method for sharing data between multiple hosts based on PCIE NTB according to an embodiment of the present invention.
5 is a flow chart illustrating in detail a step of a transmitting host transmitting data in a method for sharing data between multiple hosts based on PCIE NTB according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art can easily implement the embodiments of the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and similar reference numerals are assigned to similar parts throughout the specification.

도 1은 본 발명의 한 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템의 개략적인 구조를 나타낸 블록도이고, 도 2는 본 발명의 한 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템에서 메모리 윈도우의 구조를 나타낸 블록도이고, 도 3은 본 발명의 한 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템의 개략적인 구조를 나타낸 블록도이고, 도 4는 본 발명의 한 실시예에 따른 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 방법의 개략적인 흐름을 나타낸 순서도이고, 도 5는 본 발명의 한 실시예에 따른 PCIE NTB 기반의 다중 호스트간 데이터 공유 방법 중 송신 호스트가 데이터를 송신하는 단계를 자세히 나타낸 순서도이다.1 is a block diagram showing a schematic structure of a PCIE NTB-based multi-host data sharing system according to an embodiment of the present invention, and FIG. 2 is a PCIE NTB-based multi-host data according to an embodiment of the present invention. A block diagram showing the structure of a memory window in a sharing system, and FIG. 3 is a block diagram showing a schematic structure of a PCIE NTB-based data sharing system between multiple hosts according to an embodiment of the present invention, and FIG. A flow chart showing a schematic flow of a method for sharing data between multiple hosts based on PCIE NTB according to an embodiment, and FIG. 5 is a flowchart showing a method for sharing data between multiple hosts based on PCIE NTB according to an embodiment of the present invention. This is a flow chart detailing the steps for transmitting data.

도 1을 참조로 하는 본 실시예에서, PCIe NTB 기반의 다중 호스트간 데이터 공유 시스템(1)은 적어도 세 개의 호스트인 제1 내지 제3 호스트(10, 20, 30)와, 제1 내지 제3 호스트(10, 20, 30)에 각각 연결된 제1 내지 제3 호스트 아답터(100, 200, 300)를 포함한다.In this embodiment with reference to FIG. 1, the PCIe NTB-based multi-host data sharing system 1 includes first to third hosts 10, 20, 30, which are at least three hosts, and the first to third hosts. It includes first to third host adapters 100, 200, and 300 connected to the hosts 10, 20, and 30, respectively.

제1 내지 제3 호스트(10, 20, 30)는 독립된 각각의 컴퓨터로서, 각각의 호스트(10, 20, 30)는 제1 내지 제3 CPU(Central Processing Unit)(11, 21, 31)와 제1 내지 제3 메모리(12, 22, 32)를 포함한다.The first to third hosts 10, 20, and 30 are independent computers, and each of the hosts 10, 20, and 30 includes first to third CPUs (Central Processing Units) 11, 21, and 31. It includes first to third memories 12, 22 and 32.

제1 내지 제3 CPU(11, 21, 31)는 제1 내지 제3 호스트(10, 20, 30)가 제1 내지 제3 호스트 아답터(100, 200, 300)를 통해 다른 호스트와 데이터를 송수신하도록 처리한다. 한 예에서, 제1 CPU(11)는 제1 호스트(10)가 제1 호스트 아답터(100)를 통해 제2 호스트(20) 및 제3 호스트(30)와 각각 데이터를 송수신하도록 처리하고, 제2 CPU(21)는 제2 호스트(20)가 제2 호스트 아답터(200)를 통해 제1 호스트(10) 및 제3 호스트(30)와 각각 데이터를 송수신하도록 처리하며, 제3 CPU(31)는 제3 호스트(30)가 제3 호스트 아답터(300) 및 제3 NTB(32)를 통해 제1 호스트(10)와 데이터를 송수신하도록 처리하고, 제3 호스트(30)가 제3 호스트 아답터(300) 및 제2 NTB(42)를 통해 제2 호스트(20)와 데이터를 송수신하도록 처리한다.The first to third CPUs (11, 21, 31) transmit and receive data to and from other hosts through the first to third host adapters (100, 200, 300) by the first to third hosts (10, 20, 30) Process to do it. In one example, the first CPU 11 processes the first host 10 to transmit and receive data to and from the second host 20 and the third host 30 through the first host adapter 100, respectively, and 2 The CPU 21 processes the second host 20 to transmit and receive data to and from the first host 10 and the third host 30 through the second host adapter 200, respectively, and the third CPU 31 Is processed so that the third host 30 transmits and receives data to and from the first host 10 through the third host adapter 300 and the third NTB 32, and the third host 30 transmits and receives data to and from the third host adapter. 300) and the second NTB 42 to transmit and receive data to and from the second host 20.

이처럼, 제1 내지 제3 CPU(11, 21, 31)가 제1 내지 제3 호스트 아답터(100, 200, 300)를 통해 호스트간 데이터를 송수신 처리하는 구조를 가지므로, 적어도 세 개 이상의 호스트를 포함하는 다중 호스트 클러스터가 PCIe NTB 기반의 인터커넥트 네트워크로 구현되고, 이에 따라, PCIe NTB 기반의 HPC 시스템을 저비용으로 구현할 수 있는 효과가 있다.As described above, since the first to third CPUs 11, 21, and 31 have a structure that transmits and receives data between hosts through the first to third host adapters 100, 200, and 300, at least three or more hosts are The included multi-host cluster is implemented as a PCIe NTB-based interconnect network, and accordingly, it is possible to implement a PCIe NTB-based HPC system at low cost.

제1 내지 제3 호스트(10, 20, 30)의 제1 내지 제3 CPU(11, 21, 31)가 제1 내지 제3 호스트 아답터(100, 200, 300)를 통해 호스트간 데이터 송수신을 처리하는 일 실시예를 자세히 설명하면, 제1 CPU(11)는 제1 호스트 아답터(100)의 제1-1 NTB 포트(101)를 통해 제3 호스트 아답터(300)에 접속하여 제3 호스트(30)와 데이터를 공유하고, 제1 호스트 아답터(100)의 제1-2 NTB 포트(102)를 통해 제2 호스트 아답터(200)에 접속하여 제2 호스트(20)와 데이터를 공유한다.The first to third CPUs 11, 21, 31 of the first to third hosts 10, 20, 30 process data transmission/reception between hosts through the first to third host adapters 100, 200, 300 In detail, the first CPU 11 connects to the third host adapter 300 through the 1-1 NTB port 101 of the first host adapter 100 and connects to the third host 30. ) And share data, and share data with the second host 20 by connecting to the second host adapter 200 through the 1-2 NTB port 102 of the first host adapter 100.

이때, 제1 내지 제3 호스트 아답터(100, 200, 300)가 도 1에 도시한 것처럼 링 토폴로지 구조를 갖는 일 예에서, 네트워크에 포함된 각 호스트들은 자신 호스트에 연결된 호스트 아답터가 접속하는 다른 호스트 아답터들, 자세하게는, 제1 호스트(10)에 연결된 제1 호스트 아답터(100)가 접속하는 제2 호스트 아답터(200) 또는 제3 호스트 아답터(300)를 통해 자신 호스트 외의 나머지 호스트들과 데이터를 공유하는데, 이때, 하나의 호스트 아답터가 두 개의 서로 다른 호스트 아답터에 연결되는 구조를 가짐에 따라 각 호스트가 네트워크에 형성된 다른 모든 호스트들과 각각 데이터를 공유할 수 있게 된다. At this time, in an example in which the first to third host adapters 100, 200, and 300 have a ring topology structure as shown in FIG. 1, each host included in the network is another host connected to the host adapter connected to the host Adapters, in detail, through the second host adapter 200 or the third host adapter 300 connected by the first host adapter 100 connected to the first host 10 In this case, as one host adapter is connected to two different host adapters, each host can share data with all other hosts formed in the network.

제1 내지 제3 CPU(11, 21, 31)가 호스트간 데이터를 공유하는 일 실시예에서, 제1 내지 제3 CPU(11, 21, 31)는 자신 호스트 외의 다른 호스트에 대한 메모리 어드레스 영역을 생성하고, 생성한 메모리 어드레스 영역을 참조하여 호스트간 데이터를 공유한다. 한 예에서, 제1 내지 제3 CPU(11, 21, 31)는 제1 내지 제3 호스트 아답터(100, 200, 300)를 통해 제1 내지 제3 호스트(10, 20, 30)가 링 토폴로지 구조로 최초 형성될 때 자신 호스트 외의 다른 호스트들에 대해 메모리 어드레스 영역을 생성한다.In an embodiment in which the first to third CPUs 11, 21, and 31 share data between hosts, the first to third CPUs 11, 21, and 31 are provided with memory address areas for hosts other than their own host. It is created, and data is shared between hosts by referring to the created memory address area. In one example, the first to third CPUs 11, 21, 31 are connected to the first to third hosts 10, 20, 30 through the first to third host adapters 100, 200, and 300 in a ring topology. When the structure is initially formed, it creates memory address areas for hosts other than its own host.

제1 CPU(11)는 제2 호스트(20)에 대한 메모리 어드레스 영역과 제3 호스트(30)에 대한 메모리 어드레스 영역을 각각 분리된 메모리 어드레스 영역으로 생성하고, 이를 제1 메모리(12)에 저장할 수 있다.The first CPU 11 creates a memory address area for the second host 20 and a memory address area for the third host 30 as separate memory address areas, and stores them in the first memory 12. I can.

그리고, 제2 CPU(12)는 제1 호스트(10)에 대한 메모리 어드레스 영역과 제3 호스트(30)에 대한 메모리 어드레스 영역을 각각 분리된 메모리 어드레스 영역으로 생성하여 제2 메모리(12)에 저장하며, 제3 CPU(13)는 1 호스트(10)에 대한 메모리 어드레스 영역과 제2 호스트(20)에 대한 메모리 어드레스 영역을 각각 분리된 메모리 어드레스 영역으로 생성하여 제3 메모리(13)에 저장한다.In addition, the second CPU 12 creates a memory address area for the first host 10 and a memory address area for the third host 30 as separate memory address areas and stores them in the second memory 12. The third CPU 13 generates a memory address area for the first host 10 and a memory address area for the second host 20 as separate memory address areas and stores them in the third memory 13. .

이때, 제1 내지 제3 CPU(11, 21, 31)는 자신 호스트 외의 다른 호스트에 대한 메모리 어드레스 영역을 각 호스트에 대한 메모리 윈도우로 할당하여 이를 제1 내지 제3 메모리(12, 22, 32)에 저장할 수 있다. 일 예에서, 제1 CPU(11)는 제1 호스트 아답터(100)의 제1-1 NTB 포트(101)에 연결된 제3 호스트(30)에 대한 메모리 윈도우를 생성하여 제1 메모리(12)에 저장하고, 제1 호스트 아답터(100)의 제1-2 NTB 포트(102)에 연결된 제2 호스트(20)에 대한 메모리 윈도우를 생성하여 제1 메모리(12)에 저장한다. At this time, the first to third CPUs 11, 21, and 31 allocate a memory address area for a host other than their own host as a memory window for each host, and the first to third memories 12, 22, and 32 Can be saved on. In one example, the first CPU 11 creates a memory window for the third host 30 connected to the 1-1 NTB port 101 of the first host adapter 100 and stores the memory window in the first memory 12. Then, a memory window for the second host 20 connected to the 1-2th NTB port 102 of the first host adapter 100 is generated and stored in the first memory 12.

이와 같이, 호스트에 형성된 CPU가 호스트 아답터의 NTB 포트에 연결된 다른 호스트에 대한 메모리 윈도우를 각각 할당하여 이를 호스트에 형성된 메모리에 저장함에 따라, 제1 CPU(10)는 제1 메모리(12)에 저장된 메모리 윈도우를 참조하여 제1 호스트(10) 및 제2 호스트(20) 사이의 데이터 송수신을 처리하거나 제1 호스트(10) 및 제3 호스트(30) 사이의 데이터 송수신을 처리한다.In this way, as the CPU formed in the host allocates memory windows for other hosts connected to the NTB port of the host adapter and stores them in the memory formed in the host, the first CPU 10 is stored in the first memory 12. Data transmission/reception between the first host 10 and the second host 20 is processed with reference to the memory window, or data transmission/reception between the first host 10 and the third host 30 is processed.

이때, 도 2를 참조로 하는 일 예에서, PCIe NTB 기반의 다중 호스트간 데이터 공유 시스템(1a)은 제1 호스트(10)에 형성되는 메모리 윈도우(120)는 자신 호스트에 연결된 다른 호스트들에 대한 메모리 윈도우를 분리하여 포함하는데, 제2 호스트에 대한 메모리 윈도우(121)와 제3 호스트에 대한 메모리 윈도우(122)를 포함한다. 그리고, 각 호스트에 대한 메모리 윈도우(121, 122)는 데이터 수신을 위한 메모리 윈도우(1211, 1221)와 데이터 송신을 위한 메모리 윈도우(1212, 1222)로 세부 항목을 포함할 수 있다.At this time, in an example with reference to FIG. 2, in the PCIe NTB-based multi-host data sharing system 1a, the memory window 120 formed in the first host 10 is for other hosts connected to the host. The memory window is separated and included, and includes a memory window 121 for a second host and a memory window 122 for a third host. Further, the memory windows 121 and 122 for each host may include detailed items such as memory windows 1211 and 1221 for receiving data and memory windows 1212 and 1222 for transmitting data.

서로 다른 호스트와 데이터를 공유하는 메모리 윈도우가 분리되어 형성되고, 그 중에서도 데이터를 수신하는 부분과 데이터를 송신하는 부분을 분리하여 형성하는 구조를 가짐에 따라, 다중 호스트 클러스터에서 PCIe NTB 기반의 인터커넥트 네트워크의 신뢰성이 향상된다.As the memory window that shares data with different hosts is formed separately, and has a structure in which the data receiving part and the data transmitting part are separated and formed, PCIe NTB-based interconnect network in a multi-host cluster The reliability of the product is improved.

그리고, 제1 메모리(12)에 할당된 메모리 윈도우의 주소는 제1 호스트 아답터(100)의 변환 레지스터(Translation Register)를 통해 주소 변환되어 제1 호스트 아답터(100)의 제1-1 NTB 포트(101)에 연결된 제3 호스트(30)의 제3 메모리(32)에 접속되거나, 또는 제1-2 NTB 포트(102)를 통해 연결된 제2 호스트(20)의 제2 메모리(22)에 접속되며, 메모리 윈도우 및 호스트 아답터는 두 호스트간 메모리에 접근할 수 있는 통로가 된다.In addition, the address of the memory window allocated to the first memory 12 is converted through a translation register of the first host adapter 100 to be converted to the first NTB port of the first host adapter 100 ( It is connected to the third memory 32 of the third host 30 connected to 101, or the second memory 22 of the second host 20 connected through the 1-2 NTB port 102, , The memory window and the host adapter become a path to access the memory between the two hosts.

그러나, 도 3을 참조로 하는 다른 일 예에서, 제1 내지 제4 호스트 아답터(100, 200, 300, 400)들은 도 1에 도시한 호스트 아답터들이 링 토폴로지를 갖는 것과 동일하게 링 토폴로지로 형성되지만, 제1 내지 제 호스트 아답터(100, 200, 300, 400)들은 각각 서로 다른 두 개의 호스트 아답터에만 연결되는 구조를 가지므로, 제1 호스트(10)와 제3 호스트(30)는 제1 호스트 아답터(100) 및 제3 호스트 아답터(300)를 통해 직접 연결되지 않는 구조를 갖고, 제2 호스트(20)와 제4 호스트(40) 또한 제2 호스트 아답터(200) 및 제4 호스트 아답터(400)를 통해 직접 연결되지 않는 구조를 갖는다. However, in another example with reference to FIG. 3, the first to fourth host adapters 100, 200, 300, and 400 are formed in a ring topology in the same manner that the host adapters shown in FIG. 1 have a ring topology. , Since the first to the first host adapters 100, 200, 300, and 400 each have a structure that is connected only to two different host adapters, the first host 10 and the third host 30 are the first host adapters It has a structure that is not directly connected through the 100 and the third host adapter 300, the second host 20 and the fourth host 40, and the second host adapter 200 and the fourth host adapter 400 It has a structure that is not directly connected through.

따라서, 도 3과 같이 적어도 네 개의 호스트를 포함하는 구조에서 호스트 아답터를 통해 직접 연결되지 않는 호스트들이 존재하는 경우, 직접 연결되지 않은 호스트간 데이터 공유를 위해 각 호스트에 식별번호(ID)를 부여하고 이를 이용하여 데이터를 공유한다. Therefore, when there are hosts that are not directly connected through host adapters in a structure including at least four hosts as shown in FIG. 3, an identification number (ID) is assigned to each host to share data between hosts that are not directly connected. Use this to share data.

또는, 다른 일 실시예에서, 제1 내지 제4 호스트 아답터(100, 200, 300, 400)가 자신 호스트(10, 20, 30, 40)에 식별번호를 각각 부여하고 이를 호스트의 제1 내지 제4 메모리(12, 22, 32, 42)에 저장할 수 있으며, 링 토폴로지 구조 초기 형성시 제1 내지 제4 호스트(10, 20, 30, 40)에 식별번호를 부여하는 주체를 한정하지는 않아야 할 것이다. Or, in another embodiment, the first to fourth host adapters 100, 200, 300, and 400 each assign identification numbers to their hosts 10, 20, 30, and 40, respectively, and 4 Can be stored in the memory (12, 22, 32, 42), and the initial formation of the ring topology structure should not limit the subject that assigns identification numbers to the first to fourth hosts (10, 20, 30, 40). .

본 명세서에서는 각 호스트 아답터가 두 개의 NTB 포트를 각각 구비하여 다른 호스트와 연결되는 구조로 구현되는 일 실시예에 대해 설명하지만, 다른 한 예에서, 호스트 아답터 및 이의 NTB 포트는 다른 형태의 토폴로지로 확장 구현될 수 있고, 이 경우, 다중 포트로 연결되는 구조를 확장 구현할 수 있으며, 이를 한정하지는 않는다.In this specification, an embodiment in which each host adapter is implemented in a structure in which each host adapter is connected to another host by having two NTB ports, respectively, is described, but in another example, the host adapter and its NTB port are extended to a different topology. It may be implemented, and in this case, a structure connected by multiple ports may be extended, but is not limited thereto.

일 실시예에서, 제1 호스트(10)와 제3 호스트(30) 사이의 데이터 공유 또는 제2 호스트(20)와 제4 호스트(40) 사이의 데이터 공유를 위해, 제1 호스트(10)의 제1 메모리(12)는 제1 호스트(10)의 식별변호를 저장하고, 제2 호스트(20)의 제2 메모리(22)는 제2 호스트(20)의 식별번호를 저장하고, 제3 호스트(30)의 제3 메모리(32)는 제3 호스트(30)의 식별번호를 저장하며, 제4 호스트(40)의 제4 메모리(42)는 제4 호스트(40)의 식별번호를 저장한다.In one embodiment, for data sharing between the first host 10 and the third host 30 or between the second host 20 and the fourth host 40, the first host 10 The first memory 12 stores the identification code of the first host 10, the second memory 22 of the second host 20 stores the identification number of the second host 20, and the third host The third memory 32 of 30 stores the identification number of the third host 30, and the fourth memory 42 of the fourth host 40 stores the identification number of the fourth host 40. .

제1 내지 제4 메모리(12, 22, 32, 42)가 각각 저장하는 제1 내지 제4 호스트(10, 20, 30, 40)의 식별번호는 제1 내지 제4 호스트(10, 20, 30, 40)가 제1 내지 제4 호스트 아답터(100, 200, 300, 400)를 통해 링 토폴로지 구조로 형성될 때 부여될 수 있으며, 제1 내지 제4 호스트(10, 20, 30, 40)에 부여되는 식별번호의 형태를 한정하지는 않는다.The identification numbers of the first to fourth hosts 10, 20, 30, 40 stored by the first to fourth memories 12, 22, 32, and 42, respectively, are the first to fourth hosts 10, 20, 30 , 40) may be provided when formed in a ring topology structure through the first to fourth host adapters 100, 200, 300, 400, and the first to fourth hosts 10, 20, 30, 40 It does not limit the type of identification number assigned.

다중 호스트 클러스터가 링 토폴로지 구조로 형성될 때 제1 내지 제4 호스트(10, 20, 30, 40)가 자신 호스트에 각각 식별번호를 부여하는 일 실시예에서, 제1 내지 제4 호스트(10, 20, 30, 40)의 제1 내지 제4 CPU(11, 21, 31, 41)가 자신 호스트에 각각 식별번호를 부여하고, 이를 제1 내지 제4 메모리(12, 22, 32, 42)에 각각 저장할 수 있다.In an embodiment in which the first to fourth hosts 10, 20, 30, and 40 each assign identification numbers to their hosts when a multi-host cluster is formed in a ring topology structure, the first to fourth hosts 10, The first to fourth CPUs (11, 21, 31, 41) of 20, 30, 40) assign identification numbers to their hosts, respectively, and this in the first to fourth memories (12, 22, 32, 42). Each can be saved.

이때, 제1 내지 제4 CPU(11, 21, 31, 41)는 링 토폴로지를 구성하는 제1 내지 제4 호스트(10, 20, 30, 40)에 대한 식별번호를 각각 매칭하여 링 테이블로 형성하고, 이를 제1 내지 제4 메모리(12, 22, 32, 42)에 저장하며, 호스트간 데이터 공유시 링 테이블을 참조하여 데이터를 송수신 처리할 수 있다. At this time, the first to fourth CPUs (11, 21, 31, 41) form a ring table by matching identification numbers for the first to fourth hosts (10, 20, 30, 40) constituting the ring topology. And, the data is stored in the first to fourth memories 12, 22, 32, and 42, and data can be transmitted/received by referring to the ring table when data is shared between hosts.

한 예에서, 제1 CPU(11)는 제1 호스트(10) 외의 나머지 호스트들의 식별번호를 링 테이블로 생성하여 제1 메모리(12)에 저장하고, 제2 CPU(12)는 제2 호스트(20) 외의 나머지 호스트들의 식별번호를 링 테이블로 생성하여 제2 메모리(22)에 저장하며, 제3 CPU(13)는 제3 호스트(30) 외의 나머지 호스트들의 식별번호를 링 테이블로 생성하여 제3 메모리(32)에 저장하고, 제4 CPU(14)는 제4 호스트(40) 외의 나머지 호스트들의 식별번호를 링 테이블로 생성하여 제4 메모리(42)에 저장하여, 제1 내지 제4 CPU(11, 21, 31, 41)가 호스트간 데이터 공유시 제1 내지 제4 메모리(12, 22, 32, 42)에 저장된 링 테이블에서 호스트 식별번호를 참조하여 자신 호스트와 다른 호스트간 데이터 송수신을 처리한다.In one example, the first CPU 11 generates identification numbers of hosts other than the first host 10 as a ring table and stores them in the first memory 12, and the second CPU 12 is a second host ( 20) The identification numbers of the other hosts are generated as a ring table and stored in the second memory 22, and the third CPU 13 generates the identification numbers of the other hosts other than the third host 30 as a ring table. 3 stored in the memory 32, and the fourth CPU 14 generates identification numbers of the remaining hosts other than the fourth host 40 as a ring table and stores them in the fourth memory 42, and the first to fourth CPUs When (11, 21, 31, 41) shares data between hosts, data transmission/reception between its host and other hosts is performed by referring to the host identification number in the ring table stored in the first to fourth memories (12, 22, 32, 42). Process.

제1 내지 제4 CPU(11, 21, 31, 41)는 자신 호스트가 다른 호스트로 데이터를 송신하기 위한 식별번호와 자신 호스트가 다른 호스트로부터 데이터를 수신하기 위한 식별번호를 별도로 구비하고, 일 실시예에서, 제1 CPU(11)는 다음의 표 1과 같이 링 테이블을 생성 및 참조할 수 있다. The first to fourth CPUs (11, 21, 31, 41) separately have an identification number for the host to transmit data to another host and an identification number for the host to receive data from another host. In an example, the first CPU 11 may create and refer to a ring table as shown in Table 1 below.

호스트Host 식별번호Identification number 제1 호스트First host 소스sauce 1111 목적지destination 1212 제2 호스트Second host 송신(제1 호스트->제2 호스트)Send (Host 1 -> Host 2) 2121 수신(제1 호스트<-제2 호스트)Incoming (host 1<-host 2) 2222 제3 호스트3rd host 송신(제1 호스트->제3 호스트)Send (Host 1 -> Host 3) 3131 수신(제1 호스트<-제3 호스트)Incoming (host 1<-host 3) 3232 제4 호스트4th host 송신(제1 호스트->제4 호스트)Send (Host 1 -> Host 4) 4141 수신(제1 호스트<-제4 호스트)Incoming (host 1<-host 4) 4242

표 1과 같이, 제1 CPU(11)가 자신 호스트(10) 외의 다른 호스트들(20, 30, 40)에 대한 식별번호를 링 테이블로 구비하되, 각 호스트에 대한 식별번호를 호스트와의 데이터 송신 및 수신을 위한 식별번호로서 포함함에 따라, 제1 호스트(10)가 제1 호스트(10)와 제1 호스트 아답터(100)를 통해 직접 연결되지 않은 제3 호스트(30)로 데이터를 송신할 때, 링 테이블에 구비된 제3 호스트(30)의 식별번호(31)를 참조하여 제1 호스트(10)와 제3 호스트(30)간 데이터를 공유할 수 있게 된다. 이에 따라, 링 토폴로지 구조로 형성된 다중 호스트 클러스터에서 호스트간 호스트 아답터로 직접 연결되지 않더라도 식별번호를 이용하여 호스트간 데이터를 공유할 수 있는 PCIe NTB 기반의 인터커넥트 네트워크가 구현된다.As shown in Table 1, the first CPU 11 has an identification number for hosts 20, 30, and 40 other than its own host 10 as a ring table, but the identification number for each host is data with the host. As it is included as an identification number for transmission and reception, the first host 10 transmits data to the third host 30 that is not directly connected through the first host 10 and the first host adapter 100. In this case, data can be shared between the first host 10 and the third host 30 by referring to the identification number 31 of the third host 30 provided in the ring table. Accordingly, in a multi-host cluster formed in a ring topology structure, a PCIe NTB-based interconnect network capable of sharing data between hosts using an identification number is implemented even if the host is not directly connected to the host adapter.

이때, 호스트간 데이터 공유는, 공유할 데이터 영역의 메모리를 복사하는 방법 또는 DMA(direct memory access)를 통해 수행된다.In this case, data sharing between hosts is performed through a method of copying a memory of a data area to be shared or through direct memory access (DMA).

위의 표 1과 도 2 및 도 3을 참조하는 일 실시예에서, 제1 호스트(10)가 호스트 아답터를 통해 직접 연결된 제2 호스트(20)로 데이터를 전송하는 경우, 데이터를 송신하는 소스(source)는 제1 호스트(10)이고 데이터를 수신하는 목적지(destination)는 제2 호스트(20)이므로, 제1 호스트(10)의 제1 CPU(11)는 소스 식별번호(SrcId)를 자신 호스트의 식별번호인 11로 설정하고, 데이터를 수신할 예정인 목적지 식별번호(DestId)를 제2 호스트의 수신 식별번호인 22로 지정한다. In an embodiment referring to Table 1 and FIGS. 2 and 3 above, when the first host 10 transmits data to the second host 20 directly connected through the host adapter, the source for transmitting data ( source) is the first host 10 and the destination for receiving data is the second host 20, so the first CPU 11 of the first host 10 uses the source identification number (SrcId) as its host It is set to 11, which is an identification number of, and designates a destination identification number (DestId) to receive data as 22, which is a reception identification number of the second host.

이때, 제1 호스트(10)와 제2 호스트(20)는 직접 데이터 전송이 가능하도록 연결된 구조를 가지므로, 제1 CPU(11)는 제2 호스트(20)로 송신할 데이터 내용을, 제1 메모리 윈도우(120)의 제2 호스트에 대한 메모리 윈도우(121) 중 데이터 송신을 위한 메모리 윈도우(1212)에 기록한다. 이때, 데이터 송신을 위한 메모리 윈도우(1212)에 기록되는 데이터 내용은 제1 메모리(12)에 저장된 적어도 일부의 데이터로서, 제1 CPU(11)는 해당 데이터가 저장되어 있던 제1 메모리(12)의 데이터 영역의 메모리를 메모리 윈도우(1212)에 복사한다.At this time, since the first host 10 and the second host 20 have a structure connected to enable direct data transmission, the first CPU 11 transmits the data content to be transmitted to the second host 20. The memory window 120 is written to a memory window 1212 for data transmission among the memory windows 121 for the second host. At this time, the data contents recorded in the memory window 1212 for data transmission are at least some data stored in the first memory 12, and the first CPU 11 is the first memory 12 in which the corresponding data is stored. The memory of the data area of is copied to the memory window 1212.

또는, 제1 CPU(11)는 제1 호스트(10)에서 제2 호스트(20)로 송신하고자 하는 데이터 내용을 DMA를 통해 제2 호스트(20)로 송신할 수 있는데, 이때, 제1 호스트 아답터(100)를 통해 제2 호스트(20)에 직접 접속하여 송신하고자 하는 데이터를 공유한다.Alternatively, the first CPU 11 may transmit the data content to be transmitted from the first host 10 to the second host 20 to the second host 20 through DMA. In this case, the first host adapter The data to be transmitted is shared by directly connecting to the second host 20 through (100).

이처럼, 제1 호스트 아답터(100)를 통해 연결된 제1 호스트(10) 및 제2 호스트(20)간 공유 메모리인 제1 메모리 윈도우(120)를 통해 데이터를 공유하거나 또는 DMA를 통해 데이터를 공유하고, 소스 식별번호(SrcId), 목적지 식별번호(DestId), 메모리 주소, 전송 데이터 크기와 같은 정보들은 제1 호스트(10) 및 제2 호스트(20) 사이에 연결된 스크래치패드 레지스터(ScratchPad Register)를 통해 제1 호스트(10)에서 제2 호스트(20)로 전송된다. In this way, data is shared through the first memory window 120, which is a shared memory between the first host 10 and the second host 20 connected through the first host adapter 100, or data is shared through DMA. , Information such as source identification number (SrcId), destination identification number (DestId), memory address, and transmission data size are provided through a scratchpad register connected between the first host 10 and the second host 20. It is transmitted from the first host 10 to the second host 20.

한 예에서, 제1 및 제2 호스트(10, 20) 사이를 연결하는 스크래치패드 레지스터는 도면에 도시하지는 않았으나, 링 토폴로지 구조로 형성되는 다중 호스트 클러스터에서 서로 다른 두 호스트 사이에 형성된다.In one example, the scratchpad register connecting the first and second hosts 10 and 20 is not shown in the drawing, but is formed between two different hosts in a multi-host cluster formed in a ring topology structure.

제1 CPU(11)가 DMA를 통해 데이터를 제2 호스트(20)로 송신하는 일 예에서, 제1 CPU(11)는 DMA를 통해 데이터를 전송 완료 후, 도어벨 레지스터(Doorbell Register)를 통해 제2 호스트(20)에게 DMA 데이터 전송을 알리는 인터럽트를 발생시켜, 상대 호스트에게 데이터 전송하였음을 알린다.In an example in which the first CPU 11 transmits data to the second host 20 through DMA, the first CPU 11 transmits data through DMA, and then through a doorbell register. An interrupt notifying the second host 20 of DMA data transfer is generated, and the data transfer is notified to the other host.

이때, 인터럽트를 수신한 호스트는 목적지 식별번호가 자신 호스트인지를 확인하여, 해당 인터럽트와 관련된 데이터 수신자가 자신 호스트인 경우, DMA를 통해 수신한 메모리 주소로부터 자신에게 직접 전송된 데이터를 확인할 수 있다.At this time, the host receiving the interrupt can check whether the destination identification number is its own host, and if the data receiver related to the interrupt is its own host, the data directly transmitted to itself from the memory address received through the DMA can be checked.

그러나 이때, 인터럽트와 관련된 데이터 수신자가 자신 호스트가 아닌 경우, 즉, 목적지 식별번호(DestId)가 자신 호스트의 식별번호와 다른 경우, 전송받은 데이터를 다른 호스트로 포워딩하여, 해당 데이터의 목적지 식별번호와 동일한 호스트가 데이터를 수신할 때까지 데이터를 포워딩한다.However, at this time, if the data receiver related to the interrupt is not the host, that is, if the destination identification number (DestId) is different from the identification number of the host, the transmitted data is forwarded to another host, and the destination identification number of the data Data is forwarded until the same host receives it.

이처럼, 다중 호스트 클러스터가 PCIe NTB 기반의 호스트 아답터를 통해 데이터를 공유하는 구조를 가짐에 따라 고속의 데이터 공유가 가능해지고, 링 토폴로지 구조를 통해 PCIe NTB 기반의 네트워크 구조에서 세 개 이상의 다중 호스트 구조를 구현함으로써, 기술 의존적인 종래의 인터커넥트 기술과 대비되는 고성능 수퍼컴퓨터를 저비용으로 제공할 수 있는 효과가 있다.As such, as multiple host clusters share data through PCIe NTB-based host adapters, high-speed data sharing becomes possible, and three or more multi-host structures in PCIe NTB-based network structure through ring topology structure. By implementing, there is an effect of providing a high-performance supercomputer at low cost compared to the conventional interconnect technology dependent on technology.

다음으로, 도 1 내지 도 3의 구조를 갖는 PCIe NTB 기반의 다중 호스트간 데이터 공유 시스템에서의 데이터 공유방법을 도 4 및 도 5를 참조하여 설명하면, 송신 호스트가 데이터를 송신하는 단계(S100), 송신 호스트와 호스트 아답터로 연결된 호스트가 데이터를 수신하는 단계(S200), 데이터를 수신한 호스트가 목적지 식별번호의 일치여부를 판단하는 단계(Q100)에 따라 수행되는 메모리 윈도우에 복사된 메모리 영역을 통해 데이터를 확인하는 단계(S310) 또는 이웃 호스트로 데이터를 포워딩하는 단계(S320)를 포함하여 이루어진다.Next, the data sharing method in the PCIe NTB-based multi-host data sharing system having the structure of FIGS. 1 to 3 will be described with reference to FIGS. 4 and 5, the step of transmitting data by the transmitting host (S100) , The memory area copied to the memory window performed according to the step of receiving data by the sending host and the host connected by the host adapter (S200), and the step of determining whether the destination identification number is matched by the host receiving the data (Q100) Checking data through (S310) or forwarding data to a neighboring host (S320).

먼저, 송신 호스트가 데이터를 송신하는 단계(S100)는 특정 호스트가 데이터를 송신하는 단계로서, 도 5를 참조하여 자세히 설명하면, 송신 호스트 식별번호, 수신 호스트 식별번호를 소스 식별번호(SrcId)와 목적지 식별번호(DestId)로 설정하는 단계(S110), 송신 호스트의 메모리 윈도우에 송신할 데이터의 메모리 영역을 복사하는 단계(S120), 소스 식별번호, 목적지 식별번호, 메모리 주소, 전송 데이터 크기의 정보를 스크래치패드 레지스터를 통해 전송하는 단계(S130), 그리고 송신 호스트가 데이터 송신을 알리는 인터럽트를 발생하는 단계(S140)를 포함하여 이루어진다.First, the step of transmitting data by a sending host (S100) is a step in which a specific host transmits data, and will be described in detail with reference to FIG. 5, the source identification number and the receiving host identification number Setting the destination identification number (DestId) (S110), copying the memory area of the data to be transmitted to the memory window of the sending host (S120), information on the source identification number, destination identification number, memory address, and transmission data size Transmitting the data through the scratch pad register (S130), and generating an interrupt informing the transmission host of data transmission (S140).

이때, 송신 호스트 식별번호, 수신 호스트 식별번호를 소스 식별번호(SrcId)와 목적지 식별번호(DestId)로 설정하는 단계(S110)는 데이터를 송신하는 송신 호스트가 데이터 송신호스트 및 데이터 수신호스트의 식별번호를 다중 호스트 클러스터 생성시 정의된 표 1의 식별번호 링 테이블을 참조하여 설정하는 단계이다.At this time, the step of setting the sending host identification number and the receiving host identification number as a source identification number (SrcId) and a destination identification number (DestId) (S110) is the identification number of the data transmission host and the data receiving host by the transmission host This is the step of setting by referring to the identification number ring table in Table 1 defined when creating a multi-host cluster.

다음 단계(S120)에서는, 송신 호스트가 송신하고자 하는 데이터의 메모리 영역을 송신 호스트의 메모리 윈도우에 복사하는 단계로서, 송신 호스트의 메모리 윈도우에 데이터 영역을 복사함에 따라, 해당 데이터가 공유되게 된다.In the next step (S120), the transmitting host copies the memory area of the data to be transmitted to the memory window of the transmitting host. As the data area is copied to the memory window of the transmitting host, the corresponding data is shared.

그리고, 소스 식별번호, 목적지 식별번호, 메모리 주소, 전송 데이터 크기의 정보를 스크래치패드 레지스터를 통해 전송하는 단계(S130)에서는, 송신 호스트의 메모리 윈도우를 통해 메모리 영역으로서 전달되는 데이터에 대한 정보들을 스크래치패드 레지스터를 통해 전송하는 단계이고, 마지막으로, 송신 호스트가 데이터 송신을 알리는 인터럽트를 발생하는 단계(S140)는 송신 호스트의 도어벨 레지스터를 통해 데이터 송신을 알리는 인터럽트를 호스트 아답터를 통해 연결된 호스트로 발생한다.And, in the step (S130) of transmitting information on the source identification number, destination identification number, memory address, and transmission data size through the scratch pad register, the information on the data transmitted as the memory area through the memory window of the sending host is scratched. In the step of transmitting through the pad register, and finally, in the step of generating an interrupt notifying data transmission by the sending host (S140), an interrupt notifying data transmission through the doorbell register of the sending host is generated to the connected host through the host adapter. do.

이 단계들(S110, S120, S130, S140)을 통해 송신 호스트가 데이터를 송신(S100)하면, 송신 호스트와 호스트 아답터로 연결된 호스트가 데이터를 수신하는 단계(S200)가 수행되는데, 이때, 송신 호스트에서 발생한 인터럽트(S140)에 의해 데이터가 수신되었음을 알게 되고, 송신 호스트가 스크래치패드 레지스터를 통해 전송(S130)한 소스 식별번호, 목적지 식별번호를 수신하게 된다.When the sending host transmits data (S100) through these steps (S110, S120, S130, S140), the sending host and the host connected by the host adapter receive the data (S200). At this time, the sending host It is recognized that data has been received by the interrupt generated in S140, and the sending host receives the source identification number and the destination identification number transmitted (S130) through the scratchpad register.

그런 다음, 송신 호스트와 호스트 아답터로 연결된 호스트는 송신 호스트가 데이터를 송신하고자 했던 목적지가 자신인지를 확인하는 단계(Q100)를 수행한다.Then, the sending host and the host connected by the host adapter perform a step (Q100) of checking whether the destination to which the sending host intends to transmit data is itself.

이때, 송신 호스트가 송신한 데이터를 수신하는 호스트는 송신 호스트와 호스트 아답터로 연결된 이웃 호스트로서, 송신 호스트가 데이터를 송신하고자 했던 목적지가 맞을수도 또는 아닐수도 있기 때문에, 데이터를 수신한 호스트는 자신 호스트를 목적지 식별번호(DestId)와 비교한다(Q100). 데이터를 수신한 호스트는 스크래치패드 레지스터를 통해 수신한 목적지 식별번호를 자신 호스트와 비교한다.At this time, the host receiving the data transmitted by the sending host is a neighboring host connected to the sending host by the host adapter, and the destination to which the sending host intended to send data may or may not be. Is compared with the destination identification number (DestId) (Q100). The host receiving the data compares the destination identification number received through the scratchpad register with its host.

위 판단단계(Q100)에서, 데이터를 수신한 호스트가 목적지 식별번호와 동일한 경우, 예 화살표 방향을 따라, 메모리 윈도우에 복사된 메모리 영역을 통해 데이터를 확인하는 단계(S310)를 수행하는데, 데이터를 수신한 호스트(데이터 수신 호스트)는 데이터를 송신한 호스트(데이터 송신 호스트)가 데이터를 공유하고자 했던 최종 목적지이므로, 데이터 수신 호스트는 메모리 윈도우에 복사된 메모리 영역에 접속하여 데이터를 확인한다. 데이터 송신 호스트가 데이터 영역을 복사한 메모리 윈도우는 데이터 수신 호스트와 공유된 주소이므로, 데이터 수신 호스트는 데이터 송신 호스트와 공유된 메모리 윈도우에 접속하여 데이터를 확인할 수 있게 된다.In the above determination step (Q100), if the host that received the data is the same as the destination identification number, Yes, in the direction of the arrow, a step (S310) of checking data through the memory area copied to the memory window is performed. The receiving host (data receiving host) is the final destination to which the host (data transmitting host) that transmitted data attempted to share data, so the data receiving host accesses the memory area copied to the memory window to check the data. Since the memory window to which the data transmission host copied the data area is an address shared with the data reception host, the data reception host can access the memory window shared with the data transmission host to check data.

한편, 위 판단단계(Q100)에서, 데이터를 수신한 호스트가 목적지 식별번호와 동일하지 않은 경우, 아니오 화살표 방향을 따라, 이웃 호스트로 데이터를 포워딩하는 단계(S320)를 수행하는데, 이때, 데이터 수신 호스트는 메모리 윈도우에 복사된 데이터 영역과, 스크래치패드 레지스터를 통해 전달받은 정보들을 이웃 호스트로 포워딩한다. 이 단계(S320)는 데이터 수신 호스트의 식별번호가 데이터 송신 호스트의 목적지 식별번호와 동일하여, 위 단계(S310)를 수행하게 될 때까지 반복하여 수행된다. On the other hand, in the above determination step (Q100), if the host receiving the data is not the same as the destination identification number, a step (S320) of forwarding the data to a neighboring host is performed in the direction of the arrow No. In this case, data reception The host forwards the data area copied to the memory window and the information received through the scratchpad register to the neighboring host. This step (S320) is repeatedly performed until the above step (S310) is performed because the identification number of the data receiving host is the same as the destination identification number of the data transmitting host.

즉, 데이터 수신 호스트가 데이터 송신 호스트가 데이터를 공유하고자 하는 목적지가 아닌 경우, 데이터를 전달받은 데이터 수신 호스트는 해당 공유 데이터가 데이터 송신 호스트의 원래 목적지에 도달할 때까지 공유 데이터를 포워딩한다.That is, if the data receiving host is not a destination to which the data transmitting host intends to share data, the data receiving host, which has received the data, forwards the shared data until the corresponding shared data reaches the original destination of the data transmitting host.

도 4 내지 도 5의 순서도를 참고로 하여 설명한 것처럼, 링 토폴로지 구조를 갖는 다중 호스트 클러스터에서 PCIe NTB 기반으로 데이터를 공유할 수 있게 되므로, 종래기술과는 독립적인 인터커넥트 기술로 고성능 수퍼컴퓨터에서 호스트간 데이터를 고속 공유하는 효과를 기대할 수 있다.As described with reference to the flow charts of FIGS. 4 to 5, since data can be shared based on PCIe NTB in a multi-host cluster having a ring topology structure, a high-performance supercomputer is an interconnect technology independent of the prior art. You can expect the effect of sharing data at high speed.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements by those skilled in the art using the basic concept of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

1, 1a : PCIe NTB 기반의 다중 호스트간 데이터 공유 시스템
10 : 제1 호스트 11 : 제1 CPU
12 : 제1 메모리 100 : 제1 호스트 아답터
101 : 제1-1 NTB 포트 102 : 제1-2 NTB 포트
120 : 제1 메모리 윈도우 121 : 제2 호스트에 대한 메모리 윈도우
122 : 제3 호스트에 대한 메모리 윈도우
1211 : 데이터 수신을 위한 메모리 윈도우
1212 : 데이터 송신을 위한 메모리 윈도우
1, 1a: PCIe NTB-based data sharing system between multiple hosts
10: first host 11: first CPU
12: first memory 100: first host adapter
101: 1-1 NTB port 102: 1-2 NTB port
120: first memory window 121: memory window for the second host
122: memory window for the third host
1211: Memory window for data reception
1212: Memory window for data transmission

Claims (11)

데이터를 송신하거나 데이터를 수신하는 독립된 컴퓨터로서, 데이터 송신 또는 수신을 처리하는 CPU와, 데이터를 저장하거나 분리된 어드레스 영역인 메모리 윈도우로 할당하는 메모리를 각각 포함하는 적어도 세 개의 호스트, 그리고
상기 적어도 세 개의 호스트에 각각 연결되고, 적어도 두 개의 NTB 포트를각각 구비하여, 상기 적어도 두 개의 NTB 포트 중 어느 하나는 상기 이웃 호스트에 연결된 호스트 아답터의 NTB 포트에 연결되고, 나머지 하나는 또다른 상기 이웃 호스트에 연결된 호스트 아답터의 NTB 포트에 각각 연결되어, 서로 다른 두 개의 이웃 호스트에 NTB 포트를 통해 링 토폴로지 구조로 연결되는 PCIe NTB 기반의 적어도 세 개의 호스트 아답터
를 포함하여,
상기 두 호스트에 형성된 호스트 아답터들의 NTB 포트들을 통해 상기 메모리 윈도우가 공유되어 상기 두 호스트간 데이터 송수신이 이루어지는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
An independent computer that transmits or receives data, comprising at least three hosts each including a CPU that processes data transmission or reception, and a memory that stores data or allocates a memory window that is a separate address area; and
Each connected to the at least three hosts, each having at least two NTB ports, one of the at least two NTB ports is connected to an NTB port of a host adapter connected to the neighboring host, and the other is another of the At least three PCIe NTB-based host adapters, each connected to the NTB port of the host adapter connected to the neighboring host, and connected to two different neighboring hosts in a ring topology structure through the NTB port
Including,
PCIE NTB-based multi-host data sharing system, characterized in that the memory window is shared through NTB ports of host adapters formed in the two hosts to transmit and receive data between the two hosts.
제1항에 있어서,
상기 메모리 윈도우는, 상기 메모리 윈도우가 형성된 호스트의 호스트 아답터를 통해 연결되는 서로 다른 두 개의 이웃 호스트에 대해 각각 형성되어,
상기 서로 다른 두 개의 이웃 호스트에 대해 각각 형성된 메모리 윈도우를 통해 두 호스트간 데이터를 공유하는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
The method of claim 1,
The memory windows are respectively formed for two different neighboring hosts connected through a host adapter of a host on which the memory window is formed,
PCIE NTB-based data sharing system between multiple hosts, characterized in that data is shared between two hosts through memory windows respectively formed for the two different neighboring hosts.
제1항에 있어서,
상기 메모리 윈도우는, 데이터 수신을 위한 메모리 윈도우와 데이터 송신을 위한 메모리 윈도우를 각각 포함하고,
호스트의 데이터 송신 또는 수신에 따라 상기 메모리 윈도우를 통해 두 호스트간 데이터를 공유하는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
The method of claim 1,
The memory windows each include a memory window for receiving data and a memory window for transmitting data,
PCIE NTB-based data sharing system between multiple hosts, characterized in that data is shared between two hosts through the memory window according to data transmission or reception by a host.
제2항에 있어서,
상기 서로 다른 두 개의 이웃 호스트에 대해 각각 형성된 메모리 윈도우는 데이터 수신을 위한 메모리 윈도우와 데이터 송신을 위한 메모리 윈도우를 각각 포함하고,
호스트의 데이터 송신 또는 수신에 따라 상기 메모리 윈도우를 통해 두 호스트간 데이터를 공유하는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
The method of claim 2,
The memory windows respectively formed for the two different neighboring hosts each include a memory window for receiving data and a memory window for transmitting data,
PCIE NTB-based data sharing system between multiple hosts, characterized in that data is shared between two hosts through the memory window according to data transmission or reception by a host.
제1항에 있어서,
상기 두 호스트간 데이터 송수신은 DMA를 통해 이루어지는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
The method of claim 1,
PCIE NTB-based data sharing system between multiple hosts, characterized in that the data transmission and reception between the two hosts is performed through DMA.
제5항에 있어서,
데이터를 송신하는 호스트는 DMA를 통해 데이터를 송신한 이후 도어벨 레지스터를 통해 DMA 데이터 전송을 알리는 인터럽트를 발생하고, 데이터를 수신하는 호스트는 상기 인터럽트를 통해 수신된 데이터를 확인하는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
The method of claim 5,
PCIE, characterized in that the host transmitting data generates an interrupt notifying the DMA data transmission through the doorbell register after transmitting the data through the DMA, and the host receiving the data checks the data received through the interrupt. NTB-based data sharing system between multiple hosts.
제1항에 있어서,
상기 CPU는 상기 적어도 세 개의 호스트들의 식별번호를 링 테이블로 형성하고, 상기 호스트가 데이터를 다른 호스트로 송신함에 있어서, 상기 링 테이블을 참조하여 데이터를 송신하는 호스트의 식별번호와 데이터를 수신할 호스트의 식별번호를 정보로서 송신하는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
The method of claim 1,
The CPU forms the identification numbers of the at least three hosts as a ring table, and when the host transmits data to another host, the identification number of the host transmitting data and the host to receive the data refer to the ring table. PCIE NTB-based data sharing system between multiple hosts, characterized in that transmitting the identification number as information.
제7항에 있어서,
상기 정보는 공유할 데이터의 메모리 주소, 전송 데이터 크기를 더 포함하는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
The method of claim 7,
The information further includes a memory address of data to be shared and a size of transmission data. PCIE NTB-based data sharing system between multiple hosts, characterized in that.
제7항에 있어서,
데이터를 송신하는 호스트 및 데이터를 수신하는 호스트 사이를 연결하는 스크래치패드 레지스터를 더 포함하고,
상기 데이터를 송신하는 호스트는 상기 정보를 상기 스크래치패드 레지스터를 통해 상기 데이터를 수신하는 호스트로 송신하는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
The method of claim 7,
Further comprising a scratch pad register connecting between the host transmitting the data and the host receiving the data,
The host transmitting the data transmits the information to the host receiving the data through the scratchpad register.
제7항에 있어서,
상기 적어도 세 개의 호스트가 상기 호스트 아답터를 통해 직접 연결되지 않는 호스트 아답터간 링 토폴로지에서,
특정 호스트가 데이터와 상기 정보를 수신함에 따라, 상기 정보에 포함된 상기 데이터를 수신할 호스트의 식별번호를 자신 호스트의 식별번호와 비교하고, 일치하는 경우 상기 메모리 윈도우에서 상기 데이터를 읽어들이고, 일치하지 않는 경우 수신된 데이터를 이웃 호스트로 포워딩하는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템.
The method of claim 7,
In a ring topology between host adapters in which the at least three hosts are not directly connected through the host adapter,
As a specific host receives the data and the information, the identification number of the host that will receive the data included in the information is compared with the identification number of its own host, and if it matches, the data is read from the memory window and matched. If not, a PCIE NTB-based data sharing system between multiple hosts, characterized in that the received data is forwarded to a neighboring host.
적어도 세 개의 호스트와, 상기 적어도 세 개의 호스트에 각각 연결되고 적어도 두 개의 NTB 포트를 포함하는 적어도 세 개의 호스트 아답터를 포함하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 시스템에서 데이터를 공유하는 방법에 있어서,
송신 호스트가 상기 호스트 아답터들을 통해 데이터를 송신하고, 송신 호스트의 식별번호, 데이터의 목적지 호스트 식별번호를 정보로 송신하는 단계(S100),
상기 송신 호스트에 연결된 호스트가 데이터를 수신하는 단계(S200),
데이터를 수신한 호스트가 상기 정보에 포함된 상기 목적지 호스트 식별번호에 대해, 자신 호스트 식별번호와 일치여부를 판단하는 단계(Q100), 그리고
상기 판단 단계(Q100)의 수행 결과 상기 정보에 포함된 상기 목적지 호스트 식별번호가 자신 호스트 식별번호와 일치함에 따라, 상기 데이터를 수신한 호스트가 메모리 윈도우에 복사된 메모리 영역을 통해 데이터를 확인하는 단계(S310)와, 상기 판단 단계(Q100)의 수행 결과 상기 정보에 포함된 상기 목적지 호스트 식별번호가 자신 호스트 식별번호와 불일치함에 따라, 상기 데이터를 수신한 호스트가 이웃 호스트로 데이터를 포워딩하는 단계(S320) 중 어느 한 단계를 수행하는 단계
를 포함하여 이루어지는 것을 특징으로 하는 PCIE NTB 기반의 다중 호스트간 데이터 공유 방법.

In a method for sharing data in a data sharing system between multiple hosts based on PCIE NTB comprising at least three hosts and at least three host adapters each connected to the at least three hosts and including at least two NTB ports,
A step in which the sending host transmits data through the host adapters, and transmits the identification number of the sending host and the destination host identification number of the data as information (S100),
Receiving data by a host connected to the sending host (S200),
A step (Q100) of determining, by the host receiving the data, whether the destination host identification number included in the information matches its host identification number, and
As a result of performing the determination step (Q100), when the destination host identification number included in the information matches its host identification number, the host receiving the data checks the data through the memory area copied to the memory window (S310) and, as a result of performing the determination step (Q100), as the destination host identification number included in the information is inconsistent with its own host identification number, the host receiving the data forwards the data to the neighboring host ( Step of performing any one of S320)
PCIE NTB-based data sharing method between multiple hosts, comprising a.

KR1020190032865A 2019-03-22 2019-03-22 Pcie ntb based data share system between multi host and method thereof KR20200112422A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190032865A KR20200112422A (en) 2019-03-22 2019-03-22 Pcie ntb based data share system between multi host and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190032865A KR20200112422A (en) 2019-03-22 2019-03-22 Pcie ntb based data share system between multi host and method thereof

Publications (1)

Publication Number Publication Date
KR20200112422A true KR20200112422A (en) 2020-10-05

Family

ID=72809406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190032865A KR20200112422A (en) 2019-03-22 2019-03-22 Pcie ntb based data share system between multi host and method thereof

Country Status (1)

Country Link
KR (1) KR20200112422A (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
미국 공개특허공보 US2014/0075079(DATA STORAGE DEVICE CONNECTED TO A HOST SYSTEM VIA A PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIE) INTERFACE)

Similar Documents

Publication Publication Date Title
US9672143B2 (en) Remote memory ring buffers in a cluster of data processing nodes
US10042804B2 (en) Multiple protocol engine transaction processing
US8412875B2 (en) Switch and network bridge apparatus
US7028106B2 (en) Remapping routing information entries in an expander
US9996491B2 (en) Network interface controller with direct connection to host memory
US6804673B2 (en) Access assurance for remote memory access over network
JP4447892B2 (en) Data communication system and method incorporating multi-core communication module
US9996498B2 (en) Network memory
US10162780B2 (en) PCI express switch and computer system using the same
JP6880402B2 (en) Memory access control device and its control method
US8327055B2 (en) Translating a requester identifier to a chip identifier
US6327637B1 (en) Interface tap for 1394-enabled serial bus device
US20020091865A1 (en) Electro-optically connected multiprocessor configuration
US7131020B2 (en) Distributed copies of configuration information using token ring
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
US7353158B2 (en) Inter integrated circuit extension via shadow memory
TWI791134B (en) Communication device, information processing system and communication method
KR20200112422A (en) Pcie ntb based data share system between multi host and method thereof
US6842817B2 (en) Method for generating configuration tables and for forwarding packets through a network
JP7054807B2 (en) Data transfer systems, adapters, and system hosts
JP2013196593A (en) Data processing apparatus, data processing method and program
US8055813B2 (en) Flexible and efficient configuration of multiple common interfaces
KR20020049331A (en) Matching Apparatus between Peripheral Processor and Device Controller
JPS62154056A (en) Interface for data communication
JPH08166932A (en) Multiprocessor system

Legal Events

Date Code Title Description
E601 Decision to refuse application