Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer? Problems, solutions and algorithms Universal computing engines Introduction and Concepts
Computer Systems Architecture Edited by 3 categories of computer user System designer Creates a system to suit own needs Technical expert in some areas Gets the best out of what's available Uneducated user Gets by, but not very efficiently Which type do you think you are? Which one would you rather be?
Computer Systems Architecture Edited by Basic topics How the internal structures of a computer system can manipulate data interact with the outside world How various peripheral devices operate How computers communicate across networks
Computer Systems Architecture Edited by Two approaches Principles or fundamental concepts Technology or implementation in physical hardware
Computer Systems Architecture Edited by What is a Computer? There is a difference between being able to give a definition and understanding the definition given At MSc level we need to do both Knowing HOW something can be useful is good Knowing WHY something is useful is better
Computer Systems Architecture Edited by What is a Computer? There is a difference between: 1) Giving a definition that describes what a computer is - only helps you to identify one if you see it 2) Giving a definition that explains what a computer is - helps you to understand what a computer is 3) Giving an answer that explains how and why computers are used – often a better answer
Computer Systems Architecture Edited by A definition of a computer A computer consists of: Processor (CPU) - manipulates data, reacts to inputs Memory - to hold data and programs Input and output devices - to communicate results and receive initial data Backing store (persistent storage) - to provide more permanent storage of information All these areas are developing and changing!
Computer Systems Architecture Edited by Classic computer structure diagram input output processor memory
Computer Systems Architecture Edited by Concept of an algorithm problem - statement of something that is to be done - goal to be achieved solution - specified sequence of actions when performed will produce goal algorithm - a solution where sequence can be carried out mechanically i.e. carrying out sequence of operations/actions does not require particular intelligence/skill or creative thought
Computer Systems Architecture Edited by Example - simple decimal addition to add 2 decimal numbers (operands): starting with least significant digit of each operand add single digit from each operand together with any carry from the last single digit addition write down least significant digit of result and note any carry in temporary location repeat until both sequences of digits exhausted
Computer Systems Architecture Edited by Features of such an algorithm each step is precisely determined the sequence of operations will terminate i.e. it is a finite sequence the operations are “primitive” (not further sub- divided) – and do not require particular intelligence we can access the result
Computer Systems Architecture Edited by Features of algorithms instructions - if they are not to require intelligence in their interpretation require: simple language of symbols for specifying operation to be performed mechanism that will perform operations as specified by symbols of language
Computer Systems Architecture Edited by Algorithmic mechanism Mechanism that can execute an algorithm must thus be able to: execute primitive operations on operands read instruction symbols and mechanically control sequence of operations performed hold copies of operands, results and temporary values during execution of algorithm input operands to be operated on output result
Computer Systems Architecture Edited by Deductions from definition a computer must consist of: execution unit - to manipulate/operate on data control unit - to control sequencing of operations memory - to hold copies of data and programs input and output devices - to communicate results and receive initial data, etc
Computer Systems Architecture Edited by input simple ops execution unit output memory control unit Revised Layout
Computer Systems Architecture Edited by Universality it is possible to design a general purpose computer as opposed to dedicated computer example of a dedicated “computer” - analogue clock, solves a specific problem a general purpose computer can execute any algorithm
Computer Systems Architecture Edited by What is a Computer? a machine that can (in principle) execute any algorithm that is specified for it this is a very powerful concept it is a relatively new concept however, there are some problems we might expect to be able to solve but cannot solve due to complexity and time issues
Computer Systems Architecture Edited by Functional levels we may view a computer as a series of functional levels each level is defined by services (or components) it provides to level above by execution of a procedure or implementation of a mechanism, using services/components provided by level below
Computer Systems Architecture Edited by we may view a program as a series of functional levels each level is defined by services (or objects) it provides to level above by execution of a method or definition of an object, using services/components provided by level below program structure
Computer Systems Architecture Edited by Conclusion A computer is a machine that obeys instructions in the form of a program A program is an algorithm expressed in a particular programming language Many problem solutions may be analysed and reduced to an algorithm All algorithms can in principle be processed In practice, computers can be slow