Sun. Jan 22nd, 2023

Features and characteristics of different computer architecture models

Stored program model

A computer that uses the stored program model is one where the instructions for the program as well as the data are stored in electronic memory. Both Von Neumann and Harvard architectures are stored program computer architectures.

A computer which does not use the stored program model would need to be programmed through switches or connections on plugboards before it was able to perform operations.

A famous example of a non-stored program computer is Colossus at Bletchley Park, used during World War II to decipher enemy communications (read more here).

In the image, you can see some of the cabling and switches used to program the computer. As an aside, this was also considered to be the world’s first programmable electronic computer.

Von Neumann architecture

In Von Neumann architecture, the system memory is used for both data and instructions. As such, the same bus is used to transfer both data and instructions to and from the processor.

The result of this is that you can not access both instructions and data simultaneously, meaning performance bottlenecks are a problem, which affects overall system performance.

As an example, if a Von Neumann computer performs the following operations:

  • Fetch instruction: ADD
  • Fetch data to add
  • Complete addition
  • <At this point the CPU could fetch the next instruction but…..>
  • Write result of data to memory (shared bus)
  • Fetch next instruction

As you can see, on the line <At this point…> the CPU is actually free to do new work, but because the bus must be used to first write out the result of the previous operation, the CPU sits idle until data has been written and the bus freed up before the next instruction can be retrieved.

Harvard architecture

Harvard architecture separates memory into an area for data and an area for instructions. A separate bus is used to connect each area with the CPU.

Although this is obviously more complex, requiring two communication busses instead of one, it removes the potential for bottlenecks as can occur in a Von Neumann design.

Cluster computing

Cluster computing is a term used to describe a situation where multiple computers are connected via a network, and each operates as a node while working on the same problem.

Projects like SETI and Folding@Home are two well known examples of this. Software running on the nodes ensures that they remain synchronised.

Advantages of cluster computing are that resources can be scaled – more computers results in larger processing power, and greater storage ability. They are also useful for resilience – if one node fails, others can take over and prevent a loss of service).

They are, however, costly to maintain and implement due to the additional infrastructure required.

Uniform Memory Access and Non-uniform Memory Access (UMA / NUMA)