KR100920651B1 - 네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치 - Google Patents

네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치 Download PDF

Info

Publication number
KR100920651B1
KR100920651B1 KR1020020082078A KR20020082078A KR100920651B1 KR 100920651 B1 KR100920651 B1 KR 100920651B1 KR 1020020082078 A KR1020020082078 A KR 1020020082078A KR 20020082078 A KR20020082078 A KR 20020082078A KR 100920651 B1 KR100920651 B1 KR 100920651B1
Authority
KR
South Korea
Prior art keywords
packet
data
identifier
block
blocks
Prior art date
Application number
KR1020020082078A
Other languages
English (en)
Other versions
KR20030053452A (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 KR20030053452A publication Critical patent/KR20030053452A/ko
Application granted granted Critical
Publication of KR100920651B1 publication Critical patent/KR100920651B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines

Landscapes

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

Abstract

본 발명은 네트워크 프로세서에서 데이터 블록들을 재조합하여 원래의 구성 성분으로 된 데이터 패킷들로 되돌리는 방법 및 장치에 관한 것이다. 패킷에 연관된 각각의 데이터 블록에는 동일한 패킷으로부터의 모든 블록들을 조합하는데 사용되는 고유한 큐 식별자(queue identifier)가 할당된다. 이 패킷에는 또한 다운스트림 네트워크 프로세서가 패킷을 처리하는데 사용하는 패킷 식별자와, 패킷의 시작 식별자와 패킷의 끝 식별자가 할당된다. 상기 블록들은 할당된 큐 식별자에 따라 조합되며 패킷의 최종 블록이 수신되면, 이 때 패킷의 재조합이 완료된다.
Figure R1020020082078
네트워크 프로세서, 데이터 블록, 재조합, 데이터 패킷, 큐 식별자,

Description

네트워크 프로세서 내에서 데이터 블록들의 재조합 방법 및 장치{A method and apparatus for reassembly of data blocks within a network processor}
본 발명의 상세한 설명 및 이하의 도면들을 참조하여 고려하는 경우에 보다 용이하게 본 발명을 이해할 수 있고 또한 추가적인 장점들 및 사용법들도 보다 즉각적으로 명료하게 이용될 수 있다.
도 1은 재조합 처리를 수행하기 위한 주요 구성 요소들의 블록 다이어그램.
도 2는 재조합 처리중에 사용되는 테이블.
도 3a 및 도 3b는 패킷의 재조합 처리를 도시한 도면.
도 4는 도 1의 조합기의 블록 다이어그램.
도 5는 재조합 절차를 도시한 흐름도.
*******도면의 주요부분에 대한 부호의 설명******
12 : 프리프로세서 14 : 재조합기
14 : 프로세서 16 : 포트 집합기
20 : 프레이머 26 : 데이터 버퍼
(발명의 분야)
본 발명은 일반적으로 네트워크 프로세서 내의 데이터 패킷들을 처리하는 것에 관한 것이고, 특히, 초기에 분할된 데이터 패킷의 형태로 데이터 블록들을 재조합하는 방법에 관한 것이다.
(발명의 배경)
컴퓨터 또는 데이터 네트워크들은 사용자가 프린터 서버들, 라우터들, 파일 시스템들, 장거리 데이터 통신 회선들, 검색 엔진 서버들 및 웹사이트 서버들을 공유 또는 다중 사용할 수 있도록 한다. 네트워크를 통해서 전송되는 데이터는 통상적으로 유한한 부분들 또는 블록들로 분할되어 있다. 일부 네트워크 프로토콜들 하에서, 데이터는 고정 길이의 셀들로 분할되어 있다. 예를 들어 비동기 전송 모드(asynchronous transfer mode: ATM) 프로토콜에서 데이터는 53 바이트의 셀들로 분할되며, 각 셀의 5 바이트들은 헤더(또한 메타 데이터로도 지칭됨)로 지정되고 각 셀의 48 바이트들은 페이로드(payload) 또는 정보(information)로 지정된다. 다른 네트워크 프로토콜, 예를 들어 이더넷(Ethernet) 프로토콜은 데이터를 가변 길이의 패킷들로 분할할 수도 있다. 예를 들어 이더넷 패킷은 14 바이트의 헤더와 64 바이트들 내지 1,500 바이트들의 가변적인 페이로드 크기를 갖는다.
스위치와 같은 네트워크 프로세서를 통해 ATM 셀들과 같은 고정 길이의 패킷들을 처리하는 것은 가변 길이의 패킷들을 처리하는 것보다 용이하다. 각각의 고정 길이의 패킷의 길이가 알려져 있기 때문에, 스위치를 통한 전파 시간은 예상이 가능하며, 따라서 파이프 라인을 통과시키는 방식과 같이 패킷들을 하나씩 순서대로 스위치를 통해 전달하도록 설정하는 것이 용이한데, 즉 패킷들은 인접한 패킷들 사이에 전혀 갭이 없이 직렬로 단일 데이터 경로를 거쳐 전달된다.
고정 길이의 패킷들과는 대조적으로, 스위치 또는 다른 네트워크 프로세서들을 통해서 가변 길이의 패킷들을 처리하는데 소요되는 시간은 다양하다. 따라서 가변 길이의 패킷들을 파이프 라인 방식으로 처리하는 것은 불가능하다. 또한 가변 길이의 패킷은 이전 패킷에 대한 처리 시간이 미리 알려져 있지 않을 때, 버퍼들로부터의 패킷들의 검색과 데이터 중재 스케줄링과 같은 특정 이벤트의 시간을 적절하게 확정하기 곤란하므로 시스템 타이밍에서의 불확실성들이 생성된다.
가변 길이의 패킷들을 보다 관리하기 쉽도록 처리하기 위해서, 가변 길이의 패킷들을 고정 길이의 블록들로 분할하고, 이들을 스위치 장치(switch fabric) 또는 다른 네트워크 프로세서를 통해서 알려지고 정해진 시간 안에 전달한다. 고정 길이의 블록들은 헤더 부분과 페이로드 부분을 가지하며, 각 패킷에 대한 고정 길이의 블록들의 수는 패킷의 크기와 직접적인 관련이 있다. 고정 길이의 블록들은 네트워크 프로세서 내부에서만 사용되며, 처리중에 순서대로 유지된다. 블록들은 다운스트림 네트워크 프로세서로 전달되기 전에 패킷 형태로 다시 재조합된다.
가변 길이의 데이터 패킷들은 또한 블록들에 오류 제어 기능을 적용하기 위한 목적으로 데이터 블록들로 분할될 수도 있다. 이 방식에 있어서, 데이터 블록들의 연결된 일련의 시퀀스가 오류들에 대해서 보호되는 것뿐만 아니라, 이 시퀀스 블록들 내의 각각의 블록 또한 보호될 수 있게 된다.
(이 발명의 간단한 요약)
본 발명은 네트워크 스위치와 같은 네트워크 프로세서를 통해서 처리하기에 용이하도록 데이터 블록들을 사전에 분할된 패킷(또는 패킷 데이터 유닛, packet data unit: PDU)으로 되돌려 재조합하는 방법 및 장치를 설명하고 있다. 재조합 처리를 시작하기 전에, 각각의 블록에는 큐 식별자(queue identifier)가 할당되는데, 이 식별자는 패킷과 고유하게 연관된 것으로 이로부터 블록들이 분할되고, 재조합될 수 있다. 일단 패킷의 제 1 블록에 큐 식별자가 할당되면, 이 큐 식별자는 이 패킷의 재조합 처리가 완료되기 전까지는 할당에 사용할 수 없게 된다. 패킷 식별자는 다운스트림 네트워크 프로세서들이 패킷을 처리중에 유용한 패킷의 시작 및 패킷의 끝 식별자뿐만 아니라 각각의 패킷에 할당된다. 패킷 재조합 처리는 패킷에 대한 최종 블록임을 표시하는 필드의 끝 식별자가 운반하는 블록이 재조합된 패킷에 부가될 때 끝난다. 본 발명에 따르면, 프로토콜 및 임의의 길이의 패킷들이 그들의 구성 블록들로부터 재조합될 수 있다.
가변 길이의 네트워크 패킷 데이터를 적시에 효율적으로 처리하기 위해서, 특정한 네트워크 프로세서는 데이터 패킷들을 고정 길이의 데이터 블록들로 분할한다. 네트워크 프로세서가 개별적인 블록들에 대한 작업 또는 처리를 완료한 이후에, 블록들은 데이터 경로 내의 다음 네트워크 프로세서로 전송되기 전에 원래의 패킷 형태로 재조합되어야 한다. 예를 들어서, 네트워크 프로세서가 스위치이면, 패킷의 개별적인 데이터 블록들이 필요에 따라 입력 포트로부터 출력 포트로 ㅅ스스위치되고, 스위치에서 벗어나 업스트림 네트워크 프로세서로 전달되기 전에 패킷의 형태로 되돌려 재조합된다. 본 발명의 개시 내용들에 따르면, 패킷들은 블록들이 서로 다른 프로토콜에 따라서 구조화된 패킷들 또는 서로 다른 길이의 패킷들부터 분할된 경우라 할지라도 연속적으로 재조합된다.
패킷이 데이터 블록들로 분할되면, 특정 패킷 수준의 파라미터들이 각각의 블록 내에 포함되어진다. 이들에는 패킷이 시작된 소스 주소(source address)와, 패킷의 제 1 및 최종 블록 표시가 포함된다. 일 실시예에 있어서, 각각의 블록에는 제 1 블록 필드와 최종 블록 필드가 포함된다. 이들 필드들 내에 특정 표시자를 위치시켜서 패킷의 제 1 또는 최종 블록으로서 블록을 지정한다.
본 발명의 개시 내용들에 따르면, 블록 재조합 처리는 도 1에 도시된 바와 같이 재조합기(14)를 뒤따르는 프리프로세서(preprocessor; 12)에 의해 수행된다. 본 발명의 일 응용 예에 있어서, 프리프로세서(12)로 입력되기 전에, 포트 집합기(16)가 다수의 소스들(일 실시예에서는 256 개)로부터의 데이터 패킷들을 조합하고, 패킷 헤더 내의 데이터에 기초하여 패킷 소스를 결정한다. 공지된 바와 같이, 256 소스들로부터의 패킷들은 포트 집합기(16)의 다른 포트 집합기 업스트림 내의 다수의 소스들로부터 추가적으로 집합될 수도 있다. 포트 집합기(16)는 각각의 블록 내에 패킷 소스의 식별정보를 유지하고 또한 블록이 패킷의 제 1 또는 최종 블록인지를 표시하면서 패킷들을 고정된 크기의 데이터 블록들로 분할한다. 서로 다른 소스들로부터의 패킷들이 포트 집합기(16)에 동시에 출현하기 때문에, 패킷들을 블록들로 분할하는 처리는 서로 다른 패킷들로부터 인터리브된(interleaved) 블록들을 형성한다. 그러나 하나의 패킷의 개별적인 블록들은 시퀀스로 유지되고, 이에 따라 패킷이 재조합되고 패킷의 블록들은 순서가 제대로 되어 있게 된다.
블록들은 데이터 링크(8)를 통해서 운반되고 오류 검사가 수행되는 프레이머(framer; 20)로 입력된다. 일 실시예에 있어서, 프레이머는 블록들을 더 작은 블록들로 분할하며, 여전히 패킷 식별정보와 제 1 및 최종 블록 정보를 유지시킨다. 데이터 블록들은 데이터 버스(22)를 통해서 운반되며, 패킷 소스 식별정보와 제 1 및 최종 블록 정보를 포함하는 특정한 포맷으로 되어 있다.
프리프로세서(12) 내에서, 각각의 데이터 블록에는 블록 내의 패킷 소스 정보에 기초한 큐 식별자(queue identifier: QID)가 할당된다. 따라서 패킷으로부터 분할된 모든 블록들은 동일한 QID를 갖게 된다. 또한 하나의 소스로부터의 모든 블록들은 동일한 소스의 다른 블록들이 재조합되기 전에 패킷으로 다시 재조합되어야 한다. 동일한 QID를 갖는 모든 블록들은 후술하는 바와 같이 재조합기(14)에서 패킷으로 재조합된다.
프리프로세서(12)는 또한 최종 블록 필드를 판독하고, 여기에 응답하여 재조합기(14)에서의 사용을 위해 패킷 재조합 처리를 종료하도록 하기 위해서 패킷의 최종 블록에 프레임의 끝(end-of-frame) 표시자를 할당한다. 표시자는 블록 내에 포함된 단일 비트이다. 유리한 실시예에 있어서, 영(0)의 값은 블록이 패킷의 끝이 아님을 표시하고, 일(1)의 값은 패킷의 최종 블록임을 의미한다.
패킷들이 재조합기(14)에서 재조합됨에 따라, 각각의 패킷에 고유한 패킷 식별자(PID)가 할당되며, 패킷의 시작과 패킷의 끝 식별자들이 첨부되어 패킷 처리시 다운스트림 네트워크 프로세서를 보조하게 된다. 재조합기(14)에는 QID 값에 따라 인덱스되어 있고, PID 필드와 1 비트의 QID 유효 필드를 내용들을 갖는 QID-PID 테이블이 포함되어 있다. 따라서 이 테이블은 PID 값을 각각의 QID 값에 연관시키는데 사용할 수 있다. 재조합기(14)는 블록 QID 값을 판독하고, 이 값을 테이블 내의 인덱스로 이용해서 연관된 PID 값을 테이블로부터 선택한다. QID 유효 필드는 QID 값이 사용중인지의 여부, 즉, 프리프로세서(12)가 재조합이 진행중인 패킷에 QID를 할당했는지의 여부를 표시한다. 상기 테이블은 또한 이하에서 QID 대 PID 검색 맵(lookup map)으로도 지칭되는데, 그 이유는 패킷에 대한 QID 값에 기초하여 그 패킷에 대한 PID 값을 검색하는데 사용되기 때문이다.
재조합기(14)의 동작을 도 2의 테이블을 사용하여 설명한다. 블록이 수신되면, 재조합기(14)는 블록의 프레임의 끝 필드를 검사하여 이 블록이 패킷의 최종 블록인지 아닌지를 결정한다. 또한 QID-PID 테이블에 따라서 PID 값을 결정하는데 사용하기 위해서 블록의 QID 값을 프리프로세서(12)로부터 획득한다. 조합기는 이후에 QID 테이블의 QID 유효 필드 내에 있는 값을 판독한다. 도 2의 제 2 열을 참조하라. 테이블이 QID가 할당되지 않았다고 표시하는 경우에, (본 예에서는 영(0)의 값) 재조합기(14)는 현재의 블록이 신규 패킷의 제 1 블록인 것으로 결론짓는다. 이에 응답하여, 재조합기(14)는 QID 유효 필드 내의 값을 토글(toggle)시켜서 이 QID가 이제 사용중이라고 표시한다. QID 유효 메모리 필드에 기록되는 값은 도 2의 마지막 열에 표시되어 있다. 따라서 QID 유효 필드 내의 일(1)의 값은 이 QID 값이 사용중임을 나타내게 된다.
예시적인 수신된 블록의 파라미터가 도시되어 있는 도 2의 테이블의 제 1 행을 참조하여, 프레임 표시자의 끝은 영(0)임을 주의하고, 이는 현재의 블록이 패킷의 최종 블록이 아님을 나타내는 것이다. QID 유효 필드는 또한 영(0)이며, 이는 이 QID 값을 할당해야할 제 1 블록임을 표시하는 것이다. 이 두 가지 인자들로부터, 재조합기(14)는 이 블록이 신규 패킷의 제 1 블록이고, 이 패킷에 대한 재조합 처리가 이제 시작됐다고 결정한다. 이 패킷이 신규 패킷이기 때문에 상술한 QID-PID 테이블에 따라 제 4 열에 표시한 바와 같이 재조합기(14)는 이 패킷에 신규 PID 값을 할당한다. 상술한 바와 같이, 조합기는 적절한 패킷 필드를 일(1)로 설정하여 각각의 완료된 패킷에 패킷의 시작 및 패킷의 끝 식별자를 할당한다. 따라서 도 2의 제 5 열에 도시한 바와 같이, 이 패킷에 대해서 재조합기(14)는 패킷의 시작 필드를 일(1)로 설정한다. 패킷의 끝 필드는 영(0)으로 유지된다. 최종적으로, 재조합기(14)는 QID 테이블에 일(1) 비트 유효 필드를 토글한다.
테이블의 제 2 행은 재조합기(14)에서 수신된 데이터의 예시적인 제 2 블록과 관련된 파라미터들을 나타내고 있다. 이 블록은 패킷의 최종 블록이 아니며, 따라서 데이터 블록 내의 최종 프레임 필드는 영(0)이다. 이 블록에 할당한 QID에 대한 QID 필드는 일(1)의 값(제 2 열 참조)을 포함하고 있으며, 이 값은 QID가 재조합기(14)에서 마주치는 최초에 이 값으로 설정되었다. 따라서 제 3 열에서 나타낸 바와 같이, 이 블록은 패킷 내부로부터 왔으며, 재조합 처리는 지금 패킷의 시작 및 끝 사이에 위치한 블록들을 처리한다. PID가 이미 패킷에 할당되어 있기 때문에, 할당된 QID 값을 맵에 대한 인덱스로 사용하여 QID 대 PID 검색 맵으로부터 PID 값을 획득한다. 현재의 블록이 패킷의 시작도 아니고 끝도 아니기 때문에, 예컨데 패킷의 시작 및 패킷의 끝 필드는 영(0)이다. QID값이 이 패킷으로부터 후속 블록들에 대해 계속 사용될 것이므로 QID 값에 대한 할당 필드는 일(1)이 된다. 이 패킷에 대해서 이어서 마주치는 블록들은 패킷의 최종 블록과 마주치기 전까지는 테이블의 제 2 행에서 설정된 바와 같은 동일한 파라미터들을 갖게 된다.
패킷의 최종 블록은 테이블의 제 3 라인에 따라서 조합된다. 이 블록은 일(1)로 설정된 프레임의 끝 필드를 갖는데, 이는 테이블 형태의 제 1 행에서 표시된 바와 같다. QID 유효 필드값은 이 패킷에 대한 이전 블록들(제 1 블록은 제외)의 각각에 대해서와 마찬가지로 일(1)로 설정된다. 이전 블록들에 대해서, QID 값을 상기 맵에 대한 인덱스로 사용하여 QID 대 PID 검색 맵으로부터 PID 값을 획득한다. 패킷의 시작 비트는 영(0)이지만, 패킷의 끝 비트는 일(1)로 설정되며, 이는 패킷의 최종 블록임을 의미하게 된다. 재조합기(14)가 이 블록을 처리하는 경우에, QID 대 PID 검색 맵의 유효 필드 내의 값을 영(0)으로 재설정하며, 이는 이 QID가 패킷을 포함하고 있는 다른 일련의 블록들에 대한 할당에 이용할 수 있음을 나타내게 된다.
도 2 테이블의 제 4 라인에는 짧은 PDU(프로토콜 데이터 유닛, protocol data unit) 또는 짧은 패킷으로 지칭되는, 한 블록의 길이 보다 짧은 패킷에 대한 파라미터들이 기재되어 있다. 이 패킷이 블록 보다 짧기 때문에, 그 프레임의 끝 비트가 설정되는데, 이는 이 블록이 패킷의 끝을 구성하기 때문이다. 할당된 QID 값이 다른 블록들에 사전에 할당되지 않았기 때문에, 이는 패킷의 제 1 블록으로 되며, PID 대 QID 테이블의 유효 필드는 영(0)으로 설정된다. 블록은 또한 신규한 PID 값을 필요로 하는데, 그 이유는 어떤 것도 패킷에 사전에 할당되어 있지 않기 때문이다. 블록은 패킷의 시작 및 끝 양자 모두이며, 따라서 블록 내의 패킷의 시작 및 패킷의 끝 필드들의 양자가 설정된다. 재조합기(14)는 또한 QID 유효 값을 영(0)의 값으로 남겨 두는데, 이는 이 QID 값이 이 패킷에서 더 이상 사용되지 않기 때문이다.
도 3a에 알파벳 문자로 지정된 다수의 인터리브된 블록들을 도시하였다. 프리프로세서(12)가 할당한 QID 값들은 블록의 하단에 표시되어 있으며, 프레임의 끝 표시자도 가능하면 마찬가지로 도시하였다. 재조합기(14)와 최초로 마주치는 영(0)의 유효 필드값을 갖는 QID 값은 이 블록이 신규 패킷의 제 1 블록이라는 점을 상기하자. 블록(A)은 이렇게 지정되었음을 주의하자. 블록들(E, C, I 및 J)은 그들의 각각의 패킷의 시작과 끝의 중간에 위치해 있다. 블록(B)은 QID = 5에 대한 프레임의 끝 블록이며, 블록(G)은 QID = 1에 대한 프레임의 끝 블록이다.
도 3b에서, 블록들은 QID 값들에 의해 결정되는 바에 따라서 이들의 각각의 패킷들로 재조합된다. 각각의 QID는 도 3b에 표시된 바와 같이, 다운스트림 네트워크 처리 요소들이 사용하기 위해 할당된 PID도 갖고 있다. 처리된 블록들의 이 세그먼트 내에는, QID 값이 4인 것은 아무것도 없다. 수직으로 지향된 타원은 패킷 내의 블록들에 선행하거나 후속하는 추가적인 블록들을 나타낸다.
도 1로 되돌아가서, 재조합기(14)에서 재조합된 패킷들은 데이터 버퍼(26)로 입력되어 저장된다. 프로세서(28)는 각각의 패킷을 분석하며, 데이터 버퍼(26)로부터 다운스트림 네트워크 프로세서들로의 데이터 패킷들의 전송을 제어한다.
본 발명은 일차적으로 가변 길이의 패킷들로부터 유도되고 가변 길이의 패킷들로 재조합되는 동일한 길이의 데이터 블록들에 관한 것이다. 그러나 본 발명은 또한 고정 길이의 ATM 데이터 셀들에도 적용할 수 있다. 특정 응용에 있어서, 몇 개의 ATM 셀들을 단일 유닛, 또한 패킷 데이터 유닛 또는 PDU로도 지칭되는 유닛으로 조합하는 게 바람직할 수도 있다. 본 발명은 각각의 ATM 셀을 데이터 블록으로 처리하여 그 성능을 제공하도록 사용될 수도 있다. PDU 내의 제 1 ATM 셀에 대해서 헤더(5 바이트들)가 유지되며, 따라서 블록은 헤더에다 셀의 모든 정보 세그먼트, 즉 48 바이트들을 추가해서 포함하고 있다. 각각의 후속 블록은 단지 48 데이터 바이트들만 포함한다. 따라서 블록들이 프리프로세서(12) 및 재조합기(14)에서 PDU 내로 처리되고 조합되는 경우에, 각각의 PDU는 다수의 48 바이트 블록들이 뒤따르는 다섯 바이트의 헤더를 포함한다. 네트워크의 대역폭은 각 셀과 함께 다섯 바이트의 헤더를 전송하지 않고 몇 개의 셀들을 연결함으로써 보호된다. 이를 달성하기 위해서, 프리프로세서(12) 내에서 각각의 ATM 셀에는 동일한 QID 값이 할당되며, 동일한 QID 값을 가진 모든 셀들은 단일 PDU로 조합된다.
도 4는 재조합기(14)의 주요 성분들의 블록 다이어그램이다. 블록이 재조합기(14)로 입력되면, 프리프로세서(12)가 재조합기(14)로 QID 값을 제공한다. 이 입력은, 도 4의 참조 문자(50)로 나타낸 바와 같이, QID 유효 필드들(54) 및 PID 필드들(55)을 포함하여 QID 대 PID 검색 맵(52)에 판독 주소로 작용한다. 판독 주소는 QID 대 PID 맵(52)으로의 인덱스이며, 인덱스화된 QID 유효 필드(54)가 판독되고, 유효 필드 내의 값은 링크(58)를 거쳐서 제어 상태 머신(56)에 입력된다. 상술한 바와 같이, QID 유효 필드값은 신규 PID가 재조합될 패킷에 할당되었는지 또는 PID가 이미 할당되었는지를 결정하며, 따라서 이 값은 QID 대 PID 검색 맵(52)으로부터 결정된다.
제어 상태 머신(56)으로부터의 출력 링크(60)는 제어 신호를 운반하고 있으며, 이 신호는 머신에 입력된 QID 유효 필드값에 의해서 결정된다. 제어 신호는 QID 유효 필드의 값이 신규 PID 할당이 필요하다고 표시하는 경우에 제 1 값을 가지고, QID 유효 필드가 QID 대 PID 검색 맵(52)으로부터 PID를 입수 가능함을 나타내는 경우에는 제 2 값을 가진다. 출력 링크(60)는 두 개의 데이터 입력 터미널들(64, 66)을 갖는 멀티플렉서(62)의 제어 입력으로 작용한다. 입력 터미널(64)은 입력된 QID 값을 인덱스로 사용하여 PID 필드(55)로부터 판독한 PID 값에 응답한다. 입력 터미널(66)은 도시한 바와 같이 외부 소스로부터 제공된 신규 PID 값들에 응답한다. 따라서 멀티플렉서(62)는 출력 링크(60) 상의 제어 신호에 의해서 결정되는 출력값을 제공한다. QID 할당 필드(54)가 신규 PID 값이 필요하다고 표시하는 경우에, 제어 신호는 입력 터미널(66)에 존재하는 신규 PID 값을 멀티플렉서(62)가 출력하도록 한다. QID 유효 필드값이 블록에 대한 PID 값이 이미 결정되었다고 표시하는 경우에, 멀티플렉서 제어 신호는 입력 터미널(66)에 나타나 있는 바와 같이 멀티플렉서 출력이 PID 필드(55)로부터 PID 값을 취하도록 한다.
신규 PID값이 블록에 적용될 때마다, 동일한 QID에 연관된 후속 블록들이 사용할 수 있도록 신규 PID값이 QID 대 PID 검색 맵(52)에 기록되어야 한다. 이 신규 PID 값들은 링크(70)를 통해서 QID 대 PID 검색 맵(52)에 입력된다. 신규 PID 값이 활성화되는 경우에, 제어 상태 머신(56)에 의해서 멀티플렉서(74)의 제어 터미널(72)로 제어 신호가 제공되며, 따라서 멀티플렉서(74)의 출력은 멀티플렉서 입력 라인(50) 상의 QID 값을 취하게 된다. 멀티플렉서의 출력은 QID 대 PID 검색 맵(52)에 신규 PID 값을 쓰기 위한 쓰기 주소 인덱스로 기능하며, 따라서 신규 PID 값은 현재 블록의 QID 값에 연관된다.
일 실시예에 있어서, 재조합기(14)는 대략 4000 개의 소스들을 수용할 수 있도록 크기가 조정된다. 따라서 4000 개의 패킷들이 동시에 재조합되고, QID 대 PID 검색 맵(52)은 4000 개의 메모리 위치들(즉 4000 개의 QID 값들 및 4000 개의 PID 값들)을 포함하게 되며, 각각의 길이는 13 비트들, 즉 PID 필드(55) 내에 저장되는 PID 값에 대한 12 비트들(212 = 4096), 및 QID 유효 필드(54)에 대한 일(1) 비트이다.
프리프로세서(12)와 재조합기(14)의 업스트림 네트워크 오류는 종종 개별적인 블록들을 분실하거나 패킷의 나머지를 분실하게 할 수도 있다. 이는 시스템으로부터 파손된 패킷을 비우는 것을 요구하는데, 이는 비워진 패킷의 PID 값을 해제한다. 이와 같은 패킷의 비움을 달성하기 위해서, PID 값들을 QID로 되돌려 맵핑(mapping)하도록 도 4의 논리표에 추가적인 테이블을 추가한다. 따라서 다운스트림 네트워크 프로세서가 패킷과 관련한 문제, 즉 블록들의 분실 또는 패킷 블록들의 파손으로 인해 발생되는 불완전한 패킷 때문에 비움 요청(flush request)을 발생시킨 경우, PID에 연관된 QID는 무효화되며, PID는 재사용을 위해서 해제된다.
비움 요청은 재조합기(14)로 전달되며, 여기에는 다운스트림 프로세서로부터 삭제되어야 하는 패킷의 PID가 포함되어 있다. 이 비움 요청에 응답하여, 신호 경로 내의 다음 네트워크 프로세서로 전송되기를 대기하면서 저장되어 있던 분실된 패킷 중에 남아 있는 어떠한 패킷들도 버퍼(26)로부터 삭제된다. 이 삭제 절차를 완성하기 위해서, 비워진 패킷의 QID 값을 정해야만 하는데, 이렇게 해서 그 QID 값을 가진 모든 블록들을 데이터 버퍼 내에서 식별할 수 있고 삭제할 수 있다. 되돌려진 PID 값을 사용하여 PID 대 QID 검색 맵을 조회하여 PID 값을 맵 내의 인덱스로 사용하여 대응하는 QID 값을 결정한다. 이후 QID 값이 결정되고, 이 QID에 연관된 임의의 블록들은 버퍼(26)에서 삭제된다. QID 값 또한 무효화 된다.
입력 포트/패킷 소스 정보에 기초하여 결정될 수 있는, 프리프로세서(12) 또는 재조합기(14)에서 비워진 패킷 중에서 나중에 도달한 블록들은 할당된 QID에 기초하여 폐기된다. PID 대 QID 맵은 비워진 블록들의 QID를 전에 알고 있었다는 점을 상기하도록 하자. 패킷의 재조합과 신규 QID의 할당은 패킷의 시작 또는 제 1 블록 식별자가 존재하는 경우에만 시작된다. 이들 나중에 도달하는 블록들은 제 1 블록에 포함되지 않기 때문에, 그들이 재조합 처리를 시작하게 된다.
도 4에 따르면, 업스트립 네트워크 프로세서로부터의 비움 요청은 링크(80) 상에서 운반되는 비움 신호 및 링크(82) 상에서 운반되는 비워지는 패킷의 PID 값의 형태로 재조합기(14)에 입력된다. PID 대 QID 검색 맵(84)에는 일치하는 PID 값에 따라서 인덱스화된 할당된 모든 QID 값들이 포함되어 있다. PID 대 QID 검색 맵(84)에 이미 적재된 값들은 동시에 QID 대 PID 검색 맵(52)에도 존재한다. 따라서 링크(82) 상의 업스트림 프로세서로부터의 PID 값은 비워질 블록들의 QID 값을 결정하기 위한 PID 대 QID 검색 맵(84)에 대한 인덱스이다. 이 QID 값은 입력 터미널(86)에서 멀티플렉서(74)에 입력된다. 멀티플렉서(74)에 대한 제어 신호는, 제어 상태 머신(56)에서 제공되는 바와 같이, 입력 터미널(86) 상의 신호가 출력으로 전환되도록 하며, 따라서 QID 대 PID 검색 맵(52) 내의 쓰기 주소로 기능하여 QID 할당 필드(54) 내의 비트를 오프(off)한다. 나중에라도, 비워진 PID와 관련된 추가적인 블록들이 재조합기(14)로 입력되면, 신규 QID 및 신규 PID가 할당되고, 블록들은 프레임의 끝 표시자와 마주치기 전까지 재조합된다. 그러나 업스트립 프로세서들은 이 패킷이 완전하지 않음을 알게 되고, 불완전한 패킷을 폐기한다.
도 5는 본 발명의 개시 내용들에 따른 재조합 단계들을 도시하고 있는 흐름도이다. 단계(100)에서, 다음 데이터 블록은 인터리브된 다수의 데이터 블록들 중에서 판독된다. 결정 단계(102)에서, 데이터 블록을 검사하여 이 블록이 완전한 패킷을 나타내는지를 결정, 즉 패킷의 길이가 블록 길이와 동일한지 아니면 더 짧은지를 결정한다. 결정 단계(102)로부터의 답이 부정적이라면, 이후에 처리 과정은 결정 단계(104)로 이동하여 현재의 데이터 블록이 신규 패킷에 대한 제 1 데이터 블록인지 아닌지를 결정하게 된다. 상술한 바와 같이, 이는 먼저 데이터 블록에 할당된 QID를 결정하고 이후에 이 QID의 유효 필드를 검사하여 완수된다. 유효 필드값은 상기 데이터 블록이 패킷의 제 1 데이터 블록인지 여부를 나타낸다. 유리한 실시예에 있어서, QID 유효 필드에서의 영(0)의 값은 제 1 블록 표시자이다.
블록이 패킷의 제 1 블록이면, 단계(106)에서 신규 PID 값이 할당된다. 이후에 단계(108)에서, 블록의 QID에 대한 할당 필드를 이진값 일(1)로 토글하여 이 QID가 사용중임을 표시한다. 이것이 신규 패킷의 제 1 블록이기 때문에, 단계(110)에서 패킷의 시작 필드는 일(1)로 설정된다.
결정 단계(104)로 되돌아가 보면, 블록이 패킷의 제 1 블록이 아닌 경우에, 처리 절차는 단계(118)로 진행하고, 여기에서 QID 대 PID 검색 맵을 조회하여 현재의 블록이 속해 있는 패킷의 PID를 알아낸다. 단계(120)에서, 모든 데이터 블록(제 1 및 후속 데이터 블록 모두)은 할당된 데이터 버퍼(16) 내의 할당된 PID 값으로 결정된 그들의 메모리 위치들에 기록된다.
각각의 단계(120)를 지나서, 처리 절차는 결정 단계(122)로 진행하여 현재의 블록이 필드의 끝 표시자를 포함하고 있는지를 검사한다. 부정적인 결과는 이 처리 절차를 단계(100)로 되돌리고, 여기에서 다음 블록을 판독하여 처리한다. 현재의 블록에 필드의 끝 표시자가 포함되어 있는 경우에는, 처리 절차는 단계(124)로 계속 진행하여 패킷의 끝 표시자를 설정한다. 이 표시자는 다운스트림의 성분들이 패킷의 끝을 식별하는데 유용하게 사용된다. QID 할당 필드를 이제 영(0)으로 토글할 수 있게 되어, 단계(126)에서와 같이, 다른 데이터 블록에 할당되도록 QID를 해제한다. 단계(128)는 패킷의 재조합이 완료되었고 다운스트림 성분으로 전송될 준비가 되었음을 나타낸다.
결정 단계(102)로 되돌아가서, 결과가 긍정적이면, 현재의 패킷은 블록 보다 짧은 것이고, 따라서 패킷의 끝 표시자가 포함되어져야 한다. 단계(130)에서, 신규 PID가 할당되고, 패킷의 시작 및 패킷의 끝 표시자들이 설정된다. 이후 처리 절차는 단계(128)로 진행하고, 이 패킷의 재조합이 완료된다. 또한 처리 절차는 단계(128) 이후에 데이터 블록 판독 단계(100)로 되돌아간다.
상술한 본 발명의 유리한 실시예에 있어서, 소정의 작용에 대한 표시자로서 기능하는 데이터 필드들의 이진값들에 대한 참조들을 몇 가지 수행했다. 본 기술 분야에서 통상의 지식을 가진 자들은, 이진값 일(1) 또는 이진값 영(0)을 사용하여 소정의 작용을 할 수 있음을 알 것이다. 따라서 이진값 일(1)이 값을 표시하는 것으로 식별되는 이들 경우에, 해석 프로세서 또는 소프트웨어 요소에 대해서 상응하는 변경들이 행해지면, 다른 실시예에서는 이진값 영(0)으로 대체할 수도 있다.
따라서 본 발명에 따르면 네트워크 프로세서 내의 데이터 패킷들을 처리하여, 초기에 분할된 데이터 패킷의 형태로 데이터 블록들을 재조합하는 방법이 제공된다.

Claims (25)

  1. 하나 이상의 데이터 블록들로 분할된 복수의 데이터 패킷들에 대해서, 상기 데이터 블록들을 그들의 각각의 데이터 패킷들로 재조합하기 위한 방법에 있어서,
    데이터 블록을 수신하는 단계와,
    동일한 패킷으로부터의 각각의 데이터 블록에 동일한 큐 식별자(queue identifier)를 할당하는 단계와,
    상기 동일한 큐 식별자를 가지는 모든 데이터 블록들을 서로 그룹화하는 단계와,
    각각의 데이터 블록에 패킷 식별자를 할당하는 단계를 포함하고,
    상기 동일한 패킷으로 재조합되는 모든 데이터 블록들에는 동일한 패킷 식별자가 할당되는, 재조합 방법.
  2. 제 1 항에 있어서,
    조합된 패킷은 상기 패킷을 포함하는 상기 데이터 블록들의 상기 패킷 식별자를 포함하는, 재조합 방법.
  3. 제 1 항에 있어서,
    상기 큐 식별자를 할당하기 전에, 하나의 데이터 패킷의 상기 데이터 블록들은 다른 데이터 패킷들의 데이터 블록들과 인터리브되는(interleaved), 재조합 방법.
  4. 제 1 항에 있어서,
    상기 데이터 블록들을 재조합하는 단계들은 제 1 네트워크 프로세서에서 수행되며, 상기 재조합된 데이터 패킷은 제 2 네트워크 프로세서에 입력되며, 상기 패킷 식별자는 상기 재조합된 데이터 패킷과 함께 상기 제 2 네트워크 프로세서에 제공되는, 재조합 방법.
  5. 제 1 항에 있어서,
    상기 데이터 블록들을 데이터 패킷들로 재조합하는 단계들은 추가적인 데이터 처리 단계들이 뒤따르며, 상기 패킷 식별자는 상기 추가적인 데이터 처리 단계들 동안 상기 데이터 패킷에 연관되는, 재조합 방법.
  6. 제 1 항에 있어서,
    상기 패킷이 재조합된 이후에 상기 패킷에 대한 상기 큐 식별자의 할당을 취소하는 단계를 더 포함하는, 재조합 방법.
  7. 제 1 항에 있어서,
    큐 식별자 유효 필드는 각각의 큐 식별자에 연관되며, 패킷의 제 1 블록에 큐 식별자가 할당되는 경우에, 상기 방법은 상기 할당된 큐 식별자에 대한 상기 유효 필드값을 제 1 값에 설정하는 단계를 더 포함하는, 재조합 방법.
  8. 제 7 항에 있어서,
    상기 패킷의 최종 블록을 처리한 이후에 상기 큐 식별자에 대한 상기 유효 필드를 제 2 값에 설정하는 단계를 더 포함하는, 재조합 방법.
  9. 제 1 항에 있어서,
    상기 수신된 데이터 블록이 데이터 패킷의 제 1 데이터 블록인 경우에는, 상기 데이터 블록에 신규 패킷 식별자를 할당하는 단계를 더 포함하고, 상기 수신된 데이터 블록이 패킷의 제 1 데이터 블록이 아닌 경우에는, 검색 테이블(lookup table)을 조회함으로써 상기 데이터 블록에 할당할 패킷 식별자를 결정하는 단계를 더 포함하고, 상기 할당된 큐 식별자는 상기 검색 테이블 내로의 인덱스로 기능하며, 상기 검색 테이블 내의 값들은 패킷 식별자들을 포함하는, 재조합 방법.
  10. 제 1 항에 있어서,
    각각의 패킷 식별자는 데이터 저장 버퍼에 연관되며, 상기 데이터 블록들을 그룹화하는 단계는 상기 패킷 재조합 처리 동안 상기 할당된 패킷 식별자에 연관되는 저장 버퍼 내에 상기 데이터 블록들을 저장하는 단계를 포함하는, 재조합 방법.
  11. 제 1 항에 있어서,
    상기 데이터 블록들 중 일부는 식별 표시자들을 포함하는, 재조합 방법.
  12. 제 11 항에 있어서,
    상기 식별 표시자들은 데이터 패킷의 최종 데이터 블록을 식별하는 파일의 끝 표시자를 포함하며, 상기 데이터 패킷의 재조합 처리는 상기 최종 데이터 블록이 수신되었을 때 종료되는, 재조합 방법.
  13. 제 12 항에 있어서,
    상기 데이터 패킷의 재조합은 상기 데이터 패킷의 상기 최종 데이터 블록으로서 식별되는 상기 데이터 블록이 상기 데이터 패킷의 다른 데이터 블록들과 함께 그룹화될 때 완료되는, 재조합 방법.
  14. 제 11 항에 있어서,
    데이터 블록 내의 식별 표시자에 응답하여 각각의 데이터 패킷과 함께 패킷의 시작 식별자를 포함하는 단계를 더 포함하며, 상기 식별 표시자는 상기 데이터 블록이 데이터 패킷의 제 1 데이터 블록인 것을 표시하는, 재조합 방법.
  15. 제 11 항에 있어서,
    데이터 블록 내의 식별 표시자에 응답하여 각각의 데이터 패킷과 함께 패킷의 끝 식별자를 포함하는 단계를 더 포함하며, 상기 식별 표시자는 상기 데이터 블록이 데이터 패킷의 최종 데이터 블록인 것을 표시하는, 재조합 방법.
  16. 제 11 항에 있어서,
    상기 식별 표시자들은 데이터 패킷 내의 최종 데이터 블록을 식별하는 파일의 끝 표시자를 포함하며, 상기 큐 식별자를 할당하는 단계는 상기 파일의 끝 표시자와 만나기 전까지 단일 패킷으로부터의 각각의 블록에 상기 동일한 큐 식별자를 할당하는 단계를 더 포함하는, 재조합 방법.
  17. 제 1 항에 있어서,
    데이터 패킷에 대한 비움 요청(flush request)을 수신하고, 이에 응답하여, 상기 동일한 큐 식별자를 갖는 모든 데이터 블록들을 서로 그룹화하는 단계에 따라 그룹화된 모든 데이터 블록들을 삭제하는 단계를 더 포함하는, 재조합 방법.
  18. 제 17 항에 있어서,
    상기 비움 요청은 비워질 상기 데이터 패킷의 상기 패킷 식별자를 포함하며,
    상기 수신된 패킷 식별자에 연관된 상기 큐 식별자를 결정하도록 검색 테이블로의 인덱스로서 상기 패킷 식별자를 이용하여 검색 테이블을 조회하고, 상기 결정된 큐 식별자에 연관되는 상기 데이터 블록들을 비우는 단계를 더 포함하는, 재조합 방법.
  19. 제 1 항에 있어서,
    데이터 패킷이 데이터 블록보다 짧은 경우에, 그리고 상기 데이터 블록이 필드의 끝을 식별하는 표시자를 포함하는 경우에, 패킷 식별자를 상기 데이터 블록에 할당하는 단계와, 패킷의 시작 및 패킷의 끝 식별자를 상기 데이터 패킷에 할당하는 단계를 더 포함하는, 재조합 방법.
  20. 분할되었던 데이터 블록들을 데이터 패킷들로 다시 재조합하기 위한 장치에 있어서,
    동일한 패킷으로부터의 각각의 데이터 블록에 동일한 큐 식별자를 할당하기 위한 프리프로세서와,
    상기 동일한 큐 식별자를 갖는 모든 데이터 블록들을 서로 그룹화하고, 각각의 데이터 블록에 패킷 식별자를 할당하기 위한 재조합기로서, 상기 동일한 패킷으로 재조합되는 모든 데이터 블록들에는 동일한 패킷 식별자가 할당되는, 상기 재조합기와,
    상기 할당된 패킷 식별자에 따라 상기 데이터 블록들을 저장하기 위한 데이터 버퍼를 포함하는, 재조합 장치.
  21. 제 20 항에 있어서,
    상기 데이터 블록들에 할당된 상기 큐 식별자에 기초하여 상기 패킷 식별자를 결정하기 위한 검색 맵(lookup map)을 포함하는, 재조합 장치.
  22. 제 21 항에 있어서,
    상기 검색 맵은 상기 큐 식별자가 데이터 블록들에의 할당에 대해 유효한지 여부를 표시하는, 각각의 큐 식별자에 관련된 필드를 더 포함하는, 재조합 장치.
  23. 제 22 항에 있어서,
    상기 검색 맵은 큐 식별자들 및 연관된 패킷 식별자를 포함하는 테이블을 포함하며, 상기 큐 식별자는 상기 패킷 식별자를 결정하기 위한 상기 테이블 내로의 인덱스로서 기능하는, 재조합 장치.
  24. 제 23 항에 있어서,
    상기 검색 맵은 패킷 식별자들이 패킷들에 할당되고 상기 테이블로부터 삭제됨에 따라 신규 패킷 식별자들로 채워지는, 재조합 장치.
  25. 제 20 항에 있어서,
    데이터 블록에 할당된 패킷 식별자에 기초하여 상기 큐 식별자를 결정하기 위한 검색 맵을 더 포함하며, 상기 데이터 버퍼로부터의 데이터 패킷 식별자에 연관된 데이터 블록들을 비워내기 위한 비움 요청에 응답하여, 상기 패킷 식별자는 비워질 상기 데이터 블록들의 상기 큐 식별자를 결정하도록 테이블 내의 인덱스로서 기능하는, 재조합 장치.
KR1020020082078A 2001-12-21 2002-12-21 네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치 KR100920651B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/037,082 2001-12-21
US10/037,082 US6804692B2 (en) 2001-12-21 2001-12-21 Method and apparatus for reassembly of data blocks within a network processor

Publications (2)

Publication Number Publication Date
KR20030053452A KR20030053452A (ko) 2003-06-28
KR100920651B1 true KR100920651B1 (ko) 2009-10-09

Family

ID=21892351

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020082078A KR100920651B1 (ko) 2001-12-21 2002-12-21 네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치

Country Status (5)

Country Link
US (1) US6804692B2 (ko)
JP (1) JP2003229907A (ko)
KR (1) KR100920651B1 (ko)
GB (1) GB2387688B (ko)
TW (1) TWI286425B (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030229372A1 (en) * 1994-01-26 2003-12-11 Kyphon Inc. Inflatable device for use in surgical protocols relating to treatment of fractured or diseased bone
US20060100635A1 (en) * 1994-01-26 2006-05-11 Kyphon, Inc. Inflatable device for use in surgical protocol relating to fixation of bone
DE69534156T2 (de) * 1994-01-26 2005-09-29 Kyphon Inc., Sunnyvale Verbesserte aufblasbare Einrichtung für eine Verwendung in chirurgischen Protokollen in Bezug auf die Fixierung von Knochen
ES2262642T3 (es) * 2000-04-05 2006-12-01 Kyphon Inc. Dispositivo para el tratamiento de huesos fracturados y/o enfermos.
WO2003007635A1 (en) * 2001-07-11 2003-01-23 Nokia Corporation Method for transmitting service data, network element and communications system
US7843922B1 (en) 2002-12-18 2010-11-30 Cypress Semiconductor Corporation Method and apparatus for separation of control and data packets
US7493392B1 (en) * 2002-12-20 2009-02-17 Cypress Semiconductor Corporation Method and apparatus for assembly of virtually concatenated data
US7420975B1 (en) 2002-12-20 2008-09-02 Cypress Semiconductor Corporation Method and apparatus for a high-speed frame tagger
US20040252721A1 (en) * 2003-06-16 2004-12-16 International Business Machines Corporation Bundled internet protocol packets
US7570654B2 (en) * 2003-12-22 2009-08-04 Intel Corporation Switching device utilizing requests indicating cumulative amount of data
US7623524B2 (en) * 2003-12-22 2009-11-24 Intel Corporation Scheduling system utilizing pointer perturbation mechanism to improve efficiency
US20050207436A1 (en) * 2004-03-18 2005-09-22 Anujan Varma Switching device based on aggregation of packets
GB2412815B (en) * 2004-08-18 2006-03-22 Wecomm Ltd Transmitting data over a network
JP2006295567A (ja) * 2005-04-11 2006-10-26 Toshiba Corp パケットストリーム受信装置
US20060268913A1 (en) * 2005-05-27 2006-11-30 Utstarcom, Inc. Streaming buffer system for variable sized data packets
US20080159145A1 (en) * 2006-12-29 2008-07-03 Raman Muthukrishnan Weighted bandwidth switching device
KR101114229B1 (ko) * 2009-07-14 2012-04-12 충남대학교산학협력단 Http 패킷에서 한글 또는 일본어 웹 컨텐츠 분석방법
US8723827B2 (en) 2009-07-28 2014-05-13 Cypress Semiconductor Corporation Predictive touch surface scanning
US9065761B2 (en) * 2011-07-25 2015-06-23 Intel Corporation Packet reassembly processing
US9246846B2 (en) * 2011-09-02 2016-01-26 Mediatek Co. Network processor
US9628397B2 (en) * 2012-04-16 2017-04-18 Mediatek Inc. Communication device and related packet processing method
US9781418B1 (en) * 2012-06-12 2017-10-03 Google Inc. Adaptive deadzone and rate-distortion skip in video processing
US9179155B1 (en) 2012-06-14 2015-11-03 Google Inc. Skipped macroblock video encoding enhancements
CN102819495B (zh) * 2012-08-10 2015-01-07 东方网力科技股份有限公司 数据存储方法及装置
US10389773B2 (en) * 2015-10-20 2019-08-20 Intel Corporation Technologies for end of frame detection in streaming content
US20180054374A1 (en) * 2016-08-19 2018-02-22 Andes Technology Corporation Trace information encoding apparatus, encoding method thereof, and readable computer medium
US11184278B2 (en) * 2019-12-30 2021-11-23 Avago Technologies International Sales Pte. Limited Hyperscalar packet processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06132974A (ja) * 1992-10-20 1994-05-13 Toshiba Corp パケット・ディスアセンブル用バッファ
JP2001326683A (ja) 2000-05-17 2001-11-22 Nec Corp パケット交換機、パケット交換方法
EP1170975A1 (en) 2000-07-05 2002-01-09 Roke Manor Research Limited Method of operating a packet reassembly buffer
EP1172974A2 (en) 2000-06-28 2002-01-16 Alcatel Canada Inc. Method and apparatus for packet reassembly in a communication switch

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493021A (en) * 1981-04-03 1985-01-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Multicomputer communication system
JP3085391B2 (ja) * 1989-06-19 2000-09-04 株式会社日立製作所 通信装置
US5452289A (en) * 1993-01-08 1995-09-19 Multi-Tech Systems, Inc. Computer-based multifunction personal communications system
US5535204A (en) * 1993-01-08 1996-07-09 Multi-Tech Systems, Inc. Ringdown and ringback signalling for a computer-based multifunction personal communications system
US5757801A (en) * 1994-04-19 1998-05-26 Multi-Tech Systems, Inc. Advanced priority statistical multiplexer
US5625625A (en) 1995-07-07 1997-04-29 Sun Microsystems, Inc. Method and apparatus for partitioning data load and unload functions within an interface system for use with an asynchronous transfer mode system
US5809024A (en) 1995-07-12 1998-09-15 Bay Networks, Inc. Memory architecture for a local area network module in an ATM switch
US6667978B1 (en) * 1998-07-09 2003-12-23 International Business Machines Corporation Apparatus and method for reassembling frame data into stream data
US6643298B1 (en) * 1999-11-23 2003-11-04 International Business Machines Corporation Method and apparatus for MPEG-2 program ID re-mapping for multiplexing several programs into a single transport stream
US7212528B2 (en) 2001-12-21 2007-05-01 Alcatel Canada Inc. System and method for reassembling packets in a network element

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06132974A (ja) * 1992-10-20 1994-05-13 Toshiba Corp パケット・ディスアセンブル用バッファ
JP2001326683A (ja) 2000-05-17 2001-11-22 Nec Corp パケット交換機、パケット交換方法
EP1172974A2 (en) 2000-06-28 2002-01-16 Alcatel Canada Inc. Method and apparatus for packet reassembly in a communication switch
EP1170975A1 (en) 2000-07-05 2002-01-09 Roke Manor Research Limited Method of operating a packet reassembly buffer

Also Published As

Publication number Publication date
TWI286425B (en) 2007-09-01
GB2387688B (en) 2005-10-26
GB2387688A (en) 2003-10-22
US20030120664A1 (en) 2003-06-26
US6804692B2 (en) 2004-10-12
JP2003229907A (ja) 2003-08-15
TW200301642A (en) 2003-07-01
KR20030053452A (ko) 2003-06-28
GB0227955D0 (en) 2003-01-08

Similar Documents

Publication Publication Date Title
KR100920651B1 (ko) 네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치
US7664112B2 (en) Packet processing apparatus and method
EP1166520B1 (en) Method and apparatus for managing a network flow in a high performance network interface
JP2788577B2 (ja) フレーム変換方法及び装置
US7813342B2 (en) Method and apparatus for writing network packets into computer memory
EP1159813B1 (en) Method and apparatus for dynamic packet batching with a network interface
US7782849B2 (en) Data switch and switch fabric
JP3734704B2 (ja) パケット分類エンジン
EP1157502B1 (en) Method and apparatus for early random discard of packets
US7957392B2 (en) Method and apparatus for high-performance bonding resequencing
US7415596B2 (en) Parser table/production rule table configuration using CAM and SRAM
EP1157518B1 (en) Method and apparatus for data re-assembly with a high performance network interface
US20060268913A1 (en) Streaming buffer system for variable sized data packets
US7590721B2 (en) Reordering sequence based channels
US20050281281A1 (en) Port input buffer architecture
JPH09505713A (ja) 広帯域ネットワークにおけるデータ伝送の並列アセンブリのためのシステム
US7065628B2 (en) Increasing memory access efficiency for packet applications
US6463065B1 (en) Mixed topology data switching system
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message
WO2004107800A1 (en) A method of recombining data units

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: 20120907

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130906

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160831

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee