Computer Hardware and Software
Created | Updated Oct 20, 2010
The general operation of a computer system is processing some form of input into some form of output through the use of a processor. To aid the processor achieve the desired outcome additional device may be used as a form of intermediate information store.
A average computer system contains four main types of software.
1.) Input devices – Provide the means to present information for processing and include keyboard, mouse, tracker-ball, video source, joystick, light-pen, touch screen and bar-code reader;
2.) Processor – A processor is a hardware component which obeys instructions to process input information in some pre-defined manner into output information. Traditionally, a processor used in a personal computer system is known by the term microprocessor. The term processor and microprocessor are often used to mean the same thing and are freely interchanged. The term processor is also associated with control devices. Such devices provide for the localised controlling of equipment in an intelligent manner. Examples include the control unit in central heating systems, domestic washing machines and alarm systems;
3.) Storage devices – These devices provide for the storage of information. The information may represent instructions associated with a processor or data to be processed by a processor. Storage devices exist in two forms, primary and secondary storage. Primary storage devices are memory components whilst secondary storage devices are cheaper mass storage devices such as hard disks.
4.) Output devices – The results produced by a processor are reported (output) through the use of an output device. Output devices include printers, plotter, display-screen or monitors, speakers and robotic arms.
Purposes of hardware
Hardware devices are used in different ways they allow the computer to do the following tasks: -
1.) Data Capture – Hardware devices used to capture data can do this in one of 4 different ways: -
Manually – Information is entered into the system by the user via the keyboard or similar device
Automatically – Information may be obtained by the computer system without user input. This may be done by the computer having a system link with a remote system. The receiving device detects the receipt of data and processes it accordingly.
Data logging – A data logger is a device used to record and store information at a source independent of the computer. The logged data is later inputted into the computer for processing. The logging device usually employs it own processor to control it’s operation and some form of storage in which to supplied inputs. The input may be entered in the form of user keyed values or through the use of a device such as a barcode reader.
Sensed – Information entered into a system does not necessarily have to be in a human readable textual form. The input may be obtained (Sensed) through the use of devices such as temperature, pressure, positional and sound (Microphone sensors. The system sample (inputs) the available information and processes it as necessary. Sound sensing can be used in voice recognition packages, the user entering commands by speaking into a microphone rather than typing the commands in via a keyboard.
1.) Processing – Hardware devices such as processors are used to process or interrupt information and produce output information. They achieve this by following a sequence of instruction, which carefully detail the exact actions required by the process, such as add and subtract.
2.) Storage – To process information a processor needs to be supported by additional devices which provide the means to store both the instruction to be performed and the data upon which to perform the instructions. Such data stores take the form of: -
Permanent – This form of storage is provided by primary storage in the form of ROM
Temporary – This form of storage is provided by primary storage in the form of RAM
Axially – Also known as secondary storage this form of storage is provided by devices such as disk drives and tape streamers.
1.) Output – The hardware available to present results derived through processing include:
Screen display – Information must be presented to the user in a temporary visual form through the use of a suitable screen display of monitor. The information may represent readable text or some form of image;
Sound – Output in the form of sound is produced by converting some internal numerical form through the use of suitable sound generating hardware. The generated sound may represent synthesised spoken word or music. At the simplest level this may be a beep alert.
Print – similar to screen display output, information mat be presented to the user in permanent visual form through the use of suitable printing hardware. The information presented to the printer may ultimately represent readable text or some form of image and be presented on a variety of mediums including paper and transparency sheets;
Movement or Physical control – Movement or physical control – just as input information does not always have to represent a readable form, so to can the output information. It may represent a command to a movable device such as a robotic arm. Consider an automated drilling machine capable of drilling at different drilling speeds and different rates of drill-bit advance and withdrawal. The output of the process can be the sequence of commands to achieve this accurate drilling operation.
System specification
Many factors effect a systems performance, one of these factors is it’s specification. The main factors that effect a systems specification are: -
The processor type
The number of processors
The processor speed
Cache
Amount of RAM
Amount of secondary storage
Processor Type
Processor manufacturers continually strive to provide processors capable of moving information faster and in larger quantities. Newer versions (Models) of processors are continually emerging. Presently, the majority of personal computers and many intelligent peripherals devices such as laser printers use INTEL 80xxx or MOTOROLA 68xxx processors.
Number of Processors
There exist processors whose architecture is specifically geared to working in unison or parallel with other similar processors. The concept is that of sharing the workload and where possible performing task in parallel thus increasing the overall throughput of the system. Each supporting processor will typically perform a specialist role, which it can do faster than the main processor, for example, a maths co-processor will execute a range of arithmetic operations.
Processor speed
Generally processors do something each time an internal clock or time source ticks. Each clock tick is the signal to start an action. The more ticks per second, the more actions can be undertaken by the processor per sound. The internal structure of the processor must be capable of operating at the frequency. A single model of processor may be available in one of many different clock frequency ratings. A higher clock frequency does indicate a processor’s ability to operate faster but should not be considered in isolation of the rest of the system. A clock rate of 33MHz means a clock ticks occurs every 1/33,000,000 of a second.
Cache
It is possible to identify supporting devices as main memory and disk drives, which operate much slower than the processor. Cache mechanism represents components that lie between the processor and devices. Their purpose is to hold the set of stored information most recently accessed by the processor. When referenced again, a copy may be more readily available in the faster cache area rather than waiting for the slower device to respond. If too little cache is available then the contents are frequently being replaced by only the most recently accessed information. If too much cache is provided then excessive time may be spent searching the cache storage, in which case, it would be more efficient to obtain the information from the attached device.
RAM Random Access Memory
The processor uses main memory as a fast access area denoting the program instructions to be executed and the information upon which to perform such instructions. Memory exits in various forms providing the processor with different facilities. RAM holds the program information prior to its dispatch to the processor. The more RAM you have the more of the program instructions you can hold at one time. If you had two computers with identical specification and one had 16 megabytes of ram and the other has 48 megabytes of RAM, the computer with 48 megabytes of RAM would be faster because it could copy more programs instructions into RAM than the computer with 16megabytes of ram.
Let’s say you had a computer with the specification
80486 - Processor
8 Megabyte Sram - RAM
800 Megabyte - Hard disk
2 Megabyte - Video RAM
256 Kilobytes - Cache memory
3.5” - Floppy drive
8 Speed - CD ROM
It would be a lot slower then a higher spec machine for example: -
400 MHz Pentium 2 - Processor
128 Megabyte SDram - RAM
8 Gigabyte - Hard disk
12 Megabyte - Video RAM
512 Kilobytes - Cache memory
3.5” - Floppy drive
32 Speed - CD ROM
Obviously the presence of a floppy drive or a CD ROM or any similar device has no real impact on the overall speed of the computer, but if the computer is the same spec as above and had say 36 speed CD-ROM, then the speed of running CD ROM based software would be far greater.
Software
If you think of computer hardware as your body and the microprocessor as your brain then software is your memories. Software dictates to the processor what it is to do and the processor tells the rest of the system. There are two main types of software Systems software and Applications software.
Systems software
Systems software represents the body of programs available to the computer user, which provide the means to control and manage the computer. Development of software in the area requires the developer to posses the necessary technical understanding of the computer. Examples of system software include:
a.) Operating Systems
b.) Utilities
c.) Program development tools
d.) Compilers
e.) Assemblers
f.) Linkers
Compilers, assemblers, linkers and program development tool allow the user to create programs. Utilities are concerned with the processing of routine task providing the user will various aids to generally administer the system through facilities such as disk formatting, backing up procedures, file maintenance, file copying, sorting and text editors.
Operating Systems
Operating systems are a collection of suite programs, which control the operation of the computer and the flow of information around the computer in order to execute further applications. It is the interface between the users written or purchased software and the hardware. It provides the user with a wide range of commands to drive the computer with. Each computer has associated with at least one operating system permitting the user to easily operate the computer in some manner. Some systems like the Power Mac run two operating systems simultaneously it has two processors, one running the Mac operating system and one running the DOS operating system. Some examples of operating systems are - UNIX, MS DOS, Windows NT. There are also Windows 95 and Windows 3.1 but these aren’t strictly operating systems in there own right because they still need DOS to run.
Utilities
The utilities category is concerned with the processing of routine tasks providing the user with various aids to generally administer the system through facilities such as disk formatting, back - up procedures, file maintenance, file copying, sorting and text editors. Some examples may be regarded as providing a system software capability.
User interface software
This type of software is usually referred to as Human Computer Interface. Much emphasis is placed on the ‘User Friendly’ aspect of a program, that is, the flexibility and ease with which the user interacts with the running application. This includes both the actions associated with input and the way the output is presented.
User interface software includes command driven interfaces such as MS DOS, Menu driven interfaces, which are typically driven under DOS and user Interface Management Systems. The latter is usually provided by a window-based interface, the purpose of which to provide a familiar screen layout across numerous applications. Some applications use standard routines to achieve this goal. This process eliminates the need for programmers to spend hours writing new routines when they are not needed, some examples of this are the open file routine Which is pretty standard throughout all programs written by Microsoft.
Computer Programming Languages
Program developers need the correct tools to producer more programs. A programming language is such a tool. It permits the easy definition of the instructions and order in which such instructions are to be executed to derive a desired outcome. Although all programs that are run by the computer are broken down into numeric form they cannot be easily written that way. Instead, development tools permit the program developer to set down a solution in a more human readable form. That is the Programming Language. This must be then translated into a form more easily understood by the computer (Binary). Each programming language has associated with it a rigid structure any program written in the language must take.
Although there appears to be a bottom less pit full of programming languages in which to develop a solution to a programming problem, the developer should use the programming language most suited to the task to be accomplished. There exist languages more applicable to developing applications software and those more applicable to the area of systems software.
Program Generators
This category of software provides the user with the automated generation of parameterised program code. The user is required and is not concerned with how it is to be achieved. The code generated provides a working solution based on a collection of standard code segments. A program generator is designed to provide a solution to a specific type of task. It can not be asked to do something it was not designed to do. An example of a program generator is a 4GL. The user defines the way they want the information to be stored and following the entry of the information; queries can be made upon it. How computer accomplished the queries is of little importance to the user, the importance is the retrieval of information that satisfies the request.
Applications software
Applications software generally represents any software that doesn’t have overall control of the computer. Basically applications take input form a user and turn that input into an end product. Generally the less technical understanding the program requires from the end-user, the more the program can be viewed as an application.
Applications include programs like Microsoft Word, Microsoft Excel, and BORLAND C++
It should be remembered that some programs seem to fall into both categories. A compiler may be viewed as belonging to both as it represents a piece of systems software but is also an application.
Applications
There are many different types of applications, but these can be grouped together in the following way.
Word processors
Word processors are programs that allow you to enter and manipulate text. They act as tools and help you write your documents. You can use them to write simple letters to friends to 300 page novels. Some examples of word processors follow: -
Microsoft Word 97
WordStar
Microsoft Wordpad
Microsoft Notepad
Microsoft Works
Word perfect
WordWorth
Finalwriter
QBasicWrite
Kindwords 3
Transwrite
Spreadsheets
People who work with numbers use spreadsheet software: accountants, banks and building society employees, engineers, financial planners. The user enters the data and the formulae to be used in manipulating the data, and the program calculates the results. One of the most useful features of a spreadsheet is it ability to perform “What if” calculations: “What if we produce 30% more widgets and wages increase by 10% -- how much will we have to charge in order to show a profit?” Spreadsheets are therefore often used in planning and budgeting, but are also widely used by anyone working with figures - for example, keeping a set of students’ marks. Some examples of spreadsheets follow.
Microsoft Excel 97
Microsoft Works
Lotus 1 2 3
Microsoft Money
Desktop Publishing
Desktop publishing is an extension of Word-processing. It allows the user to lay the page out how they want. It is easy to change fonts and write in columns, and to draw simple diagrams. Often a document is prepared using a word processor and then imported into a Desktop Publishing package where it can be put into columns, different typefaces used or diagrams added. Complex pictures and graphics can be prepared in other specialised drawing packages or “scanned” using a scanner and then imported onto the page before printing. Tasks that would previously have taken a graphical artist or printer hours of hard work can now be achieved easily in a few minutes.
A common desktop publishing system includes a desktop computer, a laser printer and Desktop Publishing Software.
Some examples of Desktop publishing packages are: -
Serif Page Plus
Microsoft Publisher
Pagemaster
Ventura
Frame Master
Presentation graphics software
Using graphics such as Harvard graphics of lotus freelance, numeric values can quickly be transformed into different types of graphs for a more easily grasped presentation. Most spreadsheet packages provide the ability to draw graphs such as bar graphs, pie charts and line graphs from a series of numbers.
Integrated packages
An increasing feature of modern software is its ability to integrate with other packages. For example a user may have some figures to import into a graphical package, of he may have prepared some figures in a spreadsheet which he wants to insert into a word document. Integrated packages such as Microsoft office have a spreadsheet module (Excel), a database module (Access) and a word-processing module (Word) and data can readily be transferred between modules.
Computer aided design
CAD packages are used to produce technical drawings. They can be as accurate as you want them to be and in the right hands are powerful tool. Some examples of CAD packages are: -
Turbo CAD
Auto CAD
Multimedia authoring tools
This type of package can combine text, graphics, animations, sound and video for presentations, games and interactive tutorials.
Telecommunications
This type of software enables you to send and receive data over a wide area network via a modern, access the Internet, send and receive electronic mail and browse the world-wide web. Some examples of telecommunications software are: -
Lotus notes
Internet Explorer 4
Netscape
Novel NetWare.
Expert systems software
Expert systems can be programmed with the facts and rules about a certain domain or field of knowledge, such as geological data about known oil fields. The system can then be used to predict the likelihood of finding oil in a new location given its geological profile. Some examples of Expert systems are Crystal, Elsie
Database management systems
The database management systems category of software represents software packages, which provide for the management of structured data in the form of databases. The management functions provide the user with the ability to:
Define the structure of entities associated with stored data;
Identify relationships and cross- references between databases entities;
Enter new information into pre-defined structures;
Control the operational characteristics of the database management software;
Generate applications to process the stored database(s).
Architectural layout of a computer
The basic functional units of a microprocessor are the microprocessor ( or CPU as it is sometimes known), the memory which is primarily used to store programs and data, and the input and output parts which interface to the connected peripherals.
The processing unit is responsible for the execution of basic machine instructions. These instructions are read from memory and executed by the CPU. The peripheral devices connected to the computer via the input and output ports. Hence the processor has some instructions to drive these interfaces correctly. The central processing unit.
The CPU needs to send the right signals to the various components to activate things at the right time i.e. it issues orders to do things by sending appropriate commands or signals. In this way the various components pass information or data between one another along the highways. The control of this data, so it arrives at the right time at the right place is a major aspect of data flow.central processing unit
The central processing unit usually comes in the form of an integrated circuit. It consists of a timing and control unit, an arithmetic logic unit (alu) and a number of registers so that each instruction id correctly obeyed. The Arithmetic unit performs addition, subtraction and logical operations on the data. The CPU therefore controls the interpretation and execution of instructions within the microprocessor system.
The processor controls several registers some of these are: -
Current Instruction Register
Program Counter
Memory Address Register
Memory Buffer Register
Currant Instruction Register (CIR)
The currant instruction register contains both the operator and the operand of the current instruction. For example, a machine language instruction to load the contents of location 1000 into the accumulator might be written
LDA 1000
Where LDA is the operator and 1000 is the operand
Program Counter (PC)
The program counter holds the address of the next instruction to the executed. It is also known as the sequence control register (SCR) or the sequence register. When a sequence of instruction is being executed, the program counter is automatically incremented to point to the next instruction that is; it holds the address of the next instruction to be executed. Depending on the length of the current instruction, this may mean that 1,2 or 3 have to be added to its current contents. If the current instruction is a branch or jump instruction, then the address to branch to is copied into the program counter.
Memory Address Register (MAR)
The memory address register holds the address of the memory location from which information will be read or to which data will be written. Remember that both instructions and data are held in memory so that sometimes the MAR will hold the address of an instruction that is to be fetched and sometimes it will hold the address of data to be used in a instruction. When an instruction is to be ‘Fetched’ the contents of the program counter is copied to this register. So that the CPU will know where in memory to get the next instruction from.
Memory Buffer Register (MBR)
The memory buffer register holds the data, which has just been, read from memory into the processor or data which the processor is able to write in memory. For example lets assume the processor wishes to read the number from memory location 10,000 the MAR register will contain 10,000, whilst the memory buffer register (MBR) will be used to hold the number 4 when read in the processor initially.
Fetch Execute Cycle
Every processor goes through an automatic sequence of steps when executing machine code programs instructions this automatic sequence of events continues until the end of the program is encountered. This is referred to as 'The fetch execute cycle'.
The following happens during the fetch execute cycle: -
1.) The first machine code instruction travels down the data bus into the Memory buffer register. Since it’s a program instruction it’s copied into the current instruction register where it’s decoded and executed by the processor i.e. by the control unit. The program counter is now incremented to hold the memory address of the next instruction to be fetched by memory. When the instruction in the instruction register has finished execution. The processor is now ready to fetch the next instruction. The contents of the program counter are copied to the Memory address register. The contents of the memory address register are now put on the address bus. This identifies the memory location containing the next instruction ( at memory address 501)
2.) The next instruction (10111011) is transferred down the Memory line to the memory buffer register where it is now copied into the current instruction register. Whilst this instruction is being decoded and executed the program counter is incremented by one (502).
3.) After the contents of the CIR has been fully decode and executed we are now ready to fetch the next instruction from memory. The contents of 502 is copied into the MAR where it is now fed on to the address bus, the actual contents of the memory location, the program instruction (11000111) is transferred down the data bus into the Memory buffer register where it is then copied into the current instruction register for decoding and execution. Whilst this instruction is being executed the program counter is incremented by one, so that it contains the address of the next instruction to be fetched. When the instruction in the CIR finishes execution we are ready to fetch the next instruction.
4.) The contents of the PC (503) is copied into the AMR and then transferred onto the address bus. The program instruction at memory location 503 is transferred down the data bus into the MBR. This instruction is now copied into the CIR for decoding and execution. Assuming that this is a halt instruction i.e. the end of the program, the program stops execution and the fetch execute cycle ceases for this program.