Embedded System Components Notes 1
Embedded System Components Notes 1
Robert Oshana
Engineering Manager
Texas Instruments
[email protected]
Overview of embedded systems
An embedded system is a specialized computer system that is part of a larger system or
machine. Embedded systems can also be thought of as information processing
subsystems integrated in a larger system. As part of a larger system it largely determines
its functionality. An embedded system usually contains an embedded processor. Many
appliances that have a digital interface -- microwaves, VCRs, cars -- utilize embedded
systems. Some embedded systems include an operating system. Others are very
specialized resulting in the entire logic being implemented as a single program. These
systems are embedded into some device for some specific purpose other than to provide
general purpose computing . A typical embedded system is shown in Figure 1.
There are over 3 billion embedded CPUs sold each year. Embedded CPUs are growing at
a faster rate than desktop processors (Figure 2). A large part of this growth is in smaller
(4-, 8-, and 16-bit) CPUs and DSPs.
Microprocessors annually sold
General purpose
computers
(PCs, workstations, 95%
mainframes)
5%
Embedded systems
(portable phones, cam-
corders, washing mach.)
• Monitor the environment; embedded systems read data from input sensors. This
data is then processed and the results displayed in some format to a user or users
• Control the environment; embedded systems generate and transmit commands for
actuators.
• Transform the information; embedded systems transform the data collected in
some meaningful way, such as data compression/decompression
Although interaction with the external world via sensors and actuators is an important
aspect of embedded systems, these systems also provide functionality specific to their
applications. Embedded systems typically execute applications such as control laws,
finite state machines, and signal processing algorithms. These systems must also detect
and react to faults in both the internal computing environment as well as the surrounding
electromechanical systems.
Real-time
control system
There are many categories of embedded systems, from communication devices to home
appliances to control systems. Examples include;
• Communication devices
o modems, cellular phones
• Home Appliances
o CD player, VCR, microwave oven
• Control Systems
o Automobile anti-lock braking systems, robotics, satellite control
Reactive Systems
As mentioned earlier, a typical embedded systems model responds to the environment via
sensors and control the environment using actuators. This requires embedded systems to
run at the speed of the environment. This characteristic of embedded system is called
“reactive”. Reactive computation means that the system (primarily the software
component) executes in response to external events. External events can be either
periodic or aperiodic. Periodic events make it easier to schedule processing to guarantee
performance. Aperiodic events are harder to schedule. The maximum event arrival rate
must be estimated in order to accommodate worst case situations. Most embedded
systems have a significant reactive component. One of the biggest challenges for
embedded system designers is performing an accurate worst case design analysis on
systems with statistical performance characteristics (e.g., cache memory on a DSP or
other embedded processor). Real time system operation means that the correctness of a
computation depends, in part, on the time at which it is delivered. Systems with this
requirement must often design to worst case performance. But accurately predicting the
worst case may be difficult on complicated architectures. This often leads to overly
pessimistic estimates erring on the side of caution. Many embedded systems have a
significant requirement for real time operation in order to meet external I/O and control
stability requirements. Many real-time systems are also reactive systems.
Distributed Systems
A common characteristic of an embedded system is one that consists of communicating
processes executing on several CPUs or ASICs which are connected by communication
links. The reason for this is economy. Economical 4 8-bit microcontrollers may be
cheaper than a 32-bit processors. Even after adding the cost of the communication links,
this approach may be preferable. In this approach, multiple processors are usually
required to handle multiple time-critical tasks. Devices under control of embedded
systems may also be physically distributed.
Heterogeneous Architectures
Embedded systems often are composed of heterogeneous architectures (Figure 4). They
may contain different processors in the same system solution. They may also be mixed
signal systems. The combination of I/O interfaces, local and remote memories, and
sensors and actuators makes embedded system design truly unique. Embedded systems
also have tight design constraints, and heterogeneity provides better design flexibility.
RAM
CPU ASIC TPU DSP
RAM I/O
Harsh environment
Many embedded systems do not operate in a controlled environment. Excessive heat is
often a problem, especially in applications involving combustion (e.g., many
transportation applications). Additional problems can be caused for embedded computing
by a need for protection from vibration, shock, lightning, power supply
fluctuations, water, corrosion, fire, and general physical abuse. For example, in the
Mission Critical example application the computer must function for a guaranteed,
but brief, period of time even under non-survivable fire conditions. These constraints
present a unique set of challenges to the embedded system designer, including accurately
modeling the thermal conditions of these systems.
Cost sensitivity
Cost is an issue in most systems, but the sensitivity to cost changes can vary dramatically
in embedded systems. This is mainly due to the effect of computer costs have on
profitability and is more a function of the proportion of cost changes compared to the
total system cost.
Power management
Embedded systems have strict constraints on power. Given the portability requirements
of many embedded systems, the need to conserve power is important to maintain battery
life as long as possible. Minimization of heat production is another obvious concern for
embedded systems.
• Functional Requirements
• Temporal Requirements (Timeliness)
• Dependability Requirements
Functional Requirements
Functional requirements describe the type of processing the system will perform. This
processing varies, based on the application. Functional requirements include the
following;
Temporal Requirement
Embedded systems have many tasks to perform, each having its own deadline. Temporal
requirements define the stringency in which these time-based tasks must complete.
Examples include;
Temporal requirements can be very tight (for example control-loops ) or less stringent
(for example response time in a user interface).
Dependability Requirements
Most embedded systems also have a set of dependability requirements. Examples of
dependability requirements include;
o Probability of failure on demand; likelihood that the system will fail when
a service request is made.
o Rate of failure occurrence; frequency of occurrence with which
unexpected behavior is likely to occur.
o Mean Time to Failure; the average time between observed system failures.
• Safety; describe the critical failure modes and what types of certification are
required for the system
• Availability; the probability that the system is available for use at a given time.
Availability is measured as;
• Security; these requirements are often specified as “shall not” requirements that
define unacceptable system behavior rather than required system functionality.
Correctness of a computation depends not only upon its results but also upon the time at
which its outputs are generated A real-time system must satisfy bounded response time
constraints or suffer severe consequences. If the consequences consist of a degradation
of performance, but not failure, the system is referred to as a soft real-time system (e.g.
time adjusting system on computers over the network) If the consequences are system
failure, the system is referred to as a hard real-time system. (e.g. emergency patient
management system in hospitals).
There are two types of real-time systems: reactive and embedded. Reactive real-time
system involves a system that has constant interaction with its environment. (e.g. a pilot
controlling an aircraft). An embedded real-time system is used to control specialized
hardware that is installed within a larger system. (e.g. a microprocessor that controls the
fuel-to-air mixture for automobiles).
environment
Real-Time
inputs System outputs
(state)
•Defense systems
•Telecommunication systems
•Automotive control
•Signal processing systems
•Radar systems
•Automated manufacturing systems
•Air traffic control
•Satellite systems
•Electrical utilities
• Asynchronous events are entirely unpredictable. For example, the event that a user
makes a telephone call. As far as the telephone company is concerned, the action
of making a phone call cannot be predicted.
• Synchronous events are predictable and occur with precise regularity if they are to
occur. For example, the audio and video in a movie take place in synchronous
fashion.
• Isochronous events occur with regularity within a given window of time. For
example, audio bytes in a distributed multimedia application must appear within a
window of time when the corresponding video stream arrives. Isochronous is a
sub-class of asynchronous.
Real-time systems are different from time shared systems in several ways (Table 1)
Table 1 Real-time systems are fundamentally different than time shared systems
A mathematical model of this system is based on first order differential equations. The
output of the system is linked to the internal state of the system and its input variables. A
real-time requirement of this system is to move to a new point set within a fixed time
period. This adds to the complexity of the computations. This is one reason real-time
systems can be so complex.
Real-time Facilities
As we have been discussing, response time is crucial to any embedded system. It is very
difficult to design and implement systems which will guarantee the appropriate output
will be generated at the appropriate times under all possible conditions. Doing this and
making use of all computing resources at all times is often impossible.
Real-time systems usually constructed using processors with considerable space capacity.
This ensures worst case behavior does not produce any unwelcome delays during critical
periods of the systems operation. The designer, however, must be cognizant of weight
and power issues!
Given adequate processing power, a good real-time programming language, and run-time
support is required to enable the programmer;