KR100404376B1 - 다중 입출력 버퍼를 둔 분할형 크로스바 스위치 - Google Patents

다중 입출력 버퍼를 둔 분할형 크로스바 스위치 Download PDF

Info

Publication number
KR100404376B1
KR100404376B1 KR10-2001-0084875A KR20010084875A KR100404376B1 KR 100404376 B1 KR100404376 B1 KR 100404376B1 KR 20010084875 A KR20010084875 A KR 20010084875A KR 100404376 B1 KR100404376 B1 KR 100404376B1
Authority
KR
South Korea
Prior art keywords
cell
input
output
crossbar switch
buffer
Prior art date
Application number
KR10-2001-0084875A
Other languages
English (en)
Other versions
KR20030054664A (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 KR10-2001-0084875A priority Critical patent/KR100404376B1/ko
Publication of KR20030054664A publication Critical patent/KR20030054664A/ko
Application granted granted Critical
Publication of KR100404376B1 publication Critical patent/KR100404376B1/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

Landscapes

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

Abstract

본 발명은 하나의 스위치 대신에 크기가 작은 여러 개의 스위치 소자를 사용하여 스위치 내부에서 셀의 충돌을 줄이는 분할형 크로스바 스위치에 관한 것이다.
본 발명에서는 3가지 형태의 분할형 크로스바 스위치를 제안한다. 첫 번째는 기존의 단일 크로스바를 가로로L개로 나누고 각 출력 포트마다L개의 버퍼를 두는 구조이고, 두 번째는 기존의 단일 크로스바를 세로로E개로 나누고 각 입력 포트에는E개의 버퍼를 두며 출력포트 쪽에는 내부 속도 상승(speed-up)을 하는 경우에만 버퍼를 두는 구조이다. 그리고, 세 번째는 단일 크로스바를 가로로L개로 나눈 후 그 각각을 세로로E개로 나누어 총EL개의 크로스바로 나누고, 각 출력 포트마다L개의 버퍼를 두고 각 입력 포트마다E개의 버퍼를 두는 구조이다. 각 크로스바 스위치 소자당 중재기가 하나씩 할당되며, 출력단에 버퍼가 있는 경우에는 서비스 품질을 보장하기 위해서 셀을 스케줄링하는 스케줄러가 할당된다.
기존의 NxM 입력 버퍼형 스위치는 하나의 크로스바 스위치가 N개의 입력단을 M개의 출력단에 연결해 주어야 하지만, 분할형 크로스바 스위치에서는 여러개의 크로스바 스위치 소자가 서로 완전히 독립으로 N보다 작거나 같은 수의 입력을 M보다 작거나 같은 수의 출력과 연결해주면 되기 때문에 하나의 스위치 소자에서 경쟁하는 입력단과 출력단의 개수가 줄어들어 충돌률이 줄어들게 되고, 입력 버퍼형 스위치에 비해 좋은 성능을 나타낼 수가 있게 된다.
따라서, 본 발명은 입력 링크 속도보다 빠른 메모리를 필요로 하지 않으며내부 연결선의 개수도 기존의 crossbar 스위치와 거의 차이가 없기 때문에 고속 구현이 용이하다.

Description

다중 입출력 버퍼를 둔 분할형 크로스바 스위치{Partitioned Crossbar Switch with Multiple Input/Output Buffers}
본 발명은 다중 입출력 버퍼를 둔 분할형 크로스바 스위치에 관한 것이다.보다 상세하게는 하나의 스위치 대신에 크기가 작은 여러 개의 스위치 소자를 사용하여 스위치 내부에서 셀의 충돌을 줄이는 분할형 크로스바 스위치 구조에 관한 것이다.
지난 10여년 동안 통합 서비스 망에서 다양한 서비스를 제공하기 위한 많은 연구가 진행되어 오고 있다. 서비스 계약을 지키는 사용자에게 서비스 계약을 어기는 flow에 영향을 받지 않고 대역과 지연을 보장해주기 위해서 많은 스케줄링 방식이 제안되어 왔다. 셀이 남아있는 경우 처리 시간을 허비하지 않는 work-conserving 방식으로는 virtual clock, delay-EDD (delay-Earlist -Due-Date), WFQ(weighted fair queueing), WF2Q(Worst-case Fair Weighted Fair Queueing), SCFQ(Self-Clocked Fair Queueing) 등이 있으며, 셀이 남아있는 경우 지연 변동 등을 생각해 셀 타임을 그냥 idle하게 지나가기도 하는 nonwork-conserving 방식으로는 jitter-EDD, stop-and-go, HRR (hierarchical Round Robin), RCSP (Rate-Controlled Static Priority) 등이 있다. 지금까지는 대부분의 이러한 연구가 출력 버퍼형 스위치에 대해 이루어졌다.
출력 버퍼형 스위치는 QoS 제공에 많은 장점을 가지고 있지만, 메모리 속도가 전체 입력속도의 합만큼 빨라야 한다는 한계가 있다. 메모리 속도의 증가율이 프로세서 속도의 증가율보다 낮기 때문에 현재 메모리 속도 한계가 고속 스위치 구현에 bottleneck이 되고 있다. 입력 버퍼형 스위치에서는 메모리 속도가 한 채널의 속도보다 많이 빠를 필요가 없다. 따라서, 현재의 기술수준에서 입력 버퍼형 스위치가 출력 버퍼형 스위치 또는 공유 버퍼형 스위치보다 고속 구현에 더 적합하다고 할 수 있다.
그렇지만, 입력 버퍼형 스위치는 HOL(head-of-line) 블로킹으로 인해 균일한 입력 트래픽에 대해 수율(throughput)이 58.6%까지 밖에 나오지 않는다는 한계가 있었으나 이는 입력 버퍼를 FIFO(first in first out) 방식으로 동작시킬 때 성능이고, 입력 버퍼에서 VOQ(virtual output queueing)방식으로 각 출력 버퍼마다 큐를 분리해서 관리하면 수율이 100%까지 증가할 수 있음이 알려지면서 최근에 많은 스위치들이 입력 버퍼형으로 구현되고 있다.
이러한 스위치들은 주로 입력 버퍼를 둔 크로스바(crossbar) 스위치의 형태가 많다. 그 예로는 PMC사의 TT1/Enhanced TT1 스위치, Cisco의 12000GSR, 50-Gb/s IP Router 등이 있다. Cisco의 IP Router는 내부적으로 셀 스위칭을 하기 때문에 가변 길이의 패킷이 도착하면 그 패킷을 고정된 길이의 셀로 나누고 각각 셀 스위치를 통과시킨 다음 재조립해서 내보내는 방식을 취하고 있다.
crossbar 스위치는 구현의 복잡도가 N-port crossbar의 경우 N2에 비례해서 증가한다는 점과 입력단과 출력단에서 모두 충돌을 해결하기 때문에 QoS를 보장하기 위해서는 제어가 더 복잡해지는 단점이 있지만, 구조가 간단해 VLSI 칩으로 구현이 용이하고 높은 속도로 동작이 가능하다.
입력 버퍼에서 VOQ방식으로 큐를 관리하는 입력 버퍼형 스위치에서는 실제 한 셀타임에 하나의 입력 포트로 들어갈 수 있는 셀의 개수는 하나인데 여러 VOQ에서 셀을 보내기를 원할 수 있기 때문에 스위치의 입력단에서 충돌이 발생하게 되고, 입력단을 통해서 crossbar와 같은 스위치 fabric으로 들어간다 하더라도 서로 다른 입력을 통해 들어온 셀들이 같은 출력 포트로 나가고자 하는 경우가 발생할 수 있는데 이런 경우에도 충돌이 발생하게 된다. 이러한 2가지 충돌을 해결하기 위해서 입력 버퍼형 스위치는 중재(arbitration) 알고리즘을 사용해서 입력 버퍼의 각 셀이 전송될 순서를 결정해 주게 된다. 이러한 중재 알고리즘으로는 PIM(parallel iterative matching), RRM(Round-Robin Matching), iSLIP, i-LQF(iterative Longest Queue First), i-OCF(iterative Oldest Cell First), FARR(Fair Arbitrated Round Robin), FIRM(Fcfs In Round-robin Matching) 등이 있다.
입력 버퍼형 crossbar 스위치의 경우 중재 알고리즘에 따라서 수율(throughput)이 100%까지 얻어질 수 있지만 입력 버퍼형 스위치는 기본적으로 셀이 입력버퍼에서 스위치로 들어갈 때 발생하는 충돌과 스위치의 출력 포트에서 발생하는 충돌을 모두 해결해야하기 때문에 근본적으로 입력단에서 충돌이 발생하지 않는 출력 버퍼형 스위치보다 성능이 더 좋아질 수 없는 한계를 가지고 있다.
한편, 출력 버퍼형 스위치는 스위치 내부 속도 상승(speed-up)으로 인해 도착하는 셀을 모두 즉시 출력 버퍼로 전달할 수 있기 때문에 입력단에서 충돌이 발생하지 않아서 좋은 성능을 나타내지만 입력 링크 속도보다 훨씬 빠른 메모리를 필요로 하기 때문에 고속 스위칭에 사용되기 어렵다는 단점이 있다.
따라서, 본 발명은 상기한 문제점을 해결하기 위한 것으로서 본 발명에서는 기본적으로 입력단에 VOQ방식으로 셀을 저장하는 버퍼가 있는 구조에서 하나의 스위칭 소자 대신에 여러개의 스위치 소자를 사용해 스위칭을 분산적으로 수행함으로써 입력단과 출력단에서 발생하는 충돌율을 줄여서 기존의 입력 버퍼형 스위치보다 좋은 성능을 가지는 스위치 구조를 제안한다. 이 때, 제안되는 스위치 구조는 내부 속도 상승(speed-up)을 필요로 하지 않고, 메모리의 속도가 입력 링크의 속도보다 많이 빠를 필요가 없기 때문에 고속 구현이 가능하다.
상기한 본 발명의 목적을 달성하기 위한 기술적 사상으로써 본 발명에서는 3가지 형태의 분할형 크로스바 스위치를 제안한다.
첫 번째는 기존의 단일 크로스바를 가로로L개로 나누고 각 출력 포트마다L개의 버퍼를 두는 구조이고, 두 번째는 기존의 단일 크로스바를 세로로E개로 나누고 출력포트 쪽에는 내부 속도 상승(speed-up)을 하는 경우에만 버퍼를 두며 각 입력 포트에는E개의 버퍼를 두는 구조이다. 그리고, 세 번째는 단일 크로스바를 가로로L개로 나눈 후 그 각각을 세로로E개로 나누어 총EL개의 크로스바로 나누고, 각 출력 포트마다L개의 버퍼를 두고 각 입력 포트마다E개의 버퍼를 두는 구조이다.
도 1은L개의크로스바 스위치 소자로 구성된 N ×M 가로 분할형 크로스바 스위치의 구성도이다.
도 2는 N ×M 입력 버퍼형 스위치에서 전송 요구 행렬을 나타낸 도면이다.
도 3은L개의크로스바 스위치 소자로 구성된 N ×M 가로 분할형 크로스바 스위치에 대한 전송 요구 행렬을 나타낸 도면이다.
도 4는 동기화된 접힌 파면 중재방식(SWWFA)을 설명하기 위한 도면이다.
도 5는 비동기화된 접힌 파면 중재방식(DWWFA)을 설명하기 위한 도면이다.
도 6은E개의크로스바 스위치 소자로 구성된 N ×M 세로 분할형 크로스바 스위치의 구성도이다.
도 7은LE개의크로스바 스위치 소자로 구성된 N ×M 분할형 크로스바 스위치의 구성도이다.
이하에서는 본 발명의 실시예에 관한 구성 및 그 작용에 대하여 첨부한 도면을 참조하면서 상세히 설명하기로 한다.
도 1은L개의 크로스바로 이루어진 N ×M 가로 분할형 크로스바 스위치의 구성도이다.
도 1를 살펴보면, 크로스바 소자의 개수LN의 약수이다. 각 입력 포트마다 셀이 도착하면 그 셀이 가고자 하는 출력 포트 번호에 따라 구별해서 저장하는 입력 버퍼(101)가 있고,N/L개의 입력과 M개의 출력을 연결하는 크로스바 스위치 소자(107)가L개 있고, 각 크로스바 스위치 소자마다 중재기가 하나씩 있으며, 각 출력 포트는 셀이 통과한 입력 포트에 따라 셀을 구별해서 저장할 수 있는L개의 버퍼(104)와 per-VC 또는 per-class 단위로 스케줄링할 수 있는 스케줄러(106)를 가지게 된다. i번째 크로스바 스위치 소자는번부터번까지의 입력 포트를 모든 출력 포트의 i번째 버퍼와 연결해준다.
좀 더 구체적인 동작에 대해서 알아보자. 일단 셀이 입력 포트를 통해 입력 버퍼(101)에 들어오면 입력 버퍼는 셀이 통과하고자 하는 출력 포트 번호에 따라 셀을 저장하게 된다. 이와 같은 큐잉 방식을 VOQ(virtual output queueing)이라고 한다. 도 1에서 Qi,j는 i번 입력 포트를 통해 들어와서 j번 출력 포트를 통해 나가고자 하는 셀의 큐(102)로써 i번째 입력 버퍼에 존재한다. 따라서, 셀들은 입력 버퍼에 들어오면 원하는 출력 포트 번호에 따라 해당되는 큐에 차례로 줄을 서게 된다. 각 큐는 FIFO 방식으로 서비스된다, 즉 가장 앞에 있는 셀이 가장 먼저 출력 버퍼쪽으로 전달된다. 그렇지만, 임의의 i번째 입력 버퍼의 경우 출력 포트의 개수인M개의 가상 출력 큐(102)를 가지게 되는데 가상 출력 큐의 맨 앞에 있는 셀이라고 해도 바로 출력 포트 방향으로 전달이 될 수는 없다. i번째 입력포트에서M개의 가상 출력 큐 가운데 하나 이상의 셀을 가진 큐의 개수가m이라면 그 시간에 출력 버퍼쪽으로 전달이 되고자 하는 셀의 개수는m이 된다. 실제로 하나의 입력 버퍼에서 내보낼 수 있는 셀은 하나밖에 되지 않기 때문에m이 2 이상이라면m개의 셀 간에 충돌이 발생하게 된다. 이러한 충돌을 입력 충돌(input contention)이라고 하고 중재기(103)가 이 문제를 해결하게 된다.
중재기에서 이와 같은 충돌을 해결하게 되면 i번째 입력 포트에서는m개의 HOL(head-of-line) 셀들 가운데 하나가 선택될 수는 있지만 그 셀을 원하는 출력 버퍼 방향으로 보냈을 때 반드시 성공적으로 전달된다고 할 수는 없다. 왜냐하면 i와 다른 j번째 입력 포트에서 같은 출력 버퍼로 셀을 보낼 수도 있기 때문이다. 메모리의 속도를 높이고 내부 속도 상승(speed-up)을 1보다 크게 하지 않는 경우 하나의 출력 버퍼에서 한 셀타임에 받아들일 수 있는 셀의 개수는 하나이기 때문에 여러 개의 입력 포트에서 같은 출력 버퍼로 셀들을 보내고자 하면 또 충돌이 발생하게 된다. 이와 같은 충돌을 출력 충돌(output contention)이라고 한다. 도 1에서 중재기(103)는 입력 충돌뿐만 아니라 출력 충돌까지 해결하는 역할을 한다. 중재기에서 입력 충돌과 출력 충돌을 모두 해결한 결과 허가(grant)를 받는 셀만이 충돌 없이 입력 버퍼에서 출력 버퍼까지 전달될 수 있다.
중재기는 크로스바 스위치 소자(107)당 하나씩 총L개 존재하고 각 중재기는 서로 무관하게 독립적으로 동작한다. 그리고, 서로 다른 크로스바 스위치가 서로 독립적으로 동작하기 위해서 각 출력 포트는L개의 버퍼(104)를 두어 각 크로스바에 버퍼를 하나씩 할당한다. 각 출력 포트는 도착하는 셀이 어떤 입력 포트에서 오는 셀이냐에 따라 첫 번째부터 N/L번째까지의 입력 포트에서 오는 셀은 모두 첫 번째 출력 버퍼에 저장하게 되고, N(s-1)/L+1번째부터 Ns/L번째까지의 입력 포트에서 오는 셀은 모두 s번째 출력 버퍼에 저장하게 된다. 그리고, 각 출력 버퍼(104)내에서도 어떤 입력 포트에서 왔는지에 따라 논리적으로 나뉘어서 큐잉된다. j번째 출력 포트에 i번째 입력 포트로부터 셀이 오게 되면번째 출력 버퍼의 논리적인 큐 OQj,i(105)에 그 셀이 저장된다. QoS를 고려하여 거쳐온 입력 포트별로 큐잉하는 것뿐만 아니라 QoS 클래스 또는 연결별로 큐잉을 할 수도 있다.
첫 번째 입력 포트부터 N/L번째 입력 포트는 첫 번째 크로스바 XB-1만 사용하고 모든 출력 포트에 대해서 항상 첫 번째 버퍼만 이용하기 때문에, 첫 번째부터 N/L번째 입력 포트들에서 보내는 셀과 N/L+1에서 N번째 입력 포트들에서 보내는 셀 사이에는 절대 충돌이 발생하지 않게 된다. 따라서, 첫 번째 중재기(103)는 첫 번째부터 N/L번째 입력 포트들간에 발생하는 충돌만 해결하면 된다. 마찬가지 이유로 다음 N/L개의 입력 포트들에 대해서도 독립적으로 중재를 할 수가 있고, 그 기능을 다음 중재기들이 담당하게 된다.k번째 중재기(103)는 N(k-1)/L+1에서 Nk/L번째 입력 포트들에서 제어 신호선(108)을 통해 전송 요구 정보를 받아 중재 처리를 하고 그 결과에 따라 셀 전송 허가 여부를 N/L개의 입력 포트에 알려주고, N/L개의 입력 버퍼와 모든 출력 포트의k번째 버퍼를 연결하는k번째 크로스바 XB-k(107)를 세팅하게 된다. 출력 버퍼는 크로스바를 통해 셀을 받으면 어떤 입력 포트를 통해 들어온 셀인지에 관한 정보와 QoS 클래스, flow정보 등에 기반해 입력 포트별, QoS 클래스별, 혹은 per-VC로 큐잉을 하게 되고 최종적으로 스케줄러(106)는 QoS를 고려해 셀들을 스케줄링 하게 된다. 스케줄링 알고리즘으로는 기존의 WFQ를 비롯해서 여러 가지 공평한 스케줄링 알고리즘들이 사용될 수 있다.
다음은 여러 개의 독립적인 크로스바 스위치 소자와 중재기를 사용함으로써 어떤 이득을 얻을 수 있는지 살펴보도록 하자.
k번째 중재기는 N개의 입력 버퍼 가운데 N(k-1)/L+1번째 입력 버퍼부터 Nk/L번째 입력 버퍼까지 N/L개의 입력 버퍼로부터 전송 요구 벡터를 받는다. l번째 입력 버퍼가 중재기로 보내는 요구 벡터 Vl와 같은 형태를 갖는데, 여기에서 Rl,n은 l번째 입력 버퍼에서 가상 출력 큐 Ql,n이 적어도 하나 이상의 셀을 가지고 있을 때만 1이 되고, 셀을 하나도 가지고 있지 않은 경우에는 0이 된다.
도 2는 N ×M 입력 버퍼형 스위치의 경우에 각 입력 버퍼들이 보내는 전송 요구 정보의 행렬(R)을 나타낸다. 각 입력 버퍼에서 보내는 요구 벡터들이 모여서
에 따라 만들어진 요구 행렬의 형태가 도 2와 같다. 내부 속도 상승(speed-up)을 하지 않는 입력 버퍼형 스위치의 경우에는 어떤 중재 알고리즘을 사용하느냐에 상관없이 한 셀타임에 하나의 입력 포트에서는 하나의 셀밖에 나올 수 없고 하나의 출력 포트로는 하나의 셀 밖에 입력될 수 없기 때문에 중재기가 중재 절차를 수행한 결과 최종적으로 허가를 받는 요구(request)는 각 행에 대해서도 최대 한 개밖에 존재할 수 없고, 각 열에 대해서도 최대 한 개밖에 존재할 수 없다.
도 3은 NxM 크기의 가로 분할형 크로스바 스위치에서크로스바 소자를L개 사용했을 때 요구 행렬의 형태를 나타낸다.
이 요구 행렬을 도 2의 입력 버퍼형 스위치에서 중재를 하는데 필요한 요구 행렬의 형태와 비교해 보면N/L개의 행마다 구분선이 들어가는 차이점이 있는 것을 확인할 수 있다. 이와 같이 구분선을 넣는 이유는 앞에서도 언급하였듯이 처음N/L개의 입력포트는 나머지N-N/L개의 입력 포트와 전혀 상관없이 셀을 전송하게 되고, 마찬가지로 그 다음N/L개씩의 입력 포트들도 나머지N-N/L개의 입력 포트들과 전혀 상관없이 셀을 전송하기 때문에 입력 포트들을 순서대로N/L개씩 그룹을 지어서 각 그룹을 다른 그룹에 상관없이 완전히 독립적으로 중재할 수 있기 때문이다.
따라서, 도 3에서 N(k-1)/L+1번째 행부터 Nk/L번째 행에 속하는 전송 요구들의 집합을 k번째 그룹(Gk)이라고 하면 k번째 그룹(Gk)에 대한 중재는 다른 그룹들에 속하는 전송 요구들에 전혀 상관없이 이루어질 수 있다. 도 2와 같이 기존의 입력 버퍼형 스위치에서는 하나의 열에 하나의 허가만이 존재할 수 있으므로 같은 열에 속하는 N개의 요구까지 경쟁을 하게 되는 경우가 발생할 수 있지만, 도 3과 같이 다중 출력 버퍼를 갖는 스위치 구조에서는 하나의 열에L개까지의 허가가 주어질 수 있고, 같은 열에서 경쟁하는 전송 요구의 개수도 최대N/L개로 줄어들기 때문에기존의 입력 버퍼형 스위치보다 허가를 받을 확률이 높아지게 된다는 것을 쉽게 알 수 있다. 하나의 출력 버퍼 입구에서 발생하는 충돌률이 기존의 입력 버퍼형 스위치의 출력단에서 발생하는 충돌률보다 낮기 때문에 실제로 셀이 겪는 출력단 충돌률은 줄어들게 된다.
따라서, 입력단에 있는 셀은 더 쉽게 출력단 버퍼로 전달되고 이처럼 입력단에 있는 셀이 출력단 버퍼로 잘 전달이 되면 입력 버퍼형 스위치보다 입력 버퍼에 남아있는 셀의 수가 줄어들게 되므로 입력 충돌(input contention)도 줄어들게 된다. 전체적으로 보았을 때 입력 충돌과 출력 충돌이 모두 줄어주는 효과가 있기 때문에 다중 출력 버퍼를 둔 입출력 버퍼형 스위치는 기존의 입력 버퍼형 스위치 보다 좋은 성능을 나타내게 된다.
L개의 독립인 중재기에는 다음과 같은 중재 알고리즘이 사용될 수 있다. 먼저 도 4는 동기화된 접힌 파면 중재방식(SWWFA: Synchronized Wrapped Wave-Front Arbitration)을 설명하기 위한 도면이다. 도 3에서 하나의 그룹에 대한 중재과정은 그 원소가 '1' 또는 '0'인행렬에서 각 행과 각 열에 많아야 하나를 넘지 않도록 '1'을 택하는데, 선택된 '1'의 개수가 가능한 많도록 선택하는 과정이라고 할 수 있다. 각 행에 대해서 또는 각 열에 대해서 하나의 '1'을 선택하기 위해서는 전송 요구 신호들을 살펴보아야 하는데, 도 4에서 R1,1과 R1,2에 대해서는 동시에 전송 허가 여부를 판단할 수 없다. 첫 행에 대해서도 전체 허가의 개수가 한 개를 넘지 않아야 하기 때문에 R1,1과 R1,2가운데 어느 한 요구가 허가를 받으면 다른 요구는 허가를 받을 수 없는 관계에 있다. 이와 같이 R1,1과 R1,2에 대해 동시에 허가 여부를 판단할 수 없는 이유는 이 두 전송 요구가 같은 행에 있기 때문이다. 같은 열에 있는 전송 요구들에 대해서도 마찬가지 이유로 동시에 허가 여부를 판단할 수 없고, 하나씩 차례로 허가 여부를 판단해야 한다.
그런데, 도 4에서 같은 행에 속하지도 않고 같은 열에 속하지도 않는 R1,1과 R2,2의 경우에는 R1,1이 허가를 받느냐 받지 못하느냐가 R2,2의 허가 여부 판정에 아무 영향을 미치지 않는다. 마찬가지로 R2,2를 허가하느냐 허가하지 않느냐가 R1,1의 허가 여부 판정에 아무런 영향을 미치지 않는다. 단지, R1,1혹은 R2,2의 허가 여부를 판정할 때는 자기가 속한 행 또는 열에 먼저 허가를 받은 요구가 있는지만 고려할 뿐이다. 이처럼 같은 행에도 속하지 않고 같은 열에도 속하지 않는 요구들의 허가 여부 판정은 독립적으로 이루어질 수 있기 때문에 동시에 수행해도 상관이 없다.
도 4에서 괄호속의 번호는 각 요구들에 대해 허가 여부를 판단하는 순서를 나타낸다.
처음에는 첫 번째 그룹(G1)에서 대각선 방향에 있는 전송 요구들에 대해 병렬적으로 허가 여부를 판단한다. 처음 시작할 때는 이전에 허가가 존재하지 않기 때문에 요구값이 '1'이면 그 요구에 허가를 주게 되고, 그 요구가 속한 행과 열에 더 이상 허가를 주지 않기 위해서 각 행과 각 열에 현재 중재단계에서 허가가 발생했는지를 기억하는 레지스터를 두고 허가가 발생하는 즉시 해당되는 행(i)의 레지스터(RR[i])와 해당되는 열(j)의 레지스터(CR[j])에 '1'을 저장해 허가 발생을 기억시킨다.
다음 단계에서는 도 4에서 (2)번 빗금상의 요구들에 대해 허가 여부를 판단하게 되는데, 요구값이 '1'이고 자신이 속하는 행의 레지스터와 열의 레지스터 값이 모두 '0'일 때만 그 요구에 허가를 주게 되고, 세 조건이 모두 만족되지 않으면 그 요구에 허가가 주어지지 않는다. (2)번 빗금상의 어떤 요구에 허가가 주어지는 경우에는 그 요구가 속하는 행의 레지스터와 열의 레지스터를 '1'로 세팅한다. 이와 같은 방법으로 괄호 속의 번호순으로 중재 과정을 진행하면 N/L ≤M인 경우M번만에 중재과정이 끝나게 된다. N/L > M인 경우에는 N/L 번만에 중재가 끝나게 된다. 중재가 끝나면 모든 행 레지스터(RR[·])와 열 레지스터(CR[·])를 '0'으로 세팅하고 다음 중재과정을 준비하게 된다. 중재를 시작하는 빗금상의 요구가 항상 높은 우선 순위를 갖게 되므로 중재를 할 때 매번 시작하는 위치를 바꾸게 된다. 시작하는 위치는 도 4에서 괄호속의 숫자가 증가하는 방향으로 계속해서 순환할 수도 있고, 감소하는 방향으로 순환할 수도 있다.
지금까지는 첫 번째 그룹(G1)에 대한 중재 과정만을 설명했는데 앞에서도 설명했듯이 각 그룹의 중재 과정이 완전히 독립적으로 이루어질 수 있기 때문에 다른 그룹에 대해서도 첫 번째 그룹에서 설명한 방법과 동일한 방법으로 중재가 이루어질 수 있다. 도 4는 마지막 그룹까지 모든 그룹이 첫 번째 그룹과 동일한 방법으로 중재를 하는 방법을 나타내고 있다. 그런데, 각 그룹의 시작점을 모든 그룹에 대해서 하나로 통일해서 같은 위치의 사선에서 시작할 수도 있지만, 각 그룹마다 중재과정을 시작하는 위치를 모두 달리할 수도 있다. 모든 그룹의 중재 시작선을 통일한 경우가 제 4도와 같으며, 모든 그룹의 중재 시작선을 모두 달리한 경우가 도 5와 같다.
도 5와 같이 모든 그룹의 중재 시작선을 서로 다르게 해서 중재하는 방식을 비동기화된 접힌 파면 중재방식(DWWFA: Desynchronized Wrapped Wave-Front Arbitration)이라고 한다. 도 5에서 M ≥N인 경우에 첫 번째 그룹에 대한 중재 시작 위치는 처음 N/L열에 걸치는 사선이 되며, 두 번째 그룹에 대한 중재 시작 위치는 다음 N/L열에 걸치는 사선이 되고,k번째 그룹에 대한 중재 시작 위치는 N(k-1)/L+1번째부터 Nk/L번째 열에 걸치는 사선이 되기 때문에 어떤 사선도 같은 열을 공유하지 않게 된다. MN인 경우에는 모든 시작선이 하나의 열도 공유하지 않도록 만들 수는 없다. 비동기화된 접힌 파면 중재방식은 각 그룹의 중재 시작 위치가 어긋나 있다는 점만 동기화된 접힌 파면 중재 방식과 다르고, 그 이외의 중재 과정은 동기화된 접힌 파면 중재 방식과 동일하다.
모든 그룹의 중재 과정 시작 위치를 같은 열들에 속하도록 통일하면 부하가 높은 경우 셀들이 같은 출력포트 쪽으로 몰리는 현상이 발생하게 된다. 그렇지만 각 그룹의 중재 과정 시작 위치를 모두 어긋나게 하면 부하가 높은 경우에 셀들이 여러 출력포트로 고르게 분배가 될 수 있다. 동시에 같은 출력 포트 방향으로 셀을 몰아주는 것 보다 가능한 여러 출력 포트로 셀이 분배되도록 하면 전체적으로 출력 포트의 이용률(utilization)을 높일 수도 있다.
지금까지는 가로로 분할한 크로스바 스위치에 대해서 살펴보았고, 다음은 세로로 분할한 크로스바 스위치에 대해서 살펴본다.
도 6은E개의크로스바 스위치 소자로 이루어진 NxM 세로 분할 크로스바 스위치의 구조를 보여준다. 각 입력 포트(601)는E개의 버퍼(602)를 가지고, 크로스바 스위치 소자(606)당 중재기(605)가 하나씩 할당된다. 기본적으로 동작이 입력 버퍼형 스위치와 유사하기 때문에 내부 속도 상승(speed-up)을 하지 않는 경우에는 각 출력 포트에 출력 버퍼가 존재하지 않으나, 내부 속도 상승을 하는 경우에는 한 셀타임동안 하나 이상의 셀이 하나의 출력 포트로 전달이 될 수 있기 때문에 각 출력 포트에 버퍼(607)가 존재하게 된다. 출력 버퍼 내에서는 셀을 그 셀이 통과한 입력 포트 번호에 따라 구별해서 저장할 수 있고, 클래스별로 저장할 수도 있으며, 연결별로 구별해서 저장할 수도 있다(608). 스케줄러(609)는 연결된 버퍼에 저장된 셀들을 QoS를 고려해서 순서를 정해 내보내는 역할을 한다.
각 입력 포트에 입력되는 셀은 향하는 출력 포트 번호에 따라 해당되는 가상 출력 큐(603)에 저장되는데, 기존 입력 버퍼형 스위치와 다르게 가상 출력 큐가 하나의 버퍼에 존재하는 것이 아니라E개의 버퍼에 나뉘어 존재하게 된다. M개의 가상 출력 큐(603)들 가운데 처음 M/E개는 각 입력 포트의 첫 번째 버퍼(602)에 존재하고, 다음 M/E개는 두 번째 버퍼에 존재하며, 그 이후로도 M/E개씩 그 다음 버퍼에 할당된다. i번째 입력 포트(601) 셀이 도착하면 분배기(604)는 그 셀의 목적지 출력 포트 번호를 파악해서 j번째 출력 포트로 향하는 셀을번째 버퍼(602)인로 보내게 되고, 도착한 셀은 그 버퍼에 있는 가상 출력 큐Qi,j에 저장된다. 각 입력 포트(601)의k번째 버퍼(602)는k번째 크로스바 스위치 소자(606) XB-k에 연결이 되고, 각 입력 포트의k번째 버퍼로는 M(k-1)/E+1번부터 Mk/E번 출력 포트로 향하는 셀들만 저장이 되기 때문에k번째 크로스바 스위치 소자는 다른 크로스바 스위치 소자에 전혀 무관하게 M(k-1)/E+1번부터 Mk/E번 출력 포트로 향하는 셀들만 스위칭하면 된다. 이처럼 크로스바 스위치를 세로로 분할해서 사용하는 경우에는 각 크로스바 스위치 소자(606)에 연결된 중재기(605)들이 고려해야 하는 출력포트의 개수가 줄어들게 된다. 즉, 하나의 크로스바 스위치를 사용해서 N개의 입력을 M개의 출력으로 스위칭하는 경우에는 크로스바 스위치의 각 입력단에서 M개의 가상 출력 큐가 셀을 보내고자 경쟁하게 되는데, 도 6과 같이 크로스바를 세로로 E개로 분할하게 되면 각 크로스바 스위치의 입력단에서 경쟁하는 가상 출력 큐의 개수가 M에서 M/E로 감소하기 때문에 셀의 충돌이 줄어들게 되어 기존의 입력 버퍼형 스위치에 비해 좋은 성능을 보이게 된다.
지금까지 가로 분할형 크로스바 스위치와 세로 분할형 크로스바 스위치에 대해서 살펴보았고, 마지막으로 가로와 세로 방향으로 동시에 분할하는 좀 더 일반적인 분할형 크로스바 스위치에 대해서 살펴본다.
도 7은LE개의크로스바 스위치 소자로 이루어진 일반적인 N ×M 분할형 크로스바 스위치의 구조를 보여준다.
도 7을 살펴보면, 각 입력 포트(701)는E개의 버퍼(702)를 가지고, 크로스바 스위치 소자(706)당 중재기(705)가 하나씩 할당되며, 각 출력 포트는L개의 분리된버퍼(707)를 가진다. N ×M 크기의 하나의 크로스바 스위치를 가로로L등분하고, 다시 세로로 E등분하면 LE개의크로스바 스위치 소자(706)가 나오게 된다. 이 때 i번째 행의 j번째 열에 있는 크로스바 스위치 소자를 XB-ij라고 하면 XB-ij는 N(i-1)/L+1번부터 N i/L번까지의 입력 포트와 M(j-1)/E+1번부터 M j/E번까지의 출력 포트를 연결해주게 된다.
좀 더 자세하게는 N(i-1)/L+1 ~ N i/L번 입력 포트의 j번째 버퍼(702)들과 M(j-1)/E+1 ~ M j/E번 출력 포트의 i번째 버퍼(707)들을 연결해 주게 된다. 특별한 경우로E=1인 경우, 즉, 세로 방향으로 분할하지 않은 경우는 제 1도의 가로 분할형 크로스바 스위치와 동일한 구조가 되고,L=1인 경우, 즉, 가로 방향으로 분할하지 않은 경우는 도 6의 세로 분할형 크로스바 스위치와 동일한 구조가 된다.
입력단에서 각 버퍼로의 셀의 분배는 도 6의 세로 분할형 크로스바 스위치에서와 동일하게 이루어진다.k번째 입력 포트(701)에 셀이 도착하면 분배기(704)는 그 셀의 목적지 출력 포트 번호를 파악해서l번째 출력 포트로 향하는 셀을번째 버퍼(702)인로 보내게 되고, 도착한 셀은 그 버퍼에 있는 가상 출력 큐 Qk,l에 저장된다. 이 셀은번째 행의번째 열에 있는 중재기(705)를 통해서 통과 허락(grant) 신호를 받으면 그 중재기가 관리하는 크로스바 스위치 소자(706)를 통해서l번째 출력 포트의번째 버퍼(707)로 셀이 전달되고, 그 버퍼내에서 셀이 통과한 입력 포트 번호(k)에 따라서 논리적인 큐 OQl,k(708)에 저장된다. 입력 포트 번호에 따른 논리적인 큐 내에서 다시 클래스와 연결 정보에 따라 더 자세하게 구별해서 큐잉을 할 수 있으며, 스위치의 최종단에 있는 스케줄러(709)는 입력 포트별 혹은 서비스 클래스별, 혹은 연결별로 저장되어 있는 셀들을 QoS를 고려해서 스케줄링하게 된다.
도 7과 같이 하나의 크로스바 스위치 대신LE개의크로스바 스위치 소자를 사용하고, 각 입력단에 E개의 버퍼를 두고, 각 출력단에 L개의 버퍼를 두어, 각 크로스바 스위치 소자가 각 입력단 또는 각 출력단에서 사용하는 버퍼도 완전하게 분리해 버리면, 서로 다른 크로스바 스위치 소자를 통해서 전달되는 셀들은 각 입력 포트(701)에 들어와서 분배기(704)를 통해 서로 다른 버퍼(702)로 나뉘어 저장되는 순간부터 출력단에서 스케줄러(709)를 통해 스위치를 빠져나갈 때까지 완전히 서로 독립인 분리된 경로를 통해서 움직이게 된다.
따라서,LE개의 각 크로스바 스위치 소자들은 다른 스위치 소자에 전혀 상관없이 동작할 수가 있게 된다. N ×M 스위칭을 위해 하나의 크로스바 스위치를 사용할 때는 하나의 중재기가 N에서 M으로의 매칭 문제를 풀어야 하지만, 도 7에서와 같이 LE개의 크로스바 스위치 소자들을 사용하면 하나의 N -> M 매칭 문제 대신에 LE개의 서로 독립인 (N/L) -> (M/E) 매칭 문제를 풀면 된다. 이는 하나의 크로스바 스위치 소자의 입력단에서 경쟁하는 가상 출력 큐의 개수가 M에서 M/E로 줄어들고, 출력단에서 경쟁하는 입력단의 개수가 N에서 N/L로 줄어듦을 의미하기 때문에 셀간 경쟁이 크게 줄어들게 되고, 이는 곧 입력 버퍼에 있는 셀들이 출력 버퍼로 전달될 확률을 높여주게 된다.
이상에서와 같이 본 발명에 의한 분할형 크로스바 스위치에 따르면 다음과 같은 이점이 있다.
출력 버퍼형 스위치는 고속 메모리를 요구한다는 단점이 있고, 입력 버퍼형 스위치는 수율이 낮은 단점을 극복함으로써 최근에 많이 사용되고 있다. 그러나, 입력 버퍼형 스위치는 출력 버퍼형 스위치와 달리 입력단에서 셀 충돌이라는 근본적인 제약을 더 가지고 있기 때문에 출력 버퍼형 스위치만큼 성능이 나올 수 없는 한계를 가지고 있다.
첫째, 본 발명은 하나의 크로스바 스위치 대신에 작은 크기의 크로스바 스위치 여러 개를 사용함으로서 입력 버퍼형 스위치의 한계를 극복할 수 있다.
하나의 크로스바 스위치를 가로로L개로 나누고, 각 출력 포트마다 버퍼를L개 두면 하나의 출력을 두고 모든 입력 포트가 경쟁하는 구조에서 각 버퍼별로 입력 포트의 subset들이 경쟁하는 구조가 되기 때문에 입력 포트간 경쟁률이 떨어져서 입력 포트에서 출력 버퍼로 셀이 전달되는 확률이 기존의 입력 버퍼형 스위치에서 각 입력 포트에서 출력 포트로 셀이 전달되는 확률보다 높아지게 된다.
하나의 크로스바 스위치를 세로로E개로 나누고, 각 입력 포트마다E개의 분리된 버퍼를 두면 각 입력 포트에서 M개의 가상 출력 큐들이 하나의 입력 관문을 두고 경쟁하는 구조에서 입력 관문의 개수를E개로 늘여 M/E개의 가상 출력 큐들이 하나의 입력 관문을 놓고 경쟁하는 구조가 되기 때문에 가상 출력 큐들간의 경쟁률이 떨어져서 입력 포트에서 출력 버퍼로 셀이 전달되는 확률이 기존의 입력 버퍼형스위치에서의 확률보다 높아지게 된다.
하나의 크로스바 스위치 대신에LE개의크로스바 스위치 소자를 사용하게 되면, 각 크로스바 스위치 소자의 입력단에서 경쟁하는 가상 출력 큐의 개수가 M에서 M/E로 줄어들고 동시에 하나의 출력단을 두고 경쟁하는 입력단의 개수도N에서N/L로 줄어들기 때문에 가로 또는 세로 방향으로만 분할하는 경우에 비해 충돌률이 더 줄어들게 된다. 이와 같이 하나의 크로스바 스위치를 가로 또는 세로 또는 가로, 세로 방향으로 동시에 분할하게 되면 입력단 또는 출력단에서 셀의 경쟁률이 낮아져 입력단에서 출력단으로 셀이 전달될 확률이 높아지기 때문에 입력 버퍼형 스위치보다 더 좋은 수율을 나타내게 된다.
둘째,본 발명은 스위치의 크기가 N ×M인 경우 필요로 하는 버퍼의 개수가N또는 M의 상수배(L또는E) 수준이고, 입력 링크 속도보다 크게 빠른 메모리를 필요로 하지 않으며, 입력 버퍼들과 출력 버퍼들을 연결하는 내부 연결선의 개수도 기존의 크로스바 스위치에 필요한 연결의 수와 비슷하기 때문에 고속화에 적합하다.

Claims (7)

  1. 입력 포트를 통해 도착하는 셀을 출력 포트별로 구별해서 가상출력큐(VOQ) 형태로 저장하고, 각 가상출력큐에 대해 셀의 유무를 파악하여 셀이 있는 경우 전송 요구('1'), 셀이 없는 경우 전송 비요구('0')의 정보를 담은 요구 벡터를 보내는 입력 버퍼와;
    입력 포트와 출력 포트의 개수가 N,M 일 때 i번째 소자가 N(i-1)/L+1번부터 Ni/L번까지의 입력 포트를 모든 출력 포트의 i번째 버퍼로 연결해주는L개의크로스바 스위치 소자와;
    상기 각 크로스바 스위치 소자당 하나씩 할당되어N/L개의 입력에서L개의 출력으로의 매칭문제를 해결하고 그 결과에 따라 크로스바 스위치 소자를 세팅하는 중재기와;
    상기 크로스바 스위치 소자를 통과한 셀을 그 셀이 거쳐온 입력 포트 정보에 따라서, 또는 그 셀이 속하는 트래픽의 클래스에 따라서, 또는 그 셀이 속하는 flow에 따라 구별해서 저장 및 관리하는 출력 버퍼와;
    상기 각 출력 포트마다 하나씩 할당되어L개의 출력 버퍼를 관리하고L개의 출력 버퍼에 속하는 셀들을 QoS를 고려해서 스케줄링하는 스케줄러;를 포함하여
    상기의 소자로서 고정 길이의 셀을 받아 원하는 출력포트 방향으로 보내주는 역할을 하는 것을 특징으로 하는 분할형 크로스바 스위치.
  2. 청구항 1에 있어서,
    각 행에 대해서 허가 받은 요구가 있는지 없는지를 기억하는 레지스터(RR[])와;
    각 열에 대해서 허가 받은 요구가 있는지 없는지를 기억하는 레지스터(CR[])와;
    상기의 소자로서 입력 포트의 개수를 N, 출력 포트의 개수를 M, 출력 포트 당 버퍼의 개수를 L이라 하고, N(k-1)/L+1번째 입력 버퍼부터 Nk/L번째 입력 버퍼까지의 집합을 k번째 그룹이라고 했을 때 k번째 그룹에 속하는 입력 버퍼들의요구 행렬에 대해서 min(N/L,M)개의 모두 서로 다른 행과 열에 속하는 요구의 셋을 일단 선택해서 그 셋부터 시작해서 전송을 허가할 요구들을 찾고, 허가할 요구를 찾은 경우 그 요구가 속하는 행에 대한 레지스터에 허가가 발생했음을 기억시키고, 그 요구가 속하는 열에 대한 레지스터에 허가가 발생했음을 기억시킨 후 다음부터 계속해서 나머지 요구들 가운데 독립인 min(N/L,M)개의 요구 집합을 선택해서 위의 중재 과정을 NM/L/min(N/L,M)번 반복해서 최종적으로 현재 셀타임에 전송을 허가할 요구를 결정하고, 다음 셀타임에는 중재를 시작하는 요구의 셋을 이전 셀타임과 다르게 하는k번째 중재기;를 더 포함하는 것을 특징으로 하는 분할형 크로스바 스위치.
  3. 청구항 1에 있어서,
    k번째 그룹에 대해 셀 충돌을 해결하는k번째 중재기()와;
    상기의 소자로서 매 셀타임마다 모든 중재기에서 중재를 시작하는 요구의 집합을 요구 행렬의 같은 열에서 취하는L개의 중재기;를 더 포함하는 것을 특징으로 하는 분할형 크로스바 스위치.
  4. 청구항 1에 있어서,
    k번째 그룹에 대해 셀 충돌을 해결하는k번째 중재기()와;
    상기의 소자로서 매 셀타임마다 각 중재기에서 중재를 시작하는 요구의 집합이 요구 행렬에서 서로 공유하는 열(column)이 없이 항상 엇갈리도록 하는L개의 중재기;를 더 포함하는 것을 특징으로 하는 분할형 크로스바 스위치.
  5. 셀이 도착하면 그 셀이 가고자 하는 출력 포트 번호(j)를 보고번째 버퍼로 보내주는 분배기와;
    각 입력 포트별로E개가 존재하며 입력 포트를 통해 도착한 셀을 출력 포트별로 구별해서 가상 출력 큐 형태로 저장하고, 매 셀타임마다 요구 벡터를 중재기로 보내는 버퍼와;
    입력 포트와 출력 포트의 개수가N, M일 때 i번째 소자가 모든 입력 포트의 i번째 버퍼를 M(i-1)/E+1번부터 M i/E번까지의 출력 포트로 연결해주는E개의크로스바 스위치 소자와;
    상기 각 크로스바 스위치 소자당 하나씩 할당되어N개의 입력에서M/E개의 출력으로의 매칭문제를 해결하고 그 결과에 따라 크로스바 스위치 소자를 세팅하는중재기;를 포함하여
    상기의 소자로서 고정 길이의 셀을 받아 원하는 출력포트 방향으로 보내주는 역할을 하는 것을 특징으로 하는 분할형 크로스바 스위치.
  6. 셀이 도착하면 그 셀이 가고자 하는 출력 포트 번호(j)를 보고번째 버퍼로 보내주는 분배기와;
    각 입력 포트별로E개가 존재하며 입력 포트를 통해 도착한 셀을 출력 포트별로 구별해서 가상 출력 큐 형태로 저장하고, 매 셀타임마다 요구 벡터를 중재기로 보내는 버퍼와;
    입력 포트와 출력 포트의 개수가N, M일 때 i번째 소자가 모든 입력 포트의 i번째 버퍼를 M(i-1)/E+1번부터 M i/E번까지의 출력 포트로 연결해주는E개의크로스바 스위치 소자와;
    상기 각 크로스바 스위치 소자당 하나씩 할당되어N개의 입력에서M/E개의 출력으로의 매칭문제를 해결하고 그 결과에 따라 크로스바 스위치 소자를 세팅하는 중재기와;
    내부 속도 상승(internal speed-up)을 하는 경우에 혹은 품질을 고려한 스케줄링을 하기 위해서 크로스바 스위치를 통과한 셀을 그 셀이 거쳐온 입력 포트 정보에 따라서, 또는 그 셀이 속하는 트래픽의 클래스에 따라서, 또는 그 셀이 속하는 flow에 따라서 구별해서 저장 및 관리하는 출력 버퍼와;
    상기 각 출력 포트마다 하나씩 할당되어 출력 버퍼에 저장된 셀들을 QoS를고려해서 스케줄링하는 스케줄러;를 포함하여
    상기의 소자로서 고정 길이의 셀을 받아 원하는 출력포트 방향으로 보내주는 역할을 하는 것을 특징으로 하는 분할형 크로스바 스위치.
  7. 셀이 도착하면 그 셀이 가고자 하는 출력 포트 번호(j)를 보고번째 버퍼로 보내주는 분배기와;
    각 입력 포트별로E개가 존재하며 입력 포트를 통해 도착한 셀을 출력 포트별로 구별해서 가상 출력 큐 형태로 저장하고, 매 셀타임마다 요구 벡터를 중재기로 보내는 버퍼와;
    입력 포트와 출력 포트의 개수가N, M일 때k()번째 행의l()번째 열에 있는 소자가 N(k-1)/L+1번부터 N k/L번까지의 입력 포트의l번째 버퍼들을 M(l-1)/E+1번부터 M l/E번까지의 출력 포트의k번째 버퍼들과 연결해주는LE개의크로스바 스위치 소자와;
    상기 각 크로스바 스위치 소자당 하나씩 할당되어N/L개의 입력에서M/E개의 출력으로의 매칭문제를 해결하고 그 결과에 따라 크로스바 스위치 소자를 세팅하는 중재기와;
    상기 각 출력 포트마다L개씩 할당되어 크로스바 스위치를 통과한 셀을 그 셀이 거쳐온 입력 포트 정보에 따라서, 또는 그 셀이 속하는 트래픽의 클래스에 따라서, 또는 그 셀이 속하는 flow에 따라서 구별해서 저장 및 관리하는 출력 버퍼와;
    상기 각 출력 포트마다 하나씩 할당되어L개의 출력 버퍼를 관리하고L개의 출력 버퍼에 속하는 셀들을 QoS를 고려해서 스케줄링하는 스케줄러;를 포함하여
    상기의 소자로서 고정 길이의 셀을 받아 원하는 출력포트 방향으로 보내주는 역할을 하는 것을 특징으로 하는 분할형 크로스바 스위치.
KR10-2001-0084875A 2001-12-26 2001-12-26 다중 입출력 버퍼를 둔 분할형 크로스바 스위치 KR100404376B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0084875A KR100404376B1 (ko) 2001-12-26 2001-12-26 다중 입출력 버퍼를 둔 분할형 크로스바 스위치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0084875A KR100404376B1 (ko) 2001-12-26 2001-12-26 다중 입출력 버퍼를 둔 분할형 크로스바 스위치

Publications (2)

Publication Number Publication Date
KR20030054664A KR20030054664A (ko) 2003-07-02
KR100404376B1 true KR100404376B1 (ko) 2003-11-05

Family

ID=32213295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0084875A KR100404376B1 (ko) 2001-12-26 2001-12-26 다중 입출력 버퍼를 둔 분할형 크로스바 스위치

Country Status (1)

Country Link
KR (1) KR100404376B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030091601A (ko) * 2002-05-24 2003-12-03 손승일 가변길이 패킷 데이터의 읽기 및 쓰기를 지원하는 voq블록의 회로
US8050280B2 (en) 2004-12-02 2011-11-01 Electronics And Telecommunications Research Institute Efficient switching device and method for fabricating the same using multiple shared memories
KR100641633B1 (ko) * 2004-12-02 2006-11-06 한국전자통신연구원 다수의 공유 저장장소를 이용한 효율적인 스위칭 장치 및그 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0715442A (ja) * 1993-03-03 1995-01-17 Nippon Telegr & Teleph Corp <Ntt> Atmスイッチ及びatmスイッチング方法
JPH10117196A (ja) * 1996-10-09 1998-05-06 Nippon Telegr & Teleph Corp <Ntt> Atmスイッチ
JPH10243000A (ja) * 1997-02-19 1998-09-11 Telefon Ab L M Ericsson スイッチングフロー制御
JPH11163882A (ja) * 1997-11-28 1999-06-18 Nippon Telegr & Teleph Corp <Ntt> Atmスイッチ
KR20020045276A (ko) * 2000-12-08 2002-06-19 박종섭 핫 스팟 트래픽용 교환기

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0715442A (ja) * 1993-03-03 1995-01-17 Nippon Telegr & Teleph Corp <Ntt> Atmスイッチ及びatmスイッチング方法
JPH10117196A (ja) * 1996-10-09 1998-05-06 Nippon Telegr & Teleph Corp <Ntt> Atmスイッチ
JPH10243000A (ja) * 1997-02-19 1998-09-11 Telefon Ab L M Ericsson スイッチングフロー制御
JPH11163882A (ja) * 1997-11-28 1999-06-18 Nippon Telegr & Teleph Corp <Ntt> Atmスイッチ
KR20020045276A (ko) * 2000-12-08 2002-06-19 박종섭 핫 스팟 트래픽용 교환기

Also Published As

Publication number Publication date
KR20030054664A (ko) 2003-07-02

Similar Documents

Publication Publication Date Title
US7525978B1 (en) Method and apparatus for scheduling in a packet buffering network
US7492782B2 (en) Scalable crossbar matrix switching apparatus and distributed scheduling method thereof
US5500858A (en) Method and apparatus for scheduling cells in an input-queued switch
US6856622B1 (en) Multicast cell scheduling protocol
US20040165598A1 (en) Switch fabric scheduling with fairness and priority consideration
US20030202517A1 (en) Apparatus for controlling packet output
US7889729B2 (en) System and method for reevaluating granted arbitrated bids
US6370148B1 (en) Data communications
US20040083326A1 (en) Switch scheduling algorithm
US20070081515A1 (en) Integrated circuit and method for avoiding starvation of data
WO2003017594A1 (en) Method and apparatus for weighted arbitration scheduling separately at the input ports and the output ports of a switch fabric
US7020131B1 (en) System and method for hierarchical switching
JP2002217962A (ja) 複数の入力ポートから出力ポートにデータパケットをスケジューリングする方法
US20240031304A1 (en) Virtual channel starvation-free arbitration for switches
US8145823B2 (en) Parallel wrapped wave-front arbiter
CN109379304B (zh) 一种用于降低低优先级包延迟的公平调度方法
KR100404376B1 (ko) 다중 입출력 버퍼를 둔 분할형 크로스바 스위치
US20050163127A1 (en) Buffer switch and scheduling method thereof
Qu et al. Designing fully distributed scheduling algorithms for contention-tolerant crossbar switches
Mhamdi A Partially Buffered Crossbar packet switching architecture and its scheduling
KR100508635B1 (ko) 확장형 크로스바 매트릭스 스위치 및 중재 방법
Nam et al. Decomposed crossbar switches with multiple input and output buffers
Pan et al. Hardware efficient two step iterative matching algorithms for VOQ switches
Liu et al. Scalable scheduling architectures for high-performance crossbar-based switches
Bharadwaj IP Router Architecture

Legal Events

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

Payment date: 20080930

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee