KR100416507B1 - 입력버퍼형 스위치의 공정한 스케줄링 방법 - Google Patents
입력버퍼형 스위치의 공정한 스케줄링 방법 Download PDFInfo
- Publication number
- KR100416507B1 KR100416507B1 KR10-2001-0085843A KR20010085843A KR100416507B1 KR 100416507 B1 KR100416507 B1 KR 100416507B1 KR 20010085843 A KR20010085843 A KR 20010085843A KR 100416507 B1 KR100416507 B1 KR 100416507B1
- Authority
- KR
- South Korea
- Prior art keywords
- input
- input module
- cells
- transmission
- output port
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 복수 개의 입출력포트를 갖는 입력버퍼형 스위칭의 스케줄링 시 발생할 수 있는 전송기회 불공정성을 개선한 입력모듈간의 셀 전송 경합을 중재하는 방법에 관한 것으로, 출력포트들로 셀을 전송할 입력모듈들에 대기 중인 셀의 개수에 대한 정보를 수집하는 단계; 입력모듈별로 셀의 개수, 입력모듈의 최우선권 및 입력모듈의 라운드 순서에 대한 전송요청비드를 생성하는 단계; 입력모듈별 전송요청비드의 크기를 비교하여 출력포트로 전송할 우선순위를 가지는 입력모듈을 선택하는 전송허가 단계; 입력모듈로부터 전송되는 셀을 수신하는 출력포트들의 최우선권, 출력포트가 전송허가 단계에서 선택한 입력모듈의 대기중인 셀의 개수 및 출력포트의 라운드 순서에 대한 전송허가비드를 생성하는 단계; 전송허가비드의 크기를 비교하여 입력모듈로부터 셀을 수신하는 출력포트를 선택하는 전송확정 단계를 포함하므로, 각 입력버퍼가 일정 시간 안에 최소 한번은 전송 기회를 가지게 되고 어떤 입력버퍼에 대기중인 셀이 없어서 전송 기회를 사용하지 않을 경우에는 그 전송 기회를 전송이 확정되지 않고 대기중인 셀 개수가 가장 많은 다른 입력버퍼가 사용할 수 있도록 할 수 있다.
Description
본 발명은 입력버퍼형 스위치의 스케줄링 시에 발생하는 불공정을 개선하는 알고리즘에 관한 것으로, 특히 입력버퍼형 스위치의 스케줄링 시에 스위치의 각 입력포트에 대해 최소 서비스 기회를 보장하고 어떤 입력포트가 보장된 서비스 기회를 사용하지 않는 경우 그 서비스 기회를 나머지 입력포트들이 공정하게 사용하여 서비스 공정성 및 스위치 출력률을 향상하는 입력버퍼형 스위치의 공정한 스케쥴링 방법에 관한 것이다.
입력버퍼형 스위치는 head-of-line (HOL) 봉쇄(blocking) 현상으로 인해 스위치 성능이 100% 출력률을 얻지 못하며 출력버퍼형 스위치에 비해 나쁘다. 이 HOL 봉쇄를 없애기 위해 다양한 방법이 개발되어 졌는데 그 중 구현이 용이하면서 현실적인 방법이 각 입력포트에 출력포트별로 여러 개의 버퍼를 사용하는 VOQ (virtual output queueing) 방법이다. VOQ구조의 입력버퍼형 N x N스위치의 경우에 N개의 입력포트가 있고 각 입력포트에 출력포트별로 N개의 버퍼가 있으므로 총 N2의 입력버퍼가 있다. 각 입력포트에 도착한 셀은 자신의 목적 출력포트에 따라 N개의 입력버퍼중 하나에 저장되어 대기한다. 총 N2의 입력버퍼 중에서 N개만 서로 다른 출력포트로 보내야 하므로 경합 (contention)이 발생한다. 이러한 경합을 중재하는 스케줄링 방법 중 대표적인 방법으로 iSLIP, longest queue first (이하 LQF로 표시한다), oldest cell first (이하 OCF로 표시한다), simple matching algorithm (이하 SMA로 표시한다) 방법이 있다.
iSLIP는 전송요청(request), 전송허가(grant), 전송확정(accept)의 3단계 동작으로 이루어지며 전송요청 단계에서는 N2의 입력 버퍼에서 출력포트별로 HOL 셀 정보로 이루어진 전송요청을 보낸다. 전송허가 단계에서는 각 출력포트가 자신이 받은 전송요청 중에서 하나를 round-robin pointer를 사용하여 선택하고 그 전송허가 결과를 각 입력포트에 알려준다. 전송확정 단계에서는 각 입력포트가 출력포트로부터 받은 전송허가 중 하나를 round-robin pointer를 사용해서 선택하여 전송을 확정한다. 한편 자신의 전송요청이 최종 전송확정된 입력포트와 자신의 전송허가가 최종 전송확정된 출력포트만 round-robin pointer의 시작점을 갱신하도록 하여 먼저 전송을 시도한 입력버퍼가 차후 스케줄링시 우선권을 갖도록 하였다. 그러나 이러한 포인터 갱신 원리는 전송확정 동작시 각 출력포트가 동시에 동일한 하나의 입력포트에 대해 전송허가를 하는 동기현상을 유발하므로 알고리즘의 효율을 저하시킨다. 또한 HOL 셀이 전송을 요청한 후 전송이 될 때까지 최악의 경우 최대 N2+(N-1)2의 셀시간이 소요되어 입출력포트 개수 N이 큰 대용량 스위치의 실시간 트래픽에 대해서 부적합하다. 이러한 단점을 개선하기 위해 전송요청, 전송허가, 전송확정의 3단계 동작을 여러 번 반복하여 성능을 향상할 수 있다. 또, iSLIP은 출력률만을 고려한 발견적 방법으로 특정 패턴의 입력 트래픽에 대해서 스케줄링시 공정성이 보장되지 않는다.
LQF 방법은 iSLIP의 전송허가단계에서 round-robin pointer를 사용하여 전송요청을 결정하는 대신 각 출력포트별로 대기중인 셀의 개수가 가장 많은 입력 버퍼의 전송요청을 선택한다. 또한 전송확정단계에서도 각 입력포트별로 대기중인 셀의 개수가 가장 많은 입력 버퍼의 전송요청을 선택한다. 즉, 버퍼의 대기중인 셀의 개수의 대소에 의해 경합을 중재하므로 대기중인 셀의 개수가 클수록 유리하다. 이러한 방식은 도착하는 셀의 빈도가 충분할 때만 서비스의 공정성을 보장할 수 있다. 특정입력포트가 스케줄링시 전송확정을 계속 받지 못했다면 대기중인 셀의 개수가 증가하게 되어 결국 언제인가는 서비스를 받게 된다. 그러나 도착하는 셀의 빈도수가 낮다면 최악의 경우 셀의 대기수가 적은 버퍼는 영원히 전송되지 않을 수도 있는 불공정성 문제가 발생한다.
OCF 방법은 iSLIP의 전송허가단계에서 round-robin pointer를 사용하여 전송요청을 결정하지 않고 각 출력포트별로 HOL위치에 있는 셀의 대기시간이 가장 긴 입력 버퍼의 전송요청을 선택한다. 또한 전송확정단계에서도 각 입력포트별로 HOL위치에 있는 셀의 대기시간이 가장 긴 입력 버퍼의 전송요청을 선택한다. OCF방법은 현재 HOL위치에 있는 셀들 중 가장 오래 대기한 셀은 최우선으로 전송이 보장된다. 그러나 LQF방법이 각 입력버퍼의 대기중인 셀 수에 대한 정보만 필요한 반면 OCF 방법은 모든 셀의 대기시간에 대한 정보가 필요하다. 또 셀의 대기시간이 갖을 수 있는 상한 값의 한계를 정하기 어렵고 그 상한 값이 매우 클 수도 있으므로 각 셀별로 대기시간을 나타내기 위해 많은 양의 하드웨어 자원을 필요로 하므로 하드웨어 구현의 용이성이 없다.
SMA는 iSLIP의 포인터 동기화 현상을 최소화한 방법으로 HOL 셀이 전송을 요청한 후 전송이 될 때까지 최악의 경우 최대 N의 셀시간만이 소요되므로 입출력포트 개수 N이 큰 대용량 스위치의 실시간 트래픽에 대해서 적합한 방법이다. 또한, 다수의 서비스 계층으로 이루어진 스위치에서 iSLIP보다 성능이 우수하고 구현이 용이한 것으로 알려져 있다. SMA방법은 iSLIP과 같이 전송요청, 전송허가, 전송확정의 3단계 동작으로 이루어져 있다. 전송허가 단계에서는 각 출력포트가 자신이 받은 전송요청 중에서 하나를 매 단위시간마다 단순증가 또는 감소하는 round-robin pointer를 사용하여 선택하고 그 전송허가 결과를 각 입력포트에 알려준다. 전송확정 단계에서는 각 입력포트가 출력포트로부터 받은 전송허가 중 하나를 매 단위시간마다 단순증가 또는 감소하는 round-robin pointer를 사용해서 선택하여 전송을 확정한다. SMA 방법 또한 전송요청, 전송허가, 전송확정의 3단계 동작을 여러 번 반복하여 알고리즘의 성능을 향상할 수 있다. 그러나 SMA 방법 역시 출력률만을 고려한 발견적 방법으로 특정 패턴의 입력 트래픽에 대해서 스케줄링시 공정성이 보장되지 않는다.
본 발명이 이루고자 하는 기술적 과제는, 상기 문제점들을 해결하기 위해 입력버퍼형 스위치의 스케줄링 시에 입력포트에 대한 서비스의 공정성 및 스위치의 출력률을 향상하는 입력버퍼형 스위치의 공정한 스케쥴링 방법을 제공하는데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데있다.
도 1은 본 발명에서 고려하는 복수 개의 입/출력포트를 갖고, 하나의 입력포트는 하나의 입력모듈과 연결되어 있고, 하나의 입력모듈은 하나의 출력포트별로 분리된 입력버퍼를 갖는 입력버퍼형 스위치의 구조를 나타낸다.
도 2는 본 발명에 따른 입력버퍼들간의 셀 전송 경합을 중재하는 방법에 대한 흐름을 나타내는 도면이다.
도 3a는 본 발명의 전송허가비드에 대한 일 예를 나타내는 도면으로, 입력모듈의 최우선권, 대기 중인 셀의 개수 및 입력모듈의 라운드 순서에 대한 정보를 나타낸다.
도 3b는 본 발명의 전송허가비드에 대한 일 예를 나타내는 도면으로, 출력포트의 최우선권, 출력포트가 전송을 허가한 입력모듈의 대기중인 셀의 개수 및 출력포트의 라운드순서에 대한 정보를 나타낸다.
도 4는 본 발명에 의한 방법을 출력버퍼형 스위치, iSLIP 및 SMA의 성능과 비교하기 위하여 셀 지연시간의 평균값을 나타내는 도면이다.
도 5는 본 발명에 의한 방법과 SMA를 불균일 트래픽 상태에서 비교하기 위한 결과를 나타내는 도면이다.
상기의 과제를 이루기 위한 본 발명에 따른 입력버퍼들간의 셀 전송 경합을 중재하여 입력버퍼형 스위치의 공정한 스케줄링하는 방법은, 복수 개의 입/출력포트를 갖고, 하나의 입력포트는 하나의 입력모듈과 연결되어 있고, 하나의 입력모듈은 출력포트별로 분리된 입력버퍼를 갖는 입력버퍼형 스위치를 이용하여 셀 전송을 하는 방법에 있어서, (a) 상기 출력포트들로 셀을 전송할 입력모듈들에 대기 중인 셀의 개수에 대한 정보를 수집하는 단계;(b) 상기 입력모듈별로 상기 셀의 개수, 입력모듈의 최우선권 및 입력모듈의 라운드 순서에 대한 전송요청비드를 생성하는 단계;(c) 상기 입력모듈별 전송요청비드의 크기를 비교하여 상기 출력포트로 전송할 우선순위를 가지는 입력모듈을 선택하는 전송허가 단계;(d) 상기 입력포트로부터 전송되는 셀을 수신하는 출력포트들의 최우선권, 상기 출력포트가 전송허가 단계에서 선택한 입력모듈에 대기중인 셀의 개수 및 상기 출력포트의 라운드 순서에 대한 전송허가비드를 생성하는 단계;(e) 상기 전송허가비드의 크기를 비교하여 상기 입력모듈로부터 셀을 수신하는 출력포트를 선택하는 전송확정 단계를 포함한다.
이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 상세히 설명한다.
본 발명에서는 N x N 입력버퍼형 스위치의 경합중재를 위한 스케줄링시 다양한 트래픽 패턴(예를 들면, 균일 베르누이 트래픽 또는 불균일 베르누이 트래픽)에 대하여 공정성이 보장되는 공정한 스케줄링 방법을 개발한다. 먼저 VOQ(virtualoutput queueing)구조를 사용하고 각 입력포트의 각각의 버퍼가 N셀시간안에 최소 한번은 서비스를 받을 기회를 보장한다. 만약 어떤 입력포트가 대기중인 셀이 없어서 보장된 서비스 기회를 사용하지 않을 경우에는 그 서비스 기회를 대기중인 셀 개수가 가장 많은 다른 입력포트가 사용할 수 있도록 한다. 즉, 각 입력포트별로 공정한 서비스 기회를 보장하고, 입력포트 중 상대적으로 트래픽 부하가 많은 입력포트에 더 많은 서비스 기회를 부여하여 공정하게 시스템 자원을 할당하는 스케줄링 방법을 개시한다.
도 1은 본 발명에서 고려하는 복수 개의 입/출력포트를 갖고, 하나의 입력포트는 하나의 입력모듈과 연결되어 있고, 하나의 입력모듈은 출력포트별로 분리된 입력버퍼를 갖는 입력버퍼형 스위치의 구조를 나타낸다.
스위치는 N개의 입력포트, N개의 입력모듈(110 및 120), N x N 공간분할스위치(space-division switch, 130), N개의 출력포트 및 경합제어모듈(140)로 구성된다. i번째 입력모듈에는 출력포트별로 N개의 FIFO큐 Q(i,j), j=1, ,N, 가 존재한다. 입력포트에서 입력모듈(110 및 120)로 전송된 셀들은 목적 출력포트에 따라서 N개의 FIFO 큐 중 하나로 라우팅 (routing)한다. FIFO 큐 Q(i,j)에는 j번째 출력포트로 향하는 셀들이 저장된다. 경합제어 모듈 (140)은 각 입력모듈(110 및 120)로부터 각 입력모듈(110 및 120)에 있는 각 FIFO 큐(Q(1,1), Q(1,N) 등)들의 상태를 나타내는 정보를 받는다. 여기서 FIFO 큐들의 상태는 대기중인 셀의 개수를 나타낸다. 그 후, 그 정보를 이용하여 본 발명에서 개시하는 방법에 의해 공간분할스위치(130)로 셀을 전송할 수 있는 FIFO큐를 각 출력포트별로 결정하고그 결과를 각 입력모듈(110 및 120)에 알린다. 각 입력모듈(110 및 120)은 전달된 결과를 이용하여 셀 전송이 허가된 FIFO 큐의 HOL(head-of line) 셀을 공간분할스위치(130)로 전송한다.
공간분할스위치(130)는 N x N non-blocking 스위치이며 입력링크로부터 셀을 입력받아 셀 목적지에 따라 출력포트로 전달한다.
각 입력모듈(110 및 120)에서 단위시간당 1개의 셀만을 공간분할스위치(130)로 전송할 수 있으므로 각 입력모듈(110 및 120)내의 1개 이상의 셀을 가진 버퍼들 사이에서 입력모듈내 경합이 발생한다. 또한, 각 출력포트는 단위시간당 1개의 셀만을 전달받을 수 있으므로 다수의 입력모듈(110 및 120)이 동시에 동일한 출력포트로 셀을 보내고자 한다면 입력모듈사이에서 경합이 발생한다. 이러한 경합을 중재하기위해 스케줄링 방법이 필요하다. 스케줄링 시는 스케줄링 결과로 전송 할 수 있는 셀의 전체 개수, 즉 효율뿐만 아니라 각 입력버퍼별로 공정하게 셀을 전송해야 하는 공정성을 동시에 고려하여야 한다. 스케줄링 효율은 높지만 특정 입력포트들은 셀을 전송하지 못하거나, 서비스 공정성은 좋지만 스케줄링 효율이 낮은 경우에는 유용한 스케줄링 알고리즘이라고 할 수 없다.
스위치의 각 입력포트는 동일한 최대 전송 대역폭(bandwidth)을 갖고 있다. 각 입력포트가 사용하는 전송대역폭은 시변하며 각 출력포트에 대한 전송대역폭도 시변한다. 따라서, 간략성을 위해 모든 입력모듈내 입력버퍼들이 동일 대역폭, 즉 동일 서비스율을 갖는 경우로 단순화 할 수 있는데 iSLIP과 SMA(simple matching algorithm)등의 방법등은 이러한 가정하에서 스케줄링 효율을 개선하는 방법이다.그런데 이러한 가정은 경우에 따라서 서비스 불공정성을 야기한다. 각 입력버퍼에 입력되는 트래픽은 경우에 따라서 트래픽 부하가 적을 수도 있고 또 상대적으로 다른 입력버퍼들에 비해 트래픽 부하가 많을 수도 있다. 각 입력버퍼별로 트래픽 부하를 고려하지 않고 각 입력버퍼를 동일한 비율로만 서비스를 한다면, 트래픽 부하가 상대적으로 많은 입력버퍼들은 시스템 자원을 공정하게 사용하지 못하게 된다.
도 2는 본 발명에 따른 입력버퍼들간의 셀 전송 경합을 중재하는 방법에 대한 흐름을 나타내는 도면이다.
도 3의 (a)는 본 발명의 전송요청비드에 대한 일 예를 나타내는 도면으로, 입력모듈의 최우선권, 대기 중인 셀의 개수 및 입력모듈의 라운드 순서에 대한 정보를 나타낸다.
도 3의 (b)는 본 발명의 전송허가비드에 대한 일 예를 나타내는 도면으로, 출력포트의 최우선권, 출력포트가 전송허가 단계에서 선택한 입력모듈에 대기중인 셀의 개수 및 출력포트의 라운드순서에 대한 정보를 나타낸다.
이하 도 2 , 도 3의 (a) 및 도 3의 (b)를 함께 설명한다.
각 입력모듈의 입력버퍼에 유입되는 트래픽 부하량은 시변하고 또 이를 직접 사용할 경우 정규화(normalization) 하여 스케줄링시 고려하여야 하므로 고속동작을 필요로 하는 스케줄링에는 적합하지 않다. 또한, 백프레셔(backpressure) 에 따른 전송기회 손실분, 또는 이전 시간에 발생한 서비스 불공정성 또는 저 스케줄링 효율에 의한 전송기회 손실분 등을 보상하기에는 트래픽 부하량을 직접 사용하는 방법은 적절치 못하다. 트래픽 부하량이 많거나, 전체 시간에서의 스케줄링 불공정성 또는 낮은 스케줄링 효율로 인해 셀이 전송기회를 상실한 경우, 그리고 백프레셔 상태인 경우에는 입력버퍼에 대기중인 셀 개수 가 증가하게 된다. 따라서, 대기중인 셀 개수가 많은 버퍼가 가급적 스케줄링시 우선 순위를 갖도록 한다면 비교적 간단하게 트래픽 부하량에 따라서 서비스를 하고, 스케줄링 불공정성 및 저 스케줄링 효율 보상, 그리고 백프레셔 상태로 인한 손실등을 보상할 수 있다.
이전에 언급한 바와 같이 대기중인 셀 개수가 큰 경우 스케줄링시 우선순위를 갖도록 하는 방법으로 LQF 방법이 있는데 이 방법은 스케줄링시 불공정성을 갖는 문제가 있다. 예를 들어, 2 x 2 스위치에서 입력모듈 1의 버퍼 Q(1,1)에는 2개의 셀이 있고 매 단위 시간당 1개의 셀이 유입된다고 하자. 또, 입력모듈 2의 버퍼 Q(2,1)에는 1개의 셀만 있고 더 이상 유입되는 셀은 없다고 하자. 그러면 LQF 방법에서는 출력포트 1은 항상 Q(1,1)의 셀 개수가 Q(2,1)의 셀 개수보다 크므로 Q(1,1)만 셀을 전송받게 된다. 즉, Q(2,1)는 셀을 전송할 기회를 영원히 갖지 못한다.
LQF(longest queue first)에서 나타나는 서비스 불공정성을 해소하기 위해 셀 개수를 기준으로 스케줄링을 할 때에는 셀 개수가 적은 입력버퍼도 전송 기회를 갖을 수 있도록 보장하여야 한다. 이를 위해 본 발명에서는 대기중인 셀 개수를 사용하여 고 효율과 공정성이 보장되는 스케줄링 방법을 이하의 원칙하에서 개발한다.
(원칙 가) 각 입력버퍼에 일정시간당 최소한의 전송기회를 보장한다.
(원칙 나) 대기중인 셀 개수가 큰 입력버퍼가 전송 경합시 우선권을 갖는다.
최소 전송기회를 보장하기 위해 (원칙 가)가 (원칙 나)에 항상 우선한다.
공정한 스케줄링방법(fair scheduling method, 이하 FSM으로 표시한다)은 simple matching algorithm(SMA)와 같이 전송요청, 전송허가, 전송확정의 순서에 의해서 이루어져 있다. FSM은 경합제어모듈 내에서 매 단위시간 수행되는 스케줄링 방법이다. 매 단위시간 마다 전송요청에서는 출력포트로 셀을 전송할 각 입력모듈들의 입력버퍼(또는, FIFO 큐)에 대기중인 셀 개수에 대한 정보를 수집(210단계)하고 대기 중인 셀의 개수, 입력모듈의 최우선권 및 입력모듈의 라운드 순서에 대한 전송요청비드를 생성(220단계)한다.
전송허가에서는 전송요청비드의 크기를 비교하여 출력포트들로 전송할 우선순위를 가지는 입력모듈을 선택(230단계)하고 출력포트들의 최우선권, 출력포트가 전송허가 단계에서 선택한 입력모듈에 대기중인 셀의 개수 및 출력포트의 라운드 순서에 대한 허가비드를 생성(240단계)한다.
전송확정에서는 전송허가비드의 크기를 비교하여 셀을 수신하는 순위를 가지는 출력포트를 선택 또는 결정한다(250단계). 상기와 같이 선택된 입력모듈에서 선택된 출력포트로 셀을 전송(260단계)하게 된다.
이제 전송요청, 전송허가, 전송확정의 순서에 따라서 상세히 설명하도록 한다.
전송요청에서는, 매 단위시간에 각 입력모듈은 자신의 각 입력버퍼에 대기중인 셀 개수에 대한 정보를 각 입력버퍼에 해당하는 출력포트에 전달한다. 각 입력버퍼의 대기 셀 개수를 완벽하게 전달하려면 많은 정보량을 보내야 한다. 정보량이많으면 효과적인 스케줄링이 가능 하지만 정보전송시에 많은 비트 수를 필요로 하고 이를 처리하기 위한 많은 하드웨어가 필요하다. 또한, 단위시간에 많은 정보를 처리해야 하므로 고속동작에 부적합할 수 있다. 따라서 스케줄링 효율과 하드웨어 구현성과의 상관관계를 고려하여 다음과 같은 전송요청 방법들이 가능하다.
(요청 1) 각 입력버퍼 전체의 셀 개수를 사용하는 방법,
(요청 2) 각 입력버퍼의 특정 위치까지의 셀 개수만 전송하는 방법,
(요청3) 각 입력버퍼에 셀이 있는지, 그리고 셀 개수가 특정 임계값을 초과했는지의 여부만 사용하는 방법.
(요청 1)의 방법이 정보량이 가장 많고 (요청 3) 방법이 정보량이 가장 적으며 2비트의 정보량 (셀 유무를 나타내는 1비트와 특정 임계값 초과 여부를 나타내는 1비트) 만 필요하다.
즉, 전송요청에서, 각 입력모듈은 자신의 입력버퍼에 대기중인 셀 개수 정보를 각 입력버퍼에 해당하는 출력포트에 전달한다. 이때 셀 개수정보는 (요청 1) ~(요청 3) 방법 중 하나로 표현한다.
전송허가에서는, 각 입력모듈로부터 전달된 전송요청 정보를 사용하여 각 출력포트별로 전송허가를 할 입력모듈을 결정한다. 이때 (원칙 가)를 만족시키기 위해 각 출력포트는 입력모듈중 한 입력모듈에 최우선권을 준다. 어떤 출력포트로부터 최우선권을 받은 입력모듈은 다른 입력모듈에 우선하여 그 출력포트에 셀을 전송할 수 있다. 스케줄링 효율을 고려하여 한 입력모듈에 오직 하나의 출력포트만이 최우선권을 부여하도록 한다. 또한, 각 입력모듈에는 서로 다른 출력포트로 전송할셀들이 있으므로 서비스 공정성을 위해 하나의 입력모듈에 최우선권을 할당하는 출력포트가 매 단위시간 마다 변하도록 하되 각 입력모듈은 동일한 비율로 각 출력포트에 대해 최우선권을 갖어야 한다.
어떤 출력포트가 최우선권을 준 입력모듈에 그 출력포트에 전송할 셀이 없는 경우에는 (원칙 나)에 따라서 전송허가를 할 입력모듈을 결정한다. 즉, 자신에게 보낼 셀을 가장 많이 가지고 있는 입력모듈을 선택한다. (요청 1) 내지 (요청 3) 방법에 따라서 각 입력모듈의 셀 개수가 평가되어지는데 각 방법 모두 동일한 평가를 받는 입력모듈이 여러 개 있을 수 있다. 이 경우 1개를 선택하여야 하는데 이를 위해 라운드 순서를 정하고 각 출력포트는 동일한 평가를 받은 입력모듈들에 대해 이 라운드 순서를 비교하여 순서가 상위인 입력모듈을 선택한다. 한 출력포트에서 라운드 순서는 각각의 입력모듈마다 서로 상이하여야 한다. 또한 공정성을 위해 매 단위시간마다 라운드 순서가 변하되 각 입력모듈이 라운드 순서에서 최상위를 차지하는 비율이 균등하도록 하여야 한다.
도 3의 (a)는 전송허가에서 출력포트 j가 각각의 입력모듈 1, ,N에 대해 고려하는 최우선권 정보, 셀 개수 정보, 라운드 순서를 나타내는 전송요청비드(request bid)를 보인 것이다. 각 입력모듈에 대한 요청비드에서 Most significant bit (MSB)는 최우선권을 나타내는 비트이며, 그 다음 중요한 비트는 셀 개수를 나타내는 비트, 그리고 마지막으로 라운드 순서를 나타내는 비트이다. 최우선권 비트는 입력모듈이 최우선권을 갖고 출력포트 j로 전송할 셀이 있는 경우에만 1값을 갖고, 그렇지 않으면 0값을 갖는다. 따라서, 출력포트가 N개의 요청비드의 대소를 비교하여 값이 가장 큰 요청비드를 갖는 입력모듈을 전송허가를 위해 선택한다면 (원칙 가)와 (원칙 나)를 만족시킬 수 있다. 각 출력포트는 전송허가가 된 입력모듈에 전송허가가 되었음을 알린다.
전송허가에서, 각 출력포트는 각 입력모듈별로 최우선권, 셀개수, 라운드 순서로 이루어진 요청비드를 구성한다. 그리고 그 요청비드들의 대소를 비교하여 가장 큰 값의 요청비드를 갖는 입력모듈에 대해 전송을 허가하고 이를 해당 입력모듈에 알린다.
전송확정에서는, 전송허가에서 동일한 입력모듈에 대해 다수개의 출력포트가 전송을 허가 할 수 있다. 따라서, 각 입력모듈은 자신에게 전송허가를 한 출력포트 중 하나를 선택하여 전송을 확정한다. 이때 (원칙 가)를 만족시키기 위해 각 입력모듈 역시 출력포트 중 하나의 출력포트에 최우선권을 부여한다. 스케줄링 효율을 고려하여 한 출력포트에 오직 하나의 입력모듈만이 최우선권을 부여하도록 한다. 또한, 서비스 공정성을 위해 하나의 출력포트에 최우선권을 할당하는 입력모듈이 매 단위시간 마다 변하도록 하되 각각의 입력모듈이 동일한 비율로 최우선권을 그 출력포트에 할당 하여야 한다.
어떤 입력모듈이 최우선권을 준 출력포트에서 전송허가가 오지 않았다면 (원칙 나)에 따라서 전송확정을 할 출력포트를 결정한다. 즉, 자신이 가장 많은 셀을 보내야 하는 출력포트를 선택한다. 이때 (요청 1) ~ (요청 3) 에 기술된 방법에 따라서 각 입력모듈의 셀 개수가 평가되어졌으므로 동일한 평가를 받는 출력포트가 여러 개 있을 수 있다. 이 경우 1개를 선택하여야 하는데 이를 위해 역시 라운드 순서를 정하고 각 입력모듈은 동일한 평가를 받은 출력포트들에 대해 이 라운드 순서를 비교하여 순서가 상위인 출력포트를 선택한다. 한 입력모듈에서 라운드 순서는 각각의 출력포트마다 서로 상이하여야 한다. 또한 공정성을 위해 매 단위시간마다 라운드 순서가 변하되 각 출력포트가 라운드 순서에서 최상위를 차지하는 비율이 균등하도록 하여야 한다.
도 3의 (b)는 전송확정에서 입력모듈 i가 출력포트 1, ,N에 대해 고려하는 최우선권 정보, 셀 개수 정보, 라운드 순서를 나타내는 전송허가비드(grant bid)를 보인 것이다. 각 출력포트에 대한 허가비드에서 MSB는 최우선권을 나타내는 비트이며, 그 다음 중요한 비트는 셀 개수를 나타내는 비트, 그리고 마지막으로 라운드 순서를 나타내는 비트이다. 최우선권 비트는 어떤 출력포트가 최우선권을 갖고 그 출력포트가 입력모듈 i로 전송을 허가한 경우에만 1값을 갖고, 그렇지 않으면 0값을 갖는다. 따라서, 입력모듈은 N개의 허가비드의 대소를 비교하여 값이 가장 큰 허가비드를 갖는 출력포트를 전송확정하면 (원칙 가)와 (원칙 나)를 만족시킬 수 있다. 전송확정이 되면 각 입력모듈은 전송확정이 된 출력포트에 전송확정이 되었음을 알린다.
전송확정에서, 각 입력모듈은 전송허가를 전송한 출력포트들에 대해 최우선권, 셀개수, 라운드 순서로 이루어진 허가비드를 구성한다. 그리고 그 허가비드들의 대소를 비교하여 가장 큰 값의 허가비드를 갖는 출력포트에 대해 전송을 확정하고 이를 해당 출력포트에 알린다.
전송허가와 전송확정시 각각의 최우선권 및 라운드 순서를 매 단위시간 마다변화시킨다. FSM 동작의 결과로 입력모듈 i가 출력포트 j와 전송확정이 되었다면 입력모듈 i에서는 Q(i,j)가 셀을 공간분할 스위치를 통하여 출력포트 j로 전송한다.
도 4는 본 발명에 의한 방법을 출력버퍼형 스위치, iSLIP 및 SMA의 성능과 비교하기 위하여 셀 지연시간의 평균값을 나타내는 도면이다.
도 5는 본 발명에 의한 방법과 SMA를 불균일 트래픽 상태에서 비교하기 위한 결과를 나타내는 도면이다.
이하 도 4 및 도 5를 함께 설명한다.
FSM의 성능을 16 x 16 스위치에 대해 컴퓨터 모의실험으로 예시한다. 이하 모든 FSM의 컴퓨터 모의실험에서 요청비드는 다음과 같이 구성하였다. 먼저 최우선권은 출력포트 j에 대해 최초 초기치 (N-j+1)를 갖는다. 즉, 입력모듈 (N-j+1)에 최초로 최우선권을 준다. 공정성을 위해 매 단위시간마다 최우선권값을 1씩 증가시키고 그 값이 새로운 최우선권을 갖는 입력모듈이 된다. 만약 그 증가시킨 최우선권값이 N을 초과하면 그 증가시킨 값에서 N을 뺀 값이 새로이 최우선권값이 되며 그 값이 새로운 최우선권을 갖는 입력모듈이 된다. 최초 라운드 순서는 출력포트 j에 대해 입력 모듈 (N-j+1, N-j+2, ,N,1,2, ,N-j) 순서이다. 다음 단위시간에는 이전 시간의 라운드 순서를 우측으로 1번 회전시킨 (N-j+2, N-j+3, ,N,1,2, ,N-j+1) 순서가 된다. 이와 같이 매 단위시간마다 이전 라운드순서를 우측으로 1번 회전시켜서 새로운 라운드 순서로 사용한다. 셀 개수 정보는 셀 유무를 나타내는 1비트를 상위비트에, 그 다음으로 대기 셀 수가 16이상인지를 나타내는 1비트를 하위비트에 위치시켜, 총 2비트를 사용하여 나타내었다.
또, 허가비드도 요청 비드와 동일한 방식으로 구성하였다. 먼저 최우선권은 입력모듈 i에 대해 최초 초기치 (N-i+1)를 갖는다. 갱신 방식은 허가 비드의 그것과 동일하다. 최초 라운드 순서는 입력모듈 i에 대해 출력포트 (N-i+1, N-i+2, ,N,1,2, ,N-i) 순서이다. 이의 갱신 방식은 요청비드의 그것과 같다. 셀 개수 정보도 허가비드의 경우와 같이 셀 유무를 나타내는 1비트를 상위비트에, 그 다음으로 대기 셀 수가 16이상인지를 나타내는 1비트를 하위비트에 위치시켜, 총 2비트를 사용하여 나타내었다.
도 4에서는, 출력버퍼형 스위치(OBS), iSLIP, SMA, FSM의 성능을 비교하기 위하여 도시한 그래프로서, 각 방법들의 셀 시지연(cell delay) 평균값을 도시한 그래프이다. 상기 성능비교에 사용된 입력트래픽 모델은 Bernoulli 도착과정(arrival process) 이며 각 셀의 목적지는 각 출력포트에 대하여 균일하게 분포되어 있다. 상기한 트래픽의 입력부하 (load)를 증가시키면서 평균시지연을 모의실험으로 구하였다. 모의실험은 100000셀 시간동안 실행되었다. 각 방법을 각 셀 시간당 1회만 반복 하였다. 도 4에서 알 수 있듯이, FSM의 성능이 고부하에서 SMA보다 약간 좋으며, 단위시간당 1회 반복시 FSM과 SMA의 성능이 iSLIP보다 평균지연시간에서 전반적으로 우수하다.
도 5는 SMA와 FSM을 불균일 트래픽상태에서 비교한 결과이다. 상기 성능비교에 사용된 트래픽 모델은 Bernoulli 도착과정이며 각 셀의 목적지는 1~8번 입력모듈에 도착하는 셀들의 목적지는 1~8번 출력포트로만 제한 되며 그 제한된 출력포트에 대하여 균일하게 분포되어있다. 9~16번 입력모듈에 도착하는 셀들의 목적지는 제한이 없으며 각 출력포트에 대하여 균등하게 분포되어 있다. 따라서, 1~8번 출력포트에는 트래픽의 입력부하가 증가함에 따라 과부하상태가 초래된다. 이 경우 서비스 공정성이 없으면 특정 입력모듈만 대부분 서비스를 받게 되어 서비스를 상대적으로 덜 받은 다른 입력모듈에서 대기하는 셀들의 증가로 인해 시지연이 증가한다. 상기한 트래픽의 입력부하를 증가시키면서 평균시지연을 모의실험으로 구하였다. 모의실험은 100000셀시간동안 실행되었다. 매 단위시간마다 FSM과 SMA를 각각 2번씩 반복하였다. 도 5에서 알 수 있듯이 FSM이 불균형 트래픽하에서 SMA보다 시지연이 양호하므로 서비스 공정성에서 우수함을 알 수 있다.
위에서 양호한 실시예에 근거하여 이 발명의 성능을 설명하였지만, 이러한 실시예는 이 발명을 제한하려는 것이 아니라 예시하려는 것이다. 이 발명이 속하는 분야의 숙련자에게는 이 발명의 기술사상을 벗어남이 없이 위 실시예에 대한 다양한 변화나 변경 또는 조절이 가능함이 자명할 것이다. 그러므로, 이 발명의 보호범위는 첨부된 청구범위에 의해서만 한정될 것이며, 위와 같은 변화예나 변경예 또는 조절예를 모두 포함하는 것으로 해석되어야 할 것이다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드디스크, 플로피디스크, 플래쉬 메모리, 광데이터 저장장치 등이 있으며, 또한 캐리어웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서 설명한 바와 같이, 본 발명에 의하면, 전송요청, 전송허가, 전송확정의 간단한 3단계 동작으로 구성되어있다. 본 발명은 셀 개수정보를 사용하여 각 입력모듈의 입력 트래픽에 비례하여 서비스 비율을 할당하는 효과, 이전 시간에서 발생한 서비스 불공정성 해소 및 백프레셔와 같은 스위치 동작조건 변화로 인해 발생한 서비스 불공정성 등을 해소하였다. 또한, 셀 개수정보를 특정 임계값 초과여부만을 표현하는 방식 등으로 사용하여 구현의 용이성을 갖을 수 있고 고속동작이 가능하다. 본 발명은 실시간 및 각종 멀티미디어 트래픽의 증가로 다양한 트래픽 환경이 존재하고 따라서 사용자간의 서비스 공정성이 필수적인 최근의 ATM 또는 IP 망의 단위 스위치 또는 스위치 네트워크에 적합한 스케줄링 방법이다.
Claims (12)
- 복수 개의 입/출력포트를 갖고, 하나의 입력포트는 하나의 입력모듈과 연결되어 있고, 하나의 입력모듈은 하나의 출력포트별로 분리된 입력버퍼를 갖는 입력버퍼형 스위치를 이용하여 셀 전송을 하는 방법에 있어서,(a) 상기 출력포트들로 셀을 전송할 입력모듈들에 대기 중인 셀의 개수에 대한 정보를 수집하는 단계;(b) 상기 입력모듈별로 상기 셀의 개수, 입력모듈의 최우선권 및 입력모듈의 라운드 순서에 대한 전송요청비드를 생성하는 단계;(c) 상기 입력모듈별 전송요청비드의 크기를 비교하여 상기 출력포트로 전송할 우선순위를 가지는 입력모듈을 선택하는 단계;(d) 상기 입력포트로부터 전송되는 셀을 수신하는 출력포트들의 최우선권, 상기 단계 (c)에서 출력포트가 선택한 입력모듈에 대기중인 셀의 개수 및 상기 출력포트의 라운드 순서에 대한 전송허가비드를 생성하는 단계; 및(e) 상기 전송허가비드의 크기를 비교하여 상기 입력모듈로부터 셀을 수신하는 출력포트를 선택하는 단계를 포함하는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 1항에 있어서, 상기 (a)단계는상기 입력모듈에 대기중인 셀의 개수를 소정의 단위시간마다 수집하여 셀의 개수정보를 파악하는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 1항에 있어서, 상기 (a)단계는상기 입력모듈들의 각 입력버퍼들에 대기 중인 전체 셀의 개수에 대한 정보를 수집하는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 1항에 있어서, 상기 (a)단계는상기 입력모듈들의 각 입력버퍼의 특정 위치까지의 셀 개수의 정보를 수집하는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 1항에 있어서, 상기 (a)단계는상기 입력모듈들의 각 입력버퍼들에 대기 중인 셀의 유무 및 대기 중인 셀의 개수가 소정의 임계값을 초과했는 지에 대한 여부를 나타내는 정보를 수집하는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 1항에 있어서, 상기 (b)단계에서,상기 입력모듈의 최우선권은 상기 출력포트들이 상기 입력모듈들로부터 수신하는 우선순위를 나타내고 하나의 출력포트에 대해서 하나의 입력모듈에게만 최우선권을 부여하는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 6항에 있어서,하나의 입력모듈에 부여되는 최우선권은 출력포트별로 소정의 단위시간마다 바뀌는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 1항에 있어서, 상기 (b)단계에서,상기 입력모듈의 라운드 순서는 상기 입력모듈들에 대기 중인 셀의 개수가동일한 입력모듈들의 전송 우선순위에 대한 동순위를 방지하기 위하여 상기 출력포트들별로 상기 입력모듈들의 순위를 지정하고 소정의 단위시간마다 상기 라운드 순서는 바뀌는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 1항에 있어서, 상기 (d)단계에서,상기 출력포트의 최우선권은 상기 입력모듈들이 상기 출력포트들로 전송하는 우선순위를 나타내고 하나의 입력모듈에 대해서 하나의 출력포트에게만 최우선권을 부여하는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 9항에 있어서,하나의 출력포트에 부여되는 최우선권은 입력모듈별로 소정의 단위시간마다 바뀌는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 1항에 있어서, 상기 (d)단계에서,상기 출력포트의 라운드 순서는 하나의 입력모듈에 대기 중인 셀의 개수가 동일한 출력포트들의 전송 우선순위에 대한 동순위를 방지하기 위하여 상기 입력모듈들별로 상기 출력포트들의 순위를 지정하고 소정의 단위시간마다 상기 라운드 순서는 바뀌는 것을 특징으로 하는 입력버퍼형 스위치의 공정한 스케쥴링 방법.
- 제 1항 내지 제 11항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0085843A KR100416507B1 (ko) | 2001-12-27 | 2001-12-27 | 입력버퍼형 스위치의 공정한 스케줄링 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0085843A KR100416507B1 (ko) | 2001-12-27 | 2001-12-27 | 입력버퍼형 스위치의 공정한 스케줄링 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030055765A KR20030055765A (ko) | 2003-07-04 |
KR100416507B1 true KR100416507B1 (ko) | 2004-01-31 |
Family
ID=32214016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0085843A KR100416507B1 (ko) | 2001-12-27 | 2001-12-27 | 입력버퍼형 스위치의 공정한 스케줄링 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100416507B1 (ko) |
-
2001
- 2001-12-27 KR KR10-2001-0085843A patent/KR100416507B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20030055765A (ko) | 2003-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7283471B2 (en) | System and method for regulating message flow in a digital data network | |
CA2329542C (en) | System and method for scheduling message transmission and processing in a digital data network | |
US6160812A (en) | Method and apparatus for supplying requests to a scheduler in an input buffered multiport switch | |
US10764208B2 (en) | Distributed switch architecture | |
KR100339329B1 (ko) | 입력/출력 테라비트 스위치들을 위한 rrgs-라운드-로빈 그리디 스케쥴링 | |
EP0981878B1 (en) | Fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch | |
US7738472B2 (en) | Method and apparatus for scheduling packets and/or cells | |
KR100468946B1 (ko) | 간단한 파이프라인 방식을 이용한 입력 버퍼형 스위치 및그 경합 방법 | |
EP1521411B1 (en) | Method and apparatus for request/grant priority scheduling | |
KR100416507B1 (ko) | 입력버퍼형 스위치의 공정한 스케줄링 방법 | |
Yu et al. | Integration of look-ahead multicast and unicast scheduling for input-queued cell switches | |
JPH07297831A (ja) | 入力バッファ型atmスイッチ回路 | |
JP2001268082A (ja) | 同一宛先セルの優先制御装置及びその方法 | |
Park et al. | An efficient ATM cell scheduling scheme for improving real-time ATM services | |
Ma et al. | Performance of circuit switched lans under different traffic conditions | |
Hegde et al. | Scaling high-speed shared-memory switch fabric buffers |
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: 20090102 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |