KR102380576B1 - 그래픽 프레임 프로세싱에서 전력 소비를 감소시키기 위한 cpu/gpu dcvs 공동 최적화 - Google Patents

그래픽 프레임 프로세싱에서 전력 소비를 감소시키기 위한 cpu/gpu dcvs 공동 최적화 Download PDF

Info

Publication number
KR102380576B1
KR102380576B1 KR1020167033209A KR20167033209A KR102380576B1 KR 102380576 B1 KR102380576 B1 KR 102380576B1 KR 1020167033209 A KR1020167033209 A KR 1020167033209A KR 20167033209 A KR20167033209 A KR 20167033209A KR 102380576 B1 KR102380576 B1 KR 102380576B1
Authority
KR
South Korea
Prior art keywords
cpu
gpu
dcvs
workload
power consumption
Prior art date
Application number
KR1020167033209A
Other languages
English (en)
Other versions
KR20160147964A (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 KR20160147964A publication Critical patent/KR20160147964A/ko
Application granted granted Critical
Publication of KR102380576B1 publication Critical patent/KR102380576B1/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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2330/00Aspects of power supply; Aspects of display protection and defect management
    • G09G2330/02Details of power systems and of start or stop of display operation
    • G09G2330/021Power management, e.g. power saving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens
    • 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

Abstract

그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템, 방법 및 컴퓨터 프로그램이 개시되어 있다. 하나의 이러한 방법은 중앙 프로세싱 유닛 (CPU) 및 그래픽 프로세싱 유닛 (GPU) 에 의해 협업하여 수행되도록 그래픽 프레임 프로세싱을 개시하는 단계; CPU 활성 데이터 및 GPU 활성 데이터를 수신하는 단계; 상기 GPU 및 상기 CPU에 대한 이용가능한 동적 클록 및 전압/주파수 스케일링 (DCVS) 레벨들의 세트를 결정하는 단계; 및 상기 CPU 및 GPU 활성 데이터에 기초하여, 그래픽 프레임 프로세싱 동안 상기 CPU 및 상기 GPU의 조합된 전력 소비를 최소화하는 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 상기 이용가능한 DCVS 레벨들의 세트로부터 선택하는 단계를 포함한다.

Description

그래픽 프레임 프로세싱에서 전력 소비를 감소시키기 위한 CPU/GPU DCVS 공동 최적화{CPU/GPU DCVS CO-OPTIMIZATION FOR REDUCING POWER CONSUMPTION IN GRAPHICS FRAME PROCESSING}
휴대용 컴퓨팅 디바이스 (예를 들어, 셀룰러 전화기, 스마트 폰, 태블릿 컴퓨터, 휴대용 정보 단말기 (PDA), 및 휴대용 게임 콘솔) 는 피쳐들 및 서비스들의 계속 확장되는 어레이를 제공하며, 그리고 정보, 자원들, 및 통신들의 전례없는 레벨을 사용자에게 제공한다. 이러한 서비스 향상과 페이스를 유지하기 위해, 이러한 디바이스는 더 복잡하고 더 강력해지고 있다. 휴대용 컴퓨팅 디바이스는 현재 일반적으로 시스템 온 칩 (SoC) 및/또는 단일 기판 (예를 들어, 중앙 프로세싱 유닛 (CPU), 그래픽 프로세싱 유닛 (GPU) 등) 에 내장된 복수의 프로세서 코어를 포함하여, 사용자가 복잡하고 전력 집약적인 소프트웨어 응용 프로그램을 실행하게 허용한다. 그러나, 증가된 성능 및 기능 요건은 배터리 수명 및 전력 소비를 관리하기 위한 상당한 설계 및 동작 과제를 제시한다.
멀티프로세서 디바이스들의 전력 소비를 관리하기 위한 기존의 방법들은 동적 클록 및 전압 스케일링 (DCVS) 기술을 수반할 수도 있다. DCVS는 프로세서들, 하드웨어 디바이스들 등에 인가된 주파수 및/또는 전압을 선택적으로 조정하는 수반하여 원하는 성능 및/또는 전력 효율 특성을 수득한다. 종래 DCVS 솔루션은 다수의 성능 문제를 나타내고, 멀티코어 프로세서 시스템의 각각 코어에 대한 주파수/전압을 정확하게 스케일링하는 유효 DCVS 방법의 구현이 중요하고 도전적인 설계 기준이다. 예를 들어, 멀티프로세서 시스템에 대한 DCVS 기술 (예를 들어, CPU 및 GPU를 포함하는 시스템) 은, 각각의 프로세서가 별도의 DCVS 모듈/프로세스를 포함하고 및/또는 다른 프로세서의 독립적인 프로세서 주파수/전압을 조정하는 것이 필요하다. 또한, 그래픽 프레임 프로세싱을 수행하는 경우, 별도의 CPU 및/또는 GPU DCVS 알고리즘은 전력 효율 최적화에 관계없이 프레임 프로세싱 데드라인에 의해 제시된 제약 내에서 성능을 최적화하도록 설계된다.
따라서, 멀티프로세서 시스템에서의 전력 효율에 대한 DCVS를 최적화하기 위한 개선된 시스템 및 방법들에 대한 필요성이 업계에 존재한다.
그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템, 방법 및 컴퓨터 프로그램이 개시되어 있다. 하나의 이러한 방법은 중앙 프로세싱 유닛 (CPU) 및 그래픽 프로세싱 유닛 (GPU) 에 의해 협업하여 수행되도록 그래픽 프레임 프로세싱을 개시하는 단계; CPU 활성 데이터 및 GPU 활성 데이터를 수신하는 단계; 상기 GPU 및 상기 CPU에 대한 이용가능한 동적 클록 및 전압/주파수 스케일링 (DCVS) 레벨들의 세트를 결정하는 단계; 및 상기 CPU 및 GPU 활성 데이터에 기초하여, 그래픽 프레임 프로세싱 동안 상기 CPU 및 상기 GPU의 조합된 전력 소비를 최소화하는 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 상기 이용가능한 DCVS 레벨들의 세트로부터 선택하는 단계를 포함한다.
또 다른 실시형태는 그래픽 프레임 프로세싱에서 전력 소비를 최소화하는 시스템을 포함한다. 하나의 이러한 시스템은 중앙 프로세싱 유닛 (CPU), 그래픽 프로세싱 유닛 (GPU), 및 상기 GPU 및 상기 CPU와 통신하는 동적 클록 전압 및 스케일링 (DCVS) 을 포함하는 시스템 온 칩 (SoC) 을 포함한다. CPU/GPU DCVS 공동 최적화 모듈은 CPU 및 GPU 활성 데이터에 기초하여 DCVS 제어기에 대한 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 결정하도록 구성된다. CPU 및 CPU DCVS 레벨들의 최적의 조합은 그래픽 프레임 프로세싱 동안 CPU 및 GPU의 조합된 전력 소비를 최소화하도록 선택된다.
도면들에 있어서, 동일한 참조부호들은, 달리 나타내지 않는한 다양한 도면들 전반에 걸쳐 동일한 부분들을 지칭한다. "102A" 또는 "102B" 와 같은 문자 지정을 갖는 참조부호들에 대해, 그 문자 지정은 동일한 도면에 존재하는 2개의 동일한 부분들 또는 엘리먼트들을 구별할 수도 있다. 참조부호들에 대한 문자 지정은, 참조부호가 모든 도면들에 있어서 동일한 참조부호를 갖는 모든 부분들을 포괄하도록 의도될 경우에 생략될 수도 있다.
도 1은 그래픽 프레임 프로세싱에서의 중앙 프로세싱 유닛 (CPU) 및 그래픽 프로세싱 유닛 (GPU) 동적 클록 및 전압/주파수 스케일링 (DCVS) 을 공동 최적화하기 위한 시스템의 실시형태의 블록도이다.
도 2는 검출된 그래픽 워크로드 타입에 따라 DCVS 공동 최적화 알고리즘을 선택하기 위해 도 1의 시스템에서 구현되는 방법의 실시형태의 흐름도이다.
도 3은 도 1의 시스템에서 CPU/GPU DCVS 공동 최적화 모듈(들)에 대한 예시적인 데이터 입력들 및 출력들을 예시한 블록도이다.
도 4는 그래픽 프레임 프로세싱 동안 전력 소비를 최소화하기 위해 CPU 및 GPU DCVS를 공동 최적화하기 위한 도 1의 시스템에서 구현된 방법의 실시형태를 예시한 흐름도이다.
도 5a - 도 5c는 CPU/GPU 직렬화 그래픽 오프로드에 대한 CPU/GPU DCVS 공동 최적화 방법의 실시형태를 나타낸 타이밍도의 시리즈이다.
도 6은 제 1 CPU/GPU 온도에서의 그래픽 프레임 프로세싱 동안 최소한의 조합된 전력 소비를 위해 GPU 및 CPU DCSV 레벨들을 공동 최적화하기 위한 예시적인 CPU/GPU 주파수 공간을 나타낸 데이터 테이블이다.
도 7은 제 2 CPU/GPU 온도에 대한 도 6의 데이터 테이블을 나타낸다.
도 8은 제 3 CPU/GPU 온도에 대한 도 6의 데이터 테이블을 나타낸다.
도 9는 구배 하강 검색 방법을 구현하는 CPU/GPU DCVS 공동 최적화 알고리즘의 실시형태를 나타낸다.
도 10은 CPU/GPU 병렬화 그래픽 워크로드를 위해 CPU 및 GPU DCVS 레벨들을 공동 최적화하기 위한 도 1의 시스템에서 구현된 방법의 실시형태를 예시한 흐름도이다.
도 11a 및 도 11b는 CPU/GPU 병렬화 그래픽 오프로드에 대한 CPU/GPU DCVS 공동 최적화 방법의 실시형태를 나타낸 타이밍도의 시리즈이다.
도 12는 도 1의 시스템을 포함하는 휴대용 컴퓨터 디바이스의 실시형태의 블록도이다.
단어 "예시적인"은 "예, 예증, 또는 예시로서 기능하는"을 의미하도록 본 명세서에서 사용된다. "예시적인" 것으로서 본 명세서에서 설명되는 임의의 양태는 다른 양태들에 비해 반드시 선호되거나 또는 유리한 것으로서 해석되지는 않아야 한다.
이 설명에 있어서, 용어 "애플리케이션"은 또한 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들, 및 패치들과 같은 실행가능 컨텐츠를 갖는 파일들을 포함할 수도 있다. 부가적으로, 본 명세서에서 지칭되는 "애플리케이션"은 또한, 공개될 필요가 있을 수도 있는 문헌들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이 본질적으로 실행가능하지 않는 파일들을 포함할 수도 있다.
용어 "컨텐츠"는 또한 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들, 및 패치들과 같은 실행가능 컨텐츠를 갖는 파일들을 포함할 수도 있다. 부가적으로, 본 명세서에서 지칭되는 "컨텐츠"는 또한, 공개될 필요가 있을 수도 있는 문헌들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이 본질적으로 실행가능하지 않는 파일들을 포함할 수도 있다.
본 설명에 있어서 사용되는 바와 같이, 용어들 "컴포넌트", "데이터베이스", "모듈", "시스템" 등은 컴퓨터 관련 엔티티, 즉, 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어를 지칭하는 것으로 의도된다. 예를 들어, 컴포넌트 프로세서 상에서 실행하는 프로세스, 프로세서, 오브젝트, 실행 가능물 (executable), 실행 스레드 (thread of execution), 프로그램, 및/또는 컴퓨터일 수도 있지만, 이에 한정되지 않는다. 예시로서, 컴퓨팅 디바이스 상에서 구동하는 애플리케이션 및 컴퓨팅 디바이스 양자는 컴포넌트일 수도 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수도 있고, 컴포넌트는 하나의 컴퓨터에 국소화되고/되거나 2 이상의 컴퓨터들 사이에서 분배될 수도 있다. 부가적으로, 이들 컴포넌트들은 다양한 데이터 구조들이 저장된 다양한 컴퓨터 판독가능 매체로부터 실행할 수도 있다. 컴포넌트들은 하나 이상의 데이터 패킷들을 갖는 신호 (예를 들어, 로컬 시스템에서, 분배 시스템에서 및/또는 신호에 의한 다른 시스템들과의 인터넷과 같은 네트워크에 걸쳐 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터) 에 따라서와 같은 로컬 및/또는 원격 프로세스들에 의해 통신할 수도 있다.
본 설명에서, 용어들 "통신 디바이스", "무선 디바이스", "무선 전화기", "무선 통신 디바이스", 및 "무선 핸드셋" 은 상호교환가능하게 사용된다. 제 3 세대 ("3G") 무선 기술 및 제 4 세대 ("4G") 의 도래로, 더 큰 대역폭 이용가능성은 아주 다양한 무선 능력들을 갖는 더 휴대성 있는 컴퓨팅 디바이스들을 가능하게 하였다. 따라서, 휴대용 컴퓨팅 디바이스는 셀룰러 전화기, 페이저, PDA, 스마트폰, 네비게이션 디바이스, 또는 무선 접속 또는 링크를 갖는 핸드헬드 컴퓨터를 포함할 수도 있다.
도 1은 그래픽 프레임 프로세싱 동안, 중앙 프로세싱 유닛 (CPU) (106) 및 그래픽 프로세싱 유닛 (GPU) (104) 의 동적 클록 및 전압/주파수 스케일링 (DCVS) 레벨들을 공동 최적화 ("CPU/GPU DCVS 공동 최적화"라 지칭) 하기 위한 시스템 (100) 을 도시한다. 그래픽 프레임 프로세싱은, CPU (106) 와 GPU (104) 가 프레임 프로세싱을 협업하여 수행하는 임의의 워크로드를 수반할 수도 있다. 예를 들어, 그래픽 프레임 프로세싱은 CPU/GPU 직렬화 워크로드 및/또는 CPU/GPU 병렬화 워크로드를 수반할 수도 있다. 종래에 공지된 바와 같이, CPU/GPU 직렬화 워크로드는 각각의 그래픽 프레임에 대한 CPU (106) 및 GPU (104) 에 의한 연속적 프로세싱을 수반한다. 각각의 프레임에 대해, CPU (106) 는 프로세싱을 시작하고 GPU (104) 로 출력을 제공하며, 이것은 추가적인 프로세싱을 수행한다. GPU (104) 는, 예를 들어, 결과 출력을 모바일 디스플레이 프로세서를 통해 디스플레이 (110) 로 전송한다.
당업자는, CPU/GPU 병렬화 워크로드가 CPU (106) 및 GPU (104) 에 의한 병렬 프로세싱을 수반한다는 것을 이해할 것이다. CPU (106) 는 프레임 (n) 에 대한 프로세싱을 시작하고 결과 출력을 메모리 (126) 의 버퍼 (128) 에 저장한다. 다음 기간 동안, CPU (106) 가 프레임 (n+1) 을 프로세싱하고 프레임 버퍼 (128) 에서 상응하는 출력을 저장하는 동안 GPU (104) 는 프레임 버퍼 (128) 에 저장된 출력을 검색하고 프레임 (n) 에 대한 추가 프로세싱을 수행한다. 프로세스는 각각의 후속 프레임을 반복한다. 이러한 프로세스가 단일의 프레임 딜레이를 초래하지만, CPU/GPU 병렬 처리에 의한 성능 이점을 제공한다.
CPU/GPU의 DCVS 공동 최적화라는 용어는, GPU (104) 및 CPU (106) 의 조합된 전력 소비가 최소화되도록 GPU (104) 와 CPU (106) 모두에 대한 DCVS 레벨을 연결하여 (jointly) 최적화하는 것임을 이해해야 한다. 다른 말로, 시스템 (100) 은 DCVS 제어기 (112) 에 대한 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 결정하고, 이것은 그래픽 프레임 프로세싱 동안 최저의 전체 CPU 및 GPU 전력 소비를 제공한다.
시스템 (100) 은 퍼스널 컴퓨터, 워크스테이션, 서버, 휴대용 컴퓨팅 디바이스 (PCD), 예컨대 셀룰러 폰, 휴대형 정보 단말기 (PDA), 휴대 게임 콘솔, 팜탑 컴퓨터, 또는 태블릿 컴퓨터를 포함한 임의의 멀티프로세서 컴퓨팅 디바이스에서 구현될 수도 있다. 일 실시형태에서, 도 1에 나타낸 시스템 컴포넌트들 중 하나 이상은 메모리 시스템 (예를 들어, 동적 랜덤 액세스 메모리 (DRAM)) 또는 다른 타입의 메모리에 커플링된 시스템 온 칩 (SoC) 에 통합될 수도 있다. 도 1에 나타낸 바와 같이, 시스템 (100) 은 하나 이상의 프로세싱 디바이스들, 유닛들, 또는 코어들 (예를 들어, CPU (106), GPU (104)) 을 포함한다. 시스템 (100) 은 임의의 다른 일반적인 또는 특정 목적의 하드웨어 디바이스들, 예를 들어, 디지털 신호 프로세서(들), 모바일 디스플레이 프로세서, 비디오 인코더 등을 더 포함할 수도 있다.
CPU (106), GPU (104) 및 임의의 다른 하드웨어 디바이스들 (108) 은 각각의 하드웨어 드라이버 (114) 에 접속될 수도 있다. 업계에 공지된 바와 같이, 하드웨어 드라이버 (114) 는 각각의 하드웨어 디바이스들에 소프트웨어 인터페이스를 제공하여, 사용되고 있는 하드웨어의 정확한 상세들을 알 것을 요구하지 않고도 운영 시스템들 및 다른 컴퓨터 프로그램들이 하드웨어 기능들에 접속할 수 있게 한다. 하드웨어 드라이버들 (114) 은 DCVS 제어기 (112) 에 전기적으로 커플링된다. DCVS 제어기 (112) 는 CPU (106), GPU (104), 및 하드웨어 디바이스들 (108) 에 제공된 주파수 및/또는 전압을 제어함으로써 시스템 DCVS 기술들을 구현하도록 구성된다. DCVS 제어기 (112) 는, 예를 들어, 하나 이상의 클록들 (116), 전력 관리 통합 회로 (power management integrated circuit; PMIC) (118) 등에 대한 인터페이스들을 통해 디바이스들이 동작하는, 주파수 및/또는 전압을 조정할 수도 있다.
상기에 언급된 바와 같이, 그래픽 프레임 프로세싱 동안, GPU (104) 및 CPU (106) 양자에 대한 DCVS 레벨들을 연결하여 최적화하여 최저의 전체 CPU 및 GPU 전력 소비를 제공하기 위해서 DCVS 제어기 (112) 는 CPU/GPU DCVS 공동 최적화 모듈(들)(102) 과 인터페이스할 수도 있다. 도 1의 실시형태에서, 아래에 보다 상세히 기재한 바와 같이, CPU/GPU DCVS 공동 최적화 모듈(들) (102) 은 그래픽 워크로드 타입의 검출 모듈 (120) 을 포함하며, 이것은 그래픽 워크로드가 CPU/GPU 직렬화 워크로드 또는 CPU/GPU 직렬화 워크로드를 포함하는지 여부를 결정하도록 구성된다. 그래픽 워크로드가 직렬화되면, CPU/GPU DCVS 공동 최적화는 모듈(들)(122)에 의해 수행된다. 그래픽 워크로드가 병렬화되면, CPU/GPU DCVS 공동 최적화는 모듈(들)(124) 에 의해 수행된다.
도 2는 검출된 그래픽 워크로드 타입에 따라 다양한 CPU/GPU DCVS 공동 최적화 알고리즘을 제어하기 위해 도 1의 시스템에서 구현되는 방법 (200) 의 실시형태의 흐름도이다. 블록 (202) 에서, 시스템 (100) 은 그래픽 프레임 프로세싱을 개시할 수도 있다. 블록 (204) 에서, 그래픽 워크로드 타입의 검출 모듈 (120) 은 그래픽 프레임 프로세싱과 연관된 워크로드 타입을 검출한다. 일 실시형태에서, 워크로드 타입의 검출은 GPU 드라이버에 의해 수행될 수도 있다. 검출된 워크로드는 CPU/GPU 직렬화 워크로드 또는 CPU/GPU 병렬화 워크로드를 포함할 수도 있다. 워크로드 타입은 다양한 방식으로 검출될 수도 있다. 하나의 실시형태에서, GPU 드라이버는 프레임 버퍼 오브젝트 (frame buffer object; FBO) 가 생성되었는지 여부를 결정할 수도 있다. FBO가 생성되는 경우, 시스템 (100) 은 그래픽 워크로드 타입이 CPU/GPU 직렬화되는지 여부를 결정할 수도 있다. FBO가 생성되지 않는 경우, 시스템은 그래픽 워크로드 타입이 CPU/GPU 병렬화되는지 여부를 결정할 수도 있다.
또 다른 검출 방법은 프로파일 프레임 프로세싱을 조사하는 것을 수반할 수도 있다. 프레임 (n) 프로세싱이 완료된 이후 프레임 (n+1) 에 대한 프로세싱이 단지 시작한다고 결정되는 경우, 시스템 (100) 은 그래픽 워크로드 타입이 CPU/GPU 직렬화된다고 결정할 수도 있다. 이것은, 예를 들어, 프레임 (n+1) 에 대한 시작 시간이 프레임 (n) 프로세싱의 종료 시간과 대략 동일한 상황에서 가정될 수도 있다. 하지만, 프레임 (n+1) 에 대한 프로세싱이 프레임 (n) 프로세싱의 상태와 무관하게 시작할 수 있다면, 시스템 (100) 은 그래픽 워크로드 타입이 CPU/GPU 병렬화된다고 결정할 수도 있다. 이것은, 예를 들어, 프레임 (n+1) 에 대한 시작 시간이 프레임 (n) 프로세싱의 종료 시간 이전에 발생하는 상황에서 가정될 수도 있다.
워크로드 타입은 또한 그래픽 성능 벤치마크에 기초하여 결정될 수도 있다. 예를 들어, 데이터 테이블은, 소정 타입의 벤치마크 또는 성능 및/또는 사용 시나리오가 CPU/GPU 직렬화 워크로드와 연관되어야 하는 한편, 다른 것들은 CPU/GPU 병렬화 워크로드와 연관되어야 한다고 규정할 수도 있다.
워크로드 타입의 검출 방법에 관계없이, 모듈 (120) 은 CPU/GPU DCVS 공동 최적화 알고리즘이 적용되어야 하는 (결정 블록 (206)) 을 제어한다. 직렬화 워크로드에 대해, CPU/GPU 직렬화 DCVS 공동 최적화 알고리즘들 중 하나가 적용될 수도 있다 (블록 208). 병렬화 워크로드에 대해, CPU/GPU 병렬화 DCVS 공동 최적화 알고리즘들 일 세트 중 하나가 적용될 수도 있다 (블록 210).
도 3은 그래픽 프레임 프로세싱 동안 CPU (106) 및 GPU (104) 의 조합된 전력 소비를 최소화하기 위해 GPU 및 CPU DCVS 레벨들을 연결하여 최적화하기 위한 CPU/GPU DCVS 공동 최적화 모듈(들) (102) 에 의해 사용된 예시적인 데이터 입력들을 나타낸 블록도이다. 보다 상세히 후술하는 바와 같이, 프레임 데드라인(들)을 관찰하면서 최저의 조합된 CPU 및 GPU 전력 소비에 대한 최적의 동작점 (즉, GPU 및 CPU DCVS 레벨들) 을 결정하기 위해 다양한 타입의 데이터가 사용된다. 일 실시형태에서, CPU/GPU DCVS 공동 최적화 모듈(들) (102) 은 수학식 1-4의 조건에 의해 제한된 최적의 동작점을 결정하도록 구성될 수도 있다.
CPU 활성 시간 + GPU 활성 < 프레임 기간 = 1/초당 프레임들 (frames per second; FPS)
수학식 1
CPU Fmin < CPU 주파수 < CPU Fmax;
식중 Fmin은 최소의 CPU 주파수이고; 그리고
Fmax는 최대의 CPU 주파수이다.
수학식 2
CPU Fmin < CPU 주파수 < CPU Fmax;
식중 Fmin은 최소의 GPU 주파수이고; 그리고
Fmax는 최대의 GPU 주파수이다.
수학식 3
최소의 총 평균 SoC 전력 소비 = CPU 전력 + GPU 전력 + 기타
수학식 4
도 3을 참조하면, CPU/GPU DCVS 공동 최적화 모듈(들) (102) 은 CPU (106) 및 GPU (104) 로부터의 다양한 타입의 활성 데이터 (즉, 각각 CPU 활성 데이터 및 GPU 활성 데이터로 지칭됨) 를 획득할 수 있다. 활성 데이터는 CPU 활성 프로파일러 (302) 및 GPU 활성 프로파일러 (304) 로부터 수신될 수도 있다. 업계에 공지된 바와 같이, 활성 프로파일러 (302 및 304) 는 예를 들어 각각의 CPU 및 GPU 드라이버들, 카운터들, 레지스터들, 기타 하드웨어 등으로부터 관련 데이터를 획득할 수도 있다. 활성 데이터는 하기의 또는 다른 타입들의 CPU 및/또는 GPU 활성과 관련된 데이터: 워크로드, 활성 시간, 유휴 시간, 대기 시간 등등 중 임의의 것을 포함할 수도 있다. CPU/GPU DCVS 공동 최적화 모듈(들) (102) 은 CPU (106) 와 연관된 가능성있는 저전력 모드들 (CPU 저전력 모드들 (306)) 및 GPU (104) 와 연관된 가능성있는 저전력 모드들 (GPU 저전력 모드들 (308)) 로부터의 다양한 타입의 활성 데이터 (즉, 각각 CPU 활성 데이터 및 GPU 활성 데이터로 지칭됨) 를 획득할 수 있다. 저전력 모드들은 각각의 DCVS 레벨들 또는 동작 주파수들 등의 리스트 또는 테이블을 포함할 수도 있다. CPU 저전력 모드들은 하기의 기능들, 피쳐들, 또는 변수들: 클록 게이팅 모드들, 저전압의 리텐션, 전력 게이팅 등등 중 임의의 것을 수반할 수도 있음을 이해해야 한다. GPU 저전력 모드들은 예를 들어 공간 피크 시간 피크 (spatial peak temporal peak; SPTP) 전력 충돌, GFX 전력 충돌 등을 수반할 수도 있다.
도 3에 더욱 나타낸 바와 같이, CPU/GPU DCVS 공동 최적화는 또한, CPU (IDDQ 누설 데이터 (314)) 와 GPU (IDDQ 누설 데이터 (316)) 와 연관된 정적 상태의 공급 전류 (IDDQ) 누설 데이터는 물론, CPU 온도 센서(들) (312) 및 GPU 온도 센서(들) (310) 로부터의 온도 데이터를 통합할 수도 있다. 당업자는, CPU 및 GPU 전력 소비를 최소화하기 위한 최적의 CPU/CPU 동작점이 도 3에 나타낸 데이터 중 하나 이상에 기초하여 결정될 수도 있음을 알 것이다. CPU/GPU DCVS 공동 최적화 모듈 (102) 은 최적의 CPU/GPU 동작점을 DCVS 제어기 (112) 에 제공하고, DCVS 제어기 (112) 는 예를 들어 클록득 (116) 및/또는 PMIC (118) 를 통해 CPU (106) 및 GPU (104) 를 조정한다 (도 1 참조).
도 4는 그래픽 프레임 프로세싱 동안 전력 소비를 최소화하기 위해 CPU 및 GPU DCVS를 공동 최적화하기 위한 시스템 (100) 에서 구현되는 방법 (400) 의 실시형태를 예시한 흐름도이다. 블록 (402) 에서, GPU 및 CPU 활성 데이터는 예를 들어 CPU 활성 프로파일러 (302) 및 GPU 활성 프로파일러 (304) 로부터 수신된다. CPU/GPU DCVS 공동 최적화 모듈(들) (102) 은 CPU (106) 및 GPU (104) 에 대한 가능성있는 저전력 모드들 (블록 404) 및/또는 각각의 DCVS 레벨들, 동작 주파수들 등 (블록 406) 을 결정할 수 있거나, 그렇지 않으면 상술한 대로이다. 블록 408에서, CPU/GPU DCVS 공동 최적화 모듈(들) (102) 은 CPU (106) 및 GPU (104) 에 대한 온도 데이터 및 IDDQ 누설 데이터를 수신할 수도 있다. 블록들 402, 404, 406, 및 408에서 수신 및/또는 결정된 데이터 중 하나 이상에 기초하여, CPU/GPU DCVS 공동 최적화 모듈(들) (102) 은 그래픽 워크로드 타입에 따라 적절한 공동 최적화 알고리즘을 선택하고, 그리고 그래픽 프레임 프로세싱 동안 CPU (106) 및 GPU (104) 의 조합된 전력 소비를 최소화하는 CPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 결정한다 (블록 410). 블록 412에서, 최적의 동작점 (예를 들어, DCVS 세팅(들)) 은 DCVS 제어기 (112) 로 송신되고, DCVS 제어기 (112) 는 프레임 데드라인들 내에서 그래픽 워크로드를 프로세싱하기 위해 CPU (106) 및 GPU (104) 의 주파수 및/또는 전압에 대한 조정을 제어한다 (블록 414).
도 5a - 도 5c는 CPU/GPU 직렬화 그래픽 오프로드들에 대한 CPU/GPU DCVS 공동 최적화 방법의 실시형태를 나타낸 타이밍도의 시리즈이다. 도 5a 및 도 5b는 CPU DCVS 및 GPU DCVS를 독립적으로 최적화함으로써 전체 CPU/GPU 전력 소비를 최소화하기 위한 종래의 방법을 나타낸다. 도 5a 는 최저의 CPU 주파수 및 최저의 GPU 주파수를 포함하는 제 1 의 시나리오를 나타낸다.
도 5a에 나타낸 바와 같이, CPU 주파수는 800 MHz이고 GPU 주파수는 579 MHz 이다. 워크로드와 연관된 제 1 의 세개의 프레임들 (즉, 각각 프레임들 500, 502, 504 로 식별되는 프레임 n, 프레임 (n + 1), 및 프레임 (n + 2)) 에 있어서 직렬화된 워크로드가 예시된다. 도면 부호 506a1, 506a2, 및 506a3은 각 프레임 (500, 502 및 504) 에서의 CPU 프로세싱을 나타내는 한편, 도면 부호 508a1, 508a2, 및 508a3은 GPU 프로세싱을 나타낸다. 도 5a에 도시된 바와 같이, 프레임 (500) 에서, GPU 프로세싱 (508a1) 은 CPU 프로세싱 (506a1) 이후에 일어난다. GPU 프로세싱 (508a1) 이 완료되면, 출력이 디스플레이 (110) 에 제공된다. 프레임 (502) 에서, GPU 프로세싱 (508a2) 은 CPU 프로세싱 (506a2) 이후에 일어난다. GPU 프로세싱 (508a2) 이 완료되면, 출력이 디스플레이 (110) 에 제공된다. 프레임 (504) 에서, GPU 프로세싱 (508a3) 은 CPU 프로세싱 (506a3) 이후에 일어난다. GPU 프로세싱 (508a3) 이 완료되면, 출력이 디스플레이 (110) 에 제공된다. 도 5a의 시나리오 1에 대한 시물레이팅된 전력 소비 데이터는 총 전력 소비 = CPU (559 mW) + GPU (1205 mW) = 1764 mW 임을 나타낸다.
도 5b는 최고의 CPU 주파수 및 최고의 GPU 주파수를 포함하는 제 2 의 시나리오를 나타낸다. 도 5b에 나타낸 바와 같이, CPU 주파수는 2200 MHz이고 GPU 주파수는 625 MHz 이다. 또, 제 1 의 세개의 프레임들 (500, 502, 504) 에 있어서 직렬화된 워크로드가 예시된다. 도면 부호 506b1, 506b2, 및 506b3은 각 프레임 (500, 502 및 504) 에서의 CPU 프로세싱을 나타내는 한편, 도면 부호 508b1, 508b2, 및 508b3은 GPU 프로세싱을 나타낸다. 도 5b의 시나리오 2에 대한 시물레이팅된 전력 소비 데이터는 총 전력 소비 = CPU (783 mW) + GPU (1206 mW) = 1988 mW 임을 나타낸다. 도 5a와 비교하여, 각각의 블록들의 폭은 프로세싱 시간의 양에 비례함을 이해해야 한다. (최저의 주파수에서 프로세싱되는) 도 5a의 블록들과 비교하여, 도 5b의 블록들은 상위 주파수로 인해 적은 프로세싱 시간을 사용한다. 시물레이팅된 데이터는 시나리오 1 (도 5a) 이 시나리오 2 (도 5b) 보다 전력 소비를 더 양호하게 최적화한다는 것을 나타낸다.
도 5c는 시스템 (100) 의 예시적인 구현예에서 직렬화된 워크로드의 동일한 세개의 프레임들 (500, 502, 505) 을 나타낸다. 이러한 제 3 의 시나리오에서, CPU 주파수 및 GPU 주파수는 상술한 바와 같이 연결하여 최적화된다. 도 5c는, 상술한 바와 같이, 공동 최적화 접근법이 도 5a (즉, CPU와 GPU 모두의 최저의 주파수) 및 도 5b (즉, CPU와 GPU 모두의 최고의 주파수) 에 나타낸 종래의 접근법보다 낮은 전체의 전력 소비를 제공한다는 것을 나타낸다. 도 5c의 예에서, 전체 전력 소비는 최소화되며, CPU 주파수는 1000 MHz이고 GPU 주파수는 475 MHz 이다. 도 5c의 시나리오 3에 대한 시물레이팅된 전력 소비 데이터는 총 전력 소비 = CPU (554 mW) + GPU (1204 mW) = 1757 mW 임을 나타낸다. 시나리오 3의 공동 최적화 접근법 (도 5c) 은 시나리오 1 및 2 (도 5a 및 도 5b) 의 종래 방법 (도 5a 및 도 5b) 과 비교하여 최저의 전력 소비를 초래한다.
도 6 - 8은 예시적인 직렬화된 워크로드에서 GPU 및 CPU DCVS 레벨들의 다양한 조합들에 대해 추정된 GPU 및 CPU 전력 소비를 예시하는 데이터 데이블들을 포함한다. 조합된 CPU/GPU 전력 소비가 예시적인 CPU/GPU 주파수 공간에서 비선형이고, 컨벡스 관계라는 것을 데이터 테이블들이 나타낸다는 것을 이해해야 한다. 각각의 데이터 테이블은 주파수 및 활성 시간의 다양한 조합에 따라 추정된 평균의 CPU 및 GPU 전력을 나타낸다. 도 6은 CPU (106) 와 GPU (104) 의 온도가 대략 섭씨 55도라는 제 1 의 예를 나타낸다. 도 7은 CPU (106) 와 GPU (104) 의 온도가 대략 섭씨 85도라는 제 2 의 예를 나타낸다. 도 8은 CPU (106) 의 온도가 대략 섭씨 55도이고 GPU (104) 의 온도가 대략 섭씨 80도라는 제 3 의 예를 나타낸다.
도 6 - 8 의 각각에서, GPU 조합들은 각 테이블 좌측의 세개의 행들에 나열되어 있고, CPU 조합들은 각 테이블 우측의 세개의 열들에 나열되어 있다. 회색으로 표시된 셀들은 다양한 조합에 따라 추정된 총 CPU 및 GPU 전력을 나타낸다. 각 테이블에서 블랙으로 표시된 셀은 조합된 CPU 및 GPU 전력 소비를 최소화하기 위한 CPU/GPU 주파수 공간에서 최적의 동작점을 식별한다. 도 6-8은 최적의 동작점이 CPU 및 GPU 온도 변화에 따라 변화한다는 것을 보여주며, 이것은 도 3 및 도 4의 방법이 CPU와 GPU의 최적 동작점을 결정하는 IDDQ (누설) 및 온도 정보를 이용하는 이유이다.
CPU/GPU DCVS 공동 최적화 모듈(들) (102) 은 임의의 원하는 주파수 공간 내에서 및 상술된 입력 데이터 중 임의의 데이터에 기초하여 각각의 CPU 및 GPU 전력을 추정하도록 구성될 수 있음을 이해해야 한다. 더욱이, 다양한 최적화 알고리즘이 채용될 수도 있다. 도 9는 구배 하강 검색 방법의 예시적인 구현을 나타낸다. CPU 동작 주파수 (DCVS) 레벨들은 수직 점선들 (906) 에 의해 x-축 (902) 을 따라 표시된다. GPU 동작 주파수 (DCVS) 레벨들은 수평 점선들 (908) 에 의해 y-축 (904) 을 따라 표시된다. 라인들 (908 및 906) 의 교차점은 CPU 및 GPU DCVS 레벨들을 공동 최적화하기 위한 이용가능한 동작점들을 정의한다.
도 9의 예에서, 동작점 (910) (흑색 원형으로 도시) 은 CPU (106) 및 GPU (104) 의 현재의 동작점을 나타낸다. 최적화 알고리즘은, 저전력 동작점이 있는 경우를 결정하기 위해 인접하는 DCVS 동작점들의 전력 소비를 추정하도록 구성될 수도 있다. 동작점들 (912) (X로 표시) 은 보다 낮은 전체의 전력 소비를 수득하지만 프레임 데드라인들을 충족하지 않으며, 이에따라 고려되지 않는다고 결정될 수도 있다. 삼각형 경계 영역은 프레임 프로세싱 데드라인들을 충족할 수도 있는 CPU/GPU DCVS 레벨들의 조합들을 나타낸다. 동작점들 (914) (백색 원형으로 도시) 은 보다 낮은 전체의 전력 소비를 수득하고 프레임 데드라인들을 충족하도록 결정될 수도 있다. 하지만, 동작점 (916) (회색으로 표시된 원형으로 도시) 은, 프레임 데드라인을 충족할 뿐만 아니라 모든 인접하는 동작점들의 최저의 전체 조합된 CPU/GPU 전력 소비를 수득하기 때문에 최적의 새로운 동작점으로서 식별될 수도 있다. 당업자는, 예를 들어, 다른 최적화 방법들은 브랜치 앤드 바운드 트리 검색 (branch and bound tree search) 또는 임의의 다른 바람직한 방법을 포함한 다른 최적화 방법들이 구현될 수도 있음을 이해할 것이다.
도 10은 CPU/GPU 병렬화 그래픽 워크로드를 위해 CPU 및 GPU DCVS 레벨들을 공동 최적화하기 위한 도 1의 시스템에서 구현된 방법 (1000) 의 실시형태를 예시한 흐름도이다. 블록 1002에서, CPU/GPU DCVS 공동 최적화 모듈(들) (102) 은 상술된 방식으로 병렬화 워크로드를 검출한다. 블록 1004에서, CPU 및 CPU DCVS 레벨들의 최적의 조합은, 병렬화 워크로드에 대한 CPU (106) 및 GPU (104) 의 조합된 전력 소비를 최소화하는 입력 데이터 중 임의의 데이터에 기초하여 결정될 수도 있다 (도 3). 시스템 (100) 은 또한 공통의 하드웨어 자원들 (하드웨어 디바이스들 (118) - 도 1) 의 유휴 시간을 증가시키기 위한 적절한 DCVS 레벨들 또는 다른 동작 조건들을 결정할 수도 있다. 도 11b에 도시된 바와 같이, 병렬화 CPU/GPU 워크로드 및 공통의 하드웨어 자원들에 대한 프로세싱은 디스플레이 (110) 에 대한 디스플레이 드라이버로부터 수직 동기화 (Vsync) 신호 (1109) 에 따라 동기화될 수도 있다. 도 11a는 수직 동기화가 병렬화 워크로드라기 보다는 직렬화 워크로드에 대해 채용되어 있는 비교예를 나타낸다. (도 11b에 나타낸 바와 같이) 공동 최적화된 CPU/GPU 병렬화 워크로드와 수직 동기화하는 것을 포함함으로써, 공통의 하드웨어 자원들의 유휴 시간이 상당히 증가되어, 공동 최적화된 CPU/GPU DCVS 레벨들을 갖는 공통의 하드웨어 자원들의 훨신 더 효율적인 사용을 수득할 수 있음을 이해해야 한다.
도 11a 및 도 11b를 참조하여, 프레임들 (1102, 1104, 1106, 및 1108) 동안의 CPU 프로세싱은 도면 부호 (1110a, 1110b, 1110c, 및 1110d) 로 나타내진다. 도 11a의 GPU 프로세싱 (직렬화 워크로드) 은 도면 부호 (1112a, 1112b, 1112c, 및 1112d) 로 나타내진다. 도 11b의 GPU 프로세싱 (병렬화 워크로드) 은 도면 부호 (1112a, 1112b, 및 1112c) 로 나타내지며, 이는 병렬화 워크로드에 내재하는 하나의 프레임 지연을 설명한다. 프레임들 (1102, 1104, 1106, 및 1108) 동안의 공통의 하드웨어 자원들을 위한 프로세싱은 각각 도면 부호 (1114a, 1114b, 1114c, 및 1114d) 로 나타내진다. 도 11b는 수직 동기화를 CPU/GPU 병렬화 워크로드와 조합함으로써, 공통의 하드웨어 자원들의 유휴 시간이 증가될 수도 있음을 나타낸다 (도 11a에서보다 도 11b의 보다 협소한 프로세싱 블록들에 의해 나타냄).
상기 언급된 바와 같이, 시스템 (100) 은 임의의 바람직한 컴퓨터 시스템에 통합될 수도 있다. 도 12는 예시적인 휴대용 컴퓨팅 디바이스 (PCD; 1200) 에 통합된 시스템 (100) 을 도시한다. 시스템 (100) (예를 들어, CPU/GPU DCVS 공동 최적화 모듈(들) (102), CPU (106), GPU (104)) 의 소정 컴포넌트들이 SoC (322) (도 12) 상에 포함될 수도 있는 한편, 다른 컴포넌트들 (예를 들어, 메모리 (126), 디스플레이 (110)) 이 SoC (322) 에 커플링된 외부 컴포넌트들일 수도 있음을 쉽게 이해할 것이다. SoC (322) 는 멀티코어 CPU (1202) 를 포함할 수도 있다. 멀티코어 CPU (1202) 는 제 0 코어 (1210), 제 1 코어 (1212), 및 제 N 코어 (1214) 를 포함할 수도 있다. 코어들 중 하나는 CPU (106) 를 포함하는 다른 것들 중 하나 이상과 GPU (104) 를 포함할 수도 있다.
디스플레이 제어기 (328) 및 터치스크린 제어기 (330) 는 CPU (1202) 에 커플링될 수도 있다. 궁극적으로, 온 칩 시스템 (322) 의 외부에 있는 터치스크린 디스플레이 (1206) 는 디스플레이 제어기 (328) 및 터치스크린 제어기 (330) 에 커플링될 수도 있다.
도 12는 비디오 인코더 (334) (예컨대 PAL (phase alternating line) 인코더, SECAM (sequential color a memoire) 인코더, 또는 NTSC (national television system(s) committee) 인코더) 가 멀티코어 CPU (1202) 에 커플링된다는 것을 추가로 도시한다. 추가로, 비디오 증폭기 (336) 가 비디오 인코더 (334) 및 터치스크린 디스플레이 (1206) 에 커플링된다. 또한, 비디오 포트 (338) 가 비디오 증폭기 (336) 에 커플링된다. 도 12에 도시된 바와 같이, 범용 직렬 버스 ("USB") 제어기 (340) 가 멀티코어 CPU (1202) 에 커플링된다. 또한, USB 포트 (342) 는 USB 제어기 (340) 에 커플링된다. 메모리 (104) 및 가입자 아이덴티티 모듈 (SIM) 카드 (346) 는 또한 멀티코어 CPU (1202) 에 커플링될 수도 있다. 메모리 (104) 는 SoC (322) 에 커플링되거나 또는 SoC (322) 상에 상주할 수 있다. 메모리 (104) 는 DRAM 메모리 시스템을 포함할 수도 있다.
또, 도 12에 도시된 바와 같이, 디지털 카메라 (348) 는 멀티코어 CPU (1202) 에 커플링될 수도 있다. 예시적인 양태에서, 디지털 카메라 (348) 는 전하 결합 소자 (CCD) 카메라 또는 상보적 금속 산화물 반도체 (CMOS) 카메라이다.
도 12에 추가로 도시된 바와 같이, 스테레오 오디오 코더-디코더 (코덱)( 350) 가 멀티코어 CPU (1202) 에 커플링될 수도 있다. 또한, 오디오 증폭기 (352) 가 스테레오 오디오 코덱 (350) 에 커플링될 수도 있다. 예시적인 양태에 있어서, 제 1 스테레오 스피커 (354) 및 제 2 스테레오 스피커 (356) 가 오디오 증폭기 (352) 에 커플링된다. 도 12는, 마이크로폰 증폭기 (358) 가 또한 스테레오 오디오 코덱 (350) 에 커플링될 수도 있다는 것을 도시한다. 부가적으로, 마이크로폰 (360) 이 마이크로폰 증폭기 (358) 에 커플링될 수도 있다. 특정 양태에서, 주파수 변조 (FM) 라디오 튜너 (362) 가 스테레오 오디오 코덱 (350) 에 커플링될 수도 있다. 또한, FM 안테나 (364) 가 FM 라디오 튜너 (362) 에 커플링된다. 추가로, 스테레오 헤드폰들 (366) 이 스테레오 오디오 코덱 (350) 에 커플링될 수도 있다.
도 12는 무선 주파수 (RF) 트랜시버 (368) 가 멀티코어 CPU (1202) 에 커플링될 수도 있음을 추가로 도시한다. RF 스위치 (370) 가 RF 트랜시버 (368) 및 RF 안테나 (372) 에 커플링될 수도 있다. 키패드 (204) 가 멀티코어 CPU (1202) 에 커플링될 수도 있다. 또한, 마이크로폰을 갖는 모노 헤드셋 (376) 이 멀티코어 CPU (1202) 에 커플링될 수도 있다. 추가로, 바이브레이터 디바이스 (378) 가 멀티코어 CPU (1202) 에 커플링될 수도 있다.
도 12는 또한, 전원 (380) 이 SoC (322) 에 커플링될 수도 있다는 것을 도시한다. 특정 양태에서, 전원 (380) 은 전력을 요구하는 PCD (1200) 의 다양한 컴포넌트들에 전력을 제공하는 직류 (DC) 전원이다. 추가로, 특정 양태에 있어서, 전원은, AC 전력 소스에 접속되는 교류 (AC)-DC 변압기로부터 도출되는 DC 전원 또는 재충전식 DC 배터리이다.
도 12는, PCD (1200) 가 또한 데이터 네트워크 (예컨대 로컬 영역 네트워크, 개인 영역 네트워크, 또는 임의의 다른 네트워크) 를 액세스하는데 사용될 수도 있는 네트워크 카드 (388) 를 포함할 수도 있다는 것을 추가로 표시한다. 네트워크 카드 (388) 는 블루투스 네트워크 카드, WiFi 네트워크 카드, 개인 영역 네트워크 (PAN) 카드, 개인 영역 네트워크 초저전력 기술 (PeANUT) 네트워크 카드, 또는 당업계에 잘 알려진 임의의 다른 네트워크 카드일 수도 있다. 추가로, 네트워크 카드 (388) 는 칩 내에 통합될 수도 있다 (즉 네트워크 카드 (388) 는 칩 내의 완전 솔루션일 수도 있고, 별개의 네트워크 카드 (388) 가 아닐 수도 있다).
도 12에 도시된 바와 같이, 터치스크린 디스플레이 (1206), 비디오 포트 (338), USB 포트 (342), 카메라 (348), 제 1 스테레오 스피커 (354), 제 2 스테레오 스피커 (356), 마이크로폰 (360), FM 안테나 (364), 스테레오 헤드폰들 (366), RF 스위치 (370), RF 안테나 (372), 키패드 (374), 모노 헤드셋 (376), 바이브레이터 (378), 및 전원 (380) 은 SoC (322) 외부에 있을 수도 있다.
본원에서 기재된 방법 단계들 중 하나 이상은, 전술된 모듈들과 같은 컴퓨터 프로그램 명령들로서 메모리에 저장될 수도 있음을 이해해야 한다. 이들 명령들은, 본원에 기재된 방법들을 수행하기 위해 상응하는 모듈과 조합하여 또는 협력하여 임의의 적합한 프로세서에 의해 실행될 수도 있다.
본 명세서에 설명된 프로세스들 또는 프로세스 플로우들에서의 소정 단계들은 자연스럽게, 본 발명이 설명된 바와 같이 기능하도록 다른 것들보다 선행한다. 하지만, 본 발명은, 그러한 순서 또는 시퀀스가 본 발명의 기능을 변경하지 않는다면, 설명된 단계들의 순서로 한정되지 않는다. 즉, 일부 단계들은 본 발명의 범위 및 사상으로부터 일탈함없이 다른 단계들 이전에, 그 이후에 또는 그와 병렬로 (실질적으로 동시에) 수행될 수도 있음이 이해된다. 일부 경우들에 있어서, 소정 단계들은 본 발명으로부터 일탈함없이 생략되거나 또는 수행되지 않을 수도 있다. 추가로, "그 이후", "그 후", "다음" 등과 같은 단어들은 단계들의 순서를 한정하도록 의도되지 않는다. 이들 단어들은 단순히, 예시적인 방법의 설명을 통해 독자를 가이드하도록 사용된다.
부가적으로, 프로그래밍에 있어서의 당업자는, 예를 들어, 본 명세서에 있어서의 플로우 차트들 및 관련 설명에 기초하여 어려움없이, 개시된 발명을 구현하기 위해 컴퓨터 코드를 기입하거나 적절한 하드웨어 및/또는 회로들을 식별할 수 있다.
따라서, 프로그램 코드 명령들 또는 상세한 하드웨어 디바이스들의 특정 세트의 개시는 본 발명을 제조 및 이용하는 방법의 적절한 이해에 필수적인 것으로 고려되지 않는다. 청구된 컴퓨터 구현 프로세스들의 본 발명의 기능은, 다양한 프로세스 플로우들을 예시할 수도 있는 도면들과 함께 상기 설명에서 보다 상세히 설명된다.
하나 이상의 예시적인 양태들에서, 기재된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 기능들은 하드웨어 기반 프로세싱 유닛에 의해 실행되는 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 저장 매체 상에 저장되거나 또는 통신 매체를 통해 송신될 수도 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체들 및 통신 매체들의 양자를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다. 비제한적인 예로써, 이러한 컴퓨터 판독 가능한 매체는 RAM, ROM, EEPROM, NAND 플래시, NOR 플래시, M-RAM, P-RAM, R-RAM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망되는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다.
또한, 임의의 접속이 통신 매체로 적절히 칭해진다. 예를 들어, 동축 케이블, 광섬유 케이블, 꼬임쌍선, 디지털 가입자 라인 ("DSL"), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 소프트웨어가 송신된다면, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 통신 매체의 정의에 포함된다.
본 명세서에서 사용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 ("CD"), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 ("DVD"), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서 디스크 (disk) 는 보통 데이터를 자기적으로 재생하지만 디스크 (disc) 는 레이저를 이용하여 데이터를 광학적으로 재생한다. 위의 조합들도 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
대안의 실시형태들은 본 발명의 사상 및 범위로부터 벗어나지 않고도 본 발명이 속하는 분야의 당업자에게 명백하게 될 것이다. 따라서, 선택된 양태들이 상세히 도시 및 설명되었지만, 다양한 치환물들 및 변경물들이 다음의 청구항들에 의해 정의되는 바와 같은 본 발명의 사상 및 범위로부터 벗어나지 않으면서 그 안에서 행해질 수도 있음이 이해될 것이다.

Claims (30)

  1. 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 방법으로서,
    중앙 프로세싱 유닛 (CPU) 및 그래픽 프로세싱 유닛 (GPU) 에 의해 협업하여 수행되도록 CPU/GPU 연결 워크로드 (joint CPU/GPU workload) 의 그래픽 프레임 프로세싱을 개시하는 단계;
    상기 CPU/GPU 연결 워크로드와 연관된 워크로드 타입을 검출하는 단계;
    검출된 상기 워크로드 타입에 기초하여 적용되는 동적 클록 및 전압/주파수 스케일링 (dynamic clock and voltage/frequency scaling; DCVS) 알고리즘들의 세트를 결정하는 단계;
    CPU 활성 데이터 및 GPU 활성 데이터를 수신하는 단계;
    적용된 상기 DCVS 알고리즘들의 세트를 이용하여 상기 GPU 및 상기 CPU에 대한 하나 이상의 이용가능한 DCVS 레벨들을 결정하는 단계; 및
    상기 CPU 및 GPU 활성 데이터에 기초하여, 상기 그래픽 프레임 프로세싱 동안 상기 CPU 및 상기 GPU의 조합된 전력 소비를 최소화하는 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 상기 하나 이상의 이용가능한 DCVS 레벨들로부터 선택하는 단계로서, 상기 GPU DCVS 레벨 및 CPU DCVS 레벨의 상기 최적의 조합은 프레임 데드라인을 충족하면서 상기 CPU/GPU 연결 워크로드 동안 상기 CPU 및 상기 GPU의 상기 조합된 전력 소비를 최소화하는 CPU/GPU 주파수 공간에서 동작점을 포함하는, 상기 선택하는 단계를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 CPU 활성 데이터 및 상기 GPU 활성 데이터는 상기 CPU 및 상기 GPU와 연관된 각각의 활성 프로파일러로부터 수신되는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 CPU 및 GPU 활성 데이터는 프로세서 워크로드, 활성 시간, 유휴 시간, 및 대기 시간 중 하나 이상을 규정하는 데이터를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 방법.
  4. 제 1 항에 있어서,
    적어도 하나의 CPU 온도 센서 및 적어도 하나의 GPU 온도 센서 중 하나 이상으로부터 온도 데이터를 수신하는 단계; 및
    상기 GPU 및 상기 CPU 중 하나 이상과 연관된 정적 상태의 공급 전류 누설 (quiescent state supply current leakage; IDDQ) 데이터를 수신하는 단계를 더 포함하고,
    상기 GPU 및 CPU DCVS 레벨들의 상기 최적의 조합은 상기 CPU 및 GPU 활성 데이터 및 상기 온도 데이터 및 상기 IDDQ 데이터 중 하나 이상에 기초하여 선택되는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 워크로드 타입은 CPU/GPU 직렬화 워크로드를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 방법.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 워크로드 타입은 CPU/GPU 병렬화 워크로드를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 방법.
  8. 제 7 항에 있어서,
    상기 CPU/GPU 병렬화 워크로드에 대한 상기 조합된 전력 소비를 최소화하는 상기 GPU DCVS 레벨 및 상기 CPU DCVS 레벨의 상기 최적의 조합은, 공통의 하드웨어 디바이스 프로세싱을 위한 유휴 시간을 증가시키고,
    상기 방법은:
    상기 GPU DCVS 레벨 및 상기 CPU DCVS 레벨의 상기 최적의 조합을 선택하는 단계 이후에,
    디스플레이 드라이버로부터 수신된 수직 동기화 신호를 이용하여 상기 CPU/GPU 병렬화 워크로드 및 상기 공통의 하드웨어 디바이스 프로세싱을 동기화하는 단계를 더 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 방법.
  9. 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템으로서,
    중앙 프로세싱 유닛 (CPU) 및 그래픽 프로세싱 유닛 (GPU) 에 의해 협업하여 수행되도록 CPU/GPU 연결 워크로드의 그래픽 프레임 프로세싱을 개시하기 위한 수단;
    상기 CPU/GPU 연결 워크로드와 연관된 워크로드 타입을 검출하기 위한 수단;
    검출된 상기 워크로드 타입에 기초하여 적용되는 동적 클록 및 전압/주파수 스케일링 (DCVS) 알고리즘들의 세트를 결정하기 위한 수단;
    CPU 활성 데이터 및 GPU 활성 데이터를 수신하기 위한 수단;
    적용된 상기 DCVS 알고리즘들의 세트를 이용하여 상기 GPU 및 상기 CPU에 대한 하나 이상의 이용가능한 DCVS 레벨들을 결정하기 위한 수단; 및
    상기 CPU 및 GPU 활성 데이터에 기초하여, 상기 그래픽 프레임 프로세싱 동안 상기 CPU 및 상기 GPU의 조합된 전력 소비를 최소화하는 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 상기 하나 이상의 이용가능한 DCVS 레벨들로부터 선택하기 위한 수단으로서, 상기 GPU DCVS 레벨 및 CPU DCVS 레벨의 상기 최적의 조합은 프레임 데드라인을 충족하면서 상기 CPU/GPU 연결 워크로드 동안 상기 CPU 및 상기 GPU의 상기 조합된 전력 소비를 최소화하는 CPU/GPU 주파수 공간에서 동작점을 포함하는, 상기 선택하기 위한 수단을 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  10. 제 9 항에 있어서,
    상기 CPU 활성 데이터 및 상기 GPU 활성 데이터는 상기 CPU 및 상기 GPU와 연관된 각각의 활성 프로파일러로부터 수신되는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  11. 제 9 항에 있어서,
    상기 CPU 및 GPU 활성 데이터는 프로세서 워크로드, 활성 시간, 유휴 시간, 및 대기 시간 중 하나 이상을 규정하는 데이터를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  12. 제 9 항에 있어서,
    적어도 하나의 CPU 온도 센서 및 적어도 하나의 GPU 온도 센서 중 하나 이상으로부터 온도 데이터를 수신하기 위한 수단; 및
    상기 GPU 및 상기 CPU 중 하나 이상과 연관된 정적 상태의 공급 전류 누설 (IDDQ) 데이터를 수신하기 위한 수단을 더 포함하고,
    상기 GPU 및 CPU DCVS 레벨들의 상기 최적의 조합은 상기 CPU 및 GPU 활성 데이터 및 상기 온도 데이터 및 상기 IDDQ 데이터 중 하나 이상에 기초하여 선택되는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  13. 제 9 항에 있어서,
    상기 워크로드 타입은 CPU/GPU 직렬화 워크로드를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  14. 삭제
  15. 제 9 항에 있어서,
    상기 워크로드 타입은 CPU/GPU 병렬화 워크로드를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  16. 제 15 항에 있어서,
    공통의 하드웨어 디바이스와 연관된 유휴 시간을 증가시키기 위해 상기 CPU 및 GPU에 의해 사용된 상기 공통의 하드웨어 디바이스의 프로세싱을 최적화하기 위한 수단; 및
    디스플레이 드라이버로부터 수신된 수직 동기화 신호를 이용하여 병렬 CPU 및 GPU 워크로드들 및 상기 공통의 하드웨어 디바이스 프로세싱을 동기화하기 위한 수단을 더 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  17. 컴퓨터 판독가능 저장 매체에 내장되고 그래픽 프레임 프로세싱에서 전력 소비를 최소화하기 위한 프로세서에 의해 실행된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은:
    중앙 프로세싱 유닛 (CPU) 및 그래픽 프로세싱 유닛 (GPU) 에 의해 협업하여 수행되도록 CPU/GPU 연결 워크로드의 그래픽 프레임 프로세싱을 개시하고;
    상기 CPU/GPU 연결 워크로드와 연관된 워크로드 타입을 검출하고;
    검출된 상기 워크로드 타입에 기초하여 적용되는 동적 클록 및 전압/주파수 스케일링 (DCVS) 알고리즘들의 세트를 결정하고;
    CPU 활성 데이터 및 GPU 활성 데이터를 수신하고;
    적용된 상기 DCVS 알고리즘들의 세트를 이용하여 상기 GPU 및 상기 CPU에 대한 하나 이상의 이용가능한 DCVS 레벨들을 결정하고; 그리고
    상기 CPU 및 GPU 활성 데이터에 기초하여, 상기 그래픽 프레임 프로세싱 동안 상기 CPU 및 상기 GPU의 조합된 전력 소비를 최소화하는 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 상기 하나 이상의 이용가능한 DCVS 레벨들로부터 선택하는 것으로서, 상기 GPU DCVS 레벨 및 CPU DCVS 레벨의 상기 최적의 조합은 프레임 데드라인을 충족하면서 상기 CPU/GPU 연결 워크로드 동안 상기 CPU 및 상기 GPU의 상기 조합된 전력 소비를 최소화하는 CPU/GPU 주파수 공간에서 동작점을 포함하는, 상기 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 선택하도록
    구성된 로직을 포함하는, 컴퓨터 프로그램.
  18. 제 17 항에 있어서,
    상기 CPU 활성 데이터 및 상기 GPU 활성 데이터는 상기 CPU 및 상기 GPU와 연관된 각각의 활성 프로파일러로부터 수신되는, 컴퓨터 프로그램.
  19. 제 17 항에 있어서,
    상기 CPU 및 GPU 활성 데이터는 프로세서 워크로드, 활성 시간, 유휴 시간, 및 대기 시간 중 하나 이상을 규정하는 데이터를 포함하는, 컴퓨터 프로그램.
  20. 제 17 항에 있어서,
    적어도 하나의 CPU 온도 센서 및 적어도 하나의 GPU 온도 센서 중 하나 이상으로부터 온도 데이터를 수신하고; 그리고
    상기 GPU 및 상기 CPU 중 하나 이상과 연관된 정적 상태의 공급 전류 누설 (IDDQ) 데이터를 수신하도록 구성되고,
    상기 GPU 및 CPU DCVS 레벨들의 상기 최적의 조합은 상기 CPU 및 GPU 활성 데이터 및 상기 온도 데이터 및 상기 IDDQ 데이터 중 하나 이상에 기초하여 선택되는, 컴퓨터 프로그램.
  21. 제 17 항에 있어서,
    상기 워크로드 타입은 CPU/GPU 직렬화 워크로드를 포함하는, 컴퓨터 프로그램.
  22. 삭제
  23. 제 17 항에 있어서,
    상기 워크로드 타입은 CPU/GPU 병렬화 워크로드를 포함하는, 컴퓨터 프로그램.
  24. 제 23 항에 있어서,
    공통의 하드웨어 디바이스와 연관된 유휴 시간을 증가시키기 위해 상기 CPU 및 GPU에 의해 사용된 상기 공통의 하드웨어 디바이스의 프로세싱을 최적화하고; 그리고
    디스플레이 드라이버로부터 수신된 수직 동기화 신호를 이용하여 병렬 CPU 및 GPU 워크로드들 및 상기 공통의 하드웨어 디바이스 프로세싱을 동기화하도록 구성된 로직을 더 포함하는, 컴퓨터 프로그램.
  25. 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템으로서,
    중앙 프로세싱 유닛 (CPU), 그래픽 프로세싱 유닛 (GPU), 및 상기 GPU 및 상기 CPU와 통신하는 동적 클록 및 전압/주파수 스케일링 (DCVS) 제어기를 포함하는 시스템 온 칩 (SoC); 및
    CPU/GPU DCVS 공동 최적화 모듈을 포함하고,
    상기 CPU/GPU DCVS 공동 최적화 모듈은:
    상기 CPU 및 상기 GPU에 의해 협업하여 수행되도록 CPU/GPU 연결 워크로드의 그래픽 프레임 프로세싱을 개시하고;
    상기 CPU/GPU 연결 워크로드에 기초하여 적용되는 DCVS 알고리즘들의 세트를 결정하고; 그리고
    상기 CPU 및 GPU 활성 데이터에 기초하여, 상기 그래픽 프레임 프로세싱 동안 상기 CPU 및 상기 GPU의 조합된 전력 소비를 최소화하는, 상기 DCVS 제어기에 대한 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 적용된 상기 DCVS 알고리즘들의 세트를 이용하여 결정하는 것으로서, 상기 GPU DCVS 레벨 및 CPU DCVS 레벨의 상기 최적의 조합은 프레임 데드라인을 충족하면서 상기 CPU/GPU 연결 워크로드 동안 상기 CPU 및 상기 GPU의 상기 조합된 전력 소비를 최소화하는 CPU/GPU 주파수 공간에서 동작점을 포함하는, 상기 GPU DCVS 레벨 및 CPU DCVS 레벨의 최적의 조합을 결정하도록 구성되는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  26. 제 25 항에 있어서,
    상기 CPU/GPU 연결 워크로드는 CPU/GPU 병렬화 워크로드를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  27. 제 25 항에 있어서,
    상기 CPU 및 GPU 활성 데이터는 프로세서 워크로드, 활성 시간, 유휴 시간, 및 대기 시간 중 하나 이상을 규정하는 데이터를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  28. 제 25 항에 있어서,
    상기 CPU/GPU DCVS 공동 최적화 모듈은:
    적어도 하나의 CPU 온도 센서 및 적어도 하나의 GPU 온도 센서 중 하나 이상으로부터 온도 데이터를 수신하고; 그리고
    상기 GPU 및 상기 CPU 중 하나 이상과 연관된 정적 상태의 공급 전류 누설 (IDDQ) 데이터를 수신하도록 구성되고,
    상기 GPU 및 CPU DCVS 레벨들의 상기 최적의 조합은 상기 CPU 및 GPU 활성 데이터 및 상기 온도 데이터 및 상기 IDDQ 데이터 중 하나 이상에 기초하여 선택되는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  29. 제 25 항에 있어서,
    워크로드 타입은 CPU/GPU 직렬화 워크로드를 포함하는, 그래픽 프레임 프로세싱에서의 전력 소비를 최소화하기 위한 시스템.
  30. 삭제
KR1020167033209A 2014-04-30 2015-04-29 그래픽 프레임 프로세싱에서 전력 소비를 감소시키기 위한 cpu/gpu dcvs 공동 최적화 KR102380576B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/266,685 US9378536B2 (en) 2014-04-30 2014-04-30 CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing
US14/266,685 2014-04-30
PCT/US2015/028098 WO2015168189A1 (en) 2014-04-30 2015-04-29 Cpu/gpu dcvs co-optimization for reducing power consumption in graphics frame processing

Publications (2)

Publication Number Publication Date
KR20160147964A KR20160147964A (ko) 2016-12-23
KR102380576B1 true KR102380576B1 (ko) 2022-03-29

Family

ID=53177364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167033209A KR102380576B1 (ko) 2014-04-30 2015-04-29 그래픽 프레임 프로세싱에서 전력 소비를 감소시키기 위한 cpu/gpu dcvs 공동 최적화

Country Status (7)

Country Link
US (1) US9378536B2 (ko)
EP (1) EP3137965B1 (ko)
JP (1) JP6412162B2 (ko)
KR (1) KR102380576B1 (ko)
CN (1) CN106258011B (ko)
BR (1) BR112016025031B1 (ko)
WO (1) WO2015168189A1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959198B (zh) * 2011-11-30 2017-09-12 英特尔公司 降低3d工作负荷的功率
US9530174B2 (en) * 2014-05-30 2016-12-27 Apple Inc. Selective GPU throttling
US20160077565A1 (en) * 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Frequency configuration of asynchronous timing domains under power constraints
KR102325453B1 (ko) * 2014-12-04 2021-11-11 삼성전자주식회사 반도체 장치의 동작 방법
US9910475B2 (en) 2014-12-23 2018-03-06 Intel Corporation Processor core power event tracing
US20170045925A1 (en) * 2015-07-24 2017-02-16 Power It Perfect, Inc. Systems and methods of controlling a power supply signal delivered to an electronic device
US10445850B2 (en) * 2015-08-26 2019-10-15 Intel Corporation Technologies for offloading network packet processing to a GPU
KR102375925B1 (ko) * 2015-08-31 2022-03-17 삼성전자주식회사 Cpu의 작동 방법과 상기 cpu를 포함하는 시스템의 작동 방법
KR102452154B1 (ko) * 2015-10-27 2022-10-07 삼성전자주식회사 영상 처리 장치 및 이를 포함하는 표시 시스템
US10108564B2 (en) 2016-03-28 2018-10-23 Qualcomm Incorporated Active and stall cycle based dynamic scaling of processor frequency and bus bandwidth
US10296067B2 (en) * 2016-04-08 2019-05-21 Qualcomm Incorporated Enhanced dynamic clock and voltage scaling (DCVS) scheme
CN107610039A (zh) * 2016-07-12 2018-01-19 联发科技股份有限公司 图像处理方法及图像处理装置
US10776895B2 (en) * 2017-02-10 2020-09-15 Apple Inc. GPU power and performance management
US10290289B2 (en) * 2017-04-01 2019-05-14 Intel Corporation Adaptive multibit bus for energy optimization
US10319065B2 (en) 2017-04-13 2019-06-11 Microsoft Technology Licensing, Llc Intra-frame real-time frequency control
CN107465929B (zh) * 2017-07-21 2019-02-01 山东大学 基于hevc的dvfs控制方法、系统、处理器及存储设备
US10699369B2 (en) * 2017-12-27 2020-06-30 Intel Corporation Intelligent memory DVFS scheme exploiting graphics inter-frame level correlation
WO2020042098A1 (zh) * 2018-08-30 2020-03-05 华为技术有限公司 一种调频方法、装置及计算机可读存储介质
WO2020102929A1 (en) * 2018-11-19 2020-05-28 Alibaba Group Holding Limited Unified power management
US11854433B2 (en) * 2019-02-04 2023-12-26 Pearson Education, Inc. Systems and methods for item response modelling of digital assessments
US11423035B2 (en) 2019-02-04 2022-08-23 Pearson Education, Inc. Scoring system for digital assessment quality with harmonic averaging
US11181969B2 (en) * 2019-04-02 2021-11-23 Dell Products, Lp Method and system for graphics processor unit busy state detection
CN110308784A (zh) * 2019-04-30 2019-10-08 东莞恒创智能科技有限公司 基于Nvidia TX2的CPU、GPU联合调频节能优化方法
US11100698B2 (en) 2019-06-28 2021-08-24 Ati Technologies Ulc Real-time GPU rendering with performance guaranteed power management
CN110365962B (zh) * 2019-07-17 2021-08-17 Oppo广东移动通信有限公司 色域转换处理方法、装置以及电子设备
US11093019B2 (en) 2019-07-29 2021-08-17 Microsoft Technology Licensing, Llc Integrated circuit power domains segregated among power supply phases
US11698812B2 (en) * 2019-08-29 2023-07-11 Intel Corporation System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor
US11409341B2 (en) 2019-10-01 2022-08-09 Intel Corporation Repeating graphics render pattern detection
CN112925592A (zh) 2019-12-05 2021-06-08 超威半导体公司 渲染主页面的内核软件驱动的颜色重新映射
US11194377B2 (en) * 2020-01-21 2021-12-07 Dell Products L.P. System and method for optimizing hardware resources for optimal workload performance
KR20210101663A (ko) 2020-02-10 2021-08-19 삼성전자주식회사 프레임의 생성에 소요된 시간 및 최대 허용 시간에 기반하여 프로세싱 유닛을 제어하는 전자 장치 및 전자 장치의 동작 방법
US11467621B2 (en) * 2020-02-28 2022-10-11 Qualcomm Incorporated Computer processing unit intra-frame clock and voltage scaling based on graphics application awareness
US20220044350A1 (en) * 2020-08-07 2022-02-10 Advanced Micro Devices, Inc. Graphics processing unit with selective two-level binning
CN112306689B (zh) * 2020-11-02 2021-05-11 时代云英(深圳)科技有限公司 一种边缘计算系统及方法
CN114510139A (zh) * 2020-11-16 2022-05-17 深圳市万普拉斯科技有限公司 一种调频方法、装置及电子设备
CN113138655B (zh) * 2021-04-02 2023-11-28 Oppo广东移动通信有限公司 处理器频率的调整方法、装置、电子设备及存储介质
CN117730294A (zh) * 2021-04-26 2024-03-19 索尼半导体解决方案公司 用于图像传感器应用的动态电压和频率缩放
US20210326191A1 (en) * 2021-06-25 2021-10-21 Intel Corporation Methods and apparatus to align media workloads

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3266110B2 (ja) 1998-08-14 2002-03-18 日本電気株式会社 ビデオコントローラ及びその消費電力制御回路
US20090014535A1 (en) 1998-09-11 2009-01-15 Metrologic Instruments, Inc. Remotely-alterable electronic display label employing an electronic ink layer integrated within a stacked-layer architecture employing an antenna layer and an integrated circuit layer supporting an on-board battery power component, and a programmed processor for determining graphical indicia to be displayed by said electronic ink layer in response to electromagnetic signals received from said antenna

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4549652B2 (ja) * 2003-10-27 2010-09-22 パナソニック株式会社 プロセッサシステム
JP4476876B2 (ja) * 2005-06-10 2010-06-09 三菱電機株式会社 並列計算装置
US7529948B2 (en) 2005-08-25 2009-05-05 Apple Inc. Methods and apparatuses for dynamic power estimation
US8566607B2 (en) * 2005-08-26 2013-10-22 International Business Machines Corporation Cryptography methods and apparatus used with a processor
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US7949889B2 (en) * 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing system
US8199158B2 (en) * 2008-06-11 2012-06-12 Intel Corporation Performance allocation method and apparatus
US8671413B2 (en) * 2010-01-11 2014-03-11 Qualcomm Incorporated System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
JP5794010B2 (ja) * 2011-07-19 2015-10-14 富士通株式会社 情報処理装置、制御プログラムおよび制御方法
US9442773B2 (en) * 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
US9129394B2 (en) * 2012-12-14 2015-09-08 Microsoft Technology Licensing, Llc CPU-GPU parallelization
US9477568B2 (en) * 2013-09-27 2016-10-25 International Business Machines Corporation Managing interconnect electromigration effects

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3266110B2 (ja) 1998-08-14 2002-03-18 日本電気株式会社 ビデオコントローラ及びその消費電力制御回路
US20090014535A1 (en) 1998-09-11 2009-01-15 Metrologic Instruments, Inc. Remotely-alterable electronic display label employing an electronic ink layer integrated within a stacked-layer architecture employing an antenna layer and an integrated circuit layer supporting an on-board battery power component, and a programmed processor for determining graphical indicia to be displayed by said electronic ink layer in response to electromagnetic signals received from said antenna

Also Published As

Publication number Publication date
US9378536B2 (en) 2016-06-28
CN106258011A (zh) 2016-12-28
BR112016025031A2 (pt) 2017-08-15
JP6412162B2 (ja) 2018-10-24
CN106258011B (zh) 2019-07-12
JP2017515230A (ja) 2017-06-08
WO2015168189A1 (en) 2015-11-05
KR20160147964A (ko) 2016-12-23
EP3137965A1 (en) 2017-03-08
BR112016025031B1 (pt) 2022-09-20
EP3137965B1 (en) 2019-02-20
US20150317762A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
KR102380576B1 (ko) 그래픽 프레임 프로세싱에서 전력 소비를 감소시키기 위한 cpu/gpu dcvs 공동 최적화
EP3030946B1 (en) Intelligent multicore control for optimal performance per watt
US9626295B2 (en) Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring
KR101799253B1 (ko) 다중 클러스터 이종 프로세서 아키텍처에서 동적 캐시 확장을 제공하기 위한 시스템 및 방법
CN107924225B (zh) 用于动态地调整存储器状态转变定时器的系统和方法
US10064141B2 (en) Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
US9740266B2 (en) Apparatus and method for controlling multi-core of electronic device
US9292356B2 (en) Thread processing on an asymmetric multi-core processor
US20170212581A1 (en) Systems and methods for providing power efficiency via memory latency control
US9507641B1 (en) System and method for dynamic granularity control of parallelized work in a portable computing device (PCD)
US20160147577A1 (en) System and method for adaptive thread control in a portable computing device (pcd)
TW201805809A (zh) 用於異構並行結構的細細微性功率最佳化
US20200326770A1 (en) Sleep management method and device, and computer storage medium
US20180188789A1 (en) Method of operating system-on-chip, system-on-chip performing the same and electronic system including the same
CN108139932B (zh) 关闭关键执行路径的任务信令
US8539132B2 (en) Method and system for dynamically managing a bus of a portable computing device
US11934248B2 (en) Performance and power tuning user interface

Legal Events

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