170 likes | 190 Views
CS244-Introduction to Embedded Systems and Ubiquitous Computing. Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010. CS244 – Lecture 3. Embedded System Software. Course Outline. Hardware Components. Hardware. Design (Synthesis, Layout, …). HW/SW Partitioning.
E N D
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010
CS244 – Lecture 3 Embedded System Software Winter 2010- CS 244
Course Outline Hardware Components Hardware Design (Synthesis, Layout, …) HW/SW Partitioning Concept Specification Design (Compilation, …) Estimation - Exploration Software Software Components Winter 2010- CS 244 Validation and Evaluation (area, power, performance, …)
Components of Embedded Systems Memory Controllers Interface Software (Application Programs) Processor Coprocessors ASIC Converters Winter 2010- CS 244 Analog Digital Analog
Design Domains Other Analog Digital Software Mechanics Hydraulics Actuators Circuit Boards Packaging Panel & Body MEMS Nanotechnologies 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 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 Winter 2010- CS 244 5
Digital Reliable Very Reliable • System architecture • How many processors (custom and general purpose) • The interconnect network • The memory hierarchy and DMA architecture • In some designs, system architecture may include software • Processors • 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
Software Back End Front End Least Reliable Mini Kernel • User level software (ULS) • Highly application specific • Low reusability • Typically designed at the last phase • GUI • 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 7
Software Reliable • System libraries • Highly reusable application software • Implementation of standards (e.g., MPEG), custom database engines, GUI kernels, etc. • VM • 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
Software • RTOS • Provides, multitasking, scheduling, communication, and synchronization between threads of execution • BIOS • 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
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
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
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
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
Embedded Operating Systems • Must provide means for dynamic task creation • Create, join, and cancel • Must provide means for task synchronization and communication • 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
Fixed Point Arithmetic • Using integer math to emulate floating point numbers and operations • Determine range and precision (i.e., m.n) • Define +, -, , and / • Analyze for overflow • Use tables for common math functions, e.g., sine, cosine, etc. Winter 2010- CS 244
Digital Signal Processing • Any interesting embedded system has to process some input signals and generate some output signals • We use the term signal in a general way • Digital devices process signals in digital form • A uniformly sampled stream of data spread in time (e.g., audio) or space (e.g., image) Winter 2010- CS 244
Environment Embedded System Sensors A/D P Memory f(t) fn D/A Actuators u(t) un General DSP Architecture Winter 2010- CS 244