KR20040054491A - 전력 인식 적응형 폴링 - Google Patents

전력 인식 적응형 폴링 Download PDF

Info

Publication number
KR20040054491A
KR20040054491A KR1020030080977A KR20030080977A KR20040054491A KR 20040054491 A KR20040054491 A KR 20040054491A KR 1020030080977 A KR1020030080977 A KR 1020030080977A KR 20030080977 A KR20030080977 A KR 20030080977A KR 20040054491 A KR20040054491 A KR 20040054491A
Authority
KR
South Korea
Prior art keywords
polling
processor
service request
pending
data processing
Prior art date
Application number
KR1020030080977A
Other languages
English (en)
Other versions
KR100550195B1 (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 KR20040054491A publication Critical patent/KR20040054491A/ko
Application granted granted Critical
Publication of KR100550195B1 publication Critical patent/KR100550195B1/ko

Links

Classifications

    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Facsimile Transmission Control (AREA)

Abstract

펜딩(pending) 서비스 요구에 대하여 시스템 장치를 폴링하고, 펜딩 서비스 요구가 있었는지를 기록하고, 누적 데이터에 기초하여 시스템 장치가 유휴(idle)인지를 판정함으로써 펜딩 서비스 요구에 대한 폴링의 주기성을 적응시키는 방법. 이 판정에 기초하여, 시스템은 장치 활동 신호가 전송되거나 조절가능한 기간이 경과할 때까지 전력 절약 모드로 들어가도록 선택될 수 있다. 적응 메카니즘은 타이머 인터럽트의 주기성을 변경하고, 장치 인터럽트를 디스에이블 또는 인에이블할 수 있고, 시스템 유휴를 결정하는 데 사용되는 변수(최소 레이턴시 및 최소 유휴 임계치를 포함)를 변경할 수 있다. 이 방법으로, 시스템은 시스템 성능 및 응답성을 유지하면서 전력을 절약할 수 있다.

Description

전력 인식 적응형 폴링{POWER AWARE ADAPTIVE POLLING}
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 특히, 전력 소비를 절약하면서 성능 및 응답성을 유지하는 방식으로 적응형 폴링(polling)을 통해 이들 요구를 처리하는 방법 및 시스템에 관한 것이다.
일반화된 클라이언트-서버 컴퓨터 네트워크(2)가 도 1에 도시되어 있다. 네트워크(2)는 몇개의 서버(4, 6, 8, 9)를 가지며, 이들은 서로 직접 또는 다른 서버 중의 하나를 통해 간접적으로 상호 접속되어 있다. 각각의 서버는 (하나 이상의 프로세서, 메모리 장치, 및 통신 장치를 갖는) 독립형 컴퓨터 시스템이지만, 워크스테이션 클라이언트(10)의 개별 사용자에게 정보를 제공하는 하나의 주목적을 위하여 적응(프로그램)되어 왔다. 클라이언트(10)는 또한 (퍼스널 컴퓨터 또는 PC와 같이)독립형 컴퓨터 시스템 또는 (네트워크 컴퓨터 또는 NC와 같이)네트워크(2)를 통해 제한적으로 이용되도록 적응된 "더머(dumber)" 시스템일 수 있다. 여기에서 사용된 바와 같이, "PC"는 제조자, 하드웨어 플랫폼, 오퍼레이팅 시스템 등에 관계없이 일반적으로 개인에 의해 사용되도록 적응된 임의의 다목적 컴퓨터를 지칭한다. 단일 물리적 컴퓨터는, 이 구현이 드물게 발생하더라도, 서버 및 클라이언트 둘다로서 동작할 수 있다.
서버에 의해 제공된 정보는 주어진 클라이언트(10) 상에서 국부적으로 실행되는 프로그램의 형태 또는 다른 프로그램에 의해 사용된 파일 등의 데이터 형태일 수 있다. 사용자는 또한 지연된 파일 전송 뿐만 아니라 실시간으로 서로 통신할 수 있다. 즉, 동일한 서버에 접속된 사용자는 네트워크(2)를 필요로 하지 않고 서로 모두 통신할 수 있고, 서버(4 및 6) 등의 다른 서버의 사용자는 네트워크(2)를 통해 서로 통신할 수 있다. 네트워크는 성질상 국부적(즉, LAN)일 수 있거나 또는 서버(8 및 9)로 표시한 바와 같이 다른 시스템(미도시)에 또한 접속될 수 있다. 네트워크(2)의 구성은 또한 일반적으로 인터넷에 적용가능하다.
종래에, 범용 시스템은 그들의 성능에 의해 특징지어져 왔다. 대략적으로, 주어진 시스템은 특정 동작을 처리하는 속도에 기초하여 평가된다. 예로서, 초당 트랜스잭션수(transactions-per-second), 초당 웹 요구수(Web request-per second) 등이 있다. 최근, 전력 소비는 상업적, 국가적, 환경적 관심때문에 중요한 문제가 되었다. 컴퓨터 시스템은 북아메리카에서 발생된 전력의 약 10분의 1을 소비하는 것으로 추정된다. 그러므로, 성능을 손상시키지 않는 전력 효율 컴퓨팅 시스템에 대한 요구가 증가하고 있다.
범용 컴퓨터 시스템(클라이언트, 서버, 또는 덤(dumb) 장치)는 프로세서, 메인 메모리, 및 다수의 장치를 포함한다. 몇개의 버스는 일반적으로 임의의 공지된 프로토콜에 따라 이들 구성요소를 접속한다. 이러한 프로토콜의 예는 PCI(Peripheral Component Interconnect)이다. 일반적인 범용 컴퓨터 시스템 상에서, 프로세서는 장치에서 발신하는 인터럽트의 결과로서 각각의 주변 장치 요구를 조절한다. 각각의 인터럽트시에, 프로세스내에 컨텍스트 스위치가 발생하고, 그동안 프로세서 상태가 메인 메모리에 저장되고 새로운 상태가 초기화되어 장치 요구를 처리한다. 각각의 이러한 컨텍스트 스위치는 다양한 메모리 캐쉬에 대한 파괴적인 효과 및 상태 전이 및 메모리 레퍼런스의 국부성에 대한 결과적인 섭동 (perturbation) 때문에 과도한 오버헤드를 초래한다. 특히, 현대의 프로세서는 프로세서 속도 및 메모리 액세스 시간 사이의 갭을 증가시키기 때문에 이러한 종류의 오버헤드에는 더욱 민감하게 되었다. 그러므로, 고속의 인터럽트가 시스템 장치로부터 발생하면 성능에 해롭다.
폴링은 프로세서(CPU)가 장치 요구를 프로세싱할 수 있는 인터럽트에 대한 대안적인 방법이다. CPU는 예를 들어 네트워크 장치를 폴링하여 프로세싱될 임의의 패킷이 있는지를 판정한다. 소프트웨어 베이스드(software-based) 스위치, 방화벽, 프럭시 서버(proxy server), 및 제 1 타이어(first-tier) 웹 서버를 포함하는 네트워크 애플리언스(appliance)은 점차적으로 폴링된 입/출력(I/O)를 사용하여 인터럽트를 활동적으로 합체(coalesce)하고 인터럽트를 처리하는 동안 컨텍스트 스위칭과 관련된 레이턴시(latency)는 감소시킴으로써 전체적인 시스템 성능을 증가시킨다. 폴링은, 네트워크 트래픽 등의 장치 활동의 속도가 비교적 높지 않을때 장치 상태에 대한 불필요하고 연속적인 검사때문에 비효율적이다. 또한, 폴링은 작동을 하던지 하지 않던지간에 항상 발생하므로 전력 소비에 해로우며, 시스템이,CPU에 의해 소비되는 전력을 절약하도록 적절한 명령이 발행될 수 있는 "슬리프" 상태로 들어가는 것을 방해한다. 따라서, 폴링은 가장 기본적인 전력 절약 계획을 무효하게 할 수 있다.
이러한 관점에서, 전력을 절약하고 복잡한 전력 관리 메카니즘을 가능하게 하면서, 전체 시스템 성능 및 응답성을 증가시키는 장치 서비스 요구를 관리하는 개선된 방법을 고안하는 것이 바람직하다.
따라서, 본 발명의 목적은 컴퓨터 시스템의 장치 서비스 요구를 프로세싱하는 개선된 방법을 제공하는 것이다.
본 발명의 또다른 목적은 고성능으로 폴링을 사용하여 장치 서비스 요구를 더 효율적으로 처리하는 방법을 제공하는 것이다.
본 발명의 또다른 목적은 시스템 응답성 제약을 위반하지 않고 장치를 적응적으로 폴링하여 전력 소비를 저감시킬 수 있는 개선된 데이터 프로세싱 시스템을 제공하는 것이다.
도 1은 상호접속된 서버와 워크스테이션 클라이언트를 포함하는 종래의 컴퓨터 네트워크를 나타내는 도면.
도 2는 본 발명의 일구현예에 따른 네트워크 통신 기능을 수행하기 위하여 프로그램된 데이터 프로세싱 시스템의 블럭도.
도 3은 본 발명의 일실시예에 따른 도 2의 데이터 프로세싱 시스템에 사용되는 전이(transition)를 나타내는 상태도.
도 4는 본 발명의 폴링(polling) 메카니즘의 일구현예를 위한 논리적 흐름을 설명하는 챠트.
도 5는 종래의 인터럽트 구동 시스템의 전이를 설명하는 상태도.
도 6은 종래의 폴링 I/O 시스템의 전이를 설명하는 상태도.
*도면의 주요부분에 대한 부호의 설명*
11: 데이터 프로세싱 시스템
12: 중앙 처리 장치
14: 리드 온리 메모리
16: 다이내믹 랜덤 액세스 메모리
20: PCI 로컬 버스
22: PCI 호스트 브릿지
24: 네트워크 인터페이스 어댑터
26: SCSI 어댑터
상술한 목적은, 펜딩 장치 서비스 요구에 대한 폴링의 주기성을 적응시키는 방법에 있어서, 펜딩 서비스 요구에 대하여 상기 데이터 프로세싱 시스템의 장치를 폴링하는 단계; 펜딩 서비스 요구가 있었는지를 기록하는 단계; 누적된 데이터에 기초하여 장치가 충분히 유휴(idle)인지를 판정하는 단계를 포함하는 방법에 의해 달성된다. 이 판정에 기초하여, 시스템은 장치 활동 신호가 전송되거나 조절가능한 기간이 경과할 때까지 전력 절약 모드로 들어가도록 선택될 수 있다. 이 방법으로, 본 시스템은 시스템 성능 및 응답성을 유지하면서 전력을 절약할 수 있다. 유휴 시간의 최소 퍼센트는 최소 레이턴시 제약 및 타이머 인터럽트의 주기성으로서 적응적으로 설정될 수 있다. 프로세서의 동작은 후속의 인터럽트, 타이머 인터럽트, 또는 장치 인터럽트에 응답하여 전력 절약 후에 다시 시작할 수 있다.
본 발명의 상술한 및 추가의 목적, 특징, 이점은 다음의 상세한 설명으로부터 명백해질 것이다.
첨부된 도면을 참조함으로써 본 발명이 더 이해될 것이며, 본 기술에 숙련된 자에게 목적, 특징, 이점을 명백하게 될 것이다.
다른 도면에서의 동일한 참조 번호의 사용은 유사한 또는 동일한 항목을 지시한다.
도면을 참조하여, 특히, 도 2를 참조하여, 본 발명의 일구현예에 따라 네트워크 통신 기능을 수행하기 위하여 프로그램된 데이터 프로세싱 시스템의 일실시예(11)가 설명된다. 본 발명은 라우터(router), 방화벽, 또는 서버 등의 많은 다른 유형의 네트워크 애플리언스에 적용될 수 있고, 시스템(11)의 다음의 설명은 이들 및 다른 많은 네트워크 장치를 커버하도록 일반적인 것이다. 특정 애플리케이션에 기초한 시스템(11)의 추가적인 항목은 본 기술에 숙련된 자에게 명백할 것이다.
시스템(11)은 프로그램 명령을 수행하는 중앙 처리 장치(CPU; 12), 방화벽 또는 시스템의 기본 입/출력 로직을 저장하는 펌웨어 또는 리드 온리 메모리(ROM; 14) 및 CPU(12)에 의해 사용되는 프로그램 명령 및 오퍼랜드 데이터를 일시적으로저장하는 다이내믹 랜덤 액세스 메모리(DRAM; 16)를 포함한다. CPU(12), ROM(14), 및 DRAM(16)은 모두 시스템 버스(18)에 접속된다. 온보드(on-board; L1) 및 제 2 레벨(L2) 캐쉬 등의 도시하지 않은 메모리 계층의 추가의 구조가 있을 수 있다.
CPU(12), ROM(14), 및 DRAM(16)은 또한 PCI 호스트 브릿지(22)를 사용하여 PCI 로컬 버스(20)에 결합된다. PCI 호스트 브릿지(22)는 프로세서(12)가 입/출력(I/O) 어드레스 공간 또는 버스 메모리내의 어느 곳에 맵핑된 PCI 장치를 액세스할 수 있는 낮은 레이턴시 경로를 제공한다. PCI 호스트 브릿지(22)는 또한 높은 대역폭 경로를 제공하여 PCI 장치가 DRAM(16)을 액세스하도록 한다. PCI 로컬 버스(20)에는 네트워크 인터페이스 어댑터(24) 및 소형 컴퓨터 시스템 인터페이스(SCSI) 어댑터(26)가 접속된다. 네트워크 인터페이스 어댑터(24)는 근거리 통신망(LAN) 또는 인터넷 등의 외부 컴퓨터 네트워크(34)에 데이터 프로세싱 시스템(11)을 접속하는 데 사용될 수 있다. SCSI 어댑터(26)는 고속 SCSI 디스크 드라이브(36)를 제어하는 데 사용된다. 디스크 드라이브(36)는 후술하는 바와 같이 본 발명을 실시하는 프로그램을 포함하는 더 영구적인 상태로 프로그램 명령 및 데이터를 저장한다. 시스템(11)은 하나 이상의 네트워크 인터페이스 어댑터 또는 기억 장치를 사용할 수 있다. 또한, 어댑터(30)를 갖는 표시기로서 애플리케이션에 따라 다른 장치가 PCI 버스(20)에 부착될 수 있다. 예를 들어, 어댑터(30)는 직렬 인터페이스를 제공하여 시스템(11)의 프로그래밍을 허용할 수 있다.
예시적인 구현예는 디스크 드라이브(36; 기억 매체) 상에 본 발명을 구현하는 프로그램 명령을 제공하지만, 본 기술에 숙련된 자는 본 발명이 전송 매체를 포함하는 다른 컴퓨터 판독가능 매체를 이용하는 프로그램 제품에서 실시될 수 있음을 이해할 것이다. 일 실시예에서, 본 발명의 계산 단계가 C 등의 프로그래밍 언어를 사용하는 프로그램 코드로서 구현될 수 있다.
예시적인 실시예에서, 데이터 프로세싱 시스템(11)은 네트워크 통신을 위한 프로그램 명령을 수행하고, 전력 효율 방식으로, 특히 신규한 기술을 사용하여 I/O 장치(예를 들어, SCSI 어댑터(26) 또는 네트워크 인터페이스(24))를 폴링하여 인터럽트를 관리한다. 따라서, 프로그램 명령은 종래 형태의 네트워크 통신 기능을 포함할 수 있고, 이들 항목은 이 개시물을 참조할 때 본 기술에 숙련된 자에게 명백할 것이다.
본 발명은 시스템 응답성 제약을 위반하지 않고, 전력 효율을 증가시키기 위하여 비활동의 기간동안 CPU(12)를 전력 절약 상태로 선택적으로 배치하면서, 장치의 적응 폴링을 위한 메카니즘을 제공한다. 예시적인 실시예에서, 4개의 정보, 즉, 폴링 기능 호출이 임의의 작업을 발생하였는지; 얼마나 많이 폴링된 장치가 펜딩(pending) 서비스 요구를 가지고 있지 않은지;다음의 타이머 인터럽트까지 얼마나 많은 시간이 남아 있는지; 및 CPU 타이머 퀀타(quanta)가 얼마인지에 대한 정보는 메카니즘을 구현하기 위하여 폴링 인프라스트럭쳐의 일부로서 사용된다. 특정 장치, 예를 들어, 네트워크 인터페이스(24) 또는 SCSI 어댑터(26)에 인터럽트를 인에이블(enable) 및 디스에이블(disable)하는 기능이 제공된다. 적응 알고리즘은 전력 절약 모드로 들어가기에 충분하도록 시스템이 유휴(idle) 상태에 있을때를 결정하는 임계치 뿐만 아니라 CPU 타이머 퀀타를 변경하기 위한 메카니즘을 제공한다.
도 5는 이러한 시스템이 인터럽트-구동(interrupt-driven)될때 종래의 데이터 프로세싱 시스템과 관련된 다양한 상태를 나타낸다. 시스템이 애플리케이션을 실행하거나 오퍼레이팅 시스템내에서 작업을 수행하면, 실행(101) 상태로 간주된다. 퀀타으로서 정의되는 규칙적인 간격으로, 타이머 인터럽트 신호가 전송된다. 시스템은 컨텍스트 스위치를 수행하고 타이머 인터럽트 서비스 루틴(ISR; Interrupt Service Routine)으로 들어간다. 타이머 ISR(102)은, 주기적인 기능을 실행하고 멀티태스킹 오퍼레이팅 시스템 상의 스케쥴링을 수행하는 능력이 있다. 타이머 ISR(102)는 그 태스크를 완료한 후, 시스템 컨텍스트가 회복되어 제어는 실행(101) 상태로 되돌아간다.
네트워크 인터페이스 또는 디스크 등의 시스템 장치는 시스템 처리를 요구하는 활동을 경험할 때 장치 인터럽트(111)를 트리거한다. 이들 인터럽트는 디스크 기입 또는 네트워크 전송 등 이전에 요구된 동작의 완료에 의해 트리거될 수 있거나 네트워크 상에 새로운 패킷을 수신하는 등 새로운 데이터를 수신함으로써 트리거될 수 있다. 이러한 인터럽트가 수신되면, 시스템은 컨텍스트 스위치를 수행하고 장치의 인터럽트 서비스 루틴(장치 ISR(103))을 실행한다. 이 루틴은 장치 상태를 검사하고 임의의 요구된 동작을 수행하고, 그후, 시스템 컨텍스트가 회복되고 제어는 실행(101) 상태로 되돌아간다.
실행 준비된 애플리케이션 또는 오퍼레이팅 시스템 태스크가 없거나 시스템 이벤트 또는 장치 I/O를 대기하면서 상술한 모든 태스크가 차단되면, 시스템은 "유휴"(112)가 되고, 대부분의 시스템은 전력 절약 모드 또는 슬리프(104) 상태로 이동되도록 구성된다. 시스템은 인터럽트(타이머(120) 또는 장치(121))가 수신될때까지 이 상태에 머물고, 그후, 제어가 적절한 ISR(102 또는 103)으로 이동된다. 일반적으로, 임의의 ISR의 결과는 애플리케이션 또는 오퍼레이팅 시스템을 위한 새로운 작업을 생성할 것이며, 실행(101) 상태로 되돌아간다. 그렇지 않고, 시스템이 여전히 유휴이면, 전력 절약 또는 슬리프(104) 상태로 복귀될 것이다.
폴링 시스템(도 6)에서, 인터럽트는 장치 활동 신호를 전송하는 데에 사용되지 않는다. 대신, 장치 상태는 타이머 ISR(102) 또는 유휴 폴링 루프(105) 동안 주기적으로 검사된다. 폴링 루프(105)가 새로운 장치 활동을 검출하면, 장치의 ISR을 호출한다. 시스템이 항상 장치 상태를 검사하거나 애플리케이션 또는 시스템 태스크를 실행하므로, 전력 절약이나 슬리프 상태(104)로 이동될 기회가 없다. 실행에 필요한 애플리케이션이나 시스템 태스크가 없을때 단순히 슬리핑하는 것은 장치 서비스 요구에 대한 레이턴시 제약을 위반할 수 있고 시스템 성능 저하를 초래할 수 있다.
도 3은 시스템 성능 및 응답성의 저하없이 시스템 전력 절약을 조절하기 위한 적응 메카니즘을 갖는 2개의 종래의 시스템의 하이브리드를 나타낸다. 시스템은 실행 상태(101)에서 시작하고, 시스템이 더이상 실행할 애플리케이션 또는 시스템 태스크를 가지지 않거나 타이머 인터럽트가 발생하면, 시스템은 폴링 상태(105)로 이동한다. 장치 상태의 폴링이 서비스 요구를 검출하면, 제어는 적절한 장치의 ISR(103)로 이동한다. ISR이 완료되면, 활동 카운터는 증가하고 제어는 적응루틴(106)에 도달한다. 장치 활동이 검출되지 않으면, 비활동 카운터가 증가하고 제어는 적응 루틴(106)에 도달한다.
적응 루틴(106)은, (얼마나 많이 폴링된 장치가 작업을 하지 않거나 펜딩 서비스 요구를 가졌는지를 트랙킹하는) 활동 및 비활동 카운터를 포함하는 시스템 상태를 조사할 수 있고, 시스템 응답성 제약을 유지하면서 시스템 파라미터를 적응시켜 전력 절약을 증가시키거나 감소시킨다. 이 적응은 시스템마다 변화할 수 있고, 하나의 특정 실시예는 장치를 "유휴"로 선언하도록 선택할 수 있고, 따라서, 장치의 상태가 비활동으로 되돌아가는 소정수의 폴링후에 시스템을 전력 절약에 적합하게 할 수 있다. 또한, 시스템이 "유휴"로 간주되기 전에 유휴 임계치 또는 연속적인 비활동 폴링의 수를 조절하도록 선택할 수 있다.
(전체 타이머 퀀타에 대하여 장치 활동이 없는 것으로 검출되는) 확장된 유휴의 기간동안, 적응 알고리즘(106)은 장치 상태의 단일 폴링만이 장치가 유휴인지를 결정하는데 필요한 방식으로 임계치를 감소시킴으로써 폴링을 디스에이블하고 장치 인터럽트를 다시 인에이블링하도록 선택할 수 있다. 이 방법은 시스템이 가능한한 많이 슬리프 상태에 있도록 하고, 장치 활동 또는 타이머 인터럽트에 의해서만 인터럽트되도록 한다. 이러한 임의의 장치 활동은 적응 루틴(106)을 트리거하여 장치 인터럽트를 디스에이블하고 비활동을 위한 임계치를 증가시킨다.
또다른 실시예는 타이머 인터럽트가 덜 빈번히 발생하도록 타이머 인터럽트(퀀타)의 주기를 조절하도록 선택할 수 있다. 시스템 스케쥴링 정책 및 주기적 태스크의 고려는 이 조절에 상한을 제공할 수 있다.
서비스 요구의 배치(batch)를 제공하기 위하여, 타이머 퀀타의 종료까지의 시간이 서비스 요구를 위한 최소 레이턴시 임계치보다 작으면, 적응 루틴(106)은 또한 비활동 임계치에 도달하기 전에 시스템 유휴를 선언하도록 결정할 수 있다. 간략화된 예에서, 웹 서버 블레이드(blade)를 위한 타이머 퀀타는 10밀리초로 설정될 수 있다. 마지막 클록이 똑딱거린 후 폴링 및 활동의 8밀리초가 경과하였다. 최소 레이턴시 제약이 3밀리초로 설정되면, CPU는 다음의 타이머가 똑딱거릴때까지 잔여의 2밀리초 동안 슬리핑될 것이다.
적응 루틴(106)이 실행된 후, 시스템은 시스템 또는 애플리케이션 태스크가 실행할 준비가 되었는지를 검사한다. 준비된 경우, 제어는 실행(101) 상태로 진행하여 태스크(들)을 실행한다. 태스크가 실행될 준비가 되어 있지 않으면, 시스템은 시스템이 "유휴"로 간주되는지를 관찰하기 위하여 적응 파라미터를 검사한다. 시스템이 유휴로 간주되지 않으면, 장치 상태를 조사하기 위하여 폴링 상태(105)로 재진입한다. 시스템이 유휴인 것으로 판정되면, 전력 절약은 응답성을 저하시키지 않고, 따라서, 시스템은 슬리프(104) 상태로 들어간다. 인터럽트(장치 또는 타이머)는 시스템을 전력 절약 슬리프(104) 상태로부터 빠져나오게 하여 폴링 상태(105)로 진입하도록 할 것이다.
최소 레이턴시 제약은 시스템 설계자에 의해 하드 코딩(hard-coded)될 수 있거나 시스템의 엔드-투-엔드(end-to-end) 응답 시간 제약을 충족시키기 위한 피드백에 기초하여 시간에 걸쳐 적응될 수 있다. 이 엔드-투-엔드 응답 시간의 유도는 응용 설계서이며 사용자의 필요성에 따라 상당히 변경될 수 있다. 예를 들어, 5초전송 지연을 갖는 긴 기간 네트워크 상의 웹 서버는 전력 절약에 의해 발생된 4밀리초 지연을 점더 용이하게 허용할 수 있다. 모델링 결과는 웹 서버 블레이드의 인텔 CPU 아키텍처를 이용할때 30-40%의 포텐셜 전력을 절약하는 것을 나타낸다.
본 발명은 또한 예시적인 구현예를 나타내는 도 4의 플로우챠트를 참조하면 더 이해될 것이다. 도 4의 단계들 중 몇개는 도 3의 대응하는 기능 동작 상태를 나타내는 괄호내의 제 2 참조 번호를 포함한다. 프로세스는 사용자 애플리케이션(50)을 실행하는 것으로부터 시작한다. 시스템은 실행 준비된 애플리케이션 또는 시스템 태스크가 더이상 없는지 또는 인터럽트를 대기한다(54). 그후, 시스템은 펜딩 서비스 요구가 있는지를 관찰하기 위하여 장치를 폴링한다(58). 펜딩 서비스 요구(62)가 있으면, 시스템은 활동을 고려하여(61) 장치의 인터럽트 서비스 루틴으로 이동하여 요구를 처리한다(64). 장치의 요구(들)를 프로세싱한 후, 시스템은 적응(68) 단계로 향한다. 펜딩 서비스 요구가 검출되지 않으면, 시스템 비활동 카운터가 증가되고(63), 그후 적응 루틴(68)이 실행된다.
상술한 바와 같이, 적응 루틴(68)은 활동, 비활동 및/또는 퀀타의 잔여 시간에 기초하여 시스템 변수를 조절한다. 그후, 장치가 유휴를 선언하는지를 판정한다. 장치가 유휴이면, 적응 루틴은 장치 인터럽트를 인에이블하도록 결정할 수 있다. 적응 루틴이 종료한 후, 시스템은 실행 준비된 임의의 애플리케이션 또는 시스템 태스크가 있는지를 검사한다. 있으면, 태스크를 실행하도록 복귀한다(50). 그렇지 않으면, 시스템은 적응 루틴에서 장치가 유휴임을 선언하였는지를 검사한다(72). 그렇지 않으면, 시스템은 펜딩 서비스 요구에 대하여 장치를 폴링하도록 복귀한다(58). 장치가 유휴이면, 시스템은 타이머 또는 장치 인터럽트를 수신하지 않으면 나오지 않는 전력 절약 상태로 들어간다(74).
장치 인터럽트가 시스템이 전력 절약 상태에서 나오도록 하였으면(69), 장치 인터럽트가 디스에이블되고(58) 시스템은 펜딩 서비스 요구에 대한 폴링으로 복귀한다(58).
본 발명은 특정한 실시예를 참조하여 설명하였지만, 이 설명은 한정된 범위로 해석되어서는 안된다. 개시된 실시예의 다양한 변경 및 본 발명의 다른 실시예는 본 발명의 설명을 참조하여 당업자에게 명백한 것이다. 그러므로, 첨부된 청구범위에 정의된 본 발명의 사상 및 범위를 벗어나지 않고 그러한 변경이 가능하다.
본 발명에 따르면, 시스템 응답성 제약을 위반하지 않고 장치를 적응적으로 폴링하여 전력 소비를 저감시킬 수 있는 효과가 있다.

Claims (9)

  1. 프로세서와 하나 이상의 입/출력(I/O) 장치를 갖는 데이터 프로세싱 시스템에서 펜딩 장치 서비스 요구에 대한 폴링의 주기성(periodicity)를 적응시키는 방법에 있어서,
    펜딩 서비스 요구에 대하여 상기 데이터 프로세싱 시스템의 장치를 폴링하는 단계;
    펜딩 서비스 요구가 있었는지를 기록하는 단계;
    누적된 데이터에 기초하여 장치가 유휴(idle) 상태인 것으로 판정하는 단계; 및
    상기 판정 단계에 응답하여, 상기 프로세서를 저전력 상태로 두는 단계를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 폴링 단계로부터 수신된 하나 이상의 요구를 처리하는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서, 상기 장치가 유휴 상태인 것으로 간주되기 전에, 펜딩 서비스 요구를 찾지 못하는 최소 폴링수의 임계치를 적응적으로 설정하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서, 시스템 및 장치 비활동에 응답하여, 상기 프로세서가 타이머에 의해 얼마나 자주 인터럽트되는지에 대응하는 타이머 퀀타(quanta)의 주기를 적응적으로 설정하는 단계를 더 포함하는 방법.
  5. 제 1 항에 있어서, 장치 활동 및 그 결여(lack)에 응답하여 장치 인터럽트를 인에이블하고 디스에이블하는 단계를 더 포함하는 방법.
  6. 제 1 항에 있어서, 펜딩 서비스 요구가 있는 동안 시스템이 저전력 상태에 머무를 수 있는 최대 시간량에 대한 최소 레이턴시 임계치를 적응적으로 설정하는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서, 후속 인터럽트에 응답하여 프로세서를 저전력 상태로 둔 후에 프로세서의 동작을 다시 시작하는 단계를 더 포함하는 방법.
  8. 하나 이상의 프로세서;
    상기 프로세서에 접속된 메모리 장치;
    상기 프로세서에 접속된 하나 이상의 입/출력(I/O) 장치; 및
    펜딩 장치 서비스 요구에 대한 폴링의 주기성을 적응시키기 위하여 상기 메모리 장치에 저장되어, 제 1 항 내지 제 7 항 중 어느 한 항에 기재된 방법의 단계들을 구현하는 프로그램 명령
    을 포함하는 데이터 프로세싱 시스템.
  9. 프로세서 및 하나 이상의 I/O 장치를 갖는 데이퍼 프로세싱 시스템에서 펜딩 장치 서비스 요구에 대한 폴링의 주기성을 적응시키는 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체로서, 상기 컴퓨터 프로그램은 제 1 항 내지 제 7 항 중 어느 한 항에 기재된 방법의 단계들을 구현하는 프로그램 명령을 포함하는 컴퓨터 판독 가능 기록 매체.
KR1020030080977A 2002-12-18 2003-11-17 전력을 고려한 적응형 폴링 KR100550195B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/324,738 US7093141B2 (en) 2002-12-18 2002-12-18 Power aware adaptive polling
US10/324,738 2002-12-18

Publications (2)

Publication Number Publication Date
KR20040054491A true KR20040054491A (ko) 2004-06-25
KR100550195B1 KR100550195B1 (ko) 2006-02-08

Family

ID=32593537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030080977A KR100550195B1 (ko) 2002-12-18 2003-11-17 전력을 고려한 적응형 폴링

Country Status (5)

Country Link
US (1) US7093141B2 (ko)
JP (1) JP4347035B2 (ko)
KR (1) KR100550195B1 (ko)
CN (1) CN1234059C (ko)
TW (1) TWI234711B (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW595127B (en) * 2003-04-09 2004-06-21 Wistron Neweb Corp Method and apparatus for power management of electronic device
TWI283341B (en) * 2003-11-20 2007-07-01 Acer Inc Structure of dynamic management device power source and its method
US7103693B2 (en) * 2004-09-30 2006-09-05 International Business Machines Corporation Method for applying interrupt coalescing to incoming messages based on message length
WO2006062270A1 (en) * 2004-12-08 2006-06-15 Electronics And Telecommunications Research Institute Power management method for platform and that platform
US7386747B2 (en) * 2005-05-10 2008-06-10 Qualcomm Incorporated Method and system for reducing power consumption of a programmable processor
US8286169B2 (en) * 2005-06-17 2012-10-09 Intel Corporation Dynamic scheduling an interval for polling devices based on a current operational power mode in an extensible firmware interface architecture
TWI308696B (en) * 2005-10-07 2009-04-11 Via Tech Inc Initializing method bus device
TWI307012B (en) * 2005-11-17 2009-03-01 Via Tech Inc Idle state adjusting method and logical chip and computer system using the same
US20070260905A1 (en) * 2006-05-01 2007-11-08 Integration Associates Inc. Wireless controlled wake up
CN100410911C (zh) * 2006-05-31 2008-08-13 威盛电子股份有限公司 中断控制器、中断信号预处理电路及其中断控制方法
US8127159B1 (en) 2007-07-23 2012-02-28 Marvell International Ltd. Power management in a wireless local area network
TWI466018B (zh) * 2007-08-24 2014-12-21 Via Tech Inc 降低電腦系統耗能的方法、電腦系統、及控制裝置
CN101378544B (zh) * 2007-08-31 2011-12-07 国际商业机器公司 信息轮询方法、装置及其系统
US8473647B2 (en) * 2007-09-17 2013-06-25 Apple Inc. Methods and apparatus for decreasing power consumption and bus activity
US7996580B2 (en) * 2007-12-10 2011-08-09 Sandisk Il Ltd. System and method for notifying a host of a service required by a slave storage device
US8032633B2 (en) * 2008-06-10 2011-10-04 International Business Machines Corporation Computer-implemented method for implementing a requester-side autonomic governor using feedback loop information to dynamically adjust a resource threshold of a resource pool scheme
US8250212B2 (en) * 2008-06-10 2012-08-21 International Business Machines Corporation Requester-side autonomic governor
US8612998B2 (en) * 2010-09-23 2013-12-17 Intel Corporation Coordinating device and application break events for platform power saving
US8028104B2 (en) * 2009-01-29 2011-09-27 Xerox Corporation Method and system for polling multifunction devices based on performance criteria
US8364862B2 (en) * 2009-06-11 2013-01-29 Intel Corporation Delegating a poll operation to another device
US8024606B2 (en) * 2009-08-21 2011-09-20 International Business Machines Corporation Power restoration to blade servers
US20110106935A1 (en) * 2009-10-29 2011-05-05 International Business Machines Corporation Power management for idle system in clusters
US9146601B2 (en) * 2009-11-20 2015-09-29 Lenovo (Singapore) Pte. Ltd. Systems and methods for electronic device power management
CN101968678A (zh) * 2010-08-10 2011-02-09 东莞环亚高科电子有限公司 一种嵌入式Linux设备低功耗电源管理设备
US9075652B2 (en) 2010-12-20 2015-07-07 Microsoft Technology Licensing, Llc Idle time service
CN103218032B (zh) 2011-11-29 2017-07-14 英特尔公司 利用相对能量损益平衡时间的功率管理
US9311243B2 (en) 2012-11-30 2016-04-12 Intel Corporation Emulated message signaled interrupts in multiprocessor systems
US9195285B2 (en) * 2012-12-27 2015-11-24 Intel Corporation Techniques for platform duty cycling
US9213390B2 (en) * 2012-12-28 2015-12-15 Intel Corporation Periodic activity alignment
US20140189184A1 (en) * 2012-12-28 2014-07-03 Nicholas Adams Creating dynamic fixed functionality for a hardware device system
US9829949B2 (en) 2013-06-28 2017-11-28 Intel Corporation Adaptive interrupt coalescing for energy efficient mobile platforms
US9032119B2 (en) 2013-07-25 2015-05-12 Alcatel Lucent Adaptive polling of information from a device
CN103488522B (zh) * 2013-09-22 2017-10-17 华为技术有限公司 一种管理虚拟机的设备的方法及设备
US10055369B1 (en) 2017-03-27 2018-08-21 Apple Inc. Systems and methods for coalescing interrupts
CN107861897A (zh) * 2017-11-06 2018-03-30 郑州云海信息技术有限公司 一种中断和轮询触发方法、系统、设备及计算机存储介质
US11579678B2 (en) * 2018-07-02 2023-02-14 Telefonaktiebolaget Lm Ericsson (Publ) Software switch and method therein
US11252070B2 (en) * 2018-10-09 2022-02-15 Vmware, Inc. Adaptive polling in software-defined networking (SDN) environments
US11249536B2 (en) 2018-12-17 2022-02-15 Qualcomm Incorporated Reducing power consumption of communication interfaces by clock frequency scaling and adaptive interleaving of polling
CN111143032A (zh) * 2019-12-20 2020-05-12 上海交通大学 一种基于请求应答的半虚拟化i/o系统和方法
KR102369354B1 (ko) * 2020-03-26 2022-03-02 성균관대학교산학협력단 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치
JPWO2023002547A1 (ko) * 2021-07-19 2023-01-26
WO2023144958A1 (ja) * 2022-01-27 2023-08-03 日本電信電話株式会社 サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239652A (en) * 1991-02-04 1993-08-24 Apple Computer, Inc. Arrangement for reducing computer power consumption by turning off the microprocessor when inactive
GB9109595D0 (en) * 1991-05-02 1991-06-26 Thomson Consumer Electronics Polling for detection of power supply or other failures of a digital circuit
US5440560A (en) * 1991-12-24 1995-08-08 Rypinski; Chandos A. Sleep mode and contention resolution within a common channel medium access method
JPH10163943A (ja) * 1996-11-26 1998-06-19 Nippon Denki Ido Tsushin Kk 通信システム
JP3414244B2 (ja) * 1998-02-27 2003-06-09 ソニー株式会社 通信制御方法及び伝送装置
US6449663B1 (en) * 1998-07-08 2002-09-10 International Business Machines Corporation Method and apparatus for adjusting an interval of polling a network printer based on changes in working status of the network printer
US6640268B1 (en) * 1998-08-28 2003-10-28 Intel Corporation Dynamic polling mechanism for wireless devices
US6807159B1 (en) * 2000-10-25 2004-10-19 International Business Machines Corporation Methodology for managing power consumption in master driven time division duplex wireless network
US7757094B2 (en) * 2001-02-27 2010-07-13 Qualcomm Incorporated Power management for subscriber identity module

Also Published As

Publication number Publication date
US20040123169A1 (en) 2004-06-24
TWI234711B (en) 2005-06-21
JP4347035B2 (ja) 2009-10-21
JP2004199683A (ja) 2004-07-15
US7093141B2 (en) 2006-08-15
CN1234059C (zh) 2005-12-28
KR100550195B1 (ko) 2006-02-08
TW200424860A (en) 2004-11-16
CN1508652A (zh) 2004-06-30

Similar Documents

Publication Publication Date Title
KR100550195B1 (ko) 전력을 고려한 적응형 폴링
US7058824B2 (en) Method and system for using idle threads to adaptively throttle a computer
Lu et al. Operating-system directed power reduction
US7610497B2 (en) Power management system with a bridge logic having analyzers for monitoring data quantity to modify operating clock and voltage of the processor and main memory
US8473647B2 (en) Methods and apparatus for decreasing power consumption and bus activity
KR0177536B1 (ko) 정보 처리 장치, 그 처리 방법 및 전원 제어 방법
US8392312B2 (en) Adaptive scheduling of storage operations based on utilization of a multiple client and server resources in a distributed network storage system
Chou et al. Dynsleep: Fine-grained power management for a latency-critical data center application
TWI392269B (zh) 用於自主調整持續連接之裝置及方法
US5983357A (en) Computer power management
US8103884B2 (en) Managing power consumption of a computer
JP5763168B2 (ja) プロセッサパフォーマンスマネジメントシステムからの処理のマスキングによる電源消費の低減
US8677160B2 (en) Managing power consumption of a computer
EP2430541A1 (en) Power management in a multi-processor computer system
US20120297216A1 (en) Dynamically selecting active polling or timed waits
EP3717987B1 (en) Dynamic interrupt rate control in computing systems
Kang et al. Nmap: Power management based on network packet processing mode transition for latency-critical workloads
Batsakis et al. Ca-nfs: A congestion-aware network file system
US11256321B2 (en) Network-driven, packet context-aware power management for client-server architecture
US20120066520A1 (en) Network controller circuitry to determine, at least in part, whether at least one power management action is to be initiated
US20110225593A1 (en) Interface-based environmentally sustainable computing
WO2023218596A1 (ja) サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム
KR102613979B1 (ko) 멀티 코어 프로세서 전력 관리 장치 및 방법
Batsakis Improving the performance of network file systems through memory optimizations
Freeh et al. Controlling impact while aggressively scavenging idle resources

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

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140124

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee