(19)
(11)EP 3 317 746 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
29.04.2020 Bulletin 2020/18

(21)Application number: 16827257.3

(22)Date of filing:  21.07.2016
(51)International Patent Classification (IPC): 
G06F 1/3234(2019.01)
G06F 1/3296(2019.01)
G06F 1/3287(2019.01)
(86)International application number:
PCT/CN2016/090880
(87)International publication number:
WO 2017/012566 (26.01.2017 Gazette  2017/04)

(54)

METHOD AND APPARATUS FOR A MULTIPLE-PROCESSOR SYSTEM

VERFAHREN UND VORRICHTUNG FÜR EIN MEHRFACHPROZESSORSYSTEM

PROCÉDÉ ET APPAREIL POUR SYSTÈME À PROCESSEURS MULTIPLES


(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

(30)Priority: 22.07.2015 US 201514806547

(43)Date of publication of application:
09.05.2018 Bulletin 2018/19

(73)Proprietor: Huawei Technologies Co., Ltd.
Longgang District Shenzhen, Guangdong 518129 (CN)

(72)Inventors:
  • CHEN, Wei
    Plano, Texas 75024 (US)
  • YANG, Tongzeng
    Plano, Texas 75024 (US)

(74)Representative: Kreuz, Georg Maria 
Huawei Technologies Duesseldorf GmbH Riesstraße 25
80992 München
80992 München (DE)


(56)References cited: : 
EP-A1- 2 808 759
CN-A- 102 498 451
US-A1- 2008 288 799
US-A1- 2010 296 238
US-A1- 2014 189 225
US-A1- 2015 052 377
EP-A2- 1 744 575
CN-A- 102 566 739
US-A1- 2009 182 980
US-A1- 2014 181 410
US-A1- 2014 285 014
US-A1- 2015 121 105
  
  • CHEEKALA LOVARAJU ET AL: "A Capacitor-less Low Drop-out (LDO) Regulator with Improved Transient Response for System-on-Chip Applications", VLSI DESIGN AND 2013 12TH INTERNATIONAL CONFERENCE ON EMBEDDED SYSTEMS (VLSID), 2013 26TH INTERNATIONAL CONFERENCE ON, IEEE, 5 January 2013 (2013-01-05), pages 130-135, XP032339603, DOI: 10.1109/VLSID.2013.176 ISBN: 978-1-4673-4639-9
  
Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


Description

TECHNICAL FIELD



[0001] This disclosure relates to data transmission in communication systems and, more specifically, to a multiple-processor system that supports a low-voltage memory retention (NAP) state.

BACKGROUND



[0002] In some cases, a multiple-processor system may be a computing component that includes two or more independent processing units. These processing units may be referred to as "cores," "Central Processing Units" (CPUs), or "CPU cores." These processing units may read and execute program instructions. The program instructions may include adding, moving data, and branching. In some cases, the multiple-processor system may run multiple instructions at the same time to increase overall speed for the execution of the programs. In some cases, a user equipment may use a multiple-processor system for high-performance and low-power operations. For example, a user equipment may use an MP system that includes 4 or 8 cores.

[0003] US2008/0288799 A1 entitled "Dynamic Processor Power Management Device and Method Thereof' discloses a processor that can operate in different power modes. A data processor includes a central processing unit having first and second processor cores and a cache, each of the processor cores and cache being operable in a plurality of power modes, including an active power mode, and a number of lower-power modes. The low power modes include a low-power retention mode and a low-power processing mode. A voltage regulator provides a different level of operating voltage VDD1 and VDD2 to the first and second processor cores, respectively, for each of the three power modes. For example, to place the first processor core in the active power mode, the operating voltage VDD1 is set to the active voltage level. To place the same processor core in the low-power processing mode, the operating voltage VDD1 is set to the low-power processing voltage level, which is lower than the active voltage level. To place the processor core in the low-power retention mode, the operating voltage VDD1 is set to a retention voltage to enable the processor core to retain state information, but not to execute instructions. The retention voltage is lower than the low-power processing voltage.

SUMMARY



[0004] The invention is defined in the independent claim and various embodiments are defined in the dependent claims. The embodiments described below are examples for better understanding the invention . Embodiments which do not fall within the scope of the claims do not describe part of the present invention. The present disclosure is directed to methods, systems, and computer program products for a multiple-processor system. The scope of protection is defined by the independent claims. The multiple-processor system includes a plurality of central processing unit (CPU) cores. Each of the plurality of CPU cores is configured to operate in at least one of a plurality of CPU states. The plurality of CPU states includes a low-voltage memory retention (NAP) state, an active state, and a shut-off state. The NAP state includes a sleep state that retains state memory. The multiple-processor system also includes a voltage regulator that is configured to provide a NAP voltage to the plurality of CPU cores. The NAP voltage is sufficient for at least one of the plurality of CPU cores to retain state information and the NAP voltage is lower than an active state voltage. The multiple-processor system further includes a plurality of state control switches. Each of the plurality of state control switches connects the voltage regulator to one of the plurality of CPU cores.

[0005] The present disclosure further discloses a method for providing state transitions in a multiple-processor system, wherein the multiple-processor system including a plurality of central processing unit (CPU) cores. The method comprises operating a first CPU core of the multiple-processor system in an active state, wherein the first CPU core is configured to operate in one of a plurality of CPU states, the plurality of CPU states includes a low-voltage memory retention (NAP) state, an active state, and a shut-off state, and the NAP state comprises a sleep state that retains state memory; receiving a NAP voltage from a voltage regulator, wherein the NAP voltage is sufficient for the first CPU core to retain state information and the NAP voltage is lower than an active state voltage , and the voltage regulator is configured to provide a NAP voltage to the plurality of CPU cores of the multiple-processor system; and transitioning, in response to receiving the NAP voltage, the first CPU core from the active state to the NAP state.

[0006] The present disclosure also discloses a use equipment (UE). The UE comprises a multiple-processor system comprising a plurality of central processing unit (CPU) cores, wherein each of the plurality of CPU cores is configured to operate in at least one of a plurality of CPU states, the plurality of CPU states including a low-voltage memory retention (NAP) state, an active state, and a shut-off state, wherein the NAP state comprises a sleep state that retains state memory; a voltage regulator that is configured to provide a NAP voltage to the plurality of CPU cores, wherein the NAP voltage is sufficient for at least one of the plurality of CPU cores to retain state information and the NAP voltage is lower than an active state voltage; and a plurality of state control switches, wherein each of the plurality of state control switches connects the voltage regulator to one of the plurality of CPU cores.

[0007] Other implementations of this aspect include corresponding user equipments (UEs), apparatuses, computer-implemented methods, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods. A system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of software, firmware, or hardware installed on the system that in operation causes the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.

[0008] The details of one or more implementations of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will be apparent from the description, the drawings, and/or the claims.

DESCRIPTION OF DRAWINGS



[0009] 

FIG. 1 is a high-level architecture block diagram of a multiple-processor (MP) system with multiple voltage regulators according to an implementation.

FIG. 2 is a high-level architecture block diagram of an MP system with multiple voltage regulators according to another implementation.

FIG. 3 is a high-level architecture block diagram of an MP system that uses one voltage regulator to provide voltages for multiple central processing unit (CPU) cores according to an implementation.

FIG. 4 is a high-level architecture block diagram of an MP system that uses two voltage regulators to provide input voltages for four CPU cores according to an implementation.

FIG. 5 is a high-level architecture block diagram of an MP system that is implemented in a big.LITTLE architecture according to an implementation.

FIG. 6A is a high-level architecture block diagram of an MP system that includes a digital NAP state controller according to an implementation.

FIG. 6B is a high level block diagram illustrating an example SMP-ASMP state transition process according to an implementation.

FIG. 7 is a high-level architecture block diagram of an MP system that accesses cache data between CPU cores according to an implementation.

FIG. 8A is a high-level architecture block diagram of an MP system that transitions between different states according to an implementation.

FIG. 8B is a timing diagram that illustrates a process for transitioning from an active state to a low-voltage memory retention (NAP) state according to an implementation.

FIG. 8C is a timing diagram that illustrates a process for transitioning from a NAP state to an active state according to an implementation.

FIG. 9 is a chart that illustrates a process for transitioning between CPU states according to an implementation.

FIG. 10 is a flow chart illustrating an example method for CPU state transitions in an MP system according to an implementation.



[0010] Like reference numbers and designations in the various drawings indicate like elements.

DETAILED DESCRIPTION



[0011] The following detailed description is presented to enable any person skilled in the art to make, use, and/or practice the disclosed subject matter, and is provided in the context of one or more particular implementations. Various modifications to the disclosed implementations will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other implementations and applications without departing from the scope of the disclosure. Thus, the present disclosure is not intended to be limited to the described and/or illustrated implementations but is to be accorded the widest scope consistent with the principles and features disclosed herein.

[0012] In some cases, a user equipment (UE) may include a multiple-processor (MP) system. In some cases, a CPU core of the multiple-processor system may operate in different CPU states. For example, a CPU core may operate in an active state. During the active state, the CPU core may execute one or more program functions. In some cases, an active state voltage is supplied to a CPU core that operates in the active state. In some cases, dynamic voltage frequency scaling (DVFS) techniques may be used to provide active state voltage to a CPU core operating in an active state. In a DVFS scheme, a dynamic range of voltage may be provided to a CPU core depending on the task load that the CPU core is executing. For example, if the task load is high, then the active state voltage may be at or near the top of the dynamic range. If the task load is low, then the active state voltage may be at or near the bottom of the dynamic range. In some cases, a CPU core that is supplied with different input voltage is also referred to as a power domain.

[0013] In some cases, a CPU core may also operate in a shut_off state. During a shut_off state, the power input to the CPU core may be shut down. Therefore, in a shut_off state, the input voltage to the CPU core may be at or close to 0, and the state information of the CPU core may be lost. The state information of the CPU core may include the logic state, the transistor state, the memory state, or a combination thereof. Operating the CPU cores in the shut_off state may reduce power leakage and improve battery performance of the system. Therefore, in some cases, the multiple-processor system may operate some CPU cores in the active state and some CPU cores in the shut_off state. The multiple-processor system may determine the number of CPU cores operating in the shut_off state based on the current task load of the system. However, because the state information is lost in the shut_off state, the wakeup time to switch a CPU core from a shut_off state to an active state may be long. For example, the wakeup time may include the time to power up the CPU core, reload the state information, and turn on the clock. Therefore, the latency of the system may be increased if the task load of the system increases significantly.

[0014] In some cases, a CPU core may operate in a low-voltage memory retention (NAP) state. In some cases, the NAP state may be a sleep state that retains the state information of the CPU core. In some cases, a NAP voltage may be supplied to a CPU core that operates in a NAP state. The NAP voltage may be lower than the active state voltage, and therefore the leakage for the CPU core is reduced. The NAP voltage may also be high enough for the CPU core to retain the state information. Therefore, the wakeup time to switch a CPU core from a NAP state to an active state may be short. In some cases, the wakeup time may include the time to turn on the clock.

[0015] In some cases, the UE may operate in ANDROID operation system (OS). In these or other cases, the CPU cores in the multiple-processor system may operate in one of 4 states: C0, C1, C2, C3. The C0 is an active state. A CPU core operating in C0 is executing instructions, while a CPU core operating in C1 does not execute instructions but can do so instantly. A CPU core operating in C2 stops the clock. A CPU core operating in C3 is powered down and not synchronized. In some cases, a CPU core operating in C2 can operate in a NAP state, during which a NAP voltage is supplied and the state information is retained. A CPU core operating in C3 can operate in a shut_off state. Alternatively or additionally, a CPU core operating in C3 can operate in a NAP state, during which a NAP voltage is supplied and the state information is retained.

[0016] Turning to a general description, a UE may be referred to as mobile electronic device, user device, mobile station, subscriber station, portable electronic device, mobile communications device, wireless modem, or wireless terminal. Examples of a UE (e.g., the UE 102) may include a cellular phone, personal data assistant (PDA), smart phone, laptop, tablet personal computer (PC), pager, portable computer, portable gaming device, wearable electronic device, or other mobile communications device having components for communicating voice or data via a wireless communication network. The wireless communication network may include a wireless link over at least one of a licensed spectrum and an unlicensed spectrum.

[0017] Other examples of a UE include mobile and fixed electronic devices. A UE may include a Mobile Equipment (ME) device and a removable memory module, such as a Universal Integrated Circuit Card (UICC) that includes a Subscriber Identity Module (SIM) application, a Universal Subscriber Identity Module (USIM) application, or a Removable User Identity Module (R-UIM) application. The term "UE" can also refer to any hardware or software component that can terminate a communication session for a user. In addition, the terms "user equipment," "UE," "user equipment device," "user agent," "UA," "user device," and "mobile device" can be used synonymously herein.

[0018] In some cases, a voltage regulator may be used to provide active state voltage to a CPU core. In some cases, the voltage regulator may be implemented in a different chip than the CPU core. In some cases, multiple voltage regulators may be used to provide input voltages to multiple CPU cores in an MP system. FIG. 1 is a high-level architecture block diagram of an MP system 100 with multiple voltage regulators according to an implementation. As illustrated, the MP system 100 includes 8 cores 102a-h and 8 voltage regulators 106a-h. As illustrated, each voltage regulator is coupled with a corresponding core. In some cases, the cores 102a-h and the voltage regulators 106a-h can be implemented on the same chip. For example, 102a-h and the voltage regulators 106a-h can be implemented on a single integrated circuit die or multiple dies in a single chip package. In some implementations, a voltage regulator may provide different voltage levels according to the state that the corresponding CPU core operates in. For example, if the core 102a operates in the NAP state, the corresponding voltage regulator 106a may provide a NAP voltage to the core 102a. In some cases, the voltage regulator may include a bypass mode. In the bypass mode, the output voltage level of the voltage regulator may be the same as the input voltage level, e.g., VDD as illustrated in FIG. 1. The voltage regulator may use the bypass mode to provide the active state voltage to the corresponding CPU core.

[0019] FIG. 2 is a high-level architecture block diagram of an MP system 200 with multiple voltage regulators according to another implementation. As illustrated, the MP system 200 includes 4 cores 202a-d and 4 voltage regulators 206a-d. As illustrated, each voltage regulator is coupled with a corresponding core. Therefore, each voltage regulator can provide a voltage to the corresponding core. Each core is also coupled with a corresponding switch to a voltage source. In some implementations, if a core, e.g., the core 202a illustrated in FIG. 2, operates in the NAP state, the corresponding switch, e.g., S1 illustrated in FIG. 2, is turned to an open position. In this case, the corresponding voltage regulator, e.g., the voltage regulator 206a illustrated in FIG. 2, can provide an output voltage, e.g., VR1_OUT illustrated in FIG. 2, at the NAP state voltage level to the core 202a. If a core operates in the active state, the corresponding switch may be turned to a closed position. Therefore, the voltage source may provide an active state voltage level, e.g., VDD_IN illustrated in FIG. 2, to the core.

[0020] In some cases, using multiple voltage regulators to provide input voltages to the CPU cores can increase the hardware overhead of the MP system. The increased hardware overhead may increase the implementation complexity and the cost, in particular for the MP systems that are implemented on the same chip, where the available footprint is limited.

[0021] In some cases, a voltage regulator may be used to provide NAP voltages to two or more CPU cores. For example, a multiple-processor system may include at least two central processing unit (CPU) cores. Each of the at least two CPU cores is configured to operate in at least one of a plurality of CPU states. The plurality of CPU states includes a low-voltage memory retention (NAP) state, an active state, and a shut-off state. The NAP state includes a sleep state that retains state memory. The multiple-processor system also includes a voltage regulator that is configured to provide a NAP voltage to the at least two CPU cores. The NAP voltage corresponds to the NAP state. The multiple-processor system further includes a plurality of switches. Each of the plurality of switches connects the voltage regulator to one of the at least two CPU cores.

[0022] In some cases, the multiple-processor system includes a digital NAP state controller that is configured to provide a control signal to the voltage regulator and controls an output state transition sequence. The control signal configures an output state of the voltage regulator. The output state represents a combined CPU state of the at least two CPU cores. The output state transition sequence includes a transition between different combined CPU states. In some cases, the output state is selected from a reduced set of combined CPU states.

[0023] In some cases, the voltage regulator and the at least two CPU cores are implemented on the same chip. In some cases, the voltage regulator is a low-dropout-voltage-regulator (LDO). In some cases, the voltage regulator is a capless voltage regulator. In some cases, the voltage regulator is configured to provide a bypass voltage to the first and the second CPU cores, and the bypass voltage corresponds to a transient state.

[0024] In some cases, the multiple-processor system is implemented in a 4-core architecture or an 8-core architecture. In some cases, the multiple-processor system is implemented in a big.LITTLE architecture. The multiple-processor system includes at least two big CPU cores and at least two little CPU cores. In some cases, the voltage regulator is configured to provide a NAP voltage to at least one big CPU core and at least one little CPU core. In some cases, the voltage regulator is configured to provide a NAP voltage to the at least two big CPU cores, and the multiple-processor system further includes an additional voltage regulator that is configured to provide a NAP voltage to the at least two little CPU cores. In some cases, the multiple-processor system operates in ANDROID operating system (OS). In some cases, the multiple-processor system includes a dynamic symmetric multiprocessing (SMP)-asymmetric multiprocessing (ASMP) switching system. In some cases, the multiple-processor system includes an SMP. In some cases, the multiple-processor system comprises an ASMP.

[0025] In some cases, the MP system described herein may provide one or more advantages. For example, using one voltage regulator to provide input voltages to multiple CPU cores can reduce the overhead for the MP system and, therefore, reduce the implementation complexity of the system. Furthermore, using a digital NAP state controller may further reduce the wakeup time and improve the speed performance of the multiple-processor system. In addition, using a voltage regulator that provides a bypass voltage may reduce transient noise in the multiple-processor system during the state transitions. Other advantages will be apparent to those of ordinary skill in the art.

[0026] FIG. 3 is a high-level architecture block diagram of an MP system 300 that uses one voltage regulator to provide voltages for multiple CPU cores according to an implementation. The MP system 300 includes cores 302a-c. As illustrated, the cores 302a-c are coupled with header switches 304a-c, respectively. The MP system 300 also includes a voltage regulator 306 that provides voltages to the cores 302a-c through state control switches 308a-c.

[0027] Each of the cores 302a-c can include one or more processing components (alternatively referred to as "processors" or "central processing units" (CPUs)) configured to execute instructions related to one or more of the processes, steps, or actions described above in connection with one or more of the implementations disclosed herein. In some implementations, the cores 302a-c may be configured to execute program instructions such as adding, moving data, and branching. In some implementations, the cores 302a-c may be configured to generate control information for a UE, such as a measurement report, or respond to received information, such as control information from a network node. The cores 302a-c may also be configured to make a radio resource management decisions such as cell selection/reselection information or triggering a measurement report for a UE.

[0028] As discussed previously, each of the cores 302a-c may operate in one of the CPU states. The CPU states may include a shut-off state, an active state, or a NAP state. In some cases, each of the cores 302a-c may switch from one CPU state to a different CPU state. The cores 302a-c may operate in the same CPU state or different CPU states.

[0029] The header switches 304a-c include any electronic circuit elements that are configured to connect the cores 302a-c with a supply voltage VDD. In some cases, as illustrated, the header switches 304a-c may be implemented using distributed header switches. Alternatively or in combination, the header switches 304a-c may be implemented using block header switches. In some cases, e.g., when a core operates in an active state, the associated header switch may be closed. Because the supply voltage VDD is provided to the header switches, when the header switch is closed, the input voltage of the core may be equal to VDD.

[0030] In some cases, VDD is provided by a power management integrated circuit (PMIC) chip. In some cases, the PMIC may be implemented on the same chip as the MP system 300. Alternatively, the PMIC may be implemented on a different chip than the MP system 300. In some cases, the PMIC may set VDD to the voltage level for a core that operates in an active state. In some cases, a core may operate in an active state using DVFS and, therefore, the VDD may be set within the DVFS range.

[0031] As illustrated, the MP system 300 includes the voltage regulator 306. The voltage regulator 306 is configured to provide a voltage VR_OUT to the cores 302a-c. In some cases, the VR_OUT is set to a retention level for a core to operate in a NAP state. In some implementations, the retention level may be much lower than VDD but still sufficient for a core to retain memory its logic and memory states.

[0032] In some cases, the voltage regulator 306 may be implemented using an LDO. An LDO is a direct current (DC) linear voltage regulator. In some cases, the LDO can be configured to regulate an output voltage when the LDO receives an input voltage that is close to the output voltage. Using an LDO may reduce switching noise and system footprint and complexity. Alternatively, the voltage regulator 306 may be implemented using other alternating (AC) or DC voltage regulators.

[0033] In some cases, the voltage regulator 306 and the cores 302a-c may be implemented on the same chip. For example, the voltage regulator 306 and the cores 302a-c may be implemented on a single integrated circuit die, or onto multiple dies in a single chip package. This approach may save the footprint of the MP system 300 and increase system performance. In some cases, the voltage regulator 306 may be implemented using a capless LDO. A capless LDO may be an LDO that does not include an external capacitor. For example, the voltage regulator 306 may not be connected to another capacitor outside of the chip where the voltage regulator 306 resides. Using a capless LDO may further reduce the footprint of the MP system 300.

[0034] As illustrated, the MP system 300 includes the state control switches 308a-c. The state control switches 308a-c include any electronic circuit elements that are configured to connect the cores 302a-c with the voltage regulator 306. In operation, when a core operates in a NAP state, the associated state control switch may be closed. When the state control switch is closed, the input voltage of the core may be equal to VR_OUT. In some cases, VR_OUT is much lower than the lower end of the DVFS range that is supplied by VDD. Therefore, substantial leakage reduction may be provided. On the other hand, VR_OUT may be equal to or higher than the retention voltage level that is required to retain state information in the core. Therefore, the state information of the cores 302a-c may be retained when the state control switches 308a-c are closed.

[0035] For example, when the core 302a operates in active state, the header switch 304a is closed and the state control switch 308a is open. The input voltage VDD_INT1 is equal to VDD. When the core 302a operates in a NAP state, the header switch 304a is open and the state control switch 308a is closed. The input voltage VDD_INT1 is equal to VR_OUT. When the core 302a operates in a shut_off state, both the associated header switch 304a and the associated state control switch 308a are open, and the VDD_INT1 is equal to 0.

[0036] In some cases, the voltage regulator 306 may include a bypass mode. During the bypass mode, the voltage regulator 306 may provide a bypass voltage to the cores 302a-c. In some cases, the bypass voltage may be set to VDD. FIGS. 8A-8C and associated descriptions provide additional details of these implementations.

[0037] In some cases, the voltage regulator 306 may be configured to operate in an example configuration. The example configuration may include the following example parameters: current between about 10mA to about 600 mA, voltage input about 0.6-0.8V, voltage output about 0.8-1.1V, minimum dropout voltage about 100 mV, voltage output accuracy about 5%, power supply rejection ratio about 40-45, settling time about 0.1 us, output capacitor greater than about 1 nF, transient current about 50 mA per 50 ns, and etc. In some cases, the voltage regulator 306 may be implemented using resistive-capacitive (RC)-delay slow-start techniques. In some cases, the voltage regulator 306 may be implemented using optimized 16 nm FinFet transistors.

[0038] In some cases, as illustrated in FIG. 3, the MP system 300 may operate in a symmetric multiprocessing (SMP) configuration. In an SMP system, the cores 302a-c may operate with the same clock frequency and the same voltage supply. For example, the supply voltage VDD may be common to the cores 302a-c. In some cases, the MP system 300 may operate in an asymmetric multiprocessing (ASMP) configuration. In an ASMP system, the cores 302a-c may operate with different clock frequencies, different voltage supplies, or a combination thereof. For example, a supply voltage VDD1 may be provided to the header switch 304a that is coupled to the cores 302a, while a different supply voltage VDD2 may be provided to the header switches 304b-c that are coupled to the cores 302b-c, respectively. Therefore, the cores 302b-c operating in an active state may be provided with a different voltage level than the core 302a operating in an active state.

[0039] In some cases, the MP system 300 may operate in a dynamic SMP-ASMP switching configuration. In a dynamic SMP-ASMP switching configuration, the MP system 300 may switch between an SMP mode, where the supply voltages to the cores 302a-c are the same, to an ASMP mode, where the supply voltages to the cores 302a-c are different. In some cases, the dynamic SMP-ASMP switching system may provide an efficient power management scheme for the MP system 300 to execute applications with different processing loads.

[0040] In some cases, more than one voltage regulator can be used to provide input voltages for the MP system. FIG. 4 is a high-level architecture block diagram of an MP system 400 that uses two voltage regulators to provide input voltages for four CPU cores according to an implementation. As illustrated, the MP system 400 includes cores 402a-d and voltage regulator 406a-b. As illustrated, the cores 402a-d are coupled with header switches S1-S4, respectively. The voltage regulator 406a provides NAP voltages to the cores 402a-b through state control switches L1S1 and L1S2, respectively. The voltage regulator 406b provides NAP voltages to the cores 402c-d through state control switches L2S1 and L2S2, respectively.

[0041] FIG. 5 is a high-level architecture block diagram of an MP system 500 that is implemented in a big.LITTLE architecture according to an implementation. In some cases, the big.LITTLE architecture can be used to implement an MP system. A big.LITTLE architecture is a heterogeneous computing architecture that includes different types of CPU cores. The different types of CPU cores can include a big CPU core, which is a type of high-performance CPU core. The big CPU core may provide powerful computing performance, while consuming a high-level of power. The different types of CPU cores can also include a little CPU core, which is a type of low-performance CPU core. The little CPU core may be more power efficient, while providing limited computing performance. Using the big.LITTLE architecture can enable the MP system to adjust dynamically to the computing needs and use less power than clock scaling alone. Examples of the big.LITTLE architecture include the ARM big.LITTLE architecture.

[0042] Referring to FIG. 5, the MP system 500 includes big cores 502a-d, little cores 504a-d, and voltage regulator 506a-b. As illustrated, the big cores 502a-d are coupled with header switches S1-S4, respectively. The big cores 502a-d may form a cluster. The little cores 504a-d are coupled with header switches S5-S8, respectively. The little cores 504a-d may form another cluster. As illustrated, a voltage regulator, e.g., the voltage regulator 506a, may provide NAP voltage to the big cores 502a-d through state control switches L1S1-4, respectively. Another voltage regulator, e.g., the voltage regulator 506b, may provide NAP voltage to the little cores 504a-d through state control switches L2S1-4, respectively.

[0043] Alternatively or in combination, a voltage regulator may provide NAP voltages to a big core and a little core. For example, the voltage regulator 506a may be coupled to the big core 502a and the little core 504a through state control switches L1S1 and L1S2 respectively. In this example, the voltage regulator 506a may provide NAP voltages to the big core 502a and the little core 504a.

[0044] In some cases, a voltage regulator may operate in multiple states. Each state may correspond to a combined CPU state of the cores to which the voltage regulator provides NAP voltages. For example, if a core may operate in any one of the active states, the NAP state, and the shut_off state, thus the number of the CPU states is 3. If a voltage regulator provides NAP voltage to 3 cores, then there may be 27 combined CPU states, each representing a permutation of the CPU states for the 3 cores. Each combined CPU state corresponds to a combination of output voltages provided by the voltage regulator. The following provides an example denotation of these states.

[0045] For example, we denote S for shut-off state, N for NAP state, and A for active state. For a 3-core MP system, an example combined CPU state may be represented as "ANN," where "ANN" represents core1 at active state and core2 and core3 at NAP state. Other example combined CPU states may include "AAN," "NSS," or etc.

[0046] When the MP system operates in a turbo mode, the combined CPU state may be "AAA." If the cores use DVFS, the VDD for the cores may be set at the top range of the DVFS range. When the MP system operates in a two-processor mode, the combined CPU state may be "AAS," or in some cases, "ANS" or "NNS" for power saving and quick resuming operations. In some cases, the states of the voltage regulator can be controlled by software. Alternatively or additionally, the states of the voltage regulator and the output voltages can be controlled by hardware, e.g., a digital NAP state controller. FIG. 6A is a high-level architecture block diagram of an MP system 600 that includes a digital NAP state controller according to an implementation.

[0047] As illustrated, the MP system 600 includes cores 602a-d and a voltage regulator 606. As illustrated, the cores 602a-d are coupled with header switches S1-S4, respectively. The voltage regulator 606 provides NAP voltages to the cores 602a-d through state control switches L1S1-4, respectively.

[0048] The MP system 600 also includes a digital NAP state controller 610. The digital NAP state controller 610 represents one or more hardware circuit elements that can be configured to provide control signals to the voltage regulator 606, state control switches LISI-4, header switches S1-4, or a combination thereof. The control signals configure the output voltages of the voltage regulator 606 and the open/close positions of the state control switches L1S1-4 based on the combined CPU states of the cores 602a-d. In one example, the combined CPU state of the cores 602a-d is "ANNS." In this example, the cores 602b-c operate in NAP state. Therefore, the control signals may configure state control switches L1S2 and LIS3 to be at the close position, the header switches S2-S3 to be at the open position, and the voltage regulator 606 to provide NAP voltages to cores 602b-c. The core 602a operates in the active state. The control signals may configure state control switches L1S1 to be at the open position and the header switches S1 to be at the close position. The core 602d operates in shut_off state. The control signals may configure state control switches L1S4 and the header switches S4 to be at the open position.

[0049] The digital NAP state controller 610 includes a finite state machine (FSM) 612, timers 614, and configuration/status registers 616. The FSM 612 represents one or more hardware circuit elements that can be configured to sequence control signals with timing delays in between. In some cases, using an FSM may increase processing speed and reduce interventions from software or operating systems. In the event of exceptions, e.g., timeout, etc., an FMS may generate an interrupt to the CPU cores.

[0050] In some cases, the digital NAP state controller 610 may provide control signals during the state transitions of the combined CPU states. For example, the control signals may configure a transient state operation for a core that switches between states. During the transient state operation, the voltage regulator 606 may provide a bypass voltage to a core for a short duration and the associated state control switch may change from a closed position to an open position, or from an open position to a closed position. In some cases, the FSM 612 may receive input signals that indicate the current and the next combined CPU state. The FSM 612 may provide control signals to the voltage regulator 602 and the associated state control switches for both the steady state configuration and the transient state operation based on the current and the next combined CPU state. FIGS. 8A-8C and associated descriptions provide additional details of the transient state operations.

[0051] The timers 614 represent one or more hardware circuit elements that can be configured to set the timing intervals that correspond to the state transitions discussed above. The timers 614 may provide the timing information to the FSM 612. The configuration/status registers 616 represent one or more hardware circuit elements, software, or a combination thereof that can be configured to set the function of the digital NAP state controller 610. In some cases, the configuration/status registers 616 may be configured to report the status of the digital NAP state controller 610.

[0052] Using hardware implementation, e.g., a digital NAP state controller discussed above, to provide control signals to a voltage regulator may provide a fast switching performance. In some cases, switching performance of a hardware implementation may be about 10 times faster than using software implementations. The low switching latency provided by the hardware implementation may be significant in providing a fast wakeup time for NAP states, which may be on the order of 100-200 clock cycles.

[0053] In some cases, some of the cores 602a-d may not support NAP states. In these or other cases, the digital NAP state controller 610 may include two FSMs. One FSM may be used to provide control signals for cores that support NAP states. The other FSM may be used to provide control signals for cores that do not support NAP states.

[0054] In some cases, an FSM, e.g., the FSM 612, may be configured to support dynamic SMP-ASMP switching. FIG. 6B is a high level block diagram illustrating an example SMP-ASMP state transition process 630 according to an implementation. The process starts in state 632, where the FSM operates in the SMP mode. When a switching command, e.g., SELECT_ASMP_MODE is received, the FSM enters in state 634 (ASMP_CLK_WU), where the ASMP clocks are enabled and activated using the ASMP clock enable signal and warmed up. After a predetermined warm-up time period, the operating voltage supplies for different CPU cores may be increased to a predetermined maximum voltage level, e.g., VDD_MAX. The predetermined maximum voltage level may be equal to or greater than the highest voltage level that any of the CPU cores in a MP system may operate in the ASMP mode.

[0055] The process 630 proceeds from state 634 to state 636 (SMP_ASMP_CLK_SWITCH), where the clock switching signal is asserted and the clocks of the CPU cores and associated memory are switched from the SMP clock signal to the ASMP clock signals.

[0056] The process 630 proceeds from state 636 to state 638 (V_SMP_ASMP_RAMP_DN), where the operating voltage supplies for each CPU core may be ramped down from the predetermined maximum voltage level to the operating voltage of the respective CPU core. The process 630 proceeds from state 638 to state 640, where the FSM operates in the ASMP mode.

[0057] When a switching command, e.g., SELECT_ASMP_MODE - unasserted, is received, the process 630 proceeds to state 642 (SMP_CLK_WU), where the SMP clock is enabled and activated using the SMP clock enable signal and warmed up. After a predetermined warm-up time period, the operating voltage supplies for different CPU cores may be increased to a predetermined maximum voltage level, e.g., VDD_MAX. In some cases, the predetermined maximum voltage level may be equal to or greater than the highest voltage level that any of the CPU cores in a MP system may operate in the ASMP mode. In some cases, the operating voltage supplies for different CPU cores may be further increased to the operating voltage level of the SMP mode, e.g., V_SMP, if V_SMP is greater than VDD_MAX.

[0058] The process 630 proceeds from state 642 state 644 (ASMP_SMP_CLK_SWITCH), where the clock switching signal is asserted and the clocks of the CPU cores and associated memory are switched from the ASMP clock signals to the SMP clock signal.

[0059] The process 630 proceeds from state 644 to state 646 (V_ASMP_SMP_RAMP_DN), where the operating voltage supplies for the CPU cores may be ramped down to V_SMP if V_SMP is lower than VDD_MAX. The process 630 proceeds from state 646 to state 632, where the FSM operates in the SMP state.

[0060] Alternatively or in combination, a FSM that is different than the FSM 612 may be configured to support the state transitions of the ASMP-AMP switching discussed above.

[0061] In some cases, the combined CPU states can be reduced to simplify the implementation of the digital NAP state controller 610. For example, a reduced set of combined CPU states may be used. The reduced set may exclude repeated permutations. For example, there may be 27 combined CPU states for 3 cores. A reduced set may include 8 combined CPU states. Following is a list of an example reduced CPU states for 3 CPU cores: "AAA," "AAN," "AAS," "ANN," "ANS," "ASS," "NSS," "SSS."

[0062] FIG. 7 is a high-level architecture block diagram of an MP system 700 that accesses cache data between CPU cores according to an implementation. In some cases, one CPU core may access data that is stored in a cache of another CPU core. In the illustrated example, the MP system 700 includes cores 702a-c and a voltage regulator 706 that provides NAP voltage to the core 702a through a switch S1. The core 702a includes a cache 704. The cache 704 represent a hardware, software, or a combination thereof that is configured to store data.

[0063] In the illustrated example, the cores 702b and 702c operate in active state. The core 702a operates in the shut_off state with both switches S1 and S2 are open. In operation, the core 702b attempts to access cache 704 on the core 702a to read or write data. In some cases, the switch S2 may be closed so that the core 702a can be transitioned into an active state for the core 702b to access the cache 704. Alternatively, the switch S1 may be closed while the switch S2 remains open. In this case, the voltage regulator 706 may provide a bypass voltage to the core 702a. The bypass voltage may be at or close to an active state voltage. The core 702a may operate in a transient state and the core 702b may access the cache 704 without fully transitioning the core 702a to the active state. Using a bypass voltage in this case may provide a small latency for the core 702b to access the data on the cache 704. In some cases, the latency may be reduced to about 100 clock cycles. FIGS. 8A-8C and associated descriptions provide additional details of the transient state operations.

[0064] FIG. 8A is a high-level architecture block diagram of an MP system 810 that transitions between different states according to an implementation. As illustrated, the MP system 810 includes cores 802a-n and a voltage regulator 806. The voltage regulator 806 provides NAP voltages to the cores 802a-n. In some cases, the voltage regulator 806 also provides a bypass voltage to the cores 802a-n during the state transition. Using a bypass voltage during the transition period may reduce the transient noise created by the fluctuations of the input voltages to the cores 802a-n.

[0065] FIG. 8B is a timing diagram 820 that illustrates a process for transitioning from an active state to a NAP state according to an implementation. As shown in FIG. 8B, before the transition, S1 is open and S2 is closed; therefore, the core 802a operates in the active state. S3 is closed and the core 802b operates in the NAP state. The input voltage VI to the core 802a is at 1.2V, which corresponds to the active voltage. The output voltage of the voltage regulator 806 is 0.6V, which corresponds to the NAP voltage. When the core 802a switches to the NAP state, during a first transition period T1, S1 switches to the closed position, while S2 remains closed. During T1, the voltage regulator 806 provides a bypass voltage. In some cases, the bypass voltage may be close to or equal to the active voltage. In the illustrated example, the bypass voltage is 1.2V. Therefore, during T1, VI stays at 1.2V while V2 moves from 0.6V to 1.2V. During the second transition period T2, S2 switches to open while the voltage regulator 806 reduces its output voltage from the bypass voltage 1.2V to the NAP voltage 0.6V. After T2, both V1 and V2 go to 0.6V and the cores 802a-b operate in the NAP state. In some cases, the duration of T1 and T2 may be about 0.5 us. As discussed previously, in some cases, a digital NAP state controller may be configured to provide control signals to the switches S1 and S2 and the voltage regulator 806 to execute these state transition sequences.

[0066] FIG. 8C is a timing diagram 830 that illustrates a process for transitioning from a NAP state to an active state according to an implementation. As shown in FIG. 8C, before the transition, S1 is closed and S2 is open; therefore, the core 802a operates in the NAP state. S3 is closed and the core 802b operates in the NAP state. The output voltage of the voltage regulator 806 is 0.6V, which corresponds to the NAP voltage. When the core 802a switches to the active state, during a first transition period T1, S2 switches to the closed position, while S1 remains closed. During T1, the voltage regulator 806 provides a bypass voltage. Therefore, during T1, both V1 and V2 move from 0.6V to 1.2V. During the second transition period T2, S1 switches to open, while the voltage regulator 806 reduces its output voltage from the bypass voltage 1.2V to the NAP voltage 0.6V. V1 stays at 1.2V while V2 moves from 1.2V to 0.6V. After T2, V1 stays at 1.2V and the core 802a operates in the active state. V2 stays at 0.6V and the core 802b remains in the NAP state.

[0067] FIG. 9 is a chart 900 that illustrates a process for transitioning between CPU states according to an implementation. In some cases, the decisions to transition between CPU states for a core may be made based on the task load or the queue length for the core. In some cases, a scheduler may be used to make the state transition decisions. For example, in some cases, a scheduler may make the decision based on predetermined load thresholds. The chart 900 includes a task load curve 902, an up-migration threshold 910, and a down-migration threshold 920. As illustrated, at T1, the task load curve 902 exceeds the up-migration threshold 910, and therefore, the scheduler may determine to switch a core from the NAP state to the active state. At T2, the task load curve 902 is below the down-migration threshold 920, and therefore, the scheduler may determine to switch a core from the active state to the NAP state.

[0068] In some cases, the derivative of the load may also be tracked. The chart 900 also includes a task derivative curve 904. In some cases, the task derivative curve 904 may be set based on the sign of the derivative of the task load curve 902. For example, as illustrated, at T3, the task load begins to increase and the derivative of the task load curve 902 turns positive. Therefore, the task derivative curve 904 may be set to 1. At T4, the task load begins to decrease and the derivative of the task load curve 902 turns negative. Therefore, the task derivative curve 904 may be set to 0. In some cases, the scheduler may determine a state transition based on both the task load and the derivative of the task load. For example, a scheduler may determine a CPU score to switch from a NAP state to an active state if the task load exceeds the up-migration threshold 910 and the derivative of the task load is positive for a predetermined duration.

[0069] FIG. 10 is a flow chart illustrating an example method 1000 for CPU state transitions in a multiple-processor system according to an implementation. The method 1000 may begin at block 1002, where a first central processing unit (CPU) core of the multiple-process system operates in an active state. The first CPU core is configured to operate in one of a plurality of CPU states. The plurality of CPU states includes a low-voltage memory retention (NAP) state, an active state, and a shut-off state. The NAP state includes a sleep state that retains state memory.

[0070] In some cases, the voltage regulator, the first CPU core, and the second CPU core are implemented on the same chip. In some cases, the voltage regulator is a low-dropout-voltage-regulator (LDO). In some cases, the voltage regulator is a capless voltage regulator. In some cases, the voltage regulator is configured to provide a bypass voltage to the first and the second CPU cores, and the bypass voltage corresponds to a transient state.

[0071] In some cases, the multiple-processor system is implemented in a 4-core architecture or an 8-core architecture. In some cases, the multiple-processor system is implemented in a big.LITTLE architecture. The multiple-processor system includes at least two big CPU cores and at least two little CPU cores. In some cases, the voltage regulator is configured to provide a NAP voltage to at least one big CPU core and at least one little CPU core. In some cases, the voltage regulator is configured to provide a NAP voltage to at least two big CPU cores, and the multiple-processor system further includes an additional voltage regulator that is configured to provide a NAP voltage to the at least two little CPU cores. In some cases, the multiple-processor system operates in ANDROID operating system (OS) or iOS. In some cases, the multiple-processor system includes a dynamic symmetric multiprocessing (SMP)-asymmetric multiprocessing (ASMP) switching system. In some cases, the multiple-processor system includes an SMP. In some cases, the multiple-processor system comprises an ASMP.

[0072] At block 1004, a NAP voltage is received from a voltage regulator. The NAP voltage corresponds to the NAP state. The voltage regulator is configured to provide a NAP voltage to the first CPU core and a second CPU core of the multiple-processor system.

[0073] In some cases, control signals are received from a digital NAP state controller. The control signals configure an output state of the voltage regulator and an output state transition sequence. The output state represents a combined CPU state of the first and the second CPU cores. The output state transition sequence includes a transition between different combined CPU states. In some cases, the output state is selected from a reduced set of combined CPU states.

[0074] At block 1006, in response to receiving the NAP voltage, the first CPU core transitions from the active state to the NAP state.

[0075] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular implementations of particular inventions. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable sub-combination.

[0076] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation and/or integration of various system modules and components in the implementations described above should not be understood as requiring such separation and/or integration in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. Furthermore, while the operations depicted in the drawings may indicate start and/or end points for the operations, implementations of the methods described in the disclosure are not restricted to the particular start and/or end point as illustrated. Other implementations may start and/or end at different points of the operations. Particular implementations of the subject matter have been described.

[0077] Accordingly, the above description of example implementations does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the scope of this disclosure.


Claims

1. A multiple-processor system, comprising:

a plurality of central processing unit (CPU) cores (602a, 602b, 602c, 602d), wherein each of the plurality of CPU cores (602a, 602b, 602c, 602d) is configured to operate in at least one of a plurality of CPU states, the plurality of CPU states including a low-voltage memory retention (NAP) state, an active state, and a shut-off state, wherein the NAP state comprises a sleep state that retains state memory;

a plurality of switches (S1, S2, S3, S4), wherein each of the plurality of switches (S1, S2, S3, S4) is configured to connect one of the plurality of CPU cores (602A, 602B, 602C, 602D) to a voltage source that is configured to provide an active state voltage;

a voltage regulator (606) that is configured to provide a NAP voltage to the plurality of CPU cores (602a, 602b, 602c, 602d), wherein the NAP voltage is sufficient for at least one of the plurality of CPU cores to retain state information and the NAP voltage is lower than an active state voltage;

a plurality of state control switches (L1S1, L1S2, L1S3, L1S4), wherein each of the plurality of state control switches (L1S1, L1S2, L1S3, L1S4) is configured to connect the voltage regulator (606) to one of the plurality of CPU cores (602a, 602b, 602c, 602d); and

a digital NAP state controller (610) that is configured to provide a control signal to the voltage regulator (606) and to each of the plurality of state control switches (L1S1, L1S2, L1S3, L1S4) to control an open/close position of each of the plurality of state control switches (L1S1, L1S2, L1S3, L1S4) based on a combined CPU state of the cores (602a, 602b, 602c 602d),

wherein the voltage regulator (606) is further configured to provide a bypass voltage to the plurality of CPU cores (602a, 602b, 602c, 602d) when transitioning from the active state to the NAP state or from the NAP state to the active state, the bypass voltage being supplied to a corresponding one or more of the state control switches (L1S1, L1S2, L1S3, L1S4) while the one or more state control switches (L1S1, L1S2, L1S3, L1S4) and one or more of the plurality of switches (S1, S2, S3, S4) corresponding to the one or more state control switches (L1S1, L1S2, L1S3, L1S4) are closed for a prescribed time interval, the bypass voltage being at or close to the active state voltage, the voltage regulator (606) being connected to the voltage source.


 
2. The multiple-processor system of claim 1, wherein the voltage regulator (606) and the plurality of CPU cores (602a, 602b, 602c, 602d) are implemented on the same chip.
 
3. The multiple-processor system of claim 1, wherein the voltage regulator (606) is a low-dropout-voltage-regulator (LDO).
 
4. The multiple-processor system of claim 3, wherein an output state of the voltage regulator is selected such that it corresponds to the combined CPU state from a subset of combined CPU states.
 
5. The multiple-processor system of claim 1, wherein the voltage regulator (606) is a capless voltage regulator.
 
6. The multiple-processor system of claim 1, wherein the multiple-processor system is implemented in a big.LITTLE architecture, the multiple-processor system comprises a plurality of big CPU cores and a plurality of little CPU cores, and the voltage regulator (606) is configured to provide a NAP voltage to at least one big CPU core and at least one little CPU core.
 
7. The multiple-processor system of claim 1, wherein the multiple-processor system comprises a dynamic symmetric multiprocessing (SMP)-asymmetric multiprocessing (ASMP) switching system.
 
8. The multiple-processor system of claim 1, wherein the switches (S1, S2, S3, S4) comprise a plurality of header switches, and wherein each of the plurality of header switches is configured to connect the one of the plurality of CPU cores (602a, 602b, 602c, 602d) to the voltage source.
 
9. A method for operating a multiple-processor system, wherein the multiple-processor system includes a plurality of central processing unit (CPU) cores (602a, 602b, 602c, 602d), the method comprising:

receiving a NAP voltage from a voltage regulator (606), wherein the NAP voltage is sufficient for the CPU cores to retain state information and the NAP voltage is lower than an active state voltage;

receiving a voltage source that provides the active state voltage;

providing a control signal from a digital NAP state controller (610) to the voltage regulator (606) and to each of a plurality of state control switches (L1S1, L1S2, L1S3, L1S4) and each of a plurality of switches (S1, S2, S3, S4) to control an open/close position of each of the plurality of state control switches and switches, the voltage regulator (606), state control switches, and switches being connectable to the plurality of CPU cores (602a, 602b, 602c, 602d), to control voltage to each of the CPU cores in accordance with operating states of the CPU cores (602a, 602b, 602c, 602d), the operating states including an active state, a low-voltage memory retention, NAP state, and a shut-off state, the NAP state comprising a sleep state that retains state memory; and,
when transitioning from the active state to the NAP state or from the NAP state to the active state, receiving a bypass voltage from the voltage regulator (606) and closing one or more of the state control switches (L1S1, L1S2, L1S3, L1S4) and one or more of the switches (S1, S2, S3, S4) corresponding to the one or more state control switches for a prescribed time interval, wherein the bypass voltage is at or close to the active state voltage.


 
10. The method of claim 9, wherein the voltage regulator (606) and the plurality of the CPU cores (602a, 602b, 602c, 602d) are implemented on the same chip.
 
11. The method of claim 9, wherein the voltage regulator (606) is a low-dropout-voltage-regulator (LDO).
 
12. A user equipment (UE), comprising a multi-processor system according to any one of claims 1 to 8.
 


Ansprüche

1. Mehrprozessorsystem, das Folgendes umfasst:

mehrere Kerne (602a, 602b, 602c, 602d) einer zentralen Verarbeitungseinheit, CPU, bzw. CPU-Kerne, wobei jeder der CPU-Kerne (602a, 602b, 602c, 602d) dafür ausgelegt ist, in mindestens einem von mehreren CPU-Zuständen betrieben zu werden, wobei die mehreren CPU-Zustände einen Niederspannungs-Speichererhaltungszustand bzw. NAP-Zustand, einen Aktivzustand und einen Ausschaltzustand beinhalten, wobei der NAP-Zustand einen Schlafzustand umfasst, der den Zustandsspeicher aufrechterhält;

mehrere Schalter (S1, S2, S3, S4), wobei jeder der mehreren Schalter (S1, S2, S3, S4) dafür ausgelegt ist, einen der mehreren CPU-Kerne (602a, 602b, 602c, 602d) mit einer Spannungsquelle zu verbinden, die dafür ausgelegt ist, eine Aktivzustandsspannung zu liefern;

einen Spannungsregler (606), der dafür ausgelegt ist, eine NAP-Spannung für die mehreren CPU-Kerne (602a, 602b, 602c, 602d) zu liefern, wobei die NAP-Spannung ausreicht, damit mindestens einer der mehreren CPU-Kerne Zustandsinformationen aufrechterhält und die NAP-Spannung niedriger als eine Aktivzustandsspannung ist;

mehrere Zustandssteuerungsschalter (L1S1, L1S2, L1S3, L1S4), wobei jeder der mehreren Zustandssteuerungsschalter (L1S1, L1S2, L1S3, L1S4) dafür ausgelegt ist, den Spannungsregler (606) mit einem der mehreren CPU-Kerne (602a, 602b, 602c, 602d) zu verbinden; und

eine digitale NAP-Zustandssteuerung (610), die dafür ausgelegt ist, dem Spannungsregler (606) und jedem der mehreren Zustandssteuerungsschalter (L1S1, L1S2, L1S3, L1S4) ein Steuerungssignal zuzuführen, um auf der Grundlage eines kombinierten CPU-Zustands der Kerne (602a, 602b, 602c, 602d) eine Offen-/ Geschlossen-Stellung von jedem der mehreren Zustandssteuerungsschalter (L1S1, L1S2, L1S3, L1S4) zu steuern,

wobei der Spannungsregler (606) ferner dafür ausgelegt ist, den mehreren CPU-Kernen (602a, 602b, 602c, 602d) eine Überbrückungsspannung zu liefern, wenn von dem Aktivzustand in den NAP-Zustand oder von dem NAP-Zustand in den Aktivzustand übergegangen wird, wobei die Überbrückungsspannung einem entsprechenden einen oder mehreren der Zustandssteuerungsschalter (L1S1, L1S2, L1S3, L1S4) eingespeist wird, während der eine oder die mehreren Zustandssteuerungsschalter (L1S1, L1S2, L1S3, L1S4) und einer oder mehrere der Schalter (S1, S2, S3, S4), die dem einen oder den mehreren Zustandssteuerungsschaltern (L1S1, L1S2, L1S3, L1S4) entsprechen, für ein vorgeschriebenes Zeitintervall geschlossen sind, wobei die Überbrückungsspannung bei der oder nahe der Aktivzustandsspannung liegt, wobei der Spannungsregler (606) mit der Spannungsquelle verbunden ist.


 
2. Mehrprozessorsystem nach Anspruch 1, wobei der Spannungsregler (606) und die mehreren CPU-Kerne (602a, 602b, 602c, 602d) auf demselben Chip implementiert sind.
 
3. Mehrprozessorsystem nach Anspruch 1, wobei der Spannungsregler (606) ein Spannungsregler mit niedrigem Spannungseinbruch bzw. ein LDO ist.
 
4. Mehrprozessorsystem nach Anspruch 3, wobei ein Ausgangszustand des Spannungsreglers derart ausgewählt ist, dass er dem kombinierten CPU-Zustand aus einer Untermenge von kombinierten CPU-Zuständen entspricht.
 
5. Mehrprozessorsystem nach Anspruch 1, wobei der Spannungsregler (606) ein kondensatorloser Spannungsregler ist.
 
6. Mehrprozessorsystem nach Anspruch 1, wobei das Mehrprozessorsystem in einer groß.KLEIN-Architektur implementiert ist, das Mehrprozessorsystem mehrere große CPU-Kerne und mehrere kleine CPU-Kerne umfasst und der Spannungsregler (606) ausgelegt ist zum Liefern einer NAP-Spannung an mindestens einen großen CPU-Kern und mindestens einen kleinen CPU-Kern.
 
7. Mehrprozessorsystem nach Anspruch 1, wobei das Mehrprozessorsystem ein dynamisches symmetrisches Mehrfachverarbeitungs-asymmetrisches Mehrfachverarbeitungs-Umschaltsystem bzw. dynamisches SMP-ASPM-Umschaltsystem umfasst.
 
8. Mehrprozessorsystem nach Anspruch 1, wobei die Schalter (S1, S2, S3, S4) mehrere Kopfschalter umfassen und wobei jeder der mehreren Kopfschalter dafür ausgelegt ist, den einen der CPU-Kerne (602a, 602b, 602c, 602d) mit der Spannungsquelle zu verbinden.
 
9. Verfahren zum Betrieb eines Mehrprozessorsystems, wobei das Mehrprozessorsystem mehrere Kerne (602a, 602b, 602c, 602d) einer zentralen Verarbeitungseinheit, bzw. CPU-Kerne beinhaltet, wobei das Verfahren Folgendes umfasst:

Empfangen einer NAP-Spannung von einem Spannungsregler (606), wobei die NAP-Spannung ausreicht, damit die CPU-Kerne Zustandsinformationen aufrechterhalten, und die NAP-Spannung niedriger als eine Aktivzustandsspannung ist;

Empfangen einer Spannungsquelle, die die Aktivzustandsspannung bereitstellt;

Bereitstellen eines Steuerungssignals von einer digitalen NAP-Zustandssteuerung (610) für den Spannungsregler (606) und jeden von mehreren Zustandssteuerungsschaltern (L1S1, L1S2, L1S3, L1S4) und jeden von mehreren Schaltern (S1, S2, S3, S4), um eine Offen-/Geschlossen-Stellung von jedem der mehreren Zustandssteuerungsschalter und Schalter zu steuern, wobei der Spannungsregler (606), die Zustandssteuerungsschalter und die Schalter mit den mehreren CPU-Kernen (602a, 602b, 602c, 602d) verbindbar sind, um eine Spannung für jeden der CPU-Kerne gemäß Betriebszuständen der CPU-Kerne (602a, 602b, 602c, 602d) zu steuern, wobei die Betriebszustände einen Aktivzustand, einen Niederspannungs-Speichererhaltungszustand bzw. NAP-Zustand und einen Ausschaltzustand beinhalten, wobei der NAP-Zustand einen Schlafzustand umfasst, der den Zustandsspeicher aufrechterhält; und

wenn von dem Aktivzustand in den NAP-Zustand oder von dem NAP-Zustand in den Aktivzustand übergegangen wird, Empfangen einer Überbrückungsspannung von dem Spannungsregler (606) und Schließen eines oder mehrerer der Zustandssteuerungsschalter (L1S1, L1S2, L1S3, L1S4) und eines oder mehrerer der Schalter (S1, S2, S3, S4), die dem einen oder den mehreren Zustandssteuerungsschaltern entsprechen, für ein vorgeschriebenes Zeitintervall, wobei die Überbrückungsspannung bei der oder nahe der Aktivzustandsspannung liegt.


 
10. Verfahren nach Anspruch 9, wobei der Spannungsregler (606) und die mehreren CPU-Kerne (602a, 602b, 602c, 602d) auf demselben Chip implementiert sind.
 
11. Verfahren nach Anspruch 9, wobei der Spannungsregler (606) ein Spannungsregler mit niedrigem Spannungseinbruch bzw. ein LDO ist.
 
12. Benutzergerät bzw. UE, das ein Mehrprozessorsystem nach einem der Ansprüche 1 bis 8 umfasst.
 


Revendications

1. Système à processeurs multiples, comprenant :

une pluralité de cœurs d'unité centrale de traitement (CPU) (602a, 602b, 602c, 602d), dans lequel chacun de la pluralité de cœurs de CPU (602a, 602b, 602c, 602d) est configuré pour fonctionner dans au moins l'un d'une pluralité d'états de CPU, la pluralité d'états de CPU comprenant un état de rétention de mémoire basse tension (NAP), un état actif, et un état d'arrêt, dans lequel l'état NAP comprend un état de sommeil qui retient la mémoire d'état ;

une pluralité de commutateurs (S1, S2, S3, S4), dans lequel chacun de la pluralité de commutateurs (S1, S2, S3, S4) est configuré pour connecter l'un de la pluralité de cœurs de CPU (602A, 602B, 602C, 602D) à une source de tension qui est configurée pour fournir une tension d'état actif ;

un régulateur de tension (606) qui est configuré pour fournir une tension NAP à la pluralité de cœurs de CPU (602a, 602b, 602c, 602d), dans lequel la tension NAP est suffisante pour qu'au moins l'un de la pluralité de cœurs de CPU retienne des informations d'état et la tension NAP est inférieure à une tension d'état actif ;

une pluralité de commutateurs de commande d'état (L1S1, L1S2, L1S3, L1S4), dans lequel chacun de la pluralité de commutateurs de commande d'état (L1S1, L1S2, L1S3, L1S4) est configuré pour connecter le régulateur de tension (606) à l'un de la pluralité de cœurs de CPU (602a, 602b, 602c, 602d) ; et

un dispositif de commande d'état NAP numérique (610) qui est configuré pour fournir un signal de commande au régulateur de tension (606) et à chacun de la pluralité de commutateurs de commande d'état (L1S1, L1S2, L1S3, L1S4) pour commander une position ouverte/fermée de chacun de la pluralité de commutateurs de commande d'état (L1S1, L1S2, L1S3, L1S4) sur la base d'un état de CPU combiné des cœurs (602a, 602b, 602c, 602d),

dans lequel le régulateur de tension (606) est en outre configuré pour fournir une tension de dérivation à la pluralité de cœurs de CPU (602a, 602b, 602c, 602d) lors du passage de l'état actif à l'état NAP ou de l'état NAP à l'état actif, la tension de dérivation étant fournie à un ou plusieurs commutateurs de commande d'état correspondants des commutateurs de commande d'état (L1S1, L1S2, L1S3, L1S4), tandis que le ou les commutateurs de commande d'état (L1S1, L1S2, L1S3, L1S4) et un ou plusieurs commutateurs de la pluralité de commutateurs (S1, S2, S3, S4) correspondant au ou aux commutateurs de commande d'état (L1S1, L1S2, L1S3, L1S4) sont fermés pendant un intervalle de temps prescrit, la tension de dérivation étant égale à la tension d'état active ou proche de celle-ci, le régulateur de tension (606) étant connecté à la source de tension.


 
2. Système à processeurs multiples selon la revendication 1, dans lequel le régulateur de tension (606) et la pluralité de cœurs de CPU (602a, 602b, 602c, 602d) sont implémentés sur la même puce.
 
3. Système à processeurs multiples selon la revendication 1, dans lequel le régulateur de tension (606) est un régulateur de tension à faible chute de tension (LDO).
 
4. Système à processeurs multiples selon la revendication 3, dans lequel un état de sortie du régulateur de tension est sélectionné de manière à ce qu'il corresponde à l'état de CPU combiné parmi un sous-ensemble d'états de CPU combinés.
 
5. Système à processeurs multiples selon la revendication 1, dans lequel le régulateur de tension (606) est un régulateur de tension sans bouchon.
 
6. Système à processeurs multiples selon la revendication 1, le système à processeurs multiples étant implémenté au moyen d'une architecture big.LITTLE, le système à processeurs multiples comprenant une pluralité de cœurs de CPU de grande taille et une pluralité de cœurs de CPU de petite taille, et le régulateur de tension (606) étant configuré pour fournir une tension NAP à au moins un cœur de CPU de grande taille et à au moins un cœur de CPU de petite taille.
 
7. Système à processeurs multiples selon la revendication 1, le système à processeurs multiples comprenant un système de commutation à multitraitement symétrique dynamique (SMP) - à multitraitement asymétrique (ASMP).
 
8. Système à processeurs multiples selon la revendication 1, dans lequel les commutateurs (S1, S2, S3, S4) comprennent une pluralité de commutateurs de tête, et dans lequel chaque commutateur de la pluralité de commutateurs de tête est configuré pour connecter le cœur de CPU de la pluralité de cœurs de CPU (602a, 602b, 602c, 602d) à la source de tension.
 
9. Procédé pour faire fonctionner un système à processeurs multiples, dans lequel le système à processeurs multiples comprend une pluralité de cœurs d'unité centrale de traitement (CPU) (602a, 602b, 602c, 602d), le procédé comprenant :

la réception d'une tension NAP en provenance d'un régulateur de tension (606), dans lequel la tension NAP est suffisante pour que les cœurs de CPU retiennent des informations d'état et la tension NAP est inférieure à une tension d'état actif ;

la réception d'une source de tension qui fournit la tension d'état actif ;

la fourniture d'un signal de commande provenant d'un dispositif de commande d'état NAP numérique (610) au régulateur de tension (606) et à chacun d'une pluralité de commutateurs de commande d'état (L1S1, L1S2, L1S3, L1S4) et à chacun d'une pluralité de commutateurs (S1, S2, S3, S4) pour commander une position ouverte/fermée de chacun de la pluralité de commutateurs de commande d'état et de commutateurs, le régulateur de tension (606), les commutateurs de commande d'état et les commutateurs pouvant être connectés à la pluralité de cœurs de CPU (602a, 602b, 602c, 602d), pour commander la tension à chacun des cœurs de CPU en fonction des états de fonctionnement des cœurs de CPU (602a, 602b, 602c, 602d), les états de fonctionnement comprenant un état actif, un état de rétention de mémoire basse tension, état NAP, et un état d'arrêt, l'état NAP comprenant un état de sommeil qui retient la mémoire d'état ; et,

lors du passage de l'état actif à l'état NAP ou de l'état NAP à l'état actif, la réception d'une tension de dérivation en provenance du régulateur de tension (606) et la fermeture d'un ou de plusieurs des commutateurs de commande d'état (L1S1, L1S2, L1S3, L1S4) et d'un ou de plusieurs des commutateurs (S1, S2, S3, S4) correspondant au ou aux commutateurs de commande d'état pendant un intervalle de temps prescrit, dans lequel la tension de dérivation est égale à la tension d'état actif ou proche de celle-ci.


 
10. Procédé selon la revendication 9, dans lequel le régulateur de tension (606) et la pluralité des cœurs de CPU (602a, 602b, 602c, 602d) sont implémentés sur la même puce.
 
11. Procédé selon la revendication 9, dans lequel le régulateur de tension (606) est un régulateur de tension à faible chute de tension (LDO).
 
12. Équipement d'utilisateur (UE), comprenant un système à processeurs multiples selon l'une quelconque des revendications 1 à 8.
 




Drawing



































Cited references

REFERENCES CITED IN THE DESCRIPTION



This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

Patent documents cited in the description