KR20010037202A - 다중선택형 2차원 라운드로빈 스케줄링방법 - Google Patents

다중선택형 2차원 라운드로빈 스케줄링방법 Download PDF

Info

Publication number
KR20010037202A
KR20010037202A KR1019990044590A KR19990044590A KR20010037202A KR 20010037202 A KR20010037202 A KR 20010037202A KR 1019990044590 A KR1019990044590 A KR 1019990044590A KR 19990044590 A KR19990044590 A KR 19990044590A KR 20010037202 A KR20010037202 A KR 20010037202A
Authority
KR
South Korea
Prior art keywords
matrix
input
transmission
values
column
Prior art date
Application number
KR1019990044590A
Other languages
English (en)
Other versions
KR100363890B1 (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 KR1019990044590A priority Critical patent/KR100363890B1/ko
Priority to US09/494,729 priority patent/US6633568B1/en
Publication of KR20010037202A publication Critical patent/KR20010037202A/ko
Application granted granted Critical
Publication of KR100363890B1 publication Critical patent/KR100363890B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/153ATM switching fabrics having parallel switch planes
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • 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/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/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/30Peripheral units, e.g. input or output ports
    • 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/3081ATM peripheral units, e.g. policing, insertion or extraction
    • 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/5679Arbitration or scheduling
    • 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
    • H04L2012/5683Buffer or queue management for avoiding head of line blocking

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

본 발명은 대용량의 스위칭 동작을 위해 다수의 스위칭 플랜(switching plane)을 사용하는 입출력버퍼형 스위치(input and output buffered switch)의 다중선택형 2차원 라운드로빈 스케줄링방법에 관한 것이다.
이러한 다중선택형 2차원 라운드로빈 스케줄링방법은, 각 입력버퍼모듈의 전송요청신호의 유무를 감지하여 m×m 전송요청행렬(r(i,j), i,j=1,...,m)을 구성하는 제 1 단계와; 검색순서(S=1,...,m)를 나타내는 m×m 검색형태행렬(d(i,j), i,j=1,...,m)을 설정하는 제 2 단계; 전송승인여부와 전송가능한 스위칭 플랜의 번호를 나타내는 m×m 전송응답행렬(a(i,j), i,j=1,...,m)의 요소값들을 0으로 초기화하는 제 3 단계; 상기 검색형태행렬의 검색순서(S)에 따라 전송요청행렬을 검사하여 전송요청이 있는 r(i,j)를 찾는 제 4 단계; 및 상기 제 4 단계에서 찾아진 각 (i,j)쌍에 대해 전송응답행렬의 i행 요소값들과 j열 요소값들이 1∼n 범위 내에서 서로 다른 값을 가지도록 a(i,j)값을 설정하는 제 5 단계를 포함하는 바, 상기 검색순서(S)를 1부터 m까지 1씩 증가시키면서 상기 제 4 단계 내지 제 5 단계를 반복 수행한다.

Description

다중선택형 2차원 라운드로빈 스케줄링방법 {Two-dimensional round-robin scheduling method with multiple selection in an input-buffered switch}
본 발명은 입력버퍼형 스위치의 셀 스케줄링방법에 관한 것으로서, 보다 상세하게 설명하면 대용량의 스위칭 동작을 위해 다수의 스위칭 플랜(switching plane)을 사용하는 입출력버퍼형 스위치(input and output buffered switch)의 다중선택형 2차원 라운드로빈 스케줄링방법에 관한 것이다.
입력버퍼형 스위치는 head of line(HOL) 봉쇄(blocking) 현상 때문에 출력버퍼형 스위치에 비해 스위치 성능이 나쁘다. 하지만, 출력버퍼형 스위치는, N×N 스위치일 때, 스위치 메모리 패브릭(switch memory fabric)이나 출력버퍼의 동작속도가 링크동작속도의 N배 이상 되어야 하므로 고속 링크에는 적합하지 않는다. 반면 입력버퍼형 스위치는 크로스바(crossbar) 또는 Batcher-banyan망 등의 스위치 패브릭의 동작속도가 링크동작속도와 동일하므로 고속 링크에 적합하다.
입력버퍼형 스위치의 HOL 봉쇄를 없애기 위한 구조의 하나로, 각 입력포트에 출력포트별로 여러 개의 버퍼를 사용하는 다중 입력버퍼(multiple input buffers) 구조가 있다. 이 구조에서는 N개의 입력포트가 있고 각 입력포트에 출력포트별로 N개의 큐가 접속되어 있으므로 총 N2의 입력 큐를 가지게 된다. 그러나, N×N 스위치는 N개의 입력포트만을 가지기 때문에 N2개의 큐 중에서 N개만을 선택하는 경합(contention) 문제가 발생한다. 이러한 경합을 제어하는 방법 중 대표적인 방법으로 PIM(parallel iterative method), SLIP, 2DRR(two-dimensional round-robin) 기법, 그리고 시간예약기법(time reservation method) 등이 있다.
PIM 기법은 전송요청(request), 전송선택(grant), 전송확정(accept)의 3단계 동작으로 이루어진다. 전송요청(request) 단계에서는 N2의 입력 큐에서 출력포트별로 전송요청을 보낸다. 전송선택(grant) 단계에서는 각 출력포트에서 자신이 받은 전송요청(request) 중에서 하나를 확률적으로 전송선택(grant)하고, 그 결과를 각 입력포트에 알려준다. 한편, 하나의 입력포트에서 동시에 여러 개의 전송선택(grant)을 각 출력포트에서 받을 수 있으므로 전송확정(accept) 단계에서는 입력포트가 받은 전송선택들(grants) 중 하나를 확률적으로 전송확정(accept)한다.
이와 같이 PIM 기법에서, 전송요청, 전송선택, 전송확정의 3단계 동작을 여러 번 반복하면 알고리즘의 성능향상이 있지만, 전송선택과 전송확정 단계에서 확률함수를 사용해야 하므로 고속동작이 어렵다는 문제점이 있다.
PIM의 확률동작을 없앤 것이 SLIP 기법이다. 이 SLIP 기법은 N. McKweon 등이 Electronics Letters, Vol. 29, No. 25, Dec. 1993,에 발표한 논문 ″Scheduling cells in an input-queued switch″에 상세하게 기술되어 있다. SLIP 기법은 PIM 기법의 전송선택 단계와 전송확정 단계에서 확률함수대신 라운드로빈(round-robin)을 이용한다. 즉, 확률적으로 여러 개의 전송요청들(requests) 중 하나를 선택하거나 여러 개의 전송선택들(grants) 중 하나를 선택하는 대신 라운드로빈 포인터(round-robin pointer)를 사용한다. 현재 라운드로빈 포인터 값이 i일 경우, 전송요청(request)을 보낸 입력포트 중에서 i번째 이후의 제일 처음 입력포트를 전송선택(grant)한다. 그리고, 그 전송선택(grant)이 입력포트에서 전송확정(accept) 되어야만 라운드로빈 포인터 값을 1증가 시킨다. 입력포트의 전송확정(accept) 동작에서도 라운드로빈 포인터가 사용된다.
그러나, 이러한 SLIP 기법은 여러 개의 출력포트들에서 동일한 입력포트를 전송선택(grant)하는 동기화(synchronization) 현상이 발생되는 문제점이 있다. 이러한 동기화(synchronization) 현상을 없애기 위해 SLIP 알고리즘을 여러 번 반복해야 하는 바, N×N 스위치에서 최악의 경우 N번을 반복해야 알고리즘이 완전히 수렴한다. 또한, SLIP 알고리즘에서는 입출력포트의 개수가 커지면 전송선택(grant) 단계와 전송확인(accept) 단계에서 검색해야 하는 전송요청(request)이나 전송선택(grant)의 개수가 증가한다. 즉, 입출력포트의 개수가 커지면 고속동작이 어렵다는 문제점이 있다.
2DRR 알고리즘은 R. O. LaMaire 등이 IEEE/ACM Trans. Networking., Vol. 2., No. 5., Oct. 1994에 발표한 논문 ″Two-dimensioanl round-robin schedulers for packet switches with multiple input queues″에 상세하게 기술되어 있다. 이 2DRR 기법은 N2의 전송요청을 N×N 2차원 행렬로 나타낸 전송요청행렬(request matrix)을 N 단계만에 검색하여 전송할 전송요청(request)을 결정한다. 2DRR 알고리즘은 SLIP 알고리즘이 N번 실행된 경우와 동일한 서비스 공평성을 갖는다.
상기 논문에서 기본 2DRR(basic 2DRR) 알고리즘은 패턴시퀀스행렬(pattern sequence matrix)에 정의된 검색순서대로 전송요청행렬을 검색하여, 전송할 전송요청(request)을 결정한다. 상기 논문에서 향상된 2DRR(enhanced 2DRR) 알고리즘은 특정한 트래픽(traffic) 패턴에 대해 공평성의 향상을 보인다. 2DRR 알고리즘은 입출력포트의 개수(N)가 커지면 알고리즘 수행에 필요한 단계 수도 커지므로 고속동작이 어렵다.
시간예약 기법은 H. Obara 등이 Electronics Letters, Vol. 28, No. 1, Jan. 1992 에 발표한 논문 ″Input and output queueing ATM switch architecture with spatial and temporal slot reservation control″ 에 상세하게 기술되어 있다. 이러한 시간예약 기법에는 입출력포트를 그룹핑한 입출력버퍼형(input and output buffered) 스위치구조가 사용된다. 입출력 포트를 몇 개씩 그룹핑해서 입력포트별 큐의 개수를 줄여서 통신경합(contention)에 사용되는 전송요청(request)의 개수를 줄인다. 그러나, 그룹핑된 입력포트별로 1개가 아닌 다수의 전송요청들(requests)을 선택하여 전송함으로써 스위치의 성능감소를 방지한다. 또한, 입력포트 그룹핑에 따른 통계적 다중화 이득(statistical multiplexing gain)으로 전체적인 스위치의 성능은 향상된다.
이 논문에서는 통신 경합 제어시에 시간정보를 이용한다. 각 입력버퍼모듈(input buffer module)에서 경합(contention) 제어 모듈로 전송요청(request)을 보내면, 경합제어모듈에서 전송허가시간을 각 전송요청(request)에 설정해서 입력버퍼모듈로 보낸다. 따라서, 대용량 스위치의 경우 시간정보의 전송량이 증가하여 고속동작이 어렵다. 또한, 1개의 크로스바만을 사용하여 입출력포트의 개수가 증가하면 크로스바의 입출력 링크의 개수가 증가하기 때문에 고속동작을 어렵게 한다.
한편, C. Lund 등은 시간예약 기법과 비슷하게 시간정보를 통신 경합 제어시 사용하면서 서비스의 공평성을 개선한 방법을 미합중국특허 제5517495호에서 제안하였다. 이 발명에서는 각 입력포트에서 각 출력포트별로 우선순위를 고려하여 가장 오래 대기한 셀의 전송을 통신 경합제어모듈에 전송요청(request)한다. 경합제어모듈에서는 이 중 가장 오래 대기한 셀에 대해 전송선택(grant)하고, 그 결과를 각 입력포트에 알린다. 각 입력포트에서는 동시에 여러 개의 출력포트에서 전송선택(grant)을 받을 수 있는데 그 중 가장 오래 대기한 셀에 대해서 전송확정(accept)한다. 상기 발명은 PIM 기법이나 SLIP 기법에 비해서 우수한 성능을 보이고 있지만, 전송선택(grant), 전송확정(accept)시에 시간정보를 전송해야 하고, 또 다수의 시간정보에서 최소값을 찾아야 하므로 고속동작이 불가능하다.
따라서, 본 발명은 상기와 같은 종래기술들의 문제점을 해결하기 위하여 안출된 것으로서, 다수의 스위칭 플랜을 사용하는 입출력버퍼형 스위치구조를 사용하고 고속으로 동작하며 하드웨어 구현이 쉬운 다중선택형 2차원 라운드로빈 스케줄링방법을 제공하기 위한 것이다.
도 1은 본 발명의 한 실시예에 따른 다수의 스위칭 플랜을 갖는 입출력버퍼형 스위치 구조를 도시한 구성도,
도 2는 본 발명에 적용되는 전송요청행렬(request matrix)의 일 예를 도시한 도면,
도 3은 본 발명에 적용되는 검색형태행렬(search pattern matrix)의 일 예를 도시한 도면,
도 4는 본 발명의 한 실시예에 따른 다중선택형 2차원 라운드로빈(2DRRMS) 스케줄링방법을 도시한 흐름도,
도 5는 도 4의 흐름도에 따른 다중선택형 2차원 라운드로빈 스케줄링의 한 실시예도,
도 6은 알고리즘 속도가 개선된 다중선택형 2차원 라운드로빈 스케줄링방법의 한 실시예도,
도 7 내지 도 10은 본 발명에 따른 다중선택형 2차원 라운드로빈 스케줄링방법의 효과를 설명하기 위하여 도시한 그래프도이다.
상기한 목적을 달성하기 위한 본 발명에 따르면, k개의 입력포트와 n개의 출력포트와 m개의 큐를 포함하는 입력버퍼모듈 m개와, n개의 입력포트와 k개의 출력포트와 m개의 큐를 포함하는 출력버퍼모듈 m개와, 상기 입력버퍼모듈 m개와 출력버퍼모듈 m개가 입출력단자들에 각각 연결되는 n개의 m×m 스위칭 플랜으로 이루어진 공간분할 스위칭모듈, 및 경합제어모듈을 포함한 통신시스템에서의 다중선택형 2차원 라운드로빈 스케줄링방법이 제공된다.
이러한 다중선택형 2차원 라운드로빈 스케줄링방법은, 상기 각 입력버퍼모듈의 전송요청신호의 유무를 감지하여 m×m 전송요청행렬(r(i,j), i,j=1,...,m)을 구성하는 제 1 단계와; 검색순서(S=1,...,m)를 나타내는 m×m 검색형태행렬(d(i,j), i,j=1,...,m)을 설정하는 제 2 단계; 전송승인여부와 전송가능한 스위칭 플랜의 번호를 나타내는 m×m 전송응답행렬(a(i,j), i,j=1,...,m)의 요소값들을 0으로 초기화하는 제 3 단계; 상기 검색형태행렬의 검색순서(S)에 따라 전송요청행렬을 검사하여 전송요청이 있는 r(i,j)를 찾는 제 4 단계; 및 상기 제 4 단계에서 찾아진 각 (i,j)쌍에 대해 전송응답행렬의 i행 요소값들과 j열 요소값들이 1∼n 범위 내에서 서로 다른 값을 가지도록 a(i,j)값을 설정하는 제 5 단계를 포함하며, 상기 검색순서(S)를 1부터 m까지 1씩 증가시키면서 상기 제 4 단계 내지 제 5 단계를 반복 수행하는 것을 특징으로 한다.
양호하게는, 상기 제 1 단계의 전송요청행렬은, i번째 입력버퍼모듈의 j번째 큐에 전송할 셀이 있으면 r(i,j)의 요소값이 1이고, 전송할 셀이 없으면 r(i,j)=0이다.
보다 양호하게는, 상기 제 5 단계는, 상기 제 4 단계에서 찾아진 모든 (i,j)쌍들에 대해, 스위칭 플랜의 번호를 나타내는 변수 k를 1로 초기화하는 제 1 소단계와, 전송응답행렬의 i행 요소값들과 j열 요소값들이 모두 k가 아니라는 k 조건을 만족하는 지를 판단하는 제 2 소단계, 상기 k 조건을 만족하면, a(i,j)=k로 설정하며 종료하는 제 3 소단계, 및 상기 k 조건을 만족하지 않으면서 k가 n보다 작으면 k를 1 증가시킨 후 상기 제 2 소단계로 진행하고, 상기 k 조건을 만족하지 않으면서 k가 n과 같으면 a(i,j)를 초기화상태로 유지하며 종료하는 제 4 소단계를 수행하는 단계이다.
보다 양호하게는, 상기 제 5 단계는, 상기 제 4 단계에서 찾아진 모든 (i,j)쌍들에 대해, 전송응답행렬의 i행 요소값들과 j열 요소값들이 모두 0이면, a(i,j)=1로 설정하는 제 1 소단계와, 전송응답행렬의 i행 요소값들과 j열 요소값들 중 1,...,k-1(k=1,2,...,n)이 적어도 1개 이상씩있고, 상기 i행 요소값들과 j열 요소값들이 모두 k(k=1,2,...,n)가 아니면, a(i,j)=k로 설정하는 제 2 소단계를 수행하는 단계이다.
보다 양호하게는, 상기 제 5 단계는, 전송응답행렬의 각 행에 위치한 요소값이 p값을 갖는 것을 나타내는 행지표벡터 Wp=(wp(1),...,wp(m)) (여기서 p=1,...,n 이다)와, 전송응답행렬의 각 열에 위치한 요소값이 p값을 갖는 것을 나타내는 열지표벡터 Cp=(cp(1),...,cp(m)) (여기서 p=1,...,n 이다)를 이용하여, a(i,j)를 설정하는 단계이다.
보다 양호하게는, 상기 제 5 단계는, 상기 행지표벡터(Wp, 여기서 p=1,...,n 이다)와, 열지표벡터(Cp, 여기서 p=1,...,n 이다)를 0으로 초기화하는 제 1 소단계와, 상기 제 4 단계에서 찾아진 모든 (i,j)쌍들에 대해 wk(i)=0, ck(j)=0 인 k 조건을 만족하는 지를 판정하는 제 2 소단계와, 상기 k 조건을 만족하면, a(i,j)=k, wk(i)=1, ck(j)=1로 설정하며 종료하는 제 3 소단계, 상기 k 조건을 만족하지 않으면서 k가 n보다 작으면 k를 1 증가시킨 후 상기 제 2 소단계로 진행하고, 상기 k 조건을 만족하지 않으면서 k가 n과 같으면 a(i,j)를 초기화상태로 유지하며 종료하는 제 4 소단계를 수행하는 단계이다.
이하, 첨부된 도면을 참조하면서 본 발명의 한 실시예에 따른 ″다중선택형 2차원 라운드로빈 스케줄링방법″을 보다 상세하게 설명하면 다음과 같다.
본 발명에서는 고속으로 동작하는 대용량 입력버퍼형 스위치에 적합한 다중선택형 2차원 라운드로빈 스케줄링방법을 제공한다. 본 발명에서는 H. Obara 등이 1992년 1월에 논문지 Electronics Letters, Vol. 28, No. 1에서 발표한 논문 ″Input and output queueing ATM switch architecture with spatial and temporal slot reservation control″ 에 공개된 입출력버퍼형 스위치 구조를 사용한다.
그러나, 상기한 논문에서는 단일 스위칭 플랜을 사용하였으나, 본 발명에서는 복수개의 스위칭 플랜들을 사용함으로써 고속동작이 가능하도록 하였다.
고속동작을 위해서는 시간예약기법과 같은 시간정보를 이용하는 방법 대신 2DRR, SLIP과 같은 라운드로빈방법이 유리하다. 또한, 시간예약기법에서와 같이 각 입력버퍼모듈에서 여러 개의 서로 다른 큐에서 1개씩의 셀을 전송하여 셀의 지연(delay) 특성을 향상시켜야 한다. 그리고 다수의 스위칭 플랜을 사용함으로써, 셀을 전송할 때 어떤 스위칭 플랜을 사용할 것인가를 미리 결정해야 한다. 따라서, 라운드로빈 방식으로 하나의 입력버퍼모듈에서 다수의 큐를 선택하면서 동시에 그 큐가 이용할 스위칭 플랜을 결정해야 한다. 본 발명에서는 라운드로빈 동작방식을 결정하는 검색형태행렬(search pattern matrix)과 하나의 입력버퍼모듈에서 다수의 큐를 선택할 수 있도록 전송응답행렬(allocation matrix)을 사용한다. 전송응답행렬은 선택된 큐가 전송시 경유할 스위칭 플랜에 대한 정보를 함께 포함한다. 본 발명은 N×N 공간분할스위치에서 알고리즘 수행에 필요한 단계는 N/k이다. 여기서, k는 입출력포트를 k개씩 그룹핑 했음을 나타낸다.
도 1은 본 발명에 사용되는 N×N 입력버퍼형 스위치를 도시한 전체 구조도이다. 이 스위치는 H. Obara 가 Electrinics Letters, Vol. 28, No. 1, Jan. 1992에서 발표하였던 논문 ″Input and output queueing ATM switch architecture with spatial and temporal slot reservation control″에서 제시된 구조와 동일하다. 이 구조의 장점은 입력포트 그룹핑(grouping)에 따른 통계적 다중화이득 (statistical multiplexing gain)에 의한 스위치 성능 향상이다. 또한, 입력포트 그룹핑에 의해서 통신 경합 제어시 고려하는 FIFO 큐의 개수가 감소하므로 대용량 스위칭에도 적합한 구조이다.
스위치의 전체적인 구성과 동작을 먼저 기술한다. 이 스위치는 m(=N/k)개의 k×n 입력버퍼모듈(input buffer module)(12-1 ~ 12-N/k)과, n개의 m×m 스위칭 플랜으로 구성된 공간분할 스위치모듈(14-1 ~ 14-n), m개의 n×k 출력버퍼모듈(output buffer module)(16-1 ~ 16-N/k), 그리고 경합제어모듈(19)로 구성된다. 입력포트들(11-1 ~ 11-N)의 총 개수는 N이며, 입력포트는 k개씩 그룹핑되어 각 입력버퍼모듈에 연결된다. 각 입력버퍼모듈(12-i, i=1,...,m(=N/k))에는 m개의 FIFO 큐 Q(i,j)(j=1, ,m(=N/k))가 존재한다. 입력포트에서 전송된 셀들은 목적 출력포트에 따라서 m개의 FIFO 큐 중 하나로 라우팅(routing)한다. FIFO 큐 Q(i,j)에는 출력버퍼모듈(16-j)에 속하는 출력포트를 목적지로 갖는 셀들이 저장된다. 예를 들면, 입력포트들(11-1 ∼ 11-k)은 입력버퍼모듈(12-1)에 연결되어 있으며, 입력버퍼모듈(12-1)에는 m개의 FIFO 큐(Q(1,1) ~ Q(1,m))가 있다. 여기서, FIFO 큐(Q(1,1))는 출력버퍼모듈(16-1)에 속하는 출력포트들(18-1∼18-k)을 목적지로 갖는 셀들을 입력포트들(11-1 ∼ 11-k)에서 입력받는다. 또한, FIFO 큐(Q(1,2))는 출력버퍼모듈(16-2)에 속하는 출력포트(18-(k+1) ∼ 18-2k)를 목적지로 갖는 셀들을 입력포트(11-1 ~ 11-k)에서 입력받는다. 마찬가지로 FIFO 큐(Q(1,N/k))는 출력버퍼모듈(16-N/k)에 속하는 출력포트(18-(N-k+1) ∼ 18-N)를 목적지로 갖는 셀들을 입력포트(11-1 ~ 11-k)에서 입력받는다.
경합제어모듈(19)은 각 입력버퍼모듈들(12-1 ∼ 12-N/k)로부터 각 입력버퍼모듈에 있는 각 FIFO 큐들의 head-of-line(HOL) 위치에 셀의 존재유무를 나타내는 2진 정보(0 또는 1)를 입력받는다. 그 후 이 정보를 이용하여 공간분할 스위치로 셀을 전송할 수 있는 FIFO 큐와 그 FIFO 큐에 할당된 스위칭 플랜(14-1 ∼ 14-n)을 결정하고, 그 결과를 각 입력버퍼모듈들에게 알린다. 각 입력버퍼모듈들은 전달된 결과를 이용하여 셀 전송이 허가된 FIFO 큐의 HOL셀을 그 FIFO큐에 할당된 스위칭 플랜(14-1 ∼ 14-n)에게 전송한다. 이때, 각 입력버퍼모듈에서 최대 n개의 셀이 스위칭 플랜(14-1 ~ 14-n)으로 전송될 수 있다.
공간분할 스위치모듈을 구성하는 각각의 스위칭 플랜은 m×m 넌 블록킹(non-blocking) 스위치이며 총 n개의 스위칭 플랜으로 이루어져 있다. 각 셀은 스위치의 입력링크(13-1 ~ 13-Nn/k)로부터 스위치의 출력링크(15-1 ~ 15-Nn/k)까지 셀 목적지(cell destination) 정보 하나만을 이용해서 라우팅(routing)한다. 스위치의 출력링크(15-1 ~ 15-Nn/k)는 n개씩 그룹핑되어 각 출력버퍼모듈(16-1 ~ 16-N/k)로 연결된다. 셀은 스위치의 출력링크(15-1 ~ 15-Nn/k)에서 자신의 목적 출력포트(destination output port)에 따라서 출력버퍼모듈(16-1 ∼16-N/k) 내의 FIFO 큐들 중 하나의 큐로 라우팅한다.
각 출력버퍼모듈(16-1 ∼16-N/k)에는 k개의 FIFO 큐들이 존재하고 이 FIFO 큐에는 각각 출력포트가 연결되어 있다. 큐에 셀이 존재하면 HOL 위치에 있는 하나의 셀이 출력포트에 전송된다. 예를 들면, 출력버퍼모듈(16-1)에는 k개의 FIFO 큐(17-1 ~ 17-k)가 있고 k개의 출력포트(18-1 ~ 18-k)가 연결되어 있는데, FIFO 큐(17-i)는 출력포트(18-i)와 연결되어 있다. 여기서, i=1, ..,k 이다. 따라서, 매 셀 타임(cell time)마다 FIFO 큐(17-i)의 HOL에 셀이 있다면 그 셀은 출력포트(18-i)로 보내진다.
이하에서는, 본 발명의 한 실시예에 따른 다중선택형 2차원 라운드로빈 스케줄링방법을 알아보기로 한다.
각 입력버퍼모듈들(12-1 ∼ 12-N/k)은 매 셀 타임마다 자신의 FIFO 큐들의 HOL 위치에 셀들이 존재하는 지를 나타내는 2진 정보를 경합제어모듈(19)에게 전송한다. 경합제어모듈(19)은 그 정보를 스케줄링하여 각 입력버퍼모듈별로 셀을 전송할 수 있는 FIFO 큐와 그 FIFO 큐가 이용할 스위칭 플랜을 각 입력버퍼모듈에게 알려준다.
스케줄링 기법에는 m×m 크기의 전송요청행렬(request matrix), 검색형태행렬(search pattern matrix), 그리고 전송응답행렬(allocation matrix)이 사용된다. 먼저 상기한 각각의 행렬에 대하여 기술한다.
경합제어모듈(19)은 각 입력버퍼모듈들로부터 전송된 2진 정보를 이용하여 도 2에 도시된 바와 같은 전송요청행렬을 구성한다. 전송요청행렬의 각 요소 r(i,j)는 FIFO 큐 Q(i,j)의 HOL에 셀이 존재하는 경우 1의 값을 갖고 그렇지 않은 경우 0의 값을 갖는다. 즉, i번째 입력버퍼모듈에서 j번째 출력버퍼모듈로 전송할 셀이 존재하는 경우 r(i,j)는 1의 값을 갖고 그렇지 않은 경우 0의 값을 갖는다. 여기서 i=1, ..,m, j=1,.. ,m 이다. 도 2에서, 20은 m=4인 경우의 전송요청행렬의 일 예이다.
전송요청행렬의 요소 r(i,j)과 r(g,h)는 입력버퍼모듈(i와 g)과 출력버퍼모듈(j와 h)이 모두 다르기 때문에 하나의 스위칭 플랜을 사용할 수 있다. 즉, 셀을 전송하고자 하는 입력버퍼모듈과 목적지가 모두 다르기 때문에 하나의 스위칭 플랜을 사용하더라도 블록킹(blocking)이 발생하지 않으며, 따라서 해당 스위칭 플랜은 FIFO 큐 Q(i,j)와 Q(g,h)로부터 동시에 셀들을 전송할 수 있다. 즉, 그 두 요소를 동시에 병렬로 검색하여 각 요소의 값이 1일 경우 그 요소에 해당하는 FIFO 큐의 셀 전송을 허가한다.
m×m 행렬에서 1행은 1,.. ,m 열까지 라운드로빈 방식으로 각 요소 r(1,i), i=1,.. ,m 를 순서대로 검색할 때 2행은 2,.. ,m,1 열까지 라운드로빈 방식으로 각 요소 r(2,i), i=2,.. ,m,1 를 순서대로 검색하는 방식을 이용하는 바, 모든 행렬요소들을 m 단계(step)만에 검색할 수 있다. 전송요청행렬의 각 요소가 몇 번째 단계에 검색되는가를 나타내기 위해 검색형태행렬을 사용한다.
검색형태행렬의 각 요소 d(i,j)=p (i=1,...,m, j=1,...,m) 란, 전송요청행렬의 요소들 중 r(i,j)를 p번째 단계에서 검색한다는 의미이다. 전송요청행렬의 요소들 중 행과 열의 위치가 각각 서로 다른 요소의 개수는 총 m개 이므로 한 번의 검색단계에서 독립적으로 검색할 수 있는 행렬요소의 최대 개수 역시 m이 된다. 또한 검색형태행렬의 같은 행에 위치한 각 요소들은 서로 다른 값을 가져야 하며, 같은 열에 위치한 각 요소들 역시 서로 다른 값을 가져야 한다. 즉, 한 번의 검색 단계에서 총 m개의 행렬요소를 검색하는데, 각 행에서 그리고 동시에 각 열에서 1개의 요소만 검색되도록 d(i,j)값을 정한다. 또한, 스케줄링시 서비스의 공평성을 위해서는 매 셀 시간마다 검색의 처음 단계의 위치가 변경되도록 하여 전송요청행렬의 각 요소가 m 번째 셀 시간마다 한 번씩 검색의 처음 단계에 위치하도록 한다. T를 현재의 셀 타임, M = m+1이라고 할 때, d(i,j)는 다음과 같은 방법 중 하나로 결정한다.
(a) d(i,j) = ((i + j - 1 + T) mod m ) + 1
(b) d(i,j) = ((M - i + M - j - 1 + T) mod m) + 1
(c) d(i,j) = ((M - i + j - 1 + T) mod m) + 1
(d) d(i,j) = ((i + M - j - 1 + T) mod m ) + 1
도 3에서 30 내지 33은 m=4, T=0인 경우 (a), (b), (c), (d) 각각에 대한 검색형태행렬의 예이다.
도 3에서 34는 m=4, T=1인 경우의 (b)에 대한 검색형태행렬의 예이고, 35는 m=4, T=1인 경우의 (b)에 대한 검색형태행렬의 예이다. m=4 이므로 검색형태행렬의 각 요소는 매 4 셀시간마다 한 번씩 검색의 처음 단계 즉, 1의 값을 갖는다.
상기와 같은 검색형태행렬들 중에서 하나의 검색형태행렬을 결정한 후, 다중선택형 2차원 라운드로빈 스케줄링방법에 적용한다. 즉, 검색형태행렬에 정해진 순서에 따라서 전송요청행렬을 검색하면서 전송요청행렬의 각 요소에 대하여 전송허가 여부와 어떤 스위칭 플랜을 사용하여 전송하는 지를 결정하고, 그 결과를 전송응답행렬(allocation matrix)에 저장한다. 전송응답행렬의 요소 a(i,j)는 r(i,j)가 전송허가가 되지 않았으면 0의 값을 갖고 r(i,j)가 전송이 허가되고 전송시 h번째 스위칭 플랜을 사용할 경우 h의 값을 갖는다. 여기서, h는 0보다 크고, 스위칭 플랜의 개수 n보다 같거나 작은 정수이다.
또한, 같은 열에 위치한 각 a(i,j)는 0값을 제외하고 서로 다른 값을 가져야 한다. 즉, 하나의 입력버퍼모듈에서는 각 스위칭 플랜에 하나의 셀만 보낼 수 있으며, 이 때 보낼수 있는 셀의 최대 개수는 n이다. 전송응답행렬의 같은 행에 위치한 각 요소들도, 0값을 제외하고 서로 다른 값을 가져야 한다. 즉, 같은 출력버퍼모듈로 향하는 셀들은 서로 다른 스위칭 플랜을 사용하여야 스위칭시 충돌(blocking)이 발생하지 않는다. 총 n개의 스위칭 플랜이 있으므로 하나의 출력버퍼모듈로 동시에 전송될 수 있는 셀의 최대 개수는 n이다. 전송응답행렬의 요소는 매 셀 시간마다 스케줄링되는 바, 시작 전에 0으로 초기화된다.
이제부터는 다중선택형 2차원 라운드로빈(2-dimensional round-robin with multiple selection) 방식의 스케줄링 알고리즘을 기술한다. 스케줄링 알고리즘의 전체적인 흐름도는 도 4에 도시된 바와 같다. 매 셀 시간마다 경합제어모듈에서는 다음과 같은 동작을 반복한다.
먼저, 입력버퍼모듈로부터 전송된 2진 정보로 전송요청행렬을 구성한다(S42). 다음, 검색형태형렬을 결정한다(S43). 다음, 전송응답행렬을 초기화한다(S44). 즉, 전송응답행렬의 각 요소들 a(i,j), i=1,.. ,m, j=1,.. ,m 을 0으로 초기화한다. 다음, 현재의 검색단계(S)를 초기값 1로 설정한다(S45).
다음, 검색형태행렬의 요소 중 d(i,j)=S 이고, 동일한 행과 열 (i,j)에 대하여 r(i,j)=1, a(i,j)=0을 만족시키는 (i,j) 쌍을 찾는다(S46).
찾아진 각 (i,j) 쌍에 대하여, i행과 j열에 위치한 전송응답행렬의 각 요소들의 값들을 조사하는 데, 만약 i행과 j열에 위치한 요소의 값들이 모두 1이 아니라면 a(i,j)를 1로 설정한다(47-1). 이러한 조건이 만족되지 않고, 만약 i행과 j열에 위치한 요소의 값들이 모두 2가 아니라면 a(i,j)를 2로 설정한다(47-2). 위의 두 조건들에 모두 만족되지 않고, 만약 i행과 j열에 위치한 요소의 값들이 모두 3이 아니라면 a(i,j)를 3으로 설정한다(47-3). 마지막으로, 위 항의 조건들에 모두 만족되지 않고, 만약 i행과 j열에 위치한 요소의 값들이 모두 n이 아니라면 a(i,j)를 n으로 설정한다(47-n)(S47).
다음, 현재의 검색단계(S)를 스위칭 플랜의 개수(m)와 비교하고(S48), m보다 작으면 검색단계(S)를 1증가시킨 후(S49), 현재의 검색단계가 m이 될 때까지 단계 S46 내지 단계 S47을 반복한다.
위 알고리즘의 단계 S46에서, 검색형태행렬의 요소들 중 d(i,j)=S 이고, 동일한 행 또는 열에 대하여 r(i,j)=1, a(i,j)=0을 만족시키는 (i,j) 쌍은 최대 m개가 존재하며, 이들은 서로 다른 행과 열이므로 병렬처리가 가능하다.
단계 S47은, 전형적인 IF - ELSE IF 구조이다. 47-1항의 조건을 먼저 검사하여 조건이 만족되면 47-1항의 처리에 따라 처리하고 그렇지 않으면 47-2항을 수행한다. 즉, 47-1항의 우선순위가 가장 높고 그 다음은 47-2항이고, ..., 47-n항의 우선순위가 가장 낮다. IF - ELSE IF 구조에 따른 우선순위가 없이 동작을 기술하면 다음과 같다.
먼저, 각 (i,j) 쌍에 대하여, i행과 j열에 위치한 전송응답행렬의 각 요소들의 값들을 조사한다. 이때, 만약 i행과 j열에 위치한 요소의 값 중에서 1이 없다면 a(i,j)를 1로 설정한다(47'-1). 만약 i행과 j열에 위치한 요소의 값 중 1이 1개 이상 있고, 각 요소의 값 중에서 2가 없다면 a(i,j)를 2로 설정한다(47'-2). 만약 i행과 j열에 위치한 요소의 값 중 1과 2가 각각 1개 이상있고, 각 요소의 값 중에서 3이 없다면 a(i,j)를 3으로 설정한다(47'-3). 만약 i행과 j열에 위치한 요소의 값 중 1,2, ,n-1가 각각 1개 이상 있고, 각 요소의 값 중에서 n이 없다면 a(i,j)를 n으로 설정한다(47'-n).
위 알고리즘에서 m=4이고 스위칭 플랜의 개수가 2인 경우(n=2)의 실시 예를 도 4에 도시한다. 도면에서, 60은 전송요청행렬이고, 61는 검색형태행렬로서 각 행렬 요소의 값은 검색순서를 나타낸다. 62, 63, 64, 65은 검색형태행렬에 정해진 순서에 따라 전송요청행렬을 검색하면서 위 알고리즘의 6항에 의해서 전송허가여부와 전송시 사용할 스위칭 플랜을 결정하는 과정을 보여주고 있다. 굵은 선의 사각형은 현재 검색하는 요소를 나타내는 바, 그 위치는 검색형태행렬에 나타난 순서와 같다. 회색으로 채워진 사각형은 스위칭 플랜 1을 나타내고, 사선으로 채워진 사각형은 스위칭 플랜 2를 나타낸다.
도면부호 62, 63, 64, 65에서 47-1의 조건을 만족하는 a(4,1), a(1,3), a(3,4)는 스위칭 플랜 1을 경유하여 전송하도록 결정되고, 47-2의 조건을 만족하는 a(2,1), a(1,2), a(3,3)은 스위칭 플랜 2를 경유하여 전송하도록 결정된다. 도면부호 65에서 r(2,4)는 전단계의 검색에 의해 2행 1열에 요소값 2를 갖는 요소 a(2,1)이 있고, 4열에 요소값 1을 갖는 요소 a(3,4)가 있으므로 전송할 수 없다. 따라서, a(2,4)는 0 이 된다. r(1,1)과 r(4,2)도 비슷한 이유로 전송할 수 없다. 66는 알고리즘 수행의 결과인 전송응답행렬을 보여주고 있다.
위의 알고리즘에서 47항에서, 전송응답행렬의 특정한 행이나 열에 속한 각 요소의 값들을 검색하는 것은 실제 하드웨어 구현시 알고리즘의 동작 속도를 저하시키는 요인이 될 수 있다.
이러한 문제를 해결하기 위하여 본 발명에서는 전송응답행렬의 특정한 행이나 열에 어떠한 값이 포함되어 있는 지를 나타내는 지표(index)를 사용함으로써, 알고리즘의 동작속도를 향상시킨다.
Wi=(wi(1),...,wi(m))를 행지표벡터(row index vector)라고 정의한다. 이때 요소 wi(j)는 전송응답행렬의 j행에 위치한 요소들 중 하나라도 i의 값을 갖는 것을 나타낸다. 여기서, i=1, ..,n, j=1,.. ,m이다. 만약, 전송응답행렬의 j행에 속한 요소들의 값 중 i가 포함되어있으면 wi(j)는 1의 값을 가지고, 그렇지 않으면 0의 값을 갖는다.
또한, Ci=(ci(1),...,ci(m))를 열지표벡터(column index vector)라고 정의한다. 이때 요소 ci(j)는 전송응답행렬의 j열에 위치한 요소들 중 하나라도 i의 값을 갖는 것을 나타낸다. 여기서, i=1, ..,n, j=1,.. ,m이다. 만약 전송응답행렬의 j열에 속한 요소의 값들 중 i가 포함되어 있으면 ci(j)는 1의 값을 가지고, 그렇지 않으면 0의 값을 갖는다. 행지표벡터와 열지표벡터는 실제 하드웨어 구현시 레지스터, 메모리 또는 플립플롭으로 표현할 수 있다.
상기한 행지표벡터와 열지표벡터를 사용하면, 전송응답행렬의 요소 값을 검색하지 않고도 단계 S47을 수행할 수 있다. 이때 알고리즘은 다음과 같이 변경된다.
먼저, 전송응답행렬과, 행지표벡터(Wi) 및 열지표벡터(Ci)를 초기화한다(43″-1). 즉, a(i,j)=0, i=1,.. ,m, j=1,.. ,m 으로 하고, wi(j)=0, ci(j)=0, i=1,.. ,n, j=1, ..,m 으로 한다.
다음, r(i,j)=1 인 각 (i,j)쌍에 대하여, i행과 j열에 위치한 전송응답행렬의 각 요소의 값들을 조사한다. 만약, w1(i)=0, c1(j)=0이면, a(i,j)=1, w1(i)=1, c1(j)=1로 설정한다(47″-1). 위 47″-1항의 조건이 만족되지 않고, 만약 w2(i)=0, c2(j)=0이면, a(i,j)=2, w2(i)=1, c2(j)=1로 설정한다(47″-2). 위 두 항들의 조건이 만족되지 않고, 만약 w3(i)=0, c3(j)=0이면, a(i,j)=3, w3(i)=1, c3(j)=1로 설정한다(47″-3). 이러한 과정들을 수행 후, 위 모든 항들의 조건이 만족되지 않고, 만약 wn(i)=0, cn(j)=0이면, a(i,j)=n, wn(i)=1, cn(j)=1로 설정한다(47″-n).
상기한 변경된 47″항의 동작결과는 47항의 동작결과와 동일하다.
그러나, 전송응답행렬의 요소에 특정 스위칭 플랜의 값을 설정하면서 동시에 그 요소가 위치한 행과 열에 그 특정 스위칭 플랜 값이 포함되어 있음을 행지표벡터와 열지표벡터에 표시한다. 따라서, 전송응답행렬의 요소에 대한 직접적인 검색없이 행지표벡터와 열지표벡터만을 사용하여 어느 스위칭 플랜이 사용되고 있는 지를 표시하여 고속동작을 가능케 한다.
상기와 같이 변경된 43″항과 47″항을 이용하여 m=4이고 스위칭 플랜의 개수가 2인 경우(n=2), 전송응답행렬을 구하는 과정을 도 5에 도시한다. 전송요청행렬과 검색형태행렬은 도 4에 도시된 전송요청행렬(60) 및 검색형태행렬(61)을 동일하게 사용한다.
도면에서, 부호 80, 90, 100, 110은 검색형태행렬에 의해 정해진 순서에 따라 전송요청행렬을 검색하면서 위 알고리즘의 47″항에 의해서 전송허가여부와 전송시 사용할 스위칭 플랜을 결정하는 과정을 순차적으로 도시하고 있다. 도면에서 굵은 선의 사각형은 현재 검색하는 요소를 나타내는 바, 그 위치는 검색형태행렬에 나타난 순서와 동일하다. 회색으로 채워진 사각형은 스위칭 플랜 1을 사용하도록 결정된 요소들을 나타내고, 사선으로 채워진 사각형은 스위칭 플랜 2를 사용하도록 결정된 요소들을 나타낸다.
부호 82, 84는 각각 행지표벡터 W1, W2를 나타내는 바, 요소 w1(i)는 전송응답행렬의 i행에 1 값을 가진 요소가 있는 지를 나타내고, 요소 w2(i)는 전송응답행렬의 i행에 2 값을 가진 요소가 있는 지를 나타낸다. 부호 86, 88은 각각 열지표벡터 C1, C2를 나타내는 바, 요소 c1(i)는 전송응답행렬의 i열에 1 값을 가진 요소가 있는 지를 나타내고, 요소 c2(i)는 전송응답행렬의 i열에 2 값을 가진 요소가 있는 지를 나타낸다.
전송요청행렬 90에서 r(1,3)=1이고 82와 86에서 w1(1)=0이고 c1(3)=0이므로 변경된 알고리즘의 47″-1항의 조건을 만족하기 때문에, a(1,3)=1 이고, 92 및 96과 같이 w1(1)=1, c1(3)=1 이 된다. 한편, 전송요청행렬 110에서 r(4,2)=1이지만 102와 108에서 w1(4)=1이고 c2(2)=1이기 때문에 a(4,2)는 전송불가를 나타내는 0값을 갖는다. 이와 같이 도 5를 참조하면 변경된 알고리즘 47″항을 이용하더라도 도 4와 동일한 결과를 얻을 수 있음을 알 수 있다.
2차원 라운드로빈 스케줄러의 기본적인 동작은 R. O. LaMaire 등이 IEEE/ACM Trans. Networking., Vol. 2., No. 5., 에 1994년 10월에 발표하였던 논문 ″Two-dimensioanl round-robin schedulers for packet switches with multiple input queues″ 에 상세하게 기술되어 있다.
스위칭 플랜의 개수가 1일 경우, 본 발명에서 제시한 2DRRMS 알고리즘의 성능은 상기 논문에서 제시한 기본 2DRR(basic 2DRR) 알고리즘의 성능과 동일하다. 상기 논문에서 제시한 향상된 2DRR(enhanced 2DRR) 알고리즘은 특정한 트래픽(traffic) 패턴에 대해 공평성이 향상된다. 이 특정한 트래픽은 선 모양의 트래픽(line-shaped traffic)으로서, 각 입력버퍼모듈에 지속적으로 들어오는 셀들이 모두 하나의 출력포트를 목적지로 하는 경우이다. 이러한 경우는 현실적으로 발생하기 힘든 경우이며, 특히 본 발명에서는 입력포트를 그룹핑하였으므로 통계적 다중화 효과에 의해 상기한 선 모양의 트래픽이 발생하기가 어렵다.
N×N 스위치에서 2DRR방법은 스케줄링시 N번의 검색 단계를 필요로 하지만 본 발명에 따른 2DRRMS 방법은 m(=N/k)의 검색 단계를 필요로 하므로 2DRRMS방법이 고속 대용량 스위칭에 유리하다.
도 7과 도 8은 64×64 스위치에서, 출력버퍼(OB) 스위치, SLIP, 2DRR, TRM, 2DRRMS의 성능을 비교하기 위하여 도시한 그래프도로서, 도 7은 각 방법들의 셀지연(cell delay) 평균값을 도시한 그래프이고, 도 8은 각 방법들의 셀지연 분산값을 도시한 그래프도이다. 상기 성능비교에 사용된 트래픽 모델은 Bernoulli 도착과정(arrival process) 이며 각 셀의 목적지는 각 출력포트에 대하여 균등하게 분포되어 있다. 상기한 트랙픽의 입력부하(Lambda)를 증가시키면서 셀지연 평균과 셀지연 분산을 모의실험으로 구하였다. SLIP은 한 셀시간에 SLIP 알고리즘을 4번 반복하는 4-SLIP을 사용하였으며, TRM의 경우 그룹의 크기는 4이고 4 ×4의 입출력버퍼모듈을 사용하였다. 2DRRMS의 경우 그룹크기는 4이고 (즉, k=4) 스위칭 플랜의 개수는 n=2이다. k=4이고 n=2이므로 한 셀시간에 2DRRMS를 두 번 실행하였다.
도면에서 알 수 있듯이, 성능면에서 보면 출력버퍼 스위치의 성능이 가장 우수하며, 그 다음이 본 발명에 따른 2DRRMS 방법이다. 그러나, 앞서 설명하였듯이 출력버퍼 스위치는 고속 링크에는 적합하지 않다.
도 9와 도 10은 128×128 스위치에서, 출력버퍼(OB) 스위치, SLIP, 2DRR, TRM, 2DRRMS의 성능을 비교하기 위하여 도시한 그래프도로서, 도 9는 각 방법들의 셀지연(cell delay) 평균값을 도시한 그래프이고, 도 10은 각 방법들의 셀지연 분산값을 도시한 그래프도이다. 64 ×64 스위치의 성능비교에 사용된 트래픽 모델과 동일한 트래픽 모델을 사용하여 트래픽의 입력부하(Lambda)를 증가시키면서 셀지연평균과 셀지연분산을 모의실험으로 구하였다. SLIP은 한 셀시간에 SLIP 알고리즘을 4번 반복하는 4-SLIP을 사용하였으며, TRM의 경우 그룹의 크기는 4이고 4 ×4의 입출력버퍼모듈을 사용하였다. 2DRRMS의 경우 그룹크기는 4이고 (즉, k=4) 스위칭 플랜의 개수는 n=4이다. k=n=4이므로 한 셀시간에 2DRRMS를 한번 실행하였다. 위의 도면들에서도 알 수 있듯이 본 발명에 따른 다중선택형 2차원 라운드로빈 스케줄링(2DRRMS)방법은 성능이 매우 뛰어나다.
위에서 양호한 실시예에 근거하여 이 발명을 설명하였지만, 이러한 실시예는 이 발명을 제한하려는 것이 아니라 예시하려는 것이다. 이 발명이 속하는 분야의 숙련자에게는 이 발명의 기술사상을 벗어남이 없이 위 실시예에 대한 다양한 변화나 변경 또는 조절이 가능함이 자명할 것이다. 그러므로, 이 발명의 보호범위는 첨부된 청구범위에 의해서만 한정될 것이며, 위와 같은 변화예나 변경예 또는 조절예를 모두 포함하는 것으로 해석되어야 할 것이다.
이상과 같이 본 발명에 따른 다중선택형 2차원 라운드로빈 스케줄링방법은, 기본적인 동작이 2차원 라운드로빈 동작이기 때문에 고속으로 동작할 수 있으며, 입력포트와 출력포트를 그룹핑한 구조이기 때문에 대용량 처리가 가능하다. 또한, 소용량의 스위칭 플랜을 사용하여 대용량 처리를 할 수 있기 때문에 구현성이 우수하고 실용화가 용이하다는 효과가 있다.

Claims (6)

  1. k개의 입력포트와 n개의 출력포트와 m개의 큐를 포함하는 입력버퍼모듈 m개와, n개의 입력포트와 k개의 출력포트와 m개의 큐를 포함하는 출력버퍼모듈 m개와, 상기 입력버퍼모듈 m개와 출력버퍼모듈 m개가 입출력단자들에 각각 연결되는 n개의 m×m 스위칭 플랜으로 이루어진 공간분할 스위칭모듈, 및 경합제어모듈을 포함한 통신시스템의 다중선택형 2차원 라운드로빈 스케줄링방법에 있어서,
    상기 각 입력버퍼모듈의 전송요청신호의 유무를 감지하여 m×m 전송요청행렬(r(i,j), i,j=1,...,m)을 구성하는 제 1 단계와;
    검색순서(S=1,...,m)를 나타내는 m×m 검색형태행렬(d(i,j), i,j=1,...,m)을 설정하는 제 2 단계;
    전송승인여부와 전송가능한 스위칭 플랜의 번호를 나타내는 m×m 전송응답행렬(a(i,j), i,j=1,...,m)의 요소값들을 0으로 초기화하는 제 3 단계;
    상기 검색형태행렬의 검색순서(S)에 따라 전송요청행렬을 검사하여 전송요청이 있는 r(i,j)를 찾는 제 4 단계; 및
    상기 제 4 단계에서 찾아진 모든 (i,j)쌍들에 대해 전송응답행렬의 i행 요소값들과 j열 요소값들이 1∼n 범위 내에서 서로 다른 값을 가지도록 a(i,j)값을 설정하는 제 5 단계를 포함하며, 상기 검색순서(S)를 1부터 m까지 1씩 증가시키면서 상기 제 4 단계 내지 제 5 단계를 반복 수행하는 것을 특징으로 하는 다중선택형 2차원 라운드로빈 스케줄링방법.
  2. 제 1 항에 있어서, 상기 제 1 단계의 전송요청행렬은, i번째 입력버퍼모듈의 j번째 큐에 전송할 셀이 있으면 r(i,j)의 요소값이 1이고, 전송할 셀이 없으면 r(i,j)=0인 것을 특징으로 하는 다중선택형 2차원 라운드로빈 스케줄링방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 제 5 단계는, 모든 (i,j)쌍들에 대해,
    스위칭 플랜의 번호를 나타내는 변수 k를 1로 초기화하는 제 1 소단계와,
    전송응답행렬의 i행 요소값들과 j열 요소값들이 모두 k가 아니라는 k 조건을 만족하는 지를 판단하는 제 2 소단계,
    상기 k 조건을 만족하면, a(i,j)=k로 설정하며 종료하는 제 3 소단계, 및
    상기 k 조건을 만족하지 않으면서 k가 n보다 작으면 k를 1 증가시킨 후 상기 제 2 소단계로 진행하고, 상기 k 조건을 만족하지 않으면서 k가 n과 같으면 a(i,j)를 초기화상태로 유지하며 종료하는 제 4 소단계를 수행하는 단계인 것을 특징으로 하는 다중선택형 2차원 라운드로빈 스케줄링방법.
  4. 제 1 항 또는 제 2 항에 있어서, 상기 제 5 단계는, 모든 (i,j)쌍들에 대해,
    전송응답행렬의 i행 요소값들과 j열 요소값들이 모두 0이면, a(i,j)=1로 설정하는 제 1 소단계와,
    전송응답행렬의 i행 요소값들과 j열 요소값들 중 1,...,k-1(k=1,2,...,n)이 적어도 1개 이상씩있고, 상기 i행 요소값들과 j열 요소값들이 모두 k(k=1,2,...,n)가 아니면, a(i,j)=k로 설정하는 제 2 소단계를 수행하는 단계인 것을 특징으로 하는 다중선택형 2차원 라운드로빈 스케줄링방법.
  5. 제 1 항에 또는 제 2 항에 있어서, 상기 제 5 단계는,
    전송응답행렬의 각 행에 위치한 요소값이 p값을 갖는 것을 나타내는 행지표벡터(Wp, 여기서 p=1,...,n 이다)와, 전송응답행렬의 각 열에 위치한 요소값이 p값을 갖는 것을 나타내는 열지표벡터(Cp, 여기서 p=1,...,n 이다)를 이용하여, a(i,j)를 설정하는 단계인 것을 특징으로 하는 다중선택형 2차원 라운드로빈 스케줄링방법.
  6. 제 5 항에 있어서, 상기 제 5 단계는,
    상기 행지표벡터 Wp=(wp(1),...,wp(m)) (여기서 p=1,...,n 이다)와, 열지표벡터 Cp=(cp(1),...,cp(m)) (여기서 p=1,...,n 이다)의 각 요소를 0으로 초기화하는 제 1 소단계와,
    모든 (i,j)쌍들에 대해,
    wk(i)=0, ck(j)=0 인 k 조건을 만족하는 지를 판정하는 제 2 소단계와,
    상기 k 조건을 만족하면, a(i,j)=k, wk(i)=1, ck(j)=1로 설정하며 종료하는 제 3 소단계,
    상기 k 조건을 만족하지 않으면서 k가 n보다 작으면 k를 1 증가시킨 후 상기 제 2 소단계로 진행하고, 상기 k 조건을 만족하지 않으면서 k가 n과 같으면 a(i,j)를 초기화상태로 유지하며 종료하는 제 4 소단계를 수행하는 단계인 것을 특징으로 하는 다중선택형 2차원 라운드로빈 스케줄링방법.
KR1019990044590A 1999-10-14 1999-10-14 입출력 버퍼형 스위치의 다중 선택형 2차원 라운드로빈 스케줄링 방법 KR100363890B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019990044590A KR100363890B1 (ko) 1999-10-14 1999-10-14 입출력 버퍼형 스위치의 다중 선택형 2차원 라운드로빈 스케줄링 방법
US09/494,729 US6633568B1 (en) 1999-10-14 2000-01-31 Two-dimensional round-robin scheduling method with multiple selection in an input-buffered switch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990044590A KR100363890B1 (ko) 1999-10-14 1999-10-14 입출력 버퍼형 스위치의 다중 선택형 2차원 라운드로빈 스케줄링 방법

Publications (2)

Publication Number Publication Date
KR20010037202A true KR20010037202A (ko) 2001-05-07
KR100363890B1 KR100363890B1 (ko) 2002-12-11

Family

ID=19615382

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990044590A KR100363890B1 (ko) 1999-10-14 1999-10-14 입출력 버퍼형 스위치의 다중 선택형 2차원 라운드로빈 스케줄링 방법

Country Status (2)

Country Link
US (1) US6633568B1 (ko)
KR (1) KR100363890B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7397808B2 (en) 2002-10-31 2008-07-08 Seoul National University Industry Foundation Parallel switching architecture for multiple input/output

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6747971B1 (en) * 1999-04-20 2004-06-08 Cisco Technology, Inc. Crosspoint switch with independent schedulers
US6961342B1 (en) * 2000-03-29 2005-11-01 Necdet Uzun Methods and apparatus for switching packets
KR100382142B1 (ko) * 2000-05-19 2003-05-01 주식회사 케이티 단순반복매칭을 이용한 입출력버퍼형 스위치의 셀스케줄링 방법
US6829647B1 (en) * 2000-06-09 2004-12-07 International Business Machines Corporation Scaleable hardware arbiter
JP3567878B2 (ja) * 2000-10-02 2004-09-22 日本電気株式会社 パケット交換装置
JP2002237839A (ja) * 2001-02-09 2002-08-23 Fujitsu Ltd スケジューリング方法及びその装置
WO2002076038A1 (en) * 2001-03-19 2002-09-26 Bob Tang A method for guaranteeing quality of service on the internet by routing data along nodes without error correction processing capability
US7068603B2 (en) * 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US7039011B1 (en) * 2001-10-31 2006-05-02 Alcatel Method and apparatus for flow control in a packet switch
JP3863421B2 (ja) * 2001-12-12 2006-12-27 三菱電機株式会社 データ転送組み合わせ決定方法および組み合わせ決定回路
US7408937B1 (en) * 2003-01-09 2008-08-05 Cisco Technology, Inc. Methods and apparatus for identifying a variable number of items first in sequence from a variable starting position which may be particularly useful by packet or other scheduling mechanisms
JP2006039677A (ja) * 2004-07-22 2006-02-09 Fujitsu Ltd クロスバ
US7408947B2 (en) * 2005-01-06 2008-08-05 Enigma Semiconductor Method and apparatus for scheduling packets and/or cells
US8428991B1 (en) * 2005-06-30 2013-04-23 Dennis Brian Rooks System and method for scheduling
US20140149715A1 (en) * 2012-11-28 2014-05-29 Los Alamos National Security, Llc Scalable and programmable computer systems
WO2014137253A1 (en) * 2013-03-04 2014-09-12 Telefonaktiebolaget L M Ericsson (Publ) Method for allocating frame transmission time slots

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5166926A (en) * 1990-12-18 1992-11-24 Bell Communications Research, Inc. Packet address look-ahead technique for use in implementing a high speed packet switch
US5299190A (en) * 1992-12-18 1994-03-29 International Business Machines Corporation Two-dimensional round-robin scheduling mechanism for switches with multiple input queues
US5729702A (en) * 1993-06-21 1998-03-17 Digital Equipment Corporation Multi-level round robin arbitration system
US5517495A (en) 1994-12-06 1996-05-14 At&T Corp. Fair prioritized scheduling in an input-buffered switch
US5923656A (en) * 1996-10-22 1999-07-13 Board Of Trustees Of The University Of Illinois Scalable broad band input-queued ATM switch including weight driven cell scheduler
US6486983B1 (en) * 1999-12-30 2002-11-26 Nortel Networks Limited Agile optical-core distributed packet switch
US6466343B1 (en) * 1999-04-28 2002-10-15 3Com Corporation System for assigning wavelengths in a wave division multiplexing based optical switch

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7397808B2 (en) 2002-10-31 2008-07-08 Seoul National University Industry Foundation Parallel switching architecture for multiple input/output

Also Published As

Publication number Publication date
US6633568B1 (en) 2003-10-14
KR100363890B1 (ko) 2002-12-11

Similar Documents

Publication Publication Date Title
US7046661B2 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined hierarchical arbitration scheme
KR100363890B1 (ko) 입출력 버퍼형 스위치의 다중 선택형 2차원 라운드로빈 스케줄링 방법
Mekkittikul et al. A practical scheduling algorithm to achieve 100% throughput in input-queued switches
US7173931B2 (en) Scheduling the dispatch of cells in multistage switches
US6940851B2 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme
US7492782B2 (en) Scalable crossbar matrix switching apparatus and distributed scheduling method thereof
US6618379B1 (en) RRGS-round-robin greedy scheduling for input/output terabit switches
US8902883B1 (en) Method and apparatus for priority-provisioned arbitration scheduling for a switch fabric
US7170903B2 (en) Method and apparatus for parallel, weighted arbitration scheduling for a switch fabric
EP0981878B1 (en) Fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
US6757246B2 (en) Method and apparatus for weighted arbitration scheduling separately at the input ports and the output ports of a switch fabric
EP1061763A2 (en) A pipelined packet scheduler for high speed optical switches
US6904047B2 (en) Cell scheduling method of input and output buffered switch using simple iterative matching algorithm
US5327552A (en) Method and system for correcting routing errors due to packet deflections
US6370148B1 (en) Data communications
US7006514B2 (en) Pipelined maximal-sized matching cell dispatch scheduling
US20100232449A1 (en) Method and Apparatus For Scheduling Packets and/or Cells
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
Rojas-Cessa et al. Maximum weight matching dispatching scheme in buffered Clos-network packet switches
US7269158B2 (en) Method of operating a crossbar switch
Kleban et al. CRRD-OG: A packet dispatching algorithm with open grants for three-stage buffered Clos-network switches
Mekkittikul et al. Scheduling VOQ switches under non-uniform traffic
Han et al. Fast scheduling algorithm for input and output buffered ATM switch with multiple switching planes
USRE42600E1 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme

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

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20121030

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee