KR101639438B1 - 버퍼링된 크로스바 스위치 시스템 - Google Patents

버퍼링된 크로스바 스위치 시스템 Download PDF

Info

Publication number
KR101639438B1
KR101639438B1 KR1020090112679A KR20090112679A KR101639438B1 KR 101639438 B1 KR101639438 B1 KR 101639438B1 KR 1020090112679 A KR1020090112679 A KR 1020090112679A KR 20090112679 A KR20090112679 A KR 20090112679A KR 101639438 B1 KR101639438 B1 KR 101639438B1
Authority
KR
South Korea
Prior art keywords
data
modules
crossbar switch
buffer
input
Prior art date
Application number
KR1020090112679A
Other languages
English (en)
Other versions
KR20100118054A (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 KR20100118054A publication Critical patent/KR20100118054A/ko
Application granted granted Critical
Publication of KR101639438B1 publication Critical patent/KR101639438B1/ko

Links

Images

Classifications

    • 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/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • 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/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • H04L49/508Head of Line Blocking Avoidance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0004Selecting arrangements using crossbar selectors in the switching stages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1302Relay switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1304Coordinate switches, crossbar, 4/2 with relays, coupling field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13076Distributing frame, MDF, cross-connect switch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13103Memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13322Integrated circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

설명된 실시예들은 데이터 모듈들간의 데이터 전송을 제공한다. 적어도 두 개의 크로스바 스위치들이 채용되고, 각 크로스바 스위치의 입력 노드들 및 출력 노드들은 대응하는 데이터 모듈들과 결합된다. 상기 i번째 크로스바 스위치는 Ni-입력×Mi-출력 스위치 패브릭을 가지며, Ni 및 Mi는 1 이상의 양의 정수들이다. 각각의 크로스바 스위치는 각 입력 노드에 있는 입력 버퍼, 상기 스위치 패브릭의 각 교차점에 있는 교차점 버퍼, 및 각 출력 노드에 있는 출력 버퍼를 포함한다. 입력 버퍼는 제 1 스케줄링 알고리즘에 따른 입력 버퍼로부터 데이터 패킷들을 판독하는 중재기를 가진다. 중재기는 제 2 스케줄링 알고리즘에 따라 교차점 버퍼 큐로부터 데이터 패킷들을 판독한다. 출력 노드는 하나 이상의 해당 교차점 버퍼들로부터 제공된 데이터 패킷들의 세그먼트들을 수신한다.
Figure R1020090112679
중재기, 프로세서, 메모리 컨트롤러, 데이터 모듈, 입력 버퍼

Description

버퍼링된 크로스바 스위치 시스템{BUFFERED CROSSBAR SWITCH SYSTEM}
본 발명은 통신 시스템에서 다중 모듈들간 상호 접속을 위한 버퍼링된 크로스바 스위치에 관한 것이다.
크로스바 스위치("교차점 스위치" 또는 "매트릭스 스위치")는 서로 수많은 입력 포트들과 출력 포트들을 상호 접속한다. P 입력들과 Q 출력들을 가지는 크로스바 스위치는 입력 포트들과 출력 포트들간의 접속들이 형성되는 PxQ 교차점들을 가지는 스위치 패브릭 매트릭스(switch fabric matrix)를 갖는다. 따라서, 입력 포트들 중 하나에 도달하는 패킷들은 하나 이상의 특정 출력 포트들에 라우팅될 수 있다. 예를 들어, 패킷은 오직 하나의 특정 출력 포트(유니캐스트)에 라우팅될 수 있거나, 모든 출력 포트들에 라우팅될 수 있거나 다중 특정 출력 포트들(멀티캐스트)에 라우팅될 수도 있다.
버퍼링되지 않은 크로스바 스위치들은 메모리 또는 다른 서브시스템들과 같은 다른 자원들 또는 인터넷 스위치들 또는 다른 고성능 통신 네트워크들을 프로세서들에 연결하는 다중 프로세서 컴퓨터 시스템들에 주로 사용된다. 그러나, 버퍼링되지 않은 크로스바 스위치들은 일반적으로 스위치의 내부 데이터 레이트가 링크의 데이터 레이트보다 더 높아야 하는 것을 의미하는 스위치 패브릭 증속을 요구한다. 이들 크로스바 스위치들은 전형적으로 PIM(Parallel Iterative Matching) 및 iSLIP 알고리즘들과 같은 100% 처리량을 달성하기 위한 높은 복잡도 중앙 제어 스케줄링 알고리즘들을 요구한다.
버퍼링된 크로스바 스위치에서, 버퍼들은 특정 출력 포트에 라우팅될 수 없는 패킷들(예를 들어, 블로킹된 패킷들)을 일시적으로 저장하는 크로스바 스위치에 포함된다. 예를 들어, 버퍼들은 각 입력 포트, 각 출력 포트, 크로스바 스위치의 각 교차 접속 또는 이들의 조합별로 제공된다. 중앙제어 스케줄링 알고리즘들은 입력 및 출력 데이터 스트림들이 효과적으로 스위치 패브릭에 접근하는데 사용된다.
예시적인 실시예에 있어서, 본 발명은 데이터 모듈들간의 데이터 전송을 위해 제공한다. 각 데이터 모듈은 데이터 처리 모듈과 데이터 저장 모듈 중 적어도 하나이다. 적어도 두 개의 결합된 크로스바 스위치들이 사용되고, 각 크로스바 스위치들의 입력 노드들 및 출력 노드들이 해당하는 데이터 모듈들에 결합된다. i-번 째 크로스바 스위치는 Ni-번째 입력 노드×Mi-번째 출력 노드 스위치 패브릭을 갖고, 여기서 Ni 및 Mi 은 각각 1 보다 큰 양의 정수이다. 각 크로스바 스위치는 각 입력 노드에 입력 버퍼를, 스위치 패브릭의 각 교차점에 크로스 버퍼를, 각 출력 노드에 출력 버퍼를 포함한다. 상기 입력 버퍼는 제 1 스케줄링 알고리즘에 따른 입력 버퍼로부터 데이터 패킷들을 판독하는 입력 중재기를 가진다. 상기 교차점 버퍼는 제 2 스케줄링 알고리즘에 따른 교차점 버퍼 큐로부터 데이터 패킷들을 판독하는 출력 중재기를 가지는 큐를 제공한다. 상기 출력 노드는 하나 이상의 대응하는 교차점 버퍼들로부터 제공된 데이터 패킷들의 세그먼트들을 수신한다.
본 발명의 양태들, 특징들, 및 이점들은 다음의 상세한 설명, 첨부된 청구항들 및 첨부된 도면들로부터 더욱 자세히 설명되며, 동일한 구성 요소들에 대해서는 동일한 참조 부호들을 할당한다.
본 발명의 실시예들에 따라, 버퍼링된 크로스바 스위치 시스템은 통신 시스템에서 다중 데이터 모듈들간 높은 처리량 상호 접속을 위해 제공된다. 예를 들어, 본 발명의 실시예들에 있어서, 크로스바 스위치내에 쓰루 분배된 버퍼링 및 스케줄링 알고리즘들은 멀티 코어 프로세서들과 메모리 서브시스템들을 상호 접속하는 동시 가상 파이프라인들을 생성하는데 사용된다. 본 발명의 실시예들은 예를 들어, 클라이언트-서버 스위치들, 인터넷 라우터들, 공유 메모리 시스템들, 또는 네트워크 스위치들로서 선택적으로 사용되어진다. 본 발명의 실시예들은 증속없이 100% 처리량을 달성한다.
본 발명은 통신 시스템에서 다중 데이터 모듈들간 높은 처리량 상호 접속을 위한 버퍼링된 크로스바 스위치 시스템을 제공한다.
도 1은 예시적인 버퍼링된 크로스바 스위치 시스템(100)의 블록도를 도시한다. 도시한 바와 같이 버퍼링된 크로스바 스위치 시스템(100)은 프로세싱 유닛(102), 버퍼링된 크로스바 스위치들(103, 104), 및 메모리 유닛(105)을 포함한다. 버퍼링된 크로스바 스위치들(103, 104)은 각각 프로세싱 유닛(102) 및 메모리 유닛(105)과 전기적으로 통신한다. 따라서, 도시한 바와 같이, 버퍼링된 크로스바 스위치들(103, 104)은 프로세싱 유닛(102) 및 메모리 유닛(105)내에 다중 데이터 모듈들간의 높은 처리량 상호 접속을 구현하도록 구성되어진다. 몇몇 실시예들에서, 버퍼링된 크로스바 스위치들(103, 104)은 광섬유를 통해 프로세싱 유닛(102) 및 메모리 유닛(105)과 통신하는 하나 이상의 칩들이다.
몇몇 실시예에서, 프로세싱 유닛(102)은 멀티 코어 프로세서이다. 예를 들어, 프로세싱 유닛(102)은 N개의 프로세서들을 포함하며, 여기서 N은 1 이상의 정수이다. 도 1에 도시한 바와 같이, 프로세싱 유닛(102)은 프로세서(120(1)), 프로세서(120(2)),… N번째 프로세서(120(N))까지 포함한다. 프로세서들은 예를 들어, 디지털 신호 처리 또는 시큐리티 프로토콜 처리와 같은 특정 기능들을 위한 가속기들로 구현되거나 파워PC 또는 ARM 프로세서들과 같은 범용 프로세서들로 구현될 수도 있다. 또한, 프로세싱 유닛(102)은 중재기(122(1)), 중재기 (122(2)), … N번째 중재기(122(N))까지 포함한다. 도 1에서 도시한 바와 같이, 프로세서(120(1))는 중재기(122(1))와 전기적으로 통신하고, 프로세서(120(2))는 중재기(122(2))와 전기적으로 통신하는 등 중재기(122(N))는 프로세서(120(N))와 전기적으로 통신한다. 중재기들(122(1) 내지 122(N)) 각각은 프로세서들(120(1) 내지 120(N)) 각각 통신하기 위한 적어도 하나의 입력 포트와 하나의 출력 포트를 가진다.
몇몇 실시예들에서, 메모리 유닛(105)은 메모리에 읽기 및 쓰기 동작을 조정하기 위한 메모리 컨트롤러들을 채택할 수 있다. 메모리는 예를 들어, 적어도 하나의 RAM 버퍼를 포함할 수 있다. 따라서, 실시예에서 나타낸 것과 같이, 메모리 유닛(105)은 하나 이상의 RAM 버퍼들의 읽기 정보 및 쓰기 정보를 조정하기 위한 M 메모리 제어부들을 포함한다. 여기서, M은 1 이상의 정수이다. N 및 M 값은 동일하지만, 반드시 동일할 필요는 없다. 메모리는 단지 RAM 버퍼에 한정되는 것은 아니며, 플래시 메모리와 같은 하나 이상의 다른 타입들의 메모리로 구현될 수 있다. 메모리 유닛(105)은 메모리 컨트롤러들(152(1)) 내지 메모리 컨트롤러(152(M))를 포함한다. 또한, 메모리 유닛(105)은 중재기들(150(1)) 내지 중재기(150(M))를 포함한다. 도 1에서 도시한 바와 같이, 메모리 컨트롤러(152(1))는 중재기(150(1))와 전기적으로 통신하고, 메모리 컨트롤러(152(2))는 중재기(150(2))와 전기적으로 통신하는 등, 메모리 컨트롤러(152(M))는 중재기(150(M))와 전기적으로 통신한다. 중재기들(150(1) 내지 150(M)) 각각은 메모리 컨트롤러들(152(1) 내지 152(M))과 각각 통신하기 위한 적어도 하나의 입력 포트와 하나의 출력 포트를 가진다. 본 발명의 실시예들은 출력 중재를 위한 중앙 중재기를 선택적으로 포함할 수 있다. 본 발 명의 다른 실시예들은 로컬 및 중앙 중재기들의 조합을 포함할 수 있다.
버퍼링된 크로스바 스위치들(103, 104)은 스위치에 어느 입력이 스위치의 하나이상의 출력 포트들 중 어느 하나에 전송되도록 구성된 스위치 패브릭을 포함한다. 실시예들에서, 버퍼링된 크로스바 스위치(103)는 N개의 입력 포트들, M개의 출력 포트들을 가지며, 버퍼링된 크로스바 스위치(104)는 M개의 입력 포트 및 N개의 출력 포트를 갖고, 여기서 N은 프로세서들의 개수이며, M은 메모리 컨트롤러들의 개수이다. 도 1에서 도시된 바와 같이, 버퍼링된 크로스바 스위치(103)는 132(1) 내지 132(N)로 도시된 N개의 입력 포트들과 138(1) 내지 138(M)로 도시된 M개의 출력 포트들을 갖는다. 버퍼링된 크로스바 스위치(104)는 148(1) 내지 148(M)로 도시된 M개의 입력 포트들과 142(1) 내지 142(N)로 도시된 N개의 출력 포트들을 갖는다. 2개의 버퍼링된 크로스바 스위치들이 도 1에서 도시되었지만, 본 발명은 그렇게 한정되지 않으므로, 버퍼링된 크로스바 스위치 시스템(100)은 B개의 버퍼링된 크로스바 스위치들을 포함할 수 있으며, 여기서 B는 1 이상의 정수이다.
예를 들어, 본 발명의 예시적인 실시예는 5개의 버퍼링된 크로스바 스위치들을 포함할 수 있다: 즉, 하나의 스위치(미도시)는 프로세싱 유닛(102)에서 메모리 유닛(105)으로 어드레스들을 전송하고, 하나의 스위치(버퍼링된 크로스바 스위치(103)로 도시)는 프로세싱 유닛(102)에서 메모리 유닛(105)으로 데이터를 전송하고, 하나의 스위치(미도시)는 메모리 유닛(105)에서 프로세싱 유닛(102)으로 어드레스들을 전송하고, 하나의 스위치(버퍼링된 크로스바 스위치(104)로 도시)는 메모리 유닛(105)에서 프로세싱 유닛(102)으로 데이터를 전송하고, 하나의 스위치(미도 시)는 메모리에서 프로세서로 응답들을 전송한다.
도 1에 도시한 바와 같이, 버퍼링된 크로스바 스위치(103)는 프로세싱 유닛(102)에서 메모리 유닛(105)으로 전송하는 데이터를 스위칭하도록 구성되고, 버퍼링된 크로스바 스위치(104)는 메모리 유닛(105)에서 프로세싱 유닛(102)으로 데이터를 스위칭하도록 구성되어 있다. 따라서, 버퍼링된 크로스바 스위치들(103, 104)은 프로세싱 유닛(102)의 몇 개의 N 프로세서들은 메모리 유닛(105)의 몇 개의 M 메모리 컨트롤러들과 통신하는 것을 설정하도록 사용될 수 있다. 예를 들어, 프로세싱 유닛(102)의 프로세서(120(1))에서 제공된 데이터는 버퍼링된 크로스바 스위치(103)의 입력 포트(132(1))로 제공될 수 있다. 중재기(122(1))는 데이터 프로세서(120(1))가 버퍼링된 크로스바 스위치(103)의 입력 포트(132(1))로 제공되도록 제어한다. 점선 화살표(134)에 의해 표시된 바와 같이, 버퍼링된 크로스바 스위치(103)는 버퍼링된 크로스바 스위치(103)의 출력 포트(138(2))에 이 데이터를 제공하도록 구성될 수 있다. 중재기(150(2))는 교차점 버퍼가 버퍼링된 크로스바 스위치(103)의 출력 포트(138(2))로 전송되도록 제어한다. 따라서, 버퍼링된 크로스바 스위치(103)는 메모리 유닛(105)의 메모리 컨트롤러(152(2))로 이 데이터를 제공한다. 유사하게, 점선 화살표들(135, 136)은 버퍼링된 크로스바 스위치(103)의 다른 예시 데이터 경로 설정들을 나타낸다. 또한, 버퍼링된 크로스바 스위치(103)는 하나의 입력 포트에서 다수의 출력 포트들로 데이터를 제공하도록 설정될 수 있다. 비슷하게, 메모리 유닛(105)의 메모리 컨트롤러(152(1))로부터의 데이터는 버퍼링된 크로스바 스위치(104)의 입력 포트(148(2))에 제공될 수 있다. 중재 기(150(1))는 데이터 메모리 컨트롤러(152(1))가 버퍼링된 크로스바 스위치(104)의 입력 포트(148(2))에 제공하는 것을 제어한다. 점선 화살표(145)로 표시된 바와 같이, 버퍼링된 크로스바 스위치(104)는 하나의 출력, 예를 들어, 프로세싱 유닛(102)의 프로세서(120(2))에 데이터를 제공하는 출력 포트(142(2))로 이 데이터를 제공하도록 설정될 수 있다. 중재기(122(2))는 교차점 버퍼가 버퍼링된 크로스바 스위치(104)의 출력 포트(142(2))로 전송되는 것을 제어한다. 유사하게, 점선 화살표들(144, 146)은 버퍼링된 크로스바 스위치(104)의 다른 예시 데이터 경로 설정들을 나타낸다.
도 2는 본 발명의 실시예에 따른 버퍼링된 크로스바 스위치 시스템(200)의 블록도를 도시한다. 도시된 바와 같이, 버퍼링된 크로스바 스위치 시스템(200)은 버퍼링된 크로스바 스위치(226), 및 가상 출력 큐들(VOQs)(202, 204, 206)을 포함한다. 버퍼링된 크로스바 스위치(226)는 입력 포트들(220, 222, 224)로 도시된 3개의 입력 포트들과 출력 포트들(246, 248, 250)로 도시된 3개의 출력 포트들로 구성된다. 그리하여, 도 2에 도시된 바와 같이, N=M=3이다. 입력 포트(220)는 VOQ(202)와 전기적으로 연결되며, 입력 포트(222)는 VOQ(204)와 전기적으로 연결되며, 입력 포트(224)는 VOQ(206)와 전기적으로 연결된다. 출력 포트(246)는 출력 큐 1(252)과 전기적으로 연결되고, 출력 포트(248)는 출력 큐 2(254)와 전기적으로 연결되며, 출력 포트(250)는 출력 큐 M(256)과 전기적으로 연결된다. 본 발명의 일부 실시예들은 출력 큐들(252, 254, 256)을 포함하지 않을 수도 있다. 버퍼링된 크로스바 스위치(226)는 3x3 스위치 매트릭스의 각 교차점에서 FIFO 버퍼를 포함한다. 따라서, 실시예들에서, N×M 스위치는 N×M 버퍼들을 구비할 것이다. 이들 FIFO 버퍼들은 교차점 큐들(228, 230, 232, 234, 236, 238, 240, 242, 244)로써 도 2에 도시된다. 교차점 큐들은 각각의 출력 포트로 데이터를 전송하기 전에 일시적으로 데이터를 저장한다. 교차점 큐들은 중단없이 스위치 패브릭이 다중 입력 포트들에서 거의 동시에 데이터를 수신하게 한다.
VOQ(202, 204, 206)은 각각 하나 이상의 가상 선입선출(FIFO) 버퍼들을 포함할 수 있다. 예를 들어, VOQ(202)는 FIFO들(202a, 202b, 202c)로서 도 2에 도시된 3개의 FIFO들을 포함할 수 있다; 그러나, 본 발명은 그것에 한정되지 않으며, 더 많거나 또는 더 적은 FIFO들을 사용할 수 있다. 각 VOQ 버퍼는 VOQ들에 의해 버퍼링된 크로스바 스위치(226)의 스위치 패브릭으로의 액세스를 스케줄링하는 중재기와 전기적으로 연결된다. 도 2에 도시된 바와 같이, VOQ(202)는 중재기(214)와 전기적을 연결되며, VOQ(204)는 중재기(216)과 전기적으로 연결되며, VOQ(206)은 중재기(218)와 전기적으로 연결된다. VOQ들로써 도 2에 도시되었지만, 본 발명의 실시예들은 다른 종류의 입력 버퍼링을 사용할 수도 있다.
VOQ들(202, 204, 206)로 전송된 패킷들은 패킷들의 목적지 어드레스들에 따라 FIFO들 방식으로 분류된다. 패킷들은 일반적으로 다양한 길이로 구성되어, 본 발명의 실시예들은 그것이 스위치 패브릭으로 제공되기 전에 패킷들을 “셀들”로 분할한다. 셀은 고정 개수의 비트들로 구성되어 다양한 치수의 패킷들은 필요한 경우 패딩에 더해 수많은 고정 치수의 셀들로 분리될 수 있다. 교차점 큐들은 셀들이 대응하는 출력 큐(들)로 전달되기 전에 데이터 셀들을 일시적으로 저장한다. 각 교 차점 큐는 교차점 큐들에 의해 버퍼링된 크로스바 스위치(226)의 출력 포트들로의 액세스를 스케줄링하는 중재기와 전기적으로 연결된다. 도시된 바와 같이, 교차점 큐들(228, 230, 232)은 중재기(225)와 전기적으로 연결되며, 교차점 큐들(234, 236, 238)은 중재기(227)와 전기적으로 연결되며, 교차점 큐들(240, 242, 244)은 중재기(229)와 전기적으로 연결된다. 다시 도 1을 참조하여, 중재기들(214, 216, 218)은 중재기들(122(1) 내지 122(N))에 대응하며 중재기들(225, 227, 229)은 중재기(150(1) 내지 150(M))에 대응하며, 여기서, N=M=3이다.
본 발명의 일부 실시예들은 출력 큐들(252, 254, 256)을 포함하여 데이터 셀들을 패킷들로 재구성한다. 출력 큐들(252, 254, 256)은 패킷을 재구성할 필요가 없기 때문에, 패킷들을 스위치 패브릭(예를 들어, 패킷들을 셀들로 분리하지 않는)로 직접 전송하는 실시예들에서 필요하지 않는다.
본 발명의 일부 실시예들은, 각 교차점 큐의 치수(예를 들어, 큐 깊이)가 다양할 수 있다는 것을 제공한다. 따라서, 각 교차점 큐의 깊이는 예를 들어, 도 1의 버퍼링된 크로스바 스위치들(103, 104)을 통해 데이터 전송의 왕복시간에 기초하여 변한다. 예를 들어, 긴 왕복시간을 갖는 데이터 경로는 패킷의 왕복 전송 중에 데이터 셀들을 저장하기 위해서 더 큰 교차점 버퍼를 필요로 할 수 있다. 그리하여, 본 발명의 실시예들은 서로 다른 왕복 시간을 지원하는 다양한 깊이들의 교차점 큐들을 제공한다.
왕복시간은 크레딧이 입력 중재기로 복귀하기 위해 필요한 시간이며 교차점 버퍼로 데이터를 전송하기 위해 필요한 시간이다. 처음에는, 모든 교차점 버퍼들은 비어 있다. 버퍼링된 크로스바 스위치의 각각의 입력 중재기는 얼마나 많은 수의 크레딧들이 각 교차점 버퍼에 유효한 지를 추적할 수 있다. 예를 들어, 교차점 버퍼(i,j)에서 각 입력 포트(i)에 유효한 크레딧들의 개수 C는 C(i,j)로 표현될 수 있다. 초기에 크레딧들의 개수는 교차점 버퍼(i,j)의 깊이와 동일하다. 입력 포트(i)로부터 교차점 버퍼(i,j)로 전송된 각 데이터 셀의 경우에, 크레딧들의 개수 C는 감소한다. C(i,j)가 0이면, 입력 포트(i)는 데이터 셀들의 전송이 중단되어야 하거나, 그 외 교차점 버퍼(i,j)는 오퍼플로우할 것이다. 출력(j)에서의 출력 중재기가 교차점 버퍼(i,j)로부터 셀을 당기면, C(i,j)가 증가된다(“크레딧 반환”). 예를 들어, 입력을 교차점 버퍼에 기록하는데 2사이클이 걸리며 크레딧을 반환하는데 3사이클이 걸리며, 왕복시간은 5사이클이다. 더 깊은 교차점 버퍼로는, 입력이 그의 크레딧들의 소모없이 셀들을 교차점 버퍼로 전송을 유지할 수 있다. 본 발명의 예시적인 실시예들에서, 교차점 버퍼의 깊이는 크레딧이 레이턴시(latency)로 복귀함에 따라 증가할 수 있어, 왕복시간이 증가하게 된다.
입력 중재기들(214, 216, 218)은 N개의 입력 FIFO 버퍼들(202, 204, 206) 각각이 하나의 중재기를 구비하기 때문에 분산된 중재기들이다. 입력 중재기들은 서로 전기적으로 연결되지 않아, 분산된 중재기들이 중앙 집중식 중재기보다 더 작은 물리적 치수를 갖을 수 있기 때문에, 버퍼링된 크로스바 스위치(226)의 확장성을 용이하게 한다. 유사하게, 출력 중재기들(225, 227, 229)은 또한 M개의 출력 큐들(252, 254, 256) 각각이 하나의 중재기를 구비하기 때문에 분산된 중재기들이다.
본 예시적인 실시예의 경우에, 중재기들(214, 218, 225, 227, 229)은 라운드 로빈 알고리즘을 구현하는 “라운드-로빈” 스케줄러들로써 구현된다: 이 라운드로빈 알고리즘에서는, 버퍼들이 오름차순 또는 내림차순으로 처리되며, 처리는 마지막 순서의 버퍼가 제공된 후 처음 순서의 버퍼로 복귀하게 된다. 예를 들어, 비어 있지 않은 VOQ들(202a, 202b, 202c) 각각은 중재기(214)에 의해 서비스됨에 따라, 서비스된 버퍼의 데이터 셀들은 현재의 서비스된 VOQ가 비게 되거나 VOQ에 대한 시간 슬롯이 종료될 때까지 스위치 패브릭으로 제공된다. 그것은 중재기(214)가 다음 순서의 VOQ로 진행하게 한다. 중재기(214)는 비어 있는 VOQ들을 스킵하여 다음의 비어 있지 않은 VOQ를 서비스한다. 중재기들(216, 218, 225, 227, 229)는 중재기(214)와 유사하게 동작한다. 라운드-로빈 스케줄링 알고리즘이 설명되었지만, 본 발명은 이에 한정되지 않으며, 다른 스케줄링 알고리즘들이 사용될 수 있는데, 예를 들어, 가장 긴 시간동안 데이터를 보유하는 큐가 우선적으로 스케줄링되는 최장 큐 선스케줄링 알고리즘이 사용될 수 있다. 또한, 본 발명의 실시예들은 동일한 스케줄링 알고리즘을 반드시 사용하지 않는 입출력 중재기들을 제공하며, 스케줄링 알고리즘들의 조합이 사용될 수 있다.
일반적으로, 중재는 상기 설명된 바와 같이 수행된다. 그리하여, 버퍼링된 크로스바 스위치(226)는 동일한 개수(N)의 입력들 및 출력들을 가지면, 정수인 Z개의 셀로 구성되는 패킷은 목적지 출력 큐에 도달하는데 NxZ 클록 사이클이 걸린다. 본 발명의 예시적인 실시예들은 셀 우선순위화를 제공한다. 예를 들어, 우선순위는 프로세서 기준으로 할당되며, 여기서 연관된 중재기는 Z 사이클에서 연속적으로 패킷의 모든 Z 셀들을 전달하도록 프로세싱 유닛(102)내의 특정 프로세서들은 다른 프로세서들보다 더 높은 우선순위를 할당받을 수 있다. 대안적으로, 우선순위는 패킷 기준으로 할당되며, 여기서, 예를 들어, 특정 타입들의 패킷 타입들은 다른 타입들의 패킷들보다 더 높은 우선순위를 할당받을 수 있다.
비균일 출력은 버퍼링된 크로스바 스위치(226)의 특정 출력 포트의 반복된 액세스로 발생한다. 비균일 출력은 출력 포트로의 액세스가 출력 중재기에 의해 제어되기 때문에 버퍼링된 크로스바 스위치(226)의 최대 처리량을 제한한다. 예를 들어, 도 1에 도시된 바와 같이, 버퍼링된 크로스바 스위치(226)의 각 출력 포트는 메모리 유닛(105)내의 특정 메모리 컨트롤러에 대응한다. 일반적으로, 순차 어드레스들을 갖는 메모리의 블록의 데이터 전송은 하나의 메모리 컨트롤러에 의해 관리된다. 도착지 메모리 어드레스는 어느 버퍼링된 크로스바 스위치(226)의 출력에 액세스하는지를 결정한다. 그리하여, 순차 메모리 액세스들은 버퍼링된 크로스바 스위치(226)의 최대 수율을 제한할 수 있는 발생하는 비균일 출력 조건을 유발한다. 본 발명의 일부 실시예들은 버퍼링된 크로스바 스위치(226)를 통해 그러한 어드레스들에 대한 데이터를 통과시키기 전에 메모리 어드레스들을 스크램블링한다. 메모리 어드레스들의 스크램블링은 순차 메모리 액세스들을 출력 포트 액세스들의 더 많은 균일 분배를 가지는 액세스들로 번역한다.
도 3은 도 2의 버퍼링된 크로스바 시스템의 추가 사항을 도시한다. 도 3에 도시된 바와 같이, 버퍼링된 크로스바 스위치(301)의 예시적인 실시예들은 M개의 멀티플렉서들(302, 304, 306)을 추가적으로 포함하고, 여기서 M은 크로스바 스위치의 출력들의 개수이다. 도 3에 도시된 바와 같이, N=M=3. N개의 입력들과 M개의 출 력들을 갖는 스위치의 경우에, 버퍼링된 크로스바 스위치(301)의 스위치 패브릭은 M개의 “N-to-1” 멀티플렉서들을 포함할 수 있다. 도시된 바와 같이, 중재기(225) 및 교차점 큐들(228, 230, 232)은 멀티플렉서(302)와 전기적으로 연결된다. 중재기(225)는 어느 교차점 큐들이 멀티플렉서(302)에 의해 출력 포트(246)로 어서트되는지 제어하여 출력 큐(252)에 액세스한다. 유사하게, 교차점 큐들(234, 236 ,238)은 멀티플렉서(304)와 전기적으로 연결된다. 중재기(227)는 멀티플렉서(304)에 의해 출력 포트(248)에 어서트되는 교차점 큐들을 제어하여, 출력 큐(254)를 액세싱한다. 교차점 큐들(240, 242, 244)은 멀티플렉서(306)와 전기적으로 연결된다. 중재기(229)는 어느 교차점 큐들이 멀티플렉서(306)에 의해 출력 포트(250)에 어서트되는지 제어하여 출력 큐(256)에 액세스한다.
모놀리식 칩으로써 구현되도록 상술된 바와 같이, 본 발명은 여기에 제한되지 않는다. 예를 들어, 도 4에 도시된 바와 같이, 각 버퍼링된 크로스바 스위치는 스위치 카드들(406(1) 내지 406(L))로써 도시되는 자신의 회로 보드를 차지한다. 다중 스위치 카드들은 스위치 섀시(400)를 형성하는 쉘프들(404(1) 내지 404(K))로써 보여지는 다중 쉘프들을 갖춘 쉘프를 차지한다. 유사하게, 프로세서들 및 메모리들은 라인 섀시(402)에 위치할 수 있다. 라인 섀시(402)는 쉘브(409(1) 내지 409(K))로써 도시된 다중 쉘프들을 포함할 수 있고, 각 쉘프는 라인 카드(410(1) 내지 410(L))로써 도시된 다중 라인 카드들을 포함한다. 각 라인 카드는 스위치 카드들을 통해 통신하는 메모리 또는 프로세서들과 같은 디바이스들을 포함할 수 있다. 라인 섀시는 일반적으로 전기 케이블들 또는 링크들(412, 414, 416, 418)로써 도시된 광학 링크들을 통해 스위치 섀시와 연결된다.
도 5는 본 발명의 예시적인 실시예들에 따른 다른 버퍼링된 크로스바 스위치 시스템 동작을 도시한다. 도 5에 도시된 바와 같이, 하나 이상의 버퍼링된 크로스바 스위치(500)는 일련의 프로세서들(102) 및 저장 모듈들(105)을 형성하는데 사용되고, 여기서 저장 모듈은 서로 통신하는 2개의 프로세서들용 버퍼로써 기능한다. 버퍼링된 크로스바 스위치들(500)은 도 1에 대하여 도시된 바와 같이 동작한다. 버퍼링된 크로스바 스위치들(500)은 또한 브리지(502)와 전기적으로 연결되어 체인을 따라 형성된 브랜치를 생성한다.브리지(502)는 버퍼링된 크로스바 스위치들(500)과 통신하는 하나의 고대역폭 포트와 프로세서(504) 및 저장 모듈들(506, 508)로써 도시된 저속 또는 레거시 데이터 모듈들과 통신하는 저대역폭 포트들을 구비할 수 있다. 그리하여, 본 발명의 실시예들은 저속 데이터 모듈들이 고속 데이터 모듈들에 이용가능한 시스템 대역폭을 제한없이 고속 데이터 모듈들과 통신하는 방법을 제공한다. 브리지(502)는 상기 기술된 바와 같이 버퍼링된 크로스바 스위치들을 사용하거나, 버퍼링된 크로스바 스위치들을 사용하지 않는 설계를 채택할 수도 있다.
당업자는 첨부된 청구항에 표현된 바와 같이 본 발명의 범주내에서 본 발명의 특징을 설명하기 위해 기술되고 도시된 부분들의 상세사항들, 재료들, 및 배치들을 다양하게 변경할 수 있다는 것을 더욱 이해해야 한다.
여기서 기술된 “일 실시예” 또는 “실시예”는 실시예와 관련하여 기술된 특정 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함될 수 있다는 것을 의미한다. 명세서에서 여러 곳에 위치한 “일 실시예에서”라는 구절의 기 재들은 동일한 실시예의 모든 곳에서 필요한 것은 아니며 다른 실시예들과 필연적으로 상호 배타적인 추가 또는 대체 실시예들이 아니다. "구현”이라는 용어에도 동일하게 적용된다.
본 발명의 예시적인 실시예들은 단일 집적 회로, 다중칩 모듈, 단일 카드, 또는 다중 카드 회로팩으로써 구현 가능한 회로들의 프로세서에 대해서 설명하였지만, 본 발명은 이에 제한되지 않는다. 당업자에게 명백한 바와 같이, 회로 소자들의 다양한 기능들이 또한 소프트웨어 프로그램에서 처리 블록들로써 구현될 수 있다. 이런 소프트웨어는 예를 들어, 디지털 신호 프로세서, 마이크로콘트롤러, 또는 범용 컴퓨터에서 사용될 수 있다.
본 발명은 방법들 및 이런 방법들을 실행하는 장치들의 형태로 구현될 수 있다. 본 발명은 또한 자기 기록 매체, 광 기록 매체, 고상 메모리들, 플로피 디스켓들, CD-ROM들, 하드 드라이브들 또는 기타 머신-판독가능 기억 매체와 같은 유형의 매체에서 구현되는 프로그램 코드의 형태로 구현될 수 있고, 여기서 프로그램 코드가 컴퓨터와 같은 머신에 의해 로드되거나 실행될 때, 머신은 본 발명을 실행하는 장치가 된다. 본 발명은 또한 프로그램 코드의 형태, 예를 들어, 기억 매체에 저장 여부, 머신에 의해 로드 또는 실행 여부, 또는 광섬유를 통해, 또는 전자기 방사를 통해 과전 배선 또는 케이블링과 같은 일부 송신 매체 또는 캐리어를 통한 송신 여부로써 구현된다. 범용 프로세서상에서 구현될 때, 프로그램 코드 세그먼트들은 프로세서와 조합되어 특정 논리 회로들에 아날로그적으로 동작하는 유일한 장치를 제공한다. 본 발명은 또한 매체를 통해 전기적 또는 광학적으로 전송된 비트스트림, 또는 다른 신호값들의 시퀀스, 본 발명의 방법 및/또는 장치를 사용하여 생성된 저장된 자장 변수들의 형태로 구현될 수 있다.
여기에 기술된 예시적인 방법들의 단계들은 반드시 기술된 순서에 따라 수행될 필요는 없으며 그런 방법들의 단계들 순서는 단지 예시적인 것으로 이해되어야 한다는 것이 이해될 것이다. 또한, 추가 단계들은 그런 방법들에 포함될 수 있으며, 특정 단계들은 본 발명의 다양한 실시예들에 일치하는 방법들에서 생략되거나 조합될 수 있다.
구성 요소에 대한 참조 및 표준에 관해 여기에 사용된 바와 같이, “호환가능”이란 용어는 구성 요소가 표준에 의해 전체적으로 또는 부분적으로 기술된 방식으로 다른 구성 요소들과 통신하는 것을 의미하며 표준에 의해 기술된 방식으로 다른 구성 요소들과 충분히 통신할 수 있는 다른 구성 요소들에 의해 인식될 것이다. 호환가능 구성 요소는 표준에 의해 기술된 방식으로 내부적으로 동작할 필요는 없다.
또한, 설명의 편의상, “결합하다(couple)” “결합하는(coupling)”, “결합된(coupled)”, 전기적 통신”, “접속하다(connect)”, “접속하는(connecting)”, “접속된(connected)”의 용어들은 본 발명에 기술된 방식 및 에너지가 2개 이상의 구성 요소들 사이에서 전송되는 것이 허락되도록 개발된 기술을 참고하며, 필수는 아니지만, 하나 이상의 추가 구성 요소들의 삽입이 예상된다. 반대로, “직접 결합된(directly coupled)”, “직접 접속된(directly connected)” 등의 용어는 그런 추가 구성 요소의 부재를 의미한다. 신호들 및 대응하는 노드들 또는 포트들 은 동일한 명칭에 의해 참조될 것이고, 그런 목적으로 상호 교환가능하다.
도 1은 본 발명의 예시적인 실시예들에 따라 작동하는 버퍼링된 크로스바 스위치 시스템의 블록도.
도 2는 본 발명의 실시예에 따른 버퍼링된 크로스바 스위치의 블록도.
도 3은 도 2의 버퍼링된 크로스바 스위치의 추가 상세사항을 도시한 도면.
도 4는 본 발명의 예시적인 실시예들에 따라 작동하는 다른 버퍼링된 크로스바 스위치 시스템을 도시한 도면.
도 5는 본 발명의 실시예들에 따라 작동하는 또 다른 버퍼링된 크로스바 스위치 시스템을 도시한 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
120(1): 프로세서 1 120(2): 프로세서 2
120(N): 프로세서 N 122(1): 중재기 1
122(2): 중재기 2 122(N): 중재기 N
150(1): 중재기 1 150(2): 중재기 2
150(M): 중재기 M 152(1): 메모리 컨트롤러 1
152(2): 메모리 컨트롤러 2 152(N): 메모리 컨트롤러 M

Claims (20)

  1. 데이터 모듈들 간에 데이터를 전송하는 장치 - 상기 데이터 모듈들의 각각은 데이터 프로세싱 모듈 및 데이터 저장 모듈 중 적어도 하나임 - 로서,
    적어도 한 쌍의 크로스바 스위치 - 상기 크로스바 스위치의 각각의 입력 노드들 및 출력 노드들은 상기 데이터 모듈들 중 대응하는 모듈들과 연결되고, 제 1 크로스바 스위치는 N-입력 노드×M-출력 노드 스위치 패브릭을 가지고, 제 2 크로스바 스위치는 M-입력 노드×N-출력 노드 스위치 패브릭을 가지고, M 과 N 은 각각 1 보다 큰 양의 정수들이며, M 과 N 은 동일하지 않음 - 를 포함하되,
    각각의 크로스바 스위치는,
    제 1 스케줄링 알고리즘에 따라 각각의 입력 노드로부터 하나 이상의 대응하는 교차점 버퍼들로의 데이터 패킷들을 판독하도록 구성된 입력 중재기를 가지는 각각의 입력 노드에 있는 입력 버퍼와,
    상기 스위치 패브릭의 각각의 교차점에 있는 하나의 교차점 버퍼 - 상기 교차점 버퍼는 제 2 스케줄링 알고리즘에 따라 교차점 버퍼 큐로부터 상기 교차점 버퍼에 대응하는 출력 노드로의 데이터 패킷들을 판독하도록 구성된 출력 중재기를 가지는 큐를 제공하고, 각각의 교차점 버퍼 큐에 대하여, 상기 큐의 깊이는 상기 적어도 한 쌍의 크로스바 스위치를 통한 데이터 전송의 왕복 시간에 따라 변화함 - 와,
    하나 이상의 대응하는 교차점 버퍼들로부터 제공된 데이터 패킷들의 세그먼트들을 수신하도록 구성된 각각의 출력 노드를 포함하고,
    상기 데이터 저장 모듈이 메모리에서 위치들의 순차 어드레싱을 채택한 경우, 상기 메모리에서 위치들의 어드레스들은 상기 적어도 한 쌍의 크로스바 스위치를 통해 상기 데이터를 전달하기 전에 스크램블링되고,
    상기 제 1 크로스바 스위치는 데이터 프로세싱 모듈의 그룹에서 데이터 저장 모듈의 그룹으로 데이터를 지향하고, 상기 제 2 크로스바 스위치는 상기 데이터 저장 모듈의 그룹에서 상기 데이터 프로세싱 모듈의 그룹으로 데이터를 지향하고, 각각의 데이터 프로세싱 모듈은 데이터 프로세싱 모듈이 상기 제 1 크로스바 스위치의 입력 노드로 데이터를 전송하도록 제어하는 제 1 중재기를 포함하며, 각각의 데이터 저장 모듈은 데이터 메모리 제어기가 상기 제 2 크로스바 스위치의 입력 노드로 데이터를 전송하도록 제어하는 제 2 중재기를 포함하는
    데이터 모듈들간 데이터 전송 장치.
  2. 제 1 항에 있어서,
    각각의 출력 노드에 있는 출력 버퍼 - 상기 출력 버퍼는 상기 하나 이상의 대응하는 교차점 버퍼들로부터 제공된 데이터 패킷들의 세그먼트들을 저장하도록 구성됨 - 를 더 포함하는
    데이터 모듈들간 데이터 전송 장치.
  3. 제 1 항에 있어서,
    각각의 입력 노드에 있는 상기 입력 버퍼는 선입 선출(FIFO) 버퍼 또는 가상 출력 큐(VOQ) 중 하나를 더 포함하는
    데이터 모듈들간 데이터 전송 장치.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 제 1 스케줄링 알고리즘과 상기 제 2 스케줄 알고리즘 중 적어도 하나는 라운드-로빈 스케줄링 알고리즘을 사용하는
    데이터 모듈들간 데이터 전송 장치.
  6. 제 5 항에 있어서,
    상기 제 1 스케줄링 알고리즘과 상기 제 2 스케줄링 알고리즘 중 적어도 하나의 상기 라운드-로빈 스케줄링 알고리즘은 하나 이상의 데이터 프로세싱 모듈들을 위한 우선순위 전송을 채택하는
    데이터 모듈들간 데이터 전송 장치.
  7. 삭제
  8. 제 1 항에 있어서,
    상기 N-입력 노드×M-출력 노드 스위치 패브릭은 M개의 내부 결합된 N-to-1 멀티플렉서들을 포함하는
    데이터 모듈들간 데이터 전송 장치.
  9. 제 1 항에 있어서,
    상기 입력 버퍼에 제공된 데이터 패킷은 동일 길이의 셀들로 구획되는
    데이터 모듈들간 데이터 전송 장치.
  10. 제 9 항에 있어서,
    상기 입력 버퍼는 선입선출(FIFO) 버퍼인
    데이터 모듈들간 데이터 전송 장치.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 제 1 항에 있어서,
    상기 장치는 모놀리식 집적 회로 칩(monolithic integrated circuit chip)에서 구현되는
    데이터 모듈들간 데이터 전송 장치.
  15. 제 1 항에 있어서,
    상기 장치는 적어도 5개의 크로스바 스위치들을 포함하되,
    제 1 크로스바 스위치는 데이터 프로세싱 모듈에서 데이터 저장 모듈로 어드레스 데이터를 전송하기 위한 것이며, 제 2 크로스바 스위치는 상기 데이터 프로세싱 모듈에서 상기 데이터 저장 모듈로 사용자 데이터를 전송하기 위한 것이며, 제 3 크로스바 스위치는 상기 데이터 저장 모듈에서 상기 데이터 프로세싱 모듈로 어드레스 데이터를 전송하기 위한 것이며, 제 4 크로스바 스위치는 상기 데이터 저장 모듈에서 상기 데이터 프로세싱 모듈로 사용자 데이터를 전송하기 위한 것이며, 제 5 크로스바 스위치는 상기 데이터 저장 모듈에서 상기 데이터 프로세싱 모듈로 응답들을 전송하기 위한 것인
    데이터 모듈들간 데이터 전송 장치.
  16. 데이터 모듈들 간에 데이터를 전송하는 방법 - 상기 데이터 모듈들의 각각은 데이터 프로세싱 모듈 및 데이터 저장 모듈 중 적어도 하나임 - 으로서,
    상기 데이터 저장 모듈이 메모리에서 위치들의 순차 어드레싱을 채택한 경우, 상기 메모리의 위치들의 어드레스들을 스크램블링하는 단계와,
    적어도 한 쌍의 크로스바 스위치를 통해 상기 데이터를 전달하는 단계 - 상기 크로스바 스위치 각각의 입력 노드들 및 출력 노드들은 상기 데이터 모듈들 중 대응하는 모듈들과 연결되고, 제 1 크로스바 스위치는 N-입력 노드×M-출력 노드 스위치 패브릭을 가지고, 제 2 크로스바 스위치는 M-입력 노드×N-출력 노드 스위치 패브릭을 가지고, M 과 N 은 각각 1 보다 큰 양의 정수들이며, M 과 N 은 동일하지 않음 - 와,
    상기 제 1 크로스바 스위치에 의해, 데이터 프로세싱 모듈의 그룹에서 데이터 저장 모듈의 그룹으로 데이터를 지향하는 단계와, 상기 제 2 크로스바 스위치에 의해, 상기 데이터 저장 모듈의 그룹에서 상기 데이터 프로세싱 모듈의 그룹으로 데이터를 지향하는 단계를 포함하되, 각각의 데이터 프로세싱 모듈은 데이터 프로세싱 모듈이 상기 제 1 크로스바 스위치의 입력 노드로 데이터를 전송하도록 제어하는 제 1 중재기를 포함하며, 각각의 데이터 저장 모듈은 데이터 메모리 제어기가 상기 제 2 크로스바 스위치의 입력 노드로 데이터를 전송하도록 제어하는 제 2 중재기를 포함하고,
    각각의 크로스바 스위치는,
    입력 중재기를 가지는 각각의 입력 노드에 있는 입력 버퍼로부터, 제 1 스케줄링 알고리즘에 따라 각각의 입력 노드로부터 하나 이상의 대응하는 교차점 버퍼들로의 데이터 패킷들을 판독하고,
    상기 스위치 패브릭의 각각의 교차점에 있는 교차점 버퍼 - 상기 교차점 버퍼는 출력 중재기를 갖는 큐를 가짐 - 의 출력 중재기로부터, 제 2 스케줄링 알고리즘에 따라 교차점 버퍼 큐로부터 상기 교차점 버퍼에 대응하는 출력 노드로의 데이터 패킷들을 판독하고,
    각각의 교차점 버퍼 큐에 대하여, 상기 적어도 한 쌍의 크로스바 스위치를 통한 데이터 전송의 왕복 시간에 따라 상기 큐의 깊이를 변경하고,
    출력 노드에서 하나 이상의 대응하는 교차점 버퍼들로부터 데이터 패킷들의 세그먼트들을 수신하는 단계를 수행하는
    데이터 모듈들간 데이터 전송 방법.
  17. 삭제
  18. 삭제
  19. 제 16 항에 있어서,
    상기 입력 버퍼에 제공된 데이터의 패킷을 동일 길이의 셀들로 구획하는 단계를 더 포함하는
    데이터 모듈들간 데이터 전송 방법.
  20. 프로그램 코드가 인코딩된 컴퓨터 판독가능 저장 매체 - 상기 프로그램 코드는 컴퓨터에 의해 실행되고, 상기 컴퓨터는 데이터 모듈들간에 데이터를 전송하는 방법을 수행하고, 상기 데이터 모듈들의 각각은 데이터 프로세싱 모듈 및 데이터 저장 모듈 중 적어도 하나임 - 로서,
    상기 데이터 모듈들간에 데이터를 전송하는 방법은,
    상기 데이터 저장 모듈이 메모리에서 위치들의 순차 어드레싱을 채택한 경우, 상기 메모리의 위치들의 어드레스들을 스크램블링하는 단계와,
    적어도 한 쌍의 크로스바 스위치를 통해 상기 데이터를 전달하는 단계 - 상기 크로스바 스위치 각각의 입력 노드들 및 출력 노드들은 상기 데이터 모듈들 중 대응하는 모듈들과 연결되고, 제 1 크로스바 스위치는 N-입력 노드×M-출력 노드 스위치 패브릭을 가지고, 제 2 크로스바 스위치는 M-입력 노드×N-출력 노드 스위치 패브릭을 가지고, M 과 N 은 각각 1 보다 큰 양의 정수들이며, M 과 N 은 동일하지 않음 - 와,
    상기 제 1 크로스바 스위치에 의해, 데이터 프로세싱 모듈의 그룹에서 데이터 저장 모듈의 그룹으로 데이터를 지향하는 단계와, 상기 제 2 크로스바 스위치에 의해, 상기 데이터 저장 모듈의 그룹에서 상기 데이터 프로세싱 모듈의 그룹으로 데이터를 지향하는 단계를 포함하되, 각각의 데이터 프로세싱 모듈은 데이터 프로세싱 모듈이 상기 제 1 크로스바 스위치의 입력 노드로 데이터를 전송하도록 제어하는 제 1 중재기를 포함하며, 각각의 데이터 저장 모듈은 데이터 메모리 제어기가 상기 제 2 크로스바 스위치의 입력 노드로 데이터를 전송하도록 제어하는 제 2 중재기를 포함하고,
    각각의 크로스바 스위치는,
    입력 중재기를 가지는 각각의 입력 노드에 있는 입력 버퍼로부터, 제 1 스케줄링 알고리즘에 따라 각각의 입력 노드로부터 하나 이상의 대응하는 교차점 버퍼들로의 데이터 패킷들을 판독하고,
    상기 스위치 패브릭의 각각의 교차점에 있는 교차점 버퍼 - 상기 교차점 버퍼는 출력 중재기를 갖는 큐를 가짐 - 의 출력 중재기로부터, 제 2 스케줄링 알고리즘에 따라 교차점 버퍼 큐로부터 상기 교차점 버퍼에 대응하는 출력 노드로의 데이터 패킷들을 판독하고,
    각각의 교차점 버퍼 큐에 대하여, 상기 적어도 한 쌍의 크로스바 스위치를 통한 데이터 전송의 왕복 시간에 따라 상기 큐의 깊이를 변경하고,
    출력 노드에서 하나 이상의 대응하는 교차점 버퍼들로부터 데이터 패킷들의 세그먼트들을 수신하는 단계를 수행하는
    컴퓨터 판독가능 저장 매체.
KR1020090112679A 2009-04-27 2009-11-20 버퍼링된 크로스바 스위치 시스템 KR101639438B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/430,438 US8352669B2 (en) 2009-04-27 2009-04-27 Buffered crossbar switch system
US12/430,438 2009-04-27

Publications (2)

Publication Number Publication Date
KR20100118054A KR20100118054A (ko) 2010-11-04
KR101639438B1 true KR101639438B1 (ko) 2016-07-13

Family

ID=42536429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090112679A KR101639438B1 (ko) 2009-04-27 2009-11-20 버퍼링된 크로스바 스위치 시스템

Country Status (6)

Country Link
US (1) US8352669B2 (ko)
EP (1) EP2247040B1 (ko)
JP (1) JP5537956B2 (ko)
KR (1) KR101639438B1 (ko)
CN (1) CN101873253B (ko)
TW (1) TWI390913B (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7965705B2 (en) * 2009-03-19 2011-06-21 Oracle America, Inc. Fast and fair arbitration on a data link
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
CN101631081B (zh) * 2009-08-12 2011-06-08 华为技术有限公司 一种多级交换网
US8687629B1 (en) * 2009-11-18 2014-04-01 Juniper Networks, Inc. Fabric virtualization for packet and circuit switching
FR2955992B1 (fr) * 2010-01-29 2012-04-20 Inst Nat Rech Inf Automat Dispositif de commutation ou de routage modulable
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US20130141442A1 (en) * 2011-12-06 2013-06-06 John W. Brothers Method and apparatus for multi-chip processing
US8868672B2 (en) 2012-05-14 2014-10-21 Advanced Micro Devices, Inc. Server node interconnect devices and methods
US9137173B2 (en) 2012-06-19 2015-09-15 Advanced Micro Devices, Inc. Devices and methods for interconnecting server nodes
US8930595B2 (en) * 2012-06-21 2015-01-06 Advanced Micro Devices, Inc. Memory switch for interconnecting server nodes
US9253287B2 (en) 2012-08-20 2016-02-02 Advanced Micro Devices, Inc. Speculation based approach for reliable message communications
US8984206B2 (en) * 2012-10-31 2015-03-17 International Business Machines Corporation Weightage-based scheduling for hierarchical switching fabrics
US8875256B2 (en) 2012-11-13 2014-10-28 Advanced Micro Devices, Inc. Data flow processing in a network environment
WO2014077821A1 (en) * 2012-11-15 2014-05-22 Empire Technology Development Llc A multi-channel storage system supporting a multi-command protocol
US8902899B2 (en) 2013-02-08 2014-12-02 International Business Machines Corporation Input buffered switching device including bypass logic
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
CN104125171A (zh) * 2013-04-26 2014-10-29 联发科技股份有限公司 交换机结构以及入口流量处理方法
US9336169B2 (en) * 2013-10-02 2016-05-10 International Business Machines Corporation Facilitating resource use in multicycle arbitration for single cycle data transfer
GB2526018B (en) * 2013-10-31 2018-11-14 Silicon Tailor Ltd Multistage switch
CN104734873B (zh) * 2013-12-20 2018-04-13 深圳市国微电子有限公司 一种交换系统及其交换设备中缓冲器的管理方法、系统
US9678906B2 (en) * 2014-03-26 2017-06-13 International Business Machines Corporation Oldest link first arbitration between links grouped as single arbitration elements
US9467396B2 (en) 2014-04-11 2016-10-11 International Business Machines Corporation Simultaneous transfers from a single input link to multiple output links with a timesliced crossbar
US9846661B2 (en) * 2014-07-17 2017-12-19 Empire Technology Development Llc Utilization of solid state memory devices
US10560383B2 (en) * 2016-11-10 2020-02-11 Futurewei Technologies, Inc. Network latency scheduling
KR102269068B1 (ko) * 2017-03-10 2021-06-24 한국전자통신연구원 스위칭을 위한 스케줄링 방법 및 스케줄러
US10769080B2 (en) * 2017-03-30 2020-09-08 Futurewei Technologies, Inc. Distributed and shared memory controller
US10938751B2 (en) 2018-04-18 2021-03-02 Hewlett Packard Enterprise Development Lp Hierarchical switching devices
TWI756444B (zh) * 2018-06-29 2022-03-01 智邦科技股份有限公司 避免在箱型交換機內形成迴圈之網路介面卡、交換卡、及線路卡
US10757038B2 (en) * 2018-07-06 2020-08-25 Hewlett Packard Enterprise Development Lp Reservation-based switching devices
US11520713B2 (en) * 2018-08-03 2022-12-06 International Business Machines Corporation Distributed bus arbiter for one-cycle channel selection using inter-channel ordering constraints in a disaggregated memory system
US11855913B2 (en) 2018-10-31 2023-12-26 Hewlett Packard Enterprise Development Lp Hierarchical switching device with deadlockable storage and storage partitions
US11706163B2 (en) * 2019-12-20 2023-07-18 The Board Of Trustees Of The University Of Illinois Accelerating distributed reinforcement learning with in-switch computing
US11563687B2 (en) * 2021-02-04 2023-01-24 Ciena Corporation Controlling distributed buffers in a network to manage data packets
CN114968861B (zh) * 2022-05-25 2024-03-08 中国科学院计算技术研究所 一种两写两读的数据传输结构以及片上多通道交互网络
CN116720227A (zh) * 2023-01-16 2023-09-08 合肥沛睿微电子股份有限公司 用于存储器的数据加解密系统及数据加解密方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004343181A (ja) * 2003-05-13 2004-12-02 Nippon Telegr & Teleph Corp <Ntt> 入力・クロスポイントバッファ型スイッチおよびそのスケジューリング方法
JP2008042504A (ja) * 2006-08-04 2008-02-21 Nec Corp スイッチ装置、スイッチ方法、及びプログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2447652A1 (fr) 1979-01-24 1980-08-22 Materiel Telephonique Operateur pour reseau de commutation de donnees numeriques par paquets
US4982187A (en) 1989-11-28 1991-01-01 International Business Machines Corporation Low-end high-performance switch subsystem architecture
US5623698A (en) * 1993-04-30 1997-04-22 Cray Research, Inc. Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits
DE69519816T2 (de) * 1994-05-03 2001-09-20 Hewlett Packard Co Anordnung mit Duplikat des Cache-Etikettenspeichers
US5892766A (en) * 1996-02-22 1999-04-06 Fujitsu, Ltd. Method and apparatus for coordinating access to an output of a routing device in a packet switching network
US6195335B1 (en) * 1997-06-27 2001-02-27 International Business Machines Corporation Data switch
US5943283A (en) * 1997-12-05 1999-08-24 Invox Technology Address scrambling in a semiconductor memory
US6636932B1 (en) * 1998-05-27 2003-10-21 Micron Technology, Inc. Crossbar switch and control for data networks switching
JP3389913B2 (ja) 1999-11-10 2003-03-24 日本電気株式会社 グループ化パイプライン・スケジューリング方式及びその方法
JP3736338B2 (ja) * 2000-11-13 2006-01-18 株式会社日立製作所 パケットスイッチ
US6836815B1 (en) * 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
US7154885B2 (en) * 2001-12-31 2006-12-26 Stmicroelectronics Ltd. Apparatus for switching data in high-speed networks and method of operation
US7349388B1 (en) * 2002-01-03 2008-03-25 International Business Machines Corporation Buffered crossbar switch and its method of operation
US7089346B2 (en) * 2002-06-03 2006-08-08 International Business Machines Corporation Method of operating a crossbar switch
US7385969B2 (en) 2002-10-23 2008-06-10 Northrop Grumman Space & Mission Systems Corp. Cross-point switch fabric and switch fabric slice
US6954821B2 (en) * 2003-07-31 2005-10-11 Freescale Semiconductor, Inc. Crossbar switch that supports a multi-port slave device and method of operation
US7492782B2 (en) * 2003-12-27 2009-02-17 Electronics And Telecommunications Research Institute Scalable crossbar matrix switching apparatus and distributed scheduling method thereof
US7499464B2 (en) * 2005-04-06 2009-03-03 Robert Ayrapetian Buffered crossbar switch with a linear buffer to port relationship that supports cells and packets of variable size
US7596142B1 (en) * 2006-05-12 2009-09-29 Integrated Device Technology, Inc Packet processing in a packet switch with improved output data distribution
US8995456B2 (en) * 2009-04-08 2015-03-31 Empire Technology Development Llc Space-space-memory (SSM) Clos-network packet switch

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004343181A (ja) * 2003-05-13 2004-12-02 Nippon Telegr & Teleph Corp <Ntt> 入力・クロスポイントバッファ型スイッチおよびそのスケジューリング方法
JP2008042504A (ja) * 2006-08-04 2008-02-21 Nec Corp スイッチ装置、スイッチ方法、及びプログラム

Also Published As

Publication number Publication date
TWI390913B (zh) 2013-03-21
JP2010259045A (ja) 2010-11-11
EP2247040A2 (en) 2010-11-03
CN101873253A (zh) 2010-10-27
TW201108668A (en) 2011-03-01
JP5537956B2 (ja) 2014-07-02
CN101873253B (zh) 2014-06-04
KR20100118054A (ko) 2010-11-04
US20100272117A1 (en) 2010-10-28
US8352669B2 (en) 2013-01-08
EP2247040A3 (en) 2011-12-07
EP2247040B1 (en) 2017-08-16

Similar Documents

Publication Publication Date Title
KR101639438B1 (ko) 버퍼링된 크로스바 스위치 시스템
US7023841B2 (en) Three-stage switch fabric with buffered crossbar devices
US7161906B2 (en) Three-stage switch fabric with input device features
US7145873B2 (en) Switching arrangement and method with separated output buffers
US7403536B2 (en) Method and system for resequencing data packets switched through a parallel packet switch
US9042380B2 (en) Crossbar switch and recursive scheduling
Abel et al. A four-terabit packet switch supporting long round-trip times
EP0415629B1 (en) Interconnect fabric providing connectivity between an input and arbitrary output(s) of a group of outputs
EP0415628B1 (en) A growable packet switch architecture
US5999527A (en) Modular switch
CN106886498B (zh) 数据处理装置和终端
US5926475A (en) Method and apparatus for ensuring ATM cell order in multiple cell transmission lane switching system
CN112073336A (zh) 基于AXI4 Stream接口协议的高性能数据交换系统及方法
Law et al. A large scalable ATM multicast switch
US20060104281A1 (en) Packet routing
US20040078459A1 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling
Abel et al. A four-terabit single-stage packet switch with large round-trip time support
Ye et al. Assessment of optical switching in data center networks
JPS6367047A (ja) パケツトスイツチ
Kornaros BCB: a buffered crossBar switch fabric utilizing shared memory
Katevenis et al. ‘VC-level Flow Control and Shared Buffering in the Telegraphos Switch
Engbersen Prizma switch technology
Luo et al. A low power and delay multi-protocol switch with IO and network virtualization
Misovic et al. Implementation of the Crosspoint-Queued switch's output controller on the NetFPGA platform
EP1198098A2 (en) Switching arrangement and method with separated output buffers

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