May 7, 2014, Internet of Things Developer Conference, Santa Clara, CA—Peter McGuinness from Imagination Technologies talked about scaling processors in heterogeneous platforms to the app and performance requirements. This approach to systems development allows for more flexibility and more optimal power, performance, and cost structures.
Developing devices for the IoT must address the high likelihood that at least part of the system will be mobile or wearable, making energy management a critical issue. The semiconductor industry is in a transition phase to more generic IoT SoC combination platforms. This platform will include sensors plus portability and links to a host device for processing and storage.
The energy management for such a system calls for a heterogeneous system and not just more cores for better performance. Instead the system needs custom hardware or dedicated compute functions to optimize performance and energy management. This systems-level approach generates its own challenges for power management, apps portability across the range of embedded platforms, simulation and modeling of the various elements and the whole system. In addition, the developer has to decide if the real-time performance has to be deterministic or adaptive.
Other issues like security also become important in the mobile and wearable spaces. Recently, developers have noticed that testing can be a problem, as the devices change performance with increases in temperature. So the device under test has to be powered on long enough to self heat before testing.
The system architecture has to consider the processing needs and the need for GPU-type devices for parallel processing. Identifications of latency elements and partitioning of high-throughput and high compute tasks have to address the fact that overall performance is power-envelope limited.
The software development team must ask for good APIs, and other language and hardware standards and support. Programming should address the system and program models to profile app performance and power management. The processing profiles are becoming increasingly dynamic as apps move across GPU and CPU resources, while clock and voltage change with processing loads and internal temperatures. The ability to share resources may help with all of the issues at the cost of more complex programming.
Moving apps from the desktop to a mobile device is not just porting to code to a different platform. The two have vastly different user interfaces and internal resources. A mobile device is touch-centric and mostly intuitive, but can be on a range of platforms with varying levels of hardware performance and resources. At the same time, a mobile app is not the same thing as the IoT.
The IoT devices may not even have a user interface or screen, and the data processing may be on a different device or in the cloud. The absence of local compute power and storage makes a cloud-based IoT a dumb interface to another machine. The problem is that remote compute and storage is bandwidth limited, so some amount of local compute is necessary to allow the restructuring of raw data into useful information. This local computation should also reduce the amount of data that needs to be transferred to the cloud.
The issues for the digital home and IoT include the need for cooperation, integration, and interoperability across all the connected devices. This increased automation will need to play nicely with the existing home infrastructure and allow synchronization across all platforms. The platforms will need to be system aware and have the ability for internal cooperation across devices. Increasingly, the vertical integration of systems will require more intelligence and better communications at all of the nodes and in the gateway. System components should move towards zero-copy communications.
The IoT needs lots of new software and ecosystems that can offer scalable performance across a range of platforms. These requirements will force developers to assemble a full systems-level knowledge and domain expertise into user experiences as well as in hardware and software design.