The architecture is split into three main sections. Memory, I/O and the CPU. Each of these sections can talk to each other. The four main aspects of the architecture are.
The memory is used to store both data and programs. Each machine code instruction is encoded and placed into main memory. The CPU can then retrieve the code from main memory and then decode the instruction. Data is also held in the same memory and could be mixed. The architecture makes no differentiation between what is a program or what is data in main memory. The CPU, when it looks at an address in memory, will not know if what's there is data or a machine instruction. As such the programmer must ensure that the CPU runs the correct instructions rather than the CPU having that job. This makes the architecture much simpler to create.
The architecture also defines what a word size is. A word is how much memory the machine can fetch in one go. Most modern computers have 32 bit word lengths. This means that they can fetch 4 bytes in one go. Older computers have 16 or even 8 bits. This means that it may take more than one clock cycle to fetch data. Although getting more data in one go is desirable in a lot of situations it is not always a good thing. Some older computers used to have 128 bit word lengths. This is huge compared to modern day computers but it did not make the computer run faster. This is because in most situations you only want to get 32 or 64 bits out from memory. The machine can only ever get one word of data which means that half the data retrieved will not be used.
These are the devices used to read in programs and to store data. Without these devices it is difficult to build a working computer.
Von Neumann saw the CPU as being a practical representation of a Turing machine. In order to make it practical Von Neumann added a few extra features to the CPU. He also defined the instruction set for the CPU. The instruction set is a list of all of the machine code operations which the processor understands.
This fetches, decodes and executes instructions. This process, known as the fetch-decode-execute-reset cycle or FDER will be looked at in detail in the next section. The control unit is effectively the heart of the CPU.
ALU stands for arithmetic logic unit and it was added by Von Neumann in order to make the basic Turing machine more practical. Turing built up commands by using many simple steps. Von Neumann saw this as inefficient so he allowed some basic operations be performed by the ALU. The operations the ALU perform are
These are small areas of memory on the CPU which are used to store intermediate results of a calculation. They effectively model the part of the Turing machine tape currently being worked upon.
The quartz clock is effectively a small piece of quartz which vibrates due to a electric current passing through it. It is a reliable timing device as it will vibrate in equal intervals depending on the voltage going through it. It is used to keep a track of FDER cycles. The faster the CPU can perform instructions the faster the clock will be required to vibrate. For example a 1000Mhz computer will vibrate 1000 million times per second.