48
Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 ok: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice Hall, Second Edition, 2001

Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

Embed Size (px)

Citation preview

Page 1: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

Chapter 5:

Hardware and Software: Putting It Together

Berlin Chen 2003

Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice Hall, Second Edition, 2001 

Page 2: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

2

How do programs, written by programmers, work with the

computer’s hardware componentsto manipulate the informationin the computer’s memory,

producing a desired outcome?

Page 3: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

3

Outline

• How do computer programs enable computer hardware to perform tasks?

• How does the stored-program computer store both programs and the information the programs need?

• How does the instruction set define the computer’s uses and capabilities?

• How does the CPU function?• How does the CPU fetch and execute

programs?

Page 4: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

4

von Neumann-type computer• Today, the majority of digital computer is

often called the von Neumann-type computer– Stored-program computer: programs and

data are stored in the same location called the primary (main) memory

– von Neumann bottleneck: the computer can only perform one instruction at a time

Page 5: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

5

Reviewing Key Concepts

• Review of a few important concepts from earlier chapters– Computers are not able to do anything with

the data they have stored until they are given instructions for processing it

– All data that computers contain and manipulate must be in binary form

– Computer instructions must be performed sequentially, in the order presented

– Every instruction in a program must have one meaning

Page 6: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

6

Reviewing Key Concepts

– Computer instructions are divided into two parts: operation code (opcode) and operand

– In every language, there are commands that make no use of the operand part of an instruction. (Stop etc.)

Opcode Operand

Page 7: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

7

Reviewing Key Concepts

– Programs, written in any language, are translated into binary form by assigning a numeric form to each instruction, then converting each numeric value to its binary equivalent

– Once a program is expressed in binary form, the computer can use it directly (machine language program)

Page 8: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

8

Two Conceptual Computers

• In this chapter, we will examine two conceptual computers– A robot– A simplified mathematical computer

Page 9: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

9

Two Conceptual Computers

• Why choose imaginary computers to examine how a computer works?– Today’s real computers are incredibly

complex machines• Huge memories, Large instruction sets, Nearly

limitless options and flexibility

– Using conceptual computers allows us to strip away the complexity, revealing the underlying simplicity of operation

Page 10: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

10

Two Conceptual Computers

• How is each conceptual computer similar?– Each is a stored-program computer

(von Neumann computer)• Each contains a minimal configuration of:

Central processing unit Memory

Input units Output units

– Each stores a program and the data it needs in its own memory

– Each executes instructions sequentially– Each is designed with very limited capabilities (small

memory and instruction set)

Page 11: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

11

The ROBOT Computer: Programs and Algorithms

• Our first example of the computer: The ROBOT computer

Page 12: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

12

The ROBOT Computer: Programs and Algorithms

• The ROBOT’s domain– The room is empty– The room is rectangular– There may be one or more open doorways in the

walls– The floor is paved with square tiles with lines

between them. The lines are easy to see– The size of the room is unknown to us at any

given time– The size of the room does not change during the

execution of a program– Doorways will never be located in corners

Page 13: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

13

The ROBOT Computer: Programs and Algorithms

• Hardware: Defining ROBOT Capabilities– ROBOT’s capabilities are defined by its

hardware

– Limitations:• The ROBOT has no eyes: Can’t see its

surroundings• The ROBOT has no numerical capacity: Can’t

count the number of squares before it reaches a wall

Page 14: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

14

The ROBOT Computer: Programs and Algorithms

• External Hardware Features– Locomotion (移動 ):

• Forward motion from one square to an adjacent square within its domain (STEP)

• Pivot(旋轉 ): Only to the right, 90 degrees (TURN)

Page 15: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

15

The ROBOT Computer: Programs and Algorithms

• External Hardware Features– Arms (two - one at each side)

• Can be raised (RAISE) and lowered (LOWER)• Extension

– Arms reach to the far side of the next square

• Sensors

– At tips of arms: Can sense if a wall is in front of it if arms are raised and a SENSE command is given

– ROBOT also senses a wall if instructed to RAISE its arms and a wall is directly in front of the ROBOT

Two ways to sense a wall

Page 16: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

16

The ROBOT Computer: Programs and Algorithms

• Internal Hardware Features – ROBOT’s Memory

• Located on the ROBOT’s torso (軀幹 )• 32 memory location numbered 0 to 31• Each memory location is a set of 8

toggle switches.

On = 1 Off = 0• Each location is capable of storing one

ROBOT instruction• Loading a program: setting the

switches

Page 17: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

17

The ROBOT Computer: Programs and Algorithms

• Internal Hardware Features– Fetch: Electronic circuits cause it to fetch (or

retrieve) instructions from memory one at a time, and usually in the order in which they are stored

– Decode: An Instruction Decoder is a set of circuits which causes the appropriate actions to be taken based on the particular binary number instruction that is received as input

• ROBOT instructions are split into two parts

Page 18: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

18

The ROBOT Computer: Programs and Algorithms

Opcode(Command)

Operand(Address)

Page 19: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

19

The ROBOT Computer: Programs and Algorithms

• Software: The ROBOT’s Language– The ROBOT has no intelligence. It cannot

think on its own. Any instruction must come in the form of a program

• To “Program the ROBOT”: Devise a sequence of instructions designed to accomplish some particular task

Page 20: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

20

The ROBOT Computer: Programs and Algorithms

• Software: The ROBOT’s Language– The ROBOT’s language consists of eight

different commands. These make up the ROBOT’s Instruction Set

STEP RAISE SENSE LIGHT

TURN LOWER GOTO STOP

• These commands are used to form instructions• The ROBOT can store 32 instructions in its

memory

Page 21: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

21

The ROBOT Computer: Programs and Algorithms

The ROBOT’s Instruction Set

Opcode The action taken by the ROBOT, in English:000 STEP The ROBOT takes one STEP forward if possible.001 TURN The ROBOT pivots 90 degrees to the right.010 RAISE The ROBOT raises its arms if possible. If can’t RAISE: There MUST be

a wall directly in front of the ROBOT. The ROBOT’s warning light comes on. No other commands will be recognized until the light is turned off.

011 LOWER The ROBOT lowers its arms if they are raised. 100 SENSE The ROBOT, with its arms in raised position, can detect if it is one step

away from the wall it is facing. IF IT IS, the warning light will turn on. No other commands will be recognized until the light is turned off.

101 GOTO The ROBOT takes the next command out of normal order. The Operand the last 5 bits of the instruction, tells which memory location is to be performed next.

110 LIGHT IF the light is turned on, this command turns it off. The ROBOT will again recognize instructions in the program.

111 STOP The ROBOT shuts off its own power.

Page 22: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

22

The ROBOT Computer: Programs and Algorithms

• Problem: Cause the ROBOT to walk to the wall it is initially facing and then stop with its arms lowered and facing against the wall. Assume the ROBOT is not initially facing an open doorway

– Remember: We have NO IDEA how big the room is!

• We CAN’T just tell it to STEP X-number of times!

Page 23: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

23

The ROBOT Computer: Programs and Algorithms

• First, find the Algorithm– An algorithm is a step-by-step process used to

solve a problem – The solution to the problem must be general

• Raise arms• See if a wall is in front of the ROBOT• Take a step• Repeat until a wall is found

Page 24: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

24

The ROBOT Computer: Programs and Algorithms

• Why isn’t this a “good enough” solution to the problem of finding the wall in front of the ROBOT?

0 RAISE

1 SENSE

2 STEP

3 GOTO 1

4 LIGHT

5 STOP

Assume the ROBOT is not initially facing an open doorway.

Page 25: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

25

The ROBOT Computer: Programs and Algorithms

• Why is this a better solution to the problem of finding the wall in front of the ROBOT?

0 RAISE

1 LOWER

2 STEP

3 GOTO 0

4 LIGHT

5 STOP

Assume the ROBOT is not initially facing an open doorway.

Page 26: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

26

The ROBOT Computer: Programs and Algorithms

• Programming the ROBOT - Taking the “English” steps and writing them in the language the ROBOT understands (Machine Language)

– Machine Language - Written in binary code, the program is in the form the computer understands

“English” Version Machine Language Version0 RAISE 010000001 LOWER 011000002 STEP 000000003 GOTO 0 101000004 LIGHT 110000005 STOP 11100000

Page 27: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

27

The ROBOT Computer: Programs and Algorithms

• Loop - A sequence of instructions which is repeated one or more times when a program is executed

• Infinite loop - A set of instructions which causes the program to repeat the same commands over and over with no possible way of stopping

Page 28: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

28

The ROBOT Computer: Programs and Algorithms

• Problem: Cause the ROBOT to walk around the perimeter(周邊 ) of the room

0 RAISE1 LOWER2 STEP3 GOTO 04 LIGHT5 TURN6 GOTO 07 STOP

Does the program ever stop? What kind of loop does this program contain?

Assume the ROBOT is not initially facing an open doorwayand there are no doorways in the corners.

Page 29: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

29

The ROBOT Computer: Programs and Algorithms

• Problem: Program to get the ROBOT to a corner of the room no matter where it is initially positioned

Assume the ROBOT is not initially facing an open Doorway and there are no doorways in the corners.

Page 30: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

30

Parts of a typical General-purpose Computer

CPU (Central Processing Unit)

InputUnits

OutputUnits

Memory Devices

1. Arithmetic Unit (Computations performed) Accumulator (Results of computations accumulated here)2. Control Unit Instruction Register (IR) (Instruction placed here for analysis) Program Counter (PC) (Which instruction will be performed next?)3. Instruction Decoding Unit (Decodes the instruction)

Page 31: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

31

Parts of a typical General-purpose Computer

• During program execution– Control unit

• Fetch the instruction from memory (at current )to instruction register

• Add one to the program counter

– Instruction decoding unit • Decode/analyze the instruction in the instruction

register and the causes the appropriate instruction be executed

– Arithmetic logic unit• All arithmetic calculations are done here• The results are stored in the accumulator

Page 32: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

32

The Pencil and Paper Computer

• Parts of the Pencil & Paper Computer– A conceptual computer

CPU (Central Processing Unit)Input

Unit

Pencil

OutputUnit

Paper

Memory Devices

1. Arithmetic Unit (Computations performed) Accumulator: 12 bits long (largest number is 4095)

2. Control Unit (Analyzes and performs instructions)Instruction Register (IR)Program Counter (PC) - Next instruction

found where?

3. Instruction Decoding Unit (Decodes the instruction)

Page 33: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

33

The Pencil and Paper Computer

• The Pencil & Paper Instruction Format– Operation Code (Opcode) - Dictates action

by Pencil & Paper Computer– Operand (Argument) - The address of a

position in memory

Pencil & Paper Instruction

Operation Code(3 BITS)

Operand(5 BITS)

Page 34: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

34

The Pencil and Paper Computer

• The Pencil & Paper Instruction Set– A unique set of commands to be used only

when programming the Pencil & Paper Computer

Opcode English Action taken by command001 ADD Add the contents of the referenced memory location to

the value in the accumulator.010 SUB Subtract the contents of the referenced memory

location from the value found in the accumulator.011 LOAD Load a copy of the value of the referenced memory

location into the accumulator.100 STORE Store a copy of the contents of the

accumulator into the referenced memory location.101 READ Read a value from the keyboard and store it at the

referenced memory location.110 PRINT Print the value found at the referenced memory

location.111 PJUMP Jump to the referenced memory location if

the value of the accumulator is a positive nonzero number.000 STOP This causes the computer to stop execution of the

program.

Page 35: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

35

The Pencil and Paper Computer

• Process for writing Pencil & Paper Computer programs1. Read the problem

2. Determine the algorithm• Break the problem down into steps• What will be needed as input?• What will be needed to be computed?• What is the desired output?

3. Write an outline of the steps

4. Write the program

5. Trace through the program

Page 36: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

36

The Pencil and Paper Computer

• Problem: Write a program that sums 2 numbers read in from the “user”2. Determine the algorithm

Input: Read in 2 numbers

Computations: Add the two numbers together

Output: Print out the sum of the 2 numbers

3. Outline:Read in 2 numbers

Add the 2 numbers

Print the Sum

4. Write the program

Page 37: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

37

The Pencil and Paper Computer

• Problem: Write a program that sums 2 numbers read in from the “user”

Program:READ XREAD YLOAD XADD YSTORE ZPRINT ZSTOP

Memory:

Accumulator:

Output:

X Y Z

Trace the program.

11101 11110 11111AddressValue 12 17

12 + 17 = 29

291

2

3

4

5

6

7

29

1 2

3 4 5

6

Page 38: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

38

The Pencil and Paper Computer

• Problem: Write a program that sums 2 numbers read in from the “user”

X (=12)Y (=17)

Z (=29)

Page 39: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

39

The Pencil and Paper Computer

• Problem: Write a program that prints the counting numbers from 5 down to 1

ONE: 1COUNT: 5START: PRINT COUNT

LOAD COUNTSUB ONESTORE COUNTPJUMP STARTSTOP

Memory:

Accumulator:

Output:

Count One10000 10001

54 . .

1

Address

Value

Jump to the referenced memory location if thevalue of the accumulator is a positive nonzero number

5 4 3 2 1 0

Page 40: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

40

The Pencil and Paper Computer

The instruction fetch and

execute cycle

Start Program at the desired location

Fetch an instruction from program memory at current program counter location

Increment program counter to next locationin the program memory

Decode and execute the instruction whichwas just fetched.

StopIs the

Instruction the STOP Instruction?

YES NO

Page 41: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

41

Summary

• von Neumann-type computer– programs and data are stored in the primary (main)

memory– the computer can only perform one instruction at a

time

• Understand how software (programs) work together with computer hardware – the loading and executing of computer programs

Page 42: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

42

Using an Electronic Spreadsheet - Microsoft Excel

• Electronic spreadsheet– A computerized ledger (帳簿 ) page

(larger and more flexible)– Arranged in columns and rows

– Functions:• Performs calculations using any values

entered on the spreadsheet.• Performs instant recalculation if any values

are changed throughout the spreadsheet.• Shows numeric relationships in visual form

(Chart and Graph features).• Data Management Features

Page 43: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

43

Using an Electronic Spreadsheet - Microsoft Excel

• Visicalc - by Bob Frankston and Dan Brickland (1979)– First electronic spreadsheet– Did pretty much everything but graph

relationships

Page 44: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

44

Using an Electronic Spreadsheet - Microsoft Excel

• Why are electronic spreadsheets needed?– Number crunching -

• The manipulation of numeric data into useful calculated results.

• Includes mathematical operations (addition, subtraction, multiplication, and division).

• Also includes statistical and scientific calculations of complex formulae.

– What-if-forecasting - • Examines the effects of current policies and events

on the future.

Page 45: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

45

Using an Electronic Spreadsheet - Microsoft Excel

• What minimal functions must an electronic spreadsheet have?– Allow the user to:

• Enter numeric values, labels (such as column headings), and formulas into specific locations on the page.

• Perform mathematical calculations on demand.• Make changes (instant recalculation).• Print out all or part of the spreadsheet.

Page 46: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

46

Using an Electronic Spreadsheet - Microsoft Excel

• What types of support programs are available to enhance the use of electronic spreadsheets?– Presentation programs -

• Allows spreadsheet to be converted into a variety of different graphic forms.

• Can present the results of the spreadsheet in color with enhanced visual design.

Page 47: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

47

Using an Electronic Spreadsheet - Microsoft Excel

• Is special support hardware available for electronic spreadsheets?– Math co-processor (accelerator board)-

• A second microchip that speeds up intricate calculations, data searches, and printing operations.

Page 48: Chapter 5: Hardware and Software: Putting It Together Berlin Chen 2003 Textbook: Kurt F. Lauckner and Mildred D. Lintner, "The Computer Continuum," Prentice

48

RISC vs. CISC