Transcript Lecture 3
CS244-Introduction to
Embedded Systems and
Ubiquitous Computing
Instructor: Eli Bozorgzadeh
Computer Science Department
UC Irvine
Winter 2012
CS244 – Lecture 3
Embedded System Software
Winter 2010- CS 244
2
Course Outline
Hardware Components
Hardware
Concept
Specification
HW/SW
Partitioning
Estimation Exploration
Software
Software Components
Winter 2010- CS 244
Validation and Evaluation (area, power, performance, …)
3
Components of Embedded Systems
Memory
Controllers
Interface
Software
(Application Programs)
Coprocessors
Processor
ASIC
Converters
Analog
Winter 2010- CS 244
Digital
4
Analog
Design Domains
Other
Mechanics
Hydraulics
Actuators
Circuit Boards
Packaging
Panel & Body
MEMS
Nanotechnologies
Analog
Antennas
RF Modulators
Mixers
Amplifiers
VCOs
Sensors
A/D & D/A
Power Drivers
Filters
Signal Conditioners
Op. Amps
Transistors
Passive Devices
Power Supply
AC/DC & DC/DC
Digital
Software
System Architecture
Processors
Memories
ALU, MUX, & Latches
Gates & FF
CMOS Transistors
Masks
User Software
GUI
User Libraries
System Libraries
VM
Middleware
Device Drivers
RTOS
BIOS & Firmware
5
5
Digital
System architecture
Reliable
Processors
Very Reliable
How many processors (custom and general purpose)
The interconnect network
The memory hierarchy and DMA architecture
In some designs, system architecture may include software
Instruction set architecture
Pipeline design and datapath
Controller
RTL description
Memories
On-chip (small) memories may be based on Flip Flops (see next
slide)
For larger fabrics, often based on DRAM, magnetic media, or
laser readable media
Winter 2010- CS 244
6
6
Software
User level software (ULS)
Least Reliable
Highly application specific
Low reusability
Typically designed at the last phase
GUI
Back End
Front End
Often part of ULS
May be based on standard GUI libraries (X11, Java, WinCE,
GNOME, KDE, etc.)
Often requires more research and refinement than it receives
May be the most complex/challenging design component,
especially in display/input limited devices
User libraries
Reusable application software
DSP algorithms and application kernels
Winter 2010- CS 244
Mini Kernel
7
7
Software
System libraries
VM
Reliable
Highly reusable application software
Implementation of standards (e.g., MPEG), custom database
engines, GUI kernels, etc.
Emulates a portable and documented “fictitious” machine (and
perhaps API) on any underlying processing system
Middleware
Provide a unique interface between applications, lower level
hardware, the grid, or a network of devices
Software that connects two otherwise separate applications
Device drivers
API to manipulate, read, and write hardware devices
Highly hardware dependent code
Difficult to debug
Winter 2010- CS 244
8
8
Software
RTOS
BIOS
Provides, multitasking, scheduling, communication,
and synchronization between threads of execution
Provides very basic API for accessing the underlying
computer platform
Firmware
Software that is embedded in a system that does not
allow modification by an end user
May contain BIOS, RTOS, Middleware, …, ULS
Or, may contain all but ULS
Or, some hybrid
Winter 2010- CS 244
9
9
Real-time Systems
A real-time system has to produce correct
result at the right time (deadline driven)
A real-time system imposes stringent timing
requirements in addition to correctness
Hard real-time
Firm real-time
Soft real-time
Winter 2010- CS 244
10
Hard Real-time
System designed to meet all deadlines
A missed deadline is a design flaw
Examples:
Shuttle navigation system
Nuclear reactor monitoring system
System hardware (over) designed for worst-case
performance
System software vigorously tested
Formal proofs used to guarantee timing correctness
Winter 2010- CS 244
11
Firm Real-time
System designed to meet all deadlines, but
“Occasional” missed deadline is allowed
Sometimes statistically quantified (e.g., 5% misses)
No need to compute further once a deadline is missed
Examples:
Multimedia systems
System hardware designed for average case
performance
System software tested under average (ideal)
conditions
Winter 2010- CS 244
12
Soft Real-Time
System designed to meet as many deadlines as
possible
Best effort to complete within specified time, but may be
late
Examples:
Network switch or router
System hardware designed for average case
performance
System software tested under average (ideal)
conditions
Winter 2010- CS 244
13
Embedded Operating Systems
Must provide means for dynamic task creation
Must provide means for task synchronization and
communication
Create, join, and cancel
Shared memory vs. message passing
Semaphore and condition variables vs. monitors
Posix threads a common standard provides thread
creation and synchronization
Winter 2010- CS 244
14