Internal Hardware
Last updated
Last updated
A computer system is any device which takes an input, processes it, and outputs the results.
Computer systems require both hardware and software for them to operate. The hardware includes the CPU; input, output, and storage devices.
The CPU consists of the following parts:
Processor
Main Memory
Address, Control, and Data Bus
Input/Output (I/O) Controllers
External devices such as keyboard and mouse are created by different companies, and therefore they cannot directly communicate with the processor. This is why an I/O controller for each peripheral device is needed so that there is an interface between the device and the computer.
These are software which can directly interact with the I/O controller. When you install a new device to your computer system (e.g. a printer), you must also install a device printer for it.
Converts signals received from the peripheral device into a format which the computer can process and vice versa.
Receives I/O signals from the processor, and then sends device-specific control signals to the devices.
Manages the flow of data, to and from the devices, so that the CPU gets on with other tasks.
A number of buses can be found inside a computer. A bus is a series of parallel wires that connects internal components of a computer system, allowing signals to be passed between them.
The number of parallel wires in a bus is called its width and has a direct relationship to the number of bits can be transferred simultaneously by the bus.
The three buses that you need to know about are the address bus, the data bus and the control bus:
Control Bus: Sends control signals between each I/O controller and processor; and also between the memory and processor.
Data Bus: Sends data and instructions between CPU Components; and between processor and memory.
Address Bus: Sends memory addresses from the processor to other components (e.g. Memory).
The address bus is used to transport memory addresses, specifying where data is to be sent to or retrieved from. It carries the address of a memory location in one direction from the processor to I/O controllers and memory.
Increasing the width of the address bus increases the range of addresses that it can specify, hence increasing the computer’s amount of addressable memory. Adding a single wire doubles the number of addressable memory locations.
An addressable memory location is a portion of memory that can be accessed by its address. If there are not enough addresses available, some portions memory may go unused.
1
2
3
The data bus is bi-directional, therefore data can be sent both ways along the bus. It sends data and instructions to and from the different components of the computer system. Increasing the width of the data bus increases the volume of data that can be transferred over the bus at any one time.
Memory Read: Causes the data/instruction from the addressed location to be placed on the data bus.
Memory Write: Causes the data from the data bus to be written into the addressed location.
Bus Request: Indicates that the device is requesting to use the data bus.
Bus Grant: Indicates that the CPU has allowed access to the data bus.
Clock: Used to synchronise operations.
Harvard architecture and von Neumann architecture are two different ways of setting up a processor’s access to main memory.
If a computer system is setup with Harvard architecture, the computer will use two separate memory locations. One for instructions and another for data. Thanks to Harvard architecture’s use of separate pieces of main memory, it can take advantage of giving each piece of main memory different characteristics. For example, the memory used for instructions could be read-only so that instructions cannot be altered, thus making it less vulnerable to attacks such as buffer overflow.
Harvard architecture is extensively used in embedded systems such as digital signal processing.
In von Neumann architecture, both instructions and data are stored together in the same memory. Because of this, systems based on von Neumann architecture often perform worse than those based on Harvard architecture as the same buses have to be shared for fetching both instructions and data.
Von Neumann architecture is used in everyday general-purpose computer systems like laptops and smartphones.
A computer that uses the stored program concept is defined as "serially fetching and executing machine code instructions stored in main memory by a processor that performs arithmetic and logical operations".
In simple terms, its when there is code prewritten and compiled machine code which is stored into secondary storage, and whenever the code is needed, it is loaded onto the main memory and the processor can read and execute it whenever needed.