KR100387544B1 - 스케일러블 디바이스 드라이버 서비스 제공 방법 및 이를 기록한 기록 매체, 네트워크 프로세서 서비스 제공 장치 및 그 제어 시스템, 분산 프로세싱 시스템용 디바이스 드라이버 프로그램이 기록된 기록 매체 - Google Patents

스케일러블 디바이스 드라이버 서비스 제공 방법 및 이를 기록한 기록 매체, 네트워크 프로세서 서비스 제공 장치 및 그 제어 시스템, 분산 프로세싱 시스템용 디바이스 드라이버 프로그램이 기록된 기록 매체 Download PDF

Info

Publication number
KR100387544B1
KR100387544B1 KR10-2001-0012156A KR20010012156A KR100387544B1 KR 100387544 B1 KR100387544 B1 KR 100387544B1 KR 20010012156 A KR20010012156 A KR 20010012156A KR 100387544 B1 KR100387544 B1 KR 100387544B1
Authority
KR
South Korea
Prior art keywords
network
service
processor
network processor
utility
Prior art date
Application number
KR10-2001-0012156A
Other languages
English (en)
Other versions
KR20010091013A (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 KR20010091013A publication Critical patent/KR20010091013A/ko
Application granted granted Critical
Publication of KR100387544B1 publication Critical patent/KR100387544B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)
  • Solid-Sorbent Or Filter-Aiding Compositions (AREA)
  • Materials For Medical Uses (AREA)

Abstract

본 발명은 프로세서 및 운영 체제에 대해 독립적인 스케일러블 네트워크 프로세서 서비스 아키텍처(a scalable processor service architecture)를 제공하는 시스템에 관한 것이다. 이 시스템은 제어 프로세서의 디바이스 드라이버의 특정 세그먼트를 나타내는 다수의 이식가능(portable)하고 개별화된 기능 요소(functional components)를 포함한다. 기능 요소는 저레벨 API 및 외부 API를 포함하며, 네트워크 상의 패킷의 수신과 전달 등의 다양한 네트워크 프로세서 기능 및 제어 프로세서가 요구하는 기타 기능을 수행하여 네트워크 프로세서와 통신하고 이를 감독한다. 기능 요소는 이용가능한 다양한 유형의 프로세서 아키텍처와 운영 체제에 적합하며 고객이나 개발자가 이용가능한 네트워크 서비스를 주문제작하고 확장하도록 설계된다.

Description

스케일러블 디바이스 드라이버 서비스 제공 방법 및 이를 기록한 기록 매체, 네트워크 프로세서 서비스 제공 장치 및 그 제어 시스템, 분산 프로세싱 시스템용 디바이스 드라이버 프로그램이 기록된 기록 매체{NETWORK PROCESSOR SERVICES ARCHITECTURE THAT IS PLATFORM AND OPERATING SYSTEM INDEPENDENT}
본 발명은 일반적으로 개선된 컴퓨터 네트워크에 관한 것으로서, 구체적으로는 개선된 네트워크 프로세서 아키텍처에 관한 것이다. 보다 구체적으로, 본 발명은 플랫폼 및 운영 체제에 대해 독립적인 개별화된 네트워크 프로세서 서비스를 지원하는 개선된 분산 네트워크 프로세서 아키텍처에 관한 것이다.
도 1a는 일반적인 통신 네트워크의 블럭도를 도시하고 있다. 통신 네트워크는 간단한 다중화 디바이스(멀티플렉서)(11)를 통해 수 개의 워크스테이션(13)에 접속되는 스위치(또는 라우터)(10)를 포함한다. 스위치(10)는 제어 포인트(12), 인터넷(14) 또는 소정의 다른 형태의 광역 네트워크(Wide Area Network :WAN)(16), 서버(18), 근거리 네트워크(Local Area Network : LAN)(20)에도 접속된다. LAN(20)은 이더넷(ethernet), 토큰링(token-ring) 또는 다수의 부가적인 워크스테이션을 포함할 수 있는 임의 유형의 아키텍처일 수 있다. 당업자는 도 1의 요소들의 다양한 조합이 가능하다는 것을 이해할 것이다. 구체적으로, 어떤 요소는 2 배로 되고 다른 요소는 제거될 수 있다. 멀티플렉서(11)는 다수의 부착된 워크스테이션중 하나를 선택하여 스위치와 통신하도록 하는 통상적인 오프-더-셸프(off-the-shelf) 디바이스이다. 제어 포인트(12)는 스위치(10)와 네트워크 관리자(a network administrator) 사이의 인터페이스를 제공한다. 제어 포인트(12)는 키보드, 제어 유닛, 디스플레이 등을 포함하는 컴퓨터를 포함할 수 있다.
보다 넓은 대역폭, 보다 낮은 지연, 보다 우수한 유연성을 갖는 네트워크에 대한 요구가 증가함에 따라 통신 네트워크는 지속적으로 발전되어 왔다. 통상적인 네트워크에는 많은 제한점이 존재한다. 예컨대, 특정 네트워크 애플리케이션을 실행하는 커스텀 설계 칩(a custom design chip)을 이용하여 설계된 네트워크는 개조하기가 용이하지 않고 개선 기술에 대해 지속적으로 발전하는 요구를 충족시킬 수 없다. 네트워크는 지속적으로 변화하지만 각각의 커스텀 설계 칩을 제조하는 데에는 전형적으로 수 개월이 걸린다. 또한, 범용 프로세서를 이용하여 구현되는 네트워크는 프로세서의 속도에 의해 성능이 제한된다.
네트워크 프로세서 서비스 아키텍처를 이용하여 생성된 분산 네트워크는 인트라넷(Intranet) 및 인터넷 네트워크를 망라하여 정보를 라우팅(routing)함에 있어서 신속하게 표준이 되고 있다. 도 1b는 전형적인 네트워크 프로세서 서비스 아키텍처를 도시하고 있다. 제어 프로세서(101)는 도 1a의 제어 포인트와 동일한 것으로서, 시스템의 대부분의 프로세스를 감독한다. 제어 프로세서(101)는 분산 병렬 네트워크 프로세서(103)로 표시한 다수의 네트워크 프로세서(103)에 접속되어 있다. 네트워크 프로세서(103)는 실시간으로 네트워크 애플리케이션을 처리하도록 설계된 특수 프로세서 칩이다. 이들 프로세서 칩은 범용 프로세서 또는 제어 프로세서(101)에 의해 초기화되고 구성(configure)된다.
네트워크 프로세서(103)는 프레임을 수신하고 수정하여 이를 스위치 구조(switch fabric)(105) 또는 제어 프로세서(101)로 전달하기 위한 매체 인터페이스를 제공한다. 네트워크 프로세서(103)는 네트워크 특정 작업(network-specific tasks)을 최적화하고 부가적인 대역폭, 처리량, 분산 처리 능력을 제공하면서 지연을 감소시키도록 설계된다. 네트워크 프로세서(103)는 네트워크 통신 동안 패킷(packet)을 수신하고 전달한다. 패킷은 네트워크 프로세서(103)를 경유하여 네트워크 프로토콜의 층 2, 3, 4 상으로 라우팅된다. 네트워크 프로세서(103)와 스위치 구조(105)는 도 1a에 도시한 스위치/라우터(10) 요소로서 존재할 수 있다. 네트워크 프로세서(103)는 패킷의 어드레스를 판독하고 프로토콜에 기초하여 어드레스를 번역함으로써 패킷을 그들의 올바른 목적지로 라우팅한다. 스위치 구조(105)는 시스템 내의 다수의 네트워크 프로세서의 상호접속을 가능하게 한다.
제어 프로세서(101)는 시스템 내의 IP 패킷의 흐름을 제어하기 위한 고레벨 지능형 프로토콜(a high level intelligent protocol)을 포함한다. 제어프로세서(101)는 네트워크 프로세서(103)를 활성화하는 역할을 한다. 또한, 제어 프로세서(101)는 네트워크 프로세서(103)에 프레임의 목적지를 식별시키는 어드레스 정보를 제공한다. 네트워크 프로세서(103)는 하나 이상의 룩업 테이블(look-up tables)을 포함하는데, 패킷이 도달하였을 때 이를 참조하여 그 패킷의 전달 목적지(a forwarding destination)를 판단한다.
네트워크 프로세서 아키텍처를 사용하면 대역폭 활용 및 트래픽 흐름을 극대화할 수 있지만, 이는 특정한 프로세서 유형 및 운영 체제로 국한된다. 현재, 네트워크 프로세서 아키텍처 내에서의 통신은 프로세서 및 OS에 대해 의존적이다. 네트워크 프로세서 및 제어 프로세서는 특정한 프로세서 하드웨어 유형 및 운영 체제와 상호작용하도록 설계된 통합된 기능 블럭(a unified functional block)으로서 동작하는 특정 디바이스 드라이버에 밀결합된다(tightly couple).
본 발명은 보다 유연한 네트워크 프로세서 제품 모델이 필요하다는 점을 인식하고 있다. 따라서, 하드웨어 및 운영 체제에 대해 독립적인 방식으로 구현될 수 있는 네트워크 프로세서 서비스 아키텍처가 바람직하다. 이러한 프로세서 아키텍처가 다른 기능 요소를 포함하도록 확장되어 고객 특정(customer specific) 또는 개발자 특정(developer specific)이 된다면 더욱 바람직할 것이다. 이들 장점 및 기타 장점이 본 발명에 의해 달성된다.
본 발명은 프로세서 및 운영 체제에 대해 독립적인 스케일러블 네트워크 프로세서 서비스 아키텍처(a scalable processor service architecture)를 제공하는 시스템에 관한 것이다. 이 시스템은 제어 프로세서의 디바이스 드라이버의 특정 세그먼트를 나타내는 다수의 이식가능(portable)하고 개별화된 기능 요소(functional component)를 포함한다. 기능 요소는 저레벨 API 및 외부 API를 포함하며, 네트워크 상의 패킷의 수신과 전달 등의 다양한 네트워크 프로세서 기능 및 제어 프로세서가 요구하는 기타 기능을 수행하여 네트워크 프로세서와 통신하고 이를 감독한다. 기능 요소는 이용가능한 다양한 유형의 프로세서 아키텍처와 운영 체제에 적합하며 고객이나 개발자가 이용가능한 네트워크 서비스를 주문제작하고 확장하도록 설계된다.
본 발명의 모든 목적, 특징, 장점은 첨부하는 상세한 설명으로부터 명백해질 것이다.
도 1a는 네트워크 프로세서 아키텍처가 동작할 수 있는 통상적인 통신 네트워크를 도시하는 도면,
도 1b는 네트워크 프로세서 아키텍처의 기본 요소의 블럭도,
도 2는 본 발명이 실시될 수 있는 바람직한 실시예의 컴퓨터 시스템의 블럭도,
도 3은 본 발명의 바람직한 실시예에 따른 네트워크 프로세서 서비스 아키텍처의 제어 프로세서 내에 있는 디바이스 드라이버의 기능 요소를 나타내는 고레벨 블럭도.
도면의 주요 부분에 대한 부호의 설명
300 : 소프트웨어 스택 301 : 네트워크 프로세서 디바이스 드라이버
303 : 운영 체제(OS) 305 : 디바이스 드라이버
307 : 고객 정의 서비스
309 : 데이터 인터페이스 관리자 서비스
311 : 네트워크 프로세서 관리자 서비스
313 : 네트워크 프로세서 테이블 서비스
315 : 네트워크 프로세서 디버그 서비스
317 : 네트워크 프로세서 큐 서비스
319 : 네트워크 프로세서 프로토콜 서비스
321 : 네트워크 프로세서 멀티캐스트 서비스
바람직한 이용 모드와 본 발명 자체의 후속하는 목적 및 장점은 첨부하는 도면과 함께 후속하는 예시적인 실시예의 상세한 설명을 참조함으로써 가장 잘 이해될 것이다.
본 발명은 다수의 상이한 운영 체제 하에서 실행되는 다양한 컴퓨터를 포함하는 다양한 시스템 내에서 실행될 수 있을 것이다. 이 컴퓨터는, 예를 들어, 퍼스널 컴퓨터, 네트워크 컴퓨터, 미드레인지 컴퓨터(a mid-range computer) 또는 메인프레임 컴퓨터(a mainframe computer)일 수 있다. 바람직한 실시예에서, 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN) 내에서 네트워크 프로세서 서비스 아키텍처의 제어 포인트로서 이용된다.
이제, 도 2를 참조하면, 본 발명의 바람직한 실시예에서 제어 프로세서로 사용될 수 있는 전형적인 컴퓨터 시스템(210)의 블럭도가 도시되어 있다. 도시한 바와 같이, 프로세서(CPU)(212), ROM(Read-Only Memory)(213), RAM(Random-Access Memory)(214)이 컴퓨터 시스템(210)의 시스템 버스(211)에 접속되어 있다. CPU(212), ROM(213), RAM(214)은 PCI 호스트 브리지(216)를 통해 컴퓨터 시스템(210)의 주변 요소 상호접속(Peripheral Component Interconnect : PCI) 로컬 버스(220)에도 접속되어 있다. PCI 호스트 브리지(216)는 버스 메모리 내의 임의 장소에 맵핑되는 PCI 디바이스 및/또는 입력/출력(I/O) 어드레스 공간을 프로세서(212)가 직접 액세스할 수 있도록 하는 저 지연 경로(a low latency path)를 제공한다. 또한, PCI 호스트 브리지(216)는 고 대역폭 경로를 제공하여 PCI 디바이스가 RAM(214)을 직접 액세스하도록 한다.
또한, PCI 로컬 버스(220)에는 통신 어댑터(215), 소형 컴퓨터 시스템 인터페이스(small computer system interface : SCSI)(218), 확장 버스 브리지(229)도 부착되어 있다. 통신 어댑터(215)는 컴퓨터 시스템(210)을 네트워크(217)에 접속하는 데 사용된다. SCSI(218)는 고속 SCSI 디스크 드라이브(219)를 제어하는 데 사용된다. PCI-ISA 버스 브리지와 같은 확장 버스 브리지(229)는 ISA 버스(225)를 PCI 로컬 버스(220)에 접속시키는 데 사용될 수 있다. 또한, 오디오 어댑터(223)는 스피커(224)를 통한 오디오 출력을 제어하기 위해 PCI 로컬 버스(220)에 부착된다. 본 발명의 다른 실시예에서는, 부가적인 주변 요소가 추가될 수도 있다.
컴퓨터 시스템(210)은 기계-판독가능 매체 내에 상주하는 운영 체제(OS) 및 그래픽 사용자 인터페이스(GUI)와 같은 인터페이스를 포함하여 컴퓨터 시스템(210)의 동작을 지휘할 수도 있다. 바람직한 실시예에서, OS(및 GUI)는 네트워크 프로세싱 요소가 OS 및/또는 플랫폼에 독립적이 되도록 하는 부가적인 기능 요소(additional functional components)를 포함한다. 임의의 적절한 기계-판독가능 매체로는 RAM(214), ROM(213), SCSI 디스크 드라이브(219), 기타 디스크 및/또는 테이프 드라이브(이를테면, 자기 디스켓, 자기 테이프, CD-ROM, 광 디스크, 또는 기타 적절한 저장 매체)와 같은 GUI 및 OS가 있다. 임의의 적절한 GUI와 OS가 CPU(212)를 감독할 수 있다.
나아가, 컴퓨터 시스템(210)은 기계 판독가능 매체 내에 상주하는 적어도 하나의 프로세서 서비스 아키텍처 소프트웨어 유틸리티(즉, 프로그램 제품), 예컨대, RAM(214) 내의 고객 정의 서비스 유틸리티(a custom defined service utility)(208)를 포함한다. 소프트웨어 유틸리티는 CPU(212) 상에서 실행될 때 본 발명의 수정된 OS와 상호작용하는 인스트럭션(또는 코드)을 포함하여 도 3에 도시한 적어도 하나의 기능 유틸리티 블럭에서 실행된다.
본 발명은 제어 프로세서 내의 디바이스 드라이버의 제어 기능이 이식가능하고 교환가능한 개별 기능 블럭 또는 유틸리티로서 생성되는 분산 네트워크 프로세서 서비스 아키텍처를 제공한다. 기능 블럭은 OS 및 하드웨어에 대한 독립성을 나타내는 네트워크 프로세서 서비스 아키텍처를 제공하도록 동작한다. 따라서, 본발명은 임의의 제어 프로세서 또는 운영 체제 환경에 적합한(또는 사용할 수 있는) 디바이스 드라이버 기능을 제공하여 네트워크 프로세서의 동작을 제어한다.
보다 상세하게, 본 발명은 분산 처리 시스템을 위한 디바이스 드라이버 프로그램을 제공한다. 디바이스 드라이버 프로그램은 소프트웨어 스택과 각각의 네트워크 프로세서 사이의 고레벨 양방향 통신을 제공하는 다수의 개별 시스템 서비스 프로그램(또는 유틸리티)을 포함한다. 본 발명은 개념상 소프트웨어로 구현되는데, 칩 또는 기타 컴퓨터 판독가능 매체 상에서 인코딩되며 네트워크 제어 포인트(또는 제어 프로세서)의 프로세서에 접속된다.
이제, 도 3을 참조하면, 다양한 프로세서 서비스를 개별 기능 요소 블럭으로 구현한 바람직한 실시예를 도시하고 있다. 도시한 바와 같이, 새로운 구성은 운영 체제로부터 제어 프로세서의 모든 시스템 서비스를 분리(또는 격리)시키고, 네트워크 프로세서 코드가 CP 상에 상주하도록 물리적 전송 서비스를 분리(또는 격리)시키며, 시스템 프로세서 서비스가 외부와 저레벨 애플리케이션 프로그래밍 인터페이스(Application Programming Interface : API) 사이에 상주하고 새로운 것으로 대체되거나 보충될 수 있다는 점에서 스케일러빌리티(scaleability)를 제공한다. 기능 요소들은 상호접속 라인에 의해 접속되는 블럭으로서 도 3에 도시되어 있다. 도시한 상호접속 라인 외에도 각각의 스케일러블 서비스는 서로 상호작용할 수 있다. 도시한 블럭 및 그 기능은 아래에서 설명하도록 한다.
도 3의 네트워크 프로세서 디바이스 드라이버(301)는 3 개 레벨 요소, 즉, 외부 API(305), 저레벨 API(323), 물리적 전송 인터페이스(339)를 갖는 것으로 도시되어 있다. 각각의 레벨 내에는 네트워크 프로세서 서비스를 나타내는 기능 블럭이 존재한다. 디바이스 드라이버(305)는 NP 하드웨어(343)를 소프트웨어 스택(300)에 부착하는 소프트웨어 요소이다. 디바이스 드라이버(305)는 네트워크 프로세서(343)와 소프트웨어 스택(300) 사이의 인터페이스 역할을 한다. 디바이스 드라이버(305)는 각각의 인터페이스를 인터페이스하는 데 필요한 데이터 구조를 초기화한다. 따라서, 바람직한 실시예에서, 디바이스 드라이버(305)는 각 네트워크 프로세서의 위치를 알아야 할 뿐 아니라 어느 포트가 어느 네트워크 프로세서 상에 있는지도 알아야 한다.
DD(305)는 상위층(upper layer) API, 내부 디바이스 드라이버, 저레벨 프리미티브(primitives)로 나눌 수 있다. 상위층 API는 프로세서의 일반적인 API와 유사하나, 내부 구조 및 저레벨 프리미티브는 독특한 요소이다. 하위층 프리미티브는 제어 경로 및 데이터 경로를 모두 제공한다. 디바이스 드라이버(DD)(305)는 다음 기능을 제공한다.
1. 소프트웨어 스택(300)에 의한 사용을 위한 디바이스 구조의 초기화.
2. CP 또는 캐리어 인터페이스 기능(carrier interface functions).
3. 프레임 수신 및/또는 송신 기능.
4. 제어 메시지 송신 및/또는 수신.
물리적 전송 서비스(physical transport services : PTS)(341)는 프레임을 네트워크 프로세서(343)로 전송한다. PTS(341)는 베이스 송신/수신(Send/Receive) API를 제공하여 데이터를 전송하고 네트워크 프로세서(343)로부터의 프레임과 네트워크 프로세서(343)로의 프레임을 제어한다. 이 요소는 네트워크 프로세서의 물리적 접속으로부터 고층 서비스를 격리한다. 예를 들어, 네트워크 프로세서(343) 내의 내장형 Power PC를 위한 PTS(341)는 이더넷 케이블을 경유하여 네트워크 프로세서에 접속되는 외장형 PowerPC를 위한 것과는 상이할 것이다. PTS(341)는 네트워크 프로세서(343), 네트워크 프로세서 전송 서비스(325), 운영 체제(OS)(303)에 접속된다.
네트워크 프로세서(343)는 제어 프로세서의 네트워크 프로세서 드라이버(301)에 접속된다. 각각의 네트워크 프로세서(103)는 다음 기능 중 하나 이상을 수행할 수 있는 프로그램가능한 통신 집적 회로(a programmable, communications integrated circuit)이다. (1) 패킷 분류(어드레스나 프로토콜과 같은 알려진 특성에 기초하여 패킷을 식별), (2) 패킷 수정(IP, ATM, 또는 기타 프로토콜에 부합하도록 패킷을 수정), (3) 큐 또는 정책(policy) 관리(패킷 큐잉, 큐잉해제(de-queuing), 특정 애플리케이션을 위한 패킷 스케쥴링), (4) 패킷 전달(스위치 구조를 통한 데이터의 전달 및 수신, 적절한 어드레스로의 패킷 전달 또는 라우팅). 네트워크 프로세서(343) 내에서 피코-코드(pico-code)는 가이드 셀 핸들러(Guided Cell Handlers : GCH)(375), 가이드 트리 핸들러(Guided Tree Handlers : GTH)(377), 일반 데이터 핸들러(General Data Handlers : GDH)(379) 상에서 실행된다. 이들 소프트웨어 요소는 시스템을 초기화하고, 전달 경로를 유지하며, 시스템을 관리하는 역할을 한다.
네트워크 프로세서(343)는 네트워크 프로세서 디바이스 드라이버(301)의 구조적 구성(즉, 독립적인 또는 개별화된 요소 블럭)에 대해 독립적으로 그리고 구조적 구성을 알 필요없이 동작한다. 모든 프레임과 제어 메시지 등은 물리적 전송 서비스(341)에 의해 네트워크 프로세서(343)로 전달되기 이전에 디바이스 드라이버(301) 내에서 번역(또는 디코딩)된다. 번역으로 인해 특정 네트워크 프로세서, 운영 체제(303), 내부 요소 블럭 사이의 끊김없는 통신이 가능하다. 마찬가지로, 네트워크 프로세서(343)로부터 수신한 임의의 프레임은 네트워크 프로세서 디바이스 드라이버(301)의 일반적인 서비스 유틸리티 블럭에 의해 사용되도록 트랜스코딩(transcode)된다.
동작 중에, 제어 프로세서는 제어 메시징 프로토콜(a control messaging protocol)을 이용하여 각각의 NP(343)와 통신한다. NP 저레벨 및 외부 API(323, 305)의 소프트웨어 아키텍처는 브리징(bridging), 라우팅, ATM, 다수층 스위칭을 지원한다. 네트워크 프로세서(343)의 초기화 단계에서는 프로세서 칩의 레지스터 및 메모리 영역을 셋업하고 GCH(375)를 위한 코드를 로딩한다. GCH(375)는 프레임 처리를 개시하도록 칩을 준비시킨다. 이를 구현하기 위해, 각각의 입력 프레임을 전달하는 데 사용되는 코드 인스트럭션을 포함하는 피코-코드가 칩 상으로 로딩된다.
네트워크 프로세서 전송 서비스(325)는 물리적 전송 서비스(341) 위에 위치하고 특정 네트워크 프로세서 제어 및 데이터 캡슐화(data encapsulation) 프로세싱을 처리한다. 네트워크 프로세서 전송 서비스(341)는 다음 요소 블럭을 더 포함한다.
(1) 물리적 전송 서비스(341)로의 접속을 위한 인터페이스인 로(raw)(333).
(2) NP(343)로 전달되고 NP(343)로부터 전달되는 제어 및 데이터 프레임을 캡슐화 및 캡슐해제(de-encapsulate)하는 프로세싱 박스(멀티플렉서)인 멀티플렉서/디멀티플렉서(Mux/Demux)(331).
(3) 네트워크 프로세서 유형에 맞도록 수정될 수 있는 일반 데이터 프레임을 나타내는 데이터(327).
(4) 네트워크 프로세서(343)의 상태를 유지하도록 수정되고 이용되는 일반적 내부 제어 메시지인 제어부(또는 제어 메시지 서비스)(329).
제어 메시지 서비스(329)는 예컨대, 기본 네트워크 프로세서 초기화, 구성, 코드 로딩, 이벤트 통지(event notification), 디버거(debugger), 진단(diagnostic), 소프트웨어 동작 서비스를 제공한다. 제어 서비스(329)로부터 하나 이상의 네트워크 프로세서(343)가 주어진 시스템 내에서 제어될 수 있다.
제어 메시지 포매팅 서비스(337)는 저레벨 API(323) 내에 위치하며 외부 API(305), OS(303), 소프트웨어 스택(300), 네트워크 프로세서 자원 서비스(335)에 접속된다. 제어 메시지 포매팅 서비스(337)는 제어 프로세서와 네트워크 프로세서(343) 사이에서 제어 메시지를 교환하는 데 사용되는 메시지 프로토콜이다. 제어 메시지 포매팅 서비스(337)는 디바이스 드라이버(301) 내의 인터프리터(interpreter)로서 동작한다. 제어 메시지 포매팅 서비스(337)는 다양한 요소의 모든 저레벨 및 고레벨 API를 네트워크 프로세서(343)에 의해 사용되는 특정 언어로 변환한다. 바람직한 실시예에서, 제어 메시지 포매팅 서비스(337)는 OS 또는 하드웨어 고유의 요청을 임의의 OS 또는 하드웨어에 적용할 수 있고 다른 요소에 의해 이해될 수 있는 일반적인 요구로 변환하거나 그 역의 역할을 한다.
네트워크 프로세서 디바이스 드라이버(301)의 기본적인 이식 기능(portable functional) 유틸리티는 외부 API(305) 내에 존재한다. 이들 기능 유틸리티는 컴퓨터 시스템의 RAM 내에 로딩되며 컴퓨터 판독가능 매체를 통해 액세스할 수 있는 펌웨어(firmware) 또는 소프트웨어로서 존재할 수 있다. 외부 API(305)는 네트워크 프로세서(343)의 하부 특징부(underlying feature)로의 액세스 및 하부 특징부에 대한 제어를 제공한다. 네트워크 프로세서 서비스 API는 각각의 네트워크 프로세서 서브시스템 내에서 제공되는 서비스를 나타내며, 하나 이상의 부가적인 서브시스템을 제어하기 위한 공통 베이스(a common base)로서 이용될 수 있다. 외부 API(305)의 기능 블럭 또는 유틸리티 및 이들의 각 기능은 아래에서 제공된다.
고객 정의 서비스(307)는 고유 네트워크 요구에 기초하여 고객이나 개발자에 의해 부가될 수 있는 새로운 요소를 나타낸다. 이러한 요소는 본 발명에 따라 구현되는 프로세서 서비스 아키텍처의 스케일러빌리티(scalability)를 상당히 개선시킬 것이다. 따라서, 네트워크 설계, 고객의 요구 및/또는 개발자의 선호도에 기초하여 도 3에 도시한 외부 API(305)를 확장하거나 대체하도록 다른 유틸리티를 포함할 수도 있다. 상세한 설명에서 제시하고 설명한 API는 설명을 위해서만 주어진 것이며 본 발명을 제한하려는 의도는 아니다.
인터페이스 관리자 서비스(309)는 개발자에 의해 이용되어 프로토콜 스택과 인터페이스하는 매체 포트(media port)(예컨대, 이더넷, POS, ATM)를 생성하고 구성하는데 개발자에 의해 활용될 수 있다.. 이들 포트는 네트워크 내에서 데이터를 관리, 송신, 수신하는 시스템 상의 커넥터(connector)이다. 이어서, 데이터는 네트워크 프로세서(343)에 의해 처리된다. 바람직한 실시예에서, 인터페이스 관리자 서비스(309)는 네트워크 프로세서(343)와 통합하기 위한 2 가지 부가적인 특징부를 제공한다. 첫 번째 특징부는 시스템 자체로부터 기원하고 시스템 자체를 향하는 프레임을 수신하고 송신하는 논리적 인터페이스의 생성을 허용한다. 이러한 인터페이스의 예로는 텔넷(Telnet), 파일 전달 프로토콜(file transfer protocol : FTP), 단순 네트워크 관리 프로토콜(simple network management protocol : SNMP) 세션(sessions)이 있다. 두 번째 특징부는 네트워크 프로세서 기반 시스템의 인-밴드(in-band) 전달 서비스를 이용하는 시스템을 위한 범용 프로세서 중에서 프로세스간 통신(interprocess communication : IPC)을 위한 고속, 고 신뢰도, 고 대역폭 통신 파이프를 제공한다.
테이블 서비스(313)는 네트워크 프로세서(343) 상의 전달 및/또는 제어 정보의 데이터베이스이다. 네트워크 프로세서(343)는 풀 매치(full match), 최장 프레픽스 매치(longest prefix match), 멀티필드 분류 트리(multifield classification trees)를 근본적으로 지원한다. 테이블 서비스 API(313)는 애플리케이션에 대해 독립적인 각각의 테이블 유형 관리 방식을 제공한다. 테이블 관리는 생성, 초기화, 제거 및 기본 삽입, 삭제, 갱신, 문의 동작으로 이루어진다. 테이블 서비스(313)는 하나 이상의 네트워크 프로세서(343)로 제어 및 토폴로지(topology) 정보를 배포하는 애플리케이션을 개발하는 데 사용될 수 있다.
네트워크 프로세서(343)는 기본 칩 동작 및 개선된 스케쥴링 기능을 위해 사용되는 다수의 큐를 포함한다. 큐 서비스 API(317)는 이들 큐가 임계치를 설정 및 모니터하고, 최소 및 최대 대역폭을 보장하며, 동적 큐를 생성하고 초기화하도록 한다. 큐 서비스(317)는 네트워크 프로세서(343) 상에서 실행되는 네트워크 소프트웨어의 버전 및 차별화된 서비스, ATM, 흐름 제어와 같은 어드레스 이슈에 따라 변할 수 있다. 인터페이스 관리자 서비스(309)와 같이, 큐 서비스 API(317)는 애플리케이션 스택(300)과 인터페이스하도록 설계된다.
프로토콜 서비스 API(319)는 브리징, IP, MPLS와 같이 네트워크 프로세서(343)가 배치를 위해 이용되는 주지의 프로토콜에 대한 프로토콜 스택 인터페이스를 제공한다. 그 예로는 IP 전달 테이블 및 ARP 테이블 관리를 포함하는 IP 프로토콜 API가 있다. 프로토콜 서비스 API(319)는 프로토콜 전달 코드의 습성을 제어하기 위해 API를 제공한다. 이를테면, API는 전달 엔트리가 존재하지 않을 때 코드가 취해야 하는 디폴트 동작을 제어할 수 있다. 이러한 능력으로 인해 개발자는 네트워크 프로세서 코드의 로딩 기능을 수정할 필요 없이 네트워크 프로세서(343)를 프로그램할 수 있게 된다.
네트워크 프로세서 멀티캐스트 서비스 API(321)는 네트워크 프로세서(343) 내의 멀티캐스트 자원을 할당하는 방법을 제공한다. 이들 멀티캐스트 자원은 패킷이 네트워크 프로세서(343)로부터 스위치 구조로, 그리고 네트워크 프로세서(343)로부터 부착된 매체 포트로 복제되는 방법을 규정한다.
서로 다른 운영 체제 사이에서의 이식성(portability)을 위해, 네트워크 프로세서 서비스는 목표 운영 체제(targeted operating system)(303)의 본래 API 서비스에 맵핑되는 시스템 서비스 API(또는 OS) 세트에 의존한다. 시스템 서비스 API(322)는 OS(303) 및 디바이스 드라이버(301)와 제휴하여 다양한 외부 API(305) 등의 동적 이식성을 제공하도록 동작함으로써 네트워크 프로세서 디바이스 드라이버(301)의 현재 하드웨어, 펌웨어, 소프트웨어 구조 내에서 동작한다. 따라서, 본 발명은 이러한 하나의 요소만을 수정함으로써 네트워크 프로세서 서비스 요소를 용이하게 포트(port)하는 방법을 제공한다. 시스템 서비스 API(322)는 OS(303) 및 프로세서 고유의 특정 코드를 변환함으로써 OS(303) 및 프로세서 독립성을 허용한다.
운영 체제(303)는 3 개 레벨 모두로 연장되고 각 레벨 및 각 기능 블럭과 직접 또는 간접적으로 상호작용한다. 네트워크 프로세서 서비스 API(305)가 하드웨어 아키텍처 및 운영 체제에 대해 독립적이 되도록 설계되더라도, OS 제어 및/또는 상호작용을 필요로 하는 각각의 기능 블럭은 OS(303)와 통신할 수 있을 필요가 있다.
본 발명은 범용 프로세서를 위한 네트워크 프로세서 서비스를 개별 기능 요소 블럭으로 분해하여, 네트워크 프로세서 서비스가 운영 체제 및 하드웨어 (프로세서)에 대해 독립적이 되도록 한다. 본 발명은 네트워크 프로세서를 관리하는 고유 디바이스 드라이버 메커니즘을 제공함으로써 네트워크 인터페이스를 관리하는 방법과 기존 및 새로운 인터페이스를 갖는 시스템으로 서비스를 분해하고 맞추는 방법을 결정하는 문제를 해결한다. 기능 요소 블럭을 이용함으로써 인터프리터 유틸리티와 시스템 서비스 유틸리티 또는 OS와 함께 일반 서비스 및 층을 이용하여 보다 유연하게 새로운 요소를 추가하거나 제거할 수 있게 되었다. 당업자는 이전에 결합되어 있던 네트워크 층을 요소 블록으로 분해하고 고객의 요구 또는 네트워크 개발 디자인에 기초하여 부가적인 기능 유틸리티를 추가하도록 하는 데에 본질적인 이점(가치)이 있음을 이해할 것이다.
또한, 본 발명이 완전히 동작하는 컴퓨터 시스템의 맥락에서 설명되었지만 당업자는 본 발명의 메커니즘이 다양한 형태의 프로그램 제품으로 유통될 수 있다는 점 및 실제로 유통을 수행하는 데 사용되는 신호 전달 매체(signal-bearing media)의 구체적인 유형과 무관하게 본 발명이 적용될 수 있다는 점을 이해할 것이라는 점에 유의하는 것도 중요하다. 신호 전달 매체의 예로는 플로피 디스크나 CD ROM과 같은 기록가능형 매체, 아날로그 또는 디지털 통신 링크와 같은 전달형 매체가 있다.
본 발명이 바람직한 실시예를 이용하여 구체적으로 도시되고 설명되었지만, 당업자는 본 발명의 사상과 범주를 벗어나지 않는 범위 내에서 형태 및 세부 사항에 있어 다양한 변형이 가능하다는 것을 이해할 것이다.
본 발명에 의하면, 하드웨어 및 운영 체제에 대해 독립적인 방식으로 구현될 수 있는 네트워크 프로세서 서비스 아키텍처에 따라 보다 유연한 네트워크 프로세서 제품 모델이 제공된다.

Claims (20)

  1. 네트워크 프로세서 서비스 아키텍처(a network processor services architecture)의 제어 시스템 내에 스케일러블 디바이스 드라이버 서비스(scalable device driver services)를 제공하는 방법에 있어서,
    원하는 네트워크 프로세서 기능성(a desired network processor functionality)을 결정하는 것에 응답하여, 각각 다수의 네트워크 프로세서 서비스 각각을 제공하는 다수의 기능 요소(a plurality of functional components)를 로딩하는 로딩 단계와,
    상기 다수의 기능 요소와 상기 제어 시스템의 운영 체제(an operating system : OS) 사이에 개입되어 상기 다수의 기능 요소에 대한 OS 독립형 통신 인터페이스(an OS independent communication interface)를 제공하는 적어도 하나의 유틸리티를 제공하는 제공 단계와,
    상기 제어 시스템에서의 패킷 수신에 응답하여 상기 유틸리티를 통해 상기 패킷을 우선 라우팅함으로써 상기 다수의 기능 요소 중 하나를 이용하여 상기 패킷을 처리하되, 상기 패킷은 상기 OS 및 상기 다수의 기능 요소 중 상기 하나에 의해 이해될 수 있는 공통 코드로 디코딩되는 처리 단계
    를 포함하는 스케일러블 디바이스 드라이버 서비스 제공 방법.
  2. 제 1 항에 있어서,
    상기 로딩 단계는 디바이스 드라이버의 물리적 전송 인터페이스(physical transport interface), 외부 애플리케이션 프로그래밍 인터페이스(application programming interfaces : APIs), 저레벨 API를 로딩하는 단계를 포함하는 스케일러블 디바이스 드라이버 서비스 제공 방법.
  3. 제 2 항에 있어서,
    고객이 원하는 네트워크 서비스를 포함하는 상기 외부 API 내에, 상기 네트워크 프로세서 서비스 아키텍처 내에서 동작가능한 고객 정의가능 서비스 요소(a customer definable service component)를 로딩하는 단계를 더 포함하는 스케일러블 디바이스 드라이버 서비스 제공 방법.
  4. 제 1 항에 있어서,
    상기 제공 단계는 상기 유틸리티와 상기 운영 체제 사이의 양방향 접속(a bi-directional connection), 하나 이상의 네트워크 프로세서, 상기 각각의 기능 요소를 제공하는 단계를 포함하는 스케일러블 디바이스 드라이버 서비스 제공 방법.
  5. 제 1 항에 있어서,
    상기 제공 단계는 상기 운영 체제에 시스템 서비스 유틸리티 - 상기 시스템 서비스 유틸리티는 상기 기능 요소가 상기 OS와 통신하도록 동작함 - 를 링크하는 단계를 더 포함하는 스케일러블 디바이스 드라이버 서비스 제공 방법.
  6. 제 1 항에 있어서,
    상기 제공 단계는 번역 유틸리티(a translation utility) - 상기 번역 유틸리티는 모든 입력 및 출력 서비스 요청을 공통 네트워크 프로세서 언어로 번역하여 상기 하나 이상의 네트워크 프로세서, 상기 운영 체제, 상기 기능 요소 사이의 끊김없는(seamless) 접속 및 통신을 허용함으로써 네트워크 패킷 처리를 가능하게 함 - 를 더 제공하는 스케일러블 디바이스 드라이버 서비스 제공 방법.
  7. 제 1 항 내지 6 항 중 어느 한 항에 따른 방법을 컴퓨터에서 구현하는 프로그램을 기록한 컴퓨터 판독가능한 기록 매체.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 네트워크 프로세서 서비스 아키텍처의 제어 시스템에 있어서,
    상기 제어 시스템의 디바이스 드라이버 내에 있으며, 각각 네트워크 프로세서 서비스를 나타내는 다수의 개별 로딩가능 기능 요소(a plurality of individually loadable functional components)와,
    상기 각각의 기능 요소가 상기 제어 시스템의 운영 체제와 통신하도록 하는 적어도 하나의 유틸리티 - 상기 유틸리티는 네트워크 프로세서 기능을 수행하라는 상기 OS에 의한 요청의 수신에 응답하여, 상기 요청을 하나 이상의 네트워크 프로세서의 상기 네트워크 프로세서 서비스를 관리하는 상기 다수의 기능 요소 중 특정한 하나의 기능 요소의 호출로 번역함 - 와,
    상기 OS, 상기 유틸리티, 상기 기능 요소를 실행하는 프로세싱 하드웨어
    를 포함하는 네트워크 프로세서 서비스 아키텍처 제어 시스템.
  14. 제 13 항에 있어서,
    상기 다수의 기능 요소는 디바이스 드라이버의 물리적 전송 인터페이스, 외부 애플리케이션 프로그래밍 인터페이스, 저레벨 API를 포함하는 네트워크 프로세서 서비스 아키텍처 제어 시스템.
  15. 제 14 항에 있어서,
    고객이 원하는 네트워크 서비스를 포함하는 상기 외부 API 내에, 상기 네트워크 프로세서 서비스 아키텍처 내에서 동작가능한 고객 정의가능 서비스 요소를 더 포함하는 네트워크 프로세서 서비스 아키텍처 제어 시스템.
  16. 제 13 항에 있어서,
    상기 유틸리티는 상기 운영 체제에 접속되는 시스템 서비스 유틸리티 - 상기 시스템 서비스 유틸리티는 상기 개별 소프트웨어 코딩 요소가 상기 OS와 통신하도록 동작함 - 를 더 포함하는 네트워크 프로세서 서비스 아키텍처 제어 시스템.
  17. 제 13 항에 있어서,
    상기 유틸리티는 모든 입력 및 출력 서비스 요청을 공통 네트워크 프로세서 언어로 번역하여 상기 하나 이상의 네트워크 프로세서, 상기 운영 체제, 상기 기능 요소 사이의 끊김없는 접속 및 통신을 허용함으로써 네트워크 패킷 처리를 가능하게 하는 번역 유틸리티를 포함하는 네트워크 프로세서 서비스 아키텍처 제어 시스템.
  18. 하나 이상의 네트워크 프로세서와,
    상기 하나 이상의 네트워크 프로세서에 접속되어, 상기 하나 이상의 네트워크 프로세서와의 상호작용을 제어하는 스케일러블 디바이스 드라이버를 구비하는 제어 시스템을 포함하되,
    상기 스케일러블 디바이스 드라이버는 네트워크 프로세싱을 위한 다수의 기능 요소를 포함하는 다수의 개별 기능 소프트웨어 요소, 상기 다수의 기능 요소와 상기 하나 이상의 네트워크 프로세서 사이의 호환(compatibility)을 가능하게 하여 임의의 프로세서 유형 내에서도 효율적으로 통신하고 상호작용하게 하는 변환 유틸리티(a conversion utility), 상기 제어 시스템과 상기 하나 이상의 네트워크 프로세서 사이에서의 프레임 및 제어 정보 전달을 달성하는 OS를 포함하는
    네트워크 프로세싱 서비스 제공 장치.
  19. 제 18 항에 있어서,
    상기 하나 이상의 네트워크 프로세서에 접속되는 스위치 구조(a switch fabric)를 더 포함하는 네트워크 프로세싱 서비스 제공 장치.
  20. 분산 프로세싱 시스템용 디바이스 드라이버 프로그램이 기록된 기록 매체에 있어서,
    상기 프로그램은
    네트워크 전송 관리자(a network transport manager), 네트워크 자원 관리자 및 제어 메시지 포매터(a control message formatter)의 각각과 공통 코드 프로그램 사이에 고레벨 양방향 통신을 제공하는 다수의 시스템 서비스를 포함하되,
    상기 네트워크 전송 관리자는 물리적 전송 프로세서로의 저레벨 양방향 통신을 제공하고, 상기 물리적 전송 프로세서는 하나 이상의 네트워크 프로세서로의 프리미티브 양방향 통신(primitive bi-directional communication)을 제공하는
    기록 매체.
