KR100508635B1 - 확장형 크로스바 매트릭스 스위치 및 중재 방법 - Google Patents

확장형 크로스바 매트릭스 스위치 및 중재 방법 Download PDF

Info

Publication number
KR100508635B1
KR100508635B1 KR10-2003-0013079A KR20030013079A KR100508635B1 KR 100508635 B1 KR100508635 B1 KR 100508635B1 KR 20030013079 A KR20030013079 A KR 20030013079A KR 100508635 B1 KR100508635 B1 KR 100508635B1
Authority
KR
South Korea
Prior art keywords
arbiter
output
xsu
signal
switch
Prior art date
Application number
KR10-2003-0013079A
Other languages
English (en)
Other versions
KR20040057036A (ko
Inventor
전종암
변성혁
안병준
남승엽
성단근
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US10/663,476 priority Critical patent/US7522527B2/en
Publication of KR20040057036A publication Critical patent/KR20040057036A/ko
Application granted granted Critical
Publication of KR100508635B1 publication Critical patent/KR100508635B1/ko

Links

Classifications

    • 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/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

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)

Abstract

본 발명은 테라급 고속 대용량 스위치에 적용하기 위한 이차원-확장형 크로스바 매트릭스 스위치에 대한 구성방식 및 장치에 관한 것이다. 본 발명은 N개의 입력 포트와 N개의 출력 포트와 입력 포트와 출력 포트 사이의 셀을 전달하기위한 N x N 매트릭스형 스위치를 포함한다. 각 입력 포트는 N개의 VOQ(Virtual Output Queue)를 가지며, N 개의 VOQ는 순차적으로 n개의 VOQ단위로 묶어서 물리적으로 분리된 L개의 VOQ 그룹을 구성한다. L개의 VOQ 그룹은 각각 독립된 인터페이스 포트를 통하여 물리적으로 분리된 L개의 XSU에 각각 연결된다. 따라서 각 입력 포트는 1 셀 타임 슬롯 동안 최대 L개의 셀을 매트릭스 스위치에 전달 가능하다.

Description

확장형 크로스바 매트릭스 스위치 및 중재 방법{Scalable crossbar matrix switch and arbitration method thereof}
본 발명은 고속의 대용량 크로스바 스위치 장치 및 상기 스위치를 통하여 셀을 전달하기 위한 중재 방식에 관한 것이다. 더욱 구체적으로는, n 이 N의 약수일 때, L = N / n 일 때 L2 개의 n x n 크로스바 스위치를 상호 연결하여 N x N 스위치를 구성하는 방법과 본 스위치의 입력 포트(input port)에서 출력 포트(output port)로 셀을 전달하기 위한 장치 및 그 중재 방법에 관한 것이다.
N x N 출력-대기된 스위치(output-queued switch)의 경우 특정 출력 포트로 하나의 시간-슬롯(time-slot)에 최대 N개의 셀을 전달 할 수 있어야 하므로 스위치와 메모리의 동작 속도는 입력 라인 속도보다 N배의 속도로 동작해야 한다. 출력-대기된 스위치가 100%의 처리율(throughput)과 QoS 지원 측면에서 우수한 특성을 가지지만 고속 스위치에 적용되지 않는 주된 이유는 이와 같은 가속(speed-up) 문제 때문이다.
입력-대기된 스위치(Input-Queued switch)의 경우 스위치와 메모리의 동작 속도가 입력 라인 속도와 동일하게 동작할 수 있다는 장점 때문에 대부분의 고속 스위치에 많이 적용되고 있다. 그러나, 고속의 입력-대기된 스위치의 구조는 입력 포트의 경우 라인 헤드 블럭킹(Head-Of-Line blocking)문제를 해결하기 위한 VOQ 형태를 가지며, 스위치의 경우 넌-블록킹(non-blocking) 고속 스위치 소자인 크로스바 형태를 대부분 가지게 된다. 입력-대기된 스위치(Input-Queued switch)에서 입력 포트와 출력 포트에서의 경합(contention) 문제를 해결하여 100%까지 처리율을 제공할 수 있는 다양한 중재(arbitration) 방식이 최근 많이 제안되고 있다.
그 중에는 병렬 반복 정합법(parallel iterative matching ;PIM)) (미국 특허 제5,267,235호 참조), 2 차원 라운드 로빈 정합법(2-Dimensional Round Robin Matching ;2DRR) (미국특허 제5,299,190호 참조), iSLIP 방식(미국 특허 제5,500,858호 참조), 이중 라운드 로빈 정합법(H. J. Chao 및 J-S Park 저의, "Centralized Contention Resolution Schemes for a Large-Capacity Optical ATM switch, Proc. IEEE ATM Workshop97, Fairfax, VA, pp.10-11, May 1998 참조)등과 같은 알고리즘이 있다. 이와 같은 알고리즘들은 100%의 처리율을 제공하는 것이 가능하지만, 입출력 포트의 수가 커질수록 중재 시간의 한계를 가지게 되므로, 대용량의 고속 스위치에는 적용이 어려운 단점을 가지고 있다.
예를 들어, 상용화 제품에 가장 많이 적용이 되었던 iSLIP의 경우에도 32포트 이하의 스위치에만 주로 적용이 되었다. 2.5 Gbps 포트속도를 가지는 테라급 스위치의 경우 최소 512 x 512 크기의 크로스바 스위치가 필요하므로 이를 단일의 크로스바 스위치와 기존의 중재(arbitration)방식을 사용하여 구성하는 것은 근본적인 문제점을 가지고 있다.
대용량 스위치 구조로서 제안되고 있는 확장 가능형 스위치 구조로는 분산 네트워크(Distribution Network)기반의 채널 그룹 스위칭 방식(미국 특허 제5,724,351호 참조)과 최근에 많이 적용되고 있는 클로스(Clos) 네트워크 형태의 크로스바 스위치 구조(F. M. Chiussi, J. G. Kneuer, 및 V. P. Kumar 저의, " Low-cost Scalable Switching Solutions For Broadband Networking: The Atlanta Architecture And Chipset", IEEE Commun. Mag., pp.44-53, Dec. 1997. 참조)가 있다. 채널 그룹 스위칭 방식의 경우 소용량의 그룹 스위치 소자를 이용하여 대용량 스위치를 구성할 수 있는 장점은 있지만 입출력 포트가 많아지면 분산 네트워크의 설계가 매우 복잡하여 대용량 스위치의 구성이 어려운 단점이 있다.
클로스 네트워크 형태의 크로스바 스위치 구조의 경우 입출력 포트간 다수의 경로가 존재하므로 경로별 트래픽의 부하를 분산시키기 위한 복잡한 스케쥴링 방식이 필요할 뿐만 아니라, 고속 입출력 포트의 수가 많아지면 이에 비례하여 고속의 크로스바 스위치 소자가 필요하므로 대용량 스위치의 구성에 어려운 단점이 있다.
따라서, 본 발명은 전술한 종래 기술의 문제점을 감안하여, 입출력 포트간 단일 경로가 존재하면서 고속의 대용량 스위치에 적용 가능한 확장가능 스위치 구조와 이러한 스위치구조에 적합한 분산형 중재 방법을 제공하는 것을 목적으로 한다.
본 발명이 제안하는 단일 경로 확장가능형 스위치 구조는 소규모 크로스바 스위치 유닛을 상호 연결하여 대규모 스위치를 구성하는 방식을 제안하며, 분산형 중재 방식의 경우 충분한 중재 시간 마진(arbitration time margin)을 가지면서 100% 까지 처리율을 지원할 수 있는 방식을 제공하게 된다.
전술한 기술적 과제를 해결하기 위하여, 본 발명의 하나의 특징에 따른 매트릭스 스위치 장치는, 복수의 가상 출력 대기열(VOQ)을 복수의 VOQ 그룹으로 나누어 입력하는 입력 포트와; 상기 입력된 VOQ 그룹을 독립적으로 중재하여 셀을 출력하는 복수의 크로스바 스위치 유닛들과; 상기 크로스바 스위치 유닛들로부터 출력된 셀을 독립적으로 중재하여 출력 링크로 셀을 전송하는 복수의 출력 포트들을 포함한다.
또한, 상기 복수의 크로스바 스위치 유닛의 일부는 복수의 스위치 모듈을 구성하고, 상기 스위치 모듈은, 상기 각각의 크로스바 스위치 유닛의 출력 포트에 일정 크기의 셀을 저장할 수 있는 버퍼를 더 포함한다.
또한, 본 발명의 또 다른 특징에 따른 복수의 매트릭스 스위치 장치의 중재 방법은,
(a) 상기 크로스바 스위치 유닛의 승인 아비터가 입력 포트로부터 전송된 요청 신호를 검색하여 처음으로 요청한 입력 포트를 선택하는 단계;
(b) 상기 승인 아비터에 대응하는 출력 포트의 버퍼가 추가 셀을 받아들일 수 있는 지 검색하는 단계와;
(c) 상기 승인 아비터에 대응하는 출력 포트의 버퍼가 추가 셀을 받아들일 수 있는 경우에만 입력 포트로 승인 신호를 전송하는 단계 및
(d) 상기 크로스바 스위치 유닛의 접수 아비터가 상기 승인 신호중 하나를 처음으로 승인한 승인 신호를 선택하는 단계;
(e) 상기 접수 아비터가 상기 선택된 접수 신호에 대응하는 출력 포트로 접수 신호를 전송하는 단계를 포함한다.
또한, 본 발명의 또 다른 특징을 스위치 중재 방법은
(f) 상기 출력 포트의 출력 아비터가 상기 크로스바 스위치 유닛으로부터 전송된 요청신호를 검색하여 처음으로 요청한 크로스바 스위치 유닛을 선택하는 단계 및
(g) 상기 출력 아비터가 상기 선택된 크로스바 스위치 유닛으로 접수 신호를 전송하는 단계를 더 포함할 수 있다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.
도 1은 본 발명의 실시예에 따른 N x N 크로스바 매트릭스 스위치의 구조를 도시한 블록도이다.
본 발명은 N개의 입력단 입력 포트(100)과 N개의 출력단 입력단 입력 포트(100)과 상기 입력포트와 출력 포트 사이에 셀을 전달하기 위한 N x N 매트릭스 스위치(200)를 포함한다. 본 발명의 상세한 설명에서는, 입력포트, 출력포트, 스위치등의 장치가 구성을 달리하여 반복적으로 사용되므로, 도면 부호 100, 200, 300은 각각 "입력단 입력 포트(100)" "매트릭스 스위치(200)" 및 "출력단 출력 포트(300)"으로 각각 칭하도록 한다.
각 입력단 입력 포트(100)은 라인 헤드(Head-Of-Line ;HOL) 블록킹 문제의 해결을 위하여 N개의 가상 출력 대기열(이후 VOQ라 칭함)을 가지며, N 개의 VOQ는 순차적으로 n개의 VOQ단위로 묶어서 물리적으로 분리된 L개의 VOQ 그룹(110)을 구성한다. 여기서 n은 N의 약수이며 L=N / n 이다. L개의 VOQ 그룹(110)은 각각 독립된 스위치 인터페이스 포트(201)를 통하여 물리적으로 분리된 L개의 크로스바 스위치 유닛(이하, XSU라 칭함)(210)에 각각 연결된다. 따라서 각각의 입력 포트(100)는 1 셀 시간 슬롯동안 최대 L개의 셀을 매트릭스형 스위치(200)에 전달 가능하다.
N x N 크기의 매트릭스형 스위치(200)는 L2 개의 XSU (210)으로 구성되며, 각각의 XSU는 n 개의 독립된 XSU 입력포트와 n 개의 독립된 XSU 출력 포트에 접속된다. 각각의 XSU(210)는 서로 독립된 중재 기능을 통하여 n개의 XSU 입력 포트로부터 들어오는 셀을 n개의 XSU 출력 포트로 적절하게 전달하는 기능을 수행한다.
각각의 XSU 출력 포트는 L개의 스위치 인터페이스 포트(202)를 통하여 물리적으로 분리된 L개의 XSU(210)에 연결되어있으며, 출력단 출력 포트(300)는 서로 독립된 중재를 수행하면서 하나의 셀 시간 슬롯 동안 L개의 XSU(210)로부터 1개의 셀을 선택하여 출력 링크로 전달하는 기능을 수행한다.
도 2는 본 발명의 실시예에 따른 N x N 크로스바 매트릭스 스위치의 내부 구성을 도시한 도면이다.
XSU(210)는 n개의 XSU 입력 포트와 n개의 XSU 출력 포트를 가지는 n x n 크로스바 스위치(211)와, 각 XSU 출력 포트에 일정크기의 셀을 저장할 수 있는 소형 스케쥴링 분리 버퍼(small size scheduling decomposition buffer; 이하 SDB로 표기)(212)를 포함한다. 즉, XSU(210)는 n개의 입력포트, 출력포트, SDB와 n x n 크로스바 스위치(211)을 포함한다.
XSU(210)의 각각의 XSU 출력 포트가 SDB(212)가 셀을 받아들일 수가 있을 경우 XSU 출력 포트별로 독립된 중재 기능을 통하여 해당 SDB(212)에 셀을 저장하는 기능을 제공한다. XSU(210)의 입력 포트와 출력 포트에 적용되는 중재 방식은 다양한 방식을 적용할 수 있지만 고속으로 구현하기에 가장 적합한 방식은 라운드-로빈 기반 방식이다.
라운드-로빈은 그룹 내에 있는 모든 요소들을 합리적인 순서에 입각하여 뽑는 방법이다. 상세히 설명하면, 자원을 사용할 수 있는 기회를 프로세스들에게 공정하게 부여하기 위하여, 각 프로세스에 일정시간을 할당하고, 할당된 시간이 지나면 그 프로세스는 잠시 보류한 뒤 다른 프로세스에게 기회를 주고, 또 그 다음 프로세스에게 하는 식으로, 돌아가며 기회를 부여하는 운영방식이다.
하나의 크로스바 스위치 모듈(crossbar switch module; 이하 XSM으로 표기) (213)는 L개의 XSU(210)으로 구성된다. 하나의 XSM (213)은 n개의 입력 포트로부터 셀을 받아서 n개의 출력 포트로 전달하는 기능을 제공한다. m 번째 XSM에 연결되는 입력 포트는 { m x n } 번째 입력 포트로부터 { (m+1) x n - 1 } 번째 입력 포트까지이다. 단일 XSM과 n개의 입력 포트들은 물리적으로 분리된 서브 시스템으로 구성될 수 있고, 이러한 L개의 서브 시스템을 이용하여 전체 N x N 시스템을 구성할 수 있는 모듈러 특성을 가지고 있으므로 일반적으로 다중 격자(Multi-Rack)로 구성할 수밖에 없는 대용량 스위치를 모듈로서 구성할 수 있는 장점을 가지고 있다.
출력단 출력 포트(300)는 수신 셀의 저장을 위한 메모리수단을 사용하지 않고 순수 로직으로만 구성되며, L개의 SDB(212)로부터 하나의 시간 슬롯동안 1개의 셀을 출력 아비터 (Arbiter)(310)가 선택하여 출력하는 기능을 수행한다. j번째 출력포트에 해당되는 SDB는 과 같이 표현된다.
출력 아비터(310)의 경우 다양한 방식이 적용될 수 있지만, 고속으로 구현하기에 가장 적합한 방식은 라운드-로빈 방식이다.
본 발명의 실시예에 따른 N x N 크로스바 매트릭스 스위치의 입출력 사이의 중재는 2 단계 분산 중재(two stage distributed arbitration) 구조로 이루어질 수 있다.
제 1 중재 단계는 분산된 각 XSU(210)에 의해 수행이 되며, 제 2 중재 단계는 분산된 각 출력단 출력 포트별로 수행이 된다. 각 중재 단계는 내부적인 가속 없이 상호 독립적이며 동시 다발적으로 중재 기능을 수행한다.
제 1 중재 단계는 iSLIP을 확장한 방식으로서, XSU(210)의 각 출력 포트는 SDB(212)의 상태 정보인 크레딧 정보(예를 들어, 1 : SDB가 셀을 받아들일 수 없을 경우, 0 : SDB가 셀을 받아들일 수 있을 경우)를 사용하여 중재 기능을 수행한다. XSU(210)의 중재의 동작은 크게 요청(Request), 승인(Grant), 접수(accept)의 3단계로 이뤄진다. 이하 각각의 동작을 설명한다.
(1) 요청(Request): 각각의 시간 슬롯에서, 비어 있지 않은 VOQ 들은 모든 출력 포트에 "요청(request)"를 전송한다.
(2) 승인(Grant): 각각의 출력 포트는, 만약 크레딧 값이 0인 경우, 최우선 요소를 시작점으로 한 라운드 로빈 방식으로 하나의 요청(request)을 선택한다. 상기 선택된 VOQ에 "승인(Grant)"를 전송한다.
(3) 접수(Accept): 입력 승인을 얻으면 최우선 요소를 시작점으로 하여 라운드 로빈 방식으로 입력 접수를 하게 된다.
제 2 중재 단계는 분산된 각 출력단 출력 포트별로 수행이 되며 기본적인 알고리즘은 라운드-로빈 방식으로서 다음과 같은 동작으로 이루어져 있다.
(1) 요청(Request): 각각의 시간 슬롯에서, 비어 있지 않은 VOQ 들은 모든 출력 아비터에 "요청(request)"를 전송한다.
(2) 접수(Accept): 각각의 출력 아비터는 최우선 요소를 시작점으로 하여 라운드 로빈 방식으로 하나의 요청을 접수한다.
상기 제 2 중재 단계는 대해서는 도 8 및 도 9에서 구체적인 실시예가 도시되어 있으며 이에 대해서는 후술한다.
도 3a, 도 3b 및 도 3c에서 본 발명의 실시예에 따른 중재 알고리즘을 도시한 도면이다.
도 3a는 본 발명의 실시예에 따른 XSU(210)에 적용 가능한 아비터(arbiter)의 "요청"신호의 생성과 관련된 예시를 도시하고 있다.
본 실시예는 4개의 입력 포트와 4개의 출력 포트를 가지는 4 x 4 XSU를 예로 들고 있다. 각 XSU 입력 포트별 접수 아비터(Accept Arbiter)(230-1) ~ (230-4)이 있으며 각 아비터에는 포트별 최우선 값을 저장하기 위한 접수 레지스터(a0 ~ a3)가 있으며, 각 레지스터의 현재 값은 0으로 가정한다.
또한, 각 XSU 출력 포트별 승인 아비터(grant arbiter)(240-1) ~ (240-4)는 포트별 최우선 값을 저장하기 위한 승인 레지스터(g0 ~ g3)를 포함하며 각 레지스터의 현재 값은 0으로 가정한다.
각 XSU 입력 포트별 VOQ의 상태에 따라서 요청(request)신호를 생성하여 해당하는 XSU 출력 포트에 전달한다. 예를 들어, 입력 포트(0)의 경우 출력 포트(0 및 1)에 해당하는 VOQ에 최소한 1셀 이상이 존재하여 해당 출력 포트로 요청 신호를 보낸다. XSU(210)의 각 XSU 출력 포트는 SDB(212)의 상태 정보인 크레딧 정보를 가지게 되는데, 본 실시예에서 출력 포트 0의 경우 크레딧 값이 1이므로 SDB가 수용할 수 없는(full) 상태를 의미하며, 이를 제외한 나머지 출력 포트의 크레딧 값은 0이므로, 최소한 1개 이상의 셀을 받아들일 수가 있는 상태임을 의미한다.
도 3b는 본 발명의 실시예에 따른 XSU(210)에 적용 가능한 아비터의 승인(Grant) 신호의 생성과 관련된 예를 도시한 것이다.
출력 포트(0)의 경우 크레딧 값이 1이므로 더 이상의 셀을 받아들일 수가 없으므로 승인 신호를 XSU 입력 포트에 전달하지 않는다. 그 이외의 출력 포트의 경우 크레딧 값이 0이므로 승인 아비터(240-2 ~ 240-4)에 저장되어있는 최우선 값으로부터 라운드 로빈 형태로 요청 신호를 검색하여 그 중 하나를 선택한다.
예를 들어, 출력 포트(3)의 승인 아비터(240-4)의 경우 현재 최우선 값이 0이고 XSU 입력 포트(2)와 XSU 입력 포트(3)로부터 요청 신호를 받았으므로 XSU 입력 포트(2)에게 승인 신호를 보낸다. 승인 아비터 (240-1 ~ 240-4)의 최우선 값의 갱신은 3단계 접수(accept) 단계에서 접수를 받은 이후에 이루어지므로 본 2단계에서 승인 아비터(240-1 ~ 240-4)별 승인 레지스터(g0 ~ g3)의 값은 1단계와 동일한 상태를 유지한다.
도 3c는 본 발명의 실시예에 따른 XSU(210)에 적용 가능한 접수(Accept) 신호의 생성과 관련된 예를 도시한 것이다.
XSU 출력 포트 아비터(240-1 ~ 240-4) 로부터 승인 신호를 받은 입력 포트는 접수 아비터 (230-1 ~ 230-4)에 저장되어있는 최우선 값으로부터 라운드-로빈 형태로 승인 신호를 검색하여 그 중 하나를 선택한다.
입력 포트(0)의 경우 출력 포트(1)에서만 승인 신호를 받았으므로 해당 포트로 접수 신호를 전달하며, 그 후 입력 포트(0)의 접수 아비터(230-1)의 경우 최우선 값을 2로 설정하며, XSU 출력 포트(1)의 승인 아비터 (240-2)의 경우 최우선 값을 1로 설정한다.
즉, 다음 시간 슬롯에서 XSU 입력 포트(0)의 경우 XSU 출력 포트(2)에 우선권을 부여하며, XSU 출력 포트(1)의 경우 입력 포트(1)에 우선권을 부여한다.
입력 포트(2)의 경우 현재 최우선 값이 0이고 XSU 출력 포트(2)와 XSU 출력 포트(3)으로부터 승인 신호를 받았으므로, XSU 출력 포트(2)에게 접수 신호를 보내며, 그 후 XSU 입력 포트(2)의 접수 아비터(230-3)는 최우선 값을 3으로 설정하며, XSU 출력 포트(2) 의 승인 아비터(240-3)의 경우 최우선 값을 3으로 설정한다.
도 3b에서 도시한 바와 같이, XSU 출력 포트(3)의 승인 아비터(240-4)의 경우 승인 신호를 XSU 입력 포트(2)로 전달하였지만, 접수 단계에서 XSU 입력 포트(2)로부터 접수 신호를 받지 못하였으므로 승인 아비터(240-4)의 최우선 값은 0으로 그대로 유지된다.
도 4는 본 발명의 실시예에 따른 제 1 중재 단계의 흐름을 도시한 흐름도이다.
전술한 바와 같이, 비어 있지 않은 VOQ는 XSU 출력 포트에 요청 신호를 전송하면(S110), XSU 출력 포트는 SDB값을 검색하게 되고, 만약 SDB가 0이 아니면 SDB는 채워진 상태이므로 요청을 거절하게 된다(S130). 이럴 경우, 검색이 시작되는 최우선 순위는 그대로 유지된다.
만일 SDB가 0인 경우에는 최우선 순위요소부터 라운드 로빈 방식으로 요청중 하나를 선택하게 되고(S121) 입력포트에 승인 신호를 전송한다(S122). XSU 입력 포트는 상기 승인 신호를 검색하여 한 승인 신호를 선택하여 접수하게 되고(S123), 그 결과에 따라서 새로운 최우선 순위 요소를 선택하여 갱신하게 된다(S124).
도 5는 본 발명의 실시예에 따른 XSU(210)의 승인 아비터(240)의 구성을 도시한 개략도이다.
상기 승인 아비터(240)는 라운드 로빈 선택기(242), 아비터 레지스터(245), 가산기(244), 승인 신호 디코더(248)를 포함한다.
요청 신호 벡터가 XSU(210)의 승인 아비터(240)에 전달된다. 요청 신호 벡터는 n bit 크기로 XSU(210)의 입력 포트에서 특정출력 포트로 전달하는 요청 신호를 의미한다.
요청 신호 벡터는 상기 라운드 로빈 선택기(242)에 접속된다. 라운드 로빈 선택기는 아비터 레지스터(245)에 저장되어 있는 최우선 값으로부터 라운드-로빈 방식으로 요청 신호 벡터를 검색하여 처음으로 요청된 하나의 신호를 선택한다. 라운드 로빈 선택기(242)는 선택된 요청 신호에 대한 결과로서 log(n) 크기의 신호(243)를 출력한다. log(n) 크기의 신호(243)는 승인 아비터(240)에서 선택한 입력 포트의 위치 정보를 나타낸다. 이 정보는 +1 가산기(244)에 의해 모듈러 n 형태로 1 증가된 후 승인 아비터 레지스터(245)에 전달된다. 레지스터(245)에 전달된 값은 접수 신호(246)를 받을 경우 레지스터(245)에 저장된다. 접수 신호(246)는 승인 아비터(240)가 생성한 승인 신호가 접수되었음을 알려주는 신호이다.
라운드 로빈 선택기(242)는 결과신호(243)를 승인 신호 디코더(248)로 전송한다. 승인 신호 디코더(248)는 SDB 상태 신호(247)에 따라서 n bit 크기의 승인 신호 벡터를 생성한다.
SDB 상태 신호는(247)은 도 2에 도시된 SDB(212)의 상태를 나타내는 신호로서, SDB가 셀을 받아들일 수 있을 경우 0, SDB가 셀을 받아들일 수 없을 경우 1로 표시된다. 승인 신호 디코더(248)는 SDB 상태 신호(247)가 1일 경우 승인 신호 벡터를 모두 0으로 설정하며, SDB 상태 신호(247)가 0일 경우 라운드 로빈 선택기(242)에서 선택된 비트만을 1로 설정하고, 나머지는 0으로 설정하여 출력한다.
이는 승인 신호 아비터(240)는 해당되는 출력 포트의 SDB가 셀을 받아 들일 수 있을 경우에만 우선순위에 따라서 n개의 접수 신호 중 하나를 선택하여 승인 신호를 생성함을 의미한다.
도 6은 본 발명의 실시예에 따른 XSU(210)의 접수 아비터(230)의 구성을 도시한 개략도이다.
상기 접수 아비터(230)는, 라운드 로빈 선택기(232), 가산기(234), 접수 아비터 레지스터(235), 접수 신호 디코더(236)를 포함한다.
우선 n 비트의 승인 신호 벡터가 XSU(210)의 접수 아비터(230)에 전달된다. 승인 신호 벡터는 n bit 크기로 XSU(210)의 출력 포트에서 특정 입력 포트로 전달하는 승인 신호를 의미한다.
상기 승인 신호 벡터는 라운드 로빈 선택기(232)에 연결된다. 라운드 로빈 선택기(232)는 레지스터(235)에 저장되어 있는 최우선 값으로부터 라운드 로빈 방식으로 승인 신호 벡터를 검색하여 처음으로 승인된 신호 하나를 선택한다.
라운드 로빈 선택기(232)는 선택된 승인 신호에 대한 결과로서 log(n) 크기의 신호(233)를 출력한다. log(n) 크기의 신호는 접수 아비터(230)에서 선택한 출력 포트의 위치 정보를 나타낸다. 이 정보는 +1 가산기(234)에 의해 모듈러 n 형태로 1 증가된 후 레지스터(235)에 저장된다.
라운드 로빈 선택기(232)는 결과신호(233)를 접수 신호 디코더(236)로 전달한다. 접수 신호 디코더(236)는 log(n) 크기의 결과신호에 해당되는 bit 만을 1로 설정하고 나머지는 0으로 설정하여 n bit 크기의 접수 신호 벡터를 생성한다.
도 7은 단일 XSU(210)에 적용되는 XSU 아비터(250)의 장치구현 실시 예를 나타낸 것이다.
XSU Arbiter(250)는 n2 bit의 VOQ의 상태(81), n 개의 분산된 승인 아비터(230-1 ~ 230-n), n 개의 분산된 접수 아비터(240-1 ~ 240-n), 크로스바 스위치 제어기(252) 및 SDB 제어기(253)를 포함한다.
n2 비트의 VOQ의 상태(81)는 XSU(210)에 접속되는 n 개의 입력 포트 별로 가지고 있는 n 개의 VOQ의 현재 상태를 나타낸 것으로 VOQ가 비어있지 않은 경우(non-empty)는 1이며, 비어 있는 경우(empty) 0의 값을 가진다.
각 승인 아비터(230-1 ~ 230-n)는 도 5에 도시된 요청 신호 벡터에 해당하는 n 비트의 정보를 VOQ의 상태(81)로부터 전달받아 도 5의 승인 신호 벡터에 해당하는 n 비트 신호를 생성하여 접수 아비터(240-1 ~ 240-n)로 전달한다.
각 접수 아비터 (240-1 ~ 240-n) 은 도 6에 도시된 승인 신호 벡터에 해당하는 n 비트의 정보를 전달받아 도 6에 도시된 접수 신호 벡터에 해당하는 n bit 신호를 생성하여 크로스바 스위치 제어기(252)로 전달한다.
크로스바 스위치 제어기(252)는 n x n 크로스바 스위치의 각각의 크로스 포인트를 제어하기 위한 n2 비트의 크로스바 제어 신호(84)와 출력 포트 별 접수 상태를 파악하여 n 비트의 접수 신호(83)를 생성한다.
크로스바 스위치 제어기(252)는 접수 아비터(240-1 ~ 240-n)로부터 전달되는 접수 신호로부터 출력 포트별 접수 상태를 파악하여 접수 신호(83)의 해당되는 bit를 1로 설정한다.
SDB 제어기(253)는 SDB의 상태를 파악하여 SDB의 상태가 셀을 저장할 수 있을 경우 0, 셀을 저장할 수 없을 경우 1인 SDB 상태 신호(86)를 생성하는 기능을 제공한다. 또한, SDB 제어기(253)는 SDB내에서 1셀 이상의 셀이 있을 경우 출력단의 출력 아비터로 요청 신호 벡터(87)를 생성하여 상기 출력 아비터에 전달한다. 출력 아비터로부터의 접수 신호 벡터(88)는 출력 아비터로의 요청 신호 벡터(87)에 대한 출력 아비터의 결과 신호로서 이를 이용하여 SDB 제어기(253)는 다음 시간 슬롯에서 1 cell이 빠져나갈 SDB를 구별할 수 있다.
SDB 제어기(253)는 접수 신호(83)로부터 다음 시간 슬롯에서 1 cell이 저장될 SDB를 구별할 수 있다. 또한 SDB 제어기(253)는 접수 신호(83)와 출력 아비터로부터의 접수 신호 벡터(88)를 사용하여 SDB의 상태를 파악할 수 있다.
도 8은 본 발명의 실시예에 따른 제 2 중재 단계의 흐름을 도시한 흐름도이다.
전술한 바와 같이 제 2 중재 단계는 출력 포트에서 독립적으로 이뤄지므로, 요청의 승인이 필요하지 않고, 요청과 접수의 동작으로 구성된다.
따라서, 출력 아비터는 XSU 아비터로부터의 요청 신호를 전송받고(S210), 상기 요청 신호를 최우선 순위부터 라운드-로빈 방식으로 검색한다(S220). 상기 라운드-로빈 방식으로 검색된 신호를 선택하여(S230), 선택된 신호를 접수하게된다. 요청신호가 접수되면 출력 아비터에서 XSU의 최우선 순위 요소는 갱신된다(S240)
이하, 상기 출력 아비터의 구성을 더 상세히 설명한다.
도 9는 본 발명의 실시예에 따른 출력단 출력 포트에 적용 가능한 출력 아비터의 내부 구성을 도시한 개략도이다.
출력 아비터(260)는 라운드 로빈 선택기(262), 가산기(264), 레지스터(265) 및 접수 신호 디코더(266)를 포함한다.
출력 아비터로의 요청신호 벡터(91)가 출력 아비터(260)에 전송된다. 출력 아비터로의 요청신호 벡터(91)는 L bit 크기로 L 개의 XSU에서 출력 아비터(260)에 전달하는 요청 신호이다. 요청 신호 벡터(91)는 라운드 로빈 선택기(262)에 연결된다. 라운드 로빈 선택기(262)는 레지스터(265)에 저장되어 있는 최우선 값으로부터 라운드 로빈 방식으로 요청 신호 벡터(91)를 검색하여 처음으로 요청된 신호 하나를 선택한다.
라운드 로빈 선택기(262)는 선택된 요청 신호에 대한 결과로서 log(L) 크기의 신호(263)를 출력한다. log(L) 크기의 신호는 출력 아비터(260)에서 선택한 XSU의 위치 정보를 나타낸다. 이 정보는 +1 가산기(264)에 의해 모듈러 L 형태로 1 증가된 후 레지스터(265)에 저장된다.
요청 신호 벡터(91)는 결과신호를 접수 신호 디코더(266)로 전달한다. 접수 신호 디코더(266)는 log(L) 크기의 결과신호에 해당되는 bit 만을 1 로 설정하고 나머지는 0으로 설정하여 L bit 크기의 접수 신호 벡터(97)를 생성한다.
도 10은 본 발명의 실시예에 따른 적용 가능한 N x N 매트릭스형 스위치에 대한 아비터 구성을 도시한 개략도이다.
N x N 매트릭스형 스위치에 대한 아비터(270)는 L2 개의 분산된 XSU 아비터(250-1) ~ (250-L2)과 N 개의 분산된 출력 아비터(260-1) ~ (260-N)을 상호 연결함으로써 구성된다. 각각의 XSU 아비터에서 출력되는 요청신호 (91-1) ~ (91-L2)은 출력 아비터에 전달되며, 각 출력 아비터에서 출력되는 접수 신호(97-1) ~ (97-N)은 XSU 아비터에 전달되게 된다.
비록, 본 발명이 가장 실제적이며 바람직한 실시예를 참조하여 설명되었지만, 본 발명은 상기 개시된 실시예에 한정되지 않으며, 후술되는 특허청구범위 내에 속하는 다양한 변형 및 등가물들도 포함한다.
전술한 구성에 의하여 N x N 스위치에 대한 중재는 L2 개의 분산 XSU 아비터와 N 개의 분산된 출력 아비터를 상호연결함으로 구성된다. 또한, 단일 XSU 는 n 개의 분산된 승인 아비터와 n 개의 분산된 접수 아비터로서 구성 가능하므로 본 발명의 경우 확장성(scalability)이 매우 높다. 또한 모든 arbitration이 고속구현에 가장 적합한 방식인 라운드-로빈 기반으로 실현이 가능하다. 따라서 본 발명은 소규모 크로스바 스위치 유닛들을 상호 연결하여 대규모 스위치를 구성할 수 있으며, 고속 대용량의 스위치에 있어서, 필수 조건인 높은 확장성과와 분산된 중재를 제공할 수 있는 현저한 효과를 가진다.
실제로 본 발명을 단위 시간 슬롯내에서 단일 반복(single iteration in a time slot)만을 가지고 균일한 트래픽에 대한 시뮬레이션을 수행해보면 동일한 조건의 타 방식(PIM, iSLIP)에 비해서 상대적으로 우수한 셀 전달 지연시간 성능을 가지면서 100%의 처리율(throughput)로 전달할 수 있음 확인할 수 있으므로 타 방식에 비해서 상대적으로 우수한 중재 시간 마진(arbitration time margin)을 가지는 효과를 구비한다.
도 1은 본 발명의 실시예에 따른 N x N 크로스바 매트릭스 스위치의 구조를 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 N x N 크로스바 매트릭스 스위치의 내부 구성을 도시한 도면이다.
도 3a, 도 3b 및 도 3c에서 본 발명의 실시예에 따른 중재 알고리즘을 도시한 도면이다.
도 4는 본 발명의 실시예에 따른 제 1 중재 단계의 흐름을 도시한 흐름도이다.
도 5는 본 발명의 실시예에 따른 XSU(210)의 승인 아비터의 구성을 도시한 개략도이다.
도 6은 본 발명의 실시예에 따른 XSU(210)의 접수 아비터의 구성을 도시한 개략도이다.
도 7은 본 발명의 실시예에 따른 XSU(210)에 적용되는 XSU 아비터의 장치구현을 도시한 개략도이다.
도 8은 본 발명의 실시예에 따른 제 1 중재 단계의 흐름을 도시한 흐름도이다.
도 9는 본 발명의 실시예에 따른 출력 포트에 적용 가능한 출력 아비터의 내부 구성을 도시한 개략도이다.
도 10은 본 발명의 실시예에 따른 적용 가능한 N x N 매트릭스형 스위치에 대한 아비터 구성을 도시한 개략도이다.

Claims (10)

  1. 매트릭스형 스위치 장치에 있어서:
    복수의 가상 출력 대기열(VOQ)을 복수의 VOQ 그룹으로 나누어 입력하는 입력단 입력 포트;
    상기 입력된 VOQ 그룹을 독립적으로 중재하여 셀을 출력하는 복수의 크로스바 스위치 유닛(이하, XSU라 칭함); 및
    상기 XSU로부터 출력된 셀을 독립적으로 중재하여 출력 링크로 셀을 전송하는 복수의 출력단 출력 포트를 포함하고,
    상기 XSU는 각각의 XSU 출력 포트에 일정 크기의 셀을 저장할 수 있는 버퍼를 포함하고, 상기 버퍼의 저장 정보에 기초하여 XSU의 중재 요청을 승인하는 매트릭스형 스위치 장치.
  2. 제 1 항에 있어서,
    상기 복수의 XSU의 그룹은 복수의 스위치 모듈을 구성하고 상기 스위치 모듈을 기준으로 상기 입력단 입력포트로부터 VOQ를 입력받는 매트릭스형 스위치 장치.
  3. 제 2 항에 있어서,
    상기 VOQ가 N 개 일 때, N개의 VOQ중 n 개의 VOQ가 L 개의 상기 VOQ 그룹으로 분할되며,
    상기 스위치 모듈은 L 개의 상기 XSU를 포함하고,
    상기 매트릭스형 스위치 장치는 L 개의 상기 스위치 모듈을 포함하고,
    L= N/n(N, L 및 n 은 모두 자연수)의 관계를 가지는 매트릭스형 스위치장치.
  4. 제 3 항에 있어서,
    상기 XSU는,
    n 개의 분산된 승인 아비터(grant arbiter)와;
    n 개의 분산된 접수 아비터(accept arbiter)와;
    크로스바 스위치 제어기와
    상기 버퍼를 제어하는 버퍼 제어기를 포함하고,
    상기 승인 아비터는 VOQ 로부터 n 비트의 요청 신호 벡터를 전달받아 n 비트의 승인 신호 벡터를 상기 접수 아비터로 전송하고,
    상기 접수 아비터는 상기 n 비트의 승인 신호 벡터를 받아 n 비트의 접수 신호 벡터를 상기 크로스바 스위치 제어기에 전송하고
    상기 버퍼 제어기는 상기 버퍼에 셀이 저장된 경우, 상기 셀을 상기 출력단 출력포트의 출력 아비터에 전송하는 매트릭스형 스위치 장치.
  5. 삭제
  6. 복수의 입력단 입력 포트, 복수의 크로스바 스위치 유닛, 출력단 출력 포트를 포함하는 매트릭스형 스위치 장치의 중재 방법에 있어서:
    (a) 상기 크로스바 스위치 유닛(이하, XSU라 칭함)의 승인 아비터가 XSU의 입력 포트로부터 전송된 요청 신호를 검색하여 처음으로 요청한 XSU 입력 포트를 선택하는 단계;
    (b) 상기 승인 아비터에 대응하는 XSU 출력 포트의 버퍼가 추가 셀을 받아들일 수 있는지 검색하는 단계와;
    (c) 상기 승인 아비터에 대응하는 출력 포트의 버퍼가 추가 셀을 받아들일 수 있는 경우에만 XSU 입력 포트로 승인 신호를 전송하는 단계 및
    (d) 상기 XSU의 접수 아비터가 상기 승인 신호중 하나를 처음으로 승인한 승인 신호를 선택하는 단계;
    (e) 상기 접수 아비터가 상기 선택된 접수 신호에 대응하는 출력 포트로 접수 신호를 전송하는 단계
    (f) 상기 출력단의 출력 포트의 출력 아비터가 상기 XSU부터 전송된 요청신호를 검색하여 처음으로 요청한 크로스바 스위치 유닛을 선택하는 단계 및
    (g) 상기 출력 아비터가 상기 선택된 크로스바 스위치 유닛으로 접수 신호를 전송하는 단계
    를 포함하는 스위치 중재 방법.
  7. 삭제
  8. 제 6 항에 있어서,
    상기 입력단 입력포트에 포함된 VOQ가 N 개 일 때, 이중 n 개의 VOQ가 L 개의 VOQ 그룹으로 분할되어, L 개의 상기 XSU의 그룹과 연결되며, (여기서, L= N/n;N, L 및 n 은 모두 자연수)
    상기 (a), (d), (f) 단계는 미리 정해진 최우선 순위값으로부터 라운드-로빈 방식으로 검색하는 스위치 중재 방법.
  9. 제 8 항에 있어서,
    상기 (c)단계는,
    상기 접수 아비터가 승인 신호를 받은 경우 선택된 XSU 출력 포트의 포트 정보를 기초로 하여 새로운 최우선 값을 갱신하고 내부레지스터에 저장하는 단계를 더 포함하고,
    상기 (e)단계는,
    상기 승인 아비터가 접수 신호를 받은 경우 선택된 XSU 입력 포트의 포트 정보를 기초로 하여 새로운 최우선 값을 갱신하고 내부레지스터에 저장하는 단계를 더 포함하고,
    상기 (f)단계는,
    상기 출력 아비터가 크로스바 스위치 유닛에 접수 신호를 전송한 경우, 대응하는 크로스바 스위치 유닛의 정보를 기초로 하여 최우선 값을 갱신하고 내부 레지스터에 저장하는 단계를 더 포함하는 스위치 중재 방법.
  10. 제 9 항에 있어서,
    상기 갱신 및 저장 단계는,
    접수 아비터는 이미 설정된 최우선 순위값을 승인 신호에 대응하는 출력 포트 정보에 1을 더한 값으로 갱신하고,
    승인 아비터 및 출력 아비터에 이미 설정된 최우선 순위값을 접수 신호에 대응하는 입력 포트 정보와 크로스바 스위치 유닛정보에 1을 더한 값으로 갱신하는 스위치 중재 방법.
KR10-2003-0013079A 2002-12-24 2003-03-03 확장형 크로스바 매트릭스 스위치 및 중재 방법 KR100508635B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/663,476 US7522527B2 (en) 2002-12-24 2003-09-15 Scalable crossbar matrix switch and arbitration method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20020083720 2002-12-24
KR1020020083720 2002-12-24

Publications (2)

Publication Number Publication Date
KR20040057036A KR20040057036A (ko) 2004-07-01
KR100508635B1 true KR100508635B1 (ko) 2005-08-17

Family

ID=37349651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0013079A KR100508635B1 (ko) 2002-12-24 2003-03-03 확장형 크로스바 매트릭스 스위치 및 중재 방법

Country Status (1)

Country Link
KR (1) KR100508635B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101253492B1 (ko) * 2012-11-30 2013-04-11 (주)진명아이앤씨 N-스크린을 적용한 매트릭스 스위치 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20040057036A (ko) 2004-07-01

Similar Documents

Publication Publication Date Title
US9992133B2 (en) Switching device for routing packets through a network
US7492782B2 (en) Scalable crossbar matrix switching apparatus and distributed scheduling method thereof
US7173931B2 (en) Scheduling the dispatch of cells in multistage switches
KR970000792B1 (ko) 패킷 스위치 및 그 구조
US6813274B1 (en) Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently
Mhamdi et al. CBF: A high-performance scheduling algorithm for buffered crossbar switches
US7046661B2 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined hierarchical arbitration scheme
Chao et al. Centralized contention resolution schemes for a large-capacity optical ATM switch
US6940851B2 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme
JP3936044B2 (ja) アクセス調停方法
JPH10164096A (ja) マルチキャスト・パケット・アクセス調停方法
US7830903B2 (en) Method and apparatus for scheduling packets and/or cells
US6370148B1 (en) Data communications
US7522527B2 (en) Scalable crossbar matrix switch and arbitration method thereof
US7203202B2 (en) Arbitration using dual round robin matching with exhaustive service of winning virtual output queue
US7103056B2 (en) Scheduling the dispatch of cells in multistage switches using a hierarchical arbitration scheme for matching non-empty virtual output queues of a module with outgoing links of the module
KR100508635B1 (ko) 확장형 크로스바 매트릭스 스위치 및 중재 방법
Kleban et al. CRRD-OG: A packet dispatching algorithm with open grants for three-stage buffered Clos-network switches
KR100581079B1 (ko) 확장형 크로스바 매트릭스 스위칭 장치 및 그의 분산스케쥴링 방법
Schiattarella et al. High-performance packet switching architectures.
USRE42600E1 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme
KR20020054207A (ko) 분배결합 패킷 스위칭 장치
Kleban Packet dispatching schemes for three-stage buffered Clos-network switches
KR20030074665A (ko) 간결한 중재용 교신 정보를 갖는 분배결합 패킷 스위칭장치 및 그를 이용한 내부 블록킹 중재 장치

Legal Events

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

Payment date: 20080805

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee