Mobile computing has always been about balancing performance and power consumption. A laptop or tablet can only run as long as there is power left in its battery. Of course, users and software have increasingly required greater computing power. Thanks to a variety of techniques, computing devices have generally become extremely power efficient but we are now demanding much more from our mobile devices which is putting more strain on being efficient.
There have been several techniques used over the years to try and boost performance while still conserving power. The most common method of power savings has been clock scaling. This essentially varies the speed of the processor depending upon the load on the processor. The less demanding the task, the lower the clock speed will be set.
Another technique has been adding multiple cores to a processor. When a device is in an idle state, it can use just a single processor core and thus less power and ramp up additional processor cores as needed. The big problem with this is that all of the processor cores have needed to be of the same design. Even with a single core running, some of the latest architectures are running into power efficiency problems because they still have to rely on high performance designs.
The next solution is place multiple processing cores within a device but to have some of those cores be lower power designs than the remaining cores. This can be referred to as variable processing but it can be implemented in various ways. Right now there are two solutions that will be arriving to market soon for tablet and smartphone processors, one developed by ARM the primary designer of low power processors and the other from NVIDIA, a major supplier for many Android tablets.
big.LITTLE
ARM is the primary developer of the processors that are used in the various smartphones and tablets on the market. They don't actually produce the chips themselves but license the designs out to companies like Apple, NVIDIA, Qualcomm, Samsung and TI. Over the years, they have developed a variety of different designs that have varied in performance and power consumption. The Cortex-A series is their primary processor design. The different levels offer various levels of performance and power consumption. The Cortex-A9 is the most popular of the processors right now for its solid performance capabilities.
The big.LITTLE initiative by ARM is their technique for adding higher performance to mobile devices while offering better power savings. To do this, ARM is pairing up two very different processor designs to achieve this. The first of these is the Cortex-A15 which is the highest performance of their designs to date. The added performance has the drawback of potentially using more power. This is where the second processor, the Cortex-A7, comes into play. This is a new highly efficient processor design that is meant to stretch battery life but sacrifices performance.
So, how do these two processors work? Well, this is where software would have to come into play. The operating system would have to determine how much processing power is required for each task that is running on the system. Based on this, it would assign a task to either the low power Cortex-A7 or to one of the Cortex-A15 if it is going to be more demanding. This should mean that during standby times or light loads, it would use the Cortex-A7 exclusively leading to huge power savings. Then if more power is required, the software will assign them to the Cortex-A15. Effectively, the Cortex-A15 will only be powered on when required.
The big downside to this overall framework is that it requires additional hardware from two dissimilar processors and a hardware controller to assign the tasks and control whether the more powerful cores need to be powered up or not. In addition to this, there has to be software written which can properly select and manage which processor will be handling tasks. ARM is working on tools to help make this migration easier but it could present challenges.
Variable Symmetrical Multiprocessing
NVIDIA is one of the licensees of the ARM processor designs that they have placed into their Tegra processors. With the Tegra 3, codenamed Kal-El, NVIDIA is introducing their new technique for providing lower power consumption and battery life. They have named it vSMP or variable symmetrical multiprocessing. Essentially, the quad core ARM processor adds in an extra companion processor to technically give it a fifth core. The approach differs from ARM's big.LITTLE technique because it uses the same Cortex-A9 for each of the processors.
The fifth processor core or companion is actually a very different physical design from the four primary cores even though it uses the same Cortex-A9 architecture. First, it is designed on a same chip but uses a different style of silicon that allows for lower power consumption. In addition to this, it runs at a lower clock speed. These two factors mean that it runs with very little power but it also means that it won't provide as much performance.
The main reason for this style of design is that the processor switching is handled primarily through the hardware rather than the software. To the operating system, there are four cores but when there is very little work such as when the device is used in standby mode or with minimal processing power such as listening to audio or watching light video, then this companion core will be used and the four primary cores will be shut down to greatly reduce the power consumption.
Now, if additional processing power is required, then the Tegra 3 controller will switch over to the primary cores and use either one, two or four cores depending upon the load that is placed on the device by the software. This dynamic switching ability should provide both a great level of performance or huge power savings depending on how the device is being used. Since it is primarily handled by the hardware, software doesn't require very much change for the benefits to be seen unlike the ARM solution.
Final Thoughts
Overall, the variable processing techniques have the ability to greatly extend the running time of mobile devices. Projections are that they can achieve up to seventy percent boost over existing running times. Real world benefits are going to be very different though. If the mobile device is heavily used for games or multitasking, the benefits will have less impact as the high power processors will be running more often. The benefits are most tangible for light or no usage. So, it should extend a devices standby time between charges or light tasks such as web browsing, listening to music or reading ebooks. The real question is if these same techniques will be pushed out to future x86 processors that are used by laptops.

