KR100312363B1 - Data flow control switch and method for scheduling the same - Google Patents

Data flow control switch and method for scheduling the same Download PDF

Info

Publication number
KR100312363B1
KR100312363B1 KR1019990042624A KR19990042624A KR100312363B1 KR 100312363 B1 KR100312363 B1 KR 100312363B1 KR 1019990042624 A KR1019990042624 A KR 1019990042624A KR 19990042624 A KR19990042624 A KR 19990042624A KR 100312363 B1 KR100312363 B1 KR 100312363B1
Authority
KR
South Korea
Prior art keywords
time slot
scheduling
future time
port
input
Prior art date
Application number
KR1019990042624A
Other languages
Korean (ko)
Other versions
KR20010005450A (en
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 KR20010005450A publication Critical patent/KR20010005450A/en
Application granted granted Critical
Publication of KR100312363B1 publication Critical patent/KR100312363B1/en

Links

Classifications

    • 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
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/629Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
    • 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

Landscapes

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

Abstract

크로스바 고속 스위치 패브릭의 입선 사이에서의 공평한 스케줄링이 가능한 파이프 라인 스케줄러를 제공한다.It provides a pipeline scheduler that allows for fair scheduling between the incoming lines of crossbar high-speed switch fabrics.

라운드 로빈 방식에 의해, 이월 라운드 로빈 파이프 라인 스케줄러(CORPS)는 여러 포트로의 스케일러빌리티를 실현한다. 더욱이, CORPS는, 장래의 슬롯 패킷을 스케줄링함으로서, 라인마다 슬롯마다 하나의 스케줄링 결정을 한다. 스케줄링되는 큐의 선택은 임의이기 때문에, 본 발명은, 트래픽의 서비스 품질을 서포트하는 데 적합하다. CORPS는, 출력포트 사이의 경합을 공평하게 해결한다.By round robin, the carry round robin pipeline scheduler (CORPS) realizes scalability to multiple ports. Moreover, CORPS makes one scheduling decision per slot per line by scheduling future slot packets. Since the choice of queue to be scheduled is arbitrary, the present invention is suitable for supporting the quality of service of traffic. CORPS resolves contention evenly between output ports.

Description

데이터 흐름 제어 스위치 및 그 스케줄링방법{Data flow control switch and method for scheduling the same}Data flow control switch and method for scheduling the same

본 발명은, 네트워크에 의한 데이터의 흐름(flow)을 제어하는 네트워크 시스템 및 스위치에 관한 것이며, 특히, 대용량 스위치를 통한 데이터 흐름을 관리하는 스케줄러에 관한 것이다.The present invention relates to a network system and a switch for controlling the flow of data by a network, and more particularly, to a scheduler for managing the flow of data through a large capacity switch.

입력 큐 스위치 아키텍처는, 항상 고속 교환 시스템의 유력한 선택지였다. 그것은 주로, 입력 버퍼의 메모리 액세스 속도가, 모든 교환 용량과 함께 스케일하는 게 아니라, 단일한 입선의 속도와 함께 스케일하기 때문이다. 그러나, 입력 버퍼형 스위치는, HOL(head-of-line) 블로킹의 문제가 있다는 것이 이전부터 알려져있으며, 이로써 모든 스루풋은 58.6%라는 이론 한계에 제한된다(M. J. Karol, M. G. Hluchyj. S. P. Morgan, 'Input Versus 0utput Queuing on a Space­Division Packct Switch', IEEE Transactions on Communications, Vol.C0M-35, No.12, PP.1347- l356, Dec. 1987, 참조).Input queue switch architectures have always been a viable option for high-speed switching systems. This is mainly because the memory access speed of the input buffer scales with the speed of a single granularity, not with all the exchange capacity. However, it has been previously known that input buffered switches suffer from head-of-line blocking, thereby limiting all throughput to a theoretical limit of 58.6% (MJ Karol, MG Hluchyj. SP Morgan, ' Input Versus 0utput Queuing on a Space Division Packct Switch ', IEEE Transactions on Communications, Vol. C0M-35, No. 12, PP. 1347-1356, Dec. 1987).

최근들어, 입력 스위치의 HOL 블로킹의 문제를 극복하기 위해서, 가상 출력 큐잉(VOQ: Virtual 0utput Queuing)이라는 입력 큐잉 방식이 제안되었다(Y. Tamir and G. Frazier, 'High Performance Multi­queue Buffers for VLSI Communica tion Switches', Proceedings of 15th Ann. Symp. on Comp. Arch., pp.343­ 354, June 1988 및 T. Anderson, S. 0wieki, J. Saxe, C. Thacker, 'High Speed Switch Scheduling for Local Area Networks'. ACM Transactions on Computer Systems, pp.319-352, Nov. 1993, 참조). 그 사고방식은, 스위치의 각 출력포트마다 별도의 큐를 설치하여, 빈 출력포트당 패킷이, 다른 포트에 대한 경합에 의해 진행하지 않는 선두 패킷에 의해 서비스를 블록될 가능성이 없어지도록 한다는 것이다. 이 경우, N×N 스위치는 입력포트마다 N개의 큐, 즉, N2개의 큐를 갖는다. 다른 연구자에 의해 의논되고 있듯이(A. Mekkittikul, N. McKeown, 'A Practical Scheduling Algorithm to Achieve 100% Through-put in Input-Queued Swithces', Proceedings of Infocom98, April 1998, 참조), VOQ법을 더욱 연구함으로서, 고성능 스케줄러의 설계에 의해 실로 100%의 스루풋이 달성가능한 것이 나타나 있다.Recently, in order to overcome the problem of HOL blocking of input switches, an input queuing scheme called virtual output queuing (VOQ) has been proposed (Y. Tamir and G. Frazier, 'High Performance Multiqueue Buffers for VLSI Communication). Switches', Proceedings of 15th Ann.Symp. On Comp.Arch., Pp.343 354, June 1988 and T. Anderson, S. 0wieki, J. Saxe, C. Thacker, 'High Speed Switch Scheduling for Local Area Networks' ACM Transactions on Computer Systems, pp. 319-352, Nov. 1993,). The idea is to set up a separate queue for each output port of the switch so that packets per empty output port are not likely to be blocked by the first packet that does not proceed due to contention for other ports. In this case, the N × N switch has N cues, i.e., N 2 cues per input port. As discussed by other researchers (see A. Mekkittikul, N. McKeown, A Practical Scheduling Algorithm to Achieve 100% Through-put in Input-Queued Swithces, Proceedings of Infocom98, April 1998, VOQ) As a result, 100% throughput can be achieved by the design of a high performance scheduler.

따라서, VOQ 입력 버퍼형 스위치의 스케줄러는 고속 입력 버퍼형 스위치의중요한 설계 포인트 중 하나가 된다. VOQ의 경우, 스케줄러는, 통상의 선입력 선출력(FIFO) 입력 큐잉 아키텍처의 경우보다도, 백 로그가 있는 입력포트에서 출력포트로 패킷을 교환하는 데 훨씬 많은 선택지를 갖는다. 백 로그가 있는 입력포트 중에서, 모든 입출력포트 쌍을 선택할 수 있다.Thus, the scheduler of the VOQ input buffered switch is one of the important design points of the high speed input buffered switch. In the case of VOQ, the scheduler has much more options for exchanging packets from an input port with a backlog to an output port than with a conventional pre-input pre-output (FIFO) input queuing architecture. You can select any I / O port pair from among the input ports with backlog.

이러한 스케줄러에 대한 연구의 대부분은 이하와 같이 분류할 수 있다. 집중 스케줄러는, 스케줄러가 N2개의 모든 VOQ에 관한 정보를 갖는 단일 엔티티이며, 패킷 슬롯마다 모든 가능한 입출력포트 쌍에 관한 스케줄링 결정을 하는 것이다(예를 들면, A. Mekkittikul. N. McKeown, 'A Practical Scheduling Algorithm to Achieve 100% Through-put in Input­Queued Switches', Proceedings of Infocom98, April 1998, 참조).Most of the studies on these schedulers can be classified as follows. The centralized scheduler is a single entity with information about all N 2 VOQs and makes scheduling decisions about every possible I / O port pair per packet slot (for example, A. Mekkittikul. N. McKeown, 'A Practical Scheduling Algorithm to Achieve 100% Through-put in Input Queued Switches', Proceedings of Infocom 98, April 1998,).

한편, 분산 스케줄러는, 스케줄러가 몇가지 기능 블록(통상은 입력 혹은 출력포트당 1 또는 2개의 블록, 혹은, 입출력 크로스 포인트당 1블록)에 분할된 것이다(예를 들면, N. McKeown, M. Izzard, A. Mekkittikul, W. Ellersick, M. Horowitz, 'The Tiny Tera: A Packet Switch Core'. IEEE Micro, Jan/Feb 1997, pp.26­32 및 Y. Tamir and H-C Chi, 'Symmetric Crossbar Arbiters for VLSI Communication Switches', IEEE Transactions on Parallel and Distributed Systems, Vol.4, No.1, PP.13­27, 1993, 참조).In the distributed scheduler, the scheduler is divided into several functional blocks (typically one or two blocks per input or output port, or one block per input / output cross point) (for example, N. McKeown, M. Izzard). , A. Mekkittikul, W. Ellersick, M. Horowitz, 'The Tiny Tera: A Packet Switch Core'.IEEE Micro, Jan / Feb 1997, pp.2632 and Y. Tamir and HC Chi,' Symmetric Crossbar Arbiters for VLSI Communication Switches', IEEE Transactions on Parallel and Distributed Systems, Vol. 4, No. 1, PP.1327, 1993,).

도 1은, 집중 스케줄러의 일례를 도시하는 개략적 블록도이다. 집중 스케줄러는, 스케줄링 결정을 하기 전에, N2개의 정보에 액세스할 필요가 있다. 이러한스케줄러는, 일반적으로, 스케줄러를 설치하는 하드웨어가 스위치 라인수(N)에 강하게 의존한다는 의미에서, 스케일러블하지는 않다.1 is a schematic block diagram illustrating an example of a concentrated scheduler. The centralized scheduler needs to access N 2 pieces of information before making scheduling decisions. Such a scheduler is generally not scalable in the sense that the hardware installing the scheduler is strongly dependent on the number of switch lines (N).

분산 스케줄러는, 하드웨어에 대해 스위치 포트수에의 의존성을 보다 적게 할 가능성을 갖는다. 그러나, 지금까지 제안되어 있는 것은 여전히, 개개의 패킷 슬롯에 대한 스케줄링 결정을 할 수 있기 전에, N2개의 모든 큐에 관한 정보를 제공하는 통신 메커니즘을 필요로 한다. 이 통신은, 병렬로(SLIP 스케줄러의 경우처럼. N. McKeown. M. lzzard, A. Mekkittikul, W. Ellersick, M. Horowitz, 'The Tiny Tera: A Packet Switch Core', IEEE Micro, Jan/Feb 1997, pp. 26-32, 참조), 혹은, 라운드 로빈 방식으로(Y. Tamir and H-C Chi, 'Symmetric Crossbar Arbiters for VLSI Communication Switches'. IEEE Transactions on Parallel and Distributed Systems, Vol.4, No.1, pp.13­27, 1993, 참조)하는 것이 가능하다.The distributed scheduler has the potential to make the hardware less dependent on the number of switch ports. However, what has been proposed so far still requires a communication mechanism to provide information about all N 2 queues before a scheduling decision can be made for individual packet slots. This communication, in parallel (as with the SLIP scheduler. N. McKeown. M. lzzard, A. Mekkittikul, W. Ellersick, M. Horowitz, 'The Tiny Tera: A Packet Switch Core', IEEE Micro, Jan / Feb 1997, pp. 26-32), or in a round robin fashion (Y. Tamir and HC Chi, 'Symmetric Crossbar Arbiters for VLSI Communication Switches'.IEEE Transactions on Parallel and Distributed Systems, Vol. 4, No. 1 , pp. 1327, 1993).

도 2a 및 2b는, 병렬 방식 및 라운드 로빈 방식의 아키텍처를 각각 도시하는 모식도이다. 도 2a에서의 병렬 통신 아키텍처에서는, 각 블록이 스위치의 사이즈에 당당히 의존해버린다. 각 블록이 N2개의 메시지를 받아들여야만 하기 때문이다. 도 2b에서의 라운드 로빈 아키텍처는 이 문제점을 극복하지만, 다른 문제점을 초래한다. 즉, 모든 출력포트에 관한 스케줄링 결정을 달성하기 위해서는, 메시지 교환은, 단일 패킷 슬롯 중에 1라운드를 완료해야만 한다는 점이다. 이것은, 스케줄링 결정보다도 적어도 N배 고속인 메시지처리를 필요로 한다.2A and 2B are schematic diagrams showing the architecture of the parallel method and the round robin method, respectively. In the parallel communication architecture in FIG. 2A, each block is fairly dependent on the size of the switch. This is because each block must accept N 2 messages. The round robin architecture in FIG. 2B overcomes this problem but results in another problem. In other words, to achieve scheduling decisions for all output ports, message exchanges must complete one round of a single packet slot. This requires message processing that is at least N times faster than scheduling decisions.

더욱이, 최근들어, 라운드 로빈·그리디·스케줄러(RRGS: Round­RobinGreedy Scheduler)가 제안되었다. 이것은, 메시지 패싱(교환)에 근거하는 스케줄러이고, 각 입력포트가 스케줄링 결정을 하여, 이 정보를 라운드 로빈 방식으로 다음 포트에 건네는 것이다(본 출원인에 의한 일본국 특허 출원평 ll-172584호를 참조). 메시지 교환 속도 요구조건을 완화하기 위해서, RRGS는 파이프 라인 기능을 도입하고 있다. 입력포트는, 충분히 장래의 슬롯에 관한 스케줄링 결정을 하여, 메시지 교환 메커니즘이 이 정보를 다른 입력포트로 넓히는 데 충분한 시간이 있도록 한다. RRGS는 고속으로, 용이하게 설치할 수 있다.Moreover, in recent years, the Round Robin RobinGreedy Scheduler (RRGS) has been proposed. This is a scheduler based on message passing (exchange), where each input port makes a scheduling decision and passes this information to the next port in a round robin fashion (see Japanese Patent Application No. ll-172584 by the present applicant). ). To alleviate message exchange rate requirements, RRGS introduces a pipelined feature. The input port makes enough scheduling decisions about future slots, allowing the message exchange mechanism enough time to spread this information to other input ports. RRGS can be installed at high speed and easily.

우선, 일반적인 파이프 라인형 스케줄러의 아키텍처에 대해서 설명한다. 도 3은 입력 버퍼 스위치 아키텍처를 예시하는 모식도이다. 스위치 아키텍처에 관해서, 스케줄링은, 순수한 논블록킹 N×N 크로스바 스위치에 적용된다고 가정한다. 또, 가상 출력 큐(V0Q)를 사용하여 HOL 블로킹 문제에 대처한다고 가정한다.First, the architecture of a general pipeline scheduler will be described. 3 is a schematic diagram illustrating an input buffer switch architecture. Regarding the switch architecture, it is assumed that scheduling is applied to pure nonblocking N × N crossbar switches. It is also assumed that the virtual output queue V0Q is used to cope with the HOL blocking problem.

더욱이, 고정 사이즈 패킷 및 일정하게 링크 속도를 가정한다. 시간은 슬롯화된다. 하나의 슬롯은, 출력 링크에 의한 1패킷의 송신에 걸리는 시간으로서 정의된다. 출력포트 경합이 존재하지 않는 경우, 논블로킹 크로스바는, 타임 슬롯당 N패킷까지를 교환할 수 있다. 스케줄러의 기본적인 일은, 슬롯마다, 공백이 없는 N2개의 V0Q 큐 중 어느 하나가 출력포트에 액세스할 수 있는지를 판단하는 것이다. 효율을 위해, 스케줄러는 l타임 슬롯 내에서 백 로그가 있는 큐 사이의 모든 경합을 해결해야만 한다.Moreover, assume a fixed size packet and a constant link speed. Time is slotted. One slot is defined as the time taken to transmit one packet by the output link. If no output port contention exists, the nonblocking crossbar can exchange up to N packets per time slot. The basic task of the scheduler is to determine, for each slot, which of the N 2 V0Q queues with no spaces can access the output port. For efficiency, the scheduler must resolve all contentions between queues with backlogs within l time slots.

라인 속도가 증대하면, 스케줄링 알고리듬이 대용량 스위치에도 스케일러블한 것이 중요해진다. 따라서, 분산 아키텍처가 유력하다고 생각된다. 분산 아키텍처에서는, 고속 스위치에서 패킷 스케줄링에 요구되는 빡빡한 처리시간이 완화되기때문이다. 예를 들면, 10G bit/s의 라인 속도인 l6×l6포트 스위치에서, 스케줄링 결정은, 각 패킷 송신 시에 행해야만 하며, 424비트의 ATM 셀에 대해 42ns이다. 시퀀셜 스케줄러를 사용할 경우, 각 결정은, 16×16 스위치에서는 0.16ns 미만으로 행해져야만 한다. N2개의 결정을 해야 하기 때문이다. 광 코어를 사용하는 경우, 광 코어의 모든 교환 대역 폭 요구조건을 그대로 하고, 전자 하드웨어를 포트마다 분산하는 것에는 의미가 있다. 더욱이, 분산 스케줄러는, 당연히, 임의의 라인수에 맞추어 스케일된다. 도 4에 그러한 스케줄러를 예시한다.As line speeds increase, it is important that the scheduling algorithm is scalable to large switches. Therefore, distributed architecture is considered to be powerful. In a distributed architecture, the tight processing time required for packet scheduling in high-speed switches is mitigated. For example, in a l6 x l6 port switch that is a line rate of 10 Gbit / s, the scheduling decision must be made at each packet transmission and is 42 ns for a 424 bit ATM cell. When using the sequential scheduler, each decision must be made less than 0.16 ns on a 16x16 switch. This is because N 2 decisions must be made. In the case of using an optical core, it is meaningful to disperse the electronic hardware from port to port while maintaining all the switching bandwidth requirements of the optical core. Moreover, the distributed scheduler is naturally scaled to any number of lines. 4 illustrates such a scheduler.

도 4에서, 각 크로스바 입력포트는, 입력포트 스케줄러 모듈(SM: Scheduler Module)을 갖는다. 각 SM은, 개별 ID인 SM-ID를 갖는다. 라인수와의 스케일러빌리티를 유지하기 위해서, SM은 이웃하는 1개의 SM하고만 통신하는 것이 허락된다. 이로써, SM 하드웨어 블록은 임의의 N×N 크로스바 패브릭으로 사용가능한 것이 보증된다. SM 통신 체인이 도 4에 도시되어 있다. 이것은, 타임 슬롯, 슬롯 소유권 및 출력포트 예약과 같은 스케줄링 정보를 통신하기 위해 사용된다. 크로스바 모듈과 SM 사이의 유일한 상호작용은, 글로벌 클록을 통한 것이다. 이것은, 모든 SM에, 어느 슬롯이 현재의 시스템 타임 슬롯(CTS: Current system Time Slot)인 것인지 하는 것과, CTS에서 교환되는 입출력포트 쌍에 관한 현재의 결정 테이블(도시하지 않는다)을 알린다. 이것은, 스케줄러에 의해 기록되고, 크로스바 패브릭에 의해 판독되는 글로벌 메모리에 의해 실현하는 것이 가능하다.In FIG. 4, each crossbar input port has an input port scheduler module (SM). Each SM has an SM-ID which is an individual ID. In order to maintain scalability with the number of lines, the SM is only allowed to communicate with one neighboring SM. This ensures that the SM hardware block can be used with any N × N crossbar fabric. The SM communication chain is shown in FIG. This is used to communicate scheduling information such as time slots, slot ownership and output port reservations. The only interaction between the crossbar module and the SM is through the global clock. This informs all SMs which slot is the current system time slot (CTS) and the current decision table (not shown) regarding the input / output port pairs exchanged in the CTS. This can be realized by a global memory recorded by the scheduler and read by the crossbar fabric.

타임 슬롯마다, 각 SM은, 액세스 요구처의 출력포트에 관해 완전한 선택의자유가 있다고 가정된다. 같은 선택을 하는 SM끼리는 「컬리전」(충돌)을 초래하며, 이것은, 주어진 슬롯에 대한 글로벌 스케줄링 패턴을 결정하기 전에 해결할 필요가 있다. SM이, 다른 모든 요구에 관한 현재의 정보를 갖게 될 경우, 통신 체인은, 스케줄링 결정의 속도보다도 N배 빠른 속도로 동작해야만 한다. 즉, SM은, 하나의 스케줄링 결정을 하기 전에, N개의 메시지를 수신할 수 있어야만 한다.For each time slot, each SM is assumed to have full freedom of choice with respect to the output port of the access request destination. SMs making the same choices cause "collisions" (collisions), which need to be resolved before determining the global scheduling pattern for a given slot. If the SM will have current information about all other requests, the communication chain must operate at a rate that is N times faster than the rate of the scheduling decision. That is, the SM must be able to receive N messages before making one scheduling decision.

SM 하드웨어의 속도를 라인 속도와 함께 스케일러블하게 보존하기 위해서, N 룩 어헤드(선독) 스케줄링 방식을 사용하는 것이 가능하다. 즉, 각 SM은, 현재 슬롯의 적어도 N슬롯처의 타임 슬롯에 관해 스케줄링 결정을 하게 된다. 이 기능에 의해, SM은 스케줄링 결정을 하기 전에, 같은 타임 슬롯에 대해 이루어져 있는 다른 스케줄링 결정에 관해 알고 있는 것이 보증된다. 더욱이, 이 기능은, 통신 체인을 입력 라인 속도의 N배로 고속화할 필요가 없다. 시간축은, 슬롯 프레임에 재분할된다. 각 슬롯 프레임은, 단지 N개의 연속하는 슬롯열이다. 이렇게 해서, 시간은, 프레임열이라 간주할 수 있다.In order to preserve the speed of the SM hardware along with the line speed, it is possible to use the N look ahead scheduling scheme. That is, each SM makes a scheduling decision regarding at least N slots in the current slot. This function ensures that the SM knows about other scheduling decisions made for the same time slot before making scheduling decisions. Moreover, this function does not need to speed up the communication chain to N times the input line speed. The time axis is subdivided into slot frames. Each slot frame is just N consecutive slot sequences. In this way, time can be regarded as a frame sequence.

경합하는 SM 사이의 컬리전을 해결하는 기준을 설정하기 위해서,우선 매트릭스를 사용한다. N×N 우선 매트릭스는, 장래의 주어진 타임 슬롯을 SM이 순회하는 순서를 정의하는 매트릭스이다. 매트릭스행은 현재의 프레임(현재의 시스템 슬롯을 포함하는 프레임) 내의 슬롯을 인덱스 첨부하고, 매트릭스열은 다음에 방문하는 프레임 내의 슬롯을 인덱스 첨부하고 있다. 매트릭스의 요소는, 어떤 SM이, 열 인덱스에 의해 도시되는 다음 프레임 내의 슬롯을 「방문해야(visit)」하는지를 지정한다.To set criteria to resolve collisions between competing SMs, first use a matrix . The N × N priority matrix is a matrix that defines the order in which the SM traverses a given time slot in the future. The matrix row indexes the slots in the current frame (the frame including the current system slot), and the matrix column indexes the slots in the next visited frame. The elements of the matrix specify which SMs should "visit" the slots in the next frame shown by the column index.

도 5는 4×4 우선 매트릭스를 도시하는 도면이고, 도 6은 도 5에 도시한 매트릭스에 대한 파이프 라인화된 타임 슬롯 순회 순서를 예시하고 있다. 파이프 라인화된 결정 프로세스는 우선 매트릭스의 사용에 이미 포함되어 있음에 주의해야 한다. 예를 들면, 시스템의 현재 타임 슬롯이 현 프레임의 제2 슬롯일 때, SM#1이 다음 프레임의 제4 슬롯에 관한 스케줄링 결정을 하고 있는 사이에, SM#3은 다음 프레임의 제2 슬롯에 관한 스케줄링 결정을 하고 있다.FIG. 5 is a diagram illustrating a 4 × 4 priority matrix, and FIG. 6 illustrates the pipelined time slot traversal order for the matrix shown in FIG. 5. Note that the pipelined decision process is first included in the use of the matrix. For example, when the current time slot of the system is the second slot of the current frame, while SM # 1 is making scheduling decisions regarding the fourth slot of the next frame, SM # 3 is assigned to the second slot of the next frame. I'm making a scheduling decision.

N×N 우선 매트릭스는 통신 체인 메시지 교환과 같은 방향으로 SM열을 회전시킴으로서 생성된다. 이로써, 모든 SM이 이미 스케줄링된 포트에 관한 정보를 적당한 시기에 얻는 것이 보장된다. 어떤 SM이 이전의 「방문자(visitor)」(즉, 1타임 슬롯 앞의 SM)에 의해 이미 선택된 출력포트를 고르는 것을 피한다면 컬리전을 완전히 회피할 수 있다.The N × N priority matrix is created by rotating the SM string in the same direction as the communication chain message exchange. This ensures that all SMs get information about the ports that have already been scheduled in a timely manner. Collision can be completely avoided if an SM avoids choosing an output port that has already been selected by a previous "visitor" (that is, an SM before a time slot).

그렇지만, SM이 아직 선정되지 않은 출력포트를 선택하도록 제한되면, V0Q 서비스 레이트는 예측이 곤란해진다. 더욱이, 중대한 공평성의 문제가 생긴다. 예를 들면, 도 5의 매트릭스에서, 현 프레임의 다음 프레임의 4슬롯에 대해서, 각각 4개의 순회순서, 즉, (1, 2, 3, 4), (2, 3, 4, l), (3, 4, l, 2) 및 (4, 1, 2, 3)을 생각할 수 있다. 여기서, SM#1과 SM#2는 주어진 출력포트의 큐에 콘스턴트에 백 로그가 있고, 다른 SM이 대응하는 큐는 공백으로 한다. 이 경우, SM#1은, 매트릭스에 의해 정의되는 순회 순서에서 SM#2 이전에 프레임의 4슬롯 중 3슬롯을 방문하기 때문에, 4슬롯 중 3슬롯은 SM#1에 의해 취해지게 된다. 이것은, 실제로, RRGS에서 일어나는 것이다(본 출원인에 의한 일본국 특허 출원평 ll-l72584호를 참조). 더욱이 많은 순서를 포함하기 때문에, 우선 매트릭스의 사이즈를 N보다 크게한 경우, 사용되는 통신 체인은, 정합적인 스케줄링 결정을 하는 데에 필요한 스케줄링 정보의 적시 송신을 이미 보증하지 못하게 되는 것을 보는 것은 용이하다.However, if the SM is limited to select an output port that has not yet been selected, the V0Q service rate becomes difficult to predict. Moreover, there arises a problem of significant equity. For example, in the matrix of FIG. 5, for the four slots of the next frame of the current frame, each of four traversal sequences, namely (1, 2, 3, 4), (2, 3, 4, 1), ( 3, 4, 1, 2) and (4, 1, 2, 3) can be considered. Here, SM # 1 and SM # 2 have a backlog at the constant in the queue of the given output port, and the queue corresponding to the other SM is left blank. In this case, since SM # 1 visits three of the four slots of the frame before SM # 2 in the traversal order defined by the matrix, three of the four slots are taken by SM # 1. This actually happens in RRGS (see Japanese Patent Application No. ll-l72584 by the applicant). Furthermore, since it involves many orders, it is easy to see that, first, when the size of the matrix is greater than N, the communication chain used does not already guarantee timely transmission of the scheduling information necessary to make consistent scheduling decisions. .

이처럼, 상기의 RRGS 스케줄러는 고속으로 설치가 용이하지만, 예측가능하고 또한 조정가능한 서비스 레이트를 실현하지 못한다. 또, 상술한 바와 같이 VOQ의 몇가지가 다른 VOQ의 상태에 의해 스케줄링이 방해된다는 공평성의 문제도 있다.As such, the RRGS scheduler is easy to install at high speed, but does not realize predictable and adjustable service rates. As described above, there is also a problem of fairness in that scheduling of some VOQs is interrupted by different VOQ states.

본 발명의 목적은, VOQ 큐가 스케줄링를 행할 시의 완전한 선택의 자유를 가능하게 하는 대용량 스위치를 위한 스케줄러를 제공함에 있다.It is an object of the present invention to provide a scheduler for a large capacity switch that allows full freedom of choice when the VOQ queue performs scheduling.

본 발명의 다른 목적은, VOQ 서비스 레이트를 예측가능하고 또한 조정가능하게 하는 스케줄러를 제공함에 있다.Another object of the present invention is to provide a scheduler that makes the VOQ service rate predictable and adjustable.

본 발명의 또 다른 목적은, 여느 VOQ도 다른 VOQ 상태에 상관없이 같은 확률로 스케줄링된다는 의미에서 공평한 스케줄러를 제공함에 있다.It is another object of the present invention to provide a fair scheduler in the sense that any VOQ is scheduled with the same probability regardless of other VOQ states.

스케줄러 설계에 있어서의 또 하나의 제약은, 다음에 스케줄링되는 주어진 입선에 속하는 N개의 VOQ 중 어느 VOQ를, 스케줄러의 제어에서 뺄지의 결정이다. 바꾸어 말하면, 입력포트마다, 어느 출력포트가 다음에 스케줄링되는지를, 어느 외부 엔티티가 완전히 자유롭게 결정하는 것이다. 이 요청은 장래의 서비스품질 (QoS)의 서포트에 있어서 중요하다. 이로써 V0Q의 예측가능한 서비스 레이트를 보다 예측가능하게 하는 최대 스루풋을 저하시킬 가능성이 있는 것은 분명하다. 그렇지만, 이것은 중요한 점이다. 스위치 전체의 스루풋의 최대화는, 일부 큐의 고갈, 나아가서는, 그들 큐에 관련되는 흐름도 방해될 가능성이 있기때문이다.Another constraint in the scheduler design is the determination of which VOQ from the N VOQs belonging to a given incoming line to be scheduled next, from the scheduler's control. In other words, for each input port, which external entity is completely free to determine which output port is scheduled next. This request is important for future quality of service (QoS) support. It is clear that this has the potential to reduce the maximum throughput that makes the predictable service rate of V0Q more predictable. However, this is important. Maximizing throughput throughout the switch is likely to deplete some queues and, moreover, hinder the flow associated with those queues.

도 1은, 집중 VOQ 스케줄러를 도시하는 개략적 블록도.1 is a schematic block diagram illustrating a centralized VOQ scheduler.

도 2a는 병렬 방식의, b는 라운드 로빈 방식의 아키텍처를 각각 도시하는 분산 스케줄러 아키텍처의 모식도.FIG. 2A is a schematic diagram of a distributed scheduler architecture each illustrating a parallel approach and b a round robin architecture. FIG.

도 3은, 입력 버퍼형 스위치 아키텍처의 설명도.3 is an explanatory diagram of an input buffered switch architecture.

도 4는, 입력포트 분산 스케줄러의 구성을 도시하는 개략적 블록도.4 is a schematic block diagram showing a configuration of an input port distribution scheduler.

도 5는, 컬리전을 해결하는 데 사용되는 우선 매트릭스의 일례를 도시하는 모식도.FIG. 5 is a schematic diagram showing an example of a preferred matrix used to solve a collision. FIG.

도 6은, 파이프 라인 스케줄링 결정의 일례를 도시하는 모식도.6 is a schematic diagram illustrating an example of a pipeline scheduling decision.

도 7은, 본 발명에 의한 스케줄러의 한 실시형태에서의 SM 사이의 이월 동작을 도시하는 설명도.Fig. 7 is an explanatory diagram showing the carryover operation between SMs in one embodiment of the scheduler according to the present invention.

도 8은, 본 실시형태에서의 S메시지의 포맷도.8 is a format diagram of an S message in the present embodiment.

도 9는, 본 실시형태에서의 스케줄러 모듈인 데이터 구조체의 포맷도.Fig. 9 is a format diagram of a data structure which is a scheduler module in this embodiment.

도 10은, 본 실시형태에서의 CORPS 스케줄링 알고리듬을 도시하는 플로 챠트.Fig. 10 is a flowchart showing a CORPS scheduling algorithm in the present embodiment.

도 11은, C0RPS VOQ 큐잉 모델을 도시하는 모식도.11 is a schematic diagram illustrating a C0RPS VOQ queuing model.

도 12는, 시스템 부하의 함수로서 패킷 지연을 도시하는 그래프.12 is a graph showing packet delay as a function of system load.

도 13은, C0RPS 스케줄러를 구비한 l6×16 스위치의 상보적 지연 분산을 도시하는 그래프.Fig. 13 is a graph showing the complementary delay variance of an l6x16 switch with a C0RPS scheduler.

도 14는, C0RPS 컨트롤러의 일례를 도시하는 블록도.14 is a block diagram illustrating an example of a C0RPS controller.

도 15는, 여러가지 경합 스케줄러의 시스템 부하에 대한 기대 지연을 도시하는 그래프.15 is a graph illustrating expected delays for system load of various contention schedulers.

※도면의 주요 부분에 대한 부호의 설명※※ Explanation of code for main part of drawing ※

101 : 태스크 박스 105 : 태스크101: task box 105: task

(과제를 해결하기 위한 수단)(Means to solve the task)

본 발명의 제1 관점에 의하면, 네트워크에서의 데이터의 흐름을 제어하는 스위치는, 다수의 입력포트와, 다수의 출력포트와, 다수의 입력포트 스케줄 모듈을 갖는 스케줄러를 갖는다. 각 스케줄 모듈은, 상기 다수의 출력포트 중 지정된 출력포트 데이터를 보내도록, 상기 다수의 입력포트 중 특정 입력포트을 스케줄링한다. 스케줄 모듈은, 모듈 사이에서 스케줄링 메시지를 교환하고, 각 스케줄 모듈은, 해당 스케줄 모듈이 지정 출력포트에 액세스하고자 하는 장래의 타임 슬롯을 계산한다. 스케줄 모듈은, 더욱, 상기 장래의 타임 슬롯이 해당 스케줄 모듈에 의해 현재 예약되어 있는지의 여부, 상기 장래의 타임 슬롯이 저지되어 있는지의 여부 및 상기 장래의 타임 슬롯이 다른 스케줄 모듈에 의해 취해져 있는지의 여부에 근거하여, 상기 장래의 타임 슬롯이 유효할지의 여부를 판단한다. 유효할 경우, 스케줄 모듈은 상기 장래의 타임 슬롯을 취해, 스케줄링 메시지에 상기 장래의 타임 슬롯이 취해진 것을 나타내는 정보를 입력한다.According to a first aspect of the invention, a switch for controlling the flow of data in a network has a scheduler having a plurality of input ports, a plurality of output ports, and a plurality of input port scheduling modules. Each schedule module schedules a specific input port of the plurality of input ports to send the designated output port data of the plurality of output ports. The schedule module exchanges scheduling messages between the modules, and each schedule module calculates a future time slot for which the schedule module wants to access a designated output port. The schedule module further includes whether the future time slot is currently reserved by the corresponding schedule module, whether the future time slot is blocked, and whether the future time slot is taken by another schedule module. Based on whether or not the future time slot is valid, it is determined. If valid, the schedule module takes the future time slot and inputs information indicating that the future time slot was taken in a scheduling message.

스위치의 스케줄러는, 상기 장래의 타임 슬롯이 예약되어 있을 때 또는 취해져 있을 때에, 상기 장래의 타임 슬롯을 소정수의 타임 슬롯만큼 전진시킨다.The scheduler of the switch advances the future time slot by a predetermined number of time slots when the future time slot is reserved or taken.

스위치는, 상기 출력포트 각각에 대해 별도의 큐를 유지하는 가상 출력 큐잉을 사용하여, 상기 입력포트을 통해 데이터 입력을 큐잉한다. 혹은, 개개의 포트에 대한 가상 출력 큐잉은, 다른 포트에 대한 가상 출력 큐잉과는 독립인 것도 가능하다. 더욱이, 스위치는 예측가능하고 또한 조정가능한 가상 출력 큐잉의 서비스 레이트를 갖는다. 또, 스위치 스케줄러는 가중 라운드 로빈에 근거하여 지정 출력포트를 선택한다.The switch queues data input through the input port using virtual output queuing, which maintains a separate queue for each of the output ports. Alternatively, virtual output queuing for individual ports may be independent of virtual output queuing for other ports. Moreover, the switch has a service rate of predictable and adjustable virtual output queuing. The switch scheduler also selects a designated output port based on weighted round robin.

본 발명의 제2 관점에 의하면, 스위치의 여러 입력포트에 도착하는 입력 패킷을 스위치의 여러 출력포트에 보내도록 스케줄링하는 방법이 제공된다. 여기서, 스케줄러는, 다수의 입력포트 스케줄 모듈을 갖는다. 이 방법은,According to a second aspect of the present invention, a method is provided for scheduling input packets arriving at various input ports of a switch to be sent to various output ports of the switch. Here, the scheduler has a plurality of input port schedule modules. This way,

a) 현 스케줄 모듈이, 이전 스케줄 모듈에서 스케줄링 메세지를 수신하는 스텝과,a) the current schedule module receiving the scheduling message from the previous schedule module,

b) 상기 현 스케줄 모듈이, 상기 다수의 출력 포트 중 하나에 액세스하고자 하는 장래의 타임 슬롯을 설계하는 스텝과,b) the current schedule module designing future time slots to access one of the plurality of output ports;

c) 상기 장래의 타임 슬롯에 있어서의 송신용으로 스케줄링하도록 상기 다수의 출력포트 중 하나를 선택하는 스텝과,c) selecting one of said plurality of output ports to schedule for transmission in said future time slot;

d) 상기 장래의 타임 슬롯이 상기 현 스케줄 모듈에 의해 이미 예약되어 있는지의 여부를 판단하는 스텝과,d) determining whether the future time slot is already reserved by the current schedule module;

e) 상기 장래의 타임 슬롯이 상기 현 스케줄 모듈에 의해 예약되어 있지 않은 경우, 상기 장래의 타임 슬롯이 저지되어 있는지의 여부를 판단하는 스텝과,e) determining whether or not the future time slot is blocked if the future time slot is not reserved by the current schedule module;

f) 상기 장래의 타임 슬롯이 저지되어 있지 않은 경우, 상기 장래의 타임 슬롯이 다른 스케줄 모듈에 의해 이미 취해져 있는지의 여부를 판단하는 스텝과,f) if the future time slot is not blocked, determining whether the future time slot has already been taken by another scheduling module;

g) 상기 장래의 타임 슬롯이, 다른 스케줄 모듈에 의해 이미 취해져 있는지 또는 상기 현 스케줄 모듈에 의해 이미 예약되어 있는 경우, 상기 스케줄링 메시지로부터, 이월 동작이 이미 개시되어 있는지의 여부를 판단하는 스텝과,g) if the future time slot has already been taken by another schedule module or already reserved by the current schedule module, determining from the scheduling message whether a carryover operation has already been initiated,

h) 상기 이월 동작이 이미 개시되어 있는 경우, 상기 장래의 타임 슬롯을 저지 상태로 설정해 스텝(d)로 돌아가는 스텝과,h) if the carryover operation has already begun, setting the future time slot to a blocked state and returning to step d;

i) 상기 이월 동작이 개시되어 있지 않은 경우, 상기 장래의 타임 슬롯을 소정수의 타임 슬롯만큼 전진시켜, 이월 플래그를 세트하여, 스텝(d)로 돌아가는 스텝과,i) if the carryover operation is not started, advancing the future time slot by a predetermined number of time slots, setting a carry forward flag, and returning to step d;

j) 상기 장래의 타임 슬롯이 다른 스케줄 모듈에 의해 취해져 있지 않은 겨우에는 상기 장래의 타임 슬롯을 취해, 상기 장래의 타임 슬롯이 취해진 것을 나타내는 정보를 상기 스케줄링 메시지에 입력하는 스텝과,j) if the future time slot is not taken by another scheduling module, taking the future time slot and inputting information into the scheduling message indicating that the future time slot has been taken;

k) 상기 스케줄링 메시지를 다음 스케줄 모듈로 건네는 스텝으로 이루어진다.k) passing the scheduling message to the next schedule module.

다수의 입력 포트을 통해 입력하는 데이터는, 각 출력포트에 대해 별도의 큐를 유지하는 가상 출력 큐잉을 사용하여 큐잉된다. 개개의 포트에 대한 가상 출력 큐잉은 다른 포트에 대한 상기 가상 출력 큐잉과는 독립이다. 또, 상기 가상 출력 큐잉의 서비스 레이트는 예측가능하고 또한 조정가능하다. 스케줄러는, 가중 라운드 로빈에 근거하여, 상기 지정 출력포트를 선택한다.Data entering through multiple input ports is queued using virtual output queuing, which maintains a separate queue for each output port. Virtual output queuing for individual ports is independent of the virtual output queuing for other ports. In addition, the service rate of the virtual output queuing is predictable and adjustable. The scheduler selects the designated output port based on weighted round robin.

(발명의 실시형태)Embodiment of the Invention

본 발명에 의한 캐리 오버(이월) 라운드 로빈·파이프 라인 스케줄러(Carry 0ver Round­robin Pipelined Scheduler, 이하 CORPS라 한다)는, 고속 크로스바 패브릭에 대한 공평한 스케줄러이고, 종래 기술의 스케줄러의 문제점을 해결하는 것이다. CORPS는, 고속 스위치 패브릭의 라인 속도 및 라인수의 쌍방에 관한 스케일러빌리티성을 갖는다. 라인수에 관한 스케일러빌리티 때문에, 메시지 교환을 갖는 분산 아키텍처가 선택된다. 더욱이, RRGS와 마찬가지로, 메시지 처리 요구조건을 라인 속도와 함께 스케일러블하게 유지하기 위해서, 파이프라인 아키텍처가 사용된다.The carry over round robin pipeline scheduler (hereinafter referred to as CORPS) according to the present invention is a fair scheduler for a high speed crossbar fabric and solves the problem of the scheduler of the prior art. CORPS has scalability with respect to both the line speed and the number of lines in a high speed switch fabric. Because of the scalability with respect to the number of lines, a distributed architecture with message exchange is chosen. Moreover, like RRGS, pipeline architectures are used to keep message processing requirements scalable with line speed.

더욱이, 본 발명에서는, 분산 아키텍처 및 메시지 교환 방식을 유지하면서 공평성을 제공하기 위해서, 이월(캐리 오버) 동작을 도입한다. 이 사고방식은, 어느 스케줄러 모듈(SMa)이, 그에 선행하는 스케줄러 모듈(SM)에 의해 원하는 출력포트가 이미 예약되어 있는 슬롯을 방문할 때에, 처리하려고 한 슬롯으로부터 장래에 N슬롯분 만큼 그 포트의 스케줄링 시행을 이월한다는 것이다. 혹시 해당 슬롯이 같은 출력포트에 취해져 있다는 것을 안다면, SM은 원하는 출력포트가 아직 취해져 있지 않은 슬롯을 찾아 낼 때까지 더욱 N슬롯처로 진행한다.Moreover, the present invention introduces a carry over operation to provide fairness while maintaining a distributed architecture and message exchange scheme. In this way of thinking, when a scheduler module SMa visits a slot in which a desired output port is already reserved by the scheduler module SM preceding it, the port is N slots in the future from the slot to be processed. Is to carry over scheduling enforcement. If you know that the slot is on the same output port, the SM will proceed to N slots until it finds a slot for which the desired output port is not yet taken.

도 7은, 다수의 스케줄러 모듈(SM) 사이에서의 이월 동작을 예시하는 설명도이다. 이월 동작은, 주어진 타임 슬롯에서 「충돌하고 있는」 SM의 개수에 의존하여 N프레임까지 확대할 수 있다. 이월 동작에 의해 영향받는 슬롯은, 컬리전(충돌)을 해결하기 위해 취해지는 슬롯의 집합(이하, 컬리전 해결 세트라 한다)이라 간주할 수 있다. 또한, 이월 동작을 받은 슬롯은, 후속하는 프레임에서 모든 SM에의해 다시 방문될 것이다. 따라서, 이월 동작에 의해 취해지는 슬롯은, 잠재적으로 새로운 컬리전을 받아, 컬리전 해결 세트의 중첩을 야기할 가능성이 있다. 이는, 다수의 컬리전을 해결하기 위해서 N2개의 프레임, 즉 전부 N3개의 슬롯을 필요로 할 가능성이 있다.FIG. 7 is an explanatory diagram illustrating a carryover operation among a plurality of scheduler modules SM. The carryover operation can be extended to N frames depending on the number of " conflicting " SMs in a given time slot. The slots affected by the carry over operation can be regarded as a set of slots (hereinafter referred to as a collision solving set) taken to solve the collision (collision). In addition, slots that have been carried forward will be re-visited by all SMs in subsequent frames. Thus, a slot taken by a carryover operation potentially receives new collisions, possibly causing overlap of collision resolution sets. This is likely to require N 2 frames, that is, N 3 slots in total, in order to solve a large number of collisions.

시스템의 메모리 요구조건을 완화함과 동시에 스케줄링 지연을 단축하기 위해서, 이월 동작에 의해 영향받는 프레임의 개수는, 이월 동작을 실행한 SM이, 해당 컬리전를 해결하기 위해 취해진 다수의 슬롯에 걸쳐같은 출력포트에 대해다른 스케줄링을 하지 않도록 제한된다. 바꾸어 말하면, 하나의 슬롯이, 동시에 다수의 컬리전를 해결하도록은 사용되지 않는다. Output of over one to shorten the scheduling delay and at the same time mitigate the memory requirements of the system, the running count is, February operation of the affected frame by February operation SM, a plurality of slots taken to address the Curley jeonreul Limited to no other scheduling for the port . In other words, one slot is not used to solve multiple collisions at the same time.

