580 likes | 735 Views
Embedded Computing Systems: An Overview. EE202A (Fall 2001): Lecture #1. Welcome to EE202A!. Course logistics Overview what are embedded computing systems? why are they important? what are their characteristics & requirements? what are the interesting trends? what will the course cover?.
E N D
Embedded Computing Systems: An Overview EE202A (Fall 2001): Lecture #1
Welcome to EE202A! • Course logistics • Overview • what are embedded computing systems? • why are they important? • what are their characteristics & requirements? • what are the interesting trends? • what will the course cover?
Course Logistics: Instructor Info • Email: mbs@ee.ucla.edu • Phone: 310-267-2098 • Office: 7702-B BH • Office hours: Th 3-5 PM, or by appointment • I’m very responsive with email • Usually around on weekend • Assistant: Letty Marr, 7440D BH letty@ea.ucla.edu
About This Course • Same as EE298-2 from 1998-2000 • Required course for EE’s ECS Major Field Students as well as those with ECS minor • Plus, question in M.S. comprehensive exam / PhD prelims • Related courses • Potkonjak’s CS259 (Fall): tools for embedded systems • Estrin’s course on Distributed Embedded Systems (Winter) • Ingrid’s EE202A on Advanced VLSI (Spring) • Bill M-S’s EE204A on Compilers (Winter) • My EE206A (Spring): Wireless Systems
Course Logistics: Prerequisites • No prerequisite graduate courses • Knowledge of the following at advanced undergraduate level • digital hardware design • computer architecture • system software • algorithms and data structures • Following will be useful too… • digital signal processing • VLSI CAD tools • compilers and programming languages Basically, I assume that you know EVERYTHINGthat is taught to UCLA EE/CE undergraduates
Course Logistics: Enrollment • Limit of 24 students • however, I’d accommodate 1 or 2 desperation cases • E.g. you are a 2nd or higher year graduate student, and are required to take this course to be able to sit for an exam or to graduate • Wait till end of week 2 as many students drop out • If you want to audit, following is the priority • You are one of the desperation cases but only need to audit • You are on the official wait list • You contacted me - unofficial “wait list to get on to wait list” If you are not serious about the course, pleasedrop out soon so that those is the waiting list can enroll!
Course Logistics: Grading • One examination: 20% • 9th or 10th week … most likely a take-home during the weekend between Weeks 9 & 10 • Several home works: 17.5% total • analysis, simulation, programming, library/web research • Several paper reviews: 5% • Typically due Monday morning of the following week • Critique … not summarize • Around 0.5 page / paper • Presentation: 12.5% • 20-25 min paper review or area survey (topic/paper specified by me) • groups of two students (form them by end of W2, otherwise I’d assign) • slides prepared jointly, speaker selected by me at the presentation time • this material is fair game for homework and exams! • One project: 25% results, 10% report, 5% presentation = 40% total • software/hardware design, tools, analysis, simulation • groups of up to two students (need not be the same as for presentation) • 30 minute presentation during finals week • like a conference paper + talk • Class participation: 5% • E.g. questions that you ask during lectures and student presentations • E.g. how much you interact with me regarding the project
Course Logistics: Project • Dig deep into a focus area on your own • lectures would provide a “broad” coverage • Should have some new idea/result, even if minor • one or more of simulation, analysis, implementation • no paper reviews and surveys • Project proposal due by beginning of week 3 • some suggested project topics on class web page by Week 2 • But, I encourage you to think of your own topic • may relate to your own research • but you may not “reuse” work already done or being done for some other purpose • What should be your goal? • something useful • similar style/quality as a conference paper and talk • key is to keep the project simple, and focused • aim for high quality!
Course Logistics: On the Web • Course web site URL http://www.ee.ucla.edu/~mbs/courses/ee202a/2001f • On-line material • lecture viewgraphs in PDF & PPT • check before class, and print them • viewgraphs are organized topic-wise and would span several classes • copies of handouts, home works, exams etc. • important announcements • on-line reader with pointers to URLs, Melvyl • Last year’s lectures available at http://www.ee.ucla.edu/~mbs/courses/ee298-2/2000f/lectures/ • Class mailing list • ee206a@ee.ucla.edu • make sure to write your name on the sign-up sheet • If auditing, please let me know if you wish to be on the list
Course Logistics: Reader & Textbooks • No books required • unfortunately NO single adequate book exists • I’d mention books as we go along • A set of papers will be required reading • average of one paper per class • will relate to the core topic of that class • you are expected to read it BEFORE the class • In addition, there are student presentations • cover alternate ideas or related topics • lead discussion but every one is supposed to participate • selected from a set of topics of my choosing • I will give pointers to papers and web resources
Course Logistics: Reader & Textbooks (contd.) • No paper reader - an “on-line reader” at the course web site • bibliographic entries for various papers • links to on-line versions if available • or, indication whether available through Melvyl’s INSPEC database • hardcopies will be handed out for papers not available on-line • You must know or learn to: • use Melvyl to access on-line versions of papers
Course Logistics: Some Books (for your interest only…) • John A. Stankovic and Kirthi Ramamritham, "Hard Real-Time Systems," IEEE Computer Society Press. • G.D. Micheli, W. Wolf, R. Ernst, “Readings in Hardware/Software Co-Design,” Morgan Kaufman. • S.A. Edwards, “Languages for Digital Embedded Systems,” Kluwer, 2000. • Bruce Douglass, "Real-Time UML - Developing Efficient Objects for Embedded Systems," Addison-Wesley, 1998. • Hermann Kopetz, "Real-Time Systems : Design Principles for Distributed Embedded Applications," Kluwer, 1997. • Hassan Gomaa, "Software Design Methods for Concurrent and Real-Time Systems," Addison-Wesley, 1993. • P. Lapsley, J. Bier, A. Shoham, and E.A. Lee, “DSP Processor Fundamentals: Architectures and Features,” Berkeley Design technology Inc,, 2001. • R. Gupta, "Co-synthesis of Hardware & Software for Embedded Systems," Kluwer, 1995. • Felice Balarin, Massimiliano Chiodo, and Paolo Giusto, "Hardware-Software Co-Design of Embedded Systems : The Polis Approach," Kluwer, 1997. • Jean J. Labrosse, "Embedded Systems Building Blocks : Complete And Ready To Use Modules In C ," R&D Publishing, 1995. • Jean J. Labrosse, "uC / OS : The Real Time Kernel," R&D Publishing, 1992.
Embedded Systems on the Web • Berkeley Design technology, Inc.: http://www.bdti.com • EE Times Magazine: http://www.eet.com/ • Linux Devices: http://www.linuxdevices.com • Embedded Linux Journal: http://embedded.linuxjournal.com • Embedded.com: http://www.embedded.com/ • Embedded Systems Programming magazine • Circuit Cellar: http://www.circuitcellar.com/ • Electronic Design Magazine: http://www.planetee.com/ed/ • Electronic Engineering Magazine: http://www2.computeroemonline.com/magazine.html • Integrated System Design Magazine: http://www.isdmag.com/ • Sensors Magazine: http://www.sensorsmag.com • Embedded Systems Tutorial: http://www.learn-c.com/ • Collections of embedded systems resources • http://www.ece.utexas.edu/~bevans/courses/ee382c/resources/ • http://www.ece.utexas.edu/~bevans/courses/realtime/resources.html • Newsgroups • comp.arch.embedded, comp.cad.cadence, comp.cad.synthesis, comp.dsp, comp.realtime, comp.software-eng, comp.speech, and sci.electronics.cad
Embedded Systems Courses on the Web • Alberto Sangiovanni-Vincentelli @ Berkeley • EE 249: Design of Embedded Systems: Models, Validation, and Synthesis • http://www-cad.eecs.berkeley.edu/~polis/class/index.html • Brian Evans @ U.T. Austin • EE382C-9 Embedded Software Systems • http://www.ece.utexas.edu/~bevans/courses/ee382c/index.html • Edward Lee @ Berkeley • EE290N: Specification and Modeling of Reactive Real-Time Systems • http://ptolemy.eecs.berkeley.edu/~eal/ee290n/index.html • Rajesh Gupta @ UCI • ICS 212: Introduction to Embedded Computer Systems • http://www.ics.uci.edu/~rgupta/ics212.html • ICS 213: Software for Embedded Systems • http://www.ics.uci.edu/~rgupta/ics213.html
Course Logistics: Some Conferences and Journals • Conferences & Workshops • ACM/IEE DAC • IEEE ICCAD • IEEE RTSS • ACM ISLPED • IEEE VLSI SP Workshop • Many others… • Journals & Magazines • ACM Transactions on Design Automation of Electronic Systems • IEEE Transactions on Computer-Aided Design • IEEE Transactions on VLSI Design • IEEE Design and Test of Computers • IEEE Transactions on Computers • Journal of Computer and Software Engineering • Journal on Embedded Systems • Many others…
Announcement Regarding Class Schedule • Scheduled Classes: 21 • September: 25, 27 • October: 2, 4, 9, 11, 16, 18, 23, 25, 30 • November: 1, 6, 8, 13, 15, 20, 27, 29 • December: 4, 6 • Missed classes due to conference travel by me (tentative) • 11/15 (SensIT), 11/27 (PAC/C), 12/4 (RTSS) • possibly one more • Compensation strategy • Take-home examination will take care of 1 • N-2 or N-1 make-up classes
Cheating & Plagiarism • My apologies if you are one of the vast majority of students who don’t resort to academic dishonesty • but unfortunate incidents in my previous grad and undergrad courses • What is cheating & plagiarism? • Acting dishonestly, practicing fraud • Stealing or using (without my permission) other people’s writings or ideas • E.g. from other students, other sources such as web sites, solutions from previous offerings of this course etc. • Note that it doesn’t have to be literal copying – stealing ideas but presenting in a different style is still cheating and plagiarism. • You are also guilty if you aid in cheating & plagiarism • My policy: zero tolerance • HWs, paper presentation: zero score + one level reduction in course grade • Exam, project: “F” grade for the course + report to Dean • More than 1 incident: : “F” grade for the course + report to Dean • Moreover, please remember that you may have to face me in other exams (e.g. M.S. comprehensive, Ph.D. prelims, Ph.D. qualifiers) and professionally!
Reading List for This Lecture • MANDATORY READING • Tennenhouse, D. Proactive computing. Communications of the ACM, vol.43, (no.5), ACM, May 2000. p.43-50. http://www.acm.org/pubs/citations/journals/cacm/2000-43-5/p43-tennenhouse/ • OTHER READING • None
PR #1 (due Mon 10/1, 10AM) • Half-page review of Tennenhouse’s paper • Remember, critique, not summarize!!!
HW #1 (Due Fri 10/5, 5 PM) Select a technology area, commercial product, or a major non-UCLA research project that is relevant to this course (say, StrongARM 2), and write a 1-page web page with discussion that surveys/summarizes and critiques the selected technology, product, or project. In addition, provide WWW links and paper references to important sources of information. • Use Web (e.g. Google) and Melvyl (California Digital Library) as your primary source • Since I want every student to pick a distinct topic, please get your choice approved by me via email • I’d approve topics in the first come first served order • I won’t allow topics on which I know such web pages already exist! • Look at various solutions to problem 2 of HW #1 of Spring 2001 EE206A to see what I am looking for • http://nesl.ee.ucla.edu/courses/ee206a/2001s/hw1_submissions.htm • Or, look at http://www.cs.berkeley.edu/~culler/cs294-s00/knowledgeweb.html for a similar exercise in David Culler’s course at Berkeley • Submission: email me the URL of a zip or tar or tgz or tZ or similar archive file that contains all your files (html, images etc.) No MIME attachments please. • The URL should remain valid till the end of Fall 2001.
Sample Topics for HW #1 • Hardware • Open source processor cores • New DSP Processors • Network processors • Reconfigurable SoCs • Low-power and power-aware processors (e.g. SA2) • Buses for embedded systems (low-power, real-time) • System software • Open source RTOSs and embedded OSs (RTLinux, eCos, TInyOS) • Real-time Java • Distributed software (.NET/Hailstorm, Jini, UPnP, HAVI) • Real-time communication protocols • TCP/IP stacks and chips • Networking technologies • Home networking technologies • Embedded system networking technologies • Network appliances • Design tools • CAD tools for high-level embedded system design • Languages for digital embedded systems • Algorithms • Timing synchronization
Course Goals • Explain fundamental concepts underlying the design of embedded and real-time systems • building hardware, software, and mixed h/w-s/w embedded systems • Techniques for optimizing design of embedded systems • algorithms for systematic design • Research issues, industry trends, and interesting applications Prepare for Embedded System Revolution
More Examples... • Signal processing systems • radar, sonar, real-time video, set-top boxes, DVD players, medical equipment, residential gateways • Mission critical systems • avionics, space-craft control, nuclear plant control • Distributed control • network routers & switches, mass transit systems, elevators in large buildings • “Small” systems • cellular phones, pagers, home appliances, toys, smart cards, MP3 players, PDAs, digital cameras and camcorders, sensors, smart badges
Why do we care?Some Market Tidbits... • Specialized devices and information appliances are replacing the generalist PC • variety of forms: set-top boxes, fixed-screen phones, smart mobile phones, PDAs, NCs, etc. • IDC predicts that by 2002 > 50% of inter access devices will be such into appliances and not PCs • In 1997, 96% of internet access devices sold in the US were PCs • By 2004, unit shipments will exceed those of PCs • Traditional systems becoming dependent on computation systems • Modern cars: up to ~100 processors running complex software • engine & emissions control, stability & traction control, diagnostics, gearless automatic transmission • http://www.howstuffworks.com/car-computer.htm • An indicator: where are the CPUs being used?
Where Are the Processors? Where Has CS Focused? Direct2% InteractiveComputers Robots6% Vehicles12% 200Mper Year 8.5B Parts per Year Servers,etc. Embedded Computers 80% In Vehicles In Robots Embedded Look for the CPUs…the Opportunities Will Follow! Source: DARPA/Intel (Tennenhouse) Where are the CPUs? Estimated 98% of 8 Billion CPUs produced in 2000 used for embedded apps
History of Computing Technology discontinuities drive new computing paradigms and applications 1960 1970 1980 1990 1995 1998 2000? Mainframe Mini Workstation PC Routers Cell phones, PDAs Networked Embedded Systems? IBM DEC Sun, HP Intel, Dell Cisco Nokia, Palm ??? Increasing # of computers / person Increasing connectivity
Typical Characteristics of Embedded Systems • Part of a larger system • not a “computer with keyboard, display, etc.” • HW & SW do application-specific function – not G.P. • application is known a priori • but definition and development concurrent • Some degree of re-programmability is essential • flexibility in upgrading, bug fixing, product differentiation, product customization • Interact (sense, manipulate, communicate) with the external world • Never terminate (ideally) • Operation is time constrained: latency, throughput • Other constraints: power, size, weight, heat, reliability etc. • Increasingly high-performance (DSP) & networked
Key Recent Trends • Increasing computation demands • e.g. multimedia processing in set-top boxes, HDTV • Increasingly networked • to eliminate host, and remotely monitor/debug • embedded Web servers • e.g. Axis camera http://neteye.nesl.ucla.edu • e.g. Mercedes car with web server • embedded Java virtual machines • e.g. Java ring, smart cards, printers • cameras, disks etc. that sit directly on networks • Increasing need for flexibility • time-to-market under ever changing standards! Need careful co-design of h/w & s/w!
“Traditional” Hardware Embedded Systems = ASIC • A direct sequence spread spectrum (DSSS) receiver ASIC (UCLA) ASIC Features Area: 4.6 mm x 5.1 mm Speed: 20 MHz @ 10 Mcps Technology: HP 0.5 mm Power: 16 mW - 120 mW (mode dependent) @ 20 MHz, 3.3 V Avg. Acquisition Time: 10 ms to 300 ms
Application Specific Gates Analog I/O DSP Code Processor Cores Memory Modern Embedded Systems? • Embedded systems employ a combination of • application-specific h/w (boards, ASICs, FPGAs etc.) • performance, low power • s/w on prog. processors: DSPs, controllers etc. • flexibility, complexity • mechanical transducers and actuators
Complexity and Heterogeneity controller processes control panel • Heterogeneity within H/W & S/W parts as well • S/W: control oriented, DSP oriented • H/W: ASICs, COTS ICs Real-time OS ASIC UI processes controller DSP Assembly Code Programmable DSP Programmable DSP DSP Assembly Code CODEC Dual-ported RAM
Handling Heterogeneity From Lee (Berkeley)
Increasingly on the Same ChipSystem-on-Chip (SoC) • SC3001 DIRAC chip (Sirius Communications)
More SoCs Camera-on-chip (Bell Labs) Solar-power Wireless Sensor (Berkeley)
Many Implementation Choices Speed Power Cost • Microprocessors • Domain-specific processors • DSP • Network processors • Microcontrollers • ASIPs • Reconfigurable SoC • FPGA • Gatearray • ASIC High Low Volume
Hardware vs. Software Modules • Hardware = functionality implemented via a custom architecture (e.g. datapath + FSM) • Software = functionality implemented in software on a programmable processor • Key differences: • Multiplexing • software modules multiplexed with others on a processor • e.g. using an OS • hardware modules are typically mapped individually on dedicated hardware • Concurrency • processors usually have one “thread of control” • dedicated hardware often has concurrent datapaths
Multiplexing Software Modules A B A B A B Call B Return Resume B Resume B Resume A Resume A SUBROUTINES COROUTINES PROCESSES Hierarchical Symmetric Symmetric Sequential Sequential Concurrent Modularity Complexity
Many Types of Programmable Processors • Past • Microprocessor • Microcontroller • DSP • Graphics Processor • Now / Future • Network Processor • Sensor Processor • Cryptoprocessor • Game Processor • Wearable Processor • Mobile Processor
Example: Network Processor • Good News • Processor Power • 2 years - 3 X • Better News • Optical Bandwidth • 2 years - 10 X • Bad News • Inadequacy = C * 3n/2 Routing Switches Firewall Boxes Traffic Shapers Aggregation Nodes Edge Routers Media Servers
Example Network Processor Architecture mC I$ D$ DMA System Management I/O System Pipeline ASPP ASPP Network ASPP ASPP ASPP Network ASPP ASPP ASPP
Application-Specific InstructionProcessors (ASIPs) • Processors with instruction-sets tailored to specific applications or application domains • instruction-set generation as part of synthesis • e.g. Tensilica • Pluses: • customization yields lower area, power etc. while r • Minuses: • higher h/w & s/w development overhead • design, compilers, debuggers • higher time to market
Reconfigurable SoC Triscend’s A7 CSoC Other Examples Atmel’s FPSLIC(AVR + FPGA) Altera’s Nios(configurable RISC on a PLD)
H/W-S/W Architecture • A significant part of the problem is deciding which parts should be in s/w on programmable processors, and which in specialized h/w • Today: • Ad hoc approaches based on earlier experience with similar products, & on manual design • H/W-S/W partitioning decided at the beginning, and then designs proceed separately
Embedded System Design • CAD tools take care of h/w fairly well • Although a productivity gap emerging • But, S/W is a different story… • HLLs such as C help, but can’t cope with complexity and performance constraints Holy Grail for Tools People: H/W-like synthesis & verification from a behavior description of the whole system at a high level of abstraction using formal computation models
Productivity Gap in Hardware Design Source: sematech97 A growing gap between design complexity and design productivity