KR100816938B1 - 네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을보호하기 위한 방법 및 시스템 - Google Patents

네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을보호하기 위한 방법 및 시스템 Download PDF

Info

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
Application number
KR1020067009091A
Other languages
English (en)
Other versions
KR20060116203A (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 KR20060116203A publication Critical patent/KR20060116203A/ko
Application granted granted Critical
Publication of KR100816938B1 publication Critical patent/KR100816938B1/ko

Links

Images

Classifications

    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access 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

네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을 보호하기 위한 방법 및 시스템{METHOD AND SYSTEM TO PROTECT A PROTOCOL CONTROL BLOCK FOR NETWORK PACKET PROCESSING}
본 발명의 실시예들은 네트워크 패킷 프로세싱 분야와 관련되고, 더 자세하게는 네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을 프리페치(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)

  1. 네트워크 디바이스에서 패킷을 수신하는 단계;
    상기 패킷과 연관된 PCB(protocol control block)를 캐시로 프리페치(pre-fetching)하는 단계;
    프로세싱을 위해 상기 패킷을 큐잉(queuing)하는 단계; 및
    프로세싱 유닛이 상기 패킷을 처리할 준비가 되었을 때 상기 캐시로부터 상기 PCB를 검색하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 패킷과 연관된 헤더를 상기 캐시로 프리페치하는 단계를 더 포함하는 방법.
  3. 제2항에 있어서,
    상기 프로세싱 유닛이 상기 패킷을 처리할 준비가 되었을 때 상기 캐시에서 상기 패킷 헤더를 검색하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 패킷을 수신하는 단계 후 및 상기 PCB를 프리페치하는 단계 전에 상기 패킷의 수신을 상기 프로세싱 유닛에 통지하기 위해 인터럽트를 전송하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 패킷과 연관된 PCB를 캐시로 프리페치하는 단계는, 상기 패킷과 연관된 PCB를 상기 프로세싱 유닛의 캐시로 프리페치하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 패킷을 수신하는 단계 후 및 상기 PCB를 프리페치하는 단계 전에 상기 프로세싱 유닛에 연결된 메모리에 상기 패킷을 저장하는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 캐시로부터 상기 PCB를 검색하는 단계 후에 상기 패킷을 처리하는 단계를 더 포함하는 방법.
  8. 패킷을 수신하는 수신 유닛;
    상기 수신 유닛에 연결되고 상기 패킷과 연관된 PCB를 캐시로 프리페치하고 프로세싱을 위해 상기 패킷을 큐잉하는 프리페치 유닛; 및
    상기 프리페치 유닛에 연결되고 상기 PCB를 상기 캐시에서 검색하고 상기 패킷을 처리하는 프로세싱 유닛
    을 포함하는 장치.
  9. 제8항에 있어서,
    상기 수신 유닛은 네트워크 인터페이스 카드인 장치.
  10. 제8항에 있어서,
    상기 프리페치 유닛은 상기 패킷과 연관된 헤더를 상기 캐시로 더 프리페치하는 장치.
  11. 제10항에 있어서,
    상기 프로세싱 유닛은 상기 패킷 헤더를 상기 캐시에서 더 검색하는 장치.
  12. 제8항에 있어서,
    상기 패킷과 연관된 PCB를 캐시로 프리페치하는 상기 프리페치 유닛은 상기 패킷과 연관된 PCB를 상기 프로세싱 유닛의 캐시로 프리페치하는 프리페치 유닛을 포함하는 장치.
  13. 제8항에 있어서,
    상기 수신 유닛 및 상기 프로세싱 유닛에 연결되고, 상기 수신 유닛으로부터 인터럽트를 수신하고 상기 패킷의 수신을 상기 프로세싱 유닛에 통지하는 인터럽트 유닛을 더 포함하는 장치.
  14. 컨텐츠를 포함하는 머신 액세스가능 매체(machine accessible medium)로서, 상기 컨텐츠는 머신에 의해 액세스될 때, 상기 머신이,
    패킷을 수신하고
    상기 패킷과 연관된 PCB를 캐시로 프리페치하고;
    프로세싱을 위해 상기 패킷을 큐잉하고; 및
    프로세싱 유닛이 상기 패킷을 처리할 준비가 되었을 때 상기 캐시에서 상기 PCB를 검색하게 하는 머신 액세스가능 매체.
  15. 제14항에 있어서,
    상기 머신이 상기 패킷과 연관된 헤더를 상기 캐시로 프리페치하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
  16. 제15항에 있어서,
    상기 프로세싱 유닛이 상기 패킷을 처리할 준비가 되었을 때 상기 머신이 상기 캐시에서 상기 패킷 헤더를 검색하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
  17. 제14항에 있어서,
    상기 머신이 상기 패킷을 처리하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
  18. 제14항에 있어서,
    상기 패킷의 수신을 상기 프로세싱 유닛에 통지하기 위해 상기 머신이 인터럽트를 전송하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
  19. 제14항에 있어서,
    상기 머신에 의해 액세스될 때 상기 머신이 상기 패킷과 연관된 PCB를 캐시로 프리페치하게 하는 컨텐츠를 포함하는 상기 머신 액세스가능 매체는, 상기 머신에 의해 액세스될 때 상기 머신이 상기 패킷과 연관된 PCB를 상기 프로세싱 유닛의 캐시로 프리페치하게 하는 컨텐츠를 포함하는 머신 액세스가능 매체를 포함하는 머신 액세스가능 매체.
  20. 제14항에 있어서,
    상기 머신이 상기 프로세싱 유닛에 연결된 메모리에 상기 패킷을 저장하게 하는 컨텐츠를 더 포함하는 머신 액세스가능 매체.
  21. 패킷을 수신하는 수신 유닛;
    상기 수신 유닛에 연결되고 상기 수신된 패킷을 저장하는 메모리;
    상기 메모리에 연결되고 상기 메모리를 관리하는 메모리 컨트롤러;
    상기 수신 유닛에 연결되고 상기 패킷과 연관된 PCB를 캐시로 프리페치하고 프로세싱을 위해 상기 패킷을 큐잉하는 프리페치 유닛; 및
    상기 캐시에서 상기 PCB를 검색하고 상기 패킷을 처리하는 프로세싱 유닛
    을 포함하는 시스템.
  22. 제21항에 있어서,
    상기 수신 유닛은 네트워크 인터페이스 카드인 시스템.
  23. 제21항에 있어서,
    상기 프리페치 유닛은 상기 패킷과 연관된 헤더를 상기 캐시로 더 프리페치하기 위한 것인 시스템.
  24. 제23항에 있어서,
    상기 프로세싱 유닛은 상기 패킷 헤더를 상기 캐시에서 더 검색하기 위한 것인 시스템.
  25. 제21항에 있어서,
    상기 수신 유닛 및 상기 프로세싱 유닛에 연결되고, 상기 수신 유닛으로부터 인터럽트를 수신하고 상기 패킷의 수신을 상기 프로세싱 유닛에 통지하는 인터럽트 유닛을 더 포함하는 시스템.
KR1020067009091A 2003-11-12 2004-10-29 네트워크 패킷 프로세싱을 위해 프로토콜 제어 블록을보호하기 위한 방법 및 시스템 KR100816938B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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