1 / 17

CS244-Introduction to Embedded Systems and Ubiquitous Computing

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.

orde
Download Presentation

CS244-Introduction to Embedded Systems and Ubiquitous Computing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010

  2. CS244 – Lecture 3 Embedded System Software Winter 2010- CS 244

  3. 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, …)

  4. Components of Embedded Systems Memory Controllers Interface Software (Application Programs) Processor Coprocessors ASIC Converters Winter 2010- CS 244 Analog Digital Analog

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. Environment Embedded System Sensors A/D P Memory f(t) fn D/A Actuators u(t) un General DSP Architecture Winter 2010- CS 244

More Related