1.4. Computer Architecture

The interface between a computer’s hardware and its software is its architecture. The architecture is described by what the computer’s instructions do, and how they are specified. Understanding how it all works requires knowledge of the structure of a computer and its assembly language.

The computer is in a sense a communication system. Data is constantly being moved between the CPU, memory and the various devices. The CPU uses I/O addresses to direct data to particular devices. The devices in turn use interrupts to notify the CPU and operating system of their needs.

../_images/comp_parts.png

1.4.1. The von Neumann Architecture

The genesis of modern computers, however, came with the practice of storing a program in memory. according to mathematician john von neumann, for a machine to be a computer it must have the following:

  1. addressable memory that holds both instructions and data.
  2. an arithmetic logic unit.
  3. a program counter.

The important computer architecture components from von neumann’s stored program control computer are:

cpu

The central processing unit is the engine of the computer that executes programs.

alu

The arithmetic logic unit is the part of the cpu that executes individual instructions involving data (operands).

register

a memory location in the cpu which holds a fixed amount of data. registers of most current systems hold 64 bits or 8 bytes of data.

pc

The Program counter, also called the instruction pointer, is a register which holds the memory address of the next instruction to be executed.

IR

The Instruction register is the register that holds the current instruction being executed.

Accumulator

A register designated to hold the result of an operation performed by the ALU.

Register File

A collection of several registers.

../_images/vonNeumann.jpg

1.4.2. The CPU Control Unit

../_images/control.jpg

1.4.3. The Arithmetic Logic Unit (ALU)

../_images/alu.jpg

1.4.4. The von Neumann Loop

Fetch Phase

Fetch the next instruction and store it in the instruction register

Execute Phase

The ALU or I/O unit executes the instruction

  • ALU does calculations
  • I/O unit loads or stores data between main memory and registers
PC = <machine start address>;
IR = memory[PC];
haltFlag = CLEAR;
while(haltFlag not SET) {
    execute(IR);
    PC = PC + sizeof(INSTRUCT);
    IR = memory[PC]; // fetch phase
};

Who is John von Neumann?

John Louis von Neumann was born 28 December 1903 in Budapest, Hungary and Died 8 February 1957 in Washington DC.

He was a brilliant mathematician, synthesizer, and promoter of the stored program concept, whose logical design of the Institute for Advanced Studies (IAS) computer became the prototype of most of its successors - the von Neumann Architecture.

Von Neumann was a child prodigy, born into a banking family in Budapest, Hungary. When only six years old he could divide eight-digit numbers in his head.

At a time of political unrest in central Europe, he was invited to visit Princeton University in 1930, and when the Institute for Advanced Studies was founded there in 1933, he was appointed to be one of the original six Professors of Mathematics, a position which he retained for the remainder of his life. By the latter years of World War II von Neumann was playing the part of an executive management consultant, serving on several national committees, applying his amazing ability to rapidly see through problems to their solutions. Through this means he was also a conduit between groups of scientists who were otherwise shielded from each other by the requirements of secrecy. He brought together the needs of the Los Alamos National Laboratory (and the Manhattan Project) with the capabilities of the engineers at the Moore School of Electrical Engineering who were building the ENIAC, and later built his own computer called the IAS machine. Several supercomputers were built by National Laboratories as copies of his machine.

Following the war, von Neumann concentrated on the development of the IAS computer and its copies around the world. His work with the Los Alamos group continued and he continued to develop the synergism between computer capabilities and the needs for computational solutions to nuclear problems related to the hydrogen bomb.

His insights into the organization of machines led to the infrastructure which is now known as the von Neumann Architecture. However, von Neumann’s ideas were not along those lines originally; he recognized the need for parallelism in computers but equally well recognized the problems of construction and hence settled for a sequential system of implementation. Through the report entitled First Draft of a Report on the EDVAC [1945], authored solely by von Neumann, the basic elements of the stored program concept were introduced to the industry.

In the 1950’s von Neumann was employed as a consultant to IBM to review proposed and ongoing advanced technology projects. One day a week, von Neumann “held court” with IBM. On one of these occasions in 1954 he was confronted with the FORTRAN concept. John Backus remembered von Neumann being unimpressed with the concept of high level languages and compilers.

Donald Gillies, one of von Neumann’s students at Princeton, and later a faculty member at the University of Illinois, recalled in the mid-1970’s that the graduates students were being “used” to hand assemble programs into binary for their early machine (probably the IAS machine). He took time out to build an assembler, but when von Neumann found out about it he was very angry, saying (paraphrased), “It is a waste of a valuable scientific computing instrument to use it to do clerical work.”

Source: http://ei.cs.vt.edu/~history/VonNeumann.html