KR19980079676A - 메시지 도착 통지를 위한 소스 및 수신지 개시 인터럽트 시스템 - Google Patents
메시지 도착 통지를 위한 소스 및 수신지 개시 인터럽트 시스템 Download PDFInfo
- Publication number
- KR19980079676A KR19980079676A KR1019980003468A KR19980003468A KR19980079676A KR 19980079676 A KR19980079676 A KR 19980079676A KR 1019980003468 A KR1019980003468 A KR 1019980003468A KR 19980003468 A KR19980003468 A KR 19980003468A KR 19980079676 A KR19980079676 A KR 19980079676A
- Authority
- KR
- South Korea
- Prior art keywords
- message
- destination node
- interrupt
- destination
- field
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
본 발명은 소스 노드에서 수신지 노드로 메시지가 전달되는 메시지 처리 시스템을 위해 마련되는 방법, 시스템 및 관련 프로그램 코드와 데이터 구조에 관한 것이다. 수신지 노드에서 메시지의 도착 통지는 프로그램가능한 소스 개시 인터럽트 또는 수신지 개시 인터럽트에 의해 실행될 수 있다. 소스 개시 인터럽트는 소스 노드에서 수신지 노드로 송신된 메시지 패킷에 매입되어 있는 설정된 필드로서 구현되고, 메시지 도착시 수신지 노드에서 필요한 인터럽트를 트리거한다. 수신지 개시 인터럽트는 소스 노드로부터의 입력 메시지에 대하여 수신지 노드에서 할당되는 예상 버퍼에서 미리 설정된 필드로서 구현된다. 수신지 노드에 메시지 도착을 통지하기 위해 시스템이 인터럽트 또는 다른 방법을 선택적으로 호출하는 것을 허용하는 표준 입력 메시지 큐 폴링 뿐만 아니라 인터럽트 인에이블링 및 디스에이블링 기능도 제공된다.
Description
본 발명은 메시지 처리 시스템(message processing systems)에 관한 것이다. 구체적으로, 본 발명은 프로그램가능한 소스 및/또는 수신지 개시 인터럽트(programmable source and/or destination initiated interrupts)를 사용하여 메시지의 도착을 메시지 수신지에게 통지하는 것에 관한 것이다.
메시지 처리 시스템, 예를 들면, 도 1에 도시한 멀티프로세서 데이터 처리 시스템(10)은 프로세서(121...12N)중의 각 프로세서들 사이에 믿을 수 있는 메시지 통신 경로를 요구한다. 도 1의 예시적인 시스템(10)은 프로세서(12)에 공통 결합된 예시적인 통신 매체 또는 교환망(switch network)(20)을 채용한다. 프로세서는 각 통신 어댑터(141...14N)에게 각각의 접속(connection)(161...16N)을 거쳐 각 프로세서(12)와 매체(20) 사이의 통신을 제어할 것을 요구할 수 있다. 따라서, 예를 들면, 시스템(10)의 프로세서(12)에서 실행하는 소프트웨어 애플리케이션(들) 사이의 통신은 매체(20)를 거쳐 마련될 수 있다.
각 프로세서가 상이한 비동기 애플리케이션 소프트웨어 파티션을 지원할 수 있으므로, 비동기 메시지는 프로세서 사이 통신의 유용한 형태로 된다. 수신지 프로세서(예를 들면, 프로세서(12N))에서, 입력 비동기 메시지는 통상 메시지 수신 큐(message receive queue)에 버퍼(buffer)된다. 그후, 프로세서(12N)에서 실행하는 애플리케이션 프로그램에게는 때때로 어떤 메시지가 도착하였는가를 판정하기 위해 큐를 폴링(polling) 또는 감시하는 것이 요구된다. 그러나, 이들 수신된 메시지의 상태를 얻는 것은 특정 메시지 또는 어떤 메시지가 도착하는 것을 기다릴 때 불필요한 폴링으로 인해 부가적인 오버헤드를 일으킬 수 있다. 일부 애플리케이션에서는 이 부가적인 오버헤드가 시스템 성능에 크게 영향을 주지 않을 수 있으므로, 허용될 수 있다. 그러나, 다른 애플리케이션에는 이 부가적인 오버헤드가 성능 및 폴링 또는 감시에 심하게 영향을 줄 수 있어, 메시지 수신 큐가 받아들이기 어려운 어프로치(approach)로 된다.
수신지 프로세서에 의한 메시지 큐의 폴링 또는 감시에 관하여 앞서 지적한 사항에 부가하여, 소스 프로세서(예를 들면, 프로세서(121))가 어떤 종류 또는 우선 순위를 갖는 메시지의 도착을 메시지 수신지 프로세서에게 명백히 통지하는 것을 선호하는 상황이 있을 수 있다.
따라서, 필요한 것은 메시지의 도착시 수신지에게 통지하기 위한 추가 옵션을 시스템내 각 프로세서 및/또는 그것에서 실행하는 애플리케이션 소프트웨어에 제공하는 구현 하드웨어, 소프트웨어 및 데이터 구조를 구비하는 플렉시블한 방법 및 시스템이다. 이 방법 및 시스템은 어떠한 특정 통지 방식은 부과하지 않지만, 그 보다는 특정 애플리케이션의 요구를 감안하여 가장 최적의 옵션이 선택될 수 있도록 부가적인 프로그램가능한 도착 통지 옵션을 제공해야 한다.
도 1은 통신 매체에 의해 결합된 다수의 프로세서를 갖는 예시적인 메시지 처리 시스템을 도시한 도면.
도 2는 본 발명에 따른 메시지 소스 및 메시지 수신지 노드와 메시지 도착시 소스 및 수신지 개시 인터럽트를 도시한 혼성 하드웨어/소프트웨어도.
도 3은 도 1 또는 도 2에 도시한 통신 어댑터 중 하나의 예시적인 하드웨어 서브시스템을 도시한 도면.
도 4는 인터럽트 제어 필드를 포함하는 헤더부 및 데이터부를 갖고 도 3의 예시적인 통신 어댑터의 메모리에 존재하는 예시적인 메시지 패킷 데이터 구조를 도시한 도면.
도 5는 본 발명에 따른 입력 메시지, 메시지 수신 큐, 메시지 처리 커맨드, 소스 및 수신지 개시 인터럽트 사이의 관계를 설명하는 메시지 수신지 노드에 대한 커맨드 및 데이터 흐름도.
도 6은 프로그램가능한 인터럽트 마스크를 사용하여 본 발명의 소스 및 수신지 개시 인터럽트를 인에이블, 디스에이블하는 예시적인 회로를 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
10 : 메시지 처리 시스템 12 : 프로세서
14 : 통신 어댑터 16 : 접속
20 : 교환망 22 : 기억 매체
18 : 메시지 소스 노드 40 : 메시지
50 : 소스 개시 인터럽트 60 : 수신지 개시 인터럽트
70 : 어댑터 메모리 80 : 메시지 패킷
플렉시블한 메시지 도착 통지 기술은 개별 메시지의 도착을 수신지 노드에 통지하기 위한 방법, 시스템, 프로그램 코드를 포함하는 제조물 및 데이터 구조에 관한 본 발명에 의해 제공된다. 소스 및 수신지 개시 인터럽트는 본 발명에 의해 프로그램가능한 메시지 마다 기준(programmable, per-message basis)으로 제공된다.
예를 들면, 본 발명의 두가지 종류의 인터럽트 개시가 각각 적용되는 제1 및 제2 임의 순서 메시지를 고려한다. 제1 메시지에 대하여, 본 발명은 제1 메시지가 송신된 소스 노드에서 제1 메시지에 소스 개시 인터럽트(source initiated interrupt : SII) 필드를 설정하고, 수신지 노드에서 제1 메시지의 도착시 설정된 SII 필드에 따라 수신지 노드에서 인터럽트를 발생하는 것을 포함한다. 제2 메시지에 대하여, 본 발명은 수신지 노드에서 수신지 개시 인터럽트(destination initiated interrupt : DII)를 미리 설정하고, 수신지 노드에서 제2 메시지의 도착시 미리 설정된 DII 필드에 따라 수신지 노드에서 인터럽트를 발생하는 것을 포함한다.
소스 및 수신지 노드가 비동기로 동작할 수 있으므로, 어느 주어진 메시지, 예를 들면 제1 또는 제2 메시지에 대하여, 양 노드가 인터럽트 필드를 (장황하게(redundantly)) 설정하여 인터럽트를 트리거하는 것이 전체적으로 가능하다.
다른 메시지에 대하여, 본 발명은 어떤 다른 메시지가 수신지 노드에 도착하였는가를 판정하기 위해 수신지 노드에서 메시지 수신 큐를 폴링하는 것을 구비할 수 있다. 폴링으로부터 적어도 하나의 메시지가 도착한 것으로 판정될 때, 메시지는 수신지 노드에서 처리된다. 인터럽트 발생은 프로그램가능한 인터럽트 인에이블링 마스크(programmable interrupt enabling mask)를 사용하여 인에이블 또는 디스에이블될 수 있다.
SII 필드를 설정하는 것은 소스 노드에서 수신지 노드로 메시지를 실제 송신하는 것에 포함될 수 있다. 송신하는 것은 소스 노드에 있어서 포맷된(formatted) 송신 메시지 디스크립터(send message descriptor : SMD)를 작성하는 것을 포함할 수 있고, SMD는 SII 필드를 포함하여 메시지에 대한 송신 제어 정보를 포함한다. 수신지 노드에 있어서 DII 필드를 미리 설정하는 것은 메시지가 도착해야할 수신지 노드에서 버퍼를 할당하는 것에 포함될 수 있다. 버퍼를 할당하는 것은 수신지 노드에서 포맷된 수신 메시지 디스크립터(receive message descriptor : RMD)를 작성하는 것을 포함할 수 있고, RMD는 DII 필드를 포함하여 메시지에 대한 수신 제어 정보를 포함한다.
메시지, 송신 메시지 디스크립터 및 수신 메시지 디스크립터는 본 발명의 프로그램가능한 소스와 수신지 개시 인터럽트를 지원하기 위해, SII 필드 및 DII 필드 또는 이들 양자에 대한 하나의 공통 필드를 포함하는 포맷된 헤더 데이터 구조를 각각 구비한다.
소스 및 수신지 노드내의 포맷된 메시지 디스크립터, 메시지 패킷 및 커맨드는 본 발명의 데이터 구조부를 포함하고, 메시지 마다 시스템 와이드 기준으로 소스 및 수신지 개시 인터럽트의 구현을 용이하게 한다.
따라서, 본 발명은 메시지의 도착시 수신지 노드에서 예를 들면 하드웨어 또는 소프트웨어 애플리케이션의 통지를 실행하기 위해 부가적인 프로그램가능한 옵션을 제공한다. 본 발명의 소스 및 수신지 개시 인터럽트는 특정 애플리케이션의 성능 요구에 부합하도록 메시지 마다 기준으로 (폴링 등의 다른 표준 어프로치와 함께) 선택적으로 호출될 수 있다.
상술한 바와 같이, 도 1은 다수의 프로세서(121...12N)를 갖는 멀티프로세서 데이터 처리 시스템(10)의 형태인 예시적인 메시지 처리 시스템을 도시하고 있다. 각 프로세서는 그의 각 접속(16)이 매체 또는 교환망(20)에 공통 접속되도록 동작하는 각각의 통신 어댑터(14)를 가질 수 있다. 기억 매체(22)는 애플리케이션 소프트웨어 및 모든 관련 데이터 구조, 프로토콜 등을 유지 및/또는 지원하기 위해 시스템내에 마련될 수 있다.
도 2는 도 1의 시스템의 혼성 하드웨어/소프트웨어도로서, 메시지 소스 노드(181) 및 메시지 수신지 노드(18N)를 도시하고 있다. 용어 노드는 메시지가 통과되는 하드웨어 및/또는 소프트웨어의 임의의 확인가능한 조합을 의미하기 위해 본 명세서에서 널리 사용된다. 도 2에서, 각각의 각 노드의 애플리케이션 소프트웨어 파티션은 관련되거나 또는 관련되지 않을 수 있고, 즉 공통 애플리케이션의 일부로 되거나 되지 않을 수 있다. 각 노드에서 더 높은 레벨의 노드 하드웨어(예를 들면, 도 1의 (12))도 현재 추정되지만, 도시하지 않는다. 더 낮은 레벨의 통신 시스템 소프트웨어(communication system software : CSS), 디바이스 드라이버 및 어댑터 하드웨어(14)도 각 노드에 도시되어 있다. 이하, 도시 간략화를 위해, 애플리케이션은 메시지(40)가 소스 노드(181)에서 교환망(20)을 거쳐 수신지 노드(18N)로 송신되는 것을 요구한다고 가정한다. (그러나, 실제 시스템내의 모든 노드는 본 명세서에서 설명되는 메시지 송신 및 수신 기능을 모두 포함할 것으로 기대된다.)
본 발명에 따르면, 소스 개시 인터럽트(SII)(50) 및 수신지 개시 인터럽트(들)(DII)(60)는 수신지 노드(18N)에 메시지(40)가 도착할 때, 수신지 노드 하드웨어, 고 레벨 애플리케이션 소프트웨어 및/또는 통신 시스템 소프트웨어(CSS)에게 즉시 통지되도록 마련된다. 이들 종류의 인터럽트 중 하나 또는 양자를 마련하는 것에 의해 메시지가 도착할 때 즉각적인 수신지 노드 통지가 허용된다. 소스 노드 및 수신지 노드 모두는 관련 메시지의 도착시 인터럽트가 요구되는 시기를 결정할 수 있고 수신지 노드의 인터럽트를 실행하기 위해 필요한 처리를 개시할 수 있다.
다음에 상세히 설명하는 바와 같이, 소스 개시 인터럽트는 메시지(40)의 헤더 데이터 구조에 제어 필드를 설정하는 것에 의해 소스 노드(181)에서 설정된다. 따라서, 메시지(40) 자신은 수신지 노드(18N)에 메시지가 도착할 때 수신지 노드 하드웨어 및/또는 소프트웨어에게 인터럽트를 거쳐 통지될 수 있도록, 설정된 소스 개시 인터럽트 필드를 갖는다. 또한, 수신지 노드 자신은 입력 메시지를 수신하기 위해 수신지 노드에서 버퍼가 할당될 때 동일 또는 유사 필드를 미리 설정하는 것에 의해 마찬가지 인터럽트를 독립적으로 개시할 수 있다.
수신지 노드는 애플리케이션(들)에 의해 인터럽트를 개시하는 것이 좋지 않으면, 입력 메시지 큐를 폴링하는 그의 기능을 유지할 수 있다. 그러나, 특정 메시지 또는 메시지군에 대한 인터럽트를 개시하는가 또는 그 시기에 관하여 애플리케이션(들)에게 융통성이 마련된다. 수신지 노드도 다른 종류의 인터럽트를 인에이블 또는 디스에이블할뿐만 아니라 소스 또는 수신지 개시 인터럽트의 전체적인 처리를 인에이블 또는 디스에이블하는 프로그램가능한 인터럽트 마스크를 포함할 수 있다.
다음에 설명하는 바와 같이, 본 발명의 시스템, 소프트웨어, 커맨드, 메시지 패킷 및 데이터 구조는 모두 메시지 마다 시스템 와이드 기준으로 본 발명의 프로그램가능한 소스 및 수신지 인터럽트를 지원하기 위해 필요한 기능을 포함한다.
도 3 내지 도 6 및 다음의 설명은 본 발명의 소스 및 수신지 개시 인터럽트를 용이하게 하는 예시적인 통신 어댑터(14)의 하드웨어 및 소프트웨어부를 설명한다. 이것은 단지 예시적인 구현이고, 당업자는 다른 하드웨어 및 소프트웨어 기술도 본 발명을 구현하기 위해 이용가능하다는 것을 알 것이다.
도 3을 참조하면, 도 2의 소스 노드(181) 및 수신지 노드(18N)의 예시적인 통신 어댑터(14)는 어댑터 메모리(70), 기능 프로세서(예를 들면 도 1의 프로세서(12))와 인터페이스하는 프로세서 인터페이스 컨트롤러(72), 어댑터 플로우 제어 로직(adapter flow control logic)(74) 및 노드를 결합하는 통신 매체(예를 들면, 교환망(20))과 인터페이스하는 스위치 인터페이스 로직(76)을 포함한다. 어댑터는 일반적으로 필요에 따라 어떤 주어진 통신을 패킷으로 분할하고, 각 패킷을 교환망을 거쳐 루트(route)하기 위해 필요한 헤더 정보를 어셈블(assemble)하고 나서, 수신지 노드에서 그 패킷을 리어셈블(reassemble)하기 위해 요구되는 기능을 실행한다. 또한, 어댑터는 다른 필요한 기능뿐만 아니라 메시지 전송중 소프트(soft) 또는 하드 에러(hard error)로부터의 복구를 용이하게 하기 위해 에러 검출을 실행하고 트래킹 정보(tracking information)를 유지할 수 있다. 용어 메시지는 소스와 수신지 노드 사이의 어떤 종류의 통신을 의미하기 위해 본 명세서에서 널리 사용되는 것으로, 큰 메시지에 관해서 단지 데이터 부분만을 포함하거나 또는 데이터는 없지만 시스템에 유용한 것인 헤더만을 포함할 수 있다.
도 2를 참조하여 설명한 바와 같이, CSS라고 하는 소프트웨어의 계층은 애플리케이션 소프트웨어 사이에 있고, 어댑터 하드웨어에 대하여 필요한 애플리케이션 소프트웨어 인터페이스를 제공한다. CSS는 어댑터에서 하드웨어 서브시스템을 동작시키기 위해 필요한 저레벨 디바이스 드라이버를 포함하거나 포함하지 않을 수 있다. 이것은 메시지 도착시 본 발명의 소스 또는 수신지 개시 인터럽트에 의해 인터럽트되는 CSS인 것이 바람직하고, 인터럽트는 CSS 수퍼바이저 처리 공간(supervisor processing space)에서 취급된다. 그러나, 도 2에 도시한 바와 같이, CSS는 또 애플리케이션 소프트웨어를 인터럽트할 수 있고 또는 애플리케이션 소프트웨어는 (사용자 레벨 인터럽트가 지원된다고 가정하면) 메시지 도착시 직접 인터럽트될 수 있다. 예를 들면, 임의의 관련 하드웨어 인터럽트 라인도 필요한 인터럽트를 실행하기 위해 채용될 수 있다.
본 발명에 따르면, 송신 메시지 디스크립터는 출력 메시지에 대하여 소스 노드(181)에서 초기화되어 유지된다. 송신 메시지 디스크립터(SMD)는 전송중인 메시지의 상태를 유지하기 위해 사용된다. 송신된 각 메시지에 대하여, CSS는 소스 노드에 있어서 어댑터 메모리(70)에 SMD 위치를 할당한다. SMD는 어댑터 커맨드에 의해 초기화되고, 메시지가 수신지 노드로 송신되어 수신지 노드에 의해 응답될 때 갱신된다. SMD는 메시지 데이터의 위치, 메시지 데이터의 양, 메시지의 수신지 및 적절한 메시지 전송 및 복구(필요하다면)에 필요한 다른 중요한 정보를 유지한다. 마찬가지로, 수신지 노드(18N)에서, 수신 메시지 디스크립터(Receive Message Descriptor : RMD) 구조는 수신중인 메시지의 상태를 유지하기 위해 사용된다. 수신되는 각 메시지에 대하여, CSS는 수신지 노드에서 어댑터 메모리(70)에 RMD 위치를 할당한다. RMD는 어댑터 커맨드에 의해 초기화되고, 메시지가 수신될 때 갱신된다. (메시지 디스크립터는 송신 또는 수신된 실제 메시지 데이터를 포함하거나 포함하지 않을 수 있다는 것에 유의한다. 큰 메시지, 예를 들면 1024 바이트 이상의 메시지에 대하여, 버퍼 어드레스 필드가 버퍼를 액세스하기 위해 디스크립터에서 사용되는 경우 분리 버퍼를 할당해야 한다. 그러나, 짧은 메시지에 대하여, 디스크립터 자신은 버퍼 자체로 기능할 수 있고 또한 실제 메시지 데이터를 유지할 수 있다.) RMD는 수신 버퍼의 위치, 수신 버퍼의 크기, 메시지의 기대 소스, 메시지 수신 및 적절한 복구에 필요한 다른 중요 정보를 유지한다.
예시적인 송신 및 수신 메시지 디스크립터는 다음과 같다
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
제 어 | 길 이 | 종 류 | 수 신 지 | ||||
SEQ# | 상 태 | 예 약 | PA | 문 맥 | |||
PRP_SDI | PRP_RDI | U_AQ_NEXT | P_SQ_NEXT | ||||
디스크립터_데이터(0)/버퍼_어드레스 | |||||||
디스크립터_데이터(1) | |||||||
디스크립터_데이터(2) | |||||||
- | |||||||
- | |||||||
- | |||||||
디스크립터_데이터(n-1) |
송신 메시지 디스크립터(SMD)
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
제 어 | 길 이 | 예 약 | SRC_SEND_DESC | ||||
SEQ# | 상 태 | 크 기 | 예 약 | ||||
종 류 | 소 스 | PA | 문 맥 | Q_NEXT | |||
디스크립터_데이터(0)/버퍼_어드레스 | |||||||
디스크립터_데이터(1) | |||||||
디스크립터_데이터(2) | |||||||
- | |||||||
- | |||||||
- | |||||||
디스크립터_데이터(n-1) |
수신 메시지 디스크립터(RMD)
본 발명에 따르면, 메시지 디스크립터(들)의 헤더부는 소스 개시 인터럽트(SII) 필드 및 수신지 개시 인터럽트(DII) 필드(위에서 설명함)가 포함된 제어 영역(어두운 영역)을 포함한다. 예시적인 제어 영역은 16 비트를 포함할 수 있고, 그중 2개는 다음과 같이 설정되는 SII 및 DII 필드를 포함한다.
제어 영역:
비트 # 설 명
0 커널/_사용자 메시지
1 디스크립터 데이터/_DMA 데이터
2 애플리케이션/_버퍼 공간
3 소스 개시 인터럽트(SII)
4 수신지 개시 인터럽트(DII)
5 풀 응답(Pull Reply)
6 풀 요구(Pull Request)
7 복구/_랑데뷰
8 재송신
9 랑데뷰 요구
10 미정의
11 버스트/_버스트 없음
12 예약(0_식별자 비트 #0)
13 예약(0_식별자 비트 #1)
14 예약(0_식별자 비트 #2)
15 예약(0_식별자 비트 #3)
비록 예시적인 실시예에서는 분리 필드가 SII 및 DII 필드 각각에 대하여 제어 영역에 할당되지만, 다른 실시예에서는 일반적으로 소스 노드 또는 수신지 노드가 인터럽트를 개시하는가에 관계없이 메시지의 도착시 동일한 종류의 인터럽트가 수신지 노드에서 발생되므로, 이들 필드가 동일한 필드로 될 수 있다.
SMD 및 RMD와 관련하여 설명된 제어 영역은 소스 노드 및 수신지 노드의 어댑터에서 수 많은 데이터 구조 및 커맨드에 걸쳐 지원되고 복사되는 메모리의 영역으로서, 메시지마다 시스템 와이드 기준으로 본 발명의 인터럽트를 용이하게 한다.
예를 들면, 도 4를 참조하면, 매체(20)를 거쳐 전송된 (따라서 소스 및 수신지 어댑터 메모리(70)의 각각에 반드시 유지되는) 개별 메시지 패킷(80)은 헤더부(82) 및 데이터부(84)를 포함한다. 헤더부(82)내에는 그곳에 할당된 SII 및 DII 필드를 갖는 제어 영역(86)이 포함된다. 수신지 노드에서 메시지의 수신전, SII 필드만이 상상컨데 설정될 것이다. DII는 수신지 노드에서 수신 버퍼에 미리 설정되거나 설정되지 않을 수 있다. 도 4의 메시지 패킷(80)은 SII 및 DII 필드를 포함하는 일반적 헤더 포맷에 부착된 다른 메시지 패킷 구조처럼 이하 재생된다. 예를 들면, 풀 요구 메시지 패킷(Pull Request Message Packet)은 수신지 노드에서 나오고, 그에 응답하여, 풀 응답 메시지 패킷은 데이터를 포함하여 소스 노드로부터 송신된다. 풀(pull) 패킷은 표준 메시지 패킷을 송시하려는 이전의 시도로부터 복구하기 위해 사용된다.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
R0 | R1 | R2 | R3 | R4 | R5 | R6 | /////// |
SEQ# | 플래그 | PKTFID | 소 스 | PA | 문 맥 | ||
제 어 | 길 이 | 종 류 | 수 신 지 | ||||
예 약 | 예 약 | SEND_DESC | 파 티 션 | ||||
HDR_CRC | ////////////////////////////////////////////////// | ||||||
데이터(0) | |||||||
데이터(1) | |||||||
데이터(2) | |||||||
- | |||||||
- | |||||||
- | |||||||
데이터(n-1) | |||||||
DATA_CRC | ////////////////////////////////////////////////// |
메시지 패킷
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
R0 | R1 | R2 | R3 | R4 | R5 | R6 | ////// |
SEQ# | 플래그 | PKTFID | 소 스 | PA | 문 맥 | ||
제 어 | 길 이 | 종 류 | 수 신 지 | ||||
예 약 | 예 약 | SEND_DESC | 파 티 션 | ||||
HDR_CRC | ////////////////////////////////////////////////// |
데이터가 없는 메시지 패킷
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
R0 | R1 | R2 | R3 | R4 | R5 | R6 | ////// |
SEQ# | 플래그 | PKTFID | 소 스 | PA | 문 맥 | ||
제 어 | 예 약 | 종 류 | 수 신 지 | ||||
PRP_SDI | PRP_RDI | SEND_DESC | 파 티 션 | ||||
HDR_CRC | ////////////////////////////////////////////////// |
풀 요구 메시지 패킷
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
R0 | R1 | R2 | R3 | R4 | R5 | R6 | ////// |
SEQ# | 플래그 | PKTFID | 소 스 | PA | 문 맥 | ||
제 어 | 길 이 | 종 류 | 수 신 지 | ||||
예 약 | PRP_RDI | SEND_DESC | 파 티 션 | ||||
HDR_CRC | ////////////////////////////////////////////////// | ||||||
데이터(0) | |||||||
데이터(1) | |||||||
데이터(2) | |||||||
- | |||||||
- | |||||||
- | |||||||
데이터(n-1) | |||||||
DATA_CRC | ////////////////////////////////////////////////// |
풀 응답 메시지 패킷
마찬가지로, 소스 및 수신지 노드 어댑터 커맨드도 SII 및 DII 필드를 포함하는 제어 영역을 지원한다. 그러한 커맨드의 예시적인 포맷은 다음과 같다
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
제 어 | 길 이 | 종 류 | 수 신 지 | ||||
예 약 | SEND_DESC | PA | 문 맥 | ||||
디스크립터 데이터(0)/버퍼_어드레스 | |||||||
디스크립터_데이터(1) | |||||||
디스크립터_데이터(2) | |||||||
디스크립터_데이터(3) - | |||||||
디스크립터_데이터(4) - | |||||||
디스크립터_데이터(5) - |
메시지 송신 커맨드
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
제 어 | 예 약 | SEND_DESC | 예 약 |
메시지 재송신 커맨드
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
제 어 | 예 약 | 종 류 | 수 신 지 | ||||
PRP_SDI | PRP_RDI | SEND_DESC | PA | 문 맥 |
풀 요구 메시지 송신 커맨드
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
제 어 | 길 이 | 종 류 | 수 신 지 | ||||
예 약 | SEND_DESC | PA | 문 맥 | ||||
디스크립터_데이터(0)/버퍼_어드레스 | |||||||
디스크립터_데이터(1) | |||||||
디스크립터_데이터(2) | |||||||
디스크립터_데이터(3) | |||||||
디스크립터_데이터(4) | |||||||
디스크립터_데이터(5) |
풀 응답 메시지 포스트 커맨드
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
제 어 | 예 약 | 종 류 | 소 스 | ||||
PRP_SDI | 크 기 | RECV_DESC | XX | 문 맥 | |||
버퍼_어드레스 |
포스트 메시지 수신 버퍼(PMRB) 커맨드
메시지 송신 커맨드는 어댑터를 거쳐 매체를 건너 수신지 노드로 메시지를 송신하는 메카니즘을 제공한다. 커맨드는 상술한 송신 메시지 디스크립터(SMD)를 작성하는 데 필요한 모든 파라미터를 포함한다. 송신 어댑터가 메시지 송신 커맨드를 수신할 때, 지정된 SMD는 어댑터 메모리에서 초기화되고, 그의 선택된 필드는 실제 송신 로직에 의한 완료를 위해 블랭크로 남는다. 이점에 있어서, 소스 노드 처리에서는 SMD내의 소스 개시 인터럽트(SII)가 설정되어, 수신지 노드에서 관련 메시지의 도착시 수신지 노드를 인터럽트하기를 원하는 것을 나타낸다.
포스트 메시지 수신 버퍼(Post Message Receive Buffer : PMRB) 커맨드는 매체로부터 도착하는 메시지가 수신되는 수신 어댑터의 메모리에 버퍼를 포스트 또는 할당하기 위해 수신지 노드에서 메카니즘을 제공한다. 이 커맨드는 상술한 수신 메시지 디스크립터(RMD)를 작성하기 위해 필요한 모든 파라미터를 포함한다. PMRB 커맨드가 호출될 때, 지정된 RMD는 이어지는 처리를 위해 선택된 필드는 블랭크로 남고 어댑터 메모리에서 초기화된다. 이 점에 있어서 수신지 노드 처리에서는 DII 필드가 미리 설정될 수 있다. PMRB 커맨드는 장래 예상되고, 즉 어떤 메시지의 실제 존재에 따르지 않고, 그 보다는 수신지 노드에 도착하는 메시지를 예상하고 호출된다. 이것은 수신지 노드 소프트웨어에 의해 독립적이고 비동기적으로 발행되므로, 특정 애플리케이션 요구에 따라, 수신지 개신 인터럽트가 메시지 마다 기준으로 수신지 노드에서 비동기로 호출될 수 있다는 것에 직접 추종한다.
포스트된 버퍼의 리스트는 수신지 노드에서 포스트된 버퍼 인덱스 테이블에 유지될 수 있다. 포스트된 버퍼 인덱스 테이블은 메시지가 수신되는 경우에 포스트된 수신 버퍼를 저장하고 검색하는 메카니즘을 제공한다.
본 발명은 애플리케이션에 다량의 융통성을 제공하기 위해 폴링 어프로치와 함께 구현될 수 있다. SII와 DII 필드가 모두 설정되지 않으면, 수신지 노드에서 폴링은 여전히 채용될 수 있다. 수신된 메시지는 어떤 메시지가 수신되었는가를 판정하기 위해 사용자 메시지 수신 큐(User Message Receive Queue : UMRQ) FIFO와 함께, 애프리케이션 프로그램에 의해 폴링될 수 있는 수신지 노드에서 포스트된 RMD에 할당된다. 수신된 메시지, 즉 FIFO의 출력의 메시지 중 가장 빠른 메시지가 수신지 노드에서 먼저 처리되고 나서 FIFO 내의 그것 다음의 메시지가 처리된다. 어댑터 메모리에서 디스크립터의 링크된 리스트를 구현하는 예시적인 UMRQ는 다음에 도시되어 있다. 최초 디스크립터 및 최종 디스크립터의 디스크립터 인덱스는 UMRQ내 엔트리수의 계수인 것처럼, UMRQ에 포함된다. (디스크립터의 링크된 리스트는 링크된 리스트에 다음 RMD의 어드레스를 포함하는 각 RMD내의 Q_NEXT 필드를 사용하여 완성된다.)
비트# | 리셋 | 설 명 |
0-15 | 0x0000 | UMRQ 헤드 인덱스 |
16-31 | 0x0000 | UMRQ 테일 인덱스 |
32-47 | (사용하지 않음) | |
48-63 | 0x0000 | UMRQ 카운트 |
사용자 메시지 수신 큐(UMRQ)
UMRQ FIFO를 폴링하는 것은 메시지 수신 큐 패치 커맨드를 사용하여 실행되고, 그의 필드는 다음과 같이 도시된다
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
RECV_DSC | ARF_COUNT | MRQ_COUNT | rsvd | RESP# | |||
제 어 | 길 이 | 예 약 | SRC_SEND_DESC | ||||
SEQ# | 상 태 | 크 기 | 예 약 | ||||
종 류 | 소 스 | PA | 문 맥 | Q_NEXT | |||
디스크립터_데이터(0)/버퍼_어드레스 | |||||||
디스크립터_데이터(1) | |||||||
디스크립터_데이터(2) | |||||||
- | |||||||
- | |||||||
- | |||||||
디스크립터_데이터(n-1) |
메시지 수신 큐 패치(MRQF) 커맨드
어댑터 메모리(70)를 포함하는 수신지 노드(14N)를 도시하는 도 5의 수신지 노드 커맨드 및 데이터 흐름도를 참조하면, UMRQ FIFO(90)는 RMD(92)의 시퀀스(RMD1...RMD4)에 대하여 포인터 P1...P4의 리스트를 구현하는 것으로서 시각화될 수 있다. MRQF 커맨드(94)는 메시지가 도착하는 UMRQ FIFO(90)의 출력을 폴링 또는 감시하기 위해 사용될 수 있다. 그러나, 인터럽트 동작을 위해, 다음 RMD, RMD4에 SII 및/또는 DII 필드를 설정하기 위해, (메시지(40)을 통해) 소스 노드의 메시지 송신 커맨드와 같이, PMRB 커맨드(96)는 사용될 수 있다. 수신지 및/또는 소스 개시 인터럽트의 설정은 도 5에 경로 (98, 99)로서 도시되어 있다. 메시지가 도착하고 그것이 UMRQ에 적절히 수신될 때, SII 또는 DII의 설정은 수신지 노드 내에서 인터럽트(60)를 발생시켜서, 도착 노드에게 입력 메시지의 도착을 통지한다. 도 5의 예에서와 같이, 메시지가 UMRQ FIFO의 메시지(40)보다 앞에 위치하면, 애플리케이션 프로그램은 큐가 비도록 반복 MRQF를 즉시 개시할 수 있다. 다른 예에서, UMRQ내의 인터럽트 메시지보다 앞서는 메시지가 없으면, 수신지 노드 소프트웨에 의해 발생된 첫 번째 MRQF 커맨드는 인터럽트 메시지를 검색한다.
따라서, 본 발명은 메시지 도착을 애플리케이션에게 통지하기 위해, 표준 폴링 어프로치 및/또는 선택적 소스 또는 수신지 개시 인터럽트 사용의 융통성을 형편좋게 제공한다. 이들 기능은 커맨드, 디스크립터 및 메시지 패킷의 형태로 시스템에게 제공될 수 있고, 이들 모두는 시스템 와이드 기준으로 이들 기능을 지원하기 위해 요구되는 포맷에 따른다. 이들 기능은 특정 애플리케이션의 성능 요구에 부합하도록 메시지 마다 기준으로 선택적으로 호출될 수 있다.
어떤 종류의 인터럽트를 전체적으로 디스에이블하기 위한 시스템의 요구도 있을 수 있다. 도 6은 인터럽트를 인에이블하고 디스에이블하는 회로(100)를 도시한 것으로, M개의 인터럽트에 대하여 인터럽트 소스(110)에 의해 채워지는 인터럽트 계류 레지스터(interrupt pending register)(102)를 구비하고 있다. 하드웨어 또는 소프트웨어 프로그래밍 소스(112)로부터 판독/기록 형태로 액세스될 수 있는 프로그램가능한 인에이블링 인터럽트 마스크(104)는 시스템에서 상술한 SII 및 DII 종류 인터럽트를 구비하는 다수(M개)의 인터럽트 중 어느 하나를 전체적으로 디스에이블하게 마련될 수 있다. 도 6의 예시적인 회로(100)에서, 인터럽트 마스크(104)의 비트는 인터럽트 계류 레지스터(102)내의 그들의 대응하는 비트와 AND(106)되고, 그 결과가 모두 OR(108)되어 인터럽트(60)가 발생된다. 이것은 상술한 SII 및 DII 종류 인터럽트 발생을 전체적으로 디스에이블하기 위해 본 발명에 의해 마련되는 인터럽트 프로그램가능성(programmability)의 또 다른 레벨이다. (인터럽트 이벤트가 발생하였는가를 판정하기 위해, 도 5를 참조하여 위에서 설명한 폴링 기술과 마찬가지로 더 높은 레벨의 소프트웨어가 레지스터(102)에 폴링 기술을 사용할 수 있는 경우에, 인터럽트가 마스크(104)에 의해 디스에이블되더라도, 레지스터(102)는 폴링된 레지스터로서 기능할 수 있다. 이것은 사용자-레벨 인터럽트가 지원되지는 않는 소프트웨어 애플리케이션에 특히 유용할 수 있다.)
본 발명은 예를 들면 도 1의 매체(22) 또는 도 3 내지 도 5의 어댑터 메모리(70) 등의 컴퓨터 이용가능 매체를 갖는 제조 물품(예를 들면, 하나 이상의 컴퓨터 프로그램 제품)에 구비될 수 있다. 상기 매체는 예를 들면, 본 발명의 메카니즘을 제공하고 용이하게 하는 컴퓨터 판독가능 프로그램 코드 수단을 구현하고 있다. 상기 제조 물품은 시스템 부분으로서 구비되거나 또는 따로 판매될 수 있다. 상술한 제조 물품에 있는가 또는 다른 메모리 부품내에 있는가에 따라, 본 발명은 본 발명의 메카니즘을 용이하게 하는 상술한 포맷된 메시지, 디스크립터, 커맨드 및 다른 데이터 구조를 구비한다.
이상, 본 발명자에 의해 이루어진 발명을 상기 실시예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위내에서 여러 가지로 변경가능한 것은 물론이다.
Claims (18)
- 메시지 처리 시스템에서 다수의 메시지 중 개별 메시지의 도착을 수신지 노드에 통지하는 시스템에 있어서, 상기 다수의 메시지 중 제1 메시지에 대하여, 상기 제1 메시지가 송신되는 소스 노드에서 상기 제1 메시지에 소스 개시 인터럽트(source initiated interrupt : SII) 필드를 설정하기 위한 수단 및 상기 수신지 노드에서 상기 제1 메시지의 도착시 설정된 SII 필드에 따라 상기 수신지 노드에서 제1 인터럽트를 발생하기 위한 수단을 포함하고, 상기 다수의 메시지 중 제2 메시지에 대하여, 상기 수신지 노드에서 수신지 개시 인터럽트(destination initiated interrupt : DII) 필드를 미리 설정하기 위한 수단 및 상기 수신지 노드에서 상기 제2 메시지의 도착시 미리 설정된 DII 필드에 따라 상기 수신지 노드에서 제2 인터럽트를 발생하기 위한 수단을 포함하는 시스템.
- 제 1항에 있어서, 상기 제1 및 제2 메시지를 제외하고 상기 다수의 메시지의 일부 메시지에 대하여, 상기 일부 메시지 중 일부가 상기 수신지 노드에 도착하였는가의 여부를 판정하기 위해 상기 수신지 노드에서 메시지 수신 큐를 폴링하기 위한 수단 및 상기 폴링하기 위한 수단으로 부터의 상기 일부 메시지 중 적어도 하나가 상기 수신지 노드에 도착하였다는 판정이 있을 때 상기 일부 메시지 중 적어도 하나의 메시지를 처리하기 위한 수단을 더 포함하는 시스템.
- 제 2항에 있어서, 프로그램가능한 인터럽트 인에이블링 마스크를 사용하여 상기 수신지 노드에서 상기 제1 인터럽트 발생 또는 상기 제2 인터럽트 발생을 인에이블하기 위한 수단을 더 포함하는 시스템.
- 제 1항에 있어서, 상기 DII 필드를 미리 설정하기 위한 수단은 상기 제2 메시지가 도착하는 수신지 노드에서 버퍼를 할당하기 위한 수단에 포함되는 시스템.
- 제 4항에 있어서, 상기 버퍼를 할당하기 위한 수단은 수신지 노드에서 포맷된 수신 메시지 디스크립터(receive message descriptor : RMD) - 여기서, 상기 RMD는 DII 필드를 가진 제2 메시지에 대한 수신 제어 정보를 포함함 - 를 작성하기 위한 수단을 포함하는 시스템.
- 제 5항에 있어서, 상기 SII 필드를 설정하기 위한 수단은 소스 노드로부터 수신지 노드로 제1 메시지를 송신하기 위한 수단에 포함되는 시스템.
- 제 6항에 있어서, 상기 제1 메시지를 송신하기 위한 수단은 소스 노드에서 포맷된 송신 메시지 디스크립터(send message descriptor : SMD) - 여기서, 상기 SMD는 SII 필드를 가진 제1 메시지에 대한 송신 제어 정보를 포함함 - 를 작성하기 위한 수단을 구비하는 시스템.
- 제 7항에 있어서, 상기 제1 메시지, 제2 메시지, 송신 메시지 디스크립터 및 수신 메시지 디스크립터는 상기 메시지 처리 시스템에 있어서 소스 개시 인터럽트 및 수신지 개시 인터럽트를 지원하기 위해 SII 필드 및 DII 필드를 구비하는 포맷된 헤더 데이터 구조를 각각 포함하는 시스템.
- 제 8항에 있어서, 상기 SII 필드 및 DII 필드는 상기 포맷된 헤더 데이터 구조에서 동일한 필드를 포함하는 시스템.
- 제 8항에 있어서, 상기 SII 필드 및 DII 필드는 상기 포맷된 헤더 데이터 구조에서 상이한 필드를 포함하는 시스템.
- 제 1항에 있어서, 상기 메시지 처리 시스템은 멀티프로세서 데이터 처리 시스템을 포함하고, 상기 소스 및 수신지 노드는 상기 멀티프로세서 데이터 처리 시스템에서 각각의 처리 노드를 포함하는 시스템.
- 소스 노드 및 수신지 노드를 포함하는 메시지 처리 시스템에 있어서, 상기 소스 노드는, 메시지 헤더를 발생하기 위한 수단, 상기 메시지 헤더에 소스 개시 인터럽트 필드를 설정하기 위한 수단 및 상기 소스 노드 및 상기 수신지 노드를 결합하는 매체를 거쳐 상기 수신지 노드로 메시지 헤더를 송신하기 위한 수단을 포함하고, 상기 수신지 노드는, 상기 메시지 헤더의 도착을 용이하게 하기 위해 상기 수신지 노드에서 메모리의 영역을 할당하기 위한 수단, 상기 메모리의 할당된 영역에 수신지 개시 인터럽트 필드를 설정하기 위한 수단, 상기 메모리의 할당된 영역을 사용하여 메시지 헤더를 수신하기 위한 수단 및 상기 수신지 노드에서 메시지 헤더의 도착시 소스 개시 인터럽트 필드 또는 수신지 개시 인터럽트 필드의 설정에 따라 인터럽트를 발생하기 위한 수단을 포함하는 메시지 처리 시스템.
- 제 12항에 있어서, 상기 소스 개시 인터럽트 필드 및 수신지 개시 인터럽트 필드는 메시지 헤더 및 메모리의 할당된 영역에서 공통 필드를 포함하는 메시지 처리 시스템.
- 제 12항에 있어서, 상기 소스 개시 인터럽트 필드 및 수신지 개시 인터럽트 필드는 메시지 헤더 및 메모리의 할당된 영역에서 상이한 필드를 포함하는 메시지 처리 시스템.
- 제 12항에 있어서, 상기 수신지 노드는, 수신된 메시지를 유지하기 위한 메시지 수신 큐 및 약간의 메시지라도 수신되었는가를 판정하기 위해 상기 메시지 수신 큐를 폴링하기 위한 수단을 더 포함하는 메시지 처리 시스템.
- 제 12항에 있어서, 상기 수신지 노드는, 프로그램가능한 인터럽트 인에이블링 마스크 및 상기 프로그램가능한 인터럽트 인에이블링 마스크를 사용하여 상기 인터럽트를 발생하기 위한 수단을 인에이블하기 위한 수단을 더 포함하는 메시지 처리 시스템.
- 제 12항에 있어서, 상기 메시지 처리 시스템은 멀티프로세서 데이터 처리 시스템을 포함하고, 상기 소스 및 수신지 노드는 상기 멀티프로세서 데이터 처리 시스템에서 각각의 처리 노드를 포함하는 메시지 처리 시스템.
- 메시지의 도착을 메시지 처리 시스템의 수신지 노드에 통지하는 시스템에 있어서, 상기 메시지 처리 시스템에서 메시지 마다 기준으로 프로그램가능한 소스 및 수신지 개시 인터럽트 발생을 제공하기 위한 수단을 포함하는 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8/826,888 | 1997-04-08 | ||
US08/826,888 | 1997-04-08 | ||
US08/826,888 US6105071A (en) | 1997-04-08 | 1997-04-08 | Source and destination initiated interrupt system for message arrival notification |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980079676A true KR19980079676A (ko) | 1998-11-25 |
KR100298961B1 KR100298961B1 (ko) | 2001-09-06 |
Family
ID=25247776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980003468A KR100298961B1 (ko) | 1997-04-08 | 1998-02-06 | 메시지도착통지를위한소스및수신지개시인터럽트시스템 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6105071A (ko) |
EP (1) | EP0875827A3 (ko) |
KR (1) | KR100298961B1 (ko) |
CA (1) | CA2231949A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU3346400A (en) * | 1999-02-05 | 2000-08-25 | Cyrus Intersoft, Inc. | Instrumenting streamed classes |
US6625637B1 (en) * | 1999-12-09 | 2003-09-23 | Koninklijke Philips Electronics N.V. | Method and apparatus for synthesizing communication support based on communication types of application |
US7249192B1 (en) * | 2000-03-09 | 2007-07-24 | Hewlett-Packard Development Company, L.P. | Protocol for insuring exactly once semantics of transactions across an unordered, unreliable network |
JP3807250B2 (ja) * | 2001-05-18 | 2006-08-09 | 日本電気株式会社 | クラスタシステム、コンピュータ及びプログラム |
US7480697B2 (en) * | 2002-05-28 | 2009-01-20 | International Business Machines Corporation | Method and apparatus using attached hardware subsystem to communicate between attached hosts |
GB2409302B (en) * | 2003-12-18 | 2006-11-22 | Advanced Risc Mach Ltd | Data communication mechanism |
GB2409303B (en) * | 2003-12-18 | 2006-10-18 | Advanced Risc Mach Ltd | Inter-processor communication mechanism |
US7971205B2 (en) * | 2005-12-01 | 2011-06-28 | International Business Machines Corporation | Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status |
EP3286637B1 (en) * | 2016-02-04 | 2023-04-05 | Hewlett Packard Enterprise Development LP | Memory register interrupt based signaling and messaging |
CN113312298B (zh) * | 2020-02-27 | 2022-11-08 | Oppo广东移动通信有限公司 | 处理器通信方法和装置、电子设备、计算机可读存储介质 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4604500A (en) * | 1981-12-02 | 1986-08-05 | At&T Bell Laboratories | Multiprocessing interrupt arrangement |
US4593280A (en) * | 1982-03-05 | 1986-06-03 | Burroughs Corporation | Write token regeneration in a timed token ring |
ZA883232B (en) * | 1987-05-06 | 1989-07-26 | Dowd Research Pty Ltd O | Packet switches,switching methods,protocols and networks |
US4905233A (en) * | 1987-11-23 | 1990-02-27 | Harris Corporation | Multiple path routing mechanism for packet communications network |
US5253342A (en) * | 1989-01-18 | 1993-10-12 | International Business Machines Corporation | Intermachine communication services |
US5161156A (en) * | 1990-02-02 | 1992-11-03 | International Business Machines Corporation | Multiprocessing packet switching connection system having provision for error correction and recovery |
EP0444376B1 (en) * | 1990-02-27 | 1996-11-06 | International Business Machines Corporation | Mechanism for passing messages between several processors coupled through a shared intelligent memory |
US5201044A (en) * | 1990-04-16 | 1993-04-06 | International Business Machines Corporation | Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory |
JPH04107663A (ja) * | 1990-08-28 | 1992-04-09 | Nec Corp | 同期式通信システムの制御方式 |
JPH0548672A (ja) * | 1991-08-09 | 1993-02-26 | Mitsubishi Electric Corp | フアイル伝送方式 |
JPH0573507A (ja) * | 1991-09-13 | 1993-03-26 | Toshiba Corp | 電子計算機間メツセージ交信時の救済装置 |
US5491799A (en) * | 1992-01-02 | 1996-02-13 | Amdahl Corporation | Communication interface for uniform communication among hardware and software units of a computer system |
US5402526A (en) * | 1993-01-05 | 1995-03-28 | Mitsubishi Denki Kabushiki Kaisha | Interruptibility/priority control scheme for artificial intelligence software shell |
US5530874A (en) * | 1993-02-02 | 1996-06-25 | 3Com Corporation | Network adapter with an indication signal mask and an interrupt signal mask |
CA2123447C (en) * | 1993-09-20 | 1999-02-16 | Richard L. Arndt | Scalable system interrupt structure for a multiprocessing system |
US5617537A (en) * | 1993-10-05 | 1997-04-01 | Nippon Telegraph And Telephone Corporation | Message passing system for distributed shared memory multiprocessor system and message passing method using the same |
DE69412062T2 (de) * | 1993-12-08 | 1998-12-03 | Fuji Photo Film Co., Ltd., Minami-Ashigara, Kanagawa | Lichtempfindliches Silberhalogenidmaterial enthaltend eine lichtempfindliche polymerisierbare Schicht und eine Deckschicht, die Polyvinylalkohol mit sauren Gruppen oder einem Salz davon enthält |
JPH08180001A (ja) * | 1994-04-12 | 1996-07-12 | Mitsubishi Electric Corp | 通信方式及び通信方法及びネットワークインタフェース |
JPH086783A (ja) * | 1994-06-23 | 1996-01-12 | Toshiba Corp | ソフトウェア品質保証支援装置 |
WO1996013925A1 (en) * | 1994-10-31 | 1996-05-09 | Alcatel N.V. | Communications protocol |
-
1997
- 1997-04-08 US US08/826,888 patent/US6105071A/en not_active Expired - Fee Related
-
1998
- 1998-02-06 KR KR1019980003468A patent/KR100298961B1/ko not_active IP Right Cessation
- 1998-03-11 CA CA002231949A patent/CA2231949A1/en not_active Abandoned
- 1998-03-24 EP EP98302177A patent/EP0875827A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP0875827A2 (en) | 1998-11-04 |
KR100298961B1 (ko) | 2001-09-06 |
US6105071A (en) | 2000-08-15 |
EP0875827A3 (en) | 1999-02-17 |
CA2231949A1 (en) | 1998-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5634015A (en) | Generic high bandwidth adapter providing data communications between diverse communication networks and computer system | |
JP3606541B2 (ja) | 複数ノードの非同期データ通信システム内で早期到達メッセージを処理する方法 | |
US6070219A (en) | Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller | |
US5325492A (en) | System for asynchronously delivering self-describing control elements with a pipe interface having distributed, shared memory | |
US6078733A (en) | Network interface having support for message processing and an interface to a message coprocessor | |
EP1421739B1 (en) | Transmitting multicast data packets | |
JPH06309252A (ja) | 相互接続インタフェース | |
EP0526690B1 (en) | Synchronous node controllers for switching network | |
EP1466449A1 (en) | Deferred queuing in a buffered switch | |
US6976095B1 (en) | Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch | |
EP0479520A2 (en) | Network communication apparatus | |
KR100298961B1 (ko) | 메시지도착통지를위한소스및수신지개시인터럽트시스템 | |
US5347514A (en) | Processor-based smart packet memory interface | |
EP1038375B1 (en) | Message buffering for a computer-based network | |
US5878226A (en) | System for processing early arrival messages within a multinode asynchronous data communications system | |
US6697330B1 (en) | Method and system for output flow control in network multiplexers | |
US6098105A (en) | Source and destination initiated interrupt method for message arrival notification | |
JPH07262151A (ja) | 並列プロセッサシステムおよびそれに適したパケット廃棄方法 | |
US6098104A (en) | Source and destination initiated interrupts for message arrival notification, and related data structures | |
US6192033B1 (en) | Method and system for using resource management cells in an ATM network | |
JP3023339B2 (ja) | メッセージ着信通知方法及びシステム | |
EP0470320B1 (en) | Mechanism for performing the steady state and error recovery functions of a communication protocol | |
JPH09269936A (ja) | リモートリード処理方法およびその装置 | |
JPH03216749A (ja) | 通信制御処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |