Unit 1: Embedded Operating Systems for IoT
1 Embedded Systems
1.1 Overview of Embedded Systems
• Embedded systems are computing systems embedded within devices, unlike general-purpose
systems like PCs or servers.
• These systems are prevalent and vastly outnumber traditional desktop units.
• Examples range from simple devices (toys, thermostats) to complex systems (avionics, medical
equipment).
1.2 Design Challenges in Embedded Systems
The primary challenge in embedded system design is optimizing design metrics, such as:
• Cost: Minimizing unit and non-recurring engineering (NRE) costs.
• Performance: Ensuring optimal execution time and throughput.
• Power: Reducing power consumption.
• Size: Reducing the physical space the system occupies.
• Flexibility: Allowing changes without significant redesign costs.
• Time-to-Market: Minimizing the time from concept to market release.
• Maintainability: The system’s ease of modification post-release.
1.3 Parts of an Embedded System
• Processor: The core computational element.
• Memory: Stores both the system’s program and its data.
• I/O Interfaces: Interfaces to input sensors and output actuators.
• Actuators: Perform mechanical actions (e.g., valves).
• Sensors: Input devices providing real-time data (e.g., accelerometers).
1.4 Characteristics of Embedded Systems
• Single-functioned: Executes one specific program repeatedly.
• Tightly-constrained: Designed to operate within strict limits (low cost, power, and size).
• Real-time: Must respond to inputs and events within precise time constraints.
1
, 1.5 Design Metrics in Detail
• Unit Cost: Cost to manufacture each unit, excluding the initial design.
• NRE (Non-Recurring Engineering) Cost: The one-time cost for system design.
• Size: Physical space required by the system.
• Performance: Measures such as latency and throughput.
• Power: Total energy consumption.
• Time-to-prototype: Time required to produce a working system prototype.
1.6 Design Methodologies
1.6.1 Compilation/Synthesis
• Definition: Automates the process of system design by converting high-level descriptions
into hardware or software implementations.
• How it Works: Converts high-level specifications into hardware circuits (e.g., Verilog to
FPGAs) or software code.
• Example: Converting Verilog or VHDL code into hardware circuits for FPGAs or ASICs.
1.6.2 Verification
• Definition: Ensures that the design functions correctly at every stage of development.
• How it Works: Uses simulation or formal verification to check if the design meets specifica-
tions and operates without faults.
• Benefit: Reduces costly design iterations by identifying errors early.
1.6.3 Co-Design
• Definition: Designs both hardware and software together in an integrated approach.
• How it Works: Starts with an abstract system specification, refining both hardware and
software components for optimal performance.
• Benefit: Improves hardware-software interaction and reduces time-to-market.
1.7 Complex Systems and Co-Design
1.7.1 System-on-a-Chip (SoC)
• Definition: Integrates all essential computing components onto a single chip.
• How it Works: Combines millions of transistors and gates into one chip, handling everything
from computation to communication.
• Benefit: High performance and energy efficiency with reduced size and cost.
2