Articles
Embedded computing and engineering
Large-scale Incremental Processing Using Distributed Transactions and Notifications
Download: Large-scale Incremental Processing Using Distributed Transactions and Notifications
Authors: Daniel Peng and Frank Dabek, dpeng@google.com, fdabek@google.com, Google, Inc.
Abstract: Updating an index of the web as documents are crawled requires continuously transforming a large repository of existing documents as new documents arrive. This task is one example of a class of data processing tasks that transform a large repository of data via small, independent mutations. These tasks lie in a gap between the capabilities of existing infrastructure. Databases do not meet the storage or throughput requirements of these tasks: Google’s indexing system stores tens of petabytes of data and processes billions of updates per day on thousands of machines. MapReduce and other batch-processing systems cannot process small updates individually as they rely on creating large batches for efficiency. …
What Is Embedded Computing?
Download: What Is Embedded Computing?
Authors: Wayne Wolf, Princeton University
Abstract: For those who think a lot about embedded computing, as well as the uninitiated, it’s important to define exactly what the term means. In brief, an embedded system is any computer that is a component in a larger system and that relies on its own microprocessor. But is embedded computing a field or just a fad? The purpose of this new bimonthly column is to give researchers as well as practitioners an opportunity to demonstrate that embedded computing is an established engineering discipline with principles and knowledge at its core.
A LONG HISTORY
People have been building embedded systems—including complex systems— for decades. The early microprocessors were so limited that calling what they did “computing” is generous; their primary function was to manage inputoutput devices, and squeezing performance out of these systems required more craft than science. …
Using NI CompactRIO to Design a Maximum Power Point Tracking Controller for Solar Energy Applications
Authors: National Instruments
Abstract: Solar cells have an optimization point, known as the maximum power point, where the power transfer from the cell to the load is optimal. This maximum power point varies with environmental conditions such as the temperature and amount of sunlight illumination. If the output voltage of the solar array is fixed, the maximum power output cannot be continuously generated. We use maximum power point tracking (MPPT) algorithms to increase the overall power generation efficiency by continuously locating and tracking the maximum power point by adjusting the voltage output of the array using a DC to DC converter. MPPT techniques reduce PV array system costs by reducing the number of solar panels needed to obtain a given amount of output power. To improve the control design of solar cell MPPT, we developed an MPPT system that fits a quadratic equation to the power-voltage curve of the cell and calculates the maximum value of the quadratic function to locate the maximum power point. The system must produce high-speed pulse-width modulation (PWM) signals to control the voltage converter and provide high-speed data acquisition. In addition, we wanted to develop a portable, embedded maximum power point calculation system to ship for future applications. …
Embedded Linux Primer: A Practical, Real-World Approach
Download: Embedded Linux Primer: A Practical, Real-World Approach
Authors: Christopher Hallinan
Abstract: Comprehensive Real-World Guidance for Every Embedded Developer and Engineer This book brings together indispensable knowledge for building efficient, high-value, Linux-based embedded products: information that has never been assembled in one place before. Drawing on years of experience as an embedded Linux consultant and field application engineer, Christopher Hallinan offers solutions for the specific technical issues you're most likely to face, demonstrates how to build an effective embedded Linux environment, and shows how to use it as productively as possible. Hallinan begins by touring a typical Linux-based embedded system, introducing key concepts and components, and calling attention to differences between Linux and traditional embedded environments. Writing from the embedded developer's viewpoint, he thoroughly addresses issues ranging from kernel building and initialization to bootloaders, device drivers to file systems. Hallinan thoroughly covers the increasingly popular BusyBox utilities; presents a step-by-step walkthrough of porting Linux to custom boards; and introduces real-time configuration via CONFIG_RT–one of today's most exciting developments in embedded Linux. You'll find especially detailed coverage of using development tools to analyze and debug embedded systems–including the art of kernel debugging. Compare leading embedded Linux processors Understand the details of the Linux kernel initialization process Learn about the special role of bootloaders in embedded Linux systems, with specific emphasis on U-Boot Use embedded Linux file systems, including JFFS2–with detailed guidelines for building Flashresident file system images Understand the Memory Technology Devices subsystem for flash (and other) memory devices Master gdb, KGDB, and hardware JTAG debugging Learn many tips and techniques for debugging within the Linux kernel Maximize your productivity in cross-development environments Prepare your entire development environment, including TFTP, DHCP, and NFS target servers Configure, build, and initialize BusyBox to support your unique requirements … :pdfs:white-papers:embedded-linux-primer.pdf
Embedded, Everywhere: A Research Agenda for Networked Systems of Embedded Computers
Download: Embedded, Everywhere: A Research Agenda for Networked Systems of Embedded Computers
Authors: Committee on Networked Systems of Embedded Computers, National Research Council
Abstract: Continued advances in information technologies are enabling a growing number of physical devices to be imbued with computing and communications capabilities. Aircraft, cars, household appliances, cellular telephones, and health monitoring devices all contain microprocessors that are being linked with other information processing devices. Such examples represent only the very beginning of what is possible. As microprocessors continue to shrink, wireless radios are also becoming more powerful and compact. As the cost of these and related technologies continues to decrease, computing and communications technologies will be embedded into everyday objects of all kinds to allow objects to sense and react to their changing environments. Networks comprising thousands or millions of sensors could monitor the environment, the battlefield, or the factory floor; smart spaces containing hundreds of smart surfaces and intelligent appliances could provide access to computational resources. Getting to this point will not be easy. Networks of embedded computers pose a host of challenges qualitatively different from those faced by more traditional computers or stand-alone embedded computers because they will be more tightly integrated with their physical environments, more autonomous, and more constrained in terms of space, power, and other resources. They will also need to operate, communicate, and adapt in real time, often unattended. Enabling such innovation will require that a number of research challenges be overcome. How can large numbers of embedded computing devices assemble themselves seamlessly into an integrated network? How can their performance be guaranteed? How can social issues raised by the advent of more pervasive information collection and processing—for example, concerns about privacy, robustness, and usability—be addressed? …
Efficient Embedded Computing
Download: Efficient Embedded Computing
Authors: William J. Dally, James Balfour, David Black-Shaffer, James Chen, R. Curtis Harting, Vishal Parikh, Jongsoo Park, and David Sheffield, Stanford University
Abstract: Hardwired ASICs—50X more efficient than programmable processors—sacrifice programmability to meet the efficiency requirements of demanding embedded systems. Programmable processors use energy mostly to supply instructions and data to the arithmetic units, and several techniques can reduce instruction- and data-supply energy costs. Using these techniques in the Stanford ELM processor closes the gap with ASICs to within 3X.
Embedded computing applications demand both efficiency and flexibility: The bulk of computation today happens not in desktops, laptops, or data centers, but rather in embedded media devices. More than one billion cell phones are sold each year, and a 3G cell phone performs more operations per second than a typical desktop CPU. …