CS1104: Computer Organisation http://www.comp.nus.edu.sg/~cs1104 Lecture 1: Introduction Lecture 1: Introduction Overview History of Computers Application Areas Types of Computers Computer Configurations Computers as Information Processors CS1104-1 Lecture 1: Introduction 2 Lecture 1: Introduction Basic Machine Hardware Architecture CPU Memory/Storage Main Memory Input/Output Devices Basic Machine Software Flowcharts Languages Operating Systems System Utilities Applications What’s in CS1104 CS1104-1 Lecture 1: Introduction 3 Overview of Part 1 (1/2) Number system: how is information represented in a computer. Boolean Algebra: the basis for logic design and manipulation of information. Logic gates: what are the gates used, and how circuits can be made from gates. Function simplification: to reduce the size of design, increase speed, etc. CS1104-1 Lecture 1: Introduction 4 Overview of Part 1 (2/2) Combinational circuits: simple circuit design without memory. Sequential circuits: circuit design with memory. Disk: storage techniques. Bus: internal communication. I/O: devices, technology, etc. CS1104-1 Lecture 1: Introduction 5 History of Computers (1/4) Abacus invented in Babylonia in 3000BC Adding machine by Blaise Pascal (1642) Difference engine and the analytical engine by Charles Babbage (1842) IBM first electromechanical computer (using relays) designed by Howard Aiken (1937) was based on punched cards. used to calculate tables of mathematical functions CS1104-1 Lecture 1: Introduction 6 History of Computers (2/4) 1st Generation Computers (1940s to early 1950s) – based on vacuum tubes technology. 1943 – ENIAC: first fully electronic computer, designed by John Mauchly 1944 – Mark I: Howard Aiken 1946 – EDVAC: first stored program computers, designed by John von Neumann 2nd Generation Computers (late 50s to early 60s) – based on transistors technology. more reliable, less expensive, low heat dissipation IBM 7000 series, DEC PDP-1 CS1104-1 Lecture 1: Introduction 7 History of Computers (3/4) 3rd Generation Computers (late 60s to early 80s) – integrated circuits (IC). IBM 360 series, DEC PDP-8 IC – many transistors packed into single container low prices, high packing density 4th Generation Computers (present day) LSI/VLSI small size, low-cost, large memory, ultra-fast PCs to supercomputers 5th Generation Computers (future) massively parallel, large knowledge bases, intelligent Japan, Europe and US advanced research programs CS1104-1 Lecture 1: Introduction 8 History of Computers (4/4) Websites ACM Timeline of Computing History (http://www.computer.org/computer/timeline) The Virtual Museum of Computing (http://www.comlab.ox.ac.uk/archive/other/mus eums/computing.html) IEEE Annals of the History of Computing (http://www.computer.org/annals/) and others (surf the web) CS1104-1 Lecture 1: Introduction 9 Application Areas (1/2) Scientific: weather forecasting, simulation, spaceprogram. one of the earliest application areas. heavy computation but small amount of data. Commercial: accounting, banking, inventory, sales. changes nature of business – information is money. high data throughput, simple calculations. Manufacturing: numerical control, CAD/CAM, integration. graphics, interfacing, device-drivers, networks. CS1104-1 Lecture 1: Introduction 10 Application Areas (2/2) Real-time & Control System: air-traffic control, aircraft,nuclear power station. real time, very fast, safety-critical. Educational & Recreational CAI software, multi-media, games, Internet, World Wide Web. Telecommunication Network, StarHub CableTV, Singapore One. CS1104-1 Lecture 1: Introduction 11 Types of Computers (1/2) Supercomputers: very fast (Gflops) but expensive machine($10m), vector or parallel processors, used in scientific applications and simulations. Mainframes: fast (>10mips) but expensive ($1m), high-throughput, used in large commercial organisations, support many concurrent users interactively. Mini-computers: fast but affordable ($200k), used in medium-sized organisations (e.g. SoC), support multiple users. CS1104-1 Lecture 1: Introduction 12 Types of Computers (2/2) Workstations: affordable ($20k) and fast single-user systems (20 riscs mips), good graphics capabilities, engineering, network-based computing. Micro/Personal/Home Computers: cheap and affordable ($3k), transportable, home use, good for games and as educational tool, word processing, suitable for small enterprise. CS1104-1 Lecture 1: Introduction 13 Computer Configurations (1/3) Stand-alone computer system Modem connection CS1104-1 Lecture 1: Introduction 14 Computer Configurations (2/3) Terminals-host connections CS1104-1 Lecture 1: Introduction 15 Computer Configurations (3/3) Network of computers CS1104-1 Lecture 1: Introduction 16 Computers as Information Processors (1/3) Driver Example: An automobile augments our power of locomotion. A computer is a device capable of solving problems according to designed program. It simply augments our power of storage and speed of calculation. CS1104-1 Lecture 1: Introduction Programmer 17 Computers as Information Processors (2/3) Unlike previous inventions, computers are special because they are general-purpose. Could be used to perform a variety of tasks. Computer = Hardware + Software. Hardware: physical components for computation/processing; should be simple, fast, reliable. Software: set of instructions to perform tasks to specifications; should be flexible, user-friendly, sophisticated. CS1104-1 Lecture 1: Introduction 18 Computers as Information Processors (3/3) Computer are Information Processors Raw data Computer system Processed information Data Units: 1 bit (binary digit): one of two values (0 or 1) 1 byte: 8-bits 1 word: 1, 2, or 4 bytes, or more (depends on ALU) CS1104-1 Lecture 1: Introduction 19 Basic Machine Hardware Architecture (1/3) Main Components: CPU (Central Processing Unit: controls devices and processes data). Memory: stores programs and intermediate data. Input Devices: accept data from outside world. Output Devices: presents data to the outside world. An analogy with Human Information Processors: CPU – brain’s reasoning powers Memory – brain’s memory Input Devices – eyes, ears, sensory sub-system Output Devices – mouth, hands, facial and body expressions CS1104-1 Lecture 1: Introduction 20 Basic Machine Hardware Architecture (2/3) Headphone (Output) Monitor (Output) Hardware box (contains processor, memory, buses etc.) Mouse and Keyboard (Input) CS1104-1 Lecture 1: Introduction 21 Basic Machine Hardware Architecture (3/3) Network card and CRT card Motherboard (Printed Circuit Board) Floppy disk drive and Hard disk drive Cage for mounting drives Slots for RAM chips Processor © above picture: Patterson and Hennessy CS1104-1 Lecture 1: Introduction 22 Hardware – CPU (1/3) CPU = control unit + ALU + registers Control Unit : monitors and directs sequences of instructions Execution Cycle (repeated): fetch (next instruction) decode execute CS1104-1 Lecture 1: Introduction 23 Hardware – CPU (2/3) ALU: performs simple arithmetic and logical operations. Examples: Add, subtract, and, or, invert, increment etc. A B R = A op B select ALU n-bits operations R CS1104-1 Lecture 1: Introduction 24 Hardware – CPU (3/3) Registers: temporary results + status information ACC (accumulator) – current data PC (program counter) – points to next instruction IR (instruction register) – current instruction MA (memory address) – address to read/write MB (memory buffer) – data to read/write CS1104-1 Lecture 1: Introduction 25 Hardware – Memory/Storage (1/2) Purpose: to store program and data. Desirable Traits: fast access, large capacity, economical, non-volatile. However, most memory devices do not have all these traits. CS1104-1 Lecture 1: Introduction 26 Hardware – Memory/Storage (2/2) Solution: hierarchical combination Fast, expensive (small numbers), volatile registers main memory disk storage magnetic tapes CS1104-1 Lecture 1: Introduction Slow, cheap (large numbers), non-volatile 27 Hardware – Main Memory (1/2) Fast BUT volatile (need power to maintain data) Logical structure – table of memory cells/units. addresses M A R M B R CS1104-1 address 8 bits or more 0 1 2 3 memory cells data 2m-3 2m-2 2m-1 Lecture 1: Introduction 28 Hardware – Main Memory (2/2) Memory cells may be grouped into pages (say 512 consecutive words per page). Units 1 KBytes = 1024 (or 210) bytes 1 MBytes = 1024 Kbytes (or 220 bytes) 1 GBytes = 1024 Mbytes (or 230 bytes) CS1104-1 Lecture 1: Introduction 29 Hardware – Input/Output Devices Input devices: read/accept data (into computer) obsolete: card reader, paper tape reader present: keyboard, mouse, light-pen, optical char reader future: voice and vision recognition. Output devices: write/display data (to users) obsolete: card & paper punch, teletype present: VDU (visual display unit), printers, plotters, graphics display, sound future: voice synthesis. CS1104-1 Lecture 1: Introduction 30 Basic Machine Software (1/2) Software is the key to making computers general purpose. Software are often built hierarchically, with layers of software providing successive higher-level of abstractions. This structure is reflected by the following onion layer view of software. CS1104-1 Lecture 1: Introduction 31 Basic Machine Software (2/2) Hardware Operating system System utilities Applications/User programs CS1104-1 Lecture 1: Introduction 32 Software – Flowcharts (1/2) The sequence of instructions of a software/program can be graphically specified using flowcharts. The flowchart technique maybe a little outdated but could still be used in a clear manner for simple problems. As an example, the procedure to find the roots of a quadratic equation, ax2 + bx + c = 0, can be written using the following equation: roots (b b 4ac) / 2a 2 CS1104-1 Lecture 1: Introduction 33 Software – Flowcharts (2/2) This procedure can be coded in the following flowchart: Read a,b,c roots (b b 2 4ac) / 2a a=0? yes Write not quadratic no d:=b2 - 4ac = CS1104-1 d>0 d=0 d<0 > < Write Write Write real root real roots complex roots Lecture 1: Introduction 34 Software – Languages (1/4) All programs will have to be coded in some programming language – usually text-based. The native language of machine is called machine language. This consists of a set of primitive instructions, coded in numbers. An example is “0310 0412 0512”. But can you understand what it does? CS1104-1 Lecture 1: Introduction 35 Software – Languages (2/4) Possible to use more human-readable mnemonic instructions. These are know as assembly language instructions. Mnemonic Description ADD 10 AC:=AC+C(10) SUB 12 AC:=AC-C(12) STO 12 C(12)=AC Normally, assembly language has a 1-to-1 correspondence with machine language. CS1104-1 Lecture 1: Introduction 36 Software – Languages (3/4) Assembly language is still very primitive. Higher-level Languages, like Pascal, C, Fortran, which are a little closer to English language have been developed. CS1104-1 Lecture 1: Introduction 37 Software – Languages (4/4) An example Pascal program to find roots of quadratic equation: read(a,b,c); if a=0 then writeln ("not a quadratic equation") else begin d := sqr(b)-4*a*c; if d>0 then writeln ("complex roots") else if d=0 then writeln("single root =",-b/(2*a)) else writeln ("root1=",-b+sqrt(d)/(2*a), "root2=", -b-sqrt(d)/(2*a)); end; CS1104-1 Lecture 1: Introduction 38 Software – Operating Systems (1/2) Operating System (OS) is situated directly above hardware. It controls and manages the available hardware resources. Often, OS has special access privileges to certain categories of instructions and certain hardware User programs have to go through OS for these privileges. CS1104-1 Lecture 1: Introduction 39 Software – Operating Systems (2/2) Associated Functions/Tasks: boots up machine loads user program allocates main memory/storage space schedules concurrent user programs drivers to service various devices (terminals, printers, etc.) CS1104-1 Lecture 1: Introduction 40 Software – System Utilities (1/2) Above the OS, there is a set of frequently executed programs,called System Utilities. These utilities are often packaged with OS. Used by programmers/analyst to help develop applications. Some examples Editor: compose/edit user programs or data files Assembler: translates assembly to machine code Compiler: translates high-level language to assembler/machine code Spooler: temporary stores print files for queuing CS1104-1 Lecture 1: Introduction 41 Software – System Utilities (2/2) Some examples (continued) Mailer: forwards/receives mails between users DBMS (Data-Base Management System): centralised management of data at a more abstract level than files Window Management System: multiple windows can appear on single screen. These together with various graphical entities (e.g. menus,panels, buttons) can be managed by WMS. CS1104-1 Lecture 1: Introduction 42 Software – Applications Word-Processors: compose/edit reports/articles Accounting Package: keeps track of accounting transactions, produces daily/weekly/monthly (profit/loss) reports Inventory System: keeps track of stock levels Personnel/Payroll System: staff records, monthly salary CS1104-1 Lecture 1: Introduction 43 What’s in CS1104 Software Application (Netscape) Compiler Assembler Operating System (Windows XP) Processor Memory I/O system Datapath & Control Hardware CS1104-1 Instruction Set Architecture Computer Architecture Digital Design transistors Lecture 1: Introduction Digital Logic Design 44 End of file CS1104-1 Lecture 1: Introduction 45