KR100590887B1 - 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법및 그 장치 - Google Patents

네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법및 그 장치 Download PDF

Info

Publication number
KR100590887B1
KR100590887B1 KR1020040008088A KR20040008088A KR100590887B1 KR 100590887 B1 KR100590887 B1 KR 100590887B1 KR 1020040008088 A KR1020040008088 A KR 1020040008088A KR 20040008088 A KR20040008088 A KR 20040008088A KR 100590887 B1 KR100590887 B1 KR 100590887B1
Authority
KR
South Korea
Prior art keywords
packet
channel
information
network processor
bandwidth
Prior art date
Application number
KR1020040008088A
Other languages
English (en)
Other versions
KR20050079593A (ko
Inventor
오종상
최병구
박용석
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040008088A priority Critical patent/KR100590887B1/ko
Publication of KR20050079593A publication Critical patent/KR20050079593A/ko
Application granted granted Critical
Publication of KR100590887B1 publication Critical patent/KR100590887B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법 및 그 장치에 관한 것으로, 인터넷 망에서 패킷을 고속으로 처리하는 네트워크 프로세서가 사용자 요구에 따라 패킷을 교환하는 채널의 대역폭을 변경해야 하는 경우, 네트워크 프로세서에 연결되는 채널의 최대 대역폭과, 최소 채널 대역폭을 이용하여, 산출할 수 있는 채널 순번을 적절하게 그룹화하여, 네트워크 프로세서에 고정된 대역폭을 해당 채널에 동적으로 할당할 수 있는 것이다.

Description

네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법 및 그 장치{apparatus and method of dynamical division for bandwidth in Network Processor}
도 1은 일반적인 패킷 처리 장치의 구성을 설명하기 위한 내부 블록 도면.
도 2는 일반적인 네트워크 프로세서에서 패킷을 처리하는 엔진의 구성을 설명하기 위한 블록 도면.
도 3은 본 발명의 바람직한 실시예에 따른 네트워크 프로세서의 구성을 설명하기 위한 내부 블록 도면.
도 4는 본 발명의 일실시예에 따라 채널의 대역폭 동일하게 할당하는 것을 설명하기 위한 도면.
도 5는 본 발명의 다른 실시예에 따른 네트워크 프로세서를 설명하기 위한 도면.
도 6은 본 발명의 다른 실시예에 따라 4개의 가상 채널로 그룹화하여, 대역폭을 할당하는 것을 설명하기 위한 도면.
도 7은 본 발명의 다른 실시에에 따른 네트워크 엔진이 패킷을 처리하는 흐름을 설명하기 위한 플로우챠트 도면.
도 8은 본 발명의 또 다른 실시예에 따른 네트워크 프로세서를 설명하기 위한 도면.
도 9는 본 발명의 또 다른 실시예에 따라 2개의 가상 채널로 그룹화하여, 대역폭을 할당하는 것을 설명하기 위한 도면.
도 10은 본 발명의 또 다른 실시에에 따른 네트워크 프로세서가 패킷을 처리하는 흐름을 설명하기 위한 플로우챠트 도면.
<도면의 주요 부분에 대한 부호의 설명>
100 :네트워크 프로세서 10 : 패킷 수신 엔진
20 : 수신 큐 30 : 패킷 포워딩 엔진
40 : 포워딩 테이블 50 : 송신 큐
60 : 패킷 송신 엔진 80 : 패킷 처리 엔진
81 : 채널 정보 저장부 82 : 패킷 처리부
83 : 채널 벡터 비트 84 : 매핑 테이블
본 발명은 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법 및 그 장치에 관한 것으로, 더욱 자세하게는, 인터넷 망에서 고속으로 패킷을 포워딩하는 네트워크 프로세서에서 패킷이 교환되는 채널의 대역폭을 동적으로 할당할 수 있도록 하는 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법 및 그 장치에 관한 것이다.
오늘날 인터넷 망에서 고속으로 패킷 포워딩을 처리하기 한 목적으로, 네트워크 프로세서나 에이직 칩과 같은 고속으로 패킷을 포워딩하는 프로세서를 사용하고 있다.
이러한, 네트워크 프로세서는 채널화 또는 가상 연결(virtual concatenation)과 같이, 여러 채널을 그룹화하여, 하나의 채널처럼 동작시키거나, 하나의 채널을 여러 채널로 나누어 대역폭을 세분화시켜, 각 설정에 맞도록 대역폭을 유지하는 기능을 제공해야 한다.
도 1은 일반적인 패킷 처리 장치의 구성을 설명하기 위한 내부 블록 도면이다.
도 1을 참조하면, 패킷 처리 장치(100)는, 패킷 수신 엔진(10), 수신 큐(20), 패킷 포워딩 엔진(30), 포워딩 테이블(40), 송신 큐(50) 및 패킷 송신 엔진(60)을 포함한다.
그리고, 패킷 수신 엔진(10)은 네트워크를 통해 연결된 채널을 통해 패킷이 수신되는지 여부를 확인하고, 임의 채널을 통해 패킷이 수신되면, 그에 상응하는 수신 큐(20)에 패킷을 저장한다.
수신 큐(20)는 다수개의 큐로 이루어지고, 패킷 수신 엔진(10)으로부터 전송 되는 패킷을 임시 저장한다.
포워딩 테이블(40)은 수신되는 패킷의 출력시킬 채널 정보를 저장한다. 이러한 포워딩 테이블(40)은 수신되는 패킷이 최종 목적지로 도착할 수 있는 최소 경로에 따라, 해당 패킷을 전송할 경로 정보를 저장한다.
패킷 포워딩 엔진(30)은 수신 큐(20)에 임시 저장된 패킷이 있는지 여부를 확인하여, 패킷이 임시 저장되어 있으면, 해당 패킷의 출력 채널을 포워딩 테이블(40)에서 검색(look-up)하고, 그 검색된 출력 채널을 통해 패킷이 출력되도록 송신 큐(50)에 임시 저장한다.
즉, 패킷 포워딩 엔진(30)은 해당 패킷에 대한 포워딩을 수행하고, 그 포워딩 결과에 따라 패킷이 전송될 수 있도록 처리한다.
송신 큐(50)는 패킷 포워딩 엔진(30)으로부터 전송되는 패킷을 임시 저장한다.
그리고, 패킷 송신 엔진(60)은 송신 큐(50)에 임시 저장된 패킷이 있는지 여부를 확인하여, 패킷이 임시 저장되어 있으면, 패킷 포워딩 엔진(30)이 해당 패킷에 대한 포워딩에 따라 패킷을 출력한다.
여기서, 패킷 수신 엔진(10)과, 패킷 포워딩 엔진(30)과, 패킷 송신 엔진(60)은 고속으로 입력되는 패킷을 처리하는 네트워크 프로세서를 사용한다.
도 2는 일반적인 네트워크 프로세서에서 패킷을 처리하는 엔진의 구성을 설명하기 위한 블록 도면이다.
도 2를 참조하면, 일반적인 네트워크 프로세서(80)는 채널 정보 저장부(81), 패킷 처리부(82)를 포함하고, 패킷 처리부(82)는 다수개의 물리적 채널과 연결된다.
그리고, 패킷 처리부(82)는 다수 개로 구성될 수 있고, 각 패킷 처리부(82)는 할당되는 채널로부터 수신되는 패킷을 처리한다.
채널 정보 저장부(81)는 다수개의 물리적 채널에 상응하는 저장 모듈로 구성될 수 있고, 각 저장 모듈은 상응하는 물리적 채널의 상태 정보를 저장한다.
여기서, 상태 정보는 상응하는 채널의 이상 유무 정보 및 수신되는 패킷이 처음 패킷인지 또는 마지막 패킷인지 여부를 알리는 정보 등이 된다.
그리고, 각 패킷 처리부(82)는 할당된 채널로부터 패킷이 수신되는지 여부를 확인하여, 패킷이 수신되면, 해당 채널에 상응하는 상태 정보를 채널 정보 저장부(81)에서 읽어들이고, 그 채널의 상태 정보에 이상이 없으면, 네트워크 프로세서(80)는 수신된 패킷을 처리한다.
이때, 네트워크 프로세서(80)의 패킷 처리는, 설정된 프로그램 정보에 따라채널을 통해 입력되는 패킷을 임시 저장하는 패킷 입력 처리, 임시 저장된 패킷의 포워딩 처리 또는 포워딩된 결과에 따라 패킷을 출력하는 패킷 출력 처리 등이 해당 될 수 있다.
그러나, 이러한, 범용 네트워크 프로세서(80)는, 각 패킷 처리부(82)에 고정된 채널 값(N)을 할당하고, 해당 패킷 처리부(82)가 할당된 채널에 대한 패킷 처리만을 수행함으로, 동적으로 대역폭을 할당하지 못한다.
즉, 범용 네트워크 프로세서(80)는 이미 정해져 고정된 포트 또는 채널에 대 한 패킷을 처리할 수 있음으로, 채널화 또는 가상 연결(virtual concatenation)과 같이, 여러 채널을 그룹화하여, 하나의 채널처럼 동작시키거나, 하나의 채널을 여러 채널로 나누어 대역폭을 세분화시켜, 각 설정에 맞도록 대역폭을 유지하는 기능을 제공하지 못한다.
또한, 에이직 칩의 경우에는 특정 어플리케이션에 맞도록 설계되어져 구현되기 때문에, 고속으로 패킷을 포워딩하는 기능과, 대역폭 유지 기능을 동시에 수용하도록 구현하기 용이하지 않다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창안된 것으로, 패킷을 처리하는 네트워크 프로세서가 사용자의 요구에 따라 채널을 그룹화하거나, 세분화하여, 동적으로 대역폭을 할당시킬 수 있도록 하는 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법 및 그 장치를 제공하는 것에 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따른 네트워크 프로세서에서 대역폭을 동적으로 할당하는 장치는, 네트워크 프로세서에 연결되는 적어도 하나 이상의 채널을 각각 그룹화한 그룹 채널 정보와, 각 그룹 채널 정보에 포함되는 채널 정보를 저장하는 매핑 테이블과, 그룹 정보 저장부에 저장된 그룹 채널 정보에 포함되는 채널 정보에 따라 각각의 그룹 채널에 동적으로 대역폭을 할당하고, 그룹 채널을 통해 패킷이 수신 또는 송신되는지 여부를 확인하여, 패킷이 수신 또는 송신되는 경우, 패킷을 송/수신하는 적어도 하나 이상의 패킷 처리부를 포함한다.
그리고, 본 발명에 따른 네트워크 프로세서에서 대역폭을 동적으로 할당하는 장치는, 임의 패킷 처리부가 수신되는 패킷을 처리하면서, 타 패킷 처리부의 간섭을 방지하는 패킷 락(lock) 정보를 저장하는 채널 벡터 비트를 더 포함한다.
한편, 본 발명의 다른 측면에 따른 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법은, 네트워크 프로세서에 연결되는 적어도 하나 이상의 채널을 각각 그룹화한 그룹 채널 정보와, 각 그룹 채널 정보에 포함되는 채널 정보를 저장하는 단계와, 그룹 채널 정보에 포함되는 채널 정보에 따라 각각의 그룹 채널에 동적으로 대역폭을 할당하여, 그룹 채널을 통해 패킷이 수신 또는 송신되는지 여부를 확인하는 단계와, 그룹 채널을 통해 패킷이 수신되면, 패킷에 대한 중복 처리가 되지 않도록 락 정보를 저장하고, 패킷을 송신 또는 수신하는 단계를 포함한다.
그리고, 본 발명에 따른 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법은, 그룹 채널을 통해 패킷이 수신되면, 패킷에 대한 락 정보가 저장되어 있는지 여부를 확인하여, 저장되어 있으면, 다음 그룹 채널로부터 패킷이 수신되는지 여부를 확인하는 단계를 더 포함한다.
이하 본 발명에 따른 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법 및 그 장치를 첨부한 도면을 참조하여 상세히 설명한다.
도 3은 본 발명의 바람직한 실시예에 따른 네트워크 프로세서의 구성을 설명하기 위한 내부 블록 도면이고, 도 4는 본 발명의 일실시예에 따라 채널의 대역폭 동일하게 할당하는 것을 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명에 따른 네트워크 프로세서(80)은, 채널 정보 저장부(81), 패킷 처리부(82), 매핑 테이블(84) 및 채널 벡터 비트(83)를 포함한다.
그리고, 패킷 처리부(82)는 다수 개로 구성될 수 있으며, 채널 정보 저장부(81)는 다수개의 저장 모듈로 구성될 수 있다.
이러한, 채널 정보 저장부(81)의 저장 모듈은 네트워크 프로세서(80)가 연결되는 채널에 상응하게 구비되는 것이 바람직하고, 각 저장 모듈은 상응하는 채널의 상태 정보를 저장한다.
매핑 테이블(84)은 네트워크 프로세서가 사용자의 요구에 따라 동적으로 대역폭을 할당하는 채널의 순번 정보를 가진다.
이때, 사용자는 네트워크 프로세서(80)에 연결되는 채널의 최대 대역폭과, 하나의 채널이 연결할 수 있는 최소 대역폭을 참조하면, 최대 채널 개수를 산출하고, 그 산출된 개수에 따라 매핑 테이블(84)을 설정하는 것이 바람직하다.
도 4에 도시된 바와 같이, 사용자는 12개 채널에 동일한 대역폭을 할당하고자 하는 경우, 각 채널이 동일한 패킷 처리 기회를 가지도록 매핑 테이블(84)을 설정한다.
그리고, 채널 정보 저장부(81)는 네트워크 프로세서(80)에 연결되는 물리적 채널에 대한 상태 정보를 저장한다.
여기서, 상태 정보는 상응하는 채널의 이상 유무 정보 및 수신되는 패킷이 처음 패킷인지 또는 마지막 패킷인지 여부를 알리는 정보 등이 된다.
그리고, 채널 정보 저장부(81)는 네트워크 프로세서(80)에 연결되는 물리적 채널에 상응하는 저장 모듈로 구성될 수 있고, 각 저장 모듈은 상응하는 채널의 상태 정보를 저장한다.
각 패킷 처리부(82)는 패킷 처리 기회가 획득되면, 매핑 테이블(84)을 참조하여, 자신이 할당받은 순번의 채널을 통해 패킷이 수신되는지 여부를 확인하여, 패킷이 수신되면, 해당 채널에 상응하는 저장 모듈에서 상태 정보를 확인하여, 해당 채널에 이상이 없으면, 네트워크 프로세서(100)는 수신된 패킷을 처리한다.
즉, 각 패킷 처리부(82)는 수신되는 패킷이 마지막 패킷이면, 그 패킷이 수신된 채널을 통해 패킷이 더 이상 수신되지 않으므로, 채널을 닫고, 처음 패킷 또는 중간 패킷이면, 그 패킷이 수신된 채널을 통해 패킷이 수신되는지 여부를 확인하여, 수신된 패킷을 처리한다.
그리고, 각 패킷 처리부(82)는 패킷이 수신되는 채널에 상응하는 채널 벡터 비트(83)가 셋팅되어 있는지 여부를 확인하고, 셋팅되어 있지 않으면, '1'로 셋팅하고, 셋팅되어 있으면, 수신된 패킷을 처리하지 않는다.
이는, 수신되는 패킷에 상응하는 채널 벡터 비트(83)가 셋팅되어 있으면, 이전 패킷 처리 기회를 획득한 임의 패킷 처리부가 해당 패킷을 처리하고 있는 중이므로, 하나의 패킷에 대한 중복 처리를 하지 않도록 하는 것이다.
이하 본 발명의 상세 설명에서는 패킷 처리부(82)가 4개로 구성되고, 물리적 채널이 12개인 경우에 대하여 설명하나, 기타 경우도 이와 동일함을 알 수 있다.
그리고, 채널 벡터 비트(83)는 네트워크 프로세서(80)의 각 채널에 상응하게 구비되고, 네트워크 프로세서(80)가 채널을 그룹화하여, 가상 채널을 할당되어, 여러 패킷 처리부(82)가 가상 채널을 통해 수신되는 패킷을 처리해야 하는 경우, 해당 가상 채널을 통해 수신되는 패킷을 처리하고 있는 패킷 처리부(82)가 타 패킷 처리부(82)의 간섭을 받지 않도록 한다.
도 5는 본 발명의 다른 실시예에 따른 네트워크 프로세서를 설명하기 위한 도면이고, 도 6은 본 발명의 다른 실시예에 따라 4개의 가상 채널로 그룹화하여, 대역폭을 할당하는 것을 설명하기 위한 도면이다.
도 6에 도시된 것과 같이, 12개의 채널을 각 3개 채널씩 가상 연결하여, 4개 그룹으로 그룹화하면, 4개 가상 채널은 하나의 채널보다 3배 많은 대역폭을 가지게 되어, 3배의 패킷 처리 속도를 가지게 된다.
그리고, 도 6에 도시된 것과 같이, 설정되는 가상 채널에 따라 매핑 테이블(84)을 설정하고, 그 매핑 테이블(84)에 설정되는 가상 채널에 따라 채널 벡터 비트(83)를 설정한다.
즉, 패킷 처리부 #0(82)이 0번 채널을 통해 수신되는 패킷을 처리하도록 하고, 패킷 처리부 #1(82)이 3번 채널을 통해 수신되는 패킷을 처리하도록 하고, 패킷 처리부 #2(82)가 6번 채널을 통해 수신되는 패킷을 처리하도록 하고, 패킷 처리부 #3(82)이 9번 채널을 통해 수신되는 패킷을 처리하도록 매핑 테이블(84)을 설정한다.
따라서, 가상 채널로 설정된 0번 채널, 3번 채널, 6번 채널 및 9번 채널은 12개 채널에 동일하기 할당되는 대역폭에 비해 3배 더 많은 대역폭을 할당받을 수 있다.
도 7은 본 발명의 실시예에 따라 네트워크 엔진이 패킷을 처리하는 흐름을 설명하기 위한 플로우챠트 도면이다.
도 7을 참조하면, 먼저 사용자는 네트워크 프로세서(80)에 연결되는 각 채널에 대역폭이 할당되도록 매핑 테이블(84)을 설정한다(S 10).
이때, 사용자는 네트워크 프로세서(80)의 최대 대역폭과, 하나의 채널이 연결할 수 있는 최소 대역폭을 참조하면, 최대 채널 개수를 산출하고, 그 산출된 개수에 따라 매핑 테이블(84)을 설정한다.
이러한 매핑 테이블(84)은 네트워크 프로세서(80)의 각 패킷 처리부(82)가 모두 공유할 수 있는 공유 메모리(미도시) 또는 레지스터(미도시)에 저장한다.
사용자는 각 채널에 동일한 대역폭을 할당하고자 하면, 도 3의 매핑 테이블(84)과 같이 설정하고, 3개의 채널을 하나의 가상 채널로 설정하여, 4개의 가상 채널이 설정하고자 하면, 도 5와 같이 매핑 테이블(84)을 설정한다.
그리고, 각 패킷 처리부(82)가 수신되는 패킷을 처리할 채널들을 설정한다(S 11).
각 채널에 동일한 대역폭이 할당되도록 매핑 테이블(84)이 설정되면, 패킷 처리부 #0(82)은 0번 채널, 1번 채널, 2번 채널을 처리하고, 패킷 처리부 #1(82)은 3번 채널, 4번 채널, 5번 채널을 처리하고, 패킷 처리부 #2(82)는 6번 채널, 7번 채널, 8번 채널을 처리하고, 패킷 처리부 #3(82)은 9번 채널 10번 채널 11번 채널을 처리할 수 있도록 설정한다.
반면, 4개의 가상 채널로 대역폭이 할당되도록 매핑 테이블(84)이 설정되면, 패킷 처리부 #0(2)은 0번 채널로부터 수신되는 패킷을 처리하고, 패킷 처리부 #1(82)은 3번 채널로부터 수신되는 패킷을 처리하고, 패킷 처리부 #2(82)는 6번 채널로부터 수신되는 패킷을 처리하고, 패킷 처리부 #3(82)은 9번 채널로부터 수신되는 패킷을 처리할 수 있도록 설정한다.
그리고, 네트워크 프로세서(80)에 매핑 테이블(84)에 설정된 채널에 상응하는 채널 벡터 비트(83) 값을 초기화한다(S 12).
그리고, 각 패킷 처리부(82)는 라운드 로빈 방식에 따라 패킷 처리 기회를 획득하여, 해당 채널을 통해 패킷이 수신되는지 여부를 확인한다(S 13).
이때, 각 패킷 처리부(82)의 패킷 처리 기회는, 순번에 따라 라운드 로빈 방식으로 패킷 처리 기회를 획득하고, 그 패킷 처리 기회에 해당 채널로부터 패킷이 수신되지 않으면, 다음 패킷 처리부(82)가 패킷 처리 기회를 획득한다.
또한, 라운드 로빈 방식에 따라 각 패킷 처리부(82)가 한번씩 패킷 처리 기회를 획득하면, 다시 처음에 패킷 처리 기회를 획득한 패킷 처리부(82)가 패킷 처리 기회를 획득하게 되며, 이때, 처음 패킷 처리부(82)는 매핑 테이블(84)을 참조하여, 다음 열에 있는 채널을 통해 패킷이 수신되는지 여부를 확인한다.
즉, 각 채널에 동일한 대역폭이 할당되면, 패킷 처리부 #0(82)이 0번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 패킷 처리부 #1(82)이 3번 채널로부터 패킷이 수신되는지 여부를 확인하게 된다.
그리고, 패킷 처리부 #(82)1이 3번 채널로부터 패킷을 수신하지 않으면, 패킷 처리부 #2(82)가 6번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 패킷 처리부 3#(82)이 9번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 다시 패킷 처리부 #0(82)가 패킷 처리 기회를 획득한다.
이때, 패킷 처리부 #0(82)은 매핑 테이블(84)의 두 번째 열에 셋팅된 1번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 패킷 처리부 #1이 4번 채널로부터 패킷이 수신되는지 여부를 확인하게 된다.
반면, 4개의 가상 채널로 설정되면, 패킷 처리부 #0(82)이 0번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 패킷 처리부 #1(82)이 3번 채널로부터 패킷이 수신되는지 여부를 확인하게 된다.
그리고, 패킷 처리부 #1(82)이 3번 채널로부터 패킷을 수신하지 않으면, 패킷 처리부 #2(82)가 6번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 패킷 처리부 #3(82)이 9번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 다시 패킷 처리부 #0(82)이 패킷 처리 기회를 획득한다.
이때, 패킷 처리부 #0(82)은 매핑 테이블(84)의 두 번째 열에 셋팅된 0번 채널로부터 패킷이 수신되는지 여부를 재확인하게 된다.
그 확인 결과, 패킷이 수신되지 않으면, 라운드 로빈 방식에 따라 다음 패킷 처리부(82)에 패킷 처리 기회를 부여하고(S 14), 패킷이 수신되면, 해당 패킷 처리부(82)는 패킷이 수신된 채널에 상응하는 채널 벡터 비트를 확인하여, 셋팅되어 있 지 않으면, 셋팅한다(S 15).
여기서, 패킷 처리부(82)가 채널 벡터 비트를 셋팅하는 것은, 패킷을 수신한 패킷 처리부(82)가 패킷을 처리하는 시간동안 잠시 다음 패킷 처리부(82)에게 패킷 처리 기회를 제공하게 되는데, 다음 패킷 처리부(82)가 패킷 처리 기회를 획득하여, 이전 패킷 처리부(82)가 처리하고 있는 패킷을 중복 처리하지 않도록 하는 것이다.
그리고, 패킷 처리부(82)는 패킷이 수신된 채널에 상응하는 저장 모듈로부터 채널 상태 정보를 읽어들여, 이상이 없으면, 수신된 패킷을 처리한다(S 16).
이때, 패킷의 처리는, 채널을 통해 입력되는 패킷을 임시 저장하는 패킷 입력 처리, 임시 저장된 패킷의 포워딩 처리 또는 포워딩된 결과에 따라 패킷을 출력하는 패킷 출력 처리 등이 해당 될 수 있다.
또한, 패킷 처리부(82)는 수신된 패킷을 처리한 후, 셋팅한 채널 벡터 비트(83) 값을 초기화한다(S 17)
그리고, 다음 패킷 처리부(82)로 패킷 처리 기회를 제공한다.
도 8은 본 발명의 또 다른 실시예에 따른 네트워크 프로세서를 설명하기 위한 도면이고, 도 9는 본 발명의 또 다른 실시예에 따라 2개의 가상 채널로 그룹화하여, 대역폭을 할당하는 것을 설명하기 위한 도면이다.
도 9에 도시된 것과 같이, 12개의 채널을 각 6개 채널씩 가상 연결하여, 2개 그룹으로 그룹화하면, 2개 가상 채널은 하나의 채널보다 6배 많은 대역폭을 가지게 되어, 6배의 패킷 처리 속도를 가지게 된다.
그리고, 도 8에 도시된 것과 같이, 설정되는 가상 채널에 따라 매핑 테이블(84)을 설정하고, 그 매핑 테이블(84)에 설정되는 가상 채널에 따라 채널 벡터 비트(83)를 설정한다.
즉, 패킷 처리부 #0(82)과, 패킷 처리부 #1(82)이 0번 채널을 통해 수신되는 패킷을 처리하도록 하고, 패킷 처리부 #2(82)와, 패킷 처리부 #3(82)이 6번 채널을 통해 수신되는 패킷을 처리하도록 매핑 테이블(84)을 설정한다.
따라서, 가상 채널로 설정된 각 채널은, 12개 채널에 동일하기 할당되는 대역폭에 비해 6배 더 많은 대역폭을 할당받을 수 있다.
도 10은 본 발명의 또 다른 실시에에 따른 네트워크 프로세서가 패킷을 처리하는 흐름을 설명하기 위한 플로우챠트 도면이다.
도 10을 참조하면, 사용자가 6개의 채널을 하나의 가상 채널로 설정하여, 2개의 가상 채널이 설정되도록 매핑 테이블(84)을 설정한다(S 30).
이때, 매핑 테이블의 설정은, 네트워크 프로세서(80)의 전체 대역폭을 참조하여, 최대 채널 개수를 설정하고, 각 가상 채널에 할당할 대역폭에 따라 매핑 테이블(84)을 설정한다.
그리고, 각 패킷 처리부(82)가 처리할 채널을 설정한다(S 31).
실시예에 따라 패킷 처리부 #0(82) 및 패킷 처리부 #1(82)은 0번 채널로부터 수신되는 패킷을 처리하고, 패킷 처리부 #2(82)와, 패킷 처리부 #3(82)은 6번 채널로부터 수신되는 패킷을 처리하도록 설정한다.
또한, 채널 벡터 비트(83)의 값을 초기화한다(S 32).
이때, 채널 벡터 비트(83)는 2개 가상 채널로 그룹화된 채널에 상응하게 설정하는 것이 바람직하다.
그리고, 패킷 처리부(82)는 순번에 따라 패킷 처리 기회를 획득하여, 해당 채널을 통해 패킷이 수신되는지 여부를 확인한다(S 33).
패킷 처리부 #0(82)이 0번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 패킷 처리부 #1(82)이 0번 채널로부터 패킷이 수신되는지 여부를 확인하게 된다.
그리고, 패킷 처리부 #1(82)이 0번 채널로부터 패킷을 수신하지 않으면, 패킷 처리부 #2(82)가 6번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 패킷 처리부 #3(82)이 6번 채널로부터 패킷이 수신되는지 여부를 확인하고, 수신되지 않으면, 다시 패킷 처리부 #0(82)이 패킷 처리 기회를 획득한다.
이때, 패킷 처리부 #0(82)은 매핑 테이블(84)의 두 번째 열에 셋팅된 0번 채널로부터 패킷이 수신되는지 여부를 재확인하게 된다.
그 확인 결과, 패킷이 수신되지 않으면, 라운드 로빈 방식에 따라 다음 패킷 처리부(82)에 패킷 처리 기회를 부여하고(S 34), 패킷이 수신되면, 해당 패킷 처리부(82)는 패킷이 수신된 채널에 상응하는 채널 벡터 비트(83)를 확인한다(S 35)
그 확인 결과, 해당 채널에 상응하는 채널 벡터 비트(83)가 셋팅되어 있으면, 이전 패킷 처리부(82)가 해당 패킷을 처리하고 있는 중이므로, 다음 패킷 처리부(82)로 패킷 처리 기회를 부여한다.
그리고, 해당 채널 벡터(83)가 셋팅되어 있지 않으면, '1'로 셋팅한다(S 36).
여기서, 패킷 처리부(82)가 채널 벡터 비트(83)를 셋팅하는 것은, 패킷을 수신한 패킷 처리부(82)가 패킷을 처리하는 시간동안 잠시 다음 패킷 처리부(82)에게 패킷 처리 기회를 제공하게 되는데, 다음 패킷 처리부(82)가 패킷 처리 기회를 획득하여, 이전 패킷 처리부(82)가 처리하고 있는 패킷을 중복 처리하지 않도록 하는 것이다.
또한, 두 개의 패킷 처리부(82)가 동일한 채널로부터 수신되는 패킷을 처리하도록 가상 채널이 설정되어 있음으로, 이미 이전 패킷 처리부(82)가 처리한 패킷을 다음 패킷 처리부(82)가 처리하지 않도록 한다.
그리고, 패킷 처리부(82)는 패킷이 수신된 채널에 상응하는 저장 모듈로부터 채널 상태 정보를 읽어들여, 이상이 없으면, 패킷을 처리한다(S 37).
또한, 패킷 처리부(82)는 수신된 패킷을 처리한 후, 셋팅한 채널 벡터 비트(83) 값을 초기화한다(S 38)
그리고, 다음 패킷 처리부(82)로 패킷 처리 기회를 제공한다.
이상에서 본 발명은 기재된 구체 예에 대해서만 상세히 설명하였지만 본 발명의 기술 사상 범위 내에서 다양한 변형 및 수정이 가능함은 당업자에게 있어서 명백한 것이며, 이러한 변형 및 수정이 첨부된 특허청구범위에 속함은 당연한 것이다.
상기한 바와 같이, 본 발명에 따르면, 인터넷 망에서 패킷을 고속으로 처리하는 네트워크 프로세서가 사용자 요구 또는 기타 이유로 인하여, 패킷을 교환하는 채널의 대역폭의 변경해야 하는 경우, 네트워크 프로세서에 연결되는 채널의 최대 대역폭과, 최소 채널 대역폭을 이용하여, 채널 순번을 설정하고, 사용자의 요구 또는 기타 이유로 인하여, 채널의 대역폭을 변경해야 하면, 설정된 채널 순번을 적절하게 그룹화하여, 네트워크 프로세서에 고정된 대역폭을 효율적으로 사용할 수 있는 효과가 있다.

Claims (9)

  1. 네트워크 프로세서에 있어서,
    상기 네트워크 프로세서에 연결되는 적어도 하나 이상의 채널을 각각 그룹화한 그룹 채널 정보와, 상기 각 그룹 채널 정보에 포함되는 채널 정보를 저장하는 매핑 테이블;
    상기 그룹 정보 저장부에 저장된 그룹 채널 정보에 포함되는 채널 정보에 따라 각각의 그룹 채널에 동적으로 대역폭을 할당하고, 상기 그룹 채널을 통해 입력되는 패킷을 처리하는 적어도 하나 이상의 패킷 처리부를 포함하는 네트워크 프로세서의 대역폭 동적 할당 장치.
  2. 제 1항에 있어서, 상기 그룹 채널 정보는,
    상기 네트워크 프로세서가 제공하는 최대 대역폭 값과, 상기 채널의 최소 대역폭 값을 이용하여, 산출되는 최대 채널 개수 정보와, 상기 그룹화된 그룹 채널 순번 정보를 포함하는 것을 특징으로 하는 네트워크 프로세서에서 대역폭을 동적으로 할당하는 장치.
  3. 제 1항에 있어서, 상기 각 패킷 처리부는,
    라운드 로빈 방식으로 패킷 처리 기회를 획득하여, 상기 각 그룹 채널을 통해 패킷이 입력되는지 여부를 확인하는 것을 특징으로 하는 네트워크 프로세서에서 대역폭을 동적으로 할당하는 장치.
  4. 제 1항에 있어서, 상기 패킷 처리부는,
    적어도 하나 이상의 채널이 그룹화되어 그룹 채널이 되는 경우, 라운드 로빈 방식으로 패킷 처리 기회가 획득되면, 상기 채널의 순번 정보에 따라 라운드 로빈 방식으로 해당 채널을 통해 패킷이 수신되는지 여부를 확인하는 것을 특징으로 하는 대역폭을 동적으로 할당하는 장치.
  5. 제 1항에 있어서,
    임의 패킷 처리부가 수신되는 패킷을 처리하면서, 타 패킷 처리부의 간섭을 방지하는 패킷 락(lock) 정보를 저장하는 채널 벡터 비트를 더 포함하는 것을 특징으로 하는 네트워크 프로세서에서 대역폭을 동적으로 할당하는 장치.
  6. 제 1항 또는 제 5항에 있어서, 상기 패킷 처리부는,
    상기 그룹 채널을 통해 패킷이 입력되면, 상기 채널 벡터 비트에 상기 패킷에 대한 락 정보가 있는지 여부를 확인하여, 락 정보가 없으면, 상기 패킷을 처리하는 것을 특징으로 하는 네트워크 프로세서에서 대역폭을 동적으로 할당하는 장치.
  7. 네트워크 프로세서의 패킷 처리 방법에 있어서,
    상기 네트워크 프로세서에 연결되는 적어도 하나 이상의 채널을 각각 그룹화한 그룹 채널 정보와, 상기 각 그룹 채널 정보에 포함되는 채널 정보를 저장하는 단계;
    상기 그룹 채널 정보에 포함되는 채널 정보에 따라 각각의 그룹 채널에 동적으로 대역폭을 할당하는 단계;
    상기 그룹 채널을 통해 입력되는 패킷이 입력되면, 상기 패킷에 대한 중복 처리가 되지 않도록 락 정보를 저장하고, 상기 패킷을 처리하는 단계를 포함하는 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법.
  8. 제 7항에 있어서,
    상기 그룹 채널을 통해 패킷이 수신되면, 상기 패킷에 대한 락 정보가 저장되어 있는지 여부를 확인하여, 저장되어 있으면, 다음 그룹 채널을 통해 입력되는 패킷을 처리하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법.
  9. 제 7항에 있어서, 상기 그룹 채널 정보는,
    상기 네트워크 프로세서가 제공하는 최대 대역폭 값과, 상기 채널의 최소 대역폭 값을 이용하여, 산출되는 최대 채널 개수 정보와, 상기 그룹 채널 순번 정보를 포함하는 것을 특징으로 하는 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법.
KR1020040008088A 2004-02-06 2004-02-06 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법및 그 장치 KR100590887B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040008088A KR100590887B1 (ko) 2004-02-06 2004-02-06 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040008088A KR100590887B1 (ko) 2004-02-06 2004-02-06 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법및 그 장치

Publications (2)

Publication Number Publication Date
KR20050079593A KR20050079593A (ko) 2005-08-10
KR100590887B1 true KR100590887B1 (ko) 2006-06-19

Family

ID=37266500

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040008088A KR100590887B1 (ko) 2004-02-06 2004-02-06 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법및 그 장치

Country Status (1)

Country Link
KR (1) KR100590887B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100508469C (zh) * 2006-12-21 2009-07-01 华为技术有限公司 一种在带宽按需分配业务中调整带宽的方法
KR101405458B1 (ko) * 2009-10-06 2014-06-13 한국전자통신연구원 플로우 기반 네트워크 장치에서의 포워딩 정보 및 QoS 정보 제공 방법

Also Published As

Publication number Publication date
KR20050079593A (ko) 2005-08-10

Similar Documents

Publication Publication Date Title
US8583851B2 (en) Convenient, flexible, and efficient management of memory space and bandwidth
US20070268903A1 (en) System and Method for Assigning Packets to Output Queues
US8713220B2 (en) Multi-bank queuing architecture for higher bandwidth on-chip memory buffer
US10218642B2 (en) Switch arbitration based on distinct-flow counts
US10057174B2 (en) Dynamic group multipathing
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
US9954771B1 (en) Packet distribution with prefetch in a parallel processing network device
WO2016078341A1 (zh) 一种缓存分配方法、装置及网络处理器
CN109218229B (zh) 一种报文处理方法、网络设备及存储介质
JP2008532408A (ja) ルータ、ルータを具えたネットワーク、及びネットワーク内のデータルーティング方法
US10063478B2 (en) Switching device and control method of switching device
CN112805971B (zh) 一种流量整形方法及相关设备
US20010028659A1 (en) Data switching arbitration arrangements
CN115002050A (zh) 工作量证明芯片
EP2491687A1 (en) Aggregate policing applying max-min fairness for each data source based on probabilistic filtering
WO2010062916A1 (en) Network-on-chip system, method, and computer program product for transmitting messages utilizing a centralized on-chip shared memory switch
US7565496B2 (en) Sharing memory among multiple information channels
KR100590887B1 (ko) 네트워크 프로세서에서 대역폭을 동적으로 할당하는 방법및 그 장치
EP3579507B1 (en) Dynamic scheduling methods, platform, system and switch apparatus.
KR100682060B1 (ko) 네트워크 온칩 시스템의 스위칭 장치 및 그의 스케쥴링방법
US20140185368A1 (en) Method and apparatus for storing data
US6424655B1 (en) Transpose table-biased arbitration
US9548885B2 (en) Systems and methods for providing replicated data from memories to processing clients
KR100442627B1 (ko) 네트워크 프로세서에서의 패킷 리디랙션 방법
US6807594B1 (en) Randomized arbiters for eliminating congestion

Legal Events

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