Method of waking up an electronic device
Patent Information
- Application Number
- CN202510693284.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-27
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2045-05-27
AI Technical Summary
智能眼镜轻量化的设计意味着无法搭载容量较大的电池,这也对智能眼镜的功耗提出了更高的要求,尤其是智能眼镜属于长期佩戴的产品,佩戴期间不间断发生各种业务,例如:来电,通知,音乐播放,配置等业务,对眼镜造成很大挑战
Smart Images

Figure CN120540728B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to methods for waking up electronic devices, storage media, and program products. Background Technology
[0002] With the development of smart glasses, they are increasingly being used in various aspects of life and work. The lightweight design of smart glasses means they cannot accommodate large-capacity batteries, which places higher demands on their power consumption. This is especially true since smart glasses are worn for extended periods, during which various tasks occur continuously, such as incoming calls, notifications, music playback, and configuration settings, posing a significant challenge to the glasses. Therefore, it is crucial for smart glasses to be able to enter sleep mode to extend battery life when there is no activity, while ensuring timely response when needed. Summary of the Invention
[0003] This disclosure provides methods for waking up an electronic device, as well as corresponding electronic devices, non-transitory machine-readable storage media, and computer program products for performing these methods.
[0004] According to a first aspect of the present disclosure, a method for waking up an electronic device is provided, the electronic device including a main processor running a main system and one or more subprocessors running one or more subsystems, wherein the main system and the one or more subsystems are both in a sleep state when the electronic device is in a sleep state; the method includes: when the electronic device is in a sleep state, a subsystem receives a first wake-up event; in response to determining that the first wake-up event is an external wake-up event of the subsystem, the subsystem sets the clock frequency of its first submodule from a current first frequency value to a second frequency value, wherein the first frequency value is an operating frequency set by the subsystem in the sleep state, the second frequency value is the highest allowed operating frequency of the subsystem, and the first submodule of the subsystem is configured to control the temporary operating frequency of the subsystem; the subsystem parses the first wake-up event and sends a related first message to the main system; in response to the main system returning a response to the first message, the subsystem sets the clock frequency of the first submodule to the first frequency value; and in response to determining that the clock frequencies of the first submodule and all other submodules of the subsystem are set to the first frequency value, the subsystem enters a sleep state.
[0005] Optionally, the method further includes: when the electronic device is in a sleep state, the subsystem receives a second wake-up event; in response to determining that the second wake-up event belongs to an internal wake-up event of the subsystem, the subsystem parses the second wake-up event and performs corresponding processing; after processing is completed, in response to determining that all clock frequencies of the first submodule and other submodules of the subsystem are set to the first frequency value, the subsystem enters a sleep state.
[0006] Optionally, the method further includes: in response to receiving a wake-up notification sent by the master system, the subsystem sets the clock frequency of its second submodule to a third frequency value to maintain a wake-up state, wherein the third frequency value is higher than the first frequency value and lower than or equal to the second frequency value, and the second submodule of the subsystem is configured to control the long-term operating frequency of the subsystem.
[0007] Optionally, the method further includes: in response to receiving a hibernation notification sent by the master system, the subsystem returns a response to the hibernation notification to the master system, sets the clock frequency of the second submodule to a first frequency value, and in response to determining that the clock frequencies of the first, second, and other submodules of the subsystem are all set to the first frequency value, the subsystem enters a hibernation state.
[0008] Optionally, the subsystem is a Bluetooth subsystem, and the electronic device further includes a Bluetooth controller. In the sleep state of the electronic device, the Bluetooth controller maintains a heartbeat connection with other electronic devices, and the first wake-up event is the event in which the Bluetooth controller receives a Bluetooth message from the other electronic device.
[0009] Optionally, the method further includes: in response to receiving a first message from the subsystem, the main system enters a wake-up state, changes the clock frequency of its third submodule from the current fourth frequency value to a fifth frequency value, and sets a timer for the third submodule, wherein the fourth frequency value is the operating frequency set by the main system in a sleep state, the fifth frequency value is the highest allowed operating frequency of the main system, and the third submodule of the main system is configured to control the temporary operating frequency of the main system; the main system returns a response to the first message to the subsystem; in response to determining that the first wake-up event belongs to the main system background event, the main system processes the first wake-up event in the background; in response to the timer expiring, the main system sets the clock frequency of its third submodule to the fourth frequency value; and in response to determining that the clock frequencies of the third submodule and all other submodules of the main system are set to the fourth frequency value, the main system enters a sleep state.
[0010] Optionally, the method further includes: in response to receiving a first message from the subsystem, the main system enters a wake-up state, changes the clock frequency of its third submodule from the current fourth frequency value to a fifth frequency value, and sets a timer for the third submodule, wherein the fourth frequency value is the operating frequency set by the main system in a sleep state, the fifth frequency value is the highest allowed operating frequency of the main system, the third submodule of the main system is configured to control the temporary operating frequency of the main system, and the timer is configured to cause the main system to set the clock frequency of the third submodule to the fourth frequency value after a predetermined time has elapsed; the main system returns a response to the first message to the subsystem. In response to determining that the first wake-up event belongs to the main system foreground event, the main system sets the clock frequency of its fourth submodule to the sixth frequency value and sends a wake-up notification to a subsystem associated with the first wake-up event, so that the clock frequency of the second submodule of the associated subsystem is set to the third frequency value, wherein the sixth frequency value is higher than the fourth frequency value and lower than or equal to the fifth frequency value, and the third frequency value is higher than the first frequency value and lower than or equal to the second frequency value. The fourth submodule of the main system is configured to control the long-term operating frequency of the main system, and the second submodule of the associated subsystem is configured to control the long-term operating frequency of the associated subsystem.
[0011] Optionally, the method further includes: when the electronic device is in a sleep state, the main system receives a user-initiated wake-up event, enters a wake-up state, changes the clock frequency of its fourth sub-module from the fourth frequency value to the sixth frequency value, and sends a wake-up notification to a subsystem associated with the first wake-up event, so that the clock frequency of the second sub-module of the associated subsystem is set to the third frequency value, wherein the sixth frequency value is higher than the fourth frequency value and lower than or equal to the fifth frequency value, and the third frequency value is higher than the first frequency value and lower than or equal to the second frequency value. The fourth sub-module of the main system is configured to control the long-term operating frequency of the main system, and the second sub-module of the associated subsystem is configured to control the long-term operating frequency of the associated subsystem.
[0012] Optionally, when the electronic device enters a sleep state, both the main system and the one or more first subsystems enter a sleep state, including: in response to determining that the electronic device meets the conditions for entering a sleep state, the main system sends a sleep notification to the one or more subsystems to cause the one or more subsystems to enter a sleep state; in response to the one or more subsystems returning a response to the sleep notification, the main system sets the clock frequency of its fourth submodule to a fourth frequency value, the fourth submodule of the main system being configured to control the long-term operating frequency of the main system; and in response to determining that all clock frequencies of the third, fourth, and other submodules of the main system are set to the fourth frequency value, the main system enters a sleep state.
[0013] According to a second aspect of the present disclosure, a non-transitory machine-readable storage medium is provided, on which executable code is stored, which, when executed by a processor of an electronic device, causes the processor to perform the method described in any of the schemes of the first aspect above.
[0014] According to a third aspect of the present disclosure, a computer program product is provided, including executable code that, when executed by a processor of an electronic device, causes the processor to perform the method as described in any of the schemes of the first aspect above. Attached Figure Description
[0015] The above and other objects, features and advantages of this disclosure will become more apparent from the more detailed description of exemplary embodiments thereof taken in conjunction with the accompanying drawings, wherein like reference numerals generally denote like parts.
[0016] Figure 1 A schematic diagram of the structure of smart glasses, an example of an electronic device according to at least one embodiment of the present disclosure, is shown as an example.
[0017] Figure 2 A schematic flowchart illustrating a method for waking up an electronic device according to at least one embodiment of the present disclosure is shown as an example.
[0018] Figure 3 A schematic diagram of the structure of an example electronic device according to at least one embodiment of the present disclosure and its connection with other electronic devices are shown as an example.
[0019] Figure 4 An exemplary flowchart of an example method for waking up an electronic device according to at least one embodiment of the present disclosure is shown.
[0020] Figure 5 An exemplary flowchart of an example method for waking up an electronic device according to at least one embodiment of the present disclosure is shown.
[0021] Figure 6 An exemplary flowchart of an example method for waking up an electronic device according to at least one embodiment of the present disclosure is shown.
[0022] Figure 7 An exemplary flowchart of an example method for waking up an electronic device according to at least one embodiment of the present disclosure is shown.
[0023] Figure 8 A schematic diagram of the structure of an electronic device according to at least one embodiment of the present disclosure is shown as an example. Detailed Implementation
[0024] Exemplary embodiments of the present disclosure will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that the present disclosure will be thorough and complete, and will fully convey the scope of the present disclosure to those skilled in the art.
[0025] Smart glasses are a type of wearable smart product, which can include XR (Extended Reality) glasses, etc. XR glasses can be further divided into AR (Augmented Reality) glasses, VR (Virtual Reality) glasses, MR (Mixed Reality) glasses, etc.
[0026] like Figure 1 As shown, in some examples, smart glasses can embed hardware modules, including a processing system 110, within their frame (including the temples). Figure 1 As shown in the enlarged view of the processing system 110, the processing system 110 may include a main processor 101 and multiple sub-processors, namely sub-processors 102-103. Those skilled in the art will understand that... Figure 1 The number of subprocessors described is merely exemplary, and the embodiments disclosed herein can be applied to any number of subprocessors. Furthermore, it will be understood that... Figure 1 The invention is merely illustrative and not a limitation on the structure of the smart glasses disclosed herein; the smart glasses may include more or fewer components than illustrated, or combine certain components, or have different component arrangements; or the components in the smart glasses may be deployed in other different locations.
[0027] In this disclosure, the terms "master processor" and "sub-processor" refer to processors in a master-slave relationship within a processing system of an electronic device. The master processor is responsible for the operation of the entire electronic device and controls all sub-processors. All sub-processors obey the commands of the master processor and are responsible for completing specific tasks. Each processor runs an operating system instance. The operating system instance running on the master processor is called the master system, and the operating system instances running on the sub-processors are called sub-systems. The master system and each sub-system can use the same or different operating systems, such as various real-time operating systems (RTOS).
[0028] In some examples, the main processor and the subprocessors can adopt an AMP (Asymmetric Multi-processing) model. Each processor can have its own dedicated memory and communicate with each other by accessing restricted shared memory.
[0029] In addition, the main processor and each sub-processor can have the same or different architectures.
[0030] For example, the main processor or each sub-processor mentioned above may include one or more processing units, such as a central processing unit (CPU), an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural network processing unit (NPU), etc., wherein different processing units may be independent devices or integrated into one or more processors.
[0031] Although Figure 1 Not shown, but the smart glasses may also include a memory integrated with and / or separately configured with the processing system 110 described above. This memory can be used to store computer-executable program code, including instructions. The memory may include a program storage area and a data storage area. The program storage area may store the operating system, applications required for at least one function, etc. The data storage area may store data created during the use of the smart glasses (such as audio data).
[0032] Although Figure 1 The diagram shows the main processor and sub-processor integrated into a single processing system 110 (i.e., a single chip); however, in other examples, the main processor and sub-processor may reside on separate chips. In one example, the processing system 110 may also be attached to the glasses rather than embedded within them, and so on.
[0033] As mentioned earlier, the expectation is that smart glasses can enter sleep mode when there is no business activity to improve battery life, while ensuring timely response when business activity occurs.
[0034] Several implementation schemes have been proposed, which employ an always-on approach to ensure response performance and reliability. This means the subsystem remains constantly awake to quickly process business logic, while the main system sleeps when there is no business activity. When an event is received, the main system is awakened to process it, and then returns to sleep to reduce power consumption. However, because the subsystem remains constantly awake, significant power consumption is wasted.
[0035] Therefore, this disclosure proposes a new wake-up scheme, in which the main system and all subsystems enter a sleep state when the electronic device is in sleep mode, resulting in lower overall power consumption, while allowing subsystems to independently receive and quickly process wake-up events, enabling timely response when business occurs.
[0036] The method for waking up electronic devices provided in this disclosure can be applied not only to the aforementioned smart glasses, but also to other types of handheld devices (such as mobile phones, personal digital assistants (PDAs), etc.), various types of computers (such as tablets, laptops, ultra-mobile personal computers (UMPCs), netbooks, laptops, etc.), wearable devices, in-vehicle devices, AR / VR devices, and other electronic devices. This disclosure does not impose any restrictions on the specific type of application device, such as electronic devices, as long as the application device has a main processor and a sub-processor and there is a need to wake up the application device in a timely manner.
[0037] As an example and not a limitation, when the electronic device is a wearable device, the wearable device can also be a general term for devices that apply wearable technology to intelligently design and develop everyday wearables, such as gloves, watches, AR head-mounted displays, VR head-mounted displays, or MR head-mounted displays equipped with far-field communication modules and / or near-field communication modules.
[0038] The following will combine Figures 2 to 7 Some embodiments of this disclosure are described in detail. In this disclosure, "a plurality of" or similar expressions refer to two or more.
[0039] Figure 2 A schematic flowchart illustrating a method for waking up an electronic device according to at least one embodiment of the present disclosure is provided. The electronic device includes a main processor running a main system and one or more subprocessors running one or more subsystems, and both the main system and the one or more subsystems enter a sleep state when the electronic device enters a hibernation state.
[0040] like Figure 2As shown, in step S210, when the electronic device is in a sleep state, a subsystem receives a first wake-up event.
[0041] The subsystem can be any subsystem, or a subsystem responsible for a specific task, such as the Bluetooth subsystem responsible for processing the Bluetooth protocol stack.
[0042] Although the present disclosure primarily discusses only the wake-up or sleep operations of a single subsystem, it is understood that in the case of an electronic device comprising multiple subsystems, other subsystems may also perform the same or similar operations as the one discussed subsystem as needed.
[0043] Furthermore, it is understood that in this disclosure, the terms "first," "second," etc., are used to distinguish similar objects, rather than to describe a specific order or sequence, and do not have any additional limiting effect. For example, the "first" wake-up event here and the "second" wake-up event described later are only used to distinguish individual wake-up events, rather than to distinguish the type or order of wake-up events.
[0044] A "wake-up event" refers to an event generated internally or externally that requires system processing. A subsystem can receive a first wake-up event from either internal or external sources.
[0045] Then, in step S220, in response to determining that the first wake-up event belongs to an external wake-up event of the subsystem, the subsystem sets the clock frequency of its first submodule from the current first frequency value to a second frequency value, wherein the first frequency value is the operating frequency set when the subsystem is in sleep mode, and the second frequency value is the highest allowed operating frequency of the subsystem. The first submodule of the subsystem is configured to control the temporary operating frequency of the subsystem. The operating frequency set in sleep mode is usually the lowest allowed operating frequency of the subsystem.
[0046] The terms "external" and "internal" in the context of external subsystem wake-up events and subsequent internal subsystem wake-up events are not used to distinguish the source of the wake-up event, but rather to indicate whether the wake-up event only needs to receive internal processing from its subsystem, or also needs to receive external processing from its subsystem. External subsystem wake-up events refer to wake-up events that require external processing from its subsystem, while internal subsystem wake-up events refer to wake-up events that only require internal processing from their respective subsystems.
[0047] In some examples, a predefined list or rules can be used to determine whether a received wake-up event belongs to an external wake-up event of the subsystem. For example, for the Bluetooth subsystem, the wake-up events it receives may include events where Bluetooth messages are received from other external electronic devices; such events are predefined as belonging to the subsystem's external wake-up events.
[0048] Upon receiving an external wake-up event from the subsystem, the subsystem needs to relay the event to the main system for processing, which involves inter-core communication. Furthermore, external wake-up events often involve user-interactive services (such as calls and music playback), requiring rapid response to improve user experience. Therefore, the subsystem temporarily increases its operating frequency from the lowest frequency during sleep to the highest frequency, thereby improving the subprocessor's performance to quickly process wake-up events, rapidly complete inter-core communication, and reduce end-to-end latency.
[0049] In this disclosure, each submodule of a subsystem, such as the first submodule and the second submodule described later, refers to a submodule configured to control various operating frequencies of the subsystem. Similarly, each submodule of a main system, such as the third and fourth submodules described later, refers to a submodule configured to control various operating frequencies of the main system.
[0050] Both the main system and the subsystem support operation at multiple different frequency levels. For example, the main system supports four operating frequencies: 32kHz / 24MHz / 96MHz / 192MHz, while the subsystem supports three. In this example, the first frequency value for the subsystem is the lowest value of 32kHz, the second frequency value is the highest value of 96MHz, and the third frequency value (described later) can be the intermediate value of 24MHz. For the main system, the fourth frequency value (described later) is the lowest value of 32kHz, the fifth frequency value is the highest value of 192MHz, and the sixth frequency value (described later) can be the intermediate value of 24MHz.
[0051] Since different applications / scenarios in the main system / subsystem may expect to use different operating frequencies, and the main system / subsystem can only use one frequency to actually run at any given time, in order to better manage the operating frequency and avoid setting conflicts, the main system / subsystem uses multiple sub-modules to set the operating frequency for multiple applications / scenarios respectively, and selects the maximum value among the operating frequencies set by all sub-modules as the current actual operating frequency.
[0052] In some examples, the main system / subsystem can use an array to manage the operating frequency of each submodule. Each element in the array represents a submodule, and its value is the corresponding submodule's operating frequency. For example, an array `sysfreq` maintained by the RTOS frequency management module can be used. The value of the corresponding element in this array can be set as the desired operating frequency according to the needs of each application / scenario. The system will take the largest value in the `sysfreq` array as the actual operating frequency, and the system will not hibernate if any element in the `sysfreq` array does not have a minimum operating frequency value.
[0053] For example, the main system may include submodules represented by the following array elements:
[0054] sysfreq[user0_wakup] controls the frequency of long-term operation to maintain a long wake-up state.
[0055] `sysfreq[user0_wakup_temp]` controls the temporary execution frequency of the temporary wake-up state.
[0056] sysfreq[user0_screen] controls the running frequency corresponding to the screen state.
[0057] sysfreq[user0_audio] controls the operating frequency of the audio service.
[0058] `sysfreq[user0_record]` controls the operating frequency of the recording service.
[0059] `sysfreq[user0_calling]` controls the operating frequency of the call application.
[0060] sysfreq[user0_wearing] controls the operating frequency corresponding to the wearing state.
[0061] sysfreq[user0_battery] controls the operating frequency corresponding to the charging state, etc.
[0062] The third submodule, which will be described later, can be sysfreq[user0_wakup_temp], and the fourth submodule can be sysfreq[user0_wakup].
[0063] For example, the Bluetooth subsystem may include submodules represented by the following array elements:
[0064] sysfreq[user1_wakup] controls the frequency of long-term operation to maintain a long wake-up state.
[0065] `sysfreq[user1_wakup_temp]` controls the temporary execution frequency of the temporary wake-up state.
[0066] sysfreq[user1_a2dp] controls the operating frequency of the a2dp service.
[0067] The first submodule can be sysfreq[user1_wakup_temp], and the second submodule, which will be described later, can be sysfreq[user1_wakup].
[0068] Both the long wake-up state and the temporary wake-up state mentioned above are states in which the system is woken up from a hibernation state or a shutdown state to handle events. The difference is that the long wake-up state is maintained for a longer period of time, during which the system is always on standby, waiting for new tasks to arrive. When a task arrives, it can be scheduled and processed immediately. The temporary wake-up state, on the other hand, is maintained for a shorter period of time, and usually enters a hibernation state after the current event is processed.
[0069] During long wake-up states, resources such as PLL (Phase-Locked Loop), PMU (Power Management Unit), and SRAM are in an active state to respond to and process new tasks in a timely manner.
[0070] Then, in step S230, the subsystem parses the first wake-up event and sends the relevant first message to the main system.
[0071] After reading the first message, the main system will return an acknowledgment (hereinafter referred to as ack) to the subsystem.
[0072] In some examples, the subsystem and the main system can use shared memory for inter-core communication. For instance, after parsing the first wake-up event and obtaining its specific content, the subsystem can assemble and write the content into the shared memory of SRAM, and assemble the relevant inter-core message as the first message to send to the main system. This inter-core message may contain a message number, a pointer address of the message content (i.e., the address in the shared memory of SRAM), etc.
[0073] Then, in step S240, in response to the main system returning a response to the first message, the subsystem sets the clock frequency of the first submodule to the first frequency value.
[0074] This ensures that the subsystem remains awake during inter-core communication until the master system finishes reading the message content, at which point the subsystem can enter sleep mode. For example, when using shared memory for inter-core communication, since the inter-core message content is stored in the subsystem's SRAM, it is necessary to ensure that the SRAM is active (not in sleep mode) during master system reads; otherwise, a read error will occur.
[0075] Then, in step S250, in response to determining that all clock frequencies of the first submodule and other submodules of the subsystem are set to the first frequency value, the subsystem enters a sleep state.
[0076] For example, when no other business threads are running, the lowest priority idle thread is scheduled and checked to see if it meets the sleep conditions. The sleep conditions include at least that all elements in the subsystem's sysfreq array have a minimum frequency value of 32K. Additionally, sleep conditions may also include that resources such as DMA (Direct Memory Access) and the bus have been released and there are no pending interrupt requests (pending IRQs).
[0077] If the idle thread of a subsystem checks and finds that the sleep conditions are met, it controls the subsystem to enter sleep mode and switches the subsystem's current actual operating frequency to 32kHz. For example, the idle thread can set the corresponding PMU of the subsystem to low power, which will change the subsystem's actual operating frequency to 32kHz.
[0078] After being woken up by an external event, the subsystem temporarily sets its operating frequency to the highest operating frequency and resets it to the lowest operating frequency after the main system returns an ACK, quickly returning to sleep mode. Therefore, the subsystem maintains a high clock frequency for a very short time, and its impact on power consumption is negligible.
[0079] Therefore, compared with the existing solution of disabling subsystem hibernation, the above-mentioned subsystem hibernation and wake-up methods can maintain the subsystem's functionality. After waking up, the subsystem will instantly increase its main frequency to ensure business performance. Compared with the existing subsystem always-on solution, it not only saves more power consumption, but also has minimal impact on performance.
[0080] In some embodiments, after receiving the first message from the subsystem in step S230, the main system can enter a temporary wake-up state. After reading the message content, it returns a response to the first message to the subsystem. Based on the message content, it determines whether the first wake-up event is a foreground or background event of the main system and processes it accordingly. Foreground / background events can be distinguished based on whether user interaction is required; events requiring interaction are foreground events, while those requiring no interaction are background events. For background events, the main system can re-enter sleep mode after processing. For foreground events, since it needs to wait for user interaction at any time, the main system maintains a long wake-up state and wakes up relevant subsystems as needed, also entering a long wake-up state, thereby improving the response speed to users. Only after the processing related to the foreground event is completely finished and all systems are idle will the main system re-enter sleep mode, thus putting the entire device into sleep mode.
[0081] For example, in response to receiving a first message from the subsystem, the main system enters a wake-up state, changes the clock frequency of its third submodule from the current fourth frequency value to a fifth frequency value, and sets a timer for the third submodule. The fourth frequency value is the operating frequency set when the main system is in sleep mode, and the fifth frequency value is the highest allowed operating frequency of the main system. The third submodule of the main system is configured to control the temporary operating frequency of the main system. This timer setting controls the duration of the temporary wake-up, and the timer is configured to cause the main system to set the clock frequency of the third submodule back to the fourth frequency value after a predetermined time has elapsed.
[0082] After being woken up by the first message, the main system temporarily increases its operating frequency to the maximum frequency. This improves processor performance to quickly handle the instantaneous wake-up requests and prevents sleep interruptions before the upper-layer application decides whether to keep the main system awake. Furthermore, as mentioned above, the main system also has a timer set to reset the maximum operating frequency back to the minimum frequency after a predetermined time (e.g., 200ms). Therefore, the main system maintains a high frequency for an extremely short time, and the impact on power consumption is negligible.
[0083] Then, after the main system finishes reading the content of the first message, it can return a response to the first message to the subsystem and determine whether it is a background event of the main system based on the message content.
[0084] Upon determining that the first wake-up event belongs to the main system background event, the main system processes the first wake-up event in the background. Upon timer expiration, the main system sets the clock frequency of its third submodule to the fourth frequency value. Upon determining that the clock frequencies of the main system's third submodule and all other submodules are set to the fourth frequency value, the main system enters a sleep state. The main system can enter a sleep state in a similar manner to the aforementioned subsystems. For example, when no other business threads are running, the lowest priority idle thread is scheduled and checks whether the sleep conditions are met. The sleep conditions include at least that all elements in the main system's sysfreq array have values of the lowest frequency value of 32kHz. Additionally, sleep conditions may also include that resources such as DMA and the bus have been released and there are no pending interrupt requests. If the main system's idle thread checks and finds that the sleep conditions are met, it controls the main system to enter a sleep state, switching the main system's current actual operating frequency to 32kHz. For example, the idle thread can set the main system's corresponding PMU to low power, which changes the main system's actual operating frequency to 32kHz.
[0085] On the other hand, in other cases, in response to determining that the first wake-up event belongs to the main system foreground event, the main system sets the clock frequency of its fourth submodule to a sixth frequency value and sends a wake-up notification to a subsystem associated with the first wake-up event, so that the clock frequency of the second submodule of the associated subsystem is set to a third frequency value, wherein the sixth frequency value is higher than the fourth frequency value and lower than or equal to the fifth frequency value, and the third frequency value is higher than the first frequency value and lower than or equal to the second frequency value. The fourth submodule of the main system is configured to control the long-term operating frequency of the main system, and the second submodule of the associated subsystem is configured to control the long-term operating frequency of the associated subsystem.
[0086] Additionally, for the subsystem, in response to receiving a wake-up notification from the main system, the subsystem sets the clock frequency of its second submodule to a third frequency value to maintain the wake-up state, wherein the second submodule of the subsystem is configured to control the long-term operating frequency of the subsystem.
[0087] Additionally, the main system can distribute the first message to the application handling the first wake-up event and set the clock frequency of the corresponding submodule (also known as the fifth submodule) to the desired value. The fifth submodule is configured to control the operating frequency of the application, such as the aforementioned sysfreq[user0_audio], sysfreq[user0_record], etc.
[0088] It is understandable that, in the case of the first wake-up event being a foreground event of the main system, since a timer was also set for the third submodule, the main system will also set the clock frequency of the third submodule to the fourth frequency value (i.e., the lowest frequency value) after the timer expires. However, at this time, the clock frequencies of the fourth and fifth submodules are not the fourth frequency value, but higher values. Therefore, the main system will not enter a sleep state, but will select the highest frequency value as the actual operating frequency and enter a long wake-up state.
[0089] As mentioned above, when it is necessary to wait for user interaction at any time, the main system maintains a long wake-up state, and the relevant subsystems also maintain a long wake-up state, thus improving the response speed to users.
[0090] The following is combined with Figure 3 and Figure 4 Here is an example to describe the above-described scheme in more detail.
[0091] Figure 3 A schematic diagram of the structure of an example electronic device according to at least one embodiment of the present disclosure and its connection with other electronic devices are shown as an example.
[0092] like Figure 3 As shown, the electronic device 310 includes a main processor 301 and two sub-processors, namely a Bluetooth sub-processor 302 and a sensor sub-processor 303. The sensor sub-processor 303 is typically responsible for sensor management, data processing, algorithm fusion, etc. It is understood that the Bluetooth sub-processor and the sensor sub-processor are merely exemplary, and this disclosure is not limited to including only two sub-processors.
[0093] Electronic device 310 also includes a Bluetooth controller 304, which can connect to other electronic devices (such as mobile phones) 320 via Bluetooth. Even when electronic device 310 enters a sleep state (where the Bluetooth subsystem is also in sleep mode), the Bluetooth controller 304 maintains a heartbeat connection with other electronic devices 320 in order to receive messages from them in a timely manner. The power consumed in maintaining the heartbeat connection can be kept very low.
[0094] Therefore, during the sleep period of electronic device 310, Bluetooth controller 304 can receive Bluetooth messages from other electronic devices 320. For example, if electronic device 310 is smart glasses and other electronic devices 320 are mobile phones, Bluetooth controller 304 can receive various Bluetooth messages from the mobile phone, such as battery synchronization messages and incoming call messages. After receiving a Bluetooth message, Bluetooth controller 304 can trigger an interrupt to wake up the Bluetooth subsystem running on Bluetooth subprocessor 302. That is, the aforementioned first wake-up event can be the event of Bluetooth controller 304 receiving a Bluetooth message from other electronic devices 320.
[0095] Figure 4 Given as Figure 2 A schematic flowchart of a method example, where the operations performed by the subsystem are in the dashed box on the left, and the operations performed by the main system are in the dashed box on the right.
[0096] For example, Figure 4 The subsystem in the text can be the Bluetooth subsystem running on the Bluetooth subprocessor 302 mentioned above, and the wake-up event is the event in which the Bluetooth controller 304 in the smart glasses receives a Bluetooth message from the mobile phone, which is another electronic device 320.
[0097] Taking the receipt of a battery synchronization message as an example, since the main system needs to update the phone's battery value, its corresponding wake-up event belongs to the external wake-up event of the subsystem. In addition, since it does not require interaction with the user, its corresponding wake-up event belongs to the background event of the main system.
[0098] When the smart glasses are in sleep mode, after the subsystem receives a wake-up event corresponding to the power synchronization message, in step S401, the subsystem determines whether the wake-up event belongs to the subsystem's external wake-up event. If so, proceed to step S402, and set the first submodule sysfreq[user1_wakeup_temp] to the highest frequency value of 96MHz. Then, in step S403, the subsystem parses the wake-up event as a BLE (Bluetooth Low Energy) message, assembles the message content and writes it into the shared memory of SRAM, and assembles an inter-core message to send to the main system. This inter-core message includes a message number, a pointer address to the message content, etc.
[0099] Then, in step S404, the master system receives the inter-core message from the subsystem. Following this, in step S405, the master system sets the third submodule sysfreq[user0_wakeup_temp] to the highest frequency value of 192MHz, sets a timer for 200ms, resets sysfreq[user0_wakeup_temp] to the lowest frequency value of 32K, and synchronously reads and parses the message content from SRAM.
[0100] After the message content is read, in step S406, the main system returns an ACK to the subsystem. Then, in step S407, the subsystem receives the ACK, and then in step S408, it sets the first submodule sysfreq[user1_wakeup_temp] to the minimum frequency value of 32K. Finally, in step S409, the subsystem re-enters sleep mode.
[0101] After the main system parses the message, in step S411, it is determined whether the wake-up event involved belongs to the main system foreground event. At this time, the wake-up event belongs to the main system background event, so the determination result is no, and proceeds to step S412, where the main system distributes the message to the corresponding application to process the event in the background, that is, to update the phone's battery value.
[0102] After 200ms, the timer expires. In step S410, the main system resets the third submodule sysfreq[user0_wakeup_temp] to the lowest frequency value of 32K. Then, in step S413, the main system re-enters sleep mode, and the smart glasses as a whole re-enters sleep mode.
[0103] In other cases, taking receiving a mobile phone call message as an example, since the main system needs to process it, the corresponding wake-up event belongs to the external wake-up event of the subsystem. In addition, since it needs to interact with the user, the corresponding wake-up event belongs to the foreground event of the main system.
[0104] Therefore, when the smart glasses are in sleep mode, after the subsystem receives a wake-up event corresponding to an incoming call message from the mobile phone, it performs the same steps S401-S411 as the previous battery synchronization message. In the judgment of step S411, since the wake-up event belongs to the foreground event of the main system at this time, the judgment result is yes, and proceeds to step S414. The main system sets the fourth submodule sysfreq[user0_wakeup] to the long-term operating frequency value of 24M. Then, in step S415, the main system maintains a long wake-up state and sends a wake-up notification to the Bluetooth subsystem. In step S416, the subsystem receives the wake-up notification. Then, in step S417, it sets the second submodule sysfreq[user1_wakeup] to the long-term operating frequency value of 24M. Then, in step S418, the subsystem maintains a long wake-up state.
[0105] Simultaneously with step S414 described above, the main system distributes the message to the corresponding call application. The call application processes the message and sets its corresponding submodule sysfreq[user0_calling] to the corresponding frequency. Both the main system and the subsystem remain awake throughout the call.
[0106] Furthermore, in some embodiments, when the electronic device is in sleep mode, if the wake-up event received by the subsystem is not an external wake-up event but an internal wake-up event of the subsystem, since it does not need to be sent to the main system for processing and is not an event requiring rapid response due to user interaction, the subsystem can maintain its operating frequency after being woken up and continue to enter sleep mode after processing internally at the lowest operating frequency. This minimizes power consumption.
[0107] For example, the method in this embodiment may further include: when the electronic device is in a sleep state, the subsystem receives a second wake-up event; in response to determining that the second wake-up event belongs to an internal wake-up event of the subsystem, the subsystem parses the second wake-up event and performs corresponding processing; after processing is completed, in response to determining that all clock frequencies of the first submodule and other submodules of the subsystem are set to a first frequency value, the subsystem enters a sleep state.
[0108] The following is combined with Figure 5 A specific example describing this wake-up situation.
[0109] like Figure 5 As shown, when the electronic device is in sleep mode, the subsystem receives a wake-up event. This wake-up event is an internal subsystem event, such as a timer interrupt within the subsystem (e.g., set up for periodic subsystem maintenance). Therefore, in step S501, it is determined that this wake-up event is not an external wake-up event for the subsystem, and then proceeds to step S502. After waking up, the subsystem does not need to increase its operating frequency, but only maintains its current minimum operating frequency. It also does not need to send the event to the main system; instead, it parses the event and processes it internally. Then, in step S503, after the internal processing is completed, the subsystem re-enters sleep mode.
[0110] In some embodiments, when the electronic device is in sleep mode, the main system can be actively woken up by the user. In this case, the main system must remain awake for a long time to respond to user operations at any time. Additionally, the main system can selectively wake up some subsystems based on business needs, keeping them also awake for a long time, while allowing the remaining subsystems to remain in sleep mode. This ensures both fast service response and minimizes power consumption.
[0111] For example, the method in this embodiment may further include: when the electronic device is in a sleep state, the main system receives a user-initiated wake-up event, enters a wake-up state, changes the clock frequency of its fourth sub-module from a fourth frequency value to a sixth frequency value, and sends a wake-up notification to a subsystem associated with the first wake-up event, so that the clock frequency of the second sub-module of the associated subsystem is set to a third frequency value, wherein the sixth frequency value is higher than the fourth frequency value and lower than or equal to the fifth frequency value, and the third frequency value is higher than the first frequency value and lower than or equal to the second frequency value. The fourth sub-module of the main system is configured to control the long-term operating frequency of the main system, and the second sub-module of the associated subsystem is configured to control the long-term operating frequency of the associated subsystem.
[0112] The following is combined with Figure 6 A specific example describing a user-initiated wake-up call.
[0113] like Figure 6 As shown, when the electronic device is in sleep mode, the main system receives a user-initiated wake-up event, such as a wake-up event caused by the user pressing the power key. Then, in step S601, the main system sets the fourth submodule sysfreq[user0_wakeup] to a long-term operating frequency value of 24MHz, and simultaneously sends an inter-core message to notify a subsystem to wake up. Then, in step S602, the main system maintains a long-term wake-up, and simultaneously in step S603, the subsystem receives the wake-up notification message, and then in step S604, it also sets the second submodule sysfreq[user1_wakeup] to a long-term operating frequency value of 24MHz. In step S605, this subsystem also maintains a long-term wake-up.
[0114] After the main system is actively woken up by the user, it can choose to wake up only one of the subsystems mentioned above, or in other cases, wake up more subsystems while the remaining subsystems remain dormant. For example, after the main system is woken up, the Bluetooth subsystem usually has high-frequency services, so to ensure service performance, the Bluetooth subsystem can be kept awake. The sensor subsystem, on the other hand, usually only runs services in specific scenarios, so the main system does not need to wake it up at this time, but only after the specific service is started.
[0115] In some embodiments, when it is determined that an electronic device needs to enter a sleep state, the main system controls all subsystems to enter a sleep state before it itself enters a sleep state.
[0116] For example, the following operations can be used to ensure that when an electronic device enters a sleep state, both the main system and one or more of the aforementioned first subsystems (i.e., all subsystems) enter a sleep state: in response to determining that the electronic device meets the conditions for entering a sleep state, the main system sends a sleep notification to the one or more subsystems, causing the one or more subsystems to enter a sleep state; in response to the one or more subsystems returning a response to the sleep notification, the main system sets the clock frequency of its fourth submodule to a fourth frequency value, the fourth submodule of the main system being configured to control the long-term operating frequency of the main system; and in response to determining that all clock frequencies of the third, fourth, and other submodules of the main system are set to the fourth frequency value, the main system enters a sleep state.
[0117] In addition, for each subsystem, in response to receiving a sleep notification sent by the main system, the subsystem returns a response to the sleep notification to the main system, sets the clock frequency of the second submodule to a first frequency value, and in response to determining that the clock frequencies of the first, second, and other submodules of the subsystem are all set to the first frequency value, the subsystem enters a sleep state.
[0118] The following is combined with Figure 7 A specific example describing this hibernation condition. Figure 7 In the diagram, the dashed boxes on the left represent the operations performed by the main system, while the dashed boxes on the right represent the operations performed by each subsystem. This electronic device comprises N subsystems (N>1). Since the operations of each subsystem are similar, for clarity, [the diagram is simplified as follows]. Figure 7 Only the first and last subsystems are shown as examples, while the operations of other subsystems are omitted.
[0119] like Figure 7 As shown, in step S701, the main system first determines that the electronic device needs to hibernate, for example, if there is no user interaction and no other business to process, and therefore initiates the hibernation process. In step S702, the main system sends a hibernation notification to all subsystems via inter-core communication. Then, in steps S703 and S707, each subsystem receives the hibernation notification, and then returns an ACK to the main system in steps S704 and S710 respectively. At the same time, in steps S705 and S708, the subsystems that control the long-term running frequency, such as sysfreq[user1_wakeup] and sysfreq[usern_wakeup], are set to the minimum frequency value of 32KHz. Then, if the idle thread of each subsystem checks and meets the hibernation conditions, it controls the corresponding subsystem to hibernate, and the actual running clock frequency is switched to 32KHz. In steps S706 and S709, each subsystem enters the hibernation state.
[0120] Additionally, in step S711, the main system receives ACKs from all subsystems. Then, in step S712, the main system sets its fourth submodule sysfreq[user0_wakeup] to the minimum frequency value of 32KHz. If the idle thread of the main system checks and meets the sleep conditions, it controls the main system to sleep, and the actual running clock frequency switches to 32KHz. In step S713, the main system enters sleep mode.
[0121] Once the main system and all subsystems have entered hibernation, the electronic device as a whole enters hibernation.
[0122] The above-mentioned hibernation method ensures that the main system and all subsystems are in a low-power mode when there is no service, and its power consumption is lower than that of the subsystem always-on solution.
[0123] Therefore, according to the methods of some embodiments of this disclosure, when it is determined that the entire electronic device should go into sleep mode without user interaction, the main system controls all subsystems to enter sleep mode and then enters sleep mode itself. That is, when the electronic device goes into sleep mode, the main system and all subsystems enter a low-power sleep state, while maintaining some system functions, such as Bluetooth connection. In the sleep state, if a subsystem is interrupted and woken up to handle an event, if it is an internal event, the subsystem will return to sleep mode after processing internally; if it is an external event, the main system will be woken up to handle the event. The main system chooses to quickly go into sleep mode or remain awake based on whether it is a user interaction event. If it is a background event without user interaction, the main system will return to sleep mode after processing. If it is a foreground event with user interaction, the main system will remain awake to run services and control some subsystems to remain awake to run services as needed.
[0124] Therefore, the solution of this disclosure embodiment can reduce the power consumption of the whole machine during sleep mode, while maintaining some system functions and ensuring service response speed.
[0125] Figure 8 A schematic diagram of the structure of an electronic device that can be used to implement the above-described method for waking up an electronic device according to at least one embodiment of the present disclosure is shown.
[0126] See Figure 8 The electronic device 800 includes a main processor 811, a subprocessor 812, and a memory 820. In other examples, the electronic device 800 may also include more subprocessors. These main processors and subprocessors may have the same or different architectures.
[0127] The main processor 811 or the sub-processor 812 can be a multi-core processor or may contain multiple processors. In some embodiments, the main processor 811 or the sub-processor 812 may include a general-purpose main processor and one or more special coprocessors, such as a graphics processing unit (GPU), a digital signal processor (DSP), etc. In some embodiments, the main processor 811 or the sub-processor 812 may be implemented using custom circuitry, such as an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).
[0128] Memory 820 may include various types of storage units, such as system memory, read-only memory (ROM), and permanent storage devices. ROM may store static data or instructions required by the main processor 811 or subprocessor 812, or other modules of the computer. Permanent storage devices may be read-write storage devices. Permanent storage devices may be non-volatile storage devices that retain stored instructions and data even when the computer is powered off. In some embodiments, permanent storage devices use mass storage devices (e.g., magnetic or optical disks, flash memory) as permanent storage devices. In other embodiments, permanent storage devices may be removable storage devices (e.g., floppy disks, optical drives). System memory may be a read-write storage device or a volatile read-write storage device, such as dynamic random access memory. System memory may store some or all of the instructions and data required by the processor during operation. Furthermore, memory 820 may include any combination of computer-readable storage media, including various types of semiconductor memory chips (DRAM, SRAM, SDRAM, flash memory, programmable read-only memory), and disks and / or optical disks may also be used. In some implementations, memory 820 may include a removable storage device that is readable and / or writable, such as a laser disc (CD), a read-only digital versatile optical disc (e.g., DVD-ROM, dual-layer DVD-ROM), a read-only Blu-ray disc, an ultra-high density optical disc, a flash memory card (e.g., SD card, mini SD card, Micro-SD card, etc.), a magnetic floppy disk, etc. Computer-readable storage media do not contain carrier waves or transient electronic signals transmitted wirelessly or via wired connections.
[0129] The memory 820 stores executable code. When the executable code is processed by the processor 820, the main processor 811 and the sub-processor 812 can execute the method for waking up the electronic device described above.
[0130] Furthermore, the method according to this disclosure can also be implemented as a computer program or computer program product, which includes computer program code instructions for performing the steps defined in the above-described method of this disclosure.
[0131] Alternatively, this disclosure may be implemented as a non-transitory machine-readable storage medium (or computer-readable storage medium, or machine-readable storage medium) storing executable code (or computer program, or computer instruction code) that, when executed by a processor of an electronic device (or computing device, server, etc.), causes the processor to perform the steps of the method described above according to this disclosure.
[0132] Those skilled in the art will also understand that the various exemplary logic blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein can be implemented as electronic hardware, computer software, or a combination of both.
[0133] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems and methods according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0134] The various embodiments of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or improvement of the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A method for waking up an electronic device, the electronic device comprising a main processor running a main system and one or more subprocessors running one or more subsystems, wherein the main system and the one or more subsystems are both in a sleep state when the electronic device is in a sleep state; The method includes: When the electronic device is in a sleep state, a subsystem receives a first wake-up event; In response to determining that the first wake-up event is an external wake-up event of the subsystem, the subsystem sets the clock frequency of its first submodule from the current first frequency value to a second frequency value, wherein the first frequency value is the operating frequency set when the subsystem is in a sleep state, the second frequency value is the highest operating frequency allowed by the subsystem, and the first submodule of the subsystem is configured to control the temporary operating frequency of the subsystem; The subsystem parses the first wake-up event and sends the relevant first message to the main system; In response to the main system returning an acknowledgment of the first message, the subsystem sets the clock frequency of the first submodule to the first frequency value; and In response to determining that all clock frequencies of the first submodule and all other submodules of the subsystem are set to the first frequency value, the subsystem enters a sleep state.
2. The method according to claim 1, further comprising: When the electronic device is in a sleep state, the subsystem receives a second wake-up event; In response to determining that the second wake-up event is an internal wake-up event of the subsystem, The subsystem parses the second wake-up event and processes it accordingly. After processing is completed, in response to determining that all clock frequencies of the first submodule and other submodules of the subsystem are set to the first frequency value, the subsystem enters a sleep state.
3. The method according to claim 1, further comprising: In response to receiving a wake-up notification from the main system, the subsystem sets the clock frequency of its second submodule to a third frequency value to maintain the wake-up state, wherein the third frequency value is higher than the first frequency value and lower than or equal to the second frequency value, and the second submodule of the subsystem is configured to control the long-term operating frequency of the subsystem; or In response to receiving a hibernation notification from the main system, the subsystem returns a response to the hibernation notification to the main system, sets the clock frequency of the second submodule to a first frequency value, and in response to determining that the clock frequencies of the first, second, and other submodules of the subsystem are all set to the first frequency value, the subsystem enters a hibernation state.
4. The method according to claim 1, wherein, The subsystem is a Bluetooth subsystem, and the electronic device also includes a Bluetooth controller. When the electronic device enters a sleep state, the Bluetooth controller maintains a heartbeat connection with other electronic devices. The first wake-up event is when the Bluetooth controller receives a Bluetooth message from the other electronic device.
5. The method according to claim 1, further comprising: In response to receiving a first message from the subsystem, the main system enters a wake-up state, changes the clock frequency of its third submodule from the current fourth frequency value to a fifth frequency value, and sets a timer for the third submodule. The fourth frequency value is the operating frequency set when the main system is in a sleep state, and the fifth frequency value is the highest operating frequency allowed by the main system. The third submodule of the main system is configured to control the temporary operating frequency of the main system. The main system returns a response to the first message to the subsystem; In response to determining that the first wake-up event belongs to the main system background event, the main system processes the first wake-up event in the background; In response to the timer expiring, the main system sets the clock frequency of its third submodule to the fourth frequency value; and In response to the determination that all clock frequencies of the third submodule and other submodules of the main system are set to the fourth frequency value, the main system enters a sleep state.
6. The method according to claim 1, further comprising: In response to receiving a first message from the subsystem, the main system enters a wake-up state, changes the clock frequency of its third submodule from the current fourth frequency value to a fifth frequency value, and sets a timer for the third submodule. The fourth frequency value is the operating frequency set when the main system is in a sleep state, and the fifth frequency value is the highest operating frequency allowed by the main system. The third submodule of the main system is configured to control the temporary operating frequency of the main system, and the timer is configured to cause the main system to set the clock frequency of the third submodule to the fourth frequency value after a predetermined time has elapsed. The main system returns a response to the first message to the subsystem; In response to determining that the first wake-up event belongs to the main system foreground event, the main system sets the clock frequency of its fourth submodule to the sixth frequency value and sends a wake-up notification to a subsystem associated with the first wake-up event, so that the clock frequency of the second submodule of the associated subsystem is set to the third frequency value, wherein the sixth frequency value is higher than the fourth frequency value and lower than or equal to the fifth frequency value, and the third frequency value is higher than the first frequency value and lower than or equal to the second frequency value. The fourth submodule of the main system is configured to control the long-term operating frequency of the main system, and the second submodule of the associated subsystem is configured to control the long-term operating frequency of the associated subsystem.
7. The method according to claim 5, further comprising: When the electronic device is in sleep mode, the main system receives a user-initiated wake-up event, enters wake-up mode, changes the clock frequency of its fourth submodule from the fourth frequency value to the sixth frequency value, and sends a wake-up notification to a subsystem associated with the first wake-up event, so that the clock frequency of the second submodule of the associated subsystem is set to the third frequency value, wherein the sixth frequency value is higher than the fourth frequency value and lower than or equal to the fifth frequency value, and the third frequency value is higher than the first frequency value and lower than or equal to the second frequency value. The fourth submodule of the main system is configured to control the long-term operating frequency of the main system, and the second submodule of the associated subsystem is configured to control the long-term operating frequency of the associated subsystem.
8. The method according to claim 5, wherein, When the electronic device enters a sleep state, both the main system and the one or more first subsystems enter a sleep state, including: In response to determining that the electronic device meets the conditions for entering a sleep state, the main system sends a sleep notification to the one or more subsystems, causing the one or more subsystems to enter a sleep state. In response to the one or more subsystems returning a reply to the hibernation notification, the main system sets the clock frequency of its fourth submodule to a fourth frequency value. This fourth submodule is configured to control the long-term operating frequency of the main system. In response to the determination that all clock frequencies of the third and fourth sub-modules and other sub-modules of the main system are set to the fourth frequency value, the main system enters a sleep state.
9. A non-transitory machine-readable storage medium having executable code stored thereon, which, when executed by a processor of an electronic device, causes the processor to perform the method as described in any one of claims 1-8.
10. A computer program product comprising executable code that, when executed by a processor of an electronic device, causes the processor to perform the method as described in any one of claims 1-8.
Citation Information
Patent Citations
Multistage low power consumption management unit of heterogeneous multi-core chip, and method thereof
CN106774808A
System dormancy method and device and system awakening method and device
CN117008980A