예를 들면, SMa가, 주어진 포트(p)에 의해 취해진 슬롯(m)을 찾아내어, 이로써 이월 동작이 트리거된다고 가정한다. 이 이월 동작의 결과로서 SMa에 의해 예약된 슬롯을 mx라 한다. 슬롯 mn(1≤n<x) 중 어느 것도, 같은 포트(p)에 대해서는 SMa에 있어서 이용불가(저지, 블로킹)가 된다. 따라서, 이 저지기능은, 주어진 슬롯에 관한 다수의 컬리전이 금지되는 것을 보증한다.For example, suppose SMa finds a slot m taken by a given port p, thereby triggering a carryover operation. The slot reserved by SMa as a result of this carryover operation is called mx. None of the slots mn (1 ≦ n <x) becomes available (stopping, blocking) in SMa for the same port p. Thus, this blocking function ensures that multiple collisions for a given slot are prohibited.

C0RPS 스케줄링 알고리듬에 대해 이하에 설명한다. 우선, 통신 체인에서 건네지는 메시지와, 스케줄링 결정이 기록되는 SM 데이터 베이스에 대해서 설명하고, 그 후, 알고리듬의 흐름에 대해서 설명한다.The C0RPS scheduling algorithm is described below. First, the message passed in the communication chain and the SM database in which the scheduling decision is recorded will be described, and then the flow of the algorithm will be described.

각 셀 슬롯에서, 체인 내에 있는 SM에서 다음 SM으로 건네지는 스케줄링 결정 요소의 백터를 정의한다. S메시지는, 기껏하여 마지막 N개의 셀 슬롯으로 이루어진 스케줄링 결정의 스케줄링 요소(scheduling element, 이하 SE라 기록한다)를포함한다. 즉, S메시지는, 기껏해야 N개의 SE를 갖는다. S메시지는 이하의 포멧을 갖는다.In each cell slot, it defines a vector of scheduling decision elements that are passed from the SM in the chain to the next SM. The S message contains a scheduling element (hereinafter referred to as SE) of a scheduling decision consisting of at most the last N cell slots. That is, the S message has at most N SE. The S message has the following format.

도 8은, S메시지의 포멧을 도시하는 도면이다. 같은 도면에 있어서, S메시지의 각 스케줄링 요소(SE)는, 존속시간(TTL: Time To Live), 타임 슬롯 ID(TSI: Time Slot ID), SM-ID 및 출력포트 ID(0PI: 0utput Port ID)로 이루어진다.8 shows the format of an S message. In the same figure, each scheduling element SE of the S message includes a time to live (TTL), a time slot ID (TSI), an SM-ID, and an output port ID (0PI: 0utput Port ID). )

·존속시간(TTL)은, 해당 SE를 생성한 SM에 의해 처음에 N에 세트된다.The duration time TTL is initially set to N by the SM that generated the SE.

·타임 슬롯 ID(TSI)는, 현재의 TS(타임 슬롯)에서 슬롯이 스케줄링되기까지의 슬롯수로서 정의되고, 스케줄링되는 슬롯의 ID이다.The time slot ID (TSI) is defined as the number of slots until a slot is scheduled in the current TS (time slot) and is an ID of a slot to be scheduled.

·SM-ID는, 스케줄링 예약을 한 입력포트 스케줄링 모듈 ID이다.SM-ID is an input port scheduling module ID for scheduling reservation.

·출력포트 ID(0PI)는, 스케줄링되는 출력포트의 ID이다.The output port ID (0PI) is the ID of the output port to be scheduled.

슬롯의 처음에, 각 SM은 선행하는 SM에서 S메시지를 수신한다. 이것은, 마지막 N개의 슬롯에 붙여진 SE를 포함한다. 모든 SM은, 타임 슬롯당 기껏해야 1회의 스케줄링 결정을 한다. SMp가 스케줄링 결정을 행할 경우, SMp는 이하의 내용을 갖는 새로운 SE를 작성한다.At the beginning of the slot, each SM receives an S message from the preceding SM. This includes the SE attached to the last N slots. Every SM makes at most one scheduling decision per time slot. When the SMp makes a scheduling decision, the SMp creates a new SE having the following contents.

·TTL=NTTL = N

·TSI=현재의 슬롯에서 선택된 타임 슬롯까지의(그것을 포함하는) 슬롯의 개수(m)TSI = number of slots (including it) from the current slot to the selected time slot (m)

·SM-ID=pSM-ID = p

·OPT=타임 슬롯(CTS+m)에 있어서의, 패킷이 입력포트(p)에서 출력포트(q)로 교환되는 원하는 출력포트(q).OPT = desired output port q in the time slot (CTS + m) in which packets are exchanged from input port p to output port q.

스케줄링 결정에 상관없이, 각 SM은, 다음 SM에 메시지를 건네기 전에, S메시지 내의 다른 모든 SE의 TTL을 디크리먼트하여, TTL=0의 SE를 폐기한다.Regardless of the scheduling decision, each SM decrements the TTL of all other SEs in the S message before discarding the message to the next SM and discards the SE of TTL = 0.

각 SM은, (N+1) N개의 위치를 포함하는 메모리 어레이(SC)를 갖는다. 처음의 N개의 위치는, 크로스바 스위치 모듈에 의해 판독되는 현 프레임의 스케줄링 결정을 기록한다. 이들 위치는, 모든 SM 사이에서, 현 프레임에 관한 동일 정보를 가지며, 몇가지 방법으로 크로스바 컨트롤러에 의해 액세스될 수 있다. 엄밀히 말하면, SM은 이 정보를 보존할 필요는 없다. 나머지 N2개의 위치는, 장래의 스케줄링 결정을 기록하기 위해서 사용된다. 메모리 어레이는 이하의 포멧를 갖는다.Each SM has a memory array SC including (N + 1) N positions. The first N positions record the scheduling decision of the current frame which is read by the crossbar switch module. These positions, among all SMs, have the same information about the current frame and can be accessed by the crossbar controller in several ways. Strictly speaking, the SM does not need to preserve this information. The remaining N 2 positions are used to record future scheduling decisions. The memory array has the following format.

도 9에 도시하는 바와 같이, 이하의 필드가 정의된다.As shown in Fig. 9, the following fields are defined.

·타임 슬롯 ID: SC 어레이에의 인덱스이다. 이것은, SC 위치가 스케줄링 정보를 보존하는 타임 슬롯 ID를 준다. 이것은, 크로스바 모듈에 의해 제공되는 글로벌 클록과 동기한다. 이 필드는, 글로벌 클록이 진행함과 동시에 래퍼 라운드한다.Time slot ID: Index to the SC array. This gives the time slot ID where the SC location holds the scheduling information. This is synchronized with the global clock provided by the crossbar module. This field wraps round as the global clock advances.

·저지(Blockage): 이것은 SM이 스케줄링 예약을 하는 것을 저지받고 있는 출력포트의 집합을 정의한다. 이 필드에는 N개까지의 엔트리가 존재할 수 있다. 또한, 처음엔 공백이다.Blockage: This defines the set of output ports that the SM is preventing from making scheduling reservations. There may be up to N entries in this field. It is also blank at first.

·예약(Reservations): 이것은 주어진 타임 슬롯에 대한 스케줄링 예약을 기록한다. CORPS는, 현 타임 슬롯(CTS)에 대해 이 필드 내의 모든 엔트리가 모든 SM 에 걸쳐 동일한 것을 보증한다. 따라서, 크로스바 모듈은, 임의의 SM(CTS)에서, 셀의 현재 입출력 스케줄링을 판독할 수 있다. 알고리듬의 일관성 체크는, 크로스바 컨트롤러가 충분한 처리 시간을 갖는 경우에, 모든 SM 사이에서 이 필드를 비교함으로서, 크로스바 모듈에 의해 실행될 수 있다.Reservations: This records scheduling reservations for a given time slot. CORPS ensures that all entries in this field for the current time slot (CTS) are the same across all SMs. Thus, the crossbar module can read the cell's current input / output scheduling in any SM (CTS). The algorithmic consistency check can be performed by the crossbar module by comparing this field between all SMs, if the crossbar controller has sufficient processing time.

CORPS 스케줄링 알고리듬CORPS Scheduling Algorithm

각 SM은, 여기서 설명하는 CORPS 스케줄링 알고리듬에 따른다. C0RPS에는, 주어진 SM이 어떤 출력포트을 스케줄링하려고 하는지에 관한 제약은 없다. 어떤 출력포트를 스케줄링하고자 할지의 선택은, 각 SM에 맡겨져, 그 VOQ에 서비스하는 고유의 폴리시에 따른다.Each SM follows the CORPS scheduling algorithm described herein. In C0RPS, there is no restriction as to which output port a given SM tries to schedule. The choice of which output port you want to schedule depends on the unique policy that is left to each SM and serves that VOQ.

도 10은 CORPS 스케줄링 알고리듬을 도시하는 플로 챠트이다. 이하, 태스크 박스(l0l) 내지 (ll0)에 대해서, 같은 도면의 흐름에 따르면서 설명한다.10 is a flowchart illustrating a CORPS scheduling algorithm. Hereinafter, the task boxes l0l to ll0 will be described with the flow of the same drawing.

우선, 태스크(101)에서, 이전 SM에서 S메시지를 수신하고, 각 SE에 대해 TTL(존속시간)을 디크리먼트한다. 더욱이, 주어진 SE에 대해 TTL>0인 경우에는, TSI(타임 슬롯 ID)를 디크리먼트하여, TSI에서의 메모리 어레이(SC)를 갱신한다. TTL=0인 경우에는, 그 SE를 S메시지에서 제거한다. 또, 캐리(CARRY) 플래그를 CARRY=FALSE에 리세트한다(태스크 109 참조).First, in task 101, an S message is received from a previous SM, and the TTL (duration time) is decremented for each SE. Furthermore, when TTL> 0 for a given SE, the TSI (Time Slot ID) is decremented to update the memory array SC in the TSI. If TTL = 0, the SE is removed from the S message. Also, the CARRY flag is reset to CARRY = FALSE (see task 109).

이어서, 태스크(102)(시행 슬롯의 계산)에 있어서, 적당한 우선 매트릭스를 사용하여, 어떤 장래의 타임 슬롯(FTS: Future Time Slot)을 스케줄링하고자 하는지를 계산한다. 간편함을 위해, 그 매트릭스는, FTS=f(CTS, SM-ID) 형의 함수(f)에 인코드될 수 있다.The task 102 (calculate execution slots) then calculates which future time slots (FTS) are to be scheduled using the appropriate priority matrix. For simplicity, the matrix can be encoded in a function f of the form FTS = f (CTS, SM-ID).

더욱이, SM이 송신용으로 어떤 출력포트(OPIS)를 스케줄링하고자 하는지를 선택한다(태스크(103): 출력포트의 선택). 또한, 출력포트를 선택하는 스트러티지는, 이전 태스크의 결과에 의존할 가능성이 있다. CORPS는 이 스트러티지를 지정하지 않는다(예를 들면, 출력포트의 가중 라운드 로빈 선택이 사용가능하다).Furthermore, select which output port (OPIS) the SM wishes to schedule for transmission (task 103: selection of output port). In addition, the strategy for selecting an output port may depend on the result of the previous task. CORPS does not specify this strategy (for example, weighted round robin selection of output ports is available).

이어서, SC(FTS)의 예약 엔트리 중에서, SM-ID가 이 스케줄링을 실행하는 SM과 같은 것이 있는지의 여부를 단지 체크한다(태스크(l04): 슬롯을 자기 소유하고 있는지의 테스트).Then, it is only checked whether any of the reserved entries of the SC (FTS) is the same as the SM executing this scheduling (task 104): a test of owning a slot).

혹시, SM-ID가 이 스케줄링을 실행하는 SM과 다르다면(태스크(104)의 NO), 더욱이, SC(FTS)의 저지 엔트리 중에서, OPI(출력포트 ID)가, 스케줄링을 시험하고 있는 출력포트(OPIS)와 같은 것이 있는지의 여부를 체크한다(태스크(l05): 자기 저지되어 있는지의 테스트).If the SM-ID is different from the SM that performs this scheduling (NO in task 104), furthermore, in the inhibit entry of SC (FTS), the output port that OPI (output port ID) is testing for scheduling is It is checked whether there is something like (OPIS) (task (l05): a test of self-blocking).

자기 저지되어 있다면(태스크(105)의 YES), S메시지를 다음 SM에 건넨다(태스크(106)).If it is self-blocked (YES in task 105), the S message is passed to the next SM (task 106).

자기 저지되어 있지 않다면(태스크(105)의 NO), SC(FTS)의 예약 엔트리 중에서, OPI(출력포트 ID)가, 스케줄링을 시험하고 있는 출력포트(OPIS)와 같은 것이 있는지의 여부를 체크한다(태스크(107): 그 슬롯은 취해져 있는지의 테스트).If it is not self-blocking (NO in task 105), it is checked whether or not OPI (output port ID) is the same as the output port OPIS that is testing scheduling among the reserved entries of SC (FTS). (Task 107: Test whether the slot is taken).

그 슬롯이 취해져 있지 않은 경우에는(태스크(107)의 NO), SC(FTS)에, 자기 SM-ID를 가지며 0PI가 0PIS와 같은 예약 엔트리를 작성하고, TTL=N, TSI=FTS에서, SM-ID는 자기 ID와 같고, OPI=OPIS인 SE를 작성한다(태스크(108): 슬롯을 취한다). 그 후, 태스크(l06)(S메시지의 교환)로 진행한다.If the slot is not occupied (NO in task 107), a reserved entry in which SCPI has its own SM-ID and 0PI equals 0PIS is created, and TTL = N and TSI = FTS are used. -ID equals its own ID and creates an SE with OPI = OPIS (task 108: takes a slot). Subsequently, the procedure proceeds to task 06 (exchange of S messages).

이 슬롯을 자체 소유하고 있는 경우(태스크(104)의 YES) 혹은 그 슬롯이 이미 취해져 있는 경우(태스크(l07)의 YES)에는, 이월 동작이 이미 개시되어 있는지의 여부를 검사하여, 플래그 CARRY=TRUE/FALSE를 체크한다. CARRY=TRUE인 경우에는, SC(FTS)의 저지 필드에, OPI=OPIS의 엔트리를 작성하고, 그렇지 않은 경우에는 CARRY=TRUE에 세트하며, 더욱이, FTS=FTS+N에 세트한다(태스크(1O9): 이월).If it owns this slot (YES of task 104) or if the slot has already been taken (YES of task l07), it is checked whether the carryover operation has already started, and the flag CARRY = Check TRUE / FALSE. If CARRY = TRUE, an entry of OPI = OPIS is created in the blocking field of SC (FTS), otherwise CARRY = TRUE is set, and FTS = FTS + N is further set (task 1010 ): February).

태스크(109)에 의해 이월 동작이 실행되면, 이어서 건전성 체크가 행해진다(태스크(ll0)). 즉, FTS는, CTS에서 2N2에서 멀리 떨어져서는 안된다. (FTS-CTS)>2N2인 경우(태스크(110)의 NOK), 에러 메시지를 내어 처리를 중지한다. (FTS-CTS)≤2N2인 경우에는(태스크(l10)의 OK), 태스크(104)로 돌아간다.When the carryover operation is executed by the task 109, a health check is subsequently performed (task ll0). In other words, the FTS should not be far from 2N 2 in the CTS. If (FTS-CTS)> 2N 2 (NOK of task 110), an error message is issued and processing is stopped. If (FTS-CTS) ≤ 2N 2 (OK of task l10), the process returns to task 104.

CORPS 알고리듬을 사용함으로서 이하의 이점이 생긴다. 백 로그가 있는 VOQ는, 최종적으로는 그 SM에 의해 선택된다고 가정해도, 고갈하는 일은 없다. VOQq가 SMp에 의해 선택된다고 가정하면, 도 1O에 의하면, SMp가 q를 스케줄링하는 것에 성공하지 않고 예약 루프를 빠지는 유일한 경우는, 시도한 슬롯에 대해 저지되어 있는 경우이다. SMp가 저지되어 있다는건, 큐(q)가 이미 스케줄링되어 있는 것을 의미하지만, 이하의 점에 주의해야 한다. 루프를 빠지는 다른 유일한 경우가 있다고 한다면, 건전성 체크을 통과하는 경우이지만, 이것은, 이월 동작이 다음 N프레임에 빈 슬롯을 찾아내지 않은 것을 의미한다. 하나의 컬리전에 관계되는 SM은 기껏해야 N개이고, 다수의 컬리전은 저지 수속에 의해 금지되기 때문에, 루프로부터 이런 식으로 빠지는 일은 없다.Using the CORPS algorithm has the following advantages: The VOQ with the backlog is not depleted even if it is finally selected by the SM. Assuming that VOQq is selected by the SMp, according to FIG. 10, the only case where the SMp does not succeed in scheduling q and exits the reservation loop is when it is blocked for the attempted slot. The fact that SMp is blocked means that the queue q is already scheduled, but the following points should be noted. The only other way to get out of the loop is to pass a health check, but this means that the carryover did not find an empty slot in the next N frames. Since there are at most N SMs involved in one collision, and many collisions are forbidden by the blocking procedure, they do not fall out of the loop in this way.

같은 출력포트(q)를 연속하여 스케줄링하고자 하는 m개의 입력포트(SM)의 세트를 M이라 한다. 더욱이, △t의 타임 슬롯 사이에 출력포트(q)에 대해 SMi에 의해 스케줄링되는 슬롯의 개수를 ni q(△t)라 한다. 스케줄러는, 임의의 기간(△t) 및 i, j∈M에 대해,A set of m input ports SM for which the same output port q is to be sequentially scheduled is referred to as M. Further, the number of slots scheduled by SMi for the output port q between time slots of? T is referred to as n i q (? T). The scheduler, for any period (Δt) and i, j∈M,

|ni q(△t)-nj q(△t)|≤NN i q (Δt) -n j q (Δt)

인 경우, m-페어(m-공평)라 한다. 바꾸어 말하면, SM은 다른 여느 SM보다도 이전에 N개의 예약을 할 수는 없다.Is m-pair (m-fair). In other words, the SM cannot make N reservations before any other SM.

CORPS는, m-공평(l<m≤N)이다. 주어진 슬롯(ts)에서 출력포트(q)에 대해 m 개의 SM이 충돌하고 있다고 가정한다. 충돌하고 있는 m개의 SM은 각각, 그 슬롯에 대해 저지되지는 않는다. 혹시 저지되어 있다면, 그 슬롯이 이미 취해져 있는지의 여부 테스트를 하는 것 조차 불가능하기 때문이다(도 10의 태스크(105)). 이들 m개의 SM이 슬롯(ts)에서 저지되어 있지 않은 경우, ts+nN(1<n≤i) 사이에 n개의 빈 슬롯이 있어야만 한다. 왜냐하면, 장래에 이들 슬롯에 액세스하는 유일한 방법은 이월 동작을 통해서이고, 더구나, 이들 SM은 이들 슬롯에 대해 이월 동작을 실행하지 않고 있는 것을 알고 있기(아니면 그것들은 ts에서 저지되어 있기) 때문이다. 이것은, 다음 i프레임 이내에, 충돌 중인 SM이 각각 q에 대해 스케줄링 요구를 하게 되는 것을 의미한다. 여기서, 그것들은 현 프레임의 N개가 연속하는 슬롯에 대해 계속 충돌을 하고, 더구나, 각 컬리전(충돌)은 SM마다 다음 i프레임에 하나의 스케줄링을 생성한다고 한다면, 각 SM은, 출력포트(q)에 대해 다음 i프레임에 전부 N 슬롯 예약하게 된다. 이처럼, 컬리전이 해결되는 i프레임의 iN개의 슬롯에서 취해지는 슬롯 중 여느 서브 세트도, 다른 SM보다도 N슬롯보다 많은 이익을 갖는 SM을 포함할 수는 없다.CORPS is m-equivalent (l <m ≦ N). Assume that m SMs collide for output port q in a given slot ts. Each of the m SMs colliding is not blocked for that slot. If it is ever blocked, it is even impossible to test whether the slot has already been taken (task 105 of FIG. 10). If these m SMs are not blocked in slot ts, there must be n empty slots between ts + nN (1 &lt; n &lt; i). Because the only way to access these slots in the future is through carryover operations, and furthermore, these SMs know that they are not performing carryover operations on these slots (or they are blocked at ts). This means that within the next i frame, the colliding SMs will each make a scheduling request for q. Here, they continue to collide for N consecutive slots of the current frame, and furthermore, if each collision creates one scheduling for the next i-frame for every SM, each SM is an output port (q). N slots are reserved for the next i-frame. As such, any subset of the slots taken from the iN slots of the i-frame in which the collision is to be resolved may not include an SM with more benefits than the N slots than other SMs.

마지막 주의는 흥미 깊은 것이다. 그것은, 설령 측정기간이 어느정도 길어도, 연속하여 백 로그가 있는 V0Q는, 다른 SM이 대응하는 VOQ 이전에 N개보다 많은 패킷을 서비스받는 일은 없는 것을 의미하기 때문이다. 실제로, 충분히 긴 기간에서는, 모든 충돌하는 SM은 엄밀히 같은 수의 예약을 얻게 된다.The last note is interesting. This is because even if the measurement period is somewhat long, V0Q having a backlog in succession means that no other SM is served more than N packets before the corresponding VOQ. In fact, in a sufficiently long period, all conflicting SMs get exactly the same number of reservations.

더욱이, 무거운 부하에서는, 공통의 출력포트을 갖는 큐는 모두 그들 SM에 의해 같은 회수만큼 선택된다고 가정하면, 모두 같은 스루풋을 갖는다(도 10의 태스크(l08)).Moreover, under heavy load, assuming that all queues with a common output port are selected by the same number of times by their SMs, they all have the same throughput (task 1008 in Fig. 10).

CORPS 아키텍처에 대해 몇가지 코맨트를 해두어야만 한다. SM끼리의 사이에서 스케줄링 정보를 건네기 위해 사용되는 통신 체인은, 장래의 적어도 N개의 슬롯인 한, 임의의 방법으로 슬롯의 스케줄링 패턴을 변경하기 위해 사용하는 것이 가능하다. 예를 들면, 출력포트 예약을 취하하는 것도 가능하다. 이 기능은, SM이 컬리전에 의해 먼 장래에 예약을 방금 했지만, 마침 다음 슬롯에서 요구하는 포트가 빈 것을 깨달은 경우에 유용해진다. SM이, 같은 패킷에 대해 다른 예약(보다 가까운 것)을 하는 경우, 먼 쪽의 예약은, 취하가 없으면 대역의 낭비를 야기한다. 그러나, 예약 취하는, 상기의 성질에 악영향을 미칠 가능성도 있다. 예를 들면, 충돌한 SM이 나중에 예약을 취하한 경우, 같은 컬리전에 있어서 그 후에 스케줄링된 패킷의 지연에 악영향을 미친다. 바꾸어 말하면, i-l개의 다른 SM과 충돌한 SM이, 이 충돌에 의한 예약을 나중에 취하한 경우, 시스템은, 처음에 i-1개의 SM만이 충전한 것과 같은 상태에는 없다. 이 스케줄러는, 처음의 설계 목표를 채우면서,가능한 한 단순한 것이다. 이로써, 최종적인 설치에 요구되는 하드웨어는 단순한 체인 것이 보증된다.There are a few comments about the CORPS architecture. The communication chain used to pass scheduling information between the SMs can be used to change the scheduling pattern of the slot in any manner as long as it is at least N slots in the future. For example, it is possible to cancel the output port reservation. This feature is useful when the SM has just made a reservation in the future because of the collision, but finally realizes that the port requested by the next slot is empty. If the SM makes different reservations for the same packet (the closer one), the far-end reservation causes a waste of bandwidth without withdrawal. However, reservation taking may also adversely affect the above properties. For example, if a collided SM later withdraws a reservation, it adversely affects the delay of packets scheduled later in the same colony. In other words, if a SM collided with i-1 other SMs later cancels a reservation due to this collision, the system is not in a state in which only i-1 SMs were initially charged. This scheduler is as simple as possible, meeting the initial design goals. This ensures that the hardware required for final installation is a simple chain.

C0RPS는, 다수의 프레임에 걸쳐 패킷 스케줄링를 확대함으로서 충돌을 해결한다. 따라서, 다른 스케줄러에 비해, 평균 패킷 지연이 커진다고 기대하는 것은 당연하다. 이 때문에, 일정하게, 트래픽하에서 CORPS의 퍼포먼스를 분석한다. 최종 목표는, 이월 동작이 어느 정도 패킷 지연에 영향을 주는지를 평가하여, 경합하는 스케줄링 알고리듬과 비교하여, 시스템으로부터 최대 이용율을 얻는 것이다.C0RPS resolves the conflict by extending packet scheduling over multiple frames. Therefore, it is natural to expect that the average packet delay will be larger than other schedulers. For this reason, the performance of CORPS is constantly analyzed under traffic. The final goal is to evaluate how much carryover affects packet delay, and to obtain the maximum utilization from the system compared to competing scheduling algorithms.

트래픽 부하에 대한 패킷 지연에 관해서 스케줄러의 퍼포먼스를 평가하기 위해, CORPS의 분석 모델을 작성한다. 이하에서는, 간편함을 위해, 다음 2개의 주요한 가정을 한다.To evaluate the scheduler's performance with respect to packet delays against traffic load, you create a CORPS analysis model. In the following, for simplicity, the following two main assumptions are made.

(i) 일정한 트래픽 도착과정 및(i) constant traffic arrival process and

(ii) 각 SM에 의한 불규칙적인 V0Q 큐 선택(도 10의 태스크(l03)).(ii) Irregular V0Q queue selection by each SM (task 13 in FIG. 10).

주어진 SMm의, 출력포트 n당 타겟 VOQ 큐 Qmn을 정의한다. 패킷은, 강도(p)에서 베르누이 과정에 따라서 모든 입력포트에 도착한다. 구체적으로는, 주어진 슬롯에서, 하나의 패킷이 하나의 입력포트에 도착하는 확률이 p이다. 더욱이, 모든 패킷은, 여느 출력포트당 확률도 같다(가정 i). 따라서, 타겟 VOQ 큐에 있어서의 패킷 도착과정은, 패러미터 p/N의 베르누이 분포를 갖는다.Defines the target VOQ queue Q mn per output port n of a given SMm. The packet arrives at all input ports according to the Bernoulli process at strength p. Specifically, in a given slot, the probability that one packet arrives at one input port is p. Moreover, all packets have the same probability per output port (assume i). Therefore, the packet arrival process in the target VOQ queue has a Bernoulli distribution of parameter p / N.

VOQ 선택에 관해서, 주어진 SM이 공백이 없는 각 큐는, 스케줄링를 위해 같은 확률로 선택된다(가정 ii). 따라서, 임의의 VOQ에 대해,해당 VOQ가 비어있지 않으면, q는 선택되는 확률이다. 이하, Chipalkatti 등('Prolocols for 0pticalStar-Coup1er Network using WDM, 'IEEE Journal on Selected Areas in Communications, Vol.11. N0. 4, May 1993)에 따르면, 모든 V0Q의 이용율이 ρ인 경우, 하나의 SM에서 기대되는 공백이 없는 VOQ 큐의 개수는 1+(N-1)ρ에 의해 주어진다.Regarding VOQ selection, each queue with no given SM blank is selected with equal probability for scheduling (assumed ii). Thus, for any VOQ, if the VOQ is not empty , q is the probability that it is chosen. Hereinafter, according to Chipalkatti et al. ('Prolocols for 0pticalStar-Coup1er Network using WDM,' IEEE Journal on Selected Areas in Communications, Vol. 11.N0.4, May 1993), if the utilization of all V0Q is ρ, one SM The number of empty VOQ queues expected at is given by 1+ (N-1) ρ.

더욱이, q와 밀접히 관련되는 다른 확률을 도입하면 편리하다. r을 임의의 큐가 그 스케줄러에 의해 선택되는 확률로 한다. q가 해당 큐가 공백이 없다고 가정하고 있는 데 대해, r에는 이 제한이 없다는 점에서, r은 q와는 다르다. 다음 식이 성립하는 것을 보는 것은 어렵지는 않다.Moreover, it is convenient to introduce another probability that is closely related to q. Let r be the probability that any queue is chosen by its scheduler. r is different from q in that q assumes that the queue has no spaces, but r does not have this limitation. It is not difficult to see the following equation hold.

r = ρq = p/N (1)r = ρq = p / N (1)

Qmn의 행동은 이하와 같이 모델화할 수 있다. 패킷 도착시간 사이는 분명히, 패러미터 p/N의 기하분포에 따른다. 선두 패킷은, SM에 의해 선택되기까지 대기해야 한다. 그 선택은, 주어진 슬롯에 있어서 확률(q)로 일어난다. 선택된 후, 도 10의 태스크(l05)에 따라서, 스케줄링으로부터 저지될 가능성이 있다. 주어진 슬롯에 있어서 포트(m)에 대해 저지되는 확률이 Pb m인 경우, 선두 패킷이 SM에 의해 선택되기까지의 대기시간은, 패러미터 s=q(l-Pb)의 기하분포에 따른다. 여기서 확률은 모든 출력포트에 대해 동일하기 때문에, 위첨자(m)를 떨어뜨릴 수 있다. Qmn이 선택된 후, 항상 예약이 장래의 타임 슬롯에서 행해지며,또한 패킷은 큐에서 일종의 벨트 컨베어로 송출된다고 가정한다. 여기서 패킷은, 예약 타임 슬롯이 찾아오는 것을 대기하여, 찾아온 시점에서 시스템으로부터 나간다.The behavior of Q mn can be modeled as follows. Clearly, between packet arrival times depends on the geometric distribution of the parameter p / N. The first packet must wait until being selected by the SM. The selection takes place with probability q for a given slot. After being selected, in accordance with task 1005 of FIG. 10, there is a possibility to be prevented from scheduling. When the probability that the block m is blocked for port m in a given slot is P b m , the waiting time until the first packet is selected by the SM depends on the geometric distribution of the parameter s = q (lP b ). Since the probability is the same for all output ports, we can drop the superscript (m). After Q mn is selected, it is always assumed that reservations are made in future time slots, and packets are also sent out of the queue to some kind of belt conveyor . Here, the packet waits for a reservation time slot to come out and exits from the system at the point of arrival.

도 11은, Qmn큐잉 시스템에 사용되는 모델 전체를 도시하는 모식도이다. 도착 패킷은 우선 Geo(p/N)/Geo(s)/1큐에 더해진다. 패킷은, 이 큐를 나가면, 추가지연(Dcorpx)를 받는다. 이것은, C0RPS가 컬리전을 해결하는 특정 방법의 결과 생기는 지연이다. 이것은, 무한 개의 서버를 갖는 박스에 의해 모델화된다.11 is a schematic diagram showing the entire model used for the Q mn queuing system. The arrival packet is first added to Geo (p / N) / Geo (s) / 1 queue. When a packet leaves this queue, it receives an additional delay (D corpx) . This is the delay that results from the specific way C0RPS resolves the collision. This is modeled by a box with an infinite number of servers.

C0RPS를 통과하는 패킷의 기대 지연은, Geo(p/N)/Ge0(s)/1에 대한 기대 지연과, 평균 지연〈Dcorps〉과의 합에 의해 주어진다(M. J. Karol, M. G. Hluchyj, S. P. Morgan, 'Input Versus 0utput Queuing on a Space-Division Packct Switch'. IEEE Transactions on Communications, Vol.C0M­35, No.12. pp. 1347-1356, Dec. 1987, 참조). 이것은, 다음과 같이 쓸 수 있다(또한, 수식 중 윗줄로 표기하고 있는 평균치는, 명세서 본문 중에서 〈〉로 둘러싸여 표기하고 있는 것과 동일하다).The expected delay of a packet passing through C0RPS is given by the sum of the expected delay for Geo (p / N) / Ge0 (s) / 1 and the average delay <D corps > (MJ Karol, MG Hluchyj, SP Morgan). , 'Input Versus 0utput Queuing on a Space-Division Packct Switch'.IEEE Transactions on Communications, Vol. C0M35, No. 12.pp. 1347-1356, Dec. 1987). This can be written as follows (In addition, the average value indicated by the upper line in the formula is the same as that enclosed by <> in the specification text).

단, S는, Geo(s) 시간 분포의 확률 변수이다. 다음으로, 〈Dcorps〉의 계산에 대해서 설명한다.However, S is a random variable of the Geo (s) time distribution. Next, the calculation of <D corps > will be described.

Qmn이 선택된(선두 패킷이 Geo(p/N)/Geo(s)/1을 나간) 후, 몇가지 사상이 일어날 수 있다. 우선, SMm은, 시행하고 있는 슬롯을 소유하고 있지 않은 것을 확인해야만 한다(도 10의 태스크(104)). 슬롯이, SM에 의해서, 출력포트(n)에 대해 소유되는 확률을 P0 n이라 한다. 더욱이, 주어진 SM이, 주어진 타임 슬롯에서, 출력포트(n)에 대해 저지되는 확률을 Pb n이라 한다. 이것으로, 다음 식을 유도할 수 있다.After Q mn is selected (the leading packet leaves Geo (p / N) / Geo (s) / 1), some thought can occur. First, the SMm must confirm that it does not own the slot being tried (task 104 in Fig. 10). The probability that a slot is owned by the SM for the output port n is called P 0 n . Moreover, the probability that a given SM is blocked for output port n at a given time slot is called P b n . By this, the following equation can be derived.

CORPS에 의하면, SM이 방문하고 있는 슬롯은, 이 슬롯이 같은 출력포트에 대해 이전 컬리전를 해결하기 위해 사용되고 있는 경우에 한해, 그 SM이 예약하려고 하는 것을 저지할 수 있다.According to CORPS, the slot the SM is visiting can prevent the SM from attempting to reserve only if the slot is being used to resolve the previous collision for the same output port.

그 결과, SM이 어느 한 포트를 소유할 확률은,As a result, the probability that an SM owns a port is

P0=1-(1-P0 n)N(5)P 0 = 1- (1-P 0 n ) N (5)

이 된다.Becomes

도 1O의 태스크(l04)에 의해 생기는 기대 지연〈D0〉은 다음 식에 의해 주어진다.The expected delay &lt; RTI ID = 0.0 &gt; D 0 &lt; / RTI &gt; caused by task 104 in Fig. 10 is given by the following equation.

SMm이 처음에 방문한 슬롯이 비어 있는 경우(도 10의 태스크(1O4), (105) 및 (107)의 테스트가 모두 NO), 우선 매트릭스 방식이 사용되고 있음으로서, 패킷의 평균 지연〈Dcorps〉이 N이 되는 것을 보는 것은 용이하다. 〈Dcorps〉>N으로, 컬리전이 없는 경우, 적어도 하나의 예약이, 장래의 제2 프레임으로 넘친다. 여기서, 컬리전에 의해 받는 지연(Do)에 대해서 조사한다. 특정 슬롯에 대해 i-1개의 다른 SM과의 컬리전이 생길 경우, 그 슬롯에 관해 SMm이 갖는 우선 순위에 의존하여, 지연(D0)은 N에서 iN까지의 사이에서 변할 수 있다. 그래서, SMm이 그 슬롯을 방문하는 i번째의 SM인 경우에 패킷 지연이 jN인 확률을 P[Dcorps=jN|v=i]라 한다. 예를 들면, m이 그 슬롯을 방문하는 최초의 SM인 경우,If the slot first visited by the SMm is empty (the tests of tasks 104, 105, and 107 in Fig. 10 are all NO), the matrix method is used first, so that the average delay of the packets <D corps > It is easy to see N being. &Lt; D corps &gt; &gt; N, when there is no collision, at least one reservation overflows the future second frame. Here, the irradiation with respect to the delay (D o) received by Curley before. When a collision with i-1 other SMs occurs for a particular slot, depending on the priority of the SMm for that slot, the delay D 0 may vary from N to iN. Therefore, when SMm is the i-th SM that visits the slot, the probability that the packet delay is jN is called P [D corps = jN | v = i]. For example, if m is the first SM to visit that slot,

상기의 식은 단지, SMm이 슬롯을 방문하는 최초의 SM인 경우, 그 패킷은 N 슬롯 지연된다는 것이다. 컬리전이 일어나지 않는 경우, CORPS 스케줄러는 장래의 1프레임을 스케줄링하기 때문이다. 다음으로, SMs(s≠m)의 임의의 출력포트(특히 출력 포트(n))에 대한 VOQ 큐가 공백이 없고, 또한, s에 의해 선택되는 확률은 r인 것을 상기하면, P[Dcorps=jN|v=i]에 대한 일반식이 다음과 같이 되는 것을 보는 것은 어렵지 않다.The above equation is merely that if the SMm is the first SM to visit the slot, the packet is delayed by N slots. This is because the CORPS scheduler schedules one future frame if no collision occurs. Next, recalling that the VOQ queue for any output port (especially output port n) of SMs (s ≠ m) has no space and that the probability selected by s is r, P [D corps It is not difficult to see the general formula for = jN | v = i] as

식(8)의 상단은, m이 슬롯을 방문하는 i번째의 SM인 경우, 그 지연은 기껏해야 iN이라는 것이다. 하단의 2항 계수는, i-l개의 SM이 m 이전에 슬롯을 방문한 경우, 이들 중 j-1개의 SM이 m과 충돌할 가능성이 있다는 것이다. (Dcorps=jN 또한 v=i)형 사상의 동시 분포는, 상기 표식에 1/N을 곱함으로서 용이하게 도출할 수 있다. 왜냐하면, SMm은, 슬롯 l≤i≤N의 i번째 방문자인 것이 한결같이 확실하기 때문이다(도 5 참조).The top of equation (8) is that if m is the i-th SM visiting the slot, the delay is at most iN. The lower binomial coefficient is that if il SMs visit the slots before m, then j-1 SMs are likely to collide with m. Simultaneous distribution of (D corps = jN and v = i) events can be easily derived by multiplying the marker by 1 / N. This is because SMm is consistently certain that it is the i-th visitor of slot l ≦ i ≦ N (see Fig. 5).

다음으로, 한 패킷의 대기 지연(Do)은 다음과 같이 도출할 수 있다.Next, wait delay (D o) of the packet can be derived as follows.

CORPS 스케줄러에 의해 생기는 모든 지연은 다음과 같이 된다.All delays caused by the CORPS scheduler are:

계산해야 할 마지막 확률은 Pb이다. 이것은, 주어진 출력포트(n)에 대해, 주어진 슬롯에서, 하나의 SM이 저지되는 확률이다. 다음 식을 도시할 수 있다.The final probability to calculate is P b . This is the probability that, for a given output port n, one SM is blocked in a given slot. The following equation can be shown.

Geo(s)에 대해, 〈S〉=1/s이고, 〈S(S-1)〉=2(1-s)/s2인 것에 주의하면, 하나의 패킷이 시스템에서 받는 모든 평균 지연은 다음과 같이 된다.Note that for Geo (s), <S> = 1 / s and <S (S-1)> = 2 (1-s) / s 2 , all average delays a packet receives from the system It becomes as follows.

단, s=q(1-Pb)이다. 처음의 3항은, 스케줄링이 행해지기 이전의, V0Q 큐에서의 지연에 대응한다. 제3항은, C0RPS의 파이프 라인 및 컬리전 해결기능에 의해, 패킷이 대기하는 데 필요한 추가시간에 대응한다.However, s = q (1-P b ). The first three terms correspond to the delay in the V0Q queue before scheduling is performed. The third term corresponds to the additional time required for the packet to wait by the C0RPS pipeline and collision resolution function.

도 12에, CORPS의 지연 대 스루풋의 해석적 결과를, CORPS 스케줄러를 구비한 16×16 스위치의 시뮬레이션과 비교한 것을 도시한다. 이 도면에서, 파이프 라인 및 컬리전 해결방식이 사용됨으로서, 패킷이 SM 스케줄러에 의해 선택될 때까지 받는 평균 큐잉 지연과, C0RPS 지연과의 사이에 차이가 있다. 도면에서 알 수 있듯이, 해석적 예측은, 시뮬레이트된 시스템의 행동과 잘 일치한다.Fig. 12 shows the analytical results of delay vs. throughput of CORPS compared with simulation of a 16x16 switch with CORPS scheduler. In this figure, there is a difference between the average queuing delay received until the packet is selected by the SM scheduler and the C0RPS delay, as pipeline and collision resolution schemes are used. As can be seen from the figure, the analytical prediction is in good agreement with the behavior of the simulated system.

이 도면은, 부하의 모든 범위를 통해, 스케줄링 지연이 큐잉 지연보다도 우세한 것을 도시하고 있다. 대단히 높은 부하인 경우(큐가 형성되기 시작할 때)에만, 큐잉 지연이 중요해진다. 이것은, 패킷이 VOQ 큐에 도착하자마자 장래의 패킷을 스케줄링함에 있어서, CORPS가 잘 작동하고 있는 것을 의미한다. 한편, CORPS에 의해 생기는 평균 지연은, 가벼운 부하인 경우의 약 1프레임에서, 부하가 0.85에 달할 때의 약 5프레임까지 증대한다.This figure shows that the scheduling delay is superior to the queuing delay over all of the loads. Only in very high loads (when a queue begins to form), the queuing delay becomes important. This means that CORPS is working well in scheduling future packets as soon as they arrive in the VOQ queue. On the other hand, the average delay caused by CORPS increases from about one frame with light load to about five frames when the load reaches 0.85.

완전을 기하기 위해, 도 13에, 16×16 C0RPS 스위치에서의 모든 지연의 상보분포를 도시한다. 곡선은, 시뮬레이션에 의해 얻어진 부하가 0.8 및 0.85인 경우의 것이다. 우선, 여느 패킷도 시스템을 통과하는 데 N2슬롯보다 많이는 걸리지 않는 것에 주목된다. 이것은, CORPS에서는 다중 컬리전이 일어나는 것을 허락하지 않는 것에 의한다. 실제로, 분포의 테일은, N2/2=128 부근에서 끝나는 것처럼 보인다. 그러나, 시스템이 대단히 큰 부하에 의해 구동될 경우, 패킷 지연은 N2에 가까워진다.For the sake of completeness, in Fig. 13, the complementary distribution of all delays at the 16x16 C0RPS switch is shown. The curve is a case where the loads obtained by the simulations are 0.8 and 0.85. First, it is noted that no packet takes more than N 2 slots to pass through the system. This is because CORPS does not allow multiple collisions to occur. In fact, the tail of the distribution, N 2/2 = 128 seems to end in the vicinity. However, if the system is driven by a very large load, the packet delay is close to N 2 .

도 14는, CORPS를 실현하는 시스템 블록도이다. VOQM 모듈은, 패킷을 가상출력 큐 VOQ에 입력한다. 또, 이 모듈은, 주어진 큐 대신에, SM 모듈에 대해 요구를 행한다. SM 모듈은, 메시지 교환을 제어하여, CORPS 스케줄러를 실현한다. SM 모듈은, VOQM과 통신하여, 장래의 슬롯 예약에 대해서 통지한다. 이 통지는 V0QM에 보존되며, 주어진 슬롯에서, 패킷이 교환되어야 할 크로스바 레지스터에 전송되도록 한다.14 is a system block diagram for realizing CORPS. The VOQM module inputs a packet to the virtual output queue VOQ. In addition, this module makes a request to the SM module instead of the given queue. The SM module controls the message exchange to realize the CORPS scheduler. The SM module communicates with the VOQM to inform about future slot reservations. This notification is kept in V0QM and, in a given slot, causes the packet to be sent to the crossbar register to be exchanged.

도면 중, SM과 크로스바 컨트롤러 사이의 통신은 버스를 통해 행해지도록 도시되고 있지만, 이 특정 종류의 통신일 필요는 없다.In the figure, the communication between the SM and the crossbar controller is shown to be via a bus, but this need not be this particular kind of communication.

스케줄링 알고리듬끼리의 공평한 비교에서는, 평균 지연이나 스루풋과 같은 퍼포먼스 척도뿐만 아니라, 복잡함 및 설치비용도 고려해야 한다. 제l 선택기준은 높은 스루풋이다. 더욱이, VOQ에서 동작하는 스케줄러만을 비교한다. 그래서, 본 발명과 경합하는 스케줄러로서, 1-SLIP 및 RRGS와의 비교를 행한다. 여러 회의 이테레이션이 아니라 1이테레이션의 SLIP을 선택하는 이유는, 비교 프로세스의 공평성을 위함이다. 즉, 임의의 입력포트에서, 슬롯당 기껏해야 1회의 결정을 할 수 있다고 가정한다. i-SLIP(i>l)은, 실질적으로, 슬롯당 여러 회의 스케줄링 결정을 요구하게 된다.In a fair comparison between scheduling algorithms, complexity and installation costs must be considered, as well as performance measures such as average delay and throughput. The first selection criterion is high throughput. Moreover, only schedulers running on VOQ are compared. Thus, as a scheduler competing with the present invention, a comparison with 1-SLIP and RRGS is performed. The reason for choosing one iteration rather than multiple iterations is for fairness of the comparison process. That is, it is assumed that at any input port, at most one decision can be made per slot. i-SLIP (i &gt; l) requires substantially multiple scheduling decisions per slot.

퍼포먼스 비교에 있어서, 해석적 결과 및 시뮬레이션 결과의 양쪽을 바탕으로 한다. 일정하게 트래픽에 대한 RRGS 및 SLIP의 지연 퍼포먼스는 다음과 같이 근사할 수 있다.In the performance comparison, it is based on both analytical and simulation results. Constantly, the delay performance of RRGS and SLIP for traffic can be approximated as follows.

RRGS의 결과에 대해서는, 본 출원인에 의한 일본국 특허 출원평 11-172584호에 기재되어 있고, SLIP의 결과에 대해서는, N. McKeown, 'Scheduling Cells in an Input-Queued Switch', PhD Thesis, University of California at Berkeley. 1995에 기재되어 있다.The results of the RRGS are described in Japanese Patent Application No. 11-172584 by the present applicant, and the results of the SLIP are described by N. McKeown, 'Scheduling Cells in an Input-Queued Switch', PhD Thesis, University of California at Berkeley. Described in 1995.

도 15에, 이들 알고리듬의 평균 지연 대 스루풋의 퍼포먼스를, C0RPS와 대조하여 도시한다. 이 도면에서 분명하듯이, RRGS 및 CORPS는, 지연이 커지기 이전에는, SLIP보다도 훨씬 높은 부하에 견딜 수 있다. 쉽게 알 수 있듯이, 이들 곡선의 미분은, 고부하일 경우, RRGS 및 CORPS 쪽이 꽤 작다. 그러나, 여느 알고리듬도, 중간 정도에서 가벼운 부하에서는 오프 세트 지연 버짓을 갖는다. RRGS의 경우, 이것은, 파이프 라인법이 사용되고 있는 것에만 의한 것이다. C0RPS의 경우, 이미 설명한 바와 같이, 추가 지연은 컬리전 해결에 의한 것이다. 그러나, CORPS는, RRGS에 비교해 두가지 이점을 갖는다.Fig. 15 shows the performance of the average delay versus throughput of these algorithms in contrast to C0RPS. As is clear from this figure, RRGS and CORPS can withstand much higher loads than SLIP before the delay becomes large. As can be readily seen, the derivatives of these curves are quite small for RRGS and CORPS at high loads. However, any algorithm has an offset delay budget at moderate to light loads. In the case of RRGS, this is only because the pipeline method is used. In the case of C0RPS, as explained previously, the additional delay is due to the collision resolution. However, CORPS has two advantages over RRGS.

(i) SM이 어떤 출력포트을 선택할지에 대해서 선택의 자유가 있다.(i) There is freedom to choose which output port the SM will select.

(ii) 엄밀히 공평한 스케줄러이다.(ii) It is a strictly fair scheduler.

SLIP도 또 공평한 스케줄러이지만, 그 컬리전 해결 프로세스는, C0RPS인 것과는 전혀 다르다.SLIP is also a fair scheduler, but the collision resolution process is quite different from that of C0RPS.

상술한 바와 같이, C0RPS는, 어떤 출력포트에 스케줄링를 시도할지에 대해 완전한 선택의 자유를 준다. 즉, 각 V0QM은, 주어진 V0Q 대신에, 스케줄링되는 출력포트을 자유롭게 선택할 수 있다. 이것은, 스케줄러 설계 스트러티지의 중요한 부분이었다. 따라서, 많은 알고리듬이, CORPS와 함께, VOQ 선택에 사용가능하다. 지금까지, 그러한 알고리듬의 1개, 즉, 공백이 없는 VOQ 중 불규칙한 선택에 대해서 설명했다. 다른 VOQ 선택 스트러티지의 예도 가능하다. V0Q 선택 스트러티지는, 협조적 선택 스트러티지 및 비협조적 선택 스트러티지라는 2개의 클래스로 분류할 수 있다.As mentioned above, C0RPS gives you full freedom of choice as to which output port to try to schedule. That is, each V0QM can freely select the output port to be scheduled instead of the given V0Q. This was an important part of the scheduler design strategy. Thus, many algorithms, in conjunction with CORPS, are available for VOQ selection. So far, one such algorithm has been described, namely the irregular selection of VOQs with no gaps. Examples of other VOQ selection strategies are possible. The V0Q selection strategy can be classified into two classes: cooperative selection strategy and non-cooperative selection strategy.

비협조적 VOQ 선택 스트러티지는, VOQ 선택 결정이, 다른 입력포트와는 독립으로, 입력포트(VOQM)마다 행해지는 것이다. CORPS의 분석에 사용한 불규칙한 선택 스트러티지는 이 클래스에 속한다.The uncooperative VOQ selection strategy is one in which the VOQ selection decision is made for each input port VOQM independently of other input ports. The irregular selection strategy used for CORPS analysis belongs to this class.

가중 공평 큐잉(WFQ: Weighted Fair Queuing)은, 패킷 교환 연구 문헌에서 널리 알려진 서비스 스트러티지이다(예를 들면, H. Zhang. 'Service Disciplines for Guaranteed Performance Service in Packet-Switching Networks', In Proceedings of IEEE, Vol. 83, no.10. pp.1374­1396. 0ct, 1995, 참조). 그 사고방식은, 소정의 무게에 따라서, 출력 링크 용량에 대해 경합하는 여러 큐의 서비스 레이트를 규제한다는 것이다. VOQ C0RPS 스위치에 있어서, 출력포트 대역은, 어떤 종류의 신호 접수 컨트롤러에 의해 다수의 VOQM으로 분할할 수 있다. 그 경우에, WFQ를 사용하여, VOQ 큐의 최대 서비스 레이트가, 주어진 출력포트의 V0QM 대역분을 넘지 않도록 강제할 수 있다.Weighted Fair Queuing (WFQ) is a service strategy well known in the packet-switched research literature (see, for example, H. Zhang.'Service Disciplines for Guaranteed Performance Service in Packet-Switching Networks', In Proceedings of IEEE, Vol. 83, no. 10. pp. 13741396. 0ct, 1995,). The idea is to regulate the service rate of the various queues that contend for the output link capacity, depending on the desired weight. In the VOQ C0RPS switch, the output port band can be divided into a plurality of VOQMs by some kind of signal reception controller. In that case, using WFQ, it is possible to enforce that the maximum service rate of the VOQ queue does not exceed the V0QM band of the given output port.

레이트 제어 서비스(RCS: Rate­Controlled Service) 규율은, 주어진 트래픽 흐름이, 네트워크 엔트리 포인트로 몇가지 버스트성 제약을 채운다고 가정한다(L. Georgiadis, R. Guerin, V. Pens, 'Efficient Network QoS Provisioning Based on per Node Traffic Shaping', Proceedings of INFOCOM96, vol.1. pp. 102-110, 1996, 참조). 이들 제약은 일반적으로, 네트워크의 에지에 있어서의 트래픽 셰이퍼에 의해 강제된다. 더욱이, 트래픽 셰이퍼는 중간 스위치에도 배치되어, 트래픽이, 네트워크 내의 각 중간 교환 포인트로 그들 제약에 따르도록 된다. 트래픽 셰이퍼는 일반적으로, 리키버켓 알고리듬에 의해 실현된다. J. Turner, 'New Directions in Communications, or Which Way to the Information Age?', IEEECommunications Magazine, vol.24, pp.8-15, 1986에는 그러한 알고리듬의 하나가 기재되어 있다. 기본적인 리키버켓은, 2개의 큐(1개는 데이터용이고, 1개는 토큰 즉 퍼밋용)를 갖는 시스템이다. 큐 상의 데이터 패킷은, 서비스를 받기 위해서는 퍼밋을 필요로 한다. 제한된 개수의 퍼밋만이 퍼밋 큐에 격납된다. 퍼밋은, 일정 레이트로 생성된다. 이 종류의 트래픽 셰이퍼는, V0Q 중 어느 한 서비스를 받는지를 규제하기 위해 사용가능하다. 적격인 VOQ 중에서는, 큐 선택에 임의의 알고리듬을 사용하는 것이 가능하다.Rate Controlled Service (RCS) rules assume that a given traffic flow fills some bursty constraints with network entry points (L. Georgiadis, R. Guerin, V. Pens, 'Efficient Network QoS Provisioning Based on'). per Node Traffic Shaping ', Proceedings of INFOCOM 96, vol. 1.pp. 102-110, 1996,). These constraints are generally enforced by the traffic shaper at the edge of the network. Moreover, traffic shapers are also placed in intermediate switches, such that traffic follows their constraints to each intermediate switching point in the network. Traffic shapers are generally realized by a leaky bucket algorithm. J. Turner, New Directions in Communications, or Which Way to the Information Age ?, IEEE Communications Magazine, vol. 24, pp. 8-15, 1986, describes one such algorithm. The basic Ricky bucket is a system with two queues, one for data and one for tokens, or permits. Data packets on the queue require a permit to be serviced. Only a limited number of permits are stored in the permit queue. Permits are generated at a constant rate. This kind of traffic shaper can be used to regulate which of the V0Qs is serviced. Among eligible VOQs, it is possible to use any algorithm for cue selection.

상기 2개의 서비스 규율은, 패킷 네트워크에 있어서의 서비스 품질(QoS)의 서포트에 사용가능하며, 그 자체가 활발한 연구분야이다. 이러한 QoS 서포트 스트러티지는, 비협조적인 타이프의 것이 되는 경우가 많다, 그것은, 다른 트래픽 스트림과는무관하게, VOQ가 예측되는 서비스 거동을 보증하게 되기 때문이다. 이 클래스에 속하는 알고리듬은, 비디오나 음성 스트림과 같은, 엄격한 QoS 어플리케이션을 서포트하는 스위치로 사용가능하다.These two service disciplines can be used to support quality of service (QoS) in packet networks, and are an active research field. This QoS support strategy is often of non-cooperative type, because it guarantees the expected VOQ service behavior regardless of other traffic streams. Algorithms in this class can be used in switches that support strict QoS applications, such as video and voice streams.

협조적 VOQ 선택 스트러티지는, V0Q 선택이 스위치 내의 VOQ 세트 전체의 상태에 의존하는 선택 스트러티지이다. 이 스트러티지는 일반적으로, 각 흐름의 서비스에 집중하기 보다도, 최대 스루풋과 같은 스위치 전체의 행동을 잘 하는 것을 목표로 한다. 따라서, 이러한 스트러티지를 스위치로 사용하는 것은, QoS 요구조건에 대한 약속없이, 데이터 트래픽을 서포트하는 경우이다.The cooperative VOQ selection strategy is a selection strategy in which V0Q selection depends on the state of the entire VOQ set in the switch. This strategy is generally aimed at better overall switch behavior, such as maximum throughput, rather than focusing on the services of each flow. Thus, using such a strategy as a switch is a case of supporting data traffic without promises of QoS requirements.

협조적 스트러티지의 경우, 다른 VOQ의 상태와 같은 추가정보를 CORPS 스케줄러에 제공할 필요가 있다. 큐의 상태에 관한 정보는 항상 「오래되었기」 때문에, 서비스 스트러티지는, 오래된 정보에 관해 로패스트여야만 한다.In the case of collaborative strategies, it is necessary to provide additional information, such as the status of other VOQs, to the CORPS scheduler. Since information about the state of the queue is always "old", the service strategy must be fast with respect to old information.

최대 매칭 문제란, 주어진 그래프의 변 중에서, 그래프의 정점의 반대를 잇는 변으로, 반대 총수를 최대로 하는 변의 서브 세트를 구하는 문제이다(Cormen, Leiserson and Rivest, 'Introduction to Algorithms', McGraw-IIill, 1990, 참조). 그러나, 어떤 정점도, 잇는 선택된 변을 여러개 갖는 것은 불가능하다. 모든 슬롯으로 교환되는 패킷의 개수를 최대로 할 경우, 최대 2부 매칭(MBM: Maximun Bipartite Matching) 문제를 풀 필요가 있다(R. E. Tarjan, 'Data Structures and Network Algorithms', Society for Industrial and Applied Mathematics, Pennsylvania, Nov. 1983, 참조). 적당한 계산량으로 MBM을 푸는 알고리듬이 이용가능하다(J. E. Hopcreft. R. M. Karp, 'An n5/2Algorithm for Maximum Matching in Bipartite Graphs', Society for Industrial and Applied Mathematics J. Comput., 2(1973). PP.225-231 참조). 본 발명에서는 VOQ가 공백인지의 여부의 상태 정보는 통신 체인을 통해 보내져, VOQM에 건네진다. 여기서, MBM 알고리듬은, 다음 프레임의 슬롯에 어떤 큐가 서비스하는지를 결정한다. 흥미 깊은 점이지만, CORPS에 의하면, MBM 알고리듬에 의해 선택되지 않는 큐도, 장래의 예약을 시도하는 것이 가능하다.The maximum matching problem is the problem of finding a subset of the sides of a given graph with the opposite sides of the graph's vertices (Cormen, Leiserson and Rivest, 'Introduction to Algorithms', McGraw-IIill). , 1990,). However, it is impossible for any vertex to have several selected sides connecting it. In order to maximize the number of packets exchanged in all slots, it is necessary to solve the problem of Maximun Bipartite Matching (MBM) (RE Tarjan, 'Data Structures and Network Algorithms', Society for Industrial and Applied Mathematics, See Pennsylvania, Nov. 1983). Algorithms for solving MBM with reasonable computations are available (JE Hopcreft.RM Karp, 'An n 5/2 Algorithm for Maximum Matching in Bipartite Graphs', Society for Industrial and Applied Mathematics J. Comput., 2 (1973) .PP .225-231). In the present invention, status information of whether the VOQ is empty is sent through the communication chain and passed to the VOQM. Here, the MBM algorithm determines which queue serves the slot of the next frame. Interestingly, according to CORPS, queues that are not selected by the MBM algorithm can attempt future reservations.

최대 무게 2부 매칭(MWBM: Maximum Weight Biparilie Matching) 문제는, 상기의 MBM 문제와 유사하다. 주된 상위점은, 전자에서는, 무게가 그래프의 큐에 관련되며, 목적은, 매칭 변의 무게의 총합를 최대로 하는 변의 세트를 구하는 것이다. 다른 연구자는, MWBM 알고리듬을 사용하면, 비일정하게 트래픽하에서는, 스루풋에 관해 MBM 스트러티지보다 퍼포먼스가 우수한 것을 나타내고 있다(N. McKeown. V. Anantharam. J. Walrand, 'Achieving 100% Throughput in an Input-Queued Switch'. Proceedings of Infocom96. San Francisco, March 1996, 참조). 사고방식은, 비일정하게 트래픽의 경우를 취급하기 위해서, VOQ 큐 사이즈를 무게로서 사용하는 것이다.The Maximum Weight Biparilie Matching (MWBM) problem is similar to the MBM problem above. The main difference is that in the former, the weight is related to the cue of the graph, and the purpose is to find a set of sides that maximizes the sum of the weights of the matching sides. Other researchers have shown that using the MWBM algorithm results in better performance than MBM strategy for throughput under uneven traffic (N. McKeown. V. Anantharam. J. Walrand, 'Achieving 100% Throughput in an Input-Queued Switch'.Proceedings of Infocom 96.San Francisco, March 1996,). The idea is to use the VOQ queue size as the weight to handle the traffic case inconsistently.

또, 상기 문헌에 의하면, 입력 트래픽이 접수 가능한 한, MWBM 알고리듬은 안정적이다. 즉, V0Q 큐는 폭발하지 않는다. 모든 출력포트에 대해, 1개의 출력포트에의 입력 트래픽 레이트의 총합이 그 용량을 넘지 않는 경우에, 트래픽이 접수가능하다고 한다. 이 흥미 깊은 결과는, MWBN의 안정성은, 오래된 정보의 존재하에서도, 즉, 무게가 몇개의 과거의 타임 슬롯의 큐 레벨에 근거하고 있어도, 유지된다는 것이다. 이 경우도, VOQ의 큐 래벨 정보는 모든 VOQM에 건네지고, 출력포트에 대한 요구가 SM으로 발행되기 전에, MWBM 알고리듬이 각 모듈에서 실행되도록 할 수 있다.Further, according to the above document, as long as input traffic can be accepted, the MWBM algorithm is stable. That is, the V0Q queue does not explode. For all output ports, traffic is acceptable if the sum of the input traffic rates to one output port does not exceed its capacity. This interesting result is that the stability of the MWBN is maintained even in the presence of outdated information, ie even if the weight is based on the cue level of some past time slot. Also in this case, the queue level information of VOQ is passed to all VOQMs, and the MWBM algorithm can be executed in each module before a request for an output port is issued to the SM.

이상 상세하게 설명한 바와 같이, 본 발명에 의한 이월 라운드 로빈 파이프 라인 스케줄러(CORPS)에 의하면, 크로스바 고속 스위치 패브릭의 입선 사이에서의 공평한 스케줄링이 가능해진다. CORPS는, 장래의 슬롯 패킷을 스케줄링함으로서, 라인마다 슬롯마다 하나의 스케줄링 결정을 한다. 스케줄링되는 큐의 선택은 임의이기 때문에, 트래픽의 서비스 품질을 서포트하는 데에 적합하다. CORPS는 출력포트 사이의 경합을 공평하게 해결한다.As described in detail above, the carryover round robin pipeline scheduler (CORPS) according to the present invention enables fair scheduling between the winning positions of the crossbar high speed switch fabric. CORPS makes one scheduling decision per slot per line by scheduling future slot packets. Since the choice of queue to be scheduled is arbitrary, it is suitable for supporting the quality of service of traffic. CORPS evenly resolves contention between output ports.

더욱이 다른 효과 및 변형을 생각하는 것은 당업자에는 용이하며, 본 발명은, 여기서 설명한 구체예에 한정되지 않는다. 특허청구의 범위에 기재한 본 발명의 구성 기술 사상 혹은 기술적 범위에서 떠나는 일없이, 여러가지 변형예를 생각하는 것이 가능하다.Moreover, it is easy for a person skilled in the art to consider other effects and modifications, and the present invention is not limited to the embodiments described herein. Various modifications can be considered without departing from the structural technical idea or technical scope of the present invention described in the claims.

Claims (11)

네트워크에 있어서의 데이터의 흐름을 제어하는 스위치에서,In a switch that controls the flow of data in a network, 다수의 입력포트와,Multiple input ports, 다수의 출력포트와,Multiple output ports, 상기 다수의 출력포트 중 지정 출력포트로 데이터를 보내도록, 상기 다수의 입력포트 중 특정 입력포트를 스케줄링하는 다수의 입력포트 스케줄 모듈을 갖는 스케줄러로 이루어지며,A scheduler having a plurality of input port scheduling modules for scheduling a specific input port of the plurality of input ports to send data to a designated output port of the plurality of output ports, 현재의 스케줄 모듈은,The current schedule module is 이전 스케줄 모듈에서 스케줄링 메시지를 수신하고,Receive scheduling messages from the previous scheduling module, 상기 현재의 스케줄 모듈이 상기 지정 출력포트에 액세스하려고 하는 장래의 타임 슬롯을 계산하고,Calculate a future time slot for the current schedule module to access the specified output port, 상기 장래의 타임 슬롯이 상기 현재의 스케줄 모듈에 의해 이미 예약되어 있는지의 여부, 상기 장래의 타임 슬롯이 저지되어 있는지의 여부 및 상기 장래의 타임 슬롯이 다른 스케줄 모듈에 의해 취해져 있는지의 여부에 근거하여, 상기 장래의 타임 슬롯이 유효한지의 여부를 판단하여,Based on whether the future time slot is already reserved by the current schedule module, whether the future time slot is blocked, and whether the future time slot is taken by another schedule module. Determining whether the future time slot is valid, 유효한 경우에는, 상기 장래의 타임 슬롯을 취해, 상기 스케줄링 메시지에 상기 장래의 타임 슬롯이 취해진 것을 나타내는 정보를 입력하는 것을 특징으로 하는 데이터 흐름 제어 스위치.If it is valid, the future time slot is taken and information indicating that the future time slot is taken is input to the scheduling message. 제1항에 있어서, 상기 스케줄러는, 상기 장래의 타임 슬롯이 예약되어 있는 경우 및 취해져 있는 경우 중 어느 한 시기에는, 상기 장래의 타임 슬롯을 소정수의 타임 슬롯만큼 전진시키는 것을 특징으로 하는 데이터 흐름 제어 스위치.The data flow according to claim 1, wherein the scheduler advances the future time slot by a predetermined number of time slots at any one of the case where the future time slot is reserved or taken. Control switch. 제1항에 있어서, 상기 다수의 출력포트 각각에 대해 별도의 큐를 유지하는 가상 출력 큐잉(VOQ)을 사용하여, 상기 다수의 입력포트을 통해 입력된 데이터를 큐잉하는 것을 특징으로 하는 데이터 흐름 제어 스위치.The data flow control switch of claim 1, wherein the data input through the plurality of input ports is queued using virtual output queuing (VOQ) that maintains a separate queue for each of the plurality of output ports. . 제3항에 있어서, 어느 포트에 대한 상기 가상 출력 큐잉은, 다른 포트에 대한 상기 가상 출력 큐잉과는 독립인 것을 특징으로 하는 데이터 흐름 제어 스위치.4. The data flow control switch of claim 3, wherein the virtual output queuing for one port is independent of the virtual output queuing for another port. 제3항에 있어서, 상기 가상 출력 큐잉의 서비스 레이트는 예측가능하고 또한 조정가능한 것을 특징으로 하는 데이터 흐름 제어 스위치.4. The data flow control switch of claim 3, wherein the service rate of the virtual output queuing is predictable and adjustable. 제1항에 있어서, 상기 스케줄러는, 가중 라운드 로빈에 근거하여, 상기 지정 출력포트를 선택하는 것을 특징으로 하는 데이터 흐름 제어 스위치.The data flow control switch of claim 1, wherein the scheduler selects the designated output port based on a weighted round robin. 다수의 입력포트 스케줄 모듈을 갖는 스위치의 여러 입력포트에 도착하는 입력신호를 해당 스위치의 여러 출력포트에 보내도록 스케줄링하는 방법에 있어서,A method for scheduling input signals arriving at various input ports of a switch having a plurality of input port scheduling modules to be sent to various output ports of the corresponding switch. a) 현재의 스케줄 모듈이, 이전 스케줄 모듈에서 스케줄링 메시지를 수신하는 스텝과,a) the current schedule module receiving a scheduling message from a previous schedule module, b) 상기 현재의 스케줄 모듈이, 상기 다수의 출력포트 중 하나에 액세스하려고 하는 장래의 타임 슬롯을 계산하는 스텝과,b) the current schedule module calculating a future time slot to attempt to access one of the plurality of output ports; c) 상기 다수의 출력포트 중 하나를 상기 장래의 타임 슬롯에서의 송신용으로 스케줄링하도록 선택하는 스텝과,c) selecting one of the plurality of output ports to schedule for transmission in the future time slot; d) 상기 장래의 타임 슬롯이 상기 현재의 스케줄 모듈에 의해 이미 예약되어 있는지의 여부를 판단하는 스텝과,d) determining whether the future time slot is already reserved by the current schedule module; e) 상기 장래의 타임 슬롯이 상기 현재의 스케줄 모듈에 의해 예약되어 있지 않은 경우에는, 상기 장래의 타임 슬롯이 저지되어 있는지의 여부를 판단하는 스텝과,e) determining whether or not the future time slot is blocked when the future time slot is not reserved by the current schedule module; f) 상기 장래의 타임 슬롯이 저지되어 있지 않은 경우에는, 상기 장래의 타임 슬롯이 다른 스케줄 모듈에 의해 이미 취해져 있는지의 여부를 판단하는 스텝과,f) if the future time slot is not blocked, determining whether the future time slot has already been taken by another scheduling module; g) 상기 장래의 타임 슬롯이, 다른 스케줄 모듈에 의해 이미 취해져 있는 경우 및 상기 현재의 스케줄 모듈에 의해 이미 예약되어 있는 경우 중 어느 한 경우에는, 상기 스케줄링 메시지로부터 이월 동작이 이미 개시되어 있는지의 여부를 판단하는 스텝과,g) whether the carryover operation has already begun from the scheduling message, in which case the future time slot has already been taken by another scheduling module or has already been reserved by the current scheduling module. Judging step, h) 상기 이월 동작이 이미 개시되어 있는 경우에는, 상기 장래의 타임 슬롯을 저지 상태로 설정하여 상기 스텝(d)로 돌아가는 스텝과,h) if the carryover operation has already been initiated, returning to the step (d) by setting the future time slot to a blocked state; i) 상기 이월 동작이 개시되어 있지 않은 경우에는, 상기 장래의 타임 슬롯을 소정수의 타임 슬롯만큼 전진시켜, 이월 플래그를 세트하여 스텝(d)로 돌아가는 스텝과,i) if the carryover operation is not started, advancing the future time slot by a predetermined number of time slots, setting a carry forward flag, and returning to step d; j) 상기 장래의 타임 슬롯이 다른 스케줄 모듈에 의해서 취해져 있지 않은 경우에는, 상기 장래의 타임 슬롯을 취해, 상기 장래의 타임 슬롯이 취해진 것을 나타내는 정보를 상기 스케줄링 메시지에 입력하는 스텝과,j) if the future time slot is not taken by another scheduling module, taking the future time slot and inputting information into the scheduling message indicating that the future time slot was taken; k) 상기 스케줄링 메시지를 다음 스케줄 모듈에 건네는 스텝으로 이루어지는 것을 특징으로 하는 스케줄링방법.k) a step of passing said scheduling message to a next schedule module. 제7항에 있어서, 상기 다수의 입력포트를 통해 입력한 데이터는, 각 출력포트에 대해 별도의 큐를 유지하는 가상 출력 큐잉을 사용해 큐잉되는 것을 특징으로 하는 방법.8. The method of claim 7, wherein data input through the plurality of input ports is queued using virtual output queuing that maintains a separate queue for each output port. 제8항에 있어서, 어느 포트에 대한 상기 가상 출력 큐잉은, 다른 포트에 대한 상기 가상 출력 큐잉과는 독립인 것을 특징으로 하는 방법.9. The method of claim 8, wherein the virtual output queuing for one port is independent of the virtual output queuing for another port. 제8항에 있어서, 상기 가상 출력 큐잉의 서비스 레이트는 예측가능하고 또한조정가능한 것을 특징으로 하는 방법.9. The method of claim 8, wherein the service rate of the virtual output queuing is predictable and adjustable. 제7항에 있어서, 상기 스케줄러는, 가중 라운드 로빈에 근거하여, 상기 지정 출력포트를 선택하는 것을 특징으로 하는 방법.8. The method of claim 7, wherein the scheduler selects the designated output port based on a weighted round robin.
KR1019990042624A 1999-06-18 1999-10-04 Data flow control switch and method for scheduling the same KR100312363B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US33590899A 1999-06-18 1999-06-18
US09/335,908 1999-06-18
US9/335,908 1999-06-18

Publications (2)

Publication Number Publication Date
KR20010005450A KR20010005450A (en) 2001-01-15
KR100312363B1 true KR100312363B1 (en) 2001-11-03

Family

ID=23313731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990042624A KR100312363B1 (en) 1999-06-18 1999-10-04 Data flow control switch and method for scheduling the same

Country Status (2)

Country Link
KR (1) KR100312363B1 (en)
CN (1) CN1179582C (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7760669B2 (en) * 2006-06-27 2010-07-20 International Business Machines Corporation Method and apparatus for preventing starvation in a slotted ring data communications network
WO2011056868A2 (en) * 2009-11-04 2011-05-12 New Jersey Institute Of Technology Differential frame based scheduling for input queued switches
US9660940B2 (en) * 2010-12-01 2017-05-23 Juniper Networks, Inc. Methods and apparatus for flow control associated with a switch fabric
US11405943B2 (en) 2018-09-28 2022-08-02 Apple Inc. Cross-slot scheduling for New Radio

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5500858A (en) * 1994-12-20 1996-03-19 The Regents Of The University Of California Method and apparatus for scheduling cells in an input-queued switch
JPH09168016A (en) * 1995-12-18 1997-06-24 Toshiba Corp Pakcet switch
JPH1188374A (en) * 1997-09-05 1999-03-30 Nec Corp Large capacity multi-class core atm switch architecture
WO1999043131A1 (en) * 1998-02-18 1999-08-26 Power X Limited Scheduling means for data switching apparatus
KR20000047434A (en) * 1998-12-08 2000-07-25 가네코 히사시 RRGS-Round-Robin Greedy Scheduling for input/output terabit switches

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5500858A (en) * 1994-12-20 1996-03-19 The Regents Of The University Of California Method and apparatus for scheduling cells in an input-queued switch
JPH09168016A (en) * 1995-12-18 1997-06-24 Toshiba Corp Pakcet switch
JPH1188374A (en) * 1997-09-05 1999-03-30 Nec Corp Large capacity multi-class core atm switch architecture
WO1999043131A1 (en) * 1998-02-18 1999-08-26 Power X Limited Scheduling means for data switching apparatus
KR20000047434A (en) * 1998-12-08 2000-07-25 가네코 히사시 RRGS-Round-Robin Greedy Scheduling for input/output terabit switches

Also Published As

Publication number Publication date
CN1179582C (en) 2004-12-08
CN1278696A (en) 2001-01-03
KR20010005450A (en) 2001-01-15

Similar Documents

Publication Publication Date Title
JP3178470B2 (en) Data flow control switch and scheduling method thereof
US10182021B2 (en) Crossbar switch and recursive scheduling
Zhang et al. Shared fiber delay line buffers in asynchronous optical packet switches
US7042883B2 (en) Pipeline scheduler with fairness and minimum bandwidth guarantee
US7827338B2 (en) Method of and a system for controlling access to a shared resource
Rosberg et al. Analysis of OBS networks with limited wavelength conversion
Bianco et al. Frame-based matching algorithms for input-queued switches
JP2002217962A (en) Method for scheduling data packet from a plurality of input ports to output ports
KR100312363B1 (en) Data flow control switch and method for scheduling the same
Zeghid et al. Modified optical burst switching (OBS) based edge node architecture using real-time scheduling techniques
Vasiliadis et al. Modelling and performance study of finite-buffered blocking multistage interconnection networks supporting natively 2-class priority routing traffic
Wang et al. Efficient designs of optical LIFO buffer with switches and fiber delay lines
Akar et al. Retrial queuing models of multi-wavelength FDL feedback optical buffers
Cavendish CORPS-a pipelined fair packet scheduler for high speed switches
Chou et al. A latency-aware scheduling algorithm for all-optical packet switching networks with FDL buffers
WO2007099644A1 (en) Cross bus switch
Guan et al. Providing absolute QoS through virtual channel reservation in optical burst switching networks
Dutta et al. Modeling and performance analysis of optical packet switching network using fiber delay lines
Callegati et al. A practical approach to scheduler implementation for optical burst/packet switching
Chrysos et al. Preventing buffer-credit accumulations in switches with small, shared output queues
Choi et al. Optical Buffer-based Service Differentiation in Burst Switching-based Optical Networks
Millberg et al. Priority based forced requeue to reduce worst-case latencies for bursty traffic
Wu et al. Performance analysis of nonblocking multi-plane ATM switches with input/output buffers and priorities
Jhou et al. A frame-based architecture with shared buffers for slotted optical packet switching
Munoz Design and performance evaluation of switching architectures for high-speed Internet

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

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee