KR20080035461A - 컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법 - Google Patents

컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법 Download PDF

Info

Publication number
KR20080035461A
KR20080035461A KR1020070102710A KR20070102710A KR20080035461A KR 20080035461 A KR20080035461 A KR 20080035461A KR 1020070102710 A KR1020070102710 A KR 1020070102710A KR 20070102710 A KR20070102710 A KR 20070102710A KR 20080035461 A KR20080035461 A KR 20080035461A
Authority
KR
South Korea
Prior art keywords
instruction
power
power usage
execution
pht
Prior art date
Application number
KR1020070102710A
Other languages
English (en)
Other versions
KR101020008B1 (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 KR20080035461A publication Critical patent/KR20080035461A/ko
Application granted granted Critical
Publication of KR101020008B1 publication Critical patent/KR101020008B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법으로서, 상기 방법은 전력 사용치를 측정하는 단계와; 마지막 명령어에 대한 명령어의 실행을 감시하는 단계와; 마지막 명령어에 대한 마지막 명령어 어드레스를 판정하는 단계와; 마지막 명령어에 대한 측정된 전력 사용치를 판정하는 단계와; 전력 히스토리 테이블(PHT)에 측정된 전력 사용치와 연관된 마지막 명령어 어드레스를 저장하는 단계를 포함한다. PHT에 저장된 정보는 컴퓨터 프로세서 시스템에 의해 이용되는 전력을 관리하는데 사용할 수 있다.

Description

컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법{SYSTEM AND METHOD OF POWER MANAGEMENT FOR COMPUTER PROCESSOR SYSTEMS}
본 발명의 기술 분야는 컴퓨터 프로세서 시스템에 관한 것으로, 구체적으로는 컴퓨터 프로세서 시스템을 위한 전력 관리에 관한 것이다.
컴퓨터 프로세서 시스템은 계속해서 더욱 빨라지고 있으며, 컴포넌트의 밀도도 계속해서 증가하고 있다. 이것은 컴퓨터 프로세서 시스템의 전력 관리에서, 즉 피크 전력 사용과 평균 전력 사용 모두에서 문제를 나타낸다. 높은 피크 전력 사용은 보다 큰 전력 공급 장치를 요구하고 디지털 회로에서 잡음을 증가시킬 수 있다. 예를 들어, 동시에 컴포넌트를 스위칭하는 것은 높은 피크 전력 사용을 일으킬 수 있고, 이것은 전력/접지 바운스를 일으킬 수 있다. 리드선과 컴포넌트들의 고유 인덕턴스 및 용량으로 인해서, 이 전력/접지 바운스는 전력 또는 접지 버스들 상에서 각각 잡음이 되고, 논리 오류를 일으킨다. 높은 평균 전력 사용은 전력 비용을 증가시키고, 동작 신뢰도를 감소시킬 수 있는 열을 발생한다.
전력 관리에 대한 현재의 해결책은 컴퓨터 프로세서 시스템 성능 상에 상당한 악영향을 끼친다는 것이다. 한 해결책은 컴퓨터 프로세서 시스템을 보다 천천히 가동시키는 것으로, 이것은 계산 시간을 증가시킨다. 다른 해결책은 추론 동작을 보다 적게 수행하는 것으로, 즉, 이러한 동작들의 결과가 필요할 것이라고 알려지기 전에 수행되는 동작의 수를 줄인다. 또 다른 해결책은 병렬로(동시에) 보다 적은 동작을 수행하는 것이다. 다른 해결책들은 트랜지스터의 동작을 느리게 하고 잡음 마진을 감소시키는, 트랜지스터를 다운사이징하는 것과, 트랜지스터의 속도를 감소시키는, 산화막 두께를 증가시키는 것을 포함한다. 대체로, 전력 관리에 대한 현재의 해결책들은 컴퓨터 프로세서 시스템의 동작을 손상시킨다.
전술한 단점들을 극복하는 컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법을 갖는 것이 바람직하다.
본 발명의 컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법은 명령어에 관련된 어드레스에서의 측정된 전력 사용치를 저장하는 전력 히스토리 테이블(PHT)을 제공한다. 측정된 전력 사용치는 컴퓨터 프로세서 시스템의 동작중에 결정된다. 컴퓨터 프로세서 시스템은 관련된 어드레스를 갖는 명령어가 실행될 때, 이전에 측정된 전력 사용치에 기초하여 전력 사용을 관리할 수 있다. 이것은 컴퓨터 프로세서 시스템이 높은 전력을 요구하는 명령어를 조절하면서, 전체 성능에 부정적인 영향을 최소화하도록 한다.
본 발명의 한 양태는 컴퓨터 프로세서 시스템을 위한 전력 관리 방법으로서, 전력 사용치를 측정하는 단계와; 마지막 명령어에 대한 명령어의 실행을 감시하는 단계와; 마지막 명령어에 대한 마지막 명령어 어드레스를 판정하는 단계와; 마지막 명령어에 대한 측정된 전력 사용치를 판정하는 단계와; 전력 히스토리 테이블(PHT)에 측정된 전력 사용치와 연관된 마지막 명령어 어드레스를 저장하는 단계를 포함한다.
본 발명의 또 다른 양태는 컴퓨터 프로세서 시스템을 위한 전력 관리용의 컴퓨터 이용 가능 매체에서의 컴퓨터 프로그램 제품으로서, 전력 사용치를 측정하기 위한 컴퓨터 프로그램 코드와; 마지막 명령어에 대한 명령어의 실행을 감시하기 위한 컴퓨터 프로그램 코드와; 마지막 명령어에 대한 마지막 명령어 어드레스를 판정 하기 위한 컴퓨터 프로그램 코드와; 마지막 명령어에 대한 측정된 전력 사용치를 판정하기 위한 컴퓨터 프로그램 코드와; 전력 히스토리 테이블(PHT)에 측정된 전력 사용치와 연관된 마지막 명령어 어드레스를 저장하기 위한 컴퓨터 프로그램 코드를 포함한다.
본 발명의 또 다른 양태는 정보 처리 시스템으로서, 프로세서와; 디지털 처리 기기에 의해 실행 가능한 명령어를 저장하여 컴퓨터 프로세서 시스템을 위한 전력 관리를 제공하도록 동작을 수행하기 위해 상기 프로세서에 결합된 메모리를 포함한다. 상기 동작은 전력 사용치를 측정하는 단계와; 마지막 명령어에 대한 명령어의 실행을 감시하는 단계와; 마지막 명령어에 대한 마지막 명령어 어드레스를 판정하는 단계와; 마지막 명령어에 대한 측정된 전력 사용치를 판정하는 단계와; 전력 히스토리 테이블(PHT)에 측정된 전력 사용치와 연관된 마지막 명령어 어드레스를 저장하는 단계를 포함한다.
본 발명의 또 다른 양태는 전력 관리를 이용하는 컴퓨터 프로세서 시스템으로서, 전력 히스토리 테이블(PHT)를 갖는 명령어 인출 제어 유닛과; 명령어 디스패치 제어 유닛과; 전력 제어 유닛을 갖는 명령어 실행 유닛과; 프로그램 상태 및 데이터 유닛을 포함한다. 명령어 디스패치 제어 유닛은 실행을 위해 명령어 인출 제어 유닛으로부터 명령어 실행 유닛으로 명령어를 디스패치하고, 전력 제어 유닛은 측정된 전력 사용치에 대한 명령어의 실행을 감시하며, 프로그램 상태 및 데이터 유닛은 마지막 명령어 어드레스에 대한 명령어의 실행을 감시하고, 측정된 전력 사용치는 마지막 명령어 어드레스와 연관되어 전력 히스토리 테이블(PHT)에 저장된 다.
본 발명의 앞서 말한 특징과 장점 및 다른 특징들과 장점들은 첨부 도면들과 함께 본 발명의 바람직한 실시예의 이하 상세한 설명으로부터 더욱 명백하게 될 것이다. 상세한 설명 및 첨부 도면은 본 발명의 특허 청구 범위 및 동일한 수단에 의해 정의된 본 발명의 범위를 제한한다기 보단, 본 발명의 예시일 뿐이다.
이상 설명한 바와 같이 본 발명에 따르면, 컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법은 명령어에 관련된 어드레스에서의 측정된 전력 사용치를 저장하는 전력 히스토리 테이블(PHT)을 제공하고, 측정된 전력 사용치는 컴퓨터 프로세서 시스템의 동작중에 결정되며, 컴퓨터 프로세서 시스템은 관련된 어드레스를 갖는 명령어가 실행될 때, 이전에 측정된 전력 사용치에 기초하여 전력 사용을 관리할 수 있다. 이것은 컴퓨터 프로세서 시스템이 높은 전력을 요구하는 명령어를 조절하면서, 전체 성능에 부정적인 영향을 최소화하는 것이 가능하다.
도 1은 본 발명에 이용하기 위한 컴퓨터 프로세서 시스템의 블럭도이다. 컴퓨터 프로세서 시스템(100)은 명령어 메모리 유닛(110), 명령어 인출 제어 유닛(120), 명령어 디스패치 제어 유닛(130), 명령어 실행 유닛(140), 데이터 교환 버스(150), 프로그램 상태 및 데이터 유닛(160), 데이터 메모리 유닛(170), 및 입출력 장치(180)를 포함한다. 명령어 인출 제어 유닛(120)에 있는 전력 히스토리 테이블(PHT)은, 컴퓨터 프로세서 시스템(100)이 특정 명령어를 위한 전력 사용에 적 응할 수 있도록 어드레스에 의한 명령어의 측정된 전력 사용 히스토리를 저장한다.
명령어 인출 제어 유닛(120)은 명령어 메모리 유닛(110)에 저장된 명령어를 인출하여 명령어 디스패치 제어 유닛(130)에 그 명령어를 제공한다. 명령어 디스패치 제어 유닛(130)은 명령어 인출 제어 유닛(120)의 지시에 따라 명령어의 흐름을 제어한다. 명령어 실행 유닛(140)은 명령어를 실행하고, 데이터에 대해 연산한다. 또한, 명령어 실행 유닛(140)은 전력 사용치를 측정하여 그 정보를 PHT(124)에 제공한다. 프로그램 상태 및 데이터 유닛(160)은 명령어 실행을 추적하여 그 정보를 상기 PHT(124)에 제공한다.
명령어 인출 제어 유닛(120)은 명령어 메모리 유닛(110)에 저장된 명령어를 인출하여 명령어 디스패치 제어 유닛(130)에 그 명령어를 제공한다. 한 실시에에서, 명령어는 한번에 한 개씩 인출된다. 또 다른 실시예에서, 명령어는 그룹으로, 예컨대 5개의 명령어가 1개의 그룹으로 인출된다. 명령어 인출 제어 유닛(120)은 분기 히스토리 테이블(BHT)(122), 전력 히스토리 테이블(PHT)(124), 및 명령어 캐시(126)를 포함한다. BHT(122) 및 PHT(124)는 마지막 명령어 어드레스에 의한 명령어에 대해 분기의 히스토리 및 전력의 히스토리를 각각 저장한다. 명령어 캐시(126)는 명령어 메모리 유닛(110)으로부터 호출되는 단일 명령어 또는 명령어 그룹을 명령어 디스패치 제어 유닛(130)의 지시에 따라 명령어 메모리 유닛(110)으로부터 전송될 때까지 유지한다. 한 실시예에서, BHT(122) 및 PHT(124)는 별개의 테이블이다. 또 다른 실시예에서, BHT(122) 및 PHT(124)는 단일 테이블로서 결합된다. 통상적으로, BHT(122) 및 PHT(124)는 동일한 어드레스 갯수를 갖는다. 당업자 라면 BHT(122) 및 PHT(124)에서 이용되는 어드레스의 갯수가 특정한 애플리케이션에 따른다는 것을 알 것이고, 어드레스는 대개 64에서 2000개에 이르는 갯수를 갖는다. 어드레스는 BHT(122) 및/또는 PHT(124)에서 공간을 절약하기 위해서 부분적으로 또는 절단된 어드레스로서 저장될 수 있다. 분기 히스토리 및 전력 히스토리는, 그 분기 히스토리 및 전력 히스토리가 BHT(122) 및/또는 PHT(124)에 각각 보내질 수 있도록, 명령어가 완료된 이후에 프로그램 상태 및 데이터 유닛(160)에 있는 완료 테이블(163)에 보관될 수 있다.
BHT(122)는 마지막 명령어 어드레스에 의해 명령어에 인덱싱되는 분기 히스토리 값의 테이블이다. 분기 히스토리 값은 프로그램 상태 및 데이터 유닛(160)을 이용하여 컴퓨터 프로세서 시스템(100)의 동작 중에 결정될 수 있고, 이때 상기 프로그램 상태 및 데이터 유닛(160)은 특정한 어드레스에 있는 명령어에 의해 취해지거나 취해지지 않은 분기를 저장을 위해 BHT(122)에 제공한다. 예를 들어, 어드레스 번지 10을 갖는 명령어는 분기 B를 일회 수행하고 다음 4회는 분기 A를 수행할 수 있다. 진행된 분기는 어드레스 번지 10을 이용하는 명령어를 실행할 때마다, 프로그램 상태 및 데이터 유닛(160)에 의해 BHT(122)에 제공된다. 이러한 히스토리에 기초하여, 어드레스 번지 10을 이용하는 명령어는 그 당시 80 퍼센트가 분기 A로 진행하고 그 당시 20 퍼센트가 분기 B로 진행한다. 분기 A로의 진행 가능성은 높은 것으로 BHT(122)에 저장될 수 있으며, 분기 B로의 진행 가능성은 낮은 것으로 BHT(122)에 저장될 수 있다. 어드레스 번지 10을 이용하는 명령어가 추가 실행을 위해 호출되는 경우, 명령어 인출 제어 유닛(120)은 진행될 가능성 있는 분기에 대 해 BHT(122)에 질의할 수 있고, 그 가능성 있는 분기를 따라 추론 실행을 시작한다. 이 예시적인 경우에, 추론 실행은 분기 A를 따라 시작할 수 있는데, 분기 A가 분기 B보다 더욱 가능성 있는 분기이기 때문이다. 따라서, 추론 실행은 처리 시간을 절약하기 위해서 실제 실행에 앞서 진행할 수 있다. 가능성 있는 분기가 진행되는 분기가 아닌 경우, 추론 실행의 결과는 버려질 수 있다.
PHT(124)는 마지막 명령어 어드레스에 의해 명령어에 인덱싱되는 측정된 전력 사용값의 테이블이다. 측정된 전력 사용값은 컴퓨터 프로세서 시스템(100)의 동작 중에 판정되고, PHT(124)에 저장될 수 있고, 이와 함께 프로그램 상태 및 데이터 유닛(160)은 특정한 어드레스에 명령어를 제공하고, 명령어 실행 유닛(140)에 있는 전력 제어 유닛(142)은 측정된 전력 사용치를 제공한다. 예를 들어, 어드레스 번지 10을 이용하는 명령어는 마지막 명령어 일 수 있고, 전력 제어 유닛(142)은 마지막 명령어를 검출하여, 어드레스 번지 10을 PHT(124)에 제공한다. 전력 제어 유닛(142)은 어드레스 번지 10을 이용하는 명령어가 실행중인 동안 측정된 전력 사용 값을 PHT(124)에 높음, 중간, 낮음 등으로 제공한다. 전력 사용치는 PHT(124)의 어드레스 번지 10에 저장될 수 있다. 어드레스 번지 10을 이용하는 명령어가 추가 실행을 위해 호출되는 경우, 명령어 인출 제어 유닛(120)은, 명령어가 디스패치되는 방법을 명령어 디스패치 제어 유닛(130)에 지시하는 것과 같이, 측정된 전력 사용에 대해 PHT(124)에 질의하고, 컴퓨터 프로세서 시스템(100)의 전력 사용을 적절하게 관리할 수 있다.
PHT(124)의 어드레스 부분은 명령어의 어드레스를 저장하고, 전력 사용 부분 은 특정 어드레스에 대한 측정된 전력 사용치를 저장한다. 한 실시예에서, 전력 사용 부분은 단일 비트폭으로, 측정된 전력 사용치는 높음 또는 낮음으로 저장된다. 다른 실시예에서, 전력 사용 부분은 2비트폭으로, 측정된 전력 사용치는 높음, 중간, 낮음, 또는 모름으로 저장된다. 또 다른 실시예에서, 전력 사용 부분은 2비크폭 이상으로, 측정된 전력 사용치를 보다 세밀한 증분 단계로 저장할 수 있다. 한 실시예에서, 어드레스가 BHT(122) 및 PHT(124) 모두가 오직 단일 컬럼에 저장될 필요가 있도록, BHT(122) 및 PHT(124)는 단일 테이블로 조합되어 있다. 당업자는 PHT(124)가 특정 애플리케이션에서 원하는 크기로 조정될 수 있음을 이해할 것이다.
명령어 캐시(126)는 명령어 인출 제어 유닛(120)에서 수신되어 명령어 디스패치 제어 유닛(130)에 제공되는 명령어 메모리 유닛(110)으로부터의 명령어 또는 명령어 그룹을 보류한다. 명령어 디스패치 제어 유닛(130)은 실행 및/또는 전력 관리의 흐름을 제어할 수 있는 명령어 인출 제어 유닛(120)의 지시에 따라, 명령어 캐시(126)로부터의 명령어 또는 명령어 그룹의 흐름을 제어할 수 있다.
명령어 실행 유닛(140)은 전력 제어 유닛(142) 및 실행 유닛들(EUs)(144)을 포함한다. 명령어 실행 유닛(140)은 명령어 디스패치 제어 유닛(130)으로부터 명령어를 수신하고, 데이터 교환 버스(150)로부터 데이터를 수신하며, EU들(144) 내의 명령어를 실행하고, 데이터 교환 버스(150)에 데이터를 반환한다. EU들(144)이 현재의 명령어 실행을 위해 필요하지 않은 경우, EU들(144) 중 하나 이상은 전력 제어 유닛(142)의 지시에 따라 중지될 수 있다. 전력 제어 유닛(142)은 전력 사용치 를 측정하여 PHT(124)에 측정된 전력 사용치를 제공한다.
데이터 교환 버스(150)는 명령어 실행 유닛(140), 프로그램 상태 및 데이터 유닛(160), 데이터 메모리 유닛(170), 및 입출력 장치(180) 사이에 데이터를 전달한다. 데이터 메모리 유닛(170)은 데이터를 저장하고, 입출력 장치(180)는 컴퓨터 프로세서 시스템(100)으로 데이터와 명령어의 입출력을 허용한다. 프로그램 상태 및 데이터 유닛(160)은 데이터를 명령어 실행 유닛(140)과 데이터 메모리 유닛(170) 사이에 일시적으로 캐시하는 데이터 캐시(162)를 포함한다. 프로그램 상태 및 데이터 유닛(160)은 마지막 명령어를 추적하여 PHT(124)에 마지막 명령어 어드레스를 제공한다. 또한, 프로그램 상태 및 데이터 유닛(160)은 완료 테이블(163)을 이용하여 실행중인 명령어 및 분기 히스토리를 추적하여, 이들을 BHT(122)에 제공한다.
당업자는, 예시된 컴퓨터 프로세서 시스템(100)은 오직 하나의 예시일뿐, 다른 구성도 가능함을 이해할 것이다. 예를 들어, 프로그램 상태 및 데이터 유닛(160)은 컴퓨터 프로세서 시스템(100) 내의 다른 장소에 위치될 수 있고, 데이터 교환 버스(150)로의 접속으로 한정되지 않는다.
도 2는 본 발명에 따라 수행되는 전력 관리 방법을 위한 전력 히스토리 테이블 관리의 흐름도이다. 전력 히스토리 테이블 관리 방법(200)은 컴퓨터 프로세서 시스템을 위해 전력을 관리하는데 이용될 수 있는 측정된 전력 사용값을 가지고 전력 히스토리 테이블(PHT)에 있다.
전력 히스토리 테이블 관리 방법(200)은 PHT를 초기화하는 단계로 시작한 다(203). 컴퓨터 프로세서 시스템에서 전력 사용치가 측정된다(204). 마지막 명령어에 대한 명령어의 실행이 감시되고(206), 이것은 명령어가 마지막인지를 판정한다(208). 명령어가 마지막이 아닌 경우, 이 방법은 계속해서 명령어 실행을 감시한다(206). 명령어가 마지막인 경우, 마지막 명령어에 대한 마지막 명령어의 어드레스가 판정되고(210), 마지막 명령어에 대한 측정된 전력 사용치가 판정된다(212). 마지막 명령어 어드레스 및 측정된 전력 사용치는 서로 된련되어 PHT에 저장된다(214). 전력 사용은 리셋되어(216) 실행될 다음 명령어를 위한 전력 사용의 추적을 가능하게 한다. 한 실시예에서, 이 방법(200)은 계속해서 PHT를 초기화할 수 있다(203). 또 다른 실시예에서, 이 방법(200)은 계속해서 전력 사용치를 측정할 수 있다(204).
또한, 이 방법(200)은 도 2에 예시된 바와 같이 선택적인 리셋 루틴을 포함할 수도 있다. 선택적인 리셋 루틴은 상이한 어드레스를 이용하는 상이한 컴퓨터 애플리케이션들을 시간이 지남에 따라 서로 다르게 다룬다. 예를 들어, 스프레드시트와 같은 한 애플리케이션은 제공된 어드레스에서 저전력을 사용할 수 있지만, 이후에 작동하는 다른 프로그램에서는 고전력을 사용할 수 있다. 소정 횟수의 동작 또는 시간이 지난 뒤에, PHT를 리셋하면, PHT가 상이한 애플리케이션에 대해 상이한 전력을 사용할 수 있다.
선택적인 리셋 루틴은, 애플리케이션 리셋 카운터가 소정의 간격을 정의하는 애플리케이션 리셋 한계치와 크거나 같은지를 판정한다(218). 애플리케이션 리셋 카운터가 애플리케이션 리셋 한계치보다 크거나 같은 경우, 애플리케이션 리셋 카 운터는 증분되고(220), 이 방법(200)은 계속해서 전력 사용치를 측정한다(204). 애플리케이션 리셋 카운터가 애플리케이션 리셋 한계치보다 크지 않거나 같지 않은 경우, PHT는 리셋되고(222), 애플리케이션 리셋 카운터도 리셋된다(224). 한 실시예에서, 이 방법(200)은 계속해서 PHT를 초기화할 수 있다(203). 또 다른 실시예에서, 이 방법(200)은 계속해서 전력 사용치를 측정할 수 있다(204). 당업자는 애플리케이션 리셋 한계치의 값이 특정 애플리케이션에서 원하는 값으로 선택될 수 있음을 이해할 것이다. 한 실예에서, 애플리케이션 리셋 한계치는 1백만이다.
PHT는 초기화되어(203), PHT의 측정된 전력 사용값을 소정의 전력 사용값으로 설정한다. 통상, 측정된 전력 사용값은 낮음(low) 또는 미지의 값으로 초기화된다. 한 실례에서는, PHT의 전력 사용 부분이 단일 비트폭으로, 측정된 전력 사용치가 높음(high) 또는 낮음(low)으로 저장되는 경우, 소정의 전력 사용값은 낮음으로 설정된다. 다른 실례에서는, PHT의 전력 사용 부분은 2비트폭으로, 측정된 전력 사용치가 높음(high), 중간(medium), 낮음(low), 또는 모름(unknown)으로 저장되는 경우, 소정의 전력 사용값은 모름으로 설정된다. 측정된 전력 사용치는, 연관된 명령어의 실행동안 측정된 전력 사용치에 의해 보증되면, 높은 값으로 증가할 수 있다.
컴퓨터 프로세서 시스템의 전력 사용치를 측정할 때(204), 특정 컴퓨터 프로세서 시스템 설계에서 최상의 결과를 제공하기 위해, 측정 기술이 선택될 수 있다. 한 실시예에서, 특정 명령어의 실행에 요구되지 않는 실행 유닛(EU)들은 특정 명령어가 실행되는 동안 중지된다. 한 실례에서, 각 EU를 집적 회로의 클럭 게이티드 영역으로 고려하는 것이 가능하다. 전력 사용치를 측정하기 위해서, 클럭은 각 EU와 연관될 수 있고, 관련된 EU가 각각의 실행 유닛에 대한 온타임(on-time)을 추적하도록 턴온되는 경우에 각 클럭이 작동할 수 있다. 명령어가 종료하는 경우, 측정된 전력 사용치를 판정하기 위해, 모든 클럭에 대한 온타임은 합산될 수 있다. 보다 정확한 전력 사용 측정은 EU의 상대적인 영역을 계산함으로써 획득될 수 있다. 명령어가 종료하는 경우, 측정된 전력 사용치를 판정하기 위해서 각 EU의 부분 영역만큼의 가중치를 이용하여 모든 클럭에 대한 온타임은 합산될 수 있다. 예를 들어, 모든 EU의 전체 영역의 반을 차지하는 EU는 모든 EU의 전체 영역의 4분의 1을 차지하는 EU보다 2배 무겁게 가중된다. 부분 영역만큼의 가중치는 전력 사용이 EU의 영역에 비례하도록 한다. 당업자는 단일 EU가 몇 개의 또는 수많은 클럭 게이티드 영역으로 분할될 수 있고, 이 클럭 게이티드 영역의 각각은 전력 사용치 측정을 위해 카운트할 수 있음을 이해할 것이다. 또 다른 실시예에서, 컴퓨터 프로세서 시스템의 전력 사용치를 측정하는 단계(204)는 전력 사용의 표시로서 전력 레일의 온도를 측정하는 단계를 포함한다.
마지막 명령어의 어드레스 및 측정된 전력 사용치는 PHT에 저장된다(214). 즉, 마지막 명령어 어드레스는 측정된 전력 사용치와 연관되어 저장된다. 어드레스는 PHT에서 공간을 절약하기 위해서 부분적 또는 절단된 어드레스로서 저장될 수 있다. 한 실시예에서, 명령어에서 판정된 가장 최근의 측정된 전력 사용치가 PHT에 저장되므로, 그 저장된 값은 항상 가장 최근값이 된다. 또 다른 실시예에서, 명령어에서 판정된 가장 높은 측정된 전력 사용치가 PHT에 저장되므로, 그 저장된 값은 가장 큰 측정값이 된다. 새롭게 판정된 측정 전력 사용치는 현재 저장되어 있는 측정 전력 사용치와 비교되어, 새롭게 판정된 측정 전력 사용치가 현재 저장되어 있는 측정 전력 사용치보다 큰 경우 새롭게 판정된 측정 전력 사용치만 PHT에 저장된다. 예를 들어, 현재 저장되어 있는 측정 전력 사용치가 낮음(low)이면, 새롭게 판정된 측정 전력 사용치가 중간(medium)이거나 높음(high)인 경우, 새롭게 판정된 측정 전력 사용치만 PHT에 저장된다. 또 다른 실시예에서, PHT에 저장된 측정 전력 사용치는, 새롭게 판정된 측정 전력 사용치가 현재 저장되어 있는 측정 전력 사용치를 초과하는 경우마다 증분되므로, PHT에 저장되는 측정된 전력 사용치는 단계적으로으로 증분한다. 예를 들어, 새롭게 저장된 측정 전력 사용치가 낮음(low)이면, 새롭게 판정된 측정 전력 사용치가 중간(medium)이거나 높음(high)인 경우에, 측정된 전력 사용치는 PHT에 중간으로 저장된다. 당업자는 측정된 전력 사용치의 PHT로의 저장이 특정 애플리케이션에서 원하는 바에 따라 선택될 수 있음을 이해할 것이다.
도 3은 본 발명에 따라 수행되는 전력 히스토리 테이블을 이용하는 전력 관리 방법의 흐름도이다. 전력 히스토리 테이블 관리 사용 방법(300)은 어드레스로 컴퓨터 프로세서 시스템의 전력을 관리하기 위해 전력 히스토리 테이블(PHT)에 저장된 측정된 전력 사용값을 이용한다.
상기 방법(300)은 디스패치된 명령어에 대한 명령어의 디스패치를 감시하는 단계로 시작한다(304). 이것은 명령어가 디스패치 되었는지를 판정한다(306). 어떠한 명령어도 디스패치되지 않은 경우에, 이 방법(300)은 계속해서 명령어 디스패치 를 감시하는 단계를 수행한다(304). 명령어가 디스패치된 경우, 디스패치 명령어에 대한 디스패치 명령어 어드레스가 획득된다(308). 측정된 전력 사용치는 디스패치 명령어에서 획득된 디스패치 명령어 어드레스를 위해 PHT로부터 참조된다(look up). 이것은 디스패치 명령어 어드레스에 대한 측정된 전력 사용치가 전력 사용 한계치보다 크거나 같은지를 판정한다(312). 측정된 전력 사용치가 전력 사용 한계치보다 크지 않거나 같지 않은 경우, 명령어의 일반적인 디스패치가 실행되고(316), 이 방법(300)은 계속해서 명령어 디스패치를 모니터링 하는 단계를 수행한다(304). 측정된 전력 사용치가 전력 사용 한계치보다 크거나 같은 경우, 명령어의 절전 디스패치가 절전 수단으로서 수행되고(314), 방법(300)은 종료한다(318). 이 방법(300)은 계속해서 명령어 디스패치를 감시하는 단계를 수행한다(304).
측정된 전력 사용치가 전력 사용 한계치보다 크거나 같은지의 여부를 판정하는데(312) 이용되는 전력 사용 한계치는 소정의 한계치 또는 개별적으로 선택된 한계치일 수 있다. 소정의 한계치는 고정되어 있다. 예를 들어, 전력 사용 한계치가 중간(medium)인 소정 한계치인 경우, 명령어의 절전 디스패치 실행은, 측정된 전력 사용치가 중간이거나 높은 경우에 실행된다(314). 개별적으로 선택된 한계치는 사용자에 의한 입력이거나 프로그램 제어 하에서 조정될 수 있다. 한 실례에서, 전력 사용 한계치가 중간(medium)이 아닌 낮음(low)으로 설정되는 경우 컴퓨터 프로세서 시스템이 보다 많은 전력을 절약하고 실행 시간 요건에 부합함을 사용자는 발견할 수 있으므로, 사용자는 전력 사용 한계치를 낮게 설정한다. 다른 실례에서, 컴퓨터 프로세서 시스템은 실행 시간이 너무 느리며, 이와 함께 전력 사용 한계치가 낮게 설정되었음을 검출할 수 있고, 프로그램 제어 하에서 전력 사용 한계치를 중간으로 설정할 수 있다.
측정된 전력 사용치가 전력 사용 한계치보다 크거나 같은 경우, 명령어의 절전 디스패치가 절전 수단으로서 수행된다(314). 절전 수단의 실례로서, 저속으로 실행하기 위한 명령어를 전송하는 것과, 실행을 위한 명령어들 사이에 브레이크를 전송하는 것을 포함한다. 명령어의 실행 속도가 감소되어, 명령어가 명령어 실행 유닛으로 디스패치되는 방법을 조정함으로써 전력 사용을 줄일 수 있다. 한 실시예에서, 명령어 또는 명령어 그룹의 디스패치 속도가 감소되어, 명령어 실행 유닛에서의 실행 속도를 줄일 수 있다. 명령어 그룹의 경우, 전체 그룹이 한꺼번에 디스패치되는 대신에, 한번에 한개의 명령어가 디스패치될 수 있다. 또 다른 실시예에서는, 브레이크가 명령어들 사이에 삽입되어, 명령어 실행 유닛에서의 실행 속도를 줄일 수 있다. 브레이크의 갯수 및/또는 브레이크의 지속 기간은 전력 관리 필요조건에 비추어 원하는 실행 속도를 제공하도록 선택될 수 있다. 어드레스의 명령어가 높게 측정된 전력 사용치를 갖는 경우, 더 많은 브레이크들이 제공될 수 있다.
전력 관리를 위한 명령어의 절전 디스패치는 PHT에 저장되는 바와 같이 측정된 전력 사용치를 다루기 위해 맞춰질 수 있다. 예를 들어, 중간의 측정된 전력 사용값을 갖는 어드레스보다 높게 측정된 전력 사용값을 갖는 어드레스를 위해 보다 큰 절전 기능이 구현될 수 있다. 보다 느린 디스패치 속도가 높은 값의 어드레스를 위해 이용될 수 있다. 맞춤 조정의 세밀함은 측정된 전력 사용 데이터 저장의 세밀함에 적합할 수 있다. 즉, 16개의 가능한 측정된 전력 사용 증분을 제공하는 4비트 의 측정된 전력 사용 데이터 저장은, 4개의 가능한 측정된 전력 사용 증분을 제공하는 2비트의 측정된 전력 사용 데이터 저장보다 절전에 대해 미세한 제어를 제공할 수 있다.
당업자는 전력 관리를 위한 전력 사용 한계치 및 명령어가 특정 컴퓨터 프로세서 시스템의 동작 목표 및 특성에 기초하여 선택될 수 있음을 이해할 것이다. 동작 목표가 피크 전력을 줄이는 것인 경우, 하나의 전력 사용 한계치가 최적일 수 있다. 동작 목표가 평균 전력을 줄이는 것인 경우, 상이한 전력 사용 한계치가 최적일 수 있다. 예를 들어, 높은 전력 사용 한계치는 대개 피크 전력을 제어하는데 적합하고, 낮은 전력 사용 한계치는 평균 전력을 제어하는데 적합하다.
도 4는 본 발명에 따라 수행되는 전력 관리 방법을 위한 정보 처리 시스템의 블럭도이다. 정보 처리 시스템(401)은 본 명세서에 기술된 동작을 수행할 수 있는 컴퓨터 시스템의 간략화된 실례이다. 정보 처리 시스템(401)은 호스트 버스(405)에 결합되어 있는 프로세서(400)를 포함한다. 레벨 2(L2) 캐시 메모리(410)도 또한 호스트 버스(405)에 결합되어 있다. 호스트-PCI 브리지(415)는 메인 메모리(420)에 결합되어 있고, 캐시 메모리와 메인 메모리 제어 기능을 포함하며, PCI 버스(425), 프로세서(400), L2 캐시(410), 메인 메모리(420), 및 호스트 버스(405) 사이에서 전달을 조정하기 위해서 버스 제어를 제공한다. PCI 버스(425)는 예를 들어 LAN 카드(430) 및/또는 비디오 카드(432)를 포함하는 다양한 장치에 대한 인터페이스를 제공한다. 비디오 카드(432)는 액정 표시 장치(LCD), 음극선관(CRT) 디스플레이, 프로젝션 디스플레이 등과 같은 디스플레이 장치(490)에 동작 가능하게 접속된다. 당업자는 특정 애플리케이션에서 원하는 바와 같이, 비디오 카드(432)가 AGP 또는 PCI 고속 버스와 같은 상이한 종류의 버스에 부착될 수 있음을 이해할 것이다.
PCI-ISA 브리지(435)는 PCI 버스(425)와 ISA 버스(440), 유니버설 시리얼 버스(USB) 기능성(445), IDE 장치 기능성(450), 전력 관리 기능성(445) 사이에서 전달을 조정하기 위해 버스 제어를 제공하고, 실시간 클럭(RTC), DMA 제어, 인터럽트 지원, 및 시스템 관리 버스 지원과 같은 도시되지 않은 다른 기능성 요소들을 포함할 수 있다. 주변 장치 및 입출력(I/O) 장치는 ISA 버스(440)에 결합된 다양한 인터페이스(460)[예컨대, 병렬 인터페이스(462), 직렬 인터페이스(464), 적외선(IR) 인터페이스(466), 키보드 인터페이스(468), 마우스 인터페이스(470), 및 고정 디스크(HDD)(472)]에 부착될 수 있다. 대안으로, (도시되지 않은) 슈퍼 I/O 제어기가 수많은 I/O 장치들을 수용하도록 ISA 버스(440)에 부착될 수 있다. 당업자는 특정 I/O 장치가 전력 관리 방법이 이용되는 컴퓨터 프로세서 시스템을 위한 전력 사용치를 측정하는데 및/또는 명령어 디스패치를 조정하는데 사용될 수 있음을 이해할 것이다.
BIOS(480)는 ISA 버스(440)에 결합되고, 다양한 저레벨 시스템 기능 및 시스템 부트 기능을 위해 필수 프로세서를 실행 가능한 코드로 짜 넣는다. BIOS(480)는 자기 저장 매체, 광학 저장 매체, 플래시 메모리, 랜덤 액세스 메모리, 읽기 전용 메모리, 및 명령어를 인코딩한 신호(예컨대, 네트워크로 부터의 신호)를 전달하는 통신 매체를 포함하는 임의의 컴퓨터 판독 가능 매체에 저장될 수 있다. 네트워크를 통해 파일을 복사하도록 정보 처리 시스템(401)을 다른 컴퓨터 시스템에 부착하 기 위해서, LAN 카드(430)가 PCI 버스(425)에 및 PCI-ISA 브리지(435)에 결합된다. 유사하게, 전화선 연결을 이용하는 인터넷에 접속하도록 ISP에 컴퓨터 시스템(401)을 접속하기 위해서, 모뎀(475)이 직렬 포트(464) 및 PCI-ISA 브리지(435)에 접속된다.
도 4에 도시된 컴퓨터 시스템은 본 명세서에 기술된 발명을 실행할 수 있지만, 이 컴퓨터 시스템은 컴퓨터 시스템의 단순한 일례일 뿐이다. 당업자는 수많은 다른 컴퓨터 시스템 설계가 본 명세서에 기술된 본 발명을 수행할 수 있음을 이해할 것이다.
본 발명의 바람직한 실시예들 중 하나가 애플리케이션, 즉, 예를 들어 컴퓨터의 랜덤 액세스 메모리에 존재할 수도 있는 코드 모듈의 명령어 세트(프로그램 코드)이다. 컴퓨터에 의해 요구될 때까지, 명령어 세트는 또 다른 컴퓨터 메모리 예를 들어 하드 디스크 드라이브 상에 저장되거나, (결과적으로 CD ROM에서 사용하기 위한) 광 디스크 또는 (결과적으로 플로피 디스크 드라이브에서 사용하기 위한) 플로피 디스크와 같은 탈착가능한 저장 장치에 저장되거나, 인터넷 또는 다른 컴퓨터 네트워크를 통해 다운로드 될 수 있다. 따라서, 본 발명은 컴퓨터 판독 가능 매체상에 저장된 컴퓨터 프로그램으로서 구현될 수 있고, 디지털 처리 기기에 의해 실행 가능하여 이러한 동작들을 수행하고 데이터를 디스플레이한다. 게다가, 기술된 다양한 방법들은 소프트웨어에 의해 선택적으로 구동되거나 재구성되는 범용 컴퓨터에 편리하게 구현되기도 하지만, 당업자라면 이와 같은 방법들이 하드웨어에서, 펌웨어에서, 또는 요구되는 방법의 단계들을 수행하도록 구성된 보다 특정한 기기에서도 수행될 수 있음을 인식할 것이다.
본 명세서에 개시된 본 발명의 실시예들이 바람직한 것으로 현재 고려되고 있지만, 다양한 변화 및 변경이 본 발명의 사상과 범위를 벗어나지 않고 행해질 수 있다. 본 발명의 범위는 첨부된 특허 청구 범위에 지시되며, 동일한 수단 및 범위 내에 있는 모든 변화들은 특허 청구 범위에 포함되어 있는 것으로 의도된다.
도 1은 본 발명에 이용하기 위한 컴퓨터 프로세서 시스템의 블럭도이다.
도 2는 본 발명에 따라 수행되는 전력 관리 방법을 위한 전력 히스토리 테이블 관리의 흐름도이다.
도 3은 본 발명에 따라 수행되는 전력 히스토리 테이블을 이용하는 전력 관리 방법의 흐름도이다.
도 4는 본 발명에 따라 수행되는 전력 관리 방법을 위한 정보 처리 시스템의 블럭도이다.

Claims (10)

  1. 컴퓨터 프로세서 시스템을 위한 전력 관리 방법으로서,
    전력 사용치를 측정하는 단계와;
    마지막 명령어에 대한 명령어의 실행을 감시하는 단계와;
    상기 마지막 명령어에 대한 마지막 명령어 어드레스를 판정하는 단계와;
    상기 마지막 명령어에 대한 측정된 전력 사용치를 판정하는 단계와;
    전력 히스토리 테이블(PHT)에 상기 측정된 전력 사용치와 연관된 상기 마지막 명령어 어드레스를 저장하는 단계
    를 포함하는 전력 관리 방법.
  2. 제1항에 있어서, 상기 전력 사용치를 측정하는 단계는,
    각 실행 유닛에 대한 온타임을 판정하는 단계와;
    모든 실행 유닛에 대한 온타임을 합산하는 단계
    를 포함하는 것인, 전력 관리 방법.
  3. 제1항에 있어서, 상기 전력 사용치를 측정하는 단계는,
    각 실행 유닛에 대한 온타임을 판정하는 단계와;
    각 실행 유닛의 부분 영역만큼의 가중치를 이용하여 모든 실행 유닛에 대한 온타임을 합한하는 단계
    를 포함하는 것인, 전력 관리 방법.
  4. 제1항에 있어서,
    상기 전력 히스토리 테이블에 저장된 측정된 전력 사용치를 소정의 간격으로 리셋하는 단계를 더 포함하는 전력 관리 방법.
  5. 제1항에 있어서,
    디스패치 명령어에 대한 명령어의 디스패치를 감시하는 단계와;
    상기 디스패치 명령어에 대한 디스패치 명령어 어드레스를 판정하는 단계와;
    전력 히스토리 테이블(PHT)로부터 상기 디스패치 명령어에 대한 측정된 전력 사용치를 판정하는 단계와;
    상기 디스패치 명령어 어드레스에 대한 측정된 전력 사용치가 전력 사용 한계치보다 크거나 같은지를 판정하는 단계와;
    상기 디스패치 명령어 어드레스에 대한 측정된 전력 사용치가 전력 사용 한계치를 초과하는 경우, 절전 수단을 실행하는 단계
    를 더 포함하는 전력 관리 방법.
  6. 제5항에 있어서, 상기 절전 수단은 저속으로 실행하기 위한 명령어를 전송하는 것과 실행을 위한 명령어들 사이에 브레이크를 전송하는 것을 포함하는 그룹으로부터 선택되는 것인 전력 관리 방법.
  7. 컴퓨터 프로세서 시스템을 위한 전력 관리용의 컴퓨터 이용 가능 매체에서의 컴퓨터 프로그램 제품으로서,
    전력 사용치를 측정하기 위한 컴퓨터 프로그램 코드와;
    마지막 명령어에 대한 명령어의 실행을 감시하기 위한 컴퓨터 프로그램 코드와;
    상기 마지막 명령어에 대한 마지막 명령어 어드레스를 판정하기 위한 컴퓨터 프로그램 코드와;
    상기 마지막 명령어에 대한 측정된 전력 사용치를 판정하기 위한 컴퓨터 프로그램 코드와;
    전력 히스토리 테이블(PHT)에 상기 측정된 전력 사용치와 연관된 상기 마지막 명령어 어드레스를 저장하기 위한 컴퓨터 프로그램 코드
    를 포함하는 컴퓨터 프로그램 제품.
  8. 정보 처리 시스템으로서,
    프로세서와;
    디지털 처리 기기에 의해 실행 가능한 명령어를 저장하여 컴퓨터 프로세서 시스템을 위한 전력 관리를 제공하도록 동작을 수행하기 위해 상기 프로세서에 결합된 메모리
    를 포함하고, 상기 동작은,
    전력 사용치를 측정하는 단계와;
    마지막 명령어에 대한 명령어의 실행을 감시하는 단계와;
    상기 마지막 명령어에 대한 마지막 명령어 어드레스를 판정하는 단계와;
    상기 마지막 명령어에 대한 측정된 전력 사용치를 판정하는 단계와;
    전력 히스토리 테이블(PHT)에 상기 측정된 전력 사용치와 연관된 상기 마지막 명령어 어드레스를 저장하는 단계
    를 포함하는 것인, 정보 처리 시스템.
  9. 전력 관리를 이용하는 컴퓨터 프로세서 시스템으로서,
    전력 히스토리 테이블(PHT)를 갖는 명령어 인출 제어 유닛과;
    명령어 디스패치 제어 유닛과;
    전력 제어 유닛을 갖는 명령어 실행 유닛과;
    프로그램 상태 및 데이터 유닛
    을 포함하고, 상기 명령어 디스패치 제어 유닛은 실행을 위해 상기 명령어 인출 제어 유닛으로부터 상기 명령어 실행 유닛으로 명령어를 디스패치하고, 상기 전력 제어 유닛은 측정된 전력 사용치에 대한 명령어의 실행을 감시하며, 상기 프로그램 상태 및 데이터 유닛은 마지막 명령어 어드레스에 대한 명령어의 실행을 감시하고, 상기 측정된 전력 사용치는 상기 마지막 명령어 어드레스와 연관되어 전력 히스토리 테이블(PHT)에 저장되는 것인 컴퓨터 프로세서 시스템.
  10. 제9항에 있어서, 상기 명령어 인출 제어 유닛은 분기 히스토리 테이블(BHT)를 가지며, 상기 마지막 명령어 어드레스와 연관된 상기 분기 히스토리 테이블(BHT)에 저장되어 있는 분기 히스토리의 명령어 실행을 감시하는 것인 컴퓨터 프로세서 시스템.
KR1020070102710A 2006-10-19 2007-10-11 컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법 KR101020008B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/551,007 US7673160B2 (en) 2006-10-19 2006-10-19 System and method of power management for computer processor systems
US11/551,007 2006-10-19

Publications (2)

Publication Number Publication Date
KR20080035461A true KR20080035461A (ko) 2008-04-23
KR101020008B1 KR101020008B1 (ko) 2011-03-09

Family

ID=39319464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070102710A KR101020008B1 (ko) 2006-10-19 2007-10-11 컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법

Country Status (4)

Country Link
US (1) US7673160B2 (ko)
JP (1) JP5164096B2 (ko)
KR (1) KR101020008B1 (ko)
CN (1) CN101165635B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101363844B1 (ko) * 2010-07-26 2014-02-14 애플 인크. 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5243304B2 (ja) 2008-04-10 2013-07-24 株式会社ニフコ 物品固定具
US8010824B2 (en) * 2008-04-11 2011-08-30 Advanced Micro Devices , Inc. Sampling chip activity for real time power estimation
US8245065B2 (en) 2009-03-04 2012-08-14 International Business Machines Corporation Power gating processor execution units when number of instructions issued per cycle falls below threshold and are independent until instruction queue is full
US8365175B2 (en) * 2009-03-10 2013-01-29 International Business Machines Corporation Power management using dynamic application scheduling
US8442786B2 (en) 2010-06-02 2013-05-14 Advanced Micro Devices, Inc. Flexible power reporting in a computing system
US8504854B2 (en) 2010-06-21 2013-08-06 Advanced Micro Devices, Inc. Managing multiple operating points for stable virtual frequencies
US8510582B2 (en) 2010-07-21 2013-08-13 Advanced Micro Devices, Inc. Managing current and power in a computing system
US8756442B2 (en) * 2010-12-16 2014-06-17 Advanced Micro Devices, Inc. System for processor power limit management
US8806254B2 (en) * 2011-02-01 2014-08-12 Dell Products L.P. System and method for creating and dynamically maintaining system power inventories
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8650428B2 (en) 2011-07-19 2014-02-11 Ati Technologies Ulc Dynamic weight calculation in a digital power estimation and management system
US8810584B2 (en) * 2011-09-13 2014-08-19 Nvidia Corporation Smart power management in graphics processing unit (GPU) based cluster computing during predictably occurring idle time
US8904208B2 (en) * 2011-11-04 2014-12-02 International Business Machines Corporation Run-time task-level dynamic energy management
US8862909B2 (en) 2011-12-02 2014-10-14 Advanced Micro Devices, Inc. System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
CN102902346B (zh) * 2012-09-27 2015-07-08 中国科学院声学研究所 降低指令高速缓冲存储器功耗的方法及装置
JP2015097080A (ja) * 2013-10-08 2015-05-21 株式会社東芝 画像形成装置の管理装置及び管理プログラム
US20150220128A1 (en) * 2014-02-04 2015-08-06 Infineon Technologies Ag Method and Apparatus for Use in a Data Processing System
US9847662B2 (en) 2014-10-27 2017-12-19 Sandisk Technologies Llc Voltage slew rate throttling for reduction of anomalous charging current
US9880605B2 (en) * 2014-10-27 2018-01-30 Sandisk Technologies Llc Method and system for throttling power consumption
US9916087B2 (en) 2014-10-27 2018-03-13 Sandisk Technologies Llc Method and system for throttling bandwidth based on temperature
CN104461395A (zh) * 2014-12-15 2015-03-25 长安大学 一种新型计算机存储系统及计算机系统
CN105786152B (zh) * 2014-12-26 2019-03-29 联想(北京)有限公司 一种控制方法及电子设备
US9977480B2 (en) * 2015-04-15 2018-05-22 Qualcomm Incorporated Selective coupling of power rails to a memory domain(s) in a processor-based system
US10684671B2 (en) 2016-05-27 2020-06-16 Qualcomm Incorporated Adaptively controlling drive strength of multiplexed power from supply power rails in a power multiplexing system to a powered circuit
US11836031B2 (en) 2020-11-10 2023-12-05 Advanced Micro Devices, Inc. Application override of power estimation mechanism

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3058986B2 (ja) * 1992-04-02 2000-07-04 ダイヤセミコンシステムズ株式会社 コンピュータシステムの節電制御装置
JP3618442B2 (ja) * 1996-02-08 2005-02-09 株式会社東芝 マイクロプロセッサのパワーエスティメータ装置
US5887179A (en) * 1996-06-11 1999-03-23 Motorola, Inc. System power saving means and method
JPH11161692A (ja) * 1997-11-28 1999-06-18 Matsushita Electric Ind Co Ltd 消費電力のシミュレーション方法
JP3573957B2 (ja) 1998-05-20 2004-10-06 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ内のプロセッサの動作速度制御方法及びコンピュータ
JP2000322257A (ja) * 1999-05-10 2000-11-24 Nec Corp 条件分岐命令の投機的実行制御方法
JP3877518B2 (ja) 2000-12-13 2007-02-07 松下電器産業株式会社 プロセッサの電力制御装置
US6826704B1 (en) * 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
EP1611498B1 (en) * 2003-03-27 2010-03-10 Nxp B.V. Branch based activity monitoring
CN1202425C (zh) * 2003-04-22 2005-05-18 李学湖 电能管理网设备
US7134028B2 (en) 2003-05-01 2006-11-07 International Business Machines Corporation Processor with low overhead predictive supply voltage gating for leakage power reduction
JP2006059068A (ja) * 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置
US7987393B2 (en) * 2005-05-16 2011-07-26 Texas Instruments Incorporated Determining operating context of an executed instruction

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101363844B1 (ko) * 2010-07-26 2014-02-14 애플 인크. 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들
US9063732B2 (en) 2010-07-26 2015-06-23 Apple Inc. Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption

Also Published As

Publication number Publication date
KR101020008B1 (ko) 2011-03-09
US20080098242A1 (en) 2008-04-24
JP5164096B2 (ja) 2013-03-13
US7673160B2 (en) 2010-03-02
CN101165635A (zh) 2008-04-23
CN101165635B (zh) 2010-12-01
JP2008102927A (ja) 2008-05-01

Similar Documents

Publication Publication Date Title
KR101020008B1 (ko) 컴퓨터 프로세서 시스템을 위한 전력 관리 시스템 및 방법
US8006070B2 (en) Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system
US7627742B2 (en) Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
US7861068B2 (en) Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling
KR101518440B1 (ko) 프로세싱 노드의 동적 성능 제어
US20180074568A1 (en) Method and apparatus for dynamic clock and voltage scaling in a computer processor based on program phase
US7539885B2 (en) Method and apparatus for adaptive CPU power management
EP1307806B1 (en) MECHANISM TO CONTROL di/dt FOR A MICROPROCESSOR
US6931559B2 (en) Multiple mode power throttle mechanism
US8347119B2 (en) System and method for processor utilization adjustment to improve deep C-state use
US6282663B1 (en) Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor
US7925853B2 (en) Method and apparatus for controlling memory array gating when a processor executes a low confidence branch instruction in an information handling system
US8261276B2 (en) Power-efficient thread priority enablement
EP1352314B1 (en) Power dissipation control mechanism for cpu
US11797456B2 (en) Systems and methods for coordinating persistent cache flushing
EP0901063A2 (en) Power management methods
EP4314987A1 (en) System support for persistent cache flushing
EP4314988A1 (en) Systems and methods for processing asynchronous reset events while maintaining persistent memory state
CN117441144A (zh) 用于处理异步重置事件同时维持持久性存储器状态的系统和方法
CN117396828A (zh) 对持久性高速缓存刷新的系统支持

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150127

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee