Harvard architecture origin, model, how it works

4781
David Holt

The Harvard architecture is a computer configuration in which the data and instructions of a program are located in separate cells of memory, which can be addressed independently. 

That is, it is the term used for a computer system that contains two separate areas: for commands or instructions and for data. Therefore, the main function of this architecture is to store the data physically separated, providing different signal paths for the instructions and the data..

Source: From Nessa los - Own work, CC BY-SA 3.0, commons.wikimedia

In this architecture, both the format and the media of these two segments of the system can be unequal, since the two parts are made up of two separate structures..

Some examples of Harvard architectures involve early computer systems, where program instructions could be on one medium, for example, on punch cards, and stored data could be on another medium, for example, on magnetic tapes..

Article index

  • 1 Applications
  • 2 Origin
  • 3 Model
    • 3.1 Modified Harvard architecture
  • 4 How does Harvard architecture work??
    • 4.1 Additions in architecture
    • 4.2 Memory addresses
    • 4.3 Memory system
  • 5 Advantages
    • 5.1 Protection level
    • 5.2 Higher speed
  • 6 Disadvantages
    • 6.1 Greater complexity and cost
    • 6.2 Little use
    • 6.3 Misuse of memory space
  • 7 References

Applications

This type of architecture has wide application in video and audio processing products. With each tool to process video and audio you can see the figure of Harvard architecture.

Analog Devices Blackfin processors are the particular device where it has found its main use. In other electronic chip-based products, Harvard architecture is also widely used.

However, most computers use the von Neumann architecture and employ CPU caches to achieve an overlap.

Source

Work done at Harvard University in the 1940s under the leadership of Howard Aiken created an original relay-based computer, called the Harvard Mark I, which is the term from which the concept of Harvard architecture arose..

This computer used separate memory units to store data and instructions. Then there has been a significant development with this architecture.

Aiken encouraged the use of separate memories for data and program instructions, with separate buses for each..

The original Harvard architecture typically stored instructions on punched tapes and data on electromechanical counters..

The data storage of these early machines was entirely within the central processing unit. On the other hand, they did not give access for the instructions to be stored as data. An operator had to load the programs.

A Harvard architecture can process data and execute instructions at the same time, because each of them has its own address bus.

Model

This model is characterized in that the information buses and the storage are physically separated for the data and the program code..

As the buses operate autonomously, data and program instructions can be obtained at the same time, thus improving speed over the single bus design..

Therefore, the Harvard model turns out to be more complex. However, having the buses independently avoids the bottleneck produced by the von Neumann architecture.

A computer can be faster for a circuit of a certain complexity, because looking up the instructions and accessing the data does not have to fight for a single memory bus.

To work there are two memory addresses. Therefore, there is a memory register for machine instructions and another memory register for data..

Unlike the von Neumann architecture, which uses a bus to move both instructions and data in memory, the Harvard architecture uses one memory area for data and another for instructions..

Modified Harvard Architecture

In today's computers there is no physical disintegration of the memory areas used by programs and data. For this reason, it could be said that technologically they have a Von Neumann architecture.

However, the modified Harvard architecture serves to best represent today's computers..

Although current processing units share memory, they have certain elements, such as unique instructions, that prevent data from getting tangled up with instructions. This is called modified Harvard architecture..

Thus, the modified Harvard architecture has two separate buses, one for code and one for data, but memory itself is a physically shared element..

The memory controller is where the change sits, because this device is the one that handles the memory and how it should be used.

Modern computer designs are supported by the modified Harvard architecture. Used in microcontrollers and digital signal processing.

How does Harvard architecture work??

The Harvard architecture has different memory address areas for the program and for the data.

This results in the ability to design a circuit in such a way that a bus and a control circuit can be used to handle the flow of information from the program memory and a separate one to handle the flow of information to the data memory..

The use of separate buses means that it is possible for a program to be retrieved and executed without being interrupted by the occasional transfer of data to data memory..

For example, in a simple version of this architecture, the program recovery unit could be busy retrieving the next instruction in the program sequence and in parallel performing a data transfer operation that could have been part of the previous program instruction..

At this level, the Harvard architecture has a limitation, since it is generally not possible to place the program code in data memory and execute it from there.

Additions in architecture

Many more complicated existing variants can be added to the simple form of the Harvard architecture..

A common addition is adding an instruction cache to the program's data bus, which allows the instruction execution unit faster access to the next step in the program, without having to go to slower memory to get to the step. of the program every time it is required.

Memory addresses

A Harvard architecture computer has different data and instruction address areas: instruction address one is not the same area as data address one.

Instructions address one could contain a twenty-four-bit value, while data address one could indicate an eight-bit byte, which is not part of that twenty-four-bit value..

Memory system

As there is a separate memory area for instructions and data, separating both the signals and the memory storage of the code and data, this makes it possible to access each of the memory systems simultaneously..

Advantage

- There is less chance of corruption in transmission, as data and instructions are transferred through different buses.

- Data and instructions are accessed in the same way.

- Allows different storage media for instructions and data. For example, you can put the instructions in an inexpensive ROM and the data in an expensive RAM..

- The two memories can use different cell sizes, making effective use of resources.

- It has a higher memory bandwidth, which is more predictable by having separate memories for instructions and data..

Protection level

In systems that do not have a memory management unit, it offers an additional level of protection, since it will not be possible to start executing data as if it were code, which would expose the system to numerous problems, such as buffer overflow.

That is why it is popular with small embedded systems, such as a microwave or a clock..

Higher speed

Harvard architecture can read an instruction and also perform data memory access simultaneously at a fast speed.

It offers greater performance, since it allows the simultaneous obtaining of data and instructions by being saved in separate memories and traveling through different buses.

A Harvard architecture will generally help a computer with a certain level of complexity to run faster than a Von Neumann architecture, as long as it is not necessary to share resources between data and code memories..

If pin limitations or other factors force the use of a single bus to access both memory spaces, such advantages are likely to be largely nullified.

Disadvantages

Greater complexity and cost

The problem with the Harvard architecture is its great complexity and cost because, instead of one data bus, two are now needed.

Producing a two-bus computer is much more expensive and time-consuming to manufacture. Requires a control unit for two buses, which is more complicated and time-consuming and costly to develop.

This means a more complex implementation for manufacturers. It requires more pins on the CPU, a more complex motherboard and having to duplicate the RAM chips, as well as a more complex cache design.

Little use

The Harvard architecture is not widely used, making it more difficult to implement. This is why it is rarely used outside of CPU.

However, this architecture is sometimes used within the CPU to handle its caches..

Misuse of memory space

When there is free space in the data memory it cannot be used to store instructions and vice versa.

Therefore, the particular memories that are dedicated to each of them must be carefully balanced in their manufacture..

References

  1. List Differences (2019). Difference Between Von Neumann and Harvard Architecture? Taken from: listdifferences.com.
  2. PC Magazine (2019). Definition of: Harvard architecture. Taken from: pcmag.com.
  3. Techopedia (2019). Harvard Architecture. Taken from: ceilingpedia.com.
  4. Scott Thornton (2018). What's the difference between Von-Neumann and Harvard architectures? Microcontroller Tips. Taken from: microcontrollertips.com.
  5. Wikipedia, the free encyclopedia (2019). Harvard architecture. Taken from: en.wikipedia.org.
  6. The Crazy Programmer (2019). Difference between Von Neumann and Harvard Architecture. Taken from: thecrazyprogrammer.com.

Yet No Comments