KR102031269B1 - 개선된 3d 토러스 - Google Patents

개선된 3d 토러스 Download PDF

Info

Publication number
KR102031269B1
KR102031269B1 KR1020157023219A KR20157023219A KR102031269B1 KR 102031269 B1 KR102031269 B1 KR 102031269B1 KR 1020157023219 A KR1020157023219 A KR 1020157023219A KR 20157023219 A KR20157023219 A KR 20157023219A KR 102031269 B1 KR102031269 B1 KR 102031269B1
Authority
KR
South Korea
Prior art keywords
torus
data traffic
node
host
nodes
Prior art date
Application number
KR1020157023219A
Other languages
English (en)
Other versions
KR20150118170A (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 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20150118170A publication Critical patent/KR20150118170A/ko
Application granted granted Critical
Publication of KR102031269B1 publication Critical patent/KR102031269B1/ko

Links

Images

Classifications

    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17393Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5691Access to open networks; Ingress point selection, e.g. ISP selection
    • H04L12/5692Selection among different networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

데이터 트래픽의 흐름을 최적화하는 시스템 및 방법이 제공된다. 복수의 토러스가 병렬 토러스 상호 연결부에서 연결된다. 각 토러스는 복수의 노드를 포함한다. 토러스에서 노드는 링크를 사용하여 상호 연결된다. 네트워크에 있는 호스트는 노드의 서브셋에 연결되고 여기서 서브셋에 있는 노드는 상이한 토러스와 연관된다. 상기 호스트는 상기 노드의 서브셋에서 노드를 선택하는 것에 의해 상기 패킷을 상기 병렬 토러스 상호 연결부에 송신한다. 상기 패킷은 상기 복수의 토러스들 사이가 아니라 상기 노드로부터 상기 토러스에 있는 상기 복수의 노드 사이의 링크를 사용하여 송신된다.

Description

개선된 3D 토러스{ENHANCED 3D TORUS}
본 실시예는 일반적으로 네트워크 트래픽을 최적화하는 것에 관한 것으로, 보다 상세하게는 병렬 토러스 상호 연결부(parallel tori interconnect)를 사용하여 네트워크 트래픽을 최적화하는 것에 관한 것이다.
토러스는 병렬 컴퓨터 네트워크에서 처리 노드들을 연결하는 네트워크 토폴로지이다. 토러스는 N 차원(dimension)의 필드 어레이로 배열될 수 있고, 여기서 처리 노드(노드라고도 언급된다)는 링크를 사용하여 가장 인접한 노드에 연결된다.
종래의 토러스 네트워크 토폴로지에서 토러스 상호 연결부는 제한된 대역폭을 가지고 있다. 이 대역폭은 토러스에서 노드의 서브셋에 연결된 각 호스트가 이 대역폭의 일부를 수신하기 때문에 제한된다. 따라서, 호스트를 더 많은 노드를 통해 토러스 패브릭(torus fabric)에 연결하면, 토러스 내 다른 노드와 이 노드에 연결된 다른 호스트의 대역폭을 강탈한다.
링크는 토러스 상호 연결부에 있는 노드들 사이에 데이터 트래픽을 전파한다. 토러스 상호 연결부에 있는 링크가 혼잡하거나 실패하면, 영향을 받은 링크를 사용하는 노드들 사이에 데이터 트래픽이 재라우팅된다. 재라우팅은 토러스 네트워크에서 트래픽 레이턴시에 영향을 미친다. 예를 들어, 재라우팅된 트래픽은 재라우팅된 경로를 사용하여 그 목적지 노드에 도달하는데 더 많은 시간이 들 수 있다. 다른 예에서, 재라우팅된 경로를 통해 흐르도록 원래 스케줄링된 트래픽은 재라우팅된 데이터 트래픽으로 혼잡이 증가하는 것으로 인해서도 영향을 받는다.
링크는 토러스 상호 연결부에 있는 노드들 사이에 데이터 트래픽을 전파한다. 토러스 상호 연결부에 있는 링크가 혼잡하거나 실패하면, 영향을 받은 링크를 사용하는 노드들 사이에 데이터 트래픽이 재라우팅된다. 재라우팅은 토러스 네트워크에서 트래픽 레이턴시에 영향을 미친다. 예를 들어, 재라우팅된 트래픽은 재라우팅된 경로를 사용하여 그 목적지 노드에 도달하는데 더 많은 시간이 들 수 있다. 다른 예에서, 재라우팅된 경로를 통해 흐르도록 원래 스케줄링된 트래픽은 재라우팅된 데이터 트래픽으로 혼잡이 증가하는 것으로 인해서도 영향을 받는다.
데이터 트래픽의 흐름을 최적화하는 시스템 및 방법이 제공된다. 복수의 토러스는 병렬 토러스 상호 연결부에 연결된다. 각 토러스는 복수의 노드를 포함한다. 이 토러스에 있는 노드는 링크를 사용하여 상호 연결된다. 상기 네트워크에서 호스트는 노드의 서브셋에 연결되고 여기서 상기 서브셋의 노드는 상이한 토러스와 연관된다. 상기 호스트는 상기 노드의 서브셋에서 노드를 선택하는 것에 의해 상기 패킷을 상기 병렬 토러스 상호 연결부에 송신한다. 상기 패킷은 상기 복수의 토러스들 사이가 아니라 상기 노드로부터 상기 토러스에 있는 상기 복수의 노드 사이의 링크를 사용하여 송신된다.
본 실시예의 추가적인 특징과 장점, 그리고 여러 실시예의 구조와 동작은 첨부 도면을 참조하여 아래에 상세히 설명된다. 본 실시예는 본 명세서에 설명된 특정 실시예로 제한되지 않는 것으로 이해된다. 이러한 실시예는 본 명세서에 단지 예시를 위하여 제공된 것이다. 추가적인 실시예는 본 명세서에 포함된 개시 내용에 기초하여 이 기술 분야에 통상의 지식을 가진 자에게는 명백할 것이다.
본 명세서에 포함되고 본 명세서의 일부를 형성하는 첨부 도면은, 본 실시예를 도시하고, 본 상세한 설명과 함께, 본 실시예의 원리를 설명하고 이 기술 분야에 통상의 지식을 가진 자로 하여금 본 실시예를 실시하고 사용할 수 있게 하는 역할을 한다. 여러 실시예는 동일한 참조 부호가 동일한 요소를 나타내는데 사용되는 첨부 도면을 참조하여 아래에 상세히 설명된다.
도 1a는 일 실시예에 따른 3차원 토러스의 블록도;
도 1b는 일 실시예에 따른 병렬 토러스 상호 연결부의 블록도;
도 2는 일 실시예에 따른 병렬 토러스 상호 연결부를 통해 데이터 트래픽을 전파하는 방법의 흐름도;
도 3은 일 실시예에 따른 병렬 토러스 상호 연결부에서 노드의 예시적인 물리적인 배열을 도시하는 도면;
도 4는 본 실시예를 구현할 수 있는 컴퓨터 시스템의 블록도.
본 실시예는 첨부 도면을 참조하여 설명된다. 일반적으로, 요소가 제일 먼저 등장하는 도면은 일반적으로 대응하는 참조 번호에서 최좌측 숫자(들)로 표시된다.
이하의 상세한 설명에서, "일 실시예", "실시예", "예시적인 실시예" 등의 언급은 설명된 실시예가 특정 특징, 구조, 또는 특성을 포함할 수 있으나, 모든 실시예가 특정 특징, 구조, 또는 특성을 포함하는 것은 아닐 수 있다는 것을 나타낸다. 나아가, 이러한 어구는 동일한 실시예를 언급하는 것은 아닐 수 있다. 나아가, 특정 특징, 구조, 또는 특성이 일 실시예와 연관하여 설명될 때, 명시적으로 설명되었든 아니든 상관없이 다른 실시예와 연관하여 이러한 특징, 구조 또는 특성에 영향을 미치는 것은 이 기술 분야에 통상의 지식을 가진 자의 지식의 범위 내에 있는 것으로 이해된다.
"실시예"라는 용어는 모든 실시예들이 설명된 특징, 장점 또는 동작 모드를 포함할 것을 요구하는 것은 아니다. 대안적인 실시예들이 본 발명의 범위를 벗어남이 없이 고안될 수 있고, 본 발명의 잘 알려진 요소는 보다 상세히 설명되지 않거나 또는 관련 사항을 불명확하게 하지 않기 위하여 생략될 수 있다. 나아가, 본 명세서에 사용된 용어는 특정 실시예를 설명하기 위한 것일 뿐 본 발명을 제한하는 것으로 의도된 것이 아니다. 예를 들어, 본 명세서에 사용된 바와 같이, 단수 형태는 문맥이 명확히 달리 지시하지 않는 한, 복수의 형태를 포함하는 것으로 의도된다. "포함하고", "포함하는", "구비하고" 및/또는 "구비하는" 라는 용어는, 본 명세서에 사용될 때, 언급된 특징, 정수, 단계, 동작, 요소 및/또는 컴포넌트의 존재를 명시하는 것일 뿐, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트 및/또는 이들의 그룹의 존재나 추가를 배제하는 것은 아닌 것으로 더 이해된다.
종래의 토러스 상호 연결부는 단일 토러스 네트워크 토폴로지로 구현된다. 단일 토러스 네트워크 토폴로지는 여러 제한사항을 가지고 있다. 제일 먼저, 이 토폴로지는 제한된 대역폭을 가지고 있다. 예를 들어, 각 호스트는 토러스에서 특정 개수의 노드에 연결된다. 각 토러스는 유한한 총 대역폭을 가지고 있기 때문에, 각 연결은 토러스에서 총 이용가능한 대역폭의 일부를 수신한다. 노드들 사이의 데이터 트래픽이 토러스에서 이들에 할당된 대역폭보다 더 많은 대역폭을 요구하는 경우, 2개의 노드는 다수의 링크를 사용하여 서로 연결될 수 있다. 그러나, 이 해법은, 다른 노드에 이용가능한 토러스 내 대역폭을 감소시킨다. 추가적으로, 토러스 내 다수의 노드에 연결하기 위해 데이터 트래픽 소스에 여분의 링크가 할당될 때, 토러스에 연결하기 위해 다른 호스트가 사용할 수 있는 대역폭이 또한 감소된다.
두 번째로, 종래의 토러스 상호 연결부에서 노드들 사이의 링크의 실패 또는 혼잡은 네트워크에 악영향을 미친다. 예를 들어, 여러 유형의 데이터 트래픽이 종래의 토러스 상호 연결부의 노드들 사이에 흐른다. 링크들 또는 노드들 중 하나가 실패하거나 혼잡할 때, 이 실패 또는 혼잡은 링크를 통해 흐르는 모든 데이터 트래픽에 영향을 미칠 수 있다. 혼잡 또는 실패를 치료하기 위하여, 종래의 토러스 상호 연결부는 다른 노드들을 통해 데이터 트래픽을 재지향시킬 수 있다. 이것은 전체적인 네트워크에서 지연을 야기할 수 있다. 이 문제는 데이터 트래픽이 링크 또는 노드 실패 또는 혼잡으로 인해 충족될 수 없는 서비스 품질(Quality of Service: QoS) 또는 서비스 등급(Class of Service: CoS)과 연관될 때 특히 눈에 띌 수 있다.
리던던트 링크를 생성하는 것은 종래의 토러스 상호 연결부에서 링크 실패 또는 혼잡을 치료하는 기본적인 방법이다. 리던던트 링크가 감소된 서비스 품질, 서비스 등급, 또는 혼잡 가능성을 감소시킬 수 있으나, 리던던트 링크는 전술한 바와 같이 종래의 토러스 상호 연결부의 대역폭을 더 감소시킬 수 있다.
후술된 병렬 토러스 상호 연결부는 전술한 제한사항에 대한 해법이다.
도 1a는 일 실시예에 따른 3차원(3D) 토러스의 블록도(100A)이다. 블록도(100)는 병렬 토러스 상호 연결부에 포함될 수 있는 토러스(102)를 포함한다. 블록도(100)에서 예시적인 토러스(102)는 3개의 노드(104)의 링(ring) 각각에 구성된 27개의 노드(104)를 포함하지만, 이 실시예로 구현이 제한되지는 않는다. 이 링은 3개의 직교 차원(X,Y,Z)에서 형성될 수 있다. 일 실시예에서, 각 노드(104)는 각 차원에 하나씩 3개의 상이한 링의 멤버이다. 각 노드(104)의 상대 위치는 도 1에서 튜플(tuple)(x,y,z)로 식별되고, 여기서 x, y 및 z는 X, Y 및 Z 좌표축에서 노드(104)의 논리적 위치를 나타낸다. 추가적으로, 각 노드(104)는 연결 또는 링크(106)를 통해 6개의 인접 노드(104)에 연결된다. 일 실시예에서, 링크(106)는 양방향 연결일 수 있다.
일 실시예에서, 토러스(102)는 네트워크를 나타낸다. 네트워크는 데이터 트래픽을 운반하고 서비스와 애플리케이션에 액세스를 제공하는 임의의 네트워크일 수 있다. 네트워크는 근거리 네트워크(LAN), 메트로폴리탄 영역(metropolitan area) 네트워크 및/또는 광역 네트워크(WAN), 예를 들어, 인터넷을 포함할 수 있으나 이들로 제한되지 않는다.
노드(104)는 토러스(102)에서 연결점이다. 일 실시예에서, 노드(104)는 링크(106)를 통해 데이터 트래픽을 송신, 수신 및 전달할 수 있는 컴퓨팅 디바이스일 수 있다. 예시적인 컴퓨팅 디바이스는 도 4에서 상세히 설명된다. 노드(104)는 클라이언트, 서버 및 피어 노드(peer node)를 포함하는 네트워크의 일부일 수 있다. 일 실시예에서, 피어 노드는 클라이언트 노드 또는 서버 노드일 수 있다. 비-제한적인 예에서, 클라이언트는 네트워크를 통해 데이터를 요청하고, 수신된 데이터를 처리하고 디스플레이하는 전술한 컴퓨팅 디바이스이다. 서버는 데이터를 클라이언트에 저장 및 분배하는 전술한 전자 디바이스이다.
일 실시예에서, 토러스(102)는 메쉬(mesh)로 조립될 수 있다. 메쉬에서, 노드(104)는 다른 노드(104)로부터 릴레이 데이터 트래픽뿐만 아니라 자체 데이터를 캡처하고 유포한다.
도 1a에 도시된 토러스(102)는 X, Y 및 Z 좌표 공간에서 3D 어레이이지만, 노드(104)는 다른 노드(104)에 대해 네트워크에서 각 노드(104)의 위치를 설명하는 논리적 차원을 나타내는 것이나, 각 노드(104)의 물리적인 배치를 나타내는 물리적인 차원을 나타내는 것은 아닐 수도 있다. 예를 들어, 서버로 기능하는 토러스(102)를 위한 네트워크 토폴로지는 랙(rack) 또는 백플랜(backplane)에 있는 하나 이상의 행(row)으로 물리적으로 배열된 네트워크에서 노드(104)와 패브릭 상호 연결부의 배선을 통해 구현될 수 있다. 즉, 토러스(102)에서 주어진 노드(104)의 상대 위치는 노드(104)를 포함하는 전자 노드의 물리적인 위치가 아니라 연결된 노드(104)에 의해 한정될 수 있다. 일부 실시예에서, 토러스(102)는 토러스 네트워크 토폴로지를 구현하기 위해 패브릭 상호 연결부를 통해 함께 연결된 복수의 소켓(socket)을 포함한다. 각 노드(104)는 패브릭 상호 연결부에 의해 사용된 소켓에 연결하도록 구성된 FRU(field replaceable unit)를 포함하여 이 FRU가 삽입된 소켓에 의해 토러스(102)에서의 노드(104)의 위치가 지시되게 할 수 있다.
일부 실시예에서, 노드(104)들 사이에 링크(106)는, 예를 들어, 연결된 처리 노드들 사이에 차동 페어 시그널링(differential pair signaling)을 사용하는 하나 이상의 고속 점대점 직렬 통신 링크(point-to-point serial communication link)를 포함한다. 예를 들어, 노드(104)들 사이에 양방향 연결은 하나 이상의 주변 컴포넌트 상호 연결부 익스프레스(PCIe) 링크 또는 외부 PCIe 링크, 예를 들어, x1 PCIe 링크, x4 PCIe 링크, x8 PCIe 링크, 또는 x16 PCIe 링크, 또는 10 기가비트 이더넷(GbE) 부착 유닛 인터페이스(Attachment Unit interface) (XAUI) 인터페이스를 포함할 수 있다. 다른 실시예에서, 노드(104)들 사이에 링크(106)는 일부 예를 들자면, 이더넷, 점대점(Point-to-Point)(PPP), 하이 레벨 데이터 링크 제어(High-Level Data Link Control: HDLC) 프로토콜 및 어드밴스트 데이터 통신 제어 프로시저(Advanced Data Communication Control Procedure: ADCCP) 프로토콜 인터페이스를 포함할 수 있다.
도 1b는 일 실시예에 따른 병렬 토러스 상호 연결부(101)의 블록도(100B)이다. 병렬 토러스 상호 연결부(101)는 도 1a에 설명된 다수의 토러스(102A 내지 102C)를 포함한다. 병렬 토러스 상호 연결부(101)에서, 상이한 토러스(102)로부터 다수의 노드(104)는 호스트(108)에 연결된다. 호스트(108)는 데이터 트래픽을 토러스(102), 예를 들어, 병렬 토러스 상호 연결부(101)에 있는 토러스(102A 내지 102C)에 분배하는 컴퓨팅 디바이스이다. 호스트가 단일 토러스에 있는 노드들에 연결된 종래의 토러스 상호 연결부와는 달리, 호스트(108)는 다수의 토러스(102)에 있는 노드(104)에 연결된다. 예시적인 도 1에서, 호스트(108)는 토러스(102A) 내 노드 (0,0,0), 토러스(102B) 내 노드 (2,2,0) 및 토러스(102C) 내 노드 (2,0,0)에 연결된다. 호스트(108)로부터 상이한 토러스(102)에 다수의 연결은 병렬 토러스 상호 연결부(101)를 형성한다.
일 실시예에서, 호스트(108)는 소켓을 사용하여 상이한 토러스(102A 내지 102C)의 노드(104)에 연결한다. 일 실시예에서, 소켓은 소켓 어드레스(예를 들어, 인터넷 프로토콜 또는 IP) 어드레스 및 포트 번호를 포함할 수 있다. 병렬 토러스 상호 연결부(101)에서, 상이한 토러스(102)로부터 노드(104)는 상이한 포트 번호가 아니라 동일한 소켓 어드레스를 사용하여 호스트(108)에 연결될 수 있다.
일 실시예에서, 각 토러스(102A, 102B 및 102C)는 다른 토러스와 독립적이고 병렬인 복제물(replica)이다. 도 1b에서 토러스(102A 내지 102C)는 병렬로 연결될 때, 각 토러스(102)는 고유 에코시스템(ecosystem)인 네트워크를 나타낸다. 즉, 하나의 토러스(102) 내 데이터 트래픽은 각 토러스(102) 내 노드(104)를 통해 진행할 때 다른 토러스(102) 내 데이터 트래픽과 혼합되지 않는다. 일 실시예에서, 데이터 트래픽이 호스트(108)를 통과하고 호스트(108)가 데이터 트래픽을 다른 토러스로 재분배될 때 데이터 트래픽은 토러스(102A 내지 102C)들 사이를 횡단할 수 있다.
일 실시예에서, 노드(104)들 사이에 통신된 데이터 트래픽은 패킷으로 세그먼트화된다. 패킷은 병렬 토러스 상호 연결부(101) 내 하나의 토러스(102) 내 목적지 노드와 소스 노드 사이의 경로에 걸쳐 라우팅된다. 일 실시예에서, 소스 노드는 패킷을 토러스(102)로 송신하는 호스트(108)에 연결된 노드(104)이다. 일 실시예에서, 목적지 노드는 패킷 데이터를 수신, 저장 및 디스플레이할 수 있으나, 패킷을 더 전파하지는 못할 수 있는 노드(104)이다. 경로는 0개, 1개, 또는 2개 이상의 중간 노드를 포함할 수 있다. 일 실시예에서, 각 노드(104)는 패브릭 상호 연결부의 대응하는 링크에 연결된 노드의 포트들 중에서 패킷을 라우팅하는데 링크 계층 스위치를 구현하는 인터페이스를 패브릭 상호 연결부에 포함한다.
일 실시예에서, 상이한 토러스(102)에 있는 노드(104)에 연결된 호스트(108)는 특정 토러스(102)를 선택하여 데이터 트래픽을 전파한다. 일 예에서, 호스트(108)는 상이한 유형의 데이터에 대한 데이터 트래픽의 유형 또는 미리 구성된 QoS 요구사항에 기초하여 토러스(102)를 선택한다. 예를 들어, 토러스(102A)는 "금(gold)" QoS 유형을 가지는 데이터 트래픽을 전파할 수 있고, 토러스(102B)는 "은(silver)" QoS 유형을 가지는 데이터 트래픽을 전파할 수 있고, 그리고 토러스(102C)는 "동(bronze)" QoS 유형을 가지는 데이터 트래픽을 전파할 수 있는데, 여기서 "금" QoS, "은" QoS 및 "동" QoS 유형은 데이터 트래픽이 소스 노드로부터 목적지 노드로 도달하는데 드는 보장된 시간의 상한을 식별한다. 다른 예에서, 호스트(108)는 토러스(102)에서의 혼잡에 기초하여 토러스(102)를 선택한다. 예를 들어, 토러스(102A)가 데이터 트래픽 혼잡을 경험하면, 호스트(108)는 토러스(102B 또는 102C)를 사용하여 데이터 트래픽을 송신할 수 있다. 호스트(108)는 병렬 토러스 상호 연결부(101)를 거쳐 특정 QoS를 가지는 데이터 트래픽을 분배하는 것을 제어하는 하는 반면, 각 토러스(102) 내 노드(104)는 토러스(102) 내 특정 QoS를 가지는 데이터 트래픽을 전파하는 것을 제어한다.
다른 예에서, 호스트(108)는 CoS의 유형에 기초하여 토러스(102)를 선택한다. 예시적인 CoS는 데이터 트래픽에서 나타나는 특정 기밀 그룹, 고객 연관 등을 포함할 수 있다. CoS의 유형은 각 CoS 내에서 미리 구성될 수 있다. 일 실시예에서, CoS의 유형은 데이터 트래픽의 상이한 유형들 사이를 구별하는데 사용되는 데이터 또는 음성 프로토콜에 포함될 수 있다.
또 다른 예에서, 호스트(108)는 호스트(108)에서 미리 구성된 알고리즘에 따라 일부 또는 모든 병렬 토러스(102)에 걸쳐 데이터 트래픽을 분배한다. 이 알고리즘은, 예를 들어, 호스트(108)가 각 토러스(102)에서 네트워크 혼잡을 모니터링할 수 있게 한다. 이 실시예에서, 호스트(108)가 병렬 토러스 상호 연결부(101)에서의 트래픽 혼잡 또는 링크 실패에 기초하여 데이터 트래픽을 다른 병렬 토러스(102)로 재-라우팅할 수 있기 때문에 노드 또는 링크 실패의 효과는 감소한다.
토러스(102)가 병렬 토러스 상호 연결부(101)에서 연결될 때, 병렬 토러스 상호 연결부(101)의 대역폭은 토러스(102)의 개수에 따라 선형적으로 증가된다. 예를 들어, 네트워크의 대역폭은 병렬 토러스 상호 연결부(101)에 추가된 각 토러스(102)의 대역폭에 의해 선형적으로 증가된다.
병렬 토러스 상호 연결부(101)를 관리하는 소프트웨어의 스케일가능성은 병렬 토러스 상호 연결부(101)의 다른 장점이다. 예를 들어, 병렬 토러스 상호 연결부(101)를 위한 관리 소프트웨어는 병렬 토러스 상호 연결부(101)에 추가된 각 추가적인 토러스(102) 및 추가된 토러스(102)에 데이터 트래픽 분배를 관리하기 위해 스케일링될 수 있다. 일 실시예에서, 추가적인 토러스(102)가 병렬 토러스 상호 연결부에 추가될 때, 추가 전에 토러스(102) 내 노드(104)에 연결된 호스트(108)들 사이에 대역폭이 증가된다.
일 실시예에서, 관리 소프트웨어는 또한 각 토러스(102)에 대한 QoS를 관리한다. 일 실시예에서, 관리 소프트웨어는 호스트(108)에서 실행되어 데이터 트래픽을 병렬 토러스 상호 연결부(101)에 분배한다. 일 예에서, 관리 소프트웨어는 전술한 바와 같이 QoS에 따라 데이터 트래픽을 각 토러스(102)에 분배할 수 있다. 다른 예에서, 관리 소프트웨어는 보안 레벨에 따라 데이터 트래픽을 분배할 수 있다. 예를 들어, 하나의 보안 레벨과 연관된 데이터 트래픽은 하나의 토러스(102)에 분배될 수 있고, 다른 보안 레벨을 가지는 데이터 트래픽은 상이한 토러스(102)에 분배될 수 있다. 이런 방식으로, 상이한 보안 레벨을 가지는 데이터 트래픽은 단일 토러스에 걸쳐 운반되지 않는다. 추가적으로, 특정 보안 레벨을 가지는 데이터 트래픽을 전파하는 토러스(102)는 추가적인 보안 조치를 포함할 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 보안 레벨이 데이터를 송신하거나 수신하는 애플리케이션에 의해 또는 애플리케이션을 사용하는 유저에 의해 설정될 수 있다는 것을 이해할 수 있을 것이다.
추가적인 실시예에서, 호스트(108)는 데이터 트래픽을 병렬 토러스 상호 연결부(101)에 있는 특정 토러스(102)로 송신하는 것이 제한될 수 있다. 예를 들어, 호스트(108)는 데이터를 병렬 토러스 상호 연결부(101)에 있는 토러스(102)의 서브셋으로 분배하는 것으로 제한될 수 있다. 데이터 분배를 제한하는 하나의 방법은 토러스(미도시)의 서브셋 내 노드(104)에 호스트(108)를 연결하는 것이다. 다른 실시예에서, 호스트(108)는 병렬 토러스 상호 연결부(101) 내 노드(104)에 물리적으로 연결될 수 있으나, 관리 소프트웨어로 하여금 데이터를 연결된 노드(104)로 송신하는 것을 시작하고 정지할 때를 결정하게 할 수 있다.
도 2는 일 실시예에 따른 병렬 토러스 상호 연결부를 통해 데이터 트래픽을 전파하는 방법의 흐름도(200)이다.
동작(202)에서, 호스트는 데이터 트래픽을 수신한다. 예를 들어, 호스트(108)는 병렬 토러스 상호 연결부(101)를 통해 분배할 데이터 트래픽을 수신한다.
동작(204)에서, 호스트는 데이터 트래픽을 수신하는 노드를 선택한다. 예를 들어, 호스트(108)는 병렬 토러스 상호 연결부(101)에 있는 노드(104)의 서브셋에 연결되고, 여기서 노드의 서브셋의 노드(104)는 상이한 토러스(102)와 연관된다. 예를 들어, 호스트(108)는 토러스(102A) 내 노드(0,0,0), 토러스(102B) 내 노드(2,2,0) 및 토러스(102C) 내 노드(2,0,0)에 연결될 수 있다. 호스트(108)가 예를 들어, 패킷으로 데이터 트래픽을 수신할 때, 호스트(108)는 데이터 트래픽을 수신하기 위해 노드의 서브셋으로부터 노드(104)를 선택한다. 전술한 바와 같이, 선택은, 병렬 토러스 상호 연결부(101)에서의 토러스(102)의 혼잡에 기초하여, 예를 들자면, 데이터 트래픽에 지정된 QoS의 유형, 또는 데이터 트래픽과 연관된 보안 레벨일 수 있다. 예를 들어, 상기에 기초하여, 호스트(108)는 토러스(102A) 내 노드(0,0,0), 토러스(102B) 내 노드(2,2,0) 또는 토러스(102C) 내 노드(2,0,0)를 선택할 수 있다.
동작(206)에서, 데이터 트래픽은 선택된 노드로 전파된다. 예를 들어, 호스트(108)는 동작(204)에서 선택된 노드(104)로 패킷을 전파한다.
도 3은 일 실시예에 따른 병렬 토러스 상호 연결부에 있는 노드의 예시적인 물리적인 배열을 도시하는 블록도(300)이다. 도시된 예에서, 패브릭 상호 연결부는 플러그인 소켓(304)의 하나 이상의 행이나 다른 집합(aggregation)을 가지는 하나 이상의 상호 연결부(302)를 포함한다. 상호 연결부(302)는 백플랜, 인쇄 배선 기판, 마더보드, 배선 또는 다른 가요성 배선, 또는 이들의 조합과 같은 고정된 또는 가요성 상호 연결부를 포함할 수 있다. 나아가, 상호 연결부(302)는 전기 신호, 광 신호 또는 이들의 조합을 구현할 수 있다. 각 플러그인 소켓(304)은 하나 이상의 FRU, 예를 들어, FRU(306-311)을, 상호 연결부(302)와 연결하도록 동작하는 카드-에지 소켓을 포함한다. 각 FRU는 각 토러스(102)와 연관된 노드(104)를 나타낸다.
각 FRU는 PCB에 배치된 컴포넌트를 포함하고, 이에 의해 컴포넌트는 PCB의 금속 층을 통해 상호 연결되고 FRU에 의해 나타난 노드의 기능을 제공한다. 예를 들어, FRU(306)는 하나 이상의 프로세서 코어(322), 하나 이상의 메모리 모듈(324), 예를 들어, DRAM 듀얼 인라인 메모리 모듈(Dual Inline Memory Module: DIMM), 및 패브릭 인터페이스 디바이스(326)를 포함하는 프로세서(320)를 구현하는 PCB(312)를 포함한다. 각 FRU는 플러그인 소켓(304)을 통해 상호 연결부(302)에 FRU를 연결하도록 동작하는 소켓 인터페이스(330)를 더 포함한다.
상호 연결부(302)는 플러그인 소켓(304)들 사이에 데이터 통신 경로를 제공하여, 상호 연결부(302)는 FRU를 링으로 연결하고 이 링을 2D- 또는 3D-토러스 네트워크 토폴로지, 예를 들어, 도 1b의 토러스 네트워크(100B)로 연결하도록 동작한다. FRU는 대응하는 패브릭 인터페이스, 예를 들어, FRU(306)의 패브릭 인터페이스 디바이스(326)를 통해 데이터 통신 경로를 이용한다. 소켓 인터페이스(330)는 플러그인 소켓(304)의 대응하는 전기 접점에 전기적으로 연결하여 X-차원의 링(예를 들어, 핀 0 및 핀 1을 위한 링-X_IN 포트(332) 및 핀 2 및 핀 3을 위한 링-X_OUT 포트(334)), Y-차원의 링(예를 들어, 핀 4 및 핀 5를 위한 링-Y_IN 포트(336) 및 핀 6 및 핀 7을 위한 링-Y_OUT 포트(338)), 및 Z-차원의 링(예를 들어, 핀 8 및 핀 9를 위한 링-Z_IN 포트(340) 및 핀 10 및 핀 11을 위한 링-Z_OUT 포트(342))을 위한 포트 인터페이스로 동작하는 전기 접점(예를 들어, 카드 에지 핀)을 제공한다. 도시된 예에서, 각 포트는, 예를 들어, PCIE 레인의 입력 포트 또는 출력 포트를 포함하는 차동 송신기이다. 이 기술 분야에 통상의 지식을 가진 자라면 포트는 추가적인 레인 또는 추가적인 포트를 수용하는 추가적인 TX/RX 신호 핀을 포함할 수 있다는 것을 이해할 수 있을 것이다.
도 4는 본 실시예를 구현할 수 있는 컴퓨터 시스템의 블록도(400)이다.
여러 실시예는 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합에 의해 구현될 수 있다. 도 4는 개시된 실시예 또는 그 부분이 컴퓨터-판독가능한 코드로 구현될 수 있는 예시적인 컴퓨터 시스템(400)을 도시한다. 예를 들어, 본 명세서에 설명된 흐름도에 의해 도시된 방법은 시스템(400)에 구현될 수 있다. 여러 실시예는 이 예시적인 컴퓨터 시스템(400) 측면에서 설명된다. 본 설명을 판독한 후, 다른 컴퓨터 시스템 및/또는 컴퓨터 아키텍처를 사용하여 본 실시예를 구현하는 방법은 이 기술 분야에 통상의 지식을 가진 자에게는 명백할 것이다.
컴퓨터 시스템(400)은 하나 이상의 프로세서, 예를 들어, 프로세서(410)를 포함한다. 프로세서(410)는 특수 목적 또는 일반 목적 프로세서일 수 있다. 하나의 예시적인 프로세서는 데이터를 처리하는 중앙 처리 유닛(central processing unit: "CPU")을 사용한다. CPU는 컴퓨터 프로그램 또는 애플리케이션의 명령을 수행하는 프로세서이다. 예를 들어, CPU는 산술적, 논리적 및 입력/출력 연산을 수행하는 것에 의해 명령을 수행한다. 일 실시예에서, CPU는 컴퓨터 프로그램 또는 애플리케이션의 코드를 결정하는 것을 포함하는 제어 명령을 수행하고, 전자 디바이스 내 다른 프로세서, 예를 들어, 그래픽 처리 유닛("GPU")에 처리를 위임한다. GPU는, 전자 디바이스에서 수학 집약적인 애플리케이션을 신속히 처리하도록 설계된 전문화된 전자 회로인 다른 예시적인 프로세서이다. GPU는, 예를 들어, 컴퓨터 그래픽 애플리케이션, 이미지 및 비디오에 공통적인 수학 집약적인 데이터와 같은 다량의 데이터 블록을 병렬 처리하는데 효율적인 매우 병렬 구조를 구비한다. GPU는 CPU로부터 처리하기 위한 데이터를 수신하거나 또는 이전에 처리된 데이터 및 연산으로부터 처리하기 위한 데이터를 생성할 수 있다. 일 실시예에서, GPU는 하드웨어를 사용하여 데이터를 병렬로 처리하는 하드웨어 -기반 프로세서이다.
프로세서(410)는 통신 인프라구조(420)(예를 들어, 버스 또는 네트워크)에 연결된다.
컴퓨터 시스템(400)은 또한 메인 메모리(430), 바람직하게는 랜덤 액세스 메모리(RAM)를 포함하고, 제2차 메모리(440)를 더 포함할 수 있다. 제2차 메모리(440)는, 예를 들어, 하드 디스크 드라이브(450), 이동식 저장 드라이브(460) 및/또는 메모리 스틱을 포함할 수 있다. 이동식 저장 드라이브(460)는 플로피 디스크 드라이브, 자기 테이프 드라이브, 광 디스크 드라이브, 플래쉬 메모리 등을 포함할 수 있다. 이동식 저장 드라이브(460)는 잘 알려진 방식으로 이동식 저장 유닛(470)으로부터 판독하고/하거나 이동식 저장 유닛에 기록한다. 이동식 저장 유닛(470)은 이동식 저장 드라이브(460)에 의해 판독하고 이에 기록되는 플로피 디스크, 자기 테이프, 광 디스크 등을 포함할 수 있다. 이 기술 분야에 통상의 지식을 가진 자라면 이해하는 바와 같이, 이동식 저장 유닛(470)은 컴퓨터 소프트웨어 및/또는 데이터를 내부에 저장한 컴퓨터 사용가능한 저장 매체를 포함한다.
대안적인 구현에서, 제2차 메모리(440)는 컴퓨터 프로그램 또는 다른 명령을 컴퓨터 시스템(400)에 로딩하는 다른 유사한 수단을 포함할 수 있다. 이러한 수단은, 예를 들어, 이동식 저장 유닛(470)과 인터페이스(미도시)를 포함할 수 있다. 이러한 수단의 예로는 프로그램 카트리지와 카트리지 인터페이스(예를 들어, 비디오 게임 디바이스에서 발견되는 것), 이동식 메모리 칩(예를 들어, EPROM 또는 PROM) 및 연관된 소켓, 그리고 소프트웨어와 데이터를 이동식 저장 유닛(470)으로부터 컴퓨터 시스템(400)으로 전달하는 다른 이동식 저장 유닛(470)과 인터페이스를 포함할 수 있다.
컴퓨터 시스템(400)은 통신 및 네트워크 인터페이스(480)를 더 포함할 수 있다. 통신 및 네트워크 인터페이스(480)는 소프트웨어와 데이터를 컴퓨터 시스템(400)과 외부 디바이스 사이에 전달할 수 있게 한다. 통신 및 네트워크 인터페이스(480)는 모뎀, 통신 포트, PCMCIA 슬롯 및 카드 등을 포함할 수 있다. 통신 및 네트워크 인터페이스(480)를 통해 전달되는 소프트웨어 및 데이터는 통신 및 네트워크 인터페이스(480)에 의해 수신될 수 있는 전자, 전자기, 광 또는 다른 신호일 수 있는 신호 형태이다. 이들 신호는 통신 경로(485)를 통해 통신 및 네트워크 인터페이스(480)에 제공된다. 통신 경로(485)는 신호를 운반하고, 유선 또는 케이블, 광섬유, 전화선, 셀룰러 폰 링크, RF 링크 또는 다른 통신 채널을 사용하여 구현될 수 있다.
통신 및 네트워크 인터페이스(480)는 컴퓨터 시스템(400)이 통신 네트워크 또는 매체, 예를 들어, LAN, WAN 인터넷 등을 통해 통신할 수 있게 한다. 통신 및 네트워크 인터페이스(480)는 유선 또는 무선 연결을 통해 원격 위치 또는 네트워크와 인터페이싱할 수 있다.
본 문서에서, "컴퓨터 프로그램 매체" 및 "컴퓨터 사용가능한 매체" 및 "컴퓨터 판독가능한 매체"라는 용어는 일반적으로 이동식 저장 유닛(470), 이동식 저장 드라이브(460) 및 하드 디스크 드라이브(450)에서 설치된 하드 디스크와 같은 매체를 언급하는데 사용된다. 통신 경로(485)를 통해 운반되는 신호는 또한 본 명세서에 설명된 로직을 구현할 수 있다. 컴퓨터 프로그램 매체, 컴퓨터 사용가능한 매체 및 컴퓨터 판독가능한 매체는 또한 메모리, 예를 들어, 메인 메모리(430) 및 메모리 반도체(예를 들어 DRAM 등)일 수 있는 제2차 메모리(440)를 언급할 수 있다. 이 컴퓨터 프로그램 제품은 소프트웨어를 컴퓨터 시스템(400)에 제공하는 수단이다.
컴퓨터 프로그램(또한 컴퓨터 제어 로직이라고도 지칭됨)은 메인 메모리(430) 및/또는 제2차 메모리(440)에 저장된다. 컴퓨터 프로그램은 또한 통신 및 네트워크 인터페이스(480)를 통해 수신될 수 있다. 이러한 컴퓨터 프로그램은, 실행될 때, 컴퓨터 시스템(400)이 본 명세서에 설명된 실시예를 구현할 수 있게 한다. 특히, 컴퓨터 프로그램은, 실행될 때, 프로세서(410)가 전술한 흐름도에 도시된 방법 단계와 같은 실시예의 처리를 구현하게 한다. 따라서, 이러한 컴퓨터 프로그램은 컴퓨터 시스템(400)의 제어기를 나타낸다. 본 실시예가 소프트웨어를 사용하여 구현되는 경우, 소프트웨어는 컴퓨터 프로그램 제품에 저장되고, 예를 들어, 이동식 저장 드라이브(460), 인터페이스, 디스크 드라이브(450) 또는 통신 및 네트워크 인터페이스(480)를 사용하여 컴퓨터 시스템(400)에 로딩될 수 있다.
컴퓨터 시스템(400)은 키보드, 모니터, 포인팅 디바이스 등과 같은 입력/출력/디스플레이 디바이스(490)를 더 포함할 수 있다.
본 실시예는, 예를 들어, 일반적인-프로그래밍 언어(예를 들어, C 또는 C++), 베릴로그(Verilog) HDL, VHDL, 알테라(Altera) HDL(AHDL) 등을 포함하는 하드웨어-설명 언어(HDL) 또는 다른 이용가능한 프로그래밍 및/또는 개략-캡처 도구(예를 들어, 회로-캡처 도구)의 사용을 통해 달성될 수 있다. 프로그램 코드는 반도체, 자기 디스크, 또는 광 디스크(예를 들어, CD-ROM, DVD-ROM)를 포함하는 임의의 알려진 컴퓨터-판독가능한 매체에 배치될 수 있다. 그리하여, 이 코드는 인터넷 및 인터넷들을 포함하는 통신 네트워크를 통해 송신될 수 있다. 전술한 시스템과 기술에 의해 달성되는 기능 및/또는 이에 의해 제공되는 구조는 프로그램 코드에 구현되고 집적 회로의 제조의 일부로 하드웨어로 변환될 수 있는 코어(예를 들어, CPU 코어 및/또는 GPU 코어)로 표현될 수 있는 것으로 이해된다.
본 실시예는 또한 임의의 컴퓨터-사용가능한 매체에 저장된 소프트웨어를 포함하는 컴퓨터 프로그램 제품에 관한 것이다. 이러한 소프트웨어는, 하나 이상의 데이터 처리 디바이스에서 실행될 때, 데이터 처리 디바이스(들)가 본 명세서에 설명된 바와 같이 또는 전술한 바와 같이 동작할 수 있게 하고, 전자 디바이스(예를 들어, ASIC, 또는 프로세서)의 합성 및/또는 제조를 위해 본 명세서에 설명된 실시예를 수행할 수 있게 한다. 본 실시예는 임의의 컴퓨터-사용가능한 또는 -판독가능한 매체, 그리고 이제 또는 차후에 알려진 임의의 컴퓨터-사용가능한 또는 -판독가능한 저장 매체를 사용한다. 컴퓨터-사용가능한 또는 컴퓨터-판독가능한 매체의 예로는, 제1차 저장 디바이스(예를 들어, 임의의 유형의 랜덤 액세스 메모리), 제2차 저장 디바이스(예를 들어, 하드 드라이브, 플로피 디스크, CD ROMS, ZIP 디스크, 테이프, 자기 저장 디바이스, 광 저장 디바이스, MEMS, 나노-기술 저장 디바이스 등), 및 통신 매체(예를 들어, 유선 및 무선 통신 네트워크, 근거리 네트워크, 광역 네트워크, 인트라넷 등)를 포함하나 이들로 제한되지 않는다.
본 상세한 설명란과 본 발명의 개요란과 요약서 란은 청구범위를 해석하는데 사용되도록 의도된 것으로 이해된다. 발명의 개요란과 요약서란은 본 발명자(들)가 고려한 하나 이상이나 모두는 아닌 예시적인 실시예를 제시하는 것일 뿐, 임의의 방식으로 첨부된 청구범위와 실시예를 제한하도록 의도된 것이 아니다.
본 실시예는 지정된 기능 및 관계의 구현을 도시하는 기능 블록도의 도움으로 전술되었다. 이들 기능 블록들의 경계는 설명의 편의를 위하여 본 명세서에서 임의로 한정된 것이다. 대안적인 경계들이 지정된 기능과 관계들이 적절히 수행되는 한 한정될 수 있다.
특정 실시예의 전술한 설명은, 다른 사람이, 이 기술 분야에 통상의 지식을 적용하여 본 발명의 일반적인 개념을 벗어남이 없이 과도한 실험 없이 특정 실시예의 여러 응용을 용이하게 변경하거나 및/또는 적응할 수 있을 만큼 충분한 일반적인 실시예의 특성을 설명한다. 그러므로, 이러한 적응과 변경은 본 명세서에 제시된 개시 내용과 가이드에 기초하여 개시된 실시예의 의미와 등가 범위 내에 있는 것으로 의도된다. 본 명세서에 있는 어구 또는 용어는 설명을 위한 것일 뿐 발명을 제한하려는 것이 아니므로 본 명세서의 용어와 어구는 개시 내용과 가이드에 비춰 이 기술 분야에 통상의 지식을 가진 자에 의해 해석되어야 하는 것으로 이해된다.
본 실시예의 범위는 전술한 예시적인 실시예들 중 어느 것에 의해 제한되어서는 안되지만, 첨부된 청구범위와 그 균등 범위에 따라서만 한정되어야 한다.

Claims (25)

  1. 병렬 토러스 네트워크 상호 연결부 시스템(parallel torus network interconnect system)으로서,
    복수의 토러스들, 각각의 토러스는 복수의 노드들을 포함하고,
    각각의 노드는 데이터 트래픽을 송신 및 수신하도록 구성된 컴퓨팅 디바이스이고;
    각각의 노드는 링크에 의해 동일한 토러스에 있는 하나 이상의 다른 노드들에 연결되며; 그리고
    상기 복수의 토러스들의 각 토러스의 적어도 하나의 노드에 연결되는 호스트를 포함하고,
    상기 호스트는,
    제 1 기준(criteria)을 갖는 제 1 데이터 트래픽을 전파할 제 1 토러스를 선택하고 그리고 제 2 기준을 갖는 제 2 데이터 트래픽을 전파할 제 2 토러스를 선택하며;
    상기 제 1 데이터 트래픽을 상기 제 1 토러스에 있는 노드로 분배하고, 하나의 토러스에 있는 노드들 사이에서의 데이터 트래픽은 다른 토러스들에서의 데이터 트래픽과 혼합되지 않으며; 그리고
    제 1 노드로부터 수신된 데이터 트래픽을 제 2 노드로 재분배하도록 구성되며,
    상기 제 1 노드는 상기 호스트를 상기 제 1 토러스에 연결하고, 상기 제 2 노드는 상기 호스트를 상기 제 2 토러스에 연결하는 것을 특징으로 하는 병렬 토러스 네트워크 상호 연결부 시스템.
  2. 제1항에 있어서,
    상기 시스템에 있는 각 토러스는 3차원 토러스인 것을 특징으로 하는 병렬 토러스 네트워크 상호 연결부 시스템.
  3. 제1항에 있어서,
    상기 호스트는 상기 제 1 및 제 2 데이터 트래픽의 각각의 서비스 품질(Quality of Service: QoS)에 기초하여 상기 제 1 및 제 2 토러스를 선택하도록 구성된 것을 특징으로 하는 병렬 토러스 네트워크 상호 연결부 시스템.
  4. 제1항에 있어서,
    상기 호스트는 상기 토러스들 중 하나에서의 혼잡에 기초하여 상기 제 1 및 제 2 토러스를 선택하도록 구성된 것을 특징으로 하는 병렬 토러스 네트워크 상호 연결부 시스템.
  5. 제1항에 있어서,
    상기 호스트는 상기 제 1 및 제 2 데이터 트래픽의 유형에 기초하여 상기 상기 제 1 및 제 2 토러스를 선택하도록 구성된 것을 특징으로 하는 병렬 토러스 네트워크 상호 연결부 시스템.
  6. 제1항에 있어서,
    상기 호스트는 상기 제 1 및 제 2 데이터 트래픽과 연관된 서비스 등급 (Class of Service: CoS)에 기초하여 상기 상기 제 1 및 제 2 토러스를 선택하도록 구성된 것을 특징으로 하는 병렬 토러스 네트워크 상호 연결부 시스템.
  7. 제1항에 있어서,
    상기 호스트는 상기 제 1 및 제 2 토러스와 상기 제 1 및 제 2 데이터 트래픽의 보안 레벨에 기초하여 상기 제 1 및 제 2 토러스를 선택하도록 구성된 것을 특징으로 하는 병렬 토러스 네트워크 상호 연결부 시스템.
  8. 병렬 토러스 네트워크 상호 연결부 시스템에서 데이터 트래픽을 전파하는 방법으로서, 상기 시스템은 복수의 토러스들을 포함하고, 각 토러스는 복수의 노드들을 포함하며, 상기 방법은,
    제 1 기준을 갖는 제 1 데이터 트래픽과 제 2 기준을 갖는 제 2 데이터 트래픽을 호스트에서 수신하는 단계, 상기 호스트는 상기 복수의 토러스들의 각 토러스의 적어도 하나의 노드에 연결되며;
    상기 호스트에 의해서, 상기 제 1 데이터 트래픽을 수신할 제 1 토러스 내의 노드를 선택하고, 상기 제 2 데이터 트래픽을 수신할 제 2 토러스 내의 노드를 선택하는 단계;
    상기 호스트에 의해서, 상기 제 1 데이터 트래픽을 상기 제 1 토러스 내의 선택된 노드로 전파하고 그리고 상기 제 2 데이터 트래픽을 상기 제 2 토러스 내의 선택된 노드로 전파하는 단계, 하나의 토러스 내의 노드들 사이에서의 데이터 트래픽은 다른 토러스에서의 데이터 트래픽과 혼합되지 않으며; 그리고
    상기 호스트와 상기 제 1 토러스를 연결하는 제 1 토러스 내의 노드로부터 수신된 데이터 트래픽을, 상기 호스트와 상기 제 2 토러스를 연결하는 제 2 토러스 내의 노드로 재분배하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 시스템 내 각 토러스는 3차원 토러스인 것을 특징으로 하는 방법.
  10. 제8항에 있어서,
    상기 선택하는 단계는, 상기 제 1 및 제 2 데이터 트래픽의 각각의 서비스 품질(QoS)에 기초하여 상기 제 1 및 제 2 노드를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제8항에 있어서,
    상기 선택하는 단계는, 상기 제 1 및 제 2 데이터 트래픽의 각각의 서비스 등급(CoS)에 기초하여 상기 제 1 및 제 2 노드를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제8항에 있어서,
    상기 선택하는 단계는, 상기 토러스들 중 하나에서의 혼잡에 기초하여 상기 제 1 및 제 2 노드를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제8항에 있어서,
    상기 선택하는 단계는, 상기 제 1 및 제 2 토러스와 상기 제 1 및 제 2 데이터 트래픽의 보안 레벨에 기초하여 상기 제 1 및 제 2 노드를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 병렬 토러스 네트워크 상호 연결부 시스템에서 데이터 트래픽을 전파하도록 범용 컴퓨터에 의해 실행되는 일 세트의 명령들을 저장하는 비일시적인 컴퓨터 판독가능 저장매체로서, 상기 시스템은 복수의 토러스들을 포함하고, 각 토러스는 복수의 노드들을 포함하며, 상기 일 세트의 명령들은,
    제 1 기준을 갖는 제 1 데이터 트래픽과 제 2 기준을 갖는 제 2 데이터 트래픽을 호스트에서 수신하기 위한 수신 코드 세그먼트, 상기 호스트는 상기 복수의 토러스들의 각 토러스의 적어도 하나의 노드에 연결되며;
    상기 호스트에 의해서 상기 제 1 데이터 트래픽을 수신할 제 1 토러스 내의 노드를 선택하고 상기 제 2 데이터 트래픽을 수신할 제 2 토러스 내의 노드를 선택하기 위한 선택 코드 세그먼트;
    상기 호스트에 의해서 상기 제 1 데이터 트래픽을 상기 제 1 토러스 내의 선택된 노드로 전파하고 그리고 상기 제 2 데이터 트래픽을 상기 제 2 토러스 내의 선택된 노드로 전파하기 위한 전파 코드 세그먼트, 하나의 토러스 내의 노드들 사이에서의 데이터 트래픽은 다른 토러스에서의 데이터 트래픽과 혼합되지 않으며; 그리고
    상기 호스트와 상기 제 1 토러스를 연결하는 제 1 토러스 내의 노드로부터 수신된 데이터 트래픽을, 상기 호스트와 상기 제 2 토러스를 연결하는 제 2 토러스 내의 노드로 재분배하기 위한 재분배 코드 세그먼트
    를 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능 저장매체.
  15. 제14항에 있어서,
    상기 선택 코드 세그먼트는, 상기 제 1 및 제 2 데이터 트래픽의 각각의 서비스 품질(QoS)에 기초하여 상기 노드들을 선택하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능 저장매체.
  16. 제14항에 있어서,
    상기 선택 코드 세그먼트는, 상기 토러스들 중 하나에서의 혼잡에 기초하여 상기 노드들을 선택하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능 저장매체.
  17. 제14항에 있어서,
    상기 선택 코드 세그먼트는, 상기 제 1 및 제 2 데이터 트래픽의 각각의 유형에 기초하여 상기 노드들을 선택하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능 저장매체.
  18. 제14항에 있어서,
    상기 선택 코드 세그먼트는, 상기 제 1 및 제 2 데이터 트래픽과 관련된 각각의 서비스 등급에 기초하여 상기 노드들을 선택하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능 저장매체.
  19. 제14항에 있어서,
    상기 선택 코드 세그먼트는, 상기 선택하는 단계는, 상기 제 1 및 제 2 토러스와 상기 제 1 및 제 2 데이터 트래픽의 각각의 보안 레벨에 기초하여 상기 노드들을 선택하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능 저장매체.
  20. 제14항에 있어서,
    상기 명령들은 디바이스의 제조를 위해 이용되는 하드웨어-설명 언어(HDL) 명령들인 것을 특징으로 하는 비일시적인 컴퓨터 판독가능 저장매체.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020157023219A 2013-02-13 2014-02-12 개선된 3d 토러스 KR102031269B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/766,115 2013-02-13
US13/766,115 US9424229B2 (en) 2013-02-13 2013-02-13 Parallel torus network interconnect
PCT/US2014/016045 WO2014127012A1 (en) 2013-02-13 2014-02-12 Enhanced 3d torus

Publications (2)

Publication Number Publication Date
KR20150118170A KR20150118170A (ko) 2015-10-21
KR102031269B1 true KR102031269B1 (ko) 2019-10-11

Family

ID=50280464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157023219A KR102031269B1 (ko) 2013-02-13 2014-02-12 개선된 3d 토러스

Country Status (6)

Country Link
US (1) US9424229B2 (ko)
EP (1) EP2956866A1 (ko)
JP (1) JP6254617B2 (ko)
KR (1) KR102031269B1 (ko)
CN (1) CN105051717B (ko)
WO (1) WO2014127012A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101995056B1 (ko) 2015-12-30 2019-07-02 한국전자통신연구원 분산 파일 시스템 및 이의 운영방법
KR102025801B1 (ko) 2016-01-26 2019-09-26 한국전자통신연구원 분산 파일 시스템 및 이의 데이터 내결함성 지원 방법
KR102610984B1 (ko) * 2017-01-26 2023-12-08 한국전자통신연구원 토러스 네트워크를 이용하는 분산 파일 시스템 및 토러스 네트워크를 이용하는 분산 파일 시스템의 운영 방법
CN107612805B (zh) * 2017-09-11 2021-01-26 深圳市盛路物联通讯技术有限公司 物联网通信方法及物联网网关
CN107645744B (zh) * 2017-09-11 2021-06-22 深圳市盛路物联通讯技术有限公司 物联网通信方法及第一中继器
KR20220006122A (ko) * 2020-03-26 2022-01-14 그래프코어 리미티드 토로이드 컴퓨터 네트워크에 대한 링 임베딩

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689719A (en) 1991-06-28 1997-11-18 Sanyo Electric O., Ltd. Parallel computer system including processing elements

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592610A (en) 1994-12-21 1997-01-07 Intel Corporation Method and apparatus for enhancing the fault-tolerance of a network
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US20060146825A1 (en) * 2004-12-30 2006-07-06 Padcom, Inc. Network based quality of service
JP2006215816A (ja) * 2005-02-03 2006-08-17 Fujitsu Ltd 情報処理システムおよび情報処理システムの制御方法
GB2424545A (en) * 2005-03-24 2006-09-27 Orange Personal Comm Serv Ltd Packet radio communications system where at least one ran is arranged to operate with a different communication standard than the other rans
US7797664B2 (en) * 2006-06-23 2010-09-14 National Institute Of Advanced Industrial Science And Technology System for configuring an integrated circuit and method thereof
JP5056844B2 (ja) * 2007-03-20 2012-10-24 富士通株式会社 一意情報集団通信プログラム、計算ノード、および一意情報集団通信方法
US7644254B2 (en) 2007-04-18 2010-01-05 International Business Machines Corporation Routing data packets with hint bit for each six orthogonal directions in three dimensional torus computer system set to avoid nodes in problem list
WO2009149732A1 (en) * 2008-06-13 2009-12-17 Telefonaktiebolaget Lm Ericsson (Publ) Network traffic transfer between a radio base station node and a gateway node
CN101656861B (zh) * 2009-09-14 2012-07-18 中兴通讯股份有限公司 一种录制节目的方法和多媒体系统
US8612386B2 (en) * 2011-02-11 2013-12-17 Alcatel Lucent Method and apparatus for peer-to-peer database synchronization in dynamic networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689719A (en) 1991-06-28 1997-11-18 Sanyo Electric O., Ltd. Parallel computer system including processing elements

Also Published As

Publication number Publication date
US20140226479A1 (en) 2014-08-14
KR20150118170A (ko) 2015-10-21
JP6254617B2 (ja) 2017-12-27
JP2016513321A (ja) 2016-05-12
CN105051717A (zh) 2015-11-11
WO2014127012A1 (en) 2014-08-21
US9424229B2 (en) 2016-08-23
CN105051717B (zh) 2018-05-15
EP2956866A1 (en) 2015-12-23

Similar Documents

Publication Publication Date Title
KR102031269B1 (ko) 개선된 3d 토러스
US9860197B2 (en) Automatic buffer sizing for optimal network-on-chip design
RU2543558C2 (ru) Способ и усройство маршрутизации ввода-вывода и карта
US9043526B2 (en) Versatile lane configuration using a PCIe PIe-8 interface
US9253085B2 (en) Hierarchical asymmetric mesh with virtual routers
KR102309907B1 (ko) 컴퓨터 네트워크에서 직접 상호 연결 스위치 배선과 증가를 관리하는 방법 및 장치
EP2230606A2 (en) System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
US20150288531A1 (en) Integrated noc for performing data communication and noc functions
JP2005318495A (ja) 異なる仮想チャネルへのトランザクションの分離
US20170063609A1 (en) Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US20080123552A1 (en) Method and system for switchless backplane controller using existing standards-based backplanes
CN112188325B (zh) 使用具有一对多光交换机的光网络的可重新配置的计算平台
US10050843B2 (en) Generation of network-on-chip layout based on user specified topological constraints
US7596650B1 (en) Increasing availability of input/output (I/O) interconnections in a system
US9112796B2 (en) System guided surrogating control in broadcast and multicast
CN114697276A (zh) 片上网络(NoC)中的广播交换机系统
US20180183672A1 (en) System and method for grouping of network on chip (noc) elements
US20200235815A1 (en) Methods and sysems for reconfigurable network topologies
US9762474B2 (en) Systems and methods for selecting a router to connect a bridge in the network on chip (NoC)
US9774498B2 (en) Hierarchical asymmetric mesh with virtual routers
US20050038949A1 (en) Apparatus for enabling distributed processing across a plurality of circuit cards

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right