KR0150071B1 - Message receiving interface circuit for network of packet transportation protocol - Google Patents
Message receiving interface circuit for network of packet transportation protocolInfo
- Publication number
- KR0150071B1 KR0150071B1 KR1019950042592A KR19950042592A KR0150071B1 KR 0150071 B1 KR0150071 B1 KR 0150071B1 KR 1019950042592 A KR1019950042592 A KR 1019950042592A KR 19950042592 A KR19950042592 A KR 19950042592A KR 0150071 B1 KR0150071 B1 KR 0150071B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- message
- receiving
- buffer
- pci
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5619—Network Node Interface, e.g. tandem connections, transit switching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 복수개의 노드 혹은 프로세서들이 상호연결망에 연결되어 있을 때, 노드 상호간에 패킷전송 프로토콜을 사용하여 메세지를 주고받을 때 상대편 노드에서 보낸 메세지를 수신하는 메세지 수신 인터페니스회로에 관한 것으로서, 상호연결망에서 접속되어 패킷단위의 데이터를 수신하기 위한 패킷 수신기, 수신된 패킷 단위의 데이터에서 메세지를 복원하기 위한 메세지 수신기, 패킷형태에 따라 서로 다른 버퍼를 사용할 수 있도록 메모리 공간을 제공하고, 이중 억세스 포트를 제공하여 상호연결망에서 패킷수신동작과 PCI 로컬버스를 통한 버퍼 내용의 억세스동작을 서로 중첩시켜 수행하는 DP-SRAM과, DP-SRAM의 서로 다른 영역에 위치한 버퍼의 내용을 패킷단위로 읽어 PCI 로컬버스로 보내거나, PCI 로컬버스에서 발생한 버퍼 억세스 요구에 응답하는 PCI 버스제어기로 구성된다.The present invention relates to a message receiving inter-circuit circuit for receiving a message sent from an opposite node when a plurality of nodes or processors are connected to an interconnection network, when a node transmits and receives a message using a packet transfer protocol. A packet receiver for receiving data in a packet unit, a message receiver for recovering a message from a received packet unit data, and a memory space for using different buffers according to the packet type are provided. PCI local bus by reading the contents of buffer located in different area of DP-SRAM and DP-SRAM which overlaps packet receiving operation and access of buffer contents through PCI local bus in interconnection network. Or respond to a buffer access request from a PCI local bus It is composed of a PCI bus controller.
Description
제1도는 종래의 오메가 연결망의 예를 나타낸 도면.1 is a diagram showing an example of a conventional omega network.
제2도는 종래의 일반화된 셔플 연결망의 예를 나타낸 도면.2 illustrates an example of a conventional generalized shuffle network.
제3도는 종래의 하이퍼큐브 연결망의 예를 나타낸 도면.3 is a view showing an example of a conventional hypercube connection network.
제4도는 본 발명을 적용할 상호연결망과 노드들로 구성된 시스템 예시도.4 is an exemplary system of interconnection networks and nodes to which the present invention is applied.
제5도는 본 발명에 의한 노드의 메세지 수신 인터페이스회로의 내부 구조를 나타낸 도면.5 is a diagram showing an internal structure of a message receiving interface circuit of a node according to the present invention.
제6도는 제4도에 도시된 메세지 수신 인터페이스회로에서 수신하는 패킷의 형태를 나타낸 도면.FIG. 6 is a diagram showing the types of packets received by the message receiving interface circuit shown in FIG. 4. FIG.
제7도는 패킷 수신을 위한 순서도.7 is a flowchart for packet reception.
제8도는 메세지 수신을 위한 순서도.8 is a flow chart for receiving a message.
제9도는 PCI 버스 제어기의 동작 순서도.9 is a flowchart illustrating the operation of the PCI bus controller.
* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings
200A∼200N : 모드 210A∼210N : 프로세서(CPU)200A to 200N: Mode 210A to 210N: Processor (CPU)
300 : 상호연결망 310A∼310N : 스위치300: interconnection network 310A to 310N: switch
본 발명은 메세지 수신 인터페이스회로에 관한 것으로서, 특히 복수개의 노드 혹은 프로세서들이 상호연결망에 연결되어 노드 상호간에 패킷전송 프로토콜을 사용하여 메세지를 주고받을 때 상대편 노드에서 보낸 메세지를 수신하는 메세지 수신 인터페이스회로에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a message receiving interface circuit, and more particularly, to a message receiving interface circuit that receives a message sent from an opposite node when a plurality of nodes or processors are connected to an interconnection network to send and receive messages using a packet transfer protocol between the nodes. It is about.
일반적으로, 많은 수의 노드 혹은 프로세서들이 패킷 전송 방식의 상호연결망에 연결될 때, 다른 노드에서 보내온 메세지는 노드의 메세지 수신 인터페이스회로에 도착한다.In general, when a large number of nodes or processors are connected to a packet transmission interconnect, messages from other nodes arrive at the node's message receiving interface circuit.
메세지 수신 인터페이스회로는 전달된 메세지가 프로세서에 의하여 처리될 때까지 메세지를 관리한다.The message receiving interface circuit manages the messages until the delivered messages are processed by the processor.
수신 인터페이스회로의 주요기능은 연결 망에서 패킷들을 받아 메세지로 복원하고, 복원된 메세지를 버퍼에 저장하거나 지정된 어드레스에 메모리로 옮기는 기능을 수행한다.The main function of the receiving interface circuit is to receive packets from the network and restore them into a message, and to store the restored message in a buffer or to a memory at a specified address.
또한, 메세지가 도착했음을 프로세서에게 알리기 위하여 인터럽트를 발생한다.It also generates an interrupt to notify the processor that a message has arrived.
종래에는 태그로서 수신 어드레스를 사용하고, 어드레스의 각 디지털 (digit)를 이용하여 스위치가 스스로 경로제어를 수행하는 방법이 있다.Conventionally, there is a method in which a switch performs a path control by using a receiving address as a tag and using each digit of the address.
이 방법을 사용한 제1도의 오메가 연결망(Omega Network)의 예를 들면 다음과 같다.An example of the Omega network of FIG. 1 using this method is as follows.
각 스위치는 2진수로 표현되는 수신 어드레스에서 해당하는 비트를 사용하여 출력포크를 선택한다.Each switch selects an output fork using the corresponding bit in the receive address represented in binary.
비트가 '0'이면 입력포트는 출력포트 0에 연결된다.If the bit is '0', the input port is connected to output port 0.
반면, 비트가 '1'이면 입력포트는 출력포트 '1'에 연결된다.On the other hand, if the bit is '1', the input port is connected to the output port '1'.
이를 적용하여 제1도에서 점선으로 표시된 입력단 '000'에서 출력단 '101'로의 경로제어과정을 예를 들면 다음과 같다.Applying this, the path control process from the input terminal '000' indicated by the dotted line in FIG. 1 to the output terminal '101' is as follows.
첫번째 스위치는 수신어드레스 '101'의 상위비트가 '1'이므로 출력포트 '1'을 선택한다.The first switch selects output port '1' because the upper bit of the receive address '101' is '1'.
다음 스위치는 어드레스의 둘째 비트가 '0'이므로 출력포트 '0'을 선택한다.The next switch selects output port '0' because the second bit of the address is '0'.
마지막 스위치는 하위 비트가 '1'이므로 출력포트 '1'을 선택한다.The last switch selects output port '1' because the lower bit is '1'.
따라서 입력단 '000'에서 출발하여 출력단 '101'에 도착된다.Therefore, it starts from the input terminal '000' and arrives at the output terminal '101'.
상술한 경우에 비해 좀 더 일반적인 경우로서, 제2도에 도시된 일반화된 셔플 연결망(Generalized Shuffle Network)이 있다.As a more general case compared to the above case, there is a generalized shuffle network shown in FIG.
이 경우도 오메가 연결 망에서와 같이 수신측 어드레스를 태그로 사용하지만 오메가 연결망과는 달리 '2'진수의 어드레스 대신에 임의 진수 (여기서는 b진수)의 어드레스를 사용한다.In this case, as in the omega network, the receiving address is used as a tag, but unlike the omega network, the address of the random number (here b) is used instead of the address of the binary number.
각 스위치는 수신어드레스에서 해당하는 디지트를 사용하여 출력포트를 선택한다.Each switch selects an output port using the corresponding digit at the receive address.
디지트가 'm'이면 입력포트는 출력포트 'm'에 연결된다.If the digit is 'm', the input port is connected to the output port 'm'.
이를 적용하여 제2도에서 점선을 표시된 입력단 '0 1'에서 출력 단 'a-1 1'로의 경로제어과정을 예로 들면 다음과 같다.By applying this, a path control process from the input terminal '0 1' marked with a dotted line in FIG. 2 to the output terminal 'a-1 1' is as follows.
첫번째 스위치는 수신어드레스의 상위 디지트가 'a-1'이므로 출력포트 'a-1'을 선택하고, 다음 스위치는 어드레스의 하위 디지트가 1이므로 출력포트 1을 선택한다.The first switch selects output port 'a-1' because the upper digit of the receive address is 'a-1' and the next switch selects output port 1 because the lower digit of the address is 1.
한편, 제3도에 도시된 하이퍼큐브 연결망(Hypercube Network)의 경우도 오메가 연결망에서와 같이 '2'진수의 수신 어드레스를 태그로 사용한다.On the other hand, the hypercube network (Hypercube Network) shown in Figure 3 also uses a '2' binary address as a tag as in the Omega network.
이 경우 서로 인접한 스위치들은 한 비트만 서로 다른 어드레스를 갖는다.In this case, switches adjacent to each other have only one bit of a different address.
여기서, 3차원 하이퍼큐브 연결망을 예를 들어 설명하면 다음과 같다.Here, a three-dimensional hypercube connection network is described as an example.
수신 어드레스는 3비트의 2진수이고 각 비트는 토롤로지의 3 방향에 대응시킨다.The destination address is a 3-bit binary number and each bit corresponds to the three directions of the topology.
즉, 어드레스의 상위 비트는 x 방향, 중간 비트는 z 방향, 하위 비트는 y 방향에 각각 대응된다.That is, the upper bits of the address correspond to the x direction, the middle bits to the z direction, and the lower bits to the y direction.
스위치는 수신 어드레스와 자신의 위치 어드레스의 각 비트를 비트 단위로 비교하고, 서로 다른 값을 갖는 비트들이 있으면 그 중 한 비트에 해당하는 인접한 스위치로 경로 제어한다.The switch compares each bit of the reception address with its own location address bit by bit, and if there are bits having different values, the switch controls the adjacent switch corresponding to one of the bits.
이를 적용하여 3차원 하이퍼큐브의 '000'에서 '101'로 향하는 경로 제어과정을 예로 들면 다음과 같다.For example, the path control process from '000' to '101' of the 3D hypercube is applied as follows.
‘000’에 위치한 스위치는 수신 어드레스 ‘101’과 자신의 어드레스를 비트 단위로 비교하여 상위 비트와 하위 비트가 서로 다른 것을 알게 된다.The switch located at '000' compares the receiving address '101' and its address bit by bit to find that the upper and lower bits are different.
이때 상위비트만을 선택하여 x 방향의 ‘100’ 스위치로 연결한다.At this time, select only upper bit and connect with '100' switch in x direction.
‘100’ 스위치는 다시 수신 어드레스를 비트 단위로 비교하여 하위 비트가 서로 다르므로 y 방향의 ‘101’ 스위치로 연결한다.The '100' switch compares the receiving address bit by bit and connects them to the '101' switch in the y direction because the lower bits are different from each other.
본 발명의 목적은 복수개의 노드 혹은 프로세서들이 상호연결망에 연결되어 있을 때, 노드 상호간에 패킷전송 프로토콜을 사용하여 메세지를 주고받을 때 상대편 노드에서 보낸 메세지를 수신하는 메세지 수신 인터페이스회로를 제공하는데 있다.An object of the present invention is to provide a message receiving interface circuit for receiving a message sent from a counterpart node when a plurality of nodes or processors are connected to an interconnection network, when a node transmits and receives a message using a packet transfer protocol.
상기 목적을 달성하기 위하여 본 발명에 의한 메세지 수신 인터페이스회로는 상호연결망에서 접속되어 패킷단위의 데이터를 수신하기 위한 패킷 수신기와, 상기 수신된 패킷 단위의 데이터에서 메세지를 복원하기 위한 메세지 수신기와, 패킷형태에 따라 서로 다른 버퍼를 사용할 수 있도록 메모리 공간을 제공하고, 이중 억세스 포트를 제공하여 상기 상호연결망에서 패킷수신동작과 PCI 로컬 버스를 통한 버퍼내용의 억세스동작을 서로 중첩시켜 수행하는 DP-SRAM 및 상기 DP-SRAM의 서로 다른 영역에 위치한 버퍼의 내용을 패킷단위로 읽어 상기 PCI 로컬버스로 보내거나, 상기 PCI 로컬버스에서 발생한 버퍼 억세스 요구에 응답하는 PCI 버스 제어기를 포함하는 것을 특징으로 한다.In order to achieve the above object, a message receiving interface circuit according to the present invention is a packet receiver connected to an interconnection network for receiving packet data, a message receiver for recovering a message from the received packet data, and a packet. DP-SRAM which provides a memory space for using different buffers according to the form, and provides a dual access port to overlap the packet receiving operation and the access operation of the buffer contents through the PCI local bus in the interconnection network. And a PCI bus controller that reads contents of buffers located in different areas of the DP-SRAM in packet units and sends them to the PCI local bus or responds to a buffer access request generated in the PCI local bus.
이하, 첨부한 도면을 참조하여 본 발명의 일실시예를 상세하게 설명하고자 한다.Hereinafter, with reference to the accompanying drawings will be described in detail an embodiment of the present invention.
본 발명을 적용할 시스템은 제4도에 도시된 바와 같이, 복수의 노드들(200A∼200N)과 각 노드(200A∼200N) 사이의 메세지 교환을 위한 통로로 사용되는 상호연결망(300)으로 구성된다.As shown in FIG. 4, the system to which the present invention is applied consists of an interconnection network 300 which is used as a path for message exchange between a plurality of nodes 200A to 200N and each node 200A to 200N. do.
상호연결망(300)은 상호 연결된 여러개의 스위치들(310A∼310N)로 이루어지며, 각 스위치(310A∼310N)는 다수개의 포트를 제공하고 각 포트는 입력과 출력이 서로 분리되어 있다.The interconnection network 300 is composed of several switches 310A-310N interconnected, each switch 310A-310N providing a plurality of ports, each of which is separated from each other in input and output.
각 스위치(310A∼310N)의 포트는 각 노드(200A∼200N)에 위치한 포트(280)에 연결된다.Ports of each switch 310A-310N are connected to a port 280 located at each node 200A-200N.
각 노드(200A∼200N)에서 메세지가 만들어지면 상호연결망(300)을 구성하는 각 스위치(310A∼310N)로 보내진다. 메세지는 상호연결망(300)의 여러 스위치(310A∼310N)을 거쳐 원하는 노드(200A∼200N)로 도착한다.When a message is generated at each node 200A-200N, it is sent to each switch 310A-310N constituting the interconnect network 300. The message arrives at the desired nodes 200A-200N via various switches 310A-310N of the interconnect network 300.
여기서, 노드(200A∼200N)는 프로세서(210A∼210N), 프로세서 버스(220), 로컬버스 브릿지(230), 로컬메모리(270)로 구성된다.Here, the nodes 200A to 200N include a processor 210A to 210N, a processor bus 220, a local bus bridge 230, and a local memory 270.
여기서, 프로세서 버스(22)는 프로세서(210A∼210N), 로컬메모리(270), 그리고 로컬버스 브릿지(230)를 서로 연결한다.Here, the processor bus 22 connects the processors 210A to 210N, the local memory 270, and the local bus bridge 230 to each other.
로컬버스 브릿지(230)는 프로세서 버스(220)와 로컬버스(240)를 서로 연결한다.The local bus bridge 230 connects the processor bus 220 and the local bus 240 with each other.
구성에 따른 동작을 살펴보면, 프로세서(210A∼210N)에서 메세지 수신 인터페이스회로(250) 또는 송신 인터페이스회로(260)를 억세스하기 위하여 로컬버스 브릿지(230)를 거쳐 로컬버스(240)를 억세스한다.Referring to the operation according to the configuration, the processor 210A to 210N accesses the local bus 240 via the local bus bridge 230 to access the message receiving interface circuit 250 or the transmitting interface circuit 260.
이와 반대로, 메세지 수신 인터페이스회로(250)에서 로컬메모리(270)를 억세스할 때는 로컬버스 브릿지(230)를 거쳐 프로세서 버스(220)를 억세스한다.On the contrary, when the local memory 270 is accessed by the message receiving interface circuit 250, the processor bus 220 is accessed via the local bus bridge 230.
노드(200A∼200N)의 메세지 송신 인터페이스회로(260)는 프로세서 (210A∼210N)의 요구에 의하여 다른 노드로 보낼 메세지(260)를 포트(280)로 출력한다.The message transmission interface circuits 260 of the nodes 200A to 200N output a message 260 to the port 280 to be sent to other nodes at the request of the processors 210A to 210N.
다른 노드(200A∼200N)에서 보낸 메세지는 포트(280)를 거쳐 메세지 수신 인터페이스회로(250)에 입력된다.Messages sent from the other nodes 200A to 200N are input to the message receiving interface circuit 250 via the port 280.
본 발명에 의한 메세지 수신 인터페이스회로(250)는 제5도에 도시된 바와 같이 상호연결망(300)의 출력포트(251)에 연결되어 노드(200A∼200N)로 입력되는 패킷을 수신하는 패킷수신기(252), 패킷 수신기(252)에서 패킷들을 접수하여 메세지로 복원하는 메세지 수신기(257), 수신된 메세지를 저장하기 위한 버퍼로 사용되는 DP-SRAM(255), 프로세서(210A∼210N)의 요구에 의하여 DP-SRAM(255)에 저장된 메세지를 억세스하거나 DP-SRAM(255)에 일시적으로 저장된 메세지를 PCI(Peripheral Communication Interface) 버스를 통하여 로컬 메모리(270)로 전송하는 일을 수행하는 PCI 버스제어기(260)로 구성된다.The message receiving interface circuit 250 according to the present invention is connected to the output port 251 of the interconnection network 300 as shown in FIG. 5 and receives a packet received from the nodes 200A to 200N. 252, a message receiver 257 for receiving the packets at the packet receiver 252 and restoring them into a message, a DP-SRAM 255 used as a buffer for storing the received message, and a request for the processor 210A to 210N. PCI bus controller which accesses the message stored in the DP-SRAM 255 or transfers the message temporarily stored in the DP-SRAM 255 to the local memory 270 through the Peripheral Communication Interface (PCI) bus. 260).
제5도의 구성에 따른 동작을 제4도 내지 제6도를 참조하여 살펴보면, 상호연결망(300)의 출력포트(251)에서 패킷(400)이 출력되면 패킷수신기(252)는 플릿 단위로 패리티 검사를 하며 에러가 없으면 내부의 버퍼에 입력한다.Referring to FIGS. 4 to 6, the operation according to the configuration of FIG. 5 is described. When the packet 400 is output from the output port 251 of the interconnection network 300, the packet receiver 252 checks parity on a fleet basis. If there is no error, enter the internal buffer.
패킷 수신기(252)를 거쳐서 패킷은 DP-SRAM(255)의 버퍼에 저장된다.Via the packet receiver 252, the packet is stored in a buffer of the DP-SRAM 255.
패킷 수신기(252)는 수신된 패킷에 대한 정보신호(254)를 메세지 수신기(257)로 입력한다.The packet receiver 252 inputs an information signal 254 for the received packet to the message receiver 257.
메세지 수신기(257)는 패킷정보신호(254)를 사용하여 메세지 복원을 수행한다.The message receiver 257 uses the packet information signal 254 to perform message recovery.
이 메세지 복원과정에서는 메세지를 구성하는 패킷의 수, 메세지의 전송모드 등을 검사한다.In this message restoration process, the number of packets composing a message, the mode of transmission of the message, and the like are checked.
DP-SRAM(255)은 동시에 여러 개의 메세지를 저장하기 위한 공간과 버퍼가 있으며, 메세지의 전송모드에 따라 서로 다른 버퍼에 저장된다.The DP-SRAM 255 has a space and a buffer for storing several messages at the same time, and are stored in different buffers according to the transmission mode of the message.
메세지 수신기(257)는 DP-SRAM(255)의 버퍼 및 저장공간 관리를 담당하며 DP-SRAM(255)의 억세스 제어신호(256)를 사용한다.The message receiver 257 is responsible for buffer and storage space management of the DP-SRAM 255 and uses the access control signal 256 of the DP-SRAM 255.
메세지의 전송모드에 따라 DP-SRAM(255)에 저장된 메세지는 로컬 메모리(270)로 옮겨지거나 혹은 프로세서(210A~210N)에 의하여 억세스된다.Depending on the transmission mode of the message, the message stored in the DP-SRAM 255 is transferred to the local memory 270 or accessed by the processors 210A to 210N.
메세지 수신기(257)는 PCI 버스제어신호(259)를 통하여 PCI 버스제어기(260)의 PCI 마스타 및 타겟 기능을 제어할 수 있다.The message receiver 257 may control the PCI master and target functions of the PCI bus controller 260 through the PCI bus control signal 259.
DP-SRAM(255)에서 직접 로컬메모리(270)로 메세지를 옮길때 PCI 버스제어기(260)는 PCI 마스타로 동작한다.The PCI bus controller 260 acts as a PCI master when transferring messages from the DP-SRAM 255 directly to the local memory 270.
반면, DP-SRAM(255)에 저장된 메세지를 프로세서(210A~210N)가 억세스할때 PCI 버스제어기(260)는 PCI 타겟으로 동작한다.On the other hand, when the processor 210A to 210N accesses a message stored in the DP-SRAM 255, the PCI bus controller 260 operates as a PCI target.
상호연결망(300)의 출력포트(251)에서 패킷 수신기(252)로 입력되는 패킷(400)은 제6도에 도시된 바와 같이 제어플릿(410), 데이타 플릿(420)으로 구성된다.The packet 400 input to the packet receiver 252 at the output port 251 of the interconnection network 300 is composed of a control fleet 410 and a data fleet 420 as shown in FIG.
여기서, 제어플릿(410)은 패킷형태(411), 패킷 일련번호(412), 패킷길이(413), 송신 노드번호(414)를 포함한다.Here, the control fleet 410 includes a packet type 411, a packet serial number 412, a packet length 413, and a transmitting node number 414.
여기서, 제어플릿(410)의 각 구성요소들의 역할을 살펴보면 다음과 같다.Here, the role of each component of the control fleet 410 will be described.
패킷형태(411)는 패킷의 용도 혹은 전송모드를 지정하는데, 지정가능한 전송모드의 예는 브로드캐스트 혹은 긴급전송 등이다.The packet form 411 specifies the purpose or transmission mode of the packet. Examples of the transmission mode that can be specified are broadcast or emergency transmission.
패킷 일련번호(412)는 한 개의 메세지가 여러 개의 패킷들로 구성되는 경우 각 패킷에 할당되어 에러 발생시 패킷단위 재전송 혹은 메세지 복원과정에서 패킷저장 어드레스 계산 등에 이용된다.The packet serial number 412 is assigned to each packet when a message is composed of several packets, and used for retransmission of a packet unit when an error occurs or calculation of a packet storage address in a message restoration process.
한편, 패킷길이(413)는 가변시킬 수 있으며, 이때 한 개의 제어플릿(410)과 최대 16개의 데이터플릿(420)으로 구성이 가능하다.On the other hand, the packet length 413 may be variable, and at this time, one control fleet 410 and up to 16 data fleets 420 may be configured.
패킷길이(413)는 패킷(400)의 데이터플릿(420)의 수를 정하며 가변적인 패킷의 구조를 수용하기 위하여 사용된다.The packet length 413 defines the number of datalets 420 of the packet 400 and is used to accommodate the variable packet structure.
송신노드번호(414)는 한 개의 노드에 여러 개의 송신모드에서 메세지를 동시에 보내는 경우 수신노드가 각 메세지를 전송한 송신노드를 서로 구별할 수 있도록 한다.The transmitting node number 414 allows the receiving node to distinguish the transmitting node transmitting each message from each other when simultaneously transmitting messages to one node in multiple transmission modes.
제5도에 도시된 본 발명에 의한 메세지 수신 인터페이스회로(250)는 3단계의 기능을 수한다.The message receiving interface circuit 250 according to the present invention shown in FIG. 5 has three functions.
첫째, 상호연결망(300)에서 패킷(400)을 수신하고 패리티 검사를 수행한다.First, packet 400 is received at interconnection network 300 and performs parity check.
둘째, 패킷(400)에서 메세지를 복원한다.Second, restore the message in packet 400.
셋째, 메세지를 DP-SRAM(255)에 저장하거나 로컬메모리(270)로 옮긴다.Third, the message is stored in the DP-SRAM 255 or moved to the local memory 270.
이중 패킷수신과정에 대하여 제4도 내지 제7도를 참조하여 설명하면 다음과 같다.The dual packet reception process will be described with reference to FIGS. 4 to 7 as follows.
패킷(400)의 가장 앞부분은 제어플릿(410)이 위치하므로 패킷수신기(252)는 상호연결망(300)의 출력포트(251)에서 제어플릿(410)을 검출한다(S111 단계).Since the control fleet 410 is located at the front of the packet 400, the packet receiver 252 detects the control fleet 410 at the output port 251 of the interconnection network 300 (step S111).
S111 단계에서 제어플릿(410)을 수신하면 패리티 검사를 하며, 에러가 없으면 패킷 버퍼에 저장하고 N=0으로 초기화한다(S112 단계).When the control fleet 410 is received in step S111, parity check is performed. If there is no error, the control fleet 410 is stored.
패킷(400)의 데이터플릿(420)의 수는 가변적이므로 데이터플릿(420)의 수를 세기 위하여 제어플릿(410)을 받은 후 N=0으로 초기화한다(S112).Since the number of dataplets 420 of the packet 400 is variable, the control fleet 410 is received in order to count the number of dataplets 420 and initialized to N = 0 (S112).
S113 단계에서는 N의 값이 패킷길이(413)와 같은 값을 갖는지를 검사하고, 같은 값을 갖는 경우 본 패킷수신과정을 종료하고, N이 패킷길이(413)보다 작은 값을 갖는 경우 제어플릿(410)에 이어 데이터플릿(420)을 기다린다(S114 단계).In step S113, it is checked whether the value of N has the same value as the packet length 413, if the value is the same, the present packet reception process is terminated, and when N has a value smaller than the packet length 413, the control fleet ( 410, and then waits for the dataple 420 (step S114).
데이터플릿(420)이 수신되면 플릿 단위로 패리티 검사를 수행하여 에러가 없으면 패킷 버퍼에 저장하고 데이터 플릿을 받을 때마다 N의 값을 1씩 증가시킨 후(S115 단계), S113 단계로 복귀한다.When the data fleet 420 is received, parity check is performed on a fleet basis, and if there is no error, the data fleet 420 is stored in the packet buffer and the value of N is increased by 1 each time the data fleet is received (step S115), and the process returns to step S113.
즉, N의 갓이 패킷길이(413)와 같은 값을 가질 때까지 S114 단계와 S115 단계를 반복적으로 수행한다.That is, steps S114 and S115 are repeatedly performed until the shade of N has the same value as the packet length 413.
한편, 메세지 수신기(257)는 패킷수신기(252)에서 수신한 패킷을 메세지로 복원하고, 적당한 버퍼에 저장하는 기능을 수행한다.Meanwhile, the message receiver 257 restores the packet received by the packet receiver 252 into a message, and stores the packet in an appropriate buffer.
메세지 수신과정에 대하여 제4도 내지 제6도와 제8도를 참조하여 설명하면 다음과 같다.The message reception process will be described below with reference to FIGS. 4 through 6 and 8.
패킷수신기(252)에서 패킷을 수신하고(S211 단계), 패킷형태(411)가 데이터 제어패킷인가를 검사한다(S212 단계).The packet receiver 252 receives the packet (step S211), and checks whether the packet type 411 is a data control packet (step S212).
여기서, 데이터 제어패킷은 한개 이상의 데이터 패킷들과 함께 한개의 메세지를 구성하며, 데이터 제어패킷은 뒤이어 패킷수신기(252)에 수신될 데이터 패킷들에 관한 정보를 저장한다.Here, the data control packet constitutes a message together with one or more data packets, and the data control packet subsequently stores information about data packets to be received by the packet receiver 252.
데이터패킷들은 PCI 버스제어기(260)에 의하여 로컬메모리(270)로 전송되며, 이때 사용되는 메모리 어드레스는 데이터 제어패킷에 의하여 메세지 수신기(257)에 전달되다.The data packets are transmitted to the local memory 270 by the PCI bus controller 260, and the memory address used is transmitted to the message receiver 257 by the data control packet.
S212 단계에서 데이터 제어패킷이 수신되면 메세지 버퍼에 패킷을 저장하고, 메세지 저장어드레스와 송신 노드 번호(414)를 내부 레지스터에 저장한다(S213 단계).When the data control packet is received in step S212, the packet is stored in the message buffer, and the message storage address and the transmitting node number 414 are stored in an internal register (step S213).
여기서, 메세지 저장어드레스는 메세지를 구성하는 데이터패킷들이 저장된 메세지의 시작 어드레스이다.Here, the message storage address is a start address of a message in which data packets constituting the message are stored.
이후, 데이터 패킷이 수신되면(S214 단계), 메세지 수신기(257)는 다음과 같이 동작한다.After that, when the data packet is received (step S214), the message receiver 257 operates as follows.
먼저, S213 단계에서 저장한 송신노드번호와 데이터 패킷의 송신노드번호(414)를 서로 비교한다(S215 단계).First, the transmission node number stored in step S213 and the transmission node number 414 of the data packet are compared with each other (step S215).
비교결과가 서로 같으면 데이터 패킷의 저장어드레스를 다음과 같은 공식으로 계산한다(S216 단계).If the comparison result is the same, the storage address of the data packet is calculated by the following formula (step S216).
데이터패킷 어드레스=(메세지 저장어드레스+패킷일련번호+패킷길이) 상기 공식에서 패킷일련번호(412)는 메세지를 구성하는 패킷들의 순서를 나타낸다.Data packet address = (message storage address + packet serial number + packet length) In the above formula, the packet serial number 412 represents the order of packets constituting the message.
S216 단계에서 어드레스를 계산한 후, 패킷은 데이터 메세지 버퍼에 저장된다(S217 단계).After calculating the address in step S216, the packet is stored in the data message buffer (step S217).
데이터 메세지 버퍼에 저장된 패킷들은 PCI 버스제어기(260)에 의하여 PCI 로컬버스(240)로 전송되며, 최종적으로 지정된 어드레스의 로컬메모리(270)에 저장된다.Packets stored in the data message buffer are transmitted to the PCI local bus 240 by the PCI bus controller 260 and finally stored in the local memory 270 of the designated address.
S218 단계에서 제어패킷이 수신되면, 메세지 버퍼에 저장한 후 메세지 수신을 마친다.(S219 단계).When the control packet is received in step S218, the control packet is stored in the message buffer and the message reception is finished (step S219).
PCI 버스제어기(260)는 프로세서(210A∼210N)의 메세지 버퍼 억세스 요구가 PCI 버스(240)에서 발생하면 그것을 접수하여 버퍼를 억세스 하거나 데이터 메세지 버퍼에 저장된 패킷들을 로컬메모리(270)의 지정된 어드레스에 저장하는 기능을 수행한다.The PCI bus controller 260 receives a message buffer access request from the processors 210A to 210N on the PCI bus 240 to access the buffer or to store packets stored in the data message buffer at a designated address of the local memory 270. Save function.
PCI 버스제어기(260)의 동작을 제4도 내지 제6도와 제9도를 참조하여 설명하면 다음과 같다.The operation of the PCI bus controller 260 will be described with reference to FIGS. 4 through 6 and 9.
프로세서(210A∼210N)의 요구가 PCI 버스(240)에서 발생하면 PCI 버스제어기(260)는 동작을 시작한다(S311 단계).When a request from the processors 210A to 210N occurs on the PCI bus 240, the PCI bus controller 260 starts operation (step S311).
이후, PCI 억세스 요구가 발생하고 메세지 버퍼의 데이터를 원하면 메세지 버퍼의 데이터를 읽어 공급한다(S312 단계).Thereafter, if a PCI access request occurs and the data of the message buffer is desired, the data of the message buffer is read and supplied (step S312).
반면, PCI 억세스 요구가 없으면 데이터 메세지 버퍼가 비어있는지 여부를 검사한다(S313 단계).On the other hand, if there is no PCI access request, it is checked whether the data message buffer is empty (step S313).
S313 단계에서 데이터 메세지 버퍼가 비어있지 않으면 저장된 데이터를 패킷 단위로 읽어서 PCI 로컬버스를 전송한다(S314 단계).If the data message buffer is not empty in step S313, the stored data is read in packet units to transmit the PCI local bus (step S314).
상술한 바와 같은 본 발명에 의한 패킷전송 프로토콜의 상호연결망을 위한 메세지 수신 인터페이스회로와 종래의 수신태그 자가 라우팅방법과의 차이점을 다음과 같다.The difference between the message receiving interface circuit and the conventional receiving tag self routing method for the interconnection network of the packet transmission protocol according to the present invention as described above are as follows.
첫째, 연결망의 스위치들은 다중 트리(N-ary Tree) 형태로 연결되어 있으며 수신 측과 송신 측이 근접할수록 경로가 짧아지는 특장점이 있다.First, the switches of the network are connected in the form of a N-ary tree, and the closer the receiving side and the transmitting side, the shorter the path.
둘째, 연결망의 계층구조를 위하여 스위치의 일부 포트들을 상위 스위치들과 연결하기 위한 용도로 사용한다.Second, it is used to connect some ports of the switch with the upper switches for the hierarchical structure of the network.
셋째, 이러한 구조의 스위치와 연결 망에서 수신태그로서 어드레스를 직접 사용하기 위해서 룩업테이블(look-up table) 혹은 복잡한 제어로직을 필요로 하고, 스위치의 구조가 매우 복잡해지거나 구현에서 어려움이 따르므로 이를 해결하기 위하여 수신 어드레스를 태그로 바꾸고 이를 이용하여 스위치의 경로제어기능을 수행한다. 따라서, 계층구조의 연결망과 스위치에 테이블 혹은 제어로직의 부가없이 단순한 구조를 유지할 수 있도록 한다.Third, a look-up table or complex control logic is required to directly use an address as a receive tag in such a switch and connection network, and the structure of the switch becomes very complicated or difficult to implement. To solve this problem, change the receiving address to tag and use this to perform the path control function of the switch. Thus, a simple structure can be maintained without adding a table or control logic to the hierarchical network and the switch.
또한, 수신 어드레스에서 태그로 변환하는 과정이 단순한 알고리즘을 사용하므로 수신 어드레스를 태그로 사용하는 방법에 비하여 성능 면에서도 대등하다.In addition, since the process of converting a receiving address into a tag uses a simple algorithm, performance is comparable to that of using a receiving address as a tag.
본 발명은 상기 실시예에 한정되지 않으며, 않은 변형이 본 발명이 속한 기술적 사상내에서 당 분야에서 통상의 지식을 가진 자에 의해 가능함을 명백하다.The present invention is not limited to the above embodiments, and it is apparent that modifications are possible by one of ordinary skill in the art within the technical idea to which the present invention pertains.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950042592A KR0150071B1 (en) | 1995-11-21 | 1995-11-21 | Message receiving interface circuit for network of packet transportation protocol |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950042592A KR0150071B1 (en) | 1995-11-21 | 1995-11-21 | Message receiving interface circuit for network of packet transportation protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970029113A KR970029113A (en) | 1997-06-26 |
KR0150071B1 true KR0150071B1 (en) | 1998-10-15 |
Family
ID=19434988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950042592A KR0150071B1 (en) | 1995-11-21 | 1995-11-21 | Message receiving interface circuit for network of packet transportation protocol |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0150071B1 (en) |
-
1995
- 1995-11-21 KR KR1019950042592A patent/KR0150071B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970029113A (en) | 1997-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3483900B2 (en) | Broadcasting method | |
US5740346A (en) | System and method for dynamic network topology exploration | |
AU622815B2 (en) | Adaptive routing in a parallel computing system | |
US5732086A (en) | System and method for determining the topology of a reconfigurable multi-nodal network | |
US6529963B1 (en) | Methods and apparatus for interconnecting independent fibre channel fabrics | |
US5430442A (en) | Cross point switch with distributed control | |
US7412557B2 (en) | Apparatus and method for preventing loops in a computer network | |
AU674300B2 (en) | System of extending network resources to remote networks | |
EP0226632B1 (en) | A packet switching network with multiple packet destinations | |
US7921251B2 (en) | Globally unique transaction identifiers | |
RU2117405C1 (en) | Communication system | |
JPS6360579B2 (en) | ||
US7564845B2 (en) | Method for permanent redundant transmission of data messages in communication systems | |
JPH0851454A (en) | Interconnecting system for local area network and interconnection in network interconnecting apparatus | |
KR0150071B1 (en) | Message receiving interface circuit for network of packet transportation protocol | |
US6567856B1 (en) | Deadlock-free routing | |
CN113346983B (en) | EPA equipment with mirror redundancy and EPA system | |
JP2708389B2 (en) | Fault-tolerant network structure | |
Feng et al. | A microprocessor-controlled asynchronous circuit switching network | |
EP0365745A2 (en) | A method for detecting and avoiding erroneous decombining in combining networks for parallel computing systems | |
JPS6074842A (en) | Local area network | |
JPH01129548A (en) | Communication controller | |
KR0150070B1 (en) | A hierarchical crossbar interconnection network for the cluster-based parallel processing computer | |
KR100423488B1 (en) | Redundancy Structure of Interprocessor Communication Network in Switching System | |
JP2504596B2 (en) | Frame filtering method in large-scale LAN system |
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: 20080530 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |