The Von Neumann Model
Introduction to the Von Neumann Model
- John Von Neumann proposed the Von Neumann Model, a fundamental and vital concept for understanding how most modern computers operate.
- It serves as a blueprint for the design of a computer, guiding the organisation of hardware components.
Main Components of the Von Neumann Model
- The model is made up of four main components: the Control Unit (CU), Arithmetic Logic Unit (ALU), Memory, and the Input and Output devices.
Control Unit (CU)
- The CU coordinates the activities of all the hardware components in the computer system.
- Its role is to fetch instructions from memory, decode them, and then execute them by sending signals to other components in the system.
Arithmetic Logic Unit (ALU)
- The ALU performs all the arithmetic and logical operations within the computer.
- These operations include addition, subtraction, multiplication, division, comparison of numbers, and logical conditions like NOT, AND and OR.
Memory
- The memory in the Von Neumann Model is used for temporary storage during the execution of a program.
- This memory is used to store both the data and instructions needed for tasks.
Input and Output Devices
- These are the interfaces through which the computer communicates with the outside world.
- Input devices are used for entering data into the computer, and output devices are used for displaying results.
Von Neumann Architecture
- Von Neumann Model involves a single bus that is used for input/output, fetching data and instructions, and implementing instructions.
- This means data and instructions need to be fetched and sent back to memory in turns, which may lead to a limitation known as the Von Neumann Bottleneck.
Von Neumann Bottleneck
- This is a limitation of the Von Neumann Model, where the speed of the cpu is significantly higher than the time taken to fetch and store data or instructions.
- This can be mitigated with the use of cache memory which is faster than main memory.
Shared Memory
- A key feature of the Von Neumann Model is that it uses shared memory for storing instructions and data.
- This is beneficial as it simplifies the design and improves efficiency, but it could also be a source of security issues as programs can overwrite data.