cpu design. cs252/culler lec 1.2 1/22/02 levels of representation (61c review) high level language...

40
CPU Design

Upload: jaylon-waln

Post on 15-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

CPU Design

Page 2: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

CS252/CullerLec 1.2

1/22/02

Levels of Representation (61C Review)

High Level Language Program

Assembly Language Program

Machine Language Program

Control Signal Specification

Compiler

Assembler

Machine Interpretation

temp = v[k];

v[k] = v[k+1];

v[k+1] = temp;

lw $15,0($2)

lw $16,4($2)

sw $16,0($2)

sw $15,4($2)

0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111

°°

ALUOP[0:3] <= InstReg[9:11] & MASK

Page 3: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

CS252/CullerLec 1.3

1/22/02

Execution Cycle

Instruction

Fetch

Instruction

Decode

Operand

Fetch

Execute

Result

Store

Next

Instruction

Obtain instruction from program storage

Determine required actions and instruction size

Locate and obtain operand data

Compute result value or status

Deposit results in storage for later use

Determine successor instruction

Page 4: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

4

Edge triggered D Flip-Flop

Clk

D

Q

Q

QSET

CLR

D

Clk

Output changes only on the rising edge of the clock

Page 5: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

CS252/CullerLec 1.5

1/22/02

What’s a Clock Cycle?

• Old days: 10 levels of gates• Today: determined by numerous time-

of-flight issues + gate delays– clock propagation, wire lengths, drivers

Latchor

register

combinationallogic

Page 6: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

In-Out control

Q

QSET

CLR

DDout

Din

Page 7: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

• Instruction 00

Page 8: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

??

???

00

IR

???

ALU

Ctrl

+1

PC

Out In

Beginning, Program & Data in MemoryReset counter, the Machine in a random state ….

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 00011 000

Page 9: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

00

901

00

???

???

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 00011 000

Instruction Fetch (1) ...

PC MAR, Read

IR

Page 10: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

00

901

01

901

???

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 00011 000

Instruction Fetch (2) ...

MDR IR, PC1

IR

A B

Page 11: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

00

901

01

901

102

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 00011 000

Instruction Execute ...

In Accu

IR

A B

102

Page 12: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

12

Next instruction: 01

Page 13: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

13

01

310

01

901

102

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 00011 000

Instruction Fetch (1) ...

PC MAR, Read

IR

Page 14: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

14

01

310

02

310

102

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 00011 000

Instruction Fetch (2) ...

MDR IR, PC1

IR

A B

Page 15: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

15

10

102

02

310

102

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 000

Instruction Execute ...

IR[adr] MAR, Accu MDR,Write

IR

A B

ACCU

Page 16: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

16

Next instruction: 02

Page 17: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

17

02

901

02

310

102

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 000

Instruction Fetch (1) ...

PC MAR, Read

IR

Page 18: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

18

02

901

03

901

102

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 000

Instruction Fetch (2) ...

MDR IR, PC1

IR

A B

Page 19: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

19

02

901

03

901

304

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 00011 000

Instruction Execute ...

In Accu

IR

A B

304

Page 20: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

20

Next instruction: 03

Page 21: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

21

03

311

03

901

304

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 000

Instruction Fetch (1) ...

PC MAR, Read

IR

Page 22: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

22

03

311

04

311

304

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 000

Instruction Fetch (2) ...

MDR IR, PC1

IR

A B

Page 23: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

23

11

304

04

311

304

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

IR

A B

ACCU

Instruction Execute ...

IR[adr] MAR, Accu MDR,Write

Page 24: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

24

Next instruction: 04

Page 25: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

25

04

210

04

311

304

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Fetch (1) ...

PC MAR, Read

IR

Page 26: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

26

04

210

05

210

304

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Fetch (2) ...

MDR IR, PC1

IR

A B

Page 27: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

27

10

102

05

210

304

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Execute (1) ...IR[adress] MAR , Read

IR

A B

ACCU

Page 28: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

28

10

102

05

210

202

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Execute (2) ...ACCU - MDR ACCU

IR

A B

ACCU

304

Page 29: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

29

Next instruction: 05

Page 30: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

30

05

808

05

210

202

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Fetch (1) ...

PC MAR, Read

IR

Page 31: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

31

05

808

06

808

202

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Fetch (2) ...

MDR IR, PC1

IR

A B

Page 32: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

32

05

808

08

808

102

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Execute ...(acc ≥ 0 IR[adress] PC)

IR

A B

ACCU

Page 33: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

33

Next instruction: 08

Page 34: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

34

08

902

08

808

202

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Fetch (1) ...PC MAR, Read

IR

Page 35: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

35

08

902

09

902

202

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Fetch (2) ...MDR IR, PC1

IR

A B

Page 36: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

36

08

902

09

902

202

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Execute ...ACCU OUT

IR

A B

ACCU

202

Page 37: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

37

Next instruction: 09

Page 38: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

38

09

000

09

902

202

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Fetch (1) ...PC MAR, Read

IR

Page 39: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

39

09

000

10

000

202

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Fetch (2) ...MDR IR, PC1

IR

A B

Page 40: CPU Design. CS252/Culler Lec 1.2 1/22/02 Levels of Representation (61C Review) High Level Language Program Assembly Language Program Machine Language

40

09

000

10

000

202

ALU

Ctrl

+1

PC

Out In

MAR

MDR

00 90101 31002 90103 31104 21005 80806 51007 21108 90209 00010 10211 304

Instruction Execute ...HLT

IR

A B

ACCU