Daniel Grobe Sachs: Project Experience

The UIUC GRACE Project

The UIUC GRACE is a multidisciplinary project to design and construct a system that reconfigures each component in a wireless-equipped multimedia laptop to reduce power consumption (and hence increase battery lifetime) while preserving or improving the performance of applications running on the system. My role in the project was essentially that of "project architect;" although the project was very much collaborative and required input from all parties, I did much of the actual design work and the end results largely reflect my vision for the project.

Therefore, as part of my PhD studies, I developed a large fraction of the GRACE framework. In addition to my architectural work on the system as a whole, my personal role in the software development aspect included the development of a simulation framework, an adaptive encoder application and its corresponding decoder, and several optimization and prediction algorithms. I also participated in the development of an implementation of the GRACE framework on the actual laptop; this implementation uses an identical hardware/OS abstraction layer to that used by the simulation environment. This abstraction layer converts from GRACE function calls made by the application into calls into the GRACE kernel modules or simulation components.

The actual GRACE environment is based on the Linux platform, with a modified kernel that provides real-time scheduling, voltage scaling, and network estimation services, as well as user-mode code that glues the global optimization code and the application with the hardware and the kernel. The simulation environment I developed is intended to duplicate the functions of this GRACE system providing the repeatability required for academic experimentation. The core of the simulation environment is the emulation of the scheduler and the energy-estimation components included in the GRACE kernel and libraries. This core is multithreaded program that connects to and interfaces with all applications running on the emulated system as well as the global optimization code.

The core of the adaptive video encoder is an adaptive encoder library based on the open-source TMN H.263 encoder implementation. This encoder base has been heavily modified to allow the variable-complexity encoding. The application itself is a GRACE wrapper for this library, which reads frames from a USB camera or a file, optimizes the encoder to minimize the system energy consumption, encodes and transmits the frame, and performs error recovery and resource management. The corresponding GRACE decoder is not adaptive, but similarly registers with the GRACE environment for resource management and cooperates with the encoder for error recovery.

Data acquisition

In addition to my PhD research and teaching duties in the DSP lab, I worked on two major data-acquisition systems as an undergraduate.

The first of these was an environmental noise monitoring system for the US Army Construction Engineering Research Laboratory. This was an embedded computer that we hung up on a pole in upstate New York, attached to two microphones and a telephone line. It listened for and reported blast noise coming from the artillery ranges at Ft. Drum, and was used as part of noise management for the surrounding community. This system used DSP algorithms to report only blast noise, which was identified using its spectral characteristics and correlation between two separate microphones.

My responsibility on the project was the development of the embedded data acquisition and storage software and its interfaces to the outside world, as well as design and construction of the prototype system that actually went up on a pole near Fort Drum in upstate New York. This prototype remained operational in harsh weather for several years, reporting blast noise to the base supervisors and assisting in the management of noise complaints from the community.

The second project that I worked on was the data acquisition and visualization software for a cosmic-ray tracker for a physics professor at UIUC. This system consisted of a set of detectors that could identify the precise time of arrival of the cosmic ray, and two more sets that localize the cosmic ray in a plane. The combination of these detectors allows the system to generate a precise track for incoming cosmic rays. My primary responsibility for this project was building the software that did the actual data collection, and passed the retrieved data along to the user interface components that did the analysis and display.

Audio processing

The DSP laboratory course I taught for several years put me in charge of student projects in several areas of audio processing. As a result, I have extensive experience with audio processing in both C and assembly on TI TMS320C54 and Motorola 56000-series DSP microprocessors. Examples of student projects have included Dolby audio decoding, adaptive noise cancellation, beam forming, speech recognition, and audio effects. In addition, students also worked on non-audio related projects, such as modems. In addition to supervision of student projects and teaching, I also assisted with curriculum design and was primarily responsible for the creation of the "core" hardware-interface code for the audio engine and serial port on the TMS320C54 evaluation board used by the students in the class.

Internships

I did four summer internships during my education. At Motorola Cellular Infrastructure Group in 1998, I assisted in the porting of cellular voice codecs to a 3G development platform, which required significant changes in its internal architecture to port from a 16-bit to a 24-bit architecture. At Inter Microprocessor Research Laboratory in 2000, I developed a hybrid-ARQ scheme for data transmission over unreliable 802.11 wireless networks; this work was expanded by another intern and written up in the journal publication "Multicast and unicast real-time video streaming over wireless LANs." At MIT Lincoln Laboratories in 2002, I developed and tested wireless sensor node hardware built on PC104 embedded PC hardware and Linux operating system with an 802.11b network and audio sensing capabilities. As part of this work, I worked on a geocentric network routing protocol called DRP, or "Declarative Routing Protocol;" I was responsible for porting the implementation of this protocol on the experimental wireless sensor network, as well as testing and correcting implementation flaws. Finally, at the University of Tokyo in 2003, I worked on software for the U3 wireless sensor node project. I primarily worked on power management, working on ways to improve the power consumption of the nodes when idle while still supporting their primary sensing goals.


Daniel Grobe Sachs (dgsachs@nekito.net) - 05 May 2006