Table of Contents
What are the Challenges in Embedded Systems Design?
What are the Challenges in Embedded Systems Design? Many embedded systems have substantially different design constraints than desktop computing applications. No single characterization applies to the diverse spectrum of embedded systems. However, some combination of cost pressure, long life-cycle, real-time requirements, reliability requirements, and design culture dysfunction can make it difficult to be successful applying traditional computer design methodologies and tools to embedded applications. The extreme diversity of embedded applications makes generalizations difficult. “Design challenges” encountered in the course of designing several real systems. These challenges are both opportunities to improve methodology and tool support as well as impediments to deploying such support to embedded system design teams.
List of Challenges of Embedded System Designs:
Following challenges encountered in embedded system designs:
- Computer Design Requirements
- System-level requirements
- Life-cycle support
- Component acquisition
- Business model
- Design culture
Computer Design Requirements
Embedded computers typically have tight constraints on both functionality and implementation. In particular, they must guarantee real time operation reactive to external events, conform to size and weight limits, budget power and cooling consumption, satisfy safety and reliability requirements, and meet tight cost targets.
Real time/reactive operation:
Worst case design analyses without undue pessimism in the face of hardware with statistical performance characteristics (e.g., cache memory).
- Non-rectangular, non-planar geometries.
- Packaging and integration of digital, analog, and power circuits to reduce size.
- Low-cost reliability with minimal redundancy.
- Harsh environment:
- Design challenges:
- Accurate thermal modeling.
- De-rating components differently for each design, depending on operating environment.
- Cost sensitivity:
Variable “design margin” to permit tradeoff between product robustness & aggressive cost optimization.
- System-level requirements
- End-product utility:
Software- and I/O-driven hardware synthesis
- System safety & reliability:
- Reliable software.
- Cheap, available systems using unreliable components.
- Electronic non-electronic design tradeoffs.
- Controlling physical systems:
- Distributed system tradeoffs among analog, power, mechanical, network, and digital hardware plus software.
- Power management:
- Ultra-low power design for long-term battery operation.
- Life-cycle support:
- Component acquisition:
- Life-cycle, cross-design component cost models and optimization rather than simple per-unit cost.
- System certification:
- Partitioning/synthesis to minimize recertification costs.
Logistics and repair:
- Designs optimized to minimize spares inventory.
- High-coverage diagnosis and self-test at system level, not just digital component level.
- Ensuring complete interface, timing, and functionality compatibility when upgrading designs.
- Long-term component availability
- Cost-effectively update old designs to incorporate new components
- Business model:
- Design production costs:
- Intelligently trade off design time versus production cost.
- Cycle time:
- Rapid redesign to accommodate changing form factors, control algorithms, and functionality requirements.
- Product families:
- Customize designs while minimizing component variant proliferation.
- Design culture:
- Computer culture vs. other cultures:
Make simulation-based computer design accessible to non-specialists.
- Accounting for cost of engineering design:
- Improved productivity via using tools and methodologies may be better received by managers if it is perceived to increase the number of products that can be designed, rather than merely the efficiency of engineers on any given product design effort.
- Find/create design tools and methodologies that provide unique, compelling advantages for embedded design.
Many embedded systems have requirements that differ significantly both in details and in scope from desktop computers. In particular, the demands of the specific application and the interface with external equipment may dominate the system design. Also, long life-cycles and in some cases extreme cost sensitivity require more attention to optimization based on these goals rather than maximizing the computational throughput.
Also read here