Embedded Systems - 6
Embedded Systems - 6
AND IoMT
• Von Neumann Bottleneck: The single bus system can limit performance
because only one operation (fetching data or instructions) can occur at a
time. This has led to the development of alternative architectures like the
Harvard architecture, which uses separate buses for data and instructions
The basic structure is :
It is also known as ISA (Instruction set architecture) computer and is having
three basic units:
• The Central Processing Unit (CPU)
• The Main Memory Unit
• The Input/Output Device
a. Control Unit – A control unit (CU) handles all processor control signals. It
directs all input and output flow, fetches code for instructions, and controls how
data moves around the system.
b. Arithmetic and Logic Unit (ALU) – The arithmetic logic unit is that part of
the CPU that handles all the calculations the CPU may need, e.g. Addition,
Subtraction, Comparisons. It performs Logical Operations, Bit Shifting
Operations, and Arithmetic operations.
c. Registers – Registers refer to high-speed storage areas in the CPU. The
data processed by the CPU are fetched from the registers. There are
different types of registers used in architecture :-
• Von Neumann Bottleneck: The single bus system can limit performance.
Only one operation (fetching data or instructions) can occur at a time,
creating a bottleneck for high-performance computing tasks.
• Limited Parallelism: The fetch-decode-execute cycle is inherently
sequential, making it challenging to take full advantage of parallel
processing techniques that can improve performance.
• Complexity for Modern Systems: While the architecture is simple in
concept, modern computer systems with advanced features like caching and
virtual memory introduce additional layers of complexity.
Applications:
• Personal Computers (PCs) and Laptops
• Servers
• Workstations
• Embedded Systems
Harvard Architecture
• In a normal computer that follows von Neumann architecture, instructions,
and data both are stored in the same memory.
• So same buses are used to fetch instructions and data. This means the CPU
cannot do both things together (read the instruction and read/write data).
• Harvard Architecture is the computer architecture that contains separate
storage and separate buses (signal path) for instruction and data.
• It was basically developed to overcome the bottleneck of Von Neumann’s
Architecture. The main advantage of having separate buses for instruction
and data is that the CPU can access instructions and read/write data at the
same time.
• Separate memory units: One for program instructions and another for data.
• Separate buses: Dedicated pathways for fetching instructions and
accessing data concurrently.
1. Buses
Buses are used as signal pathways. In Harvard architecture, there are separate buses
for both instruction and data. Types of Buses:
• Data Bus: It carries data among the main memory system, processor, and I/O
devices.
• Data Address Bus: It carries the address of data from the processor to the main
memory system.
• Instruction Bus: It carries instructions among the main memory system,
processor, and I/O devices.
• Instruction Address Bus: It carries the address of instructions from the processor
to the main memory system.
2. Operational Registers
There are different types of registers involved in it which are used for storing
addresses of different types of instructions. For example, the Memory
Address Register and Memory Data Register are operational registers.
• Program Counter: It has the location of the next instruction to be
executed. The program counter then passes this next address to the
memory address register.
• Arithmetic and Logic Unit: The arithmetic logic unit is part of the CPU
that operates all the calculations needed. It performs addition, subtraction,
comparison, logical Operations, bit Shifting Operations, and various
arithmetic operations.
• Control Unit: The Control Unit is the part of the CPU that operates all
processor control signals. It controls the input and output devices and also
controls the movement of instructions and data within the system.
• Input/Output System: Input devices are used to read data into main
memory with the help of CPU input instruction. The information from a
computer as output is given through Output devices. The computer gives
the results of computation with the help of output devices.
Features:
• Separate memory spaces: In Harvard architecture, there are separate memory spaces
for instructions and data. This separation ensures that the processor can access both
the instruction and data memories simultaneously, allowing for faster and more
efficient data retrieval.
• Fixed instruction length: In Harvard architecture, instructions are typically of fixed
length, which simplifies the instruction fetch process and allows for faster
instruction processing.
• Parallel instruction and data access: Since Harvard architecture separates the
memory spaces for instructions and data, the processor can access both memory
spaces simultaneously, allowing for parallel instruction and data processing.
• More efficient memory usage: Harvard architecture allows for more efficient use of
memory as the data and instruction memories can be optimized independently,
which can lead to better performance.
• Suitable for embedded systems: Harvard architecture is commonly used in
embedded systems because it provides fast and efficient access to both instructions
and data, which is critical in real-time applications.
• Limited flexibility: The separate memory spaces in Harvard architecture limit the
flexibility of the processor to perform certain tasks, such as modifying instructions
at runtime. This is because modifying instructions requires access to the instruction
memory, which is separate from the data memory.
Advantage of Harvard Architecture:
• Fast and efficient data access: Since Harvard architecture has separate
memory spaces for instructions and data, it allows for parallel and
simultaneous access to both memory spaces, which leads to faster and more
efficient data access.
• Better performance: The use of fixed instruction length, parallel processing,
and optimized memory usage in Harvard architecture can lead to improved
performance and faster execution of instructions.
• Suitable for real-time applications: Harvard architecture is commonly used
in embedded systems and other real-time applications where speed and
efficiency are critical.
• Security: The separation of instruction and data memory spaces can also
provide a degree of security against certain types of attacks, such as buffer
overflow attacks.
Disadvantages of Harvard Architecture:
• Complexity: The use of separate memory spaces for instructions and data in
Harvard architecture adds to the complexity of the processor design and can
increase the cost of manufacturing.
• Limited flexibility: Harvard architecture has limited flexibility in terms of
modifying instructions at runtime because instructions and data are stored in
separate memory spaces. This can make certain types of programming more
difficult or impossible to implement.
• Higher memory requirements: Harvard architecture requires more memory
than Von Neumann architecture, which can lead to higher costs and power
consumption.
• Code size limitations: Fixed instruction length in Harvard architecture can
limit the size of code that can be executed, making it unsuitable for some
applications with larger code bases.
Applications: