KR101547709B1 - 드라이버 패스트 페일오버를 통한 제로 패킷 손실의 에너지 효율적인 이더넷 링크 트랜지션 - Google Patents

드라이버 패스트 페일오버를 통한 제로 패킷 손실의 에너지 효율적인 이더넷 링크 트랜지션 Download PDF

Info

Publication number
KR101547709B1
KR101547709B1 KR1020100102190A KR20100102190A KR101547709B1 KR 101547709 B1 KR101547709 B1 KR 101547709B1 KR 1020100102190 A KR1020100102190 A KR 1020100102190A KR 20100102190 A KR20100102190 A KR 20100102190A KR 101547709 B1 KR101547709 B1 KR 101547709B1
Authority
KR
South Korea
Prior art keywords
network adapter
adapter
primary network
primary
switch
Prior art date
Application number
KR1020100102190A
Other languages
English (en)
Other versions
KR20110046287A (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 KR20110046287A publication Critical patent/KR20110046287A/ko
Application granted granted Critical
Publication of KR101547709B1 publication Critical patent/KR101547709B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/10Current supply arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/0833Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network energy consumption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

드라이버 패스트 페일오버(driver fast failover)를 통한 에너지 효율적인 이더넷 링크 트랜지션에 따른 제로 패킷 손실을 위한 메커니즘이 제공된다. 디폴트로, 상기 메커니즘은 낮은 에너지 사용량으로 저속으로 동작하는 주 어댑터 및 디스에이블되는 부 어댑터를 사용한다. 이 디폴트 구성은 낮은 링크 이용률의 기간들 동안 사용된다. 시스템 또는 입력/출력 부하가 고속이 요구될 정도인 경우, 상기 메커니즘은 상기 부 어댑터를 그것의 가장 높은 지원 링크 속도로 인에이블시킨다. 상기 주 어댑터를 통해 실행중인 진행중의 모든 송신 트래픽은 완료될 것이고, 완료 즉시, 상기 드라이버는 주소 결정 요청(address resolution request)을 발생시키고 그 요청을 상기 부 어댑터를 통해 전송한다. 이 프로세스가 완료된 후, 상기 주 어댑터는 링크 다운(link down)으로 트랜지션하고, 제로 패킷 손실 트랜지션은 완료된다.

Description

드라이버 패스트 페일오버를 통한 제로 패킷 손실의 에너지 효율적인 이더넷 링크 트랜지션{ZERO PACKET LOSS ENERGY EFFICIENT ETHERNET LINK TRANSITION VIA DRIVER FAST FAILOVER}
본 발명은 일반적으로 향상된 데이터 처리 장치 및 방법과 관련되고, 더 상세하게는 드라이버 패스트 페일오버(driver fast failover)를 통해 에너지 효율적인 이더넷 링크 트랜지션(energy efficient Ethernet link transition)에 따라 제로 패킷 손실(zero packet loss)을 달성하기 위한 장치 및 방법과 관련된다.
이더넷은 표준 랜(local area network, LAN) 접근 방법이다. 이더넷은 미국 전기전자 기술자협회(Institute of Electrical and Electronics Engineers, IEEE)에 의해 802.3 표준으로 정의되는데, 이는 회사 또는 홈 네트워크에서 컴퓨터들을 연결하기 위해 사용될 뿐만 아니라 인터넷 접근을 위해 케이블 모뎀 또는 디지털 가입 회선(digital subscriber line, DSL) 모뎀에 하나의 컴퓨터를 연결하기 위해 사용된다.
10/100 이더넷 포트는 두 가지의 속도들, 즉 10Mbps(10Base-T) 및 100Mbps(100Base-T)를 지원한다. 10/100/1000 포트는 1Gbps(1,000 메가비트) 속도의 기가비트 이더넷을 포함한다. 과거에는, 이더넷 디바이스들은 서로 협상(negotiate)하여 가능한 한 가장 높은 속도로 전송했다. 에너지 스타 컴플라이언스(Energy Star compliance)는 2009년까지 에너지 효율적인 이더넷을 필요로 했다. 적응식 링크 레이트(Adaptive Link Rate, ALR)를 중심으로 돌아가는 현재의 지향 이더넷은 이러한 목표를 달성할 것인데, 이 ALR은 아직 IEEE 표준으로 수립되지 않았다.
이더넷 트래픽의 버스티 본질(bursty nature)로 인해, ALR은 상기 링크를 낮은 이용률(low utilization)의 시간들 동안에는 저속으로 재협상(renegotiate)하고, 심한 이용률(heavy utilization)의 시간들 동안에는 고속으로 재협상하는 것으로 이루어진다. 이러한 ALR에 있어서 당면한 문제는, ALR이 아직 이용가능하지 않은 새로운 하드웨어, 스위치 및 표준 요건들을 강요할 것이라는 점이다.
더 나아가, 소프트웨어 기반의 해결책은 하드웨어/프로토콜 기능에 대한 원안 제안들(draft proposals)로부터는 이득을 보지 못한다. 상기 링크 재협상은 링크 리셋(link reset)을 요구하는데, 이 링크 리셋은 수백 밀리초가 걸리고 그 결과 패킷 감소(packet drops)를 초래한다. 패킷 감소의 수는 라인 속도(예, 10/100/1000/10000 Mbps)에 비례할 것이다. 레이턴시에 민감한 어플리케이션들(latency sensitive applications)(예를 들어, VoIP(Voice over Internet Protocol) 및 스트리밍 비디오, 고성능 컴퓨팅(HPC, high performance computing), 및 비(non)-TCP/IP 프로토콜들로부터의, 스트리밍 트래픽(streaming traffic))은 감소된 패킷들로부터 초래되는 높은 레이턴시에 의해 영향을 받는다. ALR이 준비가 되면, 그것은 하드웨어 및 프로토콜 기능을 통해 매우 빠른 트랜지션, 약 10ms의 트랜지션을 제공할 수는 있다. 그러나, ALR은 제로 패킷 손실을 보장할 수는 없다.
일 실시예에서, 데이터 처리 시스템에서 제로 패킷 손실을 갖는 에너지 효율적인 링크 트랜지션을 위한 방법이 제공된다. 상기 방법은 주 네트워크 어댑터(primary network adapter)를 저전력 모드(low power mode)로 작동(activate)시키는 단계, 부 네트워크 어댑터(secondary network adapter)를 디스에이블(disable)시키는 단계, 및 송신자(sender)로부터의 인커밍 트래픽(incoming traffic)을 상기 주 네트워크 어댑터로 라우트(route)하기 위해, 상기 주 네트워크 어댑터 및 상기 부 네트워크 어댑터에 결합되는 스위치를 구성하는 단계를 포함한다. 상기 방법은, 상기 주 네트워크 어댑터의 높은 이용률(utilization)을 감지(detect)하는 것에 응답하여, 상기 부 네트워크 어댑터를 고속 모드(high speed mode)로 작동시키는 단계, 상기 주 네트워크 어댑터를 통해 진행중인 모든 송신 요청들(all in-process transmit requests)을 완료(complete)하는 단계, 상기 부 네트워크 어댑터로(to and from) 데이터를 라우트하도록 상기 스위치를 구성하는 단계, 및 상기 주 네트워크 어댑터를 디스에이블시키는 단계를 더 포함한다.
다른 실시예들에서, 컴퓨터 사용가능 또는 판독가능 매체 - 이는 컴퓨터 판독가능 프로그램(computer readable program)을 가짐 - 를 포함하는 컴퓨터 프로그램 제품(computer program product)이 제공된다. 상기 컴퓨터 판독가능 프로그램은, 컴퓨팅 디바이스(computing device)를 통해 실행될 경우, 상기 컴퓨팅 디바이스가 상기 예시적인 방법 실시예에 관해 위에서 서술된 동작들의 조합들, 및 그 동작들 중 여러 동작들을 수행하도록 한다.
또 다른 실시예에서, 장치가 제공되는데, 상기 장치는 네트워크 인터페이스 디바이스(network interface device)를 포함한다. 상기 네트워크 인터페이스 디바이스는 주 네트워크 어댑터, 부 네트워크 어댑터, 및 스위치를 포함한다. 상기 스위치는 상기 주 네트워크 어댑터 및 상기 부 네트워크 어댑터에 결합된다. 상기 장치는 상기 네트워크 인터페이스 디바이스와 연관된 디바이스 드라이버(device driver), 및 이용률 감지 컴포넌트(utilization detection component)를 더 포함한다. 상기 디바이스 드라이버는 상기 주 네트워크 어댑터를 저전력 모드로 작동시키고, 상기 부 네트워크 어댑터를 디스에이블시키며, 송신자로부터의 인커밍 트래픽을 상기 주 네트워크 어댑터로 라우트하기 위해 상기 스위치를 구성하도록 구성된다. 상기 이용률 감지 컴포넌트가 상기 주 네트워크 어댑터의 높은 이용률을 감지하는 것에 응답하여, 상기 디바이스 드라이버는, 상기 부 네트워크 어댑터를 고속 모드로 작동시키고, 상기 주 네트워크 어댑터를 통해 진행중인 모든 송신 요청들을 완료하고, 상기 부 네트워크 어댑터로 데이터를 라우트하도록 상기 스위치를 구성하고, 상기 주 네트워크 어댑터를 디스에이블시키도록 구성된다.
본 발명의 여러 가지 특징들 및 이점들은 본 발명의 실시예들에 관한 이하의 상세한 설명에서 기술될 것이며, 이러한 본 발명의 여러 가지 특징들 및 이점들은 이하의 상세한 설명을 고려할 때 당해 기술 분야에서 통상의 기술을 가진 자들에게 분명해질 것이다.
본 발명 및 본 발명의 바람직한 사용 모드 및 추가의 목적들 및 이점들은 실시예들에 관한 다음의 상세한 설명을 참조하여 첨부되는 도면들과 함께 읽혀짐으로써 가장 잘 이해될 것이다.
도 1은 실시예들의 측면들이 구현될 수 있는 예시적인 분산형 데이터 처리 시스템의 도면이다.
도 2는 실시예들의 측면들이 구현될 수 있는 예시적인 데이터 처리 시스템의 블록도이다.
도 3은 실시예에 따른 드라이버 패스트 페일오버(driver fast failover)를 통한 에너지 효율적인 이더넷 링크 트랜지션에 따라 제로 패킷 손실을 갖는 데이터 처리 시스템에서의 여러 가지 층들을 도시하는 블록도이다.
도 4a-4c는 실시예에 따른 드라이버 패스트 페일오버를 통한 에너지 효율적인 이더넷 링크 트랜지션에 따른 제로 패킷 손실을 위한 메커니즘의 예시적인 구현을 도시한다.
도 5는 실시예에 따른 드라이버 패스트 페일오버를 통한 에너지 효율적인 이더넷 링크 트랜지션에 따른 제로 패킷 손실을 위한 메커니즘의 예시적인 동작들을 개략적으로 설명하는 흐름도를 제공한다.
실시예들은 드라이버 패스트 페일오버를 통한 에너지 효율적인 이더넷 링크 트랜지션에 따른 제로 패킷 손실을 위한 메커니즘을 제공한다. 상기 메커니즘은, 낮은 에너지 사용량(usage)으로 저속으로 동작하는 주 어댑터(primary adapter, PA)를 가지며, 더 높은 에너지 사용량으로 고속으로 동작하는 부 어댑터(secondary adapter, SA)를 가짐으로써, 고효율(high efficiency)을 달성한다. 디폴트로, 상기 메커니즘은 낮은 에너지 사용량으로 저속으로 동작하는 상기 주 어댑터를 사용하며, 상기 부 어댑터는 디스에이블된다. 이러한 디폴트 구성은 낮은 링크 이용률의 기간 동안 사용된다.
시스템 또는 입력/출력(input/output, IO) 부하가 고속이 요구될 정도인 경우, 상기 메커니즘은 상기 부 어댑터를 그것의 가장 높은 지원 링크 속도로 인에이블시킨다. 상기 주 어댑터를 통해 실행중인 진행중의 모든 송신(transmit, TX) 트래픽은 완료될 것이고, 완료 즉시, 상기 드라이버는 주소 결정 프로토콜(address resolution protocol, ARP) 패킷을 발생시키고 그 패킷을 상기 부 어댑터를 통해 전송한다. 상기 ARP 패킷은 스위치에게 매체 접근 제어(media access control, MAC) 주소를 위한 새로운 위치에 관해 통지한다. 이 프로세스가 완료된 후, 상기 주 어댑터는 링크 다운(0W)으로 트랜지션하고, 제로 패킷 손실 트랜지션은 완료된다.
상기 메커니즘이 저속 및 저전력 모드로 다시 다운(down) 되도록 - 이렇게 되면 상기 부 어댑터로부터 상기 주 어댑터로의 트랜지션을 위해 동일한 프로세스가 발생함 - 협상을 강요할 때까지, 상기 시스템은 이러한 구성하에서 동작할 것이다. 시스템 부하(system load)에 기초하여 더 높은 속도의 링크로 트랜지션할 때를 결정하기 위한 방법/폴리시(policy)는 특정 구현(implementation specific)이다. 그러므로, 상기 메커니즘은 시간 간격당 RX/TX 패킷들의 드라이버 추적(driver tracking)에 기초하거나, IO 제어(IOCTL) 함수를 통해 상기 드라이버에 대한 어플리케이션 통지를 통한 폴리시 강요(policy enforcement)에 의해, 링크들 간에 트랜지션할 수 있다.
실시예들은 분산형 데이터 처리 환경(distributed data processing environment), 하나의 데이터 처리 디바이스 등의 여러 다른 유형의 데이터 처리 환경들에서 이용될 수 있다. 실시예들의 기능 및 특정 구성요소들의 설명을 위한 맥락을 제공하기 위해, 도 1 및 2는 이후에 실시예들의 측면들이 구현될 수 있는 예시적인 환경들로서 제공된다. 도 1 및 2에 따른 설명은 주로 하나의 데이터 처리 디바이스 구현에 초점이 맞춰져 있을 것이지만, 이는 단지 하나의 예일 뿐이고, 본 발명의 특징들에 관한 어떤 한정을 서술 또는 의미하려는 의도는 아니다. 오히려, 실시예들은 분산형 데이터 처리 시스템의 컴포넌트들이 제로 패킷 손실을 갖는 에너지 효율적인 링크 트랜지션을 요구하는 분산형 데이터 처리 환경들 및 실시예들을 포함하도록 의도된다.
이제, 도면들을 참조하면, 도 1은 실시예의 측면들이 구현될 수 있는 예시적인 분산형 데이터 처리 시스템을 도시한다. 분산형 데이터 처리 시스템(100)은 실시예들의 측면들이 구현될 수 있는 컴퓨터들의 네트워크를 포함할 수 있다. 분산형 데이터 처리 시스템(100)은 적어도 하나의 네트워크(102)를 포함하는데, 적어도 하나의 네트워크(102)는 분산형 데이터 처리 시스템(100) 내에 함께 연결된 여러 가지 디바이스들과 컴퓨터들 간의 통신 링크들을 제공하기 위해 사용되는 매체이다. 네트워크(102)는 유선, 무선 통신 링크들, 또는 광 섬유 케이블들과 같은 연결들을 포함할 수 있다.
도시된 예에서, 서버(104) 및 서버(106)는 스토리지 유닛(108)과 함께 네트워크(102)에 연결된다. 또한, 클라이언트들(110, 112 및 114)은 네트워크(102)에 연결된다. 이들 클라이언트들(110, 112 및 114)은, 예를 들어, 개인용 컴퓨터들, 네트워크 컴퓨터들 등일 수 있다. 도시된 예에서, 서버(104)는 어플리케이션들, 운영 체계 이미지들, 및 부트 파일들(boot files)과 같은 데이터를 클라이언트들(110, 112 및 114)에게 제공한다. 도시된 예에서, 클라이언트들(110, 112 및 114)은 서버(104)에 대한 클라이언트들이다. 분산형 데이터 처리 시스템(100)은 추가 서버들, 클라이언트들, 및 기타 디바이스들(도시되지 않음)을 포함할 수 있다.
도시된 예에서, 분산형 데이터 처리 시스템(100)은 서로 통신하기 위해 프로토콜들의 전송 제어 프로토콜/인터넷 프로토콜(Transmission Control Protocol/Internet Protocol, TCP/IP) 세트(suite)를 사용하는 네트워크들 및 게이트웨이들의 월드와이드 집합을 나타내는 네트워크(102)를 갖는 인터넷이다. 인터넷의 핵심에는 주요 노드들(major nodes) 또는 호스트 컴퓨터들 - 이것들은 데이터 및 메시지들을 라우트하는 수 천 개의 상업, 정부, 교육 및 기타 컴퓨터 시스템들로 이루어짐 - 사이의 고속 데이터 통신 라인들의 골격이 있다. 물론, 분산형 데이터 처리 시스템(100)은 또한 복수의 다른 유형의 네트워크들(예를 들어, 인트라넷, LAN, WAN 등)을 포함하도록 구현될 수 있다. 위에서 서술한 바와 같이, 도 1은 하나의 예로서 의도된 것이지, 본 발명의 다른 실시예들에 대한 구조적 한정으로 의도된 것은 아니다. 따라서 도 1에 도시된 특정 구성요소들은 본 발명의 예시적인 실시예들이 구현될 수 있는 환경에 대한 한정으로 고려되어서는 아니된다.
이제 도 2를 참조하면, 실시예들의 측면들이 구현될 수 있는 예시적인 데이터 처리 시스템의 블록도가 도시된다. 데이터 처리 시스템(200)은 도 1의 클라이언트(110)와 같은 컴퓨터의 일 예이다. 이 컴퓨터에는, 본 발명의 실시예들을 위한 프로세스들을 구현하는 컴퓨터 사용가능 코드 또는 명령들이 위치할 수 있다.
도시된 예에서, 데이터 처리 시스템(200)은 허브 아키텍쳐(hub architecture)를 채용할 수 있는데, 이러한 허브 아키텍쳐의 예로서는, 노쓰 브리지 및 메모리 컨트롤러 허브(nor bridge and memory controller hub, NB/MCH)(202), 그리고 사우쓰 브리지 및 입력/출력 컨트롤러 허브(south bridge and input/output(I/O) controller hub, SB/ICH)(204)가 있다. 처리 장치(processing unit)(206), 주 메모리(208), 및 그래픽 프로세서(210)는 NB/MCH(202)에 연결된다. 그래픽 프로세서(210)는 AGP(accelerated graphics port)를 통해 NB/MCH(202)에 연결될 수 있다.
도시된 예에서, LAN 어댑터(212)는 SB/ICH(204)에 연결된다. 오디오 어댑터(216), 키보드 및 마우스 어댑터(220), 모뎀(222), 읽기 전용 메모리(ROM)(224), 하드 디스크 드라이브(HDD)(226), CD-ROM 드라이브(230), 범용 직렬 버스(USB) 포트들 및 기타 통신 포트들(232), 및 PCI/PCIe 디바이스들(234)은 버스(238) 및 버스(240)를 통해 SB/ICH(204)에 연결된다. PCI/PCIe 디바이스들은, 예를 들어, 이더넷 어댑터들, 애드인 카드들(add-in cards), 노트북 컴퓨터들용 PC 카드들을 포함할 수 있다. PCI는 카드 버스 컨트롤러를 사용하는 반면, PCIe는 그렇지 않다. ROM(224)은, 예를 들어, 플래쉬 BIOS(flash basic input/output system)일 수 있다.
HDD(226) 및 CD-ROM 드라이브(230)는 버스(240)를 통해 SB/ICH(204)에 연결된다. HDD(226) 및 CD-ROM 드라이브(230)는, 예를 들어, IDE(integrated drive electronics) 또는 SATA(serial advanced technology attachment) 인터페이스를 사용할 수 있다. 수퍼 I/O(SIO) 디바이스(236)는 SB/ICH(204)에 연결될 수 있다.
운영 체계는 처리 장치(206) 상에서 실행된다. 상기 운영 체계는 도 2의 데이터 처리 시스템(200) 내의 여러 가지 컴포넌트들의 제어를 조정하고 제공한다. 클라이언트로서, 상기 운영 체계는 Microsoft®Windows®XP(Microsoft 및 Windows는 미국, 기타 국가, 또는 이들 둘 모두에서 마이크로소프트사의 상표들임)와 같은 상업적으로 이용가능한 운영 체계일 수 있다. JavaTM 프로그램 시스템과 같은 객체-지향 프로그래밍 시스템은 상기 운영 체계와 함께 실행될 수 있고, 데이터 처리 시스템(200) 상에서 실행되는 어플리케이션들 또는 JavaTM 프로그램들로부터 상기 운영 체계에 대한 콜들(calls)을 제공한다(Java는 미국, 기타 국가들, 또는 이들 둘 다에서 선 마이크로시스템즈사의 상표임).
서버로서, 데이터 처리 시스템(200)은, 예를 들어, IBM®eServerTMSystem p® 컴퓨터 시스템 - 이는 AIX®(Advanced Interactive Executive) 운영 체계 또는 LINUX® 운영 체계를 실행시킴 - 일 수 있다(eServer, System p, 및 AIX는 미국, 기타 국가들, 또는 둘 모두에서 IBM사(International Business Machines Corporation)의 상표들인 한편, LINUX는 미국, 기타 국가들, 또는 둘 모두에서 리누스 토발즈(Linus Torvalds)의 상표임). 데이터 처리 시스템(200)은 처리 장치(206)에 복수의 프로세서들을 포함하는 대칭 멀티프로세서(symmetric multiprocessor, SMP) 시스템일 수 있다. 이와는 다르게, 하나의 프로세서 시스템이 채용될 수 있다.
상기 운영 체계를 위한 명령들, 객체-지향 프로그래밍 시스템, 및 어플리케이션들 또는 프로그램들은 HDD(226)와 같은 스토리지 디바이스들 상에 위치하고, 처리 장치(206)에 의해 실행하기 위해 주 메모리(208) 내로 로드될 수 있다. 본 발명의 실시예들에서의 프로세스들은 컴퓨터 사용가능 프로그램 코드를 사용하여 처리 장치(206)에 의해 수행될 수 있는데, 상기 컴퓨터 사용가능 프로그램 코드는, 예를 들어, 주 메모리(208), ROM(224)와 같은 메모리, 또는 예를 들어, 하나 또는 그 이상의 주변 기기들(226 및 230) 내에 위치할 수 있다.
도 2에 도시된 버스(238) 또는 버스(240)와 같은 버스 시스템은 하나 또는 그 이상의 버스들로 구성될 수 있다. 물론, 상기 버스 시스템은 패브릭 또는 구조에 부착된 서로 다른 컴포넌트들 또는 디바이스들 간의 데이터 전송을 위해 제공하는 통신 패브릭 또는 구조의 유형을 사용하여 구현될 수 있다. 도 2의 모뎀(222) 또는 네트워크 어댑터(212)와 같은 통신 유닛은 데이터를 송신 및 수신하기 위해 사용되는 하나 또는 그 이상의 디바이스들을 포함할 수 있다. 메모리는, 예를 들어, 주 메모리(208), ROM(224), 또는 도 2에서 NB/MCH(202)에서 발견될 수 있는 캐쉬일 수 있다.
당해 기술 분야에서 통상의 기술을 가진 자들이라면 도 1 및 2에서의 하드웨어는 상기 구현에 의존하여 변할 수 있다는 것을 알 수 있을 것이다. 플래쉬 메모리, 비-휘발성 메모리에 상당하는 것, 또는 광 디스크 드라이브들 등과 같은 다른 내부 하드웨어 또는 주변 기기들은 도 1 및 2에 도시된 하드웨어 대신에 또는 도 1 및 2에 도시된 하드웨어에 추가로 사용될 수 있다. 또한, 실시예들의 프로세스들은, 본 발명의 사상 및 범위를 벗어남이 없이, 앞서 언급된 SMP 시스템 이외에, 멀티프로세서 데이터 처리 시스템에 적용될 수 있다.
더욱이, 데이터 처리 시스템(200)은 클라이언트 컴퓨팅 디바이스들, 서버 컴퓨팅 디바이스들, 타블렛 컴퓨터, 랩탑 컴퓨터, 전화기, 또는 기타 통신 디바이스, 개인용 디지털 보조장치(PDA)를 포함하는 다수의 다른 데이터 처리 시스템들 중 어느 형태든지 취할 수 있다. 몇 가지 실시예들에서, 데이터 처리 시스템(200)은 휴대용 컴퓨팅 디바이스일 수 있는데, 이 휴대용 컴퓨팅 디바이스는, 예를 들어, 운영 체계 파일들 및/또는 사용자-발생 데이터를 저장하기 위해 비-휘발성 메모리를 제공하기 위한 플래쉬 메모리를 갖고 구성된다. 필수적으로, 데이터 처리 시스템(200)은 구조적 한정없이 현재 알려져 있거나, 이후에 개발될 데이터 처리 시스템 중 어떤 것일 수 있다.
실시예에 따라, 도 2의 네트워크 어댑터(212)는 드라이버 패스트 페일오버를 통한 에너지 효율적인 이더넷 링크 트랜지션에 따른 제로 패킷 손실을 위한 메커니즘을 포함할 수 있다. 상기 메커니즘은 네트워크 어댑터(212)에 낮은 에너지 사용량으로 저속으로 동작하는 주 어댑터(PA)와, 더 높은 에너지 사용량으로 고속으로 동작하는 부 어댑터(SA)를 포함함으로써, 고효율을 달성한다. 디폴트로, 상기 메커니즘은 낮은 에너지 사용량으로 저속으로 동작하는 주 어댑터를 사용하고, 부 어댑터는 디스에이블된다. 이러한 디폴트 구성은 낮은 링크 이용률의 기간들 동안 사용된다.
시스템 또는 입력/출력(IO) 부하가 고속이 요구될 정도인 경우, 상기 메커니즘은 상기 부 어댑터를 그것의 가장 높은 지원 링크 속도로 인에이블시킨다. 상기 주 어댑터 상에서 실행중인 진행중의 모든 송신(TX) 트래픽은 완료될 것이다. 이 프로세스가 완료된 후, 상기 주 어댑터는 링크 다운(0W)으로 트랜지션하고 제로 패킷 손실 트랜지션은 완료된다. 상기 메커니즘이 저속 및 저전력 모드로 다시 다운 되도록 - 이렇게 되면 상기 부 어댑터로부터 상기 주 어댑터로의 트랜지션을 위해 동일한 프로세스가 발생함 - 협상을 강요할 때까지, 상기 시스템은 이러한 구성하에서 동작할 것이다.
도 3은 일 실시예에 따라 드라이버 패스트 페일오버를 통한 에너지 효율적인 이더넷 링크 트랜지션에 따라 제로 패킷 손실을 갖는 데이터 처리 시스템에서의 여러 층들을 도시하는 블록도이다. 어플리케이션(310)은 운영 체계(320) 상에서 실행되고, 데이터를 송신 및 수신함으로써 이더넷 트래픽을 발생시킨다. 예를 들어, 어플리케이션(310)은 이메일 클라이언트, 파일 전송 클라이언트, 웹 브라우저, 비디오 스트리밍 어플리케이션 또는 플러그인(plugin), VoIP 클라이언트 등일 수 있다.
네트워크 층(330)은 디바이스 드라이버(340) 위에 존재한다. 상기 네트워크 층은 디바이스 드라이버(340)를 통해 상기 네트워크(즉, 주변) 디바이스에 대해 운영 체계(320)를 링크시킨다. 디바이스 드라이버(340)는 상기 하드웨어 층과 상호작용하는 프로그램 루틴(program routine)인데, 상기 하드웨어 층은 도시된 실시예에서 주 어댑터(primary adapter)(352), 부 어댑터(secondary adapter)(354), 및 스위치(356)의 조합이다. 네트워크 층(330)은 상기 하드웨어층과 상호작용하는데, 상기 하드웨어 층은 주 어댑터(352), 부 어댑터(354), 및 스위치(356)를 포함한다.
주 어댑터(PA)(352)는 저속, 저전력 이더넷 어댑터이다. 예를 들어, 주 어댑터(352)는, 인에이블되는 경우, 100Mbps의 속도로 그리고 1W 전력보다 낮게 동작할 수 있다. 부 어댑터(SA)(354)는 더 높은 속도, 더 높은 전력의 이더넷 어댑터이다. 예를 들어, 부 어댑터(354)는 1GbE/10GbE의 속도로 그리고 약 2.5W/14W 전력으로 동작할 수 있다. 디폴트 구성에서, 주 어댑터(352)는 저속/저전력으로 동작하도록 구성되고, 부 어댑터(354)는 디스에이블된 링크(0W)이며, 스위치(356)는 주 어댑터(352)로 그리고 주 어댑터(352)로부터 수신(RX) 및 송신(TX)을 라우트하도록 구성된다. 따라서, 디폴트 구성에서, 주 어댑터(352) 및 부 어댑터(354)는 총 1W 전력보다 낮은 전력에서 동작하고 있다. 실시예의 상기 메커니즘은 낮은 링크 사용량의 기간들 동안에는 상기 디폴트 구성을 사용한다.
실시예의 메커니즘은 이용률 감지 컴포넌트(360)를 포함한다. 이용률 감지 컴포넌트(360)는 디바이스 드라이버(340), 네트워크 층(330), 운영 체계(320), 또는 어플리케이션(310) 내에 구현될 수 있다. 감지 컴포넌트(360)는 링크 이용률이 고속 링크를 필요로 하는 수준에 도달하는 때를 감지한다. 링크 이용률이 트랜지션을 필요로 하는 수준에 도달하는 때를 결정하기 위해, 감지 컴포넌트(360)는 메트릭(metric)을 사용할 수 있다. 예를 들어, 상기 메트릭은 초당 TX 또는 RX 패킷의 수일 수 있다. 감지 컴포넌트(360)는 상기 메트릭에 관한 값을 결정할 수 있고, 그 값을 예를 들어 스레쉬홀드(threshold)와 비교할 수 있다. 사용자는 상기 메트릭을 정의하고 폴리시 데이터 구조(362)에서 상기 스레쉬홀드를 선택함으로써 감지 컴포넌트(360)를 구성할 수 있다.
감지 컴포넌트(360)가 시스템 또는 IO 부하가 고속을 필요로 하는 정도라고 결정하는 경우, 디바이스 드라이버(340)는 부 어댑터(354)를 그것의 가장 높은 지원 링크 속도로 인에이블시킨다. 따라서 부 어댑터(354)는 링크 다운(0W)으로부터 1GbE/10GbE(~2.5W/~14W)로 트랜지션할 수 있다. 주 어댑터(352)를 통해 실행중인 진행중의 모든 송신(TX) 트래픽의 완료 즉시, 디바이스 드라이브(340)는 주소 결정 프로토콜(ARP) 패킷을 발생시키고 그 패킷을 부 어댑터(354)를 통해 전송한다. 상기 ARP 패킷은 스위치(356)에게 매체 접근 제어(MAC) 주소를 위한 새로운 위치에 관해 통지한다. 이 프로세스가 완료된 후, 주 어댑터(352)는 링크 다운(0W)으로 트랜지션하고, 제로 패킷 손실 트랜지션은 완료된다.
상기 메커니즘이 저속 및 저전력 모드, 즉 상기 디폴트 구성으로 다시 다운 되도록 - 이렇게 되면 부 어댑터(354)로부터 주 어댑터(352)로의 트랜지션을 위해 동일한 프로세스가 발생함 - 협상을 강요할 때까지, 상기 메커니즘은 이러한 높은 이용률 시의 구성하에서 실행된다. 시스템 부하에 기초하여 더 높은 속도로 트랜지션할 때를 결정하기 위한 폴리시는 특정 구현(implementation specific)이다. 따라서, 상기 메커니즘은 시간 간격 당 RX/TX 패킷들의 드라이버 추적에 기초하여, 또는 IO 제어(IOCTL) 함수를 통해 상기 드라이버로의 어플리케이션 통지를 통한 폴리시 강요에 의해 링크들 간에 트랜지션할 수 있다.
도 4a-4c는 실시예에 따라 드라이버 패스트 페일오버를 통한 에너지 효율적인 이더넷 링크에 따른 제로 패킷 손실을 위한 메커니즘의 예시적인 구현을 도시한다. 도 4a에서, 주 어댑터(452)는 저전력 모드(100Mbps @<1W)로 작동(active)된다. 모든 TX/RX 데이터는 노멀하게(normally) 흐르고 있다. 왜냐하면, 이용률(utilization rate)은 미리 정해진 스레쉬홀드에 도달하지 않기 때문이다. 부 어댑터(454)는 작동중이지 않으며, 상기 부 어댑터 링크에 관하여는 아무런 전력 소비가 없다. 스위치(456)는 모든 인커밍 트래픽을 주 어댑터(452)로 라우트한다.
도 4b에서, 주 어댑터(452)는 저전력 모드로 작동중이고 링크 이용률 스레쉬홀드에 도달하게 된다. 상기 메커니즘은 고속 링크로의 트랜지션을 개시한다. 실시예의 메커니즘은 부 어댑터(454)에 관한 링크를 작동(activate)시키고, 1GbE/10GbE(2.5W/14W)에 대해 협상한다. 주 어댑터(452)는 진행중인 모든 송신 요청들을 완료한다. 완료되면, 상기 디바이스 드라이버는 부 어댑터(454)로부터 ARP 요청을 발생시킨다. 상기 ARP 요청은 스위치(456)에게 상기 MAC 주소가 현재 새로운 포트 상에 있다는 것을 통지한다. 상기 디바이스 드라이버는 상기 스택으로부터 부 어댑터(454)로 새로운 송신 패킷들을 라우트한다. 상기 메커니즘은 상기 드라이버 상태(driver status)를 갱신한다. 상기 메커니즘은 사용자가 볼 수 있는 로그(log)에 통지를 표시함으로써 상기 드라이버 상태를 갱신할 수 있다.
도 4c에서, 부 어댑터(454)는 전(full) 속도 및 전력으로 작동중이다. 주 어댑터(452)는 작동하지 않는 상태(inactive)이고, 상기 주 어댑터 링크에 관해 아무런 전력 소비도 없다. 도 4c에 있어서, 에너지 효율적인 이더넷 링크 트랜지션은 제로 패킷 손실로 완료된다. 이용률 수준이 상기 고속 모드가 더 이상 필요하지 않을 정도로 변하면, 부 어댑터(454)로부터 주 어댑터(452)로 트랜지션하기 위해 동일한 단계들이 수행된다.
당해 기술 분야에서 숙련된 자라면 이해할 수 있는 바와 같이, 본 발명은 시스템, 방법, 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서, 본 발명의 측면들은 전적으로 하드웨어 실시예의 형태를 취할 수도 있고, 전적으로 소프트웨어 실시예의 형태(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함함)를 취할 수도 있고, 또는 소프트웨어 및 하드웨어 측면들을 조합하는 실시예의 형태 - 이들 모두는 일반적으로 여기서 "회로", "모듈" 또는 "시스템"으로 일컬어짐 - 를 취할 수도 있다. 더 나아가, 본 발명의 측면들은 하나 또는 그 이상의 컴퓨터 판독가능 매체(들) - 이 컴퓨터 판독가능 매체(들) 상에 구현되는 컴퓨터 사용가능 프로그램 코드를 가짐 - 에 구현되는 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 또는 그 이상의 컴퓨터 판독가능 매체(들)의 어떤 조합이든 이용될 수 있다. 상기 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 스토리지 매체일 수 있다. 컴퓨터 판독가능 스토리지 매체는, 예를 들어, 전자, 자기, 광학, 전자기, 적외선 매체, 또는 반도체 시스템, 장치, 디바이스, 또는 이것들의 적절한 조합 등일 수 있다. 그러나, 열거된 예들로 한정되는 것은 아니다. 상기 컴퓨터 판독가능 매체의 더 구체적인 예들에는, 하나 또는 그 이상의 전선들을 갖는 전기적 연결, 휴대용 컴퓨터 디스켓, 하드 디스크, RAM(random access memory), ROM(read-only memory), EPROM(erasable programmable read-only memory) 또는 플래쉬 메모리, 광섬유, 휴대용 CDROM(compact disk read-only memory), 광 스토리지 디바이스, 자기 스토리지 디바이스, 또는 이것들의 적절한 조합 등이 포함될 수 있다. 그러나, 열거된 예들로 한정되는 것은 아니다. 본 명세서의 맥락에서, 컴퓨터 판독가능 스토리지 매체는 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한 프로그램 또는 명령 실행 시스템, 장치, 또는 디바이스와 함께 사용하기 위한 프로그램을 포함하거나 저장할 수 있는 실체적인 매체일 수 있다.
컴퓨터 판독가능 신호 매체에는, 예를 들어, 기저대역으로, 또는 반송파의 일부로서, 컴퓨터 판독가능 신호 매체 내에 구현된 컴퓨터 판독가능 프로그램 코드를 갖는 전파되는 데이터 신호가 포함될 수 있다. 이러한 전파되는 신호는, 예를 들어, 전자기, 광학 신호, 또는 이것들의 적절한 조합을 포함하는 여러 형태들 중 어떤 것이든지 취할 수 있다. 그러나, 이러한 것들로 한정되는 것은 아니다. 컴퓨터 판독가능 신호 매체는 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한 프로그램, 또는 명령 실행 시스템, 장치, 또는 디바이스와 함께 사용하기 위한 프로그램을 전달, 전파, 또는 전송할 수 있는 컴퓨터 판독가능 스토리지 매체가 아닌 컴퓨터 판독가능 매체일 수 있다.
컴퓨터 판독가능 매체 상에 구현된 컴퓨터 코드는, 예를 들어, 무선, 유선, 광섬유 케이블, RF(radio frequency) 등, 또는 이것들의 적절한 조합을 포함하는 적절한 매체를 사용하여 전송될 수 있다.
본 발명의 측면들을 위한 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 하나 또는 그 이상의 프로그래밍 언어들의 조합으로 기록될 수 있는데, 이러한 하나 또는 그 이상의 프로그래밍 언어들에는, JavaTM, SmalltalkTM, C++ 등과 같은 객체 지향 프로그래밍 언어, 및 "C" 프로그래밍 언어 또는 유사 프로그래밍 언어들과 같은 전통적인 절차 프로그래밍 언어들 등이 포함될 수 있다. 상기 프로그래밍 코드는 독립형 소프트웨어 패키지와 같이, 전적으로 사용자의 컴퓨터 상에서 실행될 수도 있고, 부분적으로 사용자의 컴퓨터 상에서 실행될 수도 있으며, 부분적으로는 사용자의 컴퓨터 상에서 그리고 부분적으로는 원격 컴퓨터 상에서, 또는 전적으로 원격 컴퓨터 또는 서버 상에서 실행될 수도 있다. 후자의 시나리오에서, 원격 컴퓨터는 어떤 유형의 네트워크 - 이러한 네트워크의 유형에는, LAN(local area network) 또는 WAN(wide area network) 등이 포함될 수 있음 - 를 통해서든지 사용자의 컴퓨터에 연결될 수 있고, 또는 상기 연결은 외부 컴퓨터에 대해서 이루어질 수 있다(예를 들어, 인터넷 서비스 제공자(Internet Service Provider)를 사용하여 인터넷을 통해).
본 발명의 측면들은 발명의 실시예들에 따른 방법들, 장치들(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블록도들을 참조하여 이하에서 기술된다. 흐름도들 및/또는 블록도들의 각각의 블록, 및 흐름도들 및/또는 블록도들 내의 블록들의 조합들은 컴퓨터 프로그램 명령들에 의해 구현될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 명령들은 범용 컴퓨터, 전용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머쉰을 생성할 수 있다. 그리하여, 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치의 프로세서를 통해 실행되는 명령들이 흐름도 및/또는 블록도의 블록 또는 블록들에 특정된 기능들/작용들을 구현하기 위한 수단들을 생성하도록 한다.
이들 컴퓨터 프로그램 명령들은 또한 컴퓨터 판독가능 매체 - 이 컴퓨터 판독가능 매체는 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 기타 디바이스들이 특정 방식으로 기능하도록 할 수 있음 - 에 저장될 수 있다. 그리하여, 상기 컴퓨터 판독가능 매체에 저장된 명령들이 흐름도 및/또는 블록도의 블록 또는 블록들에 특정된 기능/작용을 구현하는 명령들을 포함하는 제조 물품을 생성하도록 한다.
상기 컴퓨터 프로그램 명령들은 또한, 일련의 동작 단계들이 컴퓨터, 기타 프로그램가능 장치, 또는 기타 디바이스들 상에서 수행되도록 하여 컴퓨터로 구현된 프로세스를 생성하도록 하기 위해, 상기 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 기타 디바이스들 상에 로드될 수 있다. 그리하여, 상기 컴퓨터 또는 기타 프로그램가능 장치 상에서 실행되는 명령들이 흐름도 및/또는 블록도의 블록 또는 블록들에 특정된 기능들/작용들을 구현하기 위한 프로세스들을 제공하도록 한다.
도 5는 실시예에 따른 드라이버 패스트 페일오버를 통한 에너지 효율적인 이더넷 링크 트랜지션에 따른 제로 패킷 손실을 위한 메커니즘의 예시적인 동작들의 개략적인 흐름도를 제공한다. 동작이 시작되고, 상기 메커니즘은 주 어댑터를 저전력 모드로 작동시킨다(블록 502). 그런 다음, 상기 메커니즘은 시스템 또는 IO 부하가 고속 링크로의 트랜지션이 요구되는 정도인지의 여부를 결정한다(블록 504). 만약 상기 메커니즘이 트랜지션이 요구되지 않는다고 결정하면, 동작은 그 이용률 수준이 이용률 스레쉬홀드에 도달하거나 기타 폴리시 기준이 충족될 때까지 블록 504로 리턴한다.
만약 상기 메커니즘이 블록 504에서 트랜지션이 요구된다고 결정하면, 상기 메커니즘은 부 어댑터를 고속 모드로 작동시킨다(블록 506). 상기 메커니즘은 상기 주 어댑터를 통해 진행중인 모든 송신 요청들을 완료한다(블록 508). 그런 다음, 상기 부 어댑터는 드라이버가 발생시킨 주소 결정 프로토콜(ARP) 요청을 상기 스위치로 송신한다(블록 510). 상기 스위치는 송신자(sender)로부터의 인커밍 트래픽을 상기 부 어댑터로 라우트한다(블록 512). 그리고 상기 디바이스 드라이버는 상기 송신 트래픽을 상기 부 어댑터로 라우트한다(블록 514). 그런 다음, 상기 메커니즘은 상기 드라이버 상태를 갱신한다(블록 516).
그 후, 상기 메커니즘은 시스템 또는 IO 부하가 고속 링크가 더 이상 요구되지 않는 정도인지의 여부를 결정한다(블록 518). 만약 상기 메커니즘이 트랜지션이 요구되지 않는다고 결정하면, 동작은 이용률 수준이 이용률 스레쉬홀드 아래로 떨어질 때까지 블록 518로 리턴한다.
만약 상기 메커니즘이 블록 518에서 트랜지션이 요구된다고 결정하면, 상기 메커니즘은 상기 주 어댑터를 저속 모드로 작동시킨다(블록 520). 상기 메커니즘은 상기 부 어댑터를 통해 진행중인 모든 송신 요청들을 완료한다(블록 522). 그런 다음, 상기 주 어댑터는 드라이버가 발생시킨 ARP 요청을 상기 스위치로 송신한다(블록 524). 상기 스위치는 송신자로부터의 인커밍 트래픽을 상기 주 어댑터로 라우트한다(블록 526). 그리고 상기 디바이스 드라이버는 송신 트래픽을 상기 주 어댑터로 라우트한다(블록 528). 그런 다음, 상기 메커니즘은 상기 드라이버 상태를 갱신한다(블록 530). 그 후, 동작은 고속 모드로의 트랜지션이 요구되는지의 여부를 결정하기 위해 블록 504로 리턴한다.
상기 흐름도 및 도면들에서의 블록도들은 본 발명의 여러 가지 실시예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 구조, 기능, 및 동작을 도시한다. 여기서, 상기 흐름도 또는 블록도들에서의 각각의 블록은 특정된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행가능 명령들을 포함하는 모듈, 세그멘트, 또는 코드의 일부분을 나타낼 수 있다. 또한, 몇몇 다른 구현들에서, 상기 블록에 표시된 기능들은 도면들에서 표시된 순서를 벗어나서 발생할 수도 있음을 주목해야 한다. 예를 들어, 연속해서 보여지는 두 개의 블록들은, 사실상, 실질적으로 동시에 실행될 수도 있고, 또는 그 블록들은 때로는 결부된 기능에 의존하여 역순으로 실행될 수도 있다. 또한 블록도들 및/또는 흐름도의 각각의 블록, 및 블록도들 및/또는 흐름도에서의 블록들의 조합들은 특정된 기능들 또는 작용들을 수행하는 전용 하드웨어 기반의 시스템들, 또는 전용 하드웨어 및 컴퓨터 명령들의 조합들에 의해 구현될 수 있음을 주목해야 할 것이다.
따라서, 실시예들은 드라이버 패스트 페일오버를 통한 에너지 효율적인 이더넷 링크 트랜지션에 따른 제로 패킷 손실을 위한 메커니즘들을 제공한다. 상기 메커니즘은 낮은 에너지 사용량으로 저속으로 동작하는 주 어댑터(PA) 및 더 높은 에너지 사용량으로 고속으로 동작하는 부 어댑터(SA)를 가짐으로써 고효율을 달성한다. 디폴트로, 상기 메커니즘은 낮은 에너지 사용량으로 저속으로 동작하는 주 어댑터를 사용하며, 상기 부 어댑터는 디스에이블된다. 이러한 디폴트 구성은 낮은 링크 이용률의 기간들 동안 사용된다.
시스템 또는 입력/출력(IO) 부하가 고속이 요구될 정도인 경우, 상기 메커니즘은 상기 부 어댑터를 그것의 가장 높은 지원 링크 속도로 인에이블시킨다. 상기 주 어댑터를 통해 실행중인 진행중의 모든 송신(TX) 트래픽은 완료될 것이고, 완료 즉시, 상기 드라이버는 ARP 패킷을 발생시키고, 그 패킷을 상기 부 어댑터를 통해 전송한다. 상기 ARP 패킷은 상기 스위치에게 매체 접근 제어(MAC) 주소를 위한 새로운 위치에 관해 통지한다. 이 프로세스가 완료하면, 상기 주 어댑터는 링크 다운(0W)으로 트랜지션하고, 제로 패킷 손실 트랜지션이 완료된다.
상기 시스템은 상기 메커니즘이 저속 및 저전력 모드로 다시 다운 되도록 - 이렇게 되면 상기 부 어댑터로부터 상기 주 어댑터로의 트랜지션을 위해 동일한 프로세스가 발생함 - 협상을 강요할 때까지 이러한 구성하에서 동작할 것이다. 시스템 부하에 기초하여 더 고속의 링크로 트랜지션할 때를 결정하기 위한 방법/폴리시는 특정 구현이다. 따라서, 상기 메커니즘은 시간 간격당 RX/TX 패킷들의 드라이버 추적에 기초하여 또는 IO 제어(IOCTL) 함수를 통해 상기 드라이버로의 어플리케이션 통지를 통한 폴리시 강요에 의해, 링크들 사이에서 트랜지션할 수 있다.
위에서 나타낸 바와 같이, 실시예들은 전적으로 하드웨어 실시예의 형태를 취할 수도 있고, 전적으로 소프트웨어 실시예의 형태를 취할 수도 있으며, 또는 하드웨어와 소프트웨어 요소들 둘 다를 포함하는 실시예의 형태를 취할 수도 있음을 이해해야 한다. 하나의 실시예에서, 실시예들의 메커니즘들은 소프트웨어 또는 프로그램 코드로 구현될 수 있는데, 이 소프트웨어 또는 프로그램 코드는 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함할 수 있으나, 이러한 것들로 한정되는 것은 아니다.
프로그램 코드를 저장 및/또는 실행하기에 적합한 데이터 처리 시스템은 메모리 요소들에 직접적으로 결합되거나, 시스템 버스를 통해 메모리 요소들에 간접적으로 결합되는 적어도 하나의 프로세서를 포함할 것이다. 상기 메모리 요소들은 상기 프로그램 코드, 벌크 스토리지, 및 캐쉬 메모리들 - 이 캐쉬 메모리들은 실행 동안 코드가 벌크 스토리지로부터 리트리브(retrieve)되어야 하는 회수들을 감소시키기 위해 적어도 몇몇 프로그램 코드의 임시 스토리지를 제공함 - 의 실제 실행 동안 채용되는 로컬 메모리를 포함할 수 있다.
입력/출력 또는 I/O 디바이스들(예를 들어, 키보드들, 디스플레이들, 포인팅 디바이스들 등을 포함하나, 이러한 것들로 한정되는 것은 아님)은 상기 시스템에 직접적으로 또는 중간의 I/O 컨트롤러들을 통해 간접적으로 상기 시스템에 결합될 수 있다. 네트워크 어댑터들은 또한 상기 시스템에 결합되어, 상기 데이터 처리 시스템이 중간의 사설 또는 공중 네트워크들을 통해 기타의 데이터 처리 시스템들 또는 원격 프린터들 또는 스토리지 디바이스들에 결합될 수 있도록 한다. 모뎀들, 케이블 모뎀들 및 이더넷 카드들은 단지 현재로서 이용가능한 유형의 네트워크 어댑터들 중 몇몇일 뿐이다.
본 발명에 관한 기술은 예시 및 설명의 목적으로 제공되었으며, 개시된 형태로 발명을 빠짐없이 총 망라하려는 의도이거나, 개시된 형태로 발명을 한정하려는 의도는 아니다. 많은 개조들 및 변형들이 있을 수 있다는 것은 당해 기술 분야에서 통상의 기술을 가진 자들에게는 자명할 것이다. 실시예들은 발명의 원리들, 실제 응용을 가장 잘 설명하기 위해, 그리고 당해 기술 분야에서 통상의 기술을 가진 자들이 고려된 구체적인 사용에 적합한 여러 가지 개조들을 갖는 여러 가지 실시예들에 관해 발명을 이해할 수 있도록 하기 위해 선택되고 기술되었다.

Claims (20)

  1. 데이터 처리 시스템에서, 제로 패킷 손실을 갖는 에너지 효율적인 링크 트랜지션을 위한 방법에 있어서,
    주 네트워크 어댑터(primary network adapter)를 저전력 모드로 작동(activate)시키는 단계;
    부 네트워크 어댑터(secondary network adapter)를 디스에이블(disable)시키는 단계;
    송신자로부터의 인커밍 트래픽(incoming traffic)을 상기 주 네트워크 어댑터로 라우트(route)하도록, 상기 주 네트워크 어댑터 및 상기 부 네트워크 어댑터에 결합되는 스위치를 구성하는 단계; 및
    상기 주 네트워크 어댑터의 높은 이용률(utilization)을 감지하는 것에 응답하여, 상기 부 네트워크 어댑터를 고속 모드로 작동시키며, 상기 주 네트워크 어댑터를 통해 진행중인 모든 송신 요청들을 완료하고, 상기 부 네트워크 어댑터로(to and from) 데이터를 라우트하도록 상기 스위치를 구성하며, 상기 주 네트워크 어댑터를 디스에이블시키는 단계를 포함하는
    방법.
  2. 청구항 1에 있어서, 상기 주 네트워크 어댑터의 높은 이용률을 감지하는 단계는
    메트릭(metric)의 값을 결정하는 단계;
    상기 메트릭의 값을 스레쉬홀드와 비교하는 단계; 및
    상기 스레쉬홀드를 넘어서는 상기 메트릭의 값에 응답하여, 상기 주 네트워크 어댑터의 높은 이용률을 감지하는 단계를 포함하는
    방법.
  3. 삭제
  4. 청구항 1에 있어서, 상기 방법은
    상기 주 네트워크 어댑터의 높은 이용률을 감지하는 것에 응답하여, 디바이스 드라이버에 의해, 주소 결정 프로토콜(address resolution protocol) 요청을 발생시키는 단계; 및
    상기 부 네트워크 어댑터로부터 상기 스위치로 상기 주소 결정 프로토콜 요청을 전송하는 단계를 더 포함하되,
    상기 주소 결정 프로토콜 요청은 상기 스위치에게 매체 접근 제어(media access control) 주소를 위한 새로운 위치에 관해 통지하는
    방법.
  5. 청구항 1에 있어서, 상기 방법은
    상기 주 네트워크 어댑터의 높은 이용률을 감지하는 것에 응답하여, 디바이스 드라이버에 의해, 상기 부 네트워크 어댑터로 송신 트래픽을 라우트하는 단계를 더 포함하는
    방법.
  6. 청구항 1에 있어서, 상기 방법은
    상기 주 네트워크 어댑터의 높은 이용률을 감지하는 것에 응답하여, 드라이버 상태를 갱신하는 단계를 더 포함하는
    방법.
  7. 청구항 1에 있어서, 상기 방법은
    상기 부 네트워크 어댑터의 낮은 이용률을 감지하는 것에 응답하여, 상기 주 네트워크 어댑터를 저전력 모드로 작동시키며, 상기 부 네트워크 어댑터를 통해 진행중인 모든 송신 요청들을 완료하고, 상기 주 네트워크 어댑터로 데이터를 라우트하도록 상기 스위치를 구성하며, 상기 부 네트워크 어댑터를 디스에이블시키는 단계를 더 포함하는
    방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 컴퓨터 판독가능 스토리지 매체에 있어서,
    상기 컴퓨터 판독가능 스토리지 매체는 상기 컴퓨터 판독가능 스토리지 매체 내에 저장되는 컴퓨터 판독가능 프로그램을 가지며, 상기 컴퓨터 판독가능 프로그램은, 컴퓨팅 디바이스 상에서 실행될 때, 상기 컴퓨팅 디바이스가,
    주 네트워크 어댑터(primary network adapter)를 저전력 모드로 작동(activate)시키고;
    부 네트워크 어댑터(secondary network adapter)를 디스에이블(disable)시키고;
    송신자로부터의 인커밍 트래픽(incoming traffic)을 상기 주 네트워크 어댑터로 라우트(route)하기 위해 상기 주 네트워크 어댑터 및 상기 부 네트워크 어댑터에 결합되는 스위치를 구성하고;
    상기 주 네트워크 어댑터의 높은 이용률(utilization)을 감지하는 것에 응답하여, 상기 부 네트워크 어댑터를 고속 모드로 작동시키며, 상기 주 네트워크 어댑터를 통해 진행중인 모든 송신 요청들을 완료하고, 상기 부 네트워크 어댑터로(to and from) 데이터를 라우트하도록 상기 스위치를 구성하며, 상기 주 네트워크 어댑터를 디스에이블시키도록 하는
    컴퓨터 판독가능 스토리지 매체.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 장치에 있어서,
    네트워크 인터페이스 디바이스 - 상기 네트워크 디바이스는 주 네트워크 어댑터, 부 네트워크 어댑터, 그리고 상기 주 네트워크 어댑터 및 상기 부 네트워크 어댑터에 결합되는 스위치를 포함함 -;
    상기 네트워크 인터페이스 디바이스와 연관된 디바이스 드라이버; 및
    이용률 감지 컴포넌트(utilization detection component)를 포함하되,
    상기 디바이스 드라이버는, 상기 주 네트워크 어댑터를 저전력 모드로 작동(activate)시키고 상기 부 네트워크 어댑터를 디스에이블(disable)시키도록 구성되고, 송신자로부터의 인커밍 트래픽(incomig traffic)을 상기 주 네트워크 어댑터로 라우트(route)하도록 상기 스위치를 구성하며,
    상기 이용률 감지 컴포넌트가 상기 주 네트워크 어댑터의 높은 이용률을 감지하는 것에 응답하여, 상기 디바이스 드라이버는, 상기 부 네트워크 어댑터를 고속 모드로 작동시키며, 상기 주 네트워크 어댑터를 통해 진행중인 모든 송신 요청들을 완료하고, 상기 부 네트워크 어댑터로(to and from) 데이터를 라우트하도록 상기 스위치를 구성하며, 상기 주 네트워크 어댑터를 디스에이블시키는
    장치.
  18. 청구항 17에 있어서, 상기 이용률 감지 컴포넌트는
    메트릭(metric)의 값을 결정하고;
    상기 메트릭의 값을 스레쉬홀드와 비교하고;
    상기 스레쉬홀드를 넘어서는 상기 메트릭의 값에 응답하여, 상기 주 네트워크 어댑터의 높은 이용률을 감지함에 의해,
    상기 주 네트워크 어댑터의 높은 이용률을 감지하도록 구성되는
    장치.
  19. 청구항 17에 있어서, 상기 디바이스 드라이버는
    상기 이용률 감지 컴포넌트가 상기 주 네트워크 어댑터의 높은 이용률을 감지하는 것에 응답하여, 주소 결정 프로토콜(address resolution protocol) 요청을 발생시키고, 상기 부 네트워크 어댑터로부터 상기 스위치로 상기 주소 결정 프로토콜 요청을 전송하도록 구성되며,
    상기 주소 결정 프로토콜 요청은 상기 스위치에게 매체 접근 제어 주소(media access control address)를 위한 새로운 위치에 관해 통지하는
    장치.
  20. 삭제
KR1020100102190A 2009-10-28 2010-10-20 드라이버 패스트 페일오버를 통한 제로 패킷 손실의 에너지 효율적인 이더넷 링크 트랜지션 KR101547709B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/607,373 2009-10-28
US12/607,373 US8724465B2 (en) 2009-10-28 2009-10-28 Zero packet loss energy efficient ethernet link transition via driver fast failover

Publications (2)

Publication Number Publication Date
KR20110046287A KR20110046287A (ko) 2011-05-04
KR101547709B1 true KR101547709B1 (ko) 2015-08-26

Family

ID=43898354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100102190A KR101547709B1 (ko) 2009-10-28 2010-10-20 드라이버 패스트 페일오버를 통한 제로 패킷 손실의 에너지 효율적인 이더넷 링크 트랜지션

Country Status (3)

Country Link
US (1) US8724465B2 (ko)
JP (1) JP5613009B2 (ko)
KR (1) KR101547709B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047074B2 (en) * 2010-08-30 2015-06-02 Synapsense Corporation Apparatus and method for managing power capacity in data centers using a wireless sensor network
WO2013048960A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Managing sideband segments in on-die system fabric
US20160190748A1 (en) * 2014-09-11 2016-06-30 TrickleStar Ltd. Power Strip with External Networking Accessory Devices
US10721123B2 (en) * 2015-09-30 2020-07-21 Arris Enterprises Llc Provisional modes for multi-mode network devices
US10261923B2 (en) * 2017-07-26 2019-04-16 Intel Corporation Configurable interconnect apparatus and method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050426A1 (en) 2005-06-20 2007-03-01 Dubal Scott P Platform with management agent to receive software updates

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US705295A (en) * 1901-04-13 1902-07-22 Samuel L Richardson Clothes-drying attachment for range-boilers.
US5822531A (en) * 1996-07-22 1998-10-13 International Business Machines Corporation Method and system for dynamically reconfiguring a cluster of computer systems
US6049825A (en) * 1997-03-19 2000-04-11 Fujitsu Limited Method and system for switching between duplicated network interface adapters for host computer communications
US6253334B1 (en) * 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6396834B1 (en) * 1997-11-24 2002-05-28 Riverstone Networks, Inc. Flexible scheduler in an asynchronous transfer mode (ATM) switch
JP3511875B2 (ja) * 1998-01-13 2004-03-29 横河電機株式会社 通信制御システム
US6687228B1 (en) * 1998-11-10 2004-02-03 International Business Machines Corporation Method and system in a packet switching network for dynamically sharing the bandwidth of a virtual path connection among different types of connections
EP1001574A1 (en) * 1998-11-10 2000-05-17 International Business Machines Corporation Method and system in a packet switching network for dynamically adjusting the bandwidth of a continuous bit rate virtual path connection according to the network load
US6594265B1 (en) * 1998-11-10 2003-07-15 International Business Machines Corporation Method and system in an asynchronous transfer mode (ATM) network for providing an available bit rate interface to a continuous bit rate virtual path connection with adjustable bandwidth
JP3482992B2 (ja) * 1999-04-14 2004-01-06 日本電気株式会社 冗長lanシステムおよび現用系・予備系切り替え方法
US6658018B1 (en) * 1999-06-30 2003-12-02 Intel Corporation Method and system of providing advanced teaming functionality capable of utilizing heterogeneous adapters to improve utility and performance
US6874147B1 (en) * 1999-11-18 2005-03-29 Intel Corporation Apparatus and method for networking driver protocol enhancement
WO2002086747A1 (en) 2001-04-24 2002-10-31 Broadcom Corporation Integrated gigabit ethernet pci-x controller
WO2003009533A1 (fr) * 2001-07-11 2003-01-30 Fujitsu Limited Dispositif d'interface et procede de commande associe
JP3793123B2 (ja) * 2002-07-15 2006-07-05 キヤノン株式会社 ネットワークインタフェース装置および電力制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラム
US7389462B1 (en) * 2003-02-14 2008-06-17 Istor Networks, Inc. System and methods for high rate hardware-accelerated network protocol processing
US7506214B2 (en) * 2004-04-22 2009-03-17 International Business Machines Corporation Application for diagnosing and reporting status of an adapter
US7275175B2 (en) * 2004-07-22 2007-09-25 International Business Machines Corporation Method and apparatus for high-speed network adapter failover
US7366120B2 (en) * 2004-10-18 2008-04-29 Nortel Networks, Ltd Method and apparatus for improving quality of service over meshed bachaul facilities in a wireless network
JP4532421B2 (ja) * 2006-02-27 2010-08-25 アラクサラネットワークス株式会社 ネットワーク中継装置
JP4786371B2 (ja) * 2006-02-27 2011-10-05 アラクサラネットワークス株式会社 ネットワーク中継装置
US7743129B2 (en) * 2006-05-01 2010-06-22 International Business Machines Corporation Methods and arrangements to detect a failure in a communication network
US20080084828A1 (en) * 2006-10-09 2008-04-10 International Business Machines Corporation System and method for dynamically adding and deleting ethernet adapters
US8233380B2 (en) * 2006-11-06 2012-07-31 Hewlett-Packard Development Company, L.P. RDMA QP simplex switchless connection
US8185761B2 (en) * 2008-01-21 2012-05-22 Broadcom Corporation “Subset PHY” approach for reducing power consumption during periods of low link utilization
JP2010050890A (ja) * 2008-08-25 2010-03-04 Nec Corp ネットワーク監視制御装置,ネットワーク監視制御方法及びプログラム
JP5169848B2 (ja) * 2009-01-09 2013-03-27 日本電気株式会社 サーバー装置における省電力方法、省電力制御プログラム及びサーバー装置
US8295290B2 (en) * 2009-09-03 2012-10-23 International Business Machines Corporation Energy efficient control of data link groups

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050426A1 (en) 2005-06-20 2007-03-01 Dubal Scott P Platform with management agent to receive software updates

Also Published As

Publication number Publication date
JP5613009B2 (ja) 2014-10-22
US8724465B2 (en) 2014-05-13
US20110096659A1 (en) 2011-04-28
KR20110046287A (ko) 2011-05-04
JP2011097587A (ja) 2011-05-12

Similar Documents

Publication Publication Date Title
US8234510B2 (en) System and method for energy savings through emulation of wake on LAN in energy efficient ethernet
US8914506B2 (en) Method and system for managing network power policy and configuration of data center bridging
US8068433B2 (en) Low power operation of networked devices
Agarwal et al. Somniloquy: augmenting network interfaces to reduce PC energy usage
US8996900B2 (en) System and method for managing power consumption in data propagation environments
US20070233855A1 (en) Adaptible keepalive for enterprise extenders
US20110029659A1 (en) Method and System for Network Proxy Services for Energy Efficient Networking
TWI487322B (zh) 聯網方法和聯網系統
US20050055456A1 (en) Method, system, and program for managing a speed at which data is transmitted between network adaptors
US8667311B2 (en) Method and system for optimized power management for a network device supporting PCI-E and energy efficient ethernet
KR101547709B1 (ko) 드라이버 패스트 페일오버를 통한 제로 패킷 손실의 에너지 효율적인 이더넷 링크 트랜지션
US8214535B2 (en) Changing Ethernet MTU size on demand with no data loss
US8155022B1 (en) Method and system for controlling power consumption in network nodes
US9014018B2 (en) Auto-aware dynamic control policy for energy efficiency
US20050080903A1 (en) Method, system, and program for maintaining a link between two network entities
JP2012227804A (ja) 情報処理装置および情報処理装置の制御方法
JP6369224B2 (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US20140126908A1 (en) System and Method for Enabling Energy Efficiency Over Ethernet Links in Consideration of Optical Network Transport Equipment
EP2375631B1 (en) System and method for energy efficient ethernet enhanced information technology power management tools
Cao et al. MPTCP-meLearning: a multi-expert learning-based MPTCP extension to enhance multipathing robustness against network attacks
US20190373660A1 (en) Adaptive wide area network link assessment
WO2022165790A1 (zh) 一种掉电隔离装置及相关方法
US9172490B2 (en) Virtual wavelength networks
Nimura et al. Implementation of Transparent Network Subsystem for PC Manageability

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190730

Year of fee payment: 5