CHALLENGES IN EMBEDDED COMPUTING SYSTEM DESIGN
following external constraints are one important source of difficulty in
embedded system Design.
ü How much hardware do we need?
We have a
great deal of control over the amount of computing power we apply to our
problem. We cannot only select the type of microprocessor used, but also select
the amount of memory, the peripheral devices, and more. If too little hardware
and the system fails to meet its deadlines, too much hardware and it becomes
ü How do we meet deadlines?
entirely possible that increasing the CPU clock rate may not make enough
difference to execution time, since the program’s speed may be limited by the
ü How do we minimize power consumption?
battery-powered applications, power consumption is extremely important. Even in
non- battery applications, excessive power consumption can increase heat
dissipation. One way to make a digital system consume less power is to make it
run more slowly, but naively slowing down the system can obviously lead to
ü How do we design for upgradability?
hardware platform may be used over several product generations or for several
different versions of a product in the same generation, with few or no changes.
ü Does it really work?
is always important when selling products—customers rightly expect that
products they buy will work.
sources that make the design so difficult are:
testing: Exercising an embedded system is
generally more difficult than typing in some data. The timing of data is often
important, meaning that we cannot separate the testing of an embedded computer
from the machine in which it is embedded.
observability and controllability: Embedded computing systems
usually do not come with keyboards and screens. This makes it more difficult to
see what is going on and to affect the system’s operation. We may be forced to
watch the values of electrical signals on the microprocessor bus, for example,
to know what is going on inside the system. Moreover, in real-time applications
we may not be able to easily stop the system to see what is going on inside.
development environments: The
development environments for embedded systems (the tools used to develop
software and hardware) are often much more limited than those available for PCs