KR100937283B1 - 프로세서, 처리 시스템 및 패킷 처리 방법 - Google Patents

프로세서, 처리 시스템 및 패킷 처리 방법 Download PDF

Info

Publication number
KR100937283B1
KR100937283B1 KR1020020081021A KR20020081021A KR100937283B1 KR 100937283 B1 KR100937283 B1 KR 100937283B1 KR 1020020081021 A KR1020020081021 A KR 1020020081021A KR 20020081021 A KR20020081021 A KR 20020081021A KR 100937283 B1 KR100937283 B1 KR 100937283B1
Authority
KR
South Korea
Prior art keywords
packet
processor
given
memory
stored
Prior art date
Application number
KR1020020081021A
Other languages
English (en)
Other versions
KR20030051381A (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 에이저 시스템즈 인크
Publication of KR20030051381A publication Critical patent/KR20030051381A/ko
Application granted granted Critical
Publication of KR100937283B1 publication Critical patent/KR100937283B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory

Abstract

네트워크 프로세서 또는 다른 유형의 프로세서는 패킷 분석기와, 그 패킷 분석기에 동작가능하게 결합된 제 1 메모리 회로를 포함한다. 패킷 분석기는 패킷 중 임의의 주어진 패킷에 대해 제 1 메모리 회로에 저장되는 패킷의 일부를 결정하기 위해 프로세서가 수신하는 하나 이상의 패킷을 적어도 부분적으로 분석하도록 동작한다. 제 1 메모리 회로에 저장될 때의 임의의 주어진 패킷의 일부는 프로세서 내에서의 후속 처리를 위해 액세스가능하게 되며, 프로세서와 연관된 제 2 메모리 회로에 액세스할 필요없이 실질적으로 전체 주어진 패킷을 저장하도록 구성된다. 패킷 분석기는 제 1 메모리 회로내에 저장되는 임의의 주어진 패킷의 일부를 결정하기 위해 프로세서의 레지스터에 저장되는 값을 이용하도록 구성될 수 있다. 레지스터는 패킷 분석기에 액세스가능한 룩업 테이블을 실행하는 다수의 레지스터 중 하나일 수 있다. 룩업 테이블은 다수의 엔트리를 포함하며, 각각의 엔트리는 포트 번호 또는 패킷 흐름 식별자, 및 제 1 메모리 회로내에 저장되는 패킷의 관련 블록 번호와 같은 패킷 분류 정보를 가진다. 레지스터 중 임의의 주어진 레지스터에 저장된 값은 프로세서에 동작가능하게 결합된 호스트 디바이스의 제어하에 동적으로 갱신가능할 수 있다.

Description

프로세서, 처리 시스템 및 패킷 처리 방법{PROCESSOR WITH REDUCED MEMORY REQUIREMENTS FOR HIGH-SPEED ROUTING AND SWITCHING OF PACKETS}
도 1은 본 발명이 구현되는 패킷 처리 시스템의 개략 블록도,
도 2는 본 발명의 기술에 따라 구성된 도 1의 시스템의 네트워크 프로세서의 상세도,
도 3은 본 발명에 따라서, 내부 메모리에 저장될 패킷의 대응 양과 패킷 식별자를 저장하기 위해 도 2의 네트워크 프로세서에서 이용될 수 있는 룩업 테이블 데이터 구조를 도시하는 도면,
도 4는 본 발명에 따른 도 2의 네트워크 프로세서에 의해 도 1의 시스템에 구현가능한 패킷 분석 및 저장 처리의 흐름도.
도면의 주요 부분에 대한 부호의 설명
100 : 패킷 처리 시스템 102 : 프로세서
104 : 내부 메모리 106 : 외부 메모리
108 : 네트워크 110 : 스위치 패브릭
200 : 패킷 분석기 202 : 메모리 제어기
205 : 룩업 테이블
본 발명은 패킷 처리 시스템에 관한 것이며, 보다 상세하게는, 이러한 시스템내에서 패킷 라우팅, 패킷 스위칭 및 다른 패킷 처리 동작을 수행하는데 사용되도록 구성된 네트워크 프로세서 또는 다른 유형의 프로세서에 관한 것이다.
일반적으로, 네트워크 프로세서는, 예를 들어, 비동기 전송 모드(ATM) 네트워크 또는 동기 광학 네트워크(SONET)의 물리층 부분과 같은 물리적인 전송 매체와, 라우터 또는 다른 형태의 패킷 스위치내의 스위치 패브릭 간의 패킷 흐름을 제어한다. 이러한 라우터와 스위치는 예를 들어, 카드 각각과 연관된 하나 이상의 프로세서와 라인 또는 포트 카드 어레이의 형태로 배열된 다수의 네트워크 프로세서를 일반적으로 포함한다.
라우팅 또는 스위칭과 같은 패킷 처리 동작을 수행할 때, 전형적으로, 네트워크 프로세서는 각각의 패킷의 시작 또는 헤드부를 적어도 조사해야 한다. 조사되어야 하는 각각의 패킷의 양은 관련 네트워크 통신 프로토콜, 인에이블 옵션 및 다른 유사한 인자에 의존한다. 라우터 또는 스위치의 정교화 또는 복잡화는 조사할 필요가 있는 각각의 패킷의 양에 또한 영향을 줄 수 있다.
다수의 종래의 라우터 및 스위치는, 처리되는 임의의 주어진 패킷에 대하여,그 패킷이 목적지에 최종적으로 전송되거나 도달될 때까지, 실질적으로 전체 패킷을 저장하도록 구성되어 있다. 패킷은 관련 네트워크 프로세서 외부에 있는 라우터 또는 스위치 메모리에 일반적으로 저장된다. 임의의 주어진 패킷이 외부 메모리에 유지될 수 있는 시간은 라우터 또는 스위치의 기본적인 처리 시간, 패킷에 적용되는 서비스의 품질, 분석될 특정 프로토콜 층, 및 패킷이 전송되는 포트 또는 다른 통신 채널의 폭주(congestion)의 영향을 받는다.
고속 라우터 및 스위치는 네트워크 프로세서에 의해 처리되는 임의의 주어진 패킷의 일부분을 네트워크 프로세서내의 온 칩 메모리내에 전형적으로 저장할 것이다. 이것은, 외부 메모리가 온 칩 메모리에 비해 저속이고 보다 더 대역 제한적이다는 점에서, 전체 패킷을 수용하는 대용량 외부 메모리에 액세스할 필요를 없게 함으로써, 라우터 또는 스위치의 성능을 개선시킨다. 그러나, 종래의 경우에, 임의의 주어진 라우터 또는 스위치 애플리케이션에서 분석될 필요가 있는 최악의 패킷 부분은, 최악의 패킷 부분이 특정의 드문 발생 패킷(rarely-occurring packet)에만 관련될 수 있을 지라도, 온 칩 메모리내에 유지된 모든 패킷 부분의 사이즈를 일반적으로 표시한다. 이것은 온 칩 메모리의 필요한 사이즈를 상당히 증가시켜서, 네트워크 프로세서의 비용 및 복잡성을 상당히 증가시킨다.
따라서, 다바이스의 메모리 요건을 감소시키기 위해서, 네트워크 프로세서 또는 다른 유형의 프로세서와 연관된 특정 메모리내에 저장되는 패킷의 특정 부분을 결정하는 개량된 기술이 필요하다는 것은 분명하다.
본 발명은 네트워크 프로세서 또는 다른 유형의 프로세서의 메모리 요건을 상당히 감소시킨다.
본 발명의 일 측면에 따르면, 프로세서는 패킷 분석기와 그 패킷 분석기에 동작가능하게 결합된 제 1 메모리 회로를 포함한다. 패킷 분석기는 임의의 주어진 패킷 중 하나에 대해 제 1 메모리 회로내에 저장되는 패킷의 일부를 결정하기 위해서 프로세서에 의해 수신되는 하나 이상의 패킷을 적어도 부분적으로 분석하도록 동작한다. 제 1 메모리 회로내에 저장될 때의 임의의 주어진 패킷의 일부는, 프로세서와 연관된 제 2 메모리 회로에 액세스할 필요없이, 전체의 주어진 패킷을 후속하여 저장하도록 프로세서 내에서의 후속 처리를 위해 액세스가능하게 된다. 제 1 및 제 2 메모리 회로는 예를 들어, 프로세서의 내부 및 외부 메모리 각각을 포함할 수 있다.
본 발명의 다른 측면에 따르면, 패킷 분석기는 프로세서의 레지스터내에 저장된 값을 이용하여 제 1 메모리 회로, 예를 들어, 내부 메모리에 저장될 임의의 주어진 패킷 부분을 결정하도록 구성될 수 있다. 레지스터는 패킷 분석기에 액세스가능한 룩업 테이블을 실행하는 다수의 레지스터 중 하나일 수 있다. 룩업 테이블은, 각각이 포트 번호 또는 패킷 흐름 식별자, 및 내부 메모리에 저장될 패킷의 블록의 관련 번호와 같은 패킷 분류 정보(packet categorizing information)를 가진 다수의 엔트리를 포함한다.
본 발명의 다른 측면에 따르면, 임의의 주어진 하나의 레지스터내에 저장된 값은 예를 들어, 프로세서에 동작가능하게 결합된 호스트 디바이스의 제어하에, 동적으로 갱신가능하다. 이것에 의해, 프로그래머는 프로세서의 내부 메모리에 저장될 패킷의 임의의 주어진 카테고리의 특정 부분을 표시할 수 있다.
바람직하게, 본 발명의 기술은 프로세서의 내부 및/또는 외부 메모리 요건을 감소시킬 뿐만 아니라, 외부 메모리에 액세스할 필요성을 상당히 감소시킴으로써, 프로세서 처리량을 증가시킨다.
본 발명은 특정 방식으로 구성된 네트워크 프로세서를 포함하는 예시적인 패킷 처리 시스템과 결부시켜 설명될 것이다. 그러나, 본 발명은 프로세서에서 수행되는 패킷 처리 동작과 관련된 내부 및/또는 외부 메모리 요건을 감소시키고자 하는 임의의 프로세서에 보다 일반적으로 적용가능하다.
본 명세서에 사용된 "프로세서" 용어는 제한없이 예시적으로, 마이크로프로세서, 중앙 처리 장치(CPU), 디지털 신호 프로세서(DSP), 응용 주문형 집적 회로(ASIC), 또는 다른 형태의 데이터 처리 장치와, 이들 장치 및 다른 장치의 일부 및 조합을 이용하여 구현될 수 있다. 본 발명을 이용하는데 적합한 임의의 주어진 프로세서는 예를 들어, 온 칩 메모리와 같은 내부 메모리와, 외부 메모리 모두를 포함할 수 있다. "프로세서" 용어는 이러한 외부 메모리를 포함하도록 포괄적으로 구성될 수 있게 되어 있다.
실시예의 본 발명은 패킷의 관련 부분을 저장하는데 필요한 메모리의 양 만 을 할당할 수 있게 하기 위해서 네트워크 프로세서에 도달할 때 각각의 충분한 패킷을 부분적으로 분석함으로써 네트워크 프로세서에 필요한 메모리의 양을 감소시킨다. 적절한 시기에, 패킷은 그 저장된 부분으로부터 완전히 분석될 수 있다. 따라서, 외부 메모리에서의 필요한 대역폭의 감소 및 전체 처리 시스템 설계에서의 간략화의 관련 영향으로 인한 시스템 비용을 감소시킨다.
도 1은 본 발명이 구현되는 패킷 처리 시스템(100)을 도시한다. 시스템(100)은 내부 메모리(104)를 가진 네트워크 프로세서(102)를 포함한다. 네트워크 프로세서(102)는 도시된 바와 같이 외부 메모리(106)에 결합되어 있으며, 패킷이 수신되는 네트워크(108)와, 패킷 데이터의 스위칭을 제어하는 스위치 패브릭(110) 사이를 인터페이스하도록 구성되어 있다. 프로세서(102)와 그 관련 외부 메모리(106)는 예를 들어, 라우터 또는 스위치의 라인 카드 상에 설치되는 하나 이상의 집적 회로로서 구현될 수 있다. 이러한 구성에서, 스위치 패브릭(110)은 일반적으로 라우터 또는 스위치의 일부가 될 수 있다.
메모리(106)가 프로세서(102) 외부에 있는 것으로서 도면에 도시되어 있지만, 상술한 바와 같이, 본 명세서에 사용된 "프로세서" 용어는 구성 요소(102, 106)를 포함하도록 충분히 광범위하게 되어 있다.
도 1에 도시된 시스템 구성 요소의 특정 구조는 단지 예시적인 것으로 알아야 한다. 예를 들어, 상술한 바와 같이, 본 발명은 임의 유형의 패킷 프로세서로 구현될 수 있으며, 특정 패킷 처리 애플리케이션으로 제한되지 않는다.
도 2는 도 1의 네트워크 프로세서(102)를 보다 상세히 도시한다. 본 실시예 에서의 네트워크 프로세서(102)는 네트워크(108)로부터 진입 패킷(incoming packet)을 수신하는 패킷 분석기(200)를 포함한다. 패킷 분석기는 본 실시예에서 내부 메모리(104) 및 외부 메모리(106)와 인터페이스하는 메모리 제어기(202)에 결합되어 있다. 프로세서(102)는 트래픽 매니저(traffic manager)와 같이, 도면에 도시되지 않은 다른 처리 회로와 관련되어 있거나 포함할 수 있다.
본 발명에 따라서, 패킷 분석기(200)는 임의의 주어진 하나의 패킷에 대하여 내부 메모리(104)내에 저장되는 패킷의 일부를 결정하기 위해, 네트워크 프로세서(102)에 의해 수신되는 하나 이상의 패킷를 적어도 부분적으로 분석하도록 동작한다. 내부 메모리(104)에 저장될 때의 임의의 주어진 패킷의 일부는 외부 메모리(106)에 액세스할 필요없이 네트워크 프로세서(102)내에서의 후속 처리를 위해 액세스가능하며, 외부 메모리는 실질적으로 전체 패킷을 저장하도록 전형적으로 구성되어 있다. 내부 메모리(104)에 저장되는 임의의 주어진 패킷의 일부는 예를 들어, 패킷의 지정된 헤드 부분일 수 있다. 메모리 제어기(202)는 내부 메모리(104)에의 임의의 주어진 패킷의 지정된 부분의 저장을 제어하도록 동작하며, 외부 메모리(106)에의 실질적으로 전체 패킷의 저장을 제어하도록 동작한다.
따라서, 패킷 분석기(200)는 네트워크(108)로부터 수신되는 패킷의 적어도 서브세트를 적어도 부분적으로 분석하고, 분석된 패킷 각각에 대해 내부 메모리(104)에 저장되는 패킷의 특정 부분을 결정한다. 아래에 보다 상세히 설명되는 바와 같이, 예를 들어, 포트 번호, 패킷 흐름 식별자 또는 임의의 주어진 패킷과 관련된 다른 패킷 특징 정보를 식별하는 것에 기초하여 결정되고, 대응하는 레지스터 또는 다른 메모리 위치로부터 관련 블록 번호의 표시자를 판독하는 것에 기초하여 결정된다. 일반적으로, 결정된 부분은, 결정된 부분이 내부 메모리(102)에 저장될 때, 패킷의 임의의 다른 부분에 대해 외부 메모리에 액세스할 필요없이 후속 처리가 수행될 수 있도록, 네트워크 프로세서(102)내에서의 후속 처리에 필요한 부분이다.
본 발명의 기술은, 예를 들어, 전체 패킷이 제 2 메모리 회로에 저장되는 제 1 메모리 회로에 저장되는 패킷의 특정 부분을 결정함으로써, 외부 메모리와 관련된 메모리 요건을 감소시키는 것에 또한 적용가능하며, 여기서, 제 1 및 제 2 메모리 회로 중 하나 또는 둘다는 외부 메모리를 나타낸다. 이러한 제 1 및 제 2 메모리 회로는 도 1의 내부 및 외부 메모리(104, 106) 각각에 또한 대응할 수 있다. 제 1 및 제 2 메모리 회로는 개별적인 메모리를 나타낼 수 있지만, 대안으로, 단일의 내부 또는 외부 메모리의 상이한 부분을 나타낼 수 있다.
메모리 제어기(202)는, 단일의 메모리 제어기로서 도시되어 있지만, 당업자가 아는 바와 같이, 내부 메모리(104)와 외부 메모리(106) 각각에 대해 개별적인 제어기를 포함할 수 있다.
패킷 분석기(200)는 메모리 제어기(202)를 통해, 내부 메모리(104)의 일부 내의 레지스터 세트를 이용하여 구현되는 룩업 테이블(205)과 통신한다. 툭업 테이블(205)은 패킷 분석기(200)가 이용하는 정보를 제공하여 내부 메모리(104)에 저장되는 임의의 주어진 패킷의 특정 부분을 결정한다.
룩업 테이블(205)은 도면에 도시된 바와 같이, 내부 메모리(104)의 일부로서 구현되기 보다는, 본 발명의 다른 실시예에서의 개별적인 메모리 내에 있다는 것을 알아야 한다.
도 3a는 룩업 테이블(205)을 포함하는 레지스터 세트의 일예를 도시하고 있다. 이러한 예에서, 룩업 테이블(205)은 내부 메모리(104)의 대응 레지스터내에 각각이 저장된 N개의 상이한 엔트리를 포함한다. 각각의 엔트리는 포트 번호 및 블록의 대응 번호를 포함한다. 포트 번호는 네트워크 프로세서(102)에 도달하는 패킷과 관련될 수 있는 N개의 포트 중 하나에 대응한다. 예를 들어, 임의의 주어진 네트워크 프로세서는 256 포트 이상을 지원할 수 있다. 임의의 주어진 포트에 대해 지정된 블록 번호는 내부 메모리(104)에 저장되어야 하는 포트에 도달하는 각각의 패킷의 블록 번호를 나타낸다. 블록은 특정 수의 바이트로서 바람직하게 지정된다. 예를 들어, 실시예에서, 블록은 64 바이트일 수 있다. 룩업 테이블(205)내의 엔트리로서 저장된 특정의 사전 결정된 블록값, 예를 들어, 0의 블록값은 대응 포트상에 도달하는 각각의 패킷에 대하여, 전체 패킷이 지정된 최대값, 예를 들어, 64 킬로바이트까지, 내부 메모리(104)에 저장되어야 함을 나타낸다.
도 3a의 패킷 분석기(200)는 임의의 주어진 패킷에 대하여 임의의 주어진 패킷과 관련된 특정 포트 번호를 결정하도록 구성되어 있다. 패킷 분석기(200)는 룩업 테이블(205)로의 입력으로서 그 결정된 포트 번호를 이용하여 내부 메모리(104)에 저장되어야 하는 패킷의 대응 블록 번호를 결정한다. 패킷의 블록 번호는 메모리 제어기(202)의 지시하에 내부 메모리(104)에 저장된다.
도 3b는 룩업 테이블(205)을 포함하는 레지스터 세트의 다른 예를 도시한다. 이러한 예에서, 룩업 테이블(205)은 내부 메모리(104)의 대응 레지스터에 각각이 저장되는 N개의 상이한 엔트리를 또한 포함한다. 그러나, 이 경우에, 각각의 엔트리는 패킷 식별자와 블록의 대응 번호를 포함한다. 패킷 식별자는 예를 들어, 특정 관련 패킷을 지정하는 패킷 흐름 식별자와, 다른 적절한 패킷 식별 정보를 포함할 수 있다. 이전의 예에서와 같이, 임의의 주어진 패킷 식별자에 대해 지정된 블록 번호는 내부 메모리(104)에 저장되어야 하는 대응 패킷 식별자를 가진 각각의 패킷의 블록 번호를 나타낸다. 또한, 블록은 특정 번호의 바이트, 예를 들어, 64 바이트로서 바람직하게 지정되고, 0 바이트 엔트리는 지정된 최대값까지 전체 패킷이 내부 메모리(104)에 저장되어야 하는 것을 나타낼 수 있다.
도 3b의 패킷 분석기(200)는 임의의 주어진 패킷에 대하여 임의의 주어진 패킷과 관련된 특정 패킷 식별자를 결정하도록 구성되어 있다. 패킷 분석기(200)는 룩업 테이블(205)로의 입력으로서 그 결정된 패킷 식별자를 이용하여 내부 메모리(104)에 저장되는 패킷의 대응 블록 번호를 결정한다. 그 패킷의 블록 번호는 메모리 제어기(202)의 지시하에 내부 메모리(104)에 저장된다.
도 3a 및 도 3b의 특정 예는 본 발명의 범위를 어떤 식으로든 제한하고자 하는 것은 아니다는 것을 알아야 한다. 당업자는 다수의 대체 룩업 테이블 구성이 가능하다는 것을 알 것이다. 예를 들어, 다른 유형의 패킷 분류 기술 및 상이한 방법을 이용하여 임의의 주어진 패킷 카테고리에 대해 메모리에 저장된 특정 부분을 지정하는 것이 가능하다.
도 4는 네트워크 프로세서(102)에 의해 도 1의 패킷 처리 시스템(100)에 구 현가능한 범용 패킷 분석 및 저장 처리의 흐름도이다. 처리는 단일 패킷에 대해 예시되어 있지만, 유사한 처리가 각각의 수신 패킷에 적용될 수 있다. 전체적으로 도 4의 처리는 제한하기 보다는 본 발명의 단순한 예시 및 설명이다는 것을 또한 알아야 한다. 도면에 도시되어 있지 않지만, 도 4의 처리는 소망의 값으로 룩업 테이블 엔트리를 초기화하는 예비 단계를 포함할 수 있다.
단계(400)에서, 처리되는 패킷은 네트워크 프로세서(102)에 의해 수신된다. 단계(402)에서 패킷 분석기(200)는 패킷을 부분적으로 분석하여 네트워크 프로세서 내에서의 후속 처리에 필요한 부분을 결정한다. 상술한 바와 같이, 내부 메모리에 저장되는 패킷의 블록의 특정 번호를 결정하기 위해 룩업 테이블(205)에 액세스함으로써 결정될 수 있다. 단계(404)에서, 룩업 테이블(205)로부터 결정된 패킷의 필요한 부분은 내부 메모리(104)에 저장된다. 단계(406)에서, 전체 패킷은 외부 메모리(106)에 저장된다. 내부 메모리에 필요한 부분을 저장한 후에 외부 메모리에 전체 패킷을 저장하는 것은 단순히 예시적이며, 본 발명의 필수 조건은 아니다. 예를 들어, 전체 패킷은 단계(402, 404)의 처리를 수행하기 전에 외부 메모리에 저장될 수 있다. 다른 예로서, 패킷의 남은 부분, 즉, 단계(404)에서 내부 메모리에 저장된 부분 외의 부분은 단계(406)에서 외부 메모리에 저장될 수 있다. 또한, 단계(404, 406)는 실질적으로 병렬로 수행될 수 있다. 어떠한 경우든, 패킷 처리 시간에, 즉, 상술한 후속 처리가 패킷의 필요한 부분에 대해 수행되어야 하는 시간에, 패킷의 그 필요한 부분은 네트워크 프로세서에서의 적절한 처리 동작을 실행하는데 필요로 하는 바에 따라서 내부 메모리(104)로부터 검색된다.
룩업 테이블(205)의 각각의 엔트리는 적절한 소프트웨어 제어를 통해 동적으로 갱신될 수 있다. 예를 들어, 룩업 테이블(205)내의 엔트리에 대한 임의의 주어진 "블록 번호" 값은 초기에 저장되거나, 예를 들어, 주변 구성 요소 상호 접속(PCI) 버스를 통해, 네트워크 프로세서(102)에 결합된 호스트 프로세서의 제어하에 갱신될 수 있다. 바람직하게, 이로써, 프로그래머는 특정 포트 번호, 패킷 흐름 식별자 또는 다른 카테고리의 패킷에 대해, 내부 메모리에 저장되는 패킷의 블록의 특정 번호를 지정할 수 있다. 일반적으로, 이러한 프로그래머는 임의의 주어진 패킷 카테고리와 관련된 특정 프로토콜을 일반적으로 알고 있으며, 최적으로 처리하는 처리량을 위해 내부 메모리에 유지되는 패킷 각각의 적절한 부분을 알고 있다. 룩업 테이블(205)내의 임의의 주어진 저장값은 수신된 패킷의 시퀀스로 각각의 패킷에 대한 소프트웨어 제어하에 동적으로 갱신될 수 있다. 대안으로, 도 3a 및 도 3b의 예에서와 같이, 수신된 패킷 중 다수의 패킷에 대해 동일 값을 이용가능할 수 있다.
상술한 본 발명의 실시예는 단지 예시적인 것이다. 예를 들어, 실시예는, 각각의 엔트리가 내부 메모리에 저장되는 패킷의 패킷 분류 정보 및 관련 패킷의 블록 번호를 포함하는 룩업 테이블을 이용하지만, 상술한 기능을 구현하기 위해 다른 실시예는 상이한 유형의 레지스터 또는 메모리 구조를 이용할 수 있다. 또한, 내부 메모리 또는 다른 제 1 메모리 회로에 저장되는 임의의 주어진 패킷의 지정된 부분은 패킷의 헤더 부분을 나타내고 있지만, 대안으로, 패킷의 상당히 큰 부분을 나타낼 수 있고, 사전 결정된 블록 번호 엔트리, 예를 들어, 0 엔트리에 대한 전체 패킷 만큼 클 수 있다. 이러한 실시예 및 다수의 다른 실시예는 첨부한 청구 범위내에 있다는 것을 당업자는 알 것이다.
본 발명은 프로세서의 내부 및/또는 외부 메모리 요건을 감소시킬 뿐만 아니라, 외부 메모리에 액세스할 필요성을 상당히 감소시킴으로써, 프로세서 처리량을 증가시킨다.

Claims (10)

  1. 프로세서에 있어서,
    패킷 분석기와,
    상기 패킷 분석기에 접속 가능하며, 대응 패킷 카테고리에 대해 부분 표시자(a portion indicator)를 각각 지정하는 다수의 엔트리를 포함하고, 상이한 패킷 카테고리로 상이한 부분 표시자의 할당을 허용하도록 구성되는 룩업 테이블과,
    상기 프로세서에 연관되어 상기 패킷 분석기에 동작가능하게 결합되어 있는 제 1 메모리 회로를 포함하며,
    상기 패킷 분석기는, 상기 룩업 테이블의 관련 패킷 카테고리에 대한 상기 부분 표시자에 기초하여, 패킷들 중 임의의 주어진 패킷에 대해 상기 제 1 메모리 회로에 저장될 패킷의 부분을 결정하기 위해 상기 프로세서에 의해 수신되는 하나 이상의 패킷을 적어도 부분적으로 분석하도록 동작하며, 상기 제 1 메모리 회로에 저장될 때의 임의의 주어진 패킷의 부분은, 전체의 주어진 패킷을 저장하도록 구성되고 상기 프로세서와 연관된 제 2 메모리 회로에 액세스할 필요없이 상기 프로세서 내에서의 후속 처리를 위해 액세스가능하게 되어 있는
    프로세서.
  2. 제 1 항에 있어서,
    상기 제 1 메모리 회로는 상기 프로세서의 내부 메모리를 포함하며, 상기 제 2 메모리 회로는 상기 프로세서의 외부 메모리를 포함하며, 상기 패킷 분석기는 네트워크로부터 수신된 패킷 각각을 적어도 부분적으로 분석하고, 상기 패킷의 적어도 서브세트에 대하여 상기 내부 메모리에 저장될 패킷의 특정 부분을 결정하는 프로세서.
  3. 제 1 항에 있어서,
    상기 제 1 메모리 회로는 상기 프로세서의 내부 메모리를 포함하며, 상기 제 2 메모리 회로는 상기 프로세서의 외부 메모리를 포함하며, 상기 패킷 분석기는 상기 프로세서의 레지스터에 저장되는 값을 이용하여 상기 내부 메모리에 저장되는 임의의 주어진 패킷의 부분을 결정하도록 구성되어 있는 프로세서.
  4. 제 3 항에 있어서,
    상기 레지스터는 상기 패킷 분석기에 액세스가능한 상기 룩업 테이블을 구현하는 다수의 레지스터 중 하나를 포함하며, 상기 룩업 테이블의 상기 다수의 엔트리의 적어도 하나의 서브세트 각각은 상기 내부 메모리에 저장되는 패킷 분류 정보 및 패킷의 관련 블록 번호를 포함하는 프로세서.
  5. 제 4 항에 있어서,
    상기 패킷 분류 정보는 하나 이상의 패킷이 수신될 수 있는 프로세서와 연관된 포트를 지정하는 포트 번호를 포함하는 프로세서.
  6. 제 4 항에 있어서,
    상기 패킷 분류 정보는 특정 패킷 흐름을 지정하는 패킷 식별자를 포함하는 프로세서.
  7. 제 4 항에 있어서,
    상기 관련 블록 번호는 임의의 주어진 패킷에 대해 내부 메모리에 저장될 전체 패킷을 나타내는 사전 결정된 블록 번호를 포함하는 프로세서.
  8. 제 1 항에 있어서,
    상기 제 1 메모리 회로는 상기 프로세서의 내부 메모리를 포함하며, 상기 제 2 메모리 회로는 상기 프로세서의 외부 메모리를 포함하며, 상기 패킷 분석기의 제어하에, 상기 내부 메모리에 저장될 상기 패킷의 부분의 대응하는 표시와 상기 임의의 주어진 패킷에 대한 패킷 분류 정보를 저장하는 레지스터를 더 포함하는 프로세서.
  9. 처리 시스템에 있어서,
    프로세서와,
    상기 프로세서에 동작가능하게 결합된 외부 메모리를 포함하되,
    상기 프로세서는
    패킷 분석기와,
    상기 패킷 분석기에 접속 가능하며, 대응 패킷 카테고리에 대해 부분 표시자를 각각 지정하는 다수의 엔트리를 포함하고, 상이한 패킷 카테고리로 상이한 부분 표시자의 할당을 허용하도록 구성되는 룩업 테이블과,
    상기 패킷 분석기에 동작가능하게 결합된 내부 메모리를 더 포함하며,
    상기 패킷 분석기는, 상기 룩업 테이블 내의 관련 패킷 카테고리에 대한 상기 부분 표시자에 기초하여, 패킷들 중 임의의 주어진 패킷에 대해 상기 내부 메모리에 저장될 패킷의 부분을 결정하기 위해 상기 프로세서에 의해 수신되는 하나 이상의 패킷을 적어도 부분적으로 분석하도록 동작하며, 상기 내부 메모리에 저장될 때의 상기 임의의 주어진 패킷의 부분은 상기 외부 메모리에 액세스할 필요없이 상기 프로세서에서의 후속 처리를 위해 액세스가능하게 되어 있으며, 상기 외부 메모리는 임의의 주어진 전체 패킷을 저장하도록 구성되어 있는
    처리 시스템.
  10. 프로세서에서의 패킷 처리 방법에 있어서,
    패킷 중 임의의 주어진 패킷에 대해 상기 프로세서와 연관된 제 1 메모리 회로에 저장될 패킷의 부분을 결정하기 위해 상기 프로세서에 의해 수신되는 하나 이상의 패킷을 적어도 부분적으로 분석하는 단계와,
    상기 제 1 메모리 회로에 상기 임의의 주어진 패킷을 저장하는 단계로서, 상기 임의의 주어진 패킷의 부분은 임의의 주어진 전체 패킷을 저장하도록 구성되고 상기 프로세서와 연관된 제 2 메모리 회로에 액세스할 필요없이 상기 프로세서 내에서의 후속 처리를 위해 액세스가능하도록 되어 있는 상기 저장 단계를 포함하되,
    상기 프로세서는 패킷 분석기와, 상기 패킷 분석기에 접속 가능하며 대응 패킷 카테고리에 대해 부분 표시자를 각각 지정하는 다수의 엔트리를 포함하고 상이한 패킷 카테고리로 상이한 부분 표시자의 할당을 허용하도록 구성되는 룩업 테이블을 포함하며,
    상기 제 1 메모리 회로에 저장되는 주어진 패킷의 부분은 상기 룩업 테이블 내의 관련 패킷 카테고리에 대한 상기 부분 표시자에 기초하여 결정되는
    패킷 처리 방법.
KR1020020081021A 2001-12-19 2002-12-18 프로세서, 처리 시스템 및 패킷 처리 방법 KR100937283B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/025,352 2001-12-19
US10/025,352 US7113518B2 (en) 2001-12-19 2001-12-19 Processor with reduced memory requirements for high-speed routing and switching of packets

Publications (2)

Publication Number Publication Date
KR20030051381A KR20030051381A (ko) 2003-06-25
KR100937283B1 true KR100937283B1 (ko) 2010-01-18

Family

ID=21825510

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020081021A KR100937283B1 (ko) 2001-12-19 2002-12-18 프로세서, 처리 시스템 및 패킷 처리 방법

Country Status (6)

Country Link
US (1) US7113518B2 (ko)
EP (1) EP1331757B1 (ko)
JP (1) JP4209186B2 (ko)
KR (1) KR100937283B1 (ko)
DE (1) DE60211466T2 (ko)
TW (1) TWI249919B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1791305A1 (en) * 2005-11-25 2007-05-30 Alcatel Lucent Storing and processing a data unit in a network device
US8572349B2 (en) * 2006-01-31 2013-10-29 Agere Systems Llc Processor with programmable configuration of logical-to-physical address translation on a per-client basis
US7835288B2 (en) * 2008-07-02 2010-11-16 OnPath Technologies Inc. Network switch with onboard diagnostics and statistics collection
US8897316B2 (en) 2010-12-31 2014-11-25 Telefonaktiebolaget L M Ericsson (Publ) On-chip packet cut-through
US8743715B1 (en) 2011-01-24 2014-06-03 OnPath Technologies Inc. Methods and systems for calibrating a network switch
US9141373B2 (en) * 2013-07-31 2015-09-22 Arista Networks, Inc. System and method for accelerated software upgrades
CN113472688B (zh) * 2020-03-30 2023-10-20 瑞昱半导体股份有限公司 应用在网络装置中的电路及网络装置的操作方法
US20230060275A1 (en) * 2021-08-20 2023-03-02 International Business Machines Corporation Accelerating multiplicative modular inverse computation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6160809A (en) * 1997-12-17 2000-12-12 Compaq Computer Corporation Distributed packet data with centralized snooping and header processing router
KR20010007346A (ko) * 1999-06-12 2001-01-26 윤종용 데이터 네트워크에서 패킷 스위치 장치 및 방법
US20010012294A1 (en) 1998-07-08 2001-08-09 Shiri Kadambi Network switching architecture with fast filtering processor
US20010049744A1 (en) 2000-03-03 2001-12-06 Terrence Hussey High-speed data processing using internal processor memory space

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0504537A1 (en) * 1991-03-22 1992-09-23 International Business Machines Corporation Method and apparatus for the testing and evaluation of geographically distributed telecommunication networks
JP4181645B2 (ja) * 1996-02-29 2008-11-19 富士通株式会社 データ処理装置
US6369855B1 (en) * 1996-11-01 2002-04-09 Texas Instruments Incorporated Audio and video decoder circuit and system
US6167054A (en) * 1997-02-14 2000-12-26 Advanced Micro Devices, Inc. Method and apparatus providing programmable thresholds for full-duplex flow control in a network switch
US6032190A (en) 1997-10-03 2000-02-29 Ascend Communications, Inc. System and method for processing data packets
US6438145B1 (en) * 1998-12-04 2002-08-20 Koninklijke Philips Electronics N.V. Transport packet distribution system and method using local header
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
US7114008B2 (en) * 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US7032031B2 (en) * 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
EP1340381A2 (en) * 2000-10-27 2003-09-03 Polycom Israel Ltd. Apparatus and method for improving the quality of video communication over a packet-based network
US20020196737A1 (en) * 2001-06-12 2002-12-26 Qosient Llc Capture and use of service identifiers and service labels in flow activity to determine provisioned service for datagrams in the captured flow activity
US6915480B2 (en) * 2001-12-21 2005-07-05 Agere Systems Inc. Processor with packet data flushing feature

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6160809A (en) * 1997-12-17 2000-12-12 Compaq Computer Corporation Distributed packet data with centralized snooping and header processing router
US20010012294A1 (en) 1998-07-08 2001-08-09 Shiri Kadambi Network switching architecture with fast filtering processor
KR20010007346A (ko) * 1999-06-12 2001-01-26 윤종용 데이터 네트워크에서 패킷 스위치 장치 및 방법
US20010049744A1 (en) 2000-03-03 2001-12-06 Terrence Hussey High-speed data processing using internal processor memory space

Also Published As

Publication number Publication date
EP1331757A2 (en) 2003-07-30
KR20030051381A (ko) 2003-06-25
TW200303666A (en) 2003-09-01
US7113518B2 (en) 2006-09-26
DE60211466T2 (de) 2006-09-28
US20030112801A1 (en) 2003-06-19
JP2003218907A (ja) 2003-07-31
EP1331757A3 (en) 2003-08-13
JP4209186B2 (ja) 2009-01-14
EP1331757B1 (en) 2006-05-17
DE60211466D1 (de) 2006-06-22
TWI249919B (en) 2006-02-21

Similar Documents

Publication Publication Date Title
US9912590B2 (en) In-line packet processing
US8358655B2 (en) Computer system and network interface supporting class of service queues
US5394394A (en) Message header classifier
KR100647949B1 (ko) 네트워크 패킷 전달 방법 및 패킷 캡슐화 - 캡슐 해제 방법과 컴퓨터 판독 가능한 매체 및 프로세서
JP3734704B2 (ja) パケット分類エンジン
US7894480B1 (en) Computer system and network interface with hardware based rule checking for embedded firewall
US8176300B2 (en) Method and apparatus for content based searching
US9479464B1 (en) Computer system and network interface with hardware based packet filtering and classification
US6307860B1 (en) Systems and methods for data transformation and transfer in networks
JP2002524005A (ja) 通信を高速化するインテリジェントネットワークインタフェース装置及びシステム
WO2003055157A1 (en) Deferred queuing in a buffered switch
US5914956A (en) Cache for improving the connection capacity of a communications switch
US7206880B2 (en) Multi-protocol bus system and method of operation thereof
JP2003508957A (ja) ネットワーク・プロセッサ処理コンプレックス及び方法
US20110258694A1 (en) High performance packet processing using a general purpose processor
JP2003508951A (ja) Vlsiネットワーク・プロセッサ及び方法
WO2007133316A2 (en) Packet firewalls of particular use in packet switching devices
CZ20021442A3 (cs) Způsob a systém pro klasifikaci rámců a protokolů
KR100937283B1 (ko) 프로세서, 처리 시스템 및 패킷 처리 방법
US8094677B2 (en) Multi-bus structure for optimizing system performance of a serial buffer
JPH09139751A (ja) 通信ネットワークにおけるトラフィック・フィルタリング用ブリッジ装置
US7079539B2 (en) Method and apparatus for classification of packet data prior to storage in processor buffer memory
US6628669B1 (en) LAN relaying/switching apparatus
CN115118678B (zh) 一种fc设备端的多分区网络通信系统及其通信方法
JPH098813A (ja) エラスティックバッファ

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
FPAY Annual fee payment

Payment date: 20121226

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131220

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee