KR20030057594A - Method and Apparatus for weighted round-robin scheduling in ATM layer - Google Patents
Method and Apparatus for weighted round-robin scheduling in ATM layer Download PDFInfo
- Publication number
- KR20030057594A KR20030057594A KR1020010087667A KR20010087667A KR20030057594A KR 20030057594 A KR20030057594 A KR 20030057594A KR 1020010087667 A KR1020010087667 A KR 1020010087667A KR 20010087667 A KR20010087667 A KR 20010087667A KR 20030057594 A KR20030057594 A KR 20030057594A
- Authority
- KR
- South Korea
- Prior art keywords
- queue
- weight
- memory
- pending
- register
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6225—Fixed service order, e.g. Round Robin
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 비동기전송모드 레이어(ATM Layer)에서의 웨이티드 라운드 로빈 스케쥴러(Weighted Round-Robin Scheduler)에 관한 것으로, 보다 상세하게는 가변전송속도(Variable Bit Rate. 또는 VBR) 서비스, 이용가능전송속도(Available Bit Rate, 또는 ABR) 서비스, 무지정전송속도(Unspecified Bit Rate, 또는 USR) 서비스 등 트래픽 클래스의 ATM 셀 스케쥴링에 적당하도록 한 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법 및 그 장치에 관한 것이다.The present invention relates to a weighted round-robin scheduler in an asynchronous transmission mode layer, and more particularly, to a variable bit rate (VBR) service, an available transmission rate. Weighted round robin scheduling method and apparatus for asynchronous transmission mode layer suitable for ATM cell scheduling of traffic class such as Available Bit Rate (ABR) service, Unspecified Bit Rate (USR) service, etc. It is about.
일반적으로 웨이티드 라운드 로빈 스케쥴러는 메모리내 각각의 가상 커넥션에 다른 웨이트(Weight)를 주어 한 프레임 동안 그 웨이트에 해당하는 횟수만큼 가상 커넥션의 셀들을 순차적으로 읽어 온다.In general, the weighted round robin scheduler gives a different weight to each virtual connection in memory and sequentially reads the cells of the virtual connection as many times as the weight for one frame.
만약, 모든 웨이트가 같으면 일반적인 라운드 로빈 스케쥴링에 해당하게 된다.If all weights are the same, then this corresponds to general round robin scheduling.
웨이티드 라운드 로빈 스케쥴러는 라운드 로빈 스케쥴러와는 달리, 서비스 하려고 하는 큐에 각기 다른 웨이트를 주어 서비스되는 양을 조절한다. 즉, 웨이트가 큰 큐는 웨이트가 작은 큐 보다 한 프레임내에서 보다 많은 서비스를 하게 된다.Unlike the round robin scheduler, the weighted round robin scheduler controls the amount of service by giving different weights to the queue to be served. In other words, a queue with a larger weight will serve more services in one frame than a queue with a smaller weight.
종래에는 ATM 셀 처리시 각 가상 커넥션 마다 메모리 영역을 정해 놓고 웨이티드 라운드 로빈 스케쥴링을 적용한다.Conventionally, when processing an ATM cell, a memory area is defined for each virtual connection and weighted round robin scheduling is applied.
한편, ATM 네트워크에서의 셀 처리 서비스를 분류해 보면, 고정속도(CBR) 서비스는 데이터 전송속도가 피크 셀 속도로 고정된 것이며, 가변전송속도 서비스는 데이터의 지연이나 지연변동에 대해 시간적 제약이 강하고 데이터량이 시간변동하는 애플리케이션에 대해 피크 셀 속도와 평균속도를 규정하고 피크와 평균간의 차이 부분에서는 셀 손실을 허용하도록 된 것이고, 이용가능전송속도 서비스는 지연에 대한 요구는 엄격하지 않지만 셀 손실을 허용하지 않는 애플리케이션에 해대 네트워크의 폭주 상태에 따라 단말로부터의 전송속도를 증감시키도록 된 것이며, 무지정전송속도 서비스는 네트워크의 이용상황에 따라 데이터 전송속도가 임의로 변해도 상관없는 애플리케이션을 위한 것이다.On the other hand, if the cell processing services in ATM networks are classified, the fixed rate (CBR) service has a fixed data rate at the peak cell rate, and the variable rate service has a strong time constraint on data delay or delay variation. The peak cell rate and average rate are specified for time-varying applications, and cell loss is allowed in the difference between the peak and the mean, and the available rate service allows for cell loss, although the demand for delay is not strict. It is designed to increase or decrease the transmission speed from the terminal according to the congestion status of the nautical network in the non-application.
그러나 종래기술에 따르면, 각각의 커넥션에 대해 미리 메모리 영역을 지정해 사용하게 되므로, 만일 특정한 커넥션에 트래픽이 집중되거나 트랙픽이 없는 경우 등에 있어서 메모리 사용 효율이 저하되는 단점이 있다.However, according to the related art, since a memory area is designated for each connection in advance, the memory usage efficiency is deteriorated when traffic is concentrated on a specific connection or there is no traffic.
본 발명은 상기와 같은 종래의 문제점을 해소하기 위해 창출된 것으로, 본 발명의 목적은 ATM 셀 처리 서비스시 웨이티드 라운드 로빈 방식으로 트래픽 클래스의 ATM 셀 스케쥴링을 수행하는 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법 및 그 장치를 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned conventional problems, and an object of the present invention is to provide a weighted weight in an asynchronous transmission mode layer that performs ATM cell scheduling of a traffic class in a weighted round robin method in an ATM cell processing service. A method and apparatus for round robin scheduling are provided.
상기 목적을 달성하기 위한 본 발명의 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법은, 메모리를 액티브 플로우 큐와 팬딩 플로우 큐로 구분 설정하고, 각 가상 커넥션마다 웨이트를 설정하는 단계와; 상기 메모리에 입력되는 셀이 더 이상 발생하지 않는 경우에 스케쥴러가 활성화되는 단계와; 상기 셀이 메모리로부터 읽혀져 나올 때 가상 커넥션의 웨이트가 한 프레임에서 읽혀져 나오는 셀의 개수와 같다면 해당 셀이 상기 팬딩 플로우 큐로 들어가도록 하는 단계와; 한 프레임이 모두 끝나게 되면, 상기 팬딩 플로우 큐에 저장되어 있는 모든 큐들이 액티브 플로우 큐로 이동되도록 하는 단계를 포함하는 것을 그 특징으로 한다.A weighted round robin scheduling method in an asynchronous transmission mode layer of the present invention for achieving the above object comprises the steps of setting the memory into an active flow queue and a pending flow queue, and setting the weight for each virtual connection; Activating a scheduler when a cell input to the memory no longer occurs; If the weight of the virtual connection is equal to the number of cells read in one frame when the cell is read from memory, causing the cell to enter the pending flow queue; When all of the frames are finished, it is characterized in that it comprises the step of moving all the queues stored in the pending flow queue to the active flow queue.
상기 목적을 달성하기 위한 본 발명의 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 장치는, ATM 셀의 입력시 가상 커넥션 테이블에서 가상 커넥션의 웨이트를 검사하는 테이블 검사 블록과; 각 가상 커넥션에 대한 웨이트 정보로 구성된 테이블과; 가상 커넥션의 웨이트에 따라 링크드 리스트로 연결되어 메모리상에 저장되는 ATM 셀의 리스트 구조를 형성하기 위한 어드레스 신호를 생성하는 링크드 리스트 구조 구성 블록과; 가상 커넥션의 웨이트와 링크드 리스트에따라 레지스터 블록을 제어하고 메모리의 셀 위치를 지시하는 어드레스 신호를 형성하도록 된 레지스터 컨트롤 블록과; 가상 커넥션의 웨이트에 따라 저장매체가 액티브 또는 팬딩으로 각각 동작하도록 된 레지스터 블록과; ATM 셀이 저장되는 저장수단을 포함하는 것을 그 특징으로 한다.A weighted round robin scheduling apparatus in an asynchronous transmission mode layer of the present invention for achieving the above object comprises: a table check block for checking a weight of a virtual connection in a virtual connection table upon input of an ATM cell; A table consisting of weight information for each virtual connection; A linked list structure building block for generating an address signal for forming a list structure of ATM cells stored in a memory connected to the linked list according to the weight of the virtual connection; A register control block configured to control the register block according to the weight and linked list of the virtual connection and form an address signal indicating a cell position of the memory; A register block configured to allow the storage medium to operate in an active or pending manner according to the weight of the virtual connection; Characterized in that it comprises a storage means for storing the ATM cell.
도1은 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 장치의 블록도.1 is a block diagram of a weighted round robin scheduling apparatus in an asynchronous transmission mode layer according to an embodiment of the present invention.
도2는 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법의 순서도.2 is a flow chart of a weighted round robin scheduling method in an asynchronous transmission mode layer according to an embodiment of the present invention.
도3 및 도4는 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법 중 플로우 큐 인큐 수행 절차를 보인 순서도.3 and 4 are flowcharts illustrating a flow queue enqueuing procedure among the weighted round robin scheduling methods in the asynchronous transmission mode layer according to an embodiment of the present invention.
도5 및 도6은 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법 중 플로우 큐 디큐 수행 절차를 보인 순서도.5 and 6 are flowcharts illustrating a flow queue dequeuing procedure among the weighted round robin scheduling methods in the asynchronous transmission mode layer according to an embodiment of the present invention.
도7은 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법에서 액티브 플로우 큐를 팬딩 플로우 큐로 이동시키는 과정을 보인 순서도.7 is a flowchart illustrating a process of moving an active flow queue to a pending flow queue in a weighted round robin scheduling method in an asynchronous transmission mode layer according to an embodiment of the present invention.
도8~도10은 본 발명의 실시예에 따른 플로우 큐의 인큐와 라운드 로빈 스케쥴러를 보인 블록도.8 through 10 are block diagrams illustrating an enqueue and a round robin scheduler of a flow queue according to an embodiment of the present invention.
도11~도13은 본 발명의 실시예에 따른 플로우 큐의 디큐와 라운드 로빈 스케쥴러를 보인 블록도.11-13 are block diagrams illustrating dequeue and round robin schedulers of flow queues in accordance with an embodiment of the present invention;
도14~도16은 본 발명의 실시예에 따른 플로우 큐의 이동 절차를 보인 블록도.14 to 16 are block diagrams illustrating a procedure of moving a flow queue according to an embodiment of the present invention.
도17~도19는 본 발명의 실시예에 따른 플로우 큐의 디큐와 라운드 로빈 스케쥴러를 보인 블록도.17-19 are block diagrams illustrating dequeue and round robin schedulers of flow queues in accordance with an embodiment of the present invention.
* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings
110 : VC 테이블 검사 블록120 : VC 테이블110: VC table check block 120: VC table
130 : 링크드 리스트 구조 구성 블록140 : 레지스터 컨트롤 블록130: linked list structure configuration block 140: register control block
150 : 레지스터 블록160 : 메모리150: register block 160: memory
이하, 첨부도면을 참조하여 본 발명에 따른 바람직한 실시예를 설명한다.Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings.
도1은 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 장치의 블록도이며, 도2는 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법의 순서도이고, 도3 및 도4는 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법 중 플로우 큐 인큐 수행 절차를 보인 순서도이며, 도5 및 도6은 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법 중 플로우 큐 디큐 수행 절차를 보인 순서도이고, 도7은 본 발명의 실시예에 따른 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법에서 액티브 플로우 큐를 팬딩 플로우 큐로 이동시키는 과정을 보인 순서도이며, 도8~도10은 본 발명의 실시예에 따른 플로우 큐의 인큐와 라운드 로빈 스케쥴러를 보인 블록도이고, 도11~도13은 본 발명의 실시예에 따른 플로우 큐의 디큐와 라운드 로빈 스케쥴러를 보인 블록도이며, 도14~도16은 본 발명의 실시예에 따른 플로우 큐의 이동 절차를 보인 블록도이고, 도17~도19는 본 발명의 실시예에 따른 플로우 큐의 디큐와 라운드 로빈 스케쥴러를 보인 블록도이이다.1 is a block diagram of a weighted round robin scheduling apparatus in an asynchronous transmission mode layer according to an embodiment of the present invention, and FIG. 2 is a diagram of a weighted round robin scheduling method in an asynchronous transmission mode layer according to an embodiment of the present invention. 3 and 4 are flowcharts illustrating a flow queue enqueuing procedure among the weighted round robin scheduling methods in the asynchronous transmission mode layer according to an embodiment of the present invention, and FIGS. 5 and 6 are embodiments of the present invention. 7 is a flowchart illustrating a flow queue dequeuing procedure among the weighted round robin scheduling methods in the asynchronous transmission mode layer according to the present invention. FIG. 7 is an active flow in the weighted round robin scheduling method in the asynchronous transmission mode layer according to an embodiment of the present invention. 8 is a flowchart illustrating a process of moving a queue to a pending flow queue, and FIGS. 8 to 10 are embodiments of the present invention. 11 is a block diagram illustrating a dequeue and round robin scheduler of a flow queue according to an embodiment of the present invention, and FIGS. 11 to 13 are block diagrams illustrating a dequeue and round robin scheduler of a flow queue according to an embodiment of the present invention. 17 is a block diagram illustrating a flow queue movement procedure according to an embodiment of the present invention, and FIGS. 17 to 19 are block diagrams illustrating a dequeue and a round robin scheduler of a flow queue according to an embodiment of the present invention.
도1에 따르면, 본 실시예의 적용 블록은 입력되는 ATM 셀의 입력시 VC 테이블에서 가상 커넥션의 웨이트를 검사하는 VC 테이블 검사 블록(110), 각 가상 커넥션에 대한 웨이트 정보를 포함하는 VC 테이블(120), 가상 커넥션의 웨이트에 따라 링크드 메모리상에 저장되는 ATM 셀의 리스트 구조를 형성하기 위한 어드레스 신호를 생성하는 링크드 리스트 구조 구성 블록(130), 가상 커넥션의 웨이트와 링크드 리스트에 따라 레지스터 블록을 제어하고 메모리의 셀 위치를 지시하는 어드레스 신호를 형성하도록 된 레지스터 컨트롤 블록(140), 가상 커넥션의 웨이트에 따라 복수개의 저장매체가 액티브(Active) 또는 팬딩(Pending)으로 각각 동작하도록 된 레지스터 블록(150), 및 ATM 셀이 저장되는 메모리(160)를 포함하여 이루어진다.According to FIG. 1, the application block of this embodiment includes a VC table check block 110 that checks the weight of a virtual connection in a VC table when an input ATM cell is input, and a VC table 120 including weight information for each virtual connection. ), A linked list structure construction block 130 for generating an address signal for forming a list structure of ATM cells stored on the linked memory according to the weight of the virtual connection, and controlling the register block according to the weight and the linked list of the virtual connection. And a register control block 140 configured to form an address signal indicative of a cell position of the memory, and a register block 150 in which a plurality of storage media are operated in an active or pending manner according to the weight of the virtual connection. And a memory 160 in which an ATM cell is stored.
레지스터 블록(150)은 베이스 어드레스 레지스터, 이전의 액티브 커넥션에 대한 정보를 저장하는 레지스터(PrevConA), 이전의 팬딩 커넥션에 대한 정보를 저장하는 레지스터(PrevConP), 큐 길이에 대한 정보를 보유하는 큐 길이 레지스터(Queue Length), 링크드 리스트의 구성을 위한 헤드 및 테일 레지스터(Head & Tail), 링크드 리스트의 다음 번 큐를 나타내는 레지스터(NextQ)로 구분 운용된다.The register block 150 includes a base address register, a register for storing information about a previous active connection (PrevConA), a register for storing information about a previous pending connection (PrevConP), and a queue length for holding information about a queue length. It is divided into registers (Queue Length), head and tail registers (Head & Tail) for configuring the linked list, and registers (NextQ) indicating the next queue of the linked list.
그리고 메모리(160)는 액티브 플로우 큐(Active Flow Queue)와 팬딩 플로우 큐(Pending Flow Queue)로 구분 운용된다.The memory 160 is classified into an active flow queue and a pending flow queue.
모든 가상 커넥션들은 액티브 플로우 큐에 각각의 VC 큐를 이루며, 각각 링크드 리스트(Linked-List) 구조로 입력된다. 메모리(160)를 링크드 리스트 구조로 사용함으로써 특정한 가상 커넥션에 ATM 셀이 몰리거나 비거나 했을 경우에 발생될수 있는 메모리(160)의 비효율성을 방지한다.All virtual connections form their respective VC queues in the active flow queue, and each is input in a linked-list structure. Using the memory 160 as a linked list structure prevents the inefficiency of the memory 160, which can occur when an ATM cell is crowded or vacant on a particular virtual connection.
메모리(160)에 입력되는 셀이 더 이상 발생하지 않는다면 웨이티드 라운드 로빈 스케쥴러는 인에이블 모드로 들어가게 된다. 셀이 메모리로부터 읽혀져 나올 때 가상 커넥션에 해당하는 웨이트가 한 프레임에서 읽혀져 나오는 셀의 개수와 같다면 팬딩 플로우 큐로 들어간다.If the cell input to the memory 160 no longer occurs, the weighted round robin scheduler enters the enable mode. When a cell is read from memory, if the weight corresponding to the virtual connection is equal to the number of cells read in one frame, it enters the pending flow queue.
만일 한 프레임이 모두 끝나게 되면 팬딩 플로우 큐에 링크드 리스트 구조로 저장되어 있는 모든 큐들은 다시 액티브 플로우 큐로 들어가게 된다.If one frame ends, all queues stored in the linked list structure in the pending flow queue are put back into the active flow queue.
이렇게 계속 반복하게 되면 한 프레임 동안은 특정한 가상 커넥션의 웨이트만큼만 서비스 된다.This repetition will only serve the weight of a particular virtual connection for one frame.
ATM 셀이 입력되면 가상 커넥션 테이블 검색 블록에 의해 그 입력 셀의 헤드(Head), 테일(Tail), 웨이트, 큐 길이, 다음 번 큐(NextQ) 등의 값을 읽어 온다. 여기서 헤드, 테일, 다음 번 큐(NextQ) 값은 링크드 리스트 구조 구성블록으로 입력되어 링크드 리스트 구조를 만들어 메모리에 셀을 쓴다. 그리고 가상 커넥션 테이블의 웨이트와 큐 길이 값은 레지스터 컨트롤 블록으로 입력되어 메모리로부터 읽어올 셀의 번지수를 정하게 된다.When an ATM cell is input, the virtual connection table search block reads values of the head, tail, weight, queue length, next queue, and the like of the input cell. Here, the head, tail, and nextQ values are entered into the linked list structure building block, which creates a linked list structure and writes cells to memory. The weight and queue length values of the virtual connection table are input to the register control block to determine the address of the cell to be read from the memory.
레지스터 컨트롤 블록의 동작을 보다 상세히 설명하면 다음과 같다.The operation of the register control block will be described in more detail as follows.
도2에 따르면, 신규 셀이 도착하는 경우와 그렇지 않은 경우로 나누어 동작한다. 신규 셀이 도착한 경우에는 플로우 큐 인큐 절차를 수행한다(S210, S220).According to FIG. 2, the operation is divided into a case where a new cell arrives and a case where it does not. If a new cell arrives, a flow queue enqueue procedure is performed (S210 and S220).
반면에 신규 셀이 도착하지 않는 경우에는 웨이티드 라운드 로빈 스케쥴러(이하, WRR로 약칭함)가 인에이블 되어 있는지 여부를 확인한다. WRR이 인에이블 되어 있다면 버퍼내 셀이 존재하는지 여부도 확인한다(S230, S240).On the other hand, if a new cell does not arrive, it is checked whether the weighted round robin scheduler (hereinafter, abbreviated as WRR) is enabled. If the WRR is enabled, it is also checked whether a cell in the buffer exists (S230, S240).
버퍼내 셀이 존재하는 것으로 판단되는 경우에는 WRR 스케쥴링 동작이 수행된다(S250).If it is determined that a cell in the buffer exists, the WRR scheduling operation is performed (S250).
한편, 단계 S230 또는 S240에서 부정적인 판단이 내려진 경우나 단계 S220 또는 단계 S250이 수행된 후에는 단계 S210으로 복귀하여 이후의 과정을 반복한다.On the other hand, when a negative determination is made in step S230 or S240 or after step S220 or S250 is performed, the process returns to step S210 to repeat the subsequent process.
여기서 플로우 큐 인큐 절차는 도3과 도4에 도시된 바와 같이 다음의 순서에 따른다.Here, the flow queue enqueue procedure follows the following sequence as shown in FIGS. 3 and 4.
우선, 신규 셀이 도착하게 되면 베이스 어드레스를 찾는다. 베이스 어드레스는 메모리의 포트, 가상경로식별자(VPI), 가상연결식별자(VCI) 등을 이용하여 찾을 수 있다(S31~S32).First, when a new cell arrives, the base address is found. The base address may be found using a memory port, a virtual path identifier (VPI), a virtual connection identifier (VCI), and the like (S31 to S32).
이어서 프리셀(Free Cell) 메모리를 읽어 들여 큐 길이 레지스터를 읽어 큐 길이가 '0'인지 여부를 확인한다(S33~S35).Next, the free cell memory is read and the queue length register is read to determine whether the queue length is '0' (S33 to S35).
큐 길이가 '0'이 아닌 경우, 베이스 어드레스가 '0'이면 프리셀 메모리 값을 이전 커넥션 레지스터(PrevConn Register)가 가리키는 다음 번 큐 레지스터(NextQ Register)에 쓰며, 베이스 어드레스가 '0'이 아니면 프리셀 메모리 값을 베이스 어드레스 레지스터에 쓴다(S37, S38).If the queue length is not '0', if the base address is '0', the precell memory value is written to the next queue register pointed to by the previous connection register (PrevConn Register). Write the memory value to the base address register (S37, S38).
다음에는 프리셀 메모리 값을 헤드 및 테일 레지스터에 쓰고, 가상연결식별자(VCI) 값을 이전 커넥션(PrevConn) 레지스터에 쓴 후에 프리셀 메모리를 읽는다. 한편, 단계 S35에서 큐 길이가 '0'이 아닌 경우에는 단지 프리셀 메모리만을 읽게 된다(S39~S41).Next, the precell memory value is written to the head and tail registers, and the VCI value is written to the previous connection (PrevConn) register before the precell memory is read. On the other hand, when the queue length is not '0' in step S35, only the free cell memory is read (S39 to S41).
읽혀진 프리셀 메모리 값을 ATM 셀의 테일 부분에 붙이고 테일 레지스터 값을 읽은 후, 테일 레지스터가 가리키는 셀 메모리에 ATM 셀을 쓰고 큐 길이 레지스터를 1만큼 증가시키며, 테일 레지스터를 프리셀 메모리 값으로 갱신한 후에 단계 S31로 복귀하여 처음부터의 동작을 반복한다(S42~S46).After attaching the read free cell memory value to the tail part of the ATM cell and reading the tail register value, write the ATM cell to the cell memory pointed to by the tail register, increment the queue length register by 1, and update the tail register to the free cell memory value. Returning to S31, the operation from the beginning is repeated (S42 to S46).
이상으로 플로우 큐 인큐 절차를 설명하였으며, 이어서 도5 및 도6에 따라 플로우 큐 디큐 절차를 설명한다.The flow queue enqueue procedure has been described above, and then the flow queue dequeue procedure will be described with reference to FIGS. 5 and 6.
먼저, 서브 프레임의 처음이라면 베이스 어드레스를 읽어 들여 이것이 가리키는 ATM 셀을 읽는다(S51, S52, S53).First, if the beginning of the subframe, the base address is read to read the ATM cell indicated by the base address (S51, S52, S53).
ATM 셀을 읽은 후에는 큐 길이를 1만큼 감소시키고 헤드 레지스터 값을 프리셀 메모리에 쓴다(S54~S55).After reading the ATM cell, the queue length is reduced by 1 and the head register value is written to the free cell memory (S54 to S55).
한편, 서브 프레임의 처음이 아니지만 다음 번 큐(NextQ)가 '0'이라면 단계 S51로 리턴한다(S56~S57).On the other hand, if the next queue NextQ is '0' but not at the beginning of the subframe, the process returns to step S51 (S56 to S57).
이와는 달리 서브 프레임의 처음이 아니고 다음 번 큐가 '0'이 아닌 경우, 다음 번 큐 레지스터가 가리키는 ATM 셀을 읽고 큐 길이를 1만큼 감소시킨 후 헤드 레지스터 값을 프리셀 메모리에 쓰며, 이전 커넥션의 다음 번 큐가 베이스 어드레스인지 여부를 확인한다(S58~S61).In contrast, if the first subframe is not the first and the next queue is not '0', the ATM cell pointed to by the next queue register is read, the queue length is reduced by 1, and the head register value is written to the freecell memory, and the next connection before the previous connection Check whether the queue number is the base address (S58 to S61).
이전 커넥션의 다음 번 큐가 베이스 어드레스인 경우에는 베이스 어드레스 값을 ATM 셀의 테일 부분에 있는 값으로 갱신한다(S62).If the next queue of the previous connection is the base address, the base address value is updated to a value in the tail portion of the ATM cell (S62).
베이스 어드레스 값을 ATM 셀의 테일 부분에 있는 값으로 갱신한 후, 또는 이전 커넥션의 다음 번 큐가 베이스 어드레스가 아닌 경우에는 헤드 레지스터 값을ATM 셀의 테일 부분에 있는 값으로 갱신하고 이전 커넥션의 다음 번 큐를 ATM 셀의 테일 부분에 있는 값으로 갱신한다(S63~S64).After updating the base address value to the value in the tail portion of the ATM cell, or if the next queue of the previous connection is not the base address, update the head register value to the value in the tail portion of the ATM cell and following the previous connection. The queue number 1 is updated to a value in the tail portion of the ATM cell (S63 to S64).
더불어 단계 S55에서 헤드 레지스터 값을 프리셀 메모리에 쓴 다음에는 헤드 레지스터 값을 ATM 셀의 테일 부분에 있는 값으로 갱신한 후 서브프레임카운트(SubFrameCount)와 웨이트가 같은지 여부를 판단한다. 서브프레임카운트와 웨이트가 같은 경우에는 베이스 어드레스를 현재 커넥션의 다음 번 큐로 갱신한다. 반면에 서브프레임카운트와 웨이트가 같지 않은 경우에는 베이스 어드레스를 ATM 셀의 테일 부분에 있는 값으로 갱신한다(S65~S68).In addition, after writing the head register value to the free cell memory in step S55, the head register value is updated to a value in the tail portion of the ATM cell, and then it is determined whether the subframe count and the weight are the same. If the subframe count and weight are the same, the base address is updated to the next queue of the current connection. On the other hand, when the subframe count and the weight are not the same, the base address is updated to a value in the tail portion of the ATM cell (S65 to S68).
단계 S64, S67, 또는 S68이 수행된 후에는 큐 길이가 '0'인지 여부를 확인한다(S69).After step S64, S67, or S68 is performed, it is checked whether the queue length is '0' (S69).
큐 길이가 '0'이 아닌 경우, 서프프레임카운트와 웨이트가 같지 않을 때에 이전 커넥션 레지스터에 값을 쓰고 단계 S51로 복귀하며, 서프프레임카운트와 웨이트가 같으면 이전 커넥션의 다음 번 큐를 현재 커넥션의 다음 번 큐로 바꾼 후 설정된 절차에 따라 팬딩 플로우 큐로 이동시킨 이후에 단계 S51로 복귀한다(S70~S73).If the queue length is not '0', when the subframe count and the weight are not equal, the value is written to the previous connection register and the flow returns to step S51. If the subframe count and the weight are the same, the next queue of the previous connection is moved to the next one after the current connection. After changing to the second queue, the process returns to step S51 after moving to the pending flow queue according to the set procedure (S70 to S73).
큐 길이가 '0'인 경우, ATM 셀의 테일 부분에 있는 값을 프리셀 메모리에 쓰고 이전 커넥션의 다음 번 큐를 현재 커넥션의 다음 번 큐와 바꾼 후 헤드, 테일, 큐 길이, 그리고 다음 번 큐 레지스터를 초기화한 다음 단계 S51로 복귀한다. 이 초기화는 해당 레지스터 값을 '0'으로 설정해 주는 동작이다(S74~S76).If the queue length is '0', the value in the tail portion of the ATM cell is written to freecell memory, the next queue of the previous connection is replaced with the next queue of the current connection, and then the head, tail, queue length, and next queue registers. After the initialization, the process returns to step S51. This initialization is the operation to set the register value to '0' (S74 to S76).
이상으로 플로우 큐 디큐 절차를 설명하였으며, 이하에서는 도7에 따라 액티브 플로우 큐에서 팬딩 플로우 큐로의 이동 절차를 설명한다.The flow queue dequeue procedure has been described above, and the following describes a procedure of moving from an active flow queue to a pending flow queue according to FIG. 7.
우선, 이전 커넥션의 다음 번 큐를 현재 커넥션의 다음 번 큐와 바꾼 후 현재 커넥션의 다음 번 큐를 '0'으로 설정한다. 이어서 큐의 총 길이(TotQLen)에서 큐 길이를 감산하는 연산을 통해 큐의 총 길이를 갱신한다(S71~S73).First, replace the next queue of the previous connection with the next queue of the current connection, and then set the next queue of the current connection to '0'. Subsequently, the total length of the queue is updated by subtracting the queue length from the total length of the queue (TotQLen) (S71 to S73).
팬딩 플로우 큐의 총 길이(TotQLen_Pending)가 '0'이라면, 팬딩 플로우 큐의 베이스 어드레스를 헤드로 갱신한다. 팬딩 플로우 큐의 총 길이(TotQLen_Pending)가 '0'이 아니라면, 이전의 팬딩 커넥션(PrevConn_Pend)의 다음 번 큐를 헤드로 갱신한다(S74~S76).If the total length (TotQLen_Pending) of the pending flow queue is '0', the base address of the pending flow queue is updated to the head. If the total length (TotQLen_Pending) of the pending flow queue is not '0', the next queue of the previous pending connection (PrevConn_Pend) is updated to the head (S74 to S76).
다음에는 이전 팬딩(Prev_Pending)을 현재 커넥션으로 갱신하고, 팬딩 플로우 큐의 총 길이(TotQLen_Pend)에 큐 길이를 더하여 팬딩 플로우 큐의 총 길이(TotQLen_Pend)를 갱신한다(S77~S78).Next, the previous pending (Prev_Pending) is updated to the current connection, and the total length (TotQLen_Pend) of the pending flow queue is updated by adding the queue length to the total length (TotQLen_Pend) of the pending flow queue (S77 to S78).
구체적인 예를 들어 설명하면, 도8에 도시된 바와 같이, 메모리내 액티브 플로우 큐(811)와 팬딩 플로우 큐(812)가 존재하게 되는데, 셀 입력시 도착되는 셀 들은 순차적으로 액티브 플로우 큐(811)에 저장된다. 예를 들어 w, x, y, z의 커넥션이 있고, 이 커넥션들에 대해 3, 2, 1, 2와 같이 웨이트가 설정되어 있다고 하자.For example, as shown in FIG. 8, there is an active flow queue 811 and a pending flow queue 812 in memory. Cells arriving at the cell input are sequentially displayed in the active flow queue 811. Are stored in. For example, suppose there are w, x, y, and z connections, and weights are set for these connections, such as 3, 2, 1, and 2.
도9에 따르면, 커넥션 w1에서 셀이 도착되는 경우, 프리셀 메모리의 a,b가 각각 헤드와 테일로 설정되고 큐 길이는 '1'이 되며, 다음 번 큐는 아직 존재하지 않는 상태로 가상 커넥션 테이블이 갱신된다. 그리고 액티브 플로우 큐에는 프리셀 메모리 주소 a에 해당 커넥션 w1과 테일 주소인 b가 실려 있게 된다.According to Fig. 9, when a cell arrives at connection w1, a and b of the free cell memory are set to head and tail, respectively, and the queue length is '1', and the next queue does not exist yet. Is updated. The active flow queue includes a connection w1 and a tail address b in the free cell memory address a.
이처럼 진행되어 도10에 도시된 바와 같이 커넥션 x4에서 셀이 도착되는 경우를 보면, 프리셀 메모리 주소는 q가 되고 이전 액티브 커넥션은 이전에 도착된 커넥션을 표시(여기서는 커넥션 z임) 하게 된다. 기타 위에 설명한 절차에 부합되는 상태를 보인다.In this case, when the cell arrives at connection x4 as shown in FIG. 10, the free cell memory address becomes q and the previous active connection indicates the previously arrived connection (here, connection z). Miscellaneous Shows compliance with the procedures described above.
도11은 플로우 큐 디큐 절차에 따라 액티브 플로우 큐의 셀 들이 출력되어지는 한편, 액티브 플로우 큐에서 팬딩 플로우 큐로의 이동을 보이고 있다. 도12는 액티브 플로우 큐에서 셀 들이 출력되어지고 해당 프리셀 메모리가 복귀되어지며, 큐 길이와 다음 번 큐가 갱신됨을 보이고 있다. 도13은 서브프레임카운트에 따라 커넥션 y의 셀을 액티브 플로우 큐에서 팬딩 플로우 큐로 이동시켜야 함을 보이며, 도14와 도15 및 도16은 이러한 플로우 큐 이동이 진행됨에 따라 팬딩 플로우 큐에 커넥션 x, z가 이동되고 이전 액티브 커넥션과 이전 팬딩 커넥션 레지스터 그리고 액티브 큐 길이와 팬딩 큐 길이 레지스터가 갱신됨을 보이고 있다. 이후에 도17과 같이 셀 출력을 계속하고 도18과 같이 커넥션 w까지 이동시킴으로써 모든 커넥션이 팬딩 플로우 큐로 이동된 경우에는 새로운 라운드 로빈 스케쥴러(WRR)가 시작될 때 팬딩 플로우 큐내의 모든 커넥션 큐를 액티브 플로우 큐로 이동시킴을 보이고 있다.FIG. 11 shows movement of cells from the active flow queue to the pending flow queue while the cells of the active flow queue are output according to the flow queue dequeue procedure. Fig. 12 shows that cells are output from the active flow queue, the corresponding freecell memory is returned, and the queue length and the next queue are updated. FIG. 13 shows that the cells of connection y should be moved from the active flow queue to the pending flow queue according to the subframe count, and FIGS. 14, 15 and 16 show a connection x, It is shown that z is moved and the previous active connection and previous pending connection registers and the active queue length and pending queue length registers are updated. If all connections are moved to the pending flow queue by continuing cell output as shown in Fig. 17 and moving to connection w as shown in Fig. 18, all connection queues in the pending flow queue are started when the new round robin scheduler (WRR) is started. Demonstrating the move to the queue.
이상 설명한 실시예는 본 발명의 다양한 변화, 변경 및 균등물의 범위에 속한다. 따라서 실시예에 대한 기재내용으로 본 발명이 한정되지 않는다.The embodiments described above are within the scope of various changes, modifications, and equivalents of the present invention. Therefore, the present invention is not limited to the description of the examples.
본 발명의 비동기전송모드 레이어에서의 웨이티드 라운드 로빈 스케쥴링 방법 및 그 장치에 따르면, 메모리에 ATM 셀을 쓸 때 링크드 리스트 구조를 사용해 효과적으로 메모리를 사용할 수 있게 되며, 각 가상 커넥션별로 VC 큐를 구성해 액티브 플로우 큐에 쓰고 효과적인 메모리 컨트롤을 위해 적은 레지스터를 사용해 각 큐간의 이동이 이루어지도록 할 수 있게 된다.According to the weighted round robin scheduling method and apparatus therefor in the asynchronous transmission mode layer of the present invention, a linked list structure can be effectively used when writing an ATM cell to a memory, and a VC queue is configured for each virtual connection. Writing to active flow queues allows for fewer registers to be moved between each queue for effective memory control.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010087667A KR20030057594A (en) | 2001-12-29 | 2001-12-29 | Method and Apparatus for weighted round-robin scheduling in ATM layer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010087667A KR20030057594A (en) | 2001-12-29 | 2001-12-29 | Method and Apparatus for weighted round-robin scheduling in ATM layer |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20030057594A true KR20030057594A (en) | 2003-07-07 |
Family
ID=32215368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010087667A KR20030057594A (en) | 2001-12-29 | 2001-12-29 | Method and Apparatus for weighted round-robin scheduling in ATM layer |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20030057594A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100458206B1 (en) * | 2002-11-21 | 2004-11-26 | 한국전자통신연구원 | Apparatus and method of weighted round-robin cell scheduling for ATM |
CN100359863C (en) * | 2004-12-31 | 2008-01-02 | 中兴通讯股份有限公司 | Method and apparatus for realizing weighted round-robin scheduling using pseudo-random sequence |
FR3091766A1 (en) * | 2019-01-16 | 2020-07-17 | Stmicroelectronics Sa | Arbitration system |
-
2001
- 2001-12-29 KR KR1020010087667A patent/KR20030057594A/en not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100458206B1 (en) * | 2002-11-21 | 2004-11-26 | 한국전자통신연구원 | Apparatus and method of weighted round-robin cell scheduling for ATM |
CN100359863C (en) * | 2004-12-31 | 2008-01-02 | 中兴通讯股份有限公司 | Method and apparatus for realizing weighted round-robin scheduling using pseudo-random sequence |
FR3091766A1 (en) * | 2019-01-16 | 2020-07-17 | Stmicroelectronics Sa | Arbitration system |
EP3683686A1 (en) * | 2019-01-16 | 2020-07-22 | Stmicroelectronics Sa | Arbitration device |
US11138036B2 (en) | 2019-01-16 | 2021-10-05 | Stmicroelectronics Sa | Arbitration device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5555264A (en) | Methods and devices for prioritizing in handling buffers in packet networks | |
US5889779A (en) | Scheduler utilizing dynamic schedule table | |
US6414963B1 (en) | Apparatus and method for proving multiple and simultaneous quality of service connects in a tunnel mode | |
US6483839B1 (en) | Apparatus and method for scheduling multiple and simultaneous traffic in guaranteed frame rate in ATM communication system | |
US5859835A (en) | Traffic scheduling system and method for packet-switched networks | |
EP0944208B1 (en) | Time based scheduler architecture and method for ATM networks | |
JP3434642B2 (en) | Packet scheduling device | |
US6262989B1 (en) | Apparatus and method for providing different quality of service connections in a tunnel mode | |
US7852866B2 (en) | Low complexity scheduling algorithm for a buffered crossbar switch with 100% throughput | |
JPH1127291A (en) | Method and device for extension of on-chip fifo to local memory | |
US7580355B2 (en) | Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same | |
JPH08272709A (en) | Method and scheduler for control of time for provision of service by server to entity | |
US6310875B1 (en) | Method and apparatus for port memory multicast common memory switches | |
US7675930B2 (en) | Chip circuit for combined and data compressed FIFO arbitration for a non-blocking switch | |
US20050010676A1 (en) | Time-based transmission queue for traffic management of asynchronous transfer mode virtual circuits on a multi-threaded, multi-processor system | |
Bruneel et al. | An analytical technique for the derivation of the delay performance of ATM switches with multiserver output queues | |
Kim et al. | Scalable hardware earliest-deadline-first scheduler for ATM switching networks | |
Cheng et al. | A finite buffer two class queue with different scheduling and push-out schemes | |
KR20030057594A (en) | Method and Apparatus for weighted round-robin scheduling in ATM layer | |
US6807171B1 (en) | Virtual path aggregation | |
JPH10135957A (en) | Traffic shaper device | |
US20030081611A1 (en) | QoS scheduler and method for implementing quality of service with aging time stamps | |
JPH04207543A (en) | Quality class control system in channel of atm exchange | |
EP0982967A2 (en) | Device and method of multiplexing atm cells | |
JPH10336215A (en) | Atm cell spacer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
WITN | Withdrawal due to no request for examination |