System-level optimization and its contribution to solving energy problems


    How the problems of energy consumption are solved at the stage of microprocessor design was described in a series of posts entitled " Life in the era of" dark "silicon . " Four main approaches were highlighted, but there is another approach that will be discussed this time. This is system level optimization.

    The first question that naturally arises is why system-level? The answer to it is extremely simple - the final product matters, not the “cogs” of which it consists. You need a systematic look at the bundle of software stack + hardware platform + semiconductor components in order to evaluate the characteristics of the final product and manage them.

    This is also true in the case of energy consumption: an integrated approach opens up new possibilities for optimization and allows us to solve otherwise unsolvable problems. In this post I will give some examples to show that this is indeed so.

    big.LITTLE


    This idea is to combine two processors within the same system. One is for solving high-performance tasks, and the other is for lower power consumption where greater productivity is not required. Accordingly, if you transfer the calculations from one processor to another when the load changes, you can save energy.
    ARM developers combined the Cortex-A7 and Cortex-A15 processors in this way. These processors are almost identical in terms of instruction system architecture, memory model, and program model. Accordingly, all instructions will be executed uniformly, although with different performance.
    Differences become noticeable at the microarchitecture level. Cortex-A7 is an in-order processor, with a conveyor length of 8-10 steps. And the Cortex-A15 is an out-of order processor, the pipeline of which totals from 15 to 24 stages (depending on the instruction).

    big.LITTLE system The

    energy consumption of such a system is depicted in the following graph. As you can see, in the field of low-performance computing, the use of the A7 gives about a twofold gain in power consumption compared to the A15.

    Performance big.LITTLE system

    And what does the system-level? The fact is that acting on any one level nothing like this could have been created. It is necessary to pay attention to three levels at once:
    - The processors used must provide an appropriate choice between performance and energy efficiency, as well as the identity of the software model.
    - The hardware platform must ensure the proper interaction of these two processors
    - System software must ensure the migration of computing from one processor to another, solving all the related tasks. In addition, A7 and A15, although almost identical in terms of the software model, but not 100%. These differences must be hidden from the upper levels of the operating system and running programs.

    Using processors that do not have such a strong identity as the A7 and A15 could be much more attractive in terms of energy savings. For example, if one processor implements some extensions of the instruction system, and the other does not, or if the processors generally have different instruction systems and memory models. But this poses even more problems for the software level related to the migration of computing, some of which currently do not have a good solution.

    Android Power Management Stack


    The subject is presented in the following figure. At the very bottom are the hardware-based energy management hardware and firmware implemented by the PCU (Package Control Unit). The following is the software part related to the Linux kernel and the Android environment and, in fact, user applications. What would be possible to achieve in terms of energy savings if each developer did not look beyond their stack level? For example, if Intel only paid attention to the part of power management that relates to silicon and firmware, ignoring the rest? The processor would certainly not have failed from overheating :), but I would not guarantee anything more. Even if management is implemented impeccably at the hardware level, but the software is rather mediocre, you can forget about good performance.


    System-level power delivery


    Here, our attention is drawn to the fact that the power supply system in mobile platforms (for example, smartphones) by itself consumes a lot of energy (20-40%). Moreover, processor power consumption is not dominant in the system. Under such conditions, energy optimization should be performed at the system level. For example, the choice of the optimal frequency for the processor must be carried out with an eye on the power consumption of the remaining components of the system.



    Consider this example. Suppose the current processor load is significantly lower than the maximum. In this situation, there are two behaviors. The first is to quickly (at a high frequency and with a greater power consumed by the processor) perform calculations and switch to sleep mode for a long time. The second is to slowly (spend less energy per processor unit per time) perform calculations and go into sleep mode for much less time. Which option to choose? This is not at all simple, and for this you need to know how much the other components of the system consume in various modes.


    Themperature estimation and management


    For mobile devices, such as tablets or smartphones, there are a number of specific requirements in terms of temperature conditions. Namely, the temperature of the case and the screen should not cause discomfort when touched. However, this problem is not at all as simple as it seems, due to the complex nature of the heat distribution in time and space of the case, as well as the limitations of temperature sensors - it will not be possible to place the temperature sensor directly on the surface of the case or screen. As a result, developers are forced to build models that describe the temperature at various points on the surface of the case and engage in their calibration / training / etc. And already on the basis of these models then implement energy management algorithms. Of course, this can be done only with a ready-made smartphone / tablet, i.e. at the system level.


    In conclusion, I want to say that optimization at the system level has become a truly necessary thing. Its benefits are obvious and a number of problems cannot be otherwise solved. And since in matters of energy consumption, it was paid attention relatively recently, that is, there is reason to believe that there will still be many interesting achievements in this direction.

    Also popular now: