KR100816938B1 - 네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을보호하기 위한 방법 및 시스템 - Google Patents
네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을보호하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR100816938B1 KR100816938B1 KR1020067009091A KR20067009091A KR100816938B1 KR 100816938 B1 KR100816938 B1 KR 100816938B1 KR 1020067009091 A KR1020067009091 A KR 1020067009091A KR 20067009091 A KR20067009091 A KR 20067009091A KR 100816938 B1 KR100816938 B1 KR 100816938B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- cache
- unit
- pcb
- machine
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5603—Access techniques
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을 프리페치(pre-fetch) 하기 위한 방법 및 시스템이 설명된다. 본 방법은 패킷을 수신하는 단계, 그 패킷과 연관된 PCB(protocol control block)를 캐시로 프리페치하는 단계, 프로세싱을 위해 그 패킷을 큐잉(queuing)하는 단계, 및 프로세싱 유닛이 그 패킷을 처리할 준비가 되었을 때 캐시에서 해당 PCB를 검색하는 단계를 포함한다.
네트워크 패킷 프로세싱, PCB(protocol control block), 메모리 대기 시간, 캐시, 프리페치
Description
본 발명의 실시예들은 네트워크 패킷 프로세싱 분야와 관련되고, 더 자세하게는 네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을 프리페치(pre-fetching) 하는 것에 관련된다.
네트워크 디바이스에 패킷이 도착할 때, NIC(network interface card)는 패킷을 취해서 메인 메모리에 저장한다. 그 후 NIC는 그 패킷에 대해 CPU(central processing unit)에 통지하기 위해 인터럽트를 전송할 수 있다. 그 후 인터럽트 유닛은 그 인터럽트의 목적지를 검사하고 NIC로부터의 추가 인터럽트들을 디스에이블하고, 소프트웨어 인터럽트(software interrupt)를 개시하고, 프로세싱을 위해 패킷을 큐잉(queuing)할 수 있다. 프로세싱 유닛이 패킷을 처리할 준비가 되었을 때, 그 패킷이 속하는 접속이 식별된다. 이것은 그 패킷과 연관된 PCB(Protocol Control Block)을 페치하는 것을 수반할 수 있다. PCB가 페치된 후, CPU는 패킷의 프로세싱을 시작할 수 있다. 프로세싱 유닛이 패킷을 처리할 준비가 되었을 때 PCB를 페치함으로부터 발생한 메모리 대기시간은 네트워크 디바이스의 성능을 감소 시킨다. 네트워킹 속도들이 증가할수록, 이러한 메모리 대기 시간은 성능 및 처리량에 대해서 증가하는 문제가 된다.
본 발명은 본 발명의 실시예들을 예시하기 위해 사용된 첨부 도면들 및 다음의 설명을 참고함으로써 가장 잘 이해될 수 있을 것이다.
도 1은 본 발명을 포함하는 시스템의 일반화된 일 실시예를 예시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른, 본 발명을 포함하는 예시적인 시스템을 예시하는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 방법을 예시하는 흐름도이다.
도 4는 본 발명의 소정의 양태들이 실시될 수 있는 적합한 컴퓨팅 환경을 예시하는 블록도이다.
네트워크 패킷 프로세싱을 위해 PCB를 프리페치하기 위한 시스템 및 방법의 실시예들이 설명된다. 다음의 설명에서, 다수의 특정한 세부사항들이 개시된다. 그러나 본 발명의 실시예들이 이러한 특정한 세부사항들없이 실시될 수 있다는 것이 이해된다. 다른 경우들에서, 본 설명의 이해를 모호하게 하지 않기 위해 공지의 회로들, 구조들 및 기술들은 상세하게 보여지지 않았다.
본 명세서 전체에 걸쳐 "일 실시예" 또는 "실시예"에 대한 참조는 그 실시예와 관련하여 기술된 특정한 특징, 구조, 또는 특성이 본 발명의 적어도 한 실시예에 포함된다는 것을 의미한다. 그러므로, 본 명세서 전체에 걸쳐 다양한 곳에서의 "일 실시예에서" 또는 "실시예에서"라는 표현들의 출현은 반드시 모두 동일한 실시예에 관한 것은 아니다. 더욱이, 특정한 특징들, 구조들, 또는 특성들은 하나 또는 그 이상의 실시예들에서 임의의 적합한 방식으로 결합될 수 있다.
도 1을 참조하면, 블록도가, 본 발명의 일 실시예를 따르는 시스템(100)을 예시한다. 본 기술분야의 당업자들은 시스템(100)이 도 1에 보여진 구성 요소들보다 많은 구성 요소들을 포함할 수 있다는 것을 이해할 것이다. 그러나 본 발명을 실시하기 위한 예시적인 실시예를 개시하기 위해 이러한 일반적인 종래의 구성 요소들 모두가 반드시 도시될 필요는 없다.
시스템(100)은 네트워크로부터 패킷들을 수신하기 위한 수신 유닛(102)을 포함한다. 일 실시예에서, 패킷들은 TCP/IP(Transmission Control Protocol) 규격을 따라 전달될 수 있다. 특정한 일련의 패킷들은 "접속(connection)" 또는 "패킷 흐름(packet flow)" 이라고 불릴 수 있다. 접속의 컨텍스트(context)는 PCB라고 알려진 구조에 저장될 수 있다. 이러한 컨텍스트는 그 접속의 소스 IP 주소, 목적지 IP 주소, 소스 포트, 목적지 포트, 및/또는 프로토콜 유형에 의해 고유하게 식별될 수 있다. 수신 유닛(102)에서 수신된 각 패킷에 대해, 패킷과 연관된 PCB는 메모리로부터 검색될 필요가 있을 수 있다.
전송 및 수신된 각 패킷에 대하여 메모리로부터 PCB를 액세스하는 것은 메모리 대기 시간 및 대역폭 문제들과 연관되어 왔다. 이러한 문제들을 감소시키기 위해, 프리페치 유닛(104)은 수신된 패킷과 연관된 PCB를 프로세싱 유닛(106)의 캐시(108)로 프리페치한다. 그 후 패킷은 프로세싱을 위해 큐잉된다. 프로세싱 유닛(106)이 패킷을 처리할 준비가 되었을 때, PCB는 해당 캐시(108)에서 검색될 수 있다. 그리하여, 프로세싱 유닛이 패킷을 처리할 준비가 되었을 때 PCB를 페치하는 경우 메모리 대기 시간은 감소한다.
일 실시예에서, 프리페치 유닛(104)는 패킷 헤더 정보를 캐시(108)로 프리페치할 수도 있다. 프로세싱 유닛(106)이 패킷을 처리할 준비가 되었을 때, 패킷의 헤더 정보는 캐시(108)로부터 검색될 수 있고 그 후 그 패킷은 처리될 수 있다.
도 2는 본 발명의 일 실시예에 따른, 본 발명을 포함하는 예시적인 시스템을 나타낸다. 이러한 실시예에서, NIC(202)는 네트워크로부터 패킷들을 수신한다. 패킷은 메모리 컨트롤러(212)를 통해 메인 메모리(214)에 저장된다. NIC(202)는 206, 208 또는 210과 같은 프로세싱 유닛에게 그 패킷에 대해 통지하기 위해 인터럽트를 전송한다. ISR(interrupt service rotate) 유닛과 같은 인터럽트 유닛(204)은, 인터럽트의 목적지를 검사하고, NIC로부터의 추가 인터럽트들을 디스에이블하고, 소프트웨어 인터럽트를 개시하고, 프로세싱을 위해 패킷을 큐잉한다. 일 실시예에서, DPC(deferred procedure call)를 큐잉함에 의해 패킷이 프로세싱을 위해 큐잉된다. 이 때, 그 패킷과 연관된 PCB의 프리페치가 개시될 수 있다. 패킷 헤더의 프리페치도 개시될 수 있다. PCB 및 패킷 헤더는 216, 218 또는 220과 같은 캐시로 프리페치될 수 있다. 프리페치는 하드웨어 또는 소프트웨어로 행해질 수 있다. 206, 208 또는 210과 같은 프로세싱 유닛이 패킷을 처리할 준비가 되었을 때, 프로세싱 유닛은 PCB 및 패킷 헤더를 해당 캐시로부터 페치할 수 있다. 그 후, 그 패킷은 처리될 수 있다. 그 후 프로세싱 유닛은 NIC로부터의 인터럽트들을 인에이블할 수 있다. `
일 실시예에서, 프리페칭은 메모리 대기 시간을 감소시키기 위해 전송 측에서도 사용될 수 있다. 패킷이 네트워크 바깥으로의 전송을 위해 큐잉될 때, PCB가 프리페치될 수 있다. 사용자 공간의 소켓 인터페이스와 커널(kernel) 공간의 프로토콜 스택 프로세싱 사이에는 통상 소정의 지연이 존재한다. 그러므로, 소정의 패킷에 대해 전송 요청이 개시되었을 때, 그 패킷과 연관된 PCB가 프리페치될 수 있다. 커널이 전송을 위해 패킷을 처리할 준비가 되었을 때, PCB는 이미 프리페치되었고 프로세싱할 준비가 되어 있다. 이것은 전송측에서의 메모리 대기 시간을 감소시킨다.
도 3은 본 발명의 일 실시예에 따른 방법을 예시한다. 300에서, 패킷이 수신된다. 302에서, 그 패킷과 연관된 PCB가 캐시로 프리페치된다. 일 실시예에서, 패킷 헤더도 캐시로 프리페치된다. 304에서, 패킷은 프로세싱을 위해 큐잉된다. 306에서, 프로세싱 유닛이 패킷을 처리할 준비가 되었을 때, PCB가 캐시로부터 검색된다. 일 실시예에서, 패킷의 헤더도 캐시로부터 검색된다. 그 후, 패킷은 처리될 수 있다.
도 4는 예시된 발명의 소정의 양태들이 실시될 수 있는 적합한 컴퓨팅 환경을 예시하는 블록도이다. 일 실시예에서, 전술된 방법은, 버스(408)를 경유하여 서로 연결된, 프로세서(402), 메모리(404), 입력/출력 디바이스(406), 데이터 저장 디바이스(412), 및 네트워크 인터페이스(410)를 포함하는 구성 요소들(402-412)을 갖는 컴퓨터 시스템(400)에서 구현될 수 있다. 그 구성 요소들은 본 기술분야에서 알려진 그들의 종래의 기능들을 수행하고 시스템(100)을 구현하기 위한 수단을 제공한다. 집합적으로, 이러한 구성요소들은, 범용 컴퓨터 시스템들 및 특별한 패킷 전달 디바이스들을 포함하지만 거기에 한정되지 않는 넓은 카테고리의 하드웨어 시스템들을 나타낸다. 컴퓨터 시스템(400)의 다양한 구성 요소가 재구성될 수 있고, 본 발명의 소정의 구현들이 상기 구성 요소들 전부를 필요로 하거나 포함하지 않을 수 있다는 것이 이해되어야 한다. 더욱이, 부가적인 프로세서들(예를 들면, 디지털 신호 프로세서), 저장 디바이스들, 메모리들, 및 네트워크 또는 통신 인터페이스들과 같은 부가적인 구성 요소들이 시스템(400)에 포함될 수 있다.
본 기술분야의 당업자들이 이해하는 것처럼, 예를 들면 컴퓨터 프로그램 명령어들인, 본 발명의 방법의 실시예를 구현하기 위한 컨텐츠는 시스템(100)에 의해 액세스가능한 데이터를 저장할 수 있는 임의의 머신 판독 가능 매체(machine-readable media)에 의해 메모리의 일부로서 또는 메모리에 더해서 제공될 수 있다. 그 머신 판독 가능 매체는 카트리지들, 자기 카세트들, 플래시 메모리 카드들, 디지털 비디오 디스크들, RAM(random access memory)들, ROM(read-only memory)들, 및 이와 유사한 것을 포함하나 그것에 제한되지 않는다. 이 점에 있어서, 시스템(100)은 본 기술분야에서 공지된 방식으로 이러한 머신 판독 가능 매체와 통신하도록 갖춰져 있다.
본 기술분야의 당업자들은 본 발명의 방법의 실시예를 구현하기 위한 컨텐츠가, 그 컨텐츠를 저장할 수 있고 시스템(100)에 그 컨텐츠를 전달할 수 있는 임의의 외부 디바이스로부터 시스템(100)에 제공될 수 있다는 것을 더 이해할 것이다. 예를 들면, 본 발명의 일 실시예에서, 시스템(100)은 네트워크에 접속될 수 있고, 컨텐츠는 네트워크의 임의의 디바이스 상에 저장될 수 있다.
본 발명이 몇몇 실시예들에 관하여 설명되었지만, 본 기술분야의 당업자들은 본 발명이 설명된 실시예들에 제한되지 않고, 첨부된 청구항들의 사상 및 범위 내에서 수정 및 변경을 이용하여 실시될 수 있다는 것을 인식할 것이다. 그리하여 본 설명은 제한적인 것이라기 보다는 예시적인 것으로 생각되어야 한다.
Claims (25)
- 네트워크 디바이스에서 패킷을 수신하는 단계;상기 패킷과 연관된 PCB(protocol control block)를 캐시로 프리페치(pre-fetching)하는 단계;프로세싱을 위해 상기 패킷을 큐잉(queuing)하는 단계; 및프로세싱 유닛이 상기 패킷을 처리할 준비가 되었을 때 상기 캐시로부터 상기 PCB를 검색하는 단계를 포함하는 방법.
- 제1항에 있어서,상기 패킷과 연관된 헤더를 상기 캐시로 프리페치하는 단계를 더 포함하는 방법.
- 제2항에 있어서,상기 프로세싱 유닛이 상기 패킷을 처리할 준비가 되었을 때 상기 캐시에서 상기 패킷 헤더를 검색하는 단계를 더 포함하는 방법.
- 제1항에 있어서,상기 패킷을 수신하는 단계 후 및 상기 PCB를 프리페치하는 단계 전에 상기 패킷의 수신을 상기 프로세싱 유닛에 통지하기 위해 인터럽트를 전송하는 단계를 더 포함하는 방법.
- 제1항에 있어서,상기 패킷과 연관된 PCB를 캐시로 프리페치하는 단계는, 상기 패킷과 연관된 PCB를 상기 프로세싱 유닛의 캐시로 프리페치하는 단계를 포함하는 방법.
- 제5항에 있어서,상기 패킷을 수신하는 단계 후 및 상기 PCB를 프리페치하는 단계 전에 상기 프로세싱 유닛에 연결된 메모리에 상기 패킷을 저장하는 단계를 더 포함하는 방법.
- 제1항에 있어서,상기 캐시로부터 상기 PCB를 검색하는 단계 후에 상기 패킷을 처리하는 단계를 더 포함하는 방법.
- 패킷을 수신하는 수신 유닛;상기 수신 유닛에 연결되고 상기 패킷과 연관된 PCB를 캐시로 프리페치하고 프로세싱을 위해 상기 패킷을 큐잉하는 프리페치 유닛; 및상기 프리페치 유닛에 연결되고 상기 PCB를 상기 캐시에서 검색하고 상기 패킷을 처리하는 프로세싱 유닛을 포함하는 장치.
- 제8항에 있어서,상기 수신 유닛은 네트워크 인터페이스 카드인 장치.
- 제8항에 있어서,상기 프리페치 유닛은 상기 패킷과 연관된 헤더를 상기 캐시로 더 프리페치하는 장치.
- 제10항에 있어서,상기 프로세싱 유닛은 상기 패킷 헤더를 상기 캐시에서 더 검색하는 장치.
- 제8항에 있어서,상기 패킷과 연관된 PCB를 캐시로 프리페치하는 상기 프리페치 유닛은 상기 패킷과 연관된 PCB를 상기 프로세싱 유닛의 캐시로 프리페치하는 프리페치 유닛을 포함하는 장치.
- 제8항에 있어서,상기 수신 유닛 및 상기 프로세싱 유닛에 연결되고, 상기 수신 유닛으로부터 인터럽트를 수신하고 상기 패킷의 수신을 상기 프로세싱 유닛에 통지하는 인터럽트 유닛을 더 포함하는 장치.
- 컨텐츠를 포함하는 머신 액세스가능 매체(machine accessible medium)로서, 상기 컨텐츠는 머신에 의해 액세스될 때, 상기 머신이,패킷을 수신하고상기 패킷과 연관된 PCB를 캐시로 프리페치하고;프로세싱을 위해 상기 패킷을 큐잉하고; 및프로세싱 유닛이 상기 패킷을 처리할 준비가 되었을 때 상기 캐시에서 상기 PCB를 검색하게 하는 머신 액세스가능 매체.
- 제14항에 있어서,상기 머신이 상기 패킷과 연관된 헤더를 상기 캐시로 프리페치하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
- 제15항에 있어서,상기 프로세싱 유닛이 상기 패킷을 처리할 준비가 되었을 때 상기 머신이 상기 캐시에서 상기 패킷 헤더를 검색하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
- 제14항에 있어서,상기 머신이 상기 패킷을 처리하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
- 제14항에 있어서,상기 패킷의 수신을 상기 프로세싱 유닛에 통지하기 위해 상기 머신이 인터럽트를 전송하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
- 제14항에 있어서,상기 머신에 의해 액세스될 때 상기 머신이 상기 패킷과 연관된 PCB를 캐시로 프리페치하게 하는 컨텐츠를 포함하는 상기 머신 액세스가능 매체는, 상기 머신에 의해 액세스될 때 상기 머신이 상기 패킷과 연관된 PCB를 상기 프로세싱 유닛의 캐시로 프리페치하게 하는 컨텐츠를 포함하는 머신 액세스가능 매체를 포함하는 머신 액세스가능 매체.
- 제14항에 있어서,상기 머신이 상기 프로세싱 유닛에 연결된 메모리에 상기 패킷을 저장하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
- 패킷을 수신하는 수신 유닛;상기 수신 유닛에 연결되고 상기 수신된 패킷을 저장하는 메모리;상기 메모리에 연결되고 상기 메모리를 관리하는 메모리 컨트롤러;상기 수신 유닛에 연결되고 상기 패킷과 연관된 PCB를 캐시로 프리페치하고 프로세싱을 위해 상기 패킷을 큐잉하는 프리페치 유닛; 및상기 캐시에서 상기 PCB를 검색하고 상기 패킷을 처리하는 프로세싱 유닛을 포함하는 시스템.
- 제21항에 있어서,상기 수신 유닛은 네트워크 인터페이스 카드인 시스템.
- 제21항에 있어서,상기 프리페치 유닛은 상기 패킷과 연관된 헤더를 상기 캐시로 더 프리페치하기 위한 것인 시스템.
- 제23항에 있어서,상기 프로세싱 유닛은 상기 패킷 헤더를 상기 캐시에서 더 검색하기 위한 것인 시스템.
- 제21항에 있어서,상기 수신 유닛 및 상기 프로세싱 유닛에 연결되고, 상기 수신 유닛으로부터 인터럽트를 수신하고 상기 패킷의 수신을 상기 프로세싱 유닛에 통지하는 인터럽트 유닛을 더 포함하는 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/712,640 | 2003-11-12 | ||
US10/712,640 US20050100042A1 (en) | 2003-11-12 | 2003-11-12 | Method and system to pre-fetch a protocol control block for network packet processing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060116203A KR20060116203A (ko) | 2006-11-14 |
KR100816938B1 true KR100816938B1 (ko) | 2008-03-25 |
Family
ID=34552689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067009091A KR100816938B1 (ko) | 2003-11-12 | 2004-10-29 | 네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을보호하기 위한 방법 및 시스템 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20050100042A1 (ko) |
EP (1) | EP1683321B1 (ko) |
KR (1) | KR100816938B1 (ko) |
CN (1) | CN1879385B (ko) |
AT (1) | ATE379917T1 (ko) |
DE (1) | DE602004010424T2 (ko) |
TW (1) | TWI269559B (ko) |
WO (1) | WO2005050949A1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050286526A1 (en) * | 2004-06-25 | 2005-12-29 | Sood Sanjeev H | Optimized algorithm for stream re-assembly |
US7761529B2 (en) * | 2004-06-30 | 2010-07-20 | Intel Corporation | Method, system, and program for managing memory requests by devices |
US20060004933A1 (en) * | 2004-06-30 | 2006-01-05 | Sujoy Sen | Network interface controller signaling of connection event |
US7461173B2 (en) * | 2004-06-30 | 2008-12-02 | Intel Corporation | Distributing timers across processors |
US20060031474A1 (en) * | 2004-07-19 | 2006-02-09 | Linden Cornett | Maintaining reachability measures |
ATE459183T1 (de) * | 2006-05-02 | 2010-03-15 | Research In Motion Ltd | Verfahren und vorrichtung zur optimierung der übertragung von metadaten |
KR100801004B1 (ko) * | 2006-08-25 | 2008-02-05 | 삼성전자주식회사 | 임베디드 aⅴ 컨텐츠의 프로토콜 매칭 장치 및 방법 |
JP5028339B2 (ja) * | 2008-06-09 | 2012-09-19 | キヤノン株式会社 | 通信装置及び制御方法 |
US20110228674A1 (en) * | 2010-03-18 | 2011-09-22 | Alon Pais | Packet processing optimization |
US8327047B2 (en) | 2010-03-18 | 2012-12-04 | Marvell World Trade Ltd. | Buffer manager and methods for managing memory |
US9465662B2 (en) * | 2011-10-17 | 2016-10-11 | Cavium, Inc. | Processor with efficient work queuing |
US10951525B2 (en) | 2019-01-04 | 2021-03-16 | Intel Corporation | Availability of context information for packet processing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US20020165992A1 (en) * | 2001-05-03 | 2002-11-07 | International Business Machines Corporation | Method, system, and product for improving performance of network connections |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2986802B2 (ja) * | 1989-03-13 | 1999-12-06 | 株式会社日立製作所 | プロトコル高速処理方法 |
US5819112A (en) * | 1995-09-08 | 1998-10-06 | Microsoft Corporation | Apparatus for controlling an I/O port by queuing requests and in response to a predefined condition, enabling the I/O port to receive the interrupt requests |
US5881296A (en) * | 1996-10-02 | 1999-03-09 | Intel Corporation | Method for improved interrupt processing in a computer system |
US6021446A (en) * | 1997-07-11 | 2000-02-01 | Sun Microsystems, Inc. | Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine |
WO1999049415A2 (en) * | 1998-03-26 | 1999-09-30 | Gemplus | Versatile interface smart card |
JP4294142B2 (ja) * | 1999-02-02 | 2009-07-08 | 株式会社日立製作所 | ディスクサブシステム |
US6453360B1 (en) * | 1999-03-01 | 2002-09-17 | Sun Microsystems, Inc. | High performance network interface |
US6625149B1 (en) * | 1999-11-29 | 2003-09-23 | Lucent Technologies Inc. | Signaled receiver processing methods and apparatus for improved protocol processing |
US6990669B1 (en) * | 2000-03-21 | 2006-01-24 | Microsoft Corporation | Real-time scheduler |
US20020144004A1 (en) * | 2001-03-29 | 2002-10-03 | Gaur Daniel R. | Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing |
US6993613B2 (en) * | 2001-09-17 | 2006-01-31 | Intel Corporation | Methods and apparatus for reducing receive interrupts via paced ingress indication |
US7269663B2 (en) * | 2001-09-28 | 2007-09-11 | Intel Corporation | Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache |
US7219121B2 (en) * | 2002-03-29 | 2007-05-15 | Microsoft Corporation | Symmetrical multiprocessing in multiprocessor systems |
US7631106B2 (en) * | 2002-08-15 | 2009-12-08 | Mellanox Technologies Ltd. | Prefetching of receive queue descriptors |
US7240166B2 (en) * | 2003-05-01 | 2007-07-03 | International Business Machines Corporation | Method and apparatus for implementing packet work area accesses and buffer sharing |
US6981074B2 (en) * | 2003-10-14 | 2005-12-27 | Broadcom Corporation | Descriptor-based load balancing |
US7552232B2 (en) * | 2003-10-24 | 2009-06-23 | International Business Machines Corporation | Speculative method and system for rapid data communications |
-
2003
- 2003-11-12 US US10/712,640 patent/US20050100042A1/en not_active Abandoned
-
2004
- 2004-06-03 TW TW093115977A patent/TWI269559B/zh not_active IP Right Cessation
- 2004-10-29 EP EP04796807A patent/EP1683321B1/en active Active
- 2004-10-29 WO PCT/US2004/036095 patent/WO2005050949A1/en active IP Right Grant
- 2004-10-29 DE DE602004010424T patent/DE602004010424T2/de active Active
- 2004-10-29 KR KR1020067009091A patent/KR100816938B1/ko not_active IP Right Cessation
- 2004-10-29 CN CN2004800331259A patent/CN1879385B/zh not_active Expired - Fee Related
- 2004-10-29 AT AT04796807T patent/ATE379917T1/de not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US20020165992A1 (en) * | 2001-05-03 | 2002-11-07 | International Business Machines Corporation | Method, system, and product for improving performance of network connections |
Also Published As
Publication number | Publication date |
---|---|
DE602004010424D1 (de) | 2008-01-10 |
ATE379917T1 (de) | 2007-12-15 |
EP1683321B1 (en) | 2007-11-28 |
US20050100042A1 (en) | 2005-05-12 |
WO2005050949A1 (en) | 2005-06-02 |
DE602004010424T2 (de) | 2008-11-27 |
CN1879385A (zh) | 2006-12-13 |
KR20060116203A (ko) | 2006-11-14 |
TW200518529A (en) | 2005-06-01 |
EP1683321A1 (en) | 2006-07-26 |
CN1879385B (zh) | 2012-03-21 |
TWI269559B (en) | 2006-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7631106B2 (en) | Prefetching of receive queue descriptors | |
US9569366B2 (en) | System and method to provide non-coherent access to a coherent memory system | |
US7076569B1 (en) | Embedded channel adapter having transport layer configured for prioritizing selection of work descriptors based on respective virtual lane priorities | |
KR100816938B1 (ko) | 네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을보호하기 위한 방법 및 시스템 | |
US7627674B2 (en) | Speculative prefetch of protocol control information from an external memory unit | |
US8161197B2 (en) | Method and system for efficient buffer management for layer 2 (L2) through layer 5 (L5) network interface controller applications | |
US8688868B2 (en) | Steering data units to a consumer | |
US20110125947A1 (en) | Read control in a computer i/o interconnect | |
JP2011198360A (ja) | パケット処理最適化 | |
US9367460B2 (en) | Implicit I/O send on cache operations | |
US6742075B1 (en) | Arrangement for instigating work in a channel adapter based on received address information and stored context information | |
US7404040B2 (en) | Packet data placement in a processor cache | |
US8990422B1 (en) | TCP segmentation offload (TSO) using a hybrid approach of manipulating memory pointers and actual packet data | |
US7401184B2 (en) | Matching memory transactions to cache line boundaries | |
US7535918B2 (en) | Copy on access mechanisms for low latency data movement | |
US7720930B2 (en) | Systems and methods using NIC-based prefetching for host TCP context lookup | |
WO2020034080A1 (zh) | 一种基于dma的数据处理方法及相关产品 | |
US20230014415A1 (en) | Reducing transactions drop in remote direct memory access system | |
US7330880B1 (en) | Method and apparatus for reliable download to a network cache while limiting origin server load | |
US7266614B1 (en) | Embedded channel adapter having link layer configured for concurrent retrieval of payload data during packet transmission | |
US7284075B2 (en) | Inbound packet placement in host memory | |
US20030223447A1 (en) | Method and system to synchronize a multi-level memory | |
US20170147517A1 (en) | Direct memory access system using available descriptor mechanism and/or pre-fetch mechanism and associated direct memory access method | |
CN117880222A (zh) | 一种toe的加速系统及方法 | |
CN116015613A (zh) | 报文处理方法、装置、电子设备及计算机可读存储介质 |
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: 20130228 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140303 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20150227 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20160303 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170302 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |