KR20150115634A - A method and apparutus for predicting a central processing unit idle pattern for power saving in a modem system on chip - Google Patents

A method and apparutus for predicting a central processing unit idle pattern for power saving in a modem system on chip Download PDF

Info

Publication number
KR20150115634A
KR20150115634A KR1020150038425A KR20150038425A KR20150115634A KR 20150115634 A KR20150115634 A KR 20150115634A KR 1020150038425 A KR1020150038425 A KR 1020150038425A KR 20150038425 A KR20150038425 A KR 20150038425A KR 20150115634 A KR20150115634 A KR 20150115634A
Authority
KR
South Korea
Prior art keywords
idle
cpu
pattern
time
predicting
Prior art date
Application number
KR1020150038425A
Other languages
Korean (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 삼성전자주식회사
Priority to US14/678,164 priority Critical patent/US20150286271A1/en
Publication of KR20150115634A publication Critical patent/KR20150115634A/en

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
    • 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
    • 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/329Power saving characterised by the action undertaken by task scheduling

Landscapes

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

Abstract

A method and a system for providing power management in a system employing a central processing unit (CPU) and an operating system are provided. The method includes the following steps: monitoring idle times of the CPU; predicting an idle pattern based on the monitored idle times; and determining a selective sleep of a peripheral device based on the predicted CPU idle pattern.

Description

모뎀 시스템 온 칩에서의 전력 절감을 위해 중앙 처리 유닛 아이들 패턴을 예측하기 위한 방법 및 장치 {A METHOD AND APPARUTUS FOR PREDICTING A CENTRAL PROCESSING UNIT IDLE PATTERN FOR POWER SAVING IN A MODEM SYSTEM ON CHIP}Field of the Invention [0001] The present invention relates to a method and apparatus for predicting a central processing unit idle pattern for power saving in a modem system on chip,

본 발명은 모뎀 시스템 온 칩(SoC: System on Chip)에서의 전력 절감을 위해 중앙 처리 유닛(CPU: Centrol processing unit) 아이들 패턴을 예측하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for predicting a central processing unit (CPU) idle pattern for power saving in a modem on-chip (SoC).

시스템 온 칩(SoC: System on Chip)은 컴퓨터나 기타 전자 시스템의 모든 구성요소들을 하나의 칩 안에 집적하는 임베디드 장치들에 통상적으로 사용되는 집적 회로(IC: intergrated circuit)이다. 전자 및 임베디드 장치들에서, 전력 소비를 줄이는 일은 어려운 작업일 수 있다. 그 이유인 즉, 임베디드 장치의 마이크로콘트롤러/마이크로프로세서가 가능한 한 빨리 프로세스들을 실행하고 출력을 사용자에게 제공하기 위해 계속 경계 상태에 있어야 하기 때문이다. 그로인해, 임베디드 장치들의 성능에 영향을 주지 않고 그 장치들의 전력 소비를 줄이기 위한 다양한 개선 방안들이 제안되고 있다.System on Chip (SoC) is an integrated circuit (IC) that is commonly used in embedded devices that integrate all the components of a computer or other electronic system into a single chip. In electronic and embedded devices, reducing power consumption can be a difficult task. The reason for this is that the microcontroller / microprocessor of the embedded device must remain in the boundary state to execute the processes as soon as possible and to provide the output to the user. Accordingly, various improvements have been proposed to reduce the power consumption of the devices without affecting the performance of the embedded devices.

본 개시는 상술한 문제들 및 단점들을 다루고 적어도 이하에 기술되는 이점들을 제공하기 위해 만들어졌다.This disclosure is directed to addressing the problems and drawbacks discussed above and at least providing the advantages described below.

본 개시의 실시 예에서는, 중앙 처리 유닛(CPU) 및 운영 체제를 사용하는 시스템에서 전력 관리를 제공하는 방법에 있어서, 상기 CPU의 아이들 타임들을 모니터링하는 단계; 상기 모니터링된 아이들 타임들에 기반하여 상기 CPU의 아이들 패턴을 예측하는 단계; 및 상기 예측된 CPU 아이들 패턴에 기반하여 주변기기의 선택적 슬립(sleep)을 결정하는 단계를 포함한다.In an embodiment of the disclosure, there is provided a method of providing power management in a system using a central processing unit (CPU) and an operating system, the method comprising: monitoring idle times of the CPU; Predicting an idle pattern of the CPU based on the monitored idle times; And determining an optional sleep of the peripheral based on the predicted CPU idle pattern.

본 개시의 다른 실시 예에서는, 중앙 처리 유닛(CPU) 및 운영 체제를 사용하는 시스템에서 전력 관리를 수행하기 위한 장치에 있어서, 상기 CPU의 아이들 타임들을 모니터링하는 모니터링부와, 상기 모니터링된 아이들 타임들에 기반하여 CPU 아이들 패턴을 예측하는 예측부와, 상기 예측된 CPU 아이들 패턴에 기반하여 주변기기의 선택적 슬립(sleep)을 결정하는 제어부를 포함한다.In another embodiment of the present disclosure, there is provided an apparatus for performing power management in a system using a central processing unit (CPU) and an operating system, the apparatus comprising: a monitoring unit for monitoring idle times of the CPU; A predictor for predicting a CPU idle pattern based on the predicted CPU idle pattern, and a controller for determining an optional sleep of the peripheral based on the predicted CPU idle pattern.

본 개시의 상기 및 기타 목적들, 특성들 및 이점들은 첨부된 도면들과 연계하여 취해지는 이하의 상세설명으로부터 보다 자명해질 것이다.
도 1은 기존 시스템의 SoC에서 슬립 모드 중의 CPU 아이들 구현을 예시한 개략도,
도 2는 기존 시스템에 따른 SoC의 "주변기기들 및 서브 시스템들의 선택적 슬립" 모드를 예시한 개략도,
도 3은 하드웨어 과도기 응답 양태로 인해 가변되는 기존의 CPU 아이들 기간의 변동을 예시한 타이밍도,
도 4는 PDCCH 수신으로 인해 가변하는 기존 CPU 아이들 기간의 변동을 예시한 타이밍도,
도 5는 긴 DRX 사이클들에서 짧은 DRX로 인해 기존에 분포된 CPU 아이들 타임을 예시한 타이밍도,
도 6은 본 개시의 일 실시예에 따라, CPU 아이들 타임을 예측하기 위한 장치 학습 프로세스의 모델을 예시한 개략도,
도 7은 본 개시의 일 실시예에 따라, 동향 예측에 기반하는 시간에 따른 결정 방법을 예시한 개략도,
도 8은 본 개시의 일 실시예에 따라, 동향 예측에 기반하는 시간에 따른 결정을 위한 이벤트 지문 방법을 예시한 개략도.
These and other objects, features and advantages of the present disclosure will become more apparent from the following detailed description taken in conjunction with the accompanying drawings.
1 is a schematic diagram illustrating a CPU idle implementation in a sleep mode in an SoC of an existing system,
2 is a schematic diagram illustrating a "selective sleep" mode of peripherals and subsystems of an SoC according to the existing system;
3 is a timing diagram illustrating variation of an existing CPU idle period that varies due to hardware transient response mode,
FIG. 4 is a timing chart illustrating a variation of an existing CPU idle period that varies due to PDCCH reception,
5 is a timing diagram illustrating a CPU idle time that has been previously distributed due to a short DRX in long DRX cycles,
6 is a schematic diagram illustrating a model of a device learning process for predicting CPU idle time, in accordance with one embodiment of the present disclosure;
7 is a schematic diagram illustrating a time-based decision method based on trend prediction, in accordance with one embodiment of the present disclosure;
8 is a schematic diagram illustrating an event fingerprinting method for time-based determination based on trend prediction, in accordance with one embodiment of the present disclosure;

이하, 첨부된 도면들을 참조하여 본 개시의 실시예들이 상세히 설명될 것이다. 그러나 본 개시는 상술한 실시예들에 국한되지 않는다. 이하의 설명에서, 동일하거나 유사한 참조 부호들은 첨부된 도면에서 동일하거나 유사한 구성요소들을 가리키기 위해 사용된다. 본 개시의 주제를 모호하게 하는 것을 피하기 위해 알려진 기능들 및 구성들에 대한 상세한 설명은 생략될 수 있다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. However, the present disclosure is not limited to the above-described embodiments. In the following description, the same or similar reference numerals are used to denote the same or similar elements in the accompanying drawings. Detailed descriptions of known functions and configurations may be omitted so as to avoid obscuring the subject matter of this disclosure.

임베디드 마이크로프로세서/마이크로콘트롤러 기반 장치에서, 전력 소비를 줄이는 방법 증 하나는, 시스템 동작에 기반하여 시스템의 외부 구성요소들 및 주변 유닛들로의 게이팅 클록들(gating clocks)을 턴 오프하는 것이다. 이러한 전력 절감 절차들은 장치의 CPU가 아이들 상태에 있을 때 시작 및 구현될 수 있다. In an embedded microprocessor / microcontroller-based device, one way to reduce power consumption is to turn off gating clocks to external components of the system and peripheral units based on system operation. These power saving procedures can be initiated and implemented when the CPU of the device is in an idle state.

도 1은 기존 시스템의 SoC에서 슬립 모드 중의 CPU 아이들 상태 구현을 예시한 개략도이다. 1 is a schematic diagram illustrating the implementation of a CPU idle state in a sleep mode in an SoC of an existing system.

도 1의 방법(100b)을 참조하면, 슬립 모드는 조건들이 만족될 때 CPU 아이들 상태를 트리거하기 위해서 사용된다. 도 1의 실시 예는 주변 유닛들 및 장치의 CPU 사이의 상호동작, 또는 직접 메모리 액세스(DMA) 또는 장치 드라이버 호출과 같은 CPU 액션으로 인해 유발된, 주변기기들 안에서 수행되는 절차들에 기반한다. 본 발명의 실시 예에 따라 CPU가 아이들 상태로 진입할 때(단계 101), 모든 주변기기 유닛들 및 서브 시스템들 각각이 비지(busy) 상태에 있는지 여부가 검사된다(단계 105). 그러한 주변기기 유닛들 및 서브 시스템들은 비한정적으로, USB(Universal Serial Bus) 121, UART(Universal Asynchronous Receiver/Transmitter) 123, 와치도그(watchdog) 125, I2C(Inter-Integrated Circuit) 127, SPI(Serial Peripheral Interface) 129, 코프로세서 131, USIM(Universal Subscriber Identifier Module) 133 등을 포함할 수 있다. CPU가 주변기기 유닛들이나 서브 시스템들 중 어느 하나가 비지라고 판단하면(단계 105), CPU는 인터럽트 대기 상태(Wait For Interrupt: WFI)로 들어갈 것이다(단계 109). CPU가 WFI 상태로 진입하면, CPU는 아이들 상태에 있게 될 것이고 어떤 프로세스도 실행 상태에 있지 않을 것이다. CPU가 실행할 임의의 프로세스를 수신하면(단계 111), 인터럽트 서비스 루틴이 시작된다(단계 113).Referring to method 100b of FIG. 1, the sleep mode is used to trigger the CPU idle state when the conditions are satisfied. The embodiment of FIG. 1 is based on interoperations between peripheral units and the CPU of the device, or procedures performed in peripherals caused by CPU actions such as direct memory access (DMA) or device driver calls. In accordance with an embodiment of the present invention, when the CPU enters the idle state (step 101), it is checked whether all of the peripheral units and subsystems are in a busy state (step 105). Such peripheral units and subsystems include, but are not limited to, a Universal Serial Bus (USB) 121, a Universal Asynchronous Receiver / Transmitter (UART) 123, a watchdog 125, an Inter- Integrated Circuit (I2C) 127, a Serial Peripheral Interface 129, a coprocessor 131, a Universal Subscriber Identifier Module (USIM) 133, and the like. If the CPU determines that either peripheral units or subsystems are busy (step 105), the CPU will enter a Wait For Interrupt (WFI) (step 109). When the CPU enters the WFI state, the CPU will be in the idle state and no process will be in the running state. When the CPU receives an arbitrary process to be executed (step 111), the interrupt service routine is started (step 113).

105단계에서 CPU가 주변기기 유닛들과 서브 시스템들 중 어느 것도 비지가 아니라고 판단하면, CPU는 단계 107로 진입한다., CPU는 주변기기 유닛들 및 서브 시스템들의 현재 상태들을 저장하고, 주변기기 유닛들 및 서브 시스템들의 전력을 차단한다(단계 107a). 주변기기 유닛들 및 서브 시스템들의 전력이 차단되면, CPU는 WFI 상태로 진입하고(단계 107b), 이 상태에서 CPU는 아이들 상태에 있게 될 것이며 어떤 프로세스도 실행 중에 있지 않을 것이다. CPU가 실행할 임의의 프로세스를 수신하면(단계 111), 인터럽트 신호가 수신될 것이고 CPU에 전력이 투입되어 주변기기들 및 서브 시스템들 모두의 상태들이 실행을 위해 복구될 것이다(단계 107c). 주변기기들 및 서브 시스템들이 복구되고 전력 투입 되면, CPU는 프로세스 실행을 처리하기 위한 인터럽트 서비스 루틴을 시작한다(단계 113). 도 1의 개략적 그래프(100a)는 상술한 전력 절감 루틴에 따른, 비지 상태(151) 및 아이들 상태(153)의 CPU 이용을 예시한다. If the CPU determines in step 105 that none of the peripheral units and subsystems are busy, the CPU enters step 107. The CPU stores the current states of the peripheral units and subsystems, Thereby shutting down the power of the systems (step 107a). When the power of the peripheral units and subsystems is interrupted, the CPU enters the WFI state (step 107b), in which the CPU will be in the idle state and no process will be running. When the CPU receives an arbitrary process to be executed (step 111), an interrupt signal will be received and the CPU will be energized and the conditions of both the peripherals and subsystems will be restored for execution (step 107c). Once the peripherals and subsystems are restored and powered on, the CPU initiates an interrupt service routine to process the process execution (step 113). A schematic graph 100a of FIG. 1 illustrates the CPU utilization of busy state 151 and idle state 153, in accordance with the power saving routine described above.

도 2는 기존 시스템의 SoC에서 "주변기기들 및 서브 시스템들의 선택적 슬립" 모드를 예시한 개략도(200a) 및 대응하는 방법의 흐름도(200b)를 포함한다. 도 2의 방법(200b)의 단계들은 이하에서 상세히 기술될 단계들(208, 208a, 208b, 및 211)의 추가를 제외하면, 도 1의 방법(100b)의 대응 단계들과 유사하다. 도 1의 방법(100b)의 유사 단계들에 대응하는 방법(200b)의 단계들에 대한 추가 설명은 명료함과 간결함을 위해 생략된다. "주변기기들 및 서브 시스템들의 선택적 슬립" 모드는 소정 조건들의 리스트가 만족되는 CPU 아이들 상태 중에 발생된다(단계 208). 주변기기들 및 서브 시스템들의 선택적 슬립 모드는 도 1에 기술된 바와 같은 슬립 모드와 유사하지만, CPU의 아이들 기간 중에 주변기기들 및 서브 시스템들 모두를 슬립 모드로 보내는 대신, CPU가 CPU 아이들 기간 중에 활성화되지 않을 주변기기들 및 서브 시스템들만을 검출 및 선택한다(단계 208a). 그리고, 상기 CPU가 선택된 주변기기들 및 서브 시스템들만을 슬립 모드로 천이시킨다(단계 208b). 선택적 슬립 모드로 진입(단계 208) 및 WFI 상태로 진입한 (단계 209) 후, 인터럽트가 발생할 때(단계 211), 선택된 주변기기들 및 서브 시스템들에 대한 전력 투입/복구가 수행된다(단계 212). 전력 투입/복구가 수행된 후(단계 212), 인터럽트 서비스 루틴이 수행된다(단계 213).Figure 2 includes a schematic 200a illustrating a "selective sleep " mode of peripherals and subsystems in a SoC of an existing system and a flowchart 200b of a corresponding method. The steps of method 200b of FIG. 2 are similar to the corresponding steps of method 100b of FIG. 1, except for the addition of steps 208, 208a, 208b, and 211, which will be described in detail below. Further descriptions of the steps of the method 200b corresponding to similar steps of the method 100b of FIG. 1 are omitted for clarity and brevity. The "selective sleep " mode of peripherals and subsystems is generated during a CPU idle state in which a list of certain conditions is satisfied (step 208). The optional sleep mode of peripherals and subsystems is similar to the sleep mode as described in FIG. 1, but instead of sending both peripherals and subsystems in sleep mode during the idle period of the CPU, the CPU is not activated during the CPU idle period And detect and select only those peripherals and subsystems (step 208a). Then, the CPU transitions only selected peripheral devices and subsystems to the sleep mode (step 208b). After entering the selective sleep mode (step 208) and entering the WFI state (step 209), power is applied / restored to selected peripherals and subsystems (step 212) when an interrupt occurs (step 211) . After the power injection / recovery is performed (step 212), an interrupt service routine is performed (step 213).

도 1을 참조하여 기술된 바와 같은 슬립 모드와 도 2를 참조하여 기술된 바와 같은 선택적 슬립 모드는 동일한 결점들을 공유한다. CPU 아이들 상태가 장기간 유지되지 않을 때(즉, 짧은 CPU 아이들 타임), 주변기기들에 대한 외부 구성요소들이나 게이팅 클록들을 전원 차단하고 이들을 짧은 시간 안에 바로 복구하는 것은 전력 절감이 아닌 더 많은 전력 소비를 낳게 된다. 이러한 증가는 CPU가 안정되기 전 CPU의 OFF에서 ON 천이 상태 중의 추가 전류 서지(surge)에 의해 야기됨으로써, 평소보다 더 많은 전력을 소비한다. 선택적 슬립 모드에서 주변기기들 및 서브 시스템들에 의해 소비되는 전력이 일반적인 슬립 모드에서의 소비보다 적다고 해도, 선택적 슬립 모드의 전력 소비는 여전히 쟁점 사항으로, 그러한 시스템들의 성능을 개선할 필요가 있다.The sleep mode as described with reference to FIG. 1 and the selective sleep mode as described with reference to FIG. 2 share the same drawbacks. Powering off external components or gating clocks to peripherals and recovering them in a short time when the CPU idle state is not maintained for a long time (ie, short CPU idle time) results in more power consumption than power saving do. This increase is caused by an additional current surge during the OFF-to-ON transition state of the CPU before the CPU stabilizes, thereby consuming more power than usual. Even though the power consumed by peripherals and subsystems in the selective sleep mode is less than the consumption in the general sleep mode, the power consumption of the selective sleep mode is still an issue, and there is a need to improve the performance of such systems.

시스템의 CPU 아이들 기간은 특정 시나리오에 대해 지정된 패턴을 가질 수 있다. 예를 들어, 주어진 시나리오에 대해, CPU 아이들 기간은 특정 인터럽트나 작업의 실행 뒤에 특정 패턴을 일정하게 따를 수 있다. CPU 아이들 기간의 길이는 CPU 아이들 패턴이 발생할 때마다 가변할 수 있으나, 그 CPU 아이들 기간은 어느 정도 예측될 수 있다. 그러나, 프로토콜, 디자인, 또는 아키텍처에 기반하여 CPU 아이들 기간을 정적으로 예측하는 것은 실현 가능하지 않을 수 있다. CPU 아이들 기간은 런타임 중에 예측되어야 하는데, 이는 CPU 아이들 기간이 실제 구현예에 기반하여 가변할 수 있기 때문이다. 예를 들어, 모뎀이 미리 결정된 기간 동안 어떤 데이터 수신이 예상되지 않을 때 무선 주파수(RF) 수신기를 턴 오프하는 프로세스인 3GPP(3rd Generation Partnership Project) 사양의 LTE(Long-Term Evolution) DRX(Discontinuous Reception)를 고려할 수 있다. 상기 DRX 사이클은 모뎀이 PDCCH(Physical Downlink Control CHannel)의 제어 채널 정보를 읽기 위해 주기적으로 슬립 상태로 진입 및 각성할 수 있도록 구성된다. The CPU idle period of the system may have a specified pattern for a particular scenario. For example, for a given scenario, the CPU idle period may follow a particular pattern constantly after the execution of a particular interrupt or task. The length of the CPU idle period can vary each time a CPU idle pattern occurs, but its CPU idle period can be predicted to some extent. However, static estimation of the CPU idle period based on protocol, design, or architecture may not be feasible. The CPU idle period should be predicted during runtime since the CPU idle period may vary based on the actual implementation. For example, when a modem is in a Long Term Evolution (DRX) (Discontinuous Reception (LTE)) specification of the 3rd Generation Partnership Project (3GPP) specification, which is a process of turning off a radio frequency (RF) ) Can be considered. The DRX cycle is configured to allow the modem to periodically enter the sleep state and awaken to read the control channel information of the PDCCH (Physical Downlink Control Channel).

DRX 사이클이 주기적이라고 하나, 3GPP 사양에 따라, CPU ON 타임 및 그에 따른 아이들 타임은 이하의 조건에 따라 가변될 수 있다.
Although the DRX cycle is periodic, according to the 3GPP specification, the CPU ON time and the idle time accordingly can be varied according to the following conditions.

A: 하드웨어 과도기 응답 및 프로세싱 오프로드에 기인:A: Due to hardware transient response and processing offload:

도 3은 하드웨어 과도기 응답 양태로 인한 기존의 CPU 아이들 기간의 변동을 예시한 타이밍도이다.3 is a timing diagram illustrating variation of an existing CPU idle period due to a hardware transient response mode.

도 3을 참조하면, 그래프(300)는 3GPP 사양에 따른 DRX 사이클 패턴을 나타내며, 장치가 ON 상태 및 DRX 상태에 있게 될 듀레이션들(301 및 303)을 각각 보여준다. DRX 상태 중에, 장치는 공중파 통신을 수행할 것이고 CPU는 아이들 상태에 있을 것이다. 그러나 실제 구현예에서, 장치 ON 상태 및 CPU 아이들 상태의 듀레이션들(305 및 307)은 각각 가변하는데, 그 이유는 장치 ON 상태 중에 시스템은 하드웨어 안정화를 고려할 때 주변기기들을 각성 및 복구하는데 약간의 시간을 요하며, CPU 아이들 기간으로 진입하기 전에 시스템은 주변기기들을 턴 오프하는데 약간의 시간을 요하기 때문이다. 주변기기들을 각성 및 복구시키는데 걸리는 추가 시간을 " early wake up" 시간(309)이라 칭하기로 한다. 도 3에서, 주변기기들을 각성시키고(309) 주변기기들을 턴 오프(311)하기 위해 시스템에 의해 소요되는 추가 시간은 장치 ON 기간(305)의 양측 점선으로 그린 원들로 표시되어 있다. 각성 기간(309) 및 CPU 아이들 기간(309) 중에 시스템에 의해 소요되는 추가 시간은 가변될 수 있다.
Referring to FIG. 3, a graph 300 represents a DRX cycle pattern according to the 3GPP specification and shows durations 301 and 303, respectively, in which the device will be in an ON state and a DRX state. During the DRX state, the device will perform airwave communication and the CPU will be in the idle state. However, in an actual implementation, the durations 305 and 307 of the device ON state and the CPU idle state, respectively, are variable because, during the device ON state, the system takes some time to awaken and recover the peripherals when considering hardware stabilization Because the system requires some time to turn off the peripherals before entering the CPU idle period. The additional time it takes to awaken and restore the peripherals is referred to as "early wake up" time 309. In Figure 3, the additional time taken by the system to awaken (309) the peripherals and turn off (311) the peripherals is indicated by circles drawn with dashed lines on both sides of the device on period (305). The additional time taken by the system during the awakening period 309 and the CPU idle period 309 may vary.

B: PDCCH 수신 동안:B: during PDCCH reception:

도 4는 PDCCH 수신으로 인해 가변하는 기존 CPU 아이들 기간의 변동을 예시한 타이밍도(400)이다. 4 is a timing diagram 400 illustrating the variation of existing CPU idle periods that vary due to PDCCH reception.

도 4를 참조하면, 그래프(400)에 보여진 바와 같이, CPU ON 상태 중에, 시점 401에서 PDCCH를 통해 다운링크 할당이 수신된다 다운링크 할당은 들어오는 데이터를 찾기 위한 NDI(New Data Indicator)를 세팅하고, 그에 따라 기간 403 동안 DRX 비활성 타이머가 시동된다. NDI는 CPU 아이들 듀레이션의 일부를 소비하고, 그에 따라 DRX 사이클(407)에 대한 CPU 아이들 듀레이션(405)을 감소시킬 수 있다.
Referring to FIG. 4, as shown in the graph 400, during the CPU ON state, a downlink allocation is received on the PDCCH at a point of view 401. Downlink allocation sets an NDI (New Data Indicator) for finding incoming data , So that the DRX inactivity timer is started during the period 403. The NDI may consume a portion of the CPU idle duration and thereby reduce the CPU idle duration 405 for the DRX cycle 407. [

C: 짧은 DRX 사이클들이 구성된다:C: Short DRX cycles are configured:

도 5는 긴 DRX 사이클들에서 짧은 DRX로 인해 기존에 분포된 CPU 아이들 타임을 예시한 타이밍도(500)이다. Figure 5 is a timing diagram 500 illustrating the CPU Idle time previously distributed due to a short DRX in long DRX cycles.

도 5를 참조할 때, 그래프(500)에서 보여진 바와 같이, 짧은 DRX 사이클들의 구성은 옵션 특성이며, 그 동안 DRX 사이클들(505)(사이클들 505a 및 505b를 포함)이 긴 DRX 사이클(507)의 OFF 기간들(503)(사이클들 503a, 503b, 및 503c 포함) 중에 구현될 수 있다. 긴 DRX 사이클의 OFF 기간들(503)은 실제 CPU 아이들 기간들을 식별한다. 그러나, 여러 짧은 DRX 주기들(505)이 긴 DRX 주기(507) 중에 구현되기 때문에, 짧은 DRX 주기들(505)은 CPU 아이들 기간을 줄일 수 있고, 그에 따라 시스템의 CPU 아이들 기간에 영향을 주게 된다.5, the configuration of short DRX cycles is an optional feature, during which DRX cycles 505 (including cycles 505a and 505b) are long DRX cycles 507, Off periods 503 (including cycles 503a, 503b, and 503c). The long DRX cycle OFF periods 503 identify the actual CPU idle periods. However, since several short DRX cycles 505 are implemented during a long DRX cycle 507, the short DRX cycles 505 can reduce the CPU idle period, thereby affecting the CPU idle period of the system .

따라서, 모뎀 SoC에서의 전력 절감을 위한 CPU 아이들 패턴들의 장치 학습 예측을 위한 효과적 방법 및 시스템이 요구된다.Therefore, there is a need for an effective method and system for device learning prediction of CPU idle patterns for power saving in a modem SoC.

그러므로, 본 명세서의 다양한 실시 예들은 모뎀 SoC에서의 전력 절감을 위해 CPU 아이들 패턴을 예측함으로써 컴퓨팅 시스템에서의 전력 관리를 제공하기 위한 방법 및 시스템을 개시한다.
Thus, various embodiments herein disclose a method and system for providing power management in a computing system by predicting a CPU idle pattern for power savings in a modem SoC.

명세서는 여러 곳에서 "일", "하나의", 또는 "일부" 실시예(들)을 언급할 수 있다. 이것이 반드시, 그러한 언급이 그 실시예(들)에 대한 것이거나 그 해당 특성이 하나의 실시예에 대해서만 적용됨을 내포하는 것은 아니다. 서로 다른 실시예들의 하나씩의 특성들이 다른 실시예들을 제공하기 위해 결합될 수도 있다.The specification may refer to "one", "one", or "some" embodiments (s) in various places. This does not necessarily imply that such reference is made to the embodiment (s) or that the corresponding features apply only to one embodiment. The individual characteristics of the different embodiments may be combined to provide other embodiments.

여기 사용된 바와 같이, 단수형은 명백히 다른 것을 지시하지 않는 한 복수형을 포함하는 것으로 의도된다. "포함한다", "구비한다", "포함하는", 및/또는 "구비하는"이라는 용어들은 이 명세서에 사용될 때 언급한 특성들, 정수들, 단계들, 동작들, 구성요소들 및/또는 컴포넌트들의 존재를 특정하지만 하나 이상의 다른 특성들, 정수들, 단계들, 동작들, 구성요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재나 추가를 배제하지 않는다. 여기에 사용된 바와 같이 "및/또는"이라는 용어는 관련되어 나열된 목록들 중 하나 이상 중 어느 하나 및 모든 조합들과 배열들을 포함한다.As used herein, the singular forms are intended to include the plural forms unless the context clearly dictates otherwise. The terms " comprising, "" comprising," " including, "and / or" comprising " But does not preclude the presence or addition of one or more other features, integers, steps, operations, components, components, and / or groups thereof. As used herein, the term "and / or" includes any and all combinations and arrangements of one or more of the listed listed related.

다르게 정의되지 않는다면, 여기에 사용되는 모든 용어들(기술 및/또는 과학 용어들)은 본 개시가 속하는 기술 분야의 숙련자들에게 전형적으로 이해되어지는 것과 동일한 의미를 가진다. 일반 사용 사전들에 정의된 것들과 같은 용어들은 이 명세서에서 명확히 정의된 것이 아니라면 관련 기술의 맥락에 따른 해당 의미와 일치하는 의미를 가진다.Unless otherwise defined, all terms (technical and / or scientific terms) used herein have the same meaning as is typically understood by those skilled in the art to which this disclosure belongs. Terms such as those defined in the generic use dictionaries have meanings consistent with the corresponding meaning according to the context of the related art unless clearly defined in this specification.

CPU 아이들 기간 중 모뎀 SoC에서의 개선된 전력 절감을 달성한다는 목적에 따라, 본 개시는 CPU 아이들 패턴의 예측 및 CPU 아이들 기간 중 선택적 슬립의 적용을 기술한다.For the purpose of achieving improved power savings in a modem SoC during a CPU idle period, the present disclosure describes the prediction of a CPU idle pattern and the application of selective sleep during a CPU idle period.

도 6은 본 개시의 일 실시예에 따라, CPU 아이들 타임을 예측하기 위한 장치 학습 프로세스의 모델을 예시한 개략도이다.6 is a schematic diagram illustrating a model of a device learning process for predicting CPU idle time, in accordance with one embodiment of the present disclosure;

도 6에 따르면, 본 개시의 일 실시예에 따른 프로세스의 모델은 다음 세 가지 단계들을 포함한다:According to Figure 6, a model of a process according to one embodiment of the present disclosure includes the following three steps:

(a) CPU 아이들 타임의 동향적 패턴을 이해하기 위해 런타임 중 CPU 아이들을 모니터링(단계 602);(a) Monitor CPU children during runtime to understand trending patterns of CPU idle time (step 602);

(b) CPU 아이들 기간의 동향적 패턴을 예측 및 결정(단계 604); 및 (b) Predicting and determining a trending pattern of CPU idle periods (step 604); And

(c) 해당 시간에 선택적 슬립이 가능해질 수 있도록, 상기 예측된 결과들을 시스템에 적용(단계 606), 이렇게 함으로써 시스템의 전력 절감 효율을 높일 수 있다.(c) The predicted results are applied to the system (step 606) so that the selective sleep can be made at the corresponding time, thereby enhancing the power saving efficiency of the system.

단계 602에서, 프로세스들의 실행 및 CPU의 아이들 주기로의 진입이 관찰되는 CPU 아이들 기간의 동향적 패턴을 이해하기 위해, CPU 아이들 기간이 시스템의 런타임 중에 모니터링된다. 프로세스 실행 관찰과 함께, 특정 타입의 프로세스의 수행 이후의 CPU 아이들 기간의 듀레이션 역시 관찰되는데, 이것은 CPU가 그 특정 타입의 프로세스 실행 후 특정 기간 동안 아이들 상태로 진입할 수 있다는 것을 식별 및 암시하는데 사용될 수 있다. 예를 들어, CPU는 프로세스 A를 실행하는데 n1 초가 걸릴 수 있고, 프로세스 A 실행 후 m1 초 동안 아이들 상태에 있을 수 있다. 마찬가지로, 프로세스 B를 실행하기 위해, CPU는 실행에 n2 초가 걸릴 수 있고, 프로세스 B 실행 후 m2 초 동안 아이들 상태에 있을 수 있다. 실행 패턴을 관찰한 후, 시스템은 프로세스 A나 프로세스 A 와 유사한 다른 프로세스가 실행될 때마다 그 프로세스 실행 후의 CPU 아이들 기간이 m1 초가 될 것이라고 추정한다.At step 602, the CPU idle period is monitored during the runtime of the system to understand the trending patterns of CPU idle periods in which the execution of processes and entry of the CPU into the idle period are observed. Along with observing process execution, the duration of the CPU idle period after the execution of a particular type of process is also observed, which can be used to identify and imply that the CPU can enter the idle state for a certain period of time after the execution of that particular type of process have. For example, the CPU may take n1 seconds to execute process A, and may remain in the idle state for m1 seconds after execution of process A. Likewise, to execute process B, the CPU may take n2 seconds to execute and may be in the idle state for m2 seconds after execution of process B. [ After observing the execution pattern, the system estimates that every time another process similar to Process A or Process A is executed, the CPU idle period after the process execution will be m1 seconds.

본 개시의 일 실시예에 따르면, 시스템의 CPU 아이들 기간의 모니터링은 어떤 고정된 기간과 관련하여 수행될 수 있다. 본 개시의 다른 실시예에 따르면, 시스템의 CPU 아이들 기간의 모니터링은 프레임 동기 레이트에 기반할 수 있다.According to one embodiment of the present disclosure, monitoring of the CPU idle period of the system may be performed in connection with any fixed period of time. According to another embodiment of the present disclosure, the monitoring of the CPU idle period of the system may be based on the frame sync rate.

단계 604에서, 동향적 패턴이 식별되고, 특정 타입의 프로세스의 실행 중, 그리고 실행 후, CPU가 어떻게 행동하는지를 가리키는 특정 시나리오에 대한 CPU 아이들 패턴이 결정된다. CPU의 동향적 패턴은 기록될 수 있고, 선택적 슬립 모드를 적용하기 위한 결정은 그 기록에 기반하여 수행될 수 있다. 선택적 슬립 모드를 적용하기 위한 결정은 다음 두 가지 상이한 방식에 따라 취해질 수 있다: (1) 시간에 따른 예측 및 (2) 이벤트 지문에 따른 예측, 이들에 대해서는 도 7 및 8을 각각 참조하여 설명할 것이다.At step 604, a trending pattern is identified, a CPU idle pattern is determined for a particular scenario that indicates how the CPU behaves during and after execution of a particular type of process. The trending pattern of the CPU can be recorded, and the decision to apply the selective sleep mode can be performed based on that record. The decision to apply the selective sleep mode may be taken in two different ways: (1) a prediction over time and (2) a prediction based on an event fingerprint, which will be described with reference to Figures 7 and 8, respectively will be.

단계 606에서, 획득된 결정에 기반하여, 산출 결과들이 시스템에 적용된다. 획득된 결과들은 시스템의 전력 절감 효율이 높아지도록 하기 위해, 선택적 슬립 모드를 시스템에 적용하는데 어느 CPU 아이들 타임 기간이 적합한지를 가리킨다. 획득된 결정에 따라, 선택적 슬립 모드가 특정 CPU 아이들 타임 기간 중에만 적용되고, 선택된 주변기기들과 서브 시스템들이 슬립 모드로 보내진다. 다른 주변기기들과 서브 시스템들은 CPU가 아이들 상태에 있는 동안 활성 모드 상태에 있을 수 있다. 다른 주변기기들과 서브 시스템들은 CPU 아이들 기간, 관찰된 동향적 패턴, 실행 중인 프로세스 등에 기반하여 슬립 모드에 있을 수 있으나, 본 개시의 실시예들이 여기에 국한하는 것은 아니다. 선택된 주변기기들과 서브 시스템들이 CPU 아이들 기간 동안 슬립 모드에 있으므로, 시스템의 전력 소비가 줄어들고, 그에 따라 전력 절감 효율성이 높아질 수 있다.In step 606, based on the obtained determination, the calculation results are applied to the system. The obtained results indicate which CPU idle time period is suitable for applying the selective sleep mode to the system in order to increase the power saving efficiency of the system. According to the obtained decision, the selective sleep mode is applied only during the specific CPU idle time period, and the selected peripheries and subsystems are sent to the sleep mode. Other peripherals and subsystems may be in active mode while the CPU is idle. Other peripherals and subsystems may be in a sleep mode based on CPU idle duration, observed trend pattern, running process, etc., but the embodiments of the present disclosure are not limited thereto. Since the selected peripherals and subsystems are in the sleep mode for the duration of the CPU idle, the power consumption of the system may be reduced and the power saving efficiency accordingly increased.

도 7은 본 개시의 일 실시예에 따라, 동향 예측에 기반하는 시간에 따른 결정 방법을 예시한 개략도이다. 7 is a schematic diagram illustrating a time-based determination method based on trend prediction, in accordance with one embodiment of the present disclosure;

도 7의 방법(700b)을 참조할 때, 본 방법에 따르면, 단계 702에서 CPU 아이들 기간의 각각의 인스턴스가 시스템의 런타임 중에 모니터링될 수 있다. CPU 아이들 기간은, 서로 다른 CPU 아이들 기간의 시나리오들을 식별하는 'n' 개의 인스턴스들에 대해 모니터링될 수 있다. 단계 704에서, 모니터링 중 획득된 서로 다른 CPU 아이들 기간 시나리오들에 기반하여, 정의된 문턱치보다 긴 CPU 아이들 타임의 시작이 예측될 수 있다. 단계 706에서, 문턱치보다 길다고 예측된 미래의 CPU 아이들 타임들에 대응하는 미래의 타임스탬프들을, 시스템이 CPU 아이들 상태에 있는 경우 전력 절감 프로세스가 시작될 수 있는 선택된 위치들로서 타이머 프레임 안에 표시함으로써, 산정된 가설(즉, 예측)이 적용될 수 있다.Referring to method 700b of FIG. 7, according to the method, each instance of the CPU idle period may be monitored during runtime of the system at step 702. [ The CPU idle period may be monitored for 'n' instances that identify scenarios of different CPU idle periods. At step 704, based on the different CPU idle period scenarios obtained during monitoring, the start of a CPU idle time longer than the defined threshold can be predicted. At step 706, future timestamps corresponding to future CPU idle times predicted to be longer than the threshold are displayed in the timer frame as selected locations where the power saving process can be initiated if the system is in the CPU idle state, (I.e., prediction) can be applied.

도 7에서 그래프(700a)는 CPU에 의한 프로세스의 실행을 위해 시간 프레임의 일부가 고려되는 예를 보여준다. 제1기간(751) 중에, 20 마이크로 초마다, CPU가 아이들 기간으로 진입하는 최대 가능 긴 CPU 아이들 기간을 결정하기 위해 긴 CPU 아이들 기간이 모니터링된다. 그래프(700a)에서, CPU가 어느 프로세스에 점유된 경우, CPU가 비지인 듀레이션은 빗금진 부분(761)에서 보여진 바와 같이 그늘져 있고, CPU가 아이들인 듀레이션은 좌측으로 빗금져 있다. CPU가 좁은 기간 동안 비지인 경우, 그 비지 타임 또한 빗금 기간(763)에서 보여진 것과 같이 관찰 및 보고될 수 있다.The graph 700a in Fig. 7 shows an example in which a part of the time frame is considered for the execution of the process by the CPU. During the first period 751, every 20 microseconds, a long CPU idle period is monitored to determine the maximum possible long idle period during which the CPU enters the idle period. In graph 700a, when a CPU is occupied by a process, the duration in which the CPU is busy is shaded as shown in the shaded portion 761, and the duration in which the CPU is idle is skewed to the left. If the CPU is busy for a short period of time, its busy time can also be observed and reported as shown in the hatched period 763.

긴 CPU 아이들 상태에 대해 매 20 마이크로 초 마다 모니터링을 수행하는 것과 유사한 방식으로, 긴 CPU 아이들이 매 40 마이크로 초, 또는 60 마이크로 초 마다 모니터링될 수 있다. 매 20 마이크로 초 마다 획득되는 관찰결과에 기반하여, 제2기간(753) 동안, 긴 CPU 아이들 기간이 예측될 수 있고, 선택된 주변기기들 및 서브 시스템들에 대해 선택적 슬립 모드를 적용하기 위한 아이들 기간이 산정될 수 있다. 긴 CPU 아이들 기간이 예측되면, 기간 756a 및 756b와 같이 다가오는 매 20 마이크로 초의 기간 동안 선택적 슬립 모드가 적용될 수 있다. 각각의 다가오는 20 마이크로 초의 기간에 선택적 슬립 모드를 적용하는 동안에도, 긴 CPU 아이들의 모니터링 및 예측이 수행될 수 있는데, 이는 그 동향 및 CPU 아이들 패턴이 사용자의 입력 프로세스 실행 요청, 또는 실행 할 어떤 다른 긴급 프로세스와 같은 여러 상황들에 기반하여 달라질 수 있기 때문이다.In a manner similar to performing monitoring every 20 microseconds for long CPU idle states, long CPU idle can be monitored every 40 microseconds, or every 60 microseconds. Based on the observation results obtained every 20 microseconds, during the second period 753, a long CPU idle period can be predicted and an idle period for applying the selective sleep mode for the selected peripherals and subsystems Can be estimated. If a long CPU idle period is predicted, an optional sleep mode may be applied for a period of every 20 microseconds that comes in, such as periods 756a and 756b. Monitoring and prediction of long CPU idles can also be performed while applying the optional sleep mode for each upcoming 20 microsecond period, since that trend and CPU idle pattern can be detected by the user's input process execution request, Because it can be based on various situations such as emergency processes.

도 8은 본 개시의 일 실시예에 따라, 동향 예측에 기반하는 시간에 따른 결정을 위한 이벤트 지문 방법을 예시한 개략도이다. 도 8의 방법(800b)을 참조할 때, 단계 802에서 CPU 아이들 기간의 각각의 인스턴스가 다양한 작업들에 대한 시스템의 런타임 중에 모니터링될 수 있다. CPU 아이들 기간은, 서로 다른 CPU 아이들 기간의 시나리오들을 식별하는 서로 다른 n 개의 작업들의 'n' 개의 인스턴스들에 대해 모니터링될 수 있다. 단계 804에서, 모니터링 중 획득된 서로 다른 CPU 아이들 기간 시나리오들에 기반하여, CPU 아이들 패턴 전에 실행되고 문턱치보다 긴 인터럽트나 작업의 예측이 수행된다. 단계 806에서, 그렇게 예측된 미래의 인터럽트들이나 작업들을 예측 테이블 안에 표시함으로써, 산정된 가설이 적용될 수 있고, 그에 따라 앞으로 시스템이 그러한 작업이나 인터럽트가 발생한 후에 CPU 아이들 상태로 진입할 때마다, 전력 절감 프로세스가 시작될 수 있다.8 is a schematic diagram illustrating an event fingerprinting method for time-based determination based on trend prediction, in accordance with one embodiment of the present disclosure; Referring to method 800b of FIG. 8, each instance of the CPU idle period may be monitored at step 802 during the runtime of the system for various tasks. The CPU idle period may be monitored for " n " instances of different n jobs identifying scenarios of different CPU idle periods. At step 804, based on different CPU idle period scenarios obtained during monitoring, a prediction of an interrupt or task that is executed before the CPU idle pattern and is longer than the threshold is performed. In step 806, the estimated hypothesis can be applied by marking such predicted future interrupts or tasks in the prediction table, so that whenever the system enters the CPU idle state after such a task or interrupt occurs, The process can be started.

도 8에서 그래프(800a)는 CPU에 의한 작업 1, 작업 2, 작업 3,.., 작업 n의 실행을 위해 시간 프레임의 일부가 고려되는 예를 보여준다. 제1기간(851) 동안, CPU가 작업 1, 2, 3,..,n을 위해 아이들 기간으로 진입하는 최대 이용 가능한 긴 CPU 아이들 기간을 결정하기 위해 기간 855와 같은 긴 CPU 아이들 기간이 모니터링될 수 있다. 상기 모니터링에 기반하여, CPU 아이들 패턴이 수행되기 전에 어떤 인터럽트나 작업이 실행되어야 하는지에 대한 예측이 수행되며, 문턱치보다 긴 실행될 인터럽트들이나 작업들이 관찰된다.In FIG. 8, a graph 800a shows an example in which a part of a time frame is considered for execution of Job 1, Job 2, Job 3, ..., job n by the CPU. During the first period 851, a long CPU idle period, such as period 855, is monitored to determine the maximum usable long idle period for the CPU to enter the idle period for tasks 1, 2, 3, ..., n . Based on the monitoring, a prediction is made of which interrupts or tasks should be executed before the CPU idle pattern is executed, and interrupts or tasks to be executed that are longer than the threshold are observed.

그러한 인터럽트들이나 작업들이 예측 테이블 안에 표시될 수 있다. 제2기간(853) 중에, 산정 및 관찰된 패턴이 소정 인터벌 뒤에 작업들에 적용될 수 있는 바, 앞으로 시스템이 표시된 작업이나 인터럽트 후 CPU 아이들 상태에 진입할 때마다, 전력 절감 선택적 슬립 모드가 시작될 수 있다. 표시된 인터럽트나 작업은 특정 이벤트들의 순차적 실행이 보다 긴 CPU 아이들 상태를 낳았던 단일 이벤트 또는 이벤트 지문일 수 있다. CPU 아이들 상태 중에 표시된 인터럽트나 작업들에 대해 선택적 슬립 모드를 적용하는 동안에도, 긴 CPU 아이들의 모니터링 및 예측이 또한 수행될 수 있는데, 이는 그 동향 및 CPU 아이들 패턴이 사용자의 입력 프로세스 실행 요청, 또는 실행 할 어떤 다른 긴급 프로세스와 같은 여러 상황들에 기반하여 달라질 수 있기 때문이다.Such interrupts or tasks may be displayed in the prediction table. During the second period 853, the estimated and observed pattern can be applied to tasks after a predetermined interval so that whenever a system enters the CPU idle state after a displayed job or interrupt, a power saving optional sleep mode can be initiated have. The displayed interrupt or task may be a single event or event fingerprint where the sequential execution of certain events resulted in a longer CPU idle state. Monitoring and prediction of long CPU idles may also be performed while applying the optional sleep mode for interrupts or tasks displayed during the CPU idle state because the trend and the CPU idle pattern may be requested by the user's input process execution, Because it can vary based on a number of situations, such as some other emergency process to run.

본 개시에 따르면, CPU 아이들 상태의 예측은 실행 프로세스가 시간에 따라 급격히 변하고 반복적 실행 패턴들의 빈도가 감소되는 소정 시나리오에 대해서는 실패할 수 있다. 그러한 시나리오들은 간헐적일 수 있고 제한된 시간 동안 존재할 수 있다. 이러한 현상 도중의 예측은 부정확할 수 있어 짧은 CPU 아이들 상태에 대해서도 선택적 슬립을 야기하는 결과를 가져올지 모른다. 앞서 논의된 바와 같이, 짧은 CPU 아이들 상태 중에 선택적 슬립 모드를 이행하는 것은 평상시보다 약간 더 많은 전력을 소비할 수 있다. 그러한 예측 실패에 의해 일어난 추가 전력 소비는 현재의 실행 패턴들에 기반하여 예측 테이블을 업데이트함으로써 극복될 수 있다.According to the present disclosure, prediction of the CPU idle state may fail for certain scenarios in which the execution process changes abruptly over time and the frequency of repetitive execution patterns is reduced. Such scenarios may be intermittent and may exist for a limited time. Predictions during this phenomenon may be inaccurate and may result in selective sleep for short CPU idle states. As discussed above, implementing an optional sleep mode during a short CPU idle state can consume slightly more power than usual. The additional power consumption caused by such prediction failure can be overcome by updating the prediction table based on the current execution patterns.

본 개시는 예측 프로세스에 대해 네거티브 피드백 메커니즘을 이용하며, 모니터 작업에 의해 관착되는 시스템 실행 패턴의 어떠한 변화라도 예측 테이블을 자동으로 업데이트할 것이고, 그에 따라 가설을 정정한다. 따라서, 예측 테이블 업데이트는 자체 조절되며 어떠한 예측 실패로부터도 복구된다.The present disclosure utilizes a negative feedback mechanism for the prediction process and will automatically update the prediction table with any change in the system execution pattern that is adhered to by the monitoring operation, thereby correcting the hypothesis. Thus, the prediction table update is self-regulated and is recovered from any prediction failure.

소정 예들이 상술한 실시예들에서 사용되었지만, 그러한 실시예들의 보다 넓은 사상 및 범위로부터 벗어나지 않고 그러한 실시예들에 대해 다양한 변형과 변경이 만들어질 수 있다는 것은 자명한 일일 것이다. 또한 여기 기술된 다양한 장치, 모듈 등은 하드웨어 회로, 예컨대 CMOS(complementary metal oxide semiconductor) 기반 로직 회로, 펌웨어, 소프트웨어 및/또는 하드웨어, 펌웨어, 및/또는 장치 판독가능 매체 상에서 구현되는 소프트웨어의 어떤 조합을 이용하여 기능하고 동작될 수 있다. 예컨대, 다양한 전기적 구조 및 방법들이 트랜지스터, 로직 게이트, 및 ASIC(application specific integrated circuit)과 같은 전기 회로를 이용하여 구현될 수 있다.Although certain examples have been used in the foregoing embodiments, it will be apparent that various modifications and changes may be made to such embodiments without departing from the broader spirit and scope of such embodiments. Also, the various devices, modules, etc. described herein may be implemented in hardware circuits, such as CMOS (complementary metal oxide semiconductor) based logic circuits, firmware, software, and / or any combination of software implemented on hardware, firmware, and / And can be operated and used. For example, various electrical structures and methods may be implemented using electrical circuits such as transistors, logic gates, and application specific integrated circuits (ASICs).

본 개시는 소정 실시예들에 대한 참조를 포함하고 있으나, 당업자라면 이하의 청구범위 및 그 균등물에 의해 정의된 바와 같이 본 개시의 사상 및 범위로부터 벗어나지 않고 형식 및 세부내용에 있어서 다양한 변경이 이뤄질 수 있다는 것을 알 수 있을 것이다.Although the present disclosure includes references to certain embodiments, it will be understood by those skilled in the art that various changes may be made in form and detail without departing from the spirit and scope of the present disclosure, as defined by the following claims and equivalents thereof You can see that you can.

Claims (16)

중앙 처리 유닛(CPU) 및 운영 체제를 사용하는 시스템에서 전력 관리를 제공하는 방법에 있어서,
상기 CPU의 아이들 타임들을 모니터링하는 단계;
상기 모니터링된 아이들 타임들에 기반하여 상기 CPU의 아이들 패턴을 예측하는 단계; 및
상기 예측된 아이들 패턴에 기반하여 주변기기의 선택적 슬립(sleep)을 결정하는 단계를 포함하는 방법.
A method for providing power management in a system using a central processing unit (CPU) and an operating system,
Monitoring idle times of the CPU;
Predicting an idle pattern of the CPU based on the monitored idle times; And
And determining an optional sleep of the peripheral based on the predicted idle pattern.
제1항에 있어서, 상기 모니터링된 아이들 타임들은, 전력 절감을 트리거링하기 위해서 미리 정의된 임계값보다 긴 작업의 아이들 타임들임을 특징으로 하는 방법.
2. The method of claim 1, wherein the monitored idle times are idle times of a task longer than a predefined threshold value to trigger power saving.
제1항에 있어서, 상기 모니터링하는 과정은,
상기 아이들 타임들을 고정된 기간, 및 프레임 동기 레이트 중 적어도 하나에 기반하여 모니터링하는 과정을 포함하는 방법.
The method of claim 1, wherein the monitoring comprises:
And monitoring the idle times based on at least one of a fixed duration and a frame sync rate.
제3항에 있어서,
상기 고정된 기간에 기반하여 상기 아이들 패턴을 예측할 경우, 선택된 시간 프레임에 대해, 상기 미리 정의된 임계값보다 긴 아이들 시간을 예측하는 단계; 및
상기 선택된 시간 프레임 내에서, 상기 아이들 타임에 대응하는 타임 스탬프를 컴퓨팅 시스템이 상기 CPU가 아이들 모드에 있을 때 전력 절감을 일으키는 위치로서 표시하는 단계를 포함하는 방법.
The method of claim 3,
Estimating an idle time longer than the predefined threshold value for a selected time frame when the idle pattern is predicted based on the fixed period; And
And displaying, within the selected time frame, a timestamp corresponding to the idle time as a location where the computing system causes power savings when the CPU is in the idle mode.
제3항에 있어서,
상기 프레임 동기 레이트에 기반하여 상기 아이들 패턴을 예측할 경우, 상기 아이들 패턴 전에 실행되는 작업 및 인터럽트 중 하나를 식별하는 단계;
상기 작업 및 인터럽트 중 식별된 것의 실행에 대응하는 상기 아이들 패턴이 상기 미리 정의된 임계값보다 긴지 여부를 확인하는 단계; 및
다음 아이들 상태에 대한 전력 절감을 트리거링하기 위해서 예측 테이블 안에 상기 작업 및 인터럽트 중 상기 식별된 것을 표시하는 단계를 포함하는 방법.
The method of claim 3,
Identifying one of a task and an interrupt to be executed before the idle pattern when predicting the idle pattern based on the frame synchronization rate;
Determining whether the idle pattern corresponding to the execution of the identified ones of the tasks and interrupts is longer than the predefined threshold; And
And displaying said identified ones of said operations and interrupts in a prediction table to trigger power savings for a next idle state.
제5항에 있어서, 상기 작업은
단일 이벤트, 또는 상기 선택된 이벤트들의 순차적 실행이 증가된 상기 CPU의 아이들 타임을 가져왔던 선택된 이벤트들의 이벤트 지문 중 적어도 하나를 포함하는 방법.
6. The method according to claim 5,
A single event, or an event fingerprint of selected events that resulted in an idle time of the CPU for which sequential execution of the selected events has been increased.
제6항에 있어서,
상기 예측 테이블은 상기 단일 이벤트나 상기 선택된 지문의 실행 패턴의 변화에 따라 업데이트됨을 특징으로 하는 방법.
The method according to claim 6,
Wherein the prediction table is updated according to a change in the execution pattern of the single event or the selected fingerprint.
제1항에 있어서, 상기 선택적 슬립 모드를 결정하는 단계는,
상기 모니터링된 아이들 타임들 중 동작하지 않는 주변 기기를 턴 오프하는 단계를 포함하는 방법.
2. The method of claim 1, wherein determining the selective sleep mode comprises:
And turning off the non-operational peripheral of the monitored idle times.
중앙 처리 유닛(CPU) 및 운영 체제를 사용하는 시스템에서 전력 관리를 수행하기 위한 장치에 있어서,
상기 CPU의 아이들 타임들을 모니터링하는 모니터링부와,
상기 모니터링된 아이들 타임들에 기반하여 상기 CPU의 아이들 패턴을 예측하는 예측부와,
상기 예측된 아이들 패턴에 기반하여 주변기기의 선택적 슬립(sleep)을 결정하는 제어부를 포함하는 장치.
1. An apparatus for performing power management in a system using a central processing unit (CPU) and an operating system,
A monitoring unit for monitoring idle times of the CPU,
A predictor for predicting an idle pattern of the CPU based on the monitored idle times;
And a controller for determining an optional sleep of the peripheral based on the predicted idle pattern.
제9항에 있어서, 상기 모니터링된 CPU 아이들 타임들은, 전력 절감을 트리거링하기 위해서 미리 정의된 임계값보다 긴 작업의 아이들 타임들임을 특징으로 하는 장치.
10. The apparatus of claim 9, wherein the monitored CPU idle times are idle times of a task longer than a predefined threshold value to trigger power saving.
제9항에 있어서, 상기 모니터링부는,
고정된 소정 기간, 및 프레임 동기 레이트 중 적어도 하나에 기반하여 상기 모니터링을 수행함을 특징으로 하는 장치.
10. The apparatus according to claim 9,
A fixed predetermined period of time, and a frame synchronization rate.
제11항에 있어서, 상기 예측부는,
상기 고정된 기간에 기반하여 상기 아이들 패턴을 예측할 경우, 선택된 시간 프레임에 대해, 상기 미리 정의된 임계값보다 긴 아이들 시간을 예측하고,
상기 선택된 시간 프레임 내에서, 상기 아이들 타임에 대응하는 타임 스탬프를, 컴퓨팅 시스템이 상기 CPU가 아이들 모드에 있을 때 전력 절감을 일으키는 위치로서 표시함을 특징으로 하는 장치.
12. The apparatus of claim 11,
Estimating an idle time longer than the predefined threshold value for a selected time frame when predicting the idle pattern based on the fixed period,
Wherein the computing system displays, within the selected time frame, a timestamp corresponding to the idle time as a location where the computing system causes power savings when the CPU is in the idle mode.
제11항에 있어서, 상기 프레임 동기 레이트에 기반하여 상기 아이들 패턴을 예측할 경우, 상기 예측부는,
상기 아이들 패턴 전에 실행되는 작업 및 인터럽트 중 하나를 식별하고,
상기 작업 및 인터럽트 중 식별된 것의 실행에 대응하는 상기 아이들 패턴이 상기 미리 정의된 임계값보다 긴지 여부를 확인하고,
다음 아이들 상태에 대한 전력 절감을 트리거링하기 위해서 예측 테이블 안에 상기 작업 및 인터럽트 중 상기 식별된 것을 표시를 특징으로 하는 장치.
12. The method of claim 11, wherein, in predicting the idle pattern based on the frame synchronization rate,
Identifying one of an action and an interrupt to be executed before the idle pattern,
Determining whether the idle pattern corresponding to the execution of the identified ones of the tasks and interrupts is longer than the predefined threshold,
And to display said identified ones of said tasks and interrupts in a prediction table to trigger power savings for a next idle state.
제13항에 있어서, 상기 작업은
단일 이벤트, 또는 상기 선택된 이벤트들의 순차적 실행이 증가된 상기 CPU의 아이들 타임을 가져왔던 선택된 이벤트들의 이벤트 지문 중 적어도 하나를 포함하는 장치.
14. The method of claim 13,
A single event, or an event fingerprint of selected events that resulted in an idle time of the CPU for which sequential execution of the selected events has been increased.
제14항에 있어서, 상기 예측 테이블은 상기 단일 이벤트나 상기 선택된 지문의 실행 패턴의 변화에 따라 업데이트 됨을 특징으로 하는 장치.
15. The apparatus of claim 14, wherein the prediction table is updated according to a change in an execution pattern of the single event or the selected fingerprint.
제9항에 있어서, 상기 제어부는,
상기 모니터링된 CPU 아이들 타임들 중에 동작하지 않는 주변 기기를 턴 오프함을 특징으로 하는 장치.
10. The apparatus according to claim 9,
And turns off peripheral devices that do not operate during the monitored CPU idle times.
KR1020150038425A 2014-04-03 2015-03-19 A method and apparutus for predicting a central processing unit idle pattern for power saving in a modem system on chip KR20150115634A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/678,164 US20150286271A1 (en) 2014-04-03 2015-04-03 System and method for predicting a central processing unit idle pattern for power saving in a modem system on chip

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461974748P 2014-04-03 2014-04-03
US61/974,748 2014-04-03
KR20150021124 2015-02-11
KR1020150021124 2015-02-11

Publications (1)

Publication Number Publication Date
KR20150115634A true KR20150115634A (en) 2015-10-14

Family

ID=54357727

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150038425A KR20150115634A (en) 2014-04-03 2015-03-19 A method and apparutus for predicting a central processing unit idle pattern for power saving in a modem system on chip

Country Status (1)

Country Link
KR (1) KR20150115634A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112399536A (en) * 2020-11-26 2021-02-23 深圳北斗通信科技有限公司 Gun positioning terminal power consumption management method and system and storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112399536A (en) * 2020-11-26 2021-02-23 深圳北斗通信科技有限公司 Gun positioning terminal power consumption management method and system and storage medium

Similar Documents

Publication Publication Date Title
JP6125539B2 (en) Dynamic power management in real-time systems
TWI494857B (en) Method for performing wake-up event management, and associated apparatus and associated computer program product
EP3320438B1 (en) High availability and energy-efficient watchdog timer
US20080005592A1 (en) Method, apparatus, and system for increasing single core performance in a multi-core microprocessor
US9104423B2 (en) Method and system for advance wakeup from low-power sleep states
US20150286271A1 (en) System and method for predicting a central processing unit idle pattern for power saving in a modem system on chip
EP2884483B1 (en) Apparatus and method for controlling screen display in electronic device
US10067551B2 (en) Power state transition analysis
US20170269984A1 (en) Systems and methods for improved detection of processor hang and improved recovery from processor hang in a computing device
US9477293B2 (en) Embedded controller for power-saving and method thereof
CN108885486B (en) Enhanced Dynamic Clock and Voltage Scaling (DCVS) scheme
US20160124481A1 (en) Methods and systems for detecting undervolting of processing cores
US10275007B2 (en) Performance management for a multiple-CPU platform
KR20140026308A (en) Apparatus and method for managing power in multi-core system
US9672048B2 (en) Electronic device and method for waking up operating system thereof
KR101578336B1 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
KR20150115634A (en) A method and apparutus for predicting a central processing unit idle pattern for power saving in a modem system on chip
JP2013092839A (en) Power supply controller, method of controlling power supply controller, and program
US8751841B2 (en) Data processing system, method for processing data and computer program product
US9298237B1 (en) Voltage scaling system with sleep mode
CN115623557A (en) Network finding frequency determining method, network finding frequency determining device and electronic equipment
US10146367B2 (en) Synchronization method and touch signal processing system using the same
CN106569879B (en) Method for awakening peripheral and mobile terminal
TWI489260B (en) Stand-by management method and related management module and computer system
US20140149988A1 (en) Method for managing threads and electronic device using the same method