Modern Embedded Computing: Designing Connected, Pervasive, Media-Rich Systems provides a thorough understanding of the platform architecture of modern embedded computing systems that drive mobile devices. The book offers a comprehensive view of developing a framework for embedded systems-on-chips. Examples feature the Intel Atom processor, which is used in high-end mobile devices such as e-readers, Internet-enabled TVs, tablets, and net books.
This is a unique book in terms of its approach – moving towards consumer. It teaches readers how to design embedded processors for systems that support gaming, in-vehicle infotainment, medical records retrieval, point-of-sale purchasing, networking, digital storage, and many more retail, consumer and industrial applications. Beginning with a discussion of embedded platform architecture and Intel Atom-specific architecture, modular chapters cover system boot-up, operating systems, power optimization, graphics and multi-media, connectivity, and platform tuning. Companion lab materials complement the chapters, offering hands-on embedded design experience.
This text will appeal not only to professional embedded system designers but also to students in computer architecture, electrical engineering, and embedded system design.
- Learn embedded systems design with the Intel Atom Processor, based on the dominant PC chip architecture. Examples use Atom and offer comparisons to other platforms
- Design embedded processors for systems that support gaming, in-vehicle infotainment, medical records retrieval, point-of-sale purchasing, networking, digital storage, and many more retail, consumer and industrial applications
- Explore companion lab materials online that offer hands-on embedded design experience
|Sold by:||Barnes & Noble|
|File size:||7 MB|
About the Author
Patrick Crowley is an associate Professor in the Department of Computer Science&Engineering at Washington University in St. Louis, Missouri. His research interests are in computer and network systems architecture, with a current focus on the design of programmable embedded network systems and the invention of superior network monitoring and security techniques. He co-founded the ACM/IEEE Symposium on Architectures for Networking and Communications Systems, and co-edited the three-book series, Network Processor Design. He serves as Associate Editor of the IEEE/ACM Transactions on Networking. In 2007, Crowley was chosen to join the DARPA Computer Science Study Group.
Read an Excerpt
Modern Embedded ComputingDesigning Connected, Pervasive, Media-Rich Systems
By Peter Barry Patrick Crowley
Morgan KaufmannCopyright © 2012 Elsevier Inc.
All right reserved.
Chapter OneEmbedded Systems Landscape
We are in the midst of an extraordinary technology transformation. Most classes of electronic devices will soon be Internet-accessible with software-defined feature sets—not just computers and mobile phones, but nearly all forms of electronics. In other words, most classes of electronics are becoming embedded computer systems, and the consequences of this transition will be substantial.
This trend can be seen plainly in current commercial offerings, across a wide range of product types, where most new product lines are built around processor-based integrated circuits that enable Internet connectivity. Consider the following examples.
Consumer electronics. The most competitive and innovative categories of consumer electronics—examples include high-definition television sets, digital cameras, video game consoles, and media players—are all designed around processor-based systems-on-a-chip and rely on Internet connectivity.
Telephony. From mobile handsets designed primarily to connect to cellular access networks, to VoIP phones that enable not only voice calls, but also instant messaging, video chat, and integration with social network contacts, most modern telephony platforms are designed to be extensible through software feature sets. Moreover, they are increasingly designed to connect opportunistically to a user's network of choice.
In-vehicle information systems. Today's onboard automotive information systems provide compelling applications such as GPS navigation, rear/obstructed view cameras, voice communications, and audio/video playback in an integrated fashion.
For the embedded systems programmer, the consequences of this trend are considerable. Foremost, there will be a great many more embedded computer systems in the future than there have been in the past, so skilled designers and programmers have a future of stable employment ahead of them. From a technical perspective, the nature of embedded systems design is changing to reflect the large numbers of systems that are connected and have rich media interfaces. The vast majority of embedded developers have been trained with 8-bit microcontrollers in mind, and the world has clearly moved on.
In this book, you will explore the design of modern embedded computer systems and learn many of the principles and skills needed to develop and program them effectively.
Our goal in this chapter is to establish the appropriate context. The world of embedded systems is vast and changing rapidly, so we will begin by sharing our view on what modern embedded systems are all about, and why their importance and popularity have been increasing so dramatically.
WHAT IS AN EMBEDDED COMPUTER SYSTEM?
Embedded systems are computers with constraints. While the design of all engineered devices involves trade-offs to some degree, general-purpose computers have historically been designed with comparatively few constraints. Since general-purpose computers are the most widely understood class of computing systems, it is instructive to compare and contrast their constraints with those of embedded systems. Indeed, embedded computer systems are different, both from one another and from general-purpose systems, by virtue of the design trade-offs and constraints they embody.
In particular, embedded computer systems have distinctive constraints with respect to intended applications and form factors, power, system resources and features, and assumptions about user behavior.
Applications and Form Factors
Unlike general-purpose machines, embedded systems are typically designed for one target application, or class of target applications. The intended use of an embedded computer system drives many of its design constraints and tradeoffs.
The size and physical form factor are often a natural consequence of a system's intended use. For example, continuously tethered medical devices, worn by patients, have shape and weight constraints that follow from the human body and its movements. Mobile handsets, by convention, are sized to fit in a (sometimes large) pocket. And embedded networking devices, such as wireless access points, are typically larger than human-centric devices, but have size and shape constraints of their own.
A system's intended use defines its physical packaging constraints, and many other design constraints follow from these. Notably, embedded computer systems have required a higher degree of system-level integration—that is, the integration of system-wide functionality onto one or a small number of semiconductor devices—in order to meet tight size, cost, and power constraints.
In embedded and general-purpose systems alike, power has become the predominant design constraint. In general-purpose systems, such as laptops and servers, power dissipation limits, expressed in terms of thermal design power (TDP), have ranged from tens to hundreds of watts, respectively. Relative to embedded systems, general-purpose platforms support a comparatively small number of ranges of TDP, which have evolved over time subject to the operational context of each particular platform. Laptop TDPs are largely a consequence of an expected battery life of between 4 and 8 hours; modern server TDPs are a consequence of the power density per unit volume that machine rooms and data centers are provisioned to dissipate (which were, in turn, based on the TDP of the previous generations of server equipment).
For the most part, embedded systems have considerably lower-power design points, ranging from a few watts to microwatts. While some high-performance contexts, such as network routers and telecommunications equipment, have power profiles more or less the same as servers, most embedded computer systems are designed to operate in smaller spaces, often on battery power, and without the benefit of mechanical heat dissipation mechanisms such as fans or other forms of active cooling.
As a result, embedded computer systems have historically been designed with comparatively aggressive dynamic power management mechanisms. In recent years, however, dynamic power management in general-purpose CPUs has become sophisticated, with the goal of switching between high-performance, high-power modes and low-performance, low-power modes without disturbing either user-perceived latency or system performance on marketing-oriented industry benchmarks.
Relative to the general-purpose scenarios, embedded computer systems exhibit a much more heterogeneous array of power design perspectives. As will be discussed in greater detail later, embedded computer systems span a wide range of use cases, from high-performance systems to battery-operated systems designed to operate in wireless sensor applications for years with a single battery.
As such, embedded computer systems rely on power management schemes and features that vary with the target application.
System Resources and Features
General-purpose and embedded computer systems differ most in the variability of system resources and features rather than in their quantity. Embedded computer systems are typically designed and deployed with a relatively static and predetermined set of system resources and features.
This fact simplifies systems software and certain system processes, such as booting the system or diagnosing problems. For example, the boot process for an IA-32-based general-purpose computer, and the design of the software that implements that process, must be organized to contend with an unpredictable set of memory and I/O resources when the system starts. This resource uncertainty is not present in most embedded computer systems; hence, embedded system boot processes are shorter and simpler.
General-purpose computers enjoy generous assumptions about the behavior of users. In fact, few classes of electronics have a user profile more convenient than that of the computer user. Outside of microwave ovens and A/V remote controls, few electronics products place such a substantial burden on the user to work around system problems and inefficiencies. While the user experience has improved dramatically in recent years, the typical computer user is prepared to experience routine system failures, frequently reinstall or update software packages, experience compatibility problems following installations and updates, wait patiently for inexplicable hourglasses to disappear, and, generally speaking, learn a great deal about how to use the system and cope with its deficiencies.
On the other hand, most embedded systems have a much narrower range of assumptions about user behavior. Most embedded systems are parts of devices or infrastructure and are expected to function reliably and deterministically. Users expect devices such as media players and telephones to respond without any latency. Infrastructure and industrial equipment are often designed to reliably honor service-level agreements. These tighter usage requirements impact systems software and overall system feature selection, as we will discuss in detail in later chapters.
WHY IS THIS TRANSITION INEVITABLE?
Of course, in this day and age, it is easy for many to accept without argument that all electronics will be connected and software based. But why is this so? Does my light switch need an IP address? Isn't it hard to write bug-free software? So why pollute the everyday reliability of traditional electronics with unpredictable software bugs?
Perhaps the most persuasive explanation comes not from a technical perspective but from considering some of the business dynamics that influence electronic product development. Technological progress in the presence of genuine commercial competition demands that, over time, new products increase in value while maintaining, or reducing, the price for those products. In the computer business, for example, it is easy to see that average sales price points have been declining over time as performance has increased. New products must, quite literally, do more for less. (Why? Because if you do not offer new features at better prices, then your competitors will put you out of business.)
How is this economically sustainable? This trend—doing more for less—is only economically sustainable if new features can be developed and deployed profitably, that is, if new features can be developed and added at an aggregate cost that is less than the increase in revenue that results from the new features. In business terms, profitability is a synonym for economic sustainability.
How can new features be developed profitably in a context of declining prices? In a word: reuse! Reuse the results of prior development to lower or eliminate the cost of future development. And no technology enables reuse quite like software.
If past development investments can be amortized into the future, across future product generations, then marginal investments can fund feature development. This is precisely what software enables under ideal circumstances. A software-based, extensible product core enables past development effort to be amortized across future offerings, while enabling the cost-effective development of new features and services. Software-defined feature sets enable electronics of all kinds to exhibit qualitatively superior cost savings relative to hardware-based feature sets.
And what about deploying new features? This is an important aspect of Internet connectivity. As an example, consider that recent generations of set-top boxes and game consoles have demonstrated the dramatic effectiveness of being able to enable new features in deployed systems.
As of January 2010, all three of the major current-generation video game consoles provide access to the Netflix video streaming service via the Internet. However, none of these platforms initially shipped with this capability, nor, apparently, had any business arrangements between Netflix and the console vendors been made or discussed during the console design phases. With Internet connectivity and a software-based feature set, there is no need to work out all such arrangements in advance of the deployment of the hardware; such agreements can be made and enacted according to the flow of business, provided that the platform has a software-defined feature set with Internet connectivity.
Excerpted from Modern Embedded Computing by Peter Barry Patrick Crowley Copyright © 2012 by Elsevier Inc.. Excerpted by permission of Morgan Kaufmann. All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.
Table of Contents
PART 1 PRINCIPLES OF MODERN EMBEDDED SYSTEMS
1 Embedded Systems Landscape
2 Attributes of Embedded Systems
3 The Future of Embedded Systems
PART 2 EMBEDDED SYSTEMS ARCHITECTURE AND OPERATION
4 Embedded Platform Architecture
5 Embedded Processor Architecture
6 Embedded Platform Boot Sequence
7 Operating Systems Overview
8 Embedded Linux
9 Power Optimization
10 Embedded Graphics and Multimedia Acceleration
11 Digital Signal Processing Using General-Purpose Processors
12 Network Connectivity
13 Application Frameworks
14 Platform and Content Security
15 Advanced Topics: SMP, AMP, and Virtualization
PART 3 DEVELOPING AN EMBEDDED SYSTEM
16 Example Designs
17 Platform Debug
18 Performance Tuning