מבנה מחשבים ספרתיים 234267

49
(C) Yohai Devir 234267 - January 2006 1 םםםם םםםםםם םםםםםםם234267 םםםםם םםםםםםםOOOE, BTB םםםםם םם םםםםם םם םםםם םםםםםםם

Upload: curry

Post on 06-Jan-2016

42 views

Category:

Documents


3 download

DESCRIPTION

מבנה מחשבים ספרתיים 234267. שאלות ממבחנים – OOOE , BTB מבוסס על תרגול של אורן קצנגולד. שאלה 1 – OOOE (35 נק'). נתונה מערכת אשר עובדת בשיטת OOO כפי שלמדנו בכיתה המערכת יכולה לבצע : שתי פעולות fetch כל מחזור שעון שתי פעולות decode כל מחזור שעון - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 20061

מבנה מחשבים ספרתיים234267

ממבחנים OOOE, BTB– שאלותמבוסס על תרגול של אורן קצנגולד

Page 2: מבנה מחשבים ספרתיים 234267

2

נק'OOOE( 35) – 1שאלה

כפי שלמדנו בכיתהOOOנתונה מערכת אשר עובדת בשיטת

המערכת יכולה לבצע:כל מחזור שעון fetchשתי פעולות -כל מחזור שעון decodeשתי פעולות -כל מחזור שעון )כל פעולה לוקחת מחזור אחד ALU integerשתי פעולות -

בלבד( pipeline אינן מחזורי שעון )קרי הפעולות 5כל storeאו loadפעולת -

מחזורי שעון לביצוע(5ולוקחות

גדולים כרצונכם.( rob, mob, RSהניחו גדלי תורים )מכל שלב לכל שלב. bypassing-המערכת יכולה לבצע את כל סוגי ה

(.אידיאלי )קרי שאינו טועה לעולם branch predictionלמערכת

- 2 fetch, 2 decode, 2 ALU per cycle- Load/Store: 5 cycles

Page 3: מבנה מחשבים ספרתיים 234267

3

נתונה התוכנית הבאה:R0 = 0R1 = 0

L1: R4 = 20R5 = load 100(R4) ;load from the address

in (R4) + 100R3 = R2+2R5 = R3 + 2R6 = 6R7 = R5R8 = 8;R9 = 9R1 = R1 + 1;IF (R1 < 100) goto L1 ;

L2: R4 = 23

כפי שנלמד בכיתה.MIPSנק'( תרגמו את התוכנית לאסמבלי של 5) א.

Page 4: מבנה מחשבים ספרתיים 234267

4

R0 = 0R1 = 0

L1: R4 = 20R5 = load 100(R4)

R3 = R2+2R5 = R3 + 2R6 = 6R7 = R5R8 = 8;R9 = 9R1 = R1 + 1;IF (R1 < 100) goto

L1 ;L2: R4 = 23

ADDIR10,R0,100

SUB R1,R1,R1L1: ADDI

R4,R0,20LW

R5,100(R4)ADDI R3,R2,2ADDI R5,R3,2ADDI R6,R0,6ADD R7,R5,R0ADDI R8,R0,8ADDI R9,R0,9ADDI R1,R1,1BNE R1,R10,L1

L2: ADDIR4,R0,23

Page 5: מבנה מחשבים ספרתיים 234267

5

נקודות( שרטטו את מצב במערכת באשר מסיימים את 10) ב.ADDIבפעם השנייה.1L של פקודה fetchביצוע פעולת ה-

R10,R0,100SUB R1,R1,R1

L1: ADDIR4,R0,20

LWR5,100(R4)

ADDI R3,R2,2ADDI R5,R3,2ADDI R6,R0,6ADD R7,R5,R0ADDI R8,R0,8ADDI R9,R0,9ADDI R1,R1,1BNE R1,R10,L1

L2: ADDIR4,R0,23

Page 6: מבנה מחשבים ספרתיים 234267

6

MOBRSROB

Execute

Retire

RAT

R1

R2

R3

R4

R5

R6

R7

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23

IDQ

Page 7: מבנה מחשבים ספרתיים 234267

7

MOB

RS

Execute

Retire

RAT

R1

R2

R3

R4

R5

R6

R7

Sub R1,R1,R1

Addi R10,R0,100

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 1

Page 8: מבנה מחשבים ספרתיים 234267

8

MOB

Execute

Retire

RAT

Lw R5, 100(R4)

Addi R4,R0,20

Addi R10,R0,100

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

Inv

RSRB0 R0+100

rb0

Sub R1,R1,R1

rb1

RB1 R1-R1

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Inv

Cycle: 2

Page 9: מבנה מחשבים ספרתיים 234267

9

Execute

Retire

RAT

Addi R5,R3,2

Addi R3,R2,2

Addi R10,R0,100

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

Inv

RS

RB0R0+100

rb0

Sub R1,R1,R1

rb1

Inv

RB1 R1-R1

RB1 R1-R1

RB0 R0+100

Addi R4,R0,20 InvInvLw R5, [100+R4]

rb3rb2

RB2 R0+20

RB3Ld)rb2+100)

MOB

RB3Ld(Rb2+100)

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 3

Page 10: מבנה מחשבים ספרתיים 234267

10

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10 rb0

rb1

rb2

MOB

okok

rb3

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 4a

RB1 R1-R1

RB0 R0+100

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20 InvInv

RS

RB0R0+100

RB1 R1-R1

RB2 R0+20

InvInv

Addi R5,R3,2

Addi R3,R2,2

Lw R5, [100+R4]

RB3Ld)rb2+100)

RB3Ld(Rb2+100)

Page 11: מבנה מחשבים ספרתיים 234267

11

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

rb0

rb1

rb2

MOB

RB2R0+20

okok

RB2R0+20

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 4b

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20

RB0R0+100

RB1 R1-R1

InvInv

Addi R5,R3,2

Addi R3,R2,2rb3

Lw R5, [100+R4]

RB3Ld)rb2+100)

RB3Ld(Rb2+100)

Page 12: מבנה מחשבים ספרתיים 234267

12

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

rb0

rb1

rb2

MOB

RB2R0+20

okok

W

WRB2R0+20

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 4c

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20

RB0R0+100

RB1 R1-R1

InvInv

Addi R5,R3,2

Addi R3,R2,2rb3

Lw R5, [100+R4]

RB3Ld)rb2+100)

RB3Ld(Rb2+100)

Page 13: מבנה מחשבים ספרתיים 234267

13

RB5 rb4+2

RB4 R2+2

Execute

Retire

RAT

Add R7,R5,R0

Addi R6,R0,6

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

rb0

rb1

rb2

MOB

RB2R0+20

okok

W

W

Addi R3,R2,2

Addi R5,R3,2

RB2R0+20

rb4

rb5

InvInv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 4d

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20

RB0R0+100

RB1 R1-R1

InvInvLw R5, [100+R4]

RB3Ld)rb2+100)

RB3Ld(Rb2+100)

Page 14: מבנה מחשבים ספרתיים 234267

14

RB5 rb4+2

RB4 R2+2

Execute

Retire

RAT

Add R7,R5,R0

Addi R6,R0,6

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

rb0

rb1

rb2

MOB

RB2R0+20

okok

W

W

Addi R3,R2,2

Addi R5,R3,2

RB2R0+20

rb4

rb5

InvInv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 5a

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20

RB0R0+100

RB1 R1-R1

InvInvok

Lw R5, [100+R4]

RB3Ld)rb2+100)

RB3Ld(Rb2+100)

Page 15: מבנה מחשבים ספרתיים 234267

15

RB5 rb4+2

RB4 R2+2

Execute

Retire

RAT

Add R7,R5,R0

Addi R6,R0,6

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

rb0

rb1

rb2

MOB

okok

W

Addi R3,R2,2

Addi R5,R3,2

RB2R0+20

rb4

rb5

InvInv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 5b

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20

RB0R0+100

RB1 R1-R1

Invok

RB3 rb2+100RB4 R2+2

Lw R5, [100+R4]

RB3Ld(rb2+100)

RB3Ld(Rb2+100)

Page 16: מבנה מחשבים ספרתיים 234267

16

RB5 rb4+2

RB4 R2+2

Execute

Retire

RAT

Add R7,R5,R0

Addi R6,R0,6

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

rb0

rb1

rb2

MOB

okok

W

Addi R3,R2,2

Addi R5,R3,2

RB2R0+20

rb4

rb5

InvInv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 5c

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20

RB0R0+100

RB1 R1-R1

Invok

RB3 rb2+100RB4 R2+2

R1 RB1R10 RB0

Lw R5, [100+R4]

RB3Ld(rb2+100)

RB3Ld(Rb2+100)

Page 17: מבנה מחשבים ספרתיים 234267

17

RB5 rb4+2

RB4 R2+2

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

rb2

MOB

okok

W

Addi R3,R2,2

Addi R5,R3,2

RB2R0+20

RB3rb2+100

rb4

rb5

InvInv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 5d

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20

Invok

RB3 rb2+100RB4 R2+2

R1 RB1R10 RB0

RB7 rb5+R0

RB6 R0+6

rb6rb7

Addi R9,R0,9

Addi R8,R0,8

Add R7,R5,R0

Addi R6,R0,6 InvInv

Lw R5, [100+R4]

RB3Ld(Rb2+100)

Page 18: מבנה מחשבים ספרתיים 234267

18

RB5 rb4+2

RB4 R2+2

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

rb2

MOB

okok

W

Addi R3,R2,2

Addi R5,R3,2

RB2R0+20

RB3rb2+100

rb4

rb5

InvInv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 6a

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20

Invok

RB3 rb2+100RB4 R2+2

R1 RB1R10 RB0

RB7 rb5+R0

RB6 R0+6

rb6rb7

Addi R9,R0,9

Addi R8,R0,8

Add R7,R5,R0

Addi R6,R0,6 InvInv

ok

(1)

Lw R5, [100+R4]

RB3Ld(Rb2+100)

Page 19: מבנה מחשבים ספרתיים 234267

19

RB5 rb4+2

RB4 R2+2

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

rb2

MOB

okok

Addi R3,R2,2

Addi R5,R3,2

RB2R0+20

RB3rb2+100

rb4

rb5

Inv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 6b

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20 ok

R1 RB1R10 RB0

Addi R9,R0,9

Addi R8,R0,8

Add R7,R5,R0

Addi R6,R0,6 InvInv

ok

R4 RB2

(1)

InvLw R5, [100+R4]

RB3Ld(Rb2+100)

RB7 rb5+R0

RB6 R0+6

rb6rb7

Page 20: מבנה מחשבים ספרתיים 234267

20

RB5 rb4+2

RB4 R2+2

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

MOB

okok

Addi R3,R2,2

Addi R5,R3,2

RB2R0+20

RB3rb2+100

rb4

rb5

Inv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 6c

Addi R10,R0,100

Sub R1,R1,R1

Addi R4,R0,20 ok

RB7 rb5+R0

RB6 R0+6

Addi R9,R0,9

Addi R8,R0,8

Add R7,R5,R0

Addi R6,R0,6 InvInv

R4 RB2

ok

(1)

RB5 rb4+2

RB6 R0+6

W

InvLw R5, [100+R4]

RB3Ld(Rb2+100)

rb6rb7

Page 21: מבנה מחשבים ספרתיים 234267

21

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

MOB

Invok

Addi R3,R2,2

Addi R5,R3,2

RB2R0+20

RB3rb2+100

rb4

rb5

Inv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 6d

Sub R1,R1,R1

Addi R4,R0,20 ok

RB7 rb5+R0

RB6 R0+6

Add R7,R5,R0

Addi R6,R0,6 InvInv

R4 RB2

ok

(1)

RB5 rb4+2

RB6 R0+6

Bne R1,R10,L1

Addi R1,R1,1

RB8 R0+8

RB0 R0+9Addi R9,R0,9

Addi R8,R0,8 Inv

rb8

rb0 W

InvLw R5, [100+R4]

RB3Ld(Rb2+100)

RB5 rb4+2

RB4 R2+2

rb6rb7

Page 22: מבנה מחשבים ספרתיים 234267

22

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

MOB

Invok

Addi R3,R2,2

Addi R5,R3,2

rb4

rb5

Inv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 7a

Sub R1,R1,R1

Addi R4,R0,20 ok

RB7 rb5+R0

RB6 R0+6

Add R7,R5,R0

Addi R6,R0,6 InvInv

ok

(2)

RB5 rb4+2

RB6 R0+6

Bne R1,R10,L1

Addi R1,R1,1

RB8 R0+8

RB0 R0+9Addi R9,R0,9

Addi R8,R0,8 Inv

rb8

rb0 W

InvLw R5, [100+R4]

RB3Ld(Rb2+100)

RB5 rb4+2

RB4 R2+2

rb6rb7

Page 23: מבנה מחשבים ספרתיים 234267

23

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

MOB

Invok

Addi R3,R2,2

Addi R5,R3,2

rb4

rb5

Inv

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 7b

Sub R1,R1,R1

Addi R4,R0,20 ok

RB7 rb5+R0

RB6 R0+6

Add R7,R5,R0

Addi R6,R0,6 InvInv

ok

(2)

RB5 rb4+2

RB6 R0+6

Bne R1,R10,L1

Addi R1,R1,1

RB8 R0+8

RB0 R0+9Addi R9,R0,9

Addi R8,R0,8 Inv

rb0 W

okok

InvLw R5, [100+R4]

RB3Ld(Rb2+100)

RB5 rb4+2

RB4 R2+2

rb6rb7rb8

Page 24: מבנה מחשבים ספרתיים 234267

24

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

MOB

Invok

Addi R3,R2,2

Addi R5,R3,2

rb4

rb5

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 7b

Sub R1,R1,R1

Addi R4,R0,20 ok

RB7 rb5+R0

RB6 R0+6

Add R7,R5,R0

Addi R6,R0,6

Inv

ok

(2)

Bne R1,R10,L1

Addi R1,R1,1

RB8 R0+8

RB0 R0+9Addi R9,R0,9

Addi R8,R0,8 Inv

rb0

RB7rb5+R0

RB8R0+8okok

InvLw R5, [100+R4]

RB3Ld(Rb2+100)

RB5 rb4+2

RB4 R2+2

rb6rb7rb8

Page 25: מבנה מחשבים ספרתיים 234267

25

RB5 rb4+2

RB4 R2+2

Execute

Retire

RATR1

R2

R3

R4

R5

R6

R7

R8

R9

R10

RS

MOB

Invok

Addi R3,R2,2

Addi R5,R3,2

rb4

rb5

IDQ

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23ROB0

1

23

4

56

78

Cycle: 7c

Sub R1,R1,R1

Addi R4,R0,20 ok

RB7 rb5+R0

RB6 R0+6

Add R7,R5,R0

Addi R6,R0,6

Inv

ok

(2)RB9 R0+8

RB0 R0+9Addi R9,R0,9

Addi R8,R0,8 Inv

rb0

RB7rb5+R0

RB8R0+8okok

W (SH)

Only 2 ALU!RB1 R1+1

RB2 rb1-R10

Lw R5,100)R4(

Addi R4,R0,20

rb1

Bne R1,R10,L1

Addi R1,R1,1

InvLw R5, [100+R4]

RB3Ld(Rb2+100)

rb6rb7rb8

Page 26: מבנה מחשבים ספרתיים 234267

26

של המערכת כאשר CPIנקודות( בצעו חישוב מקורב של ה- 5 )ג.מבצעים את התוכנית כולה.

פעמים, זמן ביצוע שאר 100היות והלולאה מבוצעת •השורות זניח

בפעם הראשונה עד הרגע LW ל- fetchמהרגע שבו בוצע • מחזורי שעון 5 פעם שניה חלפו fetchשבו בוצע

לפיכך גם בין תחילת קריאה מהזכרון ועד שנוכל לקרוא בשנית • מחזורי שעון – לא יהיו עיכובים כתוצאה מהקריאות.5יעברו

לא מעכב כיוון שיש מחזור שעון בו יש structural hazardה- •EXEרק פקודת אחת בשלב ה-

•See next slide!

0.5 הוא בקרוב CPIה- פקודות בלולאה 10יש סה"כ •

ADDI

R10,R0,100SUBR1,R1,R1

L1: ADDIR4,R0,20LW

R5,100(R4)ADDIR3,R2,2ADDIR5,R3,2ADDIR6,R0,6ADDR7,R5,R0ADDIR8,R0,8ADDIR9,R0,9ADDIR1,R1,1BNE

R1,R10,L1L2: ADDI

R4,R0,23

Page 27: מבנה מחשבים ספרתיים 234267

CPI

27

Lw R5, 100(R4)

Addi R4,R0,20

RSRB0 R0+100

RB1 R1-R1

IDQ

RS

RB8 rb6+R0

RB7 R0+6

RB9 R0+8

RB0 R0+9

RB1 R1+1

RB2 rb1-R10

Lw R5, 100(R4)

Addi R4,R0,20

IDQCycle 2 Cycle 7

…RAW

5 cycles

Page 28: מבנה מחשבים ספרתיים 234267

28

R0 = 0R1 = 0R4 = 20R6 = 6R8 = 8;R9 = 9

L1: R5 = load 100(R4)

R3 = R2+2R5 = R3 + 2R1 = R1 + 1;IF (R1 < 100) goto L1R7 = R5

L2: R4 = 23

נקודות( קומפיילר ביצע אופטימיזציה של הקוד ויצר את הקוד 5) הבא

!!!נקודות( האם התוכניות זהות )מבחינת התוצאה( נמקו2)

Page 29: מבנה מחשבים ספרתיים 234267

29

R0 = 0R1 = 0

L1: R4 = 20R5 = load

100(R4)R3 = R2+2R5 = R3 + 2R6 = 6R7 = R5R8 = 8R9 = 9R1 = R1 + 1IF (R1 < 100) goto

L1L2: R4 = 23

R0 = 0R1 = 0R4 = 20R6 = 6R8 = 8R9 = 9

L1: R5 = load 100(R4) R3 = R2+2

R5 = R3 + 2R1 = R1 + 1IF (R1 < 100) goto

L1R7 = R5

L2:R4 = 23

התכניות זהות. כל השינוי הוא הוצאת הצבות קבועות לרגיסטרים שאינם בשימוש בלולאה אל מחוץ ללולאה.

Page 30: מבנה מחשבים ספרתיים 234267

30

המקורב של התוכנית הזאת ? CPI נקודות) מה ב- 3(מה זה אומר לגבי הביצועים של המערכת לפני ואחרי

האופטימיזציה ?

LOADאמנם הקטנו את מספר הפקודות שבלולאה לחמש, אבל כל פעולת במקביל, LOADלוקחת חמישה מחזורי שעון, ואי אפשר לבצע את פעולות ה-

מחזורי שעון כדי שכל לולאה תסתיים.5לכן ידרשו

מבחינת הביצועים – לא יהיה שינוי!! קטן פי IC בקרוב אבל ה- 2 גדל פי CPI, אמנם ה- CC*CPI*ICזמן הריצה הוא

בקרוב.2

Page 31: מבנה מחשבים ספרתיים 234267

31

ALUעל מנת לשפר את ביצועי המערכת הוספנו עוד יחידת INTEGER .)קרי יש עכשיו שלוש(

של המערכת ביחס לתוכנית CPI נקודות( האם שופר ה- 5)הראשונה, אם כן בכמה?

לא גורם לעיכובים, הוספת structural hazardלא, היות וה- נוספת לא תשנה דבר בריצת התכנית.ALUיחידת

ALU נקודות( הציעו שפור נוסף לחומרת המערכת )בנוסף ל-5)השלישי( שישפר את ביצועי התוכנית השניה ביחס לביצועים

(. aשחישבתם בסעיף הקודם )

.LD מהירה יותר או ביצוע מקבילי של פעולות LDלמשל פעולת

Page 32: מבנה מחשבים ספרתיים 234267

32

נק'(35 – חיזוי הסתעפויות )2שאלה

הבא:( pipeline החלה לשווק את המעבד המצונר )SHABATחברת

לוקח מחזור שעון אחדpipeוכל שלב ב- , pipelineכל מלבן מסמן תחנה ב-

( מתבצע בשלב הראשון של FETCHידוע כי הבאת הפקודה מהזיכרון )PC שבו גם מצוי רגיסטר pipelineה-

כלומר רק , E( מתבצע בשלב Branch Resolutionהכרעת הסתעפות ) תנאי הקפיצה נבדק. הניחו כי בשלב E מגיעה לשלב Branch-כאשר פקודת ה

במידת PCזה ידוע גם ערכה של כתובת הקפיצה הנכונה וניתן לטעון אותה ל-

הצורך.

PC A B C D E F

Page 33: מבנה מחשבים ספרתיים 234267

33

נתונה תוכנית )חלקית(:

לולאה של איטרציות.3

5לולאה של איטרציות.

0 MOV R10,#54 L3 ADDI R7,R8,#1…..24 MOV R1,#328 L1 DEC R132 B1: BNE R1,R0,L1…..100 ADDI R7,R8,#1104 DEC R10108 B3: BNE R10,R0,L3

המספרים בעמודה הראשונה הם כתובות של הוראות(.)

Page 34: מבנה מחשבים ספרתיים 234267

34

נתון כי ביצוע התוכנית הנ"ל במערכת המתוארת, כאשר לא משתמשים Alwaysבשום מנגנון לחיזוי הסתעפויות והוא מבצע מדיניות של

assume NOT taken , מחזורי שעון282לוקח

נוספות, כמה מחזורים היה branch נקודות( בהנחה שאין פקודות 5)א-לוקח ביצוע התוכנית אילו המעבד היה מצויד בחזאי קפיצות מושלם ?

branch הם תוצאה של 282נבדוק כמה מחזורים מתוך ה- mispredictionוכמה נחוצים לחישובים עצמם

NT במדיניות לא קופצת 5 קפיצות ובפעם ה- 4לולאה חיצונית מבצעת טעויות חיזוי4יהיו

קפיצות ובפעם 2לולאה פנימית )בכל איטרציה של לולאה חיצונית( מבצעת טעויות חיזוי בכל איטרציה של הלולאה 2 ישנן השלישית לא קופצת

10 לולאות חיצוניות, הלולאה הפנימית "תורמת" 5 לאורך החיצונית .טעויות חיזוי

Page 35: מבנה מחשבים ספרתיים 234267

35

מחזורי 5כשכל טעות חיזוי מבזבזת טעויות חיזוי 14בשתי הלולאות יש שעון.

במקרה של חזאי מחזורי שעון 70=14*5הפסדנו בגלל חיזויים לא נכונים מחזורי שעון.212=282-70קפיצות מושלם ביצוע התכנית היה לוקח

PC A B C D EBR

F

Page 36: מבנה מחשבים ספרתיים 234267

36

נקודות( כדי לשפר את ביצועי המעבד הוחלט לממש מנגנון 10) ב.Branch Prediction ברמה אחת המבוסס על ,BTB כניסות 8, מכיל

והמיפוי אליו נעשה בעזרת הביטים הנמוכים של הכתובת ) ללא שני הנמוכים ביותר(.

ואז גם נטען הערך pipelineהניחו כי ניחוש מתבצע בשלב הראשון ב-.PCהחזוי ל-

(, עליכם לבנות taken, not-takenעל מנת לנחש את כיוון הקפיצה ) לכל כניסה בטבלה סיביות2בת מכונת מצבים

שימו לב כי מכונה זאת יכולה להיות שונה מהמכונה המשומשת ב- BTB ולשם הפשטות נניח כי אותה מכונת מצבים משמשת לכל ,

הכניסות.

הציעו את מכונת המצבים שתתן ביצועים אופטימליים )לא בהכרך אידיאליים!( מבחינת אחוז החיזויים הנכונים עבור התוכנית שהוצגה

בסעיף א'.

.BTBניתן להניח שבתחילת ריצת התכנית הפקודות נמצאות ב-

Page 37: מבנה מחשבים ספרתיים 234267

37

מצבים ולכן לעולם לא תוכל 4 סיביות, היא בעלת 2נשים לב שמכונה בת לתת חיזוי אידיאלי ללולאה החיצונית, אבל ניתן לבנות מכונה שתתן חיזוי

אידיאלי ללולאה הפנימית.

– 32 )שורה BTBנשים לב ששתי השורות מתמפות לכניסות שונות ב- ( לכן מכונה אידיאלית לא צריכה 1101100 – 108, שורה 0100000

להתייחס לשילוב בין שתי הלולאות.

מצבים, אידיאלית עבור הלולאה הפנימית:3נתחיל ממכונה עם

T T NT

Page 38: מבנה מחשבים ספרתיים 234267

38

אם נעקוב אחרי השינויים הרצויים בשני הלולאות נקבל שהמעברים הרצויים עבור הלולאה הפנימית הם:

T T NT

T T

NT

Page 39: מבנה מחשבים ספרתיים 234267

39

ע"מ לקבל מספר שגיאות מינימלי בלולאה החיצונית יש להוסיף:

T T NT

T T

NT

T

Page 40: מבנה מחשבים ספרתיים 234267

40

כדי שהמכונה תטפל גם בעוד מקרים, ומבלי להשפיע על ביצועי התכנית שלנו:

T T NT

T/NT

NT

T

T/NT

Page 41: מבנה מחשבים ספרתיים 234267

41

נקודות( כמה מחזורי שעון תיקח הרצת התוכנית עם 5ג. )המנגנון של סעיף ב' ?

כל החיזויים נכונים למעט טעות אחת בלולאה החיצונית באיטרציה השלישית.

Perfect prediction: 212

212+1*5=217 CC

Page 42: מבנה מחשבים ספרתיים 234267

42

נקודות( עם הזמן השתכללה התוכנית שמורצת על המעבד ועכשיו 10ד. ): היא

3לולאה של איטרציות.

5לולאה של איטרציות.

לולאה איסופית.

8לולאה של איטרציות.

0 MOV R10,#04 L4 ADDI R10,#1…..24 MOV R1,#328 L1 DEC R132 B1: BNE R1,R0,L1…..88 MOV R2,#592 L2 DEC R296 B2: BNE R2,R0,L2…..104 MOV R3,#8108 L3 DEC R3112 B3: BNE R3,R0,L3…..128 JMP L4

Page 43: מבנה מחשבים ספרתיים 234267

43

Twoכדי להתמודד עם תוכנית מורכבת שכזו ציידו את המעבד במנגנון Level Branch Prediction

סיביות 7רגיסטר ההיסטוריה הוא לוקלי ובעל כל מכונות המצבים הן :. טבלאות מכונות המצבים הן גם לוקליות

00 ST

01 WT

10 WNT

11 SNT

NT NTNT

Taken

Taken

TakenTaken Not Taken

.WNT וכולן מאתחלות למצב

הם t, אם כל החיזויים שלה מזמן tיציבה" בזמן "נגדיר שהוראת הסתעפות היא נכונים.

Page 44: מבנה מחשבים ספרתיים 234267

44

0 MOV R10,#04 L4 ADDI R10,#1…..24 MOV R1,#328 L1 DEC R132 B1: BNE R1,R0,L1…..88 MOV R2,#592 L2 DEC R296 B2: BNE R2,R0,L2…..104 MOV R3,#8108 L3 DEC R3112 B3: BNE R3,R0,L3…..128 JMP L4

כאשר הוראת R10 מה יהיה ערכו של תתייצבנה B1 ו-B3הסיעוף

אם לדעתכם הן אינן מתייצבות כלל ציינו מדוע.

ניתן להניח שאין הסתעפויות נוספות בתכנית.

Page 45: מבנה מחשבים ספרתיים 234267

45

היות וטבלאות מכונות המצבים הם לוקאליות, והיות ועבור כל אחת מהלולאות אין לנו התנגשויות בין סדרות ההיסטוריה )לא קיימת סדרת

היסטוריה שעבורה אנחנו פעם עושים קפיצה ופעם לא(. לכן מספיק לנו להגיע לסדרת היסטוריה פעם אחת כדי שמאז החיזוי שלנו עבור אותה

.סדרת היסטוריה יהיה נכון תמיד

איטרציות בכל פעם:3 לדוגמא מבצעת B1לולאה

T T N T T N T T N T T N T …

:B1המצבים שחוזרים על עצמם עבור הוראת סיעוף

T T N T T N T Taken

T N T T N T T Not Taken

N T T N T T N Taken

את המצבים הנ"ל הוראת ההסתעפות מכירה רק בפעם השלישית )במלואה( – באיטרציה השלישית של הלולאה B1שמבוצעת לולאה

החיצונית.

Page 46: מבנה מחשבים ספרתיים 234267

46

איטרציות בכל פעם:8 מבצעת B3לולאה

T T T T T T T N T T T T T T T N T T…

המצבים שחוזרים על 8 תהיה יציבה לאחר שתכיר את כל B3 הוראת ההסתעפות של B3עצמם. הדבר יהיה בסוף הפעם השניה בה תבוצע לולאה

T TTT TTT NT (NT only after 7 Taken branches)0

MOV R10,#04 L4

ADDI R10,#1…..24

MOV R1,#328 L1

DEC R132 B1:

BNE R1,R0,L1…..88

MOV R2,#592 L2

DEC R296 B2:

BNE R2,R0,L2…..104

MOV R3,#8108 L3

DEC R3112 B3:

BNE R3,R0,L3…..128

JMP L4

TTN TTN T Taken

TNT TNT T Not Taken

NTT NTT N Taken

The BHR will be saturated during the third iteration: R10 = 3

Page 47: מבנה מחשבים ספרתיים 234267

47

נקודות( חזור על סעיף ד' בהנחה שאורך רגיסטר 5)ה. סיביות בלבד.6ההיסטוריה הוא

111111 אף פעם לא תתיצב כי עבור סדרת היסטוריה B3 לולאה( ופעם לא B3אנחנו פעם עושים קפיצה )איטרציה שביעית של

(.B3עושים קפיצה )איטרציה שמינית של

Page 48: מבנה מחשבים ספרתיים 234267

48

ו. חזור על סעיף ד' בהנחה שמשתמשים ברגיסטר היסטוריה אחד . סיביות10בלבד )גלובלי( באורך

במקרה זה סדרות ההסטוריה יהיו:TTN TTTTN TTTT TTTN TTN TTTTN TTTT TTTN

אין התנגשויות בין סדרות ההיסטוריה. בשתי איטרציות נעבור על R10=2כל סדרות ההיסטוריה האפשריות ואז

Page 49: מבנה מחשבים ספרתיים 234267

49

TTN TTTTN TTTT TTTN TTN TTTTN TTTT TTTN

TTN TTTTN TTTT TTTN TTN TTTTN TTTT TTTN

TN TTTT TTTN N TTTT TTTN TTTTT TTTN TTTTT TTTN TTNTT TTTN TTN TT TTTN TTN TT TTTN TTN TTTTTN TTN TTTTTN TTN TTTTNN TTN TTTTN TTTN TTTTN TTTN TTTTN TTTN TTTTN TTTT TTTTN TTTT TTTTN TTTT TTTTN TTTT TTTTN TTTT TTTN