from algorithms to architecture david davenport computer eng. dept., bilkent university ankara -...

32
From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: [email protected] ...a lightning introduction to computer architecture

Upload: blaze-watts

Post on 12-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

From Algorithmsto Architecture

David Davenport

Computer Eng. Dept.,Bilkent UniversityAnkara - Turkey.

email: [email protected]

...a lightning introduction to computer architecture

Page 2: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

IMPORTANT… Students…

This presentation is designed to be used in class as part of a guided discovery sequence. It is not self-explanatory! Please use it only for revision purposes after having taken the class. Simply flicking through the slides will teach you nothing. You must be actively thinking, doing and questioning to learn!

Instructors…You are free to use this presentation in your classes and to make any modifications to it that you wish. All I ask is an email saying where and when it is/was used. I would also appreciate any suggestions you may have for improving it.

thank you, David.

Page 3: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Implementing Algorithms

Now have a methodology for going from problem to program(program syntax coming soon!)

First, develop a mental model of a device that might actually execute our algorithm, i.e. a computer!

Page 4: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Memory – Mental Model Information

anything a number, letter, word, a report, book, picture, music, animation, a collection of books…

written/drawn on a paper cannot be changed!

Store in Box can hold only a single paper can examine/copy paper at will replacing paper destroys old always a paper in box!

Some infoon a piece of paper!

Page 5: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Computer Memory Set of memory locations

To identify easily, number or name them To minimise bugs, restrict type of content

today(date)

salary(pos. real)

username(string)

address(string)

holidaypics(set of images)

age(int 0-150)

Might also specify whether information can be changed or not

i.e. are constant or variable

SPEEDOFLIGHT(integer = 300)

TAXRATE(real = 22.5)

1 2 3 4 56 7

PI(real = 3.142)

Page 6: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Memory requirements

The circle computer algorithm…

1. Print “Welcome to circle computer”2. Ask for & get radius from user3. Compute area as pi.radius.radius4. Compute circumference as 2.pi.radius5. Report area, circumference & radius

Information flowing from one step to another must be stored & so

needs a place in memory

What memory locations are needed?

Page 7: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Algorithm Trace (2) Envisage area/circumference algorithm

in terms of computer memory modelradius(positive integer)

area(positive

real)

circumference(positive

real)

pi(constant

3.142)

2(constant

2.0)

? ? ? ? ? 3.142 2

5

2. Ask for & get radius from user

5

Page 8: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Algorithm Trace (3) Envisage area/circumference algorithm

in terms of computer memory modelradius(positive integer)

area(positive

real)

circumference(positive

real)

pi(constant

3.142)

2(constant

2.0)

? ? ? ? ? 3.142 2

5

3. Compute area as pi.radius.radius

5

53.142

*

78.55

78.55

Page 9: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Algorithm Trace (4) Envisage area/circumference algorithm

in terms of computer memory modelradius(positive integer)

area(positive

real)

circumference(positive

real)

pi(constant

3.142)

2(constant

2.0)

? ? ? ? ? 3.142 2

4. Compute circumference as 2.pi.radius

5

53.142

*

31.42

78.55

2

31.42

Page 10: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Algorithm Trace (5) Envisage area/circumference algorithm

in terms of computer memory modelradius(positive integer)

area(positive

real)

circumference(positive

real)

pi(constant

3.142)

2(constant

2.0)

? ? ? ? ? 3.142 2

5. Report area, circumference &

radius

5 78.55 31.42

The area of a circle of radius

and its circumference is

is 5

31.42

78.55

Page 11: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

COMPUTER ARCHITECTURE

Page 12: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Data flow Only three sorts of instructions

input - from external world to memory output - from memory to world assignment - from memory to memory

memory

outputinput

ALU

Arithmetic & Logic Unit

Page 13: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Control flow (1) Control mechanism implements algorithm

sets up the data paths in appropriate sequence

memory

outputinput

ALU

ControlFirst computing devices had control mechanisms that were hardwired (fixed) or at best “pluggable” e.g ENIAC

Changing the function of the machine required literally

changing its wiring!

Page 14: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

memory

How it works…

input output

ALU

9

8

7

6

5

4

3

2

1

10 11

1 0 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0 0

0 0 1 1 0 0 1 0 0 0 1

0 0 0 0 0 0 0 1 0 0 0

1 2 3 4 5 6 7 8 9 10 11

Switches control data flow into and out of memory.

Sequence of switch settings determines function

Page 15: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

How it works…

Switches control data flow into and out of memory.

Sequence of switch settings determines function

memory

input output

ALU 13

7

12

6

8

5

4

3

2

10 11

1

9

0 0 0 0 0 0 1 1 0 0 0 0 0

1 1 0 0 0 0 0 0 0 0 0 0 0

1 2 3 4 5 6 7 8 9 10 11 12 13

1 0 1 0 0 0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0 0 1 0

0 0 0 1 0 1 0 0 1 0 1 0 1

Page 16: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Control flow (2) Recognising

only three forms of control sequence required(sequence, decision & repetition)

& instructions can be encoded in memory like data allows general control mechanism to be implemented

Control

memory

outputinput

ALU

Instructions & hence the machine’s function can be changed quickly & easily.

Limitation: may be out of program memory, yet

have free data memory or vice versa!

Programmemory

PC

Page 17: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Control flow (3) Finally

realise that program & data can share same memory

Instructions stored in sequentially numbered locations in memory.

Current position in program held in program counter.

Control fetches current instruction, decodes & executes it (by setting data paths), increments PC, then fetches next instruction, and so on.

Memory now holds both program & data

Control

memory

outputinput

ALU

PC

Fetch Execute

cycle

Page 18: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Spaghetti Code? “go to” programming…

1. Read first number2. If first number > 10 then go to 43. go to 14. Read second number5. If second number <= first number goto 86. Print “Well done”7. go to 108. Print “sorry, no good!”9. go to 410. Print “finished.”

Default is next instruction

Page 19: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Von Neumann Architecture Stored-program computer architecture Credited to John von Neumann, circa 1946

Today99.99999%

of all computers still work like this!

Control

memory

outputinput

ALU

PC

CPU – Central Processing Unit (note: ALU may be

considered part of it too.)

Page 20: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

THE MEMORY HEIRARCHYPracticalities…

Page 21: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Practical Considerations Memory crucial to system speed! Memory technology

Non-volatile, cheap, so plentiful, but slow!

Optical & MagneticDisks, tapes & CDROMs

High-speed, volatile, expensive, so limited.

SemiconductorRAM, ROM

Speeddifferential>10,000x

Page 22: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Memory Hierarchy Result of today’s

technological limitations only!

Control

Primary memory

outputinput

ALU

PC

Secondary memory(disks)

Boot ROM

Primary memory also called RAM – Random

Access Memory

Page 23: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

THE LANGUAGE HEIRARCHYPracticalities…

Page 24: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

From problem to execution From requirements to algorithm From algorithm to program

(something “understandable” to machine)

Ultimately need machine code (1’s & 0’s representing switch patterns)

but how do we get it…?• Directly write machine code• Write assembly & translate• Write high-level & translate

Translation is a symbol

manipulation task!

Page 25: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Language Hierarchy (1) Machine code

Patterns of 1’s & 0’s ~ machine instruction Usually restricted, e.g. no real numbers Difficult & error-prone writing by hand!

Note: machine dependent, same operation may require different pattern of 1’s & 0’s on different

machines. Computer designer/manufacturer defines machine code.

1001100011000011010000000100011011111000100001100000001111111100

:

Page 26: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Language Hierarchy (2) Assembly language

Each machine instruction has mnemonic Easier to remember & understand

so slightly less error-prone, but still difficult to do even simple things!

One-to-one mappingso translation to machine code is trivial

Use program to do translation (assembler)

Like machine code, assembly language is machine dependent

and low-level

MOV #5, R1ADD R1, R2STR @R0

:

Page 27: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Language Hierarchy (3) High-level language

Much more “natural”, e.g. has real numbers! Much easier to understand & write Language standards, so machine independent Translation to machine code is complex,

use program to do it!This program takes a “program” as input

(data) and outputs a “program”!

input AZ = A * 3 + 1;print( “Z=“ . Z);

:Two approaches Interpret Compile

Page 28: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Interpreters Translate & immediately execute

each instruction in turn

Source code(stored in file)

10 rem Sum two numbers20 input “enter first number”, $a30 input “enter second number”, $b

50 output “sum is “ . $s

interpreter

11100101001000100…

machine code(generated

& executed,never stored)

40 $s = $a + $b

Page 29: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Compilers Translate all instructions to machine code,

save & execute as needed

Source code(stored in file)

10 rem Sum two numbers20 input “enter first number”, $a30 input “enter second number”, $b40 $s = $a + $b50 output “sum is “ . $s

compiler

machine code(generated once& stored in file)

001100010101000010011100101001000100…

Stored machine code executed by OS as many times

as required!

Page 30: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Java – compile & interpret Compile & save to bytecode (machine independent) Execute by interpreting bytecode

// Program MyProg// David, Oct 2002

import java.io.*;Import cs1.JRobo;

public class MyProg {

public static void mai System.out.println( JRobo robby = new J robby.f(100); robby.rect( 150, 50); }

}

Source code(stored in file)

11000111000100010000011110011100010101010001…

Javacompiler(javac)

bytecode(stored in file)

Javainterpreter

(java)

11100101001000100…

machine code(generated

& executed,never stored)

Also known as the Java Virtual Machine (JVM)

MyProg.class

MyProg.java

Page 31: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Java language levels…

Page 32: From Algorithms to Architecture David Davenport Computer Eng. Dept., Bilkent University Ankara - Turkey. email: david@bilkent.edu.tr...a lightning introduction

Programs across Internet Java Applets – run anywhere safely!

// Program MyApplet// David, Oct 2002

import java.io.*;Import cs1.JRobo;

public class MyApplet extends Applet {

public void paint( JRobo robby = new J robby.f(100); robby.rect( 150, 50) }

}

Source code(stored in file)

11000111000100010000011110011100010101010001…

Javacompiler(javac)

bytecode(stored in file)

JVM in webbrowser

creates machine code for client

MyApplet.class

MyApplet.java

<html><body><applet class=“MyApplet.class”></applet></body>

html webpagecontaining applet

(stored in file)

My WebPage

Look at this applet…

WebBrowser – Netscapehttp://somewhere.com/mypage.html

Welcome toMyApplet

Javainterpreter

(java)

11100101001000100…

INTER

NET

Mypage.html