KR102216523B1 - 네트워크 프로세서 패킷 처리 장치 및 그 방법 - Google Patents
네트워크 프로세서 패킷 처리 장치 및 그 방법 Download PDFInfo
- Publication number
- KR102216523B1 KR102216523B1 KR1020190050315A KR20190050315A KR102216523B1 KR 102216523 B1 KR102216523 B1 KR 102216523B1 KR 1020190050315 A KR1020190050315 A KR 1020190050315A KR 20190050315 A KR20190050315 A KR 20190050315A KR 102216523 B1 KR102216523 B1 KR 102216523B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- scheduling
- packet processing
- time
- current
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- 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/56—Queue scheduling implementing delay-aware scheduling
-
- 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/6295—Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 네트워크 프로세서 패킷 처리 장치 및 그 방법에 관한 것으로서, 동일 플로우의 패킷들을 서로 다른 패킷 처리기에서 처리하는 경우 서로 다른 패킷 처리기에서 처리된 동일 플로우 패킷들의 순서를 유지시켜주는 네트워크 프로세서 패킷 처리 장치 및 그 방법에 관한 것이다. 본 발명의 네트워크 프로세서 패킷 처리 방법은, 패킷 검사기, 패킷을 처리하는 복수의 패킷 처리기를 포함하는 프로세서 어레이부, 스케줄링 엔진과 상기 복수의 패킷 처리기와 각각 대응하는 복수의 스케줄링 테이블을 포함하는 스케줄링 테이블부를 포함하는 패킷 스케줄러를 포함하는 네트워크 프로세서 패킷 처리 장치의 동일 플로우의 패킷 처리 순서를 유지하도록 상기 복수의 패킷 처리기 중 어느 하나의 패킷 처리기가 패킷을 처리하도록 스케줄링하는 네트워크 프로세서 패킷 처리 방법에 있어서, 상기 패킷 검사기가 입력되는 현재 패킷의 예상 패킷 처리 시간을 추정하고 상기 현재 패킷의 입력될 때의 시간을 패킷 도착 시간으로 하는 단계; 상기 패킷 검사기가 상기 현재 패킷의 예상 패킷 처리 시간 및 패킷 도착 시간을 상기 패킷 스케줄러에 전송하는 단계; 상기 패킷 스케줄러가 현재 패킷의 예상 패킷 종료 시간이 직전 패킷의 예상 패킷 종료 시간 보다 길도록 제1 패킷 스케줄링을 수행하는 단계; 상기 패킷 스케줄러가 최소 예상 패킷 처리 종료 시간을 가지는 스케줄링 테이블에 현재 패킷을 할당하는 제2 패킷 스케줄링을 수행하는 단계; 및 스케줄링된 패킷 처리기가 현재 패킷을 처리하는 단계;를 포함할 수 있다. 본 발명은, 패킷 처리량을 증가시키고, 패킷 처리기의 사용량을 증가시키는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공할 수 있다.
Description
본 발명은 네트워크 프로세서 패킷 처리 장치 및 그 방법에 관한 것으로서, 동일 플로우의 패킷들을 서로 다른 패킷 처리기에서 처리하는 경우 서로 다른 패킷 처리기에서 처리된 동일 플로우 패킷들의 순서를 유지시켜주는 네트워크 프로세서 패킷 처리 장치 및 그 방법에 관한 것이다.
최근 네트워크 프로세서는 패킷 처리량을 높이기 위해 다중 패킷 처리기를 사용하여 패킷 수준의 병렬 처리를 수행한다. 그러나, 다수의 패킷 처리기에 의해 처리되는 패킷은 입력되는 패킷 플로우의 순서와 다른 순서로 출력되어 전송될 가능성이 있다. 이 경우, 네트워크 성능이 심각하게 저하되는 문제점이 있다. 따라서 네트워크 프로세서에 대한 가장 중요한 요구 사항 중 하나는 입력과 동일한 플로우로 패킷 출력의 순서를 유지하는 것이다.
일반적으로 패킷 순서를 보존하기 위해서 PFQ(Per-Flow Queuing) 및 SNM(Sequence Number Matching) 방법을 사용하였다. PFQ의 경우 동일한 플로우의 수신 패킷은 동일한 플로우 별 대기열에 할당된 다음 동일한 패킷 처리기에 순서대로 전달된다. 각 패킷 처리기가 할당된 패킷을 처리하고 패킷이 패킷 처리기에 들어오는 순서대로 출력 링크 스케줄러에 전송하면 동일한 플로우의 패킷의 올바른 출력 순서가 유지된다. 그러나 이러한 방법은 동일 플로우의 패킷을 동일한 패킷 처리기에 할당하기 때문에 동일한 플로우의 패킷이 연속적으로 처리되어야 하는 경우 패킷 처리기의 일부가 유휴 상태(idle state)가 된다. 즉, 패킷 처리기의 전체 사용율이 낮아지고 패킷 처리 속도가 낮아진다. 또한, SNM 방법은 입력되는 패킷에 고유 시퀀스 번호를 할당한다. 입력 패킷은 해당 패킷에 관계없이 여러 패킷 처리기에서 처리된다. 각 패킷 처리기에서 처리되는 패킷의 패킷 처리 시간이 패킷의 특징과 길이에 따라 다르므로 동일한 플로우의 패킷의 올바른 출력 순서를 위하여 패킷 시퀀스 번호와 출력 버퍼를 사용하여 정렬된다. 그러나 예기치 않은 예외(unexpected Exception)로 인해 특정 패킷이 패킷 처리기에서 지연되는 경우 동일한 플로우의 후속 패킷도 출력 버퍼에서 지연되어야하므로 예측할 수 없는 크기의 출력 버퍼가 패킷을 흐름 순서대로 정렬할 필요가 있다. 이에, SNM 방법은 출력 버퍼의 오버 플로우를 방지하기 위해 과도한 하드웨어 비용을 수반할 수 있고, 네트워크 프로세서의 성능이 낮아지는 문제점이 있다.
또한, 패킷 스케줄러에서 패킷의 순서를 유지하기 위해 RR 기반 패킷 스케줄러가 제안되었다. P-ORR (Packetized Order-Round-Robin) 패킷 스케줄링이라 불리는 잉여 RR과 적자 RR의 결합 버전이 제안되었다. 이 알고리즘은 각 스케쥴링 라운드에서 주어진 패킷 수를 스케쥴링하기 때문에 인접 스케쥴링 라운드 사이의 패킷 처리기의 유휴 시간은 패킷 처리기의 수가 증가함에 따라 증가한다. 또한, 패킷 길이의 변화가 증가함에 따라 순서가 맞지 않는(out-of-order) 패킷이 출력으로 전송되는 문제가 있다.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 동일 플로우의 패킷들을 서로 다른 패킷 처리기에서 처리하는 경우 서로 다른 패킷 처리기에서 처리된 동일 플로우 패킷들의 순서를 유지시켜주는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공하는 것이다.
또한, 본 발명의 목적은, 패킷 처리량을 증가시키는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공하는 것이다.
또한, 본 발명의 목적은, 패킷 처리기의 사용량을 증가시키는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공하는 것이다.
또한, 본 발명의 목적은, 네트워크 프로세서의 전체 성능을 향상시키는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공하는 것이다.
또한, 본 발명의 목적은, 패킷 플로우의 순서를 유지하기 위한 최소한의 하드웨어 오버헤드를 갖는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공하는 것이다.
또한, 본 발명의 목적은, 하드웨어 비용을 최소화하는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은, 입력되는 현재 패킷의 예상 패킷 처리 시간()을 추정하고 상기 현재 패킷의 입력될 때의 시간을 패킷 도착 시간()으로 하고, 상기 현재 패킷의 예상 패킷 처리 시간()과 패킷 도착 시간()을 출력하는 패킷 검사기; 패킷을 처리하는 복수의 패킷 처리기를 포함하는 프로세서 어레이부; 및 상기 현재 패킷의 예상 패킷 처리 시간() 및 패킷 도착 시간()을 기반으로 패킷 처리 시작 시간()과 예상 패킷 처리 종료 시간()을 포함하는 상기 현재 패킷의 패킷 처리 정보를 생성하는 스케줄링 엔진과, 상기 복수의 패킷 처리기와 각각 대응한 복수의 스케줄링 테이블을 포함하는 스케줄링 테이블부를 포함하고, 상기 스케줄링 엔진이 생성된 상기 패킷 처리 정보를 기초로 동일 플로우의 패킷 처리 순서를 유지하도록 상기 복수의 스케줄링 테이블 중 어느 하나의 스케줄링 테이블에 저장하는 패킷 스케줄러;를 포함하고, 상기 스케줄링 테이블은 상기 복수의 스케줄링 테이블 중 가장 먼저 패킷 처리 종료가 예상되는 스케줄링 테이블을 탐색하는 스케줄링 테이블 관리부를 포함하고, 상기 스케줄링 엔진은 상기 테이블 관리부가 탐색한 스케줄링 테이블에 상기 현재 패킷의 패킷 처리 정보를 저장하는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다.
또한, 본 발명은, 상기 스케줄링 테이블 관리부는 탐색한 스케줄링 테이블의 예상 패킷 처리 종료 시간을 최소 예상 패킷 종료 시간(EFmin)으로 하여 상기 스케줄링 엔진에 전송하고, 상기 스케줄링 엔진은 스케줄링할 현재 패킷의 패킷 처리 시작 시간()이 상기 최소 예상 패킷 종료 시간(EFmin)보다 작거나 같으면 탐색된 스케줄링 테이블에 패킷 처리 시작 시간()과 예상 패킷 처리 종료 시간()을 수학식 4에 따른 보정 시간(c)만큼 증가시킨 후 상기 현재 패킷의 패킷 처리 정보를 저장하는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다.
(수학식 4)
또한, 본 발명은, 상기 스케줄링 엔진은 상기 현재 패킷과 현재 패킷의 동일 플로우 이전 순서의 패킷을 기초로 상대 종료 시간()을 계산하고, 상기 상대 종료 시간이 0이하이면, 상기 스케줄링 엔진은 상기 현재 패킷의 예상 패킷 처리 시간()과 상기 동일 플로우 이전 순서 패킷의 예상 패킷 처리 종료 시간()을 기초로 상기 현재 패킷의 패킷 처리 시작 시간()을 계산하고, 상기 상대 종료 시간이 0을 초과하면, 상기 스케줄링 엔진은 상기 현재 패킷의 패킷 도착 시간()을 기초로 상기 현재 패킷의 패킷 처리 시작 시간()을 계산하고, 상기 스케줄링 엔진은 계산된 현재 패킷의 패킷 처리 시작 시간()을 기초로 상기 현재 패킷의 예상 패킷 처리 종료 시간()을 계산하는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다.
(수학식 1)
또한, 본 발명은, 상기 프로세서 어레이부가 상기 복수의 패킷 처리기 중 어느 하나의 패킷 처리기의 패킷 처리 지연 사건을 판단하고 패킷 처리 지연 정보를 생성하고, 상기 스케줄링 엔진이 지연 사건이 발생한 패킷 처리기에 할당된 지연 사건 직후 처리될 패킷의 패킷 처리 정보를 조정하여 상기 스케줄링 테이블에 저장하는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다.
또한, 본 발명은, 상기 패킷 처리 지연 정보는 실제 패킷 처리 종료 시간(AF)을 포함하고, 상기 스케줄링 엔진은 상기 지연 사건이 발생한 패킷 처리기에 할당된 지연 사건 직후 처리될 패킷에 해당되는 첫번째 엔트리의 패킷 처리 시작 시간(S)이 상기 실제 패킷 처리 종료 시간(AF) 이상이면 상기 첫번째 엔트리의 패킷 처리 시작 시간과 예상 패킷 처리 종료 시간에 수학식 5에 따른 에러 시간(e)만큼 증가시켜 상기 첫번째 엔트리에 패킷 처리 정보를 저장하는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다.
(수학식 5)
본 발명은, 패킷 검사기, 패킷을 처리하는 복수의 패킷 처리기를 포함하는 프로세서 어레이부, 스케줄링 엔진과 상기 복수의 패킷 처리기와 각각 대응하는 복수의 스케줄링 테이블을 포함하는 스케줄링 테이블부를 포함하는 패킷 스케줄러를 포함하는 네트워크 프로세서 패킷 처리 장치의 패킷을 스케줄링하는 네트워크 프로세서 패킷 처리 방법에 있어서, 상기 패킷 검사기가 입력되는 현재 패킷의 예상 패킷 처리 시간을 추정하고 상기 현재 패킷의 입력될 때의 시간을 패킷 도착 시간으로 하는 단계; 상기 패킷 검사기가 상기 현재 패킷의 예상 패킷 처리 시간 및 패킷 도착 시간을 상기 패킷 스케줄러에 전송하는 단계; 상기 패킷 스케줄러가 현재 패킷의 예상 패킷 종료 시간이 직전 패킷의 예상 패킷 종료 시간 보다 길도록 제1 패킷 스케줄링을 수행하는 단계; 상기 패킷 스케줄러가 최소 예상 패킷 처리 종료 시간을 가지는 스케줄링 테이블에 현재 패킷을 할당하는 제2 패킷 스케줄링을 수행하는 단계; 및 스케줄링된 패킷 처리기가 현재 패킷을 처리하는 단계;를 포함하는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다.
또한, 본 발명은, 상기 제1 패킷 스케줄링을 수행하는 단계는, 상기 스케줄링 엔진이 상기 현재 패킷의 예상 패킷 처리 시간 및 패킷 도착 시간에 기초하여 패컷 처리 시작 시간 및 예상 패킷 처리 종료 시간을 계산하고, 상기 스케줄링 테이블은 상기 복수의 스케줄링 테이블 각각의 마지막에 할당된 패킷의 패킷 처리 정보에 관한 엔트리를 포인팅하는 스케줄링 테이블 관리부를 포함하고, 상기 제2 패킷 스케줄링을 수행하는 단계는, 상기 스케줄링 테이블이 최소 예상 패킷 종료 시간(EFmin)을 가지는 스케줄링 테이블을 탐색하는 단계; 상기 스케줄링 엔진이 상기 현재 패킷의 패킷 처리 시작 시간()이 상기 최소 예상 패킷 종료 시간(EFmin)보다 작거나 같은지 판단하는 단계; 상기 스케줄링 엔진이 상기 현재 패킷의 패킷 처리 시작 시간()이 상기 최소 예상 패킷 종료 시간(EFmin)보다 작거나 같으면 상기 현재 패킷의 패킷 처리 시작 시간()과 예상 패킷 처리 종료 시간()을 수학식 4에 따른 보정 시간(c)만큼 증가시키는 단계; 상기 스케줄링 엔진이 탐색된 스케줄링 테이블의 다음 엔트리에 상기 증가된 상기 현재 패킷의 패킷 처리 시작 시간()과 예상 패킷 처리 종료 시간()을 포함하는 패킷 처리 정보를 저장하는 단계를 포함하는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다.
또한, 본 발명은, 상기 네트워크 프로세서 패킷 처리 장치는 출력 시퀀스 관리부를 더 포함하고, 현재 패킷을 처리하는 단계 후에 상기 프로세서 어레이부가 패킷 처리 지연 사건 발생을 판단하는 단계; 패킷 처리 지연 사건이 발생하면 상기 출력 시퀀스 관리부가 상기 지연 사건이 발생된 패킷 처리기에서 처리된 패킷의 출력 순서를 올바르게 정렬하는 단계;를 더 포함하는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다.
또한, 본 발명은, 패킷 처리 지연 사건이 발생하면 상기 스케줄링 엔진이 지연 사건 발생 패킷 처리기에 대한 스케줄링 테이블의 패킷 처리 정보를 조정하는 제3 패킷 스케줄링을 수행하는 단계;를 더 포함하는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다.
또한, 본 발명은, 상기 제3 패킷 스케줄링을 수행하는 단계는, 상기 스케줄링 엔진이 실제 패킷 처리 종료 시간(AF)이 지연 사건이 발생한 패킷 처리기에 할당된 지연 사건 직후 처리될 패킷에 해당되는 첫번째 엔트리의 패킷 처리 시작 시간(S)이 이상인지 판단하는 단계; 상기 실제 패킷 처리 종료 시간(AF)이 상기 첫번째 엔트리의 패킷 처리 시작 시간(S) 이상이면, 상기 스케줄링 엔진이 수학식 5에 따른 에러 시간(e)을 계산하는 단계 및 상기 첫번째 엔트리를 현재 엔트리로 취급하는 단계; 및 상기 스케줄링 엔진이 에러 시간(e) 만큼 상기 첫번째 엔트리의 패킷 처리 시작 시간(S)과 예상 패킷 처리 종료 시간(EF)을 증가시키는 단계;를 포함하는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다.
(수학식 5)
또한, 본 발명은, 상기 제3 패킷 스케줄링을 수행하는 단계는, 상기 스케줄링 엔진이 에러 시간(e) 만큼 상기 첫번째 엔트리의 패킷 처리 시작 시간(S)과 예상 패킷 처리 종료 시간(EF)을 증가시키는 단계 후 상기 현재 엔트리의 패킷과 다음 엔트리의 패킷에 대한 에러 시간(e)을 수학식 6에 따라 계산하고 다음 엔트리를 현재 엔트리로 취급하는 단계; 및 상기 현재 엔트리의 패킷과 다음 엔트리의 패킷에 대한 에러 시간(e)이 0 미만이거나 현재 엔트리가 마지막 엔트리인지 판단하는 단계;를 더 포함하는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다.
(수학식 6)
(여기서 EF of the current entry는 현재 엔트리의 예상 패킷 처리 종료 시간이고 S of the next entry는 다음 엔트리의 패킷 처리 시작 시간을 나타냄)
본 발명은 동일 플로우의 패킷들을 서로 다른 패킷 처리기에서 처리하는 경우 서로 다른 패킷 처리기에서 처리된 동일 플로우 패킷들의 순서를 유지시켜주는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공할 수 있다.
또한, 본 발명은, 패킷 처리량을 증가시키는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공할 수 있다.
또한, 본 발명은, 패킷 처리기의 사용량을 증가시키는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공할 수 있다.
또한, 본 발명은, 네트워크 프로세서의 전체 성능을 향상시키는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공할 수 있다.
또한, 본 발명은, 패킷 플로우의 순서를 유지하기 위한 최소한의 하드웨어 오버헤드를 갖는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공할 수 있다.
또한, 본 발명은, 하드웨어 비용을 최소화하는 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치를 설명하기 위한 블록도이다.
도 2는 패킷 스케줄러와 프로세서 어레이부를 설명하기 위한 블록도이다.
도 3은 스케줄링 테이블부를 설명하기 위한 블록도이다.
도 4는 패킷 스케줄링의 일 예를 설명하기 위한 시간 다이어그램이다.
도 5는 패킷 스케줄러의 제1 패킷 스케줄링 방법을 설명하기 위한 순서도이다.
도 6은 패킷 스케줄러의 제2 패킷 스케줄링 방법을 설명하기 위한 순서도이다.
도 7은 도 5의 제1 패킷 스케줄링과 도 6의 제2 패킷이 스케줄링을 예시하는 의사코드이다.
도 8은 패킷 스케줄러의 제3 패킷 스케줄링 방법을 설명하기 위한 순서도이다.
도 9는 도 8의 제3 패킷 스케줄링을 예시하는 의사코드이다.
도 10은 본 발명의 실시예에 따른 패킷 처리 장치와 종래 기술에 따른 패킷 처리 장치의 패킷 처리기 수에 따른 패킷 처리기의 평균 사용량을 비교한 모습이다.
도 11은 본 발명의 실시예에 따른 패킷 처리 장치와 종래 기술에 따른 패킷 처리 장치의 출력 버퍼 내의 사이클 당 평균 패킷수를 비교한 모습이다.
도 12는 본 발명의 실시예에 따른 패킷 처리 장치에서 오차율을 달리하여 패킷 처리기 수에 따른 패킷 처리기의 평균 패킷 처리 속도를 비교한 모습이다.
도 13는 본 발명의 실시예에 따른 패킷 처리 장치에서 오차율을 달리하여 패킷 처리기 수에 따른 패킷 처리기의 평균 사용량를 비교한 모습이다.
도 14는 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법을 설명하기 위한 순서도이다.
도 2는 패킷 스케줄러와 프로세서 어레이부를 설명하기 위한 블록도이다.
도 3은 스케줄링 테이블부를 설명하기 위한 블록도이다.
도 4는 패킷 스케줄링의 일 예를 설명하기 위한 시간 다이어그램이다.
도 5는 패킷 스케줄러의 제1 패킷 스케줄링 방법을 설명하기 위한 순서도이다.
도 6은 패킷 스케줄러의 제2 패킷 스케줄링 방법을 설명하기 위한 순서도이다.
도 7은 도 5의 제1 패킷 스케줄링과 도 6의 제2 패킷이 스케줄링을 예시하는 의사코드이다.
도 8은 패킷 스케줄러의 제3 패킷 스케줄링 방법을 설명하기 위한 순서도이다.
도 9는 도 8의 제3 패킷 스케줄링을 예시하는 의사코드이다.
도 10은 본 발명의 실시예에 따른 패킷 처리 장치와 종래 기술에 따른 패킷 처리 장치의 패킷 처리기 수에 따른 패킷 처리기의 평균 사용량을 비교한 모습이다.
도 11은 본 발명의 실시예에 따른 패킷 처리 장치와 종래 기술에 따른 패킷 처리 장치의 출력 버퍼 내의 사이클 당 평균 패킷수를 비교한 모습이다.
도 12는 본 발명의 실시예에 따른 패킷 처리 장치에서 오차율을 달리하여 패킷 처리기 수에 따른 패킷 처리기의 평균 패킷 처리 속도를 비교한 모습이다.
도 13는 본 발명의 실시예에 따른 패킷 처리 장치에서 오차율을 달리하여 패킷 처리기 수에 따른 패킷 처리기의 평균 사용량를 비교한 모습이다.
도 14는 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법을 설명하기 위한 순서도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치를 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치(10)는 일 순서를 갖는 다수의 패킷을 포함하는 패킷 플로우가 입력되고 입력된 다수의 패킷을 처리한 후 입력되던 순서대로 패킷 플로우를 출력할 수 있다.
본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치(10)는 패킷 검사기(100)를 포함할 수 있다. 패킷 검사기(100)는 입력되는 패킷의 플로우 정보를 분석하여 플로우 ID(i)를 감지할 수 있다. 또한, 패킷 검사기(100)는 입력되는 패킷에 고유 번호(k)를 할당할 수 있다. 또한, 패킷 검사기(100)는 입력되는 패킷에 대한 서비스 특성을 반영하여 고유 번호(k)가 할당된 패킷에 대한 예상 패킷 처리 시간()을 추정할 수 있다. 또한, 패킷 검사기(100)는 예상 패킷 처리 시간() 및 패킷 도착 시간()을 패킷 스케줄러(300)에게 전송할 수 있다. 일 예로, 패킷 도착 시간()은 처리할 패킷이 패킷 검사기(100)에 도착한 시간일 수 있다. 일 예로, 패킷 스케줄링에 관련된 시간의 단위는 네트워크 프로세서 패킷 처리 장치(10) 상의 단위 시간(t)이 사용될 수 있다. 또한, 패킷 검사기(100)는 입력된 패킷의 데이터를 메모리 주소()를 할당하여 주메모리(200)에 저장할 수 있다.
본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치(10)는 주메모리(200)를 포함할 수 있다. 주메모리(200)는 패킷 검사기(100)에 의해 할당된 메모리 주소()에 패킷의 데이터를 저장될 수 있다. 또한, 주메모리(200)는 스케줄링된 패킷 처리기가 스케줄링 테이블의 메모리 주소()를 참조하여 패킷 데이터에 접근할 수 있게 한다. 또한, 주메모리(200)는 메모리 주소()에 저장된 패킷 데이터를 링크 스케줄러(600)에게 제공할 수 있다.
본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치(10)는 패킷 스케줄러(300)를 포함할 수 있다. 패킷 스케줄러(300)는 입력된 패킷의 예상 패킷 처리 시간() 및 패킷 도착 시간()을 기반으로 패킷 처리 정보를 생성하고, 생성된 패킷 처리 정보를 사용해 패킷을 적절한 패킷 처리기에 할당함으로써, 패킷을 스케줄링할 수 있다. 즉, 패킷 스케줄러(300)는 각 플로우별 패킷들을 서로 다른 패킷 처리기를 사용해 처리하더라도 처리가 완료된 동일 플로우의 패킷들의 순서가 유지되어 출력될 수 있도록 패킷을 스케줄링할 수 있다.
본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치(10)는 프로세서 어레이부(400)를 포함할 수 있다. 프로세서 어레이부(400)는 복수의 패킷 처리기를 포함할 수 있다. 또한, 프로세서 어레이부(400)는 입력된 패킷이 패킷 스케줄러(300)에 의해 스케줄링되면 패킷 처리기가 스케줄링된 패킷을 처리할 수 있다. 패킷 처리기는 스케줄링 테이블의 메모리 주소()를 이용하여 주메모리(200)에 저장된 패킷 데이터에 접근할 수 있다. 또한, 프로세서 어레이부(400)는 처리된 패킷을 출력 시퀀스 관리부(500)에 전송할 수 있다.
본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치(10)는 출력 시퀀스 관리부(500)를 포함할 수 있다. 출력 시퀀스 관리부(500)는 프로세서 어레이부(400)에서 출력된 패킷의 순서가 올바르지 않은 경우 패킷의 순서를 올바르게 하여 링크 스케줄러(600)에 패킷 플로우를 전송할 수 있다. 일 예로, 출력 시퀀스 관리부(500)는 입력된 패킷의 순서가 올바르면 버퍼링하지 않고, 입력된 패킷의 순서가 올바르지 않으면 패킷을 동일 플로우의 직전 패킷들의 처리가 종료될 때까지 버퍼링할 수 있다. 출력 시퀀스 관리부(500)는 프로세서 어레이부(400)의 복수의 패킷 처리기 각각에 대응한 복수의 버퍼를 포함할 수 있다.
본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치(10)는 링크 스케줄러(600)를 포함할 수 있다. 링크 스케줄러(600)는 처리가 완료된 패킷 플로우를 링크로 출력할 수 있다. 일 예로, 링크 스케줄러(600)는 출력 시퀀스 관리부(500)에서 제공되는 패킷 순서대로 주 메모리(200)의 메모리 주소()에 저장된 패킷 데이터를 링크로 전송할 수 있다.
도 2는 패킷 스케줄러와 프로세서 어레이부를 설명하기 위한 블록도이고, 도 3은 스케줄링 테이블부를 설명하기 위한 블록도이고, 도 4는 패킷 스케줄링의 일 예를 설명하기 위한 시간 다이어그램이다.
도 2를 참조하면, 패킷 스케줄러(300)는 스케줄링 엔진(310)과 스케줄링 테이블부(320)를 포함할 수 있다.
스케줄링 엔진(310)은 동일한 플로우의 패킷이 서로 다른 패킷 처리기에 의해 병렬로 처리되더라도 정확한 순서가 프로세서 어레이부(400)의 출력에서 유지되도록 패킷을 스케줄할 수 있다. 스케줄링 엔진(310)은 입력된 패킷의 예상 패킷 처리 시간() 및 패킷 도착 시간()을 기반으로 패킷 처리 정보를 생성하는 제1 패킷 스케줄링을 수행할 수 있다. 제1 패킷 스케줄링은 도 5의 제1 패킷 스케줄링 방법을 따를 수 있다. 패킷 처리 정보는 패킷 처리 시작 시간() 및 예상 패킷 처리 종료 시간()을 포함할 수 있다. 또한, 스케줄링 엔진(310)은 현재 패킷(k)의 패킷 처리 정보와 동일한 플로우(i)의 직전에 스케줄링된 패킷(k-1)의 패킷 처리 정보를 이용하여, 현재 패킷의 패킷 처리 정보를 결정할 수 있다. 스케줄링 엔진(310)은, 현재 패킷의 예상 패킷 처리 종료 시간()이 직전의 패킷의 예상 패킷 처리 종료 시간()과 동일하거나 빠르면, 현재 패킷의 패킷 처리 시작 시간()을 조정하여 예상 패킷 처리 종료 시간()을 직전 패킷의 예상 패킷 처리 종료 시간()보다 늦도록 스케줄링 할 수 있다. 보다 구체적으로, 스케줄링 엔진(310)은 현재 패킷의 패킷 처리 시작 시간()을 지연시켜 스케줄링 되어야 하는지 여부를 결정하기 위하여 현재 패킷의 상대 종료 시간()을 수학식 1을 이용하여 계산할 수 있다.
(수학식 1)
수학식 1에서, 는 일정 지연 시간이다. 일정 지연 시간()은 현재 패킷이 패킷 검사기(100)에 도착한 시간부터 패킷 스케줄러(300)의 스케줄링 수행 종료 시간까지의 일정한 지연 시간이다. 예를 들어, 일정 지연 시간()은 실험에 의한 평균 값일 수 있고, 네트워크 프로세서의 환경에 따라 변경될 수 있다. 스케줄링 엔진(310)은 (수학식 2)를 이용하여 현재 패킷의 상대 종료 시간()이 0보다 작거나 같으면 패킷 처리 시작 시간()을 조절하고 상대 종료 시간()이 0보다 크면 패킷 처리 시작 시간()을 유지할 수 있다.
(수학식 2)
또한, 스케줄링 엔진(310)은 현재 패킷의 상대 종료 시간()에 기반하여 패킷 처리 시작 시간()이 결정되면 수학식 3을 이용하여 현재 패킷의 예상 패킷 처리 종료 시간() 결정할 수 있다.
(수학식 3)
예를 들어, 도 4를 참조하면, 패킷 검사기(100)는 제1 플로우(i=1)의 제1 패킷(k=1)의 제1 패킷 도착 시간()과 제1 예상 패킷 처리 시간()을 패킷 스케줄러(300)에 전송할 수 있다. 패킷 스케줄러(300)는 일련의 패킷 스케줄링 결과 제1 패킷 처리 시작 시간()은 t+1로 결정하고, 제1 예상 패킷 처리 종료 시간()은 t+7로 결정할 수 있다. 패킷 검사기(100)는 제1 플로우(i=1)의 제2 패킷(k=2)의 제2 패킷 도착 시간()과 제2 예상 패킷 처리 시간()을 패킷 스케줄러(300)에 전송할 수 있다. 패킷 스케줄러(300)는 전송된 제2 패킷 도착 시간()과 제2 예상 패킷 처리 시간()을 수학식 1에 적용하여 제2 패킷의 제1 패킷에 대한 상대 종료 시간()이 -2임을 계산할 수 있다. 패킷 스케줄러(300)는 수학식 2를 이용하여 상대 종료 시간()이 0보다 작기 때문에 제2 패킷 처리 시작 시간()이 t+5로 조정할 수 있다. 패킷 스케줄러(300)는 조정된 제2 패킷 처리 시작 시간()을 수학식 3에 적용하여 제2 예상 패킷 처리 종료 시간()을 t+8로 결정할 수 있다. 이에, 패킷 스케줄러(300)는 제2 패킷(k=2)의 제2 예상 패킷 처리 종료 시간()을 제1 패킷(k=1)의 제1 예상 패킷 처리 종료 시간()보다 늦도록 스케줄링 할 수 있다.
또한, 스케줄링 엔진(310)은 스케줄링되어 결정된 패킷 처리 정보를 현재 패킷을 처리하기로 스케줄링된 소정의 패킷 처리기에 대응한 소정의 스케줄링 테이블에 저장할 수 있다.
스케줄링 테이블부(320)는 프로세스 어레이부(400)의 복수의 패킷 처리기(PE1 내지 PEM)에 대응한 복수의 스케줄링 테이블(ST1 내지 STM)을 포함할 수 있다. 복수의 스케줄링 테이블(ST1 내지 STM)은 복수의 패킷 처리기(PE1 내지 PEM)의 각각에 대한 작업 대기열 일 수 있다. 복수의 스케줄링 테이블(ST1 내지 STM)의 각 스케줄링 테이블은 스케줄링된 패킷의 패킷 처리 정보가 스케줄링 엔진(310)에 의해 저장될 수 있다. 일 예로, 패킷 처리 정보는 스케줄링된 패킷에 관한 엔트리 주소(Entery), 플로우 ID(FID), 고유 번호(SQN), 패킷 처리 시작 시간(S), 예상 패킷 처리 종료 시간(EF), 주 메모리 주소(M), 다음 엔트리 주소(NE)를 포함할 수 있다. 예를 들어, 도 3을 참조하면, 제1 스케줄링 테이블(ST1)은 제1 패킷 처리기(PE1)에서 처리될 패킷에 대한 패킷 처리 정보를 저장할 수 있다. 제1 스케줄링 테이블(ST1)은 먼저 i 플로우의 k 패킷에 대한 패킷 처리 정보가 저장되고, 다음 처리될 h 플로우의 l 패킷에 대한 패킷 처리 정보가 저장되고, 다음 처리될 g 플로우의 m 패킷에 대한 패킷 처리 정보를 저장할 수 있다. 제1 스케줄링 테이블(ST1)은 스택 형식으로 일 패킷 처리 정보의 다음 엔트리 주소(NE)에 이후 처리될 패킷의 패킷 처리 정보의 엔트리 주소(E)가 저장될 수 있다.
또한, 스케줄링 테이블부(320)는 스케줄링 테이블 관리부(325)를 포함할 수 있다. 스케줄링 테이블 관리부(325)는 스케줄링 엔진(310)이 제2 패킷 스케줄링을 수행하는데 이용될 수 있다. 제2 패킷 스케줄링은 스케줄링 테이블 관리부(325)가 가장 먼저 패킷 처리가 종료될 패킷 처리기를 탐색하고, 탐색된 패킷 처리기가 현재 패킷을 처리할 수 있도록 스케줄링하는 것이다. 또한, 제2 패킷 스케줄링은 도 6의 제2 패킷 스케줄링 방법 또는 도 7의 의사코드를 따를 수 있다. 보다 구체적으로, 도 3을 참조하면, 스케줄링 테이블 관리부(320)는 복수의 스케줄링 테이블(ST1 내지 STM) 각각의 마지막에 할당된 패킷의 패킷 처리 정보의 다음 엔트리 주소(NE)를 포인팅할 수 있다. 이에 스케줄링 테이블 관리부(320)는 복수의 스케줄링 테이블(ST1 내지 STM) 각각의 마지막에 할당된 패킷의 패킷 처리 정보 중 예상 패킷 처리 종료 시간(EF)이 가장 빠른 스케줄링 테이블을 탐색할 수 있다. 스케줄링 테이블 관리부(320)는 탐색된 스케줄링 테이블의 예상 패킷 처리 종료 시간(EF)을 최소 예상 패킷 처리 종료 시간(EFmin)으로 하여 스케줄링 엔진(310)에 전송할 수 있다. 스케줄링 엔진(310)은 스케줄링할 패킷의 패킷 처리 시작 시간()이 최소 패킷 처리 종료 시간(EFmin)보다 작거나 같으면 탐색된 스케줄링 테이블에 패킷 처리 시작 시간()과 예상 패킷 처리 종료 시간()을 수학식 4에 따른 보정 시간(c)만큼 증가시킨 후 패킷 처리 정보를 저장함으로 스케줄링할 패킷을 스케줄링 할 수 있다.
(수학식 4)
또한, 스케줄링 엔진(310)은 스케줄링할 패킷의 패킷 처리 시작 시간()이 최소 패킷 처리 종료 시간(EFmin)보다 크면 탐색된 스케줄링 테이블에 패킷 처리 정보를 저장함으로 스케줄링할 패킷을 스케줄링 할 수 있다.
프로세서 어레이부(400)는 복수의 패킷 처리기(PE1 내지 PEM)를 포함하여 스케줄링 엔진(310)이 제3 패킷 스케줄링을 수행하는데 이용될 수 있다. 제3 패킷 스케줄링은 프로세서 어레이부(400)가 각 패킷 처리기의 패킷 처리 수행 중 발생한 패킷 처리 지연 사건을 판단하고, 스케줄링 엔진(310)이 패킷 처리 지연 정보를 이용하여 현재 패킷을 처리할 수 있도록 스케줄링하는 것이다. 또한 제3 패킷 스케줄링은 도 8의 제3 패킷 스케줄링 방법 또는 도 9의 의사 코드를 따를 수 있다. 보다 구체적으로, 패킷 처리 지연 사건은 예상 패킷 처리 시간이 부정확하거나 예기치 않은 예외로 인하여 발생할 수 있다. 일 예로, 패킷 처리 지연 사건은 소정의 패킷 처리기에서 패킷 처리의 실제 패킷 처리 종료 시간()이 예상 패킷 처리 종료 시간()과 일치하지 않은 경우이다. 실제 패킷 처리 종료 시간()이 예상 패킷 처리 종료 시간()보다 작으면, 출력 시퀀스 관리부(500)는 i 플로우의 k 패킷을 i 플로우의 k 패킷 이전 순서의 패킷들의 패킷 처리가 종료될 때까지 버퍼링할 수 있다. 또한, 실제 패킷 처리 종료 시간()이 예상 패킷 처리 종료 시간()보다 크면, i 플로우의 k 패킷의 패킷 처리가 종료될 때까지 i 플로우의 k 패킷 이후 순서의 패킷을 버퍼링할 수 있다. 또한, 프로세서 어레이부(400)는 실제 패킷 처리 종료 시간()을 스케줄링 엔진(310)에게 전송할 수 있다. 처리 지연 사건이 발생한 경우, 패킷 스케줄링 엔진(310)은 k 패킷이 할당되었던 스케줄 테이블에 저장되어 있는 패킷 처리 정보를 조정할 수 있다. 보다 구체적으로, 패킷 스케줄링 엔진(310)은 k 패킷이 할당되었던 스케줄링 테이블의 첫번째 엔트리의 패킷 처리 시작 시간(S)(즉, k 패킷이 할당된 스케줄링 테이블에서 k 패킷 이후 처리될 패킷의 패킷 처리 시작 시간)이 실제 패킷 처리 종료 시간() 보다 작거나 같으면 해당 스케줄링 테이블의 첫번째 엔트리에 대한 패킷 처리 시작 시간(S)과 예상 패킷 처리 종료 시간(EF)을 수학식 5에 따른 에러 시간(e)만큼 증가시킨 후 패킷 처리 정보를 저장함으로 첫번째 엔트리의 패킷을 스케줄링 할 수 있다.
(수학식 5)
패킷 스케줄링 엔진(310)은 k 패킷이 할당되었던 스케줄링 테이블의 첫번째 엔트리의 패킷 처리 시작 시간(S)이 실제 패킷 처리 종료 시간() 보다 크면 에러 시간(e) 조정 없이 패킷 처리 정보를 저장함으로 첫번째 엔트리의 패킷을 스케줄링 할 수 있다. 이 후, 패킷 스케줄링 엔진(310)은 후속 엔트리의 패킷 처리 정보를 수학식 6에 따른 에러 시간(e)이 0보다 작거나 해당 스케줄링 테이블의 마지막 엔트리에 도달할 때까지 패킷 처리 시작 시간(S)과 예상 패킷 처리 종료 시간(EF)을 수학식 6에 따른 에러 시간(e)만큼 증가시킨 후 저장함으로 후속 엔트리의 패킷을 스케줄링 할 수 있다.
(수학식 6)
따라서, 본 발명은 동일 플로우의 패킷들을 서로 다른 패킷 처리기에서 처리하는 경우 서로 다른 패킷 처리기에서 처리된 동일 플로우 패킷들의 순서를 유지시켜주는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다. 또한, 본 발명은, 패킷 처리량을 증가시키는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다. 또한, 본 발명은, 패킷 처리기의 사용량을 증가시키는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다. 또한, 본 발명은, 네트워크 프로세서의 전체 성능을 향상시키는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다. 또한, 본 발명은, 패킷 플로우의 순서를 유지하기 위한 최소한의 하드웨어 오버헤드를 갖는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다. 또한, 본 발명은, 하드웨어 비용을 최소화하는 네트워크 프로세서 패킷 처리 장치를 제공할 수 있다.
도 5는 패킷 스케줄러의 제1 패킷 스케줄링 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, 제1 패킷 스케줄링 방법은, 스케줄링 엔진(310)이 현재 패킷과 동일 플로우의 이전 순서 패킷을 기초로 수학식 1을 이용하여 상대 종료 시간()을 계산하는 단계(S501)을 포함할 수 있다.
또한, 제1 패킷 스케줄링 방법은, 상대 종료 시간()이 0 이하이면, 스케줄링 엔진(310)이 현재 패킷의 예상 패킷 처리 시간()과 동일 플로우 이전 순서 패킷의 예상 패킷 처리 종료 시간()을 기초로 수학식 2에 따라 패킷 처리 시작 시간()을 계산하는 단계(S503)을 포함할 수 있다.
또한, 제1 패킷 스케줄링 방법은 상대 종료 시간()이 0보다 크면, 스케줄링 엔진(310)이 패킷 도착 시간()을 기초로 수학식 2에 따라 패킷 처리 시작 시간()을 계산하는 단계(S504)을 포함할 수 있다.
또한, 제1 패킷 스케줄링 방법은, 패킷 처리 시작 시간()이 계산되면, 스케줄링 엔진(310)이 수학식 3을 이용하여 예상 패킷 처리 종료 시간()을 계산하는 단계(S505)를 포함할 수 있다.
도 6은 패킷 스케줄러의 제2 패킷 스케줄링 방법을 설명하기 위한 순서도이다.
도 6을 참조하면, 제2 패킷 스케줄링 방법은, 스케줄링 테이블 관리부(320)는 최소 예상 패킷 처리 종료 시간(EFmin)을 가지는 스케줄링 테이블을 탐색하는 단계(S601)을 포함할 수 있다.
또한, 제2 패킷 스케줄링 방법은, 스케줄링 엔진(310)이 최소 예상 패킷 처리 종료 시간(EFmin)이 스케줄링할 패킷의 패킷 처리 시작 시간() 보다 크거나 작은지 판단하는 단계(S602)를 포함할 수 있다.
또한, 제2 패킷 스케줄링 방법은, 최소 예상 패킷 처리 종료 시간(EFmin)이 스케줄링할 패킷의 패킷 처리 시작 시간() 보다 크거나 같으면, 스케줄링 엔진(310)이 패킷 처리 시작 시간()과 예상 패킷 처리 종료 시간()을 수학식 4에 따른 보정 시간(c)만큼 증가시키는 단계(S603)을 포함할 수 있다.
또한, 제2 패킷 스케줄링 방법은, 최소 예상 패킷 처리 종료 시간(EFmin)이 스케줄링할 패킷의 패킷 처리 시작 시간() 보다 작거나 패킷 처리 시작 시간()과 예상 패킷 처리 종료 시간()을 수학식 4에 따른 보정 시간(c)만큼 증가시키면, 스케줄링 엔진(310)이 탐색된 스케줄링 테이블의 다음 빈 엔트리에 패킷 처리 정보를 저장하는 단계(S604)를 포함할 수 있다.
도 7은 도 5의 제1 패킷 스케줄링과 도 6의 제2 패킷이 스케줄링을 예시하는 의사코드이다.
도 8은 패킷 스케줄러의 제3 패킷 스케줄링 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, 제3 패킷 스케줄링 방법은, 프로세서 어레이부(400)가 각 패킷 처리기의 패킷 처리 수행 중 발생한 패킷 처리 지연 사건을 판단하는 단계(S801)을 포함할 수 있다. 패킷 처리 지연 사건을 판단은 프로세서 어레이부(400)가 소정의 패킷 처리기에서 패킷 처리의 실제 패킷 처리 종료 시간()이 예상 패킷 처리 종료 시간()과 일치하지 않은 것으로 판단한 것일 수 있다.
또한, 제3 패킷 스케줄링 방법은, 패킷 스케줄링 엔진(310)이 실제 패킷 처리 종료 시간()이 처리 종료된 k 패킷이 할당되었던 스케줄링 테이블의 첫번째 엔트리의 패킷 처리 시작 시간(S)이 보다 크거나 같은지 판단하는 단계(S802)를 포함할 수 있다. 스케줄링 엔진(310)은 실제 패킷 처리 종료 시간()이 처리 종료된 k 패킷이 할당되었던 스케줄링 테이블의 첫번째 엔트리의 패킷 처리 시작 시간(S)보다 작으면 첫번? 엔트리의 패킷에 대한 에러 조정을 수행하지 않을 수 있다.
또한, 제3 패킷 스케줄링 방법은, 실제 패킷 처리 종료 시간()이 처리 종료된 k 패킷이 할당되었던 스케줄링 테이블의 첫번째 엔트리의 패킷 처리 시작 시간(S)보다 크거나 같으면, 스케줄링 엔진(310)이 첫번째 엔트리의 패킷에 대한 수학식 5에 따른 에러 시간(e)를 계산하고 첫번째 엔트리를 현재 엔트리로 취급하는 단계(S803)을 포함할 수 있다.
또한, 제3 패킷 스케줄링 방법은, 스케줄링 엔진(310)이 계산된 에러 시간(e)만큼 현재 엔트리의 패킷의 패킷 처리 시작 시간(S)과 예상 패킷 처리 종료 시간(EF)을 증가시키는 단계(S804)를 포함할 수 있다.
또한, 제3 패킷 스케줄링 방법은, 스케줄링 엔진(310)이 현재 엔트리의 패킷과 다음 엔트리의 패킷에 대한 수학식 6에 따른 에러 시간(e)을 계산하고 다음 엔트리를 현재 엔트리로 취급하는 단계(S805)를 포함할 수 있다.
또한, 제3 패킷 스케줄링 방법은, 스케줄링 엔진(310)이 수학식 6에 따른 에러 시간(e)이 0 미만이거나 현재 엔트리가 마지막 엔트리인지 판단하는 단계(S806)을 포함할 수 있다. 스케줄링 엔진(310)은 수학식 6에 따른 에러 시간(e)이 0 미만이 아니거나 현재 엔트리가 마지막 엔트리가 아니면 S804 단계를 반복할 수 있다. 스케줄링 엔진(310)은 수학식 6에 따른 에러 시간(e)이 0 미만이거나 현재 엔트리가 마지막 엔트리이면 제3 패킷 스케줄링을 종료할 수 있다.
도 9는 도 8의 제3 패킷 스케줄링을 예시하는 의사코드이다.
도 10은 본 발명의 실시예에 따른 패킷 처리 장치와 종래 기술에 따른 패킷 처리 장치의 패킷 처리기 수에 따른 패킷 처리기의 평균 사용량을 비교한 모습이다.
도 10은 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치와 종래 기술인 SNM, PFQ 및 P-ORR의 패킷 처리 장치의 스케줄링에 따른 패킷 처리기의 평균 사용량을 나타낸 모습이다. 실험에 앞서 각 패킷 처리 장치의 공정한 비교를 위하여, 모든 패킷 처리 장치는 하나의 스케줄링 엔진과 동일한 수의 패킷 처리기로 구성하고, 동일한 트래픽 패턴이 입력시켰다. 또한 이더넷 LAN은 1500 바이트의 최대 전송 단위(MTU)를 하용하기 때문에, 입력되는 패킷은 50 바이트에서 1500바이트 사이의 다양한 길이로 생성될 수 있다. 도 10을 참조하면, 실험결과, 패킷 처리기의 수를 증가시키면 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치는 패킷 처리기의 평균 사용률이 약 80%로 유지되었다. 종래 기술인 SNM은 일정한 반면, PFQ 및 P-ORR은 패킷 처리기의 수가 증가함에 따라 패킷 처리기의 평균 사용률이 급격히 감소하는 것을 볼 수 있다. PFQ는 같은 플로우의 패킷들을 같은 패킷 처리기로만 처리하기 때문에 패킷 처리기의 수가 증가함에 따라 유휴 패킷 처리기의 수가 증가하는 것이다. P-ORR은 인접 스케쥴링 라운드들 사이의 패킷 처리기들의 유휴 기간이 증가하기 때문에 패킷 처리기의 수가 증가함에 따라 유휴 패킷 처리기의 수가 증가하는 것이다. SNM는 모든 패킷 처리기를 사용할 수 있도록 하지만 후술하는 많은 하드웨어 오버헤드를 필요로 하는 문제점이 있다.
도 11은 본 발명의 실시예에 따른 패킷 처리 장치와 종래 기술에 따른 패킷 처리 장치의 출력 버퍼 내의 사이클 당 평균 패킷수를 비교한 모습이다.
도 11은 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치와 종래 기술인 SNM 및 P-ORR의 패킷 처리 장치의 패킷 처리기 수에 따른 필요한 버퍼 크기를 나타낸 모습이다. 또한, 본 발명의 실시예에 따른 네트워크 프로세서의 부정확한 패킷 처리 예상 시간 판단에 따른 성능도 함께 고려하기 위하여 오차 발생시 실제 패킷 처리 시간과 예상 패킷 처리 시간이 10%의 오차값을 갖도록 하였고, 오차가 발생하는 확률인 오차율(Pe)을 10%, 30%, 50%로 하여 실험하였다. 도 11을 참조하면, 실험결과, 종래 기술인 SNM과 P-ORR은 패킷 처리기의 수가 증가할 수록 요구하는 버퍼 사이즈가 급증함을 할 수 있다. 즉, 종래 기술인 SNM과 P-ORR은 패킷 처리기의 수가 증가할수록 하드웨어 오버헤드를 갖는 것을 알 수 있다. 반면, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치는 오차 율을 10%에서 50%를 갖더라도 종래 기술인 SNM과 P-ORR보다 훨씬 더 작은 버퍼 사이즈를 요구하는 것을 알 수 있다. 즉, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치는 최소한의 하드웨어 오버헤드를 갖을 수 있고, 이에 따라 하드웨어 비용을 최소화할 수 있다.
도 12는 본 발명의 실시예에 따른 패킷 처리 장치에서 오차율을 달리하여 패킷 처리기 수에 따른 패킷 처리기의 평균 패킷 처리 속도를 비교한 모습이고, 도 13는 본 발명의 실시예에 따른 패킷 처리 장치에서 오차율을 달리하여 패킷 처리기 수에 따른 패킷 처리기의 평균 사용량를 비교한 모습이다.
도 12와 도 13은 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 장치의 오차율(Pe) 변화에 따른 성능에 대한 영향을 나타낸다. 도 12를 참조하면, 실험결과, 본 발명의 실시예에 따른 패킷 처리 장치는 오차율을 변화시키더라도 패킷 처리기당 평균 패킷 처리 속도에 영향을 많이 주지 않는 것을 확인할 수 있다. 이러한 이유로, 실제 패킷 처리 종료 시간이 예상 패킷 처리 종료 시간 보다 작은 경우 스케줄링 테이블의 후속 엔트리의 스케줄링 정보에 변화가 없기 때문에 패킷 처리 속도에 영향을 미치지 않기 때문이다. 또한 실제 패킷 처리 종료 시간이 예상 패킷 처리 종료 시간 보다 큰 경우 도 8및 도 9의 제3 패킷 스케줄링에 의해 스케줄링 테이블의 후속 엔트리들 사이의 유휴 시간들을 채움으로써 플러스 오차를 대체로 상쇄하기 때문에 패킷 처리율을 거의 감소하지 않기 때문이다. 마찬가지로 도 13을 참조하면, 본 발명의 실시예에 따른 패킷 처리 장치는 오차율을 변화시키더라도 패킷 처리기의 사용률에 영향을 많이 주지 않는 것을 확인할 수 있다. 이러한 이유는 오차율이 증가함에 따라 스케줄링 테이블의 인접 엔트리들 간의 패킷 처리의 유휴 시간이 있어도 도 8및 도 9의 제3 패킷 스케줄링에 의해 유휴 시간이 감소되기 때문이다.
도 14는 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법을 설명하기 위한 순서도이다.
도 14를 참조하면, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법은, 패킷 검사기(100)가 입력되는 패킷의 플로우 ID를 감지하고 고유 번호를 할당하는 단계(S1401)을 포함할 수 있다.
또한, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법은, 패킷 검사기(100)가 고유 번호 할당된 패킷의 예상 패킷 처리 시간을 추정하는 단계(S1402)를 포함할 수 있다.
또한, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법은, 패킷 검사기(100)가 예상 패킷 처리 시간, 패킷 도착 시간을 패킷 스케줄러(300)에게 전송하는 단계(S1403)를 포함할 수 있다.
또한, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법은, 패킷 스케줄러(300)가 현재 패킷의 예상 패킷 종료 시간이 직전 패킷의 예상 패킷 종료 시간 보다 길도록 제1 패킷 스케줄링을 수행하는 단계(S1404)를 포함할 수 있다. 또한, S1404는 도 5의 제1 패킷 스케줄링 방법을 따를 수 있다.
또한, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법은, 패킷 스케줄러(300)가 최소 예상 패킷 처리 종료 시간을 가지는 스케줄링 테이블에 현재 패킷이 할당되는 제2 패킷 스케줄링을 수행하는 단계(S1405)를 포함할 수 있다. 또한, S1405는 도 6의 제2 패킷 스케줄링 방법을 따를 수 있다.
또한, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법은, 프로세서 어레이부(400)가 스케줄링된 패킷을 처리하는 단계(S1406)를 포함할 수 있다.
또한, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법은, 프로세서 어레이부(400)가 패킷 처리 지연 사건 발생을 판단하는 단계(S1407)를 포함할 수 있다. 패킷 처리 지연 사건이 발생하지 않으면 패킷 스케줄러(300)는 제3 패킷 스케줄링을 수행하지 않고 종료할 수 있다.
또한, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법은, 패킷 처리 지연 사건이 발생하면, 출력 시퀀스 관리부(500)가 올바른 출력 순서로 패킷을 정렬하는 단계(S1408)를 포함할 수 있다.
또한, 본 발명의 실시예에 따른 네트워크 프로세서 패킷 처리 방법은, 패킷 스케줄러(300)는 지연 사건 발생 패킷 처리기에 대한 스케줄링 테이블의 패킷 처리 정보를 조정하는 제3 패킷 스케줄링을 수행하는 단계(S1409)를 포함할 수 있다. 또한, S1409는 도 8의 제3 패킷 스케줄링 방법을 따를 수 있다. 또한, 도 14에는 S1408 후 S1409를 기재하였지만 S1408과 S1409는 동시 또는 순서를 바꾸어 수행될 수 있다.
따라서, 본 발명은 동일 플로우의 패킷들을 서로 다른 패킷 처리기에서 처리하는 경우 서로 다른 패킷 처리기에서 처리된 동일 플로우 패킷들의 순서를 유지시켜주는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다. 또한, 본 발명은, 패킷 처리량을 증가시키는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다. 또한, 본 발명은, 패킷 처리기의 사용량을 증가시키는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다. 또한, 본 발명은, 네트워크 프로세서의 전체 성능을 향상시키는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다. 또한, 본 발명은, 패킷 플로우의 순서를 유지하기 위한 최소한의 하드웨어 오버헤드를 갖는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다. 또한, 본 발명은, 하드웨어 비용을 최소화하는 네트워크 프로세서 패킷 처리 방법을 제공할 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.
10 네트워크 프로세서 패킷 처리 장치
100 패킷 검사기
200 주메모리
300 패킷 스케줄러
310 스케줄링 엔진
320 스케줄링테이블부
ST 스케줄링 테이블
325 스케줄링 테이블 관리부
400 프로세서 어레이부
PE 패킷 처리기
500 출력 시퀀스 관리부
600 링크 스케줄러
100 패킷 검사기
200 주메모리
300 패킷 스케줄러
310 스케줄링 엔진
320 스케줄링테이블부
ST 스케줄링 테이블
325 스케줄링 테이블 관리부
400 프로세서 어레이부
PE 패킷 처리기
500 출력 시퀀스 관리부
600 링크 스케줄러
Claims (12)
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 패킷 검사기, 패킷을 처리하는 복수의 패킷 처리기를 포함하는 프로세서 어레이부, 스케줄링 엔진, 상기 복수의 패킷 처리기와 각각 대응하는 복수의 스케줄링 테이블을 포함하는 스케줄링 테이블부를 포함하는 패킷 스케줄러와 출력 시퀀스 관리부를 포함하는 네트워크 프로세서 패킷 처리 장치의 패킷을 스케줄링하는 네트워크 프로세서 패킷 처리 방법에 있어서,
상기 패킷 검사기가 입력되는 현재 패킷의 예상 패킷 처리 시간을 추정하고 상기 현재 패킷의 입력될 때의 시간을 패킷 도착 시간으로 하는 단계;
상기 패킷 검사기가 상기 현재 패킷의 예상 패킷 처리 시간 및 패킷 도착 시간을 상기 패킷 스케줄러에 전송하는 단계;
상기 패킷 스케줄러가 현재 패킷의 예상 패킷 종료 시간이 직전 패킷의 예상 패킷 종료 시간 보다 길도록 제1 패킷 스케줄링을 수행하는 단계;
상기 패킷 스케줄러가 최소 예상 패킷 처리 종료 시간을 가지는 스케줄링 테이블에 현재 패킷을 할당하는 제2 패킷 스케줄링을 수행하는 단계; 및
스케줄링된 패킷 처리기가 현재 패킷을 처리하는 단계;를 포함하고,
현재 패킷을 처리하는 단계 후에 상기 프로세서 어레이부가 패킷 처리 지연 사건 발생을 판단하는 단계;
패킷 처리 지연 사건이 발생하면 상기 출력 시퀀스 관리부가 상기 지연 사건이 발생된 패킷 처리기에서 처리된 패킷의 출력 순서를 올바르게 정렬하는 단계;
패킷 처리 지연 사건이 발생하면 상기 스케줄링 엔진이 지연 사건 발생 패킷 처리기에 대한 스케줄링 테이블의 패킷 처리 정보를 조정하는 제3 패킷 스케줄링을 수행하는 단계;를 더 포함하며,
상기 제3 패킷 스케줄링을 수행하는 단계는,
상기 스케줄링 엔진이 실제 패킷 처리 종료 시간(AF)이 지연 사건이 발생한 패킷 처리기에 할당된 지연 사건 직후 처리될 패킷에 해당되는 첫번째 엔트리의 패킷 처리 시작 시간(S)이 이상인지 판단하는 단계;
상기 실제 패킷 처리 종료 시간(AF)이 상기 첫번째 엔트리의 패킷 처리 시작 시간(S) 이상이면, 상기 스케줄링 엔진이 수학식 5에 따른 에러 시간(e)을 계산하는 단계 및 상기 첫번째 엔트리를 현재 엔트리로 취급하는 단계;
상기 스케줄링 엔진이 에러 시간(e) 만큼 상기 첫번째 엔트리의 패킷 처리 시작 시간(S)과 예상 패킷 처리 종료 시간(EF)을 증가시키는 단계;
(수학식 5)
상기 스케줄링 엔진이 에러 시간(e) 만큼 상기 첫번째 엔트리의 패킷 처리 시작 시간(S)과 예상 패킷 처리 종료 시간(EF)을 증가시키는 단계 후 상기 현재 엔트리의 패킷과 다음 엔트리의 패킷에 대한 에러 시간(e)을 수학식 6에 따라 계산하고 다음 엔트리를 현재 엔트리로 취급하는 단계; 및
상기 현재 엔트리의 패킷과 다음 엔트리의 패킷에 대한 에러 시간(e)이 0 미만이거나 현재 엔트리가 마지막 엔트리인지 판단하는 단계;를 더 포함하는 네트워크 프로세서 패킷 처리 방법.
(수학식 6)
(여기서 EF of the current entry는 현재 엔트리의 예상 패킷 처리 종료 시간이고 S of the next entry는 다음 엔트리의 패킷 처리 시작 시간을 나타냄) - 제7 항에 있어서,
상기 제1 패킷 스케줄링을 수행하는 단계는, 상기 스케줄링 엔진이 상기 현재 패킷의 예상 패킷 처리 시간 및 패킷 도착 시간에 기초하여 패킷 처리 시작 시간 및 예상 패킷 처리 종료 시간을 계산하고,
상기 스케줄링 테이블은 상기 복수의 스케줄링 테이블 각각의 마지막에 할당된 패킷의 패킷 처리 정보에 관한 엔트리를 포인팅하는 스케줄링 테이블 관리부를 포함하고,
상기 제2 패킷 스케줄링을 수행하는 단계는,
상기 스케줄링 테이블이 최소 예상 패킷 종료 시간(EFmin)을 가지는 스케줄링 테이블을 탐색하는 단계;
상기 스케줄링 엔진이 상기 현재 패킷의 패킷 처리 시작 시간()이 상기 최소 예상 패킷 종료 시간(EFmin)보다 작거나 같은지 판단하는 단계;
상기 스케줄링 엔진이 상기 현재 패킷의 패킷 처리 시작 시간()이 상기 최소 예상 패킷 종료 시간(EFmin)보다 작거나 같으면 상기 현재 패킷의 패킷 처리 시작 시간()과 예상 패킷 처리 종료 시간()을 수학식 4에 따른 보정 시간(c)만큼 증가시키는 단계;
(수학식 4)
상기 스케줄링 엔진이 탐색된 스케줄링 테이블의 다음 엔트리에 상기 증가된 상기 현재 패킷의 패킷 처리 시작 시간()과 예상 패킷 처리 종료 시간()을 포함하는 패킷 처리 정보를 저장하는 단계를 포함하는 네트워크 프로세서 패킷 처리 방법. - 제7항에 있어서,
상기 출력 시퀀스 관리부는 상기 프로세서 어레이부의 복수의 패킷 처리기 각각에 대응하는 복수의 버퍼를 더 포함하고,
상기 출력 시퀀스 관리부는 상기 프로세서 어레이부로부터 입력된 패킷의 순서가 올바르지 않으면 상기 버퍼를 이용하여 입력된 패킷을 동일 플로우의 직전 패킷들의 처리가 종료될 때까지 버퍼링하는 것을 포함하는 네트워크 프로세서 패킷 처리 방법. - 제9항에 있어서,
상기 출력 시퀀스 관리부는 상기 프로세서 어레이부로부터 입력된 패킷의 순서가 올바르지 않으면 상기 버퍼를 이용하여 입력된 패킷을 동일 플로우의 직전 패킷들의 처리가 종료될 때까지 버퍼링하는 단계는,
상기 순서가 올바르지 않은 입력된 패킷을 동일 플로우의 직전 패킷들의 처리가 종료될 때까지 버퍼링하여 올바른 순서의 패킷이 되도록 하는 단계와,
상기 올바른 순서로 버퍼링된 패킷을 링크 스케줄러에 전송하는 단계를 포함하는 네트워크 프로세서 패킷 처리 방법. - 제7항에 있어서,
상기 스케줄링 테이블부의 각 스케줄링 테이블에는 스케줄링된 패킷에 관한 엔트리 주소(Entry), 플로우 ID(FID), 고유 번호(SQN), 패킷 처리 시작 시간(S), 예상 패킷 처리 종료 시간(EF), 주 메모리 주소(M), 다음 엔트리 주소(NE) 로 구성된 패킷 처리 정보가 저장되어 있는 네트워크 프로세서 패킷 처리 방법. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190050315A KR102216523B1 (ko) | 2019-04-30 | 2019-04-30 | 네트워크 프로세서 패킷 처리 장치 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190050315A KR102216523B1 (ko) | 2019-04-30 | 2019-04-30 | 네트워크 프로세서 패킷 처리 장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200126542A KR20200126542A (ko) | 2020-11-09 |
KR102216523B1 true KR102216523B1 (ko) | 2021-02-16 |
Family
ID=73429796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190050315A KR102216523B1 (ko) | 2019-04-30 | 2019-04-30 | 네트워크 프로세서 패킷 처리 장치 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102216523B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5953998B2 (ja) * | 2012-07-10 | 2016-07-20 | 富士通株式会社 | パケット処理装置およびパケット処理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100590884B1 (ko) | 2004-02-03 | 2006-06-19 | 삼성전자주식회사 | 네트워크 프로세서의 패킷을 처리 방법 및 그 장치 |
KR20110114909A (ko) * | 2010-04-14 | 2011-10-20 | 한국전자통신연구원 | 멀티 프로세싱 엔진 기반의 네트워크 프로세서 시스템 및 상기 네트워크 프로세서 시스템의 패킷 스케줄링 방법 |
KR20130126789A (ko) * | 2012-04-18 | 2013-11-21 | 한국전자통신연구원 | 흐름 및 순서 정보를 이용한 패킷 처리 장치 및 처리 방법 |
-
2019
- 2019-04-30 KR KR1020190050315A patent/KR102216523B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5953998B2 (ja) * | 2012-07-10 | 2016-07-20 | 富士通株式会社 | パケット処理装置およびパケット処理方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20200126542A (ko) | 2020-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2287432C (en) | Round-trip delay optimization of multiplexed speech channels | |
CN109479032B (zh) | 网络设备中的拥塞避免 | |
EP3823229A1 (en) | Programmable congestion control | |
US7924721B2 (en) | Communication apparatus, transmission control method, and transmission control program | |
CN107431667B (zh) | 一种用于发送数据包的网络设备、方法及存储介质 | |
FI114598B (fi) | Menetelmä ja laitteisto palvelunlaadun säilyttävän vuonmuokkauksen tekemiseksi pakettikytkentäisessä tietoliikenteessä | |
US10560383B2 (en) | Network latency scheduling | |
CN101394362B (zh) | 基于流分片的对多核网络处理器进行负载均衡的方法 | |
US9055009B2 (en) | Hybrid arrival-occupancy based congestion management | |
US8929213B2 (en) | Buffer occupancy based random sampling for congestion management | |
US20070286070A1 (en) | Method and Device for Controlling a Queue Buffer | |
US20120327948A1 (en) | Adjustment of negative weights in weighted round robin scheduling | |
KR102128417B1 (ko) | 무선 센서 네트워크를 위한 다중 경로 우선순위 라우팅 방법 및 이를 수행하는 라우팅 장치 | |
Raviv et al. | Maximizing service reward for queues with deadlines | |
KR102216523B1 (ko) | 네트워크 프로세서 패킷 처리 장치 및 그 방법 | |
US8995458B1 (en) | Method and apparatus for delay jitter reduction in networking device | |
US7106693B1 (en) | Method and apparatus for pacing the flow of information sent from a device | |
WO2017169948A1 (ja) | 通信システム、可用帯域推定装置、可用帯域推定方法および可用帯域推定プログラムが記憶された記録媒体 | |
Bruneel et al. | Queueing models for the analysis of communication systems | |
CN102404225B (zh) | 一种用于差分队列服务系统的数据包快速入队方法 | |
US7242690B2 (en) | System for performing input processing on a data packet | |
US20170295113A1 (en) | Longest queue identification | |
US20200314014A1 (en) | Advanced load balancing based on bandwidth estimation | |
Mailach et al. | Scheduling jobs with estimation errors for multi-server systems | |
CN111444183B (zh) | 一种键值存储系统中的分布式自适应用户请求调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |