CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010
Winter CS CS244 – Lecture 3 Embedded System Software
Winter CS Course Outline Concept Concept Specification HW/SWPartitioning Hardware Components Software Components Estimation - Exploration Hardware Software Design (Synthesis, Layout, …) Design (Compilation, …) Validation and Evaluation (area, power, performance, …)
Winter CS Components of Embedded Systems Analog DigitalAnalog Memory Coprocessors Controllers Converters Processor Interface Software (Application Programs) ASIC
Winter CS Design Domains 5 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 OtherAnalogDigitalSoftware
Winter CS Digital 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 6 Reliable Very Reliable
Winter CS Software 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 7 Front End Back End Mini Kernel Least Reliable
Winter CS Software 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 8 Reliable
Winter CS 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 9
Winter CS 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 CS 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 CS 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 CS 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 CS 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 CS 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 CS 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 CS General DSP Architecture Sensors f(t)f(t) A/D fnfn PP D/A unun Actuators u(t)u(t) Memory EnvironmentEmbedded System