KR20080079276A - 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템 - Google Patents

프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20080079276A
KR20080079276A KR1020087015001A KR20087015001A KR20080079276A KR 20080079276 A KR20080079276 A KR 20080079276A KR 1020087015001 A KR1020087015001 A KR 1020087015001A KR 20087015001 A KR20087015001 A KR 20087015001A KR 20080079276 A KR20080079276 A KR 20080079276A
Authority
KR
South Korea
Prior art keywords
priority thread
shared memory
state
time
power
Prior art date
Application number
KR1020087015001A
Other languages
English (en)
Other versions
KR101029414B1 (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 KR20080079276A publication Critical patent/KR20080079276A/ko
Application granted granted Critical
Publication of KR101029414B1 publication Critical patent/KR101029414B1/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
    • 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
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/22Microcontrol or microprogram arrangements
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Abstract

소정 실시예에 있어서, 프로세서 천이 상태를 검출하기 위해 제공되는 장치 및 방법을 설명한다. 소정 실시예는, 운영 시스템에 의해 전원 상태 천이를 위해 제공되는, 상위 우선권 상태와 하위 우선권 상태에 대한 검출을 제공하는 적어도 2개의 쓰레드를 포함하며, 하위 우선권 쓰레드는 유휴 상태 또는 저출력 상태로 진입하기 전에만 실행되고, 상위 우선권 쓰레드는 유휴 상태가 종료되거나 최고 출력 상태에 도달할 때 실행된다. 일 실시예에서, 이들 쓰레드는 운영 시스템과는 독립적으로 프로세서 상태 천이 및 유휴 시간을 검출하기 위해 이용된다.

Description

프로세서 상태 천이를 검출하기 위해 제공되는 장치 및 방법과 머신 액세스 가능 매체와 컴퓨팅 시스템{METHOD AND APPARATUS FOR PROVIDING FOR DETECTING PROCESSOR STATE TRANSITIONS}
본 발명의 일 실시예는 일반적으로 컴퓨팅 시스템에서의 프로세서 상태 천이에 관한 것이다.
컴퓨팅 시스템의 전력 소비는 많은 사용자들에게 점점 민감한 문제가 되고 있다. 대부분의 경우, 사용자들은 보다 낮은 에너지 비용을 원한다. 또한, 사용자들은 소음과 발열의 생성이 적은 컴퓨팅 시스템을 선호하지만, 일반적으로 컴퓨팅 시스템에 의한 전력 소비량과 컴퓨팅 시스템에 의해 생성되는 소음 및 발열의 양 사이에는 정비례 관계가 있다. 또한, 랩탑 컴퓨터, 휴대 전화(셀룰러 폰), PDA(personal digital assistants) 등과 같이 배터리를 전원으로 이용하는 컴퓨팅 시스템과 관련하여, 전력 소비를 줄이면, 컴퓨팅 시스템의 배터리 수명을 증가시키는(즉, 배터리가 충전이나 교환되기 전에 컴퓨팅 시스템이 사용될 수 있는 시간의 양이 증가하는) 유용한 효과를 얻을 수 있다.
종래의 컴퓨팅 시스템은 프로세서 또는 마이크로프로세서, 데이터 저장 매체 및 여러 입출력(I/O) 장치 등의 많은 상이한 요소를 포함한다. 컴퓨팅 시스템이 꺼지지 않은 경우, 컴퓨팅 시스템의 각 요소는 약간의 전원을 소모할 수 있다. 또한, 컴퓨팅 시스템의 마이크로프로세서 구조가 더욱 복잡해지면, 레버리지 전원 관리 문제도 발생된다. 소프트웨어 애플리케이션과 같이 컴퓨팅 시스템 상에서 실행되는 로직은, 컴퓨팅 시스템이나 그 구성요소의 전원 상태를 알 수 없을 것이다. 이것은 소프트웨어 애플리케이션의 활동이 사용자에게 쉽게 명확해지지 않을 때 문제가 될 수 있다. 또한, 상이한 운영 시스템 또는 상이한 버전의 운영 시스템에서 로직이 작동할 수 있어, 운영 시스템으로부터 전원 상태 정보를 얻지 못할 수 있다.
따라서, 로직이 컴퓨팅 시스템의 전원 관리 상태를 알 수 있게 할 방법을 제공할 필요가 있다. 특히, OS가 컴퓨팅 시스템의 전원 상태를 변경하려고 할 때, 로직이 OS 독립 방식으로 검출할 필요가 있다.
본당업자라면 이하의 도면을 참조하여 이하의 상세한 설명과 첨부된 청구의 범위를 읽어보면 본 발명의 실시예의 여러 효과를 알 수 있을 것이다.
도 1은 본 발명의 소정 실시예에 따른 컴퓨팅 시스템의 예를 나타내는 블록도이다.
도 2는 본 발명의 소정 실시예에 따른 컴퓨팅 시스템의 예를 나타내는 블록 도이다.
도 3은 본 발명의 소정 실시예에 따른 예시적인 전원 상태 진입/이탈 검출 쓰레드를 구비하는 모범적인 운영 시스템에서의 예시적인 프로세스와 쓰레드 우선권의 블록도이다.
도 4는 본 발명의 소정 실시예에 따른 전원 상태 검출의 개시에 대한 처리의 예를 나타내는 흐름도이다.
도 5는 본 발명의 소정 실시예에 따른 최우선 검출 쓰레드에 대한 프로세스의 예를 나타내는 흐름도이다.
도 6은 본 발명의 소정 실시예에 따른 최하위 우선권 검출 쓰레드에 대한 프로세스의 예를 나타내는 흐름도이다.
첨부된 도면에 도시된 예인 본 발명의 일 실시예를 참조한다. 실시예와 관련하여 본 발명을 설명하겠지만, 이들 실시예에 의해 본 발명을 제한하기 위한 것은 아님을 알 수 있을 것이다. 반대로, 본 발명은 대체물, 변경물, 등가물을 포괄하는 것으로, 그 대체물, 변경물 및 등가물은 첨부된 청구의 범위에 의해 규정되는 본 발명의 사상 및 범주 내에 포함될 수 있다. 또한, 본 발명의 후술하는 설명에서, 다수의 특정한 세부 사항은 본 발명의 완전한 이해를 위해서 언급한 것이다. 그러나, 본 발명은 이들 특정한 세부 사항 없이 실시될 수 있다. 다른 예에서, 본 발명이 불필요하게 애매한 형태가 되지 않도록 주지된 방법, 절차, 요소 및 회로는 상세하게 설명하지 않았다.
본 발명의 소정 실시예는, 제한되는 것은 아니지만, 단일 또는 멀티 코어 프로세서를 이용하는 컴퓨팅 시스템 등의 프로세서 상태 천이를 검출하기 위한 시스템 및 방법에 관한 것이다. 본 시스템의 소정 실시예는, 제한되지는 않지만, 다양한 프로세서 전원 관리 상태, 즉, 2004년 9월 2일자로 발표된 ACPI(Advanced Configuration and Power Interface) 규격, ACPI Ver. 3.0을 이용하는 컴퓨팅 시스템에 의해 지원될 수 있는 "C 상태"와 같이, 컴퓨팅 시스템 또는 하나 이상의 단일 또는 멀티 코어 프로세서의 유휴 시간을 효과적으로 검출하는 데 이용될 수 있는 다양한 전원 관리 상태를 검출할 수 있다.
본 명세서에서, 본 발명의 "일 실시예" 또는 "소정 실시예"를 언급하는 것은, 본 실시예와 관련해서 설명되는 특정한 형상, 기능, 구조, 또는 특성이, 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미한다. 따라서, 본 명세서의 전반에 걸쳐 여러 곳에서 보이는 "일 실시예에 있어서", "실시예에 따른"이라는 문구가 소정 실시예 모두를 말하는 것은 아니다.
본 발명의 실시예는 매우 복잡한 단일, 듀얼 및 기타 멀티 코어 마이크로프로세서를 구비하는 컴퓨팅 시스템에서 구현될 수 있다. 종종, 이들 멀티 코어 프로세서는, 공통 레벨 2(L2) 캐시 및 공통 패키지와 기타 특징을 공유하는 단일 컴퓨팅 자원을 포함한다. 이것은, 하기와 같은 점으로 제한되는 것은 아니지만, 그와 같은 전원 관리 문제에 이를 수 있다.
a. 운영 시스템이 단일 패키지가 멀티 프로세서에 의해 공유되는 것을 파악하지 못할 수 있기 때문에, 프로세서 스케쥴링이 보다 복잡해 질 수 있다. 이에 따라 이용 가능한 프로세싱 코어 상에서 프로세스가 비능률적으로 스케쥴링되어 보다 많은 전력을 소비하게 된다.
b. 컴퓨팅 시스템 상에서 실행되는 애플리케이션은 상호 작용되는 애플리케이션(이것으로 제한되지는 않지만, 마이크로소프트사의 엑셀(상표) 또는 워드(상표) 등) 대 배경 애플리케이션(이것으로 제한되지는 않지만, 시만텍사의 안티바이러스(상표) 또는 퍼스널 파이어월(상표) 등)과 같이 분리되지 않을 수 있다. 이들 애플리케이션은 동일한 실행 기회를 갖지 못할 수 있고, 그들의 실행이 필수적인 것은 아닐 수 있으며, 그 결과 보다 많은 전원 낭비를 야기할 수 있다. 전원 낭비는 배터리를 이용하여 작동하는 이동 컴퓨팅 시스템에 대해 문제가 될 수 있다.
인텔 코퍼레이션은, 넓은 범위의 서비스에 대해 낮은 전력 소모 및 고성능 처리를 지원하는 기술을 통합한 프로세서를 제조한다. 몇몇의 경우, 낮은 전력 소모 및 고성능 처리를 지원하는 이들 프로세서에서의 기술이, ACPI 규격 등의 전원 관리 시스템에 준거한 것일 수 있다. 인텔 코퍼레이션은, 다양한 제품명 또는 모델 번호 하에서, 이들 또는 유사한 기술을 특징으로 부여하는 하나 이상의 프로세서 패밀리를 분류할 수 있다.
또한, 본 명세서에서 설명되는 본 발명의 실시예는, 시스템의 OS에 의해 지원되지 않는 모드 조차도, 시스템의 하드웨어에 의해 지원될 수 있는 다양한 저 전력 모드의 효과를 얻는 데 이용될 수 있다. 예를 들어, 인텔사의 PXA26x 및 인텔사의 PXA27x계의 프로세서는 성능 스위칭에 관한 기술을 포함한다. 모바일 인텔 펜티엄Ⅲ 프로세서-M으로 불리는 유형의 프로세서와 같이, 인텔 코퍼레이션에 의해 배포된 다양한 모바일 프로세서에 유사한 기술이 포함된다. 이들 프로세서에 포함되는 성능 스위칭에 관한 기술을 일반적으로 인텔 스피드스텝 기술이라 부를 수 있다. 본 발명의 실시예는 그러한 기술이 지원하는 전력 절약 가능성을 보다 효율적으로 개발하는 데 이용될 수 있다. 본 발명의 다른 실시예는, 다른 종류의 성능이나 전원 관리 기술을 이용하는 프로세서를 포함하는, 다른 종류의 프로세서를 이용하는 처리 시스템의 효율성을 개선하는 데 이용될 수 있다.
본 명세서에서 설명되는 본 발명의 실시예는 ACPI 규격 또는 유사한 시스템을 지원하는 프로세서를 구비하는 컴퓨팅 시스템을 포함할 수 있다. 본 발명의 다른 실시예는 인텔 코퍼레이션에 의해서 제조되든 또는 다른 제조자에 의해 제조되든 간에, 다른 종류의 프로세서를 구비하는 컴퓨팅 시스템을 포함한다.
도 1 및 도 2는 본 발명의 실시예에 따른 컴퓨팅 시스템의 예를 나타내는 블록도이며, 도 3-6에 도시된 동작에 대한 예를 제공한다. 이하, 본발명의 소정 형태가 구현되는 적절한 환경에 대해 개괄적으로 설명한다. 본 명세서에서 이용되는 바와 같이, "컴퓨팅 시스템"이란 용어는, 단일 머신, 또는 통신에 의해 연결된 머신 또는 함께 작동하는 장치의 시스템을 널리 포함할 예정이다. 예시적인 컴퓨팅 시스템은, 분산형 컴퓨팅 시스템, 슈퍼 컴퓨터, 컴퓨팅 클러스터, 메인프레임 컴퓨터, 미니 컴퓨터, 클라이언트-서버 시스템, 개인형 컴퓨터, 워크스테이션, 서버, 포터블 컴퓨터, 랩탑 컴퓨터, 타블렛 처리 시스템, 전화기, PDA, 핸드헬더 장치, 모바일 핸드셋, 음성 및/또는 영상 장치 등의 오락기, 및 정보를 처리 또는 전달하는 기타 장치를, 제한 없이 포함한다.
예를 들어, 도 1 및 도 2의 시스템은 집적 회로(IC)로서 구현될 수 있다. 본 시스템의 구성 요소는, 당업자가 주지하는 바와 같이, 하나 이상의 휘발성 또는 비휘발성 데이터 저장 장치와 연결될 수 있다. 그와 같이, 도면에는 컴퓨팅 시스템의 모든 가능한 구성 요소가 포함되는 것은 아니다. 그 컴퓨팅 시스템은, 하나 이상의 IDE(integrated drive electronics) 드라이브, SCSI(small computer systems interface) 구동 또는 다른 유형의 하드디스크 드라이브와 같은 대용량 저장 장치와 통신에 의해 연결될 수도 있다. 본 발명에 따르면, 컴퓨팅 시스템에 의해 이용될 수 있는 다른 유형의 대용량 저장 장치 및 저장 매체는, 플로피 디스크, 광학 저장 매체, 테이프, 메모리 스틱, 디지털 비디오 디스크, 생체 저장 매체 등을 포함한다.
더욱이, 컴퓨팅 시스템은 하나 이상의 브리지도 포함한다. 하나 이상의 이들 브리지 및 관련 버스는 도 1에 도시된 프로세서를, 저장 장치, 장치 컨트롤러, 입출력(I/O) 포트, 및 I/O 장치 등의 하나 이상의 부가 구성 요소와 직간접적으로 연결하는 데 이용할 수 있다. 예를 들어, 부가 구성요소는 비디오 컨트롤러, SCSI 컨트롤러, 네트워크 컨트롤러, USB(universal serial bus) 컨트롤러, 키보드 컨트롤러 등을 포함할 수 있다. 본 발명의 소정 실시예에서, 그러한 구성요소는 프로그램 가능 로직 장치 또는 프로그램 불가능 로직 장치 또는 어레이, ASIC(application- specific integrated circuits), 내장 컴퓨터, 스마트 카드 등과 같은 구성요소를 이용하는 내장 장치로서 구현될 수 있다.
도 1은 복수의 코어(112;112a-112b)를 구비하는 프로세서(110)를 나타내며, 여기에서 각 코어(112)는 명령어 인출 유닛, 명령어 디코더, 레벨1(L1) 캐시(114:114a-114b), 실행 유닛 등에 대해 완전히 기능적이다. 도시된 프로세서(110)는 2개의 코어(112)를 갖지만, 본 발명의 실시예는 그것으로 제한되는 것은 아니다. 본 명세서에서 설명된 기술은 전원 소모가 중요한 문제인 소정 멀티 코어 구조에 대해 매우 유용할 수 있다. 따라서, 본 명세서에서 설명된 실시예의 사상 및 범주 내에서 소정 수의 코어가 이용될 수 있다.
각 코어(112)는 코어(112)의 천이를 유휴 상태로 요청하는 명령어를 검출할 수 있다. 그 명령어는 코어(112) 내에서 내부적으로 또는 코어(112)의 외부에서 비롯될 수 있다. 유휴 상태는 ACPI 규격에서 설명된 "C 상태"중 하나와 같은 프로세서 전원 상태일 수 있다. 일반적으로, 보다 깊은 유휴 상태는 보다 낮은 전력 소비와 보다 긴 종료 대기 시간과 연관된다. 그것으로 제한되지는 않지만, 프로세서 주파수, 프로세서 전압 등의 검출 감시 등을 다른 방안으로서 이용할 수도 있다.
프로세서(110)는 코어(112)에 의해서 공유되는 레벨 2(L2) 캐시(120)를 구비할 수 있다. 한편, L1 캐시(114)는 그들의 각 코어(112)에 전용일 수 있다. 하기에 보다 상세히 설명되는 바와 같이, L1 캐시(114)의 고유 특성은 코어별 전원 관리를 위한 가능성을 제공하는 것이다. 코어(112)는 코어당 전원을 절약할 수 있게 하는 전용 클럭 입력(115: 115a-115b)도 갖는다. 하드웨어 조정 로직(116)은 명령어 및 복수의 코어(112) 각각의 유휴 상태인 상태(118:118a-118b)에 근거하여 주어진 코어(112)의 전력 소비를 관리할 수 있다. 복수의 코어(112) 및 복수의 유휴 상태인 상태(118)를 조정함으로써, 도시된 프로세서(110)는 보다 복잡한 구조를 지원할 수 있어, 종래의 소프트웨어 방안보다 빠르게 조건을 변경하도록 응답할 수 있다. 또한, 도시된 프로세서(110)는 실제의 전원 상태 천이에 앞서 조정 로직(116)을 이용하여 전력 절감 특징을 시작할 수 있다. 그 결과, 전력이 크게 절감될 수 있다.
예를 들어, 이용이 부족하면 C4 상태가 제 1 코어(112a)에 적합하다고 결정될 수 있다. C4 상태는 다른 전원 관리 상태와 관련이 깊으며, 일반적으로 패키지 와이드 전압 및/또는 주파수 설정 등과 같은 공유 자원과 관련된다. 한편, 제 2 코어(112b)는 액티브 상태로 있을 수 있다. 그러한 조건 하에서, 조정 로직(116)은 제 1 코어(12a)가 여전히 전원을 유지할 수 있도록 소정의 전용 전원 절약 특징의 개시를 수반하는 임시 상태(tentative state)로 천이할 수 있다. 더욱이, 그 후에 제 2 코어(112b)가 C4 상태로의 천이에 대한 요청을 수신한 경우, 조정 로직(116)은 코어(112)가 C4 상태로 천이되는 동안 전력을 보다 절감하는 공유 전력 절감 특징도 개시할 수 있다. 모든 코어가 동일한 상태로 천이될 때를 검출함으로써, 다른 유휴 상태에 대해 유사한 효과를 달성할 수 있다.
본 발명의 실시예에 따르면, 하나 이상의 운영 시스템(OS)(122)이 프로세서(110) 상에서 실행될 수 있다. 소정 실시예에서, OS(122)는 모두 프로세서(110) 에 접속할 수 있는 메모리(도시 생략함)에 탑재될 수 있다. ACPI 로직(124)은 적어도 상술한 특징을 제공하도록 OS(122) 내에서 예시화될 수 있고, 본 명세서의 다른 곳에서 설명되는 바와 같이, 본 발명의 실시예에 관한 상태 정보를 더 제공할 수 있다. 본 발명의 소정 실시예에서, OS(122) 및 ACPI 로직(124)은, 이것으로 제한되지는 않지만, 하드디스크와 같은 대용량 저장 장치(도시 생략함)에 저장될 수 있다.
도 2는 상술한 바와 같이 복수의 코어(112' 112a'-112b')와 하드웨어 조정 로직(116')을 갖는 프로세서(110')를 구비하는 시스템(222)을 나타낸다. 도시된 시스템(222)도, 칩셋(230)을 경유하여 프로세서(110')와 연결된 하나 이상의 입출력(I/O) 장치(224), 램(226) 및 롬(228)을 포함한다. 램(226) 및 롬(228)은 코어(112')에 의해 하나 이상의 쓰레드 및/또는 프로세스를 실행할 수 있는 명령어(232)를 저장하며, 여기에서 명령어(232)의 실행은 전력 소비를 증가시킬 수 있다. 코어(112)에 의해 칩셋(230) 및/또는 운영 시스템으로부터 유휴 상태 천이 명령어를 수신함에 따라, 하드웨어 조정 로직(116')은 시스템(222)에 대한 전력 소비를 실질적으로 감소시킬 수 있다.
본 발명의 실시예에 따르면, 하나 이상의 OS(122')가 프로세서(110') 상에서 실행될 수 있다. ACPI 로직(124')은 OS(122') 내에서 예시화되어 적어도 상술한 특징을 제공할 수 있고, 또한 본 명세서의 다른 곳에서 설명된 바와 같이, 본 발명의 실시예에 따른 상태 정보를 더 제공할 수 있다. 본 발명의 소정 실시예에 있어서, OS(122') 및 ACPI 로직(124')은, 그것으로 제한되지는 않지만, 하드디스크와 같은 대용량 저장 장치(도시 생략함)에 저장될 수 있다.
본 발명의 실시예는, 그것으로 제한되지는 않지만, OS 유휴를 나타내는 프로세서 전원 상태로 진입(및 이탈)의 검출을 수반한다. 본 발명의 실시예에 따르면, 일단 프로세서 전원 관리 상태 진입/이탈이 검출되면, OS 스케쥴러는, 스케쥴링 및/또는 전원 관리를 관리하는 포어그라운드(foreground) 대 백그라운드 애플리케이션의 지식(knowledge)과 함께, 플랫폼 및/또는 사용자의 특정 선호도를 이용하여 확대될 수 있다.
본 발명의 소정 실시예에 있어서, 본 방법 및 장치는 프로세서 전원 관리 상태로의 진입 및 프로세서 전원 관리 상태로부터의 이탈을, 본 명세에서는 OS 내에서 작동될 수 있는, OS 유휴 핸들러 및/또는 OS 스케쥴러에 의해 검출할 수 있다. 본 발명은, 머신에 의해 액세스되어, 머신 수행 업무, 또는 규정되는 요약 데이터 유형 또는 로우 레벨 하드웨어 문법을 머신에서 수행하도록 할 수 있는, 명령어를 포함하는 관련 데이터, 기능, 절차, 데이터 구조, 애플리케이션 프로그램 등을 참조하거나 또는 관련하여 설명될 수 있다. 일반적으로 데이터는 소프트웨어로 부를 수 있고, 휘발성 및/또는 비휘발성 데이터 저장 매체에 저장될 수 있다.
도 3은 OS에 의해 할당된 프로세스 및 쓰레드 우선권을 나타낸다. 블록도(300)에 의해 도시된 바와 같이, 이해를 돕기 위한 도면 좌측의 수직 배열 상에서 우선권이 분류되어, 각기 하드웨어 우선권(302), 디스패치 우선권(dispatch priority), 소프트웨어 우선권 높음(306), 소프트웨어 우선권 보통(308), 및 소프트웨어 우선권 낮음(310)으로서 기재된다. 도 3의 우측을 따라서, 화살표로 지시 된 바와 같이, 하나 이상의 프로세스와 연관된 쓰레드이다. 소정 실시예에 있어서, 인터럽트 서비스 루틴(Interrupt Service Routines)(312)은 하드웨어 우선권(302)과 관련되고, OS 스케쥴러(314)는 디스패치 우선권(304)과 관련되며, 본 실시예에서 나타내는 바와 같이 블록(306, 308, 310)으로 가리키는 소프트웨어 애플리케이션보다 높은 우선권을 갖는다. 본 발명의 실시예에 따르면, OS 스케쥴러(314)는 다음 번에 쓰레드 및 프로세스가 실행되어야 하는지를 결정할 수도 있다. 또한, 일반적으로 프로세서를 저전력 상태에 둘 경우, OS 유휴 핸들러가 보다 낮은 우선권(블록(306, 308, 310) 중 적어도 하나를 포함함)에 배치되어, 애플리케이션에 노출되지 않을 수 있다.
도 3에 도시된 바와 같이, 실시간 애플리케이션(316)은 소프트웨어 우선권 높음(306)과 관련된다. 실시간 애플리케이션(316)은 사용자에 의해서 직접 액세스될 소프트웨이 애플리케이션을 포함할 수 있고, 컴퓨터 시스템의 처리 자원의 대부분을 요청할 수 있다. 본 발명의 소정 실시예에 따르면, 전원 상태 검출 프로세스 상위 우선권 쓰레드(322)는 실시간 애플리케이션(316)과 함께 예시화될 수 있다.
하나 이상의 포어그라운드 업무(318)는 본 발명의 실시예에 따른, 소프트웨어 우선권 보통(308)과 관련될 수 있다. 또한, 본 발명의 소정 실시예에 있어서, 백그라운드 업무(320)는 소프트웨어 우선권 낮음(310)과 관련될 수 있다. 백그라운드 업무(320)는 사용자에 의해서 직접 액세스되지 않을 소프트웨어 애플리케이션을 포함할 수 있고, 일반적으로 전원 관리의 고려없이 작동된다. 본 발명의 소정 실시예에 따르면, 전원 상태 검출 프로세스 하위 우선권 쓰레드(324)는 백그라운드 업무(320)와 함께 예시화될 수 있고, 소프트웨어 우선권 낮음(310)과 관련될 수 있다.
본 발명의 실시예에 따르면, 메커니즘은, 무위(idleness)로 인하여 OS가 프로세서를 막 저 전력 상태로 둘 때 OS 독립 방식으로 대략 검출하고, 애플리케이션이 실행되도록 프로세서가 저 전력 상태로부터 정규 실행 상태로 깨어났을 때를 검출할 수 있다. 본 발명의 소정 실시예에 있어서, 이것은 하나의 쓰레드는 일반적인 시스템 상의 다른 애플리케이션보다 높은 우선권을 갖고, 다른 쓰레드는 애플리케이션 쓰레드가 가질 수 있는 최소 이용 가능한 우선권을 갖는, 2개의 쓰레드를 갖는 적어도 하나의 프로세스를 생성함으로써 성취될 수 있다. 본 발명의 소정 실시예에서, 도 3에 도시된 바와 같이, 쓰레드(322, 324)는 각기 최상위 및 최하위 쓰레드로서 예시화될 수 있다.
또한, 본 발명은 특정 OS로 제한되지 않지만, 여러 종류의 상이한 OS를 이용하는 컴퓨팅 시스템에 채용될 수 있다.
본 명세서의 다른 곳에서 논의되는 바와 같이, 도 1 및 2와 관련하여 도시 및 설명된 컴퓨팅 시스템의 하나 이상의 모듈에 의해, 도 4-6의 방법이 수행될 수 있다. 특히, 본 발명의 실시예에 따르면, OS(122, 122') 및 ACPI(124, 124')는 본 발명을 위한 일부 또는 전체 로직을 제공할 수 있다. 도 4-6은 예를 들어 설명될 컴퓨팅 시스템의 논리적 모듈 및 물리적 모듈과 관계없이, 본 발명의 실시예를 나타낸다.
도 4는 본 발명의 소정 실시예에 따른, OS 유휴 핸들러에 의한 전원 상태 진 입/이탈이 어떻게 검출될 수 있는지의 플로우차트를 도시한다. 알 수 있는 바와 같이, 검출 처리는 검출 애플리케이션에 의해 생성된 2개의 쓰레드에 의해 이루어질 수 있다. 개시(402)에서 프로세스(400)를 시작하고, 곧 이어 404에서 상위 우선권 쓰레드와 하위 우선권 쓰레드를 생성한다. 그 다음 2개의 쓰레드 사이의 공유 메모리를 생성하여 전원 상태 진입/이탈 정보를 저장하는 406으로 처리가 진행된다. 본 발명의 소정 실시예에 있어서, 시스템이 정지될 때까지 2개의 쓰레드를 실행하는 처리가 이루어진다(408). 본 발명의 실시예에 따르면, 전자 장치의 상태에 대하여 갱신된 정보를 수신하는 처리가 이루어질 수 있다(410). 전자 장치는 컴퓨터 시스템, 또는 도 1의 멀티 코어 프로세서와 같은, 하나 이상의 컴퓨터 시스템의 모듈을 포함할 수 있다. 그 다음, 도 4에 도시된 바와 같이, 410에서 처리가 반복될 수 있다.
도 5는 본 발명의 일 실시예에 따른, 상위 우선권 쓰레드의 플로우차트를 도시한다. 쓰레드에 관한 프로세스(500)는 502에서 개시하여 곧바로 504로 진행한다. 504에서, 공유 메모리에 전원 상태 이탈 타임 스탬프를 저장한다. 이 타임 스탬프는 이탈 시각(Exit Time)이라고 칭해질 수 있다. 그 다음 처리는 506으로 진행된다. 506에서, 이탈 시각으로부터 진입 시각을 차감함으로써 유휴 시간이 산출된다. 본 발명의 소정 실시예에 있어서, 유휴 시간은 하위 우선권 쓰레드에 의해 저장된다. 그 다음, 508로 처리가 진행되고, 본 발명의 소정 실시예에 있어서, 여기에서 사용자 입력 및/또는 백그라운드 대 포어그라운드 프로세스의 지식에 근거하여 소정의 다른 전원 관리 또는 스케쥴링 변경이 이루어질 필요가 있는지 결정 된다. 그 다음, 510에서 다른 쓰레드로 프로세서를 양보하고 512로 진행한다. 512에서, 하위 우선권 쓰레드를 나타내는 신호를 인가하여 실행 대기 상태에 들어간다. 본 발명의 실시예에 있어서, 후술하는 612에서 하위 우선권 쓰레드(600)와 통신한다. 그 다음, 다음 514에서 OS 타이머 틱에 대한 이벤트 대기를 스케쥴링하고 나서, 516에서 종료되며, 여기에서 본 발명의 소정 실시예에 있어서 프로세스(500)가 필요에 따라 반복될 수 있다.
도 6은 본 발명의 실시예에 따른 하위 우선권 쓰레드의 플로우차트를 나타낸다. 쓰레드에 대한 프로세스(600)가 602에서 개시되고 곧바로 604로 진행한다. 604에서, 공유 메모리에 전원 상태 진입 타임 스탬프를 저장한다. 이 타임 스탬프는 진입 시각(Entry Time)이라고 칭해질 수 있다. 그 다음 606으로 진행한다. 606에서, 진입 시각으로부터 이탈 시각을 감산하여 작업 시간(busy time)을 산출한다. 본 발명의 소정 실시예에 있어서, 작업 시간은 상위 우선권 쓰레드에 의해 저장된다. 그 다음 608로 진행되고, 여기에서, 본 발명에 있어서, 사용자 입력 및/또는 백그라운드 대 포어그라운드 프로세스의 지식에 근거하여, 소정의 다른 전원 관리 또는, 스케쥴링 변경이 이루어질 필요가 있는지 판정된다. 그 다음 610에서 다른 쓰레드로 프로세서를 양보하고 612로 진행한다. 612에서, 본 발명의 소정 실시예에 따르면, 상위 우선권 쓰레드로부터의 신호 대기를 스케쥴링하며, 여기에서, 512에서, 프로세스(600)는 상위 우선권 쓰레드(500)와 통신할 수 있다. 그 다음 프로세스(600)는 614로 진행하여, 여기에서 종료되고, 필요에 따라 반복될 수 있다.
본 발명의 실시예에 따르면, 하위 우선권 쓰레드는, 예를 들어, OS 스케쥴러가 우선권을 근거로 한 스케쥴 순서를 결정할 때와, 수면, 휴식, 또는 유사한 하위 레벨의 동작과 관련된 전원 상태로 진입하기 직전에 끝으로 하위 우선권 쓰레드가 올 때에, 실행 기회를 얻을 수 있다. 따라서, 이것은 다음 번이 OS 유휴 핸들러에 의해 이용되고, 그 결과 전원 상태로 진입하게 하는 매우 좋은 지표일 수 있다. 마찬가지로, 본 발명에 따른, 상위 우선권 쓰레드(500)가 소프트웨어 애플리케이션 쓰레드 전체 중에서 가장 높은 우선권으로 실행될 수 있기 때문에, 일반적으로 제 1 기회를 부여하여 모든 하드웨어 인터럽트가 제공된 후에 실행될 수 있을 것이다. 본 발명에 따르면, 이 프로세스의 결과, OS가 전원 상태를 이탈할 때와 사용자 모드 실행이 시작될 때의 지표를 나타낼 수 있다.
한편, 소정 실시예에 있어서, 하위 우선권 쓰레드는 유휴 또는 저 전력 상태로 진입하기 직전에 실행될 수 있고, 상위 우선권 쓰레드는 유휴 상태가 종료되거나 최고 전력 상태에 도달했을 때 실행될 수 있다. 본 발명의 소정 실시예에 있어서, 쓰레드 중 하나 또는 둘 다 그들의 업무를 완료하자마자 다른 쓰레드로 양보될 수 있다. 이것을 이루는 한가지 방법은 운영 시스템에 의해서 허용되는 최소 시간동안 이들 쓰레드를 수면 상태로 되게 하는 것이다. 다음 타이머 인터럽트때 까지 이들 쓰레드를 수면 상태로 유지하고, OS 유휴 핸들러를 포함하는 기타 쓰레드에게 기회를 부여하여 실행할 수 있다.
본 발명의 소정 실시예에 있어서, 사용자 모드 실행 및 전원 상태 천이의 지시 또는 기타 상호 작용은, 다양한 애플리케이션 실행 모델을 결정하고 최적화하는 데 매우 유용할 수 있다. 예를 들어, 본 발명의 소정 실시예에 있어서, 스케쥴러 도우미 관리 애플리케이션은, 하나 이상 존재할 경우, 언제 어떤 프로세서/코어 상에서, OS 스케쥴러가 일반적으로 알려지지 않은 특정 애플리케이션에 대하여 부가 지식에 의해, 특정 프로세스를 실행할지를 결정할 수 있다. 예를 들어, 본 발명의 실시예에 있어서, 애플리케이션 관리 제어 장치(console)는 이러한 정보를 이용하여, 공유 프로세서 형상(topology)에서 하나의 프로세서가 동작할 때, 적정 기회를 노려 백그라운드 쓰레드를 실행할 수도 있다. 예를 들어, 이러한 유형의 지능형 디스패치는 병렬로 프로세스를 처리함으로써 패키지 전원 상태 기회를 최대화한다. 이러한 유형의 기술은 공유 전압 레일 실행을 갖는 프로세서에서 특히 유용할 것이다.
본 명세서에서 설명되는 본 발명은, 시스템 상에서 실행되는 각 프로세스에 대하여 부가되는 특정 지식을 가지고, 이들 애플리케이션의 스케쥴링을 변경하는, 관리 애플리케이션으로 구현되어, 다른 것들 보다, 성능, 사용자 경험, 전력 소비 등을 효과적으로 개선할 수 있다.
일반적으로, 프로세서가 유휴 일 때와 그것이 애플리케이션 코드를 실행할 때 사용되어야 할 때에 대한 결정은 OS에 의해서 결정된다. 그러나, 본 발명의 실시예에 따르면, 본 방법 및 장치는 OS의 외부에서 소프트웨어가 효과적으로 CPU 유휴 시간을 검출할 수 있도록 할 수 있다. 이 기술은 그러한 해법이 상업적인 운영 시스템에 더하여 부가될 수 있게 할 수 있다.
본 발명의 실시예는 충분히 상세하게 설명되어 당업자가, 본 명세서의 관련 된 부분에 설명되어 있는 컴퓨팅 시스템 또는 유사한 장치를 포함하는, 본 발명을 용이하게 실시할 수 있을 것이다. 다른 실시예가 이용될 수 있고, 본 발명의 범주 내에서 구조적, 논리적 및 지능적인 변경도 이루어질 수 있다.
본 이론 및 본 명세서에서 설명하고 예증한, 원리 및 예시된 실시예에 비추어, 예증된 실시예는 그러한 원리 내에서 배치 및 상세가 변경될 수 있다는 점을 알 수 있을 것이다. 예를 들면, 휴대 전화, PDA, 랩탑 컴퓨터, 타블릿 컴퓨터, 또는 기타 휴대형 처리 시스템 등의 배터리 전원 장치에 관하여, 하나 이상의 예시된 실시예가 설명되었지만, 데스크탑 컴퓨터, 서버 등의 여러 다른 유형의 시스템에서도 효과적으로 이용될 수도 있다. 따라서, 본 발명의 몇몇 실시 또는 실시예에 관한 주요한 효과 중 하나는 소프트웨어 애플리케이션이 프로세서 전원 상태 변경을 알게 함으로써 배터리 수명을 연장시킬 수 있다는 점이지만, 다른 실시 또는 실시예에서는 다른 효과가 더 중요할 수 있다. 예를 들어, 소정 실시 또는 실시예에서는 소음 및 발열의 감소가 주요 효과일 수 있고, 다른 실시 또는 실시예에서는 에너지 비용의 감소가 주요 효과 일 수 있다.
본 발명의 다른 실시예는 본 발명의 작동을 수행하기 위한 명령어를 부호화하는 머신 액세스 가능 매체를 포함할 수도 있다. 또한, 그러한 실시예는 프로그램 제품으로서 적용될 수도 있다. 그러한 머신 액세스 가능 매체는, 안테나, 유선, 광 섬유, 마이크로파, 무선파, 및 기타 전자기적 또는 광학적 캐리어 등의 통신 매체뿐만 아니라, 플로피 디스크, 하드 디스크, 시디롬, 롬 및 램 등의 저장 매체를, 제한 없이 포함할 수 있다. 따라서, 명령어 및 기타 데이터는 패킷, 직렬 데이터, 병렬 데이터, 전파 신호 등의 형태로 전송 환경이나 네트워크를 거쳐 전달될 수 있고, 분산 환경에서 이용되어, 단일 또는 멀티프로세서 장치에 의한 액세스에 관해 국부적으로 및/또는 원격적으로 저장될 수 있다.
본 명세서에서 묘사된 하드웨어 및 소프트웨어 구성요소는, 실질적으로 다른 것들과 독립적으로 각기 설계, 구성, 또는 갱신될 수 있도록 적절히 내장되는, 기능적인 요소를 나타낸다는 점도 알 수 있을 것이다. 다른 실시예에 있어서, 구성 요소의 대부분이 본 명세서에서 설명 및 예시된 기능성을 제공하는, 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 결합으로서 구현된다.
또한, 비록 상이할지라도, 본 발명의 다양한 실시예는 서로 배타적일 필요는 없다는 점을 알 수 있을 것이다. 예를 들어, 소정 실시에에서 설명된 특정한 형상, 구조 또는 특성은 다른 실시예 내에 포함될 수도 있다. 당업자라면 본 발명의 실시예의 기술이 다양한 형태로 구현될 수 있다는 점을 앞서의 설명으로부터 알 수 있다. 따라서, 본 발명의 실시예는 특정한 예와 관련하여 설명하였지만, 도면, 명세서, 및 후술하는 청구의 범위의 연구에 대한 당업자에게 다른 변형이 명확해질 것이기 때문에, 본 발명의 실시예의 진짜 범주는 그것으로 제한되어서는 안된다.

Claims (20)

  1. 다른 쓰레드 중에서 실질적으로 가장 높은 우선권으로 프로세서에 의해 실행될 상위 우선권 쓰레드(high priority thread)를 생성하는 단계와,
    다른 쓰레드 중에서 실질적으로 가장 낮은 우선권으로 프로세서에 의해 실행될 하위 우선권 쓰레드(low priority thread)를 생성하는 단계와,
    상기 상위 우선권 쓰레드와 상기 하위 우선권 쓰레드에 의해 액세스 가능한 공유 메모리를 생성하는 단계
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    전원 관리 상태 진입(entry) 정보를 상기 공유 메모리에 저장하는 단계와,
    전원 관리 상태 이탈(exit) 정보를 상기 공유 메모리에 저장하는 단계
    를 더 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 공유 메모리의 상기 전원 관리 상태 진입 정보 및/또는 상기 전원 관리 상태 이탈 정보를 갱신하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 상위 우선권 쓰레드는,
    전원 상태 이탈 시각을 상기 공유 메모리에 저장하는 단계와,
    상기 전원 상태 이탈 시각으로부터 전원 상태 진입 시각을 감산하여 유휴 시간(idle time)을 산출하는 단계와,
    상기 하위 우선권 쓰레드에 신호를 인가하여 기동 준비(ready-to-run) 상태로 진입하는 단계와,
    타이머 이벤트 대기(wait-on-timer event)를 스케쥴링하는 단계
    를 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 하위 우선권 쓰레드는,
    전원 상태 진입 시각을 상기 공유 메모리에 저장하는 단계와,
    상기 전원 상태 진입 시각으로부터 전원 상태 이탈 시각을 감산하여 작업 시간(busy-time)을 산출하는 단계
    상기 상위 우선권 쓰레드로부터 신호 대기(wait-on-signal) 상태를 스케쥴링하는 단계
    를 포함하는 방법.
  6. 관련 명령어를 구비하는 머신 액세스 가능 매체로서,
    상기 명령어는 액세스시 머신으로 하여금,
    다른 쓰레드 중에서 실질적으로 가장 높은 우선권으로 프로세서에 의해 실행될 상위 우선권 쓰레드를 생성하는 단계와,
    다른 쓰레드 중에서 실질적으로 가장 낮은 우선권으로 프로세서에 의해 실행될 하위 우선권 쓰레드를 생성하는 단계와,
    상기 상위 우선권 쓰레드와 상기 하위 우선권 쓰레드에 의해 액세스 가능한 공유 메모리를 생성하는 단계
    를 수행하도록 하는 머신 액세스 가능 매체.
  7. 제 6 항에 있어서,
    액세스시 상기 머신으로 하여금,
    전원 관리 상태 진입 정보를 상기 공유 메모리에 저장하는 단계와,
    전원 관리 상태 이탈 정보를 상기 공유 메모리에 저장하는 단계
    를 수행하게 하는 관련 명령어를 더 구비하는 머신 액세스 가능 매체.
  8. 제 7 항에 있어서,
    액세스시 상기 머신으로 하여금,
    상기 공유 메모리의 상기 전원 관리 상태 진입 정보 및/또는 상기 전원 관리 상태 이탈 정보를 갱신하는 단계를
    수행하도록 하는 관련 명령어를 더 구비하는 머신 액세스 가능 매체.
  9. 제 6 항에 있어서,
    상기 상위 우선권 쓰레드는,
    전원 상태 이탈 시각을 상기 공유 메모리에 저장하는 단계와,
    상기 전원 상태 이탈 시각으로부터 전원 상태 진입 시각을 감산하여 유휴 시간을 산출하는 단계와,
    상기 하위 우선권 쓰레드에 신호를 인가하여 기동 준비 상태로 진입하는 단계와,
    타이머 이벤트 대기를 스케쥴링하는 단계
    를 포함하는 머신 액세스 가능 매체.
  10. 제 6 항에 있어서,
    상기 하위 우선권 쓰레드는,
    전원 상태 진입 시각을 상기 공유 메모리에 저장하는 단계와,
    상기 전원 상태 진입 시각으로부터 전원 상태 이탈 시각을 감산하여 작업 시간을 산출하는 단계와,
    상기 상위 우선권 쓰레드로부터 신호 대기 상태를 스케쥴링하는 단계
    를 포함하는 머신 액세스 가능 매체.
  11. 머신 액세스 가능 매체와 상기 머신 액세스 가능 매체 내에 인코딩된 명령어를 포함하는 장치에 있어서,
    상기 명령어는 컴퓨팅 시스템에서 실행될 때 상기 컴퓨팅 시스템으로 하여금,
    다른 쓰레드 중에서 실질적으로 가장 높은 우선권으로 프로세서에 의해 실행될 상위 우선권 쓰레드를 생성하는 단계와,
    다른 쓰레드 중에서 실질적으로 가장 낮은 우선권으로 프로세서에 의해 실행될 하위 우선권 쓰레드를 생성하는 단계와,
    상기 상위 우선권 쓰레드와 상기 하위 우선권 쓰레드에 의해 액세스 가능한 공유 메모리를 생성하는 단계
    를 포함하는 동작을 수행하게 하는 장치.
  12. 제 11 항에 있어서,
    상기 명령어는,
    전원 관리 상태 진입 정보를 상기 공유 메모리에 저장하는 단계와,
    전원 관리 상태 이탈 정보를 상기 공유 메모리에 저장하는 단계
    를 수행하는 동작을 더 포함하는 장치.
  13. 제 12 항에 있어서,
    상기 명령어는,
    상기 공유 메모리의 상기 전원 관리 상태 진입 정보 및/또는 상기 전원 관리 상태 이탈 정보를 갱신하는 단계를 수행하는 동작을 더 포함하는 장치.
  14. 제 11 항에 있어서,
    상기 상위 우선권 쓰레드는,
    전원 상태 이탈 시각을 상기 공유 메모리에 저장하는 단계와,
    상기 전원 상태 이탈 시각으로부터 전원 상태 진입 시각을 감산하여 유휴 시간을 산출하는 단계
    상기 하위 우선권 쓰레드에 신호를 인가하여 기동 준비 상태로 진입하는 단계
    타이머 이벤트 대기를 스케쥴링하는 단계
    를 포함하는 장치.
  15. 제 11 항에 있어서,
    상기 하위 우선권 쓰레드는,
    전원 상태 진입 시각을 상기 공유 메모리에 저장하는 단계와,
    상기 전원 상태 진입 시각으로부터 전원 상태 이탈 시각을 감산하여 작업 시간을 산출하는 단계
    상기 상위 우선권 쓰레드로부터 신호 대기 상태를 스케쥴링하는 단계
    를 포함하는 장치.
  16. 머신 액세스 가능 매체와, 상기 머신 액세스 가능 매체에 응답하는 프로세서와, 상기 머신 액세스 가능 매체 내에 인코딩된 명령어를 포함하는 컴퓨팅 시스템에 있어서,
    상기 명령어는, 상기 프로세서에 의해 실행될 때,
    다른 쓰레드 중에서 실질적으로 가장 높은 우선권으로 프로세서에 의해 실행될 상위 우선권 쓰레드를 생성하는 단계와,
    다른 쓰레드 중에서 실질적으로 가장 낮은 우선권으로 프로세서에 의해 실행될 하위 우선권 쓰레드를 생성하는 단계와,
    상기 상위 우선권 쓰레드와 상기 하위 우선권 쓰레드에 의해 액세스 가능한 공유 메모리를 생성하는 단계
    를 포함하는 동작을 수행하는 컴퓨팅 시스템.
  17. 제 16 항에 있어서,
    상기 명령어는,
    전원 관리 상태 진입 정보를 상기 공유 메모리에 저장하는 단계와,
    전원 관리 상태 이탈 정보를 상기 공유 메모리에 저장하는 단계
    를 더 포함하는 동작을 수행하는 컴퓨팅 시스템.
  18. 제 17 항에 있어서,
    상기 명령어는,
    상기 공유 메모리의 상기 전원 관리 상태 진입 정보 및/또는 상기 전원 관리 상태 이탈 정보를 갱신하는 단계를 더 포함하는 동작을 수행하는 컴퓨팅 시스템.
  19. 제 16 항에 있어서,
    상기 상위 우선권 쓰레드는,
    전원 상태 이탈 시각을 상기 공유 메모리에 저장하는 단계와,
    상기 전원 상태 이탈 시각으로부터 전원 상태 진입 시각을 감산하여 유휴 시간을 산출하는 단계
    상기 하위 우선권 쓰레드에 신호를 인가하여 기동 준비 상태로 진입하는 단계
    타이머 이벤트 대기를 스케쥴링하는 단계
    를 포함하는 동작을 수행하는 컴퓨팅 시스템.
  20. 제 16 항에 있어서,
    상기 하위 우선권 쓰레드는,
    전원 상태 진입 시각을 상기 공유 메모리에 저장하는 단계와,
    상기 전원 상태 진입 시각으로부터 전원 상태 이탈 시각을 감산하여 작업 시간을 산출하는 단계
    상기 상위 우선권 쓰레드로부터 신호 대기 상태를 스케쥴링하는 단계
    를 포함하는 동작을 수행하는 컴퓨팅 시스템.
KR1020087015001A 2005-12-22 2006-12-08 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템 KR101029414B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/316,541 2005-12-22
US11/316,541 US7689838B2 (en) 2005-12-22 2005-12-22 Method and apparatus for providing for detecting processor state transitions

Publications (2)

Publication Number Publication Date
KR20080079276A true KR20080079276A (ko) 2008-08-29
KR101029414B1 KR101029414B1 (ko) 2011-04-14

Family

ID=38195320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087015001A KR101029414B1 (ko) 2005-12-22 2006-12-08 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템

Country Status (7)

Country Link
US (1) US7689838B2 (ko)
JP (1) JP2009520302A (ko)
KR (1) KR101029414B1 (ko)
CN (1) CN101313284B (ko)
DE (1) DE112006003444B4 (ko)
TW (1) TWI336448B (ko)
WO (1) WO2007078628A2 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689838B2 (en) 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
TWI474159B (zh) * 2008-09-05 2015-02-21 Via Tech Inc 多處理器系統及其進入省電模式方法
KR101275698B1 (ko) * 2008-11-28 2013-06-17 상하이 신하오 (브레이브칩스) 마이크로 일렉트로닉스 코. 엘티디. 데이터 처리 방법 및 장치
FR2941799B1 (fr) * 2009-01-30 2011-03-04 St Nxp Wireless France Procede et systeme de gestion du fonctionnement d'un dispositif de traitement de donnees multicoeurs
US8064197B2 (en) * 2009-05-22 2011-11-22 Advanced Micro Devices, Inc. Heat management using power management information
US8578384B2 (en) * 2009-10-28 2013-11-05 Freescale Semiconductor, Inc. Method and apparatus for activating system components
US8689037B2 (en) * 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US8909962B2 (en) * 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US9128705B2 (en) * 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8650426B2 (en) * 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US8271812B2 (en) * 2010-04-07 2012-09-18 Apple Inc. Hardware automatic performance state transitions in system on processor sleep and wake events
US9104476B2 (en) * 2010-04-07 2015-08-11 Apple Inc. Opportunistic multitasking of VOIP applications
US8468373B2 (en) 2011-01-14 2013-06-18 Apple Inc. Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
US8949637B2 (en) * 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead
US9465427B2 (en) * 2011-06-30 2016-10-11 International Business Machines Corporation Software-centric power management by indirectly determining that user is not actively using computer program running on computing device
JP5765423B2 (ja) 2011-07-27 2015-08-19 富士通株式会社 マルチコアプロセッサシステム、およびスケジューリング方法
TWI556092B (zh) * 2011-09-30 2016-11-01 英特爾公司 用以減少電力消耗之基於優先順序的應用程式事件控制技術
US9064253B2 (en) 2011-12-01 2015-06-23 Broadcom Corporation Systems and methods for providing NFC secure application support in battery on and battery off modes
EP2847674A4 (en) * 2012-05-09 2016-01-27 Intel Corp PLANNING TASKS AMONG PROCESSORS C URS
CN102929381B (zh) * 2012-10-22 2015-08-05 威盛电子股份有限公司 电子系统及其电源管理方法
US10007323B2 (en) 2012-12-26 2018-06-26 Intel Corporation Platform power consumption reduction via power state switching
US9336068B2 (en) 2013-06-07 2016-05-10 Apple Inc. Throttling of application access to resources
US20160187958A1 (en) 2014-12-24 2016-06-30 Intel Corporation Techniques for managing power and performance for a networking device
CN104571462B (zh) * 2014-12-30 2017-05-03 深圳先进技术研究院 电池功耗的控制方法和系统
JP6322332B2 (ja) * 2015-03-18 2018-05-09 株式会社日立製作所 エネルギー管理システムおよび業務アプリケーションの実行方法
US10275287B2 (en) * 2016-06-07 2019-04-30 Oracle International Corporation Concurrent distributed graph processing system with self-balance
US10462059B2 (en) 2016-10-19 2019-10-29 Intel Corporation Hash table entries insertion method and apparatus using virtual buckets
JP6927089B2 (ja) * 2018-03-05 2021-08-25 オムロン株式会社 制御装置、システムプログラム、制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218704A (en) 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
US5872913A (en) * 1997-03-07 1999-02-16 International Business Machines Corporation System and method for low overhead, high precision performance measurements using state transistions
US6131166A (en) * 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6308279B1 (en) * 1998-05-22 2001-10-23 Intel Corporation Method and apparatus for power mode transition in a multi-thread processor
KR100613201B1 (ko) * 2000-08-28 2006-08-18 마이크로코넥트 엘엘씨 씨피유 사용량 측정 방법
US6622253B2 (en) * 2001-08-02 2003-09-16 Scientific-Atlanta, Inc. Controlling processor clock rate based on thread priority
WO2003062988A2 (en) * 2002-01-24 2003-07-31 Koninklijke Philips Electronics N.V. Executing processes in a multiprocessing environment
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7013400B2 (en) * 2003-04-24 2006-03-14 International Business Machines Corporation Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode
JP4164662B2 (ja) * 2003-06-10 2008-10-15 日本電気株式会社 携帯端末およびgps時刻維持方法
US7617488B2 (en) 2003-12-30 2009-11-10 Intel Corporation Method and apparatus and determining processor utilization
US7272741B2 (en) * 2004-06-02 2007-09-18 Intel Corporation Hardware coordination of power management activities
US7689838B2 (en) 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions

Also Published As

Publication number Publication date
TWI336448B (en) 2011-01-21
WO2007078628A2 (en) 2007-07-12
WO2007078628A3 (en) 2008-02-07
US7689838B2 (en) 2010-03-30
CN101313284B (zh) 2011-04-20
DE112006003444T5 (de) 2008-10-23
KR101029414B1 (ko) 2011-04-14
TW200813842A (en) 2008-03-16
DE112006003444B4 (de) 2012-12-27
US20070150759A1 (en) 2007-06-28
CN101313284A (zh) 2008-11-26
JP2009520302A (ja) 2009-05-21

Similar Documents

Publication Publication Date Title
KR101029414B1 (ko) 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템
US7814485B2 (en) System and method for adaptive power management based on processor utilization and cache misses
US11579934B2 (en) Scheduler for amp architecture with closed loop performance and thermal controller
US7346787B2 (en) System and method for adaptive power management
EP2513751B1 (en) System and method for controlling central processing unit power in a virtualized system
US6298448B1 (en) Apparatus and method for automatic CPU speed control based on application-specific criteria
US9904346B2 (en) Methods and apparatus to improve turbo performance for events handling
EP2430538B1 (en) Allocating computing system power levels responsive to service level agreements
EP2513745B1 (en) System and method for controlling central processing unit power based on inferred workload parallelism
US8402293B2 (en) Power management in electronic systems
US20120284729A1 (en) Processor state-based thread scheduling
EP2695063A1 (en) Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
JP2002202893A (ja) 多重タスクの実行を制御する方法と処理回路
EP2972826B1 (en) Multi-core binary translation task processing
Obukhova et al. Diagnostics of power consumption of a mobile device multi-core processor with detail of each core utilization
WO2022039744A1 (en) Temperature control of computing device
Shieh et al. Energy-efficient tasks scheduling algorithm for dual-core real-time systems
CN102385529B (zh) 多cpu领域移动电子装置与其操作方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee