0% found this document useful (0 votes)
17 views

ES Overview

The document provides a comprehensive overview of embedded systems, detailing their definitions, characteristics, applications, and historical development. It emphasizes the increasing reliance on embedded systems in daily life and their specific design requirements for performance, power efficiency, and real-time operation. Additionally, it outlines various examples and applications across different industries, highlighting the significance of embedded systems in modern technology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

ES Overview

The document provides a comprehensive overview of embedded systems, detailing their definitions, characteristics, applications, and historical development. It emphasizes the increasing reliance on embedded systems in daily life and their specific design requirements for performance, power efficiency, and real-time operation. Additionally, it outlines various examples and applications across different industries, highlighting the significance of embedded systems in modern technology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 167

Embedded Systems

By
M. Mahesh Babu
Outline
• Embedded Systems Overview
– Computer Essentials
• Some Examples of Embedded Systems
• Definition of Embedded System
• How an Embedded System Works
• A “short list” of embedded systems-Applications
• History of Embedded Systems
• Future Trends in Embedded Systems
• Block diagram of Embedded Systems
– Microprocessors and Microcontrollers, DSP, ASIC, SOC
Embedded systems overview
• Our day to day life is becoming more and more dependent on
“embedded systems” and digital techniques.
• Embedded technologies are bonding into our daily activities even
without our knowledge.
• people experience the power of embedded systems and enjoy the
features and comfort provided them.
• The computing revolution began with the general purpose computing
requirements. Later it was realised that the general purpose
computing requirements are not sufficient for embedded computing
requirements.
• The embedded computing requirements demand ‘something special’
in terms of response to stimuli, meeting the computational deadlines,
power efficiency, limited memory availability, etc.
Embedded systems overview
• Computing systems are everywhere
• Most of us think of “desktop” computers
– PC’s
– Laptops
– Mainframes
– Servers
• But there’s another type of computing system
– Far more common...
Embedded systems overview
• Embedded computing systems
– Computing systems embedded within electronic
devices
– Hard to define. Nearly any computing system
other than a desktop computer
– Billions of units produced yearly, versus millions of
desktop units
– Perhaps 50 per household and per automobile
Some Examples of embedded system

Medical
Automotive

Communications
Military

Comsumer Industrial
Some Examples of embedded system
Some Examples of embedded system
Some Examples of embedded system
What is Embedded System?
• An embedded system is a special-
purpose system in which the
computer is completely encapsulated
by the device it controls.
• An embedded system performs pre-
defined tasks, usually with very
specific requirements.
• Mobile phones, MP3 Players, Digital
Cameras are very common
embedded systems in our life.
What is Embedded System?
• Since the system is dedicated to a specific task,
design engineers can optimize it and reduce
the size and cost of the product.
• Power Constrain, Performance requirements.
• Embedded systems are often mass-produced,
so the cost savings may be multiplied by
millions of items.
Embedded System Definitions:
• Embedded system: is a system whose principal function is not
computational, but which is controlled by a computer embedded within it.
• It is an Electronic/Electro-mechanical system designed to perform a specific
function and is a combination of both hardware & software.
OR
• A combination of hardware and software which together form a component
of a larger machine.
• An embedded system is designed to run on its own without human
intervention, and may be required to respond to events in real time.
• An example of an embedded system is a microprocessor that controls an
automobile engine.
• In simple words, Embedded System = (Hardware + Software) dedicated for a
particular task with its own memory.
What makes embedded systems different?

• Real-time operation
• size
• cost
• time
• reliability
• safety
• energy
• security
Block diagram of Embedded System
How an Embedded System Works
• Embedded systems are managed by microcontrollers or
digital signal processors (DSP), application-specific integrated
circuits (ASIC), field-programmable gate arrays (FPGA), GPU
technology, and gate arrays. These processing systems are
integrated with components dedicated to handling electric
and/or mechanical interfacing.
• Embedded systems programming instructions, referred to as
firmware, are stored in read-only memory or flash memory
chips, running with limited computer hardware resources.
• Embedded systems connect with the outside world through
peripherals, linking input and output devices.
Selection of processor for an embedded
system
• The selection of a processor is not an easy task for an
embedded system.
• It is not possible to simply select a processor from
your favourite list.
• Several factors are to be considered while selecting a
processor for an embedded system.
• Because embedded systems are designed to operate
in different climatic conditions, critical environments,
etc.
• Depending on the type of applications, the necessary
performance, power constraints, special processing,
modern technology, etc, the processor is selected.
• There are different types of embedded
processors available in the market.
• The selection of embedded processor should
enhance the user experience by reducing the chance
of poor speed, system overheating, insufficient
memory, etc.
1. Computer: A computer is a combination of hardware and software resources that
integrate together and provides various functionalities to the user.
2. Embedded Device : An embedded device is a part of an integrated system that is
formed as a combination of computer hardware and software for a specific function
and which can operate without human interaction.
Criteria General Purpose Embedded System
Computing System
Content
Operating System
Change
Key Factor
Power Consumption
Response time
Examples
Comparison
EMBEDDED SYSTEMS (VS) GENERAL COMPUTING SYSTEMS
Applications of Embedded Systems (1)
Following are an important application of Embedded system:
• Consumer Electronics
– Camcorders, Cameras, etc…
• Household Appliances
– Television, DVD Player, Washing machine, fridge, microwave oven, etc.
• Home automation and security system
– Air conditioners, Sprinkler, intruder detection alarms, fire alarms, closed
circuit television cameras, etc
• Automotive industry
– Anti-lock breaking system (ABS), engine control, ignition control,
automatic navigation system, etc..
• Telecommunication
– Cellular telephones, telephone switches, Router, etc…
Applications of Embedded Systems (2)
• Computer peripherals
– Printers, scanners, fax machines, etc…

• Computer Networking systems


– Network routers, switches, hubs, firewalls, etc…

• Healthcare
– CT scanner, ECG, EEG, EMG, MRI, Glucose monitor, blood pressure monitor, medical
diagnostic device,etc.

• Measurement & Instrumentation


– Digital multimeters, digital CROs, logic analyzers PLC systems, etc…

• Banking & Retail


– Automatic Teller Machine(ATM) and Currency counters, smart vendor machine, etc..

• Card Readers
– Barcode, smart card readers, hand held devices, etc…
A “short list” of embedded systems
Anti-lock brakes Modems
Auto-focus cameras MPEG decoders
Automatic teller machines Network cards
Automatic toll systems Network switches/routers
Automatic transmission On-board navigation
Avionic systems Pagers
Battery chargers Photocopiers
Camcorders Point-of-sale systems
Cell phones Portable video games
Cell-phone base stations Printers
Cordless phones Satellite phones
Cruise control Scanners
Curbside check-in systems Smart ovens/dishwashers
Digital cameras Speech recognizers
Disk drives Stereo systems
Electronic card readers Teleconferencing systems
Electronic instruments Televisions
Electronic toys/games Temperature controllers
Factory control Theft tracking systems
Fax machines TV set-top boxes
Fingerprint identifiers VCR’s, DVD players
Home security systems Video game consoles
Life-support systems Video phones
Medical testing systems Washers and dryers

And the list goes on and on


How many do we use?
• Average middle-class home has 40 to 50 embedded
processors in it
– Microwave, washer, dryer, dishwasher, TV, VCR, stereo, hair
dryer, coffee maker, remote control, humidifier, heater, toys,
etc.
• Luxury cars have over 80 embedded processors
– Brakes, steering, windows, locks, ignition, dashboard
displays, transmission, mirrors, etc.
• Personal computers have over 10 embedded processors
– Graphics accelerator, mouse, keyboard, hard-drive, CD-ROM,
bus interface, network card, etc.
Common Microcontrollers
•Atmel •Motorola
•ARM •8-bit
•Intel •68HC05
•8-bit •68HC08
•8XC42 •68HC11
•MCS48 •16-bit
•MCS51 •68HC12
•8xC251 •68HC16
•16-bit •32-bit
•MCS96 •683xx
•MXS296 •Texas Instruments
•National Semiconductor •TMS370
•COP8 •MSP430
•Microchip •Zilog
•12-bit instruction PIC •Z8
•14-bit instruction PIC •Z86E02
•PIC16F84
•16-bit instruction PIC
•NEC
History of Embedded Systems
• One of the very first
recognizably modern
embedded systems was
the Apollo Guidance
Computer, developed by
Charles Stark Draper at
the MIT Instrumentation
Laboratory.
History of Embedded Systems
• Apollo Guidance Computer (AGC), 1963 [1]
– The first recognizably modern embedded system.
– Developed by Charles Stark Draper at the MIT Instrumentation
Laboratory .
– Used in real-time by astronaut pilots to collect and provide flight
information.
– Automatically control all of the navigational functions of the Apollo
spacecraft.
– The Apollo flight computer was the first to use integrated circuits (ICs).
– The computer's RAM was magnetic core memory (4K words) and ROM
was implemented as core rope memory (32K words).
History of Embedded Systems
• Autonetics D-17 Guidance Computer, 1961 ~ 1966 [1]
– The first mass-produced embedded system developed for Minuteman
missile.
– Built from discrete transistor logic and had a hard disk for main
memory.
– When the Minuteman II went into production in 1966, the D-17 was
replaced with a new computer that was the first high-volume use of
integrated circuits.
– This program alone reduced prices on quad NAND gate ICs from
$1000/each to $3/each, permitting their use in commercial products.
History of Embedded Systems
• By the late 1960s and early 1970s, the price of
integrated circuits dropped, and usage surged.
• The first microcontroller was developed by Texas
Instruments in 1971.
– The TMS 1000 series, which became commercially available in 1974,
contained a 4-bit processor, read-only memory (ROM) and random-
access memory (RAM).
• Also, in 1971, Intel released what is widely recognized
as the first commercially available processor, the 4004.
– The 4-bit microprocessor was designed for use in calculators and small
electronics, though it required eternal memory and support chips.
– The 8-bit Intel 8008, released in 1972, had 16 KB of memory; the Intel
8080 followed in 1974 with 64 KB of memory. The 8080's successor, x86
series, was released in 1978 and is still largely in use today.
History of Embedded Systems
• In 1987, the first embedded operating system, the
real-time VxWorks, was released by Wind River,
followed by Microsoft's Windows Embedded CE in
1996. By the late 1990s, the first
embedded Linux products began to appear.

• Today, Linux is used in almost all embedded devices.


History of Embedded Systems
• Intel 4004, [1]
– The first microprocessor.
– Which found its way into calculators and other
small systems.
– Required external memory and support chips.
• 8-bit Microprocessor, 1971-1974
– 8008, 8080, 8085, 6800, 6502, Z-80, Ti, NS
– Hundred if not thousand vendors rushed into this
market.
– The 6502 was used by Apple Co. to design Apple-II,
which sparked the Personal computer era.
History of Embedded Systems
• 16-bit CPU
– 8088, 8086, 80286 Z-800. 68000
– About 20 companies had released their products.
– IBM PC Era began from 1979
• 8088 was used in PC and PC/XT, 80286 was used in the
PC/AT.
• This adoption of Intel CPU plus the OS supplied by
Microsoft created two biggest PC Giants (Monsters) rule
the world up to this day.
• 80286 is used in IBM PS/2 personal computer system .
– Single chip microcontroller (8051 MCU) series which
was developed by Intel in 1980 for use in embedded
systems .
Characteristics of Embedded Systems
• Application-specific functionality – specialized for one or one
class of applications
• Deadline constrained operation – system may have to
perform its function(s) within specific time periods to achieve
successful results
• Resource challenged – systems typically are configured with a
modest set of resources to meet the performance objectives
• Power efficient – many systems are battery-powered and
must conserve power to maximize the usable life of the
system.
• Form factor – many systems are light weight and low volume
to be used as components in host systems
• Manufacturable – usually small and inexpensive to
manufacture based on the size and low complexity of the
hardware.
35
Characteristics of Embedded Systems
• Part of larger system
– not a “computer with keyboard, display, etc.”
• HW & SW application-specific – not G.P.
– application is known a-priori
– definition and development concurrent
• Interact (sense, manipulate, communicate) with the
external world
• Never terminate (ideally)
• Operation is time constrained: latency, throughput
• Other constraints: power, size, weight, heat, reliability
• Increasingly high-performance (DSP) & networked
Characteristics of Embedded Systems (1)
• Unlike general purpose computing system, embedded
systems posses certain specific characteristics and these
characteristics are unique to each embedded system.
• Some of the important characteristics of an embedded
systems are:
1. Application and domain specific
2. Reactive and Real Time
3. Operates in harsh environments
4. Distributed
5. Small size and weight
6. Power concerns
Characteristics of Embedded Systems (2)

• Application and domain specific


– Embedded system is having certain functions to perform
and they are developed in such a manner to do the
intended functions only. they can not be used for any
other purpose.
– For example you cannot replace the embedded control
unit of your microwave oven with air conditioners
embedded control unit, because the embedded control
units of microwave oven and air conditioner are
specifically designed to perform Specific tasks.
• Reactive and Real Time
Characteristics of Embedded Systems (3)
• Reactive and Real Time
• Embedded systems are in constant interaction with real world through
sensors and user defined input devices which are connected to the input
port of the system.
• Embedded systems produce changes in output in response to the
changes in the input. So they are generally referred as Reactive systems.
• Real time system operation means the timing behaviour of the system
should be deterministic; Meaning the system should respond to request
or tasks in a known amount of time.
• A real time system should not miss any deadlines for task or operations.
It is not necessary that all embedded systems should be real time in
operations.
• Embedded applications or systems which are mission critical. Like Flight
control systems, Anti lock brake systems(ABS), etc.
Characteristics of Embedded Systems (4)
• Many ES must meet Real-time constraints:
– A real-time system must react to stimuli from the controlled object (or the
operator) within the time interval dictated by the environment.
• “A real-time constraint is called hard, if not meeting that constraint could
result in a catastrophe“.
– All other time-constraints are called soft.
• Frequently connected to physical environment through sensors
and actuators, Hybrid systems (analog + digital parts).
• Typically, ES are Reactive systems:
• “A reactive system is one which is in continual interaction with
its environment and executes at a pace determined by that
environment“.
– Behaviour depends on input and current state.
Characteristics of Embedded Systems (5)

• Operates in harsh environments


– It is not necessary that all embedded systems should be
deployed in controlled environment. The environment in
which the embedded system deployed may be a dusty one
or a high temperature zone or an area subject to vibrations
and shock. systems placed in such areas should be capable
to withstand all these adverse operating conditions.
– The other factors that need to be taken into consideration
for embedded systems to work in harsh environment.
• Power supply fluctuations
• Corrosion
• Component aging
Characteristics of Embedded Systems (6)
• Distributed
– The term distributed means that embedded systems may be a part of
larger systems. Many number of such systems form a single large
embedded control unit.
– For example, Automatic teller Machine(ATM),
– An automatic vending machine
• it contains a card reader. a vending unit, etc. each of them are independent embedded
units but work together to perform overall vending function.

• Small size and weight


– It is an important factor in choosing a product. Most of the application
demands small sized and low weight products.
• Power concerns
– power management a another important factor that needs to be considered in
designing embedded systems.
– select the design according to the low power components like low dropout
regulators, and controllers/processors with Power saving modes.
Characteristics of Embedded Systems (7)
• Dedicated user interface (no mouse, keyboard and screen).
• Must be efficient:
– Energy efficient
– Code-size efficient (especially for systems on a chip)
– Run-time efficient
• Must be dependable:
– Reliability: R(t) = probability of system working correctly provided that is
was working at t=0
– Maintainability: M(d) = probability of system working correctly d time
units after error occurred.
– Availability: probability of system working at time t
– Safety: no harm to be caused
– Security: confidential and authentic communication
Purpose Of Embedded Systems (1)
• Each Embedded system is designed to serve the
purpose of any one or a combination of the
following tasks.
1. Data collection/Storage/Representation
2. Data communication
3. Data (Signal) processing
4. Monitoring
5. Control
6. Application specific user interface
Purpose Of Embedded Systems (2)
1. Data collection/Storage/Representation
– Data collection is usually done for storage, analysis, manipulation and
transmission.
– The term ‘Data’ refers all kinds of information, viz. text, voice, image,
electrical signals & other measurable quantities.
– Data can be either analog (continues) or Digital (discrete).
– Embedded system with analog data capturing techniques collect data
directly in the form of analog and converts the analog to digital signal by
using A/D converters and then collect the binary equivalent of the
analog data.
– If the signal is digital it can be directly captured without any additional
interface by digital embedded system.
– The collected data may be stored directly in the system or may be
transmitted to other systems or it may be processed by the system or it
may be deleted instantly after giving a meaningful representation.
Purpose Of Embedded Systems (3)
• A digital camera is a typical
example of an embedded system
with data collection/ storage/
representation of data.
• Images are captured and the
captured image may be stored
within the memory of the
camera. The captured image can
also be presented to the user
through a LCD display unit.
Purpose Of Embedded Systems (4)
2. Data communication
• Embedded data communication systems are
developed in applications ranging from complex
satellite communication systems to simple home
networking systems.
Purpose Of Embedded Systems (5)
3. Data (Signal) Processing
• The data collected by embedded system may be
used for various kinds of signal processing.
• A digital hearing aid is a typical example of an
embedded system employing data processing.
Purpose Of Embedded Systems (6)
4. Monitoring
• All embedded products
coming under the medical
domain are with monitoring
functions only. They are used
for determine the state of
some variables using input
sensors.
• A very good example is the
electro cardiogram (ECG)
machine for monitoring the
heart beat of patient.
Purpose Of Embedded Systems (7)
5. Control
• Embedded system with control functionalities impose control over
some variables according to the input variables.
• A system with control functionality contains both sensors and
actuators.
• Sensors are inputs ports for capturing the changes in environment
variables or measuring variable.
• Actuators are output ports are controlled according to the changes
in input variable.

Figure:- An Air-conditioner for controlling


room temperature
Purpose Of Embedded Systems (8)
6. Application specific user interface

• These are embedded systems with


application specific user interfaces like
buttons, switches, keypad, lights, bells,
display units, etc..
• Mobile phone is an example for this, in
mobile phone the user interface is
provided through the keyboard,
graphic LCD module, system speaker,
vibration alert, etc…
CLASSIFICATION OF EMBEDDED SYSTEM

• The classification of embedded system is


based on following criteria's:
1. On generation
2. On complexity & performance
3. On deterministic behaviour
4. On triggering
CLASSIFICATION OF EMBEDDED SYSTEM

• On generation
– 1. First generation(1G):
❖Built around an 8bit microprocessor & microcontroller.
❖Simple in hardware circuit & firmware developed.
❖Examples: Digital telephone keypads.
– 2. Second generation(2G):
❖Built around 16-bit μp & 8-bit μc.
❖They are more complex & powerful than 1G μp &μc.
❖Examples: SCADA systems
CLASSIFICATION OF EMBEDDED SYSTEM

• On generation
– 3. Third generation(3G):
❖Built around 32-bit μp & 16-bit μc.
❖Concepts like Digital Signal Processors (DSPs), Application Specific
Integrated Circuits(ASICs) evolved.
❖Examples: Robotics, Media, etc.
– 4. Fourth generation:
❖Built around 64-bit μp & 32-bit μc.
❖The concept of System on Chips (SoC), Multicore Processors
evolved.
❖Highly complex & very powerful.
❖Examples: Smart Phones.
CLASSIFICATION OF EMBEDDED SYSTEM
• On complexity & performance
– 1. Small-scale:
➢Simple applications need Performance not time-critical.
➢Built around low performance & low cost 8 or 16 bit
μp/μc.
➢Example: an electronic toy
– 2. Medium-scale:
➢ Slightly complex in hardware & firmware requirement.
➢ Built around medium performance & low cost 16 or 32
bit μp/μc.
➢ Usually contain operating systems.
➢Examples: Industrial machines.
CLASSIFICATION OF EMBEDDED SYSTEM

• On complexity & performance


– 3. Large-scale:
➢Highly complex hardware & firmware.
➢Built around 32 or 64 bit RISC μp/μc or PLDs or
Multicore Processors.
➢Response is time-critical.
➢Examples: Mission critical applications.
• On deterministic behaviour
• This classification is applicable for “Real Time” systems. The task
execution behaviour for an embedded system may be deterministic
or non-deterministic. Based on execution behaviour Real Time
embedded systems are divided into two types
– Hard Real Time embedded systems
– Soft Real Time embedded systems
• On triggering
– Embedded systems which are ―Reactive in nature can be based
on triggering.
– Reactive systems can be:
➢Event triggered
➢Time triggered
Embedded systems categories
• Embedded systems are classified into 4 categories
based on their performance and functional
requirements.
– Standalone
– Real-time
– Networked
– Mobile
• And based on their performance of microcontroller
this field is again subdivided into
– Small-scale
– Medium scale
– Sophisticated/High-end
• Standalone:
– In this category, systems don’t need any host like a
computer.
– It can work on its own.
– It will receive the inputs through its input ports and
calculate it and gives the output through output ports.
– Examples for this types are a microwave oven, digital
camera, DVD players, etc..
• Real-time:
– These type of embedded systems will give the output in
particular time.
– All these works will finish within the deadline of time.
– Examples for this, we use real-time embedded systems in
avionics, railway, ships, traffic control for highways,
automotive etc.
• Networked:
– These type of embedded systems will receive the
resources (data as inputs and output) by using a network.
– It can be LAN, WAN or internet, wired or wireless.
– This is the fastest growing working field. The embedded
web server is a system wherein all embedded devices are
connected to a web server and accessed and controlled by
a web browser.
– Example, Home automation using LAN networking.
• Mobile Embedded Systems:
– Mobile embedded systems we are using in everyday life.
– Embedded devices like cell phones, mobiles, digital
cameras, mp3 players and personal digital assistants, etc.
are the examples for this field.
– One of the limitations in this field is its resources and
memory.
Main Embedded System Components

• 1. Embeds hardware to give computer like


functionalities
• 2. Embeds main application software generally into
flash or ROM and the application software performs
concurrently the number of tasks.
• 3. Embeds a real time operating system (RTOS),
which supervises the application software tasks
running on the hardware and organizes the accesses
to system resources according to priorities and
timing constraints of tasks in the system.
Components of Embedded System

Fig: Typical Embedded System Hardware Unit.


Fig: hardware architecture of embedded system
• Embedded Systems Market 2020 Report Also Covers Marketing
Strategy Analysis, Top Manufacturers:
– Renesas Electronics
– STMicroelectronics
– NXP(Freescale)
– Texas Instruments Inc.
– Xilinx
– Altera
– Infineon Technologies
– Microchip
– Intel Corporation
– Fujitsu Limited
– Atmel
– ARM Limited
– Advantech
– Kontron
– Analog Devices
Design Constraints

66
Challenges in Embedded Computing System
Design
• The following external constraints are one important source of
difficulty in embedded system Design.
– Hardware
– How much hardware do we need?
– meet deadlines
– How do we meet deadlines?
– power consumption
– How do we minimize power consumption?
– design for upgradability
– How do we design for upgradability?
– Reliability
– Does it really work?
• The sources that make the design so difficult are:
– Complex testing
– Limited observability and controllability
– Restricted development environments
• Let’s consider some important problems that must be taken into
account 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. Since we often must meet both
performance deadlines and manufacturing cost constraints, the
choice of hardware is important—too little hardware and the system
fails to meet its deadlines, too much hardware and it becomes too
expensive.
• How do we meet deadlines?
• The brute force way of meeting a deadline is to speed up the
hardware so that the program runs faster. Of course, that makes the
system more expensive. It is also 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 memory system.
• How do we minimize power consumption?
• In 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, slowing down the system can obviously lead to missed deadlines.
Careful design is required to slow down the noncritical parts of the machine for
power consumption while still meeting necessary performance goals.
• How do we design for upgradability?
• The 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.
However, we want to be able to add features by changing software.
• Does it really work?
• Reliability is always important when selling products—customers rightly expect that
products they buy will work. Reliability is especially important in some applications.
If we wait until we have a running system and try to eliminate the bugs, we will be
too late—we won’t find enough bugs, it will be too expensive to fix them, and it will
take more time.
• Let’s consider some ways in which the nature of embedded computing machines
makes their design more difficult.
• Complex testing: Exercising an embedded system is generally more difficult than
typing in some data. We may have to run a real machine in order to generate the
proper 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.
• Limited 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.
• Restricted 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 and workstations. We generally
compile code on one type of machine, such as a PC, and download it onto the
embedded system. To debug the code, we must usually rely on programs that run
on the PC or workstation and then look inside the embedded system.
Application Areas Of Embedded Systems
• Consumer Electronics
– Camcorders, Cameras, etc…
• Household Appliances
– Television, DVD Player, Washing machine, fridge, microwave oven, etc.
• Home automation and security system
– Air conditioners, Sprinkler, intruder detection alarms, fire alarms, closed circuit
television cameras, etc
• Automotive industry
– Anti-lock breaking system (ABS), engine control, ignition control, automatic
navigation system, etc..
• Telecommunication
– Cellular telephones, telephone switches, Router, etc…
• Computer peripherals
– Printers, scanners, fax machines, etc…
Application Areas Of Embedded Systems
• Computer Networking systems
– Network routers, switches, hubs, firewalls, etc…
• Healthcare
– CT scanner, ECG, EEG, EMG, MRI, Glucose monitor, blood pressure monitor,
medical diagnostic device, etc.
• Measurement & Instrumentation
– Digital multimeters, digital CROs, logic analyzers, PLC systems, etc…
• Banking & Retail
– Automatic Teller Machine(ATM) and Currency counters, smart vendor
machine, cash register, Share market, etc..
• Card Readers
– Barcode, smart card readers, hand held devices, etc…
Design Challenges
• Does it really work?
– Is the specification correct?
– Does the implementation meet the spec?
– How do we test for real-time characteristics?
– How do we test on real data?
• How do we work on the system?
– Observability, controllability?
– What is our development platform?
• More importantly – optimizing design
metrics!!
73
Design challenge –
optimizing design metrics
• Obvious design goal:
– Construct an implementation with desired functionality
• Key design challenge:
– Simultaneously optimize numerous design metrics
• Design metric
– A measurable feature of a system’s implementation
– Optimizing design metrics is a key challenge
74
Design challenge – optimizing design
metrics
• Common metrics
– Unit cost: the monetary cost of manufacturing
each copy of the system, excluding NRE cost
–NRE cost (Non-Recurring Engineering cost):
The one-time monetary cost of designing the
system
– Size: the physical space required by the system
– Performance: the execution time or throughput of the system
– Power: the amount of power consumed by the
system
– Flexibility: the ability to change the functionality
75
of the system without incurring heavy NRE cost
Design challenge – optimizing design
metrics
• Common metrics (continued)
– Time-to-prototype: the time needed to build a working version
of the system
– Time-to-market: the time required to develop a system to the
point that it can be released and sold to customers
– Maintainability: the ability to modify the system after its initial
release
– Correctness,
– Safety,
– Testability,
– Manufacturability,
– many more
76
Design metric competition -- improving one may worsen others

• Expertise with both


Power software and
hardware is
Performance Size
needed to optimize
design metrics
– Not just a hardware
NRE cost or software expert,
as is common
– A designer must be
CCD
Digital camera chip comfortable with
A2D
CCD preprocessor Pixel coprocessor D2A various
lens
JPEG codec Microcontroller Multiplier/Accum
technologies in
DMA controller Display ctrl Hardware order to choose the
best for a given
Software
Memory controller ISA bus interface UART LCD ctrl application and
constraints
77
Time-to-market: a demanding
design metric
• Time required to develop a
product to the point it can
be sold to customers
• Market window
– Period during which the
product would have highest
sales
Revenues ($)

• Average time-to-market
constraint is about 8 months
Time (months) • Delays can be costly

78
Losses due to delayed market entry

• Simplified revenue model


Peak revenue
– Product life = 2W, peak at W
Peak revenue from
delayed entry
– Time of market entry defines a
triangle, representing market
Revenues ($)

On-time

Market rise Market fall penetration


Delayed – Triangle area equals revenue
• Loss
D W 2W – The difference between the
On-time Delayed Time on-time and delayed triangle
entry entry areas

79
Losses due to delayed market entry
(cont.)
• Area = 1/2 * base * height
Peak revenue – On-time = 1/2 * 2W * W
– Delayed = 1/2 * (W-D+W)*(W-D)
Peak revenue from
delayed entry
• Percentage revenue loss =
Revenues ($)

On-time

Market rise Market fall (D(3W-D)/2W2)*100%


Delayed • Try some examples
– Lifetime 2W=52 wks, delay D=4 wks
D W 2W
– (4*(3*26 –4)/2*26^2) = 22%
On-time Delayed Time – Lifetime 2W=52 wks, delay D=10 wks
entry entry – (10*(3*26 –10)/2*26^2) = 50%
– Delays are costly!

80
NRE and unit cost metrics
• Costs:
– Unit cost: the monetary cost of manufacturing each copy of the system, excluding NRE
cost
– NRE cost (Non-Recurring Engineering cost): The one-time monetary cost of designing
the system
– total cost = NRE cost + unit cost * # of units
– per-product cost = total cost / # of units
= (NRE cost / # of units) + unit cost

• Example
– NRE=$2000, unit=$100
– For 10 units
– total cost = $2000 + 10*$100 = $3000
– per-product cost = $2000/10 + $100 = $300
Amortizing NRE cost over the units results in an
additional $200 per unit

81
NRE and unit cost metrics
• Compare technologies by costs -- best depends on quantity
– Technology A: NRE=$2,000, unit=$100
– Technology B: NRE=$30,000, unit=$30
– Technology C: NRE=$100,000, unit=$2
$200,000 $200
A A
B B
$160,000 $160
C C
tota l c ost (x1000)

p er p rod uc t c ost
$120,000 $120

$80,000 $80

$40,000 $40

$0 $0
0 800 1600 2400 0 800 1600 2400
Numb er of units (volume) Numb er of units (volume)

• But, must also consider time-to-market

82
Future Trends in Embedded Systems
• The industry for embedded systems is expected to continue growing
rapidly, driven by the continued development of Artificial Intelligence
(AI), Virtual Reality (VR) and Augmented Reality (AR), machine
learning , deep learning, and the Internet of Things (IoT).

• The cognitive embedded system will be at the heart of such trends as:
reduced energy consumption, improved security for embedded
devices, cloud connectivity and mesh networking, deep learning
applications, and visualization tools with real time data.

• According to a 2018 report published by QYResearch, the global


market for the embedded systems industry was valued at $68.9
billion in 2017 and is expected to rise to $105.7 billion by the end of
2025.
Trends in the Embedded systems
• Recent trends in embedded systems include adding multiple
cores (dual core quads and quads).
– This research deals with the integration of all components on a single
chip (SOC).
• There is also a trend based on reconfigurable processes
associated with the processor.
– This design involves an FPGA core and an ASIC core.
• Embedded systems also focus on languages such as firmware.
Firmware helps interface with memory and hardware
interaction.
• Embedded system trends also affect operating system
updates with kernels and Python-based language trend.
The Role of Software in Embedded System
Design
• Software is a crucial component of embedded system
design.
• It is used to control the behaviour of the system and to
interact with the user.
• There are many programming languages and tools that
can be used in embedded system design, including C,
C++, and Assembly language.
• One of the challenges of embedded system design is
that the software must be optimized for the specific
hardware platform.
• This means that the software must be designed to
work efficiently with the limited resources available on
the system.
Development Environment
• Development processor
– The processor on which we write and debug our
programs
• Usually a PC
• Target processor
– The processor that the program will run on in our
embedded system
• Often different from the development processor

Development processor Target processor

87
Program for Embedded Systems
• Development Process
• Process for creating
instructions that are
built on host but
meant for the target
• Tools are compatible
with each other
Software Development Process
C File C File Asm.
File
• Compilers
– Cross compiler
• Runs on one
Compiler Assemble
r processor, but
generates code
Binary Binary Binary
File File File for another
• Assemblers
Library
Linker/
Locator Debugger • Linkers
Exec.
• Debuggers
Profiler

File
Profilers
Implementation Phase Verification Phase

90
Embedded System Design Tools and
Platforms
• here are many tools and platforms available
for embedded system design.
• These tools include:
– software development kits (SDKs),
– integrated development environments (IDEs),
– hardware development platforms.
Embedded System Design Tools and
Platforms
• Some popular embedded system design tools
and platforms include:
• Arduino: A popular hardware development platform
for hobbyists and professionals.
• Raspberry Pi: A low-cost, credit-card-sized computer
that can be used for a variety of applications,
including embedded system design.
• Microchip: A company that provides a wide range of
microcontrollers and other electronic components
for embedded system design.
System Hardware/Software Co-Design
• The importance of codesign in designing
hardware/software systems:
– Improves design quality, design cycle time, and cost
• Reduces integration and test time
– Supports growing complexity of embedded systems
– Takes advantage of advances in tools and
technologies
• Processor cores
• High-level hardware synthesis capabilities
• ASIC development
Motivations for Codesign
• Factors driving codesign (hardware/software
systems):
– Instruction Set Processors (ISPs) available as cores in many
design kits (386s, DSPs, microcontrollers, etc.)
– Systems on Silicon - many transistors available in typical
processes (> 10 million transistors available in IBM ASIC
process, etc.)
– Increasing capacity of field programmable devices - some
devices even able to be reprogrammed on-the-fly (FPGAs,
CPLDs, etc.)
– Efficient C compilers for embedded processors
– Hardware synthesis capabilities
Typical Codesign Process
Conventional Codesign Methodology
Fundamental Issues in Hardware/Software
Co-Design
• The hardware and software co-design is
problem statement and when we try to solve
this problem statement in real world, we may
come across multiple issues in the design.
• Fundamental issues are as follows:
– Selecting the model
– Selecting the architecture
– Selecting the language
– Partitioning System Requirements into hardware
and software
Issues in Hardware Software co-design
• Selecting the model
– Models are used for capturing and describing the system
characteristics.
• Selecting the architecture
– The architecture specifies the how a system is going to
implement in terms of number and types of different
components and interconnect among them.
• Selecting the language
– A programming language captures a computational model and
maps it into architecture.
– A model can be captured using multiple programming languages
like C,C++, java etc for software implementations and languages
like VHDL, Verilog, System C, etc. for hardware implementations.
• Partitioning system requirements into Hardware and
Software
THE EMBEDDED SYSTEM DESIGN PROCESS
THE EMBEDDED SYSTEM DESIGN PROCESS
Embedded system design process aimed at two objectives:
1. It will give us an introduction to the various steps in embedded
system design before we delve into them in more detail.
2. It will allow us to consider the design methodology itself.

A design methodology is important for three reasons. ,


First, it allows us to keep a Scorecard on a design to ensure that we have
done everything we need to do, such as optimizing performance or performing
functional tests.
Second, it allows us to develop computer-aided design(CAD) tools.
Developing a single program that takes in a concept for an embedded system and
emits a completed design would be a daunting task, but by first breaking the
process into manageable steps, we can work on automating (or at least semi
automating) the steps one at a time.
Third, a design methodology makes it much easier for members of a
design team to communicate.
THE EMBEDDED SYSTEM DESIGN PROCESS
• Typical Design Flow
THE EMBEDDED SYSTEM DESIGN PROCESS Contd..

The major goals of the design:


■ manufacturing cost
■ performance (both overall speed and deadlines); and
■ power consumption.

We must also consider the tasks we need to perform at every step in


the design process. At each step in the design, we add detail:

■ We must analyze the design at each step to determine how we


can meet the specifications.
■ We must then refine the design to add detail.
■ And we must verify the design to ensure that it still meets all
system goals, such as cost, speed, and so on.
THE EMBEDDED SYSTEM DESIGN PROCESS Contd..

• Top–down Design—we will begin with the most


abstract description of the system and conclude with
concrete details.

• The alternative is a bottom–up view in which we


start with components to build a system.

• We need bottom–up design because we do not have


perfect insight into how later stages of the design
process will turn out.
THE EMBEDDED SYSTEM DESIGN PROCESS Contd..

• During the design process we have to


consider the major goals of the design
such as
– manufacturing cost;
– performance (both overall speed and
deadlines); and
– power consumption.
Requirements
• Plain language description of what the user
wants and expects to get
– e.g. to develop a device that monitors the
temperature of containers
– Describe how the end product is used by the user
• May be developed in several ways:
– talking directly to customers
– talking to marketing representatives
– providing prototypes to users for comment
THE EMBEDDED SYSTEM DESIGN PROCESS Contd..

Sample requirements form.


THE EMBEDDED SYSTEM DESIGN PROCESS Contd..

EX:
GPS Moving Map

What requirements might we have


for our GPS moving map?
THE EMBEDDED SYSTEM DESIGN PROCESS Contd..

Here is an initial list:


■ Functionality: This system is designed for highway driving and similar uses, not
nautical or aviation uses that require more specialized databases and functions.
The system should show major roads and other landmarks available in standard
topographic databases.
■ User interface: The screen should have at least 400600 pixel resolution. The
device should be controlled by no more than three buttons. A menu system
should pop up on the screen when buttons are pressed to allow the user to make
selections to control the system.
■ Performance: The map should scroll smoothly. Upon power-up, a display should
take no more than one second to appear, and the system should be able to verify
its position and display the current map within 15 s.
■ Cost: The selling cost (street price) of the unit should be no more than $100.
■ Physical size and weight: The device should fit comfortably in the palm of the
hand.
■ Power consumption: The device should run for at least eight hours on four AA
batteries.
THE EMBEDDED SYSTEM DESIGN PROCESS Contd..

Finally the Requirement form,


Specification
• More precise, usually quantitative description
of the system:
– Should not imply a particular architecture
– List assumptions
– e.g., normal temp. monitoring: every 5 min above
threshold: every 5 sec
• May include functional and non-functional
elements
• May be executable or may be in mathematical
form for proofs
– e.g. UML (Unified Modeling Language)
Specification
• The specification is more precise—it serves as
the contract between the customer and the
architects.
• As such, the specification must be carefully
written so that it accurately reflects the
customer’s requirements and does so in a way
that can be clearly followed during design.
Specification
• A specification of the GPS system would
include several components:
– Data received from the GPS satellite constellation.
– Map data.
– User interface.
– Operations that must be performed to satisfy
customer requests.
– Background actions required to keep the system
running, such as operating the GPS receiver.
Architecture Design
• The specification does not say how the system
does things, only what the system does. Describing
how the system implements those functions is the
purpose of the architecture.
• The architecture is a plan for the overall structure
of the system that
• will be used later to design the components that
make up the architecture.
• The creation of the architecture is the first phase of
what many designers think of as design.
Architecture Design
Figure below shows a sample system architecture in the form of
a block diagram that shows major operations and data flows
among them.

Architectural descriptions must be designed to satisfy both


functional and nonfunctional requirements. Not only must all the
required functions be present, but we must meet cost, speed,
power, and other nonfunctional constraints.
Starting out with a system architecture and refining that to
hardware and software architectures,
Architecture Design

Hardware

Software
Designing Hardware and Software
Components

• The components will in general include both


hardware—FPGAs, boards, and so on and software
modules.

• Some of the components will be ready-made.

• You will have to design some components yourself.


System Integration
• Put together the components
– Many bugs appear only at this stage
– Require good interface definition from the start

• Have a plan for integrating components to


uncover bugs quickly, test as much
functionality as early as possible → test and
verification
System Integration

• Only after the components are built do we have the satisfaction


of putting them together and seeing a working system.
• Bugs are typically found during system integration, and good
planning can help us find the bugs quickly.
• By building up the system in phases and running properly
chosen tests, we can often find bugs more easily.
• If we debug only a few modules at a time, we are more likely to
uncover the simple bugs and able to easily recognize them.
• System integration is difficult because it usually uncovers
problems. The debugging facilities for embedded systems are
usually much more limited than the desktop systems.
• Careful attention is needed to insert appropriate debugging
facilities during design which can help to ease system
integration problems.
The Embedded Design Life Cycle
• Unlike the design of a software application on a
standard platform, the design of an embedded
system implies that both software and hardware are
being designed in parallel.
• Although this isn’t always the case, it is a reality for
many designs today.
• The profound implications of this simultaneous
design process heavily influence how systems are
designed.
The Embedded Design Life Cycle
• Figure provides a schematic representation of the embedded
design life cycle.
Hardware Software Trade-off
• Software Hardware Tradeoff
• It is possible that certain subsystems in hardware
(microcontroller), IO memory accesses, real-time
clock, system clock, pulse width modulation, timer
and serial communication are also implemented by the
software.
• A serial communication real-time clock and timers
featuring microcontroller may cost more than the
microprocessor with external memory and a software
implementation.
• Hardware implementations provide advantage of
processing speed.
Hardware implementation advantages
• Reduced memory for the program.
• Reduced number of chips but at an increased
cost.
• Simple coding for the device drivers.
• Internally embedded codes, which are more
secure than at the external ROM
• Energy dissipation can be controlled by
controlling the clock rate and voltage
Software implementation advantages
• Easier to change when new hardware versions
become available.
• Programmability for complex operations.
• Faster development time.
• Modularity and portability.
• Use of standard software engineering, modelling and
RTOS tools.
• Faster speed of operation of complex functions with
high-speed microprocessors.
• Less cost for simple systems.
Advantages of Hardware-Software
Co-design
• Performance Optimization:
• Reduced Development Time:
• Resource Efficiency:
• Adaptability and Flexibility:
• Real-time Responsiveness:
Advantages of Hardware-Software Co-design
• 1. Performance Optimization:
• – By considering hardware and software requirements concurrently, co-design allows for the optimization of
algorithms, data structures, and system architectures, resulting in improved overall performance.
• – Tasks that are computationally intensive can be offloaded to specialized hardware accelerators, freeing up the
main processor for other critical tasks.
• 2. Reduced Development Time:
• – Co-design facilitates parallel development of hardware and software, reducing iteration cycles and speeding up
the overall development process.
• – Simultaneous development allows for early detection of potential issues, enabling quicker resolution and
preventing bottlenecks in the later stages of the project.
• 3. Resource Efficiency:
• – With a comprehensive understanding of both hardware and software requirements, co-design enables optimal
resource allocation, reducing unnecessary overhead and improving energy efficiency.
• – Hardware components can be designed to match the specific needs of the software, avoiding over-provisioning
and conserving valuable resources.
• 4. Adaptability and Flexibility:
• – Co-design supports a more agile development process, allowing for quick adjustments in response to changing
requirements.
• – Adaptive hardware architectures can be dynamically reconfigured to accommodate varying workloads,
enhancing the system’s flexibility and versatility.
• 5. Real-time Responsiveness:
• – Embedded systems often operate in real-time environments where timely responses are crucial. Co-design
ensures that both hardware and software are fine-tuned to meet stringent real-time requirements, minimizing
latency and improving system responsiveness.
the trends in the embedded systems

• Processor Trends
• Operating System Trends
• Development Language Trends
• Open Standards, Frameworks and Alliances
Three key embedded system
technologies
• What is “Technology”?
– A manner of accomplishing a task, especially using
technical processes, methods, or knowledge

• Three key technologies for embedded systems


– Processor technology
– IC technology
– Design technology

133
Processor technology
• Processor is the architecture of the computation engine used to
implement a system’s desired functionality
• Processor does not have to be programmable
– “Processor” not equal to general-purpose processor

Controller Datapath Controller Datapath Controller Datapath


Control index
Control Register Control logic Registers
logic
logic and file and State total
State register register
Custom State
+
ALU register
General
IR PC ALU IR PC
Data Data
memory memory
Program Data Program memory
memory memory
Assembly code Assembly code
for: for:

total = 0 total = 0
for i =1 to … for i =1 to …
General-purpose (“software”) Application-specific Single-purpose (“hardware”)

134
Processor technology
• Processors vary in their customization for the problem at hand

total = 0
for i = 1 to N loop
total += M[i]
end loop
Desired
functionality

General-purpose Application-specific Single-purpose


processor processor processor

135
General-purpose processors
• Programmable device used in a variety of
Controller Datapath
applications
– Also known as “microprocessor” Control
logic and
Register
file
• Features State register

– Program memory General


– General datapath with large register file and IR PC ALU
general ALU
• User benefits Program
memory
Data
memory
– Low time-to-market and NRE costs
Assembly code
– High flexibility for:

• “Pentium” the most well-known, but total = 0


for i =1 to …
there are hundreds of others

136
Single-purpose processors
• Digital circuit designed to execute exactly Controller Datapath
one program Control index
– a.k.a. coprocessor, accelerator or peripheral logic
total
• Features State
register +
– Contains only the components needed to
execute a single program Data
– No program memory memory

• Benefits
– Fast
– Low power
– Small size

137
Application-specific processors
• Programmable processor optimized for a Controller Datapath
particular class of applications having Control Registers
common characteristics logic and
State register
– Compromise between general-purpose and Custom
single-purpose processors ALU
IR PC
• Features
Data
– Program memory Program memory
– Optimized datapath memory
– Special functional units Assembly code

• Benefits for:

total = 0
– Some flexibility, good performance, size and for i =1 to …
power

138
IC technology
• The manner in which a digital (gate-level)
implementation is mapped onto an IC
– IC: Integrated circuit, or “chip”
– IC technologies differ in their customization to a design
– IC’s consist of numerous layers (perhaps 10 or more)
• IC technologies differ with respect to who builds each layer
and when

gate
oxide
IC package IC
source channel drain

139 Silicon substrate


IC technology
• Three types of IC technologies
– Full-custom/VLSI
– Semi-custom ASIC (gate array and standard cell)
– PLD (Programmable Logic Device)

Here PLD is a generic name that


includes FPGAs, FPAAs, etc

140
Full-custom/VLSI
• All layers are optimized for an embedded
system’s particular digital implementation
– Placing transistors
– Sizing transistors
– Routing wires
• Benefits
– Excellent performance, small size, low power
• Drawbacks
– High NRE cost (e.g., $300k), long time-to-market

141
Semi-custom
• Lower layers are fully or partially built
– Designers are left with routing of wires and maybe
placing some blocks
• Benefits
– Good performance, good size, less NRE cost than a
full-custom implementation (perhaps $10k to
$100k)
• Drawbacks
– Still require weeks to months to develop

142
PLD (Programmable Logic Device)
• All layers already exist
– Designers can purchase an IC
– Connections on the IC are either created or destroyed
to implement desired functionality
– Field-Programmable Gate Array (FPGA) very popular
• Benefits
– Low NRE costs, almost instant IC availability
• Drawbacks
– Bigger, expensive (perhaps $30 per unit), power
hungry, slower

143
Moore’s law
Moore’s law
Moore’s law
• The most important trend in embedded systems
– Predicted in 1965 by Intel co-founder Gordon Moore
IC transistor capacity has doubled roughly every 18 months for the past several decades

10,000

1,000

Logic transistors per 100


chip 10
(in millions)
1

0.1
Note:
0.01
logarithmic scale
0.001

145
Moore’s law
• Wow
– This growth rate is hard to imagine, most people
underestimate
– How many ancestors do you have from 20 generations
ago
• i.e., roughly how many people alive in the 1500’s did it take to
make you?
• 220 = more than 1 million people
– (This underestimation is the key to pyramid schemes!)

146
Graphical illustration of Moore’s law

1981 1984 1987 1990 1993 1996 1999 2002

10,000 150,000,000
transistors transistors

Leading edge Leading edge


chip in 1981 chip in 2002

• Something that doubles frequently grows more quickly


than most people realize!
– A 2002 chip can hold about 15,000 1981 chips inside itself

147
Design Technology
• The manner in which we convert our concept of
desired system functionality into an implementation
Compilation/ Libraries/ Test/
Synthesis IP Verification

System System Hw/Sw/ Model simulat./


Compilation/Synthesis: specification synthesis OS checkers
Automates exploration and
insertion of implementation
details for lower level.
Behavioral Behavior Cores Hw-Sw
specification synthesis cosimulators
Libraries/IP: Incorporates pre-
designed implementation from
lower abstraction level into
higher level. RT RT RT HDL simulators
specification synthesis components

Test/Verification: Ensures correct


functionality at each level, thus
reducing costly iterations Logic Logic Gates/ Gate
between levels. specification synthesis Cells simulators

To final implementation

148
Design productivity exponential
increase
100,000

10,000

(K) Trans./Staff – Mo.


1,000

100

Productivity
10

0.1

0.01

2005
1993

2001

2003
1983

1987
1985

1991
1989

1999
1997
1995

2007

2009
• Exponential increase over the past few decades

149
The co-design ladder
• In the past: Sequential program code (e.g., C, VHDL)

– Hardware and software Compilers


Behavioral synthesis
(1990's)
design technologies were (1960's,1970's)
Register transfers
very different Assembly instructions RT synthesis
– Recent maturation of Assemblers, linkers
(1980's, 1990's)

synthesis enables a unified (1950's, 1960's) Logic equations / FSM's


Logic synthesis
view of hardware and (1970's, 1980's)
Machine instructions
software Logic gates

• Hardware/software
Implementation
“codesign” Microprocessor plus
program bits: “software”
VLSI, ASIC, or PLD
implementation: “hardware”

The choice of hardware versus software for a particular function is simply a tradeoff among various
design metrics, like performance, power, size, NRE cost, and especially flexibility; there is no
fundamental difference between what hardware or software can implement.

150
Independence of processor and IC
technologies
• Basic tradeoff
– General vs. custom
– With respect to processor technology or IC technology
– The two technologies are independent

General- Single-
purpose ASIP purpose
General, processor processor Customized,
providing improved: providing improved:

Flexibility Power efficiency


Maintainability Performance
NRE cost Size
Time- to-prototype Cost (high volume)
Time-to-market
Cost (low volume)

PLD Semi-custom Full-custom

151
Design productivity gap
• While designer productivity has grown at an impressive rate
over the past decades, the rate of improvement has not kept
pace with chip capacity
10,000 100,000
1,000 10,000

Logic transistors 100 1000


per chip 10 Gap 100 Productivity
IC capacity (K) Trans./Staff-Mo.
(in millions) 1 10
0.1 1
productivity
0.01 0.1
0.001 0.01

152
Design productivity gap
• 1981 leading edge chip required 100 designer months
– 10,000 transistors / 100 transistors/month
• 2002 leading edge chip requires 30,000 designer months
– 150,000,000 / 5000 transistors/month
• Designer cost increase from $1M to $300M
10,000 100,000
1,000 10,000
Logic transistors 100 1000
10 Gap 100 Productivity
per chip IC capacity
(in millions) 1 10 (K) Trans./Staff-Mo.
0.1 1
productivity
0.01 0.1
0.001 0.01

153
The mythical man-month
• The situation is even worse than the productivity gap indicates
• In theory, adding designers to team reduces project completion time
• In reality, productivity per designer decreases due to complexities of team management
and communication
• In the software community, known as “the mythical man-month” (Brooks 1975)
• At some point, can actually lengthen project completion time! (“Too many cooks”)
Team
60000 15
• 1M transistors, 1 16 16
18
50000 19
designer=5000
40000 24 23
trans/month
30000
Months until completion
• Each additional designer 20000 43
reduces for 100 10000 Individual
trans/month
0 10 20 30 40
• So 2 designers produce Number of designers
4900 trans/month each

154
Microelectronic Circuits
• General-purpose processors:
– High-volume sales.
– High performance.
• Application-Specific Integrated Circuits
(ASICs):
– Varying volumes and performances.
– Large market share.
• Prototypes.
• Special applications (e.g. space).
Microelectronics Design Styles
• Adapt circuit design style to market requirements
• Parameters:
– Cost.
– Performance.
– Volume.
• Full custom
– Maximal freedom
– High performance blocks
– Slow
• Semi-custom
– Standard Cells
– Gate Arrays
– Mask Programmable (MPGAs)
– Field Programmable (FPGAs)) • Silicon Compilers & Parametrizable Modules
(adder, multiplier,
– memories)
• Standard Cells
– Cell library:
• Cells are designed once.
• Cells are highly optimized.
– Layout style:
• Cells are placed in rows.
• Channels are used for wiring.
• Over the cell routing.
– Compatible with macro-cells (e.g. RAMs).
• Macro-cells
– Module generators:
• Synthesized layout.
• Variable area and aspect-ratio.
– Examples:
• RAMs, ROMs, PLAs, general logic blocks.
– Features:
• Layout can be highly optimized.
• Structured-custom design.
Array-based design
• Pre-diffused arrays:
– Personalization by metalization/contacts.
– Mask-Programmable Gate-Arrays.
• Pre-wired arrays:
– Personalization on the field.
– Field-Programmable Gate-Arrays.
• MPGAs & FPGAs
• MPGAs:
– Array of sites:
– Each site is a set of transistors. • Batches of wafers can be pre-fabricated.
– Few masks to personalize chip.
– Lower cost than cell-based design.
• FPGAs:
– Array of cells:
– Each cell performs a logic function. • Personalization:
– Soft: memory cell (e.g. Xilinx).
– Hard: Anti-fuse (e.g. Actel). • Immediate turn-around (for low volumes).
– Inferior performances and density.
– Good for prototyping.
Semi-custom style trade-off
Example: DEC AXP Chip designed using Macro Cells
Example: Field Programmable Gate Array from Actel
History of Embedded Systems
• The first modern, real-time embedded computing
system was the Apollo Guidance Computer,
developed in the 1960s by Dr. Charles Stark
Draper at the Massachusetts Institute of
Technology for the Apollo Program.
• The Apollo Guidance Computer was designed to
collect data automatically and provide mission-
critical calculations for the Apollo Command
Module and Lunar Module.
Indian space mission- Chandrayaan
• Chandrayaan - Indian lunar space probe series
• Chandrayaan-1 (chandrayaan is Hindi for “moon
craft”) was the first lunar space probe of
the Indian Space Research Organisation (ISRO)
and found water on the Moon.
– It mapped the Moon in infrared, visible, and X-
ray light from lunar orbit and used reflected radiation
to prospect for various elements, minerals, and ice. It
operated in 2008–09.
• Chandrayaan-2, which launched in 2019, was
designed to be ISRO’s first lunar lander.

• Chandrayaan-2 mission is a highly complex


mission, which brought together an Orbiter,
Lander and Rover with the goal of exploring
south pole of the Moon.
history
• Embedded systems date back to the 1960s. Charles Stark Draper developed an integrated circuit
(IC) in 1961 to reduce the size and weight of the Apollo Guidance Computer, the digital system
installed on the Apollo Command Module and Lunar Module. The first computer to use ICs, it
helped astronauts collect real-time flight data.
• In 1965, Autonetics, now a part of Boeing, developed the D-17B, the computer used in the
Minuteman I missile guidance system. It is widely recognized as the first mass-produced embedded
system. When the Minuteman II went into production in 1966, the D-17B was replaced with the NS-
17 missile guidance system, known for its high-volume use of integrated circuits. In 1968, the first
embedded system for a vehicle was released; the Volkswagen 1600 used a microprocessor to
control its electronic fuel injection system.
• By the late 1960s and early 1970s, the price of integrated circuits dropped, and usage surged. The
first microcontroller was developed by Texas Instruments in 1971. The TMS 1000 series, which
became commercially available in 1974, contained a 4-bit processor, read-only memory (ROM) and
random-access memory (RAM), and cost around $2 apiece in bulk orders.
• Also, in 1971, Intel released what is widely recognized as the first commercially available processor,
the 4004. The 4-bit microprocessor was designed for use in calculators and small electronics,
though it required eternal memory and support chips. The 8-bit Intel 8008, released in 1972, had
16 KB of memory; the Intel 8080 followed in 1974 with 64 KB of memory. The 8080's successor, x86
series, was released in 1978 and is still largely in use today.
• In 1987, the first embedded operating system, the real-time VxWorks, was released by Wind River,
followed by Microsoft's Windows Embedded CE in 1996. By the late 1990s, the first
embedded Linux products began to appear. Today, Linux is used in almost all embedded devices.
Future Trends in Embedded Systems
• The industry for embedded systems is expected to continue growing
rapidly, driven by the continued development of Artificial Intelligence
(AI), Virtual Reality (VR) and Augmented Reality (AR), machine
learning , deep learning, and the Internet of Things (IoT).

• The cognitive embedded system will be at the heart of such trends as:
reduced energy consumption, improved security for embedded
devices, cloud connectivity and mesh networking, deep learning
applications, and visualization tools with real time data.

• According to a 2018 report published by QYResearch, the global


market for the embedded systems industry was valued at $68.9
billion in 2017 and is expected to rise to $105.7 billion by the end of
2025.
• Hardware-software co-design is a design methodology that
emphasizes the simultaneous development of both hardware and
software components of an embedded system. Rather than treating
hardware and software as separate entities, co-design seeks to
exploit synergies between them to enhance overall system
performance, reduce development time, and optimize resource
utilization.
• In traditional design approaches, hardware and software are
developed independently, leading to potential inefficiencies and
suboptimal utilization of resources. Co-design, on the other hand,
promotes collaboration between hardware and software engineers
from the initial stages of the design process, fostering a more
unified and efficient system architecture.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy