Transcript 1 - SKKU
Introduction to Embedded Systems Introduction to Embedded Systems 1 Books • Recommended Textbook: - • Embedded System Design: An Introduction to Processes, Tools, and Techniques, Arnold Berger, CMP Books, ISBN # 1-57820-073-3 Suggested Textbooks: - An Embedded Software Primer, David Simon - The Art of Designing Embedded Systems, Jack Ganssle - Embedded Systems Firmware Demystified, Ed Sutter, CMP Books, ISBN 1-57820-099-7 - Programming Embedded Systems in C and C ++, Michael Barr, O'Reilly, 1-56592-354-5 - Building Embedded Linux Systems, Karim Yaghmour, O’Reilly - - Addison-Wesley: ISBN #0-201-61653-X Butterworth-Heinemann: ISBN #0-7506-9869 Introduction to Embedded Systems 2 Why study embedded systems? • Embedded systems are key elements of our society today - An adequate supply of competent designers is a rate limiting factor in our economies ability to grow • As processing power increases, we’ll be able to do incredible things that we haven’t begun to imagine. • It is a discipline of Computer Science that has traditionally been: - Ignored Conceded to Electrical Engineering Departments Treated as a cast-off because of its intimacy with “hardware” Not well understood because of its special niche • Engineers who are experienced embedded system designers are in short supply and high demand - Other countries, such as India, are filling the need • It’s a really fun topic! Introduction to Embedded Systems 3 What is an “Embedded System” • Embedded System - Any device, or collection of devices, that contain one or more dedicated computers, microprocessors, or microcontrollers - Device(s) may be local - Printer, automobile, etc. - Devices may be distributed - Aircraft, ship, internet appliance - A PC or workstation may be an embedded system • Key point: - Embedded computing devices have rigidly defined operational bounds. Not general purpose computers ( PC, Unix workstation ) Introduction to Embedded Systems 4 Why are Embedded Systems Different • • • • • • • • • • • • Dedicated to a specific task or tasks Rich variety of microprocessors ( over 300 types ) Designs are cost-sensitive Have real-time performance constraints Used with Real-Time Operating Systems (RTOS) Software failure can be life-threatening May have constraints on power consumption Operate over a wide-range of environmental conditions Fewer system resources then a desktop system All code might be stored in ROM Require specialized design tools May have on-chip debugging resources Introduction to Embedded Systems 5 Characteristics of Embedded Systems • In general, there is no architectural link to standard platforms - PC ( Win9X, NT, XP, Linux), MAC, HP, Sun are considered the standard platforms - Almost every embedded design ( hardware and software ) is unique - The hardware and software are highly integrated and interdependent - ASICS, microcontrollers • Typically, have moderate to severe real-time constraints - Real-time means system must be able to respond to the outside world • May or may not have Operating System ( O/S ) services available - No printf() for debugging when there is no terminal! • Tolerance for bugs is 1000X ( or more ) lower in embedded systems then in desktop computers. - May be life-threatening consequences if system fails - Often engineered for the highest possible performance at the lowest cost - Performance may not be an important consideration • Most likely to have power constraints Introduction to Embedded Systems 6 Let’s Define Some Terms • Microprocessor - An integrated circuit which forms the central processing unit for a computer or embedded controller, but requires additional support circuitry to function - MC68000, 80486, Pentium, K6, etc. • Microcontroller - A microprocessor plus additional peripheral support devices integrated into a single package - Peripheral support devices may include: - Serial ports ( COM ), Parallel ( Ports ), Ethernet ports, A/D & D/A - Interval timers, watchdog timers, event counter/timers, real time clock ( RTC ) - Other local processors ( DSP, numeric coprocessor, peripheral controller ) - ColdFIRE is a microcontroller Introduction to Embedded Systems 7 Microprocessor and Microcontroller A Microprocessor-Based Embedded System A Microcontroller-Based Embedded System Data Storage Program Memory Program Memory Data Storage I/O I/O Microprocessor Microprocessor Core I/O I/O Real-time Clock I/O I/O Real-time Clock To outside world To outside world Introduction to Embedded Systems 8 A “Typical” Embedded System Minimally Requirement for an Embedded System Address Bus NMI Data Bus Microprocessor Other Peripheral Devices Status Bus Glue Logic and Address Decode To Outside World Clock Generation and Distribution Random Access Memory - RAM I/O Interface ( D/A, A/D, Digital ) Read Only Memory - ROM ( FLASH ) Watchdog Timer Communications Real Time Clock Introduction to Embedded Systems To outside world To other devices To host Computer To User I/F 9 Common Embedded Microprocessors • • 4-bit Microcontrollers: PIC ($1.79) 8-bit Microprocessors and microcontrollers - • 16-bit Microprocessors and microcontrollers - • Intel, AMD: 80186 families Motorola: 68300 families NEC, Hitachi, Phillips 32-bit Microprocessors and microcontrollers - • Zilog: Z80 families ($1.39) Intel: 8042, 8048, 8051 families ($4.95) Motorola: 6805, 68HC11 families ($8.00) Intel 80386, 80486, Pentium, PII, PIII,PIV, StrongARM, X-scale ARM: ARM7TDMI, ARM9 AMD 486E, SC520 (Aspen) Motorola 680X0, ColdFIRE, PowerPC Intel X-Scale 64-bit Microprocessors and microcontrollers - MIPS family, Athlon 64 Introduction to Embedded Systems 10 “Simplified” diagram of 68HC11 Pulse Acc Port A ROM - 8kBytes Timer Periodic IRQ RAM - 256 Bytes Watchdog A/D Converter TxD RxD STRB IRQ XTAL MODA MODB Oscillator Mode Select Power 5V Port B 68HC11 CPU Core Interrupts Handshake I/O RESET EXTAL STRA PD1 PD0 Port C SCI PD5 PD4 PD4 PD2 Address/Data Bus Port E PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0 Port D SPI EEPROM 512 Bytes PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 GND Introduction to Embedded Systems 11 Recent developments • Moore’s Law: the complexity of integrated circuits will double every 18 months • Process technology able to put more and more functionality on the same chip as the cpu • Buzz Word: System on a Chip (SOC), or System on Silicon • ColdFIRE is designed to keep the 68K family alive! Introduction to Embedded Systems 12 Another Example (PalmPilot) Motorola’s Dragonball Processor • • The MC68328 was chosen for Palm Pilot because it is highly integrated Performance is underwhelming ( 68000 core ) Introduction to Embedded Systems 13 ColdFire M5206e • variable length RISC - Denser binary code image than fixed-length RISC instructions - targeted for cost sensitive embedded market • Subset of 680X0 instruction set • Multiply/Accumulate unit for simple DSP applications - Supports 16x16 and 32x32 multiplies with 32-bit accumulate • 4K Direct-mapped I-cache • 8K On-chip SRAM • Lot’s of on-chip peripherals Introduction to Embedded Systems 14 5206e Block Diagram DRAM Controller Clock JTAG 4KB I-Cache 8KB SRAM Background Debug Mode (BDM) Interface System Bus Controller Clock Input JTAG Interface Chip Selects Interrupt Controller External Bus Interface DRAM Control Chip Selects Interrupts External Bus Debug Module Parallel Port ColdFire Core UARTs Parallel Interface Serial Interface Multiply Accumulator (MAC) Timers Timer Support M-Bus Interface M-BUS HW Divider DMA Controller DMA Control Introduction to Embedded Systems 15 How do we use the on-chip peripherals? • Setting up on-chip peripheral devices on a complex microcontroller is one of the most daunting tasks for any embedded systems design engineer • Companies have created products based upon the “simple” requirement of initializing the control registers of an embedded microcontroller - Driveway from Aisys Ltd. automatically generated initialization code • Example: Program the address of the Vector Base Register (VBR) - In the 68000, the vector table is located from 0x00000000 to 0x000003FF - The ColdFire processor allows us to relocate the VBR to any 1M boundary in the address space of the processor - Assume <D0> = 0x03000000, MOVEC D0,VBR would locate the vector table to the memory region 0x30000000..0x300003FF Introduction to Embedded Systems 16 Let’s Define Some Terms - 2 • Target system - The embedded system under development • Host computer - The standard platform being used to develop the software and link to the target system for debugging • Cross-development - Using host-based tools to create a code image that will execute on a different instruction set architecture - Example: - Write a C program on your PC - Compile it to run on a PowerPC 603 using a Cross-compiler - Create a runtime image for execution in the target system Introduction to Embedded Systems 17 Let’s Define Some Terms - 3 • Time sensitive - If a task or operation does not complete in the specified amount of time, the embedded device will perform below design requirements - Example: A laser printer prints 8 pagers per minute instead of 10 ppm ( HP trumps Lexmark once again! ) - Device continues to function • Time critical - If a task or operation does not complete in the specified amount of time, the embedded device will fail. - Example: Flight control system on a fly-by-wire aircraft - Device will not operate Introduction to Embedded Systems 18 Trends in embedded systems Processor plus ASIC Embedded system on a board 0.35 u process technology > 106 gates 0.18 u process technology > 4x106 gates 0.12 u process technology > 9x106 gates 0.08 u process technology > 20.3x106 gates System-on-Chip 20 million gates = 300, 68K microprocessors on one chip Introduction to Embedded Systems 19 Embedded System - Circa 1985 DISCRETE LOGIC FOR “GLUE” FUNCTIONS • 8-BIT MICROPROCESSOR ( Z80 ) • SOCKETED • 40 PINS @ 0.100” SPACING • DUAL IN-LINE PACKAGE ( DIP) • 4 MHz CLOCK SPEED CRYSTAL OSCILLATOR EPROMS IN SOCKETS 2K bytes RAM Introduction to Embedded Systems 20 Embedded System - Circa 2000 • Surface Mount Components • Fine pitch I/O pins • 68360 microcontroller • 16 - 25 MHz CLOCK SPEED Crystal Oscillator STATIC SENSITIVE 68040, 32-BIT MICROPROCESSOR ASIC RAM • Components on both sides • 12 layer printed circuit board Crystal FLASH MEMORY 16 MBytes Introduction to Embedded Systems 21 Introduction to Embedded Systems 22 Intel PXA800F Cellular processor Introduction to Embedded Systems 23 To Outside World Elements of an embedded system Peripheral Bus Key Point: Although vastly different in complexity and design, common architectural traits allow us to design and debug a wide variety of systems DEBUG Port Non-volatile memory • EPROM, FLASH, DISK Microprocessor • 4, 8, 16, 32, 4 bit bus • CISC, RISC, DSP • Integrated peripherals • Debug/Test Port • Caches • Pipeline • Socketed • Multiprocessing Systems • Socketed • Hybrid Volatile Memory • DRAM, SRAM • Hybrid • Driver Code / BIOS • Real Time Operating System • User Interface • Communications Protocol Stacks • C, C++, Assembly Language, ADA • Legacy Code • FPGA’s • PAL Standard Devices • I/O Ports • Peripheral Controllers Communication Devices • Ethernet System Clocks Software • Application Code Custom Devices • ASIC’s • RTC circuitry • System clocks • Integrated in uC • Imported/Exported Introduction to Embedded Systems • RS-232 • SCSI • Centronics • Proprietary Microprocessor Bus • Custom • PCI • VME • PC-102 24 The embedded lifecycle The Project Pre-Prototype H/W Design Proto Post-Prototype Debug Specification RTOS Integration Sys. Test Mfg. S/W Design The Integration “Loop” Start Yes New Test? Stop Yes Run Test No Pass Test? No Debug Re-design physical h/w and/or s/w Introduction to Embedded Systems 25 A tools view of the lifecycle Processor Selection Phase Packaged benchmarks Past Experience Other Similar Designs Applications support Instruction Set Simulator Benchmarking tools Enter Here Literature Compiler Tool Chain Architectural Simulator Evaluation Board Customer Benchmarks Design Phase Design Win Hardware Designer(s) Software Design Team ASIC Compiler Tool Chain Instruction Set Simulator Evaluation Board Logic Simulator Logic Analyzer Out-of-Circuit Emulation Oscilloscope Initial hardware without working memory system Initial Software In-Circuit Emulator Logic Analyzer Oscilloscope Software running on Hardware Software Performance Analysis In-Circuit Emulation Logic Analyzer/Preprocessor JTAG Emulation ROM Emulation MiniMON29K SW/HW Integration Phase Maintenance and upgrade of existing products Introduction to Embedded Systems Courtesy of Daniel Mann 26 Common characteristics of ES • Single-functioned - Executes a single program, repeatedly • Tightly-constrained - Low cost, low power, small, fast, etc. • Reactive and real-time - Continually reacts to changes in the system’s environment - Must compute certain results in real-time without delay Introduction to Embedded Systems 27 example -- a digital camera Digital camera chip CCD CCD preprocessor Pixel coprocessor D2A A2D lens JPEG codec Microcontroller Multiplier/Accum DMA controller Memory controller • • • Display ctrl ISA bus interface UART LCD ctrl Single-functioned -- always a digital camera Tightly-constrained -- Low cost, low power, small, fast Reactive and real-time -- only to a small extent Introduction to Embedded Systems 28 challenge – optimizing design metrics • Obvious design goal: - Construct an implementation with desired functionality • Key design challenge: - Simultaneously optimize numerous design metrics • Design metric - A measurable feature of a system’s implementation - Optimizing design metrics is a key challenge Introduction to Embedded Systems 29 challenge – optimizing design metrics • Common metrics - Unit cost: the monetary cost of manufacturing each copy of the system, excluding NRE cost - NRE cost (Non-Recurring Engineering cost): The one-time monetary cost of designing the system - Size: the physical space required by the system Performance: the execution time or throughput of the system Power: the amount of power consumed by the system Flexibility: the ability to change the functionality of the system without incurring heavy NRE cost Introduction to Embedded Systems 30 challenge – optimizing design metrics • Common metrics (continued) - Time-to-prototype: the time needed to build a working version of the system - Time-to-market: the time required to develop a system to the point that it can be released and sold to customers - Maintainability: the ability to modify the system after its initial release - Correctness, safety, many more Introduction to Embedded Systems 31 Design metric competition -- improving one may worsen others • Expertise with both software and hardware is needed to optimize design metrics Power Performance - Not just a hardware or software expert, as is common - A designer must be comfortable with various technologies in order to choose the best for a given application and constraints Size NRE cost CCD Digital camera chip A2D CCD preprocessor Pixel coprocessor D2A lens JPEG codec Microcontroller Multiplier/Accum DMA controller Memory controller Display ctrl ISA bus interface UART LCD ctrl Hardware Software Introduction to Embedded Systems 32 Time-to-market: a demanding design metric • Time required to develop a product to the point it can be sold to customers • Market window Revenues ($) - Period during which the product would have highest sales Time (months) • Average time-to-market constraint is about 8 months • Delays can be costly Introduction to Embedded Systems 33 Losses due to delayed market entry • Simplified revenue model Revenues ($) Peak revenue Peak revenue from delayed entry On-time Market fall Market rise Delayed D On-time entry Delayed entry - Product life = 2W, peak at W - Time of market entry defines a triangle, representing market penetration - Triangle area equals revenue • Loss W 2W Time - The difference between the on-time and delayed triangle areas Introduction to Embedded Systems 34 Losses due to delayed market entry (cont.) • Area = 1/2 * base * height - On-time = 1/2 * 2W * W - Delayed = 1/2 * (W-D+W)*(W-D) Revenues ($) Peak revenue Peak revenue from delayed entry On-time Market fall Market rise • Percentage revenue loss = (D(3W-D)/2W2)*100% • Try some examples Delayed D On-time entry Delayed entry W 2W Time – – – – – Lifetime 2W=52 wks, delay D=4 wks (4*(3*26 –4)/2*26^2) = 22% Lifetime 2W=52 wks, delay D=10 wks (10*(3*26 –10)/2*26^2) = 50% Delays are costly! Introduction to Embedded Systems 35 NRE and unit cost metrics • Costs: - Unit cost: the monetary cost of manufacturing each copy of the system, excluding NRE cost NRE cost (Non-Recurring Engineering cost): The one-time monetary cost of designing the system total cost = NRE cost + unit cost * # of units per-product cost = total cost / # of units = (NRE cost / # of units) + unit cost • Example – NRE=$2000, unit=$100 – For 10 units – total cost = $2000 + 10*$100 = $3000 – per-product cost = $2000/10 + $100 = $300 Amortizing NRE cost over the units results in an additional $200 per unit Introduction to Embedded Systems 36 NRE and unit cost metrics • Compare technologies by costs -- best depends on quantity - Technology A: NRE=$2,000, unit=$100 - Technology B: NRE=$30,000, unit=$30 - Technology C: NRE=$100,000, unit=$2 $200,000 B C $120,000 $80,000 $0 $0 1600 2400 C $80 $40 800 B $120 $40,000 0 A $160 p er p rod uc t c ost $160,000 tota l c ost (x1000) $200 A 0 Numb er of units (volume) 800 1600 2400 Numb er of units (volume) • But, must also consider time-to-market Introduction to Embedded Systems 37 The performance design metric • Widely-used measure of system, widely-abused - Clock frequency, instructions per second – not good measures Digital camera example – a user cares about how fast it processes images, not clock speed or instructions per second • Latency (response time) - Time between task start and end e.g., Camera’s A and B process images in 0.25 seconds • Throughput - Tasks per second, e.g. Camera A processes 4 images per second Throughput can be more than latency seems to imply due to concurrency, e.g. Camera B may process 8 images per second (by capturing a new image while previous image is being stored). • Speedup of B over S = B’s performance / A’s performance - Throughput speedup = 8/4 = 2 Introduction to Embedded Systems 38 Three key embedded system technologies • Technology - A manner of accomplishing a task, especially using technical processes, methods, or knowledge • Three key technologies for embedded systems - Processor technology - IC technology - Design technology Introduction to Embedded Systems 39 Processor technology • The architecture of the computation engine used to implement a system’s desired functionality • Processor does not have to be programmable - “Processor” not equal to general-purpose processor Controller Datapath Controller Datapath Controller Datapath Control logic and State register Control logic and State register Registers Control logic index Register file IR PC General ALU IR Custom ALU Data memory + PC Data memory Program memory Assembly code for: State register total Data memory Program memory Assembly code for: total = 0 for i =1 to … General-purpose (“software”) total = 0 for i =1 to … Application-specific Introduction to Embedded Systems Single-purpose (“hardware”) 40 Processor technology • Processors vary in their customization for the problem at hand Desired functionality General-purpose processor total = 0 for i = 1 to N loop total += M[i] end loop Application-specific processor Introduction to Embedded Systems Single-purpose processor 41 General-purpose processors • Programmable device used in a variety of applications - Also known as “microprocessor” • Features - Program memory - General datapath with large register file and general ALU Controller Datapath Control logic and State register Register file IR PC General ALU • User benefits - Low time-to-market and NRE costs - High flexibility • “Pentium” the most well-known, but there are hundreds of others Program memory Data memory Assembly code for: total = 0 for i =1 to … Introduction to Embedded Systems 42 Single-purpose processors • Digital circuit designed to execute exactly one program - a.k.a. coprocessor, accelerator or peripheral Controller Datapath Control logic index total • Features - Contains only the components needed to execute a single program - No program memory • Benefits State register + Data memory - Fast - Low power - Small size Introduction to Embedded Systems 43 Application-specific processors • Programmable processor optimized for a particular class of applications having common characteristics - Compromise between general-purpose and single-purpose processors • Features Controller Datapath Control logic and State register Registers Custom ALU IR - Program memory - Optimized datapath - Special functional units • Benefits - Some flexibility, good performance, size and power Introduction to Embedded Systems PC Program memory Data memory Assembly code for: total = 0 for i =1 to … 44 IC technology • The manner in which a digital (gate-level) implementation is mapped onto an IC - IC: Integrated circuit, or “chip” - IC technologies differ in their customization to a design - IC’s consist of numerous layers (perhaps 10 or more) - IC technologies differ with respect to who builds each layer and when IC package IC source gate oxide channel drain Silicon substrate Introduction to Embedded Systems 45 IC technology • Three types of IC technologies - Full-custom/VLSI - Semi-custom ASIC (gate array and standard cell) - PLD (Programmable Logic Device) Introduction to Embedded Systems 46 Full-custom/VLSI • All layers are optimized for an embedded system’s particular digital implementation - Placing transistors - Sizing transistors - Routing wires • Benefits - Excellent performance, small size, low power • Drawbacks - High NRE cost (e.g., $300k), long time-to-market Introduction to Embedded Systems 47 Semi-custom • Lower layers are fully or partially built - Designers are left with routing of wires and maybe placing some blocks • Benefits - Good performance, good size, less NRE cost than a full-custom implementation (perhaps $10k to $100k) • Drawbacks - Still require weeks to months to develop Introduction to Embedded Systems 48 PLD (Programmable Logic Device) • All layers already exist - Designers can purchase an IC - Connections on the IC are either created or destroyed to implement desired functionality - Field-Programmable Gate Array (FPGA) very popular • Benefits - Low NRE costs, almost instant IC availability • Drawbacks - Bigger, expensive (perhaps $30 per unit), power hungry, slower Introduction to Embedded Systems 49 Moore’s law • The most important trend in embedded systems - Predicted in 1965 by Intel co-founder Gordon Moore IC transistor capacity has doubled roughly every 18 months for the past several decades 10,000 1,000 Logic transistors per chip (in millions) 100 10 1 0.1 Note: logarithmic scale 0.01 0.001 Introduction to Embedded Systems 50 Moore’s law • Wow - This growth rate is hard to imagine, most people underestimate - How many ancestors do you have from 20 generations ago - i.e., roughly how many people alive in the 1500’s did it take to make you? - 220 = more than 1 million people - (This underestimation is the key to pyramid schemes!) Introduction to Embedded Systems 51 Graphical illustration of Moore’s law 1981 1984 1987 1990 1993 1996 1999 2002 10,000 transistors 150,000,000 transistors Leading edge chip in 1981 Leading edge chip in 2002 • Something that doubles frequently grows more quickly than most people realize! - A 2002 chip can hold about 15,000 1981 chips inside itself Introduction to Embedded Systems 52 Design Technology • The manner in which we convert our concept of desired system functionality into an implementation Compilation/ Synthesis Compilation/Synthesis: Automates exploration and insertion of implementation details for lower level. Libraries/IP: Incorporates predesigned implementation from lower abstraction level into higher level. Test/Verification: Ensures correct functionality at each level, thus reducing costly iterations between levels. Libraries/ IP Test/ Verification System specification System synthesis Hw/Sw/ OS Model simulat./ checkers Behavioral specification Behavior synthesis Cores Hw-Sw cosimulators RT specification RT synthesis Logic specification Logic synthesis RT HDL simulators components Gates/ Cells Gate simulators To final implementation Introduction to Embedded Systems 53 The co-design ladder • In the past: Sequential program code (e.g., C, VHDL) - Hardware and software design technologies were very different - Recent maturation of synthesis enables a unified view of hardware and software • Hardware/software “codesign” Compilers (1960's,1970's) Behavioral synthesis (1990's) Register transfers Assembly instructions RT synthesis (1980's, 1990's) Assemblers, linkers (1950's, 1960's) Logic equations / FSM's Machine instructions Logic synthesis (1970's, 1980's) Logic gates Implementation Microprocessor plus VLSI, ASIC, or PLD program bits: “software” implementation: “hardware” The choice of hardware versus software for a particular function is simply a tradeoff among various design metrics, like performance, power, size, NRE cost, and especially flexibility; there is no fundamental difference between what hardware or software can implement. Introduction to Embedded Systems 54 Independence of processor and IC technologies • Basic tradeoff - General vs. custom - With respect to processor technology or IC technology - The two technologies are independent General, providing improved: Generalpurpose processor ASIP Singlepurpose processor Flexibility Maintainability NRE cost Time- to-prototype Time-to-market Cost (low volume) Customized, providing improved: Power efficiency Performance Size Cost (high volume) PLD Semi-custom Full-custom Introduction to Embedded Systems 55 Design productivity gap • While designer productivity has grown at an impressive rate over the past decades, the rate of improvement has not kept pace with chip capacity Logic transistors per chip (in millions) 10,000 100,000 1,000 10,000 100 10 1000 Gap IC capacity 1 10 0.1 0.01 100 Productivity (K) Trans./Staff-Mo. 1 productivity 0.001 0.1 0.01 Introduction to Embedded Systems 56 Design productivity gap • 1981 leading edge chip required 100 designer months - 10,000 transistors / 100 transistors/month • 2002 leading edge chip requires 30,000 designer months - 150,000,000 / 5000 transistors/month • Designer cost increase from $1M to $300M Logic transistors per chip (in millions) 10,000 100,000 1,000 10,000 100 10 1 0.1 0.01 Gap IC capacity productivity 0.001 1000 100 10 1 Productivity (K) Trans./Staff-Mo. 0.1 0.01 Introduction to Embedded Systems 57 The mythical man-month • The situation is even worse than the productivity gap indicates • • In theory, adding designers to team reduces project completion time In reality, productivity per designer decreases due to complexities of team management and communication In the software community, known as “the mythical man-month” (Brooks 1975) At some point, can actually lengthen project completion time! (“Too many cooks”) • • • • • 1M transistors, 1 designer=5000 trans/month Each additional designer reduces for 100 trans/month So 2 designers produce 4900 trans/month each 60000 50000 40000 30000 20000 10000 16 Team 15 16 19 18 23 24 Months until completion 43 Individual 0 10 20 30 Number of designers Introduction to Embedded Systems 40 58 Summary • Embedded systems are everywhere • Key challenge: optimization of design metrics - Design metrics compete with one another • A unified view of hardware and software is necessary to improve productivity • Three key technologies - Processor: general-purpose, application-specific, single-purpose - IC: Full-custom, semi-custom, PLD - Design: Compilation/synthesis, libraries/IP, test/verification Introduction to Embedded Systems 59