Open In App

Harvard Architecture

Last Updated : 04 Apr, 2023
Like Article

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. 

Structure of Harvard Architecture: 

Structure of Harvard Architecture

Structure of Harvard Architecture


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

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. 


  • 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: 

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.

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.

Previous Article
Next Article

Similar Reads

Difference between Von Neumann and Harvard Architecture
Von Neumann Architecture: Von Neumann Architecture is a digital computer architecture whose design is based on the concept of stored program computers where program data and instruction data are stored in the same memory. This architecture was designed by the famous mathematician and physicist John Von Neumann in 1945. Harvard Architecture: Harvard
2 min read
Hardware architecture (parallel computing)
Let's discuss about parallel computing and hardware architecture of parallel computing in this post. Note that there are two types of computing but we only learn parallel computing here. As we are going to learn parallel computing for that we should know following terms. Era of computing - The two fundamental and dominant models of computing are se
3 min read
Differences between Computer Architecture and Computer Organization
Computer Architecture is a functional description of requirements and design implementation for the various parts of a computer. It deals with the functional behavior of computer systems. It comes before the computer organization while designing a computer. Computer architecture and computer organization are related but distinct concepts in the fie
3 min read
Microarchitecture and Instruction Set Architecture
In this article, we look at what an Instruction Set Architecture (ISA) is and what is the difference between an 'ISA' and Microarchitecture. An ISA is defined as the design of a computer from the Programmer's Perspective. This basically means that an ISA describes the design of a Computer in terms of the basic operations it must support. The ISA is
5 min read
Architecture of 8086
Introduction : The 8086 microprocessor is an 8-bit/16-bit microprocessor designed by Intel in the late 1970s. It is the first member of the x86 family of microprocessors, which includes many popular CPUs used in personal computers. The architecture of the 8086 microprocessor is based on a complex instruction set computer (CISC) architecture, which
17 min read
UltraSPARC Architecture
UltraSPARC Architecture belongs to the SPARC (Scalable Processor Architecture) family of processors. This architecture is suitable for wide range of microcomputers and supercomputers. UltraSPARC is example of RISC (Reduced Instruction Set Computer). UltraSPARC architecture: Memory: Memory consists of 8 bit-bytes. Two consecutive bytes form a halfwo
2 min read
SIC/XE Architecture
SIC/XE stands for Simplified Instructional Computer Extra Equipment or Extra Expensive. This computer is an advance version of SIC. Both SIC and SIC/XE are closely related to each other that's why they are Upward Compatible. SIC/XE machine architecture: 1. Memory: Memory consists of 8 bit-bytes and the memory size is 1 megabytes (220 bytes). Standa
2 min read
PowerPC Architecture
PowerPC Architecture are microprocessor for personal computers. PowerPC is a RISC (Reduced Instruction Set Computer) architecture which are very powerful and low-cost microprocessors. RISC architecture tries to keep the processor as busy as possible. Design features of PowerPC are as follows: Broad range implementationSimple processor designSupersc
3 min read
VAX Architecture
VAX Architecture was designed to increase the compatibility by improving the hardware of the earlier designed machines. As VAX architecture is an example of the CISC (Complex Instruction Set Computers) therefore there are large and complicated instruction sets used in the system. Memory: VAX architecture consists of 8- bit bytes memory. Two consecu
2 min read
Cray T3E Architecture
Cray T3E architecture are microprocessor for super-computing system. Cray T3E is a RISC(Reduced Instruction Set Computer) architecture which is very powerful microprocessors. T3E systems contain a large number of processing elements (PE). Each PE consists of a DEC Alpha EV5 RISC microprocessor. Design features of Cray T3E architecture are as follow
3 min read