KR20000070454A - 상호접속 구조에서 사용되는 스케일 조정가능한 대기시간이 짧은 스위치 및 메시지 전송 방법 - Google Patents

상호접속 구조에서 사용되는 스케일 조정가능한 대기시간이 짧은 스위치 및 메시지 전송 방법 Download PDF

Info

Publication number
KR20000070454A
KR20000070454A KR1019997006691A KR19997006691A KR20000070454A KR 20000070454 A KR20000070454 A KR 20000070454A KR 1019997006691 A KR1019997006691 A KR 1019997006691A KR 19997006691 A KR19997006691 A KR 19997006691A KR 20000070454 A KR20000070454 A KR 20000070454A
Authority
KR
South Korea
Prior art keywords
message
node
level
interconnect
nodes
Prior art date
Application number
KR1019997006691A
Other languages
English (en)
Other versions
KR100624240B1 (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 KR20000070454A publication Critical patent/KR20000070454A/ko
Application granted granted Critical
Publication of KR100624240B1 publication Critical patent/KR100624240B1/ko

Links

Classifications

    • 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/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/40Wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/10Routing in connection-oriented networks, e.g. X.25 or ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/251Cut-through or wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/255Control mechanisms for ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/256Routing or path finding in ATM switching fabrics
    • H04L49/257Cut-through or wormhole routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • 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/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • H04L2012/5604Medium of transmission, e.g. fibre, cable, radio
    • H04L2012/5605Fibre
    • 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/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • 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/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5684Characteristics of traffic flows

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Logic Circuits (AREA)

Abstract

본 발명은 스케일 조정가능한 대기시간이 짧은 스위치에 관한 발명으로서, 모든 타입, 네트워크 및 통신 시스템의 컴퓨팅에 사용되는 다중 레벨 최소 로직 상호접속 구조의 기능으로 확장되고, 상기 다중 레벨 최소 로직 상호접속 구조는 타이밍에 기초하여 데이터 흐름 기술 및 상기 구조를 통한 메시지 이동의 위치선정을 사용하고, 상기 스위치는 상기 구조내의 다중 노드를 통해 분포되어서, 광범위한 제어 기능 및 복잡한 로직 구조를 제공하는 조정 제어기가 상기 상호접속 구조가 각 노드에서의 처리 및 저장 오버헤드가 감소되는 "전향" 또는 "핫-포테이토" 시스템처럼 동작하는 동안 피해지고, 상기 스케일 조정가능하고 대기시간이 짧은 스위치를 사용하는 상호접속 구조는 칩에 메시지를 삽입하는 새로운 절차에 의해 집적 회로칩을 통해 웜홀 루팅을 성취하는 방법을 사용하고, 매 각도에서 외부 실린더상의 막히지 않은 각각의 노드로 메시지를 동시에 삽입시키는 대신, 전체 메시지가 A 와 B 사이에 있는 경우에만 두 개의 열 A 및 B 로 동시에 메시지를 삽입하고, 시간 0 에서 열(O)로 메시지가 삽입되며, 시간 tO+tC에서 열(I)로 메시지가 삽입되고, 여기서 tC는 열(O)로부터 최상위 레벨상의 열(I)까지 제거하기 위한 메시지의 제1 비트용 시간이고, 시간 tO+2tC에서 열(2)로 메시지가 삽입되며, 이 기술은 한 메시지의 제1 비트가 스위치 내에 이미 존재하는 다른 메시지의 내부 비트와 충돌하는 것을 막아주고, 전체 메시지 사이의 분쟁이 상기 제1 비트들 사이에서만의 분쟁을 해결함으로서 많은 셀을 통한 웜홀을 알리도록 하여 어드레스 되는 것을 특징으로 한다.

Description

상호접속 구조에서 사용되는 스케일 조정가능한 대기시간이 짧은 스위치 및 메시지 전송 방법{A SCALABLE LOW-LATENCY SWITCH FOR USAGE IN AN INTERCONNECT STRUCTURE}
컴퓨터 과학 분야에서 계속 해결하지 못한 중요한 문제는 완전히 장착된 상태하에서 높은 스루풋(높은 단면적 대역폭)을 유지하는 스케일이 조정가능하고 대기시간이 적은 상호접속기가 없었다는 점이다. banyon, 오메가 및 fat-free 네트워크, 다중-레벨 그리드, 토러스 및 하이퍼쿠브 네트워크 등의 상호접속기를 디자인 하는데 있어서, 트래픽에서 장착되었을 경우 여러모로 적은 대기시간 및 높은 스루풋을 지원하고 스케일에 제한없도록 하는 것은 모두 어려웠다. 그러한 네트워크의 구조는 19세기 수학자들, 심지어 초기 기하학자들에 의해 개발되었고, 메시지-루팅 방법을 지원하지는 못했다.
요구되는 것은 가상적으로 제한없이 스케일 조정이 가능하고 대기시간이 적으며 높은 스루풋을 지원하는 구조에서 상호접속을 형성하는데 사용되는 상호접속 구조 및 적절한 스위치인 것이다.
이러한 장점을 가진 상호접속 구조 및 스위치는 근거리 통신망(LAN)/인터넷 교환 구조 및 전화 교환 구조 등과 같은 수퍼컴퓨터 네트워크 및 네트워크 교환 구조 환경을 포함하는 많은 전저 디자인 환경 애플리케이션에서 유용하다.
다양한 전기 디자인 환경의 대상들은 매우 어렵다. 예를들어, 수퍼컴퓨터 디자인에서의 주 목적은 매우 낮은 대기시간이다. 반대로, LAN/인터넷 교환 구조 디자인에서의 주요 목적은 대기시간보다는 스케일 가능성이다. 전화 중심국 교환의 목적은 매우 높은 스케일 가능성 및 낮은 비용으로서, 대기시간 및 대역폭은 적은 관심분야이다.
수퍼컴퓨터 디자인용 교환기는 가격이 비싼 실리콘 공정 기술을 사용하여 제조된다. 디자인 요소들이 특히 한정되고 수퍼컴퓨터 시스템을 통해 변화한다. 특히 워드 크기, 어드레싱 체계, 크기 및 용량은 일반적으로 수퍼컴퓨터 시스템을 통해서 변화되지는 않는다.
단일 컴파일러 개념 및 디자인, 그리고 운영체계 정의 및 요구사항 설정은 일반적으로 수퍼컴퓨터 시스템을 위해 사용된다. 비슷하게, 수퍼컴푸터 시스템에는 운영 속도 및 전압의 단일 한정이 포함된다. 수퍼컴퓨터에는 호환가능한 성분들, 메모리, 프로세서, 전원 공급기 등이 사용된다.
수퍼컴퓨터 디자인은 일반적으로 네트워크의 크기가 상당히 변할 수 있다 하더라도 LAN/인터넷 네트워크보다 최대 크기가 더 작다. 일반적으로 수퍼컴퓨터 디자인은 수백에서 적은 수의 천여개의 포트 범위의 크기를 가지는데 비해 네트워크는 수백에서 많은 수의 천여개 또는 그 이상 범위의 크기를 가진다. 수퍼컴퓨터 시스템에서는 다중의 적층된 집적회로의 사용을 통해 상당한 정도의 병렬처리를 하는 스위치 디자인이 사용된다. 수퍼컴퓨터 네트워크내의 일반적인 노드들은 하나의회로 보드상에 제조된 단지 몇 개의 노드만 있는 하나의 집적회로상에서 구현된다. 노들들의 상호접속은 다중이고, 상당한 고속 케이블로 이루어진다. 수퍼컴퓨터 디자인 병렬처리는 포트당 대역폭의 증가 및 대기시간의 감소를 이루기 위한 패키징뿐만 아니라, 어드레싱 및 제어 문제에 까지 확장된다.
수퍼컴퓨터 스위치 구현과는 반대로, LAN/인터넷 네트워크 디자인 등의 네트워크 디자인을 위한 스위치는 일반적으로 가능한한 다양한 디자인 파라메터를 가지는 다중 집적된 회로를 사용한다. 일반적으로, 소형 네트워크용 디자인 파라메터들은 대형 네트워크용 디자인 파라메터와는 크게 다르다. 예를들어, 대형 네트워크에서는 종종 "꼬인 큐브" 또는 2차원 디자인이 사용된다. 수십만 포트가 있는 대규모 네트워크에서는 보통 다중 스위치 회로를 초대형 스위치용 메타-토폴로지로 상호접속 시키거나 또는 캐스케이딩 시킴으로서 형성되는 3차원 또는 4차원 토폴로지가 사용된다. 스위치 회로의 다양한 구현에는 다양한 메타-토폴로지, 특히 안정적인 입출력 신호 타이밍을 지원하는 효과적인 구성 LAN/인터넷 네트워크가 필요하다. 네트워크 비트율은 보통 수퍼컴퓨터의 비트율보다 느리며 크게 변화한다. 예를들어, 이더넷에서는 10Mbit/s 레이트가 사용된다. 토큰링에서는 12Mbit/s 레이트가 사용된다. 패스트 이더넷에서는 100Mbit/ 레이트가 사용되며 ATM 은 25Mbit/s 에서 622Mbit/s 레이트까지 도달한다.
종래 스위치 기술에서는 상호접속 구조 기술 지원에 많은 어려움이 있었다. 먼저, 상당한 가격에서 약 12 내지 24 포트 이상을 지원할 수 있는 스위칭 구조 또는 기술이 없다. 예를들어, 8-포트 토큰링 스위치 가격은 대략 10,000 달러이다. 8 내지 16 포트 10Mbit/s 이더넷 스위치 가격은 4000 달러에서 10,000 달러 범위이다.
상호접속 스위치 기술의 두 번째 문제는 단일 스위치 디자인은 다중의 여러 통신 프로토콜을 지원하지 못한다는 것이다. 핀-제한된 디자인은 ATM 과 같은 소형 패킷 길이를 가지는 통신 프로코톨만을 쉽게 지원한다. 다양한 패킷 크기는 집적된 회로 칩에 집적 영향을 미쳐 패킷 크기내의 큰 변화가 디자인 스위치 명세와 큰 차이를 보이게 한다. 예를들어, 스위치는 하나의 집적된 회로 스위치상의 모든 포트를 위해 적어도 최대 패킷 크기의 전 길이를 버퍼한다. 따라서, 한정된 ATM 패킷 크기는 53 바이트가 되어서 ATM 디자인의 적은 페이로드가 집적회로내의 게이트의 충분한 사용이 있게한다. 이더넷 패킷 크기는 변화될 수 있고 메시지 버퍼링을 위한 다수의 게이트가 요구되는 약 2K 바이트까지의 범위를 가진다. 비슷하게, 토큰 링 패킷은 4K 바이트까지 범위를 가지며 파이버 채널 크기는 메시지 버퍼링을 위한 큰 회로를 사용하여 가상적으로 제한이 되지 않는다.
필요한 것은 근거리 네트워크 사용을 위한 일반적인 스위치 회로이다. 장래에 요구되는 것은 IEEE 네트워크 명세를 구현하는 네트워크를 구성하기 위한 일반적인 스위치 회로이다.
상호접속 구조는, 상호접속 구조를 통한 메시지 통신의 위치와 타이밍에 근거한 데이터 흐름 기술을 이용하는 통신 시스템, 네트워크 및 모든 형태의 컴퓨터에 아주 유용하다. 감독 제어기가 전체 제어 기능을 제공하도록 하기 위해 스위칭 제어는 상기 구조의 다중 노드 전체에 분배되어 복잡한 논리 구조를 피한다. 상호접속 구조는 각 노드에서 저장 오버헤드와 프로세싱이 최소화되는 "전향(deflection)" 또는 "핫 포테이토(hot-photato)" 시스템으로써 작용한다. 노드에서의 버퍼링과 전체 제어기의 제거는 상호접속 구조에서 로직 구조와 제어의 양을 크게 감소시키고, 전체 제어 요소와 네트워크 상호접속 성분을 간단히 하며, 메시지 통신의 실행을 개선한다.
스케일 조정가능하고 대기시간이 짧은 스위치는 상호접속 구조의 이점과 유용성을 늘리고, 기존의 네트워크에 존재하는 한계를 피하기 위해 새로운 메시지-루팅 방법을 수행하는 새로운 구조를 포함한다. 스케일 조정가능하고 대기시간이 짧은 스위치를 사용하는 상호접속 구조의 간단한 예의 효율은 상호접속 크기가 커질때 20%보다 좋다. 비행시간(대기시간)은 상호접속 구조가 완전히 로드될 때 조차 네트워크로 들어가기 위해 헤드에 대한 경과 시간의 2배에 지나지 않는다. 소위 "플랫 대기시간 상호접속(Flat Latency Interconnect)"이라고 불리는 상호접속 구조의 다른 실시예는 크기가 커질때 효율이 40%보다 좋도록 개선하고 노드당 둘 이상의 아랫방향 경로를 가지는 스케일 조정가능한 대기시간이 짧은 스위치를 사용한다.
본 발명의 한 태양에 따르면, 스케일 조정가능한 대기시간이 짧은 스위치 디자인은 다중 상호접속 디자인 카테고리에서의 목적을 만족한다. 스케일 조정가능한 대기시간이 짧은 스위치는 아주 넓은 마켓에서 다중 디자인 카테고리에 대한 서로 통합된 다른 회로 배치를 만족한다.
스케일 조정가능한 대기시간이 짧은 스위치는 많은 수의 아주 간단한 제어 셀(노드)로 구성된다. 제어 셀은 어레이로 배열된다. 어레이에서의 제어 셀의 수는 64에서 1024의 범위의 디자인 파라미터이고 대개 2의 제곱수이다. 어레이는 레벨과 열로 정렬된다. 열의 수는 일반적으로 4에서 20 또는 그 이상의 범위이다. 각 어레이가 2J제어 셀을 포함할 때, 레벨 수는 일반적으로 J+1이다. 스케일 조정가능한 대기시간이 짧은 스위치는 스위치의 형태와 실행 및 크기를 결정하는 다중 디자인 파라미터에 따라 고안된다. 무수한 제어 셀을 구비하는 스위치는 단일 칩상에 배치되어 스위치의 유용한 크기가 네트워크의 크기보다는 핀의 수에 의해 제한되도록 한다.
스케일 조정가능한 대기시간이 짧은 스위치의 다중 디자인 파라미터는 스위치를 구성하기 위한 회로 배치를 결정한다. 어레이에서의 제어 셀의 수와 어레이의 전체 수에 다른 디자인 선택도 부가된다. 기본 디자인에서 제어 셀은 두개의 데이터 입력 포트와 두 개의 데이터 출력 포트를 구비한다. "쌍-셀" 디자인과 같은 보다 복잡한 디자인은 보다 큰 제어 셀 유닛을 형성하기 위해 기본 셀 요소를 결합한다. 보다 큰 셀 유닛은 보다 복잡한 노드를 형성한다. 쌍이된 셀 디자인과 같은 복합 셀의 이점은 가변성이 감소된 대기시간일 뿐만 아니라 전체적으로 낮은 대기시간이다. 복합 셀은 기본 디자인과 비교하여 감소된 가변성 대기시간이기 때문에 "플랫 대기시간" 스위치라고 불린다. 쌍으로된 셀 디자인은 두 개의 단일 셀보다 많은 게이트를 포함하지만, 플랫 대기시간이기 때문에, 기가비트 이더넷 및 ATM 스위치와 같은 빠른 네트워크에 대한 스위칭 섬유로 그리고 슈퍼컴퓨터에 사용하는 것이 바람직하다.
디자인 파라미터는 기본 타이밍 구성과 파이프라인 로직 구성을 포함하는 타이밍 형태를 포함한다. 파이프라인 로직은 네트워크를 통해 "리플 업"되어, 리플-업 디자인이라고 불린다. 리플-업 파이프라인 로직은 보다 적은 클럭 주기로 네트워크를 통해 메시지를 전송한다. 기본 타이밍 디자인은 가능한 가장 빠른 I/O 속도에서 통합된 회로 칩을 작동한다.
메시지는 전형적으로 상위 레벨(레벨 L)에서 상호접속 구조의 어레이로 들어오고, 바닥 레벨(레벨 0)을 통해 나간다. 메시지 "웜홀"은 상부에서 바닥으로 그리고 왼쪽에서 오른쪽으로 진행하는 데이터 비트를 가지는 칩상의 제어 셀을 통한다. 간단한 타이밍 구성에서, 헤더 비트는 두 개의 틱(tick)(두 개의 클럭 주기)에 주어진 레벨의 셀 사이에서, 그리고 하나의 틱에서 다른 레벨의 노드사이에서 이동한다. 헤더 비트와 같은 페이로드 비트는 동일한 레벨의 셀에서 셀로 이동하기 위한 두 개의 틱을, 보다 효과적으로는 레벨에서 레벨로 아래방향으로 이동하는 0 틱을 이용한다. 리플-업 타이밍 구성에서, 헤더와 페이로드 비트는 주어진 레벨의 노드 사이를 이동하기 위해 단 하나의 틱을 이용한다. 페이로드 비트는 레벨에서 레벨로 아래로 지나는 0 틱을 이용하는 것이 효과적이다. 그러므로 전향되지 않는 메시지는 입력 핀에서 출력 핀으로 직접 이동하는 페이로드 비트를 가진다. 핀에서 핀으로의 접속은 메시지 웜홀링을 가능하게 하는 타이밍 구성을 이용하여 달성된다.
스위치의 임의의 실시예는 하나에서 모두 또는 하나에서 다수 메시지 전송이 실행되는 다중 옵션을 포함한다. 다중 옵션을 이용하면, 어떠한 입력 포트도 다수 또는 모든 출력 포트로 메시지를 선택적으로 보낼 수 있다. 멀티캐스트 기능성은 슈퍼컴퓨터뿐만아니라 ATM과 LAN/WAN 스위치에 적당하다. 멀티캐스팅은 약 20%에서 30%로 통합 회로 로직을 증가시키는 부가적인 제어 라인을 이용하는 직접적인 방법으로 실행된다. 리플-업 로직과 결합된 멀티캐스트 스위치는 디자인이 플랫-대기시간 기능을 포함하기 때문에 타이밍 이슈의 복잡성을 증가시킨다.
실제 실행에서는 상호접속 구조의 토폴로지를 구비하는 실리콘 스위치는 핀-제한된다. 대안으로는, 스위치를 구성하기 위해 필요한 로직 게이트의 최소 수는 가능한 숫자보다 더 작다. 통합된 회로 칩의 크기가 증가될 때, 영역은 제곱만큼 증가되지만, 그 주변은 선형적으로 증가한다. 따라서, 보다 큰 통합된 회로 칩은 I/O 핀의 수에 의해 인정된 것보다 보다 많은 게이트를 가진다. 본 발명의 한 실시예에 따르면, 초과 로직 게이트는 로 대기시간를 얻기 위해 채용된다. 본 발명의 다른 실시예에 따르면, 2Kbyte 또는 그 이상의 LAN 메시지는 초과 로직 게이트를 소모하는 많은 다이내믹 FIFO 버퍼를 포함한다.
다중 레벨 최소 로직(MLML) 네트워크는 1995년 7월 21에 Coke S. Reed에 의해 출원된 "MULTIPLE LEVEL MINIMUM LOGIC NETWORK"인 미국 특허 출원 번호 제 08/505,513호에 공지되어 있으며, 여기에 참조로 언급되어 있다. 다중 레벨 최소 로직 네트워크의 광학적 실시예는 가장 바깥 실린더(상부 레벨)의 노드가 메시지를 수용하기 위한 입력 포트를 가지는 구조를 포함한다. 전체 클럭의 틱에서, 메시지는 가장 바깥 실린더의 열린 노드로 삽입된다. 광학적 상호접속 라인(섬유)은 메시지를 전송하는 노드사이에 있어서 전체 메시지가 인접 노트 사이에 맞춰지도록 한다.
다중 레벨 최소 로직 네트워크가 메모리 또는 버퍼와 같은 전자 저장 장치를 사용하지 않고 메시지를 전송하더라도, 다중 레벨 최소 로직 네트워크의 전자 디자인 실행에서, 노드 사이의 상호접속 라인은 선입선출(FIFO) 버퍼에서처럼 실행되어 질 수 있다. 예를들면, 다중 레벨 최소 로직 네트워크의 전기적 버젼의 한 가능한 실시예는 FIFO로부터 먼저 조립될 수 있고, 노드 사이의 천이 수와, 회로의 클럭 속도에 메시지 길이를 곱한 것과의 곱의 칩을 통한 최소 대기시간를 가진다. FIFO 버퍼를 제거하는 전기적 디자인은 회로 클럭 속도와 노드 천이의 곱의 수의 최소 대기시간에서 실질적으로 감소된 대기시간 결과를 가져올 수 있다. 게다가 FIFO 버퍼의 제거는 칩이 FIFO 요소보다는 노드 또는 셀로 구성되도록 하고, 웜홀 루팅을 이용함으로써 대기시간를 크게 감소시킬 뿐만 아니라 칩에 보다 큰 네트워크를 맞추도록 한다.
모든 타입, 네트워크 및 통신 시스템의 컴퓨팅에 사용되는 다중 레벨 최소 로직 상호접속 구조의 기능으로 확장되고, 상기 다중 레벨 최소 로직 상호접속 구조는 타이밍에 기초하여 데이터 흐름 기술 및 상기 구조를 통한 메시지 이동의 위치선정을 사용한다. 상기 스위치는 상기 구조내의 다중 노드를 통해 분포되어서, 광범위한 제어 기능 및 복잡한 로직 구조를 제공하는 조정 제어기가 상기 상호접속 구조가 각 노드에서의 처리 및 저장 오버헤드가 감소되는 "전향" 또는 "핫-포테이토" 시스템처럼 동작하는 동안 피해진다. 상기 스케일 조정가능하고 대기시간이 짧은 스위치를 사용하는 상호접속 구조는 칩에 메시지를 삽입하는 새로운 절차에 의해 집적 회로칩을 통해 웜홀 루팅을 성취하는 방법을 사용하고, 매 각도에서 외부 실린더상의 막히지 않은 각각의 노드로 메시지를 동시에 삽입시키는 대신, 전체 메시지가 A 와 B 사이에 있는 경우에만 두 개의 열 A 및 B 로 동시에 메시지를 삽입된다. 시간 0 에서 열(O)로 메시지가 삽입되며, 시간 tO+tC에서 열(I)로 메시지가 삽입되는데, 여기서 tC는 열(O)로부터 최상위 레벨상의 열(I)까지 제거하기 위한 메시지의 제1 비트용 시간이다. 시간 tO+2tC에서 열(2)로 메시지가 삽입되며, 이 기술은 한 메시지의 제1 비트가 스위치 내에 이미 존재하는 다른 메시지의 내부 비트와 충돌하는 것을 막아주고, 전체 메시지 사이의 분쟁이 상기 제1 비트들 사이에서만의 분쟁을 해결함으로서 많은 셀을 통한 웜홀을 알리도록 하여 어드레스 된다. 많은 경우에, 페이로드의 제1 비트는 페이로드의 말단이 들어오기 전에 칩을 나간다.
본 발명의 한 실시예에 따르면, 대기시간이 짧은 디자인은 입력과 출력 핀의 수에 의해 인정되어지는 열만큼 2배 내지 4배, 또는 그 이상의 스위치를 구성함으로써 초과 로직 게이트를 사용하여 얻어질수 있다. 입력 핀의 수를 초과하는 열은 입력 연결이 없고, 스위치를 지나는 동안 다른 메시지에 의해 메시지가 전향되어지는 가능성을 효과적으로 감소함으로써 스위치내의 밀집을 감소시킨다. 대기시간는 전향의 발생을 증가시킨다. 입력 라인에 연결되지 않은 부가적인 열을 제공하는 것은 스위치 내의 메시지 흐름 밀도를 감소하고 대기시간도 감소시킨다. 본 발명의 다양한 실시예에서 입력 포트의 다양성과 열의 형태는 메시지 흐름의 밀도를 조정하기 위해 정의되고 I/O 연결에 비해 비교적 다수의 내부 로직을 취한다.
본 발명의 다른 실시예에 따르면, 다양한 출력 포트와 열 형태는 다른 상호접속 물체를 지지하도록 정의된다. 상호접속 구조의 두 주요한 카테고리는 슈퍼컴퓨터와 네트워크(LAN/인터넷) 디자인 구조이다. 슈퍼컴퓨터 출력 포트 형태는 출력 신호의 열 어드레스를 무시하고, 스위치 외부의 메시지를 즉시 보낸다. 메시지는 일련의 외부 버퍼인 하나의 목표로 다중 출구 포트를 가진다. 스위치의 크기는 열의 수와 동일하고, 심지어 많은 행은 상기 디자인에 포함된다.
대조적으로, 네트워크(LAN) 출력 신호는 다수 목적지의 특별한 메시지 목적지에 비해 특별한 행 어드레스를 사용할 수도 있다. 출력 구조의 크기는 행의 수와 내부 열의 수의 곱이며, 출력 형태는 슈퍼컴퓨터의 출력형태와는 실질적으로 반대이다.
요약하면, 슈퍼컴퓨터에 응용가능한 한 출력 디자인은 가능한 최저 대기시간와 최고 대역폭에 제공된다. 네트워크에 응용가능한 두번째 디자인은 포트의 가장 큰 수를 제공한다.
본 발명의 다양한 실시예에 따르면, 스케일 조정가능한 대기시간이 짧은 스위치는 많은 상호접속 애플리케이션을 위한 광범위한 상호접속 대상을 지원한다. 스케일 조정가능한 대기시간이 짧은 스위치는 플랫-대기시간 제어 셀과 단일-열 제어 셀을 지원한다. 상기 스위치는 단일 틱 타이밍과 리플-업 로직 타이밍을 지원한다. 스케일 조정가능한 대기시간이 짧은 스위치는 임의의 실시예에서 멀티캐스팅을 지원하지만, 다른 실시예에서는 멀티캐스팅을 지원하지 않는다. 스케일 조정가능한 대기시간이 짧은 스위치의 다양한 실시예는 메시지-흐름 밀도를 다양하게 설정하기 위해 다른 입력 포트 형태를 유지하고, 대기시간이 짧은 슈퍼컴퓨터로부터 다중 포트 LAN으로의 응용을 위해 다른 출력 포트 형태를 유지한다. 스위치는 작은 슈퍼컴퓨터 메시지로부터 큰 LAN 메시지까지 다양한 메시지를 지원한다.
본 발명의 다른 태양에 따르면, 스케일 조정가능한 대기시간이 짧은 스위치는 웜홀 루팅에 부가하여 MLML 네트워크 특허에 다양한 이점을 가지는 광학적 실시예로써 실행된다. 게다가, 임의의 실시예에서 메시지 헤더는 단지 페이로드만을 전송하는 "슬레이브" 광학 네트워크에서 게이트를 설정하는 전기적 네트워크에서 진행된다. 전기/광학 혼합 스위치는 각 기술의 우수한 특징을 이용한다.
많은 이점은 스케일 조정가능한 대기시간이 짧은 스위치에 의해 얻어진다. 스위치는 아주 높은 대역폭과 아주 낮은 대기시간을 가지고, 수 백의 포트를 가지는 상호접속은 단일 칩에서 쉽게 실행된다.
임의의 실시예에서, 스케일 조정가능한 대기시간이 짧은 스위치는 단일 칩에서 실행된다. 전형적으로 종래의 네트워크는 다중 케이블을 가지고 회로 보드상에 상호접속되어지는 독립 노드의 집합으로써 실행된다. 종래의 실행은 비싸며, 다수의 칩, 회로 보드 및 고속 케이블을 필요로 한다. 종래의 실행은 아주 낮은 메시지 밀도에 대해서도 수 마이크로초에서 수 백 마이크로초인 대기시간를 가진다. 대조적으로, 완전히 로드된 512-포트 스케일 조정가능한 대기시간이 짧은 스위치의 대기시간는 현재의 ASIC 기술을 이용하여 쉽게 20-100 나노초가된다.
상호접속 구조와 스케일 조정가능한 대기시간이 짧은 스위치의 이점은 스케일 조정가능한 대기시간이 짧은 스위치를 이용하는 상호접속 디자인과 종래의 네트워크의 특징으로 비교하는 다음의 표에 기술되어 있다.
종래 네트워크 구현 스케일 조정가능한 대기시간이 짧은 스위치
다중, 스케일 조정가능한 노드는 크고 비싼 시스템에서 생기고 케이블을 이용한 회로 보드에서 상호접속된다. 모든 제어 셀(노드)은 현재의 ASIC 프로세스를 이용하는 통합된 저가의 회로 칩상에 있다.
노드는 다중 입력 터미널을 유지하고(전형적으로 4개 이상의 입력 신호를 수용), 루팅 플래그와 모든 어드레스 비트를 검사하기 위한 로직을 포함하여 복잡하다. 노드는 몇 다스의 게이트보다 적은 간단한 셀이다. 하나의 통합된 회로 칩은 수많은 셀을 유지하고, 임의의 입력에서 임의의 출력으로의 수많은 동시발생 메시지 경로를 제공한다.
노드는 일반적으로 전체 메시지를 보유하는 버퍼를 포함한다. 단지 하나 또는 두개의 메시지 비트는 셀의 역학적 이동 레지스터에 고정된다. 메시지는 항상 이동한다.
노드로 들어오는 다중 메시지는 동일 출구 경로를 얻기 위해 겨룬다. "비지 신호"는 제 2 셀이 충돌하는 것을 방지하기 위해 제 1 셀로부터 제 2 셀로 보내진다.
두 개 이상의 메시지가 동일 경로를 위해 겨룰때, "충돌"은 연속적으로 처리되어 발생한다. 메시지는 출구 경로가 항상 모든 셀을 이용하기 때문에 결코 충돌하지 않는다. 경쟁 셀은 비지 신호를 입수하고 경로의 사용에 응하지 않는다.
노드는, 메시지를 어떻게 조정하는지 결정하기 위한 다른 루팅 플래그와 메시지 어드레스를 검사해야한다. 셀은 루팅을 결정하기 위해 비지 신호에 2 비트의 메시지를 더하여 검사하고, 프로세스는 단일 클럭 주기에서 쉽게 실행된다.
종래 네트워크에서, 충돌은 메시지가 네트워크를 통해 재루트되고 목표에 도달하여 얻어진 모든 진행을 소모하게한다. 충돌은 결코 일어나지 않고, 대신 목표로부터 동일 거리 떨어진 인접 셀로 메시지가 전향될 수 있다.
종래 네트워크에서, 충돌은 전체 메시지가 노드내에서 버퍼되거나 저장되어 진행을 느리게하고, 대기시간를 무시하며, 노드의 로직을 복잡하게 한다. 불과 1 또는 2 비트는 역학적 이동 레지스터 셀에 임시로 고정된다. 메시지는 결코 이동을 멈추지 않는다.
메시지 멀티캐스팅은 일반적으로 유지되지 않는다. 스케일 조정가능한 대기시간이 짧은 스위치의 실시예는 하나에서 전체로, 그리고 하나에서 다수의 메시지 루팅(멀티캐스팅)에 부가하여 하나에서 하나로의 다른 메시지 루팅을 유지한다.
다중 메시지는 네트워크를 통한 웜홀이 아니다. 메시지는 다중 제어 셀에 놓여지고, 항상 페이로드의 헤드와 같은 네트워크를 통한 웜홀은 단부가 칩에 들어가기 전에 칩을 나온다.
완전히 로드된 네트워크의 크기가 수 백 또는 수 천 포트를 증가시킬 때, 효과적인 효율은 0이되고, 대기시간는 수용불가능한 길이로 증가한다. 완전히 로드된 스케일 조정가능한 대기시간이 짧은 스위치의 크기가 무한히 커질 때, 바람직한 실시예의 효율은 40%보다 크고, 대기시간의 배열은 좁게 유지된다.
현행 네트워크 디자인은 동시에 수천의 포트와, 고효율 및 대기시간이 짧은를 유지할 수 없다. 스케일 조정가능한 대기시간이 짧은 스위치는 수천의 포트와, 고효율 및 대기시간이 짧은를 동시에 유지한다.
본 발명은 컴퓨팅 및 통신 시스템용 상호접속 구조에 관한 것으로서, 특히 다중 레벨 상호접속 구조에서 사용되는 스케일 조정가능한 대기시간이 짧은 스위치에 관한 것이다.
신규한 것으로 믿어지는 상술된 실시예의 특징은 첨부된 청구범위에 명확하게 기술되어 있다. 그러나, 작동 방법이나 구조에 대한 본 발명의 실시예는 첨부된 도면과 다음의 설명을 참조함으로써 가장 잘 이해될 수 있을것이다. 다른 도면에서 동일한 참조 번호를 사용하는 것은 이것들이 유사하거나 동일한 것임을 가리킨다.
도 1A는 본 발명의 다수 실시예에 적용할 수 있는 개략적인 형태에서 기본적인 요소를 상호접속하기 위한 구조와 스케일 조정가능한 대기시간이 짧은 스위치의 기본 요소를 나타내는 블럭도.
도 1B는 블럭도중 하나에서 오른쪽으로부터 왼쪽으로의 접속을 나타내는 도.
도 1C는 그룹 멤버인 제어 셀이 얼마나 되는지, 그룹이 어떻게 상호접속되었는지, 데이터가 셀에서 셀로 어떻게 흐르는지, 제어 상호가 어떻게 상호접속되었는지를 나타내는 일반화된 상호접속 실시예의 개략도.
도 1D는 상호접속 구조를 통한 메시지 형태에서 데이터 이동을 위한 일반적인 방법의 개략도.
도 2A, 2B 및 2C는 도 1A에 도시된 스위치를 통해 전송되는 메시지의 레이아웃을 도시하는 개략도로써, 도 2A는 일행의 헤더를 가지는 메시지에 관한 것이고, 도 2B는 일행과 일렬의 헤더를 가지는 메시지에 관한 것이며, 도 2C는 멀티캐스팅을 위한 메시지에 관한 도.
도 3은 데이터 및 비지 신호 접속과 같은 스위치 어레이의 세부 상호접속을 포함하는 스위치 어레이의 상호접속을 도시하는 상호접속 개략도.
도 4는 통신 기술의 단순화된 실시예에서 스위치에 나가고 들어오는 메시지의 제어와 타이밍을 나타내는 입력 신호 타이밍과 출력 신호 타이밍을 도시하는 타이밍 개략도.
도 5A는 스위치로의 3-상태 입력 접속을 도시하는 상호접속 개략도이며, 도 5B는 제어와 데이터 신호가 다른 시간에 발생하기 때문에 데이터(입력)와 제어(출력)를 위한 하나의 핀을 사용하도록 하는 3-상태 타이밍을 사용하는 도 5A에 도시된 스위치에 적용된 제어 타이밍 신호를 도시하는 타이밍도.
도 6A와 도 6C는 각각 8-행 표와 16-행 표이고, 도 6B는 스위치내에 제어 셀을 위치시키기 위한 배치 시퀀스를 발생하기 위한 방법을 나타내는 개략 그래프.
도 7A는 목표 행으로의 다중 경로를 가지는 메시지에서 2진-트리형 루팅 기술을 사용하는 도 1A에 도시된 스위치를 통해 메시지가 어떻게 루트되는지를 도시하는 상호접속 개략도.
도 7B는 메시지가 목표에 도달하는 것과 같이 메시지 폭주를 감소하기 위한 낮은 레벨에서의 증가된 행의 수를 가지는 실시예를 도시하는 개략도.
도 8A는 선결된 목표로의 경로에서 한 레벨로부터 다음의 낮은 레벨로 메시지를 이동하기 위한 기술을 도시하는 개략적인 블럭도.
도 8B는 도 8A에 도시된 기술을 사용하여 낮은 레벨로 이동하기 위한 다른 조건을 가지는 폐쇄된 메시지와 낮은 레벨로 즉시 이동함으로써 다음의 보다 높은 레벨에서 메시지를 차단할 수 있는 낮은 레벨의 메시지를 도시하는 개략 블럭도.
도 9는 낮은 레벨에서의 행에 대한 한 행에서의 메시지 경로의 접속 관계를 도시하고, 상호접속 구조를 통한 연속 실행에서의 동일한 메시지에 의해 차단되어지는 한 메시지가 아주 낮은 확률을 유지하는 도 6B에 도시된 8-행 표에 의해 도시되는 상호접속으로부터 배치 시퀀스의 결과를 강조하는 루팅 상호접속 도.
도 10은 대기시간이 짧은 간단한 논리적인 프로세싱이 발생하도록 스위치의 단부에 메시지가 도달할 때 전체 헤더가 제거되는 결과가 되어 메시지가 스위치를 지날때 메시지 헤더의 길이 단축과 스위치를 지나는 메시지 헤더를 도시하는 개략도.
도 11A는 선입 선출(FIFO) 버퍼를 구성하는 일련의 지연 요소이고, 도 11B는 지연 요소를 구성하는 역학적인 FIFO 구조이며, 도 11C는 광학적 FIFO 구조.
도 12A는 상호접속의 동일한 열에서 다른 레벨의 제어 로직의 상대적인 타이밍을 도시하는 챠트.
도 12B는 동일한 상호접속 레벨에서 다른 열의 제어 로직의 상대적인 타이밍을 도시하는 챠트.
도 13A는 아래로 이동하는 메시지에 대한 제어 셀 상태의 개략도이고, 셀의 상태는 래치에 저장되어 있으며, 논리적 프로세싱에 사용된 지연 요소가 도시되어 있으며, 위로의 레벨, 아래, 좌우로의 상호접속이 도시되어 있다.
도 13B는 오른쪽으로 이동하는 메시지에 대한 제어 셀의 상태를 나타내는 개략도이며, 셀의 상태는 래치에 저장된다.
도 14는 제어 셀을 통해 흐르는 제어 메시지에 필요한 로직의 일반적인 요소의 흐름도이고, 출력은 제어 상태로 설정되어 만약 상기 메시지가 나타난다면 메시지를 아래 또는 오른쪽으로 보낸다.
도 15A는 레벨 0을 넘는 레벨에서 제어 셀의 한 실시예의 로직 게이트를 나타내는 상세도이고, 도 13A와 도 13B에 도시된 것의 완성이며, 도 14의 흐름도에 도시된 절차를 실행한다.
도 15B는 도 2B에 도시된 열 어드레스를 합체하는 메시지에 대해 레벨 0에서 제어 셀의 한 실시예중 로직 게이트를 나타내는 상세도.
도 16A는 제어 셀과 고속 타이밍(인터-레벨 지연이 아닌)을 위한 타이밍 챠트이며 모든 레벨을 위한 모든 프로세싱은 대기시간를 감소함으로써 동일한 클럭 주기에서 발생한다.
도 16B는 동일한 열에 연결된 두 개의 고속 제어 셀의 상세도이며, 고속 "리플-업" 로직이 논의된다.
도 17은 스위치의 완전한 실시예를 구성하는 모든 스위치 어레이에서 모든 제어 셀의 상호접속과 레이아웃을 도시하는 8행 4열의 32-포트 스위치.
도 18A는 플랫-대기시간 제어 셀의 7 상태, 즉 두 개의 위-아래 입력과 출력, 그리고 2열 입력 셀내의 상호접속을 도시하는 도.
도 18B는 플랫-대기시간 제어 셀에 대해 많은 입력치의 조합이 어떻게 어떤 상태에 있는지를 결정하는 것을 나타내는 표이고, 상기 상태는 셀에 들어오는 0, 1, 2, 3 또는 4 메시지의 흐름을 제어한다.
도 18C는 로직 게이트에 설정되도록 18B의 표에 의해 결정된 상태를 이용하고 이에 의해 셀을 통한 메시지를 루트하는 플랫-대기시간 제어 셀의 상세도.
도 18D는 연속 형태에 사용된 플랫-대기시간 제어 셀의 간단한 상징적인 대표도.
도 19는 플랫-대기시간 스위치의 완전한 실시예를 형성하는 16행 4열의 64-포트 플랫-대기시간 스위치의 레이아웃과 완벽한 상호접속을 도시하는 도.
도 20A, 20B 및 20C는 가능한 최대 입력수에 대해 스위치의 입력수를 줄여서 스위치내의 폭주를 감소하고 메시지 밀도를 낮추는 플랫-대기시간 스위치와 단일 경로의 최상 레벨의 대안 실시예를 나타내는 도.
도 21A, 21B 및 21C는 유익한 디자인 요건에 대해 한 레벨 또는 여러 레벨에서 다양한 우-좌 상호접속을 도시하는 도.
도 22A는 도 2A에 도시된 메시지에 대해 대기시간이 짧은 출력 회로의 블럭도이고, 슈퍼컴퓨터에 사용된 것과 같이 가능한 최저 대기시간이고, 도 22B는 도 22A의 소자들의 상세도.
도 23A는 도 2B에 도시된 행과 열 어드레스를 사용하는 스위치 출력의 블럭도이고, 아주 많은 포트를 가지는 ATM 또는 전화 스위치에서처럼 큰 용량의 스위치이고, 도 23B와 도 23C는 도 23A의 소자들의 상세도.
도 24A는 한 입력으로부터 다른 출력으로 메시지를 보내기 위해, 또는 많은 출력으로 또는 모든 출력 포트로 메시지를 방송(멀티캐스팅)하기 위해 도 2C에 도시된 메시지를 사용하는 멀티캐스트 제어 셀의 성분들을 나타내는 도.
도 24B, 도 24C 및 도 24D는 멀티캐스트 메시지가 행을 따라 오른쪽으로 이동할 때, 멀티캐스트 제어 셀의 상태를 나타내는 형태도.
도 25A, 25B 및 도 25C는 다중 차원 토폴로지에서 형성된 다중-칩 스위치를 위한 메시지 헤더 배치를 도시하는 도.
도 26A는 스위치가 다수의 입출력 포트를 가지도록 다중 칩이 어떻게 상호접속되었는지를 도시하는 개략도.
도 26B는 "꼬인 큐브"로 지칭된 스위치 시스템에 상호접속된 도 2D를 상징적으로 나타내는 도.
도 27은 스위치가 다수의 입출력 포트를 가지도록 3차원 형태에서 다중 칩을 어떻게 상호접속하는지를 도시하는 개략도.
도 28은 4-차원 구성내의 상호접속 다중 칩이 매우 많은 수의 입력 및 출력 포트를 가지는 스위치("4D"스위치)를 생성하는 방법을 설명하는 개략도,
도 29A는 대기시간이 짧은 스위치로의 입구를 위해, 초기 크기 절반의 두개의 메시지로 분할되는 방법을 설명하는 도,
도 29B는 2의 요소에 의해 대략적으로 대기시간을 감소하는 마스터-슬레이브를 가진 스위치에서 도 29A의 스플릿트 메시지를 사용하는 스플리트 헤더 스위치의 블록 다이어그램,
도 30A는 전기-광학 스위치에 의해 프로세스되는 광메시지의 배치를 나타내고,
도 30B는 도 30A에서 설명된 메시지를 처리하는 전기-광 제어 셀의 다이어그램,
도 30C는 도 30A에서 설명된 광 메시지에 대한 최상부 또는 입력 제어 셀의 다이어그램,
도 30D는 광 메시지의 처리에서 사용된 광증폭기/재발생기의 상징적인 표현,
도 30E는 도 30B 및 도 30C에서 설명된 제어 셀의 상호 접속과 셀의 파이버 상호접속 배열을 나타내는 완성된 전기-광 스위치의 다이어그램,
도 31은 대기시간의 큰 감소 및 매우 높은 대역폭을 달성하기 위하여 마스터-슬레이브 관계에서의 간략화된 광제어 셀에 접속된 전기 제어 셀로 이루어지는 하이브리드 제어의 다이어그램,
도 32는 도 31에 설명된 제어셀의 두 종류 및 그들의 상호접속을 사용하는 하이브리드 전기-광학 스위치의 일부의 다이어그램이다.
다른 도면에서의 동일한 참조 부호의 사용은 유사하거나 동일한 항목을 지시한다.
본 발명을 수행하기 위한 모드
고-대역폭 통신 및 컴퓨터 네트워크 애플리케이션을 위한 스케일 조정가능하고, 대기시간이 짧은 스위치에는 많은 종류의 기능과 광범위한 용량 및 성능 특성을 실행하기 위한 많은 선택적인 구성이 있다. 제1 실시예는 2 설계 법칙의 전원에서 얻어진 스위치를 설명하고, 메시지 웜홀링(wormholing)을 지원하고, 싱글 메시지 길이, 점대점 메시지 전송만을 취급하고, 레벨당 행의 고정된 수를 가지고, 플랫(flat) 대기시간 분배를 위한 최적화되지 않는다. 스위치(100)의 제1 실시예의 설명은 요구되는 첨가적인 기능 및 특징이 만들어지는 기초를 형성한다. 첨가적인 기능 및 특징은 일반적으로 멀티캐스트(일대다수) 전송 능력, 가변 길이 메시지 스위칭, 짧은 대기시간 전송, 멀티-칩 구현 및 광스위치 구조의 제어를 포함한다. 상호접속 구성의 다양한 실시예는 리드(Reed), 미국 특허 번호 제08/505,513호에 상세하게 논의될 것이다.
도 1A을 참고하면, 스케일조정가능한 짧은 대기시간 스위치(100)의 실시예에는 여러 열(160,162,164) 및 여러 레벨(130,132,134,136)에 배열되는 시리얼 데이터 전송장치의 여러 행을 포함한다. 상기 레벨은 데이터 버스(122)와 제어 버스(124)의 구성에 의해 각각의 열에서 상호접속된다. L+1 레벨은 레벨 0(130), 레벨 1(132)로 레벨 L(136)을 통해 계산된다. 레벨은 다수 행 R(170)을 포함한다. 상기 행는 스위치 어레이(120)의 결과를 상호접속하는 시리얼 데이터 전송(126) 및 각각의 레벨의 각 행을 따라 위치되는 선택적인 선입선출(FIFO) 시리얼 지연 소자(114)를 실행한다.
메시지의 형태에 있어서 시리얼 데이터가 데이터 입력 버스(102)를 통하여 스위치(100)로 들어오지 않고 또는 많은 열에서 들어온다. 데이터 입력 버스(102)는 다수의 시리얼 데이터 입력 포트(104)를 포함한다. 시리얼 데이터 는 각 열에서 데이터 출력 라인(158)에 의해 스위치(100)에서 빠져 나온다. 데이터 버스는 다수의 시리얼 데이터 출력 포트(154)를 포함한다. 또한 도 2a에 관하여, 입력 포트(104)에서 들어오는 메시지(200)는 메시지 헤더에 특정화된 출력 포트(154)에서 유리하게 빠져나온다. 스위치(100)의 반도체 칩 구현을 구성하는 한 실시예에서, 입력 포트(104)는 입력 핀 접속을 포함하고, 출력 포트(154)는 칩상에 출력 핀 접속을 포함한다. 또다른 실시예에서 고속 동작을 위해 설계된 다수의 핀은 단 입력 포트 또는 출력 포트 접속에 사용된다. 복합 칩은 크고, 고속이고 매우 하위 대기시간을 가지는 스위치를 생산하기 위하여 평행으로 동작한다. 매우 큰 수의 I/O 포트를 위해 설계된 또다른 실시예에서는 다수의 특별하게 상호접속된 칩은 스위치(100)의 한가지 구현을 구성한다.
스위치(100)의 한 실시예에서, K 열은 0, 1,...,K-1,로 열거되고, R170 시리얼 데이터 전송 라인을 포함하는 각각은 K 입력 포트(104)의 R배까지 접속되고 K 출력 포트(154)의 R배가지 접속된다. 데이터 라인의 수(R)는 대개 스위치(100)의 레벨의 수가 L+1인 2L과 같거나 작다. 스위치(100)의 한 실시예에서, R170은 2L과 같고, K는 대개 뒤에 논의될 유리한 최소 메시지-블록킹을 달성하기 위해 짝수이다. 스위치(100)의 한 실시예에서는 더 하위 레벨 j에서 행 170의 수는 그위의 레벨 j+1에서 행 수보다 더 크고, 이 실시예에서 R 170은 바닥 레벨에서 행의 수에 관련한다. 표 1은 K와 L의 바람직한 값의 넓은 범위에 대한 스위치(100)의 크기의 예를 나타낸다. 스위치(100)의 한 실시예에서 어드레시블(adressable) 포트의 수는 행의 수와 동일하고, 열은 포트에 대한 대역폭에서의 실질적인 증가를 유리하게 제공한다.
레벨(L+1) 열(K) 행(2L) 포트(행*K)
4 4 8 32
4 6 8 48
5 8 16 128
6 8 32 256
6 10 32 320
7 12 64 768
8 16 128 2,048
9 16 256 4,096
11 28 1,024 28,672
15 24 16,384 393,216
19 32 262,144 8,388,608
21 36 1,048,576 37,748,736
도 1a에 관하여, 열(160,162,164)과 관련된 각각의 다수의 열 타이밍-컨트롤 라인(108)은 외부 장치로부터 데이터를 수신하기 위해 준비되는 각각의 열을 신호한다. 각 열에서 사용할 수 있는 포트 라인(106)의 다수는 열 타이밍 제어 라인(108)와 관련되고, 데이터를 수신하기 위해 사용가능한 대응하는 시리얼 입력 포트(104)를 신호한다. 구조체(116)를 나타낸 한 실시예에서, 다수의 버퍼(112)는 시리얼 메시지를 받아들이고 그것을 최상 레벨 L(136)에서 스위치 어레이(120)로 결과적인 주입을 위해 저장한다. 선입력 버퍼(112)와 관련된 선택적인 입력 구성(116)은 스위치(100)으로 메시지(200)의 출입의 타이밍을 제어하고, 결과적인 버퍼링과 스위치(100)의 최상 레벨(136)에서 스위치 어레이(120)로 시리얼 메시지의 주입을 제어한다. 스위치(100)의 또다른 실시예에서, 구조체(116)는 생략되고 데이터는 입력(104)에서 스위치 어레이(120)까지 즉시 이동한다.
각각의 열에서 다수의 출력 제어 라인(156)은 외부 장치로부터 장치 준비 신호를 받아들인다. 상기 신호는 외부 장치가 대응하는 시리얼 출력 포트(154)로부터 메시지(200)을 받아들이기 위한 준비가 되었다는 것을 지시한다. 출력 구조(180)에 나타낸 한 실시예에서, 다수의 출력 버퍼(152)는 그것이 스위치(100)를 통해 루트된 후 메시지를 저장한다. 스위치(100)의 또다른 실시예에서, 구성(180)은 생략된다. 이 실시예에 있어서 바닥 레벨에서 스위치 어레이(120)는 출력 포트(154)에 직접 접속된다. 첨가적으로, 출력 제어 라인(156)은 바닥 레벨에서 스위치 어레이(120)에 유사하게 접속된다.
시리얼 데이터의 형태에서의 메시지는 스위치 어레이(120)로 입력(104)로부터 가장 위의 레벨(136)에 들어온다. 한 구현에서, 메시지는 다음 스위치 어레이로 오른쪽으로 이동한다. 다음 스위치 어레이는 만일 메시지가 다음의 하위 레벨(134)에 아래로 보내지는것을 또는 만일 그것이 동일한 레벨(136)에서 오른쪽으로 보내지고 남아있는지를 결정한다. 메시지는 그것이 다음 열에서 상기 스위치 어레이(120)에 오른쪽으로 이동한 후 다음 하위 레벨에 아래로 이동하기 위한 기호를 가지는 동일한 레벨에 남게 된다. 다음 하위 레벨(134)에 아래로 떨어지는 메시지는 동일한 레벨(134)에서 다음 스위치 어레이(120)에 즉시 오른쪽으로 이동하는 그 레벨에서 스위치 어레이에 들어온다. 위의 레벨에서 스위치 어레이(120)에 들어오는 메시지는 항상 오른쪽에 스위치 어레이를 빠져 나온다. 왼쪽에서 스위치 어레이(120)에 들어오는 메시지는 오른쪽 또는 아래로 어레이를 빠져 나온다.
만일 위의 레벨에서의 메시지가 가장 오른쪽 열(164)에 들어오거나 또는 만일 왼쪽에서의 메시지가 가장 오른쪽 열에 도달한다면, 메시지는 선택적인 시리얼 FIFO 지연 장치(114)에 들어온다. FIFO를 빠져 나간후, 메시지는 행 출구 포인트(172)에 운반된다. 한 실시예에서, 출구 포인트(172)는 입력 포트(104)에 접속하고, 또다른 실시예에서, 포인트는 동일한 레벨에서 동일한 행상에 행 출입 포인트(174)에 내부적으로 접속하고, 또는 또다른 칩상에 동일한 레벨에서 포인트(174)에 외부적으로 접속된다. 특별한 레벨에서 남아있는 메시지는 그것이 오른쪽으로 이동하고 다음 열에서 스위치 어레이(120)에 들어오는 다음 하위 레벨 각 시간에 아래로 떨어지기 위한 기회를 가질 수 있다. 한 실시예에서, FIFO,(144)는 길이가 고정되고, 또다른 실시예에서, FIFO는 효율적인 가변-길이 메시지 프로세싱을 할 수 있는 가변 길이이고 또다른 실시예에서는 FIFO는 함께 생략되었다. FIFO의 구성 및 기능은 후에 상세하게 논의되어진다.
스위치(100)에 들어오는 메시지(200)의 타이밍은 메시지의 처음 조각이 타이밍 제어 구성(142)에 의해 결정되는 시간에서 스위치에 들어오는 것과 같은 포트-비지 신호(106)에 관련하여 열 준비 신호에 의해 규제된다. 구성은 클럭 신호(140)와 메시지 길이 제어 신호(144)에 의해 외부적으로 제어된다. 모든 메시지는 동일한 시간에 들어오는 동일한 열에서 입력 포트(104)에 들어온다. 그 열의 오른쪽에 열에 들어오는 메시지는 만일 메시지가 다른 열에서 레벨에 들어온다해도 동일한 레벨상에 모든 메시지의 헤더 비트가 배열되는 것과 같이 약간 후의 시간에 들어온다. 반대로, 메시지는 리드에서 논의되는 미국 특허 출원 시리얼 번호 제 08/505,513호의 MLML 네트워크에서 동일한 시간에서 모든 열에서 들어온다. 스위치(100)의 실시예에서, 메시지 "웜홀링(wormholing)"으로 기술되는 루팅 기술에서의 전체 메시지의 모든 비트보다 단지 하나 또는 두 비트가 열 사이에서 확장된다. 소정의 레벨에서 스위치 어레이(120)에 들어오는 메시지의 인터 열 타이밍은 다른 레벨에서 동일한 열에서 또다른 스위치 어레이에 들어오는 메시지의 타이밍과 다르다. 이 실시예에서 인터 레벨 타이밍은 지연 소자(146)에 의해 통제된다. 또다른 실시예에서, 전체적인 클럭 타이밍은 많은 또는 모든 레벨에 대해 동일하고 지연 소자(146)는 생략된다.
한 레벨에서 접속
도 1a와 관련하는 도 1b에 관하여, 한 레벨에서 오른쪽에서 왼쪽까지의 행(182)의 접속을 나타낸다. 오른손 출구 포인트(172)는 동일한 레벨에서 행 입력 포인트(174)에 왼쪽에 되돌려 접속된다. 몇 가지 실시예에서, 치환(166)은 동일한 레벨의 좌측에서 다른 행에 루트되는 우측에서 빠져나오는 메시지에서 활용되어질 수 있다. 다른 실시예에서 우측에서 접속은 동일한 행에 접속된다. 도 21a, 21b, 및 21c는 또한 좌측 및 우측 지점을 접속하는 방법을 변경하는 것을 나타낸다.
일반적 실시예
도 1C는 스위치(100)의 일반적인 다이어그램이다. 이 도면에서 제어셀과 제어 셀 사이의 상호접속과 같은 많은 성분은 명확함을 위해 생략되었다. (이 도면에서 "왼쪽" 및 "오른쪽" 용어는 입력 경로와 출력 경로에 관련되고, 각각 동일한 레벨에서 셀에 접속된다.) 제어셀(186)은 동일한 레벨에서 하나 또는 그 이상의 셀의 그룹의 부재이다. 그룹(192)는 하나 또는 그 이상의 데이터 루프(184)를 포함한다. 도 1c에서 상부 레벨은 레벨을 지시하는 제 1 파라메터(2)와 그 레벨에서 특정한 그룹을 지시하는 제 2 파라메터(1)가 있는 한 그룹G(2,1)을 지시한다. 그룹 G(1,1)내에 셀B(186)은 연속적인 데이터 루프(184)를 형성하는 다른 셀들에 접속된다. 루프(184)를 통해 순환하는 메시지의 형태에서의 데이터는 셀 A, B, C, D, E 및 그외의 것을 통해 이동한다. 메시지 길이가 긴 어떤 실시예에서는, FIFO는 데이터 루프(184)에 포함된다. 데이터 루프를 순환하는 메시지는 G(2, 1)에서 G(1,1)까지 또는 G(1,2)까지와 같이 하위 레벨에서 접속된 그룹에 셀 아래로 이동하기 위해 기회를 가진다. 어떤 실시예에서, 두 그룹은 복합 "이진 트리" 형 접속 경로의 집합으로 구성된 각각의 그룹 아래로 접속된다. 셀 B (186)에 들어오는 메시지는 그룹 G(1, 1)로 레벨 1에 아래(188)로 떨어뜨리기 위한 기회를 가진다. 다음 셀에서의 메시지는, 이 예에서의 셀 C, 목표(154)의 다른 집합에 메시지를 접속하는 또하나의 그룹 G(1, 2)에 떨어뜨리기 위한 기회를 가진다. 어떤 실시예에서 메시지는 더 하위 레벨에서 그룹에 떨어뜨리기 위한 기회를 가지기 전에 한 그룹에서 두 셀이상을 통해 이동하지 말아야 한다.
셀(186)에 들어오는 메시지는 셀(J)이 메시지 목표(N)(154)와 셀(B)와 접속하는 경로상에 위치하기 때문에 하위 레벨에서 셀(J)에 상호접속(188)상에 아래로 우선적으로 이동할 수도 있다. 셀(L)(하위 레벨에서)은 또한 셀(J)에 접속된다. 만일 메시지가 셀(L)에서 셀(J)까지 이동한다면, 하위 레벨에서 셀(L)은 우선권을 가진다. 우선권은 셀(L)이 비지 신호(190)을 아래로 메시지를 보내지 않기 위한 유익한 셀(B)에 보내므로써 신호된다. 어떤 실시예에서, 아래 경로(188)상에 스위치(194)는 또한 어떤 메시지가 신호된 셀에서 하위 레벨에서 나누어진 경로상에 메시지와 충돌하는 것을 방지하는 비지 신호(190)에 의해 활성된다. 스위치(194)는 외부 장치가 (104)에서 입력과 같이 비지 신호(190)를 받아들이지 않을 때 충돌을 유익하게 방지한다.
모든 셀은 셀의 그룹에서 또다른 셀(또는 FIFO)에 출구 경로(196)를 가지고, 모든 셀은 공통 경로를 나누는 다른 셀에 비지 신호 접속(190)을 가진다. 만일 다른 이유에서 셀이 메시지 아래로 보내지 않는다면, 셀은 동일한 레벨에서 동일한 그룹(192)에 또하나의 셀에 상호접속(196)상에 메시지를 보낸다. 비지 신호(190)의 상당한 이점은 셀 그룹에서 또다른 셀로부터 들어오는 메시지에 항상 사용가능한 출구 경로(196)라는 점이다. 레벨에 남아있는 메시지는 메시지 목표를 향하여 이동하는 달성되는 아래로의 과정을 잃지 않는다. 메시지는 즉시 메시지 목표에 경로상에 있는 하위 그룹에 접속되는 동일한 그룹에 있는 다른 셀을 카운트한다. 셀(A)에 들어오고 셀(N)에서 나가는 메시지의 경로는 도 1c에서의 두꺼운 선으로 나타낸다.
도 1A의 설명은 입력에서 다른 출력(154)까지 존재하는 많은 경로를 나타낸다.
방법의 개요
도 1D는 스위치(100)을 통한 루팅 메시지의 방법을 나타내는 개요 다이어그램이다. 도 1A, 1C 및 2A에 관하여, 일반적으로, 메시지는 상부 레벨에서 상호접속(100)에 들어오고 아래와 바닥 레벨에서 메시지 목표 행에 루트되는 메시지가 있는 오른쪽으로 이동한다. 목표 행 어드레스는 메시지 헤더에서 엔코드된다. 바람직한 실시예에서, 목표 어드레스의 가장 중요한 비트는 처음에 나타나고 최소 중요한 비트는 마지막에 나타난다. 페이로드는 헤더를 따른다(도 2A 및 2B에서 논의된).
메시지는 하나의 제어셀에서 다른 셀을 통과함으로써 스위치(100)를 통해 이동한다. 스위치(100)의 구성은 메시지가 어떻게 제어되는가에 깊게 관련되고, 아래에 상세하게 논의된다. 제어 셀은 매 열 및 레벨의 교차점, 따라서 매 제어 어레이에서 매 행상에 위치된다. 모든 처리는 단순한 제어 셀내세서 수행된다. 사용되는 첨가적인 메시지-루팅 성분은 없다. 제어 셀은 실시예에서 이동 기록의 형태로 저장의 단 하나 또는 두 비트만을 포함한다. 유익하게, 메시지의 둘 이상의 비트는 논리 필요물을 감소하고 셀을 통한 메시지의 전송을 속도를 더하는 제어셀내에 포함되지 않는다. 제어 셀이 메시지를 보내는 곳을 결정하자마자 셀은 내부 게이트를 마련하고 목표 아래를 향하여 메시지를 경로설정 하거나 또는 동일한 그룹에서의 셀에 오른쪽을 향하여 결로설정을 한다. 메시지는 일반적으로 웜홀링으로 표현되는 처리에서의 상호접속을 통한 셀에서 셀까지의 메시지 진행의 비트로써 복합 제어 셀을 채운다.
제어 셀은 항상 오른쪽(196)에 항상 사용가능한 출구를 가지는 왼쪽으로부터 제어셀에 들어오는 메시지를 안전하게 하는 사용가능한 출구 경로를 가진다. 바람직하게, 메시지는 유익하게 제어 셀을 통해 전송(대기시간)의 시간을 감소하는 제어 셀에서 결코 완충되지 않고 또는 유지된다. 셀은 바람직하게 소수의 헤더 비트와 메시지를 루트하는 곳에 결정하기 위한 제어 셀 근처에 하나 또는 그 이상으로부터의 비지 신호(190)만을 검사한다. 결정은 하나의 클럭 주기에서 쉽게 수행된다. 만일 제어 셀이 메시지 목표에 접속하는 경로상에 그룹에 접속 아래(188)를 가지고 접속이 사용가능하다면, 메시지는 목표 근처에 메시지를 움직이는 아래로 보내진다. 그렇지않으면, 메시지는 반복되는 처리가 있는 또 다른 제어셀에 오른쪽(196)에 항상 사용가능한 경로상에 보내진다.
메시지가 비트 아래로 보내질 때 유익하게 헤더의 길이를 줄이고 메시지의 방향을 결정하기 위한 읽어야 하는 다음 셀의 비트 수를 줄이는 가장 중요한 어드레스 비트는 노출된다. 다음 셀은 유익하게 적당한 헤더 비트의 결과적으로 도착하는 다른 어드레스 비트가 없기때문에 즉시 적당한 헤더 비트에 액세스를 가진다. 노출된 헤더 비트는 상호접속을 통해 메시지 경로의 현재부를 결정하기 위해 이미 사용되고 더이상 필요가 없기 때문에 가장 중요한 비트를 노출하는 것은 유익하다.
메시지가 동일한 그룹에서 셀에 보내질 때, 메시지는 메시지 목표를 향하여 상호접속 구성의 진행에 도달되는 처리를 잃지 않는다. 오른쪽에 다음 셀은 메시지가 목표를 향하여 보내지도록 시도된다. 오른쪽으로 보내진 메시지는 바람직하게 지연된 하나 또는 두 클럭 주기이다. 상호접속의 오른손측에 도달하는 메시지는 도 1C의 설명에서 논의되는 바와 같이 동일한 레벨상에 왼쪽에서 셀에 거슬러 루트된다.
제어셀은 메시지 헤더의 약간의 비트와 메시지를 루트하는 방법을 결정하기 위한 또하나의 제어셀로부터의 신호만을 모니터한다. 결정은 하나의 클럭 주기내에서 실행된다. 아래로 이동하는 메시지는 보내는 셀의 내부 이동 기록을 통과하는 아래의 셀에 직접 접속된다. 페이로드는 하나의 클럭 주기 이하로 지연된다. 제어 셀은 복합 경로 아래를 가지는 실시예에서(나타내지 않은), 막히지않은 메시지는 항상 메시지 목표를 향한 접속을 가진다. 다중 경로 실시예에서, 스위치(100)를 빠져 나가기 위한 메시지의 첫 비트에 대한 경과 시간은 상호접속을 통한 메시지의 전송으로 일어나는 결함의 수의 헤더 비트마다의 하나 또는 두 배를 더한 한 클럭 주기이다. 페이로드의 끝 앞에 바람직하게 빠져나가는 페이로드의 제 1 비트와 같은 스위치(100)을 통한 메시지 웜홀은 스위치에 들어온다. 메시지는 전형적으로 12개보다 적은 결함을 가지는 천개의 행 하나에 도달한다. 페이로드의 제 1 비트는 15 또는 20 클럭 주기보다 적은 1000 포트 스위치에 유익하게 존재한다.
메시지 배치
도 2A를 참고하면, 스위치(100)에 들어오는 시리얼 메시지는 값 ONE, 스위치의 바닥 레벨에서 목표 행와 동일화하는 행 헤더(204) 및 시리얼 데이터 비트(206)으로 구성된 페이로드를 항상 가지는 트래픽 비트(202)를 포함한다. 행 헤더(204)는 목표 행 어드레스의 가장 중요한 비트(MSB)(208)는 처음을 나타내고 최소의 중요한 비트(LSB)(210)는 마지막에 나타나는 것과 같은 방법인 바닥 레벨 목표 행의 이진 엔코딩이다. 페이로드(206)은 입력 포트(104)에서 출력 포트(154) 또는 출력 포트의 그룹까지 스위치(100)내에 전달되게 요구되는 데이터 패킷을 포함한다. 스위치(100)의 어떤 실시예에서 페이로드(206)은 역학적인 타이밍 구성(142)에 의해 제어되는 가변 길이가 될 수 있다.
도 2B를 참고하면, 스위치(100)의 또하나의 실시예에서, 바닥 레벨 목표 행는 상기 설명한 바와 같은 행 헤더에 의해 결정되고, 목표 열은 열 헤더(212)에 의해 결정된다. 열 헤더는 컬럼 수의 이진 엔코딩을 포함한다. 이 실시예에서, 제 1 헤더(204)는 도 2A에 설명된 방법으로 목표 행를 결정하고, 제 2 헤더(212)는 목표 열을 특정화한다. 이 실시예에서 메시지는 그것이 목표 열에 도달할때까지 바닥 레벨에서 순환할 수 있다. 이 변경적인 실시예에서 메시지는 후에 논의될 제 1의 사용가능한 버퍼(152)에 즉시 이동한다. 메시지(200)의 전체 길이(214)는 트래픽 비트(202), 헤더(204,212)의 헤더 및 페이로드(206)을 포함한다.
도 2C 를 참고하면, 스위치(100)의 또다른 실시예에서는 점 대 다점 방송을 지원하고, 멀티캐스트 비트(220)은 메시지(230)가 한 출력 포트(154)에 전송되는지 또는 많은 출력 포트에 전송되는지, 또는 모든 출력 포트에 전송되는지를 지시한다. 멀티캐스트 비트(220)가 0에 설정되었을 때, 메시지는 정확하게 한 출력 포트로 목표되고 메시지에서의 연속적인 비트는 행 헤더(204), 선택적인 열 헤더(212) 및 페이로트(206), 즉 도 2A 및 도 2B에 설명된 바와 같은 동일한 정의로 다루어진다. 멀티캐스트 비트(220)가 1일 때, 다음 두 비트 위치는 "상위 반"(224) 및 "하위 반"(226) 마커(marker)로써 사용되었다, 즉 그것은 스위치를 통해 이동하는 것처럼 메시지의 지위를 나타내는 한 비트 기록기 한 쌍으로 활용된다. 남아있는 비트는 열 비트마스크(228)을 구성한다. 멀티캐스트의 프로세싱은 뒤에 상세하게 논의된다. 스위치(100)의 또다른 실시예에서, 멀티캐스트 메시지는 행 출입 포인트(174)를 사용하는 레벨에 특정한 행에서의 스위치에 들어온다. 이 메시지는 바닥 레벨 행의 특정한 부분집합에 목표된다.
도 2A, 2B 및 2C는입력 포트(104) 또는 행 출입 지점(174)에서 스위치(100)에 들어오는 메시지 배치를 설명하고 있다. 메시지는 길이에서 변화될 수 있고 스위치를 통한 과정에서와 같이 다른 특성도 변화될 수 있다. 그것은 도 2A, 2B 및 2C에 설명된 바와 같은 메시지를 특성 어셈블에 입력 포트(104)에 접속된 외부 장치의 역할이다.
스위칭 어레이 배치
도 1과 관련하여 도 3에 관하여, 스위치 어레이(120)는 각각의 R 제어 셀(300)을 포함한다. 스위치 어레이(120)은 스위치(100)의 각각의 열과 레벨의 교차점에서 위치된다. 스위치(100)의 한 실시예에서, 매 스위치 어레이(120)은 수직 데이터 라인(316)상에 정확하게 하나의 제어 셀과 수평 행(360)상에 정확하게 하나의 제어셀을 포함한다. 어떤 스위치 어레이에서는 제어셀은 "동일한 배열"에서 배치되는데 즉 수평 좌표처럼 동일한 스위치 어레이에서의 수직 위치가 있는 왼쪽 아래에서 오른쪽 위까지 대각선을 따라 배치된다. 동일한 배열은 스위치 어레이(340)에서처럼 나타낸다. 다른 스위치 어레이 설계에서는, 제어셀은 스위치 어레이(342)에 나타낸 바와 같은 다른 배열로 배치된다. 소정의 스위치 어레이에서의 제어셀의 특별한 배치는 스위치(100)의 적당한 동작에 결정적이고 후에 상세하게 설명된다. 스위치(100)의 또다른 실시예에서는 매 두 행(360)(나타내지 않은)에 대한 하나의 제어셀이 있다.
스위치(100)의 한 실시예에서, 각각의 레벨(130)에서 (136)은 0 306에서 R-1 308까지의 바닥에서 위까지 번호가 매겨지는 R 시리얼 데이터 행(126)을 포함한다. 각각의 열(160)에서 (164)는 위의 레벨에서 R 시리얼 데이터 라인(122)과 아래쪽 레벨에서 R 제어(비지 신호)라인을 포함한다. 열 0과 레벨 L에서 스위치 어레이(120)는 행 1상에 위치된 제어셀(300)을 포함한다. 셀(1,0,L)의 위치는 제어셀 각각의 행, 열 및 레벨 수에 의해 주어진다. 그러므로, 입력 포트(318)는 접속되는 제어셀의 행 수에 맞추기 위해 1로 매겨진다.
단순하게, 출력 포트(320)은 포트가 위치(2,0,0)에서 제어셀(322)에 행(2)상에 접속되기 때문에 2로 매겨진다. 입력 포트(330)은 포트가 위치(0,K-1,L)에서 제어셀(324)에 행(2)상에 접속되기 때문에 0으로 매겨진다. 출력 포트(344)은 포트가 위치(1,K-1,0)에서 제어셀(328)에 행(2)상에 접속되기 때문에 1로 매겨진다.
경로(316)는 다음 하위 레벨에서 스위치 어레이내에서 제어셀에 아래로 메시지를 전송하기 위한 시리얼 통신 라인이다. 상기 경로는 데이터 버스(120)의 부재이다. 경로(360)는 동일한 레벨에서 다음 열에 메시지 오른쪽을 전송하기 위한 시리얼 통신 라인이고 데이터 버스(126)의 부재이다. 경로(330)는 하위 레벨에서의 비지 신호이고 버스(124)의 부재이다.
어떤 실시예에서, 스위치(100)는 수퍼컴퓨터의 멀티프로세서를 상호접속하기 위한 내부 네트워크로써 배치된다. 배치에 있어서, 장치(350)는 프로세서의 하나이다. 스위치(100)의 또다른 실시예에서는 장치(350)는 구현이 ATM 스위치를 위한 스위칭 구조에서처럼 기능하는 경우의 ATM 스위치내에서와 같은 스위칭 네트워크의 한 입력 포트에서의 접속을 표현한다.
도 3에서 스위치(100)에 외부 장치(350)의 접속이 설명된다. 외부 장치(350)의 위치는 열 0 160에서 행 2이다. 외부 장치(358)는 다른 열(164)에서 접속되고 다른 열 준비 신호를 수신한다. 단순하게(나타내지 않은), 외부 장치(350)는 출력 포트(372), 포트의 비지 신호(374) 및 열 출력 준비 신호(168)에 접속한다. 외부장치(350)의 출력 어드레스는 입력 어드레스와 동일한 행 2, 열 0이다. 스위치(100)의 입력 포트(104)는 레벨 L 136에서 위치되고, 출력 포트(154)는 레벨 0(130)에서 위치되고, 또는 스위치(100)에서의 스위치의 가장 하위 레벨 0은 생략한다. 메시지(200)가 스위치(100)를 통한 전송이 완료될 때, 사용할 수 있는 메시지의 출입 행 및 열의 연속된 지시는 없다. 만일 적용 또는 스위치(100)가 목표 수령에 사용할 수 있는 "소스 어드레스"를 특정한다면, 소스 어드레스 또는 동일 확인은 메시지의 페이로드(206)내에 포함되어진다.
도 3은 접속 패턴을 설명하기 위한 스패어스크(sparsc) 형태로 확산된 제어셀을 나타낸다. 설계 및 넘버링 구성은 또한 결과적인 설명을 단순화하기 위해 사용되었다. 집적회로 칩 구현에서 제어셀은 도면에서 나타낸 것보다 더 단단하게 논리 게이트를 싸기 위한 방법에서 실리콘상에 배열된다.
입/출 및 제어 타이밍
스위치(100)에 입력 인터페이스는 열 포트에 츨입을 지배하는 열 타이밍 및 제어 신호에 의해 수행된다. 도 4는 들어오는 메시지(402)와 나가는 메시지(420)의 타이밍을 나타내고, 제어 및 열-준비 신호는 그것을 제어한다. 또한 도 1a, 2a 및 3에 관하여,메시지(200)는입력 포트(104)에 스위치(100)의 한 실시예에 들어오고 메시지는 출력 포트(154)에서 스위치를 빠져나온다. 메시지의 출입의 타이밍은 열-준비 신호(108)에 의해 제어된다. 메시지의 제 1 비트(202)는 열-준비 신호(108)이 활동한 후 대개 한 주기를 포트(104)에 들어온다. 만일 입력 포트(104)와 관련된 부분-비지 신호(304)가 높게 된다면 메시지(200)는 입력 포트로 들어가는 것을 금지시킨다. 열-준비 신호(108)는 특정 열(102)에서 위치된 모든 입력 포트를 제어하는 반면, 부분-비지 신호(304)는 한가지의 입력 포트(104)만을 관계한다. 외부 장치(350)는 만일 입력 포트(104)가 메시지를 받아들일 수 있는지를 결정하기 위하여 열-준비 신호(108)와 포트-비지 신호(304)를 검사하여야 한다.
열-준비(408)와 포트-비지(304)의 신호의 타이밍은 대개 스위치에 들어오는 제1 비트(202)의 타이밍(410)의 한 클럭 주기(430)앞에 있다. 입력 버퍼링 구조(116)가 통합된 스위치(100)의 실시예에서 제 1 메시지 비트(202)의 상대적인 타이밍(410)은 신호(408)를 타이밍한 후 한 클럭 주기보다 더 크게 될 수 있다. 이 실시예는 타이밍 필요사항을 좋게 줄여준다.
스위치를 떠나는 메시지(420)의 제1 비트(202)는 열 준비(156) 후에 시간(428)에서 1시간 주기로 출력 포트(154)에 도달한다. 열-출력 준비 신호(156)에 의해 외부에서 신호가 보내진 초기 시간(426)에서 스위치는 외부 장치가 메시지를 수용하지 않는 것을 표시하는 외부 장치로부터 출력 장치-비지 신호를 수용할 수 있다. 예를 들면, 외부 장치는 버퍼일 수 있다. 외부적으로 차단된 메시지가 빠져나가는 것을 시도할 때 메시지는 스위치내에 잔류하여 늦은 시간에서 빠져나가는 것을 시도한다.
출력 제어 구조(180)를 조합한 스위치(100)의 실시예에 있어서는 열-출력 준비 신호(156)의 타이밍과 메시지(420)의 첫번째 비트의 도달은 도 4에 나타낸 바와 같이 지연되어 있다. 이들 실시예에 있어서, 주기 "426" 및 "428" 사이의 시간은 외부에 접속된 장치의 타이밍 요구를 쉽게 하는 이점을 중가시킨다. 스위치(100)의 다른 실시예에 있어서는 외부 비지 신호(376)는 생략되어 있으며, 메시지는 목표 포트에 도달할 때 스위치를 항상 빠져나간다.
3-상태 I/O 및 타이밍
도 3을 참조하면, 스위치(100)의 일실시예에 있어서, 각 입력 접속부는 외부 장치(350)로부터의 메시지 입력 접속부(104) 및 외부장치로의 포트-비지 신호(304)와 접속되어 있다. 이 실시예에 있어서, 2개의 외부 접속부 또는 핀이 각 입력 포트 접속부에 대에 요구된다. 유사하게, 동일한 실시예에 있어서, 2개의 외부 접속부(372, 374)가 출력 접속부에 요구된다. 도 4 및 도 5B를 참조하면, 시간(408)에서의 포트 준비 신호(304) 방출은 시간(410)에서의 메시지(200)의 첫번째 비트(202)의 도입에 앞서서 1시간 주기(430)를 발생시킨다. 비중첩 타이밍 조건 때문에, 신호 3-상태 접속부(504)는 양쪽 신호를 수용한다. 외부 접속부(504)는 시간(408)에서의 출력 포트-비지 신호를 3-상태 입력 구조(502)에 의해 조정되며 입력을 위해 메시지(200)를 연속적으로 수용한다. 즉, 시간(408)에서 3-상태 입력 구조(502)는 타이밍 신호선(108)으로부터의 열 준비 신호(404)를 수신한다. 시간(404)에서 외부 접속부(504)는 1시간 주기(512)를 위해 포트-비지 신호(304)에 접속되어 있다. 시간(470)에서 외부 접속부(504)는 타이밍 신호(408)가 다시 수신(514)될 때까지 입력 포트(104)에 접속되어 있다. 3-상태 입력 접속부는 입력 포트(104)와 포트-비지 접속부(304)를 교대시켜 단일 핀을 구비한 2개의 외부 접속부를 유효하게 교대시킬 수 있다.
유사하게, 3-상태 출력 구조(도시되지 않음)가 외부 포트(372)와 외부 포트 비지 신호(374)를 위한 단일 외부 접속부를 제공한다. 3-상태 출력은 2의 팩터에 의해 다수의 출력 핀을 유효하게 감소시킨다. 스위치(100)의 바람직한 실시예에 있어서, 모든 외부 입력 및 출력 접속부는 3-상태 I/O를 사용한다. 3-상태 제어(504)은 어떠한 후속 논의에서도 언급되지 않으며, 그 대신에 포트(104,174)가 이해를 위해 I/O 포트로써 언급되며, 3-상태 I/O는 선택적으로 사용가능하다.
시퀀스 배치 방법
스위치 어레이(120)내의 제어 셀(300)의 배치는 스위치(100)의 훌륭한 작동과 실행을 달성하는 높은 이점을 달성하는 메시지 흐름의 치환(후술함)을 달성한다. 도 3을 참조하면, 주어진 레벨과 열에서 스위치내의 제어 셀(300)의 배치는 배치 시퀀스에 의해 결정된다. 시퀀스 배치는 주어진 행(360)에 따른 연속 셀이 상부 및 하부 위치 행을 지난 다음 레벨 하류(도시되지 않음)로 선택적으로 위치되는 규칙에 따라 발생된다. 즉, 시퀀스 배치는 상부, 하부, 상부, 하부등의 순서로 배치되며, 스위치 어레이 배치는 제어 셀(300)이 동일 행(360) 또는 수직 경로(316)상에 동일 스위치 어레이(120)내의 다른 어떠한 셀로써 위치되는 않는 방법으로 항상 실행되며, 전체 행(360)상의 제어 셀(300)은 항상 모든 스위치 어레이(120)내에 있다.
도 6A는 8행의 배치 발생 방법을 도시한다. 제로 원점 넘버링을 사용하여, 8 위치(0,1,2,3,4,5,6,7)(602)은 상부 절반 시퀀스(4,5,6,7)(604)와 하부 절반 시퀀스(0,1,2,3)(606)로 분할된다. 최종 배치 시퀀스(608)는 상부 및 하부 시퀀스로 번갈아 병합하는 것에 의해 형성된다. 도 6B를 참조하면, 배치 시퀀스(608)는 플롯(632)으로 도시된다. 선(630)은 상부 및 하부 섹션으로 플롯을 그래프로 분할하며, 시퀸스를 상부-하부-상부-하부등의 형태로 번갈아 나타낸다.
상부 및 하부 시퀀스의 어떠한 치환은 각각 배치 시퀀스를 발생시키는데 사용될 수 있다. 이는 규칙을 치환을 발생시키는데 사용하는 이점을 가진다. "R"은 어떤 레벨에서의 행의 수이며, N=R/4, 필요에 따라서 모든 N번째 값을 선택한다. 예를 들면, 8행(602)에 대해, 8/4=2이며, 따라서 (4,5,6,7)(604) 및 (0,1,2,3)(606)으로부터 각각 (4,5,6,7)(610) 및 (0,1,2,3)(612)를 취하도록 모든 2번째 값을 선택한다. 이들 2개의 치환은 치환 시퀀스(0,4,2,6,1,5,3,7)를 형성하도록 번갈아서 시퀀스를 병합한다. 시퀀스는 플롯(634)으로 도시되어 있다. 다른 규칙은 시퀀스 (7,6,5,4)(620) 및 (3,2,1,0)(622)를 하강시키는데 사용된다. 이들은 플롯(636)으로 도시된 배치 시퀀스(624)를 형성하도록 병합된다. 교대-병합 동작은 최종 시퀀스가 각각의 위치에서 선(630)을 분할하는 상부-및-하부을 가로지르는 것을 확실하게 한다. 일반적으로, 상부 번호(4,5,6,7)(604)의 어떠한 치환은 8행 배치 시퀀스를 발생시키도록 하부 시퀀스(0,1,2,3)의 어떠한 치환과 병합될 수 있다. 어떠한 시퀀스는 스위치 설계: 막 주어진 "N번째 값"규칙으로 발생된 배치 시퀀스를 사용하는 스위치(100)의 바람직한 실시예로 선택되어 사용될 수 있다. 배치 시퀀스는 필요에 따라 시퀀스를 반복하는 것에 의해 무제한적으로 취해진다. 예를 들면, 시퀀스(614)는 (0,4,2,6,1,5,3,7,0,4,2,6,1,5,3,7,0)으로 취해질 수 있다.
도 6C는 최종 시퀀스(646)을 발생시키도록 시퀀스를 상승시키는 상부(642)와 하부(644)를 병합하는 것에 의해 주어진 16행(640)의 예를 도시한다. "N번째 값"규칙을 사용하는 다른 예(650)에 있어서, "642"와 "644"로부터의 모든 4번째 값은 각각 상부(652)와 하부(654) 시퀀스를 발생시키는데 사용된다. 이들은 배치 시퀀스(658)를 발생시키도록 병합된다.
이 방법은 어떠한 동등한 수로 설정된 행으로 확장될 수 있다. 다수 행의 시퀀스의 동일한 2분할은 도 6A에 도시된 바와 같이 상부 및 하부이다. 각 절반의 배치 형태는 치환을 단일 배치 시퀀스로 교대로 병합한다. 4행 시퀀스는 상부(2, 3)와 하부(0,1) 시퀀스를 생성물(0,2,1,3)로 병합하는 것에 의해 발생될 수 있다. 단지 2행 시퀀스는 (0,1)이다.
여분의 행의 경우에 있어서는, 그들중의 하나로 임의로 할당된 중간 값으로 상부 및 하부 시퀀스로 시퀀스의 행 수를 분할한다. 그 후, 2개의 시퀀스를 치환하고 병합하여, 더 많은 값을 가지는 치환을 개시한다. 예를 들면, 주어진 7행(0,1,2,3,4,5,6)은 상부(3,4,5,6)와 하부(0,1,2) 부분으로 분할된다. 이 예에 있어서, 상부 시퀀스는 병합된 시퀀스가 (3,0,4,1,5,2,6)이 되는 더 많은 값을 가진다. 스위치의 바람직한 실시예는 행의 여분의 수를 만드는 행을 포함하지 않는다.
메시지 흐름
스위치로 들어가는 메시지(200)는 2진수 트리의 세트에 의해 명령된 경로에 유사한 후속 경로에 의해 헤더(204)내의 한정된 목표 행에 도달한다. 도 7A는 메시지(A)가 최상부 레벨(760)에 들어가고 최하부 레벨(766)에서의 목표 행에 도달하는 것을 도시한다. 메시지(A)의 어드레스는 행 2, 즉 (H1,H2,H3)내의 메시지 헤더(204)는 (하부,상부,하부)를 표시하는 (0,1,0)이다. 메시지 흐름의 유사한 묘사를 위해, 데이터 경로(316)는 선택된 레벨사이에 단지 도시되어 있으며, 수직 정렬의 열은 도시가 필요하지 않으며, 단지 약간의 행이 도시되어 있다.
행(702)상의 오른쪽으로 이동하는 메시지(A)(730)는 레벨 2(762)에 위치된 상부 행(720) 아래에 접속된 제어 셀(704)를 마주친다. 레벨 2는 2쌍의 행 세트:(1)상부 행 세트(710)에 위치된 행, 및 (2)하부 행 세트(712)의 행으로 논리적으로 분할된다. "상부" 및 "하부"의 명칭은 각각의 레벨내의 행의 위치에 관한 것이 아니라 행이 접속되는 아래쪽 행의 위치에 관한 것이다. 도 7A 및 도 7B에 있어서 레벨 2의 최상부 위치내의 행(710)은 레벨 1의 최상부(716)내의 행에 접속되어 있으며, 유사하게 레벨 2의 최하부 행(712)은 레벨 1의 최하부 절반부(718)에 접속된다. 행 세트는 도 1C에 논의된 그룹(192)과 동일한 위상이다. 메시지(A)는의 가장 중요한 비트는 제로이며, 하부 행 세트내의 목표 행을 나타낸다. 셀(704)은 상부 행 세트(710)내의 행(720)에 접속되어 있다.
메시지(A)는 행(702)내에 잔류하며 다음 열에서 셀(706)로 오른쪽으로 이동한다. 셀(706)은 하부 행 셀(712)내의 행(722)에 아래쪽으로 접속되어 있다. 셀(706)은 행(722)에 아래쪽으로 메시지(A)를 보낸다. 따라서, 단지 1 또는 2개의 제어 셀을 통하여 오른쪽으로 이동한 메시지가 목표의 아래쪽으로 떨어지지는 기회를 가지는 이점을 가진다. 제어 셀(706)이 메시지(A)를 아래쪽으로 보내지 않는다면(후술함), 메시지는 행(702)상에 오른쪽으로 연속하여 하부 행 세트(712)에 접속된 셀(708)을 마주치며, 다시 하부 행 세트의 아래쪽으로 떨어지는 기회를 가진다.
레벨 1(764)은 상부 및 하부 행 세트(716,718)의 2개 쌍으로 논리적으로 분할되어 있다. 레벨 2에서의 행(720)은 레벨 1의 최상부(716)에서 행 세트에 접속되어 있으며, 행(722)은 최하부(718)에서 행 세트에 접속되어 있다. 헤더(204)내의 다음 어드레스 비트, ONE, 는 상부 행 세트를 특정화한다. 레벨 2에서, 메시지(A)는 행(722)상에서 레벨 1에서의 상부 행에 접속된 셀(724)로 오른쪽으로 이동한다. 셀(724)은 메시지를 레벨 1(764)에서 행(734)으로 아래쪽으로 보낸다. 레벨 0(766)은 4쌍의 행 세트로 논리적으로 분할되어 있다. 레벨 0은 최종 도착지이며, 행의 각 행 세트는 하나의 상부 행 및 하나의 하부 행을 포함한다. 헤더(204)내의 최종 어드레스 비트는 하부 행 세트를 특정화한다. 메시지(A)는 행(734)을 오른쪽으로 이동하며, 상부 접속된 셀(736)을 통하여 하부 접속된 셀(738)로 지나간다. 셀(738)은 메시지를 최종 목표 행, 행 2(744)로 아래쪽으로 보낸다.
스위치(100)의 한 실시예에 있어서, 메시지(A)는 메시지가 메시지 열 헤더(212)내에 특정화된 열에 위치된 셀을 마주질 때까지 최하부 레벨 행(742)의 오른쪽으로 이동한다. 열에서 메시지는 출력 포트(154) 또는 출력 구조(150)에 아래쪽으로 보내진다. 다른 실시예에 있어서는 열 어드레싱을 사용하지 않고, 메시지는 즉시 다음 셀(746)에 아래쪽으로 보내진다. 헤더 어드레스"10"은 "2"에 대한 2진수 표기이며 따라서 메시지(A)는 행 2(742)에서 빠져나간다.
어떠한 행의 오른쪽으로 이동하는 메시지는 다음 하부 레벨의 목표 행 세트에 아래쪽으로 이동하도록 여러번의 기회를 가진다. 어떤 행의 오른쪽으로 이동하는 메시지는 배출 포인트(172)가 동일 행 세트내의 가장 왼쪽 제어 셀의 행 도입 포인트(174)로 왼쪽으로 루팅된다. 최상부 레벨에서의 어떤 행의 메시지 최하부 레벨에의 어떠한 목표 행에 다중 루팅되는 이점을 가진다. 각 레벨에서 메시지 헤더(204)의 단지 하나의 비트가 메시지의 방향: 아래쪽 또는 오른쪽을 결정하도록 제어 셀에 의해 검사된다. 최하부 레벨에서 열 헤더가 없는 메시지는 즉시 스위치를 빠져나가며; 열 헤더(212)를 구비한 메시지는 메시지가 특정화된 열에 도달할 때까지 오른쪽으로 이동하거나 또는 메시지는 열 헤더를 처리하는 제어 구조(150)로 최하부 행을 즉시 빠져나간다.
행 카운트 증가
도 1 및 도 7A와 연계하여 도 7B를 참조하면, 스위치(100)의 일실시예에 있어서, 어떤 레벨에서의 행의 수는 한 레벨에서 다음 레벨과는 다를 수 있으며, 최상부 레벨에서 최하부 레벨로의 수는 중가한다. 어떤 실시예에 있어서, 스위치(100)의 크기를 따르는 행(R)(170)의 수는 최하부 레벨에서의 수이다. 스위치(100)의 바람직한 실시예에 있어서, 행(R)의 수는 각 레벨에서 동일하며, R은 2의 제곱이다. 도 7B는 스위치(100)의 실시예의 3 레벨을 도시하며, 최상부 레벨은 4행(774), 다음 레벨은 8행(776), 최하부 레벨은 16행(778)을 가진다. 행의 수는 각 레벨에서 다를 필요는 없다. 예를 들면, 한 실시예에서 행의 수는 최상부 레벨로부터 아래쪽으로 8,8,16,16,32 및 64의 행 카운트를 가질 수 있다. 다른 실시예는 32,32,64,64,128 및 128의 행 카운트를 가진다.
주어진 행은 레벨(776)에 위치되며, 행 수는 레벨(774)보다 많으며, 행은 위쪽 레벨로의 셀에 교대로 접속된 부분(770)과 접속되지 않은 부분(772)의 제어 셀을 가진다. 도 3을 참조하면, 스위치 어레이(120)는 각 행(360)에 제어 셀을 항상 가진다. 도 20A, 도 20B 및 도 20C를 참조하면, 스위치(100)의 일실시예는 외부 장치에 접속된 최상부 레벨에 모든 입력 접속부를 가질 필요는 없다. 이러한 실시예에 있어서, 최상부 레벨은 메시지 흐름으로 덜 밀집된다. 칩상에 사용가능한 논리 게이트를 유효하게 이용하기 위해, 최상부 레벨은 하부 레벨보다 더 적은 행으로 제공된다.
메시지 흐름 및 메시지 차단
동일 데이터 경로에 대해 맞선 2개의 메시지가 서로다른 레벨일 때 하부 레벨에서 메시지는 우선순위가 주어져 있다. 하부 레벨 메시지 우선순위를 주는 방법은 스위치내에서 긴 시간을 가지는 것이 바람직하기 때문이다. 이 우선순위 체계를 구성하기 위한 구조 및 기술은 도 8A 및 도 8B에 도시되어 있다.
도 8A 및 도 8B는 제어 셀의 간략화한 상호접속을 도시하며, 도 8A 및 도 8B의 모든 셀은 스위치 어레이내에 2개의 레벨(830, 832)과 4개의 열로 다르게 위치되어 있다. 또한, 도 1A, 도 2, 도 3 및 도 7A을 참조하면, 제어 셀(804)은 레벨 3(832)에서 스위치 어레이(120)에 위치되어 있다. 제어 셀은 다음 열과 동일 레벨에서의 제어 셀(360)에 행(360)에 의해 오른쪽으로 접속되어 있다.
헤더(812)를 구비한 메시지(A)는 상부 레벨로부터 제어 셀(804)로 들어간다. 메시지(A)의 트래픽 비트(202)는 ONE 이며, 메시지가 셀(804)에 존재하는 것을 표시한다. 메시지가 상부 레벨로부터 제어 셀을 들어갈 때 메시지는 행(360)에 잔류하여 다음 열에서 제어 셀로 오른쪽으로 즉시 이동한다. 메시지(A)는 셀(806)로 행(360)의 오른쪽으로 진행한다.
메시지(A) 헤더의 가장 중요한 비트는 ONE 이며, 메시지가 다음 하부 레벨에서 상부 행(850)에 목표되는 것을 표시한다. 제어 셀(806)은 트래픽 비트(202)와 가장 중요한 비트(208)을 검사하여 메시지(A)의 다음 레벨의 목표 행이 상부 행 세트인 것을 결정한다. 제어 셀(806)은 상부 행 세트(850)에 생기는 제어 셀(820)에 아래쪽으로 접속되어 있다. 따라서 메시지(A)는 연속 경로(316)의 아래쪽으로 제어 셀(820)에 루팅된다. 상부 레벨로부터 메시지를 도입하기 위한 규칙은 메시지(A)가 레벨 2에서 다음 셀(824)로 행(822)의 오른쪽으로 즉시 루팅되게 한다.
도 8A에 메시지(A)(802)의 흐름이 도시되어 있다. 상부 레벨로부터 레벨 3에 도입된 메시지(A)는 다음 열로 오른쪽으로 이동하며, 소망 상부 행 세트(850)내의 셀에 아래쪽으로 즉시 루팅된다. 가장 중요한 비트(208)의 메시지(A)가 상부 행 세트로 드롭을 표시하고 메시지가 아래로부터의 다른 메시지에 의해 차단되지 않기 때문에 메시지(A)는 셀(806)로부터 셀(820)로 방향을 가진다. 상기 도면은 메시지(A)가 다음 하부 레벨로의 지연없이 이동하도록 허용되는 경우를 도시한다.
한 레벨에서 오른쪽으로 이동하는 메시지는 제어 셀로 접속부 아래쪽을 지나 통과한다. 접속부는 다음 하부 레벨에서 상부(850) 및 하부(852) 행 세트사이를 왔다갔다 한다. 다른 예(도시되지 않음)에서, 다른 메시지(E)가 왼쪽으로 부터 제어 셀(806)을 들어간다. 메시지(E)의 가장 중요한 비트는 ZERO이며, 메시지가 하부 행 세트(852)에 목표되는 것을 표시한다. 제어 셀(806)은 상부 행 세트(850)에 접속되어 있으며, 따라서 제어 셀(806)은 셀(808)로 다음 열에 오른쪽으로 메시지(E)를 즉시 루팅한다.
도 8B를 참조하면, 다른 예에 있어서 동일 메시지(A)(802)가 상부 레벨로부터 제어 셀(804)을 들어가며 전술한 바와 같이 제어 셀(806)로 오른쪽으로 루팅된다. 동시에 메시지(A)는 제어 셀(806)을 들어가며, 레벨 2에서의 메시지(B)는 왼쪽으로부터 제어 셀(820)을 들어간다. 메시지(B)는 상부 레벨로부터의 메시지를 지나 공동 경로(822)를 사용하는 우위를 가진다. 메시지(B)는 셀(824)로 행(822)의 오른쪽으로 게속 진행하여 셀(820)을 통해 아래쪽으로 이동하고 열(822)의 오른쪽으로 이동하는 것으로부터 메시지(A)를 차단한다. 행(822)이 메시지(B)로 즉시 점유되기 때문에, 제어 셀(820)은 상부 레벨, 즉 제어 셀(806)로부터 메시지를 받아들이지 않는다. 메시지 A와 B사이의 충돌을 방지하기 위해, 셀(820)은 신호 경로(330)상의 셀(806)로 위쪽으로 비지 신호를 보낸다. 이에 의해 제어 셀(806)은 아래쪽으로 보내진 메시지(A)로부터의 비지 신호(842)에 의해 차단된다. 따라서, 셀(806)은 다음 열에서 셀(808)로 오른쪽으로 메시지(A)를 루팅한다. 셀(806)은 레벨에서 발생할 수 있는 메시지(C)와의 가능한 충돌로부터 메시지(A)를 보호하기 위해 위쪽으로 비지 신호(844)를 보낸다.
제어 셀(808)은 메시지(A)의 헤더(812)를 검사하여 메시지가 레벨 2에서 상부 행에 목표되는 것을 결정한다. 셀(808)이 하부 행 세트에 접속되어 있기 때문에 셀(808)은 메시지(A)를 셀(810)로 오른쪽으로 다시 루팅하도록 강요된다. 위로부터의 가능한 충돌을 방지하기 위해, 셀(808)은 또한 상부 레벨로 비지 신호(846)를 보낸다. 상기 셀(808)일 수 있는 메시지(D)는 셀(808)로의 드롭핑으로부터 유효하게 방지된다. 최종적으로, 다음 열에서의 제어 셀(810)은 상부 행 세트(850)에 접속되어 있다. 셀(810)에서의 메시지(A)는 아래로부터 차단되지 않으며 따라서 셀(810)은 레벨 2에서 제어 셀(826)로 아래쪽으로 메시지(A)를 보낸다.
도 8B에 메시지(A)의 흐름이 도시되어 있으며, 메시지는 바로 아래로 오른쪽으로 동시에 이동하는 다른 메시지(B)에 의해 아래쪽으로 즉시 이동하는 것으로부터 차단되어 있다. 메시지(A)가 레벨 2에서 상부 행에 아래쪽으로 이동하기 전에 메시지(A)는 오른쪽으로의 2 이상의 열을 방문한다. 메시지가 제어 셀을 통하여 오른쪽으로 이동할 때마다 셀은 셀에 위쪽으로 비지 신호를 항상 보내어 메시지가 아래쪽으로 드롭핑하는 것을 금지시킨다.
메시지 흐름 관련
도 8B는 메시지(B)가 메시지(A)를 아래쪽으로 이동하는 것을 차단하는 상황을 도시한다. 유사하게, 메시지(B)는 메시지 또는 메시지 아래에 의해 차단될 수 있으며 연장된 주기를 위해 레벨 2에서 유지되도록 힘을 가하기 시작한다. 메시지(B)는 상호접속 구조에 의해 메시지(A)의 두번째 시간을 차단하도록 어떤 위치로부터 유효하게 방지된다. 레벨 3에서의 제어 셀(806)은 레벨 2에서 셀(820)로 데이터 경로(316)에 의해 접속되어 있으며, 셀(806)로써 동일 행의 제어 셀(810)은 또한 레벨 2에서 셀(826)로 데이터 경로(848)에 의해 접속되어 있다. 셀(826)은 메시지(B)가 메시지(A)의 두번째 시간을 차단하는 것을 방지하도록 셀(820)로써 동일 행에 위치되지 않으며, 반복 차단의 가능성을 유효하게 제거한다. 도 6A 및 도 6C에 도시된 방법으로 발생된 배치 시퀀스는 단일 메시지에 의해 여러번 차단하는 것을 회피한다.
도 9는 레벨 3(902) 및 레벨 1(906)에서의 셀 접속 연관성을 도시한다. 레벨 3에서의 배치 시퀀스(0,4,2,6,1,5,3,7,0,...)(614), 레벨 2에서의 하부 시퀀스(0,2,1,3,0,...)(910)와 상부 시퀀스(4,5,6,7,4,...)(912) 및 레벨 1에서의 시퀀스(0,1,0,...)가 점선내에 도시되어 있다. 메시지 경로(A)(634)는 레벨 3과 레벨 2사이의 상호접속 관계를 도시한다. 어떠한 행, 예를 들면 행 0에서 시작하는 메시지는 그 열에 잔류한다. 메시지 경로(A)는 또한 행 0(962)에서 셀로 아래쪽으로 접속되어 있는 첫번째 열에서의 행 0에서 시작한다. 다음 열(954)에서 행 0은 행 4(964)에서 셀에 아래쪽으로(924) 접속되어 있으며, (956)에서 행 2(966)에서의 셀로 접속되어 있으며, 따라서 시퀀스(614)에 따른다. 레벨 2에서의 메시지 경로(B)(934)는 레벨 2(904)와 레벨 1(906)사이의 접속 시퀀스를 도시한다. 메시지 경로(B)는 첫번째 열(962)에서의 행 0에서 시작하며, 또한 행 0(972)의 셀로 아래쪽으로 접속되어 있다. 다음 행렬 0은 행 2(974)에서 셀에 아래쪽으로(924) 접속되어 있으며, 행 1(966)에서의 셀로 접속되어 있으며, 따라서 시퀀스(910)에 따른다.
메시지 접속 경로(A)(634) 및 (B)(934)는 배치 시퀀스의 2개의 중요한 특성을 증명한다. 첫번째로, 경로A와 경로 B는 하부 행 세트(944)와 상부 행 세트(942)에 아래쪽으로 교대로 접속되어 도 7A에 도시된 메시지 루팅을 만족시킨다. 두번째로, 경로 A는 8열이 횡단될 때까지 경로 B에 다시 접속되지 않는다. 명확한 차이점은, 경로 A는 위치 "962"와 "920"에서 경로 B로 아래쪽으로 접속되며, 8열의 길이를 가진다. 유사하게, "964"에서 시작하는 경로 D(도시되지 않음)에 접속된 두번째 열(954)에서의 경로 A(634)의 메시지는 8열이 횡단될 때까지 경로 D에 다시 접속되지 않는다. 또한, 레벨 3에서의 어떠한 행을 이동하는 메시지는 메시지가 8열을 통하여 이동할 때까지 아래의 동일한 레벨 2 경로(934)에 접속되지 않는다. 즉, 경로 A(634)와 경로 B(934)사이에 도시된 드문 접속 연관성은 레벨 3에서의 행렬에서 시작하는 어떠한 경로에 대해 유지된다. 중요하게, 경로 A(952)에서 시작하는 메시지는 레벨 2에서의 3개의 다른 메시지에 의해 차단되며, 경로 B(962)에서 시작하는 메시지는 차단 상황이 "920"에서 다시 발생하기 전에 레벨 1에서의 4 또는 5개의 다른 메시지에 의해 차단된다. 따라서, 하부 레벨에서의 어떠한 메시지에 의한 여러번의 차단 발생은 통계적으로 매우 드물다. 레벨 2에서의 경로 B(934)와 레벨 1에서의 경로 C(936)사이의 연관성은 경로 B의 메시지가 4열이 횡단될 때까지 경로 C를 마주치지 않는다.
도 9는 경로 A의 메시지와 경로 B의 메시지의 각각의 접속 연관성을 비교한다. "962"에서 경로 B의 메시지는 초기에 "952"에서 경로 A의 메시지를 차단하는 위치에 있다. 그러나, 중요한것은 다음의 8개 시퀀스에서 각 메시지로 이동하며, 경로 B는 다시 메시지 A를 차단하는 위치에 있지 않다. 도 9는 또한 "962"에서 경로 B의 메시지를 차단하는 레벨 1에서의 경로 C(936)의 메시지를 도시한다. 경로 C의 메시지는 양 메시지가 4열을 가로지를 때까지 경로 B의 메시지를 다시 차단하는 위치에 있지 않다. 연관성은 각각의 레벨의 어떠한 행렬에 도입하는 메시지를 유지한다. 또한, 레벨 0을 제외한 어떠한 레벨에서의 각각의 메시지는 각각 및 모든 열 변환에서 상부 행 세트와 하부 행 세트사이를 항상 번갈아 간다.
스위치(100)의 다른 실시예는 도 6A, 도 6B 및 도 6C에 도시된 것과 같은 다른 시퀀스를 사용한다. 어떠한 시퀀스는 메시지(200)가 주기당 적어도 한번 상부 및 하부 행 세트에 접속되는데 사용될 수 있다. 이 시퀀스는 모든 행에 동일할 필요는 없으며, 레벨 수에 관한 주기로 반복되거나 또는 어떠한 다른 규칙을 가지지 않아도 된다. 확률적으로, 이러한 시퀀스는 공평한 메시지 흐름의 통계상의 특성을 가지지 않을 수 있으며, 도 6A에 도시된 "N번째 값"규칙을 사용하여 발생된 것과 같이 최소 차단과 낮은 대기시간을 가진다.
헤더 길이 단축
메시지가 레벨 사이에서 진행함에 따라, 헤더 길이는 각 레벨에서의 최상위 헤더의 제거로 단축된다. 도 10을 참조하면, 레벨 3에서 메시지의 목표 행 어드레스는 3 비트:H1, H2 및 H3을 포함하는 메시지 헤더(204)내에 한정되어 있다. H1(208)은 어드레스의 가장 중요한 비트이며, H2(1054)는 다음의 가장 중요한 비트이다. 메시지(200)가 다음의 하부 레벨로 아래쪽으로 이동할 때, 가장 중요한 비트 H1(208)은 트래픽 비트(202)가 항상 유지되더라도 메시지로부터 제거된다. 레벨 2에서, H2(1054)는 가장 중요한 비트로 되기 시작한다. 헤더 길이 변화의 소망 측면 효과는 메시지의 길이가 레벨당 1비트씩 감소되는 것이다. 메시지(200)가 레벨 0에 도달하면, 헤더(204)의 모든 비트는 제거되며, 이에 의해 스위치를 통한 페이로드 비트의 전체 변환시간(대기시간)을 감소시킨다.
전류 레벨 MSB(208)가 항상 트래픽 비트(202)를 따라가기 때문에, 모든 레벨에서의 모든 제어 셀의 설계는 동일하며, 칩 배치 노력도 간략화할 수 있다. 전류 MSB를 스트립핑하는 다른 이점은 메시지가 아래로 보내질 때 제어 셀은 버퍼에 접근하는 메시지의 첫번째 2비트를 단지 필요로 한다. 선택적으로, MSB가 제거되지 않았다면, 저 레벨 셀은 적절한 어드레스 비트가 셀에 의해 검사되기 전에 전체 헤더가 들어갈 때까지 대기한다. 이 결점에 있어서는 8비트 헤더가 요구되며, 9비트가 들어간 메시지를 각 시간에서 각 셀에 버퍼되며, 스위치(100)의 바람직한 실시예의 제어 셀에 대해 셀당 9시간 주기 대 단지 1시간 또는 2시간 주기로 소모한다.
싱크로너스 지연 디바이스
도 1B와 도 3과 연계하여 도 11A를 참조하면, 행(360)을 가로질러 오른쪽으로 이동하는 메시지는 광학적 FIFO 구조(114)를 마주치며, 첫번째 열에 다시 들어가도록 순환된다. 첫번째 메시지의 첫번째 비트가 두번째 메시지의 내부 비트와 충돌하는 것을 방지하기 위해 , 단일 메시지가 어떠한 레벨에서 1행을 맞추기 위해 구성된다. 이 이유에 대해, 행을 따라 셀내에 시프트 레지스터를 부가하여 추가적인 지연장치가 사용될 수 있다. FIFO 어레이는 평행하게 배열되어 행(360)에 각각 연결된 다수의 독립된 싱크로너스 지연 디바이스(1100)를 포함한다. 싱크로너스 지연 디바이스(1100)는 연속 배열로 연결된 지연 소자(1102)를 포함한다. 지연소자(1102)는 1비트 시프트 레지스터, 또는 D 폴롭-플립과 같은 기능을 가지며, 1시간 주기로 지연 소자를 들어가는 비트가 다음 시간 주기에서 지연 소자의 출력에 존재되도록 한다. 연속 지연 디바이스(1100)를 통한 메시지 비트의 전체 변환 시간은 시간 주기에 의해 다중화된 구조(1100)내에 포함된 지연 소자(1102)의 수이다. 메시지(200)는 연속 입력부(1106)에서 왼쪽으로부터 FIFO 구조(1100)를 들어가며 출력부(1108)에서 빠져나간다. 클럭(1110)는 지연 소자(1102)를 동기화하는데 사용된다. 나머지 신호(도시되지 않음)는 모든 지연 소자와 다른 논리 소자를 초기화한다. 도 11B는 다이내믹 시프트 레지스터(1112)룰 도시하며, 2상 클럭(1116)를 FIFO 구조를 통하여 데이터 비트를 시프트하는데 사용한다. 다이내믹 시프트 레지스터의 이점은 플립 플롭 또는 유사한 지연요소와 비교하여 트랜지스터의 수를 감소시킬 수 있다.
도 11C는 싱크로너스 지연 디바이스의 하나의 광학적 실시예(1114)를 나타내고 있다. 조정가능한 광섬유 지연은 물리적으로 광섬유를 부설하고 광섬유 길이를 변화시키기 위해 압전기 구조를 이용하므로써 성취될 수 있다. 펄스된 광원(1118)에 의해 구동된 광섬유(1116)는 광섬유 길이를 통해 메시지(200)를 운반하고, 스위치(100)에 의해 추가로 프로세스될 수 있는 형태로 광신호를 변환하는 광검출기(1120)에 의해 종료된다.
레벨 및 열 타이밍
도 8B 및 도 12A를 참조하면, 레벨 3(832)에 배치된 제어 셀(806)에 입력되는 메시지 A(802)는 메시지 A가 순차적인 경로(822)상에서 우측으로 이동하는 경우 레벨 2에서 제어 셀(820)로 드롭하려고 시도할 수도 있다. 그러나, 레벨 2에서 우측으로 이동하는 동시적인 메시지 B(840)는 경로(822)를 이용할 때 메시지 A에서 우선순위를 갖는다. 우선순위를 강제하기 위해, 제어 셀(820)은 제어 셀(806)이 아래로 메시지를 전송하는 것을 방지하기 위해 적절한 방법으로 위의 제어 셀(806)로 통화중 신호(842)를 전송한다. 따라서, 메시지 흐름 타이밍은 제어 셀(806)이 신호상에서 작용할 수 있는 충분한 시각에 통화중 신호(842)가 제어 셀(806)에 도달하도록 지정된다. 따라서, 하나의 실시예의 스위치(100)에서, 메시지 B의 트래픽 비트(202)는 메시지 A의 트래픽 비트(202)가 셀(806)에 도달하기전에 셀(820)에 도달한다. 주어진 스위치 어레이(120)내 모든 제어 셀들은 메시지의 트래픽 비트가 스위치 어레이내 모든 셀에서 동시에 도달하는 것과 동기하여 작동한다. 동일한 스위치 어레이(120)내 모든 셀들은 동일한 타이밍 신호를 수신한다.
도 11A와 연결하여 도 12A를 참조하면, 클럭(1110)은 제어 셀(300)내 지연요소를 제어한다. 래치-설정 신호(1204)는 셀의 래치(후술됨)가 클럭주기에서 늦게 설정되도록 클럭(1110)에 비례하여 지연된다(1210).
하나의 실시예에서, 하위 레벨에서의 제어 셀은 그 위의 레벨에서의 동일한 열에서의 제어 셀에 앞서 메시지(200)를 수신한다. 다른 레벨에서의 동일한 열에서 관련 메시지 타이밍이 도 12A에 도시되어 있다. 레벨 0 래치 설정 신호(1204)는 레벨 1 래치-설정 신호(1206)의 앞에 하나의 클럭 주기를 발생시킨다. 레벨 1 신호는 레벨 2(1208) 및 그 위의 레벨등에서 신호의 1주기 앞이다. 래치-설정 신호는 메시지 흐름의 타이밍 및 제어에서 사용된다. 모든 레벨 및 열에서, 타이밍 신호(1110,1204,1206,1208)는 지연 소자(146,148)와 연결하여 타이밍 유닛(142)에 의해 발생된다.
도 12B는 동일한 레벨에서 인접한 열의 상대적 타이밍을 설명하고 있다. 메시지(200)는 상기 열의 래치-설정 신호(1220)가 높아지는 동일한 클럭 주기(1110)중에 열 j에서 제어 셀로 입력된다. 행(360)상에서 우측으로 이동하는 메시지는 상기 메시지가 다음 열 j+1(1232)에 도달하기전에 고정된 수의 지연 소자를 통과한다. 일부 실시예에서, 지연 소자는 열간의 FIFO 버퍼가 된다. 다른 실시예에서, 지연 소자는 제어 셀의 일부가 된다. 단일 지연 소자의 시간주기는 하나의 클럭주기(1202) 또는 2주기가 된다. 열대 열 시간(tc)(1240)은 메시지가 다음 열에서 다음 제어 셀에 도달할 때까지 걸린 시간이다. 시간(tc)은 2개 열들간의 모든 지연 소자들의 합이 된다. 따라서, 다음 열(1230)에서의 래치-설정 신호는 시간(tc) (1242)만큼 지연된 제 1 열(1220)에서의 래치-설정 신호가 된다.
메시지(200)는 정해진 최대 길이 Lmeg(214)를 구비하고 각각의 비트는 주어진 지점으로 이동하기 위해서 하나의 클럭 주기를 얻는다. 열 J에서 제어 셀을 통과하는 메시지의 시간은 인터벌(1222)에 의해 나타나고, 옆 열은 인터벌(1232)에 의해 나타난다. 인터-메시지 시간(1242)은 적어도 제어 셀을 통과하는 메시지에 대한 시간이상이다. 즉 lm>= Lmeg이다. 메시지가 제어 셀을 통과한 후 일련의 메시지가 셀에 입력되어질 수 있다. 그래서 인터-메시지 시간은 옆 래치-설정 신호(1224)가 보내질 때 결정된다. 어떤 주어진 레벨에서, 트래픽 비트(202) 및 모든 메시지의 비트가 "수직 정렬"로 오른쪽으로 이동하기 위해서 다른 열상에 메시지가 평행하게 오른쪽으로 이동한다. 수직 배열에서 각각의 트래픽 비트는 같은 스위치 배열에서 모든 다른 셀에 동시에 입력된다. 유사하게, 동일한 스위치 배열에서 제어 셀 아래쪽으로 드롭하는 메시지는 수평배열로 함께 이동한다. 시간이 인터-메시지 시간보다 적을때는 메시지는 하나의 제어 셀보다 더 소요된다. 메시지는 이러한 스위치를 통하여 입력된다. 스위치의 일반적인 실시예에서 시간은 바람직한 결과를 가지는 하나 또는 두 개의 클럭 주기이고 페이로드의 제 1 비트는 페이로드의 테일이 들어오기전에 상호접속 구조에서 빠져 나온다.
특정 제어 셀에 대한 래치-설정 신호의 타이밍은 스위치 배열에서 셀의 열 및 레벨장소에 의존한다. 도 12A는 하나의 열에서 다중 레벨에 대한 메시지 타이밍의 인터-레벨 관계를 묘사한다. 도 12B는 하나의 레벨에서 근접한 열에 대해 래치-설정 신호의 상대적인 타이밍을 묘사한다. 도 12A 및 도 12B의 기술에서 "레벨 래치 설정" 및 "열의 래치 설정"은 기술한 내용에 의존하는 동일한 신호에 관한 것이다. 도 1A를 참조하면, 레벨 "0", 열 "0"인 스위치 배열위에 레벨은 하나의 클럭 주기(146)에 의해 지연되어져 모든 레벨에서 제 1 열의 타이밍을 완전하게 결정한다. 각각의 레벨에서, 오른쪽 열의 신호는 시간(1240)의 주기를 위한 지연소자에 의해 각각 지연되어지고, 이것에 의해 오른쪽 동일한 레벨에서 남아있는 스위치 배열의 타이밍을 결정한다.
메시지(200)는 정해진 최대 길이 L(214)를 구비하고 각각의 비트는 주어진 지점으로 이동하기 위해서 하나의 클럭 주기를 얻는다. 열 J에서 제어 셀을 통과하는 메시지의 시간은 인터벌(1222)에 의해 나타나고, 옆 열은 인터벌(1232)에 의해 나타난다. 인터-메시지 시간(1242)은 적어도 제어 셀을 통과하는 메시지에 대한 시간이상이다. 메시지가 제어 셀을 통과한 후 일련의 메시지가 셀에 입력되어질 수 있다. 그래서 인터-메시지 시간은 옆 래치-설정 신호(1224)가 보내질 때 결정된다. 어떤 주어진 레벨에서, 트래픽 비트(202) 및 모든 메시지의 비트가 "수직 정렬"로 오른쪽으로 이동하기 위해서 다른 열상에 메시지가 평행하게 오른쪽으로 이동한다. 수직 배열에서 각각의 트래픽 비트는 같은 스위치 배열에서 모든 다른 셀에 동시에 입력된다. 유사하게, 동일한 스위치 배열에서 제어 셀 아래쪽으로 드롭하는 메시지는 수평배열로 함께 이동한다. 시간이 인터-메시지 시간보다 적을때는 메시지는 하나의 제어 셀보다 더 소요된다. 메시지는 이러한 스위치를 통하여 입력된다. 스위치의 일반적인 실시예에서 시간은 바람직한 결과를 가지는 하나 또는 두 개의 클럭 주기이고 페이로드의 제 1 비트는 페이로드의 테일(tail)이 들어오기전에 상호접속 구조체에서 빠져 나온다.
특정 제어 셀에 대한 래치-설정 신호의 타이밍은 스위치 배열에서 셀의 열 및 레벨장소에 의존한다. 도 12A는 하나의 열에서 다중 레벨에 대한 메시지 타이밍의 인터-레벨 관계를 묘사한다. 도 12B는 하나의 레벨에서 근접한 열에 대해 래치-설정 신호의 상대적인 타이밍을 묘사한다. 도 12A 및 도 12B의 기술에서 "레벨 래치 설정" 및 "열의 래치 설정"은 기술한 내용에 의존하는 동일한 신호에 관한 것이다. 도 1A를 참조하면, 레벨 "0", 열 "0"인 스위치 배열위에 레벨은 하나의 클럭 주기(146)에 의해 지연되어져 모든 레벨에서 제 1 열의 타이밍을 완전하게 결정한다. 각각의 레벨에서, 오른쪽 열의 신호는 시간(1240)의 주기를 위한 지연소자에 의해 각각 지연되어지고, 이것에 의해 오른쪽 동일한 레벨에서 남아있는 스위치 배열의 타이밍을 결정한다.
제어 셀 상태
도 13A 및 도 13B는 제어 셀 소자의 블록 선도와 제어 셀을 통한 메시지 경로 메카니즘을 도시한다. 왼쪽 라인 W(1302)에서 제어 셀(1300)로 입력되는 메시지(20)는 도 13A에서 도시되는 옆 하부 레벨에 라인(S)을 통하여 아래로 루팅되고, 또는 도 13B에서 도시되는 옆 열에 라인 E(1304)을 통하여 오른쪽으로 루팅된다. 제어 셀(1300)은 라인 N(1310)에 위쪽 레벨에서 메시지 입구, 라인 W(1302)에 왼쪽에서 메시지 입구, 라인 E(1304)에 오른쪽에서 메시지 출구, 라인 S(1312)에 아래쪽에서 메시지 출구, 라인 BN(1308)에 위쪽 레벨에서 비지 신호 출력 및 라인 BS(1306)에 아래쪽에서 비지 신호 입력을 구비한다. 도면에서 "북쪽", "남쪽", "동쪽", 및 "서쪽"의 용어는 각각 "위쪽", "아래쪽", "오른쪽" 및 "왼쪽"에 관한것이다.
도 3, 13A, 및 13B에서, 직렬 경로(360)는 근접한 열에 동일한 열상에 제어 셀의 라인 E 및 W에 접속되어진다. 직렬 경로(316)는 라인 N 및 S에 접속되고, 직렬 경로(330)는 동일한 열의 라인 BN 및 BS에 접속되어진다. 래치-설정 신호(1204)는 "1328"에서 제어 셀에 접속되어진다. 지연소자 D0 및 D1(1102)는 특정 메시지 헤더 비트에서 "룩 어헤드(look ahead)"장치와 메시지 흐름 시간을 조절하기 위한 장치로서 제공되어진다.
도 13A에서, 메시지(C)는 라인 W(1302)에 왼쪽에서 제어 셀(1300)로 입력된다. 두개의 메시지 비트, 라인 W에서 MSB(208)과 D1에서의 트래픽 비트(202), 비지 신호 라인 BS(1306)은 제어 셀에 의해 검사되어지고 셀은 라인 S(1312)을 통하여 아래쪽으로 루팅되어지는가를 결정한다. 입력 라인 W(1302)은 두 비트의 메시지를 상대적 타이밍(1322)앞으로 나아가게 하면서, 라인 S에 접속되어진다. 메시지(C)가 아래로 이동하면, 라인 E은 왼쪽 입력 라인 W와 접속되지 않는다. 대신에, 라인 E은 위쪽 레벨에 입력 라인 N(1310)과 접속되어진다. 도 13A에서 셀의 상태는 하나의 비트 레지스터가 래치(1316)에 저장되는 "0"(ZERO)에 의해 나타내어진다. 비지 신호는 라인 BN(1308) 위쪽으로 "0"을 보내고, 래치 출력과 접속되어진다. 이것은 위의 셀을 나타내고 셀은 상호접속부(1310)상에 라인 N아래로 메시지를 자유롭게 보낼 수 있다. 래치(1316)는 또한 셀 전체에 연속 메시지 데이터 비트의 흐름을 제어하도록 사용되어진다. 상기에서 기술한 바처럼, 왼쪽에 메시지가 아래로 루팅되어질때, 라인 N(1310) 위쪽 레벨에 다른 메시지가 셀로 입력되어지고 메시지는 라인 E(1304) 오른쪽으로 루팅되어진다.
도 13B에서, 메시지(D)는 라인 W(1302) 왼쪽에서 제어 셀(1300)로 입력되어진다. 아래쪽 레벨(1132)에 라인 BS상에 헤더의 가장 중요한 비트(208)와 비지 신호가 제어 셀에 의해 검사되어진다. 메시지 MSB(208)는 메시지가 드롭할 수 없음을 나타내고, 라인 BS(1306)상에 비지 신호는 메시지가 아래에서 블록되어짐을 나타내는 신호값 "1"이다. 도 13B에서 하나 또는 양쪽의 이러한 상태는 사실이다. 메시지(D)는 라인 E(1304)을 출력하기 위하여 지연소자 D1과 D0를 통하여 오른쪽으로 루팅된다. 래치(1316)는 "1"로 설정된다. 라인 BN(1308)상에 비지 신호는 신호값인 "1"인 래치(1316)에 접속되어진다. 비지 신호(1308)는 아래쪽 메시지를 드롭에서 블록되어지는 셀을 나타내기 위하여 위에 셀로 보내진다. 출력 라인 S(1312)은 "0"으로 설정되고, 이것은 메시지를 아래로 동등하게 보내지 못한다.
제어 셀의 상세한 설명 및 흐름도
도 14는 제어 셀(1300)을 통하여 메시지 흐름을 제어하는 방법을 설명하는 흐름도이다. 도 15A는 도 14의 흐름도에 의해 기술되는 제어 셀의 바람직한 실시예를 상세하게 설명하는 선도이다.
도 13A 및 도 13B를 참고하면, 제어 셀(1300)에 두 상태가 각각 블록선도에서 도시되어진다. 도 13A는 왼쪽에 메시지가 옆쪽 하부 레벨에 아래쪽으로 이동하는 상태를 도시한다. 도 13B는 왼쪽에 메시지가 동일한 레벨에서 오른쪽으로 이동하는 상태를 도시한다. 도 13A는 또한 메시지가 왼쪽에 존재하지 않을때의 상태를 나타낸다.
도 12A, 13A, 및 13B와 연결하여 도 14를 참조하면, 래치-설정 신호(1328)가 래치 설정 하이(1404)로 갈 때는 메시지 방향(1406)의 방향을 결정하는 필수 데이터는 제어 셀 지연 소자 및 입력 라인 W(1302) 및 블록 신호 라인 BS(1306)에서 유용하다. 특히, 래치 셋 신호가 하이로 가면, 메시지 트래픽 비트(202)는 지연소자 D1(1324)에 수용되어지고, 헤더의 가장 중요한 비트(208)는 입력 라인 W(1302)에 존재한다. 세 개의 가능한 결과(1408,1410 및 1412)는 메시지 방향의 결정을 위한 테스트로부터 얻어진다. 첫째로, 왼쪽에서 메시지는 아래쪽 레벨에 블록되어지거나 존재하고, 또는 메시지 헤더는 메시지가 오른쪽(1408)으로 이동됨을 기술한다. 둘째로, 왼쪽에서 메시지가 존재하지 않는다(1410). 셋째로, 왼쪽에서 메시지가 존재하고 아래쪽 레벨에서 막히지 않고, 헤더는 메시지가 아래쪽(1412)으로 이동함을 기술한다.
후자의 두 경우는, 왼쪽(1410)에서 메시지가 존재하지 않거나 또는 메시지가 아래쪽(1412)으로 이동할때는 위쪽 레벨에 비지 신호에 대한 한 경우로서 취급되어진다. 이러한 두 경우의 래치(1316)중 어느 하나는 "0"으로 설정되고 래치의 출력은 셀 위쪽으로 보내진다. 즉 다시말하면, 제어 출력 BN(1308)은 언제나 래치(1316)에 접속되어진다. 메시지가 존재하거나 오른쪽(1408)으로 이동하는 경우에는, 래치는 "1"로 설정된다. 래치는 셀의 제어 상태를 저장시키거나 한 메시지 사이클에 대한 셀의 로직 게이트를 연속적으로 제어시키데 유리하게 이용되어진다.
도 10과 연결하여 도 14를 참고하면, 메시지가 아래쪽(1412)으로 이동하고 존재하는 특정 경우에는, 가장 중요한 비트(208)가 헤더에서 스트립되어지고 헤더 어드레스에서 옆 비트(1054)는 아래쪽 레벨에서 가장 중요한 비트가 된다. 신호 값 "1"은 한 클럭 주기(1414)를 위해 아래로(1412) 보내지고 라인(S 1312)상에 신호는 아래쪽 메시지의 트래픽 비트(202)를 발생시키면서 "1"이 된다. 새로운 가장 중요한 비트(204)의 다음 클럭 주기(1414)에서는, 비트(1054)가 입력 라인 N(1310)에서 옆 아래쪽 레벨에 셀로 보내진다. 주기(1414)의 완성을 위해서 입력 라인(W)은 제어 셀을 통하여 메시지의 나머지 통과 지속을 위해 라인 S(1416)을 통하여 아래쪽으로 접속되어지는데, 다시말하면, 래치-설정 신호가 다시 하이(1404)로 이동한다. 옆 MSB(1054)에는 트래픽 비트(202)가 뒤따르고, 이것에 의해 전류 MSB(208)를 스트립하고 아래쪽 레벨에 메시지의 타이밍과 조화시키기 위해 전류상에 메시지 앞을 점프시키는 메시지 타임밍을 허용하고, 이것에 의해 한 클럭 주기가 나아간다. 제어 셀(1500)은 모든 지연소자와 래치를 "0"으로 설정하는 스타트 또는 리셋 신호(1420)에 의해 초기화되어진다. 도 14의 흐름도는 오른쪽 아래로 이동하는 경로를 가지는 셀에 대한 제어를 기술한다. 도 18A, 18B 및 18C에서 기술되는 플랫-대기시간 셀은 다중 입력 경로가 함께 검사되어지는 흐름도의 일반개념에 의해 제어되어지고, 동일 레벨 입력의 우선순위는 부가적으로 고려해야 된다.
도 12A 및 12B에서 도시되는 래치-설정 신호의 상대적 타이밍은 아래쪽 레벨(1204)상에 메시지가 위쪽 레벨(1206)에 메시지보다 앞서는 하나의 클럭 주기를 도시한다. 따라서, 아래쪽 메시지는 하나의 클럭 주기에 의해 메시지의 전류 타이밍에 앞서 점프된다. 더욱이, 헤더 길이의 감소는 하나의 클럭 주기에 앞서는 부가적인 점프를 일으킨다. 도 13A에서 개략적으로 도시되는 단계(1412, 1414 및 1416)의 결과는 원하는 헤더 길이 단축을 실행시키고 아래쪽 메시지의 트래픽 비트(202)가 아래쪽 레벨에 타이밍과 동시에 실행되어진다. 입력 라인 W(1302)은 라인 S(1312)에 직접 접속되어져, 두 지연소자 D1 및 D0는 두 클럭 주기에 의해 메시지 타이밍의 원하는 효과를 가지면서 우회되어진다.
도 11 및 13A와 연결하여 도 15A를 참고하면, 셀(1300)이 제어 셀 실시예(1500)로서 더욱 상세하게 도시되어진다. 셀(1500)은 메시지 흐름을 제어하기 위하여 두개의 지연소자 D1(1510) 및 D0(1512), 래치(1316), 입력 및 출력 커넥션, 및 로직 게이트를 도시하는 게이트-레벨 선도이다. 많은 로직 게이트는 래치(1316)에 의해 제어되어진다. 래치가 "1"로 설정되면 라인 W(1302)에 왼쪽에서 메시지가, 라인 E(1304)이 존재하는, 왼쪽에서 오른쪽으로 이동한다. 스위치(194)는 위쪽 셀에 메시지가 라인(E)에서 라인 N(1310)으로 연결되는 것을 방지한다. 래치가 "0"으로 설정되면 왼쪽에 메시지는 라인 S(1312) 아래 밖으로 이동한다. 래치(1316)의 값은 위의 셀을 나타내기 위하여 라인 BN(1308)을 통하여 언제나 위로 보내지고 후자는 메시지를 아래로 보낸다. 라인 N(1310) 위쪽 레벨에 메시지는 라인 E(1304)을 경유하여 오른쪽으로 이동한다.
도 2 및 도 7를 참고하면, 메시지는 옆 하부 레벨에서 위쪽 열 세트 또는 아래쪽 열 세트와 접속되는 제어 셀에 입력된다. 트래픽 비트(202)는 메시지가 존재하는지 또는 존재하지 않는가를 나타낸다. 만일 트래픽 비트가 "0"이면, 메시지는 존재하지 않고 제어 루팅은 아래의 메시지와 동일하다. 헤더의 가장 중요한 비트(208)는 목표지점을 나타낸다. 특히, 값이 "1"이면 위쪽 열 세트에서 목표지점을 나타내고, 값이 "0"이면 아래쪽 열 세트에서 목표지점을 나타낸다.
제어 셀 상태
헤더의 가장중요한 비트(W) 트래픽 비트(D1) 위쪽열 세트에 접속되는 제어 셀 아래쪽 열 세트에 접속되는 제어 셀
0 0 아래쪽(남쪽) 아래쪽
0(아래쪽) 1 오른쪽(동쪽) 아래쪽
0(위쪽) 1 아래쪽 오른쪽
표 2에서는 셀을 통하여 메시지 방향을 얻도록 결정하기 위한 두 메시지의 사용을 요약한 것이다. 래치-설정 신호(1328)가 하이로 가면, 메시지 트래픽 비트(202)는 지연소자 D1(1510)에 존재하고 MSB(208)는 라인 W(1302)에 존재하게 된다. 가장 중요한 비트 설정이 위쪽으로 연결된 셀에 "0" 입력되는 경우에는, 메시지는 오른쪽으로 루팅되고 위쪽 레벨에 셀은 메시지가 아래쪽으로 드롭되지 않게 신호되어진다. 선택적으로, 만일 동일한 메시지가 아래쪽에 연결된 셀에 입력되고 아래에서 블록되지 않는다면 메시지는 아래쪽으로 루팅된다. 그래서 위쪽 및 아래쪽에 연결된 셀의 제어 로직은 헤더의 가장 중요한 비트의 값에 관련되어 보충된다. 위쪽 열 세트에 연결되는 셀의 경우에는, 게이트(1556)가 사용되어진다. 아래쪽 열 세트에 연결되는 셀의 경우에는, 게이트(1576)가 사용되어진다. 만일 메시지가 오른쪽으로 이동하기 위해서는 위쪽에 연결된 셀이 "0"으로 되고, 지연소자(D1)에서 트래픽 비트(202)는 실제 오른쪽측 메시지와 메시지가 없는 상태에서 구별되도록 사용되어진다.
어떤 실시예에서 스위치(100) 타이밍은 메시지가 레벨(0)에서 나갈때를 결정하도록 사용되어진다. 또다른 실시예에서는 열 헤더(212)가 사용되어진다. 도 15b는 레벨(0)에서 열 헤더를 처리하는 특정 제어 셀을 도시한다. 도 2B 및 12와 연결하여 도 15B를 참조하면, 열 헤더(212)를 포함하는 메시지(200)는 열헤더에서 부호화되는 열수가 제어 셀의 열 수와 조화를 이룰때 레벨(0) 제어 셀(1550)을 빠져나간다. 래치 셋 신호(1328)가 하이가 될때, 헤더 로직(1568)은 동일한 시간에 열 헤더에서 모든 비트와 제어 비트(202)를 보여준다. 만일 헤더 어드레스가 열 수와 조화를 이루면 셀은 위치되어지고 메시지는 아래쪽(1556)에서 블록되지 않고, 메시지는 아래쪽(1562)으로 루팅된다. 출력에서 열 헤더(212)를 제거하기 위해서는, 아래쪽 레벨(1562)에 라인(S)은 제 1 페이로드 비트(206)에 접속되어진다. 래치(1556)는 셀(1550) 상태에서 저장되어지고 셀(1500)안 래치(1316)와 유사하게 메시지 흐름을 제어한다.
고속 타이밍 및 제어
도 12A는 메시지 헤더 비트가 레벨당 한번의 주기(1202)율로 스위치를 통하여 아래로 이동하는 스위치(100)의 한 실시예를 나타내는 타이밍 선도이다. 도 13b는 두번의 주기가 옆 셀에 오른쪽으로 이동하기 위해서 두 지연소자(1102)를 부가적으로 통과하여 열상에 오른쪽으로 이동하는 메시지를 나타낸다. 이러한 실시예에서 주어진 열에 모든 레벨은 동일한 래치-설정 신호(1604, 1606 및 1608)를 수신한다. 이러한 실시예에서, 열상에 오른쪽으로 이동하는 메시지 헤더 및 메시지 페이로드 비트는 단지 하나의 지연소자를 통과하고 그래서 오른쪽으로 이동하기 위하여 단지 한번의 주기(1110)를 이용한다. 헤더 비트는 옆 레벨 아래로 움직이기 위해서 한 번의 주기를 이용한다. 아래로 이동하는 페이로드 비트는 레벨 아래에서 셀에 직접 접속되어지고 지연은 하나의 클럭 주기보다 적다. 지연은 셀안 게이트의 전달지연이다.
도 16B를 참조하면, 근접한 레벨에 동일한 열안에서 두개의 높은 속도 제어 셀(1620 및 1622)은 접속되어 도시되어진다. 래치 셋 신호(1604)가 하이로 갈때 출발 시간의 주기(1202)에서는, 왼쪽(1302)에서 입력되는 메시지의 트래픽 비트(202) 및 MSB(208)는 각각 라인 W(1302) 및 지연소자 D0(1618)이다. 회로(1612)에서 세개의 게이트는 비지 신호 BS(1306)에 값을 따라 이러한 비트를 처리하고 회로(1614)에 위쪽 결과(1308)를 즉시 보낸다. 유사하게, 회로(1614)는 레벨 위로 이것을 출력하여 보낸다. 맨 밑의 레벨에서 회로(1614)는 리플-업 패션에서 회로를 세팅하고 위로 향하는 출력(1308)를 보내기 위하여 자리잡는다. 레벨의 수당 회로(1614)의 전달지연은 클럭 주기(1202)보다 작다. 모든 회로는 래치 셋(1604)이 하이로 갈때 정해지고 제어 셀(1620)의 상태를 확인할 수 있다.
32-포트 스위치
도 1A를 연결하여 도 17를 참고하면, 네개의 레벨(1702, 1704, 1706 및 1708) 및 네개의 열(1780, 1782, 1784 및 1786)을 구비하는 32-포트 스위치(1700)의 한 실시예가 도시된다. 실시예에서 포트의 수는 열의 수(4개) 곱하기 레벨당 열수(8) 이다. 그러면, 스위치는 8*4=32 입력포트(104) 및 32개의 출력포트(154)를 포함한다. 스위치(1700)의 설명을 간단히 하기 위해서, FIFO 버퍼(114) 및 광 입출력 제어 구조체(110 및 150)와 같은 것은 도 17에서 생략되어진다.
도 3과 연결하여 도 17를 참고하면, 제어 셀을 배열하는 방법에는 하나의 열을 선택하거나, 열의 각각의 레벨에서 동일한 형상(340)에 제어 셀을 놓는 방법을 포함한다. 가장 왼쪽에 열(1780)은 이러한 예로 선택되어진다. 레벨 3 (1702)에서 스위치 배열(120), 열 0( 1780)은 동일한 형상으로 배열되는 제어 셀을 구비한다. 열(0)에서 제어 셀의 수적 표기는 셀의 열 수로 정의되어진다. 레벨 3(1702)에서 열 0(1710)은 제 1 열(1780)안에 위치하는 제어 셀(1712)을 구비하고, 셀에서 나타나는 수적 표기는 "0"이다. 유사하게, 동일한 형상 및 표기가 열(0 1780)의 모든 다른 레벨에서 놓여진다.
열(0)의 배열이 완전하게 된 후에는, 레벨은 스위치의 배치에서 다음 공정을 위하여 선택되어진다. 어떤 레벨이 선택되어지지만, 가장 바람직하게는, 가장 높은 레벨이 선택된다. 즉, 이 실시예에서는 레벨 3(1702)가 선택된다. 제어 셀은 레벨(3)을 통하여 동일한 형상으로 배열되어진다. 제어 셀에서 수적표기는 위치시퀀스를 이끌어낸다. 도 6A 및 도 9를 참조하면, 8열의 배치 시퀀스(614)가 스위치(1700)를 위하여 선택되어진다. 시퀀스(608 또는 624)와 같은 다른 8열의 시퀀스가 동등하게 선택되어진다. 시퀀스(614)를 이용하여, 레벨(3)에서 열 091710)은 포지션(0)에서 제 1 제어 셀을 구비한다. 제어 셀(1300) 또는 리플-업 셀(1620)은 스위치 배열(120)에서 사용되어진다. 실시예의 설명에서, 레벨(0)위에 스위치에서 모든 셀은 스위치의 동일한 형이다. 열(0)상에 셀의 수는 열 연결(634)을 결정하는 시퀀스(614)(0,4,2,6,1,5,3,7,0,..)에서 얻어진다. 그래서, 열 0(1712, 1714, 1716 및 1718)상에 셀의 수는 0, 4, 2, 및 6이다. 열 1(1720)상에 제 1 셀은 포지션 "1"이고, 열(1722, 1724, 1726 및 1728)상에 셀은 1, 5, 3,7로 숫자되어진다. 왼쪽에서 오른쪽으로의 배치방법은 레벨 3(1702)에서 나머지 열상에 제어 셀의 수를 이용한다.
스위치(1700)의 배치에서 다음 공정은 완전한 레벨 아래에 레벨에서 제어 셀을 위치시키는 것이다. 즉 레벨 "2(1704)" 이다. 레벨 3(1702)에서 제어 셀의 수는 제어 셀이 위치되는 레벨을 나타낸다. 레벨 3, 열 0(1710), 열 1(1782) 및 제어 셀(1714)은 "4"로 숫자를 붙이고 이것은 아래쪽 레벨(1744)상에 셀이 열(4)상에 위치되는 것을 나타낸다. 계속해서 왼쪽에서 오른쪽으로, 셀(1716)은 "2"로 숫자되어지고 이것은 아래쪽 레벨상에 레벨(2) 셀이 열(2)상에 위치되어짐을 나타낸다. 가장 높은 상부 레벨 아래에 모든 제어 셀의 열 위치는 위쪽 레벨에서 셀에 수 값으로 결정된다.
다음 공정은 레벨(2 1704)에 위치되는 셀의 번호이다. 레벨(2 1704)은 두 열의 세트(1750)를 포함한다. 하부 열 세트 시퀀스는 "910"(0,2,1,3,0,..)이다. 상부 열 세트 시퀀스는 4를 첨가하여 얻어지고, 그 결과 시퀀스는 "912"(4,6,5,7,4,..)이다. 레벨(3)에서 번호를 부여하기 위하여 기술된 방법을 이용하면, 레벨(2)에서 열 0(1730)상에 셀은 0, 2, 1, 및 3으로 숫자되어진다. 나머지 하부 열은 동일한 시퀀스 및 방법을 이용하여 숫자되어진다. 열 4(1740)상에 셀은 4, 6, 5 및 7를 이용하여 숫자되어지고, 레벨(2)에서 남아있는 상부 열 세트는 유사하게 적용된다.
레벨 1(1706)에서 셀은 셀안에 숫자를 이용하여 위치되어진다. 레벨(1) 셀 숫자는 4개의 2열 시퀀스(0,1,0,..),(2,3,2,..),(4,5,4,..) 및 (6,7,6,..) "918"를 이용한다. 레벨 0(1708), 가장 하부의 레벨,은 유사하게 설계되고, 제어 셀은 위의 셀에서 숫자를 이용하는 것에 의해 열상에 위치되어진다. 레벨 0(1708)에서 숫자 또는 제어 셀은 언제나 열 숫자이고, 또한 출력포트(154)의 숫자를 결정한다.
요약하면, 스위치(100)의 포트의 수는 열(164)의 수 및 레벨당 열 수를 선택하는 것에 의해 결정되어진다. 열(R)의 수는 바람직하게는 2L이고, 여기서 L+1은 레벨의 수이다. 셀은 가장 왼쪽의 열(1780), 열(0) 및 가장 높은 레벨(1702)에서 동일한 형상을 설계하는 것이 가장 바람직하다. 열(0)에서 셀의 수는 열의 수와 동일하다. 스위치 배열(120)에서 셀의 나머지의 배치는 왼쪽에서 오른쪽으로 위쪽에서 아래쪽으로 발생한다. 열상에 셀의 수는 레벨에 대한 배치시퀀스에 위해 결정되어진다. 상부 레벨 아래에 셀의 배치는 위쪽에 셀에 의해 결정되어진다. 레벨(0)의 숫자는 열의 수와 동일하고, 출력포트 수에 따라 결정되어진다.
플랫-대기시간 제어 셀 상태
도 18A, 18B, 및 18C를 참고하면, 왼쪽(1802)에서 두개의 입력, 위쪽 레벨(1804)에서 두개의 입력, 오른쪽(1806)에서 두개의 입력 및 아래쪽(1808)에서 두개의 입력을 가지는 제어 셀(1800)은 플랫-대기시간 제어 셀로 불리어진다. 왼쪽(1802)에서 입력 라인은 "W1" 및 "W2"로 표기되어지고, 위쪽 레벨(1804)에서 입력 라인은 "N1" 및 "N2"로 표기되어지고, 오른쪽(1806)에서 출력 라인은 "E1" 및 "E2"로 표기되어지고 및 아래쪽(1808) 출력 라인은 "S1" 및 "S2"로 표기되어진다. 제어 셀(1800)은 부가적으로 상부 레벨에서 두개의 비지 신호 라인(1812)을 구비하고, 도 18A에서 라인 "BN"으로 표기되어지고, 하부 레벨에서 두개의 비지 신호 라인(1812)을 구비하고, 도 18A에서 라인 "BS"로 표기되어진다. 라인 BS(1812)에 비지 신호는 도 18A에서 단지 상태(7)의 실시예를 도시한다.
일곱개의 연결상태, 1 내지 7(1830),는 플랫-대기시간 제어 셀(1800)의 작용에 의한 것이다. 입력 라인 W2는 아래쪽 출력라인 S1(1820), 아래쪽 출력라인 S2( 1822), 또는 동일한 열상에 오른쪽 출력 라인 E2(1824)에 접속되어질 수 있다. 유사하게, 입력 라인 W1은 아래쪽 출력 라인 S1(1826), 아래쪽 출력 라인 S2(1822), 또는 동일한 열의 오른쪽 출력 라인(E1)에 접속되어질 수 있다. 아래쪽 출력 라인(S1 1820)은 레벨 아래에서 위쪽 열 세트에 접속되어지고, 출력 라인 S2은 레벨 아래에서 열 세트 아래에 접속되어진다. 아래쪽에 동일한 출력에서 입력라인(W1, W2)의 접속은 허용(1828)되지 않는다. 위쪽 레벨에서 입력 라인(N1)은 라인 W1이 라인(E1)에 접속되지 않을때 오른쪽 출력 라인(E1 1834)에 접속되어진다. 입력 라인(N2)은 라인(W2)이 라인(E2)에 접속되지 않을때, 라인(E2)에 접속되어진다. 즉, 라인 W1은 출력 라인(E1)의 사용시 라인(N1)의 우선순위를 갖고, 유사하게 라인(W2)은 출력 라인(E2)의 사용시 라인(N2)의 우선순위를 갖는다. 입력 라인 W1이 출력 라인(E1)에 접속되어질때, 비지 신호(1810)는 위쪽 레벨에 적절한 접속 라인(BN)을 통해 위쪽으로 보내지고, 라인(W2)이 라인(E2)에 접속되어질때도 유사하다. 아래쪽 출력라인이 왼쪽에 다른 입력라인, 예를들면 라인(S1)과 접속하지 않을 때, 값 "0"은 메시지를 아래쪽(1832)으로 보내지 않음을 나타낸다.
플랫-대기시간 제어 테이블
도 18A와 함께 도 18B를 참조하면, 플랫 대기시간 제어 셀(1800)의 상태(1830)가 얻어지고 또는 아이템의 값이 제어 테이블(1840)의 네 번째 열에서 도시된다. 라인 W1(1842)에서 제어 셀(1800)로 들어오는 메시지의 헤더 어드레스는 메시지가 라인(S1)을 통하여 옆 하부 레벨에 상부 열 세트뿐만 아니라 라인 S2를 통하여 하부 열 세트에 아래에서 이동하는 것을 결정한다. 헤더 어드레스는 라인 W2(1844)에 들어오는 메시지를 위해 동일한 방법으로 작동한다. 만일 양쪽 메시지가 열 세트의 위쪽 반으로 향하거나, 또는 양쪽이 아래쪽 반으로 향하면, 라인 W1에서 메시지는 라인(W2)에 메시지에 우선순위를 갖고 후자는 오른쪽으로 움직이는 대신에 아래쪽으로 이동하는 것을 허용하지 않는다. 라인 W1에 들어오는 메시지의 방향은 이것의 헤더 MSB(204)를 검사하는 것에 의해 유도되고, 라인(W2)에 메시지를 위해 제 1 열(1842) 및 제 2 열(1844)에서 나타난다. 메시지가 라인 W1과 라인 W2에 존재하지 않는 경우에는, 표기는 "NONE"으로 도시된다. 플랫-대기시간 제어 셀(1800)은 언제나 상부 및 하부 열 세트에 연결되어진다.
도 3을 참고하면, 아래쪽 레벨(316)에서 경로는 블록되어지고, 대응하는 비지 신호(330)에 의해 나타난다. 도 18A 에서는 라인 S1, S2(1808)의 하부 레벨에서 두 경로는 한 라인 BS(1812) 두 비지 신호에 의해 제어되어진다. 테이블(1840)에서는 두 개의 비지 신호(1812)의 스테이터스가 각각 제 3(1846) 및 제 4(1848) 열에서 주어진다. 옆 하부 레벨에 상부 열 세트에서 출력 라인(S1)은 "1"에 의해 비지(블록)된 것을 나타내고 또는 제 3 열(1846)에서 "0"에 의해 비지되지 않고, 유사하게 제 4 열(1848)도 라인 S2에 적용된다. 표기 "적용되지 않음"에 대한 "na"는 메시지가 상부 또는 하부 열 세트에 향하지 않음을 나타낸다.
테이블(1840)의 첫 번째 열은 라인(W1 및 W2)에서 메시지가 상부 열(1842, 1844)에서 아래로 이동하고, 상부 열의 경로는 블록되지 않고, 열(1846)에서 "0"에 의해 나타내어진다. 라인 W1에서 메시지는 우선순위를 갖고 열(1850)에서 나타나는 상부 열에 출력라인 S1에 접속되어진다. 라인 W2에서 메시지는 열(1852)에서 나타나는 라인(E2)을 통하여 오른쪽으로 향한다. 이 접속 상태는 도 18A에 상태 5(1830)로서 테이블(1840)의 다섯 번째 열에서 도시되어진다. 테이블(1840)에서 옆 열은 라인(S1)이 아래쪽 레벨에서 블록되어지고 양쪽 메시지가 각각 열상에서 오른쪽으로 향한다는 것을 제외하고는 첫 번째 열과 동일한 상태를 묘사한다. 이것은 상태 7(1830)로서 도시되어진다. 라인(W1 또는 W2)에 메시지가 없는 상태에서는, 각각의 입력 라인이 아래쪽 출력 라인(S1 또는 S2)에 접속되어지고, 메시지를 아래쪽(1832)으로 보내는 것을 방지하고 위쪽 레벨(1804)에서 각각의 입력 라인의 블록을 방지한다. 동등하게 아래쪽 출력은 직접 신호 값 "0"(1832)에 접속되어진다.
테이블(1832)은 테이블(1840)의 열에서 아이템의 값이 플랫-대기시간 제어 셀(1800)의 상태(1830)를 결정하는 것을 도시한다. 제어 셀(1800)의 상태(1830)는 열 "6" 및 "7"(1854)에서 도시된 래치 "T1" 및 "B1", 및 열 "9" 및 "10"(1856)에서 도시된 래치 "T1" 및 "B2"를 결정한다.
플랫-대기시간 로직의 상세한 설명
도 18B와 함께 도 18C를 참고하면, 플랫-대기시간 제어 셀 로직의 일부분의 실시예가 도시되어진다. 로직에서는 테이블(1840)에서 열거된 래치가 생략되어 있다. 래치 T1 및 B1(1854) 및 래치 T1 및 B2(1856)는 입력 포트(W1, W2, N1 및 N2)에서 어떤 메시지의 루팅을 제어한다. 게다가 라인 BN1(1875) 및 BN2(1877)상에 비지 신호의 출력 값은 래치로부터 유도되어진다. 출력 라인(E1)이 메시지의 전달에 사용되어질 때, 라인 BN1(1875)상에 비지 신호는 신호 값을 "1"로 하고 열(E1)은 비지를 나타내는데, 열(E2)에서의 출력과 라인 BN2(1877)에 비지신호도 유사하다. 메시지(200)가 플랫 대기시간 제어 셀(1800)로 들어가면 트래픽 비트(202)는 지연소자(D0)에 저장되어지고, 래치 셋 신호(도시되지 않음)는 테이블(1840)에서 정의된 처리를 초기화하고 네개의 래치 세팅을 제거한다. 처리는 메시지(200)의 연속적인 비트가 바람직하게 아래쪽이나 오른쪽으로 루팅되는 결과를 가지는 하나의 클럭 주기안에서 실행되어진다. 도 13A에서 기술되는 것처럼, 헤더의 가장 중요한 비트(208)는 아래쪽으로 이동하는 메시지로부터 스트립되어진다.
제어 셀 A(1800)은 위로 향하는 레벨인 셀 B(1800)에 접속되어져 셀 A의 라인 BN1 및 라인 N1은 각각 셀 B의 라인 BS1 및 S1에 접속되어지고, 셀 A의 라인 BN2 및 라인 N2는 위로 향하는 레벨인 또다른 셀(C)의 라인 BS2 및 S2에 각각 접속되어진다. 레벨 Q에서 셀 D와 같은 또다른 경우에는, 셀 D의 네 개의 접속 라인(BN1, N1, BN2 및 N2)은 위로 향하는 레벨인 셀 F의 라인(BS1, S1, BS2 및 S2)에 각각 접속되어진다. 셀 A는 언제나 하나의 셀 G에 오른쪽에 접속되어져 셀 A의 라인 E1 및 E2는 셀 G의 라인 W1 및 W2에 각각 접속되어진다.
플랫 대기시간 제어 셀 심볼
도 18B 및 18D를 참조하면, 라인 W1에서 메시지는 라인 W2에 메시지에 우선순위를 가진다. 즉, 다시 말하면, 양쪽 메시지가 라인(S1 또는 S2)에 아래쪽으로 동일한 비블록 열 세트에서 목표되어지면 라인 W1에서 메시지는 우선순위를 가지고 라인 S1 또는 S2의 출력이 아래쪽으로 루팅되고 라인 W2에서 메시지는 라인 E2에 루팅된다. 제어 셀(1800)의 상호 버전으로, 라인 W2에서의 메시지는 라인 W1상에 메시지 위에 우선순위를 구비한다. 이러한 상호 제어 셀의 로직은 테이블(1840)에서 상호변경되는 라인 W1 및 W2와 상호변경되는 라인 E1 및 E2에 의해 한정되어진다. 도 18D는 라인 W1이 라인 W2에 우선순위를 가질 때 플랫-대기시간 제어 셀(1800)의 심볼 표현(1880)이고, 우선순위는 솔리드 블랙(1882)에 의해 나타난다. 라인 W2가 라인 W1 위에 우선순위를 구비하는 상호 버전에 있어서, 저면 블록은 솔리드 블록이다. 심볼(1880)의 또 다른 버전에서는 아래쪽 레벨에서 위쪽 레벨에 비지 신호 접속은 간략화를 위해 생략되어진다. 이러한 간결한 심볼는 도 19에서 주어지는 플랫-대기시간 스위치의 완전한 설계의 기술을 간단히 하기 위해 사용되어진다. 어느 한쪽의 우선순위 개요에서, 설명하지는 않지만, W1은 상부 접속을 위해 우선순위를 구비하고 W2는 짝수의 열에서 하부 접속을 위해 우선순위를 구비하고, 우선순위는 홀수의 열을 위해 전환되어진다.
16×4 플랫 대기시간 스위치
도 1, 3, 6A, 6C, 18A, 및 18D와 함께 도 19를 참조하면, 네 개의 열 및 네 개의 레벨의 플랫 대기시간 스위치(1900)가 기술되어진다. 각각의 레벨은 0부터 15까지 열거된 16열(1902)를 포함한다. 플랫-대기시간 제어 셀(1800)은 도 18A 및 18C 에서 도시되는 것처럼,두 쌍의 수직 접속을 가지는 두 열에 접속된다.
제어 어레이(120)내에 셀(1800)을 배치하는 방법을 설명한다. 스위치(100)의 다른 구성요소는 본 명세서와 상기 도면에서 생략되어 있다. 스위치(1900)의 전체 입력 포트(104) 갯수는 행(16)의 수와 열(4)의 수를 곱한 것으로, 즉 64개이다. 출력포트(154)의 수는 입력포트의 수와 동일하다.
도 1, 18A, 및 18C를 참조하면, 플랫-대기시간 제어 셀(1800)은 라인 S1(1870) 및 S2(1872)에서 아래방향으로의 2개 출력을 갖는다. 이러한 셀(1800)의 "이중 출력"성 때문에, 레벨 0 제어 셀은 플랫 대기시간 스위치의 동작에서 사용되지 않는다.
스위치 어레이(120)내에 플랫 대기시간 제어 셀(1800)을 위치시키는 방법은 모든 열에서 최하 레벨, 레벨(1)에 아이덴티티 구성으로 셀을 먼저 위치시키는 것에 관한 것이다. 따라서, 제어 셀은 스위치 어레이(120)의 하위 좌측에서 상위 우측으로 연장되는 대각선을 따라 위치된다. 레벨(1902)당 16개의 행 및 셀(1800)당 2개의 행이 주어지면, 스위치 어레이는 16/2, 즉 8셀을 이용한다. 행의 쌍의 최상위 행에 우선순위(1882)를 갖는 제어 셀(1880)은 열 0(1910)에서 제어 어레이(120)내 대각선을 따라 위치된다. 다음 열, 열 1에서, 바닥 행(1904)에 우선순위를 갖는 제어 셀은 제어 어레이를 채우기 위해 사용된다. 이러한 하나의 열에서 다음 열로의 열 우선순위 교대 방법은 스위치(1900)의 배치의 나머지부분에서 사용된다. 레벨 1위의 모든 레벨에서의 열 0에서 다른 제어 어레이는 레벨 1과 동일한 배치, 즉 최상위 우선순위 셀(1882)의 아이덴티티 구성을 포함한다. 이것은 스위치(1900)의 최하 레벨과 가장 좌측 열의 배치를 완료한다. 남아있는 스위치 어레이는 레벨 2에서 시작하는 각각의 레벨에서 좌측에서 우측순으로 배치되고, 최상위 레벨이 완료될 때까지 한번에 한 레벨씩 이동한다.
박스(1916)내 번호는 제어 셀(1800)이 연결되는 아래방향 레벨로 포트(154) 쌍 중 가장 낮은 출력포트 번호를 가리킨다. 셀(1910)은 포트 0과 연결되고 또한 포트 1과도 연결된 것으로 도시되어 있다. 공간이 제한되어 있고 배치 프로세스에서 번호 "1"이 필요하지 않기 때문에 도 19에서 상기 번호가 생략된다. 박스(1916)내 번호는 상기 레벨로 제어 셀의 배치를 돕기 위해 사용된다.
도 9를 또한 참조하면, 레벨 2에서 행 0을 따라 오른쪽으로 이동하는 메시지는 시퀀스(0,2,1,3,0,...)(910)로 지정된 연결을 따른다. 제 1 셀(1924)은 행 0 및 행 2와 연결된다. 오른쪽으로의 다음 셀(1926)은 행 1 및 행 3과 연결된다. 레벨 1과 레벨 2 사이의 수직 상호접속 패턴(1922)은 시퀀스(910)를 만족하는 연결을 형성한다. 다음 열(레벨 2)에서, 셀(1926)은 행 1 및 행 3에서 하부방향 레벨로 셀을 각각 연결한다. 스위치 어레이간의 수직 박스(1928)내 번호는 배치 시퀀스(1920)를 나타낸다(명확하게, 쌍의 제 1 번호만이 나타나있다). 레벨 2에서의 행 0의 검사는 제어 셀이 하부방향 레벨로 0,1,0, 그리고 1에서 셀위에 연속적으로 위치되어 있다. 시퀀스(0,1,0,1)는 레벨 2에서 연속적인 박스(1928)내 최하 숫자로 나타나서, 레벨 2에서 제어 셀의 최하 행의 위치를 결정한다.
레벨 2에서, 다음 행의 셀은 행 2와 행 3을 따라 배치된다. 열 0에서 행 2와 3상의 셀은 남아있는 쌍의 연결 1과 3로만 연결된다. 하위방향 레벨로의 가장 낮은 행 번호는 0이지만, 배치 처리에서의 모호성을 피하기 위해 0은 수평 박스(1916)(레벨 1과 2 사이)에서 반복되지 않는다. 즉, 박스(1916)내 각각의 값은 하위방향 레벨과 연결된 셀의 쌍의 최하위 행 번호를 나타낸다. 2개 셀이 4개 행 번호와 함께 사용되기 때문에, 최하위 행는 이미 시퀀스에서 사용되지 않는한 사용된다. 후자의 경우, 다음의 최하위 번호가 사용된다. 따라서 시퀀스 0,1,4,5,8,9,13,14는 상기 레벨 위에서의 셀의 배치를 유리하게 돕기 위해 (0,0,4,4,8,8,13,3보다) 레벨 1 이상에서 사용된다. 레벨 2 이상의 박스(1916)는 상기한 규칙을 이용할 때 채워지고, 설명된 값들은 레벨 3에 셀들을 위치시키기 위해 사용된다.
배치 시퀀스(0,4,2,6,1,5,3,7,0,...)(614)는 제어 셀을 배치하기 위해 레벨 3에서 사용된다. 레벨 2와 레벨 3 사이의 수직 상호접속 패턴(1932)은 시퀀스(614)에 요구되는 연결을 만족시킨다. 도 19A에서, 상기 쌍의 제 1 숫자만이 배치에서 사용되기 때문에, "614"에서 각각의 쌍의 제 1 숫자는 진한 글씨체이다. 셀(1930)은 하부방향 레벨로 행 0 및 행 4와 연결된다. 열 0에서, 대각선에서의 다음 셀은 행 1 및 5와 연결되고, 다음 셀은 2 및 6과 연결되며, 대각선에서 네번째는 3 및 7과 연결된다. 즉, 4쌍의 제 1 숫자는 시리즈 0,1,2,3을 형성한다.
시퀀스(0,4,2,6,1,5,3,7,0,...)(614)로부터 얻어진 교대 숫자는 행 배치에서 사용되는 시퀀스(0,2,1,3,0,...)를 산출해낸다. 행 0 및 1을 따라서, 셀(1800)은 하부방향 레벨로 연결(0,2,1,3) 위에 배치된다. 이러한 시퀀스는 레벨 3에서 수직 박스(1928) 시리즈의 최하위 숫자로 도시되어 있다. 행 2 및 3을 따라서, 셀은 연결(1,3,0,2)위에 배치된다. 열 0의 오른쪽의 열들내 레벨 3에서의 제어 셀은 왼쪽으로의 수직 박스(1928)내 유사번호의 인터섹션과 인터레벨 박스(1916) 아래에 배치된다. 레벨 3위 인터레벨 박스(1928)는 레벨 2에서 상기한 규칙을 이용할 때 채워진다.
배치 시퀀스(0,8,4,12,1,9,5,13,2,10,6,14,3,11,7,15,...)(658)는 레벨 4(1950)을 배치하기 위해 사용된다. 셀(1940)은 행 0 및 8과 하부방향 레벨로 연결된다. 대각선을 계속 따라가면, 다음 셀은 1 및 9와 연결되고, 다음 셀은 2 및 10과 연결되는 식이다. 상기 상호접속 패턴(1942)은 이러한 연결 요구를 만족시킨다. 레벨 4의 나머지부분은 "658" 쌍의 제 1 숫자로부터 얻어진 시퀀스, 즉 0,4,1,5,2,6,3,7,0,...를 이용하여 수직 박스를 먼저 채움으로써 배치된다. 이러한 시리즈는 레벨 4에서 수직 박스(1944)를 채우기 위해 사용된다. 제어 셀은 박스에서 각각의 스위치 어레이 좌측과 아래쪽으로의 유사 번호 인터섹션에 배치된다. 도 19A는 플랫 대기시간 스위치(1900)에서 제어 셀(1800)을 배치하기위해 본 명세서에서 기술된 규칙의 응용을 설명하고 있다.
만일 라인(W2)에서 셀(1910)로 입력되는 메시지가 우선순위를 갖고 레벨 0에서 동일한 행로 선택적으로 이동하는 라인(W1)에서 또다른 메시지에 의해 블로킹되지 않는다면, 그리고 만일 목표 행이 하부방향 레벨로부터 막히지 않는다면, 행 0위의 메시지는 즉시 메시지 목표로 아래로 전달된다. 따라서, 라인(W1) 또는 라인(W2)에서 막히지 않은 메시지는 항상 하부방향으로 이동한다. 플랫 대기시간 스위치(1900)의 사용 및 도해적인 구현에서, 제어 셀(1800)로 들어가는 메시지는 극소의 블로킹 가능성을 갖고, 따라서 일반적으로 메시지가 좌측에서부터 제어 셀로 들어가는 매시각 하부방향으로 이동한다. 또한 도 17을 참조하면, 스위치(1700)의 대기시간는 메시지가 하부방향으로 이동하기전 50% 확률로 다음 열로 이동하도록 한다. 따라서, 하부방향으로 드롭되는 메시지는 일반적으로 시간의 반을 "틀린(wrong)" 행 세트에 도달한다. 대조적으로, 스위치(1900)에서 하부방향으로 드롭되는 메시지는 유리하게 항상 상위 및 하위 행 세트와의 연결을 갖는다. 유사한 로딩 조건이 주어진다면, 스위치(1700)는 스위치(1900)보다 50% 더 큰 평균 대기시간를 갖는다. 또한, 스위치(1700)를 통한 싱글 메시지의 대기시간 및 경과시간은 최소값의 100%에서 200% 변화하는 반면, 스위치(1900)를 통한 싱글 메시지의 대기시간는 모든 메시지에서 거의 일정하며 한 경로 스위치(1700)의 최소 대기시간와 동일하다.
입력포트 연결
도 8B를 참조하면, 하위 레벨에서 우측으로 움직이는 메시지 B(840)는 위의 레벨에서 요구된 또다른 메시지 A(802)의 하측으로의 이동을 막을 수(842) 있다. 막힌 메시지 A의 결과로서, 다른 메시지 C(844) 및 D(846)는 메시지 A에 의해 유사하게 블로킹될 수 있다. 메시지 A가 제 1 실시예에서 막히지 않도록 회피되었다면, 메시지 C 및 D 또한 막히지 않는다. 스위치내 메시지의 수가 증가함에 따라, 각각의 메시지의 유사 막힘이 증가된다. 도 4를 참조하면, 메시지(200)는 열 준비신호(404)가 높아질 때마다 스위치(100)에 들어가도록 허용되고, 입력포트 또한 막히지 않는다. 스위치(100)의 통계적 분석은 메시지가 임의의 실시예의 스위치를 통과하는 동안 막히게 될 가능성은 스위치로의 메시지 입력 속도가 낮아지는 만큼 크게 감소된다.
스위치로의 최대 입력 속도(100%)는 각각의 막히지 않은 시간(406)에 모든 포트(104)가 메시지를 수신할 때의 조건으로 한정된다. 만일 상기 속도가 특정한 실시예의 스위치(100) 및 크기에 따라 25% 내지 50% 범위로 낮아진다면, 메시지 블로킹 및 대기시간 분산에서의 좋지 못한 영향이 사소한 지점까지로 크게 감소된다. 입력 속도를 감소시키는 한가지 방법은 포트(104)와 연결된 외부장치가 메시지가 입력되는 주파수를 측정하거나 감소시키도록 지정하는 것이다. 불리하게도, 이러한 방법은 스위치 외부의 장치상에서의 속도를 감소시킨다. 대안적인 방법은 열 준비신호(404)가 전송되는 속도를 감소시키는 것과 관계된다. 불리하게, 외부 장치는 메시지를 입력하기위해 더 오래 기다려야 할 수도 있다. 이러한 속도 감소방법중의 하나의 효과는 유효 대기시간를 증가시키고 스위치(100)의 전체 처리율을 감소시킨다.
도 17 및 20A를 참조하면, 8×4 스위치(1700)의 최상위 레벨(1702)이 32 입력포트(104)를 갖는 것으로 도시되어 있다. 대안적인 실시예의 스위치(1700)에서, 동일한최상위 레벨(2010)은 다수의 입력라인의 절반 이하의 개수를 갖는다. 최상위 레벨에서 제어 셀(300)은 입력포트와 연결될 수도 있고 연결되지 않을 수도 있다(2112). 도 20A의 처음 2열은 바람직하지 않은 증가된 대기시간 효과없이 입력속도를 50%로 감소시키는 방법을 설명하고 있다. 입력속도가 또한 감소되고, 특정 셀(2114)을 입력(104)과 연결시키지 않으므로써 조정된다. 하나의 실시예의 스위치(1700)에서, 출력 연결(154)은 생략된 입력포트(도시되지 않음)에 대응하는 방법으로 유사하게 생략된다. 따라서, 스위치는 동일한 수의 입력 및 출력포트를 갖는다. 또다른 실시예에서, 모든 32 출력포트(154)가 구현된다. 따라서, 대안적인 실시예의 스위치(1700)는 32입력 및 32출력포트, 또는 16입력 및 16출력포트, 또는 16입력 및 32출력포트를 가질 수 있다. 로딩 인수 및 성능을 고려하여, 다른 실시예에서 다른 연결 갯수가 선택될 수 있다. 입력(104)의 갯수 및 배치에 대한 전체 가능한 수는 스위치(100)내에서의 최대 메시지 흐름밀도를 결정한다. 메시지 흐름 밀도는 최대 가능한 수에 대한 스위치내 메시지의 실제 수로 한정된다.
도 18D, 19, 및 20B를 참조하면, 플랫 대기시간 스위치의 입력 속도는 도 20A의 처음 2개 행에서 기재된 동일한 구성을 이용하므로써 50%까지 감소된다. 즉, 대안적 행내 셀(1880)은 입력 연결(2024)을 갖지 않는다. 도 20C에서, 또다른 방법은 셀(1880)의 2개 상위방향 입력라인(1874,1876)중의 하나만 입력포트(104)와 연결하는 방법에 관한 것이다. 그 동일한 행에서 좌측으로의 셀이 행 우선순위를 제공하고, 따라서 행는 "104"로부터의 입력을 막는 메시지를 포함하기 쉽지 않기 때문에, 입력(104)은 우선순위(2072,2074)를 갖지 않는 행과 적절하게 연결된다. 추가로 스위치 입력속도를 감소시키고 미세조정하기 위해, 도 20B 및 20C에 도시된 방법의 조합이 사용된다. 특히, 도 20A의 입력 연결과 유사하게, 일부 열들은 셀(2072)당 하나의 입력만을 갖고, 다른 열들은 갖지 않는다(2024).
하나의 실시예의 스위치(100)의 규소 IC 칩 구현의 입력(및 출력)포트의 수는 제한된 핀이 된다. 즉, 칩에서 유효한 입출력 연결의 수는 스위치의 크기를 결정하낟. 이러한 상황은 제어 셀을 구현하기 위해 사용된 논리 게이트의 수량을 상당히 작게 만든다. 기술적으로 결정된 환경과 사용되는 매우 작은 수량의 게이트의 이러한 세트가 주어지면, 논리적 용량은 대기시간 및 메시지 흐름 밀도를 감소시키기 위해 핀 용량에서 유리하게 사용된다. 논리적 용량을 개발하는 한가지 방법은 좀더 복잡한 플랫 대기시간 셀(1800)에서의 유효 논리의 초과분을 소비하는 것이다. 또 다른 방법은 입출력 포트 연결(2112)을 감소시키는 것과, 차이를 만들기 위해 추가 열을 혼합하는 것이다. 도 20B 및 20C에서 실시된 바와 같이, 양쪽의 방법을 결합하여 사용할 수도 있다. 실재로, 유효한 I/O 연결 또는 핀은 스위치의 용량을 결정한다. 설명을 위한 실시예에서는 필요한 열의 최소 수의 2 내지 4배 또는 그 이상의 인수를 이용한다. 예를 들어, 64포트 스위치(1900)는 도 20B 및 20C에 도시된 입력 연결 방법의 결합 또는 도 20C의 입력 연결 방법을 이용하므로써 8 내지 12 내부 열(도 19의 4열에 대해)으로 구현된다.
우측에서 좌측으로의 연결
도 21A, 21B, 및 21C에서, 다양한 동에서 서(또는 우측에서 좌측)으로의 연결 구현이 설명되어 있다. 도 1 및 3과 연결하여 도 21A를 참조하면, 최우측 열(164)에서의 메시지는 선택적 FIFO 버퍼(114)를 통과하고, 행 출구 지점(172)에 도달한다. 출구 지점(172)은 행(360)을 따라 좌측에서 우측으로의 이동에서 메시지의 최우측 위치가 된다. 지점(172)에서의 메시지는 상기 레벨 아래로 또는 출력포트 아래로 연속적으로 이동하지 않았다. 일부 실시예의 스위치(100)에서, 메시지는 동일한 행상에서 경로(2104) 좌측으로 행 입구 지점(174)으로 전달되고, 열 0(160)에서 스위치 어레이(120)내 제어 셀과 연결된다. 열 0에서의 메시지는 즉시 메시지 목표 행로의 여정의 지속에서 아래로 이동할 기회를 갖는다.
도 7, 20A 및 21B를 참조하면, 또다른 실시예의 스위치(100)는 외부적으로 연결되지 않은 입력포트(104)로 전달된(2106) 행 출구 지점(172)에 도달하는 메시지를 갖는다. FIFO(2108)는 열 타이밍 요구를 만족시키기 위해 메시지의 타이밍을 조정한다. 사용되지 않은 행 입구 지점(2120)은 외부적으로 연결될 수도 있고, 최상위 레벨 아래의 레벨에서의 지점(174)에서 스위치에 입력되는 메시지가 최하위 레벨에서의 모든 가능한 행에 반드시 도달할 수 없다는 제한을 갖는 입력포트(104)로서 기능할 수도 있다. 예를 들어, 레벨 2에서 상위 행 세트(710)내 행에서 스위치에 입력되는 메시지는 레벨 1에서 최하위 행 세트(716)내 임의의 행에 도달할 수 없다. 최상위 레벨 이하의 레벨에서 스위치로 입력되는 메시지는 최상위에서 입력되는 메시지들보다 낮은 대기시간를 유리하게 경험할 수도 있지만, 메시지가 도달할 수 있는 가능한 목표의 범위내에 제한된다.
도 21A 및 21B에 도시된 연결의 결합인 또다른 실시예(도시되지 않음)에서, 일부 출구 지점(172)는 입구 지점(174)와 연결되는 반면(2104), 다른 출구 지점은 사용되지 않은 입력포트(104)와 연결된다(2106). 도 21C를 참조하면, 또다른 실시예의 스위치(100)는 하나의 행상에서 지속적으로 막힌 메시지가 또다른 행상에서 아래로 이동하기 위한 또다른 기회가 주어지는 유리한 효과를 가지고 다른 행(2110)상에서 입구 지점(174)와 연결되는 출구 지점(172)를 포함한다.
도 2A, 2B, 및 2C를 참조하면, 메시지(200)는 전체 길이(214)를 갖는 일반적으로 헤더 섹션 및 페이로드(206)를 포함한다. 임의의 실시예의 스위치(100)에 입력되는 각각의 메시지의 길이는 변화할 수도 있다. 상기 스위치는 임의의 메시지 길이를 미리 지정된 최대 크기까지 수용할 수 있다. 주어진 실시예의 스위치(100)에서, 헤더(들)의 포맷 및 크기는 스위치의 구현에 따라 고정되지만, 페이로드(206)의 길이가 변화할 수 있으므로, 전체 메시지 길이(214)를 변하게 할 수 있다. 도 8B 및 21A의 검토에 따라, 임의의 열에서 위방향 레벨로부터 제어 셀로 입력되는 메시지는 상기 메시지가 동일한 행(2104)상에서 입구 지점(174)로 되돌아 순환하도록 반복적으로 막힐 수도 있다. 메시지가 계속 블로킹되는 경우, 상기 메시지는 메시지가 윗방향 레벨로부터 행로 먼저 입력된 열에서 제어 셀에 도달한다. 즉, 메시지는 "헤드" 또는 트래픽 비트(202)가 "테일" 또는 페이로드(206)의 최종 비트를 추격하는 상태에 있게 된다. 따라서, 행의 기억 용량은 메시지의 모든 비트(214)를 포함하기에 충분하다.
도 11A, 13A, 15A, 16B, 17 및 18C를 참조하고 제어 셀(1300,1500,1620,1800)를 검사하면, 제어 셀은 셀을 통한 좌측에서 우측으로의 경로에 하나 이상의 지연 요소(1102)를 포함한다. 이러한 지연 요소는 셀에 의한 메시지의 메시지 루팅 및 어드레스 디코딩에 관여한다. 제 1 열에서 마지막 열까지, 행에 따른 모든 제어 셀내 모든 지연 요소(1102)를 집합시키면, 지연 요소의 집합은 FIFO 기억장치로서의 기능도 한다. 예를 들어, 제어 셀(1300)은 2개의 지연 요소를 포함한다. 스위치(1700)는 4개 열을 갖고, 따라서 2×4, 또는 8비트의 행의 4 제어 셀의 기억용량을 갖는다. 실재로, 메시지 길이(214)는 8보다 상당히 크고, 따라서 FIFO(114)는 행 기억용량을 메시지 크기(214)까지 확장시키기 위해 사용된다. 메시지 길이가 32비트인 실시예에서, 각각의 FIFO(114)의 길이는 (32-8) 또는 24비트가 된다.
도 20A, 20B, 및 20C를 참조하면, 입력(104)의 전체 수에 관련하여 열의 수가 증가하는 것은 스위치내 메시지 막힘을 효과적으로 감소시키고, 대기시간를 개선한다. 열의 수가 증가하는 것의 추가적인 이점은 행의 기억용량이 대응하여 증가한다는 것이다. 예를 들어, 16열을 갖는 또다른 형태의 스위치내 32비트 메시지는 FIFO(114)를 전혀 이용하지 않는다. 상기 16열은 헤드가 테일과 충돌하지 않고서 32비트 메시지가 행상에서 순환할 수 있다는 것을 나타내는 32비트의 지연 집합을 산출해낸다. I/O 연결에 대한 논리게이트의 초과가 기술적으로 강제된 상태가 주어지면, 상기한 데이터 흐름 밀도에서의 이로운 감소에 추가하여 각각의 행 메시지 기억용량에서의 증가때문에 논리 게이트는 가능한한 많은 제어 셀상에서 유리하게 이용된다. 도해적인 실시예의 스위치(100)에서, 논리 게이트는 가능한한 아래로 다수의 경로를 만들기 위해, 즉 입력(104)과 연결되지 않은 추가적인 열을 만들기 위해 사용된다. 메시지 길이(214)가 유효 게이트와 관련하여 확대되는 실시예에서, FIFO(114)는 각각의 행에서 사용된다.
행-대기시간 출력
도 22A는 최하위 레벨에서의 블로킹을 감소시키는 행 대기시간 구조를 나타내고 있다. 도 2A를 참조하면, 메시지(200)는 스위치의 최하위 레벨에서 목표 행를 지정하는 행 헤더 어드레스(204)를 포함한다. 도 22A의 출력구조를 갖는 한 실시예의 스위치(100)는 열 헤더(212)를 이용한다. 헤더(204)에서 지정된 목표 행는 메시지의 최종 착신지가 되고, 메시지가 위치하는 물리적 열은 메시지가 최하위 레벨에 도달하는 경우 중요하지 않게 된다. 임의의 최하위 레벨 행에 도달하는 메시지는 모든 열들로부터 병렬로 수집되고, 출력장치(176)에 공급된다. 효과적으로, 복수의 열은 대역폭을 증가시키고 목표(2206)으로의 대기시간를 감소시키며, 더 높은 레벨에서의 블로킹을 최소화하기 위해 사용된다. 최하위 레벨에 도달한 메시지가 즉시 아래로 이동하기 때문에, 메시지는 상기 레벨에서 메시지를 잠재적으로 블로킹하기 위해 레벨 0에서 우측으로 이동한다. 상기한 출력방법은 가능한 최고 속도에서 스위치(100)의 메시지를 효과적으로 소모하여, 상위 레벨에서 대기시간 및 과잉을 감소시킨다.
도 1 및 22A를 참조하면, 하나의 실시예의 스위치(100)에서, 출력 구조(180)는 다수의 외부 장치 또는 메시지 목표(2206)을 포함한다. 이들 장치의 카운트는 최하위 레벨에서의 행의 수와 동일하다. 버퍼 어레이(152)내 버퍼(2210)는 스위치의 최하위 레벨에서 제어 셀(2202)로부터 순차적으로 메시지(200)를 받아들인다. 이러한 실시예는 셀(2202)이 통화중 신호 입력을 갖지 않도록 버퍼(2210)가 데이터를 수용할 준비가 항상 되어있기 때문에 행 대기시간 어플리케이션을 위해 의도된다. 도 4, 12B 및 22B를 참조하면, 메시지의 트래픽 비트(202)는 열 준비 신호(422)에 의해 표시된 시각에 버퍼(2210)에 도달한다. 메시지들간의 최소 시간량은 인터메시지 시간(tpq)(1242)이 된다. 버퍼(2210)는 메시지 트래픽 비트(202) 및 페이로드(206)를 순차적으로 수용한다. 헤더(204)는 도 10의 설명에서 논의된 바와 같이 메시지로부터 제거된다. 버퍼(2210)의 내용은 병렬 버스(178)에 의해 제거되고, 프로세서 또는 수퍼컴퓨터의 제어장치와 같은 목표(176)으로 전달된다. 버퍼(2210)는 메시지가 없다는 것을 표시하기 위해 제로로 리셋된다. 버퍼(2210)내 메시지의 존재는 버퍼내 트래픽 비트(202)에 의해 표시된다. 트래픽 비트는 페이로드가 버퍼내에 있고 다음 사이클(422)전에 제거된다는 것을 나타낸다.
도 1, 12B, 22A, 및 22B를 참조하면, 구조체(2206)내 버퍼(2210)의 입력 타이밍은 버퍼들이 제어 셀(2202)과 다른 열에서 연결되기 때문에 각각의 FIFO(1102)에서 다르다. 시간 차이는 제어 셀내 지연 요소로부터 얻어지고, 시각(tc)(1240)과 동일하다. 열 타이밍 신호는 타이밍 포트(168)에서 외적으로 유효하다.
행 & 열 어드레싱
도 1, 2B, 및 15B를 참조하면, 열 어드레스 헤더(212)를 갖는 메시지(200)는 지정된 행 및 열에서 출력포트로 목표된다. 한 실시예의 스위치(100)에서, 레벨 0 제어 셀(1550)은 열 어드레스(212)를 판독하고, 만일 상기 어드레스가 그 제어 셀의 열 위치와 매치하는 경우 아래로 메시지를 전달한다. 다수의 열과의 상호접속 구조에서, 메시지가 착신지 열에 도달하기전에 다수의 셀(1550)을 통해 우측으로 이동하는 반면, 레벨 0에서 그 행으로 선택적으로 드롭되는 레벨 1에서의 메시지는 그렇게 하는 것이 금지된다. 따라서, 레벨 0 제어 셀(1550)을 이용하는 한 실시예의 스위치(100)는 스위치로부터 메시지를 항상 효과적으로 소모시키지는 않기 때문에, 더 높은 레벨에서의 메시지 막힘의 가능성을 증가시킨다.
도 1, 23A, 23B, 및 23C를 참조하면, 레벨 0에서 출력 구조체(180)는 행 및 열 어드레스(2308)와 함께 출력포트(176)로 메시지(200)를, 블로킹되지 않았다면, 즉시 전달한다. 레벨 0에서 메시지 A는 행 0 열 2로 어드레스된다. 메시지 A는 상기 메시지가, 출력포트(176)를 목표하기 위해 연결되는 FIFO 버퍼(1112)로의 경로(2326)상에서 우측으로 이동하는 경우 열 어드레스(212)를 판독하고(2314) 출력 제어부(2322)로의 경로(2312)상에서 아래로 메시지를 전달하는 제어 셀(2310)로 입력된다. 다음 열에서 선택적으로 셀(2316)로 드롭될 셀(2316)위의 레벨 1 셀에서 또다른 메시지(200)는 레벨 0에서 셀(2310)로부터 우측으로 전달된 메시지에 의해 바람직하게 블로킹되지 않는다. 제어 셀(2322)로부터의 경로(2330)상에서 우측으로 이동하는 메시지는 셀(2316)이 레벨 0에서 제어 셀(2310) 위로 통화중 신호(2316)를 전송하므로써 동일한 어드레스(2308)로 메시지를 전달하는 것을 블로킹한다. 동일한 행과 다른 열에서 어드레스된 셀(2316)에서의 또 다른 메시지는 경로(2330)상에서 셀에 의해 막히지 않는다. 따라서, 동시적인 메시지들이 동일한 행에서 다른 열으로 목표되는 경우 셀(2310,2322)을 이용하는 한 실시예의 스위치(100)는 유리하게도 레벨 0에서 제어 셀(1550)을 이용하는 한 실시예에서 발생하는 막힘이 발생되지 않는다.
버스(2318)는 통화중 신호(2316) 및 데이터 경로(2312)를 포함하고, 아래방향 레벨로 제어 셀(2310)과 구조체(2320)를 연결한다. 구조체(2320)는 K 제어 셀(2322)을 포함하고, 여기서 K는 열의 수이다.
멀티캐스트 제어
대형 스위치의 바람직한 특징은 멀티캐스트 전송 용량으로, 다수 또는 모든 출력포트로 하나의 메시지를 전달하는 것이다. 또다른 실시예에서, 하나의 스위치(100)는 1대1 메시지 루팅뿐만 아니라 1대 다수의 메시지 루팅을 모두 동시에 지원한다. 본 실시예의 방법은 메시지가 다음 하위 레벨로 드롭되는 시간마다 멀티캐스트 메시지가 복제되는 것이다. 바람직한 결과는 메시지가 결국 레벨 0에 도달할 때 스위치의 각각의 행를 위해 하나의 카피가 생산되는 것이다. 그리고, 멀티캐스트 메시지는 레벨 0에서 각각의 행를 따라 우측으로 이동하고, 카피는 각각의 열에서 아래로 드롭되어, 바람직하게도 모든 출력포트(154)가 메시지의 카피를 수신하는 결과가 된다.
도 24A는 멀티캐스트 메시지(230)를 위한 제어 셀(2400)을 나타내고, 도 24B, 24C, 및 24D는 멀티캐스트 제어 셀(2400)의 다른 상태를 나타낸다. 본 명세서에서 기재되고 도 24A, 24B, 24C, 및 24D에 도시된 멀티캐스트 용량은 멀티캐스팅이 추가적인 제어 셀 논리 비용으로 임의의 실시예에 선택적으로 설계되도록 모든 다른 실시예와 일치된다. 도 2, 10, 12A, 12B, 13A, 및 13B와 연결하여 도 24A를 참조하면, 멀티캐스트 메시지(230)는 헤더내 제 2 비트를 포함하고, 이것은 트래픽 비트(202)에 이어 멀티캐스트 비트(220)로 불리운다.
멀티캐스트 비트가 ZERO로 설정되면, 메시지는 행 헤더(204) 및 열 헤더(212)에 의해 결정된 싱글 포트로 전달된다. 지점간 전송을 제어하는 방법은 도 12, 13, 14, 및 15에서 일반적으로 기술된 것과 동일하다. 추가 지연요소는 멀티캐스트 비트(220)를 유지하기 위해 제어 셀(2400)에 포함된다. 트래픽 비트(202)가 ONE 이고 멀티캐스트 비트가 ZERO 인 경우, 지점간 전송을 나타내고, 제어 셀(2400)은 메시지가 아래 또는 우측으로 루팅되는지를 결정하기 위해 MSB(most-significant bit)(208) 및 통화중 신호(BS)(2406)를 검사한다. 메시지(230)가 트래픽 비트(ONE) 아래로 루팅되고, 멀티캐스트 비트(ZERO)가 라인 S(2412) 아래로 연속적으로 전달된다. 2개 사이클이 완료된 후, 지연요소 D1와 라인 S 사이가 연결되어, 결과적으로 MSB(208) 뒤의 비트(1004)는 다음 레벨에서 MSB가 된다. 도 12A 및 12B에 도시된 인터레벨 타이밍 요구를 유지하기 위해 메시지가 2비트씩 진행된다.
멀티캐스트 비트(220)가 ONE인 경우, 메시지(230)는 아래쪽 레벨상의 상위 행 및 하위 행 모두가 메시지의 카피를 수신할 때까지 우측으로 루팅된다. 메시지(230)가 우측으로 이동함에 따라, 메시지는 아래쪽 레벨의 상위(1015) 및 하위 (1016) 행로 선택적으로 드롭된다. 도 24B를 참조하면, "상위" 비트(224) 및 "하위" 비트(226)는 초기에 ONE으로 설정되어, 메시지가 아직 하위 레벨에서 둘중 어느쪽의 행에도 전송되지 않았다는 것을 나타낸다.
도 24B에서, 메시지 F는 라인 BS상의 블로킹 신호가 ZERO가 되도록 블로킹되지 않은 제어 셀로 입력된다. 메시지 F의 카피들은 아래 우측(2432)으로 전송된다. 제어 셀은 하위 행상에 위치되고, 따라서 우측한계 카피의 "하위" 비트(226)는 브랜치가 만족되었다(2434)는 것을 기록하기 위해 ZERO로 설정된다. 멀티캐스트 메시지의 카피가 아래로 전달될 때(2412), 하위 카피의 상위(224) 및 하위(226) 비트는 메시지가 다시 하위 레벨에서 복제되도록 모두 ONE으로 리셋된다.
도 24C 및 24D를 참조하면, 메시지 F는 상위 셀과 연결되는 셀 우측으로 이동한다. 이 셀은 아래로부터 블로킹되고(2436), 메시지는 우측으로 계속 이동한다. 메시지 F는 결국 상위 셀과 연결되는 막히지 않는 제어 셀에 도달한다. 그 셀에서, 메시지 F의 복사가 아래로 마침내 루팅되고(2483), 우측한계 헤더의 "상위" 비트(224)는 ZERO(2440)로 설정된다. 상위 및 하위 표시비트는 이제 ZERO가 되어 메시지가 하위 레벨에서 복제되었음을 나타내고, 메시지는 더이상 우측으로 전송되지 않는다.
도 24B, 24C, 및 24D는 ONE으로 설정된 멀티캐스트 비트를 갖는 메시지를 설명하고 있다. 메시지는 하위 레벨에서 적절한 행로 메시지가 두번 드롭될 때까지 우측으로 이동한다. 메시지가 드롭되는 경우, 양쪽 표시비트(224,226)는 ONE으로 설정된다. 이러한 복제는 레벨 0에 도달할 때까지 스위치내에서 계속된다. 상호접속 구조가 L 레벨을 포함하기 때문에, L 복제가 이루어져, 2L 행가 메시지 카피를 포함하게 된다. 메시지가 드롭될 때마다, 하위 레벨에서 2개 행중 하나는 상위 반쪽에 위치하고, 나머지는 하위 반쪽에 위치한다. 상기 방법은 도 7에 설명된 2진 트리의 모든 브랜치들이 이용된다는 것을 보장한다. 최종 결과는 레벨 0에서의 모든 행가 메시지의 카피를 수신하는 것이다.
선택적인 열 비트마스크(228)는 메시지가 스위치(100) 외부에서 발생되었을 때 생성된다. 비트마스크는 일련의 K 비트가 되고, 각각은 스위치내 열을 나타낸다. 비트마스크내 비트가 ONE으로 설정되는 경우, 메시지는 그 대응하는 열의 모든 행로 향한다. 1대 다수 멀티캐스팅을 실현하기 위해, 열 비트마스크내 모든 비트들은 초기에 ONE 으로 설정되어, 결과적으로 모든 열 및 행가 메시지를 수신한다. 대신, 열의 서브세트는 비트마스크 요소의 서브세트만을 ONE으로 설정하므로써 선택적으로 선택될 수도 있다. 생략된 열들은 ZERO로 설정된다. 상기 방법은 모든 행 및 선택된 열만이 메시지를 수신할 경우 1대 다수 멀티캐스트 용량을 위해 제공한다. 대신, 만일 하나의 상위(224)와 하위(226) 표시비트만 초기에 ONE로 설정되고 다른 세트는 ZERO로 설정된다면, 레벨 0에서 상위 행 또는 하위 행만이 메시지를 수신한다. 따라서, 상위(224) 및 하위(226) 표시비트와 열 비트마스크 비트(228)를 독립적으로 ZERO 또는 ONE으로 설정하는 것은 목표의 서브세트로 멀티캐스트 메시지를 전달하게 한다.
레벨 0에서 멀티캐스트 메시지는 각각의 행상에서 우측으로 이동하고, 좌측으로 순환하며, 결국에는 모든 열들을 통과한다. 주어진 행에서, 비트마스크내 각각의 비트는 메시지가 각각의 열에서 아래로 전달됐는지를 표시하기 위해 사용된다. 만일 메시지가 아래로부터 막히지 않고 열을 나타내는 비트가 1이라면, 메시지의 카피는 유리하게도 비트마스크없이 아래로 전달된다. 도 15B에서 상기한 바와 같이, 트래픽 비트(202) 및 페이로드(206)만이 스위치를 나간다. 동시에, 메시지의 카피는 또한 ZERO로 설정된 비트마스크내 열 위치로 우측으로 전달되어, 열 착신이 만족되었음을 나타낸다. 만일 메시지가 드롭되는 것이 블로킹되는 경우, 메시지는 우측으로 계속 이동하고, 비트마스크는 바뀌지 않는다. 블로킹된 메시지는 순환하고, 결국 막힌 셀을 다시 통과한다. 비트마스트내 모든 비트들이 ZERO일 경우, 모든 목표된 열들이 메시지를 수신했음을 나타내며, 메시지들은 더이상 레벨 0에서 우측으로 전송되지 않는다.
지금까지 하나의 입력포트로부터 레벨 0에서의 모든 행로, 그리고 레벨 0에서의 각각의 행로부터 모든 열으로의 메시지를 멀티캐스팅하는 방법 및 구조체를 설명하여, 1대 다수 전송의 바람직한 요구를 만족시켰다. 선택된 열의 모든 행으로의 1대 다수 전송 또한 설명되었다. 또한, 멀티캐스트 메시지 및 비멀티캐스트 메시지 루팅은 동일한 스위치내에서 동시에 유리하게 발생한다.
2D, 3D 및 4D 시스템
메시지 흐름의 방법 및 형태는 스케일을 비제한적인 방식으로 제어하여 스위치(100)의 실시예의 효율 및 처리량은 스위치 크기의 상한에 의해 결정되지 않는다. 스위치 장치의 크기가 무한대에 접근함에 따라, 전체 가능한 입력에 대한 입력 포트의 바람직한 비율은 (도 20A, 20B 및 20C에서 나타낸 바와같이) 개연론적으로 1:3 내지 1:6의 범위에 있게 된다. 실제로, 스위치(100)의 실시예의 최대 크기에 대한 제한은 장치의 핀 수이다. 따라서, 단일-집적 회로 칩의 최대 크기는 핀에 의해 제한된다. 스위치는 기술적 제한에 의해 설정되는 것에 비해 상당힌 많은 I/O 포트를 구비하도록 구성되는 것이 바람직하다. 다중 칩은 실제적인 제한 없이 포트 수를 증가시키기 위한 기술 및 구조를 제공한다. 세가지 방법을 이하에 나타내며, 각각 2차원적(2D), 3차원적(3D), 및 4차원적(4D) 상호접속 방법이라 한다.
도 25A, 25B 및 25C를 참조하면, "nD" 다중-칩용 메시지의 배치가 도시되어 있다. 2D 스위치를 위한 메시지(2502)는 두 개의 헤더(208,2508)를 구비하고 있다. 3D 스위치를 위한 메시지(2504)는 세개의 헤더(208,2508,2510)를 구비하고 있다. 4D 스위치를 위한 메시지(2506)는 4개의 헤더(208,2508,2510,2512)를 구비하고 있다.
도 1, 3 및 25A와 관련하여 도 26A를 참조하면, 각각 스위치(100)의 단일-칩(2602)의 플루랄(plural)수(C)를 포함하는 두개의 스택(2610, 2612)을 접속함으써, 2D 스위치(2600)가 형성된다. 2D 스위치(2600)의 바람직한 실시예에서, C는 레벨 0에서 열(row)의 수이다. 두개의 스택은 버스 접속(2604)의 특별한 배열에 의해 접속된다. 제 1 스택(2610)내의 칩(2620)의 출력(2604)은 각각 제 2 스택(2612)내의 각 칩(2632, 2634, 2636, 2638)의 하나의 출력에 접속된다. 메시지(2506)의 헤더(208)는 어느 출력(2604)으로 메시지가 향하게 할 것인지 결정한다. 입력 포트(2622)에 입력되는 메시지는 제 2 스택(2612)내의 어느 칩의 입력 포트로 전송된다. 도 10에서 논의된 바와같이, 헤더(208)는 메시지(2502)가 제 1 스택(2610)내의 칩(2620)을 통과할때 제거된다.
제 2 스택내의 집적 회로 칩(2603)으로 들어오는 메시지(2502)는 헤더(2508)를 정확히 헤더(208)로 처리한다. 따라서, 제 2 스택(2612)으로 들어오는 메시지에 대하여, 헤더(2508)는 전술한 바와같이 헤더(208)와 동등하다. 접속 버스(2604)내의 어느 입력으로 들어어는 메시지는 바람직하게 타겟 출력(2640)으로 전송된다. 도 26B를 참조하면, 두개의 스택(2610, 2612)의 결과적인 형태는 여기서 "꼬인 큐브"라 하는 것이 되며, 이는 하나의 스택이 다른 것에 대하여 90도 비틀린 것을 나타낸다. 스위치(100)의 적절한 2D 실시예에 있어서, 접속 버스(2604)는 모든 출력 포트(154)의 세트와 동일 행 어드레스(2206)에서 FIFO 버퍼(152)가 생략되었을때의 각각의 비지 신호 포트(376)를 포함한다. 타이밍 고찰을 간단히 하기 위해, 스택(2610)의 주어진 출력 열 포트(154)는 제 2 스택(2612)내의 동일 행에서 입력 포트(104)에 접속되고, 마찬가지로 비지 신호(376)는 동일-열 포트 비지 신호(304)에 접속된다. 주어진 두개의 스택은 집적 회로 칩의 복수의 수(C)를 포함하며, 출력 어드레스(2606)의 전체 수는 C2이다.
도 25B와 관련하여 도 27을 참조하면, 3D 상호접속 스위치가 도시되어 있다. 접속 버스(2604)를 위해 설명한 동일한 상호접속 방법을 도 27에 도시된 배치에 적용하면, 본 기술분야의 당업자는 보다 높은-차원의 스위치를 조립가능할 것이다. 3D 스위치는 세개의 타이어(2710, 2720, 2730)를 포함하며, 각 타이어는 C 집적된 회로 칩의 C 스택을 포함한다. 3D 스위치(2700)의 바람직한 실시예에 있어서, C는 칩의 레벨 0에서의 행의 수이다. 메시지(2504)의 3 행 헤더(208, 2508, 2510)는 메시지의 출력 어드레스(2720)를 결정한다. 출력 어스레스의 전체 수는 C3이다.
도 25C와 관련하여 도 28을 참조하면, 4D 상호접속 스위치가 도시되어 있다. 접속 버스(2604)에 대하여 설명한 동일한 상호접속 방법을 도 28에 도시된 배치에 적용하면, 본 기술분야의 당업자는 보다 높은-차원의 스위치를 조립가능할 것이다. 4D 스위치는 두개의 정사각 매트릭스(2810, 2820)를 포함하며, 각 매트릭스는 C2개의 꼬인 큐브(2600)를 포함한다. 4D 스위치(2800)의 한 실시예에 있어서, C는 칩의 레벨 0에서의 행의 수이다. 메시지(2506)의 세개의 행 헤더(208, 2508, 2510, 2512)는 메시지의 출력 어드레스(2220)를 결정한다. 출력 어스레스의 전체 수는 C4이다.
스플릿-헤더 스위치
슈퍼컴퓨터 네트워크등의 고속 시스템에 사용되기 위한 스위치의 주요 설계 목적은 낮은 대기시간이다. 도 18A, 18B, 18C, 및 19에 나타낸 플랫-대기시간의 제어 및 형태와, 도 16A 및 16B에 도시된 고속 타이밍 제어 및 이들의 조합은 스위치(100)의 실시예를 통한 메시지의 비행시간(time-of-flight) 또는 대기시간를 감소시키기 위해 작용한다. 지금까지 논의된 경우에, 메시지의 모든 헤더 비트는 첫번째 페이로드 비트가 들어갈수 있기 전에 스위치(100)의 실시예로 들어가며, 이는 (주어진 I/O 속도를 위한) 헤더의 길이가 절대 최소 대기시간를 결정함을 의미한다. 도 29A 및 29B는 이 시간을 2배로 감소시키고 또는 2배로 페이로드가 스위치를 통과하기 위한 시간을 감소시키는 스플릿-헤더 실시예를 나타낸다.
도 29A를 참조하면, 메시지(200)는 외부에서 두개의 메시지(2902, 2904)로 "스플릿"되며, 각 메시지는 본래 길이의 절반이다. 다른 헤더 비트(204)는 각각 스플릿 메시지의 각 헤더로 형성된다. 짝수 번호의 위치(2910)내의 헤더 비트는 메시지(A 2902)의 헤더가 되며, 마찬가지로 홀수 번호의 비트(2912)는 메시지(B 2904)의 헤더가 된다. 페이로드(204)는 두개의 절반으로 나뉘어지며, 각각은 두개의 메시지의 페이로드(2914, 2916)를 형성한다.
도 1 및 20A와 관련하여 도 29B를 참조하면, 섹션(T 2929) 및 섹션(U 2926)을 포함하는 스플릿-헤더 스위치가 도시되어 있다. 각 섹션은 마스터(2930) 및 슬레이브(2032) 제어 어레이의 교대하는 레벨로 만들어져 있다. 제어 셀의 내부 상세를 제외하고, 섹션은 도 1에 도시된 스위치(100)와 동일하다. 마스터 제어-어레이 레벨(2930)은 제어 플행 버스(2922)와 함께 설명한 바와같이 제어 어레이(120)을 포함한다. 제어 버스(2922)는 R 경로를 포함하며, 여기서 R은 그 레벨에서 행의 수이다. 각 제어 경로의 입력 라인은 각 마스터 제어 셀의 래치 출력에 접속되고, 래치 세팅을 동일 레벨에서 동일하게 위치한 슬레이브 제어 셀로 전송하거나 복사한다. 제어 플행 버스(2922)는 모든 마스터 제어 셀내의 모든 래치의 설정을 하나의 레벨에서 전송한다. 제어 패치의 출력 라인은 슬레이브 제어 셀내의 래치에 접속된다. 마스터 제어 셀내의 논리 게이트는 헤더를 처리하여 그 셀내의 래치를 설정한다. 슬레이브 제어 셀은 헤더를 처리하는 논리 게이트와 첫번째 헤더 비트를 제거하는 논리적 소자는 없다.
메시지A(2902)는 동시에 "2926"에서 스위치(2900)의 섹션 T(2924)의 최상부 레벨로 들어가며 메시지 B(2904)는 입력 포트(2928)에서 섹션 U(2926)로 들어간다. 제 1 헤더 비트(2910)는 메시지가 다음 아래 레벨로 하향 이동할때 메시지(A) 로부터 제거된다. 메시지(B)는 메시지(A)와 동기하여 이동한다. 따라서 메시지(B)는 메시지(A)가 이동하는 것과 동시에 또는 하향 이동한다. 다음의 아래 레벨에서, 메시지(B)는 마스터 제어 셀로 들러가고 이동은 메시지(A)에 의해 마스터로부터 슬레이브로 래치 설정을 복제함으로써 복사된다. 메시지(B)가 하향 이동할 때, 제 1 헤더 비트(2912)는 제거된다. 도 12A를 또한 참조하면, 스위치(2900)의 타이밍은 단일 클럭 주기(1110)내에서 양쪽 비트의 이동을 허용한다. 따라서, 비트는 클럭 주기당 두개의 레벨의 속도로 하향 이동한다. 메시지가 바닥 레벨까지 하향 이동함에 따라, 메시지(A) 및 메시지(B)는 교대로 마스터 제어 셀을 통과하여 헤더 비트를 잃는다. 각각의 메시지의 쌍은 두개의 레벨 및 하나의 클럭 주기마다 하나의 비트를 잃는다.
일정 레벨에서 모든 제어 셀내의 모든 래치의 상태를 복사하는 개념은 두개의 섹션 이상으로 확장될 수 있다. 예를 들면, 메시지(200)가 3 또는 4 또는 그이상의 메시지로 도 29A에 도시된 방식으로 스플릿되면, 스플릿 메시지 세트의 플라잇 시간은 스플릿된 메시지의 수에 의해 나뉘어진다. 각 레벨은 단지 하나의 마스터 제어 섹션을 구비한다. 다른 섹션은 슬레이브이다. 마스터 스테이션은 하강하는 레벨에서 모든 섹션중에서 순환한다.
광 메시지 배치
도 30A는 광학 메시지를 나타낸다. 제 1 비트(202)는 메시지의 존재 및 타이밍 비트로의 사용을 의미한다. 헤더 비트(H1, H2, ...Hn)(3002)는 광학 메시지내에서 전자 메시지(202) 처럼 작용한다. 한 실시예에 있어서, 헤더 비트(3002)는 광학 헤더내에서 전자 헤더(204)내에서의 분리와 동일한 방식으로 하나씩 떨어져 있다. 다른 실시예에 있어서, 헤더 비트는 모두 파이버내의 동일한 물리적 공간을 차지하고 있으며 따라서 동시에 일어나지만 n 개의 다른 컬러, 파장 분리 멀티플렉싱(WDM)이라 불리는 기술을 사용한다. 이 형태에 있어서, n개의 다른 가능한 파장(l1,l2, ....ln)이 채용된다. 파장 슬롯(lk)내의 광의 존재는 타임 슬롯(Hk)내의 광의 존재와 마찬가지로 동일 정보를 전송한다. 다른 실시예에 있어서, 혼합된 형태가 적용된다. 예를 들면, n/2 파장이 두개의 타임 슬롯을 채우기 위해 사용될 수 있다. 광학 페이로드(3010)는 데이터를 이송하며 광메시지 내에서 전자 메시지(200)내의 전자 페이로드(206)가 작용하는 것과 마찬가지로 작용한다. 도 30A는 다중 타임 슬롯내로 이송되는 페이로드 및 파장내의 정보를 나타낸다. 데드 타임(3008)이 제공되어 전자가 광을 포착하여 광 파이버내에서 전파되는 광학 신호내의 지터를 보상하도록 한다.
광학 제어 셀
도 30A와 관련하여 도 30B를 참조하면, 전기-광 제어 셀(3030)의 실시예가 도시되어 있다. 광 메시지(3000) 형태의 데이터는 입력 라인(NW 3036, S3038)을은 통해 셀(3030)로 들어간다. 데이터는 출력 라인 SE(3034) 및 N(3032)을 통해 셀을 떠난다. 셀이 최상부 레벨에 있지 않으면, 출력 포트(N 3032)를 통해 셀을 떠나는 메시지(M)는 바로 위의 셀의 입력 포트 S(3038)로 들어갈 것이다. 셀(3030)이 최하부 레벨에 있으면, 출력 포트(3034)를 떠나는 데이터는 스위치를 탈출할 것이다. 셀(3030)이 최하부 레벨에 있지 않으면, 출력 라인 SE(3034)을 통해 셀을 떠나는 데이터는 입력 포트 NE(3036)를 통해 다른 셀로 들어갈 것이다.
셀(3030)의 동작은 셀(1300)의 동작과 동일하다. 셀(3030)은 스위치의 레벨(J)에서의 셀이다. 앤드 게이트(3040)는 래치 세트(3002)가 높은 시간 창 동안 타이밍 비트(202)가 앤드 게이트(3040)에 도착하는 장소에서만 하나의 출력을 갖는다. 타이밍 비트(202)는 입력 포트(3036)를 통해 셀로 들어가는 메시지의 헤더의 제 1 비트이다. 타이밍 비트(202)는 파이버 탭(3066)을 통해 들어와서 O/E 요소(3062)에 의해 전자로 변환된다. 래치 설정 펄스(3002)는 타이밍 소스(3042)로부터 게이트(3040)에 도달한다. 앤드 게이트(3040)가 제로(ZERO) 에서 원(ONE)으로 천이할때, 지연 소자(3044)는 타이밍 비트(202) 및 헤더 비트(3002)간의 타임 기간인 시간 지연 db(3016) 후에 래치 L(3046)를 하나로 설정한다. 래치(3046)는 양극-에지, 샘플-앤드-홀드 회로이며, 게이트(3040,3050)와 관련되어 헤더 비트(3002)를 계산하여 유지한다. 래치(3046)는 따라서 정적 원-비트 레지스터로 작용한다.
현재, 입력 라인 S(3038)에서 셀(3030)로 들어가는 광학 신호의 적은 부분은 패시브 파이버 탭(3064)에 의해 O/E 전환 요소(3048)로 향하게 된다. 요소(3048)는 두개의 작용을 한다. 하나의 작용은 입력(3038)을 통해 스위치로 들어오는 메시지로부터 광학 제 1 헤더 비트(202)를 검지한다. 비트가 검지되지 않으면, 요소(3048)는 출력값 제로를 갖는다. 헤더 비트(202)가 검색되면, 요소(3048)는,전체 광학 헤더가 입력(3038)을 통해 들어오는 메시지가 원 또는 레벨(J)에 대한 헤더 비트가 원인 경우에 하이 펄스(원)를 생성하는 주어진 포인트 래치(3046)를 통과하기 위해 사용된 시간인 시간 지연(db)(3008)에 대하여 높은 전기 신호(원)를 생성한다. 셀(3030)은 다음 하부 레벨에서 셀의 상부 행 세트(716)에 접속되는 셀이다. 다음 하부 레벨에서 하부 행 세트(718)에 접속된 셀은 게이트(3052)로 대체된 게이트(3050)를 구비한다.
헤더 비트가 전자로 전환되고 전자 장치가 전자-흡수 모듈레이터(4054, 3056)를 설정하는 시간 동안, 메시지(M)는 지연 루프(3060)에 저장된다. 메시지(M)는 지연 루프(3060)로부터 3D 스플리터(3058)로 이동한다. 스플리터(3058)는 메시지(M)와 동일한 복사본을 전자-흡수 모듈레이터(3054, 3056)로 전송한다. 전자-흡수 모듈레이터(3054, 3056)중 하나만이 주어진 시간에 투명하다. 따라서, 광은 출력 포트(3032, 3034)중 하나만을 통하여 셀(3030)을 떠날수 있다. 요소(3054, 3056)는 래치(3046)가 상태를 변화할때까지, 적어도 다음 래치 세트 신호(3002)가 도달할때까지 래치(L 3046)에 의해 고정 상태로 설정된다.
셀(3030)은 전자 흡수 모듈레이터를 사용하여 구성된다. 본 기술분야의 당업자는 셀을 변형함으로써 전자 흡수 모듈레이터를 반도체 광 증폭기 또는 리튬 니오베이트 게이트로 대치할 수 있을 것이다.
광학 입력 셀
도 30E를 참조하면, 제어 셀(3030)이 최상부 또는 입력 레벨을 제외하고 스위치(3070)의 모든 레벨에서 위치한다. 도 30C는 스위치(3070)의 입력 레벨에서만 위치하는 전기-광 입력 셀(3092)을 도시하고 있다. 광 메시지(E 3000)는 트래픽 비트(202)가 다른 메시지와 동기하여 입력 셀(3092)에서 스위치로 들어가는 시간에 외부에서 조립된다. 특히, 다른 메시지(B)가 라인(S 3083)에서 셀로 들어가는 것과 동시에 외부 메시지(E)가 입력(3037)에서 셀(3092)로 들어가고, 전자-광학 스위치(3054)가 투명하게 설정된 경우, 각 메시지의 트래픽 비트가 동시에 파이버(3034)에 도달하도록 타이밍된다. 클럭 시프트 레지스터(1100)내의 전자 메시지와 다르게, 광 파이버내의 메시지(3000) 또는 데이터 스트림의 특성은 데이터가 해제되는 나중 시간 까지 데이터가 정적으로 유지되지 않는 것이다. 광학 메시지(3000)는 항상 움직이고 있다. 따라서, 입력 셀(3092)은 항상 적절하게 입력(3037)에서 타이밍된 메시지(3000)를 받아들인다.
"3038"에서의 하향 방향으로부터의 메시지(B 3000)의 경우, 메시지(B)는 전술한 요소에서 검지되고 래치(3046)는 외부 메시지(E)가 모듈레이터(3054)에 도달하기 전에 원으로 설정된다. 메시지(B)가 셀(3092)로 들어온 결과, 모듈레이터(3054)는 투명하게 설정되고, 외부 메시지(E)는 흡수되고, 라인(EN 3033) 상의 전자 비지 신호는 메시지가 스위치(3070)에 의해 받아들여지지 않았음을 나타내는 외부 장치로 상방향으로 보내진다. 외부 장치는 이어서 다음 래치-세트(3002) 사이클에서의 주입을 위한 다른 메시지(E)를 구성한다.
이와 다르게, 외부 메시지 E(3000)가 입력(3037)에서 셀(3092)로 들어가고 어떠한 메시지도 라인 S(3038)에 도달하지 않을때, 메시지(E)는 전기-광 스위치(3054)를 통해 최상부 레벨의 셀(3092)로 탈출하여 레벨(3)에서 제어 셀(3030)로 들어간다. 라인 EN(3033)상의 비지 신호는 메시지가 스위치에 의해 받아들여진 외부 장치를 지시한다.
한 실시예에 있어서, 스위치(3070)의 레벨(0) 셀은 메시지를 위해 출력 장치내에 존재하는 룸을 지시하는 광학 제어 신호를 수용한다. 이 실시예에 있어서, 레벨(0)의 셀은 다른 레벨의 셀(3030)과 동일하다. 다른 실시예에 있어서, 스위치의 레벨(0) 제어 셀은 메시지(200)를 수용할 수 없는 출력 장치를 지시하는 전자 제어 신호를 수용한다. 이 실시예에 있어서, 레벨(0) 셀은, 파이버 입력(3038) 및 관련된 O/E 변환기(4048)가 전자 접속만에 의해서 대체된다는 점에서 레벨(1)에서의 셀과는 약간 다르다.
광 스위치
도 30E는 파이버의 상호접속, 제어 셀 및 광학 스위치(3070)의 다른 부품을 나타낸다. 이 도면은 도 17과 동일하다. 또한, 스위치(3070)는 도시하지 않은 부가적인 열을 구비할 수 있고 모든 열이 동일하게 떨어질 필요가 없으므로 인접한 열의 쌍 사이의 파이버(3086)의 길이는 모든 열에 대하여 동일하지 않다. 메시지는 상부(3072)에서 들어오고 바닥(3076)에서 나간다.
또한 도 17을 참조하면, 바로 행 위에서 이동하는 메시지는 선택적으로 하방향으로 떨어지거나 또는 메시지를 결국 하방향으로 이동하게 하는 제어 셀에 메시지가 도달할 때까지 계속된다. 제어 셀 A(3030)을 떠나서 선택적으로 바른쪽으로 이동하는 광학 메시지 M(3000)는 라인(N)에서 셀(A)을 떠날 것이며, 여기서 라인(N)은 셀(B)을 라인 S(3080)에서 상방향으로 접속한다. 광학 메시지(M)는 항상 대각선 경로(3082)를 따라 라인 SE(3034)에서 셀(B)을 떠날 것이다. 셀(B)은 라인(SE)에서 다음 열 및 다음의 아래의 열에서 셀(C)에 접속되어, 셀(C)은 직접 셀(A)의 바른쪽을 향한다. 우회하는 장치의 목적은 메시지(M)가 셀(B)에서 셀(C)로 선택적으로 이동할 수 있는 다른 메시지(N)를 셀(B)에서 차단하기 위한 적절한 정보를 제공할 수 있도록 하는 것이다. 하부 레벨에서 메시지(M)는, 도 8A 및 8B 에서 나타낸 바와같이, 보다 높은 레벨에서의 메시지에 대하여 우선한다. 실제로 메시지 플행, 이동의 순서, 및 광학 스위치(3070)에서 일어나는 차단은 동일한 형태의 스위치(1700)를 통해 이동하는 전자 메시지(200)를 위한 것과 동일하다.
각 제어 셀에서 상대적으로 적은 광 에너지 손실과 관련하여 3dD 스플리터(3058)는 광학 신호 진폭의 감쇄를 야기한다 신호 손실을 보상하기 위해, 증폭기 및 재생기(3090)가 특정 열 사이에 삽입된다. 재생기(3090)는 두개의 기능을 한다: 광학 신호(3000)를 더 처리하는데 적합한 세기로 증폭하고, 파이버내에서 전송되는 바이너리 정보를 재생하거나 형상화하여 신호대 잡음비를 향상시킨다. 다른 실시예에 있어서, 반도체 광학 증폭기 또는 리튬 니오베이트 게이트를 사용하므로, 시스템을 통한 신호의 열화 및 재생이 필요하다.
메시지(M)는 주어진 시간에 하나 이상의 열에 미칠수 있다. 실제로, 메시지의 제 1 비트는 메시지의 마지막 비트가 스위치로 들어가기 전에 스위치를 떠날수 있다. 스위치(3070)의 한 실시예에 있어서, 바른쪽으로부터의 출력 라인은 동일 레벨에서 좌측의 입력 라인에 직접 접속된다. 이 실시예에 있어서, 전체 메시지는 일정 레벨에 들어맞아서, 메시지의 제 1 비트가 행 주위로 순환하여 메시지의 다른 부분과 충돌하지 않도록 한다. 이 특징은 전자 및 광학 설비에 적용된다. 모든 메시지는 전형적으로 동일 길이가 아니라는 점을 알아야 한다.
스위치(3070)의 타이밍 제어는, 메시지가 주어진 레벨 및 열의 모든 셀에 동시에 도달하게 하는 것이다. 설명하기 위한 예로서, 3개의 열과 4개의 레벨이 있는 제어 셀과 부가적인 레벨이 있는 입력 셀이 있는 도 30E의 실시예를 고찰한다. 열(0) 및 열(1) 사이의 거리는 열(1) 및 열(2) 사이의 거리와 동일하지만, 열(2)에서 열(0) 까지의 거리보다는 작다. 스위치는 두개의 길이의 메시지, 짧은 메시지(S), 및 긴 메시지(M)를 전송하기 위해 고안된다. 바른쪽 출력 포트(3085)는 동일 행상의 입력 포트(3083)에 직접 접속된다. 또한, 짧은 메시지(S)는 동일 행 상의 두개의 노드 사이에 들어맞는다. 따라서, 행(R), 레벨(W), 및 열(C)상의 모든 셀(A)과 행(U), 레벨(W), 및 열(C+1)상의 셀(B)을 위해, 만약 메시지(S)가 셀(A)로부터 셀(B) 까지 이동하여 메시지(S)의 제 1 헤더 비트가 셀(B)에 도달하는 시간이 되면, 메시지(S)의 최종 메시지 비트는 이미 셀(A)의 노드를 떠나게 된다.
다른 예에 있어서, 메시지는 주어진 레벨에서 4개의 노드를 통과하는데 충분하도록 머문다. 클럭(X)은 불규칙하게 똑딱거리며 상태(0, 1, 2)를 왔다갔다 한다. 기준 시간 t(0)에서, 클럭(X)는 출발하고 0을 읽는다. 짧은 메시지가 시간(0)에서 하나의 입력 셀(3030) 열 내로 삽입된다. 짧은 메시지(S)는 시간(0)에서 열(0)의 스위치로 삽입된다. 메시지는 반사되지 않아 시간(t1)에서 열(1)내에서 레벨(3)에 도달하는 제 1 헤더 비트를 구비한다. 메시지는 레벨(3)에서 잔류하여 시간(t2)에서 열(2)내에서 레벨(3)에 도달하는 제 1 헤더 비트를 구비한다. 메시지는 레벨(3)에서 잔류하여 시간(t3)에서 열(0)내에서 레벨(3)에 도달하는 제 1 헤더 비트를 구비한다. 지연 시간(D1)은 t2-t1으로 정의된다. 지연 시간(D2)은 t3-t2으로 정의된다. 클럭(X)은 시간(D1)에서 상태 제로에서 상태 원으로 전이하고, 시간(2*D1)에서 상태 원에서 상태 투로 전이하고, 시간(2*D1+D2)에서 상태 투에서 상태 제로로 전이한다. 시간 지연은 이와 같은 방식으로 확장되어 클럭은 시간(2*D1+D2)에서 상태 제로 에서 상태 원으로 전이할 것이다.
메시지를 스위치내로 삽입하기 위한 간단한 규칙이 적용된다. 상태(t)로의 클럭 전이가 시작될 때, 짧은 메시지는 입력 제어 셀을 열(t)내에 삽입한다. 짧은 메시지가 시간(t)에서 열(C)내의 입력 제어 셀로 삽입가능하면, 긴 메시지는 시간(t+D1)에서 입력 제어 셀 열(C)으로 삽입가능하다. 따라서 짧은 메시지는 정렬되고 긴 메시지도 정렬된다. 스위치 타이밍의 나머지는 셀 간의 거리 및 지연 루프의 거리에 의존한다. 파이버 및 지연 루프의 길이는 메시지가 주어진 셀(3030)의 입력 포트(NW 3036, S 3038)에 도달하여 전자적으로 스위치를 올바르게 동작하도록 조정될 수 있다. 지연 루프(3060)는 적절한 크기로 만들어 이 루프를 통과하는 메시지가 스위치가 스위칭 된 후에 전자-광학 스위치(3054, 3056)에 도달하도록 한다. 마지막으로, 지연 루프(3068)는 조정되어 포트로부터 도달하는 메시지가 동시에 셀을 떠날수 있도록 한다.
하이브리드 전기/광 제어
도 29B를 참조하면, 마스터/슬레이브 관계는 효율적으로 스위치를 통하여 데이터를 이동시킨다. 스위치(2900)는 마스터 및 슬레이브 장치로 동일한 형태 및 메시지 플행를 채용하여 마스터가 슬레이브를 구동할 수 있도록 하는 제어 작용을 한다. 슬레이브는 메시지 통과와 관련하여 수동적으로 행동한다. 마스터와 슬레이브가 메시지 플로에 대하여는 기능적으로 동일하지만 타이밍 차이가 존재하므로, 타이밍 차이는 조정되어 스위치(100)의 성공적인 마스터/슬레이브 실시예를 제공한다. 특히, 상대적으로 긴 페이로드(206)를 갖는 메시지에 대하여 가능한 낮은 대기시간의 목적을 위해, 메시지 헤더만을 처리하는 전자 스위치가 있는 빠르고 매우-높은 대역 광학 스위치를 제어함으로써 이점이 얻어진다.
하이브리드 전기/광 조합은 매우 낮은 대기시간, 매우-높은 대역 스위치를 생성하기 위한 최상의 기술을 이용하는 이점이 있다. 도 30A 및 30B를 참조하면, 광학 메시지(3000)는 상대적으로 긴 다크 타임(3008) 및 긴 헤더(3004)를 구비하고, 제어 셀(3030)내의 광/전기 장치에 의해 처리되는 "팻(fat)" (긴 기간) 광 비트(3002)를 포함한다 달리 말해, 광 메시지(3000)의 페이로드(3010) 부분은 전체 메시지 길이의 작은 부분이다. 광역 헤더 비트 및 다크 타임(3008)은 광 타이밍의 지터를 설명하는데 필수적이다. 제어 셀(3030)당 비용은 고비용의 고속 검지기 및 전자-광학 스위치의 사용을 피함으로써 감소시킬수 있다. 헤더 및 제어 처리를 위한 시간은, 지연 루프(3060, 3068)에 의해 길이에 있어서 미터 차원으로 조정된다. 또한, 비생산적인 지연 루프의 지연이 모든 제어 셀에서 반복된다. 반면에, 스위치(3070)내의 모든 래치(3046)가 광학 페이로드(3010)가 들어오기 전에 미리 설정될 때, 지연 루프는 사용되지 않으며 제어 셀은 매우 인접하게 배열되어, 비행시간의 감소량 또는 스위치를 통한 광학 페이로드의 대기시간의 차원 보다 많이 생산한다.
도 30B 및 31을 참조하면, 제어 셀(303)의 고속 전자-대-광학 전환기(3048, 3062)는 비싸고 적합한 고속-스위칭 전자-흡수 모듈레이터도 또한 비싸다. 광학 슬레이브 셀(3100)은 E/O 전환기를 제거하고 저속 전자-광학 스위치(3124)를 사용한다. 셀(3100)은 비용면에서 낮으므로 셀(3030)은 속도에 있어서 높다. 동일 형태 및 메시지 플행의 전자 스위치는 트래픽 비트(2020 및 행 헤더(204)를 포함하는 메시지 헤더만을 처리한다. 페이로드가 취급되지 않기 때문에, 데이터 출력 포트(154)는 전자 스위치에 사용된다.
도 16B에서 설명한 바와같은 고속 논리를 사용하면, 주어진 열내의 전자 스위치(1620)의 모든 래치는 최종 헤더 비트가 스위치에 들어온 후 하나의 클럭 주기로 설정된다. 예를 들어, 11헤더 비트이며 500Hz로 실행되는 10 레벨 스위치는 래치(3116)를 설정하는데 20나노초가 걸린다. 도 29B의 스플릿-헤더 스위치를 참조하여 고속 기술을 사용하면, 설정 시간은 10나노초로 떨어진다. 헤더 비트가 전자 스위치를 통하여 하향 이동함에 따라, 각 래치(1616)의 상태는 외부로 광학 슬레이브 셀(3100)로 복사된다. 하나의 행 및 레벨에서의 래치가 순차적으로 설정되기 때문에, 즉 왼쪽에서-오른쪽 방식으로 설정되기 때문에, 하나 이상의 행의 설정은 단일 출력 핀(3114)에 의해 전송된다. 각 제어 어레이(3112)의 타이밍 스트로브 신호(3110)는 각 행 및 열 교차를 포함하며, 래치 상태 신호를 생성하고 신호(3124)를 광학 슬레이브 셀 래치(3128)로 복사하기 위해 사용된다. 래치(3128)는 투명한 하나의 전기-광 스위치(3130) 또는 (3132)와 다른 투명하지 않은 스위치를 설정한다. 전기-광 스위치(3130,2132)는 광 페이로드가 도달하기 전에 상태를 변화시키기 위해 충분한 시간을 가져서, 보다 비싸지 않은 장치가 사용되도록 한다.
도 32를 참조하면, 하이브리드 전기/광 스위치(3200)의 한 실시예에 있어서, 도 17에 사용된 동일한 배치 규칙이 전자 및 광학 섹션에 사용된다. 타이밍의 차이를 보상하기 위해, 전자 헤더는 처음에 전자 스위치로 들어가고 래치 상태는 광학 섹션(3100)으로 전송된다. 모든 래치가 설정될 때, 광 페이로드가 보내지고, 지연 루프(3060, 3068)를 제외한 파이버가 매우 짧기 때문에, 나오는 페이로드는 매우 짧은 전체 경로를 통과해 이동한다. 재생이 사용되는 경우, 여분의 경로 길이가 부가된다. 광 페이로드의 테일이 광 섹션의 최상부 레벨에 들어가자 마자, 새로운 전자 헤더가 전자 섹션내로 보내진다. 각 섹션의 상대적인 대기시간에 따라 전자 및 광 처리의 중복이 바람직하고, 이에 의해 빠른 섹션내로 들어가는 메시지간의 데드 타임을 감소시킨다.
도 31 및 32를 참조하면, 도 17의 스위치(1700)로부터 유도된 하이브리드 전자/광학 스위치(3200)의 두 개의 레벨 및 두 개의 열에 대한 제어 플행의 상호접속이 도시되어 있다. 전자 섹션의 각각의 행을 따르는 래치 설정(3106)은 제어 라인(3114)을 통해 광학 섹션내의 유사-위치된 래치(3100)로 전송된다. 타이밍 스트로브(3112)는 하나의 출력 핀의 래치 설정을 멀티플렉스하기 위해 사용된다.
전기 마스터의 타이밍 동기화가 광학 슬레이브의 타이밍과 크게 다를 때, 버퍼는 광학 슬레이브가 설정을 필요로 할 때까지 전자적으로 제공된 스위치 설정을 저장하기 위해 사용된다. 각 광학 셀과 관련된 것은 컴파트먼트(A, B)가 있는 두 개의 긴 시프트 레지스터이다. 광학 마스터는 데이터를 컴파트먼트(A)로 전송한다. 컴파트먼트(B)가 비어있는 경우, 비트는 컴파트먼트(A)로부터 컴파트먼트(B)로 흐른다. 광학 셀이 데이터를 위해 준비되었을 때, 광학 셀은 컴파트먼트(B)로부터 데이터를 추출한다.
세 가지의 다른 적용을 설명한다.
단일의 메시지가 가장 짧은 행의 광학 스위치에 들어맞는 경우에 대한 첫 번째 적용을 설명한다. 스위치에 대한 입력장치가 데이터를 타겟으로 보낼 때, 장치는 헤더를 전자 마스터 스위치로 주입한다. 장치는 차단된 조건 때문에 데이터를 주입하기 위해 기다려야 할 수도 있다. 헤더의 제 1 비트가 전자 마스터에 의해 받아들여지는 즉시, 게이트의 설정과 함께 광학 메시지의 구성이 시작된다. 광학 메시지가 스위치 어레이로 들어갈 때, 모든 스위치는 설정된다. 메시지가 스위치 어레이를 통해 이동하는 동안, 다른 메시지는 주입되기 전에 전자적 형태에서 광학 형태로 전환된다. 다른 부가적인 메시지도 또한 재생된다. 다른 부가적인 메시지는 스위치로부터 나와서 또한 광학 형태로부터 전자적 형태로 전환된다. 따라서, 광학 스위치를 통한 전체 이동시간은 현재 처리에 의해 완전히 숨겨지게 된다.
두 번째 적용은 병렬 전자 복사를 이용하고 여러개의 메시지가 일정 레벨의 광학 스위치의 하나의 행를 차지하고 있을 때 사용된다. 래치 설정의 부가적인 버퍼형성이 사용될 수 있다. 두 번째 형태의 스위치에 있어서, 광학 스위치의 각 행는 K 메시지까지 포함한다. 광학 스위치는 웜홀링을 실행하지 않는다. 광학 스위치는 K 열을 포함한다. 회로의 전자 부분은 광학 스위치의 K 전자적 복사본을 포함한다. 각 복사본은 웜홀 방식으로 구동한다. 광학 스위치내의 열은 C0, C1, ...Ck-1로 표시된다. 전자 스위치는 N0, N1, ...Nk-1로 표시된다. 시간 0에서, 전자 스위치는 하나의 광학 스위치의 n은 n 광학 열으로 데이터를 전송한다. 시간 t에서, 전자 스위치 n은 데이터를 광학 스위치 t+n 모드 K로 전송한다. 래치 설정은 버퍼형성을 이용할 수 있다.
세 번째 적용은 광학 스위치의 각 레벨상의 몇 개의 메시지를 보강한다. 웜홀 루팅이 사용되고, 버퍼형성이 스위치내에서 사용되어 타이밍 요구를 만족시킨다. 스위치는 K 복사본, N0, N1, ...Nk-1의 전자 스위치 및 K 열 C0, C1, ...Ck-1이 있는 하나의 광학 스위치를 포함한다. 전자 스위치(Ns)는 광학 스위치내의 각 셀과 관련된 한 세트의 투-롱 버퍼를 구비한다. 각 전자 스위치에서, 헤더의 웜홀 루팅이 실행된다. 시간(0)에서, 스위치(N0)는 헤더를 처리하기 시작하고 그 스위치 세팅을 광학 셀로 전송한다. 시간(D)에서, 스위치(N1)는 데이터를 처리하기 시작하고 스위치 세팅을 광학 셀로 전송한다. 일반적으로, 시간(JD)에서 스위치(NJ)는 데이터를 처리하기 시작하고 세팅을 광학 스위치로 전송한다. 전자 스위치가 헤더를 처리하기 시작할 때마다, 광학 메시지는 구성 과정을 시작한다. 시간(K(D+1))에서, 전자스위치(N1)와 관련된 광학 메시지는 보내지며 이 과정은 데이터의 파장이 광학 스위치를 통해 전송됨에 따라 계속된다.
본 발명을 여러 실시예를 참조하여 설며하였지만, 실시예는 설명을 위한 것이며 본 발명은 이들에 의해 제한되지 않음을 알 수 있다. 전술한 실시예의 많은 변형, 수정, 부가 및 개선이 가능하다. 예를 들면, 본 기술분야의 당업자는 본 명세서에 개시된 방법 및 구조를 제공하기 위해 필요한 단계를 쉽게 실시할 수 있으며, 공정 변수, 재료 및 치수는 단지 예에 불과하며 본 발명의 범위내의 변형 뿐만아니라 바람직한 구조를 이루기 위해 변화될 수 있음을 알 수 있을 것이다. 또한, 스위치는 방향을 나타내는 용어인 "왼쪽", "오른쪽", "상방향", 및 "하방향"으로 설명하였다. 이 용어는 설명을 위한 실시예의 이해를 돕기 위한 것이다. 이는 실제적인 방향을 의미하지 않는다. 또한, 많은 다른 형태의 장치가 워크스테이션, 컴퓨터, 단말기, ATM 스위치, 전화 중앙 제어실 설비, 에터너 및 IP 스위치등을 포함하지만 이들에 한정되지 않는 상호접속 구조를 사용하여 접속될 수 있다.
명세서 및 청구의 범위에서 다차원으로 배열된 상호접속 구조를 가끔 참조하였다. 차원에 대한 참조는 상호접속 구조 형태를 이해하는데 유용하다. 그러나, 이들 차원은 공간 차원에 한정되지 않으며 일반적으로 특정 방식으로 상호접속된 노드 그룹을 의미한다. 여기 개시된 실시예의 다양한 변형 및 수정은 첨부된 청구의 범위의 발명의 사상 및 범위에서 벗어나지 않고 지금까지의 설명에 기초하여 만들어질 수 있다.

Claims (23)

  1. 다수의 노드; 및
    다수의 J+1 레벨을 포함하도록 배열된 계층적인 다중 레벨 구조내에서 상기 노드들을 선택적으로 결합하는 상호접속 구조내의 다수의 상호접속 라인을 구비하고,
    여기서 J 는 최하위 목적지 레벨 LO에서부터 최상위 목적지 레벨 L 까지 배열된 레벨의 계층내에서 0 보다 큰 정수이고, 상기 상호접속 구조는 다수의 입력 포트를 통해 분류되지 않은 상기 상호접속 구조로 들어가는 다수의 다중-비트 메시지를 전송하고, 상기 다수의 메시지 중 각 메시지(M)는 상기 메시지의 다중-비트중 어느 부분만이 두 노드 사이에서 전송되는 웜홀 루팅을 사용하는 노드를 통해 셀프-루팅 및 이동을 하고, 상기 다중-비트 메시지는 여러 노드 사이로 확장하고, 상기 각 메시지(M)는 상기 메시지(M)가 자신에 의해 지정된 출력 포트를 통해 상호접속 구조로 빠져나가는데 충분한 4 방법을 포함하는 여러 방법으로 이동하며,
    상기 4 방법은:
    (1) 상기 메시지(M)는 외부 디바이스로부터 상기 상호접속으로 상기 상호접속 내의 노드로 들어가고, 상기 메시지(M)는 하나 또는 그 이상의 목적지 출력 포트를 지정하고;
    (2) 상기 메시지(M)는 목적지 출력 포트를 버퍼링 하지 않고 상기 상호접속 구조내의 노드를 통해 이동하고;
    (3) 상기 메시지(M)는 레벨(Lk)상의 여러 노드로 버퍼링 없이 상기 상호접속 구조의 동일한 레벨(Lk)상의 노드를 통해 이동하며; 그리고
    (4) 상기 메시지(M)는 상기 레벨(Lk) 보다 목적지 레벨(LO)로 상기 계층내의 레벨(Li) 근처상의 노드로 버퍼링 없이 상기 상호접속 구조의 레벨(Lk)상의 노드를 통해 이동하는 것을 특징으로 하는 상호접속 장치.
  2. 제 1 항에 있어서,
    상기 레벨(Lk)상의 노드(NAK)에는:
    레벨(Lk)상의 노드(NBk)로부터의 다이렉트 데이터 입력 상호접속;
    레벨(Lk)상의 노드(NDk)로의 다이렉트 데이터 출력 상호접속;
    레벨(Lm)상의 노드(NCm)로부터(여기서 m 은 k 보다 큼), 또는 상기 상호접속 구조 밖의 디바이스(DC)로부터의 다이렉트 데이터 입력 상호접속; 및
    상기 상호접속 구조 밖의 디바이스(DE)로의 다이렉트 데이터 출력 상호접속, 또는 레벨(Li)상의 노드(NEi)로의 다이렉트 데이터 출력 상호접속(여기서 k 는 i 보다 커서 레벨(Li)이 목적지 레벨(LO)로의 계층내에 더 가까이 있도록 함)을 포함하는 다수의 상호접속이 있는 것을 특징으로 하는 상호접속 장치.
  3. 제 2 항에 있어서,
    노드(Ak)로의 다이렉트 상호접속이 있는 디바이스들 중에, 노드(Ak)로 데이터를 전송하기 위한 우선순위 관계가 존재하여:
    상기 노드(Ak)로의 다이렉트 상호접속이 있는 레벨(Lk)상의 노드(NBk)가 디
    바이스(DC)보다 우선순위를 가지게 하고(여기서 상기 디바이스(DC)는 레벨(Li)상의노드(NC) 또는 상기 상호접속 구조 바깥의 디바이스(DC)임);
    상기 노드(NBk)에서 노드(NAk)로 전송될 메시지(MB) 및 동일한 시간 간격에서 상기 디바이스(DC)에서 노드(NAk)로 전송될 메시지(MC)를 위한 우선순위 관계는 상기 메시지(MB)는 전송되게 하고 상기 메시지(MC)는 전송을 금지시키는 결과가 되도록 하는 것을 특징으로 하는 상호접속 장치.
  4. 제 1 항에 있어서,
    상기 상호접속 구조는 메시지 및 제어 신호를 운반하며,
    노드(NA)로부터 메시지(MA)를 수신하는 다이렉트 메시지 입력 상호접속; 및
    노드(NF)로부터 메시지(MF)를 수신하는 다이렉트 메시지 입력 상호접속을 포함하는 노드(NE)를 포함하고, 그리고
    상기 노드(NA)는 노드(NF)로부터 제어 신호(CA)를 수신하는 제어로직 및 제어 입력 상호접속을 가지고 있고, 상기 제어 신호(CA)는 노드(NA)로부터 노드(NE)까지의 상기 메시지 입력 상호접속상에서 노드(NF)로부터 노드(NE)까지의 상기 다이렉트 메시지 입력 상호접속의 우선순위를 부여하여,
    상기 노드(NF)가 상기 노드(NE)로 메시지(MF)를 전송하고 상기 노드(NA)로의 블로킹 상태를 지정하는 제어 신호(CA)를 전송하도록 하고,
    상기 노드(NA) 제어 로직이 상기 블로킹 상태를 지정하는 상기 제어 신호(CA)를 수신하고 상기 메시지(MF)와 같은 시간에서 상기 노드(NF)에 도달하도록 지정된 상기 메시지(MA)의 전송을 막음으로서 상기 제어 신호(CA)에 응답하여, 상기 전송이 막힌 메시지(MA)를 대안적으로 노드(ND)(여기서 노드(ND)는 노드(NE)와 떨어져 있고, 노드(ND)는 노드(NA)와 떨어져 있음)로 전송되게 하는 것을 특징으로 하는 상호접속 장치.
  5. 제 1 항에 있어서,
    상기 상호접속 구조는 메시지 및 제어 신호를 운반하며;
    노드(NA)로부터 헤더가 있는 메시지(MA)를 수신하는 다이렉트 메시지 입력 상호접속; 및
    노드(NF)로부터 메시지(MF)를 수신하는 다이렉트 메시지 입력 상호접속을 포함하는 노드(NE)를 포함하고, 그리고
    상기 노드(NA)에는 제어로직 및 상기 노드(NF)로부터 제어 신호(CA)를 수신하는 제어 입력 상호접속이 있고, 상기 제어 신호(CA)는 상기 제어 신호(CA)는 노드(NA)로부터 노드(NE)까지의 상기 메시지 입력 상호접속상에서 노드(NF)로부터 노드(NE)까지의 상기 다이렉트 메시지 입력 상호접속의 우선순위를 부여하여, 상기 선택된 디바이스가 노드(NE)이어서 상기 메시지(MA)가 노드(NE)로 전송되는 경우에, 같은 시간 간격에서 제어 신호(CA)를 막는 것이 없는 상태에서 상기 노드(NA)에서 도달하는 상기 메시지(MA)가 상기 노드(NA) 제어 로직이 상기 메시지(MA)의 헤더를 사용하여 상기 메시지(MA)를 전송하기 위해 선택된 디바이스를 결정하게 만들게 하는 것을 특징으로 하는 상호접속 장치.
  6. 제 5 항에 있어서,
    상기 노드(NAk)의 제어 로직은:
    상기 노드(NAk)가 상기 메시지(MA)에 의해 지정된 지정 출력 포트로의 경로를 가지는 노드(NEi)가 있는 레벨(Lk) 보다 상기 목적지 레벨(LO)로 상기 계층내의 레벨(i) 근처에서의 노드(NEi)로 다이렉트 출력 상호접속을 가지는지 여부의 제1 상태; 및
    상기 노드(NEi)가 다른 메시지에 의해 막히지 않았는지 여부의 제2 상태를 결정하고; 그리고
    상기 제1 및 제2 상태가 만족되는 경우 상기 노드(NAk)의 제어 로직은 상기 노드(NEi)로 메시지(MA)를 전송하고; 그리고
    상기 제1 및 제2 상태가 모두 만족되지 않는 경우에는 상기 노드(NAk)의 제어 로직은 노드(ND)(여기서 노드(NAk) 및 노드(NDk)는 떨어져 있고 노드(NEi) 및 노드(ND)는 떨어져 있음)로 메시지(MA)를 전송하는 것을 특징으로 하는 상호접속 장치.
  7. 제 1 항에 있어서,
    상기 레벨(Lk)상의 노드(NAk)로 액세스 가능한 다수의 액세스 가능 출력 포트가 포함되어 있고, 상기 상호접속 노드를 통한 경로를 경유하여 액세스 가능한 다수의 출력 포트를 더 구비하고; 그리고
    상기 노드(NEi)로의 다이렉트 출력 상호접속이 있는 상기 노드(NAk)로 액세스 가능한 상기 액세스 가능 출력 포트 각각은 상기 레벨(Lk) 보다 상기 목적지 레벨(LO)로 상기 계층내의 레벨(Li) 근처상의 노드(NEi)로도 액세스 가능하며, 상기 노드(NAk)에는 상기 노드(NEi)로의 다이렉트 출력 상호접속이 있는 것을 특징으로 하는 상호접속 장치.
  8. 제 1 항에 있어서,
    노드(NE)에 노드(NA)로부터의 제1 데이터 입력 상호접속 및 노드(NF)로부터의 제2 데이터 입력 상호접속이 있으며; 그리고
    상기 노드(NA) 및 노드(NF) 사이의 제어 상호접속이 노드(NE)로의 메시지 전송을 위한 분쟁을 해소시키는 것을 특징으로 하는 상호접속 장치.
  9. 제 1 항에 있어서,
    레벨(Lk) 보다 상기 목적지 레벨(LO)로의 상기 계층내의 레벨(Li) 근처상의 노드(NAi)로의 다이렉트 데이터 출력 상호접속 및 시간 T 에서, 상기 노드(NC)를 통해 이동하고 상기 노드(NA)로 적절히 전송되지만, 메시지(MB)에 의해 노드(NA)로부터 막혀서 메시지(MC)가 노드(CCk)와 떨어져 있는 상기 레벨(Lk)상의 한 노드로 반사되도록 하는 메시지(MC)에 관한 우선순위 관계를 가지는 레벨(Lk)상의 노드(NCk);
    상기 레벨(Lk)상의 노드(NDi)로의 다이렉트 출력 상호접속이 있는 레벨(Lk)상의 노드(NOk)를 더 구비하고,
    상기 노드(NOk)는 메시지(MC)에 액세스 가능한 액세스 가능 출력 포트로의 상기 상호접속 노드를 통한 경로가 있고, 상기 메시지(MC)는 시간 T 에서 상기 노드(NOk)를 통과하도록 반사되고, 제1 시간 단계가 노드가 하위 레벨로 메시지(MC)를 지시하는 상기 시간 T 이후에 오며,
    상기 상호접속 구조는 상기 메시지(MB)가 상기 시간 T 에서 상기 메시지(MC)를 막는 위치에 있지 않도록 하는 것을 특징으로 하는 상호접속 장치.
  10. 다수의 노드; 및
    구조내의 상기 노드들을 선택적으로 결합하는 상호접속 구조내의 다수의 상호접속 라인을 구비하고,
    상기 상호접속 구조는 다수의 입력 포트를 통해 분류되지 않은 상기 상호접속 구조로 들어가는 다수의 다중-비트 메시지들을 전송하고, 상기 다수의 메시지 의 각 메시지(M)는 상기 메시지의 다중-비트들의 단지 일부만이 두 노드 사이에서 전송되는 웜홀 루팅을 사용하는 노드를 통해 셀프-루팅 및 이동하고, 상기 다중-비트 메시지는 다중 노드 사이로 확장하며,
    노드(NA)로부터의 제1 데이터 입력 상호접속 및 노드(NF)로부터의 제2 데이터 입력 상호접속을 가지는 노드(NE)를 포함하고: 그리고
    상기 노드(NA) 및 노드(NF) 사이의 제어 상호접속이 상기 노드(NF)로의 메시지 전송을 위한 분쟁을 해소시키는 것을 특징으로 하는 상호접속 구조체.
  11. 제 10 항에 있어서,
    상기 상호접속 구조체는 메시지 및 제어 신호를 운반하고;
    노드(NA)로부터 메시지(MA)를 수신하는 다이렉트 메시지 입력 상호접속; 및
    노드(NF)로부터 메시지(MF)를 수신하는 다이렉트 메시지 입력 상호접속을 포함하는 노드(NE)를 포함하고, 그리고
    상기 노드(NA)는 노드(NF)로부터 제어 신호(CA)를 수신하는 제어로직 및 제어 입력 상호접속을 가지고 있고, 상기 제어 신호(CA)는 노드(NA)로부터 노드(NE)까지의 상기 메시지 입력 상호접속상에서 노드(NF)로부터 노드(NE)까지의 상기 다이렉트 메시지 입력 상호접속의 우선순위를 부여하여,
    상기 노드(NF)가 상기 노드(NE)로 메시지(MF)를 전송하고 상기 노드(NA)로의 블로킹 상태를 지정하는 제어 신호(CA)를 전송하도록 하고,
    상기 노드(NA) 제어 로직이 상기 블로킹 상태를 지정하는 상기 제어 신호(CA)를 수신하고 상기 메시지(MF)와 같은 시간에서 상기 노드(NF)에 도달하도록 지정된 상기 메시지(MA)의 전송을 막음으로서 상기 제어 신호(CA)에 응답하여, 상기 전송이 막힌 메시지(MA)를 대안적으로 노드(ND)(여기서 노드(ND)는 노드(NE)와 떨어져 있고, 노드(ND)는 노드(NA)와 떨어져 있음)로 전송되게 하는 것을 특징으로 하는 상호접속 구조체.
  12. 제 11 항에 있어서,
    상기 상호접속 구조체는 메시지 및 제어 신호를 운반하고;
    노드(NA)로부터 헤더가 있는 메시지(MA)를 수신하는 다이렉트 메시지 입력 상호접속; 및
    노드(NF)로부터 메시지(MF)를 수신하는 다이렉트 메시지 입력 상호접속을 포함하는 노드(NE)를 포함하고, 그리고
    상기 노드(NA)에는 제어로직 및 상기 노드(NF)로부터 제어 신호(CA)를 수신하는 제어 입력 상호접속이 있고, 상기 제어 신호(CA)는 상기 제어 신호(CA)는 노드(NA)로부터 노드(NE)까지의 상기 메시지 입력 상호접속상에서 노드(NF)로부터 노드(NE)까지의 상기 다이렉트 메시지 입력 상호접속의 우선순위를 부여하여, 상기 선택된 디바이스가 노드(NE)이어서 상기 메시지(MA)가 노드(NE)로 전송되는 경우에, 같은 시간 간격에서 제어 신호(CA)를 막는 것이 없는 상태에서 상기 노드(NA)에서 도달하는 상기 메시지(MA)가 상기 노드(NA) 제어 로직이 상기 메시지(MA)의 헤더를 사용하여 상기 메시지(MA)를 전송하기 위해 선택된 디바이스를 결정하게 만들게 하는 것을 특징으로 하는 상호접속 구조체.
  13. 구조 내의 다수의 디바이스들을 상호접속시키는 단계, 여기서 상기 디바이스들은 다수의 메시지 입력 단말 및 다수의 메시지 출력 단말을 가지고 있으며, 다수의 상호접속 라인이 전송 디바이스의 메시지 출력 단말로부터 수신 디바이스의 메시지 입력 단말로의 접속과 상기 디바이스를 상호 접속시키고;
    하나의 수신 디바이스의 입력 메시지 단말과 결합된 출력 메시지 단말이 있는 다수의 전송 디바이스 가운데 우선순위를 할당하는 단계;
    하나 또는 그 이상의 지정된 출력 포트로의 전송을 위해 상기 상호접속 구조체로 메시지를 들여보내는 단계;
    상기 디바이스들을 통해 메시지를 웜홀 경로설정하여 상기 메시지의 다중-비트 중 어느 한 부분만이 두 디바이스 사이를 이동하게 하는 단계, 여기서 상기 다중-비트 메시지는 여러 디바이스 사이로 확장되고;
    셀프-루팅을 사용하는 하나 또는 그 이상의 출력 포트로 경로를 따라 전송 디바이스로부터 수신 디바이스로 버퍼링 없이 메시지를 전송하는 단계; 여기서 상기 전송 디바이스는 상기 수신 디바이스를 요청하지도 않으며 상기 수신 디바이스로부터 수신하지도 않고, 상기 수신 디바이스로 상기 메시지 전송을 허용하고;
    하나의 수신 디바이스로 메시지를 전송하는 다수의 전송 디바이스와 통신하는 단계; 여기서 상기 하나의 수신 디바이스로 메시지를 전송하기 위한 우선순위를 가지는 전송 디바이스에는 우선순위 없는 전송 디바이스의 제어 신호 입력 단말로 상호접속 라인에 의해 연결된 제어 신호 출력 단말이 있고, 우선순위가 있는 전송 디바이스가 우선순위 없는 상기 전송 디바이스로 제어 신호를 전송하며;
    의도된 수신 디바이스로 우선순위가 없는 전송 디바이스로부터 전송될 메시지를 전향시키는 단계를 구비하고, 여기서 상기 전향된 메시지는 대안적인 수신 디바이스로 전향되고, 상기 대안적인 수신 디바이스도 상기 하나 또는 그 이상의 출력 포트로 경로설정되는 것을 특징으로 하는 상호접속 구조체를 통해 메시지를 이동시키는 방법.
  14. 상호접속 구조를 통해 메시지를 이동시키는 방법에 있어서,
    다수의 다이렉트 노드(NE) 입력 상호접속을 사용하여 노드(NE)와 다수의 디바이스(D)를 상호접속시키는 단계;
    상기 노드(NE)로 메시지를 전송하기 위해 상기 노드(NE)로 다이렉트 입력 상호접속이 있는 상기 디바이스(D) 가운데 우선 관계를 부여하는 단계;
    상기 디바이스(D)를 통해 메시지(MA)를 웜홀 경로설정하여 상기 메시지의 다중-비트의 일부분만이 두 디바이스 사이를 이동하게 하고, 상기 메시지(MA)는 시간 주기(T)내에서 상기 노드(NE)로 전송되게 하는 단계;
    시간 주기(T)에서 상기 노드(NE)로 전송될 메시지(MA)가 상기 노드(NE)로의 다이렉트 입력 상호접속이 있는 노드(NA)를 통해 이동하는 경우; 및
    상기 노드(NE)가 노드(NE)로 메시지를 전송하기 위한 노드(NA)상에 우선권을 가지는 시간 주기(T)에서 상기 노드(NE)로의 다이렉트 입력 상호접속을 가지는 노드(NF)를 통해 이동하는 상기 노드(NE)로 전향되거나 또는 상기 노드(NE)로 직접 전송될 어떠한 메시지(MF)도 없는 경우, 시간 주기(T)에서 노드(NA)로부터 상기 노드(NE)로 메시지(MA)를 전송하는 단계를 구비하는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서,
    만일 상기 시간 주기(T)에서, 노드(NF)가 상기 노드(NE)로 메시지(MF)를 전송하면, 상기 시간 주기(T)에서 상기 노드(NA)로 메시지(MA)로의 전송을 중지하는 단계를 더 구비하는 것을 특징으로 하는 방법.
  16. 제 15 항에 있어서,
    노드(NA)에 대해서는 중단하고, 노드(NA)로 메시지(MA)를 전송하고, 상기 노드(ND)는 상기 노드(NA) 및 상기 노드(NE)와는 다른 것을 특징으로 하는 방법.
  17. 제 16 항에 있어서,
    상기 노드(NF)에 의해 상기 노드(NA)로 제어 신호를 전송하여 상기 메시지(MA)가 상기 노드(NA)에 관해서는 중단되게 하고 상기 우선 관계를 부여하게 하는 것을 특징으로 하는 방법.
  18. 다수의 노드(N) 및 다수의 상호접속 라인(L)을 포함하는 상호접속 구조를 통해 다수의 출력 버퍼(B)로 메시지(M)를 이동시키는 방법에 있어서,
    다수의 상호접속 라인을 통해 다수의 노드(N)를 선택적으로 결합시켜 상호접속 라인(L(p,q))이 노드(p)로부터 노드(q)로 직접 데이터를 운반하게 하는 단계;
    노드(O(M)) 세트용 메시지(M)를 결정하여 상기 메시지(M)의 목표인 상기 출력 버퍼(B)들을 상기 노드(O(M)) 세트와 연결시키는 단계;
    상기 노드(N)를 통해 상기 메시지(M)를 웜홀 경로설정하여 여러 노드 사이로 확장하는 상기 메시지의 다중-비트의 일부만이 두 노드 사이를 이동하게 하는 단계;
    만일 상기 메시지(M)의 제1 부분이 시간(t)에서 상기 노드(p)에 위치하면, 시간(t)에서 상기 메시지(M)를 상호접속 라인(L(p,s))상으로 이동시켜 시간(t+1)에서 상기 메시지(M)가 상기 노드(s) 및 노드(p)가 다른 노드인 경우 노드(s)에 위치하도록 하는 단계;
    만일 상기 메시지(M)의 상기 제1 부분이 시간(t)에서 상기 노드(p)에 위치하고 상기 노드(p)로부터 노드(O(M))의 상기 세트가지의 최단 경로가 H 상호접속 라인(L)의 횡단을 포함하면, 상호접속 라인(L(p,q))을 결정하여 상기 노드(p)로부터 상기 노드(O(M))의 세트의 노드까지 최단 경로에 H-1 상호접속 라인(L)의 횡단이 포함되게 하는 단계;
    만일 시간(t)에서 상기 메시지(M)가 다른 메시지에 의해 상기 상호접속 라인(L(p,q))을 사용하여 막히지 않는다면, 시간(t)에서, 상기 메시지(M)를 상기 상호접속 라인(L(p,q))상으로 전송하여 시간(t+1)에서 상기 메시지(M)의 제1 부분이 상기 노드(p)에 위치하게 하는 단계; 및
    만일 시간(t)에서 상기 메시지(M)가 다른 메시지에 의해 상기 상호접속 라인(L(p,q))를 사용하여 막히게 되면, 시간(t)에서, 상기 메시지(M)를 상호접속 라인(L(p,r))상으로 전송시키는 단계를 구비하고,
    여기서 상기 노드(r) 및 노드(p)는 다른 노드이며, 상기 노드(r) 및 노드(q)는 다른 노드이며, 그리고 상기 노드(r)에서 상기 다수의 노드(O(M))의 노드까지의 최단 경로에는 어떠한 H 상호접속 라인(L)의 횡단도 포함되지 않는 것을 특징으로 하는 방법
  19. 다수의 노드(N) 및 다수의 상호접속 라인(L)을 포함하는 상호접속 구조를 통해 다수의 출력 버퍼(B)로 메시지(M)를 이동시키는 방법에 있어서,
    다수의 상호접속 라인을 통해 다수의 노드(N)를 선택적으로 결합시켜 상호접속 라인(L(p,q))이 노드(p)로부터 노드(q)로 직접 데이터를 운반하게 하는 단계;
    노드(O(M)) 세트용 메시지(M)를 결정하여 상기 메시지(M)의 목표인 상기 출력 버퍼(B)들을 상기 노드(O(M)) 세트와 연결시키는 단계;
    상기 노드(N)를 통해 상기 메시지(M)를 웜홀 경로설정하여 여러 노드 사이로 확장하는 상기 메시지의 다중-비트의 일부만이 두 노드 사이를 이동하게 하는 단계;
    만일 상기 메시지(M)의 시작부분이 시간(t)에서 상기 노드(p)에 위치하면, 시간(t)에서 상기 메시지(M)를 상호접속 라인(L(p,s))상으로 이동시켜 시간(t+1)에서 상기 메시지(M)가 상기 노드(s) 및 노드(p)가 다른 노드인 경우 노드(s)에 위치하도록 하는 단계;
    만일 상기 메시지(M)의 상기 시작부분이 시간(t)에서 상기 노드(p)에 위치하고 상기 노드(p)로부터 노드(O(M))의 상기 세트가지의 최단 경로가 H 상호접속 라인(L)의 횡단을 포함하면, 상호접속 라인(L(p,q))을 결정하여 상기 노드(p)로부터 상기 노드(O(M))의 세트의 노드까지 최단 경로에 H-1 상호접속 라인(L)의 횡단이 포함되게 하는 단계;
    만일 시간(t)에서 상기 메시지(M)가 다른 메시지에 의해 상기 상호접속 라인(L(p,q))을 사용하여 막히지 않는다면, 시간(t)에서, 상기 메시지(M)를 상기 상호접속 라인(L(p,q))상으로 전송하여 시간(t+1)에서 상기 메시지(M)의 제1 부분이 상기 노드(p)에 위치하게 하는 단계; 및
    만일 시간(t)에서 상기 메시지(M)가 다른 메시지에 의해 상기 상호접속 라인(L(p,q))를 사용하여 막히게 되면, 시간(t)에서 상호접속 라인(L(p,r))상으로 상기 메시지(M)를 전송하고(여기서 상기 노드(r) 및 노드(p)는 다른 노드이고 상기 노드(r) 및 노드(p)는 다른 노드임), 시간(t+1)에서, 상기 상호접속 라인(L(r,s))상으로 상기 메시지(M)를 전송하는(여기서 상기 노드(s) 및 노드(p)는 서로 다른 노드이고 상기 노드(s) 및 노드(q)는 서로 다른 노드이며, 상기 노드(s) 및 노드(r)은 서로 다른 노드이고, 그리고 상기 노드(r)로부터 상기 다수의 노드(O(M))의 노드가지의 최단 경로에는 어떠한 H 상호접속 라인(L)의 횡단도 포함되지 않음) 단계를 구비하는 것을 특징으로 하는 방법.
  20. 다수의 노드(N) 및 미리 결정된 패턴으로 상기 다수의 노드(N)와 연결되는 다수의 상호접속 라인(L)을 포함하는 상호접속 장치를 제공하는 단계;
    메시지(MA)를 수신하는 다이렉트 메시지 입력 상호접속 및 상기 메시지(MA)를 수신하는 최상위 우선순위를 가지는 우선순위 노드(Np)를 포함하는 다수의 노드로 상기 메시지(MA)를 전송하는 다수의 다이렉트 메시지 출력 상호접속을 가지는 노드(NA)(여기서 상기 우선순위 노드(Np)는 상기 메시지(MA)의 헤더내의 정보 및 상기 다수의 상호접속 라인(L)내부의 상기 노드(NA)의 위치를 루팅함으로서 결정됨), 및
    상기 우선순위 노드(Np)로 메시지를 적절히 전송하는 적절한 노드(NB)를 포함하는 다수의 노드로부터 메시지(Mp)를 수신하는 다수의 다이렉트 메시지 입력 상호접속을 가지는 우선순위 노드(NP)(여기서 상기 적절한 노드(NB)는 상기 다수의 상호접속 라인(L)내의 상기 노드(NB)의 위치에 의해 결정됨)를 포함하도록 상기 다수의 상호접속 라인(L)을 사용하여 상기 다수의 노드(N)를 연결시키는 단계;
    상기 노드(N)를 통해 여러 노드사이로 확장하는 상기 메시지(M)를 웜홀 경로설정하여 상기 메시지의 다중-비트의 어느 한 부분만이 두 노드사이를 이동하게 하는 단계;
    만일 상기 노드(NA)가 노드(NB)과 같다면, 상기 메시지(MA)를 상기 메시지(MF)로서 상기 노드(NA)로부터 상기 노드(Np)로 전송하는 단계; 및
    만일 상기 노드(NA)가 상기 노드(NB)와 같지 않고 상기 노드(NB)가 상기 노드(Np)로 메시지(MB)를 지시하면, 상기 노드(NB)로부터 상기 노드(Np)로 상기 메시지(MB)를 전송하는 단계를 구비하는 것을 특징으로 하는 데이터 전송 방법.
  21. 다수의 출력 포트(P),
    각 노드(N)에 다수의 다이렉트 메시지 입력 상호접속 및 다수의 다이렉트 메시지 출력 상호접속이 포함되어 있고, 상기 다수의 출력 포트(P)의 미리 결정된 출력 포트로 메시지(M)를 통과시키는 다수의 노드(N), 및
    상호접속 구조내에 놓여있는 다수의 상호접속 라인을 포함하는 다수의 메시지(M)를 동시에 운반하는 네트워크를 제공하는 단계;
    최하위 목적지 레벨(LO)에서부터 최상위 레벨(LI)(상기 최하위 레벨(LO)에서 상기 계층에서는 가장 멀리 떨어져 있음)까지 배열된 레벨의 계층내에 0 보다 큰 정수인 J 로 이루어진 다수의 J+1 레벨을 포함하는 계층적 다중 레벨 구조내에서 상기 노드들을 선택적으로 결합시키는(여기서, 상기 출력 포트(P)는 상기 최하위 목적지 레벨(LO)에서의 노드와 연결되어 있음) 단계;
    상기 다수의 노드(N)의 노드(NA)를 상기 네트워크내에 포함시키는 단계;
    상기 노드(N)를 통해 메시지(M)를 웜홀 경로설정하여 여러 노드사이로 확장하는 상기 메시지의 다중-비트의 한 부분만이 두 노드사이를 이동하게 하는 단계;
    상기 노드(NA)의 다수의 다이렉트 메시지 입력 상호접속으로 들어가는 것을 허용하여 상기 노드(NA)의 미리 결정된 출력 포트를 위한 분쟁을 제거하여 메시지(M)가 상기 노드(NA)의 레벨보다 높지 않은 레벨(L)인 노드(NH)(상기 노드(NH)는 상기 메시지(M)의 지정된 미리 결정된 출력 포트(P)로의 경로를 형성함)로 상기 노드(NA)의 상기 다이렉트 메시지 출력 상호접속을 통해 전송되도록 메시지의 수를 제한하는 단계를 구비하는 것을 특징으로 하는 메시지 전송 방법.
  22. 다수의 노드 및 다수의 상호접속 라인을 포함하는 계층적인 상호접속 구조를 통해 메시지를 전송하는 방법에 있어서,
    최하위 목적지 레벨(LO)에서부터 최상위 레벨(LI)까지 배열된 레벨의 계층내에 0 보다 큰 정수인 J 로 이루어진 다수의 J+1 레벨을 포함하도록 배열된 계층적 다중 레벨 구조내의 노드들을 선택적으로 결합시키는 단계;
    다수의 입력 포트를 통해 분류되지 않은 상기 상호접속 구조로 다수이 메시지를 들여보내는 단계;
    셀프-루팅 방법을 사용하여, 여러 노드사이로 확장하는 상기 메시지의 다중-비트의 어느 부분만이 두 노드사이를 이동하는 웜홀 루팅을 사용하여 노드를 통해 상기 다수의 메시의 각 메시지(M)를 이동시키는 단계를 구비하고,
    상기 메시지(M)는 상기 메시지(M)에 의해 지정된 출력 포트를 통해 상기 상호접속 구조를 상기 메시지(M)가 빠져나가는데 충분한 네가지 방법을 포함한 여러 방법으로 이동하며, 상기 네가지 방법은:
    (1) 외부 디바이스로부터 상기 상호접속 구조까지 상기 상호접속 구조내의 노드로 상기 메시지(M)(상기 메시지(M)는 하나 또는 그 이상의 지정된 출력 포트를 지정함)를 들여보내는 방법;
    (2) 지정된 출력 포트를 버퍼링하지 않고 상기 상호접속 구조내의 노드를 통해 상기 메시지(M)를 이동시키는 방법;
    (3) 동일한 레벨(Lk)상에서 다른 노드(이 노드도 지정된 출력 포트로의 통과경로를 가지고 있음)로 버퍼링 하지 않고 상기 상호접속 구조의 한 레벨(Lk)상의 노드를 통해 상기 메시지(M)를 이동시키는 방법; 및
    (4) 상기 레벨(Lk)보다 상기 목적지 레벨(LO)로의 계층내에 더 가까운 레벨(Li)상의 노드로의 버퍼링 없이 상기 상호접속 구조의 레벨(Lk)상의 노드를 통해 상기 메시지(M)를 이동시키는 방법을 포함하는 것을 특징으로 하는 메시지 전송 방법.
  23. 상호접속 구조내에서의 메시지 통신방법에 있어서,
    최상위 계층적 레벨에서부터 최하위 계층적 목적지 레벨까지의 다수의 계층적 레벨을 포함하는 구조 내에 다수의 노드를 배열시키는 단계;
    메시지를 수신하는 적어도 하나의 목적지 노드를 특정하는 단계;
    상기 상호접속 구조내의 어느 노드에서 제1 메시지를 발신하는 단계;
    상기 다수의 노드를 통해 메시지를 웜홀 루팅하여 여러 노드사이로 확장하는 상기 메시지의 다중-비트의 한 부분만이 두 노드사이에서 이동하도록 하는 단계;
    하위 레벨상의 제2 노드가 목적지 노드로의 경로인지 상기 제1 노드에서 결정하는 단계, 상기 제2 노드가 제2 메시지에 의해 막혔는지 상기 제1 노드에서 결정하는 단계, 및 상기 제2 노드가 목적지 노드로의 경로이고 상기 제2 노드가 막히지 않은 경우 상기 제2 노드로 버퍼링 없이 상기 제1 메시지를 진행시키는 단계를 포함하는 상기 상호접속 구조내에서 노드로부터 노드까지 제1 메시지를 통신하는 단계; 및
    그렇지 않으면 상기 제1 노드와 같은 레벨상의 제3 노드(상기 제3 노드는 목적지 노드로의 경로임)로 버퍼링 없이 상기 메시지를 횡단시키는 단계를 구비하는 것을 특징으로 하는 메시지 통신 방법.
KR1019997006691A 1997-01-24 1998-01-22 상호 접속 장치 및 데이터 통신 방법 KR100624240B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US3639297P 1997-01-24 1997-01-24
US60/036,392 1997-01-24
US9/009,703 1998-01-20
US09/009,703 1998-01-20
US09/009,703 US6289021B1 (en) 1997-01-24 1998-01-20 Scaleable low-latency switch for usage in an interconnect structure
PCT/US1998/000229 WO1998033304A1 (en) 1997-01-24 1998-01-22 A scalable low-latency switch for usage in an interconnect structure

Publications (2)

Publication Number Publication Date
KR20000070454A true KR20000070454A (ko) 2000-11-25
KR100624240B1 KR100624240B1 (ko) 2006-09-13

Family

ID=26679796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997006691A KR100624240B1 (ko) 1997-01-24 1998-01-22 상호 접속 장치 및 데이터 통신 방법

Country Status (12)

Country Link
US (1) US6289021B1 (ko)
EP (1) EP0954920A1 (ko)
JP (1) JP4571239B2 (ko)
KR (1) KR100624240B1 (ko)
CN (1) CN1241365C (ko)
AU (1) AU744578B2 (ko)
CA (1) CA2278617A1 (ko)
IL (1) IL131093A (ko)
NO (1) NO993604L (ko)
NZ (2) NZ523848A (ko)
PL (1) PL188252B1 (ko)
WO (1) WO1998033304A1 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6580692B1 (en) * 1998-09-18 2003-06-17 The United States Of America As Represented By The Secretary Of The Navy Dynamic switch path verification system within a multi-interface point-to-point switching system (MIPPSS)
US6324613B1 (en) * 1999-01-05 2001-11-27 Agere Systems Guardian Corp. Port router
US6553027B1 (en) * 1999-05-21 2003-04-22 Advanced Micro Devices, Inc. Apparatus and method for cascading multiple network switch devices
US6556223B1 (en) * 1999-08-12 2003-04-29 Ttc, A Division Of Dynatech, Llc Communication test set with a graphical user interface that can simultaneously present and update test results of a communication signal at multiple levels
EP1329063A1 (en) * 2000-10-06 2003-07-23 Irvine Sensors Corporation High speed multi-stage stacked layers switch
US7016363B1 (en) * 2000-10-19 2006-03-21 Interactic Holdings, Llc Scaleable interconnect structure utilizing quality-of-service handling
EP1360595A2 (en) * 2000-10-19 2003-11-12 Interactic Holdings, LLC Scaleable interconnect structure for parallel computing and parallel memory access
US7221677B1 (en) * 2000-10-19 2007-05-22 Interactic Holdings, Llc Scalable apparatus and method for increasing throughput in multiple level minimum logic networks using a plurality of control lines
US6940856B2 (en) * 2001-03-05 2005-09-06 International Business Machines Corporation Multicast buffered switch and method for operating a multicast buffered switch
NO314867B1 (no) * 2001-03-13 2003-06-02 Ericsson Telefon Ab L M Fremgangsmåte for å optimalisere programvaredistribusjon i store kommunikasjonsnett
US7707300B1 (en) 2001-04-13 2010-04-27 Cisco Technology, Inc. Methods and apparatus for transmitting information in a network
US9094328B2 (en) 2001-04-24 2015-07-28 Brocade Communications Systems, Inc. Topology for large port count switch
US8578130B2 (en) * 2003-03-10 2013-11-05 International Business Machines Corporation Partitioning of node into more than one partition
US7397799B2 (en) * 2003-10-29 2008-07-08 Interactic Holdings, Llc Highly parallel switching systems utilizing error correction
US7308558B2 (en) * 2004-01-07 2007-12-11 International Business Machines Corporation Multiprocessor data processing system having scalable data interconnect and data routing mechanism
US20050185582A1 (en) * 2004-02-20 2005-08-25 Samsung Electronics Co., Ltd. Apparatus and method for managing traffic and quality of service in a high-speed router
US20060171386A1 (en) * 2004-09-01 2006-08-03 Interactic Holdings, Llc Means and apparatus for a scaleable congestion free switching system with intelligent control III
EP1836503A4 (en) * 2004-12-20 2009-09-23 Interactic Holdings Llc CONTROLLED CONTROLLED INTERCONNECTION COMPRISING OPTICAL AND WIRELESS APPLICATIONS
US7814280B2 (en) * 2005-01-12 2010-10-12 Fulcrum Microsystems Inc. Shared-memory switch fabric architecture
US20070067488A1 (en) * 2005-09-16 2007-03-22 Ebay Inc. System and method for transferring data
US7685467B2 (en) * 2006-04-27 2010-03-23 Texas Instruments Incorporated Data system simulated event and matrix debug of pipelined processor
EP2092436A4 (en) 2006-10-26 2010-03-24 Coke S Reed NETWORK INTERFACE CARD FOR USE IN PARALLEL DATA PROCESSING SYSTEMS
US7916718B2 (en) * 2007-04-19 2011-03-29 Fulcrum Microsystems, Inc. Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
US8549092B2 (en) 2009-02-19 2013-10-01 Micron Technology, Inc. Memory network methods, apparatus, and systems
US8510244B2 (en) 2009-03-20 2013-08-13 ISC8 Inc. Apparatus comprising artificial neuronal assembly
US8280251B2 (en) * 2009-04-20 2012-10-02 Oracle America, Inc. Data transmission using direct and indirect optical paths
US8307116B2 (en) * 2009-06-19 2012-11-06 Board Of Regents Of The University Of Texas System Scalable bus-based on-chip interconnection networks
US8824496B2 (en) * 2009-10-30 2014-09-02 Oracle America, Inc. Two-phase arbitration mechanism for shared optical links
US8473659B2 (en) * 2010-01-15 2013-06-25 Oracle America, Inc. Time division multiplexing based arbitration for shared optical links
US8285140B2 (en) * 2010-02-17 2012-10-09 Oracle International Corporation Shared-source-row optical data channel organization for a switched arbitrated on-chip optical network
US8406623B2 (en) * 2010-02-17 2013-03-26 Oracle International Corporation Data channel organization for a switched arbitrated on-chip optical network
US8593986B2 (en) * 2011-06-01 2013-11-26 Cisco Technology, Inc. Lightweight storing mode for constrained computer networks
US8606113B2 (en) 2011-07-11 2013-12-10 Oracle International Corporation Optical network with tunable optical light sources
US8565608B2 (en) 2011-07-11 2013-10-22 Oracle International Corporation Optical network with switchable drop filters
US8655120B2 (en) 2011-07-11 2014-02-18 Oracle International Corporation Arbitrated optical network using tunable drop filters
CN103944838B (zh) * 2013-01-22 2017-07-14 新华三技术有限公司 堆叠系统及其实现方法
JP6197692B2 (ja) * 2014-02-26 2017-09-20 富士通株式会社 サーバ
CN105453489B (zh) * 2014-05-21 2019-03-08 华为技术有限公司 一种改进型环状拓扑结构及其应用方法
US9930117B2 (en) 2014-09-30 2018-03-27 Interactic Holdings, Llc Matrix vector multiply techniques
US20160105494A1 (en) 2014-10-08 2016-04-14 Interactic Holdings, Llc Fast Fourier Transform Using a Distributed Computing System
US9287208B1 (en) 2014-10-27 2016-03-15 Intel Corporation Architecture for on-die interconnect
CN105857165B (zh) * 2016-04-19 2017-12-22 江苏新日电动车股份有限公司 一种车用转向优先电路
WO2020123796A1 (en) 2018-12-12 2020-06-18 Interactic Holdings, Llc Method and apparatus for improved data transfer between processor cores
CN110086787B (zh) * 2019-04-15 2021-11-02 杭州迪普信息技术有限公司 报文识别方法、装置、电子设备及机器可读存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212773A (en) 1983-05-31 1993-05-18 Thinking Machines Corporation Wormhole communications arrangement for massively parallel processor
US4814980A (en) 1986-04-01 1989-03-21 California Institute Of Technology Concurrent hypercube system with improved message passing
US4933836A (en) 1986-10-29 1990-06-12 United Technologies Corporation n-Dimensional modular multiprocessor lattice architecture
US5339396A (en) 1987-11-18 1994-08-16 Hitachi, Ltd. Interconnection network and crossbar switch for the same
GB8915135D0 (en) 1989-06-30 1989-08-23 Inmos Ltd Message routing
US5181017A (en) 1989-07-27 1993-01-19 Ibm Corporation Adaptive routing in a parallel computing system
EP0419201B1 (en) 1989-09-18 1996-11-27 Fujitsu Limited Communication control system between parallel computers
US5253248A (en) 1990-07-03 1993-10-12 At&T Bell Laboratories Congestion control for connectionless traffic in data networks via alternate routing
US5471623A (en) 1991-02-26 1995-11-28 Napolitano, Jr.; Leonard M. Lambda network having 2m-1 nodes in each of m stages with each node coupled to four other nodes for bidirectional routing of data packets between nodes
JPH0581216A (ja) 1991-09-20 1993-04-02 Hitachi Ltd 並列プロセツサ
JP2601591B2 (ja) 1991-11-26 1997-04-16 富士通株式会社 並列計算機およびその全対全通信方法
US5533198A (en) 1992-11-30 1996-07-02 Cray Research, Inc. Direction order priority routing of packets between nodes in a networked system
US5617413A (en) 1993-08-18 1997-04-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Scalable wrap-around shuffle exchange network with deflection routing
US5546596A (en) 1993-08-24 1996-08-13 Intel Corporation Method and apparatus for integrated local and express routing in a multiprocessor
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
US5513322A (en) 1994-05-02 1996-04-30 Unisys Corporation Multi-path message routing without deadlocks
US5606551A (en) * 1994-12-21 1997-02-25 Lucent Technologies Inc. Bidirectional mesh network
JPH08185380A (ja) 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
US5701416A (en) 1995-04-13 1997-12-23 Cray Research, Inc. Adaptive routing mechanism for torus interconnection network
US5577029A (en) 1995-05-04 1996-11-19 Interwave Communications Cellular communication network having intelligent switching nodes
US5859981A (en) 1995-07-12 1999-01-12 Super P.C., L.L.C. Method for deadlock-free message passing in MIMD systems using routers and buffers
US5996020A (en) * 1995-07-21 1999-11-30 National Security Agency Multiple level minimum logic network
US6055618A (en) 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US6115373A (en) 1997-01-24 2000-09-05 The Hong Kong University Of Science And Technology Information network architecture

Also Published As

Publication number Publication date
NZ512979A (en) 2003-03-28
AU5908598A (en) 1998-08-18
WO1998033304A1 (en) 1998-07-30
CN1241365C (zh) 2006-02-08
EP0954920A1 (en) 1999-11-10
IL131093A0 (en) 2001-01-28
PL335044A1 (en) 2000-03-27
CA2278617A1 (en) 1998-07-30
JP4571239B2 (ja) 2010-10-27
NO993604D0 (no) 1999-07-23
PL188252B1 (pl) 2005-01-31
IL131093A (en) 2005-07-25
NO993604L (no) 1999-09-21
US6289021B1 (en) 2001-09-11
JP2002513526A (ja) 2002-05-08
NZ523848A (en) 2004-11-26
CN1249874A (zh) 2000-04-05
KR100624240B1 (ko) 2006-09-13
AU744578B2 (en) 2002-02-28

Similar Documents

Publication Publication Date Title
KR20000070454A (ko) 상호접속 구조에서 사용되는 스케일 조정가능한 대기시간이 짧은 스위치 및 메시지 전송 방법
JP3594198B2 (ja) マルチレベル最少論理ネットワーク
US6754207B1 (en) Multiple-path wormhole interconnect
JP2005513827A (ja) インテリジェントな制御を備えるスケーラブルスイッチングシステム
US20040264369A1 (en) Scalable network for computing and data storage management
US6687253B1 (en) Scaleable wormhole-routing concentrator
JP4613296B2 (ja) スケーラブルな多重経路ワームホール相互接続網
CA3123224C (en) Method and apparatus for improved data transfer between processor cores
CZ9902613A3 (cs) Přizpůsobivý přepínač s krátkou čekací dobou používaný v propojovacích strukturách
Yang et al. A Non-blocking Network Design for Terabit Capacity Optical Interconnects
MXPA99006982A (en) A scalable low-latency switch for usage in an interconnect structure
Ye Parallel Wavelength Routing Optical Interconnects for High-Performance Computing Systems
Aste et al. Performance of optical packet switching nodes in IP transport networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20090908

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee