KR100468561B1 - 중앙처리장치의동작특성에따라컴퓨터의동작을제어하는방법및시스템 - Google Patents
중앙처리장치의동작특성에따라컴퓨터의동작을제어하는방법및시스템 Download PDFInfo
- Publication number
- KR100468561B1 KR100468561B1 KR1019970001270A KR19970001270A KR100468561B1 KR 100468561 B1 KR100468561 B1 KR 100468561B1 KR 1019970001270 A KR1019970001270 A KR 1019970001270A KR 19970001270 A KR19970001270 A KR 19970001270A KR 100468561 B1 KR100468561 B1 KR 100468561B1
- Authority
- KR
- South Korea
- Prior art keywords
- cpu
- setpoint
- interrupt condition
- dynamic operating
- operating characteristic
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3419—Recording 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/3423—Recording 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
감지된 CPU 동적 동작 특성을 제어하는 방법 및 시스템(130)은 CPU가 제1 클럭 속도로 동작하는 동안(134) 적어도 하나의 동적 CPU 동작 특성을 감지하는 단계 및 회로(140)를 포함한다. 시스템(130)은 적어도 하나의 감지된 CPU 동적 동작 특성에 의해, 적어도 하나의 동적 동작 특성에 관련되는 소정의 셋포인트에 대해 소정의 관계를 확립하는 셋포인트 인터럽트 조건이 존재하는지를 결정한다(144). 셋포인트 인터럽트 조건이 존재하는 경우에, 회로 및 명령은 제1 클럭 속도에 대한 클럭 속도를 제어한다(140). 셋포인트 인터럽트 조건이 존재하지 않는 경우에, 회로 및 명령은 인터럽트 조건을 결정하고 클럭 속도를 제어하는 상기 단계들을 반복한다. 이 방법 및 시스템(130)은 또한 CPU가 계산 제약 상태에 있는지를 결정한다(142). 실시간 절전 장치 및 방법(20)과 관련한 이 동작은 본 발명의 특히 매력적인 특징이다.
Description
본 발명은 실시간 컴퓨터 중앙 처리 장치(CPU)의 제어에 관한 것이며, 특히 CPU 내의 실시간 활동 레벨에 기인하는 CPU 온도, 온도 변화 및 전력 소모 등의 감지된 동적 동작 감지 특성들에 기초하여 중앙 처리 장치(CPU)의 클럭 속도를 조절하기 위한 장치 및 방법에 관한 것이다.
퍼스널 컴퓨터 산업의 초기 개발 단계에서는 운반이 가능한 또는 휴대형 컴퓨터가 매우 인기가 있었다. 초기의 휴대형 컴퓨터는 대량의 전원을 사용하고, 실제로 소형의 데스크톱 퍼스널 컴퓨터를 나타낸다. 그러나, 오늘날 이용되는 휴대형 컴퓨터는 데스크톱 퍼스널 컴퓨터보다 소형 경량이며 사용자가 데스크톱 컴퓨터에서 사용되는 동일한 소프트웨어를 사용하는 것을 허용한다.
제1 세대의 "휴대형" 컴퓨터는 벽면의 교류 전원에 의해서만 동작한다. 보다 최근에는, 즉 차세대의 퍼스널 컴퓨터들은 배터리 전원을 사용하게 됨으로써 진실로 휴대성을 갖게 되었다. 휴대성의 개선 정도는 디스플레이 기술, 디스크 저장 용량, 및 부품 중량 및 스페이스 기술의 최근의 발달 과정의 덕택이다.
이러한 개선이 휴대형 컴퓨터의 크기 감소에 도움을 주긴 하지만, 동작에 있어서는 여전히 한계가 남아 있다. 예를 들면, 오늘날의 휴대형 컴퓨터가 실행하는 소프트웨어는 일반적으로 데스크톱 퍼스널 컴퓨터가 실행하는 것과 동일하다. 그래서, 휴대형 컴퓨터는 배터리 구동식 휴대형 컴퓨터에 특유의 기능적 한계 및 고려사항에 관계없이 데스크톱 컴퓨터의 모든 기능을 제공해야 한다. 한편, 휴대형 컴퓨터는 데스크톱 컴퓨터와 동일한 데이타 흐름 속도를 갖고 있지만, 한편으로는 짧은 시간 주기 동안 제한된 전력량만을 사용할 수 있고 데스크톱 컴퓨터보다 열 방출 용량이 더 제한될 수 있다. 오늘날의 휴대형 컴퓨터는 자신이 동작하는 소프트웨어의 상이한 플랫폼들을 위한 특수한 시설을 만들지 못한다. 운영 시스템(예를 들면, MS-DOS), 기본 입력/출력 시스템(BIOS) 소프트웨어 및 제3자 응용 소프트웨어는 기본적으로 휴대형 및 데스크톱 컴퓨터 양자에 대하여 동일하다. 이것은 특히 소프트웨어 시스템이 CPU의 다른 동적 동작 특성들을 처리하는 방식과도 일치한다.
소프트웨어 엔지니어 및 프로그래머가 보다 고도의 기능적 소프트웨어 시스템을 개발함에 따라, 데스크톱 컴퓨터는 필수적으로 모든 시스템 실행 분야에 향상된 실행 능력을 계속 제공한다. 고속으로 연산 가능한 CPU의 도입으로부터 메모리의 증가 및 고속의 고성능 디스크 드라이브에 이르기까지, 데스크톱 시스템의 동작 능력을 위한 요구가 급속히 증가하고 있다. 휴대형 컴퓨터 제작자들은 이들 요구에 보조를 맞추는 수밖에는 거의 선택의 여지가 없다.
그러나, 오늘날까지 휴대형 컴퓨터는 A/C 전력을 이용하거나 대형이고 중량이 나가는 배터리에 의해서만 작동되었다. 데스크톱 컴퓨터 및 새로운 소프트웨어의 성능 요건에 뒤지지 않기 위해서 일부 휴대형 컴퓨터는 값비싼 부품을 사용하여 전력 요건을 삭감한다. 이렇게 하더라도, 컴퓨터가 사용하는 중량이 나가는 배터리는 장시간 동안 전력을 제공하지 못하기 일쑤이다. 즉, 종래의 휴대형 컴퓨터의 사용자는 제3자 소프트웨어 시스템이 예상하는 성능을 갖도록 하기 위해, 벽면 전원 구동식 작동이나 매우 짧은 기간의 배터리 작동에 만족해야 했다.
절전형으로 하여 배터리의 동작을 보다 지속적으로 하고자 하는 휴대형 컴퓨터를 설계하고자 하는 시도로서, 일부 휴대형 컴퓨터 전력 시스템은 사용자가 컴퓨터를 사용하고 있지 않는 동안에 휴대형 컴퓨터의 전력 소모를 감소시킨다. 다른 휴대형 컴퓨터 디자이너들은 키보드가 사용되지 않는 동안 컴퓨터 디스플레이를 턴오프함으로써 전력을 절약한다. 이들 시스템들은 절전에 도움을 주긴 하지만, 컴퓨터 동작을 방해하거나 또는 컴퓨터 내에 최대량의 전력 드레인(power drain)이 발생할 때는 절전에 도움이 되지 않기 때문에, 어느 하나도 실용적이지 못하다. 오늘날까지, 휴대형 컴퓨터용의 어떤 절전 시스템도 오퍼레이터가 중요한 작업을 위해 컴퓨터를 사용하는 동안 절전을 행하지 못하고 있다.
그러나, 이것은 휴대형 컴퓨터용 전원 시스템만의 문제점은 아니다. 오늘날의 휴대형 컴퓨터 시스템 내에는 CPU의 동적 동작 특성에 부합하는 지능적 시스템이 없다. CPU의 동적 동작 특성은 CPU 온도, 온도 변화, 전력 소모 등을 포함하여 다양한 특성을 포함할 수 있다. 배터리 전력의 소모를 관리하거나 또는 최적으로 사용하게 하는 방법 또는 시스템이 존재하지 않는다. 컴퓨터에 집중된 명령에 응답하여 CPU의 신속한 동작 및 조밀한 전자 회로의 온도를 적절하게 감시 및 관리하는 방법 또는 시스템이 존재하지 않는다. 게다가, CPU가 그의 입력/출력 회로와 실제로 분리되어 있을 때 CPU의 동적 동작 특성으로부터 바람직하지 못한 영향이 발생되지 않도록 보장하는 방법 또는 시스템이 존재하지 않는다. 발생할 수 있는 바람직하지 못한 상황 또는 영향의 형태는, CPU가 어떠한 입력/출력 기능도 포함하지 않는 다수의 명령 세트를 실행했을 때 과도하게 전력을 소모하거나 또는 과도한 온도에 도달하게 되는 경우를 포함한다.
<발명의 요약>
CPU 내의 활동 레벨을 예상하고 그 예상치를 사용하여 CPU의 동적 동작 특성을 자동적으로 관리하는 장치 및 방법이 필요하다.
사용자가 자동적인 활동 레벨 예상치를 수정하고, 그 수정된 예상치를 사용하여 CPU의 동적 동작 특성을 자동적으로 관리하게 하는 피드백 방법 및 장치가 필요하다.
또한, CPU의 동적 동작 특성을 관리하는 것에 응답하여 클럭 속도의 실시간 감소 및 복원을 제공함으로써, 비활동 주기동안 CPU를 그 충분한 처리 속도(full processing rate)로 복구시키되, 소프트웨어 프로그램 및 사용자가 알 수 있는 방식으로 행해지게 하는 장치 및 방법이 필요하다.
또한, 동적 동작 특성에 기초하여 CPU가 그 활동 레벨에 따라 휴지(rest)되어야 하는지를 결정하고, 그 결정에 따라 하드웨어 선택기를 동작시키는 장치 및 방법이 필요하다. CPU가 휴지 또는 슬립(sleep)될 경우에 하드웨어 선택기는 슬립 클럭 레벨에서 오실레이션을 인가한다. CPU가 액티브 상태로 되어야 하는 경우 하드웨어 선택기가 고속 클럭 레벨에서 오실레이션을 인가한다.
본 발명은 오퍼레이터 및 현재 동작 중인 임의의 응용 소프트웨어 프로그램의 활동 상황뿐만 아니라 CPU의 동작 상태를 조사한다. 본 발명은 실시간으로 동작을 샘플링하여, 전력 소비, 컴퓨터 출력 및 열 조건은 물론, 임의의 다른 적절하고도 바람직한 동적 동작 특성을 관리하기 위해, CPU의 성능 레벨을 조정한다. 이러한 조정은 CPU 사이클 내에서 이루어지며, 그 성능에 대한 사용자의 지각이나 다른 소프트웨어 프로그램의 동작에는 영향을 주지 않는다.
바람직한 실시예에 따르면, 본 발명은 CPU의 동적 동작 감지 특성을 제어하는 방법 및 장치를 제공하고, 적어도 하나의 CPU의 동적 동작 특성을 감지하는 단계를 포함한다. 본 발명의 방법 및 장치는 동작 특성을 감지하는 시간에 CPU에 대한 클럭 속도를 감지한다. 본 발명이 행해지는 방법의 다음 단계는 적어도 하나의 동적 동작 특성과 관련된 소정의 셋포인트에 대한 소정의 관계를 설정하는 적어도 하나의 동적 동작 특성에 의해서 셋포인트 인터럽트 조건이 존재하는지를 결정하는 단계이다. 셋포인트 인터럽트 조건이 존재하는 경우에, 본 발명의 방법 및 장치는 CPU의 클럭 속도를 제어하고 소정의 셋포인트를 조정하거나, 또는 다른 방식으로 CPU의 동적 동작 특성을 관리한다. 한편, 셋포인트 인터럽트 조건이 존재하지 않는 경우에, 본 발명의 방법 및 장치는 CPU 동적 동작 특성을 효과적으로 관리하기 위해 상기 결정 및 제어 단계를 반복적으로 실시한다.
이에 의하여, 본 발명은 동작 시스템/BIOS의 제3자 소프트웨어용 오퍼레이터가 컴퓨터를 사용하고 있지 않을 때, 필요해질 때까지 CPU를 신속하게 턴 오프하거나 또는 서서히 속도를 줄여서 동작 특성을 보다 낮은 상태로 시프트시킬 수 있으므로 절전 효과를 거둘 수 있다. 본 발명은 감지된 성능에 영향을 끼치지 않고 필요할 때 CPU의 동작을 신속하게 완전히 복원한다. 이렇게 "슬로우 다운(Slow down)" 모드로부터 완전한 동작으로의 스위치 복원은 사용자가 요청하지 않아도 발생하고 그리고 대기 상태로 돌아오도록 컴퓨터를 기다리는 동안 컴퓨터의 동작에 있어서 어떠한 지연도 없이 일어난다.
본 발명이 제공하는 기술적 이점은 CPU의 동작 특성을 미리 관찰하거나 예측할 수 있는 능력에 있다. 다수의 명령을 카운트하여 이들의 형태를 결정함으로써, 본 발명은 입력/출력이 거의 또는 전혀 없어서 CPU의 슬로우 다운 또는 CPU에 대한 입력/출력 가능이 전혀 발생하지 않는 계산 제약(compute-bound) 동작 모드에 있는지를 결정한다. 이러한 사전 관찰은 계산 제약 모드 동안 하나 또는 그 이상의 CPU 동적 동작 특성이 관련된 소정의 셋포인트에 도달했는지를 측정하는 것을 가능하게 한다. 관련된 소정의 셋포인트에 도달한 경우에 본 발명은 클럭 속도를 조정하고 소정의 셋포인트를 수정하거나 또는 그렇지 않으면 특정한 소정의 셋포인트를 작성하는 나쁜 결과가 발생하지 않도록 CPU의 동작을 변경한다.
또한, 본 발명의 다른 기술적 이점은 하나의 CPU 컴퓨터의 예에서뿐만 아니라 다수 또는 병렬의 CPU 컴퓨터 시스템에서의 CPU의 동적 동작 특성의 변화를 수용할 수 있는 능력이 있다는 점이다. 실제로, 본 발명에서는 CPU의 동적 동작 특성에 대해서 발생하는 인터럽트 조건에 따라 하나 또는 그 이상의 CPU가 조정되는 동안 모든 CPU간에서 소망의 평균 클럭 속도를 유지하도록 병렬의 CPU 세트가 구성될 수 있다.
다음의 설명은 본 발명의 절전 특징에 관한 것이다. 그러나, 본 발명은 전력 보존 또는 전력 소모 외에 다른 CPU의 동적 동작 특성을 제어하는 방법 및 장치를 더 포함한다.
임의의 소정 시스템에서 컴퓨터 활동 주기를 조사하는 경우에 CPU 및 관련된 부품은 사용 퍼센티지를 갖는다. 예를 들어, 사용자가 키보드로부터 데이타를 입력하는 경우, 키스트로크들(keystrokes) 사이의 시간은 CPU 사이클에 비하여 매우 길다. 이 시간 동안에 컴퓨터는 리포트를 프린팅하는 등의 많은 일을 행할 수 있다. 리포트를 프린팅하는 동안이라도, 시계/달력, 표시 배경 화면을 업데이트하는 등의 추가의 동작 시간이 여전히 존재한다. 그렇다 해도 CPU가 사용 중이 아닐 때는 항상 거의 여유 시간이 있다. 본 발명은 컴퓨터의 배터리의 수명을 연장시키는 실시간 절전을 도모하기 위해 이러한 여유 시간 동안 CPU를 턴 오프하거나 슬로우 다운하는 방법을 제공한다.
본 발명의 바람직한 실시예에 따르면, OS/2, UNIX, Windows™ 등의 다른 동작 시스템 및 애플 컴퓨터용의 다른 동작 시스템뿐만 아니라, MS-DOS 하에서 CPU 동적 동작 특성을 제어하기 위해서는 하드웨어와 소프트웨어의 결합이 필요하다. 본 실시예는 어떠한 시스템에라도 적용될 수 있기 때문에, 그 구현이 시스템마다 약간씩 달라질 수 있지만, 본 발명의 범위는 MS/DOS 또는 다른 특정한 운영 시스템에 제한되어서는 안된다는 점에 주목해야 한다.
본 발명의 바람직한 실시예에 따라서, 컴퓨터 시스템의 부품을 슬로우 다운하거나 중단시키면, 제어 또는 변화량이 시스템마다 다를 수는 있지만, 전력 소비가 감소되고, 동작 온도가 저하되거나 동적 동작 특성이 제어된다. 따라서, 본 발명에 따라서 클럭을 중단시키는 것은 (그러나 실현이 가능한 경우에 일부 CPU는 그 클럭을 중단시킬 수 없음) 클럭을 슬로우 다운시키는 것보다 전력 소모를 감소시킨다.
일반적으로, 초당 CPU 동작(또는 명령)의 수는 대략 CPU 클럭에 비례하는 것으로 간주될 수 있다.
편의상, 동일한 명령이 반복 실행되어 초당 명령 수가 일정한 것으로 가정하면, 다음과 같이 관계식을 작성할 수 있다.
여기서 Fq는 초당 명령 수를 나타내고, K1은 사이클당 명령 단위를 가진 값을 나타내며, ClK도 초당 사이클의 수를 나타낸다. 이렇듯, 개략적으로 말하며, 실행 속도는 CPU 클럭의 주파수와 관련하여 증가한다.
임의의 소정 순간에 컴퓨터가 사용하는 전력량은 CPU 클럭의 주파수와도 관련되어 있으므로 CPU의 실행 속도와도 관련되어 있다. 일반적으로, 다음의 식이 이러한 관계를 성립시킨다.
여기서 P는 와트로 나타낸 전력을 표시하고, K2는 와트 단위를 가진 일정한 값을 나타내며, K3은 와트-초/사이클의 수를 표시하는 정수이고, ClK는 CPU 클럭의 사이클/초와 같다. 따라서, 식(3)으로부터 CPU 클럭 주파수가 증가하면, 임의의 소정 시간에서 CPU가 소모하는 전력량도 증가하게 된다.
소정 시간 주기 T는 각 간격 동안 전력 P가 일정하도록 n 간격으로 분할될 수 있고, 전체 주기 동안 CPU가 소모하는 에너지량 E는 다음과 같이 표현될 수 있다.
또한, CPU 클럭, ClK가 2가지 상태, 즉 온(ON) 또는 오프(OFF) 상태만을 갖는다고 가정하자. 여기서, 온 상태는 CPU의 최대 주파수에서 CPU 클럭의 상태를 나타내는 반면에, 오프 상태는 CPU가 동작할 수 있는 최소 주파수에서의 클럭 상태를 나타낸다. 클럭을 정지시킬 수 있는 CPU에 있어서는, 최소 클럭 속도가 제로일 수 있음에 주목해야 한다. CPU 클럭이 항상 온(on)인 조건의 경우에, 이전의 식에서의 각 P(i)는 동일하며 전체 에너지는,
이다.
여기서, P(ON)는 클럭이 온 상태일 때 소모되는 전력을 나타내며, P(OFF)는 클럭이 오프일 때 사용되는 전력을 표시한다. 이것은 CPU의 동적 동작 특성을 제어하기 위한 조치가 취해지지 않는 컴퓨터의 최대 전력 소모량을 나타낸다. 간격 1 내지 4의 부분 동안 CPU 클럭이 오프 상태이면 각 간격은 2개의 전력 레벨을 포함할 수 있다. 클럭이 온 상태인 모든 시간 간격이 양 T(ON)으로 합산되면, 오프 간격은 T(OFF)로 합산되어 다음 식이 성립한다.
여기서, 주기 T 동안 CPU가 사용하는 에너지는 다음 방식으로 표현될 수 있다.
이들 조건하에서, CPU가 소모하는 총 에너지는 시간 간격 T(OFF)를 증가시킴으로써 감소될 수 있다. 따라서, 본 실시예는, 클럭이 오프 상태인 시간 주기를 제어함으로써 CPU가 사용하는 에너지량을 줄일 수 있다. 본 실시예는, 주기 T동안 T(OFF) 주기를 다수의 간격으로 분할함으로써 각 간격의 폭이 제로에 접근할수록 에너지 소비가 최대값에 접근하는 것을 명백히 보여준다. 결국, 에너지 소비는 T(OFF) 간격의 폭이 증가할수록 감소된다.
본 실시예는 E(max) 상태로부터 전체적인 에너지 소모비를 줄이는 것이지만, CPU가 정상적으로 동작하지 않는 주기와 "오프" 주기를 일치되도록 조절하면, 컴퓨터 시스템은 사용자가 성능의 감소를 인식하지 못하도록 동작한다. 본 실시예는 T(OFF) 간격을 CPU의 비활동 주기와 정렬시키기 위해, 도 1이 도시하고 있는 폐루프(10) 등의 폐루프를 사용해서 CPU의 활동 레벨 폭 T(OFF) 간격을 결정한다. 계속 도 1을 설명하면, CPU 활동 레벨은 단계(12)에서 결정된다. 이 레벨이 직전의 레벨보다 증가된 경우에, 본 발명이 T(OFF) 레벨을 감소시키는 단계(16)로 질문(query)(14)이 진행된다. 단계(16)의 프로세스는 CPU 활동 레벨을 결정하는 단계(12)로 진행한다. 한편, 본 발명은 CPU 활동 레벨이 직전의 결정 레벨보다 감소된 경우에, 단계(18)에서와 같이 T(OFF) 간격을 증가시키고 다시 CPU 활동 레벨을 결정하는 단계(12)로 진행한다. 이러한 방식으로, 폐루프(10)는 T(OFF) 간격을 계속해서 조정하여 CPU 활동 레벨을 일치시킨다.
임의의 동작 시스템에는 2개의 키 논리 포인트(key logic point), 즉 (1) 운영 시스템 내의 아이들(IDLE), 또는 "무동작(do nothing)" 루프와 (2) 통상적으로 응용 소프트웨어에 의해 요구되는 서비스를 받을 수 있는 운영 시스템 요구 채널이 존재한다. 본 실시예는 이들 논리 포인트에 논리를 일치시킴으로써 응용 소프트웨어가 작성하거나 또는 작성할 동작 요구 형태를 추정할 수 있게 하고 있다. 본 실시예는 이러한 형태의 정보에 의해 CPU 동적 동작 특성을 처리하기 위한 피드백 및 제어 처리를 달성하는 것이 가능하다. 예를 들면, 동작 요구의 형태를 알면, 절전 방식으로 동작시키고 슬라이스 주기(slice period)를 결정하기 시작하는 것이 가능해진다. 슬라이스 주기는 활동 레벨로 계산되는, T(ON) 대 T(OFF) 간격의 시간값이다.
본 실시예는 CPU의 활동 레벨을 결정하기 위해 가정을 한다. 본 실시예에서는, 서비스를 필요로 하는 소프트웨어 프로그램은 통상적으로 추가의 서비스를 필요로 하고, 서비스 요구들 간의 시간 주기는 컴퓨터 상에서 실행중인 임의의 응용 소프트웨어의 활동 레벨을 결정하여 전력 등의 CPU 동적 동작 특성을 제어하는 것은 물론, 절전을 위한 슬라이스 카운트를 제공하는 데에도 이용될 수 있는 것으로 가정한다.
예를 들면, 일단 본 실시예가 절전 슬라이스동안, 즉 T(OFF) 동안 CPU를 인터럽트하면, CPU는 인터럽트 소프트웨어로 벡터링(Vectoring)하기에 앞서 인터럽트된 루틴의 상태를 세이브(save)한다. 절전 소프트웨어가 상기 절전 슬라이스동안 동작되고 있었기 때문에, 본 실시예는 단순히 CPU 클럭을 모니터하여 절전 모드동안의 엑시트 조건(exit condition)의 존제 여부를 결정함으로써 T(OFF) 상태로부터 T(ON) 상태로 탈출하는 액티브 절전 루프로 제어를 되돌린다. 이어서 도 1과 관련하여 상술한 바와 같이 모니터된 활동 레벨에 따라 다음 절전 상태의 간격을 조정한다. 몇몇의 구성에서는, 하드웨어 논리에 의해 T(OFF)로부터의 자동 퇴장을 생성하여 T(ON) 간격동안 CPU 명령을 실행하기 위한 절전 루프로부터의 퇴장을 자동적으로 행하게 한다.
도 2a 내지 2b는 본 실시예의 액티브 파워 모니터 기능(20)을 보여주고 있다. 동작에 있어서, CPU는 CPU 판독 전용 메모리(ROM)가 기억하고 있는 프로그램을 통하거나 또는 랜덤 액세스 메모리(RAM)에 프로그램을 기억시키는 외부 장치로부터 액티브 파워 모니터 기능(20)을 인스톨한다. 일단 CPU가 액티브 파워 모니터 기능(20)을 로드하면, 액티브 파워 모니터 기능(20)의 프로세스는 시스템 인터럽트 초기화, 사용자 구성 셋업, 및 시스템/어플리케이션을 위한 특정 초기화의 단계를 행하는 INIT 단계(22)로 진행한다. IDLE 또는 "무동작" 기능을 위한 하드웨어 또는 소프트웨어 인터럽트는 도 2b에 보다 상세히 표시되어 있는 IDLE 분기(24)를 실행한다. CPU가 IDLE 또는 "무동작" 루프(즉, 동작 계획이 없음)로 들어가면, 이러한 유형의 인터럽트가 행해진다. 운영 시스템이나 I/O 서비스 요구로 인해, 또는 응용 프로그램이나 내부 운영 시스템 기능에 의해 발생되는 소프트웨어 또는 하드웨어 인터럽트는 도 2d에 보다 상세히 도시된 ACTIVITY 플로우 챠트의 ACTIVITY 분기(26)를 실행한다.
예를 들면, 프로그램은 디스크 I/O 기능, 판독, 프린트, 로드, 또는 다른 서비스에 대한 요구일 수 있다. 분기 선택에 관계없이, RETURN 벡터(21)는 처리 흐름을 CPU 운영 시스템으로 되돌린다. 바람직한 실시예에서, 도 2a에 보다 상세히 도시되어 있는 바와 같이, CPU가 액티브 파워 모니터 기능(20)을 프로그램을 통해서 ROM 내에 로드한 경우에는 INIT 분기(22)가 1회만 행해지고, CPU가 외부 장치의 RAM으로부터 모니터 기능(20)을 로드한 경우에는 전원 투입시마다 INIT 분기(22)가 실행된다. 액티브 파워 모니터 기능(20)의 INIT 분기(22)가 모니터 기능(20)을 전부 실행한 후에 CPU 작동 형태에 따라서 IDLE 분기(24) 또는 ACTIVITY 분기(26)의 분기 처리로 진행한다. 운영 시스템이 절전 모드로 들어갈 때마다, CPU 작동 형태에 따라 IDLE 분기(24) 또는 ACTIVITY 분기(26)가 선택된다. 즉, IDLE 분기(24)는 계획된 비동작 동안의 절전을 위해 선택되고, ACTIVITY 분기(26)는 CPU 동작동안 절전을 위해 선택된다.
INIT 분기(22)를 보다 자세히 고찰해보기 위해 계속해서 도 2a를 참조해 보면, 모든 시스템 인터럽트 및 변수들이 초기화된 후에, 루틴은 단계(30)에서 POWER_LEVEL 파라미터를 DEFAULT_LEVEL과 동일하게 설정한다. 사용자가 POWER_LEVEL을 위한 입력 제어를 갖는 운영 시스템에서는, 프로그램이 단계(32)에서 USER_LEVEL 파라미터가 선택되었는지를 체크한다. USER_LEVEL 파라미터가 제로(0)보다 작거나 MAXIMUM_LEVEL보다 크면, 시스템은 DEFAULT_LEVEL 파라미터값을 이용한다. 그렇지 않은 경우, INIT 분기(22)는 단계(34)로 진행하여, POWER_LEVEL 파라미터를 USER_LEVEL 파라미터와 동일하게 설정한다.
본 발명의 본 실시예에 따르면, INIT 분기(22)는 단계(36)에서 가변 IDLE_TICK를 제로(0)로 설정하고, 가변 ACTIVITY_TICK을 제로(0)로 설정한다. MS/DOS 구현하에서, IDLE_TICK 변수는 "무동작" 루프에서 발견된 인터럽트의 수를 나타낸다. ACTIVITY_TICK 변수는 활동 인터럽트가 유발한 인터럽트 수를 표시한다. 이어서, 인터럽트 수는 CPU 활동 레벨을 결정한다. 티크 카운트(tick count)는 다음 인터럽트를 위한 델타 시간 △Ti를 표시한다. IDLE_TICK는 하나의 티크로부터 다음 티크까지 이 주기를 중복 기입하는 소프트 인터럽트가 발생되지 않는 경우에는 일정한 델타 시간 △Ti이다. 즉, 소프트웨어 인터럽트는 인터럽트들 사이의 델타 시간을 재프로그램할 수 있을 것이다.
IDLE_TICK 및 ACTIVITY_TICK 변수를 제로로 설정한 후에, INIT 분기(28)는, INIT 분기(22)가 특정 시스템의 세부 사항에 알맞게 조정된 어플리케이션 특정의 구성을 관리하는 SETUP 단계(38)로 진행하고, SETUP 단계(38)는 액티브 파워 모니터 기능(20)을 초기화한다. 다음에, INIT 분기(22)는 단계(40)에서 하드웨어로의 명령을 가진 인터럽트 I/O를 설치한다. 이로 인해, 하드웨어는 자신이 다음 인터럽트에서 제어를 담당하게 됨을 알게 된다. 그 다음에, INIT 분기(22)는 RETURN 벡터(28)를 통해 운영 시스템 또는 본래 액티브 파워 모니터(20)로 불리는 기능으로 탈출한다.
도 2b는 액티브 파워 모니터 기능(20)의 IDLE 분기(24)를 더 상세히 나타내고 있다. CPU의 계획된 비활동 기간에 응답하여, 액티브 파워 모니터 기능(20)은 먼저 활동 인터럽트(A)가 현재 비지(busy)인지를 판정하여 IDLE(아이들) 분기(24)로의 엔트리(entry)가 허용되는지를 체크한다. 질문(42) 테스트시에 파라미터 BUSY_A가 리엔트리(re-entry) 플래그인 BUSY_FLAG 값과 동일한 경우, 이것은 CPU가 비지 상태이며 현재 슬립 상태로 될 수 없음을 의미한다. 그러므로, 액티브 파워 모니터 기능(20)은 즉시 RETURN I 단계(44)로 진행되어 루틴을 퇴장한다. RETURN I 단계(44)는 정상 처리를 위해 이전의 운영 시스템 IDLE 벡터 인터럽트에 간접(indirect) 벡터를 제공한다. CPU는 액티브 모니터 기능(20)으로 들어가기 전에 간접(indirection) 벡터를 저장한다. 다시 말해, RETURN I 단계(44)는 가장 최근에 연계된 벡터의 인터럽트 리턴을 유발한다.
질문(42)이 BUSY_A 인터럽트 플래그가 비지 상태가 아니라고 판정하는 경우, 액티브 파워 모니터 기능(20)은 단계(46)에서 BUSY_IDLE 플래그가 BUSY_FLAG와 동일한지를 체크한다. 체크의 결과가 긍정인 경우, 이것은 액티브 파워 모니터 기능(20)이 이미 IDLE 분기(24)에 있으므로 CPU 인터럽트가 없어야 함을 나타낸다. BUSY_IDLE이 BUSY_FLAG와 동일하다면, IDLE 분기(24)의 처리 흐름은 단계(44)로 갈 것이다.
그러나, BUSY_A 리엔트리 플래그와 BUSY_I 리엔트리 플래그 모두가 설정되지 않는 경우, IDLE 분기(24)는 단계(48)에서 리엔트리 보호를 위한 BUSY_I 플래그를 설정한다. 즉, BUSY_I는 BUSY_FLAG값과 동일하게 설정된다. 단계(50)에서, IDLE_TICK 변수는 하나 증가된다. IDLE_TICK 변수는 T(OFF)의 간격 이전의 T(ON)의 수가 된다. IDLE 인터럽트 및 SETUP 인터럽트의 수와, CPU 활동 레벨이 IDLE_TICK의 값을 결정한다. IDLE_TICK 변수는 하나 증가되어서 이벤트의 평활화(smoothing)를 가능하게 한다. 이것은, 평활화를 제어하기 위한 CRITICAL I/O의 활동을 허용한다.
단계(52)에서, 액티브 파워 모니터 기능(20)은 IDLE_TICK 변수가 소정의 상수값인 IDLE_MSXTICKS과 같은지를 체크한다. IDLE_MAXTICKS은 INIT 분기(38)의 셋업 단계(38)가 초기화하고 주어진 CPU에 대해 고정되는 상수들중 하나이다. 본 실시예에서, 상수 파라미터 IDLE_MAXTICKS은 활동 레벨의 자기 동조(self-tuning)를 허용한다. 변수 IDLE_TICK이 상수 IDLE_MAXTICKS과 동일하지 않은 경우, IDLE 분기(24)는 단계(54)에서 BUSY_I 플래그를 클리어하고 RETURN I 간접 IDLE 분기(24)의 흐름을 벡터(44)로 되돌리는 것에 의해 처리 흐름을 빠져나간다. 그러나, IDLE_TICK 변수가 IDLE_MAXTICKS과 동일하다면, 단계(56)에서 IDLE_TICK 변수는 IDLE_START_TICKS 상수(제로이거나 제로가 아닌)와 같아진다. 일반적으로, 특정한 CPU가 자신의 클럭을 중단시키고서도 적절한 기능을 가질 수 있다면, IDLE_START_TICKS은 제로가 될 것이다. 그렇지 않다면, IDLE_START_TICKS은 주어진 CPU에 대해 적합한 소정의 값을 갖는다. 상기의 단계는 액티브 파워 모니터 기능(20)이 슬립 기능의 휴지를 얼마나 자주 수행할지를 지정하는 것에 의해 본 실시예의 자기 동조 상태를 결정한다. 본 실시예는 IDLE_START_TICKS이 IDLE_MAXTICKS에서 1을 뺀 것과 동일해지도록 설정하는 것에 의해 본 발명의 실시예는 연속적인 T(OFF) 간격을 달성할 수 있다. 질문(58)에서, IDLE 분기(24)는 POWER_LEVEL 파라미터의 레벨을 체크한다. 만약 POWER_LEVEL 파라미터가 제로이면, IDLE 분기(24)는 단계(54)에서 BUSY_I를 클리어하고 RETURN_I 간접 벡터(44)로 진행하여, 운영 시스템으로 제어를 복귀시킴으로써, 액티브 파워 모니터 기능(20)으로 들어가기 전에 본래 행하고 있던 것을 계속할 수 있게 한다.
그러나, 질문(60)에서 POWER_LEVEL 파라미터의 값이 제로가 아닌 경우, IDLE 분기(24)는 인터럽트 마스크가 제자리에 있는지를 판정한다. 시스템/어플리케이션 소프트웨어는 INTERRUPT_MASK 변수를 설정하고 인터럽트가 액티브 파워 모니터 기능(20)에 이용 가능한지를 판정한다. 질문(60)이 인터럽트가 NOT_AVAILABLE인 것으로 판정하는 경우, IDLE 분기(24)는 BUSY_I 리엔트리 플래그를 클리어하고 제어를 운영 시스템으로 복귀시켜, CPU가 액티브 파워 모니터 기능(20)으로 들어가기 전에 본래 행하고 있던 것을 계속할 수 있게 한다. 어플리케이션 소프트웨어뿐만 아니라 운영 시스템도 인터럽트 마스크가 NOT_AVAILABLE값 또는 플래그와 동일하도록 설정하는 것에 의해 연속적인 T(ON) 상태를 생성하도록 T(ON) 간격을 설정할 수 있다.
인터럽트가 AVAILABLE일 시에, 액티브 파워 모니터 기능(20)은 하나의 T(OFF) 기간동안 하드웨어 상태가 설정되는 것을 완전하게 실행하는 SAVE POWER(저장 파워) 서브루틴(subroutine)(62)으로 진행한다. 예를 들어, 바람직한 실시예에서, 가능한 최장 간격은 18msec일 수 있으며, 이것은 실시간 클럭으로부터의 두개의 티크나 인터럽트들 사이에서 가장 긴 시간이다. SAVE POWER 서브루틴(62) 동안, CPU 클럭은 슬립 클럭 레벨로 하강한다.
일단 CRITICAL I/O 명령에 의해 T(ON) 간격이 강제로 시작하게 되면, IDLE 분기(24) 인터럽트는 부가적인 CRITICAL I/O 요구들을 대기하는 상태로 되는 경향이 있다. CPU가 CRITICAL I/O에 의해 비지 상태로 됨에 따라, 이용될 수 있는 T(OFF) 간격은 거의 없게 된다. 반대로, CRITICAL I/O 요구가 감소됨에 따라, 그들 사이의 시간 간격은 증가하여 더 많은 T(OFF) 간격이 이용될 수 있게 된다. IDLE 분기(24)는 활동 인터럽트로부터의 피드백을 기초로 CPU 활동 레벨이 하강할수록 더 많은 T(OFF) 간격이 제공되는 자기 동조 시스템을 제공한다.
도 2c는, 액티브 파워 모니터 기능(20)이 SAVE POWER 서브루틴(250)을 완료한 직후, 단계(54)에서 BUSY_I 리엔트리 플래그가 클리어되고, 제어가 RETURN I 벡터(44)를 통해 액티브 파워 모니터 기능(20)을 운영 시스템이 본래 요구했던 것으로 리턴하는 것을 도시하며, 그 관련 내용이 이하에 상세하게 기술된다.
보다 상세히 도 2c를 참조하면, SAVE POWER 서브루틴(62)을 도시한 플로우 챠트(80)가 있다. 액티브 파워 모니터 기능(20)은 단계(82)에서 I/O 하드웨어 고속 클럭을 결정한다. SAVE POWER 서브루틴(62)의 다음 단계(84)는 CURRENT_CLOCK_RATE를 관련 고속 클럭과 동일하게 설정하고, 그 값을 복수 레벨의 고속 클럭을 가지는 CPU에 저장한다. 이에 의해, 만약 특정한 CPU가 12MHz 및 6MHz의 고속 클럭을 가진다면, 액티브 파워 모니터 기능(20)은 자신이 전력을 감소시키기 전에 어떤 고속 클럭이 CPU를 제어하는지를 결정해야만 한다. 이로 인해, CPU가 대기 상태를 벗어나는(awakening) 때에 적당한 고속 클럭에 있도록 CPU를 재설정하는 것이 보장된다. 단계(84)에서, SAVE POWER 서브루틴은 SAVE_CLOCK_RATE 변수를 단계(82)에서 결정된 CURRENT_CLOCK_RATE 값과 동일하게 설정한다. 상기의 SAVE_CLOCK_RATE(84)는 CPU에 대한 고속 클럭이 단지 하나일 때에는 사용되지 않는다. 액티브 파워 모니터 기능(20)은 SLEEP CLOCK 단계(86)로 계속되는데, 이는 하드웨어 선택기(도 5에 도시된)로 펄스 기능(20)을 송신하여 클럭 주파수를 하강 또는 중단시키는 것에 의해 CPU 클럭을 슬립 상태로 한다. 상기의 I/O 포트 하드웨어 슬립 클럭은 정상적으로 채용된 CPU 클럭보다 훨씬 낮은 오실레이션(oscillation)이다.
상기의 관점에서, 두개의 이벤트 중 하나가 발생할 수 있다. 시스템/어플리케이션 인터럽트가 발생하거나 또는 실시간 클럭 인터럽트가 발생할 것이다. 시스템/어플리케이션 인터럽트(88)가 발생한다면, 액티브 파워 모니터 기능(20)은 인터럽트 루틴(90)으로 진행한다. SAVE POWER 루틴(62)은 가능한 빨리 인터럽트를 처리하고 단계(92)에서 인터럽트 I/O를 설치하고, 질문(94)으로 복귀하여 인터럽트가 존재하는지를 판정한다. 이 경우에서는 인터럽트가 있으므로, 단계(96)는 SAVE_CLOCK_RATE를 이용하여 고속 클럭이 CPU로 돌아가는지를 판정한다. SAVE POWER 서브루틴(62)에 대한 플로우 챠트(80)는 RETURN 벡터(98)로 종결된다. 그러나 만약, 질문(94)이 시스템/어플리케이션 인터럽트가 없다고 판정하면, SAVE POWER 서브루틴(62)은 질문(94)의 식별로서 실시간 클럭 인터럽트가 발생할 때까지 계속 기다린다. 이러한 인터럽트가 발생하면, SAVE POWER 서브루틴(62)은 저장된 SAVE_CLOCK_RATE로 CPU를 재설정시킨다. 슬립 클럭 속도가 정지 클럭 속도가 아닌 경우, 즉 슬립 클럭 속도가 제로가 아닌 경우, 제어는 느린 클럭으로 가고 SAVE POWER 서브루틴(62)은 질문(911) 및 단계(88) 내지 단계(92)를 통해 인터럽트 루프를 실행한다. 반면에, 제로 슬립 클럭 속도에 있을 시에 제어가 통과하는 경우, SAVE POWER 서브루틴(62)은 질문(94)및 단계(88) 내지 단계(92)를 포함하는 인터럽트 루프를, CPU 클럭이 SAVE_CLOCK_RATE(96)로 돌아가기 전에 단 한번 실행하고, 그 다음 처리 흐름은 RETURN 벡터(98)로 계속된다.
이제, 도 2d를 참조하면, 플로우 챠트(100)는 어플리케이션/시스템 활동 요구가 운영 시스템 서비스 요구 인터럽트를 통해 트리거하는 ACTIVITY 분기(26)에 대한 처리 흐름을 도시하고 있다. ACTIVITY 분기(26)는 리엔트리 보호로 시작한다. 액티브 파워 모니터 기능(20)은 단계(102)에서 BUSY_I 변수가 BUSY_FLAG 값으로 설정됐는지를 판정한다. 판정 결과가 긍정이라면, 이것은 액티브 파워 모니터 기능(20) 시스템이 이미 IDLE 분기(24)에 있고 인터럽트될 수 없다는 것을 의미한다. BUSY_I가 BUSY_FLAG와 동일한 경우, 액티브 파워 모니터 기능(20)은 제어 흐름에 의해 정상 처리에 대한 과거의 활동 벡터 인터럽트인 RETURN I 벡터(44)로 빠져나간다. RETURN I 벡터(44)는, 운영 시스템이 요구된 서비스를 수행한 후에 동작되는 인터럽트 벡터를 통해, CPU 동작을 정상 위치로 복귀시킨다.
BUSY_I 플래그 변수가 BUSY_FLAG와 동일하지 않다면, 이것은 액티브 파워 모니터 기능(20)이 IDLE 분기(22)를 액세스하지 않는다는 것을 의미한다. 액티브 파워 모니터 기능(20)은 질문(104)에서 BUSY_A 플래그와 BUSY_FLAG 값이 동일한지를 판정한다. 그 판정 결과가 긍정인 경우, ACTIVITY 분기(26)는 이 시점에서 제어를 컴퓨터 시스템으로 복귀시킨다. 이것은 ACTIVITY 분기(26)가 이미 사용중이어서 인터럽트될 수 없음을 의미한다. BUSY_A 플래그가 설정되지 않았다면, 즉 BUSY_A가 BUSY_FLAG와 동일하지 않다면, 액티브 파워 모니터 기능(20)은 단계(106)에서 BUSY_A 파라미터를 BUSY_FLAG값과 동일하게 설정하여, 실행중의 인터럽트를 방지한다. 질문(108)에서, ACTIVITY 분기(26)는 POWER_LEVEL 파라미터값을 결정한다. POWER_LEVEL 파라미터값이 제로인 경우, 액티브 파워 모니터 기능(20)은 우선 단계(110)에서 BUSY_A 리엔트리 플래그를 클리어한 후에 ACTIVITY 분기(26)를 빠져나간다. 그러나, POWER_LEVEL 파라미터가 제로가 아닌 경우, ACTIVITY 분기(26)는 다음에서 I/O 하드웨어의 CURRENT_CLOCK_RATE 파라미터값을 결정한다. 도 2c의 SAVE POWER 서브루틴의 단계(84)과 마찬가지로, 도 2d의 ACTIVITY 분기(26)의 단계(112)는, 주어진 CPU에 대해 복수 레벨의 고속 클럭이 존재하는 경우에 CURRENT_CLOCK_RATE 파라미터값을 사용한다. 복수 레벨의 고속 클럭이 존재하지 않는 경우에는, CURRENT_CLOCK_RATE 파라미터값은 항상 CPU 고속 클럭과 동일하다. 단계(112)에서 CURRENT_CLOCK_RATE 파라미터값을 결정한 후에, 단계(114)는 IDLE_TICK 파라미터값을 상수 START_TICKS과 동일하게 한다. 상기의 START_TICKS 상수는 미리 결정된 CURRENT_CLOCK_RATE에 대해 설정된다. 액티브 상태인 현재의 고속 클럭은 T(OFF) 간격을 설정한다.
ACTIVITY 분기(26)의 다음 단계는, 질문(116)에서 요구가 만들어졌는지를 판정하는 것이다. 요구(request)는 필요한 특정 유형의 서비스를 위해 컴퓨터 상에서 실행하는 어플리케이션 소프트웨어에 의한 입력이다. 질문(116)에서, ACTIVITY 분기(26)는 상기의 요구가 CRITICAL I/O인지를 판정한다. CRITICAL I/O는 T(ON)이 T(OFF)보다 더 커질 때까지 T(ON)을 계속 길게 한다. 상기의 요구가 CRITICAL I/O인 경우, 액티브 파워 모니터 기능(20)은 우선 단계(110)에서 BUSY_A 리엔트리 플래그를 클리어한 후에, ACTIVITY 분기(26)를 탈출한다. 반면에, 요구가 CRITICAL I/O가 아닌 경우, ACTIVITY 분기(26)는 단계(118)에서 ACTIVITY_TICK 파라미터를 하나 증가시키고, 처리 흐름은 ACTIVITY_TICK 파라미터값이 현재 ACTIVITY_MAXTICKS 상수값과 동일한지를 판정하는 질문(120)으로 계속된다. 질문(120)의 테스트는 CRITICAL I/O로부터의 평활화를 허용하고, 시스템이 후속하는 ACTIVITY_TICK T(ON) 간격동안 다른 CRITICAL I/O로부터 대기하게 한다. ACTIVITY_TICK 파라미터값이 ACTIVITY_MAXTICKS 파라미터 상수값과 동일하지 않다고 가정하면, ACTIVITY 분기(26) 처리 흐름은 단계(110)에서 BUSY_A 리엔트리 플래그를 클리어한 후에 RETURN I 벡터(44)로 진행한다. 반면에, 단계(122)에서 ACTIVITY_TICK이 ACTIVITY_MAXTICKS 상수값과 동일한 경우, ACTIVITY 분기(26)는 ACTIVITY_TICK 파라미터를 LEVEL_MAXTICKS 상수값으로 설정한다. ACTIVITY 분기(26)는 질문(108)이 결정한 특정 POWER LEVEL에 대한 LEVEL_MAXTICKS를 설정한다.
질문(124)에서, ACTIVITY 분기(26)는 인터럽트 마스크가 존재하는지를 판정한다. 시스템 어플리케이션 소프트웨어는 인터럽트 마스크를 설정한다. 인터럽트 마스크를 NOT_AVAILABLE 플래그값으로 설정하면, 이 시점에서 이용 가능한 인터럽트가 존재하지 않음을 의미하는 연속적인 T(ON) 상태가 생성된다. 상기의 예에서, ACTIVITY 분기(26)의 처리 흐름은 BUSY_A 리엔트리 플래그를 클리어하고 RETURN I 벡터(44)로 계속하기 위한 단계(110)로 진행한다. 그러나, 인터럽트 마스크가 AVAILABLE인 경우, ACTIVITY 분기(26)는 질문(126)에서 질문(116)이 확인한 요구가 SLOW I/O_INTERRUPT인지를 판정한다. SLOW I/O_INTERRUPT 요구는 I/O 디바이스가 "준비(ready)"될 때까지 지연될 수 있다. "make ready" 동작동안, 연속적인 T(OFF) 간격이 시작되고 절전이 계속될 수 있다. 따라서, 요구가 SLOW I/O_INTERRUPT가 아닌 경우, ACTIVITY 분기(26) 처리 흐름은 BUSY_A 리엔트리 플래그를 클리어하고 RETURN I 벡터(44)로 계속하기 위한 단계(110)로 진행한다. 그러나, 요구가 SLOW I/O_INTERRUPT이고 I/O 디바이스가 "준비"되기 전까지 시간이 존재하는 경우, ACTIVITY 분기(26)는 질문(128)에서 I/O 요구가 COMPLETE 상태인지를 판정한다. 그러므로, 본질적으로, 질문(128)은 연관된 I/O 디바이스가 준비되었는지를 판정한다. I/O 디바이스가 준비되지 않았다면, 액티브 파워 모니터 기능(20)은 T(OFF)를 확장시킨다. 이로 인해, CPU는 SLOW I/O 장치가 준비될 때까지 대기 또는 중단 상태에 있게 된다. 이 때, CPU는 절전할 시간을 갖게 된다. 따라서, ACTIVITY 분기(26)는 SAVE POWER 서브루틴(62)으로 진입하며, 이것은 도 2e와 관련하여 아래에 상세하게 기술된다. 질문(128)에서 I/O 요구가 COMPLETE인 것으로 판정되는 경우, BUSY_A 리엔트리 플래그를 클리어하고 RETURN I 벡터(44)로 계속하는 단계(110)로 진행하는 처리 흐름에 의해, 제어가 운영 체제로 복귀하게 된다.
본 발명의 실시예는 액티브 파워 모니터를 제공하는 것은 물론, CPU의 다른 동적 동작 특성들을 관리하기 위한 방법 및 시스템을 제공한다. 이러한 다른 동적 동작 특성들로는, 예를 들어 바람직하지 않은 전자기파의 방출, 또는 본 발명에 따른 반복 조정 후 CPU가 소정의 온도 대역 내에서의 계속 동작하지 못하는 것 등이 있을 수 있다. 특히, 본 실시예는, 도 3에 도시된 바와 같이, 도 2c의 SAVE POWER 서브루틴(62)과 마찬가지의 방식으로 사용자가 알 수 있도록 동작하는 온도 제어용 실시간 피드백 루프를 포함하는 동적 열 관리 방법 및 시스템을 제공한다.
도 3은 THERMAL MANAGEMENT 서브루틴(130)을 단계(132)로부터 시작하는 플로우 챠트로 나타내고 있다. THERMAL MANAGEMENT 서브루틴(130)을 실행하기 위하여, 액티브 파워 모니터 기능(20)은 관련 CPU 및 컴퓨터 시스템에 의한 전력 소모뿐만 아니라 CPU의 다른 동적 동작 특성들을 모니터할 수 있는 능력을 갖는 보다 범용적인 액티브 모니터 기능으로 수정될 수 있다. 따라서, 기본적으로, 액티브 파워 모니터 기능(20)이 IDLE 분기(24)와 ACTIVITY 분기(26)를 통해 SAVE POWER 서브루틴(62)을 호출할 수 있는 것과 마찬가지로, 더욱 범용적인 액티브 모니터 기능은, THERMAL MANAGEMENT 서브루틴(130)이 CPU 온도 제어 동작을 하게 하고자할 때, THERMAL MANAGEMENT 서브루틴(130)을 호출할 수 있게 된다. 그러나, 활동 레벨이 낮은 시점에서 SAVE POWER 서브루틴(62)을 호출하는 것과는 달리, 본 실시예는 온도 조건이 CPU의 열 한계에 도달하거나 도달할 가능성이 존재할 때 THERMAL MANAGEMENT 서브루틴(130)을 호출한다는 것이 중요한 차이점이다.
특히, 본 실시예의 액티브 모니터 기능은 BUSY_A 파라미터가 BUSY_FLAG 상수값과 동일한 경우 ACTIVITY 분기(26)에서 THERMAL MANAGEMENT 서브루틴(130)을 호출할 수 있다. 이 후, 처리 흐름은 THERMAL MANAGEMENT 서브루틴(130)에 도시된 바와 같이 진행된다.
보다 상세하게 도 3을 참조하면, THERMAL MANAGEMENT 서브루틴(130)의 초기화 단계가 단계(132)에 나타나 있다. THERMAL MANAGEMENT 서브루틴(130)은 단계(134)에서 CURRENT_CLOCK_RATE 파라미터를 위한 값을 결정한다. 다음 단계(136)는 CURRENT_CLOCK_RATE 파라미터를 관련 고속 클럭과 동일하게 설정하며, CPU가 복수 레벨 고속 클럭을 갖는 경우에는 상기 값을 저장한다. 따라서, 특정 CPU가 12MHz와 6MHz의 고속 클럭을 갖는 경우, 액티브 모니터 기능은 CPU의 초과 온도 또는 온도 변화 조건에 응답하기 전에 어떤 고속 클럭이 CPU를 제어하는지를 결정해야 한다. 이것은 CPU가 대기 상태를 벗어났을때 적합한 고속으로 동작할 수 있도록 한다. 단계(136)에서, THERMAL MANAGEMENT 서브루틴(130)은 SAVE_CLOCK_RATE 파라미터를 단계(134)에서 결정된 값으로 설정한다. 본 실시예에서, CPU에 단 하나의 고속 클럭만이 존재하는 경우에는 SAVE_CLOCK_RATE 단계(136)를 사용하지 않는 것이 바람직하다.
THERMAL MANAGEMENT 서브루틴(130)은 CPU가 처리할 명령들의 수를 계산하는 단계(138)로 이어진다. 본 실시예는 관련 컴퓨터 시스템의 ROM에 저장되는 검색 테이블을 포함할 수 있다. 검색 테이블은 입출력을 요구하는 명령들과 입출력 없이 CPU의 동작을 수반하는 명령들을 구분한다.
COUNT_INSTRUCTION_LIST 단계(138)에 이어서, THERMAL_INTERRUPT 질문(140)의 파라미터값이 상수 THERMAL_SETPOINT와 동일한지의 여부가 질문(140)에서 결정된다. 이것은 열적(thermal) 인터럽트의 필요성을 나타낸다. 열적 인터럽트는 바람직하지 않은 온도 조건에 응답하여 CPU의 동작을 정지시키거나 변경하기 위한 인터럽트일 수 있다. THERMAL_INTERRUPT 파라미터값이 THERMAL_SETPOINT 값과 동일하지 않은 경우, THERMAL MANAGEMENT 서브루틴(130)의 처리 흐름은 COMPUTE BOUND 서브루틴(142)으로 이어진다. 한편, THERMAL_INTERRUPT가 THERMAL_SETPOINT와 동일한 경우, 처리 흐름은 단계(144)로 진행되고, 여기에서 CPU 클럭은 더 낮은 SLEEP CLOCK 속도로 시프트된다. 처리 흐름은 SLEEP CLOCK 속도 단계(144)로부터 질문(146)으로 이동하여, 여기에서는 처리 흐름이 THERMAL MANAGEMENT 서브루틴(132)을 빠져나갔는지를 테스트한다. 처리 흐름이 THERMAL MANAGEMENT 서브루틴(132)을 탈출하지 않은 경우, 처리 흐름은 질문(140)으로 복귀하여 열적 인터럽트 상태가 존재하는가를 계속 테스트한다.
CPU가 THERMAL MANAGEMENT 서브루틴(132)을 탈출한 경우, 질문(146)은 처리 흐름을 RETURN 벡터(148)로 이동시킨다. 이로 인해, 처리 흐름은 상기 액티브 모니터 기능으로 복귀한다. 이것은 액티브 모니터 기능이 도 2b의 IDLE 분기(22)로 진행하는 것과 같은 다양한 이유로 인해 발생할 수 있다. 열적 인터럽트 상태가 존재하는 한, THERMAL MANAGEMENT 서브루틴(130)은 CPU를 단계(144)의 더 낮은 SLEEP CLOCK 속도로 동작시킨다.
THERMAL MANAGEMENT 서브루틴(132)이 처리 흐름을 COMPUTE BOUND 서브루틴(142)으로 진행시키는 경우, 도 4의 COMPUTE BOUND 서브루틴 플로우 챠트(150)에 도시된 것과 같은 처리 흐름이 발생한다. 처리 흐름은 COMPUTE BOUND 서브루틴 단계(142)로부터 시작하여, CPU가 계산 제약 상태(compute bound state)에 있는가를 테스트하는 질문(152)으로 진행된다. CPU가 계산 제약 상태에 있지 않은 경우, 처리 흐름은 RETURN 벡터(154)로 진행된다. RETURN 벡터(154)는 THERMAL MANAGEMENT 서브루틴(130) 처리 흐름을 THERMAL_INTERRUPT 질문(140)으로 되돌아가게 한다(도 3 참조).
CPU가 계산 제약 상태에 있는 경우, COMPUTE BOUND 서브루틴(142)의 처리 흐름은 질문(156)으로 진행한다.
본 발명이 제공하는 하나의 기술적인 장점은 CPU의 동작 특성들을 예견하거나 예상하는 능력에 있다. 본 실시예는, 명령들의 수를 카운트하고 그 형태를 결정함으로써, CPU가 입출력이 거의 또는 전혀 발생하지 않아 CPU의 저속화 및 입출력 동작이 발생하지 않게 되는 COMPUTE BOUND 동작 모드에 있는가를 결정한다. CPU가 계산 제약 상태에 있는가에 대한 결정은, COUNT_INSTRUCTION_LIST 단계 (138)에서 이루어지는 바와 같이, CPU가 실행할 명령들의 카운트로부터 도출된다. 본 실시예는 CPU가 실행할 명령들을 컴퓨터의 ROM에 저장된 검색 테이블의 요소들과 비교하기 위한 비교기를 포함한다. 검색 테이블은 I/O 기능을 포함하는 명령 유형과, I/O 기능은 갖지 않고 CPU의 처리 또는 연산 동작만을 수반하는 명령 유형의 특성화를 제공해 준다. 본 실시예는, I/O 기능을 포함하는 간헐적인 I/O 명령을 갖지 않는, 순차적일 수 있는 연산 명령들의 수에 대해 소정의 임계값을 제공한다. I/O 기능을 갖지 않는 명령들의 수가 소정의 임계값을 초과하는 경우, 본 실시예는 CPU가 계산 제약 상태에 있는 것으로 간주한다.
COMPUTE BOUND 서브루틴(142)에서 CPU가 계산 제약 상태에 있는 것으로 결정된 직후, 처리 흐름은 질문(156)으로 이어져, 계산 제약 상태에 있는 동안 CPU가 열적 인터럽트 조건을 설정할 것인가를 테스트한다. 이것은, CPU가 열적 인터럽트에 도달하는 것을 방지하거나, 또는 필요한 경우에 열적 인터럽트를 새로운 열적 인터럽트 레벨로 조정하기 위하여 발생할 수 있다. 따라서, 질문(156)에서, COMPUTE BOUND 서브루틴(142)은 CPU가 계산 제약 상태 동안 열적 인터럽트에 도달할 것으로 판정하는 경우, 처리 흐름은 질문(158)으로 진행한다. 반면에, 계산 제약 상태동안 열적 인터럽트 상태가 발생하지 않을 것으로 판정되는 경우, 처리 흐름은 RETURN 벡터(154)로 진행하여 THERMAL MANAGEMENT 서브루틴(130)을 계속한다.
본 실시예는, 예를 들어 CPU가 계산 제약 상태 동안 열적 인터럽트 셋포인트를 필요로 하는 한편, 계산 제약 상태가 CPU에 악영향을 미칠만큼 충분히 길지 않은 경우, 상수 THERMAL_SETPOINT를 조정하는 능력을 제공한다. 즉, 통상의 조건에서, 열적 인터럽트 조건은, CPU가 상기 온도에 도달하는 경우에 CPU에 열적 손상이 발생하지 않도록 안전 마진이 보장되도록 설정될 수 있다. 예를 들어, CPU의 온도가 상수 THERMAL_SETPOINT에 도달하는 이유를 아는 경우에 조정될 수 있는, 유효 안전 마진이 존재할 수 있다. CPU의 계산 제약 상태에 대한 상승 온도율은 CPU의 온도를 공지된 예상 가능한 방법으로 상승시킨다.
COMPUTE BOUND 서브루틴(142)은, 계산 제약 상태 동안 CPU가 실행할 명령들의 수 및 형태에 관한 지식에 기초하여, CPU가 CPU 온도 설정값 THERMAL_SETPOINT에 도달하거나 초과하긴 하지만, 그 기간은 짧은 기간이 될 것으로 판정할 수 있다. COMPUTE BOUND 서브루틴(142)이 결정하는 짧은 기간은 CPU를 손상시키거나 파괴시키지 않을 수 있다. 이러한 상황을 수용하기 위하여, 질문(158)은 COMPUTE BOUND 서브루틴(145)이 현재의 THERMAL_SETPOINT 값을 조정해야 하는가를 테스트한다. 현재의 THERMAL_SETPOINT 상수값이 조정되어야 하는 경우, 처리 흐름은 THERMAL_SETPOINT 값을 조정하기 위한 단계(160)로 진행한다. 처리 흐름은 단계 (160)로부터 RETURN 벡터(154)로 계속된다. 한편, THERMAL_SETPOINT 값이 현재의 값으로 유지되어야 하는 경우, 처리 흐름은 질문(162)으로 진행하여, THERMAL_INTERRUPT 파라미터 값이 THERMAL_SETPOINT 상수값으로 설정되어야 하는가를 테스트한다.
THERMAL_INTERRUPT 파라미터 값이 THERMAL_SETPOINT 상수값으로 설정되어야 하는 경우, 처리 흐름은 단계(164)로 진행되며, 이때 COMPUTE BOUND 서브루틴(142)은 THERMAL_INTERRUPT 파라미터 값을 상기 상수값으로 설정한다. 그 다음, 처리 흐름은 RETURN 벡터(154)로 계속된다. 한편, 상기 파라미터 값이 THERMAL_SETPOINT 값과 동일하게 설정될 필요가 없는 경우, 처리 흐름은 단순히 RETURN 벡터(154)로 계속된다. 이 후, 처리 흐름은 RETURN 벡터(148)로 진행하여 THERMAL MANAGEMENT 서브루틴(142)으로 복귀한다.
셀프-튜닝 기능은 연속 피드백 루프들의 제어 시스템 내에 내재되어 있다. 본 발명의 소프트웨어는 CPU의 활동이 적어서 본 발명의 절전 양태가 활성화될 수 있는 때를 검출할 수 있다. 한편, 본 실시예는 CPU의 활동이 많아서 열 관리가 활성화될 수 있는 때를 결정한다. 일단, 절전 모니터가 활성화되면, 그 기간 내에서 최고속 CPU 클럭 동작으로의 신속한 복귀가 이루어져 컴퓨터의 성능을 저하시키지 않게 된다. 마찬가지로, 열적 셋포인트 조건이 없어져서 열 관리가 더 이상 필요하지 않게 되면, 최고속 CPU 클럭 동작으로의 신속한 복귀가 이루어져, 감지되는 열 관리의 효과를 최소화할 수 있다. 최고속 CPU 클럭 동작으로의 신속한 복귀를 이루기 위하여, 본 발명의 바람직한 실시예는 몇몇 관련 하드웨어를 사용한다.
이제, 본 발명에서 절전과 열 관리를 위해 사용되는 관련 하드웨어를 나타내는 단순화된 개략도를 도시하는 도 5를 참조한다. 액티브 파워 모니터 기능(20)은, CPU가 슬립 상태로 될 준비가 된 것으로 판정되면, I/O 포트(도시되지 않음)에 기록을 행하여 SLEEP 라인 상에 펄스를 발생시킨다. 이러한 SLEEP 라인상의 펄스의 상승 에지는 플립플롭(200)이 Q에 대해 하이(high) 신호를, Q-에 대해 로우(low) 신호를 클럭하도록 한다. 이로 인해, AND 게이트들(202, 204)과 OR 게이트(206)를 포함하는 AND/OR 논리는, SLEEP CLOCK 오실레이터(208)로부터 SLEEP CLOCK 라인을 이동하는 펄스를 선택하여 CPU CLOCK로 전송되어 사용되게 한다. SLEEP CLOCK 오실레이터(208)는 정상적인 CPU 활동 중에 사용되는 CPU 클럭보다 느린 클럭이다. 플립플롭(200)의 Q로부터의 하이 신호에 대해서는, SLEEP CLOCK 오실레이터(208)로부터의 펄스들과 함께 AND 게이트(202)를 사용하여 논리곱 연산이 행해지고, 플립플롭(200)의 Q-상으로의 결과와 함께 OR 게이트(206)를 사용하여 논리합 연산이 행해지며, 또한 HIGH SPEED CLOCK 오실레이터(210)에 의해 HIGH SPEED CLOCK 라인을 따라 생성된 펄스와 함께 AND 게이트(204)를 사용하여 논리곱 연산이 행해짐으로써, CPU CLOCK이 생성된다. I/O 포트가 SLEEP CLOCK을 지정할 때, CPU CLOCK은 SLEEP CLOCK 오실레이터(208)의 값과 동일하게 된다. 한편, 인터럽트가 발생하는 경우, 인터럽트값은 플립플롭(200)을 클리어하고, AND 게이트(202,204)와 OR 게이트(206)를 포함하는 AND/OR 선택기가 HIGH SPEED CLOCK값을 선택하게 한다. AND/OR 선택기는 CPU CLOCK 값을 HIGH SPEED CLOCK 오실레이터(210)로부터의 값으로 복귀시킨다. 따라서, CPU 상의 절전 동작 동안, 시스템 내의 임의의 인터럽트에 대한 검출은 그 인터럽트의 벡터화 및 처리에 앞서 CPU 동작을 최대 클럭 속도로 복원시킨다.
주어진 시스템을 위한 CPU들의 각각의 외부에 필요한 관련 하드웨어는 사용되는 운영 체제, CPU의 중단 가능 여부 등에 따라 달라질 수 있다. 그러나, 본 발명의 범위는, 다수의 유효한 휴대용 컴퓨터 시스템들에서 본 발명이 능동적으로 절전 또는 열 관리를 할 수 있게 하는 데에 필요한, 가능한 시스템의 사양 변경으로 제한되지 않는다. 예를 들어, 후에 논의될 2개의 실시예가 도 6 및 7에 도시되어 있다.
오늘날, 많은 VLSI 설계 방법은 CPU 속도의 클럭 스위칭을 허용하고 있다. 널(null) 클럭 또는 저속 클럭으로부터 고속 클럭 논리로 스위치하기 위한 논리는, 사용자가 키보드 커맨드에 의해 속도를 변화시킬 수 있게 하는 논리와 동일하다. 이러한 스위칭 논리와 함께 동작하는 액티브 모니터 기능의 추가된 논리는, 인터럽트 검출시의 고속 클럭으로의 즉각적인 복귀를 유발한다. 이러한 간단한 논리는 CPU를 인터럽트하기 위해 필요한 하드웨어 지원의 핵심이며, 이것에 의해 최고 속도로 인터럽트를 처리하는 것이 가능해진다.
MS-DOS 하에서 전력 소모 및 온도를 포함한 CPU의 동적 동작 특성들을 제어하기 위한 방법은, "무동작" 루프로의 액세스를 위한 MS-DOS IDLE 루프 트랩을 사용한다. IDLE 루프는, 아이들 또는 활동 레벨이 낮은 상태에 있으며 주어진 시점에서 시스템의 활동 레벨을 결정하는 데에 주의 깊은 검사를 필요로 하는 응용 소프트웨어 및 운영 체제 동작에 대해 특별한 액세스를 제공한다. 피드백 루프들은 활동 레벨을 결정하기 위한 인터럽트 21H 서비스 요구로부터 이용된다. 활동 레벨의 예상은 인터럽트 21H 요구에 의해 결정되며, 이로부터 본 발명은 CPU의 "슬리핑(sleeping)"(즉, 저속화 또는 정지)을 위한 슬라이스 주기를 설정한다. 추가적인 양태에서는, 사용자가 인터럽트 21H의 활동 레벨에 따라 슬라이스를 변경할 수 있다.
이제, 인텔 80386과 같은 시스템을 위한 슬립 하드웨어의 실제 구현을 개략적으로 나타내는 도 6을 참조한다. 첨언하면, 인텔 80386 CPU는 클럭을 중단시킬 수 없다. 어드레스 인에이블 버스(220) 및 어드레스 버스(222)가 디멀티플렉서(224)에 CPU 입력을 제공한다. 디멀티플렉서(224)의 출력은 OR 게이트(226, 228)로의 입력으로서 SLEEPCS를 따라 전송된다. OR 게이트들(226, 228)로의 다른 입력들은 각각 I/O 기록 제어 라인과 I/O 판독 제어 라인이다. NOR 게이트(230) 외에, 이러한 게이트들의 출력들은 포트를 복호화하기 위한 D 플립플롭(232)에 적용된다. "INTR"은 I/O 포트(주변 장치)로부터 NOR 게이트(230)로의 인터럽트 입력이며, 이것은 논리 하드웨어가 고속 클럭으로 다시 스위치되도록 한다. 그 다음, 플립플롭(232)의 출력이 OR 게이트(226)의 출력과 함께 3상태 버퍼(tristate buffer)(234)에 공급되어 포트 상에 있는 것을 판독할 수 있게 한다. 상기 모든 하드웨어는 판독/기록 I/O 포트(주변 장치)에 의해 절전 "슬립" 동작을 선택하는 데에 사용된다. 출력 "SLOW-"은 도 2의 "SLEEP"과 동일하며, 후에 논의될 플립플롭(236)으로의 입력이다.
SLEEP CLOCK 오실레이터(238)의 출력은 D 플립플롭(240, 242)에 의해 2개의 더 느린 클럭들로 분할된다. 도 6에 도시된 특정 실시예에서, 16MHz 슬립 클럭 오실레이터(238)는 4MHz 및 8MHz 클럭으로 분할된다. 점퍼(J1)는 어느 클럭이 "SLEEP CLOCK"인가를 선택한다.
이 특정 구현에서, 고속 클럭 오실레이터(244)는 32MHz 오실레이터이지만, 이 특정 속도는 본 발명의 필요 조건이 아니다. 32MHz 오실레이터는 저항(도시된 실시예에서는 33Ω)과 직렬로 배치되고, 이것은 두 개의 병렬 축전기들(10pF)과 직렬로 접속된다. 이러한 오실레이션의 결과는 D 플립플롭(246, 248)의 클럭들에 의존한다.
D 플립플롭들(236, 246, 248)은 동기 플립플롭들이다. D 플립플롭(236, 246)이 도 2a 내지 도 2d의 액티브 파워 모니터 기능(20)을 위한 간략화된 슬립 하드웨어에는 나타나 있지 않지만, 이러한 플립플롭들은 클럭 스위치가 클럭 에지 상에서만 발생하도록 한다. 도 6에 도시된 바와 같이, 도 5의 플립플롭(200)과 마찬가지로, 플립플롭(248)의 출력은 CPU가 슬립 상태에 있는지("FASTEN-") 또는 해제 상태에 있는지("SLOWEN-")의 여부에 따라 OR 게이트(250) 또는 OR 게이트(252)를 동작시킨다.
OR 게이트들(250, 252)과 AND 게이트(254)는 도 5의 AND/OR 선택기와 기능적으로 등가이다. 이들은 "SLOWCLK"(SLEEP CLOCK으로 알려진 저속 클럭) 또는 고속 클럭(수신 라인상에서 32MHz로 표시됨)을 선택한다. 본 실시예에서, 저속 클럭은 점퍼(J1)에 따라 4MHz 또는 8MHz로 되며, 고속 클럭은 32MHz이다. 여기서, ATUCLK 신호로 표시된 AND 게이트(254)의 출력은 CPU 클럭의 속도를 설정하며 도 5의 CPU CLOCK의 등가이다.
이제, 인텔 80286과 같은 시스템을 위한 슬립 하드웨어의 다른 실시예를 개략적으로 나타내는 도 7을 참조한다. 첨언하면, 인텔 80286은 클럭을 정지시킬 수 있다. 웨스턴 디지탈 FE3600 VLSI는 소정의 인터럽트 상에서 CPU를 웨이크(wake)시키는 인터럽트 게이팅을 제어하기 위한 특수 외부 장치 PAL 256를 이용한 속도 스위칭을 위해 사용된다. 본 발명의 소프트웨어 절전 양태를 이용하면, 인터럽트 허용의 모니터가 이루어진다. 이것은 인터럽트 후 다음 P(i)ΔTi 기간을 활성화시킨다.
CPU에 대한 임의의 인터럽트 요구는 시스템을 정상 동작 상태로 복귀시킨다. CPU에 대한 인터럽트 요구 INTRQ는, PAL이 WAKE_UP 신호를 FE3001로의 RESCPU 라인 상으로 발행하여, CPU와 DMA 클럭이 시스템을 정상 상태로 복구시킬 수 있게 한다. 이것은 도 5의 "INTERRUPT-"와 등가이다. INTERRUPT REQUEST는 상태 머신을 혼란시키는 것을 방지하기 위하여 동기화되어, 인터럽트 신호(INTDET)가 사이클이 활성인 동안만 검출되게 한다. RESCPU 신호의 상승 에지는 FE3001을 웨이크시키며, FE3001은 SLEEP MODE로부터 전체 시스템을 해제한다.
386SX를 위한 실시예는, 본 실시예의 CPU 동적 동작 특징을 수행하기 위한 외부 하드웨어 및 소프트웨어 루프에 있어서만 상이하다. 소프트웨어 루프는, 외부 하드웨어가 인터럽트의 벡터링 전에 인터럽트상의 고속 클럭으로 스위치하도록 설정한다. 절전 소프트웨어로의 복귀가 이루어지면, 액티브 모니터 기능은 고속 클럭 사이클을 검출하고 완전한 클럭 동작을 위해 하드웨어를 재설정한다.
OS/2를 위한 실시예는 낮은 우선 순위를 가진 배경 동작에서 실행되는 THREAD로서 프로그램된 "무동작" 루프를 사용한다. THREAD가 활성화되면, 인터럽트가 발생될 때까지 동작이 활성화되어, CPU를 최초의 클럭 속도로 복귀시킨다. 본 발명의 바람직한 실시예에서 CPU를 웨이크시키는 데에 인터럽트들이 사용되었지만, 시스템 내에서, 또는 시스템에 적용된 주기적인 어떠한 활동도 동일한 기능을 위해 사용될 수 있다.
본 발명의 절전 양태와 열 관리 양태 간의 차이는 CPU의 온도를 감지하기 위한 열 관리 양태의 부분에 관한 필요성에 있다. 이것은 THERMAL MANAGEMENT 서브루틴(132)에 온도 판독치를 제공하는 서미스터 또는 다른 직접 감지 기구에 의해 수행될 수 있다. 서미스터 또는 다른 온도 감지 장치는 공지 기술이다. 더욱이, 감지된 동작 특성들은 특정 응용에 중요한 CPU의 동적 동작 특성에 따라 다른 직접 판독 장치 또는 센서들에 의해 얻어질 수 있다.
요약하면, 본 발명은 감지된 CPU 동적 동작 특성을 제어하기 위한 방법을 제공하며, 적어도 하나의 CPU 동적 동작 특성을 감지하는 단계들을 포함한다. 본 발명은 적어도 하나의 동적 동작 특성을 감지할 때 CPU를 위한 클럭 속도를 감지한다. 본 발명의 방법 및 장치는, 적어도 하나의 CPU 동적 동작 특성에 의해 적어도 하나의 CPU 동적 동작 특성과 관련된 소정의 셋포인트에 관한 소정의 관계를 수립하는 셋포인트 인터럽트 조건이 존재하는 것으로 결정한다. 인터럽트 조건이 존재하는 경우, 본 발명은 감지된 클럭 속도에 대하여 클럭 속도를 제어하는 단계를 포함한다. 한편, 셋포인트 인터럽트 조건이 존재하지 않는 경우, 본 발명은 상기 결정 및 제어 단계들을 반복하는 단계 및 이를 위한 회로를 포함한다.
본 실시예의 또 하나의 매력적인 특징은 전력 소모 및 온도와 같은 감지된 CPU 동적 동작 특성들에 따라 단일 CPU를 제어할 수 있을 뿐만 아니라, 소정의 컴퓨터 시스템(들)을 지원하는 복수의 CPU들을 제어하는 능력이다. 예를 들어, 듀얼 CPU 컴퓨터 시스템에서, 본 발명은 컴퓨터 시스템 성능의 전반적인 희망 레벨을 유지하기 위하여 감지된 CPU 동적 동작 특성들을 제어하는 작업을 통합할 수 있다. 예를 들면, 양 CPU들에 적용된 COMPUTE BOUND 서브루틴(130)에 의해 결정되는 하나의 CPU가 계산 제약 모드에 있을 수 있다. 이중 CPU 컴퓨터의 다른 CPU는 계산 제약 모드에 있지 않을 수 있으며, 그 대신 입출력 함수들을 포함하는 많은 명령들을 실행할 수 있다. 계산 제약 CPU의 상태 발생 온도 카운트가 현재의 클럭 속도에서 CPU 온도를 증가시킨다는 것을 감지함으로써, 본 발명은 열적 셋포인트에 도달하는 것을 방지하기 위하여 계산 제약 CPU의 클럭을 저속화할 수 있다. 일정한 컴퓨터 시스템 성능이 요구되는지의 여부에 따라, 본 발명은 일정한 평균 또는 전반적인 클럭 속도를 유지하여 컴퓨터 시스템의 균일한 성능 수준을 달성하도록 다른 CPU의 클럭 속도를 증가시킬 수 있다.
본 발명의 복수 CPU 실시예의 하나의 양태를 설명하기 위하여, 도 8은 복수 CPU 시작 단계(282)로부터 시작하는 복수 CPU 플로우 챠트(280)를 나타낸다. 복수 CPU 시작 단계(282)는 먼저 질문(284)에서 둘 이상의 CPU를 제어할 필요가 있는지의 여부를 검사할 수 있다. 둘 이상의 CPU가 제어되어야 하는 경우, 처리 흐름은 질문(286)으로 진행한다. 그렇지 않은 경우, 처리 흐름은 RETURN 벡터(288)로 진행하여 CPU는 MULTIPLE CPU 서브루틴(280)을 실행하기 전에 존재했던 어떠한 동작으로도 복귀할 수 있게 된다.
질문(286)에서, MULTIPLE CPU 서브루틴(280)은 복수 CPU들의 등위 관리가 발생하는지의 여부를 검사한다. 발생하지 않는 경우, 처리 흐름은 RETURN 벡터(288)로 진행한다. 그렇지 않은 경우, 처리 흐름은 복수 CPU들의 각각의 제어를 지시하기 위한 벡터로서 이용되는 단계(290)로 진행한다. 감지된 CPU 동적 동작 특성들의 제어를 받는 각각의 CPU에 대해 처리 흐름은 액티브 모니터 서브루틴(292)으로 진행한다. 액티브 모니터 서브루틴(292)은 기본적으로 액티브 파워 모니터 기능(20), THERMAL MANAGEMENT 서브루틴(132)을 위한 모니터 기능과 같은 액티브 모니터 기능, 전력 보존과 열 관리를 등위화하는 모니터 기능, 또는 하나 이상의 감지된 CPU 동적 동작 특성들에 응답하여 CPU를 제어하는 다른 모니터 기능 또는 서브루틴과 등가일 수 있다.
MULTIPLE CPU 서브루틴(280)을 통한 처리 흐름이 각 CPU에 대해 계속될 때, 질문(294)에서 등위 CPU들 중 적어도 하나에 대한 셋포인트 인터럽트 조건이 존재하는지의 여부에 대한 검사가 이루어진다. 셋포인트 관련 인터럽트 조건이 존재하지 않는 경우, 처리 흐름은 질문(294)으로 복귀하여, 셋포인트 관련 인터럽트 조건의 존재에 대한 검사를 계속한다. 인터럽트 조건이 존재하는 경우, 처리 흐름은 질문(296)으로 진행하여 MULTIPLE CPU 서브루틴(280)이 영향을 받지 않는 CPU의 클럭 속도를 제어하거나 조정하는 것이 바람직한지 또는 의도되는지의 여부를 검사한다. 질문(296)으로부터, 영향을 받지 않는 CPU의 조정이 이루어지지 않는 경우, 처리 흐름은 RETURN 벡터(288)로 진행한다. 그렇지 않은 경우, 처리 흐름은 단계(298)로 진행하여, 영향을 받지 않는 CPU의 클럭 속도가 상수값을 유지하거나 바람직한 전반적인 컴퓨터 시스템 클럭 속도를 달성할 수 있도록 조정될 것이다.
본 발명의 바람직한 실시예의 몇몇 구성예가 도시되고 기술되었지만, 동 분야의 전문가들에 의해 여러 변형 및 대체 실시예가 이루어질 수 있을 것이다. 따라서, 본 발명은 첨부된 청구 범위에 의해서만 제한되는 것으로 의도된다.
도 1은 본 발명의 바람직한 실시예의 자기 동조 상태를 보여주는 플로우 챠트.
도 2a-2d는 본 발명의 실시예에서 사용되는 액티브 절전 모니터를 보여주는 플로우 챠트.
도 3은 본 발명이 사용하는 열 관리 방법의 간단한 플로우 챠트.
도 4는 본 발명이 사용하는 계산 제약(compute-bound) 결정 단계의 플로우 챠트.
도 5는 본 발명의 실시예에서 사용되는 액티브 절전 관련 하드웨어를 보여주는 간단한 개략도.
도 6은 본 발명의 일 실시예에 대한 슬립(sleep) 하드웨어의 개략도.
도 7은 본 발명의 다른 실시예에 대한 슬립 하드웨어의 개략도.
도 8은 본 발명의 또 다른 실시예의 다중 CPU의 동적 동작 특성 제어 기능의 플로우 챠트.
<도면의 주요 부분에 대한 부호의 설명>
(200) : 플립플롭
(202,204) : AND 게이트
(206) : OR 게이트
(208,210) : 오실레이터
Claims (26)
- 감지된 CPU의 동적 동작 특성들(dynamic operating characteristics)을 제어하는 방법에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 단계;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 관련된 소정의 셋포인트(setpoint)에 대해 소정의 관계를 확립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하는 단계;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 단계; 및(d) 상기 셋포인트 인터럽트 조건이 존재하지 않는 경우에, 상기 CPU가 계산 제약 상태(compute-bound state)에 있는지를 판정하고, 상기 CPU가 계산 제약 상태에 있는 경우에는 상기 계산 제약 상태동안 상기 인터럽트 조건이 존재할지를 더 판정하는 단계를 포함하는 제어 방법.
- 감지된 CPU의 동적 동작 특성을 제어하는 방법에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 단계;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 관련된 소정의 셋포인트에 대해 소정의 관계를 확립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하는 단계;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 단계;(d) 상기 셋포인트 인터럽트 조건이 존재하지 않는 경우에, 상기 CPU가 계산 제약 상태(compute-bound state)에 있는지를 판정하는 단계;(e) 상기 CPU가 계산 제약 상태에 있는 경우, 상기 계산 제약 상태동안 상기 인터럽트 조건 내에 상기 적어도 하나의 동적 동작 특성이 존재하는지를 판정하는 단계; 및(f) 상기 계산 제약 상태동안 상기 인터럽트 조건이 존재하는 경우, 상기 인터럽트 조건을 수정하는 단계를 포함하는 제어 방법.
- 감지된 CPU의 동적 동작 특성을 제어하는 방법에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 단계;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 관련된 소정의 셋포인트에 대해 소정의 관계를 확립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하는 단계;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 단계;(d) 상기 셋포인트 인터럽트 조건이 존재하지 않는 경우에, 상기 CPU가 계산 제약 상태에 있는지를 판정하는 단계; 및(e) 상기 CPU가 계산 제약 상태에 있는 경우, 상기 CPU가 상기 계산 제약 상태동안 실행해야 하는 계산 제약 명령어들의 양을 결정함으로써 상기 계산 제약 상태의 기간을 결정하는 단계를 포함하는 제어 방법.
- 감지된 CPU의 동적 동작 특성을 제어하는 방법에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 단계;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 관련된 소정의 셋포인트에 대해 소정의 관계를 확립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하는 단계;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 단계;(d) 상기 셋포인트 인터럽트 조건이 존재하지 않는 경우에, 상기 CPU가 계산 제약 상태에 있는지를 판정하고, 상기 CPU가 계산 제약 상태에 있는 경우, 상기 CPU가 상기 계산 제약 상태동안 실행해야 하는 계산 제약 명령어들의 양을 결정함으로써 상기 계산 제약 상태의 기간을 결정하는 단계; 및(e) 상기 계산 제약 상태동안 상기 인터럽트 조건이 존재할 경우, 상기 인터럽트 조건을 수정하는 단계를 포함하는 제어 방법.
- 감지된 CPU의 동적 동작 특성을 제어하는 방법에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 단계;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 관련된 소정의 셋포인트에 대해 소정의 관계를 확립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하는 단계;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 단계;(d) 상기 셋포인트 인터럽트 조건이 존재하지 않는 경우에, 상기 CPU가 계산 제약 상태에 있는지를 판정하는 단계;(e) 상기 CPU가 계산 제약 상태에 있는 경우, 상기 계산 제약 상태의 기간을 결정하는 단계; 및(f) 상기 계산 제약 상태동안 상기 인터럽트 조건이 존재하는 것을 방지하도록 상기 제1 클럭 속도를 더 수정하는 단계를 포함하는 제어 방법.
- 제1항에 있어서,상기 CPU가 절전 가능한지를 판정하는 단계; 및 상기 CPU가 절전 가능한 경우, 상기 인터럽트 조건의 존재 및 상기 절전으로부터 발생하는 제어 신호들에 따라, 상기 클럭 속도를 세이브된(saved) 클럭 속도에 대하여 제어하는 단계를 더 포함하는 제어 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,상기 CPU의 상기 적어도 하나의 CPU 동적 동작 특성을 감지하는 상기 단계는 서미스터 감지 소자를 이용하여 상기 CPU의 동작 온도를 감지하는 단계를 포함하는 제어 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,상기 소정의 관계 및 상기 소정의 셋포인트를 상기 컴퓨터의 메모리 위치에 저장하는 단계를 더 포함하는 제어 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,상기 소정의 관계 및 상기 소정의 셋포인트를 상기 컴퓨터의 메모리 위치에 저장하는 단계를 더 포함하며, 상기 메모리 위치는 레지스터를 포함하는 제어 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,상기 소정의 관계 및 상기 소정의 셋포인트를 상기 컴퓨터와 관련된 메모리 위치에 저장하는 단계를 더 포함하며, 상기 메모리 위치는 상기 CPU 이외의 회로를 포함하는 제어 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,상기 적어도 하나의 동적 동작 특성을 감지하는 상기 단계는 상기 CPU의 동작 온도를 감지하는 단계를 더 포함하고,상기 판정 단계는, 상기 CPU가 계산 제약 상태에 있는 기간동안, 상기 동작 온도가 소정의 온도 셋포인트에 접근하는지를 판정하는 단계를 포함하는 제어 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,상기 감지된 CPU의 동적 동작 특성들을 제어하는 방법은 CPU의 동적 열 특성들을 관리하는 방법을 포함하며,상기 적어도 하나의 동적 동작 특성을 감지하는 단계는 상기 CPU의 동작 온도를 감지하는 단계를 포함하고,상기 판정 단계는, 상기 동작 온도가 소정의 온도 셋포인트에 대하여 소정의 관계를 갖는 인터럽트 조건이 존재하는지를 판정하는 단계를 포함하는 제어 방법.
- 제12항에 있어서,상기 CPU 내에서의 실시간 절전과 감지된 동적 열 특성들의 제어가 통합된 방법을 더 포함하고,상기 실시간 절전 방법은, 상기 감지된 CPU 동적 열 특성들을 제어하는 상기 방법과 관련하여 동작하며,상기 CPU가 절전 가능한지를 판정하는 단계;상기 CPU가 절전 가능한 경우에, 상기 CPU의 현재 클럭 속도를 결정하는 단계;상기 CPU에 제공되는 상기 현재 클럭 속도를 감소 또는 중단시키도록 하드웨어 선택기에게 지시하는 단계;절전 인터럽트가 발생했는지를 판정하는 단계;상기 절전 인터럽트가 발생하지 않은 경우, 상기 단계를 반복하여 상기 절전 인터럽트가 발생할 때까지 상기 CPU가 상기 절전 모드로 유지되는 단계; 및상기 절전 인터럽트가 발생한 경우에, 상기 하드웨어 선택기에 상기 CPU에 대한 상기 결정된 현재 클럭 속도를 복원시키도록 지시하는 단계를 포함하는 제어 방법.
- 제13항에 있어서,상기 CPU에 제공되는 상기 현재 클럭 속도를 감소 또는 중단시키도록 하드웨어 선택기에게 지시하는 단계는,상기 하드웨어 선택기에 대한 통신선을 통해 절전 CPU 커맨드로 상기 하드웨어 선택기를 펄싱(pulsing)하는 단계;상기 절전 CPU 커맨드에 기초하여 상기 하드웨어 선택기에 의해 절전 클럭을 선택하는 단계; 및상기 절전 클럭으로부터의 펄스들을 상기 CPU에 전달하여 상기 CPU를 절전 모드로 두는 단계를 더 포함하는 제어 방법.
- 제13항에 있어서,컴퓨터 내의 중앙 처리 유닛(CPU)이 절전 가능한지를 판정하는 상기 단계는,상기 CPU가 이미 상기 절전 모드에 있는지를 체크하는 단계;상기 CPU가 아직 상기 절전 모드에 있지 않은 경우, 상기 CPU가 상기 절전 모드에 있기 전에 상기 CPU를 웨이크(wake)시키는 데에 가용한 절전 인터럽트들이 존재하지를 판정하는 단계; 및절전 인터럽트들이 가용한 경우, 상기 CPU가 상기 절전 모드에 들어가는 것을 방지하는 단계를 더 포함하는 제어 방법.
- 제13항에 있어서,컴퓨터 내의 중앙 처리 유닛(CPU)이 절전 가능한지를 판정하는 상기 단계는,상기 CPU가 요구를 수신했는지를 체크하는 단계;상기 CPU가 요구를 수신한 경우, 상기 요구가 임계 입력/출력(critical input/output)인지를 결정하는 단계;상기 요구가 임계 입력/출력인 경우, 상기 CPU가 상기 절전 모드에 들어가는 것을 방지하는 단계;상기 요구가 임계 입력/출력이 아닌 경우, 상기 CPU가 상기 절전 모드에 들어가기 전에 상기 CPU를 웨이크시키기는 데에 가용한 임의의 절전 인터럽트들이 있는지를 판정하는 단계;상기 CPU가 상기 절전 모드에 들어가는 것을 방지하는 단계;상기 요구가 I/O 장치가 준비될 때까지 지연을 갖는 입력/출력으로부터 나온 것인지를 판정하는 단계; 및상기 요구가 지연을 갖는 입력/출력으로부터 나온 것이 아닌 경우, 상기 CPU가 상기 절전 모드에 들어가는 것을 방지하는 단계를 더 포함하는 제어 방법.
- 감지된 CPU의 동적 동작 특성들을 제어하는 장치에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 감지 회로;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 연관된 소정의 셋포인트에 대해 소정의 관계를 확립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하도록 상기 CPU 상에서 동작하는 셋포인트 명령어들;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 제어 명령어들; 및(d) 상기 CPU가 계산 제약 상태에 있는지를 판정하고, 상기 CPU가 계산 제약 상태에 있는 경우, 상기 계산 제약 상태동안 상기 인터럽트 조건이 존재할지를 더 판정하는 계산 제약 결정 명령어들을 포함하는 제어 장치.
- 감지된 CPU의 동적 동작 특성을 제어하는 장치에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 감지 회로;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 연관된 소정의 셋포인트에 대해 소정의 관계가 성립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하도록 상기 CPU 상에서 동작하는 셋포인트 명령어들;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 제어 명령어들;(d) 상기 셋포인트 인터럽트 조건이 존재하지 않는 경우에, 상기 단계 (b)와 (c)를 반복하게 하는 반복 명령어들; 및(e) 상기 CPU가 계산 제약 상태에 있는지를 판정하는 계산 제약 결정 명령어들을 포함하며,상기 셋포인트 명령어들은, 상기 계산 제약 상태동안 상기 적어도 하나의 동적 동작 특성이 상기 인터럽트 조건 내에 존재할지를 판정하는 명령어들, 및 상기 계산 제약 상태동안 상기 인터럽트 조건이 존재하는 경우 상기 인터럽트 조건을 수정하는 수정 명령어들을 더 포함하는 제어 장치.
- 감지된 CPU의 동적 동작 특성을 제어하는 장치에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 감지 회로;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 연관된 소정의 셋포인트에 대해 소정의 관계가 성립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하도록 상기 CPU 상에서 동작하는 셋포인트 명령어들;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 제어 명령어들; 및(d) 상기 CPU가 계산 제약 상태에 있는지를 판정하고, 상기 CPU가 계산 제약 상태에 있는 경우, 상기 CPU가 상기 계산 제약 상태동안 실행해야 하는 계산 제약 명령어들의 양을 결정함으로써 상기 계산 제약 상태의 기간을 결정하는 계산 제약 결정 명령어들을 포함하는 제어 장치.
- 감지된 CPU의 동적 동작 특성을 제어하는 장치에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 감지 회로;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 관련된 소정의 셋포인트에 대해 소정의 관계를 확립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하도록 상기 CPU 상에서 동작하는 셋포인트 명령어들;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 제어 명령어들; 및(d) 상기 CPU가 계산 제약 상태에 있는지를 판정하고, 상기 CPU가 상기 계산 제약 상태동안 실행해야 하는 계산 제약 명령어들의 양을 결정함으로써 상기 계산 제약 상태의 기간을 결정하며, 또한 상기 계산 제약 상태동안 상기 인터럽트 조건이 존재할 경우, 상기 인터럽트 조건을 수정하는 계산 제약 결정 명령어들을 포함하는 제어 장치.
- 감지된 CPU의 동적 동작 특성들을 제어하는 장치에 있어서,(a) 컴퓨터 내의 제1 클럭 속도로 동작하는 중앙 처리 유닛(CPU)의 적어도 하나의 동적 동작 특성을 감지하는 감지 회로;(b) 상기 적어도 하나의 동적 동작 특성에 의해, 상기 적어도 하나의 동적 동작 특성과 관련된 소정의 셋포인트에 대해 소정의 관계를 확립하는 셋포인트 인터럽트 조건이 존재하는지를 판정하도록 상기 CPU 상에서 동작하는 셋포인트 명령어들;(c) 상기 셋포인트 인터럽트 조건이 존재하는 경우에, 상기 제1 클럭 속도를 수정하는 제어 명령어들; 및(d) 상기 CPU가 계산 제약 상태에 있는지를 판정하고, 상기 CPU가 계산 제약 상태에 있는 경우 상기 계산 제약 상태의 기간을 결정하고, 상기 계산 제약 상태 동안 상기 인터럽트 조건이 존재하는 것을 방지하도록 상기 제1 클럭 속도를 더 수정하는 계산 제약 결정 명령어들을 포함하는 제어 장치.
- 제17항 내지 제21항 중 어느 한 항에 있어서,CPU의 동적 열 특성들을 관리하는 관리 명령어들을 더 포함하며,상기 적어도 하나의 동적 동작 특성을 감지하는 동적 온도 감지 회로를 더 포함하는 상기 온도 감지 회로는, 상기 CPU의 동작 온도를 감지하는 단계를 포함하고,상기 셋포인트 명령어들은, 상기 동작 온도가 소정의 온도 셋포인트에 대하여 소정의 관계를 확립하는 인터럽트 조건이 존재하는지를 판정하는 명령어들을 더 포함하는 제어 장치.
- 제17항 내지 제21항 중 어느 한 항에 있어서,상기 감지 회로는 상기 CPU의 동작 온도를 감지하는 회로를 더 포함하고,상기 셋포인트 명령어들은, 상기 CPU가 계산 제약 상태에 있는 기간동안, 상기 동작 온도가 소정의 온도 셋포인트에 접근하는지를 판정하는 명령어들을 더 포함하는 제어 장치.
- 제17항 내지 제21항 중 어느 한 항에 있어서,상기 CPU가 절전 가능한지를 판정하고, 상기 CPU가 절전 가능한 경우, 상기 인터럽트 조건의 존재 및 상기 절전으로부터 발생하는 제어 신호들에 따라, 상기 제1 클럭 속도를 세이브된 클럭 속도에 대해 수정하는 절전 명령어들을 더 포함하는 제어 장치.
- 제17항 내지 제21항 중 어느 한 항에 있어서,상기 감지 회로는 서미스터 감지 소자를 포함하는 제어 장치.
- 제17항 내지 제21항 중 어느 한 항에 있어서,상기 소정의 관계 및 상기 소정의 셋포인트를 상기 컴퓨터의 메모리 위치에 저장하는 메모리 회로를 더 포함하는 제어 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US1013696P | 1996-01-17 | 1996-01-17 | |
US60/010,136 | 1996-01-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970059886A KR970059886A (ko) | 1997-08-12 |
KR100468561B1 true KR100468561B1 (ko) | 2005-06-21 |
Family
ID=21744093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970001270A KR100468561B1 (ko) | 1996-01-17 | 1997-01-17 | 중앙처리장치의동작특성에따라컴퓨터의동작을제어하는방법및시스템 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5996084A (ko) |
EP (1) | EP0785498A3 (ko) |
JP (2) | JPH09305569A (ko) |
KR (1) | KR100468561B1 (ko) |
CN (1) | CN1192298C (ko) |
TW (1) | TW454117B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022154389A1 (ko) * | 2021-01-13 | 2022-07-21 | 삼성전자 주식회사 | 전자 장치 및 전자 장치에서 사용자 활동 기반 발열 제어 방법 |
Families Citing this family (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5719800A (en) * | 1995-06-30 | 1998-02-17 | Intel Corporation | Performance throttling to reduce IC power consumption |
US6411156B1 (en) | 1997-06-20 | 2002-06-25 | Intel Corporation | Employing transistor body bias in controlling chip parameters |
JPH1139868A (ja) * | 1997-07-18 | 1999-02-12 | Matsushita Electric Ind Co Ltd | 半導体集積回路システム、半導体集積回路、及び半導体集積回路システムの駆動方法 |
US6065122A (en) * | 1998-03-13 | 2000-05-16 | Compaq Computer Corporation | Smart battery power management in a computer system |
US6112164A (en) * | 1998-03-31 | 2000-08-29 | Compaq Computer Corporation | Computer system thermal management |
JP3573957B2 (ja) * | 1998-05-20 | 2004-10-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ内のプロセッサの動作速度制御方法及びコンピュータ |
US6172611B1 (en) * | 1998-10-19 | 2001-01-09 | Telcom Semiconductor, Inc. | Independent hardware thermal sensing and monitoring |
US6415388B1 (en) * | 1998-10-30 | 2002-07-02 | Intel Corporation | Method and apparatus for power throttling in a microprocessor using a closed loop feedback system |
US6298448B1 (en) | 1998-12-21 | 2001-10-02 | Siemens Information And Communication Networks, Inc. | Apparatus and method for automatic CPU speed control based on application-specific criteria |
US6484265B2 (en) * | 1998-12-30 | 2002-11-19 | Intel Corporation | Software control of transistor body bias in controlling chip parameters |
US6182232B1 (en) * | 1999-01-29 | 2001-01-30 | Micron Electronics, Inc. | Power and thermal management based on a power supply output |
US6219795B1 (en) | 1999-01-29 | 2001-04-17 | Micron Electronics, Inc. | Thermal management apparatus based on a power supply output |
US6418535B1 (en) * | 1999-04-28 | 2002-07-09 | International Business Machines Corporation | Bi-level power saver method for portable or laptop computer |
US6624816B1 (en) * | 1999-09-10 | 2003-09-23 | Intel Corporation | Method and apparatus for scalable image processing |
US7050959B1 (en) * | 1999-12-23 | 2006-05-23 | Intel Corporation | Dynamic thermal management for integrated circuits |
US7100061B2 (en) | 2000-01-18 | 2006-08-29 | Transmeta Corporation | Adaptive power control |
US6574739B1 (en) * | 2000-04-14 | 2003-06-03 | Compal Electronics, Inc. | Dynamic power saving by monitoring CPU utilization |
US6968469B1 (en) | 2000-06-16 | 2005-11-22 | Transmeta Corporation | System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored |
US7006943B1 (en) * | 2000-09-12 | 2006-02-28 | Advanced Micro Devices, Inc. | Method and apparatus for using an on-board temperature sensor on an integrated circuit |
US6718474B1 (en) * | 2000-09-21 | 2004-04-06 | Stratus Technologies Bermuda Ltd. | Methods and apparatus for clock management based on environmental conditions |
US7263567B1 (en) * | 2000-09-25 | 2007-08-28 | Intel Corporation | Method and apparatus for lowering the die temperature of a microprocessor and maintaining the temperature below the die burn out |
US6910139B2 (en) * | 2000-10-02 | 2005-06-21 | Fujitsu Limited | Software processing apparatus with a switching processing unit for displaying animation images in an environment operating base on type of power supply |
US7260731B1 (en) | 2000-10-23 | 2007-08-21 | Transmeta Corporation | Saving power when in or transitioning to a static mode of a processor |
US6715089B2 (en) | 2001-01-22 | 2004-03-30 | Ati International Srl | Reducing power consumption by estimating engine load and reducing engine clock speed |
US20030030326A1 (en) * | 2001-08-10 | 2003-02-13 | Shakti Systems, Inc. | Distributed power and supply architecture |
US20030056123A1 (en) * | 2001-09-19 | 2003-03-20 | Hsieh Kuang Hsun | Power management method for hand-held information processing apparatus |
US7111178B2 (en) * | 2001-09-28 | 2006-09-19 | Intel Corporation | Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system |
US7111179B1 (en) | 2001-10-11 | 2006-09-19 | In-Hand Electronics, Inc. | Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters |
US20030074590A1 (en) * | 2001-10-12 | 2003-04-17 | Fogle Steven L. | Computer system with improved entry into powersave and lock modes and method of use therefor |
US6791298B2 (en) * | 2001-11-05 | 2004-09-14 | Shakti Systems, Inc. | Monolithic battery charging device |
WO2003041249A1 (en) * | 2001-11-05 | 2003-05-15 | Shakti Systems, Inc. | Dc-dc converter with resonant gate drive |
US6785831B2 (en) * | 2001-12-06 | 2004-08-31 | Matsushita Electric Industrial Co., Ltd. | Power consumption management apparatus |
US6957352B2 (en) * | 2002-03-15 | 2005-10-18 | Intel Corporation | Processor temperature control interface |
US7112978B1 (en) | 2002-04-16 | 2006-09-26 | Transmeta Corporation | Frequency specific closed loop feedback control of integrated circuits |
US7336090B1 (en) | 2002-04-16 | 2008-02-26 | Transmeta Corporation | Frequency specific closed loop feedback control of integrated circuits |
US7941675B2 (en) * | 2002-12-31 | 2011-05-10 | Burr James B | Adaptive power control |
TWI262380B (en) * | 2002-04-25 | 2006-09-21 | Quanta Comp Inc | Dynamic adjustment method for power consumption of computer system |
US6685334B2 (en) | 2002-04-30 | 2004-02-03 | G-5 Electronics | System and method of power management for a solar powered device |
US6970698B2 (en) * | 2002-07-23 | 2005-11-29 | Sbc Technology Resources, Inc. | System and method for updating data in remote devices |
US7243243B2 (en) * | 2002-08-29 | 2007-07-10 | Intel Corporatio | Apparatus and method for measuring and controlling power consumption of a computer system |
TW575803B (en) * | 2002-10-17 | 2004-02-11 | Uniwill Comp Corp | The method of managing portable computer power cord |
US7849332B1 (en) | 2002-11-14 | 2010-12-07 | Nvidia Corporation | Processor voltage adjustment system and method |
US7886164B1 (en) | 2002-11-14 | 2011-02-08 | Nvidia Corporation | Processor temperature adjustment system and method |
US7882369B1 (en) | 2002-11-14 | 2011-02-01 | Nvidia Corporation | Processor performance adjustment system and method |
US7228242B2 (en) * | 2002-12-31 | 2007-06-05 | Transmeta Corporation | Adaptive power control based on pre package characterization of integrated circuits |
US7949864B1 (en) * | 2002-12-31 | 2011-05-24 | Vjekoslav Svilan | Balanced adaptive body bias control |
US7786756B1 (en) | 2002-12-31 | 2010-08-31 | Vjekoslav Svilan | Method and system for latchup suppression |
US7642835B1 (en) | 2003-11-12 | 2010-01-05 | Robert Fu | System for substrate potential regulation during power-up in integrated circuits |
US7953990B2 (en) * | 2002-12-31 | 2011-05-31 | Stewart Thomas E | Adaptive power control based on post package characterization of integrated circuits |
US7205758B1 (en) | 2004-02-02 | 2007-04-17 | Transmeta Corporation | Systems and methods for adjusting threshold voltage |
TW200416522A (en) | 2003-02-25 | 2004-09-01 | Asustek Comp Inc | Portable computer carrying desktop computer processor and power management method thereof |
US20040215912A1 (en) * | 2003-04-24 | 2004-10-28 | George Vergis | Method and apparatus to establish, report and adjust system memory usage |
KR100992177B1 (ko) * | 2003-05-07 | 2010-11-04 | 모사이드 테크놀로지스 코포레이션 | 파워 아일랜드를 사용한 집적 회로의 파워 관리 |
JP4033066B2 (ja) * | 2003-05-07 | 2008-01-16 | ソニー株式会社 | 周波数制御装置、情報処理装置、周波数制御方法及びプログラム |
KR100663408B1 (ko) * | 2003-07-14 | 2007-01-02 | 엘지전자 주식회사 | 씨피유 속도 트랜지션 제어장치 및 방법 |
TWI220700B (en) * | 2003-08-20 | 2004-09-01 | Delta Electronics Inc | Programmable logic controller with an auxiliary processing unit |
US7141953B2 (en) * | 2003-09-04 | 2006-11-28 | Intel Corporation | Methods and apparatus for optimal voltage and frequency control of thermally limited systems |
US20050068831A1 (en) * | 2003-09-30 | 2005-03-31 | Johnson Brian P. | Method and apparatus to employ a memory module information file |
US7134029B2 (en) * | 2003-11-06 | 2006-11-07 | International Business Machines Corporation | Computer-component power-consumption monitoring and control |
US7240225B2 (en) * | 2003-11-10 | 2007-07-03 | Dell Products L.P. | System and method for throttling power in one or more information handling systems |
FR2862773B1 (fr) * | 2003-11-25 | 2006-04-14 | Giga Byte Tech Co Ltd | Dispositif et procede pour ajuster automatiquement la frequence de fonctionnement de l'unite centrale d'un ordinateur |
US7251302B2 (en) * | 2003-12-05 | 2007-07-31 | Dell Products L.P. | Method, system and apparatus for quantifying the contribution of inter-symbol interference jitter on timing skew budget |
US20050125797A1 (en) * | 2003-12-09 | 2005-06-09 | International Business Machines Corporation | Resource management for a system-on-chip (SoC) |
US7649402B1 (en) | 2003-12-23 | 2010-01-19 | Tien-Min Chen | Feedback-controlled body-bias voltage source |
US7692477B1 (en) * | 2003-12-23 | 2010-04-06 | Tien-Min Chen | Precise control component for a substrate potential regulation circuit |
US7129771B1 (en) | 2003-12-23 | 2006-10-31 | Transmeta Corporation | Servo loop for well bias voltage source |
US7012461B1 (en) | 2003-12-23 | 2006-03-14 | Transmeta Corporation | Stabilization component for a substrate potential regulation circuit |
CN1332288C (zh) * | 2004-01-09 | 2007-08-15 | 佛山市顺德区顺达电脑厂有限公司 | 电脑装置的中央处理器时脉速度实时调整方法 |
US7859062B1 (en) | 2004-02-02 | 2010-12-28 | Koniaris Kleanthes G | Systems and methods for integrated circuits comprising multiple body biasing domains |
US7816742B1 (en) | 2004-09-30 | 2010-10-19 | Koniaris Kleanthes G | Systems and methods for integrated circuits comprising multiple body biasing domains |
US7529947B2 (en) * | 2004-03-31 | 2009-05-05 | Marvell International Ltd. | Determining power consumption of an application |
US7774625B1 (en) | 2004-06-22 | 2010-08-10 | Eric Chien-Li Sheng | Adaptive voltage control by accessing information stored within and specific to a microprocessor |
US7562233B1 (en) | 2004-06-22 | 2009-07-14 | Transmeta Corporation | Adaptive control of operating and body bias voltages |
US7347621B2 (en) | 2004-07-16 | 2008-03-25 | International Business Machines Corporation | Method and system for real-time estimation and prediction of the thermal state of a microprocessor unit |
US7711966B2 (en) * | 2004-08-31 | 2010-05-04 | Qualcomm Incorporated | Dynamic clock frequency adjustment based on processor load |
US7308571B2 (en) * | 2004-10-06 | 2007-12-11 | Intel Corporation | Overriding processor configuration settings |
US7603571B2 (en) * | 2004-10-08 | 2009-10-13 | Dell Products L.P. | System and method for regulating the power consumption of a computer system |
US20090125749A1 (en) * | 2004-10-25 | 2009-05-14 | Reinhard Weiberle | Method and device for controlling a computer system |
US20090265581A1 (en) * | 2004-10-25 | 2009-10-22 | Von Collani Yorck | Data system having a variable clock pulse rate |
US7386737B2 (en) * | 2004-11-02 | 2008-06-10 | Intel Corporation | Method and apparatus to control temperature of processor |
US7313711B2 (en) * | 2004-12-03 | 2007-12-25 | Agere Systems Inc. | Adaptive power management in portable entertainment device |
US7464277B2 (en) * | 2005-01-28 | 2008-12-09 | Dell Products, L.P. | Microprocessor performance mode control utilizing sensed temperature as an indication of microprocessor utilization |
US7739531B1 (en) | 2005-03-04 | 2010-06-15 | Nvidia Corporation | Dynamic voltage scaling |
JP4492394B2 (ja) * | 2005-03-08 | 2010-06-30 | 株式会社デンソー | マイクロコンピュータ |
TW200638267A (en) * | 2005-04-22 | 2006-11-01 | Chi Mei Comm Systems Inc | Method for adjusting CPU speed of an electronic appliance |
US7464278B2 (en) * | 2005-09-12 | 2008-12-09 | Intel Corporation | Combining power prediction and optimal control approaches for performance optimization in thermally limited designs |
CN100349098C (zh) * | 2005-11-28 | 2007-11-14 | 北京中星微电子有限公司 | 基于任务的动态调节cpu工作频率的方法及*** |
CN100435109C (zh) * | 2006-12-19 | 2008-11-19 | 威盛电子股份有限公司 | 数字式温度感测*** |
US9134782B2 (en) | 2007-05-07 | 2015-09-15 | Nvidia Corporation | Maintaining optimum voltage supply to match performance of an integrated circuit |
US8725488B2 (en) * | 2007-07-26 | 2014-05-13 | Qualcomm Incorporated | Method and apparatus for adaptive voltage scaling based on instruction usage |
US7970566B2 (en) * | 2007-11-27 | 2011-06-28 | Microsoft Corporation | Correlating power consumption with CPU activity |
US8370663B2 (en) | 2008-02-11 | 2013-02-05 | Nvidia Corporation | Power management with dynamic frequency adjustments |
US8464086B2 (en) * | 2008-03-03 | 2013-06-11 | Hewlett-Packard Development Company, L.P. | Software-based power capping |
US20090235108A1 (en) * | 2008-03-11 | 2009-09-17 | Gold Spencer M | Automatic processor overclocking |
US8525840B2 (en) * | 2008-05-15 | 2013-09-03 | Apple Inc. | Thermal management of graphics processing units |
US8037325B1 (en) * | 2008-12-09 | 2011-10-11 | Google Inc. | System and method for determining power consumption |
US8190939B2 (en) * | 2009-06-26 | 2012-05-29 | Microsoft Corporation | Reducing power consumption of computing devices by forecasting computing performance needs |
TWI416313B (zh) * | 2009-07-31 | 2013-11-21 | Via Tech Inc | 可省電之電腦系統及其省電方法、可省電之電源管理單元 |
US9261929B2 (en) * | 2009-08-20 | 2016-02-16 | Hewlett-Packard Development Company, L.P. | Cooling device control |
US9256265B2 (en) | 2009-12-30 | 2016-02-09 | Nvidia Corporation | Method and system for artificially and dynamically limiting the framerate of a graphics processing unit |
US9830889B2 (en) | 2009-12-31 | 2017-11-28 | Nvidia Corporation | Methods and system for artifically and dynamically limiting the display resolution of an application |
CN102129392B (zh) * | 2010-01-18 | 2013-09-04 | 扬智科技股份有限公司 | 用来进行适应性频率调整的方法以及相关的电子装置 |
US8839006B2 (en) | 2010-05-28 | 2014-09-16 | Nvidia Corporation | Power consumption reduction systems and methods |
US8732495B2 (en) | 2010-08-31 | 2014-05-20 | Integrated Device Technology, Inc. | Systems, apparatuses and methods for dynamic voltage and frequency control of components used in a computer system |
US8984305B2 (en) | 2010-12-21 | 2015-03-17 | Intel Corporation | Method and apparatus to configure thermal design power in a microprocessor |
TWI502307B (zh) * | 2010-12-21 | 2015-10-01 | Intel Corp | 用以配置微處理器中之熱設計功率的方法和裝置 |
US9043457B2 (en) * | 2012-10-25 | 2015-05-26 | Qualcomm Incorporated | Dynamic adjustment of an interrupt latency threshold and a resource supporting a processor in a portable computing device |
US9529397B2 (en) | 2013-03-01 | 2016-12-27 | Qualcomm Incorporated | Thermal management of an electronic device based on sensation model |
CN104216812B (zh) * | 2014-08-29 | 2017-04-05 | 杭州华为数字技术有限公司 | 一种性能监控单元多事件统计的方法和装置 |
KR102329473B1 (ko) | 2014-11-24 | 2021-11-19 | 삼성전자주식회사 | 프로세서와 이를 포함하는 반도체 장치 |
KR102528692B1 (ko) * | 2016-01-04 | 2023-05-08 | 한국전자통신연구원 | 중앙처리장치의 동적 주파수 조절 장치 및 그 방법 |
US11157329B2 (en) * | 2019-07-26 | 2021-10-26 | Intel Corporation | Technology for managing per-core performance states |
CN110955323A (zh) * | 2019-11-27 | 2020-04-03 | 出门问问信息科技有限公司 | 一种智能手表设备 |
US11928002B2 (en) | 2019-11-27 | 2024-03-12 | Mobvoi Information Technology Company Limited | Data transmission method, apparatus and smart watch device |
US11687116B2 (en) | 2020-09-02 | 2023-06-27 | International Business Machines Corporation | Intelligent user equipment central processing unit core clock adjustment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0566395A1 (en) * | 1992-04-16 | 1993-10-20 | Dia Semicon Systems Incorporated | Drive control system for microprocessor with conditional power saving |
US5451892A (en) * | 1994-10-03 | 1995-09-19 | Advanced Micro Devices | Clock control technique and system for a microprocessor including a thermal sensor |
EP0683558A1 (en) * | 1994-05-16 | 1995-11-22 | Symbios Logic Inc. | Method and apparatus for reducing power dissipation in an electronic device |
Family Cites Families (16)
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 |
EP0613074B1 (en) * | 1992-12-28 | 1998-04-01 | Advanced Micro Devices, Inc. | Microprocessor circuit having two timing signals |
US5721837A (en) * | 1993-10-28 | 1998-02-24 | Elonex I.P. Holdings, Ltd. | Micro-personal digital assistant including a temperature managed CPU |
US5422832A (en) * | 1993-12-22 | 1995-06-06 | Advanced Micro Devices | Variable thermal sensor |
US5422806A (en) * | 1994-03-15 | 1995-06-06 | Acc Microelectronics Corporation | Temperature control for a variable frequency CPU |
US5535401A (en) * | 1994-04-05 | 1996-07-09 | International Business Machines Corporation | Method and system of power and thermal management for a data processing system using object-oriented program design |
TW282525B (ko) * | 1994-06-17 | 1996-08-01 | Intel Corp | |
US5752011A (en) * | 1994-06-20 | 1998-05-12 | Thomas; C. Douglas | Method and system for controlling a processor's clock frequency in accordance with the processor's temperature |
US5490059A (en) * | 1994-09-02 | 1996-02-06 | Advanced Micro Devices, Inc. | Heuristic clock speed optimizing mechanism and computer system employing the same |
US5572719A (en) * | 1994-11-22 | 1996-11-05 | Advanced Micro Devices | Clock control system for microprocessors including a delay sensing circuit |
US5623647A (en) * | 1995-03-07 | 1997-04-22 | Intel Corporation | Application specific clock throttling |
US5713030A (en) * | 1995-10-11 | 1998-01-27 | Vlsi Technology, Inc. | Thermal management device and method for a computer processor |
US5630110A (en) * | 1996-03-01 | 1997-05-13 | Samsung Electronics Co., Ltd. | Method and apparatus for enhancing performance of a processor |
US5826083A (en) * | 1996-06-20 | 1998-10-20 | Intel Corporation | CPU cycle consumption self-regulating method and apparatus |
US5774704A (en) * | 1996-07-29 | 1998-06-30 | Silicon Graphics, Inc. | Apparatus and method for dynamic central processing unit clock adjustment |
US5832284A (en) * | 1996-12-23 | 1998-11-03 | International Business Machines Corporation | Self regulating temperature/performance/voltage scheme for micros (X86) |
-
1997
- 1997-01-17 KR KR1019970001270A patent/KR100468561B1/ko not_active IP Right Cessation
- 1997-01-17 CN CNB971020663A patent/CN1192298C/zh not_active Expired - Fee Related
- 1997-01-17 EP EP97100717A patent/EP0785498A3/en not_active Ceased
- 1997-01-17 JP JP9006718A patent/JPH09305569A/ja active Pending
- 1997-01-17 US US08/785,619 patent/US5996084A/en not_active Expired - Lifetime
- 1997-02-21 TW TW086102064A patent/TW454117B/zh not_active IP Right Cessation
-
2007
- 2007-02-07 JP JP2007027444A patent/JP2007128556A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0566395A1 (en) * | 1992-04-16 | 1993-10-20 | Dia Semicon Systems Incorporated | Drive control system for microprocessor with conditional power saving |
EP0683558A1 (en) * | 1994-05-16 | 1995-11-22 | Symbios Logic Inc. | Method and apparatus for reducing power dissipation in an electronic device |
US5451892A (en) * | 1994-10-03 | 1995-09-19 | Advanced Micro Devices | Clock control technique and system for a microprocessor including a thermal sensor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022154389A1 (ko) * | 2021-01-13 | 2022-07-21 | 삼성전자 주식회사 | 전자 장치 및 전자 장치에서 사용자 활동 기반 발열 제어 방법 |
Also Published As
Publication number | Publication date |
---|---|
TW454117B (en) | 2001-09-11 |
US5996084A (en) | 1999-11-30 |
JP2007128556A (ja) | 2007-05-24 |
CN1168501A (zh) | 1997-12-24 |
KR970059886A (ko) | 1997-08-12 |
CN1192298C (zh) | 2005-03-09 |
EP0785498A3 (en) | 1999-01-07 |
JPH09305569A (ja) | 1997-11-28 |
EP0785498A2 (en) | 1997-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100468561B1 (ko) | 중앙처리장치의동작특성에따라컴퓨터의동작을제어하는방법및시스템 | |
KR100227297B1 (ko) | 컴퓨터용 실시간 전력 보존 방법 및 장치 | |
EP1361501B1 (en) | Power conservation and thermal management arrangements for computers | |
US6848054B1 (en) | Real-time computer thermal management and power conservation | |
EP1416355B1 (en) | Improvements in or relating to central processing units | |
JPH06222862A (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: 20121227 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20131227 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20141230 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20151230 Year of fee payment: 12 |
|
EXPY | Expiration of term |