QUIZ Pipelining - Faculty Website Listing · Operation code, a.k.a. opcode Specifies which...

Post on 12-Mar-2019

218 views 0 download

transcript

QUIZ Pipelining

A computer pipeline has 4 processors, as shown above. Each processor takes 15 ms to execute, and each instruction must go sequentially through all 4 processors.

A program has 10 instructions. Calculate how long it takes to run it:

• without pipelining

• with pipelining

1

Extra-credit QUIZ Pipelining -due next time-

2

Low-level software

Components

Circuits

Gates

Transistors

Abstractions and more abstractions …

4 You are here

6.1 Computer Operations

Computer = programmable electronic device that can store, retrieve, and process data

Von Neumann architecture:

• Data and instructions to manipulate the data are represented in the same way (binary) and are stored in the same place (memory)

• For processing, both data and

instructions have to be brought

into the CPU (fetch-execute cycle)

5

6.2 Machine Language

Machine language = The language made up of binary coded instructions built into the hardware of a particular computer and used directly by the computer

Why would anyone use machine language?

(Hint: they had no choice. Why?)

6 Image source: http://www.alpcentauri.info/chapter_18.html

Remember: The Fetch-Execute Cycle

7

According to the CPU’s

machine language

Characteristics of machine language:

– Every processor type has its own set of specific machine instructions

– The relationship between the processor and the instructions it can carry out is completely integrated

– Each machine-language instruction does only one very low-level task

8

Pep/8 Virtual Computer

Virtual computer

A hypothetical machine designed to contain the important features of a real machine

Pep/8

A virtual computer designed by Stanley Warford that has 39 machine-language instructions

(We’re going to cover only a few of them!)

9

Pep/8 Virtual Computer

Virtual computer

A hypothetical machine designed to contain the important features of a real machine

Pep/8

A virtual computer designed by Stanley Warford that has 39 machine-language instructions

(We’re going to cover only a few of them!)

10

Extra-credit for next time: Figure out what “Pep” and “8” stand for!

Pep/8 Registers

– The program counter (PC) (contains the address of the next instruction to be executed)

– The instruction register (IR) (contains a copy of the instruction being executed)

– The accumulator (register A)

The memory unit is made up of 65,636 Bytes of storage

11

Can you figure out how long the Pep/8 address is?

QUIZ

The previous version of Pep, Pep/7, could use only 12 bits for memory addresses.

How many Bytes of memory could Pep/7 address?

12

13

Explain the

address format!

16 bits

24

bits

14

Explain the

address format!

Can you show what

instructions look like

in memory?

Instruction Format

15

Instruction Format

Operation code, a.k.a. opcode Specifies which instruction is to be carried out Register specifier Specifies which register is to be used (only use A in

this chapter) Addressing-mode specifier Says how to interpret the operand part of the

instruction: • Direct • Immediate

16

Say that again?!?

Instruction Format

Addressing-mode specifier Says how to interpret the operand part of the

instruction: • Direct • Immediate 2 + 3 Immediate A + B Direct

17

??

18

Immediate and direct addressing modes

Immediate and direct addressing modes

19

Example:

ADD 42 to accumulator A

What exactly am I to add?

Instruction Format

20

Addressing modes:

• immediate

• direct

Is there something we are not telling you

about Pep’s addressing modes?

QUIZ Pipelining

A computer pipeline has 5 stages.

Each stage takes 12 ns (nanosec.) to execute, and each instruction must go sequentially through all 5 stages.

A program has 20 instructions. Calculate how long it takes to run it:

• without pipelining

• with pipelining 21

QUIZ

• Name all the 4 parts of the “fetch-execute” cycle.

• What do IR, A, and PC stand for in the computer’s architecture?

• Name and explain the 2 addressing modes we’ve covered.

22

QUIZ: Immediate and direct addressing modes

23

SUB 31 from accumulator A

What exactly am I to

subtract?

PEP/8 machine instructions

24

25

What does this instruction mean, what is

its hex code, and what exactly does it do?

26

What does this instruction mean, what is

its hex code, and what exactly does it do?

27

What do these instructions mean, what are

their hex codes, and what exactly do they do?

Wait a second ...

28

Conclusions It is useless to write operands into IR.

IR should be written only in the FETCH stage of the Fetch-Execute cycle, when the 3 bytes of the instruction are brought from memory.

Operands can be written only to:

• Accumulator

• Memory

Some instructions cannot have the immediate addressing mode

29

30

What do these instructions mean, what are

their hex codes, and what exactly do they do?

Why is there only one on this page?

What does this instruction mean, what is

its hex code, and what exactly does it do?

32

What do these instructions mean, what are

their hex codes, and what exactly do they do?

QUIZ

• Name all the 4 parts of the “fetch-execute” cycle.

• What do IR, A, and PC stand for in the computer’s architecture?

• Name and explain the 2 addressing modes we’ve covered.

33

Trick QUIZ: Immediate and direct addressing modes

34

We have this Pep

instruction:

LOAD 20 (decimal) into

accum. A

What exactly am I to load?

Problem 16 / 189

35

The PEP/8 memory has the following contents:

0001 A2

0002 11

0003 00

0004 FF

What are the contents of reg. A after this instruction

is executed:

C1 00 01

36

0001 A2

0002 11

0003 00

0004 FF

Instruction

executed:

C1 00 01

Problem 17 / 190

37

The PEP/8 memory has the following contents:

0001 A2

0002 11

0003 00

0004 FF

What are the contents of reg. A after this instruction

is executed:

C1 00 02

The first step is …

Problem 17 / 190

38

The PEP/8 memory has the following contents:

0001 A2

0002 11

0003 00

0004 FF

What are the contents of reg. A after this instruction

is executed:

C1 00 02

1100 0001 0000 0000 0000 0010

6.3 Program to write "Hello"

39

Every program ends with this!

Hand Simulation

40

What is the fetch/execute cycle?

How much is the PC incremented?

0 0 0 0

0000 50

0001 00

0002 48

0003 50

What ASCII character is this?

Hand Simulation

41

What is the fetch/execute cycle here? What ASCII character is this?

0 0 0 0

Your turn!

What does this program do?

1111

0000

1111

1 0000

43

Steps for executing a machine-language

program

Loader

Program

in

memory Execute

Machine

code

program

in a file

on disk

SKIP Pep/8 Simulator

44

Problem 33 / 191

45

The PEP/8 computer has the following program in

memory (in hex):

0001 49

0002 00

0003 08

0004 51

0005 00

0006 08

0007 00

Convert the program to binary and

explain in your own words what it does.

Problem 33 / 191

46

The PEP/8 computer has the following program in

memory (in hex):

0001 49

0002 00

0003 08

0004 51

0005 00

0006 08

0007 00 0008 ??

ASCII code of character

entered by user

Character input, direct mode, to

memory address 0x0008

Character output, direct mode, from

memory address 0x0008

STOP

47

0001 49

0002 00

0003 08

0004 51

0005 00

0006 08

0007 00

0008 ?? ASCII code of character

entered by user

Character input, direct mode, to

memory address 0x0008

Character output, direct mode, from

memory address 0x0008

STOP

Code (

instr

uctions)

data

Remember: In a Von Neumann architecture,

code and data are stored in the same memory!

Fact: Writing programs in machine language sucks!

(i.e. it is time-consuming, boring, error-prone, unintuitive, etc.)

48

… that’s why they invented

assembly language

49

6.4 Assembly Language

Assembly language

A language that uses mnemonic codes to represent machine-language instructions

Assembler A program that reads each of the instructions in mnemonic form and translates it into the machine-language equivalent

50

51

Steps for executing an assembly-language program

Loader

Program

in

memory Execute

Pep/8 Assembly Language

52

Opcode is 31

Opcode is 38

Opcode is 39

Opcode is 04

“Hello” program in assembly

CHARO 0x0048, i ;Outputs character 'H'

CHARO 0x0065, i

CHARO 0x006C, i

CHARO 0x006C, i

CHARO 0x006F, i

STOP

.END

53

mnemonic operand addressing

mode comments

What in the

world is this?!

A New Program

54

Problem: Read and sum three

values and print the sum

How would you do it by hand?

Declaring variables in assembly: We simply reserve space in memory for them!

55

These are labels. They are placeholders for memory

addresses - the assembler will replace them with numeric

addresses when generating the machine code!

Assembler directives, a.k.a. pseudo-ops

56

What is the difference between

operations and pseudo operations?

Completed Program

57

sum: .WORD 0x0000

num1: .BLOCK 2

num2: .BLOCK 2

num3: .BLOCK 2

main: LDA sum,d

DECI num1,d

ADDA num1,d

DECI num2,d

ADDA num2,d

DECI num3,d

ADDA num3,d

STA sum,d

DECO sum,d

STOP

.END

Completed Program

58

sum: .WORD 0x0000

num1: .BLOCK 2

num2: .BLOCK 2

Num3: .BLOCK 2

main: LDA sum,d

DECI num1,d

ADDA num1,d

DECI num2,d

ADDA num2,d

DECI num3,d

ADDA num3,d

STA sum,d

DECO sum,d

STOP

.END

Houston, we have a problem! How does the CPU know that the program starts here?

Solution: “Branch” instruction

59

BR main

sum: .WORD 0x0000

num1: .BLOCK 2

num2: .BLOCK 2

num3: .BLOCK 2

main: LDA sum, d

DECI num1, d

ADDA num1, d

DECI num2, d

ADDA num2, d

DECI num3, d

ADDA num3, d

STA sum, d

DECO sum, d

STOP

.END

QUIZ: Show the memory contents!

60

BR main

sum: .WORD 0x0000

num1: .BLOCK 2

num2: .BLOCK 2

num3: .BLOCK 2

main: LDA sum, d

DECI num1, d

ADDA num1, d

DECI num2, d

ADDA num2, d

DECI num3, d

ADDA num3, d

STA sum, d

DECO sum, d

STOP

.END Memory map on next slide

61

62

BR

LDA

DECI

ADDA

sum num1

num2

num3

DECI

63

BR

LDA

DECI

ADDA

sum num1

num2

num3

DECI

Challenge: Write all the machine code (in hex)

64

BR

LDA

DECI

ADDA

sum num1

num2

num3

DECI

Extra-credit

65

Your turn! Change the program so it adds up four numbers

We have covered sections 6.1, 6.2, 6.3, and part

of 6.4.

• Read the text carefully and make sure you can explain in your own words what each instruction accomplishes.

Individual work (to do in notebook for next time):

16, 17, 19, 21-26

66

EoL2