KR10-2001-0012156A 2000-04-10 2001-03-09 스케일러블 디바이스 드라이버 서비스 제공 방법 및 이를 기록한 기록 매체, 네트워크 프로세서 서비스 제공 장치 및 그 제어 시스템, 분산 프로세싱 시스템용 디바이스 드라이버 프로그램이 기록된 기록 매체 KR100387544B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/546,133 2000-04-10
US09/546,133 US6880158B1 (en) 2000-04-10 2000-04-10 Network processor services architecture that is platform and operating system independent

Publications (2)

Publication Number Publication Date
KR20010091013A KR20010091013A (ko) 2001-10-22
KR100387544B1 true KR100387544B1 (ko) 2003-06-18

Family

ID=24179014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0012156A KR100387544B1 (ko) 2000-04-10 2001-03-09 스케일러블 디바이스 드라이버 서비스 제공 방법 및 이를 기록한 기록 매체, 네트워크 프로세서 서비스 제공 장치 및 그 제어 시스템, 분산 프로세싱 시스템용 디바이스 드라이버 프로그램이 기록된 기록 매체

Country Status (7)

Country Link
US (1) US6880158B1 (ko)
EP (1) EP1161045B1 (ko)
JP (1) JP2001325203A (ko)
KR (1) KR100387544B1 (ko)
AT (1) ATE317619T1 (ko)
DE (1) DE60117063D1 (ko)
TW (1) TW561352B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892377B1 (en) * 2000-12-21 2005-05-10 Vignette Corporation Method and system for platform-independent file system interaction
US7080271B2 (en) 2003-02-14 2006-07-18 Intel Corporation Non main CPU/OS based operational environment
US7276351B2 (en) * 2003-09-10 2007-10-02 Seahorse Bioscience Method and device for measuring multiple physiological properties of cells
US8658349B2 (en) * 2006-07-13 2014-02-25 Seahorse Bioscience Cell analysis apparatus and method
US20070087401A1 (en) * 2003-10-17 2007-04-19 Andy Neilson Analysis of metabolic activity in cells using extracellular flux rate measurements
US7325239B2 (en) * 2003-11-12 2008-01-29 International Business Machines Corporation Method and system of generically managing tables for network processors
US7698383B2 (en) 2004-02-27 2010-04-13 Research In Motion Limited System and method for building component applications using metadata defined mapping between message and data domains
US7774365B2 (en) 2004-08-31 2010-08-10 Morgan Stanley Organizational reference data and entitlement system
KR100653179B1 (ko) 2004-12-17 2006-12-04 한국전자통신연구원 플랫폼 동적 업그레이드 기능을 가지는 무선통신단말기 및그 방법
US20080222659A1 (en) * 2007-03-09 2008-09-11 Microsoft Corporation Abstracting operating environment from operating system
US7945918B2 (en) * 2007-06-29 2011-05-17 International Business Machines Corporation Generalized WBEM/CIM indication provider simulation engine
US8060891B2 (en) * 2007-06-29 2011-11-15 Microsoft Corporation Management of external hardware appliances in a distributed operating system
US8202702B2 (en) 2008-10-14 2012-06-19 Seahorse Bioscience Method and device for measuring extracellular acidification and oxygen consumption rate with higher precision
JP6326058B2 (ja) 2012-11-13 2018-05-16 アジレント・テクノロジーズ・インクAgilent Technologies, Inc. 制御された媒体流動上での三次元組織測定のための装置、インサート、および方法
CN106471465B (zh) 2014-04-09 2019-10-22 康维达无线有限责任公司 服务启用器功能
EP3689467A1 (en) 2014-06-02 2020-08-05 Agilent Technologies, Inc. Single column microplate system and carrier for analysis of biological samples
CN106815086B (zh) * 2017-01-13 2020-04-14 邦彦技术股份有限公司 一种基于龙芯平台的通信控制装置
US20230214388A1 (en) * 2021-12-31 2023-07-06 Fortinet, Inc. Generic tree policy search optimization for high-speed network processor configuration

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9307647D0 (en) 1993-04-14 1993-06-02 Plessey Telecomm Telecommunications swith control
US6009476A (en) * 1995-11-21 1999-12-28 Diamond Multimedia Systems, Inc. Device driver architecture supporting emulation environment
CA2184000A1 (en) 1996-01-25 1997-07-26 Terence M. Kelleher Serial driver interface for modular i/o software architecture
JP3177679B2 (ja) 1997-02-14 2001-06-18 日本電信電話株式会社 インテリジェントネットワークのオペレーションシステム
JP3709964B2 (ja) 1998-09-21 2005-10-26 日本電信電話株式会社 トラヒック測定方式
US6604136B1 (en) * 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
JP2000032132A (ja) 1998-07-10 2000-01-28 Nec Corp 顧客管理システム−通信インフラ間のインタフェース装置

Also Published As

Publication number Publication date
US6880158B1 (en) 2005-04-12
TW561352B (en) 2003-11-11
KR20010091013A (ko) 2001-10-22
DE60117063D1 (de) 2006-04-20
JP2001325203A (ja) 2001-11-22
ATE317619T1 (de) 2006-02-15
EP1161045A2 (en) 2001-12-05
EP1161045B1 (en) 2006-02-08
EP1161045A3 (en) 2004-02-04

Similar Documents

Publication Publication Date Title
KR100387544B1 (ko) 스케일러블 디바이스 드라이버 서비스 제공 방법 및 이를 기록한 기록 매체, 네트워크 프로세서 서비스 제공 장치 및 그 제어 시스템, 분산 프로세싱 시스템용 디바이스 드라이버 프로그램이 기록된 기록 매체
US11736566B2 (en) Using a NIC as a network accelerator to allow VM access to an external storage via a PF module, bus, and VF module
US11593278B2 (en) Using machine executing on a NIC to access a third party storage not supported by a NIC or host
US8645952B2 (en) Method for providing location independent dynamic port mirroring on distributed virtual switches
CN102652305B (zh) 虚拟存储目标卸载技术
US8171500B2 (en) System and method for supporting multiple users
US7594049B1 (en) Application program interface access to hardware services for storage management applications
US7757033B1 (en) Data exchanges among SMP physical partitions and I/O interfaces enterprise servers
US10037224B2 (en) System and method for nested hypervisors and layer 2 interconnection
WO2020135542A1 (zh) 云计算数据中心系统、网关、服务器及报文处理方法
US7286544B2 (en) Virtualized multiport switch
US20040267866A1 (en) Virtual machine connection to a tangible network
US20030037180A1 (en) System and method to uniformly access devices
JP7251648B2 (ja) サーバ内遅延制御システム、サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム
US7624156B1 (en) Method and system for communication between memory regions
US6965911B1 (en) Efficiently exporting local device access onto a system area network using a direct-call interface
WO2021103657A1 (zh) 网络操作方法、装置、设备和存储介质
US20210006511A1 (en) Software-controlled active-backup mode of link aggregation for rdma and virtual functions
US20220283866A1 (en) Job target aliasing in disaggregated computing systems
US20060253861A1 (en) API interface to make dispatch tables to match API routines
US7843961B2 (en) Hardware device emulation
WO2022183796A1 (zh) 一种创建网络服务ns的方法及相关装置
CN117041147A (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
LAPS Lapse due to unpaid annual fee