KR100411221B1 - 파이프라인형 스케줄링 방법 및 스케줄러 - Google Patents

파이프라인형 스케줄링 방법 및 스케줄러 Download PDF

Info

Publication number
KR100411221B1
KR100411221B1 KR10-2001-0061154A KR20010061154A KR100411221B1 KR 100411221 B1 KR100411221 B1 KR 100411221B1 KR 20010061154 A KR20010061154 A KR 20010061154A KR 100411221 B1 KR100411221 B1 KR 100411221B1
Authority
KR
South Korea
Prior art keywords
scheduling
input
output
module
ports
Prior art date
Application number
KR10-2001-0061154A
Other languages
English (en)
Other versions
KR20020027235A (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 닛본 덴끼 가부시끼가이샤
Publication of KR20020027235A publication Critical patent/KR20020027235A/ko
Application granted granted Critical
Publication of KR100411221B1 publication Critical patent/KR100411221B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/60Queue scheduling implementing hierarchical 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
    • 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/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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/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/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1546Non-blocking multistage, e.g. Clos using pipelined operation
    • 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/3063Pipelined operation
    • 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/3072Packet splitting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • H04L49/503Policing

Landscapes

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

Abstract

교점 스위치의 입력 포트 및 출력 포트의 수에 따라 스케일러블한 고속 스케줄링을 할 수 있고 입력 사이에서 언페어니스를 억제할 수 있는 스케줄러를 개시한다. 상기 스케줄러는 MxM 행렬로 된 스케줄링 모듈을 포함하고, 각각의 스케줄링 모듈은 입력 포트들의 해당 입력 그룹으로부터 출력 포트들의 해당 출력 그룹 중 선택된 하나의 그룹으로의 패킷 포워딩 접속을 예약 정보에 기초하여 스케줄링한다. 대각선 모듈 패턴을 사용하여 M개의 스케줄링 모듈 1 세트를 결정하여 상호 충돌하게 되는 것을 방지한다. 결정된 스케줄링 모듈 각각은 현재의 예약 정보에 기초하여 패킷 포워딩 접속의 예약을 행하고 행렬방향으로 MxM 행렬의 갱신된 예약 정보를 전송한다.

Description

파이프라인형 스케줄링 방법 및 스케줄러{PIPELINED SCHEDULING METHOD AND SCHEDULER}
본 발명은 패킷 스위칭 시스템에 관한 것으로, 특히 패킷 스위칭 시스템에서 구현되는 파이프라인형 스케줄링 방법 및 스케줄러에 관한 것이다.
인터넷이 폭발적으로 이용됨에 따라서, 인터넷을 통신의 하부 구조로서 이용하는데 대한 수요가 증가하고 있다. 인터넷이 그러한 통신 하부 구조로서 기능하게 하기 위해서는, 서버 노드로서의 라우터가 데이터 전송의 속도 및 그 기능을 향상시킬 필요가 있다. 기존의 고속 라우터는 셀프 라우팅 고속 스위치 구조(self-routing high-speed switch fabric)에 의한 고속 데이터 전송 처리 및 하드웨어에 의해 달성되는 IP 어드레스 검색을 이용한다.
고속 스위칭에 대한 그러한 증가하는 수요를 충족시키기 위하여, N개 입력포트 및 N개 출력 포트를 갖는 가상 출력 큐잉(VOQ : Virtual Output Queuing) 교점 스위치가 널리 이용되고 있다. 여기서, 각각의 입력 포트는 N개 출력 포트에 각각 대응하는 N개 논리 큐를 갖는다. 그러한 교점 스위치를 위한 스케줄링 방법이 제안되어 있다.
미국 특허 제5,299,190호에는 2차원 라운드 로빈 스케줄링 메커니즘이 개시되어 있다. 이 메커니즘은 각 행은 입력을 나타내고 각 열은 출력을 나타내는 요구 행렬을 이용한다. 따라서 이 행렬의 소정의 행과 열의 비트는 대응하는 출력 포트에 접속하기 위한 대응하는 입력 포트로부터의 요구를 나타낸다. 대각선 서비스 패턴을 이용하여 요구 행렬을 오버레이하여 어느 요구에 대해 서비스해야 할지를 결정하게 된다. K개 타임슬롯 각각에 대한 일련의 대각선 서비스를 이용하여 보장된 서비스에 공정성을 제공하게 된다.
미국 특허 제5,734,649호에는 데이터 패킷 라우터에서의 유사한 스케줄링 방법이 개시되어 있다. 데이터 패킷 라우터에서는, 교점 스위치 소자들의 행렬이, 연속하는 각각의 기간중에 데이터 발신원들을 선택된 행선(destination)들에 접속시킨다. 스위치 소자들을 소망의 접속에 할당하는 것은 스위치 소자들의 수에 대응하는 다수의 데이터 요소들을 갖는 데이터 어레이를 제공하는 프로세스에 의해 달성된다. 각각의 기간 중에, 제1 현재 의사 랜덤 셔플 패턴(current pseudo-random shuffle pattern)에 따라서 데이터 요소들 각각에 발신원이 할당되고 제2 현재 의사 랜덤 셔플 패턴에 따라서 데이터 요소들 각각에 각각의 행선이 할당된다. 각 기간 중에 새로운 세트의 셔플 패턴들이 발생된다. 발신원 및 행선들의어레이를 가로질러 대각선 그룹의 영역들을 연속적으로 처리하는 테스팅을 수행하여 이전에 할당되지 않은 정합을 검색하고 각각의 정합을 각각의 데이터 요소에 대응하는 스위치 소자에 할당한다.
그러나, 이들 종래의 스케줄링 방법은 각각의 타임 슬롯에 대한 데이터 처리량이 포트 수의 제곱에 이른다고 하는 단점이 있다. 따라서, 입/출력 포트의 수가 증가함에 따라서 스케줄링 속도를 향상시키는 것이 곤란하게 된다.
상기 단점을 극복하기 위한 유망한 스케줄링 프로토콜로서, 본 출원인이 일본 특허 출원 평11-172584호(공개공보 2000-174817호)에서 제안한 라운드 로빈 그리디 스케줄링(RRGS : round-robin greedy scheduling) 알고리즘이 있다. RRGS 알고리즘은 NxN 패킷 스위치로 구현될 수 있는데, 여기서는 N개의 스케줄링 모듈(S1-SN)이 N개의 입력에 대하여 각각 제공된다. 이 스케줄링 모듈들(S1-SN) 각각은 소정의 미래 타임 슬롯에 대한 스케줄링을 수행하고, 예약된 출력 포트 정보를 인접 스케줄링 모듈에 전송한다. 이런 식으로, 소정의 미래 타임 슬롯 이전의 N개 타임 슬롯 중에 소정의 미래 타임 슬롯에서의 출력 포트 예약이 완료될 수 있다. 그러한 스케줄링을 파이프라인형 프로세싱에 의해 각각의 타임 슬롯에서 수행하여 미래 타임 슬롯들에 대한 NxN 스케줄링을 달성함에 따라서, 고속 패킷 전송이 이루어진다.
본 출원인은 또한 일본 특허 출원 2000-55103호(공개공보 2001-7822호)에서 프레임 방식의 RRGS 알고리즘(framed RRGS algorithm)을 제안하였다. 이 프레임방식의 RRGS에서는, 각각이 복수의 타임 슬롯으로 되어 있는 일련의 프레임을 세트한다. 현 프레임에서 입력 패킷들을 스케줄링하여 그들을 현 프레임 이후의 다음 프레임에서 출력 포트들 중의 적당한 것들에 전송하게 된다. 보다 구체적으로는, 프레임의 시작에서 N개 입력 포트 스케줄링 모듈들의 스케줄링 판정 처리를 동시에 수행하고, 프레임 내에서 파이프라인 방법을 이용하여 스케줄링 판정 처리들을 동시에 수행하고, 프레임의 끝에서 스케줄링 판정 처리들을 동시에 종료하는 방법으로 각 프레임에서의 스케줄링을 수행하게 된다.
비록 상술한 RRGS 및 프레임 방식의 RRGS 알고리즘들은 고속 및 고효율의 데이터 전송을 제공할 수는 있지만, 입력 및 출력 포트의 수가 증가함에 따라서 출력 포트 중재 처리량이 증가하게 된다.
본 발명의 목적은 입출력 포트의 수에 따라 스케일링 가능한 고속 스케줄링을 할 수 있는 파이프라인형 스케줄링 방법 및 스케줄러를 제공하는 것이다.
본 발명의 다른 목적은 고속 스케줄링을 할 수 있고 입력들 사이에의 언페어니스를 억제할 수 있는 파이프라인형 스케줄링 방법 및 스케줄러를 제공하는 것이다.
도 1은 본 발명에 따른 스위치 스케줄러를 채택하고 있는 패킷 스위칭 시스템을 나타내는 블록도.
도 2는 그룹화된 입력 라인과 그룹화된 출력 라인 간의 대응 관계를 나타내는 도면.
도 3은 본 발명의 한 실시예에 따른 스위치 스케줄러를 나타내는 블록도.
도 4는 상기 실시예에서 VOQ의 패킷 저장 상태를 나타내는 개략도.
도 5a는 본 발명의 실시예에 따른 2차원 파이프라인형 스케줄링 방법을 설명하기 위한 스위치 스케줄러의 일례를 나타내는 블록도.
도 5b는 도 5a에 도시된 스위치 스케줄러의 한 스케줄링 모듈 내에 저장된 행렬의 일례를 나타내는 도면.
도 6은 도 5a에 도시된 스위치 스케줄러 내에서 수행되는 2차원 파이프라인형 스케줄링 내의 타임 슬롯 중 제1 프레임을 나타내는 타임 차트.
도 7은 도 5a에 도시된 스위치 스케줄러 내에서 수행되는 2차원 파이프라인형 스케줄링 내의 타임 슬롯 중 제2 프레임을 나타내는 타임 차트.
도 8은 도 5a에 도시된 스위치 스케줄러 내에서 수행되는 2차원 파이프라인형 스케줄링 내의 타임 슬롯 중 제3 프레임을 나타내는 타임 차트.
도 9는 도 5a에 도시된 스위치 스케줄러 내에서 수행되는 2차원 파이프라인형 스케줄링 내의 대각선 모듈 중 선택된 세트의 제1 예와 이 대각선 모듈의 접속 열을 나타내는 도면.
도 10은 도 5a에 도시된 스위치 스케줄러 내에서 수행되는 2차원 파이프라인형 스케줄링 내의 대각선 모듈 중 선택된 세트의 제2 예와 이 대각선 모듈의 접속 열을 나타내는 도면.
도 11은 도 5a에 도시된 스위치 스케줄러 내에서 수행되는 2차원 파이프라인형 스케줄링 내의 대각선 모듈 중 선택된 세트의 제3 예와 이 대각선 모듈의 접속 열을 나타내는 도면.
도 12는 도 5a에 도시된 스위치 스케줄러 내에서 수행되는 2차원 파이프라인형 스케줄링 내의 대각선 모듈 중 선택된 세트의 제4 예와 이 대각선 모듈의 접속 열을 나타내는 도면.
도 13은 도 5a에 도시된 스위치 스케줄러 내에서 수행되는 2차원 파이프라인형 스케줄링 내의 대각선 모듈 중 선택된 세트의 제5 예와 이 대각선 모듈의 접속 열을 나타내는 도면.
도 14는 도 5a에 도시된 스위치 스케줄러 내에서 수행되는 2차원 파이프라인형 스케줄링 내의 대각선 모듈 중 선택된 세트의 제6 예와 이 대각선 모듈의 접속 열을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
201: 스위치부
202: 교점 스위치
203: 스위치 스케줄러
204_1 - 204_N: 입력 라인
205_1 - 205_N: 출력 라인
206_1 - 206_N: 가상 출력 큐(VOQ)
211 : 입력 그룹
212 : 출력 그룹
본 발명의 일 태양에 따르면, N은 양의 정수인, N개의 입력 포트로부터 N개의 출력 포트들 중의 선택된 포트들로의 패킷 포워딩 접속을 교점 스위치에서 타임 슬롯마다 스케줄링하는 스케줄러는, 각각이 입력 포트들의 대응하는 입력 그룹으로부터 출력 포트들의 대응하는 출력 그룹으로의 패킷 포워딩 접속을 대응하는 입력 및 출력 포트들의 조합들에 대한 예약 정보에 기초하여 각 타임 슬롯마다 스케줄링하는, MxM 행렬의 스케줄링 모듈들 - N개의 입력 포트들은 M개의 입력 그룹들로 동등하게 분할되고, N개의 출력 포트들은 M개의 출력 그룹들로 동등하게 분할됨 - ; 및 상기 MxM 행렬의 스케줄링 모듈을 커버하는 서로 다른 모듈 패턴들 중에서 하나의 순차적인 것을 선택하는 셀렉터 - 상기 서로 다른 모듈 패턴들 각각은 서로 충돌하게 되는 것을 방지하기 위하여 M개의 스케줄링 모듈 1 세트를 결정하고, 예약 정보를 전송하는 시퀀스를 결정함 - 를 포함하고, 선택된 모듈 패턴에 의해 결정된 스케줄링 모듈은, 대응하는 입력 및 출력 포트들의 조합들에 대한 현재의 예약 정보에 기초하여 패킷 포워딩 접속의 예약을 수행하고, 상기 선택된 모듈 패턴에 의해 결정된 시퀀스에 따라 갱신된 예약 정보를 전송한다.
본 발명의 다른 태양에 따르면, N은 양의 정수인, N개의 입력 포트들을 N개의 출력 포트들 중 선택된 출력 포트들에 타임 슬롯마다 접속시키는 NxN 교점 스위치에 대한 파이프라인형 스케줄링 방법은, a) 상기 N개의 출력 포트들 각각에 대응하여 상기 N개의 입력 포트들 각각에 대한 N개의 논리 큐(logical queue)들을 저장하는 단계 - 상기 N개의 입력 포트들은 M개의 입력 그룹들로 동등하게 분할되고, 상기 N개의 출력 포트들은 M개의 출력 그룹들로 동등하게 분할됨 - ; b) 각각이 입력 포트들의 대응하는 입력 그룹으로부터 출력 포트들의 대응하는 출력 그룹 중 선택된 그룹으로의 패킷 포워딩 요구를 저장하는 MxM 행렬의 모듈들 내에, 패킷 포워딩 요구들을 저장하는 단계; c) 상기 MxM 행렬의 모듈들을 커버하는 M개의 모듈 패턴들을 선택하는 단계 - 상기 모듈 패턴들 각각은 서로간의 충돌을 회피하도록 M개의 모듈들을 갖는 하나의 서로 다른 세트를 결정하는 단계; 및 d) 파이프라인형 스케줄링을 위해 타임 슬롯마다 상기 선택된 M개의 모듈 패턴들 각각에 의해 결정된 상기 M개의 모듈들 각각에서 단계 d.1 내지 단계 d.3을 수행하는 단계를 포함하되, 단계 d.1은 상기 MxM 행렬의 행방향과 열방향에서의 2개의 이전 스테이지(previous-stage) 모듈로부터 수신되는 입력 포트 예약 정보와 출력 포트 예약 정보에 기초한 대응하는 패킷 포워딩 요구들에 의존하여 소정의 미래 타임 슬롯에서의 대응하는 입력 및 출력 포트들의 조합들을 예약하는 단계이고, 단계 d.2는 예약되어 있는 조합들에 의존하여 상기 입력 예약 정보 및 상기 출력 예약 정보를 갱신하는 단계이며, 단계 d.3은 상기 갱신된 입력 포트 예약 정보 및 갱신된 출력 포트 예약 정보를 상기 MxM 행렬의 행방향과 열방향에서의 2개의 후속 스테이지(subsequent-stage) 모듈들에 전송하는 단계인 것을 특징으로 한다.
전술한 단계 d)는 다른 미래의 타임 슬롯에 대한 M개의 스케줄링 프로세스에서도 동시적으로 수행되고, 여기서 M개의 스케줄링 프로세스 각각은 선택된 M개의 모듈 패턴 중의 서로 다른 패턴으로 시작한다. 선택된 M개의 모듈 패턴 각각은 소정의 대각선 모듈 그룹내의 대각선 서비스 패턴일 수도 있다.
본 발명에 따르면, N은 양의 정수인, 교점 스위치의 N개의 입력 포트들 및 N개의 출력 포트들의 조합들을 제공하는 패킷 포워딩 접속을 스케줄링하는 방법은, 상기 N개의 입력 포트들 및 N개의 출력 포트들의 가능한 조합들을 MxM 그룹으로 그룹화하는 단계 - 상기 N개의 입력 포트들은 M개의 그룹으로 동등하게 분할되고, 상기 N개의 출력 포트들은 M개의 그룹으로 동등하게 분할됨 - ; 하나의 입력 포트로부터 소망하는 출력 포트로의 패킷 포워딩 요구를 MxM 그룹 중에서 대응하는 그룹으로 할당하는 단계; 상기 MxM 그룹내의 M개의 대각선 서비스 패턴들의 소정의 세트를 순차적으로 선택하는 단계; 및 순차적으로 선택된 대각선 서비스 패턴에 따라서 파이프라인으로 패킷 포워딩 접속들을 스케줄링하는 단계를 포함한다.
상술한 바와 같이, MxM 행렬의 스케줄링 모듈을 커버하는 서로 다른 모듈 패턴은 서로 충돌하게 되는 것이 방지되도록 제공된다. 따라서, MxM 행렬의 스케줄링 모듈이 그 행렬의 행방향과 열방향 모두로 파이프라인형을 스케줄링을 수행하는 것이 가능하게 되어, 패킷 포워딩의 효율이 증가하고 스케줄링이 고속화된다. 더나아가, 입력포트 및 출력 포트가 MxM 그룹으로 분할되기 때문에, 입출력 포트의 수와 스케일링 가능한 고속의 스케줄링이 얻어질 수 있다.
서로 다른 미래의 타임 슬롯에 대한 M개의 스케줄링 프로세스가 파이프라인으로 동시에 수행될 수 있고, 그 M개의 스케줄링 프로세스 각각은 선택된 M개의 모듈 패턴중의 서로 다른 패턴으로 시작한다. 따라서, 동일한 확률의 예약이 MxM 행렬의 스케줄링 모듈에 주어진다.
[실시예]
스위칭 시스템
도 1을 참조하면, 본 발명의 한 실시예에 따른 패킷 스위칭 시스템에는, 스위치 스케줄러(203)와 NxN 교점 스위치(202)를 포함하는 스위치부(201)가 제공된다. 교점 스위치(202)는 N개의 입력 라인(204_1 내지 204_N) 각각에 대응하는 N개의 입력 포트와 N개의 출력 라인(205_1 내지 205_N) 각각에 대응하는 N개의 출력포트를 가지며, 여기서 N은 1보다 큰 정수이다. 교점 스위치(202)의 N개의 각 입력 포트는, 각각 N개의 VOQ(가상 출력 큐; 206_1 내지 206_N)를 포함하는 N개의 입력 인터페이스를 통해 N개의 입력 라인(204_1 내지 204_N)에 접속된다. N개 입력 인터페이스 각각은 VOQ를 포함할 뿐만 아니라 행선지 분해능 엔진 및 패킷 어셈블리/디스어셈블리부(PAD)(도 1에는 도시되지 않음)를 포함한다. 여기서, 교점 스위치(202)는 고정 길이 패킷(셀)의 스위칭을 행한다. PAD는 교점 스위치(202)로부터 수신된 셀로부터 패킷을 어셈블하고 대응 입력 라인으로부터 수신된 패킷을 셀로 디스어셈블하여 교점 스위치(202)로 전송한다.
기능의 관점에서, N개 입력 라인(204_1 내지 204_N)은 M개의 입력 그룹(IGs; 211)으로 동등하게 분할되며, 여기서 M은 N의 약수이다. 따라서, 각 입력 그룹(211)은 N/M개의 입력 라인 및 대응 VOQ를 갖는다. 이와 유사하게, N개 출력 라인(205_1 내지 205_N)은 M개의 입력 그룹(OGs; 212)으로 동등하게 분할된다. 따라서, 각 출력 그룹(212)은 N/M의 출력 라인을 갖는다. VOQ(206_1 내지 206_N) 각각은 스위치 스케줄러(203)에 패킷 전송 요청(RQ)를 보내고 스위치 스케줄러(203)로부터 패킷 전송 허가(OK)를 수신한다.
도 2를 참조하면, 상술한 바와 같이, N개의 입력 라인들(204_1) 내지 (204_N)은 M개의 입력 그룹들 IG_1 내지 IG_M으로 동등하게 분할되고 N개의 출력 라인들(205_1) 내지 (205_N)은 N개의 출력 그룹들 OG_1 내지 OG_M으로 동등하게 분할된다. 따라서, M개의 입력 그룹들과 M개의 출력 그룹들의 MxM 서로 다른 조합이 있다. 본 실시예에서, MxM 개의 스케줄링 모듈들 S(1,1) 내지 S(M,M)은 MxM개의서로 다른 조합들의 각각의 것에 대응하여 제공된다.
VOQ (206_1) 내지 (206_N)는 동일한 구조를 가진다. 도 4에 나타난 바와 같이, 일례로서 입력 라인(204_1)에 대응하는 VOQ(206_1)를 취하면, VOQ(206_1)는 N개의 출력 라인들(205_1) 내지 (205_N)에 각기 대응하는 N개의 논리 큐들(버퍼 메모리들)(242_1) 내지 (242_N)을 저장한다. 기능적인 관점에서, N 논리 큐들(2042_1) 내지 (242_N)은 각기 M개의 출력 그룹들 OG_1 내지 OG_M에 대응하는 M개의 그룹들(244_1) 내지 (244_M)으로 분할된다. 고정 길이 패킷이 입력 라인(204_1)의 입력 인터페이스를 통해 VOQ(206_1)에 도달할 때, 입력 패킷은 입력 패킷의 목적지 어드레스에 따라 N개의 논리 큐들(242_1) 내지 (242_N) 중 하나에 전송되고 저장된다. 저장된 패킷들의 개수는 도 4에 대각선으로 그늘진 영역으로 나타난 바와 같이 큐들 간에 상이할 것이다.
스위치 스케줄러
도 3에 나타난 바와 같이, 스위치 스케줄러(203)에는 MxM개의 서로 다른 조합들 중 각각의 것에 대응하는 MxM개의 스케줄링 모듈 S(1,1) 내지 S(M,M)이 준비된다. 여기서, 스케줄링 모듈 S(i,j)은 i번째 입력 그룹 IG_i과 j번째 출력 그룹 OG_j의 조합에 대응하며, 여기서 i = 1, 2, ..., 또는 M 그리고 j = 1, 2, ..., 또는 M. 입력 그룹 IG_i와 출력 그룹 OG_j이 각기 N/M 입력 라인들과 N/M 출력 라인들을 수용하기 때문에, 스케줄링 모듈 S(i,j)은 대응하는 N/M VOQ로부터의 패킷 포워딩 요구에 기초하여 소정의 미래 시간 슬롯에 대해 N/MxN/M개의 서로 다른 스케줄을 수행한다. 스케줄링이 완료될 때, 스케줄링 모듈 S(i,j)은 스케줄링 모듈S(i,j)에 의해 갱신된, 입력 포트 예약 상태 또는 예약된 입력 포트 정보(231_j)를 인접한 스케줄링 모듈 S(i-1,j)로 전송하고, 여기서 만일 i-1 = 0인 경우, M으로 대체된다. 이와 동시에, 스케줄링 모듈 S(i,j)은 스케줄링 모듈 S(i,j)에 의해 갱신된, 예약된 출력 포트 정보(232_i) 또는 출력 포트 예약 상태를 인접한 스케줄링 모듈 S(i,j+1)로 전송하고, 여기서 만일 j+1 = M+1인 경우, 1로 대체된다.
본 실시예에서, 포워딩될 패킷은 고정된 길이를 가지고 하나의 입력 포트로부터 하나의 출력 포트로 패킷을 포워딩시키는 데 필요한 시주기를 1 시간 슬롯으로 정의한다. 이전 스케줄링 모듈 S(i+1,j)와 S(i,j-1)로부터 예약된 입력 및 출력 포트 정보(231_j) 및 (231_i)를 수신할 때, 스케줄링 모듈 S(i,j)은 대응하는 VOQ와 예약된 입력 및 출력 포트 정보(231_j) 및 (231_i)로부터의 패킷 포워딩 요구에 기초한 입력 및 출력 포트의 2차원 예약을 만들어 다른 스케줄링 모듈과의 충돌을 방지한다.
도 3에서, 예약된 입력 포트 정보(231_j)는 스케줄링 모듈 S(1,j) 내지 S(M,j)의 열을 라운드 로빈 방식으로 순차 방문하고 예약된 출력 포트 정보(232_i)는 스케줄링 모듈 S(i,1) 내지 S(i,M)의 행을 라운드 로빈 방식으로 순차 방문한다. 바꾸어 말하자면, 스케줄링 모듈들 S(1,1) 내지 S(M,M)은 행 및 열 방향으로 접속되어 예약 정보의 라운드를 형성한다. 그러나, 그러한 스케줄링 모듈 접속 시퀀스는 도 3에 나타난 것에 국한된다. 스케줄링 모듈 접속 시퀀스는 서로 다른 대각선 모듈 그룹들 중 하나가 선택됨에 따라 결정될 수도 있다(도 9 내지 도 14 참조).
2차원 파이프라인형 스케줄링
도 5a에 나타난 바와 같이, 스케줄링 모듈들 S1-S16의 행렬은 간단하게 도 3의 N=6이고 M-4일 때 스위치 스케줄러에 제공된다. 이 경우에, 스위치부(201)는 16개의 입력 포트와 16개의 출력 포트를 갖는 16x16개의 교점 스위치(202)를 갖는다. 16개의 입력 라인들은 4개의 입력 그룹들로 동등하게 분할되고 16개의 출력 라인들은 4개의 출력 그룹들로 동등하게 분할된다. 따라서, 4개의 입력 그룹들과 4개의 출력 그룹들의 16개의 서로 다른 조합이 있으며, 이 서로 다른 조합은 스케줄링 모듈들 S1-S16각각의 것에 대응한다.
도 5b를 참조하면, 스케줄링 모듈 Si(i=1, 2, ..., 또는 16)은 입력 포트들(행렬의 좌측에 수직한 방향으로 숫자 1-4로 표시됨)과 출력 포트들(행렬의 상부에 수평 방향으로 숫자 1-4로 표시됨)에 대응하는 4x4 행렬을 저장한다. 보다 구체적으로, 4x4 행렬의 각 구성 요소는 해당 입력 포트로부터 해당 출력 포트로의 패킷 포워딩 요구의 유무를 가리키는 논리값 "1" 또는 "0"을 사용한다. 일례로서 스케줄링 모듈 S1을 취하면, (1,1) 구성 요소가 "0"이기 때문에, 입력 포트(204_1)로부터 출력 포트(205_1)로의 패킷 포워딩 요구는 수신되지 않는다. (1,2) 구성 요소는 "1"이기 때문에, 입력 포트(204_1)로부터 출력 포트(205_2)로의 패킷 포워딩 요구가 수신된다.
도 5a에서, 스케줄링 모듈 S1은 입력 포트들(204_1) 내지 (204_4)(행렬의 좌측에 수직한 방향으로 포트 번호 1-4로 표시됨)과 출력 포트들(205_1) 내지(205_4)(행렬의 상부에 수평 방향으로 포트 번호 1-4로 표시됨)의 4x4 행렬을 저장한다. 유사하게, 스케줄링 모듈 S2는 입력 포트들(204_1) 내지 (204_4)(행렬의 좌측에 수직한 방향으로 포트 번호 1-4로 표시됨)과 출력 포트들(205_5) 내지 (205_8)(행렬의 상부에 수평 방향으로 포트 번호 5-8로 표시됨)의 4x4 행렬을 저장한다. 다음 스케줄링 모듈 S3-S16에 대해서도 동일하다.
예를 들어, 패킷이 출력 포트(205_3)로 포워드되도록 입력 포트(204_2)에서 수신될 때, 대응하는 VOQ(206_2)가 출력 포트(205_3)에 대하여 스위치 스케줄러(203)로 패킷 포워딩 요구를 전송한다. 이 경우에, 패킷 발송 요구가 스케줄링 모듈(S1)에 들어감으로써, 행렬의 (2, 3) 성분이 "0"에서 "1"로 바뀐다. 유사하게, 패킷이 출력 포트(205_11)로 포워드되도록 입력 포트(204_7)에 수신될 때, 대응하는 VOQ(206_7)가 출력 포트(205_11)에 대하여 스위치 스케줄러(203)로 패킷 포워딩 요구를 송신한다. 이 경우, 패킷 포워딩 요구가 스케줄링 모듈(S7)에 들어감으로써, 행렬의 (3,3) 성분이 "0"에서 "1"로 바뀐다.
도 5a에 나타낸 바와 같이, 이 예에서, 4개의 스케줄링 모듈(S1, S6, S11및 S16)이 선택된 대각선 모듈 그룹에서 대각선 서비스 패턴을 제공한다. 4개의 스케줄링 모듈(S1, S6, S11및 S16)이 다른 스케줄링 모듈과의 충돌을 피하기 위하여 결합되는 것이 도 5a로부터 자명하다. 예를 들어, 스케줄링 모듈(S1)의 입력포트(204_1 내지 204_4)는 다른 스케줄링 모듈(S6, S11및 S16)의 다른 입력 포트(204_5 내지 204_16)와 충돌하지 않는다. 유사하게, 스케줄링 모듈(S1)의 출력 포트(205_1 내지 205_4)는 다른 스케줄링 모듈(S6, S11및 S16)의 다른 출력 포트(205_5 내지 205_16)와 충돌하지 않는다.
선택된 대각선 모듈 그룹에서 다른 세 대각선 서비스 패턴, (S2, S7, S12및 S13), (S3, S0, S9및 S14), 및 (S4, S5, S10및 S15)이 있다. 이들 4개 대각선 서비스 패턴은 동일한 타임 슬롯에서 다른 미래 타임 슬롯에 대하여 동시에 각각의 스케줄링 프로세스를 실행하여, 스케줄링의 효율이 강화된다.
각 스케줄링 모듈이 타임 슬롯에서 그 스케줄링 프로세스를 완료할 때, 스케줄링 모듈이 예약된 입력 포트 정보를 도 5a의 수평 화살표 방향에서 인접한 스케줄링 모듈로 전송한다. 동시에, 스케줄링 모듈이 예약된 출력 포트 정보를 도 5a의 수직 방향 화살표 방향에서 인접한 스케줄링 모듈로 전송한다. 예를 들어, 스케줄링 모듈(S1)이 예약된 입력 포트 정보(265)를 갱신하여 갱신 정보(265)를 인접한 스케줄링 모듈(S7)로 전송한다. 동시에, 스케줄링 모듈(S1)이 예약된 출력 포트 정보(261)를 갱신하고 갱신 정보(261)를 인접한 스케줄링 모듈(S13)로 전송한다. 각 스케줄링 모듈이 대응하는 VOQ로부터 수신된 패킷 포워딩 요구와 이전 스케줄링 모듈로부터 수신된 예약된 입력 및 출력 포트 정보에 기초하여 미래 타이밍 슬롯에 대하여 4x4 스케줄링 프로세스를 실행한다. 예약된 입력 및 출력 포트 정보가 스케줄링 모듈에 의해 갱신되고 다음 스케줄링 모듈로 전송된다.
이러한 방식으로, 스케줄링 모듈이 각각의 스케줄링 프로세스를 수행하는 동안, 예약된 입력 및 출력 포트 정보가 4 타임 슬롯 동안 스케줄링 모듈(S1내지 S16)을 돌아서, 소정의 미래 타임 슬롯 동안 스케줄링을 얻는다.
전술된 스케줄링 프로세스를 실행하기 위하여 두가지 필요사항이 있다. 첫째, 예약된 입력 및 출력 포트 정보의 전송 프로세스를 포함하는 스케줄링 모듈의 4x4 스케줄링 프로세스가 한 타임 슬롯 동안 완료되어야 한다. 둘째, 동일한 기회의 예약이 각 그룹에 대하여 4개 입력 VOQ로 주어져야 한다. 즉, 하나의 타임 슬롯 완료와 페어니스의 요구가 만족되면, 어떤 스케줄링 알고리즘도 적용될 수 있다. 예를 들어, 미국 특허 제 5,299,190호 및 제 5,734,649호에 개시된 스케줄링 알고리즘이 사용될 수 있다.
도 6을 참조하여, 이 예에서, 선택된 대각선 모듈 그룹에서 대각선 서비스 패턴을 제공하는 스케줄링 모듈(S1, S6, S11및 S16)이 타임 슬롯(T1)에서 미래 타임 슬롯(T5)동안 입력 출력 조합의 첫번째 예약에 대한 권리를 가진다.
입력 포트(204_1 내지 204_4)로부터 패킷 포워딩 요구가 출력 포트(205_1 내지 205_4)로 발생하고 이들 중 몇몇이 충돌할 때, 스케줄링 모듈(S1)이 패킷 포워딩 요구를 조정한다. 예를 들어, 모든 VOQ(206_1 내지 206_4)가 동일한 출력 포트(205_1)를 요구하면, 스케줄링 모듈(S1)이 이들 요구를 하나의 요구에만 대응하도록 조정한다. 유사하게, 입력 포트(204_5 내지 204_8)로부터 출력 포트(205_5 내지 205_8)로 패킷 포워딩 요구가 일어나고 이들 중 몇몇이 충돌할 때, 스케줄링 모듈(S6)이 이들 패킷 포워딩 요구를 조정한다. 입력 포트(204_9 내지 204_12)로부터 출력 포트(205_9 내지 205_12)로 패킷 포워딩 요구가 일어나고 이들 중 몇몇이 충돌할 때, 스케줄링 모듈(S11)이 이들 패킷 포워딩 요구를 조정한다. 입력 포트(204_13 내지 204_16)로부터 출력 포트(205_13 내지 205_16)로 패킷 포워딩 요구가 일어나고 이들 중 몇몇이 충돌할 때, 스케줄링 모듈(S16)이 이들 패킷 포워딩 요구를 조정한다. 이러한 방식으로, 스케줄링 모듈(S1, S6, S11, 및 S16이 타임 슬롯(T1)에서 스케줄링 프로세스 그룹(281)의 스케줄링을 실행한다.
스케줄링을 완료한 후에, 스케줄링 모듈(S1, S6, S11및 S16)은 예약 상태 정보의 갱신 및 전달을 수행한다. 특히, 스케줄링 모듈(S1)은 예약된 입력 포트 정보(265) 및 예약된 출력 포트 정보(261)를 갱신하고, 인접 스케줄링 모듈(S2) 및 인접 스케줄링 모듈(S13)에 갱신된 정보(265 및 261)를 각각 전달한다. 스케줄링 모듈(S6)은 예약된 입력 포트 정보(266) 및 예약된 출력 포트 정보(262)를 갱신하고, 인접 스케줄링 모듈(S7) 및 인접 스케줄링 모듈(S2)에 갱신된 정보(266 및 262)를 각각 전달한다. 스케줄링 모듈(S11)은 예약된 입력 포트 정보(267) 및 예약된출력 포트 정보(263)를 갱신하고, 인접 스케줄링 모듈(S12) 및 인접 스케줄링 모듈(S7)에 갱신된 정보(267 및 263)를 각각 전달한다. 스케줄링 모듈(S16)은 예약된 입력 포트 정보(268) 및 예약된 출력 포트 정보(264)를 갱신하고, 인접 스케줄링 모듈(S13) 및 인접 스케줄링 모듈(S12)에 갱신된 정보(268 및 264)를 각각 전달한다.
다음 타임 슬롯(T2)에서, 스케줄링 모듈(S2, S7, S12및 S13)은 이전 스케줄링 모듈(S1, S6, S11및 S16)로부터 수신된 예약된 입출력 정보 및 수신된 패킷 전송 요구에 기초한 미래 타임 슬롯(T5)을 위한 스케줄링 프로세스 그룹(281)의 후속 스테이지 스케줄링을 각각 수행한다. 상술한 바와 같이, 입출력 포트의 이전에 예약된 결합은 타임 슬롯(T2)의 현재 스케줄링 스테이지에서 예약될 수 없다. 스케줄링을 완료한 후에, 스케줄링 모듈(S2, S7, S12및 S13)은 상술한 바와 같이 예약 상태 정보의 갱신 및 전달을 수행한다.
다음 타임 슬롯(T3)에서, 스케줄링 모듈(S3, S8, S9및 S14)은 이전 스케줄링 모듈(S2, S7, S12및 S13)로부터 수신된 예약된 입출력 정보 및 수신된 패킷 전송 요구에 기초한 미래 타임 슬롯(T5)에 대한 스케줄링 프로세스 그룹(281)의 후속 스테이지 스케줄링을 각각 수행한다. 스케줄링을 완료한 후에, 스케줄링 모듈(S3, S8, S9및 S14)은 상술한 바와 같이 예약 상태 정보의 갱신 및 전달을 수행한다.
다음 타임 슬롯(T4)에서, 스케줄링 모듈(S4, S5, S10및 S15)은 이전 스케줄링 모듈(S3, S8, S9및 S14)로부터 수신된 예약된 입출력 정보 및 수신된 패킷 전송 요구에 기초한 미래 타임 슬롯(T5)에 대한 스케줄링 프로세스 그룹(281)의 후속 스테이지 스케줄링을 각각 수행한다.
이러한 방식으로, 미래 타임 슬롯(T5)에 대한 스케줄링 프로세스 그룹(281)은 4개의 타임 슬롯(T1내지 T4)의 시간 기간 동안에 완료된다. 즉, 미래 타임 슬롯(T5) 동안에 입력 포트(204_1 내지 204_16)에서 출력 포트(205_1 내지 205_16) 중 적절한 포트로의 예약이 완료된다.
하지만, 상술한 바와 같이, 일련의 스케줄링 모듈(S1, S6, S11및 S16)과 같은 하나의 대각선 서비스 패턴은 스케줄링 프로세스 그룹(281) 동안에 단지 하나의 타임 슬롯에 대한 스케줄링을 수행한다. 따라서, 또한 서로 다른 미래 타임 슬롯에 대한 3개의 스케줄링 프로세스 그룹(282-284)은, 도 6에 도시한 바와 같이, 스케줄링 프로세스 그룹(281)과 병행하게 동작될 수 있다. 또한, 스케줄링 모듈(S1내지 S16) 사이에서 페어니스를 보장하기 위해, 4개의 대각선 서비스 패턴이 서로 다른 대각선 모듈 그룹과 스케줄링 프로세스 그룹(281-284) 각각을 시동시키는데 이용될 수 있다. 하기에서 상세하게 설명한다.
도 6에 도시된 바와 같이, 선택된 대각선 모듈 그룹에서 다른 대각선 서비스 패턴을 제공하는 스케줄링 모듈(S2, S7, S12및 S13)은 타임 슬롯(T1)에서 미래 타임 슬롯(T6)에 대한 스케줄링 프로세스 그룹(282)의 스케줄링을 수행한다. 스케줄링을 완료한 후에, 스케줄링 모듈(S2, S7, S12및 S13)은 예약 상태 정보의 갱신 및 전달을 수행한다.
다음 타임 슬롯(T2)에서, 스케줄링(S3, S8, S9및 S14)은 이전 스케줄링 모듈(S2, S7, S12및 S13)로부터 수신된 예약된 입출력 포트 정보 및 수신 패킷 전송 요구에 기초하여 미래 타임 슬롯(T6)에 대한 후속 스테이지 스케줄링을 각각 수행한다. 스케줄링을 완료한 후에, 스케줄링 모듈(S3, S8, S9및 S14)은, 상술한 바와 같이, 예약 상태 정보의 갱신 및 전달을 수행한다.
다음 타임 슬롯(T3)에서, 스케줄링(S4, S5, S10및 S15)은 이전 스케줄링 모듈(S3, S8, S9및 S14)로부터 수신된 예약된 입출력 포트 정보 및 수신 패킷 전송 요구에 기초하여 미래 타임 슬롯(T6)에 대한 후속 스테이지 스케줄링을 각각 수행한다. 스케줄링을 완료한 후에, 스케줄링 모듈(S4, S5, S10및 S15)은, 상술한 바와 같이, 예약 상태 정보의 갱신 및 전달을 수행한다.
다음 타임 슬롯 T4에서, 스케줄링 모듈 S1, S2, S11, 및 S16은 수신된 패킷 전송 요구와, 이전의 스케줄링 모듈 S4, S5, S10및S15로부터 각각 수신된 예약된 입력 및 출력 포트 정보에 기초하여 미래의 타임 슬롯 T6에 대한 스케줄링 프로세스 그룹(282)의 다음 단계 스케줄링을 행한다.
이러한 방법으로, 미래의 타임 슬롯 T6에서의 스케줄링 프로세스 그룹(282)도 상기 스케줄링 프로세스 그룹(281)과 유사하게 4개의 타임 슬롯 T1내지 T4의 시간 주기 동안 완료된다. 유사하게, 미래의 타임 슬롯 T7및 T8에서의 프로세스 그룹(283 및 284) 각각의 스케줄링이 상기 스케줄링 프로세스 그룹(281 및 282)과 유사하게 완료된다.
도 7 및 8에서 도시된 바와 같이, 스케줄링 프로세스 그룹(285-289)에 대해서도 동일한 공정이 행해진다. 프로세스 그룹 각각의 스케줄링이 다른 대각선 서비스 패턴과 유사하게 동작하기 때문에, 스케줄링 모듈 S1내지 S16에 대해 동일한 예약 기회가 주어진다.
대각선 모듈 그룹
도 9-14에서, 다른 모듈 접속 시퀀스를 갖는 여러가지의 대각선 모듈 그룹이 도시된다. 대각선 서비스 패턴은 각각 4x4 행렬 내에 4개의 검은색 원으로 형성되는 데, 이것은 도 5a에 도시된 바와 같이 스케줄링 모듈 S1내지 S16의 어레이로 나타내진다. 대각선 모듈 그룹은 3개의 수평 화살표로 연속하여 접속된다.
도 9-14에서, 도 9-14 각각에서 좌상단에 도시된 행렬의 상단에 괄호로 싸여있고 콤마로 구별되어 있는 4개 수는, 예약된 입력 포트 정보의 전송 순서를 나타내고, 이것은 도 9-14의 각 행렬에 공통으로 사용된다. 각각의 대각선 모듈 그룹에서 가장 왼쪽에 있는 행렬의 왼쪽 변에 수직으로 배열된 4개 수는 예약된 입력 포트 정보의 전송 순서를 나타낸다. 각 행렬의 밑에 있는 괄호안에 있는 수는 대각선 서비스 패턴의 일련 번호를 나타낸다. 도 9-14에서, 동일한 일련 번호는 동일한 대각선 서비스 패턴을 나타낸다.
도 5a, 6 및 7를 참조로 설명한 본 실시예에서, 도 9에 도시된 바와 같이 일련 번호 (1), (2), (3) 및 (4)로 나타낸 4개의 대각선 서비스 패턴이 대각선 모듈 그룹으로서 사용된다.
좀 더 상세히는, 제1 대각선 서비스 패턴(1)을 제공하는 스케줄링 모듈 S1, S6, S11, 및 S16은 타임 슬롯 T1에서 스케줄링 프로세스 그룹(281)의 스케줄링을 행한다. 스케줄링을 완료한 후, 1번으로 매겨진 스케줄링 모듈 S1은 갱신된 입력 포트 정보(265)를 2번으로 매겨진 인접한 스케줄링 모듈 S2로 전송한다. 동시에, 스케줄링 모듈S1은 갱신된 출력 포트 정보(261)를 4번으로 매겨진 인접한 스케줄링 모듈 S13으로 전송한다. 동일한 방법으로, 예약된 입력 포트 정보(265)와 예약된 출력 포트 정보(261)는 도 5a에서 수평 및 수직 화살표로 도시된 바와 같이 인접한 스케줄링 모듈로 순차적으로 전송된다. 따라서, 선택된 대각선 모듈 그룹에서, 각각이 콤마로 분리되어 있는 괄호안의 4개 수는 1, 2, 3, 4 순으로 나타내고, 행렬의 좌변에 수직 정렬된 4개 수는 1, 4, 3, 2 순으로 위에서 아래로 나타낸다.
전술한 바와 같이, 이러한 스케줄 모듈 접속 시퀀스는 도 5a에 한정되는 것은 아니다. 스케줄 모듈 접속 시퀀스는 서로 다른 대각선 모듈 그룹 중 하나가 도 9-14에 도시된 바와 같이 선택됨에 따라 결정될 수 있다.
본 발명이 4x4 스위칭 시스템에 한정되지 않고 임의의 크기의 행렬에 적용가능함은 분명하다.
상술한 바와 같이, MxM 행렬의 스케줄링 모듈을 커버하는 서로 다른 모듈 패턴은 서로 충돌하게 되는 것이 방지되도록 제공된다. 따라서, MxM 행렬의 스케줄링 모듈이 그 행렬의 행방향과 열방향 모두로 파이프라인형 스케줄링을 수행하는 것이 가능하게 되어, 패킷 포워딩의 효율이 증가하고 스케줄링이 고속화된다. 더나아가, 입력포트 및 출력 포트가 MxM 그룹으로 분할되기 때문에, 입출력 포트의 수와 스케일링 가능한 고속의 스케줄링이 얻어질 수 있다.

Claims (9)

  1. N은 양의 정수인, N개의 입력 포트들로부터 N개의 출력 포트들 중의 선택된 포트들로의 패킷 포워딩 접속을 교점 스위치에서 타임 슬롯마다 스케줄링하는 스케줄러에 있어서,
    각각이 입력 포트들의 대응하는 입력 그룹으로부터 출력 포트들의 대응하는 출력 그룹으로의 패킷 포워딩 접속을 대응하는 입력 및 출력 포트들의 조합들에 대한 예약 정보에 기초하여 각 타임 슬롯마다 스케줄링하는, MxM 행렬의 스케줄링 모듈들 - N개의 입력 포트들은 M개의 입력 그룹들로 동등하게 분할되고, N개의 출력 포트들은 M개의 출력 그룹들로 동등하게 분할됨 - ; 및
    상기 MxM 행렬의 스케줄링 모듈을 커버하는 서로 다른 모듈 패턴들 중에서 하나의 순차적인 것을 선택하는 셀렉터 - 상기 서로 다른 모듈 패턴들 각각은 서로 충돌하게 되는 것을 방지하기 위하여 M개의 스케줄링 모듈 1 세트를 결정하고, 예약 정보를 전송하는 시퀀스를 결정함 -
    를 포함하고,
    선택된 모듈 패턴에 의해 결정된 스케줄링 모듈은, 대응하는 입력 및 출력 포트들의 조합들에 대한 현재의 예약 정보에 기초하여 패킷 포워딩 접속의 예약을 수행하고, 상기 선택된 모듈 패턴에 의해 결정된 시퀀스에 따라 갱신된 예약 정보를 전송하는 것을 특징으로 하는 스케줄러.
  2. 제1항에 있어서,
    상기 서로 다른 모듈 패턴들 각각은 소정의 대각선 모듈 그룹내의 대각선 서비스 패턴인 것을 특징으로 하는 스케줄러.
  3. N은 양의 정수인, N개의 입력 포트들을 N개의 출력 포트들 중 선택된 출력 포트들에 타임 슬롯마다 접속시키는 NxN 교점 스위치에 대한 파이프라인형 스케줄링 방법에 있어서,
    a) 상기 N개의 출력 포트들 각각에 대응하여 상기 N개의 입력 포트들 각각에 대한 N개의 논리 큐(logical queue)들을 저장하는 단계 - 상기 N개의 입력 포트들은 M개의 입력 그룹들로 동등하게 분할되고, 상기 N개의 출력 포트들은 M개의 출력 그룹들로 동등하게 분할됨 - ;
    b) 각각이 입력 포트들의 대응하는 입력 그룹으로부터 출력 포트들의 대응하는 출력 그룹 중 선택된 그룹으로의 패킷 포워딩 요구를 저장하는 MxM 행렬의 모듈들 내에, 패킷 포워딩 요구들을 저장하는 단계;
    c) 상기 MxM 행렬의 모듈들을 커버하는 M개의 모듈 패턴들을 선택하는 단계 - 상기 모듈 패턴들 각각은 서로간의 충돌을 회피하도록 M개의 모듈들을 갖는 하나의 서로 다른 세트를 결정하는 단계; 및
    d) 파이프라인형 스케줄링을 위해 타임 슬롯마다 상기 선택된 M개의 모듈 패턴들 각각에 의해 결정된 상기 M개의 모듈들 각각에서 단계 d.1 내지 단계 d.3을 수행하는 단계를 포함하되,
    단계 d.1은 상기 MxM 행렬의 행방향과 열방향에서의 2개의 이전 스테이지(previous-stage) 모듈로부터 수신되는 입력 포트 예약 정보와 출력 포트 예약 정보에 기초한 대응하는 패킷 포워딩 요구들에 의존하여 소정의 미래 타임 슬롯에서의 대응하는 입력 및 출력 포트들의 조합들을 예약하는 단계이고,
    단계 d.2는 예약되어 있는 조합들에 의존하여 상기 입력 예약 정보 및 상기 출력 예약 정보를 갱신하는 단계이며,
    단계 d.3은 상기 갱신된 입력 포트 예약 정보 및 갱신된 출력 포트 예약 정보를 상기 MxM 행렬의 행방향과 열방향에서의 2개의 후속 스테이지(subsequent-stage) 모듈들에 전송하는 단계인
    것을 특징으로 하는 파이프라인형 스케줄링 방법.
  4. 제3항에 있어서,
    상기 단계 d)는 다른 미래 타임 슬롯에 대해 M개의 스케줄링 프로세스들에서 동시적으로 수행되고, 상기 M개의 스케줄링 프로세스들 각각은 상기 선택된 M개의 모듈 패턴들 중에서 서로 다른 패턴으로 시작하는 것을 특징으로 하는 파이프라인형 스케줄링 방법.
  5. 제3항에 있어서,
    상기 선택된 M개의 모듈 패턴들 각각은 소정의 대각선 모듈 그룹내의 대각선 서비스 패턴인 것을 특징으로 하는 파이프라인형 스케줄링 방법.
  6. N은 양의 정수인, N개의 입력 포트들을 N개의 출력 포트들 중 선택된 포트들에 타임 슬롯마다 접속시키는 NxN 교점 스위치에 대한 스케줄러에 있어서,
    상기 N개의 출력 포트들 각각에 대응하여, 상기 N개의 입력 포트들 각각에 대한 N개의 논리 큐를 구비하며 - 상기 N개의 입력 포트들은 M개의 입력 그룹으로 동등하게 분할되고, 상기 N개의 출력 포트들은 M개의 출력 그룹으로 동등하게 분할됨 - ,
    각각이, 입력 포트들의 대응하는 입력 그룹으로부터 출력 포트들의 대응하는 출력 그룹의 선택된 그룹으로의 패킷 포워딩 요구들을 저장하고, 대응하는 패킷 포워딩 요구들, 입력 포트 예약 정보 및 출력 포트 예약 정보에 기초하여 대응하는 패킷 포워딩 접속들을 스케줄링하는 MxM 행렬의 스케줄링 모듈들; 및
    상기 MxM 행렬의 스케줄링 모듈들을 커버하는 M개의 모듈 패턴들을 선택하는 셀렉터 - 상기 M개의 모듈 패턴들 각각은 서로간의 충돌을 피하기 위해 M개의 스케줄링 모듈들 중에서 하나의 서로 다른 세트를 결정함 - 를 포함하되,
    상기 선택된 M개의 모듈 패턴들 각각에 의해 결정된 M개의 스케줄링 모듈들 각각은, 각 타임 슬롯마다, 소정의 미래 타임 슬롯동안의 대응하는 패킷 포워딩 요구들의 예약을 수행하고, 상기 예약에 기초하여 상기 입력 포트 예약 정보 및 상기 출력 포트 예약 정보를 갱신하고, 또한 갱신된 입력 포트 예약 정보 및 갱신된 출력 포트 예약 정보를 MxM 행렬의 행방향 및 열방향으로 2개의 후속 스테이지 모듈에 전송하는 것을 특징으로 하는 스케줄러.
  7. 제6항에 있어서,
    상기 선택된 M개의 모듈 패턴들에 의해 결정된 상기 스케줄링 모듈들은, 다른 미래 타임 슬롯에 대해 M개의 스케줄링 프로세스들을 동시에 수행하고, 상기 M개의 스케줄링 프로세스들 각각은 상기 선택된 M개의 모듈 패턴들 중에서 서로 다른 모듈 패턴으로 시작하는 것을 특징으로 하는 스케줄러.
  8. N은 양의 정수인, 교점 스위치의 N개의 입력 포트들 및 N개의 출력 포트들의 조합들을 제공하는 패킷 포워딩 접속을 스케줄링하는 방법에 있어서,
    상기 N개의 입력 포트들 및 N개의 출력 포트들의 가능한 조합들을 MxM 그룹으로 그룹화하는 단계 - 상기 N개의 입력 포트들은 M개의 그룹으로 동등하게 분할되고, 상기 N개의 출력 포트들은 M개의 그룹으로 동등하게 분할됨 - ;
    하나의 입력 포트로부터 소망하는 출력 포트로의 패킷 포워딩 요구를 MxM 그룹 중에서 대응하는 그룹으로 할당하는 단계;
    상기 MxM 그룹내의 M개의 대각선 서비스 패턴들의 소정의 세트를 순차적으로 선택하는 단계; 및
    순차적으로 선택된 대각선 서비스 패턴에 따라서 파이프라인으로 패킷 포워딩 접속들을 스케줄링하는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법.
  9. 제8항에 있어서,
    상기 패킷 포워딩 접속들은 다른 미래 타임 슬롯에 대해 M개의 스케줄링 프로세스들에서 동시에 수행되고, 상기 M개의 스케줄링 프로세스 각각은 M개의 대각선 서비스 패턴중 서로 다른 패턴으로 시작하는 것을 특징으로 하는 스케줄링 방법.
KR10-2001-0061154A 2000-10-02 2001-10-04 파이프라인형 스케줄링 방법 및 스케줄러 KR100411221B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000302551A JP3567878B2 (ja) 2000-10-02 2000-10-02 パケット交換装置
JPJP-P-2000-00302551 2000-10-02

Publications (2)

Publication Number Publication Date
KR20020027235A KR20020027235A (ko) 2002-04-13
KR100411221B1 true KR100411221B1 (ko) 2003-12-18

Family

ID=18783886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0061154A KR100411221B1 (ko) 2000-10-02 2001-10-04 파이프라인형 스케줄링 방법 및 스케줄러

Country Status (7)

Country Link
US (5) US6977935B2 (ko)
EP (1) EP1193922B1 (ko)
JP (1) JP3567878B2 (ko)
KR (1) KR100411221B1 (ko)
CN (1) CN100454885C (ko)
DE (1) DE60137106D1 (ko)
HK (1) HK1047507A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3567878B2 (ja) 2000-10-02 2004-09-22 日本電気株式会社 パケット交換装置
USRE42600E1 (en) 2000-11-20 2011-08-09 Polytechnic University Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme
US7046661B2 (en) 2000-11-20 2006-05-16 Polytechnic University Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined hierarchical arbitration scheme
JP4072315B2 (ja) * 2000-12-26 2008-04-09 富士通株式会社 パケットスイッチ
US7039011B1 (en) * 2001-10-31 2006-05-02 Alcatel Method and apparatus for flow control in a packet switch
GB0127650D0 (en) * 2001-11-19 2002-01-09 Nokia Corp Improvements in and relating to content delivery
US7385970B1 (en) * 2001-12-07 2008-06-10 Redback Networks, Inc. Method and apparatus for balancing bandwidth among multiple ports of a network element
US7424013B1 (en) 2001-12-20 2008-09-09 Applied Micro Circuits Corporation System and method for granting arbitrated bids in the switching of information
US7352694B1 (en) * 2001-12-14 2008-04-01 Applied Micro Circuits Corporation System and method for tolerating data link faults in a packet communications switch fabric
US8418129B1 (en) 2001-12-14 2013-04-09 Qualcomm Incorporated Method for automatically generating code to define a system of hardware elements
US7082132B1 (en) * 2001-12-26 2006-07-25 Nortel Networks Limited Universal edge node
US6922501B2 (en) * 2002-04-11 2005-07-26 Nortel Networks Limited Fast optical switch
KR101017933B1 (ko) * 2002-06-21 2011-03-04 톰슨 라이센싱 완전 중복형의 선형적으로 확장 가능한 방송 라우터
US20040037558A1 (en) * 2002-08-20 2004-02-26 Nortel Networks Limited Modular high-capacity switch
US7154902B1 (en) * 2002-10-21 2006-12-26 Force10 Networks, Inc. Epoch-based packet switching
US7274701B2 (en) 2002-11-04 2007-09-25 Tellabs Operations, Inc. Cell based wrapped wave front arbiter (WWFA) with bandwidth reservation
US7417985B1 (en) 2003-01-30 2008-08-26 Pmc-Sierra, Inc. Egress selection switch architecture with power management
US7404058B2 (en) * 2003-05-31 2008-07-22 Sun Microsystems, Inc. Method and apparatus for avoiding collisions during packet enqueue and dequeue
US20060285548A1 (en) * 2003-09-29 2006-12-21 Hill Alan M Matching process
EP1668927A1 (en) * 2003-09-29 2006-06-14 British Telecommunications Public Limited Company Channel assignment process
US7492782B2 (en) * 2003-12-27 2009-02-17 Electronics And Telecommunications Research Institute Scalable crossbar matrix switching apparatus and distributed scheduling method thereof
US7486687B2 (en) * 2004-02-27 2009-02-03 International Business Machines Corporation Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots
US7542473B2 (en) * 2004-12-02 2009-06-02 Nortel Networks Limited High-speed scheduling apparatus for a switching node
US8135024B2 (en) * 2005-11-14 2012-03-13 Corning Incorporated Method and system to reduce interconnect latency
FR2893800B1 (fr) * 2005-11-24 2008-01-04 Alcatel Sa Systeme de commutation de paquets pour noeud de reseau de telecommunication
JP4162249B2 (ja) * 2006-02-23 2008-10-08 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数の工程の配列順序を決定するシステム
US7710953B2 (en) * 2007-03-30 2010-05-04 Alcatel-Lucent Usa Inc. Method and apparatus for operating fast switches using slow schedulers
US7974278B1 (en) * 2007-12-12 2011-07-05 Integrated Device Technology, Inc. Packet switch with configurable virtual channels
US8219657B2 (en) * 2008-06-13 2012-07-10 Microsoft Corporation Automatic request categorization for internet applications
CN101621460B (zh) * 2008-06-30 2011-11-30 中兴通讯股份有限公司 一种分组调度方法和装置
CN101815025B (zh) * 2009-02-24 2013-12-04 华为技术有限公司 单播多播的调度方法、装置和系统
US8738489B2 (en) * 2010-10-27 2014-05-27 Oracle International Corporation Managing schedules in a financial close management system
US8990490B2 (en) * 2011-11-29 2015-03-24 Rambus Inc. Memory controller with reconfigurable hardware
JP5687644B2 (ja) * 2012-02-28 2015-03-18 日本電信電話株式会社 パケット転送装置およびパケットスケジューリング方法
JP5775027B2 (ja) * 2012-06-13 2015-09-09 日本電信電話株式会社 スケジューラ、ネットワークシステム、プログラム
KR20140011531A (ko) 2012-06-29 2014-01-29 한국전자통신연구원 가상 포트를 고려한 패킷 스케줄링 방법 및 그 장치
RU2609086C2 (ru) * 2014-05-07 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Сетевое устройство пересылки пакетов (варианты), способ настройки сетевого устройства пересылки пакетов (варианты) и способ пересылки пакета
CN105049262B (zh) * 2015-08-24 2018-07-10 中国联合网络通信集团有限公司 调整端口流量负载的方法及装置
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10944694B2 (en) * 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673252A (en) * 1990-02-15 1997-09-30 Itron, Inc. Communications protocol for remote data generating stations
US5299190A (en) * 1992-12-18 1994-03-29 International Business Machines Corporation Two-dimensional round-robin scheduling mechanism for switches with multiple input queues
US5506848A (en) * 1994-06-22 1996-04-09 At&T Corp. Demand assignment system and method for mobile users in a community of interest
TW267222B (en) * 1994-10-05 1996-01-01 Ibm Improved method and system of addressing
US5734649A (en) * 1996-05-31 1998-03-31 Bbn Corporation Data packet router
US5831980A (en) * 1996-09-13 1998-11-03 Lsi Logic Corporation Shared memory fabric architecture for very high speed ATM switches
US5959993A (en) * 1996-09-13 1999-09-28 Lsi Logic Corporation Scheduler design for ATM switches, and its implementation in a distributed shared memory architecture
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
US6208799B1 (en) * 1997-04-29 2001-03-27 Time Warner Entertainment Company L.P. VCR recording timeslot adjustment
US6263484B1 (en) * 1997-10-01 2001-07-17 Yang-Sei Yang Prototyping system and a method of operating the same
US6044061A (en) * 1998-03-10 2000-03-28 Cabletron Systems, Inc. Method and apparatus for fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
US6334182B2 (en) * 1998-08-18 2001-12-25 Intel Corp Scheduling operations using a dependency matrix
US6618379B1 (en) 1998-12-08 2003-09-09 Nec Corporation RRGS-round-robin greedy scheduling for input/output terabit switches
US6661788B2 (en) * 1999-05-14 2003-12-09 Nortel Networks Limited Multicast scheduling for a network device
US7058063B1 (en) * 1999-06-18 2006-06-06 Nec Corporation Pipelined packet scheduler for high speed optical switches
US6781986B1 (en) * 1999-06-25 2004-08-24 Nortel Networks Limited Scalable high capacity switch architecture method, apparatus and system
CA2283627C (en) * 1999-09-27 2008-08-12 Nortel Networks Corporation High-capacity wdm-tdm packet switch
KR100363890B1 (ko) * 1999-10-14 2002-12-11 주식회사 케이티 입출력 버퍼형 스위치의 다중 선택형 2차원 라운드로빈 스케줄링 방법
JP3389913B2 (ja) * 1999-11-10 2003-03-24 日本電気株式会社 グループ化パイプライン・スケジューリング方式及びその方法
DE19956359A1 (de) * 1999-11-24 2001-05-31 Alcatel Sa Kartenbuchung mittels einer virtuellen Eintrittskarte
JP3565121B2 (ja) * 1999-12-15 2004-09-15 日本電気株式会社 パケットスイッチ及びパケットスイッチング方法
JP3473687B2 (ja) * 2000-03-29 2003-12-08 日本電気株式会社 分散パイプラインスケジューリング方法および方式
US20030058848A1 (en) * 2000-04-11 2003-03-27 Velio Communications, Inc. Scheduling clos networks
US20020175998A1 (en) * 2000-05-31 2002-11-28 Hoang Khoi Nhu Data-on-demand digital broadcast system utilizing prefetch data transmission
US7072353B2 (en) * 2000-06-15 2006-07-04 At&T Corp. Flexible bandwidth allocation in high-capacity grooming switches
JP3567878B2 (ja) * 2000-10-02 2004-09-22 日本電気株式会社 パケット交換装置
WO2003009605A2 (en) * 2001-07-16 2003-01-30 Wavemarket Inc. System for providing alert-based services to mobile stations in a wireless communications network
US7298728B2 (en) * 2002-12-23 2007-11-20 Alcatel Lucent Scheduling system and method for a burst switch
US20050165631A1 (en) * 2004-01-28 2005-07-28 Microsoft Corporation Time management representations and automation for allocating time to projects and meetings within an online calendaring system
US20090138283A1 (en) * 2007-11-27 2009-05-28 Lizbeth Ann Brown Appointment scheduling system and method

Also Published As

Publication number Publication date
US8005092B2 (en) 2011-08-23
JP2002111715A (ja) 2002-04-12
US7161943B2 (en) 2007-01-09
US7680126B2 (en) 2010-03-16
US6977935B2 (en) 2005-12-20
US20060104285A1 (en) 2006-05-18
CN1354579A (zh) 2002-06-19
US20070115958A1 (en) 2007-05-24
CN100454885C (zh) 2009-01-21
DE60137106D1 (de) 2009-02-05
HK1047507A1 (en) 2003-02-21
US20090323695A1 (en) 2009-12-31
JP3567878B2 (ja) 2004-09-22
US20080037550A1 (en) 2008-02-14
EP1193922A2 (en) 2002-04-03
EP1193922B1 (en) 2008-12-24
US7602790B2 (en) 2009-10-13
KR20020027235A (ko) 2002-04-13
US20020039364A1 (en) 2002-04-04
EP1193922A3 (en) 2004-04-07

Similar Documents

Publication Publication Date Title
KR100411221B1 (ko) 파이프라인형 스케줄링 방법 및 스케줄러
US7173931B2 (en) Scheduling the dispatch of cells in multistage switches
US7046661B2 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined hierarchical arbitration scheme
US6940851B2 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme
EP0868054B1 (en) Self-arbitrating crossbar switch
Oie et al. Survey of switching techniques in high‐speed networks and their performance
US20060285548A1 (en) Matching process
US20090262744A1 (en) Switching network
US6735212B1 (en) Short and long term fair shuffling for crossbar switch arbiter
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
US6888841B1 (en) Pipelined scheduling technique
US20060077973A1 (en) Output scheduling method of crosspoint buffered switch
Kleban et al. CRRD-OG: A packet dispatching algorithm with open grants for three-stage buffered Clos-network switches
USRE42600E1 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme
Kleban et al. Packet dispatching algorithms with the static connection patterns scheme for three-stage buffered clos-network switches
KR20020054207A (ko) 분배결합 패킷 스위칭 장치
Han et al. Fast scheduling algorithm for input and output buffered ATM switch with multiple switching planes
KR20020053664A (ko) 간결한 중재용 교신 정보를 갖는 분배결합 패킷 스위칭 장치
Kleban Packet dispatching schemes for three-stage buffered Clos-network switches
Tsaur et al. A practical matching of output queueing with a 3D-VOQ switch.

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee