We are currently in the early stages of a so-called “wearable revolution”, with several new wearable devices in different form factors and functions announced in 2014. At the higher end of this diverse and rapidly evolving market, smart watches and smart glasses are the most popular consumer categories with many devices developing widespread acclaim and the next generation already being designed and developed. These devices have some of the most complex features and most demanding functions and the challenge facing developers is how to implement such advanced functionality in a small power envelope. Wearable devices have considerably stricter power and area restrictions than other mobile devices, but consumers expect them to perform many of the same functions. How can engineers achieve the desired performance when power is so limited?
As the wearable devices evolve in providing high end functions and intelligence, this implies more compute power while being within strict low-power budgets which these devices demand. NEON, ARM’s pertinent SIMD technology, has long been an important technology in accelerating multimedia and DSP functions for mobile use-cases, and now is being used for providing power efficient performance for compute intensive functions in mid to high-end wearable devices.
SIMD is a computational technique for processing a number of data values (generally a power of two) using a single instruction, with the data for the operands packed into special wide registers. One instruction can therefore do the work of many separate instructions. ARM NEON technology is designed to build on the concept of SIMD. NEON is a combined 64-bit and 128-bit SIMD instruction set that provides 128-bit wide vector operations, compared to the 32-bit SIMD in the ARMv6 architecture.
In typical use cases, NEON can halve the amount of time taken to execute functions on a set of data for DSP and media processing, which results in around 2x optimized performance. Alternatively, NEON can support even more multimedia features in the mid to high end wearable devices, and several compute intensive functions like voice recognition, speech processing, video playback, 2D user interfaces, and image processing. A device’s OS can enable NEON on demand, and monitor which tasks use NEON, thus resulting in a significant decrease in average switch overheads.
The key benefits of NEON for mid to high end wearable devices are:
Another crucial reason why NEON is so beneficial for wearables is the presence of an extensive third party software and open source ecosystem supporting NEON] . Many third party companies design code optimized to run on NEON meaning that the software is optimized for power efficiency while providing the desired performance. A number of Android features can only be fully realized when executed in conjunction with NEON. Android’s open-source Skia Graphics Engine is around five times faster when used in conjunction with NEON, and the recently unveiled wearable platform Android Wear requires RenderScript support which runs on NEON. With a large number of next-generation wearable devices set to feature Android Wear, NEON will become even more important in the wearable world, and the ecosystem surrounding it could expand even larger as more companies design apps and software for the wearable OS.
To summarize, NEON technology is already powering ARM based Android-Wear devices that are shipping today. NEON offers accelerated multimedia and DSP performance with power efficiency for compute intensive functions in wearable devices (speech processing, image processing, simple 2D graphics) The other key benefit of NEON is the simplicity of using the same tool chain for developing and debugging code while leveraging the large opensource ecosystem and third party support for NEON for the rapidly evolving wearable market.