Harvard Architecture

In a normal computer that follows von Neumann architecture, instructions and data both are stored in same memory. So same buses are used to fetch instructions and data. This means CPU cannot do both things together (read a 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 Architecture. The main advantage of having separate buses for instruction and data is that CPU can access instructions and read/write data at the same time.

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 processor to 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 processor to main memory system.
  • Operational Registers:
    There are different types of registers involved in it which are used for storing address of different types of instructions.
    For example, Memory Address Register and Memory Data Register are operational registers.
  • Program Counter:
    It has the location of the next instruction to be executed. Program counter then passes this next address to memory address register.
  • Arithmetic and Logic Unit:
    Arithmetic logic unit is that 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:
    Control unit the part of CPU that operates all processor control signals. It controls the input and output devices and also control 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 are given through Output devices. Computer gives the results of computation with the help of output devices.

Advantage of Harvard Architecture:
Harvard architecture has two separate buses for instruction and data. Hence, 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.

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.