As the post-PC era emerges, several new niches of computer system design are taking shape with characteristics that are quite different from traditional desktop and server regimes. One of the most interesting of these new design regimes is networked sensors. The networked sensor is enabled, in part, by "Moore's Law" pushing computing and storage into a smaller, cheaper, lower-power unit. However, three other trends are equally important: complete systems on a chip, integrated low-power communication, and integrated low-power devices that interact with the physical world. The combination of these technologies makes it possible to envision tiny, autonomous, devices that interact with the physical world andcommunicate information back to traditional computers. This communication may take the form of wired, short-range RF, infrared, optical, or various techniques [18]. The sensors interact with various fields and forces to detect light, heat, position, movement, chemical presence, and so on. In each of these areas, the technology is crossing a critical threshold that makes networked sensors an exciting regime to apply systematic design methods.
Today, networked sensors can be constructed using commercial components on the scale of a square inch in size and a fraction of a watt in power, using one or more microcontrollers connected to various sensor devices, using I2C, SPI, or device specific protocols, and to small transceiver chips. One such sensor is described in this study. However, many researchers envision driving the networked sensor down into microscopic scales by integrating communication and micro-electrical mechanical (MEMS) devices on chip [46, 5]. These networked sensors will be integrated into their physical environment, perhaps even powered by ambient energy [35], and used in many smart space scenarios. Alternatively, others see the benefits of dramatically ramping up the power associated with one-inch devices. We envision these devices being deployed in large numbers, with the ability to assist each other to communicate data back to a centralized collection point. Other research projects [46, 5] are advancing the physical hardware technology that is enabling these de2 vices. However, A critical step towards achieving this goal of cooperative mini-devices is the design of a software architecture that bridges the gap between raw hardware capabilities and a useful system. The demands here are numerous. It must be effcient in terms of memory, processor, and power requirements so that it falls within the constraints of the hardware. It must also be agile enough to allow multiple applications to simultaneously use system resources such as communication, computation and memory. The extreme constraints of these devices makes it impractical to use legacy systems.
This paper provides an initial exploration of software architectures for networked sensors. The investigation is grounded in a prototype "current generation" device constructed from off-the-shelf components. We have developed a tiny microthreaded OS, called TinyOS, on the prototype platform which allows application developers exploit the capabilities of emerging hardware. It draws strongly on previous architectural work on lightweight thread support and effcient network interfaces. Included in the TinyOS system architecture is an Active Messages communication system. We believe that there is a fundamental fit between the event based nature of network sensor applications and the event based primitives of the Active Messages communication model. It is a framework that handles the limitations of these devices, yet provides a powerful programming environment capable of supporting a wide space of concurrent applications.
To demonstrate the functionality of both the operating system and the communication model, we have a data collection application where sensors can be spread through out the environment and automatically configure themselves to report information back to a centralized location. It is an ad-hoc networking application built on top of the Active Message primitives that performs automatic topology discovery and data collection from the autonomous nodes. Individual nodes assist each other in communicating data back to the base station. We believe that this scenario is representative of real-world usage scenarios for networked sensors.
While working in this design regime two issues emerge strongly: these devices are concurrency intensive - several different ows of data must be kept moving simultaneously, and the system must provide effcient modularity - hardware specific and application specific components must snap together with little processing and storage overhead. We address these two problems in the context of current network sensor technology and our tiny microthreaded OS. Analysis of this solution provides valuable initial directions for architectural innovation.
Section 2 outlines the design requirements that characterize the networked sensor regime and guide our micro threading approach. Section 3 describes our baseline, currenttechnology hardware design point. Section 4 develops our TinyOS for devices of this general class. Section 5 presents a overview tiny Active Messages implementation. Section 6 describes