Harvard Architecture
Harvard Architecture
geeksforgeeks.org/harvard-architecture
Read
Discuss
Courses
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.
1/4
Structure of Harvard Architecture
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.
Operational Registers
2/4
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.
1. 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.
2. 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.
3. 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.
4. 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:
3/4
Harvard architecture has two separate buses for instruction and data. Hence, the CPU can
access instructions and read/write data at the same time. This is the major advantage of
Harvard architecture.
In practice, Modified Harvard Architecture is used where we have two separate caches (data
and instruction). This is common and used in X86 and ARM processors.
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.
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.
4/4