KR20140026308A - Apparatus and method for managing power in multi-core system - Google Patents
Apparatus and method for managing power in multi-core system Download PDFInfo
- Publication number
- KR20140026308A KR20140026308A KR1020130100987A KR20130100987A KR20140026308A KR 20140026308 A KR20140026308 A KR 20140026308A KR 1020130100987 A KR1020130100987 A KR 1020130100987A KR 20130100987 A KR20130100987 A KR 20130100987A KR 20140026308 A KR20140026308 A KR 20140026308A
- Authority
- KR
- South Korea
- Prior art keywords
- computing
- core
- domain
- state
- domains
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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
- G06F1/3234—Power saving characterised by the action undertaken
-
- 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
-
- 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
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
Description
본 발명은 멀티 코어 시스템에서의 전력 관리 장치 및 방법에 관한 것이다.The present invention relates to a power management apparatus and method in a multi-core system.
통신 및 엔터테인먼트 애플리케이션들의 융합으로, 이동 장치 제조업체들은 더 나은 성능을 제공하면서 전력 소비를 줄여야 하는 과제, 즉 더 적은 전력으로 더 나은 성능을 제공하는 과제를 안고 있다. 전력 관리는 시스템이 비활성 상태일 때 전력을 절약하는 데 도움이 되므로, 배터리 구동식 시스템에서 중요하다.With the convergence of telecommunications and entertainment applications, mobile device manufacturers are faced with the challenge of reducing power consumption while providing better performance, ie providing better performance with less power. Power management is important in battery-powered systems because it helps save power when the system is inactive.
시스템은 사용되지 않을 경우에 저전력 소비 상태인 '슬립 상태(sleep state)'에 놓인다. 이러한 '슬립 상태'에서 시스템은 사용자를 위한 어떠한 유용한 작업들(tasks)도 수행하지 않는다. 예를 들어, 시스템이 잠시 동안 비활성(inactive)일 때 디스플레이를 오프 상태로 스위칭함으로써 전력을 절약할 수 있다.The system is placed in a 'sleep state' which is a low power consumption state when not in use. In this 'sleep state' the system does not perform any useful tasks for the user. For example, power can be saved by switching the display off when the system is inactive for a while.
기존 시스템들은 C-상태 및 P-상태라고 하는 다양한 프로세서 상태들을 규정함으로써, 효과적인 전력 소비를 다루고 있다. C-상태는 명령을 실행하거나 아이들(idle) 상태인 프로세서에 대응한다. P-상태는 전압 및 주파수 상태 쌍의 세트에 대응한다. 운영 체제는 전력을 절약하기 위해, CPUIDLE 및 CPUFREQ 서브시스템들을 배치한다. 작업 부하에 의거하여, CPUFREQ 서브시스템 구현에서는 시스템에 존재하는 각 코어의 전압 및 주파수를 낮추거나 높인다. 어떤 상황에서는, 코어마다 상이한 C-상태를 적용하도록 선택함으로써 시스템의 전력 수요를 더 줄일 수 있다. 인터럽트에 의한 웨이크업(wakeup) 시, CPUFREQ 서브 시스템은 시스템을 보다 높은 전압 및 주파수 상태에 놓이는 코어들을 갖는 적합한 C-상태(C0)로 천이하도록 한다. 그런 다음, 상기 시스템의 현재 작업 부하에 의거하여 상기 코어들의 전압과 주파수가 더 낮아질 수 있다.Existing systems address effective power consumption by defining various processor states, called C-states and P-states. The C-state corresponds to a processor executing an instruction or being in an idle state. The P-state corresponds to a set of voltage and frequency state pairs. The operating system deploys CPUIDLE and CPUFREQ subsystems to save power. Depending on the workload, the CPUFREQ subsystem implementation lowers or raises the voltage and frequency of each core present in the system. In some situations, the power demand of the system can be further reduced by choosing to apply different C-states from core to core. Upon wakeup by interrupt, the CPUFREQ subsystem causes the system to transition to the appropriate C-state C0 with cores that are in a higher voltage and frequency state. The voltage and frequency of the cores can then be lowered based on the current workload of the system.
배터리 구동식 휴대 시스템들에서, 종종 대부분의 인터럽트들 및 그 애플리케이션들은 전력을 절약하기 위해 낮은 전압 및 주파수 상태로 서비스될 수 있다. 이러한 시스템에서, 상기 기술들은 코어를 먼저 더 높은 P-상태가 되도록 하고, 이어서 시스템의 현재 작업 로드를 위해 더 적합한 더 낮은 P-상태로 내려가게 한다. 예를 들면, 웨이크업 이벤트의 수신 시, 디바이스는 '슬립 상태'에서 벗어나, 상기 장치에 놓여진 요구에 관계없이 높은 성능 포인트에서 동작할 수 있다. 이후 상기 요구에 의거하여 디바이스는 최적의 성능 포인트에 놓일 수 있다. 그러나, 높은 성능 포인트에서 최적의 성능 포인트로의 천이는 일정 상황에서 비효율적일 수 있다.In battery powered portable systems, often most interrupts and their applications can be serviced to low voltage and frequency states to save power. In such a system, the techniques first bring the core into a higher P-state, and then down to a lower P-state that is more suitable for the system's current workload. For example, upon receipt of a wake up event, the device may leave the 'sleep state' and operate at a high performance point regardless of the demand placed on the device. The device can then be placed at an optimal performance point based on the requirements. However, the transition from a high performance point to an optimal performance point may be inefficient in some situations.
마찬가지로, 웨이크업 이벤트의 수신 시, 상기 장치의 2차 코어는 슬립 상태에서 벗어나며, 상기 장치에 놓여진 요구에 기초하여 최적의 성능 포인트 또는 슬립 상태에 놓일 수 있다. 마찬가지로, 이러한 천이는 또한 때때로 비효율적일 수 있다. 따라서, 새롭고 더 효율적인 전력 관리 기술들이 요구된다.Likewise, upon receipt of a wake up event, the secondary core of the device is taken out of sleep state and may be placed in an optimal performance point or sleep state based on the requirements placed on the device. Likewise, this transition can also sometimes be inefficient. Thus, new and more efficient power management techniques are needed.
본 발명의 실시 예들은 웨이크업 이벤트를 식별하고 초래되는 추가 소비 전력을 절약하기 위해 지능적으로 상이한 코어를 사용하는 장치 및 방법을 제공할 수 있다.Embodiments of the present invention may provide an apparatus and method for intelligently using different cores to identify wake-up events and to save additional power consumption that results.
또한, 본 발명의 다른 실시 예들은 컴퓨팅 요구에 의거하여 웨이크업 소스를 도메인으로 그룹화하는 장치 및 방법을 제공할 수 있다.In addition, other embodiments of the present disclosure may provide an apparatus and a method for grouping wake-up sources into domains based on computing needs.
따라서, 본 발명의 실시 예는 멀티 코어 디바이스의 재시작 시, 멀티 코어 디바이스의 코어의 불필요한 웨이크업을 방지함으로써 전력을 절약하는 방법을 제공하며, 이 방법은 컴퓨팅 요구에 의거하여 웨이크업 소스들을 적어도 하나의 컴퓨팅 도메인으로 그룹화하는 것, 코어 ID들 및 P-상태 정보에 의거하여 적어도 하나의 컴퓨팅 도메인을 구성하는 것, 웨이크업 소스들의 적어도 하나의 인터럽트의 수신 시 정보에 의거하여 적어도 하나의 컴퓨팅 도메인을 획득하는 것, 및 적어도 하나의 인터럽트를 처리하기 위해 코어를 재시작하는 것을 포함한다.Accordingly, an embodiment of the present invention provides a method for saving power by preventing unnecessary wakeup of a core of a multicore device upon restart of a multicore device, the method comprising at least one wakeup source based on a computing requirement. Grouping into at least one computing domain, configuring at least one computing domain based on core IDs and P-state information, and receiving at least one computing domain based on information upon receipt of at least one interrupt of wake-up sources. Acquiring, and restarting the core to handle at least one interrupt.
또한, 본 발명의 실시 예는 멀티 코어 디바이스의 재시작 시 멀티 코어 디바이스의 코어의 불필요한 웨이크업을 방지함으로써 전력을 절약하는 디바이스를 제공하며, 디바이스는 적어도 하나의 프로세서를 더 포함하는 집적 회로, 및 집적 회로 내의 컴퓨터 프로그램 코드를 갖는 적어도 하나의 메모리를 포함하고, 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서로 하여금 디바이스가, 컴퓨팅 요구에 의거하여 웨이크업 소스들을 적어도 하나의 컴퓨팅 도메인으로 그룹화하도록 하고, 코어 ID들 및 P-상태 정보에 의거하여 적어도 하나의 컴퓨팅 도메인을 구성하도록 하고, 웨이크업 소스들의 적어도 하나의 인터럽트의 수신 시 정보에 의거하여 적어도 하나의 컴퓨팅 도메인을 획득하도록 하고, 적어도 하나의 인터럽트를 처리하기 위해 코어를 재시작하게 하도록 구성된다.In addition, an embodiment of the present invention provides a device that saves power by preventing unnecessary wakeup of a core of a multi-core device upon restart of the multi-core device, the device further comprising at least one processor, and an integrated circuit At least one memory having computer program code in circuitry, the at least one memory and computer program code causing the at least one processor to cause the device to group wake-up sources into at least one computing domain based on a computing requirement. Configure at least one computing domain based on core IDs and P-state information, obtain at least one computing domain based on information upon receipt of at least one interrupt of wake-up sources, and at least one Handle interrupts To restart the core to do so.
또한, 본 발명의 실시 예들의 이들 양태 및 다른 양태들은 다음의 설명 및 첨부 도면과 함께 고려되는 경우 보다 용이하게 인식 및 이해될 것이다. 그러나, 다음의 설명은 바람직한 실시 예들 및 그 다수의 특정 상세를 제시하지만, 예시이며 그에 한정되는 것이 아니라는 것을 알아야 한다. 다수의 변형들 및 변경들이 본 발명의 실시 예들의 범위 내에서 그 사상을 일탈하지 않고 이루어질 수 있으며, 본 발명의 실시 예들은 이러한 모든 변경을 포함한다.In addition, these and other aspects of embodiments of the invention will be more readily appreciated and understood when considered in conjunction with the following description and the annexed drawings. However, it is to be understood that the following description presents preferred embodiments and numerous specific details thereof, but is illustrative and not restrictive. Many modifications and variations can be made without departing from the spirit and scope of the embodiments of the invention, and embodiments of the invention include all such changes.
본 발명의 실시 예들에 따르면, 지능적으로 상이한 코어를 사용하여 웨이크업 이벤트를 식별하고 초래되는 추가 소비 전력을 절약할 수 있다.According to embodiments of the present invention, intelligently using different cores can identify wake-up events and save additional power consumption.
본 발명은 첨부 도면에서 예시되며, 도면 전반에 걸쳐 동일한 부호는 여러 도면들에서 대응하는 부분을 지시한다. 본 발명의 실시 예들은 도면을 참조하여 다음의 설명에서 보다 잘 이해될 것이다.
도 1은 본 발명에 개시된 실시 예들에 따른 디바이스 전력 상태 및 전환을 나타내는 도면이다.
도 2는 본 발명에 개시된 실시 예들에 따른 디바이스의 슬립 상태 및 대응하는 웨이크업 소스를 나타내는 도면이다.
도 3은 본 발명에 개시된 실시 예들에 따른 컴퓨팅 도메인 테이블 및 디폴트 상태 테이블을 나타내는 도면이다.
도 4는 본 발명에 개시된 실시 예들에 따른 일시 중지(suspend) 플로우를 설명하는 흐름도이다.
도 5는 본 발명에 개시된 실시 예들에 따른 웨이크업 시퀀스를 설명하는 흐름도이다.
도 6은 본 발명에 개시된 실시 예들에 따른 애플리케이션을 구현하는 컴퓨팅 환경을 나타내는 도면이다.BRIEF DESCRIPTION OF THE DRAWINGS The invention is illustrated in the accompanying drawings, wherein like reference numerals designate corresponding parts in the various figures. Embodiments of the present invention will be better understood from the following description with reference to the drawings.
1 is a diagram illustrating a device power state and switching according to the embodiments disclosed in the present invention.
2 is a diagram illustrating a sleep state and a corresponding wake-up source of a device according to embodiments of the present disclosure.
3 is a diagram illustrating a computing domain table and a default state table according to embodiments of the present invention.
4 is a flowchart illustrating a suspend flow according to embodiments disclosed in the present invention.
5 is a flowchart illustrating a wake up sequence according to embodiments of the present invention.
6 is a diagram illustrating a computing environment for implementing an application according to embodiments of the present disclosure.
본 발명의 실시 예들과 그 다양한 특징들 및 유리한 상세들을, 첨부 도면들에 도시되고 이후의 설명에 상세히 기술된 비한정적 실시 예들을 참조하여 더욱 충분하게 설명하기로 한다. 본 발명의 실시 예들을 불필요하게 모호하게 만들지 않도록 공지의 구성 요소들 및 처리 기법들의 설명을 생략하기로 한다. 본 명세서에서 사용되는 예들은 본 발명의 실시 예들을 실시할 수 있는 방안들의 이해를 용이하게 하고 나아가 당업자들로 하여금 본 발명의 실시 예들을 실시할 수 있게 하려고 의도된 것에 지나지 않는다. 따라서 그 예들을 본 발명의 실시 예들의 범위를 한정하는 것으로 해석하여서는 안 된다.Embodiments of the present invention and their various features and advantageous details will be more fully described with reference to the non-limiting embodiments shown in the accompanying drawings and described in detail in the following description. Description of well-known components and processing techniques will be omitted so as not to unnecessarily obscure embodiments of the present invention. The examples used herein are merely intended to facilitate understanding of the ways in which the embodiments of the present invention can be practiced and to enable those skilled in the art to practice the embodiments of the present invention. Therefore, the examples should not be construed as limiting the scope of the embodiments of the present invention.
본 발명의 실시 예들은 웨이크업 이벤트를 식별하고 전력을 절약하기 위해 지능적으로 디바이스의 다른 코어들 및 그 동작 상태를 이용하는 방법 및 시스템을 제공할 수 있다. 웨이크업 이벤트들은 컴퓨팅 요구에 기반하여 도메인들로 그룹화될 수 있다. 각 컴퓨팅 도메인은 다음으로 컴퓨팅 도메인 테이블 및/또는 디폴트 상태 테이블을 사용하여 하나 이상의 코어 ID, P-상태(Processor performance states) 및 C-상태(Processor operating states)로 매핑될 수 있다. 인터럽트가 디바이스에서 발생될 때, 상기 컴퓨팅 도메인 및 디폴트 상태 테이블들은 상기 코어들의 특정 전압 및 주파수 레벨뿐만 아니라 어느 코어들이 전력 공급될 지를 결정하기 위해 사용될 수 있다.Embodiments of the present invention may provide a method and system for intelligently using different cores and their operating states of a device to identify wake-up events and save power. Wakeup events may be grouped into domains based on computing needs. Each computing domain may then be mapped to one or more core IDs, processor performance states, and processor operating states using the computing domain table and / or default state table. When an interrupt is generated at the device, the computing domain and default state tables can be used to determine which cores are to be powered as well as the specific voltage and frequency level of the cores.
이하 도면들, 보다 구체적으로는 도 1 내지 도 6을 참조하면, 실시 예들이 도시되어 있으며, 여기서 동일한 참조 부호는 도면 전반에 걸쳐 일관되도록 대응하는 특징을 나타낸다.Referring now to the drawings, and more particularly to FIGS. 1 to 6, embodiments are shown wherein like reference numerals indicate corresponding features consistently throughout the figures.
도 1은 배터리 전력 공급 디바이스의 상태도이다. 상기 배터리 전력 공급 디바이스는 이동 전화, PDA(Personal Digital Assistant), 및/또는 임의의 다른 적합한 유형의 디바이스일 수 있다. 도 1은 상기 디바이스의 다양한 전력 상태들을 나타낸다. 이러한 예에서, 상기 디바이스는 노멀(normal) 모드, 저전력(low power) 모드, 슬립(sleep) 모드 및 깊은 슬립(deep sleep) 모드 등의 여러 모드들을 갖는다. 상기 디바이스는 타임아웃 이벤트 시 전력 모드를 낮추도록 전환된다. 상기 디바이스는 임의의 웨이크업 이벤트 시 노멀 상태로 돌아온다. 슬립 모드에서, 디바이스의 모든 코어들이 전력 오프된다. 깊은 슬립 모드에서는, RAM만 전원 온 되지만, CPU 및 다른 주변 기기는 셧 다운(shut down)된다. 슬립 모드에서 웨이크업 이벤트가 발생되면, 디바이스는 노멀 모드로 이동된다. 상기 디바이스에 이용 가능한 다른 저전력 상태들의 개수는 상기 디바이스의 종류, 및 하드웨어가 제공할 수 저전력 옵션의 종류에 의존한다. 예를 들면, 상기 디바이스는 비사용 시 슬립 모드에 놓일 것이며, 그런 다음, 디바이스상에서 키가 눌려질 경우, 디바이스는 노멀 모드로 이동한다.1 is a state diagram of a battery powered device. The battery powered device may be a mobile phone, a personal digital assistant (PDA), and / or any other suitable type of device. 1 illustrates various power states of the device. In this example, the device has several modes, such as normal mode, low power mode, sleep mode and deep sleep mode. The device is switched to lower the power mode during a timeout event. The device returns to the normal state on any wake up event. In sleep mode, all cores of the device are powered off. In deep sleep mode, only RAM is powered on, but the CPU and other peripherals are shut down. If a wake up event occurs in sleep mode, the device is moved to normal mode. The number of other low power states available to the device depends on the type of device and the type of low power option that the hardware can provide. For example, the device will be in sleep mode when not in use, and then when the key is pressed on the device, the device moves to normal mode.
도 2는 본 발명에 개시된 실시 예들에 따른 디바이스의 슬립 상태 및 대응하는 웨이크업 소스들(sources)을 나타낸다. 상이한 웨이크업 소스들은 복수의 저전력 상태들 중 각각에 대해 보여진다. 도 2에서는 깊은 슬립 모드에서의 웨이크업 소스들은 슬립 모드에 대한 웨이크업 소스의 서브세트이며, 슬립 모드의 웨이크업 소스들은 저전력 모드에 대한 웨이크업 소스들의 서브세트이다. 예를 들면, 디바이스가 깊은 슬립 모드에 있을 때의 웨이크업 소스는 RTC(Real-time clock) 알람, 외부 인터럽트 소스, 키 누름 이벤트, 인터럽트 요청 핸들러를 처리하고 어느 소스로부터 인터럽트가 오는 지를 알아내는 PMIC(Power Management Interrupt Controller) 및 착신 콜 등의 모뎀 인터럽트이다.2 illustrates a sleep state and corresponding wakeup sources of a device according to embodiments disclosed herein. Different wake-up sources are shown for each of the plurality of low power states. In FIG. 2, wakeup sources in deep sleep mode are a subset of wakeup sources for sleep mode, and wakeup sources in sleep mode are a subset of wakeup sources for low power mode. For example, a wakeup source when the device is in deep sleep mode handles a real-time clock (RTC) alarm, an external interrupt source, a key press event, an interrupt request handler, and a PMIC that determines which source the interrupt comes from. Modem interrupts such as (Power Management Interrupt Controller) and incoming call.
도 3은 본 발명에 개시된 실시 예들에 따른 컴퓨팅 도메인 테이블 및 디폴트 상태 테이블의 예를 나타낸다. 상기 도면은 상이한 웨이크업 이벤트들을 도메인 A(301) 및 도메인 B(302)와 같은 각각 분리된 도메인들로 나누는 컴퓨팅 도메인 테이블(300)을 나타낸다. 일부 실시 예들에서, 상기 웨이크업 이벤트들은 상기 이벤트들과 연관된 컴퓨팅 전력 요구들에 기초하여 상이한 도메인들로 그룹될 수 있다. 디폴트 상태 테이블(303)은 상기 도메인 테이블에 정의된 각 도메인을 상기 코어들과 관련된 코어 ID들 및 P-상태로 매핑하도록 구성될 수 있다. 일부 구현들에서, 컴퓨팅 도메인 테이블(300)에서의 도메인 A(301)는 외부 인터럽트 소스들, 키 누름 이벤트 및 전원 키 입력 이벤트 등과 같은 웨이크업 이벤트들을 그룹화할 수 있다. 도메인 B(302)는 RTC 알람, PMIC 이벤트 및 DPRAM 이벤트 등과 같은 웨이크업 이벤트들을 그룹화할 수 있다.3 illustrates an example of a computing domain table and a default state table in accordance with embodiments disclosed herein. The figure shows a computing domain table 300 that divides different wake up events into separate domains, such as
일부 구현들에서, 상기 디폴트 상태 테이블(303)에 따라, 상기 도메인 A에서 임의의 인터럽트들이 발생할 때, 상기 디바이스의 코어 0은 C0 동작 상태 및 P5 프로세서 성능 상태로 놓여지며, 반면 상기 디바이스의 코어 1은 C0 동작 상태 및 P2 프로세서 상태로 놓여진다. 그러한 점에서, 여기에 설명된 기술은 그 이벤트의 유형에 기반하여 특정 웨이크업 이벤트가 발생한 때, CPU들의 C-상태 및 P-상태를 설정한다. 일부 예들에서, 상기 코어 0 및 코어 1에 대한 P-상태는 일부 칩셋들의 설계 제한들 때문에 서로 다를 수도 있고 다르지 않을 수도 있다.In some implementations, according to the default state table 303, when any interrupts occur in the domain A, core 0 of the device is placed in a C0 operating state and a P5 processor performance state, while core 1 of the device Is placed in the C0 operating state and the P2 processor state. In that regard, the techniques described herein set the C-state and P-state of the CPUs when a particular wake-up event occurs based on the type of event. In some examples, the P-states for Core 0 and Core 1 may or may not be different due to design limitations of some chipsets.
프로세서 성능 상태(P-상태) 및 프로세서의 동작 상태(C-상태)는 상이한 지원되는 동작 주파수와 전압간을 전환하여 전력 소비를 조절하는 프로세서의 능력을 초래한다. ACPI(Advanced Configuration and Power Interface) 규격은 CPU P-상태 전력 관리 상태를 정의한다. P-상태의 수는 프로세서 특성이다. 시스템의 작업 부하에 따라 적절하게 구성될 경우, 이 특징은 전력 절약을 제공한다. 더 높은 P-상태 번호들은 더 느린 프로세서 속도들을 나타낸다. 더 높은 P-상태에서는 전력 소비가 더 낮다. 예를 들면, P3 상태는 P1 상태보다 더 높다. P3 상태의 프로세서는 P1 상태에서 실행되는 프로세서보다 실행 속도가 더 느리고 더 적은 전력을 사용할 것이다. 임의의 P-상태에서 동작하기 위해서, 상기 프로세서는 프로세서가 작동하고 아이들이 아닌 C0 동작 상태에 있어야 한다. 이러한 상태는 구현에 의존하지만, P0은 항상 최고 성능 상태이고, P1 내지 Pn은 순차적으로 더 낮은 성능 상태가 되고, n의 구현 특정 한계는 16 이하이다. P0은 전력 및 주파수가 최대이고, P1은 P0보다 더 낮게 전압/주파수가 스케일링되고, Pn은 P(n-1)보다 더 낮게 전압/주파수가 스케일링된다. 또한, ACPI 규격은 CPU C-상태 전력 관리 상태를 정의한다. CPU의 동작 상태(C-상태)는 전력을 절약하기 위해 비사용 컴포넌트들을 턴오프하는 아이들 프로세서의 능력이다. 프로세서가 C0 상태에서 실행될 때, 그것이 동작하고 있다. 임의의 다른 C-상태에서 실행하는 프로세서는 아이들이다. 더 높은 C-상태 번호들은 더 깊은 CPU 슬립 상태를 나타낸다. 더 높은 C-상태에서, 더 많은 컴포넌트가 전력을 절약하기 위해 셧다운된다. 셧다운되는 일부 컴포넌트들은 프로세서의 클록을 정지하고 인터럽트를 정지하는 것을 포함한다. CPU 전력 상태(C0 ~ C3)로서, C0는 동작 상태이고, C1(종종 홀트(Halt)로 알려짐)은 프로세서가 명령을 실행하지 않은 상태이지만 본질적으로 실행 상태로 즉시 돌아갈 수 있는 것으로서 정의된다. 모든 ACPI-컴포넌트 프로세서들은 이러한 전력 상태를 지원해야 한다. 펜티엄 4와 같은 일부 프로세서들은 또한 저전력 소비를 위해 강화된 C1 상태(C1E 또는 강화된 홀트 상태)를 지원하고, C2(종종 스톱-클록(Stop-Clock)으로 알려짐)는 프로세서가 모든 소프트웨어 보기 가능한 상태를 유지하는 상태이지만, 웨이크업하는 데 시간이 더 걸릴 수 있다. 이 프로세서 상태는 선택적이며, C3(종종 슬립으로 알려짐)는 프로세서가 캐시 일관성(cache coherent)을 유지할 필요가 없는 상태이지만, 다른 상태를 유지한다. 일부 프로세서들은 프로세서를 웨이크업하는 데 걸리는 시간이 상이한 C3 상태에 대한 변화(깊은 슬립, 더 깊은 슬립 등)를 갖는다. 이 프로세서 상태는 선택적이다.The processor performance state (P-state) and the processor's operating state (C-state) result in the processor's ability to adjust power consumption by switching between different supported operating frequencies and voltages. The Advanced Configuration and Power Interface (ACPI) specification defines the CPU P-state power management state. The number of P-states is a processor characteristic. When properly configured according to the workload of the system, this feature provides power savings. Higher P-state numbers indicate slower processor speeds. At higher P-states, power consumption is lower. For example, the P3 state is higher than the P1 state. Processors in the P3 state will run slower and use less power than processors running in the P1 state. In order to operate in any P-state, the processor must be in a C0 operating state where the processor is running and not idle. This state is implementation dependent, but P0 is always the highest performance state, P1 through Pn are sequentially lower performance states, and the implementation specific limit of n is 16 or less. P0 has maximum power and frequency, P1 scales the voltage / frequency lower than P0, and Pn scales the voltage / frequency lower than P (n-1). The ACPI specification also defines the CPU C-state power management state. The operating state (C-state) of the CPU is the ability of an idle processor to turn off unused components to save power. When the processor runs in the C0 state, it is running. Processors running in any other C-state are children. Higher C-state numbers indicate deeper CPU sleep states. At higher C-states, more components are shut down to save power. Some components that are shut down include stopping the clock of the processor and stopping the interrupt. As the CPU power states (C0-C3), C0 is an operating state, and C1 (often known as Halt) is defined as a state in which the processor has not executed an instruction but can essentially return to its execution state immediately. All ACPI-component processors must support this power state. Some processors, such as the Pentium 4, also support enhanced C1 state (C1E or enhanced Holt state) for low power consumption, while C2 (often known as Stop-Clock) allows the processor to be in all software viewable state. But it may take longer to wake up. This processor state is optional and C3 (often known as sleep) is a state where the processor does not need to maintain cache coherent, but maintains a different state. Some processors have a change (deep sleep, deep sleep, etc.) for different C3 states that take longer to wake up the processor. This processor state is optional.
일부 구현들에서, 상기 디바이스는 컴퓨팅 도메인 A(301)에서 상기 디바이스가 CPU0의 최고 OPP(Operating Performance Point)를 가지고, 모든 코어가 동작할 수 있게 하는 방식으로 구성될 수 있다. 컴퓨팅 도메인 B(302)에서, 상기 디바이스는 CPU0의 최저 OPP를 가지며, 다른 코어들 중 일부가 동작하지 않게 할 수 있다.In some implementations, the device can be configured in
언급한 바와 같이, 일부 구현들에서, 상기 디바이스가 특정 웨이크업 이벤트들을 수신했을 때, 슬립 모드에서 웨이크업 하도록 설정될 수 있다. 일부 구현들에서, 웨이크업 이벤트들은 외부 인터럽트 소스들, RTC 알람, 키 누름 이벤트, PMIC 이벤트, DPRAM 이벤트 등에 의해 생성될 수 있다. 예를 들면, 상기 디바이스는 RTC 알람 이벤트가 발생한 경우에만 슬립 모드에서 웨이크업하도록 구성될 수 있다.As mentioned, in some implementations, when the device receives certain wakeup events, it may be set to wake up in a sleep mode. In some implementations, wakeup events can be generated by external interrupt sources, RTC alarms, key press events, PMIC events, DPRAM events, and the like. For example, the device may be configured to wake up in sleep mode only when an RTC alarm event occurs.
도 4는 본 발명에 개시된 실시 예들에 따른 방법(400)의 흐름도이다. 도시된 바와 같이, 상기 방법은 CPU의 현재 주파수를 저장하고 CPU는 슬립 주파수(SLEEP FREQ)를 디폴트 주파수로서 설정된다(401). 또한, 상기 방법은 CPU에 대해 전압을 설정한다. 이어서, 상기 방법은 하나 이상의 디바이스들의 상태를 저장하고, 그 디바이스들은 일시 중지된다(402). 이어서, 상기 방법은 비부팅(non-booting) CPU들 및 시스템 디바이스들을 중단시킨다(403). 이어서 상기 방법은 웨이크업 소스들을 설정한다(404). 그런 다음, 상기 방법은 마스터 CPU를 일시 중지로 설정하거나 내부적으로 CPU_일시 중지를 호출할 수 있다(405). 상기 방법 400에서의 다양한 동작들이 제시된 순서, 다른 순서 또는 동시에 수행될 수 있다. 또한 일부 실시 예에서, 도 4에 열거된 몇 가지 동작은 생략될 수 있다.4 is a flow diagram of a
도 5는 본 발명에 개시된 실시 예들에 따른 방법(500)의 흐름도이다. 도시된 바와 같이, 상기 방법은 새로운 웨이크업 이벤트를 수신(501)함으로써 시작한다. 이어서 상기 방법은 마스터 CPU(CPU 0-부트 코어)를 웨이크업한다(502). 그런 다음, 상기 방법은 컴퓨팅 도메인 테이블(300)을 이용함으로써 상기 이벤트가 속한 컴퓨팅 도메인(예컨대, 도메인(301) 또는 도메인 B(302))을 획득한다(503). 또한, 상기 방법은 획득된 컴퓨팅 도메인에 대한 디폴트 상태를 디폴트 상태 테이블(303)에 의해 판독한다(504). 이어서 상기 방법은 디폴트 상태 테이블(303)에서 확인된 상기 프로세서의 코어들을 상기 디폴트 상태 테이블(303)에서 확인된 그 코어들을 위한 각 상태들로 가져온다(505). 상기 방법은 다음으로 이벤트에 대해 필요한 코어를 재시작하고 다른 디바이스는 일시 중지 상태로 유지될 것이다(506). 마지막으로 상기 방법은 상기 이벤트를 처리한다(507). 방법(500)의 다양한 동작들은 제시된 순서, 다른 순서 또는 동시에 수행될 수 있다. 또한 일부 구현들에서, 도 5에 열거된 일부 동작이 생략될 수 있다.5 is a flow diagram of a
제안된 방법을 이용하여 절약된 추가 전력은 다음과 같이 계산될 수 있다.The additional power saved using the proposed method can be calculated as follows.
에너지 = Ni * Nc * Pc * TEnergy = Ni * Nc * Pc * T
여기에서,From here,
Ni = 선택된 인터럽트가 발생되는 횟수,Ni = the number of times the selected interrupt is generated,
Nc = 디바이스에서 이용 가능한 코어들의 수,Nc = number of cores available in the device,
Pc = 슬립 주파수 (성능) 값에서 실행하는 각 코어에 의해 소비되는 전력,Pc = power consumed by each core running at the sleep frequency (performance) value,
T = 올바른 주파수 또는 온라인 CPU 수를 식별하도록 반응하는데 관리기가 걸린 시간이다.T = time taken by the manager to respond to identify the correct frequency or number of online CPUs.
도 6은 본 발명에 개시된 실시 예들에 따른 기술들을 구현하는 컴퓨팅 환경을 나타낸다. 도시되어 있는 바와 같이, 컴퓨팅 환경(600)에서는 제어 유닛(611) 및 ALU(Arithmetic Logic Unit)(612), 메모리(640), 저장소(650), 복수의 네트워킹 디바이스들(620), 및 복수의 입출력(I/O) 디바이스들(630)을 구비하는 적어도 하나의 처리 유닛(610)을 포함한다. 처리 유닛(610)은 알고리즘 명령을 처리하는 것을 담당한다. 처리 유닛(610)은 처리를 수행하기 위해, 제어 유닛(611)으로부터 명령을 수신한다. 또한 명령의 실행에 관련된 모든 논리 및 산술 연산은 ALU(612)의 도움으로 계산된다.6 illustrates a computing environment implementing techniques in accordance with embodiments disclosed herein. As shown, the
전체 컴퓨팅 환경(600)은 다수의 동종 및/또는 이종의 코어, 상이한 종류의 다수의 CPU, 특수 미디어 및 다른 액셀레이터로 구성될 수 있다. 처리 유닛(610)은 알고리즘의 명령의 처리를 담당한다. 처리 유닛(610)은 처리를 행하기 위해, 제어 유닛(611)으로부터 명령을 수신한다. 또한, 명령의 실행에 관련된 모든 논리 및 산술 연산은 ALU(612)의 도움으로 계산된다. 또한, 복수의 처리 유닛(610)들은 단일 칩에 또는 다수의 칩에 걸쳐 위치될 수 있다.The
구현에 필요한 명령 및 코드로 이루어진 알고리즘은 메모리(640) 또는 저장소(650) 중 어느 하나 또는 모두에 저장된다. 실행 시, 명령은 대응하는 메모리(640) 및/또는 저장소(650)로부터 페치(fetch)되어 처리 유닛(610)에 의해 실행될 수 있다.Algorithms of instructions and code required for implementation are stored in either or both of
임의의 하드웨어 구현의 경우에, 다양한 네트워킹 디바이스(620) 또는 외부 I/O 디바이스(630)가 컴퓨팅 환경에 연결되어 네트워킹 유닛 및 I/O 디바이스 유닛을 통해 구현을 지원할 수 있다.For any hardware implementation,
본 발명에 개시된 실시 예들은 적어도 하나의 하드웨어 디바이스에서 실행되고 요소를 제어하는 네트워크 관리 기능을 수행하는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 6에 나타낸 요소는 하드웨어 디바이스 및 소프트웨어 모듈 중 적어도 하나 또는 그 조합일 수 있는 블록을 포함한다.Embodiments disclosed in the present invention may be implemented through at least one software program that is executed on at least one hardware device and performs a network management function to control an element. The element shown in FIG. 6 includes a block that can be at least one or a combination of hardware devices and software modules.
전술한 특정 실시 예들의 설명은 다른 사람들이 현재의 지식을 적용하여 일반적 사상으로부터 벗어남이 없이 그러한 특정 실시 예들을 다양한 적용들을 위해 손쉽게 변경 및/또는 개조할 수 있을 정도로 본 발명의 실시 예들의 일반적 특성을 매우 충분히 계시하고 있고, 그에 따라 그러한 변경들 및 개조들을 개시된 실시 예들의 균등물의 의미 및 범위 내에 포함하여야 하고 또한 포함하고자 한다. 본 명세서에 채용된 표현들 및 용어들은 설명을 위한 것이지 한정을 위한 것이 아님을 알아야 할 것이다. 따라서 본 발명의 실시 예들을 바람직한 실시 예들의 측면에서 설명하였으나, 당업자라면 본 발명의 실시 예들이 본 명세서에 설명된 실시 예들의 사상 및 범위 내에서 변경되어 실시될 수 있는 것임을 인지할 것이다.The description of the specific embodiments described above is directed to the general characteristics of the embodiments of the invention such that others may readily adapt and / or modify those specific embodiments for various applications without departing from the general spirit of applying the present knowledge. And are intended to include and, within the meaning and scope of equivalents of the disclosed embodiments, such variations and modifications as such. It is to be understood that the phraseology and terminology employed herein is for the purpose of description and not of limitation. Therefore, while the embodiments of the present invention have been described in terms of preferred embodiments, those skilled in the art will recognize that the embodiments of the present invention may be modified within the spirit and scope of the embodiments described herein.
본 개시의 장치들 및 방법들은 하드웨어 또는 펌웨어에서 실행되거나 또는 하드웨어 또는 펌웨어 또는 그 조합들에 의해 실행되는 소프트웨어 또는 컴퓨터 코드로 구현될 수 있다. 컨트롤러, 중앙 처리 유닛(CPU), 프로세서, 및 본 개시의 임의의 유닛 또는 디바이스는 적어도 하드웨어 및/또는 다른 물리적 구조 및 엘리먼트들을 포함한다. 추가로, 상기 소프트웨어 또는 컴퓨터 코드는 또한 삭제할 수 있거나 재기록할 수 있는 또는 그렇지 않은 CD ROM, RAM, 판독 전용 메모리(Read Only Memory; ROM)과 같은 비-일시적 저장매체의 형태로, 플로피 디스크, CD, DVD, 메모리 칩들, 하드 디스크, 자기 스토리지 매체, 광학 기록 매체, 또는 자기-광학 디스크 또는 원격 기록 매체, 컴퓨터 판독 가능 기록 매체 또는 비-일시적 기계 판독 가능 매체에 기본적으로 저장된 네트워크를 통해 다운로드되어 로컬 기록 매체에 저장될 수 있으며, 그에 의해, 본 개시의 방법들이 범용 컴퓨터, 디지털 컴퓨터 또는 특정 프로세서 또는 ASIC 또는 FPGA와 같은 프로그램 가능한 또는 전용의 하드웨어에서 저장되는 소프트웨어, 컴퓨터 코드, 소프트웨어 모듈들, 소프트웨어 오브젝트들, 명령들, 애플리케이션들, 애플릿(applet)들, 앱들(apps)등에 렌더링될 수 있다. 당 업계에 이해될 수 있는 바와 같이, 컴퓨터, 프로세서, 마이크로프로세서 컨트롤러 또는 프로그램 가능한 하드웨어는 일시적 및/또는 비-일시적 스토리지 및 메모리 컴포넌트들, 예컨대, 그에 의해 상기 컴퓨터, 프로세서 또는 하드웨어에 의해 액세스되고 실행될 때, 본 개시의 프로세싱 방법들을 구현하는 소프트웨어 또는 컴퓨터 코드를 저장 또는 수신할 수 있는 일시적 및/또는 비-일시적 스토리지 및 메모리 컴포넌트들, 예컨대, RAM, ROM, 플래시 등을 포함한다. 추가로, 본 개시의 프로세싱을 구현하기 위한 코드를 액세스할 때, 상기 코드의 실행은 범용 목적 컴퓨터를 본 개시의 프로세싱을 실행하기 위한 특정 목적 컴퓨터로 변환시킨다. 또한, 상기 프로그램은 무선/유선 접속들에 의해 전송된 통신 신호들 및 그 등가물들과 같은 임의의 매체를 통해 전기적으로 전달된다. 상기 프로그램 및 컴퓨터 판독 가능 기록 매체는 또한 상기 컴퓨터 판독 가능 코드가 분산된 방법으로 저장 및 실행되기 위해 네트워크-커플링된 컴퓨터 시스템들에 분산될 수 있다.The apparatuses and methods of the present disclosure may be implemented in software or computer code executed in hardware or firmware or executed by hardware or firmware or combinations thereof. The controller, central processing unit (CPU), processor, and any unit or device of the present disclosure includes at least hardware and / or other physical structures and elements. In addition, the software or computer code may also be in the form of a non-transitory storage medium, such as a CD ROM, RAM, Read Only Memory (ROM), which may or may not be erased, rewritten, or otherwise. Downloaded locally via a network stored on a DVD, memory chips, hard disk, magnetic storage medium, optical recording medium, or magnetic-optical disc or remote recording medium, computer readable recording medium or non-transitory machine readable medium. Software, computer code, software modules, software objects that may be stored on a recording medium, whereby the methods of the present disclosure are stored in a general purpose computer, digital computer, or a specific processor or programmable or dedicated hardware such as an ASIC or FPGA Fields, instructions, applications, applets, It may be rendered, etc. The (apps). As will be appreciated in the art, a computer, processor, microprocessor controller or programmable hardware may be accessed and executed by temporary and / or non-transitory storage and memory components, such as by the computer, processor or hardware. When, includes temporary and / or non-transitory storage and memory components, such as RAM, ROM, flash, etc., capable of storing or receiving software or computer code that implements the processing methods of the present disclosure. In addition, when accessing code to implement the processing of the present disclosure, execution of the code transforms a general purpose computer into a specific target computer for performing the processing of the present disclosure. In addition, the program is electrically delivered via any medium, such as communication signals and their equivalents transmitted by wireless / wired connections. The program and computer readable recording medium may also be distributed over network-coupled computer systems for storage and execution in a distributed manner.
비록 본 개시가 논의되었으나, 다양한 변경들이 본 개시로부터 벗어나지 않고 본 개시에 포함될 수 있다. 그러므로, 상기 개시는 상기 실시 예들로 제한되지 않으며 첨부된 청구항들 및 그 등가물들에 의해 정의된다.Although the present disclosure has been discussed, various changes may be included in the present disclosure without departing from the present disclosure. Therefore, the disclosure is not limited to the above embodiments but is defined by the appended claims and their equivalents.
300 : 컴퓨팅 도메인 테이블 303 : 디폴트 상태 테이블
600 : 컴퓨팅 환경 610 : 처리 유닛
611 : 제어 유닛 612 : ALU
620 : 네트워킹 디바이스들 630 : I/O 디바이스들
640 : 메모리 650 : 저장소300: computing domain table 303: default state table
600: computing environment 610: processing unit
611: control unit 612: ALU
620: networking devices 630: I / O devices
640: memory 650: storage
Claims (20)
웨이크업 소스들을 복수의 컴퓨팅 도메인들로 그룹화하는 과정;
웨이크업 소스와 관련된 인터럽트를 수신하는 과정;
상기 복수의 컴퓨팅 도메인들로부터 상기 웨이크업 소스가 속한 제1 컴퓨팅 도메인을 확인하는 과정;
상기 제1 컴퓨팅 도메인을 상기 프로세서의 제1 코어의 하나 이상의 상태 중 제1 식별자에 매핑하는 과정;
상기 제1 코어가 상기 제1 식별자에 의해 지시된 하나 이상의 상태로 진입하도록 설정하는 과정; 및
상기 제1 코어가 설정된 이후 상기 제1 코어를 재시작하는 과정;을 포함하는, 멀티 코어 시스템의 전력 관리 방법.
A method of restarting one or more cores of a multi-core processor that is part of an electronic device, the method comprising:
Grouping wake-up sources into a plurality of computing domains;
Receiving an interrupt associated with a wake up source;
Identifying a first computing domain to which the wake-up source belongs from the plurality of computing domains;
Mapping the first computing domain to a first identifier of one or more states of the first core of the processor;
Setting the first core to enter one or more states indicated by the first identifier; And
Restarting the first core after the first core is set, the power management method of a multi-core system.
상기 디바이스가 슬립 모드, 깊은 슬립 모드, 및 저전력 모드 중 적어도 하나에 있을 때, 상기 인터럽트가 수신되는, 멀티 코어 시스템의 전력 관리 방법.
The method of claim 1, wherein
When the device is in at least one of a sleep mode, a deep sleep mode, and a low power mode, the interrupt is received.
상기 복수의 컴퓨팅 도메인들에 대해 컴퓨팅 도메인 테이블을 생성하는 과정을 포함하는, 멀티 코어 시스템의 전력 관리 방법.
The method of claim 1, wherein the grouping process comprises:
Generating a computing domain table for the plurality of computing domains.
상기 웨이크업 소스들에서의 인터럽트들을 상기 복수의 컴퓨팅 도메인들로의 맵핑을 포함하는, 멀티 코어 시스템의 전력 관리 방법.
The computing domain table of claim 3, wherein the computing domain table comprises:
Mapping the interrupts in the wakeup sources to the plurality of computing domains.
4. The method of claim 3, wherein the first computing domain is identified based on the computing domain table.
상기 복수의 컴퓨팅 도메인들 중 각각을 상기 제1 코어의 하나 이상의 상태들의 상이한 세트와 관련시키는 디폴트 상태 테이블을 생성하는, 멀티 코어 시스템의 전력 관리 방법.
The method of claim 1, wherein
Generating a default state table that associates each of the plurality of computing domains with a different set of one or more states of the first core.
상기 디폴트 상태 테이블에 기초하여 수행되는, 멀티 코어 시스템의 전력 관리 방법.
The method of claim 6, wherein the mapping process,
Performed on the basis of the default state table.
7. The method of claim 6, wherein the default state table maps the first computing domain to different P-states for different cores of the processor.
7. The method of claim 6, wherein the default state table maps the first computing domain to a combination of P-state and C-state for the first core.
상기 디폴트 상태 테이블은 상기 제1 컴퓨팅 도메인을 상기 제1 코어의 제1 상태로 매핑하며;
상기 디폴트 상태 테이블은 상기 복수의 컴퓨팅 도메인들 중 제2 컴퓨팅 도메인을 상기 제1 상태보다 더 높은 전력 소비에 의해 특성화된 상기 제1 코어의 제2 상태로 매핑하는, 멀티 코어 시스템의 전력 관리 방법.
The method according to claim 6,
The default state table maps the first computing domain to a first state of the first core;
And the default state table maps a second one of the plurality of computing domains to a second state of the first core characterized by a higher power consumption than the first state.
상기 집적 회로는,
웨이크업 소스들을 복수의 컴퓨팅 도메인들로 그룹화하고,
웨이크업 소스와 관련된 인터럽트를 수신하고,
상기 복수의 컴퓨팅 도메인들로부터 상기 웨이크업 소스가 속한 제1 컴퓨팅 도메인을 확인하며,
상기 제1 컴퓨팅 도메인을 상기 프로세서의 제1 코어의 하나 이상의 상태 중 제1 식별자에 매핑하고,
상기 제1 코어가 상기 제1 식별자에 의해 지시된 하나 이상의 상태로 진입하도록 설정하며,
상기 제1 코어가 설정된 이후 상기 제1 코어를 재시작도록 구성되는, 멀티 코어 시스템의 전력 관리 장치.
An integrated circuit comprising at least one processor,
The integrated circuit comprising:
Group wake-up sources into a plurality of computing domains,
Receive interrupts associated with the wake-up source,
Identify a first computing domain to which the wake-up source belongs, from the plurality of computing domains,
Map the first computing domain to a first identifier of one or more states of the first core of the processor,
Set the first core to enter one or more states indicated by the first identifier,
And restart the first core after the first core is set.
상기 장치가 슬립 모드, 깊은 슬립 모드, 및 저전력 모드 중 적어도 하나에 있을 때, 상기 인터럽트가 수신되는, 멀티 코어 시스템의 전력 관리 장치.
12. The apparatus of claim 11,
And the interrupt is received when the device is in at least one of a sleep mode, a deep sleep mode, and a low power mode.
상기 복수의 컴퓨팅 도메인들에 대해 컴퓨팅 도메인 테이블을 생성하는 것을 포함하는, 멀티 코어 시스템의 전력 관리 장치.
The method of claim 11, wherein the grouping,
Generating a computing domain table for the plurality of computing domains.
상기 웨이크업 소스들에서의 인터럽트들을 상기 복수의 컴퓨팅 도메인들로의 맵핑을 포함하는, 멀티 코어 시스템의 전력 관리 장치.
The computing domain table of claim 13, wherein
And mapping the interrupts in the wakeup sources to the plurality of computing domains.
The apparatus of claim 13, wherein the first computing domain is identified based on the computing domain table.
상기 복수의 컴퓨팅 도메인들 중 각각을 상기 제1 코어의 하나 이상의 상태들의 상이한 세트와 관련시키는 디폴트 상태 테이블을 생성하도록 더 구성되는, 멀티 코어 시스템의 전력 관리 장치.
The method of claim 11, wherein the integrated circuit,
And generate a default state table that associates each of the plurality of computing domains with a different set of one or more states of the first core.
상기 디폴트 상태 테이블에 기초하여 수행되는, 멀티 코어 시스템의 전력 관리 장치.
The method of claim 16, wherein the mapping,
The power management device of a multi-core system, performed based on the default state table.
17. The apparatus of claim 16, wherein the default state table maps the first computing domain to different P-states for different cores of the processor.
17. The apparatus of claim 16, wherein the default state table maps the first computing domain to a combination of P-state and C-state for the first core.
상기 디폴트 상태 테이블은 상기 제1 컴퓨팅 도메인을 상기 제1 코어의 제1 상태로 매핑하며;
상기 디폴트 상태 테이블은 상기 복수의 컴퓨팅 도메인들 중 제2 컴퓨팅 도메인을 상기 제1 상태보다 더 높은 전력 소비에 의해 특성화된 상기 제1 코어의 제2 상태로 매핑하는, 멀티 코어 시스템의 전력 관리 장치.17. The method of claim 16,
The default state table maps the first computing domain to a first state of the first core;
And the default state table maps a second computing domain of the plurality of computing domains to a second state of the first core characterized by higher power consumption than the first state.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN3504/CHE/2012 | 2012-08-24 | ||
IN3504CH2012 | 2012-08-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140026308A true KR20140026308A (en) | 2014-03-05 |
KR102060431B1 KR102060431B1 (en) | 2020-02-11 |
Family
ID=50149115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130100987A KR102060431B1 (en) | 2012-08-24 | 2013-08-26 | Apparatus and method for managing power in multi-core system |
Country Status (2)
Country | Link |
---|---|
US (1) | US9223381B2 (en) |
KR (1) | KR102060431B1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
US9465432B2 (en) | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US9513687B2 (en) | 2013-08-28 | 2016-12-06 | Via Technologies, Inc. | Core synchronization mechanism in a multi-die multi-core microprocessor |
US10379560B2 (en) * | 2015-10-05 | 2019-08-13 | Savant Systems, Llc | Home automation system device power optimization |
US10896138B2 (en) * | 2016-05-27 | 2021-01-19 | Apple Inc. | Dynamically controlling random access memory retention in a wireless device |
US11042213B2 (en) * | 2019-03-30 | 2021-06-22 | Intel Corporation | Autonomous core perimeter for low power processor states |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980076859A (en) * | 1997-04-15 | 1998-11-16 | 구자홍 | Control Method of Shared Memory Multiprocessor |
KR20110110737A (en) * | 2010-04-01 | 2011-10-07 | 인텔 코오퍼레이션 | Method and apparatus for interrupt power management |
KR20110112791A (en) * | 2010-04-07 | 2011-10-13 | 애플 인크. | Hardware automatic performance state transitions in system on processor sleep and wake events |
KR20120054027A (en) * | 2009-07-27 | 2012-05-29 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | Mapping processing logic having data parallel threads across processors |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812860A (en) | 1996-02-12 | 1998-09-22 | Intel Corporation | Method and apparatus providing multiple voltages and frequencies selectable based on real time criteria to control power consumption |
US7155617B2 (en) | 2002-08-01 | 2006-12-26 | Texas Instruments Incorporated | Methods and systems for performing dynamic power management via frequency and voltage scaling |
US7840825B2 (en) | 2006-10-24 | 2010-11-23 | International Business Machines Corporation | Method for autonomous dynamic voltage and frequency scaling of microprocessors |
US7962679B2 (en) * | 2007-09-28 | 2011-06-14 | Intel Corporation | Interrupt balancing for multi-core and power |
US8707063B2 (en) * | 2010-12-21 | 2014-04-22 | Advanced Micro Devices, Inc. | Hardware assisted performance state management based on processor state changes |
-
2013
- 2013-08-26 US US13/975,615 patent/US9223381B2/en active Active
- 2013-08-26 KR KR1020130100987A patent/KR102060431B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19980076859A (en) * | 1997-04-15 | 1998-11-16 | 구자홍 | Control Method of Shared Memory Multiprocessor |
KR20120054027A (en) * | 2009-07-27 | 2012-05-29 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | Mapping processing logic having data parallel threads across processors |
KR20110110737A (en) * | 2010-04-01 | 2011-10-07 | 인텔 코오퍼레이션 | Method and apparatus for interrupt power management |
KR20110112791A (en) * | 2010-04-07 | 2011-10-13 | 애플 인크. | Hardware automatic performance state transitions in system on processor sleep and wake events |
Also Published As
Publication number | Publication date |
---|---|
KR102060431B1 (en) | 2020-02-11 |
US9223381B2 (en) | 2015-12-29 |
US20140059372A1 (en) | 2014-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8977880B2 (en) | Method for managing power supply of multi-core processor system involves powering off main and slave cores when master bus is in idle state | |
US7430673B2 (en) | Power management system for computing platform | |
KR102060431B1 (en) | Apparatus and method for managing power in multi-core system | |
KR101873935B1 (en) | Power efficient processor architecture | |
KR101519082B1 (en) | Sleep processor | |
US8230247B2 (en) | Transferring architectural functions of a processor to a platform control hub responsive to the processor entering a deep sleep state | |
US8959382B2 (en) | Controlling communication of a clock signal to a peripheral | |
CN103345415A (en) | Terminal energy-saving method and device for management timer | |
EP2972826B1 (en) | Multi-core binary translation task processing | |
WO2016043899A1 (en) | Technologies for collaborative hardware and software scenario-based power management | |
JP2023047293A (en) | Apparatus and method for achieving deterministic power-saving state | |
US9612652B2 (en) | Controlling power consumption by power management link | |
US9448617B2 (en) | Systems and methods for messaging-based fine granularity system-on-a-chip power gating | |
WO2016085680A1 (en) | System and method for adaptive thread control in a portable computing device (pcd) | |
CN115826728A (en) | Chip power management method and device | |
CN101866212A (en) | Multi-mode power source managing device and managing method | |
CN114008562A (en) | Workload-based dynamic energy performance preference using adaptive algorithms | |
US20150067363A1 (en) | Clock generator circuit with automatic sleep mode | |
EP3391213A1 (en) | Method and arrangement for utilization of a processing arrangement | |
JP6409218B2 (en) | Power efficient processor architecture | |
CN102118407A (en) | Method for reducing running power consumption of cluster job system, node and system | |
JP2017021811A (en) | Power efficient processor architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |