Computer Architecture Review

The Von Neumann "Stored Program Computer" Concept

Before the first "real digital computer" was built, John von Neumann (a Hungarian-American mathematician) published his perception of a machine which would be capable of making computations based on instructions given by human users. Peopla later started calling those humans "programmers".

The stored computer concept basically describes a processing unit fetching program instructions from its memory; then decoding the instruction (figuring out what the instructions is; what operation(s) does it imply, etc.) and executing the instruction. Any data the executed instruction generates or modifies or uses is also to be stored in the same memory. In other words; data and program instructions can and should be located in the memory of a computer.

In modern computer terminology we call this memory "RAM"; initials which stand for "Random Access Memory". RAM is a volatile memory; that is, RAM needs electrical energy to retain its contents. If energy is cut, the contents of RAM will be cleared; therefore we use secondary storage equipment to store program instructions and data so that they can be reused. The main secondary storage equipment we use these days are the magnetic storage media; mainly floppy disks and disks (CD's are also very popular secondary storage media).


Basic Digital Computer Architecture
CPU: The most important electronic component of a digital computer! Handles or all arithmetic and logical calculations and controls the sequencing of insrtuctions which make up the program.

Memory (RAM) : Temporary storage where programs and its relevant data (partially) need to be located while the programs execute. Note that RAM cannot retain data or program instructions if it looses power.

I/O Controlers : Elecronic circuitry to control and manage input-output units like the leyboard(s), monitor(s), disks, tapes. These circuits are built in such a way that, they know the devices they are supposed to control behave and they send/receive signals accordingly. For example, when the program executing in a CPU needs to access a piece of information on a disk, the program passes this request to the disk controller; which in return checks if the disk exists, if it is turning, if it as the correct speed, if the read/write heads are in correct position, etc.

External Storage : Since RAM is not suitable for long time storage of data, one uses external storage equipment (usually magnetic disks and magnetic tape). External storage equipment is usually much higher in capacity compared to RAM.

Basic CPU Architecture
Instruction Decoder : Once the instructions and data of a program are loaded into memory (RAM), a "fetch circuit" brings the first instruction of the program into the "Instruction Decoder" circuit located in the CPU. Once the instruction is decoded, the Arithmetic Logic Unit executes the instruction using/generating data in the general purpose registers. For example, if the instruction is an ADD instruction to add the values in registers 1 & 2, the ALU performs the addition operation by activating special addition circuits and places the sum (result) in a register.

Sequence Controller : This circuit decides for the address of the next instruction to be executed and makes necessary arrangements to fetch that instruction. The next instruction to be executed is usually the next physical instruction in the memory but sometimes, especially after executing comparison instructions, the next instruction could be an out of sequence insrtuction.

Program Counter : Is the special circuit which contains the address of the next instruction to be executed.

Cache Memory : Is a small but very fast memory specially used to buffer the instructions to be executed. (Remember the example I gave in the class : Somebody fetching books from the library for me to examine; first one by one and then in bunches of 10 books).

Address & Data Bus: Special circuits where address and content information flows around in the CPU and the computer itself.