~ Architecture


Computer Architecture

Modern computing (arguably) started in 1822 when Charles Babbage, a British Mathematician, proposed 'the difference engine'. This was a mechanical machine that could calculate numbers from given inputs. Unfortunately Babbage never got enough funding to realise his plans and there was no Victorian Computing Revolution, however, you can see a completed modern version in the Science Museum in London (along with half of Babbage's brain!).

Since Babbage there have been several different designs of computers, and the one we are going to focus on here is called the 3-Box Model, or Von Neumann machine. In this machine:

  • All data and instructions are stored in the Main Memory
  • Instructions are sent to the Processor along the System Bus to be executed
  • Any input and output (such as printing and entering instruction) is performed by I/O devices with the data travelling from the I/O devices to the Processor and Main Memory by means of the System Bus:

 
Von Neumann's Architecture

Consider a program stored on a DVD, to get the machine to run it, you will have to input the data from the DVD to the memory using the system bus. Once the program is loaded into memory the instructions it will be sent to the CPU line by line using the system bus and executed there. Any things to be printed or shown on a screen will be sent to the Output box.

 

Processor

 
Plot of CPU transistor counts against dates of introduction. Note the logarithmic scale; the fitted line corresponds to exponential growth, with transistor count doubling every two years.

The processor (or Central Processor Unit - CPU) is one of the most complex parts of any computer system. The processor executes programs and supervises the operation of the rest of the system. Single chip processors are otherwise known as microprocessors. Gordon E Moore theorized that the number of transistors that could be integrated onto the chip would double every 18–24 months, most modern processors will contain billions of transistors. Multicore microprocessors are now very popular, where the processor will have several cores allowing for multiple programs or threads to be run at once.

An Intel 80486DX2 CPU from aboveAn Intel 80486DX2 from below

Main Memory

Main memory - data store that can be directly addressed by the CPU


Main memory is used to store program instruction and data, using the System Bus to communicate with CPU. Main memory is often created using Random Access Memory (or RAM) or Read Only Memory (ROM). Modern computers will have gigabytes of RAM, meaning that large programs can run and multiple programs can run at once. The more main memory that you have the larger the number of programs you can run at once.

 
Main memory is often made up of RAM modules, where you can adjust the amount by swapping in higher capacity modules or adding more modules

Main memory consists of data stored in addresses, in general, the more main memory you have the more addresses you'll have and vice versa.

AddressContents
1024 Cabbage
1025 Celery
1026 Courgette
1027 Carrot
1028 Cucumber
1029 Chard

In the above example if we were to perform the following assembly code instruction:

LDA 1026 ;LOAD memory location 1026

This would return the word: "Courgette"

If we were to perform the following assembly code instruction:

STO "Beetroot", 1025 ;STORE data given into memory location 1025

This would change the value stored in memory location 1025 from "Celery" to "Beetroot"

ROM and RAM

RAM - Random Access Memory can be read from and written to. Data is cleared when the power is off

 

ROM - Read Only Memory can only be read from, data is maintained when the power is off


The two main types of main memory are ROM and RAM. Whilst RAM might be several gigabytes in size, ROM will often be a few kilobytes. As ROM is read only memory, it tends to store core software instructions such as the code needed to load the Operating System into RAM (known as bootstrapping) or change the bios. RAM is much much larger and stores the code to run the operating system and programs that you run on your computer. When you load a disc into a games console, the code won't do anything until it has loaded from the disc into the system RAM, that's why you see a loading screen.

 

Addressable memory

A computer must be able to access main memory for reading and writing, they do this by using addressable memory. Main memory is a little like a set of school lockers, each with a different number. Each locker contains a block of data and if you fill up one locker you can use the next locker to expand into.

CPT Memory Addressable Analogy.svg

Looking at the example above you can see locker '0' contains '8975', whilst lockers 1 to 6 contain the sentence "The Cat sat on the dog!". Locker '7' is empty, locker '8' contains a boolean value and locker '9' contains the number 48. As you can see if we only used one character for the locker number then we could only ever have 10 lockers. If you limit the number of addresses you can use then you limit the amount of memory you can talk to. If you have a small address bus then you won't be able to have much main memory.

The way that data is stored in a computer is very similar:

CPT Memory Addressable.svg


Text is available under the Creative Commons Attribution-ShareAlike License https://en.wikibooks.org/wiki/A-level_Computing