290 likes | 446 Views
COMP201 Computer Systems. Dr Richard Nelson richardn@cs.waikato.ac.nz Room G.1.29. Computer Systems. Course Outline Course Web Page: http://wand.cs.waikato.ac.nz/~201/2004/index.html Class Representatives Introducing Computer Systems Hardware Software WRAMP and REX Board. Topics.
E N D
COMP201 Computer Systems Dr Richard Nelson richardn@cs.waikato.ac.nz Room G.1.29
Computer Systems • Course Outline • Course Web Page: • http://wand.cs.waikato.ac.nz/~201/2004/index.html • Class Representatives • Introducing Computer Systems • Hardware • Software • WRAMP and REX Board
Topics • Introduction to course • Data representation • Assembly language programming • Processor structures • (end of first term…) • I/O • Memory management • Operating systems • Data communications
Administration • Website • Class Reps • Linux
Introduction • Chapter One – Englander • Computer Systems: • Course is about the function and design of the various units of that make up digital computers • Also about the interaction between software and hardware • Question: What do the insides of a Computer look like and why do we care?
Introduction • A single question, but many answers. You should care, for many reasons… • As a User • You will be aware of strengths and limitations of your computer system • As a Programmer • You will be able to write better programs • As a Systems Analyst • You will need to specify computer systems for purchase • As a Systems Administrator or Manager • You will be able to more effectively manage computer systems
Computer Ad Suppose you need a new computer, can you understand these specifications enough to make an intelligent choice?
Components of a Computer System • The Computer Hardware • Processor, Memory, Input/output devices, interconnects • The Software • Programs, structures • The Data to be Manipulated • Data format, max and min values, precision • The Communications Component • Networking, human interface
Computer Systems Introduction • Components of a Computer System • The Computer Hardware • The Software • The Data to be Manipulated • The Communications Component
The Hardware Component • CPU (central processing unit) • Where operations and calculations carried out • Composed of three main units • Arithmetic Logic Unit – where arithmetic and logic operations are performed • The control unit – controls processing of instructions and movement of internal data • The interface unit – moves data and instruction between the CPU an other components
Memory • Often known as primary storage or RAM (random access memory) • Made up of a large number of cells • Each location can hold a binary number (8/16/32/64 bits on most computers, 32 bits on REX board) • Each has a unique address • Amount of primary storage has raised dramatically over time: • 64K bytes was considered a large amount of memory in 1980 • Current PC’s come with 128Mbytes or 256Mbytes as standard • That’s about 2000 times as much!! • More memory allows more sophisticated programs to be run • E.g. Windows
Software, a key component • Without the software, the hardware is useless. • The software, often termed the Program, exists at different levels of abstraction. • Processor itself operates on binary (bits) • Humans understand and like higher-level programs
Below your Program • Instructions (which tell the computer what to do) are collections of symbols (bits) • For example, the bits 1000110010100000 may tell one computer to add two numbers together • This is in fact the way that the first programmers communicated to computers • very tedious and error-prone
Below your Program • Assembly languages and assemblers were developed to help programmers • eg. ADD C, A, B • Programmer’s productivity later further improved by the introduction of high-level languages and compilers • FORTRAN, COBOL, BASIC were early languages • C, C++, Java are more recent
8FC20010 8FC30014 00000000 0062102A 10400005 00000000 8FC20010 ... At the different levels, a program may take on different structures: int greater(int a, int b) { int c; if (a > b) c = a; else c = b; return c; } greater: ... lw $2,16($fp) lw $3,20($fp) slt $2,$3,$2 beq $2,$0,$L2 lw $2,16($fp) ... compile asm C code Assembler code Machine code
Below your Program • Other improvements that have helped programmers develop software include: • Use of subroutine libraries which include widely used routines • Use of operating systems to better manage a computer’s resources • Newer languages are less rigid in structure, allowing programs to be created which are readable.
Technology => dramatic change • Processor • logic capacity: about 30% per year • clock rate: about 50% per year • Memory • DRAM capacity: about 60% per year (4x every 3 years) • Memory speed: about 10% per year • Cost per bit: improves about 25% per year • Disk (Hard drive) • capacity: about 60% per year