KR102269068B1 - 스위칭을 위한 스케줄링 방법 및 스케줄러 - Google Patents

스위칭을 위한 스케줄링 방법 및 스케줄러 Download PDF

Info

Publication number
KR102269068B1
KR102269068B1 KR1020170030744A KR20170030744A KR102269068B1 KR 102269068 B1 KR102269068 B1 KR 102269068B1 KR 1020170030744 A KR1020170030744 A KR 1020170030744A KR 20170030744 A KR20170030744 A KR 20170030744A KR 102269068 B1 KR102269068 B1 KR 102269068B1
Authority
KR
South Korea
Prior art keywords
time slot
transmission priority
virtual output
output queues
arbiters
Prior art date
Application number
KR1020170030744A
Other languages
English (en)
Other versions
KR20180103589A (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 KR1020170030744A priority Critical patent/KR102269068B1/ko
Priority to US15/607,931 priority patent/US10511537B2/en
Publication of KR20180103589A publication Critical patent/KR20180103589A/ko
Application granted granted Critical
Publication of KR102269068B1 publication Critical patent/KR102269068B1/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/56Queue scheduling implementing delay-aware scheduling
    • H04L47/562Attaching a time tag to queues
    • 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/6215Individual queue per QOS, rate or priority
    • 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
    • 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
    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • 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
    • 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
    • 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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/50Circuit switching systems, i.e. systems in which the path is physically permanent during the communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling

Landscapes

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

Abstract

광 스위칭 또는 패킷 스위칭을 위한 스케줄링 방법이 개시된다.
본 발명의 일실시예에 따른 스위칭을 위한 스케줄링 방법은, 스위치와 연결된 입력 노드들 중 타임 슬롯의 할당이 완료되었음을 나타내는 그랜트가 표시되지 않은 입력 노드들로부터 타임 슬롯에 대한 할당 요청을 수신하는 단계; 상기 입력 노드들이 수신한 데이터가 저장되어 있는 하나 이상의 가상 출력 큐(VOQ: Virtual Output Queue)들의 속성 정보를 수신하는 단계; 상기 가상 출력 큐들의 속성 정보 및 가상 출력 큐들의 데이터 전송에 대한 전송 우선순위를 나타내는 우선순위 테이블에 기초하여 상기 가상 출력 큐들 간의 전송 우선순위를 결정하는 단계; 상기 결정된 가상 출력 큐들에 대응되는 출력 노드들에 포함된 출력부 아비터들 중 상기 결정된 가상 출력 큐들의 전송 우선순위에 대응되는 출력부 아비터들을 이용하여 타임 슬롯이 할당될 입력 노드들을 결정하는 단계; 상기 결정된 입력 노드들에 타임 슬롯을 할당하는 단계; 및 상기 타임 슬롯의 할당이 완료된 입력 노드들 및 상기 타임 슬롯의 할당이 완료된 출력 노드들에 대하여 타임 슬롯의 할당에 이용되는 구성 요소들을 업데이트하는 단계를 포함할 수 있다.

Description

스위칭을 위한 스케줄링 방법 및 스케줄러{SCHEDULING METHOD AND SCHEDULER FOR SWITCHING}
본 발명은 광 스위칭 또는 패킷 스위칭을 함에 있어서, 타임 슬롯을 할당하기 위한 스케줄링 방법 및 스케줄러에 대한 발명이다.
하나 이상의 입력으로부터 하나 이상의 출력으로 데이터를 스위칭함에 있어서, 입력 노드로부터 스위치에 입력된 데이터가 충돌 없이 출력 노드로 출력되기 위해서는 스위치의 입력 및 출력에 대한 스케줄링이 필수적으로 요구된다. 이 때, 스케줄링 알고리즘은 높은 처리율 및 낮은 지연을 가지고, 가상 출력 큐(VOQ: Virtual Output Queue)들 각각에 대해서 공정한 전송이 이루어져야 한다.
종래의 스케줄링 알고리즘은, 단순히 무작위 또는 라운드 로빈 방식을 이용하여 타임 슬롯의 할당에 대한 요청 및 타임 슬롯을 할당을 수행하였다. 이러한 방식은 가상 출력 큐들 각각에 대한 전송의 공정성은 높지만, 가상 출력 큐의 길이 및 가상 출력 큐의 지연에 대한 정보를 고려하지 않고 스케줄링을 수행하기 때문에, 최적의 처리율 및 최적의 지연 성능을 제공하기 어렵다는 단점이 있었다. 또한, 가상 출력 큐의 길이 및 가상 출력 큐의 지연에 대한 정보를 고려하여 반복적으로 스케줄링을 수행하는 경우, 처리율 및 지연 성능은 좋아지지만, 하드웨어의 구현이 복잡해지고 특정 가상 출력 큐가 전송 기회를 얻을 수 없는 상황이 발생하는 문제점이 있었다.
이에 따라, 가상 출력 큐들에 공정한 전송 기회를 부여하면서도 처리율 및 지연 성능이 우수한 스케줄링 방법이 요청되고 있다.
본 발명은 가상 출력 큐의 속성 정보에 기초한 전송 우선순위 테이블을 이용하여 가상 출력 큐들의 전송 우선순위를 결정하고, 적어도 둘 이상의 아비터를 이용하여 스케줄링을 수행함으로써, 가상 출력 큐들의 전송 우선순위를 고려하여 타임 슬롯을 할당하는 스케줄링 방법 및 스케줄러를 제공한다.
본 발명의 일실시예에 따르면, 그랜트 표시를 이용하여 스케줄링을 수행함으로써, 가상 출력 큐들간 공정한 전송 기회를 부여하고, 스케줄링의 처리율 및 지연의 성능을 높일 수 있는 스케줄링 방법 및 스케줄러를 제공한다.
본 발명의 일실시예에 따르면, GBR 데이터를 고려하여 스케줄링을 수행함으로써, 입력 노드의 가상 출력 큐의 속성에 상관없이 우선적으로 타임 슬롯을 할당하는 스케줄링 방법 및 스케줄러를 제공한다.
본 발명의 일실시예에 따른 스위칭을 위한 스케줄링 방법은, 타임 슬롯이 할당되지 않은 입력 노드들로부터 타임 슬롯에 대한 할당 요청을 수신하는 단계; 상기 입력 노드들이 수신한 데이터가 저장되어 있는 하나 이상의 가상 출력 큐(VOQ: Virtual Output Queue)들의 속성 정보를 수신하는 단계; 상기 수신한 가상 출력 큐들의 속성 정보에 기초하여 상기 가상 출력 큐들에 저장된 데이터의 전송에 대한 상기 가상 출력 큐들의 전송 우선순위를 결정하는 단계; 입력부에서 상기 가상 출력 큐들에 대응되는 입력부 아비터들을 이용하여 전송할 가상 출력 큐를 선택하는 단계, 출력부에서 출력 아비터들을 이용하여 타임 슬롯이 할당될 입력 노드들을 결정하는 단계; 상기 결정된 입력 노드들에 타임 슬롯을 할당하는 단계; 및 상기 타임 슬롯의 할당이 완료된 입력 노드들 및 상기 타임 슬롯의 할당이 완료된 출력 노드들에 대하여 타임 슬롯의 할당에 이용되는 구성 요소들을 업데이트하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 스위칭을 위한 스케줄링 방법은, 상기 타임 슬롯을 할당 받지 못한 입력 노드들에 대한 입력부 아비터들 중 상기 결정된 전송 우선순위에 대응되는 입력부 아비터들을 이용하여 상기 저장된 데이터를 전송할 가상 출력 큐들을 결정하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 상기 저장된 데이터를 전송할 가상 출력 큐들을 결정하는 단계는, 상기 가상 출력 큐의 전송 우선순위가 최상위의 전송 우선순위인지 식별하는 단계; 및 상기 전송 우선순위가 최상위의 전송 우선순위인 경우, 상기 전송 우선순위에 대응되는 입력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 상기 라운드 로빈을 수행하는 단계는, 상기 전송 우선순위가 최상위의 전송 우선순위가 아닌 경우, 상기 전송 우선순위보다 상위의 전송 우선순위를 가지는 가상 출력 큐들이 존재하지 않으면 상기 전송 우선순위에 대응되는 입력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행할 수 있다.
본 발명의 일실시예에 따른 스위칭을 위한 스케줄링 방법은, 미리 설정된 조건에 따라 타임 슬롯의 할당 요청을 수신할 출력 노드들을 결정하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 상기 속성 정보는, 상기 가상 출력 큐의 길이 및 가상 출력 큐의 지연을 포함할 수 있다.
본 발명의 일실시예에 따른 상기 우선순위 테이블은, 상기 가상 출력 큐의 길이 및 가상 출력 큐의 지연에 기초하여 상기 가상 출력 큐들의 전송 우선순위를 나타낼 수 있다.
본 발명의 일실시예에 따른 상기 타임 슬롯이 할당될 입력 노드들을 결정하는 단계는, 상기 결정된 입력노드들의 가상 출력 큐들에 대한 전송 우선순위가 최상위의 전송 우선순위인지 식별하는 단계; 및 상기 전송 우선순위가 최상위의 전송 우선순위인 경우, 상기 전송 우선순위에 대응되는 출력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 상기 라운드 로빈을 수행하는 단계는, 상기 전송 우선순위가 최상위의 전송 우선순위가 아닌 경우, 상기 전송 우선선위보다 상위의 전송 우선순위를 가지는 입력 노드들이 존재하지 않으면 상기 전송 우선순위에 대응되는 출력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행할 수 있다.
본 발명의 일실시예에 따른 상기 구성 요소들을 업데이트하는 단계는, 상기 타임 슬롯의 할당을 완료한 출력 노드들에 상기 타임 슬롯의 할당이 완료되었음을 나타내는 그랜트를 표시하는 단계; 상기 결정된 가상 출력 큐들의 전송 우선순위에 대응되는 출력부 아비터들의 포인터 값을 저장하는 단계; 상기 타임 슬롯을 할당 받은 입력 노드들에 대한 가상 출력 큐들 중 상기 그랜트가 표시된 출력 노드들에 대응하는 가상 출력 큐들에 상기 그랜트를 표시하는 단계; 상기 타임 슬롯을 할당 받은 입력 노드들에 타임 슬롯을 할당한 출력 노드를 식별하기 위한 식별값을 표시하는 단계; 및 상기 결정된 전송 우선순위에 대응되는 입력부 아비터들의 포인터 값을 증가시키는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 상기 타임 슬롯을 할당 받지 못한 입력 노드들의 가상 출력 큐들 중 상기 그랜트가 표시된 출력 노드들에 대응되는 가상 출력 큐들을 리셋하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 스위칭을 위한 스케줄링 방법은, 모든 입력 노드들에 타임 슬롯의 할당이 완료된 경우, 타임 슬롯의 할당에 이용되는 구성 요소들을 초기화하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 스위칭을 위한 스케줄링 방벙은, 스위치와 연결된 입력 노드들 중 타임 슬롯을 할당 받지 못한 입력 노드들로부터 타임 슬롯에 대한 할당 요청을 수신하는 단계; GBR(Guaranteed Bit Rate) 데이터를 위한 타임 슬롯 및 상기 GBR 데이터에 대한 정보를 나타내는 GBR 테이블에 기초하여 상기 입력 노드들에 할당될 타임 슬롯이 GBR 데이터를 위한 타임 슬롯인지 판단하는 단계; 상기 타임 슬롯이 GBR 데이터를 위한 타임 슬롯인 경우, 상기 입력 노드들이 수신한 데이터를 저장하고 있는 하나 이상의 가상 출력 큐들 중 GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하는지 판단하는 단계; 및 상기 GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하는 경우, 상기 입력 노드들에 상기 타임 슬롯을 우선적으로 할당하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 스케줄러는, 타임 슬롯이 할당되지 않은 입력 노드들로부터 타임 슬롯에 대한 할당 요청을 수신하고, 상기 타임 슬롯을 할당 받지 못한 입력 노드들이 수신한 데이터가 저장되어 있는 하나 이상의 가상 출력 큐들의 속성 정보를 수신하고, 상기 수신한 가상 출력 큐들의 속성 정보에 기초하여 상기 가상 출력 큐들에 저장된 데이터의 전송에 대한 상기 가상 출력 큐들의 전송 우선순위를 결정하고, 상기 가상 출력 큐들에 대응되는 출력 노드들에 대한 출력부 아비터들 중 상기 결정된 가상 출력 큐들의 전송 우선순위에 대응되는 출력부 아비터들을 이용하여 타임 슬롯이 할당될 입력 노드들을 결정하고, 상기 결정된 입력 노드들에 타임 슬롯을 할당하고, 상기 타임 슬롯의 할당이 완료된 입력 노드들 및 상기 타임 슬롯의 할당이 완료된 출력 노드들에 대하여 타임 슬롯의 할당에 이용되는 구성 요소들을 업데이트할 수 있다.
본 발명의 일실시예에 따른 상기 스케줄러는, 상기 타임 슬롯을 할당 받지 못한 입력 노드들에 대한 입력부 아비터들 중 상기 결정된 전송 우선순위에 대응되는 입력부 아비터들을 이용하여 상기 저장된 데이터를 전송할 가상 출력 큐들을 결정할 수 있다.
본 발명의 일실시예에 따른 상기 스케줄러는, 상기 저장된 데이터를 전송할 가상 출력 큐들을 결정하고, 상기 가상 출력 큐의 전송 우선순위가 최상위의 전송 우선순위인지 식별하고, 상기 전송 우선순위가 최상위의 전송 우선순위인 경우, 상기 전송 우선순위에 대응되는 입력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행할 수 있다.
본 발명의 일실시예에 따른 상기 스케줄러는, 상기 전송 우선순위가 최상위의 전송 우선순위가 아닌 경우, 상기 전송 우선순위보다 상위의 전송 우선순위를 가지는 가상 출력 큐들이 존재하지 않으면 상기 전송 우선순위에 대응되는 입력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행할 수 있다.
본 발명의 일실시예에 따른 상기 스케줄러는, 미리 설정된 조건에 따라 타임 슬롯의 할당 요청을 수신할 출력 노드들을 결정할 수 있다.
본 발명의 일실시예에 따른 상기 스케줄러는, 모든 입력 노드들에 타임 슬롯의 할당이 완료된 경우, 타임 슬롯의 할당에 이용되는 구성 요소들을 초기화할 수 있다.
본 발명의 일실시예에 따른 스케줄러는, 스위치와 연결된 입력 노드들 중 타임 슬롯을 할당 받지 못한 입력 노드들로부터 타임 슬롯에 대한 할당 요청을 수신하고, GBR 데이터를 위한 타임 슬롯 및 상기 GBR 데이터에 대한 정보를 나타내는 GBR 테이블에 기초하여 상기 입력 노드들에 할당될 타임 슬롯이 GBR 데이터를 위한 타임 슬롯인지 판단하고, 상기 타임 슬롯이 GBR 데이터를 위한 타임 슬롯인 경우, 상기 입력 노드들이 수신한 데이터를 저장하고 있는 하나 이상의 가상 출력 큐들 중 GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하는지 판단하고, 상기 GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하는 경우, 상기 입력 노드들에 상기 타임 슬롯을 우선적으로 할당할 수 있다.
본 발명의 일실시예에 따르면, 가상 출력 큐의 속성 정보에 기초한 전송 우선순위 테이블을 이용하여 가상 출력 큐들의 전송 우선순위를 결정하고, 적어도 둘 이상의 아비터를 이용하여 스케줄링을 수행함으로써, 가상 출력 큐들의 전송 우선순위를 고려하여 타임 슬롯을 할당할 수 있다.
본 발명의 일실시예에 따르면, 그랜트 표시를 이용하여 스케줄링을 수행함으로써, 가상 출력 큐들간 공정한 전송 기회를 부여하고, 스케줄링의 처리율 및 지연의 성능을 높일 수 있다.
본 발명의 일실시예에 따르면, GBR 데이터를 고려하여 스케줄링을 수행함으로써, 입력 노드의 가상 출력 큐의 속성에 상관없이 우선적으로 타임 슬롯을 할당할 수 있다.
도 1은 본 발명의 일실시예에 따른 스위칭을 위한 장치들을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 스케줄링 방법의 구성도를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 가상 출력 큐들의 데이터 전송에 대한 전송 우선순위를 나타내는 우선순위 테이블이다.
도 4는 본 발명의 일실시예에 따른 타임 슬롯의 할당 과정을 나타내는 플로우 차트이다.
도 5는 본 발명의 일실시예에 따른 데이터를 전송할 가상 출력 큐들을 결정하는 과정을 나타내는 플로우 차트이다.
도 6은 본 발명의 일실시예에 따른 타임 슬롯의 할당에 이용되는 구성 요소들을 업데이트하는 과정을 나타내는 플로우 차트이다.
도 7은 본 발명의 일실시예에 따른 GBR 데이터에 대한 정보를 나타내는 GBR 테이블이다.
도 8는 본 발명의 일실시예에 따른 GBR 데이터를 고려한 타임 슬롯의 할당 과정을 나타내는 플로우 차트이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 입력부와 출력부는 구현 방법에 따라 같은 모듈 또는 분리된 모듈로 구현될 수 있으며, 스케줄러의 구현 방법에 따라 분산 스케줄러 및 중앙집중형 스케줄러에 맞는 형태로 그 기능이 분리될 수 있다.
도 1은 본 발명의 일실시예에 따른 스위칭을 위한 장치들을 도시한 도면이다.
본 발명의 일실시예에 따른 입력 노드들(101)이 수신한 데이터를 NxN 스위치(103)를 통해 출력 노드들(102)에 전송함에 있어서, 하나의 출력 노드(102)는 하나 이상의 입력 노드들(101)로부터 데이터를 수신할 수 있다. 이 때, 동일한 출력 노드(102)로 데이터를 전송하고자하는 입력 노드들(101)간의 충돌이 발생할 수 있다. 여기서, 스케줄러(100)는 동일한 출력 노드(102)로 데이터를 전송하고자 하는 입력 노드들(101)에 타임 슬롯을 할당함으로써, 데이터 전송의 처리율을 높이고, 지연을 낮출 수 있다. 이 때, 입력 노드들(101)과 출력 노드들(102)은 링크(104)를 통해 NxN 스위치(103)와 연결되며, 입력 노드들(101)과 출력 노드들(102)은 채널(105)를 통해 스케줄러와 통신할 수 있다.
도 2는 본 발명의 일실시예에 따른 스케줄링 방법의 구성도를 도시한 도면이다.
본 발명의 일실시예에 따른 스케줄러(100)는 입력(201)부에 입력 노드들(101)이 수신한 데이터 정보를 전송하고자 하는 출력 노드들(102) 별로 저장하고 있는 가상 출력 큐 정보(203), 가상 출력 큐 정보(203) 기반의 데이터 전송에 대한 전송 우선순위에 따라 운용되는 입력부 아비터들(204 내지 205), 출력 노드들(102)에 대한 타임 슬롯의 할당이 완료되었음을 나타내는 그랜트의 표시(208) 및 입력 노드들(101)에 타임 슬롯을 할당한 출력 노드들(102)을 식별할 수 있는 출력 노드 표시(210)를 포함할 수 있다. 그리고, 출력(202)부에 특정 출력 노드로 데이터를 전송하고자 하는 입력 노드들(101)간에 우선순위에 따라 타임 슬롯 할당을 결정하기 위한 출력부 우선 순위 아비터(206 내지 207)들 및 출력 노드들(102)에 대한 타임 슬롯의 할당이 완료되었음을 나타내는 그랜트의 표시(209)를 포함할 수 있다. 또한, 스케줄러(100)는 타임 슬롯을 할당함에 있어서, GBR 데이터를 고려하여 타임 슬롯을 할당할 것인지 구별할 수 있다.
본 발명의 일실시예에 따른 가상 출력 큐들(203)은 큐의 길이 및 큐의 지연에 기초하여 서로 다른 전송 우선순위를 가질 수 있다. 일례로, 가상 출력 큐들(203) 중 높은 전송 우선순위를 가지는 가상 출력 큐들은 H(high), 낮은 전송 우선순위를 가지는 가상 출력 큐들은 L(low)의 전송 우선순위를 가질 수 있다. 그리고, 전송할 데이터를 가지고 있지 않은 가상 출력 큐들은 E(empty)를 가질 수 있다.
본 발명의 일실시예에 따른 입력부 아비터들(204 내지 205)은 가상 출력 큐들(203)이 가지는 전송 우선순위에 대응될 수 있다. 보다 구체적으로는, H의 전송 우선순위를 가지는 가상 출력 큐들에 대응하여 H-입력부 아비터들(204), L의 전송 우선순위를 가지는 가상 출력 큐들에 대응하여 L-입력부 아비터들(205)이 존재할 수 있다. 입력부 아비터들은 H의 전송 우선순위를 가지는 가상 출력 큐들에 대응 하는 H-입력부 아비터들(204)부터 라운드 로빈을 수행하여 가상 출력 큐들(203) 중 데이터를 전송할 가상 출력 큐들을 결정할 수 있다.
본 발명의 일실시예에 따른 출력부 아비터들(206 내지 207)은 출력 노드들(102)에 타임 슬롯 할당을 요청한 입력 노드들(101)에 포함된 가상 출력 큐들(203)이 가지는 전송 우선순위에 대응될 수 있다. 보다 구체적으로는, H의 전송 우선순위를 가지는 가상 출력 큐들에 대응하여 H-출력부 아비터들(206), L의 전송 우선순위를 가지는 가상 출력 큐들에 대응하여 L-출력부 아비터들(207)이 존재할 수 있다. 출력부 아비터들은 H의 전송 우선순위를 가지는 가상 출력 큐들에 대응하는 H-출력부 아비터들(206)부터 라운드 로빈을 수행하여 입력 노드들(101) 중 타임 슬롯을 할당 받을 입력 노드들을 결정할 수 있다.
본 발명의 일실시예에 따른 입력 노드들(101)이 수신한 데이터 정보를 저장하고 있는 가상 출력 큐들(203)과 출력 노드들(102)은 각각 그랜트의 표시(208 내지 209)를 가질 수 있다. 그리고, 입력 노드들(101)은 출력 노드들(102) 중 입력 노드들(101)에 타임 슬롯을 할당한 출력 노드들을 식별하기 위하여 출력 노드 표시에 타임 슬롯을 할당한 출력 노드를 식별하기 위한 출력 노드 표시(210)를 가질 수 있다.
도 3은 본 발명의 일실시예에 따른 가상 출력 큐들의 데이터 전송에 대한 전송 우선순위를 나타내는 우선순위 테이블이다.
본 발명의 일실시예에 따른 가상 출력 큐들(203)의 데이터 전송에 대한 전송 우선순위를 나타내는 우선순위 테이블(300)은 가상 출력 큐들(203)의 지연 및 가상 출력 큐들(203)의 길이에 기초하여 전송 우선순위를 나타낼 수 있다. 일례로, 가상 출력 큐들(203)의 지연은 특정 임계값 a 및 b를 통해 구분될 수 있다. 보다 구체적으로, a미만의 지연, a이상 b 미만의 지연 및 b 이상의 지연으로 구분될 수 있다. 그리고, 가상 출력 큐들(203)의 길이는 특정 임계값 x 및 y를 통해 구분될 수 있다. 보다 구체적으로, x미만의 길이, x이상 y미만의 길이 및 y 이상의 길이로 구분될 수 있다 이 때, 가상 출력 큐들(203)의 지연 및 가상 출력 큐들(203)의 길이에 대한 범위의 개수 및 임계값은 변경될 수 있다.
본 발명의 가상 출력 큐들(203)의 데이터 전송에 대한 전송 우선순위는 구분된 가상 출력 큐들(203)의 지연 및 구분된 가상 출력 큐들(203)의 길이에 기초하여 결정될 수 있다. 일례로, a미만의 지연과 x 미만의 길이를 가지는 가상 출력 큐는 L의 전송 우선순위를 가지고, b이상의 지연과 y이상의 길이를 가지는 가상 출력 큐는 H의 전송 우선순위를 가질 수 있다.
도 4는 본 발명의 일실시예에 따른 타임 슬롯의 할당 과정을 나타내는 플로우 차트이다.
단계(400)에서, 스케줄러(100)는 그랜트의 표시(208)가 있는 가상 출력 큐들에 대한 입력 노드들을 제외한 나머지 입력 노드들로부터 타임 슬롯의 할당에 대한 요청을 수신할 수 있다. 그리고, 그랜트 표시(208)는 타임 슬롯의 할당이 완료되었음을 나타내는 표시일 수 있다. 즉, 단계(400)에서, 스케줄러(100)는 타임 슬롯을 할당 받지 못한 입력 노드들로부터 타임 슬롯의 할당 요청을 수신할 수 있다.
이 때, 입력 노드들로부터의 타임 슬롯 할당 요청은 모든 출력 노드들에 대한 타임 슬롯 요청이거나 또는 미리 설정된 기준에 부합하는 특정 몇몇 출력 노드들에 대한 타임 슬롯 요청일 수 있다.
단계(401)에서, 스케줄러(100)는 타임 슬롯의 할당을 요청한 입력 노드들이 수신한 데이터를 저장하고 있는 가상 출력 큐들에 대한 속성 정보를 수신할 수 있다. 이 때, 가상 출력 큐들의 속성 정보는 가상 출력 큐들의 지연 및 가상 출력 큐들의 길이에 대한 정보일 수 있다.
단계(402)에서, 스케줄러(100)는 수신한 가상 출력 큐들에 대한 속성 정보에 기초하여 가상 출력 큐들에 저장된 데이터의 전송에 대한 가상 출력 큐들의 전송 우선순위를 결정할 수 있다. 이 때, 가상 출력 큐들의 속성 정보는 큐의 길이 및 큐의 지연을 포함할 수 있다. 보다 구체적으로는, 가상 출력 큐들(203)의 큐의 길이 및 큐의 지연에 따른 전송 우선순위를 나타내는 우선순위 테이블(300)에 기초하여 타임 슬롯의 할당을 요청한 입력 노드의 가상 출력 큐들에 대한 전송 우선순위를 결정할 수 있다.
단계(403)에서, 스케줄러(100)는 전송 우선순위가 결정된 가상 출력 큐들 중 데이터를 전송할 가상 출력 큐들을 결정할 수 있다. 보다 구체적으로는, 스케줄러(100)는 가상 출력 큐들의 전송 우선순위를 식별하고, 식별한 전송 우선순위에 대응되는 입력부 아비터들(204 또는 205)을 이용하여 데이터를 전송할 가상 출력 큐들을 결정할 수 있다. 이 때, 스케줄러(100)는 단계(403)을 수행하지 않을 수 있다.
단계(404)에서, 스케줄러(100)는 입력 노드들 중 타임 슬롯을 할당할 입력 노드들을 결정할 수 있다. 보다 구체적으로는, 스케줄러(100)는 입력 노드들에 포함된 가상 출력 큐들 중 데이터를 전송하기로 결정된 가상 출력 큐들의 전송 우선순위를 식별하고, 식별한 전송 우선순위에 대응하는 출력부 아비터들(206 또는 207)을 이용하여 타임 슬롯을 할당할 입력 노드들을 결정할 수 있다.
만약, 스케줄러(100)가 단계(403)을 수행하지 않은 경우, 단계(404)에서, 스케줄러(100)는 입력 노드의 모든 가상 출력 큐들(203)에 대하여 전송 우선순위를 식별하고, 식별한 전송 우선순위에 대응하는 출력부 아비터들(206 또는 207)을 이용하여 타임 슬롯을 할당할 입력 노드들을 결정할 수 있다.
이 때, 하나의 입력 노드가 둘 이상의 출력 노드로부터 타임 슬롯 할당 요청에 대한 승인을 얻은 경우, 스케줄러(100)은 해당 입력 노드의 가상 출력 큐들에 대해 입력부 아비터들(204 내지 205)을 이용하여 데이터를 전송할 가상 출력 큐들을 결정할 수 있다. 그리고, 결정된 가상 출력 큐에 대응하는 출력 노드에 타임 슬롯 할당 승인을 받아 들인다는 의미의 억셉트를 전송할 수 있다.
단계(405)에서, 스케줄러(100)는 결정된 타임 슬롯을 할당할 입력 노드들에 타임 슬롯을 할당할 수 있다. 또한 타임 슬롯 할당이 완료된 출력 노드에 대하여 현재 출력부 아비터들(206 또는 207)의 포인터를 할당한 입력 노드 다음으로 업데이트 시킨다.
단계(406)에서, 스케줄러(100)는 할당한 타임 슬롯의 다음 타임 슬롯을 할당하기 위하여 타임 슬롯의 할당에 이용되는 구성 요소들을 업데이트할 수 있다.
단계(407)에서, 스케줄러(100)는 모든 입력 노드들(101)에 대하여 타임 슬롯의 할당이 완료되었는지 판단할 수 있다. 타임 슬롯을 할당 받지 못한 입력 노드들이 있는 경우, 스케줄러(100)는 해당 입력 노드들에 타임 슬롯을 할당하기 위하여 위의 단계들(400 내지 406)을 반복 수행할 수 있다.
단계(408)에서, 스케줄러(100)는 모든 입력 노드들(101)에 대하여 타임 슬롯의 할당이 완료되었으므로, 타임 슬롯의 할당에 이용되는 구성 요소들을 모두 초기화 할 수 있다. 이 때, 타임 슬롯의 할당에 이용되는 구성 요소들은 가상 출력 큐들의 전송 우선순위, 전송 우선순위 테이블(300), 그랜트 표시(208 내지 209) 출력 노드 표시(210), 입력부 아비터들(204 내지 205)의 포인터 및 출력부 아비터들(206 내지 207)의 포인터 등을 포함할 수 있다.
도 5는 본 발명의 일실시예에 따른 데이터를 전송할 가상 출력 큐들을 결정하는 과정을 나타내는 플로우 차트이다.
단계(500)에서, 스케줄러(100)는 가상 출력 큐들에 대한 속성 정보와 가상 출력 큐들(203)의 데이터 전송에 대한 전송 우선순위를 나타내는 우선순위 테이블(300)에 기초하여 타임 슬롯의 할당을 요청한 입력 노드에 대한 가상 출력 큐들의 전송 우선순위를 결정할 수 있다. 일례로, 우선 순위가 높은 가상 출력 큐들의 전송 우선순위를 H의 전송 우선순위로, 그리고 우선 순위가 낮은 가상 출력 큐들의 전송 우선순위를 L의 전송 우선순위로 결정할 수 있다. 또한, 전송할 데이터를 포함하고 있지 않은 가상 출력 큐들의 전송 우선순위를 E의 전송 우선순위를 결정할 수 있다. 이 때, E의 전송 우선순위를 가지는 가상 출력 큐들에 대해서는 타임 슬롯을 할당하지 않을 수 있다.
단계(501)에서, 스케줄러(100)는 전송 우선순위가 결정된 가상 출력 큐들(203) 중 최상위의 전송 우선순위를 가지는 가상 출력 큐들이 있는지 판단할 수 있다. 일례로, H의 전송 우선순위를 가지는 가상 출력 큐들이 있는지 판단할 수 있다.
단계(502)에서, 스케줄러(100)는 최상위의 우선순위를 가지는 가상 출력 큐들이 없는 경우, 2순위의 전송 우선순위를 가지는 가상 출력 큐들이 있는지 판단할 수 있다. 일례로, L의 전송 우선순위를 가지는 가상 출력 큐들이 있는지 판단할 수 있다.
단계(503)에서, 스케줄러(100)는 가상 출력 큐들(203)이 가지는 전송 우선순위에 대응하는 입력부 아비터들(204 내지 205)을 이용하여 데이터를 전송할 가상 출력 큐들을 결정할 수 있다. 일례로, 가상 출력 큐들이 H의 전송 우선순위를 가지는 경우, 스케줄러(100)는 H-입력부 아비터들(204)을 이용하여 H의 전송 우선순위를 가지는 가상 출력 큐들 중 데이터를 전송할 가상 출력 큐들을 결정할 수 있다. 보다 구체적으로는, H-입력부 아비터들(204)이 가리키는 포인터 값을 시작으로 라운드 로빈을 수행하여 데이터를 전송할 가상 출력 큐들을 결정할 수 있다.
만약, H의 전송 우선순위를 가지는 가상 출력 큐들이 존재하지 않는 경우, 스케줄러(100)는 L-입력부 아비터들(205)을 이용하여 L의 전송 우선순위를 가지는 가상 출력 큐들 중 데이터를 전송할 가상 출력 큐들을 결정할 수 있다. 보다 구체적으로는, L-입력부 아비터들(205)이 가리키는 포인터 값을 시작으로 라운드 로빈을 수행하여 데이터를 전송할 가상 출력 큐들을 결정할 수 있다.
단계(501 내지 503)는 타임 슬롯이 할당될 입력 노드를 결정하는 과정에서도 수행될 수 있다.
단계(501)에서, 스케줄러(100)는 출력 노드들(102)에 타임 슬롯의 할당을 요청한 입력 노드들(101)의 가상 출력 큐들(203) 중 최상위의 전송 우선순위를 가지는 가상 출력 큐들이 있는지 판단할 수 있다. 일례로, H의 전송 우선순위를 가지는 가상 출력 큐들이 있는지 판단할 수 있다.
단계(502)에서, 스케줄러(100)는 출력 노드들(102)에 타임 슬롯의 할당을 요청한 입력 노드들(101)의 가상 출력 큐들(203) 중 최상위의 우선순위를 가지는 가상 출력 큐들이 없는 경우, 2순위의 전송 우선순위를 가지는 가상 출력 큐들이 있는지 판단할 수 있다. 일례로, L의 전송 우선순위를 가지는 가상 출력 큐들이 있는지 판단할 수 있다.
단계(503)에서, 스케줄러(100)는 가상 출력 큐들(203)이 가지는 전송 우선순위에 대응하는 출력부 아비터들(206 내지 207)을 이용하여 데이터를 전송할 가장 출력 큐들을 결정할 수 있다. 일례로, 출력 노드(102)에 타임 슬롯을 요청한 입력 노드들(101)의 가상 출력 큐들(203)이 H의 전송 우선순위를 가지는 경우, 스케줄러(100)는 H-출력부 아비터들(206)을 이용하여 H의 전송 우선순위를 가지는 가상 출력 큐들을 포함하는 입력 노드들(101) 중 타임 슬롯이 할당될 입력 노드들을 결정할 수 있다. 보다 구체적으로는, H-출력부 아비터들(206)이 가리키는 포인터값을 시작으로 라운드 로빈을 수행하여 타임 슬롯이 할당될 입력 노드들을 결정할 수 있다.
만약, H의 전송 우선순위를 가지는 가상 출력 큐들을 포함하는 입력 노드들이 존재하지 않는 경우, 스케줄러(100)는 L-출력부 아비터들(207)을 이용하여 L의 전송 우선순위를 가지는 가상 출력 큐들을 포함하는 입력 노드들(101) 중 타임 슬롯이 할당될 입력 노드들을 결정할 수 있다. 보다 구체적으로는, L-출력부 아비터들(207)이 가리키는 포인터값을 시작으로 라운드 로빈을 수행하여 타임 슬롯이 할당될 입력 노드들을 결정할 수 있다.
도 6은 본 발명의 일실시예에 따른 타임 슬롯의 할당에 이용되는 구성 요소들을 업데이트하는 과정을 나타내는 플로우 차트이다.
단계(600)에서, 스케줄러(100)는 타임 슬롯의 할당이 완료된 출력 노드들에 대하여 타임 슬롯의 할당이 완료되었음을 나타내는 그랜트의 표시(209)를 할 수 있다.
단계(601)에서, 스케줄러(100)는 입력 노드들(101) 중 타임 슬롯을 할당할 입력 노드들을 결정하기 위해 이용한 출력부 아비터들(206 내지 207)의 포인터 값을 업데이트하고 저장할 수 있다.
단계(602)에서, 스케줄러(100)는 타임 슬롯을 할당 받은 입력 노드들의 가상 출력 큐들 중 그랜트(209)의 표시가 있는 출력 노드들에 대응하는 가상 출력 큐들에 그랜트의 표시(208)를 할 수 있다.
단계(603)에서, 스케줄러(100)는 타임 슬롯을 할당 받은 입력 노드들에 대하여 해당 입력 노드에 타임 슬롯을 할당한 출력 노드를 식별하기 위한 출력 노드 표시(210)를 할 수 있다.
단계(604)에서, 스케줄러(100)는 가상 출력 큐들(203) 중 데이터를 전송할 가상 출력 큐들을 결정하기 위해 이용한 입력부 아비터들(204 내지 205)의 포인터 값을 증가시킬 수 있다.
단계(605)에서, 스케줄러(100)는 타임 슬롯을 할당 받지 못한 입력 노드들에 대한 가상 출력 큐들 중 그랜트의 표시(208, 209)가 있는 된 출력 노드들에 대응하는 가상 출력 큐들을 모두 리셋하고, 전송 우선순위 E를 할당할 수 있다.
도 7은 본 발명의 일실시예에 따른 GBR 데이터에 대한 정보를 나타내는 GBR 테이블이다.
본 발명의 일실시예에 따른 GBR 테이블은 입력 노드 GBR 테이블 및 출력 노드 GBR 테이블로 구분될 수 있다. 입력 노드 GBR 테이블은 GBR 데이터를 위해 할당될 타임 슬롯들을 식별하기 위한 정보 및 GBR 데이터가 저장되어 있는 가상 출력 큐들을 식별하기 위한 정보를 포함할 수 있다. 일례로, 입력 노드 GBR 테이블은 GBR 데이터를 위해 할당될 타임 슬롯들의 식별 번호들 및 GBR 데이터가 저장되어 있는 가상 출력 큐들의 식별 번호들을 포함할 수 있다.
그리고, 출력 노드 GBR 테이블은 GBR 데이터를 위해 할당될 타임 슬롯들을 식별하기 위한 정보 및 GBR 데이터를 위해 할당될 타임 슬롯을 할당 받을 입력 노드들을 식별하기 위한 정보를 포함할 수 있다. 일례로, 출력 노드 GBR 테이블은 GBR 데이터를 위해 할당될 타임 슬롯들의 식별 번호들 및 GBR 데이터를 위해 할당될 타임 슬롯을 할당 받을 입력 노드들의 식별 번호들을 포함할 수 있다.
도 8는 본 발명의 일실시예에 따른 GBR 데이터를 고려한 타임 슬롯의 할당 과정을 나타내는 플로우 차트이다.
단계(800)에서, 스케줄러(100)는 그랜트의 표시(208)가 있는 가상 출력 큐들에 대한 입력 노드들을 제외한 나머지 입력 노드들로부터 타임 슬롯의 할당에 대한 요청을 수신할 수 있다. 즉, 단계(800)에서, 스케줄러(100)는 타임 슬롯을 할당 받지 못한 입력 노드들로부터 타임 슬롯의 할당 요청을 수신할 수 있다.
이 때, 입력 노드들로부터의 타임 슬롯의 할당 요청은 모든 출력 노드들에 대한 타임 슬롯 요청이거나 또는 미리 설정된 기준에 부합하는 특정 몇몇 출력 노드들에 대한 타임 슬롯 요청일 수 있다.
단계(801)에서, 스케줄러(100)는 입력 노드 GBR 테이블에 기초하여 타임 슬롯의 할당을 요청한 입력 노드들에 현재 할당하고자 하는 타임 슬롯들이 GBR 데이터를 위한 타임 슬롯들인지 판단할 수 있다. 이 때, 입력 노드들에 할당하고자 하는 타임 슬롯들이 GBR 데이터를 위한 타임 슬롯들이 아닌 경우, 스케줄러(100)는 단계(401 내지 410)를 수행할 수 있다.
단계(802)에서, 스케줄러(100)는 입력 노드 GBR 테이블에 기초하여 GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하는지 판단할 수 있다. 이 때, GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하지 않는 경우, 스케줄러(100)는 단계(401 내지 410)을 수행하여, GBR을 위한 타임 슬롯을 GBR 데이터가 아닌 다른 데이터를 위해 할당할 수 있다.
단계(803)에서, 스케줄러(100)는 출력 노드 GBR 테이블에 기초하여 GBR 데이터를 위한 타임 슬롯이 현재 출력 노드에 타임 슬롯의 할당을 요청한 입력 노드에 할당될 타임 슬롯인지 판단할 수 있다. 이 때, 현재 타임 슬롯의 할당을 요청한 입력 노드가 GBR 데이터를 위한 타임 슬롯을 할당 받을 입력 노드가 아닌 경우, 스케줄러(100)는 단계(401 내지 408)을 수행하여, GBR을 위한 타임 슬롯을 GBR 데이터가 아닌 다른 데이터를 위해 할당할 수 있다.
단계(804)에서, 스케줄러(100)는 현재 할당하려는 타임 슬롯들이 GBR 데이터를 위한 타임 슬롯들이고, GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하고 있으며, 현재 타임 슬롯의 할당을 요청한 입력 노드가 GBR 데이터를 위한 타임 슬롯을 할당 받을 입력 노드인 경우, 해당 타임 슬롯들을 입력 노드들에 할당할 수 있다.
이 때, GBR 데이터를 위한 타임 슬롯들의 할당은 가상 출력 큐들의 전송 우선순위에 관계없이 우선적으로 할당될 수 있다. 그리고, 스케줄러는, GBR 데이터를 위한 타임 슬롯의 할당을 완료한 후, 다른 타임 슬롯들을 할당하기 위하여 타임 슬롯의 할당에 이용되는 구성요소들을 업데이트할 수 있다.
한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
100: 스케줄러
101: 입력 노드
102: 출력 노드
103: NxN 스위치
104: 링크
105: 채널

Claims (20)

  1. 스케줄러에서, 스위치와 연결된 입력 노드들 중 타임 슬롯이 할당되지 않은 입력 노드들로부터 타임 슬롯에 대한 할당 요청을 수신하는 단계;
    상기 입력 노드들이 수신한 데이터가 저장되어 있는 하나 이상의 가상 출력 큐(VOQ: Virtual Output Queue)들의 속성 정보를 수신하는 단계;
    상기 수신한 가상 출력 큐들의 속성 정보에 기초하여 상기 가상 출력 큐들에 저장된 데이터의 전송에 대한 상기 가상 출력 큐들의 전송 우선순위를 결정하는 단계;
    상기 가상 출력 큐들에 대응되는 출력 노드들에 대한 적어도 2개 이상의 출력부 아비터들을 이용하여 타임 슬롯이 할당될 입력 노드들을 결정하는 단계;-상기 출력부 아비터들은 라운드 로빈 아비터이며, 상기 출력부 아비터들 각각은 상기 가상 출력 큐들에 대응되는 출력 노드들에 대해 서로 다른 전송 우선 순위를 가짐-
    상기 결정된 입력 노드들에 타임 슬롯을 할당하는 단계; 및
    상기 타임 슬롯의 할당이 완료된 입력 노드들 및 상기 타임 슬롯의 할당이 완료된 출력 노드들에 대하여 타임 슬롯의 할당에 이용되는 구성 요소들을 업데이트하는 단계
    를 포함하는 스위칭을 위한 스케줄링 방법.
  2. 제1항에 있어서,
    상기 타임 슬롯을 할당 받지 못한 입력 노드들에 대한 입력부 아비터들 중 상기 결정된 전송 우선순위에 대응되는 적어도 2개 이상의 입력부 아비터들을 이용하여 상기 저장된 데이터를 전송할 가상 출력 큐들을 결정하는 단계
    를 더 포함하고,
    상기 입력부 아비터들은 라운드 로빈 아비터이며, 상기 입력부 아비터들 각각은 서로 다른 전송 우선 순위를 가지는 스위칭을 위한 스케줄링 방법.
  3. 제2항에 있어서,
    상기 저장된 데이터를 전송할 가상 출력 큐들을 결정하는 단계는,
    상기 결정된 가상 출력 큐의 전송 우선순위가 최상위의 전송 우선순위인지 식별하는 단계; 및
    상기 결정된 전송 우선순위가 최상위의 전송 우선순위인 경우, 상기 결정된 전송 우선순위에 대응되는 입력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행하는 단계
    를 포함하는 스위칭을 위한 스케줄링 방법.
  4. 제3항에 있어서,
    상기 라운드 로빈을 수행하는 단계는,
    상기 결정된 전송 우선순위가 최상위의 전송 우선순위가 아닌 경우, 상기 결정된 전송 우선순위보다 상위의 전송 우선순위를 가지는 가상 출력 큐들이 존재하지 않으면 상기 결정된 전송 우선순위에 대응되는 입력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행하는 스위칭을 위한 스케줄링 방법.
  5. 제1항에 있어서,
    미리 설정된 조건에 따라 타임 슬롯의 할당 요청을 수신할 출력 노드들을 결정하는 단계
    를 더 포함하는 스위칭을 위한 스케줄링 방법.
  6. 제1항에 있어서,
    상기 속성 정보는,
    상기 가상 출력 큐의 길이 및 가상 출력 큐의 지연을 포함하는 스위칭을 위한 스케줄링 방법.
  7. 제1항에 있어서,
    상기 전송 우선순위를 결정하는 단계는,
    상기 가상 출력 큐의 길이 및 가상 출력 큐의 지연에 기초하여 상기 가상 출력 큐들의 전송 우선순위를 나타내는 전송 우선순위 테이블에 기초하여 상기 가상 출력 큐들의 전송 우선순위를 결정하는 스위칭을 위한 스케줄링 방법.
  8. 제1항에 있어서,
    상기 타임 슬롯이 할당될 입력 노드들을 결정하는 단계는,
    상기 결정된 입력노드들의 가상 출력 큐들에 대한 상기 결정된 전송 우선순위가 최상위의 전송 우선순위인지 식별하는 단계; 및
    상기 결정된 전송 우선순위가 최상위의 전송 우선순위인 경우, 상기 결정된 전송 우선순위에 대응되는 출력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행하는 단계
    를 포함하는 스위칭을 위한 스케줄링 방법.
  9. 제8항에 있어서,
    상기 라운드 로빈을 수행하는 단계는,
    상기 결정된 전송 우선순위가 최상위의 전송 우선순위가 아닌 경우, 상기 결정된 전송 우선순위보다 상위의 전송 우선순위를 가지는 입력 노드들이 존재하지 않으면 상기 결정된 전송 우선순위에 대응되는 출력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행하는 스위칭을 위한 스케줄링 방법.
  10. 제1항에 있어서,
    상기 구성 요소들을 업데이트하는 단계는,
    상기 타임 슬롯의 할당을 완료한 출력 노드들에 상기 타임 슬롯의 할당이 완료되었음을 나타내는 그랜트를 표시하는 단계;
    상기 결정된 가상 출력 큐들의 전송 우선순위에 대응되는 출력부 아비터들의 포인터 값을 저장하는 단계;
    상기 타임 슬롯을 할당 받은 입력 노드들에 대한 가상 출력 큐들 중 상기 그랜트가 표시된 출력 노드들에 대응하는 가상 출력 큐들에 상기 그랜트를 표시하는 단계;
    상기 타임 슬롯을 할당 받은 입력 노드들에 타임 슬롯을 할당한 출력 노드를 식별하기 위한 식별값을 표시하는 단계; 및
    상기 결정된 전송 우선순위에 대응되는 입력부 아비터들의 포인터 값을 증가시키는 단계
    를 포함하는 스위칭을 위한 스케줄링 방법.
  11. 제10항에 있어서,
    상기 타임 슬롯을 할당 받지 못한 입력 노드들의 가상 출력 큐들 중 상기 그랜트가 표시된 출력 노드들에 대응되는 가상 출력 큐들을 리셋하는 단계
    를 더 포함하는 스위칭을 위한 스케줄링 방법.
  12. 제1항에 있어서,
    모든 입력 노드들에 타임 슬롯의 할당이 완료된 경우, 타임 슬롯의 할당에 이용되는 구성 요소들을 초기화하는 단계
    를 더 포함하는 스위칭을 위한 스케줄링 방법.
  13. 스위치와 연결된 입력 노드들 중 타임 슬롯을 할당 받지 못한 입력 노드들로부터 타임 슬롯에 대한 할당 요청을 수신하는 단계;
    GBR(Guaranteed Bit Rate) 데이터를 위한 타임 슬롯 및 상기 GBR 데이터에 대한 정보를 나타내는 GBR 테이블에 기초하여 상기 입력 노드들에 할당될 타임 슬롯이 GBR 데이터를 위한 타임 슬롯인지 판단하는 단계;
    상기 타임 슬롯이 GBR 데이터를 위한 타임 슬롯인 경우, 상기 입력 노드들이 수신한 데이터를 저장하고 있는 하나 이상의 가상 출력 큐들 중 GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하는지 판단하는 단계; 및
    상기 GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하는 경우, 상기 입력 노드들에 상기 타임 슬롯을 우선적으로 할당하는 단계
    를 포함하는 스위칭을 위한 스케줄링 방법.
  14. 스케줄러를 포함하는 스위칭 장치에 있어서,
    상기 스케줄러는,
    스위치와 연결된 입력 노드들 중 타임 슬롯이 할당되지 않은 입력 노드들로부터 타임 슬롯에 대한 할당 요청을 수신하고,
    상기 타임 슬롯을 할당 받지 못한 입력 노드들이 수신한 데이터가 저장되어 있는 하나 이상의 가상 출력 큐들의 속성 정보를 수신하고,
    상기 수신한 가상 출력 큐들의 속성 정보에 기초하여 상기 가상 출력 큐들에 저장된 데이터의 전송에 대한 상기 가상 출력 큐들의 전송 우선순위를 결정하고,
    상기 가상 출력 큐들에 대응되는 출력 노드들에 대한 출력부 아비터들 중 상기 결정된 가상 출력 큐들의 전송 우선순위에 대응되는 적어도 2개 이상의 출력부 아비터들을 이용하여 타임 슬롯이 할당될 입력 노드들을 결정하고,-상기 출력부 아비터들은 라운드 로빈 아비터이며, 상기 출력부 아비터들 각각은 상기 가상 출력 큐들에 대응되는 출력 노드들에 대해 서로 다른 전송 우선 순위를 가짐-
    상기 결정된 입력 노드들에 타임 슬롯을 할당하고,
    상기 타임 슬롯의 할당이 완료된 입력 노드들 및 상기 타임 슬롯의 할당이 완료된 출력 노드들에 대하여 타임 슬롯의 할당에 이용되는 구성 요소들을 업데이트하는 스위칭 장치.
  15. 제14항에 있어서,
    상기 스케줄러는,
    상기 타임 슬롯을 할당 받지 못한 입력 노드들에 대한 입력부 아비터들 중 상기 결정된 전송 우선순위에 대응되는 적어도 2개 이상의 입력부 아비터들을 이용하여 상기 저장된 데이터를 전송할 가상 출력 큐들을 결정하고,
    상기 입력부 아비터들은 라운드 로빈 아비터이며, 상기 입력부 아비터들 각각은 서로 다른 전송 우선 순위를 가지는 스위칭 장치.
  16. 제15항에 있어서,
    상기 스케줄러는,
    상기 저장된 데이터를 전송할 가상 출력 큐들을 결정하고,
    상기 결정된 가상 출력 큐의 전송 우선순위가 최상위의 전송 우선순위인지 식별하고,
    상기 결정된 전송 우선순위가 최상위의 전송 우선순위인 경우, 상기 결정된 전송 우선순위에 대응되는 입력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행하는 스위칭 장치.
  17. 제16항에 있어서,
    상기 스케줄러는,
    상기 결정된 전송 우선순위가 최상위의 전송 우선순위가 아닌 경우, 상기 결정된 전송 우선순위보다 상위의 전송 우선순위를 가지는 가상 출력 큐들이 존재하지 않으면 상기 결정된 전송 우선순위에 대응되는 입력부 아비터들이 가리키는 포인터 값부터 라운드 로빈을 수행하는 스위칭 장치.
  18. 제14항에 있어서,
    상기 스케줄러는,
    미리 설정된 조건에 따라 타임 슬롯의 할당 요청을 수신할 출력 노드들을 결정하는 스위칭 장치.
  19. 제14항에 있어서,
    상기 스케줄러는,
    모든 입력 노드들에 타임 슬롯의 할당이 완료된 경우, 타임 슬롯의 할당에 이용되는 구성 요소들을 초기화하는 스위칭 장치.
  20. 스케줄러를 포함하는 스위칭 장치에 있어서,
    상기 스케줄러는,
    스위치와 연결된 입력 노드들 중 타임 슬롯을 할당 받지 못한 입력 노드들로부터 타임 슬롯에 대한 할당 요청을 수신하고,
    GBR 데이터를 위한 타임 슬롯 및 상기 GBR 데이터에 대한 정보를 나타내는 GBR 테이블에 기초하여 상기 입력 노드들에 할당될 타임 슬롯이 GBR 데이터를 위한 타임 슬롯인지 판단하고,
    상기 타임 슬롯이 GBR 데이터를 위한 타임 슬롯인 경우, 상기 입력 노드들이 수신한 데이터를 저장하고 있는 하나 이상의 가상 출력 큐들 중 GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하는지 판단하고,
    상기 GBR 데이터를 저장하고 있는 가상 출력 큐들이 존재하는 경우, 상기 입력 노드들에 상기 타임 슬롯을 우선적으로 할당하는 스위칭 장치.
KR1020170030744A 2017-03-10 2017-03-10 스위칭을 위한 스케줄링 방법 및 스케줄러 KR102269068B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170030744A KR102269068B1 (ko) 2017-03-10 2017-03-10 스위칭을 위한 스케줄링 방법 및 스케줄러
US15/607,931 US10511537B2 (en) 2017-03-10 2017-05-30 Scheduling method and scheduler for switching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170030744A KR102269068B1 (ko) 2017-03-10 2017-03-10 스위칭을 위한 스케줄링 방법 및 스케줄러

Publications (2)

Publication Number Publication Date
KR20180103589A KR20180103589A (ko) 2018-09-19
KR102269068B1 true KR102269068B1 (ko) 2021-06-24

Family

ID=63445202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170030744A KR102269068B1 (ko) 2017-03-10 2017-03-10 스위칭을 위한 스케줄링 방법 및 스케줄러

Country Status (2)

Country Link
US (1) US10511537B2 (ko)
KR (1) KR102269068B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11109336B2 (en) * 2015-08-07 2021-08-31 Comcast Cable Communications, Llc Time allocation for network transmission
EP3541137A1 (en) * 2018-03-15 2019-09-18 Tata Consultancy Services Limited Method and system for delay aware uplink scheduling in a communication network
CN109874152A (zh) * 2019-03-07 2019-06-11 同济大学 基于优先级的体内无线纳米传感器网络mac协议方法
KR102384685B1 (ko) 2019-11-20 2022-04-11 한국전자통신연구원 비균일 트래픽을 고려한 중앙 집중형 스케줄링 장치 및 방법
KR102652395B1 (ko) * 2019-12-10 2024-03-29 한국전자통신연구원 광 네트워킹 방법 및 이를 수행하는 장치
KR20220042927A (ko) * 2020-09-28 2022-04-05 삼성전자주식회사 인공지능을 이용하여 복수의 단말들의 작업들과 관련된 복수의 패킷들을 스케줄링하는 방법 및 이를 수행하는 전자 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080175259A1 (en) * 2006-12-29 2008-07-24 Chao H Jonathan Low complexity scheduling algorithm for a buffered crossbar switch with 100% throughput

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064651A (en) * 1996-06-27 2000-05-16 Xerox Corporation Rate shaping in per-flow output queued routing mechanisms for statistical bit rate service
GB0013571D0 (en) * 2000-06-06 2000-07-26 Power X Limited Switching system
JP4186421B2 (ja) * 2001-02-23 2008-11-26 株式会社日立製作所 パケット処理装置
US7058070B2 (en) * 2001-05-01 2006-06-06 Integrated Device Technology, Inc. Back pressure control system for network switch port
US7492782B2 (en) * 2003-12-27 2009-02-17 Electronics And Telecommunications Research Institute Scalable crossbar matrix switching apparatus and distributed scheduling method thereof
US20070133585A1 (en) 2005-12-08 2007-06-14 International Business Machines Corporation Method and device for scheduling interconnections in an interconnecting fabric
US7619970B2 (en) * 2006-04-27 2009-11-17 Dune Semiconductor Ltd. Method, device and system of scheduling data transport over a fabric
JP5034491B2 (ja) * 2006-12-27 2012-09-26 株式会社日立製作所 スイッチにおける優先度帯域制御方法
US8259738B2 (en) * 2007-05-01 2012-09-04 Net Navigation Systems, Llc Channel service manager with priority queuing
KR100937218B1 (ko) 2007-12-13 2010-01-20 한국전자통신연구원 패킷 스케줄링 시스템 및 방법
KR100987388B1 (ko) 2008-07-23 2010-10-12 한국전자통신연구원 동적 타임슬롯을 가지는 캘린더 큐 스케줄링 방법 및 장치
US8352669B2 (en) * 2009-04-27 2013-01-08 Lsi Corporation Buffered crossbar switch system
US8681609B2 (en) * 2009-08-21 2014-03-25 Ted H. Szymanski Method to schedule multiple traffic flows through packet-switched routers with near-minimal queue sizes
CN103064746B (zh) * 2013-01-23 2015-08-12 上海交通大学 基于当前credit进行预测调度的处理器资源精确分配方法
GB2510345A (en) * 2013-01-30 2014-08-06 Nec Corp Sharing base station resources among plural network operators
CN104348751B (zh) * 2013-07-31 2019-03-12 中兴通讯股份有限公司 虚拟输出队列授权管理方法及装置
US10687128B2 (en) * 2015-10-07 2020-06-16 Ted H. Szymanski Reduced-complexity integrated guaranteed-rate optical packet switch

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080175259A1 (en) * 2006-12-29 2008-07-24 Chao H Jonathan Low complexity scheduling algorithm for a buffered crossbar switch with 100% throughput

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
‘Comparison between Time-slot Scheduling ,Approaches for All-Photonic Networks’, pp.1197-1201, ICICS, 2005.*

Also Published As

Publication number Publication date
US10511537B2 (en) 2019-12-17
KR20180103589A (ko) 2018-09-19
US20180262437A1 (en) 2018-09-13

Similar Documents

Publication Publication Date Title
KR102269068B1 (ko) 스위칭을 위한 스케줄링 방법 및 스케줄러
US20230004329A1 (en) Managed fetching and execution of commands from submission queues
KR101883155B1 (ko) 메모리 콘트롤러와 이 메모리 콘트롤러의 작동방법
US6914881B1 (en) Prioritized continuous-deficit round robin scheduling
US20160283283A1 (en) Scheduling method and apparatus in multiprocessing environment
US7453898B1 (en) Methods and apparatus for simultaneously scheduling multiple priorities of packets
US20070174529A1 (en) Queue manager having a multi-level arbitrator
US8819309B1 (en) Low latency bypass buffer
US9606945B2 (en) Access controller, router, access controlling method, and computer program
US20180183733A1 (en) Receive buffer architecture method and apparatus
US20130042032A1 (en) Dynamic resource allocation for transaction requests issued by initiator devices to recipient devices
CN109840145B (zh) 一种多级调度方法、装置、网络芯片及存储介质
WO2019144775A1 (zh) 一种基于tdma系统的资源调度方法及系统
US10291540B2 (en) Method and apparatus for performing a weighted queue scheduling using a set of fairness factors
US9294301B2 (en) Selecting between contending data packets to limit latency differences between sources
KR102469811B1 (ko) 서비스품질 제어를 위한 선입선출 버퍼 시스템
US9900903B1 (en) Weighted periodic scheduling of a shared resource
US9628398B1 (en) Queuing methods and apparatus in a network device
US7350208B1 (en) Method and apparatus for scheduling using a resource variable decreased by amounts corresponding to the efficiency of the resource
CN109240829B (zh) 用于交换芯片的申请、管理独占资源的方法及装置
US8386682B2 (en) Method, apparatus and system for maintaining transaction coherecy in a multiple data bus platform
US9894670B1 (en) Implementing adaptive resource allocation for network devices
CN112015527A (zh) 管理从提交队列获取和执行命令
CN113946525B (zh) 用于仲裁对共享资源的访问的系统和方法
US11429437B2 (en) System for arbitrating between multiple flows

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