ICES Awards 2008
Soft Integration of Hard Real-Time Capabilities in C#

Prof. Dr. Rachid Guerraoui
Prof. Dr. Jan Vitek

In order to support reliable real-time capability of embedded software, this project aims to non-intrusively add functions to the C# (C-Sharp) programming language and runtime environment developed by Microsoft for the .NET technology. The team addresses time-critical applications with response times in the sub-millisecond range and readily integrated within larger timing-oblivious applications in the same C# environment. Major challenges include the interference with a real-time garbage collector (RTGC) and the synchronous communication between time-critical and time-oblivious code. Since the latency of a standard RTGC is often lower than required by certain applications, programmers choose a restrictive model with a standard garbage collector. Our focus is on the investigation of RealSharp, a restricted programming model enabling time-critical and time-oblivious tasks to be mixed, yet leaving the C# programming model intact.

ProgLab.NET: A Workbench for Ensuring the Quality and Reliability of Embedded Software

Prof. Dr. Martin Odersky
Prof. Dr. Thomas Henzinger
Prof. Dr. Viktor Kuncak

Embedded control systems are also used increasingly in safety-critical applications such as medical implants, automobiles (drive-by-wire) and aircraft (fly-by-wire). Since such systems must be able to operate with absolute reliability, their prior verification has become a central concern. Dubbed ProgLab.NET, this project is to develop a so-called workbench that can be shared by both application programmers and verification tool developers. The results obtained with ProgLab.NET will be available to the software developer in a uniform way via a plugin for an IDE (Visual Studio).

A Virtual OSGi Infrastructure for Embedded Software Systems

Prof. Dr. Gustavo Alonso
Prof. Dr. Timothy Roscoe
Dr. Oriana Riva

The demand for software-based solutions for embedded applications keeps growing. At the same time, the costs of developing and managing the programming code are rising rapidly. The project is to develop an infrastructure designed to bring relief. Rather than starting from scratch, we adapt and extend tested technologies and standards. The OSGi framework (Open Services Gateway Initiative) is such a solution. OSGi is a well established, open, modular and scalable service delivery architecture for integrating intelligent consumer devices, delivering and installing services, as well as content such as remote control, system diagnosis and maintenance. The project will extrapolate the concepts and ideas behind the OSGi model to make them language- and platform-independent, fully service-oriented, and the basis for the development of embedded software. The project is to produce suitable component models and corresponding middleware for a wide range of applications. As testing platforms, the project will focus on the Microsoft Robotic Studio, the .NET platform and a special research operating system.

Supercomputer in the Pocket: Integrated Development of a High-Performance Computing Platform for Embedded Systems

Dr. Felix Friedrich
Prof. Dr. Jürg Gutknecht
Dr. Lisa Liu
Prof. Dr. em. Niklaus Wirth
Dr. Chuck Thacker
Dr. Patrick Hunziker

Our goal is the development of a massively parallel hardware/software architecture for embedded systems, a "portable high-performance computing system for safety-critical applications". From the hardware point of view, the system will rely on a large number of interconnected processors on a so-called FPGA (Field Programmable Gate Array). The principle of each processor will be similar to that of today's RISC (Reduced Instruction Set) but has some novel features to conserve the scarce resources in an FPGA. From the software point of view, our model is designed to optimally support the mapping of parallelism in algorithms to the parallelism in our hardware. Mathematical algorithms are then executed utilizing as many of our CPUs as available. A high-performance health monitoring application will serve as a proof of concept: an ultrasound-based heart monitor is to automatically detect anomalies in the blood flow and movement of the heart. The necessary complex mathematical algorithms require a sufficiently abstract programming model. Their execution in an acceptable time frame demands high computing power made possible by a high degree of parallelization.

Multi-Object Motion Grouping for General Embedded Computer Vision

Prof. Dr. Marc Pollefeys
Dr. Gabriel J. Brostow
Prof. Dr. Andrew Blake

While many of today's devices feature built-in video cameras, they do not have an embedded computer vision system capable of recognizing the movement of individual objects within larger gatherings or groups. This would be essential, however, to perform demanding tasks such as guiding robots, measuring traffic or tracking people during videoconferences. The key is spatiotemporal movement recognition. The project is to segment videos in time and space and will be developed into working prototypes, initially for desktop computers, then also for handheld-sized devices. The prototypes target a variety of applications. One example, people-counting in crowds, is intended to provide valuable information to architects and urban planners who study crowd density and resolve bottlenecks of pedestrian traffic at different times of the day. Such information is also important when planning large sporting events where safety criteria or public transit frequency must be considered. Embedded systems would be mounted near traffic signs, for example, and periodically send back information about how many people are going which way, without affecting the privacy of individuals or violating data protection provisions.

Failure Immunity Mechanisms for Embedded Software in Consumer Devices

Prof. Dr. George Candea
Embedded software has transcended the realm of safety-critical systems to that of consumer devices, which are substantially improving quality of life: PDAs, smart phones, GPS navigation, game consoles, set-top boxes, cameras, etc. The embedded software in consumer devices face three important challenges: operating reliably in spite of bugs, debugging based on automatically generated failure reports, and updating software in devices that are operated by non- expert users. Our project develops a self-healing mechanism to address these challenges. Called failure immunity, our technique enables embedded software to learn from past failures: it dynamically detects previously unseen failures, saves a signature of the faulty execution, and subsequently prevents the system from retracing the same steps. Embedded systems with failure immunity gain increased autonomy in the face of failures.

Efficient symmetric cryptographic capabilities for embedded devices

Prof. Dr. Arjen K. Lenstra
Dag Arne Osvik

The project proposes to develop a software library for symmetric cryptographic functions (block and stream ciphers, and cryptographic hash functions) aimed at a variety of lightweight processors commonly used to run embedded software such as ARM, AVR and PIC processors. Features to be paid particular attention to are reliability, power efficiency, compactness and speed. Availability of standard and high-quality implementations is to inspire more confidence in embedded software, ease integration and accelerate time-to-market where security plays a role.


©2009 Microsoft Corporation. All rights reserved.