KR100716184B1 - 네트워크 프로세서에서의 큐 관리 방법 및 그 장치 - Google Patents

네트워크 프로세서에서의 큐 관리 방법 및 그 장치 Download PDF

Info

Publication number
KR100716184B1
KR100716184B1 KR20060007483A KR20060007483A KR100716184B1 KR 100716184 B1 KR100716184 B1 KR 100716184B1 KR 20060007483 A KR20060007483 A KR 20060007483A KR 20060007483 A KR20060007483 A KR 20060007483A KR 100716184 B1 KR100716184 B1 KR 100716184B1
Authority
KR
South Korea
Prior art keywords
queue
scheduler
dequeue
packet
port
Prior art date
Application number
KR20060007483A
Other languages
English (en)
Inventor
김봉철
김선기
박용석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR20060007483A priority Critical patent/KR100716184B1/ko
Priority to US11/642,855 priority patent/US20070171929A1/en
Priority to CNA2006101720950A priority patent/CN101009649A/zh
Priority to JP2007011584A priority patent/JP2007202153A/ja
Application granted granted Critical
Publication of KR100716184B1 publication Critical patent/KR100716184B1/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/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B21/00Projectors or projection-type viewers; Accessories therefor
    • G03B21/54Accessories
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16MFRAMES, CASINGS OR BEDS OF ENGINES, MACHINES OR APPARATUS, NOT SPECIFIC TO ENGINES, MACHINES OR APPARATUS PROVIDED FOR ELSEWHERE; STANDS; SUPPORTS
    • F16M13/00Other supports for positioning apparatus or articles; Means for steadying hand-held apparatus or articles
    • F16M13/02Other supports for positioning apparatus or articles; Means for steadying hand-held apparatus or articles for supporting on, or attaching to, an object, e.g. tree, gate, window-frame, cycle
    • F16M13/027Ceiling supports
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B21/00Projectors or projection-type viewers; Accessories therefor
    • G03B21/14Details
    • G03B21/145Housing details, e.g. position adjustments thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • H04N9/3141Constructional details thereof

Landscapes

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

Abstract

본 발명에 따른 네트워크 프로세서에서의 큐 관리 방법 및 그 장치는, 네트워크 프로세서에서 큐 관리부가 인큐잉 및 디큐잉을 수행하는 경우 스케쥴러에 인큐 완료 및 디큐 완료 메시지를 송신하도록 하여 큐 관리부와 스케쥴러의 큐 처리 시간을 동기시키고, 네트워크 프로세서에서 큐 관리부가 디큐잉 수행 후 디큐잉된 패킷 식별 정보로부터 추출한 패킷 사이즈 정보를 디큐 완료 메시지에 포함시켜 스케쥴러에 송신하도록 함으로써, 이를 수신한 스케쥴러가 포트 및 큐의 정확한 쿼텀을 산출하도록 할 수 있다.

Description

네트워크 프로세서에서의 큐 관리 방법 및 그 장치{APPARATUS AND METHOD FOR A QUEUE MANAGEMENT OF NETWORK PROCESSOR}
도 1은 본 발명의 일 실시예에 따른 네트워크 프로세서를 나타낸 블록도.
도 2는 본 발명의 일 실시예에 따른 큐 관리부를 나타낸 구성도.
도 3은 본 발명의 일 실시예에 따른 스케쥴러를 나타낸 구성도.
도 4는 본 발명의 일 실시예에 따른 네트워크 프로세서의 큐 관리 동작을 나타낸 신호 흐름도.
*도면의 주요 부분에 대한 부호의 설명*
100 : 네트워크 프로세서 200 : 패킷 처리부
300 : 큐 관리부 400 : 스케쥴러
500 : 패킷 송신부
본 발명은 네트워크 프로세서에서의 큐 관리 방법 및 그 장치에 관한 것이 다.
일반적으로, 인터넷(Internet)에서는 다양한 크기와 전송속도를 갖는 이질적인 트래픽(Traffic)들이 흐르고 있다. 이러한 인터넷 속에서 트래픽들의 흐름을 원활히 하고, 효율적으로 트래픽들을 관리하기 위해 큐 관리 기법 및 스케쥴링(Scheduling) 기법이 사용된다.
근래에는 인터넷 트래픽의 폭발적인 증가를 수용하기 위해 전송 기술의 발전으로 보다 빠른 전송 속도를 보장하면서 다양한 서비스(MPLS, MPLS VPN, IP VPN, QoS)를 제공할 수 있는 큐 관리 및 스케쥴링의 중요성이 부가되고 있다.
이와 같은 큐 관리와 스케쥴링은 네트워크 프로세서 기술들에 의해 이루어지고 있으며, 네트워크 프로세서의 주요 기능들은, 패킷 분류(packet classification), 패킷 수정(packet modification), 큐/정책 관리(queue/policy management), 패킷 포워딩(packet forwarding) 등으로 구성된다.
패킷 분류는 어드레스 또는 프로토콜과 같은 기지(destination)의 특성들에 기초하여 패킷을 식별하고, 패킷 수정은 패킷을 IP, ATM, 또는 기타 프로토콜들에 적합하도록 수정한다.
큐/정책 관리는 특정 애플리케이션들에 대한 패킷들의 패킷 큐잉(queuing), 디큐잉(de-queuing) 및 스케쥴링에 대한 설계 전략을 반영하고, 패킷 포워딩(packet forwarding)은 스위치 패브릭(switch fabric) 또는 상위 애플리케이션 상으로의 데이터 전송 및 수신과, 적절한 어드레스로의 패킷 포워딩 또는 라우팅(routing)기능을 수행한다.
이와 같은 네트워크 프로세서는 물리계층/데이터 링크계층과 인터페이스하며, 보조적인 다른 기능을 수행하는 네트워크 프로세서와도 인터페이스 가능하며, 스위치 패브릭과 인터페이스하여 패킷 송수신을 담당하기도 한다.
일반적으로 네트워크 프로세서는 물리계층/데이터 링크계층 하드웨어와 연결되어 패킷 포워딩을 담당한다. 그리고, 네트워크 프로세서는 물리계층/데이터 링크계층 하드웨어로부터 수신된 패킷을 패킷 버퍼에 저장된다. 여기서, 패킷 사이즈, 패킷이 저장된 위치 등과 같은 수신 패킷의 관련 정보는 패킷 식별 정보(Packet Descriptor)에 의해 관리되며, 패킷 식별 정보는 스케쥴러에 의해 수신된 패킷을 해당 출력 포트로 송신하기 전에 큐 관리부에 의해 관리된다.
그런데, 이와 같은 네트워크 프로세서에서는 큐 관리부만이 해당 패킷에 대한 모든 정보를 패킷 식별 정보를 통해 유지 및 관리하도록 하고, 실제 해당 큐에 패킷이 최초로 인큐잉되는 시점 또는 마지막 패킷이 디큐잉되는 시점에서만 전송 메시지가 스케쥴러에게 전송되도록 함으로써, 실제 스케쥴러는 해당 큐에 대한 실제 정보가 아닌 스케줄닝 해야 할 패킷의 존재 여부만을 비트맵 등의 형식으로 관리하도록 한다.
즉, 네트워크 프로세서는 큐의 상태 변화(empty -> non-empty, non-empty -> empty)가 있는 경우에만 스케쥴러에게 극히 제한된 정보를 알려주는 방식을 사용하고 있다.
따라서, 스케쥴러는 실제 인큐잉되어 있는 패킷 개수 이상으로 스케쥴링을 수행할 수 있으며, 이로 인해 큐 관리부는 상이한 디큐 메시지를 수신하여 에러 처 리를 수행함으로써, 서로 독립된 큐 관리부와 스케쥴러가 양단간의 큐 처리 성능의 차이 또는 시간차를 발생시킬 있다. 그리고, 이러한 과정들이 악순환되면 시스템 내부의 많은 자원 낭비를 초래하게 된다.
또한, 네트워크 프로세서에서 스케쥴러는 가용된 패킷 정보가 극히 제한적이므로, 실제 스케쥴링을 위해 필요한 정확한 패킷 사이즈 정보 등을 얻을 수 없어 스케쥴링을 위한 포트와 큐의 쿼텀(Quantum)을 계산함에 있어서 많은 오차를 발생하게 된다.
즉, 쿼텀은 동일한 포트 내에서의 큐별 대역폭의 상대적인 비율을 환산한 값이므로, 스케쥴러는 스케쥴링 수행 시 패킷 사이즈보다 남는 쿼텀 값이 다른 경우가 발생할 수 있으며, 스케쥴러는 이 중 남는 쿼텀 값이 더 큰 경우에는 현재 패킷에 대한 스케쥴링이 가능하지만, 남는 쿼텀이 작거나 없는 경우에는 현재 패킷에 대한 스케쥴링을 수행하지 못하고 다음 패킷에 대한 스케쥴링에서 현재 패킷에 대한 스케쥴링을 수행하게 되는 문제점을 가지게 된다.
따라서, 본 발명은 상기한 종래 기술에 따른 문제점을 해결하기 위한 것으로, 본 발명의 목적은 네트워크 프로세서에서 큐 관리부와 스케쥴러가 큐 처리 시간을 동기시키도록 하는 네트워크 프로세서에서의 큐 관리 방법 및 그 장치를 제공함에 있다.
본 발명의 다른 목적은, 네트워크 프로세서에서 스케쥴러가 스케쥴링을 위한 정확한 패킷 사이즈 정보를 획득하도록 하는 네트워크 프로세서에서의 큐 관리 방 법 및 그 장치를 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명의 일 측면에 따른 패킷 처리부, 큐(Queue) 관리부 및 스케쥴러(Scheduler)를 포함하는 네트워크 프로세서의 큐 관리 장치는, 상기 패킷 처리부로부터 수신되는 인큐(Enqueue) 요청 메시지에 포함된 패킷의 출력 포트 번호, 큐 번호 및 패킷 식별 정보에 따른 인큐잉(Enqueuing)이 완료되면, 인큐 완료 메시지를 상기 스케쥴러에 송신하고, 상기 스케쥴러로부터 수신되는 디큐(Dequeue) 요청 메시지에 따른 디큐잉(Dequeuing)이 완료되면, 디큐잉된 포트 번호와 큐 번호가 포함된 디큐 완료 메시지를 상기 스케쥴러에 송신하는 큐 관리부; 상기 큐 관리부로부터 수신되는 상기 인큐 완료 메시지에 따른 포트 및 큐 스케쥴링이 완료되면, 디큐 요청 메시지를 상기 큐 관리부에 송신하고, 상기 큐 관리부로부터 수신되는 상기 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀(Quantum)을 업데이트하는 스케쥴러를 포함한다.
상기 큐 관리부는, 상기 인큐 요청 메시지가 수신되면, 상기 메시지가 포함하는 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 증가 시키고, 상기 큐 배열에 상기 패킷 식별 정보를 저장하는 상기 인큐잉을 수행한다.
상기 스케쥴러는, 상기 인큐 완료 메시지가 수신되면, 상기 큐 관리부가 인큐잉한 포트 번호와 큐 번호에 대응하는 각각의 비트맵을 업데이트하고, 상기 업데이트한 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 증가시킨 후, 상기 스케쥴링을 수행한다.
상기 스케쥴러는, WRR(Weighted Round Robin) 방식을 통해 상기 업데이트한 포트를 스케쥴링하고, DRR(Deficit Round Robin) 방식을 통해 상기 업데이트한 큐를 스케쥴링한다.
상기 스케쥴러는, 상기 스케줄링을 수행하면 상기 스케쥴링된 포트와 큐의 비트맵을 업데이트하고, 상기 업데이트한 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 감소시킨 후 상기 디큐 요청 메시지를 생성한다.
상기 큐 관리부는, 상기 디큐 요청 메시지가 수신되면, 상기 스케쥴링된 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 감소시킨 후 상기 큐 배열의 첫 번째 패킷 식별정보를 디큐잉하고, 상기 디큐잉된 패킷 식별 정보로부터 패킷의 사이즈 정보를 추출하여, 상기 패킷 사이즈 정보, 디큐잉된 포트 번호 및 큐 번호가 포함된 상기 디큐 완료 메시지를 상기 스케쥴러에 송신한다.
상기 스케쥴러는, 상기 디큐 완료 메시지가 수신되면, 상기 패킷의 사이즈 정보, 포트 번호 및 큐 번호를 이용하여 상기 포트와 큐의 쿼텀을 상기 사이즈 정보만큼 감소시킨다.
상기 큐 관리부는, 상기 디큐잉을 수행하면, 상기 디큐잉된 포트로의 패킷 전송을 요청하는 메시지를 송신하여 상기 패킷 전송이 수행되도록 한다.
상기 큐 관리부는, 상기 패킷 처리부로부터 인큐 요청 메시지를 수신하는 인큐 요청 메시지 수신부; 상기 인큐 요청 메시지에 따라 인큐잉을 수행하는 인큐 처리부; 상기 인큐잉에 따른 정보들을 포함시킨 인큐 완료 메시지를 생성하여 상기 스케쥴러에 송신하는인큐 완료 메시지 송신부; 상기 스케쥴러로부터 디큐 완료 메 시지를 수신하는 디큐 요청 메시지 수신부; 상기 디큐 요청 메시지에 따라 디큐잉을 수행하는 디큐 처리부; 상기 디큐잉이 완료되면 상기 디큐잉된 포트 번호와 큐 번호를 포함시킨 디큐 완료 메시지를 생성하여 상기 스케쥴러에 송신하는 디큐 완료 메시지 송신부; 디큐잉된 출력 포트로의 패킷 전송을 요청하는 메시지를 생성하여 송신하는 전송 요청 메시지 송신부를 포함한다.
상기 스케쥴러는, 상기 큐 관리부로부터 인큐 완료 메시지를 수신하는 인큐 완료 메시지 수신부; 상기 인큐 완료 메시지에 따라 상기 포트와 큐의 스케쥴링을 수행하는 스케쥴링부; 상기 스케쥴링이 완료되면 디큐 요청 메시지를 생성하여 상기 큐 관리부에 송신하는 디큐 요청 메시지 송신부; 상기 큐 관리부로부터 수신되는 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀을 업데이트하는 디큐 완료 메시지 수신부를 포함한다.
그리고, 본 발명의 다른 측면에 따른 네트워크 프로세서의 큐 관리 장치는, 패킷 처리부로부터 수신되는 인큐 요청 메시지에 포함된 패킷의 출력 포트 번호, 큐 번호 및 패킷 식별 정보에 따른 인큐잉이 완료되면, 인큐 완료 메시지를 상기 스케쥴러에 송신하고, 상기 스케쥴러로부터 수신되는 디큐 요청 메시지에 따른 디큐잉이 완료되면 패킷 사이즈 정보, 디큐잉된 포트 번호 및 큐 번호가 포함된 디큐 완료 메시지를 상기 스케쥴러에 송신하는 큐 관리부; 상기 큐 관리부로부터 수신되는 상기 인큐 완료 메시지에 따른 포트 및 큐 스케쥴링이 완료되면, 디큐 요청 메시지를 상기 큐 관리부에 송신하고, 상기 큐 관리부로부터 수신되는 상기 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀을 상기 패킷 사이즈만큼 감소시키는 스케 쥴러를 포함한다.
상기 큐 관리부는, 상기 디큐 요청 메시지에 따라 상기 스케쥴링된 포트와 큐에 대응하는 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉하고, 상기 디큐잉된 패킷 식별 정보가 포함하는 패킷의 사이즈 정보를 추출하여 상기 디큐 완료 메시지에 포함킨다.
한편, 상기한 목적을 달성하기 위한 본 발명의 또 다른 측면에 따른 패킷 처리부, 큐 관리부 및 스케쥴러를 포함하는 네트워크 프로세서의 큐 관리 방법은, 상기 큐 관리부가 상기 패킷 처리부로부터 수신되는 인큐 요청 메시지에 포함된 패킷의 출력 포트 번호, 큐 번호 및 패킷 식별 정보를 이용하여, 상기 포트와 큐에 대응하는 큐 배열에 상기 패킷 식별 정보를 인큐잉하고, 인큐 완료 메시지를 생성하여 상기 스케쥴러에 송신하는 단계; 상기 스케쥴러가 상기 인큐 완료 메시지에 따라 포트와 큐의 스케쥴링을 수행하고, 디큐 요청 메시지를 상기 큐 관리부에 송신하는 단계; 상기 큐 관리부가 상기 디큐 요청 메시지에 따라 디큐잉을 수행하고, 디큐인된 포트번호와 큐 번호가 포함된 디큐 완료 메시지를 상기 스케쥴러에 송신하는 단계; 상기 스케쥴러가 상기 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀을 업데이트하는 단계를 포함한다.
상기 큐 관리부가 상기 인큐잉을 수행하는 단계는, 상기 큐 관리부가 상기 수신 메시지에 포함된 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 증가 시킨 후 상기 인큐잉을 수행한다.
상기 스케쥴러가 상기 스케쥴링을 수행하는 단계는, 상기 인큐잉된 포트 번호와 큐 번호에 대응하는 포트와 큐의 비트맵을 업데이트하고, 상기 업데이트된 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 증가시킨 후, 상기 스케쥴링을 수행한다.
상기 스케쥴러가 상기 스케쥴링을 수행하는 단계는, WRR 방식을 통해 상기 업데이트한 포트를 스케쥴링하고, DRR 방식을 통해 상기 업데이트한 큐를 스케쥴링한다.
상기 스케쥴러가 상기 디큐 요청 메시지를 생성하는 단계는, 상기 스케쥴러가 상기 스케쥴링된 포트와 큐의 비트맵을 업데이트하고, 상기 업데이트한 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 감소시킨 후 상기 디큐 요청 메시지를 생성한다.
상기 큐 관리부가 디큐잉을 수행하는 단계는, 상기 스케쥴러가 스케쥴링한 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 감소시킨 후 상기 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉하고, 상기 디큐잉된 패킷 식별 정보가 포함하는 패킷 사이즈 정보를 추출한다.
상기 디큐 완료 메시지는, 상기 추출한 패킷 사이즈 정보를 더 포함한다.
상기 스케쥴러가 상기 포트와 큐의 쿼텀을 업데이트하는 단계는, 상기 패킷 사이즈 정보, 포트 번호 및 큐 번호를 이용하여 상기 포트와 큐의 쿼텀을 상기 패킷 사이즈 정보만큼 감소시킨다.
또한, 네트워크 프로세서에서의 큐 관리 방법은, 상기 큐 관리부가 상기 디 큐잉된 포트로의 패킷 전송을 요청하는 메시지를 송신하여 상기 패킷 전송이 수행되도록 하는 단계를 더 포함한다.
그리고, 본 발명의 또 다른 측면에 따른 네트워크 프로세서의 큐 관리 방법은, 상기 큐 관리부가 상기 패킷 처리부로부터 수신되는 인큐 요청 메시지에 포함된 패킷의 출력 포트 번호, 큐 번호 및 패킷 식별 정보를 이용하여, 상기 포트와 큐에 대응하는 큐 배열에 상기 패킷 식별 정보를 인큐잉하고, 인큐 완료 메시지를 생성하여 상기 스케쥴러에 송신하는 단계; 상기 스케쥴러가 상기 인큐 완료 메시지에 따라 포트와 큐의 스케쥴링을 수행하고, 디큐 요청 메시지를 상기 큐 관리부에 송신하는 단계; 상기 큐 관리부가 상기 디큐 요청 메시지에 따라 상기 스케쥴링된 포트와 큐에 대응하는 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉하고, 패킷 사이즈 정보, 디큐잉된 포트 번호 및 큐 번호가 포함된 디큐 완료 메시지를 상기 스케쥴러에 송신하는 단계; 상기 스케쥴러가 상기 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀을 상기 패킷 사이즈만큼 감소시키는 단계를 포함한다.
상기 큐 관리부가 디큐잉을 수행하는 단계는, 상기 스케쥴링된 포트와 큐에 대응하는 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉하고, 상기 디큐잉된 패킷 식별 정보가 포함하는 패킷 사이즈 정보를 추출한다.
이하 본 발명에 따른 네트워크 프로세서에서의 큐 관리 방법 및 그 장치를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 네트워크 프로세서를 나타낸 블록도이 다.
도 1에 도시된 바와 같이 네트워크 프로세서는 패킷 처리(Packet Processing)부(200), 큐 관리부(Queue Manager)(300), 스케쥴러(Scheduler)(400) 및 패킷 전송부(Packet Transmitter)(500)를 포함할 수 있다.
패킷 처리부(200)는 물리계층/데이터 링크 계층으로부터 패킷이 수신되는 포트를 감지하고, 수신된 패킷을 버퍼(미도시)에 이동 및 저장시키는 기능을 수행한다. 또한, 패킷 처리부(200)는 IP 헤더 처리(Header Processing), 룩업(Lookup) 등과 같은 패킷 처리 과정을 수행한다.
그리고, 패킷 처리부(200)는 정상적인 패킷 처리 과정이 끝난 패킷을 전송하기 위해 큐 관리부(300)에 인큐 요청 메시지를 전송한다. 여기서, 인큐 요청 메시지는 출력 포트 번호, 큐 번호와 함께 패킷 식별 정보를 포함할 수 있다. 패킷 식별 정보는 패킷 사이즈, 패킷이 저장된 위치 등과 같은 패킷 관련 정보들을 포함한다.
큐 관리부(300)는 패킷 처리부(200)로부터 수신한 패킷 식별 정보에 대해서 인큐잉 및 디큐잉을 수행하고, 각각의 수행 후 인큐 완료 및 디큐 완료 메시지를 생성하여 스케쥴러(400)에 송신할 수 있다. 이와 같은 큐 관리부(300)는 디큐잉을 통해 디큐잉된 패킷 식별 정보에 포함된 패킷 사이즈 정보를 추출할 수 있으며, 추출된 패킷 사이즈 정보를 스케쥴러(400)에 송신하는 디큐 완료 메시지에 포함시킬 수 있다.
스케쥴러(400)는 패킷 식별 정보가 인큐잉 또는 디큐잉되는 포트와 큐의 스 케쥴링을 수행한다. 이와 같은 스케쥴러(400)는 포트 스케쥴링을 위해 WRR(Weighted Round Robin) 방식을 사용하고, 큐 스케쥴링을 위해 DRR(Deficit Round Robin) 방식을 사용할 수 있다. 또한, 스케쥴러(400)는 큐 관리부(300)로부터 수신되는 인큐 완료 및 디큐 완료 메시지를 통해 큐 관리부(300)와 인큐잉 및 디큐잉 시간을 동기시키고, 디큐 완료 메시지가 포함하는 패킷 사이즈 정보를 통해 디큐잉된 포트와 큐의 쿼텀(Quantum)을 산출할 수 있다.
쿼텀은 전술한 바와 같이 스케쥴러(400)가 스케쥴링을 수행하는 경우 사용되는 큐별 대역폭(Bandwidth)을 지칭하며, 일반적으로 동일한 포트 내에서 큐별 대역폭의 상대적인 비율을 해당 포트의 MTU(Maximum Transfer Unit)를 이용하여 환산한 값이다.
패킷 전송부(500)는, 스케쥴링된 해당 출력 포트로 패킷을 전송한다.
이와 같은 구성을 갖는 네트워크 프로세서의 큐 관리 동작에 대해서 자세히 살펴보도록 한다.
먼저 네트워크 프로세서의 패킷 처리부(200)는 수신되는 패킷에 대해 정상적인 패킷 처리(예를 들어, IP Header Processing, Lookup, L2 Header Encap 등) 과정을 수행하고, 패킷 처리 과정이 종료되면 큐 관리부(300)에 인큐 요청 메시지를 송신한다. 인큐 요청 메시지는 출력 포트 번호, 큐 번호 및 패킷 식별 정보를 포함한다.
큐 관리부(300)는 패킷 처리부(200)로부터 인큐 요청 메시지를 수신하고, 수신한 인큐 요청 메시지를 분석하여 해당 메시지가 포함하는 출력 포트 번호, 큐 번 호 및 패킷 식별 정보를 검출한다. 그리고, 큐 관리부(300)는 검출된 포트와 큐에 대응하는 큐 배열(Queue Array)의 길이 정보를 '1' 증가 시키고, 해당 큐 배열에 검출된 패킷 식별 정보를 저장하는 인큐잉을 수행한다.
이와 같이 인큐잉을 수행한 큐 관리부(300)는, 인큐잉 완료를 알리는 인큐 완료 메시지를 생성하여 스케쥴러(400)에 송신한다. 여기서, 인큐 완료 메시지는 인큐잉을 수행한 포트 번호와 큐 번호를 포함한다.
스케쥴러(400)는 큐 관리부(300)로부터 인큐 완료 메시지가 수신되면 수신된 인큐 요청 메시지를 분석하여, 인큐잉된 포트 번호와 큐 번호를 검출한다. 그리고, 스케쥴러(400)는 검출된 포트 번호와 큐 번호에 대응하는 각각의 비트맵을 업데이트하여 스케쥴링 대상임을 표시하고, 해당 포트와 큐에 대응하는 큐 배열의 길이 정보를 '1' 증가시킨다.
스케쥴러(400)는 큐 배열의 길이를 증가시킨 후 검출된 포트와 큐의 스케쥴링을 수행한다. 여기서, 스케쥴러(400)는 WRR 방식을 통해 포트 스케쥴링을 수행하고, DRR 방식을 통해 큐 스케쥴링을 수행한다. 또한, 스케쥴러(400)는 해당 포트와 큐에 대한 쿼텀이 존재할 경우에만 큐 스케쥴링을 수행한다.
그리고, 스케쥴러(400)는 스케쥴링 수행 후 스케쥴링한 포트와 큐의 비트맵을 업데이트하고, 해당 포트와 큐에 대응하는 큐 배열의 길이 정보를 '1' 감소시킨다. 이는 큐 관리부(300)와 스케쥴러(400)간의 성능 차이로부터 발생될 수 있는 잘못된 스케쥴링을 방지할 수 있는 것이다.
이와 같이 스케쥴러(400)는 스케쥴링을 완료하면, 디큐잉을 요청하는 디큐 요청 메시지를 생성하여 큐 관리부(300)에 송신한다. 디큐 요청 메시지는 스케쥴링된 포트 번호와 큐 번호를 포함한다.
큐 관리부(300)는 스케쥴러(400)로부터 디큐 요청 메시지가 수신되면, 수신된 메시지를 분석하여 스케쥴링된 포트 번호와 큐 번호를 검출한다. 그리고, 큐 관리부(300)는 검출된 포트 번호와 큐 번호에 대응하는 큐 배열의 길이 정보를 '1' 감소시키고, 해당 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉한다.
그리고, 큐 관리부(300)는 디큐잉된 패킷 식별 정보를 분석하여 패킷 사이즈 정보를 추출하고, 추출된 패킷 사이즈, 디큐잉된 포트 번호 및 큐 번호가 포함된 디큐 완료 메시지를 생성하여 스케쥴러(400)에 송신한다.
스케쥴러(400)는 큐 관리부(300)로부터 디큐 완료 메시지가 수신되면, 수신된 메시지에 포함된 패킷 사이즈, 포트 번호 및 큐 번호를 검출하고, 검출된 포트와 큐의 쿼텀을 검출된 패킷 사이즈만큼 감소시킨다.
한편, 큐 관리부(300)는 생성한 디큐 완료 메시지를 스케쥴러(400)에 송신 후 패킷의 전송을 요청하는 메시지를 생성하여 패킷 전송부(500)에 송신함으로, 해당 패킷이 패킷 전송부(500)를 통해 전송되도록 한다.
다음으로 네트워크 프로세서에서 이와 같은 큐 관리 동작을 수행하는 큐 관리부(300) 및 스케쥴러(400)의 내부 구성에 대해서 더욱 자세히 살펴보도록 한다.
도 2는 본 발명의 일 실시예에 따른 큐 관리부를 나타낸 구성도이다.
도 2에 도시된 바와 같이 큐 관리부(300)는 인큐 요청(Enqueue Request) 메시지 수신부(310), 인큐 처리부(320), 인큐 완료(Enqueue Done) 메시지 송신부 (330), 디큐 요청(Dequeue Request) 메시지 수신부(340), 디큐 처리부(350), 디큐 완료(Dequeue Done) 메시지 송신부(360) 및 전송 요청 메시지 송신부(370)를 포함할 수 있다.
먼저 인큐 요청 메시지 수신부(310)는 패킷 처리부(200)로부터 수신되는 인큐 요청 메시지에 따라, 관리하는 큐 배열의 길이 정보를 증가시킨다. 여기서, 인큐 요청 메시지는 출력 포트 번호, 큐 번호 및 패킷 식별 정보를 포함한다.
인큐 처리부(320)는 패킷 처리부(200)로부터 수신되는 인큐 요청 메시지가 포함하는 패킷 식별 정보를 해당 큐 배열에 저장하는 인큐잉을 수행한다.
인큐 완료 메시지 송신부(330)는 인큐잉에 따른 정보들을 포함시킨 인큐 완료 메시지를 생성하고, 이를 스케쥴러(400)에 송신한다.
디큐 요청 메시지 수신부(340)는 스케쥴러(400)로부터 디큐잉 수행을 요청하는 메시지를 수신한다.
디큐 처리부(350)는 실제 큐 배열로부터 패킷 식별 정보를 디큐잉을 한다.
디큐 완료 메시지 송신부(360)는 디큐잉된 패킷 식별 정보로부터 패킷 사이즈를 추출하고, 추출된 패킷 사이즈를 포함시킨 디큐 완료 메시지를 생성하여 이를 스케쥴러(400)에 송신한다.
전송 요청 메시지 송신부(370)는 디큐잉된 출력 포트로의 패킷 전송을 요청하는 메시지를 생성하여 패킷 전송부(500)에 송신함으로, 패킷이 전송이 수행되도록 한다.
이와 같은 구성을 갖는 큐 관리부(300)의 동작을 살펴보면, 먼저 큐 관리부 (300)의 인큐 요청 메시지 수신부(310)는 패킷 처리부(200)로부터 인큐 요청 메시지를 수신하고, 수신된 메시지를 분석한다. 수신된 메시지를 분석한 인큐 요청 메시지 수신부(310)는 메시지가 포함하는 출력 포트 번호, 큐 번호 및 패킷 식별 정보를 검출하고, 검출된 포트와 큐에 대응하는 큐 배열의 길이 정보를 '1' 증가 시킨다. 그리고, 인큐 요청 메시지 수신부(310)는 검출된 포트 번호, 큐 번호 및 패킷 식별 정보를 포함하는 인큐 요청 정보를 생성하여 인큐 처리부(320)에 출력한다.
인큐 처리부(320)는 인큐 요청 메시지 수신부(310)로부터 인큐 요청 정보를 입력받고, 입력된 포트 번호와 큐 번호에 대응하는 큐 배열에 입력된 패킷 식별 정보를 저장하는 인큐잉을 수행한다.
그리고, 인큐 처리부(320)는 인큐잉 수행 후 인큐잉 완료 정보를 생성하여 인큐 완료 메시지 송신부(330)에 출력한다. 여기서, 인큐 완료 정보는 인큐잉을 수행한 포트 번호와 큐 번호를 포함한다.
인큐 완료 메시지 송신부(330)는 인큐 처리부(320)로부터 인큐 완료 정보를 입력받고, 입력된 인큐 완료 정보를 포함한 인큐 완료 메시지를 생성한다. 그리고, 인큐 완료 메시지 생성한 인큐 완료 메시지를 스케쥴러(400)에 송신한다.
이와 같이 인큐 완료 메시지 송신부(330)를 통해 인큐 완료 메시지를 스케쥴러(400)에 송신한 큐 관리부(300)는, 디큐잉 수행을 요청하는 디큐 요청 메시지를 디큐 요청 메시지 수신부(340)를 통해 스케쥴러(400)로부터 수신한다. 여기서, 디큐 요청 메시지는 스케쥴러(400)가 수행한 스케쥴링 과정을 통해 선택된 포트 번호 와 큐 번호를 포함한다.
디큐 요청 메시지 수신부(340)는 스케쥴러(400)로부터 디큐 요청 메시지를 수신하고, 수신된 메시지를 분석하여 스케쥴링된 포트 번호와 큐 번호를 검출한다. 그리고, 검출된 포트와 큐에 대응하는 큐 배열의 길이 정보를 '1' 감소시키고, 검출한 포트 번호와 큐 번호를 포함하는 디큐 요청 정보를 생성하여 디큐 처리부(350)에 출력한다.
디큐 처리부(350)는 디큐 요청 메시지 수신부(340)로부터 디큐 요청 정보를 수신하고, 수신된 정보에 따라 해당 포트 번호와 큐 번호에 대응하는 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉한다.
그리고, 디큐 처리부(350)는 디큐잉된 패킷 식별 정보를 분석하여 패킷의 사이즈 정보를 추출하고, 추출된 패킷 사이즈 정보, 디큐잉된 포트 번호 및 큐 번호가 포함된 디큐 완료 정보를 디큐 완료 메시지 송신부(360)에 출력한다.
디큐 완료 메시지 송신부(360)는 디큐 처리부(350)로부터 디큐 완료 정보를 입력받으면, 입력된 디큐 완료 정보를 포함하는 디큐 완료 메시지를 생성하여 이를 스케쥴러(400)와 전송 요청 메시지 송신부(370)에 출력한다.
전송 요청 메시지 송신부(370)는 디큐 완료 메시지 송신부(360)로부터 디큐 완료 메시지가 수신되면 이를 분석하여 디큐잉이 완료되었음을 판단하고, 디큐인된 포트로의 패킷 전송을 요청하는 전송 요청 메시지를 생성하여 패킷 전송부(500)에 송신한다.
이와 같이 큐 관리부(300)는 인큐잉 및 디큐잉 수행 후 인큐 완료 및 디큐 완료 메시지를 생성하여 스케쥴러(400)에 송신하여, 스케쥴러(400)와의 큐 처리 시간을 동기를 일치시킬 수 있다.
도 3은 본 발명의 일 실시예에 따른 스케쥴러를 나타낸 구성도이다.
도 3에 도시된 바와 같이 스케쥴러(400)는 인큐 완료 메시지 수신부(410), 스케쥴링부(420), 디큐 요청 메시지 송신부(450)(450) 및 디큐 완료 메시지 수신부(460)(460)를 포함하도록 구성될 수 있다.
인큐 완료 메시지 수신부(410)는 큐 관리부(300)로부터 인큐잉이 완료되었음을 알리는 인큐 완료 메시지를 수신하고, 관리하는 큐 배열의 길이 정보를 증가시킬 수 있다.
스케쥴링부(420)는 포트 스케쥴링부(430)와 큐 스케쥴링부(440)로 구성될 수 있다. 포트 스케쥴링부(430)는 WRR 알고리즘에 의해 포트를 스케쥴링하며, 큐 스케쥴링부(440)는 DRR 알고리즘을 통해 스케쥴링된 포트 내의 큐를 스케쥴링한다.
디큐 요청 메시지 송신부(450)는 스케쥴링된 포트와 큐 번호를 포함시킨 디큐 요청 메시지를 생성하고, 이를 큐 관리부(300)에 송신한다.
디큐 완료 메시지 수신부(460)는 디큐 관리부(300)로부터 디큐잉 완료를 알리는 디큐 완료 메시지를 수신하고, 디큐잉된 포트와 큐에 대응하는 큐 배열의 쿼텀과 내부자료 구조를 업데이트한다.
이와 같은 구성을 갖는 스케쥴러(400)의 동작을 살펴보면, 먼저 스케쥴러(400)는 인큐 완료 메시지 수신부(410)를 통해 큐 관리부(300)로부터 인큐 완료 메시지를 수신한다.
인큐 완료 메시지 수신부(410)는 큐 관리부(300)로부터 인큐 완료 메시지를 수신하면 수신된 메시지를 분석하여, 메시지가 포함하는 인큐잉된 포트 번호와 큐 번호를 검출한다. 인큐 완료 메시지 수신부(410)는 검출된 포트 번호와 큐 번호에 해당하는 각각의 비트맵을 업데이트하여 스케쥴링 대상임을 표시하고, 해당 포트와 큐에 대응하는 큐 배열의 길이 정보를 '1' 증가시킨다.
그리고, 인큐 완료 메시지 수신부(410)는 검출된 포트 번호와 큐 번호를 포함하는 인큐 완료 정보를 생성하여 스케쥴링부(420)에 출력한다.
스케쥴링부(420)는 인큐 완료 메시지 수신부(410)로부터 인큐 완료 정보를 입력받으면, 입력된 인큐 완료 정보가 포함하는 포트의 스케쥴링을 포트 스케쥴링부(430)를 통하여 수행한다. 여기서, 포트 스케쥴링부(430)는 WRR 방식을 통해 포트 스케쥴링을 수행할 수 있다. 또한, 스케쥴링부(420)는 입력된 인큐 완료 정보가 포함하는 포트 내의 큐 스케쥴링을 큐 스케쥴링부(440)를 통하여 수행한다. 여기서 큐 스케쥴링은 DRR 방식을 통해 포트 스케쥴링을 수행할 수 있다. 또한, 스케쥴링부(400) 해당 포트와 큐에 대한 쿼텀이 존재할 경우에만 스케쥴링을 수행한다.
그리고, 스케쥴링부(420)는 스케쥴링한 포트와 큐의 비트맵을 업데이트하고, 해당 포트와 큐에 대응하는 큐 배열의 길이 정보를 '1' 감소시킨다. 이는 큐 관리부(300)와 스케쥴러(400)간의 성능 차이로부터 발생될 수 있는 잘못된 스케쥴링을 방지할 수 있는 것이다.
스케쥴링을 수행한 스케쥴링부(420)는 스케쥴링 완료 정보를 생성하여 디큐 요청 메시지 송신부(450)에 출력한다. 스케쥴링 완료 정보는 스케쥴링된 포트 번호 와 큐 번호를 포함한다.
디큐 요청 메시지 송신부(450)는 스케쥴링부(420)로부터 스케쥴링 완료 정보를 입력받으면, 디큐잉을 요청하는 메시지로써 스케쥴링 완료 정보 즉, 스케쥴링된 포트 번호와 큐 번호를 포함시킨 디큐 요청 메시지를 생성한다. 그리고, 디큐 요청 메시지 송신부(450)는 생성한 디큐 요청 메시지를 큐 관리부(300)에 송신한다.
이와 같이 디큐잉을 요청하는 디큐 요청 메시지를 디큐 요청 메시지 송신부(450)를 통해 큐 관리부(300)에 송신한 스케쥴러(400)는, 큐 관리부(300)로부터 디큐 완료 메시지를 디큐 완료 메시지 수신부(460)를 통해 수신할 수 있다. 디큐 완료 메시지는 디큐잉된 패킷의 사이즈 정보, 디큐잉된 포트 번호 및 큐 번호를 포함한다.
디큐 완료 메시지 수신부(460)는 큐 관리부(300)로부터 디큐 완료 메시지를 수신하면, 수신된 메시지에 포함된 패킷 사이즈 정보, 포트 번호 및 큐 번호를 검출하고, 검출된 포트와 큐에 대응하는 각각의 쿼텀을 검출된 패킷 사이즈 정보만큼 감소시킨다.
이와 같이 스케쥴러(400)는 큐 관리부(300)로부터 인큐 완료 및 디큐 완료 메시지를 통해 큐 관리부(300)와의 큐 처리 시간을 동기시키고, 디큐 완료 메시지가 포함하는 패킷 사이즈 정보를 통해 스케쥴링된 포트와 큐의 정확한 쿼텀을 산출할 수 있다.
도 4는 본 발명의 일 실시예에 따른 네트워크 프로세서의 큐 관리 동작을 나타낸 신호 흐름도이다.
도 4에 도시된 바와 같이, 먼저 큐 관리부(300)는 패킷 처리부(200)로부터 인큐 요청 메시지를 수신한다(S101). 인큐 요청 메시지는 출력 포트 번호, 큐 번호 및 패킷 식별 정보를 포함한다.
큐 관리부(300)는 수신한 인큐 요청 메시지를 분석하여 해당 메시지가 포함하는 출력 포트 번호, 큐 번호 및 패킷 식별 정보를 검출하고, 검출된 포트와 큐에 대응하는 큐 버퍼의 길이 정보를 '1' 증가시킨다(S102).
큐 관리부(300)는 검출된 포트 번호와 큐 번호에 대응하는 큐 버퍼에 검출된 패킷 식별 정보를 저장하는 인큐잉을 수행한다(S103).
이와 같이 인큐잉을 수행한 큐 관리부(300)는, 인큐잉 완료를 알리는 인큐 완료 메시지를 생성하여(S104), 스케쥴러(400)에 송신한다(S105). 여기서, 인큐 완료 메시지는 인큐잉을 수행한 포트 번호와 큐 번호를 포함한다.
인큐 완료 메시지를 수신한 스케쥴러(400)는 큐 관리부(300)로부터 수신된 메시지를 분석하여, 메시지가 포함하는 인큐잉된 포트 번호와 큐 번호를 검출하고, 검출된 포트 번호와 큐 번호에 해당하는 각각의 비트맵을 업데이트하여 스케쥴링 대상임을 표시한다(S106). 그리고 스케쥴러(400)는 검출된 포트와 큐에 대응하는 큐 배열의 길이 정보를 '1' 증가시킨다(S107).
이와 같은 스케쥴러(400)는 검출된 포트와 큐의 스케쥴링을 수행한다(S108). 여기서, 스케쥴러(400)는 WRR 방식을 통해 포트 스케쥴링을 수행하고, DRR 방식을 통해 큐 스케쥴링을 수행한다. 또한, 스케쥴러(400)는 해당 포트와 큐에 대한 쿼텀이 존재할 경우에만 스케쥴링을 수행한다.
스케쥴러(400)는 스케쥴링한 포트와 큐의 비트맵을 업데이트하고(S109), 해당 포트와 큐에 대응하는 큐 배열의 길이 정보를 '1' 감소시킨다(S110).
그리고, 스케쥴러(400)는 디큐잉을 요청하는 디큐 요청 메시지를 생성하여(S111), 큐 관리부(300)에 송신한다(S112). 디큐 요청 메시지는 스케쥴링된 포트 번호와 큐 번호를 포함한다.
디큐 요청 메시지를 수신한 큐 관리부(300)는 스케쥴러(400)로부터 수신된 메시지를 분석하여 스케쥴링된 포트 번호와 큐 번호를 검출하고, 검출된 포트 번호와 큐 번호에 대응하는 큐 배열의 길이 정보를 '1' 감소한 후(S113), 해당 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉한다(S114).
큐 관리부(300)는 디큐잉된 패킷 식별 정보를 분석하여 패킷의 사이즈 정보를 추출하고, 추출된 패킷 사이즈, 디큐잉된 포트 번호 및 큐 번호가 포함된 디큐 완료 메시지를 생성한다(S115). 그리고, 큐 관리부(300)는 생성한 디큐 완료 메시지를 스케쥴러(400)에 송신한다(S116).
디큐 완료 메시지를 수신한 스케쥴러(400)는 큐 관리부(300)로부터 수신된 메시지에 포함된 패킷 사이즈, 포트 번호 및 큐 번호를 검출하고, 검출된 포트와 큐에 대응하는 포트와 큐의 쿼텀을 검출된 패킷 사이즈만큼 감소시킨다(S117).
한편, 큐 관리부(300)는 생성한 디큐 완료 메시지를 스케쥴러(400)에 송신 후 디큐잉된 포트로의 패킷 전송을 요청하는 메시지를 생성한 후 패킷 전송부(500)에 송신하여, 해당 패킷이 패킷 전송부(500)를 통해 전송되도록 한다(S118).
상기한 바와 같은 본 발명에 따른 네트워크 프로세서에서의 큐 관리 방법 및 그 장치는, 네트워크 프로세서에서 큐 관리부가 인큐잉 및 디큐잉을 수행하는 경우 스케쥴러에 인큐 완료 및 디큐 완료 메시지를 송신하도록 하여 큐 관리부와 스케쥴러의 큐 처리 시간을 동기시키는 효과를 가질 수 있다.
또한, 본 발명에 따른 네트워크 프로세서에서의 큐 관리 방법 및 그 장치는, 네트워크 프로세서에서 큐 관리부가 디큐잉 수행 후 디큐잉된 패킷 식별 정보로부터 추출한 패킷 사이즈 정보를 디큐 완료 메시지에 포함시켜 스케쥴러에 송신하도록 함으로써, 이를 수신한 스케쥴러가 포트 및 큐의 정확한 쿼텀을 산출하도록 하는 효과를 가질 수 있다.

Claims (23)

  1. 패킷 처리부, 큐(Queue) 관리부 및 스케쥴러(Scheduler)를 포함하는 네트워크 프로세서의 큐 관리 장치에 있어서,
    상기 패킷 처리부로부터 수신되는 인큐(Enqueue) 요청 메시지에 포함된 패킷의 출력 포트 번호, 큐 번호 및 패킷 식별 정보에 따른 인큐잉(Enqueuing)이 완료되면, 인큐 완료 메시지를 상기 스케쥴러에 송신하고, 상기 스케쥴러로부터 수신되는 디큐(Dequeue) 요청 메시지에 따른 디큐잉(Dequeuing)이 완료되면, 디큐잉된 포트 번호와 큐 번호가 포함된 디큐 완료 메시지를 상기 스케쥴러에 송신하는 큐 관리부; 와
    상기 큐 관리부로부터 수신되는 상기 인큐 완료 메시지에 따른 포트 및 큐 스케쥴링이 완료되면, 디큐 요청 메시지를 상기 큐 관리부에 송신하고, 상기 큐 관리부로부터 수신되는 상기 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀(Quantum)을 업데이트하는 스케쥴러를 포함하는 큐 관리 장치.
  2. 제1항에 있어서,
    상기 큐 관리부는,
    상기 인큐 요청 메시지가 수신되면, 상기 메시지가 포함하는 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 증가 시키고, 상기 큐 배열에 상기 패킷 식별 정보를 저장하는 상기 인큐잉을 수행하는 큐 관리 장치.
  3. 제1항에 있어서,
    상기 스케쥴러는,
    상기 인큐 완료 메시지가 수신되면, 상기 큐 관리부가 인큐잉한 포트 번호와 큐 번호에 대응하는 각각의 비트맵을 업데이트하고, 상기 업데이트한 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 증가시킨 후, 상기 스케쥴링을 수행하는 큐 관리 장치.
  4. 제3항에 있어서,
    상기 스케쥴러는,
    WRR(Weighted Round Robin) 방식을 통해 상기 업데이트한 포트를 스케쥴링하고, DRR(Deficit Round Robin) 방식을 통해 상기 업데이트한 큐를 스케쥴링하는 큐 관리 장치.
  5. 제1항에 있어서,
    상기 스케쥴러는,
    상기 스케줄링을 수행하면 상기 스케쥴링된 포트와 큐의 비트맵을 업데이트하고, 상기 업데이트한 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 감소시킨 후 상기 디큐 요청 메시지를 생성하는 큐 관리 장치.
  6. 제1항에 있어서,
    상기 큐 관리부는,
    상기 디큐 요청 메시지가 수신되면, 상기 스케쥴링된 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 감소시킨 후 상기 큐 배열의 첫 번째 패킷 식별정보를 디큐잉하고, 상기 디큐잉된 패킷 식별 정보로부터 패킷의 사이즈 정보를 추출하여, 상기 패킷 사이즈 정보, 디큐잉된 포트 번호 및 큐 번호가 포함된 상기 디큐 완료 메시지를 상기 스케쥴러에 송신하는 큐 관리 장치.
  7. 제6항에 있어서,
    상기 스케쥴러는,
    상기 디큐 완료 메시지가 수신되면, 상기 패킷의 사이즈 정보, 포트 번호 및 큐 번호를 이용하여 상기 포트와 큐의 쿼텀을 상기 사이즈 정보만큼 감소시키는 큐 관리 장치.
  8. 제1항에 있어서,
    상기 큐 관리부는,
    상기 디큐잉을 수행하면, 상기 디큐잉된 포트로의 패킷 전송을 요청하는 메시지를 송신하여 상기 패킷 전송이 수행되도록 하는 큐 관리 장치.
  9. 제1항에 있어서,
    상기 큐 관리부는,
    상기 패킷 처리부로부터 인큐 요청 메시지를 수신하는 인큐 요청 메시지 수신부;
    상기 인큐 요청 메시지에 따라 인큐잉을 수행하는 인큐 처리부;
    상기 인큐잉에 따른 정보들을 포함시킨 인큐 완료 메시지를 생성하여 상기 스케쥴러에 송신하는인큐 완료 메시지 송신부;
    상기 스케쥴러로부터 디큐 완료 메시지를 수신하는 디큐 요청 메시지 수신부;
    상기 디큐 요청 메시지에 따라 디큐잉을 수행하는 디큐 처리부;
    상기 디큐잉이 완료되면 상기 디큐잉된 포트 번호와 큐 번호를 포함시킨 디큐 완료 메시지를 생성하여 상기 스케쥴러에 송신하는 디큐 완료 메시지 송신부; 및
    디큐잉된 출력 포트로의 패킷 전송을 요청하는 메시지를 생성하여 송신하는 전송 요청 메시지 송신부를 포함하는 큐 관리 장치.
  10. 제1항에 있어서,
    상기 스케쥴러는,
    상기 큐 관리부로부터 인큐 완료 메시지를 수신하는 인큐 완료 메시지 수신부;
    상기 인큐 완료 메시지에 따라 상기 포트와 큐의 스케쥴링을 수행하는 스케 쥴링부;
    상기 스케쥴링이 완료되면 디큐 요청 메시지를 생성하여 상기 큐 관리부에 송신하는 디큐 요청 메시지 송신부; 및
    상기 큐 관리부로부터 수신되는 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀을 업데이트하는 디큐 완료 메시지 수신부를 포함하는 큐 관리 장치.
  11. 패킷 처리부, 큐 관리부 및 스케쥴러를 포함하는 네트워크 프로세서의 큐 관리 장치에 있어서,
    패킷 처리부로부터 수신되는 인큐 요청 메시지에 포함된 패킷의 출력 포트 번호, 큐 번호 및 패킷 식별 정보에 따른 인큐잉이 완료되면, 인큐 완료 메시지를 상기 스케쥴러에 송신하고, 상기 스케쥴러로부터 수신되는 디큐 요청 메시지에 따른 디큐잉이 완료되면 패킷 사이즈 정보, 디큐잉된 포트 번호 및 큐 번호가 포함된 디큐 완료 메시지를 상기 스케쥴러에 송신하는 큐 관리부; 와
    상기 큐 관리부로부터 수신되는 상기 인큐 완료 메시지에 따른 포트 및 큐 스케쥴링이 완료되면, 디큐 요청 메시지를 상기 큐 관리부에 송신하고, 상기 큐 관리부로부터 수신되는 상기 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀을 상기 패킷 사이즈만큼 감소시키는 스케쥴러를 포함하는 큐 관리 장치.
  12. 제11항에 있어서,
    상기 큐 관리부는,
    상기 디큐 요청 메시지에 따라 상기 스케쥴링된 포트와 큐에 대응하는 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉하고, 상기 디큐잉된 패킷 식별 정보가 포함하는 패킷의 사이즈 정보를 추출하여 상기 디큐 완료 메시지에 포함시키는 큐 관리 장치.
  13. 패킷 처리부, 큐 관리부 및 스케쥴러를 포함하는 네트워크 프로세서의 큐 관리 방법에 있어서,
    상기 큐 관리부가 상기 패킷 처리부로부터 수신되는 인큐 요청 메시지에 포함된 패킷의 출력 포트 번호, 큐 번호 및 패킷 식별 정보를 이용하여, 상기 포트와 큐에 대응하는 큐 배열에 상기 패킷 식별 정보를 인큐잉하고, 인큐 완료 메시지를 생성하여 상기 스케쥴러에 송신하는 단계;
    상기 스케쥴러가 상기 인큐 완료 메시지에 따라 포트와 큐의 스케쥴링을 수행하고, 디큐 요청 메시지를 상기 큐 관리부에 송신하는 단계;
    상기 큐 관리부가 상기 디큐 요청 메시지에 따라 디큐잉을 수행하고, 디큐인된 포트번호와 큐 번호가 포함된 디큐 완료 메시지를 상기 스케쥴러에 송신하는 단계; 및
    상기 스케쥴러가 상기 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀을 업데이트하는 단계를 포함하는 큐 관리 방법.
  14. 제13항에 있어서,
    상기 큐 관리부가 상기 인큐잉을 수행하는 단계는,
    상기 큐 관리부가 상기 수신 메시지에 포함된 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 증가 시킨 후 상기 인큐잉을 수행하는 큐 관리 방법.
  15. 제13항에 있어서,
    상기 스케쥴러가 상기 스케쥴링을 수행하는 단계는,
    상기 인큐잉된 포트 번호와 큐 번호에 대응하는 포트와 큐의 비트맵을 업데이트하고, 상기 업데이트된 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 증가시킨 후, 상기 스케쥴링을 수행하는 큐 관리 방법.
  16. 제13항에 있어서,
    상기 스케쥴러가 상기 스케쥴링을 수행하는 단계는,
    WRR 방식을 통해 상기 업데이트한 포트를 스케쥴링하고, DRR 방식을 통해 상기 업데이트한 큐를 스케쥴링하는 큐 관리 방법.
  17. 제13항에 있어서,
    상기 스케쥴러가 상기 디큐 요청 메시지를 생성하는 단계는,
    상기 스케쥴러가 상기 스케쥴링된 포트와 큐의 비트맵을 업데이트하고, 상기 업데이트한 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 감 소시킨 후 상기 디큐 요청 메시지를 생성하는 큐 관리 방법.
  18. 제13항에 있어서,
    상기 큐 관리부가 디큐잉을 수행하는 단계는,
    상기 스케쥴러가 스케쥴링한 포트와 큐에 대응하는 큐 배열의 길이 정보를 소정의 길이 정보만큼 감소시킨 후 상기 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉하고, 상기 디큐잉된 패킷 식별 정보가 포함하는 패킷 사이즈 정보를 추출하는 큐 관리 방법.
  19. 제18항에 있어서,
    상기 디큐 완료 메시지는,
    상기 추출한 패킷 사이즈 정보를 더 포함하는 큐 관리 방법.
  20. 제18항에 있어서,
    상기 스케쥴러가 상기 포트와 큐의 쿼텀을 업데이트하는 단계는,
    상기 패킷 사이즈 정보, 포트 번호 및 큐 번호를 이용하여 상기 포트와 큐의 쿼텀을 상기 패킷 사이즈 정보만큼 감소시키는 큐 관리 방법.
  21. 제13항에 있어서,
    상기 큐 관리부가 상기 디큐잉된 포트로의 패킷 전송을 요청하는 메시지를 송신하여 상기 패킷 전송이 수행되도록 하는 단계를 더 포함하는 큐 관리 방법.
  22. 패킷 처리부, 큐 관리부 및 스케쥴러를 포함하는 네트워크 프로세서의 큐 관리 방법에 있어서,
    상기 큐 관리부가 상기 패킷 처리부로부터 수신되는 인큐 요청 메시지에 포함된 패킷의 출력 포트 번호, 큐 번호 및 패킷 식별 정보를 이용하여, 상기 포트와 큐에 대응하는 큐 배열에 상기 패킷 식별 정보를 인큐잉하고, 인큐 완료 메시지를 생성하여 상기 스케쥴러에 송신하는 단계;
    상기 스케쥴러가 상기 인큐 완료 메시지에 따라 포트와 큐의 스케쥴링을 수행하고, 디큐 요청 메시지를 상기 큐 관리부에 송신하는 단계;
    상기 큐 관리부가 상기 디큐 요청 메시지에 따라 상기 스케쥴링된 포트와 큐에 대응하는 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉하고, 패킷 사이즈 정보, 디큐잉된 포트 번호 및 큐 번호가 포함된 디큐 완료 메시지를 상기 스케쥴러에 송신하는 단계; 및
    상기 스케쥴러가 상기 디큐 완료 메시지에 따라 상기 포트와 큐의 쿼텀을 상기 패킷 사이즈만큼 감소시키는 단계를 포함하는 큐 관리 방법.
  23. 제22항에 있어서,
    상기 큐 관리부가 디큐잉을 수행하는 단계는,
    상기 스케쥴링된 포트와 큐에 대응하는 큐 배열의 첫 번째 패킷 식별 정보를 디큐잉하고, 상기 디큐잉된 패킷 식별 정보가 포함하는 패킷 사이즈 정보를 추출하는 큐 관리 방법.
KR20060007483A 2006-01-24 2006-01-24 네트워크 프로세서에서의 큐 관리 방법 및 그 장치 KR100716184B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR20060007483A KR100716184B1 (ko) 2006-01-24 2006-01-24 네트워크 프로세서에서의 큐 관리 방법 및 그 장치
US11/642,855 US20070171929A1 (en) 2006-01-24 2006-12-21 Queue management in a network processor
CNA2006101720950A CN101009649A (zh) 2006-01-24 2006-12-28 网络处理器中的队列管理
JP2007011584A JP2007202153A (ja) 2006-01-24 2007-01-22 ネットワークプロセッサーのキュー管理装置及びその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20060007483A KR100716184B1 (ko) 2006-01-24 2006-01-24 네트워크 프로세서에서의 큐 관리 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR100716184B1 true KR100716184B1 (ko) 2007-05-10

Family

ID=38270164

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20060007483A KR100716184B1 (ko) 2006-01-24 2006-01-24 네트워크 프로세서에서의 큐 관리 방법 및 그 장치

Country Status (4)

Country Link
US (1) US20070171929A1 (ko)
JP (1) JP2007202153A (ko)
KR (1) KR100716184B1 (ko)
CN (1) CN101009649A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210050940A (ko) 2019-10-29 2021-05-10 고려대학교 산학협력단 스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치
CN114338523A (zh) * 2014-12-30 2022-04-12 华为技术有限公司 一种报文转发方法和装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5063293B2 (ja) * 2007-10-29 2012-10-31 古野電気株式会社 通信量制御システム、通信量制御システム用サーバ、および通信量制御システム用クライアント
CN101783763B (zh) * 2009-01-16 2012-06-06 中兴通讯股份有限公司 防拥塞的处理方法及***
US7792131B1 (en) * 2009-03-10 2010-09-07 Cisco Technologies, Inc. Queue sharing with fair rate guarantee
CN101616097B (zh) * 2009-07-31 2012-05-23 中兴通讯股份有限公司 一种网络处理器输出端口队列的管理方法及***
CN101808039B (zh) * 2010-03-29 2013-10-02 成都市华为赛门铁克科技有限公司 数据报文的处理方法及处理服务器
US20110296437A1 (en) * 2010-05-28 2011-12-01 Devendra Raut Method and apparatus for lockless communication between cores in a multi-core processor
US8565092B2 (en) 2010-11-18 2013-10-22 Cisco Technology, Inc. Dynamic flow redistribution for head of line blocking avoidance
CN102957629B (zh) * 2011-08-30 2015-07-08 华为技术有限公司 队列管理的方法和装置
US8705366B2 (en) 2012-01-23 2014-04-22 Cisco Technology, Inc. Dynamic load balancing without packet reordering
US9258245B2 (en) * 2012-09-12 2016-02-09 Broadcom Corporation Multiple cell dequeue for high speed queueing
US9634953B2 (en) * 2013-04-26 2017-04-25 Mediatek Inc. Scheduler for deciding final output queue by selecting one of multiple candidate output queues and related method
US9450881B2 (en) * 2013-07-09 2016-09-20 Intel Corporation Method and system for traffic metering to limit a received packet rate
CN105610730B (zh) * 2014-11-19 2020-03-13 中兴通讯股份有限公司 Cpu与网络设备之间的消息交互方法及***
CN106375249B (zh) * 2016-09-22 2019-10-01 盛科网络(苏州)有限公司 交换芯片的控制方法及控制***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749837A (ja) * 1993-08-06 1995-02-21 Nec Corp オンライン端末からのバッチジョブ起動管理方式
JPH0895805A (ja) * 1994-09-27 1996-04-12 Hitachi Ltd タスク管理装置
KR0162765B1 (ko) * 1995-12-15 1999-01-15 양승택 고속 중형 컴퓨터의 입출력 스케쥴러 구동방법 및 그 장치
KR20010080208A (ko) * 1998-11-16 2001-08-22 에를링 블로메, 타게 뢰브그렌 처리 시스템 스케쥴링
KR20050061262A (ko) * 2003-12-18 2005-06-22 한국전자통신연구원 시분할 다중 전송시스템에서 가변길이 프레임 전송을 위한순방향에러정정 장치 및 그 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010676A1 (en) * 2003-06-30 2005-01-13 Muthaiah Venkatachalam Time-based transmission queue for traffic management of asynchronous transfer mode virtual circuits on a multi-threaded, multi-processor system
US20050053053A1 (en) * 2003-09-09 2005-03-10 Sonus Networks, Inc. Method and apparatus for synchronized transport of data through an asynchronous medium
US7408946B2 (en) * 2004-05-03 2008-08-05 Lucent Technologies Inc. Systems and methods for smooth and efficient round-robin scheduling
US7565496B2 (en) * 2005-01-22 2009-07-21 Cisco Technology, Inc. Sharing memory among multiple information channels

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749837A (ja) * 1993-08-06 1995-02-21 Nec Corp オンライン端末からのバッチジョブ起動管理方式
JPH0895805A (ja) * 1994-09-27 1996-04-12 Hitachi Ltd タスク管理装置
KR0162765B1 (ko) * 1995-12-15 1999-01-15 양승택 고속 중형 컴퓨터의 입출력 스케쥴러 구동방법 및 그 장치
KR20010080208A (ko) * 1998-11-16 2001-08-22 에를링 블로메, 타게 뢰브그렌 처리 시스템 스케쥴링
KR20050061262A (ko) * 2003-12-18 2005-06-22 한국전자통신연구원 시분할 다중 전송시스템에서 가변길이 프레임 전송을 위한순방향에러정정 장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338523A (zh) * 2014-12-30 2022-04-12 华为技术有限公司 一种报文转发方法和装置
KR20210050940A (ko) 2019-10-29 2021-05-10 고려대학교 산학협력단 스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치

Also Published As

Publication number Publication date
JP2007202153A (ja) 2007-08-09
US20070171929A1 (en) 2007-07-26
CN101009649A (zh) 2007-08-01

Similar Documents

Publication Publication Date Title
KR100716184B1 (ko) 네트워크 프로세서에서의 큐 관리 방법 및 그 장치
US20220311544A1 (en) System and method for facilitating efficient packet forwarding in a network interface controller (nic)
US9762497B2 (en) System, method and apparatus for network congestion management and network resource isolation
US6256315B1 (en) Network to network priority frame dequeuing
CN109120544B (zh) 一种数据中心网络中基于主机端流量调度的传输控制方法
US6765905B2 (en) Method for reducing packet data delay variation in an internet protocol network
US7558269B2 (en) Method for transmitting high-priority packets in an IP transmission network
WO2018210117A1 (zh) 一种拥塞控制方法、网络设备及其网络接口控制器
US7251219B2 (en) Method and apparatus to communicate flow control information in a duplex network processor system
WO2017016505A1 (zh) 一种数据入队与出队方法及队列管理单元
US7746783B1 (en) Method and apparatus for monitoring packets at high data rates
US7978609B2 (en) Systems and methods for improving packet scheduling accuracy
US20050141427A1 (en) Hierarchical flow-characterizing multiplexor
CN108259355B (zh) 一种报文转发方法和装置
CN104956637A (zh) 在多个逻辑网络连接中优先化封装数据包的方法、装置以及***
EP2979407A1 (en) Re-marking of packets for queue control
US8363668B2 (en) Avoiding unfair advantage in weighted round robin (WRR) scheduling
WO2010032533A1 (ja) ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法
WO2017045501A1 (zh) 一种报文调度方法和装置、存储介质
US7830797B1 (en) Preserving packet order for data flows when applying traffic shapers
US20040252711A1 (en) Protocol data unit queues
JP6982250B2 (ja) パケット転送装置、方法、及びプログラム
Baker et al. On queuing, marking, and dropping
US11784933B2 (en) Traffic shaping offload on a network interface controller
CN111245744A (zh) 一种报文传输控制方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee