KR20120117861A - 중앙 처리 유닛 내의 데이터를 샘플링하는 시스템 및 방법 - Google Patents

중앙 처리 유닛 내의 데이터를 샘플링하는 시스템 및 방법 Download PDF

Info

Publication number
KR20120117861A
KR20120117861A KR1020127021152A KR20127021152A KR20120117861A KR 20120117861 A KR20120117861 A KR 20120117861A KR 1020127021152 A KR1020127021152 A KR 1020127021152A KR 20127021152 A KR20127021152 A KR 20127021152A KR 20120117861 A KR20120117861 A KR 20120117861A
Authority
KR
South Korea
Prior art keywords
cpu
idle state
instruction
timer
length
Prior art date
Application number
KR1020127021152A
Other languages
English (en)
Other versions
KR101499303B1 (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 KR20120117861A publication Critical patent/KR20120117861A/ko
Application granted granted Critical
Publication of KR101499303B1 publication Critical patent/KR101499303B1/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
    • 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
    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

중앙 처리 유닛 (CPU) 내의 데이터를 샘플링하는 방법이 개시된다. 이 방법은, CPU 활동을 모니터하는 단계, CPU 가 유휴 상태에 들어가는지 여부를 결정하는 단계, 및 CPU 가 유휴 상태에 들어가면 동적 클록 및 전압 스위칭 (DCVS) 알고리즘을 실행하는 단계를 포함할 수도 있다.

Description

중앙 처리 유닛 내의 데이터를 샘플링하는 시스템 및 방법{SYSTEM AND METHOD OF SAMPLING DATA WITHIN A CENTRAL PROCESSING UNIT}
관련 출원들
본 출원은 발명 명칭이 "SYSTEM AND METHOD OF SAMPLING DATA WITHIN A CENTRAL PROCESSING UNIT" 이며 2010년 1월 11일자로 출원된 미국 특허 가출원 제61/294,028호를 우선권 주장하며, 그 내용은 참조로서 전부가 통합된다.
관련 기술의 설명
휴대용 컴퓨팅 디바이스들 (PCDs) 은 유비쿼터스식이다. 이들 디바이스들은 셀룰러 전화기들, 개인휴대 정보 단말들 (PDA들), 휴대용 게임 콘솔들, 팜톱 컴퓨터들, 및 다른 휴대용 전자 디바이스들을 포함할 수도 있다. 이들 디바이스들의 기본 기능 외에, 다수가 주변 기능들을 포함한다. 예를 들어, 셀룰러 전화기는 셀룰러 전화 호들을 행하는 기본 기능과, 스틸 카메라, 비디오 카메라, 글로벌 포지셔닝 시스템 (GPS) 네비게이션, 웹 브라우징, 이메일들의 전송 및 수신, 텍스트 메시지들의 전송 및 수신, 푸시-투-토크 능력들 등의 주변 기능들을 포함할 수도 있다. 이러한 디바이스의 기능이 증가하면, 이러한 기능을 지원하는데 요구된 컴퓨팅 또는 프로세싱 능력 또한 증가한다. 게다가, 컴퓨팅 능력이 증가하면, 컴퓨팅 능력을 제공하는 프로세서, 또는 프로세서들을 효과적으로 관리할 더 큰 필요성이 존재한다.
따라서, 중앙 처리 유닛 내의 데이터를 샘플링하는 개선된 방법이 요구된다.
도면들 중, 유사한 참조 부호들은 달리 표시되지 않는 한 여러 도면들 전반에 걸쳐 유사한 부분들을 지칭한다.
도 1 은 닫힌 위치에서의 휴대용 컴퓨팅 디바이스 (PCD) 의 제 1 양태의 정면도이다.
도 2 는 열린 위치에서의 PCD 의 제 1 양태의 정면도이다.
도 3 은 PCD 의 제 2 양태의 블록도이다.
도 4 는 프로세싱 시스템의 블록도이다.
도 5 는 중앙 처리 유닛 내의 데이터를 샘플링하는 방법의 제 1 양태를 설명하는 흐름도이다.
도 6 은 중앙 처리 유닛 내의 데이터를 샘플링하는 방법의 제 2 양태의 제 1 부분을 설명하는 흐름도이다.
도 7 은 중앙 처리 유닛 내의 데이터를 샘플링하는 방법의 제 2 양태의 제 2 부분을 설명하는 흐름도이다.
도 8 은 중앙 처리 유닛 내의 데이터를 샘플링하는 방법의 제 2 양태의 제 3 부분을 설명하는 흐름도이다.
도 9 는 중앙 처리 유닛 내의 데이터를 샘플링하는 방법의 일 동작 양태를 설명하는 타임 라인이다.
단어 "예시적인"은 본 명세서에서는 "예, 경우, 또는 예시로서 기능한다"는 의미로 사용된다. "예시적인" 것으로서 본 명세서에서 설명된 임의의 양태가 다른 양태들보다 바람직하거나 유익한 것으로 해석될 필요는 없다.
본 명세서에서, 용어 "애플리케이션" 은 또한 실행가능 콘텐츠, 이를테면 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들, 및 패치들을 갖는 파일들을 포함할 수도 있다. 덧붙여서, 본 명세서에서 말하는 "애플리케이션"은, 또한 본질적으로 실행가능하지 않은 파일들, 이를테면 공개될 필요가 있을 수도 있는 문서들 또는 액세스될 필요가 있는 다른 데이터 파일들을 포함할 수도 있다.
용어 "콘텐츠"는 또한 실행가능 콘텐츠를 갖는 파일들, 이를테면 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들, 및 패치들을 포함할 수도 있다. 덧붙여서, 본 명세서에서 언급되는 "콘텐츠"는, 또한 본질적으로 실행가능하지 않은 파일들, 이를테면 공개될 필요가 있을 수도 있는 문헌들 또는 액세스될 필요가 있는 다른 데이터 파일들을 포함할 수도 있다.
본 명세서에서 사용되는 바와 같이, "컴포넌트", "데이터베이스", "모듈", "시스템" 등의 용어들은 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어 (software in execution) 등의 컴퓨터 관련 엔티티를 말하는 것으로 의도된다. 예를 들어, 컴포넌트는 프로세서상에 실행중인 프로세스, 프로세서, 오브젝트, 실행가능물 (executable), 실행 스레드, 프로그램, 및/또는 컴퓨터일 수도 있지만 이것들로 제한되지는 않는다. 예시로서, 컴퓨팅 디바이스 상에서 실행중인 애플리케이션 및 컴퓨팅 디바이스 둘 다가 하나의 컴포넌트일 수 있다. 하나 이상의 컴포넌트들이 프로세스 및/또는 실행 스레드 내에 상주할 수도 있고, 컴포넌트가 하나의 컴퓨터상에 국부화될 수도 있거나, 및/또는 2 이상의 컴퓨터들 간에 분산될 수도 있다. 덧붙여서, 이들 컴포넌트들은 갖가지 데이터 구조들을 저장하고 있는 갖가지 컴퓨터 판독가능 매체들로부터 실행될 수도 있다. 컴포넌트들은 로컬 및/또는 원격 프로세스들에 의해 이를테면 하나 이상의 데이터 패킷들을 갖는 신호 (예컨대, 로컬 시스템, 분산형 시스템에서의 다른 컴포넌트들과 상호작용하며 그리고/또는 다른 시스템들과는 인터넷과 같은 네트워크 상으로 이 신호에 의해 상호작용하는 하나의 컴포넌트로부터의 데이터) 에 따라 통신할 수도 있다.
먼저, 도 1 및 도 2 를 참조하면, 예시적인 휴대용 컴퓨팅 디바이스 (PCD) 가 도시되고, 일반적으로 도면부호 100 으로 지정된다. 도시된 바와 같이, PCD (100) 는 하우징 (102) 을 구비할 수도 있다. 하우징 (102) 은 상부 하우징 부 (104) 및 하부 하우징 부 (106) 를 구비할 수도 있다. 도 1 은 상부 하우징 부 (104) 가 디스플레이 (108) 를 구비할 수도 있음을 도시한다. 특정 양태에서, 디스플레이 (108) 는 터치 스크린 디스플레이일 수도 있다. 상부 하우징 부 (104) 는 또한 트랙볼 입력 디바이스 (110) 를 구비할 수도 있다. 게다가, 도 1에 도시된 바와 같이, 상부 하우징 부 (104) 는 파워 온 버튼 (112) 및 파워 오프 버튼 (114) 을 구비할 수도 있다. 도 1 에 도시된 바와 같이, PCD (100) 의 상부 하우징 부 (104) 는 복수의 표시등들 (116) 및 스피커 (118) 를 구비할 수도 있다. 각각의 표시등 (116) 은 발광 다이오드 (LED) 일 수도 있다.
특정 양태에서, 도 2 에 도시된 바와 같이, 상부 하우징 부 (104) 는 하부 하우징 부 (106) 에 대하여 이동가능하다. 구체적으로, 상부 하우징 부 (104) 는 하부 하우징 부 (106) 에 대하여 슬라이드 가능할 수도 있다. 도 2에 도시된 바와 같이, 하부 하우징 부 (106) 는 멀티-버튼 키보드 (120) 를 구비할 수도 있다. 특정 양태에서, 멀티-버튼 키보드 (120) 는 표준 쿼티 (QWERTY) 키보드일 수도 있다. 멀티-버튼 키보드 (120) 는 상부 하우징 부 (104) 가 하부 하우징 부 (106) 에 대하여 이동될 때 보여질 수도 있다. 도 2 는 PCD (100) 가 하부 하우징 부 (106) 상에 리셋 버튼 (122) 을 구비할 수도 있음을 추가로 도시한다.
도 3 을 참조하면, 휴대용 컴퓨팅 디바이스 (PCD) 의 제한되지 않는 예시적인 양태가 도시되고, 일반적으로 도면부호 320 으로 지정된다. 도시된 바와 같이, PCD (320) 는 멀티 코어 CPU (324) 를 구비하는 온-칩 시스템 (322) 을 포함한다. 멀티 코어 CPU (324) 는 제 0 코어 (325), 제 1 코어 (326), 및 제 N 코어 (327) 를 구비할 수도 있다.
도 3 에 도시된 바와 같이, 디스플레이 제어기 (328) 및 터치 스크린 제어기 (330) 가 멀티 코어 CPU (324) 에 커플링된다. 차례로, 온-칩 시스템 (322) 외부의 터치 스크린 디스플레이 (332) 가 디스플레이 제어기 (328) 및 터치 스크린 제어기 (330) 에 커플링된다.
도 3 은 비디오 인코더 (334), 예컨대, PAL (phase alternating line) 인코더, SECAM (sequential couleur a memoire) 인코더, 또는 NTSC (national television system(s) committee) 인코더가 멀티 코어 CPU (324) 에 커플링됨을 추가로 나타낸다. 게다가, 비디오 증폭기 (336) 가 비디오 인코더 (334) 및 터치 스크린 디스플레이 (332) 에 커플링된다. 또한, 비디오 포트 (338) 가 비디오 증폭기 (336) 에 커플링된다. 도 3 에 도시된 바와 같이, 범용 직렬 버스 (USB) 제어기 (340) 가 멀티 코어 CPU (324) 에 커플링된다. 또한, USB 포트 (342) 가 USB 제어기 (340) 에 커플링된다. 메모리 (344) 및 가입자 식별 모듈 (SIM) 카드 (346) 가 또한 멀티 코어 CPU (324) 에 커플링될 수도 있다. 게다가, 도 3 에 도시된 바와 같이, 디지털 카메라 (348) 가 멀티 코어 CPU (324) 에 커플링될 수도 있다. 예시적인 양태에서, 디지털 카메라 (348) 는 전하 커플링 소자 (CCD) 카메라 또는 상보적 금속산화물 반도체 (CMOS) 카메라이다.
도 3 에서 추가로 도시된 바와 같이, 스테레오 오디오 CODEC (350) 이 멀티 코어 CPU (324) 에 커플링될 수도 있다. 더구나, 오디오 증폭기 (352) 가 스테레오 오디오 CODEC (350) 에 커플링될 수도 있다. 예시적인 양태에서, 제 1 스테레오 스피커 (354) 및 제 2 스테레오 스피커 (356) 가 오디오 증폭기 (352) 에 커플링된다. 도 3 은 마이크로폰 증폭기 (358) 또한 스테레오 오디오 CODEC (350) 에 커플링될 수도 있음을 도시한다. 덧붙여, 마이크로폰 (360) 이 마이크로폰 증폭기 (358) 에 커플링될 수도 있다. 특정 양태에서, 주파수 변조 (FM) 라디오 튜너 (362) 가 스테레오 오디오 CODEC (350) 에 커플링될 수도 있다. 또한, FM 안테나 (364) 가 FM 라디오 튜너 (362) 에 커플링될 수도 있다. 게다가, 스테레오 헤드폰들 (366) 이 스테레오 오디오 코덱 (350) 에 커플링될 수도 있다.
도 3 은 무선 주파수 (RF) 송수신기 (368) 가 멀티 코어 CPU (324) 에 커플링될 수도 있음을 추가로 나타낸다. RF 스위치 (370) 가 RF 송수신기 (368) 및 RF 안테나 (372) 에 커플링될 수도 있다. 도 3 에 도시된 바와 같이, 키패드 (374) 가 멀티 코어 CPU (324) 에 커플링될 수도 있다. 또한, 마이크로폰 구비 모노 헤드셋 (376) 이 멀티 코어 CPU (324) 에 결합될 수도 있다. 게다가, 진동기 디바이스 (378) 가 멀티 코어 CPU (324) 에 결합될 수도 있다. 도 3 은 또한 전원 (380) 이 온-칩 시스템 (322) 에 결합될 수도 있음을 도시한다. 특정 양태에서, 전원 (380) 은 전력을 요구하는 PCD (320) 의 갖가지 컴포넌트들에 전력을 제공하는 직류 (DC) 전원이다. 게다가, 특정 양태에서, 전원는 AC 전원에 접속되는 교류 (AC) - DC 변압기로부터 유도되는 재충전식 DC 배터리 또는 DC 전원이다.
도 3 은 PCD (320) 가 또한 데이터 네트워크, 예컨대, 근거리 네트워크, 개인 영역 네트워크, 또는 임의의 다른 네트워크에 액세스하는데 사용될 수도 있는 네트워크 카드 (388) 를 구비할 수도 있음을 추가로 나타낸다. 네트워크 카드 (388) 는 블루투스 네트워크 카드, WiFi 네트워크 카드, 개인 영역 네트워크 (PAN) 카드, 개인 영역 네트워크 초저전력 기술 (PeANUT) 네트워크 카드, 또는 당업계에 널리 공지된 임의의 다른 네트워크 카드일 수도 있다. 게다가, 네트워크 카드 (388) 는 하나의 칩에 통합될 수도 있다, 즉, 네트워크 카드 (388) 는 칩에서의 풀 솔루션 (full solution) 일 수도 있고, 및 별개의 네트워크 카드 (388) 가 아닐 수도 있다.
도 3 에 도시된 바와 같이, 터치 스크린 디스플레이 (332), 비디오 포트 (338), USB 포트 (342), 카메라 (348), 제 1 스테레오 스피커 (354), 제 2 스테레오 스피커 (356), 마이크로폰 (360), FM 안테나 (364), 스테레오 헤드폰들 (366), RF 스위치 (370), RF 안테나 (372), 키패드 (374), 모노 헤드셋 (376), 진동기 (378), 및 전원 (380) 은 온-칩 시스템 (322) 외부에 있다.
특정 양태에서, 본 명세서에서 설명되는 방법 단계들 중 하나 이상이 메모리 (344) 에 컴퓨터 프로그램 명령들로서 저장될 수도 있다. 이들 명령들은 본 명세서에서 설명되는 방법들을 수행하기 위하여 멀티 코어 CPU (324) 에 의해 실행될 수도 있다. 게다가, 멀티 코어 CPU (324), 메모리 (344), 또는 이들의 조합은, 중앙 프로세싱 유닛 내의 데이터를 샘플링하기 위해 본 명세서에서 설명되는 방법 단계들 중 하나 이상을 실행하는 수단으로서 기능할 수도 있다.
도 4 를 참조하면, 프로세싱 시스템이 도시되고, 일반적으로 도면부호 400 으로 지정된다. 특정 양태에서, 프로세싱 시스템 (400) 은 도 3 에 연계하여 위에서 설명된 PCD (320) 에 통합될 수도 있다. 도시된 바와 같이, 프로세싱 시스템 (400) 은 멀티 코어 중앙 프로세싱 유닛 (CPU; 402) 및 이 멀티 코어 CPU (402) 에 접속된 메모리 (404) 를 구비할 수도 있다. 멀티 코어 CPU (402) 는 제 0 코어 (410), 제 1 코어 (412), 및 제 N 코어 (414) 를 구비할 수도 있다. 제 0 코어 (410) 는 그 위에서 실행되는 제 0 동적 클록 및 전압 스케일링 (DCVS) 알고리즘 (416) 을 구비할 수도 있다. 제 1 코어 (412) 는 그 위에서 실행되는 제 1 DCVS 알고리즘 (417) 을 구비할 수도 있다. 게다가, 제 N 코어 (414) 는 그 위에서 실행되는 제 N DCVS 알고리즘 (418) 을 구비할 수도 있다. 특정 양태에서, 각각의 DCVS 알고리즘 (416, 417, 418) 은 개별 코어 (412, 414, 416) 상에서 독립적으로 실행될 수도 있다.
더구나, 도시된 바와 같이, 메모리 (404) 는 그 위에 저장된 운영 시스템 (420) 를 구비할 수도 있다. 운영 시스템 (420) 은 스케줄러 (422) 를 구비할 수도 있고, 스케줄러 (422) 는 제 1 실행 큐 (424), 제 2 실행 큐 (426), 및 제 N 실행 큐 (428) 를 구비할 수도 있다. 메모리 (404) 는 또한 그 위에 저장된 제 1 애플리케이션 (430), 제 2 애플리케이션 (432), 및 제 N 애플리케이션 (434) 을 구비할 수도 있다.
특정 양태에서, 애플리케이션들 (430, 432, 434) 은 멀티 코어 CPU (402) 내의 코어들 (410, 412, 414) 에서 처리될 하나 이상의 태스크들 (436) 을 운영 시스템 (420) 에 전송할 수도 있다. 태스크들 (436) 은 단일 태스크들, 스레드들, 또는 이들의 조합으로서 처리되거나, 또는 실행될 수도 있다. 게다가, 스케줄러 (422) 는 멀티 코어 CPU (402) 내에서의 실행을 위해 태스크들, 스레드들, 또는 이들의 조합을 스케줄링할 수도 있다. 덧붙여, 스케줄러 (422) 는 태스크들, 스레드들, 또는 이들의 조합을 실행 큐들 (424, 426, 428) 내에 배치시킬 수도 있다. 코어들 (410, 412, 414) 은, 예컨대, 코어들 (410, 412, 414) 에서 그 태스크 및 스레드들의 프로세싱 또는 실행을 위해 운영 시스템 (420) 에 의해 지시된 바대로 실행 큐들 (424, 426, 428) 로부터 태스크들, 스레드들, 또는 이들의 조합을 취출할 수도 있다.
도 4 는 또한 메모리 (404) 가 저장된 제어기 (440) 를 포함할 수도 있음을 도시한다. 제어기 (440) 는 운영 시스템 (420) 및 멀티 코어 CPU (402) 에 접속될 수도 있다. 상세하게는, 제어기 (440) 는 운영 시스템 (420) 내의 스케줄러 (422) 에 접속될 수도 있다. 본 명세서에서 설명되는 것과 같이, 제어기 (440) 는 코어들 (410, 412, 414) 상의 작업부하를 모니터할 수도 있고, 제어기 (440) 는 하기에서 설명되는 것과 같이 코어들 (410, 412, 414) 로부터의 데이터를 샘플링할 수도 있다.
특정 양태에서, 제어기 (440) 는 소프트웨어 프로그램일 수도 있다. 그러나, 대안적인 양태에서, 제어기 (440) 는 메모리 (404) 의 외부에 있는 하드웨어 제어기일 수도 있다. 이 중에서, 제어기 (440), 메모리 (404), 코어들 (410, 412, 414) 또는 이들의 임의의 조합은 코어들 (410, 412, 414) 로부터의 데이터를 샘플링하기 위해 본 명세서에서 설명되는 방법 단계들 중 하나 이상을 실행하는 수단으로서 작용할 수도 있다.
도 5 를 참조하면, 동적 클록 및 전압 스케일링 (DCVS) 알고리즘을 실행하는 방법이 도시되고, 일반적으로 도면부호 500 으로 지정된다. 방법 (500) 은 블록 (502) 에서, 디바이스가 파워 온 될 때 하기의 단계들이 수행될 수도 있는 실행 루프로 시작한다. 블록 (504) 에서, 제어기는 CPU 활동을 모니터할 수도 있다. 이러한 활동은 단일 코어 CPU, 멀티 코어 CPU, 복수의 단일 코어 CPU들, 복수의 멀티 코어 CPU들, 또는 이들의 조합의 활동일 수도 있다. 추가로, 제어기는 소프트웨어 제어기, 하드웨어 제어기, 또는 이들의 조합일 수도 있다.
결정 (506) 으로 이용하여, 제어기는 CPU 또는 CPU 의 코어가 유휴 상태에 들어가는지 여부를 결정할 수도 있다. 만약 그렇다면, 방법은 블록 (508) 으로 진행할 수도 있고, 제어기는 DCVS 알고리즘을 실행할 수도 있다. 이후에, 결정 (510) 에서, 제어기는 CPU 또는 CPU 의 코어가 유휴 상태를 종료하는지 여부를 결정할 수도 있다. 만약 그렇지 않다면, 방법 (500) 은 블록 (511) 으로 진행할 수도 있고, CPU 는 유휴 상태를 유지할 수도 있다. 그 후에, 방법은 결정 (510) 으로 리턴할 수도 있고, 방법 (500) 은 본 명세서에서 설명되는 것과 같이 계속될 수도 있다. 그렇지 않다면, CPU 또는 CPU 의 코어가 유휴 상태를 종료하면, 방법 (500) 은 블록 (512) 으로 진행할 수도 있고, 제어기는 DCVS 알고리즘의 실행을 중단할 수도 있다. 이후에, 제어기는 디바이스가 파워 오프되는지 여부를 결정할 수도 있다. 디바이스가 파워 오프되면, 방법 (500) 은 종료할 수도 있다. 이와 반대로, 디바이스가 파워 온을 유지하면, 방법 (500) 은 블록 (504) 으로 리턴할 수도 있고, 방법 (500) 은 본 명세서에서 설명되는 것과 같이 계속될 수도 있다.
결정 (506) 으로 리턴하여, CPU 또는 CPU 의 코어가 유휴 상태에 들어가지 않으면, 방법 (500) 은 결정 (516) 으로 진행할 수도 있다. 결정 (516) 에서, 제어기는 타이머가 작동하는지 여부를 결정할 수도 있다. 그렇지 않다면, 방법 (500) 은 블록 (504) 으로 복귀할 수도 있고, 방법 (500) 은 본 명세서에서 설명되는 것과 같이 계속될 수도 있다. 타이머가 작동하면, 방법 (500) 은 블록 (518) 으로 이동할 수도 있고, 제어기는 CPU 주파수를 1 스텝 증가시킬 수도 있다. 다음에, 결정 (520) 에서, 제어기는 CPU 주파수가 최대 CPU 주파수인지 여부를 결정할 수도 있다. 만약 CPU 주파수가 최대 CPU 주파수이면, 블록 (522) 에서 타이머가 중지될 수도 있다. 그 후에, 방법 (500) 은 결정 (514) 으로 진행할 수도 있고, 방법 (500) 은 본 명세서에서 설명되는 것과 같이 계속될 수도 있다. CPU 주파수가 최대 CPU 주파수가 아니면, 방법 (500) 은 결정 (514) 으로 직접 이동할 수도 있고, 방법 (500) 은 본 명세서에서 설명되는 것과 같이 계속될 수도 있다.
특정 양태에서, 이전 유휴 시간과 상당히 인접하게 유휴 상태에 들어가면 DCVS 알고리즘의 실행은 스킵될 수도 있다. 이는 원하는 DCVS 응답 시간에 따라 결정될 수도 있다.
도 6 을 참조하면, 동적 클록 및 전압 스케일링 (DCVS) 알고리즘을 실행하는 방법의 제 2 양태가 도시되고, 일반적으로 도면부호 600 으로 지정된다. 방법 (600) 은 블록 (602) 에서 디바이스가 파워 온 될 경우에 하기의 단계들이 수행될 수도 있는 실행 루프로 시작한다. 블록 (604) 에서, 제어기는 응답 기한 R 을 결정할 수도 있다. 예를 들면, 응답 기한 R 은 90 밀리초 (90 ㎳) 로 설정될 수도 있다.
블록 (606) 으로 이동하여, 제어기는 CPU 활동을 모니터할 수도 있다. 이러한 활동은 단일 코어 CPU, 멀티 코어 CPU, 복수의 단일 코어 CPU들, 복수의 멀티 코어 CPU들, 또는 이들의 조합의 활동일 수도 있다. 추가로, 제어기는 소프트웨어 제어기, 하드웨어 제어기, 또는 이들의 조합일 수도 있다.
결정 (608) 으로 이용하여, 제어기는 CPU 또는 CPU 의 코어가 유휴 상태에 들어가는지 여부를 결정할 수도 있다. CPU 가 유휴 상태에 들어가지 않으면, 방법 (600) 은 하기에서 설명되는 도 8 의 결정 (802) 으로 직접 진행할 수도 있다. 그러나, CPU 가 유휴 상태에 들어가면, 방법 (600) 은 블록 (610) 으로 진행할 수도 있고, 제어기는 시간을 주목할 수도 있다. 다음에, 블록 (612) 에서, 제어기는 이전 비지 사이클의 길이를 결정할 수도 있다. 블록 (614) 에서, 제어기는 이전 사이클의 길이를 기록할 수도 있다. 추가로, 블록 (616) 에서, 제어기는 비지 사이클 동안 CPU 주파수 또는 주파수들을 기록할 수도 있다. 이후에, 방법 (600) 은 도 7 의 블록 (702) 으로 진행할 수도 있다. 블록 (610) 내지 블록 (616) 에서 수집된 정보는 DCVS 알고리즘에 제공될 수도 있다.
도 7 의 블록 (702) 에서, 단계 (600) 는 타이머를 중지할 수도 있다. 블록 (704) 으로 이동하여, 제어기는 동적 클록 및 전압 스케일링 (DCVS) 알고리즘을 실행할 수도 있다. 다음에, 결정 (706) 에서, 제어기는 CPU 또는 CPU 의 코어가 유휴 상태를 종료했는지 여부를 결정할 수도 있다. 그렇지 않다면, 방법 (600) 은 블록 (707) 으로 진행할 수도 있고, CPU 는 유휴 상태를 유지할 수도 있다. 그 후에, 방법은 결정 (706) 으로 리턴하고, 본 명세서에서 설명되는 것과 같이 계속될 수도 있다. 만약 CPU 또는 CPU 의 코어가 유휴 상태를 종료하면, 방법 (600) 은 블록 (708) 으로 진행할 수도 있다. 블록 (708) 에서, 제어기는 시간을 주목할 수도 있다. 블록 (710) 에서, 제어기는 이전 유휴 기간 또는 사이클의 길이를 결정할 수도 있다. 다음에, 블록 (712) 에서, 제어기는 현재시간과 응답 기한을 더한 것과 동일하게 타이머를 설정할 수도 있다. 블록 (714) 에서, 제어기는 이전 유휴 기간의 길이를 기록할 수도 있다. 이후에, 방법 (600) 은 도 6 의 블록 (606) 으로 리턴할 수도 있고, 방법 (600) 은 본 명세서에서 설명되는 것과 같이 계속될 수도 있다. 블록 (710) 내지 블록 (714) 에서 수집된 정보는 DCVS 알고리즘에 제공될 수도 있다.
도 6 의 결정 (608) 으로 리턴하여, CPU 또는 그 내부의 코어들이 유휴 상태에 들어가지 않으면, 방법 (600) 은 도 8 의 결정 (802) 으로 진행할 수도 있다.
도 8 의 결정 (802) 에서, 제어기는 타이머가 작동되는지 여부를 결정할 수도 있다. 그렇지 않다면, 방법 (600) 은 도 6 의 블록 (606) 으로 리턴할 수도 있고, 방법 (600) 은 본 명세서에서 설명되는 것과 같이 계속될 수도 있다. 다른 한편으로, 결정 (802) 에서, 타이머가 작동되면, 방법 (600) 은 결정 (804) 으로 진행할 수도 있다. 결정 (804) 에서, 제어기는, 제어기가 정규 모드에서 동작하는지, 서비스 품질 (QoS) 모드에서 동작하는지 여부를 결정할 수도 있다. 제어기가 정규 모드에서 동작하고 있다면, 방법 (600) 은 블록 (806) 으로 진행할 수도 있고, 제어기는 CPU 주파수를 1 스텝 증가시킬 수도 있다.
다음에, 결정 (808) 에서, 제어기는 CPU 주파수가 최대 CPU 주파수인지 여부를 결정할 수도 있다. 만약 CPU 주파수가 최대 CPU 주파수이면, 블록 (810) 에서 타이머가 중지될 수도 있다. 그 후에, 방법 (600) 은 도 6 의 블록 (606) 으로 리턴할 수도 있다. 이후에, 방법 (600) 은 본 명세서에서 설명되는 것과 같이 계속될 수도 있다. CPU 주파수가 최대 CPU 주파수가 아니면, 방법 (600) 은 도 7 의 블록 (712) 으로 리턴할 수도 있고, 방법 (600) 은 본 명세서에서 설명되는 것과 같이 계속될 수도 있다.
결정 (804) 으로 리턴하여, 제어기가 서비스 품질 (QoS) 모드에서 동작하고 있다면, 방법 (600) 은 블록 (812) 으로 진행할 수도 있고, 제어기는 CPU 주파수를 최대 CPU 주파수로 증가시킬 수도 있다. 그 후에, 방법 (600) 은 도 7 의 블록 (712) 으로 리턴할 수도 있다.
도 9 는 중앙 처리 유닛 내의 데이터를 샘플링하는 방법의 일 동작 양태를 설명하는 타임 라인이다. 이 예에서, 응답 기한은 90 밀리초 (90 ㎳) 와 동일하게 설정될 수도 있다. t0 에서 시작하여, CPU 는 유휴 상태에 들어갈수도 있다. 시간이 주목될 수도 있고, 즉 CPU 는 t-1 (비도시) 부터 t0 까지 또는 (t0-t-1) 동안 비지 (busy) 상태였다. 추가로, 타이머가 중지될 수도 있다. t1 에서 CPU 는 유휴 상태를 종료하거나 중지할 수도 있다. 시간이 주목될 수도 있고, 즉 CPU 는 t0 부터 t1 까지, 또는 (t1-t0) 동안 유휴 상태였다. 다음에, 타이머는 t1 과 90 밀리초 (90 ㎳) 를 더한 것에 대하여 설정될 수도 있다.
t2 에서, CPU 는 다시 유휴 상태에 들어갈 수도 있다. 시간이 주목될 수도 있고, 즉 CPU 는 t1 부터 t2 까지 또는 (t2-t1) 동안 비지 상태였다. 그 후에, 타이머가 중지될 수도 있다. t3 에서 CPU 는 유휴 상태를 종료할 수도 있다. 시간이 주목될 수도 있고, 즉 CPU 는 t2 부터 t3 까지, 또는 (t3-t2) 동안 유휴 상태였다. 다음에, 타이머는 t3 과 90 밀리초 (90 ㎳) 를 더한 것에 대하여 설정될 수도 있다. t3 + 90 ㎳ 에서, 타이머는 작동하고, CPU 주파수가 증가된다. CPU 가 정규 모드이면, CPU 주파수는 1 증분 주파수 스텝 증가할 수도 있다. CPU 가 QoS 조건이면, CPU 주파수는 최대 CPU 주파수로 증가할 수도 있다. 추가로, CPU 주파수가 최대 CPU 주파수가 아니면, 타이머는 (t3 + 90 ㎳) 에 90 밀리초, 즉 현재시간으로부터 90 ㎳ 를 더한 것에 대하여 다시 스케줄링될 수도 있다. t4 에서, 다시 한번 CPU 는 유휴 상태에 들어간다. 시간이 주목될 수도 있고, CPU 는 즉 t3 부터 t4 까지, 또는 (t4-t3) 동안 비지 상태였고, (t3 + 90 ㎳) 부터 t4 까지 더 높은 레이트였다. 그 후에, 타이머는 중지될 수도 있다.
특정 양태에서, 앞서 수집된 모든 데이터 포인트들을 이용하여 DCVS 알고리즘은 t3 + 90 ㎳ 의 경우를 제외하고 정규 프로세싱의 중단 없이 정확한 CPU 유휴 시간들 및 CPU 사용에 액세스하며, 이러한 중단은 유휴 시간에 결정이 미리 계산되기 때문에 최소한의 작업을 수행한다. DCVS 알고리즘은 또한 유휴/작업 분배 히스토리에 액세스할 수도 있다.
본 명세서에 설명된 방법 단계들은 반드시 설명된 순서로 수행될 필요는 없음이 이해될 것이다. 추가로, "이후에", "그 후에", "다음에" 등과 같은 단어들은 단계들을 순서를 한정하도록 의도된 것은 아니다. 이러한 단어들은 단순히 방법 단계들의 설명에서 독자를 가이드하기 위해 이용된다. 추가로, 본 명세서에 설명된 방법들은 휴대용 컴퓨팅 디바이스 (PCD) 에서 실행가능한 것으로 설명된다. PCD 는 모바일 전화 디바이스, 휴대 정보 단말기, 스마트북 컴퓨팅 디바이스, 넷북 컴퓨팅 디바이스, 랩톱 컴퓨팅 디바이스, 데스크톱 컴퓨팅 디바이스, 또는 이들의 조합일 수도 있다.
본 명세서에 개시된 시스템 및 방법들은 샘플링 레이트에 독립적일 수도 있는 샘플링 방법을 제공한다. 추가로, 응답, 서비스 품질 (QoS), 또는 이들의 조합은 제 1 클래스 입력 파라미터들일 수도 있다. 또한, DCVS 알고리즘 프로세싱은 실제 작업을 중단시키지 않고, 오버헤드는 시스템이 완전히 로딩될 경우에 0 이 될 수도 있다. 추가로, 클록 변경들은 기존 전력 급락 (collapse) 에 피기백 (piggyback) 할 수도 있다.
특정 양태에서, 본 명세서에서 설명된 구성으로, 데이터의 샘플링은 기회적인것으로 간주될 수도 있다. 이러한 기회적인 샘플링 방법은 고정된 인터벌들로 CPU 로드/유휴 시간을 샘플링하지 않는다. 기회적인 샘플링 방법 대신에, CPU 가 유휴 상태에 들어가고 종료하는 시점을 주목함으로써 CPU 유휴 상태를 직접 측정한다. 이는 주기적인 샘플링과 연관된 중단/콘텍스트 스위치 오버헤드를 제거한다. DCVS 알고리즘은 시스템이 휴지기인, 즉 DCVS 알고리즘이 임의의 유용한 작업을 방해하지 않는 유휴 시간에 실행할 수도 있고, DCVS 알고리즘 오버헤드는 원하는 DCVS 응답에 독립적이다.
일반적으로, 본 발명의 방법은 샘플마다 하나의 인터럽트 및 2 개의 콘텍스트 스위치들을 저장할 수도 있다. 추가로, 이러한 방법은 CPU 클록 주파수 변화들이 클록 변화가 필요한 경우에 유휴 상태를 종료하는데 맞춰 스케줄링되게 한다.
특정 양태에서, CPU 가 완전히 신청되면, 즉 100 퍼센트 (100%) 가 되면, 유휴 시간은 존재하지 않을 것이다. 유휴 시간이 없으면, 샘플이 취득되고, DCVS 알고리즘이 실행될 기회가 없다. 이러한 고갈 (starvation) 문제를 회피하기 위해, 최악의 경우 DCVS 알고리즘에 대한 비지 시간에 타임아웃 콜백이 등록된다. 타임아웃이 종료하기 전에 CPU 가 유휴 상태에 들어가지 않으면, 시스템은 클록 주파수를 변화시킬 수도 있다. 이러한 타임아웃은 DCVS 알고리즘의 존재시에도 성능에서의 바운드 (bound) 를 제공한다. 클록 주파수는 요구될 수도 있는 임의의 QoS 보장을 제공하기 위해 클록 주파수의 정규 증가 및 (최대치까지의) 더 큰 변화를 포함할 수도 있다.
이러한 경우에, 완전히 신청된 조건에서 유휴 데이터를 샘플링하고 DCVS 알고리즘을 실행시킬 필요가 없기 때문에, 즉 결정 로직이 미리 계산되기 때문에 오버헤드는 최소가 된다. CPU 가 최대 주파수에 도달하면, 시스템이 종료 상태가 되기 때문에 타임아웃이 취소될 수 있다. 이로 인해, 본 발명의 시스템 및 방법은 부하 하에서 잘 스케일링할 수도 있다. 시스템이 고도로 로딩되면, DCVS 알고리즘 오버헤드가 제로가 된다. 이러한 속성은 임의의 요구되는 DCVS 응답도/감도에 독립적일 수도 있다. 추가로, 본 발명의 시스템 및 방법은 임의의 DCVS 알고리즘들을 지원한다.
하나 이상의 예시적인 양태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 머신 판독가능 매체, 즉, 컴퓨터 판독가능 매체와 같은 컴퓨터 프로그램 제품상에 저장되거나 전송될 수도 있다. 컴퓨터 판독가능 매체는 한 장소에서 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 매체 및 통신 매체 양쪽 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수도 있는 이용가능한 임의의 매체일 수도 있다. 제한되지 않는 예로, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 운반하거나 저장하는데 사용될 수도 있고 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함할 수도 있다. 또한, 어떤 관련된 것이라도 적절히 컴퓨터 판독가능 매체라고 명명된다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 꼬임쌍선 (twisted pair), 디지털 가입자 회선 (DSL), 또는 무선 기술들 이를테면 적외선, 라디오, 및/또는 마이크로파를 이용하여 전송된다면, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 디스크 (Disk 및 disc) 는 여기서 사용되는 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하는데, 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하지만, 디스크 (disc) 들은 레이저들로 광학적으로 데이터를 재생한다. 상기한 것들의 조합들도 컴퓨터 판독가능 미디어의 범위 내에 포함되어야 한다.
선택된 다수의 양태들이 도시되고 상세히 설명되었지만, 갖가지 대체물들 및 개조물들이, 다음의 청구항들에 의해 정의된 바와 같은 본 발명의 사상 및 범위로부터 벗어나지 않고 형성될 수도 있다는 것이 이해될 것이다.

Claims (40)

  1. 중앙 처리 유닛 (CPU) 내의 데이터를 샘플링하는 방법으로서,
    CPU 활동을 모니터하는 단계;
    상기 CPU 가 유휴 상태에 들어가는지 여부를 결정하는 단계; 및
    상기 CPU 가 유휴 상태에 들어가면 동적 클록 및 전압 스위칭 (DCVS) 알고리즘을 실행하는 단계를 포함하는, 데이터를 샘플링하는 방법.
  2. 제 1 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하는지 여부를 결정하는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  3. 제 2 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하면, 상기 DCVS 알고리즘의 실행을 중단하는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  4. 제 2 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하지 않으면, 상기 DCVS 알고리즘을 실행하는 것을 계속하는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  5. 제 1 항에 있어서,
    상기 CPU 가 유휴 상태에 들어가면, 현재시간을 주목하는 단계;
    이전 비지 (busy) 사이클의 길이를 결정하는 단계; 및
    상기 이전 비지 사이클의 길이를 기록하는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  6. 제 2 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하면, 현재시간을 주목하는 단계;
    이전 유휴 기간의 길이를 결정하는 단계; 및
    상기 이전 유휴 기간의 길이를 기록하는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  7. 제 1 항에 있어서,
    상기 CPU 가 유휴 상태에 들어가지 않으면, 타이머가 작동하는지 여부를 결정하는 단계; 및
    상기 타이머가 작동하면, 상기 CPU 가 정규 모드에서 동작하고 있는지 또는 서비스 품질 모드에서 동작하고 있는지를 결정하는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  8. 제 7 항에 있어서,
    상기 CPU 가 서비스 품질 모드에서 동작하고 있는 경우에, CPU 주파수를 최대값으로 증가시키는 단계; 및
    상기 타이머를 중지하는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  9. 제 7 항에 있어서,
    상기 CPU 가 정규 모드에서 동작하고 있는 경우에, CPU 주파수를 1 증분 스텝 증가시키는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  10. 제 9 항에 있어서,
    상기 CPU 주파수가 최대값과 동일한지 여부를 결정하는 단계; 및
    상기 CPU 주파수가 최대값과 동일하다면, 타이머를 중지시키는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  11. 무선 디바이스로서,
    CPU 활동을 모니터하는 수단;
    상기 CPU 가 유휴 상태에 들어가는지 여부를 결정하는 수단; 및
    상기 CPU 가 유휴 상태에 들어가면 동적 클록 및 전압 스위칭 (DCVS) 알고리즘을 실행하는 수단을 포함하는, 무선 디바이스.
  12. 제 11 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하는지 여부를 결정하는 수단을 더 포함하는, 무선 디바이스.
  13. 제 12 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하면, 상기 DCVS 알고리즘의 실행을 중단하는 수단을 더 포함하는, 무선 디바이스.
  14. 제 12 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하지 않으면, 상기 DCVS 알고리즘을 실행하는 것을 계속하는 수단을 더 포함하는, 무선 디바이스.
  15. 제 11 항에 있어서,
    상기 CPU 가 유휴 상태에 들어가면, 현재시간을 주목하는 수단;
    이전 비지 (busy) 사이클의 길이를 결정하는 수단; 및
    상기 이전 비지 사이클의 길이를 기록하는 수단을 더 포함하는, 무선 디바이스.
  16. 제 12 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하면, 현재시간을 주목하는 수단;
    이전 유휴 기간의 길이를 결정하는 수단; 및
    상기 이전 유휴 기간의 길이를 기록하는 수단을 더 포함하는, 무선 디바이스.
  17. 제 11 항에 있어서,
    상기 CPU 가 유휴 상태에 들어가지 않으면, 타이머가 작동하는지 여부를 결정하는 수단; 및
    상기 타이머가 작동하면, 상기 CPU 가 정규 모드에서 동작하고 있는지 또는 서비스 품질 모드에서 동작하고 있는지를 결정하는 수단을 더 포함하는, 무선 디바이스.
  18. 제 17 항에 있어서,
    상기 CPU 가 서비스 품질 모드에서 동작하고 있는 경우에, CPU 주파수를 최대값으로 증가시키는 수단; 및
    상기 타이머를 중지하는 수단을 더 포함하는, 무선 디바이스.
  19. 제 17 항에 있어서,
    상기 CPU 가 정규 모드에서 동작하고 있는 경우에, CPU 주파수를 1 증분 스텝 증가시키는 수단을 더 포함하는, 무선 디바이스.
  20. 제 19 항에 있어서,
    상기 CPU 주파수가 최대값과 동일한지 여부를 결정하는 수단; 및
    상기 CPU 주파수가 최대값과 동일하다면, 타이머를 중지시키는 수단을 더 포함하는, 무선 디바이스.
  21. 무선 디바이스로서,
    프로세서를 포함하며,
    상기 프로세서는,
    CPU 활동을 모니터하고;
    상기 CPU 가 유휴 상태에 들어가는지 여부를 결정하며; 그리고
    상기 CPU 가 유휴 상태에 들어가면 동적 클록 및 전압 스위칭 (DCVS) 알고리즘을 실행하도록 동작가능한, 무선 디바이스.
  22. 제 21 항에 있어서,
    상기 프로세서는 추가로,
    상기 CPU 가 유휴 상태를 종료하는지 여부를 결정하도록 동작가능한, 무선 디바이스.
  23. 제 22 항에 있어서,
    상기 프로세서는 추가로,
    상기 CPU 가 유휴 상태를 종료하면, 상기 DCVS 알고리즘의 실행을 중단하도록 동작가능한, 무선 디바이스.
  24. 제 22 항에 있어서,
    상기 프로세서는 추가로,
    상기 CPU 가 유휴 상태를 종료하지 않으면, 상기 DCVS 알고리즘을 실행하는 것을 계속하도록 동작가능한, 무선 디바이스.
  25. 제 21 항에 있어서,
    상기 프로세서는 추가로,
    상기 CPU 가 유휴 상태에 들어가면, 현재시간을 주목하고;
    이전 비지 (busy) 사이클의 길이를 결정하며; 그리고
    상기 이전 비지 사이클의 길이를 기록하도록 동작가능한, 무선 디바이스.
  26. 제 22 항에 있어서,
    상기 프로세서는 추가로,
    상기 CPU 가 유휴 상태를 종료하면, 현재시간을 주목하고;
    이전 유휴 기간의 길이를 결정하며; 그리고
    상기 이전 유휴 기간의 길이를 기록하도록 동작가능한, 무선 디바이스.
  27. 제 21 항에 있어서,
    상기 프로세서는 추가로,
    상기 CPU 가 유휴 상태에 들어가지 않으면, 타이머가 작동하는지 여부를 결정하고; 그리고
    상기 타이머가 작동하면, 상기 CPU 가 정규 모드에서 동작하고 있는지 또는 서비스 품질 모드에서 동작하고 있는지를 결정하도록 동작가능한, 무선 디바이스.
  28. 제 27 항에 있어서,
    상기 프로세서는 추가로,
    상기 CPU 가 서비스 품질 모드에서 동작하고 있는 경우에, CPU 주파수를 최대값으로 증가시키고; 그리고
    상기 타이머를 중지하도록 동작가능한, 무선 디바이스.
  29. 제 27 항에 있어서,
    상기 프로세서는 추가로,
    상기 CPU 가 정규 모드에서 동작하고 있는 경우에, CPU 주파수를 1 증분 스텝 증가시키도록 동작가능한, 무선 디바이스.
  30. 제 29 항에 있어서,
    상기 CPU 주파수가 최대값과 동일한지 여부를 결정하는 단계; 및
    상기 CPU 주파수가 최대값과 동일하다면, 타이머를 중지시키는 단계를 더 포함하는, 데이터를 샘플링하는 방법.
  31. 메모리 매체로서,
    CPU 활동을 모니터하기 위한 적어도 하나의 명령;
    상기 CPU 가 유휴 상태에 들어가는지 여부를 결정하기 위한 적어도 하나의 명령; 및
    상기 CPU 가 유휴 상태에 들어가면 동적 클록 및 전압 스위칭 (DCVS) 알고리즘을 실행하기 위한 적어도 하나의 명령을 포함하는, 메모리 매체.
  32. 제 31 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하는지 여부를 결정하기 위한 적어도 하나의 명령을 더 포함하는, 메모리 매체.
  33. 제 32 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하면, 상기 DCVS 알고리즘의 실행을 중단하기 위한 적어도 하나의 명령을 더 포함하는, 메모리 매체.
  34. 제 32 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하지 않으면, 상기 DCVS 알고리즘을 실행하는 것을 계속하기 위한 적어도 하나의 명령을 더 포함하는, 메모리 매체.
  35. 제 31 항에 있어서,
    상기 CPU 가 유휴 상태에 들어가면, 현재시간을 주목하기 위한 적어도 하나의 명령;
    이전 비지 (busy) 사이클의 길이를 결정하기 위한 적어도 하나의 명령; 및
    상기 이전 비지 사이클의 길이를 기록하기 위한 적어도 하나의 명령을 더 포함하는, 메모리 매체.
  36. 제 32 항에 있어서,
    상기 CPU 가 유휴 상태를 종료하면, 현재시간을 주목하기 위한 적어도 하나의 명령;
    이전 유휴 기간의 길이를 결정하기 위한 적어도 하나의 명령; 및
    상기 이전 유휴 기간의 길이를 기록하기 위한 적어도 하나의 명령을 더 포함하는, 메모리 매체.
  37. 제 31 항에 있어서,
    상기 CPU 가 유휴 상태에 들어가지 않으면, 타이머가 작동하는지 여부를 결정하기 위한 적어도 하나의 명령; 및
    상기 타이머가 작동하면, 상기 CPU 가 정규 모드에서 동작하고 있는지 또는 서비스 품질 모드에서 동작하고 있는지를 결정하기 위한 적어도 하나의 명령을 더 포함하는, 메모리 매체.
  38. 제 37 항에 있어서,
    상기 CPU 가 서비스 품질 모드에서 동작하고 있는 경우에, CPU 주파수를 최대값으로 증가시키기 위한 적어도 하나의 명령; 및
    상기 타이머를 중지하기 위한 적어도 하나의 명령을 더 포함하는, 메모리 매체.
  39. 제 37 항에 있어서,
    상기 CPU 가 정규 모드에서 동작하고 있는 경우에, CPU 주파수를 1 증분 스텝 증가시키기 위한 적어도 하나의 명령을 더 포함하는, 메모리 매체.
  40. 제 39 항에 있어서,
    상기 CPU 주파수가 최대값과 동일한지 여부를 결정하기 위한 적어도 하나의 명령; 및
    상기 CPU 주파수가 최대값과 동일하다면, 타이머를 중지시키기 위한 적어도 하나의 명령을 더 포함하는, 메모리 매체.
KR1020127021152A 2010-01-11 2011-01-10 중앙 처리 유닛 내의 데이터를 샘플링하는 시스템 및 방법 KR101499303B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US29402810P 2010-01-11 2010-01-11
US61/294,028 2010-01-11
US12/846,119 2010-07-29
US12/846,119 US8370665B2 (en) 2010-01-11 2010-07-29 System and method of sampling data within a central processing unit
PCT/US2011/020684 WO2011085313A1 (en) 2010-01-11 2011-01-10 System and method of sampling data within a central processing unit

Publications (2)

Publication Number Publication Date
KR20120117861A true KR20120117861A (ko) 2012-10-24
KR101499303B1 KR101499303B1 (ko) 2015-03-05

Family

ID=44259445

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127021152A KR101499303B1 (ko) 2010-01-11 2011-01-10 중앙 처리 유닛 내의 데이터를 샘플링하는 시스템 및 방법

Country Status (6)

Country Link
US (1) US8370665B2 (ko)
EP (1) EP2524272B1 (ko)
JP (1) JP5662478B2 (ko)
KR (1) KR101499303B1 (ko)
CN (1) CN102667669B (ko)
WO (1) WO2011085313A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938631B2 (en) 2012-06-30 2015-01-20 International Business Machines Corporation Energy efficient implementation of read-copy update for light workloads running on systems with many processors
US9430014B2 (en) * 2013-07-18 2016-08-30 Qualcomm Incorporated System and method for idle state optimization in a multi-processor system on a chip
CN104951026A (zh) * 2014-03-25 2015-09-30 联芯科技有限公司 基于嵌入式温度传感器的芯片过温自动控制方法及系统
KR102164099B1 (ko) 2014-03-28 2020-10-12 삼성전자 주식회사 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
US10114448B2 (en) * 2014-07-02 2018-10-30 Intel Corporation Autonomous C-state algorithm and computational engine alignment for improved processor power efficiency
US9600392B2 (en) 2014-08-11 2017-03-21 International Business Machines Corporation Tracking pipelined activity during off-core memory accesses to evaluate the impact of processor core frequency changes
JP6418056B2 (ja) 2015-05-01 2018-11-07 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10102031B2 (en) * 2015-05-29 2018-10-16 Qualcomm Incorporated Bandwidth/resource management for multithreaded processors

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS593651A (ja) 1982-06-30 1984-01-10 Fujitsu Ltd フア−ムウエアによる性能測定システム
DE69233393T2 (de) * 1991-05-17 2005-08-11 Packard Bell NEC, Inc., Woodland Hills Leistungsmanagementsfunktion für einen rückwärtskompatiblen mikroprozessor
EP0632360A1 (en) * 1993-06-29 1995-01-04 Xerox Corporation Reducing computer power consumption by dynamic voltage and frequency variation
JPH08263166A (ja) * 1995-03-10 1996-10-11 United Microelectron Corp コンピュータの電力節減方法及びその装置
JPH0973338A (ja) * 1995-09-05 1997-03-18 Ricoh Co Ltd デジタル画像形成装置
US5745375A (en) * 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
JPH11143573A (ja) * 1997-11-10 1999-05-28 Fujitsu Ltd クロック供給方法及び情報処理装置
JP2000039937A (ja) * 1998-07-22 2000-02-08 Toshiba Corp コンピュータシステムおよびそのパワーセーブ制御方法
US6747984B1 (en) * 1998-12-18 2004-06-08 Lsi Logic Corporation Method and apparatus for transmitting Data
JP2001245195A (ja) * 2000-02-29 2001-09-07 Olympus Optical Co Ltd 電子カメラ
JP2002304232A (ja) * 2001-04-03 2002-10-18 Sony Corp 演算処理システム及び演算処理制御方法、並びに記憶媒体
JP3610930B2 (ja) * 2001-07-12 2005-01-19 株式会社デンソー オペレーティングシステム、プログラム、車両用電子制御装置
WO2003036722A1 (fr) 2001-10-26 2003-05-01 Fujitsu Limited Circuit integre a semi-conducteur, dispositif electronique dans lequel ce circuit integre est incorpore et procede d'economie d'energie
KR100479329B1 (ko) * 2001-12-24 2005-03-30 한국전자통신연구원 동작주파수 및 구동전압 변동을 이용한 mpeg 디코딩 방법
JP2004192256A (ja) * 2002-12-10 2004-07-08 Seiko Epson Corp ネットワークコントローラ
US7299370B2 (en) 2003-06-10 2007-11-20 Intel Corporation Method and apparatus for improved reliability and reduced power in a processor by automatic voltage control during processor idle states
KR101136036B1 (ko) * 2003-12-24 2012-04-18 삼성전자주식회사 유휴 모드에서의 전력 소모가 감소된 프로세서 시스템 및그 방법
US7698575B2 (en) * 2004-03-30 2010-04-13 Intel Corporation Managing power consumption by requesting an adjustment to an operating point of a processor
JP3915007B2 (ja) * 2004-05-28 2007-05-16 ノキア コーポレイション ネットワークシステム
KR100716730B1 (ko) * 2004-06-11 2007-05-14 삼성전자주식회사 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치
US7761874B2 (en) 2004-08-13 2010-07-20 Intel Corporation Managing processing system power and performance based on utilization trends
US7711966B2 (en) 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
JP2006227849A (ja) * 2005-02-17 2006-08-31 Fuji Xerox Co Ltd 情報処理装置
US20060275934A1 (en) * 2005-06-03 2006-12-07 William Pohl Management of computer processes
KR100731983B1 (ko) * 2005-12-29 2007-06-25 전자부품연구원 저전력 무선 디바이스 프로세서용 하드와이어드 스케줄러및 스케줄링 방법
US7484110B2 (en) * 2006-03-16 2009-01-27 Microsoft Corporation Adaptive power management
TW200825705A (en) 2006-04-26 2008-06-16 Nxp Bv Method and system for power-state transition controllers
US20080147357A1 (en) * 2006-12-15 2008-06-19 Iintrinisyc Software International System and method of assessing performance of a processor
US7783906B2 (en) * 2007-02-15 2010-08-24 International Business Machines Corporation Maximum power usage setting for computing device
US8739162B2 (en) * 2007-04-27 2014-05-27 Hewlett-Packard Development Company, L.P. Accurate measurement of multithreaded processor core utilization and logical processor utilization
US20090049314A1 (en) * 2007-08-13 2009-02-19 Ali Taha Method and System for Dynamic Voltage and Frequency Scaling (DVFS)
US7643964B2 (en) * 2007-08-21 2010-01-05 Texas Instruments Incorporated Method, system and apparatus for measuring an idle value of a central processing unit
US7949888B2 (en) * 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing system
JP4875719B2 (ja) * 2009-02-02 2012-02-15 レノボ・シンガポール・プライベート・リミテッド Dc/dcコンバータおよび携帯式コンピュータ
US8909962B2 (en) * 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8700926B2 (en) * 2010-01-11 2014-04-15 Qualcomm Incorporated System and method of tuning a dynamic clock and voltage switching algorithm based on workload requests
US8671413B2 (en) * 2010-01-11 2014-03-11 Qualcomm Incorporated System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device

Also Published As

Publication number Publication date
US20110173471A1 (en) 2011-07-14
EP2524272B1 (en) 2017-10-25
CN102667669A (zh) 2012-09-12
KR101499303B1 (ko) 2015-03-05
US8370665B2 (en) 2013-02-05
WO2011085313A1 (en) 2011-07-14
JP5662478B2 (ja) 2015-01-28
EP2524272A1 (en) 2012-11-21
CN102667669B (zh) 2015-03-25
JP2013516710A (ja) 2013-05-13

Similar Documents

Publication Publication Date Title
EP2513746B1 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
KR101409141B1 (ko) 멀티코어 중앙 프로세싱 유닛에서의 복수의 코어들을 온도에 기초하여 동적으로 제어하는 시스템 및 방법
KR101499303B1 (ko) 중앙 처리 유닛 내의 데이터를 샘플링하는 시스템 및 방법
US8689037B2 (en) System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
KR101409055B1 (ko) 추론된 작업부하 병렬성에 기초하여 중앙 처리 장치 전력을 제어하는 시스템 및 방법
US8695008B2 (en) Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
EP2513747B1 (en) System and method for controlling central processing unit power with reduced frequency oscillations
KR101516859B1 (ko) 보장된 정상 상태 데드라인을 가진 중앙 처리 장치 전력을 제어하는 시스템 및 방법

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
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee