KR100544837B1 - 스케줄링 방법 및 이를 수행하기 위한 스케줄러 - Google Patents

스케줄링 방법 및 이를 수행하기 위한 스케줄러 Download PDF

Info

Publication number
KR100544837B1
KR100544837B1 KR1020030061648A KR20030061648A KR100544837B1 KR 100544837 B1 KR100544837 B1 KR 100544837B1 KR 1020030061648 A KR1020030061648 A KR 1020030061648A KR 20030061648 A KR20030061648 A KR 20030061648A KR 100544837 B1 KR100544837 B1 KR 100544837B1
Authority
KR
South Korea
Prior art keywords
voq
voqs
weight
scheduler
information
Prior art date
Application number
KR1020030061648A
Other languages
English (en)
Other versions
KR20050024795A (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 KR1020030061648A priority Critical patent/KR100544837B1/ko
Publication of KR20050024795A publication Critical patent/KR20050024795A/ko
Application granted granted Critical
Publication of KR100544837B1 publication Critical patent/KR100544837B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • 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/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Landscapes

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

Abstract

신속하고 효율적으로 스케줄링하는 스케줄링 방법에 관한 발명에 관한 것이다. 하나의 포트에 포함된 복수의 브이오큐(VOQ)들이 순차적으로 선택되고, 선택된 브이오큐(VOQ)의 가중치가 저장된 브이오큐(VOQ)의 가중치와 비교된다. 상기 비교에 따라 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보가 저장되고, 작은 가중치를 가지는 브이오큐(VOQ)의 번호가 제공된다. 다음 브이오큐(VOQ)가 선택되고, 상기 과정들이 반복된다. 상기 스케줄링은 가중치들을 비교하여 스케줄링하므로, 신속하고 효율적으로 스케줄링을 할 수 있다.
크로스바, CROSSBAR, VOQ, VIRTUAL OUTPUT QUEUE, SCHEDULER, 스케줄러

Description

스케줄링 방법 및 이를 수행하기 위한 스케줄러{METHOD OF SCHEDULING AND SCHEDULER FOR PERFORMING THE SAME}
도 1은 본 발명의 스케줄러를 이용한 스위치의 구성을 도시한 블록도이다.
도 2는 본 발명의 스케줄러를 이용한 스위치의 상세 구성을 도시한 블록도이다.
도 3은 본 발명에 바람직한 일 실시예에 따른 패킷을 도시한 도면이다.
도 4a는 본 발명의 바람직한 일 실시예에 따른 스케줄링 과정을 도시한 개략도이다.
도 4b는 본 발명의 바람직한 다른 실시예에 따른 스케줄링 과정을 도시한 도면이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 스케줄러의 구성을 도시한 블록도이다.
도 6은 본 발명의 바람직한 일 실시예에 따른 선택부의 구성을 도시한 블록도이다.
도 7은 본 발명의 스케줄러를 이용한 스위치의 동작을 도시한 도면이다.
도 8은 본 발명의 바람직한 일 실시예에 따른 스케줄링 동작을 도시한 순서도이다.
<도면의 주요 부분에 대한 부호의 설명>
10 : 입력부 30 : 크로스바
50 : 출력부 70 : 제어부
300 : 스케줄러 500 : 선택부
520 : 비교부 540 : 저장부
본 발명은 스케줄링 방법 및 이를 수행하기 위한 스케줄러에 관한 것으로, 더욱 상세하게는 신속하고 효율적으로 스케줄링하는 스케줄링 방법 및 이를 수행하기 위한 스케줄러에 관한 것이다.
크로스바를 사용하는 라우터 및 패킷 스위치는 입력 큐잉 방식과 출력 큐잉 방식을 사용한다. 고속 라우터 및 스위치는 일반적으로 입력 큐잉 방식을 이용한다. 그러나, 입력 큐잉 방식은 헤드 오브 라인(head of line, 이하 "HOL"라 함) 블러킹(blocking) 문제 때문에 높은 스루풋(throughput)을 얻을 수 없다. 그래서, 높은 스루풋(throughput)을 얻을 수 있는 다양한 방법이 제안되었다.
종래의 스위치는 상기 크로스바와 1개의 스케줄러를 이용하였으나, 새롭게 제안된 스위치는 각기 스케줄러를 가지는 복수의 입력포트들을 포함하고 있다. 상기 스위치가 N(N은 2이상의 정수)개의 출력포트들을 포함하고 있는 경우, 상기 각 입력포트들은 각기 N개의 브이오큐(VOQ)들을 포함하고 있다. 즉, 상기 크로스바는 N×N 크로스바이다. 그러므로, 랜덤한 스케줄링을 위해서
Figure 112003033118317-pat00001
의 연산이 요구된다.
스케줄링 방식에는 MSM(maximum sized match) 방식이 있다. 상기 MSM 방식은 스케줄링하여 상기 입력포트들을 상기 출력포트에 최대한 매치(match)시키는 방식을 의미한다. 다만, 상기 MSM 방식은 우선 순위에 관계없이 상기 입력포트들을 상기 출력포트들에 매치(match)시킨다. 그러므로, 상기 우선 순위에 따라 패킷이 전송되어야 하는 경우에는 적당하지 않다. 또한, 상기 MSM 방식은
Figure 112003033118317-pat00002
연산을 요구한다. 즉, 스케줄링을 위해 복잡한 연산이 요구된다. 그 결과, 스케줄링을 위한 스케줄링 시간이 지연된다.
스케줄링 방식에는 MWM(maximum weighted match) 방식이 있다. 상기 MWM 방식은 스케줄링하여 가중치들의 합이 최대가 되도록 하는 방식이다. 상세하게는, 제 1 입력포트에서 선택된 브이오큐(VOQ) 내지 제 N 입력포트에서 선택된 브이오큐(VOQ)의 가중치의 합이 최대가 되도록 한다. 상기 각 브이오큐(VOQ)들은 각기 가중치를 가지고 있다. 상기 MWM 방식은
Figure 112003033118317-pat00003
연산을 요구한다. 즉, 스케줄링을 위해 복잡한 연산이 요구된다. 그 결과, 스케줄링을 위한 스케줄링 시간이 지연된다.
그러므로, 신속하며 효율적으로 스케줄링을 할 수 있는 스케줄링 장치가 요구된다.
본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 제 1 목적은 신속하고 효율적으로 스케줄링하는 스케줄링 방법을 제공하는 것이다.
본 발명의 제 2 목적은 상기 스케줄링 방법을 실행하는데 특히 적합한 스케줄러를 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 바람직한 일 실시예에 따른 스케줄링 방법은 (a) 하나의 포트에 포함된 복수의 브이오큐(VOQ)들을 순차적으로 선택하는 단계; (b) 선택된 브이오큐(VOQ)의 가중치를 저장된 브이오큐(VOQ)의 가중치와 비교하는 단계; (c) 상기 비교에 따라 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 단계; (d) 상기 비교에 따라 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 제공하는 단계; (e) 다음 브이오큐(VOQ)를 선택하는 단계; 및 (f) (b) 단계 내지 (e) 단계를 반복하는 단계를 포함할 수 있다. 또한, 상기 선택된 브이오큐(VOQ)가 마지막 브이오큐(VOQ)인지의 여부를 판단하는 단계를 더 포함할 수 있다. 상기 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함한다. 상기 각 브이오큐(VOQ)의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례할 수 있고, 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례할 수 도 있다. 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공한다.
본 발명의 다른 실시예에 따른 스케줄링 방법은 (a) 제공되는 제 1 브이오큐(VOQ)의 번호에 상응하는 브이오큐(VOQ)를 선택하는 단계; (b) 선택된 브이오큐(VOQ)의 가중치를 저장된 브이오큐(VOQ)의 가중치와 비교하는 단계; (c) 상기 비교에 따라 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 단계; (d) 상기 비교에 따라 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 제공하는 단계; (e) 다음으로 제공되는 제 2 브이오큐(VOQ)의 번호에 상응하는 브이오큐(VOQ)를 선택하는 단계; 및 (f) (b) 단계 내지 (e) 단계를 반복하는 단계를 포함할 수 있다. 하나 이상의 브이오큐(VOQ)의 번호가 제공된다. 상기 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함한다. 상기 각 브이오큐(VOQ)의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례할 수도 있고, 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례할 수도 있다. 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공하는 단계가 더 포함된다.
본 발명의 바람직한 일 실시예에 따른 스케줄러는 한 포트에 포함된 복수의 브이오큐(VOQ)들을 순차적으로 선택하는 선택부; 선택된 브이오큐(VOQ)의 가중치를 기설정된 가중치 및 저장된 브이오큐(VOQ)의 가중치와 비교하고, 상기 비교에 따라 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 제공하는 비교부; 및 상기 비교에 따라 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 저장부를 포함할 수 있다. 상기 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함한다. 비교되는 상기 브이오큐(VOQ)들의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례할 수도 있고, 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례할 수도 있다. 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공한다. 상기 각 브이오큐들은 각기 버퍼인 것을 특징으로 하는 스케줄러.
본 발명의 바람직한 다른 실시예에 따른 스케줄러는 제공되는 제 1 브이오큐(VOQ)의 번호에 상응하는 제 2 브이오큐(VOQ)를 선택하는 선택부; 상기 선택된 제 2 브이오큐(VOQ)의 가중치를 기설정된 가중치 및 저장된 브이오큐(VOQ)의 가중치와 비교하고, 상기 비교에 따라 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 제공하는 비교부; 및 상기 비교에 따라 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 저장부를 포함할 수 있다. 상기 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함한다. 비교되는 상기 각 브이오큐(VOQ)들의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례할 수도 있고, 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례할 수도 있다. 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공한다. 상기 각 브이오큐들은 각기 버퍼일 수 있다.
이하에서는 첨부된 도면을 참조하여 본 발명에 따른 스케줄링 방법 및 이를 수행하기 위한 스케줄러의 바람직한 실시예를 자세히 설명하도록 한다.
도 1은 본 발명의 스케줄러를 이용한 스위치의 구성을 도시한 블록도이다.
도 1을 참조하면, 상기 스위치는 입력부(10), 크로스바(30), 출력부(50) 및 제어부(70)를 포함할 수 있다.
입력부(10)는 복수의 입력포트들을 포함하고, 상기 각 입력포트들은 각기 하나의 스케줄러(scheduler)를 포함할 수 있다. 상기 입력포트들은 복수의 패킷들을 제공받고, 상기 패킷들을 크로스바(30)를 통하여 복수의 출력포트들에 전송한다. 상기 각 스케줄러는 각기 스케줄링을 한다. 이에 대한 자세한 설명은 이하 첨부된 도면을 참조하여 상술하겠다.
크로스바(crossbar, 30)는 상기 입력포트들로부터 제공된 상기 패킷들을 상기 출력포트들로 전송한다.
출력부(50)는 상기 출력포트들을 포함하며, 크로스바(30)로부터 전송된 상기 패킷들을 출력한다. 본 발명의 일 실시예에 따른 상기 출력포트들의 수는 상기 입력포트들의 수와 동일하다.
제어부(70)는 상기 패킷들의 전송을 제어한다. 이에 대한 자세한 설명은 이하 첨부된 도면을 참조하여 상술하겠다.
도 2는 본 발명의 스케줄러를 이용한 스위치의 상세 구성을 도시한 블록도이다.
도 2를 참조하면, 입력부(10)는 제 1 입력포트(100) 내지 제 N(N은 2이상의 정수) 입력포트(140)를 포함할 수 있다. 각 입력포트들(100, 140)은 1개의 스케줄러(300, 340)와 1개의 패킷부(200, 240)를 포함할 수 있다. 각 패킷부들(200, 240) 은 각기 N개의 브이오큐(VOQ)들을 포함할 수 있다. 본 발명의 일 실시예에 따른 상기 N은 출력부(50)의 상기 출력포트들의 수이다. 즉, 각 패킷부들(200, 240)은 상기 출력포트들에 상응하는 브이오큐(virtual output queue, 이하 "VOQ"라 함)들을 가지고 있다. 예를 들어, 상기 출력포트들의 수가 3인 경우, 상기 각 입력포트들은 3개의 브이오큐(VOQ)들을 가진다.
스케줄러(300, 340)는 상기 패킷을 상기 출력포트에 전송하기 위하여 스케줄링(scheduling)한다. 상세하게는, 각 스케줄러(300, 340)는 상기 패킷을 1개의 상기 출력포트로 전송하기 위한 1개의 상기 브이오큐(VOQ)를 선택한다. 본 발명의 일 실시예에 따른 각 스케줄러(300, 340)는 상기 입력포트들을 서로 다른 상기 출력포트들에 각기 대응시킨다. 즉, 스케줄러(300, 340)는 전송 효율을 높이기 위하여 상기 입력포트들과 상기 출력포트들을 적절하게 대응시킨다.
상기 브이오큐(VOQ)들은 상기 출력포트들로 전송하기 위한 상기 패킷들을 저장하고 있다. 1개의 입력포트에서, 상기 각 브이오큐(VOQ)들은 각기 1개의 출력포트에 상응한다. 예를 들어, 제 1 브이오큐(VOQ)는 제 1 출력포트(400)로 전송하기 위한 제 1 패킷을 저장하고 있으며, 제 N 브이오큐(VOQ)는 제 N 출력포트(440)로 전송하기 위한 제 N 패킷을 저장하고 있다. 본 발명의 일 실시예에 따른 상기 각 브이오큐(VOQ)들은 버퍼이다. 그리고, 상기 제 1 패킷 내지 상기 제 N 패킷은 길이가 동일하다. 즉, 상기 패킷들이 입력부(10)에 제공되기 전에, 상기 패킷들은 동일한 길이로 변화된다. 예를 들어, 라우터(router)의 경우, 라우팅 엔진(routing engine)이 이와 같은 역할을 수행한다.
출력부(50)는 N개의 상기 출력포트들을 포함할 수 있다.
제어부(70)는 상기 패킷들의 전송을 제어한다. 상세하게는, 상기 패킷들을 송신하기 위한 상기 입력포트들이 선택된 경우, 제어부(70)는 상기 입력포트들을 제어하여 상기 패킷들을 상기 출력포트들에 동시에 전송한다.
본 발명의 스케줄러를 이용하는 스위치는 상기 입력포트별로 상기 패킷들을 전송하기 위한 상기 브이오큐(VOQ)들을 순차적으로 선택하므로, 효율적으로 상기 패킷들을 전송할 수 있다.
도 3은 본 발명에 바람직한 일 실시예에 따른 패킷을 도시한 도면이다.
도 3을 참조하면, 상기 패킷은 우선 순위 정보 및 출력포트에 대한 정보를 가지고 있다. 상기 우선 순위 정보는 가중치(weight) 판단에 이용될 수 있고, 상기 출력포트에 대한 정보는 상기 패킷이 전송될 출력포트에 대한 정보를 가지고 있다.
도 4a는 본 발명의 바람직한 일 실시예에 따른 스케줄링 과정을 도시한 개략도이고, 도 4b는 본 발명의 바람직한 다른 실시예에 따른 스케줄링 과정을 도시한 도면이다.
도 4a를 참조하면, 입력부(10)는 1개의 마스터(master) 포트와 복수의 슬레이브(slave) 포트들을 포함할 수 있다. 상기 마스터 포트는 상기 스케줄러들 중 스케줄링 동작을 시작하는 포트를 의미하고, 상기 슬레이브 포트들은 상기 마스터 포트의 동작 후 스케줄링 동작을 수행하는 포트들을 의미한다.
도 4a에 도시된 바와 같이, 본 발명의 일 실시예에 따른 상기 마스터 포트는 상기 제 1 입력포트이고, 상기 슬레이브 포트들은 제 2 입력포트, 제 3 입력포트 및 제 4 입력포트이다. 상기 제 1 입력포트의 상기 제 1 스케줄러가 스케줄링 동작을 수행한다. 그 결과, 제 1 패킷을 제공하기 위한 1개의 브이오큐(VOQ)가 선택된다. 이에 대한 자세한 설명은 이하 첨부된 도면을 참조하여 상술하겠다.
이어서, 상기 제 2 입력포트의 제 2 스케줄러가 스케줄링 동작을 수행하여 제 2 패킷을 제공하기 위한 1개의 브이오큐(VOQ)를 선택한다.
계속하여, 상기 제 3 입력포트의 제 3 스케줄러가 스케줄링 동작을 수행하여 제 3 패킷을 제공하기 위한 1개의 브이오큐(VOQ)를 선택한다.
이어서, 상기 제 4 입력포트의 제 4 스케줄러가 스케줄링 동작을 수행하여 제 4 패킷을 제공하기 위한 1개의 브이오큐(VOQ)를 선택한다.
계속하여, 제어부(70)는 상기 입력포트들을 제어하여 상기 선택된 브이오큐(VOQ)들이 가지고 있는 상기 패킷들을 상기 출력포트들에 전송한다.
도 4b를 참조하면, 상기 마스터 포트가 상기 제 2 입력포트이고, 상기 슬레이브 포트들이 상기 제 3 입력포트, 상기 제 4 입력포트 및 상기 제 1 입력포트이다. 상기 제 2 입력포트의 상기 제 2 스케줄러가 스케줄링 동작을 수행하여 상기 제 2 패킷을 제공하기 위한 1개의 브이오큐(VOQ)를 선택한다.
이어서, 상기 제 3 입력포트의 상기 제 3 스케줄러가 스케줄링 동작을 수행하여 상기 제 3 패킷을 제공하기 위한 1개의 브이오큐(VOQ)를 선택한다.
계속하여, 상기 제 4 입력포트의 상기 제 4 스케줄러가 스케줄링 동작을 수행하여 상기 제 4 패킷을 제공하기 위한 1개의 브이오큐(VOQ)를 선택한다.
이어서, 상기 제 1 입력포트의 상기 제 1 스케줄러가 스케줄링 동작을 수행 하여 상기 제 1 패킷을 제공하기 위한 1개의 브이오큐(VOQ)를 선택한다.
계속하여, 제어부(70)는 상기 입력포트들을 제어하여 상기 선택된 브이오큐(VOQ)들이 가지고 있는 상기 패킷들을 상기 출력포트들에 전송한다.
도 4a 및 도 4b를 참조하면, 상기 마스터 포트가 타임 슬롯에 따라 순차적으로 변한다. 그 결과, 상기 패킷들이 상기 출력포트들에 공평하게 전송된다.
도 5는 본 발명의 바람직한 일 실시예에 따른 스케줄러의 구성을 도시한 블록도이다.
도 5를 참조하면, 상기 스케줄러는 선택부(500, 505, 510), 비교부(520, 525, 530) 및 저장부(540, 545, 550)를 포함할 수 있다.
선택부(500, 505, 510)는 제 M(M은 1이상 N이하의 정수) 입력포트가 상기 마스터 포트인 경우, 상기 제 M 입력포트에 포함된 상기 브이오큐(VOQ)들을 순차적으로 선택하고, 상기 제 M 입력포트가 상기 슬레이브 포트인 경우, 제 M-1 입력포트로부터 제공된 브이오큐(VOQ)의 번호에 상응하는 상기 M 입력포트의 브이오큐(VOQ)를 선택한다. 다만, 상기 제 M 입력포트가 상기 슬레이브 포트이고 상기 제 1 입력포트인 경우, 선택부(500, 505, 510)는 N 입력포트로부터 제공된 브이오큐(VOQ)의 번호에 상응하는 상기 제 1 입력포트의 브이오큐(VOQ)를 선택한다.
비교부(520, 525, 530)는 상기 선택된 브이오큐(VOQ)의 가중치와 저장부(540)에 저장된 가중치를 비교한다. 그리고, 비교부(520)는 상기 비교에 따라 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 M+1 브이오큐(VOQ)에 제공하며, 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장부(540, 545, 550)에 제공한 다. 또한, 비교부(520)는 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 상기 M+1 입력포트에 제공한다. 여기서, 상기 M과 N이 같은 경우, 작은 가중치를 가지는 브이오큐(VOQ)의 번호는 상기 제 1 입력포트에 제공된다.
상기 가중치(weight)는 상기 브이오큐(VOQ)가 가지고 있는 상기 패킷의 수에 비례할 수도 있고, 전송되는 상기 패킷의 우선 순위에 비례할 수도 있다.
저장부(540, 545, 550)는 "0" 값을 가지는 기설정된 가중치를 저장하고, 비교부(520)로부터 제공된 상기 브이오큐(VOQ)에 대한 정보를 저장한다. 상기 저장된 브이오큐(VOQ)에 대한 정보는 가중치 정보를 포함하고 있다.
도 6은 본 발명의 바람직한 일 실시예에 따른 선택부의 구성을 도시한 블록도이다.
도 6을 참조하면, 선택부(500, 505, 510)는 제 1 선택부(600, 605, 610) 및 제 2 선택부(620, 625, 630)를 포함할 수 있다.
제 1 선택부(600, 605, 610)는 상기 제 M 입력포트가 상기 마스터 포트인 경우에 동작하고, 상기 패킷부(200, 240)로부터 순차적으로 상기 브이오큐(VOQ)들을 리드한다.
제 2 선택부(620, 625, 630)는 상기 제 M 입력포트가 상기 슬레이브 포트인 경우에 동작하고, 상기 제 M-1 입력포트로부터 제공된 번호에 상응하는 브이오큐(VOQ)를 리드한다. 다만, 상기 제 M 입력포트가 상기 제 1 입력포트인 경 우, 제 2 선택부(600, 625, 630)는 상기 N 입력포트로부터 제공된 번호에 상응하는 브이오큐(VOQ)를 리드한다.
본 발명의 일 실시예에 따른 스케줄러는 제 1 선택부(600, 605, 610)와 제 2 선택부(620, 625, 630) 중 하나만을 포함할 수도 있고, 2개 모두 포함할 수도 있다.
도 7은 본 발명의 스케줄러를 이용한 스위치의 동작을 도시한 도면이다.
도 7을 참조하면, 상기 마스터 포트가 상기 제 1 입력포트이고, 제 1 슬레이브 포트가 상기 제 2 입력포트이며, 제 2 슬레이브 포트가 상기 제 3 입력포트이다. 제 1 브이오큐(VOQ)들은 상기 제 1 출력포트에 전송하기 위한 제 1 패킷들을 가지고 있으며, 제 2 브이오큐(VOQ)들은 제 2 출력포트에 전송하기 위한 제 2 패킷들을 가지고 있고, 제 3 브이오큐(VOQ)들은 제 3 출력포트에 전송하기 위한 제 3 패킷들을 가지고 있다. 이하, 도 5의 블록도를 참조하여 상술하겠다.
도 7에 도시된 바와 같이, 상기 마스터 포트의 경우, 상기 제 1 브이오큐(VOQ)의 가중치는 10이고, 상기 제 2 브이오큐(VOQ)의 가중치는 8이며, 상기 제 3 브이오큐(VOQ)의 가중치는 7이다. 상기 제 1 브이오큐(VOQ)에 포함된 상기 제 1 패킷이 처음으로 선택된다. 이어서, 상기 제 1 브이오큐(VOQ)는 저장부(540)에 기설정된 브이오큐(VOQ)와 가중치가 비교된다. 상기 기설정된 브이오큐(VOQ)의 가중치는 "0"이다. 상기 제 1 브이오큐(VOQ)의 가중치가 상기 기설정된 브이오큐(VOQ)의 가중치보다 크므로, 상기 제 1 브이오큐(VOQ)에 대한 정보가 저장부(540)에 저장된다. 상기 제 1 브이오큐(VOQ)에 대한 정보는 가중치 정보와 번호 정보를 포함한다.
계속하여, 상기 제 2 브이오큐(VOQ)가 선택된다. 이어서, 상기 제 2 브이오큐(VOQ)는 저장부(540)에 저장된 상기 제 1 브이오큐(VOQ)와 가중치가 비교된다. 상기 제 1 브이오큐(VOQ)의 가중치가 상기 제 2 브이오큐(VOQ)의 가중치보다 크므로, 상기 제 1 브이오큐(VOQ)에 대한 정보가 저장부(540)에 저장되고, 상기 제 2 브이오큐(VOQ)의 번호가 상기 제 1 슬레이브 포트에 제공된다.
계속하여, 상기 제 3 브이오큐(VOQ)가 선택된다. 이어서, 상기 제 3 브이오큐(VOQ)는 저장부(540)에 저장된 상기 제 1 브이오큐(VOQ)와 가중치가 비교된다. 상기 제 1 브이오큐(VOQ)의 가중치가 상기 제 3 브이오큐(VOQ)의 가중치보다 크므로, 상기 제 1 브이오큐(VOQ)에 대한 정보가 저장부(540)에 저장되고, 상기 제 3 브이오큐(VOQ)의 번호가 상기 제 1 슬레이브 포트에 제공된다.
요컨대, 상기 마스터 포트의 경우, 상기 제 1 브이오큐(VOQ)가 선택된다. 즉, 상기 제 1 브이오큐(VOQ)에 포함된 상기 제 1 패킷이 상기 제 1 출력포트로 전송된다.
도 7에 도시된 바와 같이, 상기 제 1 슬레이브 포트의 경우, 상기 제 1 브이오큐(VOQ)의 가중치는 2이고, 상기 제 2 브이오큐(VOQ)의 가중치는 5이며, 상기 제 3 브이오큐(VOQ)의 가중치는 6이고, 상기 마스터 포트로부터 상기 제 2 브이오큐(VOQ)와 상기 제 3 브이오큐(VOQ)의 번호가 차례로 제공된다.
상기 마스터 포트의 상기 제 2 브이오큐(VOQ)의 번호가 제공된다. 상기 마스터 포트의 상기 제 2 브이오큐(VOQ)의 번호에 상응하는 상기 제 1 슬레이브 포트의 상기 제 2 브이오큐(VOQ)가 선택된다. 상기 선택된 제 2 브이오큐(VOQ)는 저장부(545)에 기설정된 브이오큐(VOQ)와 가중치가 비교된다. 본 발명의 일 실시예에 따른 상기 저장부(545)에 기설정된 브이오큐(VOQ)의 가중치는 "0"이다. 상기 제 2 브이오큐(VOQ)의 가중치가 상기 기설정된 가중치보다 크므로, 상기 제 2 브이오큐(VOQ)에 대한 정보가 저장부(545)에 저장된다.
계속하여, 상기 마스터 포트로부터 상기 제 3 브이오큐(VOQ)의 번호가 제공된다. 상기 마스터 포트의 상기 제 3 브이오큐(VOQ)의 번호에 상응하는 상기 제 1 슬레이브 포트의 상기 제 3 브이오큐(VOQ)가 선택된다. 상기 선택된 제 3 브이오큐(VOQ)는 저장부(545)에 저장된 상기 제 2 브이오큐(VOQ)와 가중치가 비교된다. 상기 제 3 브이오큐(VOQ)의 가중치가 상기 저장된 제 2 브이오큐(VOQ)의 가중치보다 크므로, 상기 제 3 브이오큐(VOQ)에 대한 정보가 저장부(545)에 저장되고, 상기 제 2 브이오큐(VOQ)의 번호가 상기 제 2 슬레이브 포트로 제공된다.
요컨대, 상기 제 1 슬레이브 포트의 경우, 상기 제 3 브이오큐(VOQ)가 선택된다. 즉, 상기 제 3 브이오큐(VOQ)에 포함된 상기 제 3 패킷이 상기 제 3 출력포트로 전송된다.
도 7에 도시된 바와 같이, 상기 제 2 슬레이브 포트의 경우, 상기 제 1 브이오큐(VOQ)의 가중치는 9이고, 상기 제 2 브이오큐(VOQ)의 가중치는 10이며, 상기 제 3 브이오큐(VOQ)의 가중치는 11이고, 상기 제 1 슬레이브 포트로부터 상기 제 2 브이오큐(VOQ)의 번호가 제공된다.
상기 제 1 슬레이브 포트의 상기 제 2 브이오큐(VOQ)의 번호에 상응하는 상 기 제 2 슬레이브 포트의 상기 제 2 브이오큐(VOQ)가 선택된다. 상기 선택된 제 2 브이오큐(VOQ)는 저장부(550)에 기설정된 브이오큐(VOQ)와 가중치가 비교된다. 본 발명의 일 실시예에 따른 상기 기설정된 브이오큐(VOQ)의 가중치는 "0"이다. 상기 선택된 제 2 브이오큐(VOQ)의 가중치가 상기 기설정된 브이오큐(VOQ)의 가중치보다 크므로, 상기 제 2 브이오큐(VOQ)에 대한 정보가 저장부(550)에 저장된다.
요컨대, 상기 제 2 슬레이브 포트의 경우, 상기 제 2 브이오큐(VOQ)가 선택된다. 즉, 상기 제 2 브이오큐(VOQ)에 포함된 상기 제 2 패킷이 상기 제 2 출력포트로 전송된다.
이상에서 살펴본 바와 같이, 상기 마스터 포트의 경우, 상기 제 1 브이오큐(VOQ)의 상기 제 1 패킷이 선택되고, 상기 제 1 슬레이브 포트의 경우, 상기 제 3 브이오큐(VOQ)의 상기 제 3 패킷이 선택되며, 상기 제 2 슬레이브 포트의 경우, 상기 제 2 브이오큐(VOQ)의 상기 제 2 패킷이 선택된다. 그런 후, 제어부(70)의 제어에 의해 상기 선택된 패킷들이 상기 출력포트들로 전송된다.
이어서, 다음 패킷의 전송 시, 상기 제 2 입력포트가 상기 마스터 포트가 되고, 상기 제 3 입력포트가 상기 제 1 슬레이브 포트가 되며, 상기 제 1 입력포트가 상기 제 2 슬레이브 포트가 된다. 그리고, 선택된 패킷들이 상기 출력포트들로 제공된다.
그런 후, 상기 제 3 입력포트가 상기 마스터 포트가 된다. 즉, 제공되는 패킷에 상응하여 상기 마스터 포트가 변경된다. 그 결과, 상기 패킷들이 공평하게 상기 출력포트들에 전송된다.
도 8은 본 발명의 바람직한 일 실시예에 따른 스케줄링 동작을 도시한 순서도이다.
도 8을 참조하면, 비교부(520, 525, 530)는 저장부(540, 545, 550)에 저장된 제 1 브이오큐(VOQ)와 선택부(500, 505, 510)에 의해 선택된 제 2 브이오큐(VOQ)의 가중치를 비교한다(S100).
상기 제 1 브이오큐(VOQ)와 상기 제 2 브이오큐(VOQ)의 가중치가 동일한지의 여부가 판단된다(S120). 상기 가중치들이 동일하면, 상기 제 1 브이오큐(VOQ)와 상기 제 2 브이오큐(VOQ) 중 하나의 브이오큐(VOQ)에 대한 정보가 저장부(540, 545, 550)에 저장되고, 다른 하나의 브이오큐(VOQ)의 번호가 제공된다.
상기 가중치들이 동일하지 않으면, 상기 제 1 브이오큐(VOQ)의 가중치와 상기 제 2 브이오큐(VOQ)의 가중치가 비교된다(S160). 상기 제 1 브이오큐(VOQ)의 가중치가 상기 제 2 브이오큐(VOQ)의 가중치보다 큰 경우, 상기 제 1 브이오큐(VOQ)에 대한 정보가 저장된다(S180). 반면에, 상기 제 1 브이오큐(VOQ)의 가중치가 상기 제 2 브이오큐(VOQ)의 가중치보다 작은 경우, 상기 제 2 브이오큐(VOQ)에 대한 정보가 저장된다(S200).
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 의한 스케줄링 방식 및 이를 수행하기 위한 스케줄러는 가중치들을 비교하여 스케줄링하므로, 신속하고 효율적으로 스케줄링을 할 수 있는 장점이 있다.
아울러, 본 발명에 의한 스케줄링 방식 및 이를 수행하기 위한 스케줄러는 마스터 포트가 패킷 전송에 따라 변경되므로, 공평하게 상기 패킷들을 출력포트들에 전송할 수 있다.

Claims (24)

  1. (a) 하나의 포트에 포함된 복수의 브이오큐(VOQ)들을 순차적으로 선택하는 단계;
    (b) 선택된 브이오큐(VOQ)의 가중치를 저장된 브이오큐(VOQ)의 가중치와 비교하는 단계;
    (c) 상기 비교에 따라 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 단계;
    (d) 상기 비교에 따라 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 출력하는 단계;
    (e) 다음 브이오큐(VOQ)를 선택하는 단계; 및
    (f) (b) 단계 내지 (e) 단계를 반복하는 단계를 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
  2. 제 1 항에 있어서, 상기 선택된 브이오큐(VOQ)가 마지막 브이오큐(VOQ)인지의 여부를 판단하는 단계를 더 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
  3. 제 1 항에 있어서, 상기 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
  4. 제 1 항에 있어서, 상기 각 브이오큐(VOQ)의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례하는 것을 특징으로 하는 스케줄링 방법.
  5. 제 1 항에 있어서, 상기 각 브이오큐(VOQ)의 가중치는 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례하는 것을 특징으로 하는 스케줄링 방법.
  6. 제 1 항에 있어서, 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공하는 단계를 더 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
  7. (a) 어느 한 입력포트로부터 제공되는 제 1 비선택 브이오큐(VOQ)의 번호에 상응하는 브이오큐(VOQ)를 선택하는 단계;
    (b) 상기 선택된 브이오큐(VOQ)의 가중치를 저장된 브이오큐(VOQ)의 가중치와 비교하는 단계;
    (c) 상기 비교 결과에 따라 더 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 단계;
    (d) 상기 비교 결과에 따라 더 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 출력하는 단계;
    (e) 상기 입력포트로부터 제공되는 제 2 비선택 브이오큐(VOQ)의 번호에 상응하는 브이오큐(VOQ)를 선택하는 단계; 및
    (f) (b) 단계 내지 (e) 단계를 반복하는 단계를 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
  8. 제 7 항에 있어서, 하나 이상의 브이오큐(VOQ)의 번호가 제공되는 것을 특징으로 하는 스케줄링 방법.
  9. 제 7 항에 있어서, 상기 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
  10. 제 7 항에 있어서, 상기 각 브이오큐(VOQ)의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례하는 것을 특징으로 하는 스케줄링 방법.
  11. 제 7 항에 있어서, 상기 각 브이오큐(VOQ)의 가중치는 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례하는 것을 특징으로 하는 스케줄링 방법.
  12. 제 7 항에 있어서, 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공하는 단계를 더 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
  13. 한 포트에 포함된 복수의 브이오큐(VOQ)들을 순차적으로 선택하는 선택부;
    선택된 브이오큐(VOQ)의 가중치를 기설정된 가중치 및 저장된 브이오큐(VOQ)의 가중치와 비교하고, 상기 비교에 따라 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 제공하는 비교부; 및
    상기 비교에 따라 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 저장부를 포함하고 있는 것을 특징으로 하는 스케줄러.
  14. 제 13 항에 있어서, 상기 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함하고 있는 것을 특징으로 하는 스케줄러.
  15. 제 13 항에 있어서, 비교되는 상기 브이오큐(VOQ)들의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례하는 것을 특징으로 하는 스케줄러.
  16. 제 13 항에 있어서, 비교되는 상기 브이오큐(VOQ)들의 가중치는 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례하는 것을 특징으로 하는 스케줄러.
  17. 제 13 항에 있어서, 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공하는 것을 특징으로 하는 스케줄러.
  18. 제 13 항에 있어서, 상기 각 브이오큐들은 각기 버퍼인 것을 특징으로 하는 스케줄러.
  19. 어느 한 입력포트로부터 제공되는 비선택 브이오큐(VOQ)의 번호에 상응하는 브이오큐(VOQ)를 선택하는 선택부;
    상기 선택된 브이오큐(VOQ)의 가중치를 기설정된 가중치 및 저장된 브이오큐(VOQ)의 가중치와 비교하고, 상기 비교 결과에 따라 더 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 제공하는 비교부; 및
    상기 비교 결과에 따라 더 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 저장부를 포함하고 있는 것을 특징으로 하는 스케줄러(scheduler).
  20. 제 19 항에 있어서, 상기 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함하고 있는 것을 특징으로 하는 스케줄러.
  21. 제 19 항에 있어서, 비교되는 상기 각 브이오큐(VOQ)들의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례하는 것을 특징으로 하는 스케줄러.
  22. 제 19 항에 있어서, 비교되는 상기 브이오큐(VOQ)들의 가중치는 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례하는 것을 특징으로 하는 스케줄러.
  23. 제 19 항에 있어서, 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공하는 것을 특징으로 하는 스케줄러.
  24. 제 19 항에 있어서, 상기 각 브이오큐들은 각기 버퍼인 것을 특징으로 하는 스케줄러.
KR1020030061648A 2003-09-04 2003-09-04 스케줄링 방법 및 이를 수행하기 위한 스케줄러 KR100544837B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030061648A KR100544837B1 (ko) 2003-09-04 2003-09-04 스케줄링 방법 및 이를 수행하기 위한 스케줄러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030061648A KR100544837B1 (ko) 2003-09-04 2003-09-04 스케줄링 방법 및 이를 수행하기 위한 스케줄러

Publications (2)

Publication Number Publication Date
KR20050024795A KR20050024795A (ko) 2005-03-11
KR100544837B1 true KR100544837B1 (ko) 2006-01-24

Family

ID=37231869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030061648A KR100544837B1 (ko) 2003-09-04 2003-09-04 스케줄링 방법 및 이를 수행하기 위한 스케줄러

Country Status (1)

Country Link
KR (1) KR100544837B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4453915B2 (ja) * 2005-03-18 2010-04-21 富士通株式会社 クロスバー装置、制御方法及びプログラム
KR100944912B1 (ko) * 2007-12-14 2010-03-03 한국전자통신연구원 서버 가상화 환경을 위한 디스크 입출력 스케쥴러 및 그의스케쥴링 방법
CN113395183B (zh) * 2021-08-18 2021-12-07 南京赛宁信息技术有限公司 网络仿真平台vlan互联的虚拟节点调度方法与系统

Also Published As

Publication number Publication date
KR20050024795A (ko) 2005-03-11

Similar Documents

Publication Publication Date Title
EP1741229B1 (en) Weighted random scheduling
US7161943B2 (en) Two-dimensional pipelined scheduling technique
JP3475900B2 (ja) 調停方式及びそれを用いたアービタ回路
US8000247B2 (en) Bandwidth management apparatus
AU2003218229B2 (en) Packet scheduling mechanism
US7283558B2 (en) Distributed weighted fair arbitration and forwarding
WO2006091175A1 (en) Method and apparatus for buffer management in shared memory packet processors
US7408947B2 (en) Method and apparatus for scheduling packets and/or cells
KR100544837B1 (ko) 스케줄링 방법 및 이를 수행하기 위한 스케줄러
EP1638273A2 (en) Scheduling using quantum and deficit values
JP2005510959A (ja) リアルタイムネットワークトラフィックの受け入れ及びスケジューリング方法
JP2002199000A (ja) カスケード接続された制御部及びバッファ無しのカスケード接続されたスイッチング・マトリクスを有するパケット交換装置
US6944171B2 (en) Scheduler method and device in a switch
US7269158B2 (en) Method of operating a crossbar switch
Schmidt Packet buffering: Randomization beats deterministic algorithms
US20030152082A9 (en) Distribution of weightings between port control system and switch cards of a packet switching device
US7248583B2 (en) Parallel and iterative algorithm for switching data packets
JP3923433B2 (ja) バッファなしの縦続接続型スイッチング・マトリックスを有するパケットスイッチング装置のためのフィードバック・システム
US7408937B1 (en) 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
KR20040044591A (ko) 비동기 전송 모드의 가중치 기반 라운드 로빈 방식 셀스케줄링 장치 및 방법
Liu et al. A sliding‐window parallel packet switch for high‐speed networks
Ng et al. On improving the performance of shared buffered banyan networks
Schoenen et al. Switches with 100% Throughput

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee