Components of the von neumann model эссе

Back

Von Neumann architecture
In the 1940s, a mathematician called John Von Neumann described the basic arrangement (or architecture) of a computer. Most computers today follow the concept that he described although there are other types of architecture. When we talk about the Von Neumann architecture, we are actually talking about the relationship between the hardware that makes up a Von Neumann-based computer.

A Von Neumann-based computer is a computer that:

    • Uses a single processor.
    • Uses one memory for both instructions and data. A von Neumann computer cannot distinguish between data and instructions in a memory location! It ‘knows’ only because of the location of a particular bit pattern in RAM.
    • Executes programs by doing one instruction after the next in a serial manner using a fetch-decode-execute cycle.

In this chapter, we are going to build upon and refine the ideas introduced in an earlier chapter. You should re-read the relevant chapter on CPUs before you start this one. We have already said that the CPU was made up of 4 important components:

    • The ALU.
    • The registers.
    • The control unit.
    • The IAS (otherwise known as RAM or memory).

Because the IAS is so important, we are definitely going to move it to its own section in our model of a computer. (We discussed this previously). We need to get data into and out of the computer so we will include this as a separate section as well. We will also introduce the idea of a clock and clock cycles in the CPU. Our new model of a computer now looks like this:

von_neumann

Von Neumann Component 1 — The CPU
The CPU, or Central Processing Unit, is the name given to the component that controls the computer and works on the data. It can be split up into four sub-components:

 4 parts

We know a few things from before about the Von Neumann CPU.

1) The ALU, or Arithmetic Logic Unit
A Von Neumann CPU has an ALU. This is the part of the CPU that performs arithmetic and logic operations on data and acts as the revolving for the CPU, letting data enter and leave the CPU. We also know that CPUs have a ‘word size’. This is the number of bits that can be added, for example, in one go. The bigger a CPU’s word size, the more bits it can work on in one clock cycle and the more work you can get done.

2) The Control Unit
A Von Neumann CPU has a control unit. The control unit is in charge of ‘fetching’ each instruction that needs to be executed in a program by issuing control signals to the hardware. It then decodes the instruction and finally issues more control signals to the hardware to actually execute it.

3) Registers
A Von Neumann CPU has registers. These are very fast memory circuits. They hold information such as the address of the next instruction (Program Counter), the current instruction being executed (Current Instruction Register), the data being worked on and the results of arithmetic and logical operations (Accumulators), information about the last operation (Status Register) and whether an interrupt has happened (Interrupt Register). Registers are covered in a lot more detail later in this chapter.

4) The clock
Instructions are carried out to the beat of the clock! Some instructions take one beat and others more than one beat. Very roughly speaking, the faster the clock, the more clock beats you have per second so the more instructions per section you can do and the faster your computer will go.

Von Neumann Component 2 — IAS
We also know that the Von Neumann computer has an IAS, or Immediate Access Store, where it puts both programs and data. We often commonly refer to this memory as RAM. RAM is made up of lots of boxes that can store a bit pattern. Each box has a unique address.  A memory address might store an instruction (which is made up of an operator and an operand) or it might store just a piece of data. A Von Neumann computer can’t tell the difference between the bit patterns as such, but ‘knows’ indirectly because of where the bit pattern is stored in RAM. Pre-Von Neumann computers used to split up memory into program memory and data memory and this made computers relatively complex. Von Neumann was the first to realise that there was actually no difference between the nature of an instruction and the nature of a piece of data. One important function of an operating system is to manage memory and to keep track of the RAM addresses of applications as well as any data.

We also know that computers have an address bus, so that the CPU can address each individual memory location in the IAS, for example, when it wants to store a piece of data or retrieve a piece of data. The data itself is moved about between devices on a data bus. There is also a control bus, to generate signals to manage the whole process.

Von Neumann Component 3 — I/O
A computer needs peripherals for inputting and outputting data. It needs to be able to read data into itself and send data out. It reads data in and sends data out through its I/O ports. A port is simply a gateway, like a port used for shipping. Just like every port used for ships needs its own harbour master, so every I/O port needs to be managed. An I/O controller is the term used to describe the I/O port along with the circuits that manage data into and out of the port. It allows you to connect up any I/O device to the PC and transfer data in to or out of the computer. You wouldn’t want to connect an I/O device directly to a CPU because you would have to redesign the CPU every time a new type of device came along. Besides, a new type of device might need different voltages and control signals from the CPU, again necessitating a CPU redesign. The I/O controller acts as an interface to overcome these problems. Refining the diagram we saw in the previous chapter on CPUs, we now have:

  io_controllers

A computer system showing the I/O controllers.
Of course, there are a whole range of other I/O controllers we could have included. We could have shown ones for devices such as a mouse, a MIDI device, a printer, a DVD player, a SCSI device as used with many scanners or a network card, to name just a few.

Von Neumann bottleneck
Whatever you do to improve performance, you cannot get away from the fact that instructions can only be done one at a time and can only be carried out sequentially. Both of these factors hold back the efficiency of the CPU. This is commonly referred to as the ‘Von Neumann bottleneck’. You can provide a Von Neumann processor with more RAM, more cache or faster components but if real gains are to be made in CPU performance then a major review needs to take place of CPU design.

Back

Introduction

Have you ever wondered how your computer works? Who decided that we should use keyboards to tell our devices what to do? And who else later decided that touch screens were cooler much of the time. Much of how we think about computing we currently owe to John von Neumann, who developed the current way of thinking about computers.

The Von Neumann architecture is a model that was developed in the 1940s by John von Neumann, a physicist and mathematician, who was an early computer researcher. During World War 2, cracking secret codes and the development of nuclear weapons led to an increase in public funding for computer research, as machines could do lots of arithmetic quickly and accurately. Von Neumann would go on to outline a model for building any sort of computer in his The First Draft Report on the EDVAC (the EDVAC being a computer he was working on at the time) that has been the standard for all computing devices since.

In his model, von Neumann illustrates that a computer should have several main components:

  • Arithmetic Unit
  • Control Unit
  • Memory
  • Input
  • Output

Flexibility of the Model

This model is relatively flexible – in his paper, von Neumann mentions that different machines could very well have different capabilities while still being built with all of these components in mind. Computers that use the von Neumann architecture range from very simple (such as the one in your microwave) to the massive supercomputers that have dedicated buildings. The wide scope of computers that fall under the von Neumann model are proof that von Neumann achieved his goal when it came to creating a model that was versatile.

Components and What They Do

The control unit, as described by von Neumann, is the part of the computer that keeps track of what is supposed to run when. When you turned on your computer, your PC’s control device (most probably inside of a CPU) queued up the correct start up operations. The purpose of the control unit is to allow a computer to run many different kinds of programs, and switch between them when necessary. While this seems trivial now, the first computers were manually operated. If you wanted a computer to do something different than what it was previously doing, you had to go in and change all of the wires yourself. The conception of a control unit allowed the computer to modify its own hardware and software, allowing a great deal of abstraction for users. Computers being able to modify themselves (and other computers) essentially enables modern computing as we know it, the good (high level programming languages, not swapping about the wires in your desktop) and the bad (it would be impossible to hack a pre-von Neumann computer without performing an elaborate heist operation to change around the wiring yourself).

The arithmetic unit of a computer does the logical processing. Computers were originally designed for doing lots and lots of math, so von Neumann designated an entire component of his model to do that. Despite being called the arithmetic unit, this unit is also responsible for doing logical operations as well. Arithmetic units allow computers to distinguish if two sequences of binary are completely the same (an AND operation), if some of the numbers are the same, or allowing sign flippage.

The memory component of this model is probably simplest to understand. If we want computers to do work in a useful capacity, they need to be able to remember what we’ve done. Most modern computers have two types of memory. They’ve got long term, slower memory, which is usually kept in the hard drive. Computers also have faster, short term memory. This is typically stored in RAM. Traditionally, RAM memory has been volatile. This means that it is erased when you turn the power off. This is also why you used to lose everything you did on older video games without saving – if you didn’t tell the computer to move your data out of RAM and onto the hard drive, it was just lost.

The last components of a computer are its input and output components. Input is just how the user puts instructions into a computer. These days, inputs are most often keyboards and/or touch screens, although speakers are becoming more common. Output is how a computer communicates what it’s doing to the user. Most computers have a visual (a screen) and an audio (speakers and/or headphones) component to the output.

Conclusion

The von Neumann model for computing has lasted for nearly a century. Pretty much any device that you use will have been built and designed with the von Neumann architecture in mind. That being said, scientists are looking beyond this model for the future. Quantum computing and other innovations may mean we say good bye to the von Neumann architecture.

References

Brandl, M. F. (2017). A Quantum von Neumann Architecture for Large-Scale Quantum Computing. (https://arxiv.org/abs/1702.02583)

Freiberger, P., & Swaine, M. (2016, November 14). Von Neumann machine. Retrieved September 15, 2020, from https://www.britannica.com/technology/von-Neumann-machine

von Neumann, J. (1945). First draft of a report on the EDVAC. doi:10.5479/sil.538961.39088011475779

Von Neumann architecture was first published by John von Neumann in 1945.

His computer architecture design consists of a Control Unit, Arithmetic and Logic Unit (ALU), Memory Unit, Registers and Inputs/Outputs.

Von Neumann architecture is based on the stored-program computer concept, where instruction data and program data are stored in the same memory.  This design is still used in most computers produced today.

Von Neumann Architecture Diagram - Computer Science GCSE

Central Processing Unit (CPU)

The Central Processing Unit (CPU) is the electronic circuit responsible for executing the instructions of a computer program.

It is sometimes referred to as the microprocessor or processor.

The CPU contains the ALU, CU and a variety of registers.

Registers

Registers are high speed storage areas in the CPU.  All data must be stored in a register before it can be processed.

MAR Memory Address Register Holds the memory location of data that needs to be accessed
MDR Memory Data Register Holds data that is being transferred to or from memory
AC Accumulator Where intermediate arithmetic and logic results are stored
PC Program Counter Contains the address of the next instruction to be executed
CIR Current Instruction Register Contains the current instruction during processing

Arithmetic and Logic Unit (ALU)

The ALU allows arithmetic (add, subtract etc) and logic (AND, OR, NOT etc) operations to be carried out.

Control Unit (CU)

The control unit controls the operation of the computer’s ALU, memory and input/output devices, telling them how to respond to the program instructions it has just read and interpreted from the memory unit.

The control unit also provides the timing and control signals required by other computer components.


Buses

Buses are the means by which data is transmitted from one part of a computer to another, connecting all major internal components to the CPU and memory.

A standard CPU system bus is comprised of a control bus, data bus and address bus.

Address Bus Carries the addresses of data (but not the data) between the processor and memory
Data Bus Carries data between the processor, the memory unit and the input/output devices
Control Bus Carries control signals/commands from the CPU (and status signals from other devices) in order to control and coordinate all the activities within the computer

Memory Unit

The memory unit consists of RAM, sometimes referred to as primary or main memory.  Unlike a hard drive (secondary memory), this memory is fast and also directly accessible by the CPU.

RAM is split into partitions.  Each partition consists of an address and its contents (both in binary form).

The address will uniquely identify every location in the memory.

Loading data from permanent memory (hard drive), into the faster and directly accessible temporary memory (RAM), allows the CPU to operate much quicker.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *