Computer Architecture
Contents
3 Box Model
Processor
The CPU (Central Processing Unit) decodes and executes instructions, and processes data. It is responsible for running programs and controlling and monitoring various parts of the system. The CPU is the most complex part of any system, but it could be described as a big Finite State Machine.
The ALU (Arithmetic and Logic Unit) is the component of the CPU that performs calculations on data.
Main Memory
Memory is the part of the computer that stores data. Some memory is volatile, meaning it is erased when the computer loses power. Volatile memory is used for temporary storage of data, and in smaller amounts compared to non-volatile memory.
I/O
Input/Output or I/O is the communication between a device such as a computer and external devices. The Inputs are information received by the computer from external devices and the Output is the information sent by the computer out to external devices.
I/O devices are hardware used by a human in order to interact with the computer. For example a keyboard and mouse are used to operate computers and are necessary for use to be able to use a computer efficiently, these are input devices, while the computer sends out information to the monitors in order for the person using the computer to see what is happening, information is also sent from the computer to printer telling it where to apply ink to the page and what colors to use when printing, these are output devices. There are also devices used to communicate between computers, such as modems or network cards, devices like these act as both input and output devices.
Input devices are devices that take physical movements from the user and convert those inputs into input signals which the computer can understand.
Output devices are devices that take signals from the computer and and convert them into something the user can understand, e.g the display on a monitor or the page printed by the printer.
Extended model with split I/O
The standard 3 box model can be extended in two ways, firstly we can split the input/output functions into individual components. Secondly we can also extend the system bus, so that a working model can be Created.
Input / Output can be classified as input devices, so we can have an input controller (ie keyboard, mouse etc). Input / Output can be classified as output devices, so we can have an output controller (ie VDU/Monitor, printer etc). Input / Output can be classified as storage devices, so we can have a disk controller.
System Bus
The system bus is actually just the name for when the control, address and data busses are tied together to keep them neat, essentially creating one big bus, the system bus.
Control Bus
The control bus carries control signals to and from the processor to main memory and other device controllers.
All devices can read and write to the control bus.
Address Bus
Carries addresses from the processor to main memory and other device controllers, such as addresses to take information from and send information to on the hard drive of a computer, as well as the addresses of anywhere else in the computer data may need to be sent to.
Only the processor can write to the address bus, all other devices can only read.
Data Bus
Carries data to and from main memory and other device controllers and instructions from memory to the processor.
Input devices can only write, Output devices can only read, everything else can read & write.
Types of Architecture
https://www.youtube.com/watch?v=CCOJma3qfKA&list=PLCiOXwirraUDUYF_qDYcZV8Hce8dsE_Ho
von Neumann Architecture
von Neumann Architecture is a type of computer architecture, based on the design created by John von Neumann in 1945.
Computer systems that use von Neumann Architecture contain three main components; the central processing unit (CPU), memory, and input/output devices (I/O), which are all connected together using the system bus.
The memory stores the information (data/program). The processing unit handles computation/processing of information. The Input receives the information from input devices such as mouse and keyboard. The Output sends information out to devices such as the monitor or printer. The Control unit endures that the other components are performing their tasks correctly.
Usage
Used in all modern PC / Computer devices.
Harvard Architecture
Harvard Architecture is a type of computer architecture based on the Harvard Mark 1 relay-based computer, which stored instructions on punched tape and data in electro-mechanical counters.
Computer systems that use Harvard Architecture have their memory split into two parts. One part of the memory is used for data storage and handling, while the other half is used to run programs. Each part of the memory is accessed with a different bus, meaning the central processing unit can fetch data and instructions at the same time. This also decreases the chance of a program corruption.
Harvard Architecture is sometimes used within the central processing unit to handle its catches, but it is used less with main memory because of its complexity and cost.
Usage
Embedded Systems:
- Mobile devices
- Industrial Computing
- Microprocessors
Digital Signal Processing:
- Using continuous real world data
- Eg Video, Audio
Harvard vs von Neumann
Advantages of Harvard
- Data & Instructions handled at the same time
- Do not share the same Bus (more bandwidth)
- More efficient with time & resources
- Faster execution
Disadvantages of Harvard
- More complex memory management
- Possible to run out of one type of memory
- Not be able to use free memory from the other
- So can be memory inefficient
Stored Program Concept
The stored program concept states that a program must reside in main memory to be executed. Instructions are fetched from main memory and executed in sequence.