An informal summary of my research (dt.15-Nov-2017)

Topic: Design Space Exploration for Complex Embedded Systems

In this page, I will try to explain my research in an informal and generic manner. This page is written to explain my work to anyone, whether familiar or unfamiliar with the field.

Let's start with definitions - what is an embedded system?

An embedded system is any electronic system which is designed for a particular application only. There are many examples of embedded systems around us - a washing machine controller, a television, a remote control, etc. Each of these is designed for a particular application and can only do the task which it is designed for. This is in contrast to a general purpose computing system like a PC or a laptop, which can play different roles depending upon what softwares you install on it and how you use it - someone can use it as a gaming console, while others may use it as a browsing terminal, still someone can use it for photo/video editing, etc.

With this, I guess, we get an idea of what is embedded system. Now let's understand the other term - Design Space Exploration.

Whenever a designer builds an embedded system, there are numerous ways in which he/she can achieve the intended functionality, each of the choice being called a design point. But each of these means of implementing is not same in terms of cost, power consumption, speed, etc. - some may have an advantage over the other and the designer would get the best for the metric of his interest. So, given this gamut of choices, how does a designer evaluate these options and decide an optimal one? - This requires a systematic analysis of the tradeoffs between these choices and the process is called design space exploration (DSE in short).

Now, what's so novel or interesting about this whole thing?

A major challenge in DSE is that the number of choices could be in billions and hence finding the right choice requires intelligent pruning and elimination of inferior design points. This challenge makes it interesting as it provides an opportunity to find better techniques. The upcoming embedded systems pose a newer challenge though - traditionally, the specification was fixed while designing a system and hence the possible choices were lesser. But, now-a-days, there are many embedded applications using computer vision and machine learning algorithms which could have a variable specification in terms of accuracy metrics. These tasks can run in various modes. Higher accuracy modes might require higher power, lower speed. Hence, the implementation choice heavily depends on the accuracy at which we want the system to operate and the designer needs to explore this as well, thus significantly multiplying the number of design points. Traditional methods of DSE do not suffice for such systems and hence this requires research to model such systems to effectively find out good design points.

Now comes our contribution

We propose to use higher level metrics (like accuracy, battery life, etc.) compared to traditional metrics (like power, runtime, etc.). Usage of higher level metrics compress the design space and also raises the abstraction. Further, we propose a constraint based modeling of the system to eliminate infeasible choices under given constraints. Due to inherent complexity of the whole process, it is not possible to completely automate it and hence we need an interactive means of taking hints from the designer. This is accomplished by using a visualization tool which the designer could use to interact with the exploration engine.

Found it interesting? Do attend the talk at IIT Delhi CSE/SIT PhD symposium to know more about the work.

Have more queries? Meet me after the talk or drop an email at kedia@cse.iitd.ac.in.