KR19980086583A - 멀티노드 비동기 데이타 통신 시스템 내의 조기 도달 메시지 처리 방법 - Google Patents

멀티노드 비동기 데이타 통신 시스템 내의 조기 도달 메시지 처리 방법 Download PDF

Info

Publication number
KR19980086583A
KR19980086583A KR1019980012937A KR19980012937A KR19980086583A KR 19980086583 A KR19980086583 A KR 19980086583A KR 1019980012937 A KR1019980012937 A KR 1019980012937A KR 19980012937 A KR19980012937 A KR 19980012937A KR 19980086583 A KR19980086583 A KR 19980086583A
Authority
KR
South Korea
Prior art keywords
message
receiver
receive buffer
early arrival
transmitter
Prior art date
Application number
KR1019980012937A
Other languages
English (en)
Other versions
KR100284790B1 (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 KR19980086583A publication Critical patent/KR19980086583A/ko
Application granted granted Critical
Publication of KR100284790B1 publication Critical patent/KR100284790B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

양방향 비동기 통신 채널들에 의해 상호 접속된 복수의 비동기 컴퓨팅 노드를 구비한 컴퓨터 시스템에서 소스 및 목적 노드들 사이에 전송되는 조기 도달 메시지들을 조절하기 위한 메시지 전송 프로토콜이 개시되어 있다. 이 프로토콜은 수신기로부터의 메시지 요구를 기다리지 않고 송신기에서 수신기로 메시지를 전송하는 단계; 수신기에서 메시지용 수신 버퍼가 포스트되었는가를 판정하는 단계; 및 메시지용 수신 버퍼가 포스트되지 않은 경우, 수신기 측의 조기 도달 큐 내에 메시지 헤더를 저장하고 메시지 데이타를 버림으로써 메시지를 절단하거나, 또는 메시지 데이타를 유지하기 위해 수신기에 임시 수신 버퍼를 할당하는 단계를 포함한다. 수신기가 조기 도달 메시지용 수신 버퍼를 포스트할 준비가 된 때에, 수신기는 대응 메시지 헤더를 조기 도달 큐에서 검사하고, 조기 도달 큐 안에 메시지 헤더가 있고 메시지 데이타가 버려진 경우에 수신기는 송신기에 풀 요구를 전송하여 메시지를 수신기로 재전송하도록 한다.

Description

멀티노드 비동기 데이타 통신 시스템 내의 조기 도달 메시지 처리 방법
본 발명은 양방향 비동기 통신 채널에 의해 상호 접속된 복수의 비동기 연산 노드를 구비한 컴퓨터 시스템에서의 메시지 전송에 관한 것으로서, 특히 소스 노드와 목적 노드 사이의 메시지 전송 대기 시간을 줄이기 위해 컴퓨터 시스템 내 조기 도달 메시지들을 조절하기 위한 방법 및 시스템에 관한 것이다.
프로세서 대화용 메시지 전송을 이용하는 병렬 컴퓨터들에 있어서, 소스 프로세서 상의 사용자 코드는 전송될 메시지를 지정하며, 목적 프로세서 상의 사용자 코드는 수신할 메시지를 위한 장소를 지정한다. 수신된 메시지가 저장될 장소를 지정하는 동작은 버퍼 포스팅(buffer posting)으로 표현된다. 버퍼가 포스트되지 않은 경우, 하드웨어와 소프트웨어의 조합으로 동작하는 통신 시스템은 메시지 데이타를 저장할 장소에 관한 정보가 없기 때문에 메시지를 수신할 수 없다.
소스 및 목적 프로세서들은 비동기식으로 동작하는 것으로 가정되기 때문에, 메시지를 전송하기 위한 소스 프로세서 사용자 명령은 목적 프로세서 사용자 명령이 해당 버퍼를 포스트하기 위해 발생하기 전에 실행될 수 있다. 따라서, 정상 동작 하에서 메시지는 버퍼에 포스트되기 전에 통신 시스템용 목적 프로세서의 하드웨어 어댑터에 도달할 수 있다.
종전의 프로토콜들은 소스 프로세서로 하여금 국부적으로 메시지를 저장하고 전송하지 않도록 함으로써 상기한 문제를 처리하였다. 목적 프로세서 사용자 코드가 버퍼를 포스트할 때, 통신 시스템은 메시지가 수신될 수 있는 목적 프로세서로 메시지를 전송할 것을 알리는 풀(pull) 메시지를 소스 프로세서에 전송한다. 그러나, 이러한 해법은 전송된 모든 메시지가 2회의 전송, 즉 풀 메시지를 위한 목적 프로세서에서 소스 프로세서로의 전송 및 메시지를 위한 소스 프로세서에서 목적 프로세서로의 전송을 필요로 하므로 대기 시간 성능이 나빠진다. 프로토콜은 소스 프로세서가 목적 프로세서에게 풀 메시지를 현재 전송할 수 있다는 것을 알리는 메시지 헤더를 전송할 수 있기 때문에 3회의 전송이 필요할 수도 있다.
따라서, 양방향 비동기 통신 채널에 의해 상호 접속된 복수의 비동기 컴퓨터 노드를 구비한 컴퓨터 시스템에서 소스 및 수신기 노드들간의 대기 시간을 감소시키기 위해서는 메시지 처리 프로토콜의 개선이 요구된다는 것이 당해 분야에서 인식되고 있다. 본 발명은 이러한 요구를 해결하며, 특히 조기 도달 메시지, 즉 메시지용 수신 버퍼가 포스트되기 전에 수신 노드에 도달한 메시지를 처리하기 위한 프로토콜을 제공한다.
요컨대, 본 발명은 일 양태에서 컴퓨터 노드들에서 비동기적으로 실행되는 사용자 처리 프로그램들간의 메시지 전송을 위해 양방향 비동기 통신 채널들에 의해 상호 접속된 복수의 컴퓨팅 노드를 구비한 컴퓨터 시스템에서 소스 컴퓨팅 노드(송신기)에서 수신기 컴퓨팅 노드(수신기)로 전송된 메시지를 처리하기 위한 방법을 포함한다. 메시지는 메시지 헤더 및 데이타를 포함한다. 이 방법은 수신기로부터의 메시지 요구를 기다리지 않고 송신기에서 수신기로 메시지를 전송하는 단계; 수신기에서 메시지용 수신 버퍼가 포스트되었는가를 판정하는 단계; 및 메시지용 수신 버퍼가 포스트되지 않은 경우, 수신기 측의 조기 도달 큐 내에 메시지 헤더를 저장하고 데이타를 버림으로써 메시지를 절단하는 단계를 포함한다. 수신기가 메시지를 위한 수신 버퍼를 포스트할 준비가 된 때, 상기 방법은 메시지 헤더를 조기 도달 큐에서 검사하는 단계; 및 메시지 헤더가 조기 도달 큐 내에 있는 경우, 수신기에서 송신기로 풀 요구를 전송하는 단계를 더 포함한다. 풀 요구는 송신기에게 메시지를 수신기로 재전송할 것을 명령한다.
다른 양태에서, 본 발명은 컴퓨터 노드들에서 비동기적으로 실행되는 사용자 프로그램들간의 메시지 전송을 위해 양방향 비동기 통신 채널들에 의해 상호 접속된 복수의 컴퓨팅 노드를 구비한 컴퓨터 시스템에서 송신기 컴퓨팅 노드(송신기)에서 수신기 컴퓨팅 노드(수신기)로 메시지를 통신하기 위한 다른 방법을 포함한다. 메시지는 역시 메시지 헤더 및 데이타를 포함한다. 이 방법은 수신기로부터의 메시지 요구를 기다리지 않고 송신기에서 수신기로 메시지를 전송하는 단계; 수신기에서 메시지를 수신한 때에, 메시지용 수신 버퍼가 포스트되었는가를 판정하고, 메시지용 수신 버퍼가 포스트된 경우, 수신 버퍼 내에 메시지를 저장하는 단계; 및 메시지용 수신 버퍼가 포스트되지 않은 경우, 메시지 데이타를 유지하도록 수신기에 임시 수신 버퍼를 할당하고, 수신기 측의 조기 도달 큐 내에 메시지 헤더 및 임시 버퍼 정보를 저장하는 단계를 포함한다. 수신기가 메시지를 위한 수신 버퍼를 포스트할 준비가 된 때, 상기 방법은 대응 메시지 헤더를 조기 도달 큐에서 검사하는 단계; 및 메시지 헤더가 조기 도달 큐 내에 있는 경우, 수신 버퍼의 포스트를 요구하지 않고 임시 수신 버퍼에서 수신 버퍼로 메시지 데이타를 이동시키는 단계를 더 포함한다.
또 다른 양태에서, 본 발명은 컴퓨터 노드들에서 비동기적으로 실행되는 사용자 프로그램들간의 메시지 전송을 위해 양방향 비동기 통신 채널들에 의해 상호 접속된 복수의 컴퓨팅 노드를 구비한 컴퓨터 시스템을 포함한다. 컴퓨터 시스템은 송신기 컴퓨팅 노드(송신기)에서 수신기 컴퓨팅 노드(수신기)로의 메시지(메시지 헤더 및 메시지 데이타 포함) 전송을 허용한다. 컴퓨터 시스템은 수신기로부터의 메시지 요구를 기다리지 않고 송신기에서 수신기로 메시지를 전송하기 위한 수단을 포함한다. 수신기는 조기 도달 큐 및 패킷 수신기를 포함한다. 패킷 수신기는 메시지를 수신한 때에 메시지용 수신 버퍼가 포스트되었는가를 판정하며, 메시지용 수신 버퍼가 포스트되지 않은 경우, 패킷 수신기는 조기 도달 큐 내에 메시지 헤더를 저장하고 메시지 데이타를 버림으로써 메시지를 절단하기 위한 수단도 포함한다. 수신기가 메시지를 위한 수신 버퍼를 포스트할 준비가 된 때에, 시스템은 매칭 메시지 헤더를 조기 도달 큐에서 검사하기 위한 수단 및 매칭 메시지 헤더가 조기 도달 큐 내에 있는 경우에 수신기로 메시지를 재전송할 것을 송신기에 명령하는 풀 요구를 수신기에서 송신기로 전송하기 위한 수단을 더 포함한다.
또 다른 양태에서, 본 발명은 컴퓨터 노드들에서 비동기적으로 실행되는 사용자 프로그램들간의 메시지 전송을 위해 양방향 비동기 통신 채널들에 의해 상호 접속된 복수의 컴퓨팅 노드를 구비한 컴퓨터 시스템을 포함한다. 컴퓨터 시스템은 송신기 컴퓨팅 노드(송신기)에서 수신기 컴퓨팅 노드(수신기)로의 메시지(메시지 헤더 및 메시지 데이타 포함) 전송을 허용한다. 컴퓨터 시스템은 수신기로부터의 메시지 요구를 기다리지 않고 송신기에서 수신기로 메시지를 전송하기 위한 수단을 포함한다. 수신기 측의 통신 어댑터는 메시지를 수신한 때에 메시지용 수신 버퍼가 포스트되었는가를 판정하고, 메시지용 수신 버퍼가 포스트된 경우에 메시지를 수신 버퍼 안에 복사하기 위한 패킷 수신기를 포함한다. 메시지용 수신 버퍼가 포스트되지 않았고 임시 버퍼 공간이 있는 경우, 통신 어댑터는 메시지 데이타를 유지하도록 수신기 측에 임시 버퍼 공간을 할당하고 수신기 측의 조기 도달 큐 내에 메시지 헤더 및 임시 버퍼 정보를 저장하기 위한 수단을 더 포함한다. 수신기가 메시지를 위한 수신 버퍼를 포스트할 준비가 된 때에, 컴퓨터 시스템은 매칭 메시지 헤더를 조기 도달 큐에서 검사하기 위한 수단; 및 존재하는 경우에 통신 어댑터에서의 수신 버퍼의 포스트를 요구하지 않고 임시 수신 버퍼에서 수신 버퍼로 메시지 데이타를 이동시키기 위한 수단을 더 포함한다.
본 발명의 다른 실시예 및 양태 또한 본 명세서에 상세히 설명되어 있으며 청구된 발명의 일부로서 고려된다. 예컨대, 위에 요약된 방법들을 포함하는 컴퓨터 판독 가능 프로그램 코드 수단이 설명되고 청구되어 있다. 추가적으로, 본 발명의 각 양태에 대한 다양한 개량이 존재한다.
본 명세서에는 복수의 비동기 컴퓨팅 노드를 포함하는 컴퓨터 시스템 내 소스 및 목적 노드들간의 메시지 전송 대기 시간을 감소시키도록 조기 도달 메시지들을 조절하기 위한 방법이 설명되어 있다. 이 방법은 수신기의 메시지 전송 요구를 기다리지 않고 메시지를 전송하는 것이다. 따라서, 수신 버퍼가 포스트된 경우, 메시지는 즉시 수신될 수 있어 단지 단일 전송만의 대기 시간이 소모된다. 메시지가 조기 도달 메시지를 포함하는 경우, 제공된 방법/시스템은 미예측 메시지의 데이타를 제거하거나 데이타를 통신 어댑터 레벨에서 유지한 후 이를 수신기 프로세서에 통지함으로써 성능을 최적화할 수 있는 유연성을 제공한다. 양 옵션은 동일한 기본 메카니즘, 즉 하드웨어 레벨에서의 런팅(runting)을 이용하며, 통신 시스템은 현재 상황에서 최고의 성능을 위해 어느 옵션을 사용할 것인가를 소프트웨어 레벨에서 결정할 수 있다. 양 옵션은 수신 버퍼가 미리 포스트된 경우에 양호한 메시지 전송 성능을 유지한다.
본 발명의 상기한 목적 및 다른 목적, 장점 및 특징은 첨부된 도면과 관련하여 고려할 때 본 발명의 특정 바람직한 실시예들에 대한 아래의 상세한 설명으로부터 더 쉽게 이해될 것이다.
도 1은 본 발명을 이용한 컴퓨터 시스템의 일 실시예를 나타내는 도면.
도 2는 도 1의 통신 어댑터의 일 실시예를 나타내는 도면.
도 3은 본 발명에 따른 도 1의 수신기 노드의 더 상세한 실시예를 나타내는 도면.
도 4a 및 4b는 본 발명에 따른 메시지 전송 프로토콜의 일 실시예를 나타내는 순서도.
도 5a 및 5b는 본 발명에 따른 메시지 전송 프로토콜의 다른 실시예를 나타내는 순서도.
도 6a 및 6b는 본 발명에 따른 메시지 전송 프로토콜의 또 다른 실시예를 나타내는 순서도.
* 도면의 주요부분에 대한 부호의 설명
10 : 컴퓨터 시스템
12 : 노드
14 : 송신기
16 : 수신기
18 : 스위치 망
20 : 통신 어댑터
22 : 시스템 버스
24 : 마이크로프로세서
25 : 수신 버퍼
26 : 주 메모리
27 : 임시 버퍼
30 : 스위치 패브릭 인터페이스
31 : 스위치 인터페이스 버퍼
32 : 패킷 수신기
34 : 패킷 송신기
36 : 버스 인터페이스
38 : 명령 디코드 로직
40 : DMA 엔진
42 : 버퍼 포스터
44 : 메모리 제어기
46 : 제어 저장 메모리
50 : 조기 도달 큐
도 1은 본 발명에 따른 메시지 전송을 이용하는, 10으로 표시된, 컴퓨터 시스템의 일 실시예를 나타낸다. 시스템(10)은 복수의 컴퓨팅 노드 또는 프로세서(12)를 포함하는데, 이들 중 하나는 메시지 전송 컴퓨팅 노드(송신기)(14)로 표시되며, 다른 노드는 메시지 수신기 컴퓨팅 노드(수신기)(16)를 포함한다. 노드들(12)은 사용자 프로그램을 비동기적으로 처리하는 자신의 운영 체제를 구비한 독립적인 컴퓨터들을 포함한다. 노드들은 다수의 스위치 칩을 포함할 수 있는 스위치 망(18)을 통해 함께 결합되어 있다. 스위치 칩들은 당해 분야에 공지된 멀티 스테이지 상호 접속망을 형성하도록 상호 접속된 크로스 바 패킷 스위칭 칩들이다.
수신기(16)와 같은 컴퓨터 노드 안에는 통신 어댑터(20), 고속 시스템 버스(22), 하나 이상의 마이크로프로세서(24), 및 하나 이상의 주 기억 메모리(26)가 포함되어 있다. 본 발명에 따른 메시지 처리 프로토콜은 송신기 및 수신기의 통신 어댑터들(20) 안에서, 그리고 이들 사이에서 구현된다.
컴퓨팅 노드들(12)의 독립 운영 체제들은 비동기적으로 동작하기 때문에, 송신기(14)에서 수신기(16)로의 메시지 전송에 있어서는 일반적으로 핸드셰이킹 메카니즘이 사용된다. 예컨대, 송신기에서 수신기로 메시지가 전송되기 전에, 일반적으로 송신기는 수신기가 메시지를 수신할 준비가 되었는지를 묻는다. 이러한 구현에 있어서, 송신기에서 수신기로의 메시지 전송을 달성하기 위해서는 필연적으로 3개 망 크로싱이 이용된다.
본 발명에 따르면, 메시지를 수신하기 위해 수신 버퍼가 할당된 것을 보장하기 위한 송신기와 수신기 간의 예비 핸드셰이킹 없이 시스템 안에서 메시지가 전송될 수 있도록 허용함으로써 성능이 개선된다. 이것은 수신 노드에 조기 도달 지원을 제공함으로써 가능해진다. 조기 도달 지원은 수신기에서 조기 도달 메시지, 즉 시스템 내 대응 버퍼가 할당되기 전에 수신된 메시지를 효율적으로 처리할 능력이 있다는 것을 의미한다. 아래에 더 설명되는 바와 같이, 본 발명은 조기 도달 메시지의 일부를 제거하거나 메시지를 통신 어댑터(20) 레벨에서 유지한 후 이를 프로세서에 통지함으로써 성능을 최적화할 수 있는 유연성을 제공한다. 본 발명에 따르면, 양 옵션은 하드웨어 레벨에서 동일한 기본 메카니즘을 이용하며, 통신 시스템은 현재 상황에서 최고 성능을 위해 어느 옵션을 사용할 것인가를 소프트웨어 레벨에서 결정할 수 있다.
도 2를 참조하면, 수신 노드는 할당 프로그램의 제어 하에 시스템 내 다른 컴퓨팅 노드로부터 특정 메시지를 수신할 시스템 메모리의 한 섹션을 할당한다. 이 수신 버퍼는 수신 후 메시지를 저장할 장소를 알리는 명령이 통신 어댑터에 주어질 때에 포스트된다. 통신 어댑터(20) 내 버퍼 포스터(buffer poster)(42)는 할당된 수신 버퍼에 대한 기술자 정보를 메모리 제어기(44)를 통해 제어 저장 메모리(46)에 저장한다. 이러한 기술자 정보는 대응 메시지가 도달할 때까지 메모리(46)에 저장된다. 이러한 기술자는 기본적으로 주 시스템 메모리(26)(도 1 참조)에 포스트된 실제 수신 버퍼들에 대한 포인터들을 포함한다.
통신 어댑터(20)는 스위치 링크 1 내지 스위치 링크 N에 물리적으로 접속된 포트들을 구비한 스위치 패브릭 인터페이스를 포함하는데, 이 인터페이스는 컴퓨팅 노드를 스위치 망에 결합시킨다. 패킷 스위치 망(18) (도 1 참조)에 대한 각각의 물리적 접속을 위해 패킷 수신기(32) 및 패킷 송신기(34)가 제공된다.
통신 어댑터(20)는 시스템 버스(22)를 통해 컴퓨팅 노드의 프로세서와 통신한다. 버스 인터페이스(36)가 어댑터(20)를 버스(22)에 결합시킨다. 칩의 버스 인터페이스 부분은 버스 프로토콜을 구현하여 프로세서에 대한 적재/저장 명령을 수신한다. 이 부분은 또한, 프로세서에 의해 개시된 기능들을 감시하고 이에 따라 반응하는 명령 디코드 로직(38)과, 버스 동작을 개시하는 직접 메모리 액세스(direct memory access: DMA) 엔진(40)을 구비하고 있다. 예컨대, 엔진(40)은 호스트 프로세서를 수반하지 않고 어댑터에서 시스템 메모리로 데이타를 기록하거나 판독할 수 있다. 버스 인터페이스(36)와 스위치 패브릭 인터페이스(30) 사이의 통신 동작을 추적하고 관리하기 위한 기록이 제어 저장 메모리(46)에 유지되는데, 이 메모리는 한 실시예에서 다수의 SRAM 모듈을 포함할 수 있다.
도 3은 본 발명에 따른 수신기(16)에서의 흐름 제어를 더 상세히 나타내고 있다.송신기(14)로부터 스위치 망(18)을 통해 수신된 메시지는 먼저 스위치 패브릭 인터페이스(30) 내 스위치 인터페이스 버퍼(31) 안에 임시로 버퍼링된다. 인터페이스(30)는 패킷 수신기(32)에 대한 메시지의 헤더 HDR 및 DATA 부분을 식별한다. 패킷 수신기(32)는 제어 저장 메모리(46) 내의 데이타 구조를 검사하여 메시지를 위한 수신 버퍼(25)가 주 시스템 메모리 안에 포스트되었는지의 여부를 확인한다. 수신 버퍼(25)가 포스트된 경우, 메시지는 시스템 버스(22)를 가로질러 주 메모리(26) 안으로 DMA 엔진(40)을 통해 복사된다.
메시지용의 대응 수신 버퍼가 아직 포스트되어야 하는 경우에는, 본 발명에 따라, 수신된 망 메시지로부터 데이타를 스트리핑함으로써 런트(runt)가 생성된다. 통상적으로, 망 메시지 또는 패킷은 3개 부분, 즉 어댑터 하드웨어에 의해 번역되는 하드웨어 헤더, 마이크로프로세서 상에서 실행되는 소프트웨어에 의해 번역되는 소프트웨어 헤더, 및 실제 메시지 데이타를 포함하는 패킷 데이타를 포함한다. 헤더들은 데이타를 기술하는 정보를 갖고 있다. 예컨대, 데이타의 송신지, 메시지 내 데이타 바이트의 수, 메시지 이전의 메시지, 및 데이타의 유형 등이 메시지 내에 포함되어 있다.
런트는 어댑터 내에 저장된 데이타 구조로서, 본 명세서에서 메시지 헤더로서 집합적으로 언급되는 하드웨어 및 소프트웨어 헤더들을 포함한다. 메시지 헤더는 메시지가 생성되도록 한 조건을 기술하는 정보를 포함하지만, 메시지 데이타는 포함하지 않는다. 본 발명에 따르면, 런트를 포함하는 데이타 구조는 패킷 수신기(32)에 의해 생성되어 제어 저장 메모리(46) 내 조기 도달 큐(50) 안에 배치된다. 추가적으로, 런트는 어댑터로부터 마이크로프로세서 상에서 실행되는 소프트웨어로 전송되어 수신될 수 없는 메시지가 도달되었음을 마이크로프로세서에 알린다. 하드웨어 어댑터는 프로세서 메모리 내 특정 위치를 기록하거나 프로세서 인터럽트를 발행함으로써 프로세서에 런트가 저장되었음을 알린다.
위에 간단히 설명된 바와 같이, 통신 어댑터는 본 발명에 따른 다양한 프로토콜을 구현할 수 있다. 예컨대, 어댑터는 메시지 데이타를 버리고 후속 메시지를 수신할 수 있거나, 또는 어댑터는 메시지 데이타를 주 메모리 내 임시 버퍼(27) 안에 유지하고 프로세서가 메시지를 위한 수신 버퍼를 포스트하기를 기다릴 수 있다. 첫 번째 경우에, 프로세서는 런트 또는 메시지 헤더 정보를 추적하며, 사용자 처리 프로그램에 의해 매칭 수신 버퍼가 포스트된 때에 메시지를 위한 풀 요구를 발행하게 된다. 그 다음, 메시지는 송신기에서 수신기로 재전송되어, 포스트된 수신 버퍼 안에 복사된다. 두 번째의 경우, 통신 시스템 소프트웨어는 수신될 메시지를 위한 버퍼를 포스트한다. 사용자 코드는 메시지용 수신 버퍼를 포스트하지 않았기 때문에, 통신 시스템 소프트웨어에 의해 포스트된 상기 버퍼는 대응 수신 버퍼의 포스트를 시작하기 위한 사용자 코드가 실행될 때까지 데이타가 임시 저장되는 임시 버퍼(27)를 포함한다.
일정한 상황에서는, (데이타를 버리는) 첫 번째 옵션이 최적인데, 그 이유는 이 옵션이 어댑터로 하여금 임시 버퍼가 포스트되는 것을 기다리게 하지 않고 다른 메시지의 수신을 계속할 수 있도록 하기 때문이다. 그러나, 이 옵션은 다른 상황에서는 성능을 저하시킬 수 있는데, 그 이유는 메시지가 재전송되어야 하기 때문이다. 따라서, 몇몇 상황에서는, 임시 버퍼 안에 메시지 데이타를 배치하는 것이 최적인데, 그 이유는 버퍼가 포스트된 후 메시지의 재전송이 필요하지 않기 때문이다. 그러나, 이 방법은 수신기가 수신할 수 있는 다른 메시지를 처리하는 것을 방해할 수 있다.
하드웨어 어댑터는 어느 옵션도 사용 가능하도록 프로그래밍될 수 있다. 이것은 목적 프로세서 상의 통신 시스템 레벨에서 동작하는 소프트웨어 층들이 어떤 상황에서 어느 동작이 이용될 것인가를 지정하고 어댑터를 적절히 프로그래밍하도록 해 준다. 또한, 하드웨어 어댑터는, 임시 버퍼 프로토콜을 사용하여 시작할 수 있도록 하지만 통신 시스템 소프트웨어가 매칭 수신 버퍼를 포스트하는 데 너무 오래 걸리는 경우에는 데이타 삭제 프로토콜로의 스위칭을 가능하게 해 주는 프로그래머블 타이머를 구비하고 있다.
본 발명에 따른 메시지 전송의 다양한 실시예가 도 4a-6b에 도시되어 있으며 아래에 설명된다.
도 4a 및 4b는 본 발명에 따른 런팅 및 메시지 데이타 제거를 이용하는 하나의 메시지 처리 프로토콜을 나타낸다. 이 프로토콜은 소스 노드가 목적 노드로 메시지를 전송하거나(100) 목적 노드가 메시지를 위한 수신 버퍼를 비동기적으로 포스트하는 것(102)과 동시에 시작된다. 송신기가 메시지를 수신기로 전송함(100)으로써 시작되는 경우, 메시지는 수신기 컴퓨팅 노드의 통신 어댑터에서 수신된다(104). 그 다음, 어댑터의 패킷 수신기는 제어 저장 메모리 내의 데이타 구조를 판독하여 메시지용 수신 버퍼가 이미 포스트(할당)되었는지를 판정한다(106). 수신 버퍼가 이미 포스트된 경우(108), 프로토콜은 포스트된 수신 버퍼로 메시지를 이동시킬 것을 버스 인터페이스 내 DMA 엔진에 알리도록 패킷 수신기에 지시한다(110). 그 다음, 패킷 수신기는 메시지가 수신되었다는 확인 신호를 생성하여 소스 노드로 전송한다(112). 수신 노드의 사용자 소프트웨어는 포스트된 수신 버퍼 내에 배치된 경우 또 다른 처리를 위한 메시지를 갖는다(114).
질문(108)으로 복귀한 후, 목적 노드에 미예측 메시지가 수신된 경우, 즉 메시지를 위한 수신 버퍼가 포스트되지 않은 경우, 패킷 수신기는 메시지 헤더를 통신 어댑터의 제어 저장 메모리 내 조기 도달 큐 구조 안에 저장함으로써 메시지를 위한 런트를 생성한다(116). 그 다음, 패킷 수신기는 메시지 데이타를 버리며(118), 수신된 다음 메시지의 처리를 진행하거나, 수신 소프트웨어가 수신 버퍼를 포스트할 준비가 되기를 기다린다(도 4b의 가상선 참조).
약간의 시간이 지난 후, 사용자 처리 프로그램은 조기 도달 메시지이었을 수 있는 메시지를 위한 수신 버퍼를 포스트할 준비를 갖춘다(102). 수신 소프트웨어는 먼저 조기 도달 큐에서 대응 메시지 헤더를 검사한다(120). 메시지 헤더가 조기 도달 큐 내에 존재하지 않는 경우(122), 수신기는 메시지용 수신 버퍼를 포스트한다(130). 이와 달리, 메시지가 조기 도달 메시지이었고 패킷 헤더가 조기 도달 큐 내에 있는 경우에는, 수신기는 수신 버퍼를 포스트하고(124), 메시지를 재전송하도록 하기 위해 소스 노드로 풀 요구를 전송한다(126). 그 다음, 송신기는 원시 메시지를 재전송하며(128), 수신기는 목적 어댑터에 메시지가 도달함으로써 시작되는 메시지 처리 프로토콜로 복귀한다(104).
도 5a 및 5b는 본 발명에 따른 메시지 처리 프로토콜의 다른 실시예를 나타내는데, 여기서는 조기 도달 메시지를 수용할 임시 버퍼가 어댑터에 의해 할당되며, 수신기는 사용자 처리 프로그램에 의한 메시지용 수신 버퍼의 지정을 기다린다. 도 5a 및 5b의 흐름은, 소스 노드가 메시지를 전송한 후(200) 또는 수신기가 비동기적으로 수신 버퍼를 포스트할 준비가 된 때(202)에 시작된다. 소스 노드가 메시지를 전송한 경우, 메시지는 목적 노드의 통신 어댑터에서 수신된다(204). 목적 어댑터의 패킷 수신기는 먼저, 포스트된 대응 수신 버퍼를 검사한다(206). 수신 버퍼가 이미 포스트된 경우(208), 패킷 수신기는 DMA 엔진에 데이타를 수신 버퍼로 이동시킬 것을 알린다(210). 그 다음, 패킷 수신기는 메시지가 수신되었다는 확인 신호를 생성하여 소스 노드로 전송한다(212). 그 다음, 수신 노드 소프트웨어는 수신 버퍼에 저장된 메시지 데이타를 이용할 수 있다(214).
수신 버퍼가 아직 포스트되지 않은 경우, 본 실시예에서 수신 어댑터의 소프트웨어는 주 메모리 내에 임시 버퍼를 할당한다(215). 패킷 수신기는 DMA 엔진에 메시지 데이타를 임시 수신 버퍼로 이동시킬 것을 알리며(217), 메시지 헤더 및 임시 버퍼에 관한 정보를 어댑터(219)의 제어 저장 메모리 내 조기 도달 큐에 첨부한다(219). 이후, 처리는 사용자 소프트웨어가 메시지용 수신 버퍼를 포스트할 준비를 갖추기를 기다린다(202).
사용자 처리 프로그램이 메시지용 수신 버퍼를 포스트할 준비를 갖춘 후, 소프트웨어는 먼저 조기 도달 큐 내 대응 (또는 매칭) 메시지 헤더를 검사한다(220). 매칭 패킷 헤더가 조기 도달 큐 안에 존재하지 않는 경우(222), 수신기는 메시지용 수신 버퍼를 포스트한다(230). 전술한 바와 같이, 수신 버퍼 포스트은 통신 어댑터 내 데이타 구조의 생성을 수반하는데, 이는 수신될 메시지용 수신 버퍼가 배치될 장소를 어댑터에 지시하기 위한 것이다.
매칭 패킷 헤더가 조기 도달 큐 내에 존재하는 경우(222), 수신 소프트웨어는 임시 수신 버퍼의 위치를 식별하고 메시지 데이타를 임시 수신 버퍼에서 수신 버퍼로 이동시킨다(225). 그 다음, 임시 수신 버퍼는 예컨대, 다음 조기 도달 메시지의 수신을 위해 비워진다(227). 메시지가 수신 버퍼 내에 있는 경우, 수신 노드 소프트웨어는 데이타를 사용할 수 있다(214).
도 6a 및 6b는 본 발명에 따른 또 다른 메시지 처리 프로토콜을 나타낸다. 이 처리 흐름에는 도 4a와 4b 및 5a와 5b의 방법이 결합되어 있다. 처리는 소스 노드가 메시지를 전송하거나(300) 또는 수신 노드의 소프트웨어가 비동기적으로 메시지용 수신 버퍼를 포스트할 준비를 갖춘 때에 다시 시작된다(302).
목적 노드에서의 메시지 수신 후(304), 목적 어댑터의 패킷 수신기는 메시지에 대응하는 포스트된 수신 버퍼를 검사한다(306). 수신 버퍼가 이미 포스트된 경우(308), 패킷 수신기는 DMA 엔진에 데이타를 수신 버퍼로 이동시킬 것을 알리고 소스 노드로의 역전송을 위한 확인 신호를 생성한다(312). 데이타가 수신 버퍼로 이동된 후, 수신 노드의 소프트웨어는 메시지 데이타를 사용할 수 있다(314).
메시지용 수신 버퍼가 포스트되지 않은 경우, 처리는 주 메모리 내에 임시 버퍼 공간이 있는지를 판정한다(313). 유효 공간이 있는 경우, 수신 소프트웨어는 임시 수신 버퍼를 할당하며(315), 패킷 수신기는 DMA 엔진에 메시지 데이타를 임시 수신 버퍼로 이동시킬 것을 알린다(317). 패킷 수신기는 또한 조기 도달 큐에 패킷 헤더 및 임시 버퍼 위치 정보를 부가한다(319). 메시지를 저장한 후, 처리는 수신 소프트웨어가 메시지를 수신하기 위한 준비를 갖추기를 기다린다(302).
임시 버퍼 공간이 없는 경우(313), 패킷 수신기는 어댑터의 제어 저장 메모리 내 조기 도달 큐에 패킷 헤더를 첨부하고(316), 메시지 데이타를 버린다(318). 그 다음, 처리는 수신 소프트웨어가 조기 도달 메시지용 수신 버퍼를 포스트할 준비를 갖추기를 기다린다(302).
수신 소프트웨어가 메시지용 수신 버퍼를 포스트할 준비를 갖춘 후, 소프트웨어는 조기 도달 큐에서 매칭 패킷 헤더를 검사한다. 조기 도달 큐 내에 패킷 헤더가 없는 경우(322), 수신기는 메시지용 수신 버퍼를 포스트하고 소스 노드가 메시지를 전송하기를 기다린다(330).
조기 도달 큐 내에 패킷 헤더가 있는 경우(322), 처리는 조기 도달 메시지가 임시 수신 버퍼에 유지되었는지를 판정한다(323). 그러한 경우, 수신 소프트웨어는 메시지가 이미 수신되었으므로 수신 버퍼의 포스트를 요구하지 않고 메시지 데이타를 임시 수신 버퍼에서 수신 버퍼로 이동시킨다(325). 이 후, 수신 소프트웨어는 임시 수신 버퍼를 비우며(327), 수신 노드 소프트웨어는 수신 버퍼 내에 위치한 메시지 데이타를 사용할 수 있게 된다(314). 이와 달리, 수신된 조기 도달 메시지가 임시 수신 버퍼 내에 유지되지 않은 경우, 수신기는 메시지용 수신 버퍼를 포스트하며(324), 수신 소프트웨어는 송신 노드에 풀 요구를 전송한다(326). 그 다음, 소스 노드는 원시 메시지를 재전송하며(328), 이 메시지는 목적 노드의 어댑터에 도달하여 전술한 처리를 받는다(304).
당업자들은 위의 설명으로부터 본 명세서에는 조기 도달 메시지를 조절하여 복수의 비동기 컴퓨팅 노드를 포함하는 시스템 내 소스 및 목적 노드들간의 메시지 전송 대기 시간을 감소시키기 위한 여러 방법이 제공되어 있다는 것을 알 것이다. 이 프로토콜은 수신기의 메시지 요구를 기다리지 않고 메시지를 전송한다. 메시지를 위한 수신 버퍼가 포스트된 경우, 메시지는 즉시 수신되어, 단지 단일 전송의 대기 시간만이 소모된다. 한편, 메시지가 조기 도달 메시지를 포함하는 경우, 본 명세서에 제공된 방법은 미예측 메시지의 데이타를 제거하거나 통신 어댑터 레벨에서 데이타를 유지하고 이를 수신기의 프로세서에 통지함으로써 성능을 최적화할 수 있도록 통신 시스템에 유연성을 제공한다. 양 옵션은 동일한 기본 메카니즘, 즉 하드웨어 레벨에서의 런팅을 이용하며, 통신 시스템은 현재 상황에서 최고의 성능을 위해 어느 옵션을 사용할 것인지를 소프트웨어 레벨에서 결정할 수 있다. 양 옵션은 수신 버퍼가 미리 포스트된 경우에 양호한 메시지 전송 성능을 보유한다.
본 발명은 예컨대, 컴퓨터 사용 가능 매체를 구비한 제품(예컨대, 하나 이상의 컴퓨터 프로그램물)에 포함될 수 있다. 매체는 본 명세서에서 예컨대, 본 발명의 가능성을 제공하고 용이하게 해 주는 컴퓨터 판독 가능 프로그램 코드 수단을 구체화한다. 이 제품들은 컴퓨터 시스템의 일부로서 포함되거나, 또는 개별적으로 판매될 수 있다.
본 명세서에 도시된 순서도는 예로서 제공된 것이다. 본 명세서에 설명된 순서도, 단계 또는 동작들은 본 발명의 사상을 벗어나지 않고 다양한 변형이 이루어질 수 있다. 예컨대, 어떤 경우에는 단계들은 다른 순서로 수행될 수 있거나, 단계들이 추가, 삭제 또는 수정될 수도 있다. 이러한 모든 변형은 첨부된 청구 범위에 상술된 바와 같은 본 발명의 일부를 구성하는 것으로 고려된다.
본 명세서에는 바람직한 실시예들이 상세히 도시되고 설명되었지만, 본 발명의 사상을 벗어나지 않고 다양한 변형, 부가, 삭제 등이 만들어질 수 있으며, 따라서 이들은 첨부된 청구 범위에 정의된 바와 같은 본 발명의 영역 안에 있는 것으로 고려된다는 것이 당업자에게는 자명할 것이다.

Claims (19)

  1. 양방향 비동기 통신 채널들에 의해 상호 접속되어 각각에서 비동기적으로 실행되는 사용자 처리 프로그램 간에 메시지를 전송하기 위한 복수의 컴퓨팅 노드를 구비한 컴퓨터 시스템에서 소스 컴퓨팅 노드(송신기)에서 수신기 컴퓨팅 노드(수신기)로 전송된, 메시지 헤더와 메시지 데이타를 포함하는 메시지를 처리하기 위한 방법에 있어서, (a) 상기 수신기로부터의 메시지 요구를 기다리지 않고 상기 송신기에서 상기 수신기로 상기 메시지를 전송하는 단계, (b) 상기 수신기에서 메시지용 수신 버퍼가 포스트(post)되었는지를 판정하는 단계, (c) 상기 메시지용 수신 버퍼가 포스트되지 않은 경우에, (i) 상기 수신기 측의 조기 도달 큐에 상기 메시지 헤더를 저장하고 상기 메시지 데이타를 버림(discard)으로써 상기 메시지를 절단(truncate)하는 단계, (ii) 상기 수신기가 메시지용 수신 버퍼를 포스트할 준비가 된 때에 상기 조기 도달 큐에서 상기 메시지 헤더를 검사하는 단계 및 (iii) 상기 메시지 헤더가 상기 조기 도달 큐 안에 있는 경우에 상기 송신기에 상기 메시지를 상기 수신기로 재전송할 것을 지시하는 풀 요구(pull request)를 상기 수신기에서 상기 송신기로 전송하는 단계를 포함하는 메시지 처리 방법.
  2. 제1항에 있어서, 상기 결정 단계 (b)에서 상기 메시지용 수신 버퍼가 포스트된 것으로 판정된 경우에 상기 메시지를 상기 수신 버퍼에 저장하는 단계를 더 포함하는 메시지 처리 방법.
  3. 제2항에 있어서, 상기 메시지를 상기 수신 버퍼에 저장한 후에 상기 수신기에서 상기 송신기로 수신 확인 신호를 전송하는 단계를 더 포함하는 메시지 처리 방법.
  4. 제1항에 있어서, 상기 검사 단계 (c) (ii)에서 상기 메시지 헤더가 상기 조기 도달 큐 내에 없는 것으로 판정된 경우에, 상기 방법은 상기 수신기 측의 상기 수신 버퍼를 상기 수신기에 포스트하고 메시지 요구의 전송 없이 상기 송신기에서 상기 수신기로의 상기 메시지 전송을 기다리는 단계를 더 포함하는 메시지 처리 방법.
  5. 제1항에 있어서, 상기 절단 단계 (c) (i) 전에, 상기 방법은 (d) 상기 메시지용 수신 버퍼가 포스트되지 않은 경우에 메시지용 임시 버퍼 공간이 있는지를 판정하는 단계, (e) 임시 버퍼 공간이 있는 경우에 메시지용 임시 버퍼를 할당하고, 상기 데이타를 상기 임시 버퍼로 이동시키며, 상기 메시지 헤더 및 임시 버퍼 정보를 상기 수신기 측의 조기 도달 큐에 저장하는 단계 및 (f) 메시지용 임시 버퍼 공간이 없는 경우에만 상기 절단 단계 (c) (i)를 수행하는 단계를 더 포함하는 메시지 처리 방법.
  6. 제1항에 있어서, 상기 방법은, 하나 이상의 송신기에서 상기 수신기로 전송된 복수의 메시지-각 메시지는 메시지 헤더 및 데이타를 포함함-를 처리하기 위하여 상기 수신기로부터의 메시지 요구를 기다리지 않고 상기 하나 이상의 송신기에서 상기 수신기로 상기 메시지들을 전송하는 단계, 상기 수신기에서 수신된 각각의 메시지에 대하여 메시지용 수신 버퍼가 포스트되었는지를 판정하고, 메시지용 수신 버퍼가 포스트되지 않은 경우에 상기 메시지 헤더를 상기 수신기 측의 조기 도달 큐에 저장하고 상기 데이타를 버림으로써 상기 메시지를 절단하는 단계, 상기 수신기가 원하는 메시지를 위한 수신 버퍼를 포스트할 준비가 된 때에 상기 원하는 메시지에 매칭되는 메시지 헤더를 상기 조기 도달 큐에서 검사하는 단계 및 상기 매칭 메시지 헤더가 상기 조기 도달 큐 내에 있는 경우에 상기 송신기에 상기 원하는 메시지를 상기 수신기로 재전송할 것을 지시하는 풀 요구를 상기 수신기에서 상기 원하는 메시지의 송신기로 전송하는 단계를 포함하는 방법을 포함하는 메시지 처리 방법.
  7. 제1항에 있어서, 상기 검사 단계 (c) (ii)에서 상기 메시지 헤더가 상기 조기 도달 큐 내에 있는 경우에 메시지 요구를 전송하지 않고 상기 송신기가 상기 메시지를 전송하기를 기다리는 단계를 더 포함하는 메시지 처리 방법.
  8. 양방향 비동기 통신 채널들에 의해 상호 접속되어 각각에서 비동기적으로 실행되는 사용자 처리 프로그램 간에 메시지를 전송하기 위한 복수의 컴퓨팅 노드를 구비한 컴퓨터 시스템에서 소스 컴퓨팅 노드(송신기)에서 수신기 컴퓨팅 노드(수신기)로 메시지 헤더와 메시지 데이타를 포함하는 메시지를 전송하기 위한 방법에 있어서, (a) 상기 수신기로부터의 메시지 요구를 기다리지 않고 상기 송신기에서 상기 수신기로 상기 메시지를 전송하는 단계, (b) 상기 수신기에서 메시지용 수신 버퍼가 포스트되었는지를 판정하고, 상기 메시지용 수신 버퍼가 포스트된 경우에 상기 메시지를 상기 수신 버퍼에 저장하는 단계 및 (c) 상기 메시지용 수신 버퍼가 포스트되지 않은 경우에 상기 메시지 헤더를 상기 수신기 측의 조기 도달 큐에 저장하고 상기 데이타를 버림으로써 상기 메시지를 절단하는 단계를 포함하는 메시지 전송 방법.
  9. 양방향 비동기 통신 채널들에 의해 상호 접속되어 각각에서 비동기적으로 실행되는 사용자 처리 프로그램 간에 메시지를 전송하기 위한 복수의 컴퓨팅 노드를 구비한 컴퓨터 시스템에서 소스 컴퓨팅 노드(송신기)에서 수신기 컴퓨팅 노드(수신기)로 전송된, 메시지 헤더와 메시지 데이타를 포함하는 메시지를 처리하기 위한 방법에 있어서, 상기 수신기가 메시지용 수신 버퍼를 포스트할 준비가 된 때에 대응 메시지 헤더를 조기 도달 큐에서 검사하는 단계-상기 메시지 헤더는 상기 메시지가 조기 도달 큐를 포함하는 경우에 상기 조기 도달 큐 안에 존재함-, 상기 메시지 헤더가 상기 조기 도달 큐 안에 있는 경우에 상기 송신기에 상기 메시지를 상기 수신기로 재전송할 것을 지시하는 풀 요구를 상기 수신기에서 상기 송신기로 전송하는 단계 및 상기 수신 버퍼를 상기 수신기를 포스트하고 상기 수신기로의 메시지 전송을 기다리는 단계를 포함하는 메시지 처리 방법.
  10. 양방향 비동기 통신 채널들에 의해 상호 접속되어 각각에서 비동기적으로 실행되는 사용자 프로그램 간에 메시지를 전송하기 위한 복수의 컴퓨팅 노드를 구비한 컴퓨터 시스템에서 소스 컴퓨팅 노드(송신기)에서 수신기 컴퓨팅 노드(수신기)로 메시지 헤더와 메시지 데이타를 포함하는 메시지를 전송하기 위한 방법에 있어서, (a) 상기 수신기로부터의 메시지 요구를 기다리지 않고 상기 송신기에서 상기 수신기로 상기 메시지를 전송하는 단계, (b) 상기 수신기에서 상기 메시지를 수신한 때에 메시지용 수신 버퍼가 포스트되었는지를 판정하고 상기 메시지용 수신 버퍼가 포스트된 경우에 상기 메시지를 상기 수신 버퍼에 저장하는 단계 및 (c) 상기 메시지용 수신 버퍼가 포스트되지 않은 경우에 상기 메시지 데이타를 유지하기 위하여 상기 수신기에 임시 버퍼 공간을 할당하고 상기 메시지 헤더를 상기 수신기 측의 조기 도달 큐 내에 저장하는 단계를 포함하는 메시지 전송 방법.
  11. 제10항에 있어서, 상기 수신기가 메시지용 수신 버퍼를 포스트할 준비가 된 때에 상기 메시지 헤더를 상기 조기 도달 큐에서 검사하는 단계 및 상기 메시지 헤더가 상기 조기 도달 큐 내에 있는 경우에 상기 메시지 데이타를 상기 임시 수신 버퍼에서 상기 수신 버퍼로 이동시키는 단계를 더 포함하는 메시지 전송 방법.
  12. 제11항에 있어서, 상기 저장 단계 (c)는 상기 메시지 헤더와 상기 임시 수신 버퍼에 대한 위치 정보를 상기 조달 도달 큐에 저장하는 단계를 더 포함하는 메시지 전송 방법.
  13. 제11항에 있어서, 상기 메시지 데이타를 상기 임시 수신 버퍼에서 상기 수신 버퍼로 이동시키는 상기 이동 단계 후에, 상기 방법은 임시 수신 버퍼를 비우는 단계를 포함하는 메시지 전송 방법.
  14. 제11항에 있어서, 상기 메시지를 상기 수신 버퍼에 저장한 후 상기 수신기에서 상기 송신기로 수신 확인 신호를 전송하는 단계를 더 포함하는 메시지 전송 방법.
  15. 제11항에 있어서, 상기 할당 단계 (c) 전에 메시지용 임시 버퍼 공간이 있는지를 판정하고, 임시 공간이 있는 경우에는 상기 할당 단계 (c)를 수행하며, 임시 공간이 없는 경우에는 상기 메시지 헤더를 상기 수신기 측의 조기 도달 큐에 저장하고 상기 메시지 데이타를 버림으로써 상기 메시지를 절단하는 단계를 더 포함하는 메시지 전송 방법.
  16. 제15항에 있어서, 상기 메시지 헤더가 상기 조기 도달 큐 내에 있지만 상기 메시지 데이타가 버려진 경우에 상기 조기 도달 큐의 검사 단계 후에 상기 송신기에 상기 메시지를 상기 수신기로 재전송할 것을 지시하는 풀 요구를 상기 수신기에서 상기 송신기로 전송하는 단계를 더 포함하는 메시지 전송 방법.
  17. 제15항에 있어서, 상기 이동 단계 전에 상기 메시지 헤더가 상기 조기 도달 큐 내에서 발견된 경우에 상기 메시지 데이타가 상기 임시 수신 버퍼 안에 존재하는지를 판정하는 단계가 수행되고, 존재하는 경우에 상기 메시지 데이타를 상기 임시 수신 버퍼에서 상기 수신 버퍼로 이동시키는 상기 이동 단계가 진행되며, 존재하지 않는 경우에는 상기 메시지를 재전송하기 위해 상기 풀 요구를 상기 수신기에서 상기 송신기로 전송하는 단계가 진행되는 메시지 전송 방법.
  18. 제16항에 있어서, 상기 메시지 데이타가 상기 임시 수신 버퍼 내에 없는 경우에 상기 검사 단계 후에 상기 수신 버퍼를 포스트하는 단계를 더 포함하는 메시지 전송 방법.
  19. 제10항에 있어서, 상기 방법은 하나 이상의 송신기에서 상기 수신기로 복수의 메시지를 전송하기 위한 방법-이 방법은 상기 수신기로부터의 메시지 요구를 기다리지 않고 상기 복수의 메시지를 상기 하나 이상의 송신기에서 상기 수신기로 전송하는 단계; 상기 수신기에서 수신된 각각의 메시지에 대해 상기 단계들 (b) 및 (c)를 수행하는 단계; 상기 수신기가 원하는 메시지를 위한 수신 버퍼를 포스트할 준비가 된 때에 상기 원하는 메시지에 매칭되는 메시지 헤더를 상기 조기 도달 큐에서 검사하는 단계; 및 상기 매칭 메시지 헤더가 상기 조기 도달 큐 내에 있는 경우에 대응 메시지 데이타를 상기 임시 수신 버퍼에서 상기 원하는 메시지용 수신 버퍼로 이동시키는 단계를 포함함-을 포함하는 메시지 전송 방법.
KR1019980012937A 1997-05-13 1998-04-11 멀티노드 비동기 데이타 통신 시스템 내의 조기 도달 메시지처리 방법 KR100284790B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/856,619 1997-05-13
US08/856,619 US5931915A (en) 1997-05-13 1997-05-13 Method for processing early arrival messages within a multinode asynchronous data communications system

Publications (2)

Publication Number Publication Date
KR19980086583A true KR19980086583A (ko) 1998-12-05
KR100284790B1 KR100284790B1 (ko) 2001-03-15

Family

ID=25324090

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980012937A KR100284790B1 (ko) 1997-05-13 1998-04-11 멀티노드 비동기 데이타 통신 시스템 내의 조기 도달 메시지처리 방법

Country Status (4)

Country Link
US (4) US5931915A (ko)
JP (1) JP3606541B2 (ko)
KR (1) KR100284790B1 (ko)
TW (1) TW363156B (ko)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334219B1 (en) 1994-09-26 2001-12-25 Adc Telecommunications Inc. Channel selection for a hybrid fiber coax network
US5931915A (en) 1997-05-13 1999-08-03 International Business Machines Corporation Method for processing early arrival messages within a multinode asynchronous data communications system
US6338090B1 (en) * 1998-03-27 2002-01-08 International Business Machines Corporation Method and apparatus for selectively using input/output buffers as a retransmit vehicle in an information handling system
US6442600B1 (en) * 1999-01-15 2002-08-27 Micron Technology, Inc. Method and system for centralized storage and management of electronic messages
US6631115B1 (en) * 1999-01-28 2003-10-07 International Business Machines Corporation Method, apparatus and program product for balancing communication loads over a network
US6661773B1 (en) * 1999-06-07 2003-12-09 Intel Corporation Method for detection of stale cells following route changes in a data communication
US6543005B1 (en) * 1999-10-27 2003-04-01 Oracle Corporation Transmitting data reliably and efficiently
US7539134B1 (en) * 1999-11-16 2009-05-26 Broadcom Corporation High speed flow control methodology
US6826153B1 (en) * 2000-09-13 2004-11-30 Jeffrey Kroon System and method of increasing the message throughput in a radio network
US6816458B1 (en) * 2000-09-13 2004-11-09 Harris Corporation System and method prioritizing message packets for transmission
US6826152B1 (en) 2000-09-13 2004-11-30 Harris Corporation System and method of conserving bandwidth in the transmission of message packets
US7068603B2 (en) * 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US20030023775A1 (en) * 2001-07-13 2003-01-30 International Business Machines Corporation Efficient notification of multiple message completions in message passing multi-node data processing systems
US20030014516A1 (en) * 2001-07-13 2003-01-16 International Business Machines Corporation Recovery support for reliable messaging
FI20012173A (fi) * 2001-11-09 2003-05-10 Nokia Corp Synkronisoiva paikallisverkko
US7139240B2 (en) * 2002-04-29 2006-11-21 Brocade Communications Systems, Inc. Frame-pull flow control in a fibre channel network
EP1408417A1 (en) * 2002-08-01 2004-04-14 Fujitsu Siemens Computers, LLC Efficient messaging in a parallel processing system
US7457845B2 (en) * 2002-08-23 2008-11-25 Broadcom Corporation Method and system for TCP/IP using generic buffers for non-posting TCP applications
US7773620B2 (en) * 2003-12-24 2010-08-10 Intel Corporation Method, system, and program for overrun identification
WO2005101719A1 (en) * 2004-04-13 2005-10-27 Nokia Corporation Apparatus, and associated method, for providing a medium access control layer hybrid automatic repeat request scheme for a carrier sense multiple access communication scheme
US7640357B2 (en) * 2004-04-30 2009-12-29 Sap Ag Transmitting enterprise messages based on buffer sizes
US20060227799A1 (en) * 2005-04-08 2006-10-12 Lee Man-Ho L Systems and methods for dynamically allocating memory for RDMA data transfers
US8170041B1 (en) * 2005-09-14 2012-05-01 Sandia Corporation Message passing with parallel queue traversal
JP4662273B2 (ja) * 2006-03-24 2011-03-30 富士通株式会社 通信装置、方法及びプログラム
US20080034054A1 (en) * 2006-08-07 2008-02-07 Curtis Stehley System and method for reservation flow control
JP5045472B2 (ja) * 2008-02-07 2012-10-10 富士通株式会社 メール管理装置、メール管理方法およびメール管理プログラム
US8270299B2 (en) * 2008-11-10 2012-09-18 International Business Machines Corporation Communicator-based token/buffer management for eager protocol support in collective communication operations
CN101634956B (zh) * 2009-08-25 2012-08-08 华为技术有限公司 多核处理器消息调度方法及调度器
KR20110064153A (ko) * 2009-12-07 2011-06-15 삼성전자주식회사 금속 유기 전구체, 이의 제조방법, 및 이를 이용한 전도성 금속막 또는 패턴 형성방법
US8909716B2 (en) * 2010-09-28 2014-12-09 International Business Machines Corporation Administering truncated receive functions in a parallel messaging interface
US9569398B2 (en) 2010-09-28 2017-02-14 International Business Machines Corporation Routing data communications packets in a parallel computer
US9052974B2 (en) 2010-11-05 2015-06-09 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US9069631B2 (en) 2010-11-05 2015-06-30 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US8527672B2 (en) 2010-11-05 2013-09-03 International Business Machines Corporation Fencing direct memory access data transfers in a parallel active messaging interface of a parallel computer
US9075759B2 (en) 2010-11-05 2015-07-07 International Business Machines Corporation Fencing network direct memory access data transfers in a parallel active messaging interface of a parallel computer
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8490112B2 (en) 2010-12-03 2013-07-16 International Business Machines Corporation Data communications for a collective operation in a parallel active messaging interface of a parallel computer
US8484658B2 (en) 2010-12-03 2013-07-09 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8650262B2 (en) 2010-12-09 2014-02-11 International Business Machines Corporation Endpoint-based parallel data processing in a parallel active messaging interface of a parallel computer
US8572629B2 (en) 2010-12-09 2013-10-29 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8775531B2 (en) 2011-01-06 2014-07-08 International Business Machines Corporation Completion processing for data communications instructions
US8732229B2 (en) 2011-01-06 2014-05-20 International Business Machines Corporation Completion processing for data communications instructions
US8892850B2 (en) 2011-01-17 2014-11-18 International Business Machines Corporation Endpoint-based parallel data processing with non-blocking collective instructions in a parallel active messaging interface of a parallel computer
US8825983B2 (en) 2011-02-15 2014-09-02 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8528004B2 (en) 2011-11-07 2013-09-03 International Business Machines Corporation Internode data communications in a parallel computer
US8732725B2 (en) 2011-11-09 2014-05-20 International Business Machines Corporation Managing internode data communications for an uninitialized process in a parallel computer
US20140006555A1 (en) * 2012-06-28 2014-01-02 Arynga Inc. Remote transfer of electronic images to a vehicle
US10116463B2 (en) * 2014-06-13 2018-10-30 Mitsubishi Electric Corporation Bridging apparatus
GB2538754B (en) 2015-05-27 2018-08-29 Displaylink Uk Ltd Single-chip multi-processor communication
JP6897443B2 (ja) * 2017-09-13 2021-06-30 ブラザー工業株式会社 制御システム、副制御装置及び制御方法

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3906445A (en) * 1974-10-21 1975-09-16 Motorola Inc Alphanumeric terminal for a communications system
US4672543A (en) * 1982-08-31 1987-06-09 Sharp Kabushiki Kaisha Data transmission control apparatus in local network systems
US4494194A (en) * 1982-09-30 1985-01-15 Burroughs Corporation Line support processor for data transfer system
US4630259A (en) * 1984-11-14 1986-12-16 At&T Bell Laboratories Lockup detection and recovery in a packet switching network
US5047917A (en) * 1985-07-12 1991-09-10 The California Institute Of Technology Apparatus for intrasystem communications within a binary n-cube including buffer lock bit
GB2180127B (en) 1985-09-04 1989-08-23 Philips Electronic Associated Method of data communication
US4799215A (en) 1985-10-07 1989-01-17 Nec Corporation High-speed packet-switched communications system with end-to-end flow control and retransmission
US4748617A (en) * 1985-12-20 1988-05-31 Network Systems Corporation Very high-speed digital data bus
US4745599A (en) 1987-01-05 1988-05-17 General Electric Company Random access communication system with contention scheduling of subpacketized data transmissions and scheduled retransmission of unsuccessful subpackets
DE3786080D1 (de) * 1987-08-20 1993-07-08 Ibm Speicherzugriffssteuerungsvorrichtung in einem gemischtdatenformatsystem.
US4887076A (en) * 1987-10-16 1989-12-12 Digital Equipment Corporation Computer interconnect coupler for clusters of data processing devices
US5257374A (en) * 1987-11-18 1993-10-26 International Business Machines Corporation Bus flow control mechanism
US4908828A (en) 1987-12-29 1990-03-13 Indesys, Inc. Method for error free message reception
US5077830A (en) 1988-02-17 1991-12-31 Indesys, Inc. Method and apparatus to selectively address recipients and recover missing messages on a broadcast distribution network
US4910733A (en) 1988-03-15 1990-03-20 Arun Sommani Rendezvous network protocol with reduced bandwidth and processor time
JPH024072A (ja) 1988-06-20 1990-01-09 Fujitsu Ltd パケット交換方式
US5253342A (en) 1989-01-18 1993-10-12 International Business Machines Corporation Intermachine communication services
GB8916489D0 (en) 1989-07-19 1989-09-06 British Telecomm Data communication method and system
US5701427A (en) 1989-09-19 1997-12-23 Digital Equipment Corp. Information transfer arrangement for distributed computer system
US5208914A (en) * 1989-12-29 1993-05-04 Superconductor Systems Limited Partnership Method and apparatus for non-sequential resource access
US5130986A (en) * 1990-04-27 1992-07-14 At&T Bell Laboratories High speed transport protocol with two windows
CA2043505A1 (en) * 1990-06-06 1991-12-07 Steven K. Heller Massively parallel processor including queue-based message delivery system
US5247694A (en) 1990-06-14 1993-09-21 Thinking Machines Corporation System and method for generating communications arrangements for routing data in a massively parallel processing system
AU8636391A (en) 1990-10-10 1992-05-20 British Telecommunications Public Limited Company Network traffic management
US5404353A (en) 1991-06-28 1995-04-04 Digital Equipment Corp. Dynamic defer technique for traffic congestion control in a communication network bridge device
US5339313A (en) 1991-06-28 1994-08-16 Digital Equipment Corporation Method and apparatus for traffic congestion control in a communication network bridge device
US5371897A (en) * 1991-08-27 1994-12-06 International Business Machines Corporation Method for requesting identification of a neighbor node in a data processing I/O system
DE4131133B4 (de) * 1991-09-19 2005-09-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Austausch von Daten in Datenverarbeitungsanlagen
US5450546A (en) * 1992-01-31 1995-09-12 Adaptec, Inc. Intelligent hardware for automatically controlling buffer memory storage space in a disk drive
US5444860A (en) * 1992-02-14 1995-08-22 Unisys Corporation Translator system for message transfers between digital units operating on different message protocols and different clock rates
FR2691559B1 (fr) * 1992-05-25 1997-01-03 Cegelec Systeme logiciel a objets repliques exploitant une messagerie dynamique, notamment pour installation de controle/commande a architecture redondante.
US5289470A (en) * 1992-12-14 1994-02-22 International Business Machines Corp. Flexible scheme for buffer space allocation in networking devices
CA2115730C (en) * 1993-02-15 1999-05-04 Hiroshi Hashimoto Data transmission method and system therefor
US5612950A (en) * 1993-05-27 1997-03-18 Rockwell International Corporation Managing communication on an unstable error-prone channel
JP3211833B2 (ja) * 1993-07-21 2001-09-25 富士通株式会社 Atm交換機
US5463382A (en) 1994-04-22 1995-10-31 Motorola, Inc. Method and apparatus for controlling message transmissions in an acknowledge-back selective call communication system
JP2699872B2 (ja) 1994-06-01 1998-01-19 日本電気株式会社 データ受信装置およびバッファ管理方法
US5487072A (en) 1994-06-30 1996-01-23 Bell Communications Research Inc. Error monitoring algorithm for broadband signaling
EP0772823A4 (en) 1994-07-22 1997-10-29 Erik P Debenedictis Method and arrangement for controlling interconnected computers without programming
US5570367A (en) 1994-07-29 1996-10-29 Lucent Technologies Inc. Asymmetric protocol for wireless communications
US5422893A (en) 1994-08-04 1995-06-06 International Busines Machines Corporation Maintaining information from a damaged frame by the receiver in a communication link
US5627970A (en) * 1994-08-08 1997-05-06 Lucent Technologies Inc. Methods and apparatus for achieving and maintaining optimum transmission rates and preventing data loss in a processing system nework
US5553083B1 (en) * 1995-01-19 2000-05-16 Starburst Comm Corp Method for quickly and reliably transmitting frames of data over communications links
US5630059A (en) 1995-02-06 1997-05-13 International Business Machines Corporation Expedited message transfer in a multi-nodal data processing system
US5936939A (en) * 1995-05-22 1999-08-10 Fore Systems, Inc. Digital network including early packet discard mechanism with adjustable threshold
US5699500A (en) * 1995-06-01 1997-12-16 Ncr Corporation Reliable datagram service provider for fast messaging in a clustered environment
US5859837A (en) 1995-06-07 1999-01-12 Advanced Micro Devices Inc. Flow control method and apparatus for ethernet packet switched hub
US5732082A (en) * 1995-08-11 1998-03-24 International Business Machines Corp. System and method for multi-frame received queuing with sorting in an asynchronous transfer mode (ATM) system
US5664091A (en) 1995-08-31 1997-09-02 Ncr Corporation Method and system for a voiding unnecessary retransmissions using a selective rejection data link protocol
US5764641A (en) * 1995-09-08 1998-06-09 Cisco Systems, Inc. Early and integrated tail packet discard system
JP4160642B2 (ja) * 1995-09-08 2008-10-01 株式会社日立製作所 ネットワークデータ転送方法
US5721830A (en) * 1995-09-12 1998-02-24 Pc-Tel, Inc. Host signal processing communication system that compensates for missed execution of signal maintenance procedures
US5881247A (en) * 1995-11-30 1999-03-09 Allen-Bradley Company Llc System having a plurality of frame bytes capable of identifying addressed recipients and assert a busy signal onto the backplane bus to forthrightly abort the message transfer
GB2311443A (en) * 1996-03-23 1997-09-24 Ibm Data message transfer in batches with retransmission
US5768527A (en) * 1996-04-23 1998-06-16 Motorola, Inc. Device, system and method of real-time multimedia streaming
US5694473A (en) 1996-05-17 1997-12-02 Motorola, Inc. Decryption of retransmitted data in an encrypted communication system
US5809148A (en) 1996-05-17 1998-09-15 Motorola, Inc. Decryption of retransmitted data in an encrypted communication system
US5801639A (en) 1996-07-03 1998-09-01 Motorola, Inc. Method for optimizing transmission of messages in a communication system
US5969674A (en) 1997-02-21 1999-10-19 Von Der Embse; Urban A. Method and system for determining a position of a target vehicle utilizing two-way ranging
US5931915A (en) 1997-05-13 1999-08-03 International Business Machines Corporation Method for processing early arrival messages within a multinode asynchronous data communications system
US6035335A (en) * 1997-08-26 2000-03-07 International Business Machines Corporation Optimistic, eager rendezvous transmission system and combined rendezvous system for message processing, and related data structures

Also Published As

Publication number Publication date
US6338091B1 (en) 2002-01-08
KR100284790B1 (ko) 2001-03-15
JPH114256A (ja) 1999-01-06
US6337852B1 (en) 2002-01-08
TW363156B (en) 1999-07-01
US5931915A (en) 1999-08-03
US6480897B1 (en) 2002-11-12
JP3606541B2 (ja) 2005-01-05

Similar Documents

Publication Publication Date Title
KR100284790B1 (ko) 멀티노드 비동기 데이타 통신 시스템 내의 조기 도달 메시지처리 방법
US5577211A (en) System and method using chained structure queues for ordering of message delivery between connected nodes wherein unsuccessful message portion is skipped and retried
JP4886685B2 (ja) ネットワーク・プロトコル処理のオフロードにおいてメモリ管理をサポートする装置および方法
US6393023B1 (en) System and method for acknowledging receipt of messages within a packet based communication network
US5050166A (en) Transfer of messages in a multiplexed system
US5604866A (en) Flow control system having a counter in transmitter for decrementing and incrementing based upon transmitting and received message size respectively for indicating free space in receiver
US6542513B1 (en) Optimistic, eager rendezvous transmission mode and combined rendezvous modes for message processing systems
JP3165022B2 (ja) コンピュータ・システム及びメッセージ転送方法
KR0169248B1 (ko) 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법
EP1782602B1 (en) Apparatus and method for supporting connection establishment in an offload of network protocol processing
US20030051076A1 (en) Methods and system for pre-fetching descriptors
US20030200363A1 (en) Adaptive messaging
KR100284791B1 (ko) 멀티노드 비동기 데이타 통신 시스템 내의 조기 도달 메시지처리 시스템
US7788437B2 (en) Computer system with network interface retransmit
WO2001067713A1 (en) A packet format independent computer network controller
US5613067A (en) Method and apparatus for assuring that multiple messages in a multi-node network are assured fair access to an outgoing data stream
US6035335A (en) Optimistic, eager rendezvous transmission system and combined rendezvous system for message processing, and related data structures
CN1329856C (zh) 多节点体系结构中防止饥饿的方法和装置
JP3863456B2 (ja) ネットワークを介してデータを送受信する方法及びネットワークを介してデータパケットを転送するシステム
EP1139228A2 (en) An intelligent bus interconnect unit
JP2000022728A (ja) ネットワーク装置
JPH10143486A (ja) 並列計算機におけるデータ送受信方法
KR100283104B1 (ko) 통신장비의 선택적 호스트 인터럽트 방법
CN117331689A (zh) 数据处理方法、网卡及计算设备
JPS594359A (ja) 電子メ−ル同報処理方式

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: 20041012

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee