0% found this document useful (0 votes)
2 views

embedded

embedded

Uploaded by

alula girma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

embedded

embedded

Uploaded by

alula girma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

CHAPTER 4 DESIGN ISSUES

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

specific system purpose and platform.

 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

proper planning, implementation, and collaboration.

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

detected and corrected, the error may lead to a failure.

 To describe tolerance and fault tolerance in real-time systems, we will begin with these

definitions:

 Failure is when the response of a system deviates from a specification as a result of an

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

system, that fault is said to have caused a failure.

 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

 The response of a system to faults include:

 full fault tolerance where specifications are still met for a given period of time,

 graceful degradation where there is an increasing degradation in quality of service (failure

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

subsequently minimize or eliminate harm resulting from an error).

5
DESIGN ISSUES: FAULT TOLERANCE

 Sources of error can be:

 Environmental effects,

 Specification or design faults,

 Implementation faults,

 Component effects

6
DESIGN ISSUES: FAULT TOLERANCE

 A fault within the system may be described as:

 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

overheat, cease functioning, cool down and then continue functioning.

 Permanent faults remain within the system until external intervention to repair it

7
DESIGN ISSUES: FAULT TOLERANCE

 There are two main approaches to dealing with faults:

 Fault prevention, where steps are taken to prevent faults from occurring (providing sufficient

cooling, duplicating sources of power, etc.).

 Fault tolerance, where faults are detected and steps are taken within the system to continue

operation within specifications.

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

likelihood of faults occurring in the system.

 Once deployment has occurred, fault removal involves those steps taken detect and correct

faults when failures occur.

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

 Memory management is a critical aspect of embedded systems design, especially in advanced

applications where memory resources are limited, and performance demands are high. In such

scenarios, efficient memory utilization becomes paramount to ensure optimal system

functionality and responsiveness.

 Memory optimization: Efficient memory usage not only enhances system performance but

also contributes to reduced power consumption.

 Several techniques are employed to optimize memory usage in advanced embedded systems:

 Code Optimization: Efficient coding practices contribute to reducing memory, such as


11
DESIGN ISSUES:MEMORY MANAGEMENT

 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

dynamic memory allocation.

 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

improves security by preventing unauthorized access to critical code sections.

 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

the risk of crashes. 13


DESIGN ISSUES:MEMORY MANAGEMENT
 Memory-mapped I/O is a technique where hardware devices are mapped to specific memory

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

CPU involvement and enhancing data transfer efficiency.

 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

with careful consideration:

 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

are no longer in use. 15


DESIGN ISSUES: Hardware Development

 Component Integration: Integrating different hardware components while ensuring compatibility

and efficiency is a major challenge in hardware development for embedded systems.

 Power Consumption: Managing power consumption to extend battery life or optimize energy

usage is a critical consideration in hardware development.

 Real-time Constraints: Designing hardware that meets stringent real-time processing

requirements poses unique challenges and considerations.

16
DESIGN ISSUES: Software Development

 Best Practices in Software Development

1 Modularity 2 Efficient Algorithms


Breaking down software into Implementing efficient
modular components allows for algorithms is crucial for
easier maintenance, testing, optimizing performance while
and scalability. working within resource
constraints.

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

Data Encryption Security Monitoring Biometric


Authentication
Integrating robust Implementing continuous
encryption techniques to monitoring systems to Integrating biometric-
safeguard sensitive data detect and respond to based authentication
from unauthorized access potential security breaches methods to enhance
and interception. and anomalies in real-time. access control and
authentication in
embedded systems.
DESIGN ISSUES: CHALLENGES
 Stability is paramount. No unexpected behaviors or graceful degradation is admissible for
embedded systems. Everything is expected to be perfectly designed and debugged right from the
beginning, assuring flawless performance under all possible conditions. There is little to no room
for bugs at later project stages.

 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

detail, in addition to the classical design issues:

 Structuring the application in a number of concurrent tasks, related to the activities to be

performed

 Assigning the proper timing constraints to tasks

 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?

2. List at least three types of resource access control mechanism.

3. What are the design challenges in an embedded system?

21

You might also like