ECE398: Introduction to Embedded Systems Lecture 1: Course Overview 11/4/2012 1 Administration Instructor Prof. Xinping Zhu Office: 308 Dana Email: firstname.lastname@example.org Normally reply within 24 hours Phone: x5304 Office Hours: Mon 11-11:45am By appointment Lecture + Lab. Thursday Class will be lab time. 2 Administration TA TBD Email: Office: TBD Office Hours: TBD Phone: TBD 3 Grading Policy Exams One midterm: 10% One final: 15% Homework Assignments/Lab: 30% Project: 45% Bonus Participation: 5% Showing up in class Raising questions/Responding to questions Discussion 4 Homework Uses SystemC A C++ library that enables system level (hardware & software) modeling Recently approved as IEEE 1666 standard Installed in the signet lab C++ knowledge necessary Unix/Linux experience helpful HW to be assigned on Mondays Due on Monday midnight in a week Electronic submission Deadline is strictly enforced 5 Lab/Project Using an XScale-based development board http://www.toradex.com 520 MHZ XScale processor Ethernet USB VGA Audio RS232 Compact Flash/SD Card Etc. Linux 6 Additional References Wanye Wolf Computers as Components: Principles of Embedded Computing System Design, Morgan Kaufman Publishers, 2001 Frank Vahid, Tony Givargis Embedded System Design: A Unified Hardware/Software Introduction, John Wiley & Sons, 2002 7 References Open SystemC Initiative SystemC 2.1 Language Reference Manual 8 Papers Thorsten Schubert, Jürgen Hanisch, Joachim Gerlach, Jens-E. Appell, Wolfgang Nebel, Evaluation of a Refinement-Driven SystemC-Based Design Flow, DATE 2004 M. Schlett, Trends in Embedded-Microprocessor Design, IEEE Computer, August 1998 Albert Wang, Chris Rowen, Dror Maydan, Earl Killian, Hardware/Software Instruction Set Configurability for Sytem-on-Chip Processors, DAC 2001 Gang Quan, Sharon Hu, Energy Efficient Fixed-Priority Scheduling for Real-Time Systems on Variable Voltage Processors, DAC 2001 L. Benini and G. De Micheli, Networks on Chips: A New SOC Paradigm, IEEE Computer, January 2002 Todor Stefanov, Claudiu Zissulescu, Alexandru Turjan, Bart Kienhuis and Ed Deprettere, System Design using Kahn Process Networks: The Compaan/Laura Approach, Date 2004 C.Kulkarni, G.Ghez, etc. Cache Conscious Data Layout Organization For Embedded Multimedia Applications, Date 2001 Patrick Schaumont, Ingrid Verbauwhede, Domain-Specific Codesign for Embedded Security, IEEE Computer, April 2003 Achim Nohl, Gunnar Braun, Oliver Schliebusch, Rainer Leupers, and Heinrich Meyr, A Universal Technique for Fast and Flexible Instruction-Set Architecture Simulation, DAC 2002 S. Dutta, R. Jensen, and A. Rieckmann, Viper: A multiprocessor SoC for Advanced Set-top Box and Digital TV Systems, IEEE Design and Test of Computers, Sept.-Oct, 2001, pp.21-31 9 Assignment Today One programming HW Will be posted to Blackboard Reading Wikipedia Embedded System http://en.wikipedia.org/wiki/Embedded_system Check room access Microprocessor Lab 115/117 Signet Lab 307 10 Traditional Embedded System Design SW and HW partitioning is decided at an early stage Using commodity components, board level design Software Application Hardware Function Compiler Assembler Linker Off-the-shelf Implementation Binary on uController hardware 11 HW/SW Codesign Style An integrated design flow of hardware and software Often targeting SoCs, not constrained by commodity components Application Software HW/SW Hardware Partitioning Performance Compilation, etc. Synthesis Estimation Virtual prototype Cosimulation Processor + Hardwired Binary Code System-on- Components chip 12 Goals of the Course Targeting HW/SW codesign Understand the hardware components Understand the RTOS theories Gain experience in system level design tools SystemC Targeting traditional system design Developing device drivers Developing embedded software 13 Topics to Cover Embedded Computers Instruction set architecture/Microarchitecture Memory architecture Input/output devices Real-time Operating System Scheduling Device driver Design techniques Specification Methods/Computation models Verification Techniques Hardware-software codesign techniques 14 Introduction What are embedded systems? Challenges in embedded computing system design. Design methodologies. 15 What is an embedded system? Communication Avionics Automobile Consumer Electronics Office Equipments Household Appliances 16 Definition Embedded system: any device that includes a programmable computer but is not itself a general- purpose computer. Take advantage of application characteristics to optimize the design: Don’t need all the general-purpose bells and whistles. But need to understand the application. 17 An embedded system example -- a digital camera Digital camera chip CCD CCD preprocessor Pixel coprocessor D2A A2D lens JPEG codec Microcontroller Multiplier/Accum DMA controller Display ctrl Memory controller ISA bus interface UART LCD ctrl 18 Digital TV: Viper SoC Diagram MIPS Trimedia (PR3940) (TM32) CPU CPU 19 Automotive embedded systems Today’s high-end automobile have > 80 microprocessors: 4-bit microcontroller checks seat belt; microcontrollers run dashboard devices; 16/32-bit microprocessor controls engine. Millions lines of code 20 BMW 850i brake and stability control system Anti-lock brake system (ABS): pumps brakes to reduce skidding. sensor sensor brake brake hydraulic ABS pump brake brake sensor sensor 21 BMW 850i brake and stability control system Anti-lock brake system (ABS): pumps brakes to reduce skidding. Electronic stability control (ASC+T): controls brakes and engine to improve stability. ABS and ESC+T communicate. ABS was introduced first---needed to interface to existing ABS module. 22 Microprocessor varieties Microcontroller: includes I/O devices, on-board memory. Examples: Intel 8051, SA-1100 (StrongARM), PXA255 (X-Scale) Zilog Z80, Motorola 68HC11 Digital signal processor (DSP): microprocessor optimized for digital signal processing. Examples: Philpis Trimedia, TI TMS320 series, Motorola/Agere StarCore Analog Devices ADSP21xx series Application-specific Processors/SoCs: processors optimized for a particular type of task. Examples: Intel IXP 1200, 2400 network processor Canon DIGIC series image processor 23 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 Customized processor processor Coprocessor 24 Advantages of Using Processors Flexibility Quick turn around for bug fix Can upgrade through software GPS receiver, DVD player, Wireless Router Lower Cost To develop software vs. hardware To manufacture Good performance Heavy pipelining, wide issue width Experienced design teams Aggressive VLSI technology 25 Power Custom logic is a clear winner for low power devices. Modern microprocessors offer features to help control power consumption Idle/sleeping mode Dynamic voltage/frequency adjustment Software design techniques can help reduce power consumption. 26 Characteristics of embedded Systems Sophisticated functionality. Real-time operation. Low manufacturing cost. Low power. Short time-to-market and small teams. 27 Functional complexity Often have to run sophisticated algorithms or multiple algorithms. Example: A DVD player DVD, video CD, audio CD, JPEG image CD, MP3 CD, MPEG-4, DivX 3.11/4.x/5.x Requiring domain-specific knowledge. Often provide sophisticated user interfaces. Multiple levels of user menus Support for multiple languages Graphics Speech, handwriting 28 Real-time operation Must finish operations by deadlines. Hard real time: missing deadline causes failure. Soft real time: missing deadline results in degraded performance. Many systems are multi-rate: must handle operations at widely varying rates. Example: Audio, Video 29 Cost and Power Consumption Many embedded systems are mass-market items that must have low manufacturing costs. Limited memory, microprocessor power, etc. Power consumption is critical in battery-powered devices. Excessive power consumption increases system cost even in wall-powered devices. 30 Time-to-market Often must meet tight deadlines. 6 month market window is common. Can’t miss back-to-school window for calculator. Peak revenue Peak revenue from Revenues ($) delayed entry On-time Market rise Market fall Delayed D W 2W On-time Delayed Time entry entry 31 Challenges in embedded system design How much hardware do we need? How many processors? How big are they? How much memory? How do we meet performance requirements? What’s in hardware? What’s in software? Faster hardware or cleverer software? How do we minimize power? Turn off unnecessary logic? Reduce memory accesses? How do we ship in time? Off-the-shelf chips? IP-reuse? 32 Challenges, etc. 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? How do we make our ends meet? How do we reduce size/weight? 33 Required Designers Expertise with both software and hardware is needed to optimize design metrics Not just a hardware or software expert A designer must be comfortable with various technologies in order to choose the best for a given application and constraints A designer must be able to communicate with teammates of various background 34 Design methodologies A procedure for designing a system. Understanding your methodology helps you ensure you didn’t skip anything. Compilers, software engineering tools, computer-aided design (CAD) tools, etc., can be used to: help automate methodology steps; keep track of the methodology itself. 35 Levels of abstraction requirements specification architecture component design system integration 36 Top-down vs. bottom-up Top-down design: start from most abstract description; work to most detailed. Bottom-up design: work from small components to big system. Real design uses both techniques. application architecture component 37 Requirements Plain language description of what the user wants and expects to get. May be developed in several ways: talking directly to customers; talking to marketing representatives; providing prototypes to users for comment. 38 Functional vs. non-functional requirements Functional requirements: output as a function of input. Non-functional requirements: time required to compute output; size, weight, etc.; power consumption; reliability; etc. 39 Our requirements form name purpose inputs outputs functions performance manufacturing cost power physical size/weight 40 Example: GPS moving map requirements Moving map obtains position from GPS, paints map from I-78 local database. Scotch Road lat: 40 13 lon: 32 19 41 GPS moving map needs Functionality: For automotive use. Show major roads and landmarks. User interface: At least 400 x 600 pixel screen. Three buttons max. Pop-up menu. Performance: Map should scroll smoothly. No more than 1 sec power-up. Lock onto GPS within 15 seconds. Cost: $500 street price = approx. $100 cost of goods sold. Physical size/weight: Should fit in dashboard. Power consumption: 8 hours on 4 AAs 42 GPS moving map requirements form name GPS moving map purpose consumer-grade moving map for driving inputs power button, two control buttons outputs back-lit LCD 400 X 600 functions 5-receiver GPS; three resolutions; displays current lat/lon performance updates screen within 0.25 sec of movement manufacturing cost $100 cost-of-goods- sold power 100 mW physical size/weight no more than 2: X 6:, 12 oz. 43 Specification A more precise description of the system: should not imply a particular architecture; provides input to the architecture design process. May include functional and non-functional elements. May be executable or may be in mathematical form for proofs. 44 GPS specification Should include: What is received from GPS; map data; user interface; operations required to satisfy user requests; background operations needed to keep the system running. 45 Architecture design What major components go satisfying the specification? Hardware components: CPUs, peripherals, etc. Software components: major programs and their operations. Must take into account functional and non-functional specifications. 46 GPS moving map block diagram GPS search display renderer receiver engine user database interface 47 GPS moving map hardware architecture display frame CPU buffer GPS receiver memory panel I/O 48 GPS moving map software architecture position database pixels renderer search user timer interface 49 Designing hardware and software components Must spend time architecting the system before you start coding. Some components are ready-made, some can be modified from existing designs, others must be designed from scratch. 50 System integration Put together the components. Many bugs appear only at this stage. Have a plan for integrating components to uncover bugs quickly, test as much functionality as early as possible. 51 Summary Embedded computers are all around us. Many systems have complex embedded hardware and software. Embedded systems pose many design challenges: design time, deadlines, power, etc. Design methodologies help us manage the design process. 52
"ECE398 embedded system"