Embedded System Design : : Embedded Systems Foundations of Cyber-Physical Systems, and the Internet of Things.

Saved in:
Bibliographic Details
Superior document:Embedded Systems Series
:
Place / Publishing House:Cham : : Springer International Publishing AG,, 2021.
©2021.
Year of Publication:2021
Edition:4th ed.
Language:English
Series:Embedded Systems Series
Online Access:
Physical Description:1 online resource (446 pages)
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • Intro
  • Preface
  • Why Should You Read This Book?
  • Who Should Read the Book?
  • How Is This Book Different from Earlier Editions?
  • Acknowledgments
  • Contents
  • About the Author
  • Frequently Used Mathematical Symbols
  • 1 Introduction
  • 1.1 History of Terms
  • 1.2 Opportunities
  • 1.3 Challenges
  • 1.4 Common Characteristics
  • 1.5 Curriculum Integration of Embedded Systems, CPS, and IoT
  • 1.5.1 Prerequisites
  • 1.5.2 Recommended Additional Courses
  • 1.6 Design Flows
  • 1.7 Structure of This Book
  • 1.8 Problems
  • 2 Specifications and Modeling
  • 2.1 Requirements
  • 2.2 Models of Computation
  • 2.3 Early Design Phases
  • 2.3.1 Use Cases
  • 2.3.2 (Message) Sequence Charts and Time/Distance Diagrams
  • 2.3.3 Differential Equations
  • 2.4 Communicating Finite State Machines (CFSMs)
  • 2.4.1 Timed Automata
  • 2.4.2 StateCharts
  • Modeling of Hierarchy
  • Timers
  • Edge Labels and StateMate Semantics
  • Evaluation and Extensions
  • 2.4.3 Synchronous Languages
  • Motivation
  • Examples of Synchronous Languages: Esterel, Lustre, and SCADE
  • 2.4.4 Message Passing: SDL as an Example
  • Features of the Language
  • Evaluation of SDL
  • 2.5 Data Flow
  • 2.5.1 Scope
  • 2.5.2 Kahn Process Networks
  • 2.5.3 SDF
  • 2.5.4 Simulink
  • 2.6 Petri Nets
  • 2.6.1 Introduction
  • 2.6.2 Condition/Event Nets
  • 2.6.3 Place/Transition Nets
  • 2.6.4 Predicate/Transition Nets
  • 2.6.5 Evaluation
  • 2.7 Discrete Event-Based Languages
  • 2.7.1 Basic Discrete Event Simulation Cycle
  • 2.7.2 Multi-Valued Logic
  • One Signal Strength (Two Logic Values)
  • Two Signal Strengths (Three and Four Logic Values)
  • Three Signal Strengths (Seven Signal Values)
  • Four Signal Strengths (Ten Signal Values)
  • Five Signal Strengths
  • 2.7.3 Transaction-Level Modeling (TLM)
  • 2.7.4 SpecC
  • 2.7.5 SystemC
  • 2.7.6 VHDL
  • Introduction
  • Entities and Architectures
  • Assignments.
  • VHDL Processes
  • The VHDL Simulation Cycle
  • IEEE 1164
  • 2.7.7 Verilog and SystemVerilog
  • 2.8 von Neumann Languages
  • 2.8.1 CSP
  • 2.8.2 Ada
  • 2.8.3 Communication Libraries
  • MPI
  • OpenMP
  • 2.8.4 Additional Languages
  • 2.9 Levels of Hardware Modeling
  • 2.10 Comparison of Models of Computation
  • 2.10.1 Criteria
  • 2.10.2 Unified Modeling Language (UML)
  • 2.10.3 Ptolemy II
  • 2.11 Problems
  • 3 Embedded System Hardware
  • 3.1 Introduction
  • 3.2 Input: Interface Between Physical and Cyber-World
  • 3.2.1 Sensors
  • 3.2.2 Discretization of Time: Sample-and-Hold Circuits
  • 3.2.3 Fourier Approximation of Signals
  • 3.2.4 Discretization of Values: Analog-to-Digital Converters
  • Flash ADC
  • Successive Approximation
  • Pipelined Converters
  • Other Converters
  • Comparison of ADCs
  • Quantization Noise
  • 3.3 Processing Units
  • 3.3.1 Application-Specific Integrated Circuits (ASICs)
  • 3.3.2 Processors
  • Energy Efficiency
  • Code Size Efficiency
  • Execution Time Efficiency Using Digital Signal Processing as an Example
  • Multimedia and Short Vector Instruction Sets
  • Very Long Instruction Word (VLIW) Processors
  • VLIW Pipelines
  • Multi-core Processors
  • Graphics Processing Units (GPUs)
  • Multiprocessor Systems on a Chip (MPSoCs)
  • 3.3.3 Reconfigurable Logic
  • 3.4 Memories
  • 3.4.1 Conflicting Goals
  • 3.4.2 Memory Hierarchies
  • 3.4.3 Register Files
  • 3.4.4 Caches
  • 3.4.5 Scratchpad Memories
  • 3.5 Communication
  • 3.5.1 Requirements
  • 3.5.2 Electrical Robustness
  • 3.5.3 Guaranteeing Real-Time Behavior
  • 3.5.4 Examples
  • 3.6 Output: Interface Between Cyber and Physical World
  • 3.6.1 Digital-to-Analog Converters
  • 3.6.2 Sampling Theorem
  • 3.6.3 Pulse-Width Modulation
  • 3.6.4 Actuators
  • 3.7 Electrical Energy
  • 3.7.1 Energy Sources
  • 3.7.2 Energy Storage
  • 3.7.3 Energy Efficiency of Hardware Components.
  • The Case of Mobile Phones
  • Sensor Networks
  • 3.8 Secure Hardware
  • 3.9 Problems
  • 4 System Software
  • 4.1 Embedded Operating Systems
  • 4.1.1 General Requirements
  • 4.1.2 Real-Time Operating Systems
  • 4.1.3 Virtual Machines
  • 4.2 Resource Access Protocols
  • 4.2.1 Priority Inversion
  • 4.2.2 Priority Inheritance
  • 4.2.3 Priority Ceiling Protocol
  • 4.2.4 Stack Resource Policy
  • 4.3 ERIKA
  • 4.4 Embedded Linux
  • 4.4.1 Embedded Linux Structure and Size
  • 4.4.2 Real-Time Properties
  • 4.4.3 Flash Memory File Systems
  • 4.4.4 Reducing RAM Usage
  • 4.4.5 uClinux: Linux for MMU-Less Systems
  • 4.4.6 Evaluating the Use of Linux in Embedded Systems
  • 4.5 Hardware Abstraction Layer
  • 4.6 Middleware
  • 4.6.1 OSEK/VDX COM
  • 4.6.2 CORBA
  • 4.6.3 POSIX Threads (Pthreads)
  • 4.6.4 UPnP and DPWS
  • 4.7 Real-Time Databases
  • 4.8 Problems
  • 5 Evaluation and Validation
  • 5.1 Introduction
  • 5.1.1 Scope
  • 5.1.2 Multi-Objective Optimization
  • 5.1.3 Relevant Objectives
  • 5.2 Performance Evaluation
  • 5.2.1 Early Phases
  • 5.2.2 WCET Estimation
  • 5.2.3 Real-Time Calculus
  • 5.3 Quality Metrics
  • 5.3.1 Approximate Computing
  • 5.3.2 Simple Criteria of Quality
  • 5.3.3 Criteria for Data Analysis
  • 5.4 Energy and Power Models
  • 5.4.1 General Properties
  • 5.4.2 Energy Model for Memories
  • 5.4.3 Energy Model for Instructions
  • 5.4.4 Energy Model for Functional Processor Units
  • 5.4.5 Energy Model for Processor and Memory
  • 5.4.6 Energy Model for an Application
  • 5.4.7 Energy Model for Multiple Applications with Hardware Multithreading
  • 5.4.8 Energy Model for an Android Mobile Phone
  • 5.4.9 Worst Case Energy Consumption
  • 5.5 Thermal Models
  • 5.5.1 Steady-State Behavior
  • 5.5.2 Transient State Behavior
  • 5.6 Dependability and Risk Analysis
  • 5.6.1 Aspects of Dependability
  • 5.6.2 Security Analysis
  • 5.6.3 Safety Analysis.
  • 5.6.4 Reliability Analysis
  • 5.6.5 Fault Tree Analysis, Failure Mode, and Effect Analysis
  • 5.7 Simulation
  • 5.8 Rapid Prototyping and Emulation
  • 5.9 Formal Verification
  • 5.10 Problems
  • 6 Application Mapping
  • 6.1 Definition of Scheduling Problems
  • 6.1.1 Elaboration on the Design Problem
  • 6.1.2 Types of Scheduling Problems
  • The α Field
  • The β Field
  • The γ Field
  • 6.2 Scheduling for Uniprocessors
  • 6.2.1 Scheduling for Independent Jobs
  • Earliest Due Date (EDD) Algorithm
  • Earliest Deadline First (EDF) Algorithm
  • Least Laxity (LL) Algorithm
  • Scheduling Without Preemption
  • 6.2.2 Scheduling with Precedence Constraints
  • Task Graphs
  • Latest Deadline First (LDF) Algorithm
  • 6.2.3 Periodic Scheduling Without Precedence Constraints
  • Notation
  • Rate Monotonic Scheduling
  • Earliest Deadline First Scheduling
  • Explicit-Deadline Tasks
  • Deadline Monotonic Scheduling
  • 6.2.4 Periodic Scheduling with Precedence Constraints
  • 6.2.5 Sporadic Events
  • 6.3 Scheduling for Independent Jobs on Identical Multiprocessors
  • 6.3.1 Partitioned Scheduling
  • 6.3.2 Global Dynamic-Priority Scheduling
  • Proportional Fair (Pfair) Scheduling
  • 6.3.3 Global Fixed-Job-Priority Scheduling
  • G-EDF Scheduling
  • EDZL Scheduling
  • 6.3.4 Global Fixed-Task-Priority Scheduling
  • Global Rate Monotonic Scheduling
  • RMZL Scheduling
  • Partitioned Scheduling for Explicit Deadlines
  • 6.4 Dependent Jobs on Homogeneous Multiprocessors
  • 6.4.1 As-Soon-as-Possible Scheduling
  • 6.4.2 As-Late-as-Possible Scheduling
  • 6.4.3 List Scheduling
  • 6.4.4 Optimal Scheduling with Integer Linear Programming
  • 6.5 Dependent Jobs on Heterogeneous Multiprocessors
  • 6.5.1 Problem Description
  • 6.5.2 Static Scheduling with Local Heuristics
  • 6.5.3 Static Scheduling with Integer Linear Programming
  • 6.5.4 Static Scheduling with Evolutionary Algorithms.
  • 6.5.5 Dynamic and Hybrid Scheduling
  • 6.6 Problems
  • 7 Optimization
  • 7.1 High-Level Optimizations
  • 7.1.1 Simple Loop Transformations
  • 7.1.2 Loop Tiling/Blocking
  • 7.1.3 Loop Splitting
  • 7.1.4 Array Folding
  • 7.1.5 Floating-Point to Fixed-Point Conversion
  • 7.2 Task-Level Concurrency Management
  • 7.3 Compilers for Embedded Systems
  • 7.3.1 Introduction
  • 7.3.2 Energy-Aware Compilation
  • 7.3.3 Memory-Architecture Aware Compilation
  • Compilation Techniques for Scratchpads
  • Non-overlaying Allocation
  • Overlaying Allocation
  • Multiple Threads/Processes
  • Supporting Different Architectures and Objectives
  • 7.3.4 Reconciling Compilers and Timing Analysis
  • 7.4 Power and Thermal Management
  • 7.4.1 Dynamic Voltage and Frequency Scaling (DVFS)
  • 7.4.2 Dynamic Power Management (DPM)
  • 7.4.3 Thermal Management
  • 7.5 Problems
  • 8 Test
  • 8.1 Scope
  • 8.2 Test Procedures
  • 8.2.1 Test Pattern Generation for Gate-Level Models
  • 8.2.2 Self-Test Programs
  • 8.3 Evaluation of Test Pattern Sets and System Robustness
  • 8.3.1 Fault Coverage
  • 8.3.2 Fault Simulation
  • 8.3.3 Fault Injection
  • 8.4 Design for Testability
  • 8.4.1 Motivation
  • 8.4.2 Scan Design
  • 8.4.3 Signature Analysis
  • 8.4.4 Pseudo-random Test Pattern Generation
  • 8.5 Problems
  • Correction to: Evaluation and Validation
  • A Integer Linear Programming
  • B Kirchhoff's Laws and Operational Amplifiers
  • B.1 Kirchhoff's Laws
  • B.2 Operational Amplifiers
  • C Paging and Memory Management Units
  • References
  • Index.