embedded
embedded
1
DESIGN ISSUES: CHALLENGES
The design process in embedded systems is about finding the right combination of microchips,
including input/output devices, memory, interfaces, processors, and more, according to your
If you approach embedded system design without a plan, it can be overwhelming. A systematic
approach, on the other hand, helps to divide the design cycle into manageable stages, allowing for
2
DESIGN ISSUES: FAULT TOLERANCE
No system will be perfect, there are various defects, or faults, within the design and
components.
A fault is any software or hardware defect that may cause an error, and again if that error is not
To describe tolerance and fault tolerance in real-time systems, we will begin with these
definitions:
3
error,
DESIGN ISSUES: FAULT TOLERANCE
A system that is designed to accept and deal with faults is described as being fault tolerant; that is,
the system is able to continue operation despite the existence of perturbations and faults within
the system.
If a fault causes an error which then causes the system to no longer meet the a requirement of the
A failure in a hardware requirement may be catastrophic to the system, while a failure in a firm
requirement may result in the degradation of the quality of the service provided.
4
DESIGN ISSUES: FAULT TOLERANCE
full fault tolerance where specifications are still met for a given period of time,
to meet one requirement does not prevent the system from meeting other requirements)
failsafe where the system temporarily halts in a safe state (If steps can be taken to
5
DESIGN ISSUES: FAULT TOLERANCE
Environmental effects,
Implementation faults,
Component effects
6
DESIGN ISSUES: FAULT TOLERANCE
Transient faults begin at a point in time, remain for indeterminate period of time, and then
disappear
Intermittent faults are transient faults that reoccur; for example, a component may
Permanent faults remain within the system until external intervention to repair it
7
DESIGN ISSUES: FAULT TOLERANCE
Fault prevention, where steps are taken to prevent faults from occurring (providing sufficient
Fault tolerance, where faults are detected and steps are taken within the system to continue
8
DESIGN ISSUES: FAULT TOLERANCE
The process of fault prevention is where external steps are taken by developers to prevent faults
from occurring within a system. There are two aspects to fault prevention:
Prior to the deployment of a system, fault avoidance are those steps taken to minimize the
Once deployment has occurred, fault removal involves those steps taken detect and correct
9
DESIGN ISSUES: FAULT TOLERANCE
The approach to dealing with faults is to design the system to compensate for faults once they
occur. There are two means of achieving fault tolerance in software, including
recovery blocks
exceptions.
10
DESIGN ISSUES:MEMORY MANAGEMENT
applications where memory resources are limited, and performance demands are high. In such
Memory optimization: Efficient memory usage not only enhances system performance but
Several techniques are employed to optimize memory usage in advanced embedded systems:
Data Compression: is a process of reducing the size or storage requirements of data in order to
optimize storage space. Embedded systems deal with large datasets. Data compression
techniques like Huffman coding, and delta encoding can significantly reduce memory
requirements.
Memory Pooling: pre-allocating a fixed-size block of memory and then managing the allocation and
deallocation of these blocks. It reduces memory fragmentation and overhead associated with
Memory Alignment: Aligning memory accesses to specific byte boundaries can improve memory
access speed and efficiency. This is particularly important for systems with memory-mapped I/O.12
DESIGN ISSUES:MEMORY MANAGEMENT
Memory segmentation is a memory management technique that divides the memory into
distinct segments, each with its own attributes and access permissions. This approach is common
in advanced embedded systems to enhance security, manage memory access, and isolate
different parts of the software. Segmentation allows better control over memory allocation and
protection.
Code and Data Separation: code and data are often stored in separate segments. This separation
Stack and Heap Segmentation: Separating the stack and heap memory regions prevents stack
overflow from affecting heap memory and vice versa. This enhances system stability and reduces
addresses. This allows the CPU to communicate with devices using standard memory read and
write operations, simplifying device interaction and reducing the need for specialized I/O
instructions.
I/O Registers: enabling software to configure and communicate with peripherals using memory
operations.
Direct Memory Access (DMA): transfer data directly between memory and peripherals, reducing
Peripheral Communication: communication with external devices, such as sensors and actuators,
14
by treating them as memory locations.
DESIGN ISSUES:MEMORY MANAGEMENT
Dynamic memory allocation is a memory management approach where memory is allocated
and deallocated as needed during program execution. While commonly used in more resource-rich
environments, dynamic memory allocation can also be employed in advanced embedded systems
Memory Pools: Creating dynamic memory pools, where memory is allocated from predefined
blocks. It is a pre allocated and managed block of memory objects or blocks as needed by the
application. So it helps manage memory fragmentation and reduces the risk of memory leaks.
Garbage Collection: For systems with more advanced memory management capabilities, garbage
collection techniques can be employed to automatically reclaim memory occupied by objects that
Power Consumption: Managing power consumption to extend battery life or optimize energy
16
DESIGN ISSUES: Software Development
3 Security Measures
Integrating robust security measures to protect against vulnerabilities and
unauthorized access is a best practice in software development.
Security Considerations in Embedded
Systems Design
It’s hard to update. Once a piece of embedded software is designed, developed, tested, and
prepared for release, it gets replicated in batches. If any omissions or loopholes are later
identified, it’s nearly impossible to fix deficient embedded software in a way that allows other
software to be updated. Sometimes, firmware like RTOS can be replaced only by replacing
memory blocks containing it.
Higher project costs: the average cost per embedded system project is higher than that of a
conventional software project. Embedded system specialists and programmers are rarer than
other types of developers. Additionally, more time and money are required for embedded system
architecture, testing, and debugging, as system failures are inadmissible in embedded
19
development/programming.
DESIGN ISSUES: CHALLENGES
When developing critical real-time applications, the following issues should be considered in
performed
Using a predictable operating environment able to guarantee that those timing constraints
can be satisfied.
20
Quiz2
1. What is the difference between fault prevention and fault tolerance?
21