KR100544837B1 - 스케줄링 방법 및 이를 수행하기 위한 스케줄러 - Google Patents
스케줄링 방법 및 이를 수행하기 위한 스케줄러 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue 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
도 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 크로스바이다. 그러므로, 랜덤한 스케줄링을 위해서 의 연산이 요구된다.
스케줄링 방식에는 MSM(maximum sized match) 방식이 있다. 상기 MSM 방식은 스케줄링하여 상기 입력포트들을 상기 출력포트에 최대한 매치(match)시키는 방식을 의미한다. 다만, 상기 MSM 방식은 우선 순위에 관계없이 상기 입력포트들을 상기 출력포트들에 매치(match)시킨다. 그러므로, 상기 우선 순위에 따라 패킷이 전송되어야 하는 경우에는 적당하지 않다. 또한, 상기 MSM 방식은 연산을 요구한다. 즉, 스케줄링을 위해 복잡한 연산이 요구된다. 그 결과, 스케줄링을 위한 스케줄링 시간이 지연된다.
스케줄링 방식에는 MWM(maximum weighted match) 방식이 있다. 상기 MWM 방식은 스케줄링하여 가중치들의 합이 최대가 되도록 하는 방식이다. 상세하게는, 제 1 입력포트에서 선택된 브이오큐(VOQ) 내지 제 N 입력포트에서 선택된 브이오큐(VOQ)의 가중치의 합이 최대가 되도록 한다. 상기 각 브이오큐(VOQ)들은 각기 가중치를 가지고 있다. 상기 MWM 방식은 연산을 요구한다. 즉, 스케줄링을 위해 복잡한 연산이 요구된다. 그 결과, 스케줄링을 위한 스케줄링 시간이 지연된다.
그러므로, 신속하며 효율적으로 스케줄링을 할 수 있는 스케줄링 장치가 요구된다.
본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 제 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)
- (a) 하나의 포트에 포함된 복수의 브이오큐(VOQ)들을 순차적으로 선택하는 단계;(b) 선택된 브이오큐(VOQ)의 가중치를 저장된 브이오큐(VOQ)의 가중치와 비교하는 단계;(c) 상기 비교에 따라 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 단계;(d) 상기 비교에 따라 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 출력하는 단계;(e) 다음 브이오큐(VOQ)를 선택하는 단계; 및(f) (b) 단계 내지 (e) 단계를 반복하는 단계를 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
- 제 1 항에 있어서, 상기 선택된 브이오큐(VOQ)가 마지막 브이오큐(VOQ)인지의 여부를 판단하는 단계를 더 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
- 제 1 항에 있어서, 상기 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
- 제 1 항에 있어서, 상기 각 브이오큐(VOQ)의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례하는 것을 특징으로 하는 스케줄링 방법.
- 제 1 항에 있어서, 상기 각 브이오큐(VOQ)의 가중치는 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례하는 것을 특징으로 하는 스케줄링 방법.
- 제 1 항에 있어서, 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공하는 단계를 더 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
- (a) 어느 한 입력포트로부터 제공되는 제 1 비선택 브이오큐(VOQ)의 번호에 상응하는 브이오큐(VOQ)를 선택하는 단계;(b) 상기 선택된 브이오큐(VOQ)의 가중치를 저장된 브이오큐(VOQ)의 가중치와 비교하는 단계;(c) 상기 비교 결과에 따라 더 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 단계;(d) 상기 비교 결과에 따라 더 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 출력하는 단계;(e) 상기 입력포트로부터 제공되는 제 2 비선택 브이오큐(VOQ)의 번호에 상응하는 브이오큐(VOQ)를 선택하는 단계; 및(f) (b) 단계 내지 (e) 단계를 반복하는 단계를 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
- 제 7 항에 있어서, 하나 이상의 브이오큐(VOQ)의 번호가 제공되는 것을 특징으로 하는 스케줄링 방법.
- 제 7 항에 있어서, 상기 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
- 제 7 항에 있어서, 상기 각 브이오큐(VOQ)의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례하는 것을 특징으로 하는 스케줄링 방법.
- 제 7 항에 있어서, 상기 각 브이오큐(VOQ)의 가중치는 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례하는 것을 특징으로 하는 스케줄링 방법.
- 제 7 항에 있어서, 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공하는 단계를 더 포함하고 있는 것을 특징으로 하는 스케줄링 방법.
- 한 포트에 포함된 복수의 브이오큐(VOQ)들을 순차적으로 선택하는 선택부;선택된 브이오큐(VOQ)의 가중치를 기설정된 가중치 및 저장된 브이오큐(VOQ)의 가중치와 비교하고, 상기 비교에 따라 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 제공하는 비교부; 및상기 비교에 따라 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 저장부를 포함하고 있는 것을 특징으로 하는 스케줄러.
- 제 13 항에 있어서, 상기 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함하고 있는 것을 특징으로 하는 스케줄러.
- 제 13 항에 있어서, 비교되는 상기 브이오큐(VOQ)들의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례하는 것을 특징으로 하는 스케줄러.
- 제 13 항에 있어서, 비교되는 상기 브이오큐(VOQ)들의 가중치는 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례하는 것을 특징으로 하는 스케줄러.
- 제 13 항에 있어서, 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공하는 것을 특징으로 하는 스케줄러.
- 제 13 항에 있어서, 상기 각 브이오큐들은 각기 버퍼인 것을 특징으로 하는 스케줄러.
- 어느 한 입력포트로부터 제공되는 비선택 브이오큐(VOQ)의 번호에 상응하는 브이오큐(VOQ)를 선택하는 선택부;상기 선택된 브이오큐(VOQ)의 가중치를 기설정된 가중치 및 저장된 브이오큐(VOQ)의 가중치와 비교하고, 상기 비교 결과에 따라 더 작은 가중치를 가지는 브이오큐(VOQ)의 번호를 제공하는 비교부; 및상기 비교 결과에 따라 더 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보를 저장하는 저장부를 포함하고 있는 것을 특징으로 하는 스케줄러(scheduler).
- 제 19 항에 있어서, 상기 큰 가중치를 가지는 브이오큐(VOQ)에 대한 정보는 가중치 및 번호 정보를 포함하고 있는 것을 특징으로 하는 스케줄러.
- 제 19 항에 있어서, 비교되는 상기 각 브이오큐(VOQ)들의 가중치들은 상기 브이오큐(VOQ)들의 패킷 수에 비례하는 것을 특징으로 하는 스케줄러.
- 제 19 항에 있어서, 비교되는 상기 브이오큐(VOQ)들의 가중치는 상기 브이오큐(VOQ)의 패킷의 우선 순위에 비례하는 것을 특징으로 하는 스케줄러.
- 제 19 항에 있어서, 상기 비교되는 브이오큐(VOQ)들의 가중치가 동일한 경우, 랜덤하게 선택된 하나의 브이오큐(VOQ)에 대한 정보를 저장하고, 다른 브이오큐(VOQ)의 번호를 제공하는 것을 특징으로 하는 스케줄러.
- 제 19 항에 있어서, 상기 각 브이오큐들은 각기 버퍼인 것을 특징으로 하는 스케줄러.
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)
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互联的虚拟节点调度方法与系统 |
-
2003
- 2003-09-04 KR KR1020030061648A patent/KR100544837B1/ko not_active IP Right Cessation
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 |