OnQ Blog

Sensor processing done right: Smart integration of a specialized sensor engine

5 juin 2014

Qualcomm products mentioned within this post are offered by Qualcomm Technologies, Inc. and/or its subsidiaries.

Sensor processing requirements are only increasing. The simple sensor processing days of the past are gone forever as we now see the trends of more sensors and more algorithms to enable breakthrough experiences. The logical question that arises is: what is the most efficient way to deliver these sensor-based experiences in power constrained mobile devices?

The short answer: smart integration of a specialized sensor engine by taking a heterogeneous computing approach. In a recent webinar, Qualcomm Technologies took a deep dive into how to design and enable the optimal sensor solution. Here are my key two takeaways:

A digital signal processor (DSP) is the right specialized engine architecture for sensor processing. As discussed in my previous blogs, the fundamental premise of heterogeneous computing is that running the appropriate task on the most suitable specialized engine delivers performance and power benefits. As it turns out, processing sensor data has diverse requirements such as high performance, real-time processing, and always-on sensing—and all of this at low power.

The high performance is not just any type of performance. By examining a typical sensor algorithm, such as course motion classification, it becomes clear that the processing tasks are a combination of signal processing, control flow processing, and real-time processing. The right architecture (or tool) for these processing tasks is a DSP, such as Qualcomm Technologies’ Hexagon DSP, as opposed to a microcontroller (MCU).

 

The Hexagon DSP was designed to maximize work per cycle, which results in optimal performance per milliwatt and a wide range of performance efficiency. As an example of the Hexagon DSP’s efficient performance, the chart below shows how it excels at signal processing and control processing as compared with certain third-party MCU-based solutions.

Smartly integrating the specialized sensor engine into the SoC is the right approach for optimal processing efficiency. Because Qualcomm Technologies takes a holistic approach to system design, we are able to develop a smartly integrated SoC architecture with system-level innovations. Compared to using a discrete sensor hub, smart integration has two huge benefits: inter-processing engine communication and access to shared DRAM.

Inter-processing engine communication provides a direct path between the sensor engine and other processing engines in the integrated SoC. Unlike a discrete sensor hub, an integrated sensor engine can take advantage of inter-processing engine communication. This direct communication allows the integrated solution to bypass the CPU and let it stay asleep, which results in saving power, a faster response, and a better user experience.

Access to shared DRAM means that the integrated sensor engine has direct access to the DRAM, which acts as scalable memory. This is very useful since the need to support more sensors, more algorithms, and more use cases is on the horizon and will require additional memory. An integrated sensor engine can deliver a broad range of additional experience at essentially no additional cost. On the other hand, the discrete solution has no direct access to the DRAM and as a result is primarily limited to the RAM in the package. To deliver additional sensor experiences, you would need to buy a discrete sensor hub with additional RAM, which increases cost.

Overall, smart integration provides many benefits over a discrete solution such as reduced cost, development time, and power consumption, as well as more responsive and comprehensive user experiences.

Now you know why Qualcomm Technologies has smartly integrated a specialized sensor engine. It’s because that approach provides optimal processing efficiency. Be sure to check out the webinar for many more details.

Want to learn more? Look for future blogs and sign up for our newsletter to receive the latest information about mobile computing.

Pat Lawlor

Senior Manager, Technical Marketing

More articles from this author

About this author

Related News

OnQ

Heterogeneous Computing: An architecture and a technique

If you’re looking to create great mobile experiences, optimization isn’t optional: it’s a crucial step that helps transform good ideas into great execution. In our previous “Start Cooking with Heterogeneous Computing Tools on QDN” blog, we discussed the concept of heterogeneous computing and how it can help you get more from mobile hardware by sending computational tasks to the best suited processor. Heterogeneous computing is designed to help you achieve better application performance while improving thermal and power efficiency.

However, not all systems capable of heterogeneous computing are created equal and it’s important to understand why. Heterogeneous computing is both a computational technique and a hardware architecture. To achieve greater benefits, you are better served with hardware architected for heterogeneous computing from the ground up along with a software stack that facilitates heterogeneous computing techniques. It’s the combination of purpose-built hardware and a software stack offering granular control within a larger framework of system abstraction that allows for the deep optimizations that heterogeneous computing can deliver.

The Qualcomm Snapdragon Mobile Platform is designed on these principles. This starts with the microarchitecture – the choices made in platform circuitry that include how individual processors are engineered for high performance and how to optimize compute paths between the processors. Let’s look at the main components of the Snapdragon mobile platform and a few of the microarchitecture considerations that went into its design:

Qualcomm Kryo 280 CPU

Designed to handle complex workloads like web browsing and in-game artificial intelligence, the Kryo 280 features an octa-core processor with independent high efficiency and high performance core clusters. During normal operation, the high efficiency cores run most tasks while the high-performance cores activate for anything needing more power.

Qualcomm Hexagon 682 DSP

With the Hexagon wide Vector eXtensions (HVX), the Hexagon DSP excels at applications requiring heavy vector data processing, such as 6-DOF (or Degrees of Freedom) head motion tracking for virtual reality, image processing, and neural network computations. With a 1024-bit instruction word capability and dual execution of the control code processor and the computational code processor within the DSP, Hexagon can achieve breakthrough performance without draining system power.

Qualcomm Adreno 540 GPU

Ideal for arithmetic-heavy workloads that require substantial, parallel number crunching like 3D graphics rendering and camcorder image stabilization, the Adreno GPU is engineered to achieve improved power efficiency and 40% better performance than predecessors. Designed to deliver up to 25% faster graphics rendering and 60x more display colors compared to previous designs, the Adreno GPU supports real-life-quality visuals, and can perform stunning visual display feats like stitching together 4K 360 video in real time.

Heterogeneous computing in microarchitecture design

Beyond the performance enhancements among the individual processors, the Snapdragon mobile platform was designed to optimize the use of the processors together. For example, the Hexagon DSP can bypass DDR memory and the associated data shuffling CPU cycles by streaming data directly from sensors to the DSP cache. Similarly, the Adreno GPU supports 64-bit virtual addressing, allowing for shared virtual memory (SVM) and efficient co-processing with the Kryo CPU. These are just two of the microarchitecture design choices in the Snapdragon mobile platform that make it cutting-edge for heterogeneous computing.

Software

As we noted at the beginning of this post, heterogeneous computing is also a technique. And to truly support heterogeneous computing requires a software stack that provides developers the abstractions and the control to leverage the optimizations in the hardware per the requirements of their application.

To program the DSP or the GPU for heterogeneous computation, and to maximize their performance, developers can use the Qualcomm Hexagon SDK and the Qualcomm Adreno SDK, respectively. These SDKs open a toolbox of controls allowing for precision manipulation of data and computational resources.

For system-wide heterogeneous computing control, Qualcomm Symphony system manager SDK provides the software utilities designed to achieve better performance and lower power consumption from the Snapdragon mobile platform. Symphony is designed to manage the entire platform in different configurations so that the most efficient and effective combination of processors and specialized cores are chosen to get the job done as quickly as possible, with minimal power consumption.

On top of these SDKs it is possible for developers to build their applications directly – many developers opt for this route. However, there is a growing ecosystem of SDKs, frameworks and supporting libraries for accelerating development within a given application domain. Two examples of this are QDN's Adreno SDK for Vulkan for the Vulkan graphics API and our recently released Snapdragon VR SDK.

How to Put Heterogeneous Computing Techniques into Practice with Tools from Qualcomm Developer Network

The Snapdragon mobile platform’s microarchitecture, software development kits and high-level frameworks layer upon each other to provide developers ultimate control of their application performance and power usage. This combination of hardware purposely designed for heterogeneous computing and software allowing the use of heterogeneous computing techniques is at the heart of delivering great user experiences.

Whether you’re a developer that has always written code that executes serially and are interested in how to push more work to other processors, or whether you already have heterogeneous computing know-how and want to use it more effectively – perhaps wanting precise control over the dynamic distribution of your workloads – visit QDN for the resources you need to level up your heterogeneous computing skills.

 

 

23 mars 2017