KR20140002072A - 휴대용 컴퓨팅 디바이스에서의 열 로드 관리 - Google Patents

휴대용 컴퓨팅 디바이스에서의 열 로드 관리 Download PDF

Info

Publication number
KR20140002072A
KR20140002072A KR1020137030978A KR20137030978A KR20140002072A KR 20140002072 A KR20140002072 A KR 20140002072A KR 1020137030978 A KR1020137030978 A KR 1020137030978A KR 20137030978 A KR20137030978 A KR 20137030978A KR 20140002072 A KR20140002072 A KR 20140002072A
Authority
KR
South Korea
Prior art keywords
thermal
temperature
processing region
monitored
generating component
Prior art date
Application number
KR1020137030978A
Other languages
English (en)
Other versions
KR101529419B1 (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 KR20140002072A publication Critical patent/KR20140002072A/ko
Application granted granted Critical
Publication of KR101529419B1 publication Critical patent/KR101529419B1/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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

휴대용 컴퓨팅 디바이스 ("PCD") 내의 온도 센서들에 영향을 주기 위한 방법들 및 시스템들이 개시된다. 이 센서들은, PCD 내에서 중앙 프로세싱 유닛 ("CPU") 코어, 그래픽 프로세싱 유닛 ("GPU") 코어, 전력 관리 집적 회로 ("PMIC"), 전력 증폭기 등과 같은 공지된 열 에너지 발생 컴포넌트들에 가까이 배치될 수도 있다. 이 센서들에 의해 발생된 신호들은 이 프로세싱 유닛들 상에서 실행하는 드라이버들을 트리거링하기 위해 모니터링 및 이용될 수도 있다. 이 드라이버들은, 이 센서들에 측정되는, 주어진 컴포넌트의 열 에너지의 발생과 연관된 프로세싱 로드들의 재할당을 야기하도록 동작가능하다. 일부 실시형태에서, 프로세싱 로드 재할당은, 미리 식별된 열 로드 시나리오들과 연관된 파라미터들에 따라 매핑된다. 다른 실시형태들에서, 이 재할당은, 모니터링된 센서 데이터와 함께 CPU 및/또는 GPU 성능 상세들을 고려할 수도 있는 열 관리 알고리즘에 의해 발생된 열 관리 솔루션들에 따라 실시간 또는 근실시간으로 발행한다.

Description

휴대용 컴퓨팅 디바이스에서의 열 로드 관리{THERMAL LOAD MANAGEMENT IN A PORTABLE COMPUTING DEVICE}
우선권 및 관련 출원들
본 특허출원은, 35 U.S.C.§119(e) 하에서 2011년 4월 22일자로 출원되고 발명의 명칭이 "METHOD AND SYSTEM FOR THERMAL LOAD MANAGEMENT IN A PORTABLE COMPUTING DEVICE" 인 미국 가특허출원 제61/478,175호에 대한 우선권을 주장하고, 그 전체 내용들은 여기에 참조로 포함된다.
관련 기술분야의 설명
휴대용 컴퓨팅 디바이스 (portable computing device; PCD) 들은 개인적 및 전문적 레벨에서 사람들에게 필수품이 되고 있다. 이들 디바이스들은 셀룰러 전화기들, 휴대용 개인 정보 단말기 (portable digital assistant; PDA) 들, 휴대용 게임 콘솔들, 팜톱 컴퓨터들, 및 다른 휴대용 전자 디바이스들을 포함할 수도 있다.
PCD들의 하나의 고유한 양태는, 그 PCD들이 통상적으로 랩톱 및 데스크톱 컴퓨터들과 같은 대형 컴퓨팅 디바이스들에서 종종 발견되는, 팬 (fan) 들과 같은 액티브 냉각 디바이스들을 갖지 않는다는 것이다. 팬들을 이용하는 대신에, PCD들은, 2개 이상의 액티브 및 열 생성 컴포넌트들이 서로 아주 근접하여 포지셔닝되지 않도록 하는 전자 패키징의 공간적 배열에 의존할 수도 있다. 2개 이상의 열 생성 컴포넌트들이 PCD 내에서 서로 적절히 간격을 두고 있으면, 각 컴포넌트의 동작으로부터 발생된 열이 다른 컴포넌트의 동작에 부정적인 영향을 주지 않을 수도 있다. 또한, PCD 내의 열 발생 컴포넌트가 디바이스 내의 다른 컴포넌트들로부터 물리적으로 격리되는 경우, 그 열 발생 컴포넌트의 동작으로부터 발생된 열이 다른 주위의 전자 장치에 부정적인 영향을 주지 않을 수도 있다. 많은 PCD들은 또한, 각각의 PCD 를 공동으로 형성하는 전자 컴포넌트들 간의 열 에너지를 관리하기 위해, 열 싱크들과 같은 패시브 냉각 디바이스들에 의존할 수도 있다.
현실은, PCD들이 통상적으로 사이즈가 제한되어서 PCD 내의 컴포넌트들을 위한 장소 (room) 가 구하기 힘들어진다는 것이다. 이와 같이, 단지 통상적으로 엔지니어들과 설계자들이 패시브 냉각 컴포넌트들의 공간적 배열들 또는 배치의 영향력을 통해 열 저하 또는 오류를 완화시키기 위한 PCD 내의 공간이 충분하지 않다.
현재, PCD 가 임계 온도에 접근할 때, 운영 시스템은 과도한 열 에너지를 발생시키고 있는 PCD 내의 전자 컴포넌트들 대부분을 단순히 셧 다운시킴으로써 PCD 를 냉각시키도록 설계된다. 전자 장치를 셧 다운시키는 것은 PCD 내의 과도한 열 에너지의 발생을 피하기 위한 효율적인 조치일 수도 일 수도 있지만, 이러한 극단적인 조치는 PCD 의 성능에 불가피하게 영향을 주고, 어떤 경우에는, 심지어 PCD 가 소정의 기간 동안 기능적으로 실행할 수 없게 될 수도 있다.
이에 따라, 이 기술분야에서는 PCD 의 성능 및 기능성에 과도한 영향을 주는 일 없이 PCD 내의 컴포넌트들의 냉각을 촉진시키는 PCD 에서의 열 로드 관리 (thermal load management) 를 위한 방법 및 시스템이 필요하다.
휴대용 컴퓨팅 디바이스에 대한 열 에너지 발생을 제어 및/또는 관리하기 위한 방법들 및 시스템들의 다양한 실시형태들이 개시된다. 온도 판독값들이 열 에너지 발생 컴포넌트 내의 프로세스 로드와 상관될 수도 있기 때문에, 하나의 이러한 방법은, 휴대용 컴퓨팅 디바이스 내의 칩의 열 에너지 발생 컴포넌트에 근접한 온도 센서를 배치시킨 후에, 온도 센서에 의해 발생된 온도 판독값들을 제 1 레이트로 모니터링하는 단계를 수반한다. 높은 전력 밀도 서브-프로세서 영역과 같은 이 컴포넌트 내의 프로세싱 영역이 온도 임계값을 초과하였음을 나타낼 수도 있는 모니터링된 제 1 온도 판독값의 검출에 기초하여, 이 방법은 이 컴포넌트의 제 1 프로세싱 영역 상에서 실행하는 프로세스 로드의 일부를 이 컴포넌트의 제 2 프로세싱 영역에 재할당한다. 유리하게는, 프로세싱 워크로드가 보다 낮은 전력 밀도를 부여하는 보다 큰 프로세싱 영역에 걸쳐 확산되었기 때문에, 프로세스 로드 부분의 재할당은 시간 단위에 걸쳐 컴포넌트의 임의의 단위 영역에서 발생된 에너지의 양을 낮추도록 기능한다. 보다 낮은 전력 밀도 제 2 프로세싱 영역과 연관된 감소된 서비스 품질 (quality of service; "QoS") 로 인해 사용자 경험이 손실을 입을 수도 있지만, 높은 전력 밀도 프로세싱 영역들에 집중되는 임계적으로 높은 온도가 회피될 수도 있다.
예시적인 방법들은, 모니터링된 제 2 온도 판독값이 컴포넌트가 냉각되었음을 나타낼 때 제 2 프로세싱 영역으로부터 제 1 프로세싱 영역으로의 프로세스 로드의 후속 재할당을 위한 단계들을 더 포함할 수도 있다. 유리하게는, 컴포넌트가 냉각되었다는 표시 이후에 프로세스 로드의 제 2 재할당을 행함으로써, 이러한 로드가 제 1 프로세싱 영역으로부터 초기에 재할당된 프로세스 로드를 나타내든지 또는 초기 할당을 위해 큐잉되는 새로운 프로세싱 로드들을 나타내든지 간에, 휴대용 컴퓨팅 디바이스와 연관된 QoS 는 선호되는 레벨들로 되돌아갈 수 있다.
예시적인 실시형태들은, PCD 내에서 중앙 프로세싱 유닛 (central processing unit; "CPU") 코어들, 그래픽 프로세싱 유닛 (graphical processing unit; "GPU") 코어들, 전력 관리 집적 회로들 (power management integrated circuits; "PMIC" 또는 "PMICs"), 전력 증폭기들 등과 같은 공지된 열 에너지 발생 컴포넌트들에 가까이 전략적으로 배치된 온도 센서들에 영향을 준다. 이 센서들에 의해 발생된 온도 신호들은 이 프로세싱 유닛들 상에서 실행하는 드라이버들을 트리거링하기 위해 모니터링 및 이용되어, 주어진 컴포넌트의 과도한 열 에너지의 발생과 상관된 프로세싱 로드들의 재할당을 야기하도록 할 수도 있다. 일부 실시형태에서, 프로세싱 로드 재할당은, 미리 식별된 열 로드 시나리오들과 연관된 파라미터들에 따라 매핑된다. 다른 실시형태들에서, 프로세싱 로드 재할당은, 실시간 온도 센서 데이터와 함께 CPU 및/또는 GPU 성능 상세들을 고려할 수도 있는 열 관리 알고리즘에 의해 발생된 열 관리 솔루션들에 따라 실시간 또는 근실시간으로 발행한다.
도면들에서, 유사한 참조 부호들은 다르게 나타내지 않는다면 다양한 도면들 전반에 걸쳐 유사한 부분들을 지칭한다. "102A" 또는 "102B" 와 같은 문자 캐릭터 명칭들을 가진 참조 부호들의 경우, 문자 캐릭터 명칭들은 동일한 도면에 존재하는 2개의 유사한 부분들 또는 엘리먼트들을 구별할 수도 있다. 참조 부호들에 대한 문자 캐릭터 명칭들은, 모든 부분들을 아우르기 위한 참조 부호가 모든 도면들에서 동일한 참조 부호를 갖는 것으로 의도될 때 생략될 수도 있다.
도 1 은 휴대용 컴퓨팅 디바이스 ("PCD") 에서의 열 로드 분포들을 시뮬레이팅하고 그 PCD 가 열 로드의 분포를 제어할 수 있게 하기 위한 데이터를 발생시키는 컴퓨터 시스템의 일 실시형태를 예시한 기능 블록도이다.
도 2 는 열 로드의 분포를 제어하기 위한 PCD 에 의한 이용을 위한 도 1 의 열 로드 스티어링 테이블 (thermal load steering table) 을 발생시키는 방법의 일 실시형태를 예시한 논리적 흐름도이다.
도 3 은 도 1 의 열 로드 스티어링 테이블의 일 실시형태를 예시한 데이터도이다.
도 4 의 (a) 는 시뮬레이팅된 워크로드 (workload) 하의 열 로드 분포를 예시한 일 예시적인 집적 회로의 공간적 배열의 오버헤드 개략도이다.
도 4 의 (b) 는 도 3 의 열 로드 스티어링 테이블 내의 열 로드 스티어링 파라미터들에 따라 열 센서에 더 가까운 위치로 열 로드 분포가 분포되는 도 4 의 (a) 의 집적 회로를 예시한 것이다.
도 5 는 도 1 의 PCD 에서의 열 로드 분포를 제어하는 방법의 일 실시형태를 예시한 논리적 흐름도이다.
도 6 은 도 1 의 PCD 의 일 예시적인 실시형태를 예시한 기능 블록도이다.
도 7a 는 도 6 에 예시된 칩에 대한 하드웨어의 일 예시적인 공간적 배열을 예시한 기능 블록도이다.
도 7b 는 동적 전압 및 주파수 스케일링 (dynamic voltage and frequency scaling; "DVFS") 알고리즘들을 지원하기 위한 도 6 의 PCD 의 일 예시적인 소프트웨어 아키턱처를 예시한 개략도이다.
도 7c 는 2개의 DVFS 알고리즘들에 대한 예시적인 주파수 값들을 열거한 제 1 테이블이다.
도 7d 는 2개의 DVFS 알고리즘들에 대한 예시적인 주파수 및 전압 쌍들을 열거한 제 2 테이블이다.
도 8 은 도 1 의 PCD 내의 열 정책 관리자에 의해 관리될 수도 있는 다양한 열 정책 상태들을 예시한 일 예시적인 상태도이다.
도 9 는 열 정책 관리자에 의해 적용 또는 지시될 수도 있는 예시적인 열 완화 기법들을 예시한 도면이다.
도 10 은 온도 대 시간 및 대응하는 열 정책 상태들의 일 예시적인 그래프를 예시한 도면이다.
도 11a 및 도 11b 는 하나 이상의 열 정책들을 관리하는 방법을 예시한 논리적 흐름도들이다.
도 12 는 프로세스 로드 재할당 열 완화 기법들을 적용하는 서브-방법 또는 서브루틴을 예시한 논리적 흐름도이다.
도 13a 는 4-코어 멀티-코어 프로세서 및 그 멀티-코어 프로세서에 의해 공간적으로 관리될 수도 있는 상이한 워크로드들에 대한 개략도이다.
도 13b 는 4-코어 멀티-코어 프로세서 및 그 멀티-코어 프로세서에 의해 프로세스 로드 재할당 알고리즘들로부터 관리될 수도 있는 열 에너지 소산 핫스폿 (thermal energy dissipation hotspot) 들에 대한 개략도이다.
도 14 는 도 6 에 예시된 칩에 대한 하드웨어의 일 예시적인 공간적 배열 및 도 6 에 예시된 칩 외부의 예시적인 컴포넌트들을 예시한 기능 블록도이다.
단어 "예시적인" 은 여기서 "예, 경우 또는 예시로서 기능하는 것" 을 의미하기 위해 사용된다. "예시적인" 것으로 여기에 설명된 임의의 양태는 반드시 다른 양태들에 비해 배타적이거나, 바람직하거나 또는 이로운 것으로 해석될 필요는 없다.
본 설명에서, 용어 "애플리케이션" 은 또한, 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들 및 패치 (patch) 들과 같은 실행가능 콘텐츠를 갖는 파일들을 포함할 수도 있다. 또한, 여기에 지칭된 "애플리케이션" 은 또한, 개방될 필요가 있을 수도 있는 문서들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이, 사실상 실행가능하지 않은 파일들을 포함할 수도 있다.
용어 "콘텐츠" 는 또한, 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들 및 패치들과 같은 실행가능 콘텐츠를 갖는 파일들을 포함할 수도 있다. 또한, 여기에 지칭된 "콘텐츠" 는 또한, 개방될 필요가 있을 수도 있는 문서들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이, 사실상 실행가능하지 않은 파일들을 포함할 수도 있다.
본 설명에서 사용한 바와 같이, 용어들 "컴포넌트", "데이터베이스", "모듈", "시스템", "열 에너지 발생 컴포넌트", "프로세싱 컴포넌트" 등은 컴퓨터 관련 엔티티, 즉, 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어 중 어느 하나를 지칭하는 것으로 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행중인 프로세스, 프로세서, 오브젝트, 실행가능물, 실행의 스레드, 프로그램 및/또는 컴퓨터일 수도 있지만, 이들인 것으로 제한되지 않는다. 예시에 의해, 컴퓨팅 디바이스 상에서 실행중인 애플리케이션과 컴퓨팅 디바이스 양쪽은 컴포넌트일 수도 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행의 스레드 내에 상주할 수도 있고, 컴포넌트는 하나의 컴퓨터 상에 로컬화될 수도 있고, 및/또는 2개 이상의 컴퓨터들 간에 분산될 수도 있다. 또한, 이들 컴포넌트들은 다양한 데이터 구조들을 저장하고 있는 다양한 컴퓨터 판독가능 매체로부터 실행할 수도 있다. 컴포넌트들은, 예컨대, 하나 이상의 데이터 패킷들 (예를 들어, 로컬 시스템, 분산 시스템에서 또 다른 컴포넌트와 상호작용하는, 및/또는 신호에 의해 다른 시스템들과 인터넷과 같은 네트워크를 통해 상호작용하는 하나의 컴포넌트로부터의 데이터) 을 갖는 신호에 따라, 로컬 및/또는 원격 프로세스들에 의해 통신할 수도 있다.
본 설명에서, 용어들 "통신 디바이스", "무선 디바이스", "무선 전화기", "무선 통신 디바이스" 및 "무선 핸드셋" 은 상호교환가능하게 사용된다. 3 세대 ("3G") 및 4 세대 ("4G") 무선 기술의 도래로 인해, 더 큰 대역폭 가용성은 매우 다양한 무선 능력들을 가진 더 많은 휴대용 컴퓨팅 디바이스들을 가능하게 하였다.
본 설명에서, 용어들 "중앙 프로세싱 유닛 ("CPU")", "디지털 신호 프로세서 ("DSP")", 및 "칩" 은 상호교환가능하게 사용된다.
본 설명에서, 용어들 "열" 및 "열 에너지" 는 "온도" 의 단위로 측정될 수 있는 에너지를 발생 또는 소산 (dissipating) 하는 것이 가능한 디바이스 또는 컴포넌트와 관련하여 사용될 수도 있는 것으로 이해될 것이다. 따라서, 어떤 표준 값과 관련된 용어 "온도" 는, "열 에너지" 발생 디바이스 또는 컴포넌트의 상대적 온기 또는 열 없음을 나타낼 수도 있는 임의의 측정을 예상하는 것으로 또한 이해될 것이다. 예를 들어, 2개의 컴포넌트들이 "열 평형" 상태에 있는 경우 이 2개의 컴포넌트들의 "온도" 는 동일하다.
본 설명에서, 용어들 "워크로드 (workload)", "프로세스 로드 (process load)" 및 "프로세스 워크로드" 는 상호교환가능하게 사용되고, 주어진 실시형태에서 주어진 프로세싱 컴포넌트와 연관된 프로세싱 부담 또는 프로세싱 부담의 퍼센티지에 대해 일반적으로 관련된다. 상기 정의된 것에 추가적으로, "프로세싱 컴포넌트" 또는 "열 에너지 발생 컴포넌트" 는 중앙 프로세싱 유닛, 그래픽 프로세싱 유닛, 코어, 메인 코어, 서브-코어, 프로세싱 영역, 하드웨어 엔진 등, 또는 휴대용 컴퓨팅 디바이스 내의 집적 회로 내부에 또는 외부에 상주하는 임의의 컴포넌트일 수도 있지만, 이에 제한되지 않는다. 또한, 용어들 "열 로드 (thermal load)", "열 분포", "열 시그너처 (thermal signature)", "열 프로세싱 로드" 등이, 프로세싱 컴포넌트 상에서 실행하고 있을 수도 있는 워크로드 부담들을 나타내는 범위에서, 당업자는 본 설명에서의 이러한 "열" 용어들의 사용은 프로세스 로드 분포들 및 부담들에 관련될 수도 있음을 알 것이다.
본 설명에서, 용어 "휴대용 컴퓨팅 디바이스 (portable computing device)" ("PCD") 는 배터리와 같은 제한된 용량 파워 서플라이 상에서 동작하는 임의의 디바이스를 설명하기 위해 사용된다. 배터리 동작된 PCD들은 수십 년간 사용되어 왔지만, 3 세대 ("3G") 무선 기술의 도래와 연결된 재충전가능 배터리들의 기술적 진보는 다수의 능력들을 가진 다수의 PCD들을 가능하게 하였다. 따라서, PCD 는 그 중에서도, 셀룰러 전화기, 위성 전화기, 페이저, PDA, 스마트폰, 내비게이션 디바이스, 스마트북 또는 판독기, 미디어 플레이어, 전술한 디바이스들의 조합, 및 무선 연결을 가진 랩톱 컴퓨터일 수도 있다.
도 1 은 PCD (100) 에서 열 로드 관리 또는 "스티어링 (steering)" 에 관한 다양한 특징들을 구현하기 위한 컴퓨터 시스템의 일 실시형태를 예시한 것이다. 일반적으로, 컴퓨터 시스템은 2개의 메인 페이즈 (main phase) 들을 채용한다: (1) 시뮬레이션 컴퓨터 (10) 에 의해 수행되는 시뮬레이션 페이즈; 및 (2) PCD (100) 에 의해 수행되는 동작 페이즈.
시뮬레이션 페이즈는 PCD (100) 의 동작 동안 집적 회로 (102) 에 의해 경험되는 열 로드들을 시뮬레이팅하는 것을 수반한다. 시뮬레이션 컴퓨터 (10) 는 시뮬레이팅된 워크로드들 하에서 PCD (100) 에 의해 생성된 열 로드 상태들을 식별한다. 시뮬레이팅된 워크로드들은 주어진 PCD (100) 에 대한 특정 애플리케이션 또는 "유즈 케이스 (use case)" 의 실행과 연관될 수도 있거나 또는, 대안적으로, 어떤 특정한 또는 예측가능한 프로세싱 로드 시나리오와도 연관되지 않을 수도 있다.
시뮬레이션 컴퓨터 (10) 는 실리콘 다이 상의 시뮬레이팅된 열 로드 분포 또는 "핫스폿 (hotspot)" 이 PCD (100) 의 사용자 경험을 손상시킬 수도 있거나 또는 그렇지 않으면 PCD (100) 의 기능성에 유해할 수도 있다고 결정할 수도 있다. 특히, 프로세싱 로드들이 주어진 컴포넌트에 집중될 때 열 에너지 소산이 증가되어, PCD (100) 성능 및/또는 사용자 경험에 잠재적으로 영향을 줄 수도 있음에 따라, 상보적 컴포넌트들을 통한 프로세싱 로드의 재할당에 의해 열 에너지 발생이 완화될 수 있다. 시뮬레이션 컴퓨터 (10) 는 프로세싱 로드의 전부 또는 일부를 실리콘 다이 상의 제 1 시뮬레이팅 위치로부터 프로세싱에 이용가능한 제 2 시뮬레이팅 위치로 "스티어링" 또는 재할당함으로써 PCD (100) 성능 및 사용자 경험을 개선시킨다. 제 2 시뮬레이팅 위치는, 프로세싱 로드를 제 2 시뮬레이팅 위치로 스티어링하기 위한 동작 페이즈 동안 PCD (100) 에 제공되어 PCD (100) 에 의해 사용될 수도 있는 커맨드들, 명령들, 또는 임의의 다른 적절한 컴퓨터 판독가능 데이터 ("열 로드 스티어링 파라미터(들)" 라고 지칭된다) 로 나타낼 수도 있다.
또한, 일부 실시형태에서, 센서에 대한 가능성 있는 핫스폿의 바람직한 근접도는 섭씨 5 도 범위 내에 있을 수도 있다. 즉, 핫스폿으로부터 전파된 열파와 연관된 온도는 핫스폿까지의 거리가 증가함에 따라 낮아지기 때문에, 그리고 핫스폿이 발생하기 시작한 시간과 핫스폿과 이격된 거리에서 온도 증가가 검출될 수도 있는 시간 사이의 시간 지연이 불가피하게 존재하기 때문에, 일부 실시형태에서는, 온도에서의 섭씨 5 도 강하와 상관되는 것으로 예측되는 핫스폿으로부터 거리를 두고 온도 센서가 배치되는 것이 바람직할 수도 있다. 그러나, 다양한 실시형태들 내의 온도 센서들의 배치가 이러한 실시형태들에 대해 진보적 양태들을 제시할 수도 있지만, 다양한 실시형태들 및 그들의 등가물들은, 공지된 핫스폿 또는 열 에너지 발생 컴포넌트로부터 5 ℃ 인 위치에의 온도 센서의 배치로 제한되지 않는다는 것을 이해할 것이다. 즉, 일부 실시형태에서, 센서들은 공지된 핫스폿 또는 열 에너지 발생 컴포넌트에 5 ℃ 보다 더 가깝거나 또는 더 멀리 떨어져 위치결정될 수도 있다고 생각된다.
도 1 을 참조하면, 시뮬레이션 컴퓨터 (10) 는 로컬 인터페이스를 통해 서로 통신하는 하나 이상의 프로세서들 (12), 메모리 (14), 및 하나 이상의 입/출력 디바이스들 (16) 을 포함한다. 메모리 (14) 는 PCD (100) 에 이용되는 집적 회로 (102) 의 컴퓨터 모델 (22) 을 포함한다. 컴퓨터 모델 (22) 은 PCD (100) 내의 다양한 하드웨어 및 소프트웨어 컴포넌트들, 및, 예를 들어, 열 센서들 (157) 및 CPU (110) 를 포함하는 집적 회로 (102) 의 다양한 컴포넌트들의 공간적 배열, 아키텍처, 및 동작의 데이터 표현이다. PCD (100) 의 상세한 예시적인 실시형태는 도 6, 도 7a, 도 7b 및 도 14 를 참조하여 더 상세히 후술된다. 임의의 PCD (100) 및/또는 집적 회로 (102) 는 시뮬레이션 컴퓨터 (10) 에 제공된 컴퓨터 모델 (22) 에서 모델링되고 나타낼 수도 있다는 것을 인식해야 한다. 컴퓨터 모델 (22) 은 인쇄 회로 기판 (printed circuit board; "PCB") 스택의 치수들, 사이즈, 및 메이크업, 트레이스들 내의 금속의 양, 트레이스들의 사이즈들, 열 바이어스의 이용, 실리콘 다이의 서브 블록 당 전력 로드, PCB 상의 컴포넌트 당 전력 로드, 전력 로드의 유즈 케이스 (use case) 상세들, 전력 로드의 임의의 일시적 역학과 같은 (그러나 이에 제한되지 않는다) 정보, 및 당업자에게 이해되는 다른 유사한 정보를 포함할 수도 있다.
열 로드 시뮬레이션 모듈(들) (20) 은 컴퓨터 모델 (22) 과 인터페이싱하고, 일반적으로는 컴퓨터 모델 (22) 에 기초하여 열 로드 시뮬레이션들을 수행하기 위한 로직을 포함한다. 열 로드 시뮬레이션 모듈(들) (20) 은 열 로드 스티어링 파라미터들 (46) 을 발생시키고, 이들을, 예를 들어, PCD (100) 에 제공되는 열 로드 스티어링 시나리오 테이블 (24) 에 저장한다. 도 1 의 실시형태에 예시된 바와 같이, PCD (100) 는 일반적으로, 열 로드 스티어링 모듈(들) (26), 열 정책 관리자 모듈(들) (101), 모니터 모듈 (114), 중앙 프로세싱 유닛 (110), 집적 회로 (102) 상에 위치결정된 하나 이상의 열 센서들 (157A), 및 집적 회로 (102) 와 떨어져 위치결정된 하나 이상의 열 센서들 (157B) 을 포함한다. 일반적으로, 열 로드 스티어링 모듈(들) (26) 은, PCD (100) 에 의해 수행되는 동작들을 모니터링하는 것, 및 열 로드 스티어링이 수행되어야 하는지 여부를 결정하는 것을 위한 로직을 포함한다. 열 로드 스티어링이 수행되어야 하는 경우, 열 로드 스티어링 모듈(들) (26) 은 열 로드 스티어링 시나리오 테이블 (24) 에 액세스하고, 열 로드 스티어링 파라미터(들) (46) 를 해석하며, 워크로드를 스케줄링하여, 열 로드와 연관된 프로세싱 로드를, 충분히 이용되지 않은 보다 낮은 온도 또는 그렇지 않으면 이용가능한 프로세싱 용량으로 스티어링하도록 한다. 유리하게는, 프로세싱 로드를 개방 프로세싱 용량에 재할당하도록 열 로드 스티어링 파라미터(들) 에게 영향을 주는 이러한 실시형태들은, 이러한 재할당으로부터 발생되는 보다 낮은 온도들의 이익을 실현할 수도 있다.
당업자는, 일부 실시형태에서 열 로드 스티어링 파라미터(들) (46) 의 목적이, 특정 열 센서 또는 센서들 (157) 에 가까운 위치로 열 로드를 스티어링하기 위한 열 로드 스티어링 모듈(들) (26) 에게의 명령들의 제공을 더 포함할 수도 있다는 것을 인지할 것이다. 즉, 일부 실시형태는, 주어진 열 로드 시그너처와 상관되는 프로세싱 로드를, 센서 (157) 에 보다 가까운 이용가능한 프로세싱 용량으로 스티어링하는 목적을 위한 열 로드 스티어링 파라미터(들) 를 발생시킬 수도 있다고 생각된다. 유리하게는, 프로세싱 로드를 센서에 가까운 개방 프로세싱에 재할당하도록 열 로드 스티어링 파라미터(들) 에게 영향을 주는 이러한 실시형태들은, 더욱 정확한 온도 측정을 실현하여, 프로세싱 로드의 더욱 효율적인 재할당을 발생시킬 수도 있다.
프로세싱 로드들의 재할당을 통해 열 에너지 소산이 어떻게 관린될 수도 있는지의 비제한적 예로서, 메인 프로세싱 블록 및 보다 높은 수행의 특수 서브-프로세서 블록들을 갖는 CPU (110) 를 포함하는 일 실시형태는, CPU (110) 영역의 3/4 을 나타내는 메인 프로세싱 블록들, 및 CPU 영역의 나머지 1/4 을 나타내는 서브-프로세서 블록들을 가질 수도 있다. 메인 프로세서 블록들은, 전체 CPU (110) 의 전체 전력의 1/2 를 소산하는 관련 전력 밀도 (power density; "PD") 를 가질 수도 있는 한편, 서브-프로세서 블록들도 또한 총 전력의 1/2 를 소산하는 관련 전력 밀도를 갖는다. 이러한 예시적인 경우에서, 당업자는 전체 CPU (110) 에게 증가된 연산력을 제공하는 서브-프로세서 블록들은 보다 큰 메인 프로세싱 블록들의 것의 2배 이상인 전력 밀도를 나타내고 [PDsub = (P/2)/(A/4) = 2 P/A; PDmain = (P/2)/(3A/4) = P/A 의 2/3], 전력 밀도가 열 에너지의 발생에 정비례하기 때문에, 주어진 프로세싱 로드에 대해서는 메인 프로세싱 블록보다 더 많은 열 에너지의 발생 및 소산을 야기할 것이라는 것을 인지할 것이다. 이와 같이, 프로세싱 로드들을 하나의 컴포넌트로부터 또 다른 컴포넌트로, 예컨대, 예를 들어, CPU (110) 의 서브-프로세서 블록으로부터 CPU (110) 의 메인 프로세서 블록으로 재할당하기 위해 열 로드 스티어링 파라미터(들) 을 이용하는 실시형태들은, 프로세싱 성능 또는 서비스 품질 (Quality of Service; "QoS") 의 비교적 적은 트레이드오프를 위한 보다 낮은 열 에너지 소산의 이익을 실현할 수도 있다. 메인 프로세서 블록들은 이러한 로드를 더욱 느리게 프로세싱하여, 보다 낮은 QoS 로 바뀌지만, 서브-프로세서들보다 더 낮은 열 에너지를 소산할 수도 있다. CPU (110) 내의 하나의 영역으로부터 또 다른 영역으로의 프로세싱 로드들의 재할당 등을 통해 열 로드들을 관리하는 다양한 이익들, 특징들 및 양태들은 도 8 내지 도 14 를 참조하여 더 상세히 설명된다.
열 로드 스티어링 모듈(들) (26) 로 되돌아와서, 열 로드 스티어링 모듈(들) (26) 은 열 정책 관리자 모듈(들) (101), 모니터 모듈 (114), CPU (110), 또는 PCD (100) 의 임의의 다른 하드웨어 또는 소프트웨어와 통신할 (또는 이들 중 하나 이상과 통합될) 수도 있다는 것이 인식되어야 한다.
도 2 는 시뮬레이션 컴퓨터 (10) 에 의해 구현된 방법 (28) 을 예시한 것이다. 일 실시형태에서, 이 방법 (28) 은 디바이스들이 열 로드 스티어링 특징들을 지원하도록 적절히 구성될 수도 있도록 집적 회로 (102) 및 PCD (100) 의 설계 및 개발 동안 수행될 수도 있다. 다른 실시형태들에 있어서, 이 방법 (28) 은 PCD (100) 가 제조된 후에 수행될 수도 있고, 이 경우 열 로드 스티어링 특징은 적절한 소프트웨어 업그레이드들을 통해 가능하게 될 수도 있다.
블록 30 에서, 집적 회로 (102) 의 컴퓨터 모델 (22) 은 시뮬레이션 컴퓨터 (10) 에 저장되고 열 로드 시뮬레이션 모듈(들) (20) 에 의해 액세스된다. 블록 32 에서, 컴퓨터 시뮬레이션(들) 이 수행되고 하나 이상의 시뮬레이팅된 열 로드 조건들이 식별된다 (블록 34). 당업자에게 공지되고 도 4 의 (a) 의 예에 예시된 바와 같이, 열 로드 조건은 시뮬레이팅된 워크로드 (44) 하에서 집적 회로 (102) 에서 생성된 공간적 열 로드 분포 또는 "핫스폿" (48) 을 포함한다. 도 4 의 (a) 에 예시된 핫스폿 (48) 은 제 1 코어 (222) 상에 위치결정될 수도 있다 (도 7a). 당업자에게 이해되는 바와 같이, 핫스폿 (48) 으로부터 약간 떨어져 있는 포인트에서의 온도 센서 (157A) 에 의한 핫스폿 (48) 의 열 에너지 (즉, 온도) 의 측정은 오브젝트 (즉, 컴퓨터 칩 또는 인쇄 회로 보드) 의 표면에 걸쳐 이동하는 열파로 인해 어려울 수도 있다. 핫스폿 (48) 에 대해 약간 떨어져 있는 센서 (157A) 의 포지션은, 핫스폿 (48) 자체와 동일한 온도를 갖지 않을 수도 있다. 그러나, 상술된 바와 같이, 예컨대, 가능성 있는 핫스폿 중심의 5 ℃ 이내의, 상당한 양의 열 에너지를 소산하는 것으로 알려진 컴포넌트들에 근접한 센서들의 배치는, 프로세싱 로드들의 더욱 효율적인 재할당에 유용한 데이터를 제공할 수도 있다.
열 로드 관리 알고리즘들의 효율성 및 정확성을 개선시키기 위해, 시뮬레이션 컴퓨터 (10) 는, 핫스폿 (48) 과 연관된 프로세싱 로드, 또는 핫스폿 (48) 과 연관된 프로세싱 로드의 일부가, 충분히 이용되지 않거나 또는 이용가능한 프로세싱 영역에 재할당되어야 한다고 결정할 수도 있다. 컴퓨터 모델 (22) 에 기초하여, 시뮬레이션 컴퓨터 (10) 는 제 1 코어 (222) 대신에 제 2 코어 (224) 에 의해 핸들링되어, 이 2개의 코어들 (222, 224) 을 통해 프로세싱 로드를 확산시킴으로써 잠재적인 열 에너지 소산을 완화시킬 수도 있다.
블록 36 에서, 핫스폿 (48) 과 연관된 프로세싱 로드를 제 2 코어 (224) 상의 위치로 이동시키기 위해 적절한 열 로드 스티어링 파라미터들 (46) 이 발생된다 (도 4 의 (b) 참조). 블록 38 에서, 시뮬레이션 컴퓨터 (10) 는 열 로드 스티어링 시나리오 테이블 (24) 을 발생시켜 메모리 (14) 에 저장한다. 도 3 에 예시된 바와 같이, 열 로드 스티어링 시나리오 테이블 (24) 은, 열 로드 조건 데이터 (42), 시뮬레이팅된 워크로드 데이터 (44), 및 열 로드 스티어링 파라미터(들) (46) 와 같은 (그러나 이에 제한되지 않는다) 대응하는 데이터를 갖는 각각의 시뮬레이팅된 열 로드 조건에 대한 시나리오 (40) 를 포함할 수도 있다. 로드 조건 데이터, 시뮬레이팅된 워크로드 데이터 (44), 및 열 로드 스티어링 파라미터들(들) (46) 은, 전력 소비 (즉, 열 발생) 컴포넌트 당 전력 소산의 개별적인 유즈 케이스 브레이크다운들, 칩 상에서 그리고 칩과 떨어져 있는 것 양쪽에서의 이러한 소산 포인트들의 위치, 주어진 용도를 위한 프로세서 당 "MIPS (millions of instructions per second)" 의 예상량, 칩 상의 소산된 총 전력, 전체 디바이스에 의해 소산된 총 전력, 및 당업자에 의해 이해되는 다른 유사한 정보를 포함할 수도 있지만 이에 제한되지 않는다.
동작 페이즈에서, 열 로드 스티어링 시나리오 테이블 (24) 은 PCD (100) 에 제공된다. 도 5 는 열 로드 스티어링을 수행하기 위한 PCD (100) 에 의해 구현된 방법 (50) 의 일 실시형태를 예시한 것이다. 블록 52 에서, 열 로드 스티어링 시나리오 테이블 (24) 이 PCD (100) 내의 메모리에 저장된다. 블록 54 에서, 열 로드 스티어링 모듈(들) (26) 은 PCD (100) 에 대한 스케줄링된 워크로드들을 모니터링한다. 일 실시형태에서, 이 모니터링은 O/S 스케줄러 (207) (도 7a 및 도 7b 참조) 와 인터페이싱함으로써 수행될 수도 있고, 이 O/S 스케줄러 (207) 는 PCD (100) 에 대한 하드웨어 리소스들에 대한 요청들을 수신하고 관리한다. O/S 스케줄러 요청들을 모니터링함으로써, 열 로드 스티어링 모듈(들) (26) 은 스케줄링된 워크로드들을 시뮬레이팅된 워크로드 데이터 (44) 와 비교하여, 스케줄링된 워크로드가 테이블 (24) 내의 시나리오들 (40) 중 하나와 매칭하는지 결정할 수도 있다. 스케줄링된 워크로드가 시나리오 (40) 와 매칭하는 경우 (판정 블록 56), 대응하는 열 로드 스티어링 파라미터(들) (46) 가 테이블 (24) 로부터 획득될 수도 있고 (블록 58), PCD (100) 에 대한 워크로드를 스케줄링, 또는 그렇지 않으면 재할당하는데 이용될 수도 있다 (블록 60).
스케줄링된 워크로드가 시나리오 (40) 와 매칭하지 않으면, 판정 블록 56 으로부터의 "아니오" 브랜치에 후속하여 옵션 블록 57 이 이어질 수도 있다. 옵션 블록 57 에서, 스케줄링된 워크로드가 시나리오 (40) 와 매칭하지 않는 경우, 열 로드 스티어링 모듈 (26) 에 의해 디폴트 로드 스티어링 벡터가 액세스 및 이용될 수도 있다. 대안적으로, 판정 블록 56 에 "아니오" 브랜치가 다시 후속하여 옵션 블록 57 이 스킵될 수도 있다.
상기 언급된 바와 같이, 열 로드 스티어링 파라미터(들) (46) 에 따라 워크로드가 스케줄링될 때, 결과적인 열 로드는 PCD (100) 에 걸친 프로세싱 로드의 더욱 열 효율적인 할당에 의해 완화될 수도 있다. 블록 62 에서, PCD (100) 는 임의의 바람직한 열 관리 정책들을 개시할 수도 있다.
PCD (100) 및 열 관리 정책들의 다양한 대안적인 실시형태들의 예들은 도 6 내지 도 14 와 관련하여 후술된다. 도 6 은 열 조건들을 모니터링하고 열 정책들을 관리하기 위한 방법들 및 시스템들을 구현하기 위한 무선 전화기의 형태의 PCD (100) 의 일 예시적인 비제한적 양태의 기능 블록도이다. 일부 실시형태에 의하면, PCD (100) 는 그래픽 프로세싱과 연관된 열 로드를 관리하도록 구성될 수도 있다. 도시된 바와 같이, PCD (100) 는 함께 커플링되는 멀티-코어 중앙 프로세싱 유닛 ("CPU"; 110) 및 아날로그 신호 프로세서 (126) 를 포함하는 온-칩 시스템 (102) 을 포함한다. CPU (110) 는, 당업자에 의해 이해되는 바와 같이, 제 0 코어 (222), 제 1 코어 (224), 및 제 N 코어 (230) 를 포함할 수도 있다. 또한, CPU (110) 대신에, 디지털 신호 프로세서 ("DSP") 가 또한 당업자에 의해 이해되는 바와 같이 채용될 수도 있다.
일반적으로, 열 정책 관리자 모듈(들) (101) 은, PCD (100) 가 열 조건들 및/또는 열 로드들을 관리하는 것을 돕고, 예를 들어, 고도의 기능성을 유지하면서 임계 온도들에 도달하는 것과 같이, 불리한 열 조건들을 경험하는 것을 회피하는 것을 도울 수도 있는 하나 이상의 열 완화 기법들을 포함하는 열 정책들을 모니터링 및 적용하는 것을 담당할 수도 있다.
도 6 은 또한, PCD (100) 가 모니터 모듈 (114) 을 포함할 수도 있다는 것을 도시한다. 모니터 모듈 (114) 은 온-칩 시스템 (102) 전반에 걸쳐 분산된 다수의 동작가능한 센서들 (예를 들어, 열 센서들 (157)) 과 통신하고, PCD (100) 의 CPU (110) 와는 물론 열 정책 관리자 모듈 (101) 과도 통신한다. 열 정책 관리자 모듈 (101) 은 모니터 모듈 (114) 과 협력하여 불리한 열 조건들을 식별하고 더욱 상세히 후술되는 바와 같은 하나 이상의 열 완화 기법들을 포함하는 열 정책들을 적용할 수도 있다.
도 6 에 예시한 바와 같이, 디스플레이 제어기 (128) 및 터치스크린 제어기 (130) 는 디지털 신호 프로세서 (110) 에 커플링된다. 온-칩 시스템 (102) 외부에 있는 터치스크린 디스플레이 (132) 는 디스플레이 제어기 (128) 및 터치스크린 제어기 (130) 에 커플링된다.
PCD (100) 는 비디오 인코더 (134), 예를 들어, "PAL (phase-alternating line)" 인코더, "SECAM (sequential couleur avec memoire)" 인코더, "NTSC (national television system(s) committee)" 인코더 또는 비디오 인코더 (134) 의 임의의 다른 타입을 더 포함할 수도 있다. 비디오 인코더 (134) 는 멀티-코어 중앙 프로세싱 유닛 ("CPU"; 110) 에 커플링된다. 비디오 증폭기 (136) 는 비디오 인코더 (134) 및 터치스크린 디스플레이 (132) 에 커플링된다. 비디오 포트 (138) 는 비디오 증폭기 (136) 에 커플링된다. 도 6 에 도시된 바와 같이, 범용 직렬 버스 ("USB") 제어기 (140) 가 CPU (110) 에 커플링된다. 또한, USB 포트 (142) 가 USB 제어기 (140) 에 커플링된다. CPU (110) 에는 또한 메모리 (112) 및 가입자 식별 모듈 (SIM) 카드 (146) 가 커플링될 수도 있다. 또한, 도 6 에 도시된 바와 같이, CPU (110) 에는 디지털 카메라 (148) 가 커플링될 수도 있다. 일 예시적인 양태에서, 디지털 카메라 (148) 는 전하 결합 디바이스 (charge-coupled device; "CCD") 카메라 또는 상보형 금속 산화물 반도체 (complementary metal-oxide semiconductor; "CMOS") 카메라이다.
도 6 에 더욱 예시된 바와 같이, 스테레오 오디오 코덱 (CODEC; 150) 이 아날로그 신호 프로세서 (126) 에 커플링될 수도 있다. 또한, 스테레오 오디오 코덱 (150) 에는 오디오 증폭기 (152) 가 커플링될 수도 있다. 일 예시적인 양태에서, 제 1 스테레오 스피커 (154) 및 제 2 스테레오 스피커 (156) 는 오디오 증폭기 (152) 에 커플링된다. 도 6 은, 마이크로폰 증폭기 (158) 가 또한 스테레오 오디오 코덱 (150) 에 커플링될 수도 있다는 것을 도시한다. 부가적으로, 마이크로폰 (160) 은 마이크로폰 증폭기 (158) 에 커플링될 수도 있다. 특정 양태에서, 주파수 변조 ("FM") 라디오 튜너 (162) 가 스테레오 오디오 코덱 (150) 에 커플링될 수도 있다. 또한, FM 라디오 튜너 (162) 에는 FM 안테나 (164) 가 커플링된다. 또한, 스테레오 오디오 코덱 (150) 에는 스테레오 헤드폰들 (166) 이 커플링될 수도 있다.
도 6 은 또한, 무선 주파수 ("RF") 트랜시버 (168) 가 아날로그 신호 프로세서 (126) 에 커플링될 수도 있음을 나타낸다. RF 스위치 (170) 가 RF 트랜시버 (168) 및 RF 안테나 (172) 에 커플링될 수도 있다. 도 6 에 도시된 바와 같이, 키패드 (174) 가 아날로그 신호 프로세서 (126) 에 커플링될 수도 있다. 또한, 아날로그 신호 프로세서 (126) 에는 마이크로폰을 가진 모노 헤드셋 (176) 이 커플링될 수도 있다. 또한, 아날로그 신호 프로세서 (126) 에는 진동기 디바이스 (178) 가 커플링될 수도 있다. 도 6 은 또한, 파워 서플라이 (180), 예를 들어, 배터리가 온-칩 시스템 (102) 에 커플링된다는 것을 도시한다. 특정 양태에서, 파워 서플라이는, 교류 ("AC") 로부터, AC 전력 소스에 접속되는 DC 트랜스포머로 유도되는 재충전가능 DC 배터리 또는 DC 파워 서플라이를 포함한다.
또한, CPU (110) 는 하나 이상의 내부의 온-칩 열 센서들 (157A) 뿐만 아니라 하나 이상의 외부의 오프-칩 열 센서들 (157B) 에 커플링될 수도 있다. 온-칩 열 센서들 (157A) 은, 수직 PNP 구조에 기초하고 통상적으로 상보형 금속 산화물 반도체 ("CMOS") 초대규모 집적 회로 (very large-scale integration; "VLSI") 회로들에 전용되는 하나 이상의 "PTAT (proportional to absolute temperature)" 온도 센서들을 포함할 수도 있다. 온-칩 열 센서들 (157B) 은 하나 이상의 서미스터들을 포함할 수도 있다. 열 센서들 (157) 은, 아날로그 디지털 변환기 ("ADC") 제어기 (103) (도 7a 참조) 에 의해 디지털 신호들로 변환되는 전압 강하를 생성할 수도 있다. 그러나, 열 센서들 (157) 의 다른 타입들이 본 발명의 범위로부터 벗어나는 일 없이 채용될 수도 있다.
또한, 열 센서들 (157) 은, ADC 제어기 (103) 에 의해 제어 및 모니터링되는 것 이외에도, 하나 이상의 열 정책 관리자 모듈(들) (101) 에 의해 제어 및 모니터링될 수도 있다. 열 정책 관리자 모듈(들) 은 CPU (110) 에 의해 실행되는 소프트웨어를 포함할 수도 있다. 그러나, 열 정책 관리자 모듈(들) (101) 은 또한 본 발명의 범위로부터 벗어나는 일 없이 하드웨어 및/또는 펌웨어로부터 형성될 수도 있다. 열 정책 관리자 모듈(들) (101) 은, PCD (100) 가 고도의 기능성을 유지하면서 임계 온도들을 회피하는 것을 도울 수도 있는 하나 이상의 열 완화 기법들을 포함하는 열 정책들을 모니터링 및 적용하는 것을 담당할 수도 있다.
도 1 을 다시 간략히 참조하면, 도 1 은 또한 PCD (100) 가 모니터 모듈 (114) 을 포함할 수도 있다는 것을 도시한다. 모니터 모듈 (114) 은 온-칩 시스템 (102) 전반에 걸쳐 분산된 다수의 동작가능한 센서들과 통신하고, PCD (100) 의 CPU (110) 와는 물론 열 정책 관리자 모듈 (101) 과도 통신한다. 열 정책 관리자 모듈 (101) 은 모니터 모듈과 협력하여, 더욱 상세히 후술되는 바와 같은 하나 이상의 열 완화 기법들을 포함하는 열 정책들을 적용할 수도 있다.
도 6 으로 되돌아와서, 터치스크린 디스플레이 (132), 비디오 포트 (138), USB 포트 (142), 카메라 (148), 제 1 스테레오 스피커 (154), 제 2 스테레오 스피커 (156), 마이크로폰 (160), FM 안테나 (164), 스테레오 헤드폰 (166), RF 스위치 (170), RF 안테나 (172), 키패드 (174), 모노 헤드셋 (176), 진동기 (178), 열 센서들 (157B), 및 파워 서플라이 (180) 는 온-칩 시스템 (322) 외부에 있다. 그러나, 모니터 모듈 (114) 은 또한 PCD (100) 상에서 동작가능한 리소스들의 실시간 관리를 돕기 위해 아날로그 신호 프로세서 (126) 및 CPU (110) 에 의해 이들 외부 디바이스들 중 하나 이상으로부터 하나 이상의 표시들 또는 신호들을 수신할 수도 있다는 것이 이해되어야 한다.
특정 양태에서, 여기에 설명된 방법 단계들 중 하나 이상은 하나 이상의 열 정책 관리자 모듈(들) (101) 을 형성하는 메모리 (112) 에 저장된 실행가능 명령들 및 파라미터들에 의해 구현될 수도 있다. 열 정책 관리자 모듈(들) 을 형성하는 이러한 명령들은, 여기에 설명된 방법들을 수행하기 위한 ADC 제어기 (103) 이외에도, CPU (110), 아날로그 신호 프로세서 (126), 또는 또 다른 프로세서에 의해 실행될 수도 있다. 또한, 프로세서들 (110, 126), 메모리 (112), 여기에 저장된 명령들, 또는 이들의 조합은, 여기에 설명된 방법 단계들 중 하나 이상을 수행하기 위한 수단으로서 기능할 수도 있다.
도 7a 는 도 6 에 예시된 칩 (102) 용 하드웨어의 일 예시적인 공간적 배열을 예시한 기능 블록도이다. 이 예시적인 실시형태에 따르면, 애플리케이션 CPU (110) 는 칩 (102) 의 극좌측 (far left side) 영역 상에 포지셔닝되는 한편, 모뎀 CPU (168, 126) 는 칩 (102) 의 극우측 (far right side) 영역 상에 포지셔닝된다. 애플리케이션 CPU (110) 는 제 0 코어 (222), 제 1 코어 (224), 및 제 N 코어 (230) 를 포함하는 멀티-코어 프로세서를 포함할 수도 있다. 애플리케이션 CPU (110) 는 (소프트웨어로 구현될 때) 열 정책 관리자 모듈 (101A) 을 실행하고 있을 수고 있거나 또는 (하드웨어로 구현될 때) 열 정책 관리자 모듈 (101A) 을 포함할 수도 있다. 애플리케이션 CPU (110) 는 또한 운영 시스템 ("O/S") 모듈 (207) 및 모니터 모듈 (114) 을 포함하는 것으로 예시된다. 모니터 모듈 (114) 에 대한 추가 상세들은 도 7b 와 관련하여 후술된다.
애플리케이션 CPU (110) 는 애플리케이션 CPU (110) 에 인접하고 칩 (102) 의 좌측 영역에 포지셔닝되는 하나 이상의 위상 고정 루프 (phase locked loop; "PLL") 들 (209A, 209B) 에 커플링될 수도 있다. PLL들 (209A, 209B) 에 인접하고 애플리케이션 CPU (110) 의 하방에는, 아날로그 디지털 ("ADC") 제어기 (103) 를 포함할 수도 있는데, 그 ADC 제어기 (103) 는 그 자신의 열 정책 관리자 (101B) 를 포함할 수도 있으며, 이 열 정책 관리자 (101B) 는 애플리케이션 CPU (110) 의 메인 열 정책 관리자 모듈 (101A) 과 함께 동작한다.
ADC 제어기 (103) 의 열 정책 관리자 (101B) 는 "온-칩" (102) 및 "오프-칩" (102) 에 제공될 수도 있는 다수의 열 센서들 (157) 을 모니터링 및 추적하는 것을 담당할 수도 있다. 온-칩 또는 내부 열 센서들 (157A) 은 다양한 위치들에 포지셔닝될 수도 있다.
예를 들어, 제 1 내부 열 센서 (157A1) 는 내부 메모리 (112) 에 인접하고 애플리케이션 CPU (110) 와 모뎀 CPU (168, 126) 사이의 칩 (102) 의 상부 중심 영역에 포지셔닝될 수도 있다. 제 2 내부 열 센서 (157A2) 는 칩 (102) 의 우측 영역 상의 모뎀 CPU (168, 126) 의 하방에 포지셔닝될 수도 있다. 이 제 2 내부 열 센서 (157A2) 는 또한 진보된 축소 명령 세트 컴퓨터 (reduced instruction set computer; "RISC") 명령 세트 머신 (instruction set machine; "ARM") (177) 과 제 1 그래픽스 프로세서 (135A) 사이에 포지셔닝될 수도 있다. 디지털 아날로그 제어기 ("DAC"; 173) 는 제 2 내부 열 센서 (157A2) 와 모뎀 CPU (168, 126) 사이에 포지셔닝될 수도 있다.
제 3 내부 열 센서 (157A3) 는 칩 (102) 의 극우 영역에서 제 2 그래픽스 프로세서 (135B) 와 제 3 그래픽스 프로세서 (135C) 사이에 포지셔닝될 수도 있다. 제 4 내부 열 센서 (157A4) 는 칩 (102) 의 극우 영역에, 그리고 제 4 그래픽스 프로세서 (135D) 아래에 포지셔닝될 수도 있다. 그리고 제 5 내부 열 센서 (157A5) 는 칩 (102) 의 극좌 영역에, 그리고 PLL들 (209) 및 ADC 제어기 (103) 에 인접하여 포지셔닝될 수도 있다.
하나 이상의 외부 열 센서들 (157B) 은 또한 ADC 제어기 (103) 에 커플링될 수도 있다. 제 1 외부 열 센서 (157B1) 는 오프-칩에, 그리고 모뎀 CPU (168, 126), ARM (177) 및 DAC (173) 를 포함할 수도 있는 칩 (102) 의 상부 우측 사분면 (top right quadrant) 에 인접하여 포지셔닝될 수도 있다. 제 2 외부 열 센서 (157B2) 는 오프-칩에, 그리고 제 3 및 제 4 그래픽스 프로세서들 (134C, 134D) 을 포함할 수도 있는 칩 (102) 의 하부 우측 사분면 (lower right quadrant) 에 인접하여 포지셔닝될 수도 있다.
당업자는, 도 7a 에 예시된 하드웨어의 다양한 다른 공간적 배열들이 본 발명의 범위로부터 벗어나는 일 없이 제공될 수도 있다는 것을 인지할 것이다. 도 7a 는 또 다른 하나의 예시적인 공간적 배열 및 메인 열 정책 관리자 모듈 (101A) 및 그 열 정책 관리자 (101B) 를 가진 ADC 제어기 (103) 가 도 7a 에 예시된 예시적인 공간적 배열의 함수인 열 상태들을 관리할 수도 있는 방법을 예시한다.
도 7b 는 동적 전압 및 주파수 스케일링 (dynamic voltage and frequency scaling; "DVFS") 알고리즘들을 지원하기 위한 도 6 및 도 7a 의 PCD (100) 의 일 예시적인 소프트웨어 아키텍처를 예시한 개략도이다. DVFS 알고리즘들은, 상세히 후술되는 바와 같이 특정 열 조건들이 충족될 때 열 정책 관리자 (101) 에 의해 트리거링될 수도 있는 적어도 하나의 열 완화 기법을 형성하거나 또는 그 일부일 수도 있다.
도 7b 에 예시한 바와 같이, CPU 또는 디지털 신호 프로세서 (110) 는 버스 (211) 를 통해 메모리 (112) 에 커플링된다. CPU (110) 는, 상기 언급된 바와 같이, N개의 코어 프로세서들을 갖는 다중-코어 프로세서이다. 즉, CPU (110) 는 제 1 코어 (222), 제 2 코어 (224), 및 제 N 코어 (230) 를 포함한다. 당업자가 알고 있는 바와 같이, 제 1 코어 (222), 제 2 코어 (224) 및 제 N 코어 (230) 각각은 전용 애플리케이션 또는 프로그램을 지원하는데 이용가능하다. 대안적으로, 하나 이상의 애플리케이션들 또는 프로그램들은 이용가능한 코어들 중 2개 이상에 걸쳐 프로세싱하기 위해 분산될 수도 있다.
CPU (110) 는 소프트웨어 및/또는 하드웨어를 포함할 수도 있는 열 정책 관리자 모듈(들) (101) 로부터 커맨드들을 수신할 수도 있다. 소프트웨어로서 구현되면, 열 정책 관리자 모듈 (101) 은 CPU (110) 및 다른 프로세서들에 의해 실행되는 다른 애플리케이션 프로그램들에 커맨드들을 발행하는 CPU (110) 에 의해 실행되는 명령들을 포함한다.
CPU (110) 의 제 1 코어 (222), 제 2 코어 (224) 내지 제 N 코어 (230) 는 단일 집적 회로 다이 상에 통합될 수도 있고, 또는 그들은 다중-회로 패키지 내의 개별 다이들 상에 통합 또는 커플링될 수도 있다. 설계자들은 제 1 코어 (222), 제 2 코어 (224) 내지 제 N 코어 (230) 를 하나 이상의 공유 캐시들을 통해 커플링할 수도 있고, 그들은 버스, 링, 메시 및 크로스바 토폴로지들과 같은 네트워크 토폴로지들을 통해 메시지 또는 명령 전달을 구현할 수도 있다.
예시된 실시형태에서, RF 트랜시버 (168) 는 디지털 회로 엘리먼트들을 통해 구현되고, 코어 프로세서 (210) ("코어" 라고 지칭된다) 와 같은 적어도 하나의 프로세서를 포함한다. 이 디지털 구현에서, RF 트랜시버 (168) 는 버스 (213) 를 통해 메모리 (112) 에 커플링된다.
버스 (211) 와 버스 (213) 각각은 당업계에 알려진 바와 같이, 하나 이상의 유선 또는 무선 접속들을 통한 다수의 통신 경로들을 포함할 수도 있다. 버스 (211) 및 버스 (213) 는 통신들을 가능하게 하기 위해, 제어기들, 버퍼들 (캐시 (cache) 들), 드라이버들, 리피터들 및 수신기들과 같이, 단순화를 위해 생략되는 추가적인 엘리먼트들을 가질 수도 있다. 또한, 버스 (211) 및 버스 (213) 는 전술한 컴포넌트들 간에 적합한 통신들을 가능하게 하기 위해 어드레스, 제어, 및/또는 데이터 접속들을 포함할 수도 있다.
도 7b 에 도시된 바와 같이, PCD (100) 에 의해 사용된 로직이 소프트웨어로 구현될 때, 기동 로직 (startup logic; 250), 관리 로직 (260), 동적 전압 및 주파수 스케일링 ("DVFS") 인터페이스 로직 (270), 애플케이션 스토어 (280) 내의 애플리케이션들 및 파일 시스템 (290) 의 부분들이 임의의 컴퓨터 관련 시스템 또는 방법에 의해 또는 임의의 컴퓨터 관련 시스템 또는 방법과 관련하여 사용하기 위해 임의의 컴퓨터 판독가능 매체 상에 저장될 수도 있다는 것에 주목해야 한다.
당업자에 의해 이해되는 바와 같이, 고성능 및 저전력 소비를 제공하는 프로세서들에 대한 요구가 프로세서 설계들에서 동적 전압 및 주파수 스케일링 ("DVFS") 의 이용에 이르게 하였다. DVFS 는 전력 소비와 성능 사이에 트레이드-오프를 가능하게 한다. 프로세서들 (110 및 126) (도 6) 은 각 프로세서의 클록 주파수가 전압의 대응하는 조정에 의해 조정되게 함으로써 DVFS 를 이용하도록 설계될 수도 있다. 임의의 전력 절약이 실행 시간에서의 증가만큼 오프셋되어, 소비된 총 에너지의 최종 감소가 이루어지지 않기 때문에, 클록 주파수 단독의 감소는 유용하지 않다. 그러나, 동작 전압의 감소는 소비된 전력의 비례적 절약을 발생시킨다. DVFS 가능 프로세서들 (110, 126) 에 대한 한가지 주된 문제는 성능과 전력 절약 사이의 밸런스를 어떻게 제어하는가이다.
본 문헌의 맥락에서, 컴퓨터 판독가능 매체는 컴퓨터 관련 시스템 또는 방법에 의해 또는 컴퓨터 관련 시스템 또는 방법과 관련하여 사용하기 위해 컴퓨터 프로그램 및 데이터를 포함 또는 저장할 수 있는 전자, 자기, 광 또는 다른 물리적 디바이스 또는 수단이다. 다양한 로직 엘리먼트들 및 데이터 스토어들은 컴퓨터 기반 시스템, 프로세서 포함 시스템, 또는 명령 실행 시스템, 장치 또는 디바이스로부터 명령들을 인출하고 그 명령들을 실행할 수 있는 다른 시스템과 같은 명령 실행 시스템, 장치 또는 디바이스에 의해, 또는 명령 실행 시스템, 장치 또는 디바이스와 관련하여 사용하기 위한 임의의 컴퓨터 판독가능 매체로 구현될 수도 있다. 본 문헌의 맥락에서, "컴퓨터 판독가능 매체" 는 명령 실행 시스템, 장치, 또는 디바이스에 의해 또는 명령 실행 시스템, 장치, 또는 디바이스와 관련하여 사용하기 위한 프로그램을 저장, 통신, 전파 또는 전송할 수 있는 임의의 수단일 수 있다.
컴퓨터 판독가능 매체는, 예를 들어, 전자, 자기, 광, 전자기, 적외선, 또는 반도체 시스템, 장치, 디바이스 또는 전파 매체일 수 있지만, 이들에 제한되지 않는다. 컴퓨터 판독가능 매체의 보다 특정한 예들 (비포괄적인 리스트) 은 다음 : 하나 이상의 와이어들을 갖는 전기 접속 (전자), 휴대용 컴퓨터 디스켓 (자기), 랜덤 액세스 메모리 (RAM) (전자), 판독 전용 메모리 (ROM) (전자), 소거가능한 프로그램가능 판독 전용 메모리 (EPROM, EEPROM, 또는 플래시 메모리) (전자), 광 섬유 (광), 및 휴대용 콤팩트 디스크 판독 전용 메모리 (CDROM) (광) 를 포함할 것이다. 프로그램이, 예를 들어, 종이 또는 다른 매체의 광 스캐닝을 통해 전자적으로 캡처되고 나서, 컴파일링, 인터프리팅 또는 그렇지 않으면 필요하다면 적합한 방식으로 프로세싱되며, 그 다음에 컴퓨터 메모리에 저장될 수 있기 때문에, 컴퓨터 판독가능 매체는 심지어는 종이 또는 프로그램이 인쇄되는 다른 적합한 매체일 수 있다는 것에 주목한다.
대안적인 실시형태에서, 기동 로직 (250), 관리 로직 (260) 및 가능하다면 DVFS 인터페이스 로직 (270) 이 하드웨어에서 구현되는 경우, 각각이 당업계에 널리 알려져 있는 다음의 기술들 중 임의의 기술 또는 이들의 조합으로 다양한 로직이 구현될 수도 있다: 데이터 신호들에 대해 논리 함수들을 구현하기 위한 논리 게이트들을 갖는 이산 논리 회로(들), 적절한 조합 논리 게이트들을 갖는 주문형 집적 회로 (ASIC), 프로그램가능 게이트 어레이(들) (PGA), 필드 프로그램가능 게이트 어레이 (FPGA) 등.
메모리 (112) 는 플래시 메모리 또는 솔리드 스테이트 메모리 디바이스와 같은 비휘발성 데이터 저장 디바이스이다. 단일 디바이스로서 도시되었지만, 메모리 (112) 는 RF 트랜시버 (168) 내에서 디지털 신호 프로세서 및 또는 코어 (210) (또는 부가적인 프로세서 코어들) 에 커플링된 개별 데이터 스토어들을 가진 분산된 메모리 디바이스일 수도 있다.
기동 로직 (250) 은 제 1 코어 (222), 제 2 코어 (224) 내지 제 N 코어 (230) 와 같은 이용가능한 코어들 중 하나 이상의 성능을 관리 또는 제어하기 위해 선택 프로그램을 선택적으로 식별, 로딩 및 실행하기 위한 하나 이상의 실행가능 명령들을 포함한다. 선택 프로그램은 임베딩된 파일 시스템 (290) 의 프로그램 스토어 (296) 에서 확인될 수 있고 성능 스케일링 알고리즘 (297) 과 일 세트의 파라미터들 (298) 의 특정 조합에 의해 정의된다. 선택 프로그램은, CPU (110) 내의 코어 프로세서들 및 RF 트랜시버 (168) 내의 코어 (210) 중 하나 이상에 의한 실행 시에, 각각의 프로세서 코어의 성능을 스케일링하기 위해 하나 이상의 열 정책 관리자 모듈(들) (101) 에 의해 제공된 제어 신호들과 함께 모니터 모듈 (114) 에 의해 제공된 하나 이상의 신호들에 따라 동작할 수도 있다. 이와 관련하여, 모니터 모듈 (114) 은 열 정책 관리자 모듈 (101) 로부터 수신되는 온도는 물론, 이벤트들, 프로세스들, 애플리케이션들, 리소스 상태 조건들, 경과 시간의 하나 이상의 표시자들을 제공할 수도 있다.
관리 로직 (260) 은 각각의 프로세서 코어들 중 하나 이상 상에서 동작적 성능 스케일링 프로그램을 종료하는 것뿐만 아니라, 이용가능한 코어들 중 하나 이상의 코어들의 성능을 관리 또는 제어하기 위해 보다 적합한 대체 프로그램을 선택적으로 식별, 로딩 및 실행하는 것을 위한 하나 이상의 실행가능 명령들을 포함한다. 관리 로직 (260) 은 PCD (100) 가 전력공급되어 디바이스의 오퍼레이터에 의해 사용되고 있는 동안 또는 실행 시간에 이들 기능들을 수행하도록 배열된다. 대체 프로그램은 임베딩된 파일 시스템 (290) 의 프로그램 스토어 (296) 에서 확인될 수 있고, 성능 스케일링 알고리즘 (297) 과 일 세트의 파라미터들 (298) 의 특정 조합에 의해 정의된다.
대체 프로그램은, RF 트랜시버 (168) 내의 코어 (210) 또는 디지털 신호 프로세서 내의 코어 프로세서들 중 하나 이상에 의한 실행 시에, 모니터 모듈 (114) 에 의해 제공된 하나 이상의 신호들 또는 각각의 프로세서 코어의 성능을 스케일링하기 위해 다양한 프로세서 코어들의 각각의 제어 입력들에 대해 제공된 하나 이상의 신호들에 따라 동작할 수도 있다. 이와 관련하여, 모니터 모듈 (114) 은 열 정책 관리자 (101) 로부터 유래하는 제어 신호들에 응답하여, 이벤트들, 프로세스들, 애플리케이션들, 리소스 상태 조건들, 경과 시간, 온도 등의 하나 이상의 표시자들을 제공할 수도 있다.
DVFS 인터페이스 로직 또는 인터페이스 로직 (270) 은 임베딩된 파일 시스템 (290) 에 저장된 정보를 관찰, 구성 또는 그렇지 않으면 업데이트하기 위해 외부 입력들을 제공하여, 관리하고 그 외부 입력들과 상호작용하는 하나 이상의 실행가능 명령들을 포함한다. 하나의 실시형태에서, 이 인터페이스 로직 (270) 은 USB 포트 (142) 를 통해 수신된 제조자 입력들과 함께 동작할 수도 있다. 이들 입력들은 프로그램 스토어 (296) 로부터 삭제되거나 프로그램 스토어 (296) 에 부가될 하나 이상의 프로그램들을 포함할 수도 있다. 대안적으로, 입력들은 프로그램 스토어 (296) 내의 프로그램들 중 하나 이상에 대한 편집들 또는 변화들을 포함할 수도 있다. 또한, 입력들은 기동 로직 (250) 및 관리 로직 (260) 중 하나 또는 양쪽에 대한 하나 이상의 변화들 또는 전체 대체들을 식별할 수도 있다. 일 예로서, 입력들은 수신된 신호 전력이 식별된 임계값 이하가 될 때 RF 트랜시버 (168) 내에서 모든 성능 스케일링을 정지시키도록 PCD (100) 에게 명령하는 관리 로직 (260) 에 대한 변화를 포함할 수도 있다. 추가 예로서, 입력들은, 비디오 코덱 (134) 이 액티브일 때 원하는 프로그램을 적용하도록 PCD (100) 에게 명령하는 관리 로직 (260) 에 대한 변화를 포함할 수도 있다.
이 인터페이스 로직 (270) 은, 제조자로 하여금, PCD (100) 상의 정의된 동작 조건들 하에서 최종 사용자의 경험을 제어가능하게 구성 및 조정할 수 있게 한다. 메모리 (112) 가 플래시 메모리인 경우, 기동 로직 (250), 관리 로직 (260), 이 인터페이스 로직 (270), 애플리케이션 스토어 (280) 내의 애플리케이션 프로그램들 또는 임베딩된 파일 시스템 (290) 내의 정보 중 하나 이상은 편집, 대체 또는 그렇지 않으면 변형될 수 있다. 일부 실시형태들에서, 이 인터페이스 로직 (270) 은 PCD (100) 의 최종 사용자 또는 오퍼레이터에게 기동 로직 (250), 관리 로직 (260), 애플리케이션 스토어 (280) 내의 애프리케이션들 및 임베딩된 파일 시스템 (290) 내의 정보를 검색, 위치결정, 변형 또는 대체하도록 허용할 수도 있다. 오퍼레이터는 결과의 인터페이스를 이용하여 PCD (100) 의 다음 기동시에 구현될 변화들을 행할 수도 있다. 대안적으로, 오퍼레이터는 결과의 인터페이스를 이용하여 실행 시간 동안 구현되는 변화들을 행할 수도 있다.
임베딩된 파일 시스템 (290) 은 계층구조로 배열된 DVFS 스토어 (292) 를 포함한다. 이와 관련하여, 파일 시스템 (290) 은 PCD (100) 에 의해 사용되는 다양한 파라미터들 (298) 및 성능 스케일링 알고리즘들 (297) 의 구성 및 관리에 대한 정보의 저장을 위해 그 총 파일 시스템 용량의 예비된 섹션을 포함할 수도 있다. 도 7b 에 도시된 바와 같이, DVFS 스토어 (292) 는 코어 스토어 (294) 를 포함하고, 이 코어 스토어 (294) 는 하나 이상의 DVFS 프로그램들을 포함하는 프로그램 스토어 (296) 를 포함한다. 각 프로그램은 각각의 성능 스케일링 알고리즘과 그 특정 알고리즘과 연관된 일 세트의 파라미터들의 조합으로서 정의된다. DVFS 스토어 (292) 의 계층적 성질의 추가 예로서, 일 세트의 파일들의 특정 멤버는 경로
Figure pct00001
에 의해 위치결정 및 식별될 수도 있다. 이 예에서, 프로그램은 파라미터 세트에 저장된 정보의 콘텐츠들과 함께 알고리즘에 의해 식별된다. 예를 들어, "고전적 (classic)" 인 것으로 알려진 종래의 DVFS 알고리즘은 다음과 같은 파라미터들 샘플 레이트, 증가할 샘플들, 및 감소할 샘플들에 따라 코어 0 (222) 에 대한 성능 스케일링을 관리하도록 식별될 수도 있다:
Figure pct00002
, 값은 100 이고, 샘플 레이트는 MHz 단위이며;
Figure pct00003
, 값은 2 이고, 증가할 샘플들은 정수이며;
Figure pct00004
, 값은 1 이고, 감소할 샘플들은 정수이다.
즉, 각각의 파일명들은 파라미터를 정의하고, 파라미터의 값은 파일의 콘텐츠들에 의해 식별된다. 알고리즘은 CPU 아이들 (idle) 퍼센트의 주기적 샘플링에 의해 정의되고, 낮은 임계값 (% 아이들) 및 높은 임계값 (% 아이들) 에 따라 동작한다. 증가할 샘플들 임계값 비교기가 2개의 연속적인 샘플들에 대해 성능이 증가되어야 함을 나타낸다면, DVFS 알고리즘은 미리 결정된 클록 레벨 조정에 따라 성능을 증가시킨다. 반대로, 감소할 샘플들 임계값 비교기가 1개의 연속적인 샘플에 대해 성능이 감소되어야 함을 나타낸다면, DVFS 알고리즘은 미리 결정된 클록 레벨 (즉, 주파수) 조정에 따라 성능을 감소시킨다. 상기 설명된 바와 같이, 프로세서 또는 코어 동작 전압은 클록 주파수의 변화들과 함께 변화될 수도 있다.
대안적으로, 또는 추가적으로, DVFS 스토어 (292) 는 탐색 경로가 그 애플리케이션 (즉, 프로세서 코어, 알고리즘 및 파라미터 값) 에 대해 가장 특정적인 것에서 시작하여, 애플리케이션에 대해 가장 적게 특정적인 것으로 나아가도록 배열될 수도 있다. 일 예시적인 실시형태에서, 파라미터들은 "고전적" 성능 스케일링 알고리즘과 관련하여 디렉토리들
Figure pct00005
,
Figure pct00006
Figure pct00007
에서 정의된다. 예를 들어, 경로
Figure pct00008
는 코어 0 상에서 동작하는 고전적 알고리즘에만 적용한다. 이 가장 특정적인 애플리케이션은 모든 다른 것들보다 우선할 것이다. 경로
Figure pct00009
는 고전적 알고리즘을 실행하는 임의의 프로세서 코어에 적용한다. 이 애플리케이션은 상기 예시적인 경로만큼 특정적이지 않고, 고전적 알고리즘을 실행하는 임의의 프로세서 코어에 적용하는
Figure pct00010
보다 더 특정적이다.
이 디폴트 애플리케이션은 가장 적게 특정적이고, 어떤 다른 적합한 경로도 DVFS 스토어 (292) 에 존재하지 않는 경우에만 사용된다. 확인된 제 1 파라미터는 1 이 사용될 것이다.
Figure pct00011
위치는 항상 유효한 파라미터 파일을 가질 것이다. PCD (100) 에 대한 바람직한 유즈 케이스들은 물론, 개개의 코어들의 아키텍처, 하나 이상의 공유 캐시들의 아키텍처 및 코어들 간에 명령들을 전달하는데 이용된 메커니즘(들)은 메모리 (112) 에 저장된 다양한 성능 스케일링 알고리즘들 (297) 의 성질을 나타낼 것으로 예상된다.
도 7c 는 DVFS 인터페이스 로직 (270) 에 의해 선택될 수도 있는 2개의 상이한 DVFS 알고리즘들에 대한 예시적인 주파수 값들을 열거한 제 1 테이블 (267) 이다. 이 예시적인 제 1 테이블 (267) 에 따르면, 멀티-코어 CPU (110) 의 각 코어는 실행되는 현재 DVFS 알고리즘에 따라 특정의 최대 클록 주파수 값들이 할당될 수도 있다. 테이블 (627) 의 제 1 로우 (row) 에 열거되는 제 1 DVFS 알고리즘에 대해, 코어 0 은 600 MHz 의 최대 클록 주파수가 할당될 수도 있는 한편, 코어 1 은 650 MHz 의 최대 클록 주파수가 할당될 수도 있으며, 제 N 코어는 720 MHz 의 최대 클록 주파수가 할당될 수도 있다. 테이블 (627) 의 제 2 로우에 열거되는 제 2 DVFS 알고리즘에 대해, 코어 0 은 610 MHz 의 최대 클록 주파수가 할당될 수도 있는 한편, 코어 1 은 660 MHz 의 최대 클록 주파수가 할당되고, 제 N 코어는 700 MHz 의 최대 클록 주파수가 할당될 수도 있다. 클록 주파수에 대한 이들 제한들은 PCD (100) 의 현재 열 상태에 따라 열 정책 관리자 (101) 에 의해 선택될 수도 있다.
도 7d 는 2개의 DVFS 알고리즘들에 대한 예시적인 주파수 및 전압 쌍들을 열거한 제 2 테이블 (277) 이다. 테이블 (277) 의 제 1 로우에 열거된 DVFS 알고리즘에 대해, 코어 0 은 600 MHz 의 최대 클록 주파수가 할당될 수도 있는 한편, 그 최대 전압은 1.3 mV 로 제한될 수도 있다. 코어 1 은 500 MHz 의 최대 클록 주파수 및 2.0 mV 의 대응하는 최대 전압이 할당될 수도 있다. 코어 N 은 550 MHz 의 최대 클록 주파수 및 1.8 mV 의 대응하는 최대 전압이 할당될 수도 있다. 테이블 (277) 의 제 2 로우에 열거된 제 2 DVFS 알고리즘에 대해, 코어 0 은 550 MHz 의 최대 클록 주파수가 할당될 수도 있는 한편, 최대 전압은 1.0 mV 의 값이 할당된다. 코어 1 은 600 MHz 의 최대 클록 주파수 및 1.5 mV 의 대응하는 최대 전압이 할당될 수도 있다. 그리고 마지막으로, 코어 N 은 550 MHz 의 최대 클록 주파수 및 1.9 mV 의 대응하는 최대 전압이 할당될 수도 있다. 열 정책 관리자 (101) 는 PCD (100) 의 현재 열 상태에 따라 테이블 (277) 에 열거된 주파수와 전압들의 다양한 쌍들을 선택할 수도 있다.
도 8 은 열 정책 관리자 (101) 에 의해 추적되는 다양한 열 정책 상태들 (305, 310, 315 및 320) 을 예시하는 일 예시적인 상태도 (300) 이다. 제 1 정책 상태 (305) 는, 열 정책 관리자 (101) 가 단지 루틴 또는 통상의 방식으로 열 센서들 (157) 을 모니터링하는 "정상 (normal)" 상태를 포함할 수도 있다. 이 예시적인 제 1 및 정상 상태 (305) 에서, PCD (100) 는 보통 하드웨어 및/또는 소프트웨어 컴포넌트들 중 임의의 것의 실패를 야기할 수도 있는 임계 온도들에 도달하는 어떠한 위험이나 리스크가 없다. 이 예시적인 상태에서, 열 센서들 (157) 은 50 ℃ 이하인 온도를 검출 또는 추적 중일 수도 있다. 그러나, 당업자는, 다른 온도 범위들이 본 발명의 범위로부터 벗어나는 일 없이 제 1 및 정상 상태 (305) 에 대해 확립될 수도 있다는 것을 인지할 것이다.
제 2 정책 상태 (310) 는, 열 정책 관리자 (101) 가 열 센서들 (157) 이 폴링되거나 또는 열 센서들 (157) 이 그들의 온도 상태 리포트들을 열 정책 관리자 (101) 에게 전송하는 빈도 (frequency) 를 증가시킬 수도 있는 "서비스 품질" 또는 "QoS" 상태를 포함할 수도 있다. 온도 변화가 제 1, 정상 상태 (305) 에서 검출되었을 때 열 정책 관리자 (101) 에 의해 이 예시적인 제 2 상태 (310) 에 도달 또는 진입될 수도 있다. 이 QoS 상태 (310) 를 트리거링하는 온도의 변화 (ΔT) 의 임계값 또는 크기는 특정 PCD (100) 에 따라 조정 또는 맞춰질 수도 있다. 따라서, PCD (100) 는 제 1 정상 상태 (305) 에서 동작 중일 수도 있지만, 하나 이상의 열 센서들에 의해 검출되는 온도의 변화의 크기에 따라, PCD (100) 는 열 정책 관리자 (101) 에 의해 추적된 바와 같이 제 1 정상 상태 (305) 를 떠나고 제 2 QoS 상태 (310) 에 진입할 수도 있다.
예를 들어, PCD (100) 는 대략 40 ℃ 의 주어진 열 센서 (157) 로부터의 제 1 최대 온도 판독값을 가질 수도 있다. 그리고, 동일한 열 센서 (157) 로부터의 제 2 판독값은 45 ℃ 로 검출되는 최대 온도를 취하는 단지 5 ℃ 만의 온도의 변화를 보여줄 수도 있다. 그러나, 검출되는 최대 온도는 제 1, 정상 상태 (305) 에 대한 50 ℃ 의 확립된 임계값보다 낮을 수도 있지만, 5 ℃ 만큼의 온도 변화는 열 정책 관리자 (101) 가 그 상태를 제 2, QoS 상태 (310) 로 변화시키기에 충분할 정도로 상당할 수도 있다.
제 2, QoS 열 상태 (310) 에서, 열 정책 관리자 (101) 는 PCD (100) 의 열 로드 및 온도를 감소시키기 위해 하나 이상의 열 완화 기법들을 요청할 수도 있고 또는 실제로 하나 이상의 열 완화 기법들을 수행할 수도 있다. 이 특정 상태 (310) 에서, 열 정책 관리자 (101) 는 오퍼레이터에 의해 거의 지각가능하지 않을 수도 있고 최소 방식으로 PCD (100) 에 의해 제공된 서비스 품질을 저하시킬 수도 있는 열 완화 기법들을 구현 또는 요청하도록 설계된다. 이 제 2, QoS 열 상태 (310) 에 대한 온도 범위는 약 50 ℃ 내지 약 80 ℃ 사이의 범위를 포함할 수도 있다. 당업자는, 다른 온도 범위들이 제 2 QoS 상태 (305) 에 대해 확립될 수도 있고 본 발명의 범위 내에 있는 것을 인지할 것이다.
이전에 언급된 바와 같이, 제 2, QoS 상태 (310) 는 온도 변화의 크기 및/또는 위치에 기초하여 트리거링될 수도 있고, 선택된 온도 범위의 종점 (endpoint) 들에 반드시 제한되지는 않는다. 이 제 2, QoS 열 상태 (310) 에 관한 추가 상세들은 도 9 와 관련하여 후술될 것이다.
제 3 열 상태 (315) 는 열 정책 관리자 (101) 가 상술된 제 2, QoS 상태 (310) 에 비해 더 공격적인 열 완화 기법들을 요청 및/또는 적용하면서 열 센서들 (157) 로부터의 인터럽트들을 계속 모니터링 및/또는 수신하는 "심각한 (severe)" 상태를 포함할 수도 있다. 이것은, 이 상태에서 열 정책 관리자 (101) 가 오퍼레이터의 관점에서 서비스 품질에 관하여 덜 관련된다는 것을 의미한다. 이 열 상태에서, 열 정책 관리자 (101) 는 PCD (100) 의 온도를 감소시키기 위해 열 로드를 완화 또는 감소시키는 것에 관하여 더 관련된다. 이 제 3 열 상태 (315) 에서, PCD (100) 는 오퍼레이터에 의해 쉽게 지각 또는 관찰되는 성능의 저하 (degradation) 들을 가질 수도 있다. 제 3, 심각한 열 상태 (315) 및 열 정책 관리자 (101) 에 의해 적용 또는 트리거링되는 그 대응하는 열 완화 기법들은 도 9 와 관련하여 더욱 상세히 후술될 것이다. 이 제 3, 심각한 열 상태 (310) 에 대한 온도 범위는 약 80 ℃ 내지 약 100 ℃ 사이의 범위를 포함할 수도 있다.
상술된 바와 같이 제 1 열 상태 (305) 및 제 2 열 상태 (310) 와 유사하게, 이 제 3 및 심각한 열 상태 (315) 는 하나 이상의 열 센서들 (157) 에 의해 검출되고 이 제 3 열 상태 (315) 에 대해 확립 또는 맵핑된 온도 범위로 반드시 제한되지 않는 온도의 변화에 기초하여 개시될 수도 있다. 예를 들어, 이 도면의 화살표들이 예시한 바와 같이, 각 열 상태는 검출될 수도 있는 온도의 변화 (ΔT) 의 크기에 따라 순차적으로 개시될 수도 있고 또는 비순차적으로 개시될 수 있다. 그래서, 이것은 PCD (100) 가 하나 이상의 열 센서들 (157) 에 의해 검출되는 온도의 변화에 기초하여 제 1 및 정상 열 상태 (305) 를 떠나고 제 3 및 심각한 열 상태 (315) 에 진입하거나 그 상태를 개시할 수도 있으며, 그 역도 또한 마찬가지이다. 유사하게, PCD (100) 는 하나 이상의 열 센서들 (157) 에 의해 검출되는 온도의 변화에 기초하여 제 2 또는 QoS 열 상태 (310) 에 있을 수도 있고 제 4 또는 임계 상태 (320) 에 진입하거나 그 상태를 개시할 수도 있으며, 그 역도 또한 마찬가지이다. 이 예시적인 제 3 및 임계 상태 (320) 에서, 열 정책 관리자 (101) 는 PCD (100) 내에 포함된 전자 장치에 영구적인 손상을 야기할 수도 있는 하나 이상의 임계 온도들에 도달하는 것을 회피하기 위해 가능한 한 많고 상당한 크기의 열 완화 기법들을 적용 또는 트리거링하고 있다.
이 제 4 및 임계 열 상태 (320) 는 임계 온도를 회피하기 위해 PCD (100) 의 기능성 및 동작을 제거하도록 설계되는 종래의 기법들과 유사할 수도 있다. 제 4 열 상태 (320) 는 열 정책 관리자 (101) 가 비필수적인 하드웨어 및/또는 소프트웨어의 셧 다운을 적용 또는 트리거링하는 "임계 (critical)" 상태를 포함할 수도 있다. 이 제 4 열 상태에 대한 온도 범위는 약 100 ℃ 이상의 것들을 포함할 수도 있다. 제 4 및 임계 열 상태 (320) 는 도 9 와 관련하여 더욱 상세히 후술될 것이다.
열 정책 관리 시스템은 도 8 에 예시된 4가지 열 상태들 (305, 310, 315 및 320) 에 제한되지 않는다. 특정 PCD (100) 에 따라, 부가적이거나 더 적은 열 상태들이 본 발명의 범위로부터 벗어나는 일 없이 제공될 수도 있다. 즉, 당업자는, 부가적인 열 상태들이 특정 PCD (100) 의 기능성 및 동작을 개선시킬 수도 있지만, 다른 상황들에서는, 더 적은 열 상태들이 그 자신의 고유한 하드웨어 및/또는 소프트웨어를 갖는 특정 PCD (100) 에 대해 선호될 수도 있다는 것을 인지한다.
도 9 는 열 정책 관리자 (101) 에 의해 적용 또는 지시될 수도 있고 PCD (100) 의 특정 열 상태에 의존하는 예시적인 열 완화 기법들을 예시한 도면이다. 여기에 설명된 열 완화 기법들이 임의의 타입의 프로세싱과 연관된 열 로드들을 관리하기 위해 적용될 수도 있지만, 내재하는 전력 요구들, 시스템 요건들, 및 PCD (100) 의 전체 사용자 경험에 대한 중요도로 인해 그래픽 프로세싱을 수반하는 상황들에서 특히 유용할 수도 있다는 것을 인식해야 한다. 이전에 언급된 바와 같이, 제 1 열 상태 (305) 는 CPU (110) 에 의해 실행되고 부분적으로 ADC 제어기 (103) 에 의해 실행되는 열 정책 관리자 (101) 가 하나 이상의 열 센서들 (157) 로부터의 온도에 대한 하나 이상의 상태 리포트들을 모니터링, 폴링 또는 수신할 수도 있는 "정상" 상태를 포함할 수도 있다. 이 제 1 열 상태 (305) 에서, PCD (100) 는 PCD (100) 내의 하나 이상의 소프트웨어 및/또는 하드웨어 컴포넌트들을 손상시킬 수도 있는 임계 온도에 도달할 어떠한 위험이나 리스크가 없을 수도 있다. 보통, 이 제 1 열 상태에서, 열 정책 관리자 (101) 는 PCD (100) 가 열 로딩에 관련 없이 그 최고 풀 전위 및 최고 성능에서 동작 중이도록 열 완화 기법들의 임의의 개시를 적용 중이지 않고 요청하지 않았다. 이 제 1 열 상태 (305) 에 대한 온도 범위는 50 ℃ 이하의 것들을 포함할 수도 있다. 이 제 1 열 상태 (305) 의 경우, 열 정책 관리자 (101) 는 ADC 제어기 (103) 에 상주할 수도 있는 한편, 모든 다른 상태들의 경우의 메인 열 정책 관리자 (101) 는 CPU (110) 에 상주하거나 CPU (110) 에 의해 실행될 수도 있다. 대안적인 예시적인 실시형태에서, 열 정책 관리자 (101) 는 CPU (110) 에만 상주할 수도 있다.
QoS 상태 (310) 라고도 또한 지칭되는 제 2 열 상태 (310) 에서는, 그 상태가 일단 개시되면, 열 정책 관리자 (101) 는 PCD (100) 의 현재 온도에 관해 열 센서들 (157) 로부터의 (제 1 열 상태 (305) 에 대한) 인터럽트들의 보다 고속의 모니터링, 폴링 및/또는 수신을 시작할 수도 있다. 이 예시적인 제 2 열 상태 (310) 에서, 열 정책 관리자 (101) 는 도 7a 의 모니터 모듈 (114) 및/또는 운영 시스템 ("O/S") 모듈 (207) 에, 열 완화 기법들의 적용을 시작하도록 개시 또는 요청할 수도 있지만, PCD (100) 의 오퍼레이터에 의해 지각된 바와 같이 서비스 품질에 대한 저하의 지각이 적거나 또는 지각 없이 고성능을 유지하는 것을 목적으로 한다.
도 9 에 예시된 이 예시적인 제 2 열 상태 (310) 에 따르면, 열 정책 관리자 (101) 는 (1) 로드 스케일링 및/또는 (2) 로드 동적 스케일링; (3) 공간적 로드 시프팅; 및 (4) 프로세스 로드 재할당과 같은 (그러나 이에 제한되지 않는다) 열 완화 기법들을 개시하도록 모니터 (114) 및/또는 O/S 모듈 (207) 에 요청할 수도 있다. 로드 스케일링은 도 7c 의 제 1 테이블 (267) 에 제공된 값들과 같이, DVFS 알고리즘에서 허용되는 최대 클록 주파수를 조정 또는 "스케일링" 하는 것을 포함할 수도 있다. 이러한 조정은 최대 열 소산을 제한할 수도 있다. 이 열 로드 완화 기법은 또한 특정 및 고유한 PCD (100) 에 대해 사용되는 표준 DVFS 테이블을 매칭시키기 위해 전압을 조정하는 것을 수반할 수도 있다.
로드 동적 스케일링의 열 로드 완화 기법은 N개의 애플리케이션 프로세서 코어들 (222, 224 및 230) 중 하나 및/또는 전부의 스케일링을 포함할 수도 있다. 이 열 로드 완화 기법은 특정 코어 (222, 224 또는 230) 의 DVFS 알고리즘에 대해 허용된 최대 클록 주파수를 확립하는 것을 포함할 수도 있다. DVFS 알고리즘은 프로세싱 능력을 스케일링하기 위해, 도 7d 에 예시된 제 2 테이블 (277) 과 같이, 전압/주파수 쌍들의 테이블을 사용할 것이다.
하나의 이와 같은 방법은 허용되는 최대 주파수를 제한함으로써 "MIPS (millions of instructions per second)" 의 수를 제한하는 것을 포함한다. 이러한 방법으로, 열 정책 관리자 (101) 는 효율적으로 코어(들) (222, 224 및 230) 의 전력 소비를 제한하고 있고 이용가능한 그들의 능력 (MIPS) 을 제한하고 있다. 열 정책 관리자 (101) 는 N개의 코어들 (222, 224, 230) 을 함께 제한하도록 선정할 수도 있고, 또는 그것은 비한정된 방식으로 다른 코어들 (222, 224, 230) 이 동작하는 것을 허용하면서 어느 코어들 (222, 224, 230) 이 다시 스케일링 상태가 되는지를 선택 및 선정할 수 있다. 열 정책 관리자 (101), 모니터 모듈 (114), 및/또는 O/S 모듈 (207) 은 열 센서들 (157) 또는 소프트웨어 애플리케이션 요건들 기반으로부터 수신된 데이터, 및/또는 최선 노력 예측 (best effort prediction) 에 기초하여 어느 코어들 (222, 224, 230) 을 제어할지에 관한 그들의 판정을 행할 수도 있다. 이 제 2 열 상태에 대한 온도 범위는 약 50 ℃ 내지 약 80 ℃ 의 것들을 포함할 수도 있다.
공간적 로드 시프팅의 열 로드 완화 기법은 멀티-코어 프로세서 시스템 내의 코어들의 활성화 및 비활성화를 포함한다. N개의 다수의 코어들이 존재한다면, 작업 또는 그 성능이 N-1개까지의 코어들을 이용하여 최대화된 채로 각 코어가 로드 업될 수도 있고, 그 다음에 열 센서 (157) 가 가열 문제를 나타낼 때, 냉각 디바이스로서 기능하는 인액티브 코어의 위치는 시프트될 수도 있다. 각 코어는 그것을 미리 결정된 패턴으로 또는 열 측정들에 의해 지시된 패턴으로 아이들이 되게 함으로써 효율적으로 냉각될 수도 있다. '홀' 은 수 초 동안 코어들을 냉각시키기 위해 그 코어들 주위로 MIPS 로 효율적으로 이동된다. 이러한 방법으로, 프로세싱 전력의 수 GHz 는, 로드를 이리저리 이동시킴으로써 실리콘 다이를 여전히 냉각시키면서, PCD (100) 에 이용가능해질 수도 있다. 공간적 로드 시프팅의 추가 상세들은 도 13a 와 관련하여 후술될 것이다.
프로세스 로드 재할당의 열 완화 기법이 도 12 내지 도 14 와 관련하여 후술된다. 그러나, 일반적으로, 이 기법은, 멀티-코어 그래픽 프로세싱 유닛들 ("GPU") 및/또는 멀티-코어 중앙 프로세싱 유닛들 ("CPU") 의 동작으로부터 발생하는 열 에너지 생성 및 소산에 관한 것이다. 이상적으로, 프로세스 로드 재할당 알고리즘의 형태의 열 열화 기법의 효율적인 개선을 위해, PCD (100) 는 개개의 코어들 또는 코어들의 그룹들에 아주 근접한 온도 센서들 (157) 을 가질 수도 있다. 센서들 (157) 로부터의 온도 판독값들에 기초하여, "뜨거운" 코어로부터 "냉각된" 또는 그렇지 않으면 덜 이용된 코어로 프로세스 로드 재할당을 야기하도록, 하나 이상의 코어들 자체에서 실행되는 드라이버들이 영향을 받을 수도 있다. 유리하게는, 열 정책 관리자 모듈(들) (101) 이 프로세싱 로드들에 따라 변동하는 온도 판독값들에 반응하도록 동작가능할 수도 있음에 따라, 프로세스 로드 재할당 및 공간적 로드 시프팅과 같은 다양한 열 완화 기법들의 실시형태들은 실시간으로 또는 근실시간으로 구현될 수도 있다. 따라서, 센서들 (157) 로부터의 온도 판독값들의 액티브 모니터링에 기초하여 실시간으로 또는 근실시간으로 열 완화 조치들을 취하도록 동작가능한 실시형태들에서, 당업자는 미리 정의된 열 스티어링 시나리오들 (24) 이 필요하지 않을 수도 있다는 것을 인지할 것이다. 즉, 일부 실시형태는, 실시간 온도 입력들 및 워크로드 데이터에 기초하여, 프로세싱 로드의 효율적인 재할당 또는 공간적 시프팅을 위한 명령들을 발생시킬 수 있는 알고리즘들을 이용할 수도 있다.
특히, 낮은 전력 밀도를 갖는 메인 프로세싱 블록과 높은 전력 밀도 레이트들을 갖는 특수화된 서브-프로세서 블록들 양쪽을 포함하는 코어들을 갖는 멀티-코어 CPU들에서의 프로세스 로드 재할당을 위해 설계된 일부 실시형태에서, 프로세스 로드들은 주어진 코어 내에 재할당될 수도 있다. 예를 들어, 과도한 그래픽 프로세싱 요건들을 갖는 게이밍 애플리케이션들과 같은 (그러나 이에 제한되지 않는다) 높은 연산력을 필요로 하는 프로세스 로드들은, 서브-코어의 개선된 연산 용량으로부터 이익을 얻기 위한 서브-코어 레벨에서 프로세싱하도록 정상적으로 스케줄링될 수도 있다. 그러나, 서브-코어에서의 오버로딩된 프로세스 큐는, CPU (110) 또는 PCD (100) 내에 포함된 다른 컴포넌트들에 유해할 수 있는 과도한 열 에너지를 발생시킬 수도 있다. 이러한 시나리오에서, (코어들 간에서와 대조적으로) 주어진 코어 내에서 프로세스 로드의 전부 또는 일부를, 높은 밀도 서브-프로세서 블록으로부터 보다 낮은 전력 밀도 메인 프로세스 블록으로 재할당함으로써 열 에너지 로드가 완화될 수도 있다.
이제, 심각한 열 상태 (315) 라고도 또한 알려진 도 9 의 제 3 열 상태 (315) 를 참조하면, 열 정책 관리자 (101) 는 온도가 제 2 하위 열 상태 (310) 와 비교하여 더 계속해서/빈번히 감지되도록 열 센서들 (157) 로부터의 인터럽트들을 계속 모니터링, 폴링 또는 수신하기 시작할 수도 있다. 이 예시적인 열 상태 (315) 에서, 열 정책 관리자 (101) 는 PCD (100) 의 오퍼레이터에 의해 관찰된 가능한 지각가능한 성능 저하에 의해 (제 2 열 상태 (310) 에 비해) 더 공격적인 열 완화 기법들 및/또는 부가적인 열 완화 기법들을 모니터 모듈 (114) 및/또는 O/S 모듈 (207) 이 적용하도록 적용 또는 요청할 수도 있다. 이 예시적인 제 3 열 상태 (315) 에 따르면, 열 정책 관리자 (101) 는 증폭기들, 프로세서들 등과 같은 하나 이상의 하드웨어 디바이스들에 대한 전력의 감소를 야기할 수도 있다. 열 정책 관리자 (101) 는 또한 액티브 디바이스들을 오프라인에 있게 하기 위해, 그리고 인액티브 디바이스들을 온라인에 있게 하기 위해 공간적 방식으로 상이한 하드웨어 디바이스들 간에 워크로드들을 시프트할 수도 있다. 이 제 3 및 심각한 열 상태 (315) 의 열 완화 기법들은 제 2, 서비스 품질 열 상태 (310) 에 대해 상술된 것들과 동일할 수도 있다. 그러나, 이들 동일한 열 완화 기법들은 더 공격적인 방식으로 적용될 수도 있다. 예를 들어, 프로세스 로드들의 재할당에 있어서, 열 정책 관리자 (101) 는, 제 2 열 상태 (310) 와 비교하여, 보다 큰 퍼센티지의 프로세스 로드들이 높은 전력 밀도 서브-프로세서 블록들로부터 다양한 코어들의 메인 프로세서 블록들로 재할당되는 것을 요청할 수도 있다. 또한, 열 정책 관리자 (101) 는 액티브 프로세스 로드들이 높은 전력 밀도 서브-프로세서 블록들로부터 다양한 코어들의 메인 프로세서 블록들로 완전히 재할당되는 것을 요청할 수도 있어서, 높은 열 에너지 발생 서브-프로세서 블록들을 오프라인으로 효율적으로 취하도록 한다. 이러한 프로세스 로드 할당들은 특정 애플리케이션 프로그램을 지원하기 위해 권장되는 바람직한 프로세싱 성능보다 더 낮을 수도 있다.
이제, 도 9 의 제 4 및 임계 상태 (320) 를 참조하면, 열 정책 관리자 (101) 는 모니터 (114) 및/또는 O/S 모듈 (207) 을 셧 다운하거나 또는 그 모니터 (114) 및/또는 O/S 모듈 (207) 에게 모든 비본질적인 (nonessential) 하드웨어 및/또는 소프트웨어 모듈들의 셧 다운을 시작하도록 요청하기 시작할 수도 있다.
"비본질적인" 하드웨어 및/또는 소프트웨어 모듈들은 특정 PCD (100) 의 각 타입에 대해 상이할 수도 있다. 하나의 예시적인 실시형태에 따르면, 모든 비본질적인 하드웨어 및/또는 소프트웨어 모듈들은 긴급 911 전화 통화 기능 및 글로벌 포지셔닝 위성 ("GPS") 기능들 이외의 것들 모두를 포함할 수도 있다. 이것은 이 제 4, 임계 열 상태 (320) 의 열 정책 관리자 (101) 가 긴급 911 전화 통화 및 GPS 기능들 이외에 있는 하드웨어 및/또는 소프트웨어 모듈들의 셧 다운을 야기할 수도 있다는 것을 의미한다. 열 정책 관리자 (101) 는 열 센서들 (157) 에 의해 모니터링되는 임계 온도들 및 열 정책 관리자 (101) 에 의해 관찰되는 온도의 변화에 따라 모듈들을 순차적으로 및/또는 병렬로 셧 다운할 수도 있다. 이 제 4 열 상태 (320) 에 대한 온도 범위는 약 100 ℃ 이상의 것들을 포함할 수도 있다.
도 10 은 온도 대 시간 및 대응하는 열 정책 상태들 (305, 310, 315 및 320) 의 일 예시적인 그래프 (500) 를 예시한 도면이다. 온도 플롯 또는 라인 (505) 의 제 1 포인트 (503) 에서, 열 정책 관리자 (101) 는 하나 이상의 열 센서들 (157) 로부터 40 ℃ 의 제 1 인터럽트 온도 판독값을 수신할 수도 있다. 40 ℃ 의 이 제 1 온도 판독값이 정상 열 상태 (305) 에 대해 설정된 50 ℃ 의 최대 온도보다 낮을 수도 있기 때문에, 열 정책 관리자 (101) 는 제 1 또는 정상 열 상태 (305) 로 남아 있을 수도 있다.
온도 라인 (505) 을 따르는 제 2 포인트 (506) 에서, 열 정책 관리자 (101) 는 50 ℃ 의 제 2 인터럽트 온도 판독값을 수신할 수도 있다. 50 ℃ 는 제 1 열 상태 (305) 에 대한 선택된 온도 범위 내에 있을 수도 있지만, (5 초 내의 3 ℃ 변화와 같은) 단기간 내의 큰 온도 변화와 같이, 마지막 온도 판독값으로부터의 온도의 변화가 상당하였다면, 이러한 온도의 변화 또는 점프는 열 정책 관리자 (101) 를 트리거링하여 정상 열 상태 (305) 를 떠나고 제 2, QoS 열 상태 (310) 를 개시할 수도 있다.
온도 라인 (505) 의 제 2 포인트 (506) 와 제 3 포인트 (509) 사이에, PCD (100) 의 온도는 50 ℃ 보다 높았고, 열 정책 관리자 (101) 는 PCD (100) 의 온도를 낮추기 위해 하나 이상의 열 완화 기법들을 요청 또는 활성화했을 수도 있다. 온도 라인 (505) 의 제 3 포인트 (509) 에서, 열 정책 관리자 (101) 는 PCD (100) 의 열 상태를 제 2 상태 (310) 로부터 제 1 및 정상 상태 (305) 로 변화시킬 수도 있다.
제 4 포인트 (512) 에서, 열 정책 관리자 (101) 는 온도 트렌드가 상향하는 방식으로 이동 중이라는 것을 관찰할 수도 있고, 또는 즉, 온도 라인 (505) 은 ΔT 의 포지티브 슬로프 또는 변화를 가질 수도 있다. 열 정책 관리자 (101) 는 이 데이터를 고려하여 PCD (100) 의 열 상태를 제 1 열 상태 (305) 로부터 제 2, QoS 열 상태 (310) 로 변화시킬 수도 있다. 제 2 열 상태 (310) 에서, 열 정책 관리자 (101) 는 PCD (100) 에 의해 제공되는 서비스 품질에 상당한 영향을 주지 않아야 하는 하나 이상의 열 완화 기법들을 요청할 수도 있고, 또는 활성화시킬 수도 있다. 제 2 열 상태 (310) 는 약 50 ℃ 내지 약 80 ℃ 의 온도 범위를 포함할 수도 있다.
약 80 ℃ 의 크기를 갖는 제 5 포인트 (515) 로 온도 라인 (505) 을 따라 이동하면, 열 정책 관리자 (101) 는 열 상태의 제 2, QoS 열 상태 (310) 로부터 제 3 및 심각한 열 상태 (315) 로의 변화를 개시할 수도 있다. 이전에 언급된 바와 같이, 이 제 1 열 상태에 대한 온도 범위는 약 80 ℃ 내지 약 100 ℃ 의 범위를 포함할 수도 있다. 이 제 3 및 심각한 열 상태 (310) 에서, 열 정책 관리자 (101) 는 PCD (100) 의 서비스 품질 및 성능에 영향을 줄 수도 있는 복수의 열 완화 기법들을 요청 또는 활성화 중일 수도 있다.
제 5 포인트 (515) 와 제 6 포인트 (518) 사이의 온도 라인 (505) 의 세그먼트는, 제 3 및 심각한 열 상태 (310) 가 PCD (100) 내의 온도 상승을 완화시키는데 성공적이지 않았다는 것을 반영한다. 따라서, 대략 100 ℃ 의 크기를 가질 수도 있는 제 6 포인트 (518) 에서, 열 정책 관리자 (101) 는 제 4 및 임계 상태 (320) 에 진입할 수도 있다. 이 제 4 및 임계 상태 (320) 에서, 열 정책 관리자 (101) 는 현재 열 로드를 완화시키기 위해 특정 하드웨어 및/또는 소프트웨어 컴포넌트들이 셧 다운되는 것을 활성화 또는 요청할 수도 있다. 이전에 언급된 바와 같이, 열 정책 관리자 (101) 는 이 제 4 열 상태 (320) 에 있는 동안 긴급 911 호출 기능들 및 GPS 기능들 이외의 임의의 하드웨어 및/또는 소프트웨어 컴포넌트가 셧 다운되도록 할 수도 있다.
제 7 포인트 (521) 로 온도 라인 (505) 을 따라 이동하면, 제 6 포인트 (518) 와 제 7 포인트 (521) 사이의 라인 (505) 의 세그먼트는, 임계 열 상태 (320) 및 심각한 열 상태 (315) 가 PCD (100) 의 온도를 낮추는데 성공적이었다는 것을 반영한다. 이전에 언급된 바와 같이, 하나 이상의 열 상태들은 열 센서들 (157) 에 의해 측정되고 열 정책 관리자 (101) 에 의해 관찰된 온도에 따라 점프 또는 스킵될 수도 있다.
도 11a 및 도 11b 는 PCD (100) 의 하나 이상의 열 정책들을 관리하는 방법 (600) 을 예시한 논리적 흐름도들이다. 도 11a 의 방법 (600A) 은 열 정책 관리자 (101) 가 제 1 열 상태 (305) 에 있는 동안 내부 및 외부 열 센서들 (157) 로 온도를 모니터링할 수도 있는 제 1 블록 605 로 시작한다. 이 제 1 블록 605 는 일반적으로 도 8 및 도 9 에 예시된 제 1 열 상태 (305) 와 대응한다. 이전에 언급된 바와 같이, 열 정책 관리자 (101) 는 하나 이상의 열 센서들 (157) 로부터의 인터럽트들을 모니터링, 활동적으로 폴링, 및/또는 수신할 수도 있다. 이 특정 열 상태에서, 열 정책 관리자 (101) 는 어떤 열 완화 기법들도 적용하지 않는다. PCD (100) 는 그의 최적 레벨에서 이 제 1 열 상태에서의 임의의 열 로딩 조건들에 관계없이 수행할 수도 있다.
다음에, 판정 블록 610 에서, 열 정책 관리자 (101) 는, 온도 변화 (ΔT) 가 하나 이상의 열 센서들 (157) 에 의해 검출되었는지를 결정할 수도 있다. 판정 블록 610 에 대한 질의가 네거티브라면, "아니오" 브랜치에 후속하여 다시 블록 605 로 이어진다. 판정 블록 610 에 대한 질의가 포지티브라면, "예" 브랜치에 후속하여, 열 정책 관리자 (101) 가 열 센서들 (157) 의 모니터링의 빈도를 증가시킬 수도 있는 블록 615 로 이어진다. 블록 615 에서, 열 정책 관리자는 열 센서들 (157) 을 보다 빈번히 활동적으로 폴링할 수도 있고, 또는 그 열 정책 관리자는 열 센서들 (157) 에게 온도 데이터를 제공하는 보다 빈번한 인터럽트들을 전송하도록 요청할 수도 있다. 온도 센서들 (157) 의 이 증가된 모니터링은 제 1 또는 정상 상태 (305) 에서 발생할 수도 있고, 제 2 또는 서비스 품질 열 상태 (310) 에서 또한 발생할 수도 있다.
다음에, 판정 블록 620 에서, 열 정책 관리자 (101) 는, 다음 열 상태가 PCD (100) 에 의해 도달 또는 달성되었는지를 결정할 수도 있다. 이 판정 블록 620 에서, 열 정책 관리자 (101) 는, 제 2 열 상태 (310) 에 할당된 온도 범위가 달성되었는지를 결정 중일 수도 있다. 대안적으로, 이 판정 블록 (620) 에서의 열 정책 관리자는 상당한 온도의 변화 (ΔT) 가 마지막 측정 이래 발생했는지를 결정 중일 수도 있다.
판정 블록 620 에 대한 질의가 네거티브라면, "아니오" 브랜치에 후속하여 판정 블록 610 으로 이어진다. 판정 블록 620 에 대한 질의가 포지티브라면, "예" 브랜치에 후속하여 루틴 또는 서브방법 (625) 으로 이어진다. 루틴 또는 서브방법 (625) 은 열 정책 관리자 (101) 가 도 9 와 관련하여 상술된 하나 이상의 열 완화 기법들을 적용 또는 요청할 수도 있는 QoS 상태 (310) 라고도 또한 지칭되는 제 2 열 상태 (310) 를 포함할 수도 있다. 예를 들어, 열 정책 관리자 (101) 는 상술된 바와 같이 (1) 로드 스케일링 및/또는 (2) 로드 동적 스케일링 및/또는 (3) 공간적 로드 시프팅 및/또는 (4) 프로세스 로드 재할당과 같은 (그러나 이에 제한되지 않는다) 열 완화 기법들을 개시하도록 모니터 (114) 및/또는 O/S 모듈 (207) 에 요청할 수도 있다.
후속하여, 판정 블록 630 에서, 열 정책 관리자 (101) 는 제 2 또는 QoS 상태 (310) 의 하나 이상의 열 완화 기법들이 성공적이었는지, 그리고 하나 이상의 열 센서들 (157) 에 의해 검출된 현재 온도가 제 1 또는 정상 상태 (305) 에 대한 다음 하위 열 범위 내에 있는지를 결정할 수도 있다. 판정 블록 630 에 대한 질의가 포지티브라면, "예" 브랜치에 후속하여 블록 605 로 이어진다. 판정 블록 630 에 대한 질의가 네거티브라면, "아니오" 브랜치에 후속하여 판정 블록 635 로 이어진다.
판정 블록 635 에서, 열 정책 관리자 (101) 는 하나 이상의 열 센서들 (157) 에 의해 검출된 온도에 따라 PCD (100) 가 현재 제 3 또는 심각한 열 상태 (315) 에 진입했는지를 결정할 수도 있다. 대안적으로, 열 정책 관리자 (101) 는 상당한 온도의 변화 (ΔT) 가 발생했는지를 결정함으로써 PCD (100) 가 제 3 또는 심각한 열 상태 (315) 에 진입했는지를 결정할 수도 있다.
판정 블록 635 에 대한 질의가 네거티브라면, "아니오" 브랜치에 후속하여 판정 블록 620 으로 이어진다. 판정 블록 635 에 대한 질의가 포지티브라면, "예" 브랜치에 후속하여 서브방법 또는 서브루틴 (640) 으로 이어진다.
서브방법 또는 서브루틴 (640) 에서, 열 정책 관리자 (101) 는, PCD (100) 가 제 3 또는 심각한 열 상태에 진입했다는 것을 결정했다. 열 정책 관리자 (101) 는 그 다음에 하나 이상의 열 완화 기법들이 적용되는 것을 활성화 또는 요청할 수도 있다. 이전에 언급된 바와 같이, 이 제 3 또는 심각한 열 상태 (315) 에서의 열 정책 관리자 (101) 는 온도가 제 2 하위 열 상태 (310) 와 비교하여 더 계속해서/빈번히 감지되도록 열 센서들 (157) 로부터의 인터럽트들을 계속 모니터링, 폴링, 또는 수신하기 시작할 수도 있다.
이 예시적인 열 상태 (315) 에서, 열 정책 관리자 (101) 는 PCD (100) 의 오퍼레이터에 의해 관찰된 가능한 지각가능한 성능 저하에 의해 (제 2 열 상태 (310) 에 비해) 더 공격적인 열 완화 기법들 및/또는 부가적인 열 완화 기법들을 모니터 모듈 (114) 및/또는 O/S 모듈 (207) 이 적용하도록 적용 또는 요청할 수도 있다. 이 예시적인 열 상태 (315) 에 따르면, 열 정책 관리자 (101) 는 증폭기들, 프로세서들 등과 같은 하나 이상의 하드웨어 디바이스들에 대한 전력의 감소를 야기할 수도 있다. 열 정책 관리자 (101) 는 또한 액티브 디바이스들을 오프라인에 있게 하기 위해, 그리고 인액티브 디바이스들을 온라인에 있게 하기 위해 공간적 방식으로 상이한 하드웨어 디바이스들 간에 워크로드들을 시프트할 수도 있다. 또한, 열 정책 관리자는 높은 성능 서브-프로세서 블록으로부터 메인 프로세서 블록으로 재할당된 프로세스 로드들의 퍼센티지를 증가시킬 수도 있다. 이 제 3 및 심각한 열 상태 (315) 에서의 열 완화 기법들은 제 2, 서비스 품질 열 상태 (310) 에 대해 상술된 것들과 동일할 수도 있다. 그러나, 상술된 바와 같이, 이들 동일한 열 완화 기법들은 더 공격적인 방식으로 적용될 수도 있다.
다음에, 판정 블록 645 에서, 열 정책 관리자 (101) 는, 서브루틴 (640) 에서 적용된 하나 이상의 열 완화 기법들이 PCD (100) 에 대한 온도의 상승 (escalation) 을 방지하는데 성공적이었는지를 결정할 수도 있다. 판정 블록 645 에 대한 질의가 네거티브라면, "아니오" 브랜치에 후속하여 도 11b 의 단계 655 로 이어진다. 판정 블록 645 에 대한 질의가 포지티브라면, "예" 브랜치에 후속하여, 열 정책 관리자 (101) 가 하나 이상의 열 센서들 (157) 에 의해 제공된 온도 판독값들에 기초하여 PCD (100) 의 현재 열 상태를 결정하는 단계 650 으로 이어진다.
도 11b 는 도 11a 에 예시된 흐름도에 대한 계속 흐름도이다. 도 11b 의 방법 (600B) 은 PCD (100) 가 하나 이상의 열 센서들 (157) 에 의해 검출되는 온도에 기초하여 제 4 또는 임계 열 상태 (320) 에 진입했는지를 열 정책 관리자 (101) 가 결정할 수도 있는 판정 블록 655 로 시작한다. 판정 블록 655 에 대한 질의가 네거티브라면, "아니오" 브랜치에 후속하여, 열 정책 관리자 (101) 가 PCD (102) 를 제 3 또는 심각한 열 상태 (315) 로 리턴하게 하고 프로세스가 도 11a 의 블록 635 로 리턴하게 하는 단계 660 으로 이어진다.
판정 블록 655 에 대한 질의가 포지티브라면, "예" 브랜치에 후속하여, 열 정책 관리자 (101) 가 하나 이상의 임계 열 완화 기법들이 구현되는 것을 활성화 또는 요청하는 서브루틴 (665) 으로 이어진다. 이 제 4, 임계 열 상태 (320) 에서의 열 정책 관리자 (101) 는 긴급 911 전화 호출들 및 GPS 기능들 이외에 있는 하드웨어 및/또는 소프트웨어 모듈들의 셧 다운을 야기할 수도 있다. 열 정책 관리자 (101) 는 열 센서들 (157) 에 의해 모니터링되는 임계 온도들 및 열 정책 관리자 (101) 에 의해 관찰되는 온도의 변화에 따라 모듈들을 순차적으로 및/또는 병렬로 셧 다운할 수도 있다.
후속하여, 판정 블록 670 에서, 열 정책 관리자 (101) 는 루틴 또는 서브방법 (665) 에서 적용된 열 완화 기법들이 열 센서들 (157) 에 의해 검출된 PCD (100) 의 온도의 임의의 상승을 방지하는데 성공적이었는지를 결정할 수도 있다. 판정 블록 (670) 에 대한 질의가 네거티브라면, "아니오" 브랜치에 후속하여, 루틴 또는 서브블록 (665) 으로 이어진다.
판정 블록 670 에 대한 질의가 포지티브라면, "예" 브랜치에 후속하여, 열 정책 관리자 (101) 가 하나 이상의 열 센서들 (157) 에 의해 공급된 온도 판독값들에 기초하여 PCD (100) 의 현재 열 상태를 결정하는 단계 675 로 이어진다. 일단 온도 판독값들이 열 정책 관리자 (101) 에 의해 평가되면, 열 정책 관리자 (101) 는 열 센서들 (157) 에 의해 검출된 온도 범위들에 대응하는 열 상태를 개시한다.
도 12 는 프로세스 로드 재할당 열 완화 기법들을 적용하는 서브-방법 또는 서브루틴들 (625, 640 및 665) 을 예시한 논리적 흐름도이다. 블록 705 는 프로세스 로드 재할당 열 완화 기법들을 적용하는 서브방법 또는 서브루틴의 제 1 단계이다. 이 제 1 블록 705 에서, 열 정책 관리자 (101) 는, 다양한 CPU 및/또는 GPU 코어들에 가장 근접한 열 센서들 (157) 에 의해 제공된 온도 판독값들에 기초하여 현재 열 상태를 결정할 수도 있다. 일단 현재 열 상태가 열 정책 관리자 (101) 에 의해 결정되면, 블록 710 에서, 열 정책 관리자 (101) 는 그 다음에 온도 판독값들과 연관된 다양한 코어들에 대한 현재 프로세스 로드 할당들을 리뷰할 수도 있다. 다음에, 블록 715 에서, 열 정책 관리자 (101) 는 하나 이상의 이용가능한, 또는 그렇지 않으면 충분히 이용되지 않은 하드웨어 및/또는 소프트웨어 모듈들의 현재 워크로드들을 리뷰할 수도 있다.
다음에, 블록 720 에서, 열 정책 관리자 (101) 는 워크로드를 감소시키거나 또는 워크로드를 시프트하기 위해, 현재 워크로드들을 다양한 코어들 간에서 재할당하거나 또는 재할당하기 위한 커맨드들을 발행할 수도 있다. 열 정책 관리자 (101) 에 의해 결정된 현재 열 상태에 따라, 프로세싱 로드 재할당의 비율, 재할당되는 프로세스 로드의 특정 부분, 및 로드가 재할당되는 프로세싱 위치가 달성될 수도 있다. 유리하게는, 또 다른 코어 또는 영역으로의 워크로드의 전부 또는 일부의 재할당을 통해 고온 판독값과 연관된 코어, 또는 코어의 영역에서의 워크로드를 감소시킴으로써, 열 에너지 발생이 완화될 수 있다.
그래서, 제 2 또는 QoS 열 상태 (310) 에 대해, 블록 720 에서, 열 정책 관리자 (101) 는 열 완화 기법들을 적용하기 시작하도록 도 2a 의 모니터 모듈 (114) 및/또는 운영 시스템 ("O/S") 모듈 (207) 에 개시 또는 요청할 수도 있지만, PCD (100) 의 오퍼레이터에 의해 지각한 바와 같은 서비스 품질에 대한 저하의 지각이 적거나 또는 지각 없이 고성능을 유지하는 것을 목적으로 한다.
도 9 에 예시된 이 예시적인 제 2 열 상태 (310) 에 따르면, 열 정책 관리자 (101) 는 상술된 바와 같은 (1) 로드 스케일링 및/또는 (2) 로드 동적 스케일링 및/또는 (3) 공간적 로드 시프팅 및/또는 (4) 프로세스 로드 재할당과 같은 (그러나 이에 제한되지 않는다) 열 완화 기법들을 개시하도록 모니터 (114) 및/또는 O/S 모듈 (207) 에 요청할 수도 있다.
제 3 또는 심각한 단말 상태 (315) 의 경우, 블록 720 에서, 열 정책 관리자 (101) 는 온도가 제 2 하위 열 상태 (310) 와 비교하여 더 계속해서/빈번히 감지되도록 열 센서들 (157) 로부터의 인터럽트들을 계속 모니터링, 폴링, 또는 수신하기 시작할 수도 있다. 이 예시적인 열 상태 (315) 에서, 열 정책 관리자 (101) 는 PCD (100) 의 오퍼레이터에 의해 관찰된 가능한 지각가능한 성능 저하에 의해 (제 2 열 상태 (310) 에 비해) 더 공격적인 열 완화 기법들 및/또는 부가적인 열 완화 기법들을 모니터 모듈 (114) 및/또는 O/S 모듈 (207) 이 적용하도록 적용 또는 요청할 수도 있다. 이 예시적인 열 상태 (315) 에 따르면, 열 정책 관리자 (101) 는 증폭기들, 프로세서들 등과 같은 하나 이상의 하드웨어 디바이스들에 대한 전력의 감소, 또는 높은 성능 서브-프로세서 블록으로부터 보다 낮은 전력 밀도 메인 프로세서 블록들로의 완전한 프로세스 로드 재할당을 야기할 수도 있다.
열 정책 관리자 (101) 는 또한 액티브 디바이스들을 오프라인에 있게 하기 위해, 그리고 인액티브 디바이스들을 온라인에 있게 하기 위해, 공간적 방식으로 상이한 하드웨어 디바이스들 간에 워크로드들을 시프트할 수도 있다. 이 제 3 및 심각한 열 상태 (315) 의 열 완화 기법들은 제 2, 서비스 품질 열 상태 (310) 에 대해 상술된 것들과 동일할 수도 있다. 그러나, 이들 동일한 열 완화 기법들은, 상술된 바와 같이, 더 공격적인 방식으로 적용될 수도 있다.
제 4 또는 임계 단말 상태 (320) 의 경우, 블록 720 에서, 이 열 상태 (320) 는 임계 온도들을 회피하기 위해 PCD (100) 의 기능성 및 동작을 제거하도록 설계되는 종래의 기법들과 유사할 수도 있다. 제 4 열 상태 (320) 는 열 정책 관리자 (101) 가 비필수적인 하드웨어 및/또는 소프트웨어의 셧 다운을 적용 또는 트리거링하는 "임계" 상태를 포함할 수도 있다. 이 제 4 열 상태에 대한 온도 범위는 약 100 ℃ 이상의 것들을 포함할 수도 있다. 서브방법 (625, 640 또는 665) 은 그 다음에 PCD (100) 의 현재 열 상태에 따라 열 관리 방법 (600) 내의 적절한 단계로 리턴한다.
도 13a 는 4-코어 멀티-코어 프로세서 (110) 및 그 멀티-코어 프로세서 (110) 내에 재할당될 수도 있는 상이한 프로세스 로드들에 대한 개략도 (800A) 이다. 멀티-코어 프로세서 (110) 는, 다양한 애플리케이션들의 실행을 위한 중앙 프로세서 (110) 또는 디스플레이 (132) 에 투영된 그래픽 콘텐츠를 지원하기 위한 그래픽 프로세서 (110) 일 수도 있다.
4-코어 멀티-코어 프로세서 (110) 는 제 0 코어 (222), 제 1 코어 (224), 제 2 코어 (226) 및 제 3 코어 (228) 를 갖는다. 멀티-코어 프로세서 (110) 에 대한 제 1 프로세스 로드 시나리오는, 제 0 코어 (222) 가 (특정 코어에 대한 100% 풀 워크 용량/이용 중에서) 70% 의 프로세스 워크로드를 갖는 한편, 제 1 코어 (224) 는 30% 의 프로세스 워크로드를 가지며, 제 2 코어 (226) 는 50% 의 프로세스 워크로드를 가지며, 제 3 코어 (228) 는 10% 의 프로세스 워크로드를 갖는 멀티-코어 프로세서 (110A) 에 의해 증명된다. 열 정책 관리자 (101) 가 열 완화 기법들이 PCD (100) 에 적용되는 상술된 열 상태들 (310, 315, 320) 중 임의의 하나의 열 상태에 진입한다면, 이 도 13a 에 예시된 바와 같은 프로세스 재할당 열 로드 완화 기법이 구현될 수도 있다. 이 프로세스 재할당 열 로드 완화 기법에 따르면, 열 정책 관리자 (101), 모니터 모듈 (114), 및/또는 O/S 모듈 (207) 은 하나의 코어의 프로세스 워크로드를 멀티-코어 프로세서 (110) 내의 하나 이상의 다른 코어들로 시프트할 수도 있다.
도 13a 에 예시된 예시적인 실시형태에서, 제 0 코어 (222) 의 프로세스 워크로드는 멀티-코어 프로세서 (110) 의 나머지 3개의 다른 코어들에 의해 부가적인 작업이 수행되도록 시프트될 수도 있다. 멀티-코어 프로세서 (110B) 는 제 0 코어 (222) 에 대한 프로세스 워크로드의 20% 및 제 2 코어 (226) 에 대한 프로세스 워크로드의 40% 가 나머지 2개의 코어들 간에 시프트하여, 제 0 코어 (222) 에 의해 경험된 프로세스 워크로드는 50% 까지 감소된 한편, 제 2 코어 (226) 에 의해 경험된 프로세스 워크로드는 10% 까지 감소되도록 하는 시프트를 예시한다. 한편, 제 1 코어 (224) 의 프로세스 워크로드는 70% 로 증가된 한편, 제 3 코어 (228) 의 프로세스 워크로드는 30% 로 증가되었다. 당업자는, 워크로드를 시프트하는 다른 크기들 및 조합들 및 대응하는 워크로드 퍼센티지들은 본 발명의 범위 내에서 적절히 존재한다는 것을 인지한다.
멀티-코어 프로세서들 (110C 및 110D) 은 하나 이상의 코어들이 그들을 미리 결정된 패턴으로 또는 열 측정들에 의해 지시된 패턴으로 아이들이 되게 함으로써 효율적으로 냉각될 수도 있는 "홀" 의 일 예시적인 시프트의 증명을 제공한다. 이용되고 있지 않은 '홀' 또는 코어는 수 초 동안 주변 코어들을 냉각시키기 위해 그 코어들의 그룹 주위로 MIPS 로 효율적으로 이동된다. 도 13a 의 멀티-코어 프로세서 (110C) 에 의해 예시된 예시적인 실시형태에서, 제 0 코어 (222) 및 제 1 코어 (224) 는 80% 의 예시적인 워크로드들을 가질 수도 있는 한편, 제 2 코어 (226) 및 제 3 코어 (228) 는 어떤 로드들도 갖지 않는다. 이 시나리오에서, 제 0 코어 (222) 및 제 1 코어 (224) 중 어느 하나 또는 양쪽이 제 2 열 상태 (310), 제 3 열 상태 (315), 또는 제 4 열 상태들 (320) 에 도달한다면, 열 정책 관리자 (101) 는 2개의 액티브 코어들 (222, 224) 의 워크로드 모두가 2개의 인액티브 코어들 (226, 228) 로 시프트되는 프로세스 재할당 열 로드 완화 기법이 적용되는 것을 적용 또는 요청할 수도 있다. 제 4 프로세서 (110D) 는, 제 0 코어 (222) 및 제 1 코어 (224) 가 더 이상 어떠한 워크로드들도 갖지 않는 한편 제 2 코어 (226) 및 제 3 코어 (228) 가 제 0 코어 (222) 및 제 1 코어 (224) 에 의해 관리된 이전 워크로드를 가정한 시프트를 증명한다.
도 13b 에서, 멀티-코어 프로세서들 (110E 내지 110F) 은 예시적인 도 12 의 프로세스 로드 재할당 열 완화 기법의 증명을 제공한다. 도 12 의 프로세스 로드 재할당 열 완화 기법이 주어진 코어 (228) 내에 적용되어, 코어 (228) 내의 핫스폿 (48A) 이, 핫스폿 (48B) 을 형성하는 증가된 영역에 걸쳐 효율적으로 분포될 수 있도록 한다. 유리하게는, 높은 전력이 공급된 서브-프로세서 블록 (228A) 으로부터 메인 프로세서 블록 (228B) 으로 프로세스 로드 부담을 재할당함으로써, 단위 영역 당 에너지 소산의 높은 레이트를 갖는 핫스폿 (48A) 이, 단위 영역 당 에너지 소산의 보다 낮은 레이트를 갖는 핫스폿 (48B) 으로 변환될 수도 있다. 재할당된 태스크를 프로세싱하기 위해 이용되는 프로세싱 영역이 높은 전력 밀도 서브-프로세서보다 더 낮은 단위 영역 당 전력 밀도를 갖기 때문에, 단위 영역 당 에너지 소산 (그리고 그에 의해 단위 영역 당 온도) 은 핫스폿 (48B) 에 대해 보다 낮을 수도 있다. 부가적으로, 재할당된 프로세싱 태스크가 완료하는데 더 오래 걸려서, 주어진 시간 단위에 걸쳐 에너지가 단위 영역 당 덜 소산된다는 결과를 동반하기 때문에, 단위 영역 당 에너지 소산은 또한 핫스폿 (48A) 보다 핫스폿 (48B) 에 대해 더 낮을 수도 있다.
이전의 예로 되돌아와서, 프로세스 로드와 연관된 열 에너지 발생은 프로세스 로드의 재할당에 의해 완화될 수도 있다. 메인 프로세싱 블록 (228B) 및 보다 높은 수행의 서브-프로세서 블록 (228A) 을 가진 코어 (228) 를 갖는 CPU (110E, 110F) 를 포함하는 일 실시형태는, CPU (110E) 영역의 3/4 을 나타내는 메인 프로세싱 블록 (228B) 및 CPU (110E, 110F) 영역의 나머지 1/4 을 나타내는 서브-프로세서 블록 (228A) 을 가질 수도 있다. 메인 프로세서 블록 (228B) 은 전체 CPU (110E, 110F) 의 총 전력의 1/2 을 소산하는 관련 전력 밀도 ("PD") 를 가질 수도 있는 한편, 메인 프로세서에 대해 증가된 연산력을 갖는 서브-프로세서 블록 (228A) 도 또한 총 전력의 1/2 을 소산하는 관련 전력 밀도를 갖는다.
이러한 예시적인 경우, 당업자는, 전체 CPU (110E, 110F) 에 대해 증가된 연산력을 제공하는 서브-프로세서 블록 (228A) 은, 보다 큰 메인 프로세싱 블록 (228B) 의 것의 2배 이상인 전력 밀도를 나타내고 [PD228A = (P/2)/(A/4) = 2 P/A; PD228B = (P/2)/(3A/4) = P/A 의 2/3], 전력 밀도가 열 에너지의 발생에 정비례하기 때문에, 주어진 프로세싱 로드에 대해, 서브-프로세서 블록 (228A) 은 메인 프로세싱 블록 (228B) 보다 더 많은 열 에너지의 소산을 야기할 것이라는 것을 인지할 것이다.
CPU (110E) 에 의해 예시된 바와 같이, 서브-프로세서 블록 (228A) 은, 예를 들어, 게이밍 애플리케이션과 같은 주어진 프로세스 로드의 80% 를 프로세싱하는 한편, 메인 프로세서 블록 (228B) 는 이 프로세스 로드의 나머지의 적절한 20% 를 프로세싱한다. 유리하게는, (메인 프로세싱 블록 (228B) 에 대한) 서브-프로세서 블록 (228A) 과 연관된 증가된 연산력은 스케줄러 (207) 로부터의 높은 연산 애플리케이션들에 대한 할당 바이어스를 확립할 수도 있어서, 서브-프로세서 블록 (228A) 에 할당되는 80% 프로세스 로드 부담을 설명한다. 즉, 서브-프로세서 블록 (228A) 이 높은 전력이 공급되기 때문에, 스케줄러 (207) 로부터의 디폴트 액션은 서브-프로세서 (228A) 에 대한 높은 연산력을 필요로 하는 임의의 애플리케이션을 할당해야 할 수도 있다. 그러나, 서브-프로세서 블록 (228A) 에 대한 과도하거나 또는 연장된 프로세싱 요구들은, 핫스폿 (48A) 에 의한 예시로 나타낸 바와 같이 과도한 열 에너지를 발생시킬 수도 있다. 예시의 목적을 위해, 핫스폿 (48A) 은, 심각한 상태 (315) 에 대한 임계값과 가능한 연관된 온도인, 대략 80 ℃ 일 수도 있다.
이전에 설명된 바와 같이, CPU (110E) 가까이에 배치되거나 또는 심지어, 더욱 상세하게는, 프로세서 코어 (228) 가까이에 배치된 센서들 (157) 은, 핫스폿 (48A) 을 판독한 후에 열 정책 관리자 모듈 (101) 을 트리거링하여, 프로세스 로드 재할당을 포함하는 열 완화 기법을 개시할 수도 있다. 당업자는, 높은 전력 밀도 서브-프로세서 (228A) 로부터 보다 낮은 전력 밀도 메인 프로세서 (228B) 로의 프로세스 로드 재할당이 코어에 걸친 총 열 소산을 낮추도록 하는 것을 실현할 것이다. 또한, 열 정책 관리자 모듈 (101) 은, 다양한 코어들 또는 코어들 내의 영역들의 온도 판독값들로 트리거링될 때, O/S 스케줄러에게, 코어 온도들과 연관된 열 바이어스 팩터 (factor) 에 기초하여, 새로운 프로세싱 로드들을 할당하거나 또는 기존의 프로세싱 로드들을 재할당하라고 지시할 수도 있다고 생각된다. 즉, 다양한 프로세싱 코어들 또는 코어 서브-영역들의 실시간 온도 판독값들에 기초하여, 열 바이어스 팩터가 다양한 프로세싱 코어들 또는 코어 서브-영역들에 할당될 수도 있어서, 사용자 경험 또는 디바이스 성능을 지나치게 희생시키는 일 없이 에너지 발생을 관리하는 방식으로 프로세싱 로드 부담들이 할당되거나 또는 재할당된다고 생각된다. 또한, 컴포넌트 무결성을 위태롭게 하는 일 없이 최고 레벨로 QoS 가 유지됨을 보장하기 위한 노력으로, 보다 높은 전력 밀도 서브-코어들에게 프로세싱 부담이 되게 하는 일부 실시형태에 바이어스 팩터가 포함될 수도 있다고 생각된다.
프로세스 로드의 재할당 이후에, CPU (110F) 의 코어 (228) 는 메인 프로세서 블록 (228B) 에 대한 60% 의 워크로드 할당 및 서브-프로세서 블록 (228A) 에 대한 40% 의 워크로드 할당을 가질 수도 있다. 이러한 예시에서, 높은 PD 서브-프로세서 블록 (228A) 으로부터의 프로세싱 부담의 감소 및 보다 낮은 PD 메인 프로세서 블록 (228B) 에 대한 프로세싱 부담의 상대적 증가는, QoS 의 감소를 불가피하게 야기시켰다. 그러나, 보다 낮은 PD 메인 프로세서 블록 (228B) 에 대한 프로세스 부담 또는 그 일부의 재할당은, 열 에너지의 발생이, 코어 (228) 의 보다 큰 영역 또는 풋프린트 (footprint) 에 걸쳐 확산되도록 하여, "보다 냉각되고" 그리고 보다 큰 핫스폿 (48B) 으로 예시된 바와 같이, 이전의 보다 작은 영역에 비해 단위 영역 당 감소된 온도를 갖는 보다 큰 영역을 발생시켰다. 예시의 목적을 위해, 핫스폿 (48B) 은 정상 상태 (305) 에 대한 임계값과 가능한 연관된 온도인, 대략 50 ℃ 일 수도 있다.
도 13b 의 예로부터, 프로세싱 로드들을 하나의 컴포넌트로부터 또 다른 컴포넌트로, 예컨대, 예를 들어, 코어 (228) 의 서브-프로세서 블록으로부터 코어 (228) 의 메인 프로세서 블록으로 재할당하기 위해 열 로드 스티어링 파라미터(들) 를 이용하는 실시형태들은, 프로세싱 성능의 비교적 작은 트레이드오프일 수도 있는 보다 큰 영역에 걸친 열 에너지 소산과 연관된 보다 낮은 온도의 이익을 실현할 수도 있다는 것을 확인할 수 있다. 메인 프로세서 블록들 (228B) 은 로드를 더욱 느리게 프로세싱할 수도 있어서 보다 낮은 QoS 로 변환되지만, 서브-프로세서들 (228A) 에 비해 보다 큰 영역 및 보다 긴 시간에 걸쳐 주어진 워크로드와 연관된 열 에너지를 소산하여, 가능한 PCD (100) 에서의 임계 온도를 회피하도록 할 수도 있다.
도 14 는 상술된 바와 같은 다양한 열 완화 기법들의 애플리케이션으로부터 이익이 될 수도 있는 주문형 집적 회로 ("ASIC"; 102) 의 일 예시적인 평면도 (1400) 를 예시한 것이다. 도 14 의 예시에서, GPU 뱅크 (135) 및 CPU 뱅크 (110) 는 ASIC (102) 에 대한 열 에너지를 생성하는 주된 컴포넌트들을 나타낸 것이다. 전력 관리 집적 회로 ("PMIC"; 182) 들은, 예를 들어, ASIC (102) 상에 상주하지 않지만, CPU 뱅크 (110) 에 대해 가까운 근접도 (1405) 로 있음을 나타낸다. 예를 들어, PCD (100) 내의 제한된 물리적 공간으로 인해, PMIC들 (182) 은 ASIC (102) 바로 뒤에 또는 인접하게 상주할 수도 있다. 이와 같이, 당업자는, PMIC (182) 또는 다른 열 발생 컴포넌트로부터 소산된 열 에너지는 CPU (110) 내의 코어들 (222, 224, 226, 228) 중 임의의 것에 대한 센서들 (157) 로부터 취득된 온도 판독값들에 악영향을 줄 수도 있다는 것을 인지할 것이다.
PCD (100) 내에 상주하는 다른 컴포넌트들뿐만 아니라 PMIC들 (182) 은, 주어진 프로세싱 코어에 가까운 근접도 (1405) 로 배치될 수도 있어서, 컴포넌트들로부터 소산된 열 에너지가 코어를 통해 전파할 때, 보다 높은 평균 동작 온도에 대한 바이어스가 프로세싱 코어에서 발생한다. 당업자는, 프로세싱 코어 온도에 대한 이러한 근접한 컴포넌트들의 악영향이, 다양한 PCD (100) 구성들 및/또는 유즈 케이스들을 통해 예측하거나 시뮬레이팅하는 것이 어려울 수 있다는 것을 인지할 것이다. 이와 같이, 당업자는, 실시간 또는 근실시간으로 영향을 받을 수 있는 열 완화 알고리즘들의 이점은, 예시적인 PMIC들 (182) 과 같은, PCD (100) 내의 인접한 컴포넌트들로부터 발생할 수도 있는 프로세싱 컴포넌트들에서의 온도 바이어스가, 맞춤 구성들 또는 미리 발생된 열 로드 스티어링 시나리오들 및 파라미터들 없이도 수용될 수 있다는 점에 있다라는 것을 또한 인지할 것이다. 즉, 프로세싱 로드들은 실시간의 실제 온도 판독값들에 기초하여 실시간으로 할당 또는 재할당될 수 있다.
본 명세서에 설명된 프로세스들 또는 프로세스 흐름들의 특정 단계들은 상술된 바와 같이 기능하도록 본 발명에 대한 다른 것들에 본질적으로 선행한다. 그러나, 본 발명은 이러한 순서 또는 시퀀스가 본 발명의 기능성을 변경하지 않는다면 설명된 단계들의 순서로 제한되지 않는다. 즉, 일부 단계들은 본 발명의 사상 및 범위로부터 벗어나는 일 없이 다른 단계들 전에, 후에, 또는 병렬로 (실질적으로 동시에) 수행될 수도 있다는 것이 인지된다. 일부 경우들에서, 특정 단계들은 본 발명으로부터 벗어나는 일 없이 생략되거나 수행되지 않을 수도 있다. 또한, "그 후에", "그 다음에", "다음에" 등과 같은 단어들은 단계들의 순서를 제한하는 것으로 의도되지 않는다. 이들 단어들은 예시적인 방법의 설명을 통해 독자를 안내하기 위해 단순히 사용된다.
부가적으로, 프로그래밍의 당업자는 컴퓨터 코드를 기입하거나 적절한 하드웨어 및/또는 회로들을 식별하여, 예를 들어, 본 명세서의 관련 설명 및 흐름도들에 기초하여 어려움 없이 개시된 본 발명을 구현하는 것이 가능하다.
따라서, 특정 세트의 프로그램 코드 명령들 또는 상세한 하드웨어 디바이스들의 개시물은 본 발명을 실시 및 이용하는 방법의 충분한 이해를 위해 필요한 것으로 간주되지 않는다. 청구된 컴퓨터 구현 프로세스들의 발명적 기능성은 상기 설명에서 그리고 다양한 프로세스 흐름들을 예시할 수도 있는 도면들과 관련하여 더 상세히 설명된다.
하나 이상의 예시적인 양태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 그 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장 또는 송신될 수도 있다. 컴퓨터 판독가능 매체는 일 장소로부터 또 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체와 컴퓨터 저장 매체 양쪽을 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수도 있는 임의의 이용가능한 매체일 수도 있다. 제한이 아닌 일 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 운반 또는 저장하는데 사용될 수도 있고 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함할 수도 있다.
또한, 임의의 접속이 컴퓨터 판독가능 매체라고 적절히 지칭된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선 ("DSL"), 또는 적외선, 무선 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 송신된다면, 매체의 정의에는 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선 및 마이크로파와 같은 무선 기술들이 포함된다.
디스크 (disk) 및 디스크 (disc) 는, 여기에 사용돈 바와 같이, 콤팩트 디스크 ("CD"), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 ("DVD"), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서 디스크 (disk) 는 보통 데이터를 자기적으로 재생시키는 한편, 디스크 (disc) 는 레이저를 이용하여 데이터를 광학적으로 재생시킨다. 상기의 조합이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
따라서, 선택된 양태들은 상세히 예시 및 설명되었지만, 다양한 치환들 및 변경들이 다음의 청구항들에 의해 정의된 바와 같이, 본 발명의 사상 및 범위로부터 벗어나는 일 없이 여기에 행해질 수도 있다는 것이 이해될 것이다.

Claims (40)

  1. 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법으로서,
    상기 휴대용 컴퓨팅 디바이스 내의 칩의 열 에너지 발생 컴포넌트에 근접한 온도 센서를 배치시키는 단계;
    상기 온도 센서에 의해 발생된 온도 판독값들을 제 1 레이트로 모니터링하는 단계로서, 상기 온도 판독값들은 상기 열 에너지 발생 컴포넌트 내의 프로세스 로드 (process load) 와 상관되는, 상기 모니터링하는 단계; 및
    모니터링된 제 1 온도 판독값에 기초하여, 프로세스 로드 부분을 상기 열 에너지 발생 컴포넌트의 제 1 프로세싱 영역으로부터 상기 열 에너지 발생 컴포넌트의 제 2 프로세싱 영역으로 재할당하는 단계로서, 상기 프로세스 로드 부분의 재할당은, 시간 단위에 걸쳐 상기 열 에너지 발생 컴포넌트의 임의의 단위 영역에서 발생된 에너지의 양을 낮추도록 기능하는, 상기 재할당하는 단계
    를 포함하는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  2. 제 1 항에 있어서,
    모니터링된 제 2 온도 판독값에 기초하여, 상기 프로세스 로드 부분을 상기 열 에너지 발생 컴포넌트의 상기 제 2 프로세싱 영역으로부터 상기 열 에너지 발생 컴포넌트의 상기 제 1 프로세싱 영역으로 재할당하는 단계를 더 포함하는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  3. 제 2 항에 있어서,
    상기 모니터링된 제 2 온도 판독값은, 상기 제 1 프로세싱 영역의 온도가 상기 모니터링된 제 1 온도 판독값에 비해 냉각되었음을 나타내는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  4. 제 1 항에 있어서,
    재할당된 상기 프로세스 로드 부분은, 상기 제 1 프로세싱 영역에서의 프로세스 로드의 약 100 퍼센트와 동일한, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 프로세싱 영역은, 상기 제 2 프로세싱 영역을 또한 포함하는 코어 내의 서브-프로세서인, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  6. 제 1 항에 있어서,
    상기 제 1 프로세싱 영역은, 상기 제 2 프로세싱 영역과 연관된 전력 밀도를 초과하는 관련 전력 밀도를 갖는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  7. 제 1 항에 있어서,
    복수의 열 상태들을 정의하는 단계를 더 포함하고,
    상기 열 상태들 각각은 온도들의 범위를 포함하며,
    상기 모니터링된 제 1 온도 판독값은, 상기 열 에너지 발생 컴포넌트의 온도가 제 1 열 상태에 포함된 온도로부터 제 2 열 상태에 포함된 온도로 증가하였음을 나타내는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  8. 제 7 항에 있어서,
    모니터링된 제 2 온도 판독값에 기초하여, 상기 프로세스 로드 부분을 상기 열 에너지 발생 컴포넌트의 상기 제 2 프로세싱 영역으로부터 상기 열 에너지 발생 컴포넌트의 상기 제 1 프로세싱 영역으로 재할당하는 단계를 더 포함하고,
    상기 모니터링된 제 2 온도 판독값은, 상기 열 에너지 발생 컴포넌트의 온도가 상기 제 2 열 상태에 포함된 온도로부터 상기 제 1 열 상태에 포함된 온도로 감소되었음을 나타내는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  9. 제 7 항에 있어서,
    상기 제 1 프로세싱 영역으로부터 상기 제 2 프로세싱 영역으로 재할당되는 로드의 양은, 상기 모니터링된 제 1 온도 판독값을 포함하는 열 상태에 따라 변화하는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  10. 제 7 항에 있어서,
    상기 모니터링의 레이트를 상기 제 1 레이트로부터 제 2 레이트로 증가시키는 단계를 더 포함하고,
    증가된 상기 모니터링의 레이트는, 상기 모니터링된 제 1 온도 판독값에 의해 트리거링되는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법.
  11. 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템으로서,
    상기 컴퓨터 시스템은 멀티-코어 프로세서를 포함하고,
    상기 멀티-코어 프로세서는,
    근접하게 배치된 온도 센서에 의해 발생된 온도 판독값들을 제 1 레이트로 모니터링하는 것으로서, 상기 온도 판독값들은 상기 멀티-코어 프로세서의 주어진 코어 내의 프로세스 로드와 상관되는, 상기 모니터링하고;
    모니터링된 제 1 온도 판독값에 기초하여, 프로세스 로드 부분을 상기 주어진 코어의 제 1 프로세싱 영역으로부터 상기 주어진 코어의 제 2 프로세싱 영역으로 재할당하는 것으로서, 상기 프로세스 로드 부분의 재할당은, 시간 단위에 걸쳐 컴포넌트의 임의의 단위 영역에서 발생된 에너지의 양을 낮추도록 기능하는, 상기 재할당하도록
    동작가능한, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  12. 제 11 항에 있어서,
    상기 멀티-코어 프로세서는 또한,
    모니터링된 제 2 온도 판독값에 기초하여, 상기 프로세스 로드 부분을 상기 주어진 코어의 상기 제 2 프로세싱 영역으로부터 상기 주어진 코어의 상기 제 1 프로세싱 영역으로 재할당하도록 동작가능한, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  13. 제 12 항에 있어서,
    상기 모니터링된 제 2 온도 판독값은, 상기 제 1 프로세싱 영역의 온도가 상기 모니터링된 제 1 온도 판독값에 비해 냉각되었음을 나타내는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  14. 제 11 항에 있어서,
    재할당된 상기 프로세스 로드 부분은, 상기 제 1 프로세싱 영역에서의 프로세스 로드의 약 100 퍼센트와 동일한, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  15. 제 11 항에 있어서,
    상기 제 1 프로세싱 영역은, 상기 주어진 코어 내의 서브-프로세서인, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  16. 제 11 항에 있어서,
    상기 제 1 프로세싱 영역은, 상기 제 2 프로세싱 영역과 연관된 전력 밀도를 초과하는 관련 전력 밀도를 갖는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  17. 제 11 항에 있어서,
    상기 멀티-코어 프로세서는 또한, 복수의 열 상태들을 인지하도록 동작가능하고,
    상기 열 상태들 각각은 온도들의 범위를 포함하며,
    상기 모니터링된 제 1 온도 판독값은, 상기 주어진 코어의 온도가 제 1 열 상태에 포함된 온도로부터 제 2 열 상태에 포함된 온도로 증가하였음을 나타내는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  18. 제 17 항에 있어서,
    상기 멀티-코어 프로세서는 또한,
    모니터링된 제 2 온도 판독값에 기초하여, 상기 프로세스 로드 부분을 상기 주어진 코어의 상기 제 2 프로세싱 영역으로부터 상기 주어진 코어의 상기 제 1 프로세싱 영역으로 재할당하도록 동작가능하고,
    상기 모니터링된 제 2 온도 판독값은, 상기 주어진 코어의 온도가 상기 제 2 열 상태에 포함된 온도로부터 상기 제 1 열 상태에 포함된 온도로 감소되었음을 나타내는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  19. 제 17 항에 있어서,
    상기 제 1 프로세싱 영역으로부터 상기 제 2 프로세싱 영역으로 재할당되는 로드의 양은, 상기 모니터링된 제 1 온도 판독값을 포함하는 열 상태에 따라 변화하는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  20. 제 17 항에 있어서,
    상기 멀티-코어 프로세서는 또한,
    상기 모니터링의 레이트를 상기 제 1 레이트로부터 제 2 레이트로 증가시키도록 동작가능하고,
    증가된 상기 모니터링의 레이트는, 상기 모니터링된 제 1 온도 판독값에 의해 트리거링되는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  21. 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템으로서,
    상기 휴대용 컴퓨팅 디바이스 내의 칩의 열 에너지 발생 컴포넌트에 근접하게 배치된 온도 센서에 의해 발생된 온도 판독값들을 제 1 레이트로 모니터링하는 수단으로서, 상기 온도 판독값들은 상기 열 에너지 발생 컴포넌트 내의 프로세스 로드와 상관되는, 상기 모니터링하는 수단; 및
    프로세스 로드 부분을 상기 열 에너지 발생 컴포넌트의 제 1 프로세싱 영역으로부터 상기 열 에너지 발생 컴포넌트의 제 2 프로세싱 영역으로 재할당하는 수단으로서, 상기 프로세스 로드 부분의 재할당은, 모니터링된 제 1 온도 판독값에 의해 트리거링되고, 시간 단위에 걸쳐 상기 열 에너지 발생 컴포넌트의 임의의 단위 영역에서 발생된 에너지의 양을 낮추도록 기능하는, 상기 재할당하는 수단
    을 포함하는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  22. 제 21 항에 있어서,
    상기 프로세스 로드 부분을 상기 열 에너지 발생 컴포넌트의 상기 제 2 프로세싱 영역으로부터 상기 열 에너지 발생 컴포넌트의 상기 제 1 프로세싱 영역으로 재할당하는 수단을 더 포함하고,
    상기 프로세스 로드 부분의 재할당은, 모니터링된 제 2 온도 판독값에 의해 트리거링되는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  23. 제 22 항에 있어서,
    상기 모니터링된 제 2 온도 판독값은, 상기 제 1 프로세싱 영역의 온도가 상기 모니터링된 제 1 온도 판독값에 비해 냉각되었음을 나타내는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  24. 제 21 항에 있어서,
    재할당된 상기 프로세스 로드 부분은, 상기 제 1 프로세싱 영역에서의 프로세스 로드의 약 100 퍼센트와 동일한, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  25. 제 21 항에 있어서,
    상기 제 1 프로세싱 영역은, 상기 제 2 프로세싱 영역을 또한 포함하는 코어 내의 서브-프로세서인, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  26. 제 21 항에 있어서,
    상기 제 1 프로세싱 영역은, 상기 제 2 프로세싱 영역과 연관된 전력 밀도를 초과하는 관련 전력 밀도를 갖는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  27. 제 21 항에 있어서,
    복수의 열 상태들을 정의하는 수단을 더 포함하고,
    상기 열 상태들 각각은 온도들의 범위를 포함하며,
    상기 모니터링된 제 1 온도 판독값은, 상기 열 에너지 발생 컴포넌트의 온도가 제 1 열 상태에 포함된 온도로부터 제 2 열 상태에 포함된 온도로 증가하였음을 나타내는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  28. 제 27 항에 있어서,
    상기 프로세스 로드 부분을 상기 열 에너지 발생 컴포넌트의 상기 제 2 프로세싱 영역으로부터 상기 열 에너지 발생 컴포넌트의 상기 제 1 프로세싱 영역으로 재할당하는 수단을 더 포함하고,
    상기 프로세스 로드 부분의 재할당은, 상기 모니터링된 제 2 온도 판독값에 의해 트리거링되며,
    상기 모니터링된 제 2 온도 판독값은, 상기 열 에너지 발생 컴포넌트의 온도가 상기 제 2 열 상태에 포함된 온도로부터 상기 제 1 열 상태에 포함된 온도로 감소되었음을 나타내는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  29. 제 27 항에 있어서,
    상기 제 1 프로세싱 영역으로부터 상기 제 2 프로세싱 영역으로 재할당되는 로드의 양은, 상기 모니터링된 제 1 온도 판독값을 포함하는 열 상태에 따라 변화하는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  30. 제 27 항에 있어서,
    상기 모니터링의 레이트를 상기 제 1 레이트로부터 제 2 레이트로 증가시키는 수단을 더 포함하고,
    증가된 상기 모니터링의 레이트는, 상기 모니터링된 제 1 온도 판독값에 의해 트리거링되는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 컴퓨터 시스템.
  31. 컴퓨터 판독가능 프로그램 코드를 포함하고 있는 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 판독가능 프로그램 코드는, 휴대용 컴퓨팅 디바이스에서의 열 에너지 발생을 관리하는 방법을 구현하기 위해 실행되도록 구성되고,
    상기 방법은,
    상기 휴대용 컴퓨팅 디바이스 내의 칩의 열 에너지 발생 컴포넌트에 근접하게 배치된 온도 센서에 의해 발생된 온도 판독값들을 제 1 레이트로 모니터링하는 단계로서, 상기 온도 판독값들은 상기 열 에너지 발생 컴포넌트 내의 프로세스 로드와 상관되는, 상기 모니터링하는 단계; 및
    모니터링된 제 1 온도 판독값에 기초하여, 프로세스 로드 부분을 상기 열 에너지 발생 컴포넌트의 제 1 프로세싱 영역으로부터 상기 열 에너지 발생 컴포넌트의 제 2 프로세싱 영역으로 재할당하는 단계로서, 상기 프로세스 로드 부분의 재할당은, 시간 단위에 걸쳐 상기 열 에너지 발생 컴포넌트의 임의의 단위 영역에서 발생된 에너지의 양을 낮추도록 기능하는, 상기 재할당하는 단계
    를 포함하는, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
  32. 제 31 항에 있어서,
    상기 방법을 구현하는 상기 컴퓨터 판독가능 프로그램 코드는,
    모니터링된 제 2 온도 판독값에 기초하여, 상기 프로세스 로드 부분을 상기 열 에너지 발생 컴포넌트의 상기 제 2 프로세싱 영역으로부터 상기 열 에너지 발생 컴포넌트의 상기 제 1 프로세싱 영역으로 재할당하는 것을 더 포함하는, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
  33. 제 32 항에 있어서,
    상기 모니터링된 제 2 온도 판독값은, 상기 제 1 프로세싱 영역의 온도가 상기 모니터링된 제 1 온도 판독값에 비해 냉각되었음을 나타내는, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
  34. 제 31 항에 있어서,
    재할당된 상기 프로세스 로드 부분은, 상기 제 1 프로세싱 영역에서의 프로세스 로드의 약 100 퍼센트와 동일한, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
  35. 제 31 항에 있어서,
    상기 제 1 프로세싱 영역은, 상기 제 2 프로세싱 영역을 또한 포함하는 코어 내의 서브-프로세서인, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
  36. 제 31 항에 있어서,
    상기 제 1 프로세싱 영역은, 상기 제 2 프로세싱 영역과 연관된 전력 밀도를 초과하는 관련 전력 밀도를 갖는, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
  37. 제 31 항에 있어서,
    상기 방법을 구현하는 상기 컴퓨터 판독가능 프로그램 코드는,
    복수의 열 상태들을 정의하는 것을 더 포함하고,
    상기 열 상태들 각각은 온도들의 범위를 포함하며,
    상기 모니터링된 제 1 온도 판독값은, 상기 열 에너지 발생 컴포넌트의 온도가 제 1 열 상태에 포함된 온도로부터 제 2 열 상태에 포함된 온도로 증가하였음을 나타내는, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
  38. 제 37 항에 있어서,
    상기 방법을 구현하는 상기 컴퓨터 판독가능 프로그램 코드는,
    모니터링된 제 2 온도 판독값에 기초하여, 상기 프로세스 로드 부분을 상기 열 에너지 발생 컴포넌트의 상기 제 2 프로세싱 영역으로부터 상기 열 에너지 발생 컴포넌트의 상기 제 1 프로세싱 영역으로 재할당하는 것을 더 포함하고,
    상기 모니터링된 제 2 온도 판독값은, 상기 열 에너지 발생 컴포넌트의 온도가 상기 제 2 열 상태에 포함된 온도로부터 상기 제 1 열 상태에 포함된 온도로 감소되었음을 나타내는, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
  39. 제 37 항에 있어서,
    상기 제 1 프로세싱 영역으로부터 상기 제 2 프로세싱 영역으로 재할당되는 로드의 양은, 상기 모니터링된 제 1 온도 판독값을 포함하는 열 상태에 따라 변화하는, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
  40. 제 37 항에 있어서,
    상기 방법을 구현하는 상기 컴퓨터 판독가능 프로그램 코드는,
    상기 모니터링의 레이트를 상기 제 1 레이트로부터 제 2 레이트로 증가시키는 것을 더 포함하고,
    증가된 상기 모니터링의 레이트는, 상기 모니터링된 제 1 온도 판독값에 의해 트리거링되는, 컴퓨터 이용가능 매체를 포함하는 컴퓨터 프로그램 제품.
KR1020137030978A 2011-04-22 2012-04-12 휴대용 컴퓨팅 디바이스에서의 열 로드 관리 KR101529419B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161478175P 2011-04-22 2011-04-22
US61/478,175 2011-04-22
US13/197,171 US8942857B2 (en) 2011-04-22 2011-08-03 Method and system for thermal load management in a portable computing device
US13/197,171 2011-08-03
PCT/US2012/033192 WO2012145212A2 (en) 2011-04-22 2012-04-12 Method and system for thermal load management in a portable computing device

Publications (2)

Publication Number Publication Date
KR20140002072A true KR20140002072A (ko) 2014-01-07
KR101529419B1 KR101529419B1 (ko) 2015-06-16

Family

ID=47021953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137030978A KR101529419B1 (ko) 2011-04-22 2012-04-12 휴대용 컴퓨팅 디바이스에서의 열 로드 관리

Country Status (6)

Country Link
US (1) US8942857B2 (ko)
EP (1) EP2699977A2 (ko)
JP (1) JP6059204B2 (ko)
KR (1) KR101529419B1 (ko)
CN (1) CN103582857B (ko)
WO (1) WO2012145212A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160025277A (ko) * 2014-08-27 2016-03-08 삼성전자주식회사 렌더링 퀄리티 제어 장치 및 방법

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8768666B2 (en) * 2011-01-06 2014-07-01 Qualcomm Incorporated Method and system for controlling thermal load distribution in a portable computing device
US9047067B2 (en) * 2011-04-22 2015-06-02 Qualcomm Incorporated Sensorless detection and management of thermal loading in a multi-processor wireless device
US8718835B2 (en) * 2011-06-17 2014-05-06 Microsoft Corporation Optimized temperature-driven device cooling
CN103376869B (zh) * 2012-04-28 2016-11-23 华为技术有限公司 一种用于dvfs的温度反馈控制系统及方法
EP2856315A4 (en) * 2012-05-30 2016-02-17 Intel Corp TERMINATION REQUEST BETWEEN A HETEROGEN GROUP OF PROCESSORS
KR102038427B1 (ko) * 2012-09-28 2019-10-31 삼성전자 주식회사 온도별 전압 제어 방법 및 이를 지원하는 단말기
US9946319B2 (en) * 2012-11-20 2018-04-17 Advanced Micro Devices, Inc. Setting power-state limits based on performance coupling and thermal coupling between entities in a computing device
KR101454219B1 (ko) * 2012-11-27 2014-10-24 포항공과대학교 산학협력단 그래픽 처리 장치의 전력 관리 방법 및 전력 관리 시스템
CN104871109B (zh) * 2012-12-17 2017-08-04 惠普发展公司,有限责任合伙企业 基于温度的触摸便携式计算设备
KR20140080058A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말
US9342443B2 (en) * 2013-03-15 2016-05-17 Micron Technology, Inc. Systems and methods for memory system management based on thermal information of a memory system
US20140344827A1 (en) * 2013-05-16 2014-11-20 Nvidia Corporation System, method, and computer program product for scheduling a task to be performed by at least one processor core
US9158358B2 (en) 2013-06-04 2015-10-13 Qualcomm Incorporated System and method for intelligent multimedia-based thermal power management in a portable computing device
US9323318B2 (en) 2013-06-11 2016-04-26 Microsoft Technology Licensing, Llc Scenario power management
KR102076824B1 (ko) * 2013-06-28 2020-02-13 삼성디스플레이 주식회사 보호 회로, 이를 이용한 회로 보호 방법 및 표시장치
US9495491B2 (en) * 2014-03-14 2016-11-15 Microsoft Technology Licensing, Llc Reliability aware thermal design
US10082847B2 (en) * 2014-04-01 2018-09-25 Qualcomm Incorporated Method and system for optimizing performance of a PCD while mitigating thermal generation
US10042402B2 (en) * 2014-04-07 2018-08-07 Google Llc Systems and methods for thermal management of a chassis-coupled modular mobile electronic device
US9823673B2 (en) * 2014-04-08 2017-11-21 Qualcomm Incorporated Energy efficiency aware thermal management in a multi-processor system on a chip based on monitored processing component current draw
US9530174B2 (en) * 2014-05-30 2016-12-27 Apple Inc. Selective GPU throttling
US10203746B2 (en) * 2014-05-30 2019-02-12 Apple Inc. Thermal mitigation using selective task modulation
US10095286B2 (en) 2014-05-30 2018-10-09 Apple Inc. Thermally adaptive quality-of-service
CN104049716B (zh) * 2014-06-03 2017-01-25 中国科学院计算技术研究所 一种结合温度感知的计算机节能方法及系统
CN106462202A (zh) * 2014-06-12 2017-02-22 联发科技股份有限公司 热管理方法和具有热管理机制的电子系统
KR102210770B1 (ko) * 2014-09-02 2021-02-02 삼성전자주식회사 반도체 장치, 반도체 시스템 및 그 제어 방법
US9569221B1 (en) * 2014-09-29 2017-02-14 Amazon Technologies, Inc. Dynamic selection of hardware processors for stream processing
US9582052B2 (en) 2014-10-30 2017-02-28 Qualcomm Incorporated Thermal mitigation of multi-core processor
US10061331B2 (en) * 2015-01-22 2018-08-28 Qualcomm Incorporated Systems and methods for detecting thermal runaway
US9785209B2 (en) 2015-03-31 2017-10-10 Qualcomm Incorporated Thermal management in a computing device based on workload detection
CN105045359A (zh) * 2015-07-28 2015-11-11 深圳市万普拉斯科技有限公司 散热控制方法和装置
US10332230B2 (en) 2015-08-31 2019-06-25 Qualcomm Incorporated Characterizing GPU workloads and power management using command stream hinting
US9749740B2 (en) 2015-11-17 2017-08-29 Motorola Solutions, Inc. Method and apparatus for expanded temperature operation of a portable communication device
US20170147355A1 (en) * 2015-11-24 2017-05-25 Le Holdings (Beijing) Co., Ltd. Method and system for accelerating intelligent terminal boot speed
CN105342636A (zh) * 2015-12-08 2016-02-24 苏州波影医疗技术有限公司 多层x射线ct系统的探测器系统的温度控制系统和方法
US10168752B2 (en) * 2016-03-08 2019-01-01 Qualcomm Incorporated Systems and methods for determining a sustained thermal power envelope comprising multiple heat sources
US9817697B2 (en) * 2016-03-25 2017-11-14 International Business Machines Corporation Thermal-and spatial-aware task scheduling
US10175731B2 (en) 2016-06-17 2019-01-08 Microsoft Technology Licensing, Llc Shared cooling for thermally connected components in electronic devices
EP3264268A1 (en) * 2016-06-29 2018-01-03 Intel Corporation Distributed processing qos algorithm for system performance optimization under thermal constraints
US11175708B2 (en) * 2016-07-12 2021-11-16 American Megatrends International, Llc Thermal simulation for management controller development projects
US9753773B1 (en) 2016-10-19 2017-09-05 International Business Machines Corporation Performance-based multi-mode task dispatching in a multi-processor core system for extreme temperature avoidance
US9747139B1 (en) * 2016-10-19 2017-08-29 International Business Machines Corporation Performance-based multi-mode task dispatching in a multi-processor core system for high temperature avoidance
US11742038B2 (en) 2017-08-11 2023-08-29 Advanced Micro Devices, Inc. Method and apparatus for providing wear leveling
US11551990B2 (en) 2017-08-11 2023-01-10 Advanced Micro Devices, Inc. Method and apparatus for providing thermal wear leveling
US11644834B2 (en) * 2017-11-10 2023-05-09 Nvidia Corporation Systems and methods for safe and reliable autonomous vehicles
EP3547076A1 (en) * 2018-03-28 2019-10-02 Advanced Digital Broadcast S.A. System and method for adjusting performance of components of a multi-component system
CN110968415B (zh) * 2018-09-29 2022-08-05 Oppo广东移动通信有限公司 多核处理器的调度方法、装置及终端
JP7172625B2 (ja) * 2019-01-16 2022-11-16 トヨタ自動車株式会社 情報処理装置
CN110333933A (zh) * 2019-07-01 2019-10-15 华南理工大学 一种hpl计算模型仿真方法
CN110794949A (zh) * 2019-09-27 2020-02-14 苏州浪潮智能科技有限公司 一种基于部件温度自动分配计算资源的降功耗方法和系统
US20210223805A1 (en) * 2020-12-23 2021-07-22 Intel Corporation Methods and apparatus to reduce thermal fluctuations in semiconductor processors
US11860067B2 (en) * 2021-01-19 2024-01-02 Nvidia Corporation Thermal test vehicle
CN113616227B (zh) * 2021-09-18 2024-05-28 明峰医疗系统股份有限公司 一种探测器温度控制系统及方法
CN115237179B (zh) * 2022-09-22 2023-01-20 之江实验室 一种基于机器学习的智能温控管理电路
CN117215394B (zh) * 2023-11-07 2024-01-23 北京数渡信息科技有限公司 一种面向多核处理器的片上温度和能耗控制装置
CN117369603B (zh) * 2023-12-05 2024-03-22 广东迅扬科技股份有限公司 一种机箱散热控制系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822996B2 (en) 1995-12-07 2010-10-26 Texas Instruments Incorporated Method for implementing thermal management in a processor and/or apparatus and/or system employing the same
US5940785A (en) 1996-04-29 1999-08-17 International Business Machines Corporation Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit
US7086058B2 (en) 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
US7360102B2 (en) 2004-03-29 2008-04-15 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processor manipulation
JP3830491B2 (ja) * 2004-03-29 2006-10-04 株式会社ソニー・コンピュータエンタテインメント プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法
JP3781758B2 (ja) * 2004-06-04 2006-05-31 株式会社ソニー・コンピュータエンタテインメント プロセッサ、プロセッサシステム、温度推定装置、情報処理装置および温度推定方法
JP3805344B2 (ja) * 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
US7739527B2 (en) 2004-08-11 2010-06-15 Intel Corporation System and method to enable processor management policy in a multi-processor environment
US8806228B2 (en) 2006-07-13 2014-08-12 International Business Machines Corporation Systems and methods for asymmetrical performance multi-processors
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
US20080115010A1 (en) 2006-11-15 2008-05-15 Rothman Michael A System and method to establish fine-grained platform control
JP2008157739A (ja) * 2006-12-22 2008-07-10 Toshiba Corp 情報処理装置および起動方法
US20100073068A1 (en) 2008-09-22 2010-03-25 Hanwoo Cho Functional block level thermal control
US8171325B2 (en) 2008-12-03 2012-05-01 International Business Machines Corporation Computing component and environment mobility
WO2010112045A1 (de) 2009-04-02 2010-10-07 Siemens Aktiengesellschaft Verfahren und vorrichtung zur energieeffizienten lastverteilung
JP4585598B1 (ja) * 2009-06-30 2010-11-24 株式会社東芝 情報処理装置
US8839012B2 (en) 2009-09-08 2014-09-16 Advanced Micro Devices, Inc. Power management in multi-GPU systems
US20110138395A1 (en) 2009-12-08 2011-06-09 Empire Technology Development Llc Thermal management in multi-core processor
CN102004673A (zh) * 2010-11-29 2011-04-06 中兴通讯股份有限公司 多核处理器负载均衡的处理方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160025277A (ko) * 2014-08-27 2016-03-08 삼성전자주식회사 렌더링 퀄리티 제어 장치 및 방법

Also Published As

Publication number Publication date
WO2012145212A3 (en) 2013-03-28
EP2699977A2 (en) 2014-02-26
WO2012145212A2 (en) 2012-10-26
JP2014516443A (ja) 2014-07-10
JP6059204B2 (ja) 2017-01-11
KR101529419B1 (ko) 2015-06-16
US8942857B2 (en) 2015-01-27
US20120271481A1 (en) 2012-10-25
CN103582857A (zh) 2014-02-12
CN103582857B (zh) 2017-06-23

Similar Documents

Publication Publication Date Title
KR101529419B1 (ko) 휴대용 컴퓨팅 디바이스에서의 열 로드 관리
KR101814264B1 (ko) 최적 전력 레벨들을 예측하기 위해 열 저항 값들을 사용하는 휴대용 컴퓨팅 디바이스에서의 열 관리를 위한 시스템 및 방법
US9442774B2 (en) Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US8601300B2 (en) System and method for managing thermal energy generation in a heterogeneous multi-core processor
US8768666B2 (en) Method and system for controlling thermal load distribution in a portable computing device
JP5781255B1 (ja) ポータブルコンピューティングデバイスにおける適応型熱管理のためのシステムおよび方法
US8996902B2 (en) Modal workload scheduling in a heterogeneous multi-processor system on a chip
KR101534450B1 (ko) 누설 전류 측정으로부터 열 관리 폴리시를 결정하는 시스템 및 방법
US8595525B2 (en) On-chip thermal management techniques using inter-processor time dependent power density data for indentification of thermal aggressors
US20130090888A1 (en) System and method for proximity based thermal management of mobile device
CN110214298B (zh) 用于便携式计算设备中的情境感知热管理和工作负荷调度的系统和方法

Legal Events

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

Payment date: 20180329

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 5