KR100550195B1 - 전력을 고려한 적응형 폴링 - Google Patents

전력을 고려한 적응형 폴링 Download PDF

Info

Publication number
KR100550195B1
KR100550195B1 KR1020030080977A KR20030080977A KR100550195B1 KR 100550195 B1 KR100550195 B1 KR 100550195B1 KR 1020030080977 A KR1020030080977 A KR 1020030080977A KR 20030080977 A KR20030080977 A KR 20030080977A KR 100550195 B1 KR100550195 B1 KR 100550195B1
Authority
KR
South Korea
Prior art keywords
polling
pending
processor
idle
service requests
Prior art date
Application number
KR1020030080977A
Other languages
English (en)
Other versions
KR20040054491A (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

Images

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}
도 1은 상호접속된 서버와 워크스테이션 클라이언트를 포함하는 종래의 컴퓨터 네트워크를 나타내는 도면.
도 2는 본 발명의 일구현예에 따른 네트워크 통신 기능을 수행하기 위하여 프로그램된 데이터 처리 시스템의 블럭도.
도 3은 본 발명의 일실시예에 따른 도 2의 데이터 처리 시스템에 사용되는 전이(transition)를 나타내는 상태도.
도 4는 본 발명의 폴링(polling) 메카니즘의 일구현예를 위한 논리적 흐름을 설명하는 챠트.
도 5는 종래의 인터럽트 구동 시스템의 전이를 설명하는 상태도.
도 6은 종래의 폴링 I/O 시스템의 전이를 설명하는 상태도.
*도면의 주요부분에 대한 부호의 설명*
11: 데이터 처리 시스템
12: 중앙 처리 장치
14: ROM
16: DRAM
20: PCI 로컬 버스
22: PCI 호스트 브릿지
24: 네트워크 인터페이스 어댑터
26: SCSI 어댑터
본 발명은 일반적으로 컴퓨터 시스템에 관한 것이고, 구체적으로 장치 요구 처리, 더욱 구체적으로는 전력 소비를 절약하면서 성능 및 응답성을 유지하는 방식으로 적응형 폴링(adaptive polling)을 통해 이들 장치 요구를 처리하는 방법 및 시스템에 관한 것이다.
일반화된 클라이언트-서버 컴퓨터 네트워크(2)가 도 1에 도시되어 있다. 네트워크(2)는 몇개의 서버(4, 6, 8, 9)를 가지며, 이들은 서로 직접 또는 다른 서버 중의 하나를 통해 간접적으로 상호 접속되어 있다. 각각의 서버는 본질적으로는 (하나 이상의 프로세서, 메모리 장치 및 통신 장치를 갖는) 독립형 컴퓨터 시스템이지만, 워크스테이션 클라이언트(10)의 각 사용자에 대한 정보 제공이라는 하나의 주요 목적을 위하여 적합화(프로그램)되어 왔다. 클라이언트(10)는 (퍼스널 컴퓨터, 즉 PC와 같은) 독립형 컴퓨터 시스템일 수도 있고, (네트워크 컴퓨터, 즉 NC와 같이) 네트워크(2)를 통한 제한적 이용을 위해 적합화된 "더머(dumber)" 시스템일 수 있다. 여기에서 사용되는 것처럼, "PC"는 제조자, 하드웨어 플랫폼, 오퍼레이팅 시스템 등에 관계없이 일반적으로 각 개인이 사용하도록 적합화된 임의의 다목적 컴퓨터를 지칭하는 것이다. 하나의 물리적 컴퓨터가, 비록 그와 같은 구현이 드물기는 하지만, 서버와 클라이언트 둘다로서 동작할 수도 있다.
서버에 의해 제공되는 정보는 주어진 클라이언트(10) 상에서 국부적으로 실행되는 프로그램 형태일 수도 있고 다른 프로그램에 의해 사용되는 파일 등의 데이터 형태일 수도 있다. 사용자는 또한 지연 파일 전송(delayed file delivery) 뿐만 아니라 실시간으로도 서로 통신할 수 있다. 즉, 동일한 서버에 접속된 사용자들은 네트워크(2)의 도움없이도 서로 모두 통신할 수 있고, 서버(4 및 6) 등 각기 다른 서버의 사용자들은 네트워크(2)를 통해 서로 통신할 수 있다. 네트워크는 성질상 국부적(즉, LAN)일 수도 있고, 서버(8 및 9)로 표시한 바와 같이 다른 시스템(도시되지 않음)에 더 접속될 수도 있다. 네트워크(2)의 구성은 또한 일반적으로 인터넷에 적용가능하다.
종래에, 범용 시스템은 그들의 성능에 의해 특징지어져 왔다. 대략적으로, 소정의 시스템은 특정 동작을 처리하는 속도에 기초하여 평가된다. 예로서, 초당 트랜스잭션수(transactions-per-second), 초당 웹 요구수(Web request-per second) 등이 있다. 최근에는, 전력 소비가 상업적, 국가적, 환경적 관심때문에 중요한 문제가 되고 있다. 컴퓨터 시스템은 북아메리카에서 생성된 전력의 약 10분의 1을 소비하는 것으로 추정된다. 그러므로, 성능을 손상시키지 않는 전력 효율적 컴퓨팅 시스템에 대한 요구가 계속 증가하고 있다.
범용 컴퓨터 시스템(클라이언트, 서버, 또는 덤(dumb) 장치)은 프로세서, 메인 메모리 및 다수의 장치를 포함한다. 일반적으로 수 개의 버스가 임의의 공지된 프로토콜에 따라 이들 구성요소들을 접속시킨다. 이러한 프로토콜의 예로는 PCI (Peripheral Component Interconnect)가 있다. 일반적인 범용 컴퓨터 시스템 상에서, 프로세서는 어느 장치에서 발생하는 인터럽트의 결과로서 각 주변 장치 요구를 처리한다. 각 인터럽트 발생 시에, 프로세스 내에서는 문맥 교환(context switch)이 발생하며, 문맥 교환이 이루어지는 동안 그 프로세서의 상태가 메인 메모리에 저장되고 해당 장치 요구를 처리하기 위한 새로운 상태가 초기화된다. 이러한 각 문맥 교환은 다양한 메모리 캐쉬에 대한 상태 전달 및 그 파괴적 효과, 그리고 그에 따른 메모리 참조의 국부성에 대한 결과적인 혼란(perturbation)으로 인하여 과도한 오버헤드를 초래한다. 특히, 현대의 프로세서에서는 프로세서 속도와 메모리 액세스 시간 사이의 갭이 증가하고 있기 때문에 이러한 종류의 오버헤드에 더욱 민감하게 되어가고 있다. 그러므로, 시스템 장치로부터 발생하는 인터럽트 비율이 높아지면 성능을 해치게 된다.
폴링은 프로세서(CPU)가 장치 요구를 처리할 수 있도록 하는 인터럽트에 대한 대안적인 방법이다. CPU는, 예를 들어 처리할 임의의 패킷이 있는지를 판정하고자 네트워크 장치를 폴링할 수 있다. 소프트웨어-기반형(software-based) 스위치, 방화벽, 프록시 서버(proxy server) 및 제1 계층(first-tier) 웹 서버를 비롯한 네트워크 장치들(appliance)은, 인터럽트들을 능동적으로 합체시키고(coalesce), 인터럽트를 처리하는 동안 이루어지는 문맥 교환과 관련된 대기 시간(latency)을 감소시킴으로써 전체 시스템 성능을 증가시킬 수 있는 폴링형 입/출력(I/O)을 점점 더 많이 사용해가고 있다. 폴링은, 네트워크 트래픽 등의 장치 활동의 비율이 비교적 높지 않을 때에는 장치 상태에 대한 불필요하고 연속적인 검사로 인하여 비효율적인 것이 된다. 또한, 폴링은 작업이 있거나 없거나 항상 발생하므로 전력 소비에 바람직하지 않으며, 시스템이, CPU에 의해 소비되는 전력을 저감할 수 있도록 적절한 명령이 발행될 수 있는 "슬리프" 상태에 들어가는 것을 방해한다. 따라서, 폴링은 가장 기본적인 전력 저감 계획의 효과를 해칠 수 있다.
이러한 관점에서, 전력을 절약하고 복잡한 전력 관리 메카니즘을 가능하게 하면서, 전체 시스템 성능 및 응답성을 증가시키는 개선된 장치 서비스 요구 관리 방법을 고안하는 것이 바람직하다.
따라서, 본 발명의 목적은 컴퓨터 시스템에서 장치 서비스 요구들을 처리하는 개선된 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 폴링을 사용하여 고성능을 보유한 채 그와 같은 장치 서비스 요구를 더 효율적으로 처리하도록 하는 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 시스템 응답성 제약을 위반하지 않고서 장치를 적응적으로 폴링하여 전력 소비를 저감시킬 수 있는 개선된 데이터 처리 시스템을 제공하는 것이다.
상기 목적은, 펜딩 중인 장치 서비스 요구들에 대해 폴링의 주기성을 적응시키는 방법으로서, 펜딩 중인 서비스 요구들에 관하여 시스템 장치들을 폴링하는 단계와, 펜딩 중인 서비스 요구가 있었는지 여부를 기록하는 단계와, 누적된 데이터에 기초하여 시스템 장치가 충분히 유휴 상태(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)를 갖춘 표시기(indicator)와 같이 애플리케이션에 따라 또 다른 장치가 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)인 종래의 데이터 처리 시스템과 관련된 다양한 상태들을 도시한 것이다. 시스템이 애플리케이션을 실행하거나 오퍼레이팅 시스템 내의 태스크를 수행 중인 경우, 이는 실행(Run)(101) 상태로 간주된다. 퀀타로서 정의되는 규칙적인 간격으로, 타이머 인터럽트 신호가 전송된다. 시스템은 문맥 교환을 수행하고 타이머 인터럽트 서비스 루틴(ISR; Interrupt Service Routine)(102)에 들어간다. 타이머 ISR(102)은, 주기적 기능의 실행과 멀티태스킹 오퍼레이팅 시스템 상에서의 스케쥴링 수행을 담당한다. 타이머 ISR(102)이 자기의 태스크를 완료한 후, 시스템 문맥이 복구되고 제어는 실행(101) 상태로 되돌아간다.
네트워크 인터페이스나 디스크 등의 시스템 장치들은 시스템 처리(system attention)를 요구하는 활동이 생길 때 장치 인터럽트(111)를 트리거링한다. 이와 같은 인터럽트는 디스크 기록이나 네트워크 전송 등의 앞서 요구된 동작이 완료함에 의해 트리거링될 수도 있고 네트워크를 통해 새로운 패킷을 수신하는 등 새로운 데이터를 수신함으로써 트리거링될 수도 있다. 이러한 인터럽트가 수신되면, 시스템은 문맥 교환을 수행하고 해당 장치의 인터럽트 서비스 루틴(장치 ISR(103))을 실행한다. 이 루틴은 그 장치의 상태를 검사하고 임의의 요구된 동작을 수행하고, 종료 후에, 시스템 문맥이 복구되고 제어는 실행(101) 상태로 되돌아간다.
실행 준비가 된 애플리케이션이나 오퍼레이팅 시스템 태스크가 없을 때, 또는 시스템 이벤트나 장치 I/O를 대기하면서 전술한 태스크가 모두 차단되 때, 시스템은 "유휴" 상태(112)라 할 수 잇고, 대부분의 시스템은 전력 저감 모드, 즉 슬리프(104) 상태에 들어가도록 구성된다. 시스템은 인터럽트(타이머 인터럽트(120) 또는 장치 인터럽트(121))가 수신될 때까지 이 상태에 머물 것이고, 인터럽트 수신 후, 제어가 적절한 ISR(102 또는 103)로 이동한다. 대개는, 양자 중 어느 것이든 ISR의 실행 결과로 애플리케이션이나 오퍼레이팅 시스템을 위한 새로운 작업이 생성되고, 실행(101) 상태로 들어갈 것이다. 그렇지 않고, 시스템이 여전히 유휴 상태이면, 전력 저감, 즉 슬리프(104) 상태로 되돌아갈 것이다.
폴링 시스템(도 6)에서는, 장치 활동 신호를 보내는데 인터럽트를 사용하지 않는다. 그 대신, 타이머 ISR(102) 동안 또는 유휴 폴링 루프(105) 동안 장치 상태가 주기적으로 검사된다. 폴링 루프(105)는 새로운 장치 활동을 검출하면, 그 장치의 ISR을 호출한다. 이러한 시스템은 계속하여 장치 상태를 검사하거나 애플리케이션 또는 시스템 태스크를 실행하므로, 전력 저감이나 슬리프 상태(104)에 들어갈 기회가 없다. 실행할 필요가 있는 애플리케이션이나 시스템 태스크가 없을때 단순히 슬리핑 상태(sleeping)로만 있는 것은 장치 서비스 요구에 대한 대기 시간 제약 조건을 위반하는 결과를 야기할 수 있고 시스템 성능 저하를 초래할 수 있다.
도 3은 시스템 성능 및 응답성을 저하시키는 일없이 시스템의 전력 저감을 조절하기 위한 적응 메카니즘을 갖춘 상기 2개의 종래 시스템의 하이브리드를 도시하고 있다. 시스템은 실행 상태(101)에서 시작하고, 그 시스템이 더이상 실행할 애플리케이션이나 시스템 태스크를 갖지 않거나 타이머 인터럽트가 발생하면, 이러한 시스템은 폴링 상태(105)에 들어간다. 장치 상태를 폴링하여 서비스 요구가 검출되면, 제어는 적절한 장치의 ISR(103)로 이동한다. 그 ISR이 완료되면, 활동 카운터가 증가되고 제어는 적응 루틴(106)으로 전해진다. 장치 활동이 검출되지 않으면, 비활동 카운터가 증가되고 제어는 적응 루틴(106)으로 전해진다.
적응 루틴(106)은, (폴링된 장치가 얼마나 여러 번 처리할 작업을 갖고 있지 않았는지 또는 펜딩 중인 서비스 요구를 갖고 있었는지를 추적하는) 활동 카운터 및 비활동 카운터 등의 시스템 상태를 검사할 수 있고, 시스템 응답성 제약 조건을 유지하면서 전력 저감 상태를 증가시키거나 감소시킬 수 있도록 시스템 파라미터를 적응시킨다. 이와 같은 적응 처리는 시스템마다 다를 수 있고, 일 특정 실시예에서는, 장치 상태에 대해 소정 수 만큼의 폴링을 수행한 결과가 비활동 상태가 되면 그 후, 그 장치들을 "유휴 상태"라고 선언하여 시스템을 전력 저감에 적합한 상태로 만들기로 정할 수 있다. 또한, 유휴 임계치, 즉 시스템이 "유휴 상태"로 간주되기 전에 연속하는 비활성 폴링의 수를 조정하기로 정할 수도 있다.
(전체 타이머 퀀타 동안 아무런 장치 활동도 검출되지 않는) 지속적(extended) 유휴 기간동안, 적응 알고리즘(106)은 장치가 유휴 상태인지를 판정하기 위하여 장치 상태를 한 번만 폴링하면되는 방식으로 임계치를 줄임으로써 폴링을 디스에이블하고 장치 인터럽트를 다시 인에이블링하도록 선택할 수 있다. 이 방법은 시스템을 가능한한 슬리프 상태에 있도록 하고, 장치 활동 또는 타이머 인터럽트에 의해서만 인터럽트되도록 하는데 적합하다. 그와 같이 또 어떠한 장치 활동은 장치 인터럽트를 디스에이블하고 비활동 임계치를 증가시키도록 적응 루틴(106)을 트리링할 것이다.
또 다른 실시예에서는 타이머 인터럽트가 덜 빈번하게 발생하도록 타이머 인터럽트 주기(퀀타)를 조절하도록 정할 수 있다. 시스템 스케쥴링 정책 및 주기적 태스크를 고려하여 이와 같은 조정에 상한을 제공할 수 있다.
서비스 요구의 일괄 처리(batch)를 제공하기 위하여, 타이머 퀀타의 종료까지의 시간이 서비스 요구를 위한 최소 대기 시간 임계치보다 작으면, 적응 루틴(106)은 비활동 임계치에 도달하기 이전에 시스템 유휴를 선언하는 것으로 정할 수도 있다. 간단한 예로서, 웹 서버 블레이드(blade)를 위한 타이머 퀀타가 10밀리초로 설정될 수 있다. 마지막 클록의 틱(tick) 이후 폴링과 활동으로 8밀리초가 경과하였다. 최소 대기 시간 제약 조건이 3밀리초로 설정되어 있다면, CPU는 다음 타이머 틱까지 남아있는 2밀리초 동안 슬리핑될 것이다.
적응 루틴(106)을 실행한 후, 시스템은, 시스템 태스크나 애플리케이션 태스크가 실행될 준비가 되었는지를 검사한다. 준비된 경우, 제어는 실행(101) 상태로 진행하여 그 태스크(들)을 실행한다. 태스크가 실행될 준비가 되어 있지 않으면, 시스템은 그 시스템이 "유휴 상태"로 간주되는지를 알아보기 위하여 적응 파라미터를 검사한다. 시스템이 유휴 상태로 간주되지 않으면, 장치 상태를 조사하기 위하여 다시 폴링 상태(105)로 들어간다. 시스템이 유휴 상태인 것으로 판정되고, 전력 저감이 응답성을 저하시키지 않을 것이라면, 시스템은 슬리프(104) 상태로 들어간다. 인터럽트(장치 인터럽트 또는 타이머 인터럽트)는 시스템을 전력 저감 슬리프(104) 상태로부터 빠져나오게 하여 폴링 상태(105)로 진입하도록 할 것이다.
최소 대기 시간 제약 조건은 시스템 설계자에 의해 하드 코딩(hard-coded)될 수도 있고, 시스템의 엔드-투-엔드(end-to-end) 응답 시간 제약 조건을 충족시킬 수 있는 피드백에 기초한 시간을 넘도록 적응될 수 있다. 이 엔드-투-엔드 응답 시간은 응용 명세로부터 유래하는 것이며 사용자의 필요에 따라 크게 달라질 수 있다. 예를 들어, 5초 전송 지연을 갖는 장기(long haul) 네트워크 상의 웹 서버는 전력 저감으로 발생하는 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 항에 있어서,
    장치 활동 유무에 응답해서 장치 인터럽트를 인에이블링하고 디스에이블링하는 단계를 더 포함하는 폴링의 주기성을 적응시키는 방법.
  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 KR20040054491A (ko) 2004-06-25
KR100550195B1 true 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210120299A (ko) * 2020-03-26 2021-10-07 성균관대학교산학협력단 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치

Families Citing this family (41)

* 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
KR100661851B1 (ko) * 2004-12-08 2006-12-27 한국전자통신연구원 플랫폼의 소비 전력 관리 방법 및 그 플랫폼
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
US20140189184A1 (en) * 2012-12-28 2014-07-03 Nicholas Adams Creating dynamic fixed functionality for a hardware device system
US9213390B2 (en) * 2012-12-28 2015-12-15 Intel Corporation Periodic activity alignment
WO2014209395A1 (en) * 2013-06-28 2014-12-31 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 郑州云海信息技术有限公司 一种中断和轮询触发方法、系统、设备及计算机存储介质
WO2020008468A1 (en) * 2018-07-02 2020-01-09 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系统和方法
WO2023002547A1 (ja) * 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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210120299A (ko) * 2020-03-26 2021-10-07 성균관대학교산학협력단 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치
KR102369354B1 (ko) * 2020-03-26 2022-03-02 성균관대학교산학협력단 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치
US11474588B2 (en) 2020-03-26 2022-10-18 Research & Business Foundation Sungkyunkwan University Method and apparatus for controlling power efficiency of processor based on polling I/O

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100550195B1 (ko) 전력을 고려한 적응형 폴링
US7058824B2 (en) Method and system for using idle threads to adaptively throttle a computer
US8566628B2 (en) North-bridge to south-bridge protocol for placing processor in low power state
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
US8775838B2 (en) Limiting the number of unexpected wakeups in a computer system implementing a power-saving preemptive wakeup method from historical data
US9021209B2 (en) Cache flush based on idle prediction and probe activity level
KR0177536B1 (ko) 정보 처리 장치, 그 처리 방법 및 전원 제어 방법
US8171321B2 (en) Method and apparatus for cost and power efficient, scalable operating system independent services
JP5763168B2 (ja) プロセッサパフォーマンスマネジメントシステムからの処理のマスキングによる電源消費の低減
US20020007387A1 (en) Dynamically variable idle time thread scheduling
US20100162014A1 (en) Low power polling techniques
US20100131781A1 (en) Reducing network latency during low power operation
US11005970B2 (en) Data storage system with processor scheduling using distributed peek-poller threads
JP2009009577A (ja) 分散システムにおける動的な電力管理を実現するためのコア動作検出のための方法、システム及び装置
US7334138B2 (en) Windows-driven power management for peripheral devices in a computer system
EP3717987B1 (en) Dynamic interrupt rate control in computing systems
EP2430541A1 (en) Power management in a multi-processor computer system
US8103884B2 (en) Managing power consumption of a computer
Kang et al. Nmap: Power management based on network packet processing mode transition for latency-critical workloads
US11256321B2 (en) Network-driven, packet context-aware power management for client-server architecture
US20110225593A1 (en) Interface-based environmentally sustainable computing
KR102613979B1 (ko) 멀티 코어 프로세서 전력 관리 장치 및 방법
KR102549360B1 (ko) 인터럽트 제어 장치 및 방법
WO2023218596A1 (ja) サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム

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