The Von Neumann Machine

Authors Avatar

Computer Architectures & Fetch-Execute Cycle                                                              James Leong Mook Seng

Von Neumann Architecture

The Von Neumann Machine

All modern computers are based on the ideas proposed separately by John von Neuman and Alan Turing in 1945. They suggested the stored-program concept. The proposal was that the program instructions that are to executed and the data that are to be processed should both be stored in memory together. This implies that a program must be in memory before it can be executed. Computers based on this design are known as von Neumann machines. A von Neumann machine performs what is known as the fetch/execute cycle.

Internal components of a computer system are:

  • Processor – the part of the computer system that executes the programs
  • Memory – high-speed storage for programs and data
  • Interfaces – to connect external devices (called peripherals)
  • Clock – to provide timing signals
  • Buses – to connect together all the above into a computer system

Buses

A system bus is simply a number of wires that are used to connect devices together in such a way as to allow or control information to pass from device to device. The system bus will normally consist of three buses:

  • Data bus
  • Address bus
  • Control bus

The data bus is a bidirectional bus carrying data and instructions from memory to the CPU (one way) and data from the CPU to memory (second way). This data may be instructions (in machine code), ASCII codes (e.g representing text), numbers or graphic data. Each wire in the data bus transfer one binary digit(bit), so the number of wires determines the amount of data that can be transferred at one time and the performance of the system.

The address bus is a unidirectional bus carrying the addresses where data or instructions may be found, or should be stored, from the processor to memory. It is the processor that will read or write to memory, therefore it is ‘him’ which needs to know the address. Since the processor requires access to any memory location, each must have a unique identifier (an address) in order that the processor may locate it when required. The size of the address bus must therefore relate directly to the maximum number of addresses within any computer, and also therefore to the size of its RAM and ROM.

If an address bus consists of 16 lines, the processor may access 216 different addresses (65536). This gives 64 Kb and was the memory size of several of the older 8-bit micros. Newer processors may have 24,32 or even bigger address buses. A 32-bit address bus would allow access to 232 (4294967296) different location which is 4 gigabytes of memory.

The bus system determines the size of each memory location and it also determines how much memory can be installed in the system.

The control bus carries synchronization signals to enable the various devices to co-operate in carrying out a task. There will be control signals that command the memory to read or write and numerous other signals to ensure that the system operates successfully. It is different to the other two buses in that, although it is a collection of lines in the same way as they are, these lines are totally unrelated. In the address and data buses, the lines all form part of the same information. In the control bus they are simply grouped together for convenience. Each has a different function and may be used at different times. The purpose of the control lines varies from processor to processor but common processes are:

  • Read to initiate a memory read operation
  • Write to initiate a memory write operation
  • Reset clears all internal registers and starts executing instructions from a pre-defines address (similar to switching off and on again)

The purpose of the control bus is to transmit command, timing and specific status information between system components.

Processor

The processor is the part of the computer that executes the program that is stored in the memory. The processor has four main components:

  • Control unit
  • Arithmetic and logic unit (ALU)
  • Registers
  • Memory Management Unit (MMU)

These are interconnected by an internal bus system.

The control unit provides the necessary timing and control signals to all the operations in the microcomputer. It controls the flow of data between the microprocessor and memory and peripherals. The control unit controls the rest of the processor by generating appropriate control signals.

The ALU performs arithmetic and logic operations such as +, -, AND, OR and soon. One of the inputs is from the accumulator and the other is from the internal bus configuration. The output can be directed to any of the registers.

A register is a high-speed memory location within the processor. Most registers are general purpose but there are often some special registers such as:

  • Accumulator is used for arithmetic and logic operations. It is used to accumulate results. It is the place where the answers from many operations are stored temporarily before being put out to the computer’s memory.
Join now!
  • Flags register is used to record the effect of the last ALU operation
  • Instruction register is used to hold the instruction that is currently being executed. When an item of data is identified as an instruction, it is transferred to the IR prior to being decoded and executed. It is also known as the Current Instruction Register (CIR)
  • Program Counter or sequence control register (PC) holds the address of the next instruction to be fetched. After an instruction has been fetched, the PC is automatically incremented by one (sometimes more). It is also altered by certain types of ...

This is a preview of the whole essay