KR100277167B1 - 가상버스들을사용한연결망을갖는분산컴퓨팅시스템및데이터통신방법 - Google Patents

가상버스들을사용한연결망을갖는분산컴퓨팅시스템및데이터통신방법 Download PDF

Info

Publication number
KR100277167B1
KR100277167B1 KR1019980020844A KR19980020844A KR100277167B1 KR 100277167 B1 KR100277167 B1 KR 100277167B1 KR 1019980020844 A KR1019980020844 A KR 1019980020844A KR 19980020844 A KR19980020844 A KR 19980020844A KR 100277167 B1 KR100277167 B1 KR 100277167B1
Authority
KR
South Korea
Prior art keywords
bus
router
row
data
virtual bus
Prior art date
Application number
KR1019980020844A
Other languages
English (en)
Other versions
KR20000000903A (ko
Inventor
박규호
최종혁
김봉완
Original Assignee
윤덕용
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤덕용, 한국과학기술원 filed Critical 윤덕용
Priority to KR1019980020844A priority Critical patent/KR100277167B1/ko
Priority to US09/313,859 priority patent/US6680915B1/en
Publication of KR20000000903A publication Critical patent/KR20000000903A/ko
Application granted granted Critical
Publication of KR100277167B1 publication Critical patent/KR100277167B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 소정갯수의 라우터들이 행열구조로 배열되며, 각 라우터들간에는 점대점 링크로 연결되고, 각각의 라우터마다 하나씩의 프로세서가 연결됨으로써 메쉬구조를 갖는 컴퓨터에 관한 것으로 특히, 상기 라우터들 각각은 인접 라우터와 연결되어 있는 점대점 링크를 특정 조건상에서 하나의 가상 버스로 사용하기 위해 행축과 열축 각 방향으로의 입출력 단자간에 데이터 직접 전송경로를 구비하며, 상기 라우터 내부에서 입출력 단자간에 구비되어 있는 데이터 직접 전송경로가 구동하여 가상버스를 형성하는 경우 각 라우터들간의 정보교환을 위해 각 라우터들이 배열되어 있는 행과 열을 따라 상기 각 라우터들과 와이어 오아 개념으로 묶여 있는 행 제어라인과 열 제어라인을 포함하는 것을 특징으로 하는 가상 버스를 사용한 연결망을 갖는 분산 컴퓨팅 시스템 및 데이터 통신 방법을 제공하여, 물리적으로 버스를 갖는 메쉬구조와는 달리 가상버스의 데이터는 공통선이 아닌 점대점 링크 상으로 전송가능하여 점대점 링크 통신만을 사용하거나 혹은 버스동작을 필요한 가상버스를 능동적으로 할당하여 사용할 때에도 통신망의 대역폭을 모두 사용할 수 있으며 팬 아우트 문제가 없이 보다 고속으로 데이터를 전송할 수 있다는 효과가 있다.

Description

가상 버스들을 사용한 연결망을 갖는 분산 컴퓨팅 시스템 및 데이터 통신 방법{Distributed computing system having a connection network using virtual buses and data communication method for the same}
본 발명은 복수의 프로세서를 메쉬(Mesh) 형태로 연결하여 연산 병렬처리를 통해 고속화를 추구하는 다중컴퓨터 혹은 메쉬 컴퓨터상의 프로세서 연결을 위한 구성 및 그 통신방법에 관한 것으로 특히, 프로세서간의 연결 구조에 가상버스를 도입함으로써 일반적인 점대점 통신은 물론 긴급한 메시지나 여러 컴퓨터에 한번에 메시지를 전송하는 방송 메시지에 적합하고 대규모의 병렬 시뮬레이션이나 실시간 프로그램 등의 고속처리를 가능하게 하기 위한 가상 버스를 사용한 연결망을 갖는 분산 컴퓨팅 시스템 및 데이터 통신 방법에 관한 것이다.
일반적으로, 컴퓨터 분야는 반도체 기술의 발전에 힘입어 소형화와 고속화의 추세를 강하게 나타내고 있으며, 그에 따라 다수의 프로세서를 연결하여 병렬처리하도록 함으로써 고속화를 달성할 수 있으면서도 대용량의 시뮬레이션등에 적합한 다중 컴퓨터 혹은 메쉬 컴퓨터가 제공되고 있는 실정이다.
상술한 바와같은 다중 컴퓨터의 성능은 프로세서간의 연결방식에 크게 영향을 받게 되는데, 상기 다중 컴퓨터를 형성하기 위한 연결방식은 첨부한 도 1에 도시되어 있는 점대점 링크 연결방식과 첨부한 도 2에 도시되어 있는 버스 연결방식이 대표적이다.
우선, 첨부한 도 1에 도시되어 있는 점대점 링크 연결방식은 1차원 배열 형태로 점대점 링크 연결된 경우의 예로서 이를 간략히 살펴보면, 각각의 링크는 독립적으로 통신이 가능하므로 한 배열이내에서도 여러 단위컴퓨터가 동시에 각기 다른 메시지 전송이 가능하므로 한 배열이내에서도 여러 단위컴퓨터가 동시에 각기 다른 메시지 전송이 가능하다. 따라서, 높은 통신망 성능(throughput)을 낼 수 있다는 장점이 있다.
반면에, 첨부한 도 1에 도시되어 있는 바와같은 점대점 링크 방식에서 방송메세지를 처리할 경우에는, 많은 링크를 동시에 점유하게 되어 통신망 성능이 급격히 낮아지는 문제점을 내포하고 있다. 더욱이, 필요로 하는 링크를 순차적으로 점유해야하므로, 긴 통신시간을 요구하게 된다.
상술한 점대점 링크 연결 방식과 달리 버스 연결방식은 긴급 메시지나 방송메세지를 효과적으로 전송할 수 있는데, 첨부한 도 2에는 1차원 배열을 다중접속(Multiaccess)이 가능한 버스로 연결된 경우의 예로서 이를 간략히 살펴보면, 한번의 버스 요구(bus request)만으로 중단 경로의 라우터를 거치지 않고 직접 목적 노드컴퓨터에 연결되므로, 방송메세지라도 짧은 통신시간이 소요된다.
반면에 이웃한 단위컴퓨터끼리의 일대일 통신에서도 한 배열의 버스를 점유해야하므로, 한 배열에서는 동시에 한 메시지의 처리만이 가능하여, 낮은 성능(throughput)을 나타낸다.
따라서, 상술한 종래 대표적인 연결방식들은 서로 상반되는 장단점을 가지기 때문에 양자의 장점만을 취합하는 다중 컴퓨터의 구성방법이 근래들어 제안되었는바, 그러한 기술로서는 미국 특허 4,933,936번과 아래의 참고문헌(참조 1 내지 참조 3)등에 소개된 기술이 대표적이라 할수 있다.
참조 1 : Q. Stout. Mesh-connected Computers with Broadcasting. IEEE Trans. Computers,C-32(9):826-830, Sep. 1983.
참조 2 : M. Serrano and B. Parhami. Optimal Architectures and Algorithms for Mesh-connected Parallel Computers with Separable Row/Column Buses, IEEE Trans. Parallel and Distributed Systems, 4(10):1073-1079, Oct. 1993.
참조 3 : J. Duato, F. Silla, and S. Yalamanchili. A High Performance Router Architectures for interconnection Networks. 1996 International Conference on Parallel Processing,, pp I-61-68, 1996.
상술한 미국 특허 4,933,936번과 참고문헌에 대하여 간략히 살펴보면, 미국 특허 4,933,936번의 내용은 분산환경에서 두개의 독립적인 통신경로를 통하여 통신종류에 따라, 방송메시지는 버스 네트웍을 통해 전송하고 그외의 메시지는 다른 경로인 통신링크를 통해 전송하도록 하기 위해 2개의 분리된 물리적인 네트워크를 형성한다.
또한, 참조 1에 대응하는 논문의 내용은 메쉬 컴퓨터에 방송을 위한 네트워크의 추가시 얻을수 있는 효과(수행시간의 축소)에 대한 내용을 다루고 있으며, 참조 2에 대응하는 논문의 내용은 행렬버스를 갖는 메쉬 구조로 연결된 컴퓨터에 대해 소그룹계산과 선행계산등의 계산을 최소한의 네트웍 자원만으로 시간 복잡도 손실없이 수행하는 방법을 제시하고 있다.
마지막으로, 참조 3에 대응하는 논문의 내용은 일대일 통신시 웨이브 파이프라이닝이라는 전송기법을 적용 출발노드에서 도착노드까지의 링크에 서킷(circuit)을 형성하여 자료를 전송하는 라우터 구조를 제안하고 있다.
상술한 미국 특허 4,933,936번과 참고문헌들의 내용을 간략히 도시하여 살펴보면, 첨부한 도 3과 도 4에 도시되어 있는 바와 같이 두 개의 분리된 통신망을 갖는 구조이다.
도 3은 1차원 배열을 예시하고 있으며, 도 4는 물리적으로 행렬버스를 갖는 2차원 메쉬 통신망의 구조를 예시하고 있는데, 도 4에 도시되어 있는 각각의 노드(N)는 16비트 공용 버스(CBa∼CBd, RBa∼RBd)와 16비트 단방향 링크(L)에 연결되어진 4개의 채널로 구성된다. 이 경우 각 노드는 점대점 링크를 위한 스위치와 공용 버스선을 구동하는 트랜시버(transceiver)를 갖추어야 하는데, 버스 트랜시버의 팬아우트(fan-out)문제 때문에 버스 속도는 점대점 링크보다 느려지는 문제가 있다.
따라서, 미국 특허 4,933,936번과 참고문헌 등에 소개된 종래의 기술은 하나의 단위컴퓨터에 2개의 분리된 통신망을 연결하여 각각을 통해 방송메세지와 일대일 전송 메시지를 처리하고 있다. 이러한 방식은 통신망 트래픽이 2개의 분리된 통신망에 균등하게 분배되는 경우만이 통신망 자원의 효과적인 이용을 기대할 수 있다.
그러나, 통신망 트래픽이 한 종류의 통신망에만 집중되는 경우 다른 종류의 통신망에는 메시지를 처리할 여유가 있음에도 불구하고, 전체 통신망은 포화상태에 이른다. 즉, 2개의 통신망에 대한 대역폭(bandwidth) 할당은 수행할 일의 종류에 관계없이 통신망 설계 단계에서 미리 정해지므로, 할당된 대역폭에 맞는 통신 패턴을 갖는 한정된 몇몇 응용프로그램을 제외한 대부분 프로그램에서 통신망 자원의 낭비를 초래한다는 문제점이 발생되었다.
상술한 바와같은 종래 기술의 문제점을 해소하기 위한 본 발명의 목적은 프로세서간의 연결 구조에 가상버스를 도입함으로써 일반적인 점대점 통신은 물론 긴급한 메시지나 여러 컴퓨터에 한번에 메시지를 전송하는 방송 메시지에 적합하고 대규모의 병렬 시뮬레이션이나 실시간 프로그램 등의 고속처리를 가능하게 하기 위한 가상 버스를 사용한 연결망을 갖는 분산 컴퓨팅 시스템 및 데이터 통신 방법을 제공하는 데 있다.
도 1은 종래 점대점 링크 연결방식을 설명하기 위한 예시도
도 2는 종래 버스 연결방식을 설명하기 위한 예시도
도 3은 연결 네트워크를 이원화시킨 경우의 1차원 배열 예시도
도 4는 연결 네트워크를 이원화시킨 경우 물리적으로 행렬버스를 갖는 2차원 메쉬 통신망의 구조도
도 5는 본 발명에 따른 가상버스를 이용한 1차원 배열의 예시도
도 6은 본 발명에 따른 가상버스를 이용한 2차원 메쉬컴퓨터에서의 구조도
도 7은 본 발명에 따른 라우터의 구조를 설명하기 위한 종래의 라우터 구조 예시도
도 8은 본 발명에 따른 라우터의 구조 예시도
도 9는 단일 가상버스에 대한 중재회로의 구성 예시도
도 10은 고갈상태의 해결방안을 설명하기 위한 예시도
도 11은 교착상태를 설명하기 위한 예시도
도 12는 본 발명에 따른 링크상의 흐름제어에서 동결 통신 규약을 설명하기 위한 예시도
도 13은 일상적인 파이프 라이닝을 설명하기 위한 예시도
도 14는 웨이브 파이프 라이닝을 설명하기 위한 예시도
도 15는 본 발명에 따른 라우터의 구조를 설명하기 위한 종래의 라우터 구조 예시도
도 16은 본 발명에 따른 라우터의 구조 예시도
도 17은 본 발명에 따른 가상버스를 이용한 메쉬구조 및 가상 버스를 위한 신호선들을 설명하기 위한 예시도
도 18은 일대일 전송과정을 설명하기 위한 예시도
도 19는 일대다 전송을 위한 비트 벡터
상기 목적을 달성하기 위한 본 발명의 특징은, 소정갯수의 라우터들이 구비되며 각 라우터들간에는 점대점 링크로 연결되고, 각각의 라우터마다 하나씩의 프로세서가 연결되는 일차원적 분산 컴퓨팅 시스템에 있어서: 상기 라우터들 각각은 인접 라우터와 연결되어 있는 점대점 링크를 특정 조건상에서 하나의 가상 버스로 사용하기 위해 라우터들의 배열 차원에 대응하여 입출력 단자간에 데이터 직접 전송경로를 형성하는 수단과, 각 라우터들간의 정보교환을 위해 각 라우터들이 배열되어 있는 일차원적 구조에 따라 상기 각 라우터들과 와이어 오아 개념으로 묶여 있는 제어라인을 포함하고, 상기 라우터 내부에서 입출력 단자간에 구비되어 있는 데이터 직접 전송경로 형성을 위한 수단이 구동되어 가상버스를 형성하는 경우 상기 제어라인이 구동하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 다른 특징은, 소정갯수의 라우터들이 구비되며 각 라우터들간에는 점대점 링크로 연결되고, 각각의 라우터마다 하나씩의 프로세서가 연결되는 분산 컴퓨팅 시스템에 있어서: 상기 라우터들 각각은 인접 라우터와 연결되어 있는 점대점 링크를 특정 조건상에서 하나의 가상 버스로 사용하기 위해 라우터들의 배열 차원에 대응하여 입출력 단자간에 데이터 직접 전송경로를 형성하는 수단과, 각 라우터들간의 정보교환을 위해 각 라우터들이 배열되어 있는 구조에 따라 상기 각 라우터들과 와이어 오아 개념으로 묶여 있는 제어라인을 포함하고, 상기 라우터 내부에서 입출력 단자간에 구비되어 있는 데이터 직접 전송경로 형성을 위한 수단이 구동되어 가상버스를 형성하는 경우 상기 제어라인이 구동하는 일차원 배열의 분산 컴퓨팅 시스템을 다차원 메쉬, 하이퍼큐브, 계층적 링등과 같은 계층적 연결구조로 배열 형성하여 2차원 이상의 구조를 갖는 데 있다.
상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로는 상기 라우터가 이차원 배열구조를 갖는 경우 라우터들 각각에는 통상의 링크 라우터에 행축으로의 가상버스 연결시 가상버스 형성에 관련한 정보를 상기 행 제어라인을 통해 행축의 다른 라우터에게 알리고 중재하는 행중재수단과; 열축으로의 가상버스 연결시 가상버스 형성에 관련한 정보를 상기 열 제어라인을 통해 열축의 다른 라우터에게 알리고 중재하는 열중재수단과; 행축으로 연결되어 있는 점대점 링크를 통해 제 1 행방향 또는 상기 제 1 행방향과 역방향인 제 2 행방향으로 입력되는 행축 데이터와 열축으로 연결되어 있는 점대점 링크를 통해 제 1 열방향 또는 상기 제 1 열방향과 역방향인 제 2 열방향으로 입력되는 열축 데이터를 입력받아 버퍼에 저장한 후 각 데이터의 목적 라우터에 전송가능한 출력방향에 연결되어 있는 점대점 링크측으로 전달하는 링크 전달수단과, 상기 링크데이터 전달수단에 입력되는 데이터를 라우터와 연결되어 있는 프로세서 측으로 전달하거나 프로세서측으로부터 발생되는 데이터를 목적 라우터에 전송하기 위해 상기 링크데이터 전달수단으로 제공하는 링크데이터 종단 통신수단과, 상기 링크 데이터 동결 제어부의 동작에 따라 상기 링크 전달수단의 입출력동작이 중지하는 경우 상기 링크데이터 전달수단에 입력되는 데이터를 직접 입력받아 동기를 매칭시켜 출력하는 동기화 수단과, 상기 동기화 수단에서 동기 매칭된 상태에서 출력되는 데이터를 입력받아 행축으로 연결되어 있는 점대점 링크를 통해 제 1 행방향 또는 제 2 행방향으로 출력하거나 열축으로 연결되어 있는 점대점 링크를 통해 제 1 열방향 또는 제 2 열방향으로 출력하는 전송수단과, 제 1 행방향과 제 2 행방향과 제 1 열방향 및 제 2 열방향에 각각 구비되며 그 각각은 해당 방향에 대해 상기 전송수단에서 출력되는 데이터와 상기 링크 전달수단에서 출력되는 데이터를 입력받아 선택적으로 출력하는 멀티플렉서(M1∼M4)와, 프로세서 방향의 우회 입출력을 위한 멀티플렉서와, 가상버스 데이타의 차원간 이동을 위한 멀티플렉서와, 차원간 전송 및 프로세서쪽으로의 전송을 위한 멀티플렉서, 가상버스 데이타와 프로세서간의 버퍼링을 위한 버퍼부로 이루어져 동일 차원내의 가상버스 형성위해 리피터로 구성되며 행 또는 열축의 가상버스나 가상버스에서 프로세서로의 브리지기능을 수행하는 중계수단과; 상기 중계수단의 동작에 연동하여 가상버스와 프로세서간의 데이터송수신을 제어하는 종단간 흐름 제어부와; 버스 데이터의 전송시 링크 데이터를 저장하여 데이터의 충돌을 방지하는 링크 데이터 동결 제어부와; 상기 행열 가상버스의 고갈상태 방지 및 교착상태 방지를 위한 행 가상버스상의 우선순위 순환 및 열 가상버스상의 동기화 우선순위 순환을 위한 쉬프팅수단; 및 메시지의 출발노드에서부터 이 라우터 사이에 웨이브 파이프라이닝에 의해 파이프라이닝되고 있는 데이터 양만큼을 담을 수 있는 버퍼 공간이 남아 있는가를 감시하며, 버퍼 공간이 부족하면 가상버스의 구동을 위해 상기 출발노드에 상기 행 제어라인과 열 제어라인을 통하여 전송 잠시 중지를 요청하는 수신 버퍼 제어부를 포함하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 특징은, 소정갯수의 라우터들이 행열구조로 배열되며, 각 라우터들간에는 점대점 링크로 연결되되 라우터들 각각은 인접 라우터와 연결되어 있는 점대점 링크를 특정 조건상에서 하나의 가상 버스로 사용하기 위해 행축과 열축 각 방향으로의 입출력 단자간에 데이터 직접 전송경로를 구비하며, 상기 라우터 내부에서 입출력 단자간에 구비되어 있는 데이터 직접 전송경로가 구동하여 가상버스를 형성하는 경우 각 라우터들간의 정보교환을 위해 각 라우터들이 배열되어 있는 행과 열을 따라 상기 각 라우터들과 와이어 오아 개념으로 묶여 있는 행 제어라인과 열 제어라인을 구비하여 분산 컴퓨팅 시스템에서 링크를 가상버스로 사용할 때 링크 데이터와 버스 데이터의 충돌을 방지하는 방법에 있어서:
상기 행 제어라인과 열 제어라인상의 버스 비지 신호를 검출하여 가상버스 동작이 수행되었는가를 판단하는 제 1 과정과, 상기 제 1 과정을 통해 가상버스 동작이 수행되었다고 판단되면 링크상에 의미 있는 데이터가 존재하는 가를 판단하는 제 2 과정과, 상기 제 2 과정을 통해 데이터가 존재한다고 판단되면 링크 데이터의 송신측에서 현재 링크상의 데이터를 무시하라는 의미의 신호를 수신측에 전송하는 제 3 과정과, 상기 제 3 과정을 통해 전송한 송신측 신호를 수신측에서 접수하기 이전에 수신측에서 데이터를 수신하여 보관하였으면 데이터 수신완료신호를 송신측으로 전송하고 데이터 보관이전에 상기 제 3 과정을 통해 전송한 송신측 신호를 수신측이 받으면 링크상의 신호를 무시하여 보관하지 않는 제 4 과정, 및 상기 제 4 과정을 통해 수신측에서 송신측으로 데이터 수신완료신호를 전송하여 이를 송신측이 받은 경우 송신측은 자신이 보관하던 데이터를 삭제하고, 수신완료신호가 없는 경우 송신측은 송신 데이터를 보관하는 제 5 과정을 포함하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 또 다른 특징은, 소정갯수의 라우터들이 행열구조로 배열되며, 각 라우터들간에는 점대점 링크로 연결되되 라우터들 각각은 인접 라우터와 연결되어 있는 점대점 링크를 특정 조건상에서 하나의 가상 버스로 사용하기 위해 행축과 열축 각 방향으로의 입출력 단자간에 데이터 직접 전송경로를 구비하며, 상기 라우터 내부에서 입출력 단자간에 구비되어 있는 데이터 직접 전송경로가 구동하여 가상버스를 형성하는 경우 각 라우터들간의 정보교환을 위해 각 라우터들이 배열되어 있는 행과 열을 따라 상기 각 라우터들과 와이어 오아 개념으로 묶여 있는 행 제어라인과 열 제어라인을 구비하여 가상버스 형성시 링크 데이터와 버스 데이터의 충돌을 방지하는 기능을 구비한 분산 컴퓨팅 시스템상에서 가상버스를 이용한 데이터 통신 방법에 있어서:
데이터를 송신하고자 하는 임의의 라우터인 출발라우터는 송신 데이터의 전송방식을 데이터의 종류에 따라 또는 수신 라우터의 위치에 따라 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 어느 하나를 선택하는 제 1 과정과, 상기 제 1 과정을 통해 선택되어진 데이터 통신모드에 따라 상기 출발라우터는 행 또는 열의 가상버스의 사용을 요청하는 제 2 과정과, 상기 제 2 과정을 통해 상기 출발라우터에서 가상버스의 사용승인을 받으면 상기 제 1 과정에서 선택된 데이터 통신모드를 상기 행 제어라인 또는 열 제어라인을 통해 전송하여 가상버스내의 라우터들에게 알려주는 제 3 과정과, 상기 제 3 과정이후 사용승인된 가상버스 상의 라우터들은 상기 출발라우터를 제외하고 모두 링크데이터 동결과정으로 진행하는 제 4 과정과, 상기 출발라우터는 형성되어 있는 가상버스를 통해 목적라우터와 브릿지에 관련한 정보를 전송하여 목적라우터 또는 브릿지를 설정하는 제 5 과정과, 상기 제 5 과정을 통해 브릿지가 설정되는 경우 각각의 브릿지는 상기 출발 라우터에서 전송되어진 목적라우터의 정보에 따라 상기 제 2 과정에서 제 4 과정까지 동작과 유사한 동작을 수행하여 목적라우터까지의 가상버스를 형성시키는 제 6 과정, 및 상기 제 6 과정을 통해 출발 라우터와 목적라우터간에 가상버스가 형성되면 출발라우터에서 데이터를 전송하는 제 7 과정을 포함하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 일대일 통신모드를 선택한 경우 목적지의 위치에 따라 행 또는 열중 어느 하나의 가상버스만을 사용할 것인지 또는 행열의 가상버스를 사용할것인지를 판단하여 하나의 가상버스만을 사용한다고 판단되면, 상기 제 2 과정내지 제 7 과정은, 출발라우터에서 버스 요청신호를 발생시켜 행 또는 열의 가상버스의 사용을 요청하는 제 1 단계와, 출발 라우터가 가상버스 사용승인을 받으려고 하는 동안 같은 해당 행 또는 열에 속한 라우터들 모두 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와, 상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 일대일모드로 선택하는 제 3 단계와, 상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와, 상기 출발라우터는 가상버스를 통해 목적라우터의 관련정보를 전송하는 제 5 단계와, 상기 제 5 단계 이후 상기 목적라우터는 버스 데이터를 받은 준비가 완료되면 상기 제 2 단계를 통해 제 1 논리상태를 유지시켰던 버스준비신호를 제 2 논리상태로 전환하는 제 6 단계, 및 상기 버스준비신호가 제 2 논리상태로 전환되면 상기 출발라우터는 버스 데이터의 전송을 수행하는 제 7 단계로 진행되는 데 있다.
상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 일대일 통신모드를 선택한 경우 목적지의 위치에 따라 행 또는 열중 어느 하나의 가상버스만을 사용할 것인지 또는 행열의 가상버스를 사용할것인지를 판단하여 행열의 가상버스를 사용한다고 판단되면, 상기 제 2 과정내지 제 7 과정은, 출발라우터에서 행 버스 요청신호를 발생시켜 행 가상버스의 사용을 요청하는 제 1 단계와, 상기 제 1 단계를 통해 출발 라우터가 행 가상버스 사용승인을 받으려고 하는 동안 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호에 의해 상기 행 제어라인의 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와, 상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 일대일모드로 선택하는 제 3 단계와, 상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와, 상기 출발라우터는 행 가상버스를 통해 목적라우터의 관련정보를 전송함에따라 상기 목적라우터와 같은 열에 존재하는 라우터가 자신을 브릿지로 설정함과 동시에 상기 출발라우터와 브릿지를 제외한 행 가상버스내 모든 라우터들은 상기 제 2 단계를 통해 제 1 논리상태를 유지시켰던 버스준비신호를 제 2 논리상태로 전환하는 제 5 단계와, 상기 브릿지에서 목적라우터까지의 가상버스 연결을 위해 열 가상버스 중재를 요청한 후 사용 승인이 떨어지면 상기 브릿지는 형성된 열 가상버스를 통해 목적라우터의 관련정보를 전송하는 제 6 단계와, 상기 제 6 단계를 통해 목적라우터로 정의된 라우터는 버스 데이터를 받을 준비가되면 열 버스준비신호를 제 2 논리상태로 전환하며, 반면에 해당 열 가상버스상의 브릿지와 목적 라우터를 제외한 라우터들은 열 버스준비신호를 제 2 논리상태로 즉시 전환하는 제 7 단계, 및 상기 제 7 단계를 통해 브릿지에서 열 버스준비신호가 제 2 논리상태로 전환되면 브릿지는 행 버스준비신호를 제 2 논리상태로 전환하며, 상기 출발라우터는 행 버스준비신호가 제 2논리상태로 전환된 것을 확인하고 버스 데이터의 전송을 수행하는 제 8 단계로 진행되는 데 있다.
상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 일대다 통신모드를 선택한 경우 상기 제 2 과정내지 제 7 과정은, 출발라우터에서 행 버스 요청신호를 발생시켜 행 가상버스의 사용을 요청하는 제 1 단계와, 상기 제 1 단계를 통해 출발 라우터가 행 가상버스 사용승인을 받으려고 하는 동안 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호에 의해 상기 행 제어라인의 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와, 상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 일대다 통신 모드로 선택하는 제 3 단계와, 상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와, 상기 출발라우터는 행 가상버스를 통해 일대다 통신의 브릿지 역할을 해야할 라우터에 대한 정보를 비트백터 형태로 전달함에 따라 행가상버스상의 대상 라우터들은 자신을 브릿지로 설정하고 일단 행 버스준비 신호를 제 2 논리상태로 전환함과 동시에 열 가상버스 사용을 요청하는 제 5 단계와, 상기 제 5 단계를 통해 행 버스준비 신호가 제 2 논리상태로 전환되었음을 확인한 출발라우터는 목적지에 대한 브릿지의 개수만큼의 비트백터를 연속적으로 전송하고 그에따라 각각의 브리지들은 자신의 열에 해당하는 목적지 비트백터만을 간직한 후 현재 제 2 논리상태인 행 버스준비 신호를 제 1 논리상태로 전환하는 제 6 단계와, 상기 브릿지들에서 목적라우터까지의 가상버스 연결을 위해 열 가상버스 중재를 요청한 후 사용 승인이 떨어지면 각각의 브릿지들은 형성된 열 가상버스를 통해 저장된 목적지 비트백터를 열가상버스를 통해 전송하는 제 7 단계와, 상기 제 7 단계를 통해 목적라우터로 정의된 라우터는 버스 데이터를 받을 준비가되면 열 버스준비신호를 제 2 논리상태로 전환하며, 반면에 해당 열 가상버스상의 브릿지와 목적 라우터를 제외한 라우터들은 열 버스준비신호를 제 2 논리상태로 전환하며, 이를 확인한 각각의 브릿지들은 자신이 데이터 전송준비가 된 상태에서 행 버스준비신호를 제 2 논리상태로 전환하는 제 8 단계, 및 상기 제 8 단계를 통해 모든 브릿지에서 행 버스준비신호가 제 2 논리상태로 전환되면 상기 출발라우터는 버스 데이터의 전송을 수행하는 제 9 단계로 진행되는 데 있다.
상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 열방송 통신모드를 선택한 경우 상기 제 2 과정내지 제 7 과정은, 출발라우터에서 행 버스 요청신호를 발생시켜 행 가상버스의 사용을 요청하는 제 1 단계와, 상기 제 1 단계를 통해 출발 라우터가 행 가상버스 사용승인을 받으려고 하는 동안 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호에 의해 상기 행 제어라인의 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와, 상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 열 방송 통신 모드로 선택하는 제 3 단계와, 상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와, 상기 출발라우터는 행 가상버스를 통해 열 방송 통신의 브릿지 역할을 해야할 라우터들에 대한 정보를 비트백터 형태로 전달함에 따라 행가상버스상의 대상 라우터들은 자신을 브릿지로 설정하고 열 가상버스 사용을 요청함과 동시에 출발라우터와 브릿지들을 제외한 행 가상버스내 다른 라우터들은 일단 행 버스준비 신호를 제 2 논리상태로 전환하는 제 5 단계와, 상기 브릿지들에서 목적라우터까지의 가상버스 연결을 위해 열 가상버스 중재를 요청한 후 사용 승인이 떨어지면 각각의 브릿지들은 형성된 열 가상버스를 통해 해당 열 가상버스내의 모든 라우터들에게 목적지임을 알리고 상기 목적 라우터들은 버스 데이터를 받을 준비가 되면 열 버스준비신호를 제 2 논리상태로 전환하는 제 6 단계와, 상기 브릿지들은 상기 열 버스준비신호가 제 2 논리상태로 전환된 것을 확인한 후에 데이터 전송준비가 완료되면 행 버스준비 신호를 제 2 논리상태로 전환하는 제 7 단계, 및 상기 제 7 단계를 통해 모든 브릿지에서 행 버스준비신호가 제 2 논리상태로 전환되면 상기 출발라우터는 버스 데이터의 전송을 수행하는 제 8 단계로 진행되는 데 있다.
상기 목적을 달성하기 위한 본 발명의 부가적인 특징으로 상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 방송 통신모드를 선택한 경우 상기 제 2 과정내지 제 7 과정은, 출발라우터에서 행 버스 요청신호를 발생시켜 행 가상버스의 사용을 요청하는 제 1 단계와, 상기 제 1 단계를 통해 출발 라우터가 행 가상버스 사용승인을 받으려고 하는 동안 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호에 의해 상기 행 제어라인의 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와, 상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 방송 통신 모드로 선택하는 제 3 단계와, 상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와, 상기 제 3 단계를 통해 출발라우터에서 방송 전송모드을 구동하였으므로 행 가상버스내에 존재하는 모든 라우터들이 브릿지로서 열 가상버스 중재를 요청하는 제 5 단계와, 상기 제 5 단계를 통해 상기 브릿지들에서 목적라우터까지의 가상버스 연결을 위해 열 가상버스 중재를 요청한 후 사용 승인이 떨어지면 각각의 브릿지들은 형성된 열 가상버스를 통해 해당 열 가상버스내의 모든 라우터들에게 목적지임을 알리고 상기 목적 라우터들은 버스 데이터를 받을 준비가 되면 열 버스준비신호를 제 2 논리상태로 전환하는 제 6 단계와, 상기 브릿지들은 상기 열 버스준비신호가 제 2 논리상태로 전환된 것을 확인한 후에 데이터 전송준비가 완료되면 행 버스준비 신호를 제 2 논리상태로 전환하는 제 7 단계와, 상기 제 7 단계를 통해 모든 브릿지들에서 행 버스준비신호가 제 2 논리상태로 전환되면 상기 출발라우터는 버스 데이터의 전송을 수행하는 제 8 단계로 진행되는 데 있다.
이하, 첨부한 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 살펴보기로 한다.
도 5는 본 발명에 따른 가상버스를 이용한 1차원 배열의 예시도이며, 도 6은 본 발명에 따른 가상버스를 이용한 2차원 메쉬컴퓨터에서의 구조를 보여주고 있다.
첨부한 도 5에서 가상버스(VB)의 데이터 경로는 물리적으로 점대점 링크와 공유하고, 버스 제어선(VBC) 몇 개만이 기존의 버스처럼 공통선으로 연결된다. 가상버스(VB)는 버스를 통해 전송되어야할 긴급메세지나 방송메세지가 발생한 경우에만 가상적으로 점대점 링크를 통해 형성된다.
즉, 버스동작이 없는 상태에서는 일대일 전송 메시지들이 정상적으로 링크를 통해 전송된다. 이때 버스동작이 요청되면 기존의 링크를 통해 전송되던 메시지들의 전송이 동결(freeze)되고, 가상의 버스가 점대점 링크를 통해 형성된다. 또한, 가상버스는 버스 동작이 필요한 경우에만 동적으로 데이터 전송로로 링크를 우선적으로 사용한다. 가상버스의 데이터 전송은 다음에 소개할 웨이브 파이프라이닝 방식으로 전송된다. 이는 차후에 설명하도록 한다.
첨부한 도 6을 참조하여 가상버스의 동작방식을 살펴보기로 한다. 우선, 참조번호 M1∼M4는 메시지를 나타내며 메시지가 발생한 순서를 의미하며, 4개의 메시지(M1∼M4)는 순차적으로 겹쳐지는 시간대 동안 전송을 하는 것으로 가정한다.
즉, 제 1 메시지(M1)의 전송이 종료되기 이전에 제 4 메시지(M4)가 발생한다. 제 1 내지 제 3 메시지(M1∼M3)는 점대점 링크 메시지로 서로 다른 채널을 사용하여 통신을 하므로 동시에 전송될 수 있다.
이때, 노드 N02에서 노드 N12, N20를 목적지로 정한 일대다(multicast) 통신을 위한 제 4 메시지(M4)가 생성된다. 중재(arbitration )과정을 끝낸 후, 두 개의 가상버스(CVB, RVB)가 형성된다. 하나는 노드 N02에서 노드 N32까지의 2행 가상버스(RVB)이고, 또 다른 하나는 노드 N20에서 노드 N23까지의 2열 가상버스(CVB)이다.
노드 N22는 두 가상버스의 교량(bridge)역할을 한다. 가상버스는 점대점 링크 통신보다 우선하므로, 가상버스 형성과정에서 그 경로 상을 지나던 제 2 메시지(M2)는 링크상의 데이터를 라우터내의 버퍼로 대피시키는 동결(freeze)과정을 거쳐 상기 제 4 메시지(M4)의 전송이 종료될 때까지 잠시 멈춘다. 이때, 제 3 메시지(M3)는 가상버스의 자료 전송과 반대방향으로 전송 중이므로, 가상버스의 영향을 받지 않고 계속 전송을 진행한다.
상술한 동결과정을 통해 전송경로를 확보한 제 4 메시지(M4)는 가상버스를 통해 전송을 진행한다. 그리고 상기 제 4 메시지(M4)의 전송이 종결되어 가상버스가 제거되면, 라우터 내의 버퍼상에 대피해 있었던 제 2 메시지(M2)의 데이터는 복원되어 다시 전송되어 진다.
상기 가상버스는 일대일(unicast), 일대다(multicast), 방송(broadcast) 통신을 모두 지원하기 위해서는 가상버스의 운영을 위한 통신규약이 정의되어야 하는데, 이는 본 설명의 마지막 부분에서 상세히 설명하기로 하고, 가상버스를 갖는 메쉬 컴퓨터의 라우터 구조를 첨부한 도 7과 도 8을 참조하여 살펴보기로 한다.
도 7은 본 발명에 따른 라우터의 구조를 설명하기 위한 종래의 라우터 구조 예시도이고, 도 8은 본 발명에 따른 라우터의 구조 예시도이다.
우선, 가상버스를 위한 라우터내 데이터 경로를 살펴보면, 도 8은 기본적인 2차원 라우터에 가상버스를 위해 추가되는 데이타 경로를 보여주고 있다.
가상버스 개념을 적용할 수 있는 라우터의 구조는, 현재 다중켬퓨터의 연결 구조를 많이 사용되는 웜홀(wormhole) 라우터, 서킷스위칭(circuit switching) 라우터 등의 컷스루(cut-through) 라우터에 모두 적용될 수 있다. 설명의 편의를 위해 기본 라우터를 웜홀라우터로 한정한다.
따라서, 기본적인 라우터로 근래에 다중컴퓨터에 많이 쓰이는 웜홀라우터를 첨부란 도 7을 참조하여 간략히 살펴보면, 웜홀라우터는 메세지를 플릿(flit : flow control digit)이라는 작은 단위로 쪼개어 파이프라이닝 방식으로 자료를 전송한다. 이때, 웜홀라우터는 적은 수의 플릿 버퍼와 링크 자원으로 구성되며, 각 방향에 대해 2개의 단방향 링크를 갖고 있다.
도 7에 도시되어 있는 바와같은 웜홀라우터를 기준으로 가상버스의 데이터 경로를 위한 회로가 추가된 것이 첨부한 도 8에 도시되어 있는 구조로서, 각 네 방향의 링크에 대해 가상버스 적용시 입력에서 출력까지 라우터를 가로질러 갈 수 있는 우회경로가 필요하다.
이를 위해 각 출력단 끝에 2대1 멀티플렉서(multiplexer)(mf, mh, mj, mm)가 구비되어 있으며, 노드의 프로세서쪽 입출력 버퍼를 우회하기 위해 멀티플렉서(ma, md)가 구비된다.
가상버스를 형성하기 위해서는 멀티플렉서가 플릿 버퍼를 고립시키고 입력에서 출력으로 직접 연결한다. 즉, 한 행이나 열의 모든 라우터에 이러한 우회경로가 설정되면, 비로서 이 행이나 열에 대한 가상버스가 형성되는 것이다.
만일 메시지의 출발노드와 도착노드가 같은 행 또는 열에 속한다면, 메시지는 하나의 가상버스를 통해 전송이 가능하다. 그러나 다른 행과 다른 열에 속한다면, 여러 개의 가상버스를 통해 전송이 이루어져야 한다.
가상버스를 사용하는 순서는 교착상태(deadlock)를 방지하기 위해 차원순(dimension order), 즉 2차원 메쉬인 경우 행(row)을 먼저 그 다음 열(column) 가상버스를 사용한다.
행에서 열 가상버스로의 데이터 전송을 위해서는 둘 사이의 데이터 경로를 열어주는 브리징(bridging) 기능이 요구되는데, 이를 위한 구성이 참조번호 mm, mk, mc로 지칭되는 멀티플렉서로써, 행에서 열로의 브리징 기능을 위해 사용되어 진다. 또한, 참조번호 mc로 지칭되는 멀티플렉서는 프로세서 방향으로의 연결을 위해서도 사용되며, 버퍼(B1, B2) 역시 프로세서 방향으로의 연결을 위해 구비되는데, 본 발명에 따른 가상버스는 링크 레벨의 흐름제어를 하지 않고 종단(end-to-end) 제어만을 하므로 상기 버퍼(B1, B2)는 종단 제어가 가능한 정도의 용량을 갖는다.
상술한 바와같은 가상버스를 갖는 라우터는 행렬 버스를 위한 중재기능이 필요한데, 가상버스를 위한 중재회로는 기존의 어떠한 것이라도 적용될 수 있다. 다만, 이후 설명할 동결 통신규약 및 가상버스 통신규약 상의 이점을 위해, 코드 자기선택 분포 중재(coded self-selection distributed arvitration )회로를 채용한다. 이 회로는 16×16 메쉬인 경우 첨부한 도 9와 같다.
이하, 첨부한 도 9를 참조하여 중재기의 구성 및 동작을 살펴보기로 한다.
이 회로의 동작은 입력동기화(input synchronization), 선택(selection) 출력 동기화(output synchronization)의 3단계를 수행하는데, 동기화 과정은 여러 노드가 동시에 버스동작을 수행하지 않도록 한다.
선택 단계에서는 자신의 우선순위(bus priority; AN3∼AN0)와 버스동작 요청하는 다른 노드의 순위를 비교하여 선택여부를 다음 단계로 전달한다. 이 회로에는 버스요청(bus request), 버스 비지(busy), 그리고 선택과정을 위해 가상버스를 형성하는 행렬의 노드 수 k의 log2k(16×16메쉬인 경우 log216=4)개의 공통선이 필요하다.
버스의 운용에 있어서 모든 노드에 기회를 배분하는 문제는 중요하다. 고갈상태(starvation)같은 버스 요청을 한 노드가 불공정하게 오래 혹은 영원히 기다려야하는 경우가 없어야 한다.
따라서, 본 발명에서는 가상버스의 공정한 사용을 위해 다음과 같은 방법을 고안하였다.
먼저, 행 가상버스는 각각이 독립적으로 일정한 시간을 주기도 도 9의 버스 순위 쉬프터를 통해 각 노드의 버스 우선순위(bus priority)를 동시에 증가(최고값을 갖는 노드는 0으로 변경함)시킨다. 하나의 행 가상버스의 우선순위가 이렇게 순환을 함으로써, 같은 행내의 모든 노드는 행 가상버스에 대해 동등한 기회를 갖게 된다 열 가상버스에 대한 버스 우선순위는 행 가상버스처럼 순환을 하지만 행 가상버스와는 달리 도 10에서 보듯이, 모든 열의 우선순위를 동시에 변경한다. 이런 방식을 통해 열에 대해서도 모든 노드에 동등한 기회를 부여함과 동시에 교착상태의 가능성을 현저하게 줄인다.
가상버스를 사용하여 일대일 통신을 할 때는 차원순에 의해 행 가상버스를 먼저 잡고 그 다음으로 열 가상버스를 사용하기 때문에, 교착상태가 발생하지 않는다. 하지만 일대다 통신을 할 때는 여러 개의 열 가상버스를 동시에 점유해야하므로 교착상태(도 11 참조)가 발생할 수 있다.
첨부한 도 11을 참조하여 교착상태에 대한 예를 들어, 노드 N11에서 N02와 N22로 가는 메시지와 노드 N10에서 노드 N01과 노드 N21로 가는 메시지가 동시에 가상버스를 사용하는 경우를 생각해 보자.
첨부한 도 11에서 실선은 이미 점유한 부분을 나타내고, 점선은 점유를 시도하는 부분을 나타내고 있다고 가정하면, 도 11에서 처럼 두 메시지가 서로 다른 메시지가 점유하고 있는 열 가상버스의 점유를 기다리는 상황이 발생할 수 있다. 이러한 경우 교착상태가 발생할 수 있다.
이를 위해 가상버스의 중재회로에 시간제한(time out)을 두어, 일정 시간이 경과후에는 메시지 전송에 필요한 모든 가상버스를 점유하지 못하는 경우, 이미 점유한 버스의 점유를 포기하고 일정시간 경과후 다시 전송을 시도하도록 하였다.
이때의 일정시간은 이더넷(ethernet)에서 사용하는 지수함수 방법, 즉 재시도 횟수가 증가함에 따라 그 일정시간을 2배씩 늘려가는 방법을 사용한다. 점유된 가상버스는 항상 일정시간까지만 점유하게되어 교착상태의 조건에서 벗어나게 된다.
이러한 교착상태는 특정한 두 노드가 거의 동시에 가상버스 설정을 요구하는 드문 경우에 해당한다. 특히 앞서 설명한 고갈상태(도 10 참조)를 방지하기 위해 도입한 열 가상버스의 우선순위 동기순환에 의해 특정한 행 가상버스에서는 모든 열 가상버스의 우선순위가 같은 값을 가지므로, 열 가상버스의 중재 과정에서 자연스럽게 교착상태가 방지되는 효과가 있어 실제로 교착상태가 일어나는 경우는 극히 드물며, 성능분석 결과 교착상태로 인한 평균 통신시간 증가는 거의 없었다는 점을 밝혀둔다.
상기의 내용을 통해 가상버스의 중재를 위한 기술적 수단들을 살펴보았는데, 전술하였던 바와같이 점대점 통신 메시지에 비하여 가상버스를 이용한 통신 메시지가 우선순위를 갖기 때문에, 가상버스가 형성될 때 가상버스상에 데이터가 지나가는 방향의 링크를 사용하던 점대점 통신 메시지들은 동결 과정을 통해 링크 상에 있던 데이터들을 손실없이 라우터내의 버퍼에 보존시켜야 함으로 이를 위한 동결과정의 통신 규약이 제공되어야 한다.
상술한 필요성에 의해 본 발명에서 제공하고자 하는 동결과정의 통신 규약을 첨부한 도 12를 참조하여 살펴보기로 한다.
도 12은 웜홀라우팅같은 컷스루 라우터의 대표적인 통신규약인 2사이클 핸드쉐이킹 통신규약(two cycle handshaking protocol)과 이 통신규약에 대한 가상버스가 형성될 때의 동결 통신규약을 보여주고 있다.
가상버스상에 진행중이던 메시지는 라우터내의 플릿 버퍼(FB)에 보존되어야 한다. 이때 중요한 점은 동결과정에서 전송 중이던 데이터가 중복 저장되거나 손실되는 경우가 없어야한다는 점이다.
중재회로를 통해 공통선으로 연결된 버스 비지 신호선에 의해 가상버스 동작이 시작됨을 알 수 있다. 도 12에서의 동결신호(Freeze)는 가상버스 중재회로와 연결된 내부 신호선이다.
엔코드 분산 중재(Encoded distributed arbitration )의 경우 동결신호는 라우터 외부의 공통선인 버스 비지 신호와 직접 연결된다. 한 행이나 열의 라우터들은 거의 동시에 동결신호를 받게 되어서, 동결신호를 받는 순간의 상태대로 동결에 들어가면 되지만, 본 동결과정의 통신 규약에서는 동결신호를 동시에 받지 못하는 드물게 일어날 수 있는 상황에 대해서도 고려를 하였다.
우선, 도 12의 1∼6 구간은 전형적인 2사이클 신호방식을 보여주고 있다.
두 라우터간의 핸드쉐이킹 신호는 요청(Req)과 응답(Ack)의 제어신호로 되어 있다. 링크 상에 존재하는 데이터는 도 12에서 *_Data로 지칭되며, 도 12에서 *_FiltBuf로 지칭되는 것은 라우터내의 플릿버퍼(FB)에 보존된 데이터를 나타낸다.
설명을 단순히 하기 위해, 라우터의 입력에서 출력까지는 한 개의 플릿버퍼가 있다고 가정한다. *_Data와 *_FlitBuf 값은 전송데이타의 플릿단위의 일렬번호를 의미하며, 모든 신호의 이름은 특정숫자로 시작하는데, 이는 신호가 출발하는 노드의 ID를 의미한다.
송신측은 요청신호와 함께 데이터를 실어보내면, 수신측은 데이터수신과 함께 응답신호를 보낸다. 즉, 수신측은 먼저 자신이 플릿버퍼가 빈(empty)상태가 되기를 기다리고, 빈 상태가 되면 링크상의 데이터를 플릿버퍼에 랫치(latch)하고 응답신호를 토글(toggle)시킨다.
따라서 요청신호와 응답신호가 같은 값이면 송수신이 없거나 완료되어 링크 상에 의미있는 데이터가 없음을 나타내고, 그 값이 서로 다르면 송신측이 송신요청과 함께 링크상에 데이터를 실은 상태임을 의미한다. 이렇듯 제어신호는 신호선의 레벨이 아닌 변화(toggling)에 의미를 지니게 함으로써, 2사이클만에 다음 데이터 전송이 가능해진다.
이때, 도 12의 7∼12 구간은 동결신호가 발생할 때 진행중이던 점대점 링크 메시지가 동결되는 과정을 보여주고 있다. 이때, 중요한 점은 점대점 링크상에 데이터(Data)를 잃어버리거나 중복 저장되는 경우가 없어야 한다는 점이다. 링크상의 데이터는 링크 상에만 존재하는 것이 아니라, 송신측 플릿버퍼에 저장된 내용이다. 따라서 수신측이 링크상의 데이터를 자신의 플릿버퍼에 저장하였는지 여부를, 송신단이 정확히 파악하는 것이 중요하다.
먼저, 요청신호와 응답신호가 같은 값인 경우는 링크 상에 의미 있는 데이터가 없음을 의미하므로, 현 상태 그대로 각 라우터가 통신을 멈추면 동결이 완료된다.
반면에 요청신호와 응답신호가 다른 값인 경우는 두가지로 나누어 고려해야한다. 원칙적으로 중요한 점은 동결신호가 발생했을 때, 수신측이 현재 링크 상에 떠 있는 데이터를 저장할 수 있는지 여부이다. 그러나 이는 송신측 입장에서는 알 수 없고, 수신측이 저장할 수 없을 때 송신측이 기다리고만 있을 수도 없다.
따라서 동결신호가 발생했을 대, 송신측은 회수요청신호(backoff), 즉 응답을 받기 전에 요청신호를 토글함으로써 현재 링크상의 데이터를 무시하라는 의미의 신호를 수신측에 보낸다. 이러한 통신규약은 매우 동시적으로 발생하므로, 수신측이 회수요청을 보지 못하고 정상적으로 응답신호를 토글하며 데이터를 저장해 버릴 수도 있다. 결과적으로 송수신 양단의 라우터들은 회수요청여부와 응답신호를 종합하여 플릿버퍼의 값의 폐기여부를 결정하게 된다.
첫째로 수신단이 빈 플릿버퍼를 갖고 있는 상태에서 회수요청 여부와 관계없이 이미 응답신호를 토클한 상태에서 동결신호를 받는다면, 수신단은 새로이 받는 데이터를 플릿버퍼에 보존하고 동결한다. 송신단도 회수요청 여부에 관계없이 수신단이 안전하게 현재 링크상의 데이터를 보존했음을 알았으므로, 자신의 플릿버퍼의 자료중복을 막기 위해 데이터를 폐기하고 동결한다. 이러한 경우가 도 12의 라우터 0과 1의 관계이다.
둘째로 수신단의 플릿버퍼가 차 있어서 링크상의 데이터에 대한 응답을 보내지 못한 상태에서 동결신호를 받는 경우이다. 이 경우 수신단은 회수요청 신호를 받을 때까지 기다린다. 송신측도 얼마후 동결신호를 받게되고, 따라서 회수요청신호를 보내게된다. 수신측은 이 신호를 보고 현재 링크 상에 있는 데이터를 무시하고 동결하며, 송신측은 수신측이 응답이 없음을 확인하고 현재 자신의 플릿버퍼의 내용을 보존한다. 이 경우가 도면상의 라우터 1과 2의 관계이다.
위에 제시한 통신규약에 의해, 점대점 링크를 통해 전송 중이던 기존의 메시지들은, 라우터 내의 플릿버퍼로 데이터의 중복이나 손실 없이 저장된다. 이렇게 저장된 데이터들은 가상버스 사용이 끝나고 동결신호가 제거되면, 플릿버퍼에 보존된 데이터를 통해 핸드쉐이킹 신호에 의해 동결되었던 메시지 전송을 다시 계속할 수 있다.
이상의 과정을 통해 가상버스의 사용을 위한 대략적인 라우터의 구성과, 중재기능, 및 점대점 링크 데이터와 가상버스 데이터의 충돌을 방지하기 위한 동결기능상의 규약에 대하여 살펴보았으므로, 가상버스의 자료전송 방법에 대해 이하에서 살펴보기로 한다.
가상버스가 설정되면, 메시지의 출발노드는 데이터를 여러 노드에 동시에 전달할 수 있다. 행과 열 가상버스를 모두 사용하는 경우, 가상버스는 차원순에 의해 중간에 버퍼링 과정없이 웨이브 파이프라이닝(wave pipelining) 방법에 의해, 중간 노드들의 플릿버퍼와 스위칭소자들을 우회하여 데이터를 전송한다. 이 방식은 서킷 스위칭 통신망과 유사점이 있지만, 서킷 스위칭이 탐색 메시지(probe message)를 통해 경로를 개척함에 비해, 가상버스는 중재 과정을 통해 행렬버스를 설정한다는 점이 다르다.
도 13은 웜홀라우터같은 컷스루 라우터에서 많이 사용되는 링크상의 일상적인 파이프라이닝을 보여주고 있다. 이런 방식에서 데이터는 메시지의 모든 중간노드에서 일단 랫치되었다가 전달되므로, 데이터 라인간 전달속도편차(data skew)가 상대적으로 서킷 스위칭보다 작다. 하지만 랫치되었다가 전달되어야하므로 하나의 중간노드에 대한 데이터경로 지연시간(datapath delay)은 서킷 스위칭보다 길다.
도 14는 메시지의 종단간(end-to-end : 출발노드부터 도착노드까지) 라우터간의 웨이브 파이프라이닝을 보여주고 있다. 이 경우 서킷 스위칭 통신망처럼 데이터경로 지연시간은 일상적인 파이프라이닝보다 빠르다. 보편적인 서킷 스위칭과 다른 점은, 데이터 전송이 종단간에 파이프라이닝으로 진행된다는 점이다.
일반적으로 서킷 스위칭은 종단간에 지연시간이상을 보장한 다음에 다음 데이터를 전송한다. 따라서 종단간에는 일상적인 파이프라이닝처럼 하나의 데이터 흐름(wave)만이 존재하게 된다. 그러나 웨이브 파이프라이닝은 종단간에 전달속도편차 정도의 시간간격으로 연속적으로 데이터를 전송하게 되며, 도면상에서 보듯이 종단간에 여러개의 데이터 흐름(wave)이 존재하게 된다. 따라서 보통의 서킷 스위칭보다 더욱 고속의 데이터 전송이 가능하다.
즉, 참고문헌에 소개한 Duato등이 발표한 논문은, Chien의 스위치 모델과 그들이 개발한 라우터에 대한 Spice 모의실험 결과를 바탕으로, 웨이브 파이프라이닝을 사용하면 동일한 기술을 사용한 웜홀라우터보다 4배이상의 속도로 메시지 전송이 가능함을 보이고 있다.
가상버스에 있어서 스트로브(strobe) 신호는 버스 데이터와 같은 경로로 전달된다. 가상버스 형성시에는 일반적으로 라우터에 사용되는 테일(tail) 비트 신호선에 가상버스 데이터의 스트로브 신호를 보낸다. 가상버스상에 위치한 목적지 노드들은 데이터 흐름과 함께 전달되는 스트로브 신호를 보고 자신의 버퍼에 버스상의 데이터를 저장한다.
웨이브 파이프라이닝의 속도는 스트로브를 포함한 데이터 라인들 사이의 전달속도편차에 의해 제한을 받는다. 현재의 CAD 툴을 사용하여 데이터 라인들의 편차를 조절한다면, 모의실험(simulation)을 통해 편차를 상당히 줄일 수 있다. Duato의 논문에서 보듯이, 이러한 노력에 의해 가상버스의 전송속도는 기존의 라우터에서의 전송속도를 능가할 수 있다.
이하, 전체 라우터의 구조를 첨부한 도 15와 도 16을 참조하여 살펴보면, 도 15는 일반적인 컷스루 라우터를 나타내고, 도 16은 가상버스를 갖는 2차원 컷스루 라우터를 나타내고 있다.
도 16에 나타낸 가상버스를 갖는 전체 라우터 구조는 앞서 설명한 부분들을 몇 개의 모듈들로 나타내고 있다. 도 16의 중계 브릿지(100)는 상기 도 8에서 나타내었던 가상버스를 위한 데이터경로의 주요부분, 즉 동일 차원내의 가상버스 형성을 담당하는 리피터(repeater)부분과 X차원에서 Y차원의 가상버스로나 가상버스에서 프로세서로의 브리지 부분을 담고 있다. 즉, 첨부한 도 8은 도 16에서 참조번호 100으로 지칭되는 중계 브릿지와 참조번호가 미부여되어 있는 전환스위치의 구성을 도시하고 있다.
또한, 동결신호 제어부(200)는 앞서 설명한 동결 통신규약 제어부이고, 종단간 흐름 제어부(800)는 종단간 흐름제어를 위한 부분이다. 종단간 제어는 참조번호 500과 600으로 지칭되는 EC(End-to-end flow controller)에서 프로세서와의 연결을 위한 버퍼(BF500, BF600)를 제어함으로써 이루어진다.
특히, 수신 버퍼 제어부(600)는 버퍼의 빈 공간의 양을 항상 감시한다. 상기 수신 버퍼 제어부(600)은 마치 물탱크의 표지(mark)같이, 메시지의 출발노드에서부터 이 라우터 사이에 웨이브 파이프라이닝에 의해 파이프라이닝되고 있는 데이터 양만큼을 담을 수 있는 양만큼의 버퍼 공간이 남아 있는가를 감시한다. 만일, 버퍼 공간이 부족하게 되면 가상버스를 위한 제어선인 버스 준비(bus ready; Bready)신호선을 이용하여 출발노드에 알려, 전송을 잠시 중지시킨다. 이런 방식을 통해 종단간의 흐름제어(flow control)를 실현한다.
또한, 칼럼 중재부(400)와 로우 중재부(300)는 앞서 설명한 도 9의 중재 회로로서, 각각 차원/독립적으로 존재하며 동결과정의 시작을 지시한다.
또한, 동기화 모듈(700)은 라인별로 게이트지연(gate delay)을 조절하는 동기화(synchronization)회로로서, 가상버스의 데이터 라인들 사이의 전달속도 편차를 최대한 줄이게 된다.
상술한 바와같은 전체적인 라우터의 구조를 적용한 가상버스를 갖는 메쉬 컴퓨터의 시스템 구조를 살펴보기에 앞서, 16×16 메쉬 구조를 위한 가상버스들을 첨부한 도 17을 참조하여 살펴보면 다음과 같다.
가상버스는 분산 중재 방식을 사용하기 때문에, 외부 중재가 필요하지 않는다. 이 도면에서 행(row) 가상버스와 관계있는 신호는 R을, 열(column) 가상버스와 관계있는 신호는 C로 나타낸다. 하나의 가상버스에는 버스 중재을 위해 중재 버스(RAB[0:3] CAB[0:3])와, 버스 요청(RBR, CBR)신호선, 및 버스 비지(RBB,CBB)신호선이 사용된다. 또한, 일대일 또는 일대다 또는 방송메세지 중에 어떤 메시지 종류인가를 표시하기 위해 버스 모드 신호(RMode[0:1],CMode[0:1])가 사용된다.
상기 버스 준비 신호(RBready, RCready)는 와이어드 오아(wired-OR) 신호이며, 이 신호는 사실상 반대적인(negative) 의미로 사용된다. 즉, 해당 라우터가 준비가 되어있지 않는 상태일 때 신호를 올리고(assert), 준비가 되면 신호를 내린다(deassert). 따라서, 하나의 라우터라도 준비가 안되서 신호를 올리면, 와이어드 오아(wired-OR)를 통해 신호값이 올라가므로, 메시지 출발 라우터는 준비가 아직 안되었음을 판단한다.
상기 버스 준비 신호(RBready, RCready)는 두가지 목적을 지니고 있는데, 하나는 가상버스의 시작 과정과 관련되며, 또 다른 하나는 앞서 설명한 가상버스 전송의 종단간 흐름 제어를 위한 것이다.
상기 버스 준비 신호(RBready, RCready)의 목적중 가상버스의 시작 과정과 관련된 내용을 살펴보기 위하여 가상버스 통신규약을 살펴보기로 한다.
아래의 표 1은 여러 가상버스 동작을 위한 버스 모드 신호값을 정리한 것으로, 그 각각의 통신 종류에 따른 통신규약을 살펴보기로 한다.
RMode[0:1]/CMode[0:1] 가상버스 전송 종류
0, 0 일대일 통신(unicast)
0, 1 일대다 통신(multicast)
1, 1 열 방송 통신(column broadcast)
1, 0 방송통신(broadcast)
우선, 일대일 통신 규약을 살펴보기에 앞서 일대일 통신은 그 종류를 두가지로 분류가능한데, 하나의 가상버스만을 사용하는 경우와 행렬의 가상버스를 사용하는 경우로 구분되는 것이다.
따라서, 일대일 통신중 하나의 가상버스만을 사용하는 경우를 먼저 살펴보면, 같은 행 또는 같은 열에 존재하는 두개의 노드간에 이루어지는 통신으로써, 출발노드의 라우터 즉, 출발라우터는 내부적으로 가상버스 요청신호를 라우터내 버스 중재회로에 요청한다. 따라서, 상기 출발라우터는 소정시간이후 중재과정을 통해 원하는 행 또는 열에 대한 가상버스 사용승인을 받게된다.
이때, 어떠한 라우터가 버스 요청신호(BR)를 통해 가상버스 사용승인을 받으려고 하는 동안 같은 행 또는 열에 속한 이외의 라우터들은 모두 버스준비(Bready)신호를 올린다.
상기 출발라우터는 성공적으로 가상버스 사용승인을 받은 후 버스비지 신호(BB)를 올리고, Mode[0:1]에 일대일 전송모드인(0,0)을 구동한다. 이때, 가상버스상의 상기 출발라우터를 제외한 모든 라우터들은 버스비지 신호(BB)의 검색에 따라 동결과정으로 진행한다.
상기 출발라우터는 가상버스를 통해 도착노드의 PID(Processor IDentification)를 전송하게되는데, 이에따라 가상버스내의 목적라우터에서는 버스 데이터를 받은 준비를 수행하고 준비가 완료되었을 때 버스준비(Bready)신호를 내린다. 반면에, 출발라우터와 목적라우터를 제외한 가상버스상의 다른 라우터들은 즉시 버스준비(Bready)신호를 내린다.
상기 출발라우터는 상기 버스준비(Bready)신호가 내려진 것을 확인한 이후에 데이터 전송을 수행하게 된다.
이상으로 일대일 통신중 하나의 가상버스만을 사용하는 경우를 살펴보았는데, 행렬의 가상버스를 사용하는 경우는 첨부한 도 18을 참조하여 살펴보기로 한다.
도 18은 가상 버스를 위한 신호선들이 도시되어 있는 상태의 메쉬 컴퓨터의 시스템 구조에서 일대일 전송과정을 설명하기 위한 예시도이다.
우선, 도 18에서 ①로 표시되는 과정을 수행하게 되는데, 출발노드의 라우터 즉, 출발라우터는 내부적으로 가상버스 요청신호를 라우터내 버스 중재회로에 요청한다.
이후, 도 18에서 ②로 표시되는 과정 즉, 상기 출발라우터가 행 버스 요청신호(RBR)를 통해 가상버스 사용 승인을 받으려고 하는 동안, 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호(RBR)를 감시하고 모두 버스 준비 신호(RBready, RCready)중 RBready를 올린다.
상기 출발라우터는 소정시간이후 성공적으로 행 가상버스 사용 승인을 얻게되면, 행 버스 비지신호(RBB)를 올리고, Mode[0:1]에 일대일 전송모드인(0,0)을 구동한다. 이때, 가상버스상의 상기 출발라우터를 제외한 모든 라우터들은 버스비지 신호(BB)의 검색에 따라 동결과정으로 진행(도 18에서 ③로 표시되는 과정)한다.
상기 출발라우터는 가상버스를 통해 도착노드의 PID를 전송하게 되는데, 이때 PID를 보고 목적 라우터와 같은 열에 존재하는 라우터가 버스 브릿지가 된다. 반면에, 상기 출발라우터와 브릿지를 제외한 행 가상버스내 모든 라우터들은 즉시 행 버스준비(RBready)신호를 내린다(도 18에서 ④로 표시되는 과정).
이후, 상기 브릿지는 목적라우터까지의 가상버스 연결을 위해 열 가상버스 중재를 요청하고 열 가상버스 사용 승인을 기다린다(도 18에서 ⑤로 표시되는 과정).
대기상태에서 열 가상버스 사용 승인을 받은 브릿지는 목적 PID를 승인된 열 가상버스를 통해 전송한다(도 18에서 ⑥로 표시되는 과정).
상기 목적 PID를 열 가상버스를 통해 전달받은 목적라우터는 버스 데이터를 받을 준비가되면 CBready를 내린다. 반면에, 브릿지와 목적라우터를 제외한 열 가상버스상의 모든 라우터들은 즉시 열 버스준비(CBready)신호를 내린다(도 18에서 ⑦로 표시되는 과정).
이후, 상기 브릿지는 상기 열 버스준비신호가 내려진 것을 확인한 이후에 자신도 행 버스준비신호를 내린다(도 18에서 ⑧로 표시되는 과정).
상기 출발라우터는 브릿지에서 행 버스준비신호가 내려진 것을 확인하면 데이터 전송을 수행하게 된다(도 18에서 ⑨로 표시되는 과정).
이상으로 일대일 통신에 관련된 통신규약을 살펴보았으므로, 일대다 통신에 관련한 통신규약을 첨부한 도 19를 참조하여 살펴보기로 한다.
하나의 행 또는 열 위의 여러 목적지에 대한 전송은 오직 하나의 가상버스만으로 충분하다. 하지만 다수의 경우가 목적지들이 분산되어 여러행 또는 열에 분포함다. 이 경우 하나의 행 가상버스와 여러개의 행 가상버스들이 일대다 통신에 관계하며, 이때 발생할 수 있는 교착상태의 가능성을 피하기 위하여 사용승인을 요청하고 그 뒤에 행 가상버스 사용승인을 얻으면 다수개의 열 가상버스에 동시에 사용승인을 요청한다.
이순서를 살펴보면, 먼저 출발노드의 라우터 즉, 출발라우터는 내부적으로 가상버스 요청신호를 라우터내 버스 중재회로에 요청한다.
상기 출발라우터가 행 버스 요청신호(RBR)를 통해 가상버스 사용 승인을 받으려고 하는 동안, 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호(RBR)를 감시하고 모두 버스 준비 신호(RBready, RCready)중 행 버스 준비 신호(RBready)를 올린다.
상기 출발라우터는 소정시간이후 성공적으로 행 가상버스 사용 승인을 얻게되면, 행 버스 비지신호(RBB)를 올리고, Mode[0:1]에 일대다 전송모드인(0,1)을 구동한다. 이때, 가상버스상의 상기 출발라우터를 제외한 모든 라우터들은 버스비지 신호(BB)의 검색에 따라 동결과정으로 진행한다.
상기 출발라우터는 행 가상버스를 통해 일대다 통신의 브릿지 역할을 해야할 라우터에 대한 정보를 비트백터 형태로 전달한다. 16×16 메쉬인 경우, 상기 비트 백터는 한 행의 라우터 수만큼인 16비트가 소요된다. 그예로서, 첨부한 도 19에서는 4×4 메쉬인 경우에 (1,1)노드에서 (0,0),(0,2),(0,3),(2,0),(2,1),(2,3)노드로 향하는 경우의 비트 백터를 보여주고 있다. 또한, 브릿지들은 열 가상버스 중재를 요청하고, 열 가상버스 사용승인을 기다린다. 이때, 일대다 통신에서는 일대일 통신과 달리, 비트백터를 통해 자신이 브릿지인지 여부를 알게된 행가상버스상의 모든 라우터들은 일단 행 버스준비(RBready)신호를 내린다
상기 행 버스준비(RBready)신호가 내려진 것을 확인한 출발라우터는 목적지에 대한 비트백터를 연속적으로 전송한다. 즉, 첨부한 도 19에 도시되어 있는 것처럼 브릿지의 개수만큼의 비트백터가 전송되며, 각각의 브리지들은 자신의 열에 해당하는 목적지 비트백터만을 간직한다. 브릿지 개수만큼의 비트백터를 받은 브릿지들은 종전의 과정을 통해 일단 내린 행 버스준비(RBready)신호를 다시 올린다.
이후, 대기상태에서 열 가상버스 사용 승인을 받은 브릿지들은 해당 목적지 비트백터를 열가상버스에 이어 전송한다.
그에따라, 목적 라우터가 버스 데이터를 받을 준비가 되면, 열 버스준비(CBready)신호를 내린다. 반면에, 브릿지와 목적라우터를 제외한 열 가상버스상의 모든 라우터들은 즉시 열 버스준비(CBready)신호를 내린다.
이후, 상기 브릿지들은 상기 열 버스준비(CBready)신호가 내려진 것을 확인한 이후에 데이터 전송준비가 완료되면 자신도 행 버스준비(RBready)신호를 내린다.
상기 출발라우터는 브릿지에서 행 버스준비(RBready)신호가 내려진 것을 확인하면 데이터 전송을 수행하게 된다.
이상으로 일대다 통신에 관련된 통신규약을 살펴보았으므로, 이하에서는 열방송 통신 규약을 살펴보기로 한다.
열방송 전송은 특정한 열에 위치하는 모든 노드에 방송을 하는 방식으로, 이러한 전송 방송은 분산공유메모리(Distributed Shared Memory) 구조에서 디렉토리관리에 유용하게 쓰일수 있다.
그 통신 규약을 살펴보면, 출발노드의 라우터인 출발라우터는 내부적으로 가상버스 요청신호를 라우터내 버스 중재회로에 요청한다.
상기 출발라우터가 행 버스 요청신호(RBR)를 통해 가상버스 사용 승인을 받으려고 하는 동안, 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호(RBR)를 감시하고 모두 버스 준비 신호(RBready, RCready)중 행 버스준비(RBready)신호를 올린다.
상기 출발라우터는 소정시간이후 성공적으로 행 가상버스 사용 승인을 얻게되면, 행 버스 비지신호(RBB)를 올리고, Mode[0:1]에 열 방송 전송모드인(1,1)을 구동한다. 이때, 가상버스상의 상기 출발라우터를 제외한 모든 라우터들은 버스비지 신호(BB)의 검색에 따라 동결과정으로 진행한다.
상기 출발라우터는 행 가상버스를 통해 열 방송 통신의 브릿지 역할을 해야할 라우터에 대한 정보를 비트백터 형태로 전달한다. 전달받은 비트백터를 통해 자신이 브릿지역활을 수행하여야 함을 확인한 라우터들은 열 가상버스 중재를 요청하고, 열 가상버스 사용승인을 기다린다. 이때, 출발라우터와 브릿지들을 제외한 행 가상버스내 다른 라우터들은 즉시 행 버스준비(RBready)신호를 내린다
이후, 목적 라우터가 버스 데이터를 받을 준비가 되면, 열 버스준비(CBready)신호를 내린다. 반면에, 브릿지와 목적라우터를 제외한 열 가상버스상의 모든 라우터들은 즉시 열 버스준비(CBready)신호를 내린다.
이후, 상기 브릿지들은 상기 열 버스준비(CBready)신호가 내려진 것을 확인한 이후에 데이터 전송준비가 완료되면 자신도 행 버스준비(RBready)신호를 내린다.
상기 출발라우터는 브릿지에서 행 버스준비(RBready)신호가 내려진 것을 확인하면 데이터 전송을 수행하게 된다.
이상으로 열방송 통신에 관련된 통신규약을 살펴보았으므로, 이하에서는 방송 통신 규약을 살펴보기로 한다.
방송 전송은 시스템내의 모든 라우터가 참여하는 전송 방식으로, 출발노드의 라우터인 출발라우터는 내부적으로 가상버스 요청신호를 라우터내 버스 중재회로에 요청한다.
상기 출발라우터가 행 버스 요청신호(RBR)를 통해 가상버스 사용 승인을 받으려고 하는 동안, 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호(RBR)를 감시하고 모두 버스 준비 신호(RBready, RCready)중 행 버스준비(RBready)신호를 올린다.
상기 출발라우터는 소정시간이후 성공적으로 행 가상버스 사용 승인을 얻게되면, 행 버스 비지신호(RBB)를 올리고, Mode[0:1]에 방송 전송모드인(1,0)을 구동한다. 이때, 가상버스상의 상기 출발라우터를 제외한 모든 라우터들은 버스비지 신호(BB)의 검색에 따라 동결과정으로 진행한다.
이때, 상기 출발라우터에서 Mode[0:1]에 방송 전송모드인(1,0)을 구동하였으므로 행 가상버스내에 존재하는 모든 라우터들은 브릿지 역할을 수행하게 되며, 각 브릿지들은 열 가상버스 중재를 요청하고, 열 가상버스 사용승인을 기다린다.
이후, 각각의 브릿지가 존재하는 열 가상버스내의 모든 라우터들은 그 각각이 목적라우터가 되며, 버스 데이터를 받을 준비가 되면 열 버스준비(CBready)신호를 내린다.
자신이 속한 열 가상버스내에 존재하는 모든 라우터 즉, 목적라우터들이 열 버스준비(CBready)신호를 내린 것을 확인한 상기 브릿지들은 데이터 전송준비가 완료되면 행 버스준비(RBready)신호를 내린다.
상기 출발라우터는 브릿지에서 행 버스준비(RBready)신호가 내려진 것을 확인하면 데이터 전송을 수행하게 된다.
상술한 바와같이 동작하는 본 발명에 따른 가상 버스를 사용한 분산 컴퓨팅 시스템 및 데이터 통신 방법을 제공하여, 물리적으로 버스를 갖는 메쉬구조와는 달리 가상버스의 데이터는 공통선이 아닌 점대점 링크 상으로 전송가능하여 점대점 링크 통신만을 사용하거나 혹은 버스동작을 필요한 가상버스를 능동적으로 할당하여 사용할 때에도 통신망의 대역폭을 모두 사용할 수 있으며 팬 아우트 문제가 없이 보다 고속으로 데이터를 전송할 수 있다는 효과가 있다.

Claims (10)

  1. 소정갯수의 라우터들이 구비되며 각 라우터들간에는 점대점 링크로 연결되고, 각각의 라우터마다 하나씩의 프로세서가 연결되는 일차원적 분산 컴퓨팅 시스템에 있어서:
    상기 라우터들 각각은 인접 라우터와 연결되어 있는 점대점 링크를 특정 조건상에서 하나의 가상 버스로 사용하기 위해 라우터들의 배열 차원에 대응하여 입출력 단자간에 데이터 직접 전송경로를 형성하는 수단과;
    각 라우터들간의 정보교환을 위해 각 라우터들이 배열되어 있는 일차원적 구조에 따라 상기 각 라우터들과 와이어 오아 개념으로 묶여 있는 제어라인을 포함하고, 상기 라우터 내부에서 입출력 단자간에 구비되어 있는 데이터 직접 전송경로 형성을 위한 수단이 구동되어 가상버스를 형성하는 경우 상기 제어라인이 구동하는 것을 특징으로 하는 가상 버스들을 사용한 연결망을 갖는 분산 컴퓨팅 시스템.
  2. 소정갯수의 라우터들이 구비되며 각 라우터들간에는 점대점 링크로 연결되고, 각각의 라우터마다 하나씩의 프로세서가 연결되는 분산 컴퓨팅 시스템에 있어서:
    상기 라우터들 각각은 인접 라우터와 연결되어 있는 점대점 링크를 특정 조건상에서 하나의 가상 버스로 사용하기 위해 라우터들의 배열 차원에 대응하여 입출력 단자간에 데이터 직접 전송경로를 형성하는 수단과;
    각 라우터들간의 정보교환을 위해 각 라우터들이 배열되어 있는 구조에 따라 상기 각 라우터들과 와이어 오아 개념으로 묶여 있는 제어라인을 포함하고, 상기 라우터 내부에서 입출력 단자간에 구비되어 있는 데이터 직접 전송경로 형성을 위한 수단이 구동되어 가상버스를 형성하는 경우 상기 제어라인이 구동하는 일차원 배열의 분산 컴퓨팅 시스템을 다차원 메쉬, 하이퍼큐브, 계층적 링등과 같은 계층적 연결구조로 배열 형성하여 2차원 이상의 구조를 갖는 것을 특징으로 하는 가상버스들을 사용한 연결망을 갖는 분산 컴퓨팅 시스템.
  3. 제 2 항에 있어서,
    상기 라우터가 이차원 배열구조를 갖는 경우 라우터들 각각에는 통상의 링크 라우터에 행축으로의 가상버스 연결시 가상버스 형성에 관련한 정보를 상기 행 제어라인을 통해 행축의 다른 라우터에게 알리고 중재하는 행중재수단과;
    열축으로의 가상버스 연결시 가상버스 형성에 관련한 정보를 상기 열 제어라인을 통해 열축의 다른 라우터에게 알리고 중재하는 열중재수단과;
    행축으로 연결되어 있는 점대점 링크를 통해 제 1 행방향 또는 상기 제 1 행방향과 역방향인 제 2 행방향으로 입력되는 행축 데이터와 열축으로 연결되어 있는 점대점 링크를 통해 제 1 열방향 또는 상기 제 1 열방향과 역방향인 제 2 열방향으로 입력되는 열축 데이터를 입력받아 버퍼에 저장한 후 각 데이터의 목적 라우터에 전송가능한 출력방향에 연결되어 있는 점대점 링크측으로 전달하는 링크 전달수단과, 상기 링크데이터 전달수단에 입력되는 데이터를 라우터와 연결되어 있는 프로세서 측으로 전달하거나 프로세서측으로부터 발생되는 데이터를 목적 라우터에 전송하기 위해 상기 링크데이터 전달수단으로 제공하는 링크데이터 종단 통신수단과, 상기 링크 데이터 동결 제어부의 동작에 따라 상기 링크 전달수단의 입출력동작이 중지하는 경우 상기 링크데이터 전달수단에 입력되는 데이터를 직접 입력받아 동기를 매칭시켜 출력하는 동기화 수단과, 상기 동기화 수단에서 동기 매칭된 상태에서 출력되는 데이터를 입력받아 행축으로 연결되어 있는 점대점 링크를 통해 제 1 행방향 또는 제 2 행방향으로 출력하거나 열축으로 연결되어 있는 점대점 링크를 통해 제 1 열방향 또는 제 2 열방향으로 출력하는 전송수단과, 제 1 행방향과 제 2 행방향과 제 1 열방향 및 제 2 열방향에 각각 구비되며 그 각각은 해당 방향에 대해 상기 전송수단에서 출력되는 데이터와 상기 링크 전달수단에서 출력되는 데이터를 입력받아 선택적으로 출력하는 멀티플렉서(M1∼M4)와, 프로세서 방향의 우회 입출력을 위한 멀티플렉서와, 가상버스 데이타의 차원간 이동을 위한 멀티플렉서와, 차원간 전송 및 프로세서쪽으로의 전송을 위한 멀티플렉서, 가상버스 데이타와 프로세서간의 버퍼링을 위한 버퍼부로 이루어져 동일 차원내의 가상버스 형성위해 리피터로 구성되며 행 또는 열축의 가상버스나 가상버스에서 프로세서로의 브리지기능을 수행하는 중계수단과;
    상기 중계수단의 동작에 연동하여 가상버스와 프로세서간의 데이터송수신을 제어하는 종단간 흐름 제어부와;
    버스 데이터의 전송시 링크 데이터를 저장하여 데이터의 충돌을 방지하는 링크 데이터 동결 제어부와;
    상기 행열 가상버스의 고갈상태 방지 및 교착상태 방지를 위한 행 가상버스상의 우선순위 순환 및 열 가상버스상의 동기화 우선순위 순환을 위한 쉬프팅수단; 및
    메시지의 출발노드에서부터 이 라우터 사이에 웨이브 파이프라이닝에 의해 파이프라이닝되고 있는 데이터 양만큼을 담을 수 있는 버퍼 공간이 남아 있는가를 감시하며, 버퍼 공간이 부족하면 가상버스의 구동을 위해 상기 출발노드에 상기 행 제어라인과 열 제어라인을 통하여 전송 잠시 중지를 요청하는 수신 버퍼 제어부를 포함하는 것을 특징으로 하는 가상 버스들을 사용한 연결망을 갖는 분산 컴퓨팅 시스템.
  4. 소정갯수의 라우터들이 행열구조로 배열되며, 각 라우터들간에는 점대점 링크로 연결되되 라우터들 각각은 인접 라우터와 연결되어 있는 점대점 링크를 특정 조건상에서 하나의 가상 버스로 사용하기 위해 행축과 열축 각 방향으로의 입출력 단자간에 데이터 직접 전송경로를 구비하며, 상기 라우터 내부에서 입출력 단자간에 구비되어 있는 데이터 직접 전송경로가 구동하여 가상버스를 형성하는 경우 각 라우터들간의 정보교환을 위해 각 라우터들이 배열되어 있는 행과 열을 따라 상기 각 라우터들과 와이어 오아 개념으로 묶여 있는 행 제어라인과 열 제어라인을 구비하여 분산 컴퓨팅 시스템에서 링크를 가상버스로 사용할 때 링크 데이터와 버스 데이터의 충돌을 방지하는 방법에 있어서:
    상기 행 제어라인과 열 제어라인상의 버스 비지 신호를 검출하여 가상버스 동작이 수행되었는가를 판단하는 제 1 과정과;
    상기 제 1 과정을 통해 가상버스 동작이 수행되었다고 판단되면 링크상에 의미 있는 데이터가 존재하는 가를 판단하는 제 2 과정과;
    상기 제 2 과정을 통해 데이터가 존재한다고 판단되면 링크 데이터의 송신측에서 현재 링크상의 데이터를 무시하라는 의미의 신호를 수신측에 전송하는 제 3 과정과;
    상기 제 3 과정을 통해 전송한 송신측 신호를 수신측에서 접수하기 이전에 수신측에서 데이터를 수신하여 보관하였으면 데이터 수신완료신호를 송신측으로 전송하고 데이터 보관이전에 상기 제 3 과정을 통해 전송한 송신측 신호를 수신측이 받으면 링크상의 신호를 무시하여 보관하지 않는 제 4 과정; 및
    상기 제 4 과정을 통해 수신측에서 송신측으로 데이터 수신완료신호를 전송하여 이를 송신측이 받은 경우 송신측은 자신이 보관하던 데이터를 삭제하고, 수신완료신호가 없는 경우 송신측은 송신 데이터를 보관하는 제 5 과정을 포함하는 것을 특징으로 하는 링크 데이터 동결 방법.
  5. 소정갯수의 라우터들이 행열구조로 배열되며, 각 라우터들간에는 점대점 링크로 연결되되 라우터들 각각은 인접 라우터와 연결되어 있는 점대점 링크를 특정 조건상에서 하나의 가상 버스로 사용하기 위해 행축과 열축 각 방향으로의 입출력 단자간에 데이터 직접 전송경로를 구비하며, 상기 라우터 내부에서 입출력 단자간에 구비되어 있는 데이터 직접 전송경로가 구동하여 가상버스를 형성하는 경우 각 라우터들간의 정보교환을 위해 각 라우터들이 배열되어 있는 행과 열을 따라 상기 각 라우터들과 와이어 오아 개념으로 묶여 있는 행 제어라인과 열 제어라인을 구비하여 가상버스 형성시 링크 데이터와 버스 데이터의 충돌을 방지하는 기능을 구비한 분산 컴퓨팅 시스템상에서 가상버스를 이용한 데이터 통신 방법에 있어서:
    데이터를 송신하고자 하는 임의의 라우터인 출발라우터는 송신 데이터의 전송방식을 데이터의 종류에 따라 또는 수신 라우터의 위치에 따라 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 어느 하나를 선택하는 제 1 과정과;
    상기 제 1 과정을 통해 선택되어진 데이터 통신모드에 따라 상기 출발라우터는 행 또는 열의 가상버스의 사용을 요청하는 제 2 과정과;
    상기 제 2 과정을 통해 상기 출발라우터에서 가상버스의 사용승인을 받으면 상기 제 1 과정에서 선택된 데이터 통신모드를 상기 행 제어라인 또는 열 제어라인을 통해 전송하여 가상버스내의 라우터들에게 알려주는 제 3 과정과;
    상기 제 3 과정이후 사용승인된 가상버스 상의 라우터들은 상기 출발라우터를 제외하고 모두 링크데이터 동결과정으로 진행하는 제 4 과정과;
    상기 출발라우터는 형성되어 있는 가상버스를 통해 목적라우터와 브릿지에 관련한 정보를 전송하여 목적라우터 또는 브릿지를 설정하는 제 5 과정과;
    상기 제 5 과정을 통해 브릿지가 설정되는 경우 각각의 브릿지는 상기 출발 라우터에서 전송되어진 목적라우터의 정보에 따라 상기 제 2 과정에서 제 4 과정까지 동작과 유사한 동작을 수행하여 목적라우터까지의 가상버스를 형성시키는 제 6 과정; 및
    상기 제 6 과정을 통해 출발 라우터와 목적라우터간에 가상버스가 형성되면 출발라우터에서 데이터를 전송하는 제 7 과정을 포함하는 것을 특징으로 하는 분산 컴퓨팅 시스템에서 가상버스를 이용한 데이터 통신 방법.
  6. 제 5 항에 있어서,
    상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 일대일 통신모드를 선택한 경우 목적지의 위치에 따라 행 또는 열중 어느 하나의 가상버스만을 사용할 것인지 또는 행열의 가상버스를 사용할것인지를 판단하여 하나의 가상버스만을 사용한다고 판단되면, 상기 제 2 과정내지 제 7 과정은,
    출발라우터에서 버스 요청신호를 발생시켜 행 또는 열의 가상버스의 사용을 요청하는 제 1 단계와;
    출발 라우터가 가상버스 사용승인을 받으려고 하는 동안 같은 해당 행 또는 열에 속한 라우터들 모두 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와;
    상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 일대일모드로 선택하는 제 3 단계와;
    상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와;
    상기 출발라우터는 가상버스를 통해 목적라우터의 관련정보를 전송하는 제 5 단계와;
    상기 제 5 단계 이후 상기 목적라우터는 버스 데이터를 받은 준비가 완료되면 상기 제 2 단계를 통해 제 1 논리상태를 유지시켰던 버스준비신호를 제 2 논리상태로 전환하는 제 6 단계; 및
    상기 버스준비신호가 제 2 논리상태로 전환되면 상기 출발라우터는 버스 데이터의 전송을 수행하는 제 7 단계로 진행되는 것을 특징으로 하는 분산 컴퓨팅 시스템에서 가상버스를 이용한 데이터 통신 방법.
  7. 제 5 항에 있어서,
    상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 일대일 통신모드를 선택한 경우 목적지의 위치에 따라 행 또는 열중 어느 하나의 가상버스만을 사용할 것인지 또는 행열의 가상버스를 사용할것인지를 판단하여 행열의 가상버스를 사용한다고 판단되면, 상기 제 2 과정내지 제 7 과정은,
    출발라우터에서 행 버스 요청신호를 발생시켜 행 가상버스의 사용을 요청하는 제 1 단계와;
    상기 제 1 단계를 통해 출발 라우터가 행 가상버스 사용승인을 받으려고 하는 동안 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호에 의해 상기 행 제어라인의 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와;
    상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 일대일모드로 선택하는 제 3 단계와;
    상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와;
    상기 출발라우터는 행 가상버스를 통해 목적라우터의 관련정보를 전송함에따라 상기 목적라우터와 같은 열에 존재하는 라우터가 자신을 브릿지로 설정함과 동시에 상기 출발라우터와 브릿지를 제외한 행 가상버스내 모든 라우터들은 상기 제 2 단계를 통해 제 1 논리상태를 유지시켰던 버스준비신호를 제 2 논리상태로 전환하는 제 5 단계와;
    상기 브릿지에서 목적라우터까지의 가상버스 연결을 위해 열 가상버스 중재를 요청한 후 사용 승인이 떨어지면 상기 브릿지는 형성된 열 가상버스를 통해 목적라우터의 관련정보를 전송하는 제 6 단계와;
    상기 제 6 단계를 통해 목적라우터로 정의된 라우터는 버스 데이터를 받을 준비가되면 열 버스준비신호를 제 2 논리상태로 전환하며, 반면에 해당 열 가상버스상의 브릿지와 목적 라우터를 제외한 라우터들은 열 버스준비신호를 제 2 논리상태로 즉시 전환하는 제 7 단계; 및
    상기 제 7 단계를 통해 브릿지에서 열 버스준비신호가 제 2 논리상태로 전환되면 브릿지는 행 버스준비신호를 제 2 논리상태로 전환하며, 상기 출발라우터는 행 버스준비신호가 제 2논리상태로 전환된 것을 확인하고 버스 데이터의 전송을 수행하는 제 8 단계로 진행되는 것을 특징으로 하는 분산 컴퓨팅 시스템에서 가상버스를 이용한 데이터 통신 방법.
  8. 제 5 항에 있어서,
    상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 일대다 통신모드를 선택한 경우 상기 제 2 과정내지 제 7 과정은,
    출발라우터에서 행 버스 요청신호를 발생시켜 행 가상버스의 사용을 요청하는 제 1 단계와;
    상기 제 1 단계를 통해 출발 라우터가 행 가상버스 사용승인을 받으려고 하는 동안 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호에 의해 상기 행 제어라인의 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와;
    상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 일대다 통신 모드로 선택하는 제 3 단계와;
    상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와;
    상기 출발라우터는 행 가상버스를 통해 일대다 통신의 브릿지 역할을 해야할 라우터에 대한 정보를 비트백터 형태로 전달함에 따라 행가상버스상의 대상 라우터들은 자신을 브릿지로 설정하고 일단 행 버스준비 신호를 제 2 논리상태로 전환함과 동시에 열 가상버스 사용을 요청하는 제 5 단계와;
    상기 제 5 단계를 통해 행 버스준비 신호가 제 2 논리상태로 전환되었음을 확인한 출발라우터는 목적지에 대한 브릿지의 개수만큼의 비트백터를 연속적으로 전송하고 그에따라 각각의 브리지들은 자신의 열에 해당하는 목적지 비트백터만을 간직한 후 현재 제 2 논리상태인 행 버스준비 신호를 제 1 논리상태로 전환하는 제 6 단계와;
    상기 브릿지들에서 목적라우터까지의 가상버스 연결을 위해 열 가상버스 중재를 요청한 후 사용 승인이 떨어지면 각각의 브릿지들은 형성된 열 가상버스를 통해 저장된 목적지 비트백터를 열가상버스를 통해 전송하는 제 7 단계와;
    상기 제 7 단계를 통해 목적라우터로 정의된 라우터는 버스 데이터를 받을 준비가되면 열 버스준비신호를 제 2 논리상태로 전환하며, 반면에 해당 열 가상버스상의 브릿지와 목적 라우터를 제외한 라우터들은 열 버스준비신호를 제 2 논리상태로 전환하며, 이를 확인한 각각의 브릿지들은 자신이 데이터 전송준비가 된 상태에서 행 버스준비신호를 제 2 논리상태로 전환하는 제 8 단계; 및
    상기 제 8 단계를 통해 모든 브릿지에서 행 버스준비신호가 제 2 논리상태로 전환되면 상기 출발라우터는 버스 데이터의 전송을 수행하는 제 9 단계로 진행되는 것을 특징으로 하는 분산 컴퓨팅 시스템에서 가상버스를 이용한 데이터 통신 방법.
  9. 제 5 항에 있어서,
    상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 열방송 통신모드를 선택한 경우 상기 제 2 과정내지 제 7 과정은,
    출발라우터에서 행 버스 요청신호를 발생시켜 행 가상버스의 사용을 요청하는 제 1 단계와;
    상기 제 1 단계를 통해 출발 라우터가 행 가상버스 사용승인을 받으려고 하는 동안 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호에 의해 상기 행 제어라인의 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와;
    상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 열 방송 통신 모드로 선택하는 제 3 단계와;
    상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와;
    상기 출발라우터는 행 가상버스를 통해 열 방송 통신의 브릿지 역할을 해야할 라우터들에 대한 정보를 비트백터 형태로 전달함에 따라 행가상버스상의 대상 라우터들은 자신을 브릿지로 설정하고 열 가상버스 사용을 요청함과 동시에 출발라우터와 브릿지들을 제외한 행 가상버스내 다른 라우터들은 일단 행 버스준비 신호를 제 2 논리상태로 전환하는 제 5 단계와;
    상기 브릿지들에서 목적라우터까지의 가상버스 연결을 위해 열 가상버스 중재를 요청한 후 사용 승인이 떨어지면 각각의 브릿지들은 형성된 열 가상버스를 통해 해당 열 가상버스내의 모든 라우터들에게 목적지임을 알리고 상기 목적 라우터들은 버스 데이터를 받을 준비가 되면 열 버스준비신호를 제 2 논리상태로 전환하는 제 6 단계와;
    상기 브릿지들은 상기 열 버스준비신호가 제 2 논리상태로 전환된 것을 확인한 후에 데이터 전송준비가 완료되면 행 버스준비 신호를 제 2 논리상태로 전환하는 제 7 단계; 및
    상기 제 7 단계를 통해 모든 브릿지에서 행 버스준비신호가 제 2 논리상태로 전환되면 상기 출발라우터는 버스 데이터의 전송을 수행하는 제 8 단계로 진행되는 것을 특징으로 하는 분산 컴퓨팅 시스템에서 가상버스를 이용한 데이터 통신 방법.
  10. 제 5 항에 있어서,
    상기 제 1 과정을 통해 출발라우터에서 일대일 통신모드 또는 일대다 통신모드 또는 열방송 통신모드 또는 방송 통신모드중 방송 통신모드를 선택한 경우 상기 제 2 과정내지 제 7 과정은,
    출발라우터에서 행 버스 요청신호를 발생시켜 행 가상버스의 사용을 요청하는 제 1 단계와;
    상기 제 1 단계를 통해 출발 라우터가 행 가상버스 사용승인을 받으려고 하는 동안 같은 행에 위치하는 출발라우터 이외의 라우터들은 상기 행 버스 요청신호에 의해 상기 행 제어라인의 버스준비 신호를 제 1 논리상태로 전환하는 제 2 단계와;
    상기 제 1 단계를 통해 출발 라우터가 가상버스 사용승인을 받은 경우 상기 출발라우터는 버스비지 신호를 제 1 논리상태로 전환하고 전송모드를 방송 통신 모드로 선택하는 제 3 단계와;
    상기 제 3 단계에서 제 1 논리상태로 전환한 버스비지 신호에 따라 상기 출발라우터를 제외한 해당 가상버스상의 모든 라우터들은 링크데이터 동결과정으로 진행하는 제 4 단계와;
    상기 제 3 단계를 통해 출발라우터에서 방송 전송모드을 구동하였으므로 행 가상버스내에 존재하는 모든 라우터들이 브릿지로서 열 가상버스 중재를 요청하는 제 5 단계와;
    상기 제 5 단계를 통해 상기 브릿지들에서 목적라우터까지의 가상버스 연결을 위해 열 가상버스 중재를 요청한 후 사용 승인이 떨어지면 각각의 브릿지들은 형성된 열 가상버스를 통해 해당 열 가상버스내의 모든 라우터들에게 목적지임을 알리고 상기 목적 라우터들은 버스 데이터를 받을 준비가 되면 열 버스준비신호를 제 2 논리상태로 전환하는 제 6 단계와;
    상기 브릿지들은 상기 열 버스준비신호가 제 2 논리상태로 전환된 것을 확인한 후에 데이터 전송준비가 완료되면 행 버스준비 신호를 제 2 논리상태로 전환하는 제 7 단계와;
    상기 제 7 단계를 통해 모든 브릿지들에서 행 버스준비신호가 제 2 논리상태로 전환되면 상기 출발라우터는 버스 데이터의 전송을 수행하는 제 8 단계로 진행되는 것을 특징으로 하는 분산 컴퓨팅 시스템에서 가상버스를 이용한 데이터 통신 방법.
KR1019980020844A 1998-06-05 1998-06-05 가상버스들을사용한연결망을갖는분산컴퓨팅시스템및데이터통신방법 KR100277167B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019980020844A KR100277167B1 (ko) 1998-06-05 1998-06-05 가상버스들을사용한연결망을갖는분산컴퓨팅시스템및데이터통신방법
US09/313,859 US6680915B1 (en) 1998-06-05 1999-05-18 Distributed computing system using virtual buses and data communication method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980020844A KR100277167B1 (ko) 1998-06-05 1998-06-05 가상버스들을사용한연결망을갖는분산컴퓨팅시스템및데이터통신방법

Publications (2)

Publication Number Publication Date
KR20000000903A KR20000000903A (ko) 2000-01-15
KR100277167B1 true KR100277167B1 (ko) 2001-01-15

Family

ID=19538439

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980020844A KR100277167B1 (ko) 1998-06-05 1998-06-05 가상버스들을사용한연결망을갖는분산컴퓨팅시스템및데이터통신방법

Country Status (2)

Country Link
US (1) US6680915B1 (ko)
KR (1) KR100277167B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109841068A (zh) * 2019-03-28 2019-06-04 广东振业优控科技股份有限公司 基于路口中心处交通流冲突点占有率的交通信号控制方法

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6967950B2 (en) * 2000-08-11 2005-11-22 Texas Instruments Incorporated Pull transfers and transfer receipt confirmation in a datapipe routing bridge
DE10105707A1 (de) * 2001-02-08 2002-09-05 Siemens Ag Verfahren und Vorrichtung zur Datenübertragung
US6918063B2 (en) * 2002-02-04 2005-07-12 International Business Machines Corporation System and method for fault tolerance in multi-node system
US7159059B2 (en) * 2002-03-01 2007-01-02 Mcneil Donald H Ultra-modular processor in lattice topology
AU2003256699A1 (en) * 2002-07-23 2004-02-09 Gatechange Technologies, Inc. Self-configuring processing element
EP1690353A2 (en) * 2003-10-30 2006-08-16 Teak Technologies, Inc. Nonblocking and deterministic multirate unicast packet scheduling
JP2007510379A (ja) * 2003-10-30 2007-04-19 チーク テクノロジーズ,インク. ノンブロッキングで決定論的マルチキャストパケットスケジューリング
US20050117575A1 (en) * 2003-10-30 2005-06-02 Venkat Konda Nonblocking and deterministic unicast packet scheduling
US7246217B1 (en) * 2004-04-19 2007-07-17 Sandia Corporation Interconnection arrangement of routers of processor boards in array of cabinets supporting secure physical partition
JP4726119B2 (ja) * 2005-06-17 2011-07-20 ルネサスエレクトロニクス株式会社 ループ通信システム、通信装置、ループ通信方法、及びプログラム
EP1934668B1 (en) 2005-09-06 2016-03-16 Beyond Blades Ltd. 3-dimensional multi-layered modular computer architecture
KR100730279B1 (ko) * 2005-12-16 2007-06-19 삼성전자주식회사 스타 토로스 토폴로지를 이용하여 칩 상의 디바이스를연결한 컴퓨터 칩
US8463589B2 (en) 2006-07-28 2013-06-11 Synopsys, Inc. Modifying a virtual processor model for hardware/software simulation
US8644305B2 (en) * 2007-01-22 2014-02-04 Synopsys Inc. Method and system for modeling a bus for a system design incorporating one or more programmable processors
US7864792B2 (en) 2007-04-20 2011-01-04 Cray, Inc. Load balancing for communications within a multiprocessor computer system
JP5112229B2 (ja) * 2008-09-05 2013-01-09 株式会社エヌ・ティ・ティ・ドコモ 配信装置、端末装置及びシステム並びに方法
JP5080406B2 (ja) * 2008-09-05 2012-11-21 株式会社エヌ・ティ・ティ・ドコモ 配信装置、端末装置及びシステム並びに方法
JP5493575B2 (ja) * 2009-08-10 2014-05-14 富士通株式会社 情報処理装置及び情報処理装置の制御方法
FR2949879B1 (fr) * 2009-09-04 2014-07-18 Kalray Noeuds d'entree/sortie d'un reseau sur puce torique.
US20130215069A1 (en) * 2010-10-26 2013-08-22 Tsu-Chang Lee Apparatus for network based modular electronic systems
FR2979444A1 (fr) * 2011-08-23 2013-03-01 Kalray Reseau sur puce extensible
CN107463159B (zh) * 2017-09-15 2024-02-23 沈阳瑞德泰科电气有限公司 一种工业总线io模块
US20230229450A1 (en) * 2018-02-23 2023-07-20 Untether Ai Corporation Computational memory
US20210201118A1 (en) * 2019-12-26 2021-07-01 Industrial Technology Research Institute Deep neural networks (dnn) hardware accelerator and operation method thereof
KR20220023649A (ko) * 2020-08-21 2022-03-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN114157529B (zh) * 2021-12-01 2024-01-23 东方财富信息股份有限公司 一种分布式数据传输***及方法
US20240111702A1 (en) * 2022-09-30 2024-04-04 Mellanox Technologies, Ltd. Virtual wire protocol for transmitting side band channels

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5165023A (en) * 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
US4873626A (en) * 1986-12-17 1989-10-10 Massachusetts Institute Of Technology Parallel processing system with processor array having memory system included in system memory
US4933936A (en) 1987-08-17 1990-06-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Distributed computing system with dual independent communications paths between computers and employing split tokens
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109841068A (zh) * 2019-03-28 2019-06-04 广东振业优控科技股份有限公司 基于路口中心处交通流冲突点占有率的交通信号控制方法

Also Published As

Publication number Publication date
KR20000000903A (ko) 2000-01-15
US6680915B1 (en) 2004-01-20

Similar Documents

Publication Publication Date Title
KR100277167B1 (ko) 가상버스들을사용한연결망을갖는분산컴퓨팅시스템및데이터통신방법
US5175733A (en) Adaptive message routing for multi-dimensional networks
Duato et al. Performance evaluation of adaptive routing algorithms for k-ary n-cubes
US5347450A (en) Message routing in a multiprocessor computer system
CN111104775B (zh) 一种片上网络拓扑结构及其实现方法
KR900006791B1 (ko) 패킷 스위치식 다중포트 메모리 n×m 스위치 노드 및 처리 방법
KR100259276B1 (ko) 대역폭확장이 가능한 상호연결망
JP3322195B2 (ja) Lanスイッチ
US20140376557A1 (en) Modular decoupled crossbar for on-chip router
JP2533223B2 (ja) 多段通信ネットワ―ク
US5398317A (en) Synchronous message routing using a retransmitted clock signal in a multiprocessor computer system
CN101834789B (zh) 面向包-电路交换片上路由器的回退转向路由算法及所用路由器
CN104022950B (zh) 一种可共享和自配置缓存的路由器结构
JP2002208949A (ja) データパイプ・ルーティング・ブリッジ
CN106168940A (zh) 高密度片上网络的路网实现方法及装置
JPH0344469B2 (ko)
CN106209518B (zh) 一种基于“包-电路”交换技术的动态转向路由算法
CN107220209B (zh) 基于层错的三维光片上网络架构、通信方法及光路由器
CN116545960A (zh) 二维片上网络结构及其路由方法、装置、设备和存储介质
KR20030009334A (ko) 복수개의 제어선을 이용한 복수 단계 최소 로직네트워크상의 처리능력을 증가시키는 확장성 장치 및 방법
US10990552B1 (en) Streaming interconnect architecture for data processing engine array
JPH08251196A (ja) 並列計算機
Nishi et al. The JUMP-1 Router Chip: A versatile router for supporting a distributed shared memory
CN117714388B (zh) 混合电路传输和包传输方法及***
JP3251723B2 (ja) 放送通信方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060922

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee