Difference between revisions of "History of Computers - Von Neumann Architecture"

From SJS Wiki
Jump to: navigation, search
Line 1: Line 1:
 
==Introduction==
 
==Introduction==
Von Neumann architecture was developed by computer scientists/mathematicians John von Neumann, John William Mauchly, J. Presper Eckert, and Arthur Burks in 1945. The term originated when Von Neumann, with the help of Mauchly, Eckert, and Burks, wrote a paper titled ''First Draft of a Report on the EDVAC'' (1945) that proposed the concept of a '''stored-program computer''' that would be the successor to the [[ENIAC]].  
+
Von Neumann architecture was developed by computer scientists/mathematicians John von Neumann, John William Mauchly, J. Presper Eckert, and Arthur Burks in 1945. The term originated when Von Neumann, with the help of Mauchly, Eckert, and Burks, wrote a paper titled ''First Draft of a Report on the EDVAC'' (1945) that proposed the concept of a '''stored-program computer''' that would be the successor to the [[ENIAC]]. (The term stored-program indicates that programs are stored and executed in main memory.)
  
 
In contrast to the more modern Harvard architecture, Von Neumann stored-program computers use the same storage to hold both the instructions needed for a computation and the data needed or generated by the computation. (Harvard architecture uses different sets of data and address buses to read/write data and fetch instructions.)  
 
In contrast to the more modern Harvard architecture, Von Neumann stored-program computers use the same storage to hold both the instructions needed for a computation and the data needed or generated by the computation. (Harvard architecture uses different sets of data and address buses to read/write data and fetch instructions.)  
  
The first Von Neumann computer was the Manchester Mark I, built in Manchester University in England. In 1948, the Manchester Mark I ran its first program out of a 96-word memory.  
+
The first Von Neumann computer was the Manchester Mark I, built in Manchester University in England. In 1948, the Manchester Mark I ran its first program out of a 96-word memory, at a speed of 0.00083 MIPS (millions of instructions per second).  
  
 
In 1952, the EDVAC (electronic discrete variable automatic computer) was completed with Von Neumann's design.  
 
In 1952, the EDVAC (electronic discrete variable automatic computer) was completed with Von Neumann's design.  
  
 
==Overview==
 
==Overview==
In previous, more special-purpose computers, the instruction set was programmed into the hardware, and only the data set and the immediate computational results were stored, and thus these computers were restricted to performing only the one computational procedure that they were built for. With the development of Von Neumann architecture, computers became reprogrammable and thus more general-purpose since instructions could be changed or replaced easily.  
+
In previous, more special-purpose computers, the instruction set was programmed into the hardware, and only the data set and the immediate computational results were stored, and thus these computers were restricted to performing only the one computational procedure that they were built for. With the development of Von Neumann architecture, the instructions were encoded into binary and stored in working memory, and thus Von Neumann computers were reprogrammable and thus more general-purpose since instructions could be changed or replaced easily.  
  
  
A basic Von Neumann computer is composed of five parts: memory/storage for both the data set and the program (nowadays, this memory is RAM), a control unit (part of the CPU), an arithmetic logic unit (ALU; also part of the CPU), input and output structures, and a data bus that connects these parts. The control unit executes the program instructions sequentially, one at a time, and has a register (sometimes called an accumulator) to store immediate results.
+
A basic Von Neumann computer is composed of five main parts: memory/storage for both the data set and the program (nowadays, this memory is [[RAM]]), a control unit (part of the CPU), an arithmetic logic unit (ALU; also part of the CPU), input and output structures, and a data bus that connects these parts. The control unit executes the program instructions sequentially, one at a time, and has a register (sometimes called an accumulator) to store immediate results.
  
  
Line 21: Line 21:
 
#Execute the instruction using the control unit, which commands the rest of the computer to perform the instruction/operation.  
 
#Execute the instruction using the control unit, which commands the rest of the computer to perform the instruction/operation.  
 
*The instruction may change the address in the program counter for two reasons:
 
*The instruction may change the address in the program counter for two reasons:
###To perform a repetitive operation
 
 
###If some arithmetic condition is true
 
###If some arithmetic condition is true
 +
###To perform a repetitive operation
 
#Proceed to step 1 and repeat the process for the next instruction.  
 
#Proceed to step 1 and repeat the process for the next instruction.  
  
Line 28: Line 28:
  
  
A drawback of Von Neumann architecture is that computers built with this architecture can only do either an instruction fetch or a data operation at a time, and they spend a lot of time moving data to and from memory, so performance slows down and reaches a bottleneck (i.e. the Von Neumann Bottleneck). However, this issue has been corrected with the development of parallel computers, which are based upon Von Neumann processors, but in which the CPUs are connected in parallel and thus.   
+
A drawback of Von Neumann architecture is that computers built with this architecture can only do either an instruction fetch or a data operation at a time, and they spend a lot of time moving data to and from memory, so performance slows down and reaches a bottleneck (i.e. the Von Neumann Bottleneck). However, this issue has been corrected with the development of parallel computers, which are based upon Von Neumann processors, but in which the CPUs are connected in parallel.   
  
Another downside of Von Neumann architecture stems from the fact that there is no distinction between instructions and data in memory. To perform an instruction, a Von Neumann computer checks the memory address in the control unit's program counter and fetches the instruction located at the given address, but the control unit can't effectively distinguish whether the fetched data is an instruction or data. Thus, instructions can sometimes operate upon other instructions (which the control unit would recognize as data), and that allows for self-modifying programs, which are not considered to be within good programming practice due to the complications they cause in debugging.  
+
 
 +
Another downside of Von Neumann architecture stems from the fact that the control unit can't effectively distinguish whether a piece of fetched data is an instruction or computational data, for there is no distinction between the two in memory. Thus, the control unit can sometimes be made to recognize an instruction as computational data, and thus instructions can sometimes operate upon other instructions, and that allows for '''self-modifying programs''', which are not considered to be within good programming practice, due to the complications they cause in debugging.  
  
 
==Significance==
 
==Significance==
Von Neumann architecture allowed computers to become truly reprogrammable for the first time, for it allowed for instructions to be changed easily since only the working storage (and not the permanent storage) had to be changed. This set the stage for future, more general-purpose computers, which could be used to perform a variety of different computational procedures since new instruction sets could be inputted. Another reason that Von Neumann architecture is significant to computer history is because computers today are still stored-program (meaning that programs are stored and executed in main memory), albeit using the two-bus system of Harvard architecture. In fact, Von Neumann architecture laid the foundation for the development of Harvard architecture.
+
Von Neumann architecture allowed computers to become truly reprogrammable for the first time, for it allowed for instructions to be changed easily since only the working storage (and not the permanent storage) had to be changed. This set the stage for future, more general-purpose computers more directed towards the general public since a single computer could be used to perform a variety of different computational procedures, due to the fact that new instruction sets could be inputted.
 +
 
 +
Computers today, although most use the two-bus system of Harvard architecture, are still based upon the Von Neumann concept of stored-program.

Revision as of 11:39, 7 September 2013

Introduction

Von Neumann architecture was developed by computer scientists/mathematicians John von Neumann, John William Mauchly, J. Presper Eckert, and Arthur Burks in 1945. The term originated when Von Neumann, with the help of Mauchly, Eckert, and Burks, wrote a paper titled First Draft of a Report on the EDVAC (1945) that proposed the concept of a stored-program computer that would be the successor to the ENIAC. (The term stored-program indicates that programs are stored and executed in main memory.)

In contrast to the more modern Harvard architecture, Von Neumann stored-program computers use the same storage to hold both the instructions needed for a computation and the data needed or generated by the computation. (Harvard architecture uses different sets of data and address buses to read/write data and fetch instructions.)

The first Von Neumann computer was the Manchester Mark I, built in Manchester University in England. In 1948, the Manchester Mark I ran its first program out of a 96-word memory, at a speed of 0.00083 MIPS (millions of instructions per second).

In 1952, the EDVAC (electronic discrete variable automatic computer) was completed with Von Neumann's design.

Overview

In previous, more special-purpose computers, the instruction set was programmed into the hardware, and only the data set and the immediate computational results were stored, and thus these computers were restricted to performing only the one computational procedure that they were built for. With the development of Von Neumann architecture, the instructions were encoded into binary and stored in working memory, and thus Von Neumann computers were reprogrammable and thus more general-purpose since instructions could be changed or replaced easily.


A basic Von Neumann computer is composed of five main parts: memory/storage for both the data set and the program (nowadays, this memory is RAM), a control unit (part of the CPU), an arithmetic logic unit (ALU; also part of the CPU), input and output structures, and a data bus that connects these parts. The control unit executes the program instructions sequentially, one at a time, and has a register (sometimes called an accumulator) to store immediate results.


A true Von Neumann computer performs the following sequence of steps to execute a single instruction:

  1. Check the memory address in the control unit's program counter.
  2. Fetch the instruction located at the given address.
  3. Add the length of instruction to the program counter.
  4. Execute the instruction using the control unit, which commands the rest of the computer to perform the instruction/operation.
  • The instruction may change the address in the program counter for two reasons:
      1. If some arithmetic condition is true
      2. To perform a repetitive operation
  1. Proceed to step 1 and repeat the process for the next instruction.

Most computers do not have pure Von Neumann architecture and add another step to check for interrupts (electronic events).


A drawback of Von Neumann architecture is that computers built with this architecture can only do either an instruction fetch or a data operation at a time, and they spend a lot of time moving data to and from memory, so performance slows down and reaches a bottleneck (i.e. the Von Neumann Bottleneck). However, this issue has been corrected with the development of parallel computers, which are based upon Von Neumann processors, but in which the CPUs are connected in parallel.


Another downside of Von Neumann architecture stems from the fact that the control unit can't effectively distinguish whether a piece of fetched data is an instruction or computational data, for there is no distinction between the two in memory. Thus, the control unit can sometimes be made to recognize an instruction as computational data, and thus instructions can sometimes operate upon other instructions, and that allows for self-modifying programs, which are not considered to be within good programming practice, due to the complications they cause in debugging.

Significance

Von Neumann architecture allowed computers to become truly reprogrammable for the first time, for it allowed for instructions to be changed easily since only the working storage (and not the permanent storage) had to be changed. This set the stage for future, more general-purpose computers more directed towards the general public since a single computer could be used to perform a variety of different computational procedures, due to the fact that new instruction sets could be inputted.

Computers today, although most use the two-bus system of Harvard architecture, are still based upon the Von Neumann concept of stored-program.