KR102412289B1 - 병렬 스케줄링 방법 및 장치 - Google Patents

병렬 스케줄링 방법 및 장치 Download PDF

Info

Publication number
KR102412289B1
KR102412289B1 KR1020170170955A KR20170170955A KR102412289B1 KR 102412289 B1 KR102412289 B1 KR 102412289B1 KR 1020170170955 A KR1020170170955 A KR 1020170170955A KR 20170170955 A KR20170170955 A KR 20170170955A KR 102412289 B1 KR102412289 B1 KR 102412289B1
Authority
KR
South Korea
Prior art keywords
scheduling
information
request information
backward
parallel
Prior art date
Application number
KR1020170170955A
Other languages
English (en)
Other versions
KR20190070449A (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 KR1020170170955A priority Critical patent/KR102412289B1/ko
Priority to US16/122,200 priority patent/US10805224B2/en
Publication of KR20190070449A publication Critical patent/KR20190070449A/ko
Application granted granted Critical
Publication of KR102412289B1 publication Critical patent/KR102412289B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3063Pipelined operation

Abstract

본 발명에 따른 병렬 스케줄링 장치는, 스케줄링을 위한 제1 요청 정보를 생성하는 정보관리부, 상기 제1 요청 정보에 기초하여 제1 스케줄링을 수행한 후 제1 매칭 정보를 생성하는 제1 스케줄링부, 및 상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여 제2 스케줄링을 수행하는 제2 스케줄링부를 포함할 수 있다. 본 발명에 따른 병렬 스케줄링은 하드웨어 구현이 용이하고, 낮은 입력 트래픽에서의 저지연 및 각 VOQ간 전송 공정성을 보장할 수 있다.

Description

병렬 스케줄링 방법 및 장치 {PARALLEL SCEDULING METHOD AND APPARATUS}
본 발명은 병렬 스케줄링 방법 및 장치에 관한 것으로서, 특히 패킷 및 광 스위치 등의 분야에 적용할 수 있는 병렬 처리 스케줄링에 관한 것이다.
패킷 및 광 스위치의 입력 데이터가 충돌 없이 출력으로 전송되기 위해서는 입출력에 대한 스케줄링이 필수적이다. 스위칭을 위한 스케줄링 알고리즘은 높은 처리율, 낮은 지연, 각 VOQ (Virtual Output Que) 간 공정성을 제공할 수 있어야 한다. 또한 스케줄링 알고리즘의 구현 복잡도가 높으면 스케줄링 시간이 길어져 스위치의 속도와 성능에 제약을 가져오므로 하드웨어 구현이 용이해야 한다. 기존의 iSLIP (Iterative Round-Robin with SLIP) 또는 DRRM (Dual Round-Robin Matching)과 같은 대표적인 최대 매칭 알고리즘 (Maximal Matching Algorithm)은 높은 성능을 제공하면서 하드웨어 구현이 용이하여 패킷 스위칭을 위한 알고리즘으로 널리 사용되고 있다. 특히 요청-허가 두 단계(2-phase)로 동작하는 DRRM 방식은 iSLIP보다 하드웨어 구현이 용이하고 단순하여 대용량 단일 스위치 구현에 더 적합한 알고리즘으로 고려되고 있다.
한편, 패킷 스위칭을 위한 타임 슬롯 또는 셀 크기가 작아지면서 타임 슬롯의 크기가 수십 나노 내지 수백 나노(ns)대로 매우 짧아지고 있다. 따라서 하나의 타임 슬롯 이내에 스케줄링을 완료하는 기존 스케줄링 알고리즘은 수십~수백 나노 이내에 스케줄링을 완료해야 한다. 스위치의 크기가 커질수록 스케줄링하는 입출력 노드가 증가하므로 스케줄링 시간은 증가하며, 스케줄링 정보를 송수신하기 위한 라운드-트립 타임(round-trip time: RTT) 지연까지 고려한다면 하나의 타임 슬롯 이내에 이 모든 스케줄링 절차가 완료되어야 하는 제약이 발생한다.
이러한 문제를 해결하기 위하여, 다양한 파이프 라인 방식(pipelined)의 병렬(parallel) 처리 스케줄링 방법들이 제안되었다. 그러나 기존 병렬 처리 스케줄링 방식은 구현이 단순한 반면 낮은 입력 트래픽에서 지연 증가와 각 VOQ간 공정성 보장이 어렵거나, 성능은 향상되었으나 구현 복잡도가 높다는 단점이 있었다.
본 발명은, 종래에 비해 구현 복잡도가 낮고 저지연 및 각 VOQ간 전송 공정성을 보장할 수 있는 병렬 스케줄링 방법 및 장치를 제공함으로써, 망 자원을 효율적으로 사용하고 망 성능을 높이는데 주된 목적이 있다.
또한, 본 발명은, 두 단계의 병렬 처리 스케줄러를 위한 VOQ 정보 업데이트 방법 및 출력의 할당 정보를 다음 이터레이션(iteration)의 요청에 반영하는 grant-aware 스케줄링에 적용할 수 있는 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 병렬 스케줄링 장치는, 스케줄링을 위한 제1 요청 정보를 생성하는 정보관리부, 상기 제1 요청 정보에 기초하여 제1 스케줄링을 수행한 후 제1 매칭 정보를 생성하는 제1 스케줄링부, 및 상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여 제2 스케줄링을 수행하는 제2 스케줄링부를 포함할 수 있다.
상기 제2 스케줄링부는 (k-1)개의 할당부를 포함하고, 상기 제2 스케줄링은 상기 (k-1)개의 할당부 중 선택된 하나의 할당부에 의해 수행될 수 있다.
상기 제2 스케줄링을 수행하기 위하여 선택된 상기 하나의 할당부는, 상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여, 상기 제1 스케줄링부에 의해 이미 스케줄링이 완료된 적어도 하나의 입력과 적어도 하나의 출력이 제외된 제2 요청정보를 생성할 수 있고, 선택된 상기 하나의 할당부는 상기 제2 요청정보에 기초하여 상기 제2 스케줄링을 수행할 수 있다.
상기 정보관리부는, 상기 제1 스케줄링부에서 생성되는 제1 백워드 정보 및/또는 상기 제2 스케줄링부에서 생성되는 제2 백워드 정보에 기초하여 가상 출력 큐(Virtual Output Que) 상태 정보를 업데이트 할 수 있다.
상기 제1 백워드 정보는 제1 스케줄링 결과 스케줄링에 성공하지 못한 입력들의 가상 출력 큐(Virtual Output Que) 상태 정보 중 제2 스케줄링의 대상이 되지 않는 VOQ 상태 정보”일 수 있고, 상기 제2 백워드 정보는 제2 스케줄링 결과 스케줄링되지 못한 입력들의 가상 출력 큐(Virtual Output Que) 상태 정보일 수 있다.
상기 제2 스케줄링을 수행하기 위하여 선택된 상기 하나의 할당부는, 스케줄링을 완료한 후 최종적인 매칭 결과를 나타내는 그랜트 정보 및 상기 제2 스케줄링을 수행한 정보를 상기 정보관리부로 전달하고, 상기 정보관리부는, 상기 제1 요청 정보와 상기 제1 백워드 정보에 기초하여 가상 출력 큐(Virtual Output Que) 상태 정보를 업데이트할 수 있다.
본 발명의 일 실시예에 따른 병렬 스케줄링 방법은, 스케줄링을 위한 제1 요청 정보를 생성하는 단계, 상기 제1 요청 정보에 기초하여 제1 스케줄링을 수행한 후 제1 매칭 정보를 생성하는 제1 스케줄링 단계, 및 상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여 제2 스케줄링을 수행하는 제2 스케줄링 단계를 포함할 수 있다.
상기 제2 스케줄링 단계는, (k-1)개의 할당부를 포함하는 제2 스케줄링부에 의해 수행되고, 상기 제2 스케줄링은, 상기 (k-1)개의 할당부 중 선택된 하나의 할당부에 의해 수행될 수 있다.
또한, 상기 제2 스케줄링 단계는, 상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여, 상기 제1 스케줄링 단계에 의해 이미 스케줄링이 완료된 적어도 하나의 입력과 적어도 하나의 출력이 제외된 제2 요청 정보를 생성할 수 있다.
또한, 상기 제2 스케줄링 단계는, 상기 제2 요청 정보에 기초하여 상기 제2 스케줄링을 수행한 후 제2 매칭 정보를 생성할 수 있다.
또한, 상기 제1 스케줄링 단계에서 생성되는 제1 백워드 정보 및/또는 상기 제2 스케줄링 단계에서 생성되는 제2 백워드 정보에 기초하여 가상 출력 큐(Virtual Output Que) 상태 정보를 업데이트 할 수 있다.
또한, 상기 제2 스케줄링 단계는, 스케줄링이 완료된 후 제2 스케줄링 결과를 기반으로 백워드 정보 및 상기 제1 스케줄링과 제2 스케줄링 결과를 나타내는 그랜트 정보를 생성하는 단계를 포함할 수 있고, 본 발명의 일 실시예에 따른 병렬 스케줄링 방법은, 상기 제1 요청 정보, 제1 백워드 정보 및/또는 상기 제2 백워드 정보에 기초하여 가상 출력 큐(Virtual Output Que) 상태 정보를 업데이트 하는 단계를 포함할 수 있다.
본 발명에 따른 병렬 스케줄링은 종래 기술에 비해 스케줄링 성능을 향상시키고, 구현 복잡도가 낮은 장점이 있다. 또한, 본 발명은 낮은 입력 트래픽에서의 저지연 및 각 VOQ간 전송 공정성을 보장할 수 있으며, 기존 멀티-이터레이션을 수행하는 모든 스케줄링 알고리즘에 적용이 가능하다는 장점을 갖는다. 또한, 본 발명은 파이프라인 기반의 병렬 처리를 제공함으로써 광 스위치와 같이 RTT 타임이 길거나, 매우 짧은 타임 슬롯 또는 셀 크기를 갖는 패킷 스위치에서 효율적인 스케줄링을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 병렬 스케줄링 장치를 나타내는 블록도이다.
도 2는 본 발명에 따른 병렬 스케줄링 방법의 일 예를 설명하기 위한 흐름도이다.
도 3은 본 발명에 따른 병렬 스케줄링 장치의 구체적인 동작의 일 예를 설명하기 위한 도면이다.
도 4는 본 발명에 따른 병렬 스케줄링 장치의 정보 관리부에 의한 VOQ 정보 업데이트 과정을 나타내는 도면이다.
도 5는 본 발명에 따른 병렬 스케줄링 장치의 제1 스케줄링부의 동작을 설명하기 위한 흐름도이다.
도 6은 본 발명에 따른 병렬 스케줄링 장치의 제2 스케줄링부의 각 할당부의 동작을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예들을 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명에 따른 병렬 처리 스케줄링은, (1) 두 가지 타입의 서브 스케줄러를 기반으로 하는 구조 및 운용 방법, (2) 스케줄링 방법 및 절차, (3) 가상 출력 큐(VOQ: Virtual Output Que) 정보의 처리 및 업데이트 방법, (4) 서브 스케줄러간 교환되는 정보 및 그 교환 절차, 및 (5) 그랜트-인지(Grant-aware) 스케줄링 알고리즘 적용 방법으로 분류될 수 있다.
먼저, 두 가지 타입의 서브 스케줄러를 기반으로 하는 본 발명의 일 실시예에 따른 병렬 스케줄링 장치(100)를 설명한다. 도 1은 본 발명의 일 실시예에 따른 병렬 스케줄링 장치(100)를 나타내는 블록도이다.
도 1을 참조하면, 병렬 스케줄링 장치(100)는 정보 관리부(110), 제1 스케줄링부(130) 및 제2 스케줄링부(150)를 포함할 수 있다. 제2 스케줄링부(150)는 SA1(151), SA2(153) 내지 SAk-1(155)의 (k-1)개의 할당부를 포함할 수 있다.
정보 관리부(110)는 매 타임 슬롯 마다 수신한 모든 VOQ 상태 정보를 기반으로 모든 입력(i)와 출력(j)에 대한 스케줄링을 위한 요청 정보 Rij를 생성한다. 또한, 정보 관리부(110)는, 생성한 요청 정보 Rij와 제1 스케줄링부(130)와 각 할당부(151, 153, 155)로부터의 백워드 정보들인 Bij 및 bij에 기초하여 VOQ 상태 정보를 업데이트 하고, 스케줄링 완료 후에는 수신한 타임 슬롯 할당 정보 또는 그랜트 정보인 Gij를 기반으로 스케줄링 결과를 입력 노드들에게 전송한다.
제1 스케줄링부(130)에 의해 생성되는 제1 백워드 정보인 Bij는 제1 스케줄링 결과 스케줄링에 성공하지 못한 입력들의 가상 출력 큐(Virtual Output Que) 상태 정보 중 제2 스케줄링의 대상이 되지 않는 VOQ 상태 정보이다. 제2 스케줄링부(150)에 의해 생성되는 제2 백워드 정보인 bij는 제2 스케줄링부(150)에서의 제2 스케줄링 결과 스케줄링되지 못한 입력들의 가상 출력 큐(Virtual Output Que) 상태 정보이다.
매 타임슬롯 마다 정보 관리부(110)에 수신된 모든 노드의 VOQ 정보는 이전 VOQ정보와 현재 VOQ정보로 관리되며, 이는 각 입력 노드의 VOQ에 저장된 트래픽 양을 나타낸다. 이러한 VOQ 정보를 기반으로 정보 관리부(110)는, 스케줄링을 위하여 VOQ에 전송할 데이터가 있으면 요청 정보 Rij를 1로 설정하고, 없으면 0으로 설정한다. 요청 정보 Rij가 1인 경우, 대응하는 VOQ에서 1만큼 감소시켜 VOQ 상태를 업데이트 시키고, 설정된 요청 정보 Rij를 제1 스케줄링부(130)로 전송한다.
제1 스케줄링부(130) 및 제2 스케줄링부(150)는 전술한 두 가지 타입의 서브 스케줄러에 해당한다. 본 발명의 일 실시예에 따르면, 제1 스케줄링부(130) 및 제2 스케줄링부(150)에 의해 총 M번의 이터레이션(iteration) 과정이 나누어 수행된다.
이 때, 제2 스케줄링부(150)를 구성하는 각각의 할당부(151, 153, 155)는, 제1 스케줄링부(130)에 의한 스케줄링 시에 사용된 요청 정보 rij 및 제1 스케줄링부(130)에 의한 스케줄링 결과로 생성된 매칭 정보 Mij를 수신하여, 나머지 이터레이션을 수행함으로써 연속적인 스케줄링을 수행한다. 즉, 종래에는 하나의 스케줄러에서 수행하던 이터레이션을, 본 발명에서는 제1 스케줄링부(130) 와 제2 스케줄링부(150)가 나누어 수행한다.
도 2는 본 발명에 따른 병렬 스케줄링 장치(100)에 의해 수행되는 병렬 스케줄링 방법의 일 예를 설명하기 위한 흐름도이다. 도 2를 참조하면서, 본 발명의 일 실시예에 따른 병렬 스케줄링 방법의 개요를 다시 설명한다.
먼저, 정보 관리부(110)가 스케줄링을 위한 제1 요청 정보 Rij를 생성한 후 (S210) 상기 생성된 제1 요청 정보 Rij를 제1 스케줄링부(130)에 전달한다.
전술한 바와 같이, 정보 관리부(110)는 스케줄링을 위한 요청 정보 Rij를 생성하고, 제1 요청 정보 및 제1 스케줄링부(130)와 각 할당부(151, 153, 155)의 백워드 정보 Bij에 기초하여 VOQ 상태 정보를 업데이트 하고, 스케줄링 완료 후에는 그랜트 정보인 Gij를 기반으로 스케줄링 결과를 입력 노드들에게 전송한다.
제1 스케줄링부(130)는 상기 제1 요청 정보 Rij에 기초하여 제1 스케줄링을 수행한 후 제1 매칭 정보 Mij 및 제1 백워드 정보 Bij를 생성하고, Bij를 정보 관리부(110)로 전달하여 VOQ 상태 정보를 업데이트한다 (S230). 제1 스케줄링부(130)는 첫 번째 이터레이션을 포함한 하나의 타임 슬롯 동안 수행될 수 있는 이터레이션 횟수만큼 스케줄링 알고리즘을 수행한다. 나머지 이터레이션은 제2 스케줄링부(150)에 의해 수행된다. 따라서, 모든 타임 슬롯 할당 스케줄링 알고리즘의 첫 번째 이터레이션은 항상 제1 스케줄링부(130) 에 의해 수행된다.
제1 스케줄링부(130)는 스케줄링이 완료되면 정보 관리부(110)에게 백워드 정보 Bij를 전달하고, 매칭 정보 Mij와 스케줄링을 위해 정보 관리부(100)로부터 수신했던 요청 정보 Rij를 제2 스케줄링부(150)에게 전달한다. 백워드 정보 Bij를 수신한 정보 관리부(110)는 이를 기반으로 VOQ 상태 정보 Lij를 업데이트한다. 상태 정보 Lij는 매 타임 슬롯마다 입력 노드로부터 수신한 VOQ 상태 정보가 증가한 경우, 또는 제1 요청 정보 Rij 및 제1 스케줄링부(130)나 각 할당부(151, 153, 155)로부터 수신한 백워드 정보 Bij 또는 bij를 기반으로 업데이트된다. 정보 관리부(110)는 제 1 요청 정보 Rij를 기반으로 현재 큐 상태를 감소시키고, 제1 스케줄링부(130) 및 제2 스케줄링부(150)내의 각 할당부(151, 153 또는 155)로부터 수신한 백워드 정보 Bij 및 bij를 기반으로 현재 큐 상태를 증가시킴으로써 스케줄링 결과를 VOQ 상태에 반영하여 다음 요청 정보가 현재 VOQ 상태를 좀 더 정확하게 반영하도록 한다. 제1 스케줄링부(130)는 다음 스케줄링을 수행할 하나의 할당부(151, 153 또는 155)를 선택하기 위하여 라운드-로빈(round-robin: RR) 방식을 기반으로 순차적으로 선택한다.
다음으로, 제1 스케줄링부(130)는 요청 정보 rij 및 상기 제1 매칭 정보 Mij를 제2 스케줄링부(150)로 제공한다. 이 때, 시간 t에서의 요청 정보 rij는 시간 (t-1)에서 정보 관리부(100)로부터 제1 스케줄링부(130)로 입력된 요청 정보 Rij와 동일한 정보이다. 구현 방법에 따라, 제1 스케줄링부(130)가 요청 정보 Rij와 매칭 정보 Mij를 이용하여 제2 스케줄링부(150)가 스케줄링해야할 요청 정보를 생성하여 보내줄 수도 있다. 이 경우, rij는 Rij와 동일하지 않을 수 있다.
제2 스케줄링부(150)는 요청 정보 rij, 즉 상기 제1 요청 정보 Rij와, 상기 제1 매칭 정보 Mij에 기초하여 제2 스케줄링을 수행한다 (S250). 제2 스케줄링부(150) 내의 각 할당부(151, 153 또는 155)는, 수신한 요청 정보 rij와 제1 스케줄링부(130)의 매칭 정보 Mij를 이용하여 새로운 요청 정보를 생성하고, 제1 스케줄링부(130)의 스케줄링 결과에 이어 나머지 이터레이션을 수행한다.
이때, 각 할당부(151, 153 또는 155)는 요청 정보 rij에서 이미 매칭이 완료된 입력(i) 및 출력(j)을 모두 스케줄링 대상에서 제외시킨다. 일 실시예로, 각 할당부(151, 153 또는 155)는 매칭이 완료된 입력(i)의 모든 VOQ 상태를 0으로 만들고, 매칭이 완료된 출력(j)에 대하여 해당 정보를 0으로 업데이트 한다. 즉, 매칭된 입출력 i, j에 대하여 Ri의 값을 0으로, Rj의 값을 0으로 업데이트한다.
또한, 하나의 할당부(allocator)가 수행하는 이터레이션의 수는 구현 방법에 따라 결정될 수 있다. 여기서, 하나의 할당부라 함은 제1 스케줄링부(130), 제2 스케줄링부(150) 내의 각 할당부(151, 153 또는 155) 중 하나를 의미할 수 있다. 일 실시 예로, 하나의 할당부가 수행하는 이터레이션의 수는 총 이터레이션의 횟수 M을 할당부의 개수 k로 나눈 값이 될 수 있다.
각 할당부(151, 153 또는 155)는 스케줄링이 모두 완료되면, 제1 스케줄링부(130)로부터 전송된 매칭 정보와 자신의 매칭 정보를 통합하여 정보 관리부(110)에게 최종 그랜트(grant) 정보 Gij와 제2 백워드 정보 bij를 전달한다. 이는 하나의 실시 예로, 각 할당부(151, 153 또는 155)는 매 이터레이션이 끝날 때마다 또는 매 타임 슬롯마다 수행된 이터레이션 결과를 통합하거나, 또는 각 할당부(151, 153 또는 155)의 스케줄링이 모두 끝난 시점에서 각 할당부(151, 153 또는 155)의 백워드 정보 bij를 정보 관리부(110)에게 전달할 수 있다. 또한, 구현 방식에 따라 각 할당부(151, 153 또는 155)가 Gij를 정보 관리부(110)에게 전달하는 대신, 정보 관리부(110)에서 Mij 정보를 기반으로 Gij를 구성할 수도 있다. 또한 Rij 정보는 정보 관리부(110)에서 각 할당부(151, 153 또는 155)로 직접 전송될 수도 있다.
다음으로, 도 3을 참조하면서 제1 스케줄링부(130)와 제2 스케줄링부(150) 내의 할당부(151, 153, 155)들의 동작의 일 예를 설명한다.
도 3은 본 발명에 따른 두 단계 병렬 처리 스케줄링 장치의 구체적인 동작의 일 예를 설명하기 위한 도면이다. 본 실시예에서는, 한 타임 슬롯 동안 수행되는 이터레이션 수는 2번이고, 총 이터레이션의 횟수는 8번(M=8)이라고 가정한다. 이 때, 필요한 할당부의 개수는, 총 이터레이션의 횟수에 하나의 타임 슬롯에서 수행할 수 있는 이터레이션의 수를 나눈 값, 즉 4가 된다. 따라서, 도 3은, 제1 스케줄링부(130)와 제2 스케줄링부(150) 내의 3개의 할당부를 포함하여 총 4개의 할당부가 요구된다는 가정하에 이들 할당부들의 동작을 나타내고 있다. 즉 도면에서 k의 값은 4가 된다.
먼저, 매 타임 슬롯마다 정보 관리부(110)는 VOQ 상태 정보를 기반으로 요청 정보 Rij를 제1 스케줄링부(130)으로 전송한다. 이는 하나의 실시 예이며, 구현 방법에 따라 요청 정보 Rij는 매 타임 슬롯 마다 제1 스케줄링부(130)와 각 할당부(151, 153 또는 155)로 전송될 수 있다.
요청 정보 Rij를 수신한 제1 스케줄링부(130)는 입출력 매칭을 위한 스케줄링 알고리즘을 2번 수행한 후, 라운드-로빈 방식을 기반으로 복수의 할당부들 (151, 153 또는 155)중에서 먼저 SA1(151)을 선택한다. 제1 스케줄링부(130)는 스케줄링 완료 후 스케줄링 매칭 결과 Mij와 해당 요청 정보 rij를 SA1(151)에게 전송하고 백워드 정보 Bij를 정보 관리부(110)에게 전송한다. 제1 스케줄링부(130)는 다음 스케줄링을 위하여 입출력 정보를 리셋(reset)한 후 스케줄링을 종료한다.
다음 타임 슬롯에 제1 스케줄링부(130)는 정보 관리부(110)로부터 새로운 요구 정보 Rij를 수신하여 다음 스케줄링을 수행한다. 각 할당부(151, 153 또는 155)는 제1 스케줄링부(130)로부터 수신한 요청 정보 rij와 매칭 정보 Mij를 기반으로 이미 할당이 완료된 각 입력(i)과 출력(j)을 제외시킨 후, 이를 반영한 요청 정보를 기반으로 스케줄링을 이어 수행한다. 각 할당부(151, 153 또는 155)의 스케줄링이 완료된 후 백워드 정보 bij를 정보 관리부(110)에게 전달하여 VOQ 상태 정보에 반영하도록 한다. 이는 하나의 실시 예로, 각 할당부(151, 153 또는 155)는 나머지 이터레이션 동안 스케줄링을 수행하면서 매 이터레이션 완료 후 또는 매 타임 슬롯마다 이터레이션 완료된 할당 매칭 정보 Mij를 기반으로 백워드 정보 bij를 생성하여 정보 관리부(110)에게 전송함으로써 VOQ 상태 정보에 반영하도록 할 수 있다.
스케줄링을 완료한 각 할당부(151, 153 또는 155)는 백워드 정보 bij와 제1 스케줄링부(130)의 스케줄링 결과까지 포함한 그랜트 정보 Gij를 정보 관리부(110)에게 전송한다. 도 3에 도시된 실시예에서, t=1 시간에 SA1(151)은 매칭 정보 Mij와 요청 정보 rij를 수신하여 아직 할당 되지 않은 출력(j) 및 그랜트를 받지 못한(not-granted) 입력에 대하여 세 번째 이터레이션부터 (M-2)번째 이터레이션까지 스케줄링을 수행한다. SA1(151)은 t=4일때, 제1 스케줄링부(130)부터 개시된 스케줄링을 완료하고 백워드 정보 Bij와 그랜트 정보 Gij를 정보 관리부(110)에게 전송한다.
다음 타임 슬롯(t=1)에서 새로운 요청 정보 Rij가 제1 스케줄링부(130)로 전송되면, 제1 스케줄링부(130)는 입출력 중재기 (arbiter)에 따라 새로운 요청 정보 Rij에 대한 스케줄링을 수행하고, 매칭 정보 Mij와 요청 정보 rij를, 라운드-로빈 방식에 따라 선택된 SA2(153)에게 전송한다.
SA2(153)는 SA1(151)과 마찬가지로, 제1 스케줄링부(130)로부터 수신한 매칭 정보 Mij와 요청 정보 rij를 기반으로 나머지 이터레이션만큼 스케줄링을 수행한다. SA2(153)의 동작 및 SA3에 해당하는 SAk-1(155)의 스케줄링 방식은 SA1(151)과 동일하다. 매 타임 슬롯마다 제1 스케줄링부(130)에게 전송되는 요청 정보 Rij는 이전 타임 슬롯의 스케줄링 결과로 생성된, 제1 스케줄링부(130)와 각 할당부(151, 153 또는 155)의 백워드 정보 Bij 및 bij가 반영된 정보이다. 매칭 정보 Mij는 구현 방식에 따라 다양한 방법으로 정보 관리부(110)에게 전달될 수 있다.
도 4는 본 발명의 일 실시예에 따른, 정보 관리부(110)에 의한 VOQ 정보 업데이트 과정을 나타내는 도면이다.
정보 관리부(110)는 매 타임 슬롯 마다 각 입력 노드로부터 모든 VOQ 정보를 수신한다. 정보 관리부(110)는 수신된 VQO 정보를 기반으로 효율적인 스케줄링을 위한 VOQ 상태 정보 Lij를 구성한다. VOQ 상태 정보 Lij는, 스케줄링을 위한 큐 상태 정보인 VOQ 정보 Vij, 이를 기반으로 생성한 요청 정보 Rij 또는 스케줄링 후 생성된 백워드 정보 Bij 또는 bij에 의하여 업데이트 된다.
각 입력 노드로부터 VOQ 정보 Vij가 수신되면(S410), 정보 관리부(110)는 이전 VOQ 정보 Vij(p)와 현재 수신한 VOQ 정보 Vij(c)를 비교한다 (S420). 이전보다 VOQ 양이 증가하였는지 여부를 판단하여 (S430), 이전보다 VOQ 양이 증가 하였다면(즉, Cij>0), 정보 관리부(110)는 현재 VOQ 상태 정보 Lij에 증가량 Cij 만큼을 더하여 VOQ 상태 정보를 업데이트한다 (S440). 이전 VOQ 상태와 동일하거나 감소한 경우 현재 값을 그대로 유지한다. 업데이트 된 현재 VOQ 상태를 기반으로 제1 스케줄링부(130)에게 전달한 스케줄링 요청 정보 Rij를 생성한다 (S450). 현재 VOQ 상태 정보 Lij에서 요청 정보 Rij를 차감함으로써 VOQ의 정보는 업데이트된다 (S460). 제1 스케줄링부(130) 및 각 할당부(151, 153 또는 155)로부터 백워드 정보 Bij를 수신한 경우, 정보 관리부(110)는 현재 VOQ 상태 정보 Lij에서 백워드된 양, 즉 Bij만큼 증가시켜 VOQ 상태 정보 Lij를 업데이트 한다 (S470).
업데이트된 VOQ 상태 정보 Lij는 제1 스케줄링부(130)에게 전송될 새로운 요청 정보 Rij에 반영되며, 제1 스케줄링부(130)는 항상 매칭 정보가 반영된 요청 정보 Rij 값을 수신하여 스케줄링을 수행한다.
도 5는 본 발명의 일 실시예에 따른, 제1 스케줄링부(130)의 동작을 설명하기 위한 흐름도이다.
먼저, 제1 스케줄링부(130)는 매 타임 슬롯 마다 정보 관리부(110)으로부터 수신한 요청 정보를 기반으로, 이미 결정된 이터레이션 횟수만큼 스케줄링을 반복 수행한다 (S510). 스케줄링이 완료되면, 스케줄링을 이어서 수행할 다음 할당부를 제2 스케줄링부(150) 내의 복수의 SA들(151, 153, 155)중에서 선택한다 (S550). 다음 단계의 스케줄링을 수행할 SA는 라운드-로빈 방식을 기반으로 하나씩 순차적으로 선택될 수 있다.
제1 스케줄링부(130)는 정보 관리부(110)에게 스케줄링 백워드 정보 Bij를 전송하고, 각 할당부(151, 153 또는 155)에게 매칭 정보 Mij 및 스케줄링에 사용했던 요청 정보 rij를 전송한다 (S570). 제1 스케줄링부(130)는 요청 정보 Rij를 리셋(reset)한 후, 새로운 요청 정보 Rij를 수신한 후 스케줄링을 수행한다.
도 6은 본 발명의 일 실시예에 따른, 제2 스케줄링부(150)의 각 할당부(151, 153 또는 155)의 동작을 설명하기 위한 흐름도이다.
각 할당부(151, 153 또는 155)는 제1 스케줄링부(130)로부터 수신한 매칭 정보 Mij와 해당 요청 정보 rij를 기반으로 수행할 스케줄링 정보를 업데이트한다 (S610). 이때, 각 할당부(151, 153 또는 155)는 이미 매칭이 완료된 입력 및 출력 정보를 배제시키고, 아직 grant를 받지 못한 입력(i)과 타임 슬롯 할당이 가능한 출력(j)을 기반으로 요청 정보(rij)를 업데이트한다. 정보 업데이트를 위한 일 실시 예로, 각 할당부(151, 153 또는 155)는 이미 매칭이 완료된 입력(i)에 대한 모든 요청 정보, Rij (j=1~N, N은 스위치 크기)를 0으로 리셋한다. 또한 이미 매칭이 이미 완료된 출력(j)에 해당하는 요구 정보, Rij (i=1~N, N은 스위치 크기)를 0으로 리셋한다.
스케줄링을 위한 정보 업데이트가 완료되면, 각 할당부(151, 153 또는 155)는 나머지 스케줄링을 이터레이션 횟수 m만큼 반복 수행한다 (S620, S630). 각 할당부(151, 153 또는 155)는 스케줄링을 수행해야 할 이터레이션 횟수가 종료될 때까지 매 타임 슬롯마다 백워드 정보 bij를 정보 관리부(110)에게 전송한다 (S640). 전송된 백워드 정보 bij는 VOQ 상태 정보 Lij에 반영된다. 이는 하나의 일 실시 예이며, 구현 방법에 따라 매 이터레이션이 끝날 때마다 또는 각 할당부(151, 153 또는 155)의 스케줄링 종료 후에 백워드 정보 bij를 정보 관리부(110)에게 전송할 수 있다.
각 할당부(151, 153 또는 155)의 스케줄링이 모두 완료되면, 각 할당부(151, 153 또는 155)는 백워드 정보 bij와 스케줄링 결과에 해당하는 그랜트 정보 Gij를 정보 관리부(110)에게 전송한다 (S660).
본 발명에 따른 병렬 스케줄링 장치 및 방법은, 출력(output)의 할당 정보가 다음 이터레이션의 요청 정보에 반영되는 스케줄링 알고리즘을 포함하여, 이터레이션을 수행하는 기존 알고리즘들에 적용될 수 있다. 또한 각 타임 슬롯 할당을 위한 첫 번째 이터레이션을 제1 스케줄링부(130)에 의해 수행됨으로써 기존 병렬처리 기반 매칭 알고리즘의 오랜 지연 (long delay) 문제 및 낮은 공정성 (low fairness) 문제를 해결하면서도 제1 스케줄링부(130)와 각 할당부(151, 153 또는 155) 사이의 중복 문제를 해결하여 기존 알고리즘 보다 높은 성능을 제공할 수 있다. 또한 파이프라인 기반의 병렬 처리를 제공함으로써 광 스위치와 같이 RTT 타임이 길거나, 매우 짧은 타임 슬롯 또는 셀 크기를 갖는 패킷 스위치에서 효율적인 스케줄링을 제공할 수 있다.상술한 실시예들에서, 방법들은 일련의 단계 또는 유닛으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (20)

  1. 병렬 스케줄링 장치에 있어서,
    스케줄링을 위한 제1 요청 정보를 생성하는 정보관리부;
    상기 제1 요청 정보에 기초하여 제1 스케줄링을 수행한 후 제1 매칭 정보를 생성하고, 상기 제 1요청 정보와 상기 제 1 매칭 정보를 전송하는 제1 스케줄링부; 및
    상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여 제2 스케줄링을 수행하는 제2 스케줄링부를 포함하는 것을 특징으로 하는 병렬 스케줄링 장치.
  2. 제1항에 있어서,
    상기 제2 스케줄링부는, (k-1)개의 할당부를 포함하고,
    상기 제2 스케줄링은, 상기 (k-1)개의 할당부 중 선택된 하나의 할당부에 의해 수행되는 것을 특징으로 하는 병렬 스케줄링 장치.
  3. 제1항에 있어서,
    상기 제2 스케줄링을 수행하기 위하여 선택된 하나의 할당부는, 상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여, 상기 제1 스케줄링부에 의해 이미 스케줄링이 완료된 적어도 하나의 입력과 적어도 하나의 출력이 제외된 제2 요청정보를 생성하는 것을 특징으로 하는 병렬 스케줄링 장치.
  4. 제1항에 있어서,
    상기 제1 스케줄링부는, 상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여 제1 백워드 정보를 생성하고, 상기 제1 백워드 정보는 상기 제1 스케줄링 결과 스케줄링에 성공하지 못한 입력들의 가상 출력 큐(Virtual Output Que) 상태 정보 중 제2 스케줄링의 대상이 되지 않는 가상 출력 큐 상태 정보인 것을 특징으로 하는 병렬 스케줄링 장치.
  5. 제3항에 있어서,
    상기 제2 스케줄링을 수행하기 위하여 선택된 상기 하나의 할당부는, 상기 제2 요청정보에 기초하여 상기 제2 스케줄링을 수행하는 것을 특징으로 하는 병렬 스케줄링 장치.
  6. 제5항에 있어서,
    상기 제2 스케줄링을 수행하기 위하여 선택된 상기 하나의 할당부는, 상기 제2 요청정보에 기초하여 상기 제2 스케줄링을 수행한 후 제2 매칭 정보를 생성하는 것을 특징으로 하는 병렬 스케줄링 장치.
  7. 제6항에 있어서,
    상기 제2 스케줄링을 수행하기 위하여 선택된 상기 하나의 할당부는, 상기 제2 요청정보와 제2 매칭 정보에 기초하여, 제2 백워드 정보를 생성하고, 상기 제2 백워드 정보는 상기 제2 스케줄링 결과 스케줄링되지 못한 입력들의 가상 출력 큐 상태 정보인 것을 특징으로 하는 병렬 스케줄링 장치.
  8. 제7항에 있어서,
    상기 정보관리부는, 상기 제1 요청정보와, 제1 백워드 정보 또는 상기 제2 백워드 정보에 기초하여 가상 출력 큐(Virtual Output Que) 상태 정보를 업데이트 하는 것을 특징으로 하는 병렬 스케줄링 장치.
  9. 제7항에 있어서,
    상기 제2 스케줄링을 수행하기 위하여 선택된 상기 하나의 할당부는, 스케줄링을 완료한 후 상기 제2 백워드 정보 및 상기 제2 스케줄링을 수행한 결과를 나타내는 그랜트 정보를 상기 정보관리부로 전달하고,
    상기 정보관리부는, 상기 제2 백워드 정보에 기초하여 가상 출력 큐 상태 정보를 업데이트 하는 것을 특징으로 하는 병렬 스케줄링 장치.
  10. 제2항에 있어서,
    상기 제2 스케줄링을 수행할 하나의 할당부는 라운드-로빈 방식에 따라 선택되는 것을 특징으로 하는 병렬 스케줄링 장치.
  11. 병렬 스케줄링 장치에 의한 병렬 스케줄링 방법에 있어서,
    스케줄링을 위한 제1 요청 정보를 생성하는 단계;
    상기 제1 요청 정보에 기초하여 제1 스케줄링을 수행한 후 제1 매칭 정보를 생성하고 상기 제 1 요청 정보와 상기 제 1 매칭 정보를 전송하는 제1 스케줄링 단계; 및
    상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여 제2 스케줄링을 수행하는 제2 스케줄링 단계를 포함하는 것을 특징으로 하는 병렬 스케줄링 방법.
  12. 제11항에 있어서,
    상기 제2 스케줄링 단계는, (k-1)개의 할당부를 포함하는 제2 스케줄링부에 의해 수행되고,
    상기 제2 스케줄링은, 상기 (k-1)개의 할당부 중 선택된 하나의 할당부에 의해 수행되는 것을 특징으로 하는 병렬 스케줄링 방법.
  13. 제11항에 있어서,
    상기 제2 스케줄링 단계는, 상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여, 상기 제1 스케줄링 단계에 의해 이미 스케줄링이 완료된 적어도 하나의 입력과 적어도 하나의 출력이 제외된 제2 요청 정보를 생성하는 단계를 포함하는 것을 특징으로 하는 병렬 스케줄링 방법.
  14. 제11항에 있어서,
    상기 제1 스케줄링단계는, 상기 제1 요청 정보와 상기 제1 매칭 정보에 기초하여 제1 백워드 정보를 생성하는 단계를 포함하고, 상기 제1 백워드 정보는 제1 스케줄링 결과 스케줄링에 성공하지 못한 입력들의 가상 출력 큐(Virtual Output Que) 상태 정보 중 제2 스케줄링의 대상이 되지 않는 VOQ 상태 정보인 것을 특징으로 하는 병렬 스케줄링 방법.
  15. 제13항에 있어서,
    상기 제2 스케줄링 단계는, 상기 제2 요청 정보에 기초하여 상기 제2 스케줄링을 수행하는 것을 특징으로 하는 병렬 스케줄링 방법.
  16. 제15항에 있어서,
    상기 제2 스케줄링 단계는, 상기 제2 요청정보에 기초하여 상기 제2 스케줄링을 수행한 후 제2 매칭 정보를 생성하는 것을 특징으로 하는 병렬 스케줄링 방법.
  17. 제16항에 있어서,
    상기 제2 스케줄링 단계는, 상기 제2 요청정보와 제2 매칭 정보에 기초하여, 제2 백워드 정보를 생성하고, 상기 제2 백워드 정보는 상기 제2 스케줄링 결과 스케줄링되지 못한 입력들의 가상 출력 큐(Virtual Output Que) 상태 정보인 것을 특징으로 하는 병렬 스케줄링 방법.
  18. 제17항에 있어서,
    제1 백워드 정보 또는 상기 제2 백워드 정보에 기초하여 가상 출력 큐(Virtual Output Que) 상태 정보를 업데이트 하는 단계를 더 포함하는 것을 특징으로 하는 병렬 스케줄링 방법.
  19. 제17항에 있어서,
    상기 제2 스케줄링 단계는, 스케줄링이 완료된 후 상기 제2 백워드 정보 및 상기 제1 스케줄링 및 제2 스케줄링을 수행한 결과를 나타내는 그랜트 정보를 생성하는 단계를 포함하고,
    상기 병렬 스케줄링 방법은,
    상기 제2 백워드 정보에 기초하여 가상 출력 큐(Virtual Output Que) 상태 정보를 업데이트 하는 단계를 포함하는 것을 특징으로 하는 병렬 스케줄링 방법.
  20. 제12항에 있어서,
    상기 제2 스케줄링을 수행할 하나의 할당부는 라운드-로빈 방식에 따라 선택되는 것을 특징으로 하는 병렬 스케줄링 방법.
KR1020170170955A 2017-12-13 2017-12-13 병렬 스케줄링 방법 및 장치 KR102412289B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170170955A KR102412289B1 (ko) 2017-12-13 2017-12-13 병렬 스케줄링 방법 및 장치
US16/122,200 US10805224B2 (en) 2017-12-13 2018-09-05 Parallel scheduling method and parallel scheduling apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170170955A KR102412289B1 (ko) 2017-12-13 2017-12-13 병렬 스케줄링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190070449A KR20190070449A (ko) 2019-06-21
KR102412289B1 true KR102412289B1 (ko) 2022-06-23

Family

ID=66697443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170170955A KR102412289B1 (ko) 2017-12-13 2017-12-13 병렬 스케줄링 방법 및 장치

Country Status (2)

Country Link
US (1) US10805224B2 (ko)
KR (1) KR102412289B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002217962A (ja) 2000-12-14 2002-08-02 Lucent Technol Inc 複数の入力ポートから出力ポートにデータパケットをスケジューリングする方法
US20160127810A1 (en) 2014-11-01 2016-05-05 Chin-Tau Lea Asa: a scalable optical switch

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813274B1 (en) * 2000-03-21 2004-11-02 Cisco Technology, Inc. Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently
KR100429904B1 (ko) 2002-05-18 2004-05-03 한국전자통신연구원 차등화된 QoS 서비스를 제공하는 라우터 및 그것의고속 IP 패킷 분류 방법
KR100468946B1 (ko) 2002-12-20 2005-02-02 한국전자통신연구원 간단한 파이프라인 방식을 이용한 입력 버퍼형 스위치 및그 경합 방법
US20070133585A1 (en) 2005-12-08 2007-06-14 International Business Machines Corporation Method and device for scheduling interconnections in an interconnecting fabric
KR100884746B1 (ko) 2007-04-24 2009-02-20 한국전자통신연구원 맞춤형 QoS를 제공하는 QoS 패킷 플로우 설정 및 QoS 패킷 처리방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002217962A (ja) 2000-12-14 2002-08-02 Lucent Technol Inc 複数の入力ポートから出力ポートにデータパケットをスケジューリングする方法
US20160127810A1 (en) 2014-11-01 2016-05-05 Chin-Tau Lea Asa: a scalable optical switch

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박찬성 외 4명. 네트워크 스케줄링 알고리즘의 병렬 처리 동향. 2017년 6월

Also Published As

Publication number Publication date
US10805224B2 (en) 2020-10-13
KR20190070449A (ko) 2019-06-21
US20190182173A1 (en) 2019-06-13

Similar Documents

Publication Publication Date Title
KR102199278B1 (ko) 가속 자원 처리 방법 및 장치, 및 네트워크 기능 가상화 시스템
Balman et al. A flexible reservation algorithm for advance network provisioning
KR101380452B1 (ko) 버퍼리스 온칩 네트워크의 전력 소모 감소를 위한 목적지 기반 크레딧 흐름 제어 방법 및 장치
US20160094413A1 (en) Network Resource Governance in Multi-Tenant Datacenters
US10592451B2 (en) Memory access optimization for an I/O adapter in a processor complex
US10193969B2 (en) Parallel processing system, method, and storage medium
Wang et al. SEE: Scheduling early exit for mobile DNN inference during service outage
Lu et al. Optimizing deadline-driven bulk-data transfer to revitalize spectrum fragments in EONs
US8929216B2 (en) Packet scheduling method and apparatus based on fair bandwidth allocation
Kogan et al. FIFO queueing policies for packets with heterogeneous processing
Li et al. In-advance path reservation for file transfers in e-science applications
US9367351B1 (en) Profiling input/output behavioral characteristics in distributed infrastructure
Xiang et al. Differentiated latency in data center networks with erasure coded files through traffic engineering
US11388110B2 (en) Centralized scheduling apparatus and method considering non-uniform traffic
KR102412289B1 (ko) 병렬 스케줄링 방법 및 장치
Kogan et al. Online scheduling FIFO policies with admission and push-out
CN107113323A (zh) 一种数据存储方法、装置和系统
Tkachova et al. A load balancing algorithm for SDN
Yun et al. Transport-support workflow composition and optimization for big data movement in high-performance networks
Kiefer et al. Searching for tight performance bounds in feed-forward networks
US20090022160A1 (en) Low-latency scheduling in large switches
US20220394362A1 (en) Methods, systems, and devices for bandwidth steering using photonic devices
Channegowda et al. Optical flyways for handling elephant flows to improve big data performance in SDN enabled Datacenters
WO2016082581A1 (zh) 一种波长路由规划方法、装置及存储介质
Colombo et al. Modeling a large data-acquisition network in a simulation framework

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