KR101701004B1 - 칩 상의 멀티코어 시스템 상의 전역 칩 전력을 관리하기 위한 방법 및 장치 - Google Patents

칩 상의 멀티코어 시스템 상의 전역 칩 전력을 관리하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101701004B1
KR101701004B1 KR1020140128554A KR20140128554A KR101701004B1 KR 101701004 B1 KR101701004 B1 KR 101701004B1 KR 1020140128554 A KR1020140128554 A KR 1020140128554A KR 20140128554 A KR20140128554 A KR 20140128554A KR 101701004 B1 KR101701004 B1 KR 101701004B1
Authority
KR
South Korea
Prior art keywords
power
core processors
core
controller
processor
Prior art date
Application number
KR1020140128554A
Other languages
English (en)
Other versions
KR20150034650A (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 KR20150034650A publication Critical patent/KR20150034650A/ko
Application granted granted Critical
Publication of KR101701004B1 publication Critical patent/KR101701004B1/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/3243Power saving in microcontroller unit
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B17/00Monitoring; Testing
    • H04B17/20Monitoring; Testing of receivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • H04L2027/0016Stabilisation of local oscillators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • H04L2027/0044Control loops for carrier regulation
    • H04L2027/0063Elements of loops
    • H04L2027/0067Phase error detectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/0014Carrier regulation
    • H04L2027/0044Control loops for carrier regulation
    • H04L2027/0071Control of loops
    • H04L2027/0075Error weighting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

적어도 하나의 예시적인 실시예에 따라, 멀티코어 프로세서 칩에서 전력을 제어하기 위한 방법 및 대응하는 장치는: 멀티코어 프로세서 칩 내의 제어기에서, 멀티코어 프로세서 칩 내의 다수의 코어 프로세서들과 연관된 하나 이상의 전력 추정치들을 누적하는 단계를 포함한다. 전역 전력 문턱값이 누적 전력 추정치에 기초하여 결정되고, 누적 전력 추정치는 누적된 하나 이상의 전력 추정치들에 적어도 부분적으로 기초하여 결정된다. 제어기는 결정된 전역 전력 문턱값에 기초하여 코어 프로세서들 각각에서 전력 소비가 제어되도록 한다. 제어기는 코어 프로세서들에서 직접 전력 소비를 제어할 수도 있고 또는 코어 프로세서들이 전력 소비를 제어하도록 명령할 수도 있다.

Description

칩 상의 멀티코어 시스템 상의 전역 칩 전력을 관리하기 위한 방법 및 장치{METHOD AND APPARATUS FOR MANAGING GLOBAL CHIP POWER ON A MULTICORE SYSTEM ON CHIP}
컴퓨터 프로세서들 내에서 전력 소비는 일반적으로 프로세서 또는 대응하는 칩의 과열을 회피하는 방식으로 제어된다. 즉, 프로세서 내의 전력 소비를 제어함으로써, 대응하는 온도가 또한 제어 하에서 유지된다.
멀티코어 프로세서 디바이스들에서의 전력 관리는 일반적으로 코어 프로세서 각각에서 국부적으로 수행된다. 성능을 개선하고 효율성을 향상시키기 위해, 이러한 디바이스들 상의 전역 칩 전력 (global chip power) 을 관리하기 위한 능력이 필요하다.
적어도 하나의 예시적인 실시예에 따라, 멀티코어 프로세서 칩에서 전력 소비를 제어하기 위한 전역 전력 관리 접근 방법은 멀티코어 프로세서 칩 내의 제어기에서, 멀티코어 프로세서 칩 내의 다수의 코어 프로세서들과 연관된 하나 이상의 전력 추정치들을 누적하는 단계를 포함한다. 전역 전력 문턱값 (global power threshold) 은 누적 전력 추정치 (cumulative power estimate) 에 기초하여 결정되고, 누적 전력 추정치는 누적된 하나 이상의 전력 추정치들에 적어도 부분적으로 기초하여 결정된다. 제어기는 결정된 전역 전력 문턱값에 기초하여 다수의 코어 프로세서들 각각에서 전력 소비가 제어되게 한다.
하나 이상의 전력 추정치들을 누적할 때, 제어기는 다수의 코어 프로세서들에 의한 총 전력 소비를 나타내는 누적 전력 추정치를 표시하는 단일 값을 수신할 수도 있다. 다수의 코어 프로세서들은 코어 프로세서 각각에서, 국부적인 전력 소비 추정치가 누적 전력 추정치를 나타내는 값에 추가되고 다음 코어 프로세서로 포워딩되는, 직렬 구성을 형성하는 방식으로 서로 커플링될 수도 있다. 마지막 코어 프로세서에서, 누적 전력 추정치의 최종 값은 제어기로 포워딩된다. 대안적으로, 다수의 코어 프로세서들은 제어기가 하나 이상의 전력 추정치를 수신하는, 하나 이상의 직렬 구성을 형성하는 방식으로 커플링될 수도 있다. 또 다른 예에서, 코어 프로세서 각각은 자신의 국부적인 전력 소비 추정치를 제어기로 바로 전송할 수도 있다.
제어기는 제어기로부터 다수의 코어 프로세서들 중 적어도 하나의 코어 프로세서로 판독 명령을 전송하도록 구성될 수도 있다. 판독 명령은 판독 동작의 표시 및 페이로드 값을 포함할 수도 있다. 판독 명령을 수신하는 코어 프로세서는 국부적인 전력 추정치를 페이로드 값에 추가하고, 업데이트된 페이로드 값을 갖는 판독 명령을 다음 코어 프로세서 또는 제어기로 포워딩한다. 페이로드 값은 하나 이상의 코어 프로세서와 연관된 전력 추정치들의 누적 합을 나타낸다.
전역 전력 문턱값을 결정할 때, 제어기는 결정된 누적 전력 추정치 및 시간에 따른 대응하는 평균 양자가 목표된 타깃 전력보다 작다고 결정하면, 전역 전력 문턱값을 나타내는 파라미터 값을 증가시키고, 결정된 누적 전력 추정치가 목표된 타깃 전력보다 크다고 결정하면, 전역 전력 문턱값을 나타내는 파라미터 값을 감소시키도록 구성된다. 목표된 타깃 전력은 멀티코어 프로세서 칩의 사용자 또는 제조자에 의해 설정된 상수일 수도 있다. 대안적으로, 목표된 타깃 전력은 멀티코어 프로세서 칩의 측정된 온도 값들에 적어도 부분적으로 기초하여 동적으로 설정될 수도 있다.
멀티코어 프로세서 칩은 또한 하나 이상의 코프로세서 블록들을 포함할 수도 있다. 하나 이상의 코프로세서 블록들의 전력 소비를 설명하기 위해, 제어기는 하나 이상의 코프로세서 블록들과 연관된 하나 이상의 클록 액티비티들의 출현 수들 (representation) 을 누적하고; 누적된 하나 이상의 출현 수들에 적어도 부분적으로 기초하여 상기 하나 이상의 코프로세서 블록들과 연관된 하나 이상의 전력 추정치들을 결정하도록 구성되고, 멀티코어 프로세서 칩에 대한 누적 전력 추정치를 결정하는 것은 상기 하나 이상의 코프로세서 블록들과 연관된 상기 하나 이상의 전력 추정치들에 더 기초한다. 하나 이상의 코프로세서 블록들과 연관된 하나 이상의 전력 추정치들을 결정할 때, 제어기는 예를 들어, 클록 액티비티의 출현 수 각각과 연관된 전력 소비를 결정하기 위해 룩업 테이블을 채택할 수도 있다. 하나 이상의 코프로세서 블록들과 연관된 하나 이상의 클록 액티비티들의 출현 수들은 코프로세서 블록 각각에서 동일한 코프로세서 블록과 연관된 클록 액티비티 사이클들을 카운트하고 코프로세서 블록과 연관된 클록 액티비티의 출현 수 내의 단일 심볼로 미리 결정된 수의 카운트된 클록 액티비티 사이클들을 맵핑함으로써 코프로세서 블록과 연관된 클록 액티비티의 출현 수를 생성함으로써 형성될 수도 있다. 그 후 코프로세서 블록과 연관된 클록 액티비티의 출현 수는 제어기에 의해 수신된다.
코어 프로세서 각각에서 전력 소비가 제어되게 할 때, 제어기는 주 클록 주파수 (master clock frequency) 를 조정하고, 그에 따라 다수의 코어 프로세서들과 연관된 클록들의 주파수들에 영향을 줌으로써 코어 프로세서들에서 전력 소비를 제어할 수도 있다. 대안적으로, 제어기는 코어 프로세서들이 자신의 국부적인 전력 소비를 제어하도록 지시하는 명령을 모든 코어 프로세서들에 전송한다. 이러한 명령은 전역 문턱값의 표시를 포함할 수도 있다. 전역 전력 문턱값의 수신 시, 코어 프로세서 각각은 코어 프로세서에 의해 사용되는 전력 제한을 결정하기 위해 전역 전력 문턱값과 국부적인 전력 문턱값을 비교한다.
전술한 바는 유사한 참조 문자들이 상이한 도면들에 걸쳐 동일한 부분들을 지칭하는 첨부 도면들에 예시된 바와 같이, 이하의 본 발명의 예시적인 실시예들의 보다 특정한 기술로부터 명백해질 것이다. 도면들은 축척대로일 필요는 없고, 대신 본 발명의 실시예들을 예시할 때 강조된다.
도 1은 적어도 하나의 예시적인 실시예에 따라 멀티코어 프로세서 칩을 예시하는 블록도이다.
도 2는 적어도 하나의 예시적인 실시예에 따라 멀티코어 프로세서 칩의 전력을 제어하는 방법을 예시하는 흐름도이다.
도 3a 및 도 3b는 다수의 코어 프로세서들로부터 전력 추정치(들)를 누적하기 위한 예시적인 직렬 구성들을 도시하는 블록도들이다.
도 4는 다수의 코프로세서 블록들로부터 전력 추정치들을 누적하기 위한 구성을 도시하는 블록도이다.
도 5는 적어도 하나의 예시적인 실시예에 따라, 코프로세서 블록 클록과 연관된 클록 신호 및 대응하는 수정된 클록 신호의 예를 도시하는 도면이다.
본 발명의 예시적인 실시예들의 설명이 이어진다.
멀티코어 프로세서 칩들을 위한 일반적인 전력 관리 기법들은 일반적으로 대응하는 코어 프로세서에 국부적이고, 멀티코어 프로세서 칩에 대해 전역으로 수행되지 않는다. 코어 프로세서 각각에 국부적으로 전력 관리를 적용할 때, 멀티코어 프로세서 칩에 대한 전력 소비 예산 (power consumption budget) 은 코어 프로세서 각각에 대한 전력 예산을 계산하기 위해 대응하는 수의 코어 프로세서들로 나눠진다. 그 후, 코어 프로세서 각각은 코어 프로세서 각각에 대해 계산된 전력 예산에 기초하여 다른 코어 프로세서들과 독립적으로 자신의 전력을 관리한다. 이와 같이, 주어진 코어 프로세서의 동적 전력이 제한될 수도 있다. 또한, 코어 프로세서 각각에 전력 관리를 국부적으로 적용하는 것은 성능 저하로 이끌 수도 있다. 예를 들어, 제1 코어 프로세서는 제1 코어 프로세서에 이용가능한 전력 예산의 적은 부분만을 사용할 수도 있는 반면, 제2 코어 프로세서는 코어 프로세서 각각에 대해 계산된 전력 예산만큼 할당된 것보다 많은 전력을 필요로 할 수도 있다. 이와 같이, 전력 관리를 국부적으로 수행할 때, 일부 태스크들은 수행되는데 더 많은 시간이 걸릴 수도 있고, 멀티코어 프로세서 칩에서 보다 많은 전력 소비를 유발할 수도 있다. 이하에서, 칩 레벨에서 전역 전력 관리를 적용하는 실시예들이 기술된다.
도 1은 적어도 하나의 예시적인 실시예에 따라 멀티코어 프로세서 칩 (100) 을 예시하는 블록도이다. 멀티코어 프로세서 칩 (100) 은 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 및 중앙 제어기 (110) 를 포함한다. 중앙 제어기 (110) 는 멀티코어 프로세서 칩 (100) 의 전역 전력을 관리하도록 구성된다. 중앙 제어기는 다수의 코어 프로세서들 (120-1 내지 120-N) 에 커플링되고 주어진 시간 간격 동안 멀티코어 프로세서 칩 (100) 에 의한 전역 전력 소비의 추정치를 결정하도록 구성된다. 적어도 하나의 양태에 따라, 전역 전력 추정치는 고정된 시간 간격 동안, 주기적으로 결정된다. 전역 전력 추정치를 결정할 때, 중앙 제어기 (110) 는 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 과 연관된 하나 이상의 전력 추정치들을 기록하도록 구성된다. 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 각각에서, 전체가 본 명세서에 통합된, 미국 특허 제 8,356,194 호에 기술된 실시예들에 따라 국부적인 전력 추정이 수행될 수도 있다.
멀티코어 프로세서 칩 (100) 은 하나 이상의 코프로세서 블록들 (예를 들어, 130-1 내지 130-M) 을 더 포함할 수도 있다. 적어도 하나의 예시적인 실시예에 따라, 코프로세서 블록들 (예를 들어, 130-1 내지 130-M) 은 입력/출력 (I/O) 인터페이싱 동작 및/또는 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 의 기능들을 지원하기 위한 다른 동작들을 수행하도록 구성된다. 중앙 제어기 (110) 는 멀티코어 프로세서 칩 (100) 의 전역 전력 추정치를 결정할 때, 코프로세서 블록들 (예를 들어, 130-1 내지 130-M) 에 의해 소비된 전력을 고려하도록 구성된다.
도 2는 적어도 하나의 예시적인 실시예에 따라 멀티코어 프로세서 칩 (100) 의 전력을 제어하는 방법을 예시하는 흐름도이다. 블록 210에서, 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 과 연관된 하나 이상의 전력 추정치들이 중앙 제어기 (110) 에 의해 누적된다. 중앙 제어기 (110) 는 멀티코어 프로세서 칩 (100) 이 하나 이상의 코프로세서 블록들을 포함하면, 블록 220에서, 하나 이상의 코프로세서 블록들 (예를 들어, 130-1 내지 130-M) 과 연관된 전력 추정치(들)를 또한 누적할 수도 있다.
블록 230에서, 중앙 제어기 (110) 는 고정된 시간 간격 동안 멀티코어 프로세서 칩 (100) 에 의해 소비된 누적 전력의 추정치를 결정하기 위해 누적된 전력 추정치(들)를 사용한다. 예를 들어, 중앙 제어기 (110) 는 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 과 연관된 누적된 전력 추정치들을, 그리고 가능하다면, 하나 이상의 코프로세서 블록들 (예를 들어, 130-1 내지 130-M) 과 연관된 누적된 전력 추정치(들)를 합산할 수도 있다. 중앙 제어기는 누적 전력 추정치를 결정할 때 다른 계산적인 프로세싱을 대안적으로 또는 추가적으로 수행할 수도 있다. 블록 230에서 이 프로세스는 선택적일 수도 있다. 예를 들어, 중앙 제어기는 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 에 의해 소비된 누적 전력을 표시하는 단일 전력 추정치를 누적할 수도 있다. 이러한 경우에서, 누적된 단일 전력 추정치는 누적 전력 추정치로 사용될 수도 있다.
블록 240에서, 전역 전력 문턱값이 중앙 제어기 (110) 에 의해 결정된다. 전역 전력 문턱값은 누적 전력 추정치에 기초하여 결정된다. 누적 전력 추정치 외에, 타깃 전력 값이 전역 전력 문턱값을 결정할 때 또한 사용될 수도 있다. 전역 전력 문턱값은 고정된 시간 간격 동안 임의의 코어 프로세서들에 의해 초과되지 않는 전역 전력 소비 제한을 나타낸다. 타깃 전력 값은 고정된 시간 간격 동안 멀티코어 프로세서 칩 (100) 에 대한 타깃 전력 소비 레벨을 나타낸다.
적어도 하나의 예시적인 구현예에 따라, 중앙 제어기 (110) 는 누적 차 파라미터 및 전역 문턱값 파라미터를 유지한다. 누적 차 파라미터 (예를 들어, Cum_Diff) 는 결정된 누적 전력 추정치들 (예를 들어, Cum_Power_Estimate) 과 타깃 전력 (예를 들어, Target_Power) 간의 차들의 합 또는 평균을 나타낸다. 예를 들어, 각각의 시간 간격에서, 누적 차 파라미터는 다음과 같이 업데이트된다:
Cum_Diff = Cum_Diff + (Cum_Power_Estimate - Target_power).
Cum_Diff 파라미터는 주어진 시간 기간에, 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 을 활동 상태 (busy) 로 유지하기에 충분한 작동 부하 (workload) 가 있다면, 0에 가까울 것으로 예상된다. 시간 기간 동안 작동 부하가 불충분하다면, Cum_Diff 파라미터는 이 파라미터가 포화되는 (saturate) 음의 최소 값에 도달할 때까지 음 (negative) 이 된다. 음의 최소 값 또는 포화 값은 예를 들어, 멀티코어 프로세서 칩 (100) 이 마지막 몇 ㎳ 동안 유휴 상태 (idle) 였다는 것을 표시하는 열적 상수에 기초하여 규정될 수도 있다. 즉, 포화 값은 멀티코어 프로세서 칩 (100) 이 자신의 짧고 관련 있는 이력만을 기억하게 한다. 대안적으로, 누적 전력 차는 가중화된 합으로 규정될 수도 있다.
전역 문턱값 파라미터 (예를 들어, Global_lim) 는 각각의 시간 간격에 다음과 같이 업데이트될 수도 있다:
Global_lim = Global_lim + 1 if (Cum_Power_Estimate < Target_Power) and (Cum_Diff < 0), 및
Global_lim = Global_lim - 1 if (Cum_Power_Estimate > Target_Power).
즉, 전역 전력 문턱값은 누적 전력 추정치가 타깃 전력보다 자고 누적 차가 0보다 작을 때만 증가된다. 또한, 전역 전력 문턱값은 누적 전력 추정치가 타깃 전력보다 클 때만 감소된다.
예시적인 양태에 따라, 타깃 전력 값은 멀티코어 프로세서 칩 (100) 의 제조자에 의해 설정된 상수일 수도 있다. 대안적으로, 타깃 전력 값은 멀티코어 프로세서 칩 (100) 의 소프트웨어에 의해 설정가능할 수도 있다. 또 다른 양태에 따라, 타깃 전력은 예를 들어, 온도 센서들에 의해 제공된 정보에 기초하여 동적일 수도 있다. 예를 들어, 타깃 전력은 멀티코어 프로세서 칩 (100) 의 기록된 온도에 기초하여 변할 수도 있다.
특정한 시간 간격 동안 전역 문턱값 (예를 들어, Global_lim) 이 결정되면, 중앙 제어기 (110) 는 적어도 하나의 코어 프로세서가 자신의 전력 소비를 감소시키거나 증가시키게 하도록 구성된다. 예시적인 실시예에 따라, 중앙 제어기 (110) 는 모든 코어 프로세서들 (예를 들어, 120-1 내지 120N) 로 코어 프로세서들의 대응하는 전력 소비를 제어하도록 코어 프로세서들에 지시하는 명령을 전송할 수도 있다. 예를 들어, 중앙 제어기 (110) 는 결정된 전역 문턱값 (예를 들어, Global_lim) 을 모든 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 로 전송할 수도 있다. 각각의 코어 프로세서는 국부적인 전력 제한 값 (예를 들어, Power_lim) 을 유지한다. 대안적으로, 중앙 제어기 (110) 는 이전의 전역 문턱값에 적용될 증가 또는 감소를 나타내는 값을 전송할 수도 있다. 각각의 코어 프로세서에서, 전역 문턱값의 최소 값 및 국부적인 전력 제한이 적어도 다음 시간 간격의 전력 소비에 대한 상한으로서 사용된다. 또 다른 예시적인 실시예에 따라, 중앙 제어기 (110) 는 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 에서 전력 소비를 직접적으로 감소 또는 증가시킬 수도 있다. 예를 들어, 중앙 제어기는 결과적으로 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 의 클록들의 주파수를 조정하는 주 클록의 주파수를 조정할 수도 있다.
적어도 하나의 예시적인 실시예에 따라, 멀티코어 프로세서 칩 (100) 에 대해 결정된 누적 전력 추정치가 타깃 전력을 초과하지 않을 때, 중앙 제어기 (110) 는 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 로 코어 프로세서들이 대응하는 주파수들을 감소시키기 위해 자신들을 쓰로틀 (throttle) 할 필요가 없다는 것을 지시하는 신호를 전송한다. 그러나, 멀티코어 프로세서 칩 (100) 에 대해 결정된 누적 전력 추정치가 타깃 전력을 초과하고 누적 차가 0일 때, 중앙 제어기 (110) 는 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 이 자신들을 쓰로틀하도록 지시하는 신호를 전송한다. 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 이 자신들을 쓰로틀하거나 쓰로틀하지 않도록 지시하든, 전송된 신호는 제어 동작의 표시 및 전역 문턱값을 반송하는 페이로드를 포함할 수도 있다. 그 후, 전역 문턱값과 국부적인 전력 제한을 비교함으로써, 각각의 코어 프로세서는 쓰로틀링을 수행할지 수행하지 않을지 결정한다. 즉, 전송된 신호는 동작의 표시가 판독 동작 대신 제어 동작을 나타내고 페이로드가 전력 추정 값 대신 전역 문턱값을 나타내는 것을 제외하고 판독 명령을 나타내는 신호와 유사할 수도 있다. 예를 들어, 판독 명령은 0으로 표시될 수도 있고 제어 명령은 1로 표시될 수도 있다.
다른 예시적인 구현예에 따라, 2 개의 배선들이 중앙 제어기 (110) 를 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 로 커플링할 수도 있다. 하나의 배선은 "throttle_this_interval" 배선으로 지칭될 수도 있다. 이 배선은 모든 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 에 브로드캐스트 (broadcast) 된다. "throttle_this_interval" 배선은 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 에 연속적으로 브로드캐스트될 수도 있다. 제2 배선은 "sum" 배선으로 지칭될 수도 있다. "sum" 배선은 각각의 코어 프로세서 주위로 또는 다수의 코어 프로세서들의 서브세트 주위로 연속적으로 보내지고 각각의 코어 프로세서를 가로지른 (traversing through) 후에 중앙 제어기 (110) 로 리턴한다. 유휴 상태 후에, "sum" 배선의 제1 어써션 (assertion) 은 누적 전력 추정치가 배선 상의 다음 번호의 비트들 내에서 이어진다는 것, LSB 먼저 MSB (most significant bit) 가 나중을 표시한다. 코어 프로세서가 "sum" 배선이 온 (on) 이라고 검출할 때, 코어 프로세서는 자신의 국부적인 전력 추정치를 다음 번호의 비트들의 누적 전력 추정치에 추가해야 하는 것을 안다. 중앙 제어기는 "sum" 배선을 수용하고 적용가능할 때 "throttle_this_interval" 배선을 적절하게 설정한다.
적어도 하나의 예시적인 구현예에 따라, 고정된 시간 간격의 1/2 내에서 전력 추정치(들)의 누적이 수행되는 반면, 고정된 시간 간격의 나머지 1/2 내에서 코어 프로세서들의 대응하는 전력 소비를 제어하도록 코어 프로세서들에 지시하는 것이 발생한다. 예를 들어, 고정된 시간 간격이 256 클록 사이클들과 같으면, 중앙 제어기 (110) 에 의해 전력 추정치(들)의 누적이 128 클록 사이클들 내에서 수행되고, 코어 프로세서들의 전력 소비를 제어하도록 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 에 지시하는 것이 나머지 128 클록 사이클들을 취한다. 중앙 제어기 (110) 에 의해 전역 문턱값을 결정하는 것은 전력 추정치(들)를 누적하는 부분 또는 코어 프로세서들의 대응하는 전력 소비를 제어하도록 지시하는 부분으로 간주될 수도 있다.
다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 각각에서, 국부적인 전력 소비를 감소시키도록 하는 인스트럭션들 (instruction) 을 갖는 신호 또는 명령이 수신되면, 적절한 동작이 코어 프로세서에 의해 취해진다. 전력 소비를 감소시키는 한가지 방식은 국부적인 클록 주파수를 감소시키는 것이다. 이러한 접근 방법은 각각의 코어 프로세서가 자신의 PLL (phase locked-loop) 을 가질 때 적용가능할 수도 있다. 코어 프로세서에서 국부적인 전력 소비를 감소시키는 다른 방식은 인스트럭션들의 발행을 중단하는 것이다. 예를 들어, 코어 프로세서는 전력 소비가 국부적인 전력 제한을 초과하거나 중앙 제어기 (110) 로부터 전역 문턱값이 수신될 때까지 고정된 시간 간격 내에서 프로세싱 인스트럭션들을 유지할 수도 있고, 그 후 고정된 시간 간격의 끝까지 인스트럭션들을 발행하는 것을 중단한다.
도 3a 및 도 3b는 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 로부터의 전력 추정치(들)를 누적하기 위한 예시적인 직렬 구성들을 예시하는 블록도들이다. 도 3a는 중앙 제어기가 코어 프로세서들 중 하나 (예를 들어, 120-1) 로 판독 명령을 전송하는 것에 따른 단일 직렬 구성을 도시한다. 예시적인 양태에 따라, 판독 명령은 판독 동작의 표시 및 중앙 제어기 (110) 로 리턴될 전력 추정치를 나타내는 페이로드를 포함한다. 제1 코어 프로세서 (예를 들어, 120-1) 는 중앙 제어기 (110) 로부터 판독 명령을 수신하고 판독 명령의 페이로드에 코어 프로세서의 추정된 전력 소비 값을 통합한다. 페이로드 초기 값이 0이면, 추정된 전력 소비 값은 추가 동작을 통해 통합될 수도 있다. 그 후 판독 명령은 다음 코어 프로세서 (예를 들어, 120-2) 로 포워딩된다.
코어 프로세서 (120-2) 는 코어 프로세서의 추정된 전력 소비 값을 페이로드 값에 추가하고 판독 명령을 다음 코어 프로세서 (예를 들어, 120-3) 로 포워딩하도록 구성된다. 국부적으로 추정된 전력 소비 값 및 페이로드 값의 추가는 코어 프로세서들 (120-2 내지 120-N) 각각에서 반복된다. 마지막 코어 프로세서 (예를 들어, 120-N) 에서, 최종 추가 결과가 중앙 제어기 (110) 로 포워딩된다. 중앙 제어기로 포워딩된 값은 모든 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 에 대한 누적 전력 추정치로서 사용될 수도 있고, 또는 추가의 계산적인 프로세싱이 적용될 수도 있다. 코어 프로세서들에서 수행된 추가 동작들은 중앙 제어기 (110) 로의 최종 결과의 도달에 시간 지연을 유발할 수도 있다.
예시적인 구현예에 따라, 이러한 시간 지연은 비트 단위로 (bit by bit) 포워딩하고 추가를 적용함으로써 감소될 수도 있다. 즉, LSB (least significant bit) 로부터 시작하여, 추가가 수행되면, 캐리오버 (carry-over) 값을 저장하면서, 추가 결과 비트가 포워딩된다. 그 후, 캐리오버 값 및 다음 LSB들의 국부적으로 추정된 전력 소비 값의 및 페이로드 값들이 추가된다. 새로운 캐리오버 값이 저장되고 추가 결과 비트는 다음 코어 프로세서로 포워딩된다. 다음 코어 프로세서에서, 유사한 동작들이 수행된다. 즉, 페이로드의 비트가 수신되자마자, 대응하는 추가가 수행되고 추가 결과 비트는 다른 코어 프로세서로 포워딩된다. 이와 같이, 시간 지연이 상당히 감속된다.
도 3b에서, 코어 프로세서들은 4 개의 직렬 구성들 (예를 들어, 120-1 내지 120-k1, 120-(k1+1) 내지 120-k2, 120-(k2+1) 내지 120-k3, 및 120-(k3+1) 내지 120-N) 로 배열된다. 비트 단위 추가 및 포워딩은 각각의 직렬 구성에 적용될 수도 있다. 중앙 제어기 (110) 는 예를 들어, 코어 프로세서들 (120-k1, 120-k2, 120-k3, 및 120-N) 로부터 4 개의 전력 추정치들을 수신한다. 4 개의 전력 추정치들 각각은 대응하는 직렬 구성에 대한 누적 전력 추정치를 나타낸다. 누적 전력 추정치를 계산하기 위해, 중앙 제어기 (110) 는 예를 들어, 4 개의 수신된 전력 추정치들을 합산한다. 중앙 제어기 (110) 는 모든 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 에 대한 누적 전력 추정치를 결정할 때 다른 계산적인 프로세싱을 수행할 수도 있다.
도 4는 다수의 코프로세서 블록들 (예를 들어, 130-1 내지 130-M) 로부터의 전력 추정치들을 누적하기 위한 구성을 예시하는 블록도이다. 각각의 코프로세서 블록 내에서, 대부분의 전력 (예를 들어, 약 90 %) 이 대응하는 클록(들)에 의해 소비된다. 코프로세서 블록 (예를 들어, 130-1, 130-2, …, 또는 130-M) 은 하나 이상의 클록들을 가질 수도 있다. 예시적인 실시예에 따라, 중앙 제어기 (110) 는 코프로세서 블록들 (예를 들어, 130-1 내지 130-M) 로부터 대응하는 클록들 각각의 전력 소비 추정을 가능하게 하는 정보를 수신한다. 예를 들어, 중앙 제어기 (110) 는 코프로세서 블록과 연관된 클록 각각에 대해 수정된 클록 신호를 수신한다. 코프로세서 블록들 (예를 들어, 130-1 내지 130-M) 의 클록들과 연관된 추정된 전력 소비들은 전체 멀티코어 프로세서 칩 (100) 에 대한 전역 누적 전력 소비 추정치를 생성하기 위해, 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 로부터 누적된 전력 추정치(들)와 합산된다.
도 5는 적어도 하나의 예시적인 실시예에 따라, 코프로세서 블록 클록과 연관된 클록 신호 (510) 및 대응하는 수정된 클록 신호 (520) 의 예를 도시한다. 수정된 클록 신호 (520) 는 코프로세서 블록 (예를 들어, 130-1, 130-2, …, 또는 130-M) 으로부터 중앙 제어기 (110) 에서 수신된다. 클록 신호 (510) 는 일반적으로 중앙 제어기 (110) 의 주파수보다 높은 주파수를 갖는다. 이와 같이, 클록 신호 (510) 가 중앙 제어기 (110) 로 전송되면, 중앙 제어기는 대응하는 전력을 추정하기 위해 클록 신호 (510) 를 적절히 샘플링하지 못할 수도 있다. 클록 신호 (510) 는 코프로세서 블록들 (예를 들어, 130-1, 130-M) 과 비동기적으로 연관된 상이한 클록 신호들 (510) 을 형성하는 유휴 (idleness) 기간 (511) 을 포함할 수도 있다.
예시적인 실시예에 따라, 수정된 클록 신호 (520) 는 클록 신호 (510) 의 다수의 클록 사이클들을 수정된 클록 신호 (520) 의 단일 사이클로 감소시킴으로써 생성된다. 예를 들어, 클록 신호 (510) 의 32 클록 사이클들이 수정된 클록 신호 (520) 의 단일 사이클에 대응한다. 이와 같이, 중앙 제어기 (110) 는 수정된 클록 신호 (520) 를 적절히 샘플링할 수 있다.
각각의 코프로세서 블록 (예를 들어, 130-1, 130-2, …, 또는 130-M) 은 동일한 코프로세서 블록의 클록과 연관된 클록 액티비티 사이클들의 카운트를 제공하도록 구성된다. 클록 사이클들의 카운트에 기초하여, 클록 액티비티의 출현 수, 즉, 수정된 클록 신호 (520) 는 미리규정된 수, 즉, 32 개의 카운트된 클록 액티비티 사이클들을 클록 액티비티의 생성된 출현 수 내의 단일 심볼로 맵핑함으로써 생성된다. 그 후 생성된 출현 수는 중앙 제어기 (110) 에 의해 수신된다. 중앙 제어기 (110) 는, 예를 들어, 클록 액티비티의 각각의 생성된 출현 수와 연관된 전력 소비를 결정하기 위해, 룩업 테이블을 채택할 수도 있다. 전체 멀티코어 프로세서 칩 (100) 에 대한 누적 전력 소비 추정치를 결정할 때, 중앙 제어기 (110) 는 다수의 코어 프로세서들 (예를 들어, 120-1 내지 120-N) 과 연관된 누적된 전력 추정치(들) 및 코프로세서 블록들 (예를 들어, 130-1, 130-M) 에 대응하는 전력 추정치(들)를 합산할 수도 있다.
본 발명이 특정하게 도시되고 본 발명의 예시적인 실시예들을 참조하여 기술되었지만, 당업자는 첨부된 청구항들에 의해 포함된 본 발명의 범위를 벗어나지 않고 다양한 변화들 및 상세들이 생길 수 있다는 것을 이해할 것이다.

Claims (30)

  1. 멀티코어 프로세서 칩 (multi-core processor chip) 의 전력을 제어하는 방법에 있어서,
    상기 멀티코어 프로세서 칩 내의 제어기에서, 멀티코어 프로세서 칩 내의 다수의 코어 프로세서들의 하나 이상의 전력 추정치들을 누적하는 (accumulate) 단계로서, 다수의 코어 프로세서들의 상기 하나 이상의 전력 추정치들을 누적하는 단계는 상기 제어기로부터 상기 다수의 코어 프로세서들의 적어도 하나의 코어 프로세서로 판독 명령을 전송하는 단계를 포함하고, 업데이트된 누적 합을 생성하도록 상기 판독 명령을 수신하는 코어 프로세서는 전력 추정치들의 누적 합을 나타내는 파라미터 값을 업데이트하고 상기 업데이트된 누적 합과 함께 상기 판독 명령을 하나의 다른 코어 프로세서 또는 상기 제어기로 포워딩하는, 상기 누적하는 단계;
    누적된 하나 이상의 전력 추정치들에 적어도 부분적으로 기초하여 결정되는, 누적 전력 추정치 (cumulative power estimate) 에 기초하여 전역 전력 문턱값 (global power threshold) 을 결정하는 단계; 및
    상기 결정된 전역 전력 문턱값에 기초하여 코어 프로세서 각각에서 전력 소비가 제어되도록 하는 단계를 포함하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  2. 제1항에 있어서,
    다수의 코어 프로세서들의 상기 하나 이상의 전력 추정치들을 누적하는 단계는 상기 멀티코어 프로세서 칩 내의 상기 다수의 코어 프로세서들의 하나 이상의 서브세트들의 전력 추정치들의 하나 이상의 누적 합들을 수신하는 단계를 포함하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  3. 제1항에 있어서,
    다수의 코어 프로세서들의 상기 하나 이상의 전력 추정치들을 누적하는 단계는 멀티코어 프로세서 칩 내의 다수의 코어 프로세서들에 대응하는 다수의 전력 추정치들을 수신하는 단계를 포함하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 전역 전력 문턱값을 결정하는 단계는,
    상기 결정된 누적 전력 추정치 및 시간에 따른 이의 대응하는 평균 양자 (both) 가 목표된 타깃 전력보다 작다고 결정하면, 상기 전역 전력 문턱값을 나타내는 파라미터 값을 증가시키는 단계; 및
    상기 결정된 누적 전력 추정치가 상기 목표된 타깃 전력보다 크다고 결정하면, 상기 전역 전력 문턱값을 나타내는 상기 파라미터 값을 감소시키는 단계를 포함하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  7. 제6항에 있어서,
    상기 목표된 타깃 전력은 상기 멀티코어 프로세서 칩의 사용자 또는 제조자에 의해 설정된 상수인, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  8. 제6항에 있어서,
    상기 목표된 타깃 전력은 상기 멀티코어 프로세서 칩의 측정된 온도 값들에 적어도 부분적으로 기초하여 동적으로 설정되는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  9. 제1항에 있어서,
    상기 멀티코어 프로세서 칩 내의 하나 이상의 코프로세서 블록들의 클록 액티비티들 (clock activities) 의 하나 이상의 출현 수들 (representations) 을 누적하는 단계; 및
    상기 누적된 하나 이상의 출현 수들에 적어도 부분적으로 기초하여 상기 하나 이상의 코프로세서 블록들의 하나 이상의 전력 추정치들을 결정하는 단계를 더 포함하고,
    상기 멀티코어 프로세서 칩에 대한 누적 전력 추정치를 결정하는 단계는 상기 하나 이상의 코프로세서 블록들의 상기 하나 이상의 전력 추정치들에 더 기초하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  10. 제9항에 있어서,
    상기 하나 이상의 코프로세서 블록들의 상기 하나 이상의 전력 추정치들을 결정하는 단계는 룩업 테이블에 더 기초하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  11. 제9항에 있어서,
    상기 하나 이상의 코프로세서 블록들의 상기 클록 액티비티들의 상기 하나 이상의 출현 수들을 누적하는 단계는,
    코프로세서 블록 각각에서, 동일한 코프로세서 블록의 클록 액티비티 사이클들을 카운트하는 단계;
    상기 코프로세서 블록의 상기 클록 액티비티의 상기 출현 수 내의 단일 심볼로 미리 결정된 수의 카운트된 클록 액티비티 사이클들을 맵핑함으로써 상기 코프로세서 블록의 상기 클록 액티비티의 출현 수를 생성하는 단계; 및
    상기 코프로세서 블록의 상기 클록 액티비티의 상기 출현 수를 상기 제어기에 의해 수신하는 단계를 포함하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  12. 제1항에 있어서,
    코어 프로세서 각각에서 전력 소비가 제어되게 하는 단계는 상기 전역 전력 문턱값에 기초하여 상기 코어 프로세서의 전력 소비를 제어하도록 코어 프로세서 각각에 지시하는 단계를 포함하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  13. 제12항에 있어서,
    전력 소비를 제어하도록 코어 프로세서 각각에 지시하는 단계는 상기 결정된 전역 전력 문턱값의 표시를 코어 프로세서 각각으로 전송하는 단계를 포함하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  14. 제13항에 있어서,
    코어 프로세서 각각에 의해, 상기 전역 전력 문턱값과 국부적인 전력 제한을 비교하는 단계를 더 포함하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  15. 제1항에 있어서,
    코어 프로세서 각각에서 전력 소비가 제어되게 하는 단계는 주 클록 주파수 (master clock frequency) 를 조정하는 단계를 포함하는, 멀티코어 프로세서 칩의 전력을 제어하는 방법.
  16. 다수의 코어 프로세서들; 및
    상기 다수의 코어 프로세서들 중 적어도 하나에 커플링된 제어기를 포함하고,
    상기 제어기는,
    멀티코어 프로세서 칩 내의 상기 다수의 코어 프로세서들의 하나 이상의 전력 추정치들을 누적하고,
    상기 누적된 하나 이상의 전력 추정치들에 적어도 부분적으로 기초하여 결정되는, 누적 전력 추정치에 기초하여 전역 전력 문턱값을 결정하고, 그리고
    상기 결정된 전역 전력 문턱값에 기초하여 코어 프로세서 각각에서 전력 소비가 제어되게 하도록 구성되며,
    다수의 코어 프로세서들의 상기 하나 이상의 전력 추정치들을 누적할 때, 상기 제어기는 상기 제어기로부터 상기 다수의 코어 프로세서들의 적어도 하나의 코어 프로세서로 판독 명령을 전송하도록 구성되고,
    상기 다수의 코어 프로세서들로부터의 적어도 하나의 코어 프로세서는,
    상기 판독 명령을 수신하고,
    업데이트된 누적 합을 생성하도록 전력 추정치들의 누적 합을 나타내는 파라미터 값을 업데이트하고, 그리고
    상기 누적 합과 함께 상기 판독 명령을 다른 코어 프로세서 또는 상기 제어기로 포워딩하도록 구성되는, 멀티코어 프로세서 칩.
  17. 제16항에 있어서,
    상기 다수의 코어 프로세서들의 상기 하나 이상의 전력 추정치들을 누적할 때, 상기 제어기는 상기 다수의 코어 프로세서들의 하나 이상의 서브세트들의 전력 추정치들의 하나 이상의 누적 합들을 수신하도록 구성되는, 멀티코어 프로세서 칩.
  18. 제16항에 있어서,
    다수의 코어 프로세서들의 상기 하나 이상의 전력 추정치들을 누적할 때, 상기 제어기는 상기 다수의 코어 프로세서들에 대응하는 다수의 전력 추정치들을 수신하도록 구성되는, 멀티코어 프로세서 칩.
  19. 삭제
  20. 삭제
  21. 제16항에 있어서,
    상기 전역 전력 문턱값을 결정할 때, 상기 제어기는,
    상기 결정된 누적 전력 추정치 및 시간에 따른 이의 대응하는 평균 양자가 목표된 타깃 전력보다 작다고 결정하면, 상기 전역 전력 문턱값을 나타내는 파라미터 값을 증가시키고, 그리고
    상기 결정된 누적 전력 추정치가 상기 목표된 타깃 전력보다 크다고 결정하면, 상기 전역 전력 문턱값을 나타내는 상기 파라미터 값을 감소시키도록 구성되는, 멀티코어 프로세서 칩.
  22. 제21항에 있어서,
    상기 목표된 타깃 전력은 상기 멀티코어 프로세서 칩의 사용자 또는 제조자에 의해 설정된 상수인, 멀티코어 프로세서 칩.
  23. 제21항에 있어서,
    상기 목표된 타깃 전력은 상기 멀티코어 프로세서 칩의 측정된 온도 값들에 적어도 부분적으로 기초하여 동적으로 설정되는, 멀티코어 프로세서 칩.
  24. 제16항에 있어서,
    상기 멀티코어 프로세서 칩은 하나 이상의 코프로세서 블록들을 더 포함하고,
    상기 제어기는,
    상기 하나 이상의 코프로세서 블록들의 클록 액티비티들의 하나 이상의 출현 수들을 누적하고,
    상기 누적된 하나 이상의 출현 수들에 적어도 부분적으로 기초하여 상기 하나 이상의 코프로세서 블록들의 하나 이상의 전력 추정치들을 결정하도록 또한 구성되고,
    상기 멀티코어 프로세서 칩에 대한 누적 전력 추정치를 결정하는 것은 상기 하나 이상의 코프로세서 블록들의 상기 하나 이상의 전력 추정치들에 더 기초하는, 멀티코어 프로세서 칩.
  25. 제24항에 있어서,
    상기 하나 이상의 코프로세서 블록들의 상기 하나 이상의 전력 추정치들을 결정할 때, 상기 제어기는 코프로세서 블록 각각의 상기 전력 추정치를 결정하도록 룩업 테이블을 검사하도록 또한 구성되는, 멀티코어 프로세서 칩.
  26. 제24항에 있어서,
    상기 하나 이상의 코프로세서 블록들의 상기 클록 액티비티들의 하나 이상의 출현 수들을 누적할 때,
    코프로세서 블록 각각은,
    코프로세서 블록 각각에서, 동일한 코프로세서 블록의 클록 액티비티 사이클들을 카운트하고,
    상기 코프로세서 블록의 상기 클록 액티비티의 상기 출현 수 내의 단일 심볼로 미리 결정된 수의 카운트된 클록 액티비티 사이클들을 맵핑함으로써 상기 코프로세서 블록의 상기 클록 액티비티의 출현 수를 생성하고, 그리고
    상기 코프로세서 블록의 상기 클록 액티비티의 상기 출현 수를 상기 제어기로 전송하도록 구성되는, 멀티코어 프로세서 칩.
  27. 제16항에 있어서,
    코어 프로세서 각각에서 전력 소비가 제어되게 할 때, 상기 제어기는 상기 전역 전력 문턱값에 기초하여 상기 코어 프로세서의 전력 소비를 제어하도록 코어 프로세서 각각에 지시하도록 또한 구성되는, 멀티코어 프로세서 칩.
  28. 제27항에 있어서,
    전력 소비를 제어하도록 코어 프로세서 각각에 지시할 때, 상기 제어기는 상기 결정된 전역 전력 문턱값의 표시를 코어 프로세서 각각으로 전송하도록 또한 구성되는, 멀티코어 프로세서 칩.
  29. 제28항에 있어서,
    코어 프로세서 각각은 상기 전역 전력 문턱값과 국부적인 전력 제한을 비교하도록 구성되는, 멀티코어 프로세서 칩.
  30. 제16항에 있어서,
    코어 프로세서 각각에서 전력 소비가 제어되게 할 때, 상기 제어기는 주 클록 주파수를 조정하도록 구성되는, 멀티코어 프로세서 칩.
KR1020140128554A 2013-09-26 2014-09-25 칩 상의 멀티코어 시스템 상의 전역 칩 전력을 관리하기 위한 방법 및 장치 KR101701004B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/038,549 US9671844B2 (en) 2013-09-26 2013-09-26 Method and apparatus for managing global chip power on a multicore system on chip
US14/038,549 2013-09-26

Publications (2)

Publication Number Publication Date
KR20150034650A KR20150034650A (ko) 2015-04-03
KR101701004B1 true KR101701004B1 (ko) 2017-02-13

Family

ID=52623702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140128554A KR101701004B1 (ko) 2013-09-26 2014-09-25 칩 상의 멀티코어 시스템 상의 전역 칩 전력을 관리하기 위한 방법 및 장치

Country Status (6)

Country Link
US (5) US9671844B2 (ko)
JP (1) JP6169547B2 (ko)
KR (1) KR101701004B1 (ko)
CN (2) CN104516475B (ko)
DE (1) DE102014014301B4 (ko)
HK (1) HK1209210A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356194B2 (en) 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US9671844B2 (en) 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip
US20150220128A1 (en) * 2014-02-04 2015-08-06 Infineon Technologies Ag Method and Apparatus for Use in a Data Processing System
US9477243B2 (en) * 2014-12-22 2016-10-25 Intel Corporation System maximum current protection
US9760159B2 (en) 2015-04-08 2017-09-12 Microsoft Technology Licensing, Llc Dynamic power routing to hardware accelerators
US9798376B2 (en) * 2015-08-03 2017-10-24 Qualcomm Incorporated Power distribution network (PDN) droop/overshoot mitigation
KR102599653B1 (ko) * 2015-11-20 2023-11-08 삼성전자주식회사 냉각 알고리즘을 수행하는 집적 회로와 이를 포함하는 모바일 장치
KR102578648B1 (ko) 2016-03-14 2023-09-13 삼성전자주식회사 모뎀 데이터에 따라 코어 스위칭이 수행되는 애플리케이션 프로세서 및 이를 포함하는 시스템 온 칩
CN106598203B (zh) * 2016-12-21 2019-04-23 上海海事大学 一种数据密集环境下的单芯片多处理器系统的电源管理方法
US20200142461A1 (en) * 2018-10-31 2020-05-07 Bitmain Inc. Integrated circuit with chip-level serial power domains, and circuit board having the same
CN109831144A (zh) * 2019-03-01 2019-05-31 深圳市道通智能航空技术有限公司 温度保护方法、装置和无人飞行器
CN110413414A (zh) * 2019-07-29 2019-11-05 北京百度网讯科技有限公司 用于平衡负载的方法、装置、设备和计算机可读存储介质
US11287872B2 (en) * 2020-02-04 2022-03-29 Qualcomm Incorporated Multi-thread power limiting via shared limit
IL297858A (en) 2020-05-01 2023-01-01 Monday Com Ltd Digital processing systems and methods for improved networking and collaborative work management systems, methods and devices
CN113065229A (zh) * 2021-03-10 2021-07-02 电子科技大学 一种众核暗硅芯片的实时功率预算技术
US11592889B2 (en) * 2021-05-12 2023-02-28 Apple Inc. Die-to-die dynamic clock and power gating
US11698671B2 (en) * 2021-09-22 2023-07-11 Apple Inc. Peak power management for processing units
US11709529B2 (en) * 2021-10-12 2023-07-25 Hewlett Packard Enterprise Development Lp Variable enhanced processor performance
WO2023101663A1 (en) * 2021-12-01 2023-06-08 Picoai Limeted Method and apparatus of power control based on block activities

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003523563A (ja) * 1999-12-23 2003-08-05 インテル・コーポレーション ディジタル・パワー・スロットルを備えたマイクロプロセッサ
JP2007122657A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 消費電流制御システム
JP2007233782A (ja) * 2006-03-02 2007-09-13 Lenovo Singapore Pte Ltd 発熱量の制御方法およびコンピュータ

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5887611A (ja) 1981-11-20 1983-05-25 Fujitsu Ltd 可変クロツク発振器
JPH0744408A (ja) 1993-07-27 1995-02-14 Pfu Ltd 内部に温度検出機能を備えたマイクロプロセッサ
JPH1091268A (ja) 1996-09-11 1998-04-10 Sony Corp 半導体回路のクロック周波数制御方法およびデータ処理装置
JPH11232147A (ja) 1998-02-16 1999-08-27 Toshiba Corp パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体
US6367023B2 (en) 1998-12-23 2002-04-02 Intel Corporation Method and apparatus of measuring current, voltage, or duty cycle of a power supply to manage power consumption in a computer system
US6363490B1 (en) 1999-03-30 2002-03-26 Intel Corporation Method and apparatus for monitoring the temperature of a processor
US7516334B2 (en) 2001-03-22 2009-04-07 Sony Computer Entertainment Inc. Power management for processing modules
US6834353B2 (en) 2001-10-22 2004-12-21 International Business Machines Corporation Method and apparatus for reducing power consumption of a processing integrated circuit
US6957352B2 (en) 2002-03-15 2005-10-18 Intel Corporation Processor temperature control interface
US7086058B2 (en) 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
TWI471714B (zh) * 2003-05-07 2015-02-01 考文森智財管理公司 具有功率管理之系統及用於管理功率之方法
US8037445B2 (en) 2003-08-20 2011-10-11 Hewlett-Packard Development Company, L.P. System for and method of controlling a VLSI environment
JP2005295768A (ja) 2004-04-05 2005-10-20 Yazaki Corp 電源分配システム
US7231474B1 (en) 2004-06-01 2007-06-12 Advanced Micro Devices, Inc. Serial interface having a read temperature command
JP3805344B2 (ja) 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
WO2006024325A1 (en) * 2004-08-31 2006-03-09 Freescale Semiconductor, Inc. Method for estimating power consumption
US7437581B2 (en) 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7878016B2 (en) 2004-12-30 2011-02-01 Intel Corporation Device and method for on-die temperature measurement
US7444526B2 (en) 2005-06-16 2008-10-28 International Business Machines Corporation Performance conserving method for reducing power consumption in a server system
US7721128B2 (en) 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
US7421601B2 (en) 2006-02-17 2008-09-02 International Business Machines Corporation Method and system for controlling power in a chip through a power-performance monitor and control unit
US20070260894A1 (en) 2006-05-03 2007-11-08 Aguilar Maximino Jr Optimizing thermal performance using feed-back directed optimization
US8037893B2 (en) 2006-05-03 2011-10-18 International Business Machines Corporation Optimizing thermal performance using thermal flow analysis
CN100517176C (zh) 2006-06-21 2009-07-22 国际商业机器公司 实现热调节逻辑的数据处理系统和方法
US7584369B2 (en) 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
US8122265B2 (en) 2006-12-29 2012-02-21 Intel Corporation Power management using adaptive thermal throttling
US8117478B2 (en) 2006-12-29 2012-02-14 Intel Corporation Optimizing power usage by processor cores based on architectural events
JP2009031689A (ja) 2007-07-30 2009-02-12 Ricoh Co Ltd 温度監視装置及び温度監視方法
JP4395800B2 (ja) 2007-09-18 2010-01-13 日本電気株式会社 電力管理システムおよび電力管理方法
JP2009129137A (ja) 2007-11-22 2009-06-11 Hitachi High-Technologies Corp マイクロプロセッサの温度監視制御装置、およびマイクロプロセッサの温度監視制御方法
US7949889B2 (en) 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing system
US8001394B2 (en) 2008-01-31 2011-08-16 International Business Machines Corporation Method and system of multi-core microprocessor power management and control via per-chiplet, programmable power modes
JP5056573B2 (ja) * 2008-05-09 2012-10-24 富士通株式会社 設計支援プログラム、設計支援装置、および設計支援方法
US8402290B2 (en) 2008-10-31 2013-03-19 Intel Corporation Power management for multiple processor cores
US8880922B2 (en) 2009-03-05 2014-11-04 Hitachi, Ltd. Computer and power management system for computer
US8775830B2 (en) * 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
KR101155202B1 (ko) * 2009-12-24 2012-06-13 포항공과대학교 산학협력단 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
US8356194B2 (en) 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US20120144215A1 (en) 2010-12-03 2012-06-07 Advanced Micro Devices, Inc. Maximum current limiting method and apparatus
US9250682B2 (en) * 2012-12-31 2016-02-02 Intel Corporation Distributed power management for multi-core processors
US9671844B2 (en) 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003523563A (ja) * 1999-12-23 2003-08-05 インテル・コーポレーション ディジタル・パワー・スロットルを備えたマイクロプロセッサ
JP2007122657A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 消費電流制御システム
JP2007233782A (ja) * 2006-03-02 2007-09-13 Lenovo Singapore Pte Ltd 発熱量の制御方法およびコンピュータ

Also Published As

Publication number Publication date
US10732684B2 (en) 2020-08-04
DE102014014301B4 (de) 2018-08-16
US20200301491A1 (en) 2020-09-24
US20190107874A1 (en) 2019-04-11
US11709534B2 (en) 2023-07-25
KR20150034650A (ko) 2015-04-03
US20150089251A1 (en) 2015-03-26
CN104516475B (zh) 2017-07-21
HK1209210A1 (en) 2016-03-24
CN107272876B (zh) 2020-09-22
DE102014014301A1 (de) 2015-03-26
CN104516475A (zh) 2015-04-15
US20210200287A1 (en) 2021-07-01
US10983576B2 (en) 2021-04-20
US20170228007A1 (en) 2017-08-10
CN107272876A (zh) 2017-10-20
JP2015079496A (ja) 2015-04-23
JP6169547B2 (ja) 2017-07-26
US10152102B2 (en) 2018-12-11
US9671844B2 (en) 2017-06-06

Similar Documents

Publication Publication Date Title
KR101701004B1 (ko) 칩 상의 멀티코어 시스템 상의 전역 칩 전력을 관리하기 위한 방법 및 장치
KR102210355B1 (ko) 적응적 전력 제어 루프
US7069189B2 (en) Method and apparatus for controlling multiple resources using thermal related parameters
US10599207B2 (en) Management of core power state transition in a microprocessor
JP2006185407A (ja) ピーク電力制御方法および装置
KR20020018309A (ko) 시피유 스케쥴링 방법
JP5663383B2 (ja) ブレードサーバの電力制御方法及びシステム
JP2017211928A (ja) 分散処理制御システム及び分散処理制御方法
JP4485370B2 (ja) 並列計算装置
JPH08152945A (ja) 消費電力管理装置
JP2007172322A (ja) 分散処理型マルチプロセッサシステム、制御方法、マルチプロセッサ割り込み制御装置及びプログラム
JP6828633B2 (ja) データ処理装置及びその制御方法、並びにプログラム
KR20160018030A (ko) 전자장치에서 소프트웨어를 실행하기 위한 방법 및 장치
CN112764509B (zh) 计算核、计算核温度调整方法、设备、介质、芯片和系统
WO2006011189A1 (ja) 並列計算機
JP5481329B2 (ja) 半導体集積回路、インターコネクト、及び制御プログラム
KR102613979B1 (ko) 멀티 코어 프로세서 전력 관리 장치 및 방법
JP4601657B2 (ja) トラヒックシェーピング装置および方法
JP2004295876A5 (ko)
CN116502571A (zh) 一种待机零功耗系统的设计方法
CN117118937A (zh) 终端控制方法、装置、存储介质及电子设备
JP2008042654A (ja) データ転送装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20200114

Year of fee payment: 4