KR101515359B1 - 시스템 코-프로세서에 대한 직접 i/o 액세스 - Google Patents

시스템 코-프로세서에 대한 직접 i/o 액세스 Download PDF

Info

Publication number
KR101515359B1
KR101515359B1 KR1020147008361A KR20147008361A KR101515359B1 KR 101515359 B1 KR101515359 B1 KR 101515359B1 KR 1020147008361 A KR1020147008361 A KR 1020147008361A KR 20147008361 A KR20147008361 A KR 20147008361A KR 101515359 B1 KR101515359 B1 KR 101515359B1
Authority
KR
South Korea
Prior art keywords
rdma
memory
access request
peripheral device
request message
Prior art date
Application number
KR1020147008361A
Other languages
English (en)
Other versions
KR20140071392A (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 인텔 코포레이션
Publication of KR20140071392A publication Critical patent/KR20140071392A/ko
Application granted granted Critical
Publication of KR101515359B1 publication Critical patent/KR101515359B1/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명의 실시예는 호스트와, CPU 및 메모리 복합체를 포함하는 주변 디바이스(대안적으로, 여기에서 프로세서 애드-인 카드라 칭함) 사이에서 RDMA(Remote Direct Memory Access) 디바이스 하드웨어 공유를 가능하게 하는 시스템, 장치 및 방법을 설명한다. 본 발명의 실시예는 프로세서 애드-인 카드와 RDMA 디바이스 사이에서 피어-투-피어 데이터 전송을 위한 PCIe(Peripheral Component Interconnect express) 하드웨어와 같은 인터커넥트 하드웨어를 이용한다. 호스트 시스템은 메모리를 매핑하고 RDMA 디바이스로 및/또는 이로부터 등록하는 모듈 또는 로직을 포함할 수 있어, 호스트 시스템 I/O 동작과 동시에 프로세서 애드-인 카드 상의 사용자-모드 애플리케이션으로 그리고 이로부터 I/O가 직접 수행되는 것을 가능하게 한다.

Description

시스템 코-프로세서에 대한 직접 I/O 액세스{DIRECT I/O ACCESS FOR SYSTEM CO-PROCESSORS}
본 발명의 실시예들은 컴퓨팅 디바이스에 관한 것이며, 보다 구체적으로는 주변 디바이스에 대한 메모리 액세스 관리에 관한 것이다.
컴퓨팅 시스템은 네트워크 또는 버스 구조와 같은 인터커넥트 조직을 통해 서로 접속된 다양한 디바이스를 포함한다. 이러한 디바이스는 통상적으로 로컬 메모리를 포함하며, 복수의 디바이스가 컴퓨팅 환경 내에서 프로세싱 속도 및 유연성(flexibility)을 제공하기 위하여 병렬로 동작된다.
RDMA(Remote Direct Memory Access)는, 컴퓨팅 디바이스로 하여금 다른 컴퓨팅 디바이스의 메모리 내의 정보에 액세스할 수 있게 하는 NIC(network interface card) 피쳐이다. 구체적으로, RDMA 기술을 통해 컴퓨팅 디바이스는 호스트 OS(operating system)의 관여 없이, 다른 컴퓨팅 디바이스의 메모리로부터 정보를 판독할 수 있을 뿐만 아니라, 다른 컴퓨팅 디바이스의 메모리에 정보를 기입할 수 있다.
도 1은 CPU 및 메모리 복합체를 갖는 주변 디바이스를 포함하는 종래 기술의 시스템을 나타낸다. 시스템(100)은 시스템 CPU(110), 시스템 메모리(120), 주변 디바이스 컨트롤러(130), 주변 디바이스(140) 및 RDMA 디바이스(150)를 포함한다. 주변 디바이스(140)는 프로세서(141) 및 메모리(142)를 포함한다. 주변 디바이스(140) 및 RDMA 디바이스(150)는 "피어(peer)" 디바이스라 칭해질 수도 있다.
주변 디바이스(140)는 RDMA 디바이스(150)에 저장된 데이터에 액세스할 필요가 있을 수 있으며, 그 역으로 할 필요도 있다. 현재, InfiniBand 사양 또는 RDMA Consortium 사양 등과 같은 다수의 인터커넥트 조직 표준의 구현은, 피어 디바이스로 하여금 다른 피어 디바이스의 어드레스 공간에 저장된 데이터에 직접 액세스할 수 있게 할 수 없다.
현재의 해결책은 본 예에서는 시스템 메모리(120)인 공통적으로 이용가능한 메모리에 피어 디바이스가 요청된 데이터를 기입할 것을 요구하며, 이러한 공통적으로 이용가능한 메모리는 인터커넥트 조직에 접속된 임의의 주변 디바이스에 의해 액세스가능하지만; 이러한 데이터 전송을 위해 공통 시스템 메모리를 사용하는 것은 시간 소모적이고 오버헤드(overhead) 프로세싱을 증가시킨다. 또한, 공통 시스템 메모리의 사용은 주변 디바이스의 프로세싱 동작을 느리게 한다.
후술하는 설명은 본 발명의 실시예의 예시적인 구현의 방식으로 정해진 예시를 갖는 도면의 설명을 포함한다. 도면은 예시의 방식으로 이해되어야 하며, 한정의 방식으로 이해되어서는 안 된다. 여기에서 사용되는 하나 이상의 "실시예들"에 대한 참조는 본 발명의 적어도 하나의 구현에 포함되는 특정한 특징, 구조 또는 특성을 설명하는 것으로서 이해되어야 한다. 따라서, 여기에서 나타나는 "일 실시예에서" 또는 "대안적인 실시예에서"와 같은 문구는 본 발명의 다양한 실시예 및 구현을 설명하며, 반드시 모두 동일한 실시예를 참조하는 것은 아니다. 하지만, 또한 실시예들은 반드시 상호 배타적이지는 않다.
도 1은 CPU 및 메모리 복합체를 갖는 주변 디바이스를 포함하는 종래 기술의 시스템을 나타낸다.
도 2는 본 발명의 실시예에 따른 시스템의 블록도이다.
도 3은 본 발명의 실시예에 따른 시스템 컴포넌트의 블록도이다.
도 4는 본 발명의 실시예에 따른 프로세스의 흐름도이다.
도 5는 본 발명의 실시예에 따른 프로세스의 흐름도이다.
도 6은 본 발명의 실시예에 따른 호스트 및 프로세서 애드-인 카드(add-in card) 모듈의 블록도이다.
도 7은 본 발명의 실시예를 이용할 수 있는 시스템의 블록도이다.
도면의 설명을 포함하여, 특정 상세사항 및 구현의 설명을 후술하며, 도면은 후술하는 실시예의 일부 또는 전부를 묘사할 수 있을 뿐만 아니라, 여기에 제시된 진보적인 개념의 다른 잠재적인 실시예 또는 구현을 설명할 수 있다. 본 발명의 실시예의 개요가 이하 제공되며, 도면을 참조하여 더욱 상세한 설명이 이에 후속된다.
본 발명의 실시예는 CPU 및 메모리 복합체(대안적으로 여기에서 프로세서 애드-인 카드라 칭함)를 포함하는 호스트 및 주변 디바이스 사이에서 RDMA(Remote Direct Memory Access) 디바이스 하드웨어를 공유할 수 있는 시스템, 장치 및 방법을 설명한다. 본 발명의 실시예는 프로세서 애드-인 카드와 RDMA 디바이스 사이의 피어-투-피어(peer-to-peer) 데이터 전송을 위해 PCIe(Peripheral Component Interconnect express) 하드웨어와 같은 인터커넥트 하드웨어를 이용한다. 호스트 시스템은 RDMA 디바이스로 및/또는 이로부터 메모리 및 레지스터를 매핑하는 모듈 또는 로직을 포함할 수 있으며, 이에 의해 호스트 시스템 I/O 동작과 동시에, 프로세서 애드-인 카드 상의 사용자-모드 애플리케이션으로 및 그 애플리케이션으로부터 I/O가 직접 수행될 수 있게 한다.
본 발명의 실시예를 이용할 수 있는 프로세서 애드-인 카드의 예는, 고도의 병렬 애플리케이션의 성능을 향상시키기 위하여, GPU(graphics processor unit)를 갖는 그래픽 프로세서 서브시스템 및 복수의 소형의, 저전력 프로세서 코어 또는 멀티-코어 프로세서를 갖는 프로세서 애드-인 카드를 포함한다. 하지만, 가속화된 이종 컴퓨팅 환경에서, 공통적이고 표준 기반의 프로그래밍 및 통신 모델을 제공하는 것은 어려운 것으로 드러났다. 이들이 프라이머리 시스템 CPU이든 또는 애드-인 카드 내의 코-프로세서 코어이든, 모든 프로세서로부터 효율적인 통신 메커니즘을 갖는 것이 바람직한 클러스터에서 이는 특히 그러하다. 공통적인, 표준 기반의 프로그래밍 모델은 애플리케이션의 개발 및 유지를 단순화할 뿐만 아니라, 그 성능을 충분히 이용하기 위해 시스템을 사용하는 것에 대한 더욱 양호한 유연성을 허용한다.
클러스터는 일반적으로 함께 밀접하게 동작하도록 링크되거나 상호접속된, 다수의 양태에서 단일 컴퓨터를 형성하는 컴퓨터 시스템의 그룹을 칭한다. 클러스터는 일반적으로 매우 향상된 성능 및/또는 단일 컴퓨터에 의해 제공되는 것에 대한 이용가능성을 제공한다. 또한, 클러스터는 비교가능한 속도 또는 이용가능성의 단일 컴퓨터보다 통상적으로 더욱 비용 효과적이다.
대형 클러스터 시스템 구축에 대한 중요한 양태는 인터커넥트이다. 인터커넥트는, 시스템 전부를 함께 접속하는 "조직(fabric)"뿐만 아니라, 시스템을 조직에 인터페이싱하는 호스트 어댑터를 포함할 수 있다. 클러스터는 InfiniBand 사양 또는 RDMA Consortium 사양을 따르는 인터커넥트를 이용할 수 있다. InfiniBand는 주로 고성능 컴퓨팅에 사용되는 스위칭된 조직 통신 링크이며, 서비스 품질과 장애극복 특징뿐만 아니라 확장성도 제공한다. InfiniBand 인터커넥트는 일반적으로 보다 낮은 대기시간, 보다 높은 대역폭 및 향상된 신뢰성을 제공한다.
InfiniBand와 같은 RDMA 아키텍처는 대기시간을 감소시키고 메시지 전달 동작의 대역폭을 증가시킴으로써 HPC(High Performance Computing) 클러스터 애플리케이션의 성능을 향상시키는 데 매우 성공적이었다. RDMA 아키텍처는 커널-바이패스(kernel-bypass), 직접 데이터 배치를 통해 네트워크 인터페이스를 애플리케이션에 훨씬 더 가깝게 이동시킴으로써 성능을 향상시키고 애플리케이션 요건에 매칭시키기 위한 I/O 동작의 훨씬 더 양호한 제어를 허용한다.
RDMA 아키텍처는 하드웨어에서의 프로세스 격리, 보호 및 어드레스 변환을 가능하게 한다. 이러한 아키텍처는 호스트 및 코-프로세서 애플리케이션이 분리된 어드레스 도메인에서 실행되는 복수의 코-프로세싱 코어 환경에서 매우 적합하지만; RDMA의 이점은 종래 기술의 부착된 프로세서(즉, 프로세서 애드-인 카드)에는 이용불가하다. 본 발명의 실시예는 RDMA 아키텍처의 이점을 부착된 프로세서에 직접 가져오며, 도 1에 나타낸 바와 같은 해결책에 대한 필요성을 제거하며, 도 1에서는 부착된 프로세서로의 그리고 부착된 프로세서로부터의 통신이 호스트 메모리로의 추가적인 데이터 복사를 반드시 발생시키며, 이는 메시지 대기시간 및 획득가능한 대역폭 양쪽에 실질적으로 영향을 준다.
도 2는 본 발명의 실시예에 따른 시스템의 블록도이다. 시스템(200)은 시스템 CPU(210), 시스템 메모리(220), PCH(platform controller hub)(230), 주변 디바이스(240) 및 RDMA 디바이스(250)를 포함한다. 본 실시예에서, 주변 디바이스(240)는 프로세서 애드-인 카드이며 프로세서(241) 및 메모리(242)를 포함한다. 주변 디바이스(240) 및 RDMA 디바이스(250)는 "피어(peer)" 디바이스라 칭해질 수 있다.
주변 디바이스(240)는 RDMA 디바이스(250)에 저장된 데이터에 액세스하는 것을 요청할 수 있다. 상기 디바이스는 PCIe 링크를 통해 PCH(230)에 통신가능하게 연결된 것으로 도시되며, RDMA 디바이스는 PCIe 루트 포트(root port)(231)를 통해 PCH(230)에 동작가능하게 연결되는 것으로 도시되며, 본 실시예에서, 주변 디바이스(240)는 PCH를 포함하지 않으므로 HCA/NIC(Host Channel Adapter/Network Interface Controller) 카드를 RDMA 디바이스(250)에 전용하게 하는 기능을 갖지 않는다(하지만, 온-보드(on-board) RDMA 디바이스와 함께 PCH 또는 내부 PCIe 버스를 포함하는 주변 디바이스 또한 후술하는 본 발명의 실시예를 이용할 수 있다는 것이 이해되어야 한다). PCIe 인터커넥트 단독으로는 피어 디바이스가 다른 피어 디바이스의 어드레스 공간에 저장된 데이터에 액세스하게 할 수 없다.
본 발명의 실시예는, 주변 디바이스가 RDMA 디바이스(250)에 포함된 데이터에 직접 액세스를 가질 수 있도록 시스템(200), PCH(230) 및 주변 디바이스(240)에 포함된 로직 및/또는 모듈을 설명한다 - 즉, 시스템 메모리(220)가 도 1의 시스템(100)과 같은 종래 기술의 해결책에서와 같이 요구되지 않는다. 호스트 메모리가 호스트 메모리로의 요청된 데이터의 추가적인 복사를 수용할 필요성을 제거함으로써, 본 발명의 실시예는 메시지 대기 시간을 상당히 감소시키고 획득가능한 대역폭을 증가시킨다.
도 3은 본 발명의 실시예에 따른 시스템 컴포넌트의 블록도이다. 본 실시예에서, PCH(310), 주변 디바이스(320) 및 RDMA 디바이스(330)는 시스템 버스(대안적으로 여기에서 인트라-노드(intra-node) 버스라 칭함)(390)를 통해 서로 통신가능하게 연결된다. 주변 디바이스(320)는, RDMA 디바이스(330)가 이에 전용되게 하는 기능을 갖지 않는다는 점에서 도 2의 디바이스(240)와 유사하다.
본 실시예에서, 주변 디바이스(320)의 메모리(321)는, RDMA 디바이스(330)의 메모리(331)를 향한 요청을 저장하는 요청 큐(queue)(322)를 포함한다. 주변 디바이스의 CPU(323)는 RDMA 디바이스(330)에게 상기 요청 큐가 메모리(331)에 대한 액세스를 위한 미처리된 요청을 갖는다는 것을 통지한다. 일 실시예에서, RDMA 디바이스(330)는, 임의의 미처리 요청이 큐(322)에 있을 때 통지받으며; 다른 실시예에서, RDMA 디바이스(330)는 큐(322) 내의 미처리 요청의 수가 임계값을 초과할 때 통지받는다.
CPU(323)는 RDMA 디바이스(350)에게 PCH(310)에 포함된 가상 어드레스(311)에 기입함으로써 미처리 요청을 통지한다. 상기 가상 어드레스는 RDMA 디바이스의 메모리(331)에 매핑된 메모리이다. 상기 미처리 요청은 수행될 동작 - 예를 들어, 송신, 수신, 기입, 판독, 원자 비교/교환, 원자 페치(fetch)/가산 등을 설명할 수 있다. 따라서, 본 발명의 실시예는 주변 디바이스(320)로부터 호스트 시스템의 PCH(310)로의 "프록시" 요청으로 설명될 수 있다.
도 4는 본 발명의 실시예에 따른 프로세스의 흐름도이다. 여기에 나타내어진 흐름도는 다양한 프로세스 액션의 시퀀스의 예를 제공한다. 특정 시퀀스 또는 순서로 나타내어졌지만, 달리 특정하지 않는다면, 액션의 순서는 수정될 수 있다. 따라서, 도시된 구현은 단지 예로서 이해되어야 하며, 도시된 프로세스는 다른 순서로 수행될 수 있으며, 일부 액션은 병렬로 수행될 수 있다. 또한, 하나 이상의 액션이 본 발명의 다양한 실시예에서 생략될 수 있으므로; 모든 액션이 모든 구현에 필요한 것은 아니다. 다른 프로세스 흐름도 가능하다.
프로세스(400)는 RDMA 디바이스의 메모리에 대한 액세스를 위한 요청을 수신하는 프로세서 코어 및 메모리를 포함하는 주변 디바이스에 의한 동작을 포함한다(410). 상기 요청은 주변 디바이스의 메모리의 큐에 저장될 수 있다. 일부 실시예에서, 상기 주변 디바이스는 복수의 프로세서 코어를 포함하며, 프로세싱 코어의 각각에 대하여 별개의 큐를 유지한다.
주변 디바이스는 RDMA 디바이스에게 PCH에 포함된 가상 어드레스로 데이터를 송신함으로써 그 큐 내의 액세스 요청 메시지를 통지한다(420). 상기 가상 어드레스는 PCH에 포함되고 RDMA 디바이스의 메모리에 매핑된다. PCH는 RDMA 디바이스에 매핑된 가상 어드레스를 이용하고(430), RDMA 액세스 요청 메시지를 RDMA 디바이스의 메모리로 송신한다(440). 상기 RDMA 액세스 요청 메시지는 주변 디바이스에 큐잉된(queued) 액세스 요청 메시지에 기초한다.
RDMA 디바이스는 RDMA 액세스 요청 메시지를 수신하는 것에 응답하여 주변 디바이스로부터의 요청을 완료한다(450). 일부 실시예에서, RDMA 디바이스는 PCH에 포함되고 주변 디바이스의 메모리에 매핑된 가상 어드레스로 완료 메시지를 송신하며; 상기 가상 어드레스는 완료 큐가 상기 완료 메시지를 저장한다는 것을 나타낼 수 있다. 예를 들어, RDMA 액세스 요청 메시지가 RDMA 판독 요청을 포함하는 경우, 주변 디바이스에 의해 요청된 데이터를 포함하는 데이터 메시지가 PCH를 통해 주변 디바이스로 송신되며; RDMA 액세스 요청 메시지가 RDMA 기입 요청을 포함하는 경우, PCH는 기입될 데이터를 포함하는 데이터 메시지를 RDMA 디바이스로 송신한다. 일부 실시예에서, RDMA 동작의 완료는, 완료 메시지가 RDMA 디바이스에 의해 송신되는 때를 결정하지 않는다. 예를 들어, InfiniBand 사양은, 요청들이 포스팅되는 순서대로 개시되는 것을 요구하며, 이는 이전의 모든 RDMA 동작이 완료될 때까지 주변 디바이스가 완료 메시지를 수신하지 않을 것이라는 것을 의미한다.
도 5는 본 발명의 실시예에 따른 프로세스의 흐름도이다. 프로세스(500)는 주변 디바이스(또한 프로세서 코어 포함)의 메모리에 대한 액세스를 위한 요청을 수신하는, RDMA 디바이스에 의한 동작을 포함한다(510). 상기 요청은 RDMA 디바이스의 메모리의 큐에 저장될 수 있다.
RDMA 디바이스는 PCH에 포함된 가상 어드레스로 데이터를 송신함으로써 그 큐 내의 액세스 요청 메시지를 호스트 시스템에게 통지한다(520). 상기 가상 어드레스는 주변 디바이스의 메모리에 매핑된다. PCH는 액세스 요청 메시지 파라미터로서 RDMA 디바이스에 매핑된 가상 어드레스를 이용하고(530), 액세스 요청 메시지를 주변 디바이스의 메모리에 송신한다(540). 주변 디바이스로 송신된 상기 액세스 요청 메시지는 RDMA 디바이스에 큐잉된 액세스 요청 메시지에 기초한다.
주변 디바이스는 PCH로부터 액세스 요청 메시지를 수신하는 것에 응답하여 RDMA 디바이스로부터의 요청을 완료한다. 예를 들어, 액세스 요청 메시지가 판독 요청을 포함하는 경우, RDMA 디바이스에 의해 요청된 데이터를 포함하는 데이터 메시지가 PCH를 통해 RDMA 디바이스로 송신되며; 액세스 요청 메시지가 기입 요청을 포함하는 경우, RDMA 디바이스는 기입될 데이터를 포함하는 데이터 메시지를 PCH를 통해 주변 디바이스로 송신한다. RDMA 디바이스는, RDMA 동작 및/또는 파라미터의 유형에 따라, PCH에 포함되고 주변 디바이스의 메모리에 매핑되는 가상 어드레스로 완료 메시지를 송신할 수 있다(550). 상기 가상 어드레스는 완료 큐가 상기 완료 메시지를 저장하는 것을 나타낼 수 있다.
도 6은 본 발명의 실시예에 따른 호스트 및 프로세서 애드-인 카드 모듈의 블록도이다. 상술한 바와 같이, 본 발명의 실시예는 InfiniBand 사양을 따르는 인터커넥트를 이용할 수 있다(예를 들어, 사양 릴리즈 1.0.a, 2001년 7월 19일 공표). InfiniBand는 고성능 컴퓨팅에 주로 사용되는 스위칭된 조직 통신 링크이며, 서비스 품질과 장애극복 특징뿐만 아니라 확장성도 제공한다. InfiniBand 인터커넥트는 일반적으로 보다 낮은 대기시간, 보다 높은 대역폭 및 향상된 신뢰성을 제공한다. InfiniBand는 컴퓨터 시스템의 컴포넌트 사이에서, 그리고 컴퓨터 사이에서 정보를 이동시키는 방식을 제공한다. InfiniBand는 컴퓨터 CPU로 하여금 I/O 디바이스 및 다른 CPU와 매우 고성능으로 직접 통신할 수 있게 한다. InfiniBand 기술은 임의의 네트워크의 데이터 센터의 백엔드(back end)에 대해 타겟팅된다. 네트워크 인프라구조의 프론트엔드(front end) 및 미들엔드(middle end)는 레거시 Ethernet 기술을 포함한다. 즉, InfiniBand 및 Ethernet 기술 모두는 동일 호스트에 의해 사용가능하다.
호스트(610) 및 주변 디바이스 카드(630)는 다양한 InfiniBand 모듈(후술함)을 포함하는 것으로 나타내어지고, PCIe 인터커넥트(660)를 통해 RDMA 디바이스(650)에 통신가능하게 연결된다. 후술하는 바와 같이, RDMA 디바이스(650)에 의해 수신되는 RDMA 메시지는 RDMA Consortium 사양(예를 들어, RDMA Protocol Specification(Version 1.0), 2002년 10월 21일 공표)을 따를 수 있다. RDMA 컨소시움의 RDMA 프로토콜은 TCP/IP 프로토콜의 TCP 계층 위에 특정된다. 따라서, RDMA 동작은 프로토콜 스택의 톱(top)으로부터 송신기측의 바닥으로 진행하며, 그 후 수신기측 상의 톱으로 프로토콜 스택을 올린다. 본 발명의 실시예에 의해 이용되는 RDMA 프로토콜은 빌딩 기본 TCP/IP 프로세싱 하드웨어를 포함할 수 있으며, 패킷을 수신하고, TCP/IP를 터미네이팅하고, TCP/IP를 통해 패킷을 애플리케이션 계층로 프로세싱하고, 메모리로의 기입을 위하여 애플리케이션 계층에 있는 데이터 및 어드레스를 추출한다. RDMA 프로토콜은 메모리로의 패킷의 복사(그 후 후속적으로 메모리로의 데이터 페이로드의 복사)를 방지할 수 있으며, (특히 보다 큰 데이터 페이로드에 대하여) 데이터 전송을 더욱 효율적으로 만든다.
본 실시예에서, 호스트(610) 및 주변 디바이스(630) 상의 모듈은 서로 통신하며 PCIe 인터커넥트(660)를 경유하여 RDMA 디바이스(650)에 대한 직접 액세스를 갖는다. 모듈은 PCIe 인터커넥트(660)를 경유하는 프록시 동작에 대하여 스플릿-드라이버(split-driver) 모델을 사용하여 RDMA 디바이스 리소스를 관리한다.
호스트(610)는 MPI(Message Passing Interface) 애플리케이션(611), RDMA API인 uDAPL(user-mode Direct Access Provider Library)(612), IB 동사(verb)(즉, 함수) 라이브러리(613), 벤더 라이브러리(614), IB uverbs(615), IB 코어(616) 및 벤더 드라이버(617)를 포함하는 InfiniBand 기반 소프트웨어 통신 스택을 포함하는 것으로 나타내어진다. 마찬가지로, 주변 디바이스(630)는 MPI 애플리케이션(631), uDAPL(632), IB 동사 라이브러리(633), 벤더 라이브러리(634), IB uverbs(635) 및 IB 코어(636)를 포함한다. 상기 호스트 및 주변 디바이스는 후술하는 모듈로서 구현되는 본 발명의 실시예를 추가적으로 이용한다.
호스트(610)는 IB 프록시 데몬(daemon)(618)을 포함한다. IB 프록시 데몬은 하위 벤더 드라이버(617)에 대한 호출을 위하여 IB 프록시 서버(619)(후술함)로 사용자-모드 프로세스 컨텍스트를 제공하는 호스트 사용자-모드 애플리케이션이다. 사용자-모드 프로세스 컨텍스트는 벤더 드라이버(617)를 수정하지 않고 RDMA 디바이스(650)의 메모리의 가상 어드레스 매핑을 수행하는 데 사용될 수 있다.
호스트(610)는 호스트 커널 모듈을 포함하는 IB 프록시 서버(619)를 추가적으로 포함한다. 본 실시예에서, 상기 IB 프록시 서버는 (후술하는) 주변 디바이스(630)의 IB 프록시 클라이언트(638)에 대한 통신 및 커맨드 서비스를 제공한다. 본 실시예에서, IB 프록시 서버(619)는 클라이언트 접속을 청취하고, RDMA 디바이스 추가, 제거 및 이벤트 통지 메시지를 중계한다. IB 프록시 서버(619)는 추가적으로 IB 프록시 클라이언트(638) 대신하여 IB 코어 계층(616)에 대하여 커널-모드 IB 동사 호출을 개시할 수 있고 그 결과를 반환할 수 있다.
주변 디바이스(630)는 커널 모듈을 포함하는 IB 프록시 클라이언트(638)를 포함한다. 상기 IB 프록시 클라이언트는 (후술하는) 벤더 프록시 드라이버(637)에 대한 프로그래밍 인터페이스를 제공하여 호스트(610) 상의 커널-모드 IB 동사 호출을 수행한다. 추가적으로, 인터페이스는 커맨드를 포맷하고 통신을 수행하는 상세사항을 추출할 수 있으며, IB 프록시 클라이언트(638)는 특정 디바이스 추가, 제거 및 이벤트 통지에 대한 콜백을 벤더 프록시 드라이버(637)로 호출한다.
주변 디바이스(630)는 커널 모듈을 포함하는 벤더 프록시 드라이버(637)를 추가로 포함한다. 상이한 벤더 프록시 드라이버가 특정 RDMA 디바이스를 지원하는 데 사용될 수 있다. 상기 벤더 프록시 드라이버의 각각은 특정 PCIe 디바이스로부터 RDMA 디바이스 추가, 제거 및 이벤트 통지에 대하여 IB 프록시 클라이언트(638)로 등록할 수 있다. 벤더 프록시 드라이버(637)는 IB 프록시 클라이언트(638)에 의해 제공되는 프로그래밍 인터페이스를 사용하여 커널-모드 IB 동사 호출을 수행할 수 있다. 상기 벤더 프록시 드라이버는 벤더 라이브러리(634)와 호스트(610) 상의 벤더 드라이버(617) 사이에서 공유되는 임의의 사적인 데이터의 해석 및 전송을 추가적으로 핸들링한다.
본 실시예에서, 호스트(610) 및 주변 디바이스(630) 양쪽은 SCIF(Symmetric Communications Interface) 모듈(620, 640)을 각각 포함한다. 상기 SCIF 모듈은 단일 플랫폼 내의 인트라-노드 통신을 위한 메커니즘을 제공한다. SCIF는 PCIe를 통한 통신(그리고 관련된 주변 디바이스 하드웨어 제어)의 상세사항을 추출하며, 호스트(610)와 주변 디바이스(630) 사이에서 대칭인 API를 제공한다.
상술한 모듈에 추가하여, 본 발명의 실시예는, 메모리를 RDMA 디바이스(650)로 매핑하는 것뿐만 아니라, 벤더 라이브러리(614, 634)와 벤더 드라이버(617) 사이의 사적인 데이터를 전송하기 위하여 IB 코어 계층(616)의 호출을 이용할 수 있다.
상술한 "동사"(즉, 함수)는 RDMA 디바이스(650)를 향한 RDMA 동작을 수행한다. 동사는 특권 및 비특권 클래스로 카테고리화될 수 있다. 특권 동사는 RDMA 하드웨어 리소스를 할당 및 관리하는 데 통상적으로 사용되며 벤더 드라이버(617)에 의해 구현된다. 주변 디바이스(630) 상에서 실행하는 애플리케이션에 있어서, 이러한 특권 동사는 벤더 프록시 드라이버(637)를 통해 호스트(610) 상의 벤더 드라이버(617)로 포워딩될 수 있다. 일단 하드웨어 리소스가 할당 및 초기화되면, 비특권 동사는 리소스 할당 중에 애플리케이션 어드레스 공간으로 매핑된 메모리를 사용하여, 커널을 바이패싱하여 사용자-모드로부터 하드웨어에 대한 직접 액세스를 허용한다. 마찬가지로, RDMA 디바이스는 큐에 액세스할 수 있고, 프로세스 어드레스 공간으로 또는 이로부터 직접 데이터 전송을 수행할 수 있다. 따라서, 본 발명의 실시예는, 주변 디바이스(630) 상의 클라이언트 프로세스가 마치 호스트(610) 상의 다른 "사용자-모드" 프로세스인 것처럼 보이게 한다.
따라서, 상술한 모듈은, 호스트(610)가 RDMA 디바이스(650)의 메모리에 대한 액세스를 위하여 주변 디바이스(630)의 프로세서 코어로부터 액세스 요청 메시지의 통지를 수신할 수 있게 한다. 상기 통지는 호스트(610) 및 RDMA 디바이스(650)의 메모리에 매핑된 메모리(예를 들어 도 3에 나타낸 바와 같음)에 포함된 가상 어드레스에서 수신된다. 호스트 디바이스(610)는 상기 액세스 요청 메시지에 기초하여 RDMA 액세스 요청을 RDMA 디바이스로 전송하며, 요청은 가상 어드레스 RDMA 파라미터를 포함한다. 따라서, - 예를 들어, 송신, 수신, 기입, 판독, 원자 비교/교환, 원자 페치/가산 등 어떠한 유형의 데이터 요청을 상기 액세스 요청 메시지가 포함하든지, RDMA 디바이스(650)에 대하여, 주변 디바이스(630)로부터가 아니라 호스트(610) 상의 "사용자-모드" 프로세스로부터 유래한 것처럼 보인다.
도 7은 본 발명의 실시예를 이용할 수 있는 시스템의 블록도이다. 시스템(700)은 서버 플랫폼을 설명할 수 있거나, 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 넷북, 노트북 컴퓨터, PDA(personal digital assistant), 서버, 워크스테이션, 셀룰라 전화, 모바일 컴퓨팅 디바이스, Internet 기기, MP3 또는 매체 플계층 또는 임의의 다른 유형의 컴퓨팅 디바이스에 포함될 수 있다.
시스템(700)은 시스템 버스(720)를 통해, 사용자 인터페이스(760), 시스템 메모리(730), 주변 디바이스 컨트롤러(740) 및 네트워크 커넥터(750)와 데이터를 교환하기 위해 프로세서(710)를 포함할 수 있다. 상기 주변 디바이스 컨트롤러는 주변 디바이스 및 RDMA 디바이스에 통신가능하게 연결될 수 있으며, 본 발명의 상술한 실시예중 임의의 실시예에 따라 디바이스들 사이에서 I/O 요청을 관리할 수 있다.
시스템(700)은 시스템(700)의 다양한 요소에 의해 프로세싱되는 신호를 송신 및 수신하기 위하여 안테나 및 RF 회로(770)를 추가로 포함할 수 있다. 상술한 안테나는 지향성 안테나 또는 무지향성 안테나일 수 있다. 여기에서 사용되는 무지향성 안테나라는 용어는 적어도 하나의 평면에서 실질적으로 균등한 패턴을 갖는 임의의 안테나를 칭한다. 예를 들어, 일부 실시예에서, 상기 안테나는 이극 안테나 또는 1/4 파장 안테나와 같은 무지향성 안테나일 수 있다. 또한, 예를 들어, 일부 실시예에서, 상기 안테나는 파라볼라 접시 안테나, 패치(patch) 안테나 또는 야기(Yagi) 안테나와 같은 지향성 안테나일 수 있다. 일부 실시예에서, 시스템(700)은 복수의 물리적 안테나를 포함할 수 있다.
네트워크 커넥터(750)로부터 분리된 것으로 나타내어졌지만, 다른 실시예에서는, 안테나 및 RF 회로(770)는 IEEE 802.11 표준 및 그 관련 패밀리, HPAV(Home Plug AV, UWB(Ultra Wide Band), Bluetooth, WiMax, 또는 무선 통신 프로토콜의 임의의 다른 형태에 따라 동작하는 무선 인터페이스를 포함할 수 있지만, 이에 한정되는 것은 아니라는 것이 이해되어야 한다.
여기에 설명된 프로세서, 서버, 또는 툴과 같은 상술한 다양한 컴포넌트는 설명된 기능을 수행하기 위한 수단일 수 있다. 여기에 설명된 각각의 컴포넌트는 소프트웨어 또는 하드웨어, 또는 그 조합을 포함한다. 각각의 컴포넌트 및 모든 컴포넌트는 소프트웨어 모듈, 하드웨어 모듈, 특수 목적 하드웨어(예를 들어, 애플리케이션 특정 하드웨어, ASICs, DSPs 등), 매립형 컨트롤러, 하드웨어 내장 회로, 하드웨어 로직 등으로서 구현될 수 있다. 소프트웨어 컨텐츠(예를 들어, 데이터, 명령, 컨피규레이션)는 실행될 수 있는 명령을 나타내는 컨텐츠를 제공하는 비일시적, 유형의 컴퓨터 또는 머신 판독가능 저장 매체를 포함하는 제조품을 통해 제공될 수 있다. 컨텐츠는 여기에 설명된 다양한 기능/동작을 수행하는 컴퓨터로 귀결될 수 있다.
컴퓨터 판독가능 비일시적 저장 매체는 기록가능/기록불능 매체(예를 들어, ROM(read only memory), RAM(random access memory), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스 등)와 같은, 컴퓨터(예를 들어, 컴퓨팅 디바이스, 전자 시스템 등)에 의해 액세스가능한 형태의 정보를 제공하는(즉, 저장 및/또는 송신하는) 임의의 메커니즘을 포함할 수 있다. 컨텐츠는 직접 실행가능한 것("객체" 또는 "실행가능" 형태), 소스 코드, 또는 다른 코드("델타(delta)" 또는 "패치" 코드)일 수 있다. 또한, 컴퓨터 판독가능 비일시적 저장 매체는 컨텐츠가 다운로드될 수 있는 스토리지 또는 데이터베이스를 포함할 수 있다. 또한, 상기 컴퓨터 판독가능 매체는 판매 또는 전달시에 저장된 컨텐츠를 갖는 디바이스 또는 제품을 포함할 수 있다. 따라서, 저장된 컨텐츠를 갖는 디바이스를 전달하거나 통신 매체를 통해 다운로드하기 위해 컨텐츠를 제공하는 것은 여기에 설명된 이러한 컨텐츠를 갖는 제조품을 제공하는 것으로서 이해될 수 있다.

Claims (21)

  1. 원격 직접 메모리 액세스(RDMA: remote direct memory access) 디바이스와,
    중앙 처리 장치(CPU) 및 메모리를 포함하는 주변 디바이스와,
    상기 RDMA 디바이스 및 상기 주변 디바이스에 통신가능하게 연결된 호스트 컨트롤러를 포함하되,
    상기 호스트 컨트롤러는,
    상기 호스트 컨트롤러에 포함되고, 상기 주변 디바이스의 메모리 또는 상기 RDMA 디바이스의 메모리 중 하나에 매핑되는, 가상 어드레스에서 액세스 요청 메시지의 통지를 수신하고,
    상기 RDMA 디바이스의 메모리에 매핑된 가상 어드레스에서 상기 액세스 요청 메시지를 수신하는 것에 응답하여, 상기 주변 디바이스로부터의 상기 RDMA 디바이스의 메모리에 대한 액세스 요청 메시지에 기초하여 RDMA 액세스 요청을 상기 RDMA 디바이스로 송신 - 상기 RDMA 디바이스에 대한 액세스 요청 메시지는 가상 어드레스 RDMA 파라미터를 포함함 - 하고,
    상기 주변 디바이스의 메모리에 매핑된 가상 어드레스에서 상기 액세스 요청 메시지를 수신하는 것에 응답하여, 액세스 요청 메시지를 상기 주변 디바이스의 메모리로 송신하는
    시스템.
  2. 제 1 항에 있어서,
    상기 RDMA 액세스 요청은 RDMA 판독 요청을 포함하고,
    상기 호스트 컨트롤러는 또한,
    상기 주변 디바이스에 의해 요청된 데이터를 상기 RDMA 디바이스로부터 수신하고,
    상기 데이터를 포함하는 데이터 메시지를 상기 주변 디바이스의 메모리로 송신하는
    시스템.
  3. 제 1 항에 있어서,
    상기 RDMA 액세스 요청은 RDMA 기입 요청을 포함하고,
    상기 호스트 컨트롤러는 또한,
    상기 RDMA 디바이스에 의해 요청된 데이터를 상기 주변 디바이스의 메모리로부터 수신하고,
    상기 데이터를 포함하는 데이터 메시지를 상기 RDMA 디바이스로 송신하는
    시스템.
  4. 제 1 항에 있어서,
    상기 주변 디바이스 및 상기 RDMA 디바이스는 주변 컴포넌트 인터커넥트 익스프레스(PCIe: Peripheral Component Interconnect express) 링크를 통해 상기 호스트 컨트롤러에 각각 통신가능하게 연결되는
    시스템.
  5. 제 4 항에 있어서,
    상기 RDMA 디바이스 및 상기 호스트 컨트롤러는 PCIe 루트 포트(root port)를 통해 통신가능하게 연결되는
    시스템.
  6. 제 1 항에 있어서,
    상기 주변 디바이스는 그래픽 서브시스템을 포함하고, 상기 CPU는 그래픽 처리 장치(GPU: graphics processing unit)를 포함하는
    시스템.
  7. 원격 직접 액세스(RDMA) 디바이스의 메모리와 중앙 처리 장치(CPU)를 포함하는 주변 디바이스의 메모리 중 하나에 매핑되는 가상 어드레스에서 액세스 요청 메시지의 통지를 수신하는 단계와,
    상기 RDMA 디바이스의 메모리에 매핑된 가상 어드레스에서 상기 액세스 요청 메시지를 수신하는 것에 응답하여,
    상기 RDMA 디바이스의 메모리에 매핑되는 가상 어드레스를 RDMA 파라미터로서 이용하고,
    상기 주변 디바이스로부터의 그리고 가상 어드레스 RDMA 파라미터를 포함하는, 상기 RDMA 디바이스에 대한 액세스 요청 메시지에 기초하여 RDMA 액세스 요청을 상기 RDMA 디바이스로 송신하는 단계와,
    상기 주변 디바이스의 메모리에 매핑된 가상 어드레스에서 상기 액세스 요청 메시지를 수신하는 것에 응답하여, 액세스 요청 메시지를 상기 주변 디바이스의 메모리로 송신하는 단계를 포함하는
    방법.
  8. 제 7 항에 있어서,
    상기 RDMA 액세스 요청은 RDMA 판독 요청을 포함하고,
    상기 방법은,
    상기 주변 디바이스에 의해 요청된 데이터를 상기 RDMA 디바이스로부터 수신하는 단계와,
    상기 데이터를 포함하는 데이터 메시지를 상기 주변 디바이스의 메모리로 송신하는 단계를 더 포함하는
    방법.
  9. 제 7 항에 있어서,
    상기 RDMA 액세스 요청은 RDMA 기입 요청을 포함하고,
    상기 방법은,
    상기 RDMA 디바이스에 의해 요청된 데이터를 상기 주변 디바이스의 메모리로부터 수신하는 단계와,
    상기 데이터를 포함하는 데이터 메시지를 상기 RDMA 디바이스로 송신하는 단계를 더 포함하는
    방법.
  10. 제 7 항에 있어서,
    상기 주변 디바이스 및 상기 RDMA 디바이스는 주변 컴포넌트 인터커넥트 익스프레스(PCIe) 링크를 통해 호스트 컨트롤러에 각각 통신가능하게 연결되는
    방법.
  11. 제 10 항에 있어서,
    상기 RDMA 디바이스 및 상기 호스트 컨트롤러는 PCIe 루트 포트를 통해 통신가능하게 연결되는
    방법.
  12. 원격 직접 메모리 액세스(RDMA) 디바이스에 통신가능하게 연결되는 제 1 인터커넥트 링크와,
    중앙 처리 장치(CPU) 및 메모리를 포함하는 주변 디바이스에 통신가능하게 연결되는 제 2 인터커넥트 링크와,
    호스트 컨트롤러를 포함하되,
    상기 호스트 컨트롤러는,
    상기 호스트 컨트롤러에 포함되고, 상기 주변 디바이스의 메모리 또는 상기 RDMA 디바이스의 메모리 중 하나에 매핑되는, 가상 어드레스에서 액세스 요청 메시지의 통지를 수신하고,
    상기 RDMA 디바이스의 메모리에 매핑된 가상 어드레스에서 상기 액세스 요청 메시지를 수신하는 것에 응답하여, 상기 주변 디바이스로부터 상기 RDMA 디바이스의 메모리에 대한 액세스 요청 메시지에 기초하여 RDMA 액세스 요청을 상기 RDMA 디바이스로 송신 - 상기 RDMA 디바이스에 대한 액세스 요청 메시지는 가상 어드레스 RDMA 파라미터를 포함함 - 하고,
    상기 RDMA 디바이스의 메모리에 매핑된 가상 어드레스에서 상기 액세스 요청 메시지를 수신하는 것에 응답하여, 액세스 요청 메시지를 상기 주변 디바이스의 메모리로 송신하는
    장치.
  13. 제 12 항에 있어서,
    상기 RDMA 액세스 요청은 RDMA 판독 요청을 포함하고,
    상기 호스트 컨트롤러는 또한,
    상기 주변 디바이스에 의해 요청된 데이터를 상기 RDMA 디바이스로부터 수신하고,
    상기 데이터를 포함하는 데이터 메시지를 상기 주변 디바이스의 메모리로 송신하는
    장치.
  14. 제 12 항에 있어서,
    상기 RDMA 액세스 요청은 RDMA 기입 요청을 포함하고,
    상기 호스트 컨트롤러는 또한,
    상기 RDMA 디바이스에 의해 요청된 데이터를 상기 주변 디바이스의 메모리로부터 수신하고,
    상기 데이터를 포함하는 데이터 메시지를 상기 RDMA 디바이스로 송신하는
    장치.
  15. 제 12 항에 있어서,
    상기 제 1 인터커넥트 링크 및 상기 제 2 인터커넥트 링크 각각은 주변 컴포넌트 인터커넥트 익스프레스(PCIe) 링크를 포함하고,
    상기 장치는 상기 RDMA 디바이스에 통신가능하게 연결된 루트 포트를 더 포함하는
    장치.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020147008361A 2011-09-30 2011-09-30 시스템 코-프로세서에 대한 직접 i/o 액세스 KR101515359B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054394 WO2013048477A1 (en) 2011-09-30 2011-09-30 Direct i/o access for system co-processors

Publications (2)

Publication Number Publication Date
KR20140071392A KR20140071392A (ko) 2014-06-11
KR101515359B1 true KR101515359B1 (ko) 2015-04-29

Family

ID=47996209

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147008361A KR101515359B1 (ko) 2011-09-30 2011-09-30 시스템 코-프로세서에 대한 직접 i/o 액세스

Country Status (6)

Country Link
US (1) US8914556B2 (ko)
EP (1) EP2761482B1 (ko)
JP (1) JP5869135B2 (ko)
KR (1) KR101515359B1 (ko)
CN (1) CN104094244B (ko)
WO (1) WO2013048477A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996403B2 (en) 2011-09-30 2018-06-12 Oracle International Corporation System and method for providing message queues for multinode applications in a middleware machine environment
US9749413B2 (en) 2012-05-29 2017-08-29 Intel Corporation Peer-to-peer interrupt signaling between devices coupled via interconnects
US9258365B2 (en) * 2013-03-15 2016-02-09 International Business Machines Corporation Remote direct memory access acceleration via hardware context in non-native applciations
ES2779551T3 (es) * 2013-10-29 2020-08-18 Huawei Tech Co Ltd Sistema de procesamiento de datos y método de procesamiento de datos
US9548890B2 (en) 2014-03-17 2017-01-17 Cisco Technology, Inc. Flexible remote direct memory access resource configuration in a network environment
US10218645B2 (en) 2014-04-08 2019-02-26 Mellanox Technologies, Ltd. Low-latency processing in a network node
US9558148B2 (en) * 2014-04-30 2017-01-31 Intel Corporation Method to optimize network data flows within a constrained system
US9304690B2 (en) * 2014-05-07 2016-04-05 HGST Netherlands B.V. System and method for peer-to-peer PCIe storage transfers
US9582463B2 (en) * 2014-12-09 2017-02-28 Intel Corporation Heterogeneous input/output (I/O) using remote direct memory access (RDMA) and active message
CN104407985B (zh) * 2014-12-15 2018-04-03 泰斗微电子科技有限公司 存储器地址映射方法及存储器地址映射系统
US10064138B2 (en) 2014-12-23 2018-08-28 Microsoft Technology Licensing, Llc Energy efficient wireless data transfer
CN105808345B (zh) * 2014-12-31 2019-03-08 华为技术有限公司 数据处理方法、加速引擎、控制板和系统
KR102219759B1 (ko) 2015-01-09 2021-02-25 삼성전자주식회사 저장 장치, 그것을 포함하는 데이터 저장 시스템 및 그것의 동작 방법
WO2016122607A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Dedicated memory server
CN104598406B (zh) * 2015-02-03 2018-02-09 杭州士兰控股有限公司 扩展功能单元及计算设备扩展系统和扩展方法
US9792244B2 (en) 2015-02-13 2017-10-17 Honeywell International Inc. Multiple processor architecture with flexible external input/output interface
US9762491B2 (en) 2015-03-30 2017-09-12 Mellanox Technologies Tlv Ltd. Dynamic thresholds for congestion control
WO2016175847A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Peripheral device server access
US9699095B2 (en) 2015-05-21 2017-07-04 Mellanox Technologies Tlv Ltd. Adaptive allocation of headroom in network devices
US9959245B2 (en) * 2015-06-30 2018-05-01 International Business Machines Corporation Access frequency approximation for remote direct memory access
US9954979B2 (en) * 2015-09-21 2018-04-24 International Business Machines Corporation Protocol selection for transmission control protocol/internet protocol (TCP/IP)
US10031883B2 (en) 2015-10-16 2018-07-24 International Business Machines Corporation Cache management in RDMA distributed key/value stores based on atomic operations
US10069748B2 (en) 2015-12-14 2018-09-04 Mellanox Technologies Tlv Ltd. Congestion estimation for multi-priority traffic
CN105630723A (zh) * 2015-12-22 2016-06-01 中国电子科技集团公司第三十二研究所 基于异构处理器平台的管理架构及其管理方法
US10069701B2 (en) 2016-01-13 2018-09-04 Mellanox Technologies Tlv Ltd. Flexible allocation of packet buffers
CN113407244A (zh) 2016-03-01 2021-09-17 华为技术有限公司 一种级联板、ssd远程共享访问的系统和方法
US10250530B2 (en) 2016-03-08 2019-04-02 Mellanox Technologies Tlv Ltd. Flexible buffer allocation in a network switch
US10084716B2 (en) 2016-03-20 2018-09-25 Mellanox Technologies Tlv Ltd. Flexible application of congestion control measures
US10205683B2 (en) 2016-03-28 2019-02-12 Mellanox Technologies Tlv Ltd. Optimizing buffer allocation for network flow control
US10387074B2 (en) 2016-05-23 2019-08-20 Mellanox Technologies Tlv Ltd. Efficient use of buffer space in a network switch
US9985910B2 (en) 2016-06-28 2018-05-29 Mellanox Technologies Tlv Ltd. Adaptive flow prioritization
GB2553102B (en) * 2016-08-19 2020-05-20 Advanced Risc Mach Ltd A memory unit and method of operation of a memory unit to handle operation requests
CN111897751A (zh) * 2017-01-26 2020-11-06 华为技术有限公司 一种数据传输的方法、装置、设备和系统
US10389646B2 (en) 2017-02-15 2019-08-20 Mellanox Technologies Tlv Ltd. Evading congestion spreading for victim flows
US10645033B2 (en) 2017-03-27 2020-05-05 Mellanox Technologies Tlv Ltd. Buffer optimization in modular switches
JP2019016101A (ja) * 2017-07-05 2019-01-31 富士通株式会社 情報処理システム、情報処理装置、および情報処理システムの制御方法
KR102446733B1 (ko) 2017-11-30 2022-09-23 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치
US10977193B2 (en) 2018-08-17 2021-04-13 Oracle International Corporation Remote direct memory operations (RDMOs) for transactional processing systems
US11347678B2 (en) * 2018-08-06 2022-05-31 Oracle International Corporation One-sided reliable remote direct memory operations
KR20200036461A (ko) 2018-09-28 2020-04-07 삼성전자주식회사 메모리 디바이스들 사이의 직접 통신을 위한 메모리 시스템 및 메모리 디바이스
US11005770B2 (en) 2019-06-16 2021-05-11 Mellanox Technologies Tlv Ltd. Listing congestion notification packet generation by switch
US10999221B2 (en) 2019-07-02 2021-05-04 Mellanox Technologies Tlv Ltd. Transaction based scheduling
US20210194894A1 (en) * 2019-12-23 2021-06-24 Cisco Technology, Inc. Packet metadata capture in a software-defined network
US11470010B2 (en) 2020-02-06 2022-10-11 Mellanox Technologies, Ltd. Head-of-queue blocking for multiple lossless queues
CN112463714B (zh) * 2020-11-30 2022-12-16 成都海光集成电路设计有限公司 远程直接内存访问方法、异构计算系统及电子设备
US11973696B2 (en) 2022-01-31 2024-04-30 Mellanox Technologies, Ltd. Allocation of shared reserve memory to queues in a network device
CN114866619B (zh) * 2022-04-29 2023-08-08 苏州浪潮智能科技有限公司 一种异构加速方法、装置、系统及计算机可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711793B1 (en) * 2001-07-17 2010-05-04 Adaptec, Inc. No single point of failure RAID box using SATA drives
DE60316969T2 (de) * 2002-08-14 2008-07-31 Broadcom Corp., Irvine One-shot-rdma mit einem 2-bit-zustand
US20050220128A1 (en) 2004-04-05 2005-10-06 Ammasso, Inc. System and method for work request queuing for intelligent adapter
US7702826B2 (en) 2005-12-28 2010-04-20 Intel Corporation Method and apparatus by utilizing platform support for direct memory access remapping by remote DMA (“RDMA”)-capable devices
KR20090102789A (ko) 2006-12-06 2009-09-30 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법
US8966195B2 (en) * 2009-06-26 2015-02-24 Hewlett-Packard Development Company, L.P. Direct memory access and super page swapping optimizations for a memory blade
US8949565B2 (en) * 2009-12-27 2015-02-03 Intel Corporation Virtual and hidden service partition and dynamic enhanced third party data store

Also Published As

Publication number Publication date
JP5869135B2 (ja) 2016-02-24
US20130275631A1 (en) 2013-10-17
JP2014531685A (ja) 2014-11-27
CN104094244A (zh) 2014-10-08
WO2013048477A1 (en) 2013-04-04
EP2761482A1 (en) 2014-08-06
EP2761482A4 (en) 2015-04-22
KR20140071392A (ko) 2014-06-11
EP2761482B1 (en) 2016-11-30
CN104094244B (zh) 2017-05-31
US8914556B2 (en) 2014-12-16

Similar Documents

Publication Publication Date Title
KR101515359B1 (ko) 시스템 코-프로세서에 대한 직접 i/o 액세스
US11748278B2 (en) Multi-protocol support for transactions
EP3748510A1 (en) Network interface for data transport in heterogeneous computing environments
CN110402568B (zh) 一种通信的方法及装置
US20200104275A1 (en) Shared memory space among devices
US8131814B1 (en) Dynamic pinning remote direct memory access
CN107077441B (zh) 用于提供使用rdma和主动消息的异构i/o的方法和装置
US9244881B2 (en) Facilitating, at least in part, by circuitry, accessing of at least one controller command interface
US11290392B2 (en) Technologies for pooling accelerator over fabric
US9952992B2 (en) Transaction request optimization for redirected USB devices over a network
WO2013180691A1 (en) Peer-to-peer interrupt signaling between devices coupled via interconnects
WO2022039863A1 (en) Adaptive routing for pooled and tiered data architectures
CN109983741B (zh) 经由直接存储器访问设备在虚拟机之间传送分组
US11741039B2 (en) Peripheral component interconnect express device and method of operating the same
US10104171B1 (en) Server architecture having dedicated compute resources for processing infrastructure-related workloads
KR102426416B1 (ko) 멀티 커널 시스템의 입출력 처리 방법 및 장치
CN115933973B (zh) 远程更新数据的方法、rdma系统及存储介质
US20240069800A1 (en) Host-preferred memory operation
US12013788B2 (en) Evicting a cache line with pending control request
US20230315659A1 (en) Interrupt emulation on network devices
US20240070060A1 (en) Synchronized request handling at a memory device
Kang et al. Towards connection-scalable RNIC architecture

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 5