KR101412342B1 - 인터럽트 전력 관리를 위한 장치 및 방법 - Google Patents
인터럽트 전력 관리를 위한 장치 및 방법 Download PDFInfo
- Publication number
- KR101412342B1 KR101412342B1 KR1020110030384A KR20110030384A KR101412342B1 KR 101412342 B1 KR101412342 B1 KR 101412342B1 KR 1020110030384 A KR1020110030384 A KR 1020110030384A KR 20110030384 A KR20110030384 A KR 20110030384A KR 101412342 B1 KR101412342 B1 KR 101412342B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- media
- processor cores
- cores
- performance
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000000737 periodic effect Effects 0.000 claims description 10
- 238000005259 measurement Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 19
- 230000015654 memory Effects 0.000 description 16
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 241001025261 Neoraja caerulea Species 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
- Stored Programmes (AREA)
Abstract
멀티 코어 프로세싱 시스템의 저전력 동작을 위한 방법 및 장치의 실시예들이 기술된다. 장치는, 예를 들어, 멀티 코어 프로세서의 복수의 프로세서 코어의 하나 이상의 프로세서 코어 상에서 실행하도록 동작하는 미디어 애플리케이션을 검출하고, 멀티 코어 프로세서의 프로세서 코어들의 서브세트를 동적으로 선택하고, 프로세서 코어들의 서브세트 상에서 실행하도록 미디어 애플리케이션을 어피니타이징하도록 동작하는 어피니타이제이션 관리 모듈을 포함한다. 다른 실시예들이 기술되고 청구된다.
Description
본 발명의 실시예들은 일반적으로 멀티 코어 프로세서들을 이용하는 컴퓨팅 시스템들에서 전력 소비를 감소시키도록 설계되는 기술들에 관한 것이다.
현대의 컴퓨팅 시스템들의 성능이 최근 급속하게 증가하였다. 성능이 발전한 하나의 특정 영역이 프로세서 기술이다. 컴퓨팅 시스템의 많은 프로세서는 오늘날 복수의 코어를 포함하고 있다. 성능이 발전한 다른 영역은 미디어 플레이백(media playback)이다. 많은 현대의 컴퓨팅 시스템은 고화질 미디어를 포함하는 다양한 미디어 유형들을 플레이백할 수 있다. 멀티 코어 프로세서들에 의해 제공되는 프로세싱 전력의 증가 및 미디어 플레이백과 연관되는 프로세싱 요구들의 증가는 결과적으로 계속해서 사이즈를 감소시키는 컴퓨팅 시스템들에 대한 전력 소비를 증가시킨다. 멀티 코어 프로세서들의 코어들의 수 및 프로세싱 전력은 계속해서 증가하여, 전력 소비의 감소가 중요한 고려사항이 되었다. 그 결과, 멀티 코어 프로세서들을, 가능하면, 전력을 보존하도록 구성하는 것이 바람직하다. 따라서, 멀티 코어 프로세서 시스템들에 대한 전력 소비를 관리하는 기술에 대한 상당한 요구가 존재한다.
도 1은 장치의 일 실시예를 도시한 도면.
도 2는 제1 로직 다이어그램의 일 실시예를 도시한 도면.
도 3은 제2 로직 다이어그램의 일 실시예를 도시한 도면.
도 4는 시스템의 일 실시예를 도시한 도면.
도 2는 제1 로직 다이어그램의 일 실시예를 도시한 도면.
도 3은 제2 로직 다이어그램의 일 실시예를 도시한 도면.
도 4는 시스템의 일 실시예를 도시한 도면.
본 발명의 실시예들은 일반적으로 멀티 코어 프로세서들을 이용하는 컴퓨팅 시스템들에서 전력 소비를 감소시키도록 설계되는 기술들에 관한 것이다. 다양한 실시예들은 멀티 코어 프로세서의 복수의 프로세서 코어 중 하나 이상의 프로세서 코어 상에서 실행하도록 동작하는 미디어 애플리케이션을 검출하고, 멀티 코어 프로세서의 프로세서 코어들의 서브세트를 동적으로 선택하고, 프로세서 코어들의 서브세트 상에서 실행하도록 미디어 애플리케이션을 어피니타이징(affinitize)하는 어피니타이제이션 관리 모듈(affinitization management module)을 포함하는 기술들을 제공한다.
시간이 지남에 따라 멀티 코어 프로세서의 이용이 발전하면서, 액티브 작업부하들을 구동하거나 실행할 때 전력 소비는 꾸준히 증가하였다. 비교적 고전력 소비를 일으키는 하나의 특정 영역이 미디어 플레이백이다. 예를 들어, 멀티 코어 프로세서를 갖는 컴퓨팅 시스템에서의 고화질(HD) DVD 영화의 플레이백은 비교적 다량의 전력을 소비한다. 본 명세서에 설명된 특정 실시예들은 미디어 콘텐츠, 미디어 플레이백 및/또는 HD 미디어 콘텐츠 및 플레이백을 언급하지만, 실시예들이 이러한 문맥으로 한정되지 않는다는 것을 이해해야 한다. 본 명세서에 설명된 실시예들은 동기화를 요구하는 개별 데이터 스트림들을 포함하고 및/또는 인터럽트들, 시간 스탬프들 또는 다른 동기화 상세들을 포함하는 임의의 콘텍스트 유형을 포함하여, 임의의 수의 애플리케이션 및 콘텐츠 유형들에 적용가능하다.
다양한 실시예들에서, 미디어 플레이백 동안의 전력 소비는 프로세서가 수행하는 4가지 유형의 프로세싱에 주로 분배될 수 있다. 예를 들어, 프로세서는 일부 실시예들에서 미디어 콘텐츠에 대한 암호화 키들을 보호하기 위해 미디어 애플리케이션이 이용하는 TRS(Tamper Resistance Software)를 실행할 수 있다. 다양한 실시예에서, 프로세서는 또한 미디어 플레이백과 연관되는 비디오를 프로세싱하고 미디어 플레이백과 연관되는 오디오를 디코드할 수 있다. 다양한 실시예에서, 오디오/비디오(A/V) 동기화가 또한 요구될 수 있다. 예를 들어, 프로세서는 비디오 및 오디오 데이터 스트림들을 동기화하기 위해 미디어 애플리케이션에 의해 이용되는 주기적인 미디어 인터럽트들을 프로세싱하도록 요구될 수 있다. 미디어 인터럽트들의 이러한 반복되는 주기적인 프로세싱은 일부 실시예들에서 전력 소비의 증가로 이어질 수 있다.
종래의 컴퓨팅 시스템들에서, 미디어 애플리케이션들은 주기적인 인터럽트들을 생성하도록 타이머를 프로그래밍함으로써 A/V 동기화를 구현할 수 있다. 일부 실시예들에서, 인터럽트들은 1ms당 한번만큼 종종 발생할 수 있다. 인터럽트가 발생할 때마다, 미디어 애플리케이션은 비디오 및 오디오 패킷들의 시간 스탬프들을 체크하고, 비디오 및 오디오 패킷들의 다음 그룹을 프로세싱할 수 있어, 2개의 스트림이 동기화를 유지하도록 보장한다. 매 1ms마다 생성되는 인터럽트는 일부 실시예들에서 비디오 및 오디오 데이터 스트림들 사이의 엄격한(tighter) 동기화를 보장하는 데 이용될 수 있다. 종래의 시스템들에서, 각각의 인터럽트는 각각의 이용가능한 프로세서 코어에 전달될 수 있다. 일부 실시예들에서, 코어가 인터럽트를 수신하면, 코어는 프로세서 이용에 추가할 수 있는 인터럽트 디스패처(dispatcher)를 실행한다. 다양한 실시예에서, 프로세서의 코어들의 수가 많을수록, (모든 프로세서 코어에서의) 전체 인터럽트 레이트(interrupt rate)가 높아지고, 따라서, A/V 동기화 인터럽트들을 프로세싱하도록 요구되는 프로세서 이용 오버헤드(processor utilization overhead)가 높아진다.
미디어 플레이백 동안 이용 오버헤드 및 전력 소비를 감소시키기 위한 종래의 방법들은 가능하게는 또한 오디오 데이터 스트림에 대한 개별 오디오 인터럽트를 인에이블하는 것에 의해 예를 들어, 1ms로부터 10ms까지 인터럽트 주기를 연장하는 것을 포함할 수 있다. 일부 실시예들에서, 이것은 프로세서 인터럽트 오버헤드를 감소시킬 수 있지만, 또한 오디오 및 비디오 데이터 스트림들의 동기화에 부정적인 영향을 미칠 수 있고, 또한 미디어 콘텐츠를 볼 때 사용자 경험 및 플레이백의 품질을 감소시킬 수 있다. 이와 같이, 미디어 애플리케이션을 구동하거나 실행하는 것과 같은 액티브 작업 부하들을 실행하고 있는 멀티 코어 프로세서의 전력 소비를 제한하기 위한 효율적인 수단이 오늘날 존재하지 않는다. 따라서, 본 명세서에 설명된 다양한 실시예들은 미디어 또는 다른 스트림 동기화에 영향을 미치지 않고, 궁극적으로 사용자 경험에 영향을 미치지 않고, 액티브 작업 부하들을 실행할 때 멀티 코어 프로세서 전력 소비를 감소시키는 효율적인 수단을 제공한다.
다양한 실시예에서, A/V 동기화 인터럽트들과 연관되는 프로세서 이용 오버헤드 및 전력 소비를 감소시키기 위한 대안적인 애플리케이션 독립적 방식은 더 적은 수의 프로세서 코어에서 실행하도록 미디어 애플리케이션을 동적으로 어피니타이즈하는 것을 포함함으로써, 상이한 프로세서 코어들에 전달하는 미디어 인터럽트의 수를 감소시킬 수 있다. 미디어 애플리케이션들은 통상적으로 시스템에서 이용가능한 단일 코어마다 실행될 필요가 없어, 한편으로, 더 적은 수의 코어에서 애플리케이션을 어피니타이즈하는 것이 성능에 영향을 미치지 않을 수 있고, 다른 한편으로는, 전체 인터럽트 레이트 및 프로세서 이용을 감소시킬 수 있다. 다른 실시예들이 설명되고 청구된다.
실시예들은 하나 이상의 요소를 포함할 수 있다. 요소는 특정 동작들을 수행하도록 배열되는 임의의 구조를 포함할 수 있다. 각각의 요소는 주어진 세트의 설계 파라미터들 또는 성능 제약들을 위해 필요에 따라 하드웨어, 소프트웨어, 또는 그의 임의의 조합으로서 구현될 수 있다. 실시예들은 예시적으로 특정 배열들에서 특정 요소들과 설명될 수 있지만, 실시예들은 대안적인 배열들에서 다른 조합들의 요소들을 포함할 수 있다.
"일 실시예" 또는 "실시예"에 대한 임의의 언급은 그 실시예와 관련하여 설명된 특정 특징, 구조, 또는 특성이 적어도 하나의 실시예에 포함되는 것을 의미함을 주목할 필요가 있다. 명세서의 다양한 곳에서의 "일 실시예에서" 및 "실시예에서"라는 구절의 출현은 반드시 모두 동일한 실시예를 언급하는 것이 아니다.
도 1은 장치의 일 실시예를 도시한다. 도 1은 장치(100)의 블록도를 도시한다. 장치(100)는 일부 실시예들에서 컴퓨팅 시스템을 포함할 수 있다. 도 1에 도시된 바와 같이, 장치(100)는 어피니타이제이션 관리 모듈(102), 메모리(104), 운영 시스템(106), 및 코어들(108-1-m)을 포함하는 멀티 코어 프로세서(108)와 같은 다수의 요소들을 포함한다. 그러나, 실시예들은 이 도면에 도시된 구성 또는 요소들에 한정되지 않는다.
다양한 실시예들에서, 멀티 코어 프로세서(108)는 하나 이상의 프로세서 코어(108-1-m)를 포함하는 CPU를 포함할 수 있다. 프로세서(108)는, 예를 들어, CPU, 멀티 프로세싱 유닛, RISC(reduced instruction set computer), 파이프라인을 갖는 프로세서, CISC(complex instruction set computer), DSP(digital signal processor) 등과 같은 임의의 유형의 프로세싱 유닛을 포함할 수 있다. 일부 실시예들에서, 프로세서 코어들(108-1-m)은 논리적 및/또는 가상의 프로세서 코어들을 포함할 수 있다. 각각의 논리적 프로세서 코어(108-1-m)는 일부 실시예들에서 하나 이상의 가상 프로세서 코어들을 포함할 수 있다. 예를 들어, 각각의 프로세서 코어들(108-1-m)은, 멀티 코어 프로세서(108)에 대하여 이용가능한 총 8개의 코어들을 만들어내는 2개의 가상 코어들을 포함할 수 있다. 그외의 실시예들이 기술되고 청구된다.
다양한 실시예에서, 메모리(104)는 메모리 유닛, 메모리 디바이스, 메모리 물품, 메모리 미디어, 저장 디바이스, 저장 물품, 저장 미디어 및/또는 저장 유닛, 예를 들어, 메모리, 탈착식 또는 비탈착식 미디어, 휘발성 또는 비휘발성 메모리 또는 미디어, 소거 가능 또는 소거 불가능 미디어, 기입 가능 또는 재기입 가능 미디어, 디지털 또는 아날로그 미디어, 하드 디스크, 플로피 디스크, CD-ROM(Compact Disk Read Only Memory), CD-R(Compact Disk Recordable), CD-RW(Compact Disk Rewriteable), 광 디스크, 자성 미디어, 광자기 미디어, 탈착식 메모리 카드들 또는 디스크들, 다양한 유형의 DVD(Digital Versatile Disk), 테이프, 카세트 등 중 임의의 유형을 포함할 수 있다.
OS(Operating system)(106)는 일부 실시예들에서 장치(100)의 다양한 하드웨어 컴포넌트들과 사용자 간의 인터페이스를 포함할 수 있다. 다양한 실시예들에서, OS(106)는 컴퓨팅 시스템(100)의 활동들에 대한 관리 및 조정과, 리소스들의 공유를 담당할 수 있다. 일부 실시예들에서, OS(106)는, 예를 들어, 미디어 애플리케이션과 같은, 컴퓨팅 시스템(100) 상에서 구동되거나 실행되는 다양한 컴퓨팅 애플리케이션에 대한 호스트로서 동작할 수 있다. 일부 실시예들에서 OS(106)는 Washington, Redmond의 Microsoft Corporation의 Windows를 포함할 수 있다. 그외의 실시예들이 기술되고 청구된다.
다양한 실시예들에서, 어피니타이제이션 관리 모듈(102)은 컴퓨팅 시스템(100)에 대한 전력을 관리하는 소프트웨어 드라이버 또는 애플리케이션을 포함할 수 있다. 일부 실시예들에서, 어피니타이제이션 관리 모듈(102)은, 예를 들어, 미디어 프로세서 코어 어피니타이제이션 플랜와 같은, 특정 전력 플랜으로의 진입 및 특정 전력 플랜의 관리를 제어하는 OS(106) 하에서 구동되는 소프트웨어 드라이버를 포함할 수 있다. 미디어 프로세서 코어 어피니타이제이션 플랜은 다양한 실시예들에서 미디어 애플리케이션을 이용하여 미디어 파일을 실행 또는 구동하는 등의 액티브 작업부하들 동안의 프로세서 전력 소모를 감소시키는 동적 플랜을 포함할 수 있다. 컴퓨팅 시스템(100)에서 어피니타이제이션 관리 모듈(102)이 별개의 컴포넌트로서 도시되지만, 그것은 OS(106)의 일부분으로서 메모리(104)에 포함될 수 있거나 설명된 실시예들 내에 들어오는 임의의 그외의 위치 또는 구성에 포함될 수 있음을 이해해야 한다. 그외의 실시예들이 설명되고 청구된다.
일부 실시예들에서, 어피니타이제이션 관리 모듈(102)은 멀티 코어 프로세서의 복수의 프로세서 코어 중 하나 이상의 프로세서 코어 상에서 실행하도록 동작하는 미디어 애플리케이션을 검출하도록 동작할 수 있다. 미디어 애플리케이션의 예들은, Windows Media Player, Corel WinDVD, Cyberlink PowerDVD, Arcsoft Total Media Theater, Apple QuickTime 및 Apple iTunes를 포함할 수 있으나, 이것으로 한정되는 것은 아니다. 다양한 실시예들에서, 미디어 애플리케이션은 미디어 파일을 렌더링, 재생, 플레이백(playback) 또는 그렇지 않은 경우, 디스플레이, 디코드 또는 실행하기 위한 멀티 코어 프로세서의 복수의 프로세서 코어 중 하나 이상의 프로세서에 의해 실행 또는 구동될 수 있다. 미디어 파일들은 플레이백을 위한 동기화를 요하는 별개의 오디오 및 비디오 데이터 스트림들을 갖는 임의의 조합의 A/V 파일을 포함할 수 있으나, 이것으로 한정되는 것은 아니다. 미디어 파일들은 SD(standard definition) 미디어 파일들 또는 HD 미디어 파일들을 포함할 수 있다. 예를 들어, 미디어 파일들은 DVD 미디어, HD DVD 미디어, 블루 레이(Blue-Ray) 미디어, 또는 임의의 그외의 적절한 미디어 파일을 포함할 수 있다. 그외의 실시예들이 설명되고 청구된다.
일부 실시예들에서, 어피니타이제이션 관리 모듈(102)은 멀티 코어 프로세서의 프로세서 코어들의 서브세트를 동적으로 선택하도록 동작할 수 있다. 예를 들어, 멀티 코어 프로세서는, 각각이 복수의 논리 코어들을 갖고, 총 8개의 이용가능한 프로세서 코어들을 허용하는, 4개의 물리적인 코어들을 포함할 수 있다. 일부 실시예들에서, 어피니타이제이션 관리 모듈(102)은 미디어 애플리케이션을 실행 또는 구동하는데 이용되는 이러한 코어들의 세트를 선택할 수 있다. 다양한 실시예들에서, 어피니타이제이션 관리 모듈(102)은 미디어 애플리케이션을 어피니타이징하여 프로세서 코어들의 서브세트 상에서 실행할 수 있다. 일부 실시예들에서, 예를 들어, 프로세서 코어들의 서브세트는, 예를 들어, 멀티 코어 프로세서의 프로세서 코어들의 총 수보다 적은 수의 프로세서 코어를 포함할 수 있다.
다양한 실시예들에서, 어피니타이제이션 관리 모듈(102)은 미디어 애플리케이션에 의한 미디어 파일의 플레이백 동안에 최적의 수의 코어들을 동적으로 및 자동적으로 선택하도록 동작할 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은 미디어 애플리케이션이 론칭되었거나 현재 액티브 상태인지를 판정하기 위해 백그라운드로 구동 또는 실행하도록 동작하는 스크립트, 드라이버, 서브루틴, 프로세스 또는 그외의 애플리케이션을 포함할 수 있다. 일부 실시예들에서, 어피니타이제이션 관리 모듈(102)은 식별/검출 프로세스에서 조력하는 미디어 애플리케이션들의 사전결정된 리스트를 포함할 수 있다.
일부 실시예들에서, 어피니타이제이션 관리 모듈(102)은 프로세서 코어들의 서브세트를 동적으로 선택하는 로직을 포함할 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은 멀티 코어 프로세서의 복수의 프로세서 코어 각각 상에서 미디어 애플리케이션을 실행하기 위해 어피니타이징하도록 동작할 수 있다. 이것은 복수의 프로세서 코어 각각이 이용된 경우, 총 프로세서 이용 또는 전력 소모의 벤치마크 또는 그외의 적절한 계측을 확립할 수 있다. 다양한 실시예들에서, 어피니타이제이션 관리 모듈(102)은 멀티 코어 프로세서에 대하여 전력 상태 레지던시(residency)를 후속하여 계측하도록 동작할 수 있다. 예를 들어, 복수의 코어 각각 상에서 실행하기 위해 어피니타이징된 미디어 애플리케이션을 이용하면, 어피니타이제이션 관리 모듈(102)은 멀티 코어 프로세서에 대한 이용 또는 전력 소모를 판정할 수 있다.
일부 실시예들에서, 어피니타이제이션 관리 모듈(102)은 프로세서 수행 상태(예를 들어, P0, P1, P2 등) 레지던시 또는 프로세서 전력 상태(예를 들어, C0, C1, C2 등) 레지던시를 임계치에 비교하도록 동작할 수 있다. 임계치는, 멀티 코어 프로세서에 대해 수용가능한 사전 결정된 전력 소모량을 포함할 수 있다. 어피니타이제이션 관리 모듈(102)은, 수행 상태 또는 전력 상태 레지던시가 임계치를 초과하지 않는 경우, 멀티 코어 프로세서의 프로세서 코어보다 하나 적은 수의 프로세서 코어 상에서 실행하기 위해 미디어 애플리케이션을 어피니타이즈하도록 동작할 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은 액티브 프로세서 코어들의 수를 감소시킴으로써 전력 절감이 달성될 수 있음을 판정하도록 동작하는 로직을 포함할 수 있다.
다양한 실시예들에서, 동적 선택 프로세스는 프로세서 수행 또는 전력 상태 레지던시가 임계치를 초과하지 않을 때까지 반복될 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은 사전결정된 시간 기간 후에 멀티 코어 프로세서에 대한 전력 상태 레지던시를 재계측하고, 재계측된 전력 상태 레지던시를 임계치에 비교하고, 수행 또는 전력 상태 레지던시가 임계치를 초과하지 않으면, 멀티 코어 프로세서의 하나 더 적은 프로세서 코어 상에서 실행하기 위해 미디어 애플리케이션을 계속하여 디-어피니타이징하도록 동작할 수 있다. 다양한 실시예들에서, 어피니타이제이션 관리 모듈(102)은 수행 또는 전력 상태 레지던시가 임계치를 초과하지 않으면, 멀티 코어 프로세서의 추가 프로세서 코어 상에서 실행하기 위해 미디어 애플리케이션을 리-어피니타이징하도록 동작하거나, 프로세서 코어들의 현재 개수를 유지하도록 동작할 수 있다. 그외의 실시예들이 설명되고 청구된다.
일부 실시예들에서, 어피니타이제이션 관리 모듈(102)은 미디어 애플리케이션 이외에도 복수의 프로세서 코어 중 하나 이상의 프로세서 코어 상에서 실행하도록 동작하는 하나 이상의 애플리케이션을 검출하도록 동작할 수 있다. 예를 들어, 사용자는 미디어 애플리케이션에 추가하여 임의의 수의 애플리케이션을 론칭할 수 있다. 다양한 실시예들에서, 사용자는, 예를 들어, 웹 브라우저 애플리케이션을 론칭하면서 블루레이 DVD 무비를 볼 수 있고, 이는 멀티 코어 프로세서의 전력 요구사항 및/또는 소비를 변경시킬 수 있다. 검출에 응답하여, 어피니타이제이션 관리 모듈(102)은 일부 실시예에서 멀티 코어 프로세서에 대한 성능 또는 전력 상태 레지던시의 측정들 사이의 시간 간격을 감소시킬 수 있다. 예를 들어, 임의의 추가적인 및/또는 상이한 타입의 애플리케이션들이 액티브이면, 어피니타이제이션 관리 모듈(102)은 성능 또는 전력 상태 레지던시 측정들 사이의 시간 간격을 줄일 수 있다. 이러한 식으로, 변경된 요구사항들을 고려하여, 액티브 코어들의 최적 수가 더 정확하게 유지된다.
어피니타이제이션 관리 모듈(102)은, 일부 실시예들에서 미디어 파일의 대응하는 오디오 및 비디오 데이터 스트림들을 동기화시키기 위해, 미디어 애플리케이션에 의해 주기적으로 생성된 미디어 인터럽트들을 미디어 애플리케이션이 어피니타이징되어 실행되는 멀티 코어 프로세서의 프로세서 코어들로 향하게 하도록 동작가능할 수 있다. 예를 들어, 주기적인 동기화 인터럽트들이 프로세서 코어들 중 동적으로 선택된 집합으로만 향하게 될 수 있다. 다양한 실시예들에서, 동기화 인터럽트들을 처리하는데 수반되는 프로세서 코어들을 제한하는 것은 프로세서 오버헤드를 감소시키고 컴퓨팅 시스템(100)에 대한 전력 소모를 감소시키게 될 수 있다. 다른 실시예들이 설명되고 청구된다.
일반적으로, 어피니타이징된 프로세서 코어들의 수가 더 적을수록, 프로세서 전력 소모가 더 적어진다. 그러나 일부 실시예들에서, 미디어 애플리케이션을 실행하기 위해 어피니타이징된 멀티 코어 프로세서의 최소 수의 프로세서 코어는 2개의 프로세서 코어를 포함할 수 있다. 2개보다 적은 액티브 코어로 감소시키는 것은 실제로 프로세서 전력 소모를 심각하게 증가시킬 것이다. 예를 들어, 단일 프로세서 코어를 사용하는 것은, 미디어 애플리케이션을 적절히 렌더링하기 위한 적정 수준의 프로세싱을 유지하기 위해, 프로세서 코어에 대한 터보 또는 가속 모드의 사용(또는 P1, P2 등의 다른 고성능 스테이지들의 사용)을 필요로 할 수 있다. 단일 프로세서 코어에서의 터보 모드(또는 그외의 높은 프로세서 P 상태들)와 연관된 전력 소모는, 미디어 인터럽트들의 수를 줄이는 것과 연관된 전력 감소를 보상하기에 불충분할 수 있다.
일부 실시예들이 모듈, 로직, 소프트웨어 또는 쓰레드라는 용어로 설명되지만, 임의의 수의 모듈, 쓰레드 또는 로직 배열 및 멀티 코어 프로세서의 임의의 수의 코어가 사용될 수 있고, 여전히 설명된 실시예들의 범주에 속한다. 또한, 일부 실시예에서, 본 명세서에서 설명된 로직은, 복수의 작업들 또는 애플리케이션들을 처리하고 복수의 코어들을 실질적으로 동시에 제어하는 것을 포함하여, 작업들을 병렬로 수행하도록 구현되거나 배열될 수 있다는 것이 이해되어야 한다. 더욱이, 본 명세서에서 설명된 로직 흐름들은 로직 흐름들의 예시들만을 나타낼 뿐이고, 로직 흐름들에서 설명된 동작들의 상이한 수, 순서, 및/또는 배열들이 구현될 수 있으며, 여전히 설명된 실시예들의 범주에 속한다는 것이 이해되어야 한다. 다른 실시예들이 설명되고 청구된다.
도 2는 로직 흐름(200)의 일 실시예를 도시한다. 로직 흐름(200)은 다양한 시스템들 및/또는 디바이스들에 의해 수행될 수 있고, 설계 파라미터들 또는 성능 제약들의 주어진 세트에 대하여 원하는 바에 따라, 하드웨어, 소프트웨어, 펌웨어 및/또는 그 임의의 조합으로서 구현될 수 있다. 예를 들어, 로직 흐름(200)의 하나 이상의 동작들은 로직 디바이스(예컨대, 컴퓨터, 프로세서)에 의해 실행될 실행가능한 프로그래밍 또는 컴퓨터 판독가능한 명령들에 의해 구현될 수 있다. 로직 흐름(200)은 장치(100) 및 어피니타이제이션 관리 모듈(102)과 관련하여 상기에서 설명된 전력 감소 피쳐들을 설명한다.
다양한 실시예들에서, 제한이 아닌 설명의 목적으로, 액티브 미디어 애플리케이션은 8개의 로직 코어들을 포함하는 컴퓨팅 시스템에 대하여 식별되었다고 로직 흐름(200)이 가정할 수 있다. 일부 실시예들에서, 로직 흐름(200)은 예를 들어 도 1의 어피니타이제이션 관리 모듈(102)에 의해 구현된 로직의 표현을 포함할 수 있다. 로직 흐름의 실시예들은, 상이한 구현들에 대하여 상이한 값들로 설정될 수 있는 프로그램가능한 변수들을 포함할 수 있는, 'X', 'Y' 및 'Z'를 포함하는 변수들을 참조한다. 다른 실시예들이 설명되고 청구된다.
202에서, 컴퓨팅 시스템의 모든 이용가능한 코어들이 미디어 애플리케이션을 실행하도록 어피니타이징될 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 8개의 모든 로직 코어들이 미디어 애플리케이션을 실행하도록 초기에 어피니타이징될 수 있다. 일부 실시예들에서, X초의 평가 윈도우에 걸친 프로세서 성능 상태 레지던시의 측정이 204에서 이루어진다. 예를 들어, X는 일부 실시예들에서 15초를 포함할 수 있다. 206에서 최종 평가 윈도우 X 동안의 성능 상태 P0(달리 '터보' 상태로 알려짐) 레지던시가 터보 임계값 Y를 초과하는지의 여부에 대한 판정이 이루어진다. 터보 임계값 Y는 예를 들어 컴퓨팅 시스템의 멀티 코어 프로세서에 대한 수용가능한 터보 프로세싱의 미리 정해진 크기 또는 볼륨을 포함할 수 있다.
206에서 성능 상태 레지던시가 임계값 Y를 초과하지 않으면, 208에서 하나보다 많은 프로세서 코어가 액티브인지에 대한 판정이 행해진다. 하나보다 많은 프로세서 코어가 액티브이면, 210에서 미디어 애플리케이션이 하나의 프로세서 코어로부터 디-어피니타이징될 수 있고 204에서 프로세스가 프로세서에 대한 성능 상태 레지던시의 측정을 재개할 수 있다. 하나보다 많지 않은 프로세서 코어가 액티브이면, 214에서 최적 수의 어피니타이징된 코어들이 식별되었다는 판정이 이루어질 수 있고 이러한 판정을 반영하기 위하여 플래그가 설정될 수 있다. 204에서 전력 상태 레지던시 측정들을 재개하기 전에, 최종의 최적 수의 어피니타이징된 코어들이 식별되었기 때문에, 214에서 또한 Z분 동안의 대기 기간이 설정될 수 있다.
다양한 실시예들에서, 206에서 전력 상태 레지던시가 임계값 Y를 초과하면, 프로세스는 하나의 추가 프로세서 코어 상에서 실행하기 위하여 미디어 애플리케이션을 리-어피니타이징할 수 있다. 그 후 프로세스는 214로 진행하고, 여기에서 최적 수의 어피니타이징된 코어들이 식별되었는지에 대한 판정이 이루어질 수 있으며, 이러한 판정을 반영하기 위한 플래그가 설정될 수 있고, 204에서 전력 상태 레지던시 측정들을 재개하기 전에, 최종의 최적 수의 어피니타이징된 코어들이 식별되었기 때문에 Z분의 대기 기간이 설정될 수 있다. 대기 기간 Z는 예를 들어 20분을 포함할 수 있다. 일부 실시예들에서, 대기 기간은 검출된 시스템 활동에 기초하여 연장되거나 감소될 수 있다. 예를 들어, 미디어 애플리케이션에 추가하여 애플리케이션이 검출되면, 대기 기간 Z는 감소하여, 어피니타이제이션 관리 로직에 의한 액티브 프로세서 코어들의 최적 수에 대한 더 빈번한 판정이 이루어질 수 있다.
로직 흐름(200)은 단일 프로세서 성능 상태(P0 또는 터보 상태)에 기초하는 판정들을 포함하지만, 다른 프로세서 성능 상태들(P1, P2, P3 등)이 사용될 수 있고, 여전히 설명된 실시예들의 범주에 속한다는 것에 유의한다. 또한, 로직 흐름(200)이 프로세서 성능 상태들에 기초하는 판정들을 포함하지만, 프로세서 전력 상태 또는 C-상태들과 같은 다른 상태들이 추가로 및/또는 대안적으로 고려될 수 있고 여전히 설명된 실시예들의 범주에 속한다는 것이 이해되어야 한다. 예를 들어, 다수의 프로세서 코어로부터 미디어 애플리케이션을 디-어피니타이징하면 애플리케이션 작업들을 보다 직렬적인 방식으로 실행하게 되고, 이것은 결과적으로 프로세서 C0 전력 상태를 연장시켜서 프로세서 전력 소모의 증가를 가져올 수 있는데, 이 증가는 프로세서 인터럽트 레이트를 감소시킴으로써 달성된 임의의 전력 감소를 초과할 수 있다. 따라서, 일부 실시예들에서, 로직 흐름(200)은, 미리 정해진 및/또는 프로그램가능한 임계값보다 높은, 프로세서 C0 상태의 증가를 가져오지 않는 한에서만, 연속적인 코어 디-어피니타이제이션 발생을 포함할 수 있다. 다른 실시예들이 설명되고 청구된다.
도 3은 제2 로직 흐름(300)의 일 실시예를 도시한다. 로직 흐름(200)을 참조하여 전술된 바와 같이, 로직 흐름(300)은 다양한 시스템들 및/또는 디바이스들에 의해 수행될 수 있고, 설계 파라미터들 또는 성능 제약들의 주어진 세트에 대하여 희망하는 대로, 하드웨어, 소프트웨어, 펌웨어, 및/또는 그의 임의의 조합으로서 구현될 수 있다. 예를 들어, 로직 흐름(300)의 하나 이상의 연산은, 로직 디바이스(예를 들어, 컴퓨터, 프로세서)에 의해 실행될 실행가능한 프로그래밍 또는 컴퓨터 판독가능한 명령어들에 의해 구현될 수 있다.
일 실시예에서, 302에서 멀티 코어 프로세서의 복수의 프로세서 코어 중 하나 이상에서 실행되도록 동작하는 미디어 애플리케이션이 검출될 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은, 윈도우즈 미디어 플레이어(Windows Media Player)가 컴퓨팅 시스템(100) 상에서 액티브이고, 멀티 코어 프로세서(108)의 프로세서 코어들(108-1-m) 중 임의의 프로세서 코어에서 실행되도록 동작하는 것을 검출할 수 있다. 304에서, 멀티 코어 프로세서의 프로세서 코어들의 서브세트는 다양한 실시예들에서 동적으로 선택될 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은 윈도우즈 미디어 플레이어를 실행하는 프로세서 코어들(108-1, 108-2)을 동적으로 선택하도록 동작할 수 있다.
일부의 실시예들에서, 306에서 미디어 애플리케이션은 프로세서 코어들의 서브세트에서 실행되도록 어피니타이징될 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은 동적으로 선택된 프로세서 코어들(108-1, 108-2)에서 실행되도록 윈도우즈 미디어 플레이어를 어피니타이징할 수 있다. 다양한 실시예들에서, 프로세서 코어들의 서브세트는 멀티 코어 프로세서의 프로세서 코어들의 전체 수보다 작다. 예를 들어, 프로세서 코어들(108-1, 108-2)은 컴퓨팅 시스템(100)에 대해 이용가능한 4개의 프로세서 코어들 중 2개만을 포함한다. 일부의 실시예들에서 미디어 애플리케이션을 실행하기 위한 멀티 코어 프로세서의 최소한의 프로세서 코어들의 수는 2개의 프로세서 코어들을 포함할 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은 멀티 코어 프로세서(108) 중 2개 만큼의 프로세서 코어들(108-1-m)을 선택하도록 동작할 수 있다. 그외의 실시예들이 설명되고 청구된다.
프로세서 코어들의 서브세트를 동적으로 선택하는 것은, 멀티 코어 프로세서의 복수의 프로세서 코어 각각에서 실행되도록 미디어 애플리케이션을 어피니타이징하고, 멀티 코어 프로세서에 대한 성능 또는 전력 상태 레지던시를 측정하고, 성능 또는 전력 상태 레지던시를 임계값과 비교하고, 일부의 실시예들에서 전력 상태 레지던시가 임계값을 초과하지 않는 경우, 멀티 코어 프로세서의 프로세서 코어들 중 하나 더 적은 프로세서 코어들에서 실행되도록 미디어 애플리케이션을 디-어피니타이징하는 것을 포함할 수 있다. 예를 들어, 어피니타이제이션 관리 모듈은, 미디어 애플리케이션이 액티브인 것을 검출하고, 프로세서 코어들(108-1-m)의 각각에서 실행되도록 미디어 애플리케이션을 어피니타이징하고, 멀티 코어 프로세서(108)에 대한 성능 또는 전력 상태 레지던시를 측정하고, 전력 상태 레지던시를 임계값과 비교하고, 전력 상태 레지던시가 임계값을 초과하지 않는 경우, 멀티 코어 프로세서(108)의 프로세서 코어들 중 하나 더 적은 프로세서 코어들(예를 들어, 코어들(108-1, 108-2, 108-3))에서 실행되도록 미디어 애플리케이션을 디-어피니타이징하도록 동작할 수 있다.
일부의 실시예들에서, 프로세서 코어들의 서브세트를 선택하는 것은, 미리 결정된 시간 후의 멀티 코어 프로세서에 대한 성능 또는 전력 상태 레지던시를 재측정하고, 재측정된 상태 레지던시를 임계값과 비교하고, 전력 상태 레지던시가 임계값을 초과하지 않는 경우, 멀티 코어 프로세서의 프로세서 코어들 중 하나 더 적은 프로세서 코어들에서 실행되도록 미디어 애플리케이션을 디-어피니타이징하는 것을 포함할 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은, 필요하다면, 선택된 프로세서 코어들(108-1-m)의 최적의 수를 확인하거나 또는 변경하기 위해, 동적 선택 프로세스를 주기적으로 반복하도록 동작할 수 있다.
일부의 실시예들에서, 미디어 애플리케이션에 추가하여 복수의 프로세서 코어 중 하나 이상에서 실행되도록 동작하는 하나 이상의 애플리케이션들이 검출될 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은, 미디어 애플리케이션에 더하여 워드 프로세싱 애플리케이션이 액티브인 것을 검출할 수 있다. 다양한 실시예들에서, 검출에 응답하여, 멀티 코어 프로세서에 대한 전력 상태 레지던시의 측정들 사이의 시간 간격이 감소할 수 있다. 예를 들어, 어피니타이제이션 관리 모듈은 시간 간격을 감소시키거나, 또는 최적의 수의 프로세서 코어들(108-1-m)의 동적 선택과 연관된 단계들을 수행하는 빈도를 증가시킬 수 있다.
일부의 실시예들에서, 성능 또는 전력 상태 레지던시가 임계값을 초과하는 경우, 미디어 애플리케이션은 멀티 코어 프로세서의 프로세서 코어들 중 하나의 추가 프로세서 코어에서 실행되도록 리-어피니타이징될 수 있거나, 또는 프로세서 코어들의 현재의 수가 유지될 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)이 멀티 코어 프로세서(108)에 대한 성능 또는 전력 상태 레지던시가 임계값을 초과한다고 판정하는 경우, 어피니타이제이션 관리 모듈(102)은 현재 액티브가 아닌 하나의 추가 프로세서 코어(108-1-m)에서 실행되도록 미디어 애플리케이션을 리-어피니타이징할 수 있다.
다양한 실시예들에서, 미디어 애플리케이션은 대응하는 오디오 및 비디오 데이터 스트림들을 갖는 미디어 파일을 플레이백하도록 동작할 수 있다. 예를 들어, Windvd는 오디오 및 비디오 데이터 스트림 모두를 포함하는 블루레이(Blue-Ray) DVD 영화를 플레이백하도록 동작할 수 있다. 일부의 실시예들에서, 미디어 애플리케이션은 미디어 인터럽트들을 주기적으로 생성하여 오디오 및 비디오 데이터 스트림들을 동기화하도록 동작할 수 있다. 예를 들어, Windvd는 블루레이 DVD 미디어 파일의 오디오 및 비디오 데이터 스트림들을 동기화하는데 사용되는 주기적인 OS '틱(tick)' 인터럽트들을 생성하도록 동작할 수 있다. 다양한 실시예들에서, 미디어 인터럽트들은, 실행을 위해 미디어 애플리케이션이 어피니타이징되는 멀티 코어의 프로세서 코어들로 전송될 수 있다. 예를 들어, 어피니타이제이션 관리 모듈(102)은, 미디어 애플리케이션을 실행하도록 동적으로 선택된 프로세서 코어들(108-1-m)의 서브세트로 미디어 인터럽트들을 향하게 할 수 있다.
프로세서 코어들의 특정한 배열, 특정한 미디어 애플리케이션들 및 특정한 미디어 파일들과 관련하여 특정한 실시예들이 설명되지만, 이러한 예시들은 한정이 아닌 예시의 목적으로 제공된다는 것을 이해해야 한다. 컴포넌트들, 모듈들, 애플리케이션 유형들 및 파일 유형들의 임의의 수의 유형 및/또는 배열이 사용될 수 있으며, 이것들은 여전히 설명된 실시예들 내에 속한다. 그외의 실시예들이 설명되고 청구된다.
도 4는 예시적인 시스템 실시예의 도면이다. 특히, 도 4는 다양한 엘리먼트들을 포함할 수 있는 시스템(400)을 도시하는 도면이다. 예를 들어, 도 4는 프로세서(402), 칩셋(404), I/O(input/output) 디바이스(406), (DRAM(dynamic RAM) 등의) RAM(random access memory)(408), ROM(read only memory)(410), 및 다양한 플랫폼 컴포넌트들(414)(예를 들어, 팬, 크로스플로우 블로어(crossflow blower), 히트 싱크, DTM 시스템, 쿨링 시스템, 하우징, 벤트(vent) 등)을 포함할 수 있는 시스템(400)을 도시한다. 이 엘리먼트들은 하드웨어, 소프트웨어, 펌웨어, 또는 임의의 그 조합으로 구현될 수 있다. 그러나, 실시예들은 이 엘리먼트들에 한정되는 것은 아니다.
도 4에 도시된 바와 같이, I/O 디바이스(406), RAM(408) 및 ROM(410)은 칩셋(404)을 통해 프로세서(402)에 결합된다. 칩셋(404)은 버스(412)에 의해 프로세서(402)에 결합될 수 있다. 따라서, 버스(412)는 다수의 라인을 포함할 수 있다.
프로세서(402)는 하나 이상의 프로세서 코어를 포함하는 중앙 처리 유닛일 수 있고, 임의의 수의 프로세서 코어들을 갖는 임의의 수의 프로세서들을 포함할 수 있다. 프로세서(402)는, 예를 들어, CPU, 멀티 프로세싱 유닛, RISC(reduced instruction set computer), 파이프라인을 갖는 프로세서, CISC(complex instruction set computer), DSP(digital signal processor) 등과 같은 임의의 유형의 프로세싱 유닛을 포함할 수 있다.
도시되지 않았지만, 시스템(400)은 이더넷 인터페이스 및/또는 USB(Universal Serial Bus) 인터페이스 등과 같은 다양한 인터페이스 회로들을 포함할 수 있다. 일부의 예시적인 실시예들에서, I/O 디바이스(406)는 시스템(400)에 데이터 및 커맨드들을 입력하기 위한 인터페이스 회로들에 접속된 하나 이상의 입력 디바이스를 포함할 수 있다. 예를 들어, 입력 디바이스들은 키보드, 마우스, 터치 스크린, 트랙 패드, 트랙 볼, iso 포인트, 음성 인식 시스템 등 또는 그외의 유사한 것들을 포함할 수 있다. 마찬가지로, I/O 디바이스(406)는 운영자에게 정보를 출력하기 위해 인터페이스 회로에 연결된 하나 이상의 출력 디바이스를 포함할 수 있다. 예를 들면, 출력 디바이스들은 필요하다면, 하나 이상의 디스플레이, 프린터, 스피커, 및/또는 다른 출력 디바이스를 포함할 수 있다. 예를 들면, 출력 디바이스들 중 하나는 디스플레이일 수 있다. 디스플레이는 CRT(cathode ray tube), LCD(liquid crystal display), 또는 임의의 다른 유형의 디스플레이일 수 있다.
시스템(400)은 또한 네트워크로의 연결을 통해 다른 디바이스들과 데이터를 교환하는 유선 또는 무선 네트워크 인터페이스를 가질 수 있다. 네트워크 연결은 이더넷 연결, DSL(digital subscriber line), 전화 선로, 동축 케이블 등과 같은 임의의 유형의 네트워크 연결일 수 있다. 네트워크는 인터넷, 전화 네트워크, 케이블 네트워크, 무선 네트워크, 패킷 교환 네트워크, 회선 교환 네트워크, 및/또는 기타 등과 같은 임의의 유형의 네트워크일 수 있다.
수많은 특정한 세부사항들이 실시예들의 철저한 이해를 제공하도록 본원에서 나열되었다. 그러나, 실시예들이 이러한 특정한 세부사항들 없이도 시행될 수 있다는 것이 당업자들에 의해 이해될 것이다. 다른 예로, 공지의 동작, 컴포넌트 및 회로들은 실시예들을 모호하게 하지 않기 위해 세부적으로 설명되지 않았다. 본원에서 개시된 특정한 구조적 및 기능적 세부사항들은 설명적일 수 있으며 실시예들의 범위를 반드시 한정하는 것이 아니라는 것이 이해될 수 있다.
다양한 실시예들이 하드웨어 구성요소들, 소프트웨어 구성요소들, 또는 그들의 조합을 사용하여 구현될 수 있다. 하드웨어 구성요소들의 예들은 프로세서들, 마이크로프로세서들, 회로들, 회로 구성요소들(예를 들면, 트랜지스터들, 저항들, 캐패시터들, 인덕터들 등), 집적 회로들, ASIC(application specific integrated circuit), PLD(programmable logic device), DSP(digital signal processor), FPGA(field programmable gate array), 로직 게이트들, 레지스터들, 반도체 디바이스, 칩들, 마이크로칩들, 칩셋들 등을 포함할 수 있다. 소프트웨어의 예들은 소프트웨어 컴포넌트들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 함수들, 방법들, 절차들, 소프트웨어 인터페이스들, API(application program interface), 명령어 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들, 또는 그의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 구성요소들 및/또는 소프트웨어 구성요소들을 사용하여 구현되는지 여부를 판정하는 것은 원하는 연산 레이트, 전력 레벨, 히트 오차(heat tolerance), 프로세싱 사이클 예산, 입력 데이터 레이트, 출력 데이터 레이트, 메모리 리소스, 데이터 버스 스피드 및 다른 설계 또는 성능 제한사항과 같은 임의의 수의 인자들에 따라 달라질 수 있다.
일부 실시예들은 용어 "연결된" 및 "접속된"을 그것들의 파생어와 함께 사용하여 설명될 수 있다. 이러한 용어들은 서로에 대한 동의어로 의도되지 않았다. 예를 들면, 일부 실시예들은 둘 이상의 구성요소들이 서로 직접적으로 물리적 또는 전기적 접촉을 하고 있는 것을 가리키기 위해 용어 "접속된" 및/또는 "연결된"을 사용하여 설명될 수 있다. 그러나, 용어 "연결된"은 둘 이상의 구성요소들이 서로 직접 접촉하지는 않지만, 여전히 서로 협력하거나 상호작용하는 것을 의미할 수도 있다.
예를 들면, 일부 실시예들은 머신 또는 프로세서에 의해 실행될 때 머신 또는 프로세서로 하여금 실시예들을 따라 방법 및/또는 동작들을 수행하게 할 수 있는 명령어, 명령어들의 세트 또는 컴퓨터 실행가능한 코드를 저장할 수 있는 머신-판독가능한 또는 컴퓨터-판독가능한 매체 또는 물품을 사용하여 구현될 수 있다. 예를 들면, 그러한 머신은 임의의 적절한 프로세싱 플랫폼, 컴퓨팅 플랫폼, 컴퓨팅 디바이스, 프로세싱 디바이스, 컴퓨팅 시스템, 프로세싱 시스템, 컴퓨터, 프로세서 등을 포함할 수 있고, 하드웨어 및/또는 소프트웨어의 임의의 적절한 조합을 사용하여 구현될 수 있다. 예를 들면, 머신-판독가능한 매체 또는 제품은 임의의 적절한 유형의 메모리 유닛, 메모리 디바이스, 메모리 물품, 메모리 매체, 저장 디바이스, 저장 물품, 저장 매체 및/또는 저장 유닛, 예를 들면, 메모리, 탈착식 또는 비탈착식 매체, 휘발성 또는 비휘발성 메모리 또는 매체, 삭제가능한 또는 삭제가능하지 않은 매체, 기입가능한 또는 기입가능하지 않은 매체, 디지털 또는 아날로그 매체, 하드 디스크, 플로피 디스크, CD-ROM(Compact Disk Read Only Memory), CD-R(Compact Disk Recordable), CD-RW(Compact Disk Rewriteable), 광 디스크, 자기 매체, 자기-광 매체, 제거가능한 메모리 카드 또는 디스크, 다양한 유형의 DVD(Digital Versatile Disk), 테이프, 카세트 등을 포함할 수 있다. 명령어들은 임의의 적절한 고-레벨, 저-레벨, 객체-지향, 비쥬얼, 컴파일 및/또는 인터프리티드(interpreted) 프로그래밍 언어를 사용하여 구현되는 소스 코드, 컴파일 코드, 인터프리티드 코드, 실행가능한 코드, 정적 코드, 동적 코드, 암호화 코드 등과 같은 임의의 적절한 유형의 코드를 포함할 수 있다.
달리 구체적으로 언급되지 않는 한, "프로세싱", "컴퓨팅", "산출", "판정" 등과 같은 용어들은 컴퓨팅 시스템의 레지스터들 및/또는 메모리들 내에서 물리적 양(예를 들면, 전자)으로 표현되는 데이터를 컴퓨팅 시스템의 메모리들, 레지스터들 또는 다른 그러한 정보 저장소 내에서 물리적 양으로 유사하게 표현되는 다른 데이터로 조작 및/또는 변형하는 컴퓨터 또는 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 디바이스, 송신 또는 디스플레이 디바이스의 동작 및/또는 프로세스들을 지칭하는 것으로 이해될 것이다. 실시예들은 이러한 정황에 제한되지 않는다.
본원에서 설명된 방법들은 설명된 순서로, 또는 임의의 특정한 순서로 실행되어야 할 필요는 없다는 것에 유의한다. 게다가, 본원에서 밝혀진 방법들에 대해 설명되는 다양한 동작들은 직렬적 또는 병렬적 방식으로 실행될 수 있다.
특정한 실시예들이 본원에서 도시되고 설명되었지만, 동일한 목적을 달성하기 위해 산출되는 임의의 구성이 도시된 특정한 실시예들을 대체할 수 있다는 것이 이해되어야 한다. 이러한 개시는 다양한 실시예들의 임의의 그리고 모든 적용 또는 변형을 커버하도록 의도되었다. 상기 설명이 제한적이 아닌, 설명적인 방식으로 기술되었다는 것이 이해될 것이다. 상기의 실시예들 및 본원에서 특정하게 설명되지 않은 다른 실시예들의 조합들은 상기의 상세한 설명을 검토할 때 본 기술 분야에 통상의 지식을 가진자에게 명백할 것이다. 따라서, 다양한 실시예들의 범위는 상기의 구성들, 구조들, 및 방법들이 이용되는 임의의 다른 응용들을 포함한다.
본 개시의 요약은 독자가 본 기술적 개시물의 본질을 신속히 확인하게 할 요약서를 요구하는 37 C.F.R §1.72(b)를 따르도록 제공되었다. 이는 클레임들의 범위 또는 의미를 해석 또는 제한하는 데에 사용되지 않을 것이라는 이해와 함께 제출되었다. 덧붙여, 전술한 상세한 설명에서, 다양한 특징들이 본 개시를 능률적으로 하기 위해 단일 실시예에서 함께 그룹화된 것을 확인할 수 있다. 이러한 개시 방법은 청구된 실시예들이 각각의 클레임에서 명확히 표현된 것보다 더 많은 특징을 요구하는 의도를 비추는 것으로 해석되어서는 안 된다. 오히려, 이하의 청구항들이 반영하는 바와 같이, 본 발명의 청구 대상은 단일 개시된 실시예의 모든 특징들보다 적다. 따라서 이하의 청구범위는 이에 의해 상세한 설명에 통합되며, 각각의 청구항은 별개의 바람직한 실시예로서 자립한다. 첨부한 청구범위에서, 용어 "including" 및 "in which"는 각각 쉬운 영어로 용어 "comprising" 및 "wherein"와 동일하게 이용된다. 게다가, 용어 "제1", "제2", 및 "제3" 등은 단지 표시로서 사용되었으며, 그들의 대상에 대한 수적 요건들을 강요하도록 의도되지 않는다.
본 발명의 청구 대상이 구조적 특징들 및/또는 방법적 동작들에 특정한 언어로 설명되었지만, 첨부한 청구범위에서 정의된 청구 대상은 반드시 전술한 특정한 특징들 또는 동작들로 제한되는 것이 아니라는 것이 이해되어야 한다. 그보다는, 전술한 특정 특징들 및 동작들은 청구범위를 구현하는 예시적인 형태로 개시되었다.
Claims (15)
- 컴퓨터 구현 방법으로서,
멀티 코어 프로세서의 복수의 프로세서 코어 중 하나 이상의 프로세서 코어 상에서 실행하도록 동작하는 미디어 애플리케이션을 검출하는 단계 - 상기 미디어 애플리케이션은 상기 복수의 프로세서 코어 중 각각의 이용가능한 코어에 제공되는 복수의 주기적인 인터럽트를 포함하는 애플리케이션을 포함하고, 상기 복수의 주기적인 인터럽트는 미디어 파일의 대응하는 오디오 및 비디오 데이터 스트림들을 동기화하기 위해 상기 미디어 애플리케이션에 의해 이용되는 미디어 인터럽트들을 포함함 - ; 및
상기 멀티 코어 프로세서의 하나 이상의 프로세서 코어의 서브세트를 동적으로 선택하는 단계
를 포함하며,
상기 선택하는 단계는,
상기 복수의 프로세서 코어의 각각 상에서 실행하도록 상기 미디어 애플리케이션을 어피니타이징(affinitizing)하는 단계;
상기 멀티 코어 프로세서에 대한 성능 또는 전력 상태 레지던시(residency)를 측정하는 단계;
상기 성능 또는 전력 상태 레지던시를 임계값과 비교하는 단계;
상기 성능 또는 전력 상태 레지던시가 상기 임계값을 초과하지 않으면, 상기 멀티 코어 프로세서의 전력 소비를 감소시키기 위해 적어도 하나 더 적은 프로세서 코어 상에서 실행하도록 상기 미디어 애플리케이션 및 상기 복수의 주기적인 인터럽트를 디-어피니타이징(de-affinitizing)하는 단계; 및
상기 성능 또는 전력 상태 레지던시가 상기 임계값을 초과하지 않을 때까지 상기 선택하는 단계들을 반복하는 단계를 포함하는 컴퓨터 구현 방법. - 제1항에 있어서,
상기 하나 이상의 프로세서 코어의 서브세트는 상기 멀티 코어 프로세서의 전체 개수보다 적은 개수의 프로세서 코어들을 포함하는 컴퓨터 구현 방법. - 삭제
- 제1항에 있어서,
상기 하나 이상의 프로세서 코어의 서브세트를 동적으로 선택하는 단계는,
상기 멀티 코어 프로세서에 대한 상기 성능 또는 전력 상태 레지던시를 재측정하는 단계;
상기 재측정된 성능 또는 전력 상태 레지던시를 상기 임계값과 비교하는 단계;
상기 성능 또는 전력 상태 레지던시가 상기 임계값을 초과하지 않으면, 상기 멀티 코어 프로세서의 적어도 하나 더 적은 프로세서 코어 상에서 실행하도록 상기 미디어 애플리케이션을 디-어피니타이징하는 단계;
상기 미디어 애플리케이션 이외에, 상기 복수의 프로세서 코어 중 하나 이상의 프로세서 코어 상에서 실행하도록 동작하는 하나 이상의 애플리케이션을 검출하는 단계; 및
상기 멀티 코어 프로세서에 대한 상기 성능 또는 전력 상태 레지던시의 측정들 사이의 시간 간격을 감소시키는 단계를 포함하는 컴퓨터 구현 방법. - 제1항에 있어서,
상기 미디어 애플리케이션은 대응하는 오디오 및 비디오 데이터 스트림들을 갖는 상기 미디어 파일을 플레이백(playback)하도록 동작하는 컴퓨터 구현 방법. - 제5항에 있어서,
상기 미디어 애플리케이션은 상기 오디오 및 비디오 데이터 스트림들을 동기화하도록 미디어 인터럽트들을 주기적으로 생성하도록 동작하고, 상기 미디어 인터럽트들은 상기 멀티 코어 프로세서의 하나 이상의 프로세서 코어로 송신되고, 상기 미디어 애플리케이션은 상기 멀티 코어 프로세서의 하나 이상의 프로세서 코어 상에서 실행하도록 어피니타이징되는 컴퓨터 구현 방법. - 제1항에 있어서,
상기 미디어 애플리케이션을 실행하기 위한 상기 멀티 코어 프로세서의 최소 수의 프로세서 코어는 2개의 프로세서 코어를 포함하는 컴퓨터 구현 방법. - 멀티 코어 프로세서의 복수의 프로세서 코어 중 각각의 이용가능한 코어에 제공되는 복수의 주기적인 인터럽트를 포함하는 애플리케이션을 포함하는 미디어 애플리케이션을 검출하도록 동작하고 - 상기 복수의 주기적인 인터럽트는 미디어 파일의 대응하는 오디오 및 비디오 데이터 스트림들을 동기화하기 위해 상기 미디어 애플리케이션에 의해 이용되는 미디어 인터럽트들을 포함함 - , 상기 멀티 코어 프로세서의 2개 이상의 프로세서 코어의 서브세트를 동적으로 선택하고, 상기 복수의 프로세서 코어의 각각 상에서 실행하도록 상기 미디어 애플리케이션을 어피니타이징하고, 상기 멀티 코어 프로세서에 대한 성능 또는 전력 상태 레지던시를 측정하고, 상기 성능 또는 전력 상태 레지던시를 임계값과 비교하고, 상기 성능 또는 전력 상태 레지던시가 상기 임계값을 초과하지 않으면, 상기 멀티 코어 프로세서의 전력 소비를 감소시키기 위해 적어도 하나 더 적은 프로세서 코어 상에서 실행하도록 상기 미디어 애플리케이션 및 상기 복수의 주기적인 인터럽트들을 디-어피니타이징하고, 상기 성능 또는 전력 상태 레지던시가 상기 임계값을 초과하지 않을 때까지 상기 선택하는 단계들을 반복하도록 동작하는 어피니타이제이션 관리 모듈을 포함하는 장치.
- 제8항에 있어서,
상기 2개 이상의 프로세서 코어의 서브세트는 상기 멀티 코어 프로세서의 전체 개수보다 적은 개수의 프로세서 코어들을 포함하는 장치. - 삭제
- 제8항에 있어서,
상기 어피니타이제이션 관리 모듈은, 상기 멀티 코어 프로세서에 대한 상기 성능 또는 전력 상태 레지던시를 재측정하고, 상기 재측정된 성능 또는 전력 상태 레지던시를 상기 임계값과 비교하고, 상기 성능 또는 전력 상태 레지던시가 상기 임계값을 초과하지 않으면, 상기 멀티 코어 프로세서의 적어도 하나 더 적은 프로세서 코어 상에서 실행하도록 상기 미디어 애플리케이션을 디-어피니타이징하고, 상기 미디어 애플리케이션 이외에, 상기 복수의 프로세서 코어 중 하나 이상의 프로세서 코어 상에서 실행하도록 동작하는 하나 이상의 애플리케이션을 검출하고, 상기 멀티 코어 프로세서에 대한 상기 성능 또는 전력 상태 레지던시의 측정들 사이의 시간 간격을 감소시키도록 동작하는 장치. - 제8항에 있어서,
상기 미디어 애플리케이션은 대응하는 오디오 및 비디오 데이터 스트림들을 갖는 미디어 파일을 플레이백하도록 동작하는 장치. - 제12항에 있어서,
상기 미디어 애플리케이션은 상기 오디오 및 비디오 데이터 스트림들을 동기화하도록 미디어 인터럽트들을 주기적으로 생성하도록 동작하고, 상기 미디어 애플리케이션을 실행하기 위한 상기 멀티 코어 프로세서의 최소 수의 프로세서 코어는 2개의 프로세서 코어를 포함하는 장치. - 제13항에 있어서,
상기 어피니타이제이션 관리 모듈은 상기 멀티 코어 프로세서의 하나 이상의 프로세서 코어로 상기 미디어 인터럽트들을 향하게 하도록 동작하고, 상기 미디어 애플리케이션은 상기 멀티 코어 프로세서의 하나 이상의 프로세서 코어 상에서 실행하도록 어피니타이징되는 장치. - 실행될 때 시스템이 제1항, 제2항, 제4항 내지 제7항 중 어느 한 항의 방법을 구현하도록 하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/752,256 US8607083B2 (en) | 2010-04-01 | 2010-04-01 | Method and apparatus for interrupt power management |
US12/752,256 | 2010-04-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110110737A KR20110110737A (ko) | 2011-10-07 |
KR101412342B1 true KR101412342B1 (ko) | 2014-06-25 |
Family
ID=44071741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110030384A KR101412342B1 (ko) | 2010-04-01 | 2011-04-01 | 인터럽트 전력 관리를 위한 장치 및 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8607083B2 (ko) |
JP (1) | JP2011216093A (ko) |
KR (1) | KR101412342B1 (ko) |
CN (1) | CN102213997B (ko) |
DE (1) | DE102011015555B8 (ko) |
GB (1) | GB2479268B (ko) |
TW (1) | TWI463397B (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9182803B2 (en) * | 2010-12-02 | 2015-11-10 | Advanced Micro Devices, Inc. | Load step mitigation method and apparatus |
US9191686B2 (en) * | 2011-07-22 | 2015-11-17 | Honeywell International Inc. | System and method of implementing synchronized audio and video streaming |
CN102520782A (zh) * | 2011-12-15 | 2012-06-27 | 江苏中科梦兰电子科技有限公司 | 基于处理器核数自动调节的电源管理方法 |
US9372524B2 (en) * | 2011-12-15 | 2016-06-21 | Intel Corporation | Dynamically modifying a power/performance tradeoff based on processor utilization |
US9137848B2 (en) * | 2012-01-31 | 2015-09-15 | Lg Electronics Inc. | Mobile terminal, controlling method thereof and recording medium thereof |
KR101899811B1 (ko) * | 2012-04-04 | 2018-09-20 | 엘지전자 주식회사 | 이동 단말기 및 그 제어 방법, 이를 위한 기록 매체 |
KR101975288B1 (ko) | 2012-06-15 | 2019-05-07 | 삼성전자 주식회사 | 멀티 클러스터 프로세싱 시스템 및 그 구동 방법 |
KR102060431B1 (ko) * | 2012-08-24 | 2020-02-11 | 삼성전자주식회사 | 멀티 코어 시스템의 전력 관리 장치 및 방법 |
US8984313B2 (en) | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US9201821B2 (en) * | 2012-09-27 | 2015-12-01 | Apple Inc. | Interrupt timestamping |
JP6051924B2 (ja) * | 2013-02-21 | 2016-12-27 | 富士通株式会社 | 情報処理装置の制御方法、制御プログラム、情報処理装置 |
US20140240328A1 (en) * | 2013-02-26 | 2014-08-28 | Prasoonkumar Surti | Techniques for low energy computation in graphics processing |
US20140281592A1 (en) * | 2013-03-18 | 2014-09-18 | Advanced Micro Devices, Inc. | Global Efficient Application Power Management |
CN109240481B (zh) * | 2013-08-28 | 2020-08-11 | 威盛电子股份有限公司 | 多核微处理器及使用其省电的方法 |
CN104424156A (zh) * | 2013-09-09 | 2015-03-18 | 中兴通讯股份有限公司 | 处理器的核处理方法、装置及终端 |
US9928110B2 (en) * | 2014-03-31 | 2018-03-27 | Cfph, Llc | Resource allocation based on processor assignments |
US10025367B2 (en) | 2014-08-19 | 2018-07-17 | Intel Corporation | Dynamic scaling of graphics processor execution resources |
US10503238B2 (en) * | 2016-11-01 | 2019-12-10 | Microsoft Technology Licensing, Llc | Thread importance based processor core parking and frequency selection |
US10877547B2 (en) | 2016-11-18 | 2020-12-29 | Ati Technologies Ulc | Application profiling for power-performance management |
US10698737B2 (en) * | 2018-04-26 | 2020-06-30 | Hewlett Packard Enterprise Development Lp | Interoperable neural network operation scheduler |
WO2023159090A1 (en) * | 2022-02-16 | 2023-08-24 | Shure Acquisition Holdings, Inc. | Wireless microphone system and methods for synchronizing a wireless transmitter and a wireless receiver |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060127120A (ko) * | 2004-03-16 | 2006-12-11 | 가부시키가이샤 소니 컴퓨터 엔터테인먼트 | 멀티-프로세서 시스템에서 전력손실을 줄이는 방법 및 장치 |
WO2008126419A1 (ja) * | 2007-04-10 | 2008-10-23 | Ssd Company Limited | 運動支援方法 |
US20100077185A1 (en) | 2008-09-19 | 2010-03-25 | Microsoft Corporation | Managing thread affinity on multi-core processors |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5617502A (en) * | 1996-03-22 | 1997-04-01 | Cirrus Logic, Inc. | System and method synchronizing audio and video digital data signals during playback |
US6941480B1 (en) * | 2000-09-30 | 2005-09-06 | Intel Corporation | Method and apparatus for transitioning a processor state from a first performance mode to a second performance mode |
US7353269B2 (en) * | 2000-12-21 | 2008-04-01 | Fujitsu Limited | Network monitoring system |
US7017060B2 (en) * | 2001-03-19 | 2006-03-21 | Intel Corporation | Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down |
JP2003281112A (ja) | 2002-03-25 | 2003-10-03 | Fujitsu Ltd | マルチプロセッサシステム |
US7256788B1 (en) * | 2002-06-11 | 2007-08-14 | Nvidia Corporation | Graphics power savings system and method |
US20050108717A1 (en) | 2003-11-18 | 2005-05-19 | Hong Steve J. | Systems and methods for creating an application group in a multiprocessor system |
TWI258083B (en) * | 2003-11-20 | 2006-07-11 | Via Tech Inc | Interrupt signal control system and control method |
US7398410B2 (en) * | 2005-07-08 | 2008-07-08 | National Tsing Hua University | Processor employing a power managing mechanism and method of saving power for the same |
JP4671796B2 (ja) | 2005-07-27 | 2011-04-20 | 富士通テン株式会社 | マイクロコンピュータのタイマ調整機構 |
JP2008032052A (ja) | 2006-07-26 | 2008-02-14 | Nsk Ltd | スラストころ軸受 |
US20080091974A1 (en) | 2006-10-11 | 2008-04-17 | Denso Corporation | Device for controlling a multi-core CPU for mobile body, and operating system for the same |
US20080115010A1 (en) * | 2006-11-15 | 2008-05-15 | Rothman Michael A | System and method to establish fine-grained platform control |
US7793125B2 (en) * | 2007-01-10 | 2010-09-07 | International Business Machines Corporation | Method and apparatus for power throttling a processor in an information handling system |
JP2009032052A (ja) * | 2007-07-27 | 2009-02-12 | Ns Solutions Corp | 情報処理装置、情報処理方法及びプログラム |
US7962679B2 (en) * | 2007-09-28 | 2011-06-14 | Intel Corporation | Interrupt balancing for multi-core and power |
US8739165B2 (en) | 2008-01-22 | 2014-05-27 | Freescale Semiconductor, Inc. | Shared resource based thread scheduling with affinity and/or selectable criteria |
US8010822B2 (en) | 2008-03-28 | 2011-08-30 | Microsoft Corporation | Power-aware thread scheduling and dynamic use of processors |
US20090259865A1 (en) * | 2008-04-11 | 2009-10-15 | Qualcomm Incorporated | Power Management Using At Least One Of A Special Purpose Processor And Motion Sensing |
US20100058086A1 (en) | 2008-08-28 | 2010-03-04 | Industry Academic Cooperation Foundation, Hallym University | Energy-efficient multi-core processor |
KR20100035394A (ko) * | 2008-09-26 | 2010-04-05 | 삼성전자주식회사 | 멀티 프로세싱에서의 메모리 관리장치 및 그 방법 |
CN101441510A (zh) * | 2008-11-27 | 2009-05-27 | 深圳华为通信技术有限公司 | 一种实现多处理器处理信息的方法和终端 |
CN101436098A (zh) | 2008-12-24 | 2009-05-20 | 华为技术有限公司 | 降低多核对称多处理系统的功耗的方法及装置 |
US8122269B2 (en) * | 2009-01-07 | 2012-02-21 | International Business Machines Corporation | Regulating power consumption in a multi-core processor by dynamically distributing power and processing requests by a managing core to a configuration of processing cores |
US8190939B2 (en) * | 2009-06-26 | 2012-05-29 | Microsoft Corporation | Reducing power consumption of computing devices by forecasting computing performance needs |
US8543857B2 (en) * | 2009-09-26 | 2013-09-24 | Intel Corporation | Method and apparatus for low power operation of multi-core processors |
US8279213B2 (en) * | 2009-12-23 | 2012-10-02 | Intel Corporation | Synchronized media processing |
-
2010
- 2010-04-01 US US12/752,256 patent/US8607083B2/en active Active
-
2011
- 2011-03-30 DE DE102011015555.4A patent/DE102011015555B8/de active Active
- 2011-03-31 TW TW100111242A patent/TWI463397B/zh not_active IP Right Cessation
- 2011-03-31 JP JP2011077275A patent/JP2011216093A/ja active Pending
- 2011-03-31 GB GB1105468.1A patent/GB2479268B/en active Active
- 2011-04-01 KR KR1020110030384A patent/KR101412342B1/ko active IP Right Grant
- 2011-04-01 CN CN201110096121.7A patent/CN102213997B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060127120A (ko) * | 2004-03-16 | 2006-12-11 | 가부시키가이샤 소니 컴퓨터 엔터테인먼트 | 멀티-프로세서 시스템에서 전력손실을 줄이는 방법 및 장치 |
WO2008126419A1 (ja) * | 2007-04-10 | 2008-10-23 | Ssd Company Limited | 運動支援方法 |
US20100077185A1 (en) | 2008-09-19 | 2010-03-25 | Microsoft Corporation | Managing thread affinity on multi-core processors |
Also Published As
Publication number | Publication date |
---|---|
KR20110110737A (ko) | 2011-10-07 |
GB201105468D0 (en) | 2011-05-18 |
GB2479268B (en) | 2014-11-05 |
DE102011015555B4 (de) | 2016-09-01 |
US20110246804A1 (en) | 2011-10-06 |
DE102011015555B8 (de) | 2016-10-20 |
DE102011015555A1 (de) | 2012-06-14 |
CN102213997B (zh) | 2015-03-25 |
JP2011216093A (ja) | 2011-10-27 |
TW201205435A (en) | 2012-02-01 |
US8607083B2 (en) | 2013-12-10 |
CN102213997A (zh) | 2011-10-12 |
TWI463397B (zh) | 2014-12-01 |
GB2479268A (en) | 2011-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101412342B1 (ko) | 인터럽트 전력 관리를 위한 장치 및 방법 | |
JP5746271B2 (ja) | 低電力動作のための方法、装置、コンピュータプログラム及びシステム | |
US8745362B2 (en) | Operating system aware branch predictor using a dynamically reconfigurable branch history table | |
US9552046B2 (en) | Performance management methods for electronic devices with multiple central processing units | |
EP3345092B1 (en) | Characterizing gpu workloads and power management using command stream hinting | |
US20080016380A1 (en) | Granular reduction in power consumption | |
US20060107262A1 (en) | Power consumption-based thread scheduling | |
CN102483646A (zh) | 根据性能灵敏度不均匀地改变计算单元的性能 | |
US10212844B2 (en) | System and method for improving fan life in an information handling system | |
US20180296922A1 (en) | System and method for dynamically allocating resources to a game process | |
US20170017288A1 (en) | Determining power capping policies for a computer device | |
US20190146567A1 (en) | Processor throttling based on accumulated combined current measurements | |
US8239697B2 (en) | Processor performance state control system | |
WO2022064371A1 (en) | Glitchless gpu switching at a multiplexer | |
EP3264226B1 (en) | Pin control method and device | |
US20090037522A1 (en) | System and Method for Simulating Network Functionality for Demonstration Devices | |
US9208755B2 (en) | Low power application execution on a data processing device having low graphics engine utilization | |
CN109558210A (zh) | 一种虚拟机应用主机gpu设备的方法及系统 | |
WO2020052472A1 (zh) | 异常应用检测及控制方法、装置、终端及存储介质 | |
US8751840B2 (en) | Computer providing motion picture mode and method of setting up system-mode while playing motion pictures | |
US6496894B1 (en) | Method for enforcing device connection policies | |
US20210373866A1 (en) | Bottleneck detection device and computer readable medium | |
WO2023205926A1 (en) | Performance-aware smart framework to improve cpu power efficiency in static display read mode | |
CN112825539B (zh) | 硬件管理方法及相关联的机器可读介质、电子设备 | |
US20060179330A1 (en) | Apparatus and method for ensuring power compatibility between a system board and a processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170601 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180529 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190530 Year of fee payment: 6 |