What is computer architecture?

  • A computer architecture describes how it uses the components and instructions to make the computer function
  • There are 2 common types of computer architecture:
    • Von Neumann architecture
    • Harvard architecture
ArchitectureMemory OrganisationBusAddress SpaceControl UnitsUsage
Von NeumannUnified MemorySingleSharedSingle Control UnitMost modern computers, microcontrollers
HarvardSeparated MemorySeparateDistinctSeparate Control UnitsSpecialised embedded systems

Von Neumann Architecture

Layout of Von Neumann Architecture Layout of Von Neumann Architecture

  • Von Neumann’s architecture includes:
    • Control Unit (CU)
      • The control unit controls the operation of the processor and its components
      • It retrieves instructions stored in memory, decodes or interprets them, and then executes them
      • The CU generates timing signals and controls the other units of the computer
    • Arithmetic Logic Unit (ALU)
      • The ALU carries out all the arithmetic and logic operations in the computer
    • Special registers within the CPU
    • A single set of buses to connect the CPU to memory and Input/Output
    • Memory (RAM)
      • The memory unit stores both data and instructions for processing
      • These are stored in the same format
      • The memory is divided into cells, each of which can be accessed by their address
      • The memory is a linear or sequential array of bytes

Advantages of Von Neumann Architecture

  • Simplicity: A single memory and shared bus make the design simpler and cheaper to implement.
  • Flexibility: Any memory location can store data or instructions, allowing dynamic allocation of memory.

Disadvantages of Von Neumann Architecture

  • Von Neumann Bottleneck: Because data and instructions share the same bus, only one can be accessed at a time. This can slow down performance if there’s heavy demand for both data and instructions
  • Slower Data Transfer: The CPU often waits for data or instructions to be fetched from memory, limiting performance, especially for complex tasks

Harvard Architecture

Layout of Harvard architecture Layout of Harvard Architecture

  • Harvard architecture includes:
    • Separate Instruction and Data Memory
      • The system has separate memory units for storing data and instructions
      • This separation provides greater speed and efficiency as the system can fetch data and instructions simultaneously from separate buses, without one interfering with the other
    • Separate Instruction and Data Buses
      • Harvard architecture uses separate buses for data and fetching instructions, meaning that data transfers do not interfere with instruction fetches
      • This can lead to better overall system performance
    • Control Unit (CU)
      • The control unit controls the operation of the processor and its components
      • It retrieves instructions stored in memory, decodes or interprets them, and then executes them
      • The CU generates timing signals and controls the other units of the computer
    • Arithmetic Logic Unit (ALU)
      • The ALU carries out all the arithmetic and logic operations in the computer

Advantages of Harvard Architecture

  • Faster Performance: Separate buses allow simultaneous fetching of data and instructions, improving overall execution speed
  • More Efficient for Specific Tasks: Harvard architecture is ideal for applications where data and instructions need to be accessed frequently and independently (e.g., Digital Signal Processing)

Disadvantages of Harvard Architecture

  • More Complex Design: Separate memory units and buses add to the complexity of the system, making it more expensive and harder to design
  • Less Flexibility: The fixed separation between data and instruction memory means each memory unit can only be used for its designated purpose, which can waste space if not fully utilised

How does Harvard architecture improve performance over Von Neumann architecture?

  • There are several things that Harvard architecture has or can do which can improve performance over Von Neumann architecture:
FeatureExplanation
Separate instruction and data memoryInstructions and data are stored in different memory areas, allowing simultaneous access and reducing bottlenecks
Separate buses for instructions and dataEnables the CPU to fetch instructions and read/write data at the same time, improving throughput

Examiner Tips and Tricks

  • You will not be asked about specific aspects of “contemporary processor architecture” apart from those already mentioned. You may be asked to show an awareness of how contemporary processors differ from a pure Von Neumann architecture in more open questions