Architectures for IoT

The dream of the Internet-of-Things is billions of computers embedded everywhere, yet so unobtrusive that they fade into the background of everyday life. Building systems the size of a grain of rice that are able to survive unplugged for decades requires a constant focus on minimizing energy consumption.

The goal of this work is to design and build new energy-efficient IoT architectures to enable this future. We will address issues such as how to slash standby power, wirelessly debug sealed systems, cope with unpredictable energy availability, scale into 3D, and tame non-volatile memories.

Composite Cores

Today's smartphones incorporate heterogeneous processor cores, those optimized for high performance (out-of-order) and those optimized for maximum energy-efficiency (in-order). Today, when the screen is on, the high-performance processors are used to provide optimal user interaction. When the screen is off, background tasks utilize the energy-efficient processors to maximize battery life.

However, applications frequently experience short phases of low performance, even when running on high-performance cores. Unfortunately, switching between the two processor types wastes tens of thousands of processor cycles, negating any potential benefit of switching to energy-efficient processors for short durations.

Composite Cores is an architecture that brings heterogeneity inside the core by creating a single processor core which can transition between high-performance and energy-efficient modes with near-zero overhead. By intelligently predicting when these short low-performance phases will occur, composite cores can quickly transition to energy-efficient mode, saving energy, then transition back to high-performance mode when the low-performance phase ends to maintain high performance.