KR20040004532A - 최적화된 가변 네트워크 스위치 - Google Patents

최적화된 가변 네트워크 스위치 Download PDF

Info

Publication number
KR20040004532A
KR20040004532A KR10-2003-7010873A KR20037010873A KR20040004532A KR 20040004532 A KR20040004532 A KR 20040004532A KR 20037010873 A KR20037010873 A KR 20037010873A KR 20040004532 A KR20040004532 A KR 20040004532A
Authority
KR
South Korea
Prior art keywords
packets
priority
packet
arbitration
output
Prior art date
Application number
KR10-2003-7010873A
Other languages
English (en)
Other versions
KR100620835B1 (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 KR20040004532A publication Critical patent/KR20040004532A/ko
Application granted granted Critical
Publication of KR100620835B1 publication Critical patent/KR100620835B1/ko

Links

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
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D25/00Pumping installations or systems
    • F04D25/16Combinations of two or more pumps ; Producing two or more separate gas flows
    • F04D25/166Combinations of two or more pumps ; Producing two or more separate gas flows using fans
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K7/00Constructional details common to different types of electric apparatus
    • H05K7/20Modifications to facilitate cooling, ventilating, or heating
    • H05K7/20709Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
    • H05K7/20836Thermal management, e.g. server temperature control
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D27/00Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
    • F04D27/004Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
    • 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/17381Two dimensional, e.g. mesh, torus
    • 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/17387Three dimensional, e.g. hypercubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • G09G5/008Clock recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
    • H04L7/0338Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/70Control systems characterised by their outputs; Constructional details thereof
    • F24F11/72Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
    • F24F11/74Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
    • F24F11/77Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B30/00Energy efficient heating, ventilation or air conditioning [HVAC]
    • Y02B30/70Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Databases & Information Systems (AREA)
  • Discrete Mathematics (AREA)
  • Thermal Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

m 개의 다차원으로 구성되고, 각 노드는 컴퓨팅 장치를 포함하는 복수의 노드를 구비한 고도 병렬 컴퓨팅 시스템에서, 패킷을 목적지 노드로 라우팅하는 방법이 제공되며, 상기 방법은 하향 노드로부터 도출된 정보를 포함하는 2m 개의 복수의 소형 비트 벡터 중 하나 이상의 소형 비트 벡터를 생성하는 단계를 포함한다. 링크 상태 정보 및 하향 버퍼 충만 등의 하향 정보가 상기 소형 비트 벡터에 저장되는 다중 레벨 중재 프로세스를 사용하여, 패킷 전송을 위한 바람직한 방향 및 가상 채널을 결정한다. 바람직한 방향의 범위가 인코딩되며, 가상 채널은 상기 복수의 소형 비트 벡터를 검사함으로써 선택된다. 이러한 동적 라우팅 방법은 라우팅 테이블의 필요성을 제거하며, 따라서 스위치의 가변성을 개선한다.

Description

최적화된 가변 네트워크 스위치{OPTIMIZED SCALABLE NETWORK SWITCH}
(상호 참조)
본 발명은 함께 계류 중인 공유의 미국 가특허 출원 번호 제60/271,124호(출원일 : 2001. 2. 24) "MASSIVELY PARALLEL SUPERCOMPUTER"의 혜택을 청구하며, 상기 가출원의 전체 개시 내용은 본 참조에 의해 본 명세서에 전체가 개시된 것과 같이 명시적으로 통합된다. 본 특허 출원은 다음의 함께 계류 중인 공유의 미국 특허 출원들(동일자 출원임)과 추가로 관련되며, 다음 각 출원들의 전체 개시 내용은 본 참조에 의해 본 명세서에 전체가 설명된 것과 같이 명시적으로 통합된다; 미국 특허 출원 YOR920020027US1, YOR920020044US1 (15270) "Class Networking Routing", 미국 특허 출원 YOR920020028US1 (15271) "A Global Tree Network for Computing Structures", 미국 특허 출원 YOR920020029US1 (15272) "Global Interrupt and Barrier Networks", 미국 특허 출원 YOR920020030US1 (15273) "Optimized Scalable Network Switch", 미국 특허 출원 YOR920020031US1, YOR920020032US1 (15258) "Arithmetic Functions in Torus and Tree Networks", 미국 특허 출원 YOR920020033US1, YOR920020034US1 (15259) "Data Capture Technique for High Speed Signaling", 미국 특허 출원 YOR920020035US1 (15260) "Managing Coherence Via Put/Get Windows", 미국 특허 출원 YOR920020036US1, YOR920020037US1 (15261) "Low Latency Memory Access And Synchronization", 미국 특허 출원YOR920020038US1 (15276) "Twin-Tailed Fail-Over for Fileservers Maintaining Full Performance in the Presence of Failure", 미국 특허 출원 YOR920020039US1 (15277) "Fault Isolation Through No-Overhead Link Level Checksum", 미국 특허 출원 YOR920020040US1 (15278) "Ethernet Addressing Via Physical Location for Massively Parallel Systems", 미국 특허 출원 YOR920020041US1 (15274) "Fault Tolerance in a Supercomputer Through Dynamic Repartitioning", 미국 특허 출원 YOR920020042US1 (15279) "Checkpointing Filesystem", 미국 특허 출원 YOR920020043US1 (15262) "Efficinet Implementation of Multidimensional Fast Fourier Transform on a Distributed-Memory Parallel Multi-Node Computer", 미국 특허 출원 YOR9-20010211US2 (15275) "A Novel Massively Parallel Supercomputer", 미국 특허 출원 YOR920020045US1 (15263) "Smart Fan Modules and System".
고도 병렬 컴퓨터 데이터 네트워킹 시스템의 공지된 토폴로지로는 3차원 토러스(3D torus)가 있다. 3D 토러스는 일반적으로 모든 레벨에 링 네트워크를 구비한 컴퓨팅 노드의 큐빅 그리드이다. 상기 가출원 제60/271,124호에 설명된 시스템과 같은 수퍼컴퓨팅 고도 병렬 시스템은 3D 토러스 토폴로지를 이용하여, 수백 또는 수천의 노드 사이의 통신을 위한 최소 경로 루트, 즉 최단 경로를 제공한다. 고도 병렬 시스템의 상기 토폴로지가 갖는 한가지 문제는 상호 접속 네트워크를 통해 메시지가 비효율적으로 전달된다는 것이며, 이더넷(Ethernet) 또는 비동기 전송 모드(ATM; Asynchronous Transfer Mode, 이하 'ATM'이라 함) 스위치가 사용될 경우 특히 그러하다.
보다 구체적인 예로서, 이더넷 또는 ATM 스위치는 낮은 대기(latency), 높은 처리량(throughput) 및 패킷의 무오류 전달을 일반적으로 제공하지 못하며, 이는 상기 스위치들이 패킷을 유지하기에 충분한 버퍼 공간(즉, 입출력 프로세싱을 위한 유지 영역)이 존재하지 않으면, 통상적으로 패킷을 상실하기 때문이다. 또한, 경합의 문제, 즉 통신 링크와 같이 공유 불가능한 자원에 대하여 둘 이상의 요청이 동시에 이루어질 경우 발생하는 충돌은 상기 스위칭 네트워크가 수만 노드의 크기로 가변되기 위해서 반드시 극복되어야 한다.
통상적으로, 경합의 문제는 일종의 중재 알고리즘을 채용하여 처리되어 왔으며, 상기 중재 알고리즘은 패킷 충돌 검출 후에 패킷을 전송할 수 있는 네트워크 상의 송신기를 중재한다. 불행하게도, 이러한 관련 기술은 초(超)-가변(ultra-scalable)적인, 따라서 고도 병렬 시스템에 적합한 충돌 검출/중재 방법에 대한 필요성을 다루지 않고 있다. 또한, 현재의 라우팅 기술은 고도 병렬 시스템으로 확대하기에 적당하지 않으며, 이는 라우터가 반드시 유지되어야 하는 테이블들을 통상적으로 구비하기 때문이다. 테이블 유지를 위한 오버헤드는 노드의 수가 수만 개에 도달함에 따라 과도한 부담이 된다.
전술한 바와 같이, 3차원(3D) 토러스는 공지의 것이다. 예컨대 Cray T3E는 상기 3D 토러스 토폴로지를 이용한다. 그러나, Cray T3E는 각 스위치 소자에 저장된 라우팅 테이블을 이용하며, 이는 수만개의 노드로 만족스럽게 확장되지 않는 방법이다. 기타의 공지 기술로는 "버블(Bubble)" 이스케이프 가상 채널(VC)("Adaptive Bubble Router: A Design to Balance Latency and Throughput in Networks for Parallel Computers", Puente 외, Proceedings of the International Conference on Parallel Processing, ICPP '99, 1999년 9월)이 있으며, 이는 라우팅 테이블이 필요 없는 완전한 동적 라우팅을 제공한다.
또 다른 공지 기술로는 SP2 및 Cray 컴퓨터에 채용된 바와 같이, "헤드-오브-라인(head-of-line)" 차단(blocking)을 감소시키기 위해 다중 가상 채널을 사용하는 것이다. 2단 중재 방법의 이용은 MIT Reliable Router("Architecture and Implementation of the Reliable Router", William J. Dally, Larry R. Dennison, David Harris, Kinhong Kan, Thucydides Xanthopulos, Proceedings of HOT Interconnects Ⅱ, 페이지 122-133, 1994년 8월)에 의해 제시되었다.
또 다른 관련 기술은 처리량 및 대기를 최적화하기 위한 시도에서 가상 컷스루(cut-through) 라우팅을 이용한다. "Virtual Cut-Through: A New Computer Communication Switching Technique"(P. Kermani, L. Kleinrock, ComputerNetworks, 3권, 페이지 267-286, 1979년)을 보기 바라며, 본 명세서 상에 참고용으로 통합된다.
그러나, 관련 기술의 참고는 선택된 패킷 이동 방향 및 가상 채널을 따라 발생하는 패킷 경합 및 큐잉(queuing) 지연의 문제를 적절하게 해결하지 않으며, 스위치가 수만 개의 노드로 확장될 때 특히 그러하다.
미국 가출원 번호 제60/271,124호 "A Novel Massively Parallel Supercomputer"의 관련 개시 내용에서, 다중 컴퓨터의 각 노드 내에 2 개의 전자적 프로세서를 구비한 반도체 장치가 설명되어 있다. 수퍼컴퓨터 내부에는 복수의 고속 내부 네트워크와, 이더넷을 채용한 외부 네트워크가 존재한다. 이러한 네트워크는 64,000 노드 이상을 서비스할 것으로 예상된다.
네트워크 스위치를 수만 노드로 고속 무오류 동작이 가능하도록 확장하고자 시도하는 종래 기술이 존재하지 않지만, 고도 병렬 시스템의 메시지 전달 능력을 개선하기 위해 무오류, 저대기, 고대역폭(처리량) 데이터 통신을 가능케 하는 가변 중재 방법의 필요성은 남아 있다.
본 발명은 일반적으로 분산-메모리 메시지-전달 병렬 컴퓨터에서 데이터 트래픽을 스위칭하는 방법에 관한 것이며, 특히 고도 병렬 시스템(massively parallel system)에서 상호 접속 네트워크를 통해 무오류 메시지를 효율적으로 전달하는 방법에 관한 것이다.
도 1은 본 발명의 바람직한 구현에 따른 스위치의 아키텍처도.
도 2는 본 발명의 바람직한 구현에 따른 출력 상태 비트 벡터의 도면.
도 3은 본 발명의 바람직한 구현에 따른 입력 상태 비트 벡터를 예시한 도면.
도 4는 본 발명의 바람직한 구현에 따른 "가능 목적지" 비트 벡터의 도면.
도 5는 본 발명의 바람직한 구현에 따른 힌트 비트를 구비한 패킷 헤더의 도면.
도 6은 본 발명의 일 실시예, 즉 프로세서 노드와 동일한 칩 상에 위치하는 네트워크 스위치의 도면.
따라서, 본 발명의 목적은 고도 병렬 시스템에서 대기가 감소하고, 처리량이 증가하며, 처리 능력이 증가하는 패킷 송신기 간의 중재 방법을 제공하는 것이다.
본 발명의 추가적 목적은 고도 병렬 시스템에서 패킷 손실을 방지하는 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 채용된 통신 채널의 사용자 교착 상태(deadlock)를 회피하는 데이터 통신 방법을 제공하는 것이다.
본 발명의 추가적 목적은 정확한 패킷 수신의 가능성을 증가시키는 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 가변성을 촉진하기 위해 프로세서와 동일한 칩 상에 스위치 기술을 제공하는 것이다.
본 발명의 추가적 목적은 라우터 내에 라우팅 테이블을 이용하지 않고 메시지를 라우팅하는 방법을 제공하는 것이다.
상기 및 기타의 목적 및 장점은 고도 병렬 시스템에서 대기를 감소시키고 정확한 패킷 수신을 증가시키는 다중 레벨 중재 방법을 제공함으로써 본 발명에서 획득될 수 있다.
상세하게는 패킷 라우팅 방법으로서, 2m 개(m은 네트워크 차원을 나타내는 정수)의 방향 중 하나 이상의 방향으로부터의 패킷들을 대응하는 수의 입력 링크 중 하나 이상의 입력 링크를 통해 복수의 가상 채널 FIFO 버퍼 중 대응하는 하나 이상의 가상 채널 FIFO 버퍼로 입력함으로써 패킷들을 목적지로 라우팅하는 단계와; 하향 노드로부터 도출된 정보를 포함하는 2m 개의 복수의 출력 상태 비트 벡터 중 하나 이상의 출력 상태 비트 벡터를 생성하는 단계와; 상기 2m 개의 복수의 출력 상태 비트 벡터에 포함된 하향 버퍼 충만 정보를 기초로 하여 중재 결정이 이루어지는 일반 중재 정책의 수립 단계와; 상기 일반 중재 정책에 따라 상기 패킷들을 복수의 전송 경로를 통해 대응하는 출력 링크로 출력하는 단계로서, 상기 패킷들은 상기 목적지 노드로 전진하는 것인 패킷 출력 단계를 포함하는 패킷 라우팅 방법이제공된다.
본 발명은 이제부터 본 출원에 수반된 도면을 참고하여 보다 상세하게 설명될 것이다. 수반된 도면에서 동일한 도면 부호는 동일하거나 대응하는 구성 요소를 나타내기 위해 사용된 것임을 언급한다.
본 발명은 네트워크 통신, 즉 고도 병렬 컴퓨팅 시스템의 3차원 토러스 네트워크에서 노드 사이의 메시지 전달에 적용된다. 처음에, "FIFO"(First In First Out; 선입 선출, 이하 'FIFO'라 함)란 언급은 "FIFO 버퍼"란 용어와 상호 교환 가능하게 사용됨을 유념해야 할 것이다. 비트 설정 및 비트 카운팅 순서는 단지 예시적인 것이며, 예컨대 부성 로직(negative logic)과 같은 기타의 비트 설정 및 예컨대 부성 카운팅 순서와 같은 기타의 카운팅 순서로 파라미터 또는 측정치의 정방향 증가를 나타내는 것도 본 발명의 범주 내에 있다.
본 발명의 바람직한 구현에 따르면, 도 1에 도시된 바와 같은 스위치 아키텍처는 3차원 토러스 네트워크와 같은 프로세서의 네트워크에서 개별 노드를 묘사하며, 상기 네트워크의 모든 상기 노드에 대하여 구현될 수 있다. 또한 도 6을 참조하면, 본 발명의 바람직한 실시예에서 스위치(610)가 프로세서(615)와 동일한 칩(605) 상에 집적될 수 있음이 나타나 있다. 상기 네트워크는 다양한 크기의 데이터 패킷을 전달할 수 있으며, 바람직한 구현에서 상기 패킷은 "청크(chunck)"라 불리는 1 내지 8 개의 32 바이트 크기 유닛일 수 있다. 각 패킷은 도 5에 도시된 바와 같이 기술적(記述的) 패킷 헤더(510)를 포함한다. 로컬 노드(105)로부터 비롯된 신규 패킷, 즉 로컬 패킷(104)은 프로세서 주입 FIFO(130)를 통해 상기 네트워크로 진입하며, 목적지에 도달하면 프로세서 수신 FIFO(140)로부터 제거함으로써 상기 네트워크로부터 제거된다. 본 발명의 바람직한 구현에서, 각 입력 유닛(예컨대 110, 117)에 전용인 하나 이상의 프로세서 수신 FIFO(140)가 존재한다. 또한 하나 이상의 프로세서 수신 FIFO(140)는 높은 우선 순위 트래픽에 전용(全用)일 수 있다.
각 노드는 토러스의 각 인접 노드에 대하여 하나씩의 입력 링크를 포함한다. 예컨대 도 1은 x+ 입력 링크(101) 및 z- 입력 링크(102)를 도시하고 있다. 나머지 입력 링크 x-, y+, y-, z+(도시되지 않음)는 본 발명의 3D 토러스 시스템과 같은 시스템에서 글로벌 패킷-상기 입력 링크 중 하나로부터 도달하는 패킷-이 이용 가능한 나머지 진행 방향의 예를 나타낸다. x+ 입력 중재기(116)와 같은 로컬 입력 중재기가 각 입력 링크에 대응하며, 상기 x+ 입력 중재기(116)는 x+ 입력 유닛(110)에 포함된다. x+ 및 z- 입력 유닛(110, 117)은 예시적 구조로서 도시되어 있다.
또한 각 노드는 x+ 방향으로의 링크(161) 및 z- 방향으로의 링크(162)와 같은 출력 링크를 포함한다. 본 발명의 바람직한 측면에서 구현된 바와 같이, 토러스의 각 인접 노드에 대하여 하나 이상의 출력 링크가 존재한다. 출력 링크는 도시된 x+ 및 z- 출력 유닛(151, 152)과 같은 출력 유닛으로부터 소스(source)를 받는다. 각 출력 유닛 내에는 도시된 z- 출력 중재기(155)와 같은 출력 중재기가 존재한다.
바람직하게는 출력 유닛(151, 152)이 다음과 같은 서브 유닛을 포함한다.
a) 하향 노드에 저장할 수 있는 청크(즉, 토큰)의 수를 카운트하는 토큰 유닛 카운터(153). 각 방향 및 가상 채널(VC, 이하 'VC'라 함)에 대하여 하나의 토큰 유닛 카운터가 존재하는 것이 바람직하다. 패킷이 중재에서 승리하면, 토큰 유닛은 서로 조화하여 토큰이 상향 노드에서 적절한 VC로 반환되도록 한다. 이는 특수한 단문 토큰 메시지를 전송함으로써 성취된다.
b) 도 2에 도시된 바와 같은 출력 상태 비트를 생성하는 출력 상태 비트 벡터 발생기(154).
c) 가능한 모든 요청 패킷 중에서 해당 링크의 제어를 획득할 패킷을 선택하는 출력 중재기(155).
입력 유닛(110)에 도시된 것과 같은 입력 유닛은 컷스루(cut-through) 경로[즉 바이패스(bypass) 경로]와, 각 VC에 대하여 하나씩의 대기 버퍼(즉, FIFO)를 포함하며, 상기 대기 버퍼는 차단된 패킷[즉, 바이패스 경로(120)를 거쳐 이동할 수 없는 패킷]을 저장하기 위한 것이다. 각 FIFO는 소정의 최대 개수의 청크를 유지할 수 있다. 동적 VC(111, 112)와 같은 하나 또는 그 이상의 "동적" VC가 구현된다. 교착 상태를 방지하기 위한 "이스케이프(escape)" VC(113)와 높은 우선 순위 VC(114)의 구현은 공지의 기술이며, "Adaptive Bubble Router: A Design to Balance Latency and Throughput in Networks for Parallel Computers" (Puente 외, Proceedings of the International Conference on Parallel Processing, ICPP '99, 1999년 9월)에 설명된 바와 같다. 바이패스 경로(120)의 구현은 패킷이 버퍼에 저장되지 않고 노드를 거쳐 라우팅될 수 있도록 한다. 그러나, 어떠한 이유로 바이패스 경로의 패킷이 차단되면, 적절한 FIFO 버퍼(즉, 상기 패킷과 관련된 VC에 대응하는 버퍼)로 전송된다. 우선 순위 패킷 상호 간의 추월을 방지하기 위해, 바이패스 경로의 우선 순위 패킷은 대응하는 우선 순위 VC FIFO가 비어 있지 않으면 차단되는 것으로 본다. 이와 유사하게, 동적 라우팅이 불가능한 통상 우선 순위 패킷은 대응하는 이스케이프 VC FIFO가 비어 있지 않으면 차단되는 것으로 본다. 단지 패킷 헤더만이 중재 준비에 앞서 FIFO에 수신될 필요가 있다(패킷이 FIFO의 선두에 있는 것으로 가정함). 입력 중재기(116)와 같은 입력 중재기는 입력 상태 비트 벡터(115)를 포함하고, 도 3에 도시된 바와 같이 상태 비트를 생성하며, 이는 이후에 설명될 것이다.
입력 중재기(116)는 우선 순위를 얻는 입력 중재기의 패킷과 요청할 출력 방향 및 VC(패킷이 자신의 목적지에 도달한 경우 요청할 프로세서 수신 FIFO를 선택함으로써 동적 라우팅을 제공한다. 본 발명의 바람직한 측면에 따르면, 패킷이 입력 및 출력 중재에서 승리하면(즉, 출력 유닛 또는 프로세서 수신 FIFO로의 전송 우선 순위를 얻음), 복수의 전송 경로(121) 중 하나의 전송 경로를 통해 출력 링크 또는 수신 FIFO로 전송된다. 토러스 네트워크에서 단지 하나의 전송 경로를 갖는 종래 기술의 스위치와는 달리, 상기 복수의 전송 경로(121)는 하나 또는 그 이상의 전송 경로(121)가 사용되고 있더라도 패킷을 전송할 수 있게 한다. 본 발명의 일 측면에 따르면, 상기 전송 경로 중 일부는 수신 FIFO 전용으로 예약된다.
또한, 본 발명의 바람직한 측면은 바이패스 경로(120)를 포함한다. 패킷이 이동할 수 있는 가능 도착지 VC 및 방향의 비트 벡터가 FIFO의 선두 또는 바이패스 경로(120)의 각 패킷과 관련된다. 이와 같은 비트 벡터(410-415)의 예시가 도 4에 도시되어 있다.
(출력 상태 비트)
각 출력 중재기는 상기 방향과 관련된 자신의 링크 및 하향 버퍼 공간(토큰)의 가용성을 나타내는 출력 상태 비트 벡터를 생성하는 것을 담당한다. 도 2는 x+ 링크(210) 내지 z- 링크(215)에 대한 어느 순간의 출력 상태 비트 벡터의 샘플을 도시한 것이다. 각 출력 상태 비트는
a) 링크의 가용(1) 또는 불가용(0) 여부를 나타내는 링크 상태 비트(201) - 링크는 또한 토큰의 가용성 및/또는 성공적 패킷 수신의 확인과 관련된 제어 메시지를 교환하기 위해 사용될 수 있으며, 상기 제어 메시지는 데이터 패킷에 대해 절대 우선 순위를 받는다. 따라서 상기와 같은 제어 메시지가 링크의 사용을 대기하고 있거나 실제로 링크를 사용하고 있다면, 링크 상태 비트가 0으로 설정되고, 물리적 링크가 비어 있게 되자마자 상기 제어 메시지가 전송됨
b) 각 동적 VC에 대한 상태 비트(202, 203) - 가장 좌측 비트는 최대 크기의 패킷을 저장하기에 충분한 하향 토큰의 존재 여부를 나타낸다. 나머지 2 비트는 다음과 같이 결정된다. 가용의 하향 토큰이 문턱값(예컨대 M ≥ T1 > T2 > T3 > 0, M은 토큰의 최대 수)에 의해 정의되는 4개 범위로 분할된다. 가용 토큰의 수를 t라 하면, 비트 벡터는 M ≥ t > T1 일 때 00, T1 ≥ t > T2 일 때 01, T2 ≥ t > T3 일 때 10, 그리고 T3 ≥ t ≥ 0 일 때 11임 [따라서, 비트 벡터는 더 많은 토큰이 가용일 때 더 작다. 당업자는 2k개의 범위를 정의하는 k(>2)로의 일반화가 존재함을 양지하여야 할 것임]
c) 이스케이프용 상태 비트(204) 및 우선 순위 VC용 상태 비트(205) - 상기 비트들은 "버블 삽입" 규칙을 따름
를 포함하는 것이 바람직하다.
이스케이프 상태 필드(204) 및 우선 순위 상태 필드(205)의 경우에, 좌측 비트는 새로운 패킷을 VC로 주입할 수 있으면 1 이며(2 이상의 최대 패킷 만큼의 토큰을 필요로 함), 우측 비트는 이미 VC 상에 있는 패킷이 계속될 수 있으면 1 이다(하나 이상의 최대 패킷 만큼의 토큰을 필요로 함). (교착 상태를 방지하기 위해서는 이러한 VC로 진입하거나 VC 상에 있는 모든 패캣의 "크기"가 최대 패킷 크기인 것으로 간주된다.)
예컨대 도 2에 도시된 바와 같이, x+ 방향(210)에서 링크는 비어 있고, 토큰은 VC1에서 레벨 01로 가용이며, VC2에서 토큰은 불가용이며, 이스케이프 VC에는 새로운 패킷을 주입할 공간이 없으나, 이미 버블에 있는("in the bubble") 패킷을 포워딩할 수 있는 공간이 존재한다.
(입력 상태 비트)
각 입력 유닛은 자신과 관련된 방향에 관계된 각 VC에 대하여 버퍼 입력 충만을 나타내는 입력 상태 비트 벡터를 생성하는 것을 담당한다. 도 3은 x+ 링크(310) 내지 z- 링크(315)에 대하여 어느 순간의 입력 상태 비트 벡터의 샘플을 도시한 것이다. 각 비트 벡터는 각 VC(301-304)를 나타내는 3개 비트를 포함한다. 가장 우측의 비트(301)는 패킷이 중재 준비되면 1 이고, 그렇지 않으면 0 이다. 가장 좌측의 2 개 비트(303, 304)는 토큰 충만 영역을 나타낸다. 즉, 만약 FIFO가 b 개의 청크를 포함할 때, 상기 2 개 비트는 문턱값 T1, T2, T3에 대하여 0 ≤ b < T1 이면 00 이고, T1 ≤ b < T2 이면 01 이며, T2 ≤ b < T3 이면 10 이며, T3 ≤ b 이면 11 이다. 당업자는 범위가 청크보다는 패킷의 수를 나타내도록 사용될 수 있음을 양지해야 할 것이다.
또한 각 주입 FIFO는 도 3에 도시된 바와 같이, 유사하게 정의된 입력 상태 비트 벡터(316)를 구비하며, 도 3은 5 개의 주입 FIFO가 존재함을 나타내는 입력 상태 비트 벡터(317 - 321)를 도시하고 있다.
(가능 비트 벡터)
FIFO의 선두 또는 바이패스 경로 상의 각 패킷에 대하여, 패킷이 이동할 수있는 방향 및 VC(즉, 주어진 패킷에 대하여 여전히 각 가상 채널의 라우팅 목표인 방향)을 나타내는 비트 벡터가 생성된다. 도 4는 x+ 방향 또는 y+ 방향으로 이동할 수 있는 비(非) 우선 순위 패킷에 대한 가능 비트 벡터를 도시한 것이다. 상기 비트 벡터의 일 부분은 각 방향(410 - 415)에 대응한다. 본 예에서, 상기 패킷은 어느 동적 VC에서나 x+ 방향과 y- 방향 모두로 이동할 수 있다. 상기 패킷이 비(非) 우선 순위 패킷이기 때문에, 우선 순위 VC에 대한 입력 사항이 모두 0이다. 본 예에서, 이스케이프 방향은 표준 차원 순서(즉, 먼지 x, 다음으로 y, 그 다음으로 z임)에 따라 선택되므로, 이스케이프 VC는 x+ 방향에 존재한다. 만약 가능 비트 벡터가 모두 0이면, 상기 패킷은 자신의 목적지에 도달한 것이다.
(패킷 헤더)
패킷 헤더(510)의 포맷이 도 5에 도시되어 있다. 바람직한 실시예에서, 패킷 헤더(510)는 오버헤드를 최소화하기 위해 상대적으로 짧을 것이다(예컨대 8 바이트임). 패킷 헤더(510)에서, 제1 필드(예컨대 8 비트)는 패킷 유형(512)(예컨대, 통상 또는 우선 순위)을 나타내며, 패킷을 동적으로 라우팅할 수 있는지 또는 고정 루트를 따라 라우팅할 수 있는지 여부를 나타내는 하나의 비트를 포함할 수 있다. 관련 특허 출원(15270)에는 상기 패킷 유형이 "클래스 라우팅" 동작을 인코딩할 수 있는 방법이 설명되어 있으며, 상기 클래스 라우팅 동작은 본 발명에서 명백하고도 조그만 변형을 하면 지원될 수 있다. VC 필드(514)(예컨대 2 비트)는 상기 패킷이 존재하는 VC를 나타내며, 크기 필드(516)(예컨대 3 비트)는 상기 패킷에서 청크의 수를 나타낸다. 상기와 같은 헤더의 이용은 표준적인 것이지만, 본 발명의 바람직한 구현은 "힌트 비트(hint bit)"(520, 522, 524)를 포함하며, 상기 힌트 비트(520, 522, 524)는 중재기가 다른 방법으로 가능한 것보다 더 일찍 방향 선택을 시작할 수 있게 함으로써 대기를 감소시킨다. 본 발명의 바람직한 구현에서, 상기 힌트 비트는 차원당 2 비트이고, 패킷이 이동할 수 있는 방향을 인코딩하며, 예컨대 x 힌트 비트(518)가 "00"이면 x 방향의 패킷 이동은 더 이상 필요가 없으며, x 힌트 비트(518)가 "01"이면 x+ 방향으로 패킷이 이동할 수 있으며, x 힌트 비트(518)가 "10"이면 패킷이 x- 방향으로 이동할 수 있다. 힌트 비트는 목적지 필드(524, 526, 528)보다 선행하여야 하며, 대안으로서 VC 및 크기 필드(514, 516)보다 선행할 수 있다. 대형 병렬 장치, 예컨대 64 × 32 × 32 노드 토러스에서, 목적지 필드는 각각 6 비트 이상이어야 한다. 힌트 비트가 없다면, 중재가 개시될 수 있기에 앞서 18 비트의 목적지 어드레스가 먼저 수신되어야 할 것이다. 따라서, 힌트 비트는 목적지 비트보다 선행하기 때문에, 전체 패킷 헤더가 판독되기 이전(즉, 목적지 비트가 판독되기 이전)에 중재 프로세스의 개시를 허용하고, 이로 인해 대기가 줄어드는 장점이 있다. 패킷이 네트워크를 통해 라우팅됨에 따라, 힌트 비트는 갱신될 필요가 있다. 최소 홉 동적 라우팅(minimal hop dynamic routing)의 경우에, 예컨대 x 힌트 비트는 패킷이 목적지의 x 좌표에 도달하면 00으로 설정하기만 하면 된다. 본 발명의 바람직한 구현은 각 출력 링크와 결합된 레지스터를 포함으로써 이러한 갱신을 달성한다. 레지스터의 내부에는 관련 좌표, 예컨대 하향 노드의 x 좌표가 제공된다. 패킷이 중재에서 승리하면, 목적지의 관련 좌표와 레지스터를 비교할 수 있다. 힌트 비트는 레지스터 값과 목적지의 관련 좌표가 일치하면00으로 설정된다. 또한, 이 기술 분야에서 공지된 바와 같이, 신뢰 가능한 메시지 전달을 위해서는 패킷 헤더가 예로서 공지의 고성능 병렬 인터페이스(HIPPI; High Performance Parallel Interface) 프로토콜에서의 순서 번호(sequence number)와, 헤더의 정확한 수신을 보장하기 위한 CRC를 포함할 수 있다.
(입력/출력 중재)
본 발명의 바람직한 구현에서, 중재 프로세스는 두 단계를 포함한다. 먼저, 각 입력 유닛은 자신의 이동 준비된 패킷(FIFO의 선두 또는 바이패스 경로에 있는 패킷) 중에서 링크(또는 수신 FIFO)를 확득하고자 시도할 패킷을 선택한다. 상기 선택된 패킷을 "입력 승자"라 부른다. 입력 승자, 즉 후보의 선택에 더하여, 각 후보에 대한 방향 및 VC가 중재의 다음 단계를 위해 선택된다. 입력 중재 및 출력 중재 모두는 다중 레벨이며, 즉 시스템의 패킷 처리량을 증가시키기 위해 각 노드 방향으로부터 도달하는 패킷에 대하여 개별적으로 중재 프로세싱이 제공된다. 패킷 경합은 본 발명의 바람직한 구현에서 채용된 규칙에서 설명되는 바와 같이 일반 중재 정책에 의해 감소될 수 있다.
(입력 중재 단계)
입력 승자를 선택하기 위해 본 발명의 바람직한 구현이 제공하는 방법은 목적지에 도달하지 않은 패킷 중 완전히 차단된 패킷(즉, 이동해야 할 방향으로 가용의 링크 및 VC가 없거나 가용의 전송 경로가 없는 패킷)을 결정하는 단계를 포함한다. 또한 상기 단계들은 차단되지 않은 후보 패킷을 결정한다. 본 발명의 일 측면에서 상기 단계들은 가능 비트 벡터(410-415)를 출력 상태 비트 벡터(210-215)와적절하게 논리곱(logical AND)함으로써 결정된다. 이와 유사하게, 목적지에 도달한 패킷은 자신의 수신 FIFO 또는 미(未)-차단 후보 벡터에 공간이 없으면 차단되도록 결정될 수 있다. 각 미차단 후보는 다음과 같이 입력 우선 순위가 할당된다. 본 발명의 바람직한 구현은 두가지 유형의 중재 주기(랜덤 주기 또는 최장 큐 주기)를 제공한다. 스위치의 미리 정의된 중재 주기 기준은 중재 주기 중 어느 부분이 랜덤인지를 결정한다. 랜덤 주기(ramdom cycle)에서, 비(非) 우선 순위 VC 버퍼의 각 후보 패킷은 무작위의 2 비트 벡터(또는 라운드 로빈 알고리즘에 기초한 2비트 벡터)가 할당된다. 최장 큐 주기에서, 상기 후보 패킷은 우측 2 개의 입력 상태 비트와 동등한 우선 순위가 할당된다. 이와 같이 생성된 우선 순위는 다음과 같이(최고 우선 순위로부터 최저 우선 순위임) 전체 우선 순위 방식에서 사용된다.
a) 우선 순위 VC의 선두에 있는 미차단 후보 패킷
b) 바이패스 경로 상의 미차단 후보 패킷으로서, 높은 우선 순위 패킷이며, 상기 우선 순위 VC 버퍼에 패킷들이 존재하지 않는 경우의 바이패스 경로 상의 미차단 후보 패킷
c) 최고의 2 비트 우선 순위 벡터(동일한 경우 랜덤이나 라운드 로빈과 같은 임의의 방법으로 분절함)를 갖는 비(非) 우선 순위 VC 버퍼의 미차단 후보 패킷
d) 상기 바이패스 경로의 미차단 후보 패킷으로서, 비(非) 우선 순위 패킷인 미차단 후보 패킷
비(非) 우선 순위 패킷의 경우에, 이러한 알고리즘은 가장 충만한 FIFO의 선두에서 패킷을 선택하는 경향이 있다. 그 다음, 승리한 후보 패킷은 자신의 후보방향 및 VC를 다음과 같이 선택한다.
a) 상기 패킷이 높은 우선 순위이면, 가능 비트 벡터의 우선 순위 VC 비트가 "1"로 설정된 방향 및 우선 순위 VC를 선택한다.
b) 상기 패킷이 비(非) 우선 순위이지만 동적 라우팅이 불가능하면, 가능 비트 벡터의 이스케이프 VC 비트가 "1"로 설정된 방향 및 이스케이프 VC를 선택한다.
c) 상기 패킷이 비(非) 우선 순위이면서 동적 라우팅이 가능하면, 링크 및 동적 VC 모두가 가용이면서 가능한 것들 중에서 출력 상태 비트 벡터의 우측 2비트가 가장 작은 방향 및 동적 VC를 선택한다.
d) 상기와 같은 링크 및 동적 VC가 존재하지 않으면, 가능 비트 벡터의 이스케이프 VC가 "1"로 설정된 방향 및 이스케이프 VC를 선택한다.
그 후 입력 승자들은 자신들의 후보 방향 및 VC를 대응하는 출력 중재기(목적지가 현재의 노드가 아닐 경우임) 또는 수신 FIFO(목적지가 현재의 노드인 경우임)로 제공한다. 이어서 각 출력 중재기/수신 FIFO는 상기 제공된 입력 승자들 중에서 출력할 패킷을 선택한다.
(출력 중재 단계)
각 출력 중재기는 한 세트의 후보 입력 승자들을 제공받는다. 또한, 주입 FIFO로부터의 후보 패킷이 존재할 수 있다. 출력 중재도 두 유형의 주기를 구비할 수 있다. 즉, 주입 FIFO로부터의 패킷이 낮은 우선 순위를 갖는 주기와, 주입 FIFO로부터의 패킷이 높은 우선 순위를 갖는 주기이다. 미리 정의된 출력 단계 중재 주기 기준(예컨대 스위치의 파라미터)은 주기의 어느 부분이 상기 각 유형인지를 결정한다. 주입 FIFO가 상기 주기에서 낮은 우선 순위를 가지면, 출력 중재기는 다음과 같이(높은 우선 순위로부터 낮은 우선 순위임) 자신의 모든 후보들 중에서 승자를 선택한다(동일한 경우 무작위로 분절하는 것이 바람직함).
a) 최고의 우선 순위(2 비트 상태 벡터에 의해 표시됨)를 갖는 입력 유닛으로부터의 높은 우선 순위 승리 패킷
b) 최고의 2 비트 상태 벡터를 갖는 주입 큐로부터의 높은 우선 순위 패킷.
c) 최고의 2 비트 상태 벡터를 갖는 입력 유닛으로부터의 통상 우선 순위 승리 패킷.
d) 최고의 2 비트 상태 벡터를 갖는 주입 FIFO로부터의 통상 우선 순위 패킷.
상기 주기에서 주입 패킷이 높은 우선 순위를 가지면, 출력 중재기는 다음과 같이(최고 우선 순위로부터 최저 우선 순위임) 모든 후보로부터 자신의 승자를 선택한다.
a) 최고의 2 비트 상태 벡터를 갖는 주입 큐로부터의 높은 우선 순위 패킷
b) 최고의 우선 순위(2 비트 상태 벡터에 의해 표시됨)를 갖는 입력 유닛으로부터의 높은 우선 순위 승리 패킷
c) 최고의 2 비트 상태 벡터를 갖는 주입 FIFO로부터의 통상 우선 순위 패킷
d) 최고의 2 비트 상태 벡터를 갖는 입력 유닛으로부터의 통상 우선 순위 승리 패킷
(주입 중재)
주입 FIFO의 선두에 있는 후보 패킷들은 승리한 입력 후보 패킷들과 동일한 방법으로 자신들의 후보 방향 및 VC를 선택한다. 또한 상기 패킷들은 2 비트 상태 벡터를 운반하며, 상기 2 비트 상태 벡터는 무작위로 생성되거나, 상기 주입 FIFO의 길이를 나타내도록 2 비트를 사용한다.
(수신 FIFO 중재)
하나의 스위치 노드에서 수신되어야 할 하나 또는 그 이상의 패킷이 동시에 존재할 수 있다. 경합을 줄이기 위해서, 개별 수신 FIFO가 각 인입 방향에 할당된다. 또한, 방향 별로 하나 또는 그 이상의 FIFO가 존재할 수 있다. 각 노드에 다수의 프로세서가 존재할 경우, 본 발명의 바람직한 실시예에 의해 각 방향의 다수 FIFO는 각 프로세서가 방향별로 자기 자신의 수신 FIFO를 가질 수 있도록 하는 것이 허용된다. 패킷 헤더의 비트들은 주어진 방향에 대하여 사용될 FIFO를 나타내도록 사용될 수 있다. 또한, 높은 우선 순위 패킷 전용으로 유보된 하나 또는 그 이상의 FIFO가 존재할 수 있다. 상기 FIFO들에 대한 경합이 존재하면, 상기 2 비트 상태 벡터를 이용하여 우선 순위가 결정될 수 있다.
본 발명이 바람직한 실시예에 의해 설명되었으나, 각종 변형 및 개선이 당업자에게 떠오를 것이다. 예컨대, 본 발명의 대안적 실시예가 단일 차원을 포함하거나, m 개(m은 임의의 정수)의 다차원을 포함할 수 있다는 것을 당업자는 양지하여야 할 것이다. 따라서, 바람직한 실시예는 한정으로서가 아니라 하나의 예로서 제공된 것임을 양지하여야 할 것이다. 본 발명의 범주는 수반된 청구 범위에 의해 정의된다.

Claims (28)

  1. m 개의 다차원으로 구성된 복수의 노드를 포함하고, 상기 각 노드는 컴퓨팅 장치를 포함하는 고도 병렬 컴퓨팅 시스템에서 패킷들을 목적지 노드로 라우팅하는 방법으로서,
    a) 2m 개의 방향 중 하나 이상의 방향으로부터의 상기 패킷들을 대응하는 수의 입력 링크 중 하나 이상의 입력 링크를 통해 복수의 가상 채널 중 대응하는 하나 이상의 채널로 입력하는 단계와;
    b) 상기 노드의 로컬로부터의 로컬 패킷들을 복수의 프로세서 주입 FIFO 중 하나 이상의 프로세서 주입 FIFO로 입력하는 단계와;
    c) 2m 개의 복수의 출력 상태 비트 벡터를 생성하는 단계로서, 상기 각 출력 상태 비트 벡터는 상기 링크의 가용성, 하향 가상 채널의 가용성 및 상기 방향과 관련된 모든 가상 채널에 대한 하향 버퍼 공간 표시를 나타내는 것인, 복수의 출력 상태 비트 벡터의 생성 단계와;
    d) 상기 2m 개의 복수의 출력 상태 비트 벡터의 내용을 기초로 하여 중재 결정이 이루어지는 일반 중재 정책의 수립 단계와;
    e) 상기 일반 중재 정책에 따라 상기 패킷들을 하나 이상의 전송 경로를 통해 대응 출력 링크로 출력하는 단계로서, 상기 패킷들은 상기 목적지 노드로 전진하는 것인 패킷 출력 단계와;
    f) 상기 패킷들 및 상기 로컬 패킷들 중 임의의 패킷이 입력으로 이용 가능한 동안에 상기 이전 단계들을 반복하는 단계
    를 포함하는 패킷 라우팅 방법.
  2. 제1항에 있어서,
    상기 패킷들의 패킷 헤더로부터 힌트 비트를 이용하는 단계를 더 포함하며,
    상기 힌트 비트는 상기 2m 개의 방향 중 어느 방향이 상기 각 패킷들이 진입하기에 가능한지를 표시하며, 이에 의해 상기 일반 중재 정책의 수립 단계가 보다 신속하게 완료되는 것인 패킷 라우팅 방법.
  3. 제1항에 있어서,
    각 방향에 대하여 2m 개의 복수의 가능 비트 벡터를 생성하는 단계를 더 포함하며,
    상기 복수의 가능 비트 벡터 각각은 상기 패킷들 중 어느 한 패킷이 상기 각 가상 채널에 대하여 상기 각 방향으로 추가 이동하는 것이 여전히 라우팅 목표인지 를 표시하는 것인 패킷 라우팅 방법.
  4. 제3항에 있어서, 상기 일반 중재 정책의 수립 단계 중에서 입력 단계는
    a) 목적지에 도달하지 않은 상기 패킷들 중 완전히 차단된 패킷을 결정하는 단계와;
    b) 목적지에 도달하지 않은 상기 패킷들 중 미차단된 패킷을 결정하는 단계와;
    c) 목적지에 도달한 상기 패킷들 중 차단된 패킷을 결정하는 단계와;
    d) 목적지에 도달한 상기 패킷들 중 미차단된 패킷을 결정하는 단계
    를 포함하는 것인 패킷 라우팅 방법.
  5. 제4항에 있어서,
    상기 2m 개의 방향에 대응하여 상기 2m 개의 복수의 입력 상태 비트 벡터를 생성하는 단계를 포함하며,
    상기 각 입력 상태 비트 벡터는 중재 준비 표시와, 상기 복수의 가상 채널 각각 및 상기 복수의 프로세서 주입 FIFO-상기 2m 개의 방향 중 하나와 관련됨- 각각의 버퍼 입력 충만 표시를 나타내는 것인 패킷 라우팅 방법.
  6. 제5항에 있어서,
    미리 정의된 중재 주기 기준이 만족되면, 현재의 중재 주기에서 상기 입력 상태 비트 벡터의 버퍼 입력 충만 표시를 무작위화하는 단계와;
    상기 미리 정의된 중재 주기 기준이 만족되지 않으면, 상기 현재의 중재 주기에서 최장 큐(queue) 우선 순위 중재를 수행하는 단계를 더 포함하는 패킷 라우팅 방법.
  7. 제6항에 있어서,
    상기 패킷들에 대하여 다음과 같이 최고 우선 순위로부터 최저 우선 순위까지 입력 중재 우선 순위를 생성하는 단계를 더 포함하는 패킷 라우팅 방법.
    a) 상기 패킷들 중에서 우선 순위 가상 채널의 선두에 있는 미차단 패킷
    b) 상기 패킷들 중에서 바이패스 경로의 미차단 패킷으로서, 높은 우선 순위 패킷이며, 우선 순위 가상 채널에 패킷들이 존재하지 않는 경우의 바이패스 경로 상의 미차단 패킷
    c) 상기 패킷들 중에서 최고의 상기 버퍼 충만 표시를 갖는 비(非) 우선 순위 가상 채널의 미차단 패킷
    d) 상기 패킷들 중에서 상기 바이패스 경로의 미차단 패킷으로서, 비(非) 우선 순위 미차단 패킷
  8. 제7항에 있어서,
    상기 각 미차단 패킷에 대하여 다음과 같은 단계로 출력 방향 및 출력 가상 채널을 선택하는 단계를 더 포함하는 패킷 라우팅 방법.
    a) 상기 높은 우선 순위의 미차단 패킷에 대해서는, 상기 가능 비트 벡터의 우선 순위 가상 채널 비트에 의해 여전히 상기 높은 우선 순위의 미차단 패킷의 라우팅 목표로 표시되는 방향 및 우선 순위 가상 채널을 선택하는 단계
    b) 동적 라우팅이 불가능한 상기 비(非) 우선 순위 미차단 패킷에 대해서는, 상기 가능 비트 벡터의 이스케이프(escape) 가상 채널 비트에 의해 여전히 상기 동적 라우팅이 불가능한 비(非) 우선 순위 미차단 패킷의 라우팅 목표로 표시되는 방향 및 이스케이프 가상 채널을 선택하는 단계
    c) 동적 라우팅이 가능한 상기 비(非) 우선 순위 미차단 패킷에 대해서는, 상기 가능 비트 벡터에 의해 여전히 라우팅 목표로 표시되고, 상기 출력 상태 비트 벡터에 의해 최대의 상기 버퍼 공간 표시가 표시되는 방향 및 동적 가상 채널을 선택하며, 만약 상기와 같은 채널 및 방향 조합이 존재하지 않으면 상기 가능 비트 벡터의 이스케이프 가상 채널 비트에 의해 여전히 라우팅 목표로 표시되는 방향 및 이스케이프 가상 채널을 선택하는 단계
  9. 제8항에 있어서, 상기 일반 중재 정책의 수립 단계 중에서 출력 단계는
    현재의 출력 단계 중재 주기를 미리 정의된 출력 단계 중재 주기 기준에 따라 프로세서 주입 FIFO에 대하여 높은 우선 순위로 설정하는 단계와;
    현재의 출력 단계 중재 주기를 상기 미리 정의된 출력 단계 중재 주기 기준에 따라 프로세서 주입 FIFO에 대하여 낮은 우선 순위로 설정하는 단계
    를 포함하는 것인 패킷 라우팅 방법.
  10. 제9항에 있어서,
    상기 패킷들에 대하여 다음과 같이 최고 우선 순위로부터 최저 우선 순위까지 출력 중재 우선 순위를 생성하는 단계를 더 포함하며, 상기 현재의 출력 단계 중재 주기는 프로세서 주입 FIFO에 대하여 낮은 우선 순위인 것인 패킷 라우팅 방법.
    a) 상기 패킷들 중에서, 복수의 우선 순위 가상 채널 중 최고의 버퍼 입력 충만 표시를 갖는 상기 우선 순위 가상 채널의 선두에 위치한 상기 미차단 패킷
    b) 복수의 프로세서 주입 FIFO 중 최고의 버퍼 입력 충만 표시를 갖는 프로세서 주입 FIFO로부터의 높은 우선 순위 패킷
    c) 상기 패킷들 중에서, 복수의 비(非) 우선 순위 가상 채널 중 최고의 상기 버퍼 입력 충만 표시를 갖는 비(非) 우선 순위 가상 채널의 미차단 패킷
    d) 복수의 프로세서 주입 FIFO 중 최고의 버퍼 입력 충만 표시를 갖는 프로세서 주입 FIFO로부터의 통상 우선 순위 패킷
  11. 제9항에 있어서,
    상기 패킷들에 대하여 다음과 같이 최고 우선 순위로부터 최저 우선 순위까지 출력 중재 우선 순위를 생성하는 단계를 더 포함하며, 상기 현재의 출력 단계 중재 주기는 프로세서 주입 FIFO에 대하여 높은 우선 순위인 것인 패킷 라우팅 방법.
    a) 복수의 프로세서 주입 FIFO 중 최고의 버퍼 입력 충만 표시를 갖는 프로세서 주입 FIFO로부터의 높은 우선 순위 패킷
    b) 상기 패킷들 중에서, 상기 복수의 우선 순위 가상 채널 중 최고의 버퍼 입력 충만 표시를 갖는 상기 우선 순위 가상 채널의 선두에 위치한 상기 미차단 패킷
    c) 상기 복수의 프로세서 주입 FIFO 중 최고의 버퍼 입력 충만 표시를 갖는프로세서 주입 FIFO로부터의 통상 우선 순위 패킷
    d) 상기 패킷들 중에서, 상기 복수의 비(非) 우선 순위 가상 채널 중 최고의 상기 버퍼 입력 충만 표시를 갖는 비(非) 우선 순위 가상 채널의 미차단 패킷
  12. m 개의 다차원으로 구성된 복수의 노드를 포함하고, 상기 각 노드는 컴퓨팅 장치를 포함하는 고도 병렬 컴퓨팅 시스템에서 패킷들을 목적지 노드로 라우팅하는 시스템으로서
    a) 2m 개의 방향 중 하나 이상의 방향으로부터의 상기 패킷들을 대응하는 수의 입력 링크 중 하나 이상의 입력 링크를 통해 복수의 가상 채널 중 대응하는 하나 이상의 채널로 입력하는 수단과;
    b) 상기 노드의 로컬로부터의 로컬 패킷들을 복수의 프로세서 주입 FIFO 중 하나 이상의 프로세서 주입 FIFO로 입력하는 수단과;
    c) 2m 개의 복수의 출력 상태 비트 벡터를 생성하는 단계로서, 상기 각 출력 상태 비트 벡터는 상기 링크의 가용성, 하향 동적 가상 채널의 가용성 및 상기 방향과 관련된 모든 가상 채널에 대한 하향 버퍼 공간 표시를 나타내는 것인, 복수의 출력 상태 비트 벡터의 생성 수단과;
    d) 상기 2m 개의 복수의 출력 상태 비트 벡터의 내용을 기초로 하여 중재 결정이 이루어지는 일반 중재 정책의 수립 수단과;
    e) 상기 일반 중재 정책에 따라 상기 패킷들을 하나 이상의 전송 경로를 통해 대응 출력 링크로 출력하는 단계로서, 상기 패킷들은 상기 목적지 노드로 전진하는 것인 패킷 출력 수단과;
    f) 상기 패킷들 및 상기 포컬 패킷들 중 임의의 패킷이 입력으로 이용 가능한 동안에 상기 수단들을 반복하는 수단
    을 포함하는 패킷 라우팅 시스템.
  13. m 개의 다차원으로 구성된 복수의 노드를 포함하고, 상기 각 노드가 컴퓨팅 장치를 포함하는 고도 병렬 컴퓨팅 시스템에서 패킷들을 목적지 노드로 라우팅하도록 기계에 의해 실행될 수 있는 명령어의 프로그램을 실체적으로 구현한 기계 판독 가능 프로그램 저장 장치로서, 상기 패킷 라우팅 방법은
    a) 2m 개의 방향 중 하나 이상의 방향으로부터의 상기 패킷들을 대응하는 수의 입력 링크 중 하나 이상의 입력 링크를 통해 복수의 가상 채널 중 대응하는 하나 이상의 채널로 입력하는 단계와;
    b) 상기 노드의 로컬로부터의 로컬 패킷들을 복수의 프로세서 주입 FIFO 중 하나 이상의 프로세서 주입 FIFO로 입력하는 단계와;
    c) 2m 개의 복수의 출력 상태 비트 벡터를 생성하는 단계로서, 상기 각 출력 상태 비트 벡터는 상기 링크의 가용성, 하향 동적 가상 채널의 가용성 및 상기 방향과 관련된 모든 가상 채널에 대한 하향 버퍼 공간 표시를 나타내는 것인 복수의 출력 상태 비트 벡터의 생성 단계와;
    d) 상기 2m 개의 복수의 출력 상태 비트 벡터의 내용을 기초로 하여 중재 결정이 이루어지는 일반 중재 정책의 수립 단계와;
    e) 상기 일반 중재 정책에 따라 상기 패킷들을 하나 이상의 전송 경로를 통해 대응 출력 링크로 출력하는 단계로서, 상기 패킷들은 상기 목적지 노드로 전진하는 것인 패킷 출력 단계와;
    f) 상기 패킷들 및 상기 포컬 패킷들 중 임의의 패킷이 입력으로 이용 가능한 동안에 상기 이전 단계들을 반복하는 단계
    를 포함하는 것인 기계 판독 가능 프로그램 저장 장치.
  14. 제13항에 있어서, 상기 패킷 라우팅 방법은
    상기 패킷들의 패킷 헤더로부터 힌트 비트를 이용하는 단계를 더 포함하며,
    상기 힌트 비트는 상기 2m 개의 방향 중 어느 방향이 상기 각 패킷들이 진입하기에 가능한지를 표시하며, 이에 의해 상기 일반 중재 정책의 수립 단계가 보다 신속하게 완료되는 것인 패킷 라우팅 방법.
  15. 제13항에 있어서, 상기 패킷 라우팅 방법은
    각 방향에 대하여 2m 개의 복수의 가능 비트 벡터를 생성하는 단계를 더 포함하며,
    상기 복수의 가능 비트 벡터 각각은 상기 패킷들 중 어느 한 패킷이 상기 각 가상 채널에 대하여 상기 각 방향으로 추가 이동하는 것이 여전히 라우팅 목표인지를 표시하는 것인 패킷 라우팅 방법.
  16. 제15항에 있어서, 상기 일반 중재 정책의 수립 단계 중에서 입력 단계는
    a) 목적지에 도달하지 않은 상기 패킷들 중 완전히 차단된 패킷을 결정하는 단계와;
    b) 목적지에 도달하지 않은 상기 패킷들 중 미차단된 패킷을 결정하는 단계와;
    c) 목적지에 도달한 상기 패킷들 중 차단된 패킷을 결정하는 단계와;
    d) 목적지에 도달한 상기 패킷들 중 미차단된 패킷을 결정하는 단계
    를 포함하는 것인 패킷 라우팅 방법.
  17. 제16항에 있어서, 상기 패킷 라우팅 방법은
    상기 2m 개의 방향에 대응하여 상기 2m 개의 복수의 입력 상태 비트 벡터를 생성하는 단계를 포함하며,
    상기 각 입력 상태 비트 벡터는 중재 준비 표시와, 상기 복수의 가상 채널 각각 및 상기 복수의 프로세서 주입 FIFO-상기 2m 개의 방향 중 하나와 관련됨- 각각의 버퍼 입력 충만 표시를 나타내는 것인 패킷 라우팅 방법.
  18. 제17항에 있어서, 상기 패킷 라우팅 방법은
    미리 정의된 중재 주기 기준이 만족되면, 현재의 중재 주기에서 상기 입력 상태 비트 벡터의 버퍼 입력 충만 표시를 무작위화하는 단계와;
    상기 미리 정의된 중재 주기 기준이 만족되지 않으면, 상기 현재의 중재 주기에서 최장 큐(queue) 우선 순위 중재를 수행하는 단계를 더 포함하는 것인 패킷 라우팅 방법.
  19. 제18항에 있어서, 상기 패킷 라우팅 방법은 상기 패킷들에 대하여 다음과 같이 최고 우선 순위로부터 최저 우선 순위까지 입력 중재 우선 순위를 생성하는 단계를 더 포함하는 것인 패킷 라우팅 방법.
    a) 상기 패킷들 중에서 우선 순위 가상 채널의 선두에 있는 미차단 패킷
    b) 상기 패킷들 중에서 바이패스 경로의 미차단 패킷으로서, 높은 우선 순위 패킷이며, 우선 순위 가상 채널에 패킷들이 존재하지 않는 경우의 바이패스 경로 상의 미차단 패킷
    c) 상기 패킷들 중에서 최고의 상기 버퍼 충만 표시를 갖는 비(非) 우선 순위 가상 채널의 미차단 패킷
    d) 상기 패킷들 중에서 상기 바이패스 경로의 미차단 패킷으로서, 비(非) 우선 순위 미차단 패킷
  20. 제19항에 있어서, 상기 패킷 라우팅 방법은 상기 각 미차단 패킷에 대하여 다음과 같은 단계로 출력 방향 및 출력 가상 채널을 선택하는 단계를 더 포함하는 것인 패킷 라우팅 방법.
    a) 상기 높은 우선 순위의 미차단 패킷에 대해서는, 상기 가능 비트 벡터의 우선 순위 가상 채널 비트에 의해 여전히 상기 높은 우선 순위의 미차단 패킷의 라우팅 목표로 표시되는 방향 및 우선 순위 가상 채널을 선택하는 단계
    b) 동적 라우팅이 불가능한 상기 비(非) 우선 순위 미차단 패킷에 대해서는, 상기 가능 비트 벡터의 이스케이프(escape) 가상 채널 비트에 의해 여전히 상기 동적 라우팅이 불가능한 비(非) 우선 순위 미차단 패킷의 라우팅 목표로 표시되는 방향 및 이스케이프 가상 채널을 선택하는 단계
    c) 동적 라우팅이 가능한 상기 비(非) 우선 순위 미차단 패킷에 대해서는, 상기 가능 비트 벡터에 의해 여전히 라우팅 목표로 표시되고, 상기 출력 상태 비트 벡터에 의해 최대의 상기 버퍼 공간 표시가 표시되는 방향 및 동적 가상 채널을 선택하며, 만약 상기와 같은 채널 및 방향 조합이 존재하지 않으면 상기 가능 비트 벡터의 이스케이프 가상 채널 비트에 의해 여전히 라우팅 목표로 표시되는 방향 및 이스케이프 가상 채널을 선택하는 단계
  21. 제20항에 있어서, 상기 일반 중재 정책의 수립 단계 중에서 출력 단계는
    현재의 출력 단계 중재 주기를 미리 정의된 출력 단계 중재 주기 기준에 따라 프로세서 주입 FIFO에 대하여 높은 우선 순위로 설정하는 단계와;
    현재의 출력 단계 중재 주기를 상기 미리 정의된 출력 단계 중재 주기 기준에 따라 프로세서 주입 FIFO에 대하여 낮은 우선 순위로 설정하는 단계
    를 포함하는 것인 패킷 라우팅 방법.
  22. 제21항에 있어서, 상기 패킷 라우팅 방법은 상기 패킷들에 대하여 다음과 같이 최고 우선 순위로부터 최저 우선 순위까지 출력 중재 우선 순위를 생성하는 단계를 더 포함하며, 상기 현재의 출력 단계 중재 주기는 프로세서 주입 FIFO에 대하여 낮은 우선 순위인 것인 패킷 라우팅 방법.
    a) 상기 패킷들 중에서, 복수의 우선 순위 가상 채널 중 최고의 버퍼 입력 충만 표시를 갖는 상기 우선 순위 가상 채널의 선두에 위치한 상기 미차단 패킷
    b) 복수의 프로세서 주입 FIFO 중 최고의 버퍼 입력 충만 표시를 갖는 프로세서 주입 FIFO로부터의 높은 우선 순위 패킷
    c) 상기 패킷들 중에서, 복수의 비(非) 우선 순위 가상 채널 중 최고의 상기 버퍼 입력 충만 표시를 갖는 비(非) 우선 순위 가상 채널의 미차단 패킷
    d) 복수의 프로세서 주입 FIFO 중 최고의 버퍼 입력 충만 표시를 갖는 프로세서 주입 FIFO로부터의 통상 우선 순위 패킷
  23. 제21항에 있어서, 상기 패킷 라우팅 방법은
    상기 패킷들에 대하여 다음과 같이 최고 우선 순위로부터 최저 우선 순위까지 출력 중재 우선 순위를 생성하는 단계를 더 포함하며, 상기 현재의 출력 단계 중재 주기는 프로세서 주입 FIFO에 대하여 높은 우선 순위인 것인 패킷 라우팅 방법.
    a) 복수의 프로세서 주입 FIFO 중 최고의 버퍼 입력 충만 표시를 갖는 프로세서 주입 FIFO로부터의 높은 우선 순위 패킷
    b) 상기 패킷들 중에서, 상기 복수의 우선 순위 가상 채널 중 최고의 버퍼입력 충만 표시를 갖는 상기 우선 순위 가상 채널의 선두에 위치한 상기 미차단 패킷
    c) 상기 복수의 프로세서 주입 FIFO 중 최고의 버퍼 입력 충만 표시를 갖는 프로세서 주입 FIFO로부터의 통상 우선 순위 패킷
    d) 상기 패킷들 중에서, 상기 복수의 비(非) 우선 순위 가상 채널 중 최고의 상기 버퍼 입력 충만 표시를 갖는 비(非) 우선 순위 가상 채널의 미차단 패킷
  24. 다차원으로 구성된 복수의 컴퓨팅 프로세서 노드를 포함하고, 상기 각 노드가 컴퓨팅 장치를 포함하는 고도 병렬 컴퓨팅 시스템에서 패킷들을 목적지 노드로 라우팅하는 네트워크 스위치로서,
    a) 2m 개의 방향 중 하나 이상의 방향으로부터의 상기 패킷들을 대응하는 수의 입력 링크 중 하나 이상의 링크를 통해 복수의 가상 채널 중 대응하는 하나 이상의 채널로 입력하는 하나 이상의 입력 유닛과;
    b) 상기 노드의 로컬로부터의 로컬 패킷들을 복수의 프로세서 주입 FIFO 중 하나 이상으로 입력하는 하나 이상의 입력 링크와;
    c) 2m 개의 복수의 출력 상태 비트 벡터를 생성하는 출력 상태 비트 벡터 발생기로서, 상기 각 출력 상태 비트 벡터는 상기 링크의 가용성, 하향 동적 가상 채널의 가용성 및 상기 방향과 관련된 모든 가상 채널에 대한 하향 버퍼 공간 표시를 나타내는 것인 출력 상태 비트 벡터 발생기와;
    d) 일반 중재 정책을 수립하는 입력 중재기 및 출력 중재기로서, 중재 결정은 상기 2m 개의 복수의 출력 상태 비트 벡터를 기초로 하여 이루어지는 것인 입력 중재기 및 출력 중재기와;
    e) 상기 일반 중재 정책에 따라 상기 패킷들을 하나 이상의 전송 경로를 통해 대응하는 출력 링크로 출력하는 출력 링크로서, 상기 패킷들은 상기 목적지 노드로 전진하는 것인 하나 이상의 출력 링크
    를 포함하는 네트워크 스위치.
  25. 제24항에 있어서, 상기 네트워크 스위치는 상기 컴퓨터 프로세서 노드와 동일한 집적 회로에 집적되는 것인 네트워크 스위치.
  26. 제24항에 있어서, 상기 하나 이상의 입력 유닛에 전용인 하나 이상의 프로세서 수신 FIFO를 포함하며, 복수의 프로세서 수신 FIFO가 동일한 수의 입력 유닛에 대하여 존재하며, 상기 하나 이상의 프로세서 수신 FIFO에 의하여 복수의 입력 유닛 사이의 경합이 감소되는 것이 네트워크 스위치.
  27. m 개의 다차원으로 구성된 복수의 컴퓨팅 프로세서 노드를 포함하고, 상기 각 노드가 컴퓨팅 장치를 포함하는 고도 병렬 컴퓨팅 시스템에서 패킷들을 목적지 노드로 라우팅하는 동적 라우팅을 구비한 가상 컷스루(cut-through) 네트워크 스위치로서,
    상기 네트워크 스위치가 상기 컴퓨터 프로세서 노드와 동일한 집적 회로 상에 집적되는 것인 가상 컷스루 네트워크 스위치.
  28. 제27항에 있어서,
    상기 하나 이상의 입력 유닛에 전용인 하나 이상의 프로세서 수신 FIFO를 포함하며, 복수의 프로세서 수신 FIFO가 동일한 수의 입력 유닛에 대하여 존재하며, 상기 하나 이상의 프로세서 수신 FIFO에 의하여 복수의 입력 유닛 사이의 경합이 감소되는 것인 가상 컷스루 네트워크 스위치.
KR1020037010873A 2001-02-24 2002-02-25 최적화된 가변 네트워크 스위치 KR100620835B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US27112401P 2001-02-24 2001-02-24
US60/271,124 2001-02-24
PCT/US2002/005569 WO2002084508A1 (en) 2001-02-24 2002-02-25 Optimized scalabale network switch

Publications (2)

Publication Number Publication Date
KR20040004532A true KR20040004532A (ko) 2004-01-13
KR100620835B1 KR100620835B1 (ko) 2006-09-13

Family

ID=68499837

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037010873A KR100620835B1 (ko) 2001-02-24 2002-02-25 최적화된 가변 네트워크 스위치

Country Status (8)

Country Link
US (2) US7305487B2 (ko)
EP (1) EP1370967A4 (ko)
JP (1) JP3871327B2 (ko)
KR (1) KR100620835B1 (ko)
CN (1) CN1269053C (ko)
CA (1) CA2438195C (ko)
IL (1) IL157515A0 (ko)
WO (1) WO2002084508A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101250666B1 (ko) * 2009-01-30 2013-04-03 후지쯔 가부시끼가이샤 정보 처리 시스템, 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0517304D0 (en) * 2005-08-23 2005-10-05 Netronome Systems Inc A system and method for processing and forwarding transmitted information
US7773617B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
US7773616B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel
US9053072B2 (en) * 2007-01-25 2015-06-09 Hewlett-Packard Development Company, L.P. End node transactions at threshold-partial fullness of storage space
CN101311917B (zh) * 2007-05-24 2011-04-06 中国科学院过程工程研究所 一种面向粒子模型的多层直连集群并行计算系统
US7970872B2 (en) * 2007-10-01 2011-06-28 Accenture Global Services Limited Infrastructure for parallel programming of clusters of machines
JP2009104300A (ja) * 2007-10-22 2009-05-14 Denso Corp データ処理装置及びプログラム
US20090109996A1 (en) * 2007-10-29 2009-04-30 Hoover Russell D Network on Chip
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US20090125703A1 (en) * 2007-11-09 2009-05-14 Mejdrich Eric O Context Switching on a Network On Chip
US8261025B2 (en) 2007-11-12 2012-09-04 International Business Machines Corporation Software pipelining on a network on chip
US8656442B1 (en) 2007-11-21 2014-02-18 BitGravity, Inc. Efficient video delivery
US8223650B2 (en) * 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
US20090260013A1 (en) * 2008-04-14 2009-10-15 International Business Machines Corporation Computer Processors With Plural, Pipelined Hardware Threads Of Execution
US8423715B2 (en) 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US20090282419A1 (en) * 2008-05-09 2009-11-12 International Business Machines Corporation Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip
US8311174B1 (en) 2008-05-16 2012-11-13 Xilinx, Inc. Persistent synchronization within a media oriented systems transport network
US8154989B1 (en) * 2008-05-16 2012-04-10 Xilinx, Inc. Recovering a shared channel within a network from a deadlock state
US8438578B2 (en) 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US8194543B2 (en) * 2008-12-18 2012-06-05 Intel Mobile Communications GmbH Methods of data traffic shaping, apparatus and wireless device
US8549249B1 (en) * 2009-09-21 2013-10-01 Tilera Corporation Supporting secondary atomic operations using primary atomic operations
US8571834B2 (en) * 2010-01-08 2013-10-29 International Business Machines Corporation Opcode counting for performance measurement
US9565094B2 (en) * 2009-11-13 2017-02-07 International Business Machines Corporation I/O routing in a multidimensional torus network
US8429377B2 (en) * 2010-01-08 2013-04-23 International Business Machines Corporation Optimizing TLB entries for mixed page size storage in contiguous memory
US8359404B2 (en) * 2010-01-08 2013-01-22 International Business Machines Corporation Zone routing in a torus network
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US9954760B2 (en) 2010-01-29 2018-04-24 International Business Machines Corporation I/O routing in a multidimensional torus network
US8325723B1 (en) * 2010-02-25 2012-12-04 Integrated Device Technology, Inc. Method and apparatus for dynamic traffic management with packet classification
US8359417B2 (en) * 2010-07-16 2013-01-22 Miranda Technologies Inc. Audio/video router
US8560885B1 (en) * 2010-09-16 2013-10-15 The Boeing Company Dynamic redundancy management
US9077616B2 (en) 2012-08-08 2015-07-07 International Business Machines Corporation T-star interconnection network topology
WO2017069771A1 (en) 2015-10-23 2017-04-27 Hewlett-Packard Enterprise Printed circuit board for receiving a switch chip and transceiver modules
US10311542B2 (en) * 2017-03-06 2019-06-04 Thinci, Inc. Node topology employing recirculating ring command and data buffers for executing thread scheduling
US10579428B2 (en) 2017-12-01 2020-03-03 International Business Machines Corporation Data token management in distributed arbitration systems
WO2020236275A1 (en) 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating dynamic command management in a network interface controller (nic)
CN115550293B (zh) * 2022-11-30 2023-03-10 苏州浪潮智能科技有限公司 一种fsi主控制器及其端口路由装置和方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4891751A (en) * 1987-03-27 1990-01-02 Floating Point Systems, Inc. Massively parallel vector processing computer
US5347450A (en) * 1989-01-18 1994-09-13 Intel Corporation Message routing in a multiprocessor computer system
US5689647A (en) * 1989-03-14 1997-11-18 Sanyo Electric Co., Ltd. Parallel computing system with processing element number setting mode and shortest route determination with matrix size information
US5181017A (en) * 1989-07-27 1993-01-19 Ibm Corporation Adaptive routing in a parallel computing system
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
EP0485690B1 (en) * 1990-11-13 1999-05-26 International Business Machines Corporation Parallel associative processor system
US5175733A (en) * 1990-12-27 1992-12-29 Intel Corporation Adaptive message routing for multi-dimensional networks
JPH05181816A (ja) * 1992-01-07 1993-07-23 Hitachi Ltd 並列データ処理装置及びマイクロプロセッサ
US5511070A (en) * 1992-05-20 1996-04-23 Xerox Corporation Reservation ring mechanism for controlling contention in a broadband ISDN fast packet switch suitable for use in a local area network
US6157967A (en) * 1992-12-17 2000-12-05 Tandem Computer Incorporated Method of data communication flow control in a data processing system using busy/ready commands
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
JPH08251196A (ja) 1995-03-15 1996-09-27 Toshiba Corp 並列計算機
CA2181206C (en) * 1995-07-24 2001-03-13 Anwar Elwalid A method for admission control and routing by allocating network resources in network nodes
JPH1040223A (ja) * 1996-06-17 1998-02-13 Internatl Business Mach Corp <Ibm> 分散並列システムにおける集合通信認識の最適化方法
JP3532037B2 (ja) * 1996-07-31 2004-05-31 富士通株式会社 並列計算機
EP1370966B1 (en) 2001-02-24 2010-08-25 International Business Machines Corporation A novel massively parrallel supercomputer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101250666B1 (ko) * 2009-01-30 2013-04-03 후지쯔 가부시끼가이샤 정보 처리 시스템, 정보 처리 장치, 정보 처리 장치의 제어 방법, 및 컴퓨터 판독 가능한 기록 매체

Also Published As

Publication number Publication date
CN1493038A (zh) 2004-04-28
JP2004527176A (ja) 2004-09-02
US7668970B2 (en) 2010-02-23
EP1370967A1 (en) 2003-12-17
US7305487B2 (en) 2007-12-04
EP1370967A4 (en) 2009-10-21
US20080091842A1 (en) 2008-04-17
WO2002084508A1 (en) 2002-10-24
JP3871327B2 (ja) 2007-01-24
CA2438195C (en) 2009-02-03
KR100620835B1 (ko) 2006-09-13
US20040078482A1 (en) 2004-04-22
IL157515A0 (en) 2004-03-28
CN1269053C (zh) 2006-08-09
CA2438195A1 (en) 2002-10-24

Similar Documents

Publication Publication Date Title
KR100620835B1 (ko) 최적화된 가변 네트워크 스위치
US11640362B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
KR101809396B1 (ko) 분산된 직접 상호 접속 네트워크에서 패킷을 라우팅하는 방법
TWI390913B (zh) 使用一緩衝交叉式交換系統用於在資料模組之間傳輸資料的裝置、方法、以及機器可讀儲存媒體
US4623996A (en) Packet switched multiple queue NXM switch node and processing method
US7773616B2 (en) System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel
GB2251356A (en) Adaptive message routing for multi dimensional networks
US7773618B2 (en) System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels
EP3445007B1 (en) Routing packets in dimensional order in multidimensional networks
Shrivastava et al. Design and performance evaluation of a NoC-based router architecture for MPSoC
US9185026B2 (en) Tagging and synchronization for fairness in NOC interconnects
Kariniemi et al. Arbitration and routing schemes for on-chip packet networks
US7773617B2 (en) System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
Effiong et al. Roundabout: a network-on-chip router with adaptive buffer sharing
Rahman et al. High performance hierarchical torus network under adverse traffic patterns
Su et al. Simple and effective adaptive routing algorithms in multi-layer wormhole networks
WO2008057821A2 (en) System and method for preventing deadlock in richly-connected multi-processor computer system
Kim et al. Drop-and-reroute: A new flow control policy for adaptive wormhole routing

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: 20100429

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee