KR100550010B1 - 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그방법 - Google Patents

힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그방법 Download PDF

Info

Publication number
KR100550010B1
KR100550010B1 KR1020030081110A KR20030081110A KR100550010B1 KR 100550010 B1 KR100550010 B1 KR 100550010B1 KR 1020030081110 A KR1020030081110 A KR 1020030081110A KR 20030081110 A KR20030081110 A KR 20030081110A KR 100550010 B1 KR100550010 B1 KR 100550010B1
Authority
KR
South Korea
Prior art keywords
packet
segment
scheduling
deadline
packet segment
Prior art date
Application number
KR1020030081110A
Other languages
English (en)
Other versions
KR20050047303A (ko
Inventor
김광옥
최창식
곽동용
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020030081110A priority Critical patent/KR100550010B1/ko
Publication of KR20050047303A publication Critical patent/KR20050047303A/ko
Application granted granted Critical
Publication of KR100550010B1 publication Critical patent/KR100550010B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/564Attaching a deadline to packets, e.g. earliest due date first

Landscapes

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

Abstract

본 발명은 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그 방법에 관한 것으로 특히, 하나의 출력포트를 통해 서비스되는 복수의 패킷 세그먼트 셀들에 대해 지연 경계(delay bound)를 보장하는 우선순위를 제공하는 방식에 관한 것이며, 보다 상세하게는 패킷 세그먼트들에 주어지는 마감 시간(Deadline)을 이용하여 최근 기한(Earliest deadline)을 갖는 패킷 세그먼트를 먼저 전송 처리하는 최근 기한 우선순위(Earliest Deadline First) 스케줄링 방식에 관한 것이다.
본 발명은 입력 패킷 세그먼트들에 대한 스케줄링 입력정보의 지연 경계(delay bound)와 상기 스케줄링 입력정보의 도착 시간을 가산해 상기 패킷 세그먼트들에 대한 마감시간을 계산하는 최근 기한 우선순위 스케줄러; 상기 가산된 패킷 세그먼트들에 대한 마감 시간을 포함한 스케줄링 정보, 전송 속도를 저장하는 플로우별 큐; 및 상기 플로우별 큐로부터 상기 마감시간을 입력받아 상기 패킷 세그먼트들을 최근 기한 우선순위별로 비교 정렬하고 상기 패킷 세그먼트들에 대한 스케줄링 출력정보를 출력하는 힙 관리기를 포함하여 본 발명의 목적 및 기술적 과제를 달성한다.

Description

힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그 방법{A Method of Earliest Deadline First Scheduling using the heap data structure and Apparatus thereof}
도 1은 일반적인 라우터에서 패킷 전송을 위한 라인카드 블록도이다.
도 2a는 도 1에 제시된 스케줄러의 구성도이다.
도 2b는 본 발명이 제공하는 힙 데이터 정렬방식을 이용한 패킷 전송 스케줄링 장치의 바람직한 일실시예의 구성도이다.
도 3은 도 2b에 도시된 스케줄러의 전체 동작 과정을 제시한 흐름도이다.
도 4a는 본 발명에 따른 도 2b에 도시된 힙 관리기의 구성도이다.
도 4b은 도 4a에 도시된 힙 관리기의 입력 동작 과정의 일례를 보여주는 도면이다.
도 4c는 도 4a에 도시된 힙 관리기의 출력 동작 과정의 일례를 보여주는 도면이다.
도 4d은 도 4a에 도시된 힙 관리기의 입력과 출력 과정이 동시에 제시된 일례를 보여주는 도면이다.
< 도면의 주요 부분에 대한 부호의 설명 >
20 : 최근 기한 우선순위 스케줄러(EDF) 21 : 세그먼트별 큐
22 : 힙 관리기 201 : 스케줄러 제어기 202 : 패킷 세그먼트 속도 메모리
203 : 패킷 세그먼트 대기 메모리 208 : 입력 세그먼트 마감시간 가산기
209 : 대기 세그먼트 마감시간 가산기
본 발명은 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그 방법에 관한 것으로 특히, 하나의 출력포트를 통해 서비스되는 복수의 패킷 세그먼트 셀들에 대해 지연 경계(delay bound)를 보장하는 우선순위를 제공하는 방식에 관한 것이며, 보다 상세하게는 패킷 세그먼트들에 주어지는 마감 시간을 이용하여 최근 기한을 갖는 패킷 세그먼트를 먼저 전송 처리하는 최근 기한 우선순위 스케줄링 방식에 관한 것이다.
대부분의 상용 라우터에서는 단순히 최선형 서비스(Best-Effort Service)를 제공하기 때문에 Strict Priority나 WRR(Weight Round Robin), DRR(Deficit Round Robin), WFQ(Weight Fair Queuing)등의 대역 보장형 스케줄링 알고리즘을 사용한다.
이러한 대역 보장형 스케줄링 알고리즘은 우선순위(priority) 서비스를 기반으로 대역 보장을 제공하지만, 대역 보장뿐만이 아닌 지연 경계(delay bound)가 보장되어야 하는 실시간 스트리밍 서비스에 있어서는 지연 경계를 보장하지 못하므로 스트리밍 서비스의 QoS(Quality of Service)를 제공하지 못하는 단점이 있다.
현재 실시간 스트리밍 서비스에 대한 QoS를 보장하는 스케줄링 알고리즘에는 WFQ와 EDF(최근 기한 우선 순위, Earliest Deadline First)가 사용되고 있다. WFQ나 EDF는 패킷 세그먼트들의 종료시간(finish time) 또는 마감시간(deadline)을 기반으로 우선순위(priority)를 제공한다.
WFQ 스케줄러는 지연 특성 및 공평성(fairness)이 우수하지만, 시스템 가상시간(virtual time)을 기반으로 종료시간을 계산하기 때문에 N개의 플로우에 대해 O(N)의 복잡도를 가지며 이로 인해 다량의 플로우를 요구하는 라우터에서 구현상의 어려움이 있다. 따라서 WFQ는 10Gbps 이상의 고속 라우터에서는 적용하기가 부적합하며, 시스템 가상시간을 계산하고 유지해야 하기 때문에 하드웨어 구현이 복잡하다. 또한 서비스 속도에 따라 지연 경계를 제공하기 때문에 VoIP와 같은 서비스 속도가 낮고 지연에 민감한 서비스에 대해 종료시간을 빠르게 계산하여 지연경계를 보장하므로 많은 대역을 낭비하는 문제점을 가지고 있다.
따라서, 상용 라우터에서 효율적으로 실시간 스트리밍 서비스를 전송하기 위해서는 각 패킷에 대해 지연 경계를 보장하며, 하드웨어 구현이 용이한 패킷 전송 스케줄러가 요구된다. 또한 10 Gbps 이상의 고속 패킷 스케줄러에서 여러 플로우들의 패킷 세그먼트들에 대해 우선 순위를 제공하며 확장성이 뛰어난 고속 정렬 기능이 요구된다.
따라서 본 발명은 상기와 같은 문제점을 해결하며, 상기의 요구에 부응하기 위하여 창안된 것으로, 본 발명이 이루고자 하는 목적 및 기술적 과제는, 각 패킷 세그먼트들의 마감시간 순위를 기반으로 패킷 세그먼트를 고속 정렬하여 실시간 스트리밍 서비스의 지연 경계를 보장할 수 있는 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 방법 및 그 장치를 제공함에 있다.
상기의 목적 및 기술적 과제를 이루기 위하여 본 발명이 제공하는 스케줄링 장치는, 입력 패킷 세그먼트들에 대한 스케줄링 입력정보의 지연 경계(delay bound)와 상기 스케줄링 입력정보의 도착 시간을 가산해 상기 패킷 세그먼트들에 대한 마감시간을 계산하는 최근 기한 우선순위 스케줄러; 상기 가산된 패킷 세그먼트들에 대한 마감 시간을 포함한 스케줄링 정보, 전송 속도를 저장하는 플로우별 큐; 및 상기 플로우별 큐로부터 상기 마감시간을 입력받아 상기 패킷 세그먼트들을 최근 기한 우선순위별로 비교 정렬하고 상기 패킷 세그먼트들에 대한 스케줄링 출력정보를 출력하는 힙 관리기를 포함하여 본 발명의 목적 및 기술적 과제를 달성한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 들어 본 발명의 구성 및 동작에 대하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며, 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다.
도 1은 일반적인 라우터에서 패킷 전송을 위한 라인카드 블록도이다.
도 1을 참조하면, 라우터는 크게 네트워크 프로세서(10)와 트래픽 관리기(11), 스위치 패브릭(switch fabric,12)으로 구성된다.
네트워크 프로세서(10)는 가변길이 패킷을 입력받아 분류하고, 분류된 패킷을 출력 인터페이스를 통해 고정 길이를 갖는(예를 들어 64 byte) 다수개의 패킷 세그먼트로 출력한다.
트래픽 관리기(11)는 네트워크 프로세서(10)로부터 입력된 패킷 세그먼트에 대한 QoS(Quality of Service) 확보를 위한 소정의 기능을 행하는데, 이를 위해 스케줄러(111)와 큐 관리기(112), 큐 메모리(113)로 구성된다.
큐 관리기(112)는 입력되는 패킷 세그먼트의 헤더로부터 스케줄링 입력정보를 추출하여 스케줄러(111)로 전송하고, 패킷 세그먼트를 플로우 식별자를 이용해 해당 큐 메모리(113)에 저장하며, 큐 메모리(113)에 저장된 세그먼트들을 링크 리스트(link list)하는 기능을 수행한다. 또한 큐 메모리(113)의 상태에 따른 버퍼관리 기능을 수행하며 스케줄러(111)로부터 스케줄러 출력정보를 입력받아 큐 메모리(113)에 저장되었던 패킷 세그먼트를 서비스하기 위해 스위치 패브릭(12)으로 전송하는 기능을 수행한다.
스케줄러(111)는 큐 관리기(112)로부터 받은 스케줄링 입력정보를 우선순위별로 정렬하고, 스케줄링 출력정보를 큐 관리기(112)에 전송하여 입력 패킷의 QoS가 보장되도록 패킷의 전송 스케줄링을 수행한다. 스위치 패브릭(12)은 큐 관리기(112)로부터 출력된 세그먼트를 해당 목적지 포트로 전송하는 기능을 수행한다.
도 2a는 도 1에 제시된 스케줄러(111)의 구성도이다.
최근 기한 우선순위 스케줄러(Earliest Deadline First Scheduler(EDF), 20)는 큐 관리기(112)로부터 입력되는 스케줄링 입력정보의 지연 경계(delay bound)와 스케줄링 입력정보의 도착 시간을 가산해 각 패킷 세그먼트들에 대한 마감시간을 계산하는 기능을 수행한다. 이 때 각 패킷 세그먼트들에 대한 마감시간은 최대 전송 속도(Peak Cell Rate(PCR))에 기반하여 계산함이 바람직하다.
플로우별 큐(21)는 스케줄러(111)가 지원하는 플로우 수만큼 제공되며, 각 세그먼트 큐(1,2,3,···,16K)는 최근 기한 우선순위 스케줄러(20)에서 계산된 각 패킷 세그먼트들에 대한 마감 시간을 포함한 스케줄링 정보, 전송 속도 등을 저장한다.
힙(heap) 관리기(22)는 각 세그먼트 큐(1,2,3,···,16K)의 HOL(Header of Line)의 스케줄링 마감시간(최근 기한, 211)을 입력받아 입력 패킷 세그먼트들을 최근 기한 우선순위별로 비교 정렬하고, 비교 정렬한 결과에 근거하여 스케줄링 출력정보를 출력한다. 본 발명에서의 세그먼트 정렬은 파이프라인(pipeline) 정렬 방식에 의하며 정렬 방식에 대한 보다 상세한 사항은 후술될 것이다.
도 2b는 도 1 및 도 2a에 제시된 스케줄러(111)의 상세 구성도로서, 본 발명이 제공하는 힙 데이터 정렬방식을 이용한 패킷 전송 스케줄링 장치의 바람직한 일실시예의 구성도이다.
본 발명에 의한 힙 데이터 정렬방식을 이용한 패킷 전송 스케줄러는 스케줄러 제어기(201), 패킷 세그먼트 속도 메모리(202), 패킷 세그먼트 대기 메모리(203), 패킷 세그먼트 카운터(204), 랩핑(wrapping) 카운터(205), 입력 세그 먼트 마감시간 가산기(206), 입력 세그먼트 데이터 머지부(207), 대기 세그먼트 마감시간 가산기(208), 대기 세그먼트 데이터 머지부(209), 힙 관리기(22)로 구성됨이 바람직하다.
패킷 세그먼트 속도 메모리(202)는 각 패킷 세그먼트(패킷 플로우)에 대한 지연 경계값을 저장한다(s201). 각 세그먼트들의 지연 경계 값들은 스케줄링 입력정보가 입력되면 패킷 세그먼트 속도 메모리(202)에 저장되고(s201), 스케줄링 출력정보(s215)가 반환(s216)되면 독출된다(s202).
패킷 세그먼트 대기 메모리(203)는 서비스(출력) 대기 중인 세그먼트 수를 저장하는데, 스케줄러 제어기(201)는 해당 플로우의 패킷 세그먼트 수를 이용해 패킷 세그먼트 대기 메모리(203)에 전송 대기 중인 패킷 세그먼트가 있는 지 없는 지를 구분한다. 이는 패킷 세그먼트 대기 메모리(203)의 어드레스 카운터 값에 의하여 결정되는데, 카운터 값이 0이면 힙 관리기(22) 외부에 대기 중인 스케줄링 정보가 없는 것을 의미하며, 0이 아니면 힙 관리기(22) 외부에 하나 이상의 대기 중인 스케줄링 정보가 있고 또한 큐 메모리(113)에도 페이로드를 포함한 패킷 세그먼트들이 카운터 값만큼 대기하고 있음을 의미한다.
스케줄러 제어기(201)는 스케줄링 입력정보(s200)의 플로우 식별자를 통해 메모리 액세스를 수행하고, 입력되는 패킷 세그먼트를 힙 관리기(22)로 바로 전송할 것인지 패킷 세그먼트 대기 메모리(203)에 대기하게 할 것인지를 결정한다. 그 결정은 패킷 세그먼트 대기 메모리(203)의 어드레스 카운터 값을 참조하여 결정된다. 즉, 카운터 값이 0이면 위에서 언급한 바와 같이 힙 관리기(22) 외부에 대기 중인 스케줄링 정보가 없는 것을 의미하므로 입력되는 패킷 세그먼트를 힙 관리기(22)로 바로 전송하며, 카운터 값이 0이 아니면 위에서 언급한 바와 같이 힙 관리기(22) 외부에 대기 중인 스케줄링 정보가 있는 것을 의미하므로 입력되는 패킷 세그먼트를 패킷 세그먼트 대기 메모리(203)의 카운터를 +1 증가시켜 대기하게 한다. 또한, 입력 세그먼트 마감시간 가산기(206)와 입력 세그먼트 데이터 머지부(207), 대기 세그먼트 마감시간 가산기(208), 대기 세그먼트 데이터 머지부(209)에 해당 데이터를 전송한다(s205, s206, s207, s208, s209, s210, s211, s212).
패킷 세그먼트 카운터(204)는 입력되는 패킷 세그먼트를 소정의 시간 단위(예를 들어 32ns)로 계수(counting)하는데, 스위치 패브릭(12)으로부터 Back-pressure 신호가 발생하면 계수를 하지 않고, Back-pressure 신호가 발생하지 않으면 계수를 계속한다. 패킷 세그먼트 카운터(204)의 계수 단위는 비트(bit)이며 그 비트 수[b]는 다음 식에 의해 결정된다.
최소 서비스율 : 4Kbps 최대 서비스율 : 10Gbps
타임스탬프 계수(m) : 10Gbps/4Kbps
힙 플로우 개수(f) : 16K
타임스탬프 비트 수(b) =
Figure 112005053231676-pat00004
여기서, 힙 플로우 개수는 동일한 시간에 서비스 받을 경우를 고려한 값이다.
랩핑 카운터(205)는 패킷 세그먼트 카운터(204)가 계수하는 수(S217)에 오버 플로우(overflow)가 발생할 때마다 "00"->"01"->"10"으로 계수(s218)한다. 이 계수(s318) 값은 힙 관리기(22)에서 최소 마감순위를 찾는데 사용된다.
입력 세그먼트 마감시간 가산기(206)는 스케줄러 제어기(201)로부터 입력된 도착시간(s206)과 서비스 시간(s207)을 이용하여 마감시간(s208)을 계산한다. 도착시간(s206)은 패킷 세그먼트 카운터 값(s217)을 기준으로 정해진다. 입력 세그먼트 데이터 머지부(207)는 스케줄링 입력정보의 서비스 시간 필드에 마감시간(s208)을 지정하여 입력 세그먼트의 스케줄링 출력정보(s213)를 머지(merge)시킨 후 힙 관리기(22)에 전송한다.
대기 세그먼트 마감시간 가산기(208)는 스케줄러 제어기(201)로부터 입력된 도착시간(s209)과 서비스 시간(s210)을 이용하여 대기 세그먼트의 마감시간(s211)을 연산한다. 이때 서비스 시간(s210)은 패킷 세그먼트 속도 메모리(202)로부터 독출된다. 도착시간(s209)은 패킷 세그먼트 카운터 값(s217)을 기준으로 패킷 세그먼트가 힙 관리기(22)를 빠져나간 시간이 된다. 이 때 대기 세그먼트의 마감시간은 입력 세그먼트의 마감시간과 독립적으로 계산되는 것이 아니라 동시에 계산된다.
대기 세그먼트 데이터 머지부(209)는 스케줄링 출력정보(s215)의 서비스 시간 필드에 마감시간(s211)을 지정하여 대기 세그먼트의 스케줄링 출력정보(s214)를 머지(merge)시킨 후 힙 관리기(22)에 전송한다.
힙 관리기(22)는 패킷 세그먼트에 대한 정렬을 수행하는데, 본 발명에서는 파이프라인(pipeline) 방식으로 정렬을 수행하는데, 머지부(208, 209)에 의해 머지된(merged) 입력 세그먼트의 스케줄링 출력정보(s213)와 대기 세그먼트의 스케줄링 출력정보(s214)를 받아 동시에 정렬을 수행하기 위해 2개의 서브노드 트리 힙 관리 방식을 사용한다.
도 3은 도 2b에 도시된 스케줄러의 전체 동작 과정을 제시한 흐름도이다.
도 3에 도시된 과정은 유입된 패킷 세그먼트에 적용되는 분류와 스케줄링의 동작에 관한 것으로, 패킷 세그먼트 유입이 종료될 때까지 패킷 세그먼트를 서비스하는 과정을 순환적으로 반복하게 된다.
큐 관리기(112)로부터 스케줄러(111)로 각 패킷 세그먼트에 대한 스케줄링 입력정보(s200)가 입력된다(P301). 이 때, 스케줄링 입력정보(s200)에는 포트 어드레스, 클래스 정보, 서비스 시간(time stamp) 등이 포함된다. 스케줄러(111)는 포트 어드레스를 정보를 이용하여 해당 클래스를 선택한다. 클래스 정보는 클래스 안에서 큐 식별자로 사용된다.
스케줄러(111)는 입력 패킷 세그먼트의 스케줄링 입력정보(s200)가 입력되면 패킷 세그먼트 속도 메모리(202)에 서비스 시간을 저장한다(P302). 이 서비스 시간은 대기 중인 세그먼트를 서비스(출력)할 때 사용된다. 그리고 큐 식별자를 이용해 패킷 세그먼트 대기 메모리(203)의 해당 어드레스의 카운터 값을 읽는다(P303).
1) 카운터 값이 "0"이 아닐 경우
카운터 값이 "0"이 아니면 현재 힙 관리기(22)에 이전 입력된 세그먼트가 대기 중이라는 의미이므로, 입력 패킷 세그먼트를 패킷 세그먼트 대기 메모리(203)에 대기하게 하는데 패킷 세그먼트 대기 메모리(203)의 해당 어드레스 카운터 값을 +1 증가시켜 저장한다(P304).
카운터 값이 "0"이 아닌 경우에, 스케줄러 제어기(201)는 또한 대기 중인 스케줄링 정보(즉, 대기 중인 패킷 세그먼트)의 처리를 수행하게 된다. 우선, 패킷 세그먼트 속도 메모리(202)로부터 서비스된(기입력된) 세그먼트의 서비스 시간을 읽는다(P305). 그리고 패킷 세그먼트 대기 메모리(32)의 어드레스 카운터를 -1 감소한다(P306).
다음으로, 패킷 세그먼트 속도 메모리(202)에서 읽은 서비스 시간과 서비스된 스케줄링 출력정보가 스케줄러 제어기(201)에 도착한 시간을 더해 대기 중인 패킷 세그먼트의 마감 시간이 계산된다(P307). 계산된 마감시간은 서비스된 스케줄링 정보의 마감시간 필드에 새로이 계산된 마감시간 필드를 계산해 힙 관리기(22)에 입력된다(P308). 힙 관리기(22)는 정렬을 수행하여 매 패킷 세그먼트 시간마다 최상위 노드의 스케줄링 값을 출력한다(P311). 출력된 스케줄링 출력정보는 큐 관리기(112)로 전송되고 동시에 스케줄러 제어기(201)로 반환된다(P312).
2) 카운터 값이 "0"일 경우
카운터 값이 0이면 힙 관리기(22)안에 대기 중인 스케줄링 정보가 없는 것을 의미하므로 입력 패킷 세그먼트에 대한 처리가 바로 이루어진다.
카운터 값이 "0"이면 이전 입력된 세그먼트가 대기 중인 상태가 아니라는 의미이고, 스케줄링 입력정보가 스케줄러 제어기(201)에 도착한 도착시간과 스케줄링 정보의 서비스 시간을 더해 입력 패킷 세그먼트에 대한 마감시간을 계산한다(P309). 계산된 마감 시간은 스케줄링 출력정보의 서비스 필드에 지정된 후 힙 관리기(22)에 입력된다(P310). 힙 관리기(22)는 정렬을 수행하여 매 패킷 세그먼트 시간마다 최상위 노드의 스케줄링 값을 출력한다(P311). 출력된 스케줄링 출력정보는 큐 관리기(112)로 전송되고 동시에 스케줄러 제어기(201)로 반환된다(P312).
도 4a는 본 발명에 따른 도 2b에 도시된 힙 관리기의 구성도이다.
힙 관리기(22)는 도 4a에 제시된 바와 같이 파이프라인 방식으로 구현되며, 크게 1개의 최상위 노드(500)와 각각 좌/우 서브 트리로 구성된다. 최하위 레벨의 노드를 제외한 각 서브 트리의 각 노드들은 자신을 포함한 왼쪽 하위 노드들의 점유노드 카운터(cnt)를 가지고 있다. 이 카운터를 이용해 유효한 좌/우 경로를 찾는다. 왼쪽 경로를 선택시 어드레스는 "0"이 할당되고(505), 반대로 오른쪽 경로를 선택시 "1"이 할당된다(506).
입력 패킷 세그먼트의 스케줄링 정보(s213)는 좌 서브트리의 최상위 노드에(501), 대기 세그먼트의 스케줄링 정보(s214)는 우 서브트리의 최상위 노드(503)로 입력된다. 좌/우 서브트리의 최상위 노드만 2개의 카운터 값을 유지한다. LC카운터는 자신을 포함한 왼쪽 하위 노드에 점유된 카운터 수를 나타내고, RC카운터는 자신을 포함한 오른쪽 하위 노드에 점유된 카운터 수를 나타낸다.
힙 관리기(22)는 카운터(cnt) 값을 이용해 각 최상위 노드(501, 503)의 마감시간을 서로 비교하여 마감시간이 작은 쪽의 스케줄링 정보를 최상위 노드(500)로 전송한다. 마감시간이 작은 쪽의 스케줄링 정보가 최상위 노드(500)로 전송되면 두 상위 노드 중 어느 한 노드(501 또는 503)는 비어있게 되므로 하위 노드(507, 509)의 카운터(508, 510)를 이용하여 작은 마감시간을 갖는 하위 노드(507 또는 509)에 있는 스케줄링 정보를 상위 노드(501 또는 503)로 전송한다. 이렇게 빈 노드를 채워가며 정렬을 수행한다. 맨 하위레벨의 노드는 카운터를 가지고 있지 않다.
도 4b은 도 4a에 도시된 힙 관리기의 입력 동작 과정의 일례를 보여주는 도 면이다. 도 4b을 참조하여 입력 동작을 설명하면 다음과 같다.
새로운 스케줄링 정보 "5"(600)가 왼쪽 서브 트리의 최상위 노드로 입력되면 최상위 노드의 카운터(602)를 조사한다. 왼쪽 카운터 값이 "4"이고, 오른쪽 카운터 값이 "2"이기 때문에 왼쪽 하위 노드들이 모두 채워져 있다(도 4b의 첫 번째 그림). 따라서 오른쪽 노드로 경로를 선택한다. 그리고 최상위 노드(601)의 마감시간 "4"와 스케줄링 입력정보의 마감시간 "5"를 비교하여, "5"가 더 크므로 스케줄링 입력정보를 오른쪽 하위 노드로 전송한다(도 4b의 두 번째 그림).
다음 파이프라인 단계에서 레벨 2 오른쪽 노드 카운터가 "1"이므로 왼쪽 하위 노드가 비워 있다. 따라서 왼쪽 경로를 선택하고 상위 노드에서 입력된 마감시간 "5"와 레벨 2 오른쪽 노드의 마감시간 "6"을 비교하여, "5" 마감시간이 작으므로 스케줄링 정보를 치환하고, 마감시간 "6"의 스케줄링 정보를 다음 하위레벨로 전송한다(도 4b의 세 번째 그림). 그리고 왼쪽 경로로 스케줄링 정보를 전송하였으므로 점유 노드 카운터를 "1"에서 "2"로 증가시킨다. 레벨 3의 왼쪽 하위노드가 빈 노드이므로 입력된 스케줄링 정보를 저장한다(도 4b의 네 번째 그림).
도 4c는 도 4a에 도시된 힙 관리기의 출력 동작 과정의 일례를 보여주는 도면이다. 도 4c을 참조하여 출력 동작 과정을 설명하면 다음과 같다.
좌/우 서브 노드 트리의 최상위 노드의 각 카운터(703, 704) 합을 읽는다. 오른쪽 점유노드 카운터(704) 합이 "0"이고, 왼쪽 점유노드 카운터(703) 합이 "7"이므로 왼쪽 서브 노드트리의 최상위 노드의 값 "4"(700)를 최상위 노드(701)을 통해 출력한다(도 4c의 첫 번째 그림).
왼쪽 서브트리의 최상위 노드가 비어있으므로 레벨 2의 하위 2개의 노드(705, 706)를 비교하여 마감시간이 작은 값으로 왼쪽 서브트리의 최상위 노드를 채워야 한다. 레벨 2 좌/우 노드의 카운터(709, 713)가 모두 "2"이므로 2개의 노드의 마감시간을 읽고, 왼쪽 노드의 마감시간(705)이 "8"이고 오른쪽 노드의 마감시간(706)이 "5"이므로 오른쪽 노드의 값 "5"로 레벨 1 노드(708)를 채운다. 이 때, 레벨 1 노드의 왼쪽 카운터는 그대로 유지되고, 오른쪽 카운터(707)를 -1 감소시킨다 (도 4c의 두 번째 그림).
레벨 2의 오른쪽 노드(712)가 비어있으므로 레벨 3 하위 2개의 노드를 비교하여 마감시간이 작은 값을 오른쪽 노드(712)에 저장한다. 그러나 레벨 3의 오른쪽 노드(717)가 비어있으므로 왼쪽 노드의 값(718)을 레벨 2의 오른쪽 노드에 저장한다(715). 그리고 레벨 2의 오른쪽 노드(715)의 점유노드 카운터(716)가 "2"에서 "1"로 감소한다(도 4c의 세 번째 그림). 레벨 3의 왼쪽 노드(719)는 비어있으므로 점유노드 카운터가 "0"이 된다(도 4c의 네 번째 그림).
도 4d은 도 4a에 도시된 힙 관리기의 입력과 출력 과정이 동시에 제시된 일례를 보여주는 도면이다. 도 4d을 참조하여 입출력 동작 과정을 설명하면 다음과 같다.
새로운 스케줄링 정보 "7"(800)이 입력되고, 동시에 왼쪽 서브트리의 최상위 노드의 카운터(804) 합이 7이므로 최상위 노드의 값(801)이 출력된다(도 4d의 첫 번째 그림). 2개의 하위 노드 값 중 오른쪽 하위 노드의 값이 더 작으므로 입력 스케줄링 정보 "7"은 오른쪽 경로를 선택한다. 입력된 스케줄링 정보의 마감시간 값 "7"과, 레벨 2 하위 노드의 점유노드 카운터(806, 807)가 모두 2이므로 오른쪽 노드의 마감시간 값 "5"(808)와 비교하고(813), "5"의 마감시간 값(811)이 더 적으므로 서로 치환한다(도 4d의 두 번째 그림). 그리고 레벨 2 오른쪽 노드로 내려온 마감시간 값(810) "7"과 레벨 3 하위 왼쪽 노드의 점유노드 카운터(819)만 "1"이므로 왼쪽 노드의 마감시간 값(817) "6"과 비교하고 "6"의 마감시간 값(817)이 더 적으므로 서로 치환한다(816, 817)(도 4d의 세 번째 그림). 스케줄링 입력정보 "7"은 레벨 3의 왼쪽 노드(818)에 저장된다. 이 동작에서 각 노드의 점유노드 카운터가 변하지 않는다(809, 815, 819).(도 4d의 네 번째 그림)
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
이상에 설명한 바와 같이, 본 발명에 의한 힙 데이터 정렬방식을 이용한 최근 기한 우선순위 스케줄러는 각 패킷 세그먼트들의 마감시간을 이용해 정렬을 수행하므로 지연에 민감한 서비스에 대해 QoS보장을 제공한다. 또한 힙 관리기를 이용함으로서 쉽게 스케줄러의 포트 수나 클래스 수, 플로우 수들을 확장할 수 있다. 그리고 파이프라인 방식으로 스케줄러의 하드웨어 구현이 용이하여 스케줄링 성능이 극대화될 수 있다.

Claims (9)

  1. 패킷 세그먼트들에 대한 스케줄링 입력정보의 지연 경계값과 서비스(출력) 대기 중인 패킷 세그먼트의 수를 저장하는 패킷 세그먼트 메모리;
    상기 스케줄링 입력정보의 플로우 식별자를 이용하여 상기 메모리에 대한 억세스를 수행하고, 상기 패킷 세그먼트를 바로 전송 처리할 것인지 상기 메모리에 대기하게 할 것인지를 결정하는 스케줄러 제어기;
    상기 스케줄러 제어기로부터 상기 패킷 세그먼트들의 도착시간과 서비스 시간을 입력받아 상기 패킷 세그먼트들의 마감시간을 계산하는 패킷 세그먼트 마감시간 가산기;
    상기 마감시간을 반영하여 상기 패킷 세그먼트의 스케출링 출력정보를 머지(merge)하는 패킷 세그먼트 데이터 머지부; 및
    상기 머지부로부터 상기 스케줄링 출력정보를 전송받아 상기 마감시간을 기준으로 상기 패킷 세그먼트들을 최근 기한 우선순위로 정렬하여 전송 처리하는 힙 관리기를 포함함을 특징으로 하는 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치.
  2. 삭제
  3. 제 1 항에 있어서, 상기 패킷 세그먼트들은 현재 입력되는 패킷 세그먼트(이하 '입력 패킷 세그먼트')와 처리 대기중인 패킷 세그먼트(이하 '대기 패킷 세그먼트')를 포함하며, 상기 마감시간은 상기 입력 패킷 세그먼트와 대기 패킷 세그먼트에 대하여 동시에 계산됨을 특징으로 하는 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치.
  4. 제 3 항에 있어서, 상기 마감시간은 PCR(Peak Cell Rate) 트래픽 파라미터 값을 이용하여 계산됨을 특징으로 하는 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치.
  5. 제 3 항 또는 제 4 항에 있어서, 상기 힙 관리기에 의한 정렬은 파이프라인 방식으로 구현됨을 특징으로 하는 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치.
  6. 제 3 항의 장치를 이용하여,
    (a)상기 스케줄러 제어기로 상기 패킷 세그먼트들에 대한 스케줄링 정보가 입력되는 단계;
    (b)상기 패킷 세그먼트 메모리에 상기 패킷 세그먼트의 서비스 시간이 저장되는 단계;
    (c)상기 스케줄러 제어기가 상기 대기 패킷 세그먼트의 존재 여부를 판별하는 단계;
    (d)상기 대기 패킷 세그먼트가 존재하는 경우, 상기 입력 패킷 세그먼트들을 상기 패킷 세그먼트 메모리에 대기하게 하고, 상기 스케줄러 제어기가 상기 대기 패킷 세그먼트의 스케줄링 정보를 처리하는 단계; 및
    (e) 상기 대기 패킷 세그먼트가 존재하지 않는 경우, 상기 입력 패킷 세그먼트들을 상기 메모리의 억세스 없이 직접 처리하는 단계를 포함함을 특징으로 하는 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 방법.
  7. 제 6 항에 있어서, 상기 (d) 단계는
    (d1)상기 패킷 세그먼트 메모리로부터 상기 대기 패킷 세그먼트의 서비스 시간을 독출하는 단계;
    (d2)상기 서비스 시간과 상기 대기 패킷 세그먼트의 스케줄링 출력정보가 상기 스케줄러 제어기에 도착한 시간을 더해 상기 대기중인 패킷 세그먼트의 마감시간을 계산하는 단계; 및
    (d3)상기 대기 패킷 세그먼트가 상기 힙 관리기에 삽입되며, 상기 힙 관리기가 상기 삽입된 세그먼트를 상기 마감시간을 기준으로 정렬하여 최소 마감시간 값을 갖는 세그먼트를 우선적으로 전송 처리하는 단계를 포함함을 특징으로 하는 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 방법.
  8. 제 6 항에 있어서, 상기 (e) 단계는
    (e1)상기 스케줄링 입력정보가 상기 스케줄러 제어기에 도착한 도착시간과 상기 입력 패킷 세그먼트의 스케줄링 정보의 서비스 시간을 더해 상기 입력 패킷 세그먼트의 마감시간을 계산하는 단계;
    (e2)상기 마감시간이 스케줄링 출력정보의 서비스 필드에 지정되어 상기 입력 패킷 세그먼트가 상기 힙 관리기에 입력되는 단계; 및
    (e3)상기 힙 관리기가 상기 입력 패킷 세그먼트를 상기 마감시간을 기준으로 정렬하여 최소 마감시간 값을 갖는 세그먼트를 우선 전송 처리하는 단계를 포함함을 특징으로 하는 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 방법.
  9. 제 6 항 내지 제 8 항 중 어느 한 항에 있어서, 상기 마감시간은 PCR(Peak Cell Rate) 트래픽 파라미터 값을 이용하여 계산됨을 특징으로 하는 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 방법.
KR1020030081110A 2003-11-17 2003-11-17 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그방법 KR100550010B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030081110A KR100550010B1 (ko) 2003-11-17 2003-11-17 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030081110A KR100550010B1 (ko) 2003-11-17 2003-11-17 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그방법

Publications (2)

Publication Number Publication Date
KR20050047303A KR20050047303A (ko) 2005-05-20
KR100550010B1 true KR100550010B1 (ko) 2006-02-08

Family

ID=37246328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030081110A KR100550010B1 (ko) 2003-11-17 2003-11-17 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그방법

Country Status (1)

Country Link
KR (1) KR100550010B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3217614B1 (en) 2016-03-09 2018-09-19 Mitsubishi Electric R&D Centre Europe B.V. Multiplexing method for scheduled frames in an ethernet switch

Also Published As

Publication number Publication date
KR20050047303A (ko) 2005-05-20

Similar Documents

Publication Publication Date Title
JP3386117B2 (ja) マルチレイヤクラス識別通信装置と通信装置
US7042883B2 (en) Pipeline scheduler with fairness and minimum bandwidth guarantee
US6259699B1 (en) System architecture for and method of processing packets and/or cells in a common switch
US7061865B2 (en) Data packet scheduler
US7321594B2 (en) Router apparatus provided with output port circuit including storage unit, and method of controlling output port circuit of router apparatus
US20020167955A1 (en) Packet transfer device and packet transfer method adaptive to a large number of input ports
EP1093266A2 (en) Telecommunications switches and methods for their operation
US20110019544A1 (en) Systems for scheduling the transmission of data in a network device
JP2002543669A (ja) 経路設定装置
JP2002185501A (ja) ネットワーク間中継装置及び該中継装置における転送スケジューリング方法
KR20040000336A (ko) 패킷 전송 장치와 그 방법, 트래픽 컨디셔너, 우선 제어기구 및 패킷 셰이퍼
JP4163044B2 (ja) 帯域制御方法およびその帯域制御装置
JP2010258844A (ja) 通信システム
JP3623420B2 (ja) トラヒック制御方法
US8072885B2 (en) Traffic shaping circuit, terminal device and network node
JP3906231B2 (ja) パケット転送装置
KR100550010B1 (ko) 힙 데이터 정렬을 이용한 패킷 전송 스케줄링 장치 및 그방법
US20080267074A1 (en) METHOD OF SETING QoS PACKET FLOW AND HANDLING QoS PACKET IN PACKET SWITCHING SYSTEM
Jiang Granular differentiated queueing services for QoS: structure and cost model
KR101587379B1 (ko) 큐 사이즈의 동적 제어 방법 및 이를 수행하는 장치
Cisco Configuring Quality of Service
Asaduzzaman et al. The Eight Class of Service Model-An Improvement over the Five Classes of Service
JP4118824B2 (ja) 優先パケットの遅延を最小化するシェーピング装置
JPH11298523A (ja) パケット・スケジューリング方法
KR100453825B1 (ko) Ip망에서 큐오에스 제공을 위한 자원 관리 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090202

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee