This
is the “brain” of the computer, performing the major computational
tasks and assigning tasks to other systems in the computer. Today the market
is dominated Intel’s 8086-family architecture, the latest versions of
which are called the Pentium series. The speed of a processor indicates the
cycles per second (measure in Hetz (Hz)), the size of the processor indicates
how large a statement (measured in bits) it can handle per processor cycle.
This
is solid-state (no moving parts) storage, typically with fast access times,
allowing for rapid data retrieval (reading) and data storage (writing). What
is held in RAM is only maintained while the computer is turned on, so this
is temporary storage only.
Used
to store data and small program routines required for system initialisation,
typically accessed at boot-up. For example on PCs the ROM holds the Basic
Input Output System (BIOS) and the Basic Disc Operating System (BDOS). These
should not be confused with the Operating System (OS), which resides on the
HDD. In PCs the ROM may be called an EPROM – standing for Erasable Programmable
Read Only Memory. The fact that it is erasable and programmable means that
the BIOS can be updated.
The
HDD provides long-term storage. The Operating System, application programs
and data are all stored on the HDD. The HDD is the main storage device in
most computers.
These include CD, DVD, flash (typically slotting into a USB port), smart media, memory sticks. Smart media and memory stick are being more and more widely used in cameras and PDAs, as well as in some phones. These storage devices are increasing in capacity, for example smart media cards now have more than 1Gb of storage.
These can include a graphics card, monitor (or Video
Display Unit (VDU)), printer, plotter, etc. Any device that is used
for output from the system.
These include keyboard, mouse, graphics tablet, etc.
Any device that is used for input to the system.
These include modem, network card, infrared port, blue
tooth adapter, etc. Any device used for both input and output.
The
key unit used to supply the components with electricity of the correct voltage.
It is a good idea to use surge and spike protection in addition, in order
to protect against damage to computer components due to fluctuations in the
mains power supply.
Specialised
power unit with large, rechargeable batteries. This is used to ensure that
the computer is constantly supplied with power even in the event of a mains
power failure. Often a PSU will include current damping, preventing damage
to the delicate components of a computer in the event of power spiking.
The
processor executes a single instruction at a time, one after the other. Each
of these instructions is held in memory, usually loaded into the memory at
the time the program is started. In order to keep track of where the processor
is in the execution of a program a register is used, called the Program
Counter (PC). The PC holds the memory location of the next instruction
to be executed in the program. A line of a program is also known as a statement.
In order to execute a program the processor goes through a sequence known
as the fetch and execute cycle. This cycle is repeated for each line of the
program. The updating of the PC within each fetch and execute cycle is vital
to the correct sequential execution of the program. There are six steps in
the fetch and execute cycle.
1.
Instruction
fetch
2.
Update
program counter
3.
Decode
instruction
4.
Load
operands
5.
Do
the operation (execute)
6.
Store
results
1. Instruction fetch:
The
instructions for a single line of program (statement) are fetched from the
memory address indicated by the PC to the instruction register.
2. Update program counter:
The
PC is updated to hold the memory address of the next line of the program,
usually by incrimination of the address it holds.
3. Decode instruction:
The
instruction held in the instruction register is decoded. The processor decodes
the instruction, identifying the opcode and the operands involved.
4. Load operands:
The
values for any operands (variables) for the instruction are loaded from memory
and usually held in one or more data registers.
5. Do the operation:
The
instruction is executed.
6. Store results:
Store
any resulting values in memory.
The
six steps of the fetch and execute cycle are depicted as sequential. In practice
some of these steps will be performed in an overlapping way, providing a greater
degree of efficiency.
Programs working at this level are written in assembler. Typically most programmers work in higher level languages (like C or Java), which are compiled to native binary.
These have become more popular in the last few years, with a range of models appearing on the market. Some manufacturers have pushed the term Handheld Computer, which is not miss-applied, to indicate PDAs using Microsoft’s Windows CE. The other main OS for PDAs is the Palm OS, the next version of which may include a UNIX-based kernel.
This term has two meanings; it can refer to a computer with an Intel 8086-family CPU, or alternatively any computer that is for personal use. It is worth noting that there are other systems other than those offered by Intel (and AMD). Apple make the Macintosh series, that have a dedicated following. In the past there have been others like the Sinclair computers (ZX80, ZX81, Spectrum) and Commodore (VIC20, Commodore 64, Amiga), although these are no longer produced.
Typically more powerful than the average PC, with enhanced processing (more powerful CPU) and larger memory (RAM). It sits on a desktop and is connected to a Local Area Network (LAN). For example Sum Microsystems make SPARK stations, a series of powerful workstations.
A server is anything that provides (serve-up) services for other computers (clients) over a network. Such services include e-mail, file sharing, databases, web pages, printers, etc. Servers can be specialised pieces of hardware running specialised software but it is also true that servers can be standard desktop PCs running shared services over a network. Servers may run a specialised OS, such as Novell Netware or Windows 2003 Server. Specialised network server OS can provide functionality specific to the needs of networking, including user administration, security, file sharing, back-up and recovery.
These are large computers with massive amounts of memory and heavy processing power. Typically only used by large companies and universities.
These are rare beasts, typically found in research laboratories of universities and research institutions, rarely are they used in business (if at all it is when a business rents some time on one from a university). They have massive computational power, allowing them to solve problems that other computers cannot handle. Currently the fastest is in Japan and is used for modelling weather patterns.
Parallel processing allows more than one instruction to be executed simultaneously. The Pentium 4 chip is the first in the 8086-family to be able to do this. Supercomputers typically use parallel processing, some other computers also take this approach.
There are a number of different types of network, generally these are defined by their scale but also by the protocols they use.
Typically used in a single office or building. The main group pf protocols used for LANs are the 802.x protocols, a group of protocols defined for different types of networks including Ethernet and WiFi. The 802.x standards are defined by the Institute of Electrical and Electronics Engineers (IEEE).
Used to network a number of LANs together, allowing an organisation to connected offices and building over an extended area. A range of protocols may be used for WANs.
The network of networks. There is only one of these. The principle protocol used on the Internet is TCP/IP.
Using encryption for security an organisation can connect different locations using the Internet. The encryption combined with fast connections allows the organisation to connect sites together as if they were on a private WAN.
Protocols are defined means of communicating. Without protocols communications between computers would be impossible. The Internet uses two main protocols, Transport Control Protocol (TCP) and Internet Protocol (IP); usually written TCP/IP and stated as, “TCP over IP”. There are various other protocols for network communications. Microsoft have netBIOS (network Basic Input Output System) for LAN communications. Hyper-Text Transfer Protocol (HTTP) allows for the transfer of web pages of the Internet (over TCP/IP in fact). There are many more protocols, too many and varied to go into here.
The computer hardware offers a simple set of instructions. This instruction set defines the programming language, providing the interface between the hardware of the machine and the software. It is this interface that is the computer architecture. The programming language provided by the architecture is called the machine language.
e.g. Sample machine language for the Pentium:
55
8b
ec
83
ec 08
53
56
57
The transistors on the chip have an off state, 0, and an on state, 1. This results in a binary code. This is difficult to work with, so often a higher level base is used, such as hexadecimal, as shown in the example machine code for the Pentium architecture. Separate commands are shown on separate lines in this example. Working purely in numbers, either directly coding to the transistors in binary or coding in a higher level base, such as hexadecimal or octal, is cumbersome. In order to simplify programming for the programmer a level of abstraction is provided through the use of the more human-readable assembly language. An assembler is used to translate the assembly language instructions into machine language (1s and 0s - binary). The same line of code shown above now become:
Push ebp
Mov ebp, esp
Sub ebp, 8
Push ebx
Push esi
Push edi
This level of abstraction provided by assembler language makes it far easier for a programmer to understand the program than does directly coding the states of transistors by the use of binary.
The level of abstraction provided by assembler is still quite low and many programmers do not bother working in assembler because it can take a long time to write a program. Programming languages with a higher level of abstraction have been developed, such as C, C++, PASCAL and BASIC. These higher-level languages still need to be transformed into machine code. This is performed by either a compiler or a translator – which defines whether the language is a compiled language or a translated language.
Compiled languages (e.g. C) generate files that may be executed by an operator typing in commands to execute the program or calls by other programs (in the case of 8086 architecture processors the files generated are typically .exe or .com files). In the case of translated languages (e.g. BASIC) the high level instructions of the program are translated on the fly for immediate execution by the processor. This on the fly conversion to machine code means that translated languages are typically slower in execution compared to programs written in a compiled language.
Compiled |
Translated |
||||||||||||||||||||||||
High-level language program
compiler
assembly language program
assembler
machine language program in a file. |
High-level language program
translator
assembly language program
assembler
machine language program for immediate execution. |
These are high level language types.
Structured programming languages execute statement (commands) in sequence but the code is organised (usually into blocks of statements) and there is flow control through the use of if, else type statements and also looping with while and for statements. Typical structured programming languages include C and Pascal.
Object oriented programming involves abstracting classes and creating objects. From the classes objects can be created (instantiated). Classes can also be used to create other, child, classes, a process known as inheritance. For example, the class of reports can be used to derive the class of stock reports, from which specific stock report objects for a given date can be produced. The objects are the “real” thing. Object oriented programming languages include C++ and Java.
by
Matthew Martin