KR101745846B1 - 다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱 - Google Patents

다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱 Download PDF

Info

Publication number
KR101745846B1
KR101745846B1 KR1020167012264A KR20167012264A KR101745846B1 KR 101745846 B1 KR101745846 B1 KR 101745846B1 KR 1020167012264 A KR1020167012264 A KR 1020167012264A KR 20167012264 A KR20167012264 A KR 20167012264A KR 101745846 B1 KR101745846 B1 KR 101745846B1
Authority
KR
South Korea
Prior art keywords
mac
data
computing device
data frame
host computing
Prior art date
Application number
KR1020167012264A
Other languages
English (en)
Other versions
KR20160060147A (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 KR20160060147A publication Critical patent/KR20160060147A/ko
Application granted granted Critical
Publication of KR101745846B1 publication Critical patent/KR101745846B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L29/10
    • H04L29/12
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Abstract

적어도 두 개의 미디어 액세스 제어기를 갖는 디바이스에 대한 예들이 개시된다. 일부 예들에서, 제1 미디어 액세스 제어기는 호스트 컴퓨팅 디바이스에 결합될 수 있다. 제2 미디어 액세스 제어기는 제1 미디어 액세스 제어기를 통해 전달되고/전달되거나 제2 미디어 액세스 제어기를 통해 전달되는 하나 이상의 데이터 프레임에 대한 데이터 페이로드들의 패킷 프로세싱을 수행하도록 구성된 하나 이상의 프로세서 회로에 결합될 수 있다. 제1 미디어 액세스 제어기는 통신 링크를 통해 제2 미디어 액세스 제어기에 결합될 수 있다. 다른 예들이 개시되고 청구된다.

Description

다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱{PACKET PROCESSING OF DATA USING MULTIPLE MEDIA ACCESS CONTROLLERS}
종종 "클라우드 컴퓨팅(cloud computing)"이라고 지칭되는 호스팅 서비스들은 인터넷과 같은 상호접속된 네트워크들을 통해 소프트웨어, 저장소 및 컴퓨팅 기반구조 서비스들을 제공할 수 있다. 일부 예들에서, 클라우드 서비스 제공자들은 데이터 센터 또는 서버 팜(server farm)들의 테넌트들(tenants)을 호스팅한다. 이러한 데이터 센터들 또는 서버 팜들은, 테넌트들이 하나 이상의 호스트 컴퓨팅 디바이스에 의해 지원되거나 하나 이상의 호스트 컴퓨팅 디바이스 상에서 실행하는 다수의 소프트웨어 인스턴스를 갖게 할 수 있는 다수의 컴퓨팅 플랫폼 또는 호스트 컴퓨팅 디바이스를 포함할 수 있다. 일부 클라우드 아키텍처들에서, 단일 서버 또는 호스트 컴퓨팅 디바이스는 호스트 컴퓨팅 디바이스 상에 유지되는 하나 이상의 프로세서 및 다른 컴퓨팅 자원들을 이용하여 구현된 가상 머신(virtual machine)(VM)들의 다수의 테넌트를 호스팅할 수 있다.
본 발명의 배경이 되는 기술은 미국 특허출원공개공보 US2008-0310432호(2008.12.18), 미국 특허 US 7,724,683호(2010.05.25), 미국 특허 US 7,545,773호(2009.06.09), 및 미국 특허출원공개공보 US2010-0306358호(2010.12.02) 등에 개시되어 있다.
도 1은 예시적인 제1 시스템을 예시한다.
도 2는 예시적인 제2 시스템을 예시한다.
도 3은 데이터 관리자에 대한 예시적인 아키텍처의 블록도를 예시한다.
도 4는 예시적인 제3 시스템을 예시한다.
도 5는 예시적인 제1 프로세스를 도시한다.
도 6은 예시적인 제2 프로세스를 도시한다.
도 7은 예시적인 제3 프로세스를 도시한다.
도 8은 예시적인 제4 프로세스를 도시한다.
도 9는 호스트 컴퓨팅 디바이스로부터 데이터 프레임을 수신하는 예시적인 흐름도를 예시한다.
도 10은 네트워크 통신 채널을 통해 데이터 프레임을 수신하는 예시적인 흐름도를 예시한다.
본 개시내용에서 고려된 바와 같이, 일부 클라우드 아키텍처에서, 단일 서버 또는 호스트 컴퓨팅 디바이스는 호스트 컴퓨팅 디바이스 상에 유지되는 하나 이상의 프로세서 또는 다른 컴퓨팅 자원들을 이용하여 구현된 가상 머신(VM)들의 다수의 테넌트를 호스팅할 수 있다. 일부 예들에서, 클라우드 서비스 제공자들은 다양한 테넌트들에 의해 사용되는 자원들을 프로비저닝하고(provision), 분리하고 그리고 (청구를 위해) 계량해야 할 수 있다. 클라우드 서비스 제공자들은 물리적 네트워크에 오버레이(overlay)되는 가상 네트워크들을 생성함으로써 이러한 서비스들 중 적어도 일부를 제공할 수 있다. 이러한 예들에 대해서, 가상 네트워크들은 클라우드 서비스 제공자들에 의해 통상적으로 소유되고 관리되는 하이퍼바이저(hypervisor) 또는 가상 머신 관리자(VMM) 내의 소프트웨어 컴포넌트를 통해 달성될 수 있다.
물리적 네트워크에 오버레이되는, 호스트 컴퓨팅 디바이스에서의 가상 네트워크를 생성하기 위해 소프트웨어 컴포넌트들을 유지하는 것으로부터 여러가지 단점이 발생할 수 있다. 예를 들어, 이러한 목적에 사용된 소프트웨어 모듈들은, 수신되거나 테넌트들에 전달된 데이터에 대한 데이터 경로에 존재하기 때문에 상당한 양의 컴퓨팅 자원들을 소비한다. 또한, 클라우드 서비스 제공자들은 VM이 VMM을 바이패스하게 하는 단일 루트 입력/출력(I/O) 가상화(single root input/output virtualization)(SR-IOV)를 이용하는 그러한 방식을 활용할 수 없을 수 있다. 또한, 가상 네트워크를 지원하는데 사용되는 네트워크 패킷 형식들(예를 들어, 터널 형식들(tunnel formats))의 본질에 기인하여, 기존의 네트워크 인터페이스 카드(NIC) 기반 패킷 프로세싱 오프로드(offload)들은 가능한 광범위한 터널 형식 및 때로는 사유 터널 형식을 고려하면 실용적이지 않을 수 있다. 대부분의 기존 네트워크 패킷 프로세싱 오프로드들이 비-터널링된(non-tunneled) 패킷에 기반하고 있기 때문에 NIC 기반 패킷 프로세싱 오프로드들은 가능하지 않을 수 있다.
다른 단점들은, 클라우드 서비스 제공자들이 그들의 핵심 노하우로서 모니터링, 분리 및 계량 소프트웨어를 다루고, 그들이 이러한 지식을 개시하는 것을 거부 또는 거절하는 것에 관련된다. 모니터링, 분리 및 계량 소프트웨어를 개시하는 것에 대한 이러한 거부 또는 거절은 NIC들과 같은 네트워크 I/O 디바이스들의 제조자들이 클라우드 컴퓨팅 환경에서 작동하는 보다 효율적인 I/O 디바이스를 설계하는 것을 어렵게 한다. 또한, 전술한 바와 같이, VMM에서 가상 네트워크들을 유지하는 것은 다량의 컴퓨팅 자원들을 이용한다. 다량의 컴퓨팅 자원을 이용하면 클라우드 서비스 제공자들이 그들의 테넌트들에 더 적은 컴퓨팅 자원을 제공하는 것을 야기한다.
호스트 컴퓨팅 디바이스와 네트워크 사이에 결합된 I/O 디바이스에서 수신되거나 또는 그로부터 송신된 데이터의 패킷 프로세싱을 위한 다수의 미디어 액세스 제어기들을 포함하는 예시적인 디바이스들이 개시된다. 예시적인 디바이스들은 호스트 컴퓨팅 디바이스에 전달되거나 또는 그로부터 전달된 데이터의 패킷 프로세싱을 수행하도록 구성된 하나 이상의 프로세서 회로를 포함할 수 있다. 예시적인 디바이스들은 하나 이상의 프로세서 회로에 결합되고 또한 네트워크 통신 채널에 결합된 제1 미디어 액세스 제어기를 또한 포함할 수 있다. 예시적인 디바이스들은 호스트 컴퓨팅 디바이스에 결합되는 제2 미디어 액세스 제어기 및 제1 미디어 액세스 제어기를 제2 미디어 액세스 제어기에 결합하는 통신 링크를 또한 포함할 수 있다.
도 1은 예시적인 제1 시스템을 예시한다. 도 1에 도시된 바와 같이, 제1 시스템은 시스템(100)으로서 도시된다. 일부 예들에서, 시스템(100)은 네트워크 통신 채널(180)을 통해 네트워크(160)에 결합되고, 통신 링크(190)을 통해 호스트 컴퓨팅 디바이스(170)에 결합되는 입력/출력(I/O) 디바이스(101)를 포함할 수 있다. 또한, 도 1에 도시된 바와 같이, I/O 디바이스(101)는 프로세서(110), 미디어 액세스 제어기(MAC)(120), 미디어 액세스 제어기(MAC)(130), 메모리(140) 및 저장소(150)를 포함한다. 도 1에 도시된 바와 같이, 통신 링크들(115, 125, 135 및 145)은 I/O 디바이스(101)의 다양한 구성요소들을 서로 상호접속하거나 결합한다. 이러한 개시내용은 도 1에 도시된 구성요소들의 수, 유형 또는 구성으로 한정되는 것은 아니다.
일부 예들에 따르면, 도 1에 도시된 바와 같이, MAC(120) 및 MAC(130) 모두는 데이터 관리자(105)를 포함할 수 있다. 이하에 보다 상세하게 설명한 바와 같이, 데이터 관리자(105)는 이러한 미디어 액세스 제어기들이 데이터를 수신, 전달 또는 송신하는 것을 가능하게 하는 로직 및/또는 피처(feature)들을 포함할 수 있다. 예를 들어, 데이터는 네트워크(160)로부터 또는 호스트 컴퓨팅 디바이스(170)로부터 수신된 데이터 패킷들 또는 데이터 프레임들의 형식으로 될 수 있다. 일부 예들에서, MAC(120), MAC(130) 및/또는 데이터 관리자(105)는 전기 전자 기술자 협회(IEEE)에 의해 반포된 다양한 이더넷 사양들과 같은 다양한 산업 표준들 또는 사양들에 따라 동작하도록 구성 또는 배치될 수 있다. 예를 들어, (후속물들 및 변형물들을 포함하는) 하나의 그러한 이더넷 사양은, 2008년 12월에 공개된, IEEE 802.3-2008, CSMA/CD(Carrier sense Multiple access with Collision Detection) 액세스 방법 및 물리 계층 사양들일 수 있다(이하, "IEEE 802.3"이라 함). 비록 두 개의 미디어 액세스 제어기가 도 1에 도시되지만, 이러한 개시내용은 호스트 컴퓨팅 디바이스 및/또는 네트워크에 결합하는 임의의 수의 미디어 액세스 제어기들을 고려한다.
일부 예들에서, MAC(120)은 호스트 컴퓨팅 디바이스(170)의 관점으로부터, 호스트 컴퓨팅 디바이스(170)를 네트워크(160)에 결합하는 I/O 디바이스로서 기능하는 것으로 나타날 수 있다. 한편, MAC(130)은 네트워크(160)의 관점으로부터, 호스트 컴퓨팅 디바이스(170)에 대한 I/O 디바이스로서 기능하는 것으로 나타날 수 있다. 다시 말해서, 호스트 컴퓨팅 디바이스(170) 및 네트워크(160) 모두는, I/O 디바이스(101)로부터 데이터가 송출되기 전에, I/O 디바이스(101)에서 수신된 데이터가 I/O 디바이스(101)의 다양한 구성요소들 사이에서 (예를 들어, 프로세서(110)로/로부터) 라우팅되는 것을 인지하지 않을 수 있다.
일부 예들에서, 도 1에 도시된 바와 같이, 프로세서(110)는 프로세서 회로들(112-1 내지 112-n)(여기서 "n"은 1보다 크거나 같은 임의의 양의 정수를 나타냄), 및 메모리 제어기(114)를 포함한다. 이하에 보다 상세하게 언급한 바와 같이, 프로세서 회로들(112-1 내지 112-n)은 소프트웨어 서비스를 지원하도록 구성되거나 배치될 수 있는 운영 체제를 구현하도록 구성되거나 배치될 수 있다. 소프트웨어 서비스는 호스트 컴퓨팅 디바이스에 전송된 하나 이상의 데이터 프레임 또는 그로부터 전송된 하나 이상의 데이터 프레임에 대해 데이터 페이로드들의 패킷 프로세싱(예를 들어, 인-라인(in-line) 패킷 프로세싱)을 수행할 수 있다. 일부 예들에 따르면, 프로세서(110)는 다중 코어 프로세서일 수 있고 프로세서 회로들(112-1 내지 112-n)은 다중 코어 프로세서의 코어들과 연관될 수 있다.
일부 예들에 따르면, 메모리 제어기(114)는 프로세서(110)에 대한 통합 메모리 제어기일 수 있다. 다른 예들에서, 메모리 제어기(114)는 프로세서(110)와는 별도로 (예를 들어, 칩셋에 - 도시되지 않음) 위치될 수 있다. 어느 한 예에 대해서, 메모리 제어기(114)는 저장소(150) 또는 메모리(140)에서 포함될 수 있는 메모리 어레이들에 대한 액세스를 관리할 수 있다.
일부 예들에서, 도 1에 도시된 바와 같이, 메모리(140)는 버퍼들(142)을 포함한다. 버퍼들(142)은 프로세서(110)에서의 프로세서 회로들 중 하나 이상의 프로세서 회로에 의해 프로세싱되었거나 프로세싱될 수 있는 데이터를 적어도 일시적으로 저장하도록 구성될 수 있다. 메모리(140)는 프로세서(110) 상에 구현된 운영 체제 및/또는 소프트웨어 서비스들에 동작 메모리를 또한 제공할 수 있다. 일부 예들에 따르면, 메모리(140)는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 RAM(SRAM), 상 변화 물질 RAM(PRAM), 및/또는 다른 유형의 휘발성 메모리를 포함하는 상이한 유형의 메모리 중 적어도 하나 또는 그의 조합을 포함할 수 있다.
일부 예들에 따르면, 도 1에 도시된 바와 같이, 저장소(150)는 운영 체제(OS)(152)를 포함한다. OS(152)는 프로세서 회로들(112-1 내지 112-n)에서 또는 그에 의해 구현될 수 있고 전술한 바와 같은 소프트웨어 서비스를 지원하도록 구성될 수 있다. 소프트웨어 서비스는 OS(152)에 포함된 모듈들일 수 있거나 OS(152)와 협력하여 동작하는 별도의 모듈들일 수 있다. 도 1에 도시되진 않았지만, 별도의 모듈들이 또한 저장소(150)에 저장되거나 유지될 수 있다. 이하에 더 언급되는 바와 같이, OS(152)는 하나 이상의 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 수행할 수 있는 소프트웨어 서비스를 지원할 수 있다.
일부 예들에서, 저장소(150)는 동작의 저장 모드에서 구현되거나 동작되도록 구성된 다양한 유형의 메모리를 포함할 수 있다. 저장소(150)는 상이한 유형의 비휘발성 메모리 저장소 디바이스들 중 적어도 하나 또는 그의 조합을 포함할 수 있다. 이러한 상이한 유형들의 저장소 디바이스들은, 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 저장소 디바이스, 부착형 저장소 디바이스(attached storage device), 플래시 메모리, 배터리 백업 SDRAM(동기식 DRAM), 네트워크 액세스 가능 저장소 디바이스, 및/또는 기타 유형들의 비휘발성 메모리(예를 들어, 상변화 물질(PCM)) 중 하나 이상을 포함할 수 있고, 이것으로 한정되는 것은 아니다.
일부 예들에 따르면, 도 1에 도시된 바와 같이, MAC(120)은 통신 링크(190)를 통해 호스트 컴퓨팅 디바이스(170)에 결합되고 MAC(130)은 통신 링크(125)를 통해 프로세서(110)에 결합된다. 이러한 예들에 대하여, MAC(120) 및 MAC(130) 모두는 통신 링크들(170 및 190)을 통해 호스트 컴퓨팅 디바이스(170) 및 프로세서(110)에 각각 통신가능하게 결합하는 인터페이스들을 포함할 수 있다. 일부 예들에서, 통신 링크들(170 또는 190)은 데이터 버스들로서 구성될 수 있다. MAC(120) 및 MAC(130)에 포함된 이러한 인터페이스들은 산업 표준들 또는 사양들과 연관된 다양한 통신 프로토콜들에 따라 동작하도록 구성될 수 있다. (후속물들 및 변형물들을 포함하는) 하나의 그러한 사양은, 2010년 11월에 공개된, PCI 익스프레스 3.0 기본 사양과 같은, PCI 익스프레스(Peripheral Component Interconnect Express) 사양일 수 있다. 이러한 개시내용은 호스트 컴퓨팅 디바이스(170) 및 프로세서(110)에 각각 통신가능하게 결합하는 MAC(120) 또는 MAC(130)에 대한 PCI 익스프레스만으로 한정되는 것이 아니며, 다른 산업 표준들 또는 사양들이 또한 고려된다.
일부 예들에서, 도 1에 도시된 바와 같이, MAC(120)은 통신 링크(115)를 통해 MAC(130)에 결합된다. 통신 링크(115)는 MAC(120)이 호스트 컴퓨팅 디바이스(170)로부터 수신된 데이터 프레임들을 MAC(120)에 전달하는 것을 가능하게 하도록 구성될 수 있다. 통신 링크(115)는 MAC(130)이 (예를 들어, 프로세서 회로들(112-1 내지 112-n)에서 실행하는 소프트웨어 서비스에 의한 데이터 프레임들에 대한 데이터 페이로드들의 패킷 프로세싱에 후속하여) 데이터 프레임들을 MAC(120)에 전달하는 것을 가능하게 하도록 또한 구성될 수 있다. 일부 예들에 따르면, MAC(120) 및 MAC(130)은 IEEE 802.3과 같은 이더넷 사양에 따라 동작하도록 구성될 수 있고, 통신 링크(115)는 이더넷 표준에 따라 동작하도록 또한 구성될 수 있다.
일부 예들에서, 도 1에 도시된 바와 같이, 통신 링크(135)는 메모리(140)를 프로세서(110)에 결합할 수 있다. 이러한 예들에 대하여, 통신 링크(135)는 JEDEC 솔리드 스테이트 기술 연합(JEDEC Solid State Technology Association)에 의한 사양과 같은 하나 이상의 표준들 또는 사양들에 따라 동작하도록 구성되는 하나 이상의 데이터 버스 또는 채널을 포함할 수 있다. JEDEC 솔리드 스테이트 기술 연합에 의한 (후속물들 및 변형물들을 포함하는) 사양들은, 2007년 6월에 공개된 더블 데이터 레이트 유형-3(DDR3; double data rate type-three) 동기식 동적 랜덤 액세스 메모리(SDRAM; synchronous dynamic random access memory) 사양("DDR3 사양")을 포함할 수 있고, 이것으로 한정되는 것은 아니다.
일부 예들에서, 도 1에 도시된 바와 같이, 통신 링크(145)는 프로세서(110)를 저장소(150)에 결합할 수 있다. 이러한 예들에 대하여, 통신 링크(145)는 PCI 익스프레스 사양, USB(Universal Serial Bus) 사양 또는 SATA(Serial Advanced Technology Attachment) 사양과 연관된 것들과 같은 (후속물들 및 변형물들을 포함하는) 하나 이상의 산업 표준들에 기술될 수 있는 통신 프로토콜들 또는 표준들에 따라 동작하도록 구성될 수 있다. 일부 예들에 따르면, 통신 링크(145)는 프로세서(110)를 저장소(150)에 통신가능하게 결합하는 데이터 버스로서 구성될 수 있다.
일부 예들에서, 호스트 컴퓨팅 디바이스(170)는 컴퓨팅 디바이스에 포함될 수 있다. 컴퓨팅 디바이스의 예들은, 서버, 블레이드 서버(blade server), 컴퓨팅 보드, 데스크톱 컴퓨터, 개인용 컴퓨터(PC), 또는 랩톱 컴퓨터를 포함할 수 있고, 이것으로 한정되는 것은 아니다.
도 2는 예시적인 제2 시스템을 예시한다. 도 2에 도시된 바와 같이, 제2 시스템은 시스템(200)으로서 도시된다. 일부 예들에 따르면, 도 2에 도시된 시스템(200)의 구성요소들은 미디어 액세스 디바이스(220)를 제외하면 도 1에 도시된 시스템(100)의 구성요소들과 유사할 수 있다. 도 2에 도시된 바와 같이, 미디어 액세스 디바이스(220)는 I/O 디바이스(201) 상에 상주할 수 있고 통신 링크(225)를 통해 결합될 수 있는 MAC(222) 및 MAC(224)을 포함할 수 있다. 또한, 도 2에 도시된 바와 같이, 미디어 액세스 디바이스(220)는 또한 커넥터(223)를 포함하고, 커넥터(223)를 통해 네트워크 통신 채널(280)이 MAC(224)과 물리적으로 결합하도록 구성될 수 있다.
일부 예들에 따르면, 도 2에 도시된 바와 같이, MAC(222) 및 MAC(224) 모두는 데이터 관리자(105)를 포함할 수 있다. 전술한 바와 같이, 데이터 관리자(105)는 이러한 미디어 액세스 제어기들이 데이터 프레임들을 수신, 전달 또는 송신하는 것을 가능하게 하는 로직 및/또는 피처들을 포함할 수 있다. 예를 들어, 데이터 프레임들은 네트워크(260) 또는 호스트 컴퓨팅 디바이스(270) 중 어느 하나로부터 수신되었을 수 있다. 일부 예들에서, MAC(222) 또는 MAC(224)는 IEEE 802.3 또는 다른 유형의 네트워크 관련 산업 표준들 또는 사양들에 따라 동작하도록 구성되거나 배치될 수 있다.
도 2에 도시된 바와 같이, 프로세서 회로들(212-1 내지 212-n) 및 메모리 제어기(214)를 갖는 프로세서(210)가 통신 링크(215)를 통해 MAC(224)에 결합될 수 있다. 또한, 호스트 컴퓨팅 디바이스(270)는 통신 링크(290)를 통해 MAC(222)에 결합될 수 있다. 일부 예들에서, MAC(222) 및 MAC(224)에서의 인터페이스들은, 각각, 미디어 액세스 제어기들이 호스트 컴퓨팅 디바이스(270) 또는 프로세서(210)에 통신가능하게 결합하는 것을 가능하게 하기 위해 PCI 익스프레스 사양에 따라 동작하도록 구성될 수 있다.
일부 예들에 따르면, 도 2에 도시된 바와 같이, 프로세서(210)는 통신 링크(245)를 통해 저장소(250)에 결합될 수 있고 통신 링크(235)를 통해 메모리(240)에 결합될 수 있다. 도 1에 도시된 메모리(140)와 마찬가지로, 메모리(240)는 버퍼들(242)을 포함한다. 또한, 도 1에 도시된 저장소(150)와 마찬가지로, 저장소(250)는 운영 체제(OS)(252)를 포함한다.
일부 예들에서, 전술한 바와 같이, 커넥터(223)는 MAC(224)을 네트워크 통신 채널(280)에 물리적으로 결합할 수 있다. 이러한 예들에 대하여, 커넥터(223)는 다양한 산업 표준들 또는 사양들에 따라 구성되거나 배치될 수 있다. (후속물들 및 변형물들을 포함하는) 한가지 그러한 산업 표준 또는 사양은 2009년 7월에 공개된, 강화된 스몰 폼 팩터 플러그가능 모듈(Enhanced Small Form Factor Pluggable Module)에 대한 SFF-8431 사양, 개정판 4.1("SFP+")일 수 있다.
도 3은 데이터 관리자(105)에 대한 예시적인 아키텍처의 블록도를 예시한다. 일부 예들에서, 데이터 관리자(105)는 I/O 디바이스에서의 미디어 액세스 제어기들이 데이터를 수신, 전달 또는 송신하는 것을 가능하게 하도록 구성되거나 배치된 피처들 및/또는 로직을 포함한다. 일부 예들에 따르면, 도 3에 도시된 바와 같이, 데이터 관리자(105)는 데이터 로직(310), 제어 로직(320), 메모리(330) 및 입력/출력(I/O) 인터페이스들(340)을 포함한다. 도 3에 예시된 바와 같이, 데이터 로직(310)은 제어 로직(320), 메모리(330) 및 I/O 인터페이스들(340)에 결합될 수 있다. 데이터 로직(310)은 수신 피처(312), 전달 피처(314), 또는 송신 피처(316), 또는 임의의 그의 합리적 조합 중 하나 이상을 포함할 수 있다.
일부 예들에서, 도 3에 도시된 구성요소들은 본 개시내용에서 설명된 데이터 관리자(105)를 지원하거나 인에이블(enable)하도록 구성된다. 주어진 데이터 관리자(105)는 도 3에 도시된 구성요소들의 일부, 전부 또는 그보다 많은 구성요소들을 포함할 수 있다. 예를 들어, 데이터 로직(310) 및 제어 로직(320)은 데이터 관리자(105)의 특징들을 구현하는 광범위한 로직 디바이스(들) 또는 실행가능한 콘텐츠를 개별적으로 또는 집합적으로 나타낼 수 있다. 예시적인 로직 디바이스들은, 마이크로프로세서, 마이크로제어기, 프로세서 회로, 필드 프로그래머블 게이트 어레이(FPGA; field programmable gate array), 주문형 집적 회로(ASIC; application specific integrated circuit), 멀티-코어/멀티-스레드형 마이크로프로세서의 격리된 스레드나 코어 또는 이들의 조합 중 하나 이상을 포함할 수 있다.
일부 예들에서, 도 3에 도시된 바와 같이, 데이터 로직(310)은 수신 피처(312), 전달 피처(314) 또는 송신 피처(316)를 포함한다. 일부 예들에서, 이러한 피처들은 로직, 명령어들 또는 실행가능한 콘텐츠를 개별적으로 또는 집합적으로 나타낼 수 있다. 데이터 로직(310)은 동작들을 수행하기 위해 이러한 피처들 중 하나 이상을 사용하도록 구성될 수 있다. 예를 들어, 수신 피처(312)는 호스트 컴퓨팅 디바이스, 네트워크 또는 다른 미디어 액세스 제어기들로부터 데이터 프레임을 수신할 수 있다. 전달 피처(314)는 패킷 프로세싱을 위해 데이터 프레임을 다른 미디어 액세스 제어기에 또는 하나 이상의 프로세서 회로에 전달할 수 있다. 송신 피처(314)는 호스트 컴퓨팅 디바이스 또는 네트워크에서의 구성요소들에 데이터 프레임을 송신 또는 전송할 수 있다.
일부 예들에서, 제어 로직(320)은 데이터 관리자(105)의 전체적인 동작을 제어하도록 구성될 수 있다. 전술한 바와 같이, 제어 로직(320)은 광범위한 로직 디바이스(들) 또는 실행 가능한 콘텐츠 중 임의의 것을 나타낼 수 있다. 일부 예들에 대하여, 제어 로직(320)은 데이터 관리자(105)의 제어를 구현하기 위해 실행 가능한 콘텐츠 또는 명령어들과 연계하여 동작하도록 구성될 수 있다. 일부 대안의 예들에서, 제어 로직(320)의 피처들 및 기능은 데이터 로직(310) 내에서 구현될 수 있다.
일부 예들에 따르면, 메모리(330)는 제어 로직(320) 및/또는 데이터 로직(310)에 의한 이용을 위한 실행가능한 콘텐츠 또는 명령어들을 저장하도록 구성될 수 있다. 실행가능한 콘텐츠 또는 명령어들은 데이터 관리자(105)의 피처들, 구성요소들 또는 로직을 구현하거나 활성화하는데 사용될 수 있다. 이하에 보다 상세하게 설명되는 바와 같이, 메모리(330)는 하나 이상의 데이터 프레임을 수신, 전달, 전송 또는 송신하는 것과 연관된 정보를 적어도 일시적으로 유지하도록 구성될 수 있다.
메모리(330)는 하나 이상의 유형의 플래시 메모리, 프로그램가능한 변수들 또는 상태들, ROM, RAM, 하드 드라이브 또는 기타 정적 또는 동적 저장 매체를 포함하지만 이것들로 제한되지는 않는 광범위한 비휘발성 메모리 매체를 포함할 수 있다.
일부 예들에서, I/O 인터페이스들(340)은 데이터 관리자(105)와 데이터 관리자(105)를 갖거나 유지하는 미디어 액세스 제어기의 구성요소들 사이에서 로컬 통신 매체 또는 링크를 통해 인터페이스를 제공할 수 있다. I/O 인터페이스들(340)은 로컬 통신 매체 또는 링크를 통해 통신하기 위해 다양한 통신 프로토콜들 또는 표준들에 따라 동작하는 인터페이스들을 포함할 수 있다. 이러한 통신 프로토콜들 또는 표준들은 I2C(Inter-Integrated Circuit) 사양, SMBus(System Management Bus) 사양, 또는 PCI 익스프레스 사양과 연관된 것들과 같은 하나 이상의 산업 표준(후속물들 및 변형들을 포함함)에 기술될 수 있다. 그렇지만 본 개시는 상기 언급된 표준 및 연관된 프로토콜들만으로 제한되지 않는다.
일부 예들에 따르면, I/O 인터페이스들(340)은 데이터 관리자(105)와 미디어 액세스 제어기의 외부에 위치된 구성요소들 사이의 통신 채널들 또는 링크들을 위한 인터페이스를 제공할 수 있다. 이들 예들에 대하여, I/O 인터페이스들(340)은 미디어 액세스 제어기에 결합된 통신 링크들 또는 채널들을 통해 통신하기 위해 다양한 통신 프로토콜들 또는 표준들에 따라 동작하는 인터페이스를 포함할 수 있다. 이러한 통신 프로토콜들 또는 표준들은 이더넷 사양, PCI 익스프레스 사양 또는 USB 사양 또는 통신 프로토콜들에 대한 다른 산업 표준들 또는 사양들과 같은 (후속물들 및 변형물들을 포함하는) 표준들 또는 사양들에 기술될 수 있다.
도 4는 예시적인 제3 시스템을 예시한다. 도 4에 도시된 바와 같이, 제3 시스템은 시스템(400)으로서 도시된다. 일부 예들에 따르면, 시스템(400)은 네트워크 통신 채널(180)을 통해 네트워크(160)에 결합되고 통신 링크(190)를 통해 호스트 컴퓨팅 디바이스(170)에 결합된 I/O 디바이스(101)를 포함한다. 일부 예들에서, 도 4에 도시된 바와 같이, 호스트 컴퓨팅 디바이스(170)는 가상 머신 관리자(VMM)(475)를 포함할 수 있다. VMM(475)은 가상 머신(VM)들(472-1 내지 472-m)(여기서 "m"은 2보다 큰 임의의 양의 정수)을 관리 또는 제어하도록 구성되거나 배치될 수 있다. 이들 예들에 대하여, VM들(472-1 내지 472-m)의 각각의 VM은 적어도 하나의 테넌트와 연관될 수 있다. 예를 들어, VM(472-1)은 테넌트(1)와 연관될 수 있고, VM(472-2)은 테넌트(2)와 연관될 수 있는 등등이다.
일부 예들에 따르면, 호스트 컴퓨팅 디바이스(170)는 클라우드 서비스 제공자와 같은 서비스 제공자에 의해 운용될 수 있다. 이러한 예들에 대하여, 테넌트(1) 내지 테넌트(m)은 각각 서비스 레벨 합의(Service Level Agreement)(SLA)를 가질 수 있고, 그를 통해 이들 테넌트들은 호스트 컴퓨팅 디바이스(170)에서 유지되는 컴퓨팅 자원들을 빌리거나 대여할 수 있다. 이러한 빌린 컴퓨팅 자원들은 VM들(472-1 내지 472-m)과 연관된 컴퓨팅 자원들을 포함할 수 있다.
일부 예들에서, 클라우드 서비스 제공자와 하나 이상의 테넌트 사이의 SLA는 주어진 테넌트로부터 발원되거나 주어진 테넌트로 예정된 데이터 프레임들의 패킷 프로세싱을 수행할 수 있는 소프트웨어 서비스의 유형들을 포함할 수 있다. 일부 예들에 대하여, 테넌트는 데이터 프레임의 메타 데이터를 통해 식별될 수 있거나, 테넌트 MAC 또는 인터넷 프로토콜(IP) 주소 또는 주어진 SLA에 의해 정의된 다른 분류화 정책(classification policy)을 이용함으로써 식별될 수 있다. 소프트웨어 서비스들의 유형은, 프로비저닝 소프트웨어 서비스, 분리 소프트웨어 서비스, 보안 소프트웨어 서비스, 식별 소프트웨어 서비스 또는 계량 소프트웨어 서비스를 포함할 수 있고, 이것으로 한정되는 것은 아니다. 이들 예들에 대하여, 프로비저닝 소프트웨어 서비스는 호스트 컴퓨팅 디바이스(170)에서의 컴퓨팅 자원들이 다양한 테넌트들 사이에서 어떻게 프로비저닝되는지를 나타낼 수 있다. 일부 예들에서, 분리 소프트웨어 서비스는 하나 이상의 데이터 프레임이 서비스 거부 공격들(denial of service attacks) 또는 보안을 위해 어떻게 분리될 수 있는지를 나타낼 수 있다. 보안 소프트웨어 서비스는 데이터 프레임들에 대한 보안 절차들을 나타낼 수 있다. 식별 소프트웨어 서비스는 어느 테넌트들이 데이터 프레임들을 수신/전달할 수 있는지를 식별하는 방식을 나타낼 수 있다. 계량 소프트웨어 서비스는, 측정된 데이터의 양과 연관된 요금 및 청구서를 결정하기 위해 각각의 테넌트가 데이터 프레임들로 수신/전달한 데이터의 양을 측정하는 것과 연관될 수 있다.
도 5는 예시적인 제1 프로세스를 도시한다. 도 5에 도시된 바와 같이, 제1 프로세스는 프로세스(500)로서 도시된다. 일부 예들에서, 프로세스(500)는 I/O 디바이스에 결합된 호스트 컴퓨팅 디바이스로부터 제1 데이터 프레임을 수신하기 위한 것일 수 있다. I/O 디바이스는 다수의 미디어 액세스 제어기들 및 프로세서를 포함할 수 있다. 프로세서는 제1 데이터 프레임에 대한 데이터 페이로드의 프로세싱을 수행할 수 있는 소프트웨어 서비스를 지원하도록 구성된 운영 체제를 구현하도록 구성될 수 있다. 이러한 예들에 대하여, 프로세싱된 데이터 페이로드는 제2 데이터 프레임에 포함되어, I/O 디바이스에 결합된 통신 채널을 통해 송신될 수 있다. 이러한 예들에 대하여, 도 1 또는 4에 도시된 시스템들(100 또는 400)에 포함된 구성요소들 또는 도 3에 도시된 데이터 관리자(105)에 포함된 구성요소들은 프로세스(500)에 관한 예시적인 동작들을 설명하는 데 사용될 수 있다. 설명된 예시적인 동작들은, 도 1, 3 및 4에 대해 전술한 데이터 관리자(105) 또는 시스템들(100 또는 400) 상의 구현들로 한정되지 않는다.
프로세스(5.1)(제1 데이터 프레임을 전송)에서 시작하면, 호스트 컴퓨팅 디바이스(170)는 통신 링크(190)를 통해 제1 데이터 프레임을 I/O 디바이스(101)에 포함된 미디어 액세스 제어기(MAC)(120)에 전달할 수 있다. 일부 예들에서, 전달된 제1 데이터 프레임은 데이터 관리자(105)의 로직 및/또는 피처들(예를 들어, 수신 피처(312))에 의해 수신될 수 있다. 이러한 예들에 대하여, 제1 데이터 프레임은 테넌트(1)과 연관된 VM(472-1)으로부터 발원되었을 수 있고, 제1 데이터 프레임은 네트워크(160)와 연관된 목적지를 가질 수 있다.
프로세스(5.2)(제1 데이터 프레임을 전달)로 진행하면, MAC(120)에서의 데이터 관리자(105)는 제1 데이터 프레임을 통신 링크(115)를 통해 (예를 들어, 전달 피처(314)를 통해) MAC(130)에 전달하는 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, MAC(120) 및 MAC(130) 모두는 IEEE 802.3과 같은 이더넷 사양에 따라 동작하도록 구성될 수 있다. 이들 예들에 대하여, 제1 데이터 프레임은 통신 링크(115)를 통해 이더넷 프레임으로서 전달될 수 있다.
프로세스(5.3)(제1 데이터 프레임을 전달)로 진행하면, MAC(130)에서의 데이터 관리자(105)는 MAC(120)으로부터 전달된 제1 데이터 프레임을 (예를 들어, 수신 피처(312)를 통해) 수신하도록 구성되고, 또한 제1 데이터 프레임을 통신 채널(125)을 통해 (예를 들어, 전달 피처(314)를 통해) 프로세서(110)에 전달하도록 구성된 로직 및/또는 피처들을 포함할 수 있다.
프로세스(5.4)(패킷 프로세싱된 데이터 페이로드를 전송)로 진행하면, 제1 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱에 후속하여, 프로세서 회로(112-1 내지 112-n)는 패킷 프로세싱된 페이로드 데이터를 MAC(130)에 전송할 수 있다. 일부 예들에서, 이것은 데이터 페이로드의 패킷 프로세싱을 수행할 수 있는 소프트웨어 서비스를 지원하도록 구성될 수 있는 OS(152)를 구현하도록 구성된 프로세서 회로들(112-1 내지 112-n)을 포함할 수 있다. 이러한 예들에 대하여, 소프트웨어 서비스는 테넌트(1)와 호스트 컴퓨팅 디바이스(170)를 운용하는 서비스 제공자 사이의 서비스 레벨 합의(SLA)와 연관될 수 있다. SLA는 프로비저닝 소프트웨어 서비스, 분리 소프트웨어 서비스, 보안 소프트웨어 서비스, 식별 소프트웨어 서비스 또는 계량 소프트웨어 서비스 중 하나 이상을 포함할 수 있다.
프로세스(5.5)(제2 데이터 프레임을 송신)로 진행하면, MAC(130)에서의 데이터 관리자(105)는 패킷 프로세싱된 데이터 페이로드를 (예를 들어, 수신 피처(312)를 통해) 프로세서(110)로부터 수신하고, 이 프로세싱된 데이터 페이로드를 제2 데이터 프레임 내에서 네트워크(160)에 (예를 들어, 송신 피처(316)를 통해) 송신하는 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 데이터 관리자(105)는, 통신 채널(180)이 그를 통해 동작하도록 구성되는 적용가능한 통신 프로토콜에 의해 결정된 형식으로 제2 데이터 프레임을 송신할 수 있다. 예를 들어, 통신 채널(180)은 IEEE 802.3과 같은 이더넷 사양에 따라 동작하도록 구성될 수 있다. 그 다음에, 제2 데이터 프레임은 IEEE 802.3 준수 형식(compliant format)으로 형식화(formatted)되고 나서, 통신 채널(180)을 통해 네트워크(160)에 송신될 수 있다.
도 6은 예시적인 제2 프로세스를 도시한다. 도 6에 도시된 바와 같이, 제2 프로세스는 프로세스(600)로서 도시된다. 일부 예들에서, 프로세스(600)는 호스트 컴퓨팅 디바이스에 예정된 제1 데이터 프레임을 네트워크 통신 채널을 통해 I/O 디바이스에 결합된 네트워크로부터 수신하기 위한 것일 수 있다. I/O 디바이스는 제1 데이터 프레임에 대한 데이터 페이로드의 프로세싱을 수행할 수 있는 소프트웨어 서비스를 지원하도록 구성된 운영 체제를 구현하도록 구성된 프로세서 및 다수의 미디어 액세스 제어기들을 포함할 수 있다. 이러한 예들에 대하여, 프로세싱된 데이터 페이로드는 제2 데이터 프레임에 포함되어 호스트 컴퓨팅 디바이스에 전달될 수 있다. 이러한 예들에 대하여, 도 1 또는 4에 도시된 시스템들(100 또는 400)에 포함된 구성요소들 또는 도 3에 도시된 데이터 관리자(105)에 포함된 구성요소들은 프로세스(600)에 관한 예시적인 동작들을 설명하는 데 사용될 수 있다. 설명된 예시적인 동작들은, 도 1, 3 및 4에 대하여 전술된 데이터 관리자(105) 또는 시스템들(100 또는 400) 상의 구현들로 한정되지 않는다.
프로세스(6.1)(제1 데이터 프레임을 전송)에서 시작하면, 네트워크(160)는 호스트 컴퓨팅 디바이스(170)에 예정된 제1 데이터 프레임을 전송할 수 있다. 일부 예들에서, I/O 디바이스(101)에 포함된 MAC(130)은 호스트 컴퓨팅 디바이스(170)를 대신하여 제1 데이터 프레임을 수신할 수 있다. 이러한 예들에 대하여, MAC(130)은 통신 채널(180)을 통해 네트워크(160)에 결합될 수 있다. MAC(130)에서의 데이터 관리자(105)는 (예를 들어, 수신 피처(312)를 통해) 제1 데이터 프레임을 수신하는 로직 및/또는 피처들을 포함할 수 있다. 예를 들어, 제1 데이터 프레임은 테넌트(2)와 연관된 VM(472-2)에 예정된 것일 수 있다. 예를 들어, 테넌트(2)는 호스트 컴퓨팅 디바이스(170)를 운용하는 서비스 제공자와의 SLA를 가질 수 있다.
프로세스(6.2)(제1 데이터 프레임을 전달)로 진행하면, MAC(130)에서의 데이터 관리자(105)는 제1 데이터 프레임을 통신 링크(115)를 통해 (예를 들어, 전달 피처(314)를 통해) 프로세서(110)에 전달하는 로직 및/또는 피처들을 포함할 수 있다.
프로세스(6.3)(패킷 프로세싱된 데이터 페이로드를 전송)로 진행하면, 프로세서(110)에서 실행되는 소프트웨어 서비스가 MAC(130)으로부터 전달된 제1 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 수행하도록 구성될 수 있다. 일부 예들에서, 도 6에 도시된 바와 같이, 그 후에 패킷 프로세싱된 데이터 페이로드는 MAC(130)으로 다시 전송될 수 있다. 이러한 예들에 대하여, OS(152)는 제1 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 수행하도록 구성된 소프트웨어 서비스를 지원하도록 구성될 수 있다. 소프트웨어 서비스는 테넌트(2)와 서비스 제공자 사이의 SLA와 연관될 수 있다. SLA는 프로비저닝 소프트웨어 서비스, 분리 소프트웨어 서비스, 보안 소프트웨어 서비스, 식별 소프트웨어 서비스 또는 계량 소프트웨어 서비스 중 하나 이상을 포함할 수 있다.
프로세스(6.4)(제2 데이터 프레임을 전달)로 진행하면, MAC(130)에서의 데이터 관리자(105)는 패킷 프로세싱된 데이터 페이로드를 프로세서(110)로부터 (예를 들어, 수신 피처(312)를 통해) 수신하도록 구성되고, 또한 패킷 프로세싱된 데이터 페이로드를 통신 링크(115)를 통해 (예를 들어, 전달 피처(314)를 통해) 제2 데이터 프레임 내에서 MAC(120)에 전달하도록 구성된 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, MAC(120) 및 MAC(130) 모두는 IEEE 802.3에 따라 동작하도록 구성될 수 있다. 이러한 예들에서, 패킷 프로세싱된 데이터 페이로드는 통신 링크(115)를 통해 이더넷 프레임의 형식으로 제2 데이터 프레임 내에서 전달될 수 있다.
프로세스(6.5)(제2 데이터 프레임을 전달)로 진행하면, MAC(120)에서의 데이터 관리자(105)는 제2 데이터 프레임을 MAC(130)으로부터 (예를 들어, 수신 피처(312)를 통해) 수신하고, 제2 데이터 프레임을 통신 링크(170)를 통해 (예를 들어 전달 피처(314)를 통해) 호스트 컴퓨팅 디바이스(170)에 전달하는 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 데이터 관리자(105)는 제2 데이터 프레임을 VMM(475)에 전달할 수 있고, 그러고 나서 VMM(475)는 제2 데이터 프레임을 테넌트(2)와 연관된 VM(472-2)에 중계할 수 있다. 일부 다른 예들에서, 데이터 관리자(105)는 제2 데이터 프레임을 VM(472-2)에 직접 전달할 수 있다.
도 7은 예시적인 제3 프로세스를 도시한다. 도 7에 도시된 바와 같이, 제3 프로세스는 프로세스(700)로서 도시된다. 일부 예들에서, 프로세스(700)는 통신 채널에 결합된 I/O 디바이스의 구성요소들(예를 들어, 프로세서 상에서 실행되는 소프트웨어 서비스)을 구성할 수 있는 제어 데이터를 네트워크 통신 채널을 통해 수신하기 위한 것일 수 있다. I/O 디바이스는 다수의 미디어 액세스 제어기들 및 프로세서를 포함할 수 있다. 프로세서는 데이터 프레임에 대한 데이터 페이로드의 프로세싱을 수행할 수 있는 소프트웨어 서비스를 지원하도록 구성된 운영 체제를 구현하도록 구성될 수 있다. 이러한 예들에 대하여, 도 1 또는 4에 도시된 시스템들(100 또는 400)에 포함된 구성요소들 또는 도 3에 도시된 데이터 관리자(105)에 포함된 구성요소들은 프로세스(700)에 관한 예시적인 동작들을 설명하는 데 사용될 수 있다. 설명된 예시적인 동작들은, 도 1, 3 및 4에 대하여 전술된 데이터 관리자(105) 또는 시스템들(100 또는 400) 상의 구현들로 한정되지 않는다.
프로세스(7.1)(제어 데이터를 전송)에서 시작하면, 제어 데이터가 네트워크(160)와 연관된 구성요소(예를 들어, 패브릭 관리자(fabric manager))로부터 전송될 수 있다. 일부 예들에서, 제어 데이터는, I/O 디바이스(101)에서의 프로세서(110)에서 실행되기 보다는 호스트 컴퓨팅 디바이스(170)에서의 프로세서에서 실행되는 소프트웨어 서비스가 네트워크 관련 데이터를 프로세싱하도록 구성될 것이라는 네트워크 구성요소의 예측에 기초하여 호스트 컴퓨팅 디바이스(170)에 예정될 수 있다. 이러한 예들에 대하여, MAC(130)은 통신 채널(180)을 통해 네트워크 구성요소에 결합될 수 있다. MAC(130)에서의 데이터 관리자(105)는 제어 데이터를 (예를 들어, 수신 피처(312)를 통해) 수신하는 로직 및/또는 피처들을 포함할 수 있다.
프로세스(7.2)(제어 데이터를 전달)로 진행하면, MAC(130)에서의 데이터 관리자(105)는 제어 데이터를 통신 링크(125)를 통해 (예를 들어, 전달 피처(314)를 통해) 프로세서(110)에서의 구성요소들에 전달하는 로직 및/또는 피처들을 포함할 수 있다.
프로세스(7.3)(제어 데이터에 대한 응답)로 진행하면, 프로세서(110)에서의 프로세서 회로들(112-1 내지 112-n)에 의해 구현된 OS(152)는 제어 데이터에 따라 소프트웨어 서비스를 구성 또는 배치할 수 있고, 그러고 나서 구성의 상태(예를 들어, 완료, 실패, 계류 등)를 나타내는 응답을 전송할 수 있다. 일부 예들에서, 제어 데이터에 대한 응답은 통신 링크(125)를 통해 MAC(130)에 전송될 수 있다.
프로세스(7.4)(응답을 송신)로 진행하면, MAC(130)에서의 데이터 관리자(105)는 네트워크(160)에서의 네트워크 구성요소들에 (예를 들어, 송신 피처(316)를 통해) 응답을 송신하는 로직 및/또는 피처들을 포함할 수 있다. 이러한 예들에 대하여, 응답은 네트워크 통신 채널(180)을 통한 네트워크(160)로의 송신을 위해 IEEE 802.3 준수 형식으로 형식화될 수 있다.
도 8은 예시적인 제4 프로세스를 도시한다. 도 8에 도시된 바와 같이, 제4 프로세스는 프로세스(800)로서 도시된다. 일부 예들에서, 프로세스(800)는 호스트 컴퓨팅 디바이스에 결합된 I/O 디바이스의 구성요소들(예를 들어, 프로세서 상에서 실행하는 소프트웨어 서비스)을 구성하기 위해 호스트 컴퓨팅 디바이스에서의 구성요소들(예를 들어, VMM)로부터 제어 데이터를 수신하기 위한 것일 수 있다. I/O 디바이스는 다수의 미디어 액세스 제어기들 및 프로세서를 포함할 수 있다. 프로세서는 데이터 프레임에 대한 데이터 페이로드의 프로세싱을 수행할 수 있는 소프트웨어 서비스를 지원하도록 구성된 운영 체제를 구현하도록 구성될 수 있다. 이러한 예들에 대하여, 도 1 또는 4에 도시된 시스템들(100 또는 400)에 포함된 구성요소들 또는 도 3에 도시된 데이터 관리자(105)에 포함된 구성요소들은 프로세스(800)에 관한 예시적인 동작들을 설명하는 데 사용될 수 있다. 설명된 예시적인 동작들은, 도 1, 3 및 4에 대하여 전술된 데이터 관리자(105) 또는 시스템들(100 또는 400) 상의 구현들로 한정되지 않는다.
프로세스(8.1)(제어 데이터를 전송)에서 시작하면, 제어 데이터는 VMM(475)와 같은 호스트 컴퓨팅 디바이스(170)와 연관된 구성요소로부터 전송될 수 있다. 일부 예들에서, VMM(475)은 VM(472-1 내지 472-m)으로부터 수신된 데이터 프레임들에 대한 데이터 페이로드를 프로세싱하기 위해 프로세서(110)에서의 소프트웨어 서비스를 구성하도록 제어 데이터를 전달하였을 수 있다. 이러한 예들에 대하여, MAC(120)은 통신 링크(190)를 통해 호스트 컴퓨팅 디바이스(170)에서의 VMM(475)에 통신가능하게 결합될 수 있다. MAC(120)에서의 데이터 관리자(105)는 (예를 들어, 수신 피처(312)를 통해) 제어 데이터를 수신하는 로직 및/또는 피처들을 포함할 수 있다.
프로세스(8.2)(제어 데이터를 전달)로 진행하면, MAC(120)에서의 데이터 관리자(105)는 제어 데이터를 통신 링크(115)를 통해 MAC(130)에 (예를 들어, 전달 피처(314)를 통해) 전달하는 로직 및/또는 피처들을 포함할 수 있다.
프로세스(8.3)(제어 데이터를 전달)로 진행하면, MAC(130)에서의 데이터 관리자(105)는 또한 제어 데이터를 수신하고, 그 후 제어 데이터를 프로세서(110)에서 실행되는 소프트웨어 서비스에 통신 채널(125)을 통해 전달하는 로직 및/또는 피처들을 포함할 수 있다.
프로세스(8.4)(제어 데이터에 대한 응답)로 진행하면, 프로세서(110)에서의 프로세서 회로들(112-1 내지 112-n)에 의해 구현된 OS(152)는 제어 데이터에 따라 소프트웨어 서비스를 구성 또는 배치할 수 있고, 그러고 나서 구성의 상태(예를 들어, 완료, 실패, 계류 등)를 나타내는 응답을 전송할 수 있다. 일부 예들에서, 제어 데이터에 대한 응답은 통신 링크(125)를 통해 MAC(130)에 전송될 수 있다.
프로세스(8.5)(응답을 전달)로 진행하면, MAC(130)에서의 데이터 관리자(105)는 응답을 (예를 들어, 수신 피처(312)를 통해) 수신하고, 그 후 응답을 (예를 들어, 전달 피처(314)를 통해) 통신 채널(115)을 통해 MAC(120)에 전달하는 로직 및/또는 피처들을 포함할 수 있다.
프로세스(8.6)(응답을 전달)로 진행하면, MAC(120)에서의 데이터 관리자(105)는 응답을 수신하고, 응답을 통신 링크(190)를 통해 호스트 컴퓨팅 디바이스(170)에서의 VMM(475)에 전달하는 로직 및/또는 피처들을 또한 포함할 수 있다.
도 9는 호스트 컴퓨팅 디바이스로부터 데이터 프레임을 수신하는 예시적인 흐름도를 예시한다. 일부 예들에서, 도 1, 2 및 4에 도시된 시스템들(100, 200 또는 400)의 구성요소들은 도 9에 도시된 흐름도와 관련된 예시적인 동작들을 설명하는 데 사용될 수 있다. 도 1 또는 도 3에 도시된 데이터 관리자(105)는 또한 예시적인 동작들을 설명하는 데 사용될 수 있다. 그러나 설명된 예시적인 동작들은 데이터 관리자(105) 또는 시스템들(100, 200 또는 400) 상의 구현들로 한정되는 것은 아니다.
시작으로부터 블록(910)(제1 MAC에서 제1 데이터 프레임을 수신)으로 이동하면, MAC(120)에서의 데이터 관리자(105)는 통신 링크(190)를 통해 호스트 컴퓨팅 디바이스(170)로부터 (예를 들어, 수신 피처(312)를 통해) 제1 데이터 프레임을 수신하도록 구성된 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 제1 데이터 프레임은 테넌트(2)와 연관된 VM(472-2)으로부터 발원되었을 수 있고, 제1 데이터 프레임은 네트워크(160)와 연관된 목적지를 가질 수 있다.
블록(910)으로부터 블록(920)(제1 데이터 프레임을 제2 MAC에 전달)으로 진행하면, MAC(120)에서의 데이터 관리자(105)는 제1 데이터 프레임을 (예를 들어, 전달 피처(314)를 통해) MAC(130)에 전달하도록 구성된 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 제1 데이터 프레임은 통신 링크(115)를 통해 전달될 수 있다.
블록(920)으로부터 블록(930)(제1 데이터 프레임을 프로세서 회로(들)에 전달)으로 진행하면, MAC(130)에서의 데이터 관리자(105)는 통신 링크(115)를 통해 제1 데이터 프레임을 (예를 들어, 수신 피처(312)를 통해) 수신하도록 구성되고, 또한 프로세서(110)에서의 프로세서 회로들(112-1 내지 112-n)에 (예를 들어, 전달 피처(314)를 통해) 제1 데이터 프레임을 전달하도록 구성된 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 제1 데이터 프레임은 통신 링크(125)를 통해 프로세서 회로들(112-1 내지 112-n)에 전달될 수 있다. 이러한 예들에 대하여, 프로세서(110)에서의 하나 이상의 프로세서 회로(112-1 내지 112-n)는 제1 데이터 프레임에 대하여 데이터 페이로드의 패킷 프로세싱을 수행할 수 있는 소프트웨어 서비스를 지원하도록 구성될 수 있는 OS(152)를 구현하도록 구성될 수 있다. 소프트웨어 서비스는 호스트 컴퓨팅 디바이스(170)를 운용하는 서비스 제공자와 테넌트(2) 사이의 SLA에 따라 데이터 페이로드의 패킷 프로세싱을 수행할 수 있다.
블록(930)으로부터 블록(940)(프로세서 회로(들)로부터 패킷 프로세싱된 데이터 페이로드를 수신)으로 이동하면, MAC(130)에서의 데이터 관리자(105)는 프로세서 회로들(112-1 내지 112-n)로부터 패킷 프로세싱된 데이터 페이로드를 (예를 들어, 수신 피처(312)를 통해) 수신하도록 구성된 로직 및/또는 피처들을 포함할 수 있다.
블록(940)으로부터 블록(950)(제2 데이터 프레임을 송신)으로 이동하면, MAC(130)에서의 데이터 관리자(105)는 패킷 프로세싱된 데이터 페이로드를 제2 데이터 프레임에 포함하도록 구성되고, 제2 데이터 프레임을 네트워크(160)와 연관된 목적지를 향하여 (예를 들어, 송신 피처(316)를 통해) 송신하도록 구성된 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 제2 데이터 프레임은 네트워크(160)에 결합된 통신 채널(180)을 통해 송신될 수 있다.
블록(950)으로부터 결정 블록(960)(데이터 프레임(들)이 더 있는가?)으로 이동하면, MAC(120)에서의 데이터 관리자(105)는 추가의 데이터 프레임들이 MAC(130)에 전달될 필요가 있는지를 결정할 수 있다. 추가의 데이터 프레임들이 호스트 컴퓨팅 디바이스(170)로부터(예를 들어, 테넌트(2)로부터) 수신되면, 프로세스는 블록(920)으로 이동한다. 그렇지 않은 경우, 프로세스는 종료된다.
도 10은 네트워크 통신 채널을 통해 데이터 프레임을 수신하는 예시적인 흐름도이다. 일부 예들에서, 도 1, 2 및 4에 도시된 시스템들(100, 200 또는 400)의 구성요소들은 도 10에 도시된 흐름도와 관련된 예시적인 동작들을 설명하는 데 사용될 수 있다. 도 1 또는 도 3에 도시된 데이터 관리자(105)는 또한 예시적인 동작들을 설명하는 데 사용될 수 있다. 그러나 설명된 예시적인 동작들은 데이터 관리자(105) 또는 시스템들(100, 200 또는 400) 상의 구현들로 한정되는 것은 아니다.
시작으로부터 블록(1010)(제1 MAC에서 제1 데이터 프레임을 수신)으로 이동하면, MAC(130)에서의 데이터 관리자(105)는 통신 링크(190)를 통해 네트워크(160)로부터 (예를 들어, 수신 피처(312)를 통해) 호스트 컴퓨팅 디바이스(170)에 예정된 제1 데이터 프레임을 수신하도록 구성된 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 제1 데이터 프레임은 테넌트(1)와 연관된 VM(472-1)에 예정될 수 있다.
블록(1010)으로부터 블록(1020)(프로세서 회로(들)에 제1 데이터 프레임을 전달)으로 진행하면, MAC(130)에서의 데이터 관리자(105)는 프로세서(110)에서의 프로세서 회로들(112-1 내지 112-n)에 (예를 들어, 전달 피처(314)를 통해) 제1 데이터 프레임을 전달하도록 구성된 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 제1 데이터 프레임은 통신 링크(125)를 통해 프로세서 회로들(112-1 내지 112-n)에 전달될 수 있다. 이러한 예들에 대하여, 프로세서(110)에서의 하나 이상의 프로세서 회로(112-1 내지 112-n)는 제1 데이터 프레임에 대하여 데이터 페이로드의 패킷 프로세싱을 수행할 수 있는 소프트웨어 서비스를 지원하도록 구성될 수 있는 OS(152)를 구현하도록 구성될 수 있다. 소프트웨어 서비스는 호스트 컴퓨팅 디바이스(170)를 운용하는 서비스 제공자와 테넌트(1) 사이의 SLA에 따라 데이터 페이로드의 패킷 프로세싱을 수행할 수 있다.
블록(1020)으로부터 블록(1030)(프로세서 회로(들)로부터 패킷 프로세싱된 데이터 페이로드를 수신)으로 이동하면, MAC(130)에서의 데이터 관리자(105)는 프로세서 회로들(112-1 내지 112-n)로부터 패킷 프로세싱된 데이터 페이로드를 (예를 들어, 수신 피처(312)를 통해) 수신하도록 구성된 로직 및/또는 피처들을 포함할 수 있다.
블록(1030)으로부터 블록(1040)(제2 데이터 프레임을 제2 MAC에 전달)으로 진행하면, MAC(130)에서의 데이터 관리자(105)는 패킷 프로세싱된 데이터 페이로드를 제2 데이터 프레임에 포함하고, 제2 데이터 프레임을 MAC(120)에 (예를 들어, 전달 피처(314)를 통해) 전달하도록 구성된 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 제2 데이터 프레임은 통신 링크(115)를 통해 전달될 수 있다.
블록(1040)으로부터 블록(1050)(제2 데이터 프레임을 호스트 컴퓨팅 디바이스에 전송)으로 이동하면, MAC(120)에서의 데이터 관리자(105)는 제2 데이터 프레임을 (예를 들어 송신 피처(316)를 통해) 호스트 컴퓨팅 디바이스(170)에서의 테넌트(1)와 연관된 VM(472-1)을 향하여 전송하도록 구성된 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 제2 데이터 프레임은 호스트 컴퓨팅 디바이스(170)에 결합된 통신 채널(180)을 통해 전송될 수 있다.
블록(1050)으로부터 결정 블록(1060)(데이터 프레임(들)이 더 있는가?)으로 이동하면, MAC(130)에서의 데이터 관리자(105)는 추가의 데이터 프레임들이 연관된 데이터 페이로드들의 패킷 프로세싱을 위해 프로세서 회로들(112-1 내지 112-n)에 전달될 필요가 있는지를 결정할 수 있다. 추가의 데이터 프레임들이 전달될 필요가 있는 경우, 프로세스는 블록(1020)으로 이동한다. 그렇지 않은 경우, 프로세스는 종료된다.
적어도 하나의 예에서의 하나 이상의 양태들은, 프로세서 내의 다양한 로직을 나타내는 머신 판독가능한 매체에 저장되고, 머신에 의해 판독될 때 머신으로 하여금 본 명세서에서 설명된 기술을 수행하는 로직을 제조하게 하는 대표적인 명령어들에 의해 구현될 수 있다. "IP 코어들"로서 알려진 그러한 표현들은 유형의, 머신 판독가능한 매체 상에 저장될 수 있으며, 다양한 고객들 또는 제조 설비들에 제공되어, 로직 또는 프로세서를 실제로 만드는 제조 기계들 내에 로딩될 수 있다.
다양한 예들이 하드웨어 구성요소, 소프트웨어 구성요소 또는 이 둘의 조합을 사용하여 구현될 수 있다. 일부 예들에서, 하드웨어 구성요소들은 디바이스들, 컴포넌트들, 프로세서들, 마이크로프로세서들, 회로들, 회로 구성요소들(예를 들어, 트랜지스터들, 저항기들, 캐패시터들, 인덕터들 등), 집적 회로들, 주문형 집적 회로들(application specific integrated circuits)(ASIC), 프로그램가능 로직 디바이스들(programmable logic devices)(PLD), 디지털 신호 처리기들(digital signal processors)(DSP), 필드 프로그램가능 게이트 어레이(field programmable gate array)(FPGA), 메모리 유닛들, 논리 게이트들, 레지스터들, 반도체 디바이스, 칩들, 마이크로칩들, 칩셋들 등을 포함할 수 있다. 일부 예들에서, 소프트웨어 구성요소들은 소프트웨어 컴포넌트들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 함수들, 메소드들(methods), 프로시저들, 소프트웨어 인터페이스들, 애플리케이션 프로그램 인터페이스들(application program interfaces)(API), 명령어 집합들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들, 또는 그의 임의의 조합을 포함할 수 있다. 실시예를 하드웨어 구성요소 및/또는 소프트웨어 구성요소를 사용하여 구현할지를 결정하는 것은, 주어진 구현에 대해 원하는 바에 따라, 원하는 연산 레이트(computational rate), 전력 레벨, 내열성, 프로세싱 사이클 버짓(processing cycle budget), 입력 데이터 레이트, 출력 데이터 레이트, 메모리 자원, 데이터 버스 속도 및 기타 설계 또는 성능 제약들과 같은 임의의 수의 인자들에 따라 변할 수 있다.
일부 예는 제조 물품을 포함할 수 있다. 제조 물품은 로직(logic)을 저장하는 비일시적 저장 매체를 포함할 수 있다. 일부 예에서, 비일시적 저장 매체는, 휘발성 메모리 또는 비휘발성 메모리, 착탈식 또는 비착탈식 메모리, 소거가능하거나 소거불가능한 메모리, 기입가능하거나 재기입가능한 메모리 등을 포함한, 전자 데이터를 저장할 수 있는 하나 이상의 유형의 컴퓨터-판독가능한 저장 매체를 포함할 수 있다. 일부 예에서, 로직은 소프트웨어 컴포넌트들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 함수들, 메소드들, 프로시져들, 소프트웨어 인터페이스들, 애플리케이션 프로그램 인터페이스(API)들, 명령어 집합들, 컴퓨팅 코드들, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들, 또는 이들의 임의의 조합과 같은 다양한 소프트웨어 구성요소들을 포함할 수 있다.
일부 예에 따르면, 제조 물품은, 컴퓨터 또는 시스템에 의해 실행될 때, 컴퓨터 또는 시스템으로 하여금 전술된 예에 따른 방법들 및/또는 동작들을 수행하게 하는 명령어들을 저장하거나 유지하는 비일시적 저장 매체를 포함할 수 있다. 명령어들은 소스 코드, 컴파일(compile)된 코드, 해석(interpret)된 코드, 실행 가능 코드, 정적 코드 및 동적 코드 등과 같은 임의의 적합한 유형의 코드를 포함할 수 있다. 명령어들은 컴퓨터가 특정 기능을 수행하게 명령하는 미리정의된 컴퓨터 언어, 방식 또는 문법에 따라 구현될 수 있다. 명령어들은 임의의 적절한 고수준, 저수준, 객체 지향, 비주얼, 컴파일된 및/또는 해석된 프로그래밍 언어를 사용하여 구현될 수 있다.
일부 예들은 "일 예에서(in one example)" 또는 "예(an example)"라는 표현을 그들의 파생어들과 함께 사용하여 설명될 수 있다. 이러한 용어들은, 그 예와 관련하여 설명된 특정한 특징, 구조, 또는 특성이 적어도 하나의 예에 포함되어 있다는 것을 의미한다. 명세서의 다양한 곳에서 "일 예에서"라는 문구의 등장이 모두 동일한 예를 지칭하는 것일 필요는 없다.
일부 예는 "결합된(coupled)" 및 "접속된(connected)"이라는 표현을 그들의 파생어들과 함께 사용하여 설명될 수 있다. 이들 용어가 서로에 대해 꼭 동의어로서 의도된 것은 아니다. 예를 들어, "접속된" 및/또는 "결합된"이란 용어를 사용한 설명은 2개 이상의 구성요소들이 서로 직접 물리적 또는 전기적으로 접촉한다는 것을 나타낼 수 있다. 그러나, 용어 "결합된"은 또한 2개 이상의 구성요소가 서로 직접 접촉하고 있지 않지만 여전히 서로 협력하거나 상호작용하는 것을 의미할 수 있다.
읽는 사람이 기술적 개시 내용의 요지를 신속하게 확인할 수 있게 해주는 요약을 요구하는 37 C.F.R. Section 1.72(b)에 따라 본 개시의 요약서가 제공되어 있다는 것이 강조된다. 이는 청구항의 범위 또는 의미를 해석하거나 제한하도록 사용되지 않을 것이라는 이해와 함께 제시된다. 또한, 전술한 상세한 설명에서, 개시내용을 간소화할 목적으로, 다양한 특징들이 단일 예에 함께 그룹화되어 있음을 알 수 있다. 개시내용의 이러한 방법은, 주장된 예들이 각 청구항에서 명확히 나열되는 것보다 더 많은 특징을 요구하는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 이하의 특허청구범위에서 반영하는 바와 같이, 발명의 요지는 단일 개시 예의 모든 특징보다 적다. 따라서, 이하의 특허청구범위는 상세한 설명에 포함되며, 각 청구항이 개별 예로서 독립한다. 첨부된 특허청구범위에서, "포함하는(including)" 및 "여기서(in which)"라는 용어들이 각각 "포함하는(comprising)" 및 "여기에서(wherein)"의 평이한 영어 동등물(plain-English equivalent)로서 사용된다. 게다가, 용어 "제1", "제2", "제3", 등은 단순히 라벨로서 사용되며, 그의 객체에 대한 수치적 요건을 두기 위한 것이 아니다.
일부 예들에 따르면, 제1 장치 또는 제1 디바이스는 네트워크 통신 채널에 결합될 수 있는 제1 미디어 액세스 제어기 및 호스트 컴퓨팅 디바이스에 결합될 수 있는 제2 미디어 액세스 제어기를 포함할 수 있다. 제1 디바이스는 제2 미디어 액세스 제어기를 통해 전달되고/전달되거나 제1 미디어 액세스 제어기를 통해 전달되는 하나 이상의 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 수행하도록 구성된 하나 이상의 프로세서 회로를 또한 포함할 수 있다. 이러한 예들에 대하여, 제1 통신 링크는 제1 미디어 액세스 제어기를 제2 미디어 액세스 제어기에 결합할 수 있고 제2 통신 링크는 제1 미디어 액세스 제어기를 하나 이상의 프로세서 회로에 결합할 수 있다.
일부 예들에서, 제1 디바이스는 하나 이상의 프로세서 회로에 결합된 메모리를 또한 포함할 수 있다. 메모리는 하나 이상의 데이터 프레임 내에 네트워크 통신 채널로부터 제1 미디어 액세스 제어기에서 수신된 데이터 페이로드를 적어도 일시적으로 저장하도록 구성될 수 있거나, 하나 이상의 데이터 프레임 내에 호스트 컴퓨팅 디바이스로부터 제2 미디어 액세스 제어기에서 수신된 데이터 페이로드를 적어도 일시적으로 저장하도록 구성될 수 있다. 메모리는 휘발성 메모리를 포함할 수 있다.
일부 예들에서, 제1 디바이스에 포함된 하나 이상의 프로세서 회로는 하나 이상의 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 용이하게 하는 소프트웨어 서비스를 지원하는 운영 체제를 실행하는 것을 포함하는, 패킷 프로세싱과 연관된 작업을 수행하도록 또한 구성될 수 있다.
일부 예들에 따르면, 제1 디바이스에 포함된 제1 통신 링크는 제1 미디어 액세스 제어기가 데이터 프레임에 대한 패킷 프로세싱된 데이터 페이로드를 제2 미디어 액세스 제어기에 전달하는 것을 가능하게 하도록 구성될 수 있다. 또한, 데이터 프레임은 네트워크 통신 채널로부터 제1 미디어 액세스 제어기에서 수신될 수 있다. 수신된 데이터 프레임은 소프트웨어 서비스에 의해 데이터 페이로드가 패킷 프로세싱된 데이터가 되도록 제2 통신 링크를 통해 제1 미디어 액세스 제어기에 의해 하나 이상의 프로세서 회로에 전달될 수 있다.
일부 예들에서, 제1 디바이스에 포함된 제1 통신 링크는 제2 미디어 액세스 제어기가 제1 데이터 프레임을 제1 미디어 액세스 제어기에 전달하는 것을 가능하게 하도록 구성될 수 있다. 제1 데이터 프레임은 호스트 컴퓨팅 디바이스로부터 수신되었을 수 있다. 제1 미디어 액세스 제어기는 전달된 제1 데이터 프레임을 제1 통신 링크를 통해 수신하고, 전달된 제1 데이터 프레임을 소프트웨어 서비스에 의한 제1 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 위해 제2 통신 링크를 통해 하나 이상의 프로세서 회로에 전송하도록 구성될 수 있다. 제1 미디어 액세스 제어기는 제1 데이터 프레임에 대해 패킷 프로세싱된 데이터 페이로드를 제2 데이터 프레임 내에서 네트워크 통신 채널을 통해 송신하도록 또한 구성될 수 있다.
일부 예들에 따르면, 제1 디바이스에 포함된 제1 미디어 액세스 제어기는 네트워크 통신 채널과 연관된 네트워크의 관점으로부터 호스트 컴퓨팅 디바이스에 대한 네트워크 입력/출력 디바이스로서 기능할 수 있다. 제1 디바이스에 포함된 제2 미디어 액세스 제어기는 호스트 컴퓨팅 디바이스의 관점에서 네트워크 입력/출력 디바이스로서 기능할 수 있다.
일부 예들에서, 소프트웨어 서비스는 프로비저닝 소프트웨어 서비스, 분리 소프트웨어 서비스, 보안 소프트웨어 서비스, 식별 소프트웨어 서비스 또는 계량 소프트웨어 서비스 중 적어도 하나를 포함할 수 있다. 소프트웨어 서비스는, 호스트 컴퓨팅 디바이스를 운용하도록 구성된 서비스 제공자와, 호스트 컴퓨팅 디바이스에서 유지되는 컴퓨팅 자원들을 활용하도록 구성된 하나 이상의 테넌트 사이의 하나 이상의 서비스 레벨 합의에 기초할 수 있다. 일부 예들에 따르면, 하나 이상의 테넌트들은 호스트 컴퓨팅 디바이스에서 유지되는 컴퓨팅 자원들을 활용하도록 구성될 수 있는 하나 이상의 가상 머신들로서 개별적으로 구성됨으로써 컴퓨팅 자원들을 활용하도록 구성될 수 있다.
일부 예들에 따르면, 제1 디바이스에 포함된 제1 미디어 액세스 제어기 또는 제2 미디어 액세스 제어기는 이더넷 사양에 따라 동작하도록 구성될 수 있다. 이더넷 사양은 IEEE 802.3을 포함할 수 있다.
일부 예들에 따르면, 제1 디바이스에 포함된 제1 미디어 액세스 제어기는 제1 인터페이스를 통해 제2 통신 링크에 결합되도록 구성될 수 있다. 또한, 제1 디바이스에 포함된 제2 미디어 액세스 제어기는 제2 인터페이스를 통해 호스트 컴퓨팅 디바이스에 결합되도록 구성될 수 있다. 이러한 예들에 대하여, 제1 인터페이스 및 제2 인터페이스 모두는 PCI 익스프레스 사양에 따라 동작하도록 구성될 수 있다.
일부 예들에서, 제1 디바이스에 포함된 하나 이상의 프로세서 회로는 다중-코어 프로세서의 하나 이상의 코어들을 포함할 수 있다.
일부 예들에 따르면, 제2 장치 또는 제2 디바이스는 호스트 컴퓨팅 디바이스에 결합될 수 있는 제1 미디어 액세스 제어기 및 하나 이상의 프로세서 회로에 결합될 수 있고, 또한 네트워크 통신 채널에 결합될 수 있는 제2 미디어 액세스 제어기를 포함할 수 있다. 하나 이상의 프로세서 회로는 제1 미디어 액세스 제어기를 통해 전달되고/전달되거나 제2 미디어 액세스 제어기로 전달되거나 또는 그를 통해 전달되는 하나 이상의 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 수행하도록 구성될 수 있다. 일부 예들에서, 제2 장치는 제1 미디어 액세스 제어기를 제2 미디어 액세스 제어기에 결합하도록 구성된 통신 링크를 또한 포함할 수 있다.
일부 예들에서, 제2 디바이스는 제2 미디어 액세스 제어기를 네트워크 통신 채널에 물리적으로 결합하도록 구성된 커넥터를 또한 포함할 수 있다.
일부 예들에서, 제2 디바이스에 포함된 하나 이상의 프로세서 회로는 하나 이상의 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 용이하게 하는 소프트웨어 서비스를 지원하는 운영 체제를 실행하는 것을 포함하는, 패킷 프로세싱과 연관된 작업을 수행하도록 또한 구성될 수 있다.
일부 예들에 따르면, 제2 디바이스에 포함된 통신 링크는 제2 미디어 액세스 제어기가 데이터 프레임에 대한 패킷 프로세싱된 데이터 페이로드를 제1 미디어 액세스 제어기에 전달하는 것을 가능하게 하도록 구성될 수 있다. 이러한 예들에 대하여, 데이터 프레임은 네트워크 통신 채널로부터 제2 미디어 액세스 제어기에서 수신되었을 수 있다. 수신된 데이터 프레임은 소프트웨어 서비스에 의해 데이터 페이로드가 패킷 프로세싱된 데이터가 되도록 제2 미디어 액세스 제어기에 의해 하나 이상의 프로세서 회로에 전달되었을 수 있다.
일부 예들에서, 제2 디바이스에 포함된 통신 링크는 제1 미디어 액세스 제어기가 제1 데이터 프레임을 제2 미디어 액세스 제어기에 전달하는 것을 가능하게 하도록 구성될 수 있다. 이러한 예들에 대하여, 제1 데이터 프레임은 호스트 컴퓨팅 디바이스로부터 수신되었을 수 있다. 제2 미디어 액세스 제어기는 제1 데이터 프레임을 수신하고, 제1 데이터 프레임을 소프트웨어 서비스에 의한 제1 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 위해 하나 이상의 프로세서 회로에 전송하도록 구성될 수 있다. 제2 미디어 액세스 제어기는 제1 데이터 프레임에 대해 패킷 프로세싱된 데이터 페이로드를 네트워크 통신 채널을 통해 제2 데이터 프레임 내에서 송신하도록 또한 구성될 수 있다.
일부 예들에 따르면, 제2 디바이스에 포함된 제2 미디어 액세스 제어기는 네트워크 통신 채널과 연관된 네트워크의 관점으로부터 호스트 컴퓨팅 디바이스에 대한 네트워크 입력/출력 디바이스로서 기능하도록 구성될 수 있다. 이러한 예들에 대하여, 제2 디바이스에 포함된 제1 미디어 액세스 제어기는 호스트 컴퓨팅 디바이스의 관점에서 네트워크 입력/출력 디바이스로서 기능하도록 구성될 수 있다.
일부 예들에서, 제2 디바이스에 포함된 제1 미디어 액세스 제어기 또는 제2 미디어 액세스 제어기는 이더넷 사양에 따라 동작하도록 각각 구성될 수 있다. 이러한 예들에 대하여, 이더넷 사양은 IEEE 802.3을 포함할 수 있다.
일부 예들에 따르면, 제2 디바이스에 포함된 제2 미디어 액세스 제어기는 제2 인터페이스를 통해 하나 이상의 프로세서 회로에 결합될 수 있다. 또한, 제2 디바이스에 포함된 제1 미디어 액세스 제어기는 제1 인터페이스를 통해 호스트 컴퓨팅 디바이스에 결합될 수 있다. 이러한 예들에 대하여, 제1 인터페이스 및 제2 인터페이스 모두는 PCI 익스프레스 사양에 따라 동작하도록 구성될 수 있다.
일부 예들에서, 제1 방법이 구현될 수 있다. 제1 방법을 구현하는 것은 제1 미디어 액세스 제어기에 결합된 호스트 컴퓨팅 디바이스로부터 제1 데이터 프레임을 제1 미디어 액세스 제어기에서 수신하는 것을 포함할 수 있다. 그러고 나서 제1 데이터 프레임은, 제2 미디어 액세스 제어기를 제1 미디어 액세스 제어기에 결합하는 제1 통신 링크를 통해 제2 미디어 액세스 제어기에 전달될 수 있다. 그러고 나서 제1 데이터 프레임은 제2 미디어 액세스 제어기에서 수신될 수 있고 그 후 제2 통신 링크를 통해 하나 이상의 프로세서 회로에 전달될 수 있다. 하나 이상의 프로세서 회로들은 제1 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 수행하도록 구성될 수 있다. 그러고 나서 패킷 프로세싱된 데이터 페이로드는 제1 통신 링크를 통해 제2 미디어 액세스 제어기에서 수신될 수 있다. 패킷 프로세싱된 데이터 페이로드는 제2 데이터 프레임에 포함될 수 있고, 그 후 제2 데이터 프레임은 제2 미디어 액세스 제어기에 결합된 네트워크 통신 채널을 통해 제2 미디어 액세스 제어기로부터 송신될 수 있다.
일부 예들에 따르면, 제1 방법을 구현하는데 있어서, 하나 이상의 프로세서 회로는 하나 이상의 데이터 프레임에 대한 데이터 페이로드들의 패킷 프로세싱을 용이하게 하는 소프트웨어 서비스를 지원하는 운영 체제를 실행하는 것을 포함하는, 패킷 프로세싱과 연관된 작업을 수행하도록 또한 구성될 수 있다.
일부 예들에 따르면, 제1 방법을 구현하는데 있어서, 소프트웨어 서비스는, 호스트 컴퓨팅 디바이스를 운용하도록 구성된 서비스 제공자와, 호스트 컴퓨팅 디바이스에서 유지되는 컴퓨팅 자원들을 활용하도록 구성된 하나 이상의 테넌트 사이의 하나 이상의 서비스 레벨 합의에 기초할 수 있다. 소프트웨어 서비스는 프로비저닝 소프트웨어 서비스, 분리 소프트웨어 서비스, 보안 소프트웨어 서비스, 식별 소프트웨어 서비스 또는 계량 소프트웨어 서비스 중 적어도 하나를 포함할 수 있다. 또한, 하나 이상의 테넌트는 호스트 컴퓨팅 디바이스에서 유지되는 컴퓨팅 자원들을 활용하도록 구성된 하나 이상의 가상 머신으로서 별개로 구성될 수 있다.
일부 예들에서, 제1 방법을 구현하는데 있어서, 제1 미디어 액세스 제어기 또는 제2 미디어 액세스 제어기는 제1 방법을 구현하기 위해 이더넷 사양에 따라 동작될 수 있다. 이더넷 사양은 IEEE 802.3을 포함할 수 있다.
일부 예들에서, 제2 방법이 구현될 수 있다. 제2 방법을 구현하는 것은 네트워크 통신 채널에 결합된 제1 미디어 액세스 제어기에서 제1 데이터 프레임을 수신하는 것을 포함할 수 있다. 제1 데이터 프레임은 제2 미디어 액세스 제어기에 결합된 호스트 컴퓨팅 디바이스에 대해 예정된다. 그러고 나서, 제1 데이터 프레임은 제1 통신 링크를 통해 하나 이상의 프로세서 회로에 전달될 수 있다. 하나 이상의 프로세서 회로들은 제1 데이터 프레임에 대한 데이터 페이로드의 패킷 프로세싱을 수행하도록 구성될 수 있다. 이러한 예들에 대하여, 데이터 페이로드는 하나 이상의 프로세서 회로로부터 제1 통신 링크를 통해 제1 미디어 액세스 제어기에서 수신될 수 있다. 그러고 나서, 패킷 프로세싱된 데이터 페이로드는 제2 데이터 프레임에 포함될 수 있다. 그러고 나서 제2 데이터 프레임은, 제1 미디어 액세스 제어기를 제2 미디어 액세스 제어기에 결합하는 제2 통신 링크를 통해 제2 미디어 액세스 제어기에 전달될 수 있다. 그 다음에, 제2 데이터 프레임은 제2 미디어 액세스 제어기에서 수신되고 나서, 제2 미디어 액세스 제어기로부터 호스트 컴퓨팅 디바이스에 전송될 수 있다.
일부 예들에 따르면, 제2 방법을 구현하는데 있어서, 하나 이상의 프로세서 회로는 하나 이상의 데이터 프레임에 대한 데이터 페이로드들의 패킷 프로세싱을 용이하게 하는 소프트웨어 서비스를 지원하는 운영 체제를 실행하는 것을 포함하는, 패킷 프로세싱과 연관된 작업을 수행하도록 또한 구성될 수 있다.
일부 예들에 따르면, 제2 방법을 구현하는데 있어서, 소프트웨어 서비스는, 호스트 컴퓨팅 디바이스를 운용하도록 구성된 서비스 제공자와, 호스트 컴퓨팅 디바이스에서 유지되는 컴퓨팅 자원들을 활용하도록 구성된 하나 이상의 테넌트 사이의 하나 이상의 서비스 레벨 합의에 기초할 수 있다. 소프트웨어 서비스는 프로비저닝 소프트웨어 서비스, 분리 소프트웨어 서비스, 보안 소프트웨어 서비스, 식별 소프트웨어 서비스 또는 계량 소프트웨어 서비스 중 적어도 하나를 포함할 수 있다. 또한, 하나 이상의 테넌트는 호스트 컴퓨팅 디바이스에서 유지되는 컴퓨팅 자원들을 활용하도록 구성된 하나 이상의 가상 머신으로서 별개로 구성될 수 있다.
일부 예들에서, 제2 방법을 구현하는데 있어서, 제1 미디어 액세스 제어기 또는 제2 미디어 액세스 제어기는 제1 방법을 구현하기 위해 이더넷 사양에 따라 동작될 수 있다. 이더넷 사양은 IEEE 802.3을 포함할 수 있다.
일부 예들에 따라, 컴퓨팅 디바이스상에서 실행되는 것에 응답하여 컴퓨팅 디바이스로 하여금 전술한 제1 방법 또는 제2 방법을 수행하게 하는 복수의 명령어를 포함하는 적어도 하나의 머신 판독가능한 매체가 제공된다.
일부 예들에서, 장치 또는 디바이스는 전술한 제1 방법 또는 제2 방법을 수행하기 위한 수단을 포함할 수 있다.
일부 예들에서 통신 디바이스는 전술한 제1 방법 또는 제2 방법을 수행하도록 구성될 수 있다.
발명의 대상이 구조적 특징 및/또는 방법적 동작에 특정한 언어로 기술되어 있지만, 첨부된 특허청구범위에 정의된 발명의 대상이 이상에서 기술한 특정의 특징 또는 동작으로 반드시 제한되는 것은 아니라는 것을 이해하여야 한다. 오히려, 이상에서 기술한 특정의 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태로서 개시되어 있다.

Claims (29)

  1. 장치로서,
    네트워크 통신 채널에 결합될 수 있는 제1 미디어 액세스 제어기(MAC);
    호스트 컴퓨팅 디바이스로의 접속을 위한 호스트 통신 링크에 결합될 수 있는 제2 MAC - 상기 제2 MAC은 상기 호스트 통신 링크와 상기 제1 MAC 사이의 통신 경로에 개입함(intervening) -; 및
    상기 제1 MAC을 상기 제2 MAC에 결합시키는 제1 통신 링크 - 상기 제1 통신 링크는 상기 통신 경로의 일부임 -
    를 포함하고,
    상기 제1 MAC은 상기 네트워크 통신 채널과 연관된 네트워크의 관점에서 상기 호스트 컴퓨팅 디바이스에 대한 네트워크 입력/출력 디바이스로서 기능하고, 상기 제2 MAC은 상기 호스트 컴퓨팅 디바이스의 관점에서 상기 네트워크 입력/출력 디바이스로서 기능하는, 장치.
  2. 제1항에 있어서,
    상기 제1 MAC을 통해 전달되는 하나 이상의 데이터 프레임에 대한 데이터 페이로드들을 프로세싱하는 프로세서 회로; 및
    상기 제1 MAC을 상기 프로세서 회로에 결합시키는 제2 통신 링크
    를 포함하는 장치.
  3. 제1항에 있어서,
    상기 제2 MAC을 통해 전달되는 하나 이상의 데이터 프레임에 대한 데이터 페이로드들을 프로세싱하는 프로세서 회로; 및
    상기 제2 MAC을 상기 프로세서 회로에 결합시키는 제2 통신 링크
    를 포함하는 장치.
  4. 제1항에 있어서,
    상기 제1 MAC 또는 상기 제2 MAC 중 하나 이상을 통해 전달되는 하나 이상의 데이터 프레임에 대한 데이터 페이로드들을 프로세싱하는 프로세서 회로; 및
    상기 제1 MAC 또는 제2 MAC 중 적어도 하나를 상기 프로세서 회로에 결합시키는 제2 통신 링크
    를 포함하는 장치.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 프로세서 회로에 결합된 메모리를 포함하고, 상기 메모리는 상기 제1 MAC 또는 상기 제2 MAC에서 수신된 하나 이상의 데이터 페이로드들을 적어도 일시적으로 저장하도록 구성되는 장치.
  6. 제5항에 있어서, 상기 메모리는 휘발성 메모리를 포함하는 장치.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 MAC은 데이터 프레임에 대한 패킷 프로세싱된 데이터 페이로드를 상기 제1 통신 링크를 통해 상기 제2 MAC에 전달하고, 상기 데이터 프레임은 상기 네트워크 통신 채널로부터 상기 제1 MAC에서 수신되는 장치.
  8. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제2 MAC은 제1 데이터 프레임을 상기 제1 통신 링크를 통해 상기 제1 MAC에 전달하고, 상기 제1 데이터 프레임은 상기 호스트 컴퓨팅 디바이스로부터 수신되는 장치.
  9. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 MAC 또는 상기 제2 MAC 중 적어도 하나는 IEEE(Institute of Electrical and Electronics Engineers) 802.3 이더넷 사양을 포함하는 이더넷 사양에 따라 동작하는 장치.
  10. 호스트 컴퓨팅 디바이스에 결합되는 제1 미디어 액세스 제어기(MAC) 수단;
    하나 이상의 데이터 프레임에 대한 데이터 페이로드들을 프로세싱하는 프로세서 수단;
    상기 프로세서 수단에 결합되고 또한 네트워크 통신 채널에 결합되는 제2 MAC 수단 - 상기 제2 MAC은 상기 네트워크 통신 채널과 상기 제1 MAC 사이의 통신 경로에 개입함 -; 및
    상기 제1 MAC을 상기 제2 MAC에 결합시키는 통신 링크 수단 - 상기 통신 링크는 상기 통신 경로의 일부임 -
    을 포함하고,
    상기 제2 MAC은 상기 네트워크 통신 채널과 연관된 네트워크의 관점에서 상기 호스트 컴퓨팅 디바이스에 대한 네트워크 입력/출력 디바이스로서 기능하고, 상기 제1 MAC은 상기 호스트 컴퓨팅 디바이스의 관점에서 상기 네트워크 입력/출력 디바이스로서 기능하는, 장치.
  11. 제10항에 있어서,
    상기 하나 이상의 데이터 프레임은 상기 제1 MAC 또는 상기 제2 MAC 중 적어도 하나를 통해 전달되는 장치.
  12. 제11항에 있어서,
    상기 제2 MAC을 상기 네트워크 통신 채널에 물리적으로 결합시키는 커넥터 수단을 포함하는 장치.
  13. 제11항에 있어서,
    상기 프로세서 수단은 프로세싱과 연관된 작업들을 수행하고, 상기 작업은 소프트웨어 서비스를 지원하는 운영 체제를 실행하는 것 중 적어도 하나를 포함하고, 상기 소프트웨어 서비스는 상기 하나 이상의 데이터 프레임에 대한 상기 데이터 페이로드들의 패킷 프로세싱을 용이하게 하는 장치.
  14. 제13항에 있어서,
    상기 통신 링크 수단은 상기 제2 MAC 수단이 데이터 프레임에 대한 패킷 프로세싱된 데이터 페이로드를 상기 제1 MAC 수단에 전달하는 것을 가능하게 하고, 상기 데이터 프레임은 상기 소프트웨어 서비스에 의해 패킷 프로세싱되도록 상기 제2 MAC 수단에 의해 상기 프로세서 수단에 전달되는 장치.
  15. 제14항에 있어서,
    상기 통신 링크 수단은 상기 제1 MAC 수단이 제1 데이터 프레임을 상기 제2 MAC에 전달하는 것을 가능하게 하고, 상기 제1 MAC 수단은 상기 호스트 컴퓨팅 디바이스로부터 상기 제1 데이터 프레임을 수신하고, 상기 제2 MAC 수단은 제2 데이터 프레임 내의 상기 제1 데이터 프레임에 대한 패킷 프로세싱된 데이터 페이로드를 상기 네트워크 통신 채널을 통해 송신하는 장치.
  16. 삭제
  17. 제11항 내지 제15항 중 어느 한 항에 있어서,
    상기 제1 MAC 수단은 제1 인터페이스 수단을 통해 상기 호스트 컴퓨팅 디바이스에 결합되고, 상기 제2 MAC 수단은 제2 인터페이스 수단을 통해 상기 프로세서 수단에 결합되며, 상기 제1 인터페이스 수단 또는 상기 제2 인터페이스 수단 중 적어도 하나는 PCI 익스프레스(Peripheral Component Interconnect Express) 사양에 따라 동작하는 장치.
  18. 방법으로서,
    제1 MAC에서 제1 데이터 프레임을 수신하는 단계 - 상기 제1 데이터 프레임은 제2 MAC에 결합된 호스트 컴퓨팅 디바이스로 예정되고(destined), 상기 제1 MAC은 상기 호스트 컴퓨팅 디바이스와 상기 제2 MAC 사이의 통신 경로에 개입함 -;
    상기 제1 데이터 프레임을 제1 통신 링크를 통해 프로세서 회로에 전달하는 단계 - 상기 프로세서 회로는 상기 제1 데이터 프레임으로부터 데이터 페이로드를 생성하고, 상기 제1 통신 링크는 상기 통신 경로의 일부임 -;
    상기 제1 MAC에서, 상기 제1 데이터 프레임으로부터 상기 데이터 페이로드를 수신하는 단계;
    상기 데이터 페이로드를 포함하는 제2 데이터 프레임을 생성하는 단계; 및
    네트워크 통신 채널을 통해 상기 제2 데이터 프레임을 상기 제2 MAC에 전달하는 단계 - 상기 제2 MAC은 상기 제2 데이터 프레임을 상기 호스트 컴퓨팅 디바이스에 송신함 -
    를 포함하고,
    상기 제1 MAC은 상기 네트워크 통신 채널과 연관된 네트워크의 관점에서 상기 호스트 컴퓨팅 디바이스에 대한 네트워크 입력/출력 디바이스로서 기능하고, 상기 제2 MAC은 상기 호스트 컴퓨팅 디바이스의 관점에서 상기 네트워크 입력/출력 디바이스로서 기능하는, 방법.
  19. 제18항에 있어서,
    상기 프로세서 회로는 상기 데이터 페이로드를 생성하기 위해 상기 제1 데이터 프레임에 패킷 프로세서를 적용하고, 상기 패킷 프로세싱은 데이터 페이로드들의 패킷 프로세싱을 용이하게 하는 소프트웨어 서비스를 포함하는 방법.
  20. 제19항에 있어서,
    상기 소프트웨어 서비스는 상기 호스트 컴퓨팅 디바이스를 운용하도록 구성된 서비스 제공자와 상기 호스트 컴퓨팅 디바이스에서 유지되는 컴퓨팅 자원들을 활용하도록 구성된 하나 이상의 테넌트(tenant) 사이의 하나 이상의 서비스 레벨 합의(Service Level Agreement)에 기초하는 방법.
  21. 제20항에 있어서,
    상기 소프트웨어 서비스는 프로비저닝 소프트웨어 서비스, 분리 소프트웨어 서비스, 보안 소프트웨어 서비스, 식별 소프트웨어 서비스 또는 계량 소프트웨어 서비스 중 적어도 하나를 포함하는 방법.
  22. 제20항에 있어서,
    상기 하나 이상의 테넌트는 상기 호스트 컴퓨팅 디바이스에서 유지되는 상기 컴퓨팅 자원들을 활용하도록 구성된 하나 이상의 가상 머신으로서 별개로 구성되는 방법.
  23. 방법으로서,
    네트워크 통신 채널에 결합되는 제1 미디어 액세스 제어기(MAC)에서 제1 데이터 프레임을 수신하는 단계 - 상기 제1 MAC은 제2 MAC으로부터 상기 제1 데이터 프레임을 수신하고, 상기 제1 MAC은 호스트 컴퓨팅 디바이스로부터 상기 제1 데이터 프레임을 수신하고, 상기 제2 MAC은 상기 호스트 컴퓨팅 디바이스로 접속하기 위한 호스트 통신 링크와 상기 제1 MAC 사이의 통신 경로에 개입함 -;
    제1 통신 링크를 통해 상기 제1 데이터 프레임을 프로세서 회로에 전달하는 단계 - 상기 프로세서 회로는 상기 제1 데이터 프레임으로부터 데이터 페이로드를 생성하고, 상기 제1 통신 링크는 상기 통신 경로의 일부임 -;
    상기 제1 MAC에서, 상기 프로세서 회로로부터 상기 데이터 페이로드를 수신하는 단계;
    상기 데이터 페이로드를 포함하는 제2 데이터 프레임을 생성하는 단계; 및
    상기 제2 데이터 프레임을 네트워크 통신 채널을 통해 전송하는 단계
    를 포함하고,
    상기 제2 MAC은 상기 네트워크 통신 채널과 연관된 네트워크의 관점에서 상기 호스트 컴퓨팅 디바이스에 대한 네트워크 입력/출력 디바이스로서 기능하고, 상기 제1 MAC은 상기 호스트 컴퓨팅 디바이스의 관점에서 상기 네트워크 입력/출력 디바이스로서 기능하는, 방법.
  24. 제23항에 있어서,
    상기 프로세서 회로는 상기 데이터 페이로드를 생성하기 위해 상기 제1 데이터 프레임에 패킷 프로세서를 적용하고, 상기 패킷 프로세싱은 데이터 페이로드들의 패킷 프로세싱을 용이하게 하는 소프트웨어 서비스를 포함하는 방법.
  25. 제24항에 있어서,
    상기 소프트웨어 서비스는 상기 호스트 컴퓨팅 디바이스를 운용하도록 구성된 서비스 제공자와 상기 호스트 컴퓨팅 디바이스에서 유지되는 컴퓨팅 자원들을 활용하도록 구성된 하나 이상의 테넌트 사이의 하나 이상의 서비스 레벨 합의에 기초하는 방법.
  26. 제25항에 있어서,
    상기 서비스는 프로비저닝 소프트웨어 서비스, 분리 소프트웨어 서비스, 보안 소프트웨어 서비스, 식별 소프트웨어 서비스 또는 계량 소프트웨어 서비스 중 적어도 하나를 포함하는 방법.
  27. 제26항에 있어서,
    상기 하나 이상의 테넌트는 상기 호스트 컴퓨팅 디바이스에서 유지되는 상기 컴퓨팅 자원들을 활용하도록 구성된 하나 이상의 가상 머신으로서 별개로 구성되는 방법.
  28. 제18항 내지 제27항 중 어느 한 항에 있어서,
    상기 제1 MAC 또는 상기 제2 MAC 중 적어도 하나는 IEEE(Institute of Electrical and Electronics Engineers) 802.3 이더넷 사양을 포함하는 이더넷 사양에 따라 동작하는 방법.
  29. 복수의 명령어들을 포함하는 적어도 하나의 컴퓨터 판독가능한 저장 매체로서, 상기 명령어들은 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여 상기 컴퓨팅 디바이스로 하여금 제18항 내지 제27항 중 어느 한 항의 방법을 수행하게 하는, 컴퓨터 판독가능한 저장 매체.
KR1020167012264A 2012-05-02 2012-05-02 다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱 KR101745846B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/036108 WO2013165410A1 (en) 2012-05-02 2012-05-02 Packet processing of data using multiple media access controllers

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020147030193A Division KR101622206B1 (ko) 2012-05-02 2012-05-02 다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱

Publications (2)

Publication Number Publication Date
KR20160060147A KR20160060147A (ko) 2016-05-27
KR101745846B1 true KR101745846B1 (ko) 2017-06-12

Family

ID=49514669

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167012264A KR101745846B1 (ko) 2012-05-02 2012-05-02 다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱
KR1020147030193A KR101622206B1 (ko) 2012-05-02 2012-05-02 다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020147030193A KR101622206B1 (ko) 2012-05-02 2012-05-02 다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱

Country Status (4)

Country Link
US (1) US20140059170A1 (ko)
KR (2) KR101745846B1 (ko)
CN (1) CN104272697B (ko)
WO (1) WO2013165410A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
US9888095B2 (en) * 2015-06-26 2018-02-06 Microsoft Technology Licensing, Llc Lightweight transport protocol
US9674090B2 (en) * 2015-06-26 2017-06-06 Microsoft Technology Licensing, Llc In-line network accelerator
KR102274038B1 (ko) 2015-08-03 2021-07-09 삼성전자주식회사 백업 기능을 갖는 메모리 모듈

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040158710A1 (en) * 2002-12-31 2004-08-12 Buer Mark L. Encapsulation mechanism for packet processing
US20090290501A1 (en) * 2008-05-23 2009-11-26 Levy Joseph H Capture and regeneration of a network data using a virtual software switch
US20100125477A1 (en) * 2008-11-14 2010-05-20 Oracle International Corporation Operation control for deploying and managing software service in a virtual environment

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3695447B2 (ja) * 2002-02-27 2005-09-14 日立電線株式会社 仮想lan接続機器
US20050021558A1 (en) * 2003-06-11 2005-01-27 Beverly Harlan T. Network protocol off-load engine memory management
US7545773B2 (en) 2005-06-29 2009-06-09 Intel Corporation Multiple media access control apparatus and methods
US7724702B2 (en) * 2005-12-16 2010-05-25 Motorola, Inc. Multiple configuration communication apparatus
US7724683B2 (en) * 2007-03-31 2010-05-25 Intel Corporation Arrangements for controlling multiple MAC interfaces
US7830875B2 (en) 2007-06-13 2010-11-09 Juniper Networks, Inc. Autonegotiation over an interface for which no autonegotiation standard exists
US8478853B2 (en) * 2009-05-29 2013-07-02 Oracle America, Inc. Handling of multiple MAC unicast addresses with virtual machines
KR20120062174A (ko) * 2010-12-06 2012-06-14 한국전자통신연구원 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법
US8996644B2 (en) * 2010-12-09 2015-03-31 Solarflare Communications, Inc. Encapsulated accelerator
US8832249B2 (en) * 2011-11-30 2014-09-09 At&T Intellectual Property I, L.P. Methods and apparatus to adjust resource allocation in a distributive computing network
US8745635B2 (en) * 2012-04-24 2014-06-03 Sap Ag Managing business process messaging

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040158710A1 (en) * 2002-12-31 2004-08-12 Buer Mark L. Encapsulation mechanism for packet processing
US20090290501A1 (en) * 2008-05-23 2009-11-26 Levy Joseph H Capture and regeneration of a network data using a virtual software switch
US20100125477A1 (en) * 2008-11-14 2010-05-20 Oracle International Corporation Operation control for deploying and managing software service in a virtual environment

Also Published As

Publication number Publication date
WO2013165410A1 (en) 2013-11-07
US20140059170A1 (en) 2014-02-27
CN104272697A (zh) 2015-01-07
KR20160060147A (ko) 2016-05-27
KR20140144247A (ko) 2014-12-18
CN104272697B (zh) 2018-11-02
KR101622206B1 (ko) 2016-05-18

Similar Documents

Publication Publication Date Title
KR101745846B1 (ko) 다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱
US10419239B2 (en) Switch dependent teaming for high availability of virtual network functions
US20230359510A1 (en) Technologies for hierarchical clustering of hardware resources in network function virtualization deployments
EP3355526B1 (en) Systems and methods for propagating metadata of in-flight packets within kernel space
US10806057B2 (en) Multi-node system-fan-control switch
US9767067B2 (en) Baseboard management systems and methods with distributed intelligence for multi-node platforms
CN109617735B (zh) 云计算数据中心系统、网关、服务器及报文处理方法
US10341230B2 (en) Techniques for forwarding or receiving data segments associated with a large data packet
US10345877B2 (en) Method and system for boosting power supply
US10911405B1 (en) Secure environment on a server
US9948558B2 (en) Techniques for a switch to receive network controller sideband interface control packets
CN105049464B (zh) 用于加速网络虚拟化的技术
US9804980B2 (en) System management through direct communication between system management controllers
AU2016202660B2 (en) Techniques for forwarding or receiving data segments associated with a large data packet
US20160170923A1 (en) Aggregate baseboard management controller (bmc) controller
US9654421B2 (en) Providing real-time interrupts over ethernet
KR20110124333A (ko) 가상 네트워크 환경에서 복사 회피
US20190042936A1 (en) Techniques to manage training or trained models for deep learning applications
CN104077187A (zh) 用于调度应用程序的执行的方法和系统
US11132215B2 (en) Techniques to facilitate out of band management in a virtualization environment
US9503278B2 (en) Reflective relay processing on logical ports for channelized links in edge virtual bridging systems
CN110581800B (zh) 一种创建虚拟路由器接口的方法及装置、存储介质和设备
WO2023112012A1 (en) Traffic service threads for large pools of network addresses
CN114422297B (zh) 一种多场景虚拟网络流量监控方法、系统、终端及介质
CN106294277A (zh) 一种基于pcie总线的smp计算系统

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant