KR980013147A - 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법 - Google Patents
패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법 Download PDFInfo
- Publication number
- KR980013147A KR980013147A KR1019960029904A KR19960029904A KR980013147A KR 980013147 A KR980013147 A KR 980013147A KR 1019960029904 A KR1019960029904 A KR 1019960029904A KR 19960029904 A KR19960029904 A KR 19960029904A KR 980013147 A KR980013147 A KR 980013147A
- Authority
- KR
- South Korea
- Prior art keywords
- message
- bit
- transmission
- data
- processor
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 160
- 238000000034 method Methods 0.000 title claims abstract description 32
- 239000000872 buffer Substances 0.000 claims description 69
- 230000004044 response Effects 0.000 claims description 34
- 238000012546 transfer Methods 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 2
- 230000011664 signaling Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 241001482108 Alosa pseudoharengus Species 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
- H04L49/9094—Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
본 발명은 메시지 전달 방식의 병렬 컴퓨터 시스템의 구조적 특성을 최대한 반영하여 효율적인 메시지 전송을 지원하고 메시지 전송 속도를 극대화할 수 있는 전용의 하드웨어를 구성하여 메시지 송신을 위한 소프트웨어 및 하드웨어의 부담을 최소화할 수 있고 메시지의 특성에 따라 메시지 전송 방식을 선택할 수 잇는 유연성과 높은 확장성을 제공하는 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어 방법이 개시된다.
Description
본 발명은 메시지 전달 컴퓨터 시스템(Message-passing computer system) 및 패킷 상호 연결망(Packet-switched interconnection network)에 관련된다. 구체적으로는 메시지 전달 컴퓨터 시스템에서의 페킷 상호 연결망을 통한 노드간 메시지 전송(node-to-node message transfer)에 관련된다. 그리고, 본 발명의 세부적인 내용은 메시지 전달 방식의 병렬 컴퓨터 시스템에서 패킷 상효 연결망을 통하여 노드간 메시지 전송을 수행하기 위한 메시지 송신 제어기에 관한 것이다.
일반적으로 메시지 전달 컴퓨터 시스템은 여러 개의 노드(node)들이 상호 연결망을 통하여 메시지를 교환함으로써, 상호 협력하여 작업(job)을 수행하는 병렬 컴퓨터 시스템(parallel computer system)을 지칭한다. 메시지 전달 컴퓨터 시스템에서 각 노드는 상호 연결망을 통하여 메시지를 송수신하므로, 노드들 사이에 전송되는 메시지의 지연시간(latency)과 전송 대역폭(bandwidth, 전송율)은 메시지 전달 컴퓨터 시스템의 성능에 큰 영향을 미치는 중요한 설계 요소이다.
상호 연결망은 다양한 설계 관점에서 여러 가지의 토폴러지(topologe)가 활발하게 연구 고안되어 왔으며, 이들 상호 연결망을 메시지 전달 컴퓨터 시스템 뿐만 아니라 공유 메모리(shared memory) 형태의 다중 프로세서 컴퓨터(multiprocessor computer)에서도 효과적으로 사용되고 있다. 연결망 인터페이스는 노드를 상호 연결망에 연결하는 다리(bridge) 역할을 수행하는 하드웨어 장치로서, 상호 연결망으로 메시지를 송수신하는 기능을 수행하며, 메시지의 지연시간을 최소화하고 전송 대역폭을 극대화할 수 있도록 설계되어야 한다.
데이터 통신 연결망을 위한 크로스바 인터페이스가 Digital Equipment Corporation사의 W. F. Hedberg등에 의하여 고안되었다. 상기 발명은 호스트 컴퓨터와 크로스바 스위치 사이의 인터페이스에 관한 것으로서, 다중 포트 RAM 소자를 이용하여 데이터를 버퍼링(buffering) 하도록 되어 있다. 수신 및 송신 데이터는 분리된 각각의 포트(serial port)를 통하여 RAM에 저장되거나 RAM으로부터 읽혀진다. 동시에 트로스바 인터페이스 내부에 있는 로컬 프로세서(local processor)가 병렬 포트를 통하여 직렬 포트와는 비동기적으로 RAM 에 접근할 수 있다.
상기 발명세서는 로컬 프로세서가 전송 프로토콕을 수행하는 주체가 되고, 송신 제어기는 크로스바 스위치에 인접하여 데이터를 직접 송신하는 부분적 역할을 수행한다. 상기 발명은 데이터 송신 인터페이스와 데이터 수신 인터페이스를 하나로 통합하여 설계하였으며, 로컬 프로세서가 전반적인 데이터 송수신 및 버퍼 관리를 제어하고, 송신 제어기는 크로스바 스위치로 데이터를 직접 송신하는 기능을 수행하고, 수신 제어기는 크로스바 스위치부터 데이터를 직접 수시하는 기능을 수행한다. 상기 발명은 데이터 송신 인터페이스와 데이터 수신 인터페이스를 통합하여 로컬 프로세서가 송수신 모두를 관장하여 제어하도록 되어 있다. 그러나, 송신 및 수신 속도를 극대화하기 위해서는 송신 인터페이스 및 수신 인터페이스를 독립적으로 분리하여 송신은 수신과 무관하게 수행될 수 있어야 한다.
또한, 상기 발명세서는 데이터의 송수신을 위하여 크로스바 인터페이스 내부에 로컬 프로세서를 두고 제어한다. 즉, 로컬 프로세서가 프로그램을 수행함에 따라 메시지 송신 부담(overhead)이 증가하는 문제점이 존재한다. 그러나 별도의 프로세서를 사용하지 않고 전용의 하드웨어에서 모든 송신제어를 통합하여 수행하면 메시지 송신 부담(overhead)을 최소화할 수 있다.
D.S.Henry C.F.Joerg는 밀접하게 결합된 프로세서와 연결망 사이의 인터페이스에 관하여 논문을 발표하였다. 이들의 분석에 의하면, 프로세서와 상호연결망 사이의 인터페이스는 노스간 통신에서의 소프트웨어 부담(software overhead)을 최소하도록 설계하여야 한다.
현재 사용되고 있는 대부분의 연결망 인터페이스는 메모리 대응 인터페이스(memory-mapped interface)와 직접 기억 장치 접근(Direct Memory Access: 이하 DMA라 함) 기반 인터페이스(DMA-based interface)의 두 종류로 대별된다. 메모리 대응 인터페이스에서의 메시지 송신은 프로그램을 수행하는 프로세서가 연결망 인터페이스 내부에 있는 버퍼에 직접 전송할 메시지를 저장하여 송신을 의뢰함으로써 시작되고, 연결망 인터페이스는 버퍼에 저장된 메시지를 곧바로 송신한다. 연결망으로부터 메시지가 도착하면 연결망 인터페이스는 프로세서에게 인터럽트를 구동하여 메시지 도착을 알려주고 프로세서는 버퍼에 저장된 메시지를 읽어간다. 인터럽트 대신에 프로세서가 폴링(polling)하는 방법을 사용할 수도 있다.
메모리 대응 인터페이스를 사용하는 시스템에서는 M에 Machine, CM-5, MIT Alewife 등이 있다. 메시지 버퍼는 프로세서가 접근할 수 있는 주소가 할당되어 프로세서는 메모리로 접근하듯이 메시지 버퍼에 접근할 수 있다.
DMA 기반 인터페이스에서의 메시지 송신은 프로그램을 수행하는 프로세서가 주메모리(main memory)에 전송할 메시지를 준비해 놓은 후 연결망 인터페이스에게 메시지 송신을의뢰함으로써 시작되고, 연결망 인터페이스는 주메모리로부터 전송할 메시지를 DMA 전송 방식으로 읽어와서 연결망으로 송신한다. 연결망으로부터 메시지가 도착하면 연결망 인터페이스는 DMA 전송 방식으로 도착한 메시지를 주메모리에 저장하고 프로세서에게 인터럽트를 구동하여 메시지 도착을 알려준다. DMA 기반 인터페이스를 사용하는 시스템에는 NCUBE, iPSC/2 등이 있다. 이들 시스템은 주메모리와 연결망 인터페이스 사이의 DMA 전송을 통하여 메시지를 송수신한다. DMA 전송은 하드웨어 수준(hardwave level)에서 구현된다.
상기 논문에서 인용한 시스템들은 메모리 대응 전송과 DMA 기반 전송 중에서 하나의 방법만을 지원한다. 그러나, 효율적인 메시지 전송을 위해서는 두 가지 방법을 모두 지원하는 것일 요구된다. 또한 사용자에게 유연성을 제공하기 위하여, 두 가지의 전송 방식 중에서 메시지의 특성(저장 위치, 전송량 등)에 따라 소프트웨어 프로그램에서 전송 방식을 선택적으로 저장하는 기능이 요구된다.
따라서, 본 발명은 메시지 전달(message passing) 방식의 병렬 컴퓨터 시스템의 구조적 특성을 최대한 반영하여 효율적인 전송을 지원하는 메시지 송신 제어기와 메시지 전송 속도를 극대화할 수 있는 전용의 하드웨어를 구성하여 메시지 송신을 위한 소프트웨어 및 하드웨어의 부담을 최소화 할 수 있고 메시지의 특성에 따라 메시지 전송 방식을 선택할 수 있는 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어 방법을 제공하는데 그 목적이 있다.
상술한 목적을 달성하기 위한 본 발명에 따른 패킷 상호 연결망에서의 메시지 송신장치는 프로세서로부터 전송의뢰된 메시지를 출력 포트를 통하여 송신하는 일련의 송신 과정을 제어한다. 메시지 송신 제어기에 접속된 버퍼 장치는 제어 메히지, 데이터 전송 정보 및 데이터를 저장한다. 지역 버스 제어기는 메시지 송신 제어기 및 버퍼 장치를 지역 버스에 접속시켜 주고, 지역 버스에 대한 전송 요구와 전송 응답을 제어한다. 메시지 송신 제어기 및 버퍼 장치에 접속된 출력 포트 제어기는 상호 연결망으로 패킷을 송신하는 출력 포트를 제어한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 패킷 상호 연결망에서의 메시지 송신 제어 방법은 메시지 송신 제어기가 리셋되어 초기와 상태가 제 1 단계와, 상기 초기화 상태에서 메시지 제어 레지스터의 쓰기(W) 비트 설정에 따른 제어 동작을 수행하는 제 2 단계와, 상기 초기화 상태에서 메시지 제어 레지스터의 공백(E) 비트를 검사한 후 검사 결과에 따라 타이머를 인에이블시키는 제 3 단계와, 상기 타이머를 인에이블시킨 후 메시지 전송 정보 레지스터의 데이터 메시지(D) 비트를 검사하고 그 결과에 따라 지역 버스 제어기에 데이터 읽기를 요구하고난 후, 출력 포트 제어기에 패킷 전송을 요구하는 제 4 단계와, 상기 출력 포트 제어기에 패킷 전송을 요구한 후, 타이머로부터 타임아웃이 발생했는지를 검사하고 그 결과에 따라 수신 노드로부터 전송 응답이 도착했는지를 검사하는 제 5 단계와, 상기 검사 결과에 따라 전송 응답이 없으면 데이터 플래그를 검사하고 전송 응답이 있으면 데이터 전송 정보 수신 응답인지를 검사하는 제 6 단계와, 상기 데이터 전송 정보 수신 응답인지의 검사 결과에 따라 전송 인터럽트 인에이블(IE) 비트를 검사하는 제 7단계와, 상기 검사 결과에 따라 프로세서에게 전송 인터럽트를 구동 하도록 하는 제 8 단계와, 상기 프로세서에서 전송 인터럽트를 구동 하도록 한 후 메시지 버퍼 제어 레지스터에 의한 원형 큐 동작을 시행하도록 하는 제 9 단계로 이루어진다.
도 1은 본 발명이 적용되는 상호 연결되어 있는 노드의 구성도,
도 2는 본 발명에 따른 메시지 송신 제어 장치의 구성도,
도 3A 및 3B는 본 발명에 따른 송신 제어용 레지스터의 구성도,
도 4A 및 4B는 본 발명에 따른 메시지 송신 제어방법을 나타낸 흐름도,
도 5는 본 발명에 따른 쓰기(W) 비트 설정의 제어 동작을 나타낸 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
101: 상호 연결망 102 내지 105: 노드
106: 노드 버스 107 내지 110: 프로세서
111: 지역공유 메모리 112: 입출력 장치
113: 연결망 인터페이스 114: 버스 브리지
115: 지역 버스 116: 송신 연결망 인터페이스
117: 수신 연결망 인터페이스 201: 지역 버스 제어기
202: 메시지 송신 제어기 206: 버퍼 장치
213: 출력 포트 제어기 214: 타이머
본 발명을 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 여러 개의 노드(102, 103, 104, 105)가 상호 연결망(101)에 연결되어 있는 컴퓨터 시스템의 구성을 나타낸다. 상호 연결망(101)에 연결되는 각 노드(102, 103, 104, 105)는 제 1도의 확대 부분과 같이 구성되어 있다. 각 노드는 최소 1개에서부터 최대 4개까지의 프로세서를 포함한다. 각 프로세서( 107, 108, 109, 110)는 노드 버스(node bus)(106)에 연결되고 지역 공유 메모리(locally shared memory)(111)를 공유하는 대칭형 다중 프로세서(symetric multiprocessor) 구조를 형성한다. 입출력 장치(input/output devices)(112)는 노드 버스(106)에 연결되는데, 입출력이 요구되지 않는 노드는 입출력 장치(112)를 연결하지 않는다. 연결망 인터페이스(network interface)(113)는 노드를 상호 연결망에 접속하는 장치로서, 상호 연결망의 입력 포트 및 출력 포트에 연결된다. 연결망 인터페이스(113)는 송신 연결망 인터페이스(send network interface)(116)와 수신 연결망 인터페이스(receive network interface)(117)가 분리된 구조를 가지고 있으며, 각각은 지역 버스(local bus)(115)에 연결되어 있다. 노드 버스(106)과 지역 버스(115)와의 인터페이스는 버스 브리지(bridge)(114)에서 담당한다. 송신 연결망 인터페이스(116)는 푸로세서로부터 전송 의뢰된 메시지를 패킷화(packetizing)하여 출력 포트(outgoing port)를 통하여 상호 연결망으로 송신하는 일련의 동작을 수행한다. 수신 연결망 인터페이스(117)는 입력 포트(incoming port)를 통하여 도착한 패킷을 복원(de-packetizing)하여 수신하는 일련의 동작을 수행한다. 연결망 인터페이스(113)는 노드 사이의 메시지 전송을 효과적으로 지원하기 위하여 메시지(control message)와 데이터 메시지(data message)로 구분되는 두 종류의 메시지를 전송한다. 제어 메시지는 노드와 노드 사이의 제어 정보를 전달하는데 상용된다. 제어 메시지의 크기는 최소 4 바이트 최대 64 바이트이며 4 바이트 단위로 증가할 수 있다. 제어 메시지는 크기가 상대적으로 작고 프로세서에서 직접 생성하므로 메모리 대응 전송(memory-mapped transfer) 방식으로 전송한다. 테이터 메시지는 지역 공유 메모리(111)에 있는 데이터를 타 노드로 전송하기 위하여 사용되며, 데이터 전송 정보(data transfer information: 이하 DTI라 함)와 데이터의 조합으로 이루어진다. DTI는 데이터 메시지의 서두 부분으로서 전송할 데이터의 주소와 크기 등의 전송 정보를 포함하고 있다. DTI의 크기는 최소 16 바이트, 최대 64 바이트이면 4 바이트 단위로 증가할 수 있다. 데이터의 크기는 최소 64 바이트, 최대 1 Mbytes이며 64 바이트 단위로 증가할 수 있다. 데이터 메시지는 크기가 상대적으로 크고 지역 공유 메모리(111)에 존재하므로 DMA 기반 전송(DMA-based transfer) 방식으로 전송한다. 연결망 인터페이스(113)는 제어메시지에 대하여는 점대점(point-to-point) 전송 및 브로드캐스트(broadcast) 전송을 지원하고, 데이터 메시지에 대하여는 점대점 전송망을 지원한다.
도 2는 송신 연결망 인터페이스(116) 내부에서 메시지 송신 제어기(message send controller)(202)가 연결되어 있는 모습이 도시되어 있다. 지역 버스 제어기(local bus controller)(201)는 메시지 송신 제어기(202)와 버퍼 장치( buffer unit)(206)를 지역 버스(115)에 접속시켜 주고, 지역 버스에 대한 전송 요구(transfer request)와 전송 응답(transfer response)을 제어한다. 메시지 송신 제어기(202)는 본 발명의 직접적인 대상으로서, 프로세서부터 전송 의뢰된 메시지를 출력 포트를 통하여 송신하는 일련의 송신 과정을 제어한다. 메시지 송신 제어기(202)는 지역 버스 제어기(201)와 버퍼 장치(206)와 출력 포트 제어기(outgoing port controller)(213) 및 타이머(214)에 연결되어 있고, 메시지 송신 제어를 위하여 메시지 버퍼 제어 레지스터(message buffer control register: 이하 MCR이라 함)(203)와 메시지 전송 정보 레니스터(message transfer information register: 이하 MTR이라 함)(204) 및 데이터 플래그(data flag: 이하 DFLAG라 함)(205)를 가지고 있다. MCR(203)은 메시지 버퍼(207)를 제어하는 8 비트 레지스터로서, 메시지 버퍼(207)의 제어 및 상태 정보를 포함하고 있다.
MTIR(204)은 송신하고자 하는 제어 메시지의 맨앞 4 바이트 또는 DTI의 맨 앞 4 바이트를 메시지 버퍼(207)로부터 읽어와 필요한 부분만을 저장하고 있는 32 비트 레지스터로서, 메시지 전송 정보(message transfer information)를 포함하고 있다.
DFLAG(205)는 1 비트 레지스터인 데이터 플래그(data flag)로서, 데이터 메시지를 송신하는 경우에 DTI 송신후 현재 데이터 부분을 송신중임을 나타낸다. 버퍼 장치(206)는 메시지 버퍼(message buffer)(207)와 데이터 버퍼(data buffer)(208)로 구성되어 있다.
메시지 버퍼(207)는 프로세서로부터 전송 의뢰된 제어 메시지 또는 DTI를 저장하며, 크기가 64 바이트인 4개의 버퍼 MB0(209), MB1(210), MB2(211), MB3(212)으로 구성되어 있다. 메시지 버퍼(207)는 MCR(203)에 의하여 제어된다. 데이터 버퍼(208)는 지역 버스 제어기(201)가 DMA 동작으로 지역 공유 메모리(111)로부터 읽어온 데이터를 저장한다. 출력 포트 제어기(213)는 상호 연결망(101)으로 패킷을 송신하는 출력 포트를 제어한다. 타이머(214)는 인에이블(enable)되면 정해진 시간이 경과한 후 타임아웃 신호를 구동(assert)하고, 디스에이블(disable)이면 타임아웃 신호의 구동을 철회(deassert)한다. 메시지 수신 응답(message receive acknowledge)을 무한히 기다리거나(infinite waiting) 또는 계속된 전송 오류의 발생으로 전송을 무한히 재시도하는(infinite retry) 경우를 방지하기 위하여 메시지송신 제어기(202)는 메시지를 송신하기 전에 먼저 타이머(214)를 인에이블시킨다. 메시지 전송이 종료되기 전에 타임아웃이 발생하면, 메시지 송신 제어기(202)는 프로세서에서 타임아웃 인터럽트를 구동한다.
도 3A 및 3B는 송신 제어용 레지스터인 MCR(203)과 MTIR(204)의 구성도이다. MCR(203)은 프로세서에 의하여 읽기 및 쓰기가 가능하면, 쓰기가 가능한 비트는 쓰기(Write: 이하 W라 함) 비트(301)와 읽기(Read: 이하 R이라 함) 비트(302)이다. W 비트(301)는 메시지 버퍼(207)의 쓰기 동작을 나타내는 비트로서, W 비트(301)가 1이면 프로세서가 수행하면 하나의 제어 메시지 또는 DTI를 메시지 버퍼(207)에 저장하였음을 나타낸다. R 비트(302)는 메시지 버퍼(207)의 읽기 동작을 나타내는 비트로서, R 비트(302)가 1이면프로세서가 읽기를 수행하여 메시지 버퍼(207)로부터 하나의 제어 메시지 또는 DTI를 읽었음을 나타낸다. 공백(Empty: 이하 E라 함) 비트(304)는 메시지 버퍼(207)의 공백(empty)상태를 나타내는 비트로서, E 비트(304)가 1이면 메시지 버퍼(207)가 모두 비어 있음을 나타낸다.
MCR(203)은 메시지 버퍼(207)를 구성하는 4개의 단위 버퍼 MB0(209), MB1(210), MB2(211), MB3(212)을 원형 큐(circular queue) 구조로 만들어 제어한다. 원형 큐는 선입선출(first-in firse-out) 방식으로 동작하도록 제어된다. 머리 포인터(Head Pointer: 이하 HP라 함) 필드(305)는 4개의 단위 버퍼(209, 210, 211, 212)로 형성된 큐의 머리 포인트(head pointer)를 나타낸다. HP 필드(305)의 값이 0이면 MB0(209), 1이면 MB1(210), 2이면 MB2(211), 3이면 MB3(212)이 원형 큐의 머리(head)임을 가리킨다. 꼬리 포인터(Tail Pointer: 이하 TP라 함) 필드(306)는 4개의 단위 버퍼(209, 210, 211, 212)로 형성된 원형 규의 꼬리 포인터(tail pointer)를 나타낸다. TP 필드(306)의 값이 0이면 MB0(209), 1이면(210), 2이면(211), 3이면(212)이 원형 큐의 꼬리(tail)임을 가리킨다. 정의되지 않은 비트(reserved bit)(303)는 사용되지 않는 영역으로서 이 비트의 값은 아무런 의미가 없으며, 향후의 기능 확장시에 정의하여 사용될 수 있다.
MCR(203)에 의하여 제어되는 메시지 버퍼(207)의 원형 큐 동작은 다음과 같다. 원형 큐의 포인터인 TP 필드(306)는 다음에 체울 빈 단위 버퍼를 가리키고, 머리 포인터인 HP 필드(305)는 다음에 꺼내어 송신할 단위 버퍼를 가리킨다. 프로세서(107, 108, 109, 110)가 W 비트(301)에 1을 쓰면, 메시지 송신 제어기(202)는 꼬리 포인터인 TP 필드(306)를 1 증가시키고 W 비트(301)를 0으로 지우고 E 비트(304)를 0으로 지운다. 하나의 메시지 송신이 성공적을 완료되고 인터럽트 구동이 요구되지 않으면, 메시지 송신 제어기(202)는 비리 포인터인 HP 필드(305)를 1 증가시킨다. 반면, 프로세서(107, 108, 109, 110)에게 전송 인터럽트(transfer interrupt)나 타임아웃 인터럽트(timeout interrupt)를 구동한 경우에는, 프로세서가 R 비트(302)에 1을 쓰고난 다음에 머리 포인터인 HP 필드(305)를 1 증가시키고 R 비트(302)를 0으로 지운다. E 비트(304)가 0이고 머리 포인터인 HP 필드(305)와 꼬리 포인터인 TP 필드(306)가 같으면 메시지 버퍼(207)가 모두 채워져 있음을 나타낸다. 프로세서는 MCR(203)의 W 비트(301)나 R 비트(302)에 쓰기를 수행할 때 두 비트중 하나는 1, 다른 하나는 0으로 써야한다. 즉, 두 비트를 모두 1로 쓰지 않아야 한다.
MTIR(204)은 프로세서에 의하여 읽기 및 쓰기가 불가능하다. 데이터 메시지(Data message: 이하 D라 함) 비트(301)는 송신하려는 메시지가 제어 메시지인지 데이터 메시지인지를 나타내는 비트로서, D 비트(311)가 0이면 제어 메시지를나타내고 1이면 데이터 메시지를 나타낸다. 브로드캐스트(Broadcast: 이하 B라 함) 비트(313)는 브로드캐스트(broadcast) 전송을 나타내는 비트로서, B 비트(313)가 1이면 상호 연결망(101)에 연결되어 있는 모든 노드에게 메시지를 송신하고 0이면 수신 노드 식별자(Destination Node Identifer: 이하 DNI라 함) 필드(317)에 기록된노드에게 송신한다.
전송 인터럽트 인에이블(transfer Intereipt Enable: 이하 IE라 함) 비트(315)는 전송 인터럽트 인에이블( transfer intereupt enable)을 나타내는 비트로서, IE 비트(315)가 1이면 메시지 송신 제어기(202)는 메시지 전송이 오류없이 성공적으로 완료되었을 때프로세서에서 전송 인터럽트를 구동한다.
DNI 필드(317)는 수신 노드 식별자(destination node identifier)로서, 메시지를 전송하고자 하는 수신 노드의 고유 식별자를 나타낸다. 본 발명의 작용 대상이 되는 컴퓨터 시스템은 최대 128개의 노드가 상호 연결망에 연결될 수 있으므로 모든 노드를 식별하기 위해서 7 비트를 노드 식별자로 사용한다. 길이(LENgh: 이하 LEN이라 함) 필드(318)는 전송하고자 하는 제어 메시지 또는 DTI의 길이(length)를 나타내는 필드로서, 실제 길이는 LEN 필드(318)에 1을 더한 값의 4배이다. 즉, (LEN 필드의 값+1)×4 바이트이다. 정의되지 않은 필드(reserved field)(312, 314, 316, 319)는 사용되지 않는 영역으로서 이 필드의 값은 아무런 의미가 없으며, 향후의 기능 확장시에 정의하여 사용될 수 있다.
도 4A 및 4B는 본 발명에 따른 메시지 송신 제어 방법을 나타낸 흐름도로서, 메시지 송신 제어기(202)가 제어 메시지나 데이터 메시지를 송신하는 과정을 단계별로 나타낸다.
먼저, 메시지 송신 제어기(202)가 리셋(reset)되는 초기화 상태가 된다(401). 초기화 상태가 되면 E 비트(304)를 제외한 MCR(203)의모든 비트와 MTIR(204)의 모든 비트 및 DFLAG(205)의 값이 0이 되고, MCR(203)의 E 비트(304)는 1인 된다. 메시지 송신은 프로세서가 메시지 전송을 의뢰함으로써 시작된다.
프로세서는 메시지 송신을 위하여 메시지 버퍼(207)에 쓰기를 수행하기 전에 MCR(203)을 읽어 메시지 버퍼(207)의 충만 여부를 확인하고, 여유 공간이 있으면 메시지 버퍼(207)에 쓰기를 수행한다. 메시지 버퍼(207)에 쓰기를 수행한 후, 프로세서는 MCR(203)에 쓰기를 수행하여 W 비트(301)를 1로 설정한다. W 비트(301)의 설정에 따른 제어 동작은 도 5에 도시되어 있으며, 본문의 뒷부분에서 상세히 설명하기로 한다.
초기화 상태가 되고 나면, MCR(203)의 E 비트(304)를 검사한다(402). E 비트(304)가 0이 아니면 E 비트(304)의 검사를 반복하고, E 비트(304)가 0이면 메시지 버퍼(207)로부터 전송 정보(제어 메시지의 맨앞 4바이트 또는 DTI의 맨앞 4바이트)를 읽어서 MTIR(204)에 저장한다. 그리고 나서 타이머(214)를 인에이블(enable)시킨다(403). 타이머(214)를 인에이블 시킨 후 MTIR(204)의 D 비트(314)를 검사한다(404). D비트(311)가 1이 아니면 단계(406)으로 천이(transition)하고, D 비트(311)가 1이면 지역 버tm 제어기(201)에게 데이터 읽기를 요구한다(405). 지역 버스 제어기(201)는 메시지 송신 제어기(202)가 요구한 데이터를 지역 공유 메모리(111)로부터 동작으로 읽어서 데이터 버퍼(208)에 저장한다. 지역 버스 제어기(201)에게 데이터 읽기를 요구하고 나면, 출력 포트 제어기(213)에게 패킷 전송을 요구한다(406). 출력 포트 제어기(213)는 DFALG가 0이면 메시지 버퍼(207)로부터 하나의 제어 메시지나 DTI를 읽어서 패킷을 구성하여 상호 연결망(101)으로 송신한다.
반면에 DFALG가 1이면 데이터 버터(208)에 데이터가 준비 되는대로 데이터 버퍼(208)로부터 64 바이트의 데이터를 읽어서 패킷을 구성항 상호연결망으로 송신한다. 출력 포트 제어기(213)에게 패킷 전송을 요구하고 나면 타이머(214)로부터 타임아웃(timeout)이 발생했는지를 검사한다(407). 타임아웃이 발생하면(timeout fired), 프로세서에서 타임아웃 인터럽트를 구동하고(408) 단계(416)으로 천이한다.
타임아웃 인터럽트를 접수한 프로세서는 어떤 메시지에 의해 인터럽트가 발생했는지를 확인하기 위하여 메시지 버퍼(207)로 부터 제어 메시지 또는 DTI를 읽어볼 수 있다. 그리고 나서 프로세서는 MCR(203)에 쓰기를 수행하여 R 비트(302)를 1로 설정해야 한다. 이때, R 비트(302)를 1로 설정하지 않으면 메시지의 전송 과정이 종료되지 않은 것으로 간주한다. 타임아웃이 발생하지 않으면, 수신 노드로부터 전송 응답이 도착했는지를 검사한다(409). 전송응답(transfer acknowledge)을 수신 연결망 인터페이스(117)에서 수신하여 지역 버스(115)를 통하여 송신 연결망 인터페이스(116)의 지역 버스 제어기(201)에 도착하고, 지역 버스 제어기(201)는 메시지 송신 제어기(202)에게 알려준다.
전송 응답이 없으면, DFLAG(205)를 검사한다(410). DFLAG(205)가 1이면 단계(406)으로 복귀(return)하고, DFLAG(205)가 0이면 단계(40n)로 복귀한다.
전송 응답이 있으면, DTI 수신 응답(DTI receive acknowledge)인지를 검사한다(411). DTI 수신 응답이면, DFLAG(205)를 1로 설정하고(412) 단계(406)으로 복귀한다. DTI 수신 응답이 아니면, 메시지 수신 응답(message receive acknowledge)인지를 검사한다(413). 메시지 수신 응답이 아니면, 전송 오류(transfer error)가 발생한 것이므로 패킷 전송을 재시도하기 위하여 단계(406)으로 복귀한다. 메시지 수신 응답이면 IE 비트(315)를 검사한다(414). IE 비트(315)가 1이 아니면, 단계(417)로 천이한다. IE 비트(315)가 1이면, 프로세서에서 전송 인터럽트를 구동한다(415). 전송 인터럽트를 접수한 프로세서는 어떤 메시지에 의해 인터럽트가 발생했는지를 확인하기 위하여 메시지 버퍼(207)로부터 제어 메시지 또는 DTI를 읽어볼 수 있다. 그리고 나서 프로세서는 MCR(203)에 쓰기를 수행하여 R 비트(302)를 1로 설정해야 한다. 이때, R 비트(302)를 1로 설정하지 않으면 메시지의 전송과정이 종료되지 않은 것으로 간주한다. 프로세서에게 전송 인터럽트를 구동하고 나면, R 비트(302)를 검사한다(416). R 비트(302)가 1인 아니면 R 비트(302)의 검사를 반복한다. R 비트(302)가 1이면, DFLAG(205)를 0으로 지우고 머리 포인터인 HP 필드(305)를 1 증가시키고 R 비트(302)가 1이면, DFLAG(205)를 0으로 지우고 머리 포인터인 HP 필드(305)를 1 증가시키고 R 비트(302)를 0으로 지우고 타이며(214)를 디스에이블(disable)시킨다. 또한 타이머 인터럽트나 전송 인터럽트가 구동되어 있으면 철회(deassert)한다(417). 그리고 나서 HP 필드(305)와 TP 필드(306)가 같은지 검사한다(418). HP 필드(305)와 TP필드(306)가 같으면, E 비트(304)를 1로 설정하고(419) 단계(402)로 복귀한다. HP 필드(305)와 TP 필드(306)가 같지 않으면, 곧바로 단계(402)로 복귀한다.
도 5는 W 비트 설정에 따른 제어 동작을 나타낸 흐름도이다. 머저, 메시지송신 제어기(202)가 리셋(reset)되는 초기화 상태가 된다(501). 초기화 상태는 도 4의 단계(401)에서 설명한 바와 같다.
앞에서 설명한 바와 같이, 프로세서는 메시지 송신을 위하여 메시지 버퍼(207)에 제어 메시지나 DIT를 저장하기 전에 MCR(203)을 읽어 메시지 버퍼(207)의 충만 여부를 확인하고, 여유 공간이 있으면 메시지 버퍼(207)에 쓰기 수행한다. 그리고 나서 프로세서는 메시지 버퍼(207)에 메시지를 저장한 사실을 메시지 송신 제어기(202)에게 알려주기 위하여 MCR(203)에 쓰기를 수행하여 W 비트(301)를 1로 설정한다. 초기화 상태가 되고나면, 메시지 송신 제어기(202)는W 비트(301)를 검사한다(502). W 비트(301)가 1인 아니면, W 비트(301)의 검사를 반복한다. W 비트(301)가 1이면, 고리 포인터인 TP 필드(306)를 1 증가시키고 W 비트(301)를 0으로 지우고 E 비트(304)를 0으로 지운다(503).
도 5내지 나타내 W 비트(301) 설정에 따른 제어 동작은 도 4에 나타낸 메시지 송신 동작에 구애받지 않고 병행적으로(concurrently) 수행된다.
상술한 바와 같이 본 발명에 의하면 메시지의 송신 및 인터페이스를 독립적으로 분리하여 메시지 송신 제어기에서 메시지 수신과 무관하게 메시지를 송수신할 수 있게 함으로써, 메시지의 전송 속동를 극대화할 수 있으며, 별도의 프로세서를 사용하지 않고 메시지 송신 제어기에서 모든 송신 제어를 통합하여 수행하여 수행함으로써 메시지 송신 부담을 최소화할 수 있다.
또한, 메모리 대응 전송과 DMA 기반 전송을 모두 지원하고, 메시지의 특성(저장 위치, 전송량 등)에 따라 소프트웨어 프로그램에서 전송 방식을 선택적으로 지정하는 기능을 제공함으로써 사용상의 유연성을 제공할 수 있는 탁원한 효과가 있다.
Claims (14)
- 인에이블 신호에 따른 타임아웃 신호를 생성하는 타이머에 접속되고 프로세서로부터 전송의뢰된 메시지를 출력 코트를 통해 송신하는 일련의 송신 과정을 제어하는 메시지 송신 제어기와, 상기 메시지 송신 제어기에 접속되고 제어 메시지, 데이터 전송 정보 및 데이터를 저장하는 버퍼 장치와, 상기 메시지 송신 제어기 및 버퍼 장치를 지역 버스에 접속시켜 주고 지역 버스에 대한 전송 요구와 전송 응답을 제어하는 지역 버스 제어기와, 상기 메시지 송신 제어기 및 버퍼 장치에 접속되면 상호 연결망으로 패킷을 송신하는 출력 포트를 제어하는 출력 포트 제어기로 구성된 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 장치.
- 제 1항에 있어서, 상기 메시지 송신 제어기는 프로세서의 메시지 전송 요구에 따라 메시지 버퍼를 제어하며, 메시지 버퍼의 제어 및 상태 정보를 포함하는 메시지 버퍼 제어 레지스터와, 상기 프로세서의 메시지 전송 요구에 따라 상기 메시지 버퍼로 부터 송신하고자 하는 제어 메시지 또는 데이타 전송 정보를 읽어와필요한 부분만을 저장하며,메시지 전송 정보를 포함하고 있는 메시지 전송 정보 레지스터와, 상기 프로세서의 메시지 전송 요구에 따라 데이터 메시지를 송신하는 경우 데이터 전송 정보를 송신한 후 현재 데이터 부분이 송신되고 있음을 나타내는 데이터 플래그로 구성된 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 장치.
- 제 1항에 있어서, 상기 버퍼 장치는 프로세서로부터 전송 의뢰된 제어 메시지 또는 데이터 전송 정보를 저장하며, 4개의 버퍼로 구성되어 있는 메시지 버퍼와, 지역 버스 제어기에서 직접 메모리 접근 동작으로 지역 공유 메모리로부터 읽어온 데이터를 저장하는 데이터 버퍼로 구성된 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 장치.
- 메시지 송신 제어기의 리셋으로 초기화 상태가 되는 제 1 단계와, 상기 초기화 상태에서 메시지 제어 레지스터의 쓰기(W) 비트 설정에 따른 제어 동작을 수행하는 제 2 단계와, 상기 초기화 상태에서 메시지 제어 레지스터의 공백(E) 비트를 검사한 후 검사 결과에 따라 타이머를 인에이블시키는 제 3 단계와, 상기 타이머를 인에이블시킨 후 메시지 전송 정보 레지스터의 데이터 메시지(D) 비트를 검사하고 그 결과에 대라 지역버스 제어기에 데이터 읽기를 요구하고난 후 출력 포트 제어기에 패킷 전송을 요구하는 제 4 단계와, 상기 출력 포트 제어기에 패킷 전송을 요구한 후 타이머로부터 타임 아웃이 발생했는지를 검사하고 그 결과에 따라 수신 노드로부터 전송 응답이 도착했는지를 검사하는 제 5 단계와 상기 전송 응답이 도착했는지의 검사 결과에 따라 데이터 플래그를 검사하거나 데이터 전송 정보 수신 응답인지를 검사하는 제 6 단계와, 상기 데이터 전송 정보 수신 응답인지의 검사 결과에 따라 전송 인터럽트인에이블(IE) 비트를 검사하는 제 7 단계와, 상기 인에이블(IE) 비트의 검사 결과에 따라 프로세서에게 전송 인터럽트를 구동하도록 하는 제 8 단계와, 상기 프로세서에게 전송 인터럽트를 구동하도록 한 후 메시지 버퍼 제어 레지스터에 의한 원형 큐 동작을 시행하도록 하는 제 9 단계로 이루어진 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 제 1 단계는 공백(E) 비트를 제외한 메시지 제어 레지스터와 메시지 전송 정보 레지스터 및 데이터 플래그의 값이 0이 되도록 하고, 공백(E) 비트의 값을 1로 초기화 하도록 하는 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 제 2 단계는 상기 초기화 상태가 되고난 후 메시지 송신 제어기에서 쓰기(W) 비트를 검사하는 단계와, 상기 쓰기(W) 비트의 검사 결과에 따라 쓰기(W) 비트가 1이 아닐 경우 쓰기(W) 비트의 검사를 반복하는 단계와, 상기 쓰기(W) 비트의 검사 결과에 따라 쓰기(W) 비트가 1일 경우 꼬리 포인터(TP) 필드를 1 증가시키고, 쓰기(W) 비트를 0으로 지우고, 공백(E) 비트를 0으로 지운 후 메시지 송신 제어기의 쓰기(W) 비트의 검사를 반복 수행하는 단계로 이루어진 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 제 3 단계는 상기 공백(E) 비트의 검사 결과에 따라 공백(E) 비트가 0이 아닐 경우 공백(E) 비트의 검사를 반복하는 단계와, 상기 공백(E) 비트의 검사 결과에 따라 공백(E) 비트가 0일 경우 메시지 버퍼로부터 메시지 전송 정보를 읽어서 메시지 전송 정보 레지스터에 저장하고 타이머를 인에이블시키는 단계로 이루어진 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 제 4 단계는 상기 메시지 데이터(D) 비트의 검사 결과에 따라 메시지 데이터(D) 비트가 1일 경우 지역 버스 제어기에 데이터 읽기를 요구하는 단계와, 상기 지역 버스 제어기에 데이터 읽기를 요구하고 난 후 출력 포트 제어기에 패킷 전송을 요구하는 단계와, 상기 메시지 전송 정보 레지스터의 데이터 메시지(D) 비트 검사 결과에 따라 데이터 메시지(D) 비트가 1이 아닐 경우 출력 포트 제어기에 패킷 전송을 요구하는 단계로 이루어진 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 제 5 단계는 상기 타임아웃 발생의 검사 결과에 따라 타임아웃이 발생했을 경우 프로세서에서 타임아웃 인터럽트를 구동하고 읽기(R) 비트를 검사하는 단계로 천이하는 단계와 상기 타임아웃 발생의 검사 겨과에 따라 타임아웃이 발생하지 않았을 경우 수신 노드로부터 전송 응답이 도착했는지를 검사하는 단계로 이루어진 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 제6 단계는 상기 수신 노드로부터 전송 응답이 도착했는지의 검사 결과에 따라 전송 응답이 없을 경우 데이터 플래그를 검사하는 단계와 상기 데이터 플래그의 검사 결과에 따라 데이터 플래그가 1일 경우 출력 포트 제어기에 패킷 전송을 요구하는 단계로 복귀하는 단계와, 상기 데이터 플래그의 검사 결과에 따라 데이터 플래그가 0일 경우 타이머로부터 타임아웃이 발생했는지를 검사하는 단계로 복귀하는 단계와, 상기 수신 노드로부터 전손 응답이 도착했는지를 검사 결과에 따라 전송 응답이 있을 경우 데이터 전송 정보 수신 응답인지를 검사하는 단계로 이루어진 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 제 7 단계는 상기 데이터 전송 정보 수신 응답인지의 검사 결과에 따라 데어터 전송 정보 응답일 경우 데어터 플래그를 1로 설정하고 출력 포트 제어기에 패킷 전송을 요구하는 단계로 복귀하는 단계와, 상기 데이터 전송 정보 수신 응답인지의 검사 결과에 따라 데이터 전송 정보 수신 응답인지를 검사하는 단계와, 상기 메시지 수신 응답인지의 검사 결과에 따라 메시지 수신 응답인지의 검사 결과에 따라 메시지 수신 응답이 아닐 경우 출력 포트 제어기에 페킷 전송을 요구하는 단계로 복귀하는 단계와, 상기 메시지 수신 응답인지의 검사 결과에 따라 메시지 수신 응답일 경우 전송 인터럽트 인에이블(IE) 비트를 검사하는 단계로 이루어진 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 제 8 단계는 상기 전송 인터럽트 인에이블(IE) 비트의 검사 결과에 따라 전송 인터럽트 인에이블(IE) 비트가 1인 경우 데이터 플래그를 0으로 지우고 미리 포인터(HP) 필드를 1 증가시키며, 읽기(R) 비트를 0으로 지우고 자이머를 디스에이블시킨 후 타이머 인터럽트나 전송 인터럽트가 구동되어 있으면 철회하는 단계로 천이하는 단계와, 상기 검사 결과에 따라 전송 인에이블(IE) 비트가 1일 경우 프로세서에게 전송 인터럽트를 구동하도록 하는 단계로 이루어진 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 제 9 단계는 상기 프로세서에게 전송 인터럽트를 구동하도록 한 후 읽기(R) 비트를 검사하는 단계와, 상기 읽기(R) 비트의 검사 결과에 따라 읽기(R) 비트가 1이 아닐 경우 읽기(R) 비트 검사를 반복하는 단계와, 상기 읽기(R) 비트의 검사 결과에 따라 읽기(R) 비트가 1일 경우 데이터 플래그를 0으로 지우고 머리 포인터(HP) 필드를 1 증가시키며, 읽기(R) 비트를 0으로 지우고 타이머를 디스에이블시킨 후 타이머 인터럽트나 전송 인터럽트가 구동되어 있으면 철회하는 단계와 상기 절차를 수행한 후 머리 포인터(HP) 필드와 꼬리 포인터(TP)필드가 같은지 검사하는 단계와, 상기 검사 결과에 따라 머리 포인터(HP)필드와 꼬리 포인터(TP)필드가 같을 경우 공백(E)비트를 1로 설정하고 공백(E)비트기 0인지를 검사하는 단계로 복귀하는 단계와, 상기 검사 결과에 따라 머리 포인터(TP)필드와 꼬리 포인터 (TP)필드가 같지 않을 경우공백(E) 비트가 0인지를 검사하는 단계로 복귀하는 단계로 이루어진 것 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
- 제 4항에 있어서, 상기 9 단계는 프로세서에서 쓰기(W) 비트에 1을 쓸 경우 메시지 송신 제어기가 꼬리 포인터(TP) 필드를 1 증가시키고 쓰기(W) 비트와 공백(E) 비트를 0으로 지워 메시지 버퍼에 메시지를 순서적으로 채우는 단계와, 상기 프로세서에서 전송 인터럽트나 타임 아웃 인터럽트를 구동한 경우 프로세서가 읽기(R) 비트에 1을 쓰고난 다음에 머리 포인터(HP) 필드를 1 증가시키고 읽기(R) 비트를 0으로 지워 메시지 버퍼의 메시지를 순서적으로 송신하는 단계와, 하나의 메시지를 송신하고난 후, 상기 머리 포인터(HP) 필드와 꼬리 포인터(TP) 필드가 같은지를 검사하는 단계와, 상기 검사결과에 따라 머리 포인터(HP) 필드와 꼬리 포인터(TP) 필드가 같지 않을 경우 메시지 버퍼에 저장된 다음 메시지를 송신하기 위하여 상기 단계를 반복적으로 수행하는 단계와, 상기 검사 결과에 따라 머리 포인터(HP) 필드와 꼬리 포인터(TP) 필드가 같을 경우메시지 버퍼가 공백상태이므로 공백(E)비트를 1로 설정하는 단계로 이루어져 있는 것을 특징으로 하는 패킷 상호 연결망에서의 메시지 송신 제어 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960029904A KR0169248B1 (ko) | 1996-07-24 | 1996-07-24 | 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법 |
US08/899,552 US5910178A (en) | 1996-07-24 | 1997-07-24 | Method for controlling a message send in a packet-switched interconnection network |
US08/899,957 US6023732A (en) | 1996-07-24 | 1997-07-24 | Message transfer apparatus for controlling a message send in a packet switched interconnection network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960029904A KR0169248B1 (ko) | 1996-07-24 | 1996-07-24 | 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR980013147A true KR980013147A (ko) | 1998-04-30 |
KR0169248B1 KR0169248B1 (ko) | 1999-02-01 |
Family
ID=19467250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960029904A KR0169248B1 (ko) | 1996-07-24 | 1996-07-24 | 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법 |
Country Status (2)
Country | Link |
---|---|
US (2) | US6023732A (ko) |
KR (1) | KR0169248B1 (ko) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085248A (en) * | 1997-02-11 | 2000-07-04 | Xaqtu Corporation | Media access control transmitter and parallel network management system |
JPH11110315A (ja) * | 1997-07-31 | 1999-04-23 | Matsushita Electric Ind Co Ltd | 通信装置 |
US6145007A (en) * | 1997-11-14 | 2000-11-07 | Cirrus Logic, Inc. | Interprocessor communication circuitry and methods |
US6539450B1 (en) | 1998-11-29 | 2003-03-25 | Sony Corporation | Method and system for adjusting isochronous bandwidths on a bus |
US6374316B1 (en) | 1999-03-19 | 2002-04-16 | Sony Corporation | Method and system for circumscribing a topology to form ring structures |
US6584539B1 (en) | 1999-03-19 | 2003-06-24 | Sony Corporation | Method and system for message broadcast flow control on a bus bridge interconnect |
US6631415B1 (en) | 1999-03-19 | 2003-10-07 | Sony Corporation | Method and system for providing a communication connection using stream identifiers |
WO2000057289A1 (en) * | 1999-03-19 | 2000-09-28 | Sony Electronics, Inc. | A method and system for message broadcast flow control on a bus bridge interconnect |
US6810452B1 (en) | 1999-03-19 | 2004-10-26 | Sony Corporation | Method and system for quarantine during bus topology configuration |
US6625679B1 (en) * | 1999-04-19 | 2003-09-23 | Hewlett-Packard Company | Apparatus and method for converting interrupt transactions to interrupt signals to distribute interrupts to IA-32 processors |
US6502158B1 (en) | 1999-04-23 | 2002-12-31 | Sony Corporation | Method and system for address spaces |
US6360278B1 (en) * | 1999-05-27 | 2002-03-19 | 3Com Corporation | FIFO queued entry point circuit for a network interface card |
US6728821B1 (en) | 1999-11-29 | 2004-04-27 | Sony Corporation | Method and system for adjusting isochronous bandwidths on a bus |
US6751697B1 (en) * | 1999-11-29 | 2004-06-15 | Sony Corporation | Method and system for a multi-phase net refresh on a bus bridge interconnect |
US6647446B1 (en) | 2000-03-18 | 2003-11-11 | Sony Corporation | Method and system for using a new bus identifier resulting from a bus topology change |
US7020161B1 (en) | 2000-03-31 | 2006-03-28 | Sun Microsystems, Inc. | Prescheduling arbitrated resources |
US7065580B1 (en) | 2000-03-31 | 2006-06-20 | Sun Microsystems, Inc. | Method and apparatus for a pipelined network |
US7061929B1 (en) | 2000-03-31 | 2006-06-13 | Sun Microsystems, Inc. | Data network with independent transmission channels |
US6975626B1 (en) | 2000-03-31 | 2005-12-13 | Sun Microsystems, Inc. | Switched network for low latency communication |
US7006501B1 (en) | 2000-03-31 | 2006-02-28 | Sun Microsystems, Inc. | Distributed least choice first arbiter |
US6882649B1 (en) | 2000-03-31 | 2005-04-19 | Sun Microsystems, Inc. | Least choice first arbiter |
US7346910B1 (en) * | 2000-05-26 | 2008-03-18 | International Business Machines Incorporation | Administration of groups of computer programs, data processing systems, or system resources |
US6757773B1 (en) | 2000-06-30 | 2004-06-29 | Sony Corporation | System and method for determining support capability of a device coupled to a bus system |
SG146434A1 (en) * | 2000-11-29 | 2008-10-30 | British Telecomm | Transmitting and receiving real-time data |
US6988122B2 (en) | 2001-01-09 | 2006-01-17 | International Business Machines Corporation | Ferris-wheel queue |
US6868437B1 (en) * | 2001-05-18 | 2005-03-15 | Agilent Technologies, Inc. | System and method for interprocess communication of remote procedure call messages utilizing shared memory |
EP1428357A1 (en) * | 2001-09-21 | 2004-06-16 | British Telecommunications Public Limited Company | Data communications method and system using receiving buffer size to calculate transmission rate for congestion control |
EP1449331B1 (en) * | 2001-11-30 | 2007-09-19 | British Telecommunications Public Limited Company | Data transmission |
US7352741B2 (en) * | 2002-02-21 | 2008-04-01 | Sun Microsystems, Inc. | Method and apparatus for speculative arbitration |
US20030169731A1 (en) * | 2002-03-08 | 2003-09-11 | Wickeraad John Alan | Crossbar switch with data suspension |
EP1359722A1 (en) * | 2002-03-27 | 2003-11-05 | BRITISH TELECOMMUNICATIONS public limited company | Data streaming system and method |
ATE363809T1 (de) * | 2002-03-27 | 2007-06-15 | British Telecomm | Datenstruktur für ein datenübertragungssystem |
GB0306296D0 (en) * | 2003-03-19 | 2003-04-23 | British Telecomm | Data transmission |
WO2005053222A2 (en) * | 2003-11-25 | 2005-06-09 | International Business Machines Corporation | Mobile hub and managing events in a mobile hub |
KR101036080B1 (ko) * | 2003-12-15 | 2011-05-19 | 엘지전자 주식회사 | 인스턴스 메시지 서비스를 위한 패킷 전송 장치 및 방법 |
US20070248111A1 (en) * | 2006-04-24 | 2007-10-25 | Shaw Mark E | System and method for clearing information in a stalled output queue of a crossbar |
US8468416B2 (en) | 2007-06-26 | 2013-06-18 | International Business Machines Corporation | Combined group ECC protection and subgroup parity protection |
US8103832B2 (en) * | 2007-06-26 | 2012-01-24 | International Business Machines Corporation | Method and apparatus of prefetching streams of varying prefetch depth |
US7877551B2 (en) * | 2007-06-26 | 2011-01-25 | International Business Machines Corporation | Programmable partitioning for high-performance coherence domains in a multiprocessor system |
US8230433B2 (en) | 2007-06-26 | 2012-07-24 | International Business Machines Corporation | Shared performance monitor in a multiprocessor system |
US7886084B2 (en) | 2007-06-26 | 2011-02-08 | International Business Machines Corporation | Optimized collectives using a DMA on a parallel computer |
US7827391B2 (en) | 2007-06-26 | 2010-11-02 | International Business Machines Corporation | Method and apparatus for single-stepping coherence events in a multiprocessor system under software control |
US7984448B2 (en) * | 2007-06-26 | 2011-07-19 | International Business Machines Corporation | Mechanism to support generic collective communication across a variety of programming models |
US8140925B2 (en) | 2007-06-26 | 2012-03-20 | International Business Machines Corporation | Method and apparatus to debug an integrated circuit chip via synchronous clock stop and scan |
US8509255B2 (en) | 2007-06-26 | 2013-08-13 | International Business Machines Corporation | Hardware packet pacing using a DMA in a parallel computer |
US7793038B2 (en) | 2007-06-26 | 2010-09-07 | International Business Machines Corporation | System and method for programmable bank selection for banked memory subsystems |
US8756350B2 (en) | 2007-06-26 | 2014-06-17 | International Business Machines Corporation | Method and apparatus for efficiently tracking queue entries relative to a timestamp |
US8458282B2 (en) | 2007-06-26 | 2013-06-04 | International Business Machines Corporation | Extended write combining using a write continuation hint flag |
US7802025B2 (en) * | 2007-06-26 | 2010-09-21 | International Business Machines Corporation | DMA engine for repeating communication patterns |
US8108738B2 (en) | 2007-06-26 | 2012-01-31 | International Business Machines Corporation | Data eye monitor method and apparatus |
US8010875B2 (en) | 2007-06-26 | 2011-08-30 | International Business Machines Corporation | Error correcting code with chip kill capability and power saving enhancement |
US8032892B2 (en) * | 2007-06-26 | 2011-10-04 | International Business Machines Corporation | Message passing with a limited number of DMA byte counters |
US7917671B2 (en) * | 2007-12-18 | 2011-03-29 | Nvidia Corporation | Scalable port controller architecture supporting data streams of different speeds |
WO2010116399A1 (ja) * | 2009-03-30 | 2010-10-14 | 富士通株式会社 | データ転送制御装置、システムおよび方法 |
US8407376B2 (en) * | 2009-07-10 | 2013-03-26 | International Business Machines Corporation | Recording a communication pattern and replaying messages in a parallel computing system |
JP5395838B2 (ja) * | 2011-03-25 | 2014-01-22 | 株式会社東芝 | マルチコアシステム |
US9003369B2 (en) | 2011-08-31 | 2015-04-07 | Nvidia Corporation | HDMI-muxed debug port methods and apparatuses |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4672570A (en) * | 1986-09-05 | 1987-06-09 | The United States Of America As Represented By The Secretary Of The Air Force | Network interface module and method |
US5043938A (en) * | 1988-12-29 | 1991-08-27 | Intel Corporation | Node controller for a local area network |
US5261059A (en) * | 1990-06-29 | 1993-11-09 | Digital Equipment Corporation | Crossbar interface for data communication network |
JP3127523B2 (ja) * | 1991-10-31 | 2001-01-29 | 株式会社日立製作所 | 通信制御装置およびデータ送信方法 |
JPH06324998A (ja) * | 1993-05-14 | 1994-11-25 | Fujitsu Ltd | メッセージ受信方式 |
US5615340A (en) * | 1994-07-21 | 1997-03-25 | Allied Telesyn Int'l Corp. | Network interfacing apparatus and method using repeater and cascade interface with scrambling |
JPH08180006A (ja) * | 1994-12-22 | 1996-07-12 | Hitachi Ltd | ネットワークインタフェースおよび計算機ネットワークシステム |
US5771356A (en) * | 1995-01-04 | 1998-06-23 | Cirrus Logic, Inc. | Apparatus for controlling FIFO buffer data transfer by monitoring bus status and FIFO buffer thresholds |
EP0752664A3 (en) * | 1995-07-07 | 2006-04-05 | Sun Microsystems, Inc. | Method and apparatus for reporting data transfer between hardware and software |
US5751951A (en) * | 1995-10-30 | 1998-05-12 | Mitsubishi Electric Information Technology Center America, Inc. | Network interface |
KR0170500B1 (ko) * | 1995-11-18 | 1999-03-30 | 양승택 | 멀티프로세서 시스템 |
-
1996
- 1996-07-24 KR KR1019960029904A patent/KR0169248B1/ko not_active IP Right Cessation
-
1997
- 1997-07-24 US US08/899,957 patent/US6023732A/en not_active Expired - Lifetime
- 1997-07-24 US US08/899,552 patent/US5910178A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5910178A (en) | 1999-06-08 |
KR0169248B1 (ko) | 1999-02-01 |
US6023732A (en) | 2000-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR980013147A (ko) | 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법 | |
KR0170500B1 (ko) | 멀티프로세서 시스템 | |
JP5537919B2 (ja) | データ転送のためのシステムおよび方法 | |
US5020020A (en) | Computer interconnect system with transmit-abort function | |
US6778548B1 (en) | Device to receive, buffer, and transmit packets of data in a packet switching network | |
US5187780A (en) | Dual-path computer interconnect system with zone manager for packet memory | |
US6970921B1 (en) | Network interface supporting virtual paths for quality of service | |
US20140040527A1 (en) | Optimized multi-root input output virtualization aware switch | |
JPH0619785A (ja) | 分散共有仮想メモリーとその構成方法 | |
JPH07288535A (ja) | プロセッサ・チャネル及び交換機構の間に設けられたアダプタ装置 | |
CA2011935A1 (en) | Dual-path computer interconnect system with four-ported packet memory control | |
JPH07281976A (ja) | パケットfifoを管理する方法 | |
JPH07282025A (ja) | クロック回路 | |
US6982976B2 (en) | Datapipe routing bridge | |
JP2507230B2 (ja) | インタ―フェ―ス装置および方法並びに通信アダプタ | |
US6856619B1 (en) | Computer network controller | |
USRE39026E1 (en) | Bus protocol | |
GB2377138A (en) | Ring Bus Structure For System On Chip Integrated Circuits | |
RU175049U1 (ru) | УСТРОЙСТВО КОММУНИКАЦИОННЫХ ИНТЕРФЕЙСОВ SpaceWire | |
KR0154489B1 (ko) | 비동기 전송모드방식의 스위칭시스템에 있어서 프로세서간 통신 메세지 송수신처리장치 및 방법 | |
JP2778520B2 (ja) | マルチキャスト方法及び交換スイッチ | |
KR100205055B1 (ko) | 송신 연결망 인터페이스에서의 긴급 메시지 송신 제어 방법 | |
JPS6298444A (ja) | デ−タ通信方式 | |
JP4253264B2 (ja) | クロスバスイッチ及びネットワーク転送装置 | |
KR0176078B1 (ko) | 전송 응답 회신 제어기 및 그 제어 방법 |
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: 20121002 Year of fee payment: 15 |
|
FPAY | Annual fee payment |
Payment date: 20130926 Year of fee payment: 16 |
|
LAPS | Lapse due to unpaid annual fee |