An Introduction to Embedded Systems Florian Lechner, Daniel Walter [email protected] ac. at, [email protected] ac. at November 8, 2006 Abstract This text provides a brief introduction to the wide ? eld of embedded systems. It covers the history and the main aspects of hard- and software design for embedded systems. The basic concepts of synthesis and automated veri? cation are introduced and a short overview of well-known metrics, which are used to describe the economical and technical attributes of a system, is provided. Additionally the di? rences between commonly used operating systems are discussed. 1 Introduction Figure 1: Minuteman I Guidance System Embedded systems are computers which are part of special-purpose devices. Due to the limited duties this systems can be highly optimized to the particular needs. Traditionally most of this systems are used for control and process measurement, as a side-e? ect of higher integration of integrated circuits more complex applications can be solved by embedded systems. To be able to solve this problems embedded systems are commonly equipped with various kinds of peripherals.
Early applications of embedded devices include the guidance computer of the Minuteman I missiles and the Apollo guidance computer. The Minuteman I & II missiles are intercontinental ballistic nuclear warheads, produced by Boeing in the 1960’s. Due to the large quantities of ICs used in the guidance system of Minuteman II missiles, prices for ICs fell from 1000$ each to 3$ each. This lead to wide adoption of embedded systems in consumerelectronics in the 1980’s. Nowadays embedded systems can be found in devices from digital watches to tra? c-control systems.
The broad range of applications with totally different requirements lead to various implementation approaches. The range of hardware used in embedded systems reaches from FPGAs to full blown desktop CPUs which are accompanied by specialpurpose ICs such as DSPs. On the software side, depending on the needs, everything, from logic fully implemented in hardware, to systems with own operating system and di? erent applications running on it, can be found. 1 2 Metrics for Embedded Sys- 3 Hardware Platforms tems Based on the metrics, introduced in the above sec- ion, processors for embedded systems can be disIn order to be able to compare di? erent designs and tinguished by the grade of customization they grant approaches, there need to be pre-de? ned, system and the performance they achieve. independent, metrics. These can either be technical speci? cations or economical criteria. 3. 1 Standard General Purpose Processors 2. 1 Technical Metrics Technical metrics are mainly used to compare technical designs and speci? cations of embedded devices or to determine if technical requirements have been ful? lled.
Performance describes the execution time or throughput of the system. Energy E? ciency is an indicator for the amount of power consumed by the device. Size as a metric is used if there are constraints for physical size (eg: pacemaker) Flexibility is a metric for ease of recon? guration and reusability. Standard general purpose processors (SGPP) are carefully designed and o? er a maximum of ? exibility to the designer. Programming SGPPs can be done in nearly every high-level language or assembly language and requires very little knowledge of the system architecture.
As SGPPs are manufactured to high numbers, NRE is spread upon many units. Nevertheless SGPPs are more expensive then other solutions like FPGAs or single purpose processors, when used in products with a large number of selling units. As they are produced to work in a broad range of environments they are not designed to be energy e? cient nor high-performance for speci? c applications. Examples for standard general purpose processors are: • Motorola ARM 2. 2 Economical Metrics • Atmel AVR • Microchip PIC • Intel Pentium-(I/II/III/IV)-Series • AMD Athlon (or other) • VIA EDEN
Economical metrics are mostly used to determine which COTS should be use or if the systems will be brought into the market. Unit Cost describes the monetary cost if manufacturing each copy of the system, excluding NRE cost. Non-Recurring Engineering (NRE) are the one-time monetary cost of designing the system. Flexibility in a economical sense describes the ability to change the functionality of the system without incurring heavy NRE cost. Time to Market indicates the amount of time to develop a system to the point that it can be released and sold to customers. 2 3. 2 Standard Single Purpose Processors (SSPP)
Standard single purpose processors, sometimes called peripherals, are ”o? -the-shelf” pre-designed processors, optimized for a single task, such as digital signal processing, analog to digital conversion, timing, etc. SSPPs are manufactured in high quantities, so NRE is spread upon many units. The total costs per SSPP unit are lower than for custom single purpose processors. 3. 3 Custom Single Purpose Processors (CSPP) As the name suggests, custom single purpose processors are designed for a very speci? c task. This implies, less ? exibility, longer time-to-market and high costs.
On the other hand CSPP can be designed to be very small, fast and power-e? cient. Examples for such CSPP are FPGAs or more general PLDs. 3. 4 Application Speci? c InstructionSet Processors (ASIP) ASIPs are basically standard general purpose processors which are extended by domain-speci? c instructions. This allows domain-relevant tasks to be performed highly optimized, while keeping the ? exibility of general purpose processors. 4 Speci? cation/Design of Embedded Systems When designing an embedded system, usually, the ? rst step is to specify the intended or required functionality.
This is mostly be done using natural language, after the functionality is speci? ed it is formalized in some sort of de? nition language such as VHDL or Verilog. Subsequently the resulting design is converted into hardware or software components which are then implemented. Figure 2: Designprocess for a embedded system Abstraction The Gajski-Kuhn Y-chart (Figure 3) visualizes the di? erent layers of abstraction, which can be used in the design process. This abstraction allows the designer to focus on di? erent aspects of the behavioral, structural and geometrical design of the embedded system. commonly automated.
This proofs to be challenging due to it’s inherently high complexity. Furthermore optimization of the given design metrics must be taken into account when implementing formal descriptions into actual hard- or software. To counter this problems, the whole system is divided into smaller parts, which can be transformed using algorithms which are based on complex heuristics. As the quality of the implementation heavily depends on the quality of the algorithms used to produce it, software for automated implementation of formalized designs usually costs in the range from 100$ up to several 10000$. 3 Automation
Nowadays, there is software which can automate some of the steps mentioned above. Especially the process of transforming a formalized description to an actual implementation in hard- or software is ( as de? nitions in any hardware description language like VHDL). Summary As circuit capacities are constantly growing industry seeks improve the productivity of designers. To accomplish this, tools for synthesis (automated conversion of formalized descriptions of system behavior) and veri? cation are developed. Besides these tools there exists the possibility to license complete chip architectures as intellectual property.
This allows for the use of tested components which can be customized or extended to the actual needs, thereby reducing the required testing and time-tomarket. Increased IC capacity means that traditionally hardware/software components can coexist on on chip and allow the designer to implement speed relevant functions as hardware or realized complex hardware in software to reduce the design costs. Figure 3: Gajski-Kuhn Y-Chart Veri? cation In the veri? cation process, correctness and completeness of a design are checked. Therefor de? nitions for correctness and completeness need to be de? ned.
Correctness is the right implementation of the given hardware speci? cations. Completeness de? nes that each input signal results in an appropriate output signal. For small designs or to verify only certain key features, formal veri? cation is a possibility. For larger or complex systems it is very hard or results in higher costs. So usually such systems are checked by simulation instead of formal veri? cation. Simulations provide extended control of the design and allow the designer to observe the processes which are usually running within a chip. Therefor simulations can be used to increase the con? ence in the correctness and completeness of a design but cannot prove either. It is also a commonly used tool to debug the systems behavior. 5 Programming Systems Embedded Unlike personal computers, embedded systems usually aren’t programmed on the platform the program is intended to run. This requires special toolchains with cross-compilers and emulators to test the code before deploying it to the target platform. Depending on the applications needs, there are di? erent approaches to implement the software. One possibility is to directly control the hardware out of the program.
This is the approach with the highest performance, but requires more knowledge about the used architecture and peripherals than using an operating system. On the other hand operating systems provide functionalities for multiprocessing and allow the designer to develop mostly independent from the underlying architecture. Reuse 5. 1 Operating Systems for Embed- To reduce design-costs and time-to-market comded Devices mercial o? -the-shelf components (COTS) are used wherever possible. This COTS also reduce debug- Operating Systems (for embedded systems) are ging time, because they are sold as predesigned, classi? d into Real-Time Operating Systems and prepackaged components or as intellectual property Non-Real-Time OS. 4 Real Time Operating Systems are operating systems which guarantee responses to each event within a de? ned amount of time. This type of operating system is mainly used by time-critical applications such as measurement and control systems. Some commonly used RTOS for embedded systems are: VxWorks, OS-9, Symbian, RTLinux. Non-Real Time Operating Systems do not guarantee de? ned response times. Those systems are mostly used if multiple applications are needed.
Windows CE and PalmOS are examples for such embedded operating systems. References  Frank Vahid, Tony Givargis: Embedded System Design: A Uni? ed Hardware/Software Introduction. John Wiley & Sons; ISBN 0471386782, 2002  http://www. windriver. com/vxworks/index. html  http://www. symbian. com  http://www. rtlinuxfree. com  http://www. microsoft. com/embedded/  http://www. radisys. com/products/ Microware%20OS-9. cfm 5. 2 Applications for Embedded Systems Depending on the intended task of the device an embedded system is used in, applications can range from simple measurement duties to fullblown word-processors.
List of Figures 1 Minuteman I Guidance System from ”A FOURTH SURVEY OF DOMESTIC ELECTRONIC DIGITAL COMPUTING SYSTEMS”, Martin H. Weik, ”BALLISTIC RESEARCH LABORATORIES ABERDEEN PROVING GROUND, MARYLAND, (a US government report) . . . . . . . . . . . . . . . . . . Designprocess for a embedded system Gajski-Kuhn Y-Chart from Lecture Slides to  . . . . . . . . . . . . . . 6 Conclusion As integrated circuits get continuously cheaper, more capable and power e? cient, complexity of chip designs are constantly growing. This is illustrated by new design approaches such as NoC and multi-core technologies.
To handle this increased complexity, existing tools o? er functionality for various level of simulation and basic capabilities for synthesizing design given as formal descriptions. As there is no foreseeable end to this development, higher abstractions for the design process need to be invented. 2 3 1 3 4 5 Appendix A: Acronyms and Abbreviations AC ADC ALU ASIC CAN CPU CPLD DAC Demux EDA EPROM HDL HLL IC ICE I/O LA MSI OCD PAL PC PDA SoC SOIC SSI UML VHDL Alternating Current Analog-to-Digital Converter Arithmetic Logic Unit Application Speci? Integrated Circuit Controller Area Network Central Processing Unit Complex Programmable Logic Device Digital-to-Analog Converter Demultiplexer Electronic Design Automation Erasable Programmable Read Only Memory Hardware Description Language High-level Language Integrated Circuit In-Circuit Emulator Input/Output Logic Analyzer Medium Scale Integration On Chip Debugging Programmable Array Logic, Phase Alternating Line Personal Computer Personal Digital Assistant System-On-Chip Small Outline Integrated Circuit Small Scale Integration Unde? ned Markup Language Very High Speed Integrated Circuit Hardware Design Language 6