KR0171038B1 - Software emulation method of cross bar network router of high speed parallel computer - Google Patents
Software emulation method of cross bar network router of high speed parallel computer Download PDFInfo
- Publication number
- KR0171038B1 KR0171038B1 KR1019960014065A KR19960014065A KR0171038B1 KR 0171038 B1 KR0171038 B1 KR 0171038B1 KR 1019960014065 A KR1019960014065 A KR 1019960014065A KR 19960014065 A KR19960014065 A KR 19960014065A KR 0171038 B1 KR0171038 B1 KR 0171038B1
- Authority
- KR
- South Korea
- Prior art keywords
- message
- crossbar network
- received
- kernel
- mrb
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- 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/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
- H04L2012/6445—Admission control
- H04L2012/6448—Medium Access Control [MAC]
- H04L2012/6454—Random, e.g. Ethernet
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 고속 병렬 컴퓨터에서 크로스바 네트웍 라우터의 수신부에 대한 소프트웨어 에뮬레이션 방법에 관한 것으로서, 종래의 크로스바 네트웍(Xcent-Net)에 대한 메시지 수신 커널은 크로스바 네트웍 라우터 보드가 있는 시스템에서만 사용가능하였던 문제점을 해결하기 위해, 본 발명은 제1쓰레드에 의해서 이더넷으로 부터 수신된 이더넷 메시지를 크로스바 네트웍 라우터 보드 메시지로 변환 및 빈 버퍼에 저장 후 메시지 수신을 통보하는 제1과정과, 이 제1과정으로 부터 통보된 메시지를 제2쓰레드에 의해 커널 수신부에 알린 후, 이 커널 수신부에서 메시지 수신을 완료하면 해당 버퍼의 메시지들을 제거하는 제2과정을 수행함으로써, 크로스바 네트웍 라우터 보드가 없는 이더넷으로 연결된 시스템에서도 크로스바 네트웍에 대한 메시지 수신 커널을 사용할 수 있도록 한 것이다.The present invention relates to a software emulation method for a receiver of a crossbar network router in a high speed parallel computer, and solves a problem in which a message receiving kernel for a conventional crossbar network (Xcent-Net) was available only in a system having a crossbar network router board. To this end, the present invention provides a first process of converting an Ethernet message received from Ethernet by a first thread into a crossbar network router board message and storing the message in an empty buffer and then notifying the reception of the message. After the message is notified to the kernel receiver by the second thread, the kernel receiver performs the second process of removing the messages in the buffer when the kernel receiver finishes receiving the message. Therefore, even in an Ethernet-connected system without a crossbar network router board, the crossbar network is connected to the kernel receiver. Receive messages about It is the one to use.
Description
제1도는 고속 병렬 컴퓨터 구조도.1 is a high-speed parallel computer architecture.
제2도는 본 발명을 구현하는데 이용되는 시스템 구조도.2 is a system architecture diagram used to implement the present invention.
제3도는 크로스바 네트웍 라우터 보드인 크로스바 네트웍 인터페이스(Xcent-Net InterFace)의 구조도.3 is a structural diagram of a crossbar network interface (Xcent-Net InterFace) that is a crossbar network router board.
제4도는 본 발명의 구조도.4 is a structural diagram of the present invention.
제5도는 본 발명에 따라 수신된 메시지를 처리하는 흐름도.5 is a flow chart of processing a received message in accordance with the present invention.
제6도는 본 발명에 따라 제5도에서 처리된 메시지를 관리하는 흐름도.6 is a flow chart for managing messages processed in FIG. 5 in accordance with the present invention.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
1 : 크로스바 네트웍(Xcent-Net) 2 : 노드(Node)1: Crossbar network (Xcent-Net) 2: Node
3 : 처리기 4 : 지역 메모리3: handler 4: local memory
5 : 크로스바 네트웍 라우터 보드(XNIF) 6 : 이더넷(Ethernet)5: Crossbar Network Router Board (XNIF) 6: Ethernet
7 : 이더넷 보드7: Ethernet board
8 : 크로스바 네트웍 라우터 보드(XNIF) 에뮬레이터8: Crossbar Network Router Board (XNIF) Emulator
9 : PCI(Peripheral Component Interconnect) 버스9: PCI (Peripheral Component Interconnect) bus
10 : 송신부(SNI : Send Network Interface)10: Sender (SNI: Send Network Interface)
11 : 수신부(RNI : Receive Network Interface)11: Receive Network Interface (RNI)
12 : 패킷 수신기 13 : 메시지 수신기12: packet receiver 13: message receiver
14 : 메시지 수신 버퍼(또는 MRB)14: Message Receive Buffer (or MRB)
15 : 메시지 수신 버퍼 제어 레지스터(또는 MRR)15: Message Receive Buffer Control Register (or MRR)
16 : 임시 데이타 버퍼(또는 TDB)16: temporary data buffer (or TDB)
17 : 임시 데이타 버퍼(TDB) 어드레스 레지스터(또는 TAR)17: Temporary Data Buffer (TDB) Address Register (or TAR)
18 : 임시 데이타 버퍼(TDB) 플래그 레지스터(또는 TFR)18: Temporary Data Buffer (TDB) Flag Register (or TFR)
19,31a : 크로스바 네트웍 라우터 보드 헤드(Xnifhead) 메시지19,31a: Crossbar Network Router Board Head (Xnifhead) Messages
20,31b : 크로스바 네트웍 라우터 보드 바디(Xnifhead) 메시지20,31b: Crossbar network router board body (Xnifhead) messages
21 : MRB 자료구조 22 : MRR 자료구조21: MRB data structure 22: MRR data structure
23 : TDB 자료구조 24 : TFR 자료구조23: TDB data structure 24: TFR data structure
25 : TAR 자료구조 26 : 제1쓰레드25: TAR data structure 26: 1st thread
27 : 이더넷 메시지 28 : 제2쓰레드27: Ethernet message 28: Second thread
31 : 크로스바 네트웍 라우터 보드(XNIF) 메시지31: Crossbar Network Router Board (XNIF) Messages
본 발명은 고속병렬컴퓨터에서 크로스바 네트웍 라우터의 수신부에 대한 소프트웨어 에뮬레이션 방법에 관한 것으로서, 특히 마이크로 커널(Micro Kernel)레벨에서 고속병렬컴퓨터의 내부 네트웍인 Xcent-Net(10×10 크로스바 네트웍을 의미) 크로스바 네트웍의 라우터(router) 보드에서 수신부 기능을 소프트웨어로 에뮬레이션하는 방법에 관한 것이다. 이러한 크로스바 네트웍 라우터 보드의 수신부는 크로스바 네트웍으로 부터 수신되는 메시지를 처리기로 전달하는 네트웍 인터페이스인 하드웨어 부분이다.The present invention relates to a software emulation method for a receiver of a crossbar network router in a high-speed parallel computer. In particular, Xcent-Net (meaning a 10 × 10 crossbar network) crossbar, which is an internal network of a high-speed parallel computer at the microkernel level, is used. It is a method for emulating the receiver function in software on a router board of a network. The receiver of such a crossbar network router board is a hardware part that is a network interface that delivers a message received from the crossbar network to a processor.
고속병렬컴퓨터는 처리기(processor) 및 메모리동으로 구성되어 노드(node)들이 크로스바 네트웍으로 연결되는 구조를 갖는다. 따라서, 각 노드에는 크로스바 네트웍을 사용하기 위해서 크로스바 네트웍 인터페이스 보드를 하나씩 장착하고 있다. 각 노드에서 원격 노드로 전송되는 메시지는 이 보드를 거쳐서 전송된다. 크로스바 네트웍 인터페이스를 이용하여 메시지를 전송할 수 있는 소프트웨어는 커널(kernel)이다.A high-speed parallel computer is composed of a processor and a memory building, in which nodes are connected to a crossbar network. Therefore, each node is equipped with one crossbar network interface board in order to use the crossbar network. Messages from each node to remote nodes are sent across this board. The software that can send messages using the crossbar network interface is the kernel.
고속병렬컴퓨터의 하드웨어 개발 완료전 크로스바 네트웍에 대한 메시지 전송기능을 갖는 커널을 사용하기 위해서는 크로스바 네트웍 인터페이스 에뮬레이션 방법을 필요로 한다. 그리고 에뮬레이션 환경은 두 대의 시스템이 이더넷(Ethernet)으로 연결된 구조를 갖도록 한다. 또한, 에뮬레이션 환경은 각 시스템의 커널에 크로스바 네트웍 인터페이스 에뮬레이터를 두어 이더넷으로 가상적인 크로스바 네트웍 환경으로 만든다.The crossbar network interface emulation method is required to use a kernel that has a message transfer function for the crossbar network before the hardware development of the high speed parallel computer is completed. And the emulation environment allows two systems to be connected by Ethernet. In addition, the emulation environment places a crossbar network interface emulator in the kernel of each system to create a virtual crossbar network environment over Ethernet.
종래의 크로스바 네트웍에 대한 메시지 수신 커널은 크로스바 네트웍 인터페이스 보드가 있는 시스템에서만 사용가능한 소프트웨어이다. 그러나 본 발명에서 개발한 소프트웨어 에뮬레이션 방법을 사용하면, 크로스바 네트웍 인터페이스 보드가 없는 이더넷으로 연결된 시스템에서도 크로스바 네트웍에 대한 메시지 수신 커널을 사용할 수도 있다.The message receiving kernel for a conventional crossbar network is software available only on systems with a crossbar network interface board. However, using the software emulation method developed in the present invention, a message receiving kernel for a crossbar network may be used even in an Ethernet connected system without a crossbar network interface board.
따라서 본 발명은 크로스바 네트웍 인터페이스 보드가 없는 시스템에서도 기존의 메시지 수신 커널을 사용할 수 있도록 크로스바 네트웍 인터페이스 보드의 기능들을 소프트웨어로 에뮬레이션하기 위한 고속 병렬 컴퓨터에서 크로스바 네트웍 라우터의 수신부에 대한 소프트웨어 에뮬레이션 방법을 제공하는데 그 목적이 있다.Accordingly, the present invention provides a software emulation method for a receiver of a crossbar network router in a high speed parallel computer for emulating the functions of the crossbar network interface board in software so that the existing message receiving kernel can be used even in a system without the crossbar network interface board. The purpose is.
상기 목적을 달성하기 위한 본 발명의 특징은, 고속병렬컴퓨터내 크로스바 네트웍 라우터 보드를 포함하는 노드들간에 크로스바 네트웍을 통해 메시지를 수신하는 커널을 사용하기 위해 상기 커널에 크로스바 네트웍 라우터 보드 에뮬레이터를 두고, 상기 에뮬레이터의 수신부 내부가 수신된 메시지를 저장하여 커널 수신부에서 메시지를 받을 때까지 관리하는 메시지 수신 버퍼(MRB), 이 메시지 수신 버퍼(MRB)를 제어하고 커널 수신부에서 메시지를 수신하면 메시지 제거를 요청하기 위한 메시지 수신 버퍼 제어 레지스터(MRR), 그리고 수신된 대량의 메시지를 일시 저장하는 임시 데이타 버퍼(TDB)를 포함하되, 상기 MRB, MRR, TDB가 이더넷 메시지를 수신하는 제1쓰레드 및 수신된 메시지를 처리하는 제2쓰레드에 의해 메시지를 수신하는 기능을 에뮬레이션하는 방법에 있어서, 상기 제1쓰레드에 의해서 이더넷으로 부터 수신된 이더넷 메시지를 크로스바 네트웍 라우터 보드 메시지로 변환 및 빈 버퍼에 저장 후 메시지 수신을 통보하는 제1과정과, 상기 제1과정으로 부터 통보된 메시지를 제2쓰레드에 의해 커널 수신부에 알린 후, 이 커널 수신부에서 메시지 수신을 완료하면 해당 버퍼의 메시지들을 제거하는 제2과정으로 이루어져, 크로스바 네트웍 라우터 보드가 없는 이더넷으로 연결된 시스템에서도 크로스바 네트웍에 대한 메시지 수신 커널을 사용할 수 있도록 하는 특징이 있다.A feature of the present invention for achieving the above object is to include a crossbar network router board emulator in the kernel to use a kernel for receiving messages across the crossbar network between nodes including a crossbar network router board in a high speed parallel computer, A message reception buffer (MRB) that stores the received message inside the emulator and manages it until the message is received by the kernel receiver, controls the message reception buffer (MRB), and requests the message to be removed when the kernel receiver receives the message. A message reception buffer control register (MRR), and a temporary data buffer (TDB) for temporarily storing a large amount of received messages, wherein the MRB, MRR, and TDB receive a first thread and a received message. Emulate the ability to receive messages by a second thread that handles A method comprising: converting an Ethernet message received from the Ethernet by the first thread into a crossbar network router board message and storing it in an empty buffer and then notifying the reception of the message; and a message notified from the first process. After the kernel thread is informed to the kernel receiver by the second thread, when the kernel receiver completes receiving the message, the second process removes the messages in the corresponding buffer, and the message about the crossbar network is used even in an Ethernet-connected system without the crossbar network router board. There is a feature that allows the receiving kernel to be used.
상기 제1과정과 상기 제2과정은 메시지 수신과 메시지 관리를 동시에 처리할 수 있도록 병렬로 수행된다.The first process and the second process are performed in parallel to simultaneously process message reception and message management.
상기 제1과정은 수신된 이더넷 메시지를 크로스바 네트웍 라우터 보드 메시지로 변환한 후, 저장하기 위한 상기 MRB의 빈 버퍼가 있는가를 조사하는 제1단계와, 상기 제1단계의 조사에 의해 상기 MRB의 빈 버퍼가 있다면 상기 수신된 이더넷 메시지의 데이타 부분 및 나머지 수신정보를 각각 상기 TDB 및 상기 MRB에 저장하는 제2단계와, 상기 제2단계에서 상기 MRB에 저장된 메시지가 첫번째 버퍼의 메시지일 경우 그 메시지 수신을 통보하는 제3단계를 포함하는 특징이 있다.The first process includes converting a received Ethernet message into a crossbar network router board message, and then checking whether there is an empty buffer of the MRB for storage, and checking the empty buffer of the MRB by examining the first step. If there is a second step of storing the data portion and the remaining received information of the received Ethernet message in the TDB and the MRB, respectively, and if the message stored in the MRB in the second step is a message of the first buffer, the message reception There is a feature that includes a third step of notification.
상기 제2과정은, 상기 제1과정으로 부터의 메시지 수신통보를 기다리는 제1단계와, 상기 제1단계에서 메시지 수신통보가 메시지 수신 요청일 경우 상기 커널 수신부가 메시지를 읽어가도록 메시지 수신 인터럽트를 발생하는 제2단계와, 상기 제1단계에서 메시지 수신통보가 상기 커널 수신부에 의한 메시지 제거 요청일 경우 상기 MRB에서 메시지를 제거하고, 메시지 제거후 상기 MRB에 메시지가 존재할 경우 메시지 수신 인터럽트를 발생하는 제3단계를 포함하는 특징이 있다. 상기 메시지 제거 요청은 커널 수신부가 메시지 수신 인터럽트를 받은 후에 발생한다.The second process may include: a first step of waiting for a message reception notification from the first process; and generating a message reception interrupt so that the kernel reception unit reads a message when the message reception notification is a message reception request in the first step; In the second step, and in the first step, when the message reception notification is a message removal request by the kernel receiver, removing the message from the MRB, and generating a message reception interrupt when the message exists in the MRB after removing the message. Features include three steps. The message removal request is generated after the kernel receiver receives the message reception interrupt.
즉, 본 발명의 방법은 크로스바 네트웍 인터페이스 수신부 구조 및 기능 분석과 에뮬레이터 구조를 설계한 후, 그 설계를 기반으로 하여 에뮬레이션을 하는 방법이다.In other words, the method of the present invention is a method of emulating the crossbar network interface receiving unit structure and function analysis and the emulator structure and then based on the design.
이하, 본 발명을 첨부된 도면에 의거하여 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
제1도는 고속병렬컴퓨터의 구조도이다. 고속병렬컴퓨터는 여러 노드들이 크로스바 네트웍(Xcent-Net, 1)에 연결되어 구성된다. 각 노드(2)는 네개의 처리기(3)와 지역 메모리(4), 크로스바 네트웍의 라우터 보드(5)인 크로스바 네트웍 인터페이스(XNIF; Xcent-Net InterFace)로 구성된다. 각 노드(2)에는 같은 커널 소프트웨어가 탑재되어 수행되며, 노드간 통신은 커널의 통신부분인 크로스바 네트웍 라우터 보드(5)를 이용하여 이루어진다.1 is a structural diagram of a high-speed parallel computer. A high-speed parallel computer consists of several nodes connected to a crossbar network (Xcent-Net, 1). Each node 2 consists of four processors 3, a local memory 4, and a crossbar network interface (XNIF; Xcent-Net InterFace), which is a router board 5 of the crossbar network. Each node 2 is equipped with the same kernel software, and the inter-node communication is performed using the crossbar network router board 5, which is a communication part of the kernel.
제2도는 본 발명이 적용되는 시스템 구조도이다. 두 개의 노드(2)는 이더넷(Ethernet, 6)으로 연결되고, 각 노드에는 처리기(3), 지역 메모리(3), 이더넷 보드(7)로 구성된다. 상기 제1도와는 달리 두 노드(2)를 연결하는 네트웍이 이더넷(6)이므로, 이더넷 보드(7)를 사용해야 한다. 그리고 지역 메모리(4)에는 각 노드의 커널과 본 발명인 크로스바 네트웍 라우터 보드 에뮬레이터(8)가 커널에 포함되어 존재한다. 따라서, 커널 통신 부분은 크로스바 네트웍 라우터 보드 에뮬레이터(8)를 사용하면 가상적인 크로스바 네트웍 통신을 할 수 있다.2 is a system structural diagram to which the present invention is applied. Two nodes 2 are connected by Ethernet 6, and each node is composed of a processor 3, a local memory 3, and an Ethernet board 7. Unlike the first diagram, since the network connecting the two nodes 2 is Ethernet 6, an Ethernet board 7 must be used. In the local memory 4, the kernel of each node and the crossbar network router board emulator 8 of the present invention are included in the kernel. Therefore, the kernel communication portion can perform virtual crossbar network communication using the crossbar network router board emulator 8.
제3도는 제1도의 크로스바 네트웍 라우터 보드의 구조도이다. 크로스바 네트웍 라우터 보드(XNIF)는 제1도의 처리기(3)와는 PCI(Peripheral Component Interconnect) 버스(9)로 연결되며, 크게 두 가지 부분으로 송신부인 SNI(Send Network Interface)(10)와 수신부인 RNI(Receive Network Interface)(11)로 나누어 진다.3 is a structural diagram of a crossbar network router board of FIG. The crossbar network router board (XNIF) is connected to the processor 3 of FIG. 1 through a Peripheral Component Interconnect (PCI) bus (9). The crossbar network router board (XNIF) is divided into two parts, a send network interface (SNI) 10 and a receiver RNI. (Receive Network Interface) (11).
본 발명에서는 크로스바 네트웍 라우터 보드의 수신부(11)에 대한 에뮬레이션 방법이므로 수신부(RNI) 기능에 대해서만 기술한다.In the present invention, since the emulation method for the receiver 11 of the crossbar network router board, only the receiver (RNI) function will be described.
패킷 수신기(12)는 크로스바 네트웍(1)의 전송 프로토콜에 맞춰 데이타를 수신하고 에러 검사를 한다.The packet receiver 12 receives data and checks for errors in accordance with the transmission protocol of the crossbar network 1.
메시지 수신기(13)는 상기 패킷 수신기(12)로 부터 받은 데이타를 후술할 수신부 내부 버퍼 또는 지역 메모리에 저장하고 관리하는 기능을 갖는다.The message receiver 13 has a function of storing and managing data received from the packet receiver 12 in a receiver internal buffer or a local memory to be described later.
그리고 미세지 수신 버퍼(Message Receive Buffer, 이하, MRB, 14)는 64Byte 크기의 버퍼 4개가 각각 4쌍으로 존재하는 버퍼로 수신된 소량의 메시지를 저장하여 커널 수신부에서 메시지를 받기까지 관리하는 곳이다.In addition, the Message Receive Buffer (MRB, 14) is a buffer where four buffers of 64 bytes each are stored in four pairs, and stores a small amount of messages received from the kernel receiver until they receive messages. .
메시지 수신 버퍼 제어 레지스터(MRB control Register, 이하, MRR, 15)는 상기 MRB(14)를 제어하기 위해서 필요한 레지스터로서, 커널 수신부에서 메시지를 수신하면, 이 레지스터를 통해서 메시지 제거를 요청하는데 사용된다.The message reception buffer control register (MRB control register, hereinafter referred to as MRR, 15) is a register required to control the MRB 14, and is used to request message removal through this register when a message is received at the kernel receiver.
임시 데이타 버퍼(Temporary Data Buffer, 이하, TDB, 16)는 수신된 대량의 메시지를 잠시 저장하는 곳으로서, 지역 메모리(4)에 할당한다. 그리고 TDB(16)의 시작 주소는 수신부(11)의 임시 데이타 버퍼 어드레스 레지스터(TDB Address Register, 이하, TAR, 17)에 있다. 이 주소는 시스템 초기화시 설정된다. 또한, TDB(16)의 상태는 수신부(11)의 임시 데이타 버퍼 플래그 레지스터(TDB Flag Register, 이하, TFR, 18)에서 관리한다.The Temporary Data Buffer (TDB) 16 is a place for temporarily storing a large amount of received messages, and is allocated to the local memory 4. The start address of the TDB 16 is located in a temporary data buffer address register (hereinafter, referred to as TAR, 17) of the receiving unit 11. This address is set at system initialization. In addition, the state of the TDB 16 is managed by a temporary data buffer flag register (hereinafter referred to as TFR, 18) of the receiving unit 11.
제4도는 제2도의 크로스바 네트웍 라우터 보드(XNIF) 에뮬레이터(8)의 수신부 하드웨어 동작을 소프트웨어로 에뮬레이션한 구조도이다. 상기 에뮬레이터의 송신부(10)에서는 가상적인 크로스 네트웍에 대한 전송을 하므로, 제2도의 시스템 구조에서 실제로 수신되는 이더넷(Ethernet) 메시지(27)에는 크로스바 네트웍에 대한 전송 방식, 수신 노드, 메시지 길이, 송신노드 정보를 갖는 크로스바 네트웍 라우터 보드 헤드(Xnifhead)(19)와 실질적인 메시지인 크로스바 네트웍 라우터 보드 바디(Xnifbody)(20)로 구성되어 이더넷(6)으로 부터 수신된다. 그리고 제3도의 MRB(14), MRR(15), TDB(16), TAR(17), TFR(18)의 하드웨어 자원에 대한 자료구조들(21, 22, 23, 24, 25) 각각 할당한다.4 is a structural diagram of software emulation of the receiver hardware operation of the crossbar network router board (XNIF) emulator 8 of FIG. Since the transmitting unit 10 of the emulator transmits a virtual cross network, the Ethernet message 27 actually received in the system structure of FIG. 2 includes a transmission scheme, a receiving node, a message length, and a transmission for the crossbar network. A crossbar network router board head (Xnifhead) 19 having node information and a crossbar network router board body (Xnifbody) 20, which is a substantial message, are received from the Ethernet 6. And allocate data structures 21, 22, 23, 24, and 25 for hardware resources of the MRB 14, MRR 15, TDB 16, TAR 17, and TFR 18 of FIG. .
수신부(11) 하드웨어를 동작시키는 회로에 해당되는 프로그램은 하드웨어 동작 특성을 고려하여 쓰레드(Thread)로 구현한다.The program corresponding to the circuit for operating the hardware of the receiver 11 is implemented as a thread in consideration of hardware operating characteristics.
상기 쓰레드는 프로세스나 태스크 보다 더 작은 단위로 다중 프로그래밍 시스템에서 CPU에게 보내어져 실행되는 프로그램 단위를 일컫는다. 이에따라 본 발명에서는 제1쓰레드와 제2쓰레드를 이용한 것으로서, 그 기능은 다음과 같다.The thread refers to a program unit that is sent to a CPU and executed in a multiple programming system in smaller units than a process or task. Accordingly, in the present invention, the first thread and the second thread are used, and their functions are as follows.
제1쓰레드(26)는 이더넷(6)으로 부터 수신된 이더넷 메시지(27)를 크로스바 네트웍 라우터 보드 헤드(Xnifhead)(19)와 크로스바 네트웍 라우터 보드 바디(Xnifbody)(20)의 메시지로 변환한다. 그리고 변환된 내용을 저장하기 위해 MRB(21)와 TDB(23)의 빈 버퍼를 찾고, 빈 버퍼에 각각을 저장한다. 저장이 완료되면, 제1쓰레드(26)는 제2쓰레드(28)에게 메시지 수신을 통보(29)한다.The first thread 26 converts the Ethernet message 27 received from the Ethernet 6 into a message of the crossbar network router board head (Xnifhead) 19 and the crossbar network router board body (Xnifbody) 20. In order to store the converted contents, an empty buffer of the MRB 21 and the TDB 23 is found, and each is stored in the empty buffer. When the storage is completed, the first thread 26 notifies the second thread 28 of receiving the message 29.
제2쓰레드(28)는 수신된 메시지를 커널 수신부(11)에 알려서, 커널에서 메시지 수신(30)을 완료하면 해당 버퍼의 내용들을 제거한다. 제거 후, 다른 메시지가 존재하면 이 동작을 반복수행한다.The second thread 28 informs the kernel receiving unit 11 of the received message, and when the message receiving 30 is completed in the kernel, the second thread 28 removes the contents of the corresponding buffer. After removal, repeat this operation if other messages exist.
제1쓰레드(26)와 제2쓰레드(28)의 병렬 수행으로 메시지 수신과 메시지 관리등을 동시에 처리할 수 있는 구조를 갖는다.The parallel execution of the first thread 26 and the second thread 28 has a structure capable of simultaneously processing the message reception and message management.
제5도는 제4도의 제1쓰레드(26) 기능에 대한 흐름도이다. 제1쓰레드(26)는 이더넷(6)으로 부터 이더넷 메시지(27)가 수신되면(S1)수행을 시작한다. 본 발명이 제2도의 시스템 구조에서 수행되므로, 수신된 이더넷 메시지(27)는 크로스바 네트웍 라우터 보드 에뮬레이터(8)의 수신부(11)가 인식할 수 있는 크로스바 네트웍 라우터 보드 헤드(19)와 크로스바 네트웍 라우터 보드 바디(20)로 구성되는 크로스바 네트웍 라우터 보드 메시지로 변환(S2)한다. 이 변환된 메시지를 저장하기 위해서는 버퍼를 선정한다. 먼저, 네개의 버퍼가 4쌍으로 구성된 MRB(14)에서 빈 버퍼를 선정(S3)한다. 그리고 상기 MRB(14)에 빈 버퍼가 있는지(Full)를 조사(S4)하여, 빈 버퍼가 없다면 MRB에 빈 버퍼가 생길 때까지 수행을 보류(대기)한다(S5). 그러나 상기 MRB(14)에 빈 버퍼가 있을 경우, 즉 MRB에서 버퍼를 구할 경우 수신된 메시지가 데이타 메시지인가를 조사(S6)한다. 왜냐하면, 데이타 메시지는 큰 메시지를 동반하기 때문에 TDB(16)를 할당받기 위한 것이다. 상기 수신 메시지가 데이타 메시지일 경우, TDB에서 빈 버퍼를 선정(S7)한다. 이때 TDB에 빈 버퍼가 있는지를 조사(S8)하여, 빈 버퍼가 없으면 TDB에 빈 버퍼가 생길 때까지 역시 수행을 보류(대기)한다(S9). 그러나 TDB에 빈 버퍼가 있을 경우, 즉 버퍼를 구하면, 수신된 이더넷 메시지중 데이타 부분인 크로스바 네트웍 라우터 보드 바디(Xnifbody, 20) 메시지 부분을 선정된 TDB에 저장(기록)한다(S10). 그리고 나머지 송신부에서 송신된 수신 정보를 포함하는 크로스바 네트웍 라우터 보드 헤드(Xnifhead, 19) 부분은 이미 선정된 MRB(14)에 저장(S11)한다. 그리고 이 선정된 MRB(14)의 메시지가 해당 MRB(14)에서 첫번째 버퍼의 메시지인가를 판단하여(S12), 첫번째 버퍼의 메시지이면, 즉 바로 메시지를 커널 수신부에 전달 가능하면, 메시지 수신을 제2쓰레드(28)에게 통보(S13)한다.5 is a flowchart of the function of the first thread 26 of FIG. The first thread 26 starts performing when the Ethernet message 27 is received from the Ethernet 6 (S1). Since the present invention is carried out in the system structure of FIG. 2, the received Ethernet message 27 is received by the crossbar network router board head 19 and the crossbar network router which can be recognized by the receiving unit 11 of the crossbar network router board emulator 8. A crossbar network router board message composed of the board body 20 is converted (S2). A buffer is selected to store this converted message. First, an empty buffer is selected in the MRB 14 having four pairs of buffers (S3). The MRB 14 checks whether there is an empty buffer (Full) (S4), and if there is no empty buffer, execution is suspended (standby) until an empty buffer exists in the MRB (S5). However, if there is an empty buffer in the MRB 14, i.e., if a buffer is obtained from the MRB, it is checked whether the received message is a data message (S6). Because data messages are accompanied by large messages, they are intended to be assigned the TDB 16. If the received message is a data message, the TDB selects an empty buffer (S7). At this time, the TDB checks whether there is an empty buffer (S8), and if there is no empty buffer, execution is also suspended (waited) until an empty buffer is created in the TDB (S9). However, if there is an empty buffer in the TDB, that is, a buffer is obtained, the crossbar network router board body (Xnifbody, 20) message portion, which is a data portion of the received Ethernet message, is stored (recorded) in the selected TDB (S10). The crossbar network router board head (Xnifhead) 19 including the reception information transmitted from the remaining transmitter is stored in the already selected MRB 14 (S11). It is determined whether the message of the selected MRB 14 is the message of the first buffer in the corresponding MRB 14 (S12). If the message is the first buffer, that is, the message can be immediately transmitted to the kernel receiver, the message reception is canceled. The two threads 28 are notified (S13).
제6도는 상기 제4도의 제2쓰레드(28)의 기능에 대한 흐름도이다. 제2쓰레드(28)는 커널 초기화시 생성되어 대기상태로 존재하다가, 제1쓰레드(26)에서 메시지 수신통보(29)나 커널 수신부에서 메시지 읽기(30)를 완료하면 수행을 재기한다. 따라서 초기화시 메시지 수신 및 메시지 제거요청을 기다리며 수행을 보류한다(S14). 이와같이 대기중에 상기 메시지 수신 및 메시지 제거 요청이 수신되는지를 계속하여 검색한다(S15). 이 검색에 의해 제1쓰레드(26)로 부터 메시지 수신 요청이 발생되면, 제2쓰레드(28)는 커널 수신부가 그 메시지를 읽어가도록 메시지 수신 인터럽트를 발생한다(S16). 그렇지 않고, 상기 검색(S15)에 의해 커널 수신부로 부터 메시지 제거요청이 발생되면, 그 메시지의 종류가 데이타 메시지인가를 조사한다(S17). 이러한 메시지 제거요청은 반드시 커널 수신부가 메시지 수신 인터럽트를 받은 후에 발생한다. 상기 메시지의 종류가 데이타 메시지일 경우, 이미 제1쓰레드(26)에서 TDB(23)를 사용했기 때문에 TDB에서 메시지를 제거하고(S18), 반환한다(S19). 그리고 TDB(23)를 사용하기 위해 기다리는 쓰레드가 있으면 사용 요청을 처리한다(S20). 이와같이 처리되고(S20), 상기 메시지의 종류가 데이타 메시지가 아닐 경우(S17), 어떠한 메시지의 종류이더라도 크로스바 네트웍의 전송 정보를 갖는 크로스바 네트웍 라우터 보드 헤드(Xnifhead)(31a)가 존재한다. 그러므로, 제2쓰레드(28)는 상기 MRB(14)에서 메시지를 제거(S21)해야 하고, MRR(15)에서 메시지 제거요청을 클리어한다(S22). 왜냐하면, 커널 수신부는 메시지 제거 요청시 MRR(15)에 제거요청을 기록하기 때문이다. 메시지 제거후, 해당 MRB(14)에 메시지가 존재하는지를 조사한다(S23). 이 조사(S23)에 의해 메시지가 존재하지 않으면, 다른 요청 처리를 하기 위해 상기 대기상태(S14)로 전이한다. 그러나 메시지가 있으면, 메시지를 상위 방향으로 한 단계씩 이동(S24)시켜, 메시지 수신 인터럽트를 발생시키고(S25), 대기상태(S14)로 전이한다.6 is a flowchart of the function of the second thread 28 of FIG. The second thread 28 is generated when the kernel is initialized and exists in a standby state. When the second thread 28 completes the message reception notification 29 or the message receiving unit 30 at the kernel receiving unit, the execution resumes. Therefore, it waits for message reception and message removal request upon initialization (S14). In this way, the system continuously searches whether the message reception request and the message removal request are received during the waiting (S15). When a message reception request is generated from the first thread 26 by this search, the second thread 28 generates a message reception interrupt so that the kernel receiver reads the message (S16). Otherwise, if a message removal request is generated from the kernel receiver by the search (S15), it is checked whether the type of the message is a data message (S17). This message removal request must occur after the kernel receiver receives the message receive interrupt. When the type of the message is a data message, since the TDB 23 is already used in the first thread 26, the message is removed from the TDB (S18) and returned (S19). And if there is a thread waiting to use the TDB (23) processes the use request (S20). If the message is processed as described above (S20) and the type of the message is not a data message (S17), there is a crossbar network router board head (Xnifhead) 31a having transmission information of the crossbar network in any kind of message. Therefore, the second thread 28 should remove the message from the MRB 14 (S21), and clear the message removal request from the MRR 15 (S22). This is because the kernel receiver records the removal request in the MRR 15 when the message removal request is made. After removing the message, it is checked whether a message exists in the corresponding MRB 14 (S23). If the message does not exist by this check S23, it transitions to the waiting state S14 for another request processing. However, if there is a message, the message is moved up by one step (S24) to generate a message reception interrupt (S25), and transition to the waiting state (S14).
이상과 같은 본 발명은 크로스바 네트웍을 기반으로 하는 메시지 수신 커널을 이더넷 환경의 시스템에서 사용될 수 있도록 하는 효과가 있다.As described above, the present invention has an effect of enabling a message receiving kernel based on a crossbar network to be used in a system of an Ethernet environment.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960014065A KR0171038B1 (en) | 1996-04-30 | 1996-04-30 | Software emulation method of cross bar network router of high speed parallel computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960014065A KR0171038B1 (en) | 1996-04-30 | 1996-04-30 | Software emulation method of cross bar network router of high speed parallel computer |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970071299A KR970071299A (en) | 1997-11-07 |
KR0171038B1 true KR0171038B1 (en) | 1999-03-30 |
Family
ID=19457476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960014065A KR0171038B1 (en) | 1996-04-30 | 1996-04-30 | Software emulation method of cross bar network router of high speed parallel computer |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0171038B1 (en) |
-
1996
- 1996-04-30 KR KR1019960014065A patent/KR0171038B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970071299A (en) | 1997-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6023732A (en) | Message transfer apparatus for controlling a message send in a packet switched interconnection network | |
JP2596718B2 (en) | How to manage network communication buffers | |
US6125399A (en) | Computer system including a plurality of nodes for transferring through a data transfer network messages having distinguishing fields used for distinguishing the messages and controlling receipt thereof | |
JPH06202883A (en) | Equipment for communication between processes and method therefor | |
JPH06309252A (en) | Interconnection interface | |
Hayter | A workstation architecture to support multimedia | |
JPH0816470A (en) | Parallel computer | |
JPH0944424A (en) | Message transmission method between remote information-processing systems | |
JP2587190B2 (en) | Channel paging mechanism between systems | |
JP3641834B2 (en) | Parallel processor system and packet discard method suitable therefor | |
KR0171038B1 (en) | Software emulation method of cross bar network router of high speed parallel computer | |
KR0170595B1 (en) | Software emulation method of xcent-net interface | |
CN116136790A (en) | Task processing method and device | |
US7089387B2 (en) | Methods and apparatus for maintaining coherency in a multi-processor system | |
JP2924783B2 (en) | Remote read processing method and device | |
Giacomini et al. | Low-level SCI software functional specification | |
JPH0675861A (en) | Memory access protector | |
CN102752223B (en) | Method for transmitting data among parallel systems and system of method | |
JP2971119B2 (en) | High-speed data transfer method in multiple processor system | |
JP2002057712A (en) | Memory leakage recovery method for packet memory and buffer processing unit | |
KR950004249B1 (en) | Method for Transferring Data between the Host Computer and the Node Computer In a Parallel Processing System | |
Ford et al. | Low level architecture features for supporting process communication | |
JP2002176464A (en) | Network interface device | |
JPH0950423A (en) | Data transmission method between remote information-processing systems | |
JPH06295289A (en) | Booting method for plural computers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 19960430 |
|
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 19960430 Comment text: Request for Examination of Application |
|
PG1501 | Laying open of application | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 19980831 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 19981016 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 19981016 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20010927 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20020930 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20031001 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20041001 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20051004 Start annual number: 8 End annual number: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20061002 Start annual number: 9 End annual number: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20070919 Start annual number: 10 End annual number: 10 |
|
FPAY | Annual fee payment |
Payment date: 20081001 Year of fee payment: 11 |
|
PR1001 | Payment of annual fee |
Payment date: 20081001 Start annual number: 11 End annual number: 11 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20100910 |