Tubes to Powerful Processors: The Epic Legacy of Von Neumann

 Posted by: Albert Fit on 01/11/2023

Introduction to Early Computers and Microprocessors

You may have seen or heard about computers the size of a room: whirring tapes, glowing vacuum tubes, resistors, and capacitors, all in the thousands. Gates, buffers and flip-flops are all based on these components, forming the standard building blocks of electronic circuits today.  In the 1970s, Intel invented the first general-purpose microprocessor, the 8088.

The IBM 8088

Intel 8088 - Wikipedia

Intel 8088 General Processor

The 8088 was the heart of IBM's first personal computer. Continuous advancements in wafer circuit printing have made it possible to shrink the components required for a processor to tiny sizes. Core elements of today’s desktop or laptop computers are consistent with the first computers designed in the 1940s.  The following section will shed insight into how computing ballistic firing tables in World War II defined CPU architecture for decades to the present day.

You can read more about IBM's 8088 here:

https://spectrum.ieee.org/chip-hall-of-fame-intel-8088-microprocessor

John Von Neumann

Von Neumann was a child prodigy. Born on December 28, 1903, to a wealthy Hungarian-Jewish family, he could divide two eight-digit numbers in his head by the age of six. By the age of 24, von Neumann had published 12 major papers in mathematics, and two years later, that number topped at 32, nearly one major paper per month. Von Neumann published over 150 papers: 60 in pure mathematics, 60 in applied mathematics and 20 in physics—the reminder on particular mathematical or non-mathematical subjects. John von Neumann was a devoted scientist.

US Army and Early Computers

ENIAC computer

U.S. Army Photo of the ENIAC

The first general-purpose computer developed during World War II was ENIAC (Electronic Numerical Integrator and Computer). Its purpose was to compute ballistic firing tables and later became part of a feasibility study for the thermonuclear weapon.

In 1945, John von Neumann documented the primary elements of a computer in the “First Draft of a Report on the EDVAC”. EDVAC stands for Electronic Discrete Variable Automatic Computer, the successor of the ENIAC. EDVAC aimed to do more general calculations than just ballistic firing tables.

Von Neumann Architecture

The von Neumann architecture consists of four main components:

  • processing unit with both an arithmetic logic unit (ALU) and processor registers
  • control unit that includes an instruction register and a program counter
  • Memory that stores data and instructions
  • Input/output mechanisms

The figure below shows a simplified version where the processing and control units form one component.

Von Neumann Architecture – Primary Elements of a Computer

Processing Unit Overview

The processing unit performs arithmetic and logical operations on data, while the control unit fetches, decodes and executes instructions. The memory holds both data and instructions in binary form, using the same address space. The input/output devices allow communication with external devices or users.

stored-program concept

The von Neumann architecture follows the stored-program concept, which means that the instructions are stored in memory along with the data and can be modified by the program. This allows for more flexibility and versatility than fixed-program machines, which require physical rewiring or redesigning to change the program.

fetch-decode-execute

The von Neumann architecture also implements the fetch-decode-execute cycle, which describes how a processor functions. The cycle consists of several steps:

  1. The program counter (PC) holds the memory address of the next instruction to be fetched.
  2. PC is copied into the Memory Address Register (MAR), and then incremented by one.
  3. The processor sends a signal to the memory address held in the MAR, and retrieves the instruction from there into the Memory Data Register (MDR).
  4. Instruction in the MDR is copied into the current Instruction Register (CIR), where it is decoded and executed.
  5. Processing results are stored in the Accumulator (ACC), or transferred back to memory or output devices.
  6. The cycle repeats until no more instructions are available or a halt instruction is encountered.

The following table summarizes the main registers used in the von Neumann architecture:

RegisterFunction
PCHolds the memory address of the next instruction to be fetched
MARHolds the memory address of the current instruction or data to be accessed
MDRHolds the instruction or data retrieved from or sent to memory
CIRHolds the instruction that is currently being decoded and executed
ACCHolds the data being processed or the results of processing

Advantages and Limitation of the Von Neumann Architecture

Advantages

Some of the advantages of the von Neumann architecture are:

  • Simple and elegant, making it easy to design and implement.
  • Dynamic and flexible programming, as instructions can be stored, modified and executed in memory.
  • Widely used and supported by many hardware and software platforms.

Limitations

Some of the limitations of the von Neumann architecture are:

  • It suffers from the von Neumann bottleneck, which means that data and instructions cannot be accessed simultaneously, since they share a common bus. This limits the speed and performance of the system.
  • It has a limited memory capacity, as data and instructions compete for the same space.
  • It is vulnerable to errors or attacks, as data and instructions can be corrupted or modified by malicious programs.

Conclusions and Further Developments

Von Neumann architecture is a fundamental computer architecture that provides the basis for many modern computers. It has several features that make it simple, versatile and powerful, such as the stored-program concept and the fetch-decode-execute cycle. However, it also has some drawbacks that affect its efficiency and security, such as the von Neumann bottleneck and the shared memory space. Therefore, many variations and improvements have been proposed and developed over time, such as cache memory, pipelining, parallel processing, Harvard architecture, RISC architecture, etc.

References and Further Reading:

  • Davis, C., Barrett, R. and McLachlan, S. (2019) ‘Von Neumann architecture and its implications for parallel computing’, Journal of Computer Science, 15(3), pp. 345-356.
  • GCSE Computer Science Revision (2020) Von Neumann architecture – Systems architecture – OCR. Available at: https://www.bbc.co.uk/bitesize/guides/zbfny4j/revision/3 (Accessed: 18 July 2023).
  • Wikipedia (2021) Von Neumann architecture. Available at: https://en.wikipedia.org/wiki/Von_Neumann_architecture (Accessed: 18 July 2023).
About The Author
Hi, I'm Albert, a lead developer and principal surveyor at The Scan Station. I work with drones, laser scanning and photogrammetry. You will often find me developing web applications to display geomatics data. I am also passionate about machine learning and data science.