Computer architecture
Lesson Objective:
- the central processing UNIT/Microprocessor
- Von Neumann Architecture
- ALU, Control unit and registers
- Address bus Control bus and Data Bus
- Cores, cache and internal clock
- Fetch-Decode-Execute cycle
- Instruction set for CPU
- Embedded system
The CPU
Parts:
-Control Unit
-Arithmetic and Logic Unit
-Registers and Buses
Von Neumann architecture
In the mid-1940s, John von Neumann developed the concept of the ‘stored program computer’, which
has been the basis of computer architecture ever since. The von Neumann architecture had the
following main novel features:
» the concept of a central processing unit (CPU or processor)
» the CPU was able to access the memory directly
» computer memories could store programs as well as data (Stored Program Concept)
» stored programs were made up of instructions which could be executed in sequential order.
Components of the central processing unit (CPU)
The main components of the CPU are the Control Unit (CU), Arithmetic & Logic
Unit (ALU) and Registers.
Arithmetic & Logic Unit (ALU)
The Arithmetic & Logic Unit (ALU) allows the required arithmetic (e.g. +, - and
shifting) or logic (e.g. AND, OR) operations to be carried out while a program is
being run; it is possible for a computer to have more than one ALU to carry out
specific functions. Multiplication and division are carried out by a sequence of
addition, subtraction and left or right logical shift operations.
Control Unit (CU)
The control unit reads an instruction from memory.
The control unit ensures synchronisation of data flow and program instructions
throughout the computer.
A system clock is used to produce timing signals on the control bus to ensure this
vital synchronisation takes place
Registers
One of the most fundamental components of the von Neuman system are the
registers. Registers are general purpose or special purpose
Registers are high speed storage areas in the CPU. All data must be stored in a register before it can
be processed.
Buses
Buses are the means by which data is transmitted from one part of a computer to another, connecting
all major internal components to the CPU and memory.
Address bus
As the name suggests, the address bus carries addresses throughout the computer
system. Between the CPU and memory, the address bus is unidirectional (i.e. bits can
travel in one direction only); this prevents addresses being carried back to the CPU,
which would be an undesirable feature.
The width of a bus is very important. The wider the bus, the more memory locations
that can be directly addressed at any given time.
Data bus
The data bus is bidirectional (allowing data to be sent in both directions
along the bus). This means data can be carried from CPU to memory
(and vice versa) and to and from input/output devices. It is important to
point out that data can be an address, an instruction or a numerical
value. As with the address bus, the width of the data bus is important;
the wider the bus the larger the word length that can be transported.
Control bus
The control bus is also bidirectional. It carries signals from the control unit (CU)
to all the other computer components. It is usually 8-bits wide.
There is no real need for it to be any wider since it only carries control signals.
Fetch–Decode–Execute cycle
To carry out a set of instructions, the CPU first of all fetches some data and
instructions from memory and stores them in suitable registers. Both the address
bus and data bus are used in this process. Once this is done, each instruction
needs to be decoded before finally being executed. This is all known as the
Fetch–Decode–Execute cycle.