ACtE0404 Hardware-software design issues on embedded system¶
Embedded-system overview¶
An embedded system is a computing system dedicated to a specific function inside a larger product or control environment.
Common characteristics:
- application-specific behavior;
- constraints on cost, power, size, and reliability;
- close interaction with sensors, actuators, and real-world timing;
- limited memory and compute relative to desktop/server systems;
- often real-time requirements.
Classification of embedded systems¶
| Basis | Categories | Recognition |
|---|---|---|
| Complexity | small-scale, medium-scale, sophisticated | resource scale and design sophistication |
| Timing | hard real-time, soft real-time, non-real-time | deadline strictness |
| Role | stand-alone, networked, mobile, control-oriented | application environment |
| Implementation emphasis | microcontroller-based, DSP-based, FPGA/ASIC-based, SoC-based | hardware platform emphasis |
Validity condition:
- "real-time" means meeting timing deadlines, not merely being fast on average.
Custom single-purpose processor design¶
Single-purpose processor = hardware datapath/control tailored for one algorithm or narrow task.
Advantages:
- high performance per watt;
- low run-time overhead;
- predictable operation.
Tradeoffs:
- less flexible than software on a general-purpose CPU;
- higher non-recurring engineering effort;
- harder to retarget after fabrication unless reconfigurable logic is used.
Optimizing custom single-purpose processors¶
Optimization levers:
- parallelize independent operations;
- pipeline long datapaths;
- reduce memory traffic;
- exploit specialized arithmetic units;
- tailor word width to required numeric range/precision;
- schedule operations around latency bottlenecks.
Recognition cue: hardware specialization improves efficiency only when the workload is stable enough to justify the specialization cost.
Basic architecture, operation, and programmer's view¶
Embedded architecture often includes:
- CPU or custom datapath;
- on-chip memory and buses;
- timers/counters;
- GPIO;
- serial interfaces;
- interrupt controller;
- watchdog;
- ADC/DAC as needed.
Programmer's view often centers on:
- register map;
- memory map;
- interrupt vectors;
- peripheral control/status registers;
- startup/reset behavior.
Typical operation begins with reset and initialization, then follows a polling/event loop or interrupt-driven sense -> compute -> actuate cycle. A watchdog or fault handler may recover stalled operation.
Abstraction-level cue:
- algorithmic or behavioral modeling simulates the required algorithm without exposing gate, switch, or circuit implementation;
- register-transfer level (RTL), gate level, switch level, and circuit level progressively expose more implementation detail.
Development environment¶
Typical embedded development flow:
- edit source code or HDL;
- compile/assemble/synthesize;
- link/build image or bitstream;
- load or flash target;
- debug with simulator, ICE, JTAG, SWD, serial monitor, or logic analyzer;
- test timing and hardware interaction.
Cross-development cue:
- code is often built on a host machine but runs on a different target architecture.
Application-Specific Instruction-Set Processor (ASIP)¶
ASIP sits between general-purpose processor and ASIC/single-purpose hardware.
| Option | Flexibility | Efficiency for target domain |
|---|---|---|
| General-purpose CPU | high | moderate |
| ASIP | medium | high for chosen application family |
| ASIC / pure single-purpose processor | low | very high |
Recognition cue: ASIP extends programmability while adding domain-specific instructions or datapaths.
Embedded-design revision box¶
- Embedded system = dedicated computing inside a product/control context.
- Real-time means deadline-aware, not merely fast.
- Custom single-purpose hardware trades flexibility for efficiency.
- ASIP is a middle ground between CPU and ASIC.
- Programmer's view centers on memory-mapped peripherals, interrupts, and startup state.
- Cross-compilation is common in embedded development.