Design Automation and Optimization Framework for Embedded Systems

Principal Investigator
Omer Khan
Graduate Fellows
Qingchuan Shi, Daniel Fontaine, Wei Yan, Kartik Lakshminarasimhan
Co-Principal Investigators
John Chandy, Laurent Michel
Project Duration
2015 - 2016
Embedded platforms are becoming increasingly complex to design, configure and deploy. This rising complexity is the net result of two phenomena. First, the underlying hardware components that can be composed to create the physical substrate on which the embedded software is to run are numerous (e.g., compute nodes, network interconnects, passive and active sensors, actuators), diverse (FPGA, DSPs, GPUs, multi-core CPUs etc.), and capability-rich as they support dynamic frequency/voltage scaling, and increasingly incorporate parallel computing capabilities. These embedded systems need to be architected with safety, determinism and utilization constraints, while optimizing for many (sometimes competing) objectives such as fault tolerance and reliability, latency, and reduction in costs and the physical weight of the system. Second, the software modules that define the entire application meant to run on embedded systems have specific requirements on their fault-tolerance, energy usage, deterministic runtime, memory and bandwidth needs, and even restrictions on how they can be concretized on specific hardware resources (e.g., some software functions are not well suited for running on a CPU while they may be appropriate for a multi-core or GPU). Note that the requirements of software are dependent on its inputs. Furthermore, software architectural requirements add another layer of complexity with constraints driven by safety, utilization, reliability and responsiveness mandate that certain software modules be co-located on the same hardware or even separated.
System architects are now compelled to integrate all these design considerations when producing a design that blends diverse hardware components with complex software architecture subject to constraints on the entire system (e.g., response time). Indeed, the sheer size of the design space along with the inter-play of constraints at multiple levels of software and hardware abstractions renders empirical and incremental design processes fairly ineffective. We envision a systematic and hierarchical framework for the configuration, optimization, design and deployment of complex embedded systems.
The central idea is to approach the embedded system design challenge as a configuration problem. More specifically, at the macro level, given a fixed partial hardware platform specification and an abstract software specification, the problem formulation is to decide how to select and specialize the hardware components and select suitable software concretizations so that the complete design satisfies design constraints and optimizes a selected design objective such as runtime, energy usage, cost, weight, and/or size. The objective is to develop a tool that integrates within a modeling eco-system, in which the hardware and software components can be specified, optimized and configured. The tool would be responsible for deriving and solving a discrete optimization based on this specification to produce a complete design that can be subsequently simulated or used to derive an actual embedded system implementation.
At the micro level, our central idea is to develop methods for deterministic and efficient execution of concurrently executing applications on parallel computing hardware i.e., multicore and GPU processors. Multicore is here to stay, it is identified as a key potential technology in IEEE Computer Vision 2022; they have the capability to substantially improve fault-tolerance, performance (latency and throughput) and power/energy efficiency of embedded systems. However, many of the on-chip resources in parallel hardware, such as cores, caches, networks-on-chip and memory controllers are shared resources. Unfortunately, this exposes a well-known limitation of multicores, the “interference” bottleneck. This problem poses a serious threat in safety critical embedded systems since it causes large utilization variations due to vastly different data access behaviors across multiple concurrently executing applications, precludes quality-of-service guarantees, and degrades throughput and energy efficiency. We envision a set of novel static and dynamic isolation and partitioning technologies to efficiently harness the multicore non-determinism challenge.
Peer Reviewed Papers and Conference Proceedings
Qingchuan Shi, Kartik Lakshminarashimhan, Christopher Noll, Eelco Scholte, Omer Khan, "A Lightweight Spatio-Temporally Partitioned Multicore Architecture for Concurrent Execution of Safety Critical Workloads," SAE Technical Paper 2016-01-2067, 2016, doi:10.4271/2016-01- 2067
Wei Yan, Daniel Fontaine, John A. Chandy, and Laurent Michel, “A design flow with integrated verification of requirements and faults in safety-critical systems,” in Proceedings of System of Systems Engineering Conference, June 2017. doi:10.1109/SYSOSE.2017.7994955